凯撒密码(Caesar cipher):凯撒于公元前100年左右诞生于古罗马,是一位著名的军事统帅。凯撒密码是通过将明文中所使用的字母表按照一定的字数“平移”来进行加密的。
为了讲解方便,我们用小写字母(a,b,c,...)来表示明文,用大写字母(A,B,C,...)来表示密文。
凯撒密码中,将字母表中的字母平移这个操作就是密码的算法,而平移的字母数量相当于秘钥。在上面的例子中,秘钥为3。
暴力破解(brute-force attack):将所有可能的秘钥全部尝试一遍,这种方法称为暴力破解。又称为穷举搜索(exhaustive search)。
简单替换密码(simple substitution cipher):将明文中所使用的字母表替换为另一套字母表的密码称为简单替换密码。凯撒密码也可以说是简单替换密码的一种。
秘钥空间(keyspace):一种密码能够使用的“所有秘钥的集合”称为秘钥空间。简单替换密码很难通过暴力破解来破译。
频率分析:频率分析利用了明文中的字母的出现频率与密文中的字母的出现频率一致这一特性。使用频率分析的密码破译方法,能够破译简单替换密码。
Enigma
Enigma是一种能够进行加密和解密操作的机器,后来到了纳粹时期,德国国防军采用了Enigma。
发送者和接收者会事先收到一份叫做国防军密码本的册子,发送者和接收者需要分别按照册子的指示来设置Enigma。
接线板(plugboard)上的接线方式是根据国防军密码本的每日密码来决定的。
输入一个字母时,转子(rotor)1就旋转1/4圈(当字母表只有4个字母时)。转子1每旋转1圈,转子2就旋转1/4圈,而转子2每旋转1圈,转子3就旋转1/4圈。在对Enigma进行设置时可以选择转子的顺序以及它们的初始位置。
Enigma的加密
(1)设置Enigma
按照国防密码本的每日密码在接线板上接线,并将3个转子进行排列
(2)加密通信密码
通信密码:发送者想出3个字母,在Enigma的键盘上输入两次。
(3)重新设置Enigma
根据通信密码重新设置Enigma转子的初始位置。
(4)加密消息
发送者将消息(明文)逐字从键盘输入,然后从灯泡中读取所对应的字母并记录下来。
(5)拼接
发送者将“加密后的通信密码”与“加密后的消息”进行拼接,通过无线电发送出去。
秘钥加密秘钥(Key Encrypting Key,KEK):每日密码这种不加密消息,而用来加密秘钥的秘钥。
Enigma的弱点
将通信密码连续输入两次并加密
通信密码是人为选定的
必须派发国防军密码本
Enigma的破译
《密码的故事:人类智力的另类较量》(The Code Book:The Science of Secrecy from Ancient Egypt to Quantum Cryptography)
《艾伦·图灵传:如谜的解谜者》(Alan Turing:The Enigma)
2020-05-12
原文:https://www.cnblogs.com/lemo123/p/12885388.html