對稱式加密 – AES 演算法(區塊加密)

對稱式加密 – AES 演算法的程式實作

對稱式加密可以用在哪裡呢?

以無線網路加密為例,在室內擺放的Wifi路由器,其常見加密機制是Wi-Fi Protected Access (WPA)與WPA2,即支援運用AES加密演算法。
圖一、tp-link路由器 圖二、路由器設定畫面
少了加密演算法有多重要呢? 最直接的影響就是無線網路將處於易受攻擊的狀態,信用卡、密碼、聊天記錄、照片、電子郵件等都有可能被駭客竊取。

AES 演算法 - 前置步驟一(準備狀態陣列)

AES演算法透過區塊加密的方式,將明文以128個bits為一個區塊,使得每個區塊在多回合運算後能產出密文。讓我們操作AES演算法,理解演算法如何守護資料安全吧!
【步驟一】
將明文與金鑰由上至下、由左至右轉換為 狀態陣列 (State Array) 的形式 ,方便進行AES加密。
明文:

這段明文以多少bits儲存?

明文的狀態陣列:

資料被分為四乘四陣列,包含 16 個字元,每個字元包含8bits。


初始金鑰:
初始金鑰的狀態陣列:
資料被分為四乘四陣列,包含 16 個字元,每個字元包含 8bits。
※請將上方表格中的每一個十六進制字元依序填入狀態陣列中。(提示: 由上至下、由左至右)
 

AES 演算法 - 前置步驟二(準備每回合使用到的金鑰)

在此以AES-128 演算法為例,共需要進行10回合 (10 rounds)。

需經過先利用金鑰擴充的方式產生後續10把回合金鑰(如下圖所示),至於金鑰擴充的過程較為繁瑣,可自行延伸學習。

你剛剛填答完成的初始金鑰便是第0回合(Round 0)的金鑰,我們先將該金鑰以狀態陣列的形式前往下一步運算。


AES 演算法 - 四大函式

【步驟二】
請你分別操作以下四個函式,結束一回合的AES加密過程。
回合鑰匙加法運算 位元組取代運算 列移位運算 混合行運算

函式功能:明文與 Round 0 Key相對應的矩陣值進行XOR運算,產生新的狀態陣列。

※目前「新的狀態陣列」有部分數值尚未計算完成,請分別在「明文」與「Round 0 key 」矩陣按下相對應的十六進位數值,經過XOR運算後,將十六進位數值填入「新的狀態陣列」中。
明文
XOR
Round 0 key
=
新的狀態陣列
3C 63
1F 22 74
0E 08 1B 31
59 1A
XOR運算區

十六進制為:
 
目前狀態陣列的執行階段

完成 AES 演算法!

➢ 恭喜你實際演練了 AES 演算法中,四大函式的重要精隨!原來AES演算法就是這樣保護wifi路由器的資料安全!

接下來的第2~9回合一樣依序經過四大函式的運算,比較特別的是,在最後第10合僅使用3個函式運算,輸出最終密文,完成AES加密。