(湖北大學(xué) 計(jì)算機(jī)與信息工程學(xué)院,武漢 430062)
伴隨著數(shù)字信號(hào)處理技術(shù)、網(wǎng)絡(luò)技術(shù)以及通信技術(shù)的迅速發(fā)展,越來越多的數(shù)字圖像、音頻和視頻等以數(shù)字媒體的形式通過網(wǎng)絡(luò)來進(jìn)行傳播[1]。然而,數(shù)字信息其本身的特點(diǎn)決定,其通過開放或不安全的系統(tǒng)來傳輸信息時(shí),極易被他人所截取獲褚篡改。因此,如何保證數(shù)字信息的安全性及其完整性已然成為了現(xiàn)代信息科學(xué)研究的一個(gè)十分重要的課題[2-3]。
現(xiàn)代密碼學(xué)領(lǐng)域可分為多個(gè)研究領(lǐng)域,但總的來說,它們可以被大致分為兩大類型:對(duì)稱密鑰密碼學(xué)和非對(duì)稱密鑰密碼學(xué)。通常情況下,對(duì)稱密鑰密碼學(xué)因其特性而被優(yōu)選用于諸如圖像和視頻的大數(shù)據(jù)加密[4-6],而混沌密碼學(xué)正是屬于對(duì)稱密鑰密碼學(xué)的范疇。密鑰用于產(chǎn)生混沌系統(tǒng)的參數(shù)或初始值,混沌加密技術(shù)通過置亂和擴(kuò)散運(yùn)算,將明文圖像轉(zhuǎn)化為不可理解的密文圖像,通常來說,這兩個(gè)運(yùn)算會(huì)被重復(fù)執(zhí)行多次直到達(dá)到足夠的加密級(jí)別。具體的加密過程如下圖所示:
圖1 數(shù)字圖像加密過程
圖像加密質(zhì)量通過測(cè)試其防御不同攻擊的能力,例如已知的明文攻擊,密碼文本攻擊,統(tǒng)計(jì)攻擊和暴力攻擊等。每次攻擊的防御能力取決于所選映射的某些屬性及其配置參數(shù)。
密碼學(xué)是研究密碼編制和密碼破譯的技術(shù)科學(xué)以及信息安全研究領(lǐng)域的核心學(xué)科,用于研究信息的安全獲取、安全儲(chǔ)存以及安全傳播[7]。研究密碼變化的客觀規(guī)律,用以進(jìn)行密碼編制以保守通信秘密的分支,稱為編碼學(xué);用以進(jìn)行密碼破譯以獲取通信情報(bào)的分支,稱為破譯學(xué),二者合稱為密碼學(xué)。在密碼學(xué)中,原始信息被稱為明文,而經(jīng)過轉(zhuǎn)換加密后的信息稱為密文,加密過程中使用的偽隨機(jī)序列被稱為密碼,用于生成密碼的關(guān)鍵信息被稱為密鑰。綜上所述,一個(gè)完整的加密系統(tǒng)至少包含五要素,即:明文、密文、密鑰、密碼以及加密算法。同理,解密系統(tǒng)也需要五要素,只是要將加密算法替換成解密算法,這里可以認(rèn)為解密算法是加密算法的一個(gè)逆過程。一個(gè)常見的密碼系統(tǒng)可以用圖2來表示。
圖2 常見密碼系統(tǒng)
1.2.1 Logistic映射
混沌映射指的是從空間某一區(qū)域到其本身的一個(gè)連續(xù)函數(shù)。一維Logistic映射是一類十分簡(jiǎn)單卻已經(jīng)被研究得十分成熟的系統(tǒng),可定義為:
x(n+1)=μx(n)[1-x(n)]
(1)
其中,當(dāng)滿足3.569945627<μ≤4時(shí),系統(tǒng)在[0,1]上是混沌的。
1.2.2 Arnold映射
Arnold映射是二維圖像置亂系統(tǒng)中使用最為頻繁的混沌系統(tǒng)之一,因其由Arnold和Avez提出的,并在貓臉圖像上進(jìn)行的實(shí)驗(yàn),所以該映射也被成為Cat映射。其映射方程如下:
(2)
其中:m和n均為實(shí)數(shù),且xn,yn∈[0,1)。
基于Arnold映射的置亂操作僅需要經(jīng)過幾組簡(jiǎn)單的線性變換和取模運(yùn)算,就能非常有效地對(duì)圖像完成置亂,也正是這個(gè)原因,才使得Arnold映射在圖像置亂加密領(lǐng)域有著極其重要的地位。
1.2.3 Lorenz混沌系統(tǒng)
Lorenz混沌系統(tǒng)是美國(guó)氣象學(xué)家洛倫茲在研究天氣預(yù)報(bào)時(shí)提出的一個(gè)系統(tǒng),因此也稱為大氣對(duì)流模型。他將提出的模型進(jìn)行簡(jiǎn)化,得到了如下的方程組:
(3)
有兩組固定參數(shù)可選,分別為σ=10,λ=28,b=3和σ=16,λ=40,b=4。Lorenz混沌系統(tǒng)通過數(shù)值積分來獲取具備實(shí)數(shù)值的混沌序列。
早在2006年,G.Alvarez等人通過大量基于混沌系統(tǒng)的圖像加密文獻(xiàn)的閱讀,發(fā)現(xiàn)很多文獻(xiàn)其實(shí)并不具備密碼系統(tǒng)的基本要素,實(shí)際上并不能付諸實(shí)際亦或是并不具備安全性,或者說是對(duì)系統(tǒng)安全性能的分析不夠,有的甚至直接出現(xiàn)了無密鑰系統(tǒng)。在這樣一個(gè)嚴(yán)峻的環(huán)境下,為有一個(gè)統(tǒng)一的標(biāo)準(zhǔn),G.Alvarez通過文獻(xiàn)的總結(jié)提煉,提出了混沌密碼系統(tǒng)的基本規(guī)則[8],且這些規(guī)則已經(jīng)得到了密碼學(xué)專家的普遍認(rèn)可:
Rule 1:應(yīng)該對(duì)使用的混沌系統(tǒng)的實(shí)現(xiàn)方法和過程進(jìn)行盡可能詳細(xì)的描述。
Rule 2:如果是離散化的連續(xù)混沌系統(tǒng)或是數(shù)字形式的混沌系統(tǒng),應(yīng)對(duì)其退化情況和偽隨機(jī)序列的統(tǒng)計(jì)特性進(jìn)行討論。
Rule 3:在安全性能不受影響的前提下,密碼系統(tǒng)應(yīng)該盡可能簡(jiǎn)單易實(shí)現(xiàn),并且實(shí)現(xiàn)的速度也希望盡可能的快。
Rule 4:密鑰應(yīng)明確定義。
Rule 5:密鑰空間應(yīng)該明確定義,且密鑰空間中密鑰的有效性應(yīng)給予討論。
Rule 6:密鑰空間中密鑰的敏感性應(yīng)給予討論,以使得兩個(gè)具有微小差別的密鑰加密同一明文得到的密文內(nèi)容截然不同。
Rule 7:未知部分密鑰的信息不能通過已知部分密鑰得到,明文信息也無法通過部分密鑰解密密文得到。
Rule 8:通過密鑰來產(chǎn)生密碼的算法是唯一確定的,應(yīng)該對(duì)其做十分精確的描述和限定。
Rule 9:密碼系統(tǒng)應(yīng)該具備明文敏感和密鑰敏感的特點(diǎn),意思是具有微小差別的兩個(gè)密鑰加密同一明文得到的密文信息應(yīng)截然不同,同樣,同一密鑰加密具有微小差別的兩段明文,所得到的密文信息也要截然不同。
Rule 10:加密得到的密文應(yīng)該與隨機(jī)噪聲相比擬,它的統(tǒng)計(jì)特性應(yīng)該與密鑰的選擇無關(guān)。
Rule 11:所設(shè)計(jì)的密碼系統(tǒng)能夠?qū)巩?dāng)前已知的被動(dòng)攻擊方法。例如,能對(duì)抗唯密文攻擊、已知明文攻擊、選擇密文攻擊等等攻擊方法。
Rule 12:密碼系統(tǒng)能夠?qū)咕€性攻擊方法和差分攻擊。
Rule 13: 密碼系統(tǒng)能夠?qū)宫F(xiàn)有的各式特殊攻擊方法的攻擊,例如基于混沌預(yù)測(cè)、混沌相位分析和混沌同步的攻擊方法等。
Rule 14:密碼系統(tǒng)能夠?qū)宫F(xiàn)有的各式特殊應(yīng)用攻擊方法的攻擊,比如通過特殊圖像來進(jìn)行攻擊的方法等。
Rule 15:密碼系統(tǒng)應(yīng)該能對(duì)抗窮舉攻擊,要求密鑰的長(zhǎng)度大于100b。
Rule 16: 應(yīng)該混沌偽隨機(jī)序列進(jìn)行統(tǒng)計(jì)特性分析。
Rule 17:保密通信系統(tǒng)應(yīng)該通過實(shí)際的網(wǎng)絡(luò)通信信道的測(cè)試。
以上規(guī)則簡(jiǎn)而概之就是:1)混沌序列發(fā)生器能夠快速生成統(tǒng)計(jì)特性優(yōu)良的偽隨機(jī)序列;2)密鑰長(zhǎng)度應(yīng)該大于128b,由有效密鑰所構(gòu)成的密鑰空間應(yīng)該足夠大;3)密碼系統(tǒng)對(duì)明文、密文、密鑰都是十分敏感的;4)密文的統(tǒng)計(jì)特性應(yīng)該與噪聲想比擬;5)密碼系統(tǒng)可以極有效地抵抗6類被動(dòng)攻擊的方法;6)加密和解密的速度應(yīng)足夠快。
擴(kuò)散意味著擴(kuò)展單個(gè)明文數(shù)字對(duì)許多密文數(shù)字的影響,因此明文的統(tǒng)計(jì)結(jié)構(gòu)變得不清楚。在不改變像素點(diǎn)原來位置的前提下,將任意一個(gè)明文的像素點(diǎn)信息盡可能多的隱藏在多的密文的像素點(diǎn)中。
Yaobinmao等人[9]提出,將一維Logistic映射用于生成擴(kuò)散模板:
x(n+1)=4x(n)[1-x(n)]
(4)
映射生成的值最初是浮動(dòng)的并且始終維持在0.2~0.5之間,然后對(duì)每8比特?cái)?shù)據(jù)進(jìn)行縮放和量化,這可以直接用于XOR和MOD操作,映射的初始值取自密鑰。Alireza Jolfaei等[10]提出的一種基于W7密碼流的加密方法,W7密碼流是一種同步對(duì)稱加密流,旨在以非常高的數(shù)據(jù)速率實(shí)現(xiàn)高效的硬件實(shí)現(xiàn),該算法支持128位的密鑰長(zhǎng)度,由一個(gè)控件和一個(gè)功能單元組成。
圖3 W7流混沌序列發(fā)生器
Musheer Ahmad等人[11]使用一維Logistic映射生成擴(kuò)散模板,該模板類似于文獻(xiàn)[9]中提出的方法,在生成模板XOR操作后進(jìn)行擴(kuò)散。 Xin Ma等人[12]提出了使用Chebyshev映射作為密碼流生成器,其描述如下:
x(n+1)=Tk(xn)=cos(k·arccos(xn))
(5)
其中:xn∈[1,-1],k和xn分別是參數(shù)和狀態(tài)值。
若滿足k∈2k,即切比雪夫的階數(shù)時(shí),系統(tǒng)是混亂的。初始值x(0)和參數(shù)k用作擴(kuò)散模塊的密鑰。 在文獻(xiàn)[9]中也使用了Logistic映射來生成擴(kuò)散模板,但是他們還添加了耦合強(qiáng)度因子,它在XOR操作之前修改了生成像素的權(quán)重,它可以表示為:
Shuffled_image⊕Keystream=Chipher_image
其中:f是耦合強(qiáng)度因子。f∈(0,1)。
所謂置亂,從另一方面來說,也就是使用使密文統(tǒng)計(jì)信息對(duì)明文統(tǒng)計(jì)信息的依賴關(guān)系復(fù)雜化的轉(zhuǎn)換。最常用的置亂算法大致可分為三大類:第一類,將行置亂和列置亂或者說是交叉行、列置亂應(yīng)用于二維圖像矩陣;第二類,先把二維圖像降維展開成一維的列向量或者一維的行向量,然后再對(duì)降維后的向量進(jìn)行置亂操作;第三類,通過2×2置亂矩陣來對(duì)二維圖像中的所有點(diǎn)的位置進(jìn)行變換。
Yaobinmao等人[9]首先提出將二維圖像轉(zhuǎn)換為三維,通過使用二維到三維轉(zhuǎn)換技術(shù)來達(dá)到更深層次的置亂,具體操作如式(6)所示:
W×H=W1×H1×D1
(6)
其中W和H是原始圖像的寬度和高度(以像素為單位),W1,H1和D1是三維空間的新維度標(biāo)尺。
數(shù)字圖像經(jīng)過三維變換后,再由三維映射關(guān)系進(jìn)行混沌,等式(7)表示三維映射圖方程組。
(7)
在文獻(xiàn)[10]中,使用了基于Henon映射的混沌方法。Henon映射是由具有混沌吸引因子狀態(tài)方程表示的二維可逆迭代映射的原型,是依農(nóng)(Henon M)在1976年提出的洛倫茲方程的龐加萊映射的簡(jiǎn)化模型。二維Henon映射定義如下:
yn+1=βxn
(8)
初始點(diǎn)為(x0,y0),(x,y)是系統(tǒng)的二維狀態(tài)。當(dāng)a=1.4且β= 0.3時(shí),系統(tǒng)處于混沌狀態(tài)。為了減小相鄰像素相關(guān)性,置亂圖被應(yīng)用于垂直和水平兩個(gè)不同方向上。
Ahmad M 等[11]提出了基于Cat映射和塊的混沌算法,在基于塊的算法中,首先將圖像劃分為較小的塊,然后在塊被混沌之后,每個(gè)塊被獨(dú)立地混沌,因?yàn)镃at映射具有循環(huán)重復(fù)的屬性,所以他們?cè)诿枯喌螅紩?huì)使用二維Logistic映射來改變Cat映射的參數(shù)。
二維耦合Logistic映射表達(dá)式如式(9):
(9)
引入三個(gè)二次耦合項(xiàng),增強(qiáng)二維Logistic映射的復(fù)雜性。當(dāng)滿足條件(9)時(shí),該系統(tǒng)是混沌的,并且在區(qū)間(0,1)中產(chǎn)生混沌序列x,y。
(10)
密鑰空間指的是所有的合法密鑰所構(gòu)成的集合。如果竊聽采用窮盡的方法來破解密碼系統(tǒng)的加密或者是解密系統(tǒng),概率意義上來說,只需要嘗試密鑰空間中一半的密鑰。對(duì)于已經(jīng)知道的明文和密文對(duì),用借助加密過程來破解密鑰時(shí),由已知的明文和隨機(jī)選擇的密鑰,由加密設(shè)備設(shè)備得到相應(yīng)的密文,如果所得到的密文與已知的密文完全一致,那么隨機(jī)選擇的密鑰就是真是的密鑰;而當(dāng)借助于解密的過程來破解密鑰時(shí),由已知的密文和隨機(jī)選擇的明文密鑰,由解密設(shè)備得到的相應(yīng)的明文,如果得到的明文與已知的明文完全相同,則隨機(jī)選擇的密鑰為真是的密鑰。
一個(gè)好的圖像加密算法應(yīng)該對(duì)密碼密鑰十分敏感,并且密鑰空間應(yīng)該大到足以使暴力攻擊變得不可行,尤其是對(duì)于加密/解密速度非??斓拿艽a系統(tǒng),密鑰長(zhǎng)度應(yīng)該至少為128b。根據(jù)目前的計(jì)算機(jī)水平,多數(shù)密碼學(xué)者建議采用128b、192b、256b或者512b長(zhǎng)的密鑰。
Yaobin Mao[9]方法的密鑰長(zhǎng)度為128位且對(duì)密鑰非常敏感,結(jié)果表明密鑰中的單個(gè)位變化導(dǎo)致解碼圖像之間的差異達(dá)到99.59%。文獻(xiàn)[10]具有128位密鑰,密鑰空間大小為2218。此外,如果我們將混沌算法的兩個(gè)子點(diǎn)視為密鑰的一部分,則密鑰空間大小將更大。這意味著如果精度為10-14,則密鑰空間可以達(dá)到3.66×1066。顯然,密鑰空間足夠大,可以抵御各種暴力攻擊。文獻(xiàn)[11]中描述的算法在使用了8個(gè)混沌映射的初始條件,并且x0,y0,z0,μ1,μ2,γ1,γ2和λ的初始條件可以用作加密和解密的秘密密鑰。在這種情況下,若精度 為10-14,則密鑰空間大小為(1014)8,其已經(jīng)足夠大以抵抗任意暴力攻擊。因此可以看出,只要密鑰空間足夠大,就可以有效地防止入侵者的所有暴力攻擊。
為進(jìn)一步了解基于混沌理論的圖像加密算法的一個(gè)有用性與正確性,設(shè)計(jì)相關(guān)實(shí)驗(yàn)進(jìn)行驗(yàn)證,對(duì)一張清晰的貓圖片進(jìn)行加密,得到了加密的圖片,加密前后的貓圖如圖4所示。
圖4 加密前后的貓圖進(jìn)行對(duì)比
通過的加密前后的貓圖片的RGB三個(gè)通道灰度值的出現(xiàn)的概率進(jìn)行統(tǒng)計(jì),來分析經(jīng)過基于混沌理論加密后圖像是否滿足混沌密碼系統(tǒng)的基本規(guī)則,并分析其加密的安全性,得到的加密前后的貓圖的RGB三通道的直方圖分別如圖5、6所示。從直方圖可以看出,加密前的圖像三個(gè)通道的直方圖中,每種灰度的頻率各不一樣,能直接反映出圖像的信息。而反觀加密后的圖像的三個(gè)通道的直方圖,可清晰的發(fā)現(xiàn)各個(gè)通道的不同灰度值的出現(xiàn)頻率是一致的,說明加密成功,滿足前文提到的加密規(guī)則,同時(shí),也說明加密成功,攻擊者無法通過加密后的圖片獲得原始圖像的相關(guān)信息。
圖5 原始貓圖的RGB通道灰度值統(tǒng)計(jì)直方圖
圖6 加密后貓圖的RGB通道灰度值統(tǒng)計(jì)直方圖
通過研究大量的基于混沌加密的圖像加密算法后,可以得出結(jié)論,基于混沌加密的圖像加密算法的架構(gòu)和遵守的規(guī)則幾乎都是一模一樣的,差異仍在于所選用的映射類型,控制方式以及控制映射的參數(shù)數(shù)量不同,這反映了系統(tǒng)的魯棒性,基于混沌加密的圖像加密算法的這種特性同時(shí)也簡(jiǎn)化了混沌算法用于圖像加密的一個(gè)數(shù)學(xué)過程。
盡管基于混沌的圖像加密算法對(duì)圖像的加密有較好的效果,但是由于數(shù)字圖像具有數(shù)據(jù)量巨大且數(shù)據(jù)冗余度及其高以及相關(guān)性強(qiáng)的特點(diǎn),現(xiàn)有的基于馮諾依曼計(jì)算理論的數(shù)字計(jì)算機(jī)仍然顯得力不從心,所以尋找新的計(jì)算工具和計(jì)算理論來對(duì)數(shù)字圖像進(jìn)行加密顯得格外迫切。近年來的基于DNA編碼和計(jì)算以及量子計(jì)算的發(fā)展,有望解決這一難題,數(shù)字圖像的加密在今后肯定也會(huì)有一個(gè)更好的前景。