关键字 |
隐写术,像素值差分,数据隐藏,多向,基于块。 |
介绍 |
因特网允许用户在不受时间和地点限制的情况下交换信息。如果不采取适当的预防措施,未经授权的人很容易获得机密数据。虽然在互联网上传输信息之前对信息进行加密可能为秘密通信提供了一种安全的方式,但加密系统,如数据加密标准DES和RSA,通过将信息转换为无意义的形式对其进行加密,这可能会引起拦截者的警觉。数据隐藏是一种将秘密数据隐藏在数字图像、视频、音频等封面媒体中的技术。覆盖介质只是稍加修改,因此这些更改不会引起潜在拦截者的怀疑,他们可能会注意到秘密数据。理想的隐写术方案是保持隐写图像不易被察觉的质量,以防止隐写图像引起对手的注意。也就是说,如果封面图像和隐写图之间有更多的相似之处,攻击者就更难发现隐写图。在过去的十年中,许多静态图像的隐写技术已经被提出。一种简单而众所周知的方法是直接将秘密数据隐藏到图像中每个像素的最低有效位(LSB)中,其中隐藏着重要的秘密数据(Wu和Hwang, 2007)。这样,秘密数据更有可能安全地从发送者传输到接收者。Fridrich等[3,4]压缩最小有效位(LSB)平面,以获得额外的空间来嵌入秘密数据。Celik et al.[9]改进了Fridrich et al.的方案,通过压缩像素的量化残差来获得额外的信息嵌入空间,提出了广义-LSB (G-LSB)方案。 In the above two schemes, the payload capacity is highly related to the compressed results. Tian [5] used a technique of expanding the difference between two neighboring pixels to find redundant space for embedding a message. In his scheme, a large location map is required to determine whether a pair of pixels embeds a message. Alattar [6] used the difference expansion of a vector to obtain more embedding space. The pixel-value differencing (PVD) method proposed by Wu and Tsai [7] can successfully provide both high embedding capacity and outstanding imperceptibility for the stego-image.Wang and Huang[8] modify the basic PVD method and suggest that the remainder of the two consecutive pixels can be computed by using the modulus operation, and then secret data can be embedded into the two pixels by modifying their remainder.Mandal and Das[14] proposed an approach in which PVD method is used and check whether the pixel value exceeds the range on embedding. Positions where the pixel exceeds boundary has been marked and a delicate handle is used to keep the value within the range.Exploiting Tian`s scheme of difference expansion, Chang and Lu [10] calculated the difference between a pixel and the mean value of its neighboring pixels to embed a message. Although the hiding ability was improved, a large location map was still required in both Alattar`s and Chang and Lu`s schemes. Ni et al. [11] proposed a novel reversible data hiding algorithm based on shifting an image histogram. The maximum point of the histogram is selected to embed a message. When embedding a message into the image, the pixel value at the maximum point is altered by 1 or left unchanged if the message bit is “1” or “0”, respectively. However, few images contain a large number of pixels with equal pixel values, so the embedding capacity of Ni et al.`s algorithm is small. Chih-Chiang Lee and Yen-Ping Chu[13] proposed a scheme which is built upon is block-based centralized difference expansion. In the proposed scheme, the original cover image is partitioned into a series of non-overlapping blocks, and the payload of each block depends on its block size and the image complexity. A new method is employed to compute the image complexity of each image block, and all the blocks are classified into four levels according to their block complexity values, and finally different amounts of data are assigned to image blocks at different complexity levels.Ching-Chiuan Lin and Nien-Lin Hsueh[12] proposed a novel steganographic scheme based on three-pixel block differences in which it embeds a message into a cover image using the two differences between the first and the second pixel as well as between the second and the third pixel in a three-pixel block and in the cover image, an absolute difference between a pair of pixels is selected to embed the message if the number of pixel pairs with the difference in the image is the largest. To embed a bit “1” or “0”, the selected difference is increased by 1 or left unchanged, respectively.However this scheme does not provide high payload capacity of image and the qulity of stego image is not good enough. |
本文对Ching-Chiuan Lin和Nien-Lin Hsueh的算法进行了修改和增强,该算法在将三个像素之间的差值仅取一个方向进行数据隐藏的基础上,考虑了多方向边缘,有效地采用了基于多方向块的PVD方案设计。同时,为了减少嵌入容量过大带来的隐写图质量失真,提出了参考点选择和自适应规则的优化方法。这样可以使隐写术图像保持可接受和满意的质量。本文的其余部分组织如下。第二节回顾了PVD方雷竞技苹果下载法和林清川、薛年林的方法。第三节给出了建议的施工方案。在第5节的结论之前,第4节对实验结果进行了说明和讨论。 |
二(A)林清川和薛念林方法综述 |
在这种方案中,图像中的三像素块包含两个绝对差值——像素1和2之间的差值,以及像素2和3之间的差值。这样的差被称为块差。为简单起见,差值和块差值是可互换的。 |
将图像划分为不重叠的三像素块,其中允许的像素最大值和最小值分别为255和0。设g(d)为绝对差值等于d的像素对个数,其中0≤d≤253,且计算g(d)时不考虑块中像素值等于0或255的像素对。在嵌入消息之前,所提出的方案选择一对差分M和M,使得g(M)≥g(M)并且g(M)≤g(m_)对于所有0≤M, m_≤253。设(bi0, bi1, bi2)表示像素值为bi0, bi1, bi2的块i, max(bi0, bi1, bi2)和min(bi0, bi1, bi2)分别表示块中像素值的最大值和最小值。首先,选择满足以下两个条件的块: |
1≤bi0, bi1, bi2≤254; |
(2) min(bi0, bi1, bi2)=1或max(bi0, bi1, bi2)=254。对于每个选定的块i,发送方执行以下操作: |
(1) M + 1≤di0≤M−1时,di0增加1,然后增加 |
如果M + 1≤di1≤M−1,则di0 = |bi0 - bi1|和 |
di1 = | bi1−bi2 |; |
2)如果di0=M或di1=M,则在块i中嵌入一条消息;(3)在执行操作(1)和(2)后,如果min(bi0, bi1, bi2)=0或max(bi0, bi1, bi2)= 255,则将块I的索引记录为开销信息。 |
例如,如果M = 1, M = 20,则block (2,1,2), |
(253, 254, 240)和(246,243,254)。结果块将是:(2,0,2)如果它嵌入了两位“11”,(253,254,239)如果它嵌入了一位“0”,以及(246,242,254)。注意,块(246,243,254)的结果不是由嵌入的消息决定的,因为它不能嵌入消息。另一方面,区块(0,3,5)和(3,4,6)在这一步中不被选择。在本例中,结果块(2,0,2)的索引将被记录为开销信息。注意,block(2,0,2)嵌入了两位“11”,只有中心像素被修改了1。然后,发送方再次扫描图像,对2≤bi0, bi1, bi2≤253的每个块i执行如下操作: |
(1) M+1≤di0≤M−1时,di0增加1;M+1≤di1≤M−1时,di1增加1; |
(2)如果di0 = M或di1 = M,则将开销信息和剩余消息嵌入到块i中。在上面的例子中,块(3,4,6)如果嵌入位“0”,将变成(3,4,7)。显然,不考虑结果块(2,0,2)、(253,254,239)和(246,242,254)。 |
给定M和M,对于每个1≤bi0, bi1, bi2≤254的块i,接收端执行以下操作:(1)提取开销信息或一条消息,如果di0∈{M,M +1}或di1∈{M,M +1};(2) M +2≤di0≤M时,di0减1;M +2≤di1≤M时,di1减1。然后,接收方提取剩余的消息,并在上述提取过程中提取的开销信息中记录了块索引的块中恢复原始块。 |
二(B) Pvd法综述 |
在原有的PVD方法[7]中,将灰度值的覆盖图像分割成由pi和pi+1两个连续像素组成的不重叠的块。对于每个块,差值di可以通过pi+1减去pi来计算。所有差值的集合应该在−255到255之间。因此,di的取值范围为0 ~ 255。因此,di值小的块位于光滑区域,而di值大的块被认为是边缘锐利的块。根据人的视觉特性,眼睛对锐利边缘块的耐受能力比平滑边缘块的耐受能力强。也就是说,在边缘区域可以嵌入比平滑区域更多的数据。因此,在PVD方法中,第一步是设计一个包含n个连续范围(Rk where k = 1,2,…,n)的范围表,表的范围从0到255。Rk的下边界和上边界分别用lk和uk表示,则Rk∈[lk,, uk]。Rk的宽度wk由wk = uk - lk +1计算,wk决定在两个连续的像素中可以隐藏多少位。 Since Rk is designed as a variable, the original range table is required to extract the embedded secret data based on the consideration of security. |
嵌入算法描述如下: |
1.计算封面图像中每个块的两个连续像素pi和pi+1之间的差值di。该值由di= +1-给出。 |
2.利用|di|在设计的范围表中找到合适的Rk,即计算j=mink(uk-|di|),其中对于所有1≤k≤n, uk≥|di|。那么Rj是定位范围。 |
3.通过Rj计算每对连续的两个像素中可以嵌入的秘密数据位t的数量。t的值可以从Rj的宽度wj中估计,这可以通过t=⎣log2wj⎦来定义。 |
4.从二进制机密数据中读取t位,并将位序列转换为十进制值b。例如,如果位序列=110,则转换后的值b =6。 |
5.如果di>0,则计算di ' = lj + b给出的新的差值di ',如果di < 0,则di ' =−(lj + b),以取代原来的差值di |
6.用公式修改pi和pi+1的值: |
(pi ', pi+1 ')=(pi -⎣m/2⎦,pi+1+⎣m/2⎦) |
在m = di的di。到目前为止,将秘密数据嵌入像素对(pi ', pi+1 ')是通过改变pi和pi+1的值来完成的。 |
重复步骤1-6,直到所有秘密数据都嵌入到封面图像中,然后获得隐写图。在秘密提取阶段,需要原始设计的距离表。首先,使用嵌入阶段的相同方法将隐写图划分为像素对(块)。然后计算stego图像中每对连续像素p^ i和p^ i+1的差值di '。接下来,用于在di 'embedding阶段在步骤2中定位合适的Rj。因此,b '由di '减去lj得到,如果不改变stego图像,b '等于b。最后,将b '从十进制值转换为t位的二进制序列,其中t=⎣log2wj⎦。 |
3提出的方法 |
在Lin Ching-Chiuan和Nien-Lin Hsueh的方法中,三个水平连续的像素只能表示一条垂直的边缘,但边缘可以有不同的方向。这促使我们通过考虑三个方向来改进基于三像素块差异的方法。 |
A.块创建过程 |
通常,图像中的边缘大致分为垂直方向、水平方向和两种对角线方向。基于经典的PVD方法和林菁千(Ching-Chiuan Lin)和薛年林(Nien-Lin Hsueh)提出的方法,在一个方向边缘上使用像素对可以有效地进行信息隐藏。当考虑四个两像素对的四个方向时,这应该会实现更高的效率。这可以通过将图像划分为2×2块来实现,其中一个示例块如图1所示。但是,由于第四个像素对像素值的改变会影响到第一个和第二个像素对,所以第四个像素对是无用的,必须被丢弃。因此,我们建议使用三对来嵌入秘密数据。在介绍本文算法之前,块的创建过程是将封面图像划分为4像素不重叠的2×2块。 |
b .基于多向块的像素值差分方案 |
如图1所示,每个2×2块包括p(x,y) p(x+1,y) p(x,y+1)和p(x+1,y+1)的4个像素,其中x和y为图像中的像素位置。设p(x, y)为起点,将p(x, y)与右、下、右下相邻像素分组,可以找到三个像素对。这三对分别由P0, P1和P2命名,P0=(p(x,y), p(x+1,y)), P1=(p(x,y), p(x,y))和P2=(p(x,y) p(x+1,y+1))。 |
当使用所提出的基于多向块的像素值差分算法嵌入秘密数据时,对于i = 0,1,2,每对像素值都有其修改后的Pi '和新的差分值di '。在这里,详细的嵌入算法将在第3.D节中描述。现在,每对中的新像素值都与原始像素值不同。也就是说,起点p(x,y)有三个不同的值,分别为p0 ' (x,y), p1 ' (x,y)和p2 ' (x,y),分别来自p0, p1和p2。但是,在完成嵌入过程后,pi(x, y) '只能存在一个值。因此,选择p 'i (x+y)中的一个作为参考点,以抵消其他两个像素值。也就是说,用一对中的两个像素值来调整另外两对,构造一个新的2×2块。假设参考点是(x, y),则另外两个差值,d2 '和d2 ',经给出的调整后,可以证明不变 |
|
注意,嵌入的秘密数据不受影响,因为这三个差值没有改变 |
c .参考点的最优选择规则 |
选择不同的参考点会对隐写图产生不同的畸变。在这里,我们提出了一种最优选择方法来实现最小均方误差(MSE)。设mi =di '−di, di和d ' i为嵌入前后像素对i的差值。下面介绍了在不真正估计MSE的情况下精确确定一个最优参考对的规则。 |
1)如果mi的所有值都大于1或小于-1,则最佳像素对ioptimal是具有最大|m|的像素对。例如,如果mi={- 8, - 4, - 3}, i∈{0,1,2},则ioptimal =0。 |
2)如果所有mi都具有相同的符号,并且只有一个mi∈{0,1,-1},则从m最小的其他两对像素中选择最优像素对ioptimal。例如,mi ={4,3,1} i∈{0,1,2},则ioptimal =1。 |
3)如果只有一个mi的符号与其他两对不同,则从其他两对m最小的像素对中选择最佳像素对ioptimal。例如,如果mi ={7, - 4,3}, i∈{0,1,2},则ioptimal =2。 |
4)如果只有一个mi∈{0,1,-1},另外两个mi有不同的符号,则最优像素对ioptimal是mi∈{0,1,-1}的像素对。例如,如果mi = {0, - 4,2},i∈{0,1,2},则ioptimal=0。 |
5)如果存在多个具有mi∈{0,1,-1}的像素对,则最优像素对ioptimal可选为具有mi∈{0,1,-1}的任意一对。例如,如果mi ={4,0,0}, i∈{0,1,2},则ioptimal=1或2。 |
通过上述选择规则,我们可以跳过MSE估计的计算步骤,得到最优的参考对。因此,总的计算复杂度可以大大降低。 |
D.嵌入算法 |
数据隐藏的具体步骤如下所示。 |
1)为给出的每个块中的四个像素对计算四个差值di(x,y) |
|
2)利用|di,(x,y)| (i =0,…,3)在设计的范围表中找到合适的Rk,i,即计算j=mink(uk,j-|di,(x,y)|)其中uk,j≥|di,(x,y)|对于所有1≤k≤n。那么定位范围可以用rj,i表示。 |
3)通过Rj,i计算每对中可以嵌入的秘密数据位t i的数量。ti的值可以从R j,i的宽度w j,i来估计,这可以通过t= [log2w j i]来定义 |
4)从二进制机密数据中读取t i位,并将位序列转换为十进制值bi。 |
5)如果di(x,y)≥0,则计算d 'i =li,j+ bi给出的新的差值d 'i (x,y);如果di(x,y) <0,则计算d 'i =-(li,j+ bi),以取代原来的差值d 'i (x,y)。 |
6)修改p n和p n + 1的值,公式如下: |
|
其中pn和pn+1代表Pi中的两个像素,m=dn '−dn。到目前为止,将秘密数据嵌入像素对(pn ', pn+1 ')是通过改变pn和pn+1的值来完成的。 |
7)利用选择规则选择MSE最小的最优参考点p’i(x,y),然后用这个选定的点来抵消其他两个像素对。 |
8)现在,生成由所有像素对构建并嵌入秘密数据的新块。 |
E.提取算法 |
为了从隐写图像中检索嵌入的秘密数据,提取算法描述如下步骤。 |
1)将stego-image划分为2×2像素块,划分顺序与嵌入阶段相同。 |
2)分别计算由给出的stego-image中每个块的差值di ' (x,y) |
|
3) |d 'i (x,y)|用于定位嵌入阶段第2步中介绍的合适的R k,i。同时得到嵌入比特数ti,其中ti = [log2 wj,i]。 |
4) R k,i定位后,从所选|d’i(x,y)|中减去l j,i,得到b’i。如果隐写像不改变,则等于bi。最后,将b 'i从十进制值转换为具有ti位的二进制序列,其中ti =⎣log2 wj,i⎦。注意,t i位流只是嵌入前秘密数据的一部分。 |
四、实验结果 |
为了证明我们所提出的方法在隐藏秘密数据的容量和安全性方面的完成性能,在我们的实验中,使用了8个灰色封面图像“Lena”、“Peppers”、“Boat”、“Airplane”、“Baboon”、“Tank”、“Couple”和“Elaine”,每个图像的大小为512 x512,以比较所提出的方法与现有方法。 |
A.容量和PSNR |
秘密二进制数据取自本文摘要部分全文,约1271字节。我们将设计的范围表设置为wk={8,8,16,32,64128}的集合中的宽度。所有封面图片的大小为512×512。在这里,PSNR值被用来评估隐写图像的不可见性。表i显示了本文方法的性能实验结果,表明本文方法提高了图像的数据载荷能力。为了与现有方法进行比较,表II列出了包括本文方法在内的四种方法嵌入机密数据后的实验结果。给出了该方案和现有方法对7幅图像的隐藏容量(以字节为单位)和PSNR值。所列出的值是在封面图像中嵌入100个随机生成的位序列后的平均结果。实验结果表明,该方法在提高隐写图像的数据有效载荷容量的同时,能够保持隐写图像的不可感知质量。 |
诉的结论 |
与PVD方法和林清千和薛年林的方法相比,利用多向边缘可以在封面图像中隐藏更多的秘密数据。由于人类的视觉对平滑区域的轻微变化很敏感,而边缘区域的变化更严重,因此在该方法中,在这些繁忙区域中嵌入了更多的秘密数据。此外,我们还提出了一种参考点的优化选择方法,以减少伪影图像的质量失真。这种方法既适用于彩色图像,也适用于灰色图像。实验结果表明,与覆盖图像相比,隐写图像中隐藏的秘密数据是人眼难以察觉的。实验结果表明,该方法比现有方法具有更好的嵌入能力。同时,在不需要原始封面图像的情况下,可以正确地从隐写图像中提取嵌入的秘密数据。这显示了所提出的数据隐藏技术的多个优点。 |
表格一览 |
|
|
数字一览 |
|
|
图1 |
图2 |
|
|