DES算法加密流程

本文深入解析了DES(Data Encryption Standard)加密算法,包括其基本特点:使用56位密钥加密64位数据,Feistel密码结构,对称加密以及加解密速度优势。详细阐述了DES的加密流程,如IP置换、轮函数F的执行,子密钥生成等步骤,并介绍了每轮明文加密和子密钥生成的详细过程。通过对DES的全面解读,读者可以更好地理解这种经典加密技术。
摘要由CSDN通过智能技术生成

des基本特点

  • 用56位密钥加密64位数据(8个奇偶校验)
  • 采用分组加密,feistel密码结构(feistel:简单地说Feistel结构就是顺序地执行两个或多个基本密码系统,使最后结果的密码强度高于每个密码系统的结果)
  • 对称算法:加密和解密除密钥编排不同外,使用同一算法
  • 密钥较短,加密处理简单,加解密速度快,适用于加密大量数据的场合

des算法总流程

详细流程

每轮明文的加密(流程图左半部分)

1.ip置换(先是左边的明文加密部分)

1. 给定明文,通过一个固定的初始置换IP来重排输入明文块P中的比特,得到比特串P0=IP(P)=L0R0,这里L0和R0分别是P0的前32比特和后32比特

初始置换IP

 

2.将ip置换后的明文分成两组

3.右边进入分组密码的轮函数F

4.右半部分继续进入E盒扩展

因为子密钥是48bit,所以将数据通过e盒扩展从32bit——>48bit(注意e盒扩展的规律)

 5.与子密钥异或后,再通过S盒压缩

48bit分成8组,通过8个s盒进行压缩恢复为32bit(注意压缩的方法:第一位与第六位组成行,中间四位组成列。最后查s盒得到的数据的二进制位压缩后的四位结果)

例子

6.s盒的输出结果,通过p盒置换输出,轮函数F结束

7.轮函数F的输出结果再与左半部分异或形成新的R,而原来的R则转为L本轮结束

每轮子密钥的生成(流程图右半部分)

1.先减掉8奇偶校验位,再通过pc-1置换

2.分两组C0与D0进行循环左移位

 3.再进行pc-2的置换。52bit——>48bit,本轮子密钥生成结束,下一轮密钥靠C1、D1循环左移位后继续通过pc-2置换

 最后16轮后注意左右交换,再进行一次ip逆置换即可得到密文

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值