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