欢迎来到天天文库
浏览记录
ID:20597360
大小:125.50 KB
页数:8页
时间:2018-10-14
《实验3_1:des加密算法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验三DES加密一、项目编号:3二、实验课时:2学时三、实验目的:掌握DES加密算法,加深对对称密码体制的了解,为深入学习密码学奠定基础。四、实验环境Windowsxp;windows7五、实验内容1.DES加密加密明文:abcdefgh密钥:abcdefgh把加密后的密文写成十六进制的表示形式。六、操作步骤及要点例如:加密明文:whateverabcDefghijklm979899100101102103104105106107108109nopQrstuvwxyz11011111211311411511611
2、7118119120121122密钥:whatever(1)首先,把字母转换成数字编码,也就是ASCII码(十进制),再把十进制的ASCII编码,转换为8位的二进制(最高位补零),例如:a的ASCII码是97,要转换为01100001。v26个小写英文字母与ASCII码对照表whate0111011101101000011000010111010001100101ver011101100110010101110010因此M=“01110111011010000110000101110100011001010111
3、01100110010101110010”(2)把明文全部写成二进制数后,开始分组,64位为一组。(3)对每个分组,利用IP置换表进行置换得到64位的M0=IP(M)=L0+R0IP置换表如下:说明;初始置换:将明文的第58位换到第1位;第50位换到第2位;第42位换到第3位;第1位换到第40位利用IP表置换后得到M0=“1111111110101001011110010101010100000000111111110000001010100001”L0=“1111111110101001011110010101
4、0101”R0=“00000000111111110000001010100001”(4)开始一轮运算。运算规则:L1=R0R1=L0⊕F(R0,K1)求得L1=“00000000111111110000001010100001”想要求得R1,需要以下几步:l第i轮的运算过程如下图所示:1.上轮的右半部分就是本轮的左半部分Li。2.求函数F(Ri-1,ki)关于函数F:具体包括以下几个步骤(1)首先先将Ri-1(32位)经过一个扩展置换,根据扩展置换表(E表),扩展为48位。扩展置换表如下:对R0进行扩展置换得到
5、48位R0=“100000000001011111111110100000000101010100000010”(2)求子密钥Ki,运算过程如下:l具体求解步骤如下:1)先将64位的密钥K,经过一次置换选择PC-1,变为56位。置换选择表1PC-1如下:whate0111011101101000011000010111010001100101ver011101100110010101110010因此K=“0111011101101000011000010111010001100101011101100110010
6、101110010”经过PC-1之后,K0=“00000000111111111111111110101010000101111011000000101001”C0=“0000000011111111111111111010“D0=“1010000101111011000000101001”2)将这56位的密钥平均分为左右两部分,C0和D0,分别对这两部分进行循环左移,循环左移的位数根据轮数决定,每轮移动的次数对C0循环左移1位,得到C0=“0000000011111111111111111010“对D0循环左移
7、1位,得到:D0=“0100001011110110000001010011”1)将循环左移后的Ci和Di,连接在一起(56位),经过一个置换选择2,表PC-2,压缩为48位。PC-2将C0和D0连在一起得到Kt=“00000000111111111111111110100100001011110110000001010011”经过PC-2后,得到K1为:K1=“111100001011111000101110010101110000001100011000”(3)根据第(2)步求得的密钥,将Ri-1和Ki进行异
8、或运算,得到一个48位的值。R0=“100000000001011111111110100000000101010100000010”K1=“111100001011111000101110010101110000001100011000”R0⊕K1=“011100001010100111010000110101110101011000011110”(4)将第(3)步所得
此文档下载收益归作者所有