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