图片隐写术 (Image Steganography)

什么是隐写术 (Steganography)

不同于密码学,隐写术是把信息藏到‘载体’之中,使信息变得不可见(invisible)。加密是把信息变得不可读(unreadable),也就是我们常说的乱码。早起的隐写术可以联想中国的藏头诗。把真正的秘密信息隐藏起来。还是就是抗战时期,用米汤写字,然后在碘酒的作用下可以显现出来。

 

现代隐写术的应用

现在的隐写术一般把数字媒体当成载体。 常见的隐写术就是图片隐写术,把秘密信息藏到一个数字图片当中。当然,随时技术的不断更新,载体不单单仅限于图片。网络包,音频,视频等,都可以当做隐写术的载体。

 

图片隐写术 & LSB 算法 (Least Significant Bits)

首先,先讲一下图片的分类。图片可以分为两类,一个是空间域 (spatial domain),常见的是.png .bmp。另一个是频率域(frequency domain),常见的是.jpg。空间域中,图片一般是由颜色的强度表现的(color intensity),频率域中,图片一般由颜色的频率表现的(color  frequency)。

LSB算法,也是最低显著位,也可以称之为最不显著位。什么是最低显著位。颜色的范围是0~255, 用二进制表示,就是八位,8 bits。 假设颜色255, 用二进制表示就是 11111111. 最低显著位,就是指的第八位,也就是最后一位。如图所示:

                                    

为什么?举个例子,对于人眼来说,颜色是有一定的冗余(redundancy)。比如,都是黑色, 我们并不能分辨出00000000, 和00000001的区别。比如下图:

                                                      

所以,隐写术也就是利用了颜色对人眼的冗余,来实现信息的隐藏。一个图片,最小的单位是像素,对于空间域的图片来说,每个像素,又是由,三原色,RGB组成。所以当我们看到一个颜色的时候,其实是用RGB三原色叠加在一起的呈现。

那什么是LSB 算法呢? (我们这里先考虑空间域的情况!)

假设,有一个纯黑色的图片,2*2 的分辨率,意味着一共4个像素。如果每个像素是由 [R: 2, G: 4, B: 5] 组成的,那么我们可以得出下面的结果:  

                                                   

我们还知道,计算机用二进制表示,所以转换成二进制的话,我们有下面结果:

                                                                          

现在,假设,我们有一个密文,而这个密文中,只有一个字母,‘Y’。 那如何把合格字母藏进去呢?我们首先可以知道,'Y' 转变成二进制的话,是‘01011001’。LSB算法,就是把每个字符串挨个与像素中RGB的最低显著位交换。在这个例子中,我们首先要确定用几个像素去藏这个信息('Y')。 我们用3个像素。其中第一二个像素,我们用到RGB 三个颜色信道,但是第三个像素,我们只用到RG两个信道。如图:

                                                       

生成的新的隐写图片与原图片的二进制对比:

                                                     

这样,我们就把信息‘Y’ 成功的隐藏到图片之中。最终生成的隐写图片与原图片做对比的话,我们并不能分辨出不同,显示结果,如上图的两个黑色。

这个就是LSB算法,也可以称之为LSB1。因为,有的人,为了可以扩大隐藏的容量,经常把最低显著位扩大到两位,三位,算法的话,也称之为LSB2, LSB3。 那么LSB2 又是如何工作的呢?

还是这个例子,4个像素的图片,隐藏秘密信息'Y'。这次我们要用几个像素呢?用了两个,第一个像素的RGB, 和第二个像素个R。如图:

                                                          

最终实现了信息的隐藏。

那么这个最低显著位最大可以扩大到多大呢?首先,这个有一个前提,因为你扩大的位数越高,对于图片的改变就越大,最终图片可能会出现失真的现象。所以,最低显著位可以扩大到多少的前提就是图片不能够失真。这个也称作 threshold of LSB。 LSB的边界,阀门。

在我们的研究中,我们用大量的图片进行测试,用视觉与统计的双重方法。在统计法中,用PSNR 和MSE去测量最终的结果,PSNR 的值越高,说明图片的质量越高。 MSE 代表两个图片的差异,值越高说明差别越大。最终实验结论得出: 一般在LSB4的时候,图片会出现一个明显的失真。所以我们把这个边界(The threshold of LSB) 定为LSB 3。但是这个阀门很受影封面图片的影响,在有的比较明亮的图片中, LSB 3的情况也可以出现不同程度的失真。所以在可以cover所有的情况下,这个阀门最安全的是设置为LSB 2。 

 

如果需要具体的数据,可以留言

 

 

  • 10
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值