轉:https://www.cnblogs.com/WittPeng/p/8978737.html
對稱密碼之分組密碼
對稱密碼
- 特點:加密速度快、安全性好、基於標准化··· ···
- 應用:數據保密傳輸、加密存儲··· ···
分組密碼概述
- 將明文消息編碼表示后的二進制序列,划分為固定大小的塊
- 加密和解密是一一映射的
- 設計應滿足要求
- 分組足夠長
- 密鑰長度足夠長
- 由密鑰確定的置換算法足夠復雜
- 加密和解密運算簡單
- 一般無數據擴展
- 理想分組密碼
- 分組密碼的設計原則:擴散、混亂
- 乘積密碼體制:在密鑰控制下擴散和混亂兩種密碼操作的多次迭代
- 迭代結構
- Feistel密碼
- SP網絡
組成 | S盒(代換):混亂作用,P盒(置換):擴散作用 |
效果 | 雪崩效應 |
設計原則 |
|
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位 特點:
|
置換運算(P盒) |
- 安全性
- 缺陷
- 互補性:
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 |
|
密鑰長度固定56位 | 面向比特的運算 | 加密和解密運算一致 |
AES | 密鑰長度可以是128位、192位、256位 | 面向字節的運算 | 加密和解密運算不一致,加密器不能同時用做解密器 |
典型分組密碼
國際數據加密算法(IDEA)
- 工作原理:明文64位,密鑰128位
- 輪函數:分為8輪,每輪輸入6個子密鑰和4個狀態塊
- 輸出變換
- 解密過程
- 子密鑰生成
RC6
- 加密過程
- 解密過程
- 密鑰擴展方案
Skipjakc算法
Callmellia算法
工作模式
電子密碼本(ECB)模式
- 工作模式
- 特點:
- 分組數量龐大,易受統計分析攻擊、分組重放攻擊和代換攻擊。
- 明文或者密文出現一位的錯誤,只會影響一個分組,不會是錯誤擴散。
- 是最快最簡單的工作模式
- 應用:數據隨機且較少的情況
密碼分組鏈接(CBC)模式
- 工作模式
- 特點
- 克服了ECB模式的缺點
- 雖然加密會使錯誤擴散,但解密的過程又進行了抵消,最后出錯的仍是一個分組(密文的錯誤會由一組變成兩組)
- 若文檔中的一個分組和他前面的一個分組和另一個文檔相同,則這個分組會加密出相同的結果,所以引進了初始化向量IV,使頭文件不同(IV不用加密,可以和明文一起傳遞)
- 應用:大型文件的加密,是軟件加密的最好選擇
密碼反饋(CFB)模式
- 工作模式
其中,加密算法也能用於解密。加密是對移位寄存器的操作,不對明文加密
- 特點
- 面向比特流進行操作
- 可用於同步序列密碼,加密和解密可同時進行
- 有CBC的優點
- 對信道錯誤較敏感且會進行傳播,但解密后會糾正。對明文只會影響一個分組,對密文的錯誤影響只有寄存器推出錯誤密文后,才能阻止擴散
- 數據加密速率低
- 應用:加密字符序列
輸出反饋(OFB)模式
- 工作模式
- 特點
- 改進了CFB,錯誤不會傳播,但密文的錯誤難以發現
- 不具有自同步的能力
- 初始向量IV不需要保密
- 應用:在極易出錯的環境選用的模式,但需要有高速同步機制