[发明专利]一种基于秘密共享和混沌映射的PNG图像信息隐藏和恢复方法有效
申请号: | 202110375292.7 | 申请日: | 2021-04-08 |
公开(公告)号: | CN113194213B | 公开(公告)日: | 2022-05-20 |
发明(设计)人: | 吕皖丽;吴思远;孙小溪;余维湘 | 申请(专利权)人: | 安徽大学 |
主分类号: | H04N1/32 | 分类号: | H04N1/32;H04L9/00;G06F21/64;G06F21/62;G06F21/60 |
代理公司: | 南京华恒专利代理事务所(普通合伙) 32335 | 代理人: | 宋方园 |
地址: | 230601 安徽省合*** | 国省代码: | 安徽;34 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 秘密 共享 混沌 映射 png 图像 信息 隐藏 恢复 方法 | ||
1.一种基于秘密共享和混沌映射的PNG图像信息隐藏方法,其特征在于:包括以下步骤:
S1、输入原始文本信息M和载体PNG图像P;
S2、对原始文本信息M进行预处理,得到加密的二进制字符串u’_bit;其中预处理方法为:
S2.1、输入原始文本信息M,原始文本信息M的长度为length;
S2.2、将原始文本信息M根据Unicode编码标准转换成二进制字符串,且对于原始文本信息M中的每个字符,如果该字符转换成二进制串时不满16位,则高位补0扩展至16位二进制字符串;
S2.3、将步骤S2.2所得所有二进制字符串按顺序拼接组合为二进制字符串组u_bit,令u_bit=u(x,y),u(x,y)表示二进制字符串组中第x个文字的第y个编码值,x代表文字序号,x∈[1,length],y代表字符编码位,y∈[1,16],u为编码值,其值为0或1;
S2.4、输入一个9位以下的十进制密钥k1,将密钥k1转换成二进制并高位补0扩展至32位二进制字符串,记为函数v=v(z),z为编码位,z∈[1,32];v为编码值,其值为0或1;
S2.5、将步骤S2.3所得u(x,y)通过v(z)进行迭代异或运算,得到加密后的二进制字符串为u’_bit,记u’_bit为u’(x,y),则:
其中,为异或运算符,至此,得到加密后的二进制字符串u’_bit;
S3、构造Shamir秘密共享多项式携带原始文本信息M做散列变换,得到字符串数据串H(xi);具体过程为:
S3.1、输入加密后的二进制字符串u’_bit;
S3.2、将u’_bit划分成长为8bit的数据段si,即u’_bit=s1s2s3s4…sf,0≤si≤255,si表示第i个8bit数据段,其中f示数据段的数量,f=len(u’_bit)/8;
S3.3、生成Shamir多项式H(x)=(M+a1x+a2x2+…+af-1xf-1)mod p;
其中,p=257;M=s1,a1=s2,a2=s3,…,af-1=sf;x1=1,x2=2,x3=3,…,xf=f;
S3.4、计算H(xi)的值;
H(x1)=(s1+s2x1+s3x12+…+sfx1f-1)mod p,x1=1;
H(x2)=(s1+s2x2+s3x22+…+sfx2f-1)mod p,x2=2;
H(x3)=(s1+s2x3+s3x32+…+sfx3f-1)mod p,x3=3;
…
H(xf)=(s1+s2xn+s3xn2+…+sfxff-1)mod p,xf=f;
H(xi)∈[0,256];
S3.5、输出数据串H(xi);
S4、使用S盒映射Shamir秘密共享多项式系数值,得到字符串数据串H’(xi);
S5、将多项式嵌入到载体PNG图像P的Alpha通道中,得到新载体图像P’;
S6、对新载体图像P’的Alpha通道的秘密信息进行置乱保护,包括像素位置间置乱和像素比特间置乱;
其中,所述像素位置间置乱的详细过程如下:
像素位置间置乱;
步骤H1:将大小为m*n的原图像矩阵Z转换为一维序列Z’={Z’1,Z’2,......,Z’m*n},长度为m*n;
步骤H2:随机取两个区间在(0,1)的值得到密钥s和密钥k3,k3作为初值代入Tent映射公式(1),迭代计算产生一个长度为m*n+1000的序列并舍弃前1000个迭代值,得到一个长度为m*n的序列S={S1,S2,......,Sm*n};
Tent映射方法:
其中,s∈(0,1),初值x0∈(0,1);
步骤H3:将序列S按从小到大的顺序排列,用序列S’={s’1,s’2,......,s’m*n}记录排序后对应点在原序列S中的位置;
步骤H4:将Z’按照式(3)进行位置上的置乱,得到置乱后的序列G={G1,G2,......,Gm*n};
所述像素比特间置乱的详细内容为:
步骤I1:将像素位置上置乱后的序列G转化为8位二进制数,每4位为一组,每组作为一个元素,共2mn组,得到一个元素个数为2mn的序列E;
步骤I2:随机取一个区间在(3.57,4]的值作为密钥u,再取两个区间在(0,1)的值作为密钥k4,k5;k4,k5作为初值代入Logistic映射公式(2),分别迭代计算2mn+1000次并舍弃前1000个值产生两个长度为2mn的序列I和序列J;
Logistic:映射方法为:
xn+1=uxn(1-xn) (2)
其中,u∈(3.57,4],初值x0∈(0,1);
步骤I3:将序列I每4位按从小到大的顺序排列,用序列I’记录排序后对应点在原序列中的位置,得到序列I’,并对序列J进行同样操作得到J’;
步骤I4:初始化一个大小为4*4的矩阵K,根据I’中的每4个为一单位的排序结果对K的每一列进行赋值,再根据J’中每4个为一单位的排序结果对K中的元素进行打乱,使其每一行每一列都含有1,2,3,4;
步骤I5:对于大小为2mn的序列E,每次处理4个元素,即4组4位二进制,每组一行,形成4*4的矩阵O,然后根据矩阵K将序列E中的4个元素进行像素比特间置乱;
步骤I6:重复步骤I4-I5,以4*4大小为单位,按顺序置乱E中的元素直至所有元素均被置乱;
步骤I7:将每次置乱后得到的矩阵R进行整合,整合成与E格式一致的序列,再将每两个元素作为一个8位二进制数,分别转换为十进制,得到一个长度为mn的十进制序列,再转换为m*n的矩阵。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于安徽大学,未经安徽大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110375292.7/1.html,转载请声明来源钻瓜专利网。