DES算法结构.doc
- 文档编号:2501597
- 上传时间:2023-05-03
- 格式:DOC
- 页数:3
- 大小:87.50KB
DES算法结构.doc
《DES算法结构.doc》由会员分享,可在线阅读,更多相关《DES算法结构.doc(3页珍藏版)》请在冰点文库上搜索。
加密算法之DES算法
DES算法描述
DES是一个16轮的Feistel型结构密码,它的分组长度为64比特,用一个56比特的密钥来加密一个64比特的明文串,输出一个64比特的密文串。
其中,使用密钥为64比特,实用56比特,另8位用作奇偶校验。
加密的过程是先对64位明文分组进行初始置换,然后分左、右两部分分别经过16轮迭代,然后再进行循环移位与变换,最后进行逆变换得出密文。
加密与解密使用相同的密钥,因而它属于对称密码体制。
DES过程框图如下,假设输入的明文数据是64比特。
首先经过初始置换IP后把其左半部分32比特记为L0,右半部分32比特记为R0,即成了置换后的输入;然后把R0与密钥产生器产生的子密钥k1进行运算,其结果计为f(R0,k1);再与L0进行异或运算得到L0+f(R0,k1),把R0记为L1放在左边,而把L0+f(R0,k1)记为R1放在右边,从而完成了第一轮迭代运算。
在此基础上,重复上述的迭代过程,一直迭代至第16轮。
所得的第16轮迭代结果左右不交换,即L15+f(R15,k16)记为R16,放在左边,而R15记为L16放在右边,成为预输出,最后经过初始置换的逆置换IP-1运算后得到密文。
Feistel加密结构
DES算法采用Feistel密码结构,关于feistel网络结构框图如下
Feistel加密算法的输入是长为2w的明文和一个密钥K=(K1,K2...,Kn)。
将明文分组分成左右两半L和R,然后进行n轮迭代,迭代完成后,再将左右两半合并到一起以产生密文分组。
其第i+1轮迭代的函数为:
其中Ki是第i轮的子密钥,“”表示异或运算,F表示轮函数。
一般地,各轮子密钥彼此各不相同,且轮函数F也各不相同。
代换过程完成后,在交换左右两半数据,这一过程称为置换。
DES的解密过程
DES的解密过程与加密过程共用了同样的计算过程。
两者的不同之处仅在于解密时子密钥ki的使用顺序与加密时相反。
如果加密的子密钥k1,k2,…,k16,那么,解密时子密钥的使用顺序为与k16,k15,…,k1。
即:
用DES解密时,将以64位密文作为输入,第一轮迭代使用子密钥k16;第二轮迭代使用子密钥k15,…,第16轮迭代使用子密钥k1,其他运算与加密时一样,最后输出的便是64位明文。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DES 算法 结构