现代密码学之对称密码体制---DES

0x01 DES概述

 DES(Data Encryption Standard),数据加密标准,曾被美国国家标准局确定为联邦信息处理标准,得到过广泛的使用。
 DES起源于1973年美国国家标准局征求国家密码标准方案,IBM提交的算法基于Lucifer的密码,Lucifer是一种feistel密码,使用128位的密钥对64位的分组进行加密,然后受NSA的影响,对Lucifer进行了一些修改,形成了之后的DES密码。

0x02 加密原理

 DES密码使用了Feistel网络,其加密过程和解密过程几乎完全相同,解密只需要一个逆向密钥编排。
 DES的加密过程如下:
 首先将64位的明文 x x x进行初始置换IP,获得第一阶段的密文下 x 1 x_1 x1。之后将 x 1 x_1 x1分为左右长度相等的两部分 L 0 L_0 L0 R 0 R_0 R0;然后将左右的两部分输入到Feistel网络中,进行16轮的加密。每一轮中右半部分的 R i R_i Ri将被送入函数 f f f之中, f f f函数的输出再与左半部分的 L i L_i Li进行 X O R XOR XOR(异或)操作,左后,将左右两部分进行交换,得到新一轮的明文。数学公式可以表示如下:
L i = R i − 1 L_i = R_i-_1 Li=Ri1
R i = L i − 1 ⨁ f ( R i − 1 , k i ) R_i = L_i-_1 \bigoplus f(R_i-_1, k_i) Ri=Li1f(Ri1,ki)

在这里插入图片描述
其中, i = 1 , . . . 16 i=1,...16 i=1,...16。值得注意的是DES的最后一轮加密不会交换 R i R_i Ri L i L_i Li
 在加密完成之后,DES还会进行一次逆初始置换IP,得到最后的密文。

0x03 步骤详解:

  0x0301 IP置换

 IP置换是按位置置,就是根据IP表的内容将明文的中的位置换掉,IP表可以排列为一行,而其中的数字就代表者明文的第几位,即将明文中相应的位放置到IP表内形成下一步的输入。
 初始置换IP和逆初始置换IP都是IP置换, f f f函数内部的扩充和置换以及轮密钥之中的置换都可以看作是IP置换。

  0x0302 f f f函数

f f f函数在DES之中扮演着重要作用, f f f函数首先将输入的明文进行IP置换(扩展IP置换),将32位的明文扩展为48位的明文,明文与轮密钥进行异或操作,再将输出分为8个6位的分组,将每个分组放入S-盒内部进行替换,再将新的输出进行一轮置换得到密文。流程如下图(不想画图了):

在这里插入图片描述
 其中,S-盒是一个查找表,将6位输入映射为4位的输出,其映射规律如下:
在这里插入图片描述
将6位输入的第一位和最后一位提取出来,组成一个二进制数,代表S-盒之中的行,而中间四位则组成S-盒的列,查找到该数字之后再替换出来。

  0x0303 轮密钥

 在DES之中,每一轮的密钥都是不同的,是由输入的密钥通过置换产生的子密钥,其产生规则如下:
在这里插入图片描述
 DES输入的密钥有65位,但实际用到的就只有56位,将64位的密钥k输入之后,通过PC-1的IP置换,得到56位的新密钥 k 1 k_1 k1,再将56位新密钥分为 C i C_i Ci D i D_i Di两部分,每轮变换之中,两部分分别循环左移,得到

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值