密码学引论 | DES


DES算法
1 算法流程
  1. 64位密钥经子密钥产生算法产生出16个子密钥:K1,K2…,K16,分别供第一次,第二次,…,第十六次加密迭代利用。

  2. 64位明文首先经过初始置换IP,将数据打乱重新排列并分为左右两半。左边32位构成L0,右边32位构成R0

  3. 加密函数f实现子密钥K1对R0的加密,结果为32位数据组f(R0,K1)。f(R0,K1)再与L0模2相加,又得到一个32位的数据组L0⊕f(R0,K1)。以L0⊕f(R0,K1)作为第二次加密迭代的R1,以R0作为第二次加密迭代的L1。至此,第一次加密迭代结束。

  4. 第二次加密迭代至第十六次加密迭代分别用子密钥K2,…,K16进行,其过程与第一次加密迭代相同。

  5. 第十六次加密迭代结束后,产生一个64位的数据组。以其左边32位作为R16,以其右边32位作为L16,两者合并再经过逆初始置换,将数据重新排列,得到64位密文。至此加密过程全部结束。
    在这里插入图片描述


2 算法细节
(1)子密钥的产生

64位密钥经过置换选择1循环左移置换选择2等变换,产生出16个48位长的子密钥。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述


(2)初始置换 I P IP IP

将64位明文打乱重排,并分为两半。
在这里插入图片描述
在这里插入图片描述


(3)加密函数

在第i次迭代加密中选择运算E对32位的Ri-1的各位进行选择和排列,产生一个48位的结果。此结果与子密钥Ki模2相加,然后送入代替函数S。代替函数组由8个代替函数(S盒子)组成,每个S盒子有6位输入,产生4位输出。8个S盒子的输出合并,结果得到一个32位的数据组。此数据组在经过置换运算P,将其各位打乱。置换运算P的输出便是加密函数的输出f(Ri-1,Ki)。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


(4)逆初始置换 I P − 1 IP^{-1} IP1

将第16次加密迭代的结果打乱重排,形成64位密文。
在这里插入图片描述
在这里插入图片描述


例题

考了差分的计算

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值