a dvanced e ncryption s tandard

Post on 01-Jan-2016

57 Views

Category:

Documents

4 Downloads

Preview:

Click to see full reader

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

TRANSCRIPT

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

大綱• What AES?

– 何謂 AES?

• Why AES?– 為何需要 AES?

• How AES?– AES 如何運作 ?

• Do AES?– AES 安全嗎 ?

What AES?

何謂 AES?

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

• 又稱 Rijndael 加密法

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

Why AES?

DES

• 原有的 Data Encryption Standard

DES 不夠安全嗎 ??

DES 不夠安全 - 暴力破解

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

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

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

DES 不夠安全 - 差異破密

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

• C2 = P2 K

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

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

DES 不夠安全 - 線性破密

• DES 使用 16 個 S – Box

• S – Box 不是完全非線性

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

DES 不夠安全 - 弱金鑰

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

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

多重 DES 依然不夠安全

• 中間相遇攻擊

How AES?

AES 核心概念 Add_Round_Key : Key Expansion

Sub_Bytes : Intra-byte( 位元組內 )

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

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

AES 核心概念 Add_Round_Key : 擴展

Sub_Bytes : 取代

Shift_Rows : 排列

Mix_Columns : 混合

AES 的狀態

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

AES Function 解析

AES 金鑰選擇

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

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

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

AES 明文狀態

• 明文轉換成狀態區塊

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

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

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

預先轉換回合

AES 加密第一步驟

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

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

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

– 與狀態明文做矩陣加法

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

Sub Bytes

SubBytes

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

SubBytes 查表

SubBytes 查表

表怎麼來的 ??

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 次 )

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

Shift Rows

Shift Rows

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

Shift Rows

Mix Column

Mix Column

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

常數矩陣

Add Round Key

Add Round Key

只有這樣 ??

每一回合 Key 都不一樣Key expansion

Key Expansion

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

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

AES 金鑰擴展程序

AES 金鑰擴展程序

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

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

– > t 是什麼 ??

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

t ??

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

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

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

t ??

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

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

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

t ??

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

• RCon : 回合常數

AC20177D⊕

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

t = AD20177D

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

1. SubBytes2. ShiftRows3. MixColumns4. AddRoundKey

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

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

一回合加密完成

AES-128 重複步驟 10 回合

加密完成 , 解密 ??

Let‘s  Review

解密

Inv_Add_Round_Key

• 加上去的減回去

Inv_Mix_Columns

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

Inv_Shift_Rows

• 動出去的動回去

IInv_Sub_Bytes

• 被替代的找回原先面目

Do AES?

Totally Safe!

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

天衣無縫 ??

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

– Side-channel attacks– XSL attack

怎麼辦 ?

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

可能是你 !可能是我 !

報告到此 ,

謝謝各位 !!

參考資料 :

Wikipedia

Cryptography and Network Security(Behroz A. Forouzan)

top related