一種基于2D隨機Prim迷宮的數(shù)字置亂方法
【專利摘要】本發(fā)明提供一種基于2D隨機Prim迷宮的數(shù)字置亂方法,預先對隨機Prim迷宮生成區(qū)域進行人為限定,從而可用于人為指定的任意2D封閉連通區(qū)域,同時按迷宮節(jié)點更新順序?qū)γ詫m設(shè)定區(qū)域的每個節(jié)點賦予唯一編號,由此產(chǎn)生迷宮設(shè)定區(qū)域所有節(jié)點的排列,在此基礎(chǔ)上構(gòu)造了基于2D隨機Prim迷宮節(jié)點更新序列和節(jié)點更新序列復合的置亂方法,從而可將所有節(jié)點置亂。本發(fā)明所給出的置亂方法具有普適性和靈活性,在使用過程中不存在任何限制,不僅能用于傳統(tǒng)置亂方法所針對的規(guī)則區(qū)域,例如正方形和矩形區(qū)域,也可用于任意選定的2D封閉連通不規(guī)則區(qū)域置亂。本發(fā)明也給出了用于像素矩陣,R、G、B通道矩陣和比特位面的圖像置亂方法。
【專利說明】一種基于2D隨機Pr im迷宮的數(shù)字置亂方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及信息安全和數(shù)字信號處理等交叉研究領(lǐng)域,具體為基于隨機Prim迷 宮生成策略的數(shù)字置亂方法,特別涉及一種基于2D隨機Prim迷宮的數(shù)字置亂方法。
【背景技術(shù)】
[0002] 近年來,伴隨著計算機和網(wǎng)絡(luò)技術(shù)的發(fā)展,越來越多的圖像在網(wǎng)絡(luò)中傳輸,在給用 戶提供方便的同時,也帶來了一系列的安全隱患。對圖像的不當使用和惡意篡改,不僅涉及 個人隱私問題,也會給社會帶來嚴重的負面影響。保障圖像的核心技術(shù)是數(shù)字圖像加密。
[0003] 在數(shù)字圖像加密領(lǐng)域,研究最為廣泛和靈活的一類圖像加密方法,就是在同一空 間內(nèi),對圖像的重編碼技術(shù),即圖像置亂技術(shù)。
[0004] 隨著計算機技術(shù)的飛速發(fā)展,數(shù)字圖像置亂技術(shù)已成為數(shù)字安全傳輸和保密的主 要手段。其基本思路就是把一幅圖像經(jīng)過一定的數(shù)學變換,轉(zhuǎn)變成面目全非的另一幅圖像, 以起到對圖像的安全保密作用。
[0005] 數(shù)字圖像置亂也是目前隱密術(shù)、數(shù)字水印、信息分存和可視密碼技術(shù)中,一項關(guān)鍵 預處理技術(shù)。已受到國內(nèi)外學者的普遍重視,并取得豐碩的研究成果。
[0006] 數(shù)字圖像置亂最初來源于有線電視信號加密,早期的置亂在位置空間進行,用于 對圖像像素位置打亂,這些置亂方法包括行倒置置亂、行平移置亂、行置換置亂、行循環(huán)置 舌U行分量切割置亂等。隨著置亂技術(shù)的不斷發(fā)展,目前已提出的置亂方法多種多樣,既可 用于位置置換,也可用于灰度替代。
[0007] 當前已提出的置亂方法主要有:基于離散元素序列的置亂方法、基于掃描路線的 置亂方法、基于遍歷矩陣的置亂方法、基于迭代函數(shù)系統(tǒng)的置亂方法、基于離散混沌映射的 置亂方法、基于中國拼圖的置亂方法和基于矩陣變換的置亂方法等。
[0008] 目前盡管已提出了多種置亂方法,但傳統(tǒng)置亂方法大多只能用于規(guī)則區(qū)域置亂, 例如正方形和長方形區(qū)域,而不能對圖像選定的任意不規(guī)則區(qū)域進行置亂。
[0009] 例如基于Fibonacci序列和Lucas序列的置亂方法將待置亂圖像的寬、高拘泥為 Fibonacci序列和Lucas序列元素;基于SCAN語言和Hilbert曲線的置亂方法將置換圖像 的大小約束為2 nX2n的正方形圖像;由于并非所有圖像都存在騎士巡游路徑,由此導致了 基于騎士巡游的置亂方法只能用于圖像寬、高在特定尺度上的圖像;對于奇數(shù)階幻方,其置 亂圖像邊長為奇數(shù),對于雙偶階幻方,其置亂圖像邊長為4的整數(shù)倍;由于任意階的拉丁方 并非都存在,基于拉丁方的置亂方法只能用于置亂圖像邊長為特定尺度的圖像,例如邊長 為p n且P為素數(shù)的圖像;對于離散Kolmogorov Flows Map和亞仿射變換,只能用于置亂正 方形圖像;傳統(tǒng)的基于矩陣的圖像置亂方法,其基本表示形式為X[i] = (AX[H])mod N,但由 于只有一個尺度參數(shù)N,由此決定了基于矩陣的圖像置亂方法只能用于置亂特定尺度的圖 像,例如正方形圖像或?qū)匦螆D像的灰度進行置亂。
[0010] 在文獻二維非等長圖像置亂變換(電子學報,2007, 35 (7) : 1290-1294), 二維三角映射及其在圖像置亂上的應(yīng)用(Information Technology Journal,2008, 7 (1) :40-47),二維雙尺度矩形映射及其在圖像置亂上的應(yīng)用(計 算機輔助設(shè)計與圖形學報,2009, 21 (7) : 1026-1034)和多尺度三角映射及其在 變尺度置舌L 上的應(yīng)用(International Journal of Computer Applications in Technology, 2010, 38(1-3) :74-85),我們將 X[i] = (AX[卜 1])modN拓展為 X[i] = (AX[卜 1])modN, N為有限個尺度構(gòu)成的尺度向量,提出了 2維非等長變換存在性判據(jù),2維雙尺度矩形映射 的特殊形式-2維三角映射,以及2維雙尺度矩形映射一般性構(gòu)造方法和多尺度三角映射。 盡管 Xw = (AXM)m〇dN可用于任意矩形圖像置亂,并可對圖像位置和灰度同時置亂,但所 提出的方法只能對規(guī)則區(qū)域進行置亂,不能用于任意選定的不規(guī)則區(qū)域置亂。
[0011] 傳統(tǒng)的迷宮生成方法在人工智能和優(yōu)化計算領(lǐng)域應(yīng)用較廣,一般用于動態(tài)復雜場 景的模擬和仿真,在信息安全領(lǐng)域涉及較少,在文獻基于迷宮置換和Logistic混沌映射的 圖像加密算法(計算機應(yīng)用,2014, 34 (7) : 1902-1908),我們探討了基于DFS迷宮節(jié)點入棧 順序和行優(yōu)先掃描順序高效產(chǎn)生置換的方法,將迷宮生成方法應(yīng)用于任意矩形圖像加密, 但所提出的方法不能應(yīng)用于圖像的任意不規(guī)則連通封閉區(qū)域加密。
【發(fā)明內(nèi)容】
[0012] 本發(fā)明的目的在于克服現(xiàn)有技術(shù)缺陷,提供一種基于2D隨機Prim迷宮的數(shù)字置 亂方法,該方法可用于2D任意連通封閉區(qū)域數(shù)據(jù)置亂。
[0013] 為實現(xiàn)上述目的,本發(fā)明采用以下技術(shù)方案:
[0014] 一種基于2D隨機Prim迷宮的數(shù)字置亂方法,包括以下步驟:
[0015] 第1步:設(shè)定迷宮初始范圍Sinit = ()mXn和迷宮有效區(qū)域Smaze = (Si,」)^,對于
【權(quán)利要求】
1. 一種基于2D隨機Prim迷宮的數(shù)字置亂方法,其特征在于包括以下步驟: 第1步:設(shè)定迷宮初始范圍Sinit =Omxn和迷宮有效區(qū)域Smaze = (Si,」)mXn,對于Vv i= 0, j= 0,…,n-1,若氣y茫夕maze,則標記si;j = -1,反之則標記si;j = 0表示 該節(jié)點未訪問,若si;j > 0表示該節(jié)點已訪問; 第2步:記Si,j.d,d= 0, 1,2, 3依次為節(jié)點的下方、右方、上方和左方墻,對于 釀),i= 〇,…,m-1,j= 0,…,n-1,初始化Si,j.d= -1,d= 0, 1,2, 3,即將Smaze 范 圍內(nèi)的所有節(jié)點以墻進行分隔,si;j.d= -1表示有墻,si;j.d= 0表示無墻; 第3步:選擇隨機數(shù)發(fā)生器y=RG(X),設(shè)定初始值RG.init=seed ; 第4步:選取'^X=Xci,y=yd,初始化墻列表Lwall =Φ和節(jié)點更新序列 Aupdate=Φ ; 第5步:將sx,y的有效墻,即當前節(jié)點與Smaze范圍內(nèi)未訪問節(jié)點之間的分隔墻加入 墻列表:LwallLwaii.add(sx,y),將sx,y的坐標(x,y)加入節(jié)點更新序列:A update^update* add((X,y)),標記sx,y =I; 第 6 步:從Lwall 中隨機刪除一面墻:index=RG.random(Lwall.length),sx,y.d=Lwall.delete(index),de{〇, 1,2, 3}; 第7步:若d= 0且sx+1,y = 0,則刪除sx,y和sx+1,y之間的分隔墻,且置sx+1,y = 1,x=x+1 ;反之若d= 1且sx,y+1 = 0,則刪除sx,y和sx,y+1之間的分隔墻,且置sx,y+1 = 1,y=y+1 ; 反之若d= 2且Spiy = 0,則刪除sx,y和Spiy之間的分隔墻,且置Spiy = 1,x=x-1 ;反之 若d= 3且Sw= 0,則刪除sx,y和Sw之間的分隔墻,且置Sw= 1,y=y-Ι;若存在 以上4種情況之一,將sx,y的有效墻加入墻列表LwallLwaIi.add(sx,y),將(X,y)加入Aupdate =Aupdate.add((X,y)); 第8步:反復執(zhí)行第6?7步,直至Lwall =Φ; 第9步:利用Aupdate構(gòu)造Sniaze = (Si,Pnixn范圍內(nèi)所有節(jié)點間的映射關(guān)系,從而將Sniaze = (Siij)mxn范圍內(nèi)的所有節(jié)點置亂。
2. 如權(quán)利要求1所述的基于2D隨機Prim迷宮的數(shù)字置亂方法,其特征在于第9步中 映射方法具體包括以下步驟: 第9. 1步:選取整數(shù)作為映射偏移量11,11m〇dAupdate.length尹0,將其按式⑴規(guī)范 至1J(_AUpdate.length,Aupdate.length)范圍內(nèi)的整數(shù),按式⑵計算index;
弟 9. 2 步:將Sinit 復制為T= (I^j)mxn ; 第9·3步:對于V(/,J0e4?▲?e,3(x,少)e4_<?,按式⑶將Si,J賦值給tχ,y; (i,J·)=AupdateQi),ii= 0, ...,Aupdate.Iength-I (x,y)=Aupdate(kk),kk= 0,…,Aupdate.length-1 (3) kk= (ii+index)modAupdate·length 第 9. 4 步:輸出T= (I^j)mxnt5
3. 如利要求1所述的基于2D隨機Prim迷宮的數(shù)字置亂方法,其特征在于: 選取兩個隨機數(shù)發(fā)生器y=RGci (X),y=RG1 (X),設(shè)定隨機初始值RGci.init=seed。, RG1.init=Seed1生成迷宮節(jié)點更新序列; 第9步中映射方法具體包括以下步驟: 第9. 1步:輸入任意整數(shù)作為映射偏移量11,并將其按式(4)規(guī)范到 (-4^>嗯/?,^^>餅/7)范圍內(nèi)的整數(shù),按式(5)計算加以;
弟 9. 2 步:將Sinit 復制為T= (I^j)mxn ; 第 9. 3 步:對于V(/,))e<ito,3(x,_y),按式(6)將SiJ 賦值給tx,y;;
第 9. 4 步:輸出T= (I^j)mxnt5
4. 如權(quán)利要求2所述的基于2D隨機Prim迷宮的數(shù)字置亂方法,其特征在于:在進行 圖像置亂時,具體包括以下步驟: 第(1)步:讀取待置亂圖像像素矩陣P= (Piij)mxn作為Sinit,在Sinit上選取特定區(qū)域作 為Smaze ; 第⑵步:選取eI,=.作為迷宮的初始節(jié)點,選取隨機數(shù)發(fā)生器y=RG(X),設(shè)定 初始值RG.init=seed和映射偏移量11; 第(3)步:輸出置亂后的矩陣P' =(p'i,Pmxn,將其寫為置亂后的圖像。
5. 如權(quán)利要求3所述的基于2D隨機Prim迷宮的數(shù)字置亂方法,其特征在于:在進行 圖像置亂時,具體包括以下步驟: 第(1)步:讀取待置亂圖像像素矩陣P= (Piij)mxn作為Sinit,在Sinit上選取特定區(qū)域作 為Smaze ; 第⑵步:選取Vsv.vu,*V.v, 作為迷宮的初始節(jié)點,選取隨機數(shù)發(fā)生器Y=RGtl(X), y=RGi(x),設(shè)定初始值RGtl.init=seedQ,RG1.init=Seed1和映射偏移量 11; 第⑶步:輸出置亂后的矩陣P' =(p'i,Pmxn,將其寫為置亂后的圖像。
6. 如權(quán)利要求2所述的基于2D隨機Prim迷宮的數(shù)字置亂方法,其特征在于:在進行 圖像置亂時,具體包括以下步驟: 第⑴步:讀取 24 位圖像R、G、B通道矩陣P24.R= (I^j)mxnJ24.G= (gi,j)mXn 和P24.B =(Hn,將其分別作為初始范圍私,·,私,在私,私,私選取特定區(qū)域作為有效區(qū) I _ρ?τΚrrG?^Β ^^maze'k^maze ^ ijJnaze, 第⑵步:選取V<,。£--,ν<,。Μ=,ν<,ν。分別作為R、G、B通道的初始節(jié)點, 選取隨機數(shù)發(fā)生器y=RGk(X),y=RGg(X),y=RGb(X),設(shè)定初始值1^1(.;[11;^ = 866(11(,1^<:·init=seedG,RGb.init=seedB和映射偏移量 11K, 11G,IIb ; 第(3)步:輸出置亂后的矩陣R',G',B',將其寫為置亂后的圖像。
7. 如權(quán)利要求3所述的基于2D隨機Prim迷宮的數(shù)字置亂方法,其特征在于:在進行 圖像置亂時,具體包括以下步驟: 第⑴步:讀取 24 位圖像R、G、B通道矩陣P24.R= (I^j)mxnJ24.G= (gi,j)mXn 和P24.B=(by)mXn,將其分別作為初始范圍,在選取特定區(qū)域作為有效區(qū) i_jiQiR?ιΒ ijJnaze ^ k^maze9k^maze ^ 第(2)步:選取V<V<n 分別作為R、G、B通道迷宮的初始節(jié)點,選取隨機數(shù)發(fā)生器少=少' =/?Gf⑴,>,=/?0(,作>,=抓Γ(χ)0, = /?G(f⑴j RG^lJnii =slkxI[1 JiC^ jnii = secd[\IlGi^ Jnil -sced(^,RG\'Jnii =sced[\RG^JniI = Sc1Cd1iI.RC^.inil =Secdli 和映射偏移量11K,lle,11B; 第(3)步:依次輸出置亂后的矩陣R',G',B',將其寫為置亂后的圖像。
8. 如權(quán)利要求2所述的基于2D隨機Prim迷宮的數(shù)字置亂方法,其特征在于:在進行 圖像置亂時,具體包括以下步驟: 第⑴步:讀取待置亂圖像比特位面,對于8位圖像P8,將圖像位面冬丨匕=(1<)_,kk= 0, 1,…,7依次作為初始范圍kk= 0, 1,…,7,對于24位圖像P24,將圖像位面 戶24.?=(<),"x",kk= 0, 1,…,23依次作為初始范圍尤,kk= 0, 1,…,23,在S=上選取 特定區(qū)域作為有效區(qū)域Ce; 第⑵步:選取作為迷宮的初始節(jié)點,選取隨機數(shù)發(fā)生器y=RGkk(X),設(shè) 定初始值RGkk.init=Seedkk和映射偏移量Ilkk; 第⑶步:依次輸出置亂后的矩陣,對于8位圖像P8,將置亂后的位面W'kk,kk= 〇,…,7寫為置亂后的圖像,對于24位圖像P24,將置亂后的位面W'kk,kk= 0,…,23寫為 置亂后的圖像。
9. 如權(quán)利要求3所述的基于2D隨機Prim迷宮的數(shù)字置亂方法,其特征在于:在進行 圖像置亂時,具體包括以下步驟: 第⑴步:讀取待置亂圖像比特位面,對于8位圖像P8,將圖像位面P8J匕=(<;;_)_,, kk= 0, 1,…,7依次作為初始范圍kk= 0, 1,…,7,對于24位圖像P24,將圖像位面A·%-=(〇_,kk= 0, 1,…,23依次作為初始范圍《,kk= 0, 1,…,23,在上選取 特定區(qū)域作為有效區(qū)域史^ ; 第⑵步:選取ESfI3作為迷宮的初始節(jié)點,選取隨機數(shù)發(fā)生器 y=i?Gif(x),_y=i?Gf(X),設(shè)定初始值 和映身寸偏移量Ilkk; 第⑶步:依次輸出置亂后的矩陣,對于8位圖像P8,將置亂后的位面W'kk,kk= 〇,…,7寫為置亂后的圖像,對于24位圖像P24,將置亂后的位面W' kk,kk= 0,…,23寫為 置亂后的圖像。
【文檔編號】H04N1/32GK104469079SQ201410751085
【公開日】2015年3月25日 申請日期:2014年12月8日 優(yōu)先權(quán)日:2014年12月8日
【發(fā)明者】邵利平 申請人:陜西師范大學