Wednesday, May 03, 2006

Cryptanalysis (暗号解読)

前回の記事のダ・ヴィンチ・コードの裁判の裁判官の用いた Smithy Code は Polyalphabetic cipher の一種で Vigenère cipher と言われる暗号です。
Monoalphabetic cipher というのはマフィアの使っていた暗号が解読されたという記事で紹介した様な暗号で、シーザー暗号の場合は平文を3つシフトさせるので、写真の Tabula recta で元の文字を一番上のアルファベットから探し、一番左のカラムのDの行と重なる文字が暗号化される文字に成ります。
平文が ANHUR の場合は DQKXU に成ります。

Monoalphabetic cipher は Frequency analysis (頻度分析) をされると、英語の場合は E が現れる頻度が多いなどのデータが出ていますので、どの文字を Key にしたのか分かってしまいます。

Vigenère cipher は複数の文字を Key にして、シフトさせていき、最後まで行くと、また最初の文字に戻ります。平文が ANHUR で Key が SHU なら、SUBMY に成ります。
前回の記事の暗号はダ・ヴィンチ・コードの裁判なのでフィボナッチ数列を Key にしていますが、 Vigenère cipher で A, A, Y, C, E, H, M, U を Key を にしたのと同じに成ります。

Polyalphabetic cipher だと頻度分析をしても、同じ文字を違う鍵で暗号化するので、分からなくなります。そこで使われるのが Kasiski test で、暗号化された文で同じ文字の並びが現れるのを調べ、同じ文字が現れる間隔の共通の因数が鍵の長さだろうと予測され、鍵の長さが分かれば、頻度分析が適用出来るようになります。

でも、文章が長くないと使えないので、ダヴィンチコードの裁判官の暗号を解読した人は、本の内容等からフィボナッチ数列を推測して解いたんじゃないかと思いますが、凄いですね。 biggrin

No comments: