一种基于EMD-3的多载体密图分存和重构方法与流程

文档序号:17881550发布日期:2019-06-13 10:44阅读:来源:国知局

技术特征:

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:

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