一种基于2DGrowingTree迷宫的数字置乱方法

文档序号:6637870阅读:327来源:国知局
一种基于2D Growing Tree 迷宫的数字置乱方法
【专利摘要】本发明提供一种基于2D Growing Tree迷宫的数字置乱方法,预先对Growing Tree迷宫生成区域进行人为限定,从而可用于人为指定的任意2D封闭连通区域,同时按迷宫节点更新顺序对迷宫设定区域的每个节点赋予唯一编号,由此产生迷宫设定区域所有节点的排列,在此基础上构造了基于2D Growing Tree迷宫的节点更新序列和节点更新序列复合的置乱方法,从而可将所有节点置乱。本发明所给出的置乱方法具有普适性和灵活性,在使用过程中不存在任何限制,不仅能用于传统置乱方法所针对的规则区域,例如正方形和矩形区域,也可用于任意选定的2D封闭连通不规则区域置乱。本发明也给出了用于像素矩阵,R、G、B通道矩阵和比特位面的图像置乱方法。
【专利说明】-种基于2D Growing Tree迷宫的数字置乱方法

【技术领域】
[0001] 本发明主要涉及信息安全和数字信号处理等交叉研究领域,具体为基于Growing Tree迷宫生成策略的数字置乱方法,特别涉及一种基于2DGrowingTree迷宫的数字置乱 方法。

【背景技术】
[0002] 近年来,伴随着计算机和网络技术的发展,越来越多的图像在网络中传输,在给用 户提供方便的同时,也带来了一系列的安全隐患。对图像的不当使用和恶意篡改,不仅涉及 个人隐私问题,也会给社会带来严重的负面影响。保障图像的核心技术是数字图像加密。
[0003] 在数字图像加密领域,研究最为广泛和灵活的一类图像加密方法,就是在同一空 间内,对图像的重编码技术,即图像置乱技术。
[0004] 随着计算机技术的飞速发展,数字图像置乱技术已成为数字安全传输和保密的主 要手段。其基本思路就是把一幅图像经过一定的数学变换,转变成面目全非的另一幅图像, 以起到对图像的安全保密作用。
[0005] 数字图像置乱也是目前隐密术、数字水印、信息分存和可视密码技术中,一项关键 预处理技术。已受到了国内外学者的普遍重视,并取得了丰硕的研究成果。
[0006] 数字图像置乱最初来源于有线电视信号加密,早期的置乱在位置空间进行,用于 对图像像素位置打乱,这些置乱方法包括行倒置置乱、行平移置乱、行置换置乱、行循环置 舌U行分量切割置乱等。随着置乱技术的不断发展,目前已提出的置乱方法多种多样,既可 用于位置置换,也可用于灰度替代。
[0007] 当前已提出的置乱方法主要有:基于离散元素序列的置乱方法、基于扫描路线的 置乱方法、基于遍历矩阵的置乱方法、基于迭代函数系统的置乱方法、基于离散混沌映射的 置乱方法、基于中国拼图的置乱方法和基于矩阵变换的置乱方法等。
[0008] 目前尽管已提出了多种置乱方法,但传统置乱方法大多只能用于规则区域置乱, 例如正方形和长方形区域,而不能对图像选定的任意不规则区域进行置乱。
[0009] 例如基于Fibonacci序列和Lucas序列的置乱方法将置乱图像的宽、高拘泥为 Fibonacci序列和Lucas序列元素;基于SCAN语言和Hilbert曲线的置乱方法将置换图像 的大小约束为2nX2n的正方形图像;由于并非所有图像都存在骑士巡游路径,由此导致了 基于骑士巡游的置乱方法只能用于图像宽、高在特定尺度上的图像;对于奇数阶幻方,其置 乱图像边长为奇数,对于双偶阶幻方,其置乱图像边长为4的整数倍;由于任意阶的拉丁方 并非都存在,基于拉丁方的置乱方法只能用于置乱图像边长为特定尺度的图像,例如边长 为Pn且P为素数的图像;对于离散KolmogorovFlowsMap和亚仿射变换,只能用于置乱正 方形图像;传统的基于矩阵的图像置乱方法,其基本表示形式为X[i]=(AX[H])modN,但由 于只有一个尺度参数N,由此决定了基于矩阵的图像置乱方法只能用于置乱特定尺度的图 像,例如正方形图像和对矩形图像的灰度进行置乱。
[0010]在文献二维非等长图像置乱变换(电子学报,2007, 35 (7):1290-1294), 二维三角映射及其在图像置乱上的应用(InformationTechnology Journal,2008, 7 (I) :40-47),二维双尺度矩形映射及其在图像置乱上的应用(计 算机辅助设计与图形学报,2009, 21 (7) : 1026-1034)和多尺度三角映射及其在 变尺度置舌L上的应用(InternationalJournalofComputerApplicationsin Technology, 2010, 38 (1-3) :74-85),我们将X[i] = (AX[i-1])modN拓展为X[i] = (AX[i-1])mod N,N为有限个尺度构成的尺度向量,提出了 2维非等长变换存在性判据,2维双尺度矩形映 射的特殊形式-2维三角映射,以及2维双尺度矩形映射一般性构造方法和多尺度三角映 射。尽管X[i]= (AX[H])m〇dN可用于任意矩形图像置乱,并可对图像位置和灰度同时置乱, 但所提出的方法只能对规则区域进行置乱,不能用于对选定的任意不规则区域进行置乱。 [0011] 传统的迷宫生成方法在人工智能和优化计算领域应用较广,一般用于动态复杂场 景的模拟和仿真,在信息安全领域涉及较少,在文献基于迷宫置换和Logistic混沌映射的 图像加密算法(计算机应用,2014, 34 (7) : 1902-1908),我们探讨了基于DFS迷宫节点入栈 顺序和行优先扫描顺序高效产生置换的方法,将迷宫生成方法应用于任意矩形图像加密, 但所提出的方法不能应用于图像的任意连通不规则封闭区域加密。


【发明内容】

[0012] 本发明的目的在于克服现有技术缺陷,提供一种基于2DGrowingTree迷宫的数 字置乱方法,该方法可用于2D任意连通封闭区域数据置乱。
[0013] 为实现上述目的,本发明采用以下技术方案:
[0014] 一种基于2DGrowingTree迷宫的数字置乱方法,包括以下步骤:
[0015] 第1步:设定迷宫初始范围Sinit =Omxn和迷宫有效区域Smaze = (Sy)mxn,对于 ?',/i= 0,…,m-1,j= 0,…,n-1,若Av 在Sm则标记Si,j= -1,反之则标记Si,j= 〇 表示该节点未访问,若si;j>0表示该节点已访问;
[0016] 第 2 步:对于e *^亂Vi= 0,…,m-1,j= 0,…,n-1,记Si,j.d,d= 0, 1,2, 3 依次为节点si;」的下方、右方、上方和左方墙,初始化&,」.d= -1,d= 0, 1,2, 3,即将Smaze范 围内的所有节点以墙进行分隔,si;j.d= -1表示有墙,si;j.d= 0表示无墙;
[0017] 第3步:选择随机数发生器y=RG(X),设定初始值RG.init=seed,初始化 迷宫节点列表Amaze =Φ,节点更新序列Aupdate =Φ,由随机数发生器随机产生2个概率 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尹Φ,则循环执行第6步?第8步;
[0020] 第6步:产生1个随机数Pe[0, 1),若Pe[0,U,则取Amaze尾部元素作为 当前节点sx,y;反之若Pe[匕^匕^+匕^丄则取八^头部元素作为当前节点^^反之 则从Amaze 中随机取一个元素作为当前节点sx,y,sx,y=Amaze (index),index=random(Amaze. length);
[0021]第7步:若sx,y周围的邻近节点中sx+1,y,sx,y+1,SxW Su1存在未访问的有效节 点sx,,y,eSmaze,则将sx,,y,加入到Amaze,即Amaze =Amaze.add(sx,,y,),Aupdate =Aupdate. add(sx、y,);
[0022] 第8步:若sx,y周围的邻近节点中sx+1,y,sx,y+1,Vu,Sj^1不存在未访问的有效节 点sx,,y,eSmaze,则删除Amaze索引位置为Index位置的元素,即Amaze.delete(index);
[0023] 第9步:利用Aupdate构造Smaze = (Si,pmxn范围内所有节点间的映射关系,从而将 Smaze= (SiJmxn范围内的所有节点置乱。
[0024] 作为本发明进一步优选方案,第9步中映射方法具体包括以下步骤:
[0025] 第9. 1步:选取整数作为映射偏移量11,11modAupdate.length关0,将其按式(1) 规范到(-Aupdate.length,Aupdate.length)范围内的整数,按式⑵计算index;
[0026] 11 = 11modAupdate.length(I) f(// +Λ^,.length)modΛlength// < 0
[0027] index= (2) IlIl>0
[0028]弟 9. 2 步:将Sinit 复制为T=(I^j)mxn;
[0029] 第 9· 3 步:对于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] 选取两个随机数发生器y=RGci(X),y=RG1 (X),设定随机初始值RGci.init= seed。,RG1.init=Seed1生成迷宫节点更新序列;
[0035] 第9步中映射方法具体包括以下步骤:
[0036] 第9. 1步:输入任意整数作为映射偏移量11,并将其按式⑷规范到 妙)范围内的整数,按式(5)计算index ;
[0037] // = //modAlphih,.length(4) ,I(II+A0,,.!emflh)modA0.,.lengthIl<0
[0038] index=K ^ (S)
[ Il //>0
[0039]第 9· 2 步:将Sinit 复制为T=UiJmxn;
[0040]第 9·3步:对于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] 作为本发明进一步优选方案,在进行图像置乱时,具体包括以下步骤:
[0046]第⑴步:读取待置乱图像像素矩阵P= (Pi,j)mXn作为Sinit,在Sinit上选取特定区 域作为Sniaze ;
[0047] 第⑵步:选取作为迷宫的初始节点,选取随机数发生器y= RG(x), 设定初始值RG.init=seed和映射偏移量11 ;
[0048] 第(3)步:输出置乱后的矩阵P' = (p'υ)πΧη,将其写为置乱后的图像。
[0049] 作为本发明进一步优选方案,在进行图像置乱时,具体包括以下步骤:
[0050] 第⑴步:读取待置乱图像像素矩阵P= (Pi,j)mXn作为Sinit,在Sinit上选取特定区 域作为Sniaze ;
[0051] 第⑵步:选取VsvibA,,,., 作为迷宫的初始节点,选取随机数发生器y = RG0(X),y=RG1(X),设定初始值RG。·init=seed。,RG1.init=Seed1 和映身寸偏移量 11 ;
[0052] 第⑶步:输出置乱后的矩阵P' = (p'^)πΧη将其写为置乱后的图像。
[0053] 作为本发明进一步优选方案,在进行图像置乱时,具体包括以下步骤:
[0054]第⑴步:读取 24 位图像R、G、B通道矩阵P24.R= (Rj)mxi^P24-G= (gi,j)mXn 和 P24.B= (Hn,将其分别作为初始范围,在选取特定区域作为有 效区域;
[0055] 第⑵步:选取 ibeSL分别作为R、G、B通道的初 始节点,选取随机数发生器y=RGK(x),y=RGe(x),y=RGb(X),设定初始值RGK.init=seedK,RGg.init=seedG,RGb.init=seedB 和映射偏移量 11K, 11G,IIb ;
[0056] 第⑶步:输出置乱后的矩阵R',G',B'写为置乱后的图像。
[0057] 作为本发明进一步优选方案,在进行图像置乱时,具体包括以下步骤:
[0058]第⑴步:读取 24 位图像R、G、B通道矩阵P24.R= (Rj)mxi^P24-G= (gi,j)mXn 和 p24.b= (Kj)mxn,将其分别作为初始范围,在C,C,C.选取特定区域作为
[0059]第(2)步:选取 ,<.n^ 分别作为R、G、B通道迷宫的初始节点,选取随机数发生器 少=/?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] 作为本发明进一步优选方案,在进行图像置乱时,具体包括以下步骤:
[0062]第⑴步:读取待置乱图像比特位面,对于8位图像P8,将图像位面 以仏=(<U,狀=〇,1/",7依次作为初始范围C,妖= 0,Ι,···,7,对于24位图像P24,将图像位面A·%-=(<)_狀=〇,1,?,23依次作为初始范围々,欲=0,1,?,23,在5^上选取 特定区域作为有效区域Cb;
[0063] 第⑵步:选取作为迷宫的初始节点,选取随机数发生器y= RGkk(X),设定初始值RGkk.init=Seedkk和映射偏移量Ilkk;
[0064] 第(3)步:依次输出置乱后的矩阵,对于8位图像P8,将置乱后的位面W'kk,kk= 〇,…,7写为置乱后的图像8,对于24位图像P24,将置乱后的位面Wkk,kk= 0,…,23 写为置乱后的图像。
[0065] 作为本发明进一步优选方案,在进行图像置乱时,具体包括以下步骤:
[0066] 第⑴步:读取待置乱图像比特位面,对于8位图像P8,将图像位面 =Od尨= 〇,1,···,7依次作为初始范围?,Μ= 0,1,···,7 ,对于24位图像P24,将图 像位面P24.% =(>CU,妖二0,1,…,23依次作为初始范围笔r,狀:0,1,…,23,在以上选取 特定区域作为有效区域
[0067]第⑵步:选取Vst,.eS=作为迷宫的初始节点,选取随机数发生器 _y=i?G^(x),= ,设定初始值 和映射偏移量Ilkk;
[0068]第(3)步:依次输出置乱后的矩阵,对于8位图像P8,将置乱后的位面W'kk,kk= 〇,…,7写为置乱后的图像8,对于24位图像P24,将置乱后的位面Wkk,kk= 0,…,23 写为置乱后的图像。
[0069]本发明同现有技术优点分析
[0070] (1)传统的迷宫生成方法在人工智能和优化计算领域应用较广,一般用于动态复 杂场景的模拟和仿真,但在信息安全领域涉及较少,而传统的置乱方法一般将置乱空间局 限在特定的尺度上,用于图像规则区域置乱,例如正方形图像和矩形图像以及仅适用于特 定尺度图像的规则区域加密,方法不具有普适性,在实施过程中存在使用限制。本发明则将 传统的迷宫生成方法引入到信息安全中的置乱处理方法中,在GrowingTree迷宫生成方法 中添加了迷宫有效区域Smaze约束限制,使其仅在事先选定的2D任意封闭连通区域Smaze上 产生迷宫,同时将GrowingTree迷宫节点更新顺序以节点更新序列Aupdate输出用于生成排 列,利用该排列构造所有节点之间的映射关系,从而将所有节点置乱。
[0071] 在此基础上本发明还给出了结合节点更新序列和节点更新序列复合的数字置乱 方法。同现有方法相比,本发明所给出的置乱方法具有普适性和灵活性,在使用过程中不存 在使用限制,不仅可以用于置乱传统置乱方法的规则区域,例如正方形和矩形区域,也可以 用于任意选定的2D连通封闭区域。
[0072] (2)本发明所给出的置乱方法可单独使用,也可多次迭代,还可将不同方法联合使 用,也可和现有的信息隐藏、数字水印、秘密共享和加密策略相结合,结合任意设定的随机 数发生器对任意选定2D连通封闭区域数据提供不同安全级别的多重保护,具备较高的实 际应用价值。
[0073](3)同时本发明所针对的对象也不仅仅是图像,可以用于任意封闭连通区域数据 的置乱和恢复。

【专利附图】

【附图说明】
[0074] 图1是本发明具体实施例:方法1 一种基于2DGrowingTree迷宫的数字置乱方 法流程图;
[0075] 图2是本发明具体实施例:方法2结合具体映射方法的数字置乱方法流程图;
[0076] 图3是本发明具体实施例:方法3结合另一种映射方法的数字置乱方法流程图;
[0077] 图4是本发明实施例:测试图像(含24位真彩色人像照片和迷宫有效区域设定图 像包括五边形、六边形、五角星、心形、闪电形、空心云状图和人像前景等单色图像,其中黑 色为迷宫有效区域,所有图像分辨率均为80X60);
[0078] 图5是传统的GrowingTree迷宫方法生成的80X60迷宫;
[0079] 图6是本发明对传统的GrowingTree迷宫方法添加有效区域限制的产生的迷宫 (以图4中的空心云状图和人像前景为迷宫有效区域);
[0080] 图7是本发明实施例:由图4五边形设定区域按方法1中GrowingTree迷宫法产 生的前30个元素排列;
[0081] 图8是本发明实施例:以5X6迷宫为例验证方法2 (原始矩阵、迷宫生成排列、正 映射、逆映射、置乱矩阵和恢复矩阵);
[0082] 图9是本发明实施例:以5X6迷宫为例验证方法3 (原始矩阵、迷宫生成排列1、 迷宫生成排列2、正映射、逆映射、置乱矩阵和恢复矩阵);
[0083] 图10是本方法实施例:以图4测试例为基础对方法4的验证图样;
[0084] 图11是本方法实施例:以图4测试例为基础对方法5的验证图样;
[0085] 图12是本方法实施例:以图4测试例为基础对方法6的验证图样;
[0086] 图13是本方法实施例:以图4测试例为基础对方法7的验证图样;
[0087] 图14是本方法实施例:以图4测试例为基础对方法8的验证图样;
[0088] 图15是本方法实施例:以图4测试例为基础对方法9的验证图样。

【具体实施方式】
[0089] 以下结合附图具体实施例对本发明方法进行详细描述:
[0090] GrowingTree生成策略是一种典型的迷宫生成策略,其基本思路是将已访问的节 点形成一个列表,不断从列表中取元素,将其邻近节点的未访问元素加入列表,如果邻近的 节点不存在未访问的元素,则将其从列表中删除,直至列表为空。GrowingTree迷宫生成策 略可根据所取元素的策略,例如最近添加,最先添加和随机选择,产生不同纹理的迷宫。传 统的GrowingTree迷宫是在mXn规模网格上的任意节点出发,产生一条连接所有网络节 点且具有复杂迂回通道的迷宫。
[0091] 经典GrowingTree迷宫生成方法在人工智能和优化计算领域应用较广,一般用于 动态复杂场景的模拟和仿真,但在信息安全领域涉及较少。
[0092] 本发明预先对GrowingTree迷宫生成区域进行人为限定,则GrowingTree生成 迷宫不光可以应用于规则区域,例如正方形区域和矩形区域等,同时也可应用于人为指定 的任意区域,例如2D封闭连通区域,同时可按迷宫节点更新顺序对迷宫限定区域的每个节 点赋予一个唯一的编号,由此可产生一个排列,利用该排列构造所有节点之间的映射关系, 从而将所有节点置乱。
[0093] 本发明一种基于2DGrowingTree迷宫的数字置乱方法(记为方法1)具体步骤 如下:
[0094] 第1步:设定迷宫初始范围Sinit =Omxn和迷宫有效区域Smaze = (SiJmxn,对于 ▽A,/i= 0, ...,m_l,j= 0, ...,n_l,若·^ ^,贝U标记SiJ= -1,反之贝U标记si;j= 0 表示该节点未访问,若si;j>0表示该节点已访问;
[0095] 第 2 步:对于 i= 0, ...,m-l,j= 0, ...,n_l,记Syd,d= 0, 1,2, 3 依次为节点si;」的下方、右方、上方和左方墙,初始化&,」.d= -1,d= 0, 1,2, 3,即将Smaze范 围内的所有节点以墙进行分隔,-1表示有墙,〇表示无墙;
[0096]第3步:选择随机数发生器y=RG(X),设定初始值RG.init=seed,初始化 迷宫节点列表Amaze =Φ,节点更新序列Aupdate =Φ,按随机数发生器随机产生2个概率 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尹Φ,则循环执行第6步?第8步
[0099] 第6步:产生1个随机数Pe[0, 1),若Pe[0,U,则取Amaze尾部元素作为 当前节点sx,y;反之若Pe[匕^匕^+匕^丄则取八^头部元素作为当前节点^^反之 则从Amaze 中随机取一个元素作为当前节点sx,y,sx,y=Amaze (index),index=random(Amaze. length);
[0100] 第7步:若sx,y周围的邻近节点中sx+1,y,sx,y+1,Sj^y,Su1存在未访问的有效节 点sx,,y,eSmaze,则将sx,,y,加入到Amaze,即Amaze =Amaze.add(sx,,y,),Aupdate =Aupdate. add(sx、y,);
[0101] 第8步:若sx,y周围的邻近节点中sx+1,y,sx,y+1,Sj^y,S^1不存在未访问的有效节 点sx,,y,eSmaze,则删除Amaze索引位置为Index位置的元素,即Amaze.delete(index);
[0102] 第9步:利用Aupdate构造Smaze = (si;j)mXn范围内的所有节点间的映射关系,从而将 Smaze= (SiJmxn范围内的所有节点置乱。
[0103] 本发明方法1中的Aupdate(O)为序列中的第1个元素,为迷宫的初始节点,Aupdate. length等价为迷宫有效区域内的所有节点数量。对于同样的Smaze,输入不同的&€乂_, 选定不同的y=RG(X)和RG.init,将产生不同的Aupdate。
[0104] 结合上述方法和不同映射方法得到用于任意封闭连通区域的置乱方法,如方法2 和方法3。
[0105] 方法2基于2DGrowingTree迷宫排列生成的节点更新序列置乱方法:
[0106] 第 1 步:设定Sinit =Onixn 和S隱e = (Sy)nixn,对于i= 0, j= 0,…,n-l,若si;jeSmaze,则初始si;j = 0,反之则标记si;j = _1,将Sinit 复制为T= (ty) mXn >
[0107] 第2步:随机选取V'.v。作为迷宫的初始节点,选取随机数发生器y = RG(x),设定初始值RG.init=seed按方法1生成Aupdate ;
[0108] 第3步:输入整数作为映射偏移量11 (IlmodAupdate.length尹0),将其按式⑴规 范到(-Aupdate.length,Aupdate.length)范围内的整数,按式⑵计算index;
[0109] 11 = 11modAupdate.length(I)
[0110] ind,, =?(// + I11〇d11 < 0 ⑵ Iu //>〇 κ}
[0川]第 4 步:对于 te,3(x,7)e4_fc>,按式⑶将tx,y =SiJ(若将tx,y = si;j修改为si;」=tx,y,则对应为方法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,则对应为Si,」=ti,」,为自身到自身的 映射,不能用于置乱。
[0117] 方法3基于2DGrowingTree迷宫排列生成的节点更新序列复合置乱方法,包括 以下步骤:
[0118] 第1步:设定5恤=〇"1><11和5111伽=(81,入 ><11,对于吟,7,1 = 0,...,111-1,]·= 0,…,n-l,若si;jeSmaze,则初始si;j = 0,反之则标记si;j = _1,将Sinit 复制为T= (ty) mXn >
[0119] 第2步:随机选取作为迷宫的初始节点,选取随机数发生器y = RGtl(X),y=RG1(X),设定随机初始值RG。·init=Seedc^RG1.init=Seed1 按方法 1 分别生 成迷宫节点更新序列;
[0120] 第3步:输入任意整数作为映射偏移量11,并将其按式⑷规范到 范围内的整数,按式(5)计算index;
[0121] // =IlmodAlihhih,.length (4)
[0122] index Λ(Π + Al^Sth)mod A:pdate.length U <0
[ u u>0K J
[0123]第 4 步:对于W,y)e4:/"ie,3(x,j〇 ,按式(6)将tx,y =si;」(若将tx,y =si;』 修改为si;」=tx,y,则对应为方法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步中输入相同的迷宫初始节点,选取同1个随机发生器,设定相同的 初始值,则方法3退化为方法2。
[0129] 传统的置乱研究,针对的对象一般为数字图像。数字图像是自然图像的离散采样 化,记图像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 ;对于8位图像P8,其对应的位面可 依次记为kk= 0, 1,…,7 ;对于24位图像P24,其对应的位面可依次记为 心^=(<)_片=〇,1,-_,23,其中每个位面等价为单色图像的像素矩阵;记24位图像P24对应的RGB立方体为P24.C= (Ci,」,k)mXnX3 ;记24位图像P24对应的RGB通道立方体分别 为P24A=(c&丄·s、=(?Μ)_χ8 和
[0130] 本发明结合方法2、方法3给出6种基于2DGrowingTree迷宫更新序列和复合更 新序列的图像置乱方法,提出6种图像置乱方法,如方法4?方法9所示。
[0131] 方法4基于2DGrowingTree迷宫节点更新序列的图像置乱方法:
[0132] 第1步:读取待置乱图像像素矩阵P= (PiJmxn作为Sinit,在SinitI选取特定区域 作为Sniaze ;
[0133]第2步:选取Vsw。作为迷宫的初始节点,选取随机数发生器y= RG(X),设 定初始值RG.init=seed和映射偏移量11 ;
[0134] 第3步:利用方法2输出置乱后的矩阵P'=(p'UOmxn,将其写为置乱后的图像 (若将步骤3方法2修改为方法2逆变换,则对应为方法4的逆变换)。
[0135] 方法5基于2DGrowingTree迷宫节点更新序列复合的图像置乱方法:
[0136] 第1步:读取待置乱图像像素矩阵P= (PiJmxn作为Sinit,在SinitI选取特定区域 作为Sniaze ;
[0137] 第2步:选取y作为迷宫的初始节点,选取随机数发生器y= RG0(X),y=RG1 (X),设定初始值RG。·init=seed。,RG1.init=Seed1 和映身寸偏移量 11 ;
[0138] 第3步:利用方法3输出置乱后的矩阵P'=(p'υ)πΧη将其写为置乱后的图像 (若将步骤3方法3修改为方法3逆变换,则对应为方法5的逆变换)。
[0139] 方法6基于2DGrowingTree迷宫节点更新序列的图像R、G、B通道置乱方法:
[0140]第 1步:读取 24 位图像R、G、B通道矩阵P24.R= (I^j)mxnJ24-G=(gi,j)mXn和P24-B =(kPmXn,将其分别作为,在C,C,C,选取特定区域作为CJLJiL;
[0141] 第2步:选取分别作为R、G、B通道的初始 节点,选取随机数发生器y=RGK(x),y=RGe(X),y=RGb(X),设定初始值RGK.init=seedK,RGg.init=seedG,RGb.init=seedB 和映射偏移量 11K, 11G,IIb ;
[0142] 第3步:利用方法2,依次输出置乱后的矩阵R',G',B'写为置乱后的图像(若 将步骤3方法2修改为方法2逆变换,则对应为方法6的逆变换)。
[0143] 方法7基于2DGrowingTree迷宫节点更新序列复合的图像R、G、B通道置乱方 法:
[0144]第1步:读取 24 位图像R、G、B通道矩阵P24.R= (IYj)mxnJ2^G=(gjmxn和P24.B =(Kj)mXn,将其分别作为,在C,C,C选取特定区域作为*;
[0145]第 2 步:选取 eeAL 分别作为R、G、B通道迷宫的初始节点,选取随机数发生器 少=,少=/?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逆变换,则对应为方法7的逆变换)。
[0147] 方法8基于2DGrowingTree迷宫节点更新序列的图像比特位面置乱方法:
[0148] 第1步:读取待置乱图像比特位面,对于8位图像P8,将 舄^=(〇_屬=0,1,"',7依次作为5^,妓=0,1/",7,对24位图像? 24,将 =〇Λ…,23依次作为忠,絲=〇,1,··_,23,在以上选取特定区域作为 Sfii . nuze9
[0149] 第2步:选取V^,,。作为迷宫的初始节点,选取随机数发生器y=RGkk(x), 设定初始值RGkk.init=Seedkk和映射偏移量Ilkk ;
[0150] 第3步:利用方法2,依次输出置乱后的矩阵,对于8位图像P8,将W'kk,kk= 〇,…,7写为置乱后的图像,对于24位图像P24,将Wkk,kk= 0,…,23写为置乱后的图像 (若将步骤3方法2修改为方法2逆变换,则对应为方法8的逆变换)。
[0151] 方法9基于2DGrowingTree迷宫节点更新序列复合的图像比特位面置乱方法:
[0152] 第1步:读取待置乱图像比特位面,对于8位图像P8,将 巧.%=(>〇_,絲= 〇,1,···,7 依次作为 5^,Μ= 0,1,.··,7,对于 24 位图像P24,将 = (<)_,欣=〇,1,··、23依次作为心,缺=0,1,···,23,在K上选取特定区域作为
[0153] 第2步:选取eS=作为迷宫的初始节点,选取随机数发生器 产尺Gf(X),产尺Gf(X),设定初始值穴贫气滅=sm/f,iraY=sm/f和映射偏移量 Ilkk
[0154] 第3步:利用方法3,依次输出置乱后的矩阵,对于8位图像P8,将W'kk,kk= 〇,…,7写为置乱后的图像,对于24位图像P24,将Wkk,kk= 0,…,23写为置乱后的图像。 (若将步骤3方法3修改为方法3逆变换,则对应为方法9的逆变换)。
[0155] 以下结合附图具体实施例对本发明方法进行详细说明:
[0156] 以DelphiXE5作为案例实施环境,结合附图对本发明实施方式进行详细说明,但 不局限于本实施案例,其中图1是方法1流程图,图2是方法2流程图,图3是方法3流程 图。
[0157] 参考图1的过程如下:
[0158] 第1步:假定迷宫的初始范围设置为Sinit=O3x3,迷宫的有效区域Smaze= (Sy)3x3 设置为Sinit左上角2X2网格区域内,则:

【权利要求】
1. 一种基于2D Growing Tree迷宫的数字置乱方法,其特征在于包括以下步骤: 第1步:设定迷宫初始范围Sinit = Omxn和迷宫有效区域Smaze = (Sy)mxn,对于外./ 1 = 0,"%111-1,」=0,"%11-1,若*^./在^<_?;,则标记8 1,』=-1,反之则标记81,』=0表示该 节点未访问,若si;』>0表示该节点已访问; 第 2 步:对于 i = 0, "'Iii-I, j = 0, "'Ii-I,记 Sy d, d = 0, 1,2, 3 依次 为节点Su的下方、右方、上方和左方墙,初始化Sy. d = -1,d = 0, 1,2, 3,即将Smaze范围内 的所有节点以墙进行分隔,si;j. d = -1表示有墙,si;j. d = 0表示无墙; 第3步:选择随机数发生器y = RG (X),设定初始值RG. init = seed,初始化 迷宫节点列表Amaze = Φ,节点更新序列Aupdate = Φ,由随机数发生器产生2个概率 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尹Φ,则循环执行第6步?第8步; 第6步:产生1个随机数Pe [〇, 1),若Pe [〇, Pramt],则取Amaze尾部元素作为当前节点 sx,y ;反之若P e [P_nt, Praa^Ptjldest],则取Aniaze头部元素作为当前节点s x,y,反之则从Aniaze 中随机取一个元素作为当前节点 sx,y, sx,y = AmazeQndex), index = random(Amaze. length); 第7步:若sx,y周围的邻近节点中sx+1,y, sx,y+1, Sj^y, Sx^1存在未访问的有效节 点 sx,,y,e Smaze,则将 sx,,y,加入到 Amaze,即 Amaze = Amaze. add(sx,,y,),Aupdate = Aupdate. add(sx、y,); 第8步:若sx,y周围的邻近节点中sx+1,y, sx,y+1, Sj^y, Sj^1不存在未访问的有效节点 sx,e Sniaze,则删除 Aniaze 索引位置为 Index 位置的元素,即 Aniaze. delete (index); 第9步:利用Aupdate构造 Sniaze = (Si,Pnixn范围内所有节点间的映射关系,从而将Sniaze = (Siij)mxn范围内的所有节点置乱。
2. 如权利要求1所述的基于2D Growing Tree迷宫的数字置乱方法,其特征在于第9 步中映射方法具体包括以下步骤: 第9. 1步:选取整数作为映射偏移量11,11 mod Aupdate. length尹0,将其按式⑴规范 至1J (_AUpdate. length, Aupdate. length)范围内的整数,按式⑵计算 index ; 11 = 11 mod AUDdate. length
(I) 弟 9. 2 步:将 Sin it 复制为 T = ; 第 9. 3 步:对于 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. 如权利要求1所述的基于2D Growing Tree迷宫的数字置乱方法,其特征在于: 选取两个随机数发生器y = RGci(X),y = RG1(X),设定随机初始值RGci. init = seed。, RG1. init = Seed1分别生成迷宫节点更新序列; 第9步中映射方法具体包括以下步骤: 第9. 1步:输入任意整数作为映射偏移量11,并将其按式(4)规范到 议成淨幻范围内的整数,按式(5)计算index ;
弟 9. 2 步:将 Sin it 复制为 T = (I^j)mxn ; 第 9. 3 步:对于 V〇'J)e,按式(6)将 si;」赋值给 tx,y;
第 9. 4 步:输出 T = (I^j)mxnt5
4. 如权利要求2所述的基于2D Growing Tree迷宫的数字置乱方法,其特征在于:在 进行图像置乱时,具体包括以下步骤: 第(1)步:读取待置乱图像像素矩阵P= (Piij)mxn作为Sinit,在Sinit上选取特定区域作 为 Smaze ; 第⑵步:选取作为迷宫的初始节点,选取随机数发生器y = RG(x),设定 初始值RG. init = seed和映射偏移量11 ; 第(3)步:输出置乱后的矩阵P' =(ρ' υ)πΧη,将其写为置乱后的图像。
5. 如权利要求3所述的基于2D Growing Tree迷宫的数字置乱方法,其特征在于:在 进行图像置乱时,具体包括以下步骤: 第(1)步:读取待置乱图像像素矩阵P= (Piij)mxn作为Sinit,在Sinit上选取特定区域作 为 Smaze ; 第⑵步:选作为迷宫的初始节点,选取随机数发生器y = RGtl(X), y = RGi(x),设定初始值 RGtl. init = seedQ,RG1. init = Seed1 和映射偏移量 11 ; 第(3)步:输出置乱后的矩阵P' =(p' i,Pmxn将其写为置乱后的图像。
6. 如权利要求2所述的基于2D Growing Tree迷宫的数字置乱方法,其特征在于:在 进行图像置乱时,具体包括以下步骤: 第⑴步:读取24位图像R、G、B通道矩阵匕·!?=^^』)…、^^=^』)…*^· B = (K Jmxn,将其分别作为初始范围,在选取特定区域作为有效 区域*; 第⑵步:选取ν<,Λ £5^分别作为R、G、B通道的初始节点, 选取随机数发生器 y = RGk (X),y = RGg (X),y = RGb (X),设定初始值1^1(.;[11;^ = 866(11(,1^<:· init = seedG, RGb. init = seedB 和映射偏移量 11K, 11G, IIb ; 第⑶步:输出置乱后的矩阵R',G',B'写为置乱后的图像。
7. 如权利要求3所述的基于2D Growing Tree迷宫的数字置乱方法,其特征在于:在 进行图像置乱时,具体包括以下步骤: 第⑴步:读取24位图像R、G、B通道矩阵匕·!?=^^』)…、^^=^』)…*^· B = (Mmxn,将其分别作为初始范围C,C,C,在C,C,t选取特定区域作为有效 区域; 第(2 )步:选取 ν<,Λ,<ηet- 分别作为R、G、B通道迷宫的初始节点,选取随机数发生器 少=⑴,.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. 如权利要求2所述的基于2D Growing Tree迷宫的数字置乱方法,其特征在于:在 进行图像置乱时,具体包括以下步骤: 第⑴步:读取待置乱图像比特位面,对于8位图像P8,将图像位面 ^^=(<)_龙=〇,1,?,7依次作为初始范围',統=0,1,?,7,对于24位图像?24,将图 像位面户24冗-=(>〇_,,欲= 〇4,'··,23依次作为初始范围= …,23,在K上选取 特定区域作为有效区域次 第⑵步:选取v<,.。作为迷宫的初始节点,选取随机数发生器y = RGkk(X),设 定初始值RGkk. init = Seedkk和映射偏移量Ilkk ; 第⑶步:依次输出置乱后的矩阵,对于8位图像P8,将置乱后的位面W' kk,kk = 〇,…,7写为置乱后的图像,对于24位图像P24,将置乱后的位面W' kk, kk = 0,…,23写为 置乱后的图像。
9. 如权利要求3所述的基于2D Growing Tree迷宫的数字置乱方法,其特征在于:在 进行图像置乱时,具体包括以下步骤: 第⑴步:读取待置乱图像比特位面,对于8位图像P8,将图像位面 巧.《^=?)_灕=〇,1^",7依次作为初始范围^及=〇,1,"%7,对于24位图像1>24,将图 像位面&^=(<)_々=〇丄一,23依次作为初始范围巧,妖=〇,1,一,23,在^上选取 特定区域作为有效区域 第⑵步:选取作为迷宫的初始节点,选取随机数发生器 产(X),产i?Gf (X),设定初始值对·Μ=*?<,.M=Saaaf和映射偏移量Ilkk; 第⑶步:依次输出置乱后的矩阵,对于8位图像P8,将置乱后的位面W' kk,kk = 〇,…,7写为置乱后的图像,对于24位图像P24,将置乱后的位面W' kk, kk = 0,…,23写为 置乱后的图像。
【文档编号】G06T1/00GK104376528SQ201410748364
【公开日】2015年2月25日 申请日期:2014年12月8日 优先权日:2014年12月8日
【发明者】邵利平 申请人:陕西师范大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1