基于壓縮感知和索引置亂的圖像加密方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于圖像處理領(lǐng)域,特別涉及一種基于壓縮感知和索引置亂的圖像加密方 法,可用在遠程圖像處理過程中。
【背景技術(shù)】
[0002] 隨著多媒體技術(shù)的發(fā)展,圖像的應(yīng)用也越來越廣泛,圖像安全也受到越來越多的 關(guān)注。在一些對圖像安全性要求比較高的應(yīng)用中,如遠程軍事圖片,遠程商業(yè)圖紙設(shè)計等, 這些圖像數(shù)據(jù)量大,對實時性要求高,傳統(tǒng)的文本加密算法很難滿足要求,所以對圖像數(shù)據(jù) 加密算法的研究有著很重要的意義。
[0003]現(xiàn)有的加密算法經(jīng)常聯(lián)合多種加密算法來提高系統(tǒng)的安全性。一些將數(shù)學(xué)變換和 混沌映射,像素置亂,相位恢復(fù)算法等技術(shù)相結(jié)合的圖像加密算法相繼被提出。例如常見的 基于雙隨機相位編碼的圖像加密技術(shù)中的隨機相位掩模常用混沌映射來產(chǎn)生,解密所需的 相位掩模只需要有正確的混沌函數(shù)參數(shù)即可構(gòu)造,而不用知道整個隨機相位掩模,加密系 統(tǒng)的復(fù)雜性得到了降低,密鑰也更容易記憶和存儲,方便了實際應(yīng)用。但是這些基于數(shù)學(xué)變 換的加密算法不能實現(xiàn)圖像的壓縮,也就是說在圖像傳輸前,將圖像加密和圖像壓縮作為 兩個獨立的過程進行。在編碼端進行加密、壓縮,然后在解碼端進行解壓縮、解密,這樣處理 時間比較長,實時性較差。
[0004] 近幾年提出的很多將壓縮感知運用到圖像加密過程中的算法,大大降低了現(xiàn) 有的圖像壓縮與圖像加密聯(lián)合方案的復(fù)雜性,同時克服了加密圖像壓縮程度不高的缺 陷。文獻"SreedhanyaAV,SomanKΡ.SecrecyofcryptographywithCompressed Sensing[C]·2012InternationalConferenceonAdvancesinComputingand Communications(ICACC) ·Cochin,Kerala, 2012:207 ~210. " 中提出了一種米用壓縮感知 和Arnold變換的加密算法,該算法利用壓縮感知對圖像進行壓縮加密后,再使用Arnold變 換進行置亂加密。但是該算法直接將整個測量矩陣作為秘鑰,秘鑰量過大,不易于保存和記 憶。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明的目的在于克服上述已有技術(shù)的缺點,提出一種基于壓縮感知和索引置亂 的圖像加密方法,以在保證安全性和魯棒性的前提下,降低秘鑰數(shù)據(jù)量,易于保存和記憶。
[0006] 本發(fā)明的技術(shù)方案是:用Logistic混純映射控制選取N階哈達瑪矩陣的部分行向 量來構(gòu)成測量矩陣,測量矩陣的元素只取1和-1,并將測量值置亂后量化為[0, 255]區(qū)間內(nèi) 的整數(shù)作為密文進行傳輸。這樣只需將Logistic序列的初始值作為秘鑰,而不用將整個測 量矩陣作為秘鑰進行保存和記憶,極大減少了秘鑰的數(shù)量,并且秘鑰具有很高的靈敏性。其 實現(xiàn)步驟如下:
[0007] (1)將原始圖像X在正交基Φ下展開,得到稀疏系數(shù)α;
[0008] (2)構(gòu)造Μ*Ν大小的測量矩陣G,其中Μ,Ν均為大于1的自然數(shù),且Μ〈Ν:
[0009] 2a)利用初始值為^的Logistic混沌映射法產(chǎn)生一個長度為2K的混沌序列L=
[11,12~11011(+1,1 1(+2*"121(],其中,11為(0,1)區(qū)間的有理數(shù),1( = 1
[0010] 2b)舍棄混沌序列L的前K項,取后K項構(gòu)成一個索引序列I= 其中η= 1,2···Κ;
[0011] 2c)將自然序列R= [1,2···η…Κ]利用索引序列I= 重新排序, 即將原序列R的第in項作為新序列S的第η項,得到新序列S=[susys,··sK];
[0012] 2d)生成N*N大小的哈達瑪矩陣H,哈達瑪矩陣的元素只取1和-1 ;
[0013]2e)利用上述新序列S= [s^ 選取哈達瑪矩陣Η的Μ個行向量iKsi,:), H(s2,:)…H(sn,:)…H(sM,:)構(gòu)成測量矩陣G,其中H(sn,:)表示矩陣Η的第sn行;
[0014] (3)用測量矩陣G對稀疏系數(shù)α進行測量,得到測量值y ;
[0015] (4)置亂測量值y:按照上述(2a)-(2c)的步驟,利用初始值為Γ滿Logistic 混沌映射產(chǎn)生長度為Ρ*κ的索引序列S' = [s' 1,8'2-8'"/" 8'"1(]對測量值進行置亂,得 到置亂后的測量值ys,其中Γ (〇,1)區(qū)間的有理數(shù),P=M,m= 1,2,···Ρ*Κ;
[0016] (5)對置亂后的測量值^進行量化,將y/變?yōu)閇0, 255]區(qū)間的整數(shù),得到量化后的 測量值ye:L=1 +e=(n ,并將作為密文進行傳輸,其中a1= 255,a2= 0.00066714,a3= -54. 4654〇
[0017] 本發(fā)明與現(xiàn)有技術(shù)相比,具有如下優(yōu)點:
[0018] 第一,本發(fā)明由于用Logistic序列控制測量矩陣的構(gòu)造,這樣可以用Logistic序 列的初始值來替代整個測量矩陣作為秘鑰,使秘鑰數(shù)量大大減少,且具有更高的靈敏性。
[0019] 第二,本發(fā)明將經(jīng)過量化后的測量值作為密文,密文的數(shù)據(jù)量小,可以避免發(fā)生密 文的數(shù)據(jù)量膨脹。量化函數(shù)參數(shù)微小的變化都會對函數(shù)值變化產(chǎn)生很大的影響,可以達到 雙重加密的效果。
[0020] 第三,本發(fā)明由于測量矩陣的元素只取1和-1,密文為8位無符號的整數(shù),有利于 硬件的實現(xiàn)。
【附圖說明】
[0021] 圖1是本發(fā)明的實現(xiàn)流程圖;
[0022] 圖2是使用本發(fā)明方法對標(biāo)準(zhǔn)測試圖像lena加密后的結(jié)果圖像;
[0023] 圖3是對圖2的加密圖像使用正確秘鑰解密后的結(jié)果圖像;
[0024] 圖4是對圖2的加密圖像使用與正確秘鑰值有微小偏差的錯誤秘鑰解密后的結(jié)果 圖像;
[0025] 圖5是現(xiàn)有方法的解密結(jié)果圖像;
[0026] 圖6是原始lena圖像和加密lena圖像的相鄰像素相關(guān)性比較圖;
[0027] 圖7是本發(fā)明方法的量化性能圖;
[0028] 圖8是本發(fā)明方法的抗噪聲性能圖。
【具體實施方式】
[0029] 下面結(jié)合附圖對本發(fā)明的實施例及效果做進一步的詳細描述。
[0030] 參照圖1,本發(fā)明的實現(xiàn)步驟如下:
[0031] 步驟1 :將原始圖像X在正交基Φ下展開,得到稀疏系數(shù)α:
[0032] α = φ氺X
[0033] 本實例采用的正交基為離散余弦變換DCT基,原始圖像X從標(biāo)準(zhǔn)測試圖像庫中選 取。
[0034] 步驟2 :構(gòu)造Μ*Ν大小的測量矩陣G。
[0035] 現(xiàn)有加密方法對測量矩陣G的構(gòu)造,通常是直接采用已有的高斯矩陣來作為測量 矩陣,然后將整個測量矩陣作為密鑰,這樣會出現(xiàn)密鑰量過大的問題。為解決這個問題,本 發(fā)明方法用Logistic混沌映射法產(chǎn)生一個構(gòu)造序列,然后用構(gòu)造序列來控制測量矩陣G的 生成,這樣只需將Logistic的初始值作為密鑰,就可以解決上述密鑰量過大的問題。其中 用Logistic混純映射法產(chǎn)生構(gòu)造序列是通過如下2 (a)-2 (c)步驟實現(xiàn),用構(gòu)造序列S控制 測量矩陣的生成是通過如下2(d)-2(e)步驟實現(xiàn):
[0036] 2a)給定一個初始值h,用Logistic迭代公式:ln= 1ndipKl-lnD產(chǎn)生一個長 度為2K的混沌序列:L=[LV"1K,1K+1,lK+2…12K],其中1K為混沌序列L的第K個元素,K=Ν,并將^作為控制測量矩陣構(gòu)造的秘鑰,本實施例中取u= 4, 1 0. 65 ;
[0037] 2b)舍棄序列L的前K項,選取后K項lK+1,lK+2…12K,構(gòu)成索引序列I= [LV·· ^??11<],其中11=1,2···!^
[0038] 2c)將自然序列R= [1,2…η···Κ]利用索引序列I= 重新排序, 即將原序列R的第:^項作為構(gòu)造序列S的第η項,得到構(gòu)造序列S=[susy"s,··sK];
[0039] 2d)產(chǎn)生一個N*N大小的哈達瑪矩陣H,哈達瑪矩陣的元素只取1和-1,N是大于 1的自然數(shù),本實施例中取N= 256,對于一個N= 8的哈達瑪矩陣Η的舉例如下:
[0040
[0041] 2e)利用步驟2(c)得到的構(gòu)造序列S,選取哈達瑪矩陣Η的Μ個行向量H(Sl,:), H(s2,:)…H(sn,:)…H(sM,:)構(gòu)成一個M*N大小的測量矩陣G,即:
[0042]
[0043] 其中H(sn,:)表示矩陣Η的第sn行,Μ為大于1的自然數(shù),且M〈N,本實施例中取Μ =205〇
[0044] 步驟3 :,用步驟⑵中構(gòu)造出的測量矩陣G對稀疏系數(shù)α進行測量,得到測量 值:y=G*a。稀疏系數(shù)α經(jīng)過測量矩陣G測量后,它原有的數(shù)據(jù)結(jié)構(gòu)發(fā)生了改變,在不知 道Logistic初始值^的情況下,無法對y進行恢復(fù)進而得到原圖像,通過這個測量過程可 完成對圖像的第一次加密。
[0045] 步驟4:置亂測量值y
[0046] 4a)給定一個初始值1'i,用Logistic迭代公式:l'n= 1'nl*u*(l_l'nl)產(chǎn)生一 個長度為P*K的混沌序列:L'=[l' ^Ι'^ΓΓ··1'ΜΚ],其中Γi為混沌序列L'的第 i個元素,i= 1,2,…P*K,P=M,并將Γ1作為本發(fā)明的置亂測量值的秘鑰,本實施例中 取u= 4, 1 '丨=0· 33 ;
[0047] 4b)對混沌序列L' =[Γr"l'P*K]進行排序,得到索引序列S' =
[s' dsV-.sV·。、*」;
[0048] 4c)用索引序列S'對測