電子署名の役割
あなたが紙の書類に署名をすると、その書類を受け取った人は、他人がなりすまして書いたものではなく、あなた本人の意思で書かれたものと見なすことができます。
同じように、あなたがデータに署名をすると、その署名は、データがあなた本人から送られてきたものであることを証明します。また、データが第三者に改ざんされていないことも証明します。
電子署名の作り方
データに施す署名もまたデータです。
どのようなデータであれば、署名の役割を果たせるのでしょうか?
あなたが電子署名を作るには、まず元のデータを、ハッシュ関数を使って、短い要約(メッセージダイジェスト)に変えます。
その要約を、あなたしか持ち得ない秘密鍵を使って暗号化します。この暗号化された要約こそが、電子署名と呼ばれるものです。
電子署名を施すとは、元のデータにこの暗号化された要約を付けることです。
なぜ、この暗号化された要約が、本人証明と、改ざんされていないことの証明になるのでしょうか。
なぜ電子署名が、本人証明と、改ざんされていないことの証明になるのか
あなたは、先ほど電子署名を施したデータをAさんに送りました。
受取人のAさんは、届いたデータを、あらかじめあなたから渡されていた公開鍵を使って復号します。
その公開鍵で正しく復号できたということは、そのデータはあなたしか持ち得ない秘密鍵で暗号化されたということです。よって、あなた本人によって作られたデータであると見なすことができます。
このように、受取人は、あなたの秘密鍵に対応した公開鍵を使って電子署名を復号することで、データの本人確認を行うことができます。
さらに、受取人のAさんも、あなたがやったのと同じように、元のデータを、あなたと同じハッシュ関数を使って要約を作ります。
そしてその要約と、電子署名を復号することで得た要約が一致しているかを確認します。
もしも一致していなかった場合は、データを配送する途中で内容が改ざんされたことになります。
一致していれば、改ざんされていないことになります。
このように、受取人は、あなたが使ったものと同じハッシュ関数を使って要約を作り、電子署名を復元して得た要約と比べることで、データが送信時点から改ざんされていないかを検証することができます。
参考
スラスラわかるネットワーク&TCP/IPのきほん
電子署名 - Wikipedia
本当に本人から?見えない相手の真偽がわかる「電子署名」 | グローバルサインブログ