Ep.05 3つの素数
2012年1月10日、午後8時47分。
「……よし」
Call us at us tele phone numBer two one four three nine oh nine six oh eight
あれから、40分ほど経過し、ようやくそれらしい文章になった。
途中に妙な大文字が混ざっているし、英語として少し不自然な部分もある。それでも、言いたいことは十分に分かる。
電話番号は、214-390-9608。
「……テキサス?」
最初の3桁、214はアメリカの市外局番らしい。テキサス州のダラス周辺で使われている番号だという。
今までの暗号はすべてインターネット上で解くことができたが、ここに来て実際の電話番号が出てきた。
「え、ん? あ、これ本当にかけるの?」
思わず机に置いていた携帯電話を手に取る。
しかし、すぐに考え直した。
相手は正体不明の出題者である。電話をかければ、自分の番号が相手に伝わる可能性があるし、国際電話なので料金もかかる。
そもそも、そんな番号へ何も考えずに電話するのは危ないだろう。
NILという名前で活動していても、僕の本名や住んでいる場所を知っている人はほとんどいない。その状態を、わざわざ自分から崩したくはなかった。
「……ちょっと調べてからだな」
僕はスマホを置き、チャットを開いた。
アレックスには、ここ数日何度も助けられている。彼も同じ問題を解いているのだから、情報を共有しておこう。
NIL:Found it. The book code gives a phone number.
――見つけた。書籍暗号から電話番号が出てきた。
数分後、返信が届いた。
WALKER:Seriously? A phone number?
――本当か? 電話番号だって?
NIL:Yeah. 214-390-9608. Looks like Dallas, Texas.
――うん。214-390-9608。テキサス州ダラスの番号みたい。
僕は続けて、解読結果と修正した手順を送った。
アレックスからの返事は、少し間を置いて届いた。
WALKER:That actually makes sense. Nice work.
――なるほど、筋が通っている。さすがやるな。
「ふっふっふ……」
少し嬉しくなってしまった。
普段からお互いの書いたプログラムを容赦なく指摘し合う相手なので、こうして褒められる機会は貴重なのだ。
もっとも、アレックスが改行の扱いについて指摘してくれなければ、僕もまだ同じところで悩んでいたかもしれない。
そんなことを考えていると、次のメッセージが届いた。
WALKER:So, are you going to call it?」
――それで、電話するのか?
「……電話…………電話ねえ……」
当然、その話になる。
僕は少し考えてから返信した。
NIL:Not sure. Could be a trap.
――まだ迷ってる。罠かもしれないし。
WALKER:Agreed. Let's verify it first.
――同感だ。まずは確認しよう。
僕たちは番号について調べ始めた。検索エンジンで照会し、公開されている情報を確認してみたものの、企業や団体の連絡先として登録されている様子はなかった。
「……結局、かけないと分かんないか」
僕は椅子に座り直し、画面に表示された電話番号を見つめた。
これだけ手の込んだ暗号を作っている相手だ。普通に考えれば、番号の先には次の問題が用意されているのだろう。
だが、相手の目的が分からない以上、慎重になる必要はある。
そんなことを考えていると、部屋の扉がノックされた。
「透ー、起きてる?」
姉ちゃんだった。
「起きてるけど、何?」
「お母さんがお風呂入れって。さっきから呼んでるよ」
「あ、もうそんな時間?」
「またパソコン?」
「うん。あとで入る」
「昨日もそう言ってたじゃん」
姉ちゃんは扉を開け、部屋の中を覗いた。
机の上には相変わらず数字のメモが広がっている。
「……うーわまだやってるんだ」
「やっと次の問題に進めそうなんだよ」
「へえ。今度は何?」
「アメリカの電話番号が出てきた」
姉ちゃんの表情が変わった。
「……電話番号?」
「うん。そこに電話しろって」
「え、何それ。怪しくない?」
「僕もそう思ってる」
「じゃあ、かけない方がよくない?」
「だから今、調べてるところなんだけど」
姉ちゃんは僕の顔を見て、少し眉を寄せた。
「変な請求とか来ても知らないからね。知らない人に個人情報教えちゃ駄目だよ」
「分かってるって」
「ほんとに?」
「僕だって、その辺はちゃんと考えてるよ」
「まあ、あんたパソコンのことだけは詳しいもんね」
だけ、は余計だと思う。
「とにかく、お風呂忘れないでよ」
「はーい」
姉ちゃんはそれ以上何も言わず、扉を閉めた。
僕はチャットへ視線を戻す。
ちょうどアレックスから新しいメッセージが届いていた。
WALKER:I can make the call if you want.」
――よければ、こちらで電話をかけようか。
「……お?」
少し驚いた。
アレックスはイギリスに住んでいる。アメリカへ電話をかけるなら、彼にとっても国際電話になるはずだ。
NIL:You sure? It's an international call.
――いいの? 国際電話になるけど。
WALKER:It's part of the puzzle, isn't it?
――これも謎解きの一部だろ?
僕は思わず笑った。
どうやらアレックスも、かなり夢中になっているらしい。
NIL:All right. Let me know what happens.
――分かった。何があったか教えて。
WALKER:Will do.
――了解。
アレックスが電話をかけている間、僕は番号と解読結果をもう一度確認した。
国番号を含めれば、アメリカへの発信は+1から始まる。相手が自動応答を用意しているなら、誰がかけても同じ案内が流れるはずだ。
ふと、電話をかけたあとに何が起こるのか気になった。
相手が人間だったら、アレックスは何と言うのだろう。
「こんにちは、僕ちん暗号解きました」とでも挨拶するのだろうか。
想像してみたら、少し面白かった。
数分後、チャットに通知が届いた。
WALKER:It worked.
――つながった。
「……マジか!」
思わず前のめりになる。
番号は実際に使われていたらしい。
続けてメッセージが届いた。
WALKER:Recorded voice. No human operator.
――録音された音声だった。人間の応対じゃない。
NIL:What did it say?
――何て言ってた?
すぐに返事は来なかった。
どうやら、アレックスが内容を整理しているようだった。
しばらくして、長めの英文が送られてきた。
WALKER:Very good. You have done well. There are three prime numbers associated with the original final.jpg image. 3301 is one of them.
――よくできました。ここまで見事にやり遂げました。 最初の画像《final.jpg》には、3つの素数が関係しています。 3301は、そのうちの1つです。
続く説明によれば、残り2つの素数を見つけ、3301と掛け合わせる必要があるらしい。そして、得られた数字の後ろに《.com》をつければ、次の場所へ進めるという。
「……素数?」
僕は画面に表示された文章を読み直した。
素数とは、1と自分自身以外では割り切れない、1より大きな整数のことだ。2、3、5、7、11……と続く数字で、3301もその1つになる。
そこまでは問題ない。
問題は、残りの2つである。
「画像に関係する素数って、何だ?」
僕は最初に保存した《final.jpg》を開いた。
黒い背景に、白い英文。
高度な知性を持つ人間を探しているという、あの奇妙な招待状だ。
今では見慣れた画像だった。何度も開いているし、末尾に隠された文字列も、OutGuessで取り出せるメッセージも調べ終えている。
だが、電話の音声は、そこに3つの素数が関係していると言っている。
3301以外の2つは何なのだろう。
僕は画像を閉じ、ファイルの情報を表示した。
サイズ、作成日時、画像の縦横の長さ。
目に入った項目を順番に確認していく。
「……まさか、こっち?」
画像には、文章以外にも数字で表される情報がある。
例えば、幅と高さ。
今まで暗号の中身ばかり調べていたが、そういう基本的な情報については、あまり気にしていなかった。
僕は画像のプロパティを開き、表示された数値をノートに書き写した。
そのとき、アレックスから新しいメッセージが届いた。
WALKER:Any ideas?
――何か思いついたか?
僕は少し考えてから返信した。
NIL:Maybe. I'm checking the image dimensions.
――たぶん。今、画像の縦横のサイズを調べてる。
WALKER:Good thought. I'll check too.
――いい考えだ。こっちでも確認してみる。
僕はチャットを閉じ、再び画像の情報へ目を戻した。
最初の暗号に挑戦したとき、僕が気にしたのは画像に隠された文字列だった。画面に見えている文章と、その裏に仕込まれたデータ。
だが、もし今回の答えが画像そのものの大きさにあるとしたら、ずいぶん身近なところを見落していたことになる。
「……さて、どうだろう」
僕はノートの端に《3301》と書き、その横へ画像の幅と高さを並べていた。
次に、それぞれの数字が素数かどうかを調べるため、短い検証プログラムを開く。
時計は午後10時を回っていた。
さっき姉さんに風呂へ入れと言われたばかりだが、これくらいなら、もう少し調べてもいいだろう。
僕は数値を入力し、Enterキーを押した。




