对称加密之DES加密算法

对称加密之DES经典算法

DES加密算法(Data Encryption Standard)

算法说明:

作为DES数据加密标准的算法实现,DEA(Data Encryption Algorithm)是一种被广泛应用的基于密钥的经典对称分组加密算法,这些年来,对寻找和研究该算法的弱点进行了非常多的尝试,使得DES是现存加密算法中被研究得最为彻底的一个。即使在当今由于计算硬件发展飞速,56位DES在高速密钥穷举攻击面前变得不再安全的情况下,至今仍然没有人找到DES的致命缺陷,通过将密钥空间扩展到168位的3DES,依然是目前无法被破解的安全可靠的强大加密算法。

DES遵循了分组密码设计的两个原则:混淆和扩散。混淆是使密文的统计特性与密钥的取值之间的关系尽可能复杂化,以使密钥和明文以及密文之间的依赖性对密码分析者来说是无法利用的。扩散的作用就是将每一位明文的影响尽可能迅速地作用到较多的输出密文位中,以便在大量的密文中消除明文的统计结构,并且使每一位密钥的影响尽可能迅速地扩展到较多的密文位中,以防对密钥进行逐段破译。

要点:

1.DES是一个经典的分组加密算法,以64位为分组对数据进行加密(分组),加密和解密使用的是同一个算法(对称);
2.密钥长64位,事实上56位参与DES运算,每8位中最后一位是奇偶校验位(保证密钥每8位都有奇数个1);
3.加密过程:对于每一个明文分组,进行一次初始置换IP(Initial Permutation),之后循环使用16个子密钥进行16轮加密,最后进行一次末置换(IP^-1)。

流程图:

DES加密流程图
图1 DES加密流程图


步骤详解:

  1. 将明文分成长度为64位的明文组,对每组明文进行以下加密操作;

  2. IP初始置换:将输入的64位数据块按位重新组合,并不影响DES的安全性,一个IP矩阵的例子如图2:

    DES IP matrix
    图2 初始置换矩阵Initial Permutation

  3. 密钥置换:将64位密钥每个字节的第8位奇偶校验位去除,产生的56位密钥由如图3-1所示的压缩置换PC-1生成(注意表中没有8、16、24、32、40、48、56、64这8位),然后将56位密钥分成两个28位部分,根据加密轮数,将这两部分分别循环左移1或2位,每轮移动位数的例子如图3-2,最后将移动过的两部分重新组合成56位,根据如图3-3所示的压缩置换PC-2产生最终的48位轮密钥(注意表中没有9,18,22,25,35,38,43和54这8位);

DES IP matrix
图3-1 密钥压缩置换PC-1
DES IP matrix
图3-2 密钥循环左移位数表
DES IP matrix
图3-3 密钥压缩置换PC-2


4. E扩展置换:目标是将IP置换后获得的64位中的右半部分32位输入,扩展为48位输出,以方便与第3步获得的48位轮密钥进行异或运算。扩展置换矩阵扩展的两列数据是从相邻两组分别取靠近的一位补充,扩展矩阵如图4所示;
DES IP matrix
图4 输入分组R0扩展矩阵


5. 将第3步压缩置换得到的48位轮密钥和第4步扩展置换得到的48位扩展分组进行异或运算得到48位数据,将这个数据送入S盒,进行替代运算。48位数据分成8组6位数据,分别送入8个不同的S盒,得到8组4位分组输出,组合成最后的32位S盒输出。一个S盒是一个4*16的矩阵,矩阵每个元素都是一个4位二进制数,S盒的6位输入决定了对应的输出在S盒的哪一行哪一列,输入的高低2位作为行数R(从0开始),中间4位作为列数C(从0开始),在S-Box中查找对应输出,如图5所示S盒,如果输入的6位分组为101101,那么对应的S盒输出就在11(第3行),110(第6列),值为4(0100) S盒代替是DES算法的关键步骤,所有的其他的运算都是线性的,易于分析,而S盒是非线性的,相比于其他步骤,提供了更好安全性

S-Box matrix
图5 S-Box矩阵


6. 将S盒输出的32位数据进行P盒置换,P盒置换矩阵如图6所示,该置换把输入的每一位映射到一个输出位,任何一位有且仅有一次映射,P盒置换的目的是进一步打乱S盒得到的输出;

P matrix
图6 P置换矩阵

  1. 最后,将P盒置换的32位输出与最初的IP置换得到的左半部分32位输入L0异或,然后左右半部分交换位置,得到一轮输出L1、R1,循环3~7步即为下一轮,DES算法一共有16轮加密;

  2. IP^-1末置换:是初始置换的逆过程,DES最后一轮,左右半部分并不交换,而是直接合成一个分组作为末置换的输入,经过末置换之后,就得到了一个明文分组对应的密文分组了。

猜你喜欢

转载自blog.csdn.net/u012470144/article/details/81155375