淺析一種基于耦合映像格子的分組圖像加密算法

基于耦合映像格子的分組圖像加解密

復合密碼結(jié)構(gòu)的安全性能強度優(yōu)于單獨采用置亂和置換操作的簡單密碼結(jié)構(gòu),因為復合密碼結(jié)構(gòu)采用循環(huán)迭代結(jié)構(gòu)交替使用置亂和置換等基本操作,使得得到的密文具有更好的安全性。

根據(jù)耦合映像格子,可設計一種基于分組密碼和循環(huán)迭代結(jié)構(gòu)的數(shù)字圖像加密算法。采用Kn作為子密鑰,L和T分別表示TCML的空間和時間參數(shù),Ln和Rn分別表示圖像的左半部分和右半部分。

步驟1:對原始圖像(設其大小為M×N)進行初始置換(IP),得到圖像P。本文采用量化后的Logistic混沌序列與原始圖像異或來實現(xiàn)初始置換。

步驟2:對置換后的圖像P進行分割,將圖像等分為左右兩部分,記為L0和R0。

步驟3:以K1作為子密鑰,令L=M,T=N/2,產(chǎn)生M×(N/2)的TCML矩陣V。

步驟4:以矩陣V構(gòu)造S盒[12-13],選定V中的混沌序列{a11,a12,…,a1(N/2),a21,…,aM(N/2)},逐行(逐列)對行(列)內(nèi)元素做升(降)序排列,得到矩陣V1;確定矩陣V的每一個元素在V1中的位置,形成置換矩陣S。

步驟5:將R0通過S盒進行置換,置換的結(jié)果與L0進行異或運算,得到的結(jié)果作為下一輪迭代計算的L1,下一輪迭代計算的R1直接取L0。

步驟6:采用K2,K3,…,Kn作為子密鑰,重復步驟3至步驟5。步驟7合并最終的迭代計算結(jié)果Ln與Rn得到圖像P′,并對P′進行與步驟1相反的逆置換(IP-1),得到最終圖像Q即為密文圖像。

以上算法中初始置換和逆置換的作用是對原始圖像的灰度值進行擴散,用來抵抗已知明文攻擊。由于加密過程采用了基于耦合映像格子的分組密碼和循環(huán)迭代結(jié)構(gòu),使得設計的加密過程能夠有效抵御差分攻擊。

解密過程與加密過程結(jié)構(gòu)一致,只需要將子密鑰序列倒序輸入即可得到解密圖像。具體的解密流程如圖所示。

相關性分析

由于圖像相鄰像素的灰度值具有很強的相關性,因此原始圖像相鄰兩個像素之間的相關性較高。密文圖像由于其冗余度分散到各個像素點中,所以相鄰兩個像素之間的相關性將會被大大降低。原始圖像的相關系數(shù)遠遠大于密文圖像的相關系數(shù),這表明新算法具有良好的擴散性。

將分組密碼中的循環(huán)迭代結(jié)構(gòu)應用于圖像加密算法的設計,設計出一種基于耦合映像格子的分組圖像加密算法。由于在每一輪加密中采用了不同的耦合映像格子老構(gòu)造S盒,保證了設計的算法具有更好的安全性能;新算法的解密過程與和加密過程都具有相同的迭代結(jié)構(gòu),因此加密、解密過程具有良好的對稱性;這種基于耦合映像格子的分組圖像加密算法法不僅具有密鑰空間大、初值敏感性強等較好的安全性能,而且對受損密文圖像也具有較好的恢復效果;同時,新算法對加密圖像的規(guī)格大小沒有相關限制條件,使得算法具有更好的實用性。