- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据加密标准DES(ata Encryption Standard)算法是由美国IBM公司研制的一种分组密码算法,一迭代分组密码。DES是一使用最为广泛的加密算法,虽然DES出现后又产生了许多常规加密算法,但DES仍是此类算法中最重要的一。
在正式讨论DES算法之前,为了更好的理解算法的实际工作过程,我们先来看一个简化的DES算法,以此加深对DES算法的理解。一、DES加密算法
简化的DES加密算法是以8bit的明文分组和10bit密钥作为输入,产生8bit密文分组作为输出。
1、加密
图6.9 简化的DES的加密过程
2、加密算法构成:
简单DES的加密算法包括4个基本函数:初始置换函数IPfk函数SW置换函数逆置换函数IP-1。
初始置换函数初始置换IP是将明文中数据的排列顺序按一定的规则重新排列,而生成新的数据序列的过程。如图6.10所示:
【IP置换2 6 3 1 4 8 5 7
图6.10 简单DES的初始置换
例:设8bit数据,则初始置换的结果为:
fk函数fk函数是多个置换函数和替代函数的组合函数。fk函数将输入它的8bit数据行分组,分成左4位和右4位,然后进行运算fk函数(,)函数是fk函数的核心函数,其中SK是子(,)函数的运算方法如下:fk(L,R)=(L⊕F(R,SKR)输入的左边4位分组R:输入的右边4位分组⊕:逐位异或
①扩展/置换是将4bit输入数据经过置换和扩展而产生8bit数据的算法E/P扩展置换
E/P扩展置换后 4 1 2 3 2 3 4 1
图6.11 简单DES的扩展/置换
②经扩展置换所得的8位数据与8位子密钥SK逐位异或
异或运算如图6.12所示。
A ⊕ B
? 结果 0 1
0 0
1 0
1 1 1
0
1
0 ⊕
B:1 0 1 0 0 1 0 0
异或运算的结果:0 1 0 0 1 1 1 1
③S盒输出
DES算法使用两个S盒S0和S1。如图6.13所示。其运算方法是将4bit数据输入S盒,第和第,这个用来指定S盒的行。第和第,这个用来指定S盒的列。对应S盒中该行该列的S盒的2bit输出。
1 0 3 2 0 1 2 3
3 2 1 0 2 0 1 3
0 2 1 3 3 0 1 0
3 1 3 2 2 1 0 3
图6.13 S盒
图6.14 S盒运算
④P4置换由S0和S1产生的4bit数据经P4置换,产生4bit数据的输出。P4置换的方法如图6.15所示。
P4置换
置换后数据位置: 2 4 3 1
图6.15 P4置换?
()交换函数()
交换函数是将输入数据的左四位与右四位交换位置之后产生8bit数据的输出。其运算方法如图6.16所示。
()逆置换函数
逆置换函数是将输入数据置换为8bit数据输出。其运算方法如图6.17所示。
IP-1 置换
置换后位置: 4 1 3 5 7 2 8 6
?? 图6.17 逆置换函数IP-1
3、子密钥生成
DES的密钥是使用一个发送方和接收方共享的10bit密钥。运算中使用的两个8bit子密钥就是这个10bit密钥生成。
(1)子密钥生成简化DES的两个8bit子密钥的生成过程如图6.18所示
(2)算法构成
简DES的子密钥生成算法主要由置换函数和置换函数这两个置换函数加上循环左移构成。设10bit数据从左到右依次为(k1,k2,k3,k4,k5,k6,k7,k8,k9,k10)则置换方式如图6.19所示。
P10(k1,k2,k3,k4,k5,k6,k7,k8,k9,k10)(k3,k5,k2,k7,k4,k10,k1,k9,k8,k6,)
P8(k1,k2,k3,k4,k5,k6,k7,k8,k9,k10)=(k6,k3,k7,k4,k8,k5,k10,k9)(3)子密钥生
例:设密钥为1010000010 ,则子密钥的生成过程如图6.20所示。
加密过程举例
设8
文档评论(0)