基于LSB的隐写术以及OpenStego的基本操作

基于LSB隐写的基本原理

基本原理就是人眼对颜色的感知能力很弱,如果图片中一个像素有非常小的改变人眼是无法察觉的。
例如下面两张图片,一张是被修改过包含了一个txt文件的,另一个是原图,通常人眼根本无法分辨出哪一个才是原图。

128

 

主要的秘密就是标题中的LSB(Least significant bit)。字面意思最不显著的bit是什么呢?就是说二进制数码中最后的那个位置,这个位置上的数字决定了这串数码是奇数还是偶数。

如图所示,这个二进制数码中最后那个1所在的位置便是LSB。而这最后的位置上的改变对整个数字的影响是非常小的,特别是这个二进制数字比较大的时候,比如是8bits,24bits,32bits的数字。所以如果可以把这些二进制数字的末尾的位置修改了,写入我们想要写的内容,而且原来的数字差异不大的话,就可以实现隐藏内容。
124

这种实现的本质是欺骗人类的感官,因为人类的感官对于非常细微的改变并不敏感。比如声音和图片,这以图片为例,像素中的颜色可以用8bits,24bits,32bits的er二进制数字表示,如果人为的修改一点点,人类的眼睛并不能分辨其颜色的差异。如图,在8-bit颜色中,修改末尾的bit之后呈现的三种不一样的绿色,人眼却难以分辨。
125
当然每一个像素能存储的内容是有限的,但是一张图片里面包含很多的像素,所以我们可以选取一部分存储想要存储的隐藏信息。比如把文字加密后的密文存储在图片的像素中,这样看起来只是一张普通的图片,从而绕过审查传递密文。
123

可是人眼无法识别不代表计算机无法识别,因此是有办法可以发现图片中是否有藏匿隐藏信息的,比如一些基于统计学的方法。

131

所以不仅要隐藏,要加密,还要添加随机性防止被察觉。因此在设置密码的之后还要生成一个key作为seed加入到伪随机数字生成器中,在图片的像素中随机的选择位置存储需要隐藏的密文。

OpenStego的加密隐写操作

首先咱们从这个Github上的地址下载

根据不同的条件下载不同的,如果死windows用户,又不想解压,可以考虑下载setup-OpenStego.exe这个文件,然后直接安装。

126
隐藏信息
在隐藏信息之前需要做做两样准备,也就是Cover以及Message文件。第一个就是我们需要用来作伪装的无害的图片,第二个message文件就是我们用来存储信息的文件,一般创建一个.txt的文件即可。
首先我们找好一张可以隐藏真实意图的图片,比如这样一张:
128
然后我们新建一个txt文件,并写下这样一段话
“我年轻的时候就读过:论语,老子,孟子,尚书,礼记,大学,中庸,周易,左转,庄子,墨子,荀子,韩非子,孙子兵法………常识,老人与海,世界秩序,…….”
然后文件准备就绪以后,就开始想办法把这两个文件合二为一。
打开软件界面
129
第一行浏览咱们需要隐藏的装有需要传输的信息的文件,第二行死Cover,也就是咱们选好的看起来非常友好无害的图片,最后需要选择输出文件的名字和地址,到时候便于知道输出的图片在哪里叫什么名字。
然后需要选择加密算法设置密码,最后点击右下角的Hide Data隐藏信息即可。咱们查看一下隐藏好信息的图片发现和原来的图片没有什么区别但是其实里面已经包含了背书单文件了:

提取隐藏信息
这个操作相对简单,必须要知道对称加密的密码才可以提取,而且要保证图片没有被压缩过或者修改过,有时候为了防止通讯软件压缩图片会考虑选择以传输压缩文件的方式传输。
130
首先选择Extract Data提取数据,然后第一行找到含有隐藏数据的文件,第二行浏览输出地址,就是提取出来的文件保存在哪里,最后必须要输入密码才可以解密,因此需要正确的输入密码,最后就是提取数据。
操作很简单吧(●’◡’●),可以自己试试看。

 

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s