© The McGraw-Hill Companies, Inc., 2007 新一代密碼系統 (Advanced Encryption Standard)
新一代密碼系統 © The McGraw-Hill Companies, Inc., 本章內容 6.1 前言 6.2 Rijndael 密碼系統 6.3 Rijndael 密碼系統的數學背景 6.4 回合金鑰的產生 6.5 Rijndael 的加密演算法 6.6 Rijndael 的解密演算法
新一代密碼系統 © The McGraw-Hill Companies, Inc., 前言 就目前科技而言,現有之 DES 密碼系統所使用 之金鑰長度過短 ( 僅 56 位元 ) ,其安全性已遭受 質疑,為提高其安全性,便有了 Triple-DES 的 構想。 隨著電腦技技的發展,可預見未來 Triple-DES 的加密演算法也勢必淘汰,有鑑於此,美國國 家標準技術局 (NIST) 於 1997 年 1 月 2 日開始著手 計劃公開徵求新一代加密標準 ( 簡稱 AES) 。
新一代密碼系統 © The McGraw-Hill Companies, Inc., Rijndael 密碼系統 ◎ Rijndael 反覆運算的加密演算法 資料區塊及金鑰可獨立變動 128, 192, 256 bits State: 運算過程所產生的中間值,用一個以 byte 為單 位的長方型矩陣來表示( 4 列,行數為資料區塊除以 32bits ),成為一個 4*Nb 的矩陣,也就是把資料分 割成 Nb 個區塊。
新一代密碼系統 © The McGraw-Hill Companies, Inc., Cipher Key: 加密金鑰,一個 4*Nk 的矩陣,也就 是把金鑰分割成 Nk 個子金鑰。 6.2 Rijndael 密碼系統 ◎ Rijndael Nk=6
新一代密碼系統 © The McGraw-Hill Companies, Inc., Rijndael 密碼系統的數學背景 ◎ GF(2 8 ) 的定義 假設位元組 由組成,將 當作一個 7 次多項式的係數。 例如 : 表示成多項式為:
新一代密碼系統 © The McGraw-Hill Companies, Inc., 數學背景 ◎ 加法 兩個多項式的加法,即係數做 XOR 。 例如 : 表示成多項式為 :
新一代密碼系統 © The McGraw-Hill Companies, Inc., 數學背景(續) ◎ 乘法 多項式相乘之後的結果很容易造成溢位,在 Rijndael 中將其溢位再 modulo 一個固定的多項式 : 例如 :
新一代密碼系統 © The McGraw-Hill Companies, Inc., 回合金鑰的產生 在 Rijndael 的密碼系統中,不管加密或解 密都需要產生各回合所使用的回合金鑰 (Round Key) 或副金鑰 (Subkey) 。 回合金鑰的產生方式可分兩階段,第一 階段為金鑰的擴充,第二階段為回合金 鑰的選擇。
新一代密碼系統 © The McGraw-Hill Companies, Inc., a 0, 0 a 0, 1 a 0, 2 a 0, 3 a 1, 0 a 1, 1 a 1, 2 a 1, 3 a 2, 0 a 2, 1 a 2, 2 a 2, 3 a 3, 0 a 3, 1 a 3, 2 a 3, 3 Nb = 4 k 0, 0 k 0, 1 k 0, 2 k 0, 3 k 0, 4 k 0, 5 k 1, 0 k 1, 1 k 1, 2 k 1, 3 k 1, 4 k 1, 5 k 2, 0 k 2, 1 k 2, 2 k 2, 3 k 2, 4 k 2, 5 k 3, 0 k 3, 1 k 3, 2 k 3, 3 k 3, 4 k 3, 5 Nk = 6 4 bytes 決定出回數 如下表 Nr: 回合數,由 Nb 及 Nk 決定出回數。 Rijndael 執行的回合數
新一代密碼系統 © The McGraw-Hill Companies, Inc., Nr ( 回合數 ) ,由 Nb 及 Nk 所決定的,回合的變 動數如表 : NrNb = 4Nb = 6Nb = 8 Nk = Nk = Nk = 814 加密流程
新一代密碼系統 © The McGraw-Hill Companies, Inc., ◎ Cipher key Expanded key Expanded key 是一個線性的 4byte 矩陣,以 W[Nb*(Nr+1)] 表示,前 Nk 個字組包含了加密金鑰 (Cipher key) ,剩下的字組依不同的 Nk 值,會有不 同的處理如下 : 金鑰的擴充 Example: Nb=4, Nk=6, Nr=12 W[52]=W[0]~W[51]
新一代密碼系統 © The McGraw-Hill Companies, Inc., Nk<=6 if (i % Nk =0) W[i-1] W[i-Nk] W[i] W[i-1] 向左旋轉 1byte SubByte W[i-4] W[i] W[i] 1 W[i] 2 W[i] 3 W[i] … W[i] 1 W[i] 每次迴圈 乘以 x YesNo 金鑰的擴充(續) Nk=6, i=7, 8, …
新一代密碼系統 © The McGraw-Hill Companies, Inc., Example 1 word = 4 byte = 32 bits = 8 個 16 進位 W[i-1]= (006A0000) ( 向左旋轉 1byte) (6A000000) (6A000000) (SubByte) ( ) W[i-4] = (FA005C00) ( ) (FA005C00) = (F8633F63) F8 = ( ), RC[i] = ( ) ( ) ( ) = ( ) =FA (F8633F63) (FA633F63)
新一代密碼系統 © The McGraw-Hill Companies, Inc.,
新一代密碼系統 © The McGraw-Hill Companies, Inc., Nk>6 if (i % Nk =0) W[i-1] W[i-Nk] W[i] W[i-1] 向左旋轉 1byte SubByte W[i-4] W[i] W[i] 1 W[i] 2 W[i] 3 W[i] … W[i] 1 W[i] if (i % Nk =4) Yes No W[i-1] SubByte W[i-4] W[i] Yes
新一代密碼系統 © The McGraw-Hill Companies, Inc., ◎ Expanded key Round key 子金鑰的選擇是由擴充金鑰中所依序給定的,即第 i 把 回合金鑰由 W[Nb*i] ~ W[Nb*(i+1)-1] W0W1W2W3W4W5W6W7W8W9 W10W11… Round Key 1: W[4]~W[7] Round Key 2: W[8]~W[11] Round Key 3: W[12]~W[15] … 選擇回合金鑰 Round Key 11: W[44]~W[47] Round Key 0: W[0]~W[3] Round Key 12: W[48]~W[51] Initial Round Standard Round Final Round
新一代密碼系統 © The McGraw-Hill Companies, Inc., Plain Text Initial Round Add Round Key Standard Round Byte Sub Shift Row Mix Column Add Round Key Final Round Byte Sub Shift Row Add Round Key Cipher Text Nr-1 Rounds Cipher Key Expansion Expanded Key Selection Round Key 1 Round Key 2 … Round Key 3 Round Key Nr-1 Round Key Nr Round Key Rijndael 的加密演算法
新一代密碼系統 © The McGraw-Hill Companies, Inc., Standard Round Byte Sub Shift Row Mix Column Add Round Key Standard Round Byte Sub Shift Row Mix Column Add Round Key
新一代密碼系統 © The McGraw-Hill Companies, Inc., ◎ Add Round Key(state,Round key) 將狀態值與子金鑰作互斥或運算 回合金鑰的加密函數 W[0]W[1]W[2]W[3] Ex State RK0
新一代密碼系統 © The McGraw-Hill Companies, Inc., a 3, 5 a 3, 4 a 3, 3 a 3, 2 a 3, 1 a 3, 0 a 2, 5 a 2, 4 a 2, 3 a 2, 2 a 2, 1 a 2, 0 a 1, 5 a 1, 4 a 1, 3 a 1, 2 a 1, 1 a 1, 0 a 0, 5 a 0, 4 a 0, 3 a 0, 2 a 0, 1 a 0, 0 S-Box b 3, 5 b 3, 4 b 3, 3 b 3, 2 b 3, 1 b 3, 0 b 2, 5 b 2, 4 b 2, 3 b 2, 2 b 2, 1 b 2, 0 b 1, 5 b 1, 4 b 1, 3 b 1, 2 b 1, 1 b 1, 0 b 0, 5 b 0, 4 b 0, 3 b 0, 2 b 0, 1 b 0, 0 位元取代轉換函數 Byte Sub
新一代密碼系統 © The McGraw-Hill Companies, Inc., Byte Sub 位元組取代轉換 a 0, 0 b 0, 0 轉換矩陣 乘法反元素
新一代密碼系統 © The McGraw-Hill Companies, Inc., Byte Sub 例子
新一代密碼系統 © The McGraw-Hill Companies, Inc., Byte Sub 查表 a 0, 0 b 0, 0 查表
新一代密碼系統 © The McGraw-Hill Companies, Inc., Byte Sub 反運算 a 0, 0 b 0, 0 反轉換矩陣乘法反元素
新一代密碼系統 © The McGraw-Hill Companies, Inc., Byte Sub 反運算例子 的乘法反元素為
新一代密碼系統 © The McGraw-Hill Companies, Inc., Byte Sub 反運算查表 a 0, 0 b 0, 0 查表
新一代密碼系統 © The McGraw-Hill Companies, Inc., Byte Sub 查表 EX
新一代密碼系統 © The McGraw-Hill Companies, Inc., 每一個 State 的第一列不變,後三列被循環轉換 (cyclically shift) 不同的大小,且依 Nb 的大小也會有 所不同,如下 : Nb 第二列 C1 第三列 C2 第四列 C 移列轉換函數 ShiftRow
新一代密碼系統 © The McGraw-Hill Companies, Inc., Shift Row 例子
新一代密碼系統 © The McGraw-Hill Companies, Inc., 移列轉換的反運算 對第二第三及第四列作 Nb-C1, Nb-C2, Nb-C3 個位元組的右循環即可。 Shift Row 反運算
新一代密碼系統 © The McGraw-Hill Companies, Inc., MixColumn 混行轉換函數
新一代密碼系統 © The McGraw-Hill Companies, Inc., MixColumn 混行轉換函數(續)
新一代密碼系統 © The McGraw-Hill Companies, Inc., d(x) a 3, 5 a 3, 4 a 3, 3 a 3, 2 a 3, 1 a 3, 0 a 2, 5 a 2, 4 a 2, 3 a 2, 2 a 2, 1 a 2, 0 a 1, 5 a 1, 4 a 1, 3 a 1, 2 a 1, 1 a 1, 0 a 0, 5 a 0, 4 a 0, 3 a 0, 2 a 0, 1 a 0, 0 b 3, 5 b 3, 4 b 3, 3 b 3, 2 b 3, 1 b 3, 0 b 2, 5 b 2, 4 b 2, 3 b 2, 2 b 2, 1 b 2, 0 b 1, 5 b 1, 4 b 1, 3 b 1, 2 b 1, 1 b 1, 0 b 0, 5 b 0, 4 b 0, 3 b 0, 2 b 0, 1 b 0, 0 Mix Column 反運算
新一代密碼系統 © The McGraw-Hill Companies, Inc., 單位矩陣: Mix Column 反運算(續)
新一代密碼系統 © The McGraw-Hill Companies, Inc., Final Round Byte Sub Shift Row Add Round Key Final Round Byte Sub Shift Row Add Round Key
新一代密碼系統 © The McGraw-Hill Companies, Inc., Rijndael 的解密演算法 Cipher Text Initial Round Add Round Key Inv Standard Round Inv Byte Sub Inv Shift Row Inv Mix Column Add Round Key Final Round Inv Byte Sub Inv Shift Row Add Round Key Plain Text Nr-1 Rounds Cipher Key Expansion Expanded Key Selection Round Key 1 Round Key 2 … Round Key 3 Round Key Nr-1 Round Key Nr Round Key 0