一种基于复杂度的EMD(n,m,δ)自适应图像密写方法与流程

文档序号:16589582发布日期:2019-01-14 18:59阅读:248来源:国知局
一种基于复杂度的EMD(n,m,δ)自适应图像密写方法与流程

本发明属于图像信息安全和数字图像信号处理交叉领域,涉及一种图像密写方法,特别涉及一种基于复杂度的emd(n,m,δ)自适应图像密写方法。



背景技术:

数字图像密写是利用数字图像的冗余和人类视觉的掩蔽特性,来将秘密信息隐藏于非相关的图像载体中,从而进行隐蔽通信,使得非法攻击者难以从海量的公开传输图像中提取出隐蔽的秘密信息信息,从而最大程度地保障传输中的机密信息的安全。

针对数字图像密写,人们已提出了多种数字图像密写嵌入方法。例如致力于提升秘密信息嵌入容量的bpcs方法(e,easonro.principleandapplicationsofbpcs-steganography[c]//proceedingsofspie-theinternationalsocietyforopticalengineering,1999:464-473)和pvd方法(wudc,tsaiwh.asteganographicmethodforimagesbypixel-valuedierencing[j].patternrecognitionletters,2003,24(9–10):1613-1626.)以及致力于提高图像视觉质量的ealsbmr方法等。

现有的图像密写方法通常分为2类,空域密写方法和变换域密写方法。比较典型的变换域密写方法主要有f3密写,f4密写和f5密写方法等,它们都是载体图像dct变换后,在量化后的非零dct系数上嵌密,但由于量化后的dct系数中零值较多,因此秘密信息嵌入量极低。相对于变换域密写方法,空域密写方法不仅能提供较大的嵌入容量,也能较大地保持嵌密图像的视觉质量。

最早期的空域密写方法为lsb密写嵌入方法(licc,liewn.datahidinginimageswithadaptivenumbersofleastsignificantbitsbasedonthehumanvisualsystem[c]//ieeeinternationalconferenceonimageprocessing,1999:286-290.)即用秘密信息替换载体图像的最低比特位,由于载体图像最低比特位全部携带秘密信息,而图像的最低比特位对图像视觉质量影响极小,因此lsb密写秘密信息的嵌入量大,密写图像视觉质量高,但秘密信息易改变低位信息比特的统计特性,因此安全性不高。对lsb密写方法的改进,引入了lsbm方法(kerad.improveddetectionoflsbsteganographyingrayscaleimages[c]//internationalconferenceoninformationhiding,2004:97-115),即lsb匹配方法,相对于lsb密写方法,lsb匹配方法的策略是,当秘密信息和载体图像的最低比特位相同时不做改变,否则随机的对载体图像像素值加减1,由于像素值整体增加或减少的概率相等,因此可抵抗简单lsb密写分析方法,但其秘密信息的嵌入容量相比于lsb密写并未实质地提高。为减轻对载体的影响,后续又提出了lsbmr密写方法(mielikainenj.ieeesignalprocessingletters[j].2006,13(5):285-287),即即lsb匹配重访方法,其原理是在两个连续的像素中最多只对其中一个加减1从而嵌入2比特秘密信息,由于lsbmr方法不是直接用秘密信息替换载体图像的最低比特位,且明显降低了对载体图像的修改率,因此,lsbmr方法在提高密写图像质量的基础上提高了其安全性。为了进一步提高图像的嵌入质量,ealsbmr方法(luowq,huangfj,huangjw.ieeetransactionsoninformationforensicsandsecurity,edgeadaptiveimagesteganographybasedonlsbmatchingrevisited[j].2010,5(2):201-214.)被提出,即边缘自适应lsb匹配重访方法,可根据秘密信息长度和载体图像自身平滑程度自适应的嵌入秘密信息,优先选择图像较粗糙区域进行嵌入,避免了对载体图像平滑区域的修改,因此ealsbmr密写方法下的密写图像图像质量较之lsbmr更好。

lsbmr方法最独特的地方是对两个载体数据中至多改变一个便可嵌入两比特秘密信息。这也为后面进行更大容量嵌入的emd方法提供了很多借鉴。emd方法,即全方向扩展方法,是对载体进行微小修改以进行大容量嵌入的一种有效的嵌入方法(zhangxp,wangsz.efficientsteganographicembeddingbyexploitingmodificationdirection.ieeecommunicationletter,2006,10(11):781-783),通过对n个载体数据最多加减1来嵌入一个2n+1进制的数。为进一步提高嵌入容量,文献kimhj,kimc,choiy,wangsz,zhangxp.improvedmodificationdirectionmethods[j],2010,60(2):319-325给出了emd-2方法和2-emd方法,emd-2方法允许对n个载体数据最多进行2个加减1而嵌入一个更大进制的数,2-emd方法即连续用两次emd方法可嵌入一个(2n+1)2进制的数,相比于emd方法,emd-2方法和2-emd方法更大程度的提高了秘密信息嵌入容量。在emd方法的基础上也能实现对载体数据的全方位改变,即emd-n方法(niuxj,mam,tangr,yizx,2015.imagesteganographyviafullyexploitingmodificationdirection[j],2015,9(5):243-254),即在n个载体数据都可改变的基础上嵌入一个3n进制的数,带来更大的嵌入容量。

但以上所给出的emd嵌入方法都采用特定的权值向量,而特定的嵌入策略降低了密写的安全性。另外这些emd嵌入方法通常只能利用权值向量进行组合形成的连续组合数作为秘密信息的表达范围,这使得权值向量不能进行充分有效的组合,从而限制了秘密信息的表达范围,使得嵌入容量十分有限。

为彻底解决传统emd秘密信息表达范围以及安全性问题,给出了基于emd(n,m)模型和基于emd(n,m)模型的密写方法(张洋,邵利平,任平安.免基向量emd(n,m)模型及其在图像密写上的应用[j].计算机辅助设计与图形学报,2018,30(8):1490-1504).首先通过计算n个载体数据最多调整m个的组合数来形成嵌密调整表,从中选取调整表行来对载体数据进行调整以嵌入秘密信息;进一步,依据密钥和混沌映射来随机指派n和m,截取秘密信息比特和置乱嵌密调整表行以提高安全性.理论和实验结果表明,与传统emd相比,该方法避免了权值向量设置的有限性,可最大化嵌入容量,同时可通过与载体和密钥相关的嵌入提取环节来增强嵌入信息的安全性.

但所提策略将emd(n,m)模型单个像素的修改量固定为±1,溢出修改量固定为±2而未考虑图像不同区域存在的不同纹理复杂度,对视觉的掩蔽效应也不同,从而难以在保持嵌密载体视觉质量的同时,进行大容量的嵌密。



技术实现要素:

本发明的目的在于克服现有技术缺陷,提供一种基于复杂度的emd(n,m,δ)自适应图像密写方法,依据载体psnr和ssim和控制阈值参数来确定δ最大值,再根据载体分块块强度、块对比度、块位置、块边缘和块纹理计算块复杂度并确定每个分块的调整量,然后组织载体嵌密信息表并依据emd(n,m,δ)按复杂度由高到低自适应地嵌入2值秘密比特。同现有方法相比,所提方法在保持较高视觉质量和结构相似性的同时将秘密信息嵌入最大化,且嵌入过程与用户密钥和载体分块哈希值紧密绑定,且由复杂度从高到低嵌入使得含密载体具有较高视觉质量且增强了安全性。

为实现上述目的,本发明采用以下技术方案:

一种基于复杂度的emd(n,m,δ)自适应图像密写方法,包括以下步骤:

第1步:输入分辨率为m×n的p阶灰度载体图像c=(ci,j)m×n,ci,j∈{0,1,…,2p-1},输入prepsnr>0,pressim∈(0,1],其中,prepsnr为峰值信噪比psnr控制阈值参数,pressim为结构化相似度ssim控制阈值参数,由prepsnr和pressim确定c=(ci,j)m×n的最大调整量δ,且δ≥0,初始化与c分辨率相同的嵌密掩体ce=c;

第2步:将c=(ci,j)m×n划分为h×w的矩阵小块计算块cx,y的局部复杂度cpx,y,然后由cpx,y和最大调整量δ确定cx,y的最大调整量δx,y,其中x=0,1,…,p-1,y=0,1,…,q-1;

第3步:将4元组(x,y,cpx,y,δx,y),x=0,1,…,p-1,y=0,1,…,q-1按cpx,y由大到小的顺序进行排列,并作为载体嵌密信息表ci,记nmax>0为预先设定的正整数n的最大值,记秘密信息是长度为l的2值比特位串b=(bi)l,bi∈{0,1},bl为剩余2值比特位串,初始化bl=b,置计数变量w=0;

第4步:取ci中的第w个4元组(x,y,cpx,y,δx,y),由cx,y对应的哈希值和用户密钥随机生成整数0<m≤n≤nmax;

第5步:由n,m,δx,y生成嵌密调整表t并通过cx,y对应的哈希值和用户密钥将t置乱为t′,其中t′中的行对应的是n个元素改变小于等于m个元素,且每个未溢出元素调整范围属于[-δx,y,δx,y],而t′中每一行的行号则对应为要嵌入的秘密信息;

第6步:将cx,y转换为1维元素序列s=(si)h·w,记载体剩余元素序列和嵌密元素序列分别为sl和se,初始化sl=s,se=φ;

第7步:记sl的长度为ls,bl的长度为lb,根据ls和lb的关系,从sl中截取2值比特位串sc,从bl中截取2值比特位串bc,利用bc从t′中选取对应的行将sc调整为s′c,然后将s′c添加至se中形成将se扫描为h×w维矩阵小块放置在ce块坐标位置为(x,y)的小块位置上,置w=w+1,执行第4步直至lb=0;

第8步:将嵌密掩体ce输出。

进一步,第1步中由prepsnr和pressim确定c=(ci,j)m×n的最大调整量δ的具体方法在于包括以下步骤:

第1.1步:初始化δ=1,然后对c=(ci,j)m×n中的每个元素按式(1)施加整数随机扰动ri,j∈[-δ,δ];

第1.2步:按式(2)和式(3)分别计算c′=(c′i,j)m×n相对于c=(ci,j)m×n的psnr和ssim值:psnrc′和ssimc′;

ssimc′=l(c′,c)·c(c′,c)·s(c′,c)(3)

式(3)中,l(c′,c),c(c′,c),s(c′,c)的具体计算方法如式(4)~式(6)所示;

式(4)~式(6)中,μ(c),σ(c),σ(c,c′)的具体计算方法如式(7)~式(9)所示;

第1.3步:若psnrc′>prepsnr且pressim>pressim,则取δ=δ+1,执行第1.1步,否则取δ=δ-1,然后将δ作为最大调整量。

进一步,第2步划分的h×w的矩阵小块的数量p,q由式(10)确定;

式(10)中,符号表示向下取整运算符;

由cpx,y和最大调整量δ确定cx,y的最大调整量δx,y的具体方法包括以下步骤:

第2.1步:按式(11)计算cx,y的强度复杂度按式(12)~式(13)计算cx,y的对比度复杂度按式(14)计算cx,y的位置复杂度按式(15)~式(17)计算cx,y的边缘复杂度以及按式(18)~式(19)计算cx,y的纹理复杂度

式(12)中,nb(x,y)是cx,y周围的有效8邻域邻居块的位置坐标,满足的约束如式(13)所示,|nb(x,y)|是cx,y周围有效8邻域邻居块的数量;

式(14)中,是cx,y上落入图像上划定的中心区域ccenter中的元素数,ccenter是位于图像中心占图像总面积为rate∈(0,1)的矩形区域;

式(15)中,是cx,y经拉普拉斯滤波变换得到的矩阵变换小块,the是设定的边缘阈值,the>0,拉普拉斯滤波变换执行的具体功能是式(16);

式(16)中,nb′(i,j)是与(i,j)相邻的4邻域的有效坐标,满足的约束如式(17)所示,|nb′(i,j)|是(i,j)周围的有效4邻域有效坐标数量;

式(18)中,是cx,y经由2维离散余弦变换d2dct()后的矩阵小块,如式(19)所示,c″x,y中,除外都是ac系数,是cx,y所有ac系数的平均值;

c″x,y=d2dct(cx,y)(19)

第2.2步:由按式(20)计算块cx,y的局部复杂度cpx,y

式(20)中,函数norm()是归一化函数,的计算过程是从所有的中选取最大的记为然后按归一化;

第2.3步:记所有cpx,y的最大值为cpmax,然后按式(21)由cpx,y和最大调整量δ确定cx,y最大调整量δx,y,其中x=0,1,…,p-1,y=0,1,…,q-1。

进一步,第4步由cx,y对应的哈希值和用户密钥随机生成整数0<m≤n≤nmax的具体方法在于包括以下步骤:

第4.1步:记cx,y对应的sha256值为16进制数序列这里按式(22)生成初始值x0∈(0,1),按式(23)生成系统参数μ∈[3.57,4],按式(24)生成滤除迭代次数it>0;

第4.2步:将x0、μ代入式(25)生成若干随机数后,抛弃前it个以消除暂态效应,取其连续生成的4个随机数xit+1,xit+2,xit+3,xit+4,将xit+1,xit+2用于按式(26)~式(27)生成n和m;

xi+1=μ·xi·(1-xi)(25)

式(25)中,μ∈[3.57,4]为系统参数,x0∈(0,1)为初始值;

进一步,第5步由n,m,δx,y生成嵌密调整表t并通过cx,y对应的哈希值和用户密钥将t置乱为t′的具体方法在于包括以下步骤:

第5.1步:按式(28)计算vkind,然后初始化vkind×n维的嵌密调整表

式(28)中,是n个元素中任取i个元素的全部组合数;

第5.2步:初始化计数变量j=0,k=0;

第5.3步:将j转换为n位2δx,y+1进制数,用长度为n的1维向量v=(vi)n进行存储,其中vi=0,1,…,2δx,y对应为j的第i位2δx,y+1进制数,然后按式(29)将v映射为v′=(v′i)n,vi∈{-δx,y,-δx,y+1,…,0,…,δx,y-1,δx,y},j=j+1;

v′i=vi-δx,y(29)

第5.4步:统计v′中非零元素数量nnz,若nnz≤m,则将v′作为t的第k行,置k=k+1;

第5.5步:反复执行第5.3步和第5.4步,直至k=vkind;

第5.6步:按式(30)将t中的行置乱,作为t′;

i′=(a·i+b)modvkind,i=0,1,…,vkind-1(30)

式(30)产生同余参数a的具体规则是将随机数xit+3,xit+4按式(31)映射为x′it+3∈[3.57,4],按式(32)映射为x′it+4∈(0,1);

x′it+4=0.5(xit+3+xit+4)(32)

将x′it+3,x′it+4分别作为式(25)的系统参数和初始值,将产生的随机数r按式(33)量化为r′;

反复执行式(25)和式(33)直至r′和vkind互质,从而将r′作为a,然后按式(34)生成式(30)对应的同余参数b。

进一步,第7步的具体方法在于包括以下步骤:

第7.1步:若ls≥n,lb>0,则循环执行第7.2步~第7.4步;

第7.2步:按式(35)从sl中截取n个元素作为sc,然后按式(36)更新sl;

sc=mid(sl,0,n-1)(35)

sl=mid(sl,n,ls-1)(36)

式(35)和式(36)中,mid()是序列元素截断函数,其中第1个参数是要截断的元素序列,第2个参数是截断的元素序列起始位置索引,第3个参数为截断的元素序列终止索引位置;

第7.3步:按式(37)和式(38)从bl中截取lc个比特位串作为将bc按式(39)转换为10进制数d,然后按式(40)更新bl;

bc=truncate(bl,0,lc-1)(38)

bl=truncate(bl,lc,lb-1)(40)

式(38)和式(40)中,truncate()是比特位串截断函数,其中第1个参数是要截断的2值比特位串,第2个参数是截断的2值比特位串起始位置索引,第3个参数为截断的2值比特位串终止索引位置;

第7.4步:从t′中取行号为d的元素序列t′d=(v′0,v′1,…,v′n-1),按式(41)将调整为s′c=(s′ic)n,按式(42)将s′c附加到se尾部并更新se;

se=se||s′c(42)

第7.5步:若ls<n时,则按式(43)将sl连接至se尾部并更新se,将按行优先顺序扫描为h×w维矩阵小块放置在嵌密掩体块坐标位置为(x,y)的小块位置上,置w=w+1,若lb≠0返回第4步。

se=se||sl(43)

一种基于复杂度的emd(n,m,δ)自适应图像密写提取方法,包括以下步骤:

第1步:输入分辨率为m×n的p阶灰度载体图像c=(ci,j)m×n和嵌密掩体输入提取2值比特位串bf的长度控制参数l>0,初始化bf=φ,配置psnr控制阈值参数prepsnr>0,ssim控制阈值参数pressim∈(0,1)和划分的矩阵小块大小h×w;

第2步:由prepsnr和pressim确定c=(ci,j)m×n的最大调整量δ,将c=(ci,j)m×n划分为h×w的矩阵小块计算块cx,y的局部复杂度cpx,y,然后由cpx,y和最大调整量δ确定cx,y的最大调整量δx,y,其中x=0,1,…,p-1,y=0,1,…,q-1;

第3步:将(x,y,cpx,y,δx,y),x=0,1,…,p-1,y=0,1,…,q-1按cpx,y从大到小进行排列作为载体嵌密信息表ci,置计数变量w=0;

第4步:取ci中的第w个4元组(x,y,cpx,y,δx,y),由cx,y对应的哈希值和用户密钥随机生成整数0<m≤n≤nmax;

第5步:由n,m,δx,y生成嵌密调整表t并通过cx,y对应的哈希值和用户密钥将t置乱为t′;

第6步:将cx,y和分别扫描为1维载体序列sl和嵌密载体序列se,若sl的长度ls≥n,则反复截取sl和se长度为n的2值比特位串scl=(si)n和从中获取调整量t′d=(v′0,v′1,…,v′n-1),然后从t′中找到对应的行号d,将其转换为2值比特位串bc添加至bf,置w=w+1,执行第4步直至ls<n;

第7步:若ls<n,则进一步判断当前bf的长度lf是否大于等于l:若lf≥l,则从bf中提取前l个2值比特作为最终提取出的2值秘密信息比特位串b输出;若lf<l,则w=w+1,执行第4步。

进一步,第2步由prepsnr和pressim确定c=(ci,j)m×n的最大调整量δ的具体方法在于包括以下步骤:

第2.1a步:初始化δ=1,然后对c=(ci,j)m×n中的每个元素按式(1)施加整数随机扰动ri,j∈[-δ,δ];

第2.2a步:按式(2)和式(3)分别计算c′=(c′i,j)m×n相对于c=(ci,j)m×n的psnr和ssim值:psnrc′和ssimc′;

第2.3a步:若psnrc′>prepsnr且pressim>pressim,则取δ=δ+1,执行第2.1a步,否则取δ=δ-1,然后将δ作为最大调整量;

第2步划分的h×w的矩阵小块的数量p,q由式(10)确定;

第2步计算块cx,y的局部复杂度cpx,y的具体方法在于包括以下步骤:

第2.1b步:按式(11)计算cx,y的强度复杂度按式(12)~式(13)计算cx,y的对比度复杂度按式(14)计算cx,y的位置复杂度按式(15)~式(17)计算cx,y的边缘复杂度以及按式(18)~式(19)计算cx,y的纹理复杂度

第2.2b步:由按式(20)计算块cx,y的局部复杂度cpx,y;

第2.3b步:记所有cpx,y的最大值为cpmax,然后按式(21)由cpx,y和最大调整量δ确定cx,y最大调整量δx,y,其中x=0,1,…,p-1,y=0,1,…,q-1;

第2步由cpx,y和最大调整量δ确定cx,y的最大调整量δx,y的具体方法是式(21)。

进一步,第4步由cx,y对应的哈希值和用户密钥随机生成整数0<m≤n≤nmax的具体方法包括以下步骤:

第4.1步:记cx,y对应的sha256值为16进制数序列这里按式(22)生成初始值x0∈(0,1),按式(23)生成系统参数μ∈[3.57,4],按式(24)生成滤除迭代次数it>0;

第4.2步:将x0、μ代入式(25)生成若干随机数后,抛弃前it个以消除暂态效应,取其连续生成的4个随机数xit+1,xit+2,xit+3,xit+4,将xit+1,xit+2用于按式(26)~式(27)生成n和m;

第5步由n,m,δx,y生成嵌密调整表t并通过cx,y对应的哈希值和用户密钥将t置乱为t′的具体方法在于包括以下步骤:

第5.1步:按式(28)计算vkind,然后初始化vkind×n维的嵌密调整表

第5.2步:初始化计数变量j=0,k=0;

第5.3步:将j转换为n位2δx,y+1进制数,用长度为n的1维向量v=(vi)n进行存储,其中vi=0,1,…,2δx,y对应为j的第i位2δx,y+1进制数,然后按式(29)将v映射为v′=(v′i)n,vi∈{-δx,y,-δx,y+1,…,0,…,δx,y-1,δx,y},j=j+1;

第5.4步:统计v′中非零元素数量nnz,若nnz≤m,则将v′作为t的第k行,置k=k+1;

第5.5步:反复执行第5.3步和第5.4步,直至k=vkind;

第5.6步:按式(30)将t中的行置乱,作为t′。

进一步,第6步反复截取sl和se长度为n的2值比特位串scl=(si)n和的具体方法是按式(44)从sl和se分别截取n个元素作为当前正在处理的载体和嵌密载体元素序列scl=(si)n和然后按式(45)对sl和se进行更新,其中ls和le分别为sl和se的长度;

第6步获取调整量t′d=(v′0,v′1,…,v′n-1)的具体方法是式(46);

第6步将d转换为2值比特位串的具体方法是式(47),其中lc按式(48)确定;

式(48)中,符号是向上取整函数;

第6步将bc添加至bf的具体方法是式(49);

bf=bf||bc(49)

第7步提取出b作为最终提取的2值秘密比特位串的具体方法是式(50)。

b=mid(bf,0,l-1)(50)

本发明同现有技术优点分析:

传统emd嵌入方法是采用特定的权值向量,而特定的嵌入策略降低了密写的安全性。另外这些emd嵌入方法通常只能利用权值向量进行组合形成的连续组合数作为秘密信息的表达范围,这使得权值向量不能进行充分有效的组合,从而限制了秘密信息的表达范围,使得嵌入容量十分有限。

基于emd(n,m)模型的嵌入方法尽管避免了权值向量设置的有限性,可最大化n个像素中任取m个像素进行±1调整时最大的嵌入容量,但同传统emd嵌入方法的出发点一致,采用固定的调整量而未考虑图像不同区域存在的不同纹理复杂度对视觉的掩蔽效应也不同,从而难以在保持嵌密载体视觉质量的同时,进行更大容量的嵌密。

为避免以上emd方法存在的问题:

(1)所提方法将emd(n,m)模型拓展为emd(n,m,δ),但所提方法并不是简单地将emd(n,m)模型的修改量由1拓展为δ,而是充分考虑图像视觉质量的评价标准,依据载体psnr和ssim和控制阈值参数来确定δ的最大调整量,然后再根据每个分块的复杂度,结合最大调整量δ来动态确定每个小块的最大调整量,保证复杂度越高的图像块内单个像素最大调整量越接近δ以极大程度提高秘密信息嵌入容量,而复杂度较低的图像块内单个像素最大调整量设置为接近1的值以减少对图像较平滑区域的修改从而提升密写图像的视觉质量和安全性。从而在图像不同复杂度的区域进行不同调整量的嵌密,在保持较好嵌密载体视觉质量的同时,最大化嵌入容量。

(2)为使δ估值较为准确,所提方法通过依据载体psnr和ssim和控制阈值参数,进一步通过随机扰动和迭代的方式来自适应的确定最大调整量δ;为使每个小块的最大调整量计算更为准确,所提方法充分考虑了影响小块复杂度计算的各个因素,进一步引入了基于强度、对比度、位置、边缘和纹理等综合因素以增加小块复杂度评估的准确性。同时也进一步引入了基于对数曲线的拟合方法来动态确定每个小块复杂度对应的调整量。

(3)所提方法进一步依据按分块复杂度由大到小进行排列组织载体嵌密信息表,从而依据复杂度由高到低自适应地嵌入2值秘密比特,通过优先选取复杂度高的小块进行嵌密,在保持嵌密载体视觉质量的同时,也进一步提高了嵌密载体嵌密容量。

(4)为提高嵌密安全性,所提方法引入载体分块哈希值和用户密钥,动态生成分块嵌密参数n和m并置乱嵌密调整表。且嵌入过程与用户密钥和载体分块哈希值紧密绑定。所提方法的分块哈希值,分块复杂度,最大调整量δ的确定方法均于嵌密过程中所用到的原始载体密切相关,而原始载体不在信道中直接传输,从而使得所述方法具有较高的安全性。

附图说明

图1是嵌入流程图;

图2是提取流程图;

图3是载体图像,为256×256分辨率的8位灰度图像lena;

图4是载体图像,为256×256分辨率的8位灰度图像girl;

图5是载体图像,为256×256分辨率的8位灰度图像man;

图6是载体图像,为256×256分辨率的8位灰度图像pepper;

图7是图3嵌入的秘密信息2值序列(为方便显示,堆叠成的正方形图像),随机种子为6951;

图8是图4嵌入的秘密信息2值序列(为方便显示,堆叠成的正方形图像),随机种子为2317;

图9是图5嵌入的秘密信息2值序列(为方便显示,堆叠成的正方形图像),随机种子为8233;

图10是图6嵌入的秘密信息2值序列(为方便显示,堆叠成的正方形图像),随机种子为7597;

图11是实施例:prepsnr=51.13,pressim=0.84,用户密钥nmax=3的嵌密掩体图像,相对于图3的psnr=51.59db;

图12是实施例:prepsnr=45.91,pressim=0.87,用户密钥nmax=4的嵌密掩体图像,相对于图4的psnr=51.59db;

图13是实施例:prepsnr=42.69,pressim=0.90,用户密钥nmax=5的嵌密掩体图像,相对于图5的psnr=51.49db;

图14是实施例:prepsnr=40.36,pressim=0.93,用户密钥nmax=6的嵌密掩体图像,相对于图3的psnr=47.11db;

图15是实施例:提取的秘密信息,相对于图6的误码率ebr为0%;

图16是实施例:提取的秘密信息,相对于图7的误码率ebr为0%;

图17是实施例:提取的秘密信息,相对于图8的误码率ebr为0%;

图18是实施例:提取的秘密信息,相对于图9的误码率ebr为0%;

图19是实施例:特殊位置邻居块示意;

图20是实施例:是块cx,y和中心区域ccenter之间的位置关系示意。

具体实施方式

以下以javajdk1.8.0_65为案例实施环境,结合附图对本发明实施方式进行详细说明,但不局限于本实施案例,其中图1是嵌入流程图,图2是提取流程图。

嵌入方法的具体实施步骤:

第1步:输入分辨率为m×n的p阶灰度载体图像c=(ci,j)m×n,例如:若输入分辨率为4×4的8阶灰度载体图像c,则m=4,n=4,p=8;输入prepsnr>0,pressim∈(0,1],例如可输入prepsnr=45.91,pressim=0.87;初始化与c分辨率相等的嵌密掩体ce=c,即ce和c初始化为同一副图像;由prepsnr和pressim确定c=(ci,j)m×n的最大调整量δ的具体方法是:

第1.1步:初始化δ=1,然后对c中的每个元素按式(1)施加整数随机扰动ri,j∈[-δ,δ],这里的随机整数扰动指的是-δ,-δ+1,…-1,0,1,…,δ-1,δ

若对c施加ri,j∈[-1,1]的整数扰动,则随机整数扰动为-1,0或者1,可得到c′,例如:

则可得到:

第1.2步:按式(2)和式(3)分别计算c′相对于c的psnr和ssim值:psnrc′和ssimc′,其中lg是以10为底的对数;

ssimc′=l(c′,c)·c(c′,c)·s(c′,c)(3)

式(3)中,l(c′,c),c(c′,c),s(c′,c)的具体计算方法如式(4)~式(6)所示;

式(4)~式(6)中,μ(c),σ(c),σ(c,c′)的具体计算方法如式(7)~式(9)所示;

例如:由c和c′可计算出psnrc′=48.1308,ssimc′=0.9998941011815596

第1.3步:psnrc′>prepsnr且pressim>pressim,更新δ=δ+1,执行第1.1步,否则更新δ=δ-1,然后将δ作为最大调整量。

例如:由psnrc′=48.1308,ssimc′=0.9998且prepsnr=45.91,pressim=0.87知:psnrc′>prepsnr且pressim>pressim,若δ=1,则由δ=δ+1可得到δ=2。

第2步:将c=(ci,j)m×n划分为p×q个分辨率为h×w的矩阵小块计算cx,y的局部复杂度cpx,y,然后由cpx,y和最大调整量δ确定cx,y的最大调整量δx,y,其中x=0,1,…,p-1,y=0,1,…,q-1;

划分的h×w的矩阵小块的数量p,q由式(10)确定;

式(10)中,符号表示向下取整运算符;

例如:若c的分辨率为4×4,则可将c划分为2×2个分辨率为2×2的小块,即p=2,q=2,h=2,w=2,则可得到4个小块c0,0,c0,1,c1,0,c1,1,即:

计算cx,y的局部复杂度cpx,y,然后由cpx,y和最大调整量δ确定cx,y的最大调整量δx,y,其中x=0,1,…,p-1,y=0,1,…,q-1,对应的具体方法为:

第2.1步:按式(11)计算cx,y的强度复杂度按式(12)~式(13)计算cx,y的对比度复杂度按式(14)计算cx,y的位置复杂度按式(15)~式(17)计算cx,y的边缘复杂度以及按式(18)~式(19)计算cx,y的纹理复杂度

式(12)中,nb(x,y)是cx,y周围的有效8邻域邻居块的位置坐标,满足的约束如式(13)所示,|nb(x,y)|是cx,y周围有效8邻域邻居块的数量;

例如如图19所示,假设(x,y)为cx,y的坐标,由于(x,y)周围8邻域仅存在(x,y+1),(x+1,y),(x+1,y+1)位置的邻居块,因此按式(13)可确定|nb(x,y)|=3。

式(14)中,是cx,y上落入图像上划定的中心区域ccenter中的元素数,ccenter是位于图像中心占图像总面积为rate∈(0,1)的矩形区域;

如图20所示,假设图像分辨率为17×17,中心区域ccenter的大小为13×13,则由(13×13)/(17×17)=0.58知:rate=0.58,若cx,y中落入ccenter的元素数为6,即

式(15)中,是cx,y经拉普拉斯滤波变换得到的矩阵变换小块,the是设定的边缘阈值,the>0,拉普拉斯滤波变换执行的具体功能是式(16);

式(16)中,nb′(i,j)是与(i,j)相邻的4邻域的有效坐标,满足的约束如式(17)所示,|nb′(i,j)|是(i,j)周围的有效4邻域有效坐标数量;

nb′(i,j)在实施方式上同nb(x,y)相类似,只是nb′(i,j)考虑的是(i,j)位置像素上下左右4邻域。

式(18)中,是cx,y经由2维离散余弦变换d2dct()后的矩阵小块,如式(19)所示,c″x,y中,除外都是ac系数,是cx,y所有ac系数的平均值;

c″x,y=d2dct(cx,y)(19)

d2dct变换的实施原理如下所示,其中x,u=0,1,2,…,h-1,y,ν=0,1,2,…,w-1

对第2.1步进行实施,可得到每个图像块对应的强度、对比度、位置、边缘、纹理参数,例如:

第2.2步:由按式(20)计算块cx,y的局部复杂度cpx,y

可得到图像块的复杂度,例如:由知:知:知:知:故可按式(20)计算出cp0,0,cp0,1,cp1,0,cp1,1。

第2.3步:记所有cpx,y的最大值为cpmax,然后按式(21)由cpx,y和最大调整量δ确定cx,y最大调整量δx,y,其中x=0,1,…,p-1,y=0,1,…,q-1。

例如:假设第2.2步计算出的cp0,0=1.506,cp0,1=1.879,cp1,0=3.106,cp1,1=1.213cpmax=3.106,取δ=2,则由式(21)知:故:

第3步:将4元组(x,y,cpx,y,δx,y),x=0,1,…,p-1,y=0,1,…,q-1按cpx,y由大到小的顺序进行排列,并作为载体嵌密信息表ci,记nmax>0为预先设定的正整数n的最大值,记秘密信息是长度为l的2值比特位串b=(bi)l,bi∈{0,1},bl为剩余2值比特位串,初始化bl=b,置计数变量w=0;

例如:根据2.3步的δx,y可得到按cpx,y由大到小进行排列图像块(x,y,cpx,y,δx,y):(1,0,3.106,2),(0,1,1.879,1),(0,0,1.506,1),(1,1,1.213,1),从而ci=[(1,0,3.106,2),(0,1,1.879,1),(0,0,1.506,1),(1,1,1.213,1)];

取nmax=4,输入秘密信息为b=1110110101011001000,初始化bl=b,则bl=1110110101011001000,置计数变量w=0;

第4步:取ci中的第w个4元组(x,y,cpx,y,δx,y),由cx,y对应的哈希值和用户密钥随机生成整数0<m≤n≤nmax的具体方法是:

第4.1步:记cx,y对应的sha256值为16进制数序列这里按式(22)生成初始值x0∈(0,1),按式(23)生成系统参数μ∈[3.57,4],按式(24)生成滤除迭代次数it>0;

例如,若cx,y对应的sha256值为:

0x50b2d0fec28e78cd370177b00958e74039a81f6512f3080a99d2d6368c874af7,则可得到长度为64的16进制序列将其代入式(22),可计算x0∈(0,1),将其代入式(23),可计算μ∈[3.57,4],将其代入式(24),可计算it>0,这里假设计算出的x0=0.5012305422847824,μ=3.9051785298005175,it=62580。

第4.2步:将x0、μ代入式(25)生成若干随机数后,抛弃前it个以消除暂态效应,取其连续生成的4个随机数xit+1,xit+2,xit+3,xit+4,将xit+1,xit+2用于按式(26)~式(27)生成n和m;

xi+1=μ·xi·(1-xi)(25)

式(25)中,μ∈[3.57,4]为系统参数,x0∈(0,1)为初始值;

例如:将x0=0.5012305422847824,μ=3.9051785298005175代入式(25),抛弃前it=62580个随机数,可得:xit+1=0.7531447787093246,xit+2=0.7436708840488283,xit+3=0.7624980010674499和xit+4=0.7243791977423722;将xit+1,xit+2代入式(26)~式(27)可得:

第5步:由n,m,δx,y生成嵌密调整表t并通过cx,y对应的哈希值和用户密钥将t置乱为t′,其中t′中的行对应的n个元素最多改变m个元素,且每个未溢出元素调整范围属于[-δx,y,δx,y],而t′中每一行的行号则对应为要嵌入的秘密信息;由n,m,δx,y生成嵌密调整表t并通过cx,y对应的哈希值和用户密钥将t置乱为t′的具体方法在于包括以下步骤:

第5.1步:按式(28)计算vkind,然后初始化vkind×n维的嵌密调整表

式(28)中,是n个元素中任取i个元素的全部组合数;

例如:取m=2,n=3,δx,y=2,则

第5.2步:初始化计数变量j=0,k=0;

第5.3步:将j转换为n位2δx,y+1进制数,用长度为n的1维向量v=(vi)n进行存储,其中vi=0,1,…,2δx,y对应为j的第i位2δx,y+1进制数,然后按式(29)将v映射为v′=(v′i)n,vi∈{-δx,y,-δx,y+1,…,0,…,δx,y-1,δx,y},j=j+1;

v′i=vi-δx,y(29)

例如:将j=1转换为n=3位2δx,y+1=5进制数,可用长度为3的1维向量v=(vi)3进行存储,即v=(1,0,0)其中v0,v1,v2分别对应为j=1的第0,1,2位5进制数,从而按式(29)可将v映射为v′=(-1,-2,-2),j=j+1=2。

第5.4步:统计v′中非零元素数量nnz,若nnz≤m,则将v′作为t的第k行,置k=k+1;

例如:取m=2,当j=0时,v′=(-2,-2,-2),此时由于nnz=3,nnz>m,故v′不能作为嵌密调整表中的行;当j=1时,v′=(-1,-2,-2),此时由于nnz=3,nnz>m,故v′不能作为嵌密调整表中的行;当j=2时,v′=(0,-2,-2),此时nnz=2,nnz≤m,故将v′=(0,-2,-2)作为t的第k=0行,按k=k+1更新k后,k=1。

第5.5步:反复执行第5.3步和第5.4步,直至k=vkind;

第5.6步:按式(30)将t中的行置乱,作为t′;

i′=(a·i+b)modvkind,i=0,1,…,vkind-1(30)

式(30)产生同余参数a的具体规则是将随机数xit+3,xit+4按式(31)映射为x′it+3∈[3.57,4],按式(32)映射为x′it+4∈(0,1);

x′it+4=0.5(xit+3+xit+4)(32)

将x′it+3,x′it+4分别作为式(25)的系统参数和初始值,将产生的随机数r按式(33)量化为r′;

反复执行式(25)和式(33)直至r′和vkind互质,从而将r′作为a,然后按式(34)生成式(30)对应的同余参数b。

例如:根据第4.2步得到的xit+3=0.7624980010674499和xit+4=0.7243791977423722,代入式(31)和式(32)可得:x′it+3=3.8895735266495803,x′it+4=0.7434385994049111,将x′it+3,x′it+4分别作为式(25)的系统参数和初始值,产生若干随机数并抛弃前it=62580个,得到r=0.90917052,代入式(33)得到r′=11,此时r′和vkind=61互质,故将r′作为a,即a=11,再将xit+3和xit+4的值代入式(34):可得b=13,由n,m,δx,y生成的嵌密调整表t如表1所示,根据a=11,b=13式(26)将t置乱为t′如表2所示(这里为节省空间,用列来表示行,同时添加行号作为示意)。

表1emd(3,2,2)嵌密调整表

表2emd(3,2,2)嵌密置乱调整表

第6步:将cx,y转换为1维元素序列s=(si)h·w,记载体剩余元素序列和嵌密元素序列分别为sl和se,初始化sl=s,se=φ;

例如,由于w对应的是c1,0,将c1,0按行优先扫描顺序转换为1维序列s=(189,231,127,236),执行初始化sl=s,可得到sl=(189,231,127,236),其中:

第7步:记sl的长度为ls,bl的长度为lb,根据ls和lb的关系,从sl中截取2值比特位串sc,从bl中截取2值比特位串bc,利用bc从t′中选取对应的行将sc调整为s′c,然后将s′c添加至se中形成将se扫描为h×w维矩阵小块放置在ce块坐标位置为(x,y)的小块位置上,置w=w+1,执行第4步直至lb=0;具体方法包括以下步骤:

第7.1步:若ls≥n,lb>0,则循环执行第7.2步~第7.4步;

例如:由于sl=(189,231,127,236),所以ls=4;由于bl=1110110101011001000,所以lb=19;取n=3,则有ls≥n,lb>0,因此按第7.1步,执行第7.2步~第7.4步;

第7.2步:按式(35)从sl中截取n个元素作为sc,然后按式(36)更新sl;

sc=mid(sl,0,n-1)(35)

sl=mid(sl,n,ls-1)(36)

式(35)和式(36)中,mid()是序列元素截断函数,其中第1个参数是要截断的元素序列,第2个参数是截断的元素序列起始位置索引,第3个参数为截断的元素序列终止索引位置;

例如:由式(35)知sc=(189,231,127),由式(36)可得到sl=(236)。

第7.3步:按式(37)和式(38)从bl中截取lc个比特位串作为将bc按式(39)转换为10进制数d,然后按式(40)更新bl;

bc=truncate(bl,0,lc-1)(38)

bl=truncate(bl,lc,lb-1)(40)

式(38)和式(40)中,truncate()是比特位串截断函数,其中第1个参数是要截断的2值比特位串,第2个参数是截断的2值比特位串起始位置索引,第3个参数为截断的2值比特位串终止索引位置;

例如:根据式(37),lb=19,满足lt≤lb,因此lc=lt=5,按式(38)从bl中截取lc=5个比特位串作为bc,即bc=(11101)2,将bc按式(39)将取出的5个位串转换为对应的10进制数并按照式(40)更新bl=10101011001000。

第7.4步:从t′中取行号为d的元素序列t′d=(v′0,v′1,…,v′n-1),按式(41)将调整为按式(42)将s′c附加到se尾部并更新se;

se=se||s′c(42)

例如:从t′中取行号为d=29的元素序列t′d=(0,1,-2),按式(41)将sc=(189,231,127)调整为s′c=(189,231+1,127-2),即s′c=(189,232,125),按式(42)将s′c附加到se尾部并更新se,则se=(189,232,125)。

第7.5步:若ls<n时,则按式(43)将sl连接至se尾部并更新se,将按行优先顺序扫描为h×w维矩阵小块放置在嵌密掩体块坐标位置为(x,y)的小块位置上,置w=w+1,若lb≠0返回第4步。

se=se||sl(43)

例如:取n=3,由于7.2步中更新后的sl=(236),此时ls=1,满足ls<n,则将sl=(236)连接至se=(189,232,125)尾部并更新se,更新后se=(189,232,125,236)。将se按行优先顺序扫描为2×2维矩阵小块放置在嵌密掩体块坐标位置为(1,0)的小块位置上,置w=w+1=2,由于lb=14≠0返回第4步。

第8步:将嵌密掩体ce输出。

提取方法的具体实施步骤:

第1步:输入分辨率为m×n的p阶灰度载体图像c=(ci,j)m×n和嵌密掩体输入提取2值比特位串bf的长度控制参数l>0,初始化bf=φ,配置psnr控制阈值参数prepsnr>0,ssim控制阈值参数pressim∈(0,1)和划分的矩阵小块大小h×w;

例如:输入分辨率为4×4的8阶灰度载体图像c,则m=4,n=4,p=8,输入嵌密掩体输入提取2值比特位串bf的长度控制参数l=19,初始化bf=φ,配置参数prepsnr=45.91,pressim=0.87和划分的矩阵小块大小2×2。

第2步:由prepsnr和pressim确定c=(ci,j)m×n的最大调整量δ,将c=(ci,j)m×n划分为h×w的矩阵小块计算块cx,y的局部复杂度cpx,y,然后由cpx,y和最大调整量δ确定cx,y的最大调整量δx,y,其中x=0,1,…,p-1,y=0,1,…,q-1;

由prepsnr和pressim确定c=(ci,j)m×n的最大调整量δ的具体方法包括以下步骤:

第2.1a步:初始化δ=1,然后对c=(ci,j)m×n中的每个元素按式(1)施加整数随机扰动ri,j∈[-δ,δ];

例如:初始化δ=1,若对c中的每个元素按式(1)施加ri,j∈[-1,1]的整数随机扰动,则随机整数扰动为-1,0或者1,可得到c′,例如:

则可得到:

第2.2a步:按式(2)和式(3)分别计算c′=(c′i,j)m×n相对于c=(ci,j)m×n的psnr和ssim值:psnrc′和ssimc′;

例如:由c和c′可计算出psnrc′=48.1308,ssimc′=0.9998941011815596

第2.3a步:若psnrc′>prepsnr且pressim>pressim,则取δ=δ+1,执行第2.1a步,否则取δ=δ-1,然后将δ作为最大调整量;

例如:由psnrc′=48.1308,ssimc′=0.9998且prepsnr=45.91,pressim=0.87知:psnrc′>prepsnr且pressim>pressim,若δ=1,则由δ=δ+1可得到δ=2。

划分的h×w的矩阵小块的数量p,q由式(10)确定;

例如:若c的分辨率为4×4,则可将c划分为2×2个分辨率为2×2的小块,即p=2,q=2,h=2,w=2,则可得到4个小块c0,0,c0,1,c1,0,c1,1,即:

计算块cx,y的局部复杂度cpx,y的具体方法在于包括以下步骤:

第2.1b步:按式(11)计算cx,y的强度复杂度按式(12)~式(13)计算cx,y的对比度复杂度按式(14)计算cx,y的位置复杂度按式(15)~式(17)计算cx,y的边缘复杂度以及按式(18)~式(19)计算cx,y的纹理复杂度

例如:计算出每个图像块对应的强度、对比度、位置、边缘、纹理参数为:

第2.2b步:由按式(20)计算块cx,y的局部复杂度cpx,y;

例如:得到图像块的复杂度由知:知:知:知:故可按式(20)计算出cp0,0,cp0,1,cp1,0,cp1,1。

第2.3b步:记所有cpx,y的最大值为cpmax,然后按式(21)由cpx,y和最大调整量δ确定cx,y最大调整量δx,y,其中x=0,1,…,p-1,y=0,1,…,q-1;

由cpx,y和最大调整量δ确定cx,y的最大调整量δx,y的具体方法是式(21)。

例如:假设第2.2b步计算出的cp0,0=1.506,cp0,1=1.879,cp1,0=3.106,cp1,1=1.213cpmax=3.106,取δ=2,则由式(21)知:故:

第3步:将4元组(x,y,cpx,y,δx,y),x=0,1,…,p-1,y=0,1,…,q-1按cpx,y从大到小进行排列作为载体嵌密信息表ci,置计数变量w=0;

例如:根据2.3b步的δx,y可得到按cpx,y由大到小进行排列图像块(x,y,cpx,y,δx,y):(1,0,3.106,2),(0,1,1.879,1),(0,0,1.506,1),(1,1,1.213,1),从而ci=[(1,0,3.106,2),(0,1,1.879,1),(0,0,1.506,1),(1,1,1.213,1)];置计数变量w=0;

第4步:取ci中的第w个4元组(x,y,cpx,y,δx,y),由cx,y对应的哈希值和用户密钥随机生成整数0<m≤n≤nmax;

具体方法包括以下步骤:

第4.1步:记cx,y对应的sha256值为16进制数序列这里按式(22)生成初始值x0∈(0,1),按式(23)生成系统参数μ∈[3.57,4],按式(24)生成滤除迭代次数it>0;

例如,若cx,y对应的sha256值为:

0x50b2d0fec28e78cd370177b00958e74039a81f6512f3080a99d2d6368c874af7,则可得到长度为64的16进制序列将其代入式(22),可计算x0∈(0,1),将其代入式(23),可计算μ∈[3.57,4],将其代入式(24),可计算it>0,这里假设计算出的x0=0.5012305422847824,μ=3.9051785298005175,it=62580。

第4.2步:将x0、μ代入式(25)生成若干随机数后,抛弃前it个以消除暂态效应,取其连续生成的4个随机数xit+1,xit+2,xit+3,xit+4,将xit+1,xit+2用于按式(26)~式(27)生成n和m;

例如:将x0=0.5012305422847824,μ=3.9051785298005175代入式(25),抛弃前it=62580个随机数,可得:xit+1=0.7531447787093246,xit+2=0.7436708840488283,xit+3=0.7624980010674499和xit+4=0.7243791977423722;将xit+1,xit+2代入式(26)~式(27)可得:

第5步:由n,m,δx,y生成嵌密调整表t并通过cx,y对应的哈希值和用户密钥将t置乱为t′;

第5.1步:按式(28)计算vkind,然后初始化vkind×n维的嵌密调整表

例如:取m=2,n=3,δx,y=2,则

第5.2步:初始化计数变量j=0,k=0;

第5.3步:将j转换为n位2δx,y+1进制数,用长度为n的1维向量v=(vi)n进行存储,其中vi=0,1,…,2δx,y对应为j的第i位2δx,y+1进制数,然后按式(29)将v映射为v′=(vi′)n,vi∈{-δx,y,-δx,y+1,…,0,…,δx,y-1,δx,y},j=j+1;

例如:将j=1转换为n=3位2δx,y+1=5进制数,可用长度为3的1维向量v=(vi)3进行存储,即v=(1,0,0)其中v0,v1,v2分别对应为j=1的第0,1,2位5进制数,从而按式(29)可将v映射为v′=(-1,-2,-2),j=j+1=2。

第5.4步:统计v′中非零元素数量nnz,若nnz≤m,则将v′作为t的第k行,置k=k+1;

取m=2,当j=0时,v′=(-2,-2,-2),此时由于nnz=3,nnz>m,故v′不能作为嵌密调整表中的行;当j=1时,v′=(-1,-2,-2),此时由于nnz=3,nnz>m,故v′不能作为嵌密调整表中的行;当j=2时,v′=(0,-2,-2),此时nnz=2,nnz≤m,故将v′=(0,-2,-2)作为t的第k=0行,按k=k+1更新k后,k=1。

第5.5步:反复执行第5.3步和第5.4步,直至k=vkind;

第5.6步:按式(30)将t中的行置乱,作为t′。

例如:根据第4.2步得到的xit+3=0.7624980010674499和xit+4=0.7243791977423722,代入式(31)和式(32)可得:x′it+3=3.8895735266495803,x′it+4=0.7434385994049111,将x′it+3,x′it+4分别作为式(25)的系统参数和初始值,产生若干随机数并抛弃前it=62580个,得到r=0.90917052,代入式(33)得到r′=11,此时r′和vkind=61互质,故将r′作为a,即a=11,再将xit+3和xit+4的值代入式(34):可得b=13,由n,m,δx,y生成的嵌密调整表t如表3所示,根据a=11,b=13式(26)将t置乱为t′如表4所示(这里为节省空间,用列来表示行,同时添加行号作为示意)。

表3emd(3,2,2)嵌密调整表

表4emd(3,2,2)嵌密置乱调整表

第6步:将cx,y和分别扫描为1维载体序列sl和嵌密载体序列se,若sl的长度ls≥n,则反复截取sl和se长度为n的2值比特位串scl=(si)n和从中获取调整量t′d=(v′0,v′1,…,v′n-1),然后从t′中找到对应的行号d,将其转换为2值比特位串bc添加至bf,置w=w+1,直至ls<n;

例如:由于w=0对应的是c1,0,将按行优先扫描顺序转换为1维载体序列sl=(189,231,127,236),将按行优先扫描顺序转换为1维嵌密载体序列se=(189,232,125,236),由于ls=4,若n=3,则ls≥n,则需反复截取sl和se长度为n的2值比特位串scl=(si)n和从中获取调整量t′d=(v′0,v′1,…,v′n-1),然后从t′中找到对应的行号d,将其转换为2值比特位串bc添加至bf,置w=w+1,直至ls<n

第6步反复截取sl和se长度为n的2值比特位串scl=(si)n和的具体方法是按式(44)从sl和se分别截取n个元素作为当前正在处理的载体和嵌密载体元素序列scl=(si)n和然后按式(45)对sl和se进行更新,其中ls和le分别为sl和se的长度;

例如:取n=3,按式(44)从sl和se分别截取n=3个元素作为当前正在处理的载体和嵌密载体元素序列scl=(189,231,127)和sce=(189,232,125),然后按式(45)对sl和se进行更新,更新后的sl=(236),se=(236)。

第6步获取调整量t′d=(v′0,v′1,…,v′n-1)的具体方法是式(46);

例如:根据式(46)可得,t′d=(189-189,232-231,125-127)=(0,1,-2)。

第6步将d转换为2值比特位串的具体方法是式(47),其中lc按式(48)确定;

式(48)中,符号是向上取整函数;

例如:搜索出t′d=(0,1,-2)对应的行号d=29,按式(48)可得,按式(47)将d转换为2值比特位串bc=(11101)。

第6步将bc添加至bf的具体方法是式(49);

bf=bf||bc(49)

例如:将bc=(11101)添加至bf可得,bf=(11101)。

第7步:若ls<n,则进一步判断当前bf的长度lf是否大于等于l:若lf≥l,则从bf中提取前l个2值比特作为最终提取出的2值秘密信息比特位串b输出;若lf<l,则执行第4步。

例如:取n=3,此时sl=(236),因此ls=1,故满足ls<n,则进一步判断当前bf的长度lf是否大于等于l,此时bf=(11101),因此lf=5,lf<l,则执行第4步。

第7步提取出b作为最终提取的2值秘密比特位串的具体方法是式(50)。

b=mid(bf,0,l-1)(50)

例如:假设b=1110110101011001000,由于l=19,则截取长度为前19个2进制位作为b=1110110101011001000。

图3是载体图像,为256×256分辨率的8位灰度图像lena;图4是载体图像,为256×256分辨率的8位灰度图像girl;图5是载体图像,为256×256分辨率的8位灰度图像man;图6是载体图像,为256×256分辨率的8位灰度图像pepper;图7是图3嵌入的秘密信息2值序列(为显示方便堆叠成正方形图像),随机种子为6951;图8是图4嵌入的秘密信息2值序列(为显示方便堆叠成正方形图像),随机种子为2317;图9是图5嵌入的秘密信息2值序列(为显示方便堆叠成的正方形图像),随机种子为8233;图10是图6嵌入的秘密信息2值序列(为显示方便堆叠成的正方形图像),随机种子为7597;图11是prepsnr=51.13,pressim=0.84,用户密钥nmax=3的嵌密掩体图像,相对于图3的psnr=51.59db;图12是prepsnr=45.91,pressim=0.87,用户密钥nmax=4的嵌密掩体图像,相对于图4的psnr=51.59db;图13是prepsnr=42.69,pressim=0.90,用户密钥nmax=5的嵌密掩体图像,相对于图5的psnr=51.49db;图14是prepsnr=40.36,pressim=0.93,用户密钥nmax=6的嵌密掩体图像,相对于图3的psnr=47.11db;图15是提取的秘密信息,相对于图6的误码率ebr为0%;图16是提取的秘密信息,相对于图7的误码率ebr为0%;图17是提取的秘密信息,相对于图8的误码率ebr为0%;图18是提取的秘密信息,相对于图9的误码率ebr为0%。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1