DES算法原理

DES 使用一个 56 位的密钥以及附加的 8 位奇偶校验位(每组的第8位作为奇偶校验位),产生最大 64 位的分组大小。这是一个迭代的分组密码,使用称为 Feistel 的技术,其中将加密的文本块分成两半。使用子密钥对其中一半应用循环功能,然后将输出与另一半进行“异或”运算;接着交换这两半,这一过程会继续下去,但最后一个循环不交换。DES 使用 16 轮循环,使用异或,置换,代换,移位操作四种基本运算。

算法思想:

1.输入64位比特明文数据,根据IP置换表混淆。

2.将混淆的64位数据分成左右两部分。分别为32位L0,32位R0。Li=Ri-1,Ri =Li-1⊕ F(Ri-1,Ki)。根据此关系进行16轮迭代,将L16和R16交换,得到R16L16,作为IP逆置换的输入。

3.Feistel函数:将传入的32位右半段二进制串经过循环扩展表扩展成48位。 再用得到的48位二进制串与对应的子密钥进行位移或运算。 将异或运算所得48位分成8组,每组是一段6位二进制串。 每组分别通过相应的S盒进行6-4变换(S盒变换),由6位变为4位。合并8组,形成32位二进制串作为Feistel轮函数的输出。

4.通过IP逆置换输出64比特密文数据。

总结:DES具有很好的雪崩效应,明文或密钥的微小改变将对密文产生很大的影响,安全性高,但是仍存在密钥较短等一些问题。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值