一种基于3D Growing Tree迷宫的数字置乱方法技术

技术编号:11138232 阅读:118 留言:0更新日期:2015-03-12 16:51
本发明专利技术提供一种基于3D Growing Tree迷宫的数字置乱方法,预先对Growing Tree迷宫生成区域进行人为限定,从而可用于人为指定的任意3D封闭连通区域,同时按迷宫节点更新顺序对迷宫设定区域的每个节点赋予唯一的编号,由此产生迷宫设定区域所有节点的排列,在此基础上构造了基于3D Growing Tree迷宫节点更新序列和节点更新序列复合的置乱方法,从而可将所有节点置乱。本发明专利技术所给出的置乱方法具有普适性和灵活性,在使用过程中不存在任何限制,不仅能应用于传统置乱方法所针对的规则区域,例如正方形和矩形区域,也可用于任意选定的3D封闭连通不规则区域置乱。本发明专利技术也给出了用于图像位面立方体,RGB立方体和RGB通道立方体的图像置乱方法。

【技术实现步骤摘要】

本专利技术主要涉及信息安全和数字信号处理等交叉研究领域,具体为基于Growing Tree迷宫生成策略的数字置乱方法,特别涉及基于3D Growing Tree迷宫的数字置乱方法。
技术介绍
近年来,伴随着计算机和网络技术的发展,越来越多的图像在网络中传输,在给用户提供方便的同时,也带来了一系列的安全隐患。对图像的不当使用和恶意篡改,不仅涉及个人隐私,也会给社会带来严重负面影响。保障图像的核心技术是数字图像加密。在数字图像加密领域,研究最为广泛和灵活的一类图像加密方法,就是在同一空间内,对图像的重编码技术,即图像置乱技术。随着计算机技术的飞速发展,数字图像置乱技术已成为数字安全传输和保密的主要手段。其基本思路就是把一幅图像经过一定的数学变换,转变成面目全非的另一幅图像,以起到对图像的安全保密作用。数字图像置乱也是目前隐密术、数字水印、信息分存和可视密码技术中一项关键预处理技术。已受到了国内外学者的普遍重视,并取得了丰硕的研究成果。数字图像置乱最初来源于有线电视信号加密,早期的置乱在位置空间进行,用于对图像像素位置打乱,这些置乱方法包括行倒置置乱、行平移置乱、行置换置乱、行循环置乱、行分量切割置乱等。随着置乱技术的不断发展,目前已提出的置乱方法多种多样,既可用于位置置换,也可用于灰度替代。当前已提出的置乱方法主要有:基于离散元素序列的置乱方法、基于扫描路线的置乱方法、基于遍历矩阵的置乱方法、基于迭代函数系统的置乱方法、基于离散混沌映射的置乱方法、基于中国拼图的置乱方法和基于矩阵变换的置乱方法等。目前尽管已提出了多种置乱方法,但传统置乱方法大多只能用于规则区域置乱,例如正方形和长方形区域,而不能对图像选定的任意不规则区域进行置乱。例如基于Fibonacci序列和Lucas序列的置乱方法将置乱图像的宽、高拘泥为Fibonacci序列和Lucas序列元素;基于SCAN语言和Hilbert曲线的置乱方法将置换图像的大小约束为2n×2n的正方形图像;由于并非所有图像都存在骑士巡游路径,由此导致了基于骑士巡游的置乱方法只能用于图像宽、高在特定尺度上的图像;对于奇数阶幻方,其置乱图像边长为奇数,对于双偶阶幻方,其置乱图像边长为4的整数倍;由于任意阶的拉丁方并非都存在,基于拉丁方的置乱方法只能用于置乱图像边长为特定尺度的图像,例如边长为pn且p为素数的图像;对于离散Kolmogorov Flows Map和亚仿射变换,只能用于置乱正方形图像;传统的基于矩阵的图像置乱方法,其基本表示形式为X[i]=(AX[i-1])mod N,但由于只有一个尺度参数N,由此决定了基于矩阵的图像置乱方法只能用于置乱特定尺度的图像,例如正方形图像和对矩形图像的灰度进行置乱。在文献二维非等长图像置乱变换(电子学报,2007,35(7):1290-1294),二维三角映射及其在图像置乱上的应用(Information Technology Journal,2008,7(1):40-47),二维双尺度矩形映射及其在图像置乱上的应用(计算机辅助设计与图形学报,2009,21(7):1026-1034)和多尺度三角映射及其在变尺度置乱上的应用(International Journal of Computer Applications in Technology,2010,38(1-3):74-85),我们将X[i]=(AX[i-1])mod N拓展为X[i]=(AX[i-1])modN,N为有限个尺度构成的尺度向量,提出了2维非等长变换存在性判据,2维双尺度矩形映射的特殊形式-2维三角映射,以及2维双尺度矩形映射一般性构造方法和多尺度三角映射。尽管X[i]=(AX[i-1])modN可用于任意矩形图像置乱,并可对图像位置和灰度同时置乱,但所提出的方法只能对规则区域进行置乱,不能用于对选定的任意不规则区域进行置乱。传统的迷宫生成方法在人工智能和优化计算领域应用较广,一般用于动态复杂场景的模拟和仿真,在信息安全领域涉及较少,在文献基于迷宫置换和Logistic混沌映射的图像加密算法(计算机应用,2014,34(7):1902-1908),我们探讨了基于DFS迷宫节点入栈顺序和行优先扫描顺序高效产生置换的方法,将迷宫生成方法应用于任意矩形图像加密,但所提出的方法不能应用于图像的任意连通不规则封闭区域加密。
技术实现思路
本专利技术的目的在于克服现有技术缺陷,提供一种基于3D Growing Tree迷宫的数字置乱方法,该方法可用于3D任意连通封闭区域数据置乱。为实现上述目的,本专利技术采用以下技术方案:一种基于3D Growing Tree迷宫的数字置乱方法,包括以下步骤:第1步:设定迷宫初始范围Sinit=()m×n×l和迷宫有效区域Smaze=(si,j,k)m×n×l,对于i=0,…,m-1,j=0,…,n-1,k=0,…,l-1,若则标记si,j,k=-1,反之则标记si,j,k=0表示该节点未访问,若si,j,k>0表示该节点已访问;第2步:对于i=0,…,m-1,j=0,…,n-1,k=0,…,l-1,记si,j,k.d,d=0,1,2,3,4,5依次为节点si,j,k的下方、右方、上方、左方、底部和顶部墙,初始化si,j,k.d=-1,d=0,1,2,3,4,5,-1表示为有墙,0表示无墙;第3步:选择随机数发生器y=RG(x),设定随机数发生器初始值RG.init=seed,初始化迷宫节点列表Amaze=Φ,节点更新序列Aupdate=Φ,按随机数发生器随机产生2个概率Precent,Poldest∈[0,1);第4步:选取x=x0,y=y0,z=z0,将sx,y,z分别加到Amaze和Aupdate,即Amaze=Amaze.add(sx,y,z)Aupdate=Aupdate.add(sx,y,z);第5步:若Amaze≠Φ,则循环执行第6步~第8步第6步:产生1个随机数P∈[0,1),若P∈[0,Precent],则取Amaze尾部元素作为当前节点sx,y,z,反之若P∈[Precent,Precent+Poldest],则取Amaze头部元素作为当前节点sx,y,z,反之则从Amaze中随机取一个元素作为当前节点sx,y,z,sx,y,z=Amaze.at(index),index=random(Amaze.length);第7步:若sx,y,z周围的邻近节点中sx+1,y,z,sx,y+本文档来自技高网
...

【技术保护点】
一种基于3D Growing Tree迷宫的数字置乱方法,其特征在于包括以下步骤:第1步:设定迷宫初始范围Sinit=()m×n×l和迷宫有效区域Smaze=(si,j,k)m×n×l,对于∀si,j,k,i=0,...,m-1,j=0,...,n-1,k=0,...,l-1,]]>若si,j,k∉Smaze,]]>则标记si,j,k=‑1,反之则标记si,j,k=0表示该节点未访问,若si,j,k>0表示该节点已访问;第2步:对于∀si,j,k∈Smaze,i=0,...,m-1,j=0,...,n-1,k=0,...,l-1,]]>记si,j,k.d,d=0,1,2,3,4,5依次为节点si,j,k的下方、右方、上方、左方、底部和顶部墙,初始化si,j,k.d=‑1,d=0,1,2,3,4,5,‑1表示为有墙,0表示无墙;第3步:选择随机数发生器y=RG(x),设定随机数发生器初始值RG.init=seed,初始化迷宫节点列表Amaze=Φ,节点更新序列Aupdate=Φ,由随机数发生器随机产生2个概率Precent,Poldest∈[0,1);第4步:选取将sx,y,z分别加到Amaze和Aupdate,即Amaze=Amaze.add(sx,y,z)Aupdate=Aupdate.add(sx,y,z);第5步:若Amaze≠Φ,则循环执行第6步~第8步;第6步:产生1个随机数P∈[0,1),若P∈[0,Precent],则取Amaze尾部元素作为当前节点sx,y,z,反之若P∈[Precent,Precent+Poldest],则取Amaze头部元素作为当前节点sx,y,z,反之则从Amaze中随机取一个元素作为当前节点sx,y,z,sx,y,z=Amaze.at(index),index=random(Amaze.length);第7步:若sx,y,z周围的邻近节点中sx+1,y,z,sx,y+1,z,sx‑1,y,z,sx,y‑1,z,sx,y,z‑1,sx,y,z+1存在未访问的有效节点sx′,y′,z′∈Smaze,则将sx′,y′,z′加入到Amaze,即Amaze=Amaze.add(sx′,y′,z′),Aupdate=Aupdate.add(sx′,y′,z′);第8步:若sx,y,z周围的邻近节点中sx+1,y,z,sx,y+1,z,sx‑1,y,z,sx,y‑1,z,sx,y,z‑1,sx,y,z+1不存在未访问的有效节点sx′,y′,z′∈Smaze,则删除Amaze索引位置为Index位置的元素,即Amaze.delete(index);第9步:利用Aupdate构造Smaze=(si,j,k)m×n×l范围内所有节点间的映射关系,从而将Smaze=(si,j,k)m×n×l范围内的所有节点置乱。...

【技术特征摘要】
1.一种基于3D Growing Tree迷宫的数字置乱方法,其特征在于包括以下
步骤:
第1步:设定迷宫初始范围Sinit=()m×n×l和迷宫有效区域Smaze=(si,j,k)m×n×l,对
于∀si,j,k,i=0,...,m-1,j=0,...,n-1,k=0,...,l-1,]]>若si,j,k∉Smaze,]]>则标记si,j,k=-1,反
之则标记si,j,k=0表示该节点未访问,若si,j,k>0表示该节点已访问;
第2步:对于∀si,j,k∈Smaze,i=0,...,m-1,j=0,...,n-1,k=0,...,l-1,]]>记
si,j,k.d,d=0,1,2,3,4,5依次为节点si,j,k的下方、右方、上方、左方、底部和顶部墙,
初始化si,j,k.d=-1,d=0,1,2,3,4,5,-1表示为有墙,0表示无墙;
第3步:选择随机数发生器y=RG(x),设定随机数发生器初始值
RG.init=seed,初始化迷宫节点列表Amaze=Φ,节点更新序列Aupdate=Φ,由随机
数发生器随机产生2个概率Precent,Poldest∈[0,1);
第4步:选取将sx,y,z分别加到Amaze和Aupdate,
即Amaze=Amaze.add(sx,y,z)Aupdate=Aupdate.add(sx,y,z);
第5步:若Amaze≠Φ,则循环执行第6步~第8步;
第6步:产生1个随机数P∈[0,1),若P∈[0,Precent],则取Amaze尾部元素作
为当前节点sx,y,z,反之若P∈[Precent,Precent+Poldest],则取Amaze头部元素作为当前节
点sx,y,z,反之则从Amaze中随机取一个元素作为当前节点sx,y,z,
sx,y,z=Amaze.at(index),index=random(Amaze.length);
第7步:若sx,y,z周围的邻近节点中sx+1,y,z,sx,y+1,z,sx-1,y,z,sx,y-1,z,sx,y,z-1,sx,y,z+1存在
未访问的有效节点sx′,y′,z′∈Smaze,则将sx′,y′,z′加入到Amaze,即Amaze=Amaze.add(sx′,y′,z′),
Aupdate=Aupdate.add(sx′,y′,z′);
第8步:若sx,y,z周围的邻近节点中
sx+1,y,z,sx,y+1,z,sx-1,y,z,sx,y-1,z,sx,y,z-1,sx,y,z+1不存在未访问的有效节点
sx′,y′,z′∈Smaze,则删除Amaze索引位置为Index位置的元素,即Amaze.delete(index);
第9步:利用Aupdate构造Smaze=(si,j,k)m×n×l范围内所有节点间的映射关系,从而
将Smaze=(si,j,k)m×n×l范围内的所有节点置乱。
2.如权利要求1所述的基于3D Growing Tree迷宫的数字置乱方法,其特
征在于第9步中映射方法具体包括以下步骤:
第9.1步选整数作为映射偏移量ll,llmodAupdate.length≠0,将其按式(1)规
范到(-Aupdate.length,Aupdate.length)范围内的整数,按式(2)计算index;
ll=llmodAupdate.length           (1)
index=(ll+Aupdate.length)modAupdate.lengthll<0llll>0---(2)]]>第9.2步:将Sinit复制为T=(ti,j,k)m×n×l;
第9.3步:对于按式(3)将si,j,k赋值给tx,y,z;
(i,j,k)=Aupdate(ii),ii=0,…,Aupdate.length-1
(x,y,z)=Aupdate(kk),kk=0,…,Aupdate.length-1         (3)
kk=(ii+index)modAupdate.length
第9.4步:输出T=(ti,j,k)m×n×l。
3.如权利要求1所述的基于3D Growing Tree迷宫的数字置乱方法,其特
征在于:选取两个随机初始值RG0.init=seed0,RG1.init=seed1分别生成迷宫节点更
新序列第9步中映射方法具体包括以下步骤:
第9.1步:输入任意整数作为映射偏移量ll,并将其按式(4)规范到
范围内的整数,按式(5)计算index;
ll=llmodAupdate0.length---(4)]]>index=(ll+Aupdate0.length)modAupdate0.lengthll<0llll>0---(5)]]>第9.2步:将Sinit复制为T=(ti,j,k)m×n×l;
第9.3:对于按式(6)将si,j,k赋值给tx,y,z;
(i,j,k)=Aupdate0(ii),ii=0,...,Aupdate0.length-1]]>(x,y,z)=Aupdate1(kk),kk=0,...,Aupdate1.length-1---(6)]]>kk=(ii+index)modAupdate1.length]]>第9.4步:输出T=(ti,j,k)m×n×l。
4.如权利要求...

【专利技术属性】
技术研发人员:邵利平
申请(专利权)人:陕西师范大学
类型:发明
国别省市:陕西;61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1