さて,公開鍵暗号系では誰でも自分のところにメッセージを送ってもらうための鍵(公開鍵)を公開していますので,認証という手続きが必要となります。
いま,大学生の山田君は出前をインターネットで注文しようとしています。しかし,お金が余り無いのでかけうどん(素うどんともいう。具が何にも入っていないうどんのこと)を注文するつもりです。でも恥ずかしいので他の人に知られないように暗号化して注文するつもりです。そこで
というメッセージを,出前屋さんが公開している公開鍵で暗号化して送ることにします。しかし,これだけでは不十分です。
公開鍵暗号系では,暗号化するための鍵(公開鍵)が公開してあるので誰でも調べることが出来ます。なにも山田君でなくても田中君でも
というメッセージを,出前屋さんが公開している公開鍵で暗号化して送ることは可能であるわけです。
ですから,このメッセージには山田君からだと書いてあるけど本当に山田君から送られたものなのだろうかということを確認しなくてはなりません。この確認のことを専門用語で認証といいます。そこで次のようにします。
山田君は自分の秘密鍵を使って次の二つのメッセージを送ります。
と書くことにします。つまり「僕は山田です」というメッセージは二重に鍵がかけられているわけです。
メッセージを受け取った出前屋さんは出前屋さんの秘密鍵でメッセージを開きます。すると
というメッセージを見ることになります。でも「僕は山田です」というメッセージはこの時点では山田君の秘密鍵がかけられているので意味不明のメッセージのはずです。しかし,もう一方のメッセージには「三丁目の山田だけど,かけうどん一杯出前お願いします」と書かれているので,出前屋さんは山田君の公開鍵を使って意味不明のメッセージを開封してみます。すると「僕は山田です」と書かれたメッセージを目にすることになります。山田君の秘密鍵は本人しか知らないはずですから,確かに山田君本人からのものだと確認出来ました。