DES加密算法分析(2)
陕西理工学院毕业论文(设计)
28 29 30 31 32 1 ki是由64比特的初始密钥(亦称种子密钥)导出的第i轮子密钥,ki是48比特
DES算法的关键是f(Ri-1,ki)的功能,其中的重点又在S-盒(Substitution Boxes)上。F函数的输出是32比特。
图2.3 F函数计算过程图
将R经过一个扩展运算E变为48位,记为E(R)。计算E(R)?K=B,对B施行代换S,此代换由8个代换盒组成,即S-盒。每个S-盒有6个输入,4个输出,将B依次分为8组,每组6位,记B= B1B2B3B4B5B6B7B8其中Bj作为第j个S-盒的输入,其输出为Cj,C= C1C2C3C4C5C6C7C8就是代换S的输出,所以代换S是一个48位输入,32位输出的选择压缩运算,将结果C再实行一个置换P(表4),即得F(R,K)。
其中,扩展运算E与置换P主要作用是增加算法的扩散效果。S-盒是DES算法中唯一的非线性部件,当然也就是整个算法的安全性所在。它的设计原则与过程一直因为种种不为人知的因素所限,而未被公布出来。
S-盒如下表[7]:
表2.4 S-盒函数 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13
10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 8 S3 13 7 0 9 3 4 6 10 2 8 5 14 12 11 15 1 13 6 4 9 8 15 3 0 11 1 2 12 5 10 14 7 1 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12
第6页共21页
15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 10 0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15 13 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9 S2 3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 5 S1 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8 陕西理工学院毕业论文(设计)
7 13 14 3 0 6 9 10 1 2 8 5 11 12 4 15 S4 13 8 11 5 6 15 0 3 4 7 2 12 1 10 14 9 10 6 9 0 12 11 7 13 15 1 3 14 5 2 8 4 3 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14 2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 9 4 5 1 11 10 13 7 8 15 9 12 5 6 3 0 14 11 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3 12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 11 9 14 15 5 2 8 12 3 7 0 4 10 1 13 11 6 4 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13 4 11 2 14 15 0 8 13 3 12 9 7 5 10 6 1 S7 13 0 11 7 4 9 1 10 14 3 5 12 2 15 8 6 1 4 11 13 12 3 7 14 10 15 6 8 0 5 9 2 6 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12 13 2 8 4 6 15 11 1 10 9 3 14 5 0 12 7 7 11 4 1 9 12 14 2 0 6 10 13 15 3 5 8 2 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11 S8 1 15 13 8 10 3 7 4 12 5 6 11 0 14 9 2 S6 10 15 4 2 7 12 9 5 6 1 13 14 0 11 3 8 S5 14 11 2 12 4 7 13 1 5 0 15 10 3 9 8 6 S-盒的置换规则为:
取{0,1,?,15}上的4个置换,即它的4个排列排成4行,得一4*16矩阵。若给定该S盒的6个输入为b0 b1 b2 b3 b4 b5,在Si表中找出b0 b5行,b1b2 b3b4列的元素,以4位二进制表示该元素,此为S-盒Si的输出[7]。
例2.1 S2的输入为101011,
b1 =1,b6=1,b1 b6=(11)2=3 (b2 b3 b4 b5)2=(0101)2=5
查S2表可知第3行第5列的输出是15,15的二进制表示为1111。 则S2的输出为1111。8个S-盒的代换方式都是一样的。
S盒输出的32比特经P置换,P置换的功能是将32位的输入,按以下顺序置换,然后输入仍为32比特。P置换的顺序如表2.5[7]:
表2.5 置换P 16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10 2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25 第7页共21页
陕西理工学院毕业论文(设计)
2.2.4 子密钥的生成
初始密钥K(64bit) PC-1 C0(28bit) D0(28bit) LS1 LS1
C1 D1 PC-2 K1 LS2 LS2 . . .
LS16 LS16 C16 D16 PC-2 K16 图2.4 DES子密钥生成流程图
图2.4给出了子密钥产生的流程图。首先对初始密钥经过置换PC-1(表2.6[7]),将初始密钥的8个奇偶校验位剔除掉,而留下真正的56比特初始密钥。
表2.6 密钥置换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 然后将此56位分为C0,D0两部分,各28比特,C0,D0如下:
C0=k57k49??k44k36 D0=k63k55??k12k4
然后分别进行一个循环左移函数LS1,得到C1,D1,将C1(28位),D1(28位)连成56比特数
第8页共21页
陕西理工学院毕业论文(设计)
据,再经过密钥置换PC-2(表2.7)做重排动作,从而便得到了密钥K1(48位)。依次类推,便可得到K2,K3??K16。
表2.7 密钥置换PC-2 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 [7]
其中LS1(1≤i≤16)表示一个或两个位置的循环左移,当i=1,2,9,16时,移一个位置,当i=3,4,5,6,7,8,10,11,12,13,14,15时,移两个位置。
2.3 DES算法的解密过程
DES算法的解密过程跟加密过程是一样的,区别仅仅在于第一次迭代时用密钥k16,第二次k15、??,最后一次用k1,算法本身没有任何变化。
3.DES算法用C++语言实现
3.1设置密钥函数des_setkey()
此函数的功能是由64比特的密钥产生16个子密钥ki。首先将密钥字节组key[8]转换为64比特的位组,然后进行密钥变换PC-1(祥见PC-1置换表),置换后得到56比特的密钥,把变换后的密钥等分成两部分,前28位记为C0, 后28位记为D0。将C0,D0进行LS1运算,LS1是循环左移运算。得到C1 ,D1,最后将其进行PC-2置换(见PC-2置换表),得到子密钥k1.然后依次按循环左移LSi(I=2~16,循环次数见循环左移规则), PC-2置换得到k2~ k16。 void des_setkey(const char key[8]);
static void f_func(bool in[32],const bool ki[48]);//f函数 static void s_func(bool out[32],const bool in[48]);//s盒代替 //变换
static void transform(bool *out, bool *in, const char *table, int len …… 此处隐藏:3258字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [综合文档]应答器设备技术规范(征求意见稿)A1
- [综合文档]教师 2012年高考政治试题按考点分类汇
- [综合文档]保险公司的总经理助理竞职演说
- [综合文档]卫生应急大练兵大比武活动考试--题库(
- [综合文档]徐州经济技术开发区总体规划环境影响报
- [综合文档]汉语拼音表(带声调)
- [综合文档]二年级 上 思维训练( 1~18)
- [综合文档]特色学校五年发展规划
- [综合文档]机床经常出现报警“X1轴定位监控”
- [综合文档]《电子技术基础》21.§5—2、3、4 习题
- [综合文档]浙江省深化普通高中课程改革
- [综合文档]CRISP原理 - 图文
- [综合文档]2017年电大社会调查研究与方法形考答案
- [综合文档]浅析建筑施工安全毕业论文
- [综合文档]《回忆我的母亲》名师教案
- [综合文档]装饰装修工程监理规划
- [综合文档]三下乡心得体会-文艺
- [综合文档]柱计算长度系数 - 图文
- [综合文档]全流程思考,提高燃电系统热电转换率--
- [综合文档]2018年嘉定区中考物理一模含答案
- 433M车库门滚动码遥控器
- 8、架空线路施工规范
- 大学四年声乐学习的体会
- 新北师大版五年级数学上册《轴对称再认
- 部编版五年级上册语文第六单元小结复习
- 小学六年级英语形容词用法
- 第2课 抗美援朝保家卫国 课件01(岳麓版
- 2015年天津大学运筹学基础考研真题,考
- 微机计算机控制技术课后于海生(第2版)
- 安全教育实践活动
- Delphi程序设计教程_第1章_Delphi概述
- 第八讲 工业革命与启蒙运动
- 《中华人民共和国药典》2005年版二部勘
- 科粤版九年级化学2.3构成物质的微粒(1)
- 西师大版数学三年级下册《长方形、正方
- ch6_冒泡排序演示
- 第4章 冲裁模具设计
- 浙江中小民营企业员工流失论文[终稿]
- 再议有线数字电视市场营运模式
- 昆明供水工程监理大纲




