それではPGPの仕組みを簡単に勉強してみましょう。
暗号メッセージの送受信を始める前に、AさんとBさんは鍵ペア(秘密鍵+公開鍵)を作成し、それぞれの公開鍵を交換しておきます。AさんBさんとも秘密鍵は誰にも知られないよう厳重に保管します。
(1) Aさんは送信メッセージを作成します。
(2) Aさんはメッセージからハッシュ関数【注1】を使用してメッセージダイジェスト【注2】(以降ダイジェスト)を生成し、自分の秘密鍵で暗号化します。
(3) Aさんはメッセージを暗号化するための鍵(共通鍵)を作成し、メッセージを暗号化します。
(4) AさんはBさんの公開鍵で共通鍵を暗号化します。
(5) Aさんは暗号化されたメッセージ、共通鍵、ダイジェストをBさんに送信します。
【注1】ハッシュ関数
与えられた原文からある一定長のデータを出力するための関数。出力されたデータから元の原文を復元することはできず、同じ出力を持つ原文を作成することは極めて困難である
【注2】メッセージダイジェスト
ハッシュ関数より生成された出力値
(1) Bさんは自分の秘密鍵を使って、自分の公開鍵で暗号化された共通鍵を復号します。共通鍵はBさんの公開鍵で暗号化されているので、対となる秘密鍵を持つBさん以外は復号できません。
(2) Bさんは復号された共通鍵を使用してメッセージを復号し、復号したメッセージからハッシュ関数を使用してダイジェストを作成します。(1)で示したように、共通鍵を復号できるのもメッセージを復号できるのもBさんだけです。
(3) Bさんは暗号化されたダイジェストをAさんの公開鍵で復号します。復号に使用したAさんの公開鍵と対となる秘密鍵を持つのはAさんだけであるため、Aさんから送信されたことが保証されます。
(4) Bさんは(2)で作成したダイジェストと(3)で復号したダイジェストが完全に一致することを確認します。2つのダイジェストが一致しなかった場合は、送信途中にメッセージが改ざんされていることになります。
こうしてAさんはBさんへ安全にメッセージを送信できます。以上のように処理がかなり複雑ですが、実際はPGPが自動的に行ってくれます。
ここまでメール暗号化の必要性、暗号化の仕組みについて勉強しました。次回は、実際にメール暗号化はどのような場面で利用されているのか、PGPの導入はどう行われているのか、確認していきましょう。
櫻井 俊宏(さくらい としひろ)
株式会社日本システムディベロップメント
プロダクトソリューション営業本部
チーフ
1980年11月4日、神奈川生まれ。2003年4月に日本システムデベロップメント(NSD)に新卒として入社。ソリューション本部に配属され、メール暗号化ソリューション「PGP」の国内総販売元としてプロダクトを立ち上げた。NSDでの主な活動は以下の通り。
Copyright © ITmedia, Inc. All Rights Reserved.