期末複習:信息安全(三)

🎯對稱密碼體制
單密鑰系統的加密密鑰和解密密鑰相同,或實質上等同,即從一個易於得出另一個。
(舉例:DES,Triple DES,IDEA,AES,RC5,CAST-2018)

  • 分組密碼算法
    明文被分爲固定長度的塊,即分組,分組一般爲64比特,或者128比特。
    對每個分組用相同的算法和密鑰加/解密。
    密文分組和明文分組同樣長。
    (一般而言,密鑰長度和明文長度一樣,若不一樣,如密鑰56位,明文64位,此時需要對密鑰進行擴展,通過加奇偶校驗位的方法變爲64位)
    🌸分組加密器本質上就是一個巨大的替換器,在密鑰的控制下,能從一個足夠大和足夠好的置換子集中簡單而迅速地選出一個置換,用來對當前輸入的明文數字組進行加密變換。分組密碼採用了乘積加密器的思想,即輪流使用替代和置換。
    💭Shannon提出的設計密碼系統的兩種基本方法:擴散和混淆
    擴散:要求明文的統計特徵消散在密文中。即讓明文的每個比特影響到密文的許多比特的取值。儘可能使明文和密文的統計關係變複雜。
    混淆:使密文與密鑰之間的統計關係儘量複雜,以阻止攻擊者發現密鑰。
    擴散和混淆的目的都是爲了挫敗推測出密鑰的嘗試,從而抗擊統計分析。迭代密碼是實現混淆和擴散原則的一種有效方法。合理選擇的輪函數經過若干次迭代後能夠提供必要的混淆和擴散。
    🌸分組密碼由加密算法、解密算法和密鑰擴展算法組成。
  • 序列密碼算法
    每次可加密一個比特或一個字節。
    適合比如遠程中斷輸入加密類的應用。

🎯分組密碼的一般結構

  • Feistel網絡結構和SP網絡結構
    Feistel網絡是由Horst Feistel在設計Lucifer分組密碼時基於擴散和擾亂的思想所發明的,並因被DES採用而流行。
    現在正在使用的幾乎所有重要的對稱分組密碼都使用這種結構,如FEAL、Blowfish等。
  • Feistel密碼結構的設計動機
    分組密碼對n比特的明文分組進行操作,產生出一個n比特的密文分組,共有2n個不同的明文分組,每一種都必須產生一個唯一的密文分組,這種變換稱爲可逆的或非奇異的。
  • Feistel密碼結構
    在這裏插入圖片描述
  • Feistel網絡結構
    Feistel密碼結構
    在這裏插入圖片描述
    其中Li和Ri的計算規則如下:
    Li = Ri-1; Ri = Li-1 ⊕ F(Ri-1,Ki)
    在第L輪迭代運算後,將LL和RL再進行交換,輸出C = RLLL
    其中F是輪函數,Ki是由種子密鑰K生成的子密鑰
    Feistel網絡的安全性和軟、硬件實現速度取決於下列參數:
    分組長度:分組長度越大則安全性越高(其他條件相同時),但加、解密速度也越慢。64比特的分組目前也可用,但最好採用128比特。
    密鑰長度:密鑰長度越大則安全性越高(其他條件相同時),但加、解密速度也越慢。64比特密鑰現在已不安全,128比特是一個折中的選擇。
    循環次數:Feistel網絡結構的一個特點是循環次數越多則安全性越高,通常選擇16次。
    子密鑰算法:子密鑰算法越複雜則安全性越高。
    輪函數:輪函數越複雜則安全性越高。
    快速的軟件實現:有時候客觀條件不允許用硬件實現,算法被鑲嵌在應用程序中。此時算法的執行速度是關鍵。
    算法簡潔:通常希望算法越複雜越好,但採用容易分析的卻很有好處。若算法能被簡潔地解釋清楚,就能容易通過分析算法而知道算法抗各種攻擊的能力,也有助於設計高強度的算法。
  • Feistel網絡解密過程
    Feistel網絡解密過程與其加密過程實質是相同的。
    以密文分組作爲算法的輸入,但以相反的次序使用子密鑰,即第一輪使用KL,第二輪使用KL-1,直至第L輪使用K1,這意味着可以用同樣的算法來進行加、解密。
    先將密文分組C = RLLL,分成左邊和右邊長度相等的兩半,分別記爲L0’和R0’,根據下列規則計算 Li’ Ri’
    Li’ = Ri-1’ ,Ri’ = Li-1’  F (Ri-1’ ,Ki’) 1≤i≤L
    最後輸出的分組是RL’ LL’

🎯數據加密標準DES
數據加密標準是至今爲止使用最廣泛的加密算法(1976年11月23日採納爲聯邦標準,批准用於非軍事場合的各種政府機構)。
🎯簡化的DES
簡化的DES是一個提供教學而非安全的加密算法,與DES的特性和結構類似,但是參數較少。S-DES的加密算法以8bit的明文分組和10位的密鑰作爲輸入,產生8bit的明文分組作爲輸出。加密算法涉及5個函數:初始置換IP;複合函數fk1,它是由密鑰K確定的,具有置換和替代的運算 ;轉換函數SW; 複合函數fk2;初始置換IP的逆置換IP-1
在這裏插入圖片描述
P是轉換,S是代替。
🌸S-DES的密鑰生成
🌸S-DES加密
S-DES加密:
函數fx
S-DES中最複雜的組成部分是函數fx,這個函數是多個置換函數和替代函數的組合函數。
該函數表示爲:令L和R分別是fx的輸入的最左邊4個比特和最右邊4個比特,令F爲一個從4bit串到4bit串的映射。令: fx (L,R) = ( L  F(R,SK),R)
其中SK是一個子密鑰。例如假設經過初始置換後得到的結果是(10111101),對於某個密鑰SK,有:F(1101,SK)=(1110)。
由(1011)  (1110)=( 0101) 得,fx = ( 0101 1101)。
🏃詳細見本人草稿紙筆記(嘻嘻~
🎯簡化的DES和DES的關係
DES對64bit的輸入分組進行操作,使用一個56bit的密鑰,從這個密鑰計算出16個48bit的子密鑰,這項計算涉及一個56個比特的初始置換和一系列的48bit的以爲和置換操作,在加密過程中F不是作用於4比特的(n1,n2,n3,n4)而是作用於32比特的(n1,…n32)。S盒子有8個,每個S盒子有4行16列。
🍺總結
DES加解密的流程、DES密鑰擴展、Feistel結構、對稱加密過程中反覆使用代換和置換、擴散(明文的統計規律消失在密文中)和混淆(讓密鑰和密文的關係複雜)。

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