- 密碼學教程
- 密碼學 - 首頁
- 密碼學 - 起源
- 密碼學 - 歷史
- 密碼學 - 原理
- 密碼學 - 應用
- 密碼學 - 優點與缺點
- 密碼學 - 現代
- 密碼學 - 傳統密碼
- 密碼學 - 加密需求
- 密碼學 - 雙重強度加密
- 密碼系統
- 密碼系統
- 密碼系統 - 元件
- 密碼系統攻擊
- 密碼系統 - 彩虹表攻擊
- 密碼系統 - 字典攻擊
- 密碼系統 - 暴力破解攻擊
- 密碼系統 - 密碼分析技術
- 密碼學型別
- 密碼系統 - 型別
- 公鑰加密
- 現代對稱金鑰加密
- 密碼學雜湊函式
- 金鑰管理
- 密碼系統 - 金鑰生成
- 密碼系統 - 金鑰儲存
- 密碼系統 - 金鑰分發
- 密碼系統 - 金鑰吊銷
- 分組密碼
- 密碼系統 - 流密碼
- 密碼學 - 分組密碼
- 密碼學 - Feistel分組密碼
- 分組密碼操作模式
- 分組密碼操作模式
- 電子密碼本(ECB)模式
- 密碼分組連結(CBC)模式
- 密碼反饋(CFB)模式
- 輸出反饋(OFB)模式
- 計數器(CTR)模式
- 經典密碼
- 密碼學 - 反向密碼
- 密碼學 - 凱撒密碼
- 密碼學 - ROT13演算法
- 密碼學 - 換位密碼
- 密碼學 - 加密換位密碼
- 密碼學 - 解密換位密碼
- 密碼學 - 乘法密碼
- 密碼學 - 仿射密碼
- 密碼學 - 簡單替換密碼
- 密碼學 - 簡單替換密碼加密
- 密碼學 - 簡單替換密碼解密
- 密碼學 - 維吉尼亞密碼
- 密碼學 - 實現維吉尼亞密碼
- 現代密碼
- Base64編碼和解碼
- 密碼學 - XOR加密
- 替換技術
- 密碼學 - 單表替換密碼
- 密碼學 - 破解單表替換密碼
- 密碼學 - 多表替換密碼
- 密碼學 - Playfair密碼
- 密碼學 - Hill密碼
- 多表替換密碼
- 密碼學 - 一次性密碼本
- 一次性密碼本的實現
- 密碼學 - 換位技術
- 密碼學 - 柵欄密碼
- 密碼學 - 列移位密碼
- 密碼學 - 隱寫術
- 對稱演算法
- 密碼學 - 資料加密
- 密碼學 - 加密演算法
- 密碼學 - 資料加密標準
- 密碼學 - 三重DES
- 密碼學 - 雙重DES
- 高階加密標準
- 密碼學 - AES結構
- 密碼學 - AES變換函式
- 密碼學 - 位元組替換變換
- 密碼學 - 行移位變換
- 密碼學 - 列混合變換
- 密碼學 - 輪金鑰加變換
- 密碼學 - AES金鑰擴充套件演算法
- 密碼學 - Blowfish演算法
- 密碼學 - SHA演算法
- 密碼學 - RC4演算法
- 密碼學 - Camellia加密演算法
- 密碼學 - ChaCha20加密演算法
- 密碼學 - CAST5加密演算法
- 密碼學 - SEED加密演算法
- 密碼學 - SM4加密演算法
- IDEA - 國際資料加密演算法
- 公鑰(非對稱)密碼學演算法
- 密碼學 - RSA演算法
- 密碼學 - RSA加密
- 密碼學 - RSA解密
- 密碼學 - 建立RSA金鑰
- 密碼學 - 破解RSA密碼
- 密碼學 - ECDSA演算法
- 密碼學 - DSA演算法
- 密碼學 - Diffie-Hellman演算法
- 密碼學中的資料完整性
- 密碼學中的資料完整性
- 訊息認證
- 密碼學數字簽名
- 公鑰基礎設施
- 雜湊
- MD5(訊息摘要演算法5)
- SHA-1(安全雜湊演算法1)
- SHA-256(安全雜湊演算法256位)
- SHA-512(安全雜湊演算法512位)
- SHA-3(安全雜湊演算法3)
- 雜湊密碼
- Bcrypt雜湊模組
- 現代密碼學
- 量子密碼學
- 後量子密碼學
- 密碼學協議
- 密碼學 - SSL/TLS協議
- 密碼學 - SSH協議
- 密碼學 - IPsec協議
- 密碼學 - PGP協議
- 影像和檔案加密
- 密碼學 - 影像
- 密碼學 - 檔案
- 隱寫術 - 影像
- 檔案加密和解密
- 密碼學 - 檔案加密
- 密碼學 - 檔案解密
- 物聯網中的密碼學
- 物聯網安全挑戰、威脅和攻擊
- 物聯網安全的加密技術
- 物聯網裝置的通訊協議
- 常用密碼學技術
- 自定義構建密碼學演算法(混合密碼學)
- 雲密碼學
- 量子密碼學
- 密碼學中的影像隱寫術
- DNA密碼學
- 密碼學中的一次性密碼(OTP)演算法
- 區別
- 密碼學 - MD5與SHA1
- 密碼學 - RSA與DSA
- 密碼學 - RSA與Diffie-Hellman
- 密碼學與密碼學
- 密碼學 - 密碼學與密碼分析
- 密碼學 - 經典與量子
- 密碼學與隱寫術
- 密碼學與加密
- 密碼學與網路安全
- 密碼學 - 流密碼與分組密碼
- 密碼學 - AES與DES密碼
- 密碼學 - 對稱與非對稱
- 密碼學有用資源
- 密碼學 - 快速指南
- 密碼學 - 討論
密碼學 - AES金鑰擴充套件演算法
為了用於AES加密,可以使用AES(高階加密標準)金鑰擴充套件技術將單個初始金鑰擴充套件為一系列輪金鑰。這些輪金鑰在AES加密和解密的每一輪中都是必需的。
AES金鑰擴充套件方法接收一個四字(16位元組)金鑰並返回一個包含44個字(176位元組)的線性陣列。這足以提供初始的輪金鑰加步驟以及密碼的十輪中的每一輪的四字輪金鑰。
演算法如何工作?
簡單來說,AES金鑰擴充套件演算法的工作原理如下:
- 初始金鑰 - 演算法使用初始金鑰。此金鑰的長度可以從128位到256位不等,具體取決於所需的安全性級別。
- 輪常數 - 該方法使用一組輪常數,這些常數是在金鑰擴充套件過程中使用的預定義值。
- 字大小 - 金鑰將單詞劃分為單獨的塊。一個字通常包含32位。例如,從128位金鑰建立四個32位字。
- 金鑰排程 - “金鑰排程”是指使用金鑰擴充套件過程生成的一組輪金鑰。此排程表中包含初始輪金鑰以及從中派生的其他輪金鑰。
- 擴充套件輪 - 演算法在每一輪擴充套件中執行多項任務,例如:
- RotWord - 此函式旋轉單詞中的位元組。
- SubWord - 使用預定的S盒應用替換操作。
- Rcon - 使用輪常數對單詞進行異或運算。
- 輪金鑰 - 在所有擴充套件輪之後仍然存在的輪金鑰的順序定義了金鑰排程。每個輪金鑰都用於AES加密或解密的相應輪中。
總的來說,金鑰擴充套件方法透過確保AES加密和解密的每一輪都有一個唯一的輪金鑰來提高安全性並防止密碼攻擊。
數學表示
讓我們表示:
- K是第一個金鑰,其長度為N位。
- 金鑰的字數(Nk)是其總字數(例如,128位金鑰為4,192位金鑰為6,256位金鑰為8)。
- Nr,AES輪識別符號,對於AES-128為10,對於AES-192為12,對於AES-256為14。
金鑰擴充套件過程
- 步驟1:首先建立輪金鑰。在單詞陣列W中建立第一個單詞K。迭代生成(Nr + 1)個輪金鑰:
for i = N_k to (4 * (N_r + 1) - 1):
if i mod N_k == 0:
temp = RotWord(W[i-1]) ^ SubWord(W[i-1]) ^ Rcon(i / N_k)
else:
temp = W[i-1] ^ W[i-N_k]
W[i] = temp
- 步驟2:完成輪金鑰:迴圈結束後,陣列W包含所有輪金鑰。
符號
- RotWord(w) - 以迴圈方式旋轉單詞w的位元組。
- SubWord(w) - 使用AES S盒替換單詞w中的每個位元組。
- Rcon(i) - 生成當前第i輪的輪常數,或Rcon。
計算輪常數Rcon
可以透過計算Rcon(i)=(RC[i],0,0,0)找到第i輪的輪常數,其中RC[i]是輪常數陣列的第i個元素。
此表示提供了關於如何將原始金鑰轉換為用於AES加密和解密的一組輪金鑰的數學描述。
AES金鑰擴充套件示例
現在我們將討論AES(高階加密標準)金鑰擴充套件演算法的一個示例。對於此示例,我們將使用AES-128,因此我們的初始金鑰將為128位(16位元組)。
第一個金鑰可以被認為是一組位元組:
2b 7e 15 16 28 ae d2 a6 ab f7 97 66 76 15 13 1
此金鑰長128位。
讓我們看看金鑰擴充套件過程的每個步驟:
初始金鑰
2b 7e 15 16 28 ae d2 a6 ab f7 97 66 76 15 13 1
擴充套件輪
我們首先將第一個金鑰新增到我們的輪金鑰列表中。然後,我們迭代生成更多輪金鑰,直到達到總共11個。
第1輪
在RotWord、SubWord和XOR運算中,我們使用輪常數:
RotWord: 7e 15 16 2b SubWord: 63 cb e7 8c Rcon: 01 00 00 00 Round 1 Key: 63 cb e7 8c 09 cf 4f 3c 3b a9 82 fb 11 13 d8 2c
第2輪
前一輪金鑰中的單詞向後異或四個位置:
Round 2 Key: a0 fa fe 17 88 54 2c b1 23 a3 39 39 2a 6c 76 05
後續輪
以這種方式生成輪金鑰,直到生成總共11個金鑰。
最終輪金鑰
Round 0 (Initial Key): 2b 7e 15 16 28 ae d2 a6 ab f7 97 66 76 15 13 1 Round 1: 63 cb e7 8c 09 cf 4f 3c 3b a9 82 fb 11 13 d8 2c Round 2: a0 fa fe 17 88 54 2c b1 23 a3 39 39 2a 6c 76 05 ... Round 10: 3d 47 0e 52 77 37 2e 10 1f 7e 0e 20 6a 51 7f a7
在此示例中,使用AES金鑰擴充套件技術將原始金鑰擴充套件為多個輪金鑰。每個輪金鑰都是使用輪常數以及XOR、RotWord和SubWord等運算從前一個輪金鑰建立的。然後,這些輪金鑰用於AES加密的每一輪中,以提高安全性並防止密碼攻擊。
總結
AES金鑰擴充套件方法建立初始金鑰和一組輪金鑰,這些金鑰是AES加密和解密所必需的。它使用輪常數在諸如RotWord、SubWord和XOR之類的運算中。安全性得到了提高,因為每個輪金鑰都確保了每輪加密都有一個唯一的金鑰。該過程增強了安全性並透過AES加密防止密碼攻擊。