DES算法程序逆向分析

本文详细介绍了DES算法的加密过程,包括基本结构、密钥生成和F函数的运作原理。并通过逆向分析程序,解析了main函数结构、密钥生成和加密函数的实现,展示了DES算法在实际应用中的工作流程。
摘要由CSDN通过智能技术生成

DES算法程序逆向分析

一、DES算法简介

DES算法是对称加密算法中的一种,是一种常用的加密算法。

二、DES算法加密过程

1、基本结构

DES算法是一种分组加密算法,一次加密64bit明文,通过64位的初始密钥生成16个48位的子密钥,将明文进行初始置换后分为左右两组,每组32位。进行迭代加密的时候,将右32位作为下一轮迭代的左32位,而左32位与密钥进行加密以后成为下一轮迭代的右32位。设初始明文为L0R0,经过16轮迭代后变成L16R16,逆转为R16L16,再进行最终置换,获得最后的密文。

2、密钥生成

其中每轮当中的密钥都是由初始密钥生成的,初始密钥先要进行置换选择1,通过置换选择1将密钥变成56位,然后分为左右两个部分,然后进行循环左移,循环左移的位数是确定的,按顺序分别是1122222212222221,每轮左移产生一个密钥,分别参与各轮迭代;经过左移的密钥再通过一个置换选择2,将56位的密钥变成48位,和R进入F函数进行加密

3、F函数

接下来是F函数
F函数将R和密钥作为输入,然后输出32位;F函数先对R进行一个E扩展置换,将32位扩展至48位,然后和48位的密钥进行异或运算,将结果放进S盒进行计算,输出32位,最后进行一个P置换,位数不变,作为F函数的输出
S盒的计算方法如下:将48位分成8段,每段6位,将各段中首尾两位和中间四位作为S盒的“横坐标”和“纵坐标”得到对应坐标处的数字并变成4位的二进制数字,这样就完成了从48位到32位的转换

(以上图片全都找自百度百科,侵也不删(doge))

二、DES算法程序逆向分析

1.main函数的结构

用IDA打开desnc.exe,点开main函数

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值