恩尼格玛机:密码战进入机械电子时代Enigma: crypto warfare enters the age of mec
前三代密码加密法——隐藏法、替代法和维吉尼亚加密法。著名的第四代加密法——恩尼格玛密码机(Enigma)。
这个名字翻译版本挺多的,不论是叫英格玛机,或者是哑谜机器,还是奇谜机,指的都是图灵在二战后期破译的那种机器。就统一叫它“恩尼格玛机”。
它使用的加密方式,本质上还是第二代加密法——替代和移位,但因为可以切换无穷多种加密配套组合,所以在对抗频率分析法上极其有效。
恩尼格玛机是一种机械电子式的加密机,由一堆齿轮、电线、灯泡、转盘、摇杆组成。其实使用机器做繁琐的加密工作在之前也有过,只是因为它们都没有量产,所以也没有流行。而恩尼格玛机,是第一个大规模量产的加密机。
也正是从它开始,密码学不再依赖纸和笔的运算,使用机械和电子加密的时代正式到来,所以它是第四代加密法。
第一台恩尼格玛机,是一战刚刚结束的时候由德国发明家雪毕伍斯(Arthur Scherbius)和里特(Richard Ritter)制造出的。
这台机器分3部分,3部分之间由齿轮和电线相连:
第一部分,是敲原文用的键盘;
第二部分,是把原文加工成密文的编码器;
第三部分,是密文的显示板。
操作员只要做好设定,在键盘上敲入原文,经过编码器编码,密文显示板会按规则点亮密文字母,抄写员把点亮的字母的顺序记录下来,加密过程就完成了。
这其中重点就是编码器,编码器的工作原理有点复杂,详细说说:
编码器由一堆可以手工设置的机械部件组成,任何地方的调整都会改变加密的结果。
其中最大的部件是齿轮式的字母盘,它前后通过导线与敲原文用的键盘,以及密文显示板相连。键盘那边敲一个字母,信号通过导线传给齿轮上的触点,再通过导线传到密文显示板上,原文就这样被加密成另一个字母了。
看起来好像没什么,但恩尼格玛机的真正高明之处在于 ——每敲一个字母,齿轮会往下转一格,齿轮的转动导致线路连接的变化,而连接线一变,又直接导致加密结果的不同。
所以同一个字母敲入第二次、第三次,输出到密文显示板的结果也都不一样。总之,齿轮能转多少格,就意味着有几套加密法等着轮替。
更高明的是,恩尼格玛机的加密可能性,理论上是无限多的。最早齿轮一圈只有6格,也就是只有6套加密法。后来感觉这不够用,齿轮就增加到了26个格。
再后来,单套齿轮格数不再增加,而是增加了第2套齿轮,上面也有26个格。只有在第1套齿轮转完一圈后,第2套齿轮才前进一格。这样一来,有两套齿轮的恩尼格玛密码机,相当于拥有26×26,也就是676套密码。如果还觉得不稳妥,可以继续增加齿轮的套数。
恩尼格玛机,拥有三组齿轮的编码器
一张早期的恩尼格玛机的照片,可以看出它有3套齿轮。后来这个规模的恩尼格玛机,主要用于商业领域。
它如果每个齿轮都有26格,那么使用的加密法有26^8套,也就是2000多亿套,这是一个非常大的量。当然,机器也很贵,最终只有德国海军配备了。
机械加电子的方式让加密解密错误大大降低,效率也高了很多。但关键是设计规范,可以量产。
好,现在从密码学细节上想想,恩尼格玛机属于哪一类加密呢?
没错,其实还是类似于维吉尼亚加密法。
它和维吉尼亚加密法1.0、2.0、3.0的最大区别就是钥匙,而维吉尼亚加密法各种版本之间的区别,也在于钥匙的设定上。
回忆一下前面讲过的内容:
1.0版,钥匙是随便想出来的一个词,然后重复的用;
2.0版,钥匙长度增加了很多,但为了便于双方协同使用,往往是一篇文章、一首诗;
3.0版,钥匙是纯粹随机字母,而真随机很难制造,密码簿又厚到不能用
所以3.0版只停留在理论上,实际几乎没人使用。
现在的恩尼格玛机,也仍然是在钥匙簿上做改进。
一方面,它比互相约定一首诗、一篇文章要没有规律得多得多;另一方面,这种钥匙肉眼看上去好像随机,但又不是真的随机。它依赖于齿轮和电缆的机械和电结构,其实有内在规律的。
而从密文中找出这种规律,就是破解恩尼格玛机的核心任务。
恩尼格玛机的方便之处在于,几组齿轮的初始值是可以随意设置的。
比如说都封装好了以后,每组齿轮在正上方都留一个小窗口,三组齿轮各自露出一个小窗口,收发双方约定好,这3个窗口在初始时各显示哪3个字母,然后他们按这个顺序编码信息、解码信息,互相之间就可以通信了。
为了更安全,可以每天更换一次3组齿轮的初始设定,一个月里需要约定的初始设定也只有90个字母而已,非常方便。
那问题来了,这种恩尼格玛机能不能用在战争中呢?
我们就说过战时加密的原则,要假设敌方已经拥有了和自己一样的解密水平。以这样的标准来看,恩尼格玛机是很可靠的。
因为即便敌方有了一模一样的恩尼格玛机,但只要不知道我们事先约定的钥匙,也就是机器的初始设定是什么,有机器也白搭。
那这样的机器是完全没有方法破解吗?
直接告诉你答案——不是的。
原因还是反复说过的,恩尼格玛机通过齿轮生成的钥匙,只是看上去很随机,它内在还是有规律可循的。这个规律就是它会按次序转动,第一个齿轮转一圈后,第二个齿轮动一个格,第二个齿轮转一圈后,第三个齿轮动一格。光光就这个规律,就能给人提供破解机会了。我说的机会,就是用穷举法去暴力破解。
既然三个轮子,每个提供26个字符,那钥匙的初始值可以出现的最大组合就是26×26×26,也就是17576种。我就买回来100台机器,每个人都发一份同样的密文,挨个试,每台机器负责尝试其中的175种,说不准几个小时就能把初始值碰对了。
设计者早就考虑到暴力破解的问题了,所以他们在键盘和编码器之间又增加了一个叫“接线板”的结构,可以调换6对字母的线路。
比如你在键盘上按的是a,但电流信号却是沿着b的线路输出到编码器上的。通过调换26个字母中随意的6对,组合一下就增多到了1000多亿种,所以恩尼格玛机是可以扛住暴力破解的。
实在不行,还可以添加更多组齿轮,就像德国海军那样,甚至用到了8组,这让军用恩尼格玛机的安全性更有保障。
上面讲的是原理,下面来说说这第一代恩尼格玛机的命运。
可能跟你想的非常不一样,它第一代非常不顺利。
雪毕伍斯对产品做了一个高低端的区分。高端型号的售价折算到今天,相当于人民币18万元一台,重量大约100斤。最初推广给商业公司,宣传的理由是商业机密泄露会是巨大的损失。可是老板普遍却认为,买这台昂贵又不实用的机器造成的损失更大。
雪毕伍斯也试过找德国外交部门和军方,但前面讲过了,1918年的德国还没认识到自己的密码学远远落后于西欧大部分国家,所以也完全不用。
雪毕伍斯并不是那个时代唯一做出这项发明的人,当时荷兰人、瑞典人、美国人都注册过类似的专利,但没有人卖得出去。
有的人破产,有的人因欠款坐了牢。只有雪毕伍斯坚持到了最后。这倒不是因为他的机器有多好,而是因为他的家底厚。他原来的工厂什么都生产,恩尼格玛机卖不出去,那就卖涡轮机,卖卖枕头,这些都可以赚钱,所以就靠这些东西强撑着。
到了1923年,英国报纸刊登的两则消息,突然唤醒了德国情报部门。其中一条还是英国首相丘吉尔写的,他讲了1914年英国和俄国是怎么搞定德军密码的传奇故事,另一条是英国军方解密的关于一战的历史数据,尤其夸耀了自己在密码学上的优势。
结果德军看了之后感觉像被打了脸,同时也吓得不轻。从前他们以为自己在密码学领域,和欧洲其他国家水平同齐。现在突然发现,第一次世界大战那几年,自己的军事机密一直在被泄露,现状太可怕了。
经过仔细评估,德军找来几年前向他们推销过恩尼格玛机的雪毕伍斯,开始大量订货。不但如此,后来德国的国企也开始大量订购。
直到二战结束,雪毕伍斯一共卖掉10万多台恩尼格玛机。这些机器在后来20多年里一直保障着德国的通讯安全,但没想到就差最后一哆嗦。后来德国在二战中的败局,也正是因为对恩尼格玛机太过于依赖。这些后面会详细讲到。
二战中的恩尼格玛机影响到底如何?
其实雪毕伍斯自己根本不知道。因为他在机器刚刚大卖第5年的时候,就因为一次马车失控,撞墙身亡。
回顾一下恩尼格玛机的加密过程。
正是恩尼格玛机的诞生,使密码学彻底进入了机械电子时代。
这个时代的加密,在原理上甚至还不如维吉尼亚加密法3.0坚固,但它在加密成本和加密坚固程度上达成了平衡。虽然在理论上依然是可以破解的,但这个弱点通过机械电子化弥补上了,弥补的方法就是无限增加破解的工作量。
也就是说,在1918年后,任何一个人通过肉身,通过纸和笔的运算,都无法和那时候的加密法抗衡了。哪怕那种加密法是可破解的,也没办法。谁想破解,也只能借助机械电子化的设备才可以。