一、分组密码概述
Shannon的密码设计思想
扩散(diffusion)
将每位明文及密钥数字的影响尽可能迅速地散布到较多个输出的密文数字中,以便隐蔽明文数字的统计特性。产生扩散的最简单方法是通过“置换(Permutation)”(比如:重新排列字符)。
混淆(confusion)
其目的在于使作用于明文的密钥和密文之间的关系复杂化,使明文和密文之间、密文和密钥之间的统计相关特性极小化,从而使统计分析攻击不能奏效。通常的方法是“代换(Substitution)”
二、数据加密标准——DES
DES是一种分组密码,其输入的明文长度为64bit,密钥长度为56bit,输出的密文长度为64bit。
1. IP置换/逆置换
2. DES轮函数
(1)轮函数总体概览
初始置换过程实际上为香农信息论中的“扩散(Dimusion)”
迭代运算过程就是香农信息论中的“混淆(Confusion)”
如果加密时使用的轮密钥次序为
k
1
,
k
2
…
,
k
16
k_1,k_2…,k_{16}
k1,k2…,k16,那么解密时使用的轮密钥次序为
k
16
,
k
15
…
,
k
1
k_{16},k_{15}…,k_{1}
k16,k15…,k1
(2)轮函数–E扩展置换
(3)轮函数–S盒压缩处理
经过扩展的48位明文和48位密钥进行异或运算后,再使用8个S盒压缩处理得到32位数据。
将48位输入等分为8块,每块6位输入压缩为4位输出。
对应S1的第3行,第15列
(4)轮函数–P盒置换
S盒的作用是混淆(Confusion),主要增加明文和密文之间的复杂度(包括非线性度等)。DES的安全性直接取决于S盒的安全性。
P盒的作用是扩散(Difusion),目的是让明文和密钥的影响迅速扩散到整个密文中。即一位的明文或密钥的改变会影响到密文的多个比特。
S盒和P盒的作用体现了Shannon的扩散和混淆的密码设计思想。
3. 密钥生成
举例:
注意:
移位次数表中每次移位都对应着一个
k
i
k_i
ki的生成
三、高级加密标准——AES
AES是美国联邦政府采用的一种用来替代DES的加密标准,已经被多方分析且广为使用。
Rijndael是分组长度和密钥长度均可变的分组密码,其密钥长度和分组长度可以独立指定为128/192/256bit。
AES的密钥长度为128/192/256bit,但分组长度固定为128bit。
算法步骤
1. 字节代换
2. 行移位
3.列混淆(难点)