網絡信息安全學習筆記之分組密碼與數據加密標準DES

  • 分組密碼是一種加密解密算法,將輸入明文分組當作一個整體處理,輸出一個等長的密文分組
  • 分組密碼一般採用Feistel結構,有許多相同的輪函數組成,每一輪裏對數據的一半進行代換,然後置換數據的兩個部分,拓展初始的密鑰使得每一輪使用不同的子密鑰
  • DES是應用最廣泛的分組密碼

乘積密碼:由香農引進,基於替代和置換兩個基本操作

香農認爲,應對基於統計分析的密碼破譯,必須對明文采用擴散混淆兩種處理

擴散使得明文結構消失,混淆使得明文和密文關係更加複雜

一、分組密碼

  • 分組加密器的本質是一個巨大的替換機
  • 64位的分組就有2^64種輸入
  • 採用乘積加密的思想,即輪流使用代替和置換
  • 大多數基於Feistel密碼結構

1.Feistel密碼結構的設計動機

分組密碼對n比特的明文進行分組操作,產生一個n比特的密文分組,共有2^n個不同的明文分組,每一種都必須產生一個不同的密文分組,這種變換稱爲可逆的或者非奇異的

可逆的是一對一前後可以互相推,多用於加密解密等場所

不可逆的是多對一,只能單向進行,常用於生成摘要,確保傳輸完整性

正是由於生成摘要有多對一的特性,容易導致篡改,因此又引入數字簽名確保摘要的對應性

2.Feistel密碼結構

3.Feistel加密器設計原則

  • 分組長度:分組越長安全性越高,但是加密解密效率越低,常取64位
  • 密鑰長度:越長越安全,但是加密解密效率越低,128是常用長度
  • 迭代次數:迭代次數越多越安全,通常取16次
  • 子密鑰產生算法:越複雜密碼分析越困難
  • 輪循環函數:越複雜抗密碼分析能力越強

解密:以密文作爲算法的輸入,以相反的次序使用密鑰

二、數據加密標準DES

1.細節

  • 將明文分成左右兩部分    Li = R(i–1)   Ri = Li–1 xor F(R(i–1), Ki)
  • 使用置換表將32位右半部R拓展爲48位
  • 與48位子密鑰做異或
  • 48位結果送給8個S-盒(做替換),得到32位結果
  • 使用32位置換表P,把32位結果再進行一次置換

2.S盒

八個將6位數據映射成四位數據的S盒

64的映射規則是

  • l外側的第1位和第6位用作行選擇
  • l其餘4(2-5bit)用作列選擇
  • l這樣每盒就有416列,輸出4位,8S盒輸出32

 

3.DES安全強度

安全強度很大程度上取決於密鑰長度,但是隨着計算機運算能力的提升,窮舉搜索的能力也越來越高,因此引入多重DES算法

4.雙重DES

多重加密的最簡單形式就是進行兩次加密,每次使用不同的密鑰

C=Ek2(Ek1(P))

P=Dk1(Dk2(C))

所以密鑰長度是56 * 2=112位

 

雙重DES容易遭遇中途相遇攻擊meet-in-the-middle

只要連續使用兩次密碼這種攻擊總是有效

因爲X=Ek1(P) = Dk2(E),所以從兩端分別向中間推導尋找匹配的X值

5.使用兩個密鑰的三重DES

C=Ek1(Dk2(Ek1(P)))

如果k1=k2,則相當於單重DES,已用於密鑰管理標準

目前還沒有針對三重DES可行的攻擊方法

注意:三重DES一定是加密解密過程交替的,即在表達上一定是EDE或者DED形式,三個過程也可以採用三個不同的密鑰

後來發展出高級加密標準AES

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章