本申請為發(fā)明名稱為“一種圖像加密方法及裝置”的分案申請,原申請的申請日為2016.9.28,申請?zhí)枮?01610856467.5。本發(fā)明涉及圖像加密
技術(shù)領(lǐng)域:
,尤其涉及一種圖像加密方法、圖像加密裝置、密鑰流生成方法和密鑰流生成器。
背景技術(shù):
:隨著信息技術(shù)和互聯(lián)網(wǎng)的不斷發(fā)展,信息安全成了信息傳輸過程中應(yīng)該考慮的首要問題。圖像作為信息傳輸?shù)闹饕d體,使得圖像加密技術(shù)也成了信息安全領(lǐng)域研究的熱點之一。近年來,人們相繼提出了諸多圖像加密的方法。目前使用最廣泛的一種圖像加密方法是基于像素擾亂的圖像加密方法,即對圖像的行和列進行置亂。然而圖像加密過程中一般會考慮兩點:第一,計算開銷是否在可接受的范圍之內(nèi);第二,隨機性是否滿足要求?,F(xiàn)有的圖像加密算法在上述兩個方面還有待提高。因此仍有必要開發(fā)一種在保障隨機性的同時降低計算開銷的圖像加密方法。技術(shù)實現(xiàn)要素:本發(fā)明要解決的技術(shù)問題是,針對現(xiàn)有圖像加密方法的隨機性和計算開銷有待優(yōu)化的缺陷,提供一種將圖像置亂與分塊編碼相結(jié)合的圖像加密方法和圖像加密裝置,以及相應(yīng)的密鑰流生成方法和密鑰流生成器。本發(fā)明第一方面,提供了一種圖像加密方法,包括以下步驟:(1)基于初始值構(gòu)造耦合映像格子序列,通過對稱矩陣變換將耦合映像格子序列處理成第一密鑰流,通過密碼置換盒對第一密鑰流進行置換得到第二密鑰流;其中,建立基于二維動態(tài)映射的耦合映像格子模型,并采用所述耦合映像格子模型基于初始值x0,y0構(gòu)造耦合映像格子序列(x,y),其中x0,y0∈(0,1];該耦合映像格子模型為:其中,ε是耦合映像格子的耦合強度,f1是下帳篷映射函數(shù),f2是邏輯映射函數(shù);(2)使用第一密鑰流對原始圖像進行置亂;(3)使用第二密鑰流對置亂后的圖像進行分塊編碼,得到加密的圖像數(shù)據(jù);其中,將置亂后的圖像分列得到第i列的像素值為pi(j),i=1,2......,n;j=1,2......,m;n和m分別為每行像素和每列像素;將第一列像素值與所述第二密鑰流異或運算后作為第一列密文序列;將第i列像素值與所述第二密鑰流異或運算后,再與前一列密文序列進行異或運算,得到第i列密文序列,其中i=2,3......,n。在根據(jù)本發(fā)明所述的圖像加密方法中,所述通過對稱矩陣變換將耦合映像格子序列處理成第一密鑰流的步驟包括:利用對稱矩陣變換將耦合映像格子序列(x,y)的初始區(qū)間(0,1)變換到指定區(qū)間,輸出(x',y');取(x',y')的下限值作為第一密鑰流。在根據(jù)本發(fā)明所述的圖像加密方法中,所述通過密碼置換盒對第一密鑰流進行置換得到第二密鑰流的步驟為:通過以下公式計算第二密鑰流:其中sbox(ci,di)為在二維表sbox中查找到的下標(biāo)(ci,di)對應(yīng)的數(shù)值;(ci,di)為第一密鑰流的參數(shù)值;x1_b,y1_b分別為初始值x0,y0的前8位;i=2,3......,n時,xi_b,yi_b分別為前一輸出的密鑰值分別進行比特位的左移運算和右移運算后得到。在根據(jù)本發(fā)明所述的圖像加密方法中,所述比特位的左移運算和右移運算中移動的比特數(shù)為2~4個比特。本發(fā)明第二方面,提供了一種圖像加密裝置,包括:密鑰流生成器,用于生成第一密鑰流和第二密鑰流;圖像置亂單元,用于使用第一密鑰流對原始圖像進行置亂;分塊編碼單元,用于使用第二密鑰流對置亂后的圖像進行分塊編碼,得到加密的圖像數(shù)據(jù);其中,將置亂后的圖像分列得到第i列的像素值為pi(j),其中i=1,2......,n;j=1,2......,m;n和m分別為每行像素和每列像素;將第一列像素值與所述第二密鑰流異或運算后作為第一列密文序列;將第i列像素值與所述第二密鑰流異或運算后,再與前一列密文序列進行異或運算,得到第i列密文序列,其中i=2,3......,n;其中,所述密鑰流生成器包括:序列生成單元,用于基于初始值構(gòu)造耦合映像格子序列;該序列生成單元建立基于二維動態(tài)映射的耦合映像格子模型,并采用所述耦合映像格子模型基于初始值x0,y0構(gòu)造耦合映像格子序列(x,y),其中x0,y0∈(0,1];所述耦合映像格子模型為:其中,ε是耦合映像格子的耦合強度,f1是下帳篷映射函數(shù),f2是邏輯映射函數(shù);矩陣變換單元,用于通過對稱矩陣變換將耦合映像格子序列處理成第一密鑰流;密碼置換單元,用于通過密碼置換盒對第一密鑰流進行置換得到第二密鑰流。在根據(jù)本發(fā)明所述的圖像加密裝置中,所述矩陣變換單元通過對稱矩陣變換將耦合映像格子序列處理成第一密鑰流的步驟包括:利用對稱矩陣變換將耦合映像格子序列(x,y)的初始區(qū)間(0,1)變換到指定區(qū)間,輸出(x',y');取(x',y')的下限值作為第一密鑰流。在根據(jù)本發(fā)明所述的圖像加密裝置中,所述密碼置換單元通過密碼置換盒對第一密鑰流進行置換得到第二密鑰流的步驟為:通過以下公式計算第二密鑰流:其中sbox(ci,di)為在二維表sbox中查找到的下標(biāo)(ci,di)對應(yīng)的數(shù)值;(ci,di)為第一密鑰流的參數(shù)值;x1_b,y1_b分別為初始值x0,y0的前8位;i=2,3......,n時,xi_b,yi_b分別為前一輸出的密鑰值分別進行比特位的左移運算和右移運算后得到。本發(fā)明第三方面,提供了一種密鑰流生成方法,包括以下步驟:a、基于初始值構(gòu)造耦合映像格子序列;該步驟中建立基于二維動態(tài)映射的耦合映像格子模型,并采用所述耦合映像格子模型基于初始值x0,y0構(gòu)造耦合映像格子序列(x,y),其中x0,y0∈(0,1];該耦合映像格子模型為:其中,ε是耦合映像格子的耦合強度,f1是下帳篷映射函數(shù),f2是邏輯映射函數(shù);b、通過對稱矩陣變換將耦合映像格子序列處理成第一密鑰流;該步驟中利用對稱矩陣變換將耦合映像格子序列(x,y)的初始區(qū)間(0,1)變換到指定區(qū)間,輸出(x',y');并取(x',y')的下限值作為第一密鑰流;c、通過密碼置換盒對第一密鑰流進行置換得到第二密鑰流;該步驟中通過以下公式計算第二密鑰流:其中sbox(ci,di)為在二維表sbox中查找到的下標(biāo)(ci,di)對應(yīng)的數(shù)值;(ci,di)為第一密鑰流的參數(shù)值;x1_b,y1_b分別為初始值x0,y0的前8位;i=2,3......,n時,xi_b,yi_b分別為前一輸出的密鑰值分別進行比特位的左移運算和右移運算后得到。本發(fā)明第四方面,提供了一種密鑰流生成器,包括:序列生成單元,用于基于初始值構(gòu)造耦合映像格子序列;所述序列生成單元建立基于二維動態(tài)映射的耦合映像格子模型,并采用所述耦合映像格子模型基于初始值x0,y0構(gòu)造耦合映像格子序列(x,y),其中x0,y0∈(0,1];該耦合映像格子模型為:其中,ε是耦合映像格子的耦合強度,f1是下帳篷映射函數(shù),f2是邏輯映射函數(shù);矩陣變換單元,用于通過對稱矩陣變換將耦合映像格子序列處理成第一密鑰流;所述矩陣變換單元利用對稱矩陣變換將耦合映像格子序列(x,y)的初始區(qū)間(0,1)變換到指定區(qū)間,輸出(x',y');并取(x',y')的下限值作為第一密鑰流;密碼置換單元,用于通過密碼置換盒對第一密鑰流進行置換得到第二密鑰流;所述密碼置換單元通過以下公式計算第二密鑰流:其中sbox(ci,di)為在二維表sbox中查找到的下標(biāo)(ci,di)對應(yīng)的數(shù)值;(ci,di)為第一密鑰流的參數(shù)值;x1_b,y1_b分別為初始值x0,y0的前8位;i=2,3......,n時,xi_b,yi_b分別為前一輸出的密鑰值分別進行比特位的左移運算和右移運算后得到。本發(fā)明的上述技術(shù)方案具有如下優(yōu)點:本發(fā)明將置亂操作和分塊編碼的加密方法相結(jié)合,在提高了加密安全性的同時很好地降低了加密操作的計算復(fù)雜度,并且在置亂和分塊編碼中用到的是不同的密鑰流,相對于使用單一的密鑰流而言,加密的安全性更高。附圖說明圖1為根據(jù)本發(fā)明優(yōu)選實施例的圖像加密方法的流程圖;圖2為根據(jù)本發(fā)明優(yōu)選實施例的圖像加密方法的原理框圖;圖3為根據(jù)本發(fā)明優(yōu)選實施例的圖像加密方法中分塊編碼步驟的邏輯運算圖;圖4為根據(jù)本發(fā)明優(yōu)選實施例的密鑰流生成方法流程圖;圖5為根據(jù)本發(fā)明優(yōu)選實施例的密鑰流生成方法的邏輯運算圖;圖6為根據(jù)本發(fā)明優(yōu)選實施例的圖像加密裝置的模塊示意圖;圖7為根據(jù)本發(fā)明優(yōu)選實施例的密鑰流生成器的模塊示意圖;圖8為根據(jù)本發(fā)明優(yōu)選實施例的圖像解密方法流程圖;圖9為根據(jù)本發(fā)明優(yōu)選實施例的圖像解密裝置的模塊示意圖;圖10a至圖10d為根據(jù)本發(fā)明的原始圖像和加密后圖像及相應(yīng)的直方圖;圖11a至圖11f為根據(jù)本發(fā)明的原始圖像和加密后圖像的相關(guān)性分析圖。具體實施方式為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明的一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動的前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。請參閱圖1,為根據(jù)本發(fā)明優(yōu)選實施例的圖像加密方法的流程圖。如圖1所示,該實施例的圖像加密方法包括以下步驟:首先,在步驟s101中執(zhí)行密鑰流生成步驟,即生成第一密鑰流key1和第二密鑰流key2。本發(fā)明中第一密鑰流和第二密鑰流為不同的密鑰流。該步驟具體包括:基于初始值構(gòu)造耦合映像格子序列,通過對稱矩陣變換將耦合映像格子序列處理成第一密鑰流,通過密碼置換盒對第一密鑰流進行置換得到第二密鑰流。隨后,在步驟s102中執(zhí)行圖像置亂步驟,即使用第一密鑰流key1對原始圖像進行置亂。該第一密鑰流key1作為置亂操作中循環(huán)移位的密鑰。具體地,該置亂步驟可以基于第一密鑰流的一維數(shù)組,經(jīng)過擴值取整(e-r)后,分別得到行移位數(shù)組和列移位數(shù)組,用于對原始圖像的灰度值矩陣進行行移位和列移位。該圖像置亂過程是可逆的,使得后續(xù)解密過程中可以還原出原始圖像。最后,在步驟s103中執(zhí)行分塊編碼步驟,即使用第二密鑰流key2對置亂后的圖像進行分塊編碼,得到加密的圖像數(shù)據(jù)。設(shè)原始圖像的像素大小為m×n,其中n和m分別為每行像素和每列像素。前述置亂后的圖像大小仍然為m×n。在該步驟s103中將置亂后的圖像進行分塊處理,對圖像像素以行、列或者其它形式進行分塊,再使用第二密鑰流key2對每塊圖像灰度值進行編碼。例如,對置亂后的圖像像素進行列處理,即每一列與等長度的密鑰流進行異或,同時為了保證隨機性,從第二列開始每一列密文都與前一列的密文異或。請參閱圖2,為根據(jù)本發(fā)明優(yōu)選實施例的圖像加密方法的原理框圖圖。如圖2所示,在該圖像加密方法中,首先執(zhí)行前述密鑰流生成步驟s101,由密鑰流生成器601生成第一密鑰流key1和第二密鑰流key2。隨后,執(zhí)行前述圖像置亂步驟s102,包括:將輸入的原始圖像202經(jīng)過矩陣映射203得到原始圖像的灰度值矩陣,以及利用第一密鑰流key1對原始圖像的灰度值矩陣進行行移位和列移位204,得到置亂后的圖像205。具體地,假設(shè)原始圖像的像素大小為m×n;由密鑰流發(fā)生器生成的第一密鑰流key1可表示為(ci,di),i∈max{m,n},作為循環(huán)移位的密鑰。對于ci,取i=m,c1,c2……,cm組成一個一維數(shù)組(c1,c2……,cm),然后對這個一維數(shù)組的數(shù)值進行e-r處理,即擴值取整,得到行移位數(shù)組,記為rshift=floor[n(c1,c2……,cm)],用rshift對原始圖像的灰度值矩陣的行進行移位,即數(shù)組rshift第一個參數(shù)控制圖像第一行右移的位數(shù),第二個參數(shù)控制圖像第二行右移的位數(shù),依次類推。在本發(fā)明的另一些實施例中,前述右移操作也可以替換成左移操作。同理,對于di,取i=n,d1,d2……,dn組成一個一維數(shù)組(d1,d2……,dn),對其數(shù)值進行e-r處理,得到列移位數(shù)組,記為cshift=floor[m(d1,d2……,dn)],用cshift對原始圖像的灰度值矩陣的每一列進行向下移位。在本發(fā)明的另一些實施例中,前述向下移位操作也可以替換成向上移位操作。最后,執(zhí)行前述分塊編碼步驟s103,即使用第二密鑰流key2對置亂后的圖像205進行分塊編碼,得到加密的圖像數(shù)據(jù)206。請結(jié)合參閱圖3,為根據(jù)本發(fā)明優(yōu)選實施例的圖像加密方法中分塊編碼的邏輯運算圖。如圖3所示,分塊編碼步驟具體包括:1、將置亂后的圖像205分列得到第i列的像素值為pi(j),其中i=1,2......,n;j=1,2......,m;n和m分別為原始圖像的每行像素和每列像素。2、將第一列像素值與第二密鑰流異或運算后作為第一列擴散后的像素值,即第一列密文序列。設(shè)第二密鑰流key2可以表示為i=1,2......,n。最后得到的加密的圖像數(shù)據(jù)206可以表示為密文序列ci(j),i=1,2......,n,j=1,2......,m。則第一列密文序列3、從第二列開始,將第i列像素值與第二密鑰流異或運算后,再與前一列密文序列進行異或運算,得到第i列擴散后的像素值,即第i列密文序列,其中i=2,3......,n。設(shè)則也就是說,該步驟中可以通過以下公式(1)計算第i列密文序列:雖然上述實施例中以分列的形式對圖像進行分塊編碼,但是本發(fā)明不僅限于此,還采用分行或者其它分塊方式進行編碼。本發(fā)明將置亂操作和分塊編碼的加密方法相結(jié)合,在提高了加密過程安全性的同時很好地降低了加密操作的計算復(fù)雜度。并且,本發(fā)明中在置亂和分塊編碼中用到的是不同的密鑰流,相對于使用單一的密鑰流而言,加密的安全性更高。在本發(fā)明的優(yōu)選實施例中,提供了一種新的密鑰流生成方法,利用耦合映像格子(cml)和密碼置換盒(sbox)生成密鑰。請參閱圖4,為根據(jù)本發(fā)明優(yōu)選實施例的密鑰流生成方法流程圖。如圖4所示,前述密鑰流生成步驟s101進一步包括以下步驟:首先,在步驟s401中,執(zhí)行序列生成步驟,基于初始值構(gòu)造耦合映像格子序列。請結(jié)合參閱圖5,為根據(jù)本發(fā)明優(yōu)選實施例的密鑰流生成方法的邏輯運算圖。如圖5所示,該基于初始值構(gòu)造耦合映像格子序列的步驟包括:1、建立基于二維動態(tài)映射的耦合映像格子模型:其中,ε是耦合映像格子的耦合強度,f1是下帳篷映射函數(shù),f2是邏輯映射函數(shù);i∈max{m,n}n和m分別為原始圖像的每行像素和每列像素。下帳篷映射函數(shù)f1如下式:其中,x是系統(tǒng)初始狀態(tài),x∈(0,1];p是系統(tǒng)的控制參數(shù),p∈(0,1)。邏輯映射函數(shù)f2如下式:f2(x)=ax(1-x),a∈(0,4](4)其中,a是控制參數(shù),當(dāng)a的取值接近4時,其結(jié)果可忽略周期性,達到混沌,因此優(yōu)選a=3.99973。2、采用前述耦合映像格子模型基于初始值x0,y0構(gòu)造耦合映像格子序列(x,y),其中x0,y0∈(0,1],對應(yīng)圖5中cml運算501。隨后,在步驟s402中,執(zhí)行矩陣變換步驟,即通過對稱矩陣變換將耦合映像格子序列處理成第一密鑰流key1。該矩陣變換步驟見圖5中smt運算502,具體包括:1、利用對稱矩陣變換將耦合映像格子序列(x,y)的初始區(qū)間(0,1)變換到指定區(qū)間,輸出(x',y')。在本發(fā)明的優(yōu)選實施例中,x',y'∈(0,15],具體變換如下:其中k為變換參數(shù)。令對稱矩陣則k=5,上述對稱矩陣a只是為了轉(zhuǎn)換(x,y)的取值范圍,該對稱矩陣a也可以采用其它的矩陣實現(xiàn),例如:或由于變換后的取值區(qū)間確定,故不同的對稱矩陣只對應(yīng)唯一一個變換參數(shù)數(shù)值。2、取(x',y')的下限值作為smt的輸出,即第一密鑰流key1,可以表示為(ci,di)。ci=floor(xi'),di=floor(yi'),i∈max{m,n}。最后,在步驟s403中,執(zhí)行密碼置換步驟,即通過密碼置換盒對第一密鑰流key1進行置換得到第二密鑰流key2。該步驟中可以通過以下公式計算第二密鑰流key1:其中sbox(ci,di)為在二維表sbox中查找到的下標(biāo)(ci,di)對應(yīng)的數(shù)值;(ci,di)為第一密鑰流key1的參數(shù)值;x1_b,y1_b分別為初始值x0,y0的前8位;i=2,3......,n時,xi_b,yi_b分別為前一輸出的密鑰值分別進行比特位的左移運算和右移運算后得到。如圖5中,該密碼置換步驟具體包括:1、通過sbox運算503將(ci,di)置換為sbox(ci,di);sbox優(yōu)選為16×16的二維表,對應(yīng)有16×16個(0,255)的十進制數(shù),通過下標(biāo)ci,di可以找到sbox中對應(yīng)的數(shù),將其作為sbox的輸出。2、對初始值的x0,y0分別執(zhí)行運算504和運算505,即提取前8位,得到x1_b,y1_b,再經(jīng)過異或運算506得到:3、當(dāng)i=2,3......,n時,對前一輸出的密鑰值分別進行比特位的左移運算507和右移運算508后得到xi_b,yi_b。在該實施例中將左移3比特得到x2_b,將右移3比特得到y(tǒng)2_b,以此類推。在本發(fā)明另一些實施例中,也可以對右移3比特得到xi+1_b,對左移3比特得到y(tǒng)i+1_b。并且,左移和右移的位數(shù)也可以采用其它數(shù)值,例如移動2個比特或者4個比特。上述移位后的數(shù)值再經(jīng)過異或運算506得到:通過上述步驟便可以得到作為第二密鑰流key2。本發(fā)明的密鑰流生成方法可以生成不同級別的密鑰流,其中第一密鑰流相對簡單,第二密鑰流的安全級別更高,如果本發(fā)明的圖像加密方法中在置亂操作和分塊編碼中均采用第一密鑰流進行加密的話,則加密太簡單,安全性不高;如果均采用第二密鑰流進行加密的話,則運算開銷太大。因此本發(fā)明將第一密鑰流和第二密鑰流結(jié)合使用,既保證了二次密鑰對加密后安全性的要求,又很好的節(jié)省了密鑰的計算開銷,直接提升了圖像的加密效率。請參閱圖6,為根據(jù)本發(fā)明優(yōu)選實施例的圖像加密裝置的模塊示意圖。該圖像加密裝置600包括:密鑰流生成器601,用于生成第一密鑰流key1和第二密鑰流key2。該密鑰流生成器601的功能和實現(xiàn)過程與前述圖像加密方法中密鑰流生成步驟s101一致。圖像置亂單元602與密鑰流生成器601連接,用于使用第一密鑰流key1對原始圖像進行置亂。該圖像置亂單元602的功能和實現(xiàn)過程與前述圖像加密方法中圖像置亂步驟s102一致。具體地,圖像置亂單元602可以基于第一密鑰流的一維數(shù)組,經(jīng)過擴值取整(e-r)后,得到分別行移位數(shù)組和列移位數(shù)組,用于對原始圖像的灰度值矩陣進行行移位和列移位。該圖像置亂過程是可逆的,使得后續(xù)解密過程中可以還原出原始圖像。分塊編碼單元603與圖像置亂單元602和密鑰流生成器601連接,用于使用第二密鑰流key2對置亂后的圖像進行分塊編碼,得到加密的圖像數(shù)據(jù)。該分塊編碼單元603的功能和實現(xiàn)過程與前述圖像加密方法中分塊編碼步驟s103一致。該分塊編碼單元603將置亂后的圖像分列得到第i列的像素值為pi(j),其中i=1,2......,n;j=1,2......,m;n和m分別為每行像素和每列像素;將第一列像素值與所述第二密鑰流異或運算后作為第一列密文序列;將第i列像素值與所述第二密鑰流異或運算后,再與前一列密文序列進行異或運算,得到第i列密文序列,其中i=2,3......,n。請參閱圖7,為根據(jù)本發(fā)明優(yōu)選實施例的密鑰流生成器的模塊示意圖。如圖7所示,該密鑰流生成器601包括:序列生成單元701,用于基于初始值構(gòu)造耦合映像格子序列。該序列生成單元701的功能和實現(xiàn)過程與前述密鑰流生成方法中序列生成步驟s201一致。該序列生成單元701首先建立基于二維動態(tài)映射的耦合映像格子模型,即公式(1)。該序列生成單元701隨后采用所述耦合映像格子模型基于初始值x0,y0構(gòu)造耦合映像格子序列(x,y),其中x0,y0∈(0,1]。矩陣變換單元702與序列生成單元701連接,用于通過對稱矩陣變換將耦合映像格子序列處理成第一密鑰流key1。該矩陣變換單元702的功能和實現(xiàn)過程與前述密鑰流生成方法中矩陣變換步驟s202一致。該序列生成單元701利用對稱矩陣變換將耦合映像格子序列(x,y)的初始區(qū)間(0,1)變換到指定區(qū)間,輸出(x',y'),并取(x',y')的下限值作為第一密鑰流key1。密碼置換單元703,與矩陣變換單元702和序列生成單元701連接,用于通過密碼置換盒對第一密鑰流key1進行置換得到第二密鑰流key2。該密碼置換單元703的功能和實現(xiàn)過程與前述密鑰流生成方法中密碼置換步驟s203一致。該密碼置換單元703通過公式(6)計算第二密鑰流。請參閱圖8,為根據(jù)本發(fā)明優(yōu)選實施例的圖像解密方法流程圖。如圖8所示,該圖像解密方法包括以下步驟:步驟s801、從圖像加密數(shù)據(jù)中提取第一密鑰流key1和第二密鑰流key2。步驟s802、從圖像加密數(shù)據(jù)中提取密文序列,根據(jù)圖像分塊從最后一塊開始,將密文序列與前一塊異或,并與第二密鑰流key2異或得到圖像矩陣。該步驟s802為分塊編碼步驟s103的逆過程。以分列形式進行分塊為例,提取密文序列,對每一列密文序列進行編號,從第n列開始每一列與前一列異或,然后分別與第二密鑰流中的每一列異或,異或的結(jié)果組成一個m×n的矩陣。步驟s803、使用前述基于第一密鑰流key1的行移位數(shù)組rshift和列移位數(shù)組cshift,對圖像矩陣的行和列進行移位后得到原始圖像。該步驟s803為圖像置亂步驟s102的逆過程。例如,先使用列移位數(shù)組cshift對圖像矩陣的列進行向上移位,再使用行移位數(shù)組rshift對圖像矩陣的列進行向右移位,從而得到原始圖像。請參閱圖9,為根據(jù)本發(fā)明優(yōu)選實施例的圖像解密裝置的模塊示意圖。如圖9所示,該圖像解密裝置900包括:密鑰提取單元901,用于從圖像加密數(shù)據(jù)中提取第一密鑰流key1和第二密鑰流key2。第一解密單元902,與密鑰提取單元901連接,用于從圖像加密數(shù)據(jù)中提取密文序列,根據(jù)圖像分塊從最后一塊開始,將密文序列與前一塊異或,并與第二密鑰流key2異或得到圖像矩陣。第二解密單元903,用于使用前述基于第一密鑰流key1的行移位數(shù)組rshift和列移位數(shù)組cshift,對圖像矩陣的行和列進行移位后得到原始圖像。本發(fā)明通過以下實驗對本發(fā)明的圖像加密方法的可行性進行了研究。輸入圖像為256×256的lena灰度圖像作為原始圖像,密鑰流生成步驟的初始值選取x0=0.27,y0=0.8370,a=3.99973。1、密鑰空間分析一種加密算法密鑰空間的大小代表該加密方法可用于加密的不同密鑰的總個數(shù)。本發(fā)明的圖像加密方法中有四個初始值,x0,y0,p∈(0,1),a∈(3.57,4)。根據(jù)ieee754標(biāo)準(zhǔn),64位雙精度數(shù)的精確度為10-15,則該加密方法的密鑰空間可以大至2197。因此,該密鑰空間可以很好地抵抗暴力攻擊。2、信源熵信源熵是用來描述信源符號隨機出現(xiàn)程度的指標(biāo)。信源熵可定義為其中p(mi)為信源符號mi出現(xiàn)的概率。對于一副理想的隨機圖像,其信源熵理論上可以達到8。本發(fā)明采用的原始圖像和加密后圖像的信息熵如表格1所示:表格1圖像原始圖像加密后圖像lena(莉娜圖像)7.45327.9843rice(大米圖像)5.75967.9895barbara(芭芭拉圖像)7.58387.98903、直方圖分析直方圖是反映一幅圖像在同一灰度級的像素的分布情況。一個好的加密系統(tǒng),其加密圖的直方圖應(yīng)該呈統(tǒng)一分布,以抵抗外界的數(shù)學(xué)統(tǒng)計攻擊。圖10a為原始圖像莉娜圖像(lena),圖10b為加密后圖像,圖10c為原始圖像的直方圖,圖10d為加密后圖像的直方圖。直方圖顯示,加密前的圖像的直方圖呈不規(guī)則變化,而加密后的圖像的直方圖基本呈統(tǒng)一分布,這說明密文不能為非法用戶提供有效信息,從而可以有效地抵抗外界的統(tǒng)計攻擊。4、像素相關(guān)性分析對于一幅普通的圖像來說,其相鄰像素,包括水平、垂直、對角線方向,理論上是高度相關(guān)的。加密后圖像相鄰像素的相關(guān)性是衡量一個加密系統(tǒng)的一個重要指標(biāo),相鄰像素相關(guān)性越低,其加密效果更好。本發(fā)明選取了5000對相鄰像素點測試其相鄰像素的相關(guān)性,原始圖像和加密后圖像的相關(guān)性如圖11a-11f所示。其中圖11a和圖11b分別為原始圖像和加密后圖像的水平方向像素相關(guān)性,圖11c和圖11d分別為原始圖像和加密后圖像的垂直方向像素相關(guān)性,圖11e和圖11f分別為原始圖像和加密后圖像的對角方向像素相關(guān)性。像素相關(guān)性rxy的計算公式如下:cov(x,y)=e[(x-e(x))(y-e(y))](9)其中,x、y為圖像相鄰像素的灰度值。原始圖像和加密后圖像的相關(guān)系數(shù)如表格2所示:表格2方向原圖加密圖水平0.9642-0.02023垂直0.93090.00933對角線0.9061-0.005865、差分攻擊分析差分攻擊是一種選擇明文類攻擊,為了抵抗這類攻擊,則要求輸入圖像中少數(shù)像素點變化會導(dǎo)致密文大量像素的改變。像素個數(shù)改變率(npcr)和統(tǒng)一平均變化強度(uaci)經(jīng)常用來作為該類特性的分析指標(biāo),npcr值越接近100,uaci值越接近34,其加密效果越好。npcr和uaci的定義如下:其中,c1、c2分別為兩幅只有一個像素差別的密文圖像,c1(r,c)、c2(r,c)分別為c1、c2在點(r,c)處的像素值,size(d)為對應(yīng)圖像的大小。該加密方法的npcr和uaci的仿真結(jié)果如表格3所示。其中,表格3中現(xiàn)有方法1為擴散策略(diffusionstrategy),現(xiàn)有方法2為二維耦合映像格子(2dcml)??梢钥闯?,本發(fā)明經(jīng)過一輪加密就基本可以達到較為理想的效果,兩輪迭代之后可以保證npcr>0.996和uaci>33.4,而要得到同樣的效果,其他兩種加密方法至少要迭代兩次以上才能實現(xiàn)。表格3方法第一輪第二輪npcruacinpcruaci本發(fā)明方法99.398232.445399.626433.4086現(xiàn)有方法199.304632.243099.613533.3104現(xiàn)有方法246.652417.173299.403633.4023綜上所述,本發(fā)明基于傳統(tǒng)圖像加密方法的安全性及復(fù)雜度的問題,設(shè)計了一種新的基于二次密鑰加密的快速圖像加密方法。該方法兩次用到密鑰流,在像素置亂過程取第一密鑰流,像素擴散過程取第二密鑰流,在提高了算法安全性的同時很好地降低了算法的計算復(fù)雜度。仿真結(jié)果表明,該方法還擁有很大的密鑰空間,具備較好的抵抗窮舉攻擊的能力;加密后圖像的信源熵接近理想值,說明加密圖像的灰度分布比較均勻;加密直方圖基本呈統(tǒng)一分布,相鄰像素相關(guān)性可以達到預(yù)期的要求,可以有效地抵抗統(tǒng)計攻擊;npcr值和uaci值接近理想值,可以很好的抵抗差分攻擊。為了增強該加密方法的抗攻擊能力,還可以對加密方法進行多次迭代,以保證加密方法的安全性。最后應(yīng)說明的是:以上實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述實施例對本發(fā)明進行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的精神和范圍。當(dāng)前第1頁12