简单了解DES加密算法

DES是一种1970年代的加密算法,使用64位明文和56位密钥进行操作。它包括初始和逆初始置换、明文和密钥的分组、密钥的生成和变换、S盒和P盒的替代操作,以及多轮的异或运算。由于安全性问题,后来发展出双DES和三重DES作为加强版本。
摘要由CSDN通过智能技术生成

1.历史来源:DES(数据加密标准)算法是早在1970年研制出来的算法,属于分组算法。容易被穷举攻击。

2.简单描述:DES以64位二进制明文为明文数据,对明文数据进行加密,输出64位密文。DES密钥实际位56位,并顺序平均分为8组,但每组最后一位添加1位奇偶校验位,这是为了保证密钥的正确性,所以也可表示位64位。DES的加密步骤主要是换位、替换、异或等变换。

3.步骤描述:

1)初始置换。对输入的64位二进制明文按照 初始置换表 进行明文顺序的置换,初始置换表中的数字 代表明文中该数字位  被置换到了表格所在位置。

2)明文分组。将置换后的明文,按顺序分为左右两组,每组32位。

3)密钥置换。这里来处理密钥,以56位密钥为基础,使用密钥置换表,置换密钥的顺序。

4)密钥分组、移位、合并。将密钥按顺序分为左右两组,并结合密钥循环迭代表按迭代次数进行密钥的左移变换(左右两组分别单独进行左移变换),然后将左右密钥合并。

5)密钥产生子密钥。让上一步的密钥产生子密钥,就是将长密钥转换压缩为短密钥,将原来的56位密钥压缩转换为48位密钥。这一步需要用到密钥压缩置换表,使用该表进行压缩步骤。

6)明文扩展置换。这一步是对一半明文的处理,将明文数据的右半部分(32位)扩展成48位,为什么要扩展成48位,因为要和上一步密钥压缩过后的48位子密钥进行运算。

7)48位子密钥和扩展置换后的48位明文进行异或运算。

8)S盒代替。将第7步产生的数据送进S盒代替。将48位数据分为8组,每组6位,分别送入S盒代替,最后变成每组4位,再拼接起来变成32位。S盒代替的原理是一组6位二进制数据‘a1a2a3a4a5a6’送入S盒,将a1a6转换成十进制,得出得结果为S盒代替表的行号,将a2a3a4a5转换为十进制,得出的结果为列号,最后这一组的替换结果就是S盒代替表中行列对应下来的那个值(十进制)的二进制形式(4位二进制)。

9)P盒置换。将S盒输出的32位按照P盒置换表进行置换。

10)P盒置换结果与明文左半部分进行异或运算,得到新的分组的右半部分。

11)将明文的右半部分作为新分组的左半部分。

12)重复4~11步,重复16轮。

13)逆初始置换。将16轮DES运算结果输出的左右合并起来,形成64位,再做一次逆初始置换,得到最终密文。

明文变化图:

扩展:因为DES算法易于击破,有双重DES盒三重DES变形。 

文章参考图表来源:(166条消息) DES加密算法原理与实现_bemodesty的博客-CSDN博客

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

邹邹邹邹!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值