圖像加密并行算法——Square加密算法
針對傳統(tǒng)的圖像加密算法在效率和安全性上的不足,我們提出了一種新的圖像并行加密算法——Square加密算法,它采用Square像素排列操作和改進(jìn)的混合(Mixing)操作。那么接下來,我就給大加簡單的介紹一下這種加密算法。
一、Squaree加密算法
圖像加密并行算法的重點(diǎn)在于前2步,即分組內(nèi)加密和像素排列。為了簡化加密算法的沒計(jì),可對加密算法設(shè)計(jì)作進(jìn)一步的規(guī)定:
(1)圖像的每一行即為一個(gè)分組;
(2)各PE負(fù)責(zé)加密的分組數(shù)(圖像行數(shù))應(yīng)盡量接近;
(3)第(1)步采用的加密操作應(yīng)實(shí)現(xiàn)分組范圍內(nèi)的完全擴(kuò)散效應(yīng)。
下面分別介紹Square圖像加密算法的分組內(nèi)加密方法和像素排列方法。
1、分組內(nèi)加密方法
與MASK加密算法相同,分組內(nèi)加密方法由3個(gè)操作構(gòu)成,即Mixing、密鑰異或及S盒替換。
(1)Mixing操作表示如下:
![]()
其中,i=1,2,…,N,N為圖像的列數(shù)。注意,式(1)中的加法和連加均為異或運(yùn)算。
(2)密鑰異或操作即將輪密鑰與明文進(jìn)行異或。輪密鑰由Logistic混沌映射產(chǎn)生。
(3)S盒替換操作是3個(gè)操作中唯一的非線性運(yùn)算,本文采用AES加密算法中的S盒。
2、像素捧列方法
在設(shè)計(jì)圖像文件加密并行算法中,像素排列方法是算法設(shè)計(jì)的關(guān)鍵。本文采用的排列定義如下:
![]()
其中,i,j表示圖像的行號和列號,數(shù)值從0開始。圖2給出了一個(gè)按式(2)對圖像像素進(jìn)行排列的示例??梢钥闯觯剑?)的實(shí)質(zhì)是對于第i(i=0,1,…,M-1)列的像素循環(huán)上移f個(gè)位置。
這種操作很像魔方的轉(zhuǎn)動(dòng),又因?yàn)閳D像是平面的,所以稱為Square排列操作。

當(dāng)分組內(nèi)加密方法可實(shí)現(xiàn)分組內(nèi)的完全擴(kuò)散效應(yīng)時(shí),易證Square加密算法滿足圖像加密并行算法的4個(gè)要求。
二、 Mixing操作的改進(jìn)
理論上2輪Sqvare加密即可實(shí)現(xiàn)圖像的完全擴(kuò)散。以64x64的Lena灰度圖像為對象,作4 096次實(shí)驗(yàn)。每次實(shí)驗(yàn)只改變一個(gè)像素的最低位,并計(jì)算密文比特的改變率。這4096個(gè)改變率的最大值為0.4982,最小值為0.474 2,平均值為0.4861??梢姡琒quare加密算法并沒有達(dá)到理想的改變率。
經(jīng)分析發(fā)現(xiàn),這是由于Mixing操作的缺陷造成的。根據(jù)式(1),經(jīng)Mixing操作后,各元素等于同一組中其他所有元素異或運(yùn)算的結(jié)果。因此,當(dāng)明文改變一比特時(shí),密文分組中有且僅有一個(gè)元素保持不變。由此可推知,分組內(nèi)加密方法不能實(shí)現(xiàn)分組內(nèi)完全擴(kuò)散的要求。
為滿足分組內(nèi)完全擴(kuò)散的要求,本文提出了一個(gè)新的Mixing操作,定義如下:
![]()
式(3)與式(1)在表現(xiàn)形式上很相似,唯一不同的是式(1)中的加法為異或運(yùn)算,而式(3)則采用模256加法??梢宰C明,當(dāng)研均為0~255之間的整數(shù),且分組個(gè)數(shù)N為偶數(shù)時(shí)。Mixing操作是可逆的。
同時(shí),由式(3)可以推知,改進(jìn)的MAS加密可實(shí)現(xiàn)分組內(nèi)的完全擴(kuò)敝效應(yīng)。將這種Square排列與改進(jìn)的MAS分組加密操作的聯(lián)合稱為“Squaren圖像并行加密算法。經(jīng)2輪Square加密算法加密后后密文比特改變率的最大值為0.5114,最小值為0.4922,平均值為0.5018。
三、實(shí)驗(yàn)結(jié)果分析
實(shí)驗(yàn)的目的是檢測Square加密算法的加密速度和安全性能,如直方圖、相鄰像素相關(guān)性、密鑰敏感性以及算法的完全擴(kuò)散效應(yīng)。
實(shí)驗(yàn)程序采用Matlab語言編寫,采用1.5GHz的Intel_Celeron PC機(jī)模擬并行運(yùn)算平臺。圖像明文是256x256的灰度圖像Lena。用于產(chǎn)生輪密鑰的混沌系統(tǒng)初值和參數(shù)分別為xo=0.123 456 78,μ=1.999 9。加密輪數(shù)為9輪。
(1)加密速度
表1為9輪MASK加密算法與Square加密算法加密速度的對比。

從表1可以看出Square加密算法的速度明顯快于MASK加密算法。其主要原因在于MASK加密算法算法中的K變換需要進(jìn)行多次乘法運(yùn)算,比較耗時(shí);而Square排列只需進(jìn)行數(shù)據(jù)讀寫操作,其運(yùn)算速度非???。
(2)直方圖
圖3顯示了加密前后圖像的直方圖??梢钥闯黾用芎髨D像的直方圖非常均勻,從而提高了圖像的安全性。

(3)相鄰像素的相關(guān)系數(shù)
圖像的一個(gè)顯著特征是相鄰像素的桶關(guān)性很高,一個(gè)成功的圖像加密算法應(yīng)該去除這種相關(guān)性。分別從圖像的水平、豎直和對角方向隨機(jī)地選取1000對像素,并對比它們加密前后的相關(guān)系數(shù),如表2所示。

(4)密鑰敏感性
本文將系統(tǒng)密鑰,即混沌參數(shù)xo=0.123 45678改為0.123 456 79,保持μ不變,或?qū)ⅵ?1.999 9改為1.9998,保持xo不變,檢查各輪加密后密文比特改變率。表3列出了實(shí)驗(yàn)結(jié)果??梢钥闯觯琒quare加密算法經(jīng)2輪加密后,密文比特改變率穩(wěn)定在50%左右。

(5)完全擴(kuò)散效應(yīng)
將圖像最后一個(gè)像素的最低位由“1”變?yōu)椤?”,其他所有像素保持不變,檢查各輪加密后密文比特改變率。表4列出了實(shí)驗(yàn)結(jié)果。從表4可以看出,Square加密算法經(jīng)2輪加密后,密文比特的改變率穩(wěn)定在50%左右,而MASK加密算法達(dá)到同樣的目標(biāo)需要至少3輪加密。

實(shí)驗(yàn)結(jié)果表明Square加密算法的安全特性和加密速度都超過了MASK加密算法,具有安全、快速和簡潔等優(yōu)點(diǎn),可在實(shí)際的并行計(jì)算平臺上使用。
小知識之并行算法
并行算法就是用多臺處理機(jī)_聯(lián)合求解問題的方法和步驟,其執(zhí)行過程是將給定的問題首先分解成若干個(gè)盡量相互獨(dú)立的子問 題,然后使用多臺計(jì)算機(jī)同時(shí)求解它,從而最終求得原問題的解。










