本專題透過AES (Advanced Encryption Standard,進階加密標準) 演算法做為加密的工具,利用捲積與有限體加法的特性減少AES-MixColumns矩陣運算所需乘法數,再尋找成對的多項式與反元多項式作為循環矩陣的係數,達成動態更換循環矩陣係數的效果,進一步增強資料安全性。最終將技術於STM32L476VG CPU和Windows C#進行實作與效能分析。
根據定義AES MixColumns運算如下:
D(x)≡A(x)B(x)mod T(x)
T(x)=x^4+1,A(x)=a_0+a_1 x+a_2 x^2+a_3 x^3,
B(x)=b_0+b_1 x +〖 b〗_2 x^2+〖 b〗_3 x^3 , b_i "," a_i∈GF(2)
從上述多項式運算,可以表示矩陣運算如下:
左述循環矩陣運算需要16個乘法數與12個加法數,此方法稱為(16M, 12A)。本專題利用捲積與有限體加法的特性進行AES-MixColumns和InvMixColumns矩陣運算改良,最終將方法簡化至(6M, 14A) 。
s_0=b_0+b_2, s_1=b_1+b_3, s_2=a_0 s_0+a_3 s_1,
s_3=a_1 s_0+a_0 s_1 〖, s〗_4=b_2+b_3, s_5=b_0+b_1,
w_0=a_0+a_2 〖〖, r〗_0=w_0 s_4, r〗_1=w_0 s_5,
d_0=s_2+r_0+b_3 〖, d〗_1=s_3+r_0+b_2,
d_2=s_2+r_1+b_1, d_3=s_3+r_1+b_0
AES解密過程必須有反元多項式E(x),才可以還原加密資料,本專題透過MixColumns與InvMixColumns的幾項特性進行尋找: