羅 敏,何雨蓮,李宜磊,張懷武,文岐業(yè)
(電子科技大學(xué)電子科學(xué)與工程學(xué)院 成都 611731)
隨著數(shù)字通信技術(shù)的飛速發(fā)展,數(shù)字圖像以其易于獲取、處理和存儲(chǔ)的優(yōu)勢(shì),成為人們傳遞信息和感知世界的重要方式,廣泛應(yīng)用于工業(yè)、醫(yī)藥、軍事、航天等各個(gè)領(lǐng)域。與此同時(shí),伴隨而來(lái)的則是嚴(yán)重的安全隱患,包括未經(jīng)授權(quán)地傳播、復(fù)制、篡改及偽造等。因此,如何保護(hù)數(shù)字圖像內(nèi)容的安全成了亟待解決的問(wèn)題。
目前圖像加密主要采用基于混沌系統(tǒng)的圖像加密技術(shù)[1-4],簡(jiǎn)稱(chēng)混沌圖像加密方法,主要包括圖像置亂[5-7]與圖像擴(kuò)散[8-10]兩種方法。圖像置亂方法通過(guò)改變圖像像素的位置來(lái)改變?cè)紙D像,使得肉眼無(wú)法直觀地辨認(rèn)明文圖像,以此達(dá)到圖像加密的目的。置亂方法主要包括Arnold 變換[11]、Baker 變換[12]與幻方變換[13]這 3 種。圖像擴(kuò)散方法對(duì)圖像中的像素及其相鄰像素進(jìn)行異或操作,再用變換后的像素替換原始像素,即打亂原始圖像的像素值,以此達(dá)到圖像加密的目的?;煦缦到y(tǒng)用于對(duì)置亂和擴(kuò)散提供索引矩陣,常用的混沌系統(tǒng)有Logistic 混沌映射[14]、Chebychev 映射[15]、Lorenz 混沌系統(tǒng)[16-17]、Chen 混沌系統(tǒng)[18]等。
與傳統(tǒng)圖像加密方法相比,混沌圖像加密方法具有密鑰空間大、加密速度快等優(yōu)點(diǎn)。然而,當(dāng)前混沌圖像加密方法依然存在諸多問(wèn)題亟待解決。具體為:1)普遍采用低維及參數(shù)固定的混沌系統(tǒng),所設(shè)計(jì)的密鑰系統(tǒng)的密鑰空間不夠大、復(fù)雜度較低,在計(jì)算機(jī)有限精度下,容易出現(xiàn)短周期現(xiàn)象及混沌退化,容易受到攻擊者使用相空間重構(gòu)方法進(jìn)行的攻擊破譯;2)僅采用簡(jiǎn)單的像素置亂及像素?cái)U(kuò)散方法,如基于位置變換的置亂方法、基于異或運(yùn)算的擴(kuò)散方法,它們的復(fù)雜度較低、易于破譯,即僅僅對(duì)圖像進(jìn)行簡(jiǎn)單的像素位置和大小上的變換;3)每一幅圖像都使用相同的密鑰流,安全性較差,攻擊者只要破譯一幅圖像就可以對(duì)其他密文圖像進(jìn)行破譯,未有效地將密鑰與明文圖像進(jìn)行聯(lián)系。
為了解決圖像加密方法的上述問(wèn)題,提供了一種基于變參數(shù)超混沌系統(tǒng)與S 形擴(kuò)散的多圖像加密方法,如圖1 所示。首先借助Alpha 通道的概念,將輸入灰度圖像(原始圖像)進(jìn)行重構(gòu),然后將其作為初始信息輸入SHA-512 算法生成初始密鑰,再利用變參數(shù)超混沌系統(tǒng)迭代生成的5 組混沌序列對(duì)明文圖像進(jìn)行幻方變換,實(shí)現(xiàn)像素位置的變換,最后基于S 形擴(kuò)散實(shí)現(xiàn)像素?cái)?shù)值的變換,從而得到密文圖像。具體技術(shù)方案包括以下3 個(gè)步驟。
圖1 多圖像加密方法的設(shè)計(jì)框架
1)首先對(duì)輸入灰度圖像對(duì)進(jìn)行圖像預(yù)處理,得到重構(gòu)GA 圖像P,并將其像素序列作為初始信息輸入SHA-512 哈希函數(shù)生成初始密鑰流;
2)再將初始密鑰流作為初始值,輸入變參數(shù)超混沌系統(tǒng)迭代生成混沌序列X1、X2、X3、X4與X5,并基于混沌序列X1、X2、X3計(jì)算得到索引序列;再根據(jù)索引序列對(duì)重構(gòu)GA 圖像P采用幻方變換進(jìn)行置亂,得到置亂后的密文圖像C;
3)最后對(duì)密文圖像C進(jìn)行順向S 形擴(kuò)散得到順向擴(kuò)散后矩陣,再對(duì)順向擴(kuò)散后矩陣進(jìn)行逆向S 形擴(kuò)散,得到最終密文圖像T。
根據(jù)Fan 超混沌系統(tǒng)的定義[19],其數(shù)學(xué)模型如式(1)所示,其典型特征是:當(dāng)a=30、b=10、c=15.7、d=5、e=2.5、f=4.45、g=38.5 時(shí),該混沌系統(tǒng)存在兩個(gè)正的Lyapunov 指數(shù),即存在復(fù)雜的混沌行為。
式中,x1、x2、x3、x4、x5為系統(tǒng)變量;a、b、c、d、e、f、g為系統(tǒng)參數(shù);x˙1、x˙2、x˙3、x˙4、x˙5為每次迭代產(chǎn)生的新系統(tǒng)變量(Lyapunov 指數(shù))。
為了增強(qiáng)混沌系統(tǒng)的復(fù)雜性和隨機(jī)性,采用Logistic 混沌映射作為擾動(dòng)系統(tǒng),對(duì)Fan 超混沌系統(tǒng)的參數(shù)施加擾動(dòng)來(lái)構(gòu)造變參數(shù)混沌系統(tǒng),以生成具有更高隨機(jī)性的混沌序列,Logistic 映射為非線(xiàn)性的迭代方程,如式(2)所示,其典型特征是:當(dāng)滿(mǎn)足3.57<μ<4 時(shí),Logistic 映射工作于混沌狀態(tài),即為L(zhǎng)ogistic 混沌映射。
式中,y為系統(tǒng)變量;μ為系統(tǒng)參數(shù);y˙為每次迭代產(chǎn)生的新系統(tǒng)變量。
引入?yún)?shù)擾動(dòng)項(xiàng)后的變參數(shù)超混沌系統(tǒng)的數(shù)學(xué)模型如式(3)所示,根據(jù)混沌系統(tǒng)的定義,無(wú)論初始值如何變化,系統(tǒng)變量都會(huì)回到一個(gè)固定的吸引域,由于式(1)、(2)均為混沌系統(tǒng)方程,因此Lyapunov 指數(shù)的數(shù)值經(jīng)過(guò)式(3)多次迭代后,只跟擾動(dòng)強(qiáng)度λ 有關(guān),與y、xi(i=1,2,···,5)的初始值無(wú)關(guān),y、xi的初始值可取實(shí)數(shù)范圍內(nèi)的任意值,最終穩(wěn)定的Lyapunov 指數(shù)的數(shù)值只依賴(lài)于擾動(dòng)強(qiáng)度λ。
式中,x1、x2、x3、x4、x5為系統(tǒng)變量;a、b、c、d、e、f、g為系統(tǒng)參數(shù);x˙1、x˙2、x˙3、x˙4、x˙5為每次迭代產(chǎn)生的新系統(tǒng)變量;λ 為擾動(dòng)強(qiáng)度參數(shù);y為L(zhǎng)ogistic 混沌映射的系統(tǒng)參數(shù)。
為了確定擾動(dòng)強(qiáng)度參數(shù)λ 的取值范圍,確保變參數(shù)超混沌系統(tǒng)始終處于混沌狀態(tài),對(duì)變參數(shù)超混沌系統(tǒng)的Lyapunov 指數(shù)和系統(tǒng)相圖進(jìn)行仿真分析,在系統(tǒng)參數(shù)a=30、b=10、c=15.7、d=5、e=2.5、f=4.45、g=38.5、μ=3.8 時(shí),取y=1、xi=0.1 作為初始值,當(dāng)變參數(shù)超混沌系統(tǒng)自身迭代300 次后,Lyapunov 指數(shù)的數(shù)值趨于穩(wěn)定,將第301 次迭代產(chǎn)生的y、xi以及系統(tǒng)參數(shù)代入式(3),得到了變參數(shù)超混沌系統(tǒng)(λ 在-5~4 之間變化)的Lyapunov指數(shù)變化曲線(xiàn),如圖2 所示。當(dāng)擾動(dòng)強(qiáng)度參數(shù)λ 在-4.0~2.35 之間時(shí),x1(λ)和x2(λ)始終大于零,即始終存在兩個(gè)正的Lyapunov 指數(shù),使變參數(shù)超混沌系統(tǒng)保持混沌狀態(tài)。圖3 給出了擾動(dòng)強(qiáng)度參數(shù)λ 為0 時(shí),變參數(shù)超混沌系統(tǒng)的系統(tǒng)相圖,通過(guò)系統(tǒng)相圖能夠更直觀地表現(xiàn)出變參數(shù)超混沌系統(tǒng)的動(dòng)力學(xué)行為。
圖2 變參數(shù)超混沌系統(tǒng)的Lyapunov 指數(shù)變化曲線(xiàn)
圖3 變參數(shù)超混沌系統(tǒng)的系統(tǒng)相圖
多圖像加密方法的流程圖如圖4 所示,包括圖像預(yù)處理與密鑰生成、置亂階段和擴(kuò)散階段3 個(gè)步驟。以下使用如圖5 所示的傳統(tǒng)圖像辣椒(灰度圖像P0)與狒狒(灰度圖像P1)為例進(jìn)行說(shuō)明,兩張圖像的像素大小均為512×512,記為M×N,M為圖像像素長(zhǎng)度、N為圖像像素寬度。
圖4 多圖像加密方法的流程圖
圖5 原始圖像
1.2.1 圖像預(yù)處理及密鑰生成
1)引入Alpha 通道的概念,將灰度圖像P1作為Alpha 通道嵌入至灰度圖像P0,進(jìn)而形成一幅具有不同透明度的Grayscale-Alpha(GA)圖像P;
2)將圖像P分解為灰度通道PG與Alpha 通道PA兩路數(shù)據(jù)矩陣(矩陣大小均為M×N),再將灰度通道PG與Alpha 通道PA轉(zhuǎn)換為一維矩陣,并拼接構(gòu)成一維矩陣PC,將一維矩陣PC作為初始信息,輸入SHA-512 哈希函數(shù),生成512 bit 的二進(jìn)制哈希值,具體運(yùn)算為:
式中,reshape( )表示將指定矩陣變換為特定行列數(shù)的矩陣。
3)將二進(jìn)制的哈希值以每8 bit 為一位轉(zhuǎn)化為十進(jìn)制,進(jìn)而得到64 位十進(jìn)制數(shù)據(jù)ci(i=1,2,···, 64);
4)對(duì)64 位十進(jìn)制數(shù)據(jù)進(jìn)行異或運(yùn)算得到加密方法所需要的初始密鑰流,具體運(yùn)算為:
需要說(shuō)明的是:式(5)中λ 的歸一化過(guò)程能夠保證其取值在-4.0~2.35 之間,進(jìn)而保證變參數(shù)混沌系統(tǒng)保持混沌狀態(tài)。
1.2.2 置亂階段
1)根據(jù)初始密鑰流,應(yīng)用四階龍格庫(kù)塔算法對(duì)變參數(shù)超混沌系統(tǒng)進(jìn)行迭代,為避免暫態(tài)效應(yīng)的影響,舍棄前500 組數(shù)據(jù),從第501 個(gè)數(shù)據(jù)進(jìn)行截取,最終得到5 組一維混沌序列X1、X2、X3、X4與X5,其中,每組混沌序列的長(zhǎng)度均為M×N;
2)將混沌序列X1按行升序排列,得到置亂后矩陣I1與索引序列,具體運(yùn)算為:
式中,sort( )表示排序函數(shù);‘2’表示按行排序;ascend表示升序排列;
圖6 混沌序列置亂示意圖
圖7 幻方變換示意圖
式中,reshape( )表示將指定矩陣變換為特定行列數(shù)的矩陣。
1.2.3 擴(kuò)散階段
1)將混沌序列X4與X5進(jìn)行向下取整數(shù)運(yùn)算,得到十進(jìn)制整數(shù)的混沌序列,然后將十進(jìn)制轉(zhuǎn)換為二進(jìn)制的一維序列(長(zhǎng)度均為M×8N):
式中,dec2bin( )表示將十進(jìn)制轉(zhuǎn)換為二進(jìn)制;floor( )為向下取整函數(shù)。
2)將密文圖像C分解為灰度通道CG和Alpha通道CA兩路數(shù)據(jù)矩陣(矩陣大小均為M×N),先對(duì)灰度通道CG和Alpha 通道CA分別進(jìn)行順向S形擴(kuò)散,再進(jìn)行十進(jìn)制到二進(jìn)制的轉(zhuǎn)換,得到二進(jìn)制的一維矩陣(長(zhǎng)度均為M×8N);然后根據(jù)式(10)進(jìn)行異或運(yùn)算,得到二進(jìn)制的一維矩陣B1與B2(長(zhǎng)度均為M×8N),將二進(jìn)制矩陣B1與B2轉(zhuǎn)換為十進(jìn)制矩陣,并將一維變換為二維,得到順向擴(kuò)散后矩陣(矩陣大小均為M×N):
式中,mod( )表示取余運(yùn)算;M、N為輸入灰度圖像的像素長(zhǎng)度和像素寬度;bin2dec( )表示將二進(jìn)制轉(zhuǎn)換為十進(jìn)制。
順向S 形擴(kuò)散的定義如圖8a 所示,具體運(yùn)算為:
圖8 順向和逆向S 形擴(kuò)散示意圖
式中,Sforward( )表示順向S形擴(kuò)散運(yùn)算;Q為原始矩陣;Q′為順向S形擴(kuò)散結(jié)果。
逆向S 形擴(kuò)散的定義如圖8b 所示,具體運(yùn)算為:
式中,Sreverse( )表示逆向S形擴(kuò)散運(yùn)算;Q為原始矩陣;Q′′為逆向S形擴(kuò)散結(jié)果。
圖像解密方法使用與加密方法相同的密鑰,具體包括以下3 個(gè)步驟。
1)將密文圖像分解為兩通道十進(jìn)制數(shù)據(jù)矩陣,即灰度通道J與Alpha 通道K(矩陣大小均為M×N),對(duì)J與K分別進(jìn)行順向S 形擴(kuò)散的逆操作,再進(jìn)行十進(jìn)制到二進(jìn)制的轉(zhuǎn)換,得到二進(jìn)制的一維矩陣J′與K′(長(zhǎng)度均為M×8N);根據(jù)式(16)進(jìn)行異或運(yùn)算,得到二進(jìn)制的一維矩陣J1和K1(長(zhǎng)度均為M×8N),將二進(jìn)制矩陣J1和K1轉(zhuǎn)換為十進(jìn)制矩陣,并將其變換為二維矩陣(矩陣大小均為M×N),具體運(yùn)算如式(17)所示:
通過(guò)上述多圖像加解密方法,對(duì)如圖5 所示的傳統(tǒng)圖像辣椒與狒狒進(jìn)行加解密實(shí)驗(yàn),得到的仿真圖如圖9 所示。由圖可見(jiàn),密文圖像是完全無(wú)序的,無(wú)法分辨出原始圖像的任何有效信息。
圖9 原始圖像加解密實(shí)驗(yàn)的結(jié)果展示圖
為了驗(yàn)證多圖像加密方法的安全性能,圖10給出了加解密前后的直方圖;由圖可見(jiàn),圖像辣椒與圖像狒狒的密文圖像直方圖均近似均勻分布,攻擊者很難從中獲取有效信息。
圖10 灰度通道和Alpha 通道的明文和密文直方圖
此外,為了更加直觀地說(shuō)明多圖像加密方法打破相鄰像素相關(guān)性的能力,圖11 給出了加密前后灰度通道與Alpha 通道的像素相關(guān)性分布圖。由圖可見(jiàn),加密后的相關(guān)性分布遍布整個(gè)區(qū)域,有效地破壞了明文圖像的像素相關(guān)性分布。
圖11 灰度通道和Alpha 通道的明文和密文相鄰像素相關(guān)性對(duì)比圖
信息熵用于表征一個(gè)數(shù)字圖像像素的分布情況,信息熵越接近理想值8,像素分布越隨機(jī)。為驗(yàn)證加密算法擾亂明文圖像像素分布的能力,對(duì)辣椒和狒狒加密前后圖像進(jìn)行信息熵分析。表1 給出了經(jīng)加密算法加密后,明文圖像與密文圖像的信息熵??梢钥闯?,密文圖像的信息熵接近理想值8,這證明設(shè)計(jì)的加密算法可以更加有效地打亂明文像素分布。
表1 信息熵分析表
加密算法的抗差分攻擊能力主要體現(xiàn)在對(duì)同一明文圖像任一像素點(diǎn)施加微小改變,密文圖像隨之產(chǎn)生相應(yīng)變化的能力。本文將明文圖像某一像素點(diǎn)的像素值減1,然后通過(guò)計(jì)算NPCR 和UACI,對(duì)抗差分攻擊能力進(jìn)行評(píng)估,結(jié)果如表2 所示??梢钥闯觯用芩惴ǖ腘PCR 和UACI 接近理想值99.609 4%和33.463 5%,說(shuō)明設(shè)計(jì)的加密算法對(duì)明文的微小變化具有更高的敏感性,可以更加有效地抵御差分攻擊。
表2 抗差分攻擊能力分析表 %
當(dāng)圖像進(jìn)行網(wǎng)絡(luò)傳輸時(shí),可能會(huì)引入各種噪聲干擾,導(dǎo)致密文圖像某些像素點(diǎn)的像素值發(fā)生改變,進(jìn)而影響到原始圖像有效信息的恢復(fù)。本文對(duì)辣椒和狒狒加密后的密文圖像分別加入5%、10%和20%的椒鹽噪聲,以此驗(yàn)證加密算法的抗噪聲能力。圖12 為辣椒和狒狒引入椒鹽噪聲后的密文圖像以及運(yùn)用解密算法解密后的圖像??梢钥闯?,引入不同程度的椒鹽噪聲后,解密圖像雖然受到一定程度的損壞,但是依舊可以分辨出大部分有效信息,因此所提加密算法具有良好的抗噪聲能力。
圖12 算法性能對(duì)比:抗噪聲分析
為驗(yàn)證加密算法的抗剪切能力,本文將辣椒和狒狒加密后的密文圖像,在不同位置剪切不同像素大小的信息,然后再對(duì)其進(jìn)行解密,剪切后的密文圖像以及相應(yīng)的解密圖像如圖13 所示。從圖中可以看出,密文圖像受到人為剪切后,加密算法仍然可以恢復(fù)出原始圖像的主要信息,具備良好的抗剪切能力。
圖13 算法性能對(duì)比:抗剪切分析
基于變參數(shù)超混沌系統(tǒng)的多圖像加密方法,主要由4 個(gè)部分構(gòu)成:變參數(shù)超混沌系統(tǒng)構(gòu)建、圖像預(yù)處理與密鑰生成、幻方變換置亂和S 形擴(kuò)散。首先借助Alpha 通道的概念,將輸入灰度圖像對(duì)進(jìn)行重構(gòu),然后將重構(gòu)圖像作為初始信息輸入SHA-512算法生成初始密鑰,再將其輸入變參數(shù)超混沌系統(tǒng)迭代生成5 組混沌序列,進(jìn)而對(duì)重構(gòu)圖像進(jìn)行幻方變換,實(shí)現(xiàn)像素位置的變換,最后基于S 形擴(kuò)散實(shí)現(xiàn)像素?cái)?shù)值的變化,從而得到密文圖像。
與傳統(tǒng)圖像加密方法相比,基于變參數(shù)超混沌系統(tǒng)的多圖像加密方法,具有如下優(yōu)點(diǎn):
1)將混沌系統(tǒng)的參數(shù)作為加密過(guò)程中的控制變量之一,運(yùn)用另一個(gè)混沌系統(tǒng)的狀態(tài)變量對(duì)其施加一定的擾動(dòng),以構(gòu)造變參數(shù)超混沌系統(tǒng),同時(shí)確保該混沌系統(tǒng)依舊處于混沌狀態(tài),生成具有更高復(fù)雜度和隨機(jī)性的偽隨機(jī)序列,有效地改善了傳統(tǒng)混沌系統(tǒng)的低隨機(jī)性、低復(fù)雜度以及混沌系統(tǒng)退化等缺陷;
2)采用幻方變換的置亂方法,最大程度地對(duì)圖像像素進(jìn)行位置上的置亂,并創(chuàng)造性地提出S 形擴(kuò)散方法,提高了密文圖像的無(wú)序性,打破了像素相關(guān)性分布,具有更優(yōu)越的加密性能表現(xiàn),難以被暴力破譯;
3)采用SHA-512 算法,結(jié)合明文圖像生成初始密鑰,保證一幅圖像僅僅對(duì)應(yīng)一種密鑰流,有效地提高了加密算法抵抗明文攻擊的能力;
4)本文設(shè)計(jì)的加密算法可以有效地打亂明文像素分布、有效地抵御差分攻擊,具有良好的抗噪聲能力和具備良好的抗剪切能力。