本發(fā)明涉及混沌通訊保密領(lǐng)域,特別涉及一種基于量子混沌映射和分?jǐn)?shù)域變換的圖像加密方法。
背景技術(shù):
隨著網(wǎng)絡(luò)通信和計(jì)算機(jī)技術(shù)的快速發(fā)展,圖像作為信息的一種重要載體,由于信息量豐富,直觀性強(qiáng)等特點(diǎn),被廣泛應(yīng)用于各個(gè)領(lǐng)域。圖像傳遞的安全性和保密技術(shù)引起了人們的密切關(guān)注。探索高效,安全的圖像加密方法已成為廣大學(xué)者的研究的一門重要課題。
混沌系統(tǒng)由于具有初值敏感性,偽隨機(jī)性等優(yōu)良的密碼學(xué)特性。基于此,學(xué)者們紛紛提出一些混沌圖像加密方法。常用的圖像加密的經(jīng)典思想主要有以下3種:基于圖像像素空間位置置亂,基于圖像灰度的變換,基于這兩者的結(jié)合。其中主要研究方向?yàn)閺牡途S到高維,從單一混沌系統(tǒng)到多維混沌系統(tǒng)的轉(zhuǎn)變。gao等人提出采用像素置亂和像素變換相結(jié)合機(jī)制的加密方法,盡管構(gòu)造簡單,但是密鑰與明文無關(guān),導(dǎo)致無法有效有效抵制選擇明文攻擊。王等人提出了一種超混沌圖像加密方法,通過密文反饋機(jī)制控制方法中的密鑰流,使得加密所需要參數(shù)與明文密切相關(guān)。但由于周期短,復(fù)雜度低,容易被破解。當(dāng)前大多數(shù)混沌加密方法都是自然混沌系統(tǒng),嚴(yán)格意義上說沒有達(dá)到密碼學(xué)所要求的保密性和安全性,即容易被攻破。基于此,在變換域中進(jìn)行圖像加密算法成為近年來的研究方向。unnikrishnan等人在2000年首次將分?jǐn)?shù)階fourier變換用于圖像加密。由于分?jǐn)?shù)階fourier可加性和變換階數(shù)可以為圖像加密方法提供更多的自由度,已經(jīng)逐漸成為圖像加密中的重要研究熱點(diǎn)之一。綜上,人們又考慮到混沌系統(tǒng)自身有許多優(yōu)良特性,王等人提出將混沌系統(tǒng)和分?jǐn)?shù)階fourier變換結(jié)合在一塊的圖像加密方法。實(shí)驗(yàn)結(jié)果和仿真表明該方法比之前的方法安全性要好。隨著信息技術(shù)的快速發(fā)展,量子圖像也進(jìn)入了人們的視野,學(xué)者們開始研究更加高效和安全的量子圖像加密技術(shù)。在2012年,akhshania等人基于量子logistic映射提出了一個(gè)圖像加密方案,該研究為量子混沌映射應(yīng)用于密碼學(xué)領(lǐng)域指明了方向。與傳統(tǒng)的加密技術(shù)相比,量子混沌映射具有天然的并行性,大容量和難以破解等優(yōu)點(diǎn)?;诖耍岢鲆环N基于量子混沌映射和分?jǐn)?shù)域變換的圖像加密方法。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于克服現(xiàn)有技術(shù)的缺點(diǎn)與不足,提供一種基于量子混沌映射和分?jǐn)?shù)域變換的圖像加密方法,克服了傳統(tǒng)分?jǐn)?shù)階fourier變換后直方圖不夠平滑的缺點(diǎn),本發(fā)明方法通過引入量子混沌映射,有效避免了傳統(tǒng)混沌系統(tǒng)偽隨機(jī)性差,計(jì)算復(fù)雜度高,控制參數(shù)少等問題,同時(shí)將混沌系統(tǒng)和分?jǐn)?shù)階fourier變換結(jié)合起來,實(shí)現(xiàn)了介于空間域和頻域的分?jǐn)?shù)域置亂,置亂效果好,避免了輕易能夠破解的問題。安全性得到了提高。
本發(fā)明的目的通過下述技術(shù)方案實(shí)現(xiàn):一種基于量子混沌映射和分?jǐn)?shù)域變換的圖像加密方法,包括以下步驟:
步驟一:打開原始的lena(256×256)灰度bmp圖像,按照從左往右的順序依次讀取圖像中各點(diǎn)像素值,得到原始圖像的像素矩陣q。因其圖像高度和寬度相等,這里假設(shè)高度和寬度用m表示.
步驟二:利用henon映射產(chǎn)生兩個(gè)m×m混沌序列分別為x={xk|k=0,1,2,3,…,m×m},y={yk|k=0,1,2,3,…,m×m},henon映射的動(dòng)力學(xué)方程如下式(1):
輸入a,b,x0,y0,其中a和b為混沌系統(tǒng)控制參數(shù),x0,y0為初始值,將a,b,x0,和y0作為加密密鑰,然后從x和y中第i+1項(xiàng)開始,截取其中t項(xiàng)得到序列c={ck|k=i+1,i+2,…,i+t},即{ci+1,ci+2,ci+3,…,ci+t},d={dk|k=i+1,i+2,…,i+t},即{di+1,di+2,di+3,…,di+t},然后取整數(shù)部分作為新的序列值,再分別各自重新組成和原始圖像同樣大小的矩陣cx和dy。
步驟三:將步驟二的c,d序列進(jìn)行排序得到{c(i+1)′,c(i+2)′,c(i+3)′,…,c(i+t)′},{d(i+1)′,d(i+2)′,d(i+3)′,…,d(i+t)′},然后計(jì)算出此序列在原x,y序列中的位置信息,記錄坐標(biāo)位置索引序列c′,d′,將原始圖素像素矩陣q各元素按c′索引序列的從左往右順序賦值為1~t的自然數(shù),序列位不夠的元素所在位置為奇數(shù)行置1,偶數(shù)行置t,得到置亂行矩陣px,同理,將原始圖像各元素按d′索引序列的順序賦值為1~t的自然數(shù),序列位不夠的元素所在為奇數(shù)列置1,偶數(shù)列置t,得到置亂列矩陣py.
步驟四:將原始圖像像素矩陣q和步驟得到的cx和dy矩陣,按位相乘處理,即通過式o=q×cx×dy,處理后得到圖像矩陣o。
步驟五:將圖像矩陣o乘以行置亂矩陣px,得到r,將r矩陣看做一個(gè)行向量r′=(u1,u2,u3,…um)進(jìn)行x方向的a階傅里葉變換,得到復(fù)數(shù)矩陣j,然后將j與置亂列矩陣py相乘,得到復(fù)數(shù)矩陣i。將i矩陣看做一個(gè)列向量i′(v1,v2,v3,…vm)進(jìn)行y方向的b階傅里葉變換,得到加密復(fù)數(shù)矩陣。并通過式(2)求出幅度譜。
|f(m,n)|=[r2(m,n)+i2(m,n)]1/2(2)
r(m,n)和i(m,n)分別為f(m,n)實(shí)數(shù)部分和虛數(shù)部分。
步驟六:將步驟五得到的加密復(fù)數(shù)矩陣通過下式(3)~(4)逆變換從頻域轉(zhuǎn)換成空間域。
其中f(m,n)為圖像的灰度分布函數(shù),其里面的m,n為圖像設(shè)定的空間域,f(m,n)為圖像的頻率分布函數(shù),里面的u,v為圖像設(shè)定的頻率域。|f(m,n)|和
然后將得到的矩陣以一維數(shù)組的形式讀取得到序列f={fk|k=0,1,2,3,…,m×m},接著利用量子logistic映射下式(5)產(chǎn)生序列g(shù)x,gy,gz。量子logistic映射動(dòng)力學(xué)方程如下式。
式中,控制參數(shù)r∈(3.74,4.00),耗散參數(shù)β≥3.5,x′n,y′n,z′n,是該混沌系統(tǒng)的狀態(tài)值,且通常情況下都為復(fù)數(shù),
步驟七:將gx異或gy異或gz,得到序列h={hk|k=0,1,2,3,…,m×m},最后利用混沌bernoulli映射方程(式6)迭代m次產(chǎn)生序列l(wèi)={lk|k=0,1,2,3,…,m×m},接著將hk,lk和步驟六的得到fk序列通過下式(7)進(jìn)行預(yù)處理,將其都轉(zhuǎn)化為0至255之間的整數(shù)。
bernoulli映射方程式如下:
式中,c為bernoulli映射參數(shù),c∈(1.4,2)時(shí),bernoulli移位映射進(jìn)入混沌狀態(tài)。
令得到最終密文序列為s={sk|k=0,1,2,3,…,m×m},s序列通過以下線性公式(8)遞推得到。
sk+1=mod(sk+lk+fk,256)(8)
步驟八:將步驟七的密文序列s重新塑造成二維矩陣,得到最終的加密密文圖像。
本發(fā)明相對于現(xiàn)有技術(shù)具有如下的優(yōu)點(diǎn)及效果:基于傳統(tǒng)的自然混沌系統(tǒng)安全性不高,本發(fā)明方法選取隨機(jī)性非常好的量子混沌中映射對圖像像素進(jìn)行修改擴(kuò)散,因其量子logistic混沌映射末尾有一個(gè)擾動(dòng)修正量,使每次迭代更新不會(huì)丟失,產(chǎn)生的序列非周期性比傳統(tǒng)logistic映射要好,偽隨機(jī)性更強(qiáng)。同時(shí)結(jié)合分?jǐn)?shù)階傅利葉變換,實(shí)現(xiàn)了介于頻域和空間域之間的分?jǐn)?shù)域置亂。使得加密復(fù)雜度大大加強(qiáng),不容易被攻擊破解。更能達(dá)到良好的加密效果。
附圖說明
圖1是本發(fā)明方法加密流程圖;
圖2是henon映射分岔圖;
圖3中:圖(a)是原始圖像(b)是置亂后的圖像(c)是x方向dfrft加密幅值圖(d)是y方向dfrft加密幅值圖(e)是量子映射擴(kuò)散最終加密圖像。
具體實(shí)施方式
下面結(jié)合實(shí)施例及附圖對本發(fā)明作進(jìn)一步詳細(xì)的描述,但本發(fā)明的實(shí)施方式不限于此。
實(shí)施例
本發(fā)明方法選取經(jīng)典lena(256×256)灰度圖像(如圖3a)為實(shí)驗(yàn)測試仿真對象。圖像的加密方法是在matlab2016a環(huán)境下進(jìn)行,加密工作流程圖如圖1,實(shí)驗(yàn)密鑰數(shù)據(jù)如下:henon映射初始值x0=0.32658698,y0=0.26853267,控制參數(shù)a=1.4,b=0.3,量子logistic混沌映射初始值
x′0=0.46983651,y′0=0.002659835123,z′0=0.002658789456,r=3.9,β=3.5,bernoulli映射參數(shù)c=1.4.
步驟一:打開原始的lena(256×256)灰度bmp圖像,按照從左往右的順序依次讀取圖像中各點(diǎn)像素值,得到原始圖像的像素矩陣q。因其圖像高度和寬度相等,這里假設(shè)高度和寬度用m表示.
步驟二:利用henon映射產(chǎn)生兩個(gè)m×m混沌序列分別為x={xk|k=0,1,2,3,…,m×m},y={yk|k=0,1,2,3,…,m×m},henon映射的動(dòng)力學(xué)方程如下式(1):
輸入a,b,x0,y0,其中a和b為混沌系統(tǒng)控制參數(shù),x0,y0為初始值,將a,b,x0,和y0作為加密密鑰,然后從x和y中第i+1項(xiàng)開始,截取其中t項(xiàng)得到序列c={ck|k=i+1,i+2,…,i+t},即{ci+1,ci+2,ci+3,…,ci+t},d={dk|k=i+1,i+2,…,i+t},即{di+1,di+2,di+3,…,di+t}然后取整數(shù)部分作為新的序列值,再分別各自重新組成和原始圖像同樣大小的矩陣cx和dy。
步驟三:將步驟二的c,d序列進(jìn)行排序得到{c(i+1)′,c(i+2)′,c(i+3)′,…,c(i+t)′},{d(i+1)′,d(i+2)′,d(i+3)′,…,d(i+t)′},然后計(jì)算出此序列在原x,y序列中的位置信息,記錄坐標(biāo)位置索引序列c′,d′,將原始圖素像素矩陣q各元素按c′索引序列的從左往右順序賦值為1~t的自然數(shù),序列位不夠的元素所在位置為奇數(shù)行置1,偶數(shù)行置t,得到置亂行矩陣px,同理,將原始圖像各元素按d′索引序列的順序賦值為1~t的自然數(shù),序列位不夠的元素所在為奇數(shù)列置1,偶數(shù)列置t,得到置亂列矩陣py.
步驟四:將原始圖像像素矩陣q和步驟得到的cx和dy矩陣,按位相乘處理,即通過式o=q×cx×dy,處理后得到圖像矩陣o。
步驟五:將圖像矩陣o乘以行置亂矩陣px,得到r,將r矩陣看做一個(gè)行向量r′=(u1,u2,u3,…um)進(jìn)行x方向的a階傅里葉變換,得到復(fù)數(shù)矩陣j,然后將j與置亂列矩陣py相乘,得到復(fù)數(shù)矩陣i。將i矩陣看做一個(gè)列向量i′(v1,v2,v3,…vm)進(jìn)行y方向的b階傅里葉變換,得到加密復(fù)數(shù)矩陣。并通過式(2)求出幅度譜和相位譜。
|f(m,n)|=[r2(m,n)+i2(m,n)]1/2(2)
r(m,n)和i(m,n)分別為f(m,n)實(shí)數(shù)部分和虛數(shù)部分。
步驟六:將步驟五得到的加密復(fù)數(shù)矩陣通過下式(3)~(4)逆變換從頻域轉(zhuǎn)換成空間域,然后將得到的矩陣以一維數(shù)組的形式讀取得到序列f={fk|k=0,1,2,3,…,m×m},接著把密鑰x′0,y′0,z′0,r,β,作為量子logistic映射(5)的初始值產(chǎn)生序列g(shù)x,gy,gz。
其中f(m,n)為圖像的灰度分布函數(shù),其里面的m,n為圖像設(shè)定的空間域,f(m,n)為圖像的頻率分布函數(shù),里面的u,v為圖像設(shè)定的頻率域。|f(m,n)|和
量子logistic映射動(dòng)力學(xué)方程如下式(5)。
式中,控制參數(shù)r∈(3.74,4.00),耗散參數(shù)β≥3.5,x′n,y′n,z′n,是該混沌系統(tǒng)的狀態(tài)值,且通常情況下都為復(fù)數(shù),
步驟七:將gx異或gy異或gz,得到序列h={hk|k=0,1,2,3,…,m×m},最后利用混沌bernoulli映射迭代m次(式6)產(chǎn)生序列l(wèi)={lk|k=0,1,2,3,…,m×m},接著將hk,lk和步驟六的得到fk序列通過下式(7)進(jìn)行預(yù)處理,將其都轉(zhuǎn)化為0至255之間的整數(shù)。
bernoulli映射方程式如下:
式中,c為bernoulli映射參數(shù),c∈(1.4,2)時(shí),bernoulli移位映射進(jìn)入混沌狀態(tài)。
令得到最終密文序列為s={sk|k=0,1,2,3,…,m×m},s序列通過線性公式遞推得到(式8)。
sk+1=mod(sk+lk+fk,256)(8)
步驟八:將步驟七的密文序列s重新塑造成二維矩陣,得到最終的加密密文圖像。
上述實(shí)施例為本發(fā)明較佳的實(shí)施方式,但本發(fā)明的實(shí)施方式并不受上述實(shí)施例的限制,其他的任何未背離本發(fā)明的精神實(shí)質(zhì)與原理下所作的改變、修飾、替代、組合、簡化,均應(yīng)為等效的置換方式,都包含在本發(fā)明的保護(hù)范圍之內(nèi)。