您的位置:首页 > 其它

对称密码DES的算法口语化分析

2010-12-30 00:19 323 查看
计算安全:破解代价超过信息代价,破解时间超过信息有效期。

对称:

DES(64,有效位56)16轮加密;64位明文。(每轮1个子密钥48位)

IDEA(分组64字节,密钥128字节),8轮+输出置换(每轮6个子密钥16位,共52个子密钥)

AES(128,192,256) :字节代换,移位行10,混合列12,轮密钥加14。

非对称:RSA,1976年DH提出【文革结束】,77年出来RSA

密码设计原则:1949 共和国建国 shannon
混淆:密钥和明文与密文之间的依赖关系相当复杂,以至于这种复杂性对分析者无法use

扩散:每个明文字节尽可能影响多个密文字节。

典型的对称密码分析方法:差分(选择明文攻击)+线性(已知明文攻击)。

简介DES的加密方法,口语请勿见怪
1
初始置换:按一个置换表把64位明文分为LPT和RPT两部分(左右都32位)
2轮

1密钥置换:54位有效密码再分为16个48位子密钥,每一轮用1个
2扩展置换:既然密钥都48位了,先进行代换的RPT部分怎么地也要扩展啊,如何扩展呢?先把32分8份,每份4个,只要这4个变成6个不就可以了么,怎么变?简单,每份开头加上上一份的结尾,结尾加上下一份的开头位,就这么简单。变成48位后和前面轮到的子密钥xor。
3S盒代换:核心啊,核心,只有这一部分是非线性的,des的灵魂,它要把扩展的48位再变为32位。它是如何实现的呢?其实也不复杂,前面我们已经得到了48位xxoo后的密文,分为8份,每份6位,然后这6位中,我们选第一位和第六位组成一个数字,比如(11)=3,然后再选2,3,4,5位组成一个数,如(1101)=13,这出来的两个数字有什么用呢?其实S盒提供了8个4*16的数组,这个数组里面的数字都是>=0,<16的整数,呵呵,why?太nb了,这每个十进制的数字变成二进制不就是4位二进制内么,但是怎么选呢?easy,前面的两个数字3和13就代表行,列,但是每次是哪个S盒的数组呢?按顺序来吧。
这样6位变成4位后,总长就由48位变成32位,ok
4P盒置换:有个表,对着换就可以了
3

末置换
补充前面:在轮环节,16轮每次开始的LPT和RPT是这样指定的,第一次就不用说了,先让RPT上,去经历4层功力训练,最后修炼成功后的RPT与LRT xor下,把这个新的值当做下一轮的RPT,但是下一轮的LRT是谁呢?呵呵,用上一轮的RPT是也。明白?明白。
言归正传:末置换easy,照着一个表换换就可以了
经过我们上面的分析,哥昨天看的算法,今天靠着回忆写的,应该还很是easy理解吧。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: