梁永堅 黎銳杏 韋田 黃慷
(1.廣西電網有限責任公司 廣西壯族自治區南寧市 530023 2.廣西社會科學院 廣西壯族自治區南寧市 530022)
(3.廣西電網有限責任公司來賓供電局 廣西壯族自治區來賓市 546100)
進入新世紀以來,物聯網對數據的感知、云計算對數據的存儲利用,促進了以快速分析數據提供有價值的判斷能力的大數據時代的到來,海量數據的分析提煉收到人民的普遍關注,數據呈現出TB級規模的增長態勢,高價值的數據逐漸成為競爭的核心所在。與此同時,數據的安全性、可用性,數據不被泄密、篡改等海量數據加密技術也面臨著新的挑戰。
大數據時代的數據具有數據體量大、數據類型多樣、數據聚合速度快、變化頻度高、數據價值大等非結構化數據時,傳統的加密技術在數據的傳輸效率、加密數據的速度方面已存在掣肘因素,需要以考慮數據的毫秒級的頻繁動態變化、各種多種類型數據的分類處理等方面對提出新的方法和技術,應對海量數據加密,保障核心數據的安全。
本文結合海量數據的特點,研究近年來大數據加密技術的應用現狀,針對海量數據的傳輸、數據加密的性能兩個角度提出基于DES和RSA的混合加密算法的基礎上,融合AES算法的線性混合式加密算法實現對海量數據的數據可靠加密,同時,針對海量數據傳輸提出可持續壓縮、傳輸速度快的LZ4-P的優化壓縮算法改善傳輸速度,經過實驗驗證,達到了傳輸速度快、安全加密好的預期效果。
DES算法屬于對稱加密算法中較為經典的算法,1972年面世用至今仍在廣泛應用。其原理為采用密鑰與明文組進行邏輯規則替換、交叉運作而形成密文配對組的一種堆成密碼體制算法。其中對明文進行處理后,將明文劃分為64位的二進制文明組合,密鑰則也對應的設置為64位長度。但是,實際參與加密運算的只有56位,具體是設置了密鑰的第8位、第16位等直到64的8的倍數位為數據校驗位。經過加密處理后,生成64位的二進制密文串。
DES算法的具體實現過程包括5步,初始置換、密鑰生成、16輪數據迭代變換,實現IP逆置換得到密文。具體如下:
(1)對明文進行分組,分成64位。引用DES的初始置換表,完成明文初始置換,置換完成后的明文組合X,其位數也為64位,但明文的排列順序與原始明文完全不同,經過初始置換后的明文分為左明文和右明文兩部分,分別使用L和R標識。
(2)16輪數據迭代,對于經過分組后的L和R明文,循環加密,共計循環16輪,每一輪的輸出結果,作為下一輪的輸入結果,16輪的迭代加密過程中,引入映射S盒,其數值和位數固定,共計4位8個。采用置換F函數,執行明文和密文的置換。具體的算法如下:
算法中置換函數F中的E屬于擴展置換,置換模式固定,主要作用為實現將32位的R置換為48位,共識中的P也屬于固定模式置換。其作用是完成初始的IP置換和最終的IP比對逆置換。
(3)引入逆置換表IP,生成64位的密文,并輸出結果。
ASE算法被稱為高級加密算法,其特點是明文分組固定,但是密鑰長度不同的經典的對稱加密算法。密鑰的長度可以設置為128位、192位、256位,密鑰長度不同,迭代加密的輪數不同。
AES算法的加密算法基于4*4的16字節矩陣,初始值為明文Byte區塊,執行循環加密的步驟如下:
(1)輪密鑰加AddRoundKey操作:將明文的狀態設置為初始X,通過AddRoundKey操作,經明文矩陣里的每一個元素與round key密鑰值做異或運算,每一個roundkey密鑰值的產生是由生成密鑰方案生成。
(2)S盒代換字節替代SubBytes操作:引入查找表模式,將前面r-1輪迭代替換中的每一輪次,使用S盒進行SubBytes變換操作,也稱之為代換,其實現了借助S盒完成字節間的映射。
(3)行移位ShiftRows操作,矩陣內部的字節置換操作,通過把矩陣的橫列進行循環式移位操作。
(4)MixColumns列混淆從操作:使用線性轉換,對矩陣中的列字節進行混合操作。
RSA算法屬于非對稱加密算法的典型代表,通常用于加密片段相對較小的數據加密以及廣泛用于加密密鑰的傳輸等。
RSA算法執行過程如下:
(1)首先通過隨機數生成算法,生成較大的隨機整數,并對大整數使用隨機多項式的時間算法檢核其是否為素數,獲取素數X、Y。
(2)采用歐拉函數,X與Y的乘積,并對結果N計算其歐拉函數值,計算方法為x-1與Y-1的乘積。
(3)在指定的數據范圍內,選擇加密指數。制定的數據范圍是指數據在{1、2、。。。(x-1)*(Y-1)-1}的內的數,并且滿足gcd(φ(N),e)=1的條件。
(4)得到d在e與φ(N)的模運算的逆運算值,獲得加密密鑰。
(5)對明文進行分組處理,分組后的明文必須滿足二進制值的分組長度小于log2n的值。然后使用如下公式對分組后的明文進行加密:
算法的核心在于:建立4個密鑰S1、S2、S3、S4順序完成明文密文的轉換,經過4重密鑰的加密設計,密鑰長度為224位,算法安全性達到了一定的高度。經過4個密鑰進行加密后,得到密文。
由于DES算法具有加密速度快、加密信息量非常大的典型優勢,其采用的S盒加密算法,密鑰安全性較高,但其密鑰長度短,無法應對窮舉攻擊的問題,可以通過優化密鑰長度的4重DES算法予以解決,很大程度的提高了DES算法的使用性。但面對大數據的數據加密時,需要借助于AES算法的高速運算能力和對資源占有較少的特點,因此,本文提出了基于4重DES和AES算法混合的算法,對海量數據加密,實現數據的抗窮舉攻擊能力和大數據的高性能加密效果。
(1)通過海量數據采樣模型,獲取大數據明文樣本,獲得明文數據組。
(2)采用哈希分段法對采樣明文數字進行分段,分割為N1和N2兩段。
(3)對于明文N1段,使用4重DES加密算法進行加密,得到密文S1。
(4)對于明文N2段,使用AES算法進行加密,得到密文S2段。
(5)針對密文S1段,應用AES加密算法,進行二次加密,產生密文S3。
(6)針對密文S2段,應用4重DES加密算法進行加密,得到密文S4。
(7)合并密文S3和S4,生成大數據密文。
混合算法有針對性的解決了DES算法和AES算法本身的密鑰長度短、應對海量數據加密速度慢的問題。混合加密算法的速度快,由于其密鑰安全性無法保證,因此需要對該算法進行密鑰加固,這里引入了RSA算法,該算法的問題在于密鑰生成較為困難,但是,一旦生成密鑰后,密鑰的安全保護工作非常到位,尤其大數據情況下,密鑰的大素數非常難以分解。綜合了DES、RSA、AES算法的線性綜合加密算法有效的適應了海量數據環境下數據加密速度快、密鑰安全可靠以及可以應對各種窮舉攻擊的可能。
該算法的核心在于,使用基于4重DES和AES混合算法對大數據明文進行加密,使用RSA算法對混合算法的密鑰進行加密處理。將密文和加密后的密鑰統一發送給數據的接收方。
(1)通過海量數據采樣模型,獲取大數據明文樣本,獲得明文數據組。
(2)采用哈希分段法對采樣明文數字進行分段,分割為N1和N2兩段。
(3)對于明文N1段,使用4重DES加密算法進行加密,得到密文S1。
(4)對于明文N2段,使用AES算法進行加密,得到密文S2段。
(5)針對密文S1段,應用AES加密算法,進行二次加密,產生密文S3。
(6)針對密文S2段,應用4重DES加密算法進行加密,得到密文S4。
(7)針對AES算法和4重DES算法的密鑰,采用RSA算法進行密鑰加密,生成加密密鑰。
(8)合并密文S3和S4,生成大數據密文。
(9)將密文與密鑰統一壓縮后,使用LZ4壓縮算法,將數據傳輸給接收方。
為了驗證本文提出的算法,采用了C#平臺,進行算法的具體實現。其中RSA算法核心在于大素數的生成,為了確保算法的有效實現,實現過程中引入了大數據庫來產生大量的大素數,支撐算法的實驗實證。對于32位的編譯器,可以實現的最大數為232,使用OXFFFFFFFF這個十六進制的數值標識。第一步,生產16進制標識的大素數P和q,同時確定對應的n值、e值和D值,在進行線性混合密碼測試過程中,首先采用4DES算法和ASE算法對密文進行加密,生產加密結果,然后是對RSA算法的大素數P、Q進行生產,生產加密密鑰,并最終生成最后的密文。
本文采用的線性混合式加密算法重點從面對海量數據的加密速度和安全性能兩個角度提出的算法,因此本文重點從算法的時間性能和安全性進行性能分析。
(1)時間性能。DES算法的加密速度非常快,4DES算法時間較DES算法速度更快,混合加密算法的時間與DES算法的時間持平。由于混合加密算法中融合RSA算法,因此,混合加密算法雖然引入了性能提升較高的4DES算法,但是整體性能與DES算法持平,保留了DES速度高的優勢。
另外,在海量數據的情況下,AES算法的加密速度明顯高于DES算法和混合式加密算法,同時,隨著數據量的不斷增加,混合式加密算法在速度上逐漸與DES算法持平。
(2)安全性能分析。本文提出的線性混合算法通過RSA算法的密鑰加密技術,改善大數據環境的下數據安全傳輸問題。結合可研人員對數據保密等級及年限的判定標準,如表3所示,對于1024bit的RSA算法與4重DES和AES混合的算法,其安全性明顯高于DES算法、也高于AES算法,因此,可以證實本文提出算法的安全性能較高。
本文通過綜合比對DES算法、AES算法以及RSA算法,基于DES算法的抗攻擊能力弱,通過實驗比對引入了4重DES算法,以提升加密算法的抗窮舉共計能力,同時,綜合了DES算法與AES算法進行密文加密,利用了AES算法的速度優勢,提升加密技術在大數據處理的效能,并綜合了RSA算法。提出了線性混合算法,對密鑰進行加密,增加了算法整體的安全性能。經過算法實現和性能比對試驗證實,該算法在處理海量數據時,對比其他算法,性能更優,速度更快,達到預期效果。