下記に私が勝手に作成したストーリーを元に説明したいと思います。 例として少々ふさわしくないかもしれませんが、分かりやすくするためだと思ってご勘弁ください。
登場人物と設定:太郎君、花子さん:太郎君と花子さんは恋愛真っ最中 魔利子(太郎と花子の間柄に嫉妬に燃やす同僚)
太郎君は花子さんへ、週末のデートの約束をするためにメールを使って以下の文章をに送りました。
【太郎→花子】 花子さん。予定どおり今度の日曜日は、朝10:00に迎えにいくよ!
太郎君のメールを盗聴していた魔利子は、太郎のメールの内容を書き換えてしまいました。
【花子が受け取ったメールの内容】 申し訳ないけど、もう君とは逢わないことにした。二度と電話もメールもしないでほしい。
続けて魔利子は花子になりすまし、こんなメールを太郎に送りました。
【太郎が受け取ったメールの内容】 何よ!突然!最低な人だわ。こっちから願い下げよ!
後日、太郎と花子は魔利子の悪戯だとわかり、魔利子を問い詰めましたが「知らない」と言い張り、2人は諦めました。
さて、上記の例では問題点が4つあります。
1つ目 | 「盗聴」されてしまったこと。 |
2つ目 | 「改ざん」されてしまったこと。 |
3つ目 | 「なりすまされた」こと。 |
4つ目 | 「否認」されたこと。 |
です。では、安全な通信を確保するには、何が重要なのでしょう?
1 | 機密性の保持 | 盗聴防止 |
2 | 正真性の確認 | 改ざん防止 |
3 | 認証 | なりすまし防止 |
4 | 否認不可能性 | 否認防止 |
上記のような脅威を防ぐには「暗号技術」が重要な役割を果たすのです。 では、どのような暗号技術があるのか簡単に見てみましょう。
対称暗号(共通鍵暗号) | 閉める鍵と開ける鍵は同じ |
非対称暗号(公開鍵暗号) | 閉める鍵と開ける鍵は違うものを用いる |
証明書 | 公開鍵の持ち主を証明する(印鑑証明書) |
デジタル署名 | 誰が作成したものか?(実印や署名)と検証 |
ハッシュ関数(メッセージダイジェスト関数) | 不可逆な一方向関数 |