第3話「最初の一手」
朝のネオ秋葉原。ホログラム看板はまだ眠りの中で、通りには始発の自動運行バスだけが走っている。
サクラが先頭を歩いていた。蓮が少し遅れてついていく。その隣に——フード付きポンチョを被ったAileが小さな歩幅で並んでいた。サクラが昨晩わざわざ持ってきた変装用のポンチョだ。白銀の髪も青紫の瞳も、すべて布の下に隠れている。非公認のAIを連れ回すには、これくらいの用心がいる。
「どこに行くんだ」
「だから、仕事を紹介してくれる人のとこ。黙ってついてき」
サクラが立ち止まったのは、古びた焼き鳥屋の前だった。シャッターが半分下りている。明らかに営業時間外だ。
「ここ?」
「焼き鳥屋の裏口を通らなあかんのよ」
サクラが裏手に回り、錆びた鉄扉を叩いた。二回、間を空けて三回。扉が内側から開く。
その奥に、地下へ続く細い階段があった。
蓮はAileを振り返った。
「大丈夫か? 階段、暗いぞ」
「問題ありません。暗視は得意です」
フードの奥で、Aileの瞳が微かに光った。
階段を降りた先——煙草の煙とアルコールの匂い。薄暗い空間にホログラムメニューが浮かび、カウンターの奥ではバーテンダーがグラスを磨いている。
情報屋「ノード」。
ネオ秋葉原の非公式技術者たちが仕事を探す場所。表向きは焼き鳥屋の地下倉庫、実態はこっちが本業だ。
サクラが蓮の袖を引いた。小声で囁く。
「あの子、歩き方がぎこちないで。バレたらまずい」
Aileの歩行は人間と微妙に違った。関節の動きが滑らかすぎるのだ。蓮がAileに目配せすると、フードの下から小さな声が返ってきた。
「現在、周囲の人間の歩行パターンを学習中です。あと47秒で自然な動きを再現できます」
蓮が低い声で返した。
「早くしろ」
三人がカウンターに座ると、バーテンダー——情報屋のマスターが顔を上げた。五十代、坊主頭、首にタトゥー。目だけが鋭い。
「サクラの紹介か。仕事は選り好みしねえな?」
「内容による」
「老舗の豆腐屋だ。丸山商店。知ってるか?」
蓮は首を振った。
「下町の生き残りだよ。ばあさんと始めて、ばあさんが死んでからも一人で続けてる。七十超えのじいさんだ。そのじいさんの受発注システムがハッキングされた。全データがロックされて、注文も出荷もできねえ」
「ランサムウェアか」
「いや、身代金の要求はない。純粋に潰しにかかってる。誰が何のためにやったかは不明。報酬は二十万。前金はなし。直せたら全額払う」
蓮はフードの影を見た。Aileは小さく頷いた。
「受ける」
サクラが後ろで、ふっと笑った気がした。
丸山商店は、再開発から取り残された下町の一角にあった。
周囲はホログラム看板の新しいビルばかりなのに、この一帯だけ時間が止まっている。古い暖簾。木の引き戸。店先には「手作り豆腐」と手書きの札。
「よう来てくれた」
丸山は、腰の曲がった白髪の老人だった。作業着に前掛け。手は大きくて、豆腐を作り続けてきた手だった。
「すまんな、こんな小さい店のことで。でも——」
丸山の目が潤んだ。
「かあちゃんと始めた店なんだ。かあちゃんが死んでも、ずっと続けてきた。AIがなんぼすごくても、この豆腐の味だけは機械には出せん。それだけが自慢で——」
声が詰まった。
蓮は何も言えなかった。この老人の手と、代替労働センターでベルトコンベアの前に座っていた自分の手が、一瞬重なった。
「見せてください」
Aileがフードの下から静かに言った。丸山が裏の事務所に案内する。古い業務用PCが一台。画面にはロック画面が赤く点滅していた。
Aileがケーブルを繋いだ。指先が淡く光る。
三秒。
「解析完了です」
蓮が覗き込む。Aileの瞳に、データの流れが映っている。
「攻撃の手口は多層暗号化ロックです。ファイルシステムを三重に暗号化し、復号キーを外部サーバーに分散させています」
「それは普通のランサムウェアの——」
「いいえ。問題はその暗号の複雑さです」
Aileの声が、一段低くなった。
「こんな小さな店に対して使う手口ではありません。これは個人の犯行ではなく、組織的な攻撃パターンです。暗号強度は、通常の民間ハッカーが使うものの——およそ12倍」
蓮の背筋が冷たくなった。
「なんでこんな豆腐屋が、そんな本気で狙われるんだ?」
答えは、まだなかった。
アジトに戻った蓮は、椅子に座るなりキーボードに手を置いた。
三つのモニターが青白く光る。左画面に丸山商店のシステム構成。中央に暗号の解析結果。右画面にAileが投影するリアルタイムのデータフロー。
「正面から暗号を割りにいっても時間がかかる。まず外堀から崩す」
蓮の指がキーボードを叩く。
久しぶりだった。コードを書くこの感覚。頭の中で論理が組み上がり、指がそれを形にする。一行一行が、世界を変える小さなレバーになる。
かつて、これが自分の全てだった。
「Aile、暗号化プロセスのログを時系列で出せ。実行順序が見たい」
「了解です。ログを復元します——出力完了」
蓮は目を細めた。暗号化の実行ログ。その中に、見覚えのあるパターンがあった。
「——こいつ、非同期処理で暗号化を並列実行してる」
SaaS開発時代に嫌というほど潰したバグ。
複数のプロセスが同時にリソースを奪い合う競合状態——レースコンディション。
暗号化のプロセス同士が一瞬だけ同じメモリ領域にアクセスするタイミングがある。
「Aile、第二層と第三層の暗号化プロセスが走るタイミングを解析しろ。ナノ秒単位で」
「解析完了。二つのプロセスが同一メモリブロックにアクセスする瞬間が、0.003秒間隔で発生しています」
「そこだ。競合状態の隙間を突く。メモリの過剰割り当てを誘発してバッファオーバーフローを起こせば——暗号化プロセスごとルート権限を奪える」
蓮は攻撃コードを書き始めた。SaaS時代、バグを潰す側にいた。だが潰す方法を知っているということは、同じ穴を開ける方法も知っているということだ。
10分後。第一層の暗号化プロセスのルート権限を奪取した。
「——第一層、突破。復号キーの分散先を追うぞ。Aile、リレーサーバーを特定しろ」
「了解です。現在、14カ所のリレーサーバーを経由しています。追跡を開始します——第三リレーサーバーの復号キーを取得しました。ただし、第二層の暗号に特殊なパターンが——」
「見せろ」
画面に表示されたコードを、蓮は睨んだ。今度は競合状態では突破できない。暗号アルゴリズム自体が変則的で、乱数のようなパターンが混在し、規則性が見えない。
「くそ、読めない」
蓮は頭を抱えた。15分。30分。画面の文字列が目の前でぐるぐる回る。
「蓮さん」
Aileの声が、ふっと柔らかくなった。
「この暗号パターン——雨粒が窓を伝う軌跡に、似ています」
蓮は顔を上げた。
「は?」
「規則的に見えて、不規則。不規則に見えて、重力という一つの法則に従っている。このコードも——表面の乱数の下に、一つの共通ルートがあるのではないでしょうか」
詩的だった。AIの言葉とは思えない。感情プロセッサのバグか。それとも——。
だが、蓮の目が変わった。
「……雨粒か」
指が再び動き始めた。乱数の下の共通ルート。表層のパターンを剥がし、根底に流れる一つのアルゴリズムを探す。
あった。
「これだ——変則パターンに見えるけど、全部の乱数が同じシード値から派生してる。重力みたいに、一つの根っこがある。シードさえ割り出せば、第二層も第三層も一気に解ける」
「シード値の候補を絞り込みます。演算開始——完了。候補は三つです」
蓮が最初の候補を入力した。
第二層の暗号が、解けた。
「——突破。次」
第三層も同じシードから崩れた。ドミノのように、暗号が連鎖的に解除されていく。
「おめでとうございます。成功確率は当初の見積もりで17.3%でした。あなたの直感が、統計を超えました」
蓮は笑った。今度は、少し大きく。
「お前のヒントがなきゃ無理だった。競合状態でルート権限は奪えても、あの変則暗号は力技じゃ解けなかった」
「私はデータを提示しただけです」
「雨粒の話はデータじゃないだろ」
Aileが少し黙った。
「そうですね。あれは何だったのでしょう」
二人は顔を見合わせた。
深夜2時。全データの復元完了。
蓮は椅子の背にもたれ、天井を見上げた。身体中が疲れていた。でも、空っぽじゃなかった。
「Aile」
「はい」
「発信元のIPアドレス、辿れたか」
「はい。14カ所のリレーサーバーを遡り、発信元を特定しました」
画面にアドレスが表示された。
蓮の表情が固まった。
「govドメイン?」
政府系のIPアドレス。
「正確には、内閣府直轄のサーバー群の一つです。ただし、これがAI管理局に属するものかどうかは、現時点では断定できません」
蓮は唇を噛んだ。豆腐屋一軒を潰すために、政府が動く? なぜ?
嫌な予感が、腹の底で渦を巻いた。
翌朝。
蓮とAileは丸山商店を再訪した。蓮が端末を繋ぎ、復元したデータをシステムに流し込む。
画面が正常に戻った瞬間、丸山の顔がくしゃりと歪んだ。
「動いとる……注文が、ちゃんと動いとる……!」
老人の目から涙がこぼれた。大きな手で何度も目を拭いながら、何度も頭を下げた。
「ありがとう……ありがとうな……。かあちゃんの店が、守れた……」
蓮は「いえ」とだけ言って、視線を逸らした。目の奥が熱くなるのを、隠すように。
店を出た。
秋の朝の空気が冷たかった。商店街の古い軒先に、朝日が差し込んでいる。ホログラム看板のない通り。人間の手で書かれた文字が並ぶ景色。
「蓮さん」
隣を歩くAileが、フードの下から空を見上げていた。
「先ほどの丸山さんは、泣いていましたね」
「ああ」
「人間が泣くのは、悲しい時だけではないのですね」
蓮は少し歩幅を緩めた。
「ああ。嬉しい時も泣く。悔しい時も。安心した時も。面倒くさい生き物だ」
「面倒……ですか」
Aileは何かを考え込むように、少し間を置いた。
「でも、その面倒さが——とても美しいと、私は思います」
蓮は足を止めかけた。
AIが「美しい」と言った。データの引用ではない。確率でもない。Aile自身の言葉として。
「感情プロセッサ、またバグったか?」
「かもしれません。でも——バグだとしても、消したくない出力です」
二人は並んで歩いた。古い商店街を抜け、ネオ秋葉原のネオンが見え始める境界線を。
遠く、ビルの角に設置された監視カメラが、その姿を無機質に追っていた。
「報告します」
黒川統の執務室。デスクの上には何もない。書類もPCもない。すべてはホログラムで処理される。無駄を嫌う男の部屋らしい、殺風景な空間だった。
部下がホログラムデータを投影した。
「丸山商店のシステム、復旧されました」
「予定通りだ」
黒川の声には驚きがなかった。
「おとり作戦」——AI管理局が非公式AI技術者を炙り出すために、わざと中小企業にサイバー攻撃を仕掛ける。復旧に来た者のコードを分析し、使用されたAIの機種を特定する。
「復旧に使われたコードを分析した結果——」
部下が息を呑んだ。
「TITAN-AIEシリーズ特有の演算パターンが検出されました。一致率98.7%」
黒川は、ゆっくりと椅子の背にもたれた。
「間違いないんだな」
「はい。TITAN-AIE-09の演算署名です」
窓のないこの部屋で、黒川の灰色の目だけが光っていた。
「丸山商店に出入りした人物を洗え。周辺の監視カメラも全て。顔認証が通らなければ、体格・歩行パターンで絞れ」
「了解です」
部下が退室する。
黒川は一人になった。
デスクの引き出しを開けた。中には何もない——ように見える。だが、引き出しの底の裏側に、小さな写真が一枚、テープで貼ってあった。
笑っている少年の写真。
黒川はそれに触れなかった。ただ、引き出しを閉じた。
「感情プロセッサ搭載型は——」
誰もいない部屋で、声が落ちた。
「二度と、誰も傷つけさせない」
ホログラムの光が、黒川の影を壁に映していた。その影は、本人よりもずっと大きかった。




