国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      基于dna動態(tài)編碼的彩色圖像加密方法_3

      文檔序號:9327244閱讀:來源:國知局
      (r 1}P2(i,j)表示前一個加密的DNA編碼 值,
      [0098] 若r = 1,則表示前一個像素點(diǎn)中最后一個DNA編碼的加密值,且RqP2Q, 1) = 0。
      [0099] 實(shí)施例三,參見圖2~4所示,采用的編程軟件為Matlab R2014a,選取大小為 256X256的Iena彩色圖像為實(shí)驗(yàn)對象,對Iena彩色圖像加密的過程如下:
      [0100] 步驟L輸入原始大小為256 X 256的Iena彩色圖像,用P1= imread(' lena. bmp') 讀取圖像信息,分離彩色圖像P1的R、G、B三基色分量得到分量矩陣P ^Rmn,P^Gmn,P^Bmn,且 每個分量矩陣的大小為256 X 256,接著將圖像三個分量矩陣P i_RMN,Pi_GMN,P^Bmn按行 排序得到一個大小為256X768的灰度圖像P 2。
      [0101] 步驟2.利用SHA256函數(shù)對明文彩色圖像?1進(jìn)行計(jì)算,得到一組256位的哈希值 并將它作為圖像密鑰Key,然后將256位的Key換算為32個十進(jìn)制數(shù),接下來將其平均分為 四組,分別用來計(jì)算在置亂和擴(kuò)散過程中所用CML混沌系統(tǒng)的初始狀態(tài)值和參數(shù)的具體步 驟如下:
      [0102] 本文采用LTS作為親合映像格子模型的局部映射,LTS (Logistic Tent System)映 射是結(jié)合Logistic映射和Tent映射產(chǎn)生的,定義如下:
      [0103] 2. I. CML 混沌系統(tǒng):
      [0105] 本文中產(chǎn)生的混純序列是根據(jù)親合映像格子(Coupled map lattices, CML)模型 產(chǎn)生的,耦合映像格子是一種混沌系統(tǒng)模型,本算法中用CML混沌系統(tǒng)模型來生成混沌序 列,其表達(dá)式為:
      [0108] 式中:η = 1,2,...,η為時(shí)間索引或狀態(tài)索引,i,j,k為映像格子的位置索引, g為CML模型中第i個格子在時(shí)空η的狀態(tài)值,且〇< < <丨,1彡j彡L,1彡k彡L,i = 1,2, · · ·,L,L為CML混沌系統(tǒng)中的耦合映像格子數(shù),p,q,ε e [0, 1],q e [0, 1]為CML模 型的參數(shù)值,其中 L = 8,ε = 〇· 5,η = 〇· 9, p = 12, q = 9。
      [0109] 2. 2.利用SHA256函數(shù)對明文彩色圖像?1進(jìn)行計(jì)算,得到一組256位的哈希 值[780edeal23d2ae372b5ebea72781e84e93564dc0b5ebe0nb9e0f8717d72d681],并將它 作為圖像的密鑰Key,然后將256位的Key換算為32個十進(jìn)制數(shù),定義為k k2, ...,k32, 其值為[120 14 222 161 35 210 174 55 43 94 190 167 39 129 232 78 147 86 77 192 181 235 224 241 185224 248 113 125 114 214 129],接下來將其平均分為四組, 即 ,ks[120 14 222 161 35 210174 55]也,',···,k16[43 94 190 167 39 129 232 78] ;k17,kls,...,k24[147 86 77 192 181 235 224241] ;k25,k26,...,k32[185 224 248 113 125 114 214 129]。
      [0110] 2. 3.利用Ic1, k2,. . .,kjP k9, k1Q,. . .,k16通過公式(4)計(jì)算用于置亂過程中的CML 混沌系統(tǒng)的8個初始狀態(tài)值4和8個參數(shù)值r1。
      [0112] 其中4為耦合映像格子的狀態(tài)值,且〇<4<1; r1為LTS映射的控制參數(shù),且0 < r'< 4〇
      [0113] 本文計(jì)算得到的用于置亂過程中的CML混沌系統(tǒng)的8個初始狀態(tài)值%和8個參數(shù) 值r1分別為:
      [0118] 2. 4.利用k1Q, kn,…,k24和k 25, k26,…,k32通過公式(5)計(jì)算用于擴(kuò)散過程中的 CML混沌系統(tǒng)的8個初始狀態(tài)值#和8個參數(shù)值r1。
      (5)
      [0120] 其中4為耦合映像格子的狀態(tài)值,且0<·4 CU r1為LTS映射的控制參數(shù),且0 < r'< 4〇
      [0121] 本文計(jì)算得到的用于擴(kuò)散過程中的CML混沌系統(tǒng)的8個初始狀態(tài)值勾和8個參數(shù) 值r1分別為:
      [0126] 步驟3.將計(jì)算得到的用于置亂過程中的CML混沌系統(tǒng)的初始狀態(tài)值和參數(shù)值帶 入CML混沌系統(tǒng)中進(jìn)行迭代,累計(jì)可得到一個大小為256X768的狀態(tài)值矩陣W1,并對矩陣 Wl按行排序,可以得到一個大小同樣為256 X 768的置亂矩陣K的步驟如下:
      [0127] 3. 1.將步驟2. 3中得到的用于置亂過程中的CML混沌系統(tǒng)的8個狀態(tài)值<和8個 參數(shù)值r1帶入公式(1)-(3)中迭代(N Q+24576)次,其中N。= 1146,為了避免有害影響,舍 棄前N。個數(shù)值,累計(jì)可以得到一個大小為256 X 768的狀態(tài)值矩陣Wl。
      [0128] 3. 2.將得到的狀態(tài)值矩陣Wl按照公式(6)按行排序,得到一個大小為256X768 的置亂矩陣K。
      [0130] 其中sort (W1,2)表示將矩陣Wl中每一行的元素按照從小到大的順序進(jìn)行排列, ignore表示經(jīng)過排列之后的矩陣,K表示的是經(jīng)過排序后的元素在原數(shù)組中對應(yīng)的位置索 引矩陣。
      [0133] 步驟4.將計(jì)算得到的用于擴(kuò)散過程中的CML混沌系統(tǒng)的初始狀態(tài)值和參數(shù)帶入 CML混沌系統(tǒng)中進(jìn)行迭代,累計(jì)可得到一個大小為256 X 768的狀態(tài)值矩陣W2,然后將W2中 每行以8個狀態(tài)值為一組,分別對每個狀態(tài)值建立索引值的步驟如下:
      [0134] 4. 1.將步驟2. 4中得到的用于擴(kuò)散過程中的CML混沌系統(tǒng)的8個狀態(tài)值<和8個 參數(shù)值r1帶入公式(1)-(3)中迭代NJ24576次,其中N。= 1146,為了避免有害影響,舍棄 前N。個數(shù)值,累計(jì)可以得到一個大小為256 X 768的狀態(tài)值矩陣W2。
      [0135] 4. 2.在得到的狀態(tài)矩陣W2中,每行以8個狀態(tài)值為一組,通過公式(7)分別對每 組狀態(tài)值建立索引,即最大值處的索引值為1,次大值處的索引值為2,以此類推,最小值處 的索引值為8。這樣對于W2中的每一個元素都有一個唯一的索引值與其相對應(yīng),我們記 Ind(i,j)表示矩陣W2中第i行第j列元素對應(yīng)的索引值,且1彡i彡256,1彡j彡768。
      [0137] 其中sort (X,' descend')表示將X中的元素按照降序進(jìn)行排列,X為一個由8個 狀態(tài)值構(gòu)成的數(shù)組,ignore表示經(jīng)過排列之后的矩陣,Indl表示的是經(jīng)過排序后的元素在 原數(shù)組中對應(yīng)的位置索引矩陣,sort(Indl)表示將Indl中的元素按照從小到大的順序進(jìn) 行排序,Ind表示對Indl排序后,其元素在原Indl中的位置索引矩陣。例如:對于一個矩 陣
      [0139] 們將第一行中所有元素按照每8個為一組進(jìn)行分組,可以得到兩組,記做A11= [64 2 3 6160 6 7 57],A12= [9 55 54 12 13 51 50 16],接下來分別對A11 和A12按照公式(7) 求得的索引值為:A11 = Ind= [1 8 7 2 3 6 5] ;A12:Ind= [8 1 2 7 6 3 4]??梢钥闯?A η 中64對應(yīng)的索引值為1,2對應(yīng)的索引值為8,3對應(yīng)的索引值為7,61對應(yīng)的索引值為2,60 對應(yīng)的索引值為3,6對應(yīng)的索引值為6, 7對應(yīng)的索引值為5, 57對應(yīng)的索引值為4。同理, A12中9對應(yīng)的索引值為8, 55對應(yīng)的索引值為1,54對應(yīng)的索引值為2,12對應(yīng)的索引值為 7,13對應(yīng)的索引值為6, 51對應(yīng)的索引值為3, 50對應(yīng)的索引值為4,16對應(yīng)的索引值為5。 至此,矩陣A的索引矩陣Ind的第一行Ind(l,:)= [1 872365812763 4],相 應(yīng)地,第二行和第三行的索引值分別為Ind(2, :)= [4 5 6 3 2 7 8 1 4 5 3 2 7 8 6]和 Ind(3, :)= [5 43 6 7 2 1 8 8 3 5 6 2 7 4 1],最終可獲得任意第i行第j列元素的索 引值 Ind(i, j)。
      [0140] 步驟5.將得到的矩陣W2轉(zhuǎn)化為整數(shù)矩陣Y,保證其值在[0, 255]之間,并將矩陣 Y按照步驟4中求得的索引值轉(zhuǎn)換為對應(yīng)的DNA矩陣的步驟如下:
      [0141] 5. 1.將得到的矩陣W2按照公式(8)轉(zhuǎn)化為整數(shù)矩陣Y,保證其值在[0, 255]之間。
      [0142] Y(i, j) = mod((W2(i, j)-floor (W2 (i, j)))*10'8, 256) (8)
      [0143] 式中mod(a, b)表示a對b的取模運(yùn)算;floor(x)表示不超過x的最大整數(shù); Y(i,j)表示得到的整數(shù)矩陣Y的第i行第j列的元素值,其中1彡i彡256,1彡j彡768。
      [0144] 5. 2. DNA 加密規(guī)則
      [0145] 5. 2. I. DNA 編碼方案
      [0146] 單鏈DNA序列由四種堿基A、C、G、T組成,其中A與T、C與G互補(bǔ),用00、01、10、11 分別對DNA序列中的四個堿基進(jìn)行二進(jìn)制編碼,共有24種編碼組合。由于二進(jìn)制數(shù)字0與 1互補(bǔ),從而00與11互補(bǔ),01與10互補(bǔ),故在24種數(shù)字編碼中,有8種編碼滿足堿基互補(bǔ) 配對準(zhǔn)則,見表1。正如數(shù)學(xué)運(yùn)算那樣,我們可以定義多種DNA運(yùn)算規(guī)則,方便在加密算法中 直接使用DNA編碼值進(jìn)行數(shù)學(xué)或邏輯運(yùn)算。
      [0147] 表1 DNA編碼的8種方案
      [0148]
      [0149] 5· 2· 2. DNA的加(減)法運(yùn)算
      [0150] DNA加(減)法運(yùn)算定義為:將兩個DNA編碼值按照固定的DNA編碼規(guī)則轉(zhuǎn)換為 對應(yīng)的二進(jìn)制值進(jìn)行相加(減),再按照之前所使用的DNA編碼規(guī)則將相加(減)得到的二 進(jìn)制值轉(zhuǎn)換為DNA編碼值,見表2、表3。
      [0151] 表2 DNA編碼方案為1時(shí)的加法規(guī)則
      [0152]
      [0153] 表3 DNA編碼方案為3時(shí)的減法規(guī)則
      [0154]
      [0155] 5. 2. 3. DNA的異或運(yùn)算
      [0156] 參考DNA加(減)法規(guī)則,則DNA異或運(yùn)算定義為:將兩個DNA編碼值按照固定的 DNA編碼規(guī)則轉(zhuǎn)換為對應(yīng)的二進(jìn)制值進(jìn)行異或,再按照之前所使用的DNA編碼規(guī)則將異或 得到的二進(jìn)制值轉(zhuǎn)換為DNA編碼值,見表4。
      [0157] 表4 DNA編碼方案為5時(shí)的異或規(guī)則
      [0158]
      [0159] 例:若明文圖像其中一個像素值是75 [01001011],用第1種DNA編碼規(guī)則來進(jìn)行 編碼得到的DNA序列為[GACT],經(jīng)過DNA加密運(yùn)算得到加密后的DNA序列為[TCAA],然后 將DNA序列[TCAA]用第1種解碼規(guī)則進(jìn)行解碼得到的二進(jìn)制像素值序列[11100000],轉(zhuǎn)換 為十進(jìn)制數(shù)為224。
      [0160] 5. 3.將矩陣Y中的每個元素按照步驟4中對應(yīng)的索引值轉(zhuǎn)換為相應(yīng)的DNA矩陣, 即對于任意的Y (i,j)按照第Ind (i,j)種編碼方案轉(zhuǎn)換為相應(yīng)的DNA序列,并且將DNA序列 的第 r 個元素記為 DNAr (Y (i,j)),DNAr (Y (i,j)) e {A,T,G,C},r = 1,2, 3, 4 且 1 彡 i 彡 256, I < j < 768。步驟6.利用步驟3中求得的置亂矩陣K的第i行對圖像P2的第i行進(jìn)行 置亂。
      [0161] 步驟7.將明文圖像P2中已完成置亂的第
      當(dāng)前第3頁1 2 3 4 5 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1