首页> 中国专利> 基于三重备份的(K,N)有意义图像分存及恢复方法

基于三重备份的(K,N)有意义图像分存及恢复方法

摘要

本发明公开了一种基于三重备份的(K,N)有意义图像分存及恢复方法,通过引入三重备份将秘密图像像素分存信息存储在不同的三个位置起相互认证作用,在恢复阶段使用自然图像相邻像素相关性来提升方案的认证能力和错误修复能力,并使用Lagrange插值多项式的多个系数来存放秘密信息,提高掩体图像的视觉质量。本发明使用邻近像素的相关性来修正在恢复过程中错误认证的像素和使用自然图像的邻近像素相关性来逼近那些认证不通过的像素点。这样使得本方法具有更好地错误恢复能力。

著录项

  • 公开/公告号CN104702814A

    专利类型发明专利

  • 公开/公告日2015-06-10

    原文格式PDF

  • 申请/专利权人 陕西师范大学;

    申请/专利号CN201410728893.1

  • 发明设计人 邵利平;欧阳显斌;

    申请日2014-12-03

  • 分类号

  • 代理机构西安通大专利代理有限责任公司;

  • 代理人陆万寿

  • 地址 710062 陕西省西安市长安区陕西师范大学

  • 入库时间 2023-12-18 09:28:35

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-10-20

    授权

    授权

  • 2015-07-08

    实质审查的生效 IPC(主分类):H04N1/32 申请日:20141203

    实质审查的生效

  • 2015-06-10

    公开

    公开

说明书

技术领域

本发明属于信息安全、秘密共享和数字图像信号处理技术领域,涉及有意义图像信息分存方法,具体涉及一种基于三重备份的(K,N)有意义图像分存及恢复方法。

背景技术

近年来,伴随着计算机和网络技术的发展,越来越多的图像在网络中传输,在给用户提供方便的同时,也带来了一系列的安全隐患。对图像的不当使用和恶意篡改,不仅会涉及个人隐私,也会给社会带来严重负面影响。

针对数字图像信息安全,人们已提出了多种方法,如:①将明文图像转换为密文图像的数字图像加密技术;②将机密图像隐藏于非相关载体中的数字图像隐写技术;③给图像添加版权认证标识,对图像的真实性和完整性、来源者和使用者进行认证的数字图像水印技术;④结合现有技术特点对图像的真实性和完整性进行甄别的数字图像盲取证技术;⑤将机密图像拆分为影子图像,利用部分分发影子图像重构秘密图像的数字图像信息分存技术。

其中,对重要图像信息进行安全保护的数字图像信息分存技术已成为当前图像信息安全的研究热点。

现有的图像信息分存主要源自密码学中的秘密共享。最简单的秘密共享是(K,N)门限秘密共享,最早由Shamir和Blakley分别结合Lagrange插值方法和矢量空间点的性质提出。在(K,N)门限秘密共享方案中,任何包含至少K个参与者的集合都是许可集,否则是禁止集。其基本思想是将主密钥分成N个子密钥,并且满足:已知任意t(t≥K)个子密钥,则可容易地计算出密钥,否则都不能计算 出主密钥,这里的K就是门限共享方案的门限。

基于Lagrange插值的秘密共享方法主要是建立在如下多项式的基础上:

f(k)=s+r1k+r2k2+…+rK-1kK-1(mod p) 

其中s是秘密值、p为素数、r1,r2,…,rK-1为随机整数并且满足s,r1,r2,…,rK-1∈[0,p)。

将1,2,…,N依次代入f(k)且N为[K,p)范围内的整数,从而形成N个分发信息(k,f(k)),k=1,2,…,N。若从中任取t个不同编号的子密钥,记其依次为(numk,f(numk)),numk∈{1,2,…,N},k=1,2,…,t且t≥K,则可按Lagrange插值对f(k)进行恢复,从而进一步恢复出s。

f(k)=(Σi=1t(f(numi)Πj=1,jit(k-numj)(numi-numj)p-1))modp

其中为numi-numj在模p上的乘法逆元。

当前已提出的秘密共享方法除了Shamir和Blakley的方案外,还有基于中国剩余定理的Asmuth-Bloom共享方法和使用矩阵乘法的Karnin-Greene-Hellman共享方法等。

现有的图像分存方法主要是结合秘密共享方案构造,例如门限秘密共享方案,就是将秘密图像分存成N份影子图像,已知其中t(t≥K)个影子图像则可对秘密图像进行恢复,反之则无法还原出秘密图像的任何信息。

结合秘密共享方法,人们提出了多种图像信息分存方法。

早期的图像分存方法大多是无意义图像分存方法,即分存出的影子图像都是无意义的噪声图像,在信道传输过程中容易引起进攻者的怀疑从而诱发攻击。针对此问题,国内外研究者将分存信息嵌入到有意义掩体图像中进行分存,从而将无意义影子图像转变为有意义分发掩体图像,即产生了图像有意义分存。

针对有意义图像分存,人们提出了多种有意义图像信息分存方法。例如,吴小天等[基于误差扩散的图像分存方案[J].计算机应用,2011,31(1):74–77.]将2值图像作为秘密图像,以灰度图像为模板,然后利用误差扩散来生成有意义2值掩体图像,异或所有掩体图像即可还原秘密图像。

欧锻灏等[基于恢复函数和误差扩散的灰度图像分存方案[J].计算机科学,2013,40(2):112-116.]将吴小天等的方案扩展为灰度图像,但所提策略同吴小天策略一样,只能用于(N,N)有意义图像分存。

针对(K,N)有意义图像分存,Chang-Chou Lin和Wen-Hsiang Tsai等[Secret image sharing with steganography and authentication[J].The Journal of Systems and Software,2004,73(3):405–414.]使用最低位方法将秘密图像的每个像素的8位分存信息和1位奇偶校验位嵌入到掩体图像的2×2分块中,但由于采用的拉格朗日插值模数是251不可避免地带来秘密图像像素失真,且认证比特位只有1位奇偶校验位,起不到丝毫的认证作用,对2×2分块,至少需修改9个比特位,带来了掩体图像失真。为解决上述方法存在的秘密图像有损和掩体图像视觉质量下降等问题,Ching-Nung Yang和Tse-Shih Chen等[Improvements of image sharing with steganography and authentication[J].The Journal of Systems and Software,2007,80(7):1070-1076.]针对这些不足,将GF(28)替代GF(251)、采用1位HMAC消息认证位替代奇偶校验位并调整2×2分存信息的嵌入结构来提升认证能力和提高掩体视觉质量,然而依然只嵌入1个认证位,块篡改通过认证的概率高达1/2,依然存在着较大的安全隐患。针对弱认证的不足,Chin-Chen Chang和Yi-Pei Hsieh等[Sharing secrets in stego images with authentication[J].Pattern Recognition,2008,41(10):3130–3137.]通过中国剩余定理来生成4个认证位获得了更好的认证能力,但它不能对恢复阶段中认证失败的像素进行修复。

为进一步提高上述方法的认证能力和具备一定的错误恢复能力,Chin-Chen Chang,Yi-Hui Chen,Hsin-Chi Wang等[Meaningful secret sharing technique with authentication andremedy abilities[J];Information Sciences,2011,181(14):3073–3084.]利用Lagrange插值多项式的多个系数来无损还原秘密图像像素值和它配对的像素值,并将各像素的分存值和对应Hash消息验证码一同嵌入到有意义掩体图像的相应像素块中,使得所提方案具备一定的认证能力和认证失败后的恢复能力。但该策略没有充分的使用自然图像的相关性,对错误恢复质量较差。

发明内容

本发明目的在于克服现有技术缺陷,提供一种基于三重备份的(K,N)有意义图像分存及恢复方法,通过引入三重备份将秘密图像像素分存信息存储在不同的三个位置,起相互认证作用,以及在恢复阶段使用自然图像相邻像素相关性来提升方案的认证能力和错误修复能力,并使用Lagrange插值多项式的多个系数来存放秘密信息,提高掩体图像的视觉质量。

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

一种基于三重备份的(K,N)有意义图像分存方法,包括以下步骤:

第1步:获得大小为m×n的秘密图像S=(si,j)m×n和N张大小为2m×2n的掩体图像选取密钥Ke随机生成<0,1,2,…,x,…,4mn-1>的一个排列序列<q0,q1,q2,…,qx,…,q4mn-1>用于确定秘密像素分存信息在掩体图像中的嵌入位置;

第2步:使用公式(1)将密钥Ke进行(K,N)分存,对于标号为k的参与者可按公式(1)获得子密钥fKe(k),其中,公式(1)为:

fKe(k)=(Ke+rKe1k+rKe2k2+...+rKeK-1kK-1)modpKe---(1)

公式(1)中,pKe是大于Ke的任意素数,均为随机整数且满足 rKe1,rKe2,...,rKeK-1[0,pKe-1],2<KN<7;

第3步:对于标号为k的参与者,使用子密钥fKe(k)生成元素处于[0,6]之间的随机整数序列

第4步:对于秘密图像S像素扫描序中第x个位置的像素sx用7进制数(axbxcx)7表示,并按公式(2)进行分存,其中,公式(2)为:

fx(k)=(ax+bxk+cxk2+r1k3+...+rK-3kK-1)mod7  (2) 

公式(2)中,r1,r2,...,rK-3为随机整数,并满足r1,r2,...,rK-3∈[0,6],对于标号为k的参与者,得到分存信息记为且x=0,1,…,mn-1;

第5步:将上一步得到的分存信息加密成三个版本和然后将它们分别嵌入到掩体图像Ck的q3x,q3x+1,q3x+2位置;

第6步:计算fKe(k)对应的MD5值并向第三方公信方公布以防止用户恶意篡改子密钥fKe(k),然后将嵌入分存信息后的掩体图像和子密钥fKe(k)分发给标号为k的参与者,并销毁计算过程中的所有中间数据。

所述第5步中,将分存信息加密成三个版本和的方法具体如公式(3)所示:

spvx,k0=(((q3x+1mod6)+1)×(spxk+r3xk))mod7spvx,k1=(((q3x+2mod6)+1)×(spxk+r3x+1k))mod7spvx,k2=(((q3xmod6)+1)×(spxk+r3x+2k))mod7---(3)

公式(3)中的q3x,q3x+1,q3x+2由第1步生成,由第3步生成,当所有x处理完后,得到嵌入分存信息后的掩体图像

所述第5步中,将和嵌入到掩体图像Ck的方法是通过调整 成完成,其中满足 c^q3xkmod7=spvx,k0,c^q3x+1kmod7=spvx,k1,c^q3x+2kmod7=spvx,k2,为使嵌入分存信息后的掩体图像得到更高的视觉质量,选择满足最小的 c^q3xk,c^q3x+1k,c^q3x+2k.

一种基于三重备份的(K,N)有意义图像恢复方法,包括以下步骤:

第1步:假设有t个参与者参与秘密图像重构,这些参与者的标号为numk∈[1,N],k=1,…,t,t≥K,分别计算参与者子密钥fKe(numk)的MD5值并与第三方公信方对应的MD5值进行对比,若通过认证的参与者数大于等于K,则继续还原过程,否则恢复失败;

第2步:将通过认证的参与者的标号和子密钥(numk,fKe(numk))按Lagrange插值还原出公式(1)中的密钥Ke和使用Ke再次生成<0,1,2,…,x,…,4mn-1>的排列序列<q0,q1,q2,…,qx,…,q4mn-1>,其中,对于标号为numk的参与者,使用fKe(numk)生成随机整数序列:

<r0numk,r1numk,r2numk,...,r3xnumk,r3x+1numk,r3x+2numk,...,r3mn-3numk,r3mn-2numk,r3mn-1numk>;

第3步:提取出参与者的掩体图像在像素扫描序的第q3x,q3x+1,q3x+2(x=0,1,…,mn-1)位置中嵌入的分存信息,解密出分存信息的3个版本和

第4步:对于和若互不相等则认为分存信息不可信,否则把的值设置为和中出现最多的数值并且认为其可信;

第5步:若求得的可信的个数大于等于K,则通过可信的分存信息使用拉格朗日插值还原出公式(2),从而提取出(axbxcx)7,得到秘密图像的第x个像素,假设秘密图像的第x个像素坐标位置为(i1,j1),并标记该像素通过认证,即 否则,令秘密图像的第x个像素值等于128,并标记该像素未通过认证, 即bi1,j1=0;

第6步:反复执行第3步至第5步,直至处理完所有的x=0,1,…,mn-1,得到初步秘密图像S′=(s′i,j)m×n和对应的认证信息图像B=(bi,j)m×n,其中,bi,j=1表示像素s′i,j认证通过,bi,j=0表示未通过认证;

第7步:对于满足的初步秘密图像S′像素扫描序的第x个像素为s′x,假设s′x的8邻域像素分别为其中,x=0,1,…,mn-1,按公式(5)得到s′x的8邻域像素中通过认证的数目cntx和其与s′x的最小距离其中公式(5)为:

disxmin=min{|sx-sy||bsit(y)=1,y{x1,x2,...,x8}}cntx=sizeof({y{x1,x2,...x8}|bsit(y)=1})---(5)

公式(5)中sit(y)表示秘密图像像素扫描序中的第y个像素对应的坐标位置,若且cntx≥3,则认为该像素是第5步误认为通过认证的像素点,从而将其纠正至不通过认证即M设置为原始秘密图像所有像素与对应8邻域像素最小距离的最大值或取区间[0,255]范围内的整数;

第8步:对于满足的初步秘密图像S′像素扫描序的第x个像素s′x,则使用邻近像素的像素相关性来逼近它的值,其中,x=0,1,…,mn-1,其具体过程为:首先计算其8邻域像素通过认证的数目cntx,若cntx等于0则置s′x=128,否则使用公式(6)来得到新的s′x并四舍五入到整数,其中,公式(6)为:

sx=Σbsit(y)=1,y{x1,x2,...,x8}sycntx---(6)

第9步:最后将s′x构成的2维矩阵S′输出作为恢复出的秘密图像。

所述第3步中,解密出分存信息的3个版本和的具体方法为:

首先提取出spvx,numk0=c^q3xnumkmod7,spvx,numk1=c^q3x+1numkmod7,spvx,numk2=c^q3x+2numkmod7,然后使用公式(4)解密出分存信息的3个版本和其中,公式(4)为:

spxnumk0=(spvx,numk0×((q3x+1mod6)+1)7-1-r3xnumk+7)mod7spxnumk1=(spvx,numk1×((q3x+2mod6)+1)7-1-r3x+1numk+7)mod7spxnumk2=(spvx,numk2×((q3xmod6)+1)7-1-r3x+2numk+7)mod7---(4)

公式(4)中,为(q3x+1mod6)+1在模7上的乘法逆元;

所述第7步中,在假设s′x的8邻域像素时,若不存在8个像素,则用128补齐为8个,且补充的元素认证值设置为0。

与现有技术相比,本发明具有以下有益效果:

①同现有方法不同,本发明引入了三重备份将秘密像素的分存信息加密成3个不同版本嵌入到掩体图像的3个位置,这3份备份信息起到相互认证和修正作用,相对于传统方法,即使其中一份被破坏,仍然可使用其余的两份来得到正确的分存信息,从而进一步提高正确恢复秘密信息的概率;

②使用密钥Ke和参与者子密钥驱动产生的随机序列对分存信息的多个版本来进行加密,在解密阶段,只有提供正确密钥Ke和参与者子密钥才能获取对应的分存信息,反之,都无法获得任何信息,因此本发明具备较高的安全性;

③本发明中分存信息的多个版本的存放位置和对应的版本信息存储值,都和密钥Ke和每个参与者对应的子密钥生成的随机序列息息相关,若不能正确重构密钥Ke和提供正确的参与者子密钥,将无法对多版本分存信息进行准确解密,从而也无法对多版本分存信息进行准确认证,同时本发明也通过第3方公信方存储的MD5值来防止参与者提供虚假的子密钥进行欺骗,从而具备更高的安全性;

④本发明充分使用自然图像的邻近像素相关性,通过邻近像素的相关性来修正在恢复过程中错误认证的像素点,并使用自然图像的邻近像素相关性来逼近出那些认证不通过的像素点,使得本方法具有更好的错误恢复能力。

附图说明

图1本发明的图像分存方法流程图

图2本发明的图像恢复方法流程图

图3本发明实施例的秘密图像,分辨率为256×256的8位标准灰度图像boat

图4本发明实施例的掩体图像1,分辨率为512×512的8位标准灰度图像baboon

图5本发明实施例的掩体图像2,分辨率为512×512的8位标准灰度图像f16

图6本发明实施例的掩体图像3,分辨率为512×512的8位标准灰度图像sailboat

图7本发明实施例的掩体图像4,分辨率为512×512的8位标准灰度图像lena

图8本发明实施例的掩体图像5,分辨率为512×512的8位标准灰度图像peppers

图9本发明实施例中嵌入信息后的掩体图像1,PSNR=43.35分贝

图10本发明实施例中嵌入信息后的掩体图像2,PSNR=43.37分贝

图11本发明实施例的嵌入信息后的掩体图像3,PSNR=43.36分贝

图12本发明实施例的嵌入信息后的掩体图像4,PSNR=43.36分贝

图13本发明实施例的嵌入信息后的掩体图像5,PSNR=43.37分贝

图14本发明实施例的在无攻击的情况下还原出的秘密图像,其中M=105

图15本发明实施例中受攻击后的嵌入信息后的掩体图像1(对图9进行攻击)

图16本发明实施例用图15,图11和图13还原出的秘密图像PSNR=48.16 分贝,其中M=105

图17本发明实施例中受攻击后的嵌入信息后的掩体图像3(对图11进行攻击)

图18本发明实施例中受攻击后的嵌入信息后的掩体图像5(对图13进行攻击)

图19本发明实施例用图15,图17和图18还原出的秘密图像PSNR=32.39分贝,其中M=105

图20本发明实施例用图15,图17和图18还原出的秘密图像PSNR=34.35分贝,其中M=60

图21本发明实施例用图15,图17和图18还原出的秘密图像PSNR=30.71分贝,其中M=255

具体实施方式

下面结合具体实施例对本发明进行说明:

以JAVA jdk1.8.0_20作为案例实施环境,以(3,5)门限方案为例,即K=3,N=5,结合附图对本发明实施方式进行详细说明,但不局限于本实施案例,其中图1是分存流程图,图2是恢复流程图。

以下以具体实例对分存过程进行说明:

第1步:选取256×256的8位标准灰度图像boat作为秘密图像,如图3所示,选取512×512的8位标准灰度图像baboon、f16、sailboat、lena和peppers分别作为5个参与者的掩体图像,如图4~图8所示,选取密钥为Ke=131819,使用密钥131819来生成<0,1,2,…,x,…,262142,262143>的一个置换序列<112445,76280,60668,…,qx,…,48260,218314>,该置换序列用于确定秘密像素分存信息在掩体图像中的嵌入位置;

第2步:为了保护密钥Ke=131819,使用fKe(k)=(131819+1713648k+13k2)mod1000000007将其进行(3,5)分存,对于标号为1,2,3,4,5的参与者可以获得子密钥fKe(1),fKe(2),fKe(3),fKe(4),fKe(5):

fKe(1)=(131819+1713648+13)mod1000000007=1845480

fKe(2)=(131819+1713648×2+13×4)mod1000000007=3559167

fKe(3)=(131819+1713648×3+13×9)mod1000000007=5272880

                        ;

fKe(4)=(131819+1713648×4+13×16)mod1000000007=6986619

fKe(5)=(131819+1713648×5+13×25)mod1000000007=8700384

第3步:对于标号为k的参与者,使用子密钥fKe(k)生成所有元素处于[0,6]的随机整数序列,得到5个长为196608的随机序列:

随机序列1:

随机序列2:

随机序列3:

随机序列4:

随机序列5:

第4步:对于秘密图像S=(si,j)256×256像素扫描序中第x(x=0,1,…,65535)个位置的像素sx用7进制数(axbxcx)7表示,按式fx(k)=(ax+bxk+cxk2)mod7进行分存,对于标号为k的参与者,得到分存信息

以秘密图像像素扫描序的第257个像素s1,1=129为例,其中s257=129可用7进制数(243)7表示,即得到a257=2,b257=4,c257=3,从而得到分存式f257(k)=(2+4k+3k2)mod7,对于参与者1,2,3,4,5分别得到分存信息:

sp2571=f257(1)=(2+4+3)mod7=2

sp2572=f257(2)=(2+8+12)mod7=1

sp2573=f257(3)=(2+12+27)mod7=6

sp2574=f257(4)=(2+16+48)mod7=3

sp2575=f257(5)=(2+20+75)mod7=6

第5步:用下式将分存信息k=1,2,3,4,5,x=0,1,2,...,65535加密成三个版本和然后分别嵌入到对应掩体图像像素扫描序中的q3x,q3x+1,q3x+2位置。通过调整成满足 c^q3xkmod7=spvx,k0,c^q3x+1kmod7=spvx,k1,c^q3x+2kmod7=spvx,k2来嵌入分存信息 和为了使得嵌入分存信息后的掩体图像得到更高的视觉质量选择满足最小的

spvx,k0=(((q3x+1mod6)+1)×(spxk+r3xk))mod7

spvx,k1=(((q3x+2mod6)+1)×(spxk+r3x+1k))mod7

spvx,k2=(((q3xmod6)+1)×(spxk+r3x+2k))mod7

其中q3x,q3x+1,q3x+2在第1步生成,在第3步生成;

以k=1,x=257为例,其中sp2571=2,q771=142650,q772=137190,q773=37274r7711=5,r7721=3,r7731=6,所以计算得到spv257,10=0,spv257,11=1spv257,12=1:

spv257,10=(((q772mod6)+1)×(sp2571+r7711))mod7=(((137190mod6)+1)×(2+5))mod7=0

spv257,11=(((q773mod6)+1)×(sp2571+r7721))mod7=(((37274mod6)+1)×(2+3))mod7=1

spv257,12=(((q771mod6)+1)×(sp2571+r7731))mod7=(((142650mod6)+1)×(2+6))mod7=1

而掩体图像像素扫描序中的q771=142650,q772=137190,q773=37274位置对应的像素值为 嵌入分存信息后变为 c^1426501=203,c^1371901=92,c^372741=64并且分别满足c^1426501=203mod7=spv257,10=0c^1371901=92mod7=spv257,11=1c^372741=64mod7=spv257,12=1,

以为例说明如何调整掩体像素的值,满足的 有0,7,14,…,196,203,…,252,而最小的是因而调整c^1426501=203;

第6步:为防止用户恶意篡改子密钥fKe(k),本发明计算fKe(k)对应的MD5值并向第三方公信方公布。最后将嵌入分存信息后的掩体图像 k=1,2,3,4,5即图9~图13和子密钥fKe(k)分发给对应标号为k的参与者,并且销毁计算过程中的所有中间数据。

最后,参与者1得到的分发信息为子密钥fKe(1)=1845480和嵌入信息的掩体图像子密钥fKe(1)认证MD5值为0xf17a011ceba20886dbcd8b2ac3695c12 

参与者2得到的分发信息为子密钥fKe(2)=3559167和嵌入信息的掩体图像 子密钥fKe(2)认证MD5为0xe2a7bcc2df75fcca1918be812d40e541 

参与者3得到的分发信息为子密钥fKe(3)=5272880和嵌入信息的掩体图像 子密钥fKe(3)认证MD5为0x63e80f9cb22816ec36c9b54f11b75e93 

参与者4得到的分发信息为子密钥fKe(4)=6986619和嵌入信息的掩体图像 子密钥fKe(4)认证MD5为0xfe69be6a745b8b3f3df3b9effc7d1bd1 

参与者5得到的分发信息为子密钥fKe(5)=8700384和嵌入信息的掩体图像 子密钥fKe(5)认证MD5为0x5eaa34c8e66cc5c4958e069ef9b4e57b 

以下以具体实例对恢复过程进行说明:

第1步:假设有3个参与者1、3、5参与秘密图像重构,并分别提供子密 钥fKe(1)=1845480,fKe(3)=5272880和fKe(5)=8700384和嵌入分存信息的掩体图像C^1=(c^i,j1)512×512,C^3=(c^i,j3)512×512C^5=(c^i,j5)512×512即图9,图11,图13。计算子密钥fKe(1),fKe(3),fKe(5)的认证MD5为0xf17a011ceba20886dbcd8b2ac3695c12,0x63e80f9cb22816ec36c9b54f11b75e93和0x5eaa34c8e66cc5c4958e069ef9b4e57b与公布在第三方公信方的MD5值一致,所以参与者1、3、5均通过认证,继续恢复过程。

第2步:将通过认证参与者1、3、5对应的编号和子密钥(1,fKe(1)),(3,fKe(3))和(5,fKe(5))按Lagrange插值得到fKe(k)=(131819+1713648k+13k2)mod1000000007,因而得到密钥Ke=131819和使用Ke再次生成<0,1,2,…,x,…,262142,262143>的排列序列<112445,76280,60668,…,qx,…,48260,218314>。

对于参与者1,使用fKe(1)再次生成随机整数序列:

<5,6,2,...,r3x1,r3x+11,r3x+21,...,5,0,2>.

对于参与者3,使用fKe(3)再次生成随机整数序列:

<6,2,6,...,r3x3,r3x+13,r3x+23,...,1,3,3>.

对于参与者5,使用fKe(5)再次生成随机整数序列:

<2,5,4,...,r3x5,r3x+15,r3x+25,...,1,0,0>.

第3步:提取出参与者numk(numk=1,3,5)的掩体图像在像素扫描序中的q3x,q3x+1,q3x+2(x=0,1,…,65535)位置被嵌入的分存信息,其中 spvx,numk0=c^q3xnumkmod7,spvx,numk1=c^q3x+1numkmod7,spvx,numk2=c^q3x+2numkmod7并使用下式解密出分存信息的3个版本和

以numk=1和x=257为例,由于q771=142650,q772=137190,q773=37274, c^1426501=203,c^1371901=92,c^372741=64,所以得到

spv257,10=c^q7711mod7=203mod7=0

spv257,11=c^q7721mod7=92mod7=1,

spv257,12=c^q7731mod7=64mod7=1

又有r7711=5,r7721=3,r7731=6,则可计算得到sp25710=2,sp25711=2sp25712=2;

sp25710=(spv257,10×((q772mod6)+1)7-1-r7711+7)mod7=(0×((137190mod6)+1)7-1-5+7)mod7=2

sp25711=(spv257,11×((q773mod6)+1)7-1-r7721+7)mod7=(1×(37274mod6)+1)7-1-3+7)mod7=2

sp25712=(spv257,12×((q771mod6)+1)7-1-r7731+7)mod7=(1×(142650mod6)+1)7-1-6+7)mod7=2

第4步:对于和若互不相等则认为分存信息不可信,否则把的值设置为和中出现最多的数值且认为其可信,最后求得spxnumk,numk=1,3,5;

以numk=1和x=257为例,由于上一步求得和则把的值设置为和中出现最多的2并认为 可信,同样求得和且都可信;

若上一步求得的和互不相等,则认为的值不可信,而求得和都可信;

第5步:若求得的可信个数大于等于3,则通过可信的分存信息使用拉格朗日插值还原出式fx(k)=(ax+bxk+cxk2)mod7从而得到(axbxcx)7即得到秘密图像像素扫描序中的第x个像素(假设秘密图像的第x个像素坐标为(i1,j1)),并标记该像素通过认证,即否则,令秘密图像的第x个像素值等于128, 并标记该像素未通过认证,即

以numk=1和x=257为例,若可信,和且都可信;因为可信的分存信息大于等于3,通过(1,2),(3,6)和(5,6)使用拉格朗日插值还原出式f257(k)=(2+4k+3k2)mod7,可得秘密像素s257=(243)7=129,并标记该像素认证通过即b1,1=1;

若不可信,而和都可信,因为可信的分存信息小于3无法使用拉格朗日插值恢复秘密像素s′257,作为补救措施,令s′257=128,且认证不通过即b1,1=0。

第6步:反复执行第3步至第5步,直到处理完所有的x=0,1,…,65535,则可得到初步秘密图像S′=(s′i,j)256×256和对应的认证信息B=(bi,j)256×256其中bi,j=1表示像素s′i,j认证通过,bi,j=0表示未通过认证;

第7步:对于满足的初步秘密图像S′=(s′i,j)256×256像素扫描序中的第x(x=0,1,…,65535)个像素为s′x,则假设s′x的8邻域像素分别为(若不存在8个(图像边界情况),则用128补齐8个,且补充的元素认证值为0),由下式得到s′x的8邻域像素中通过认证的数目cntx和它们与s′x的最小距离(式中sit(y)表示秘密图像像素扫描序中的第y个像素对应的位置坐标),若 且cntx≥3,则认为s′x是第5步误认为通过认证的像素点,从而纠正至其中M=105设置为原始秘密图像图1所有像素与对应8邻域像素最小距离的最大值。

disxmin=min{|sx-sy||bsit(y)=1,y{x1,x2,...,x8}}

cntx=sizeof({y∈{x1,x2,...,x8}|bsit(y)=1})

用以下几个例子说明该步骤:

若s′x和它的8邻域像素和认证信息如下表所示:

则可计算得到cntx=8≥3而且不满足条件,则认为第4步认为通过认证的像素点正确。

若s′x和它的8邻域像素和认证信息如下表所示:

则可计算得到cntx=8≥3而且满足条件,则认为第4步误认为s′x通过认证。现在纠正

若s′x和它的8邻域像素和认证信息如下表所示:

则可计算得到cntx=2<3和不满足条件,则认为第4步认为通过认证的像素点正确。

第8步:对于满足的S′=(s′i,j)256×256像素扫描序的第x(x=0,1,…,65535)个像素s′x,则使用邻近像素的像素相关性来逼近它的值。首先计算它8邻域像素通过认证的数目cntx=sizeof({y∈{x1,x2,...,x8}|bsit(y)=1}),若cntx=0则置s′x=128,否则令并四舍五入到对应整数;

用以下例子说明该步骤:

若s′x和它的8邻域像素和认证信息如下表所示:

则可计算得到cntx=8>0因而sx=126×3+127+128×2+129×28=127.375四舍五入后得到sx′=127;

第9步:最后得到的S′=(s′i,j)256×256输出作为恢复的秘密图像图14。

上述恢复过程是参与者1,3,5均未遭到攻击的情况下的还原过程,在恢复阶段可能用户提供的掩体图像遭到攻击。如下例所示:

参与者1,3,5参与恢复阶段,但是参与者1的掩体图像被攻击后为图15所示,参与者3,5提供的掩体图像依然为图11,图13。他们提供的子密钥均通过认证的情况下,且设置M=105为原始秘密图像图1所有像素与对应8邻域像素最小距离的最大值,按上述步骤可还原得到秘密图像图16。

参与者1,3,5参与恢复阶段,但是参与者1的掩体图像被攻击后为图15所示,参与者3的掩体图像被攻击后为图17所示,参与者5的掩体图像被攻击后为图18所示,他们提供的子密钥均通过认证的情况下,且设置M=105为原始秘密图像图1所有像素与对应8邻域像素最小距离的最大值,按上述步骤可还原得到秘密图像图19。

上述恢复过程设置M=105为原始秘密图像图1所有像素与对应8邻域像素最小距离的最大值。下面将设置M为区间[0-255]中的整数进行恢复如下例所示:

参与者1,3,5参与恢复阶段,但是参与者1的掩体图像被攻击后为图15所示,参与者3的掩体图像被攻击后为图17所示,参与者5的掩体图像被攻击后为图18所示,他们提供的子密钥均通过认证的情况下,且设置M=60,按上述步骤可还原得到秘密图像图20。

参与者1,3,5参与恢复阶段,但是参与者1的掩体图像被攻击后为图15 所示,参与者3的掩体图像被攻击后为图17所示,参与者5的掩体图像被攻击后为图18所示,他们提供的子密钥均通过认证的情况下,且设置M=255,按上述步骤可还原得到秘密图像图21。

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

①同现有方法不同,本发明引入了三重备份将秘密像素的分存信息加密成3个不同版本嵌入到掩体图像的3个位置,这3份备份信息起到相互认证和修正作用,相对于传统方法,即使其中一份被破坏,仍然可使用其余的两份来得到正确的分存信息,从而进一步提高正确恢复秘密信息的概率;

②使用密钥Ke和参与者子密钥驱动产生的随机序列对分存信息的多个版本来进行加密,在解密阶段,只有提供正确密钥Ke和参与者子密钥才能获取对应的分存信息,反之,都无法获得任何信息,因此本发明具备较高的安全性;

③本发明中分存信息的多个版本的存放位置和对应的版本信息存储值,都和密钥Ke和每个参与者对应的子密钥生成的随机序列息息相关,若不能重构正确密钥Ke和提供正确的参与者子密钥,将无法对多版本分存信息进行准确解密,从而也无法对多版本信息进行准确认证,同时本发明也通过第3方公信方存储的MD5值来防止参与者提供虚假的子密钥进行欺骗,从而具备更高的安全性;

④本发明充分使用自然图像的邻近像素相关性,通过邻近像素的相关性来修正在恢复过程中错误认证的像素点,并使用自然图像的邻近像素相关性来逼近出那些认证不通过的像素点,使得本方法具有更好的错误恢复能力。

以上内容仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明权利要求书的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号