古典暗号と頻度分析 — 作るのは簡単、守り抜くのは難しい

手紙を運び屋に盗み見られても中身は知られたくない — 2000年前のカエサルも同じことを考えました。最古の暗号を実際に作り、そして統計の力で破ってみます。破り方を学ぶのは悪用のためではなく、「どこが弱いか」を知ることが強い暗号を作る唯一の道だからです。

1. 暗号の3点セット — 平文・暗号文・鍵

暗号の話は3つの言葉で始まります。守りたい元のメッセージが平文(ひらぶん)、変換後の読めない文字列が暗号文、変換のつまみにあたる秘密の数値が鍵です。

最も有名な古典暗号がシーザー暗号。アルファベットを鍵 k 文字ぶんだけ後ろにずらすだけです。下の円盤でシフト量 k を回して、平文が暗号文に化ける様子を見てください。

シーザー暗号円盤 — 外の輪が平文、内の輪が暗号文
スライダーで内側の円盤が回転し、文字の対応が変わります。光る線がいま変換中の文字。復号は逆向き(−k)に読むだけなので、受け取る側は鍵 k さえ知っていれば元に戻せます。カエサルは k=3 を愛用したと伝えられています。
C ≡ P + k (mod 26) A=0, B=1, …, Z=25 と数にして考える。「mod 26」は26文字でひと回りして先頭に戻る、という意味 — 次のレッスン「時計の算術」の主役になる記法
POINT — ケルクホフスの原理 暗号の安全性は鍵の秘密だけに頼るべきで、しくみ(アルゴリズム)は敵に知られても安全であるべき — これが現代暗号すべての大前提。シーザー暗号は、しくみがバレた瞬間に鍵の候補がたった25通りしか残らないため、この基準では即アウトです。

2. 統計で破る — 頻度分析

鍵を知らない攻撃者はどうやって破るのでしょうか。25通り全部試す総当たりも有効ですが、もっとエレガントな方法が9世紀の学者アル=キンディーが記した頻度分析です。

英語の文章では E が約13%、T が約9%…と、文字の出現率にははっきりした偏りがあります(覚え方は "ETAOIN SHRDLU")。シーザー暗号は文字を一律にずらすだけなので、暗号文でも同じ形の「山」が k 文字ずれた位置に現れるのです。

下のデモでは、秘密の鍵で暗号化された文章が与えられています。シフト量のスライダーを動かして、2つのヒストグラムの形が重なる(一致度が最大になる)点を探してください。見つからなければ「自動解読」で全シフトを走査できます。

頻度分析で破る — ヒストグラムの山を重ねろ
上段: 水色=シフト s で復号してみた文字の頻度、オレンジ=英語の標準頻度。下段: 各シフトの一致度(相関係数)。正しいシフトでだけ相関が跳ね上がり、復号文が突然英語として読めるようになります。鍵の総当たりすら不要 — 統計だけで鍵が浮かび上がるのが頻度分析の怖さです。
注意 — なぜ「破り方」を学ぶのか 攻撃手法を学ぶ目的は、悪用ではなく弱点の原理を理解して防御に活かすことです。現代の暗号標準(AES や RSA など)は、世界中の研究者が何十年も攻撃を試みて破れなかったものだけが生き残っています。逆に言えば、攻撃の検証を受けていない「自作暗号」は絶対に実戦投入してはいけません — 本レッスンの通り、作った本人が思うより暗号はずっと簡単に破れるのです。

3. 多表式への進化 — ヴィジュネル暗号

頻度分析への対抗策として16世紀に登場したのがヴィジュネル暗号です。鍵として単語(鍵語)を使い、文字の位置ごとに違うシフト量の円盤を使い回します。鍵語が SUN なら、1文字目は S(+18)、2文字目は U(+20)、3文字目は N(+13)、4文字目はまた S(+18)…という具合です。

同じ E でも位置によって別の文字に化けるため、頻度の山がならされて単純な頻度分析が効かなくなります。しかし鍵語の長ささえ推定できれば — 同じ円盤を使った文字だけを列として集めると、各列はただのシーザー暗号に戻ってしまいます。

ヴィジュネル暗号 — 文字ごとに違う円盤、そして列分解
上段: 色=使う円盤(鍵の文字)。同じ平文の文字でも列が違えば別の文字になります。下段は同じ鍵で長文を暗号化したときの文字頻度。チェックを入れて列ごとに分解すると、消えたはずの「E の山」が各列にくっきり復活 — 列ごとに頻度分析すれば鍵語が1文字ずつ割り出せてしまいます。
一歩先へ — 「作っては破られる」攻防の歴史 シーザー暗号(円盤1枚)は頻度分析に敗れ、ヴィジュネル暗号(円盤数枚)は「解読不能暗号」と300年呼ばれた末に、19世紀バベッジとカシスキーの列分解に敗れました。20世紀のエニグマ(1文字打つたびに円盤が回転、設定は約1020通り)ですら、運用の癖という統計的な隙を突いたチューリングらの解読機に敗れています。暗号の歴史は「破られては強くなる」の繰り返し — だから現代の暗号は、破ろうとする研究そのものを設計プロセスに組み込んでいます。

4. まとめ