当サイトの一部ページには、アフィリエイト・アドセンス・アソシエイト・プロモーション広告を掲載しています。

Amazonのアソシエイトとして、Security Akademeiaは適格販売により収入を得ています。

広告配信等の詳細については、プライバシーポリシーページに掲載しています。

消費者庁が、2023年10月1日から施行する景品表示法の規制対象(通称:ステマ規制)にならないよう、配慮して記事を作成しています。もし問題の表現がありましたら、問い合わせページよりご連絡ください。

参考:令和5年10月1日からステルスマーケティングは景品表示法違反となります。 | 消費者庁

POLYALPHABETIC SUBSTITUTION PUZZLE 03【Cypher編】

はじめに

いつもブログをご覧いただきありがとうございます。

コーストFIRE中のIPUSIRONです😀

IPUSIRONのプロフィールを見る

暗号文

LAFLUIWOYWPADUFHSNBVSWVNDZQDUF
RBPLUYQPLWLPHZRLUEDUBSYMIPRDIJ
HTYQUCUZYLKFRSKHZBUHULUEKPQFOY
LYSSAMWOCWHZOLGDTDDPPOFDDTGOPY
UDGWOYOSDRYKVVDVLAULRZYGWPLJZY
QKYPTWVLJIAFHHSWOMUVDDAPLMJLUE
PVLRNPDWFXWMQAFHZSEQCFAGQDFLJF
LHLDSWCLMQLFXUBULBDUBVPVWFQHWY
UHRHJGSOCUZZXAGFVLILQVAFDARKPQ
LZCQAGULJBUCZAMPL

ヒント

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

DUF LUE

Try to find rotations which result in very few low frequency letters such as K, Q, X, J or Z.

解答への道

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

1:暗号文を眺める

・単語の区切りがない。

・暗号文メッセージが長い。

多換字式暗号なので、そのまま頻度分析はできません。やるなら、鍵長を推測・特定してから、グループ分けしてからなら、頻度分析できます。

・解読すべき暗号文キーワードは"PVLRNRDWF"

2:繰り返しの3連字を探す

dCodeで繰り返し文字列を探します。

最初は4連字を探しましたが、2回以上のものがありませんでした[1]本当は5連字が望ましいですが、4連字さえも見つかりませんでした。『暗号技術のすべて』P.77

次に3連字を探します。

左側の結果から2以上のものを探します。

7つ("LUE"、"WOY"、"DUF"、"DUB"、"KPQ"、"AFH"、"CUZ")の3連字が見つかりました。

ヒントの1行目には"DUF"と"LUE"が示されていました。

そこで、この2つに注目することにします。

[1]"DUF"間の文字間隔を調べる

LAFLUIWOYWPADUFHSNBVSWVNDZQDUFRBPLUYQPLWLPHZRLUEDUBSYMIPRDIJHTYQUCUZYLKFRSKHZBUHULUEKPQFOYLYSSAMWOCWHZOLGDTDDPPOFDDTGOPYUDGWOYOSDRYKVVDVLAULRZYGWPLJZYQKYPTWVLJIAFHHSWOMUVDDAPLMJLUEPVLRNPDWFXWMQAFHZSEQCFAGQDFLJFLHLDSWCLMQLFXUBULBDUBVPVWFQHWYUHRHJGSOCUZZXAGFVLILQVAFDARKPQLZCQAGULJBUCZAMPL
            ---            ---

「1番目の"DUF"」と「2番目の"DUF"」の文字間隔=15文字

共通する因数は、1, 2, 3, 5, 15

[2]"LUE"間の文字間隔を調べる

LAFLUIWOYWPADUFHSNBVSWVNDZQDUFRBPLUYQPLWLPHZRLUEDUBSYMIPRDIJHTYQUCUZYLKFRSKHZBUHULUEKPQFOYLYSSAMWOCWHZOLGDTDDPPOFDDTGOPYUDGWOYOSDRYKVVDVLAULRZYGWPLJZYQKYPTWVLJIAFHHSWOMUVDDAPLMJLUEPVLRNPDWFXWMQAFHZSEQCFAGQDFLJFLHLDSWCLMQLFXUBULBDUBVPVWFQHWYUHRHJGSOCUZZXAGFVLILQVAFDARKPQLZCQAGULJBUCZAMPL
                                             ---                                 ---                                                                                             ---

・「1番目の"LUE"」と「2番目の"LUE"」の文字間隔=36文字[2]'l’のインデックスの差分を取ると計算できます。"LUE"間の文字数をカウントして33と判断しないようにしてください。

⇒約数=1, 2, 3, 4, 6, 9, 12, 18, 36

・「2番目の"LUE"」と「3番目の"LUE"」の文字間隔=96文字

⇒約数=1, 2, 3, 4, 6, 8, 12, 16, 24, 32, 48, 96

共通する因数は、1, 2, 3, 4, 6, 12

the ←平文
??? ←鍵
LUE ←暗号文

したがって、[1][2]の共通因数を取ると、2と3になります。

鍵長が2というのは考えにくいので、3と仮定します。

4:暗号文メッセージを3グループに分割して、頻度分析する

暗号文メッセージに1~3のインデックスを割り当てます。

LAFLUIWOYWPADUFHSNBVSWVNDZQDUFRBPLUYQPLWLPHZRLUEDUBSYMIPRDIJ
123123123123123123123123123123123123123123123123123123123123

HTYQUCUZYLKFRSKHZBUHULUEKPQFOYLYSSAMWOCWHZOLGDTDDPPOFDDTGOPY
123123123123123123123123123123123123123123123123123123123123

UDGWOYOSDRYKVVDVLAULRZYGWPLJZYQKYPTWVLJIAFHHSWOMUVDDAPLMJLUE
123123123123123123123123123123123123123123123123123123123123

PVLRNPDWFXWMQAFHZSEQCFAGQDFLJFLHLDSWCLMQLFXUBULBDUBVPVWFQHWY
123123123123123123123123123123123123123123123123123123123123

UHRHJGSOCUZZXAGFVLILQVAFDARKPQLZCQAGULJBUCZAMPL
12312312312312312312312312312312312312312312312

インデックス1、インデックス2、インデックス3のグループに分けます。それぞれのグループをグループ1、グループ

2、グループ3と呼ぶことにします

グループ1 LLWWDHBWDDRLQWHLDSIDHQULRHULKFLSWWODDODOUWORVVUZWJQPVIHWUDLLPRDXQHEFQLLDCQXUDVWHUHSUXFIVDKLQUBZP
グループ2 AUOPUSVVZUBUPLZUUYPITUZKSZHUPOYAOHLTPFTPDOSYVLLYPZKTLAHOVAMUVNWWAZQADJHSLLULUPFWHJOZAVLAAPZALUAL
グループ3 FIYAFNSNQFPYLPREBMRJYCYFKBUEQYSMCZGDPDGYGYDKDARGLYYWJFSMDPJELPFMFSCGFFLWMFBBBVQYRGCZGLQFRQCGJCM

それぞれのグループで頻度分析します。

dCodeを使いました。

[1]グループ1を頻度分析した結果

[2]グループ2を頻度分析した結果

[3]グループ3を頻度分析した結果

[1]~[3]の結果とビジュネル表より、次を主張できます。

・グループ1の頻度分析の結果より、平文文字’e’に対応する暗号文文字の候補は、’D’、’L’、’W’⇒それぞれの鍵文字の候補は’Y’、’G’、’R’

・グループ2の頻度分析の結果より、平文文字’e’に対応する暗号文文字の候補は、’U’、’A’、’L’⇒それぞれの鍵文字の候補は’P’、’V’、’G’

・グループ3の頻度分析の結果より、平文文字’e’に対応する暗号文文字の候補は、’F’、’Y’、’G’⇒それぞれの鍵文字の候補は’A’、’T’、’B’

まだ手がかりが少ないし、このままでは誤った方向に進む可能性があります。

これについては、いったん保留しておきましょう。

5:"the"から鍵キーワードを特定する

“LUE"、"WOY"、"DUF"、"DUB"、"KPQ"、"AFH"、"CUZ"の3連字は複数回現れていることは前述しました。

複数回現れるということは、このうちのどれかが"the"に復号される可能性が高いといえます。

[1]"LUE"が"the"に対応すると仮定した場合⇒ここでの鍵は"CMZ"⇒"LUE"の前に45文字(3の倍数)ある⇒鍵キーワードは"CMZ"

[2]"WOY"が"the"に対応すると仮定した場合⇒ここでの鍵は"CGY"⇒(1番目の)"WOY"の前に6文字ある⇒鍵キーワードは"CGY"

[3]"DUF"が"the"に対応すると仮定した場合⇒ここでの鍵は"JMA"⇒"DUF"の前に12文字ある⇒鍵キーワードは"JMA"

[4]"DUB"が"the"に対応すると仮定した場合⇒ここでの鍵は"JMW"⇒"DUB"の前に48文字ある⇒鍵キーワードは"JMW"

[5]"KPQ"が"the"に対応すると仮定した場合⇒ここでの鍵は"QHL"⇒"KPQ"の前に84文字ある⇒鍵キーワードは"QHL"

[6]"AFH"が"the"に対応すると仮定した場合⇒ここでの鍵は"GXC"⇒"AFH"の前に160文字ある⇒3で割ると1余る⇒鍵キーワードは"CGX"

[7]"CUZ"が"the"に対応すると仮定した場合⇒ここでの鍵は"IMV"⇒"CUZ"の前に65文字ある⇒3で割ると2余る⇒鍵キーワードは"UZC"

英単語らしい鍵があれば、それが正しい鍵の可能性が高いといえましたが、すべてランダムな3文字でした。

こうなった場合は、実際に得られた鍵単語で復号して、英文らしいものを探します。

dCodeのビジュネル暗号の暗号化ツールを活用します。

ただし、デフォルト設定だと、Cypherで与えられたビジュネル表と違っています。

Cypherのビジュネル表は最初の行が"BC…ZA"です。一方、dCodeのデフォルトのビジュネル表は最初の行が"AB…Z"です。

これを調整するには、2つの方法があります。

①ツールに与える鍵を+1する。例えば、鍵キーワードが"ABC"なら、ツールには"BCD"を指定する。

②設定のアルファベットの並びを調整する。デフォルトでは"ABCDEFGHIJKLMNOPQRSTUVWXYZ"になっているが、"ZABCDEFGHIJKLMNOPQRSTUVWXY"にする。

今回は後者を選択します。

[1]鍵キーワード:"CMZ"
INFIHITBYTCAAHFEFNYISTINAMQAHFOOPIHYNCLTYPEMRIHEAHBPLMFCRAVJEGYNHCRMYIXFOFKEMBRUUIHEHCQCBYILSPNMTBCTUZLYGAGDACPLSDAGGLCYRQGTBYLFDOLKSIDSYARYRWLGTCLGMYNXYMGWSYJFNFEUSTBMRIDANPIZJIHEMILOAPAJFUJMNNFEMSBDCCNGNQFIWFIULAFWZYMNYFUHBRYBAHBSCVTSQEJYRUREWGPBCRMZUNGCILFYQSNFANRHCQIMCNNGRYJYHCWNMMY

[2]鍵キーワード:"CGY"
ITGINJTHZTIBANGELOYOTTOOASRANGOUQINZNIMTEQESSINFANCPRNFISABKEMZNNDRSZIDGOLLESCRAVINFHIRCHZIRTPTNTHDTAALEHAMEAIQLYEAMHLIZRWHTHZLLEORLSOESEBRESWRHTIMGSZNDZMMXSEKFTGEATTHNROEATQIFKINFMOMOGQAPGUPNNTGESTBJDCTHNWGICGIAMALXZENNEGUNCRECANCSIWTYREPZRASECHPHDRSAUTHCOMFERSTGATSHIRISDNTHREKYNDWTNME

[3]鍵キーワード:"JMA"
BNEBHHMBXMCZTHEXFMRIRMIMTMPTHEHOOBHXGCKMYOXMQBHDTHAILLYCQTVIXGXGHBKMXBXEHFJXMAKUTBHDACPVBXBLRINLMBBMUYEYFTGCTCOESCTGFECXKQFMBXEFCHLJLICLYZKYQPLFMCKZMXGXXFGVLYIYNEXURMBLKICTNOBZIBHDFIKHAOTJENJLGNEXMRUDBVNFGQEBWEBUKTFVSYLGYENHAKYATHALCUMSPXJXKUQXWFIBBKMYNNFVIKYYPLNETNQACPBMBGNFKYIRHBPNLFY

[4]鍵キーワード:"JMW"
BNIBHLMBBMCDTHIXFQRIVMIQTMTTHIHOSBHBGCOMYSXMUBHHTHEILPYCUTVMXGBGHFKMBBXIHFNXMEKUXBHHACTVBBBLVINPMBFMUCEYJTGGTCSESGTGJECBKQJMBBEFGHLNLIGLYDKYUPLJMCOZMBGXBFGZLYMYNIXUVMBPKIGTNSBZMBHHFIOHASTJINJPGNIXMVUDFVNJGQIBWIBUOTFZSYPGYINHEKYETHELCYMSTXJBKUUXWJIBFKMCNNJVIOYYTLNITNUACTBMFGNJKYMRHFPNPFY

[5]鍵キーワード:"QHL"
USTUMWFGMFHOMMTQKBKNGFNBMREMMTATDUMMZHZFDDQRFUMSMMPBQARHFMAXQLMZMQDRMUCTAKYQRPDZIUMSTHEOGMUQGBSAFGQFZNXDUMLRMHDXXRMLUXHMDVUFGMXKRAQYENREDODDFIQUFHZSRMZCMYLKEDXRSTQZGFGADNRMSDUEXUMSYNZAFDMOTGOAZSTQRGNIQOSUZVTUBTUZZMKKLDAZDTGMPDDPMMPEHJFXEQOMDZFQBUBGQDRNGSUONZRDEESTMSFTHEURQZSUDDXKMQISAYD

[6]鍵キーワード:"CGX"
ITHINKTHATICANHELPYOUTOPASSANHOURINANINTERESTINGANDPROFITABLEMANNERSAIDHOLMESDRAWINGHISCHAIRUPTOTHETABLEIAMFAIRLYFAMILIARWITHALLFORMSOFSECRETWRITINGSANDAMMYSELFTHEAUTHOROFATRIFLINGMONOGRAPHUPONTHESUBJECTINWHICHIANALYZEONEHUNDREDANDSIXTYSEPARATECIPHERSBUTICONFESSTHATTHISISENTIRELYNEWTOME

[7]鍵キーワード:"UZC"
QACQUFBOVBPXIUCMSKGVPBVKIZNIUCWBMQUVVPIBLMMZOQUBIUYXYJNPOIIGMTVVUZZZVQKCWSHMZYZHRQUBPPNKOVQYPXAJBOZBHWTLDITAIPMTFAITDTPVZDDBOVTSAWYHAVAALXZLOEYDBPIOZVVKVUTTALGNACMHPBOJZVAIAMQMGQUBUVIWNMIWCCWJVACMZPJQZKADVDCQJCQHIISTHLJVLCCUYZLYIUYAPSBFNMWVZHOMJDXOZZZWCADKVINLNAACIAOPPNQZZVADZLGGUZEAJUL

[6]の以外は、英文らしさはありません。

ゆえに鍵キーワードが"CGX"に確定しました。

復号結果が見やすいように適当に場所に空白と改行を入れると、次のようになります。

I THINK THAT I CAN HELP YOU TO PASS AN HOUR IN AN INTERESTING AND PROFITABLE MANNER SAID
HOLMES DRAWING HIS CHAIR UP TO THE TABLE
I AM FAIRLY FAMILIAR WITH ALL FORMS OF SECRET WRITINGS AND AM MYSELF THE AUTHOR
OF A TRIFLING MONOGRAPH UPON THE SUBJECT IN WHICH I ANALYZE ONE HUNDRED AND SIXTY SEPARATE
CIPHERS BUT I CONFESS THAT THIS IS ENTIRELY NEW TO ME

6:解読すべきキーワードを特定する

“PVLRNRDWF"は"MONOGRAPH"に解読されています。

これが正解のキーワードになります。

解答

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

↓↓下にスクロール↓↓

補足

アーサー・コナン・ドイル著『踊る人形 – シャーロック・ホームズの帰還』("The Adventure of the Dancing Men – The Return of Sherlock Holmes")からの2ヶ所抜粋して、つなげたたものが平文メッセージになっています。

“I think that I can help you to pass an hour in an interesting and profitable manner,” said Holmes, drawing his chair up to the table

I am fairly familiar with all forms of secret writings, and am myself the author of a trifling monograph upon the subject, in which I analyze one hundred and sixty separate ciphers, but I confess that this is entirely new to me

解読手法をより知りたい方へ

参考図書

カシスキー検査については何度か取り上げています。

『暗号技術のすべて』P.75-

『Pythonでいかにして暗号を破るか』P.379-

文字の間隔(スペーシング)の数え方を知りたい方にもどうぞ。

おわりに

以上で多換字式暗号ステージ(ルーム 04)はすべてクリアしました。

References

References
1 本当は5連字が望ましいですが、4連字さえも見つかりませんでした。『暗号技術のすべて』P.77
2 'l’のインデックスの差分を取ると計算できます。"LUE"間の文字数をカウントして33と判断しないようにしてください。

Cypher古典暗号

Posted by ipusiron