aes演算法的地位 AES演算法介紹

2021-10-13 07:52:07 字數 2048 閱讀 2769

aes

演算法介紹

1.aes

演算法簡介

aes演算法是高階加密標準演算法的簡稱,其英文名稱為

advanced encryption standard

該加密標準的出現是因為隨著對稱密碼的發展

以前使用的

desdata

encryption

standard

資料加密標準)演算法由於金鑰長度較小

(56位

已經不適應當今資料加密安全性

的要求,因此後來由

joan daeman

和vincent rijmen

提交的rijndael

演算法被提議為

aes的最終演算法。

aes演算法所能支援的金鑰長度可以為

128,192,256

位(也即

個位元組)

。加之演算法本身複雜的加密過程使得該演算法成為資料加密領域的主流。

2.aes

演算法的基本概念

有限域(

gf由於

aes演算法中的所有運算都是在有限域當中進行的,所以在理解和實現該演算法之

前先得打好有限域這一基石才行。通常的數**算都是在實數域中進行,而

aes演算法

則是在有限域中進行,我們可以將有限域看成是有確定邊界範圍的正整數集合,在該集

合當中,任意兩個元素之間的運算結果都仍然落在該集合當中,也即滿足運算封閉性。

那麼如何才能保證這樣的「有限性」

(也即封閉性)呢?gfw

)被稱之為伽羅華域,是有限域的典型代表。隨著

w=4,8,16,

„)的取值不

同所形成的有限域範圍也不同。

aes演算法中引入了

gf域當中對數**算的基本定義:

將兩數的加減法定義為兩者的異或運算;

將兩數的乘法定義為多項式間的相乘並求餘運

算,其中被用於求餘運算的除數被稱為不可約多項式(或者稱為求餘多項式)

,它是固

定的乙個多項式:

m(x) =xx

xx(數值為十六進製制的

11b這裡是假定

w=8時的情形)

。對於某個有限域而言,可能存在不唯一的不可約多項式,選擇合適的多項

式是某種演算法考慮的主要因素之一。

有了上述對數**算的基本定義,就可以實現運算的有限性了。對於有限域具體的運

算過程和例項演示可參照有關資料。這裡不再贅述。

狀態矩陣和金鑰矩陣

狀態矩陣是指將要被加密的若干資料所形成的矩陣,

我們暫且用

state_matrix

來表示;

而金鑰矩陣則是指金鑰資料所形成的矩陣,

我們暫且用

cipher_matrix

來表示。

隨著輸入

資料個數的不同,這兩個矩陣的維數可以為

4,4或者

;例如如果輸入的被加

密資料為

個字元(此處假定是以字元為資料單位進行加密,當然也可以是以乙個整

數為單位等進行加密)

,輸入的金鑰資料為

個字元(假設與上同)

,那麼可以形成乙個維的

state_matrix

矩陣和乙個

維的cipher_matrix

矩陣。可見形成的矩陣的行

數是固定的,都為

。因為矩陣的形成是以每

個資料為一列依次構成,所以隨著資料

的增加只會增加其列數而不會影響其行數。並且我們用

nb表示被加密資料矩陣

state_matrix

矩陣)的列數,用

nk表示金鑰資料矩陣(

cipher_matrix

矩陣)的列數。

那麼有了上述兩個矩陣,我們就可以進行

aes的加密過程了。

擴充套件金鑰

擴充套件金鑰是從金鑰矩陣變換而來,之所以稱之為「擴充套件」是因為在

aes的加密過程

中,要對資料進行

nr+1

輪加密,每次加密的金鑰都不一樣,我們將著

nr+1

輪加密過

演算法 AES演算法優化

演算法優化主要就是在矩陣相乘中,優化的方式也很簡單,就是空間換時間。aes演算法的矩陣是有特點的,矩陣如下 02 03 01 01 01 02 03 01 01 01 02 03 03 01 01 02 每一豎行都是02 01 01 03 組成。分析矩陣相乘 02 03 01 01 a1 02 a1...

aes演算法小結

aes 一 是針對每個位元組進行調整,位元組的高四位對應行,低四位對應列。故定義的s盒是乙個16 16個位元組組成的矩陣。構成方法 1.在第i行,第j列存放的位元組是0xij 2.對矩陣中的每個位元組求其補 00的補是00 在gf 2 8,2的8次方 即係數在域mod2的8次多項式的域。如果將多項式...

AES密碼演算法

此演算法,是以金鑰128位為例,輸入輸出都是十六進製制。測試資料 明文 32 43 f6 a8 88 5a 30 8d 31 31 98 a2 e0 37 07 34 金鑰 2b 7e 15 16 28 ae d2 a6 ab f7 15 88 09 cf 4f 3c 密文 39 25 84 1d ...