GPC隐写分析算法

实验目的:

学习GPC专用隐写分析技术与实现

实验任务:

  1. 验证GPC隐写分析技术的正确性
  2. 比较GPC隐写分析技术的特性
  3. 验证所得线性模型的正确性

实验内容

首先将载体图像数据的像素集对应于三维空间的一个离散点集,即将像素的位置对应于XY平面上的一点,而将其灰度值对应于Z轴上的一个值,再将相邻像素用直线连接起来,就可以得到三维空间中的起伏网格,类似渔网。然后建立两个平行于XY平面的平面簇,平面簇P由z=1.5,  z=3.5, z=5.5, ..., z=255.5组成,平面簇P1由z=0.5, z=2.5 ,z=4.5 ,..., z=254.5 组成,这样相邻像素之间的连线会穿过平面簇P0和P1;令网格图中的网格线穿过平面簇P0和P1的次数分别为N0和N1。如果载体图像是自然图像,根据统计特性则认为N0≈N1;反之,若载体图像经过LSB隐写,由于隐写仅替换最低比特位,相邻像素的网格线不会跨越P0中的平面,只会跨越P1中的平面,所以N0保持不变,N1会增大。

算法设计:

Matlab实现该算法的具体步骤如下:

①读取原始图片和秘密信息图片,将要隐藏的秘密信息并进行二值转化。

②按比例在载体图片上随机选择一个位置,将秘密信息按照LSB算法嵌入到所选择的位置中,即将原始图片的最低有效位替换成秘密信息的比特位。

③计算相邻像素点之间的区别,统计奇偶性,得出比率R。

④按比例取嵌入图像所占大小,计算出一系列的比率R,并画出R变化趋势图并计算线性方程。

⑤根据线性方程,取新的载体图像测试检测隐藏信息量与实际隐藏信息量的吻合程度。

原始图像:       

a867567326ad4110aacc83357f139f4a.bmp

test1.jpg(size:1573 * 1009)

秘密图像:

1f033fb2fb5943cd92f9e484d5c36b2d.png

test.jpg(size:1279 * 1706)

实验代码

运行截图:

以70%嵌入率为例:

216eacf47ed640f284acf757a8b04cd4.png

56187f7cd6e948b5aac7c3e92d92fbbc.png

不断改变信息嵌入率,计算测试图像的嵌入比例估计测试结果:

 表1 测试图像的嵌入比例估计测试结果

1

2

3

4

5

6

7

8

9

10

比例

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

R测试

数据直接看图表我图片转存失败了

作出R和信息嵌入率的图像

64c36da12ed8437c96944bf09bf9e97e.png

图1 测试图像的嵌入比例估计测试结果

分析:观察图1中的嵌入率α和R的关系曲线,当α以步长0.1增加时,R的值近似呈线性增长,在图中表现为一条直线。然后用下面的方法估计隐写信息量α.图1中α和R的函数关系近似一次函数,我们选择用一次函数y=a+bα来拟合。实验证明,一次线性函数可以很好地对这一函数关系建模.下面通过两个关键点(用(α,y(α))来表示)来估计嵌入比例α.两个关键点是零嵌入(0,y(0))情况和全嵌入(1,y(1))情况.对于零嵌入情况,通过大量实验,结果表明当α等于0时,R分布在1附近,这里我们经过实验表明,当α=0时,选R=1建模的效果较好.对于全嵌入情况,对待检测图像进行二次隐写,嵌入率β为100%.经二次隐写后,有部分像素经历了两次改变又回到原始的灰度值,而在两次隐写中仅改变过一次灰度值的像素占全部像素的(α+β-αβ)/2,即相当于经历了一次嵌入率为(α+β-αβ)的隐写.也就是说,当二次嵌入率为100%时,仅经历过一次灰度值变化的像素正好占全部像素的50%,也就相当于经历了一次嵌入率为100%的隐写.因此,可以用二次全嵌入近似一次全嵌入时的情况。由此可以得出线性模型y = 1.938 x + 0.6497

验证:

(1)验证嵌入不同秘密图像信息时图像,比较嵌入比例估计测试结果

原始图像:不变

秘密信息图像:

e97128a7a94d43839d51cb0b87056219.png

test2.jpg

以嵌入率0.7为例,计算相应信息如下:

7b0a674302d34580aca81ea2cde43ce7.png

df655670c8fd441aa5b0cd4d6fe165dc.png

1

2

3

4

5

6

7

8

9

10

比例

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

R测试

一样转存失败大家自己做一下数据吧

R验证

数据大致走势下图一样

表2 验证图像的嵌入比例估计测试结果

1a41af76208d4afc911d016a9b9efbb1.png

图2 验证图像的嵌入比例估计测试结果

  1. 验证检测隐藏信息量与实际隐藏信息量的吻合程度(以载体图像为test1.jpg,秘密信息图像为test.jpg为例)

表3 检测隐藏信息量与实际隐藏信息量的吻合程度

1

2

3

4

5

6

7

8

9

10

实际隐藏信息量

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

检测隐藏信息量

0.191686

0.225042

0.278206

0.352111

0.441425

0.547273

0.666458

0.795319

0.929759

1.073171

ecf5cc6cca8d4407aa45818cb14f0cb4.png

图3 检测隐藏信息量与实际隐藏信息量的吻合程度

分析: 0.007值非常小可忽略不计,即吻合程度模型为y = 0.899x,k=0.899

k接近于1,越接近于1说明该线性模型性能越好。

算法优化:

这个算法优化其实没有作太大变动,只是多加了for循环,可以输出不同信息嵌入率的R

结论:

  1. LSB算法

基于数字图像最低有效位(LSB)的数字图像水印算法是一种常见的数字水印嵌入和提取技术。该算法将一个需要隐藏的二值图像信息嵌入载体图像的最低有效位,即将载体图像的最低有效位层替换为当前需要隐的二值图像,从而实现将二值图像隐藏的目的由于二值图像处于载体图像的最低有效位上,所以对于载体图像的影响非常不明显,并且在必要时直接将载体图像的最低有效位层提取出来,即可得到嵌入在该位上的二值图像,达到提取秘密信息的目的。

  1. GPC算法

GPC分析的基本原理可以总结为:若载体图像是自然图像,由于相邻像素之间的相关性,N0≈N1;若载体图像经过了LSB隐写,则会减弱相邻像素之间的相关性,从而使N1增大。根据以上基本原理,可通过比较N0和N1的大小判断秘密信息的有无。令R=N1 / N0,定义阈值T,当RT时,认为该载体数据含有秘密信息。GPC算法需要统计所有网格线(集合 S1、S2、S3 中所有相邻像素对连接而成)穿越平面簇的次数,数值大。

  • 9
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值