赞
踩
目录
DES是一种明文分组64bit,密钥长度64bit,有效密钥长56bit,输出密文64bit,进行16轮迭代的对称分组加密算法,des算法有三个入口参数:key(密钥),mode(工作模式,即加密or解密),data(明文)
3.1.初始置换
初始ip置换是指,将64位明文按照规定的置换表进行重新排序,
即,原文的58位置换后为第一位,原文50位为置换后第二位...
置换完成后将64位明文对半分成左右两边部分各32位
3.2.f轮函数
将32位明文和密钥一起重复16轮f轮函数运算(f函数稍候详讲),在f函数出口处交换左右部分明文目的是让两部分明文都能与密钥一起参与到f函数运算。
3.3将经过16轮迭代的明文通过IP逆置换得到64位密文
f函数有四个部分:e扩展;异或运算;s盒压缩;p盒置换
4.1e扩展
经过初始置换的明文分成左右两部分后,首先是右部分32位参与f函数运算,由于要和28位的密钥异或运算,所以将密钥扩展到32位
4.2 异或运算
将扩展后的明文28位(48位对半分) 与28位密钥异或运算
4.3 s—盒压缩
压缩规则:
1.第几组查第几个表。
2.首尾组合转换为二进制作为查表的行。
3.中间四位转十进制的结果为列 。
4.找到表中代换数后转为二进制即为结果。
s盒是共八个s1,s2.....s8。都是四行十六列的表。
4.4 p盒置换
类似与第一步的IP置换,只是使用的不同的置换表
5.1 去奇偶校验位
用户输入的64位密钥分成6组,每组最高位(第8,16,24,32,40,48,56,64位)作为奇偶校验位保证密钥的正确性(统计每个字节的1的个数,奇数个将校验位设置为0,再次统计核验奇偶位确认密钥是否正确)
5.2置换选择pc-1
去掉校验位的56位密钥根据pc-1表置换
置换后的密钥对半分为左右两部分C0,D0各28位
5.3 循环左移
将28位C0/D0进行循环左移,左移位数由轮数决定(第1,2,9,16轮左移一位,其他左移两位)
左移一位后,第一位到最后一位,第二位到第一位。
5.4 置换选择pc-2
将左移后的28位密钥C/D合并位48位,按pc-2进行置换得到K1,K1复制两份一份与32位明文参与f函数运算,一部分重新参与密钥生成过程,产生K2
将16迭代后的64位明文进行IP逆置换输出64位密文。
加密,解密过程(就是用不同密钥进行三次des加密)
8.1 工作模式:由于des是对称加密,加密解密使用的是相同密钥,所以本质上加密解密没有区别,加密将密钥正序加入算法,解密则将密钥逆序加入(加密先使用k1,解密先使用k16)这点详细原理可以参考feistel结构特点。
8.2 3des为什么采用加密解密加密,而不是加密加密加密
三次加密,是重复对称的操作,容易被暴力破解,但加密解密加密增加了复杂性,安全性更高。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。