今回はセキュリティに関する記事。
名前だけは聞いたことがあるかもしれないディジタル署名の概略を簡単に書いてみる。
ディジタル署名の機能
ディジタル署名を使うと何が出来るのか。
主な機能は以下の2つである。
- なりすましの防止
- 改ざんの防止
"署名"という名前の通り、誰が作ったのかを示すことによってなりすましを防止できる。
また、メッセージをハッシュ化して(メッセージ)ダイジェストを作ることにより改ざんの防止も出来る。
具体的な方法
さて、具体的にはどうディジタル署名を使うのか。
以下に図で簡単に示す。
まず送信者がメッセージを作成する。
次のそのメッセージをハッシュ化し、ダイジェストを作成する。*1
さらにダイジェストを暗号化し、メッセージ本文とともに受信者へ送信する。*2
そして受信者はメッセージ本文とダイジェストを受信する。
ダイジェストは暗号化されているので、送信者の公開鍵で復号化する。
暗号化したときの鍵(送信者の秘密鍵)は送信者しか知らないから、それと対になる公開鍵で復号出来れば、送信者を確認できるというわけ*3
その後、ダイジェストから復号したハッシュと受信したメッセージから新たに生成したハッシュを照合して、一致すれば改ざんはされていないと判断できる。
この二つによって、なりすましの防止と改ざんの防止が出来る。
ディジタル署名で出来ないこと
さて、ではディジタル署名で出来ないこととはなんだろうか。