本發(fā)明涉及數(shù)字圖像加解密領域,尤其涉及一種基于m序列的圖像加解密方法。
背景技術:
網絡通信、大數(shù)據處理和計算機技術的飛速發(fā)展,為人們獲得有價值的信息提供了極大的便利。圖像信息因其具有較強的綜合性和直觀性,并且能夠形象地傳遞信息而日益受到人們的青睞,成為數(shù)字信息中應用最廣泛的一種信息表達形式,也正因此,數(shù)字圖像的安全問題已經成為人們關注的焦點問題[1]。
圖像加密主要有以下幾種方法:基于矩陣變換/像素置換的圖像加密算法、基于密鑰分割與秘密共享的圖像加密算法、基于現(xiàn)代密碼體制的圖像加密算法和基于混沌理論的圖像加密算法。
圖像加密技術目前的發(fā)展主要有以下幾方面:
(1)基于混沌理論的圖像加密技術:通過logistic(邏輯)、rossler(羅斯勒)映射等生成具有較高隨機性和長周期的密鑰序列,對圖像進行加密,隨著技術的不斷發(fā)展,正逐步由低維向高維混沌系統(tǒng)甚至超混沌系統(tǒng)的圖像加密算法方向發(fā)展[2]。
(2)基于密碼學的數(shù)字圖像加密算法:利用fibonacci(斐波納契)數(shù)列良好的均勻性,對標準des(dataencryptionstandard,數(shù)據加密標準)算法的初始置換表進行改進,用于圖像加密[3];基于橢圓曲線加密體制進行圖像加密的算法,具有一定的實用性[4]。
(3)基于新的變換方法的圖像置亂加密算法:易開祥等人提出基于混沌序列的圖像置亂算法,在離散余弦變換域內對圖像進行置亂加密[5];丁瑋等應用位操作、幻方、fass曲線(space-filling、self-avoiding、self-similar、simple,充滿空間、非自交、自相似、簡單的曲線)、gray(格雷)碼變換、生命游戲和三角函數(shù)變換給出了新穎的數(shù)字圖像置亂算法[6]。
(4)應用新的理論和工具研究圖像加密技術[7]:利用混沌系統(tǒng)產生二進制序列來設定神經網絡的權值和閾值,對每個像素進行加密運算;利用混沌映射的隨機性以及不可預測性,產生混沌序列矩陣對小波變換矩陣系數(shù)進行調整,再對系數(shù)進行置亂處理,然后利用信息隱藏技術對密鑰進行隱藏。
上述數(shù)字圖像加密技術目前面臨的主要挑戰(zhàn)為:圖像加密算法結構復雜性與抗攻擊性之間的彼此制約,難以實現(xiàn)加解密效率高、安全性能好、計算復雜度低的數(shù)字圖像加密系統(tǒng)。
技術實現(xiàn)要素:
本發(fā)明提供了一種基于m序列的圖像加解密方法,本發(fā)明避免了傳統(tǒng)加解密算法的復雜結構與低效率,提高了抗攻擊性,詳見下文描述:
一種基于m序列的圖像加解密方法,所述圖像加解密方法包括以下步驟;
通過序列的初始狀態(tài)與本原多項式構造出與各子帶大小相同的m序列作為密鑰序列;
采用基于比特平面的加密算法和基于不重要比特平面的加密算法按照分辨率漸進的順序對各子帶進行加密,實現(xiàn)對數(shù)字圖像的完全加密和保留輪廓信息的選擇性加密;
采用基于比特平面的解密算法和基于不重要比特平面的解密算法對加密后的圖像進行解密,通過小波逆變換重建原始圖像。
所述圖像加解密方法還包括:
采用daubechies9/7提升小波算法對圖像進行三級小波分解,得到一系列不同方向、不同尺度的子帶。
所述采用基于比特平面的加密算法和基于不重要比特平面的加密算法按照分辨率漸進的順序對各子帶進行加密,實現(xiàn)對數(shù)字圖像的完全加密和保留輪廓信息的選擇性加密的步驟具體為:
基于比特平面的加密算法在各子帶中,從最大比特平面開始,將密鑰序列與子帶圖像數(shù)據進行異或運算,實現(xiàn)對圖像的整體加密;
基于不重要比特平面的加密算法通過尋找小波分解后各子帶中最大的比特位為1的比特平面,按照比特平面由高到低的順序,進行異或運算來實現(xiàn)對圖像的部分加密。
所述采用基于比特平面的解密算法和基于不重要比特平面的解密算法對加密后的圖像進行解密,通過小波逆變換重建原始圖像的步驟具體為:
基于比特平面的解密算法從輸出碼流stream中讀取各系數(shù)的符號位;
基于不重要比特平面的解密算法按照分辨率漸進的順序對子帶進行解密:設置比特平面子帶閾值threshold,對子帶中數(shù)據進行掃描,從輸出碼流stream中讀取出與threshold比特位相同的小波系數(shù)及其符號位;
2種解密算法均按照比特平面由高到低的順序,依次將碼流stream與密鑰序列key進行異或運算,并將結果存放入數(shù)組data;將整型數(shù)組data反量化為浮點型數(shù)組coef;通過三級daubechies9/7提升小波逆變換,將分解后的圖像子帶重構出原始圖像。
本發(fā)明提供的技術方案的有益效果是:采用m序列作為密鑰序列,使得算法結構簡單,易于實現(xiàn);所提出的方法具有很強的適應性,可以用于處理灰度圖像的加解密問題。
附圖說明
圖1為一種基于m序列的圖像加解密方法的流程圖;
圖2為n級lfsr(linearfeedbackshiftregister,線性反饋移位寄存器)結構圖。
具體實施方式
為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚,下面對本發(fā)明實施方式作進一步地詳細描述。
實施例1
為了解決以上問題,需要設計出加解密效率高、安全性能好的數(shù)字圖像加密方法。研究表明:m序列[9]是目前應用最廣泛的偽隨機序列之一,具有長周期、良好的統(tǒng)計特性、易于用代數(shù)方法進行實現(xiàn)等優(yōu)點。本發(fā)明實施例提出了一種基于m序列的圖像加解密方法,參見圖1,詳見下文描述:
101:通過序列的初始狀態(tài)與本原多項式構造出與各子帶大小相同的m序列作為密鑰序列;
102:采用基于比特平面的加密算法和基于不重要比特平面的加密算法,按照分辨率漸進的順序對各子帶進行加密,實現(xiàn)對數(shù)字圖像的完全加密和保留輪廓信息的選擇性加密;
103:采用基于比特平面的解密算法和基于不重要比特平面的解密算法對加密后的圖像進行解密,通過小波逆變換重建原始圖像。
其中,在步驟101之前,該圖像加解密方法還包括:
采用daubechies9/7提升小波算法對圖像進行三級小波分解,得到一系列不同方向、不同尺度的子帶。
綜上所述,本發(fā)明實施例通過上述步驟101-步驟103避免了傳統(tǒng)加解密算法的復雜結構與低效率,可以應用于解決所有灰度圖像加解密問題。
實施例2
下面結合圖2、具體的計算公式對實施例1中的方案進行進一步地介紹,詳見下文描述:
201:采用daubechies9/7(多貝西,法國學者)提升小波算法對圖像進行三級小波分解,得到不同方向、不同尺度的子帶{ll1,lh1,hl1,hh1,lh2,hl2,hh2,lh3,hl3,hh3};
其中,ll1子帶為在水平和垂直方向上都經過低通濾波后得到的上級子圖在本級尺度上的平滑近似;lh1、lh2、lh3子帶分別為經過一級、二級、三級小波變換后垂直方向上的高頻分量;hl1、hl2、hl3子帶分別為經過一級、二級、三級小波變換后水平方向上的高頻分量;hh1、hh2、hh3子帶分別為經過一級、二級、三級小波變換后對角線方向上的高頻分量。
提升小波變換算法的基本思想是建立在雙正交小波和完全可恢復濾波器組的理論基礎上,在保持小波雙正交特性的條件下,通過提升過程,逐步構建出一個具有更加良好性質的新的小波,以滿足各種應用的需要。
提升格式主要由三部分組成:分裂(split)、預測(prediction)和更新(update)。對于圖像序列x(n),(n=0,1,2,…,n-1),daubechies9/7提升小波變換[8]的具體實現(xiàn)步驟如下:
分裂是將圖像序列x(n)分為兩個互不相交子集。通常采用lz(lazywavelet,懶小波,也稱之為基本小波)分割法,即按其序號奇偶性將圖像序列x(n)分為奇數(shù)序列x(2n+1)和偶數(shù)序列x(2n):
{x(2n),x(2n+1)}=spilt(x(n))
預測是在基于原始數(shù)據相關性的基礎上,用偶數(shù)序列去預測奇數(shù)序列,更新的基本思想是找出一個更好的子集數(shù)據,使之保持原數(shù)據集的一些尺度特性。具體地,
(1)第一次預測:y(2n+1)←x(2n+1)+α×[x(2n)+x(2n+2)]
(2)第一次更新:y(2n)←x(2n)+β×[y(2n-1)+y(2n+1)]
(3)第二次預測:y(2n+1)←y(2n+1)+γ×[y(2n)+y(2n+2)]
(4)第二次更新:y(2n)←y(2n)+δ×[y(2n-1)+y(2n+1)]
(5)系數(shù)縮放:y(2n+1)←-k×y(2n+1)y(2n)←(1/k)×y(2n)
其中,參數(shù)α,β,γ,δ,k的值分別為:
α=1.586134342,β=0.052980118,γ=0.882911075
δ=0.442506852,k=1.230174105
其中,x(2n+2)為圖像序列中偶數(shù)序列;y(2n)為奇數(shù)序列預測出的偶數(shù)序列;y(2n+1)為偶數(shù)序列預測出的奇數(shù)序列。
利用小波變換對數(shù)字圖像進行分解,首先對輸入序列按行進行處理,行數(shù)據經過水平濾波后進行抽取分解出沿水平方向上的低頻和高頻分量;接著對經過行處理后的數(shù)據按列進行垂直濾波和抽取。
經過一級分解,兩次抽取,上一級圖像序列分解為四個尺寸分別為原來的四分之一的子圖,對應于四個子頻帶。在水平和垂直方向上都經過低通濾波得到的是上級子圖在本級尺度上的平滑近似,稱為ll子帶;經過水平低通和垂直高通的序列保留的是垂直方向上的細節(jié)信息,稱為lh子帶;經過水平高通和垂直低通的序列保留的是水平方向上的細節(jié)信息,稱為hl子帶;經過水平高通和垂直高通的序列反映了對角線方向的細節(jié)信息,稱為hh子帶。
每次處理數(shù)據時,釆用二維小波變換將低頻子帶分解成4個更低一級的子帶,圖像經過三級daubechies9/7提升小波分解后得到不同方向、不同尺度的子帶:
{ll1,lh1,hl1,hh1,lh2,hl2,hh2,lh3,hl3,hh3}
其中,低頻部分分辨率高,高頻部分細節(jié)突出,便于后續(xù)的圖像處理。
202:通過圖像序列的初始狀態(tài)regis={a1,a2,...,an}與本原多項式gen={c1,c2,...,cm}構造出與各子帶大小相同的m序列作為密鑰序列key={k1,k2,...,kl};
其中,m序列是最長線性反饋移位寄存器序列[9](linearfeedbackshiftregister,lfsr)的簡稱,它是由帶線性反饋的移位寄存器產生的周期最長的一種序列。n級移位寄存器的初始狀態(tài)為a-1a-2…a-n,經過一次移位后,狀態(tài)變?yōu)閍0a-1a-2…a-n+1,經過n次移位后,狀態(tài)變?yōu)閍n-1an-2…a1a0,再移位一次時,移位寄存器左端得到新得到的輸入an,如圖2所示。
其中,反饋系數(shù)ci等于0或1,反饋形式
移位運算可表示為:
ai(t+1)=ai+1(t),i=0,1,2,…,n-1
其中,ai+1(t)表示t時刻第i+1個移位寄存器中的內容,ai(t+1)表示t+1時刻第i個移位寄存器中的內容。
線性反饋運算可表示為:
其中,c1,c2,...,cn為反饋系數(shù),反饋系數(shù)ci的取值決定了移位寄存器的反饋連接和序列的結構,其特征多項式表示為:p(x)=c0+c1x+c2x2+…+cn-1xn-1+cnxn
特征多項式是表征該線性移位寄存器結構特征的數(shù)學模型,與寄存器組輸出的序列有密切的關系,當特征多項式p(x)為本原多項式時,寄存器組能夠產生m序列key={k1,k2,...,kl}。
203:采用基于比特平面的加密算法和基于不重要比特平面的加密算法,按照分辨率漸進的順序對各子帶進行加密,實現(xiàn)對數(shù)字圖像的完全加密和保留輪廓信息的選擇性加密;
基于比特平面的加密算法,是通過在各子帶中,從最大比特平面開始,將密鑰序列與子帶圖像數(shù)據進行異或運算,實現(xiàn)對圖像的整體加密。
具體地,讀取原始圖像像素值并存放入一維數(shù)組img_raw中,為進行小波變換,將整型數(shù)組強行轉換為浮點型數(shù)組coef,利用提升算法對圖像進行三級小波變換,將圖像分解為不同大小的子帶;將浮點型數(shù)組coef量化為無符號整型數(shù)組data;確定量化后各子帶中系數(shù)的最大絕對值max,進而確定最大的比特平面,即位平面的個數(shù)max_space,并將其存放入數(shù)組max_bit。
此外,為存儲各系數(shù)的符號,將各系數(shù)值的符號位輸出到碼流stream中;各子帶中,從最大比特平面開始,按照比特平面由高到低的順序,依次將量化后的圖像小波系數(shù)data與密鑰序列key進行異或運算,并將結果輸出到碼流stream中。
把數(shù)字圖像分解為位平面,高比特平面數(shù)據包含了視覺需要的主要數(shù)據,反映對象的主要特征,而低比特平面描述的是圖像中微小的細節(jié),是圖像的不重要比特平面。基于不重要比特平面的加密算法,是通過尋找各子帶中最大的比特位為1的比特平面,按照比特平面由高到低的順序,進行異或運算來實現(xiàn)對圖像的部分加密。
具體地,設置比特平面子帶閾值threshold,掃描子帶數(shù)據,尋找相應比特位為1的小波系數(shù),輸出系數(shù)的比特位及符號位到碼流stream中;按照比特平面由高到低的順序,將量化后的圖像小波系數(shù)data與密鑰序列key進行異或運算,并將結果一起輸出到碼流stream中,完成對圖像數(shù)據保留輪廓信息的部分加密。
204:采用基于比特平面的解密算法和基于不重要比特平面的解密算法,對加密后的圖像進行解密,通過小波逆變換重建原始圖像。
基于比特平面的解密算法,是按照分辨率漸進的順序對子帶進行解密,各子帶中,首先從輸出碼流stream中讀取出各系數(shù)的符號位,然后經由序列的初始狀態(tài)regis與本原多項式gen構造出與子帶大小相同的m序列key,作為密鑰序列;從數(shù)組max_bit中取出各子帶的最大比特平面,按照比特平面由高到低的順序,依次將碼流stream與密鑰序列key進行異或運算,并將結果存放入數(shù)組data;為進行小波逆變換,需將整型數(shù)組data反量化為浮點型數(shù)組coef;通過三級daubechies9/7提升小波逆變換,將分解后的圖像子帶重構出原始圖像。
daubechies9/7提升小波逆變換具體實現(xiàn)步驟如下:
(1)系數(shù)縮放:x(2n)←k×y(2n)x(2n+1)←-(1/k)×y(2n+1)
(2)第一次反更新:x(2n)←x(2n)-δ×[x(2n-1)+x(2n+1)]
(3)第一次反預測:x(2n+1)←x(2n+1)-γ×[x(2n)+x(2n+2)]
(4)第二次反更新:x(2n)←x(2n)-β×[x(2n-1)+x(2n+1)]
(5)第二次反預測:x(2n+1)←x(2n+1)-α×[x(2n)+x(2n+2)]
其中,參數(shù)α,β,γ,δ,k的值分別為:
α=1.586134342,β=0.052980118,γ=0.882911075
δ=0.442506852,k=1.230174105
基于不重要比特平面的解密算法,是按照分辨率漸進的順序對子帶進行解密:設置比特平面子帶閾值threshold,對子帶中數(shù)據進行掃描,首先從輸出碼流stream中讀取出與threshold比特位相同的小波系數(shù)及其符號位,按照比特平面由高到低的順序,依次將碼流stream與密鑰序列key進行異或運算,并將結果存放入數(shù)組data;將整型數(shù)組data反量化為浮點型數(shù)組coef;通過三級daubechies9/7提升小波逆變換,將分解后的圖像子帶重構出原始圖像。
綜上所述,本發(fā)明實施例通過上述步驟201-步驟204避免了傳統(tǒng)加解密算法的復雜結構與低效率,可以應用于解決所有灰度圖像加解密問題。
參考文獻:
[1]vaidyanathanp,malhotran,nayakj.anewencryptiontechniqueforthesecuredtransmissionandstorageoftextinformationwithmedicalimages[j].engineeringreview,2012,32(1):57-63.
[2]maoy,cheng,lians.anovelfastimageencryptionschemebasedon3dchaoticbakermaps[j].internationaljournalofbifurcationandchaos.2004,14(10):3613-3624
[3]孫勁光,汪潔,孟祥福.改進的fibonacci雙置亂圖像加密算法[j].計算機科學,2012,39(11):249-253.
[4]時向勇,李先華,鄭成建.基于橢圓曲線密碼體制的遙感圖像加密算法[j].武漢大學學報(信息科學版),2010,11:1309-1313.
[5]易開祥,孫鑫,石教英.一種基于混沌序列的圖像加密算法[j].計算機輔助設計與圖形學學報,2000,09:672-676.
[6]丁瑋,齊東旭.基于arnold變換的數(shù)字圖像置亂技術.計算機輔助設計與圖形學學報,2001,13(4):338-341.
[7]蔡俊,陳昕,向旭東.一種基于混沌的代換-置換結構圖像加密算法[j].計算機科學,2014,09:158-164.
[8]acohen,idaubechies,jcfeauveau,biorthogonalbasesofcompactlysupportedwavelets[j],commpureandappliedmath,1992,(45):485~560.
[9]張雪鋒,范九倫.基于線性反饋移位寄存器和混沌系統(tǒng)的偽隨機序列生成方法[j].物理學報,2010,04:2289-2297.
本領域技術人員可以理解附圖只是一個優(yōu)選實施例的示意圖,上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。
以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內。