DES算法及其在VC++6.0下的实现(下)

2016-01-29 12:13 33 1 收藏

DES算法及其在VC++6.0下的实现(下),DES算法及其在VC++6.0下的实现(下)

【 tulaoshi.com - C语言心得技巧 】

DES算法及其在VC++6.0下的实现(下)
作者:航天医学工程研究所四室 朱彦军

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com)

在《DES算法及其在VC++6.0下的实现(上)》中主要介绍了DES算法的基本原理,下面让我们继续:

二.子密钥的生成
64比特的密钥生成16个48比特的子密钥。其生成过程见图:


子密钥生成过程具体解释如下:
64比特的密钥K,经过PC-1后,生成56比特的串。其下标如表所示:

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com) PC-1 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
该比特串分为长度相等的比特串C0和D0。然后C0和D0分别循环左移1位,得到C1和D1。C1和D1合并起来生成C1D1。C1D1经过PC-2变换后即生成48比特的K1。K1的下标列表为:

PC-2

来源:https://www.tulaoshi.com/n/20160129/1485123.html

延伸阅读
VC6.0可谓是微软的王牌产品,它以强大的功能而赢得了广大程序员的爱好。而用VC的AppWizard、ClassWizard和其中的各种控件可以方便地建立应用程序。 本文就介绍用VC6.0自带的一个ActiveX控件----ActiveMovieControl Object,来建立自己的多媒体播放器。此多媒体具有一般的播放功能,能播放*.mp3,*.wma,*.mdi,*.wav,*.avi,*.dat等文件,还有R...
IBM的MARS加密算法实现(下) 作者:西安 吴真 IBM的MARS加密算法实现(上) 2.3 密文解密 用于密文解密的40个子密钥的生成和明文加密时的40个子密钥的生成方法相同. 2.3.1 第一步前向混合 输入的128位密文分成四块D[0],D[1],D[2],D[3],选取生成的40个密钥的最...
    提起3D文字制作,不少人会马上想到3D MAX等一些专门的3维制作工具,即使选用VC以编程的手段来实现也多是假手于OpenGL图形开发库来完成。熟悉OpenGL开发的编程人员一定对其初始化、材质以及灯光的渲染等一系列烦琐而又必要的编程过程深有感触。虽然通过以上的手段可以产生出包括3D文字在内的质感相当强的3维图形,但如果程序...
1. 在资源文件里选择插入,选择Custom,然后输入资源类型为24,不要输入其他的。 2. 将下面的XML代码拷入编辑器:  ?xml version="1.0" encoding="UTF-8" standalone="yes"?    assembly       xmlns="urn:schemas-microsoft-com:asm.v1"       manifestVersion="1...
1.在MFC应用程序中加入一个MFC Extension DLL 选择Project|Add To Project|New...菜单对话框中的Projects标签,点中MFC AppWizard(dll),取名为Single,其余默认。在MFC AppWizard-Step 1 of 1对话框中,选择MFC Extension DLL(using shared MFC DLL)。通过下面的步骤实现这个DLL。 2.实现共享数据和导出函数 用#prag...

经验教程

493

收藏

85
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部