宋曉靜
(保定職業技術學院,河北 保定 071000)
在物聯網技術飛速發展的背景下,雖然物聯網的智能化水平不斷提升,但是其安全性也受到了相應的威脅。在信息安全與隱私保護方面,物聯網終端的接入在一定程度上提升了數據信息泄露的概率。云計算技術作為現階段廣泛使用的一種數據存儲技術,在存儲技術的作用下,雖然為用戶訪問數據提供了便捷,但是在服務商系統出現問題后,云端的數據也會出現泄露、丟失的情況。為了有效提升數據的安全性,保護用戶數據隱私,在數據上傳前需對其進行相應的加密處理。高級加密標準(Advanced Encryption Standard,AES)作為現階段常用的一種加密方案,雖然在一定程度上提升了數據存儲的安全性,但是也存在相應的不足。AES屬于一種對稱加密算法,可同時處理128位數據塊。在采用此種算法進行加密的過程中,需在4×4的位元矩陣上進行加密,其加密步驟為:替換字節→行位移→列混淆→加輪密鑰,除了替換字節之外,其他步驟均為線性。由此得知,128位的輸出塊屬于輸出位的線性組合,并且后3個步驟在具體的實現難度上相對較低[1]。此外,由于字節替換為非線性,需通過施加S盒完成替換,目前主要是通過查表法實現S盒,由于此種方法在AES算法中存在相應的缺陷,導致硬件開銷增大。針對此種情況,本文在AES隱私保護加密算法的基礎上,對其進行了優化。
在通常情況下,若使用S盒代替 AES中的混亂原則,需通過混合列運算的方式來實現,在 AES加密算法的優化中,主要是從擴散性上進行改進[2]。目前,學術界主要是將擴散分支數作為擴散能力的指標,具體描述如下。
假設,F為加密過程中的字節向量,在對其進行線性變換后,可將其表示為(F2m)n→(F2m)n,非零字節W(α)數量則通過權重的方式進行表示。此時線性變換后的分支數量可通過下列公式進計算,即:
(1)
在式(1)中,α=(α1,α2,…,αn)∈(F2m)n。此時,AES使用的變換函數為:
(F28)4/x4+1
(2)
此時,變換過程中使用的可逆多項式為c(x),且ci≠0|0≤i≤3。由此得知,W(α)的取值范圍為{1,2,3,4}。
假設:
α=[α0,3α1,α2,α3]T∈(F28)4
(3)
f(α)=[b0,b1,b2,b3]T
(4)
在W(α)=1的情況下,可得:
bi=ci+3bmod4·aixjbmodx4+1≠0
(5)
由此得知,W(α)+W(f(α))=9;
在W(α)=i|2≤i≤4的情況下,若α、f(α)≠0,則W(α)+W(f(α))≥i+1。對于擴散分支數的上界而言,需滿足B(f)≤n+1=5,由此得出(F28)4/x4+1的分支區間位于[3,5]。當使用AES算法的過程中,采用了相對交單的多項式,即:
c(x)+03·x3+01·x2+01·x+02
(6)
由此得知B(f)=5,可滿足擴散層的需求。
在 AES算法中,列混淆主要是利用循環矩陣最大距離可分碼的特點。
若矩陣G由線性碼(n,l,d)生成,則有:
d=n-l+1
(7)
式(7)中,n、l分別表示碼長、碼維。
假設矩陣C在有限域為GF(28)上的最大可分碼為(6,3,4),則矩陣G可表示為:
G=[I|C]
(8)
此時線性碼生成的矩陣G為矩陣C中最右邊的一塊,在矩陣G中,I為一個3階單位的矩陣。為確保加密過程中線性變換始終保持矩陣的長充,并且字碼之間的距離未發生變化,則不需要考慮矩陣C左邊的部分,即構建最大距離可分碼的矩陣是最優擴散層的充要條件[3]。
本研究主要是采用8×8的哈達瑪矩陣來進行擴充,將分支數從最初的5逐漸擴展至9,此時最大的線性分碼為(16,8,9),哈達瑪矩陣定義如下。
若哈達瑪矩陣中包含n個元素(α1,α2,α3,…,αn),則矩陣中每個元素的構造可表示為:
Ai,j=αi⊕ j
(9)
在GF(28)中有:
A2=k·In(k為常數)
(10)
在k取1的情況下,矩陣A為對合矩陣。
例如,哈達瑪系數為{01,03,04,05,06,08,0B,07}時,其對應的構造矩陣為:
(11)
對于 AES而言,可通過大小為4×4的矩陣表示其中的16字節狀態,在對其進行優化改進后,通過大小為8×2的字節表示其中列混淆狀態信息,并將其與A進行相乘,然后再將積進行轉換處理,以此便能得到大小為4×4的矩陣。由于A屬于對合矩陣,在將其進行逆轉后,其狀態信息保持不變。因此,在列混淆的過程中,可降低電路解密的復雜充,以此來減少硬件上的開銷[4]。
1.2.1 暴力攻擊
此種攻擊方式較為復雜,在破解密碼是難度相對較大,難以在破解過程中獲取對應的密鑰。
1.2.2 差分攻擊
此種攻擊方式消耗的時間相對較長,并且損耗的數據量大,只需通過 AES算法中的寬軌跡策略便能防御。
1.2.3 線性攻擊
此種方法主要是通過線性分析的方式對S盒進行攻擊,由于優化后S盒為非線性,改進后的AES算法可對其進行有效防御。
通過上述分析發現,優化后的AES加密模式具備較強的數據防護能力,這主要是由于S盒可通過逆運算來構造相應的差分分布表,在一定程度上提升了存儲數據的安全性。
在用戶采用優化改進后的AES進行云數據加密前,需根據云服務上的標識獲取相應的API接口,然后再通過對應的標識符獲取相應的權限,此時用戶便能通過相應的操作渠道發送相應的數據操作請求。在得到允許后,便可以根據用戶的實際需求設置對應的密鑰參數,自動生成密鑰,最后再確定相應的輪數;輪數確定后,對密鑰進行擴展,可通過擴展函數Key Expansion實現;擴展完成后,將用戶需要輸入的數據進行16字節分組,若部分數據不屬于16字節倍數,需用字節填充,填充完成后,將原密鑰以及分組狀態進行加輪,然后再使用S盒替換查表,同時完成行位移,此時矩陣形式便會轉變,進而得到大小為8×2的矩陣;在獲取相應的轉換矩陣后,根據上述操作將其與哈達瑪矩陣相乘,此時便能得到大小為4×4的狀態矩陣;選擇擴展密鑰其中的一個輪密鑰,對其進行加輪,在輪數小于n-1時,需重新進行行位移,在輪數等于n-1時,則可進行下一步操作[5]。
此時,用戶便可通過API接口將加密后的數據上傳至云端,云端會將生成的擴展密鑰保存至用戶管理中心,在用戶需要訪問存儲的數據信息時,通過建立連接通道的方式,下載云端中的加密文件,并從管理中心取出對應的密鑰,對其進行解密后便能獲取相應的數據信息。
當前使用AES算法的硬件多為8位或者是16位的單片機。CPU的參數為16位核心,主頻率為20 MHz以及一個32 kB容量的閃存。實驗的加密模擬結果如下。
為分析AES算法優化前后的加密模擬結果,分別對其進行10輪模擬,結果如表1所示。
表1 10輪優化前后的AES算法加密模擬結果
通過分析表1的數據得知,優化前后加密結果只是在列混淆上存在差異,其他均相同。兩種加密模式的時鐘周期對比如圖1所示。
圖1 兩種加密模式的時鐘周期對比
從圖1中可明確看出,優化后的AES列混淆時所消耗的周期相對較長,相比優化前多出了40個周期,說明AES優化后的加密需多出5%的時間消耗,但是由于優化前后的開銷處于同一數量級,雖然優化后的AES花費時間較長,但是擴展能力相對較高,并且安全性較高,由此說明了優化后的AES算法對數據隱私的保護較為安全。
為有效提升數據隱私保護的安全性,在傳統AES模式的基礎上對其進行優化,通過哈達瑪矩陣實現矩陣的替換,不僅有效擴展了分支數,而且擴展性也不會給算法造成太大的性能開銷,可有效滿足云計算環境下數據隱私保護的需求。