見出し画像

暗号解読に挑戦:ADFGVX暗号・解答編

問題はこちら

前回の記事では、ADFGVX暗号により暗号化した文章を3つ提示した。今回はその元のメッセージと、暗号化に使用した暗号表および転置鍵を示す。

少し間を空けてから解答を掲載する。










問題1の答え

暗号文に付随して、CARL von CLAUSEWITZという人名がある。強調されているCARLおよびCLAUSEWITZが鍵である。転置鍵としてCARLを用い、換字表としてCLAUSEWITZを鍵として作った次のものを用いる。

\   A D F G V X
A   c l a u s e
D   w i t z b d
F   f g h j k m
G   n o p q r v
V   x y 0 1 2 3
X   4 5 6 7 8 9

プレーンテキストは次のようになる。

warthereforeisanactofviolenceintendedtocompelouropponenttofulfilourwill

整形すると次の文章を得る。「War therefore is an act of violence intended to compel our opponent to fulfil our will.」(してみると戦争は一種の強力行為であり、その旨とするところは相手に我が方の意志を強要するにある。)これはカール・フォン・クラウゼヴィッツの『戦争論』における、戦争の定義である。

問題2の答え

転置鍵はBISMARCKであることは分かっている。ツールを使うにあたり、換字表は仮に次のように入力してみる。もちろんこれは仮の配置であり、後で単一換字暗号を解いて正しい配置を決める必要がある。

\   A D F G V X
A   A B C D E F
D   G H I J K L
F   M N O P Q R
G   S T U V W X
V   Y Z 0 1 2 3
X   4 5 6 7 8 9

そして解読すると次の文章を得る。

DRIINUREMNCSAAKNACJDFQJORUBIYFAKBCBRDCWBHHINAMUAJITEACIBRDCRLINAFJYGAFAKBFAFINJIWJCINAMUAJIQBCIJPARL1848JDF1849GEIGYBURDJDFGHRRF

数字の1848と1849は何らかの意味がありそうなので、数字の位置は上の表通りでよさそうである。問題はアルファベットの配置だが、これは単一換字式暗号であるから解読可能である。結果、次の換字表を得る。

\   A D F G V X
A   e i s n u d
D   b l t a c f
F   g h k l m o
G   p q r v w x
V   y z 0 1 2 3
X   4 5 6 7 8 9

プレーンテキストは次のようになる。

notthroughspeechesandmajoritydecisionswillthegreatquestionsofthedaybedecidedthatwasthegreatmistakeof1848and1849butbyironandblood

整形すると次の文章を得る。
Not through speeches and majority decisions will the great questions of the day be decided—that was the great mistake of 1848 and 1849—but by iron and blood.」(現下の大問題の解決は、演説や多数決によってではなく―これは1848年および1849年の大きな欠陥でした―鉄と血によってなされるのです。)という文になる。これは1862年当時のプロイセン首相オットー・フォン・ビスマルクのいわゆる「鉄血演説」の一節である。ちなみに換字表のキーフレーズはeisen und blut(ドイツ語で「鉄と血」)である。

問題3の答え

暗号は265文字からなる。265を素因数分解すると265=5×53となる。このことから転置鍵の大きさは5と推定できる。

暗号文を53文字ずつ5つに区切る。
1:XGXGVFAADAVAVAFDVFAFXAAAADVDDDVGXFDADDAFXAAGGFAAGXXGX
2:GXGXADGAGFGAAFFVAGAFAFAFGXAAFDGAFXFFDXGVDVAFADGAVGGXG
3:GXGDDFFAGVGADAGGFVGFDFAAAXAFGVGVAFFDAXGXGXFDDFFAVXGXX
4:XGXDFDDGXAAGXGXAAAGFXDXAVFAFAAVADFDGVFDFGFXFFDDGXGXGX
5:GXGDAXGAFFAAFVAFGXADAFDVAFGXDDADFXGXAFGFAAFFAXGAXAGXX

暗号文は「GXGX…」から始まるものが3つと「XGXG…」から始まるものが2つある。うまく並べ替えれば、一次暗号文は「GXGXGXGXGX…」という形になりそうである。そのような列の並べ方は3!×2!=12通りある。これはツールを使えば総当たりで試せそうである。ツールを使うにはあらかじめ換字表も入力しなければならない。そこで、次のように入力しておく。もちろんこれは仮の配置であり、後で単一換字暗号を解いて正しい配置を決める必要がある。

\   A D F G V X
A   A B C D E F
D   G H I J K L
F   M N O P Q R
G   S T U V W X
V   Y Z 0 1 2 3
X   4 5 6 7 8 9

12通りの列の並べ方を試しつつ、頻度分析もしくはindex of coincidenceの計算を行って、もっともらしい一次暗号文を探索するのが常道である。
ところが、左から2,1,5,4,3の順に列を配置すると、次の文章が現れる。

XXXXXXXXTHECHRISTMASTRUCEWASASERIESOFWIDESPREADUNOFFICIALCEASEFIRESALONGTHEWESTERNFRONTOFTHEFIRSTWORLDWARAROUNDCHRISTMAS1914XXXXXXX9X

意味の通る文章が現れた。本来はここから単一換字式暗号を解いて、正しい換字表を確定させる必要があるが、その手間が省けた(もし仮の換字表を違ったように置いていた人がいたら、申し訳ないがもうひと手間必要である)。
前後の余計なXなどを削ぎ落とし、整形すると次の文章を得る。
The Christmas truce was a series of widespread unofficial ceasefires along the Western Front of the First World War around Christmas 1914.」(クリスマス休戦とは、第一次世界大戦中1914年のクリスマス前後に西部戦線で発生した一連の非公式の停戦である。)これはクリスマス休戦についての解説である。ちなみに転置鍵はCAROLである。


この記事が気に入ったらサポートをしてみませんか?