蒋介石有“二局”吗?
之前写了长篇系列《红军长征密电战》,系统讲述了中央红军的军委二局以及红二、四方面军破译国民党军密电的历史。网页链接
有朋友就问了,那蒋介石有“二局”吗?他们有没有想尽办法去破译红军的密码?
有的。
蒋介石破译红军密码的机构是委员长机要室电务股,负责人叫黄季弼。
说到黄季弼,看过电视剧《破密》的朋友肯定立马会想起剧中那个由余皑磊饰演的国民党密码专家,留洋归来的数学博士、教授,满头灰发,常年伏案演算,口中念念有词,是个典型的高智商、低情商的技术天才。
电视剧里的黄季弼肩负着为国民党电报加密、破译红军密码的双重重任,却屡次败在他的学生、红军二局局长蔡威手下——他苦心设计的密码被逐一击破,而对方的密码他又始终无解。最终在想尽一切办法,依然对红军密码破译无果的巨大压力下精神崩溃,跳楼自尽。
实际上,现实中的黄季弼并不是蔡威的老师。军委二局的“破译三杰”曾希圣、曹祥仁、邹毕兆,红二方面军的“密码脑袋”王永浚,红四方面军的蔡威、宋侃夫、王子纲等等许多破译能手,都是自学成才,自己钻研出破译密码的诀窍。
而且,现实中的黄季弼并没有那么高明,他只是担负破解密码的任务,国民党使用的密码,蒋介石是请了德国专家来编制的。
黄季弼破译红军密码也远没有电视剧里那么坚持不懈,不成功便成仁。1933年,蒋介石下令他限期破解红军密码。他带着几十个手下苦心研究了两个多月,就给老蒋回话说,红军的密码无人能破,别费那劲了。
黄季弼于1933年8月24日给蒋介石回复的电文如下: “职股对于赤匪电报迭经逐日分类悉心研究,时经两月,毫无头绪,实属无从着手。察其情形,匪方对于电报之打法译法与及密本之编制法,均属精细周密,甚有心得。细查所得赤匪各报,其内容自首至尾均用密码,似系以号码数目替代密本之名称,其译电法似系引用复译法编成表式,百数十张随时按表将密本之大小码变换。其表式则系由0000号至9999号,一万号之中任便抽用,随时变更,发电人及收电人彼此均有此表对照,故密本究竟共有若干种,每种用若干时日,及何时更换,均无从分析。七月三十日发现电报一张,计九百余字,征诸以往之经验,如用书肆所售之密本简单编成密码者,若有七八百字则对于此本密码即不能窥其全豹,亦可得其半数,即抄过之密本若有一千个字左右,尚可视其抄法之程度如何得其若干之意思。乃此九百余字之电报竟苦心研究时逾旬日,而结果毫无所得。且截至本日止,再未尝发现该类电报。
由以上各点观之,赤匪内部对于电报甚为注意,而且甚有研究也。职与全体人员再三讨论,咸认为无法办理此事。”
这份电报写的有点乱,我来解读一下:
首先,黄季弼发现红军的密码本不是当时那种简单编成的密码本。所谓简单的密码本,就是在明码本基础上改造成的密码本,叫“普通本”;为了进一步保密,蒋介石叫德国专家脱离明码本编制的密码,叫“特别本”。不论“普通本”还是“特别本”,都有一个致命的问题,就是每个汉字只有一个编码,就是“一字一码”。这个字的编码在电文中多次出现,就给猜译带来了可能。比如上面黄季弼的电文中,“匪”字反复出现,而“匪”字在国民党军的电文中也是最常出现的,你就可以猜它是个“匪”字,然后“匪”字前面最常用的是“赤匪”,这样就猜出了第二个字,如此等等。
然而红军使用的密码既不是“普通本”,也不是“特别本”,而是完全不同的一种特殊密本。黄季弼想不到的是,红军的密码其实就是用一本书作为密码底本。因为一本书上同一个汉字会出现很多次,用不同处这个字的页、行、位数作为编码,就可以做到“一字多码”。当一份电文中这个字多次出现时,就可以使用它的不同编码,做到“同字不同码”,通篇电文没有相同的编码,从何猜起?
不仅如此,黄季弼还发现,红军在他们特殊的密码本之上,还用密表做了进一步的加密。这个密表,是用0000-9999组成的一万个四位数,随机打乱次序编成。密表有100页,每页有100个四位数。每个四位数在密表上都有唯一的页号、行数和列数,就是这个四位数的编码。每次使用一个四位数做为密钥,比如“2135”,将密码底本上文字的编码与此数相加。例如,“军”字在密码底本中的编码是“1897”,加上“2135”,等于“4032”,发出的电文就是“4032”。同时,在电报的约定位置给出此次使用的四位数在密表中的编码。对方收到电报后,通过约定位置上的编码,在密表上找到这个四位数,再将电文中所有编码减去这个四位数,还原成初始编码,从密码底本中读取出相应的文字。
这样做的结果是什么呢?就是每次用一个四位数作为密钥,可以做到一万次都不重复,等于每次发报都用一个新的密钥,就是一种简便的“一次一密”!
综合起来说,就是使用书籍作为密码底本,做到“同字不同码”,一份长电报没有相同的编码,所以黄季弼说:收到“九百余字之电报竟苦心研究时逾旬日,而结果毫无所得”,根本无法猜译;用密表二次加密,每次使用不同的四位数做密钥,“一次一密”,做到“同码不同字”——这份电报与上一份电报中相同的编码是不同的字,没有一份相同的电报。所以黄季弼说“且截至本日止,再未尝发现同类电报”。
这可真的就是非常厉害了!
要知道,后来二战中最牛逼的德军潜艇恩尼格玛密码机都做不到“一次一密”,他们是每天更换一次密钥,图灵就设计出计算机来跟德军的更换密钥抢时间。这个图灵计算机最快可以在10-15分钟找出当天德军的新密钥,但它的前提是必须先猜出一段密文,通常是德军潜艇每日6时必发的天气报告,这种天气报告行文很有规律,用当时的气象实况即可猜译。猜译出的电文就是“明文”,之前的电文就是“密文”。然后,图灵计算机模拟多台恩尼格玛机同时运转,自动测试所有可能的密钥设置。只要某个设置能把这份天气报告的明文正确加密成对应的密文,这台机器就会停下来,向操作员报告:“这个设置可能就是今天的密钥!”
这说明什么?说明到二战时,世界上最牛逼的德军恩尼格玛密码体系都是可能被猜译的,并且不是“一次一密”。而咱们周总理在30年代初为红军编制的“豪密”根本不给你任何猜译的可能,而且已经做到了“一次一密”。在当时,红军的这种密码体系是根本无法破译的。别说蒋介石的黄季弼那些人,就算图灵用他的计算机也无法攻破,因为就算它破解出这次电文中使用的密钥,也没用了,下一份电报使用的是另一个不同的密钥。
周总理的“豪密”,最早可能就是一本书籍。来到中央苏区后,周总理又多次向“破译三杰”征求意见,曾希圣、曹祥仁和邹毕兆根据破译敌军密码的经验,提出了许多改进建议,这时“豪密”在以书籍作为密码底本的基础上,增加了用每次一换的密钥做二次加密,成为一种当时世界上最为先进并且简便好用的“一次一密”的密码体系。
周总理秘书童小鹏说:我们的密码不重复;邹毕兆说:红军的密码是当时最先进、最安全的密码;陈琮英(任弼时夫人,长期担任任弼时的机要译电员)说:因为周恩来的聪明才智,他编的密码,好记好用,却根本无法破译……时间过去了七十多年,至今仍不落伍。
看了这篇文章,你就知道,他们不是吹牛,而是真的牛!
补充说明:
本文所说的“一次一密”是指每次发报就更换一个短密钥。
密码学上严格意义的“一次一密”(One-Time Pad)是指每次更换一个长密钥。就是密钥的长度必须超过密文的长度,而且密钥必须是由完全随机的数字段落(乱码)所组成。
1946年,美国数学家、信息论之父克劳德·香农用数学推导证明,这样的“一次一密”是不可破译的:“即使攻击者拥有无限的计算能力,也无法从中获得任何关于原文的有用信息。”
这种“一次一密”是由美国人在1920年代提出,但很长时间都没能在军事上大规模普遍应用。因为可想而知,这种长密钥的“一次一密”,需要不断制造出大量的、绝不重复的长密钥,在没有计算机的那个年代,就不可能在军事上大规模地普遍使用,事实上也没有哪个国家的军队普遍使用过这种加密体系。
只有周总理和红军,将其简化成为短密钥的“一次一密”,在军事上大规模地普遍使用,极为智慧地解决了那个时代令全世界军界都头疼的通信保密问题。
今天大家都说:欧美擅长从0-1,中国擅长从1-N。
看了这篇文章你就知道,其实这是我们红色基因的传承。
电视剧破密
