# むかしの謎のはなし - [謎勢 Advent Calendar 2017](https://adventar.org/calendars/2792) 7日目 - 完全に読み物なので出題は(あんまり)ないぞ - 学生の頃に書いた資料を元に再構成してます。 読みづらいかもしれないです。 - そんなん知ってるわって内容でもゆるしてくれ ## みえない 部屋に散りばめられた謎や暗号でなくとも、隠されたメッセージを見つけ出すのは本当に楽しい。 しかしながら、隠されたメッセージを懸命に探そうとするのはそこに何かがあることを疑っているからで、何も注意していなければ気付くことすらできない。 意味深な手紙を太陽光に当てたり、手に入れたブラックライトで問題用紙を照らすのは、そこに何かがあることを疑っているからだ。 このように、メッセージそのものの存在を隠すことは**ステガノグラフィ**と呼ばれる。 不規則な間隔で塗られたヒモを棒状のものに巻きつけると文字が浮かび上がるギミックをどこかで使った覚えがあるかもしれないが、これもステガノグラフィに分類される古典的な技法の一つになる。 ~~探索力不足に悩む人にとっては一番難しい謎かもしれない~~ ## よめない ようやく見つけた文章が意味不明なのはよくあることだ。メッセージ自体が見つけられたとしても、内容が隠されているものは**クリプトグラフィ**と呼ばれる。いわゆる暗号にあたる。 ## 暗号 ### 転置式 転置式暗号は最も原始的な暗号と言ってもいいかもしれない。暗号化するには文章の文字をランダムに並べ替える。いわゆる**アナグラム**。 暗号文となる候補が多く強力な暗号だが、メッセージの送信者と受信者が入れ替え方を覚えていなければ成立しない(復号化できない)。 > "information"を適当に並べ替えると、 > - mationinfor > - noitamrofni > - afiimnnoort >   ︙ > 候補は4989600通りあるぞ ### 換字式 ある文字を違う文字に置き換えてしまうものは換字式暗号と呼ばれる。ある1文字を別の1文字に置き換えるのは**サイファー**、単語を別の記号に置き換えるのは**コード**と呼ばれる。暗号と聞いたらまずこれを思い浮かべる人も多いんじゃなかろうか。 > #### サイファー > "accessibillity"に含まれる英字1種類を > それぞれいずれかの英字に置き換えると、 > - dffhvvleloolwb > > となる。当然読めない。 > 候補は1133836704000(約1兆)通りあるぞ > #### コード > "this is a pen"を単語ごとに別の記号に置き換える。 > | 平文 | 暗号文 > | -------- | -------- > | this | ○ > | is | × > | a | △ > | pen | □ > this is a pen -> ○×△□ > 対応表がないとよく分からない 換字式暗号は作りやすい上に、対応表さえ見つからなければかなりの固さがあった。 恐らくそんな理由から、14世紀頃までの暗号界隈では単アルファベット換文式暗号が主流だった。 あいつが現れるまでは。 ## 頻度分析 単アルファベット換文式暗号では、文章中にある英字は必ず同じ英字に変換されてしまう。 即ち、平文の言語的な特徴が暗号文にも現れてしまう。 英文中に登場するアルファベットの出現頻度というのはある程度決まっていて、 それを暗号に登場するアルファベットの頻度と比較することで、 どの英字がどれに置き換えているかを推測できてしまうのだ。 この技法は**頻度分析**と呼ばれている。 ![wikipedia先生の英文頻度分析グラフ](https://upload.wikimedia.org/wikipedia/commons/4/41/English-slf.png "wikipedia先生の英文頻度分析グラフ") > #### もんだい > ここにある文章 > - "fia tqmpe mdq nqffqd ftmz azq" > > がある。 > どうやらこれは英文を単アルファベット換文式暗号で暗号化した文章らしい。 > 暗号文中の英字の使用回数を調べたらこうなった。 > | 英字 | 回数 > | -------- | -------- > | a | 2 > | d | 2 > | e | 1 > | f | 4 > | i | 1 > | m | 3 > | n | 1 > | p | 1 > | q | 5 > | t | 2 > | z | 2 > ↓答え > ↓ > ↓ > ↓ > ↓ > ↓ > ↓ > ↓ > ↓ > ↓ > ↓ > ↓ > ↓ > ↓ > ↓ > ↓ > ↓ > ↓ > ↓ > ↓ > ↓ > ↓ > - qの使用回数が一番多いので、Eに仮置き > "fia tEmpe mdE nEffEd ftmz azE" > - 次にfが多いので、Tに仮置き > "Tia tEmpe mdE nETTEd Ttmz azE" > - nETTEdってもしかしてBETTERでは > nをB、dをRに仮置き > "Tia tEmpe mRE BETTER Ttmz azE" > - mREがAREっぽい > mをAに仮置き > "Tia tEApe ARE BETTER TtAz azE" > - ARE BETTER THAN? > tをH、zをNに仮置き > "Tia HEApe ARE BETTER THAN aNE" >   ︙ > **"TWO HEADS ARE BETTER THAN ONE"** > (2つの頭は1つに勝る, 3人寄れば文殊の知恵) このように、単アルファベット換文式暗号は頻度分析による推測で破られてしまうので、 15世紀には複数の暗号アルファベットを組み合わせたヴィジュネル暗号や、 頻度分析に応じて、その文字を示す記号を増やす同音異綴(いてつ)暗号(17世紀~)が使われるようになったよ。 #### 続き - 精神的余力があれば ##### 参考資料 - サイモン・シン「暗号解読」新潮社 人類の暗号の歴史を濃縮して紹介する1冊。 暗号の誕生からRSA暗号まで網羅。エニグマもあるぞ。 純粋に読み物として面白いのでオススメ。 電子書籍版もあるぞ(ダイマ)