ep.30 Reconnaissance
『CTFラビリンスへようこそ。これより、ゲームルールを説明します』
転送された直後、機械的なアナウンスが耳元で響いた。同時に、正面上部のモニターには第1位の肩から上だけが、途切れることなくリアルタイムで映し出されている。
そして、オレの顔の横へ一枚のタブレットが音もなく浮かび上がり、画面いっぱいに迷路全体のマップが広がった。
『まず、ゲームの基本ルールについて説明します』
『マップの通り、現在位置は第一階層のSTARTマスです』
『d7へ到達すると、GOALマスへ続くドアが自動で開放されます』
『GOALマスに設置されたボタンを押すと、上層のSTARTマスへ転移します』
『第一階層から第三階層までは、それぞれ別空間で行動します』
『ただし、旗が設置された最上階層のみ、両プレイヤーは同一空間となります』
『各階層で最初にGOALマスに設置されたボタンを押したプレイヤーには、タクティカルポイントを一点付与します』
『最上階層に設置された旗を最初に取得したプレイヤーを勝者とします』
『続いて、ポイントの獲得方法について説明します』
『マップ上のa1からg7までの計四十九マスには、それぞれスタンドに設置されたノートパソコンが一台ずつあります』
『各ノートパソコンには三問のCTF問題が収録されています』
『問題の難易度は段階的に上昇し、一問目が最も易しく、三問目が最も高難易度の問題となっています』
『一問クリアするごとに、オープンポイントとタクティカルポイントを一点ずつ獲得できます』
『続いて、オープンポイントについて説明します』
『オープンポイントを一点消費すると、指定した二つのマスを隔てるドアを開放できます』
『一度開放されたドアは、その後も開放された状態を維持します』
『例として、1-d1と1-d2の間のドアを開放する場合は、「1-d1・1-d2、オープン」と宣言してください』
『宣言は「〈マス名〉・〈マス名〉、〈命令〉」の形式のみ受理されます』
『宣言が受理された場合、全体アナウンスで内容を通知いたします』
『続いて、タクティカルポイントを使用するアクションについて説明します』
『まず、ロックについて説明します』
『タクティカルポイントを一点消費すると、相手のドアへロックを設定できます』
『「〈マス名〉・〈マス名〉、ロック」と宣言した場合、そのドアに対する相手のオープン宣言を一度だけ無効化できます』
『つまり、ロックされたドアを開放するには、オープンポイントを二点消費する必要があります』
『ロックされたドアへ相手がオープン宣言を行った場合、全体アナウンスで「〈マス名〉・〈マス名〉、ロック」と通知されます』
『ロックには、四つの制限があります』
『一つ目。同一内容のロック宣言は、一度しか行えません』
『二つ目。自分が開放済みのドアにはロックを設定できません』
『三つ目。相手が開放済みのドアにもロックを設定できません』
『四つ目。自分がロックしたドアを自ら開放した場合、そのロックは解除されます』
『続いて、レッドロックについて説明します』
『レッドロックは、タクティカルポイントを一点消費して使用する特殊なロックです』
『各階層で使用できる回数は二回までです』
『対象は縦方向のドアのみです。横方向のドアには使用できません』
『また、一度レッドロックを使用した列には、その階層内で再びレッドロックを使用することはできません』
『レッドロックには、通常のロックと異なる点が二つあります』
『一つ目。レッドロックが設定されたドアは、オープンポイントを何点消費しても開放できません』
『二つ目。通常ロックの第二制限および第四制限を無視して使用できます』
『つまり、自分が開放済みのドアにも設定でき、自分で開放しても解除されません』
『使用時は「〈マス名〉・〈マス名〉、レッドロック」と宣言してください』
『なお、相手がレッドロックされたドアへオープン宣言を行った場合、全体アナウンスでは通常のロックと同様に「ロック」と通知されます』
『最後に、宣言およびシステム上の共通ルールについて説明します』
『全体アナウンスおよびシステム上では、第1位を「プレイヤー1」、第2位を「プレイヤー2」と表記します』
『各階層のマスに対する宣言は、その階層へいずれかのプレイヤーが到達した時点で可能となります』
『到達者のいない階層は未知の階層として扱われます。誰も到達していない階層のマスを指定した宣言は受理されません』
『STARTマスまたはGOALマスの名称を含む宣言は受理されません』
『各階層において、GOALマスへ続く自動開放ドアに対するタクティカルポイントアクションは受理されません』
『システムに認識された宣言は即座に確定します。変更および取り消しはできません』
『ポイントは宣言が認識された時点で消費されます』
『各マスにはモニターが設置されており、相手の肩から上を映した映像が常時リアルタイムで表示されます』
『モニター映像は左右反転されません。表示される向きは実際の向きと一致します』
『映像の背景はシステムによって遮断されるため、位置や周囲の状況は判別できません』
『音声は送信されず、お互いの肉声を認識することもできません』
『説明は以上となります』
『それでは十秒後にゲームを開始します』
『10、9、8......』
CTF問題を解き、獲得したポイントで相手を翻弄しながら、自ら迷宮を築き上げる。
だから――CTFラビリンスか。
『......2、1、0』
その瞬間、正面の自動ドアが静かに開いた。オレは一メートルほどのスタンドに設置されたノートパソコンへ駆け寄り、すぐさま画面へ目を落とす。
一問目はTHBのEasy相当の難易度だった。一般的なハッカーなら、攻略まで五~十分は要する問題だ。
三十五秒後、キーボードを叩く手を止めることなく、視線だけをモニターへ向ける。問題から目を離さないまま、第1位の唇がわずかに動いた。
《1-d1・1-d2、レッドロック》
読唇術を会得しているオレには、その一瞬の口の動きだけで宣言内容を読み取るには十分だった。
さらに三秒後、一問目をクリアしたオレは、オープンポイントとタクティカルポイントを一点ずつ獲得する。
「1-d1・1-d2、オープン」
宣言からコンマ一秒後、全体アナウンスが流れた。
『1-d1・1-d2、オープン』
直後、正面のドアが開放された。モニター越しに、第1位の右眉がわずかに動く。
――やはりな。奴は口だけを動かし、実際には声を出して宣言していなかった。
狙いは、タクティカルポイントを消費せずに「1-d1・1-d2へレッドロックをかけた」とオレに誤認させ、1-c1、あるいは1-e1へ誘導することだったんだろう。
「1-d1・1-d2、レッドロック」
今度はオレが口元を手で隠し、確実に宣言する。
初手はオレの勝ちだ。わずかとはいえ、先手を取る余裕を作れた。ならば、この利を生かして二問目、三問目の難易度を測る。
二問目は、一般的なハッカーなら二十~四十分ほどを要するMedium相当だった。攻略時間は二分二十秒。三問目は、一~三時間を要するHard相当だった。
三問目を半分ほど解き進めたところで、第1位の口が再び動いた。
《1-d1・1-e1、オープン》
《1-e1・1-e2、オープン》
奴が消費したオープンポイントは二点。だが、要した時間はおよそ八分三十秒。二問目までなら三分程度で攻略できるはずだ。つまり、奴はすでに三問目まで攻略したことになる。
オレは極めて精度の高い内的時計を持つ。時計を見なくても、経過時間は数秒以内の誤差で把握できる。
第1位の唇がまた無防備に動いた。今度も、あえて隠す様子はない。オレはモニターへ意識を集中させる。
《1-c2・1-d2、ロック》
《1-d2・1-e2、ロック》
......正面ではなく、左右のドアにロックだと?
さっきと同じ口だけを動かしたブラフだったとしても、オレは確実に1-d3へ進める。そんな場所にロックを置く意味がない。
その直後、オレは三問目をクリアした。かかった時間は六分五秒。
オレが一問目から三問目までに要した時間は九分三秒、第1位との差は三十三秒。第一階層では、未知の第二階層、第三階層に備え、一問目と二問目を確実に解いてポイントを確保するのが定石だろう。
「1-d2・1-d3、オープン」
オレは迷わず宣言した。
しかし――
『1-d2・1-d3、ロック』
「......何だと?」
思わず声が漏れる。あの後、奴の口が動いた様子は一度もなかった以上、間違いなく左右のドアへロックを宣言していたはずだった。
呆然と立ち尽くすオレを見て、第1位は口元に薄い笑みを浮かべる。
こいつ......
「1-d2・1-d3、オープン」
もう一度宣言する。
『1-d2・1-d3、ロック』
再び同じアナウンスが流れた。
「......あり得ない」
奴は《1-d2・1-d3、レッドロック》と宣言していたのか?
いや、違う。
「レッド」という発音なら、唇の動きはまるで違う。見間違えるはずがない。
だが、オープンポイントを二点消費しても開かない以上、このドアにレッドロックが設定されていることだけは事実だった。
オレは思考を切り替える。
焦るな。
奴のトリックは、問題を解きながら考えればいい。
「1-c2・1-d2、オープン」
『1-c2・1-d2、オープン』
アナウンスと同時に、1-c2へ続くドアが開放される。
ということは、読唇術で読んだ《1-c2・1-d2、ロック》は、実際には宣言されていなかった。
現在の所持ポイントは、オープンポイントがゼロ、タクティカルポイントが三点。
オレは二問目へ取り掛かりながら、口元を手で隠して宣言する。
「1-e2・1-e3、ロック」
宣言を終えても、あえて三秒間、手を口元から離さない。
狙いは一つ。第1位に「1-d2・1-e2、ロック」と宣言したと思わせ、中央ルートへの進出を牽制するブラフだ。
第1位が1-e1で問題に向かってから二分四十五秒後、全体アナウンスが流れた。
『1-d2・1-e2、オープン』
『1-d2・1-d3、オープン』
ブラフには乗らなかったか。だが、これで一つ分かったことがある。
オレと奴のCTFを解く速度の差が、明確になった。
問題を解き進めていると、第1位が初めて口元を手で隠した。
《1-c2・1-c3、ロック》か。
口元を隠された以上、読唇術は通用しない。仕方ない、ここはオープンポイントを二点消費してでも前へ進むしかない。
「1-c2・1-c3、オープン」
二問目を解き終えたオレは宣言した。
『1-c2・1-c3、ロック』
やはりか。
「1-c2・1-c3、オープン」
続けて二度目の宣言を行う。
『1-c2・1-c3、ロック』
「......」
あり得ない。
一度レッドロックを使用した列には、その階層内で再びレッドロックを使用することはできないはずだ。
そのとき、第1位がこちらへ視線を送り、声を伴わずに告げた。
《このゲームの真の開発者は私だ》
ブラフだ。
お前が本当に開発者なら、CTFラビリンスでは外部から持ち込んだ電動機器が一切機能しないことを知っていたはずだ。なのに、あのときお前は義手をワイヤー駆動式へ切り替えた。あれは、システムを把握していない人間の行動だ――惑わされるな。
奴は何らかの方法で、同じ列に二度レッドロックを使用した。あるいは、同じドアにロックを二回設定したか。
いや、待てよ......。
もし、この仮説が正しいなら、同じドアでもロックを二回設定できる。
オレは口元を隠し、続けざまに宣言した。
「1-d3・1-d4、ロック」
「1-d4・1-d3、ロック」
――通った。
マス名の順序を逆にすれば、同じドアを指定していてもシステムは別の宣言として処理する。ならば、1-d2と1-d3を隔てるドアへ通常ロックを二重に設定することも可能だ。
オレが読唇術で読み取った《1-c2・1-d2、ロック》と《1-d2・1-e2、ロック》は、実際には宣言されていなかった。
奴は読唇術を逆手に取り、唇だけは《1-c2・1-d2、ロック》《1-d2・1-e2、ロック》と発音しているように動かし、その一方で、腹話術を用いて実際には《1-d2・1-d3、ロック》《1-d3・1-d2、ロック》と宣言していた。
そしてオレには《1-d2・1-d3、レッドロック》と宣言したように誤認させる。その裏で、本当のレッドロックは1-c2と1-c3を隔てるドアへ設定していた。
......そういうことか。
その瞬間、すべてが繋がった。
CTF問題だけじゃない。このCTFラビリンスそのものにも、故意に仕込まれた脆弱性が存在する。そして、第1位はその脆弱性を利用していた。
オレは開放済みのドアを辿って1-d1マスへ引き返し、残っていた二問目へ取り掛かった。
問題を解き終えると、迷うことなく宣言する。
「1-d2・1-d3、オープン」
『1-d2・1-d3、オープン』
全体アナウンスと同時に、1-d3へ続くドアが開放された。
予想通りだ。ロックは二重に設定されていただけで、レッドロックではなかった。
モニター越しに第1位の表情がわずかに変わる。オレがシステムの脆弱性を見抜いたことを悟ったのだろう。奴はすぐに進路を変え、1-e3へ進んだ。
ならば、こちらも動く。
「1-e3・1-e4、レッドロック」
宣言と同時に、1-e3と1-e4を隔てるドアは完全に封鎖され、これで奴は中央ルートを使えなくなった。
結果として、第1位は1-f3、1-f4、1-f5、1-f6、1-e6、1-e7、そして1-d7へと大きく迂回し、その先でGOALマスへ続くドアを開放した。
一方、オレは「自分が開放済みのドアには通常ロックを設定できない」という制限を逆手に取り、1-e3、1-e4、1-f4、1-f5、1-f6、1-e6へと進路を切り替えながら、最短距離を崩さず前進した。
現状、二マス分の遅れ。だが、その差を見ても焦りはなかった。
モニターへ視線を向ける。第1位はGOALマスへ向かうことなく、1-d7マスに設置されたノートパソコンへ向き合い、問題を解いていた。
その光景を見た瞬間、オレは確信した。
奴はまだ気付いていない。CTFラビリンスには、もう一つの脆弱性が隠されていることを。




