密码学的发展(第二篇:恩尼格码机)
1、恩尼格玛机
恩尼格码机亦称英格玛机、密码机器或解码器型机器 ,它在二战期间发挥了重要作用。其核心原理仍属于第二代密码学方法----置换与移位机制 。由于能够采用无限多种配置组合,在对抗频率分析攻击方面具有显著优势
恩尼格玛机是一种兼具机械与电子特征的加密装置,主要由齿轮组、电线网络以及指示灯等组件构成。实际上,在此前已有采用机械装置进行反锁加密的技术,但这些设备均因未能实现工业化生产而未能广泛推广应用。相比之下,在此之后出现的第一个大规模投入生产的加密设备就是恩尼格玛机。
恩尼格玛机由德国人发明,主要包含了3部分,3部分之间由齿轮和电线相连:
- 第一部分:处理原始文本的键盘
- 第二部分:编码器将原始文本转换为密文
- 第三部分:负责展示密文
操作员只需做好设定,在键盘上输入原文;接着由编码器按照特定规则将密文显示板上的字母进行显示;随后由抄写员详细地记录下所有显示的字母顺序;最终完成整个加密过程。
其中最为关键的是这个编码器装置,在其内部架构中包含了若干可调节组件。每个组件的位置变动都会对加密效果产生直接影响。该装置的核心模块是一个齿轮式字母盘装置,在其表面布满了导线网络系统。这个齿轮装置连接着两个关键部件:键盘以及密文显示板。当操作者在键盘上输入一个特定字符时,在导线网络的作用下会触发齿轮上的特定触点动作;随后这些触点信号会被传递至密文显示板上进行处理最终完成信息加密过程。
每按下一个键时(没有按的话),齿轮就会向下转一圈,并且这一步骤改变了线路连接的状态。因此同一个字母在第二次、第三次被输入时(没有再次输入的话),输出到密文显示板的结果也会不同。总的来说(无论是否继续下去),齿轮转动多少圈就意味着有多少套不同的加密方法等待使用。
最初的单圈齿轮仅包含6个凹槽,并因此采用了仅6套加密方案。随后逐步发展为拥有26个凹槽的齿轮设计,在这一过程中单套齿轮的数量并未进一步提升。相反地,则是在第一圈完成后才开始启用第二套独立的齿轮组进行运转工作。也就是说,在完成第一圈运转后才允许第二圈进行移动操作。这样一来就形成了一个更为复杂的加密机制系统:即每个位置都可能有多种不同的组合方式可供选择。而下图则展示了由3组不同规格的轮轴所组成的恩尼格玛密码机的工作原理

每个齿轮顶部中央都有一个小开口,在操作过程中双方共同使用一个特定的信号标志例如yes来进行沟通当系统启动时会将这三个开口依次设置为对应的三个标识符随后按照这一序列进行编码与解码操作使得参与方能够顺利进行信息传递
在通讯过程中,在发送端按照约定好的密钥进行初始参数设置之后,在输入原始明文信息时会生成对应的加密文本;接收方接收到加密信号后配置接收设备使用相同的密钥参数,并对加密文本进行解密处理后恢复原始明文信息
在上述介绍中,我们能够了解到 恩尼格玛机实际上是维吉尼亚加密法的一种改进版 ,其主要优势在于它的钥匙看似能够任意设置。
但是这种方法可以通过暴力破解的方式被解决。举例来说,在使用三组齿轮配置的一台加密设备时,默认情况下共有三个齿轮的配置方式,则初始密钥共有26 \times 26 \times 26 = 17,\!576种可能性。如果购买一百台这样的设备,并将任务平均分配给每台设备去尝试其中的175种可能性,则有可能在几个小时内完成所有计算并找到解密的关键。
设计者早已预见了暴力破解的风险,并因此在键盘与编码器之间新增了一个称为接线板的组件来调节字母电路连接关系。例如,在键盘上按下a键时,则对应的电流信号会通过b线路传输至编码器中去解读。通过任意更换26个字母中的6对进行交换组合后总数就达到了数十百亿种不同的可能性,并显著提升了密码学的安全性如图所示。

在二战期间,德国人在发送每一条信息时都各自使用一把钥匙。然而这种方法需要一本厚重的密码本。于是德国人想出了一种巧妙的方法:每月都会发行一本新的密码本,记录了每天接线板的状态以及初始值的设置。但这个初始值并不是直接用于加密原始信息,而是对钥匙本身进行加密,并将其写在用实际钥匙加密后的密文前面。具体操作分为以下几个步骤:
1、假设齿轮初始状态设定为QCW模式,并且钥匙设置为ABC序列,在该状态下运行机器完成对ABC数据的加密操作后得到BMW结果;接着再次输入相同的钥匙序列ABC,在新状态下完成加密操作得到NBA结果;最后将两次加密结果BM WNBA组合形成新的数据串。
2、在完成上述操作后将生成的数据串依次作为新的密文源文件;随后将BM WNBA字符串附加在该密文文件前部作为初始标识;
3、在解密过程中将机器初始状态重新设置为QCW模式,并对该文件进行逐字符解密分析;首先对密文开头连续六个字母进行解密分析发现对应内容与预设字符串一致;接着在此基础上继续完成剩余数据位的解密工作。
加密钥匙两次的主要原因是什么呢?是为了确保信号传输过程中不会受到干扰,并且防止对方操作上的失误吗?因为无论是哪种情况——如果出现干扰或操作错误——解码后的信息前六位都不会呈现两次重复的状态,因此这样的消息会被丢弃。
2、恩尼格码机的破解
很多的人都了解,在二战期间 图灵 成功破译了恩尼格码机。然而这一观点存在偏差。实际上,在全球科学家及军事人员共同努力下才成功破译了恩尼格码机;而图灵则承担了最终的关键步骤。
破解的过程可以分为5个关键性突破,分别是:
1、波兰密码学家与法国间谍共同揭示了该设备的内部结构
2、波兰政府传递了破译成果给英国及法国
3、英国海军成功获得了德国的一艘舰艇,并从其上获取了一台真实的恩尼格码机以及一本钥匙薄
4、德军士兵在操作恩尼格码机时往往违反常规
5、盟军利用诱骗战术迫使德军故意发送特定词语
二战结束后
后来波兰邀请了一些数学家对他们收集到的每日信息进行了系统整理与深入分析,在持续近一年的时间里不断总结经验并探索其中存在的规律性问题。他们将这些规律及其对应的初始数值整理成了一本手册从而成功破译了恩尼格玛密码机类似于现代大数据技术通过海量数据挖掘找出共性建立模型进而解决问题
在二战爆发前一年期间
英国起初利用机器和人力,在深入研究德军编码方式后成功破译了密码。例如:按照标准程序应为随机生成初始值的设置,在德军实际操作中却未能做到这一点。具体来说,在键盘布局上相邻的字母如QWE、ASD、IOP等经常出现。即使这些字母并非连续出现,在手指活动规律性的影响下它们在键盘上的位置往往倾向于集中区域因而解码时优先尝试这些组合。此外还有人尝试使用女朋友名字的前三个字母作为密码进行试验
另外操作指南同样存在缺陷,在具体实施中需要注意以下几点:例如,在设置齿轮参数时存在一定的限制条件,在同一时间段内同一齿轮不应在同一位置连续运行两次;听起来好像避免了重复操作的情况出现却并非如此,并非完全避免了重复;实际上减少了齿轮组合的可能性约一半;此外,在接线板上进行参数交换时需要特别注意其操作规范性,在具体实施中应当避免将相邻的位置进行交换操作;例如B参数不应与A参数交叉配置同样也不应与C参数交叉配置
但这种方法显然无法满足要求。一旦德国方面察觉到这一点, 就会发现信息头六位存在可被解读者的利用漏洞, 这将影响密码传递机制. 因此, 英国就失去了利用这些信息进行后续工作的基础. 所以, 图灵必须探索一种全新的解码路径, 以彻底破解这一密码系统.
图灵通过分析德军利用"无特殊情况"等规律设置的破绽成功解码 。例如,在德军电报中常用"无特殊情况"、"希特勒万岁"等关键词出现;此外,在每天早晨六点至六点半的时间里,《天气》这个词几乎必会出现;而且在清晨六点半至七点之间还会经常出现特定位置的数据信息;英军会在某些关键地点布置水雷作为信息诱饵;当德国军队探测到这些水雷时他们也会相应地向这边发出了加密电报:在东经XXXX度北纬XXXX度附近发现了大量水雷;这样一来就可以确定很多相关的信息了;图灵就是通过对手头可获得的有限原文样本与密文数据间关系的研究成功地将可能的数量减少了约一百万种 ;接着他使用了一台名为"炸弹机"的机器对所有可能的情况进行了暴力破解;到了1942年的时候这种方法已经足够快能够在不到一小时内破译德国陆军 daily恩尼格玛机密。
3、总结
密码学由于涉及国家安全的缘故,在奖励上未能给予公平对待 (如同我国核物理家一般),然而他们在国家中所作出的贡献是显而易见的。
到此我们认识到"如何加密"这一问题不再那么关键**。在隐藏法时代中对加密的技术被视为核心机密。相比之下** 这些替代法与移位法虽然其基本原理人所共知 但尚不清楚它们的具体移动幅度是多少。然而到了机械电子时代 在理论上及技术细节层面双方都已经完全了解这些内容 **因此密码的安全性最终取决于钥匙的设计而非整个 encrypting process本身。
感谢大家,我是假装很努力的YoungYangD(小羊 )。
参考资料:
《卓克的密码学课》
