凯撒密码(Caesar Cipher)
Alice和Bob通信,Alice和Bob共享一个移位数字,所有的明文都移动相同的位置。
最早的置换密码(substitution cipher)
原理:简单的将字母移位
例如:
位移k=3时,对应的置换表如下:
明文 | A | B | C | … | X | Y | Z |
---|---|---|---|---|---|---|---|
密文 | D | C | D | … | A | B | C |
分析:该加密方式能被频率分析(frequency analysis)所破解
多表密码(维吉尼亚密码, Vigenere Cipher)
Alice和Bob共享一个私密的移位单词
原理:将明文以移位单词循环移位
例子:
如果移位单词为:HELLO
明文为:NICETOMEETYOU
加密方式为:
注意:结果需要mod26
所以Alice要发送的密文为:UMNPHVQPPHFSF
Bob收到密文解密:将对应的密文减去移位单词就可以还原明文
分析:该方式的加密使得简单的频率分析不能再使用;Eve要破解密文,首先得知道移位单词的长度,然后破解移位单词本身(相当于多个Caesar cipher)
移位单词越长,破解越困难
一次一密(One Time Pad-OTP)
随机生成每个数的移位数字
(随机序列的长度与信息序列的长度相同)
原理:每个字母的移位都是随机生成的
分析:一次一密具有完美安全(又叫绝对安全,perfect security)