薛琳握着手机在床沿上坐了片刻。台灯的光持续地从侧面照过来,把她握着手机的右手在床单上投下一道短而清晰的阴影。她把手机从耳边拿下来,按灭屏幕,放在膝盖上,然后把文件袋从床头柜的阴影区域拿回台灯光圈里,重新打开,把原件抽出来,展开,翻到背面。 那行铅笔备注在她目光落到纸面上的时候清晰可见。她看着那行字,把赵海生刚才说的那句完整句子在脑子里和它并排放置在一起,逐字对比。红笔补充的原文有十四个字,铅笔备注保留的版本有十二个字,少了两个字的位置,那两个字就是移交和覆盖。被改动的两个动词把一句话从物理层面的动作描述转变成了系统层面的索引说明。她把原件翻到正面,看到那行圆珠笔手写补充——在纸面的同一侧,王建国在凌晨一点之前就已经写下的那行关于执行号关联参照的内容。她把正面和背面并排放在灯光下,正面内容的方向和背面铅笔备注的方向在纸面的同一侧边缘形成一个交汇点,交汇区域正是那行被擦除的红笔补充曾经覆盖过的位置。 她把原件折好重新放回文件袋,把文件袋放回床头柜,然后拿起手机重新点亮屏幕,在通讯录里找到了赵明远的号码,拨了过去。电话响到第四声的时候接通了。赵明远的声音从听筒里传来,带着凌晨特有的那种没有任何环境声干扰的干净质地,像一个人在空旷的房间里平躺着接了电话:"薛律师。" "陈忠民和王建国之间的点对点通讯通道,"薛琳说,"你三年前在那栋楼里的时候,有没有看到过那条通道的物理终端位置?" 赵明远在电话那头安静了两秒。然后他的声音重新出现,节奏没有变化,但每个字之间的间隔比日常对话略长一点,像是他正在从一段按时间顺序存储的信息中检索特定字段:"我看到过。那台终端在康怡养老行政办公室的档案柜后面。柜体和墙面之间有一条窄缝,终端被固定在柜体背面的金属支架上,从正面看不到。我进去翻陈忠民的纸箱那次,打开柜门的时候碰了一下柜体,终端支架的螺丝松了,终端掉到了地面上。我把它捡起来重新固定回去的时候看到终端屏幕上还亮着一条通讯日志,记录显示的连接状态是'已建立',连接对象的设备ID前缀和王建国办公室那台主终端一致。时间戳我记得很清楚,因为那天是我母亲去世之后第三天。" 薛琳的拇指在手机边框上停住了。她握着手机没有开口,让赵明远在通话通道里继续往下说的空间保持开放。赵明远在短暂的停顿之后继续说下去,声音在深夜里比白天更清晰一些,像一段被单独隔离出来之后减少了环境噪音的音频轨道:"那条日志的建立时间显示在韩雅芝去世前一周。终端屏幕上的通讯记录没有断过的日期标记,从那一天开始到我去翻纸箱的那天,连接状态一直是'已建立'。陈忠民从王建国的终端上截取明文字段的那条通道,在物理层面上连续运行了超过十天。他不是临时起意连接上去的,那条通道在他需要之前就已经预先铺设好了。" 薛琳靠在床头,台灯的光从侧面照在她肩上,把她的视线从手机屏幕引向墙面上她的影子的边缘。她开口的时候声音在卧室的空气中形成了一个稳定的声场,没有被家具或墙壁吸收的部分从敞开的门口向客厅方向持续扩散,最终在更远处的空间中被吸收殆尽:"你看到那条通讯日志的时候,有没有看到日志旁边显示的传输文件类型的标注?" 赵海生的声音从听筒里传来,回答不假思索,像是那个字段上的内容被他保存了三年的视觉记忆已经足够牢固到可以在任何时间被完整调取:"标注字段显示的文件类型缩写是TB-ACK。对应的是硬件缓存备份的数据包确认回执格式。陈忠民截取的那段明文字段在通讯协议层面的数据包头部显示为'待确认'状态,王建国那边的终端在发送明文字段之后约四十七分钟才返回了确认回执。确认回执的返回时间恰好落在王建国把原件重新封存回文件柜的时间窗口内。那条线路上存在一段四十七分钟的单向传输间隙,从明文字段被发送到陈忠民终端到王建国终端返回确认之间,数据包处于已接收未确认的状态。" 薛琳把那四十七分钟放进了时间线的01:02到01:49之间的区间里——王建国在01:02完成了原件的最终封存,然后他在01:49向陈忠民的终端返回了确认回执。四十七分钟的空隙里王建国完成了他对原件的那次自我修正之后,还有一段时间来确认陈忠民已经收到了那段明文字段,然后再发送确认。这意味着王建国在01:02重新封存原件之后,他对那份原件的内容走向已经不再有控制权了。他在封存完成之后用了四十七分钟来确认陈忠民收到了原始版本的数据,然后他返回了确认回执,像一个在原地等着传送带的另一端收到包裹之后才松开手的人。 她把手从手机边框上拿开,放在膝盖上,看着那盏亮着的台灯。灯罩内侧积聚的热量持续地从那个方向向她的手臂外侧辐射,比室温略高,在身体表面形成一层可以感知但不能被测量的温差。"那条通讯通道的日志记录,"她说,声音在台灯光圈的温度场中传递出去,"有没有记录回执确认之后的后续操作?" 赵明远在电话那头安静了大约三秒,然后他的声音重新出现,句子末尾比之前稍微轻了一点,像一个人正在从视觉记忆切换到对文字记录的提取状态:"回执确认之后大约五分钟,那条通讯通道上出现了一条新的发送记录——陈忠民的终端向王建国的终端发送了一段数据,数据长度大约是原始明文字段的二分之一。那条新发送记录的文件类型标注显示为一个从未在康怡系统其他位置上出现过的缩写:SYN-V。对应的含义在通讯日志页面的底部用铅笔注了一行小字,字迹和陈忠民在离职交接确认函上的一致——'同步验证字段,与原件封存状态绑定'。" 薛琳把手机握在手里,拇指沿着听筒边缘的细棱线来回滑动了一次。她开口的时候声音比刚才更低了一些,但字的间距和她之前在这段通话中的说话习惯一致,没有变化,像一条被校准后在固定宽度内持续运行的传送带上的每隔一段距离放置的标记物之间的距离,不论那一段被拉动多长,那些标记物之间的间距都保持原样:"那条同步验证字段的内容是什么?" 赵明远的回答在听筒里传来,声音在说出下一句话之前有一处只有她自己才能辨识出来的微小声学偏移——不是停顿,不是犹豫,更像是他说话的位置在空间中发生了大约一根手指宽度的移动,可能是他把手机从一只耳朵换到了另一只:"那条同步验证字段是一串加密哈希值。哈希值对应的原始数据是红笔补充完整句子和正面圆珠笔手写补充全文的拼接结果。陈忠民把两条文本合并之后生成了一个指纹值,用那个指纹值来确认原件在封存之后到再次被打开之间的时间段内是否经历了任何状态变更。那条哈希值和原件在被打开之后的状态对应关系只有陈忠民自己知道——他把原始文本也一起存进了加密文件里,但哈希值的配对验证密钥没有同时放在同一个位置。他把密钥分开放了,放到了另一条路径上。"