夏雪飛,張 迪,呂嘉欣,吳佳楠
(1.長春大學(xué) 量子信息實(shí)驗(yàn)室, 長春 130022; 2.吉林交通職業(yè)技術(shù)學(xué)院, 長春 130012)
隨著計(jì)算機(jī)、互聯(lián)網(wǎng)和多媒體等信息技術(shù)的迅猛發(fā)展,作為多媒體信息表達(dá)的主流方式之一的數(shù)字圖像信息在人們的日常生活中所占比重越來越大,所承載的敏感信息和潛在的安全隱患也越來越多,有效地保護(hù)數(shù)字圖像,對其進(jìn)行有效的安全加密已成為信息安全的一個(gè)研究熱點(diǎn)[1-2]。
數(shù)字圖像加密方法主要有基于空間域和變換域的加密處理技術(shù)。基于空間域的算法操作簡單、加密速度快,但抗攻擊性較差、安全性較低[2];變換域算法較為復(fù)雜,卻普遍具有較高的魯棒性,但在進(jìn)行變換操作時(shí)存在數(shù)據(jù)缺失,導(dǎo)致解密后的圖像與原始圖像存在差別[2-3]。一些結(jié)合空間域和變換域的數(shù)字水印算法使用的水印復(fù)雜度低,安全性相對較弱,為了提高保密性和穩(wěn)健性,通常采用偽隨機(jī)序列來控制水印的嵌入位置[4-5]。
混沌系統(tǒng)由于兼具良好的隨機(jī)性、非周期性以及初值敏感性等密碼學(xué)特征[6]而被用于隨機(jī)序列的生成[7]。該類方法中關(guān)于混沌系統(tǒng)的選擇對圖像的最終加密效果有著極為重要的影響。多維混沌系統(tǒng)計(jì)算難度高,結(jié)構(gòu)簡單的一維混沌系統(tǒng)雖然容易實(shí)現(xiàn),但所生成的偽隨機(jī)序列存在分布不均的問題[7-9]。然而,即便是再理想的算法,所生成的也終歸是偽隨機(jī)序列,所以在理論上仍存在被破譯的可能,尤其在量子計(jì)算日益發(fā)展所帶來的威脅下,其安全性正面臨著極大的考驗(yàn)[10-11]。
為了在進(jìn)一步提高算法安全性的同時(shí)兼顧加密有效性,本文基于量子密鑰序列優(yōu)越的隨機(jī)性,提出了一種基于量子密鑰的RGB彩色圖像的三層加密算法。采用基于量子密鑰分發(fā)(QKD)技術(shù)制備的,在理論上被證明為絕對安全且具有真隨機(jī)性的量子密鑰作為圖像加密密鑰的數(shù)據(jù)源,提高加密安全性。在此基礎(chǔ)上,算法融合了圖像空間域和變換域理念,采用了不確定密鑰使用長度的算法特性,對圖像進(jìn)行了三重加密。第一重加密方法是根據(jù)量子密鑰對明文圖像進(jìn)行2次大小不同的分塊處理,首先利用量子密鑰對較大分塊的明文圖像進(jìn)行旋轉(zhuǎn),然后根據(jù)量子密鑰對經(jīng)過前述操作的圖像進(jìn)行較小分塊并進(jìn)行行列循環(huán)加密;第二重加密方法是采用不定長密鑰對像素值的位置與顏色通道加密;第三重加密方法是對圖像進(jìn)行一階二維離散小波變換,然后將得到的低頻系數(shù)與量子密鑰進(jìn)行異或加密,最后通過逆小波變換得到密文圖像。量子密鑰的融入和不定長密鑰的設(shè)計(jì)理念使該算法產(chǎn)生的密文圖像在像素值層面具有良好的隨機(jī)性和安全性。
基于量子力學(xué)而衍生的QKD技術(shù)主要目標(biāo)是通過利用物理學(xué)定律來實(shí)現(xiàn)信息理論上的安全。根據(jù)海森堡不確定原理和量子不可復(fù)制定理,在理論上實(shí)現(xiàn)了通信密鑰的絕對安全。本文算法采用量子密鑰作為圖像加密過程中需要的隨機(jī)序列。量子密鑰的制備主要基于Bennett等[12]提出的BB84協(xié)議原理,通過QKD機(jī)制生成具有真隨機(jī)性的量子安全密鑰。關(guān)鍵過程如下:
設(shè)定發(fā)送方為Alice,接收方為Bob。
步驟1Alice在單光子的偏振態(tài)上隨機(jī)編碼比特發(fā)送給Bob;
步驟2接收方Bob隨機(jī)選取測量基(+基或×基)使用探測器測量Alice發(fā)送過來的光子偏振態(tài);
步驟3雙方進(jìn)行基矢比對,分別保留具有相同測量基的偏振態(tài)數(shù)據(jù);
步驟4將得到的偏振態(tài)數(shù)據(jù)轉(zhuǎn)換成相應(yīng)的密鑰比特?cái)?shù)據(jù);
步驟5Alice和Bob對密鑰比特進(jìn)行后處理操作,最終生成安全密鑰;
步驟6將量子密鑰轉(zhuǎn)換成本文算法所需的具有真隨機(jī)性的量子密鑰比特流QStream。
將量子密鑰流QStream劃分為3個(gè)量子密鑰組:QKey1、QKey2和QKey3。設(shè)明文圖像I的尺寸為M×N×L。其中M、N代表圖像的寬、高,L代表顏色通道數(shù)。
1.2.1QKey1的邏輯結(jié)構(gòu)
量子密鑰組QKey1用于本文算法的第一重加密,分為QKey1.1、QKey1.2和QKey1.3三個(gè)部分。
QKey1.1用于確定QKey1.2和QKey1.3的長度,邏輯結(jié)構(gòu)如圖1所示。
圖1 QKey1.1的邏輯結(jié)構(gòu)示意圖
圖1中A=1,2,…,2n1;B=1,2,…,2n1,A和B由n1位二進(jìn)制序列轉(zhuǎn)換成十進(jìn)制數(shù)并加1得到。其中,
n1=2?log2?log2min(M,N)」」
(1)
QKey1.2用于第一重加密的第一步加密過程,邏輯結(jié)構(gòu)如圖2所示。
圖2 QKey1.2的邏輯結(jié)構(gòu)示意圖
圖2中,Angle(i,j,k)代表圖像k通道中第i行第j個(gè)分塊所對應(yīng)的Angle值,Angle(i,j,k)=0,1,2,3;i=1,2,…,n2;j=1,2,…,n2;k=1,2,…,L。其中,
(2)
QKey1.3用于第一重加密的第2步過程,邏輯結(jié)構(gòu)如圖3所示。Dir1(i,j,k)=0,1;Dir2(i,j,k)=0,1;STEP(i,j,k)=1,2,3,…,n3-1;i=1,2,3,…,n3;j=1,2,3,…,n3;k=1,2,…,L;Dir1(i,j,k),Dir2(i,j,k)和STEP(i,j,k)是指圖像k顏色通道中第i行第j個(gè)分塊所對應(yīng)的Dir1、Dir2和STEP值。其中:
(3)
(4)
圖3 QKey1.3的邏輯結(jié)構(gòu)示意圖
1.2.2QKey2的邏輯結(jié)構(gòu)
量子密鑰組QKey2用于本文算法的第二重加密,其邏輯結(jié)構(gòu)如圖4所示。ban(i,j,k)=0,1,2,3; col(i,j,k)=0,1,2,3,并且col(i,j,k)≠ban(i,j,k);O(i,j,k)=1,2,…,M;P(i,j,k)=1,2,…,N;ban(i,j,k),col(i,j,k),O(i,j,k)和P(i,j,k)是指圖像k顏色通道中第i行第j個(gè)分塊所對應(yīng)的ban,col,O和P值;i=1,2,…,M;j=1,2,…,N。
圖4 QKey2的邏輯結(jié)構(gòu)示意圖
1.2.3QKey3的邏輯結(jié)構(gòu)
量子密鑰組QKey3用于本文算法的第三重加密,其邏輯結(jié)構(gòu)如圖5所示。
圖5 QKey3的邏輯結(jié)構(gòu)示意圖
圖5中n5為明文圖像I的位深,n6,n7的取值如式(5)(6)所示。
(5)
(6)
本文算法對尺寸為M×N×L的明文圖像I的加密算法結(jié)構(gòu)如圖6所示。
圖6 加密算法結(jié)構(gòu)框圖
為了提高加密效率,采用對明文圖像I劃分區(qū)塊分塊加密的策略。
步驟1預(yù)處理。根據(jù)QKey1.1中A值和B值確定Imax塊與Imin塊的尺寸,其中Imax=max(A,B),Imin=min(A,B);
步驟2Imax塊塊內(nèi)加密。把明文圖像I按Imax分塊后,將每一塊都進(jìn)行如式(7)的轉(zhuǎn)換:
Angle(i,j,k)·90°)
(7)
步驟3Imin塊塊間加密。把圖像I′按Imin分塊后,如果Dir1(i,j,k)=0,將I′第i行的每一塊都進(jìn)行如式(8)(9)的轉(zhuǎn)換:
(8)
step=mod(j+(-1)Dir2(i, j,k)×STEP(i,j,k),
Dir2(i,j,k)+(-1)Dir2(i, j,k)×(n3+1))
(9)
如果Dir1(i,j,k)=1,將I′第j列的每一塊都進(jìn)行如式(10)(11)的轉(zhuǎn)換:
(10)
step=mod(i+(-1)Dir2(i, j,k)×STEP(i,j,k),
Dir2(i,j,k)+(-1)Dir2(i, j,k)×(n3+1))
(11)
Begin
if ban(i,j,k)=0 or
(ban(i,j,k)=1 & col(i,j,k)≠0) or
(ban(i,j,k)=2 & col(i,j,k)=3)
then exchange(I1′(i,j,k),I1′(O(i,j,k),P(i,j,k),col(i,j,k)))
elseif ban(i,j,k)=1& col(i,j,k)=0
then exchange(I1′(i,j,k),I1′(O(i,j,k),P(i,j,k),1))
elseif (ban(i,j,k)=2&col(i,j,k)≠3) or
ban(i,j,k)=3
then exchange(I1′(i,j,k),I1′(O(i,j,k),P(i,j,k),col(i,j,k)+1))
End
其中,exchange( )的作用是交換像素值。
① 讀取QKey2中的2 bit確定ban(i,j,k)值;
② 讀取QKey2中的2 bit設(shè)為col(i,j,k)值;
③ 判斷col(i,j,k)與ban(i,j,k):
如果col(i,j,k)= ban(i,j,k),則col(i,j,k)從當(dāng)前在 QKey2的位置開始,以2 bit為窗口向后滑動1 bit,重復(fù)②③直至col(i,j,k)≠ban(i,j,k);
如果col(i,j,k)≠ban(i,j,k),則結(jié)束該過程,進(jìn)行算法中的下一步。
由上述過程可看出,在不知道QKey2具體內(nèi)容的情況下,無法知道加密圖像所需要的總密鑰量。因此,本文算法具有不定長量子密鑰的特性。
對圖像進(jìn)行Haar小波基函數(shù)的一級二維離散小波(DWT)變換后可得到圖像的4個(gè)頻帶:LH、HL、HH、LL。LH、HL、HH分別含有水平、垂直、對角方向的高頻邊緣信息,LL則留存了原圖像的概貌和空間特性,將低頻系數(shù)矩陣置亂加密可有效提高安全性[13]。本算法選擇對低頻分量進(jìn)行加密處理,具體加密操作如下:
步驟2對低頻系數(shù)LL做如式(12)的轉(zhuǎn)換:
LL′(i,j,k) = bitxor(EL(i,j,k),fix(LL(i,j,k)))+
LL(i,j,k)-fix(LL(i,j,k))
(12)
式中:bitxor( )作用是進(jìn)行按位異或;fix( )作用是截取整數(shù);i=1,2,3,…,n6;
步驟3通過逆離散小波變換重構(gòu)LL′,LH,HL,HH獲得密文圖像。
解密過程為加密過程的逆操作,方法如下:
步驟1先將變換域低頻系數(shù)值與QKey3進(jìn)行異或,恢復(fù)變換域低頻系數(shù)值;
步驟2然后根據(jù)QKey2恢復(fù)像素點(diǎn)的位置;
步驟3最后對像素塊加密進(jìn)行恢復(fù);
步驟4獲得解密圖像J,且J=I。
如圖7所示,QKD系統(tǒng)通過量子信道產(chǎn)生密鑰并存入密鑰池,通信雙方(Alice與Bob)得到相同的安全密鑰;經(jīng)典通信系統(tǒng)從密鑰池中讀取密鑰,發(fā)送給加密計(jì)算程序制備量子密鑰流Qstream。密文圖像通過經(jīng)典信道從加密端傳輸?shù)浇饷芏?,雙方因具有相同的量子密鑰,基于本文算法能夠?qū)崿F(xiàn)圖像的加解密計(jì)算。整個(gè)過程采用量子密鑰分發(fā)技術(shù),確保密鑰的安全,即使密文被截獲,在無法得到密鑰的前提下也無法被解密。
圖7 基于QKD的加解密過程框圖
實(shí)驗(yàn)在Matlab R2018b的環(huán)境下進(jìn)行,使用的明文圖像分別是Lena、Baboon和Pepper,尺寸均為512×512×3,位深為8的RGB彩色圖像。結(jié)合本文算法使用量子密鑰對3幅圖像分別進(jìn)行加密處理,如圖8所示。其中(a)(b)(c)為明文圖像,(d)(e)(f)為密文圖像。
圖8 彩色明文圖像與密文圖像
以Baboon為例,給出了本文算法的加密過程性結(jié)果。如圖9所示,在每一次加密處理后,RGB的顏色都更加平均,逐級增加了加密深度。
圖9 Baboon的加密過程圖像
直方圖能夠反映圖像像素值的分布情況,理想密文圖像的直方圖應(yīng)呈均勻分布。Baboon明文圖像和密文圖像的直方圖如圖10所示。
從圖10可以看出,Baboon明文圖像RGB 3個(gè)顏色通道的直方圖(a)(b)(c)數(shù)據(jù)分布不均,有多個(gè)明顯的波峰和波谷;但密文圖像3個(gè)顏色通道的直方圖(d)(e)(f)分布均衡,沒有明顯的波動。
圖10 Baboon明文圖像和密文圖像的直方圖
用本文算法對Lena圖分別進(jìn)行5次加密,消耗的密鑰量分別為192 273 892 bit、19 611 912 bit、28 213 437 bit、19 267 839 bit和21 159 763 bit。其中消耗的密鑰量最少差距6 053 bit,最多差距8 945 598 bit。算法使用的密鑰量不確定性明顯,可有效抵御窮舉攻擊。
為了評判本文算法的加密有效性,將最終的密文圖像轉(zhuǎn)換為二進(jìn)制序列,采用NIST[14](national institute of standards and technology)隨機(jī)性能檢測方法進(jìn)行評判與分析,同時(shí)引入文獻(xiàn)[15]作為對比參照,計(jì)算結(jié)果如表1所示??梢钥吹?,除近似熵、快速小波變換及頻率3項(xiàng)中的部分值低于文獻(xiàn)[15]外,其他指標(biāo)均高于文獻(xiàn)[15]??梢?,量子密鑰的融入使該算法產(chǎn)生的密文圖像在像素值層面具有良好的隨機(jī)性,間接提高了算法的安全性。
表1 密文圖像的NIST統(tǒng)計(jì)計(jì)算結(jié)果
差分攻擊即利用所提出的加密算法加密對原始圖像作微小改變的新圖像,觀察對比原密圖與新密圖之間的差別,從而得出新舊密圖之間的關(guān)系[16-17]。通常采用歸一化像素值平均改變強(qiáng)度UACI(unified average changing intensity)和像素?cái)?shù)改變率NPCR(number of pixels change rate) 來衡量加密算法對明文的敏感性,敏感性越高,算法抗差分攻擊的能力越強(qiáng)[16]。相關(guān)計(jì)算式為:
(13)
式中:相同像素點(diǎn)坐標(biāo)(i,j)的原始密文圖像與新密文像素值一致時(shí)D(i,j)=0,否則D(i,j)=1。
(14)
實(shí)驗(yàn)中,將原圖像的一個(gè)像素值進(jìn)行改動后得到新明文圖像,分別用本文算法進(jìn)行加密處理,得到2個(gè)密文圖像:即原來的密文圖像和像素值調(diào)整后得到的新圖像的密文圖像。采用式(13)和(14)計(jì)算得出NPCR和UACI值,結(jié)合文獻(xiàn)[15],得到表2。
表2 NPCR和UCAI值
由表2可以看出,加密后密文圖像各RGB通道的NPCR值均在99%以上,UACI值均在33%以上。該結(jié)果表明:即使對原始圖像進(jìn)行細(xì)微的改動處理,通過本算法進(jìn)行加密后,得到的密文圖像也會有十分明顯的差異,從而證明了本文算法對于差分攻擊有較強(qiáng)的抗性。
提出了一種基于量子密鑰的RGB彩色圖像的三層加密算法。算法融合了圖像空間域和變換域理念,設(shè)定了不確定密鑰長度的算法特性,使該算法在面臨差分攻擊時(shí)表現(xiàn)出更優(yōu)秀的抗性;同時(shí),量子密鑰的融入使該算法產(chǎn)生的密文圖像在像素值層面具有良好的隨機(jī)性和安全性,通過對加密圖像的隨機(jī)性統(tǒng)計(jì)測試,驗(yàn)證了算法的有效性。然而本文算法在多方面表現(xiàn)突出的同時(shí),普適性尚有待提升,這也是后續(xù)工作的主要方向。