82
Advanced Encryption Standard 指指指指 指指指指指 指指指指 101 指指指 指指指指 101 指指指

A dvanced E ncryption S tandard

Embed Size (px)

DESCRIPTION

A dvanced E ncryption S tandard. 指導老師 黃宗立教授 資訊工程 101 林昂鋒 資訊工程 101 吳宗育. 大綱. What AES? 何謂 AES? Why AES? 為何需要 AES? How AES? AES 如何運作 ? Do AES? AES 安全嗎 ?. What AES ?. 何謂 AES ?. 高級加密標準 ( Advanced Encryption Standard , AES ) 又稱 Rijndael 加密法 是美國聯邦政府採用的一種區塊加密標準。. Why AES?. - PowerPoint PPT Presentation

Citation preview

Page 1: A dvanced  E ncryption  S tandard

Advanced Encryption Standard指導老師 黃宗立教授資訊工程 101 林昂鋒資訊工程 101 吳宗育

Page 2: A dvanced  E ncryption  S tandard

大綱• What AES?

– 何謂 AES?

• Why AES?– 為何需要 AES?

• How AES?– AES 如何運作 ?

• Do AES?– AES 安全嗎 ?

Page 3: A dvanced  E ncryption  S tandard

What AES?

Page 4: A dvanced  E ncryption  S tandard

何謂 AES?

• 高級加密標準( Advanced Encryption Standard , AES )

• 又稱 Rijndael 加密法

• 是美國聯邦政府採用的一種區塊加密標準。

Page 5: A dvanced  E ncryption  S tandard

Why AES?

Page 6: A dvanced  E ncryption  S tandard

DES

• 原有的 Data Encryption Standard

DES 不夠安全嗎 ??

Page 7: A dvanced  E ncryption  S tandard

DES 不夠安全 - 暴力破解

• DES 的版本有– 56 位元組金鑰的 DES• 目前平行式計算暴力破解顯示並不安全

– 112 位元組金鑰兩把金鑰三重 DES• 安全

– 168 位元組金鑰三把金鑰三重 DES• 安全

Page 8: A dvanced  E ncryption  S tandard

DES 不夠安全 - 差異破密

• 假設加密為一個 XOR 運算• C1 = P1 K

• C2 = P2 K

–> C1 C2 = P1 K P2 K = P1 P2

(C1 與 C2 加密會等於 P1 與 P2 加密 )

Page 9: A dvanced  E ncryption  S tandard

DES 不夠安全 - 線性破密

• DES 使用 16 個 S – Box

• S – Box 不是完全非線性

• 基於某些機率原理可破解

Page 10: A dvanced  E ncryption  S tandard

DES 不夠安全 - 弱金鑰

• 例如:輸入的金鑰為( 64 bits )

• 造成明文及密文間差異過小 , 容易被猜出

Page 11: A dvanced  E ncryption  S tandard

多重 DES 依然不夠安全

• 中間相遇攻擊

Page 12: A dvanced  E ncryption  S tandard

How AES?

Page 13: A dvanced  E ncryption  S tandard

AES 核心概念 Add_Round_Key : Key Expansion

Sub_Bytes : Intra-byte( 位元組內 )

Shift_Rows : Byte-exchange( 位元 組交換 )

Mix_Columns : Inter-byte( 位元組 之間轉換 )

Page 14: A dvanced  E ncryption  S tandard

AES 核心概念 Add_Round_Key : 擴展

Sub_Bytes : 取代

Shift_Rows : 排列

Mix_Columns : 混合

Page 15: A dvanced  E ncryption  S tandard
Page 16: A dvanced  E ncryption  S tandard
Page 17: A dvanced  E ncryption  S tandard

AES 的狀態

• 狀態 States : AES 加密過程每個階段的開頭和結尾 , 稱為狀態

Page 18: A dvanced  E ncryption  S tandard

AES Function 解析

Page 19: A dvanced  E ncryption  S tandard

AES 金鑰選擇

• 現行 AES 使用 128 位元 , 192 位元或256 位元( 本投影片討論 AES-128)

• 明文 , 密文區塊大小為 128 位元

• 回合金鑰固定為 128 位元 ( 何謂回合金鑰 ?)

Page 20: A dvanced  E ncryption  S tandard

AES 明文狀態

• 明文轉換成狀態區塊

• 每個狀態為一個 4 * 4 的矩陣

• 每個狀態為 32 位元 (16 進位 )

• 依序填入 , 由上而下 , 由左而右填入

Page 21: A dvanced  E ncryption  S tandard
Page 22: A dvanced  E ncryption  S tandard

預先轉換回合

Page 23: A dvanced  E ncryption  S tandard
Page 24: A dvanced  E ncryption  S tandard

AES 加密第一步驟

• Pre- Round Transformation( 預先回合轉換 )

– 將已輸入之金鑰 32 位元為一組 , 切成四塊

– 依序放入矩陣中 , 由上而下 , 由左而右

– 與狀態明文做矩陣加法

Page 25: A dvanced  E ncryption  S tandard
Page 26: A dvanced  E ncryption  S tandard
Page 27: A dvanced  E ncryption  S tandard

預先轉換回合結束進入第一回合

Page 28: A dvanced  E ncryption  S tandard
Page 29: A dvanced  E ncryption  S tandard

Sub Bytes

Page 30: A dvanced  E ncryption  S tandard

SubBytes

• 利用兩個數字表示成為 16 進位• 左邊數字代表列 , 右邊的數字代表行• 查表 /GF(28) 找到獨立的轉換

Page 31: A dvanced  E ncryption  S tandard

SubBytes 查表

Page 32: A dvanced  E ncryption  S tandard

SubBytes 查表

Page 33: A dvanced  E ncryption  S tandard

表怎麼來的 ??

Page 34: A dvanced  E ncryption  S tandard

AES 制定 GF(28)

• f(x) = x8+x4+x3+x+1• a * a’ ≡ 1 (mod (f(x)) )• 求出 a’• 排入 b 矩陣• c = X * b• d = c + y• ( 重複 SubBytes 動作 16 次 )

Page 35: A dvanced  E ncryption  S tandard

這個步驟提供了加密法非線性的變換能力。已知具有良好的非線性特性。

Page 36: A dvanced  E ncryption  S tandard
Page 37: A dvanced  E ncryption  S tandard

Shift Rows

Page 38: A dvanced  E ncryption  S tandard

Shift Rows

• 由右向左位移• 位移次數取決矩陣列數

Page 39: A dvanced  E ncryption  S tandard

Shift Rows

Page 40: A dvanced  E ncryption  S tandard
Page 41: A dvanced  E ncryption  S tandard

Mix Column

Page 42: A dvanced  E ncryption  S tandard

Mix Column

• 用於位元組之間擴散效果• 新矩陣 = 常數矩陣 x 原始矩陣

Page 43: A dvanced  E ncryption  S tandard

常數矩陣

Page 44: A dvanced  E ncryption  S tandard
Page 45: A dvanced  E ncryption  S tandard
Page 46: A dvanced  E ncryption  S tandard

Add Round Key

Page 47: A dvanced  E ncryption  S tandard

Add Round Key

Page 48: A dvanced  E ncryption  S tandard

只有這樣 ??

Page 49: A dvanced  E ncryption  S tandard
Page 50: A dvanced  E ncryption  S tandard

每一回合 Key 都不一樣Key expansion

Page 51: A dvanced  E ncryption  S tandard

Key Expansion

• Key-expansion程序用來建立每回合使用的回合金鑰

• 第一回合金鑰被使用於 預先回合轉換

Page 52: A dvanced  E ncryption  S tandard

AES 金鑰擴展程序

Page 53: A dvanced  E ncryption  S tandard

AES 金鑰擴展程序

• (i mod 4) = 0 時 , Wi = t Wi-4

• (i mod 4) ≠ 0 時 , Wi = Wi-1 Wi-4

– > t 是什麼 ??

Page 54: A dvanced  E ncryption  S tandard

ti = SubWord(RotWord(Wi-1)) ⊕ RConi/4

Page 55: A dvanced  E ncryption  S tandard

t ??

• ti = SubWord(RotWord(Wi-1)) RConi/4

• RotWord : 以位元組為單位 , 將 W 以迴轉方式 向左移動

–W = 13AA5487 => RotWord(13AA5487) = AA548713

Page 56: A dvanced  E ncryption  S tandard

t ??

• ti = SubWord(RotWord(Wi-1)) RConi/4

• SubWord : 意及 SubByte, 查表去吧!

– RotWord(W) = AA548713 => SubWord(AA548713) = AC20177D

Page 57: A dvanced  E ncryption  S tandard

t ??

• ti = SubWord(RotWord(Wi-1)) RConi/4

• RCon : 回合常數

AC20177D⊕

01000000----------------

t = AD20177D

Page 58: A dvanced  E ncryption  S tandard
Page 59: A dvanced  E ncryption  S tandard

值得注意的細節每個回合都有四個可逆的轉換

1. SubBytes2. ShiftRows3. MixColumns4. AddRoundKey

第一回合前有個預先轉換回合1. AddRoundKey

最後一回合只有三個三個轉換(少了 MixColumns)

Page 60: A dvanced  E ncryption  S tandard

一回合加密完成

Page 61: A dvanced  E ncryption  S tandard

AES-128 重複步驟 10 回合

Page 62: A dvanced  E ncryption  S tandard

加密完成 , 解密 ??

Page 63: A dvanced  E ncryption  S tandard

Let‘s  Review

Page 64: A dvanced  E ncryption  S tandard
Page 65: A dvanced  E ncryption  S tandard
Page 66: A dvanced  E ncryption  S tandard
Page 67: A dvanced  E ncryption  S tandard
Page 68: A dvanced  E ncryption  S tandard
Page 69: A dvanced  E ncryption  S tandard

解密

Page 70: A dvanced  E ncryption  S tandard
Page 71: A dvanced  E ncryption  S tandard

Inv_Add_Round_Key

• 加上去的減回去

Page 72: A dvanced  E ncryption  S tandard

Inv_Mix_Columns

• 乘上去的除回去 (乘上 Inverse)

Page 73: A dvanced  E ncryption  S tandard

Inv_Shift_Rows

• 動出去的動回去

Page 74: A dvanced  E ncryption  S tandard

IInv_Sub_Bytes

• 被替代的找回原先面目

Page 75: A dvanced  E ncryption  S tandard
Page 76: A dvanced  E ncryption  S tandard
Page 77: A dvanced  E ncryption  S tandard

Do AES?

Page 78: A dvanced  E ncryption  S tandard

Totally Safe!

• 暴力攻擊 Safe!• 統計攻擊 Safe!• 差異攻擊 Safe!• 線性攻擊 Safe!• 弱金鑰 Safe!

Page 79: A dvanced  E ncryption  S tandard

天衣無縫 ??

• 沒有人是完美的 , AES 的弱點

– Side-channel attacks– XSL attack

Page 80: A dvanced  E ncryption  S tandard

怎麼辦 ?

Page 81: A dvanced  E ncryption  S tandard

等下一位高手來解決 !!別懷疑 ,

可能是你 !可能是我 !

Page 82: A dvanced  E ncryption  S tandard

報告到此 ,

謝謝各位 !!

參考資料 :

Wikipedia

Cryptography and Network Security(Behroz A. Forouzan)