レッスン
理論 — 単換字暗号:文字を数えて26!通りの鍵を破る
単換字暗号は、鍵に従って平文の各文字を別の文字へと毎回同じ規則で置き換える暗号です。アルファベット26文字の並べ替えであるため、鍵の総数は 26! ≈ 4.03 × 10²⁶ 通りに及びます。その特殊な形がシーザー暗号で、すべての文字を一律に同じ文字数だけずらします。選べる鍵は25通りしか残りません。これらに対して、暗号文に現れる文字の出現頻度を普通の文章における文字の出現頻度と比較して鍵を突き止める手法を、頻度分析と呼びます。
各記号の意味
χ²- カイ二乗値:アルファベット26文字にわたる (O − E)² / E の総和。この値が小さいほど、復号文の文字出現回数が自然な英語に近いことを意味します
O- 評価対象の復号文において、ある文字が実際に現れた回数(観測度数)
E- 同じ長さの文章において、『踊る人形』の文字比率から期待される出現回数(期待度数)
- 前提
- 暗号化されるのはアルファベット26文字のみです。空白や句読点はそのまま残るため、各単語の文字数がそのまま露呈します(踊る人形の暗号でも旗によって単語の区切りが示されていました)。ここでいう「英語の基準」には、あるホームズ作品の全39,859文字における出現回数を用いています。教材で使われる暗号文は別の作品から切り出されているため、基準となる文章自身と照合されてしまうことはありません。試行実験では、疑似乱数生成器を用いて『美しき自転車乗り』から無作為に文章と鍵を抽出しているため、何度試しても常に同じ検証結果が再現されます。
全プロセスの詳細解説
-
計算が終わり、読解が始まるとき 4 ステップ
換字暗号(600文字)を押してください。毎秒10億通りの鍵を試すコンピュータが、すべての鍵を総当たりで試すにはどれほどの時間がかかるでしょうか? そのうえで暗号文を解読してみましょう。出現頻度を数えることで何が分かり、頻出する単語からは何が読み取れるでしょうか?
-
鍵の総数は 26! = 403,291,461,126,605,635,584,000,000 通りあり、およそ 4.03 × 10²⁶ 通りです。毎秒 10⁹ 通りを試しても 4.03 × 10¹⁷ 秒かかります。1年は 3.16 × 10⁷ 秒ですから、1.28 × 10¹⁰ 年、すなわち128億年(12.8×10⁹年)の歳月を要する計算になります。
-
暗号文で最も多く現れる文字はIで、600文字中80文字、割合にして13.3%を占めます。『踊る人形』におけるeの出現率は12.44%ですから、Iはeだと判断できます。しかし、それに続く三文字のO、N、Xはそれぞれ49回、47回、45回と僅差で、確信を持って順位をつけることは不可能です。機械的に頻度順で対応づけるとt、a、oが割り当てられますが、三文字とも不正解です。結果一覧の表がその代償を物語っています。順位だけで対応づけても、正解できるのは23文字中わずか3文字、文全体の14.2%にすぎません。
-
そこで単語に着目します。三文字の単語OBJとXDIがそれぞれ5回ずつ現れており、XDIの末尾のIはeでした。ここからtheが連想されるため、Xはt、Dはhと推測できます。そうするとOBJはandである可能性が最も高くなり、Oはa、Bはn、Jはdと決まります。最も頻出する二文字の単語PK(8回)にはofが当てはまり、5回出現するXPはtoと読めるため、先ほどの推測とも見事に一致します。
-
この八つの文字をマスに入力してみてください。e、t、h、a、n、d、o、fの文字だけで、600文字中321文字、全体の53.5%が埋まり、冒頭の一行はf·o· the ·ea·· 1894 to 1901と読めるようになります。文字の出現回数から引き出せる情報はここまでです。年号の前にあるf·o·は十中八九fromですから、新たにrとmが手に入ります。ここから先は、純粋に文章を読み解く時間です。
解答
すべての鍵を総当たりするには128億年(12.8×10⁹年)かかります。文字を数えることで定まるのはeの1文字だけですが、頻出する三つの単語からさらに7文字が判明し、この8文字だけで文全体の53.5%が解読できます。
-
学習の道すじ
暗号はいかにして破られるか
参考文献 (1)
- Both passages the page counts, and Holmes's words quoted in the second and third insights: Arthur Conan Doyle, "The Adventure of the Dancing Men" and "The Adventure of the Solitary Cyclist," in The Return of Sherlock Holmes. Project Gutenberg eBook #108.