2-5 デジタル署名
デジタル署名は、送信者が送ったデータ(テキスト、画像、音声のファイルなど)が、送信者本人が送ったものであることを受信者に対して証明する技術である。
電子署名(electronic signature)とは、電子的に表現された文字や記号、音、プロセスであって、署名する意思を持った人が作成または実行するものである。一方、デジタル署名(digital signature)とは、ハッシュ関数と公開鍵暗号を用いる電子署名の一方式である。電子署名はデジタル署名より広い概念であり、タブレット端末と付属のペンを使って電子的な文書にサインを書き込む方式は、電子署名であるがデジタル署名ではないところなどに違いが現れる。簡単なデジタル署名の手順は次の通りである。
【送信者】
1. 送信者は秘密鍵と公開鍵を作成し、公開鍵を公開するなどの方法で受信者に伝える。
2. ハッシュ関数を使って、送りたいデータ(ファイル)のハッシュ値を得る。
3. 秘密鍵を用いて、そのハッシュ値を暗号化する。暗号化されたハッシュ値のことを、デジタル署名と呼ぶ。
4. 送りたいデータ(ファイル)とデジタル署名を受信者へ送信する。
【受信者】
5. ハッシュ関数を使って、受信したデータ(ファイル)のハッシュ値を得る。
6. 送信者の公開鍵を用いて、受信したデジタル署名を復号して、暗号化されていないハッシュ値を得る。
7.4で得たハッシュ値と、5で得たハッシュ値を比較する(一致していれば、受信したデータは破損していないことがわかる)。
受信者が行う5~7の手順をまとめてデジタル署名の「検証」という。
なお、上で挙げた特定の方式(RSA署名方式)は、特定の条件下において署名が偽造できてしまうため、現在はその課題を解決した方式が多数利用されている[※]。
[※]齊藤真弓『RSA署名方式の安全性を巡る研究動向について』(日本銀行金融研究所金融研究21(別冊1),285-323,2002-06)参照