1.一种加密图像可逆信息隐藏方法,其特征在于,包括以下子步骤:S1、获取原始图像,选取参考像素并通过原始图像生成对应的预测误差图;
S2、根据预测误差图生成霍夫曼编码表,具体为
S2‑1、统计预测误差图中各个预测误差值出现的概率,并按照霍夫曼编码表构造规则对其进行处理,生成初始霍夫曼编码表;
S2‑2、获取初始霍夫曼编码表中各编码的长度,并按照编码长度对初始霍夫曼编码表进行排序,得到有序霍夫曼编码表;
S2‑3、根据有序霍夫曼编码表中的编码长度对编码进行分类;
S2‑4、获取安全强度因子,计算临界编码长度;
S2‑5、提取分类中编码长度小于临界编码长度的编码,并统计编码长度小于临界编码长度的各类编码个数;
S2‑6、获取时间戳,生成时间密钥,选取提取后的编码中最短编码长度为初始编码长度;
S2‑7、将时间密钥与初始编码长度相加作为种子,通过置乱序列生成函数randperm(len1,seed1)生成与类别中编码个数相等长度的类内置乱序列后,对类别中的编码进行置乱,从初始编码长度开始直到所有小于临界编码长度的编码完成置乱,即完成类内置乱;其中len1为置乱序列长度,seed1为种子;
S2‑8、统计分类中编码长度大于等于临界编码长度的编码个数,并将时间密钥与临界编码长度之和作为种子,分类中大于等于临界编码长度的编码个数作为置乱序列长度输入置乱序列生成函数,得到类间待置乱序列;
S2‑9、在有序霍夫曼编码表中提取编码长度大于等于临界编码长度的编码,并将类间待置乱序列中相邻的两个编码分为一组;
S2‑10、按照类间待置乱序列从前到后的顺序,通过相邻的两个编码对应预测误差值出现的次数计算相邻的两个编码产生的模拟增长量linc;
其中linc=l1n1+l2n1‑(l1n1+l2n2),l1和l2分别为相邻的两个编码的长度,n1和n2分别为相邻的两个编码对应预测误差值在预测误差图出现的次数;
S2‑11、判断当前模拟增长量是否小于等于由时间密钥生成的阈值,若是则将相邻的两个编码进行置乱,且用阈值减去模拟增长量;否则相邻的两个编码和阈值均保持不变;直到完成类间置乱;
S2‑12、将进行类内置乱后的编码和类间置乱后的编码进行结合,得到霍夫曼编码表;
S3、获取并基于加密密钥,通过预测误差图中的预测误差值和霍夫曼编码表进行类内偏移编码,生成压缩编码流;
S4、组成辅助数据,并通过DES加密生成加密辅助数据;
S5、将压缩编码流和加密辅助数据结合为原始流,并获取原始流长度,由原始流长度与加密密钥生成特征密钥后,对原始流加密构成加密图像;
S6、获取隐藏密钥和与加密图像相关的秘密数据,通过隐藏密钥对加密图像相关的秘密数据进行加密,通过加密的秘密数据和位替换的数据嵌入方式将加密图像处理成载密图像。
2.根据权利要求1所述的加密图像可逆信息隐藏方法,其特性在于,步骤S1的具体方法为:S1‑1、获取原始图像,选取一个像素作为参考像素并将其预测误差值设置为0;
S1‑2、采用预测方法对其余像素求取预测误差值,得到与原始图像对应的预测误差图。
3.根据权利要求1所述的加密图像可逆信息隐藏方法,其特性在于,步骤S2‑4中计算临界编码长度的具体方法为:根据公式:
得到临界编码长度llim,其中 为向下取整操作,log2为以2为底的对数,α为安全强度因子,W为原始图像的行数,H为原始图像的列数。
4.根据权利要求1所述的加密图像可逆信息隐藏方法,其特性在于,步骤S3的具体方法为:S3‑1、获取加密密钥,以加密密钥作为种子,根据随机偏移序列生成函数rand(len2,seed2,advance)生成长度为原始图像行数乘以原始图像列数的十进制随机偏移序列,并根据霍夫曼编码表中的编码长度对编码表进行分类;其中len2为偏移序列长度,seed2为加密密钥种子,advance为进制数;
S3‑2、在分类后的霍夫曼编码表中寻找误差值与预测误差图中的预测误差值相同时对应编码的编码长度;
S3‑3、确定寻找得到的编码长度的类别中包含的误差值和编码个数,并通过tm=mod(rm,nk)公式,将十进制随机偏移序列中的随机数rm计算为实际偏移值tm;其中mod(·)为取余操作,nk为寻找得到的编码长度的类别中的编码个数,1≤m≤W×H,W为原始图像的行数,H为原始图像的列数;
S3‑4、在寻找得到的编码长度的类别中寻找误差值与预测误差图中的预测误差值相同时的序号,结合实际偏移值确定预测误差图中的预测误差值对应的编码;
S3‑5、将预测误差图中的预测误差值对应的编码依次连接生成压缩编码流。
5.根据权利要求1所述的加密图像可逆信息隐藏方法,其特性在于,步骤S5的具体方法为:S5‑1、将加密辅助数据的长度除以64并处理成二进制数据,将二进制数据、加密辅助数据和压缩编码流组合成原始流;
S5‑2、根据原始流的长度和预留空间长度计算加密图像的行数和实际预留空间的长度;
S5‑3、将原始流、实际预留空间和实际预留空间长度的二进制形式组合构成总比特流;
S5‑4、获取特征密钥,并以特征密钥作为种子,通过随机值生成函数rand(len3,seed3,
10)生成长度为1的十进制随机值,且随机值大小在实际预留空间长度范围内;其中len3=
1,seed3为特征密钥种子;
S5‑5、并根据随机序列生成函数rand(len4,seed3,2)生成长度为原始流长度加上十进制随机值的二进制随机序列,即随机比特流,并对总比特流进行加密;其中特征密钥Key=Hash(Ke,ls),Hash(·)为哈希函数,Ke为加密密钥值,ls为原始流的长度;其中len4为原始流长度与十进制随机值之和;
S5‑6、将加密后的总比特流构造为8个大小为加密图像的行数乘以原始图像的列数的位平面,并组合生成加密图像。
6.根据权利要求5所述的加密图像可逆信息隐藏方法,其特性在于,步骤S5‑2的具体方法为:S5‑2‑1、根据公式:
得到加密图像的行数W′;ls为原始流的长度,lτ为预留空间的长度,log2为以2为底的对数,W为原始图像的行数,H为原始图像的列数;
S5‑2‑2、根据公式:
得到实际预留空间的长度 。
7.根据权利要求1所述的加密图像可逆信息隐藏方法,其特性在于,步骤S6的具体方法为:S6‑1、通过加密图像最后log2(W′×H×8)位存储的实际预留空间长度确定加密图像中实际预留空间的大小和位置;log2为以2为底的对数,W′为加密图像的行数,H为原始图像的列数;
S6‑2、获取隐藏密钥与秘密数据,通过隐藏密钥对秘密数据进行加密,通过位替换在实际预留空间中嵌入加密的秘密数据生成载密图像。
8.根据权利要求1所述的加密图像可逆信息隐藏方法,其特性在于,步骤S6之后还包括步骤:
S7、通过载密图像提取秘密数据以及恢复原始图像。
9.根据权利要求8所述的加密图像可逆信息隐藏方法,其特性在于,步骤S7的具体方法为:S7‑1、将载密图像展开为比特流,并根据展开得到的比特流中最后log2(W′×H×8)位存储的实际预留空间长度,从实际预留空间中提取加密的秘密数据;其中log2为以2为底的对数,W′为加密图像的行数,H为原始图像的列数;
S7‑2、根据数据嵌入时的隐藏密钥解密加密的秘密数据,恢复出原始的秘密数据;
S7‑3、对展开得到的比特流进行解密,恢复原始流;
S7‑4、通过原始流中加密辅助数据进行DES解密,得到原始图像的参考像素、原始图像的行数、霍夫曼编码表和压缩编码流长度;
S7‑5、通过压缩编码流长度提取原始流中的压缩编码流;
S7‑6、通过类内偏移编码的逆操作对霍夫曼编码表和压缩编码流进行解码处理,恢复预测误差图;
S7‑7、结合预测误差图、原始图像的参考像素和原始图像的行数,通过预测算法恢复原始图像。