楊宇光,王嘉偉
(北京工業大學 信息學部,北京 101124)
互聯網能提供文字、圖像、聲音、動畫等數據信息,互聯網上的數據很容易被竊取、篡改、復制和非法傳播.圖像在多媒體通信中有重要作用,且許多圖片涉及個人隱私或國家機密,因此圖像保護尤為重要.圖像具有數據量大、冗余多、相關性強的特點,傳統的加密算法不適合圖像加密.圖像加密是保持數據安全的有效手段,圖像加密能在幾乎無任何細節損失情況下將其還原.研究人員提出了許多基于新技術的圖像加密方法,如壓縮感知[1-5]、混沌系統[6-10]、元胞自動機[11-14]、脫氧核糖核酸編碼[15-17]等.為了提高圖像的抗攻擊能力,該文擬提出基于SHA-256和Arnold映射的量子Logistic映射圖像加密算法.
SHA-256是一種密碼散列函數,即一種哈希函數.SHA-256對初始值非常敏感,使不同圖像對應不同的哈希值,能增強圖像加密的隨機性.
Arnold映射是混沌置亂中使用較多的一種方法.Arnold映射通過改變元素位置實現圖像的置亂處理.
Arnold映射的原始公式為
其中:xn,yn為變換前像素的位置坐標;xn+1,yn+1為變換后像素的位置坐標.
將原始公式數字化后,得到如下映射
其中:a,b為參數;L為圖像的寬度.
Logistic映射[18]的定義式為
其中:μ∈(0,4),xn∈(0,1).當3.569 945 6<μ≤4時,Logistic映射處于混沌狀態.
將量子態引入混沌系統,形成量子Logistic映射[19],其定義式為
其中:β,r為控制參數.
基于SHA-256和Arnold映射,該文提出量子Logistic映射圖像加密算法,其結構如圖1所示.
圖像加密過程的具體步驟如下.
步驟1對給定M×N的圖像A,在其列坐標N/2處進行豎直切割,得到兩個圖像B和C,兩個圖像的大小均為M×N/2.令m=M,n=N/2.
步驟2用SHA-256求圖像B的哈希值.對第1,4,7,11,…,256位的哈希值求和得到參數c1,對第2,5,8,…,254位的哈希值求和得到參數c2,對剩下的哈希值求和得到參數c3.將c1,c2,c3作為xn,yn,zn的初始值代入式(4)得到xn+1,yn+1,zn+1,然后將xn+1,yn+1,zn+1作為Arnold映射中的a,b,N的初始值且對圖像C進行置亂處理.
步驟3圖像C置亂后,用SHA-256求其哈希值.首先對得到的256位哈希值的奇數位求和得到參數d1,其次對剩余的哈希值的奇數位求和得到參數d2,最后將剩下的哈希值相加得到參數d3.
步驟4將參數c1,c2,c3及參數d1,d2,d3代入下式
得到x0,y0,z0.
步驟5將x0,y0,z0作為初始值代入式(4),丟棄前500個值后得到混沌序列x,y,z.
步驟6將混沌序列x,y,z代入下式
得到混沌序列X,Y,Z.
步驟7使用餛飩系列X,Y分別對圖像B進行行、列混淆,得到圖像D.使用混沌系列Y,Z分別對圖像C進行行、列混淆得到圖像E.
步驟8將圖像D和圖像E合并,得到加密圖像F.
圖像解密過程的具體步驟如下.
步驟1在密文圖像F的列坐標N/2處進行豎直切割,獲得圖像D'和E'.
步驟2用公鑰對圖像E'進行逆置亂操作,得到量子Logistic映射的初始值.
步驟3將初始值代入量子Logistic映射,丟棄前500個值后得到混沌序列x,y,z.
步驟4將混沌序列x,y,z代入式(6)得到混沌序列X,Y,Z.
步驟5通過混沌序列X對圖像D'進行行混淆的逆操作,得到圖像B'.
步驟6通過混沌序列Y對圖像E'進行列混淆的逆操作,得到圖像C'.
步驟7對圖像B'和圖像C'進行合并,得到原始圖像A.
實驗硬件為:12th Gen Intel(R)Core(TM)i5-12400F 2.50 GHz,16 GB RAM.實驗軟件為:Windows 10,MATLAB R2018a.選用的圖像為經典灰度圖像.
使用該文提出的算法對測試圖集進行了一系列加解密實驗,其中Lena,Cameraman和Pirate的明文圖像、密文圖像及解密圖像如圖2所示.由圖2可知,密文圖像與明文圖像毫無關聯,解密圖像與明文圖像基本一致,表明該文算法是無損的.
直方圖描述圖像中每個像素出現的次數.一個加密性能好的算法,其直方圖是均勻分布的.由圖3可看出,加密后圖像的直方圖是均勻分布的,表明該文算法具有較強的抵抗統計攻擊的能力.
為了評價該文算法的置亂效果,將從水平、垂直和對角線3個方向對明文圖像和密文圖像進行相關性分析.相關系數的定義式為
其中:xi和為相鄰像素的灰度值.
從圖4,5可看出,Lena明文圖像水平方向、垂直方向及對角線方向的灰度值均集中分布,然而其加密后的密文圖像的灰度值則是均勻分布.
圖4 Lena明文圖像的平面相關性
圖5 Lena密文圖像的平面相關性
表1給出了10類圖像不同方向的相關系數.由表1可知:明文圖像在3個方向上相關系數均接近1,表明相鄰像素間的相關性很強;密文圖像的相關系數平均值的絕對值趨近于0,表明相鄰像素間幾乎無相關性.
表1 10類圖像不同方向的相關系數
表2給出了該文算法與其他文獻算法的密文圖像相關系數對比.由表2可知,該文算法抵抗統計攻擊的能力比其他文獻算法更強.
表2 5種算法密文圖像相關系數
3.4.1 密鑰空間
圖像加密算法為了能抵抗窮舉攻擊,其密鑰空間必須大于2100.該文算法密鑰由兩部分組成,一部分為256 bit的哈希值,另一部分為混沌映射的3個初始值,而計算機精度為10-15,所以該文密鑰空間為2362,遠大于2100.表3給出了5種算法的密鑰空間大小.由表3可知,相對于其他文獻的密鑰空間,該文算法的密鑰空間大小適中,能較好地抵抗暴力破解攻擊.
表3 5種算法的密鑰空間大小
3.4.2 密鑰敏感性
若密鑰的微小變化能導致密文圖像發生較大變化,則認為密鑰具有高敏感性.對初始值進行增加和減少10-15以及對迭代次數進行改變,均會導致加密后的圖像不能恢復成明文圖像.從圖6可看出,初始值的微小變化及迭代次數改變后均不能正確解密,表明該文算法具有較強的密鑰敏感性.
圖6 錯誤密鑰的Lena解密圖像
信息熵描述隨機性,圖像的隨機性越強,信息熵越大.信息熵的計算公式為
其中:p(mi)為灰度值mi出現的概率.密文圖像的信息熵越接近8,可視信息越少,算法的加密性能越強.
表4給出了5類圖像的明文圖像及密文圖像信息熵.由表4可知,該文算法密文圖像的信息熵平均值為7.997,非常接近8,表明該文算法加密性能較強.
表4 5類圖像的明文圖像及密文圖像的信息熵
從圖像加密的角度看,一個優秀的算法,若明文圖像出現較小的像素變化,密文圖像應該有很大的像素變化.像素變化率(the number of pixels change rate,簡稱NPCR)和統一平均變化強度(the unified average changing intensity,簡稱UACI)是評估算法抗差分攻擊的兩個參量.NPCR和UACI的計算公式分別為
其中:A1(i,j)和A1(i,j)分別表示圖像A1和A2在(i,j)處的灰度值;當A1(i,j)=A2(i,j)時,D(i,j)=0,當A1(i,j)≠A2(i,j)時,D(i,j)=1.
表5給出了7類圖像的NPCR和UACI.NPCR和UACI的期望值分別為99.61%和33.46%.從表5可看出,該文算法這兩個值均接近期望值.
表5 7類圖像的NPCR和UACI %
該文提出了基于SHA-256和Arnold映射的量子Logistic映射圖像加密算法.實驗結果表明:該文算法的解密圖像與明文圖像基本一致;該文算法具有較強的密鑰敏感性;相對于其他文獻算法,該文算法具有更強的抵抗統計攻擊的能力.