《密码学原理与实践》 第一章 古典密码学
1.1 几个简单的密码体制
密码的数学定义
1.1.1 移位密码(shift cipher)
一个实用的加密体制,必须满足下面两点:
1. 加密函数e(k)和解密函数d(k)都应该易于计算
2. 对任何敌手来说,即使他获得了密文y,也不可能由此确定出**K或明文x
1.1.2 代换密码(substitution cipher)
1.1.3 仿射密码
欧拉函数的定义
欧拉函数的求法
仿射密码的数学定义
1.1.4 维吉尼亚密码
单表代换密码:一旦**被选定,每个字母对应的数字都被加密变换成对应的唯一数字,如移位密码和代换密码
多表代换密码:一个字母可以被映射为m个字母中的某一个(假定**字包含m个不同的字母),如维吉尼亚密码
维吉尼亚密码的数学定义
1.1.5 希尔密码
关于矩阵的行列式的计算
矩阵可逆的推论
希尔密码的数学描述
1.1.6 置换密码
置换密码的数学定义
置换密码实际上是通过置换打乱了明文字母的位置和次序
1.1.7 流密码
流密码的数学定义
当对所有的i>=1,**流为一常数zi=K时,便是分组密码。
异步流密码:**流zi的产生不但与**K有关,而且还与明文元素(x1,x2,……,xi-1)或密文元素(y1,y2,……,yi-1)有关
基于维吉尼亚密码的异步流密码:
1.2 密码分析
Kerckhoff假设:假设敌手知道所使用的密码体制
目标是设计在Kerckhoff假设下安全的密码体制
常见的攻击模型:
- 唯密文攻击:敌手只拥有密文串y
- 已知明文攻击:敌手拥有明文串x及其对应的密文串y
- 选择明文攻击:敌手可获得对加密机的临时访问权限。这样他能够选择一个明文串x,并可获得相应的密文串y
- 选择密文攻击:敌手可获得对解密机的临时访问权限,这样他能够选择一个密文串y,并可获得相应的明文串x
1.2.3 维吉尼亚密码的密码分析
Kasiski测试法:两个相同的明文段将加密成相同的密文段,它们的位置间距能够整除**字长度,进一步确定m可以使用重合指数法。
重合指数法:
1.2.4 希尔密码的密码分析
唯密文攻击很难,但已知明文攻击很容易破译
1.2.5 LFSR流密码的密码分析
所有运算都是线性的,因此容易受到已知明文攻击