迷宫生成式信息隐藏及恢复方法、设备及可读存储介质与流程

文档序号:24040657发布日期:2021-02-23 16:42阅读:78来源:国知局
迷宫生成式信息隐藏及恢复方法、设备及可读存储介质与流程
interval-extension-based double authentications[j].multimedia tools and applications,2020(6).)在陆海,2018的基础上,引入了划分为24通道的试题库,通过选择题候选答案排列顺序编号和填空题所属通道索引来表达秘密信息,使得生成的含密试卷可扩展至其他类型试题,此外,lu h,2020还引入了双认证区间扩展策略对提取秘密信息的准确性进行认证;尽管陆海,2018和lu h,2020避免了搜索式无载体信息隐单载体嵌密容量低,高昂的数据库检索和维护代价以及大量载体信道密集传输等问题,并可将载体试题进行扩展,但以试题为嵌密载体,若试题难度分布不均或所涉及知识覆盖面选取不合理,则易检测出异常,从而引发密写分析者的怀疑。
[0005]
生成式无载体信息隐藏是另一类典型的无载体信息隐藏方法,该方法通过载体生成的方式来产生包含秘密信息的有意义含密载体,相比于搜索式无载体信息隐藏,其优点在于单载体不存在嵌密容量限制。根据所生成载体的特点可进一步将生成式信息隐藏分为两种典型方法:纹理生成式信息隐藏和纹理合成式信息隐藏。
[0006]
纹理生成式信息隐藏旨在通过纹理生成的方式来产生自然界不存在的纹理以对秘密信息进行掩盖,根据所生成的载体的不同,又可进一步划分为水影画嵌密和分形图嵌密。针对水影画嵌密,xu j,2015(xu j,mao x,jin x g,et al.,hidden message in a deformation-based texture[j].the visual computer,2015.31(12):p.1653-1669.)提出将秘密信息置于空白图像上并添加掩盖图案,最后通过marbling形变来产生水影画含密纹理。潘琳,2016(潘琳,钱振兴,张新鹏,基于构造纹理图像的数字隐写[j].应用科学学报,2016.34(05):第625-632页.)通过构建秘密信息与单元图映射表,将秘密信息编码为图形单元,并添加与之相关的背景元素和色彩,再进行marbling形变对所表达秘密信息的单元图进行掩盖。xu j,2015和潘琳,2016虽然能产生复杂漂亮的自然界不存在的纹理,但由于缺乏实际的语义而不能对秘密信息进行有效掩盖。
[0007]
针对分形图嵌密,彭飞,2018(彭飞,张翔,龙敏,基于分形理论的生成式无载体图像信息隐藏[c].proceedings of the 15th china information hiding workshop(cihw2018),guangzhou,2018.)通过改变生成的分形图像素值来嵌入秘密信息。尽管分形图嵌密可通过少量的参数来生成复杂的分形纹理,但分形本身有严格的数学界限,对分形图像的直接修改,可能导致分形图的整体与局部不相似,从而容易引发密写异常,导致嵌密信息发生泄漏。
[0008]
纹理合成式信息隐藏是由给定的样例纹理出发,通过纹理合成的方法来产生与之相似的含密纹理。otori h,2007(otori h,s kuriyama,data-embeddable texture synthesis[m]//smart graphics.springer berlin heidelberg,2007.p.146-157.)通过给定的样例纹理来对表达秘密信息的局部二值模式进行掩盖,但该方法容易产生突兀像素点,从而导致生成的嵌密载体视觉质量较差。wu k,2015(wu k.and w chung-ming,steganography using reversible texture synthesis[j].ieee transactions on image processing,2015.24(1):p.130-139.)采用缝合线算法来提高样例纹理小块的拼接质量,并借助不同均方差的样例纹理图像小块来编码秘密信息,但该方法由于镜像操作使得编码和非编码样本小块存在明显的区别特征,从而导致隐匿的样例图像泄露。杜耀刚,2019(杜耀刚,王泽豪,赵耿,et al.一种安全的无载体纹理合成信息隐藏方案[j].计算机应用与软件,2019,036(006):287-291.)通过有限整数网格上拟仿射变换在wu k,2015策略
中来添加干扰块来避免该问题,但依然没有消除编码和非编码样本小块存在的区别特征。以上wu k,2015和杜耀刚,2019都是采用缝合线算法来对重叠区域进行拼接,本质上是选取重叠区域差异较小的像素点来减少拼接痕迹。李国利,2019(李国利,邵利平与任平安,差异聚类和误差纹理合成的生成式信息隐藏[j].中国图象图形学报,2019.24(12):第2126-2148页.)将重叠区域像素差异和最小的误差线作为缝合线,并依据最小拼接代价优先原则进行相邻小块拼接。虽然提高了视觉质量,减小了拼接痕迹,但这类方法不可避免地涉及编码样本小块和非编码样本小块的拼接,从本质上无法彻底消除拼接痕迹,从而依然会引起密写分析者的怀疑。


技术实现要素:

[0009]
本发明的目的在于克服上述现有技术中,现有信息隐藏方法无法有效消除拼接痕迹,容易暴露秘密信息的隐藏位置,导致信息隐藏安全性低的缺点,提供一种迷宫生成式信息隐藏及恢复方法、设备及可读存储介质。
[0010]
为达到上述目的,本发明采用以下技术方案予以实现:
[0011]
本发明第一方面,一种迷宫生成式信息隐藏方法,包括以下步骤:
[0012]
s1:获取长度为l的二值秘密比特序列b=(b
u
)
l
,并根据预设的第一密钥进行备份加密得到长度为αl的备份加密序列b

=(b

u
)
αl
,其中,α为备份数;
[0013]
s2:对规模为m
×
n的迷宫结构t=(t
i,j
)
m
×
n
进行初始化,其中,t
i,j
为迷宫结构(i,j)位置节点;
[0014]
s3:根据预设的第二密钥生成长度为αl的且元素不重复的随机坐标位置序列p=((i
u
,j
u
))
αl
和随机方向序列dir=(r
u
)
αl
,r
u
∈{0,1,2,3};
[0015]
s4:结合随机坐标位置序列p和随机方向序列dir,通过改变迷宫结构t的节点墙的状态来编码b

=(b

u
)
αl
,得到嵌入b

=(b

u
)
αl
的嵌入迷宫结构t

=(t

i,j
)
m
×
n

[0016]
s5:通过改变嵌入迷宫结构t

的节点墙状态,得到完美迷宫结构t

=(t

i,j
)
m
×
n
,其中,完美迷宫结构t

中,对于中,对于仅存在唯一不被节点墙阻断的通路;
[0017]
s6:根据完美迷宫结构t

绘制嵌密迷宫图像s并输出。
[0018]
本发明迷宫生成式信息隐藏方法进一步的改进在于:
[0019]
所述s1的具体方法为:
[0020]
s101:获取长度为l的二值秘密比特序列b=(b
u
)
l
;初始化长度为l的第一到第α-1的二值比特序列
[0021]
s102:将预设的第一密钥key1作为随机数种子,生成长度为α-1的随机数序列ra=(ra
z
),z∈{1,2,

,α-1},将生成的每一个随机数ra
z
作为随机数种子,分别生成长度均为l的二值比特序列
[0022]
s103:对于二值秘密比特序列b中的每个元素b
u
,通过式(1)得到b
u
在每个下的映射值,z∈{1,2,

,α-1}:
[0023][0024]
其中,为异或运算符;
[0025]
s104:将二值秘密比特序列b=(b
u
)
l
和第一到第α-1的二值比特序列通过式(2)连接成备份加密序列b

=(b

u
)
αl

[0026]
b

=b||b1||b2…
||b
α-1
ꢀꢀꢀ
(2)
[0027]
其中,||为序列连接符号;
[0028]
所述s2的具体方法为:
[0029]
对m
×
n的迷宫结构t=(t
i,j
)
m
×
n
进行初始化,节点t
i,j
=(v,d0,d1,d2,d3),其中v表示位置节点t
i,j
的状态,d0,d1,d2,d3分别表示位置节点t
i,j
的上方墙状态、左方墙状态、右方墙状态和下方墙状态;t
i,j
.v=0、t
i,j
.v=1和t
i,j
.v=2依次表示位置节点t
i,j
未访问、已访问和已嵌密状态;t
i,j
.d
r
=0、t
i,j
.d
r
=1、t
i,j
.d
r
=2和t
i,j
.d
r
=3依次表示节点t
i,j
在d
r
方向的墙不存在、存在且不可拆除、存在且可拆除和已被选取;初始化边界节点t
0,0
=(0,1,1,2,2),t
m-1,0
=(0,2,1,2,1),t
0,n-1
=(0,1,2,1,2),t
m-1,n-1
=(0,2,2,1,1),t
0,j
=(0,1,2,2,2),j≠0,n-1,t
m-1,j
=(0,2,2,2,1),j≠0,n-1,t
i,0
=(0,2,1,2,2),i≠0,m-1,t
i,n-1
=(0,2,2,1,2),i≠0,m-1,初始化除边界节点以外的其他内部节点t
i,j
=(0,2,2,2,2);
[0030]
所述s3的具体方法为:
[0031]
将预设的第二密钥key2作为随机数种子,生成长度为αl的且元素不重复的随机坐标位置序列p=((i
u
,j
u
))
αl
和随机方向序列dir=(r
u
)
αl
,r
u
∈{0,1,2,3},且,随机坐标位置序列p=((i
u
,j
u
))
αl
满足如下约束:为内部节点,对于为内部节点,对于不位置相邻。
[0032]
所述s4的具体方法为:
[0033]
s401:获取随机坐标位置序列p中的坐标位置(i
u
,j
u
)、随机方向序列dir中的方向r
u
以及备份加密序列b

中的b

u

[0034]
s402:通过式(3)得到在r
u
方向的直接相邻节点所在的坐标位置(i

u
,j

u
):
[0035][0036]
s403:通过式(4)修改和的访问状态以及和两节点的墙状态;
[0037][0038]
s404:重复s401~s403,至所有的b

u
处理完毕,将嵌入备份加密序列b

=(b

u
)
αl
的迷宫结构t=(t
i,j
)
m
×
n
作为嵌入迷宫结构t

=(t

i,j
)
m
×
n

[0039]
所述s5的具体方法为:
[0040]
s501:初始化节点墙集合v=φ,其中,φ表示空集合;
[0041]
s502:随机选一个位置节点t

i,j

[0042]
s503:将位置节点t

i,j
的所有可拆除墙d
r
=2,r∈{0,1,2,3}并入节点墙集合v中,并将t

i,j
·
v的值置为1;
[0043]
s504:从节点墙集合v中随机选一面墙,记为t

x,y
.d
r

,其中,(x,y)是墙d
r

所在位
置节点t

x,y
的坐标位置,将t

x,y
.d
r

从节点墙集合v中删除,通过式(5)得到t

x,y
在d
r

方向相邻的位置节点t

x

,y

的坐标(x

,y

):
[0044][0045]
s505:当t

x

,y

.v=2时,取相邻位置节点t

x

,y

.v=2,(x

,y

)∈{(x
′-
1,y

),(x

,y
′-
1),(x

,y

+1),(x

+1,y

)},通过(6)将t

x

,y

·
v的值置为1,并将t

x

,y

周围存在且可拆除状态的墙t

x

,y

.d
r
=2,r∈{0,1,2,3}加入节点墙集合v中,通过式(7)修改t

x

,y

和t

x,y
之间分隔墙的状态,将t

x

,y

的存在且可拆除状态的墙t

x

,y

.d
r
=2,d
r
∈{0,1,2,3}加入节点墙集合v中;当t

x

,y

.v=0时,通过式(7)修改t

x

,y

和t

x,y
之间分隔墙的状态,将t

x

,y

的存在且可拆除状态的墙t

x

,y

.d=2,d∈{0,1,2,3}加入节点墙集合v中;当t

x

,y

.v=1时,进行s504;
[0046]
t

x

,y

·
v=1
ꢀꢀꢀ
(6)
[0047]
t

x

,y

.v=1,t

x,y
.d
r

=0,t

x

,y

.d
(3-r

)
=0
ꢀꢀꢀ
(7)
[0048]
s506:重复s504~s505,至嵌入迷宫结构t

中的所有位置节点的访问状态都为1,得到完美迷宫结构t

=(t

i,j
)
m
×
n

[0049]
所述s6的具体方法为:
[0050]
s601:初始化分辨率为m
′×
n

的二值图像s

=(s

i,j
=1)
m
′×
n

,且,m

=m
·
γ,n

=n
·
γ,γ=m+2n,其中,γ表示迷宫节点外边界边长,m表示迷宫节点内边界边长,n为迷宫节点内边界距离外边界的墙厚度;
[0051]
s602:对于任意t

i,j
∈t

,分别以(i
·
γ,j
·
γ)、(i
·
γ,j
·
γ+m+n)、(i
·
γ+m+n,j
·
γ)和(i
·
γ+m+n,j
·
γ+m+n)为二值图像s

上的左上角起点,在二值图像s

上绘制分辨率为n
×
n的且像素值为0的黑色小块;
[0052]
其中,当t

i,j
.d0≠0时,以(i
·
γ,j
·
γ+n)为二值图像s

上的左上角起点,在二值图像s

上绘制像素值为0的n
×
m的黑色小块;当t

i,j
.d1≠0时,以(i
·
γ+n,j
·
γ)为二值图像s

上的左上角起点,在二值图像s

上绘制像素值为0的m
×
n的黑色小块;当t

i,j
.d2≠0时,以(i
·
γ+n,j
·
γ+m+n)为二值图像s

上的左上角起点,在二值图像s

上绘制像素值为0的m
×
n的黑色小块;当t

i,j
.d3≠0时,以(i
·
γ+m+n,j
·
γ+n)为二值图像s

上的左上角起点,在二值图像s

上绘制像素值为0的n
×
m的黑色小块;
[0053]
s603:重复s602至所有的t

i,j
∈t

处理完毕,将得到嵌密迷宫图像s

作为s输出。
[0054]
本发明第二方面,一种迷宫生成式信息恢复方法,包括以下步骤:
[0055]
t1:获取第一密钥、第二密钥、秘密比特长度l、备份数α及嵌密迷宫图像s=(s
i,j
)
m
′×
n

,将嵌密迷宫图像s转换为迷宫结构t=(t
i,j
)
m
×
n

[0056]
t2:对迷宫结构t进行完美迷宫检验,当迷宫结构t不为完美迷宫时,退出;否则,进行t3;
[0057]
t3:根据第二密钥生成长度为αl的且元素不重复的随机坐标位置序列p=((i
u
,j
u
))
αl
和随机方向序列dir=(r
u
)
αl
,r
u
∈{0,1,2,3};
[0058]
t4:遍历迷宫结构t=(t
i,j
)
m
×
n
,根据随机坐标位置序列p和随机方向序列dir得到
备份加密序列b

=(b

u
)
αl

[0059]
t5:根据第一密钥将备份加密序列b

=(b

u
)
αl
恢复为二值秘密比特序列b=(b
u
)
l
,并检验其可靠性,得到认证比特序列a=(a
u
)
l

[0060]
本发明迷宫生成式信息恢复方法进一步的改进在于:
[0061]
所述t1的具体方法为:
[0062]
t101:初始化规模为m
×
n迷宫结构t=(t
i,j
=(0,0,0,0,0))
m
×
n
,t
i,j
=(v,d0,d1,d2,d3),其中,t
i,j
为迷宫结构(i,j)的位置节点,v表示位置节点t
i,j
的状态,d0,d1,d2,d3分别表示位置节点t
i,j
的上方墙状态、左方墙状态、右方墙状态和下方墙状态;t
i,j
.v=0、t
i,j
.v=1和t
i,j
.v=2依次表示位置节点t
i,j
未访问、已访问和已嵌密状态;t
i,j
.d
r
=0、t
i,j
.d
r
=1、t
i,j
.d
r
=2和t
i,j
.d
r
=3依次表示位置节点t
i,j
在d
r
方向的墙的状态为不存在、存在且不可拆除、存在且可拆除和已被选取;m

=m
·
γ,n

=n
·
γ,γ=m+2n,γ表示迷宫节点外边界边长,m表示迷宫节点内边界边长,n为迷宫节点内边界距离外边界的墙厚度;
[0063]
t102:对于任意t
i,j
∈t,若以(i
·
γ,j
·
γ+n)为嵌密迷宫图像s上的左上角起点,存在n
×
m的墙,则t
i,j
.d0=1;若以(i
·
γ+n,j
·
γ)为嵌密迷宫图像s上的左上角起点,存在m
×
n的墙,则t
i,j
.d1=1;若以(i
·
γ+n,j
·
γ+m+n)为嵌密迷宫图像s上的左上角起点,存在m
×
n的墙,则t
i,j
.d2=1;若以(i
·
γ+m+n,j
·
γ+n)为嵌密迷宫图像s上的左上角起点,存在n
×
m的墙,则t
i,j
.d3=1;
[0064]
t103:重复t102至所有的t
i,j
∈t处理完毕,将得到的迷宫结构t输出。
[0065]
所述t2的具体方法为:
[0066]
t201:初始化节点访问栈w=φ;
[0067]
t202:随机选取t
i,j
.v=0的点作为起始点,将t
i,j
.v的值置为1;
[0068]
t203:若存在t
i,j
.d
r
=0,r∈{0,1,2,3},则从中随机选择一个d
r
作为并将的值置为3,通过式(8)计算得到t
i,j
在方向相邻节点t
i

,j

的坐标(i

,j

):
[0069][0070]
若t
i

,j

.v=0,则将t
i

,j

.v的值置为1,将t
i,j
加入节点访问栈w;
[0071]
若t
i

,j

.v≠0,输出失败并退出;
[0072]
t204:若不存在t
i,j
.d
r
=0,r∈{0,1,2,3},且节点访问栈w不为空时,选取节点访问栈w中最后加入的元素作为t
i

,j

,并在节点访问栈w中移除该元素;
[0073]
t205:更新t
i

,j

作为t
i,j
,重复执行t203~t204,至节点访问栈w为空;
[0074]
t206:若存在t
i,j
且t
i,j
.v=0,输出失败并退出;否则,进行t3。
[0075]
所述t3的具体方法为:
[0076]
将第二密钥key2作为随机数种子,生成长度为αl的且元素不重复的随机坐标位置序列p=((i
u
,j
u
))
αl
和随机方向序列dir=(r
u
)
αl
,r
u
∈{0,1,2,3},且,随机坐标位置序列p=((i
u
,j
u
))
αl
满足如下约束:为内部节点,对于为内部节点,对于不位置相邻;
[0077]
所述t4的具体方法为:
[0078]
初始化备份加密序列b

=(b

u
=0)
αl
,遍历迷宫结构t=(t
i,j
)
m
×
n
,根据随机坐标位置序列p和随机方向序列dir,通过式(9)得到备份加密序列b

=(b

u
)
αl

[0079][0080]
所述t5的具体方法为:
[0081]
定义认证比特序列a=(a
u
)
l
,将得到的备份加密序列b

=(b

u
)
αl
每l位划分一组,得到二值秘密比特序列b=(b
u
)
l
和第一到第α-1的二值比特序列将第一密钥key1作为随机数种子,生成长度为α-1的随机数序列ra=(ra
z
),z∈{1,2,

,α-1},将生成的每一个随机数ra
z
作为随机数种子,分别生成长度均为l的二值比特序列k1=(k
1u
)
l
,k2=(k
2u
)
l
,

,k
α-1
=(k
α-1u
)
l
;通过式(10)验证二值秘密比特序列b=(b
u
)
l
是否遭受攻击:
[0082][0083]
其中,a
u
=0表示未遭受攻击,a
u
=1表示遭受攻击。
[0084]
本发明第三方面,一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现上述迷宫生成式信息隐藏方法的步骤,和/或实现上述迷宫生成式信息恢复方法的步骤。
[0085]
本发明第四方面,一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时,实现上述迷宫生成式信息隐藏方法的步骤,和/或实现上述迷宫生成式信息恢复方法的步骤。
[0086]
与现有技术相比,本发明具有以下有益效果:
[0087]
本发明迷宫生成式信息隐藏方法,选取纹理复杂且样式随机性高的迷宫作为载体,利用迷宫图像的结构化和随机性将秘密信息隐藏在节点墙中来生成完美迷宫,其生成的迷宫图像为非自然图像,避免了基于自然图像统计特性的密写分析器的检测;解决了现有修改式信息隐藏方法通常选用采用自然载体或已有载体嵌密,通过修改像素值或频域系数来嵌入秘密信息,易遗留修改痕迹,从而难以抵抗基于自然图像统计特征的密写分析算法的检测的问题。同时传输过程中无需构建大数据库,且单载体嵌密容量较高,信道中仅需传输嵌密载体,传输代价小。解决了现有搜索式无载体信息隐藏方法中通过搜索适合的未修改自然载体来表达秘密信息,但由于自然载体对不相关秘密信息的表达能力十分有限,导致单载体嵌密容量极低,涉及大量载体在信道中密集传输,安全性较差的问题。同时方法生成的图像为完美迷宫图像,本身具有实际语义,避免了纹理生成式信息隐藏方法很难有真实的语义,从而不能对给定的秘密信息进行有效掩盖的问题,且本发明生成载体为完整整体,从根本上避免了纹理合成式信息隐藏方法存在拼接痕迹和固有的块重复模式的问题。
[0088]
本发明迷宫生成式信息恢复方法,引入完美迷宫检验方法,对接收的迷宫进行完美迷宫检验,检验其是否为完美迷宫来判断迷宫图像是否遭受了攻击,并对通过检验的完美迷宫进行密钥一致性检验,保证秘密信息的安全性。同时秘密信息的嵌入和提取完全依赖于密钥,没有正确的用户密钥将无法提取秘密信息,具有一定的攻击容忍能力。
附图说明
[0089]
图1为本发明实施例的迷宫生成式信息隐藏方法流程图;
[0090]
图2为本发明实施例的秘密信息提取流程图;
[0091]
图3为本发明实施例的迷宫结构示意图;
[0092]
图4为本发明实施例的嵌入秘密信息迷宫结构示意图;
[0093]
图5为本发明实施例的嵌密完美迷宫结构示意图;
[0094]
图6为本发明实施例的单节点生成的迷宫图像;
[0095]
图7为本发明实施例的迷宫图像;
[0096]
图8为本发明实施例的由图6中单节点迷宫图像转换为迷宫结构示意图;
[0097]
图9为本发明实施例的嵌密完美迷宫图像1;
[0098]
图10为本发明实施例的嵌密完美迷宫图像2;
[0099]
图11为本发明实施例的嵌密完美迷宫图像3;
[0100]
图12为本发明实施例的由图9用户密钥直接产生未嵌密完美迷宫图像4;
[0101]
图13为本发明实施例的由图11用户密钥直接产生未嵌密完美迷宫图像5;
[0102]
图14为本发明实施例的对图12使用完美迷宫检验算法检验后的结果图;
[0103]
图15为本发明实施例的对图13使用完美迷宫检验算法检验后的结果图;
[0104]
图16为本发明实施例的对图9使用完美迷宫检验算法检验后的结果图;
[0105]
图17为本发明实施例的对图10使用完美迷宫检验算法检验后的结果图;
[0106]
图18为本发明实施例的对图11使用完美迷宫检验算法检验后的结果图;
[0107]
图19为本发明实施例的对图12灰色圆圈标记位置随机选取一面墙拆除后的迷宫图;
[0108]
图20为本发明实施例的对图12灰色圆圈标记位置随机选取一条路径加上一面墙后的迷宫图;
[0109]
图21为本发明实施例的对图12按图19与图20所选位置拆墙和加墙后的迷宫图;
[0110]
图22为本发明实施例的对图19使用完美迷宫检验策略检验后的结果图;
[0111]
图23为本发明实施例的对图20使用完美迷宫检验策略检验后的结果图;
[0112]
图24为本发明实施例的对图21使用完美迷宫检验策略检验后的结果图。
具体实施方式
[0113]
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
[0114]
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于
清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0115]
以下以java jdk1.8.0_65为案例实施环境,结合附图对本发明实施方式进行详细说明,但不局限于本实施案例。
[0116]
下面结合附图对本发明做进一步详细描述:
[0117]
参见图1,本发明一实施例中,提供一种迷宫生成式信息隐藏方法,包括以下步骤。
[0118]
s1:输入第一密钥key1和第一密钥key2,输入长度为l的二值秘密比特序列b=(b
u
)
l
,将b=(b
u
)
l
加密为长度为αl的备份加密序列b

=(b

u
)
αl
,其中,α为备份数;其加密方法的具体步骤是:
[0119]
s101:初始化长度为l的第一到第α-1的二值比特序列
[0120]
例如:假设输入密钥key1=3,key2=4,取l=1,即输入长度为1的二值秘密比特序列b,假设输入的b=(b0=0)1;取α=2,初始化长度为l=1的第一二值比特序列
[0121]
s102:将第一密钥key1作为随机数种子,生成长度为α-1的随机数序列ra=(ra
z
),z∈{1,2,

,α-1},将生成的每一个随机数ra
z
作为随机数种子,分别生成长度均为l的二值比特序列
[0122]
例如:由密钥key1=3作为随机数种子,生成长度为1的随机数序列ra=(ra1=3),将ra1=3作为随机数种子,生成长度为l=1的二值比特序列
[0123]
s103:对于二值秘密比特序列b中的每个元素b
u
,通过式(1)得到b
u
在每个下的映射值z∈{1,2,

,α-1}:
[0124][0125]
其中,为异或运算符;
[0126]
例如:对于b中的b0=0,按式(1)计算b0在下的映射值将可计算得可得
[0127]
s104:将二值秘密比特序列b=(b
u
)
l
和第一到第α-1的二值比特序列通过式(2)连接成备份加密序列b

=(b

u
)
αl

[0128]
b

=b||b1||b2…
||b
α-1
ꢀꢀꢀ
(2)
[0129]
其中,||为序列连接符号,用于将2个序列连成1个序列;
[0130]
例如:将和按式(2)b

=b||b1可将b和b1连接成备份加密序列b

=(b
′0=0,b
′1=1)2。
[0131]
s2:对规模为m
×
n的迷宫结构t=(t
i,j
)
m
×
n
进行初始化,其中,t
i,j
为迷宫结构(i,j)位置节点;
[0132]
具体的,输入规模为m
×
n的迷宫结构t=(t
i,j
=(v,d0,d1,d2,d3))
m
×
n
,初始化:边界节点t
0,0
=(0,1,1,2,2),t
m-1,0
=(0,2,1,2,1),t
0,n-1
=(0,1,2,1,2),t
m-1,n-1
=(0,2,2,1,1),
t
0,j
=(0,1,2,2,2),j≠0,n-1,t
m-1,j
=(0,2,2,2,1),j≠0,n-1,t
i,0
=(0,2,1,2,2),i≠0,m-1,t
i,n-1
=(0,2,2,1,2),i≠0,m-1,初始化除边界节点外的其他内部节点t
i,j
=(0,2,2,2,2),其中,t
i,j
为迷宫(i,j)位置节点,t
i,j
.v表示节点t
i,j
的状态,t
i,j
.d0,t
i,j
.d1,t
i,j
.d2,t
i,j
.d3分别表示迷宫节点t
i,j
的上方墙、左方墙、右方墙和下方墙状态并且约定:

t
i,j
.v=0、t
i,j
.v=1和t
i,j
.v=2依次表示节点t
i,j
未访问、已访问和已嵌密状态;

t
i,j
.d
r
=0、t
i,j
.d
r
=1、t
i,j
.d
r
=2和t
i,j
.d
r
=3依次表示节点t
i,j
在d
r
方向的墙不存在、存在且不可拆除、存在且可拆除和已被选取;

t
i,j
=(0,2,2,2,2)即t
i,j
.v=0,表示节点t
i,j
未访问,t
i,j
.d0=2,t
i,j
.d1=2,t
i,j
.d2=2,t
i,j
.d3=2表示t
i,j
的所有墙都是可拆除墙。
[0133]
例如:假设m=3,n=6,则可初始化规模为3
×
6的迷宫结
[0134][0135]
对应的迷宫结构图如图3所示。
[0136]
s3:根据预设的第二密钥生成长度为αl的且元素不重复的随机坐标位置序列p=((i
u
,j
u
))
αl
和随机方向序列dir=(r
u
)
αl
,r
u
∈{0,1,2,3};
[0137]
具体的,将第二密钥key2作为随机数种子产生长度为αl的且元素不重复的随机坐标位置序列p=((i
u
,j
u
))
αl
和随机方向序列dir=(r
u
)
αl
,r
u
∈{0,1,2,3},且生成的p=((i
u
,j
u
))
αl
满足的约束是:对于满足的约束是:对于不位置相邻,即:不位置相邻,即:且为内部节点
[0138]
例如:由密钥key2=4作为随机数种子产生长度为αl=2
×
1=2的不重复随机坐标位置序列(i0,j0)=(1,1),(i1,j1)=(1,4)则p=((i
u
,j
u
))
αl
=((1,1),(1,4))2,产生随机方向序列r0=1,r1=2则dir=(r
u
)
αl
=(1,2)2,满足约束条件,即和(1,1)不位置相邻,并且t
1,1
,t
1,4
为内部节点。
[0139]
s4:结合p=((i
u
,j
u
))
αl
和dir=(r
u
)
αl
,r∈{0,1,2,3},通过改变迷宫结构t=(t
i,j
)
m
×
n
的节点墙的状态来编码b

=(b

u
)
αl
,得到嵌入b

=(b

u
)
αl
的嵌入迷宫结构t

=(t

i,j
)
m
×
n

[0140]
具体的,包括以下步骤:
[0141]
s401:取p中的坐标位置(i
u
,j
u
)和dir中的方向r
u
以及b

中的b

u

[0142]
例如:取p中的坐标位置(i0,j0)=(1,1)和dir中的方向r0=1以及b

中的b
′0=0。
[0143]
s402:按式(3)计算在r
u
方向的直接相邻节点所在的坐标位置(i

u
,j

u
):
[0144][0145]
例如:按式(3)计算在r0=1方向的直接相邻节点可得i
′0=i0=1,j
′0=
j
0-1=0所在的坐标位置(1,0)。
[0146]
s403:按式(4)修改和的访问状态,以及和两节点的墙状态,其中和分别表示节点和已嵌密,和分别表示节点在方向的墙和在方向的墙为不可拆除墙:
[0147][0148]
例如:由b
′0=0,按式(4)修改t
1,1
的v值为2,d1值为0,t
1,0
的v值为2,d
3-1
即d2值为0,修改完毕后t
1,1
=(2,2,0,2,2),t
1,0
=(2,2,1,0,2)。
[0149]
s404:重复s401~s403,至所有的b

u
处理完毕,将嵌入b

=(b

u
)
αl
的t=(t
i,j
)
m
×
n
作为t

=(t

i,j
)
m
×
n

[0150]
例如:重复s401~s403,取p中的坐标位置(i1,j1)=(1,4)和dir中的方向r1=2以及b

中的b
′1=1,按式(3)计算在r1=2方向的直接相邻节点可得i
′1=i1=1,j
′1=j1+1=5所在的坐标位置(1,5),由b
′1=1,按式(4)修改t
1,4
的d2值为1,t
1,5
的d
3-2
即d1值为1,修改完毕后t
1,4
=(0,2,2,1,2),t
1,5
=(0,2,1,1,2);此时b

中所有的b

u
处理完毕,将t=(t
i,j
)3×6作为t

=(t

i,j
)3×6,对应的迷宫结构图如图4所示。
[0151]
s5:通过改变嵌入迷宫结构t

的节点墙状态,得到完美迷宫结构t

=(t

i,j
)
m
×
n
,其中,完美迷宫结构t

中,对于中,对于仅存在唯一不被节点墙阻断的通路,其具体步骤是:
[0152]
s501:初始化节点墙集合v=φ,其中φ表示空集合。
[0153]
例如:初始化v={}。
[0154]
s502:随机选一个节点t

i,j

[0155]
例如:假设随机选一个节点t

i,j
=t

0,1

[0156]
s503:将t

i,j
的所有可拆除墙t

i,j
.d
r
=2,r∈{0,1,2,3}并入v中并将t

i,j
·
v的值置为1表示该节点已访问。
[0157]
例如:将t

0,1
的所有可拆除墙t

0,1
.d1,t

0,1
.d2,t

0,1
.d3并入v,v={t

0,1
.d1,t

0,1
.d2,t

0,1
.d3},并将t

0,1
·
v的值置为1,此时t

0,1
=(1,1,2,2,2)。
[0158]
s504:从v中随机选一面墙,记为t

x,y
.d
r

,其中(x,y)是墙d
r

所在节点t

x,y
的坐标位置,将t

x,y
.d
r

从v中删除,按式(5)计算得t

x,y
在d
r

方向相邻的节点t

x

,y

的坐标(x

,y

):
[0159]
[0160]
例如:从v中随机选一面墙,假设为t

0,1
.d3,将t

0,1
.d3从v中删除,此时v={t

0,1
.d1,t

0,1
.d2},按式(5)计算可得x

=x+1=1,y

=y=1,则t

0,1
在d3方向相邻的节点为t

1,1

[0161]
s505:若t

x

,y

.v=2时,寻找相邻节点t

x

,y

.v=2,(x

,y

)∈{(x
′-
1,y

),(x

,y
′-
1),(x

,y

+1),(x

+1,y

)},按式(6)将t

x

,y

·
v置为1,将t

x

,y

周围存在且为可拆除墙t

x

,y

.d
r
=2,r∈{0,1,2,3}加入v中,然后按式(7)修改t

x

,y

和t

x,y
之间分隔墙的状态,将t

x

,y

的可拆除墙t

x

,y

.d
r
=2,d
r
∈{0,1,2,3}加入v中;若t

x

,y

.v=0时,则直接按式(7)修改t

x

,y

和t

x,y
之间分隔墙的状态,将t

x

,y

的可拆除墙t

x

,y

.d=2,d∈{0,1,2,3}加入v中;若t

x

,y

.v=1时,则重新执行s504;
[0162]
t

x

,y

·
v=1
ꢀꢀꢀ
(6)
[0163]
t

x

,y

.v=1,t

x,y
.d
r

=0,t

x

,y

.d
(3-r

)
=0
ꢀꢀꢀ
(7)
[0164]
例如:由s504得到的t

x

,y

为t

1,1
,t

1,1
.v=2,则可按t

x

,y

.v=2,(x

,y

)∈{(x
′-
1,y

),(x

,y
′-
1),(x

,y

+1),(x

+1,y

)}找到相邻节点t

1,0
且t

1,0
.v=2,按式(6)将t

1,0
.v=1,将t

1,0
周围存在且为可拆除墙加入v中,t

1,0
=(1,2,1,0,2),则此时v={t

0,1
.d1,t

0,1
.d2,t

1,0
.d0,t

1,0
.d3},然后按式(7)修改t

1,1
.v=1,t

0,1
.d3=0,t

1,1
.d
(3-3)
=0,即此时t

1,1
=(1,0,0,2,2),t

0,1
=(1,1,2,2,0);将t

1,1
的可拆除墙t

1,1
.d2,t

1,1
.d3加入v中,此时v={t

0,1
.d1,t

0,1
.d2,t

1,0
.d0,t

1,0
.d3,t

1,1
.d2,t

1,1
.d3}。
[0165]
s506:重复s504~s505直至t

中的所有节点的访问状态都为1,表示t

中的所有节点都被访问,将得到t

=(t

i,j
)
m
×
n
作为生成的完美迷宫结构t

=(t

i,j
)
m
×
n

[0166]
例如:反复执行s504~s505,可得到作为生成的完美迷宫结构t

=(t

i,j
)3×6,对应的迷宫结构图如图5所示。
[0167]
s6:根据t

=(t

i,j
)
m
×
n
绘制含密迷宫图像s并输出,其具体步骤是:
[0168]
s601:初始化分辨率为m
′×
n

二值图像s

=(s

i,j
=1)
m
′×
n

且m

=m
·
γ,n

=n
·
γ,γ=m+2n,即每个迷宫节点被绘制为外边界大小为γ
×
γ的网格,其中网格中心内边界为m
×
m,n为内边界距离外边界的墙厚度。
[0169]
例如:仅以一个迷宫节点为例,设定迷宫节点绘制的网格大小为3
×
3,网格中心内边界为1
×
1,内边界距离外边界的墙厚度为1,初始化一个分辨率为3
×
3的二值图像
[0170]
s602:对于任意t

i,j
∈t

,分别以(i
·
γ,j
·
γ)、(i
·
γ,j
·
γ+m+n)、(i
·
γ+m+n,j
·
γ)和(i
·
γ+m+n,j
·
γ+m+n)为s

s上的左上角起点,在s

上绘制分辨率为n
×
n的像素值为0的黑色小块,若t

i,j
.d0≠0,则以(i
·
γ,j
·
γ+n)为s

上左上角起点,在s

上绘制像素值为0的n
×
m的黑色小块;若t

i,j
.d1≠0,则以(i
·
γ+n,j
·
γ)为s

上左上角起点,在s

上绘制像素值为0的m
×
n的黑色小块;若t

i,j
.d2≠0,则以(i
·
γ+n,j
·
γ+m+n)为s

上左上角起点,在s

上绘制像素值为0的m
×
n的黑色小块;若t

i,j
.d3≠0,则以(i
·
γ+m+n,
j
·
γ+n)为s

上左上角起点,在s

上绘制像素值为0的n
×
m的黑色小块。
[0171]
例如:取t

0,0
=(1,2,2,2,0)为例,分别以(0,0)、(0,2)、(2,0)和(2,2)为s

上左上角起点,在s

上绘制分辨率为1
×
1的像素值为0的黑色小块,即取t

0,0
.d0=2,则以(0,1)为s

上左上角起点,在s

上绘制像素值为0的1
×
1的黑色矩阵小块,即同样根据t

0,0
.d1=2,t

0,0
.d2=2最终得到
[0172]
s603:反复执行s602直至所有的t

i,j
∈t

处理完毕,将得到的嵌密迷宫图像s

作为s输出。
[0173]
例如:如图6所示,给出迷宫网格节点t

0,0
=(1,2,2,2,0)绘制示意图,图7给出了图5所示的迷宫结构t

=(t

i,j
)3×6经过反复执行s602,取m=1,n=1生成分辨率为9
×
18的二值图像。
[0174]
参见图2,本发明再一实施例中,提供了一种迷宫生成式信息恢复方法,包括以下步骤。
[0175]
t1:输入第一密钥key1和第一密钥key2,输入秘密比特长度l和备份数α,输入嵌密迷宫图像s=(s
i,j
)
m
′×
n

,将s转换为迷宫结构t=(t
i,j
=(v,d0,d1,d2,d3))
m
×
n
,其中转换方法的具体步骤是:
[0176]
t101:初始化规模为m
×
n迷宫结构t=(t
i,j
=(0,0,0,0,0))
m
×
n
,即t
i,j
.v=0,表示节点t
i,j
未访问,t
i,j
.d0=0,t
i,j
.d1=0,t
i,j
.d2=0,t
i,j
.d3=0表示t
i,j
的所有墙都不存在;m

=m
·
γ,n

=n
·
γ,γ=m+2n,其中γ对应为嵌密迷宫图像s中的每个迷宫节点的外边界边长,m对应的是位于每个迷宫节点中心区域的内边界边长,n是内边界距离外边界的墙厚度。
[0177]
例如:输入密钥key1=3,key2=4,输入秘密比特长度l=1和备份数α=2,输入嵌密迷宫图像s=(s
i,j
)
12
×
24
,假设迷宫图像s中的每个迷宫节点的外边界边长γ=4,每个迷宫节点中心区域内边界边长m=2,内边界距离外边界的墙厚度n=1;则初始化规模3
×
6迷宫结构
[0178]
t102:对于任意t
i,j
∈t,若以(i
·
γ,j
·
γ+n)为s上左上角起点,存在n
×
m的墙,则t
i,j
.d0=1;若以(i
·
γ+n,j
·
γ)为s上的左上角起点,存在m
×
n的墙,则t
i,j
.d1=1;若以(i
·
γ+n,j
·
γ+m+n)为s上的左上角起点,存在m
×
n的墙,则t
i,j
.d2=1;若以(i
·
γ+m+n,j
·
γ+n)为s上的左上角起点,存在n
×
m的墙,则t
i,j
.d3=1。
[0179]
例如:仅以嵌秘迷宫图像中一个迷宫节点为例,假设输入的对于任意t
i,j
∈t,以(0,1)为s上左上角起点,存在1
×
1的黑色像素,即墙存在,则t
i,j
.d0=1;以(1,0)为s上左上角起点,存在1
×
1的墙,则t
i,j
.d1=1;以(1,2)为s上左上角起点,存在1
×
1的墙,则t
i,j
.d2=1,以(2,1)为s上左上角起点,不存在1
×
1的墙,最终可得该节点t
i,j
=(0,1,1,1,0),对应的示意图如图8所示。
[0180]
t103:反复执行t102,直至所有的t
i,j
∈t处理完毕,将得到的t输出。
[0181]
例如:反复执行t102,直至所有的t
i,j
∈t处理完毕,将得到的
[0182]
t2:对t进行完美迷宫检验,若t不为完美迷宫时,退出,否则进行t3;
[0183]
其具体步骤是:
[0184]
t201:初始化节点访问栈w=φ。
[0185]
例如:输入初始化节点访问栈w={}。
[0186]
t202:随机选取t
i,j
.v=0的点作为起始点,将t
i,j
.v置为1。
[0187]
例如:随机选取t
1,1
作为起始点,将t
i,j
.v置为1,此时t
1,1
=(1,0,0,1,1)。
[0188]
t203:若存在t
i,j
.d
r
=0,r∈{0,1,2,3},则从中随机选择一个d
r
作为并将置为3,表示该面墙已被选取过,按式(8)计算得到t
i,j
在方向相邻节点t
i

,j

的坐标(i

,j

):
[0189][0190]
若t
i

,j

.v=0,则将t
i

,j

.v置为1,将t
i,j
加入节点访问栈w。
[0191]
若t
i

,j

.v≠0,表示t
i,j
已重复访问,表明迷宫不为完美迷宫,输出失败并退出。
[0192]
例如:对于t
1,1
,存在t
1,1
.d0=0,t
1,1
.d1=0,从中随机选取d0作为即并置t
1,1
.d0=3,按式(7)计算i

=i-1=0,j

=j=1可得t
1,1
在方向相邻节点的坐标(0,1),则t
i

,j

=t
0,1
,由t
0,1
=(0,1,1,1,0)可得t
0,1
.v=0,令t
0,1
.v=1,将t
0,1
加入节点访问栈w,此时w={t
0,1
},t
0,1
=(1,1,1,1,0),t
1,1
=(1,3,0,1,1)。
[0193]
t204:若不存在t
i,j
.d
r
=0,r∈{0,1,2,3},且节点访问栈w不为空时,选取节点访问栈w中最后加入的元素作为t
i

,j

,并且在w中移除该元素。
[0194]
例如:假设t
0,1
=(1,1,1,1,3),节点访问栈w={t
1,0
,t
1,1
},t
1,1
为最后加入的元素,则选择t
1,1
作为t
i

,j

继续执行,并且在w中移除该元素,此时w={t
1,0
}。
[0195]
t205:更新t
i

,j

作为t
i,j
,重复执行t203~t204直到节点访问栈w为空。
[0196]
例如:假设t
i

,j

=t
0,1
,则更新t
0,1
作为t
i,j
重复执行t203~t204,直到w为空。
[0197]
t206:若仍然存在t
i,j
且t
i,j
.v=0,则表明迷宫不为完美迷宫,输出失败并退出,若
所有的t
i,j
且t
i,j
.v≠0,则通过完美迷宫检验,进行t3。
[0198]
例如:遍历t=(t
i,j
)3×6不存在t
i,j
.v=0,表示为完美迷宫,通过完美迷宫检验,进行t3。
[0199]
t3:根据第二密钥生成长度为αl的不重复随机坐标位置序列p=((i
u
,j
u
))
αl
和随机方向序列dir=(r
u
)
αl
,r∈{0,1,2,3},其具体方法是:
[0200]
将第二密钥key2作为随机数种子产生长度为αl的且元素不重复的随机坐标位置序列p=((i
u
,j
u
))
αl
和随机方向序列dir=(r
u
)
αl
,r∈{0,1,2,3};且生成的p=((i
u
,j
u
))
αl
满足的约束是:对于足的约束是:对于不位置相邻,即不位置相邻,即且为内部节点。
[0201]
例如:l=1,α=2,由密钥key2=4作为随机数种子产生长度为αl=2的不重复随机坐标位置序列(i0,j0)=(1,1),(i1,j1)=(1,4)则p=((i
u
,j
u
))
2l
=((1,1),(1,4))2,产生随机方向序列r0=1,r1=2则dir=(r
u
)
αl
=(1,2)2,即和(1,1)不位置相邻,且t
1,1
,t
1,4
满足约束条件。
[0202]
t4:遍历迷宫结构t=(t
i,j
)
m
×
n
,根据随机坐标位置序列p和随机方向序列dir得到备份加密序列b

=(b

u
)
αl
,其具体方法是:
[0203]
初始化二值比特序列b

=(b

u
=0)
αl
,遍历迷宫结构t=(t
i,j
)
m
×
n
,由p=((i
u
,j
u
))
αl
和dir=(r
u
)
αl
根据式(9)得到b

=(b

u
)
αl

[0204][0205]
例如:初始化二值比特序列b

=(b
′0=0,b
′1=0)2,由p=((1,1),(1,4))2和dir=(1,2)2遍历可得,即得到b

=(b
′0=0,b
′1=1)2。
[0206]
t5:根据第一密钥将备份加密序列b

=(b

u
)
αl
恢复为二值秘密比特序列b=(b
u
)
l
,并检验其可靠性,得到认证比特序列a=(a
u
)
l
,其具体方法是:
[0207]
记认证比特序列a=(a
u
)
l
,将得到的备份加密序列b

=(b

u
)
αl
每l位划分一组,得到二值秘密比特序列b=(b
u
)
l
和第一到第α-1的二值比特序列将第一密钥key1作为随机数种子,生成长度为α-1的随机数序列ra=(ra
z
),z∈{1,2,

,α-1},将生成的每一个随机数ra
z
作为随机数种子,分别生成长度均为l的二值比特序列k1=(k
1u
)
l
,k2=(k
2u
)
l
,

,k
α-1
=(k
α-1u
)
l
;通过式(10)验证二值秘密比特序列b=(b
u
)
l
是否遭受攻击:
[0208][0209]
其中,a
u
=0表示未遭受攻击,a
u
=1表示遭受攻击。
[0210]
例如:初始化认证比特序列a=(a
u
)
l
=(a0=0)1,将得到的b

=(b
′0=0,b
′1=1)2每1位划分一组,分为两组和由第一密钥key1=3作为随机数种子,生成长度为1的随机数序列ra=(ra1=3),将ra1=3作为随机数种子,生成长度为l=1的二值比特序列按式(10)可得则a0=0,表示提取的秘密信息可靠,输出b=(b0=0)1和a=(a0=0)1。
[0211]
参见图9至图11,图9是以为待嵌入秘密信息,取密钥key1=7,key2=3,起始点坐标(0,0),生成迷宫节点规模为20
×
20,迷宫节点绘制的网格大小为15
×
15像素点,网格中心内边界为5
×
5像素点,内边界距离外边界的墙厚度为5像素点的嵌密完美迷宫图像1。图10是以为待嵌入秘密信息,取密钥key1=3,key2=3,起始点坐标(0,0),生成迷宫节点规模为20
×
20,迷宫节点绘制的网格大小为15
×
15像素点,网格中心内边界为5
×
5像素点,内边界距离外边界的墙厚度为5像素点的嵌密完美迷宫图像2。图11是以为待嵌入秘密信息,取密钥key1=7,key2=7,起始点坐标(0,0),生成迷宫节点规模为20
×
20,迷宫节点绘制的网格大小为15
×
15像素点,网格中心内边界为5
×
5像素点,内边界距离外边界的墙厚度为5像素点的嵌密完美迷宫图像3。图9至图11在信道中公开,都为非自然图像,因此可抵抗基于自然图像统计特性的密写分析器的检测。
[0212]
参见图12至图13,图12是不嵌入秘密信息,取密钥key1=7,key2=3,生成迷宫节点规模为20
×
20,迷宫节点绘制的网格大小为15
×
15像素点,网格中心内边界为5
×
5像素点,内边界距离外边界的墙厚度为5像素点的嵌密完美迷宫图像4。图13是不嵌入秘密信息,取密钥key1=7,key2=7,生成迷宫节点规模为20
×
20,迷宫节点绘制的网格大小为15
×
15像素点,网格中心内边界为5
×
5像素点,内边界距离外边界的墙厚度为5像素点的嵌密完美迷宫图像5。
[0213]
由图9按正确密钥恢复出的秘密信息为相对于嵌密信息的误码率ebr为0%,由图10按正确密钥恢复出的秘密信息为相对于嵌密信息
的误码率ebr为0%,由图11按正确密钥恢复出的秘密信息为相对于嵌密信息的误码率ebr为0%,因此秘密信息可被完全提取。
[0214]
对图9按错误密钥恢复出的秘密信息为相对于嵌密信息的误码率ebr为56.25%,对图10按错误密钥恢复出的秘密信息为相对于嵌密信息的误码率ebr为43.75%,对图11按错误密钥恢复出的秘密信息为相对于嵌密信息的误码率ebr为56.25%。可见,本发明提取过程完全依赖于密钥key1,key2,密钥发生改变时会导致误码率趋于50%,从而提取的秘密信息具有较大的不确定,丧失其使用价值。
[0215]
参见图14,是对图12使用完美迷宫检验算法检验后的结果图像,灰色表示该节点已遍历一次,白色表示该节点被多次遍历,存在回路,路径黑色表示存在未访问的节点,检验结果所有路径均被访问且被访问一次,为完美迷宫通过算法。参见图15,是对图13使用完美迷宫检验算法检验后的结果图像,灰色表示该节点已遍历一次,白色表示该节点被多次遍历,存在回路,路径黑色表示存在未访问的节点,检验结果所有路径均被访问且被访问一次,为完美迷宫通过算法。参见图16,是对图9使用完美迷宫检验算法检验后的结果图像,灰色表示该节点已遍历一次,白色表示该节点被多次遍历,存在回路,路径黑色表示存在未访问的节点,检验结果所有路径均被访问且被访问一次,为完美迷宫通过算法。参见图17,对图10使用完美迷宫检验算法检验后的结果图像,灰色表示该节点已遍历一次,白色表示该节点被多次遍历,存在回路,路径黑色表示存在未访问的节点,检验结果所有路径均被访问且被访问一次,为完美迷宫通过算法。参见图18,是对图11使用完美迷宫检验算法检验后的结果图像,灰色表示该节点已遍历一次,白色表示该节点被多次遍历,存在回路,路径黑色
表示存在未访问的节点,检验结果所有路径均被访问且被访问一次,为完美迷宫通过算法。
[0216]
图19是对图12随机选取一面墙拆除后的迷宫图像,拆除位置用灰色圆圈标记;图20是对图12随机选取一条路径加上一面墙后的迷宫图像,添加位置用灰色圆圈标记;图21是对图12按图19与图20的所选位置拆墙和加墙后的迷宫图像,拆除和加墙位置用灰色圆圈标记;图22是对图19使用完美迷宫检验策略检验后的结果图像,灰色表示该节点已遍历一次,白色表示该节点被多次遍历,存在回路,路径黑色表示存在未访问的节点,检验结果存在白色节点,表示存在回路,未通过完美迷宫检验;图23是对图20使用完美迷宫检验策略检验后的结果图像,灰色表示该节点已遍历一次,白色表示该节点被多次遍历,存在回路,路径黑色表示存在未访问的节点,检验结果存在黑色路径,表示存在未访问到的节点即存在封闭区域,未通过完美迷宫检验;图24是对图21使用完美迷宫检验策略检验后的结果图像,灰色表示该节点已遍历一次,白色表示该节点被多次遍历,存在回路,路径黑色表示存在未访问的节点,检验结果既存在白色表示的节点被多次遍历,又存在黑色路径表示存在未访问的节点,说明该图像既存在封闭区域,也存在多次访问节点,未通过完美迷宫检验;因此本发明的完美迷宫检验可以通过完美迷宫图像和嵌密后的完美迷宫图像,不能通过被修改后的不完美迷宫,从而保证用户接收时过滤遭到恶意修改的载体图像,进而保证秘密信息的安全性和可靠性。
[0217]
本发明再一个实施例中,提供了一种终端设备,该终端设备包括处理器以及存储器,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器用于执行所述计算机存储介质存储的程序指令。处理器可能是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor、dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field-programmable gatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其是终端的计算核心以及控制核心,其适于实现一条或一条以上指令,具体适于加载并执行一条或一条以上指令从而实现相应方法流程或相应功能;本发明实施例所述的处理器用于迷宫生成式信息隐藏方法和/或迷宫生成式信息恢复方法的操作。
[0218]
再一个实施例中,本发明还提供了一种计算机可读存储介质(memory),所述计算机可读存储介质是终端设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的计算机可读存储介质既可以包括终端设备中的内置存储介质,当然也可以包括终端设备所支持的扩展存储介质。计算机可读存储介质提供存储空间,该存储空间存储了终端的操作系统。并且,在该存储空间中还存放了适于被处理器加载并执行的一条或一条以上的指令,这些指令可以是一个或一个以上的计算机程序(包括程序代码)。需要说明的是,此处的计算机可读存储介质可以是高速ram存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。可由处理器加载并执行计算机可读存储介质中存放的一条或一条以上指令,计算机可读存储介质中的一条或一条以上指令由处理器加载并执行迷宫生成式信息隐藏方法和/或迷宫生成式信息恢复方法的步骤。
[0219]
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机
可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0220]
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0221]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0222]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0223]
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1