密码编码与网络安全原理与实践.第二章
第二章 传统加密技术
- 对称密码模型
- 代替技术
- 置换技术
- 几种传统技术
加密模型:
- 明文 X = [X1,X2,...XM]
- 加密算法 E
- 密钥 K
- 密文 Y
- 解密算法 D
加密过程 :Y= E(K, X)
解密 : X= D(K, Y)
- 密码分析学:企图利用算法的特征来推导出特定的明文或使用的密钥
- 穷举攻击:对一条密文尝试所有可能的密钥,直到把它转化为可读的有意义的明文
Caesar密码
对字母表中的每个字母,用它之后的第三个字母来代替
如果让每个字母等价于一个数值
加密算法: C = E(3,p) = (p+3) mod 26
一般形式: C = E(k,p) = (p+k) mod 26
p 为明文字母,k为位移长度 C 为密文字母
k : 1~25
解密算法: C = D(k,c) = (c-k)mod 26
其三个特征使得可以用穷举攻击:
- 已知加密解密算法
- 需测试的密钥只有25
- 明文语言已知
单表代替密码
置换:所有元素的有序排列,且每个元素只出现一次 n个元素有 n!个置换
- 密文行是26个字母的任意置换,那么就有26!或大于4 * 1026种可能的密钥
此方法称为单表替换密码,因为每条消息用一个字母表加密(给出从明文字母到密文字母的映射) - 解密算法:
根据统计单个字母概率,或组合字母概率,进行替换,找出字母映射
Playfair密码
多字母代替密码
- 把明文中的双字母音节整个转换成为密文的双字母音节
- Playfair 基于一个由密钥词构成的 5*5 字母矩阵
本例中密钥词为monarchy
填充方法:首先将密钥词按顺序填入矩阵,然后将字母表剩余字母填充进去,i/j暂时当成一个字母
对明文加密规则: - 若字母对两字母相同,则在其中间+x 例如balloon --> ba lx lo on
- 若落在矩阵同一行的字母对,右移一位
- 同一列的字母对,下移一位
- 其他的字母对,第一个字母所在行为密文所在行,另一个字母所在列为密文所在列。hs->BP
进步:虽然只有26个字母,但有26*26=676个字母对,分析字母对概率比较困难
破解:因为它的密文仍然完好的保留的明文语言的大部分结构特征,足够分析出规律
Hill密码
线性代数: =
- Hill算法将m个连续的明文字母,替换成m个明文字母
在等式里每个字母指定成为一个数值 (a=0, b=1,...,z = 25)
- C和P是长度为3 的行向量,分别代表明文密文,K = 3*3的矩阵,加密密钥 运算摸26
- 解密: 求k的逆应用到密文上
优点:完全屏蔽了单字母频率特性,
破解方法:找到一组明密文对,C P 可以根据以上式子 定义 Y = XK
若X可逆 则得到K = X-1 Y,若不可逆,则找到另外的对应值
Vigenere密码
多表替换密码最著名的密码就是此密码