• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      動(dòng)態(tài)貓變換和混沌映射的圖像加密算法

      2020-09-04 10:46:28韓雪娟李國東
      關(guān)鍵詞:子塊明文加密算法

      韓雪娟,李國東

      (新疆財(cái)經(jīng)大學(xué) 應(yīng)用數(shù)學(xué)學(xué)院,新疆 烏魯木齊 830012)

      0 引 言

      由于混沌所具有的特性,對于混沌和超混沌在圖像加密技術(shù)中的應(yīng)用越來越受到學(xué)者的關(guān)注,已經(jīng)成為了研究熱點(diǎn)之一[1-6]。數(shù)字圖像加密主要是根據(jù)美國數(shù)學(xué)家香農(nóng)提出的置亂技術(shù)和擴(kuò)散技術(shù),利用置亂方法和擴(kuò)散方法對圖像信息進(jìn)行隱藏。

      Arnold變換的特點(diǎn)如下:算法簡單、置亂效果好,因此被廣泛應(yīng)用到圖像加密方面[7,8]。但是Arnold變換具有周期性的特點(diǎn)限制了它在圖像加密方面的應(yīng)用,怎樣避開它的弊端設(shè)計(jì)出更好的加密算法成為研究的熱點(diǎn)之一。有些學(xué)者在圖像加密方面的文獻(xiàn)中提出了改進(jìn)Arnold變換的加密方法[9,10]。也有許多學(xué)者設(shè)計(jì)了各種不同類型的加密算法,姚麗莎等[11]利用DNA序列和分?jǐn)?shù)階Chen超混沌系統(tǒng)對彩色圖像進(jìn)行加密,DAN加密具有難破解的優(yōu)點(diǎn)。謝國波等[12]利用引入量子混沌的方法,設(shè)計(jì)了一種使用量子混沌實(shí)現(xiàn)比特置亂的圖像加密方案,使算法不會(huì)受混沌參數(shù)少的缺陷的影響。仿真結(jié)果表明,該算法在統(tǒng)計(jì)特性分析、抗攻擊性能上要比常規(guī)算法更勝一籌,但是不足之處在于比特置亂這個(gè)算法本身計(jì)算量較大,導(dǎo)致效率不高。毛頡等[13]根據(jù)引擎值來動(dòng)態(tài)選擇加密密鑰,設(shè)計(jì)了4方向連續(xù)擴(kuò)散的方法,設(shè)計(jì)了一種算法完成圖像加密。Yueping Li等[14]采用5維多翼超混沌系統(tǒng),超混沌系統(tǒng)生成的密鑰流與原始圖像相關(guān)。Rasul Enayatifara等[15]提出了一種同步置換擴(kuò)散技術(shù),該方法快速有效。

      本文設(shè)計(jì)的加密算法在置亂時(shí)融合了分塊置亂和動(dòng)態(tài)Arnold變換,有效避開了Arnold置亂具有周期性易破解的弊端。同時(shí)在擴(kuò)散算法中利用3種不同的混沌映射產(chǎn)生偽隨機(jī)序列,對置亂后的加密圖像進(jìn)行分塊擴(kuò)散和整體擴(kuò)散;在分塊擴(kuò)散時(shí)根據(jù)Logistic映射選取的子塊奇偶性選擇不同的隨機(jī)序列分別進(jìn)行加密,混沌之間相互控制參數(shù),大大增加了密文的安全性。

      1 加密算法的設(shè)計(jì)

      1.1 加密原理

      本文設(shè)計(jì)的加密方案不但增大了解密難度,而且提高了加密信息的安全級別。該算法對明文圖像分別進(jìn)行了兩種不同方式的置亂,第一種是分塊置亂,第二種是Arnold置亂。再運(yùn)用第二種方式置亂時(shí)又對一次置亂后的圖像進(jìn)行了3次動(dòng)態(tài)置亂,避免了Arnold置亂的周期性帶來的影響,破壞了明文圖像之間的聯(lián)系,增加了圖像的置亂程度。得到最終的置亂圖像后,對圖像進(jìn)行了兩次擴(kuò)散,每次擴(kuò)散選擇不同的混沌序列,增強(qiáng)了密文圖像的安全性;同時(shí)混沌序列之間又相互控制參數(shù),增加了密文的破解難度。

      圖像置亂操作:先對圖像進(jìn)行第一次置亂,再利用動(dòng)態(tài)Arnold映射對分塊置亂后的圖像進(jìn)行置亂;圖像的擴(kuò)散部分:迭代處理Tent-Sine映射、Tent映射以及Sine映射產(chǎn)生3個(gè)不同的序列X、Y、Z,迭代處理Logistic映射產(chǎn)生的序列w″選塊。先是用序列X或者Y對置亂后的圖像依次進(jìn)行第一次分塊擴(kuò)散,再用序列Z對一次擴(kuò)散后的加密圖像進(jìn)行第二次整體擴(kuò)散,得到最終加密圖像。經(jīng)過模擬仿真,該方法解決了安全級別不高和易破解的問題。

      1.2 置亂算法的設(shè)計(jì)

      (1)分塊置亂:

      設(shè)明文圖像大小為m*n的灰度圖像E, 將其劃分為大小為t*t的矩陣子塊,共有m/t*n/t個(gè)子塊(t是m,n的公約數(shù)),本文選用的是300*300的灰度圖像。

      將E平均分為25塊60*60的圖像,記為e1,e2,e3,…,e25, 表示如下

      e1=(e11,e12,e13…e1t*t)
      e2=(e21,e22,e23…e2t*t)
      e3=(e31,e32,e33…e3t*t)
      ?
      e25=(e251,e252,e253…e25t*t)

      (1)

      這25個(gè)矩陣子塊進(jìn)行如下方式的分塊置亂

      ei01=ei(i∶25∶t*t)
      ei02=ei(i∶25∶t*t)
      ei03=ei(i∶25∶t*t)
      ?
      ei25=ei(i∶25∶t*t)

      (2)

      置亂后的矩陣子塊記為

      Ei=(ei01,ei02,ei03…ei25)

      (3)

      其中, i=1,2,3…25, 將25個(gè)置亂后的矩陣子塊重新組合成為一個(gè)300*300的大矩陣E′。

      (2)動(dòng)態(tài)Arnold變換:

      Arnold映射的方程為

      (4)

      控制參數(shù)a,b, (x,y) 為明文圖像的像素位置坐標(biāo), (xx,yy) 為置亂后圖像的像素位置坐標(biāo)。Arnold映射將原圖像中的點(diǎn) (x,y) 處的像素值存儲到變換后的點(diǎn) (xx,yy) 處,經(jīng)過變換后明文圖像會(huì)變得模糊,經(jīng)過多次變換后即可得到最終的加密圖像,加密圖像呈現(xiàn)為一幅雜亂無章的圖像,完全看不出明文圖像的信息。

      為了消除Arnold變換周期性對于加密圖像的影響,本文采用一種動(dòng)態(tài)Arnold置亂方式分別進(jìn)行3次Arnold變換。將矩陣E′均勻分成25塊,每塊大小為60×60,如圖1所示。

      圖1 E′分塊

      Arnold第一次置亂:從矩陣E′中選擇矩陣子塊1,2,3,6,7,8,11,12,13組成一個(gè)3*3的矩陣A, 對其進(jìn)行 Arnold 變換。參數(shù): a1=21, b1=1, 迭代次數(shù): n/gcd(m/t,n/t) (gcd(m/t,n/t) 表示m/t,n/t的最大公約數(shù)),通過第一次Arnold變換后得到一個(gè)新的3*3的矩陣A′,如圖2所示。

      圖2 A′分塊

      Arnold第二次置亂:在矩陣A′中選擇矩陣子塊7,8,12,13分別替換E′矩陣中的矩陣子塊7,8,12,13得到新的矩陣EE。 在矩陣EE中選擇矩陣子塊7,8,9,10,12,13,14,15,17,18,19,20,22,23,24,25組成一個(gè)4*4的矩陣B, 對其進(jìn)行Arnold置亂,參數(shù): a2=1,b2=1, 迭代次數(shù): n/gcd(t,t), 通過第二次Arnold變換后得到一個(gè)新的4*4的矩陣B′, 如圖3所示。

      圖3 B′分塊

      Arnold第三次置亂:用第二次Arnold置亂后的矩陣塊B′替換矩陣E′中的相應(yīng)位置得到矩陣大小為60*60的新矩陣EE′, 對其進(jìn)行Arnold置亂,參數(shù): a3=1, b3=21, 迭代次數(shù): n/gcd(m/t,n/t), 通過第三次Arnold變換得到一個(gè)新的5*5的矩陣EE″, 該矩陣即為置亂后的密文矩陣。

      1.3 擴(kuò)散算法的設(shè)計(jì)

      1.3.1 混沌序列的分析

      本文中用到的混沌映射分別為:Tent-Sine映射、Tent映射、Sine映射以及Logistic映射,它們的動(dòng)力學(xué)方程如下所示。

      Tent-Sine映射[10]

      (5)

      Tent映射

      (6)

      Sine映射

      yn+1=μ3*sin(π*yn)/4mod1

      (7)

      Logistic映射

      wn+1=μ4wn(1-wn) w∈[0,1],μ4∈(0,4]

      (8)

      其中,取模是為了保證輸出的數(shù)據(jù)在區(qū)間(0,1)之間,n為迭代次數(shù),μ1,μ2,μ3,μ4為系統(tǒng)控制參數(shù), x0,y0,z0,w0為初始值,當(dāng)μ1∈(0,4),μ2∈(0,2),μ3∈[3.48,4] 時(shí),映射呈現(xiàn)出混沌行為。

      1.3.2 混沌序列的生成

      給定密鑰

      k1=345
      z0=0.3789,μ1=1.1221
      x0=z(1),μ2=2^(s/(m*n*255))
      y0=x(1),μ3=3.496
      w0=y(1),μ4=4

      (9)

      以上公式中s表示的是明文圖像中所有的像素值之和。

      (1)將Tent-Sine映射迭代m*n次,產(chǎn)生如下序列

      z={zj|j=1,2,…,m*n}

      (10)

      從k1+1項(xiàng)開始選取,通過下式對序列進(jìn)行處理

      z1=mod(floor(z*10^5-floor(z*10^5)*10^2),4)

      (11)

      得到序列

      z1={zi|i=1,2,…,q}

      (12)

      再按照下式對序列進(jìn)行處理

      Z=mod(floor(z*10^6-floor(z*10^6)*10^3),256)

      (13)

      得到序列

      Z={Zj|j=1,2,…,m*n}

      (14)

      式中: q=t2, k=k1+q。

      (2)分別迭代k次式(6)、式(7),選擇序列z1中的前q-1項(xiàng)作為采樣間隔,對迭代產(chǎn)生的混沌序列x,y從第k1-1項(xiàng)開始抽樣,再截取它們的前q項(xiàng)按照下式進(jìn)行處理

      X=mod(floor(x*10^6-floor(x*10^6)*10^3),256)

      (15)

      Y=mod(floor(y*10^6-floor(y*10^6)*10^3),256)

      (16)

      得到序列

      X={Xi|i=1,2,…,q}

      (17)

      Y={Yi|i=1,2,…,q}

      (18)

      其中,序列X,Y用于像素的一次擴(kuò)散,序列Z用于像素的二次擴(kuò)散。

      (3)迭代式(8)3*k1次,按照下式對序列進(jìn)行處理

      w=ceil(mod(w*10^13,25))

      (19)

      w′=w(851∶950)

      (20)

      在w′中從第一項(xiàng)開始無重復(fù)的選取[1,25]中的數(shù)字,直到選滿25個(gè)數(shù)字停止,得到序列

      w″={w″1,w″2,…,w″25}

      (21)

      為了判斷序列w″的奇偶性,對序列做如下處理

      w1=mod(w″,2)

      (22)

      得到全為0、1的25個(gè)數(shù)組成的序列w1。

      1.3.3 擴(kuò)散算法的描述

      一次擴(kuò)散過程:將置亂后密文EE″均勻分成25塊大小為60*60的圖像,記為EE″1,EE″2,EE″3,…,EE″25, 表示如下

      EE″1=(EE″11,EE″12,EE″13…EE″1t*t)
      EE″2=(EE″21,EE″22,EE″23…EE″2t*t)
      EE″3=(EE″31,EE″32,EE″33…EE″3t*t)
      ?
      EE″25=(EE″251,EE″252,EE″253…EE″25t*t)

      (23)

      當(dāng)w″i中的數(shù)字是奇數(shù)時(shí)

      ci=e1⊕((X+EE″w ″i)mod256⊕X)

      (24)

      當(dāng)w″i中的數(shù)字是偶數(shù)時(shí)

      ci=e25⊕((Y+EE″w ″i)mod256⊕Y)

      (25)

      其中,e1,e25為明文圖像中的兩個(gè)子塊, i=1,2,3…25。 將經(jīng)過上式處理后的ci合成m*n的大矩陣得到矩陣C, 對它進(jìn)行二次擴(kuò)散

      D=C⊕Z

      (26)

      得到最終加密圖像D。

      2 算法的流程與步驟

      本文加密算法的流程如圖4所示。

      本文加密算法的具體步驟如下:

      (1)首先選擇一幅合適的數(shù)字圖像作為明文圖像,得到明文圖像的數(shù)字矩陣E,明文圖像的大小為300*300;

      (2)將E劃分為大小為60*60的矩陣子塊,得到5*5個(gè)子塊e1,e2,e3,…,e25;

      (3)對e1,e2,e3,…,e25進(jìn)行分塊置亂,將25個(gè)置亂后的矩陣子塊重新組合成為一個(gè)300*300的大矩陣E′;

      (4)對分塊置亂后的密文進(jìn)行動(dòng)態(tài)Arnold置亂,①將矩陣E′均勻分成25塊,選取一個(gè)大小為3*3的矩陣子塊A進(jìn)行Arnold置亂,得到變換后的A′矩陣,再用其替代矩陣E′中的A矩陣,得到一個(gè)新的大小為300*300的矩陣EE。②在矩陣EE中選擇一個(gè)大小為4×4的矩陣子塊B進(jìn)行Arnold置亂,得到變換后的B′矩陣,再用它替換矩陣EE中的B,得到一個(gè)大小為300*300的矩陣EE′。 ③對矩陣EE′進(jìn)行Arnold置亂,得到最終置亂加密矩陣EE″;

      (5)迭代、處理Tent-Sine映射、Tent映射、Sine映射以及Logistic映射,得到混沌序列Z、X、Y、w″;

      (6)對最終置亂后加密矩陣EE″均勻分塊,得到5*5個(gè)大小為60*60的矩陣子塊EE″1,EE″2,EE″3,…,EE″25, 對這些矩陣子塊進(jìn)行第一次擴(kuò)散加密,將一次擴(kuò)散后加密矩陣合并成300*300的矩陣C;

      (7)對分塊擴(kuò)散后的加密圖像進(jìn)行第二次整體圖像的擴(kuò)散加密過程,得到的擴(kuò)散后的圖像即為最終的加密圖像D;

      (8)密文圖像的解密過程也就是圖像加密過程的逆過程。用下式替代式(24)和式(25)

      EE″w ″i=mod(ci⊕e1⊕X+256-X,256)

      (27)

      EE″w ″i=mod(ci⊕e25⊕Y+256-Y,256)

      (28)

      圖4 加密算法流程

      3 仿真實(shí)驗(yàn)

      Lena圖像實(shí)驗(yàn)仿真效果如圖5所示。利用本文設(shè)計(jì)的加密算法對圖5(a)進(jìn)行加密,分塊置亂后得到第一次置亂密文圖5(b),從圖中可以看出圖像呈現(xiàn)出縱向的明暗分塊;再對一次置亂后的圖像進(jìn)行動(dòng)態(tài)Arnold置亂,得到最終的置亂加密圖5(c)。對圖5(c)進(jìn)行兩次擴(kuò)散得到最終加密圖5(d)。從圖5可以看出:經(jīng)過加密過程后,從最終的密文圖像中已看不出明文圖像的輪廓,最終的加密圖像變成一副密密麻麻的黑白點(diǎn)相雜的圖像,可見達(dá)到了加密的目的。

      圖5 加密效果

      4 算法統(tǒng)計(jì)特性分析

      4.1 直方圖分析

      直方圖分析結(jié)果如圖6所示。根據(jù)直方圖理論可知:當(dāng)每個(gè)灰度級出現(xiàn)的次數(shù)越接近,即直方圖越平穩(wěn)時(shí),也就說明密文圖像的安全性就越高。由圖6可知,明文和密文圖像直方圖相差很大,圖6(a)能量分布不均勻,加密后的直方圖6(b)比較平滑、像素的能量分布是均勻的,說明密文圖像較穩(wěn)定。

      圖6 明密文圖像直方圖分析

      4.2 算法密鑰的空間和敏感性分析

      本文設(shè)計(jì)的加密算法中,通過利用4種不同的混沌系統(tǒng)相互控制參數(shù),在很大程度上增加了解密的難度;同時(shí)多種混沌映射的初值和參數(shù)一同作為密鑰,使得密鑰空間至少達(dá)到10240,因此算法能夠有效抵抗窮舉攻擊。

      在密鑰敏感性的分析中,為了確定密鑰是否具有敏感性將Tent映射的密鑰Key減少1013,解密后無法得到正確的明文圖像,如圖7所示??梢灾辣疚脑O(shè)計(jì)的算法具有很強(qiáng)的敏感性,即使使用與正確密鑰相差很小的密鑰進(jìn)行解密,得到的仍是與原圖不一樣的錯(cuò)誤解密圖。

      圖7 不正確的解密圖像

      4.3 抗差分攻擊能力分析

      根據(jù)NPCR(像素改變率)、UACI(歸一化平均改變強(qiáng)度)的定義,如文獻(xiàn)[16]所描述的。D1表示密文,D2為明文圖像像素值發(fā)生改變時(shí)的密文,公式如下所示

      (29)

      (30)

      任意取明文圖像中的坐標(biāo)(1,159),將它改為(11,159),得到NPCR和UACI值見表1。

      表1 NPCR與UACI/%

      從表1可以得出如下結(jié)論:本文設(shè)計(jì)的加密算法得到的NPCR和UACI值分別為99.63%和33.47%,其值更加接近于NPCR和UACI的理想值99.6094%和33.4635%;并且在與文獻(xiàn)[4]和文獻(xiàn)[13]進(jìn)行對比后,發(fā)現(xiàn)本文具有更強(qiáng)的抗差分攻擊能力。

      4.4 算法信息熵分析

      因?yàn)樾畔㈧厥菆D像信息不確定性的體現(xiàn),所以如果信息熵較大,那么可視信息就會(huì)比較少;反之如果信息熵較小,那么可視信息就會(huì)較多;信息熵的理想值為8。計(jì)算公式如下所示

      (31)

      本文的加密算法計(jì)算的信息熵是7.9980,而文獻(xiàn)[4]和文獻(xiàn)[13]得到的信息熵分別為7.9967和7.9417,本文的信息熵明顯高于文獻(xiàn)中的信息熵,而且更加接近于理想值8,因此該算法能夠很好抗統(tǒng)計(jì)攻擊性。

      4.5 相關(guān)性分析

      根據(jù)相關(guān)系數(shù)r的定義,在明密文圖像中任意選擇N對像素值,分別計(jì)算明密文圖像水平、垂直和對角方向上的相關(guān)系數(shù)r,驗(yàn)證明文圖像和密文圖像相鄰像素之間的相關(guān)性,相關(guān)系數(shù)計(jì)算公式如下

      (32)

      (33)

      (34)

      (35)

      如果 (xi,yi) 是ui的坐標(biāo),那么當(dāng) (xi+1,yi)、 (xi,yi+1)、 (xi+1,yi+1)、 (xi-1,yi+1) 均是vi的坐標(biāo)時(shí),最終得到的相關(guān)系數(shù)值就分別是水平方向上的相關(guān)系數(shù)、垂直方向上的相關(guān)系數(shù)、正對角上的相關(guān)系數(shù)以及反對角上的相關(guān)系數(shù)。明文圖像與密文圖像的相關(guān)性散點(diǎn)如圖8所示,相關(guān)系數(shù)見表2。

      圖8 明文圖像與密文圖像的相關(guān)性

      表2 相關(guān)系數(shù)值

      由圖8可以得出如下結(jié)論:明文圖像的散點(diǎn)圖無論在水平方向、垂直方向,還是對角方向上都基本呈一條直線,具有明顯的線性關(guān)系;而密文圖像的散點(diǎn)圖雜亂無章,呈現(xiàn)出散亂的點(diǎn),在各個(gè)方向上沒有變現(xiàn)出存在任何關(guān)系。從表2看出:明文圖像的相關(guān)系數(shù)都超過0.95和1很相近,說明具有很強(qiáng)的相關(guān)性;而密文圖像的相關(guān)系數(shù)都小于0.005接近于零,可以說不存在相關(guān)性。從與文獻(xiàn)比較的結(jié)果可以發(fā)現(xiàn)本文計(jì)算的相關(guān)系數(shù)均小于文獻(xiàn)中的相關(guān)系數(shù),說明本文設(shè)計(jì)的加密算法打亂了原始圖像中相鄰像素點(diǎn)之間的相關(guān)性,加密的效果比較好。

      5 結(jié)束語

      本文設(shè)計(jì)的加密算法是通過軟件Matlab 2017進(jìn)行實(shí)驗(yàn)的,在Windows 8操作系統(tǒng)中進(jìn)行。本文設(shè)計(jì)的算法對圖像進(jìn)行了兩次置亂操作以及兩次擴(kuò)散操作,置亂算法:第一次是分塊置亂,對5*5個(gè)子塊進(jìn)行置亂;第二次是在第一次分塊置亂的基礎(chǔ)上進(jìn)行動(dòng)態(tài)Aronld變換(對第一次置亂后的圖像進(jìn)行三次Arnold置亂),最終得到置亂后的加密圖像。擴(kuò)散算法:迭代處理Tent-Sine映射、Tent映射、Sine映射以及Logistic映射分別產(chǎn)生混沌序列Z、X、Y、w″,對最終置亂后的密文圖像進(jìn)行擴(kuò)散操作。序列Z用于第二次整體擴(kuò)散,序列X、Y用于第一次分塊擴(kuò)散,經(jīng)過兩次擴(kuò)散后得到最終加密圖像。

      實(shí)驗(yàn)結(jié)果表明:本文設(shè)計(jì)的加密算法通過混沌系統(tǒng)之間相互控制參數(shù)增大了算法的密鑰空間,解決了密文圖像容易被破解,導(dǎo)致密文信息安全性不夠高的問題;同時(shí)經(jīng)過實(shí)驗(yàn)仿真發(fā)現(xiàn)密鑰具有很強(qiáng)的敏感性;因此該算法具有較好的加密效果,可以應(yīng)用于圖像加密中。

      猜你喜歡
      子塊明文加密算法
      基于八叉樹的地震數(shù)據(jù)多級緩存方法
      基于八叉樹的地震數(shù)據(jù)分布式存儲方法研究
      基于特征值算法的圖像Copy-Move篡改的被動(dòng)取證方案
      基于波浪式矩陣置換的稀疏度均衡分塊壓縮感知算法
      奇怪的處罰
      奇怪的處罰
      基于小波變換和混沌映射的圖像加密算法
      四部委明文反對垃圾焚燒低價(jià)競爭
      Hill加密算法的改進(jìn)
      水富县| 区。| 光山县| 米易县| 安阳县| 吉安县| 中山市| 古田县| 延川县| 长治市| 措勤县| 琼结县| 山阳县| 宜宾县| 宁陵县| 昌吉市| 定边县| 光山县| 二连浩特市| 靖江市| 新邵县| 达孜县| 锦州市| 贺兰县| 龙江县| 吐鲁番市| 时尚| 奉化市| 彰化市| 蒙城县| 葵青区| 盐亭县| 黄龙县| 柯坪县| 大名县| 车险| 于都县| 砚山县| 凉城县| 固始县| 常熟市|