The Kryptos Challenge

2022/06/11

暗号

2020年にロールス・ロイスが暗号をモチーフにしたKryptosというコレクションを発表し、それに伴って暗号チャレンジのキャンペーンを行っていました。


ロールス・ロイスが謎解きのオンラインゲームを発表 (Octane)


The Kryptos Challenge


ステージ1-3までは簡単な謎解きや暗号の歴史に関するクイズなど易しい問題でしたが、最終のステージ4で急にガチな感じになって面白かったのでここに解答を記載しておきます。


なお、キャンペーンはすでに終了しています。クリア者から抽選で(上の記事では先着順と書いてありますが、規約では抽選となっていました)10名にパーソナライズされたロールス・ロイスのトレッドプレートが贈られるとのことでしたが、残念ながら私は当たりませんでした。


さて。すでに本家のコンテンツが消されてしまっているようで問題文の全体が確認できないのですが、つまりは下記の暗号を解読せよという問題でした。指示文はXORを仄めかすくらいで、あとはノーヒントだったと思います。


12064f3a0801000d0055611a094e201d1311002b12432349100c0a1b320f4e2b17454f124f59240d1e5374010f004f6907482d49060102072f0049210316001b0900291901413a03081a446e002a200017100a1c384200380b13451a4f492f18030020000454533d0141260d17440a086107543c44216e354f4133094c453a0c0d11533a5349261a10050b0d241d0020026f4306165035030b523518091d4369104f2504110a0c0d201a49200a4b2a7e6561324c0d0027180417492c000c680111090400324e49211711491a0c54281a094c2d48051153200145680a0b0a0b0b221a49200a45411a0b002c191855350441014e2d16523b1d050a01072f090e45300d4f01084861031952740b1311413d1a4f26490b02450d3317503b0b0252151f48280f4c4d311b121547201d4768190b0d0b1a324e542044040017004e351e0d443d0b151b523053532d1d440b03642803503a081645074f0d610302452748151c413d53482107030145072f1d542a0501001b01002203024331090d1d4e2e534d2d080a0d0b09610f4e2b4415521b1b452218054e33620a1a4f3e1f452c0e0144031c2e030020100d45061c0e4b666663261111004f2e014138011d43164e311c453c010b43114f492f4c0d4e3701041a546910493e00080d1f0f35074f21174549074f4f2c020550260d12114e3d5d000f1b01010e4e2c1754276e1650110e4b324c0346741c0911000d164c38010d074521330f4323014900154f53200f1e453048121d542c5357200c1601451e33015027010649111c0036091e45741b09064f3c17452c49130d11064b03593c1000520d410008024c413a0b08114e3d53652f101410494e3506456f100a4d164f4f274c024f360404194127536b200711090d01350b506f2d2c00030e536108055337071711522c17003c066e06004e2400433d1d1554110b0036051848741c0911002c125224000117114e2a004f380a4555070a5361030a003c0104064f2e1f5938010d07451d3803422008160e542e4e254c054e5e090f17492c1d54683b0b090042611a482a440c4c1842462018094474221418493c00000b080117041c610d493d07104c151b45254c1f45371a040000201d46271b090511072e00002e090a4e131c544b0405537409131959691445260c1605091d610a553d0d0b475418413318054d311b41165969164d38050b1d0c00264e5427014553010d533505185520010e1a002a1a50200c164845002e192a2e14114c0d4f52240a0952260d0554542653413b49100c004e020f453c05170017065029091e0e5e626b3553690749250c44141701261c453c170044584f4f341e4c46351b021d4e280749270744130c1a294e433d1d15541b0852201c0459741c13154e3a1045260d01004b4e0c01442a160b2a170a4e35191e49311b411c413f16002a1b0b110206354e4620161148540e00321b094c38480e12002f06523c001201450d2e0a45614423521b02003504090006071211543d12001b1d0b0a00424b0f4e6f010b4913024135050f00360400174b6911413b080810451d2d0f426f020a551a0b0023154c6e35180e1845281d073b49051608176d4e57270d0648541841324c054e270b131d422c172a3f00100c4529330b452448456513165035050d4e740008115226144c31190c0d061d610f4e2b4420470d1f54280d0200300d0c1b5420100e683d0b4432013302446f330452542669661f664539180d1b5924164e3c490b02451a290b000a0a0c47190e000c0d0f483d060458002b014924050d050b1a2d17002b010345151b45254c0e5974060e1a45691c54200c164411062000000e08044e7e3b55330502477848151c45691e413c010109041a280d492e0a45411a0b003105034e310d13544f2f5354200c0b16001a280d412344064f191f5535091e00270b08114e2a16002907006e041c35074626070c41184f492f18094c380106114e2a160e42636e2509026101466f100d45070a0028020a4c210d0f17453a53482d050044161920170020120052541b48244c0f523109151d4f27534f2e493316040735060004161c500000536d4c0e5520480f1b4e2c794d271b01441601611a482e0a4549001c002f0d014527090a110c6907482d492f161c1e3501536f370655181f54341e090e742b1311413d1644680b1d442403241c492c050b00151d54281f182a1e010c5473281d42271b0a48451a290b0004161c50000053613f0f5538181501522c53493b49080b060f350b446f0b0b00000745610b1e4f21060507002615003c010144260b2f1a522e086f691a1b452d0005473106021100081445260a1d444d2d082f096f0d0b0022065226050249354441210e1a5d61684444050b0a611c4522050c4e074f552f1f034c220d0554542653542000176e010f38402a456e234f064f44240f0d44311b4d54542116522d490c05130b610c452a0a45571c065331091e537407075472261f4c3b44360b1c0d2449536f090a541b1d00220d1e5374180d1559201d4768086e070000351c412344174f180a0028024c533b0504544f2f5348211a100b1717661d00220b1654540c4c20020845271c081a45691e4f250c0a1016406125523614114f074f77330d05543c48001d4d3a79542749011c110b2f0a003b0c0c53540141331e0d543d1e0454412717002d1a10050702281d486f0d1153110346610d1f0035480c1b442c014e680501030000255500200a000003074f3209664d2d1b15115230535721050844170b2c0f492144164f541a4e350500003548161b523d1b5968040d0a014e311c453c010b54074f49351f094c32464130453f164c2719010045072f64532a0717451716002e1a09527409410057265e592d081644150b33074f2b4845541c0a002203004c310b151d4f27534f2e495154450d201c536f0d160015010029030141330d41004f69124c2463100c041a6107536f070a4e170a412d09080e742514185420034c2d49070d1506241c536f080c56114f492f4c0d4e304800064f3c1d44680c05070d4e220f526344044e104f41330966453a0b130d503d1644681e0d100d4e2201442a44005817035532051a4538114110453f164c27190100450f354e67200b01571b00446d4c18483148291b4d2c534f2e49360b0902324372201d06455a656f2f0015003201171100201d44211f0d00100f2d1d00260a45450c06533509024331480201523b164e3c051d440d0f370b002e070645071c0035034c543c0d411f453053433a00066e484e280043231101491a080035040900300d121d472716523b49050a014e240047260a0045061c003504094d270d0d02453a5d00090700440a002d17003b0c0000121a54341e0900240915064f27002a270f442f1717311a4f3c443252150654294c1b4938044111562c010020081201451a290b002014154f061b552f051859741c0e54552701413e0c08440c1a324e543d110000070a433309180e5e626b234826535721050844061c200d4b6f100d45540c4f2509532a


まずは文字列をパッと見てわかることは、16進数の数字だなあと言うことです。

文字数は5068文字と多く、また0や1が多くaやbが少ないなどの偏りがあります。


さらに注意深く眺めてみると

12 06 4f 3a 08 01 00 0d 00 55 61 1a 09 4e 20 1d 13 11 00 2b 12

二桁区切りの上の桁が0-7の範囲に収まっており、ASCII Codeっぽさを感じます。


文章の長さ、ASCII Code、XORなどのヒントから、これは2進数Vigenereだと当たりをつけました。

普通のVigenereはA-Zのアルファベット上でKeyによるROTを行いますが、これは平文・キーともにASCII Codeを2進数で表現した上でROT (2進数なので実質的にXOR)を行うのではないかと。


例:A=41 (HEX) = 01000001 (BIN) を k = 6b (HEX) = 01101011 (BIN) でXORすると 00101010 = 2a


このような暗号化に対応した解読ツールは私は知りません。しかし手法が実質的にVigenereと同じであれば、Vigenereの常套解読手段Kasiskiの方法が同様に使えるはずです。


まずはキーの長さを調べます。

ASCII Codeの単位 12 06 4f 3a 08 01 00... に分けて調べると、00から7Fくらいまでの数字がほぼ全種類登場します。そこでキーの長さをNと仮定した時に1番目の文字で変換される部分、2番めの文字で変換される部分・・・を順に調べます。


例えばN=3のときは

1番目の文字で変換される部分: 12 3a 00...
2番目の文字で変換される部分: 06 08 0d...
3番目の文字で変換される部分: 4f 01 00...

と3つのグループに分かれます。それぞれのグループでどのような数字が登場するか頻度を調べますが、多くの場合はかなりランダムなものとなっています。N=3の場合は各グループに100種以上の数字が現れます。


ところがN=28で試すと、1番目の文字で変換される部分にはわずか26種の数字しか登場しないことがわかります。同様に、2番目の文字で変換される部分、3番目の文字で変換される部分・・・にも25種とか26種といった、非常にアルファベットらしい種類数の数字しかなく、これによって周期が28文字のキーで暗号化されているということがわかりました。


次は、この28文字のキーフレーズが何であるのかを特定していきます。


まずは「1番目の文字で変換される部分」だけのグループを考えます。

ここにはいま26種の数字が雑然と含まれていますが、これらがすべて同じ数字でXORされたグループであるならば、元の文章における頻度的な特徴が残されているはずだと考えます。数字の出現頻度を調べると、91個中一番頻度が多いのは61で12回(約13%)、2番目が35で10回(約11%)です。


元の文章がスタンダードな英文だとすると、一番出現頻度が多いのは一般的にeで、アルファベットのうち約13%程度を占めます。ただし、今回はASCII CodeのXORによる変換ですので、アルファベット以外の部分も変換されます。

この場合、一番出現頻度が多い文字はスペースとなります。


よって、この61または35がスペースまたはeにデコードされるべき文字ではないかと考えられます。スペースのASCII Codeは20 (HEX) = 00100000 (BIN)ですので、61 (HEX) = 01100001 (BIN) が 00100000 (BIN)になるようなキーを考えると、その数字は 01000001 (BIN)となり、これはAのASCII Codeです。このキー「A」を用いて「1番目の文字で変換される部分」をXORすると、結果は見事に英文の文字部分に収まり、「Ssny eascnrsin optmrr (改行) tteky  o goCghMto (改行) l,r rhlaiit at tehtnI y et' nidmpnra ecctslvielphsa」となり、どうやらAがキーの1番目の文字らしいということが分かりました。


同様に「2番目の文字で変換される部分」「3番目の文字で変換される部分」に対して同じ分析を勧めていくと、「2番目の文字で変換される部分」についてはnをキーとして、「3番目の文字で変換される部分」についてはスペースをキーとしていることが見つけられます。


なお、最頻値が常にスペースに相当するとは限らないため、文章の繋がりを見たり、そのキーで全体がうまく文字に変換されているかなど逐次見ながら一つ一つ作業を進めました・・と書くとかなり根気強い作業の用に見えますが、実際はそれっぽい候補をラフに試していけば、結構簡単に文字が埋まっていく感じです。


「28番目の文字で変換される部分」まで全部作業を完了させると、キーは順に「An Ode to All That Is Hidden」となりました。


これを用いて問題の暗号全体をデコードすると、以下の文章となります。


「Should you venture back thousands of years into the beginnings of humankind's

history, woven into the strands of its DNA are endless instances of

cryptographic communication.


As a species, humans instinctively desire connection and mutual understanding.

Though our creation of cryptographic messaging points to a contradictory set of

impulses - ones that hinge instead on concealing meaning and protecting

knowledge from others.


Cryptography's presence in ancient civilizations is omnipresent. Greek myth

speaks of the Delphic Oracle, a sacred site where prophecies were shrouded with

mystery. In ancient Egypt, the tomb of nobleman Khnumhotep II was discovered to

be encrypted with the earliest known uses of hieroglyphic symbols. And in

ancient Rome, the ill-fated Julius Caesar circulated secret information amongst

his army generals during wartimes by employing the substitution cipher, now

aptly referred to as the Caesar cipher.


As time progressed, our fascination with cryptography transcended. Modern

centuries have brought forth a swell of furtive code. From the Rosetta Stone,

an enigmatic black basalt slab found by Napolean's army, which was inscribed

with Greek, Egyptian hieroglyphics and Egyptian demotic. To World War II's

employment of the Enigma Machine, brilliantly defeated by none other than Alan

Turing, the mathematician and pioneer of theoretical computer science and

artificial intelligence.


All of these influences held sway over the creation of Wraith Kryptos, but none

more so than its namesake, the Kryptos Sculpture. Created by American artist

Jim Sanborn, the Kryptos Sculpture is located on the grounds of the Central

Intelligence Agency (CIA) in Virginia, U.S.A - and remains unsolved to this

day.


For decades, there have been whispers of Rolls-Royce's motor cars playing a

central role in some of history's most clandestine moments. Kryptos Wraith aims

to extend this narrative and establish itself as a modern legend; one whose

mystery will remain so until a worthy mind presents itself. Developed in

secrecy over a two-year period, the collection of 50 cars is an homage to all

that is concealed. Multiple ciphers live in and around each car, and are

encrypted with code exclusively developed at Goodwood, the Home of Rolls-Royce.

Only five individuals in existence currently have access to the key crib

- including the designers and engineers themselves. And only the future patrons

of Kryptos Wraith will ever have the opportunity to unravel its true secret.


Who will crack the code?」


入力すべき問題の答えとしては、これを導いたキーフレーズ、

An Ode to All That Is Hidden

でした。


Kasiskiの方法を一から実践できてとても楽しかったです。強力ですね、ホント。