Ep.13 KEEP BOTH RECORDS.
2012年2月9日、午後11時42分。
「……駄目だ。分かんねえ」
僕は椅子の背もたれに寄りかかり、天井を見上げた。
モニターには、シアトルの古い街路写真データから見つかった英数字列が表示されている。あれから何時間も調べているのに、まともな解読結果は1つも出ていなかった。
アレックスが声をかけた暗号研究者たちも、似たような状況らしい。
だいたいの暗号方式は一通り試されていたが、依然としてこれといった成果はないという。
僕は解析用のウィンドウを閉じ、元のファイルを開き直した。
「……一回、出所から調べ直すか」
僕はチャットルームを開いた。
まだアレックスがオンラインになっている。
WALKER:Still fighting it?
――まだ格闘中か?
NIL:Losing, actually.
――むしろ負け散らかしてる。
WALKER:Excellent! You're becoming human.
――最高だな! お前もようやく人間らしくなってきたな。
「失礼な……」
NIL:I regret telling you that.
――言うんじゃなかった。
アレックスは笑いの記号を返してきた。
僕は少し考えてから、気になっていたことを尋ねた。
NIL:Do we know exactly which file the string came from?
――この文字列が、具体的にどのファイルから出てきたか分かる?
WALKER:Seattle street archive backup. One image record. Why?
――シアトルの街路資料のバックアップだ。1件の画像記録に入っていた。なぜだ?
NIL:I want everything around it. IDs, ordering, filenames, old catalogues. Not just the string.
――文字列だけじゃなくて、その周辺情報が全部欲しい。識別番号、並び順、ファイル名、古い目録も。
しばらく返信がなかった。
WALKER:You think the key isn't inside the ciphertext.
――鍵が暗号文の中にないと思っているのか。
NIL:I think we've spent enough time assuming it is.
――中にあるって前提では、もう十分調べたと思う。
WALKER:Fair. I'll ask Ewa.
――もっともだ。エヴァに頼む。
✳︎ ✳︎ ✳︎
2012年2月14日。
昼休み。
僕は机で本を読んでいた。
今日は朝から、教室のあちこちで小さな袋が行き交っている。はいはい、理由は分かってる。
まあ? もっとも? 僕にはあまり関係のない行事なんだけど?
「相沢くん」
「……はい?」
顔を上げると、桐生さんが立っていた。
「はい、これ」
差し出されたのは、小さな透明の袋だった。中にはチョコレートが2つ入っている。
「…………」
僕は袋を見た。
それから桐生さんを見る。
もう一度、袋を見る。
「……え?」
「今日、バレンタインだから」
「あ、はい。知ってます」
「そこは知ってるんだ」
桐生さんが笑った。
「この前の発表のお礼も兼ねて。真琴と作ったんだ」
「……手作り?」
「うん。みんなにも配ってるけどね」
「ああ、そうなんだ」
なるほど、班活動のお礼ということらしい。
それなら納得だ。そもそも、僕だけがもらえると思う方がおかしい。
……別に、何か期待したわけじゃないけど? え? してないよ? なに? なんか文句あんの?
「ありがとう」
僕が受け取ると、桐生さんは嬉しそうに笑った。
「どういたしまして。感想聞かせてね」
「う、うん」
桐生さんが友人たちのところへ戻っていく。
僕は袋を机の上に置き、しばらく眺めていた。
「相沢」
「……何?」
向かいの席から早瀬が身を乗り出していた。
「顔、赤くね?」
「赤くないよ」
「桐生からチョコもらったから?」
「違うって」
「ちなみに俺ももらった」
「……うん、知ってる」
「本田からも」
「情報を追加しなくていいから」
早瀬は楽しそうに笑っている。
僕は袋を鞄にしまおうとした。
そのとき、教室の前から声が飛んできた。
「早瀬くん、お菓子広げすぎ! 先生来る前に片づけて!」
瀬川さんだった。
「はいはい」
「相沢くんも!」
「えっ、僕まだ開けてもないんだけど」
「じゃあ、そのまま鞄に入れて!」
「……はい」
僕は素直に従った。
早瀬が隣で笑いを堪えている。
「お前、瀬川には弱いよな」
「逆に強い人いる?」
「……確かに」
2人で笑っていると、瀬川さんにもう一度注意された。
その日の夜、僕はもらったチョコレートを食べた。
形は少し不揃いだったけど、普通においしかった。姉ちゃんに見つかると面倒なことになりそうなので、自室でこっそり食べた。
食べ終えたあと、袋をゴミ箱へ捨てようとして手が止まる。
「…………」
いや、何で迷ってるんだ。
ただの袋だぞ。
僕は3分ほど悩んでから、結局ゴミ箱に捨てた。
……何をやっているんだろうな、僕は。
✳︎ ✳︎ ✳︎
2012年2月17日、午後9時51分。
「……おっ、エヴァからだ」
チャットルームを開くと、2つのファイルが添付されていた。
EWA_N:I found two catalogues containing the same twelve image IDs.
――同じ12件の画像識別番号を含む目録を2つ見つけたわ。
NIL:Same photos?
――同じ写真?
EWA_N:Apparently. But not in the same order.
――そのはずよ。でも、並び順が違うの。
僕は2つの目録を開いた。
古い街路写真を整理した一覧で、各写真には識別番号が付けられている。
S-021、S-009、S-017、S-004。
そのほかにも8件。全部で12件だった。
識別番号は、両方の目録で一致している。
ところが、並んでいる順番が違った。
「……なるほど」
目録を作った人が違えば、写真の並び順が変わることはあるだろう。撮影年で並べたのか、住所順にしたのか、それとも何か別の基準があったのか。
僕はそれぞれの目録に対応する写真を確認した。
そこで、手が止まった。
「……あれ?」
目録Aの系統では、例の非常階段が建物の左寄りにある。
一方、目録Bの系統では右寄りだった。
僕は2つの目録を横に並べた。
それぞれの系統の中では、年代が違っても写真の内容は整合している。しかし、目録Aと目録Bの両方の資料を混ぜると、食い違いが生じる。
エヴァから続けてメッセージが届いた。
EWA_N:Samir checked the metadata too. No obvious sign that one catalogue is a later correction.
――サミールにもメタデータを確認してもらったわ。片方が後から訂正されたと分かるような痕跡はない。
「……そうなんだ」
また、どちらが正しいのか分からない資料が増えてしまった。
僕は椅子に座り直し、目録の識別番号を順番に確認していった。
そこで、シアトルの街路資料のバックアップに見つかった英数字列のことを思い出した。
あの文字列が入っていた画像記録にも、番号があったはずだ。
「……確か」
僕は元のファイルを開いた。
S-021。
「……あった」
目録Aで探すと、1番目にある。
しかし、目録Bでは4番目。
全部、同じ資料から見つかっているのに、識別番号の並びは異なっていた。
NIL:Ewa, do both catalogues contain exactly the same twelve IDs? No extras, no omissions?
――エヴァ、2つの目録は本当に同じ12件だけ? 追加も欠落もない?
EWA_N:Exactly the same twelve.
――まったく同じ12件よ。
NIL:And the sequence is different.
――並び順だけが違う。
EWA_N:Yes.
――そう。
「……ふうん」
僕はノートに2つの目録を書き写した。
何となくだけど、ようやく試すべきことが見えてきた気がする。
✳︎ ✳︎ ✳︎
2012年2月18日。
ポーランド、ワルシャワ。
エヴァ・ノヴァクは、再び資料館を訪れていた。
受付で事情を説明すると、担当の女性職員が以前確認した目録を持ってきてくれた。
エヴァは持参した複写を広げ、該当するページを示した。
"Czy ten katalog został później poprawiony albo przepisany?"
――この目録は、後から訂正されたり書き直されたりしていますか?
女性は台帳を確認してから首を振った。
"Nie ma takiej adnotacji. To osobny egzemplarz katalogu."
――そのような注記はありません。これは独立した目録です。
"A kolejność zdjęć? Kto ją ustalał?"
――写真の順番は、誰が決めたのでしょう?
"Tego nie potrafię powiedzieć."
――そこまでは分かりません。
夜、NILへ報告を送った。
EWA_N:No correction note. No indication that either catalogue superseded the other.
――訂正の注記はなし。どちらか一方が後継版だと示す記録もなかったわ。
✳︎ ✳︎ ✳︎
2012年2月20日、午後10時26分。
「……さて、やってみるか」
僕はノートを広げ、シアトルの2つの目録を並べた。
目録A。
S-021、S-009、S-017、S-004――。
目録B。
S-017、S-004、S-009、S-021――。
同じ12件の写真が、異なる順番で並んでいる。
僕は英数字列を開き、まず12文字ずつに区切ってみた。
しかし、まともな文章は出てこない。
「……違うか」
今度は12列に並べてみた。
こちらも駄目だった。
僕はしばらくノートを眺めていたが、そこで考え方を変えた。
今までは、目録Aか目録Bのどちらか一方を使おうとしていた。
でも、そもそも2つの目録を見つけたことが、今回の調査の始まりだったはずだ。
「……両方使ってみるか」
例えば、目録Aの順番で文字を並べ、目録Bの順番で読み直す。
2つの並び順を使った転置暗号だ。
転置暗号というのは、文字そのものを別の文字に変えるのではなく、順番を入れ替えることで元の文章を隠す方法である。
僕はノートに簡単な例を書いた。
写真が4枚あるとする。
Aの順番は、21、09、17、04。
Bの順番は、17、21、04、09。
この場合、Aの順に配置した4つの文字を、Bの順に読み直せば、別の並びができる。
もちろん、これだけで正しい暗号になるとは限らない。
でも、今回の12件でも同じことを試せるはずだ。
僕は小さなプログラムを書き、実際の目録にある識別番号を入力した。
まず目録Aの順番で文字列を配置する。
次に、目録Bに従って列を並べ替える。
実行。
「…………」
結果は、意味不明な英数字だった。
「……何か足りない?」
しばらく考えていると、S-021という番号が目に入った。
そもそも、この文字列はS-021の画像記録に入っていたものだ。
それなら、この番号に意味があるのかもしれない。
「……起点か?」
僕は目録AをS-021から始まるように並べ替えた。
次に目録Bも、同じS-021から始めるように順番をずらす。
12件の並び順そのものは変えず、先頭になる番号だけを揃える。
それから、もう一度プログラムを動かした。
「……お?」
今度は、先頭に英単語らしい文字が現れた。
NODE
僕は画面を見つめた。
続く2文字は、
04
「……NODE04?」
ただの偶然だろうか。
英数字を並べ替えていれば、たまたま意味のありそうな単語が出てくることはある。
でも、NODEは英語で節点や接続点を意味する単語だ。ネットワークでもよく使われる。
しかも、後ろには数字が続いている。
「……いや、これは試してみる価値あるな」
僕はプログラムを修正し、文字列全体に同じ並べ替えを適用した。
目録Aの順で文字を配置し、目録Bの順で読み直す。どちらもS-021を起点にする。
処理を実行した。
数十秒後。
画面に表示された結果を見て、僕は思わず椅子から身を乗り出した。
「……マジか」
意味の分からない英数字だったものが、複数行の英文に変わっていた。
僕は最初から読んだ。
そして、もう一度読んだ。
「……え、何これ」
確かに文章になっている。
暗号は解けた。
でも、書かれている内容がよく分からなかった。
✳︎ ✳︎ ✳︎
僕はすぐにチャットルームを開いた。
NIL:I solved it.
――解けた。
送信してから、10秒も経たずに返事が届いた。
WALKER:No.
――嘘だろ。
「いや、嘘じゃないって」
NIL:That's a strange response.
――変な返事だね。
WALKER:You mean you actually solved it?
――本当に解いたっていうのか?
NIL:Yes. Get Ewa and Samir.
――うん。エヴァとサミールを呼んで。
アレックスが2人を呼び、僕は解析に使ったプログラムと手順を共有した。
EWA_N:That's it?
――それだけ?
NIL:That's it.
――それだけ。
EWA_N:We had both catalogues in front of us.
――私たち、2つとも目の前に持っていたのに。
SAMIR:We were trying to decide which one was wrong.
――どちらが間違っているかを決めようとしていたからね。
僕は頷いた。
そうなのだ。
ずっと、どちらが正しいかを調べていた。
でも、今回の暗号を解くには、2つとも必要だった。
SAMIR:NIL used the disagreement itself as the key.
――NILは、その食い違い自体を鍵にした。
WALKER:I'm checking it independently.
――こちらでも独立して確認する。
アレックスはそう言って、しばらく黙った。
僕は待っている間に、解読結果をもう一度確認した。
10分ほど経ったころ、通知音が鳴る。
WALKER:It reproduces perfectly.
――完全に再現できた。
EWA_N:Same result here.
――こっちでも同じ結果。
サミールからも、同じ文章が得られたという報告が届いた。
どの環境で試しても、同じ結果になるらしい。
「……よし!」
思わず拳を握った。
数日間、何人もの研究者が挑戦して解けなかった暗号だ。
それを、ようやく解くことができた。
これはかなり嬉しい。
WALKER:We spent days attacking the string as ciphertext. You asked why it was attached to that record in the first place.
――私たちは何日も、あの文字列そのものを暗号文として攻撃していた。君はまず、なぜあの記録に付いていたのかを疑った。
WALKER:Then you used two records we were trying to reconcile as one combined key.
――そして私たちが整合させようとしていた2つの記録を、1つの鍵として使った。
WALKER:That's not just good cryptanalysis, NIL. That's absurd.
――これは単に優れた暗号解読という域じゃないぞ、NIL。反則だ。
「……反則って」
NIL:Is that a compliment?
――褒めてる?
WALKER:Unfortunately, yes.
――残念ながらな。
僕は笑ってしまった。
もう少し普通に褒めてくれてもいいと思う。
とはいえ、アレックスからそこまで言われるのは珍しい。彼も今回の暗号には、かなり手を焼いていたらしい。
僕は嬉しさを少し抑え、解読結果をチャットに貼り付けた。
NODE 04
SEATTLE
2012-05-14 03:17 UTC
47.6062 N / 122.3321 W
KEEP BOTH RECORDS
……さて。
問題は、これをどう解釈するかだ。
EWA_N:The date is in the future.
――日付が未来ね。
SAMIR:About three months from now.
――今から約3か月後だ。
WALKER:Seattle. Central area. But that doesn't tell us what the location means.
――シアトルだ。中心部付近。ただ、それだけでは何を意味する場所なのか分からない。
僕は画面に並んだ英文を読み返した。
NODE 04。
シアトル。
2012年5月14日、午前3時17分、UTC。
それから緯度と経度が記されている。
日時と場所を指定しているように見えるが、そこで何が起きるのかは書かれていない。
そして、最後の1行。
KEEP BOTH RECORDS……両方の記録を残せ。
僕はそこが一番気になった。
この暗号を作った人物は、2つの目録が存在することを知っていたらしい。しかも、その両方を使わないと解読できない仕組みにしていた。
NIL:This was designed around the existence of both catalogues.
――これは、2つの目録が存在することを前提に作られてる。
WALKER:Agreed.
――同意する。
WALKER:Which means whoever made it knew both versions.
――つまり、これを作った人物は両方の版を知っていた。
EWA_N:And expected someone else to have both too.
――それに、受け取る側も両方を持つと想定していた。
いったい、誰が作ったのだろう。
なぜ、こんな方法でメッセージを残したのだろう。
そもそも、Cicada 3301と関係があるのかどうかも分からない。
ただ、少なくとも、今回の文字列が適当なデータの集まりではないことは分かった。
誰かが意図的に作っている。
「……いやあ、よくできてるな」
僕は感心してしまった。
2つの食い違う目録を、あえて両方使わせる。普通ならどちらが正しいか調べるところなのに、正しい方を選ぶと解けない。
暗号としては、なかなか面白い仕掛けだ。
でも、それを使って伝えたかったことが《両方の記録を残せ》というのは、どういう意味なのだろう。
僕はその一文に印を付け、ノートを閉じた。
✳︎ ✳︎ ✳︎
翌日の昼休み。
「相沢くん」
「はい?」
顔を上げると、桐生さんがいた。
「この前のチョコ、どうだった?」
「……え?」
「もしかして、まずかった?」
「いや! おいしかったよ!」
思った以上に大きな声が出てしまった。
近くにいた本田さんが振り返る。
「え、そんな必死に?」
「いや、違くて……」
「何が違うの?」
「……それは僕にも分からない」
本田さんが笑った。
桐生さんもつられて笑っている。
「よかった。形ちょっと失敗してたから」
「全然気にならなかったよ。普通においしかった」
「ほんと?」
「うん」
桐生さんは嬉しそうに頷いた。
そういえば、以前よりは普通に話せるようになった気がする。
少なくとも、最初のころみたいに、話しかけられるたびに頭が真っ白になることは減ってきた。
「相沢」
今度は早瀬がやって来た。
「今日の体育、長距離だって」
「…………」
僕は机に突っ伏した。
「……今、結構いい気分だったのに」
「現実に戻ってこい」
「戻りたくない」
「逃げんなよ」
「暗号なら解けるのに……」
「何の話だよ」
「こっちの話……」
早瀬が笑った。
どうやら、世界中の暗号研究者が解けなかった問題を解いても、体育の授業はなくならないらしい。
……まったく、理不尽な話である。
✳︎ ✳︎ ✳︎
2012年2月23日、午後8時57分。
解読結果は、すでにソフィアにも共有されていた。
地震や地殻変動、災害の観測記録を扱っている彼女なら、何か気づくことがあるかもしれない。
ただ、ソフィアの反応は慎重だった。
SOFIA_A:A future date and coordinates are not a prediction.
――未来の日付と座標があるだけでは、予測とは言えないわ。
SOFIA_A:We don't know what is supposed to happen there, if anything happens at all.
――そこで何が起きる想定なのかも分からないし、そもそも何かが起きるのかどうかさえ分からない。
NIL:I agree.
――同感。
暗号を解けたことと、書かれている内容を正しく理解できたことは別だ。
NODE 04が何を意味するのかも分からないし、指定された日時に何かが起きると決まったわけでもない。
ただ、何か手がかりがないか調べることはできる。
NIL:Can you check if there are any unusual geophysical observations around that location?
――その場所の周辺に、地球物理学的に変わった観測がないか確認できる?
SOFIA_A:I can check public records. But I'd rather have another specialist look at it too.
――公開記録なら確認できる。でも、別の専門家にも見てもらった方がいいと思う。
僕はその返事を読み、頷いた。
今のところ、僕たちは建物の写真や地図の不一致を調べているだけだ。地震や地殻変動のような現象と関係があるのかどうかは、何も分かっていない。
それなら、詳しい人に確認してもらうのが一番だろう。
すると、ソフィアから少し変わったメッセージが届いた。
SOFIA_A:Sorry. My brother is protesting.
――ごめんなさい。弟が抗議してる。
「……抗議?」
どうやら、チャットの向こうで弟のマテオが夕飯に呼んでいるらしい。
そのあと、ソフィアは弟とのやり取りを簡単に教えてくれた。
"Sofía, ¿vas a cenar hoy o el año que viene?"
――ソフィア、今日夕飯食べるの? それとも来年?
"¡Mateo! Cinco minutos."
――マテオ! あと5分。
"Dijiste lo mismo hace media hora."
――30分前も同じこと言ってたよ。
「……あはは」
思わず笑ってしまった。
どこの国でも、家族を待たせて調べ物をしている人間は怒られるらしい。
WALKER:He has my support.
――私は弟君を支持する。
SOFIA_A:Traitor.
――裏切り者。
WALKER:Justice has no borders.
――正義に国境はない。
「……何の正義だよ」
僕は笑いながらチャットを眺めた。
すると、ソフィアから僕宛てにメッセージが届いた。
SOFIA_A:He also wants to know if Japanese students really eat lunch on school rooftops like in manga.
――あと、日本の学生は漫画みたいに本当に屋上で昼ごはんを食べるのか知りたいそうよ。
「……屋上?」
僕は少し考えた。
確かに、漫画ではよく見る光景だ。
でも、うちの学校では屋上に自由に入れないし、そもそも昼休みにわざわざ外へ出る人は少ない。
NIL:Usually not. A lot of rooftops are off-limits.
――普通はそんなにないよ。屋上に入れない学校も多いし。
SOFIA_A:He says Japan has disappointed him.
――日本には失望したって。
NIL:That's harsh.
――厳しいなあ。
僕は苦笑した。
まさか、地球の反対側にいる少年の夢を壊してしまうとは。
……まあ、漫画と現実は違うので仕方がない。
そんな話をしていると、ソフィアが本題へ戻った。
SOFIA_A:There's a Japanese geophysicist I know by reputation. Sae Amagi.
――評判を知っている日本人の地球物理学者がいるの。天城紗英。
「……日本人?」
僕は名前をノートに書いた。
初めて聞く名前だった。
NIL:Good?
――優秀?
SOFIA_A:Very. And skeptical.
――とても。それに……かなり懐疑的。
NIL:Even better.
――なおさらいいね。
僕はすぐに返信した。
今回の調査で必要なのは、何でも不思議な現象に結びつける人ではない。
むしろ、普通の方法で説明できる可能性を徹底的に調べてくれる人だ。
その結果、全部ただの勘違いだったと分かったとしても、それはそれでいい。
少なくとも、理由が分からないまま悩み続けるよりはずっといいと思う。
SOFIA_A:I'll contact her.
――連絡してみる。
NIL:Thanks, Sofia.
――ありがとう、ソフィア。
その後、ソフィアは弟との夕食のためにチャットを離れた。




