一、DES算法原理概述
二、分模块详细设计每一个模块
1、将明文与密文用二进制表示
2、初始置换
3、密钥生成(密钥置换)
4、轮迭代
(1)总体过程:首先关于轮迭代的过程如下图4.1所示,Li-1和Ri-1是上一轮的迭代的输出,上一轮的左边的输出与经过轮函数之后的输出结果进行异或运算得到当前轮的右边输出,左边的结果是上一轮的右边的输出:
图4.1
图4.5
P盒置换:将S盒的输出拼接得到32位的数据,对这些数据再一次进行置换,置 换表如下图4.6所示,置换之后的结果就是轮函数的输出结果:
图4.6
P盒置换算法如下图4.7所示:
图4.7
按照这样的方法不停的继续下去直到第16轮。在第16轮的时候要将L16和R16互换位 置。
5、逆初始置换
6、DES解密过程
三、数据结构
在设计的过程中为了方便使用将所有的数据类型都使用整数类型来表示,使用整数类型方便操作而且还不容易出错,只是在设计数组边界的地方需要小心一点,不然很容易出错。
四、小结
关于DES算法的设计首先要将大问题模块化,先实现每一个小的模块,然后再将小模块组合成为一个大模块,跟着老师上课所讲的思路走,按着那个思路来实现的话逻辑比较清晰也不容易出错。
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/233084.html原文链接:https://javaforall.net