[发明专利]基于像素差值编码的密文域图像的可逆数据隐藏方法有效
申请号: | 202010868474.3 | 申请日: | 2020-08-26 |
公开(公告)号: | CN111970507B | 公开(公告)日: | 2022-02-18 |
发明(设计)人: | 陈志立;周旭;吴福虎 | 申请(专利权)人: | 安徽大学 |
主分类号: | H04N19/122 | 分类号: | H04N19/122;H04N19/176;H04N19/467;H04N19/69;H04L9/06 |
代理公司: | 安徽省合肥新安专利代理有限责任公司 34101 | 代理人: | 陆丽莉;何梅生 |
地址: | 230601 安*** | 国省代码: | 安徽;34 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 像素 差值 编码 密文域 图像 可逆 数据 隐藏 方法 | ||
1.一种基于像素差值编码的密文域图像的可逆数据隐藏方法,其特征是按如下步骤进行:
步骤1、设定原始灰度图像I0的长和宽为M×N,然后将原始灰度图像I0按s×s的尺寸进行分块,从而得个图像块;计算第j个图像块的中间像素分别与第j个图像块中其他像素的差值,并选出绝对值最大的差值,记为
步骤2、利用伪随机数生成加密密钥ke={ke(1),ke(2)},其中,ke(1)表示第一个二值伪随机序列,所述第一个二值伪随机序列ke(1)的长度Len等于ke(2)表示第二个二值伪随机序列,并由Len个子密钥ke(2,1),ke(2,2),...,ke(2,j),...,ke(2,Len)组成;其中,ke(2,j)表示第二个二值伪随机序列ke(2)中第j个子密钥,且每个子密钥的长度等于s×s;j∈[1,Len];
利用第一个二值伪随机序列ke(1)对每个图像块进行置乱操作;再利用第二个二值伪随机序列ke(2)对第j个图像块内除中间像素之外的其余像素进行置乱操作,从而得到加密图像IE;
步骤3、图像的密文域可逆数据隐藏;
步骤3.1、定义差值阈值,并将所述加密图像IE的绝对值最大的差值中大于所述差值阈值的图像块作为不可嵌入块;再根据其余图像块中绝对值最大的差值,对其余的图像块进行分类,得到分类后的第j个图像块记为Bj;
步骤3.2、将所述加密图像IE中所有图像块的十进制像素值转换成二进制像素值,记为Bin;
步骤3.3、依次对所述加密图像IE的二进制像素值Bin中分类后的第j个图像块的二进制像素值Binj按照从上到下,从左到右的顺序,用m位二进制标识位来替换除第j个图像块的二进制像素值Binj的中间像素之外的前m个二进制像素值的最低二进制位;从而对分类后的第j个图像块的二进制像素值Binj的类型进行标记;
步骤3.4、判断所述加密图像IE的二进制像素值Bin中分类后的第j个图像块的二进制像素值Binj是否是不可嵌入块,若是,则执行步骤3.5和步骤3.12,否则,执行从步骤3.6顺序执行;
步骤3.5、按照替换顺序依次保留替换前的第j个图像块的二进制像素值Binj的m位二进制位;并将所有不可嵌入块中替换前的m位二进制位按照顺序排列后,作为长度为q的辅助信息,记为A;
步骤3.6、利用式(1)计算分类后的第j个图像块的二进制像素Binj中,除中间像素之外的其余每个二进制像素的前N位的位数N,并将前N位用中间像素与当前像素p_bini差值的绝对值来表示,i∈[1,s2]且i≠mid;如果中间像素与当前像素p_bini的差值不为0,第N+1位表示符号位,若差值为0,则不表示符号位,从而得到处理后的第j个图像块
步骤3.7、生成一个新的二值空序列,令二值空序列的第1位至第q位等于所述辅助信息A,令二值空序列的第q+1位至第q+g位等于长度为g的初始秘密信息,从而将二值空序列转换为待嵌入的长度为q+g的隐秘信息B;
步骤3.8、利用伪随机数生成数据隐藏密钥kd,且kd的长度与所述隐秘信息B的长度一致;然后利用数据隐藏密钥kd中的每位信息对所述隐秘信息B进行按位异或加密操作,从而得到加密隐秘信息Be;
步骤3.9、扫描所述处理后的第j个图像块保持中间像素不变,其余第i个像素p_bini按照从上到下,从左到右的顺序依次读取每个像素的前N位;
若当前第i个像素p_bini的前N位均为0,则从当前像素p_bini的第N+1位开始嵌入加密隐秘信息
若当前第i个像素p_bini的前N位不全为0,则从当前像素p_bini的第N+2位开始嵌入加密隐秘信息
步骤3.10、若当前第i个像素p_bini在第j个图像块内读取顺序i≤m,则数据嵌入到当前像素p_bini的第7位为止,从而得到嵌入后的第j个图像块记为
步骤3.11、若当前第i个像素p_bini在第j个图像块内读取顺序im,则数据嵌入到当前像素p_bini的第8位为止,从而得到嵌入后的第j个图像块记为
步骤3.12、按照顺序依次不可嵌入块与嵌入后的第j个图像块的二进制像素值转换成十进制像素值;从而得到含隐秘信息的加密图像Iem;
步骤4、重构原始图像,包括:秘密信息提取和图像恢复;
当接收端仅有加密密钥ke时,仅执行步骤4.1;
当接收端仅有数据隐藏密钥kd时,仅执行步骤4.2;
当接收端既有数据隐藏密钥kd,又有加密密钥ke时,仅执行4.3;
步骤4.1、图像解密:
步骤4.1.1、含隐秘信息的加密图像Iem的长和宽为M×N,按s×s的尺寸进行分块,从而得个图像块;
将加密图像Iem中所有图像块的十进制像素值转换成二进制像素值并按照顺序读取每个图像块的二进制像素值;
其中,第j个图像块的二进制像素值中,首先读取除中间像素之外图像块内前m像素的最低二进制位,从而得到当前图像块的类型,确定当前图像块中的范围,然后利用式(1)得到位数N;
若当前第j个图像块为不可嵌入块,则直接执行步骤4.1.4;否则,顺序执行步骤4.1.2;
步骤4.1.2、依次读取加密图像Iem的二进制像素值的图像块,第j个图像块的二进制像素值中,首先读取中间像素然后依次读取除中间像素以外的第i个像素p_emi的前N位:
若当前第i个像素p_emi的前N位全为0,则令当前第i个像素p_emi的值等于中间像素的值;从而得到赋值后的第j个图像块记为
若当前第i个像素p_emi前N位不全为0,令临时变量dif等于当前第i个像素p_emi前N位像素值的十进制数;读取当前第i个像素p_emi的第N+1位,根据第N+1位的符号位确定加减号,令当前第i个像素p_emi的值等于中间像素的值相应加减临时变量dif;从而得到赋值后的第j个图像块记为
步骤4.1.3、利用伪随机数生成两个二值伪随机序列{ke(4),ke(5)},其中ke(4)表示第四个二值伪随机序列,ke(5)表示第五个二值伪随机序列;其中第四个二值伪随机序列与第一个二值伪随机序列ke(1)相同,第五个二值伪随机序列和第二个二值伪随机序列ke(2)相同;
步骤4.1.4、利用第五个二值伪随机序列ke(5)对不可嵌入块所述赋值后的第j个图像块的块内像素进行逆置乱操作,然后,利用第四个二值伪随机序列ke(4)对所有图像块进行置乱操作;从而完成所有图像块的二进制像素值转换成十进制像素值,并得到载密恢复图像I’;
步骤4.2、数据提取:
步骤4.2.1、含隐秘信息的加密图像Iem的长和宽为M×N,按s×s的尺寸进行分块,从而得个图像块;
将加密图像Iem中所有图像块的十进制像素值转换成二进制像素值并按照顺序读取每个图像块的二进制像素值;
其中,第j个图像块的二进制像素值中,首先读取除中间像素之外图像块内前m像素的最低二进制位,从而得到当前图像块的类型,确定当前图像块中的范围,然后利用式(1)得到位数N;
若当前图像块为不可嵌入块,则终止执行当前图像块,继续执行下一个图像块;
步骤4.2.2、按照顺序依次读取每个图像块,第j个图像块中,首先读取中间像素然后依次读取除中间像素以外的第i个像素p_di的前N位;
若当前第i个像素p_di的前N位均为0,则从第N+1位开始提取数据;
若当前第i个像素p_di的前N位不全为0,则从第N+2位开始提取数据;
步骤4.2.3、若当前第i个像素p_di在块内顺序i≤m,则数据提取到当前像素p_di的第7位为止;
若当前第i个像素p_di在块内顺序im,则数据提取到当前像素p_di的第8位为止;
步骤4.2.4、利用伪随机数生成数据隐藏密钥kd;
步骤4.2.5、利用数据隐藏密钥kd中的每位信息对步骤4.2.2-步骤4.2.4提取的数据进行按位异或解密,得到解密信息B’,解密信息B’与隐秘信息B完全相同,提取B’的第1位到第q位,即为辅助信息A,提取B’的第q+1位到q+g位,即为长度为g的初始秘密信息;
步骤4.3、数据提取与图像恢复:
步骤4.3.1、依次执行步骤4.1.1-步骤4.1.4得到载密恢复图像I’,依次执行步骤4.2.1-步骤4.2.5,得到长度为g的初始秘密信息以及辅助信息A;
步骤4.3.2、按照提取顺序依次将所有不可嵌入块的前m像素的最低二进制位替换为A中的二进制位,得到恢复图像IR,且恢复图像IR与原始灰度图像I0完全相同。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于安徽大学,未经安徽大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010868474.3/1.html,转载请声明来源钻瓜专利网。