樊變霞,石曙東,鄭治華,3
(1.湖北師范學(xué)院 數(shù)學(xué)與統(tǒng)計(jì)學(xué)院,湖北 黃石 435002;2.湖北師范學(xué)院 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,湖北 黃石 435002;3.湖北師范學(xué)院 物理與電子科學(xué)學(xué)院,湖北 黃石 435002)
?
一種用于特殊大數(shù)據(jù)加密的混合密碼體制
樊變霞1,2,石曙東2,鄭治華2,3
(1.湖北師范學(xué)院 數(shù)學(xué)與統(tǒng)計(jì)學(xué)院,湖北 黃石435002;2.湖北師范學(xué)院 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,湖北 黃石435002;3.湖北師范學(xué)院 物理與電子科學(xué)學(xué)院,湖北 黃石435002)
摘要:在大數(shù)據(jù)環(huán)境下數(shù)據(jù)的安全比傳統(tǒng)的數(shù)據(jù)安全更加復(fù)雜,通常采取數(shù)據(jù)加密技術(shù)對(duì)大數(shù)據(jù)進(jìn)行加密,以保證其安全性。介紹了一種特殊的混合密碼體制,適用于從一維數(shù)組中提取小于(或者大于)某一關(guān)鍵字的數(shù)據(jù)域,進(jìn)而對(duì)這部分?jǐn)?shù)據(jù)進(jìn)行加密。
關(guān)鍵詞:大數(shù)據(jù);AES算法;ECC算法
0引言
大數(shù)據(jù)是指在一定時(shí)間內(nèi)無法采用常規(guī)軟件工具對(duì)它的內(nèi)容進(jìn)行提取和處理的數(shù)據(jù)集合[1]。大數(shù)據(jù)相比于傳統(tǒng)的數(shù)據(jù)倉庫應(yīng)用,具有數(shù)據(jù)量大、查詢分析復(fù)雜等特點(diǎn),因此傳統(tǒng)的數(shù)據(jù)加密技術(shù)很難滿足大數(shù)據(jù)在加密速度等方面的要求。為了適應(yīng)大數(shù)據(jù)時(shí)代的特點(diǎn),提高加密的速度,我們采用混合加密技術(shù)來加密大數(shù)據(jù)中的有效數(shù)據(jù)域,而提取有效數(shù)據(jù)的常用方法是大數(shù)據(jù)技術(shù),本文給出一種特殊的提取有效數(shù)據(jù)方法,即采用快速排序法提取數(shù)據(jù)中小于(或者大于)某一關(guān)鍵字的數(shù)據(jù)域。
1基本概念
數(shù)據(jù)加密的基本思想是使用信息的不同表現(xiàn)形式來偽裝敏感信息,使非授權(quán)者不能了解被保護(hù)的內(nèi)容[2]。在數(shù)據(jù)加密技術(shù)中,將原來的數(shù)據(jù)稱為明文,采用某種算法對(duì)明文進(jìn)行處理的過程稱為加密過程,將加密后的一段不被人識(shí)別的代碼稱為密文,密鑰擁有者使用密鑰來讀取密文的過程稱為解密過程,因此,數(shù)據(jù)加密的基本過程為:使用某種加密算法對(duì)明文進(jìn)行加密處理,得到密文,密文經(jīng)過傳輸?shù)竭_(dá)接收方,接收方采用解密密鑰將密文解密獲得明文。通過加密過程保護(hù)數(shù)據(jù)不被非法盜取、閱讀等,從而實(shí)現(xiàn)對(duì)數(shù)據(jù)的安全控制和保護(hù)的目的。加、解密基本過程如圖1所示。
圖1加、解密基本過程
對(duì)稱密碼體制是指發(fā)送方的加密密鑰和接收方的解密密鑰是相同的,或者兩者相互可以容易地導(dǎo)出。對(duì)稱密碼算法要求在安全通信之前發(fā)送方和接收方協(xié)商一個(gè)密鑰,并且在傳輸密文之前先使用一個(gè)安全的通道傳輸該密鑰。其加解密速度很快,安全性取決于密鑰,但實(shí)際情況中很難獲得一個(gè)相當(dāng)安全的通道來傳輸密鑰。對(duì)稱加密算法有DES算法,IDEA算法等[3]。
非對(duì)稱密碼體制是指發(fā)送方的加密密鑰和接收方的解密密鑰是不相同的,并且根據(jù)加密密鑰無法計(jì)算出解密密鑰,至少在合理假定的時(shí)間內(nèi)不能計(jì)算出來,所以加密密鑰可以公開,這也是非對(duì)稱密碼體制被稱為公開密鑰算法的原因。所有人都可以使用加密密鑰,即公鑰,對(duì)明文信息進(jìn)行加密,但只有解密密鑰,即私鑰的擁有者才能解密密文。非對(duì)稱加密算法有RSA算法,ElGamal 算法,ECC 算法等[4]。
2混合密碼體制思想
2.1混合密碼體制思想[5]
對(duì)稱加密技術(shù)和非對(duì)稱加密技術(shù)具有各自的優(yōu)點(diǎn)及缺點(diǎn),如對(duì)稱加密技術(shù)的效率高、速度快、運(yùn)算開銷少、實(shí)現(xiàn)容易等優(yōu)點(diǎn),因而適合于加密數(shù)據(jù)量大的信息。缺點(diǎn)是密鑰的分配、保管及傳輸相當(dāng)困難。非對(duì)稱加密技術(shù)的優(yōu)點(diǎn)是用戶保存私鑰,可以公開公鑰,也可通過網(wǎng)絡(luò)傳輸公鑰,分發(fā)和管理密鑰相對(duì)簡單,加密的安全性高。其缺點(diǎn)是加解密速度慢,一般用于加密數(shù)據(jù)量較小的信息。
大數(shù)據(jù)內(nèi)在的一些特點(diǎn)使得它的加密不能簡單地采取某一種加密技術(shù)[6],我們將對(duì)稱加密技術(shù)和非對(duì)稱加密技術(shù)結(jié)合,采用混合加密技術(shù),即使用對(duì)稱加密算法對(duì)大數(shù)據(jù)進(jìn)行加密,非對(duì)稱加密算法對(duì)對(duì)稱加密算法的密鑰進(jìn)行加密,從而保證對(duì)稱加密算法的密鑰傳輸?shù)陌踩訹7]。
2.2混合加密算法的實(shí)現(xiàn)
由于大數(shù)據(jù)具有以下特點(diǎn),即價(jià)值密度低,有價(jià)值的信息較為分散,密度很低,為了更有針對(duì)性地對(duì)大數(shù)據(jù)進(jìn)行加密處理,常采用數(shù)據(jù)采樣的方法,搜集關(guān)鍵信息的數(shù)據(jù)域。本文介紹了一種簡單的提取有效數(shù)據(jù)域的方法,即采用快速排序法提取一維數(shù)組中小于(或者大于)某一關(guān)鍵字的數(shù)據(jù)域,將采樣得到的數(shù)據(jù)域使用混合加密技術(shù)進(jìn)行加密,從而使得數(shù)據(jù)加密過程更具有針對(duì)性,進(jìn)而提高數(shù)據(jù)的加密速度。具體過程為:
1)將大數(shù)據(jù)明文用Hash函數(shù)生成一個(gè)消息摘要,這個(gè)消息摘要作為AES算法的密鑰。
2) 使用ECC算法加密該消息摘要,以保證密鑰傳輸?shù)陌踩浴?/p>
3) 采用快速排序法找出其中的有效數(shù)據(jù)域,使用AES算法加密,生成密文。
4) 將加密后的密鑰與密文一起進(jìn)行傳輸。
圖2 混合算法過程
3算法的實(shí)現(xiàn)
3.1AES算法的實(shí)現(xiàn)及安全性
AES加密的實(shí)現(xiàn)非常容易,主要依靠輪函數(shù),輪函數(shù)由4個(gè)不同的計(jì)算部件組成,即字節(jié)代換SubByte、行移位ShiftRow、列混合 MixColumn和密鑰加AddRoundKey。具體過程如下:
State ←x /*給定明文x*/
Round(State, RoundKey) /*前Nr-1輪的輪函數(shù)的運(yùn)算*/
{
SubByte(State);
ShiftRow(State);
MixColumn(State);
AddRoundKey(State, RoundKey)
}
FinalRound(State, RoundKey) /*結(jié)尾輪的輪函數(shù)的運(yùn)算*/
{
SubByte(State);
ShiftRow(State);
AddRoundKey(State, RoundKey)
}
y←State. /*密文為y */
為了抵抗各種攻擊,在涉及的各方面融合了各種特色,如寬軌跡策略的應(yīng)用,從而可以抵抗各種攻擊,即提高了該算法的安全性,就目前已知的攻擊而言,AES加密算法是安全的,現(xiàn)在還不存在快于窮盡密鑰搜索的攻擊[8]。
3.2ECC算法的實(shí)現(xiàn)及安全性
ECC算法是基于有限域上橢圓曲線的離散對(duì)數(shù)計(jì)算困難性問題,具有安全性高、處理速度快等優(yōu)點(diǎn)。橢圓曲線加密算法是一種思想,需要定義密碼算法才可將其應(yīng)用于實(shí)際,實(shí)際中常將ElGamal 密碼算法移植到橢圓曲線上。在明文消息加密前,首先要將明文映射到橢圓曲線上,從而作為橢圓曲線上的點(diǎn)。具體實(shí)現(xiàn)過程如下:
1)在有限域GF(p) (p為一大素?cái)?shù))上的橢圓曲線E定義如下:
E:y2=x3+ax+b(modp),其中:a,b∈GF(p), 4a3+27b2(modp)≠0.
2)密鑰對(duì)的選擇:選擇一域Fq和定義在其上的曲線方程E,E上一素?cái)?shù)階為n的點(diǎn)P(xp,yp)。在區(qū)間[1,n-1]選擇一整數(shù)d作為私鑰,計(jì)算Q=d*P,且Q為橢圓曲線E上的一點(diǎn),則密鑰對(duì)選為(d,Q),d為私鑰,Q為公鑰。
3)公開信息:Fq,橢圓曲線方程E的系數(shù)參數(shù),基點(diǎn)P和它的階n.
橢圓曲線上的離散對(duì)數(shù)問題比大整數(shù)因式分解問題和一般離散對(duì)數(shù)問題更困難,因此,ECC 算法是目前已經(jīng)知道的最安全的公開密鑰系統(tǒng)。
3.3快速排序法的實(shí)現(xiàn)
快速排序的基本思想是:通過一趟排序?qū)⒋诺挠涗泟澐譃楠?dú)立的兩部分,其中一部分記錄的關(guān)鍵字均不大于另一部分記錄的關(guān)鍵字,為我們選擇有效數(shù)據(jù)域提供方便。
用一維數(shù)組存儲(chǔ)記錄,設(shè)i和j為兩個(gè)指針,分別指向第一個(gè)記錄和最后一個(gè)記錄,設(shè)key為樞軸記錄(通常是第一個(gè)記錄)的關(guān)鍵字。一趟快速排序的的具體做法是:從j所指位置起向前搜索,找到第一個(gè)關(guān)鍵字小于key的記錄與樞軸記錄互相交換,然后從i所指位置起向后搜索,找到第一個(gè)關(guān)鍵字大于key的記錄與樞軸記錄互相交換,重復(fù)這兩步直至i等于j時(shí)為止。
算法實(shí)現(xiàn):
Quick sort (a, low, high) /* a表示一維數(shù)組名,low和high表示數(shù)組的首位和末位*/
if (low then key ← partition (a, low, high); Quick sort (a, low, key-1); Quick sort (a, key+1, high); partition (a, low, high) x←a[high] i←low-1 for j ←low to high-1 do if (a[j]≤ x) then i ← i+1 exchange a[i] ? a[j] exchange a[i+1] ?a[high] return i+1. 4結(jié)束語 本文采用將對(duì)稱加密算法和非對(duì)稱加密算法相結(jié)合的混合加密方法對(duì)一種特殊的大數(shù)據(jù)進(jìn)行加密分析,優(yōu)點(diǎn)是采用了快速排序法這種較為簡單的數(shù)據(jù)提取方法快速地找到要加密的有效數(shù)據(jù)域,放棄了無效數(shù)據(jù),使得加密更有針對(duì)性,從而提高了加密速度。不足之處是未能給出實(shí)驗(yàn)數(shù)據(jù)來定量的描述加密速度的提高,而且運(yùn)用快速排序法篩選數(shù)據(jù)域時(shí),局限于一維數(shù)組,當(dāng)數(shù)據(jù)量很大時(shí)用一維數(shù)組存儲(chǔ)會(huì)增加很大開銷。 參考文獻(xiàn): [1]馮偉. 大數(shù)據(jù)及其安全的產(chǎn)業(yè)縱深[J].信息安全與通信保密,2014,(10):20~30. [2]楊波.現(xiàn)代密碼學(xué)(第2版)[M].北京:清華大學(xué)出版社,2010. [3]Douglas R Stinson.密碼學(xué)原理與實(shí)踐(第二版)[M].馮登國,譯.北京:電子工業(yè)出版社,2003. [4]Paar, Pelzl C.深入淺出密碼學(xué)-常用加密技術(shù)原理與應(yīng)用[M].馬小婷,譯,北京:清華大學(xué)出版社,2012. [5]張勇,刑長征.AES和ECC相結(jié)合的數(shù)據(jù)加密技術(shù)研究[J].計(jì)算機(jī)安全技術(shù),2007,(10):34~50. [6]王蒙蒙.基于數(shù)據(jù)消冗技術(shù)的大數(shù)據(jù)加密算法研究[D].鄭州:華北水利水電大學(xué),2013. [7]趙旭. 數(shù)據(jù)加密算法分析與改進(jìn)[D].哈爾濱:哈爾濱工業(yè)大學(xué),2012. [8]戴華秀.基于電子商務(wù)安全的數(shù)據(jù)加密技術(shù)的研究[D].南昌:南昌航空大學(xué),2011. A hybrid cryptosystem for one special encryption of big data FAN Bian-xia1,2,SHI Shu-dong2,ZHENG Zhi-hua2,3 (1. College of mathematics and statistics, Hubei Normal University, Huangshi435002, China;2. College of computer science and technology, Hubei Normal University, Huangshi435002, China;3. College of physics and electronic science, Hubei Normal University, Huangshi435002, China) Abstract:In the environment of the big data, data's safety is more complicated than the traditional security. People usually take the data encryption technology to encrypt big data, in order to ensure its safety. In this paper I introduce a special hybrid cryptosystem. It is suitable for extracting the data domain from an one-dimensional array, whose numerical value is less than (or more than) a keyword. Then people encrypt this part of data. To an extent, this method helps to improve the speed of encrypting big data. Key words:big data; AES algorithm; ECC algorithm doi:10.3969/j.issn.1009-2714.2016.01.011 中圖分類號(hào):TP309 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-2714(2016)01- 0054- 04 作者簡介:樊變霞(1990—),女,山西原平人,碩士研究生,主要研究領(lǐng)域?yàn)槊艽a學(xué). 項(xiàng)目基金:國家自然科學(xué)基金(61471163)、湖北省自然科學(xué)基金(2012FFB01801)資助. 收稿日期:2015—10—28