- ベストアンサー
単一換字暗号の解読について
単一換字暗号ですが、英語文章の場合は、 isやtheやtoみたいに、スペースや文字の長さや頻度から少しずつ粘ればできるかとおもうのですが、日本語のローマ字(ko re ha pe nn de suのような) で、かつスペースがない(母音と母音子音複合の音と区別がつかない)場合は、どのように解読していけばよいのでしょうか。 とりあえず頻度表を書いて、上位にa,i,u,e,oなどの母音がくるのかなと漠然と考えるくらいしか方法がうかびません。解読のためのアルゴリズム(力技でもかまいません)やコツがあれば教えていただけませんでしょうか
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
1.ローマ字で書いた日本語の文書を多めに用意する。これを分析して、 2.1文字についての頻度表をつくる。 3.連続する2文字についての頻度表をつくる。 4.連続する4文字についての頻度表をつくる。 5.連続する6文字についての頻度表を作る。 2,3,4,5 はコンピュータでやる。 与えられた暗号文についての対応する頻度表を作る。 頻度を比較しながら、 母音の推定 子音の推定 をする。 この推定で意味のある文章になったら解読できたとする。 でも、もともと意味が無くて文字がランダムに並んだデータだと解読できたか否か不安がのこる。 必要なら奇数の連続する文字についても頻度表をつくる。 と言うようなことが暗号解析の本に書いてありました。 データ入力と解析して、頻度表を作るプログラムはちょっと面倒かな?
その他の回答 (2)
- foomufoomu
- ベストアンサー率36% (1018/2761)
まずは、質問に書かれたように、文字の出現頻度から推測する。 つぎに、宛名、あいさつ、終わりの文、などの慣用句のところで当てはまる単語を推測する。 というのが、人間が暗号解読する場合の常套手段です。 あと、コンピュータでやるなら、単語として当てはまるものを、頭から検索していく(片っぱしから試していく)方法があるかと思います。
- ok-kaneto
- ベストアンサー率39% (1798/4531)
力技なら、それを復号したときの文が日本語として自然になっているかどうかを人間が確認するぐらいですね。 ローマ字の場合は同じ単語でも綴りが異なる場合がありますので、難しいです。 あとは、よく出る単語を辞書にしておいて、パターンマッチングでどの単語が何回出てきたかの統計をとるぐらいでしょう。