DES算法和原理

   日期:2020-10-08     浏览:133    评论:0    
核心提示:本文包括:DES结构,轮函数的计算,子密钥产生,和它们的原理。..一、DES结构不墨迹了,直接看F和密钥的细节。...二、轮函数F结构如图具体步骤1、64位的明文分组,拆成32位的左右两部分。Li=Ri-1不做变

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

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

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

一、DES结构

DES特点

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

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

.
.
.

二、轮函数F

结构如图

具体步骤

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

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

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比特,后面8比特是校验和。如图

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

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

.
.

后话

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

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

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

最后附上DES完整流程图

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

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

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服