目录
DES(Data Encryption Standard)
IP置换:
E盒扩展
S盒压缩
P盒置换
K密钥生成
PC-1置换表(通常用此表):
PC-2置换表(通常用此表):
IP-1逆置换表
DES(Data Encryption Standard)
对称加密-分组加密(块加密),虽然已经被破解,但是值得学习!
典型流程:16轮运算,当n个64位明文经过DES加密处理后,得到的n个64位数据串起来密文
如图示其中一组64位明文的加密过程:
IP置换:
IP置换通过IP置换表来进行,该表为一个8X8的表,格子中的数字代表位置。该表的值通常是固定的,置换后的数据表和置换前的数据表的关系是:
举例:将输入的64位明文的第58位置换到第1位,第50位置换到第2位。
E盒扩展
通过扩展,将32位的R数据扩展为48位的,以便下一步和48位的密钥进行异或。扩展方式如下。
经过如此操作之后,32位的R数据将被扩展到48位。
S盒压缩
S盒压缩是通过将8组6位的数据进行依次转换得到32位数据的过程,需要依靠八张S表。
首先看转换过程:
假设第一组数据为:101001
第一步:取其头尾组合再转10进制:101001 变为:11,将其转换为十进制后变为:3
第二步:取其中间在转16进制:101001 变为:0100 ,将其转换为十进制后变为:4
第三步:以3为行,4为列,找到S1表中的对应的值再将其转换为二进制,得到4个bit
如S1表中的3行4列对应的数字为:13,将其转换为二进制就是:1101
总共8张S表,对应八组6个bit的数据,经过转换后得到8组4位数据,也就是32位的数据。
注意:一个bit就是一个位,8个bit就是一个字节,一个字就是2个字节,也就是16位。
八张S表如下:
P盒置换
原理和IP置换一样,这里不再讲述。
P盒置换表(通常用此表):
K密钥生成
16轮运算会有16个不同的k密钥作为输入在F轮函数中与E盒扩展后的48位数据做异或。DES的密钥本来是64位,但是有8位是作为校验位,将通过置换选择(PC-1)被剔除,剩下的56位将通过置换选择(PC-2)运算再剔除8位,得到48位的密钥,这16个密钥的生成如下:
置换选择(PC-1):首先对64位的k密钥进项PC-1置换,剔除了8,16,24,32,40,48,56,64这8个位置的数据,最后根据置换原理(同上IP和P盒置换)得到一个8X7的表。
PC-1置换表(通常用此表):
现在就只有56位数据了,然后通过置换选择(PC-2)通过移位技术,得到48位的k密钥。剔除了9,18,22,25,35,38,43,54具体如下:
PC-2置换表(通常用此表):
IP-1逆置换表
个人学习,若有错误,欢迎指正。