DES算法流程
初始置换IP

表格的使用方法: 将输入的64bit的明文从1开始标号,依次放入到IP初始置换表中数字对应的位置。填充完毕后,按照行优先的顺序从第1行开始依次读取获得输出。
16轮轮结构
整体结构
因为这16轮的操作都是一样的,所以这里我们只介绍第一轮的操作
将上一步经过初始置换IP后的64bit的结果平分为两部分(每部分32bit),分别记为\(L_0\) 和 \(R_0\)
对\(R_0\)进行一次F函数的变换并与\(L_0\)进行异或,结果作为\(R_1\),\(R_0\)作为\(L_1\)
即:
$ L_i = R_{i-1}$
\(R_i = L_{i-1} \oplus F(R_{i-1}, K_i)\)
进行下一轮
F函数
F函数是对\(R_i\)进行操作这一前提条件之后不再重复
E盒扩展

同初始置换IP的步骤相同,按照顺序将输入的\(32bit\)依次放入对应的位置,仍按照行优先输出,输出结果为\(48bit\)
E盒扩展结果与48bit的轮子密钥进行异或
S盒代替压缩
将\(48bit\)分为\(8\)组,每组\(6bit\),依次编号为\(B_1,B_2,...B_8\)
一共有\(8\)个S盒,依次编号为\(S_1,S_2,...S_8\)
\(B_i\)对应着使用\(S_i\)
考虑\(B_1\),\(B_1 = b_1b_2b_3b_4b_5b_6\),我们定义\(r = 2*b_1+b_6, c = 2^3b_2+2^2b_3+2b_4 + b5\)(即将二进制转化为十进制),我们去\(S_1\)盒中找到\(r\)行\(c\)列对应的十进制数,将其转化为4位二进制即为结果
参照\(B_1\)的方法,依次转化完余下\(5\)组,最终得到\(32bit\)的输出
p盒置换
使用下表进行p盒置换,使用方法和IP初始置换相同

逆初始置换
16轮轮结构最后得到64位的输出,使用逆初始置换表将数据进行重新编排,使用方法同IP初始置换

子密钥生成
- 置换选择
置换选择PC-1输入64bit的原始密钥,输出56bit
若输入为56bit,则需要在\(8, 16, 24, 32, 40, 48, 56, 64\) bit处分别插入\(0,0,1,0,0,0,1,0\) 变为64bit
使用下表格进行置换选择PC-1,仍然是按照先后顺序将原始序列中的每一位填入下表,表格中缺少8的倍数,从而将输入的64bit变为输出的56bit,读取时仍为行优先。

循环移位
将置换选择PC-1之后得到56bit的输出平分为两部分,各为28bit,即为\(C_0\), \(C_1\)
根据下标判断需要移动多少位

所谓循环移位是指将\(C_0\), \(C_1\)均看为一个循环的序列,左移1位将最左侧的一位移动到序列的尾部
eg: 1 0 0 1 -> 0 0 1 1
DES算法流程的更多相关文章
- AES算法,DES算法,RSA算法JAVA实现
1 AES算法 1.1 算法描述 1.1.1 设计思想 Rijndael密码的设计力求满足以下3条标准: ① 抵抗所有已知的攻击. ② 在多个平台上速度快,编码紧凑. ③ 设计 ...
- DES算法详解
本文主要介绍了DES算法的步骤,包括IP置换.密钥置换.E扩展置换.S盒代替.P盒置换和末置换. 1.DES算法简介 DES算法为密码体制中的对称密码体制,又被称为美国数据加密标准. DES是一个分组 ...
- 基于DES算法加密的防撞库密码系统项目总结
项目内容:基于DES算法加密的防撞库密码系统 小组名:zqhzkzkj 目标:1.对用户输入的8位字符进行DES加密,要求用户输入8位密钥 2.对于不同的网站,不同的用户名生成不同的密码 小组成员:周 ...
- MFC 简单实现 DES 算法
前言 徐旭东老师说过学者就应该对知识抱有敬畏之心,所以我的博客的标题总喜欢加上"简单"二字,就是为了提醒自己,自己所学知识只是皮毛,离真理还远矣. DES 算法 DES算法是密码体 ...
- 安全体系(一)—— DES算法详解
本文主要介绍了DES算法的步骤,包括IP置换.密钥置换.E扩展置换.S盒代替.P盒置换和末置换. 安全体系(零)—— 加解密算法.消息摘要.消息认证技术.数字签名与公钥证书 安全体系(二)——RSA算 ...
- Web安全学习笔记之DES算法实例详解
转自http://www.hankcs.com/security/des-algorithm-illustrated.html 译自J. Orlin Grabbe的名作<DES Algorith ...
- DES算法与四种加密模式的代码实现(C++语言)
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/Love_Irelia97/article/ ...
- IDAPython实战项目——DES算法识别
在CTF的逆向中我们需要的是找到加密的主函数,结合了yara的识别原理,通过对常量数组的引用的查找,一步步递归构建调用树.调用树根部就是可能的密码算法主函数. 由于这种办法需要常量分布于算法的各个步骤 ...
- 聊聊密码学中的DES算法
用心分享,共同成长 没有什么比你每天进步一点点更实在了 本文已经收录至我的github,欢迎大家踊跃star 和 issues. https://github.com/midou-tech/artic ...
- 对称加密算法之DES算法
数据加密标准(data encryption standard): DES是一种分组加密算法,输入的明文为64位,密钥为56位,生成的密文为64位. DES对64位的明文分组进行操作.通过一个初始置换 ...
随机推荐
- dead code?
public static void main(String[] args) { DriverBase dbase = new DriverBase(); dbase.driverBase(); dr ...
- 第一课 基本的DOS命令
常见的DOS命令 1.#切换盘符 F: 2.#查看当前目录下所有文件 dir 3.#切换目录 cd change directory cd ..返回上一级 4.#清理屏幕 cls {clear scr ...
- uiautomator2自动化工具的下载与安装
前言: 相信很多使用appium做过APP自动化的人都深有感触: 1,安装麻烦,配置环境可能会难道不少人 2,appium运行慢.时间长 3,uiautomatorviewer定位元素时得关掉appi ...
- MeanShift 均值漂移算法
MeanShift, 它常被用在图像识别中的目标跟踪,数据聚类.分类等场景
- node16 以上版本不能安装 node-sass
最近多次遇到这个问题,node16+版本安装或者初始化带有node-sass和sass-loader包的项目报错. 方法一: 卸载旧版本的node-sass和sass-loader,安装sass和sa ...
- 英国延长 UKCA 标记截止日期
政府于 2022 年 11 月 14 日宣布,企业将有 2 年的时间来应用新的 UKCA 产品标记.在 2024 年 12 月 31 日之前,企业可以选择使用 UKCA 或 CE 标志,之后企业只能使 ...
- 4组-Beta冲刺-总结
组长博客链接 一.基本情况 1.1现场答辩总结 柯老师的建议: 1.美工可以考虑再增加人员. 答:美工后续会增加人员,来实现产品更加成熟和美感的体现. 2.评论的界面,书写框太大了,可以参考现实中一些 ...
- Think in UML 其二
UML基本元素 参与者 1.参与者位于系统边界之外. 思考参与者究竟是谁时,以下两个问题有助于了解 ·谁对系统有着明确的目标和要求并且主动发出动作? ·系统是为谁服务的? 2.参与者可以非人 功能性需 ...
- Web_Servlet和jsp页面数据交互,通过请求转发在jsp中显示数据
1.Servlet页面代码 /* 实现jsp页面和sevlet页面的信息交互 */ @WebServlet(urlPatterns = "/aa") public class Js ...
- Oracle_20200416
PLSQL 新建普通用户 1.使用system登录 2.File-->NEW-->SQL WINDOW 3.执行语句 --创建用户 --create user 用户名 identified ...