夏雪飛,張 迪,呂嘉欣,吳佳楠
(1.長春大學 量子信息實驗室, 長春 130022; 2.吉林交通職業技術學院, 長春 130012)
隨著計算機、互聯網和多媒體等信息技術的迅猛發展,作為多媒體信息表達的主流方式之一的數字圖像信息在人們的日常生活中所占比重越來越大,所承載的敏感信息和潛在的安全隱患也越來越多,有效地保護數字圖像,對其進行有效的安全加密已成為信息安全的一個研究熱點[1-2]。
數字圖像加密方法主要有基于空間域和變換域的加密處理技術。基于空間域的算法操作簡單、加密速度快,但抗攻擊性較差、安全性較低[2];變換域算法較為復雜,卻普遍具有較高的魯棒性,但在進行變換操作時存在數據缺失,導致解密后的圖像與原始圖像存在差別[2-3]。一些結合空間域和變換域的數字水印算法使用的水印復雜度低,安全性相對較弱,為了提高保密性和穩健性,通常采用偽隨機序列來控制水印的嵌入位置[4-5]。
混沌系統由于兼具良好的隨機性、非周期性以及初值敏感性等密碼學特征[6]而被用于隨機序列的生成[7]。該類方法中關于混沌系統的選擇對圖像的最終加密效果有著極為重要的影響。多維混沌系統計算難度高,結構簡單的一維混沌系統雖然容易實現,但所生成的偽隨機序列存在分布不均的問題[7-9]。然而,即便是再理想的算法,所生成的也終歸是偽隨機序列,所以在理論上仍存在被破譯的可能,尤其在量子計算日益發展所帶來的威脅下,其安全性正面臨著極大的考驗[10-11]。
為了在進一步提高算法安全性的同時兼顧加密有效性,本文基于量子密鑰序列優越的隨機性,提出了一種基于量子密鑰的RGB彩色圖像的三層加密算法。采用基于量子密鑰分發(QKD)技術制備的,在理論上被證明為絕對安全且具有真隨機性的量子密鑰作為圖像加密密鑰的數據源,提高加密安全性。在此基礎上,算法融合了圖像空間域和變換域理念,采用了不確定密鑰使用長度的算法特性,對圖像進行了三重加密。第一重加密方法是根據量子密鑰對明文圖像進行2次大小不同的分塊處理,首先利用量子密鑰對較大分塊的明文圖像進行旋轉,然后根據量子密鑰對經過前述操作的圖像進行較小分塊并進行行列循環加密;第二重加密方法是采用不定長密鑰對像素值的位置與顏色通道加密;第三重加密方法是對圖像進行一階二維離散小波變換,然后將得到的低頻系數與量子密鑰進行異或加密,最后通過逆小波變換得到密文圖像。量子密鑰的融入和不定長密鑰的設計理念使該算法產生的密文圖像在像素值層面具有良好的隨機性和安全性。
基于量子力學而衍生的QKD技術主要目標是通過利用物理學定律來實現信息理論上的安全。根據海森堡不確定原理和量子不可復制定理,在理論上實現了通信密鑰的絕對安全。本文算法采用量子密鑰作為圖像加密過程中需要的隨機序列。量子密鑰的制備主要基于Bennett等[12]提出的BB84協議原理,通過QKD機制生成具有真隨機性的量子安全密鑰。關鍵過程如下:
設定發送方為Alice,接收方為Bob。
步驟1Alice在單光子的偏振態上隨機編碼比特發送給Bob;
步驟2接收方Bob隨機選取測量基(+基或×基)使用探測器測量Alice發送過來的光子偏振態;
步驟3雙方進行基矢比對,分別保留具有相同測量基的偏振態數據;
步驟4將得到的偏振態數據轉換成相應的密鑰比特數據;
步驟5Alice和Bob對密鑰比特進行后處理操作,最終生成安全密鑰;
步驟6將量子密鑰轉換成本文算法所需的具有真隨機性的量子密鑰比特流QStream。
將量子密鑰流QStream劃分為3個量子密鑰組:QKey1、QKey2和QKey3。設明文圖像I的尺寸為M×N×L。其中M、N代表圖像的寬、高,L代表顏色通道數。
1.2.1QKey1的邏輯結構
量子密鑰組QKey1用于本文算法的第一重加密,分為QKey1.1、QKey1.2和QKey1.3三個部分。
QKey1.1用于確定QKey1.2和QKey1.3的長度,邏輯結構如圖1所示。

圖1 QKey1.1的邏輯結構示意圖
圖1中A=1,2,…,2n1;B=1,2,…,2n1,A和B由n1位二進制序列轉換成十進制數并加1得到。其中,
n1=2?log2?log2min(M,N)」」
(1)
QKey1.2用于第一重加密的第一步加密過程,邏輯結構如圖2所示。

圖2 QKey1.2的邏輯結構示意圖
圖2中,Angle(i,j,k)代表圖像k通道中第i行第j個分塊所對應的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步過程,邏輯結構如圖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個分塊所對應的Dir1、Dir2和STEP值。其中:

(3)

(4)

圖3 QKey1.3的邏輯結構示意圖
1.2.2QKey2的邏輯結構
量子密鑰組QKey2用于本文算法的第二重加密,其邏輯結構如圖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個分塊所對應的ban,col,O和P值;i=1,2,…,M;j=1,2,…,N。

圖4 QKey2的邏輯結構示意圖
1.2.3QKey3的邏輯結構
量子密鑰組QKey3用于本文算法的第三重加密,其邏輯結構如圖5所示。

圖5 QKey3的邏輯結構示意圖
圖5中n5為明文圖像I的位深,n6,n7的取值如式(5)(6)所示。

(5)

(6)
本文算法對尺寸為M×N×L的明文圖像I的加密算法結構如圖6所示。

圖6 加密算法結構框圖
為了提高加密效率,采用對明文圖像I劃分區塊分塊加密的策略。
步驟1預處理。根據QKey1.1中A值和B值確定Imax塊與Imin塊的尺寸,其中Imax=max(A,B),Imin=min(A,B);
步驟2Imax塊塊內加密。把明文圖像I按Imax分塊后,將每一塊都進行如式(7)的轉換:

Angle(i,j,k)·90°)
(7)

步驟3Imin塊塊間加密。把圖像I′按Imin分塊后,如果Dir1(i,j,k)=0,將I′第i行的每一塊都進行如式(8)(9)的轉換:
(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列的每一塊都進行如式(10)(11)的轉換:
(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設為col(i,j,k)值;
③ 判斷col(i,j,k)與ban(i,j,k):
如果col(i,j,k)= ban(i,j,k),則col(i,j,k)從當前在 QKey2的位置開始,以2 bit為窗口向后滑動1 bit,重復②③直至col(i,j,k)≠ban(i,j,k);
如果col(i,j,k)≠ban(i,j,k),則結束該過程,進行算法中的下一步。
由上述過程可看出,在不知道QKey2具體內容的情況下,無法知道加密圖像所需要的總密鑰量。因此,本文算法具有不定長量子密鑰的特性。
對圖像進行Haar小波基函數的一級二維離散小波(DWT)變換后可得到圖像的4個頻帶:LH、HL、HH、LL。LH、HL、HH分別含有水平、垂直、對角方向的高頻邊緣信息,LL則留存了原圖像的概貌和空間特性,將低頻系數矩陣置亂加密可有效提高安全性[13]。本算法選擇對低頻分量進行加密處理,具體加密操作如下:

步驟2對低頻系數LL做如式(12)的轉換:
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( )作用是進行按位異或;fix( )作用是截取整數;i=1,2,3,…,n6;
步驟3通過逆離散小波變換重構LL′,LH,HL,HH獲得密文圖像。
解密過程為加密過程的逆操作,方法如下:
步驟1先將變換域低頻系數值與QKey3進行異或,恢復變換域低頻系數值;
步驟2然后根據QKey2恢復像素點的位置;
步驟3最后對像素塊加密進行恢復;
步驟4獲得解密圖像J,且J=I。
如圖7所示,QKD系統通過量子信道產生密鑰并存入密鑰池,通信雙方(Alice與Bob)得到相同的安全密鑰;經典通信系統從密鑰池中讀取密鑰,發送給加密計算程序制備量子密鑰流Qstream。密文圖像通過經典信道從加密端傳輸到解密端,雙方因具有相同的量子密鑰,基于本文算法能夠實現圖像的加解密計算。整個過程采用量子密鑰分發技術,確保密鑰的安全,即使密文被截獲,在無法得到密鑰的前提下也無法被解密。

圖7 基于QKD的加解密過程框圖
實驗在Matlab R2018b的環境下進行,使用的明文圖像分別是Lena、Baboon和Pepper,尺寸均為512×512×3,位深為8的RGB彩色圖像。結合本文算法使用量子密鑰對3幅圖像分別進行加密處理,如圖8所示。其中(a)(b)(c)為明文圖像,(d)(e)(f)為密文圖像。

圖8 彩色明文圖像與密文圖像
以Baboon為例,給出了本文算法的加密過程性結果。如圖9所示,在每一次加密處理后,RGB的顏色都更加平均,逐級增加了加密深度。

圖9 Baboon的加密過程圖像
直方圖能夠反映圖像像素值的分布情況,理想密文圖像的直方圖應呈均勻分布。Baboon明文圖像和密文圖像的直方圖如圖10所示。
從圖10可以看出,Baboon明文圖像RGB 3個顏色通道的直方圖(a)(b)(c)數據分布不均,有多個明顯的波峰和波谷;但密文圖像3個顏色通道的直方圖(d)(e)(f)分布均衡,沒有明顯的波動。

圖10 Baboon明文圖像和密文圖像的直方圖
用本文算法對Lena圖分別進行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。算法使用的密鑰量不確定性明顯,可有效抵御窮舉攻擊。
為了評判本文算法的加密有效性,將最終的密文圖像轉換為二進制序列,采用NIST[14](national institute of standards and technology)隨機性能檢測方法進行評判與分析,同時引入文獻[15]作為對比參照,計算結果如表1所示。可以看到,除近似熵、快速小波變換及頻率3項中的部分值低于文獻[15]外,其他指標均高于文獻[15]。可見,量子密鑰的融入使該算法產生的密文圖像在像素值層面具有良好的隨機性,間接提高了算法的安全性。

表1 密文圖像的NIST統計計算結果
差分攻擊即利用所提出的加密算法加密對原始圖像作微小改變的新圖像,觀察對比原密圖與新密圖之間的差別,從而得出新舊密圖之間的關系[16-17]。通常采用歸一化像素值平均改變強度UACI(unified average changing intensity)和像素數改變率NPCR(number of pixels change rate) 來衡量加密算法對明文的敏感性,敏感性越高,算法抗差分攻擊的能力越強[16]。相關計算式為:
(13)
式中:相同像素點坐標(i,j)的原始密文圖像與新密文像素值一致時D(i,j)=0,否則D(i,j)=1。
(14)
實驗中,將原圖像的一個像素值進行改動后得到新明文圖像,分別用本文算法進行加密處理,得到2個密文圖像:即原來的密文圖像和像素值調整后得到的新圖像的密文圖像。采用式(13)和(14)計算得出NPCR和UACI值,結合文獻[15],得到表2。

表2 NPCR和UCAI值
由表2可以看出,加密后密文圖像各RGB通道的NPCR值均在99%以上,UACI值均在33%以上。該結果表明:即使對原始圖像進行細微的改動處理,通過本算法進行加密后,得到的密文圖像也會有十分明顯的差異,從而證明了本文算法對于差分攻擊有較強的抗性。
提出了一種基于量子密鑰的RGB彩色圖像的三層加密算法。算法融合了圖像空間域和變換域理念,設定了不確定密鑰長度的算法特性,使該算法在面臨差分攻擊時表現出更優秀的抗性;同時,量子密鑰的融入使該算法產生的密文圖像在像素值層面具有良好的隨機性和安全性,通過對加密圖像的隨機性統計測試,驗證了算法的有效性。然而本文算法在多方面表現突出的同時,普適性尚有待提升,這也是后續工作的主要方向。