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