溫賀平,鮑晶晶,柯居鑫,劉樹威
(1.東莞職業(yè)技術學院信息與教育技術中心,廣東 東莞 523808; 2.東莞職業(yè)技術學院電子工程系,廣東 東莞 523808)
隨著移動互聯(lián)網(wǎng)、云計算等新興信息技術的飛速發(fā)展,人類已經(jīng)進入了大數(shù)據(jù)時代。當前,用戶數(shù)據(jù)的安全與隱私保護無疑成為大數(shù)據(jù)環(huán)境中最為重要的問題之一[1-2]。Hadoop作為當今大數(shù)據(jù)處理平臺的主流架構之一,其數(shù)據(jù)安全問題引起了廣泛的關注[3-4]。
針對云計算和大數(shù)據(jù)環(huán)境中的數(shù)據(jù)安全問題,基于Hadoop的數(shù)據(jù)加密保護成為當今研究的一個熱點課題[5-7]。文獻[5]提出了一種適合云存儲的線性AES-ECC混合加密算法,算法綜合了AES適應于大塊數(shù)據(jù)加密且加解密速度快和ECC加密強度高的特點,使用交叉加密的方式,極大地提高了云存儲的安全性。文獻[6]結合Hadoop分布式計算框架提出了一種DES和AES混合的加密改進算法,該算法通過對明文劃分進行混合加密,并且加入隨機擾動信息,有效地提高了安全性。文獻[7]結合云環(huán)境的并行計算特點和AES加密算法,設計了一種并行AES加密方案,利用MapReduce并行編程架構,加密方案具有更高的加密效率。然而,目前這方面的研究工作主要是基于傳統(tǒng)加密算法進行的,隨著量子計算機技術的發(fā)展,傳統(tǒng)加密算法如DES和AES等將面臨巨大挑戰(zhàn)[8]?;煦缡谴_定性系統(tǒng)中的內秉隨機運動,具有對初始狀態(tài)及控制參數(shù)的高度敏感性、良好的偽隨機性、遍歷性、不可預測性等特征,與密碼學中的混淆、擴散、密鑰等存在許多相似之處[9]。近些年來,混沌密碼學引起了各個領域研究者的密切關注[10-12]。
因此,在大數(shù)據(jù)環(huán)境中研究和設計高效、安全的混沌密碼算法具有重要的理論意義和應用價值。本文提出一種基于Hadoop的超混沌加密算法。1)利用Lorenz超混沌系統(tǒng)更加復雜的動力學行為特點,產(chǎn)生4個狀態(tài)變量的混沌序列。2)對各變量的混沌序列采用混合異或的方法產(chǎn)生具有更好密碼特性的混沌序列。3)結合Hadoop平臺的MapReduce并行編程模型,設計兼具較高執(zhí)行效率和安全性的密碼算法。
Hadoop是Apache基金會的一個開源分布式框架。Hadoop具有容錯性高、擴展性強等特點,適合海量數(shù)據(jù)離線批處理的場合。Hadoop包括HDFS和MapReduce這2個核心組件[13-15],其中HDFS實現(xiàn)分布式存儲,MapReduce實現(xiàn)分布式計算。
HDFS分布式文件系統(tǒng),即Hadoop Distributed File System。HDFS采用了主從(Master/Slave)結構模型,一個HDFS集群是由一個NameNode和若干個DataNode組成的。其中NameNode作為主服務器,管理文件系統(tǒng)的命名空間和客戶端對文件的訪問操作,而集群中的DataNode管理存儲數(shù)據(jù)。
MapReduce是一種編程模型,用于大規(guī)模數(shù)據(jù)集的并行運算。一個MapReduce作業(yè)(job)通常會把輸入的數(shù)據(jù)集切分為若干個獨立的數(shù)據(jù)塊,由map任務(task)以完全并行的方式處理它們??蚣軙ap的輸出先進行排序,然后把結果輸入給reduce任務。通常中間處理的結果會存儲在本地磁盤,而作業(yè)的輸入和輸出都會被存儲在HDFS中。
超混沌系統(tǒng)是指具有2個或2個以上正Lyapunov指數(shù)的混沌系統(tǒng),超混沌系統(tǒng)的相軌跡可以在更多方向上進行拉伸和折疊運動,其動力學行為比一般的混沌系統(tǒng)更為復雜[16]。Lorenz混沌系統(tǒng)方程組為:
(1)
其中,x,y,z是狀態(tài)變量,當系統(tǒng)參數(shù)取值為a=10,b=8/3,c=28時,系統(tǒng)處于混沌態(tài),混沌吸引子相如圖1(a)所示。
Lorenz超混沌系統(tǒng)[17]方程組為:
(2)
其中,x,y,z,u是狀態(tài)變量,當系統(tǒng)參數(shù)取值為a=10,b=8/3,c=28,d∈(-1.52,-0.06]時,系統(tǒng)處于超混沌態(tài),d=-1超混沌吸引子相如圖1(b)所示。
(a) Lorenz混沌 (b) Lorenz超混沌圖1 混沌吸引子相圖
混沌系統(tǒng)所產(chǎn)生的狀態(tài)變量值不能直接應用于數(shù)據(jù)加密,為此需要將超混沌系統(tǒng)進行處理,以滿足數(shù)據(jù)加密算法的需要。根據(jù)式(2),Lorenz超混沌系統(tǒng)可以同時產(chǎn)生4個混沌序列,超混沌系統(tǒng)處理步驟如下:
步驟1選取Lorenz超混沌的初值和系統(tǒng)參數(shù)作為加密密鑰K(e)或解密密鑰K(d),讓系統(tǒng)開始迭代運行。為確保超混沌Lorenz系統(tǒng)完全進入混沌狀態(tài),預先讓系統(tǒng)迭代l>50次,并丟棄前面l個迭代序列。
步驟2對Lorenz超混沌的無量綱狀態(tài)方程通過四階龍格庫塔法作離散化處理,將連續(xù)的混沌系統(tǒng)狀態(tài)變量轉換為適合于數(shù)據(jù)加密的離散混沌序列。得到4個混沌序列分別表示為:x(k+l),y(k+l),z(k+l),u(k+l), k=1,2,…,n。
步驟3算法采用的加密方式為按照字節(jié)為單位按位異或流密碼方式進行加密,因此將混沌序列處理為8位長度,取值為[0,255]的序列值。具體處理方法如下:
(3)
其中,mod為模取余數(shù)運算,?」為向下取整運算,px(k),py(k),pz(k),pu(k)為經(jīng)過預處理后的4個離散混沌序列。
步驟4為進一步增強混沌序列的隨機特性,將式(3)產(chǎn)生的混沌序列進行混合異或運算操作,得到用于數(shù)據(jù)加密和解密算法的混沌序列。
(4)
其中,⊕表示按位異或運算,p(e)(k)為Lorenz超混沌系統(tǒng)采用加密密鑰K(e)所產(chǎn)生的用于數(shù)據(jù)加密的混沌序列,p(d)(k)為采用解密密鑰K(d)所產(chǎn)生的用于數(shù)據(jù)解密的混沌序列。
在Hadoop平臺上,首先將存儲在HDFS上的大數(shù)據(jù)文件或大數(shù)據(jù)集進行分片處理,接著通過MapReduce并行編程模型的Map函數(shù)實現(xiàn)并行加密和解密操作,最后利用Reduce函數(shù)完成數(shù)據(jù)或數(shù)據(jù)集的歸并,最終存儲在HDFS上?;贖adoop的超混沌加密算法總體框架如圖2所示。數(shù)據(jù)加密算法設計具體步驟如下:
圖2 基于Hadoop的超混沌加密算法總體框圖
步驟1讀取存儲在HDFS上數(shù)據(jù),并進行分片處理,為MapReduce并行處理做準備。
步驟2Map函數(shù)以鍵值對形式讀取經(jīng)過分片處理的數(shù)據(jù)塊進行并行加密。Map函數(shù)的輸入鍵值對以
(5)
步驟3Reduce函數(shù)對加密后的數(shù)據(jù)塊或數(shù)據(jù)集進行歸并。Reduce函數(shù)的輸入鍵值對以
步驟4將經(jīng)過Reduce函數(shù)歸并后的結果存儲在HDFS上,完成數(shù)據(jù)加密的過程。
(6)
Hadoop實驗環(huán)境的硬件采用一臺高性能物理服務器上搭建若干個虛擬機進行實現(xiàn)。硬件服務器配置:CPU Intel(R) Xeon E3-1225 v3, 3.2 GHz/8 MB Cache,內存16 GB,磁盤1 TB,千兆以太網(wǎng)卡。軟件配置:虛擬機軟件VMware Workstation 12,單個虛擬機的配置為單核CPU和1 GB內存,Linux系統(tǒng)是CentOS-7.16,Hadoop版本為Hadoop 2.7.3,Java版本為Jdk8,IDE開發(fā)環(huán)境為Eclipse3.8。
為了對比分析分布式并行加密的執(zhí)行效率,實驗利用虛擬機軟件部署1~8個集群Slave節(jié)點數(shù)。根據(jù)圖2所設計的算法,實驗數(shù)據(jù)集選取2個大小分別為1 GB和2 GB的大數(shù)據(jù)文本文件,分別采用AES加密算法和本文所提的超混沌加密算法對大數(shù)據(jù)文本文件進行加密,進而對實驗結果進行比較和分析。其中,Map分塊數(shù)大小按照默認設置為dfs.block.size=128 MB。
以1 GB的文本文件為例,當集群Slave個數(shù)為1時,被切分的8個Map數(shù)據(jù)塊加密操作均在一臺虛擬機上運行,屬于單機運行模式。隨著Slave節(jié)點數(shù)的增加,Map數(shù)據(jù)塊加密的并行度增大。當Slave節(jié)點數(shù)為8時,Map數(shù)據(jù)塊分別在8臺虛擬機上并行地執(zhí)行加密操作。在同等實驗條件下,采用本文算法與AES算法執(zhí)行效率比較情況如圖3所示。實驗結果表明,本文算法具有比AES算法更高的執(zhí)行效率,根據(jù)統(tǒng)計結果可知,本文算法的執(zhí)行效率提高了將近40%。
圖3 本文算法與AES算法效率比較圖
4.3.1 密鑰空間
Lorenz超混沌系統(tǒng)具有對初始條件和參數(shù)的高度敏感性,算法選取系統(tǒng)的初始條件和超混沌控制參數(shù)作為加密和解密的密鑰。密鑰空間S∈{x0,y0,z0,u0,d},其中,x0,y0,z0,u0為系統(tǒng)初始條件,d為確保Lorenz混沌系統(tǒng)處于超混沌態(tài)的控制參數(shù)。選取初值和控制參數(shù)2類不同性質的密鑰,在保證系統(tǒng)超混沌特性的同時,也在一定程度上提高了系統(tǒng)的安全性。密鑰參數(shù)均選取雙精度數(shù)據(jù)類型,精度為10-16,密鑰空間大小為1016×5=80≈2265。AES的密鑰長度可以為16,24或32 Byte(即128,192或256 bit)。因此,本文算法的265 bit密鑰長度,大于AES算法最大的256 bit密鑰長度,足以抵御暴力攻擊。
4.3.2 密鑰敏感性分析
圖4 數(shù)據(jù)加密和解密統(tǒng)計直方圖
經(jīng)過超混沌加密后的數(shù)據(jù)直方圖呈現(xiàn)類噪聲的隨機分布狀態(tài),如圖4(a)和圖4(b)所示。算法對密鑰參數(shù)具有高度敏感性,當密鑰失配10-14時,文本直方圖如圖4(c)所示,當密鑰完全匹配時,文本直方圖如圖4(d)所示。實驗驗證了算法具有良好的密文統(tǒng)計特性及密鑰敏感性。
針對大數(shù)據(jù)數(shù)據(jù)安全問題,利用Lorenz超混沌系統(tǒng)更加復雜的動力學行為以及所產(chǎn)生的序列具有更好的隨機性等特點,結合Hadoop平臺的MapReduce分布式并行編程模型,設計了一種基于超混沌系統(tǒng)的并行加密算法。實驗結果表明,相比于AES算法,本文設計的算法執(zhí)行效率提高了將近40%。在安全性方面,算法具有密鑰空間大、密文統(tǒng)計特性及密鑰敏感性良好的特性。算法具有安全、高效的特點,在網(wǎng)絡大數(shù)據(jù)中的數(shù)據(jù)安全及隱私保護方面具有廣闊的應用前景。
[1] 曹珍富,董曉蕾,周俊,等. 大數(shù)據(jù)安全與隱私保護研究進展[J]. 計算機研究與發(fā)展, 2016,53(10):2137-2151.
[2] 馮登國,張敏,李昊. 大數(shù)據(jù)安全與隱私保護[J]. 計算機學報, 2014,37(1):246-258.
[3] 李穎超. 基于Hadoop的云存儲系統(tǒng)文件處理與安全研究[J]. 現(xiàn)代電子技術, 2016,39(21):112-115.
[4] 凃云杰,白楊. 基于Hadoop和雙密鑰的云計算數(shù)據(jù)安全存儲策略設計[J]. 計算機測量與控制, 2014,22(8):2629-2631.
[5] 盧昱,王雙,陳立云. 基于云存儲的混合加密算法研究[J]. 計算機測量與控制, 2016,24(3):129-132.
[6] 戰(zhàn)非,張少茹. 基于云計算的混合加密DAES算法研究[J]. 電子設計工程, 2017,25(3):185-189.
[7] 付雅丹,楊庚,胡持,等. 基于MapReduce的并行AES加密算法[J]. 計算機應用, 2015,35(11):3079-3082.
[8] 劉紅軍. 混沌理論在一次一密圖像加密及保密通信系統(tǒng)中的應用研究[D]. 大連:大連理工大學, 2014.
[9] 廖曉峰. 混沌密碼學原理及其應用[M]. 北京:科學出版社, 2009.
[10] 武相軍,王春淋,闞海斌. 基于多分數(shù)階混沌系統(tǒng)的彩色圖像加密算法[J]. 計算機與現(xiàn)代化, 2013(11):1-7.
[11] 張帆. 基于Lorenz-Duffing復合混沌系統(tǒng)的彩色圖像加密[J]. 微電子學與計算機, 2013,30(10):62-65.
[12] 官國榮,吳成茂,賈倩. 一種改進Lorenz混沌系統(tǒng)構造及其加密應用[J]. 小型微型計算機系統(tǒng), 2015,36(4):830-835.
[13] 陸嘉恒. Hadoop實戰(zhàn)[M]. 北京:機械工業(yè)出版社, 2012.
[14] 董西成. Hadoop技術內幕:深入解析MapReduce機構設計與實現(xiàn)原理[M]. 北京:機械工業(yè)出版社, 2013.
[15] 宋杰,孫宗哲,毛克明,等. MapReduce大數(shù)據(jù)處理平臺與算法研究進展[J]. 軟件學報, 2017,28(3):514-543.
[16] 李伊林. 基于超混沌系統(tǒng)的自適應圖像加密算法[J]. 計算機與現(xiàn)代化, 2014(7):137-141.
[17] Wang Xingyuan, Wang Mingjun. A hyperchaos generated from Lorenz system[J]. Physica A Statistical Mechanics & Its Applications, 2008,387(14):3751-3758.