2轮DES差分分析

news/2024/10/1 15:10:37

一、差分分析

上图是2轮DES的框架图。是已知的,试图找出B和C的差分值:

同样,为了计算方便,将L0等于L0*,那么,差分值就变成:

二、代码实现
如果大家对代码实现感兴趣的话,可以根据2轮DES差分分析原理,对1轮差分分析代码做出调整,完成2轮差分分析代码实现。这里把2轮DES差分分析的过程以视频的形式呈现给大家:
第一步,我们创建了一个2轮的DES用来接下来的差分分析,这里将初始密钥和子密钥都打印了出来,主要是为了学习过程中将差分攻击结果和正确密钥进行对比,通过观察密钥的一些细节变化,增加大家对DES的整个差分攻击过程的理解和印象。接下来的差分分析过程中除了生成用于差分分析的明密文对时需要使用的这一步生成的密钥之外,其他操作皆不使用。
第二步,进行5次差分分析,每次都生成两对明密文对,用于差分分析。差分分析的结果为密钥猜测列表,随着差分分析次数不断累加,具体的差分分析过程为:
1、将两对明密文对进行分组,明文1使用(L0,R0)表示,明文2使用(LL0,RR0)表示,编号的最后一位表示第几轮数据,因此我们使用(L2,R2)表示密文1,(LL2,RR2)表示密文2。
2、将密文分组中的L2和LL2 做E盒运算,扩充为48bit,做异或运算获取48bit大小的第2轮DES加密输入差分,然后将差分结果6bit一组分成8组。
3、将R2和RR2异或,获取32bit第2轮DES加密输出差分,将差分结果4bit一分组分成8组。
4、输入差分第一组对应S1盒输入差分,输出差分第一组作为S1盒输出差分,输入差分第二组对应S2盒输入差分,输出差分第二组作为S2盒输出差分,以此类推,通过每个S盒的输入输出差分关系表获取每个S盒可能的输入值(明文异或子密钥后的值,这里用B表示)
5、将L2或者LL2做E盒运算,获取48bit输入明文,然后将48bit明文6it一分组分为8组,对应8个S盒。
6、将上一步获取的8组6bit输入明文中第一组明文跟和S1盒对应的所有B值依次异或,获取2轮S1盒的密钥猜测列表,依次类推,最终获取8个S盒的所有第2轮密钥猜测列表。
将以上操作进行5次累加操作后,获取一个比较大的密钥猜测列表:
第三步,对已获取的密钥猜测列表进行统计分析,统计列表共分为8组,默认每一组中出现频率最高的为正确密钥,将每一组中猜测的正确密钥转化为6bit二进制后再转化为16进制,依次拼接,获取48bit的16进制串,作为猜测的第二轮DES加密子密钥。
第四步,对上一步生成的48bit子密钥剩余8bit进行穷尽,然后置换为64bit,获取初始密钥,这个时候大家会发现我们猜测的初始密钥跟实际的初始密钥个别位置并不相同,不着急,我们接着进行测试。
第五步,使用第一步的密钥加密获取1000对明密文,然后使用第四步我们猜测获取的初始密钥对每一个密文进行解密,发现解密结果正确率100%,大家可以思考这是为什么。

欢迎关注赛格睿特的伙伴们在评论区留言想看的专题和想要探讨的内容哦!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hjln.cn/news/44968.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

pointer事件

需要同时处理PC端鼠标事件、移动端touch事件,用pointer事件吧! 参考:https://blog.csdn.net/qq_45472813/article/details/131484480

EXCEL不能访问.该文件可能是只读

大学教授的文档数据,分区误格式化,导致数据全部丢失。后来客户从网上下载免费数据恢复软件扫描,扫描出来以后大多打不开,提示:该文件可能是只读,不能访问,打开为乱码。客户将几个重要的文档发到我邮箱要求恢复。 打开文件,正如客户所描述,提示:不能访问“2009日报表.…

哪款工程项目管理系统最适合你?一文看懂顶级13款

本文将探讨12款顶尖的工程项目管理系统软件,帮助您选择适合自己团队和项目需求的最佳工具。国内外主流的13款工程项目管理系统软件:Worktile、中建软件、泛微建筑项目管理软件、LiquidPlanner、Wrike、建文软件、广联达、Microsoft Project、泛普软件、Procore、Buildertrend…

yrx21题webpack

整个webpack.js复制到本地,用global来接收s和t两个参数,然后缺什么补什么,运行停不下来把定时器设置空就行setInterval = function(){}

C++桶排序——详解

前言:现在中小学学习C++的人越来越多,可网上搜了搜桶排序的博文,发现大家都写得好深奥,于是,便有了这篇简单易懂(不是)的桶排序文章思考一下,你面前有一些不大的数字,但是它们是乱序的,请问你如何将它们排成有序的序列? 不妨,让我们把这些数字当成生活中常见的东西,…

2024.5.31

8-3 【Python0027】函数图形绘制分数 10全屏浏览作者 doublebest单位 石家庄铁道大学【题目描述】设,,,其中,完成下列操作:(1)在同一坐标系下用不同的颜色和线型绘制y1、y2和y3三条曲线;(2)在同一绘图框内以子图形式绘制y1、y2和y3三条曲线。 【练习要求】请给出源代…

单连接多路径,合并多服务器公网带宽---MPTCP---aggligator

https://sliphua.work/try-mptcp/#%E5%BC%80%E5%8F%91%E8%80%85%E6%8E%A5%E5%85%A5对单一连接进行拆分发送合并接收,有拓展传输层 TCP 的 MPTCP 标准,也有使用普通 TCP 自定义应用层协议来实现的纯上层工具。理论上来说,前者的上限更高,后者兼容度更广。 这几天分别尝试了一…

6.15 工程数学实验一

实验一:黄金分割法(0.618法)程序设计 一、实验目的通过一维寻优黄金分割法的程序设计,培养学生计算机的应用能力,并为今后无约束优化方法的学习和编程,奠定基础;掌握缩小寻优区间的黄金分割法。二、实验内容(1)请用0.618法求解优化问题:的极小点和极小值(进退法确定…