第二次世界大战时,德军使用的“恩尼格玛”(Enigma,希腊语“谜”)密码机是一种近似“一次一密”的加密机械。由于“一次一密“加密法需要对每一条信息使用随机的与明文等长度的密钥进行加密以保证安全性,因此就需要事先编纂一本密码本。而到了近代以后,战争期间情报部门每天需要处理海量的消息,使用这种密码本,不仅不容易查阅密钥,被敌人截获的可能性也高出不少。
1918年,德国发明家亚瑟・雪毕伍斯(Arthur Scherbius)发明了一种使用转子密码盘和机械结构的密码机,并分为商用和军用的版本。恩尼格玛使用键盘输入明文字母,输入信号经过三个编码器经过一系列别换,最终会点亮另一个键盘相应密文字母上的灯泡。最先接收输入信号的编码器每输入一个字母,就会转动一次,当它转动完一周,下一个编码器就会转动一次,以此类推,三个安装好的编码器一共有26×26×26种不同的状态,每一种状态对应一个密码表,在开始加密时,可以选择任意一种状态作为初始状态,用来加密明文的“密钥单词”也随着改变。除此之外,编码器位置可以互换,输入键盘和第一个编码器之间还有一个称为接线板的装置,可以互换六对字母的输入信号,有大约一千亿种不同的互换方式。恩尼格玛是历史上最为可靠的机械式密码机之一,但在英国传奇数学家阿兰・图灵(Alan Turing)和布莱切利公园(Bletchley Park)的盟军密码工作者的努力下,德国军队使用的部分型号恩尼格玛密码机未能免遭被破解的命运,德军也为过于信任恩尼格玛的安全性付出了惨重的代价,恩尼格玛,是古典密码学最后的辉煌。未能免遭被破解的命运,德军也为过于信任恩尼格玛的安全性付出了惨重的代价,恩尼格玛,是古典密码学最后的辉煌。
5
攻克“恩尼格玛”
阿兰・图灵,今天人们以他的名字命名计算机科学领域的最高荣誉奖项。图灵建立了计算机器的通用模型“图灵机”,提出了“算法”(Algorithms)的概念,还是第一个利用计算机器破解加密算法的人。
恩尼格玛密码机能够由操作员设置的部分包括三个编码器的位置(6种可能)、编码器的起始位置(17576种可能)、接线板互换的字母设置(1000亿种可能),密钥空间超过10^16。德军情报部门会事先编制一本密码本,每天更换一次密钥。由于恩尼格玛曾有商用的版本,盟军对它的构造原理与加密方式有一定的了解,加上盟军缴获的几台密码机,恩尼格玛的加密算法可谓无处可遁,但不知道密钥的话,破译德军的加密情报仍然无从谈起。
密码分析学中,破译方尝试破解加密系统的行为称为攻击。根据柯克霍夫原则,假设加密系统除了密钥之外的一切都是公开信息,攻击实际上就是猜测密钥的行为。根据攻击者掌握的有关加密系统的信息量的多少,有以下攻击类型:
惟密文攻击(ciphertext>恩尼格玛的插线板最多可以对换六对字母的信号,一个对换过程可以表示为 三个编码器从左到右记为 , , ,相对初始状态的位置记为 , , ,则插线板与编码器对原始信号的共同作用可表示为 到这里为止,恩尼格玛的设计都还中规中矩。发报员在键盘上按下按键,字母会被转化为数字信号,经过处理后变成密文在密文键盘相应的位置点亮灯泡。那如果要解密怎么办呢?密码灯只能展示密文字母,而不能用做输入。收到加密信息的一方需要与加密使用相同的键盘输入密文解密,也就是要设计一种能够同时进行加密和解密的电路,对任意明文字母 以及对应的密文 = ( )满足: 此文由
比特币官网 编辑,未经允许不得转载!:首页 > 比特币行情 » 密码学初探:信息的艺术――区块链技术引卷之十一