林之博,劉媛華
(上海理工大學 管理學院,上海 200093)
數(shù)據(jù)加密是通訊信息安全中必不可少的環(huán)節(jié).最常用的非對稱加密算法之一RSA算法安全性極高,根據(jù)公鑰或私鑰無法逆推與之配對的密鑰序列,使得加密后的密文難以被暴力破解[1,2].但由于RSA等算法復雜度高,對于大型文件,難以在短時間內(nèi)實現(xiàn)加密或解密,故國際上常用的信息加密標準一般基于非對稱加密算法與對稱加密算法的混合使用[3].
對稱算法是指通信兩端使用相同密鑰進行加密解密的算法.常見的對稱算法有DES算法、AES算法等,具有復雜度不高,加密時間短,在密鑰未知的情況下難以暴力破解的特性.但DES算法作用長度短,密鑰安全性在特定情況下容易變?yōu)槿趺荑€或半弱密鑰被破解,且采用的混淆加擴散協(xié)議不能對抗差分和線性密碼分析[3];而AES加密則存在不能完全隱藏明文模式、加密圖片后可以看到輪廓,且加密后文件大小翻倍的缺點[3].目前國內(nèi)外進行了不少關于對稱加密算法優(yōu)化的研究,有學者通過結(jié)合混沌系統(tǒng)和AES算法來加強AES算法對圖像加密的性能[4],該方案可以顯著增強AES作用于圖片時像素點輪廓模糊化程度;另有用PIC微控制器通過Zigbee信道對圖像加密[5],改進混沌映射隨機性增強圖像加密的非線性特性;以及使用超混沌映射[6]、雙logistic混沌[7]等對數(shù)字圖像進行加密,在小規(guī)模圖像加密上具有優(yōu)勢,且已經(jīng)證明任意混沌加密可以有效對抗差分、線性密碼分析[8-10],但使用的混沌系統(tǒng)密鑰空間有限[6,8,9],都低于2256組.上述研究一定程度上都增加了對稱加密復雜性,對于大型文件如視頻、可執(zhí)行程序等的加密耗時較長.
因此,考慮基于混沌系統(tǒng)理論,設計一種改進的混沌信號序列與任意文件進行疊加的加解密通信方案,用新算法替換原有混合加密中的對稱算法,盡可能實現(xiàn)占用較少資源與時間,對任意格式的文件進行混合加密解密,簡化文件加密解密計算的流程,使明文信息完全不可見,并保證混沌加密的抗破解能力與抗傳輸干擾失真能力.
RSA非對稱加密算法是由Ron Rivest、Adi Shamir和Leonard Adleman于1978年提出,該算法被廣泛應用于公開密鑰加密與電子商業(yè)中[11].RSA可以同時被應用于加密和數(shù)字簽名,安全性與可靠性很高,被稱為地球上最安全的加密算法之一.RSA算法加密原理是對明文的e次方除以n后求余數(shù),其中e與n是經(jīng)過嚴格計算后得出的.非對稱加密能產(chǎn)生相互成對的公鑰和私鑰,記為(e,n)和d,用戶對外可以公布(e,n),使他人獲得(e,n)后,使用(e,n)進行數(shù)據(jù)加密[1,11].加密后的數(shù)據(jù)必須使用對應d進行解密,否則不能被還原為明文.由于RSA算法計算產(chǎn)生的密鑰序列位數(shù)可以達到1024位,因此想要依靠暴力破解算出與公鑰配對的私鑰將需要消耗數(shù)十萬年的時間.但由于RSA過于復雜,常被用于加密較短的信息,不適用于加密大規(guī)模數(shù)據(jù)[11].
混合加密是指,用戶之間首先交換通過非對稱算法產(chǎn)生的公鑰(ek,nk),并保留對應私鑰,且私鑰dk需嚴格保護,不得泄露.在數(shù)據(jù)通信之前,用戶之間通過對方公鑰加密一個對稱的密鑰,并將加密后的對稱密鑰發(fā)送給通信對象[1,11].通信對象接受后,使用私鑰解密,獲取對稱密鑰.接下來,使用任意對稱加密算法對任意大小的數(shù)據(jù)進行加密發(fā)送.該過程可描述為:
KeyE=KeyeMODn
(1)
Key=KeyEdkMODn
(2)
MessageE=Key(Message)
(3)
Message=Key(MessageE)
(4)
混合加密的優(yōu)點在于:結(jié)合了非對稱與對稱加密算法的優(yōu)勢,摒棄了二者的缺陷.由于對稱密鑰通常規(guī)模較小,非常適合用RSA進行加密,而對稱加密算法適用于加密大型數(shù)據(jù).通過使用混合加密技術,不但能在較短時間完成加密解密,還可以同時保證密文安全性、可靠性[11].
Rossler方程組是Otto Rossler于1976年發(fā)現(xiàn)和提出的經(jīng)典混沌系統(tǒng)[12],用微分方程組可表示為:
x′=-(y+z)
(5)
y′=x+ay
(6)
z′=b+z·(x-c)
(7)
其中x′、y′、z′分別為狀態(tài)參量,a、b、c為控制參量.Rossler方程組是簡單系統(tǒng),但該系統(tǒng)存在著名的混沌行為,最經(jīng)典的一例分別取a=0.2、b=0.2、c∈[2,4.2]時,系統(tǒng)產(chǎn)生混沌吸引子,分別出現(xiàn)平衡態(tài)、周期2、周期4、周期8、混沌現(xiàn)象[12,13];且系統(tǒng)相空間中可見平均周期振蕩成分,自相關函數(shù)幾乎重合[12-14].Rossler混沌在電子通信加密、模擬電路、尤其是圖像復合加密等領域常有應用.
Rossler混沌序列具有很明顯的特異性和模式特征.一般取3個控制參量作為密鑰設計加密算法,參量越長,密鑰越多.在數(shù)據(jù)仿真實驗中,Rossler在不同的相空間位置上表現(xiàn)出完全不同的空間形態(tài),且經(jīng)Anylogic構造系統(tǒng)動力學模型演算得到如表1所列舉的結(jié)果,可知每一類形態(tài)對應的樣本方差都有較大差異.因此Rossler混沌很適合用于產(chǎn)生原始混沌信號序列.
表1 Rossler混沌系數(shù)與對應形態(tài)舉例Table 1 Examples of Rossler′s chaos coefficient and corresponding forms
通過分析加密結(jié)果中的Rossler序列數(shù)理特征,可以大致確定混沌的形態(tài)和參數(shù)取值的范圍,這很不利于數(shù)據(jù)加密的安全性.因此考慮改進原Rossler系統(tǒng),實現(xiàn)在保留Rossler混沌空間狀態(tài)轉(zhuǎn)移特性的基礎上,增加混沌信號序列的混亂度和隨機性.故基于Rossler方程組改進設計新的系統(tǒng)模型,見式(8)-式(16):
(8)
(9)
(10)
(11)
(12)
(13)
Xsn+1=[Xn-(Yn+Zn)·Δs]·IMODGear
(14)
Ysn+1=[Yn+(Xn+aYn)·Δs]·IMODGear
(15)
Zsn+1={Zn+[b+Zn(Xn-c)]·Δs}·IMODGear
(16)
其中I為信號放大控制參量,Gear用于調(diào)控序列模式.假設?e∈{Xsn+1,Ysn+1,Zsn+1}有Signal=e×I,當?I1,I2,且lgI1>lgI2時,根據(jù)Rossler混沌信號特性可知在I1和I2放大下式(17)一定成立:
(17)
即I1處理后的信號一定比I2處理后的信號具有更高的混亂程度.取狀態(tài)參量x、y、z與控制參量a、b、c作為加密密鑰矩陣組分.特別地,簡稱系統(tǒng)產(chǎn)生的3個新混沌序列式(14)-式(16),在空間中展現(xiàn)出的立體形態(tài)為“異變混沌堆”.
結(jié)合異變混沌堆,針對文獻[8]中的二進制明文循環(huán)移位加密算法進行變形和泛化,設計一套多維度數(shù)據(jù)加解密子算法.新算法可指定循環(huán)置換范圍且具備普適性,具有較高運算速度和較低的空間占用.使用新算法優(yōu)化原算法只適用于一維明文加密、無法直接應用于多維數(shù)據(jù)加密的局限性,并擴大系統(tǒng)的服務面以支持多國文字、圖像和任意數(shù)據(jù)流的加密.
首先,構造一種元素連續(xù)的環(huán)鏈式數(shù)據(jù)結(jié)構如圖1所示.
圖1 環(huán)鏈序列結(jié)構Fig.1 Sequence structure of circle chain
存在指定的起點Start和終點End,起點與終點相連,構成環(huán)鏈,使得終點后移一位得到起點.設Om為原數(shù)據(jù),Cm為加密后數(shù)據(jù),em為混沌序列中m位上的信號.設計環(huán)鏈序列置換子算法.可推導出環(huán)鏈序列置換法則,見式(18)、式(19):
(18)
(19)
對于文字加密解密過程,將Gear置為100.先將明文轉(zhuǎn)換為Unicode編碼以擴大文字加密的范圍.設em為選定混沌軸序列中m位上的信號,Om為對應明文Unicode序列m位上的字符ASCII碼,構造一個有效ASCII碼環(huán)鏈序列起點為32,終點為126,使用式(18)、式(19)計算字符疊加和解調(diào)信號結(jié)果.
對于圖片加密解密過程,將Gear置為1000.獲取圖片中像素點,并計算每個像素點的RGB值,視RGB數(shù)據(jù)為三維數(shù)據(jù),取值范圍為[0,255].將3個混沌序列軸X、Y、Z的信號序列分別疊加到R、G、B上,再寫回到圖片中.使用式(18)、式(19)計算疊加和解調(diào)信號后的RGB值,可得加解密后的圖片.
對于任意文件的加密解密,將Gear置為1000.原理與文本加密類似,根據(jù)文件讀取的字節(jié)流每次產(chǎn)生1024位的混沌堆序列,并將讀取到的文件字節(jié)流和若干組序列分別組成矩陣,見式(20)、式(21):
(20)
(21)
則對文件的加密解密過程可看作對Bytefile和Efile同一行列上的元素作為式(18)、式(19)所示的運算,其中每一個字節(jié)轉(zhuǎn)換為int型取值范圍為[-128,127].
對文字、圖像進行加密與解密信號疊加和解調(diào)算法分別如算法1、算法2所示.
算法1.
輸入:密鑰序列K,文字、圖像或文件數(shù)據(jù)
輸出:加密后文字、圖像或文件
1.初始化數(shù)據(jù)讀寫器FR、FW,數(shù)組E與指針P;定義K(n,m)為密鑰 K產(chǎn)生的n到m位的序列
2.WHILEFR?DataDO
3.E←K(0+1024×P,1024+1024×P)
4.FOReachOinFRDO
5.C[O]←C(O,E[O])//基于公式(18)
6.ENDFOR
7.FW←C
8.P←P+1
9.FR←Data[0+1024×P,1024+1024×P]
10.ENDWHILE
11.關閉讀寫器
算法 2.
輸入:密鑰序列K,待解密文字、圖像或文件數(shù)據(jù)
輸出:解密后文字、圖像或文件
1.初始化數(shù)據(jù)讀寫器FR、FW,數(shù)組E與指針P;定義K(n,m)為密鑰 K產(chǎn)生的n到m位的序列
2.WHILEFR?CryptoDO
3.E←K(0+1024×P,1024+1024×P)
4.FOReachCinFRDO
5.O[C]←O(C,E[C])//基于公式(19)
6.ENDFOR
7.FW←O
8.P←P+1
9.FR←Crypto[0+1024×P,1024+1024×P]
10.ENDWHILE
11.關閉讀寫器
綜合3.2設計的算法與異變混沌堆模型,設計加解密軟件系統(tǒng).軟件遵從混合加密協(xié)議,每一對用戶首先需通過RSA算法建立加密通訊,再通過RSA約定混沌堆通信“頻道”,經(jīng)混沌堆“頻道”加密通信內(nèi)容,包括任意文件和文字.具體流程如圖2所示.
圖2 混沌堆通信加密軟件操作流程Fig.2 Operation flow of chaotic stackcommunication encryption software
基于上述算法和方案,在java中編程實現(xiàn)軟件系統(tǒng),系統(tǒng)產(chǎn)生的原混沌與對應異變混沌堆空間圖像舉例如圖3所示.圖像的加密解密若使用Java ImageIO.write()函數(shù)保存為JPG可因壓縮缺陷造成失真,因此加密與解密文件都保存為bmp格式,可避免失真,保證加解密件絕對完整.改進的混沌模型保留了原混沌的狀態(tài)轉(zhuǎn)移特性,在空間中構成了4個連接在一起的異變混沌堆,系統(tǒng)在4個堆軌道之間無序游走,產(chǎn)生加解密需要的異變混沌信號.
理論上講,當信號放大參量I取最大值1016時,參數(shù)a最多有4×1015個取值,參數(shù)b、c在相似相態(tài)域中最多有1018個取值.若將所有相態(tài)納入計算,3個參數(shù)將可以形成超過4×1087組完全不同的頻道.這將是一個相當巨大的有效對稱密鑰空間,遠高于文獻[6,8,9]中實現(xiàn)的密鑰數(shù)量(2256組),甚至遠超估算得到的宇宙粒子數(shù)量總和(1080).安全系數(shù)很高,依靠暴力破解沒有可能成功.
此外,相同硬件配置與win10操作系統(tǒng)環(huán)境下使用異變混沌堆算法對1.52Gb的視頻文件進行加密時長測試,用時319931ms,且加密后文件大小不變;測試AES加密同一文件用時約為373464ms,且文件長度變?yōu)樵瓉淼膬杀?,還原文件時長同樣翻倍.計算可得異變混沌堆算法每1000ms可加密4.75Mb數(shù)據(jù),而AES算法每1000ms可加密4.07Mb數(shù)據(jù).由于異變混沌堆算法與AES時間復雜度都是正線性增加的,故異變混沌堆算法比AES算法的加密速度要略微快,且空間利用優(yōu)于AES算法.
圖3 異變混沌堆空間舉例示意圖Fig.3 3D view of rosslermutatedchaotic stack example
為了驗證異變混沌堆產(chǎn)生信號序列具有較強的無序性,并證明通過該算法加密得到的密文序列對頻道的微調(diào)精度極為敏感,需進行微調(diào)鄰近密鑰時的序列分析實驗.首先使用Anylogic進行測試[15],根據(jù)設計的模型搭建一個Rossler異變混沌堆系統(tǒng)動力學模型用于仿真統(tǒng)計分析.為比較微調(diào)相鄰混沌堆序列之間的數(shù)值相似度,可計算序列上的曼哈頓距離進行比較.對于任意兩個序列Sq1、Sq2,有平均曼哈頓距離
(22)
推廣到m個序列進行組合計算,可得出平均曼哈頓距離矩陣:
(23)
進一步可計算得出同一相態(tài)軸上的總體平均曼哈頓距離:
(24)
(25)
此外,為評估微調(diào)相鄰頻道異變混沌堆序列的形態(tài)相似程度,可計算序列相態(tài)差異度:
(26)
(27)
(28)
對兩個完全相同的序列,有曼哈頓距離與相態(tài)差異度等于0,故曼哈頓距離、值方差和相態(tài)差異度越偏離0,序列差異越大.基于此可評估序列相似與差異水平.考慮Anylogic軟件允許設置的參量最大不超過int類型上限,故暫時設置異變混沌堆系統(tǒng)信號放大參量I為107.任選多種混沌相態(tài),在Anylogic中仿真,可計算得到表2所示不同相態(tài)下異變混沌堆產(chǎn)生序列的均值與方差;對銅號型一組的樣本分布統(tǒng)計結(jié)果如圖4所示.
表2 異變混沌堆各型態(tài)下三軸均值與方差Table 2 Mean and variance of triaxial in various types of mutatedchaotic stack
圖4 混沌序列樣本分布概率統(tǒng)計結(jié)果舉例Fig.4 Statistical result example of sample distribution probability of chaotic sequences
表3 10位異變混沌堆序列樣本Table 3 Sample of 10 locationsmutated chaotic stacksequence
由表2數(shù)據(jù)可知任意形態(tài)的原混沌經(jīng)異變后的三軸序列方差都分別穩(wěn)定在57、57、28附近,原混沌序列在不同相態(tài)下的方差表現(xiàn)出顯著差異,而經(jīng)過改進的異變混沌堆在不同相態(tài)下展現(xiàn)出平滑的平均值和方差.圖4中第1行為原混沌三軸數(shù)據(jù)點分布情況,第2行則為對應異變混沌序列三軸點值分布.仿真實驗中所有分布統(tǒng)計結(jié)都與圖4中相似,不同相態(tài)的原混沌樣本點值統(tǒng)計展現(xiàn)出明顯特異性,而混沌堆的統(tǒng)計結(jié)果差異并不明顯.
綜上,異變混沌堆相較于原混沌模型具有更強的序列無序性和抗模式識別能力.由式(17)可推知,若設置參量I階數(shù)高于7(例如最高取16),則獲得的異變混沌堆序列無序度將更高,加密效果更好.
設異變混沌堆信號擴大參量I階數(shù)為Rossler混沌值最高位數(shù)16,進行多個異變混沌堆序列的相似度分析實驗.測試在默認混沌系統(tǒng)(a=0.2,b=0.2,c=4.6,x=y=z=0.1)上、以及分別對3個控制參微調(diào)億分之一精度的三軸加密序列相似度,并觀察加密效果.每個軸需測試4種相態(tài),共生成12組序列.導出相同情況下三軸上分別產(chǎn)生的10位異變混沌堆序列如表3所示.
對表3各軸序列使用式(22)-式(28),計算可得序列相似度評價如表4所示:
表4 序列相似度評價Table 4 Sequence similarity evaluation
由表4結(jié)果可知,異變混沌堆算法在精度為億分之一的微調(diào)下產(chǎn)生的樣本序列兩兩之間具有遠大于0的曼哈頓距離與相態(tài)差異度,序列間無序度較高.
綜上,該加密方案對密鑰的細微變化具有極強的敏感度,能夠?qū)崿F(xiàn)精度為億分之一情況下的相鄰密鑰加密所得完全不同.由混沌系統(tǒng)對初始條件的敏感性可知:當兩組密鑰的數(shù)值距離更大時,也可保證密鑰產(chǎn)生的混沌序列差異巨大.
為驗證異變混沌堆加密所得密件數(shù)據(jù)具有較高的隨機分布特性和無序性,需計算信息熵H(m),m為信息源即明文或密文數(shù)據(jù).根據(jù)信息熵的大小可以評估數(shù)據(jù)置亂效果是否均勻并比較密文與原文的相似程度.計算方式如式(29)所示:
(29)
此處選取了4張不同像素的Jpg圖像,分別計算加密前后的信息熵以客觀體現(xiàn)加密效果.一般情況認為一張圖像的信息熵越接近于8,時,該圖像的灰度分布越符合加密要求的效果,置亂像素點越均勻.此時圖片可以很好地隱藏需要遮蓋的重要信息.按式(29)計算得結(jié)果如表5所示:
表5 信息熵測試結(jié)果Table 5 Test results of information entropy
根據(jù)表5中結(jié)果可知圖像經(jīng)過加密后信息熵顯著逼近最優(yōu)信息熵,圖像數(shù)據(jù)置亂效果較為均勻;以測試序號4為例,實際加密前后后密件效果如圖5所示,證實密件難以分析出任何有用信息.
圖5 原件與密件實際效果對比Fig.5 Comparison of the actual effect between the original and the secret
由文獻[6,8,9]可知從簡單的Logistic到復雜的二維Sine-Tent等混沌類加密算法已被證明普遍具有良好的抗差分、線性密碼分析攻擊的能力[6,8,9],故此處不再重復驗證.但需要檢驗系統(tǒng)加密后的密件在傳輸中遭受噪聲失真攻擊后的魯棒特性.為直觀展現(xiàn)抗噪聲干擾效果,考慮選擇圖片加解密進行實驗分析.通過PS向測試密件中分別添加20%、30%、40%、50%的噪聲干擾,使密件中數(shù)據(jù)被覆蓋而丟失.添加的噪聲符合高斯分布.對3個干擾后密件解密效果如圖6所示.
若要更好的量化比較噪聲干擾下算法的魯棒性,可定義并計算圖6中3個解密件與原圖間的差異度,如式(30)所示:
(30)
其中k∈[0,W·H-1],P1,P2分別表示進行比較的兩張圖片,p1,k、p2,k表示兩張圖片在第k位上的像素值;W、H分別表示圖像的寬、高,Pixel是最大像素值,取值為16777216.計算可得表6所示結(jié)果.
由表6數(shù)據(jù)可知在噪聲干擾達到50%時,解密件圖像仍然能保證差異度低于30%,圖像中的關鍵信息大致能被傳遞識別,受干擾的解密件與原件之間特征相似度可達到70%以上,故算法在噪聲干擾或傳輸失真情景下的魯棒性良好.結(jié)合圖6中噪聲干擾密件解密的實際效果,可證實異變混沌堆加密解密算法具有一定抗噪聲干擾能力.
圖6 密件噪聲干擾遞增下解密件效果Fig.6 Effect of decryption under increasing noise interference
表6 解密件與原件差異度Table 6 Difference between the decryption and the original
通過在java中實現(xiàn)“異變混沌堆”加解密算法、結(jié)合RSA非對稱加密算法開發(fā)了一套混合加解密系統(tǒng).該系統(tǒng)能形成超大密鑰空間,具備導入聯(lián)系人公鑰和頻道配置信息密文、抄送加密后頻道配置信息的混合加密功能,并可以按照要求進行任意大小文件、圖像、文本的加密解密,具有普適性.
性能實驗數(shù)據(jù)表明異變混沌堆加密算法效率略高于AES算法,所得的圖像和文件密件與原件大小比例為1∶1,不但能夠顯著節(jié)省空間,在還原文件時還能比AES用時更少;由于異變混沌堆加密過程使用了分段計算混沌堆序列并釋放資源的編程方式,故內(nèi)存占用率能夠顯著降低.
經(jīng)過仿真與實驗,對不同相態(tài)下樣本點的統(tǒng)計數(shù)據(jù)、億分之一精度微調(diào)密鑰時異變混沌堆序列相似度數(shù)據(jù)進行分析,證明了基于Rossler方程組改進設計的異變混沌堆算法能有效掩蓋圖像、文件、文字明文中的關鍵信息;且精度在億分之一微調(diào)下用相鄰密鑰加密得到的密文差異極大,密鑰高度敏感.經(jīng)過信息熵監(jiān)測與仿真噪聲干擾解密測試,驗證了該系統(tǒng)能產(chǎn)生符合要求的高度無序信號,并且在50%噪聲覆蓋下仍然能保留70%以上的關鍵信息,具有良好的魯棒性.