CN106600517B - 一种基于emd-3的多载体密图分存和重构方法 - Google Patents

一种基于emd-3的多载体密图分存和重构方法 Download PDF

Info

Publication number
CN106600517B
CN106600517B CN201611004928.2A CN201611004928A CN106600517B CN 106600517 B CN106600517 B CN 106600517B CN 201611004928 A CN201611004928 A CN 201611004928A CN 106600517 B CN106600517 B CN 106600517B
Authority
CN
China
Prior art keywords
formula
random number
sequence
image
close
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201611004928.2A
Other languages
English (en)
Other versions
CN106600517A (zh
Inventor
邵利平
黄燕燕
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shaanxi Normal University
Original Assignee
Shaanxi Normal University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shaanxi Normal University filed Critical Shaanxi Normal University
Priority to CN201611004928.2A priority Critical patent/CN106600517B/zh
Publication of CN106600517A publication Critical patent/CN106600517A/zh
Application granted granted Critical
Publication of CN106600517B publication Critical patent/CN106600517B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/0021Image watermarking
    • G06T1/0092Payload characteristic determination in a watermarking scheme, e.g. number of bits to be embedded
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2201/00General purpose image data processing
    • G06T2201/005Image watermarking
    • G06T2201/0065Extraction of an embedded watermark; Reliable detection

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Image Processing (AREA)

Abstract

本发明提供一种基于EMD‑3的多载体密图分存和重构方法,将与公开图像等大的密图嵌入到多个分发的公开图像中,所提方法通过密图的MD5值和SHA‑1值以及用户给定的密钥产生多组置乱参数并分别用于不同的公开图像像素位置置乱;然后将置换后的公开图像对应位置像素构成向量,通过EMD‑3嵌入方法嵌入密图像素并重构公开图像,为增强EMD‑3嵌入的安全性,EMD‑3嵌入方法的基向量由与密图MD5值和SHA‑1值以及用户给定的密钥绑定的随机参数进行置乱,从而仅有正确的用户密钥和正确的密图MD5值和SHA‑1值才能对密图进行恢复,相对于传统的多载体密图分存重构方法,不仅具有较高的视觉嵌入质量,也增强了安全性。

Description

一种基于EMD-3的多载体密图分存和重构方法
技术领域
本发明属于图像信息安全和数字图像信号处理交叉领域,涉及一种密图分存重构方法,特别涉及一种基于EMD-3的多载体密图分存和重构方法。
背景技术
近年来,伴随着计算机和网络技术的发展,越来越多的图像在网络中传输,在给用户提供方便的同时,也带来了一系列的安全隐患。对图像信息不当使用和恶意篡改,不仅会涉及个人隐私,也会给社会带来严重的负面影响。
针对数字图像信息安全,人们已提出了多种方法,如:①将明文图像转换为密文图像的数字图像加密技术;②将机密图像隐藏于非相关载体中的数字图像隐写技术;③给图像添加版权认证标识,对图像真实性和完整性,来源者和使用者进行认证的数字图像水印技术;④结合现有技术特点对图像的真实性和完整性进行甄别的数字图像盲取证技术以及⑤将机密图像拆分为影子图像,利用分发影子图像重构秘密图像的数字图像信息分存技术。
其中,对重要图像信息进行安全保护的数字图像信息分存技术已成为当前图像信息安全的研究热点。传统的图像分存方案只是将秘密图像转换为无意义影子图像,这在公有信道传输中容易诱发攻击而使分发影子图像遭受破坏,从而降低秘密图像最终正确重构的可能性。针对无意义图像分存方案在使用过程中存在的安全隐患,一些文献也探讨了有意义图像分存。
针对有意义分存,Lin,2004(Lin CC,Tsai WH.Secret image sharing withsteganography and authentication.The Journal of Systems and Software,2004,73(3):405–414.)将秘密图像每个像素的8位分存信息嵌入到载体图像对应的2×2分块的左下,右下和右上像素中。Yang,2007(Yang CN,Chen TS,Yu KH,Wang CC.Improvements ofimage sharing with steganography and authentication.The Journal of Systemsand Software,2007,80(7):1070-1076.)用GF(28)替代GF(251)、并通过调整2×2分存信息的嵌入结构来嵌入秘密像素分存信息。Chang,2008(Chang CC,Hsieh YP,Lin CH.Sharingsecrets in stego images with authentication.Pattern Recognition,2008,41(10):3130–3137.)将8位分存信息嵌入到载体图像对应的2×2分块所有像素的低3位中。为提高载体图像的视觉质量,Wu,2011(Wu CC,Kao SJ,Hwang MS.A high quality image sharingwith steganography and adaptive authentication scheme.The Journal of Systemsand Software,2011,84(12):2196-2207.)对传统的LSB嵌入方法进行改进,通过调整像素的第4个低位来减小嵌入信息后的像素与原始像素的差值以获得更高的视觉嵌入质量。为提升嵌入后载体的视觉质量,Eslami,2010(Eslami Z,Razzaghi SH,Zarepour AJ.Secretimage sharing based on cellular automata and steganography.PatternRecognition,2010,43(1):397-404.)等仅对载体图像所有2×2分块的1/2分块的低2位按LSB法嵌入分存信息。Chang,2011(Chang CC,Chen YH,Wang HC.Meaningful secretsharing technique with authentication and remedy abilities.InformationSciences,2011,181(14):3073–3084.)和Chen,2012(Chen YH,Chang CC.Image TamperDetection and Recovery Based on Dual Watermarks Sharing Strategy.Journal ofDigital Information Management,2012,10(1):39–49.)引入了像素配对,将分存信息嵌入到载体图像的2×2分块中以提高攻击后修复能力。为获得更强的攻击后修复能力,Wu,2013(Wu XT,Sun W.Secret image sharing scheme with authentication and remedyabilities based on cellular automata and discrete wavelet transform.TheJournal of Systems and Software,2013,86(4):1068-1088.)引入了备份图像,将两个8位秘密像素和2个4位备份图像像素对应的分存信息和认证信息用LSB法嵌入到载体图像对应2×4分块的低2位中。
在所申请的发明专利:邵利平,2014a(邵利平,欧阳显斌.一种基于三重备份的(K,N)有意义图像分存及恢复方法[P].中国,中华人民共和国国家知识产权局,发明专利,201410728893.1,2014.)通过引入三重备份将秘密图像像素分存信息存储在不同的三个位置起相互认证作用,在恢复阶段使用自然图像相邻像素相关性来提升方案的认证能力和错误修复能力,但所提方法分发载体是密图大小的4倍,存在着像素扩张。
在所申请的发明专利:邵利平,2015a(邵利平,欧阳显斌.基于GF(27)有限域和双重认证的有意义(K,N)图像分存重构方法[P].中国,中华人民共和国国家知识产权局,发明专利,2015010920369.9,2015)我们给出了一种基于GF(27)有限域和双重认证的有意义(K,N)图像分存和重构方法,引入了备份图像,双重认证和自修复策略,但所提方法分发载体依然是密图大小的4倍,存在着像素扩张。
以上所给出的有意义图像分存方案:Lin,2004、Yang,2007、Chang,2008、Wu,2011、Eslami,2011、Chang,2011、Chen,2012、Wu,2013、邵利平,2014a和邵利平,2015a都是将秘密像素嵌入到载体图像的2×2或2×4分块中或采用4倍密图大小的载体,因此不可避免地导致像素扩张。
为避免像素扩张,在所申请的发明专利:邵利平,2014b(邵利平,欧阳显斌.基于差值变换的(K,N)有意义图像分存及恢复方法,中国,中华人民共和国国家知识产权局,发明专利,201410438803.5,2014)和所发表的论文:邵利平,2015b(欧阳显斌,邵利平,陈文鑫.结合调整差值变换的(K,N)有意义图像分存方案[J].中国图象图形学报,2015,20(5):633-642)我们给出了基于调整差值变换的图像分存方法,采用调整差值变换将密图转换为差值图和位置图分别进行分存,避免了载体图像扩张。在所申请的发明专利:邵利平,2015c(邵利平,欧阳显斌.一种基于GF(23)的(K,N)有意义无扩张图像分存和重构方法,中国,中华人民共和国国家知识产权局,发明专利,201510283407.4,2015)和所发表的论文:邵利平,2015d(欧阳显斌,邵利平.一种基于GF(2^3)的(K,N)有意义无扩张图像分存方案[J].计算机科学,2015,42(12):251-256.)我们给出了一种基于GF(23)的(K,N)有意义无扩张图像分存和重构方法,引入了对秘密像素的认证策略,将秘密像素以及对秘密像素进行认证的信息嵌入到与密图等大的载体图像中。
以上所给出的有意义图像分存方案:邵利平,2014b、邵利平,2015b、邵利平,2015c和邵利平,2015d尽管使用和密图等大的载体图像进行分存,没有扩张,但同传统的有意义图像分存方案:Lin,2004、Yang,2007、Chang,2008、Wu,2011、Eslami,2011、Chang,2011、Chen,2012、Wu,2013、邵利平,2014a和邵利平,2015a相类似,通常是采用LSB来对分存信息进行嵌入,对载体的视觉质量影响较大。
为提高载体的视觉掩蔽效应,结合纸张印刷中的半色调技术,吴小天,2011(吴小天,孙伟.基于误差扩散的图像分存方案[J].2011,31(1):74-81)给出了基于误差扩散法的2值图像分存方案,将一幅2值图像嵌入到多张与密图等大的2值图像中。欧锻灏,2013(欧锻灏,吴小天,孙伟,刘娟.基于恢复函数和误差扩散的灰度图像分存方案[J].计算机科学,2013,40(2):112-116)将一幅灰度图像嵌入到多张与密图等大的灰度图像中。
以上两种分存方法尽管使用的密图和载体图像等大,避免了传统有意义分存方法所采用的多位LSB位嵌入,并进一步引入了误差扩散来对载体像素值进行调整,将调整过程产生的误差传递给周围未调整的像素,利用载体像素的空间分辨率来对载体像素分辨率进行补偿,以抵消由于像素翻转或像素修改所导致的视觉偏差,但此类方法对嵌入载体的修改量较大,会对嵌入载体的视觉质量造成较大影响。同时吴小天,2011的分存方案只能用于2值图像分存,而欧锻灏,2013针对的分存方案只能用于灰度图像分存并且以上两种方法:吴小天,2011和欧锻灏,2013采用Arnold变换对载体图像进行置乱,Arnold变换比较简单,置乱系数仅为1,1,1,2,其安全性仅取决于迭代次数,仅能提供有限的安全性,并且Arnold变换所针对的置乱对象通常为正方形图像,适用面和安全性都较窄。
EMD-3嵌入方法(Niu X J,Ma M,Tang R,Yi Z X,2015.Image Steganography viaFully Exploiting Modification Direction[J],2015,9(5):243-254)是一种典型的大容量嵌入,即在n个载体数据都可微小改变的基础上嵌入一个3n进制的数,带来了较大的嵌入容量,结合EMD-3方法可有效地保障嵌入掩体的视觉质量。
发明内容
本发明的目的在于克服现有技术缺陷,提供一种基于EMD-3的多载体密图分存和重构方法,相对于传统的图像分存重构方法,增强了嵌入的安全性和减少了对载体图像视觉质量的影响,使得分发后的含密载体具有较高的视觉质量。
为实现上述目的,本发明采用以下技术方案:
一种基于EMD-3的多载体密图分存方法,包括以下步骤:
第1步:输入待嵌入的p比特公开图像k=0,1,…,l-1,输入待隐藏的q比特密图S=(si,j)m×n,si,j∈{0,1,…,2q-1-1},其中
第2步:记S的MD5值和SHA-1值分别为16进制序列SMD5=<m0,m1,…,m31>和SSHA-1=<s0,s1,…,s39>,由SMD5和SSHA-1奇数和偶数索引元素构造16进制序列Sms=<ms0,ms1,…,ms71>,从Sms抽取出It个元素构成序列Sh=<h0,h1,…,hIt-1>,其中It为[24,70]范围内的偶数;
第3步:将Sh划分为奇数序列Sodd和偶数序列Seven,然后将Sodd和Seven映射为10进制小数G0∈[3.57,4];
第4步:由G0和用户给定的密钥参数G1∈(0,1)产生(0,1)范围内的随机数,为消除暂态效应,将迭代的前IT>0次结果抛弃,从第IT次开始生成随机数;
第5步:将第4步生成的6个连续随机数l0,l1,l2,l3,l4,l5∈(0,1)映射为[0,m)范围内的随机整数a,b,e和[0,n)范围内的随机整数c,d,f,其中m,n对应为公开图像的大小;
第6步:反复执行第5步,直至筛选出可用于将公开图像置乱为置乱图像的l组置乱参数ak,bk,ck,dk,ek,fk,并将置乱为其中k=0,1,…,l-1;
第7步:由Sodd和Seven转换为10进制数G2∈(0,1)和用户给定的参数G3∈[3.57,4]生成m·n个随机数作为矩阵R=(ri,j)m×n,ri,j∈(0,1),在迭代时,同样将前IT>0次结果抛弃,从第IT次开始生成随机数;
第8步:利用ri,j和G0生成9个随机数rr0,rr1,…,rr8,在迭代时,同样将前IT>0次结果抛弃,从第IT次开始生成随机数,其中i=0,1,…,m-1,j=0,1,…,n-1;
第9步:将rr0,rr1,…,rr8和Sms映射为起始控制参数Starti,j∈[0,l-1],由ri,j和G3产生3l个随机数:RR0,RR1,…,RR3l-1,其中前l个随机数映射为报数间隔序列Gapi,j=<Ga0,Ga1,…,Gal-1>,Ga0,Ga1,…,Gal-1∈[0,l-1],中间l个随机数映射为报数终值序列Mi,j=<mm0,mm1,…,mml-1>,mm0,mm1,…,mml-1∈[0,l-1],最后l个随机数作为报数方向序列Di,j=<D0,D1,…,Dl-1>,D0,D1,…,Dl-1∈(0,1),在迭代时,同样将前IT>0次结果抛弃,从第IT次开始生成随机数;
第10步:将Starti,j,Gapi,j,Mi.j和Di,j作为控制参数产生l个元素的索引顺序序列Sindex=<ind0,ind1,…,indl-1>,indu∈{0,1,…,l-1};
第11步:记置乱图像对应位置元素构成的向量为Si,j,将长度为l的基向量Gl=<30,31,…,3l-1>置乱为Gl′,结合Gl′将秘密像素si,j嵌入到Si,j中;
第12步:反复执行第8步~第11步,直至将秘密图像S=(si,j)m×n的所有像素嵌入到置乱后的公开图像中,其中k=0,1,…,l-1;
第13步:对k=0,1,…,l-1进行逆置乱,从而将秘密图像S=(si,j)m×n隐藏到公开图像k=0,1,…,l-1中。
进一步,在第2步中由SMD5和SSHA-1奇数和偶数索引元素构造16进制序列Sms=<ms0,ms1,…,ms71>的具体方法为式(1):
Sms=odd(SMD5)||even(SSHA-1)||odd(SSHA-1)||even(SMD5)=<smi>72 (1);
在第2步中从Sms抽取出It个元素构成序列Sh=〈h0,h1,…,hIt-1〉的具体方法为按式(2)将Sms,SMD5,SSHA-1映射为初始值xinit和变换参数ainit,binit,将xinit作为式(3)的初始值x0,按式(3)将序列Stemp=〈0,1,…,It-1〉映射为索引位置序列Sx=〈x0,x1,…,xIt-1〉,从而按式(4)由Sms抽取出Sh=<h0,h1,…,hIt-1>;
式(2)中,函数adjust()为随机整数生成函数,用于以输入随机数为随机种子筛选得到(0,len(Sms))范围内的随机整数ainit且满足gcd(ainit,len(Sms))=1;
xn+1=(ainitxn+binit)modlen(Sms) (3)
Sh=Draw(Sms,Sx) (4)
式(4)中,Draw()为序列抽取函数,执行的功能是以Sx=<x0,x1,…,xIt-1>中的元素为索引,将Sms中的第xi个元素msxi作为序列Sh的第i个元素hi,其中i=0,1,…,It-1。
进一步,在第3步中将Sh划分为奇数序列Sodd和偶数序列Seven的具体方法为式(5):
在第3步中将Sodd和Seven映射为10进制小数G0∈[3.57,4]的具体方法为式(6),其中符号“\”表示整数除法:
在第4步中由G0和用户给定的密钥参数G1∈(0,1)产生(0,1)范围内的随机数的具体方法为(7),其中G0为系统参数μ,G1为初始值;
xn+1=μxn(1-xn) (7);
在第5步中将第4步生成的6个连续随机数l0,l1,l2,l3,l4,l5∈(0,1)映射为[0,m)范围内的随机整数a,b,e和[0,n)范围内的随机整数c,d,f的具体方法为按式(8)将l0,l1,l2,l3,l4,l5依次转换为[0,m)范围内的整数a,b,e和[0,n)范围内的整数c,d,f:
在第6步中筛选出可用于将公开图像置乱为置乱图像的l组置乱参数ak,bk,ck,dk,ek,fk的具体方法为式(9):
式(9)中,“|”表示或,p=gcd(m,n)为m,n的最大公因子且m=pz1,n=pz2
进一步,在第6步中将置乱为的具体方法为式(10):
在第13步中对k=0,1,…,l-1进行逆置乱的具体方法为式(22):
进一步,在第7步中由Sodd和Seven转换为10进制数G2∈(0,1)的具体方法为式(11):
在第7步中生成m·n个随机数作为矩阵R=(ri,j)m×n,ri,j∈(0,1)的具体方法为式(7),其中G2为初始值,G3为系统参数μ;
在第7步中利用ri,j和G0生成9个随机数rr0,rr1,…,rr8的具体方法为式(7),其中ri,j为初始值,G0为系统参数;
在第9步中将rr0,rr1,…,rr8和Sms映射为起始控制参数Starti,j∈[0,l-1]的具体方法为式(12);
在第9步中由ri,j和G3产生3l个随机数:RR0,RR1,…,RR3l-1的具体方法为式(7),其中ri,j为初始值,G3为系统参数;
在第9步中前l个随机数映射为报数间隔序列Gapi,j=<Ga0,Ga1,…,Gal-1>,Ga0,Ga1,…,Gal-1∈[0,l-1]的具体方法为式(13):
在第9步中,中间l个随机数按式(15)进行量化作为报数终值序列Mi,j=<mm0,mm1,…,mml-1〉,mm0,mm1,…,mml-1∈[0,l-1]的具体方法为式(14):
进一步,在第10步中将Starti,j,Gapi,j,Mi.j和Di,j作为控制参数产生l个元素的索引顺序序列Sindex=〈ind0,ind1,…,indl-1>,indu∈{0,1,…,l-1}的具体方法为式(15):
Sindex=fJosephus(l,Starti,j,Gapi,j,Mi,j,Di,j) (15)
式(15)中,函数fJosephus()为约瑟夫遍历的映射函数,用于按约瑟夫遍历映射中的报数先后顺序产生l个元素的索引顺序序列Sindex,其具体执行的功能是以Starti,j作为报数起始位置索引,进行l次间隔报数,由Gapi,j序列中的第u个元素Gau确定第u次间隔报数跳过的元素数,由Di,j序列中的第u个元素Du确定第u次报数的报数方向,其中Du≥0.5为顺时针,反之为逆时针,由Mi.j序列中的第u个元素mmu确定第u次报数终止值,将报数终止值对应的索引位置作为Sindex的第u个元素indu并剔除该索引位置,其中u=0,1,…l-1。
进一步,在第11步中将长度为l的基向量Gl=<30,31,…,3l-1>置乱为Gl′的具体方法为式(16):
式(16)中,gk=3k,即将Gl中的第k个元素映射到索引顺序序列Sindex第k个元素对应的位置;
在第11步中结合Gl′将秘密像素si,j嵌入到Si,j中的具体方法为式(17):
Si′,j=EMD(si,j,Si,j,Gl′) (17);
式(17)中,函数EMD()用于通过调整置乱图像对应位置元素构成的向量Si,j来嵌入秘密元素si,j,基向量Gl′中的每个元素则对应为Si,j中的每个元素的权重。
进一步,在第11步中式(17)的具体实现方法为在于包括以下步骤:
第11.1步:记Gl′=<g0′,g1′,…,g′l-1>,按式(18)计算Si,j和Gl′内积模3l值:
第11.2步:将f与秘密像素si,j比较,若f=si,j,则不变,否则按式(19)计算si,j和f模3l差值d,如果d<0,d=3l+d;
d=(si,j-f)mod3l (19);
第11.3步:记序列Gl′中第k个元素indk∈Sindex,按式(20)计算f(k),按式(21)进行调整:
式(21)中,函数功能为:若则调整继续按式(20)计算f(k),重新按式(21)进行调整;若则调整继续按式(20)计算f(k),重新按式(21)进行调整;
第11.4步:反复执行第11.3步,直至序列中l个元素均调整完毕。
一种基于EMD-3的多载体密图重构方法,其特征在于包括以下步骤:
第1步:由用户输入嵌入秘密信息的公开图像k=0,1,…,l-1,待提取秘密图像S对应的MD5值SMD5=<m0,m1,…,m31>和SHA-1值SSHA-1=<s0,s1,…,s39>,抽取元素数It∈[24,70],Itmod2=0和用户密钥G1∈(0,1),G3∈[3.57,4]以及消除暂态效应的滤除迭代次数IT>0;
第2步:由SMD5和SSHA-1构造16进制序列Sms=〈ms0,ms1,…,ms71〉,从Sms抽取出It个元素构成序列Sh=〈h0,h1,…,hIt-1〉;
第3步:将Sh划分为奇数序列Sodd和偶数序列Seven,然后将Sodd和Seven映射为10进制小数G0∈[3.57,4];
第4步:由G0和用户给定的密钥参数G1产生(0,1)范围内的随机数,为消除暂态效应,将迭代的前IT>0次结果抛弃,从第IT次开始生成随机数;
第5步:将第4步生成的6个连续随机数l0,l1,l2,l3,l4,l5∈(0,1)映射为[0,m)范围内的随机整数a,b,e和[0,n)范围内的随机整数c,d,f;
第6步:反复执行第5步,直至筛选出可用于将用于将公开图像置乱为置乱图像的l组置乱参数ak,bk,ck,dk,ek,fk,并将置乱为其中k=0,1,…,l-1;
第7步:由Sodd和Seven转换的10进制数G2∈(0,1)和用户给定的参数G3生成m·n个随机数作为矩阵R=(ri,j)m×n,ri,j∈(0,1),在迭代时,同样将前IT>0次结果抛弃,从第IT次开始生成随机数;
第8步:利用ri,j和G0生成9个随机数rr0,rr1,…,rr8,在迭代时,同样将前IT>0次结果抛弃,从第IT次开始生成随机数,其中i=0,1,…,m-1,j=0,1,…,n-1;
第9步:将rr0,rr1,…,rr8和Sms映射为起始控制参数Starti,j∈[0,l-1],由ri,j和G3产生3l个随机数:RR0,RR1,…,RR3l-1,其中前l个随机数映射为报数间隔序列Gapi,j=<Ga0,Ga1,…,Gal-1>,Ga0,Ga1,…,Gal-1∈[0,l-1],中间l个随机数映射为报数终值序列Mi,j=<mm0,mm1,…,mml-1>,mm0,mm1,…,mml-1∈[0,l-1],最后l个随机数作为报数方向序列Di,j=<D0,D1,…,Dl-1>,D0,D1,…,Dl-1∈(0,1),在迭代时,同样将前IT>0次结果抛弃,从第IT次开始生成随机数;
第10步:将Starti,j,Gapi,j,Mi.j和Di,j作为控制参数产生l个元素的索引顺序序列Sindex=<ind0,ind1,…,indl-1>,indu∈{0,1,…,l-1};
第11步:将长度为l的基向量Gl=<30,31,…,3l-1>置乱为Gl′,结合Gl′从Si,j中提取出秘密像素值si,j
第12步:反复执行第8步~第11步,直至得到完整密图S=(si,j)m×n
进一步,在第11步中从Si,j中提取出秘密像素值si,j的具体方法为式(18):
本发明同现有技术优点分析:
①现有的基于误差扩散的图像方案以及基于恢复函数和误差扩散的灰度图像分存方案都是通过误差扩散法来对载体像素值进行调整,将调整过程产生的误差传递给周围未调整的像素,利用载体像素的空间分辨率来对载体像素分辨率进行补偿,以抵消由于像素翻转或像素修改所导致的视觉偏差,但此类方法对嵌入载体的修改量较大,会对嵌入载体的视觉质量造成较大影响。同以上方法不同,本发明采用对嵌入载体影响较小的EMD-3嵌入方法进行嵌入,在保持较大嵌入容量的同时只对嵌入载体进行微小调整,对于载体图像像素,最大调整量仅为±1。
②现有的基于误差扩散的图像分存方案通常只能用于2值秘密图像伪装嵌入,基于恢复函数和误差扩散的灰度图像分存方案针对的是灰度图像分存,同现有方法不同,本发明所给出的多公开载体密图伪装嵌入重构方法可针对不同像素分辨率的秘密图像和公开载体图像,因而具有更广泛的适用性。
③现有的基于误差扩散的图像分存方案以及基于恢复函数和误差扩散的灰度图像分存方案都是采用Arnold变换对载体图像进行置乱,Arnold变换比较简单,置乱系数仅为1,1,1,2,其安全性仅取决于迭代次数,仅能提供有限的安全性,并且Arnold变换所针对的置乱对象通常为正方形图像,适用面和安全性都较窄。同现有方法不同,本发明采用可针对任意矩形图像置乱的2维映射,置乱的参数被扩展为6个,从而使得本方法可直接应用于任意大小正方形和长方形图像,因此相对于现有方法,具有更高的适用面。
④现有的基于误差扩散的图像分存方案以及基于恢复函数和误差扩散的灰度图像分存方案仅能通过Arnold变换提供有限的安全性,而本发明所给出的方法则在安全性上进一步进行了增强:1)所提方法通过密图MD5值和SHA-1值以及用户给定的密钥产生多组置乱参数并分别用于不同的公开图像进行像素位置置乱并进一步对EMD-3嵌入方法的基向量由与密图MD5值和SHA-1值以及用户给定的密钥绑定的随机参数进行置乱来增强EMD-3嵌入方法的安全性,从而仅有提供正确的用户密钥和正确的密图MD5值和SHA-1值才能对秘密图像进行恢复,因此具备更高的安全性。
附图说明
图1是分存流程图;
图2是重构流程图;
图3是载体图像,为256×256分辨率的8位灰度图像Lake;
图4是载体图像,为256×256分辨率的8位灰度图像Lena;
图5是载体图像,为256×256分辨率的8位灰度图像Man;
图6是载体图像,为256×256分辨率的8位灰度图像Road;
图7是载体图像,为256×256分辨率的8位灰度图像Ship;
图8是载体图像,为256×256分辨率的8位灰度图像Women;
图9是秘密图像,为256×256分辨率的8位灰度图像Peppers;
图10是实施例,嵌入图9秘密图像的灰度图像Lake;相对于图3的PSNR=49.90dB;
图11是实施例,嵌入图9秘密图像的灰度图像Lena;相对于图4的PSNR=49.90dB;
图12是实施例,嵌入图9秘密图像的灰度图像Man;相对于图5的PSNR=49.89dB;
图13是实施例,嵌入图9秘密图像的灰度图像Road;相对于图6的PSNR=49.87dB;
图14是实施例,嵌入图9秘密图像的灰度图像Ship;相对于图7的PSNR=49.89dB;
图15是实施例,嵌入图9秘密图像的灰度图像Women;相对于图8的PSNR=49.91dB;
图16是实施例,由图10~图15恢复出的秘密图像,相对于图9的误码率EBR为0%。
具体实施方式
以下以JAVA jdk1.8.0_65为案例实施环境,结合附图对本发明实施方式进行详细说明,但不局限于本实施案例,其中图1是分存流程图,图2是重构流程图。
嵌入方法的具体实施步骤:
第1步:输入待嵌入的p比特公开图像k=0,1,…,l-1和待隐藏的q比特密图S=(si,j)m×n,si,j∈{0,1,…,2q-1-1},其中
例如:输入待嵌入的p=8比特公开图像k=0,1,…,l-1和待隐藏的q=8比特密图S=(si,j)2×3,si,j∈{0,1,…,255},其中假设选取的公开图像和密图对应的矩阵为:
第2步:记密图S的MD5值和SHA-1值分别为16进制数序列SMD5=<m0,m1,…,m31>和SSHA-1=<s0,s1,…,s39>,由SMD5和SSHA-1奇数和偶数索引元素,按式(1)构造16进制序列Sms=<ms0,ms1,…,ms71>;
例如:假设S对应的SMD5=<8,e,6,a,f,c,5,f,c,8,5,f,b,9,1,f,7,e,b,3,d,3,9,8,3,3,d,8,7,4,4,b>,SSHA-1=<d,4,6,0,d,0,6,0,2,e,b,b,d,7,1,5,b,e,c,1,c,f,d,8,e,4,8,9,4,b,3,3,3,4,8,6,4,f,8,9>,则按式(1)可构造16进制序列:
Sms=<e,a,c,f,8,f,9,f,e,3,3,8,3,8,4,b,d,6,d,6,2,b,d,1,b,c,c,d,e,8,4,3,3,8,4,8,4,0,0,0,e,b,7,5,e,1,f,8,4,9,b,3,4,6,f,9,8,6,f,5,c,5,b,1,7,b,d,9,3,d,7,4>
第3步:按式(2)将Sms,SMD5,SSHA-1映射为初始值xinit和变换参数ainit,binit,然后将xinit作为同余映射方程式(3)的初始值x0,ainit,binit作为变换参数,用式(3)将序列Stemp=<0,1,…,It-1>映射为索引位置序列Sx=<x0,x1,…,xIt-1>,从而按式(4)将Sms抽取为Sh=<h0,h1,…,hIt-1>,其中It为范围在[24,70]的偶数;
例如:按式(2)可将Sms,SMD5,SSHA-1映射为初始值xinit=50和变换参数ainit=65,binit=19,其中It=24,用式(3)可将序列Stemp=<0,1,…,23>映射为索引位置序列Sx=<19,12,5,70,63,56,49,42,35,28,21,14,7,0,65,58,51,44,37,30,23,16,9,2>,按式(4)可将Sms抽取为Sh=<6,3,15,7,1,8,9,7,8,14,11,4,15,14,11,15,3,14,0,4,1,13,3,12>;
第4步:将Sh=<h0,h1,…,hIt-1>中的元素按元素索引的奇偶性划分为奇数序列Sodd和偶数序列Seven,如式(5)和式(6)所示;将Sodd和Seven按式(7)转换为[3.57,4]范围内的10进制小数G0
例如:将Sh=<h0,h1,…,hIt-1>中的元素按元素索引的奇偶性划分为奇数序列Sodd=<3,7,8,7,14,4,14,15,14,4,13,12>和偶数序列Seven=<6,15,1,9,8,11,15,11,3,0,1,3>,将Sodd和Seven按式(7)可转换为[3.57,4]范围内的10进制小数G0=3.7605406528711316;
第5步:将G0作为式(8)的系统参数μ,由用户给定G1∈(0,1)作为式(8)的初始值x0,在迭代时,将式(8)迭代的前IT次结果抛弃,其中IT≥0;
例如:将G0=3.7605406528711316作为式(8)的系统参数μ,由用户给定G1=0.8378099125461247作为式(8)的初始值x0,IT=1000;
第6步:将式(8)迭代产生的6个连续随机数依次记为l0,l1,l2,l3,l4,l5∈(0,1),按式(9)将l0,l1,l2,l3,l4,l5依次转换为[0,m)范围内的整数a,b,e和[0,n)范围内的整数c,d,f并判断a,b,c,d是否满足式(10)的成立条件;
例如将式(8)迭代产生的6个连续随机数依次记为(l0,l1,l2,l3,l4,l5)=(0.828922607430594,0.5332819628266784,0.9359696535160353,0.22537093573720954,0.6565109643247844,0.8480181554104381),按式(9)将l0,l1,l2,l3,l4,l5依次转换为[0,m)范围内的整数a=1,b=1,e=0和[0,n)范围内的整数c=2,d=2,f=0,计算可确定不满足式(10)的成立条件;
第7步:反复执行第6步,直至生成l组a,b,c,d,e,f使得式(10)所对应的4个条件都成立,将这l组参数依次记为ak,bk,ck,dk,ek,fk,k=0,1,…,l-1;将ak,bk,ck,dk,ek,fk作为式(11)参数,利用式(11)将公开图像置乱为其中k=0,1,…,l-1;
例如:假设生成的l=6组随机置乱系数依次记为a0=1,b0=0,c0=2,d0=2,e0=0,f0=0,a1=1,b1=0,c1=0,d1=2,e1=0,f1=2,a2=1,b2=1,c2=0,d2=2,e2=1,f2=1,a3=1,b3=0,c3=0,d3=1,e3=1,f3=1,a4=1,b4=0,c4=0,d4=2,e4=1,f4=2,a5=1,b5=0,c5=0,d5=1,e5=1,f5=2;
利用式(11)将公开图像置乱为
第8步:按式(12)将Sodd和Seven转换为(0,1)范围内的10进制小数G2,由用户给定[3.57,4]范围内的随机数G3,将G2和G3分别作为式(8)的初始值x0和系统参数μ,代入式(8)迭代产生m·n个随机数作为矩阵R=(ri,j)m×n,ri,j∈(0,1),在迭代时,同样将前IT次结果抛弃,其中IT≥0;
例如:按式(12)将Sodd和Seven转换为(0,1)范围内的10进制小数G2=0.8657350626890548,由用户给定[3.57,4]范围内的随机数G3=3.9590343107800142,代入式(8)迭代可产生2·3个随机数作为矩阵IT=1000;
第9步:将ri,j和G0分别作为式(8)的初始值和系统参数,代入式(8)产生9个随机数rr0,rr1,…,rr8,在迭代时,同样将前IT次结果抛弃,其中IT≥0,i=0,1,…,m-1,j=0,1,…,n-1;
例如:将r0,0=0.8074591188295858和G0=3.7605406528711316分别作为式(8)的初始值和系统参数,代入式(8)产生9个随机数rr0,rr1,…,rr8=(0.8787863257169604,0.40057624797235264,0.9029619087426863,0.3295049653089493,0.8308216734468824,0.5285703891771691,0.937065557462728,0.22177299058343278,0.6490307005627043);
第10步:将rr0,rr1,…,rr8和Sms=<ms0,ms1,…,ms71>按式(13)映射为Starti,j,将ri,j和G3分别作为式(8)的初始值和系统参数μ,代入式(8)产生3l个随机数:RR0,RR1,…,RR3l-1,其中前l个随机数按式(14)进行量化作为报数间隔序列Gapi,j=<Ga0,Ga1,…,Gal-1>,中间l个随机数按式(15)进行量化作为报数终值序列Mi,j=<mm0,mm1,…,mml-1>,最后l个随机数作为报数方向序列Di,j=<D0,D1,…,Dl-1>,在迭代时,同样将前IT≥0次结果抛弃;
例如:rr0,rr1,…,rr8=(0.8787863257169604,0.40057624797235264,,0.9029619087426863,0.3295049653089493,0.8308216734468824,0.5285703891771691,0.937065557462728,0.22177299058343278,0.6490307005627043)和Sms=<e,a,c,f,8,f,9,f,e,3,3,8,3,8,4,b,d,6,d,6,2,b,d,1,b,c,c,d,e,8,4,3,3,8,4,8,4,0,0,0,e,b,7,5,e,>1,f,8,4,9,b,3,4,6,f,9,8,6,f,5,c,5,b,1,7,b,d,9,3,d,7,4>按式(13)映射为Start0,0=2,将r0,0=0.8074591188295858和G3=3.959034310780014分别作为式(8)的初始值和系统参数μ,代入式(8)产生3l=18个随机数:RR0,RR1,…,RR17=(0.9449148662016962,0.20607075199800415,0.6477201726276501,0.9033675026117914,0.34560254552340136,0.8953808455114266,0.3708585285711293,0.9237317052103959,0.2789196761199095,0.7962547991700155,0.6422863853662152,0.9096062832505589,0.32552246160978554,0.8692360264487988,0.45000267198800836,0.9798620497390081,0.07812130097356845,0.28512317134166437)
其中前6个随机数按式(14)进行量化作为报数间隔序列Gap0,0=<4,1,2,5,0,0>,中间6个随机数按式(15)进行量化作为报数终值序列M0,0=<3,1,2,4,1,0>,最后6个随机数作为报数方向序列D0,0=<1,1,-1,-1,1,1>,其中IT=1000;
第11步:将Starti,j,Gapi,j,Mi.j和Di,j作为式(16)的控制参数,由式(16)按约瑟夫遍历映射产生l个元素的索引顺序序列Sindex=<ind0,ind1,…,indl-1>,indu∈{0,1,…,l-1},例如:将Start0,0=0,Gap0,0=<1,0,4,0,0,0>,M0,0=<3,6,3,3,1,4>和D0,0=<-1,1,-1,1,-1,-1>作为式(16)的控制参数,由式(16)按约瑟夫遍历映射产生l个元素的索引顺序序列Sindex=<4,3,1,5,0,2〉
第12步:记长度为l的基向量Gl=〈30,31,…,3l-1〉,记所构成的元素序列为按式(17)将Gl=置乱为Gl′,然后将秘密像素si,j按式(18)嵌入到Si,j中,记嵌入后的Si,j例如:记所构成的元素序列为S0,0=〈195,208,52,141,63,238〉,按式(17)将G6=〈1,3,9,27,81,243〉置乱为G6′=〈81,27,3,243,1,9〉,然后将秘密像素s0,0=48按式(18)嵌入到S0,0中,记嵌入后的S0,0为S′0,0=〈196,208,52,142,63,239〉
第12.1步:记Gl′=〈g0′,g1′,…,g′l-1>,按式(19)计算Si,j和Gl′内积值模3l,结果记为f:例如:记G6′=<81,27,3,243,1,9>,按式(19)计算S0,0=<195,208,52,141,63,238>和G6′=<81,27,3,243,1,9>内积值模3l=36=729,结果记为f=444:
第12.2步:将f与秘密像素si,j比较,若f=si,j,则si,j不变;否则按如下规则依次调整序列中每个元素按式(20)计算si,j和f差值模3l结果d,如果d<0,d=3l+d;
例如:将f与秘密像素si,j比较,f=444≠s0,0=48,按式(20)计算s0,0=48和f=444差值模3l=729,结果记为d=-396,d<0,则d=-396+729=333;
第12.3步:记序列Gl′中第k个元素indk∈Sindex,按式(21)计算f(k),按式(22)进行调整;例如:按式(21)计算f(0)=0,按式(22)进行调整:d=333>(81-1)/2=40,f(0)=0,所以按式(21)计算f(1)=2,按式(22)进行调整:d=333>(27-1)/2=13,f(1)=2,所以按式(21)计算f(2)=2,按式(22)进行调整:d=333>(3-1)/2=1,f(2)=2,所以按式(21)计算f(3)=0,按式(22)进行调整:d=333>(243-1)/2=121,f(3)=0,所以按式(21)计算f(4)=2,按式(22)进行调整:d=333>(1-1)/2=0,f(4)=2,所以按式(21)计算f(5)=0,按式(22)进行调整:d=333>(9-1)/2=4,f(5)=0,所以
第12.4步:反复执行第12.3步,直至序列中l个元素均调整完。
第13步:反复执行第12步,直至将秘密图像S=(si,j)2×3的所有像素嵌入到置乱后的公开图像中,其中k=0,1,…,l-1;例如:反复执行第12步,直至将秘密图像S=(si,j)2×3的所有像素嵌入到置乱后的公开图像中,如下所示:
第14步:对k=0,1,…,l-1按式(11)对应的逆映射式(22)进行恢复,从而将秘密图像S=(si,j)m×n隐藏到公开图像k=0,1,…,l-1中;例如:恢复后的嵌秘公开图像如下所示:
解密方法的具体实施步骤:
第1步:由用户输入已嵌入秘密信息的公开图像k=0,1,…,l-1,秘密图像的MD5值,SHA-1值,初始迭代次数It,用户密钥G1∈(0,1)和G3∈[3.57,4],迭代次数IT;
例如:由用户输入已嵌入秘密信息的公开图像k=0,1,…,5,如下所示:
初始迭代次数It=24,用户密钥G1=0.8378099125461247和G3=3.9590343107800142,迭代次数IT=1000;
第2步:将SMD5和SSHA-1奇数和偶数比特,按式(1)构造16进制序列Sms=<ms0,ms1,…,ms71>;
例如SMD5=<8,e,6,a,f,c,5,f,c,8,5,f,b,9,1,f,7,e,b,3,d,3,9,8,3,3,d,8,7,4,4,b>,SSHA-1=<d,4,6,0,d,0,6,0,2,e,b,b,d,7,1,5,b,e,c,1,c,f,d,8,e,4,8,9,4,b,3,3,3,4,8,6,4,f,8,9>,按式(1)构造16进制序列Sms=<e,a,c,f,8,f,9,f,e,3,3,8,3,8,4,b,d,6,d,6,2,b,d,1,b,c,c,d,e,8,4,3,3,8,4,8,4,0,0,0,e,b,7,5,e,>1,f,8,4,9,b,3,4,6,f,9,8,6,f,5,c,5,b,1,7,b,d,9,3,d,7,4>
第3步:按式(2)将Sms,SMD5,SSHA-1映射为初始值xinit和变换参数ainit,binit,然后将xinit作为同余映射方程式(3)的初始值x0,和ainit,binit一起迭代It-1次产生Sms元素索引位置序列Sx=<x0,x1,…,xIt-1>,从而按式(4)将Sms抽取为Sh=<h0,h1,…,hIt-1>;例如:按式(2)将Sms,SMD5,SSHA-1映射为初始值xinit=50和变换参数ainit=65,binit=19,其中It=24,用式(3)将序列Stemp=<0,1,…,23>映射为索引位置序列
Sx=<19,12,5,70,63,56,49,42,35,28,21,14,7,0,65,58,51,44,37,30,23,16,9,2>,按式(4)将Sms抽取为Sh=<6,3,15,7,1,8,9,7,8,14,11,4,15,14,11,15,3,14,0,4,1,13,3,12>;
第4步:将Sh=<h0,h1,…,hIt-1>中的元素按元素索引的奇偶性划分为奇数序列Sodd和偶数序列Seven,如式(5)和式(6)所示;将Sodd和Seven按式(7)转换为[3.57,4]范围内的10进制小数G0;例如:将Sh=<h0,h1,…,hIt-1>中的元素按元素索引的奇偶性划分为奇数序列Sodd=<3,7,8,7,14,4,14,15,14,4,13,12>和偶数序列Seven=<6,15,1,9,8,11,15,11,3,0,1,3>,将Sodd和Seven按式(7)转换为[3.57,4]范围内的10进制小数G0=3.7605406528711316;
第5步:将G0作为式(8)的系统参数μ,用户密钥G1∈(0,1)作为式(8)的初始值x0,在迭代时,将式(8)迭代的前IT次结果抛弃;例如:将G0=3.7605406528711316作为式(8)的系统参数μ,由用户给定G1=0.8378099125461247作为式(8)的初始值x0
第6步:将式(8)迭代产生的6个连续随机数依次记为l0,l1,l2,l3,l4,l5∈(0,1),按式(9)将l0,l1,l2,l3,l4,l5依次转换为(0,m)范围内的整数a,b,e和(0,n)范围内的整数c,d,f,并判断a,b,c,d是否满足式(10)的成立条件;
例如:将式(8)迭代产生的6个连续随机数依次记为(l0,l1,l2,l3,l4,l5)=(0.828922607430594,0.5332819628266784,0.9359696535160353,0.22537093573720954,0.6565109643247844,0.8480181554104381),按式(9)将l0,l1,l2,l3,l4,l5依次转换为[0,m)范围内的整数a=1,b=1,e=0和[0,n)范围内的整数c=2,d=2,f=0,计算不满足式(10)的成立条件;
第7步:反复执行第6步,直至生成l组a,b,c,d,e,f使得式(10)所对应的4个条件都成立,将这l组参数依次记为ak,bk,ck,dk,ek,fk,k=0,1,…,l-1;将ak,bk,ck,dk,ek,fk作为式(11)参数,利用式(11)将嵌入信息图像置乱为其中k=0,1,…,l-1;例如:生成的l=6组随机置乱系数依次记为a0=1,b0=0,c0=2,d0=2,e0=0,f0=0,a1=1,b1=0,c1=0,d1=2,e1=0,f1=2,a2=1,b2=1,c2=0,d2=2,e2=1,f2=1,a3=1,b3=0,c3=0,d3=1,e3=1,f3=1,a4=1,b4=0,c4=0,d4=2,e4=1,f4=2,a5=1,b5=0,c5=0,d5=1,e5=1,f5=2;
利用式(11)将嵌入信息图像置乱为
第8步:按式(12)将Sodd和Seven转换为(0,1)范围内的10进制小数G2,将G2和给定的密钥G3分别作为式(8)的初始值x0和系统参数μ,代入式(8)迭代产生m·n个随机数作为矩阵R=(ri,j)m×n,ri,j∈(0,1),在迭代时,同样将前IT次结果抛弃,其中IT≥0;例如:按式(12)将Sodd和Seven转换为(0,1)范围内的10进制小数G2=0.8657350626890548,由用户给定[3.57,4]范围内的随机数G3=3.9590343107800142,代入式(8)迭代产生2·3个随机数作为矩阵IT=1000;
第9步:将ri,j和G0分别作为式(8)的初始值和系统参数μ,代入式(8)产生9个随机数rr0,rr1,…,rr8,在迭代时,同样将前IT次结果抛弃,i=0,1,…,m-1,j=0,1,…,n-1;例如:将r0,0=0.8074591188295858和G0=3.7605406528711316分别作为式(8)的初始值和系统参数,代入式(8)产生9个随机数rr0,rr1,…,rr8=(0.8787863257169604,0.40057624797235264,,0.9029619087426863,0.3295049653089493,0.8308216734468824,0.5285703891771691,0.93
7065557462728,0.22177299058343278,0.6490307005627043);
第10步:将rr0,rr1,…,rr8和Sms=〈ms0,ms1,…,ms71〉按式(13)映射为Starti,j,将ri,j和G3分别作为式(8)的初始值和系统参数μ,代入式(8)产生3l个随机数:RR0,RR1,…,RR3l-1,其中前l个随机数按式(14)进行量化作为序列Gapi,j=〈Ga0,Ga1,…,Gal-1〉,中间l个随机数按式(15)进行量化作为序列Mi,j=〈mm0,mm1,…,mml-1>,最后l个随机数作为序列Di,j=<D0,D1,…,Dl-1>,在迭代时,同样将前IT次结果抛弃,其中IT≥0;
例如:rr0,rr1,…,rr8=(0.8787863257169604,0.40057624797235264,,0.9029619087426863,0.3295049653089493,0.8308216734468824,0.5285703891771691,0.937065557462728,0.22177299058343278,0.6490307005627043)和Sms=<e,a,c,f,8,f,9,f,e,3,3,8,3,8,4,b,d,6,d,6,2,b,d,1,b,c,c,d,e,8,4,3,3,8,4,8,4,0,0,0,e,b,7,5,e,>1,f,8,4,9,b,3,4,6,f,9,8,6,f,5,c,5,b,1,7,b,d,9,3,d,7,4>按式(13)映射为Start0,0=2,将r0,0=0.8074591188295858和G3=3.959034310780014分别作为式(8)的初始值和系统参数μ,代入式(8)产生3l=18个随机数:RR0,RR1,…,RR17=(0.9449148662016962,0.20607075199800415,0.6477201726276501,0.9033675026117914,0.34560254552340136,0.8953808455114266,0.3708585285711293,0.9237317052103959,0.2789196761199095,0.7962547991700155,0.6422863853662152,0.9096062832505589,0.32552246160978554,0.8692360264487988,0.45000267198800836,0.9798620497390081,0.07812130097356845,0.28512317134166437),其中前6个随机数按式(14)进行量化作为报数间隔序列Gap0,0=<4,1,2,5,0,0>,中间6个随机数按式(15)进行量化作为报数终值序列M0,0=<3,1,2,4,1,0>,最后6个随机数作为报数方向序列D0,0=<1,1,-1,-1,1,1>,其中IT=1000
第11步:将Starti,j,Gapi,j,Mi.j和Di,j作为式(16)的控制参数,产生l个元素的索引顺序序列Sindex;例如:将Start0,0=2,Gap0,0=<4,1,2,5,0,0>,M0,0=<3,1,2,4,1,0>和D0,0=<1,1,-1,-1,1,1>作为式(16)的控制参数,由式(16)按约瑟夫遍历映射产生l个元素的索引顺序序列Sindex=<4,3,1,5,0,2>;
第12步:记长度为l的基向量Gl=<30,31,…,3l-1>,按式(17)将Gl置乱为Gl′=<g0,g1,…,gl-1〉,记置乱后像素所构成的元素序列为按式(18)计算秘密像素值si,j;例如:按式(17)将G6=〈1,3,9,27,81,243〉置乱为G6′=〈81,27,3,243,1,9>,记置乱后像素所构成的元素序列为S0,0=<196,208,52,142,63,239>,按式(18)计算秘密像素值s0,0=48;
第13步:反复执行第12步,直至得到完整密图S=(si,j)m×n;例如:反复执行第12步,直至得到完整密图S=(si,j)2×3如下所示:
图10~图15是实施例,以图3~图8为公开图像,以图9为密图,按图1对应的分存流程得到嵌入密图后的公开载体图像,其中图10相对于图3的PSNR为49.90dB,图11相对于图4的PSNR为49.90dB,图12相对于图5的PSNR为49.89dB,图13相对于图6的PSNR=49.87dB,图14相对于图7的PSNR为49.89dB,图15相对于图8的PSNR为PSNR=49.91dB,因此嵌入掩体具备较高的视觉质量。
图16是实施例,按照图2重构流程,从图10~图15中提取出密图,相对于图9的误码率EBR为0%,因此密图可完全重构。

Claims (10)

1.一种基于EMD-3的多载体密图分存方法,其特征在于包括以下步骤:
第1步:输入待嵌入的p比特公开图像 输入待隐藏的q比特密图S=(si,j)m×n,si,j∈{0,1,…,2q-1-1},其中
第2步:记S的MD5值和SHA-1值分别为16进制序列SMD5=<m0,m1,…,m31>和SSHA-1=<s0,s1,…,s39>,由SMD5和SSHA-1奇数和偶数索引元素构造16进制序列Sms=<ms0,ms1,…,ms71>,从Sms抽取出It个元素构成序列Sh=<h0,h1,…,hIt-1>,其中It为[24,70]范围内的偶数;
第3步:将Sh划分为奇数序列Sodd和偶数序列Seven,然后将Sodd和Seven映射为10进制小数G0∈[3.57,4];
第4步:由G0和用户给定的密钥参数G1∈(0,1)产生(0,1)范围内的随机数,为消除暂态效应,将迭代的前IT>0次结果抛弃,从第IT次开始生成随机数;
第5步:将第4步生成的6个连续随机数l0,l1,l2,l3,l4,l5∈(0,1)映射为[0,m)范围内的随机整数a,b,e和[0,n)范围内的随机整数c,d,f,其中m,n对应为公开图像的大小;
第6步:反复执行第5步,直至筛选出可用于将公开图像置乱为置乱图像的l组置乱参数ak,bk,ck,dk,ek,fk,并将置乱为其中k=0,1,…,l-1;
第7步:由Sodd和Seven转换为10进制数G2∈(0,1)和用户给定的参数G3∈[3.57,4]生成m·n个随机数作为矩阵R=(ri,j)m×n,ri,j∈(0,1),在迭代时,同样将前IT>0次结果抛弃,从第IT次开始生成随机数;
第8步:利用ri,j和G0生成9个随机数rr0,rr1,…,rr8,在迭代时,同样将前IT>0次结果抛弃,从第IT次开始生成随机数,其中i=0,1,…,m-1,j=0,1,…,n-1;
第9步:将rr0,rr1,…,rr8和Sms映射为起始控制参数Starti,j∈[0,l-1],由ri,j和G3产生3l个随机数:RR0,RR1,…,RR3l-1,其中前l个随机数映射为报数间隔序列Gapi,j=<Ga0,Ga1,…,Gal-1>,Ga0,Ga1,…,Gal-1∈[0,l-1],中间l个随机数映射为报数终值序列Mi,j=<mm0,mm1,…,mml-1>,mm0,mm1,…,mml-1∈[0,l-1],最后l个随机数作为报数方向序列Di,j=<D0,D1,…,Dl-1>,D0,D1,…,Dl-1∈(0,1),在迭代时,同样将前IT>0次结果抛弃,从第IT次开始生成随机数;
第10步:将Starti,j,Gapi,j,Mi.j和Di,j作为控制参数产生l个元素的索引顺序序列Sindex=<ind0,ind1,…,indl-1>,indu∈{0,1,…,l-1};
第11步:记置乱图像对应位置元素构成的向量为Si,j,将长度为l的基向量Gl=<30,31,…,3l-1>置乱为G′l,结合G′l将秘密像素si,j嵌入到Si,j中;
第12步:反复执行第8步~第11步,直至将秘密图像S=(si,j)m×n的所有像素嵌入到置乱后的公开图像中,其中k=0,1,…,l-1;
第13步:对进行逆置乱,从而将秘密图像S=(si,j)m×n隐藏到公开图像中。
2.如权利要求1所述的一种基于EMD-3的多载体密图分存方法,其特征在于:在第2步中由SMD5和SSHA-1奇数和偶数索引元素构造16进制序列Sms=<ms0,ms1,…,ms71>的具体方法为式(1):
Sms=odd(SMD5)||even(SSHA-1)||odd(SSHA-1)||even(SMD5)=<smi>72 (1);
在第2步中从Sms抽取出It个元素构成序列Sh=<h0,h1,…,hIt-1>的具体方法为按式(2)将Sms,SMD5,SSHA-1映射为初始值xinit和变换参数ainit,binit,将xinit作为式(3)的初始值x0,按式(3)将序列Stemp=<0,1,…,It-1>映射为索引位置序列Sx=<x0,x1,…,xIt-1>,从而按式(4)由Sms抽取出Sh=<h0,h1,…,hIt-1〉;
式(2)中,函数adjust()为随机整数生成函数,用于以输入随机数为随机种子筛选得到(0,len(Sms))范围内的随机整数ainit且满足gcd(ainit,len(Sms))=1;
xn+1=(ainitxn+binit)modlen(Sms) (3)
Sh=Draw(Sms,Sx) (4)
式(4)中,Draw()为序列抽取函数,执行的功能是以Sx=<x0,x1,…,xIt-1〉中的元素为索引,将Sms中的第xi个元素msxi作为序列Sh的第i个元素hi,其中i=0,1,…,It-1。
3.如权利要求1所述的一种基于EMD-3的多载体密图分存方法,其特征在于:在第3步中将Sh划分为奇数序列Sodd和偶数序列Seven的具体方法为式(5):
在第3步中将Sodd和Seven映射为10进制小数G0∈[3.57,4]的具体方法为式(6),其中符号“\”表示整数除法:
在第4步中由G0和用户给定的密钥参数G1∈(0,1)产生(0,1)范围内的随机数的具体方法为式(7),其中G0为系统参数μ,G1为初始值;
xn+1=μxn(1-xn) (7);
在第5步中将第4步生成的6个连续随机数l0,l1,l2,l3,l4,l5∈(0,1)映射为[0,m)范围内的随机整数a,b,e和[0,n)范围内的随机整数c,d,f的具体方法为按式(8)将l0,l1,l2,l3,l4,l5依次转换为[0,m)范围内的整数a,b,e和[0,n)范围内的整数c,d,f:
在第6步中筛选出可用于将公开图像置乱为置乱图像的l组置乱参数ak,bk,ck,dk,ek,fk的具体方法为式(9):
式(9)中,“|”表示或,p=gcd(m,n)为m,n的最大公因子且m=pz1,n=pz2
4.如权利要求1所述的一种基于EMD-3的多载体密图分存方法,其特征在于:在第6步中将置乱为的具体方法为式(10):
在第13步中对进行逆置乱的具体方法为式(22):
5.如权利要求1所述的一种基于EMD-3的多载体密图分存方法,其特征在于:在第7步中由Sodd和Seven转换为10进制数G2∈(0,1)的具体方法为式(11):
在第7步中生成m·n个随机数作为矩阵R=(ri,j)m×n,ri,j∈(0,1)的具体方法为式(7),其中G2为初始值,G3为系统参数μ;
在第7步中利用ri,j和G0生成9个随机数rr0,rr1,…,rr8的具体方法为式(7),其中ri,j为初始值,G0为系统参数;
在第9步中将rr0,rr1,…,rr8和Sms映射为起始控制参数Starti,j∈[0,l-1]的具体方法为式(12);
在第9步中由ri,j和G3产生3l个随机数:RR0,RR1,…,RR3l-1的具体方法为式(7),其中ri,j为初始值,G3为系统参数;
在第9步中前l个随机数映射为报数间隔序列Gapi,j=<Ga0,Ga1,…,Gal-1>,Ga0,Ga1,…,Gal-1∈[0,l-1]的具体方法为式(13):
在第9步中,中间l个随机数按式(15)进行量化作为报数终值序列Mi,j=<mm0,mm1,…,mml-1>,mm0,mm1,…,mml-1∈[0,l-1]的具体方法为式(14):
6.如权利要求1所述的一种基于EMD-3的多载体密图分存方法:在第10步中将Starti,j,Gapi,j,Mi.j和Di,j作为控制参数产生l个元素的索引顺序序列Sindex=<ind0,ind1,…,indl-1>,indu∈{0,1,…,l-1}的具体方法为式(15):
Sindex=fJosephus(l,Starti,j,Gapi,j,Mi,j,Di,j) (15)
式(15)中,函数fJosephus()为约瑟夫遍历的映射函数,用于按约瑟夫遍历映射中的报数先后顺序产生l个元素的索引顺序序列Sindex,其具体执行的功能是以Starti,j作为报数起始位置索引,进行l次间隔报数,由Gapi,j序列中的第u个元素Gau确定第u次间隔报数跳过的元素数,由Di,j序列中的第u个元素Du确定第u次报数的报数方向,其中Du≥0.5为顺时针,反之为逆时针,由Mi.j序列中的第u个元素mmu确定第u次报数终止值,将报数终止值对应的索引位置作为Sindex的第u个元素indu并剔除该索引位置,其中u=0,1,…l-1。
7.如权利要求1所述的一种基于EMD-3的多载体密图分存方法,其特征在于:在第11步中将长度为l的基向量Gl=<30,31,…,3l-1>置乱为G′l的具体方法为式(16):
式(16)中,gk=3k,即将Gl中的第k个元素映射到索引顺序序列Sindex第k个元素对应的位置;
在第11步中结合G′l将秘密像素si,j嵌入到Si,j中的具体方法为式(17):
S′i,j=EMD(si,j,Si,j,G′l) (17);
式(17)中,函数EMD()用于通过调整置乱图像对应位置元素构成的向量Si,j来嵌入秘密元素si,j,基向量G′l中的每个元素则对应为Si,j中的每个元素的权重。
8.如权利要求7所述的一种基于EMD-3的多载体密图分存方法,其特征在于:在第11步中式(17)的具体实现方法为在于包括以下步骤:
第11.1步:记G′l=<g′0,g′1,…,g′l-1>,按式(18)计算Si,j和G′l内积模3l值:
第11.2步:将f与秘密像素si,j比较,若f=si,j,则不变,否则按式(19)计算si,j和f模3l差值d,如果d<0,d=3l+d;
d=(si,j-f)mod3l (19);
第11.3步:记序列G′l中第k个元素indk∈Sindex,按式(20)计算f(k),按式(21)进行调整:
式(21)中,函数功能为:若则调整继续按式(20)计算f(k),重新按式(21)进行调整;若则调整继续按式(20)计算f(k),重新按式(21)进行调整;
第11.4步:反复执行第11.3步,直至序列中l个元素均调整完毕。
9.一种基于EMD-3的多载体密图重构方法,其特征在于包括以下步骤:
第1步:由用户输入嵌入秘密信息的公开图像待提取秘密图像S对应的MD5值SMD5=<m0,m1,…,m31>和SHA-1值SSHA-1=<s0,s1,…,s39>,抽取元素数It∈[24,70],Itmod2=0和用户密钥G1∈(0,1),G3∈[3.57,4]以及消除暂态效应的滤除迭代次数IT>0;
第2步:由SMD5和SSHA-1构造16进制序列Sms=<ms0,ms1,…,ms71>,从Sms抽取出It个元素构成序列Sh=<h0,h1,…,hIt-1>;
第3步:将Sh划分为奇数序列Sodd和偶数序列Seven,然后将Sodd和Seven映射为10进制小数G0∈[3.57,4];
第4步:由G0和用户给定的密钥参数G1产生(0,1)范围内的随机数,为消除暂态效应,将迭代的前IT>0次结果抛弃,从第IT次开始生成随机数;
第5步:将第4步生成的6个连续随机数l0,l1,l2,l3,l4,l5∈(0,1)映射为[0,m)范围内的随机整数a,b,e和[0,n)范围内的随机整数c,d,f;
第6步:反复执行第5步,直至筛选出可用于将用于将公开图像置乱为置乱图像的l组置乱参数ak,bk,ck,dk,ek,fk,并将置乱为其中k=0,1,…,l-1;
第7步:由Sodd和Seven转换的10进制数G2∈(0,1)和用户给定的参数G3生成m·n个随机数作为矩阵R=(ri,j)m×n,ri,j∈(0,1),在迭代时,同样将前IT>0次结果抛弃,从第IT次开始生成随机数;
第8步:利用ri,j和G0生成9个随机数rr0,rr1,…,rr8,在迭代时,同样将前IT>0次结果抛弃,从第IT次开始生成随机数,其中i=0,1,…,m-1,j=0,1,…,n-1;
第9步:将rr0,rr1,…,rr8和Sms映射为起始控制参数Starti,j∈[0,l-1],由ri,j和G3产生3l个随机数:RR0,RR1,…,RR3l-1,其中前l个随机数映射为报数间隔序列Gapi,j=<Ga0,Ga1,…,Gal-1>,Ga0,Ga1,…,Gal-1∈[0,l-1],中间l个随机数映射为报数终值序列Mi,j=<mm0,mm1,…,mml-1>,mm0,mm1,…,mml-1∈[0,l-1],最后l个随机数作为报数方向序列Di,j=<D0,D1,…,Dl-1>,D0,D1,…,Dl-1∈(0,1),在迭代时,同样将前IT>0次结果抛弃,从第IT次开始生成随机数;
第10步:将Starti,j,Gapi,j,Mi.j和Di,j作为控制参数产生l个元素的索引顺序序列Sindex=<ind0,ind1,…,indl-1>,indu∈{0,1,…,l-1};
第11步:将长度为l的基向量Gl=<30,31,…,3l-1>置乱为G′l,结合G′l从Si,j中提取出秘密像素值si,j
第12步:反复执行第8步~第11步,直至得到完整密图S=(si,j)m×n
10.如权利要求9所述的一种基于EMD-3的多载体密图重构方法,其特征在于:在第11步中从Si,j中提取出秘密像素值si,j的具体方法按式(18)计算出f,然后将f作为提取出的si,j
CN201611004928.2A 2016-11-11 2016-11-11 一种基于emd-3的多载体密图分存和重构方法 Active CN106600517B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611004928.2A CN106600517B (zh) 2016-11-11 2016-11-11 一种基于emd-3的多载体密图分存和重构方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611004928.2A CN106600517B (zh) 2016-11-11 2016-11-11 一种基于emd-3的多载体密图分存和重构方法

Publications (2)

Publication Number Publication Date
CN106600517A CN106600517A (zh) 2017-04-26
CN106600517B true CN106600517B (zh) 2019-06-11

Family

ID=58591078

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611004928.2A Active CN106600517B (zh) 2016-11-11 2016-11-11 一种基于emd-3的多载体密图分存和重构方法

Country Status (1)

Country Link
CN (1) CN106600517B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108171665B (zh) * 2017-12-27 2021-11-02 陕西师范大学 一种多版本备份和限制性双重认证主密钥(t,s,k,n)图像分存方法
CN108717683B (zh) * 2018-05-16 2022-03-29 陕西师范大学 一种结合密钥和随机正交张量基的密图伪装恢复方法
CN109447886B (zh) * 2018-10-08 2023-04-11 陕西师范大学 结合emd-21嵌入的带恢复多载体密图分存方法
CN109194846B (zh) * 2018-10-08 2020-05-12 陕西师范大学 一种基于复杂度的EMD(n,m,δ)自适应图像密写方法
CN110430337B (zh) * 2019-08-02 2021-07-23 陕西师范大学 图像伪装及图像恢复的方法、设备和存储介质
CN111709867B (zh) * 2020-06-10 2022-11-25 四川大学 基于新型全卷积网络的等模矢量分解图像加密分析方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101533506B (zh) * 2009-04-24 2012-01-04 西安电子科技大学 一种鲁棒性的图像双水印方法
CN103413269A (zh) * 2013-08-20 2013-11-27 宁波大学 一种图像隐写方法和秘密信息提取方法
KR20150025594A (ko) * 2013-08-29 2015-03-11 삼성전자주식회사 멀티 이미지 레이어 컴포지트 방법
CN104200424B (zh) * 2014-08-29 2017-05-10 陕西师范大学 基于差值变换的(k,n)有意义图像分存及恢复方法
CN104881838B (zh) * 2015-05-28 2018-02-13 陕西师范大学 一种基于gf(23)的(k,n)有意义无扩张图像分存和重构方法
CN105761198B (zh) * 2016-02-24 2019-03-05 陕西师范大学 一种动态概率和空频域复合的图像选择性加密和解密方法

Also Published As

Publication number Publication date
CN106600517A (zh) 2017-04-26

Similar Documents

Publication Publication Date Title
CN106600517B (zh) 一种基于emd-3的多载体密图分存和重构方法
CN106600518B (zh) 基于压缩感知的视觉安全和数据安全的图像加密、解密方法
Lin et al. Invertible secret image sharing with steganography
CN105847629B (zh) 一种加密图像的可逆信息隐藏方法
CN104200424B (zh) 基于差值变换的(k,n)有意义图像分存及恢复方法
CN106530368B (zh) 一种素数域多门限渐进秘密图像分存及重构方法
CN105590297B (zh) 基于gf(27)有限域和双重认证的有意义(k,n)图像分存重构方法
CN104574262B (zh) 一种扩展可视加密和解密方法
CN104881838B (zh) 一种基于gf(23)的(k,n)有意义无扩张图像分存和重构方法
Chang et al. A sudoku-based secret image sharing scheme with reversibility
CN107846530A (zh) 数字水印算法
CN103020496A (zh) 一种数学水印加密实现方法
CN108985082B (zh) 一种基于数字水印的医学图像加密方法
CN106408503A (zh) 面向数字作品分级权益管理的免疫图像数字水印方法
Singh et al. A recent survey on data hiding techniques
CN109447886B (zh) 结合emd-21嵌入的带恢复多载体密图分存方法
CN104702814B (zh) 基于三重备份的(k,n)有意义图像分存及恢复方法
Lee et al. A new steganographic method based on information sharing via PNG images
Nadiya et al. Image steganography in DWT domain using double-stegging with RSA encryption
CN109543425B (zh) 一种基于张量分解的图像数据隐藏方法
CN105719226B (zh) 一种结合非重叠分块和等频带融合的水印嵌入及提取方法
CN111159747B (zh) 一种采用正弦对折与平移实现图像加密与还原的方法
Sengupta et al. Self authentication of color images through discrete cosine transformation (SADCT)
CN104408682B (zh) 一种基于相息图的彩色水印的制备方法
CN109190392B (zh) 一种随机尺寸分割结构化相位板的图像加密与解密方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant