一、古典密码学的特点
1.古典密码学和现代密码学的区别:
古典密码学基于算法的安全性
现代密码学基于密钥的安全性
2.加密算法:
1)字母的代换
单表代换:凯撒密码,移位密码,单字母替换,仿射密码
多表代换:维吉尼亚密码,希尔密码
2)顺序的置换
置换密码
二、古典密码
1. 凯撒密码
实际上就是m=3的移位密码
存在的问题:算法和密钥都是确定的。
2. 移位密码
还是26个英文字母的顺序
密钥空间为:0-25
问题:受穷举攻击:例举密钥空间中的25个密钥,解密密文到有意义字符串
3.单字母替换(代换密码)
本质是代换,一一映射。将明文用其他字母或数字代替。
密钥空间:26!-1,即26 * 25 * 24*…* 2 * 1-1,约等于288,则需要遍历288次(×)
英文字母出现有一定频率,可以将密文字母出现频率和已知字母频率表相对应。
4. 仿射密码
当a=1,为移位密码
仿射密码是一种表单代换密码
5. 维吉尼亚密码
避免单字母替换的频率暴露问题,循环使用密钥对明文加密。
同一个明文,出现位置不一样,对应密钥不一样,则加密后的字母不一样。
同一个密文,出现位置不一样,对应密钥不一样,则解密后的字母不一样。
密钥空间大小为26m,如当m=5,密钥空间所含密钥的数量是>1.1*107。
-
为多表代换体制,需要m张表。
-
攻击维吉尼亚密码:
确定长度:
1)Kasiski测试法
2)重合指数法
用于验证Kasiski长度是否猜对,假如m=5,则将密文分成5份,每份都是一个移位密码,再用重合指数法进行分析,如果字幕出现频率符合重合因子为0.065,则说明长度猜对。
当长度猜对,要找出具体对应密钥,在每份移位密码,猜25次,每次计算重合因子,这25次肯定有一次是0.065,其他是0.038,则计算得到0.065时,使用的字母就是对应密钥。
重合因子:如果猜对,则各个字母频率出现之和除以10000等于0.065,否则为0.038 。
5. 希尔密码
希尔密码是一种多表代换密码
举例:
6. 置换密码
将明文字符位置顺序变换,而字符集不变。
(区别于代换密码,代换是用其他字符代替,位置不变)
例如:
三、现代密码学特点
方案公开:
- 社会工程学
- 逆向工程
- 等等