JPEG图像隐写
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于PMl和遗传算法的JPEG图像隐写
摘要:隐写术利用数字媒体(如图像、视频、音频、文本等)的冗余性,对数字媒体进行修改以隐藏秘密信息,在信息安全领域具有重要意义。传统的基于LBS替换的隐写技术会破坏JPEG 图像的直方图特性,无法有效对抗隐写分析。本文提出了适用于JPEG图像的改进PMl隐写方法(简称JPMl),并结合遗传算法来最小化空域分块特性。通过合理选择嵌入系数以及秘密信息与载体系数的对应关系,此方法能够保持JPEG图像的直方图性,提高隐写嵌入容量和安全性。
关键词:JPEG 隐写 PM1 遗传算法
1、引言
PMl是基于LSB替换的一种改进的隐写技术。通过随机加减l来修改系数,它克服了LSB 替换中的值对现象,因而能够抵抗χ2分析。
本文提出了适用于JPEG图像的改进PMl隐写方法(简称JPMl),通过合理选择嵌入系数以及秘密信息与载体系数的对应关系,此方法能够保持JPEG图像的直方图特性。其次,为减小嵌入失真,本章利用遗传算法来最小化空域分块特性。最后,本文通过实验验证了改进的隐写技术的嵌入容量和安全性优于传统的基于LSB替换的隐写技术。
2、JPM1隐写算法
PMl嵌入是基于LSB替换的隐写方法的一种改进方法,它易于实现而难以被检测。在实际中,如果一个给定的系数的LSB与要嵌入的比特不同,基于LSB替换的方法会翻转该系数的LSB,即对偶数加1而对奇数减1,而在PMl中,将随机地对该系数进行加1或减1操作。这里,我们具体陈述如何在JPEG图像中恰当地应用PMl以实现高嵌入率并保持高安全性。
JPEG图像经熵解码得到的量化DCT系数(JPEG系数),包括三个部分,分别为直流系数、零交流系数、非零交流系数。非零交流系数是嵌入秘密信息的很好的选择。
为了保持JPEG图像的直方图特性,在JPEG图像中应该这样应用PM1:负偶数代表秘密信息1,负奇数代表0:正偶数代表秘密信息0,正奇数代表1。在嵌入的过程中,如果秘密信息比特与它对应的非零交流系数所表达的信息相同,则保持该系数不变;否则对该系数进行随机地加1或减1。若一个系数被变到0,则根据所要嵌入的秘密信息比特把它修改为+1或-1。图1显示了JPMl的秘密信息表达和修改方式。
3、用遗传算法寻找最优+1/-1解
对于同样的载体图像和秘密信息,基于不同的密钥,JPMl中的随机+1/一1操作序列也不同。基于这些操作序列的JPMl的性能也不同。通过GA可以选择使
得,IPMl的性能最优的操作序列。因此需要把JPMl中需要优化的对象和优化目标与GA中的染色体和适应度函数相对应,通过GA的优化过程,使得JPMl的性能得以优化。
3.1 染色体构造
JPMl中需要优化的对象为操作序列,基于操作序列,染色体的构造过程如下。对JPMl 中所有需要修改的系数的+1/.1操作构成一个+1/-1操作序列,GA中的一个染色体对应这样一个+1/-1操作序列。记JPMl中需要修改的系数个数为Lc,则GA中的染色体的长度为Lc。染色体的表示如下:
P=P1P2…Pi…PLc,(Pi∈{0,1 },1
当pi是0,表示要通过减1来修改系数,当pi是1,表示要通过加1来修改系数。
3.2 适应度函数的构造
为提高JPMl的安全性,可选择隐写算法的某个/些评价指标构造适应度函数。分块效应是JPEG图像的固有特性,它衡量了JPEG图像8×8分块间的不连续性。在隐写分析中,分块特性的增加被用来检测JPEG图像中的隐写。本节基于分块特性构造适应度函数,以达到优化JPMl在分块特性方面性能的目的。
一幅图像的分块特性可定量表示如下:
(1)
隐写使得含密图像的分块特性增大,分块特性的增加量越大,隐写算法越容易被检测。由于分块特性是正数,可以用含密图像与其预测图像的分块特性的比值(Ratio OfBlockiness,简称ROB)来衡量隐写算法的安全性。ROB越大,越容易被检测,即安全性越低;ROB越小,越不容易被检测,安全性越高。ROB可表示为:
(2)
若待测图像为原始图像,则ROB的值接近1;若待测图像为含密图像,则ROB的值明显大于1。适应度值越大,对应系统的性能应该越好,在这里ROB应该越小。因此可以采用ROB的倒数作为适应度函数,当前待测图像的ROB的倒数的值就是当前染色体的适应度。适应度函数可表示为:
(3)
GA的目标是要找到一个适应度最大的染色体,也就是使得JPMl生成的含密JPEG图像的安全性最好的+l/-l操作序列。
4、秘密信息嵌入与提取
4.1 嵌入过程
图2 嵌入过程流程图
图2刻画了算法的流程图。整个嵌入过程可以分成六个步骤。在嵌入过程的一开始,需要把载体JPEG图像解码为JPEG系数,然后基于密钥对JPEG系数进行置乱。逐比特比较秘密信息与置乱的非零交流系数所表达的信息,得到需要修改系数的个数。应用GA寻找最佳的+1/-1序列,并修改相应的系数。然后,反置乱系数并进行熵编码,生成含密的JPEG图像。
4.2 提取过程
图3显示了接收端的提取过程的流程图。提取过程首先熵解码含密的JPEG图像,得到含密的JPEG系数。然后基于密钥对含密JPEG系数进行置乱,该置乱过程与嵌入过程中采用的置乱过程一致。从置乱的含密的JPEG系数的前16个非零交流系数中提取出秘密信息的长度,然
后逐比特提取秘密信息。
图3 提取过程流程图
5、实验结果与讨论
在数字隐写中,安全性和容量是评价算法性能的最重要的两个指标。JPMl和采用GA算法的JPMl(GA-JPMl)分别与Jsteg及Outguess(简称OG)进行了比较。采用bpnz来测度嵌入率。工作中用到的图像库包含2056幅来自美国自然资源保护局的未被压缩的图片,它们被转换为灰度图并且剪取中间的尺寸为512×512的部分。另外,包括12幅来自标准图像库的图片,它们的尺寸为128×128。在每个算法的JPEG压缩阶段所用的质量因子为80。
5.1 嵌入容量
GA—JPMl的容量与JPMl相同,因此此处只讨论JPMl与其余两种隐写算法的容量。实验结果表明,JPMl的嵌入容量为1 bpnz,Jsteg的嵌入容量约为0.5 bpnz,OG的嵌入容量小于0.4 bpnz。很明显JPMl的嵌入容量高于Jsteg和OG。
(a)标准库中的12幅图(b)NRCS库中随机选取的100幅图
图4 每一种隐写算法的容量
5.2 分块特性
我们在0.1到0.3bpnz的范围内比较所有这些隐写方法的ROB。图5(a)和图5(b)分别显示了不同隐写方法在嵌入率为0.1和0.3 bpnz时的ROB。可以看出JPMl的ROB值小于Jsteg和OG,而GA-JPMl的ROB值更小。也就是说,从分块特性增加的角度考察安全性,JPMl的性能优于OG 和Jsteg,而GA-JPMl则优于所有的这些方法。