いぬおさんのおもしろ数学実験室

おいしい紅茶でも飲みながら数学、物理、工学、プログラミング、そして読書を楽しみましょう

グロンスフェルト暗号の解き方

 SF作家、ジュール・ヴェルヌは『十五少年漂流記』、『海底二万マイル』などで有名です。暗号が出てくるものがあります。『ジャンガダ(大(おお)筏(いかだ))』です。推理小説には暗号がよく出てきます。しかし難しい暗号はあまりありません。解くのが難しすぎると小説として面白くなくなってしまったり、解読の過程について来られる人が限られてしまうからでしょう。コナン・ドイルの『踊る人形(The Adventure of the Dancing Men)』では人形の絵ひとつひとつがいろんなアルファベットを表している、という暗号が出てきます。これは換字(かえじ)式暗号と言われます。換字式ではEはAに、DはKに書き換える、などといったルールで暗号化します。ジャンガダで使われているのは多表式暗号です。物語では、ハリケス検事がある男の無実を証明する暗号で書かれた文書を解読しようと努力します。多表式暗号は昔は「鍵が失われると解読は不可能」などと言われたそうですが、換字式よりは難しいですが状況によっては簡単に解読されてしまうことが分かっています。しかし小説に出てくる暗号としては難しいものでしょう。今回はこの多表式暗号に近いグロンスフェルト暗号について書いてみます。原理はほぼ同じです。
 もとの文(平文、ひらぶん)を「inunonakamanoinuosan(犬の仲間のいぬおさん)」としましょう。暗号化の鍵は2031とします。暗号化は簡単です。以下のように平文の下に鍵を繰り返して書き、各文字を鍵の数だけずらせばO.K.です。iをアルファベット順で2文字ずらすとk、nはずらさないでn、uは3文字ずらしてx、……。

f:id:Inuosann:20190829221641p:plain

 ちょっと考えると、鍵を知らない第三者が暗号文を手に入れて解読することはできそうもありません。 しかし、何かの事情でこの暗号文には「inuosan」という単語が含まれていることが分かったとしましょう。どこに含まれるかは分かりませんが、例えば先頭だったらどうなるでしょうか。

f:id:Inuosann:20190829221719p:plain

 上のように、暗号文の下に「inuosan」を並べてみます。平文が鍵を使って暗号文になるのですから、iがkに変換されなければなりません。鍵は2です。次の文字はnですが、これがnに変換されるのだから鍵は0。……と進めますが、5文字目のsをqに変換する鍵はありません。表では★をつけておきました。これは先頭が「inuosan」ではあり得ない、ということを意味します。では2文字目からが「inuosan」なのでしょうか。下の表を見てください。 

f:id:Inuosann:20190829221755p:plain

さっきと同様に考えて表を作り、「inuosan」は2文字目からではないと分かります。続けて3文字目からが「inuosan」だとしたら、4文字目からが……と繰り返します。

f:id:Inuosann:20190829221831p:plain

f:id:Inuosann:20190829221906p:plain

 下のように14文字目に「inuosan」を当てはめるとちょうどぴったり、鍵が求まります。どうやら2031が鍵で、これが繰り返されているようです。

f:id:Inuosann:20190829221948p:plain

 あとは鍵を20312031……と繰り返して並べ、平文が分かってしまいます。

 この解読法は「原文仮定法」と言います。今回書いたジャンガダについての情報は、『暗号と推理小説』(長田順行1986教養文庫)、『改訂新版 暗号の数理―作り方と解読の原理 』(一松信2005講談社ブルーバックス)に載っていました。原文仮定法は『暗号と推理小説』にありました。どちらも大変面白い本です。『暗号の数理』は古い版を高校生の時に読み、その後ずっと暗号について興味を持ち続けています。いずれまた書きます。

暗号と推理小説 (教養文庫)

暗号と推理小説 (教養文庫)

 
改訂新版 暗号の数理―作り方と解読の原理 (ブルーバックス)

改訂新版 暗号の数理―作り方と解読の原理 (ブルーバックス)