资源描述:
《jpeg图像隐写及隐写分析算法设计与实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、JPEG图像隐写及隐写分析算法设计与实现
JPEG图像隐写及隐写分析算法设计与实现
关键词:JPEG图像;隐写算法;信息隐藏;隐写分析
摘要:在介绍信息隐藏技术以及JPEG图像隐写发展现状的基础上,讨论了JPEG图像格式以及JPEG图像隐写算法,并实现了F5隐写算法。在实现F5算法的同时,还介绍实现了算法采用的混洗、矩阵编码等提高算法安全性的技术。
JPEG图像由于它的高压缩率和高表现性等优点,在Intrenet等环境中被广泛应用,因此,用JPEG
2、图像为载体进行信息隐藏具有重要的应用价值。目前已经有多种实现JPEG图像隐写的技术,如Jsteg、F5、OutGuess等。然而这些方法往往会改变JPEG图像的分块特性及DCT系数直方图等统计特性,为攻击者提供线索。目前,根据公开发表的论文,JPEG图像隐写算法的安全性越来越高,隐写检测利用的理论和技术也越来越复杂,难度不断增加。
一、JPEG的研究模式
JPEG有几种模式,其中最常用的是基于DCT变换的顺序型模式,又称为基本系统,下面专门讨论这种模式。图像不以RGB坐标表示,
3、而是使用的颜色是YUV格式,以一个亮度分量Y、两个色度分量U、V表示。因此,首先将RGB格式的图像转化为YUV格式(或叫做YIQ,YcrCb格式)。我们都知道,原始的彩色图像,一般由红、绿、蓝三种基色的图像组成。然而人的视觉系统对彩色色度的感觉和亮度的敏感性是不同的,在这里,首先介绍一下YUV格式。在JPEG发展过程中,实际使用的是YcrCb坐标系统,其中Y不变,Cr=(V/1.6)+0.5,Cb=(U/2)+0.5,通过这种压缩变换和0点转移,色度的值就总在1和0之间变化,乘于255就刚好能用一
4、字节(8比特)表示。
二、算法的设计与实现
BMP是英文Bitmap(位图)的简写,它是Windows操作系统中的标准图像文件格式,能够被多种Windows应用程序所支持。这种格式使用很普遍,其结构简单,包含的图像信息较丰富,但由于未经过压缩,通常文件量较大。研究JPEG图像的压缩过程发现,在把BMP对象压缩位JPEG图像的中间过程中,可以通过改变量化后的DCT系数达到信息隐藏的目的。本文要介绍的方法也是通过少量改变量化后的DCT以达到隐写目的。本算法实现JPEG图像的信息隐藏
5、,主要包括信息提取和信息嵌入两个模块。信息嵌入模块:使用隐写算法,把秘密信息隐藏在JPEG图像中。信息提取模块:根据提取算法,从带秘密信息的JPEG图像中提取秘密信息。
(一)混乱算法:如果把秘密信息顺次地嵌入到DCT序数上,那么秘密信息将会集中于图像的某一部分,从而导致图像质量不均衡。为了进一步提高隐写算法的性能,我们在隐写算法中加入了混乱算法,通过混乱算法,可以使嵌入的秘密信息均匀的分布到整幅图像中。
(二)矩阵编码:矩阵编码的目的是提高嵌入效率,使每个DCT系数的更改可以
6、嵌入更多的秘密比特,即在2k-1个原始DCT系数中最多改变1比特达到嵌入k比特秘密信息的效果,有效减少JPEG图像DCT系数的改变量,从而提高隐写算法的安全性。
(三)嵌入算法:整合了混乱和矩阵编码技术的隐写嵌入算法如下:
1.对BMP图像进行色彩变换、离散余弦变换(DCT),量化DCT系数。
2.根据密钥产生随机序列,用于混乱嵌入,密钥做为随机因子。
3.根据随机序列嵌入秘密文件的信息――秘密文件长度(用32位表示);
4.确定k,并计算n=2k
7、-1。
5.实施矩阵编码嵌入。取出欲嵌入的k个秘密比特,n个非0的DCT系数,计算是否需要改动DCT系数,如果不需要改变则进行下一组嵌入,如果需要改动,则根据规则改变,然后进行下一组嵌入,直到嵌入完成。
6.对改变过的DCT做哈夫曼压缩,产生密写后的图像。
(四)提取算法:以下是带混乱和矩阵编码的隐写提取算法:
1.哈夫曼解码JPEG图像,得到所有的DCT系数。
2.根据密钥产生随机序列,用于混乱嵌入,密钥做为随机因子。
3.根据提取秘密
8、文件信息头(32位),得到秘密文件的长度。
4.计算n和k。
5.实施矩阵解码,提取秘密信息。取n个非0的DCT系数,根据计算得到k个秘密比特,进入下一组提取,直到完成提取。
6.二进制输出秘密信息,得到秘密文件。
三.算法的优化设计
根据已发表的论文,简单的JPEG图像隐写效率大概是12%,即秘密信息能占到压缩完的JPEG图像大小的12%。算法同时也保持了图像直方图的一般特性,原始图像的DCT系数直方图特性依然得到保持。但F5算法