基于DCT的JSteg隐写及分析一、摘要·······················································1二、引言·······················································3三、JSteg隐写···············································43.1JSteg简介·············································43.2JSteg算法·············································43.3JSteg隐写过程·······································6四、JSteg隐写检测·········································74.1基于小波特征函数统计矩的隐写分析········74.2基于支持向量机的多特征盲检测算法···········9五、总结······················································10【参考文献】················································11附录····························································12JSteg隐写代码(matlab)································12一、摘要JPEG是互联网上最为常见的一种图像格式,而DCT变换是JPEG压缩采用的重要技术之一,在DCT变换系数(DCT域)上隐藏信息是常见的数字隐写方式。DCT(DiscreteCosineTransform,离散余弦变换)是一种实数域变换,其变换核为实数余弦函数。作为DCT变换的方法之一,JSteg是一种采用JPEG图像作为载体的隐写软件,其算法实际上就是将空域LSB替换隐写应用到JPEG图像上。主要思想是:将一个二进制位的隐秘信息嵌入到量化后的DCT系数的LSB上,但对原始值为.1、0、1的DCT系数例外,提取隐秘信息时,只需将载密图像中不等于.1、O、l的量化DCT系数的LSB逐一取出即可。JSteg算法虽然简单易用,但由于其会引起系数直方图出现值对区域相等的特点,用卡方分析可以很容易的检测到秘密信息的存在,因此其安全性较差。关键词:JPEGDCTJSteg实数余弦函数BasedontheanalysisofDCTsteganographyAbstractJPEGistheInternet'smostcommonimageformat,JPEGcompressionandtheDCTisoneofthekeytechnologyusedintheDCTcoefficients(DCTdomain)onthehiddeninformationisacommondigitalsteganographyway.DCT(DiscreteCosineTransform,DiscreteCosineTransform)isarealdomaintransform,whichisarealnumbercosinetransformkernelfunctions.AsonemethodofDCT,JStegaJPEGimageusingsteganographysoftwareasacarrier,thealgorithmwillactuallyreplaceairspaceLSBsteganographyappliedtoJPEGimages.Themainideais:toembedabitofsecretinformationtotheLSBofquantizedDCTcoefficients,buttheoriginalvalue.1,0,1DCTcoefficientsexceptionwhenextractinghiddeninformation,simplystegoimageisnotequal.1,LSBO,lquantizedDCTcoefficientscanbetakenoutonebyone.JStegalgorithmissimpleandeasytouse,butbecauseitwillcausethevalueofthecoefficientequaltotheregionalcharacteristicsofthehistogramappearschi-squareanalysiscaneasilydetectthepresenceofsecretinformation,sothesecurityispoor.Keywords:JPEGDCTJStegrealcosinefunction二、引言作为信息安全的分支,隐写技术主要是针对图片等外在特征较为明显的载体写入想要隐藏的信息,用以达到信息隐藏的目的。而JPEG是互联网上最为常见的一种图像格式,而DCT变换是JPEG压缩采用的重要技术之一,在DCT变换系数(DCT域)上隐藏信息是常见的数字隐写方式。DCT(DiscreteCosineTransform,离散余弦变换)是一种实数域变换,其变换核为实数余弦函数。对一幅图像进行离散余弦变换后,许多有关图像的重要可视信息都集中在DTC变换的一小部分系数中。因此,DTC是有损图像压缩JPEG的核心,同时也是所谓的“变换域信息隐藏算法”的主要“变换域”之一。因此图像处理运用二维离散余弦变换,所以直接介绍二维DCT变换。JSteg是最早在JPEG图像中进行隐写的方法之一,由于该方法使得系数直方图有明显的改变,随后即出现了F3隐写,F4隐写,F5隐写,OutGuess隐写和MB隐写等等。本文对JSteg的隐写做着重的分析和研究。三、JSteg隐写3.1JSteg简介ISO和前CCITT于1986年底成立“联合图像专家组”,研究静止图像压缩算法的标准化,至1992年正式完成了用于各种分辨率和格式的连续色调图像的ISO/IEC.10918标准(ITU.TT.81建议),简称JPEG标准。JPEG压缩一般要经过四个步骤:颜色模式转换及采样、DCT、量化、编码,其中,DCT作为其中的一部分,是其重要的技术之一。它又包含JSteg隐写,F3隐写,F4隐写,F5隐写等等,JSteg是最早用于JPEG图像的隐写工具,该算法是由D。Upam提出的,是指将空域上LSB替换隐写到JPEG图像上。3.2JSteg算法JSteg的算法,或称其主要思想是将秘密消息嵌入在量化后的DcT系数的最低比特位上,但对原始值为O、1的DCT系数不进行嵌入。提取秘密消息时,只需将载密图像中不等于0、l的量化DcT系数的LSB取出即可。如图1.1所示:图1.1秘密消息嵌入位置的选择方法有顺序嵌入法和随机间隔法。顺序嵌入的JSteg算法简单,易实现,但是有严重的安全问题,这是因为载体图像中修改了的部分和未修改的部分,具有不同的统计特性,很容易被检测出含有秘密消息。随机间隔法,首先要生成一个伪随机序列作为嵌入间隔,调整伪随机序列的均值,可以使得秘密消息随机地散布在整幅图像中,进而提高了安全性。其具体算法步骤如下:(1)选择掩护图像,并将图像区分成不重迭的8*8区块(2)将每个区块利用离散余弦转换成频率域系数(3)利用用户选定的量化表对频率域进行量化(4)对秘密信息进行Z字性扫描,并对除了0和1之外的DCT系数的最低位加以替换(5)进行熵编码,产生JPEG隐写图像或者这样说,定义H为载体图像中DCT系数的数目,定义h(X=x)为载体图像中DCT系数等于x的数目。由算法的描述可知,两种Jsteg算法的最大容量均为H-h(x=0)-h(x=1)比特。定义h(Y=y)为载密图像中DCT系数等于y的数目。由于嵌入的秘密信息一般为密文,其O、l比特出现的概率近似相等,都为O.5左右,那么嵌入达到最大容量时,有h(Y=2)=0.5h(X=3)=h(Y=3)也就是说载密图像中DCT系数为2的数目约等于DCT系数为3的数目,同理DCT系数为2i(i!=0)的数目与DCT系数为2i+1(i!=0)的数目也是大约相等的,所以载密图像的DcT系数直方图中会出现值对现象,与载体图像的直方图形成了明显的差异。利用这种特性,就可以很容易地检测出秘密消息的存在。3.3JSteg隐写过程JSteg的具体嵌入过程如下:(1)部分解码JPEG图像,得到二进制存储的AC系数,判断该AC系数是否等于1或0,若等于则跳过该AC系数,否则,执行下一步。(2)判断二进制存储的AC系数的LSB是否与要嵌入的秘密信息比特相同,若相同,则不对其进行修改,否则执行下一步。(3)用秘密信息比特替换二进制存储的AC系数的LSB,将修改后的AC系数重新编码得到隐秘JPEG图像。JSteg的提取过程如下:部分解码JPEG图像,得到二进制存储的AC系数,取出不等于1和0的AC系数的LSB,排列后组成秘密信息。在JSteg中,关于DCT系数中0和1的处理(1)DCT系数中“0”的比例最大(一般可达到60%以上,取决于图像质量和压缩因子),压缩编码是利用大量出现连零实现的,如果改变DCT系数中“0”的话,不能很好的实现压缩。(2)DCT系数中的“1”若变成“0”,由于接受端无法区分未使用的“0”和嵌入消息后得到的“0”,从而无法实现秘密信息的提取。四、JSteg隐写检测通用隐写分析算法的关键在于寻找对隐秘信息嵌入敏感的统计特征,设计合适的判别方案来区分载体图像和载密图像。JPEG图像具有两个基本统计特性:直方图特性和分块效应,大多针对JPEG图像的隐写分析算法都是利用这两个特性来设计的。研究者已提出了几种较有效的基于JPEG图像的通用隐写分析技术算法,下面我们主要研究讨论两种。4.1基于小波特征函数统计矩的隐写分析基于小波特征函数统计矩的隐写分析方法f62】是由Shi等提出的,是一种通用型隐写分析方法,它将小波子带的特征函数统计矩作为隐写分析的特征。该隐写分析系统涉及到两个主要问题:(1)特征向量的确定。首先对待检测图像进行两层Haar小波变换,包括图像本身在内(这里看做子带LLo),将获得13个子带:,,,,,,,,,,,,333222211110HHLHLLHHLHHLLLHHLHHLLLLL然后计算每个子带对应直方图的DFT,即得到了特征函数。最后根据下列式子得到一阶、二阶和三阶矩:其中,)(jfH表示第j个频率成分的幅值,n取1,2,3。这样就构建了一个39维的特征向量。(2)分类器的选择。Bayes分类器的分类原理是通过某对象的先验概率,利用贝叶斯公式计算出其后验概率,即该对象属于某一类的概率,选择具有最大后验概率的类作为该对象所属的类。由于嵌入的隐秘信息一般服从高斯分布或近似于高斯分布,因此选用Bayes分类器。用iX表示第i幅图像的39维特征向量,21,分别表示原始图像集和隐秘图像集,其均值向量和协方差矩阵分别由21,和21,表示,Bayes分类描述如下:A最大后验概率其中,N表示标准高斯分布B.决策函数大量实验证明,基于小波特征函数统计矩的隐写分析方法很有效,检测率很高。4.2基于支持向量机的多特征盲检测算法我们知道,现在研究的隐写分析都是唯载密攻击,即载体图像未知的检测,所以我们要构造一近似于载体图像的图像。由于JPEG图像在进行压缩时,其DCT变换和量化都是在sxs的子块上进行的,所以块与块之间存在一定的不连续性,即所谓的分块效应,枝准图像的获得:首先将载密图像J1解压到空域,然后在每个方向上裁剪掉4个像素点,最后用与原图像相同的的量化矩阵重新压缩图像得到图像如J2,如图3.1所示,J2近似为原载体图像,称为校准图像。图3.1标准图像的产生定义图像的特征函数为F(如直方图函数,共生矩阵函数等),则特征值f