赞
踩
1.历史来源:DES(数据加密标准)算法是早在1970年研制出来的算法,属于分组算法。容易被穷举攻击。
2.简单描述:DES以64位二进制明文为明文数据,对明文数据进行加密,输出64位密文。DES密钥实际位56位,并顺序平均分为8组,但每组最后一位添加1位奇偶校验位,这是为了保证密钥的正确性,所以也可表示位64位。DES的加密步骤主要是换位、替换、异或等变换。
3.步骤描述:
1)初始置换。对输入的64位二进制明文按照 初始置换表 进行明文顺序的置换,初始置换表中的数字 代表明文中该数字位 被置换到了表格所在位置。
2)明文分组。将置换后的明文,按顺序分为左右两组,每组32位。
3)密钥置换。这里来处理密钥,以56位密钥为基础,使用密钥置换表,置换密钥的顺序。
4)密钥分组、移位、合并。将密钥按顺序分为左右两组,并结合密钥循环迭代表按迭代次数进行密钥的左移变换(左右两组分别单独进行左移变换),然后将左右密钥合并。
5)密钥产生子密钥。让上一步的密钥产生子密钥,就是将长密钥转换压缩为短密钥,将原来的56位密钥压缩转换为48位密钥。这一步需要用到密钥压缩置换表,使用该表进行压缩步骤。
6)明文扩展置换。这一步是对一半明文的处理,将明文数据的右半部分(32位)扩展成48位,为什么要扩展成48位,因为要和上一步密钥压缩过后的48位子密钥进行运算。
7)48位子密钥和扩展置换后的48位明文进行异或运算。
8)S盒代替。将第7步产生的数据送进S盒代替。将48位数据分为8组,每组6位,分别送入S盒代替,最后变成每组4位,再拼接起来变成32位。S盒代替的原理是一组6位二进制数据‘a1a2a3a4a5a6’送入S盒,将a1a6转换成十进制,得出得结果为S盒代替表的行号,将a2a3a4a5转换为十进制,得出的结果为列号,最后这一组的替换结果就是S盒代替表中行列对应下来的那个值(十进制)的二进制形式(4位二进制)。
9)P盒置换。将S盒输出的32位按照P盒置换表进行置换。
10)P盒置换结果与明文左半部分进行异或运算,得到新的分组的右半部分。
11)将明文的右半部分作为新分组的左半部分。
12)重复4~11步,重复16轮。
13)逆初始置换。将16轮DES运算结果输出的左右合并起来,形成64位,再做一次逆初始置换,得到最终密文。
明文变化图:
扩展:因为DES算法易于击破,有双重DES盒三重DES变形。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。