第4話 もう一つの影

東京・新宿、夜9時。雨粒が街のネオンに照らされ、歩道に色彩の残像を描いていた。人混みに紛れて歩く朔の目は鋭く、だがその奥に微かに迷いの色を滲ませていた。

喧騒の中でも彼の足取りは迷いがない。彼は今、直感に従って動いていた。


直後、彼のスマートフォンが震えた。通知は匿名の暗号化チャットからだ。


【Unknown】:君が欲しいのは真実?それとも復讐?

【Unknown】:明日、22時。品川駅東口のロッカーNo.033。暗証番号は「3150」。


朔は一度深呼吸し、スマホをロックした。言葉に覚えはない。しかし、構成と表現は、どこかあの双子の“癖”を感じさせた。挑発的でありながら、なぜか誘導的な響きがある。まるで、何かを見せようとしているかのように。


翌日、朔は指定された時間に品川駅へと向かっていた。人の流れを読み、自然に動く。周囲に目立たないようにしながら、彼はまるで空気のようにその場に溶け込んでいた。

やがて目的のロッカーにたどり着き、指定された番号を入力すると、中から小さなメモリカードが転がり出た。

近くのカフェでノートPCに差し込む。中には一枚の画像と、短いテキストファイル。


「気づいているはずだ。私たちはただの泥棒じゃない。“あの時”の答えをまだ探しているだけだ」


画像は、かつての世界大会の出題の一部だった。今となっては意味のない問題。しかし、そこには彼女たちの“復号アルゴリズム”が新たに重ねられていた。


「なるほど。挑発ってわけか」


朔は苦笑しながら、コードエディタを立ち上げる。

その暗号は、標準のAES(Advanced Encryption Standard)をベースにしながらも、タイミングとパターンが独特だった。

タイミングベース暗号。通信に用いられるこの技術は、送信の“タイミング差”を信号として組み込むことで、データの隠蔽と抽出を行うものだ。処理にはタイムスタンプの干渉解析という、高度な手法が必要だった。


1時間後、朔は復号に成功した。表示されたのはログの断片。そして一つのIPアドレス。


「……ロンドン?」


続けて表示されたのは、ドメイン名とSSHのホスト鍵。つまり、これは彼女たちが今アクセスしている“遠隔拠点”だ。

「また旅か」

朔は、パスポートを入れた引き出しを開けた。


数日後、朔はロンドン・キングスクロス駅にいた。黒いトレンチコートに身を包み、耳には翻訳機付きのイヤホン。雨が降る中、彼は小さな駅前の古本屋に入った。そこはかつて、海外のホワイトハッカーがよく集まっていた場所だ。

店内には古びた木の香りが漂い、無造作に並べられた書籍の隙間からルーターの光が覗いていた。棚の奥に、隠されたルーターがある。LANポートに直接差し込まれたUSB。起動すると同時に、仮想マシンが立ち上がる。


「やっぱり……君たちだな」


その仮想マシンは、**分散型仮想環境(DVE:Distributed Virtual Environment)**をベースに構築されていた。地球上の複数地点にサーバーピアを持つ高度な匿名通信網。ほとんどの政府機関ですら追跡が困難とされている。

そして画面に現れたのは、双子の1人からのライブ映像だった。


「来たのね。朔。私たちが送ったのは、あなたへの“招待状”よ」


「まるで、ゲームだな」


「その通り。でもこれは、ただの再戦じゃない。私たちは、もっと深い場所で“同じもの”を見てるの。あなたなら、分かってくれると思って」


彼女の声は揺れていなかった。ただ、どこか確信に満ちていた。表情も落ち着き、まるで計算されたような距離感だった。


「なら、最後まで付き合ってもらう。俺もまだ、分かりたいことがある」


通話が切れた瞬間、仮想マシンに不正な挙動を示すプロセスが走った。朔はすぐさまプロセスを分離し、メモリダンプを取得。

彼女たちはローカルサンドボックス内で再帰的に自己暗号化を繰り返すコードを使っていた。まるで、観察者の存在すら想定していたようだ。


「……これはもう、完全に“狙って”るな」


朔はそのコードの一部を復号し、わずかに含まれたファイルヘッダ情報から、かつて自分が書いたコードの断片が混入していることに気づく。


「……俺のコードを……?わざと混ぜた?」


過去、彼が大会で敗れた際、双子は彼の書いたシステムコードの構造を“模倣”し、より洗練させたコードを書いた。それはオマージュのようでもあり、挑発のようでもあった。


その一方で、DVEを通じて取得されたデータの一部には、CoinJoinによるトランザクションの匿名化が施されていた。

CoinJoinとは、複数人の仮想通貨取引を1つの大きなトランザクションにまとめ、送金者と受信者の対応関係を曖昧にする匿名化技術だ。これにより資金の流れを追うことが困難になる。


「なるほど、資金も洗ってるわけか」


さらに、彼女たちが利用していたSSH通信はSSHトンネルで二重化されていた。VPNの内側にSSHトンネルを通すことで、トラフィック解析をさらに困難にする方法だ。エンドツーエンド暗号化も重ねられており、通信内容そのものも完全に秘匿されていた。

ノートPCの画面には、ディレクトリ構造を意図的に破壊されたフォルダ群が現れた。拡張子が偽装されたファイル名、空白や記号をランダムに混ぜた命名規則――まるで、第三者がディレクトリを解析しづらくするための細工だった。


「……コードの命名規則が、ここまで混乱してると……」


内部にはランダムパディングと呼ばれる技術が使われていた。これは、データ長をランダムに変化させることで暗号解析を困難にする手法の一つだ。圧縮や検出を避けるため、ファイルサイズやヘッダーの構造を意図的に不自然にしていた。


さらに、あるログファイルにはDHCP Spoof(スプーフィング)の痕跡も発見された。これは偽のDHCPサーバーをネットワーク上に展開し、接続する端末に偽のIPアドレスやDNS情報を配布することで、通信を乗っ取る中間者攻撃の一種だ。

朔は頭を振った。


「やっぱり、これはあの双子じゃないとできない……」


ロンドンのホテルの部屋で、朔は一人、冷えた窓に背を向けて座っていた。


「この先に何がある……?」


不意に、初めてコードを書いたあの日を思い出した。C-Hubで、誰よりも速く誰よりも正確に演習をこなしていた頃。世界大会に敗れてから、何かが止まっていた。

だが今は違う。

この戦いの先に“答え”がある気がしていた。過去に囚われたままの自分自身を、超えられるかもしれないという予感。


「俺は、あの日に戻ってきた」


手元のPCには、双子の暗号を含むログが並んでいた。

その最下部に、こう記されていた。


「もし本当に私たちを理解したいなら、私たちと“組む”しかない」


朔の目がかすかに見開かれた。


――これは、ただの対決じゃない。最初から彼女たちは、“共闘”の可能性を探っていたのか?

それは、ただの勝敗を超えた問いだった。

  • Xで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

怠惰な俺の無実証明ーハッカーの知識を使って俺を犯人にしたやつを追い詰めるー 2N番目の雪だるま @yukidaruma-2N

★で称える

この小説が面白かったら★をつけてください。おすすめレビューも書けます。

フォローしてこの作品の続きを読もう

この小説のおすすめレビューを見る

この小説のタグ