🦄Python 实现LSB算法进行信息隐藏 包含空域与变换域 JPEG信息隐藏算法 对PDF文件进行信息隐藏 基于卷积神经网络的隐写分析 Matlab SRM、SCA隐写分析
LSB隐写是最基础、最简单的隐写方法,具有容量大、嵌入速度快、对载体图像质量影响小的特点
LSB的大意就是最低比特位隐写。我们将深度为8的BMP图像,分为8个二值平面(位平面),我们将待嵌入的信息(info)直接写到最低的位平面上。换句话说,如果秘密信息与最低比特位相同,则不改动;如果秘密信息与最低比特位不同,则使用秘密信息值代替最低比特位
嵌入信息前的载体图片
嵌入信息后的载体图片
JPEG的DCT系数
{0: 32939, 1: 15730, 2: 13427, 3: 11523, 4: 9540, 5: 7957, 6: 6607, 7: 5697, 8: 4834, -1: 15294, -2: 13637, -3: 11479, -4: 9683, -5: 7979, -6: 6878, -7: 5631, -8: 4871}
Jsteg begin writing!
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
经过信息隐藏后JPEG的DCT系数变化
{0: 32939, 1: 15730, 2: 12552, 3: 12398, 4: 8739, 5: 8758, 6: 6165, 7: 6139, 8: 4487, -1: 15294, -2: 12721, -3: 12395, -4: 8891, -5: 8771, -6: 6319, -7: 6190, -8: 4463}
F3steg begin writing!
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
经过信息隐藏后JPEG的DCT系数变化
{0: 47068, 1: 13416, 2: 13519, 3: 10075, 4: 9545, 5: 7077, 6: 6650, 7: 5016, 8: 4754, -1: 13308, -2: 13668, -3: 10124, -4: 9571, -5: 7249, -6: 6591, -7: 5098, -8: 4733}
F4steg begin writing!
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
经过信息隐藏后JPEG的DCT系数变化
{0: 59320, 1: 13618, 2: 11987, 3: 9875, 4: 8328, 5: 6860, 6: 5883, 7: 4910, 8: 4239, -1: 13692, -2: 11976, -3: 9976, -4: 8428, -5: 7007, -6: 5834, -7: 4964, -8: 4190}
获得嵌入域。若输入的是位图,则进行JPEG编码得到JPEG系数;若输入的是JPEG图像,则进行熵编码的解码得到JPEG系数
位置置乱。根据口令生成的密钥位一个伪随机数发生器,基于伪随机数发生器置乱JPEG系数的位置
编码参数确定。为了提高嵌入效率,一般希望n尽可能大,因此,根据载体中可用系数的数量与消息的长度确定参数r,并计算$n=2^r-1$
基于($n=2^r-1,r$)的汉明分组码得到编码校验矩阵,开始嵌入消息:①按置乱后的顺序取下面n个非零系数,在其中的LSB序列中按照以上编码嵌入n-r比特的消息;②如果未发生修改,并且还有需要嵌入的消息,则返回①继续嵌入下一分组;③如果进行了修改,则判断是不是有系数值收缩到0,如果没有,并且还有需要嵌入的消息则返回①继续嵌入下一分组,如果有,取出一个新的非零系数组成新的一组n个非零系数,在其中的LSB序列中按照以上编码重新嵌入以上n-r比特的消息,直到没有修改或收缩,最后,如果还有需要嵌入的消息,则返回①继续嵌入下一分组
位置逆置乱。恢复DCT系数原来的位置顺序
熵编码。按照JPEG标准无损压缩DCT量化系数,得到JPEG文件