雨还在下。
沈前锋推开阁楼窗户,让潮湿的空气涌进来。桌上的烟灰缸已经堆满了,潘丽娟留下的半包老刀牌香烟只剩三根。他抽出一支点燃,烟雾在雨丝中迅速消散。
密码本摊开在桌面上,旁边是黄英送来的第三批电文抄录件。
总共七十三份。
时间跨度是从上个月十五号到这个月三号,全部来自日军华中派遣军司令部下属的不同部队。收报单位、发报时间、电文长度都标注得清清楚楚,甚至有几份后面附了军统监听到的零星对话片段——显然是黄英动用了上海站最核心的资源。
沈前锋按了按发胀的太阳穴。
连续四天,他每天睡眠不超过三小时。系统里的【密码逻辑分析仪】已经输入了全部七十三组密文,以及潘丽娟提供的日军常用军语、编制代称、地名简写等二十七项参数。
分析仪给出的“可能规律”有三条:
第一,密钥每天更换,但更换规则与当日日期有关。
第二,某些固定词组(如“弹药补给”“部队移动”)有固定替换模式。
第三,最后八个字符可能是校验码。
每一条都像是触及到了真相的边缘,但每一条都缺少最关键的那一环——上半册密码本。
没有原始密码表,这些规律就像没有钥匙的锁链,看得见形状,打不开门。
沈前锋坐回桌前,重新翻开那七十三份电文。
他的目光落在编号47的电文上。
这一份和其他不太一样。长度中等,用词简练,没有多余修饰。按照军统监听的记录,这份电文发出后,虹口日军宪兵队有三辆卡车紧急出动,方向是闸北。
而闸北,两天后发生了一起针对伪政府官员的刺杀。
太巧合了。
沈前锋拿起铅笔,在47号电文旁边写下几个字:“预警?还是指令?”
如果是预警,说明日军提前知道了刺杀计划。如果是指令……那就更可怕了,意味着刺杀可能是日军自导自演。
他需要验证。
沈前锋闭上眼睛,在脑海里调出分析仪的界面。淡蓝色的光幕上,七十三组数据像星辰一样排列。他选择47号电文,下达指令:“比对所有含有‘闸北’‘行动’‘清除’相关词组的电文。”
光幕闪烁,三份电文被高亮标注。
分别是19号、32号和58号。
19号电文日期是上个月二十二号,内容提及“闸北地区治安强化”。32号是二十八号,“针对抵抗分子之清理行动准备”。58号是这个月二号,“各单位保持警戒”。
时间线串起来了。
但还不够。
沈前锋从抽屉里取出上海地图,铺在桌面上。地图上已经用红蓝铅笔标注了这半个月来所有已知的抗日行动和日军反应。闸北刺杀案的位置,画着一个红色的叉。
刺杀发生在山西路和宝山路口。
他找到那个位置,然后用圆规以刺杀点为中心,画出一个半径五百米的圆。
圆内包含:一个伪警察分局、一个日军物资检查站、两家当铺、六条弄堂,还有——
沈前锋的铅笔停在一个点上。
日华纺织厂第三仓库。
那是日本商社的产业,但根据阿祥的“报童情报网”传回的消息,仓库最近半个月进出车辆异常频繁,而且都是晚上。报童们被警告不许靠近那一带。
太显眼了。
显眼得像是个陷阱。
沈前锋掐灭烟头,重新看向47号电文。如果这份电文真的是日军自导自演的指令,那么它一定会在密码的某个环节留下破绽——毕竟假戏要真做,就必须让收到电文的日军部队“相信”这是真的。
而要让部队相信,电文格式、用词习惯、甚至校验码,都必须符合真正的密码规则。
除非……
沈前锋突然坐直身体。
除非这份电文用的不是“紫电”密码。
这个念头像一道闪电劈进脑海。他迅速翻开密码本,找到下半册里关于“特殊用途电文”的注释页。那一页被撕掉了一半,只剩下几行残缺的文字:
“……应急通讯……备用表……见附录七……”
附录七在哪里?在上半册。
但沈前锋不需要附录七也能推理。如果日军有多套密码系统,那么“紫电”是主密码,用于常规通讯。而某些特殊行动——比如自导自演的刺杀——完全可能使用另一套备用密码。
备用密码的规则,很可能就写在被撕掉的那半页上。
他抓起铅笔,在47号电文旁边快速写下:
假设一:此电文为真,使用“紫电”密码。
假设二:此电文为假,使用备用密码。
验证方法:找到其他可能使用备用密码的电文。
沈前锋立刻对七十三份电文进行二次筛选。这次的标准不是内容,而是“异常点”:电文长度与内容不匹配的、出现罕见代号的、发送时间在深夜非值班时段的。
筛选出五份。
小主,这个章节后面还有哦,请点击下一页继续阅读,后面更精彩!
19号、32号、47号、58号,还有一份是69号。
69号电文昨天才收到,内容简短到反常:“樱花,确认。”
“樱花”是什么?
沈前锋在记忆里搜索。潘丽娟提供的参数里没有这个词,黄英的注释里也没有。日军常用代号有“山”“川”“梅”“兰”,但“樱花”太直白,更像是某种临时约定的暗语。
他看了眼69号电文的发送时间:凌晨三点十七分。
这个时间,除了值班电台,大部分部队的通讯都应该静默。除非有紧急情况。
或者,除非这不是发给部队的。
沈前锋感到后颈的汗毛竖了起来。
他打开系统,调出分析仪的历史记录。四天前,当他第一次输入所有参数时,分析仪曾弹出一个提示框:
【检测到部分数据存在格式冲突,是否标记?】
他当时选了“是”,但没太在意。
现在,他重新调出被标记的数据列表。
正好五条。
19、32、47、58、69。
全部对上了。
沈前锋深吸一口气,在系统界面上操作。他选中这五条电文,选择“隔离分析”,然后输入新的指令:“忽略已输入的参数,仅基于这五条电文,推导可能的密码规则。”
分析仪开始运行。
沈前锋盯着进度条,手指无意识地敲着桌面。
如果他的猜想正确,那么这五条电文使用的就是另一种密码。而另一种密码的规则,很可能就藏在这五条电文之间——因为它们数量太少,不足以形成复杂的加密体系,反而更容易暴露规律。
就像一个人用假名写信,如果只写一两封,很难看出破绽。但如果写五封,笔迹、用词习惯、甚至折信纸的方式,都会重复。
系统弹出一个红色提示:
【数据量不足,无法完成推导。需要至少一条对应明文。】
沈前锋皱起眉头。
五条密文,没有一条知道原文。这就像要解开一个数学方程,却只有未知数,没有常数。
除非……
他看向47号电文。
那份关于闸北刺杀的电文。
虽然不知道原文,但他知道结果——刺杀发生了,日军宪兵队出动了。那么电文里至少应该包含“闸北”“行动”“目标”这些关键词。
沈前锋重新拿起铅笔,在纸上写下几个词:
闸北。
行动。
目标。
清除。
确认。
然后他打开系统,在分析仪里选择“手动输入假设明文”。他输入“闸北行动目标清除确认”这九个字,对应47号电文的四十七个字符。
系统提示:“字符长度不匹配。”
当然不匹配,密文长度是明文的好几倍,这是基本加密常识。
沈前锋删掉重来,输入“今日于闸北实施清除行动目标已确认”,十七个字。
还是不行。
他想了想,换成日文思考。
如果是日军参谋起草的电文,会怎么写?“本日、闸北にて清除行动を実施、目标确认済み”——大概就是这个长度。
他数了数字符,二十一个。
而47号密文是四十七个字符,多出来的二十六个字符,可能就是填充码、校验码和加密后的冗余。
沈前锋在系统里输入这串日文假想明文,选择“尝试匹配”。
分析仪再次运行。
这次进度条走得很顺畅,五秒后,屏幕上弹出一行字:
更重要的是,分析仪发现了“固定序列”。
在密码学里,固定序列就像是签名。如果每份电文都使用相同的填充序列,那么只要找到这个序列,就能把填充部分剥离出去,剩下的就是真正的加密内容。
沈前锋立刻让分析仪扫描其他四份电文,寻找“2457”这个序列。
19号电文,在第十六到十九字符位置,找到“2457”。
32号电文,在第二十二到二十五字符位置,找到“2457”。
58号电文,在第九到十二字符位置,找到“2457”。
69号电文,在第三到第六字符位置,找到“2457”。
全部命中。
沈前锋感到心跳加快了。他让分析仪剔除所有“2457”序列,然后重新计算五份电文的加密内容长度。
结果出来了:
19号电文,剔除后剩三十八个字符。
32号电文,剩四十一个字符。
47号电文,剩四十三个字符。
58号电文,剩三十六个字符。
小主,这个章节后面还有哦,请点击下一页继续阅读,后面更精彩!
69号电文,剩三十四个字符。
这些数字,如果除以5,得到的商分别是76、82、86、72、68。
不对。
沈前锋重新计算,这次把字符数除以25——因为两个明文字符对应五个密文字符,那么每个明文字符对应25个密文字符。
结果出来了:
19号电文,对应约152个明文字符。
32号电文,对应约164个明文字符。
47号电文,对应约172个明文字符。
58号电文,对应约144个明文字符。
69号电文,对应约136个明文字符。
取整数,大约是15、16、17、14、13个字。
这个长度,完全符合简短军事指令的风格。
沈前锋靠在椅背上,长长吐出一口气。
他找到门了。
虽然还没有钥匙,但至少知道门是什么形状,用什么材料做的。这五份电文使用的确实是另一套密码,一套更简单、更直接、用于特殊行动的备用密码。
而备用密码的规则,很可能就写在那半页被撕掉的注释上。
他需要找到上半册密码本。
或者,找到更多使用这套备用密码的电文。
沈前锋看了眼时间,凌晨四点二十分。窗外的天色依旧漆黑,但雨已经停了。远处传来黄浦江上轮船的汽笛声,沉闷而悠长。
他关掉系统界面,整理好桌上的电文抄录件。在47号电文旁边,他最后写下两个字:
“诱饵。”
如果这份电文真的是日军自导自演,那么它不仅是诱饵,还是测试——测试抗日力量能否破译“紫电”。如果破译了,就会相信电文内容,进而采取行动。
然后落入陷阱。
沈前锋把电文锁进抽屉,起身走到窗边。潮湿的夜风吹在脸上,带着江水特有的腥味。
他知道自己该做什么了。
明天,不,今天白天,他要去见潘丽娟和黄英。把这份发现告诉她们,让她们停止一切基于47号电文情报的行动。
然后,他们要反过来利用这个发现。
既然日军用假电文做诱饵,那么他们也可以假装上钩,引出真正的大鱼。
但这个计划有一个前提:
必须找到上半册密码本,彻底破解“紫电”。否则,他们永远分不清哪些电文是真的,哪些是假的。
雨后的上海,在黎明前的黑暗里安静得像一座巨大的坟墓。
而沈前锋知道,这座坟墓里埋着的不仅是死人,还有更多活着的秘密。
他需要一把足够锋利的铁锹。