信息隐藏实验报告 学号:200432530009 姓名:江夏秋 报告时间:2006 年 11 月 11 日 1
实验二:图像 综合评分:
DCT 域信息隐藏实验
【实验目的】:
一、复习变换域信息隐藏的基本思想
二、掌握用 MATLAB 实现图像 DCT 相关操作
三、完成基于图像 DCT 的信息隐藏实验
【实验内容】:(请将你实验完成的项目涂“■”)
实验完成形式:
■ 用 MATLAB 函数实现图像 DCT 域信息隐藏和提取
□ 用 MATLAB 命令行方式实现图像 DCT 域信息隐藏和提取
□ 其它:(请注明)
实验选择载体:
□ 256×256 灰度图像 □ 256×256RGB 图像 ■ 任意大小的 RGB 图像
实验效果和分析:
■ 分析了健壮性参数α与鲁棒性的关系
■ 能随机选择嵌入块(考虑安全性因素)
■ 嵌入块均匀分布于载体
□ 信息提取的检错/纠错
■ 分析了健壮性参数α与不可见性的关系
□ 其它:(请注明)
【实验工具及平台】:
■ Windows+Matlab □ 其它:(请注明)
【实验涉及到的相关算法】:
1、与实验内容选择的项目对应;
2、请使用流程图、伪代码、NS 图或文字方式描述,不要..贴代码
相关说明:
1. 由于 dct 变换只能针对二维图象,所以如果载体图象是 rgb 模式,则读取图象的一层来
作 dct 变换。对这一层嵌入信息后,再将这一层写回到原 rgb 图象中。提取时也是提取
这一层上的信息。
2.在 dct 域上隐藏可以的信息量比在空域下可以的信息量小得多,所以嵌入之前一定要判
断。本实验中用了由密钥控制随机嵌入位置来提高安全性,这就使得实际能够嵌入的信
息量比 r×c 还小。所以在计算随机嵌入位置时也要判断要隐藏的信息量是否过大(这
在流程图中省略了)。
3. 在流程图中信息的信息嵌入与提取的具体步骤没有详细给出,这里说一下原理。我们根
据 jpeg 的压缩原理,将图象进行 8×8 分块 dct 变换,选择(4,1)和(2,3)这两对
系数,如果隐藏的信息位是 1,则使(4,1)处的系数值比(2,3)处的大,如果隐藏
的信息位是 0,则使(4,1)处的系数值比(2,3)处的小,至于到底大多少是由参数
a 来控制。提取时只需要判断这两个位置系数的大小,就知道此处嵌入的信息位是 0,信息隐藏实验报告 学号:200432530009 姓名:江夏秋 报告时间:2006 年 11 月 11 日 2
还是 1。由于(4,1)和(2,3)在 jpeg 的量化表中的量化值一致,所以对图象的改变
不会太大,而且它们又属于 dct 的中频部分,有较好的抗压缩性。
下面是流程图:
读入载体图象
读入要隐藏文件
msg> r*c
Dct 逆变换重构图象
信息嵌入
Imwrite隐藏
信息的图象
结束
提 示 嵌 入 信 息
太多隐藏不了
嵌入流程图
对 m 分为 8*8 的小块,对每块
作 dct 变换得到 G(r×c)
计算(密钥控制)
随机嵌入位置
读入图象 i
打 开 存 放 信
息的文件 f
关闭文件 f
信息提取
结束
提取流程图
对 i 为 8*8 的小块,
对每块作 dct 变换
计算(密钥控制)
随机嵌入位置
【实验分析】:
1.分析隐蔽载体在 JPEG 压缩条件下的健壮参数 a 与隐藏鲁棒性的关系,绘制关系曲线。 信息隐藏实验报告 学号:200432530009 姓名:江夏秋 报告时间:2006 年 11 月 11 日 3
由上图可以看出 a 越大,鲁棒性就越强。这是因为 a 越大(4,1)和(2,3)两处的系数相
差就越大,提取信息位时就越不容易误判。上图是画的 a 由 0.1,0.2…1 的抗 jpeg 攻击图象,
但是只显示四条曲线,可见当 a>0.4 时,误码率为零,所以没有显示出来。由于 dct 域的信
息隐藏是根据 jpeg 的原理来制定的,多以它抗 jpeg 压缩能力很强。
2.健壮参数 a 与不可见性的关系
用均方差来衡量α对不可见性的影响,均方差的计算公式为
2
1 1
1
MSE ( ( , ) ( , ))
M N
W
x y
I x y I x y
MN = =
= ? ∑ ∑
,用matlab编写plotmse()函数绘图如下
可见,强度参数α越大,MSE 的值就越大,对原始图象的破坏越大,即不可见性越差。
3. 用海明码纠错和没有用海明码纠错的的 dct 域上信息隐藏抗 jpeg 攻击比较
载 体 图 象 大
小 :200×200
(rgb)嵌入信
息量 308bit
a=0.3
测试条件:
用 了 海 明 码
纠错
没 有 用 海
明码纠错
由上图可以看出,当误码率比较低的时候,用了海明码纠错才有优势。但是考虑到在 dct
域上能隐藏的信息容量本来就很少,而且它的鲁棒性已经很强了,所以没有使用海明码来改
进算法。