一種基于一維元胞自動(dòng)機(jī)的灰度圖像置亂方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種基于一維元胞自動(dòng)機(jī)的灰度圖像置亂方法,屬于信息安全領(lǐng)域中 的圖像保密技術(shù)。
【背景技術(shù)】
[0002] 數(shù)字圖像置亂是指將圖像攪亂,消除位置或灰度相關(guān)性,從而使人類或計(jì)算機(jī)系 統(tǒng)無法理解原始圖像所表達(dá)的真實(shí)含義。數(shù)字圖像的置亂技術(shù),可以看做數(shù)字圖像加密的 一種途徑,也可以用作數(shù)字圖像隱藏、數(shù)字水印圖像植入和數(shù)字圖像秘密共享的預(yù)處理和 后處理過程。
[0003] 常見的圖像置亂方法有Arnold變換、Fibonacci-Q變換、幻方變換、騎士巡游變 換、Hilbert曲線、混沌排序方法等。其中,混沌排序的圖像置亂方法是先利用混沌映射產(chǎn) 生偽隨機(jī)序列,然后對產(chǎn)生的偽隨機(jī)序列進(jìn)行排序得到置換地址集合,最后利用置換地址 集合完成圖像的置亂。然而,基于混沌的排序方法通常需要實(shí)值運(yùn)算,因此效率不高。
【發(fā)明內(nèi)容】
[0004] 發(fā)明目的:本發(fā)明提供一種基于一維元胞自動(dòng)機(jī)的灰度圖像置亂方法,與基于混 沌排序的圖像置亂方法相比,一維元胞自動(dòng)機(jī)由于只需要進(jìn)行布爾運(yùn)算和整數(shù)運(yùn)算,并且 元胞自動(dòng)機(jī)的并行運(yùn)算的特點(diǎn)使得在軟硬件實(shí)現(xiàn)上更為簡單和高效。
[0005] 技術(shù)方案:一種基于一維元胞自動(dòng)機(jī)的灰度圖像置亂方法,具體實(shí)施步驟如下:
[0006] 步驟1 :提取明文灰度圖像的二維像素矩陣IMXN,M是圖像的寬度,N是圖 像的高度,均以像素計(jì);將明文灰度圖像的二維像素矩陣Imxn轉(zhuǎn)換為一維像素序列 Pi,P2,· · ·,Pmxn;
[0007] 步驟2 :令一維元胞自動(dòng)機(jī)的長度為256個(gè)元胞,該一維元胞自動(dòng)機(jī)的演化規(guī)則如 下:
[0009] 式中,f( ·)為布爾函數(shù),.s丨為第i個(gè)元胞在t時(shí)刻的狀態(tài),i的取值為1-256, 為第i-Ι個(gè)元胞在t時(shí)刻的狀態(tài),為第i-2個(gè)元胞在t時(shí)刻的狀態(tài),4+1為第i+Ι個(gè)元 胞在t時(shí)刻的狀態(tài),:為第i+2個(gè)元胞在t時(shí)刻的狀態(tài),Sf1為第i個(gè)元胞在t+Ι時(shí)刻的 狀態(tài),所述狀態(tài)的取值為〇或1 是異或運(yùn)算符,?是與運(yùn)算符,-是非運(yùn)算符;元胞的邊 界米用周期型,即~二 S256 ??? 二 S255,S257 = Λ\,tl?258 =心;
[0010] 步驟3,設(shè)置密鑰K,密鑰K為256比特的二進(jìn)制序列...,k256;同時(shí),設(shè)置需 要產(chǎn)生的偽隨機(jī)序列R的長度為L比特,L = 8XMXN ;
[0011] 步驟4,將密鑰K作為一維元胞自動(dòng)機(jī)在t = 0時(shí)刻的全局狀態(tài)., 一維元胞自動(dòng)機(jī)根據(jù)步驟2中的演化規(guī)則向前迭代,依次產(chǎn)生不同t時(shí)刻的全局狀態(tài) 5(?...,士6 ;取被4除余1的時(shí)刻的全局狀態(tài)作為二進(jìn)制序列輸出,當(dāng)輸出的二進(jìn)制序列 長度大于或等于L比特時(shí),一維元胞自動(dòng)機(jī)停止迭代;
[0012] 步驟5,若步驟4中一維元胞自動(dòng)機(jī)輸出的二進(jìn)制序列長度等于L比特,則將該二 進(jìn)制序列直接作為偽隨機(jī)序列R輸出;若一維元胞自動(dòng)機(jī)輸出的二進(jìn)制序列長度大于L比 特,則將長度L之后的比特舍去后的二進(jìn)制序列作為偽隨機(jī)序列R輸出;從而完成偽隨機(jī)序 列R的生成。
[0013] 步驟6,將偽隨機(jī)序列R中每8位二進(jìn)制轉(zhuǎn)換成相應(yīng)的十進(jìn)制數(shù),得到一個(gè)長度為 MXN的偽隨機(jī)序列Xl,x2, ...,Xmxn,然后通過排序變換,將偽隨機(jī)序列Xl,x2, ...,Xmxn中的 MXN個(gè)值由小到大排序,形成有序序列?,...,,記錄偽隨機(jī)序列中每個(gè)11在有序序 列中的位置編號h,從而形成置換地址集合T = It1, t2,. . .,tMXN};
[0014] 步驟7,根據(jù)置換地址集合T = 對明文灰度圖像的一維像素 序列Pi,P2,. . .,PmxN?行置換,即將第i個(gè)像素 P i置換到t i位置,i = 1,2,. . .,MXN ; 置換完成后,得到置換過后的一維像素序列P' dP' 2,...,P' MXN,將一維像素序列 p' i,p' 2,...,p' MXN轉(zhuǎn)換為二維像素矩陣,即得到了置亂后的密文圖像。
[0015] 本發(fā)明采用以上技術(shù)方案與現(xiàn)有技術(shù)相比,具有以下技術(shù)效果:
[0016] 本發(fā)明與基于混沌排序的圖像置亂方法相比,基于一維元胞自動(dòng)機(jī)的圖像置亂方 法由于只需要進(jìn)行布爾運(yùn)算和整數(shù)運(yùn)算,并且元胞自動(dòng)機(jī)的并行運(yùn)算的特點(diǎn)使得在軟硬件 實(shí)現(xiàn)上更為簡單和高效。
【附圖說明】
[0017] 圖1是明文圖像;
[0018] 圖2是置亂過后的密文圖像。
【具體實(shí)施方式】
[0019] 下面結(jié)合具體實(shí)施例,進(jìn)一步闡明本發(fā)明,應(yīng)理解這些實(shí)施例僅用于說明本發(fā)明 而不用于限制本發(fā)明的范圍,在閱讀了本發(fā)明之后,本領(lǐng)域技術(shù)人員對本發(fā)明的各種等價(jià) 形式的修改均落于本申請所附權(quán)利要求所限定的范圍。
[0020] 在本發(fā)明一種基于一維元胞自動(dòng)機(jī)的灰度圖像置亂方法的一個(gè)實(shí)施例中,明文圖 像選用大小為256X256的灰度圖像,灰度圖像的每一個(gè)像素由8比特組成,如圖1所示。依 據(jù)本發(fā)明的技術(shù)方案,按照以下步驟進(jìn)行。
[0021] 步驟1 :提取明文灰度圖像的二維像素矩陣I256x256,圖像的寬度為256個(gè)像素, 圖像的高度為256個(gè)像素;將明文灰度圖像的二維像素矩陣I256x256轉(zhuǎn)換為一維像素序列 Pi,P2,· · ·,P65536;
[0022] 步驟2 :令一維元胞自動(dòng)機(jī)的長度為256個(gè)元胞,該一維元胞自動(dòng)機(jī)的演化規(guī)則如 下:
[0024] 式中,f(·)為布爾函數(shù),丨為第i個(gè)元胞在t時(shí)刻的狀態(tài),i的取值為1-256, .1C1 為第i_l個(gè)元胞在t時(shí)刻的狀態(tài),I2為第i-2個(gè)元胞在t時(shí)刻的狀態(tài),為第i+1個(gè)元胞 在t時(shí)刻的狀態(tài),感2為第i+2個(gè)元胞在t時(shí)刻的狀態(tài),4+?為第i個(gè)元胞在t+Ι時(shí)刻的狀 態(tài),所述狀態(tài)的取值為〇或1 是異或運(yùn)算符,?是與運(yùn)算符,-是非運(yùn)算符;元胞的邊界 采用周期型,即
[0025] 步驟3,設(shè)置密鑰K,密鑰K為256比特的二進(jìn)制序列1^土3, . . .,k256;同時(shí),設(shè)置需 要產(chǎn)生的偽隨機(jī)序列R的長度為L = 524288比特;
[0026] 步驟4,將密鑰K作為一維元胞自動(dòng)機(jī)在t = 0時(shí)刻的全局狀態(tài).:·,*4?,: 一維元胞自動(dòng)機(jī)根據(jù)步驟2中的演化規(guī)則向前迭代,依次產(chǎn)生不同t時(shí)刻的全局狀態(tài) ;取被4除余1的時(shí)刻的全局狀態(tài)作為二進(jìn)制序列輸出,當(dāng)輸出的二進(jìn)制序列 長度大于或等于L比特時(shí),一維元胞自動(dòng)機(jī)停止迭代;
[0027] 步驟5,若步驟4中一維元胞自動(dòng)機(jī)輸出的二進(jìn)制序列長度等于L比特,則將該二 進(jìn)制序列直接作為偽隨機(jī)序列R輸出;若一維元胞自動(dòng)機(jī)輸出的二進(jìn)制序列長度大于L比 特,則將長度L之后的比特舍去后的二進(jìn)制序列作為偽隨機(jī)序列R輸出;從而完成偽隨機(jī)序 列R的生成。
[0028] 步驟6,將偽隨機(jī)序列R中每8位二進(jìn)制轉(zhuǎn)換成相應(yīng)的十進(jìn)制數(shù),得到一個(gè)長度為 65536的偽隨機(jī)序列Xl,x2,. . .,X65536,然后通過排序變換,將偽隨機(jī)序列Xl,x2,. . .,%5536中 的65536個(gè)值由小到大排序,形成有序序列?,.,.,.?,記錄偽隨機(jī)序列中每個(gè)X1在有序 序列中的位置編號h,從而形成置換地址集合T = It1, 七2, · · ·,;
[0029] 步驟7,根據(jù)置換地址集合T= {Λ,?2,...,?65536}對明文灰度圖像的一維像素 序列Pi,p2,. . .,Pks36進(jìn)行置換,即將第i個(gè)像素 P i置換到t i位置,i = 1,2,. . .,65536 ; 置換完成后,得到置換過后的一維像素序列P' dP' 2,...,P' 65536,將一維像素序列 P' 2,...,P< 65536轉(zhuǎn)換為二維像素矩陣,即得到了置亂后的密文圖像,如圖2所示。
【主權(quán)項(xiàng)】
1. 一種基于一維元胞自動(dòng)機(jī)的灰度圖像置亂方法,其特征在于,所述方法包括以下處 理步驟: 步驟1:提取明文灰度圖像的二維像素矩陣IMXN,M是圖像的寬度,N是圖像的高度,均 以像素計(jì);將明文灰度圖像的二維像素矩陣Imxn轉(zhuǎn)換為一維像素序列Pi,P2, ...,Pmxn; 步驟2:令一維元胞自動(dòng)機(jī)的長度為256個(gè)元胞,該一維元胞自動(dòng)機(jī)的演化規(guī)則如下:步驟3,設(shè)置密鑰K,密鑰K為256比特的二進(jìn)制序列kik2k3,. . .,k256;同時(shí),設(shè)置需要產(chǎn) 生的偽隨機(jī)序列R的長度為L= 8XMXN比特; 步驟4,將密鑰K作為一維元胞自動(dòng)機(jī)在t=O時(shí)刻的全局狀態(tài)矸g56,一維元胞 自動(dòng)機(jī)根據(jù)步驟2中的演化規(guī)則向前迭代,依次產(chǎn)生不同t時(shí)刻的全局狀態(tài);取 被4除余1的時(shí)刻的全局狀態(tài)作為二進(jìn)制序列輸出,當(dāng)輸出的二進(jìn)制序列長度大于或等于L比特時(shí),一維元胞自動(dòng)機(jī)停止迭代; 步驟5,若步驟4中一維元胞自動(dòng)機(jī)輸出的二進(jìn)制序列長度等于L比特,則將該二進(jìn)制 序列直接作為偽隨機(jī)序列R輸出;若一維元胞自動(dòng)機(jī)輸出的二進(jìn)制序列長度大于L比特,則 將長度L之后的比特舍去后的二進(jìn)制序列作為偽隨機(jī)序列R輸出;從而完成偽隨機(jī)序列R 的生成。 步驟6,將偽隨機(jī)序列R中每8位二進(jìn)制轉(zhuǎn)換成相應(yīng)的十進(jìn)制數(shù),得到一個(gè)長度為MXN的偽隨機(jī)序列X1,x2, ...,Xmxn,然后通過排序變換,將偽隨機(jī)序列Xl,x2, ...,Xmxn中的MXN 個(gè)值由小到大排序,形成有序序列1又....,V:;,記錄偽隨機(jī)序列中每個(gè)X1在有序序列 中的位置編號L,從而形成置換地址集合T=It1,t2,. . .,tMXN}; 步驟7,根據(jù)置換地址集合T= 對明文灰度圖像的一維像素序 列PuP2,...,pMXN進(jìn)行置換,即將第i個(gè)像素p;置換到t;位置,i= 1,2,...,MXN; 置換完成后,得到置換過后的一維像素序列P'dP' 2,...,P' MXN,將一維像素序列 p'i,p' 2,...,p'MXN轉(zhuǎn)換為二維像素矩陣,即得到了置亂后的密文圖像。
【專利摘要】本發(fā)明公開了一種基于一維元胞自動(dòng)機(jī)的灰度圖像置亂方法,該方法首先提取明文灰度圖像的像素矩陣并轉(zhuǎn)換為一維像素序列,然后利用一維元胞自動(dòng)機(jī)的迭代產(chǎn)生偽隨機(jī)序列,對偽隨機(jī)序列排序得到置換地址集合,接著利用置換地址集合對明文灰度圖像的一維像素序列進(jìn)行置換,最后將置亂過后的一維像素序列轉(zhuǎn)換成二維像素矩陣,得到置亂過后的密文圖像。本發(fā)明采用一維元胞自動(dòng)機(jī)實(shí)現(xiàn)灰度圖像的置亂,不僅具有良好的置亂效果,而且可以避免實(shí)值運(yùn)算提高算法效率。
【IPC分類】G06T1/00
【公開號】CN105046639
【申請?zhí)枴緾N201510479006
【發(fā)明人】平萍, 毛鶯池, 戚榮志, 許國艷, 呂鑫
【申請人】河海大學(xué)
【公開日】2015年11月11日
【申請日】2015年8月6日