DES加密原理详解

加密过程:

DES加密原理详解

交换规则表1:

DES加密原理详解

交换规则表2:

DES加密原理详解

移动表:

DES加密原理详解

变换F:

输入:32位R0、48位子**K1
输出:32位
扩展置换:
DES加密原理详解
32位数据通过扩展置换E从32位扩展为48位,扩展置换通过将原32位数据中的某些位重复出现达到扩展的目的。
异或运算:
扩展置换的输出(48位)与子**(48位)做异或运算,输出为48位
S盒置换:
将异或运算得到的48位结果数据分成8个6位的块,每块通过对应的一个S盒产生一个4位的输出。8个6位数据的置换结果连在一起,形成32位输出结果。
将6位的输入中的第一位和第六位取出来1形成一个两位的二进制数X,将其转换为十进制作为行数,然后将中间4位构成另一个二进制数Y,并将其转换为十进制数作为列,然后查出S的X行Y列所对应的整数,将该整数置换为一个4位的二进制数,即S盒的输出。(eg:输入数据中的第一个6位数据块位010111,则需要通过查S1盒,先取出010111的第一位和第六位,则X=01,其对应的十进制为1。然后取出中间4位的1011,则Y = 1011,其对应的十进制为11,在S1盒中第1行11列的数为11,将其转换为二进制位1011,则输出1011)
DES加密原理详解
P盒置换:
DES加密原理详解
S盒置换的最终结果32位数据通过P盒置换,同样生成32位输出结果。

参考:
举有例子
DES加密算法原理简析
B站视频