• 沒有找到結果。

第三章 相關技術(Related Technology)

3.6. AES

由於 802.11 的認證問題與 WEP 的加密問題是眾所周知的,IEEE 組織於是使用 TKIP 及 802.1x 來補強這些問題。同時,IEEE 也在尋求 一個更強而有力的加密機制。於是在 802.11i 的標準,IEEE 採用了 Advanced Encryption Standard (AES)來當做資料加密的標準。

AES 是 由 美 國 National Institute of Standards and Technology(NIST)組織所認可的新一代資料加密的標準[23]。它也是目 前美國政府單位所用來保護機敏資料的加密標準(FIPS-197)。當初是 由 NIST 向各密碼學團體尋求一個新的加密演算法,這個演算法必須是 完全公開而且無須負擔專利權版稅的。在 NIST 的規範中,AES 密碼 系統最低需求必須符合下列幾點:

l 必須是區塊密碼系統 l 區塊長度最低為 128-bit l 加密金鑰長度最低為 128-bit

l 安全強度必須大於或至少等於 3DES,但效率必須大幅提高。

在 NIST 公告徵求下一代的區塊密碼系統 AES 之後,共有 MARS 等 15 個 AES 候選者演算法;1998 年 8 月開始 15 個 AES 候選者演算 法的第一回合技術分析;1999 年 3 月舉辦 AES 第二次會議,討論第 一回合中提出的技術分析;同年 4 月結束第一回合的技術分析,選出 5 個 AES 候選者,分別是 MARS、RC6、Rijndael、Serpent、Twofish;

2000 年 4 月舉辦 AES 第三次會議;NIST 並針對這 5 個 AES 候選者 進行更深入的分析,2000 年 5 月發對這 5 個 AES 候選者的公開評論 和分析;最後由 Rijndael 演算法脫穎而出,NIST 在 2000 年 10 月公 開選定 Rijndael 的區塊密碼(Block Cepher)系統成為 AES 標準中的加 密演算法。Rijndael 是由 Joan Daemen 和 Vincent Rijmen 所設計,它

是一個利用固定大小的區塊(state)及不同長度的 key,反覆運算的區塊 加密器。區塊長度為 128-bit,加密金鑰的長度可為 128、192、256-bit,

重複運算的次數分別為 10、12、14。AES 是以速度、安全及簡易度優 勝,能在絕大部份的處理器及硬體上應用。

關於 Rijndael 演算法的細節,可參考 Rijndael 演算法的網站[24],

或 是 NIST 組 織 中 有 關 AES 標 準 的 網 頁 [25] 。 其 讀 法 可 讀 為” rhine-doll"。

AES 是一個對稱式金鑰區塊加密法,這把對稱式的金鑰可以同時 用來加密及解密。AES 支援了 128、192 及 256-bit 三種金鑰長度,愈 長的金鑰代表其擁有愈強的安全性。區塊加密法是運作於固定長度的 位元組,不像串流加密法(例如 WEP 中所使用的 RC4 演算法),是一 次轉換一個位元組。這個區塊的大小即稱為 block size,AES 使用了 128-bits 的 block size,如果欲加密的資料長度不是 block size 的倍數,

使必需要有一個塞充的機制將資料長度擴充成 block size 的倍數。區 塊加密法可以有許多的操作模式,例如 Electronic Codebook(ECB)模 式、Counter(CTR)模式以及 Cipher-Block Chaining(CBC)模式等等。

ECB 模式

ECB 模式是最區塊加密法最簡單的方式,它先將加密訊息 M 切割 成 M1,M2…Mn等等區塊,然後再將每個區塊單獨加密之,可用下列公 式表示之:

For i=1 to n do Ci ß Ek(Mi)

Ek表示使用 K 金鑰的加密函式,最後每個區塊會加密成 C1,C2…Cn 等等的加密訊息。解密的話則反向操作之,如下列表示式:

For i=1 to n do Mi ß Dk(Ci)

Dk則表示使用 K 金鑰的解密函式。

ECB 是最不安全的加密模式,因為相同的兩個明文區塊會產生兩 個相同的加密區塊,這些資訊對攻擊者會非常有用。ECB 的加解密流 程可參考下圖。

圖 13 ECB 模式

Counter 模式

Counter 模式則是透過計數器遞增的方式來輔助加密。我們一樣的 把訊息 M 切割成 M1,M2…Mn等等區塊,可用下列公式表示之:

Counter ß 0

For each message M = M1,M2…Mn Initial-counter ß counter

For i=1 to n do Ci ß Mi⊕Ek(counter), counter ß counter+1 Encrypted-message = initial-counter C1,C2…Cn

由上述公式可知,CTR 模式是將 counter 加密再與明文做 XOR 運 算來產生密文,之後再將 counter 遞增以運算後續的區塊。最後再將

initial-counter 包在加密區域之前傳送給對方,以告知 initial-counter 為 何。解密端則依反向操作取得明文:

For an encrypted message C = initial-counter C1,C2…Cn Counter ß initial-counter

For i=1 to n do Mi ß Ci⊕Ek(counter), counter ß counter+1 M = M1,M2…Mn

CBC 模式

CBC 模式是區塊加密法中最常被使用的方法,一開始先選定一個 initialization vector(簡稱 IV),加密過後的區塊再當做下次的 IV 與下一 個區塊一起加密。跟 CTR 模式一樣,CBC 模式也可以防止同樣的明 文區塊產生一模一樣的密文區塊,以防有心人士攻擊。CBC 模式可用 下列公式表示之:

For each message M = M1,M2…Mn

IV ß randomly selected value

For i=1 to n do Ci ß Ek(Mi⊕IV), IV ß Ci Encrypted-message = initial-IV C1,C2…Cn 解密端則依反向操作取得明文:

For an encrypted message C = initial-IV C1,C2…Cn IV ß initial-IV

For i=1 to n do Mi ß Ci⊕Dk(IV), IV ß Ci M = M1,M2…Mn

CBC 模式的加密流程可參考圖 14。解密流程請參考圖 15。

圖 14 CBC 模式的加密流程

圖 15 CBC 模式的解密流程

3.6.1. AES 用於 802.11i

目前 IEEE 802.11 TGi(Task Group i)所定義的 802.11i 標準中是 使用 CCMP (Counter-Mode/CBC-MAC Protocol)的加密協定來提供加 密性、認證性以及完整性等功能。

CCMP 加密協定使用 AES 演算法中的 CCM 模式。CCM 結合了 Counter Mode 的方式提供資料加密性,另外以 CBC-MAC 方式來提供 資料的完整性。CCM 是使用 128-bit 的金鑰長度來做資料加密。這樣

的方式不但擁有良好的加密特性,而且不管在軟體或硬體上皆可提供 足夠的安全性及效能。

在文檔中 無線網路安全之研究 (頁 44-50)