这篇文献改进了图像加密算法,提高了图像的嵌入容量。原文献中将图像按列分为256 * 1大小的块,嵌入的信息和块的多少有关。原文中分块太大而导致嵌入的信息相对较少,所以,本文将块尽可能地分小,并修改了嵌入方法并根据均值像素的相邻像素完全提取信息,使得嵌入的信息增加。本分主要讨论的是基于加密域的可逆信息隐藏的算法中的加密后腾出空间的方法。实验结果表明,修改后的算法嵌入的数据比原文多了十多倍,提出的方案同样简单易操作并具有安全性和可逆性、隐私保护性。 This paper improves the image encryption algorithm and the image embedding capacity. The document divided image into the block columned by 256 * 1. The number of blocks determines the number of bits embedded. The original block is too large, resulting in relatively few embedded data. Therefore, this paper divides the block as small as possible and modifies the embedding method and extracts the information completely according to the neighboring pixels of the average pixel. Using this method, the embedded information increases. Experimental results show that the em-bedding capacity obtained by this method is almost ten times of that. In this part, we mainly discuss the method of making space after encryption in the algorithm of reversible information hiding based on encryption domain. The proposed scheme is also simple and easy to operate with security and reversibility and privacy protection.
赵师毅,袁圆
西南交通大学唐山研究生院,河北 唐山
收稿日期:2018年10月17日;录用日期:2018年10月30日;发布日期:2018年11月6日
这篇文献改进了图像加密算法,提高了图像的嵌入容量。原文献中将图像按列分为256 * 1大小的块,嵌入的信息和块的多少有关。原文中分块太大而导致嵌入的信息相对较少,所以,本文将块尽可能地分小,并修改了嵌入方法并根据均值像素的相邻像素完全提取信息,使得嵌入的信息增加。本分主要讨论的是基于加密域的可逆信息隐藏的算法中的加密后腾出空间的方法。实验结果表明,修改后的算法嵌入的数据比原文多了十多倍,提出的方案同样简单易操作并具有安全性和可逆性、隐私保护性。
关键词 :图像加密,图像恢复,信息嵌入,可逆信息隐藏
Copyright © 2018 by authors and Hans Publishers Inc.
This work is licensed under the Creative Commons Attribution International License (CC BY).
http://creativecommons.org/licenses/by/4.0/
随着人们对隐私保护也越来越重视,但是普遍的图像可逆信息隐藏算法存在着容量不足的问题。因此本文将致力于改进图像的嵌入容量,增加图片的嵌入信息,并且使得恢复出来的图像和原始图像的像素误差不大。
可逆信息隐藏按嵌入域分可以分为空域和变换域这两种类型。空域指的是直接图像的像素进行操作,而变换域指的是通过一系列可逆的变换方式(如DCT变换等)对图像进行操作。可逆信息隐藏也可以分为加密图像的可逆信息隐藏和未加密图像的可逆信息隐藏。通常,基于未加密图像的可逆信息隐藏中使用的是差值扩展和直方图平移的方法。而加密域的可逆信息隐藏又可以分为加密前腾出空间和加密后腾出空间的方法。接下来,我们主要讨论的是基于加密域的可逆信息隐藏的算法中的加密后腾出空间的方法。加密后腾出空间的算法又可以分为联合算法和可分离算法。联合算法必须是在解密后的图像中提取信息,然后再恢复图像。而可分离算法可以在含有隐藏信息的加密图像中提取信息,再根据加密密钥解密图像,并得到恢复的图像。
将图像按列进行分块,记分块后剩余的像素为Rest。计算每一个块的均值,将均值像素代替每一个块的第一个像素。再将计算过均值的块和剩余的块合并成图像J。分块取平均值(avg.m):[J,p] = avg(origin_img,x)传入:原始图像、分块大小,返回:计算均值后的图像及分块个数
产生与图像大小的伪随机数记为R,将图像中除均值像素外的所有像素用公式(3)计算加密像素值得到加密图像E。加密图像(encrypted.m):E = encrypted (J, R, x)。传入:均值图像、加密密钥(伪随机数)、分块大小返回:加密图像
E ( i , j ) = ( J ( i , j ) + R ( i , j ) ) mod 256 (3)
对加密图像E中的像素嵌入信息。如果一个块的嵌入信息为1,则将加密图像中该块中除均值像素外的二进制加1010,如果嵌入信息为0,则不改变加密图像的像素值。1010即为十进制的10,如果我们相加的数太小了,那么在块分小了之后,如果嵌入为1,那么除均值像素外的像素累计加的数太小,导致在算均值位置的原始像素与我们嵌入0算出的结果相差不大,或者更平滑如果相加的数太大了,也有同样的问题。或者是如果原始图像中均值像素和周围像素相差太大,那么算出的结果可能是错误的值相关性更大。如果像素值为255,二进制为11111111,加上1010为1001。像素值大于245的计算方法如255。将嵌入信息后的加密图像记为C。
将图像C中每一个块中除均值以外的像素值用公式(4)进行解密,得到含有隐藏信息的解密图像D。
D ( i , j ) = ( C ( i , j ) − R ( i , j ) ) mod 256 (4)
其中,R (i, j)和加密时的伪随机数是一样的。解密图像(decrypted.m):D = decrypted (C, R, x)传入:嵌入信息后的加密图像、加密密钥、分块大小返回:解密图像。
对于含有隐藏信息的加密图像中的每一个块,我们并不知道嵌入的数据为0还是1,将原始的块记为B0作为嵌入为0的块,将除均值外像素二进制减去1010后的块记为B1作为嵌入为1的块。如果在像素值小于等于9,在减1010时,在最高位添一个1相减,例如:9的二进制为00001001,在最高位添一个1变成:100001001,再将这个数减去1010得到11111111,即255。其他小于9的数字也是同样的计算方式。
通过公式(5)计算两种情况下的均值像素记为first0和first1。
first = round ( s 1 j ∗ x − ∑ i = 2 x sij ) (5)
其中,s1j代表每一个块的均值像素值,x为分块大小,sij为块中的像素值。
在嵌入为0和嵌入为1的情况下,计算块中每一个像素的预测值,并将他们与对应的像素值求绝对值后相加。在嵌入为0的情况下,计算该像素相邻四个像素的均值记为A0。在嵌入为1的情况下,计算该像素相邻四个像素的均值记为A1。如图1所示,如果均值像素位于图像边缘,则取它上下左右在图像范围内的像素。通过公式(6)判断嵌入为0还是1。
f 0 = abs ( x 0 − A 0 ) (6)
f1 = abs ( x1 − A1 ) (7)
其中x0为嵌入为0时对应的像素值,而x1为嵌入为1时对应的像素值。因为像素之间的相关性,未嵌入信息的像素要比嵌入信息后的像素更平滑,所以,若f0 > f1则嵌入为1,均值像素为x1,原始块为B1;若f0 < f1则嵌入为0,均值像素为x0,原始块为B0。正确提取信息后,图像得到完美恢复。
该算法测试的图像均为512 * 512大小,分块最小能分到20 * 1,嵌入数据为13,107比特,是文献 [
图1. 像素预测
图2. 仿真结果
通过上述仿真结果我们可以看到加密后的图像看不见原始的内容,从而确保原始图像的隐私。对应的直方图如图3所示。
从上述的直方图的结果可以看出,嵌入的加密图像和数据的直方图与原始图像的直方图有很大的不同,加密后嵌入信息的直方图像素分布均匀,无法识别原始图像的内容。恢复图像的直方图与原始图像相同,说明了我们算法的可逆性。
选取了九张512 * 512图像进行测试,包括了lena,zelda,Man,airplane,couple,sailboat,baboon,goldhill,barbara图像。用文献 [
图3. 直方图结果
图4. 块的大小与信息提取错误的趋势
图5. 块的大小与信息提取错误的趋势
分块出现错误的原因:放均值的像素与周围像素相差太大,导致预测的不准确。块分小了,剩余像素累计加1的值变小了,与未加1得出的均值位原始像素差距不大,可能会更接近预测的像素。
文献 [
在文献 [
B ∈ ( ( x + 1 ) A x − 255 x , ( x + 1 ) A x ) 提取为0 (1)
B ∈ ( ( x + 1 ) A x , ( x + 1 ) A x + 255 x ) 提取为1 (2)
其中B为含有隐藏信息的解密图像中每一个块的均值,x为分块的大小,A为块中第一像素值,也就是该块中所有原像素的均值。从公式中,我们得知,如果x过于小,那么255/x偏大,该区间可能存在重合部分或者B不在该区间上等情况,所以,如果块分小了之后用该方法提取信息是不准确的。
本文的加密方法和文献 [
在这篇文献中,基于文献 [
赵师毅,袁 圆. 通过像素相关性改进的基于均值的密文域可逆信息隐藏 The Mean-Based Ciphertext Domain Reversible Information Hiding Is Improved by Pixel Correlation[J]. 计算机科学与应用, 2018, 08(11): 1657-1664. https://doi.org/10.12677/CSA.2018.811182