Record Studying

des加密算法学习简要笔记

Des算法:
Des算法是一种标准的对称加密算法,其精华就是把明文经过一系列的复杂变化后搞的面目全非,一般在不知密码的情况下要把它的恢复很难。
算法可以由四个部分描述:1.获取16个子密钥 2.初始置换置换函数ip  3.加密函数f 4.末置换函数
 
一下是分解动作:
1.获取16个子密钥:
密码是64位的布尔值,经过以下步骤得到16个48位的字密钥:
(1)去掉每个第八位,然后通过置换表,得到56位的子密钥
(2) 分成前后28位
(3)根据表对前后28为进行1~16轮的1或2位的循环
(4)移位后,再将两部分合并成56位,然后通过压缩置换得到48位子密钥
 
2.初始置换函数:
 
就是把64位的明文根据置换表置换成56位的明文,然后分成左右两部分
 
3.密码函数f

 

密码函数F的输入为32位的数据和48位的子密

   E是扩展置换,把32位部分明文扩展成48位再与48的子密钥抑或,再经过s盒转化,成32位输出,最后再经过一个置换(p盒)就得到了密码函数的输出了。

   然后把密码函数的输出跟初始置换后的左边32位抑或,结果作为新明文的后边,原右边作为新左边。

  然后用16个子密钥重复上面的行为。

    s盒的过程:把48位分成8个6位,取6位的第一位和最后一位,这两位组成的数作为s盒的行,其他三位作为列,知道行列后就在s盒表中查到对应的的数,这个数是4位的,就用这个4位的数代替该6位的数。所以最后出来的是32位了。

 

 

4.f函数后,重组左右部分,得到64位,再一次末置换就得到了用des加密后的密文。

 

 

DES对称加密算法归纳总结:

(i)                                        子密钥生成

C[0]D[0]=PC-1(K)

for 1<=i<=16

{

 C[i]=LS(i)(C[i-1])

 D[i]=LS(i)(D[i-1])

 K[i]= PC-2(C[i]D[i])

}

(ii)                                    加密过程

L[0]R[0]=IP(x)

for 1<=i<=16

{

 L[i]=R[i-1]

 R[i]= L[i-1]XOR f(R[i-1],K[i])

 }

c=IP-1(R[16]L[16])

 

(iii)                                解密过程:置换是逆置换

R[16]L[16]=IP(c)

for 1<=i<=16

{

R[i-1]=L[i]

L[i-1]=R[i]XOR f(L[i],K[i])

}

              x=IP-1(L[0]R[0])

 

 

 

 

 

 

 

 

 

posted on 2007-01-11 18:28 zijian 阅读(410) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航: