第三章對稱密碼之分組密碼


轉:https://www.cnblogs.com/WittPeng/p/8978737.html

對稱密碼之分組密碼

對稱密碼
  • 特點:加密速度快、安全性好、基於標准化··· ···
  • 應用:數據保密傳輸、加密存儲··· ···

分組密碼概述

  • 將明文消息編碼表示后的二進制序列,划分為固定大小的塊
  • 加密和解密是一一映射的
  • 設計應滿足要求
  1. 分組足夠長
  2. 密鑰長度足夠長
  3. 由密鑰確定的置換算法足夠復雜
  4. 加密和解密運算簡單
  5. 一般無數據擴展
  • 理想分組密碼
  • 分組密碼的設計原則:擴散、混亂
  • 乘積密碼體制:在密鑰控制下擴散和混亂兩種密碼操作的多次迭代
  • 迭代結構
  1. Feistel密碼
  2. SP網絡
組成 S盒(代換):混亂作用,P盒(置換):擴散作用
效果 雪崩效應
設計原則
  1. 分組長度
  2. 密鑰長度
  3. 輪函數F的設計原則:基本原則:非線性、可逆性、雪崩效應,性能指標:安全性、速度、靈活性
  4. 子密鑰的生成方法
  5. 迭代的輪數

DES算法

  • 特點
分組長度 64位
密碼體制 對稱密碼體制,加密和密鑰使用同一密鑰,僅子密鑰編排順序不同
有效密鑰長度 56位(原64位的每個第8位為奇偶校驗位,可忽略)
迭代結構 SP網絡結構,共16輪
優點 只使用了標准的算術和邏輯運算
  • 流程

                                                                

①64位明文->②IP置換->

③分為兩部分L0和R0:L0為下一輪的R1;R0和第一次置換得到的子密鑰混合經過F函數得到下一輪的L1

->④置換IP-1->⑤得到64位密文

F函數:

擴展置換 8*4的矩陣 每行的頭尾各補齊一位,變成8*6的矩陣
Ki子密鑰的生成算法 將56位的有效的密鑰壓縮成48位
代換盒(S盒)

步驟說明:b1b6確定行,b2b3b4b5確定列,將48位變成32位

特點:

  1. 非線性
  2. 每一行包括所有16種四位二進制碼
  3. 兩個輸出相差1bit,輸出至少相差2bit
  4. ··· ···
置換運算(P盒)  
  • 安全性
  • 缺陷
  1. 互補性:

              

2.弱密鑰:4個弱密鑰,12個半弱密鑰

3.迭代輪數

4.密鑰長度

  • 應對方法:多重DES
    • 二重DES
    • 三重DES
  • DES的分析方法:
    • 差分分析:由明文差和密文差求系數a,當輪數低於8輪時,個人計算機幾分鍾即可攻破
    • 線性分析

AES算法

  • 特點介紹
    • 分組長度:128位
    • 密鑰長度和對應輪數:128位10輪,192位12輪,256位14輪
    • 過程:前9輪 字節代換、行移位、列混合和輪密鑰加,第10輪 字節代換、行位移和輪密鑰加

       字節代換:S盒定義方法

      (1)初始化S盒,將第m行n列的元素初始化為0xmn

      (2)將S盒中的每個字節映射為它在有限域GF(28)中的逆,0x00映射為自身。AES使用Z2[x]上的不可約多項式m(x)=x8+x4+x3+x+1來構造GF(28)。求逆元素的方法是使用Z2[x]上的擴展的歐幾里得算法。

       行位移:簡單的左循環位移操作,第n行左移n位

       列混合 :通過矩陣相乘來實現

       輪密鑰加:

         密碼擴展算法:

           1.將初始密鑰輸入到一個4*4的矩陣中,每列的四個字節組成一個字,依次命名為w[0],w[1],w[2],w[3]

           2.擴充40個新列,構成總共44列的擴展密鑰數組

               產生方式為

      其中,T的組成為:1.字循環(將一個字中的4個字節循環左移一個字節)

                                2.字節代換(使用S盒)

                                3.輪常量異或(將前兩步的結果同輪常量Rcon[j]進行異或,其中j表示輪數)

       

    • AES的結構
      • AES結構的一個顯著特征是它不是Feistel結構
      • 輸入的密鑰被擴展成由44個32位字節所組成的數組w[i]
      • AES結構由四個階段組成
      • 僅僅在輪密鑰加階段使用密鑰,並在算法的開始和結束都是用輪密鑰加階段
      • 每個階段均可逆,解密算法和加密算法並不一樣
      • 加密和解密過程的最后一輪只包含3個階段,這是由AES的特定結構所決定的,而且也是密碼算法可逆性所要求的
  • AES的安全性和可用性
    • AES和DES的對比
  相同 不同
DES
  1. 二者的輪函數都由3層構成,非線性結構、線性混合層、子密鑰異或,只是順序不同;
  2. AES的子密鑰加對應於DES的S盒之前的子密鑰異或;
  3. AES的列混合運算目的是讓不同的字節相互影響,而DES中F函數的輸出與左邊一半數據相加也有類似的效果;
  4. AES的非線性運算是字節代換,對應於DES中唯一的非線性運算S盒;
  5. 行移位運算保證了每一行的字節不僅僅影響其他行對應的字節,而且影響其他行所有的字節,這與DES中的置換P相似
密鑰長度固定56位 面向比特的運算 加密和解密運算一致
AES 密鑰長度可以是128位、192位、256位 面向字節的運算

加密和解密運算不一致,加密器不能同時用做解密器

典型分組密碼

國際數據加密算法(IDEA)

  • 工作原理:明文64位,密鑰128位
  • 輪函數:分為8輪,每輪輸入6個子密鑰和4個狀態塊
  • 輸出變換

                                                      

  • 解密過程
  • 子密鑰生成

 

RC6

  • 加密過程
  • 解密過程
  • 密鑰擴展方案

Skipjakc算法

Callmellia算法

工作模式

電子密碼本(ECB)模式

  • 工作模式

  • 特點:
    • 分組數量龐大,易受統計分析攻擊、分組重放攻擊和代換攻擊。
    • 明文或者密文出現一位的錯誤,只會影響一個分組,不會是錯誤擴散。
    • 是最快最簡單的工作模式
  • 應用:數據隨機且較少的情況

密碼分組鏈接(CBC)模式

  • 工作模式

    

  • 特點
    • 克服了ECB模式的缺點
    • 雖然加密會使錯誤擴散,但解密的過程又進行了抵消,最后出錯的仍是一個分組(密文的錯誤會由一組變成兩組)
    • 若文檔中的一個分組和他前面的一個分組和另一個文檔相同,則這個分組會加密出相同的結果,所以引進了初始化向量IV,使頭文件不同(IV不用加密,可以和明文一起傳遞)
  • 應用:大型文件的加密,是軟件加密的最好選擇

密碼反饋(CFB)模式

  • 工作模式

其中,加密算法也能用於解密。加密是對移位寄存器的操作,不對明文加密

  • 特點
    • 面向比特流進行操作
    • 可用於同步序列密碼,加密和解密可同時進行
    • 有CBC的優點
    • 對信道錯誤較敏感且會進行傳播,但解密后會糾正。對明文只會影響一個分組,對密文的錯誤影響只有寄存器推出錯誤密文后,才能阻止擴散
    • 數據加密速率低
  • 應用:加密字符序列

輸出反饋(OFB)模式

  • 工作模式

  • 特點
    • 改進了CFB,錯誤不會傳播,但密文的錯誤難以發現
    • 不具有自同步的能力
    • 初始向量IV不需要保密
  • 應用:在極易出錯的環境選用的模式,但需要有高速同步機制

計數器(CTR)模式


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM