Adaptive Payload Distribution in Multiple Images Steganography Based on Image Texture Features论文精读

这是CMD那篇文献

A Strategy of Clustering Modification Directions in Spatial Image Steganography

的其中一篇cited,好像是图像选择的,也就是说现在的云环境下,可以采用多图来藏一个秘密信息,但是怎么在多个图像中选择载荷这是一个问题。

这个思路很有意思啊,那我也可以用遗传算法来选取最合适的载荷分布,其实这个就是多载体隐写的其中一种方法

论文有三个创新点

1.一个是提出了一种针对加性失真的多图信息隐藏的框架,基于的假设是接受者默认知道发送者的秘密信息的载荷分配。

2.提出了两种分配失真的策略,都是基于图像本身的纹理复杂度和失真分布提出的,另外隐写方法都是跟目前的SOTA隐写方法进行比较的。

3.开展了一系列的扩展实验来展示这两种分配失真策略究竟哪一种在隐写安全性上表现更好,并通过实验证明加性负载分布策略在多图隐写方向的重要作用。

二、相关工作

这一部分主要介绍目前SOTA的隐写思路

2.1目前单图像隐写有两个方向:隐写失真函数设计以及保持某种图像特征的隐写方案设计

在第一个方向的相关研究中,由于STC和Gibbs construction两个工作已经把加性隐写编码和非加性隐写思路的框架设计的很好了,所以现在大部分的工作都集中在隐写失真函数的设计。

然后提了WOW,S-uniward,HILL还有CMD和Synch

在第二个方向的研究中,提了HOGO的例子,HUGO是在隐写中努力保持SPAM特征变化最小;MG算法是以一个独立量化高斯函数序列来作为嵌入载体,在嵌入过程中尽量保持载体图像和隐秘图像的KL散度保持不变;还有MVGG,多元广义高斯模型,跟MG类似,不过在初始化的时候没有采用统一的广义分散变量,有更好的方差表现。接着提到了MiPOD方法,MiPOD是什么意思呢?意思是最小化最优检测的检测力度。

2.2多图隐写

Ker第一次提出多图隐写的策略,(“A. D. Ker, “Batch steganography and pooled steganalysis,” in Proceedings of International Workshop on Information Hiding, pp. 265-281, 2006.” 用的是KL散度来进行payload的自适应分配。载体图片的数量会影响到隐写术的安全性。

对于独立分布的载体图像来说,最好是把所有的载荷都平均分配到各个载体当中去。

之后,提出了一个叫Max-Greedy的策略,还有一个zhao提出的把安全指标和嵌入载荷绘制的曲线作为评价指标来嵌入的。

最近,cogranne等人提出了三种衍生的分发策略,DeLS、DiLS、IMS;其中DELS和DiLS分发payload的策略是每个载体图片都适用相同的KL散度,相同的失真值,IMS是把所有的cover image都连接成一个大的图片,然后再直接计算失真。

“Sharifzadeh“等人提出了针对不同Batch size的隐写策略,最终证明了越小的batch size效果越好。

三、这篇文章的多图隐藏算法框架和安全性分析

这个小节介绍本文的算法框架,基于图片纹理复杂度来提出的一个自适应分配负载失真的算法框架,同时,本文的工作还能在多图信息隐藏方案的设计中作为一个一般性的灵活方法论。

从隐写分析的视角,提出了一种可以评估多图隐写方案安全性的理论分析方法。

3.1根据图片纹理复杂度的自适应载荷分配

在多图信息隐藏里,最重要的就是如何分配载荷,“Kharrazi” 等人提出了一种分配方案,是根据潜在的隐写分析者的可用信息来选择更好的载体图片的。

“Kharrazi”的方案意思是发送者自己捕获载体图片,发送一次就把这一批载体图片都删掉,不会重复使用,所以这些载体图片就永远都不会被隐写分析者拿到,所以攻击者就没有不载密的原始cover image,也就不能比较原始cover和现在的stego的区别。

下面就是参数的介绍,载体图像我们用X来表示,隐写容量用C来表示,n表示载体图像的总数。M作为要传递的隐秘信息集合,|M|表示隐秘信息的总长度,文中所开展的实验,默认情况下,图片的隐写能力是远大于秘密消息的长度的。“Ψ”表示一种负载分配方案,引出公式1

“M∗ = Ψ(M, IFX) = [m1, m2, · · · , mn] (1)”

m1就表示在第一张图里面的子嵌入率,IFx表示第x张图的图片纹理特征

注意隐写发送者需要和接受者共享嵌入密钥,密钥已经在发送隐秘信息之前用可信赖的安全信道共享过了,用K来表示嵌入密钥,所以X加K加M就生成了Xm,那么针对于单个载体图就有公式4.


Ximi表示已经按照密钥嵌入了隐秘信息mi的xi,如果|mi|=0,那就表示没有嵌入,Xm表示加密图片,可以通过公共信道传输。

我们的工作假定隐秘信息的载体负载率密钥已经在传输加密图片之前就已经共享过了,所以接受者可以把所有的隐秘信息连接起来。

这里需要注意区分,ki表示的是嵌入密钥,而不是简单地在cover里面嵌入多少信息的mi,作者还专门提到了,负载分配可以放在秘钥里面一起传输,并且把负载分配存储在前几位的秘密信息里面。也就是我们可以把密文和密钥比对一下,就可以得到mi,即公式7和公式6的1,


所以综上所示,多图信息隐藏理论可以表示为


X-cover

M-secret message

φ-负载分配方案

emb-嵌入方法

ext-提取方法

K-密钥

有几个需要注意的点:

1.隐秘性,在传输的时候不仅要传输载密图像,还要传输没有载密的图像,这样攻击者就分不清哪个是stego哪个是cover了。

2.多样性,每一个单独图像的嵌入方法和提取方法应该是不同的并且独立的,这个嵌入和提取的办法可以是现在流行的空域隐藏办法S-uniward,wow,HILL,Mipod等等,文中的实验只是用了相同方法的,就比如说是嵌入和提取的时候用的都是suniward

3.多来源,cover image可以是多种多样的来源,比如说从网上下的,或者是自己拍的。

3.2 理论安全性分析

1)又提到了说隐写分析者只知道总的嵌入率而不知道每个单图的嵌入率,每个单图的嵌入率也就是mi是放在密钥里面一起分发的。

2)隐写分析者掌握目前我们所采用的隐写术嵌入方法。

3)隐写分析者可以对自适应嵌入进行学习并重新计算stego image的特征值

IF表示的是图像纹理特征,如果纹理特征完全不变的话表示为:


为了避免隐写分析者获得图像的纹理特征来区分cover和stego,图像纹理不应该是完全不变的,如果完全不变会让隐写分析者用大数据量分析后获得规律,所以说一个好的多图信息隐藏方案就是设计一个保持纹理尽量不变的嵌入方案。

公式10的意思是负载分配一定是有序的,第i个图的负载高,那么他载密量就高。

这个可恢复性是隐写分析者能够分析stego和cover的关键,只需要有很微弱的有序性就可以实现隐写分析了,需要注意的是,上面提到的完美保持的隐写嵌入方案可以给这种有序性提供保障。

但是在密写者的角度,就不希望stego具备这种可恢复性了,要尽量避免嵌入操作之后的stego有可恢复性,这样即便隐写分析者可以得到总体负载,也不知道都分配在哪些载体里面具体分配了多少了。

另外,隐写分析者只能获取到stego,而不能获取到cover,如果在这样的前提下,隐写方的隐写操作是理论上完全安全的,并且隐写分析者是无法获取到M,K,φ的,他只能截取到Xm

公式11论文里没有解释,其实是信息论的互信息,用I来表示,I可以写成H。

上面是互信息的基础定义,这样就不难理解论文里的公式11了。


公式12的意思是攻击者只要能获取到的是Xm、K和φ就能得到密文M,所以公式11的最后一项条件熵等于0.(是个必然事件)


所以,结合公式11和公式12,我们可以得到公式13


也就是说嵌入密钥的信息量一定是大于H(M)的,这样就可以避免有可能的通过密钥而进行的攻击活动。隐秘信息的信息熵最多也就是13式中的左边部分,也就是已经知道Xm和φ的先验信息后对K的攻击所需要消除的不确定性。

4.两种负载分配方案

这里其实说到了三种嵌入分配方案,一种是ES-UPD,意思就是不关注载体本身的属性,直接平均分配。

 这篇文章提出了两种负载分配方案,

ES-ITC是根据图像问题复杂度来embedding strategy-image texture complexity,

ES-DD是根据失真分布embedding strategy-distortion distribution

ES-ITC方案会给每一个图片根据其本身的问题复杂度设定子嵌入率,总体原则是尽量少的图片当中,每一张图片的嵌入率跟他们的嵌入能力相关。

ES-DD方案根据载体统计失真值分布来决定子嵌入率,也就是嵌入操作带来的载体改动。ES-DD方法可以聚类多图嵌入的影响,并且可以有效地把嵌入位置集中在纹理复杂区域。

这些多图负载分配方案可以跟现有的sota的单图隐写思路放在一起研究,然后他又一次提出,把负载分配方案作为私钥的一部分或者是嵌入信息的一个小的头部信息。这些信息都是在发送stego之前发送方和接收方共享过的。

说可以用LSB来嵌入这些头部信息,然后接收方可以通过LSB提取头部信息,然后提取秘密信息,再连接起来。

 4.1 ES-UPD

均匀载荷分布,其实没啥好说的,就是总的嵌入率不要超过图的嵌入容量就行了

4.2 ES-ITC

他用的是图片的熵作为衡量图片嵌入能力的标准,说图片熵可以刻画图片的纹理,然后把图片的熵从高到低排个序,然后计算他们的隐写容量,最后满负载从高到低去使用载体图片,尽量少地使用载体图片。

说根据文献29,30,纹理越复杂,安全payload就越大,然后文献27也说了,纹理越复杂,越不容易被隐写分析分析出来,纹理复杂区域在嵌入隐秘信息时相对于平滑区域是更不敏感的,所以应该更多地把信息嵌入在这里面。最后他用两个参数来估计图像的隐写能力,一个是图像的大小,一个是图像的熵。

用了一个高通滤波F和X做滤波处理,滤波完了的图像跟原始图像是一样大小的。滤波核F


有公式17


a1和a2是行索引,b1和b2是列索引,Xi(a1,b1)是对应位置上的像素,d是距离,θ是夹角。

 灰度共生矩阵P是计算u和v同时出现的次数。设定d=1,θ是0,45,90,135

就有了图2的情况


然后图片的信息熵被用来作为偏置加入到模型里。


、共生矩阵被当做信息熵公式里的概率了。

因为有四个θ,所以我们能计算出四个hi,然后求平均作为他的信息熵。

这个20公式需要注意,是一个非常好的归一化方法


h最小和h最大是在n个图片里最小和最大值。

为了证明公式20,他从BOssbase里随机选了100张图,然后用20 来计算他的嵌入能力。算完了之后再用信息熵来算出嵌入能力,一般情况下都是纹理复杂的嵌入的多。然后他举例四张图,从左到右依次是嵌入能力由小到大。

然后公式21、22表示的意思上面说过了,先排序,然后用前p*个图片,后面的不用,算法的目的是要找到最少的图片能够满足嵌入能力正好比M大。

4.3 ES-DD

ES-DD是根据嵌入失真值分布来进行负载分配的,嵌入失真也就是在修改原载体的时候用一个失真函数来计算cover和stego的差异,我们可以用现代的失真函数就可以得到失真值,这里举了一个例子,HILL的失真函数。也就是公式23,这里有一个高通滤波,两个低通滤波。


H是一个3X3的高通滤波,L1是一个3X3的低通滤波,L2是一个15X15的低通滤波。

之后他把cover集合中的所有像素都拍了个序,按照失真值从低到高,只选取前M个像素。公式24和公式25意思就是我把选取出来的像素点设为集合S,然后把待嵌入像素集中的像素都遍历一遍,看它是否在S集合里面,可以算出来m密写消息的长度。

(这里有个问题啊,怎么把信息提取出来呢?如果这么说的话,那都是乱序的,到时也不一定,如果遍历的时候是顺序遍历的那就没事。)

4.4 分析上面几个方法的计算复杂度

ES-DD的计算复杂度是O (nrslog (nrs))

ES-ITC如果r×s > logn, ES-ITC的计算复杂度是O (nrs)。

5 实验结果

为了说明先进性,比较了四种方法,ES-ITC,ES-DD还有平均法ES-UPD还有sota的IMS

5.1 实验过程

第一段介绍了实验当中所用的评价函数,是一个叫LOF的方法,local outlier factor,检测完了之后会有一个对应的LOF的值,这个值越大,这个参与者的等级就越高,等级越高,他被检测出来的概率就越大,这个LOF应该是sota的检测方法。LOF在论文里是42参考文献,介绍sota的检测方法的是36.

后面介绍了负载分配方法跟几个成熟的单图隐写算法结合,包括WOW,S-uniward,HILL还有MiPod,这几个的一些初始参数设置。

本文中设定的负载率,在0.1-0.5.

作者做了10组实验,意思是有10个发送者,其中1个是guilty参与者,这个guilt参与者来实现密写操作,分析者的目的就是把这个guilty actor找出来,也就在攻击者这个角度考虑,最好的情况是guilty actor的ranking最高,也就是LOF值最高。

详细的实验步骤:

1)随机选n个图片,然后分成na组,每个组有一个发送者

2)提取这na个组每个组的图片特征,用SRM

3)把提取到的特征分组,计算na个发送者当中每两个发送者的特征距离,用最大平均差异来实现

4)最后计算每一个发送者的LOF值

最终得到了每个参与者的平均LOF值,然后评估guilty actor的ranking,比较不同方案的ranking,从这个指标分析负载分配方案的安全性。

5.2 与ES-UPD在普通盲隐写分析上的表现对比

把WOW、S-uniward、HILL跟三个负载分配方案做结合,参与者的数量用了三组,10个,20个,40个。

表1到表3展示的是平均LOF值,在五个payload下,用的WOW方法分别与三个负载分配方案得到的结果。降序排序的。划线的guilty actor越靠上,方法越不安全。

这三个表展示的结果表示提出的算法是有效的,在低payload条件下表现差不多,但是在高payload条件下,是更好的。

全部的实验结果在图4里,三张图分别是三种敷在分配方案在WOW,S-uniward以及HILL算法里的表现。

5.3 与IMS在普通盲隐写分析上的表现

第24个文献提出的sota负载分配方案,20个参与发送者,发送100或者200张图片,图5展示的是结果,结果发现ES-DD和IMS表现相当,但是ES-ITC不知为啥很差,而且发的图越多,越差。

第二段说明了把MiPOD也跟三个负载分配方案作了结合,并且提到了为什么没有把他跟另外三个实验放在一起做,因为MiPOD的隐写方法比较特殊,他不是最小化嵌入失真,他的失真函数是基于可检测性做得。我们把发送者数量定为20,每个发送者发送100或者200的图片,图六展现了MiPOD方法的统计结果。

结果发现还是ES-DD和IMS最好,ES-ITS次之,稍逊一点。

最后一段说了IMS是只能用在同样size的图片当中的,而ES-ITC和ES-DD可以用在各种图片尺寸中,更灵活一点。

5.4 各种不同的负载分配方案在数值上的分布

当然在这个部分,并没有ES-UPD,因为他在每一个载体上的负载都是一样的。

ES-ITC某些图片的负载是0,这些完全跟cover相同的stego可以迷惑攻击者,ES-ITC策略会尽可能地使用更少的图片,而IMS和ES-DD在分配的子嵌入率上是很类似的,不同的是IMS更分散一点,也就是不同图片子嵌入率更分散一点。

5.5 在SRM分析下的表现

在本节,分析四种算法的安全性,并用现在sota的隐写分析算法SRM。

前提是假定普通盲隐写分析算法已经找到了guilty actor,然后把guilty actor的图片放在SRM里分析,用34671维的图片特征来进行分类,在BossBase数据库里随机找5000张train,5000张test,指标是Eoob,表示错误分类的正样本和反样本,同样也是越靠近0.5越好,表4显示了四种算法的表现。

(从这个表里看好像ES-ITC表现的更好一点啊)

5.6 自适应批量大小的图像隐写术

文献26提到了一种推断,那就是如果能实现大批量小负载的话,隐写的抗检测性还能进一步提升,相对应的高负载应该用一个小的批量,根据这种思路,文章把ES-ITC和ES-DD的批量大小设置为一个根据负载率而自适应变化的n值,在文中的实验中,n值设置为2的幂,最大的批量大小为128.

4096对cover和stego被随机选出来,跟HILL结合,我们计算了所提出的两种负载分配方法的表现。n值取2-128,之后再用SRMd2来判断两种方法的安全性。

图8显示,小负载条件下批量越大算法表现越好,小批量会提升大负载的安全性表现,ES-DD方法对于batch大小更敏感一点,如果把ES-ITC和ES-DD都加上自适应批量大小的话,会显著提升抗检测性能,跟AdaBIM比较,结果ES-DD和AdaBIM比较好,ES-ITC稍微差一点。

6讨论

总结一下本文的工作,提出的这两种方法是比ES-UPD更好的,能抗普通盲检测方法。原因之一在于两种方法都可以不突破载体的最大安全能力,原因之二在于两种方法都可以实现不同载体的不同子负载率,可以比平均分布更安全。

ES_ITC方法根据图像的纹理复杂度来自适应地分配每个图像的负载,而隐秘信息之后图像的纹理复杂度又会发生变化,而攻击者,也就是隐写分析者只能拿到stego的数据,也没有办法从纹理复杂度去分析载体是否嵌密。所以ES-ITC是无法保证可恢复性的。

ES-DD找出M个像素点,是按照失真大小找的,同样是不可恢复的。

正因为这个不可恢复性,攻击者不可能去攻击这两种方法密写过的信息。

表4说明提出的两种办法是比ES-UPD要好的。

跟IMS也就是现在的sota技术相比,ES-DD跟IMS差不多,但是ES-ITC会差一点,尤其是在负载率比较高的时候,这是因为负载率比较高的时候ES-ITC算法会贪婪地把信息放在更高安全性的图片当中,这就导致个别图片的负载率过高。

图7展示了IMS和ES-DD方法的不同,这种不同主要是由于两种算法的失真值计算方法不同导致的。IMS会把所有图像都连接起来,如果图片多的时候会特别耗内存。而且,如果图片的大小不同的时候,这个方法实现起来是比较费劲的。ES-DD就避免了这些问题。

就像文献27所说,一个隐写方一定要跟普通用户表现的一样,所以不能避免隐写工具的使用,这样会导致载体图片被破坏,一般情况下,隐写者可以自行捕获用来隐写的图片,并在离线环境下完成隐写操作,用于隐写的载体图片最好不要再次使用,可以迷惑攻击者。

一般情况下隐写之前还要加密一下,然后把这串比特流嵌入进去,因为我们用的是多图隐藏,所以就算是攻击者破解了其中一张图,也没有任何意义,因为密文不全,他就无法解密。

7结论

提出了两种方法,安全性还可以,把负载分配方案和现在的sota隐写方法放在一起使用。

还说了一句想要把这个方法放在Jpeg域实现一下。

以上。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值