DES算法和原理

Feistal框架是DES的主体,DES是在其基础上搞出来的具体应用。

关于Feistal框架部分不再赘述,了解的可跳过,不了解的跳转↓做好预习
https://blog.csdn.net/weixin_43289702/article/details/108913996

本文包括:DES结构,轮函数的计算,子密钥产生,和它们的原理。
.
.

一、DES结构

1

DES特点
  1. 不求可逆
  2. 非线性
  3. 扩散性
  4. 混乱性
  5. 雪崩
  6. 位独立

不墨迹了,直接看F和密钥的细节。

.
.
.

二、轮函数F

结构如图

DES

具体步骤

1、64位的明文分组,拆成32位的左右两部分。Li=Ri-1不做变动;Ri-1进入轮函数F,经过运算后生成Ri

2、E-box扩展:从32位扩展至48位。填充方法如图,将原文每4个位一行排列。比如第二行5 6 7 8,那么在5前面填充第4位,在8后面填充第9位。2

3、已经扩充到48位,下一步就拿它们跟48位的密钥XOR(后面会说48位的密钥怎么来的)。

4、S-box:把48位长度的数据变回32位。一个S盒负责将6位数据变成4位,所以48/6=8,我们一共需要8个S盒。

S盒是安全的关键唯一非线性部分。

  • 8个S盒的工作原理是一样的,这里以S2盒为例:第7位和第12位作为Outer bits输入,第8位—第11位作为middle 4 bits of input输入,最终产生4位数据,即是输出数据的第5位—第8位。

在这里插入图片描述

  • 那么 S盒是怎么把6位数据变成4位的呢?很简单,查表。下图是S5盒的表

在这里插入图片描述

【补充】每个S盒的表格,都是固定的,并非使用时随机生成,或开发人员随便填写。细心对比可以发现,输入中任1比特的变化,都会最少引起输出中2比特的变化。
(其实这是当年美国IBM公司的大佬精心设计的,目的为了提高扩散性和混乱性。不过美国并未公布具体的设计原理,只告诉了大家成果)
对其余S盒有兴趣的可以去查 百度百科词条_S盒。

5、P-box:再将32比特的数据置换,此处是为了再次加强扩散性。

P盒的特点:

  1. 各输出块的4个比特必须来自不同输入块
  2. 各输入块的4个比特必须分配到不同的输出块
  3. 第n个输出块中不能包含第n个输入块的数据

6、输出,一次迭代中的轮函数至此结束。
.
.
.
.

三、子密钥

密钥表面上有64比特,实际只有56比特,每7比特是1bit校验和。如图

1、初试密钥经过第一次置换,拆成C、D左右两部分(各自28比特)。
2、C、D分别独立的进行第一次循环左移。
3、将2的结果组合(56比特),进行第二次置换(48比特)
4、输出K1(48比特)
5、继续进行2,3步骤
6、输出K2
… …
7、输出K16

C和D每次循环左移 要移多少位呢?还是查表 ╮(╯▽╰)╭

6

.
.

后话

差分分析是第一个公开的能对 DES 在小于 255复杂度情况下攻击成功的方法。它表明,若有 247个选择明文,用差分分析就可以在 247次加密运算内成功攻击 DES。尽
尽管差分分析是一个强有力的密码攻击方法,但它对 DES 并不十分奏效。

另一个密码分析方法是线性分析,这种方法只需知道 243 个明文就可以找出 DES 的密钥,而用差分分析则需知道 247 个选择明文。尽管获取明文比获取选择明文容易得多,但是这只是一个小的改进,线性密码分析对于攻击 DES 还是不可行的。
.
.

全文结束,加密过程的重中之重是S盒。

最后附上DES完整流程图
1

1

.
.
.
.
部分图片素材截取自网上信息安全课程的PPT,感谢任教老师,自己做了适当调整,如有错误和不足,欢迎指出。

.
.
考研阶段,边学边写边复习,编辑器用的不熟
.
.
.
.
.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值