证明:DES解密算法是DES加密算法的逆
证明:
由于DES算法是在Feistel网络结构的输入和输出阶段分别初始置换IP和初始逆置换IP-1而构成的,其余DES和Feistel相同,IP和IP–1互逆。所以只需证明Feistel解密算法和加密算法可逆,然后再证IP和IP–1置换后即可证明DES解密算法的确是DES加密算法的逆。
根据书本得Feistel解密算法和加密算法的关系,解密过程第一轮的输入等于加密过程第16轮输出左右部分交换的值。最后一轮迭代后密文是LE16||RE16,首先对于加密过程有LE16= LE15,RE16= LE15⊕F(RE15,K16)
对于解密则有LD1= RD0= LE16= RE15,RD1= LD0⊕F(RD0,K16)=RE16⊕F(RE0,K16)= [LE15⊕F(RE15,K16)]⊕F(RE15,K16)
XOR运算有以下性质:(A⊕B)⊕C=A⊕(B⊕C),D⊕D=0,E⊕0=E
因此有LD1= RE15和RD1= LE15所以解密过程的第一轮输出为LE15|| RE15正是加密过程第16轮输入左右部分互换的值,对于其他轮亦是如此。
DES加密过程说明:64位明文经过初始值换IP重新排列,然后进行16轮函数作用,对于第i轮加密算法有:LEi= LEi-1,REi= LEi-1⊕F(REi-1,Ki)
因此描述了第i轮的输入是输出的函数。最后一轮的输出是LE0||RE0,左右交换的结果正是原始明文。证明Feistel解密算法和加密算法可逆。而16轮迭代后结果即是LE16||RE16 =LE0||RE0,左右交换得到明文RE0||LE0。所以DES解密算法是DES加密算法的逆。
作者:L_jun
链接:https://www.jianshu.com/p/d8b4a4f22aa1
来源:简书
证明:DES解密算法是DES加密算法的逆相关推荐
- 证明DES解密算法实际上是DES加密算法的逆
证明DES解密算法实际上是DES加密算法的逆 DES加密算法和解密算法如图: 如图,首先明文输入,进行第一轮的加密.RE0直接作为LE1,RE0与K1作用于轮函数F然后再与LE0疑惑作为RE1,这是第 ...
- python des解密_python实现DES加密解密方法实例详解
本文实例讲述了python实现DES加密解密方法.分享给大家供大家参考.具体分析如下: 实现功能:加密中文等字符串 密钥与明文可以不等长 这里只贴代码,加密过程可以自己百度,此处python代码没有优 ...
- ecc加解密算法 c++_ECC加密算法的基本介绍
前言 同RSA(Ron Rivest,Adi Shamir,Len Adleman三位天才的名字)一样,ECC(Elliptic Curves Cryptography,椭圆曲线密码编码学)也属于公开 ...
- C# DES加密解密算法
C# DES加密解密算法 #region DES Class /// <summary> /// ClassName: DES 加密类 /// DES加密.解密类库,字符串加密结果使用BA ...
- 分组密码算法与DES算法
目录 1 分组密码的含义 1.1 分组密码介绍 1.2 分组密码的含义 1.3 分组密码的要求 2 分组密码的设计思想 2.1 分组密码的设计思想 3 分组密码的基本特点 3.1 分组密码的基本特点 ...
- python des加密文件_Python DES加密解密方法 pyDes库 兼容中文
单纯记录一下Python中DES加密解密的使用方式直接看代码: 依赖pyDes库安装> pip install pyDes 约定秘钥 python和java 加密和解密联调,兼容中文字符串 Py ...
- Android金融支付常见加解密算法及安全防护
引言 因为本人从事的金融 IC 卡和移动支付相关的开发工作,在日常研发过程中,对 APP 信息安全防护方面尤为重视,所以现总结下金融支付相关的加解密算法以及常见的安全防范措施. Android 端常见 ...
- java加密与解密工具_cat: CAT,全称Cryptographic Algorithm Tool,是一款小巧的Java加密与解密算法调用工具包...
cat 一.介绍 cat:全称Cryptographic Algorithm Tool 主要提供以下加密算法调用: 1.AES 2.DES 3.DSA 4.MD5 5.MersenneTwister( ...
- DES加密解密算法Java实现
DES 使用一个 56 位的密钥以及附加的 8 位奇偶校验位,产生最大 64 位的分组大小.这是一个迭代的分组密码,使用称为 Feistel 的技术,其中将加密的文本块分成两半.使用子密钥对其中一半应 ...
最新文章
- 如何实现后台向前台传数据
- you have new email in /var/spool/mail/root/
- 从零开始学_JavaScript_系列(24)——查看对象属性,合并数组
- java源码 - ReentrantReadWriteLock介绍
- Hive表与hdfs文件关联
- mac ssh 安装mysql_mac上安装mysql
- centos下配置vsftpd
- 安装Windows Nano Server虚拟机
- python安装插件报错原因_Sublime Text3 python自动补全问题——Sublime Text3安装Anaconda插件...
- 【FLink】Flink 1.12 TaskManager 内存结构
- C++设计模式详解之适配者模式解析
- 单片机音乐芯片c语言程序,51单片机驱动MT8880双音频接收发送芯片C语言程序分享...
- xxx is not in the sudoers file 解决方案(转)
- 判断回文(0315)SWUST-OJ
- 快逸报表多数据源解决办法以及项目多数据源切换方法
- 书籍-Linux运维之道
- 矩阵相乘c语言代码用指针实现,矩阵相乘C语言实现
- 用html作小米官网首页效果,html+css实现小米商城首页静态页面
- 台式计算机无线接入,台式电脑可以无线连接wifi吗
- bat脚本使用winRAR命令行压缩文件