History of cryptography
凯撒密码(Caesar cipher)
1.凯撒密码的加密:通过将明文中所使用的字母表按照一定的字数“平移”来进行加密。
用凯撒密码进行加密,密钥为3
凯撒密码可以用暴力破解(brute-force attack)来破译密码,即把密钥为0到密钥为25的26种情况都尝试一遍。
简单替换密码
简单替换密码(simple substitution cipher):将明文中所使用的字母替换为另一套字母表的密码。凯撒密码也可以说是简单替换密码的一种。
简单替换密码的密钥空间:明文字母表中的a可以对应A,B,C···Z这26个字母中的任意一个,b可以对应除了a所对应的字母以外的剩余25个中任意一个,所以密钥总数为26x25x...1 相当于4兆的1000兆倍,通过暴力破解找到正确的密钥平均要花费约60亿年的时间。
简单替换密码可以通过频率分析来破译,它是利用明文中的字母出现的频率与密文中的字母出现的频率一致这一特性来破译的。
Enigma
Enigma的加密: 加密一个德语单词nacht(夜晚)。在进行通信之前,发送者和接收者双方都需要持有国防军密码本,里面记载了发送者和接收者需要使用的每日密码。
Enigma的解密:
Enigma的弱点
- 将通信密码连续输入两次并加密
- 通信密码是人为选定
- 必须派发国防军密码本