古典密码学(Classical Cryptography)
1.古典密码学的特点:
密码算法的安全性基于算法的安全性
加密的算法包括:字母的代换、顺序的替换
2.常用古典密码:
2.1凯撒密码 Caesar’s Cipher
英语的26个字母分别用 的元素表示。假设密钥是k。
穷举攻击破译
2.2单字母替换 Mono-alphabetic substitution
常用字母频率:
分析字母出现频率破译
2.3仿射密码 Affine Cipher
令 且K ={ }对任意的 ,定义加密变换为:
解密变换为:
其中 ,1为该代数空间的幺元。
由于在0到15,与26互质的有1,3,5,7,9,11,15,17,19,21,23,25共12个数,所以a一共有12种情况,b有16种情况,所以密钥空间为:
12*26=312
先分析字母出现的频率,试探求解多组a和b,代入验证,得到有意义的语句说明a和b选择正确。
2.4维吉尼亚密码 Vigener
通过将明文轮流循环加密钥得到密文。
破解首先需要确定长度:
Kasiski测试法 :搜索长度至少为3的相同密文段,密文段之间间隔的最大公因子很有可能就是密钥的长度。
将密钥的长度从1开始递增,每次对于密文进行分组,计算重合指数,如果接近0.065(0.05就差不多了)则说明这个数字就是密钥的长度。而如果是随机串,则重合指数接近0.038。
确定每一位密钥:
通过密钥将密文分成多组,使用拟重合指数测试法破解每一组对应的密钥。
对于子密文段各个字母的频率进行统计,结合字母频率分布统计表,利用公式计算出 ,然后对子密文段移位25次,按照同样方法求值。
中最接近0.065的数字对应的字母,即为该组的密钥。