密码学|DES加密算法|学习记录

DES简介

DES属于对称密码算法中的分组加密算法

密钥一共64bit,其中56位参与运算,其余8bit为校验位(8 16 24 32 40 48 56 64)

n个64位明块经过加密后得到的n个64位密文块加在一起就是密文

 DES一般步骤

IP置换 :

IP置换就是按照一定的规则对原来的64位重新排位得到新的64位,如下图,为初始IP置换和IP逆置换的两个表。

表中的数据代表把初始位置的数据,放到当前表中的位置,如58 对应表中第一位,就把原来58位的数据放到第一位上。

轮函数——E扩展置换

64bit加密的时候会分为左32bit和右32bit,E扩展置换是为了将右边的32bit扩展到48bit与密钥作用。

 把32bit数据分为8个4bit,扩展后为8个6bit数据,可以理解为当前4bit的头为上一个扩展后6bit的尾部,当前4bit的尾部,为扩展后下一个6bit的头部,具体如上图;扩展后的48bit与密钥进行异或。

轮函数——S盒压缩处理

对E扩展和密钥异或得到的48bit结果,经过8个S盒压缩得到32bit数据。

将48bit数据分为8个6bit数据,将他们传入8个6进4出的S盒;例如第一个6bit数据为101101,取其首位和末位为1,1构成11,中间4bit为0,1,1,0构成0110,二进制11对应十进制3,0110对应的十进制6,从而得到3行6列,即对应S盒中的行和列,我们找到S盒中的3行6列为15=1111。

最终我们得到101101的压缩结果为1111。

轮函数——P盒置换

将S盒得到的32bit数据传入P盒置换,同初始置换规则,如上图第一个数为16,即之前的第16个数放到当前的第一位。 进而得到32bit结果。

我们得到的结果与L0(32bit)进行异或作为下一次循环的R1。如下图:

 经过16轮运算,最后再进行一次逆置换便得到最终的密文。

密钥生成

共64bit密钥,去掉8位校验位还剩56bit,用56bit生成48bit参与到运算。

具体步骤如下图所示:

pc1将64bit去掉校验位转变为56bit,pc2将56bit变为48bit,

 最终得到16轮的密钥。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值