李春彪 趙云楠 李雅寧 孔思曉
(南京信息工程大學(xué)電子與信息工程學(xué)院 南京 210044)
數(shù)字圖像的安全傳輸和隱私保護(hù)在網(wǎng)絡(luò)空間中易受挑戰(zhàn),而傳統(tǒng)分組加密算法容易遭受窮舉法的攻擊。由于圖像數(shù)據(jù)具有特殊格式,圖像加密對(duì)加密效率有更高的要求。分組加密算法對(duì)圖像的加密具有一定的局限性,故而常用于文字符號(hào)等信息的加密。大量的圖像加密方案也將明文圖像視為文本數(shù)據(jù)來(lái)處理[1],這使得傳統(tǒng)分組加密算法的效率不夠高。目前,先進(jìn)的拍攝設(shè)備使數(shù)字圖像具有大數(shù)據(jù)量和高冗余的特點(diǎn),加之?dāng)?shù)字圖像本身的相鄰像素相關(guān)性高[2],分組加密算法難以削弱相鄰像素相關(guān)性。
隨著混沌理論的發(fā)展,人們將混沌理論引入密碼學(xué)形成新的數(shù)字圖像加密算法[3]?;煦缇哂斜闅v性、隨機(jī)性和初值敏感性等特點(diǎn),其混合和隨機(jī)性類似于密碼學(xué)的置換和擴(kuò)散?;煦缂用芩惴ㄊ沟眉用馨踩愿摺⒚荑€空間更大、密鑰敏感性更強(qiáng),比傳統(tǒng)加密方法更有潛力[4]。然而數(shù)字圖像的混沌加密算法也面臨著安全性能方面的挑戰(zhàn)?;诨煦缦到y(tǒng)的偽隨機(jī)序列發(fā)生器存在一定的弱隨機(jī)性[1]。
典型的Logistic映射的數(shù)學(xué)表達(dá)式簡(jiǎn)單但動(dòng)力學(xué)特性復(fù)雜。文獻(xiàn)[5]從離散序列和相對(duì)熵的理論中分析了Logistic映射的時(shí)間不可逆性、初值敏感性、混沌狀態(tài)程度等特性,因而可以采用Logistic映射或者改進(jìn)Logistic映射來(lái)加密數(shù)字圖像。文獻(xiàn)[6]采用了典型的Logistic映射進(jìn)行數(shù)字圖像加密,該方法能夠?qū)崿F(xiàn)良好的加密效果,但密文圖像的灰度直方圖不平坦,加密效果欠佳;文獻(xiàn)[7]改進(jìn)Logistic映射并基于初始值與控制參數(shù)之間存在的關(guān)系對(duì)變量域進(jìn)行分段處理,擴(kuò)大了混沌域;陶紅[8]試著將典型的Logistic映射與其他加密方式相結(jié)合來(lái)改善加密效果。上述加密方式均基于單一混沌映射進(jìn)行數(shù)字圖像加密。
本文在經(jīng)典Logistic映射中引入正弦反饋,構(gòu)成新的映射關(guān)系,并對(duì)生成的偽隨機(jī)序列進(jìn)行預(yù)處理,增強(qiáng)其偽隨機(jī)性,削弱偽隨機(jī)序列發(fā)生器的弱隨機(jī)性造成的弊端。使用NIST隨機(jī)數(shù)測(cè)試法測(cè)得加密序列的偽隨機(jī)性較好。FPGA系統(tǒng)穩(wěn)定性高,可用電路直觀表達(dá)邏輯,且成本較低[9]。利用FPGA進(jìn)行加密處理,數(shù)據(jù)穩(wěn)定性更強(qiáng),邏輯更清晰。本文使用FPGA平臺(tái),實(shí)現(xiàn)本文提出加密方案,加密效果較好。
基于Logistic映射[10],引入正弦函數(shù),構(gòu)建出新的1維混沌映射,其函數(shù)如式(1)所示
其中,k為系統(tǒng)數(shù)且k ?=0。
已知新的混沌映射函數(shù)式(1),存在不動(dòng)點(diǎn)xf,xf滿足方程
解得
在初值為x0=0.1的情況下,計(jì)算狀態(tài)量x(n)的分岔圖和Lyapunov指數(shù)譜,如圖2所示。從圖中可以看出引入非線性正弦因子的Logistic混沌系統(tǒng)的混沌區(qū)域大,使用該混沌系統(tǒng)能得到更寬的加密區(qū)間。Lyapunov指數(shù)表征了一個(gè)系統(tǒng)的混沌屬性[13]。比較分岔圖與Lyapunov指數(shù)譜,可以看出分岔圖在最大Lyapunov指數(shù)為零時(shí)便會(huì)進(jìn)入新的分岔??梢钥闯鲆胝乙蜃拥腖ogistic混沌系統(tǒng)的Lyapunov指數(shù)大于零的范圍很寬,總的密鑰空間也較大。當(dāng)k=3.584時(shí),混沌分岔圖開(kāi)始分岔,從周期1進(jìn)入周期2;當(dāng)k=4.428時(shí),從周期2進(jìn)入周期4,當(dāng)k=4.627時(shí),從周期4進(jìn)入周期8,并繼而進(jìn)入混沌態(tài)。
圖1 蛛網(wǎng)結(jié)構(gòu)圖
圖2 分岔圖和Lyapunov指數(shù)譜圖
密鑰敏感性表征了密碼系統(tǒng)的安全性能[14]。敏感性高表明了密鑰微小的擾動(dòng)便無(wú)法解密密文圖像。引入非線性正弦因子的Logistic混沌系統(tǒng)的敏感性如圖3所示。根據(jù)新混沌系統(tǒng)的系統(tǒng)方程,設(shè)初值x0=0.1,系統(tǒng)參數(shù)k=4.9,改變初值為0.1+10?4,0.1+10?8,0.1+10?12,迭代計(jì)算100次;設(shè)初值x0=0.1,系統(tǒng)參數(shù)k=4.9,改變系統(tǒng)參數(shù)為4.9+10?4,4.9+10?8,4.9+10?12,迭代計(jì)算100次。仿真得出的波形如圖3所示。從圖3中可以看出,密鑰一旦發(fā)生微小變化,迭代次數(shù)n增加后,密鑰序列變得完全不同,在圖中表現(xiàn)為兩條曲線的重合度。可見(jiàn),密鑰敏感級(jí)別可達(dá)到10?12甚至更高的級(jí)別。
圖3 敏感性測(cè)試
引入非線性正弦因子的Logistic混沌系統(tǒng)產(chǎn)生一個(gè)范圍在[0,1.6]的加密序列。該序列中可能存在大量相似數(shù)據(jù)。所以先對(duì)該加密序列進(jìn)行預(yù)處理,增強(qiáng)該加密序列的偽隨機(jī)性,增強(qiáng)過(guò)程如式(6)所示。
其中,mod()和 round()分別為取余和取整運(yùn)算。該運(yùn)算先將加密序列擴(kuò)大取整,再取余計(jì)算,得到一組在[0,255]內(nèi)的加密序列[15]。該預(yù)處理將加密序列放大取整,避免小數(shù)過(guò)多影響加密效果,并增強(qiáng)偽隨機(jī)性。加密/解密流程如圖4所示。密文圖像呈現(xiàn)噪聲樣式,無(wú)法解讀有效信息。解密圖像可以恢復(fù)明文信息。
圖4 引入正弦因子的Logistic加密解密過(guò)程
NIST發(fā)布的“隨機(jī)數(shù)和偽隨機(jī)數(shù)發(fā)生器統(tǒng)計(jì)測(cè)試組件”能全面地分析偽隨機(jī)序列的性能,具有頻率測(cè)試等15個(gè)測(cè)試的維度[16],測(cè)試樣本為二進(jìn)制。NIST對(duì)每個(gè)測(cè)試項(xiàng)都會(huì)生成P_value,當(dāng)P_value>0.01時(shí),則該測(cè)試通過(guò);當(dāng)P_value≤0.01時(shí),則該測(cè)試不通過(guò)[17]。本文采用NIST推出的STS 2.1.2 (Statistical Test Suite 2.1.2)版本進(jìn)行測(cè)試。
控制引入非線性正弦因子的Logistic混沌系統(tǒng)生成一組有262144個(gè)十進(jìn)制數(shù)的偽隨機(jī)加密序列,為保證混沌效果,取后131072個(gè)數(shù)據(jù)并轉(zhuǎn)化成二進(jìn)制文本。在STS界面設(shè)置100個(gè)大小為10000的數(shù)據(jù)塊,進(jìn)行標(biāo)準(zhǔn)1-13的測(cè)試。再控制該混沌系統(tǒng)生成一組含有37500000個(gè)十進(jìn)制整數(shù)的偽隨機(jī)加密序列,取后18750000個(gè)十進(jìn)制數(shù),二進(jìn)轉(zhuǎn)化后進(jìn)行標(biāo)準(zhǔn)14-15的測(cè)試。NIST測(cè)試結(jié)果如表1所示。被測(cè)偽隨機(jī)加密序列通過(guò)了15項(xiàng)NIST測(cè)試,且通過(guò)率均在97%以上,這表明該偽隨機(jī)加密序列具有較好的偽隨機(jī)性能。
表1 NIST標(biāo)準(zhǔn)偽隨機(jī)測(cè)試結(jié)果
本文所提出的引入非線性正弦因子的Logistic混沌加密系統(tǒng)的密鑰為K={x0,k}。在敏感性初值測(cè)試中,系統(tǒng)敏感性可達(dá)到10?17,密鑰的步進(jìn)大小為10?18,每個(gè)密鑰由兩個(gè)參數(shù)構(gòu)成,計(jì)算可得該密鑰空間大小為1034≈2114。由于2120>2100,可以判斷,該密鑰空間對(duì)窮舉法攻擊具有足夠的防御性[18]。
熱力學(xué)采用熵值來(lái)表征物質(zhì)狀態(tài)的無(wú)序性。類比熱力學(xué),信息源信息的不確定度可由信息熵表示。信息源的熵值越大、紊亂程度越高,可接受信息越少。理論上,256灰度級(jí)完全隨機(jī)圖像的信息熵H為8。信息熵的計(jì)算公式如式(7)所示。式中K表示突出的灰度級(jí)個(gè)數(shù),f(i)表示灰度i在所有灰度中出現(xiàn)的概率[19]。
本文采用密鑰K={0.1,5},以一副256灰度級(jí)的Lena圖像為例,計(jì)算其明文和其密文的信息熵,其計(jì)算結(jié)果列于表2中。由表2可知,密文圖像的信息熵為7.9987。引入正弦因子且對(duì)偽隨機(jī)序列進(jìn)行預(yù)處理之后再加密,密文圖像具有較高的信息熵,圖像加密性能更加優(yōu)越。
表2 信息熵實(shí)驗(yàn)結(jié)果
選取密鑰K={0.1,5},利用引入非線性正弦因子的Logistic混沌加密系統(tǒng)和典型的Logistic混沌加密系統(tǒng)對(duì)圖像進(jìn)行加密,繪制出密文圖像的灰度直方圖,如圖5和圖6所示。和典型Logistic混沌加密系統(tǒng)相比,引入非線性正弦因子的Logistic混沌加密系統(tǒng)得到的加密圖像的直方圖更加平滑,加密性能更優(yōu)越。
圖5 新混沌加密系統(tǒng)統(tǒng)計(jì)特性
圖6 典型Logistic混沌加密系統(tǒng)統(tǒng)計(jì)特性
圖像的相鄰兩個(gè)像素主要分散于水平、垂直和對(duì)角線方向。加密后的圖像相關(guān)性小才能掩蓋原信息以防止信息泄露。計(jì)算公式如式(8)所示,從圖像矩陣中隨意抽選N對(duì)相鄰像素點(diǎn)的像素值,分別記為xi和yi[20]。
挑選8000對(duì)不同位置的相鄰像素點(diǎn),計(jì)算相鄰像素相關(guān)系數(shù)并進(jìn)行可視化處理。結(jié)果如圖7、圖8和表3所示。明文圖像的相鄰像素值呈現(xiàn)線性關(guān)系,相關(guān)性強(qiáng);密文圖像的相鄰像素值均勻分布,相關(guān)性差。
表3 圖像的相鄰像素相關(guān)性
圖7 明文各方向相關(guān)系數(shù)
圖8 密文各方向相關(guān)系數(shù)
上文的敏感性分析已表明引入非線性正弦因子的Logistic混沌加密系統(tǒng)具有密鑰敏感性。本節(jié)通過(guò)改變密鑰初值x0來(lái)測(cè)試密鑰敏感性。以密鑰K={0.1,0.4}進(jìn)行加密。則密鑰x0=1.0+10?15無(wú)法解密,密鑰x0=1.0+10?17解密成功。這表明密鑰出現(xiàn)微弱擾動(dòng)便無(wú)法解密圖像,十分敏感。如圖9與圖10所示。
圖9 密鑰為x0 =1.0+10?17時(shí)的解密過(guò)程
圖10 密鑰為x0 =1.0+10?15時(shí)的解密過(guò)程
本文采用的FPGA硬件實(shí)現(xiàn)平臺(tái)為Altera的以Cyclone IV EP4CE15F17C8N為核心的開(kāi)發(fā)平臺(tái)。其開(kāi)發(fā)環(huán)境為Quartus II 13.1。該FPGA配置了EPCS4芯片。其VGA接口驅(qū)動(dòng)采用了專用的ADV7123轉(zhuǎn)換DA芯片。
該加密/解密系統(tǒng)采用FPGA開(kāi)發(fā)板的VGA顯示驅(qū)動(dòng)、ROM存儲(chǔ)、JTGA下載功能。整個(gè)框架包含混沌加密序列發(fā)生模塊、圖像存儲(chǔ)控制模塊、程序下載模塊和VGA顯示模塊。通過(guò)JTGA接口將程序固化進(jìn)FPGA的Flash。加密時(shí),從ROM中讀取圖像數(shù)據(jù)和混沌加密序列,進(jìn)行異或運(yùn)算并通過(guò)VGA接口,將原圖、密文圖像和解密圖像依次顯示在顯示屏上。該混沌加密系統(tǒng)的結(jié)構(gòu)框圖如圖11所示,解密系統(tǒng)結(jié)構(gòu)框圖如圖12所示。
圖11 系統(tǒng)加密結(jié)構(gòu)框圖
圖12 系統(tǒng)解密結(jié)構(gòu)框圖
加密系統(tǒng)的RTL如圖13所示。其中clk為50 MB系統(tǒng)時(shí)鐘;rst_n為復(fù)位信號(hào);vga_vs和vga_hs是VGA顯示器的行場(chǎng)掃描信號(hào);vga_rgb(lcd_data)為輸出的加密圖像信號(hào);image_data為原始圖像的信號(hào);8位的信號(hào)pixel_data經(jīng)過(guò)8到16位VGA信號(hào)轉(zhuǎn)換得到16位的vga_rgb信號(hào)輸出。
圖13 加密系統(tǒng)RTL圖
解密系統(tǒng)的RTL圖與加密系統(tǒng)RTL圖類似,如圖14所示,在加密系統(tǒng)RTL圖中增加一次異或運(yùn)算得出解密信號(hào)。圖14中的pixel_data為解密圖像信號(hào)。
圖14 解密系統(tǒng)RTL圖
Quartus II具有嵌入式邏輯分析儀(signal tap),它能方便地抓取模塊中的信號(hào),方便開(kāi)發(fā)者對(duì)各個(gè)信號(hào)的時(shí)序進(jìn)行查看。本加密系統(tǒng)的Signal Tap圖由圖15所示。圖中a信號(hào)為原始圖像信號(hào),b為密文圖像信號(hào),c為解密后圖像信號(hào)。從圖15中可以看出,原始圖像信號(hào)和解密圖像信號(hào)完全相同,較好地實(shí)現(xiàn)了加密的效果。
圖15 Signal Tap時(shí)序圖
基于FPGA的混沌加密結(jié)果如圖16所示。圖16所展示的為完整加密過(guò)程的FPGA實(shí)驗(yàn)結(jié)果及VGA顯示圖。從圖中可以看出FPGA硬件實(shí)現(xiàn)的圖像結(jié)果與上文理論仿真一致,從而表明本文所提出的加密方案實(shí)際可行。
圖16 FPGA實(shí)驗(yàn)結(jié)果VGA顯示圖
本文在經(jīng)典的Logistic映射基礎(chǔ)上,引入非線性正弦反饋從而構(gòu)建得到一種新的混沌系統(tǒng)?;谛碌幕煦缬成?,產(chǎn)生混沌加密序列,并對(duì)混沌加密序列先進(jìn)行處理增強(qiáng)其偽隨機(jī)性,再進(jìn)行數(shù)字圖像的加密運(yùn)算。利用NIST測(cè)試組件對(duì)混沌加密序列的偽隨機(jī)性進(jìn)行測(cè)試。數(shù)值仿真結(jié)果可見(jiàn),本文所提出的新的數(shù)字圖像加密算法能夠較好地實(shí)現(xiàn)數(shù)字圖像加密,具有密鑰空間大、加密安全性高、計(jì)算簡(jiǎn)單等特點(diǎn)。在FPGA中,該加密方法也能得到較好的實(shí)現(xiàn)。