图解密码技术(第三章)
- 三重DEStriple-DES,TDES triple date encryption algorithm,EDE指的是加密→解密→加密
- AES advanced encryption standard,NIST 国家标准技术研究所 national institute of standards and technology,通过竞争实现标准化:standardization by competition
3.6三重DES
DES已经可以被暴力破解,需要开发新的密码。
三重DES,也称为TDES,通常缩写为3DES。
三重DES的加密
- 密钥长度:56x3=168比特
- 并不是进行三次DES加密,而是加密→解密→加密。
- 目的为了三重DES能够兼容普通的DES,当三次的密钥相同,就相当于普通的DES加密。可以解之前的DES加密的密文。
- 当密钥一和密钥三相同时,称为DES-EDE2。EDE指的是加密→解密→加密
- 当三个密钥都不相同时,称为DES-EDE3。
三重DES的解密
与加密过程相反,密钥3,密钥2,密钥1的顺序执解密→加密→解密的操作。
三重DES的现状
处理速度不高,很少被用于新的用途。目前被银行等机构使用。
AES的选定过程
对称密码的新标准——AES
什么是AES
AES是取代前任标准DES而成为新标准的一种对称密码算法。选出名为Rijndael的对称密码算法,确定为AES
AES的选拔过程
- 条件:被选中的算法必须无条件地免费供全世界使用
- 方式:整个密码学社区来进行评审,通过竞争来实现标准化的方式,正是密码算法选拔的正确方式。
Rijndael
什么是Rijndale
它是比利时密码学家设计的分组密码算法
Rijndale在AES的规格中,分组长度固定为128比特,密钥长度只有128,192和256三种。
Rijndale的加密解密
Rijndale的算法是由多个轮构成,每一轮包括四个步骤:SubBytes、ShiftRows、MixColumns和AddRoundKey,使用SPN结构。
优势:输入的所有比特每一轮都加密,比只加密一半输入的Feistel相比所需要的轮数更少。SubBytes、ShiftRows、MixColumns可以分别以字节、行和列为单位进行并行计算。
-
加密时,每一轮所进行的处理:(一般要重复10-14轮的计算)
SubBytes→ShiftRows→MixColumns→AddRoundKey
-
-
解密时,则是按照相反的顺序进行的,即:
AddRoundKey→MixColumns→ShiftRows→SubBytes
其中,AddRoundKey是与轮密钥进行XOR运算,因此加密解密相同,剩余步骤的名字中都有Inv,表示相应步骤的逆运算。
Rijndael的破译
算法的背后有严谨的数学结构,明文到密文的计算过程可以全部用公式来表达,之前密码算法不具备的。
到目前为止,还没有出现针对Rijndael的有效攻击。
3.9小结
-
使用一种密钥空间巨大,且在算法上没有弱点的对称密码,就可以通过密文来确保明文的机密性。巨大的密钥空间可以抵御暴力破解,算法上没有弱点可以抵御其他类型的攻击。
-
DES,三重DES,AES都只能将一个固定长度的分组进行加密。当需要加密的明文长度超过分组长度时,就需要对密码算法进行迭代。