比例道
| フロントページ | 新着 | 一覧 |

電子署名

 情報処理振興事業協会「暗号強度評価に関する調査研究調査報告書」より抜粋


ディジタル署名には通信文復元法と認証子照合法があるが、後に述べる理由により、一般に認証子照合法が推奨される。

通信文復元法


  • Aliceは平文Mに署名したいとする。そこでAliceは自らの秘密鍵dで平文Mの署名S=D(d,M)を生成し、署名SをBobに送信する。
  • BobはAliceの公開鍵eで署名Sを復号し、平文M=E(e,S)を得る。


この復元された平文Mが内容的に意味のあるものであれば、平文Mは確かにAliceによって作成されたものであることが示されるため、署名Sは署名としての機能を有することになる。しかし、文書の内容が「意味のあるものであるか」を自動で判定することは困難であり、また、RSA暗号のように、暗号化と復号に用いられる変換が乗法的ある場合、その性質を用いて相手に平文の内容を知らせることなく署名させることができる(ブラインド署名)ため、署名の偽造が可能であり、この通信文復元法は一般に推奨されない。

認証子照合法


認証子照合法にはハッシュ関数と呼ばれる関数を用いる。ハッシュ関数とはh(x)=h(y)となるような値の組(x,y)を求めることは困難であるような関数h()のことである。一般にハッシュ関数の出力値は一定長である。ハッシュ関数を用いることにより、データの完全性を自動的に検証することができる。この他にも、ハッシュ関数は仮想的なランダム関数として扱われたり、その他の暗号プロトコルにおいても重要な役割を果たしたししており、暗号学においては重要な関数である。ハッシュ関数を用いたディジタル署名は以下のように行われる。

  • Aliceは平文Mに署名したいとする。Aliceは平文Mをハッシュ関数h()に入力し、ハッシュ値H=h(M)を得る。Aliceは平文Mのハッシュ値Hを秘密鍵dで暗号化して署名S=D(d,H)を生成し、平文と署名の組(M,S)をBobに送信する。
  • Bobは署名SをAliceの公開鍵eで復号しハッシュ値H'=E(e,S)を得、また、平文Mをハッシュ関数に入力し、ハッシュ値H=h(M)を得る。そしてHとH'を比較し、同一かどうかを判定する。


認証子照合法は、ハッシュ値が同一かどうかの判定を行うため、平文Mが「意味があるかどうか」を判定する必要がない。また、RSA暗号のように変換が乗法的であっても、ハッシュ関数が乗法的でないため、署名の偽造は困難であり、通信文復元法にくらべてこの手法は安全である。