400年以上の間、暗号に残る「指紋」は残されたままでした。
どのようにして、アリスは「指紋」を隠す暗号を
考え出したのでしょう。
情報の流出は、このように防がれたのです。
答えは、ランダム性にありました。
アリスが、ランダムな表を作るために
26面のサイコロをふると考えてください。
そして、この表をボブに渡しておきます。
彼女がメッセージを暗号化するときには
この表を使って、文字を一つずつ置き換えていきます。
同じパターンの繰り返しを避けるために、このリストを
なるべく長くすることが重要です。
さて、アリスはメッセージを表を使って暗号化して、
同じ表を使って解読するボブに送ります。
ここで、暗号を盗聴しようとするイヴは、問題に直面します。
なぜなら、暗号化されたメッセージは
盗聴に対して2つの強さを、持っているからです。
一つ目に、文字変換は決して同じ規則を持たないということ。
2つ目に、暗号化されたメッセージは、
文字の出現率が均一になるということです。
ランダムに選ばれるので、頻度の差が生まれないからです。
こうして、情報の流出がなくなることで
イヴは暗号を解読することが、できなくなります。
これは19世紀の終わり頃に現れ始めた、
暗号化の最も強力な方法です。
今では「ワンタイムパッド」と呼ばれているものです。
ワンタイムパッドの強力さを理解するためには
組み合わせ爆発を理解しなければなりません。
例えば、シーザー暗号はすべての文字を
1から26の同じ規則でずらしました。
つまり、もしアリスが自分の名前(Alice)を暗号化するならば
26通りの暗号化を、作りうるわけです。
これは少ないので、簡単に全てを調べられます。
いわゆる総当り攻撃です。
この場合と比べ、ワンタイムパッドの場合、
文章中のすべての文字が
それぞれ26通りで変換されうるのです。
作られうる暗号の数を考えてみましょう。
これは、26を5乗することになります。
その結果は、ほぼ千二百万通り。
多すぎてよくわかりませんね。
では、暗号化された名前を、一枚の紙に書いて
どんどん重ねていくとしましょう。
どのくらいの高さになると思いますか?
5文字が書かれた千二百万枚の、
とても巨大な紙の山の高さは
1キロメートルを超えます。
ワンタイムパッドを使って、
アリスが自分の名前を暗号化するのは、
この紙の山の中から、無作為に1枚引くのと同じ事です。
盗聴しようとするイヴの立場からすれば
個別に暗号化された5文字は
この紙の山の中のどの1枚とも、等しいのです。
これが実際に使われている完璧な秘密化の方法です。