DES算法

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

分组加密也叫块加密,它是将明文分成字节块,对每个字节块分别加密,最后拼接在一起,得到密文。DES是将明文分成64位的字节块,密钥长64位,56位参与运算,其余8位为校验位。(8,16,24,32,40,48,56,64),当n个64为明文数据块都经过DES加密处理后,所得到的n个64位密文数据块串在一起就是密文。

总过程:

R1=L0⊕f(R0,K1)中的(R0,K1)过程是下图F轮函数的过程

初始置换与逆置换:

下图左半边为初始置换的表,右半边为逆置换的表,图片中的数字指排列顺序,将每个64位字节块中的数据按表格中的顺序进行重新排列,如初始置换表中的第一个数字58指将将数据的第58位放到第一个位置上

 

第一次将右32为记为R0,左32位记为L0

将R0赋给L1,R1的值是经过一系列计算的结果,以下为R1计算的过程

 

  1、E扩展过程:

 下图为将右32bit变成48bit过程

先将32位数据分为8组4位的数据,将第一组的第四位加到第二组的第一位前面,将第二组的第一位加到第一组的第四位后面,然后依次扩增,最后一次扩增是将第八组的第四位加到第一组的第一位前面,将第一组的第一位加到第八组的第四位后面,按照如此方法将这8组数据都扩增两位就变成了48位数据

 

 2、将E扩展后的48位数据与K1异或一次

 

 

 3、S盒:

将48位数据分成8组每组6位的数据

将6位数据头尾数据拿出来转换成十进制作为行数

将6位数据的中间数据拿出来转换成十进制作为列数

 在对应的Sn盒中根据行数和列数找到对应的十进制数字

 

 再把十进制数字转换为二进制

 再将8组数据拼接起来

4、P盒置换:

根据下表,对S盒置换完的数据进行顺序调换

 将经过P盒置换的数据与L0进行异或,得出的结果就是R1的值

再将L1和R1进行以上的运算,总共进行16次运算得到L16和R16

将L16和R16拼接起来进行逆置换即可得到密文。。。。

 

下列过程为密钥生成过程:

下图为密钥生成总过程: 

 

 下图为pc-1置换表

 

 下图为循环左移过程:

将左半部分和右半部分分开左移,第一次左移一位,第二次是在第一次的基础上左移一位,依次左移16次

 

 将第一次左移完的数据合并到一起,按pc-2表进行置换,得到密钥K1,将第n次左移完的数据合并到一起,按pc-2表进行置换,得到密钥Kn

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值