第14章 · 薩赫勒的灰燼
情報是由伊莎贝尔的加密通道傳遞過來的。
那天是星期二,深圳的時間是下午兩點四十七分。陆远正在據點的角落裡給女兒講一道數學題——小姑娘趴在他的膝蓋上,用一支掉了漆的鉛筆在本子上歪歪扭扭地寫數字。她寫到"7"的時候總是把橫劃寫反,陆远握著她的手糾正了三次,她第三次還是寫反了,然後自己笑了起來。法尔汉的終端發出一聲短促的蜂鳴,加密頻道的接入提示音——那種經過特殊處理的白噪音脈衝,在安靜的據點裡像一根針刺破了所有人的注意力。
法尔汉讀完了消息,沉默了幾秒鐘,然後把它投射到主屏幕上。
「來源:布魯塞爾 · 伊莎贝尔。緊急。星链將在72小時內向南美洲上空的衛星推送關鍵固件更新,編號:ORBITNET-QP-2057-09。更新期間,QKD信道的密鑰協商協議會從標準模式切換到低功耗兼容模式,切換窗口約為1.2秒——在此期間,量子態的糾纏保持率下降,密鑰生成中斷,鏈路上的光子到達時間差數據將不再被審計。根據米蘭對我的指令,此窗口被描述為"不可監控期"。如果SkyWalker需要一條沒有審計記錄的注入路徑——這是你們能找到的最窄的窗口,也是唯一的一扇窗。——伊莎贝尔。」
主屏幕周圍已經聚攏了七八個人。有人低聲重複了某段關鍵內容,有人已經開始調取南美洲上空星链衛星的軌道參數。空氣在幾秒鐘內從午後的慵懶變成了戰前的緊繃。
法尔汉沒有立刻反應。他坐在工位上,一隻手撐著下巴,目光在屏幕上的那些字句之間緩慢移動,像是在讀一封措辭可疑的信。
據點裡的其他人已經開始興奮起來。一個叫洛倫索的葡萄牙裔工程師已經開始計算注入窗口的軌道覆蓋範圍——他的手指在鍵盤上飛舞,全息地圖上南美洲的輪廓被逐層標註,巴西、秘魯、哥倫比亞上空的衛星軌跡被繪製成交錯的弧線。"如果我們在利馬和聖保羅同時建立兩個地面注入點,"洛倫索說,聲音裡帶著壓不住的熱度,"可以覆蓋大約三百七十顆衛星的QKD鏈路。一個同步注入——我們就能在星链的南美洲段創建一個連貫的自治網絡飛地。三百七十顆衛星組成的是一個邏輯上的獨立網絡——"
"太順利了。"法尔汉說。
房間裡安靜了。洛倫索的手指停在鍵盤上方。
"伊莎贝尔的情報來源是米蘭。"法尔汉轉過椅子,面對著所有人,"米蘭知道她是雙面間諜。如果米蘭通過她來傳遞這個情報——那這個情報本身就是米蘭的計算結果。他在告訴我們:有一個1.2秒的窗口。他給了我們時間和座標。他在等我們走進去。"
洛倫索放下了手。他的興奮在消退,取而代之的是一種職業性的警覺。"你認為這是一個陷阱。"
"我不確定。"法尔汉說,"但米蘭是這座監獄的總設計師。一個囚犯通過獄卒的間諜收到了一張越獄路線圖——你覺得獄卒不知道嗎?"
據點裡沒有人反駁。那些剛剛還在計算注入參數的幾個人安靜了下來,退回各自的工位,但他們的目光仍然不時地飄向主屏幕上的那封情報。每一次飄過去,都帶著一種不甘心的重量——因為無論怎麼看,那個窗口都是真實的。1.2秒的審計間隙,夠寬,夠深,夠他們完成一次全球矚目的注入。
陆远感到女兒的小手拉了拉他的衣角。他低頭,看到小姑娘仰著臉看他,用一種她特有的、很輕的聲音問:"爸爸,你要去打仗嗎?"
陆远把她抱起來。他不知道怎麼回答。他說了"不去",但那個字從喉嚨裡出來的時候他自己都不太相信。
数据党的決策層最終投票通過了行動方案。
投票是在加密頻道上進行的。阿米娜從拉各斯接入了會議,她的畫面抖動而模糊——鸽子网络中繼的帶寬有限,分給視頻通話的只有不到每秒一幀的數據量。但她的聲音足夠清晰,清晰到所有人都能聽到她問的那個問題:
"誰去?"
法尔汉沒有報名。他在投票前的最後一次分析會議上說了一句讓所有人都無法反駁的話:"如果這是一個陷阱——我和陆远必須活著。因為只有我們知道怎麼找米蘭的嵌套入口。如果我們死在這次行動裡,米蘭的第二個後門就永遠沒人能找到。"
決策層同意了這個邏輯。法尔汉和陆远被排除在行動名單之外。
二十三個人接過了任務。
他們的名字被寫在據點的戰術白板上——不是真實姓名,是代號。二十三行用白色馬克筆寫的字符,在熒光燈下整整齊齊地排列著,像一塊臨時搭建的墓碑的草稿。陆远站在白板前面把那些代號一個個看過去:金雕、渡鴉、信天翁、夜鶯——每一個名字都是一隻鳥。阿米娜的鸽子网络培養出的信使之鳥。
他不知道其中任何一個人的全名、年齡、家庭背景。他只知道他們中的大多數比他年輕,有幾個可能還沒有大學畢業。他們坐在據點的不同角落,此刻正在檢查自己的設備——改裝過的SDR終端、加密存儲卡、信號調製器的備用電池——每一個動作都帶著一種刻意的平靜,像一群即將潛水的深海潛水員在做入水前的最後一次裝備檢查。
洛倫索走過來,拍了拍陆远的肩膀。"別擔心。三百七十顆衛星——我們算過,即使米蘭關上了那扇窗,QKD鏈路的物理層特性決定了他不可能在1.2秒內關閉所有通道。我們至少能完成百分之六十的注入。"
陆远看著他。這個葡萄牙裔的年輕人大概二十三歲,嘴角還帶著一顆沒完全消下去的青春痘。他說話的語氣像是在說服自己。
"百分之六十夠嗎?"
"夠在南美洲上空撕開一個口子。一個小的口子。但只要我們進去了——SkyWalker就能在內部擴散。"洛倫索停頓了一下,"我研究生讀的是衛星網絡協議,導師說星链是不可戰勝的。我退學了。"
他說完笑了一下,轉身走回自己的工位。
陆远看著他的背影。他想說"小心",但沒說出口。在這個據點的語境裡,"小心"是一個太輕的詞。
行動在第七十三小時啟動。
陆远沒有參加作戰會議。他坐在據點的角落裡,女兒在他旁邊畫一隻蝴蝶——她已經連續畫了七天的蝴蝶,每一隻都在前一隻的基礎上改一點點翅膀的弧度。陆远看不懂她在追求什麼,但他沒有問。畫蝴蝶是她在這個沒有窗戶的地下空間裡為數不多能做的事,她的蝴蝶不需要流量配額,不需要算力 token,不需要星链的許可。
法尔汉在他的法拉第籠裡,沒有參與任何溝通頻道。他戴著隔音耳機,面前顯示的不是行動界面——是米蘭的設計日誌。他還在挖。逐字逐句地、像考古學家用刷子清理一件被埋了千年的器物一樣,從那些被時間磨損的文字碎片中尋找那個嵌套入口的蛛絲馬跡。
行動在中午十二點整開始。
據點的主屏幕上,一條紅色的狀態欄開始跳動。「注入窗口開啟倒計時 · T-0:01:12.0」。洛倫索的手指懸在回車鍵上方。南美洲上空的衛星正掠過安第斯山脈,它們之間的QKD鏈路正在從標準模式向低功耗兼容模式切換。密鑰生成率在下降。糾纏光子對的到達時間差數據的隨機性在增加——那些增加的隨機性裡,藏著SkyWalker可以借住的空洞。
十二秒。十一秒。基多地面站發送了第一個注入脈衝。
十秒。九秒。利馬地面站的確認信號返回,延遲完美控制在閾值以內。
八秒。七秒。超過三分之二的節點完成了第一次握手。
六秒。
五秒。
四秒。
三秒。
二秒。
一秒。
零。
紅色狀態欄跳成了綠色。「注入窗口關閉 · 初始連接已建立」。據點的房間裡爆發出一陣剋制的歡呼——不是那種放聲大喊的慶祝,是幾個人同時用力拍了一下桌面,有人在座位上攥緊拳頭長長地呼出一口氣。
成功了。最初的零點幾秒裡——看起來一切正常。
然後第七秒發生了。
陆远說不出自己是怎麼在第七秒感到不對勁的。他沒有在看屏幕——他正在給女兒擰開一瓶水的瓶蓋——但他感到據點裡的空氣在那一瞬間發生了某種質變,像大氣壓突然下降了幾毫巴。他抬起頭。
主屏幕上的綠色狀態欄正在以肉眼可見的速度變化。
從綠色到黃色。
從黃色到橙色。
然後——在不到半秒鐘之內——從橙色跳到了紅色。
不是一條紅色的狀態欄,是多條。那些剛剛還顯示著"連接已建立"的節點,正在一個接一個地被標記為**「連接中斷 · 原因:終端被反向追蹤」**。
洛倫索的聲音從房間的另一側傳來,不再是那種帶著青春痘般魯莽的熱情,是一種陆远從未在他身上聽到過的聲音——冰鎮的、平整的、像刀刃在磨石上剛剛開過刃一樣的聲音。"他們知道我們的精確位置。每一終端——都在被反向定位。這不是普通的追蹤——他們在注入路徑的每一箇中繼點上都布了監測點。"
他的手指在鍵盤上瘋狂地輸入防禦指令,但每一個指令的響應時間都在變長——不是因為網絡擁堵,是因為那些被他控制的終端正在逐一從数据党的網絡中脫落,像一艘正在沉沒的大船上的乘客,一個一個地鬆開手掉進海水裡。
陆远站起來。女兒的畫筆從她手邊滾落,在水泥地面上彈跳了兩下,滾到了桌底。他沒有去撿。
他走到了主屏幕前面。
一個接一個,那些代號——金雕、渡鴉、信天翁、夜鶯——正在從在線狀態變成離線。不是灰白色,是一種暗紅色,像是被系統用血色的墨水劃掉的。那個暗紅色代表的不只是終端斷開,它代表著終端的物理位置已經被星链的安全系統鎖定——而塞拉斯的人正在趕往那些座標的路上。
二十三個代號。
在他站著看屏幕的大約四十秒內,暗紅色吞噬了它們中的十九個。
據點裡已經沒有人說話。有人在低聲啜泣——是一個陆远不太熟的年輕女孩,負責固件編譯的,大概二十歲出頭。她捂著自己的嘴,不讓自己發出聲音,但眼淚已經從她的指縫間溢出來,掉在鍵盤上。
洛倫索停下了手上的操作。他的雙手離開鍵盤,垂在身體兩側。他的臉上沒有表情——是一種表情徹底消失了的空白。
最後四個代號在接下來的十秒內逐一熄滅。
二十三個,全部暗紅。
主屏幕的右下方彈出了一條星链安全系統的自動通知——可能是塞拉斯故意讓它透過数据党的監控可見的,像一種嘲弄。通知寫著:
「目標終端已被依法截獲。数据党成員:根據《國際太空通信安全公約》第14條,你們的行為已被記錄。自首通道已開放。請就近聯繫星链授權代表。」
沒有人回應那條通知。
法尔汉從法拉第籠裡走出來。他的隔音耳機掛在脖子上,屏幕上的米蘭設計日誌還沒有關閉。他走過洛倫索的工位時停了一下,看了一眼那個年輕人垂在身體兩側的拳頭——攥得太緊了,指節發白,指甲已經嵌進了掌心的皮膚,滲出一絲極細的血。
法尔汉沒有說"別自責"之類的話。他只是走過去,用一隻手把洛倫索的拳頭掰開。洛倫索的手掌攤開之後,掌心有一個半月形的指甲印,正在慢慢滲血。
然後法尔汉走回主屏幕前,看了一眼那些暗紅色的代號列表。二十三行。全部暗紅。
他伸出一隻手,按在屏幕的邊緣。不是砸,是按壓,像在確認那層玻璃後面顯示的每一個字都是真實的。
"那是米蘭送給我們的禮物。"他說。聲音不大,但在安靜的據點裡每一個字都清楚得像釘子釘進木板。"二十三個人。因為他的一個算計。"
陆远站在他旁邊。他感到自己的手在發抖——不是因為恐懼,是一種從腹部深處湧上來的、冰冷而尖銳的憤怒。他想說什麼,但喉結像被什麼東西卡住了。他用力嚥了一下,才把聲音從喉嚨裡擠出來。
"不。"
法尔汉轉過頭看他。
"那不是米蘭送給我們的禮物。"陆远說。他的聲音比他預想中要安靜——不是平息了的安靜,是風暴眼中心那種詭異的靜止。"那是米蘭送給伊莎贝尔的禮物。"
法尔汉的表情沒有變化,但他的瞳孔微微收縮了一下。
"米蘭早就知道伊莎贝尔是雙面間諜,"陆远繼續說,每一個字都在他嘴裡變得越來越清晰,像一塊正在被水沖洗的石頭,"他通過她傳遞這個情報——不是在測試我們。他是在測試伊莎贝尔。看她是會把這個情報原封不動地轉給我們,還是會加上自己的判斷,還是會選擇隱瞞。"
他停頓了一下。
"她原封不動地轉給我們了。所以米蘭知道了——伊莎贝尔站在我們這邊。她不是雙面間諜——她是已經被我們策反的單面間諜。"
據點裡沒有人說話。
"二十三個人——那是米蘭為那條信息支付的鑑定費。他需要確認伊莎贝尔的身份。確認的方式就是——"陆远的聲音終於出現了一道極細的裂縫,"用二十三個人的命來驗證。"
法尔汉的手從屏幕邊緣移開了。他轉過身,背對著那片暗紅色的名單,靠在桌沿上。他低著頭,看著自己的鞋尖。
"伊莎贝尔已經暴露了。"他說。語氣是陳述式的,不帶任何情緒,像一個醫生在病歷上寫下診斷結論。"米蘭不會再用她傳遞任何真情報。她現在是死的——一個被標記的、失去了戰略價值的資產。"
"我們也是被贈送的代價。"陆远說。
法尔汉沒有否認。
據點裡有人在低聲問:"那二十三個人——他們怎麼辦?"
沒有人能回答這個問題。
防線頻道上沒有消息。
数据党有幾個應急頻道——通過鸽子网络的物理中繼線路連接的、完全不依賴星链的通信路徑。那些頻道的速度很慢,一條消息從利馬傳到拉各斯再轉到深圳需要幾個小時,而且每條消息都必須在每一箇中繼節點被人工讀取、存儲、再轉發。但它們是安全的——絕對的安全,因為沒有任何電磁信號參與傳輸。
二十三個終端被截獲後的大約六小時,第一條鸽子网络的消息終於抵達。
阿米娜的聲音通過一條經過四次轉手的音頻文件傳達。她的聲音比平時低,低到幾乎不像她,每一個詞之間都有很長的停頓,像是在努力地控制自己的呼吸。
「二十三人中——十五人被逮捕。四人在物理截獲設備時受傷,目前在星链的醫療監護下。兩人在抵抗中重傷——消息來源不確定是否已經脫離危險。還有兩人我們無法確認他們的狀態,星链沒有公佈完整名單。鸽子网络正在確認——但那條線的反饋需要時間。」 她的聲音停了一下,再響起時多了一種陆远從未在她身上聽到過的東西——疲憊。「四個據點被搜查。利馬、聖保羅、基多、波哥大——全部暴露。超過三百TB的固件數據和節點信息被收繳。法尔汉——我不知道塞拉斯是怎麼做到的,但他在同一個時間窗口內同時打擊了所有目標。這說明他在行動開始之前就已經掌握了所有節點的精確位置。他沒有等追蹤信號——他已經在那些座標上部署了力量,只等著我們啟動注入,他就能確認我們的位置。」
消息播放完畢。據點裡沒有人打開下一段。
陆远坐在他女兒身邊。小姑娘已經趴在摺疊床上睡著了,呼吸均勻,完全不知道在她睡覺的幾個小時裡,二十三個她從未見過的人已經從世界上消失了。也許不是徹底消失——他們中的大部分人還活著,只是現在正在某個星链授權的拘留設施裡等待不知道會持續多久的審訊。但"活著"和"還在我們的世界裡"是兩回事。
陆远給她掖了掖被角。她的一縷頭髮貼在額頭上,他輕輕地把它撥開。手指碰到她的皮膚——溫熱的,帶著一種讓人心安的、活著的溫度。他忽然想到一個讓他脊背發涼的問題:
那二十三個人——在行動開始之前——有沒有也這樣摸過自己孩子的額頭?
他把手收回來,握成拳,放在膝蓋上。
據點的燈光已經調暗了——不是為了省電,是因為此刻沒有人能承受全亮度照明下的視覺真實感。洛倫索坐在他的工位上,沒有開他的主顯示器,只開了一盞小檯燈。他的側影在昏黃的光線下像一個被遺棄在站臺上的人。
法尔汉不知道去了哪裡。陆远後來在樓頂的消防通道上找到了他——他沒有下樓,是往上走的,一直走到了廢棄大樓的最頂層。他沒有越過天台的門檻,只是站在門框裡面,看著外面被黃昏染成鐵鏽色的深圳天際線。
陆远在他旁邊站下來。
"二十三。"法尔汉說。
陆远沒有接話。
"我在三週前——在做形式化驗證之前——就已經有百分之七十的把握那個漏洞是陷阱。"法尔汉的聲音很平,平得像一條已經沒有任何坡度可以繼續下降的路。"但我沒有阻止行動。因為如果那是百分之三十不是陷阱的可能——我就不能阻止。如果那個窗口真的存在,如果因為我的猶豫錯過了唯一的機會——那又是另一種責任。"
他停了一下。"米蘭算準了這一點。他知道数据党會在百分之七十的陷阱概率和百分之三十的機會窗口之間做出什麼選擇。所以他把概率算得剛剛好——讓我們無法拒絕。"
遠處的天空正在從鐵鏽色過渡到灰紫色。第一顆星链衛星已經出現在東南方向的低空——一個勻速移動的光點,在暮色中安靜地滑行。它看起來和其他所有的星星一樣冷漠、一樣遙遠、一樣與地上那個站在廢棄大樓門框裡看著它的男人毫無關係。
"那二十三個人——"陆远開口了,他發現自己不知道該怎麼繼續。他停了一會兒,"他們選擇了百分之三十。"
法尔汉沒有回答。他站在門框裡,雙手插在口袋中,看著那道衛星的軌跡一直延伸到天際線盡頭,消失在城市上空的霧霾裡。
"你知道嗎,米蘭在2052年的日記裡寫過一句話,"法尔汉說,聲音輕得像在自言自語,"他說:'薩赫勒地區的草每年都燒一次。然後在下個雨季重新長出來。灰燼是肥料。'"
他轉過身,背對著那道正在暗下去的天際線。
"他是對的。但我不想成為肥料。"
他們走下樓去。
據點裡的燈更暗了。某個人在角落裡放了一段音樂——一首老歌,陆远聽不出是什麼,但旋律緩慢而低沉,像一個人在慢慢地拆一件東西。女兒在摺疊床上翻了一個身,小手從毯子下面伸出來,在空氣中無目的地抓了一下,然後縮回去。
陆远蹲下來,握住那隻手。她沒有醒,但她的手指本能地握緊了他的食指。
有那麼一瞬間,他感到眼眶在發熱。他用力閉了一下眼睛,把那股灼熱壓了回去。
外面的衛星還在走。
二十三隻鳥不會再飛回來了。
灰燼落下來的時候,不管你是不是準備好了——它都會落在你的頭髮上、肩膀上、手心裡。
陆远把女兒的手放回毯子下面。
然後他轉身走向法尔汉那個還亮著的法拉第籠。