?

基于混沌系統和雙向擴散的圖像加密算法

2022-01-09 05:19李國東
計算機技術與發展 2021年12期
關鍵詞:明文密文加密算法

費 敏,李國東

(新疆財經大學 統計與數據科學學院,新疆 烏魯木齊 830012)

0 引 言

目前,混沌研究逐漸取得一些成果,研究人員開始把混沌的研究成果應用到圖像研究與應用領域,利用混沌解決一些問題,例如信息安全與圖像識別方面,應用比較多的是圖像加密領域[1-9]。文獻[10]提出的加密方案為后來的很多學者設計加密方案提供了思路,所給出的加密方案解決了部分加密方案所使用到的混沌系統結構單一等問題,并且加密方案依據明文圖像信息決定所篩選的像素點個數,利用進行預處理后的偽隨機序列對篩選出的明文像素點做運算,從而生成第二級密鑰,將其代入分段線性混沌映射按照給出的具體加密方案完成圖像加密,通過仿真實驗證明加密方案各項安全性指標均非常接近理想值,并且加密效果優良[10]。文獻[11]為了提升加密效率,對文獻[10]給出的加密方案進行改進,具體改進方法是對彩色圖像進行加密,首先將彩色圖像轉化為R、G、B灰度圖像,借助Henon映射和二維Logistic映射生成偽隨機序列,并且對得到的偽隨機序列進行預處理,利用預處理后的偽隨機序列從明文圖像中篩選出一部分像素點,通過分析文獻[10]中篩選出的像素點與混沌映射產生的偽隨機序列之間的計算規則發現,原有的依次做加法運算再做取模運算的計算規則的計算時間非常長導致整個加密方案加密效率不高,因此對原有計算規則進行改進,運用改進后的篩選出的像素點與混沌映射產生的偽隨機序列之間的運算規則得到偽隨機序列,將其作為第二級密鑰,代入超Lorenz混沌系統產生混沌序列,按照“正向擴散-置亂-后向擴散”的順序完成對彩色圖像的加密。通過實驗仿真發現運用改進后的方法能夠大大節約加密的時間,一定程度上能夠提升加密效率,并且加密方案與明文緊密相關聯,解決了部分加密方案無法抵御明文攻擊的問題[11]。文獻[12]采用隨機分塊、塊內塊間同步置亂擴散及環形擴散等操作,通過實驗仿真發現所設計的加密方案能夠大大提高圖像加密效率[12]?;谏鲜黾用芊桨?,設計一種“擴散-置亂-擴散”結構的圖像加密算法。

1 分段線性混沌映射

分段線性混沌映射表達式為:

(1)

其中,p表示分段線性混沌映射的參數,0

2 算法設計

設P表示明文圖像,大小為M×N。密鑰用K表示,具體為K={x0,p,y0,q,r1,r2,r3,r4},其中x0與p和y0與q表示兩個分段線性混沌映射的初始值與參數,r1,r2,r3和r4表示4個8位的隨機整數,取值區間為[0,255]。具體加密流程如圖1所示。

圖1 加密算法流程

2.1 混沌密碼發生器

給出的式(2)~式(5)稱為混沌密碼發生器,借助分段線性混沌映射所生成的偽隨機序列,并且利用式(2)~式(5)給出的具體運算規則進行運算能夠得到四個跟明文圖像大小完全一致即無任何差異的隨機矩陣,將這四個隨機矩陣記為X,Y,R,W,四個矩陣大小全部是M×N,具體的運算規則由式(2)~式(5)展示[13]。

Step1:將x0和p,y0和q分別作為分段線性混沌系統也就是表達式(1)的初始值以及參數,為了避免暫態效應,舍去迭代分段線性混沌映射r1+r2次,再繼續迭代分段線性混沌映射M×N次,生成長度為M×N的狀態變量序列,記為{xi},i=1,2,…,MN,{yi},i=1,2,…,MN。

Step2:由向量{xi}和{yi},按式(2)~式(5)得到矩陣X,Y,R和W。

(2)

(3)

(4)

(5)

其中,floor(t)表示返回小于或者等于數t的最大整數,u=1,2,…,M,v=1,2,…,N。利用生成的X矩陣完成前向擴散操作,Y矩陣完成后向擴散操作,R和W矩陣完成置亂操作。

2.2 前向擴散算法

Step1:借助混沌密碼發生器得到的X矩陣以及r3,r4,根據式(6)和式(7)給出的具體計算規則對明文圖像第一行的所有像素值進行變換,即將P(1,j)轉化為A(1,j)。

A(1,1)=mod(P(1,1)+X(1,1)+r3+r4,256)

(6)

A(1,j)=mod(P(1,j)+X(1,j)+A(1,j-1),256),j=2,3,…,N

(7)

Step2:借助混沌密碼發生器得到的X矩陣,根據式(8)給出的具體計算規則將明文圖像第一列的像素值進行變換,即將P(i,1)轉化為A(i,1)。

A(i,1)=mod(P(i,1)+X(i,1)+A(i-1,1),256),i=2,3,…,M

(8)

Step3:借助混沌密碼發生器得到的X矩陣,根據式(9)給出的具體運算規則對明文圖像除了第一行以及第一列剩余的所有像素值進行變換,即將P(i,j)轉化為A(i,j)。

A(i,j)=mod(P(i,j)+A(i-1,j)+A(i,j-1)+

X(i,j),256),i=2,3,…,M,j=2,3,…,N

(9)

經過上述前向擴散操作后,得到初始密文圖像,將其記為矩陣A。

2.3 明文關聯的置亂算法

Step1:計算A(i,j)所在行和列的全部元素(不含A(i,j))的和,記為rowi,coli。

rowi=sum(A(i,1 toN))-A(i,j)

(10)

coli=sum(A(1 toM,j))-A(i,j)

(11)

Step2:利用式(12)和式(13)計算坐標(m,n)的值,即:

m=rowi+R(i,j)modM

(12)

n=coli+W(i,j)modN

(13)

Step3:如果m=i或n=j,則A(i,j)與A(m,n)的位置保持不變,否則A(i,j)與A(m,n)互換位置,同時根據A(m,n)的低3位的值,將A(i,j)進行循環移位,即:

A(i,j)=A(i,j)<<<(A(m,n)&0×7)

(14)

其中,“x<<

Step4:按Step1~Step3的方法,先置亂矩陣A的第M行,然后再置亂矩陣A的第N列,接著按從左向右再從上而下的掃描順序依次置亂矩陣A的元素A(1 toM-1,1 toN-1),最后置亂矩陣A的元素A(M,N)。

完成以上具體置亂步驟后,得到置亂后的中間密文圖像,將其記為矩陣B。

2.4 后向擴散算法

Step1:借助混沌密碼發生器生成的Y矩陣,運用式(15)以及式(16)給出的具體運算規則對置亂得到的中間密文圖像的第M行的所有像素值進行變換,即將B(M,j)轉化為C(M,j)。

C(M,N)=mod((B(M,N)+Y(M,N)+r1+

r2),256)

(15)

C(M,j)=mod((B(M,j)+Y(M,j)+

C(M,j+1)),256),

j=N-1,N-2,…,1

(16)

Step2:借助混沌密碼發生器生成的Y矩陣,運用式(17)給出的具體運算規則對置亂得到的中間密文圖像的第N列的所有像素值進行變換,即將B(i,N)轉化為C(i,N)。

C(i,N)=mod((B(i,N)+Y(i,N)+

C(i+1,N)),256),

i=M-1,M-2,…,1

(17)

Step3:借助混沌密碼發生器生成的Y矩陣,運用式(18)給出的具體運算規則對置亂得到的中間密文圖像除去第M行以及第N列的剩余像素值進行變換,即將B(i,j)轉化為C(i,j)。

C(i,j)=mod((B(i,j)+C(i+1,j)+C(i,j+1)+

Y(i,j)),256),i=M-1,…,1,

j=N-1,…,1

(18)

經過上述后向擴散操作后得到矩陣C,將其記為最終密文圖像。

Step4:倘若要對密文圖像進行解密得到明文圖像,就需要完成上述加密過程的逆過程[14]。

3 實驗仿真

實驗仿真在Matlab R2018a的環境下進行,選擇大小為256×256的Lena圖像進行加密仿真實驗,其中密鑰的具體初始值為{x0=0.789 6,p=0.548 7,y0=0.353 5,q=0.667 7,r1=69,r2=138,r3=91,r4=105}。解密還原得到的明文圖像及密文圖像如圖2所示。

(a)還原后的Lena圖像 (b)Lena密文圖像圖2 加密與解密實驗結果

4 安全性分析

4.1 密鑰空間

好的加密算法應該具備密鑰空間大的特性[15],加密算法的初始密鑰有8個,分別是:x0,p,y0,q,r1,r2,r3,r4。其中,x0,y0∈(0,1)是浮點數,精度達到了10-14,p,q∈(0,0.5),也是浮點數,其精度也達到了10-14,r1~r4為[0,255]中的整數,步進為1,因此,通過計算能夠得到密鑰空間的具體數值約等于1.073 7×1065,說明設計的加密方案具備抵御窮舉攻擊的能力。

4.2 直方圖分析

衡量一個加密方案是否具備抵御基于統計特性的攻擊的能力必須要考慮明文圖像以及經過加密方案加密得到的密文圖像的直方圖[16]。直方圖能夠刻畫出某個圖像里各灰度值的分布狀態。以大小為256×256像素的Lena、girl、全黑、全白圖像為例,密文圖像的直方圖χ2檢驗結果見表1。

表1 χ2檢驗結果

圖3 Lena圖像直方圖及其密文圖像直方圖

4.3 相鄰像素相關性分析

相關系數計算公式如下:

(19)

從Lena明文以及密文圖像中隨機篩選出2 000對水平、垂直以及對角線方向上的相鄰像素點,對篩選出的相鄰像素點之間的相關系數進行計算,并且對篩選出的相鄰像素點之間的關聯情況圖繪制出來,得到的具體結果由表2及圖4展示。

圖4 Lena明文和密文圖像在各方向的相鄰像素分布 表2 明/密文圖像相鄰像素相關性系數

圖像水平垂直正對角反對角明文0.978 30.946 00.922 40.942 6密文0.002 40.014 60.022 60.003 6

根據表2中的具體數值,能夠看出Lena明文圖像在水平、垂直、正對角線以及反對角線這四個方向上相互鄰近像素點的相關系數全部在1附近,但是經過所設計的加密方案加密得到的Lena密文圖像在水平、垂直、正對角線以及反對角線這四個方向上相互鄰近像素點的相關系數全部在0附近,也就是說經過所設計的加密方案加密得到的Lena密文圖像相互鄰近的像素點不存在明顯的相關性。依據圖4所展示的結果,能夠看出明文圖像在水平、垂直以及對角線方向上的相鄰像素點對全部分布在直線y=x周圍,但是經過加密方案加密獲得的Lena密文圖像在這三個方向上的相鄰像素點對全部呈現均勻分布的狀態,因此,通過分析以上實驗結果能夠反映出所設計的加密方案具備有效隱藏Lena明文圖像像素統計信息的能力。

4.4 信息熵

信息熵反映的是圖像中灰度分布情況[17]。pi表示圖像灰度i出現的概率,具體的計算公式為:

(20)

由表3可知,明文圖像的冗余度在5%以上,密文圖像的冗余度小于0.05%,密文的信息熵接近于理想值8,說明所設計的加密方案可以對抗基于信息熵的分析。

表3 信息熵、相對熵和冗余度

4.5 密鑰敏感性分析

當對密鑰做極其不明顯的改變時,分析運用所設計的加密方案加密完全一致的明文圖像生成的兩個密文圖像間所存在的差異情況。對Lena圖像運用所設計的加密以及解密方案進行加解密,對原始密鑰x0改變10-16,借助改變前后的密鑰以及所設計的加密方案加密相同的明文圖像生成的兩幅密文圖像結果如圖5所示。根據圖5得到的兩幅密文圖像能夠看出,對初始密鑰的值做極其不明顯的改變,對完全一致的明文圖像加密生成的兩個密文圖像的差圖像表現為噪聲樣式,也就是說所設計的加密方案具備強的密鑰敏感性。并且通過得到的實驗結果能夠發現當密鑰發生僅10-16極其不明顯的變化時,也不能夠獲得正確解密圖像。所以,從這一點也能夠說明所設計的加密方案具備強的密鑰敏感性。

圖5 Lena圖像密鑰敏感性實驗結果

4.6 差分攻擊分析

衡量抵御差分攻擊的能力的重要指標是NPCR(像素變化率)、UACI(歸一化像素平均值)、BACI,計算方式如下:

100%

(21)

(22)

(23)

P1指密文圖像,P2指明文圖像中某一像素值產生極其不明顯的變動時所對應的密文圖像。隨機篩選明文圖像中的一點坐標,將其進行微小變動,重復100次實驗計算兩密文間的NPCR、UACI和BACI的平均值,結果列于表4中。由表4可知,計算結果極其接近于理論值,說明加密算法具有很強的抗差分攻擊能力。

表4 明文敏感性分析結果

5 結束語

提出一種基于分段線性混沌系統的正向擴散以及逆向擴散相結合的圖像加密方案,并且通過實驗仿真分析所設計的加密算法各項安全性指標是否達到理想值即安全性能是否良好。采用“前向擴散-置亂-后向擴散”的結構來加密圖像,對于所設計的加密算法而言,即使采用相同的密鑰,不同的明文圖像將對應不同的等價密鑰和加密算法,從而得到完全不同的密文圖像。依據實驗仿真得到的各項安全性能指標的具體結果,能夠看出所設計的加密算法具備足夠大的密鑰空間,擁有非常良好的密鑰敏感性,并且抗統計和差分攻擊能力強,是一種非常優秀的圖像加密算法。

猜你喜歡
明文密文加密算法
一種支持動態更新的可排名密文搜索方案
加密文檔排序中保序加密算法的最優化選取
一種新的密文策略的屬性基加密方案研究
一種抗攻擊的網絡加密算法研究
奇怪的處罰
教育云平臺的敏感信息保護技術研究
條件型非對稱跨加密系統的代理重加密方案
基于Jave的AES加密算法的實現
奇怪的處罰
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合