他們沒有看到完整的日出。
雲層太厚了。太陽始終沒有從雲後面完全露出來,只是把天空從深藍慢慢調成了灰藍,再從灰藍調成了一種淡淡的、帶著一點粉色的白。
但葉佩佩說:「夠了。」
他們在海邊的一間二十四小時便利商店裡坐了下來——是那種開在省道旁邊的、專門給夜間貨車司機歇腳的便利商店。燈光很亮,地板有一點油,空氣裡混著關東煮和咖啡的味道。
葉佩佩坐在靠窗的位置,手裡捧著一杯熱美式——普通的美式,不是她的配方,因為這間便利商店沒有燕麥奶。她的眼睛還是紅的,但已經不哭了。她的表情回到了一種陳寧熟悉的狀態——那種「我在處理問題」的、有條理的、冷靜的狀態。
她開始講。
不是情緒的宣洩——那已經在海邊完成了——是事實的陳述。像一個律師在法庭上呈報案情一樣,條理分明,層次清楚,每一個細節都有時間、地點、人名。
她講了那起商務訴訟案。講了周律師的疏漏。講了那封把責任轉嫁到她身上的郵件。講了法院的十四天補正期限。講了鑑定機構不接電話。講了她這五天幾乎沒有睡覺、一直在試圖找到原始數據的破口。
她講的時候,語氣很平。平到像是在念一份別人的報告。
但陳寧聽得出來那種「平」底下的東西。
那是一個人在疲憊到快要碎掉的時候,用最後一點力氣把自己的情緒打包、壓縮、密封起來,讓它看起來像一個整齊的包裹——但你知道那個包裹隨時可能被拆開。
他聽完了。
然後他問了一個問題。
「原始數據是電子檔嗎?」
葉佩佩看了他一眼。「是。鑑定機構的報告是用專門的數據分析軟體產出的,原始數據存在他們的內部伺服器裡。」
「什麼格式?」
「我不確定。應該是CSV或者Excel。涉及到的數據量很大——幾萬筆財務交易紀錄。」
「幾萬筆。」陳寧重複了一遍。
他的理工大腦在這一刻切換到了一個他非常熟悉的工作模式。
不是「面對葉佩佩時的緊張模式」。不是「試圖維持馬甲的防禦模式」。是——工程師模式。是那種他在辦公室裡面對一個技術難題時會進入的、純粹的、沒有任何情緒干擾的分析模式。
「妳說對方律師質疑的是數據完整性?」他問。
「對。他們認為鑑定報告裡的數據可能被篡改過。」
「但實際上有沒有被篡改?」
「沒有。數據本身沒有問題,只是程序上少了一個hash值驗證的環節。」
「所以問題不在數據本身,在於沒有方法可以證明數據沒有被改動過。」
「對。」
陳寧沉默了大概十秒鐘。
然後他說了一句讓葉佩佩愣住的話。
「如果我能幫妳找到數據沒有被篡改的證據呢?」
「什麼意思?」
「我是做硬體的。」陳寧說,「IoT感測器的核心工作就是數據採集和數據驗證。我們每天處理的問題就是——怎麼證明一筆從感測器傳出來的數據是原始的、沒有被中間環節篡改過的。」
他頓了一下。
「妳的鑑定報告是用軟體產出的。任何軟體在產出數據的時候,都會在系統層面留下痕跡——時間戳、操作日誌、檔案的修改記錄。就算人為操作上沒有走hash值驗證的程序,系統本身也會自動記錄一些底層的數據軌跡。這些軌跡是無法被人為篡改的——因為它們存在作業系統的底層log裡,不是存在那份報告裡。」
葉佩佩盯著他。
「你的意思是——」
「如果能拿到那台產出報告的電腦的系統日誌,或者那份原始數據檔案的metadata,就可以從技術層面證明這份數據從生成到導出的過程中沒有被修改過。不需要hash值——系統日誌本身就是另一種形式的數據完整性證明。」