一種基于2D Growing Tree 迷宮的數(shù)字置亂方法
【專利摘要】本發(fā)明提供一種基于2D Growing Tree迷宮的數(shù)字置亂方法,預(yù)先對(duì)Growing Tree迷宮生成區(qū)域進(jìn)行人為限定,從而可用于人為指定的任意2D封閉連通區(qū)域,同時(shí)按迷宮節(jié)點(diǎn)更新順序?qū)γ詫m設(shè)定區(qū)域的每個(gè)節(jié)點(diǎn)賦予唯一編號(hào),由此產(chǎn)生迷宮設(shè)定區(qū)域所有節(jié)點(diǎn)的排列,在此基礎(chǔ)上構(gòu)造了基于2D Growing Tree迷宮的節(jié)點(diǎn)更新序列和節(jié)點(diǎn)更新序列復(fù)合的置亂方法,從而可將所有節(jié)點(diǎn)置亂。本發(fā)明所給出的置亂方法具有普適性和靈活性,在使用過程中不存在任何限制,不僅能用于傳統(tǒng)置亂方法所針對(duì)的規(guī)則區(qū)域,例如正方形和矩形區(qū)域,也可用于任意選定的2D封閉連通不規(guī)則區(qū)域置亂。本發(fā)明也給出了用于像素矩陣,R、G、B通道矩陣和比特位面的圖像置亂方法。
【專利說明】-種基于2D Growing Tree迷宮的數(shù)字置亂方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明主要涉及信息安全和數(shù)字信號(hào)處理等交叉研究領(lǐng)域,具體為基于Growing Tree迷宮生成策略的數(shù)字置亂方法,特別涉及一種基于2DGrowingTree迷宮的數(shù)字置亂 方法。
【背景技術(shù)】
[0002] 近年來,伴隨著計(jì)算機(jī)和網(wǎng)絡(luò)技術(shù)的發(fā)展,越來越多的圖像在網(wǎng)絡(luò)中傳輸,在給用 戶提供方便的同時(shí),也帶來了一系列的安全隱患。對(duì)圖像的不當(dāng)使用和惡意篡改,不僅涉及 個(gè)人隱私問題,也會(huì)給社會(huì)帶來嚴(yán)重的負(fù)面影響。保障圖像的核心技術(shù)是數(shù)字圖像加密。
[0003] 在數(shù)字圖像加密領(lǐng)域,研究最為廣泛和靈活的一類圖像加密方法,就是在同一空 間內(nèi),對(duì)圖像的重編碼技術(shù),即圖像置亂技術(shù)。
[0004] 隨著計(jì)算機(jī)技術(shù)的飛速發(fā)展,數(shù)字圖像置亂技術(shù)已成為數(shù)字安全傳輸和保密的主 要手段。其基本思路就是把一幅圖像經(jīng)過一定的數(shù)學(xué)變換,轉(zhuǎn)變成面目全非的另一幅圖像, 以起到對(duì)圖像的安全保密作用。
[0005] 數(shù)字圖像置亂也是目前隱密術(shù)、數(shù)字水印、信息分存和可視密碼技術(shù)中,一項(xiàng)關(guān)鍵 預(yù)處理技術(shù)。已受到了國內(nèi)外學(xué)者的普遍重視,并取得了豐碩的研究成果。
[0006] 數(shù)字圖像置亂最初來源于有線電視信號(hào)加密,早期的置亂在位置空間進(jìn)行,用于 對(duì)圖像像素位置打亂,這些置亂方法包括行倒置置亂、行平移置亂、行置換置亂、行循環(huán)置 舌U行分量切割置亂等。隨著置亂技術(shù)的不斷發(fā)展,目前已提出的置亂方法多種多樣,既可 用于位置置換,也可用于灰度替代。
[0007] 當(dāng)前已提出的置亂方法主要有:基于離散元素序列的置亂方法、基于掃描路線的 置亂方法、基于遍歷矩陣的置亂方法、基于迭代函數(shù)系統(tǒng)的置亂方法、基于離散混沌映射的 置亂方法、基于中國拼圖的置亂方法和基于矩陣變換的置亂方法等。
[0008] 目前盡管已提出了多種置亂方法,但傳統(tǒng)置亂方法大多只能用于規(guī)則區(qū)域置亂, 例如正方形和長方形區(qū)域,而不能對(duì)圖像選定的任意不規(guī)則區(qū)域進(jìn)行置亂。
[0009] 例如基于Fibonacci序列和Lucas序列的置亂方法將置亂圖像的寬、高拘泥為 Fibonacci序列和Lucas序列元素;基于SCAN語言和Hilbert曲線的置亂方法將置換圖像 的大小約束為2nX2n的正方形圖像;由于并非所有圖像都存在騎士巡游路徑,由此導(dǎo)致了 基于騎士巡游的置亂方法只能用于圖像寬、高在特定尺度上的圖像;對(duì)于奇數(shù)階幻方,其置 亂圖像邊長為奇數(shù),對(duì)于雙偶階幻方,其置亂圖像邊長為4的整數(shù)倍;由于任意階的拉丁方 并非都存在,基于拉丁方的置亂方法只能用于置亂圖像邊長為特定尺度的圖像,例如邊長 為Pn且P為素?cái)?shù)的圖像;對(duì)于離散KolmogorovFlowsMap和亞仿射變換,只能用于置亂正 方形圖像;傳統(tǒng)的基于矩陣的圖像置亂方法,其基本表示形式為X[i]=(AX[H])modN,但由 于只有一個(gè)尺度參數(shù)N,由此決定了基于矩陣的圖像置亂方法只能用于置亂特定尺度的圖 像,例如正方形圖像和對(duì)矩形圖像的灰度進(jìn)行置亂。
[0010]在文獻(xiàn)二維非等長圖像置亂變換(電子學(xué)報(bào),2007, 35 (7):1290-1294), 二維三角映射及其在圖像置亂上的應(yīng)用(InformationTechnology Journal,2008, 7 (I) :40-47),二維雙尺度矩形映射及其在圖像置亂上的應(yīng)用(計(jì) 算機(jī)輔助設(shè)計(jì)與圖形學(xué)報(bào),2009, 21 (7) : 1026-1034)和多尺度三角映射及其在 變尺度置舌L上的應(yīng)用(InternationalJournalofComputerApplicationsin Technology, 2010, 38 (1-3) :74-85),我們將X[i] = (AX[i-1])modN拓展為X[i] = (AX[i-1])mod N,N為有限個(gè)尺度構(gòu)成的尺度向量,提出了 2維非等長變換存在性判據(jù),2維雙尺度矩形映 射的特殊形式-2維三角映射,以及2維雙尺度矩形映射一般性構(gòu)造方法和多尺度三角映 射。盡管X[i]= (AX[H])m〇dN可用于任意矩形圖像置亂,并可對(duì)圖像位置和灰度同時(shí)置亂, 但所提出的方法只能對(duì)規(guī)則區(qū)域進(jìn)行置亂,不能用于對(duì)選定的任意不規(guī)則區(qū)域進(jìn)行置亂。 [0011] 傳統(tǒng)的迷宮生成方法在人工智能和優(yōu)化計(jì)算領(lǐng)域應(yīng)用較廣,一般用于動(dòng)態(tài)復(fù)雜場 景的模擬和仿真,在信息安全領(lǐng)域涉及較少,在文獻(xiàn)基于迷宮置換和Logistic混沌映射的 圖像加密算法(計(jì)算機(jī)應(yīng)用,2014, 34 (7) : 1902-1908),我們探討了基于DFS迷宮節(jié)點(diǎn)入棧 順序和行優(yōu)先掃描順序高效產(chǎn)生置換的方法,將迷宮生成方法應(yīng)用于任意矩形圖像加密, 但所提出的方法不能應(yīng)用于圖像的任意連通不規(guī)則封閉區(qū)域加密。
【發(fā)明內(nèi)容】
[0012] 本發(fā)明的目的在于克服現(xiàn)有技術(shù)缺陷,提供一種基于2DGrowingTree迷宮的數(shù) 字置亂方法,該方法可用于2D任意連通封閉區(qū)域數(shù)據(jù)置亂。
[0013] 為實(shí)現(xiàn)上述目的,本發(fā)明采用以下技術(shù)方案:
[0014] 一種基于2DGrowingTree迷宮的數(shù)字置亂方法,包括以下步驟:
[0015] 第1步:設(shè)定迷宮初始范圍Sinit =Omxn和迷宮有效區(qū)域Smaze = (Sy)mxn,對(duì)于 ?',/i= 0,…,m-1,j= 0,…,n-1,若Av 在Sm則標(biāo)記Si,j= -1,反之則標(biāo)記Si,j= 〇 表示該節(jié)點(diǎn)未訪問,若si;j>0表示該節(jié)點(diǎn)已訪問;
[0016] 第 2 步:對(duì)于e *^亂Vi= 0,…,m-1,j= 0,…,n-1,記Si,j.d,d= 0, 1,2, 3 依次為節(jié)點(diǎn)si;」的下方、右方、上方和左方墻,初始化&,」.d= -1,d= 0, 1,2, 3,即將Smaze范 圍內(nèi)的所有節(jié)點(diǎn)以墻進(jìn)行分隔,si;j.d= -1表示有墻,si;j.d= 0表示無墻;
[0017] 第3步:選擇隨機(jī)數(shù)發(fā)生器y=RG(X),設(shè)定初始值RG.init=seed,初始化 迷宮節(jié)點(diǎn)列表Amaze =Φ,節(jié)點(diǎn)更新序列Aupdate =Φ,由隨機(jī)數(shù)發(fā)生器隨機(jī)產(chǎn)生2個(gè)概率 Precent,P〇ldest G [0,1);
[0018]第 4 步:選取VswueS?-,X=xQ,y=yQ,將sx,y 分別加到Aniaze 和Aupdate,即Aniaze Anaze.&dd(Sx,y)AUpdate ^update*£icld(sx ;
[0019]第5步:若Amaze尹Φ,則循環(huán)執(zhí)行第6步?第8步;
[0020] 第6步:產(chǎn)生1個(gè)隨機(jī)數(shù)Pe[0, 1),若Pe[0,U,則取Amaze尾部元素作為 當(dāng)前節(jié)點(diǎn)sx,y;反之若Pe[匕^匕^+匕^丄則取八^頭部元素作為當(dāng)前節(jié)點(diǎn)^^反之 則從Amaze 中隨機(jī)取一個(gè)元素作為當(dāng)前節(jié)點(diǎn)sx,y,sx,y=Amaze (index),index=random(Amaze. length);
[0021]第7步:若sx,y周圍的鄰近節(jié)點(diǎn)中sx+1,y,sx,y+1,SxW Su1存在未訪問的有效節(jié) 點(diǎn)sx,,y,eSmaze,則將sx,,y,加入到Amaze,即Amaze =Amaze.add(sx,,y,),Aupdate =Aupdate. add(sx、y,);
[0022] 第8步:若sx,y周圍的鄰近節(jié)點(diǎn)中sx+1,y,sx,y+1,Vu,Sj^1不存在未訪問的有效節(jié) 點(diǎn)sx,,y,eSmaze,則刪除Amaze索引位置為Index位置的元素,即Amaze.delete(index);
[0023] 第9步:利用Aupdate構(gòu)造Smaze = (Si,pmxn范圍內(nèi)所有節(jié)點(diǎn)間的映射關(guān)系,從而將 Smaze= (SiJmxn范圍內(nèi)的所有節(jié)點(diǎn)置亂。
[0024] 作為本發(fā)明進(jìn)一步優(yōu)選方案,第9步中映射方法具體包括以下步驟:
[0025] 第9. 1步:選取整數(shù)作為映射偏移量11,11modAupdate.length關(guān)0,將其按式(1) 規(guī)范到(-Aupdate.length,Aupdate.length)范圍內(nèi)的整數(shù),按式⑵計(jì)算index;
[0026] 11 = 11modAupdate.length(I) f(// +Λ^,.length)modΛlength// < 0
[0027] index= (2) IlIl>0
[0028]弟 9. 2 步:將Sinit 復(fù)制為T=(I^j)mxn;
[0029] 第 9· 3 步:對(duì)于V(/,/)ee為,按式⑶將Si,j賦值給 tx,y;
[0030] (i,j) =AupdateQi),ii= 0, ...,Aupdate.length-1
[0031 ] (X,y) =Aupdate (kk),kk= 0, ...,Aupdate.length-1 (3)
[0032] kk= (ii+index)modAupdate.length
[0033]第 9. 4 步:輸出T= (I^j)mxnt5
[0034] 選取兩個(gè)隨機(jī)數(shù)發(fā)生器y=RGci(X),y=RG1 (X),設(shè)定隨機(jī)初始值RGci.init= seed。,RG1.init=Seed1生成迷宮節(jié)點(diǎn)更新序列;
[0035] 第9步中映射方法具體包括以下步驟:
[0036] 第9. 1步:輸入任意整數(shù)作為映射偏移量11,并將其按式⑷規(guī)范到 妙)范圍內(nèi)的整數(shù),按式(5)計(jì)算index ;
[0037] // = //modAlphih,.length(4) ,I(II+A0,,.!emflh)modA0.,.lengthIl<0
[0038] index=K ^ (S)
[ Il //>0
[0039]第 9· 2 步:將Sinit 復(fù)制為T=UiJmxn;
[0040]第 9·3步:對(duì)于V〇',y)ee,按式(6)將Si,j賦值給tx,y ;
[0041] (Uj)=Kpdnte(U),ii= 0,···,AlpdatJength-1
[0042] (x,y、= 4,-Mk、,kk =Q,…,AU,'.Jength-' (6)
[0043] kk=(ii+index)modAlixlalcJenglh
[0044]第 9. 4 步:輸出T= (I^j)mxnt5
[0045] 作為本發(fā)明進(jìn)一步優(yōu)選方案,在進(jìn)行圖像置亂時(shí),具體包括以下步驟:
[0046]第⑴步:讀取待置亂圖像像素矩陣P= (Pi,j)mXn作為Sinit,在Sinit上選取特定區(qū) 域作為Sniaze ;
[0047] 第⑵步:選取作為迷宮的初始節(jié)點(diǎn),選取隨機(jī)數(shù)發(fā)生器y= RG(x), 設(shè)定初始值RG.init=seed和映射偏移量11 ;
[0048] 第(3)步:輸出置亂后的矩陣P' = (p'υ)πΧη,將其寫為置亂后的圖像。
[0049] 作為本發(fā)明進(jìn)一步優(yōu)選方案,在進(jìn)行圖像置亂時(shí),具體包括以下步驟:
[0050] 第⑴步:讀取待置亂圖像像素矩陣P= (Pi,j)mXn作為Sinit,在Sinit上選取特定區(qū) 域作為Sniaze ;
[0051] 第⑵步:選取VsvibA,,,., 作為迷宮的初始節(jié)點(diǎn),選取隨機(jī)數(shù)發(fā)生器y = RG0(X),y=RG1(X),設(shè)定初始值RG。·init=seed。,RG1.init=Seed1 和映身寸偏移量 11 ;
[0052] 第⑶步:輸出置亂后的矩陣P' = (p'^)πΧη將其寫為置亂后的圖像。
[0053] 作為本發(fā)明進(jìn)一步優(yōu)選方案,在進(jìn)行圖像置亂時(shí),具體包括以下步驟:
[0054]第⑴步:讀取 24 位圖像R、G、B通道矩陣P24.R= (Rj)mxi^P24-G= (gi,j)mXn 和 P24.B= (Hn,將其分別作為初始范圍,在選取特定區(qū)域作為有 效區(qū)域;
[0055] 第⑵步:選取 ibeSL分別作為R、G、B通道的初 始節(jié)點(diǎn),選取隨機(jī)數(shù)發(fā)生器y=RGK(x),y=RGe(x),y=RGb(X),設(shè)定初始值RGK.init=seedK,RGg.init=seedG,RGb.init=seedB 和映射偏移量 11K, 11G,IIb ;
[0056] 第⑶步:輸出置亂后的矩陣R',G',B'寫為置亂后的圖像。
[0057] 作為本發(fā)明進(jìn)一步優(yōu)選方案,在進(jìn)行圖像置亂時(shí),具體包括以下步驟:
[0058]第⑴步:讀取 24 位圖像R、G、B通道矩陣P24.R= (Rj)mxi^P24-G= (gi,j)mXn 和 p24.b= (Kj)mxn,將其分別作為初始范圍,在C,C,C.選取特定區(qū)域作為
[0059]第(2)步:選取 ,<.n^ 分別作為R、G、B通道迷宮的初始節(jié)點(diǎn),選取隨機(jī)數(shù)發(fā)生器 少=/?G(f(Λ-),_ν==V=WGl0Wj^ RGfiMt = seed^,RGf.init = seedf,RG^.init = seed^,RG^.init = Seed^r,RG^Mt = seed^,RGfMt = seedf和映射偏移量11E, 11G, 11B ;
[0060]第(3)步:依次輸出置亂后的矩陣R',G',B'寫為置亂后的圖像。
[0061] 作為本發(fā)明進(jìn)一步優(yōu)選方案,在進(jìn)行圖像置亂時(shí),具體包括以下步驟:
[0062]第⑴步:讀取待置亂圖像比特位面,對(duì)于8位圖像P8,將圖像位面 以仏=(<U,狀=〇,1/",7依次作為初始范圍C,妖= 0,Ι,···,7,對(duì)于24位圖像P24,將圖像位面A·%-=(<)_狀=〇,1,?,23依次作為初始范圍々,欲=0,1,?,23,在5^上選取 特定區(qū)域作為有效區(qū)域Cb;
[0063] 第⑵步:選取作為迷宮的初始節(jié)點(diǎn),選取隨機(jī)數(shù)發(fā)生器y= RGkk(X),設(shè)定初始值RGkk.init=Seedkk和映射偏移量Ilkk;
[0064] 第(3)步:依次輸出置亂后的矩陣,對(duì)于8位圖像P8,將置亂后的位面W'kk,kk= 〇,…,7寫為置亂后的圖像8,對(duì)于24位圖像P24,將置亂后的位面Wkk,kk= 0,…,23 寫為置亂后的圖像。
[0065] 作為本發(fā)明進(jìn)一步優(yōu)選方案,在進(jìn)行圖像置亂時(shí),具體包括以下步驟:
[0066] 第⑴步:讀取待置亂圖像比特位面,對(duì)于8位圖像P8,將圖像位面 =Od尨= 〇,1,···,7依次作為初始范圍?,Μ= 0,1,···,7 ,對(duì)于24位圖像P24,將圖 像位面P24.% =(>CU,妖二0,1,…,23依次作為初始范圍筆r,狀:0,1,…,23,在以上選取 特定區(qū)域作為有效區(qū)域
[0067]第⑵步:選取Vst,.eS=作為迷宮的初始節(jié)點(diǎn),選取隨機(jī)數(shù)發(fā)生器 _y=i?G^(x),= ,設(shè)定初始值 和映射偏移量Ilkk;
[0068]第(3)步:依次輸出置亂后的矩陣,對(duì)于8位圖像P8,將置亂后的位面W'kk,kk= 〇,…,7寫為置亂后的圖像8,對(duì)于24位圖像P24,將置亂后的位面Wkk,kk= 0,…,23 寫為置亂后的圖像。
[0069]本發(fā)明同現(xiàn)有技術(shù)優(yōu)點(diǎn)分析
[0070] (1)傳統(tǒng)的迷宮生成方法在人工智能和優(yōu)化計(jì)算領(lǐng)域應(yīng)用較廣,一般用于動(dòng)態(tài)復(fù) 雜場景的模擬和仿真,但在信息安全領(lǐng)域涉及較少,而傳統(tǒng)的置亂方法一般將置亂空間局 限在特定的尺度上,用于圖像規(guī)則區(qū)域置亂,例如正方形圖像和矩形圖像以及僅適用于特 定尺度圖像的規(guī)則區(qū)域加密,方法不具有普適性,在實(shí)施過程中存在使用限制。本發(fā)明則將 傳統(tǒng)的迷宮生成方法引入到信息安全中的置亂處理方法中,在GrowingTree迷宮生成方法 中添加了迷宮有效區(qū)域Smaze約束限制,使其僅在事先選定的2D任意封閉連通區(qū)域Smaze上 產(chǎn)生迷宮,同時(shí)將GrowingTree迷宮節(jié)點(diǎn)更新順序以節(jié)點(diǎn)更新序列Aupdate輸出用于生成排 列,利用該排列構(gòu)造所有節(jié)點(diǎn)之間的映射關(guān)系,從而將所有節(jié)點(diǎn)置亂。
[0071] 在此基礎(chǔ)上本發(fā)明還給出了結(jié)合節(jié)點(diǎn)更新序列和節(jié)點(diǎn)更新序列復(fù)合的數(shù)字置亂 方法。同現(xiàn)有方法相比,本發(fā)明所給出的置亂方法具有普適性和靈活性,在使用過程中不存 在使用限制,不僅可以用于置亂傳統(tǒng)置亂方法的規(guī)則區(qū)域,例如正方形和矩形區(qū)域,也可以 用于任意選定的2D連通封閉區(qū)域。
[0072] (2)本發(fā)明所給出的置亂方法可單獨(dú)使用,也可多次迭代,還可將不同方法聯(lián)合使 用,也可和現(xiàn)有的信息隱藏、數(shù)字水印、秘密共享和加密策略相結(jié)合,結(jié)合任意設(shè)定的隨機(jī) 數(shù)發(fā)生器對(duì)任意選定2D連通封閉區(qū)域數(shù)據(jù)提供不同安全級(jí)別的多重保護(hù),具備較高的實(shí) 際應(yīng)用價(jià)值。
[0073](3)同時(shí)本發(fā)明所針對(duì)的對(duì)象也不僅僅是圖像,可以用于任意封閉連通區(qū)域數(shù)據(jù) 的置亂和恢復(fù)。
【專利附圖】
【附圖說明】
[0074] 圖1是本發(fā)明具體實(shí)施例:方法1 一種基于2DGrowingTree迷宮的數(shù)字置亂方 法流程圖;
[0075] 圖2是本發(fā)明具體實(shí)施例:方法2結(jié)合具體映射方法的數(shù)字置亂方法流程圖;
[0076] 圖3是本發(fā)明具體實(shí)施例:方法3結(jié)合另一種映射方法的數(shù)字置亂方法流程圖;
[0077] 圖4是本發(fā)明實(shí)施例:測試圖像(含24位真彩色人像照片和迷宮有效區(qū)域設(shè)定圖 像包括五邊形、六邊形、五角星、心形、閃電形、空心云狀圖和人像前景等單色圖像,其中黑 色為迷宮有效區(qū)域,所有圖像分辨率均為80X60);
[0078] 圖5是傳統(tǒng)的GrowingTree迷宮方法生成的80X60迷宮;
[0079] 圖6是本發(fā)明對(duì)傳統(tǒng)的GrowingTree迷宮方法添加有效區(qū)域限制的產(chǎn)生的迷宮 (以圖4中的空心云狀圖和人像前景為迷宮有效區(qū)域);
[0080] 圖7是本發(fā)明實(shí)施例:由圖4五邊形設(shè)定區(qū)域按方法1中GrowingTree迷宮法產(chǎn) 生的前30個(gè)元素排列;
[0081] 圖8是本發(fā)明實(shí)施例:以5X6迷宮為例驗(yàn)證方法2 (原始矩陣、迷宮生成排列、正 映射、逆映射、置亂矩陣和恢復(fù)矩陣);
[0082] 圖9是本發(fā)明實(shí)施例:以5X6迷宮為例驗(yàn)證方法3 (原始矩陣、迷宮生成排列1、 迷宮生成排列2、正映射、逆映射、置亂矩陣和恢復(fù)矩陣);
[0083] 圖10是本方法實(shí)施例:以圖4測試?yán)秊榛A(chǔ)對(duì)方法4的驗(yàn)證圖樣;
[0084] 圖11是本方法實(shí)施例:以圖4測試?yán)秊榛A(chǔ)對(duì)方法5的驗(yàn)證圖樣;
[0085] 圖12是本方法實(shí)施例:以圖4測試?yán)秊榛A(chǔ)對(duì)方法6的驗(yàn)證圖樣;
[0086] 圖13是本方法實(shí)施例:以圖4測試?yán)秊榛A(chǔ)對(duì)方法7的驗(yàn)證圖樣;
[0087] 圖14是本方法實(shí)施例:以圖4測試?yán)秊榛A(chǔ)對(duì)方法8的驗(yàn)證圖樣;
[0088] 圖15是本方法實(shí)施例:以圖4測試?yán)秊榛A(chǔ)對(duì)方法9的驗(yàn)證圖樣。
【具體實(shí)施方式】
[0089] 以下結(jié)合附圖具體實(shí)施例對(duì)本發(fā)明方法進(jìn)行詳細(xì)描述:
[0090] GrowingTree生成策略是一種典型的迷宮生成策略,其基本思路是將已訪問的節(jié) 點(diǎn)形成一個(gè)列表,不斷從列表中取元素,將其鄰近節(jié)點(diǎn)的未訪問元素加入列表,如果鄰近的 節(jié)點(diǎn)不存在未訪問的元素,則將其從列表中刪除,直至列表為空。GrowingTree迷宮生成策 略可根據(jù)所取元素的策略,例如最近添加,最先添加和隨機(jī)選擇,產(chǎn)生不同紋理的迷宮。傳 統(tǒng)的GrowingTree迷宮是在mXn規(guī)模網(wǎng)格上的任意節(jié)點(diǎn)出發(fā),產(chǎn)生一條連接所有網(wǎng)絡(luò)節(jié) 點(diǎn)且具有復(fù)雜迂回通道的迷宮。
[0091] 經(jīng)典GrowingTree迷宮生成方法在人工智能和優(yōu)化計(jì)算領(lǐng)域應(yīng)用較廣,一般用于 動(dòng)態(tài)復(fù)雜場景的模擬和仿真,但在信息安全領(lǐng)域涉及較少。
[0092] 本發(fā)明預(yù)先對(duì)GrowingTree迷宮生成區(qū)域進(jìn)行人為限定,則GrowingTree生成 迷宮不光可以應(yīng)用于規(guī)則區(qū)域,例如正方形區(qū)域和矩形區(qū)域等,同時(shí)也可應(yīng)用于人為指定 的任意區(qū)域,例如2D封閉連通區(qū)域,同時(shí)可按迷宮節(jié)點(diǎn)更新順序?qū)γ詫m限定區(qū)域的每個(gè)節(jié) 點(diǎn)賦予一個(gè)唯一的編號(hào),由此可產(chǎn)生一個(gè)排列,利用該排列構(gòu)造所有節(jié)點(diǎn)之間的映射關(guān)系, 從而將所有節(jié)點(diǎn)置亂。
[0093] 本發(fā)明一種基于2DGrowingTree迷宮的數(shù)字置亂方法(記為方法1)具體步驟 如下:
[0094] 第1步:設(shè)定迷宮初始范圍Sinit =Omxn和迷宮有效區(qū)域Smaze = (SiJmxn,對(duì)于 ▽A,/i= 0, ...,m_l,j= 0, ...,n_l,若·^ ^,貝U標(biāo)記SiJ= -1,反之貝U標(biāo)記si;j= 0 表示該節(jié)點(diǎn)未訪問,若si;j>0表示該節(jié)點(diǎn)已訪問;
[0095] 第 2 步:對(duì)于 i= 0, ...,m-l,j= 0, ...,n_l,記Syd,d= 0, 1,2, 3 依次為節(jié)點(diǎn)si;」的下方、右方、上方和左方墻,初始化&,」.d= -1,d= 0, 1,2, 3,即將Smaze范 圍內(nèi)的所有節(jié)點(diǎn)以墻進(jìn)行分隔,-1表示有墻,〇表示無墻;
[0096]第3步:選擇隨機(jī)數(shù)發(fā)生器y=RG(X),設(shè)定初始值RG.init=seed,初始化 迷宮節(jié)點(diǎn)列表Amaze =Φ,節(jié)點(diǎn)更新序列Aupdate =Φ,按隨機(jī)數(shù)發(fā)生器隨機(jī)產(chǎn)生2個(gè)概率 PrecentJ P〇ldest e [0,1);
[0097] 第 4 步:選取 e足·,X=X。,.V= .V。,將Sxy 分別加到Amaze 和 Α_ε,即A_e = Anaze. &dd (Sx,Q AUpdate ^update* £icld (sx;
[0098] 第5步:若Amaze尹Φ,則循環(huán)執(zhí)行第6步?第8步
[0099] 第6步:產(chǎn)生1個(gè)隨機(jī)數(shù)Pe[0, 1),若Pe[0,U,則取Amaze尾部元素作為 當(dāng)前節(jié)點(diǎn)sx,y;反之若Pe[匕^匕^+匕^丄則取八^頭部元素作為當(dāng)前節(jié)點(diǎn)^^反之 則從Amaze 中隨機(jī)取一個(gè)元素作為當(dāng)前節(jié)點(diǎn)sx,y,sx,y=Amaze (index),index=random(Amaze. length);
[0100] 第7步:若sx,y周圍的鄰近節(jié)點(diǎn)中sx+1,y,sx,y+1,Sj^y,Su1存在未訪問的有效節(jié) 點(diǎn)sx,,y,eSmaze,則將sx,,y,加入到Amaze,即Amaze =Amaze.add(sx,,y,),Aupdate =Aupdate. add(sx、y,);
[0101] 第8步:若sx,y周圍的鄰近節(jié)點(diǎn)中sx+1,y,sx,y+1,Sj^y,S^1不存在未訪問的有效節(jié) 點(diǎn)sx,,y,eSmaze,則刪除Amaze索引位置為Index位置的元素,即Amaze.delete(index);
[0102] 第9步:利用Aupdate構(gòu)造Smaze = (si;j)mXn范圍內(nèi)的所有節(jié)點(diǎn)間的映射關(guān)系,從而將 Smaze= (SiJmxn范圍內(nèi)的所有節(jié)點(diǎn)置亂。
[0103] 本發(fā)明方法1中的Aupdate(O)為序列中的第1個(gè)元素,為迷宮的初始節(jié)點(diǎn),Aupdate. length等價(jià)為迷宮有效區(qū)域內(nèi)的所有節(jié)點(diǎn)數(shù)量。對(duì)于同樣的Smaze,輸入不同的&€乂_, 選定不同的y=RG(X)和RG.init,將產(chǎn)生不同的Aupdate。
[0104] 結(jié)合上述方法和不同映射方法得到用于任意封閉連通區(qū)域的置亂方法,如方法2 和方法3。
[0105] 方法2基于2DGrowingTree迷宮排列生成的節(jié)點(diǎn)更新序列置亂方法:
[0106] 第 1 步:設(shè)定Sinit =Onixn 和S隱e = (Sy)nixn,對(duì)于i= 0, j= 0,…,n-l,若si;jeSmaze,則初始si;j = 0,反之則標(biāo)記si;j = _1,將Sinit 復(fù)制為T= (ty) mXn >
[0107] 第2步:隨機(jī)選取V'.v。作為迷宮的初始節(jié)點(diǎn),選取隨機(jī)數(shù)發(fā)生器y = RG(x),設(shè)定初始值RG.init=seed按方法1生成Aupdate ;
[0108] 第3步:輸入整數(shù)作為映射偏移量11 (IlmodAupdate.length尹0),將其按式⑴規(guī) 范到(-Aupdate.length,Aupdate.length)范圍內(nèi)的整數(shù),按式⑵計(jì)算index;
[0109] 11 = 11modAupdate.length(I)
[0110] ind,, =?(// + I11〇d11 < 0 ⑵ Iu //>〇 κ}
[0川]第 4 步:對(duì)于 te,3(x,7)e4_fc>,按式⑶將tx,y =SiJ(若將tx,y = si;j修改為si;」=tx,y,則對(duì)應(yīng)為方法2的逆變換);
[0112] (i,j) =AupdateQi),ii= 0,...,Aupdate.Iength-I
[0113](X,y) =Aupdate (kk),kk= 0,…,Aupdate.length-1 (3)
[0114] kk= (ii+index)modAupdate.length
[0115]第 5 步:輸出T= (I^j)mxnt5
[0116] 方法2第3步若llmodAupdate.length=0,則對(duì)應(yīng)為Si,」=ti,」,為自身到自身的 映射,不能用于置亂。
[0117] 方法3基于2DGrowingTree迷宮排列生成的節(jié)點(diǎn)更新序列復(fù)合置亂方法,包括 以下步驟:
[0118] 第1步:設(shè)定5恤=〇"1><11和5111伽=(81,入 ><11,對(duì)于吟,7,1 = 0,...,111-1,]·= 0,…,n-l,若si;jeSmaze,則初始si;j = 0,反之則標(biāo)記si;j = _1,將Sinit 復(fù)制為T= (ty) mXn >
[0119] 第2步:隨機(jī)選取作為迷宮的初始節(jié)點(diǎn),選取隨機(jī)數(shù)發(fā)生器y = RGtl(X),y=RG1(X),設(shè)定隨機(jī)初始值RG?!nit=Seedc^RG1.init=Seed1 按方法 1 分別生 成迷宮節(jié)點(diǎn)更新序列;
[0120] 第3步:輸入任意整數(shù)作為映射偏移量11,并將其按式⑷規(guī)范到 范圍內(nèi)的整數(shù),按式(5)計(jì)算index;
[0121] // =IlmodAlihhih,.length (4)
[0122] index Λ(Π + Al^Sth)mod A:pdate.length U <0
[ u u>0K J
[0123]第 4 步:對(duì)于W,y)e4:/"ie,3(x,j〇 ,按式(6)將tx,y =si;」(若將tx,y =si;』 修改為si;」=tx,y,則對(duì)應(yīng)為方法3的逆變換);
[0124] (I,/) =Ali(lal(.{ii)Ji=Q,··-MldakJength-1
[0125] (x,y)=A]ipdate(kk)M= 0,···,4)pd(lte.length-1 (6)
[0126] kk=(ii+index)modΑ'ιψ<1α1(,.length
[0127]第 5 步:輸出T= (I^j)mxnt5
[0128] 若方法3第2步中輸入相同的迷宮初始節(jié)點(diǎn),選取同1個(gè)隨機(jī)發(fā)生器,設(shè)定相同的 初始值,則方法3退化為方法2。
[0129] 傳統(tǒng)的置亂研究,針對(duì)的對(duì)象一般為數(shù)字圖像。數(shù)字圖像是自然圖像的離散采樣 化,記圖像P的像素矩陣為P= (Pi,j)mXn,記24位圖像P24的R、G、B通道矩陣分別為P24.R =0^,」)"1><11、?24.6=& 1,」)111><11和?24』=(\』) 111><11;記8位和24位圖像?8上4的位面立方 體分別為P8.W= (Wuk)mxnx8和P24.W= (Wuk)mxi^4 ;對(duì)于8位圖像P8,其對(duì)應(yīng)的位面可 依次記為kk= 0, 1,…,7 ;對(duì)于24位圖像P24,其對(duì)應(yīng)的位面可依次記為 心^=(<)_片=〇,1,-_,23,其中每個(gè)位面等價(jià)為單色圖像的像素矩陣;記24位圖像P24對(duì)應(yīng)的RGB立方體為P24.C= (Ci,」,k)mXnX3 ;記24位圖像P24對(duì)應(yīng)的RGB通道立方體分別 為P24A=(c&丄·s、=(?Μ)_χ8 和
[0130] 本發(fā)明結(jié)合方法2、方法3給出6種基于2DGrowingTree迷宮更新序列和復(fù)合更 新序列的圖像置亂方法,提出6種圖像置亂方法,如方法4?方法9所示。
[0131] 方法4基于2DGrowingTree迷宮節(jié)點(diǎn)更新序列的圖像置亂方法:
[0132] 第1步:讀取待置亂圖像像素矩陣P= (PiJmxn作為Sinit,在SinitI選取特定區(qū)域 作為Sniaze ;
[0133]第2步:選取Vsw。作為迷宮的初始節(jié)點(diǎn),選取隨機(jī)數(shù)發(fā)生器y= RG(X),設(shè) 定初始值RG.init=seed和映射偏移量11 ;
[0134] 第3步:利用方法2輸出置亂后的矩陣P'=(p'UOmxn,將其寫為置亂后的圖像 (若將步驟3方法2修改為方法2逆變換,則對(duì)應(yīng)為方法4的逆變換)。
[0135] 方法5基于2DGrowingTree迷宮節(jié)點(diǎn)更新序列復(fù)合的圖像置亂方法:
[0136] 第1步:讀取待置亂圖像像素矩陣P= (PiJmxn作為Sinit,在SinitI選取特定區(qū)域 作為Sniaze ;
[0137] 第2步:選取y作為迷宮的初始節(jié)點(diǎn),選取隨機(jī)數(shù)發(fā)生器y= RG0(X),y=RG1 (X),設(shè)定初始值RG。·init=seed。,RG1.init=Seed1 和映身寸偏移量 11 ;
[0138] 第3步:利用方法3輸出置亂后的矩陣P'=(p'υ)πΧη將其寫為置亂后的圖像 (若將步驟3方法3修改為方法3逆變換,則對(duì)應(yīng)為方法5的逆變換)。
[0139] 方法6基于2DGrowingTree迷宮節(jié)點(diǎn)更新序列的圖像R、G、B通道置亂方法:
[0140]第 1步:讀取 24 位圖像R、G、B通道矩陣P24.R= (I^j)mxnJ24-G=(gi,j)mXn和P24-B =(kPmXn,將其分別作為,在C,C,C,選取特定區(qū)域作為CJLJiL;
[0141] 第2步:選取分別作為R、G、B通道的初始 節(jié)點(diǎn),選取隨機(jī)數(shù)發(fā)生器y=RGK(x),y=RGe(X),y=RGb(X),設(shè)定初始值RGK.init=seedK,RGg.init=seedG,RGb.init=seedB 和映射偏移量 11K, 11G,IIb ;
[0142] 第3步:利用方法2,依次輸出置亂后的矩陣R',G',B'寫為置亂后的圖像(若 將步驟3方法2修改為方法2逆變換,則對(duì)應(yīng)為方法6的逆變換)。
[0143] 方法7基于2DGrowingTree迷宮節(jié)點(diǎn)更新序列復(fù)合的圖像R、G、B通道置亂方 法:
[0144]第1步:讀取 24 位圖像R、G、B通道矩陣P24.R= (IYj)mxnJ2^G=(gjmxn和P24.B =(Kj)mXn,將其分別作為,在C,C,C選取特定區(qū)域作為*;
[0145]第 2 步:選取 eeAL 分別作為R、G、B通道迷宮的初始節(jié)點(diǎn),選取隨機(jī)數(shù)發(fā)生器 少=,少=/?Gr(x),.v== /叫('.Uk RGfiMt = seed^RGf .imt = seedf ,RG^ .init = seed^ ,RGi^ init=seed^ ,RGfi Mt=Seedfi ,RG^ .Mt=seecl^和映射偏移量 11K,11G,IIb ;
[0146] 第3步:利用方法3,依次輸出置亂后的矩陣R',G',B'寫為置亂后的圖像(若 將步驟3方法3修改為方法3逆變換,則對(duì)應(yīng)為方法7的逆變換)。
[0147] 方法8基于2DGrowingTree迷宮節(jié)點(diǎn)更新序列的圖像比特位面置亂方法:
[0148] 第1步:讀取待置亂圖像比特位面,對(duì)于8位圖像P8,將 舄^=(〇_屬=0,1,"',7依次作為5^,妓=0,1/",7,對(duì)24位圖像? 24,將 =〇Λ…,23依次作為忠,絲=〇,1,··_,23,在以上選取特定區(qū)域作為 Sfii . nuze9
[0149] 第2步:選取V^,,。作為迷宮的初始節(jié)點(diǎn),選取隨機(jī)數(shù)發(fā)生器y=RGkk(x), 設(shè)定初始值RGkk.init=Seedkk和映射偏移量Ilkk ;
[0150] 第3步:利用方法2,依次輸出置亂后的矩陣,對(duì)于8位圖像P8,將W'kk,kk= 〇,…,7寫為置亂后的圖像,對(duì)于24位圖像P24,將Wkk,kk= 0,…,23寫為置亂后的圖像 (若將步驟3方法2修改為方法2逆變換,則對(duì)應(yīng)為方法8的逆變換)。
[0151] 方法9基于2DGrowingTree迷宮節(jié)點(diǎn)更新序列復(fù)合的圖像比特位面置亂方法:
[0152] 第1步:讀取待置亂圖像比特位面,對(duì)于8位圖像P8,將 巧.%=(>〇_,絲= 〇,1,···,7 依次作為 5^,Μ= 0,1,.··,7,對(duì)于 24 位圖像P24,將 = (<)_,欣=〇,1,··、23依次作為心,缺=0,1,···,23,在K上選取特定區(qū)域作為
[0153] 第2步:選取eS=作為迷宮的初始節(jié)點(diǎn),選取隨機(jī)數(shù)發(fā)生器 產(chǎn)尺Gf(X),產(chǎn)尺Gf(X),設(shè)定初始值穴貧氣滅=sm/f,iraY=sm/f和映射偏移量 Ilkk
[0154] 第3步:利用方法3,依次輸出置亂后的矩陣,對(duì)于8位圖像P8,將W'kk,kk= 〇,…,7寫為置亂后的圖像,對(duì)于24位圖像P24,將Wkk,kk= 0,…,23寫為置亂后的圖像。 (若將步驟3方法3修改為方法3逆變換,則對(duì)應(yīng)為方法9的逆變換)。
[0155] 以下結(jié)合附圖具體實(shí)施例對(duì)本發(fā)明方法進(jìn)行詳細(xì)說明:
[0156] 以DelphiXE5作為案例實(shí)施環(huán)境,結(jié)合附圖對(duì)本發(fā)明實(shí)施方式進(jìn)行詳細(xì)說明,但 不局限于本實(shí)施案例,其中圖1是方法1流程圖,圖2是方法2流程圖,圖3是方法3流程 圖。
[0157] 參考圖1的過程如下:
[0158] 第1步:假定迷宮的初始范圍設(shè)置為Sinit=O3x3,迷宮的有效區(qū)域Smaze= (Sy)3x3 設(shè)置為Sinit左上角2X2網(wǎng)格區(qū)域內(nèi),則:
【權(quán)利要求】
1. 一種基于2D Growing Tree迷宮的數(shù)字置亂方法,其特征在于包括以下步驟: 第1步:設(shè)定迷宮初始范圍Sinit = Omxn和迷宮有效區(qū)域Smaze = (Sy)mxn,對(duì)于外./ 1 = 0,"%111-1,」=0,"%11-1,若*^./在^<_?;,則標(biāo)記8 1,』=-1,反之則標(biāo)記81,』=0表示該 節(jié)點(diǎn)未訪問,若si;』>0表示該節(jié)點(diǎn)已訪問; 第 2 步:對(duì)于 i = 0, "'Iii-I, j = 0, "'Ii-I,記 Sy d, d = 0, 1,2, 3 依次 為節(jié)點(diǎn)Su的下方、右方、上方和左方墻,初始化Sy. d = -1,d = 0, 1,2, 3,即將Smaze范圍內(nèi) 的所有節(jié)點(diǎn)以墻進(jìn)行分隔,si;j. d = -1表示有墻,si;j. d = 0表示無墻; 第3步:選擇隨機(jī)數(shù)發(fā)生器y = RG (X),設(shè)定初始值RG. init = seed,初始化 迷宮節(jié)點(diǎn)列表Amaze = Φ,節(jié)點(diǎn)更新序列Aupdate = Φ,由隨機(jī)數(shù)發(fā)生器產(chǎn)生2個(gè)概率 Precent,P〇ldest G [〇,1); 第 4 步:選取 e J = A,.v = -v。,將 sx,y 分別加到 Amaze 和 Aupdate,即 Amaze = Amaze. add (sx; y) Aupdate = Aupdate. add (sx; y); 第5步:若Amaze尹Φ,則循環(huán)執(zhí)行第6步?第8步; 第6步:產(chǎn)生1個(gè)隨機(jī)數(shù)Pe [〇, 1),若Pe [〇, Pramt],則取Amaze尾部元素作為當(dāng)前節(jié)點(diǎn) sx,y ;反之若P e [P_nt, Praa^Ptjldest],則取Aniaze頭部元素作為當(dāng)前節(jié)點(diǎn)s x,y,反之則從Aniaze 中隨機(jī)取一個(gè)元素作為當(dāng)前節(jié)點(diǎn) sx,y, sx,y = AmazeQndex), index = random(Amaze. length); 第7步:若sx,y周圍的鄰近節(jié)點(diǎn)中sx+1,y, sx,y+1, Sj^y, Sx^1存在未訪問的有效節(jié) 點(diǎn) sx,,y,e Smaze,則將 sx,,y,加入到 Amaze,即 Amaze = Amaze. add(sx,,y,),Aupdate = Aupdate. add(sx、y,); 第8步:若sx,y周圍的鄰近節(jié)點(diǎn)中sx+1,y, sx,y+1, Sj^y, Sj^1不存在未訪問的有效節(jié)點(diǎn) sx,e Sniaze,則刪除 Aniaze 索引位置為 Index 位置的元素,即 Aniaze. delete (index); 第9步:利用Aupdate構(gòu)造 Sniaze = (Si,Pnixn范圍內(nèi)所有節(jié)點(diǎn)間的映射關(guān)系,從而將Sniaze = (Siij)mxn范圍內(nèi)的所有節(jié)點(diǎn)置亂。
2. 如權(quán)利要求1所述的基于2D Growing Tree迷宮的數(shù)字置亂方法,其特征在于第9 步中映射方法具體包括以下步驟: 第9. 1步:選取整數(shù)作為映射偏移量11,11 mod Aupdate. length尹0,將其按式⑴規(guī)范 至1J (_AUpdate. length, Aupdate. length)范圍內(nèi)的整數(shù),按式⑵計(jì)算 index ; 11 = 11 mod AUDdate. length
(I) 弟 9. 2 步:將 Sin it 復(fù)制為 T = ; 第 9. 3 步:對(duì)于 V(/,/)e4_te,3(x,_y)e4_te,按式⑶將 Sy 賦值給 tx,y; (i,J·)= AupdateQi), ii = 0, ...,Aupdate. Iength-I (X,y) = Aupdate (kk),kk = 0,…,Aupdate. length-1 (3) kk = (ii+index)mod Aupdate. length 第 9. 4 步:輸出 T = (I^j)mxnt5
3. 如權(quán)利要求1所述的基于2D Growing Tree迷宮的數(shù)字置亂方法,其特征在于: 選取兩個(gè)隨機(jī)數(shù)發(fā)生器y = RGci(X),y = RG1(X),設(shè)定隨機(jī)初始值RGci. init = seed。, RG1. init = Seed1分別生成迷宮節(jié)點(diǎn)更新序列; 第9步中映射方法具體包括以下步驟: 第9. 1步:輸入任意整數(shù)作為映射偏移量11,并將其按式(4)規(guī)范到 議成淨(jìng)幻范圍內(nèi)的整數(shù),按式(5)計(jì)算index ;
弟 9. 2 步:將 Sin it 復(fù)制為 T = (I^j)mxn ; 第 9. 3 步:對(duì)于 V〇'J)e,按式(6)將 si;」賦值給 tx,y;
第 9. 4 步:輸出 T = (I^j)mxnt5
4. 如權(quán)利要求2所述的基于2D Growing Tree迷宮的數(shù)字置亂方法,其特征在于:在 進(jìn)行圖像置亂時(shí),具體包括以下步驟: 第(1)步:讀取待置亂圖像像素矩陣P= (Piij)mxn作為Sinit,在Sinit上選取特定區(qū)域作 為 Smaze ; 第⑵步:選取作為迷宮的初始節(jié)點(diǎn),選取隨機(jī)數(shù)發(fā)生器y = RG(x),設(shè)定 初始值RG. init = seed和映射偏移量11 ; 第(3)步:輸出置亂后的矩陣P' =(ρ' υ)πΧη,將其寫為置亂后的圖像。
5. 如權(quán)利要求3所述的基于2D Growing Tree迷宮的數(shù)字置亂方法,其特征在于:在 進(jìn)行圖像置亂時(shí),具體包括以下步驟: 第(1)步:讀取待置亂圖像像素矩陣P= (Piij)mxn作為Sinit,在Sinit上選取特定區(qū)域作 為 Smaze ; 第⑵步:選作為迷宮的初始節(jié)點(diǎn),選取隨機(jī)數(shù)發(fā)生器y = RGtl(X), y = RGi(x),設(shè)定初始值 RGtl. init = seedQ,RG1. init = Seed1 和映射偏移量 11 ; 第(3)步:輸出置亂后的矩陣P' =(p' i,Pmxn將其寫為置亂后的圖像。
6. 如權(quán)利要求2所述的基于2D Growing Tree迷宮的數(shù)字置亂方法,其特征在于:在 進(jìn)行圖像置亂時(shí),具體包括以下步驟: 第⑴步:讀取24位圖像R、G、B通道矩陣匕·!?=^^』)…、^^=^』)…*^· B = (K Jmxn,將其分別作為初始范圍,在選取特定區(qū)域作為有效 區(qū)域*; 第⑵步:選取ν<,Λ £5^分別作為R、G、B通道的初始節(jié)點(diǎn), 選取隨機(jī)數(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 ; 第⑶步:輸出置亂后的矩陣R',G',B'寫為置亂后的圖像。
7. 如權(quán)利要求3所述的基于2D Growing Tree迷宮的數(shù)字置亂方法,其特征在于:在 進(jìn)行圖像置亂時(shí),具體包括以下步驟: 第⑴步:讀取24位圖像R、G、B通道矩陣匕·!?=^^』)…、^^=^』)…*^· B = (Mmxn,將其分別作為初始范圍C,C,C,在C,C,t選取特定區(qū)域作為有效 區(qū)域; 第(2 )步:選取 ν<,Λ,<ηet- 分別作為R、G、B通道迷宮的初始節(jié)點(diǎn),選取隨機(jī)數(shù)發(fā)生器 少=⑴,.V = RW(X)J =⑴,少' ==W RG^.Mt = seed$,RGfMt = seedf ,RG^nit = seed=,RG\'init = seed=,RGgMt = seedg,RGf .Mt = seedf 和映射偏移量 11E, 11G, 11B ; 第(3)步:依次輸出置亂后的矩陣R',G',B'寫為置亂后的圖像。
8. 如權(quán)利要求2所述的基于2D Growing Tree迷宮的數(shù)字置亂方法,其特征在于:在 進(jìn)行圖像置亂時(shí),具體包括以下步驟: 第⑴步:讀取待置亂圖像比特位面,對(duì)于8位圖像P8,將圖像位面 ^^=(<)_龍=〇,1,?,7依次作為初始范圍',統(tǒng)=0,1,?,7,對(duì)于24位圖像?24,將圖 像位面戶24冗-=(>〇_,,欲= 〇4,'··,23依次作為初始范圍= …,23,在K上選取 特定區(qū)域作為有效區(qū)域次 第⑵步:選取v<,.。作為迷宮的初始節(jié)點(diǎn),選取隨機(jī)數(shù)發(fā)生器y = RGkk(X),設(shè) 定初始值RGkk. init = Seedkk和映射偏移量Ilkk ; 第⑶步:依次輸出置亂后的矩陣,對(duì)于8位圖像P8,將置亂后的位面W' kk,kk = 〇,…,7寫為置亂后的圖像,對(duì)于24位圖像P24,將置亂后的位面W' kk, kk = 0,…,23寫為 置亂后的圖像。
9. 如權(quán)利要求3所述的基于2D Growing Tree迷宮的數(shù)字置亂方法,其特征在于:在 進(jìn)行圖像置亂時(shí),具體包括以下步驟: 第⑴步:讀取待置亂圖像比特位面,對(duì)于8位圖像P8,將圖像位面 巧.《^=?)_灕=〇,1^",7依次作為初始范圍^及=〇,1,"%7,對(duì)于24位圖像1>24,將圖 像位面&^=(<)_々=〇丄一,23依次作為初始范圍巧,妖=〇,1,一,23,在^上選取 特定區(qū)域作為有效區(qū)域 第⑵步:選取作為迷宮的初始節(jié)點(diǎn),選取隨機(jī)數(shù)發(fā)生器 產(chǎn)(X),產(chǎn)i?Gf (X),設(shè)定初始值對(duì)·Μ=*?<,.M=Saaaf和映射偏移量Ilkk; 第⑶步:依次輸出置亂后的矩陣,對(duì)于8位圖像P8,將置亂后的位面W' kk,kk = 〇,…,7寫為置亂后的圖像,對(duì)于24位圖像P24,將置亂后的位面W' kk, kk = 0,…,23寫為 置亂后的圖像。
【文檔編號(hào)】G06T1/00GK104376528SQ201410748364
【公開日】2015年2月25日 申請(qǐng)日期:2014年12月8日 優(yōu)先權(quán)日:2014年12月8日
【發(fā)明者】邵利平 申請(qǐng)人:陜西師范大學(xué)