樊變霞,石曙東,鄭治華,3
(1.湖北師范學院 數學與統計學院,湖北 黃石 435002;2.湖北師范學院 計算機科學與技術學院,湖北 黃石 435002;3.湖北師范學院 物理與電子科學學院,湖北 黃石 435002)
?
一種用于特殊大數據加密的混合密碼體制
樊變霞1,2,石曙東2,鄭治華2,3
(1.湖北師范學院 數學與統計學院,湖北 黃石435002;2.湖北師范學院 計算機科學與技術學院,湖北 黃石435002;3.湖北師范學院 物理與電子科學學院,湖北 黃石435002)
摘要:在大數據環境下數據的安全比傳統的數據安全更加復雜,通常采取數據加密技術對大數據進行加密,以保證其安全性。介紹了一種特殊的混合密碼體制,適用于從一維數組中提取小于(或者大于)某一關鍵字的數據域,進而對這部分數據進行加密。
關鍵詞:大數據;AES算法;ECC算法
0引言
大數據是指在一定時間內無法采用常規軟件工具對它的內容進行提取和處理的數據集合[1]。大數據相比于傳統的數據倉庫應用,具有數據量大、查詢分析復雜等特點,因此傳統的數據加密技術很難滿足大數據在加密速度等方面的要求。為了適應大數據時代的特點,提高加密的速度,我們采用混合加密技術來加密大數據中的有效數據域,而提取有效數據的常用方法是大數據技術,本文給出一種特殊的提取有效數據方法,即采用快速排序法提取數據中小于(或者大于)某一關鍵字的數據域。
1基本概念
數據加密的基本思想是使用信息的不同表現形式來偽裝敏感信息,使非授權者不能了解被保護的內容[2]。在數據加密技術中,將原來的數據稱為明文,采用某種算法對明文進行處理的過程稱為加密過程,將加密后的一段不被人識別的代碼稱為密文,密鑰擁有者使用密鑰來讀取密文的過程稱為解密過程,因此,數據加密的基本過程為:使用某種加密算法對明文進行加密處理,得到密文,密文經過傳輸到達接收方,接收方采用解密密鑰將密文解密獲得明文。通過加密過程保護數據不被非法盜取、閱讀等,從而實現對數據的安全控制和保護的目的。加、解密基本過程如圖1所示。

圖1加、解密基本過程
對稱密碼體制是指發送方的加密密鑰和接收方的解密密鑰是相同的,或者兩者相互可以容易地導出。對稱密碼算法要求在安全通信之前發送方和接收方協商一個密鑰,并且在傳輸密文之前先使用一個安全的通道傳輸該密鑰。其加解密速度很快,安全性取決于密鑰,但實際情況中很難獲得一個相當安全的通道來傳輸密鑰。對稱加密算法有DES算法,IDEA算法等[3]。
非對稱密碼體制是指發送方的加密密鑰和接收方的解密密鑰是不相同的,并且根據加密密鑰無法計算出解密密鑰,至少在合理假定的時間內不能計算出來,所以加密密鑰可以公開,這也是非對稱密碼體制被稱為公開密鑰算法的原因。所有人都可以使用加密密鑰,即公鑰,對明文信息進行加密,但只有解密密鑰,即私鑰的擁有者才能解密密文。非對稱加密算法有RSA算法,ElGamal 算法,ECC 算法等[4]。
2混合密碼體制思想
2.1混合密碼體制思想[5]
對稱加密技術和非對稱加密技術具有各自的優點及缺點,如對稱加密技術的效率高、速度快、運算開銷少、實現容易等優點,因而適合于加密數據量大的信息。缺點是密鑰的分配、保管及傳輸相當困難。非對稱加密技術的優點是用戶保存私鑰,可以公開公鑰,也可通過網絡傳輸公鑰,分發和管理密鑰相對簡單,加密的安全性高。其缺點是加解密速度慢,一般用于加密數據量較小的信息。
大數據內在的一些特點使得它的加密不能簡單地采取某一種加密技術[6],我們將對稱加密技術和非對稱加密技術結合,采用混合加密技術,即使用對稱加密算法對大數據進行加密,非對稱加密算法對對稱加密算法的密鑰進行加密,從而保證對稱加密算法的密鑰傳輸的安全性[7]。
2.2混合加密算法的實現
由于大數據具有以下特點,即價值密度低,有價值的信息較為分散,密度很低,為了更有針對性地對大數據進行加密處理,常采用數據采樣的方法,搜集關鍵信息的數據域。本文介紹了一種簡單的提取有效數據域的方法,即采用快速排序法提取一維數組中小于(或者大于)某一關鍵字的數據域,將采樣得到的數據域使用混合加密技術進行加密,從而使得數據加密過程更具有針對性,進而提高數據的加密速度。具體過程為:
1)將大數據明文用Hash函數生成一個消息摘要,這個消息摘要作為AES算法的密鑰。
2) 使用ECC算法加密該消息摘要,以保證密鑰傳輸的安全性。
3) 采用快速排序法找出其中的有效數據域,使用AES算法加密,生成密文。
4) 將加密后的密鑰與密文一起進行傳輸。

圖2 混合算法過程
3算法的實現
3.1AES算法的實現及安全性
AES加密的實現非常容易,主要依靠輪函數,輪函數由4個不同的計算部件組成,即字節代換SubByte、行移位ShiftRow、列混合 MixColumn和密鑰加AddRoundKey。具體過程如下:
State ←x /*給定明文x*/
Round(State, RoundKey) /*前Nr-1輪的輪函數的運算*/
{
SubByte(State);
ShiftRow(State);
MixColumn(State);
AddRoundKey(State, RoundKey)
}
FinalRound(State, RoundKey) /*結尾輪的輪函數的運算*/
{
SubByte(State);
ShiftRow(State);
AddRoundKey(State, RoundKey)
}
y←State. /*密文為y */
為了抵抗各種攻擊,在涉及的各方面融合了各種特色,如寬軌跡策略的應用,從而可以抵抗各種攻擊,即提高了該算法的安全性,就目前已知的攻擊而言,AES加密算法是安全的,現在還不存在快于窮盡密鑰搜索的攻擊[8]。
3.2ECC算法的實現及安全性
ECC算法是基于有限域上橢圓曲線的離散對數計算困難性問題,具有安全性高、處理速度快等優點。橢圓曲線加密算法是一種思想,需要定義密碼算法才可將其應用于實際,實際中常將ElGamal 密碼算法移植到橢圓曲線上。在明文消息加密前,首先要將明文映射到橢圓曲線上,從而作為橢圓曲線上的點。具體實現過程如下:
1)在有限域GF(p) (p為一大素數)上的橢圓曲線E定義如下:
E:y2=x3+ax+b(modp),其中:a,b∈GF(p), 4a3+27b2(modp)≠0.
2)密鑰對的選擇:選擇一域Fq和定義在其上的曲線方程E,E上一素數階為n的點P(xp,yp)。在區間[1,n-1]選擇一整數d作為私鑰,計算Q=d*P,且Q為橢圓曲線E上的一點,則密鑰對選為(d,Q),d為私鑰,Q為公鑰。
3)公開信息:Fq,橢圓曲線方程E的系數參數,基點P和它的階n.
橢圓曲線上的離散對數問題比大整數因式分解問題和一般離散對數問題更困難,因此,ECC 算法是目前已經知道的最安全的公開密鑰系統。
3.3快速排序法的實現
快速排序的基本思想是:通過一趟排序將待排的記錄劃分為獨立的兩部分,其中一部分記錄的關鍵字均不大于另一部分記錄的關鍵字,為我們選擇有效數據域提供方便。
用一維數組存儲記錄,設i和j為兩個指針,分別指向第一個記錄和最后一個記錄,設key為樞軸記錄(通常是第一個記錄)的關鍵字。一趟快速排序的的具體做法是:從j所指位置起向前搜索,找到第一個關鍵字小于key的記錄與樞軸記錄互相交換,然后從i所指位置起向后搜索,找到第一個關鍵字大于key的記錄與樞軸記錄互相交換,重復這兩步直至i等于j時為止。
算法實現:
Quick sort (a, low, high) /* a表示一維數組名,low和high表示數組的首位和末位*/
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結束語 本文采用將對稱加密算法和非對稱加密算法相結合的混合加密方法對一種特殊的大數據進行加密分析,優點是采用了快速排序法這種較為簡單的數據提取方法快速地找到要加密的有效數據域,放棄了無效數據,使得加密更有針對性,從而提高了加密速度。不足之處是未能給出實驗數據來定量的描述加密速度的提高,而且運用快速排序法篩選數據域時,局限于一維數組,當數據量很大時用一維數組存儲會增加很大開銷。 參考文獻: [1]馮偉. 大數據及其安全的產業縱深[J].信息安全與通信保密,2014,(10):20~30. [2]楊波.現代密碼學(第2版)[M].北京:清華大學出版社,2010. [3]Douglas R Stinson.密碼學原理與實踐(第二版)[M].馮登國,譯.北京:電子工業出版社,2003. [4]Paar, Pelzl C.深入淺出密碼學-常用加密技術原理與應用[M].馬小婷,譯,北京:清華大學出版社,2012. [5]張勇,刑長征.AES和ECC相結合的數據加密技術研究[J].計算機安全技術,2007,(10):34~50. [6]王蒙蒙.基于數據消冗技術的大數據加密算法研究[D].鄭州:華北水利水電大學,2013. [7]趙旭. 數據加密算法分析與改進[D].哈爾濱:哈爾濱工業大學,2012. [8]戴華秀.基于電子商務安全的數據加密技術的研究[D].南昌:南昌航空大學,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 中圖分類號:TP309 文獻標識碼:A 文章編號:1009-2714(2016)01- 0054- 04 作者簡介:樊變霞(1990—),女,山西原平人,碩士研究生,主要研究領域為密碼學. 項目基金:國家自然科學基金(61471163)、湖北省自然科學基金(2012FFB01801)資助. 收稿日期:2015—10—28