电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

DES加密算法详解

DES加密算法详解_第1页
1/25
DES加密算法详解_第2页
2/25
DES加密算法详解_第3页
3/25
DES 加密算法详解- - 对加密解密一直挺喜欢的,可还是没有怎么好好学习过,希望这是一个好的开始。 在网上搜了一下关于 DES 的说明,发现有些杂乱,所以还是有必要整合一下。 写了一点代码,还没有完成,不过,还不能编译通过,^_^ 刚看了一下,发现还是说得够模糊的,有机会再整理一下。 昏倒,一直运行不对,今天才仔细查出来,原来问题是出在 Des_Data_P(const _b32& input, _b32 output), 我的output 用了传值调用,失败呀。应该是Des_Data_P(const _b32& input, _b32& output) DES 算法的入口参数有三个: Key, Data, Mode Key 为 64bit 密钥, Data 为 64bit 数据,Mode 为加密还是解密。 DES 算法的过程: 1. 对输入的密钥进行变换。 用户的64bit 密钥,其中第 8, 16, 24, 32, 40, 48, 56, 64 位是校验位, 使得每个密钥都有奇数个1。所以密钥事实上是56 位。对这56 位密钥进行如下表的换位。 57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18, 10, 2, 59, 51, 43, 35, 27, 19, 11, 3, 60, 52, 44, 36, 63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 22, 14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 28, 20, 12, 4, 表的意思是第57 位移到第1 位,第49 位移到第2 位,...... 以此类推。变换后得到56bit 数据,将它分成两部分,C[0][28], D[0][28]。 2. 计算 16 个子密钥,计算方法 C[i][28] D[i][28]为对前一个 C[i-1][28], D[i-1][28]做循环左移操作。16 次的左移位数如下表: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 (第i 次) 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1 (左移位数) 3. 串联计算出来的C[i][28] D[i][28] 得到56 位,然后对它进行如下变换得到48 位子密钥 K[i][48] 14, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21, 10, 23, 19, 12, 4, 26, 8, 16, 7, 27, 20, 13, 2, 41, 52, 31, 37, 47, 55, 30, 40, 51, 45, 33, 48, 44, 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32, 表的意思是第14 位移到第1 位,第17 位移到第2 位,以此类推。在此过程中,发现第9,18,22,25, 35,38,43,54 位丢弃。 4. 对 64bit 的明文输入进行换位变换。换位表如下: ...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

DES加密算法详解

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部