デジタル署名と暗号技術

公開鍵暗号の計算の特徴

公開鍵暗号を実現する計算手順(アルゴリズム)は一つだけではありません。

しかし、アルゴリズムには、以下の条件が必要です。

暗号化の鍵をE、

復号化のための鍵をD、

平文をM、

暗号文をCとすると、

@ 暗号化が容易であること:MとEからCを求める計算が容易であること。

A 復号化が容易であること:CとDからMを求める計算が容易であること。 

B 暗号文が破られないこと:CとEからMを求める計算が非常に困難であること。

C 暗号化の鍵から復号化の鍵が破られないこと:EからDを求める計算が非常に困難で

  あること。

D 暗号化・復号化が出来ること:MとEからCを求め、CとDから元のMに戻ること

RSAのアルゴリズム

 有名な公開鍵暗号の一つRSAのアルゴリズムを見てみましょう。

RSAを使用するには、公開鍵と秘密鍵の組を作成する必要があります。

ここでは、アリスとボブがRSAを使用して通信することにします。

鍵の組を作るのには、まずアリスは、非常に大きな素数PとQを無作為に選択します。

次に、この二つの素数の積をNとし、さらに、任意の整数eを(P−1)(Q−1)と

互いに素となるように選択します。

Nとeの組が暗号鍵(公開鍵)になります。

 

(例)アリスが二つの素数として  47、  71  を選択したとします。

   (実際には、公開鍵暗号に使用するすべての整数は非常に大きいが、

    ここでは、わかりやすいように小さな整数を使用します。)

P=47  Q=71

N=P*Q=47*71=3337

アリスは、次の式から、暗号鍵を3220と互いに素になるように選択します

(オイラー関数)。

Ф(N)=(P−1)*(Q−1)=46*70=3220

アリスは、e=79を選択したとする。

これで、拡張ユークリッドの互除法と2つの素数(アリスだけが知っている)を使用して、

復号鍵の要素dを計算できる。

ed=1(modФ(N))・・・dはmodФ(N)をとったうえでの逆元

d=79−1( mod3220)=1019

 

アリスは、公開鍵情報すなわち、N=3337とe=79を公開する。

 

たとえば、ボブが整数688(平文)を暗号化してアリスに送信する場合、

彼は、公開鍵登録簿を見に行き、アリスの公開鍵を検索する。

自分が暗号化したい数688を79乗して、その結果を3337で割った余りを計算する。

アリスの公開鍵 e=79

                    N=3337

                     

68879mod3337=1570

 

アリスは、1570(暗号文)という数を受けると、ボブと同じ操作を復号鍵1019を

使用して行う。

 

15701019mod3337=688

アリスの秘密鍵 d=1019

                     modФ(N)=3220

                     P=47 Q=71     

電子署名の仕組み  

 電子署名システムは、公開鍵方式の暗号鍵を逆に使用し、本人認証に利用するものです。

ある人の公開鍵に対応する秘密鍵は、事実上、世界に一つしかありません。

もし、ある公開鍵でメッセージを復号化出来たら、その公開鍵に対応する唯一の秘密鍵

で暗号化されたことが確認されます。

 そもそも、電子署名は何故するのでしょうか?

それは、第1に、文書が改竄されるのを防ぐことにあり、第2に、自分の書いた文書が

本当に、本物であることを相手が確認出来るためにします。

 

つまり、電子署名には次のような重要な機能があるということです。

 

      完全性:ファイルまたはメッセージが改竄されたかどうか分かる。

      認証 :メッセージに署名した人物の名前を数学的に確認出来る。

 

参考文献:「PGP 暗号メールと電子署名」 Simson Garfinkel 著 山本和彦監訳