(中共陜西省委黨校(陜西行政學院)文化與科技教研部,西安 710075)
大數(shù)據(jù)是指數(shù)據(jù)規(guī)模較大,無法使用現(xiàn)有技術進行存儲和處理的數(shù)據(jù)集,用戶的隱私和數(shù)據(jù)安全問題一直是大數(shù)據(jù)領域研究的重點。隨著大數(shù)據(jù)技術的逐漸成熟,大數(shù)據(jù)技術被廣泛的運用到各個領域,大數(shù)據(jù)加密算法和方案的研究受到廣泛關注。
在現(xiàn)有研究中,文獻[1]采用超混沌分組加密和AES混合加密方案,雖然提高了算法的執(zhí)行效率,但是忽視了AES加密算法的S盒迭代循環(huán)周期短的問題,文獻[2]采用雙混沌系統(tǒng)設計出一個數(shù)據(jù)加密模型,雖然也能夠提高數(shù)據(jù)加密的效率和安全性,但是沒有考慮到AES算法。本研究基于以上內容,對兩組三倍混沌進行改進和AES算法進行改造生成兩個新的四維混沌系統(tǒng)和新的AES算法,采用兩個四維混沌系統(tǒng)設計出一個分組加密方案,最后在Hadoop平臺上與改進AES算法融合成一個加密算法。
Hadoop是一個分布式大數(shù)據(jù)平臺,主要由HDFS和MapReduce兩個核心組件組成,HDFS主要負責數(shù)據(jù)的分布式存儲,MapReduce主要負責數(shù)據(jù)的分布式計算[3]。
MapReduce會將從HDFS傳輸過來的數(shù)據(jù)集分成若干個獨立部分,然后由Map任務對這些獨立的部分分別進行并行運算來完成對它們的處理,運算的結果則會傳輸給Reduce任務[4]。一般情況下,中間過程的運算結果會存儲在本地磁盤中,只有最終的輸出結果和輸入會存儲在HDFS中。
超混沌系統(tǒng)相比混沌系統(tǒng)在加密領域具有更高的應用價值,因為其具有更為復雜的動力學行為[5]。
文獻[6]提出了一種三維連續(xù)自治的混沌系統(tǒng),其狀態(tài)方程為:
(1)
式(1)中,a,b,c,d為該三維系統(tǒng)的實際參數(shù),x,y,z為該三維系統(tǒng)的狀態(tài)變量。該系統(tǒng)在a=20,b=5,c=10,d=7時會產(chǎn)生混沌吸引子,此時該系統(tǒng)會變成超混沌狀態(tài),產(chǎn)生3個Lyapunov指數(shù),分別為LE1=1.237 1,LE2=-0.029 1,LE3=-16.448 4。
(2)
經(jīng)過計算和分析,該系統(tǒng)在a=20,b=5,c=10,d=2時的3個Lyapunov指數(shù)為LE1=2.051 8,LE2=-0.017 2,LE3=-17.406 1,相比文獻[6]中提出的混沌系統(tǒng),可以很明顯看出本研究的混沌系統(tǒng)的3個Lyapunov指數(shù)遠大于文獻[6]的混沌系統(tǒng)Lyapunov指數(shù),因此本研究的混沌系統(tǒng)具有比文獻[6]混沌系統(tǒng)更復雜的動力學特性,比文獻[6]中的混沌系統(tǒng)更非常適合用于大數(shù)據(jù)加密研究。
但是,該系統(tǒng)存在計算資源消耗高和結構復雜等問題,為此,采用狀態(tài)反饋控制法,引入一個第四維的狀態(tài)變量w[7],并將狀態(tài)變量w引入到式(2)中的的第二個方程中,能夠得到一個新的四維混沌系統(tǒng):
(3)
該系統(tǒng)相比傳統(tǒng)的超混沌系統(tǒng),只有兩個非線性項,結構更加簡單,除此之外,在相同的計算資源下,能夠產(chǎn)生比文獻[6]更長的混沌序列,因此比文獻[6]的混沌系統(tǒng)更適用于大數(shù)據(jù)加密。
文獻[8]提出一個三維Bao混沌系統(tǒng),其數(shù)學模型為:
(4)
該系統(tǒng)中包含兩個非線性項的連續(xù)自治微分方程,式(4)中,a,b,c為該三維系統(tǒng)的實際參數(shù),x,y,z為該三維系統(tǒng)的狀態(tài)變量。該系統(tǒng)在a=20,b=4,c=32時會產(chǎn)生混沌吸引子,此時該系統(tǒng)會呈超混沌狀態(tài),產(chǎn)生3個Lyapunov指數(shù),分別為LE1=2.887 3,LE2=-0.011 5,LE3=-18.904 9。
(5)
經(jīng)過計算和分析,該系統(tǒng)在a=20,b=8,c=32,d=3,e=5.7時,的3個Lyapunov指數(shù)為LE1=4.294 2,LE2=-0.006 2,LE3=-24.335 9,相比文獻[8]中提出的混沌系統(tǒng),可以很明顯的看出改進后的混沌系統(tǒng)的3個Lyapunov指數(shù)遠大于文獻[8]的混沌系統(tǒng)Lyapunov指數(shù),因此改進后的混沌系統(tǒng)的動力學特性比文獻[8]更復雜,比文獻[8]更適合用于大數(shù)據(jù)加密研究。
同樣的在式(5)的基礎上引入一個第四維的狀態(tài)變量w和一個控制參數(shù)d,然后將反饋控制項添加到式(5)的第一項中,能夠得到一個四維超混沌系統(tǒng):
(6)
該系統(tǒng)在a=20,b=8,c=32,d=3,e=5.7時會產(chǎn)生超混沌吸引子,在系統(tǒng)結構、計算資源消耗上比文獻[8]的混沌系統(tǒng)更有優(yōu)勢。
S盒是AES算法的重要組成部分之一,而傳統(tǒng)的S盒迭代周期短,導致加密的安全性不高,存在被破解的可能,因此本研究對AES的S盒進行改進[9]。
在AES算法中,S盒運算是一種作用于狀態(tài)字節(jié)的可逆的非線性變換運算,其定義為:
(7)
式(7)中,ai ,j-1為ai,j在GF(28)域中的乘法域:
(8)
因為有關運算是在GF(28)域上進行,所以運算產(chǎn)生的計算結果也會在GF(28)域上,最終產(chǎn)生的S盒是由16×16個字節(jié)組成的矩陣,并且最終的結果具有非線性度,因為計算的過程使用了乘法逆[10]。
提高S盒的迭代周期方法有采用不同的仿射變換對、改變S盒的計算順序等方式[11]。因此本研究采用文獻[12]中的新仿射變換對(A7,6F)對傳統(tǒng)的S盒進行改進,改進的方法是采用新的仿射變換對(A7、6F)進行兩次仿射變化,兩次變換之間要求乘法逆。
在設計混沌密碼的過程中,當加密算法選擇的是連續(xù)時間混沌系統(tǒng)時,需要注意連續(xù)混沌序列離散化、密鑰參數(shù)選取對算法性能的影響[13],除此之外,還要保證算法的安全性和實用性?;谝陨蟽热?,本研究的大數(shù)據(jù)加密方案如下:
(1)選取密鑰參數(shù)。選取密鑰參數(shù)的前提是混沌系統(tǒng)處于超混沌態(tài),通過試驗和計算系統(tǒng)達到超混沌系統(tǒng)時的參數(shù),保持參數(shù)不變,選取的密鑰參數(shù)為上述兩個超混沌系統(tǒng)的8個初始值,這樣能夠保證算法具有足夠大的密鑰空間[14]。
(2)對混沌序列進行預處理。第一步對混沌系統(tǒng)進行離散化處理,本研究采用的是四階RungeKutta法,第二部舍棄迭代序列的前100個值,舍棄前100個值的原因是為了讓生成的混沌序列的隨機性高[15],第三步對混沌序列進行相關運算,使得混沌序列能夠適應于字節(jié)加密,計算方法為:
(9)
式(9)中,mod為模去余數(shù)運算,i=1,2,??為向下取整運算,px(i)(k),py(i)(k),pz(i)(k),pw(i)(k)為經(jīng)過計算得到的8個混沌序列,它們的取值范圍為[0,256]。
(3)混淆處理。超混沌系統(tǒng)生成的狀態(tài)變量會存在一定的關聯(lián)性,在被攻擊時,這些關聯(lián)性會為攻擊者提供一定的信息,會提高被攻破的概率,為了提高算法的性能,減少被攻破的概率[16],本研究對生成的兩組混沌序列進行混淆處理,混淆處理的方法為:
(10)
式(10)中,⊕為異或運算符號,pi(k),i=1,2,3,4為經(jīng)過運算后得到的可以用于大數(shù)據(jù)加密的超混沌序列,最終得到的這些序列之間的關聯(lián)性全部被破壞,從而提高了算法的安全性[17]。
(4)分組加密。將步驟(3)中得到的4個序列對數(shù)據(jù)進行加密,加密方法是將數(shù)據(jù)按字節(jié)分組,每4個字節(jié)為一組進行加密,具體的加密過程為:
(11)
式(11)中,M為需要進行加密處理的數(shù)據(jù)明文,C為經(jīng)過超混沌分組加密后得到的密文。加密方案如圖1所示。
圖1 超混沌系統(tǒng)加密方案
本研究的加密算法是在Hadoop大數(shù)據(jù)平臺上實現(xiàn)的,采用Hadoop平臺中的MapReduce編程模塊對加密算法進行編程,MapReduce由Map和Reduce兩個函數(shù)組成,其中Map函數(shù)負責將上述超混沌數(shù)據(jù)加密和改進AES算法進行融合[18],Reduce函數(shù)負責在數(shù)據(jù)加密完成后的將所有的數(shù)據(jù)合并。具體步驟為:
(1)對大數(shù)據(jù)集進行分片處理,將存儲在HDFS上的大數(shù)據(jù)集按照Hadoop2.0的默認大小進行分塊,每塊128 MB。
Output:
call farctional-hyperchaos-Ⅰ(KCHAOS)
call farctional-hyperchaos-Ⅱ(KCHAOS)
C(4(k-1)+1)=M(4(k-1)+1)⊕p1(k)
C(4(k-1)+2)=M(4(k-1)+2)⊕p2(k)
C(4(k-1)+3)=M(4(k-1)+3)⊕p3(k)
C(4(k-1)+4)=M(4(k-1)+4)⊕p4(k)
call AES-encrypt(KAES)
其中:KCHAOS為超混沌系統(tǒng)密鑰,KAES為改進AES算法密鑰。
(4)數(shù)據(jù)合并完成后,會存儲在HDFS上,存儲完成后即完成整個加密過程。
同樣的解密算法的設計基本與加密算法相同,唯一不同的是解密算法中的Map函數(shù)進行的是解密操作而不是加密,只有當解密密鑰和加密密鑰完全匹配時,才會得到原始的明文數(shù)據(jù),如果不能完全匹配,則不能得到明文數(shù)據(jù)[21]。因為采用了具有更加復雜動力學的超混沌系統(tǒng)和迭代周期長的AES算法,使得本研究的加密算法的安全性得到了很大的提高。
選擇在實驗室內采用高性能計算機對本研究的算法進行驗證,計算機的硬件配置CPU為,inter corei7-9700H,運行內存為3 200 MHz 8 G×2,硬盤大小為512 G固態(tài)。首先需要部署多個虛擬機,虛擬機的布置采用的是VMware workstation 12軟件,虛擬機的配置為單核CPU和1 GB的運行內存,然后再虛擬機上部署Hadoop大數(shù)據(jù)平臺,Hadoop的版本為2.7.3,算法的編程采用的是JAVA,JAVA版本為Jdk8,IDE的開發(fā)環(huán)境為Eclips3.8。試驗所用的數(shù)據(jù)為大小為1 GB和2 GB的大數(shù)據(jù)集,采用Map對其進行默認分塊,每塊的大小為128 MB。
首先對本研究算法的密鑰長度進行驗證,驗證方法為對比驗證,對比的對象為文獻[1]、文獻[2]、文獻[6]和文獻[8]中的加密算法,本研究的加密算法的密鑰長度為超混沌系統(tǒng)的長度和改進AES算法長度之和,本研究將兩個超混沌系統(tǒng)的初始值作為超混沌系統(tǒng)密鑰參數(shù),密鑰空間可以表示為:
KCHAOS∈{x1(0),y1(0),z1(0),w1(0),x2(0)y2(0),z2(0),w2(0)}
這里設置密鑰的精度為10-15,然后選取雙精度的密鑰參數(shù),通過計算可以得到超混沌系統(tǒng)的密鑰長度為432 bit,在再加上改進AES算法的256 bit,一共為688 bit。將本研究算法的密鑰長度與其他文獻算法的密鑰長度進行對比,可以得到表1數(shù)據(jù)。
表1 密鑰長度對比
從表中數(shù)據(jù)可以看出,本文算法的密鑰長度明顯高于其他算法,密鑰長度能夠影響密文被破譯的難度,密鑰的長度越長,則被破譯的可能性就越低,算法的安全性就越高。
然后對本文算法的效率進行驗證,將本文算法中的超混沌加密方案和改進AES算法的效率分別進行驗證,采用兩種算法對上述1 GB和2 GB大小的數(shù)據(jù)集分別進行加密,逐步增加計算節(jié)點,統(tǒng)計不同節(jié)點下的加密時間,可以得到圖2的加密時間對比圖。
圖2 加密時間對比圖
從圖2中可以看出,雖然本研究的算法計算時間略微高于AES算法,但是隨著計算節(jié)點的增加,本研究算法的計算效率顯著提高。
最后對算法密鑰的敏感性和統(tǒng)計性進行分析,密鑰的敏感性決定算法的安全性,試驗結果表明,只有當密鑰完全匹配時,才會得到明文數(shù)據(jù)。當密鑰的參數(shù)誤差為10-15時會產(chǎn)生雪崩效應,無法獲取明文數(shù)據(jù),并且會生成跟明文數(shù)據(jù)具有較大差異的密文,此時的密鑰參數(shù)解密數(shù)據(jù)直方圖如圖3所示。
圖3 微小誤差下的密鑰參數(shù)解密數(shù)據(jù)直方圖
從圖中可以看出本研究算法的密鑰敏感性優(yōu)秀,在達到臨界值后能夠產(chǎn)生雪崩效應,使得破譯的難度增大。
加密前后的數(shù)據(jù)字節(jié)數(shù)據(jù)值對比如圖4所示。
圖4 加密前后的文本數(shù)據(jù)統(tǒng)計圖
從圖中可以看出,原始具有一定規(guī)律分布的明文數(shù)據(jù)經(jīng)過本研究算法的加密之后呈無相關性的隨機分布狀態(tài)。
綜上所述,本研究的大數(shù)據(jù)加密算法性能優(yōu)秀。
本研究將利用MapReduce將雙超混沌加密算法與改進AES算法合并生成一個新的加密算法,通過試驗證明了算法的可行性,并得出以下結論:
1)數(shù)據(jù)加密中密鑰的空間大小會影響加密算法的安全性,本研究將兩個三維混沌系統(tǒng)進行改造生成了兩個四維混沌系統(tǒng),提高了混動加密方案的密鑰長度。
2)傳統(tǒng)的AES加密算法的迭代周期短,可能會存在被破譯的風險,本研究采用新的仿射變換對生成一個新的S盒序列,提高了AES算法的迭代周期。
3)混沌系統(tǒng)具有非常復雜的動力學特性,不僅能夠用于數(shù)據(jù)加密,還能用于其他類型文件的加密,系統(tǒng)的維數(shù)越高,動力學特性越復雜,加密效果越好。
實驗結果表明,本研究的數(shù)據(jù)加密算法具有密鑰空間大、安全性能高,加密效率高等優(yōu)勢,在網(wǎng)絡數(shù)據(jù)安全保護方面具有一定的研究價值,但是由于人為疏忽,難免會存在一些問題,在后續(xù)的研究中需要進行相應的改進和完善。