重庆山城,一间半山坡的石屋里。
史岱繁有一个礼拜没能拉出正常形状的粪便了。他开始怀疑自己得了疟疾,但金鸡纳霜还在那个中国学生顾少亭的箱子里。
自从他上次答应费尔班留下,并且吃了那顿火锅之后,他就拉得没停下来。那天晚上,他们还去见了那位“戴先生”。那是个中等身材的中国官员,长着两条浓眉,坐在一张硕大的写字台后面。写字台前面的地毯上,还有一些暗红的久远痕迹,很显然是血。戴先生的手还总是放在台面之下,就好像写字台里藏着一把手枪似的,老实讲,史岱繁看得有点发怵。
他们有一搭没一搭地谈了一会,就由司机开了半小时车,把他送到了乡下的一座小石屋。那就是戴先生给他提供的住所。
小石屋的居住条件非常差,尤其是旱厕的原理令他不适,当晚回去他就腹泻了,喝补盐液也无济于事。加之冬天的重庆采光并不好,一连好几天,史岱繁都在昏暗的屋子里发着烧咒骂费尔班。第三天晚上,几个大夫鬼鬼祟祟地进来过,把他摆弄了一遍,他终于舒服不少。这个小石屋周围经常冒出一两个人来,有的传递抄好的电文,有的只是给史岱繁送来吃的东西和毫无用处的问候,但通过频率计算,史岱繁大致能推测出这个石屋附近应该还有相似的石屋,组成一个比较大的团队,有十个人左右。不断有被截获的加密电报文送进来。“戴先生”给他派了个类似秘书的助手,叫梁华,通晓机械和无线电,还会打枪。有好几次,他都看见梁华在厨房里追老鼠。在这种厨房环境下,他再也没胆量吃火锅。
他猜出那些大夫都是军医。史岱繁所住的屋子外面有一片空地,四周长的都是苦楝树,长一种有毒的果子,梁华又拿这种果子去毒死老鼠。他还说这东西在重庆挺常见的,老乡怕浪费本来就稀少的粮食,就拿苦楝果熬成粘稠的胶质,做一种层数很多的布鞋,说是可以防止虫蛀。
自从他精神一点之后,梁华就给了他一沓厚厚的密电文。这是疑似为“长江之歌”加密的所有近期电文,有些旧的破解了,新的完全还是秘密。
“日本人先把假名译成字母,再用密码本加密。”梁华说。“有些我们采用暴力破解了含义,但始终没办法还原密码本。”
那当然。史岱繁想,因为密码本的本质是一个随机数表。
他们前不久跟他普及过一些日军密码的事情。密文在无形的电报中传播很容易被截获,所以需要用密码来加密。就在前些年,日本人所用的密码还是最简单的那种——发报方和收报方各约定一个接头信号。比如川渝一带是鱼米之乡,那么就按每日公开米价的某几个特定数位,用这些数字做加法,把一个字母变成另一个字母,比如明文B加上7就是密文I。
当然,实际使用中会有一些优化,比如一篇密文里面按顺序使用好几种数字,或者干脆用线性代数的原理做个矩阵变换,把整个字母表反转一遍,等等等等,但万变不离其宗。
日本人本来精于算术,证交所炒股用的K线图就是江户时代的米商发明出来的,但这种老加密方式实在是过时了,它拙劣到史岱繁这种门外汉都能破解。它的优点是不必用使用那些花俏的隐藏密码本,比如一本《圣经》或者是《简明英汉字典》,缺点是破译也不必使用密码本。
在史岱繁看来,这些加密后的文字就是一堆散点分布图,分布本身没有意义,但分布的频次与日语字母、词语的频次呈现强烈的相关。因此,只要截获够多电报,分析里面的字母频次,不仅能推算出加密前的原文是什么,还能推算出是用猪肉还是辣椒来加密的。
日本人显然也知道这一点,所以这些密文在前几年传送的都是一些无关痛痒的消息,比如东京外务省又拍脑门决定采取一个什么样的对华态度之类的,甚至只要粗通日语的语言学规律就破解得更快。南京密电检译所积累了大量这种垃圾信息,被“戴先生”深深耻笑,他想搞点新东西出来。因为这个老狐狸知道,战争打响后,他们真正需要破译的是军用密电,他甚至可以借此成立一个军用的统计局。
除非日本人都想自杀,否则他们是不会使用这些一触即溃的加密方法的。在史岱繁到来的时候,小黑屋已经确认了一件事:日本人正在使用各种电气设备来做信息加密。这正是“戴先生”在重庆搞了这个秘密小黑屋研究所的原因,那就是引入数学来破解密码。
如果把“菜场密码”(菜得要命,梁华说)看作一个“因变量=函数值(自变量)”方程,它的函数值过于简单,以至于需要循环使用自己,而循环就意味着规律。电气化加密则不同。它通过机器运转,把函数值的部分变成一个随机数生成器,把自变量变成一堆随机数。再也没法统计频次,一切变得毫无规律:那些频次分析法努力追寻的“规律”全部打散了,就好像一片脉络清晰、历历可寻的叶子被抹去叶脉,变成了一张光滑的白纸。
本质上讲,创造绝对的随机性,就等于在创造无限。
史岱繁在德国的时候就做过一个随机数表。他造了一个用脚蹬的摇号机,用它生成了一串随机数字(03 47 43 73 86 36 96 47 36 61 46……),用来从一堆鸡里取样出几只随机的鸡,因为做实验的取样的原则是:人类可以胡乱想出一个数字,但这并不代表它就是随机数。随机数表只是用来保证取样不会受到主观情绪的影响,是绝对公平的,因此这张表也被用来从课堂上选出随机的倒霉蛋来回答问题。
日军或者日本间谍一定也有这么一张表,只不过要比史岱繁选鸡的表复杂。每天,发报方和收报方从这张表里撷取一行随机数,当作一粒“种子”输入发报机,这个种子就是每次运行随机数计算的初始状态,发报机内部的那些齿轮啊、转子啊、继电器什么的,接到了这枚种子,就会在它的基础上疯狂运转,把原文加密另一堆字母。这枚种子,也就是收报方唯一的一把钥匙,只有拥有这把钥匙,才能把这堆随机数还原成原文。它被译电小组称为密钥,其物理承载形式就是梁华所说的“密码本”。
为了避免产生循环,密码本里的每一行都只能用一次,每次要发送新的信息,就得重新加密一次。史岱繁称之为“口香糖加密法”。面对这种情形,他想到两种解决方式。社会派的方式是找到他们的密码本接头人员,把密码本偷过来——按照惯例,这种密码本会定期更换,而且必须是双方亲自交换。他想了想这种方法,决定把这个可能性推给真正的特工人员。
第二种是本格派:依旧从数字中寻找隐藏的规律,哪怕是蛛丝马迹也好。他觉得日本人的摇号机同样没办法生成那种绝对意义上的随机性。也就是说,频次分布仍然可以使用!史岱繁从概率论的“统计检验”这门学问里,能找出十几种检验方式来给这些数字挑出破绽。最好,是可以推算出这个随机数表是用什么物体生成的……
他把这些简单的思路告诉了梁华,让他做做准备,把因变量——也就是密电——的频次统计一下。
梁华倍受鼓舞。闲聊之际,这个小伙子曾经说起过戴先生对他们的管理命令,比如这帮年轻人大部分不允许结婚。
第二天,梁华抱过来一堆纸。他又多了句嘴:“太麻烦了。还好您本来就在国内。”
史岱繁点点头。他现在终于意识到,自己并不是因为天才,而只是因为滞留在中国境内,才被拉来干这种活的。即便是当即从美国找数学专家,也只能以偷渡的形式从香港海关进入大陆。那样只不过是太麻烦了。
所以我现在已经算是一个特工了?而且是最惨的那种?
他弄了一点苦楝果的胶,用鞋刷把这些纸张一张张糊在墙上。
“Paste 用中文怎么说?”史岱繁望着满墙数字。
“浆糊啊。一团浆糊。”梁华回答。
在史岱繁听来,这个词的发音是“Chiang -hu” 。史岱繁以有限的中文底子推断,梁华说出的这两个中国字,意思是“River and Lake ”,一个用来指代中国社会的专有名词。费尔班曾经指着自己的肋骨,跟史岱繁说那里有十几道刀疤。那就是在租界街头巡逻的时候,由五个“River and Lake”上的“朋友”赐给他的。史岱繁把那些黏糊的胶质涂在墙上,一张张把密电文贴上去——这么看来,这个词很可能比喻着“被粘稠的时代裹挟的众人”。