一种数字图像隐写方法及秘密信息提取方法与流程

文档序号:17731755发布日期:2019-05-22 02:54阅读:373来源:国知局
本发明涉及一种数字图像隐写方法及秘密信息提取方法。
背景技术
::经过多年的发展,数字图像的隐写术日趋完善,但仍存在改进的空间。尤其,隐写术的对立面——隐写分析也在不断完善,这对隐写术提出了更高的要求。为保证隐蔽通信的安全,隐写图像的不可感知性及安全性是至关重要的性能,因此,诸多学者开展了广泛的研究。由于隐写容量和图像质量是一对矛盾体,增加隐写容量肯定会在一定程度上使隐写图像的失真加大,使图像质量下降,从而隐写图像的不可感知性和安全性下降。由此,隐写方法提供尽可能大的隐写容量,同时最小化隐写带来的嵌入失真是主要的研究思路。近些年,这些方法大致分成三类:第一类,把秘密消息嵌入到载体图像中不易察觉的部分,比如说纹理复杂区域。fridrich等提出的湿纸编码(wetpapercode)就是典型的方法;第二类,在每次隐写修改载体图像时嵌入更多的秘密消息数据位来实现,同时保证嵌入带来的失真最小。filler等提出的病灶格栅编码stc(syndrome-trelliscode)就是其中出色的方法;第三类,从降低均方误差的思想出发,越小的均方误差意味着越高的信噪比,隐写图像质量越好,从而不可感知性和安全性越好。2012年,hong等人使用自适应像素对匹配appm(adaptivepixelpairmatching)来构造一个二维平面紧凑的候选领域集,获得了很小的均方误差,从而使嵌入影响最小化,提高了隐写图像的不可感知性和安全性。2013年,基于同样的思想,hong又设计了基于补丁的参考表方法prt(patchedreferencetable),其参考表由非矩形块的基本表填充而得,其性能与appm相当。2015年,考虑到秘密消息和载体图像的不均匀性,针对基于参考表(referencetablebased)的隐写方法,mao设计了一个通用的多轮动态交换优化程序mrdso(multi-rounddynamicswapoptimization)来优化参考表,降低了均方误差,使得嵌入影响最小。2016年,廖琪男等人研究了n维超立方体模映射安全隐写算法,利用模函数余数循环性质把一个an进制秘密数字嵌入到n个载体像素中,将候选领域集扩展到n维的超立方体,一方面减少秘密消息带来的嵌入失真,另一方面维度的增加也提高了隐写数据的安全性。2018年,liaoxin等人将2维的prt和prt-pvd方法推广到n维,提出了基于立方体参考表crt(cubicreferencetable)的隐写方法,可进一步降低均方误差和嵌入失真,提供更好的图像质量和安全性。技术实现要素:本发明所要解决的首要技术问题是针对上述现有技术提供一种能够获得更小的均方误差、从而进一步提高隐写图像的不可感知性和安全性的数字图像隐写方法。本发明进一步解决的技术问题是提供一种秘密信息提取方法。本发明解决上述首要技术问题所采用的技术方案为:一种数字图像隐写方法,用于将二进制的秘密消息s嵌入大小为m×n的原始载体图像gc中,其特征在于包括如下步骤:步骤(1)、首先按照下式计算满足条件的最小的b,|sb|代表秘密消息s在b进制下的长度,是向下取整运算;步骤(2)、按光栅扫描方式扫描原始载体图像gc,将原始载体图像gc分成连续的互不重叠的三像素组序列q,三像素组序列q中的一组数据包含三个像素点的像素值,三像素组序列q的组数为步骤(3)、将二进制的秘密消息s转换成b进制的秘密消息sb;步骤(4)、从三像素组序列q中按照顺序取出一组数据,将这组数据标记为(x,y,z);从b进制的秘密消息sb中按照顺序取出一位秘密数据,将这一位秘密数据标记db;步骤(5)、将(x,y,z)定义成一个三维空间的点,根据下面公式1确定三维空间点(x,y,z)的候选像素值领域集фb(x,y,z),及参数k1和k2:其中f(xi,yi,zi)为三维球体的提取模函数,mod为求余函数;给定一个进制b和空间中一点(x,y,z),通过公式1求解,可以得到k1和k2,以及b个空间点(xi,yi,zi),i∈{0,1,…,b-1},这b个空间点就是三维空间点(x,y,z)在进制b下的候选像素值领域集φb(x,y,z);步骤(6)、搜索候选像素值领域集фb(x,y,z)找到(x′,y′,z′),满足f(x′,y′,z′)=db,其中f(x′,y′,z′)=(x′+k1×y′+k2×z′)modb;步骤(7)、用(x′,y′,z′)替换三像素组序列q中(x,y,z),完成秘密数据db的隐写嵌入;步骤(8)、重复步骤(4)到步骤(7),直至b进制的秘密消息序列sb中的全部秘密数据均嵌入至三像素组序列q中,将完成秘密数据隐写嵌入后的三像素组序列q执行光栅扫描,得到大小为的m×n隐写载密图像gs,同时输出隐写的进制b。作为改进,所述步骤(6)中,如果得出的(x′,y′,z′)存在溢出,根据余数循环性质,在(x,y,z)为原点的三维空间里,以(x′,y′,z′)相对于原点(x,y,z)的对称方向,从原点(x,y,z)出发搜索最近的(x″,y″,z″),满足f(x″,y″,z″)=db;用(x″,y″,z″)替换(x′,y′,z′)。本发明解决上述进一步技术问题所采用的技术方案:一种秘密信息提取方法,用于在大小为的m×n隐写载密图像gs中提取二进制的秘密消息s,且隐写载密图像gs中秘密消息的隐写进制为b,其特征在于包括如下步骤:步骤(a)、根据隐写进制b,计算k1和k2:选取空间中任意一个已知坐标的点(x,y,z),根据下面公式(1)确定参数k1和k2:其中f(xi,yi,zi)为三维球体的提取模函数,mod为求余函数;给定一个进制b和点(x,y,z)的值,通过公式1求解,可以得到k1和k2;步骤(b)、按光栅扫描方式扫描隐写载密图像gs,将隐写载密图像gs分成连续的互不重叠的三像素组序列q,三像素组序列q中的一组数据包含三个像素点的像素值,三像素组序列q的组数为本步骤中的光栅扫描是指从左往右,由上往下,先扫描完一行,再移至下一行起始位置继续扫描;步骤(c)、从三像素组序列q中按照顺序取出一组数据,将这组数据标记为(x,y,z);计算f(x,y,z)=(x+k1×y+k2×z)modb,得到一位b进制下的秘密数据db;;步骤(d)、重复步骤(c),直至全部三像素组序列中所有数据组处理完毕,得到b进制下的秘密消息sb;步骤(e)、根据进制b,把b进制下的秘密消息sb转换成二进制的秘密消息s。与现有技术相比,本发明的优点在于:能够获得更小的均方误差,能有效提高隐写图像的不可感知性和安全性。附图说明图1为本发明实施例中点(87,108,60)的候选领域集。具体实施方式以下结合附图实施例对本发明作进一步详细描述。本发明提供的数字图像隐写方法,用于将二进制的秘密消息s嵌入大小为m×n的原始载体图像gc中,其包括如下步骤:步骤(1)、首先按照下式计算满足条件的最小的b,|sb|代表秘密消息s在b进制下的长度,是向下取整运算;步骤(2)、按光栅扫描方式扫描原始载体图像gc,将原始载体图像gc分成连续的互不重叠的三像素组序列q,三像素组序列q中的一组数据包含三个像素点的像素值,三像素组序列q的组数为步骤(3)、将二进制的秘密消息s转换成b进制的秘密消息sb;步骤(4)、从三像素组序列q中按照顺序取出一组数据,将这组数据标记为(x,y,z);从b进制的秘密消息sb中按照顺序取出一位秘密数据,将这一位秘密数据标记db;步骤(5)、将(x,y,z)定义成一个三维空间的点,根据下面公式1确定三维空间点(x,y,z)的候选像素值领域集фb(x,y,z),及参数k1和k2:其中f(xi,yi,zi)为三维球体的提取模函数,mod为求余函数;给定一个进制b和空间中一点(x,y,z),通过公式1求解,可以得到k1和k2,以及b个空间点(xi,yi,zi),i∈{0,1,…,b-1},这b个空间点就是三维空间点(x,y,z)在进制b下的候选像素值领域集φb(x,y,z);步骤(6)、搜索候选像素值领域集фb(x,y,z)找到(x′,y′,z′),满足f(x′,y′,z′)=db,其中f(x′,y′,z′)=(x′+k1×y′+k2×z′)modb;步骤(7)、用(x′,y′,z′)替换三像素组序列q中(x,y,z),完成秘密数据db的隐写嵌入;步骤(8)、重复步骤(4)到步骤(7),直至b进制的秘密消息序列sb中的全部秘密数据均嵌入至三像素组序列q中,将完成秘密数据隐写嵌入后的三像素组序列q执行光栅扫描,得到大小为的m×n隐写载密图像gs,同时输出隐写的进制b。所述步骤(6)中,如果得出的(x′,y′,z′)存在溢出,根据余数循环性质,在(x,y,z)为原点的三维空间里,以(x′,y′,z′)相对于原点(x,y,z)的对称方向,从原点(x,y,z)出发搜索最近的(x″,y″,z″),满足f(x″,y″,z″)=db;用(x″,y″,z″)替换(x′,y′,z′)。下面举一个简单的例子,设原始载体图像gc是256灰度,大小是512×512,二进制的秘密消息s,根据上述设定确定使用125进制;设当前从三像素组序列q中取出一组数据是(87,108,60),需要嵌入的一位秘密数据db是100115,同时通过公式1得到空间点(87,108,60)的候选像素值领域集фb(87,108,60),如图1所示,k1和k2分别是10和50;在候选像素值领域集фb(87,108,60)搜索,发现空间点(85,109,61)满足f(85,109,61)=(85+10×109+50×61)mod125=100125,随后三像素组序列q,用(85,109,61)替换(87,108,60),完成100125的嵌入。附图1中的子图(a)表示像素值空间点(87,108,60)在125进制下的候选像素值领域集ф125(87,108,60),子图(b)是相应的三维散点图。隐写所使用进制b,可以预先通过安全信道发送给接收方,或是以双方约定方式,例如采用lsb,隐写在同一幅载体图像的前几个像素或最后几个像素,然后和秘密消息一同发送给接收方。至于b进制所对应的k1和k2,可以以同样的方式发送给接收方,也可以根据算法由接收方自行计算。相配合的,利用上述隐写方法得到的隐写载密图像gs,在进行秘密信息提取时,通过如下方法获得:一种秘密信息提取方法,用于在大小为的m×n隐写载密图像gs中提取二进制的秘密消息s,且隐写载密图像gs中秘密消息的隐写进制为b,其包括如下步骤:步骤(a)、根据隐写进制b,计算k1和k2:选取空间中任意一个已知坐标的点(x,y,z),根据下面公式(1)确定参数k1和k2:其中f(xi,yi,zi)为三维球体的提取模函数,mod为求余函数;给定一个进制b和点(x,y,z)的值,通过公式1求解,可以得到k1和k2;步骤(b)、按光栅扫描方式扫描隐写载密图像gs,将隐写载密图像gs分成连续的互不重叠的三像素组序列q,三像素组序列q中的一组数据包含三个像素点的像素值,三像素组序列q的组数为步骤(c)、从三像素组序列q中按照顺序取出一组数据,将这组数据标记为(x,y,z);计算f(x,y,z)=(x+k1×y+k2×z)modb,得到一位b进制下的秘密数据db;步骤(d)、重复步骤(c),直至全部三像素组序列中所有数据组处理完毕,得到b进制下的秘密消息sb;步骤(e)、根据进制b,把b进制下的秘密消息sb转换成二进制的秘密消息s。同样以嵌入过程的例子为例,根据进制b为125,计算k1为10,k2为50,当从三像素组序列q中取出一组数据组(85,109,61)时,计算f(85,109,61)=(85+10×109+50×61)mod125=100125,得到125进制的100,最终转换成二进制的1100100。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1