资源下载地址:https://download.csdn.net/download/sheziqiong/85908923
资源下载地址:https://download.csdn.net/download/sheziqiong/85908923

Steganography

空域编码图像

  • 空域编码是指在图像空间域进行编码,也就是直接针对图像像素进行编码
  • 对像素进行编码,如 LSB 算法,主要有下面两种方式
    • 光栅格式
    • 调色板格式 GIF(graphics interchange format)
  • 一个图像编码标准往往包括多类编码方法,一个图像仅仅是其一类方法的实例。例如,常见的 BMP(Bitmap)、 TIFF(
    Tagged Image File Format)、 PNG(Portable Network
    Graphics)均支持光栅格式与调色板格式编码,对这两种格式
    编码分别又支持多种具体编码方法

LSB 隐写算法

  • LSB 隐写是最基础、最简单的隐写方法,具有容量大、嵌入速度快、对载体图像质量影响小的特点
  • LSB 的大意就是最低比特位隐写。我们将深度为 8 的 BMP 图像,分为 8 个二值平面(位平面),我们将待嵌入的信息(info)直接写到最低的位平面上。换句话说,如果秘密信息与最低比特位相同,则不改动;如果秘密信息与最低比特位不同,则使用秘密信息值代替最低比特位

嵌入信息前的载体图片

嵌入信息后的载体图片

变换域编码图像

JPEG

  • Joint Photographic Experts Group(联合图像专家小组)的缩写
  • JPEG 编码

JSteg 隐写

  • JSteg 的算法的主要思想是将秘密消息嵌入在量化后的 DCT 系数的最低比特位上,但对原始值为 0、+1、-1 的 DCT 系数不进行嵌入,提取秘密消息时,只需将载密图像中不等于 0、l 的量化 DCT 系数的 LSB 取出即可
  • JSteg 算法步骤
  1. 选择载体图像,并且将载体图像划分为连续的 8×8 的子块。
  2. 对每个子块使用离散余弦变换之后,用相应的质量因数的量化表量化,得到对应的 8×8 量化 DCT 子块。
  3. 将需要隐藏的信息编码为二进制数据流,对 DCT 子块系数进行 Z 字形扫描,并且使用秘密信息的二进制流替换非 0 和非 1 的 DCT 系数的最低比特位。
  4. 进行熵编码等,产生 JPEG 隐密图像。
  • JSteg 的具体嵌入过程
  1. 部分解码 JPEG 图像,得到二进制存储的 AC 系数,判断该 AC 系数是否等于正负 1 或 0,若等于则跳过该 AC 系数,否则,执行下一步
  2. 判断二进制存储的 AC 系数的 LSB 是否与要嵌入的秘密信息比特相同,若相同,则不对其进行修改,否则执行下一步
  3. 用秘密信息比特替换二进制存储的 AC 系数的 LSB,将修改后的 AC 系数重新编码得到隐秘 JPEG 图像
  • JSteg 不使用 0、1 的原因
  1. DCT 系数中“0”的比例最大(一般可达到 60% 以上,取决于图像质量和压缩因子),压缩编码是利用大量出现连零实现的,如果改变 DCT 系数中“0”的话,不能很好的实现压缩
  2. DCT 系数中的“1”若变成“0”,由于接受端无法区分未使用的“0”和嵌入消息后得到的“0”,从而无法实现秘密信息的提取

F3 隐写

  • 为了改善大量 DCT 系数不隐藏信息这一状况,人们提出了 F3 隐写
  • F3 对原始值为 +1 和-1 的 DCT 系数,进行了利用。F3 隐写的规则如下
  1. 每个非 0 的 DCT 数据用于隐藏 1 比特秘密信息,为 0 的 DCT 系数不负载秘密信息
  2. 如果秘密信息与 DCT 的 LSB 相同,便不作改动;如果不同,将 DCT 系数的绝对值减小 1,符号不变
  3. 当原始值为 +1 或-1 且预嵌入秘密信息为 0 时,将这个位置归 0 并视为无效,在下一个 DCT 系数上重新嵌入
  • 编写代码实现嵌入,并观察 DCT 系数变化
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}
  • 条形图绘制

  • 未经过信息隐藏的 DCT 系数,系数近似符合拉普拉斯分布,具有几个典型特点

    • 对称性 以 0 为中心达到最大值,两侧分布近似对称
    • 单侧单调性 以 0 值为中心达到最大值,两侧单调下降
    • 梯度下降性 小值样点较多,大值样点较少,分布曲线在两侧下降梯度逐渐减小
  • JSteg 隐写的 DCT 系数

    • JSteg 隐写可嵌入信息的 DCT 系数较少,隐写量较小,且相邻数值样点的个数接近,如 2 和 3,-2 和-3 形成了值对,卡方特征变化明显,因而提出了 F3 隐写
  • F3 隐写的 DCT 系数

    • F3 的设计虽然防止了相邻值出现数量接近的现象,也维持了分布函数的对称性,但使得偶数的分布增加,没有满足单调性
    • 这是因为载体绝对值为 1 的数值较多,当其被修改为 0 时,嵌入算法继续嵌入直到找到一个偶数值,或者将一个奇数值改为偶数值,这样绝对值为 1 的系数可以支持嵌入 1,但是不支持嵌入 0,需要使用或制造一个偶数
    • 另外,0 系数的数量有相应的增加,产生分布曲线向 0 收缩的现象

F4 隐写

  • 为了克服 F3 的缺陷,F4 对不同正负号的奇偶系数采用了不同的嵌入与消息表示方法
  • F4 用负偶数、正奇数代表嵌入了消息比特 1,用负奇数、正偶数代表嵌入了 0
  • 但仍然通过减小绝对值的方法进行修改,如果减小绝对值后系数为 0 则继续往下嵌入当前比特

  • F4 隐写的 DCT 系数

    • F4 显然保持了载体分布函数的对称性,也保持了载体分布函数的单调性与梯度下降性
    • 但 F4 依然存在使含密载体分布函数形状向 0 收缩的现象

F5 隐写

F5 隐写实现了基于汉明码的矩阵编码隐写,在一个分组上最多修改 R=1 次以嵌入 2r−1−r2^r-1-r2r−1−r 比特,采用的基本嵌入方法是基于 F4 隐写的

F5 的嵌入步骤

  • 获得嵌入域。若输入的是位图,则进行 JPEG 编码得到 JPEG 系数;若输入的是 JPEG 图像,则进行熵编码的解码得到 JPEG 系数
  • 位置置乱。根据口令生成的密钥位一个伪随机数发生器,基于伪随机数发生器置乱 JPEG 系数的位置
  • 编码参数确定。为了提高嵌入效率,一般希望 n 尽可能大,因此,根据载体中可用系数的数量与消息的长度确定参数 r,并计算n=2r−1n=2^r-1n=2r−1
  • 基于(n=2r−1,rn=2^r-1,rn=2r−1,r)的汉明分组码得到编码校验矩阵,开始嵌入消息:
    • ① 按置乱后的顺序取下面 n 个非零系数,在其中的 LSB 序列中按照以上编码嵌入 n-r 比特的消息;
    • ② 如果未发生修改,并且还有需要嵌入的消息,则返回 ① 继续嵌入下一分组;
    • ③ 如果进行了修改,则判断是不是有系数值收缩到 0,如果没有,并且还有需要嵌入的消息则返回 ① 继续嵌入下一分组,如果有,取出一个新的非零系数组成新的一组 n 个非零系数,在其中的 LSB 序列中按照以上编码重新嵌入以上 n-r 比特的消息,直到没有修改或收缩,最后,如果还有需要嵌入的消息,则返回 ① 继续嵌入下一分组
  • 位置逆置乱。恢复 DCT 系数原来的位置顺序
  • 熵编码。按照 JPEG 标准无损压缩 DCT 量化系数,得到 JPEG 文件

资源下载地址:https://download.csdn.net/download/sheziqiong/85908923
资源下载地址:https://download.csdn.net/download/sheziqiong/85908923

Python实现基于卷积神经网络的LSB算法进行信息隐藏隐写分析相关推荐

  1. 基于卷积神经网络和时域金字塔池化的语音情感分析

    基于卷积神经网络和时域金字塔池化的语音情感分析 一.概述   这是最近学习<Speech Emotion Recognition Using Deep Convolutional Neural ...

  2. Efficient feature learning and multi-size image steganalysis based on CNN【Zhu-Net基于高效特征学习与多尺度图像隐写分析】

    摘要 对于隐写分析,许多研究表明卷积神经网络比传统机器学习方法的两部分结构具有更好的性能.然而,仍然有两个问题需要解决:降低隐写分析特征映射的信噪比和对任意大小的图像进行隐写分析.一些算法需要固定大小 ...

  3. 基于卷积神经网络的密集人群估计/人群计数算法【内含教程和踩坑】

    文章目录 前言 一.什么是密集人群估计 二.实验前准备 1.Github开源项目--Awesome Crowd Counting 2.数据集下载 3.环境配置 三.ShanghaiTech数据集实验 ...

  4. 基于卷积神经网络的辛普森角色识别

    摘 要 基于深度学习在图像分类领域的优异性能,本文研究基于图像识别技术的辛普森角色自动识别方法.首先采集18个角色的16503幅辛普森角色图像数据集,然后在CNN模型框架下,修改最顶端的全连接层与分类 ...

  5. 基于深度学习的图像隐写分析综述 阅读

    背景 隐写术英文为Steganography. 现有的通信安全保障主要分为加密和信息隐藏:加密主要对秘密信息本身进行操作,但经过特殊处理后的明文更加容易受到第三方的怀疑;而信息隐藏则隐藏秘密数据的存在 ...

  6. 基于卷积神经网络的垃圾图像分类算法

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 垃圾分类作为资源回收利用的重要环节之一, 可以有效地提高资源回收利 ...

  7. python人脸识别系统界面设计_基于卷积神经网络的人脸识别系统的设计(Python)

    基于卷积神经网络的人脸识别系统的设计(Python)(论文10000字,外文翻译,参考代码,流程图,人脸图像库) 摘要:随着社会的进步与发展,个人信息的保护变得十分重要.传统的密码保护方式已经不再满足 ...

  8. 基于卷积神经网络方法的英文短文本情感分类(Python)

    摘要:互联网的快速发展,使得每个人表现自己,发表言论更加的自由和便利.Twitter.Facebook等应用软件为大众提供了表达自身情感的一个平台.情感分类,可以简单地表示为喜欢,厌恶和中性,也渐渐受 ...

  9. Python深度学习实例--基于卷积神经网络的小型数据处理(猫狗分类)

    Python深度学习实例--基于卷积神经网络的小型数据处理(猫狗分类) 1.卷积神经网络 1.1卷积神经网络简介 1.2卷积运算 1.3 深度学习与小数据问题的相关性 2.下载数据 2.1下载原始数据 ...

  10. 基于卷积神经网络和注意力机制的人眼闭合检测算法

    基于卷积神经网络和注意力机制的人眼闭合检测算法 前言 卷积神经网络 注意力机制 数据集 源代码 致谢 结语 前言 卷积神经网络 近年来,基于神经网络的识别方法已经成为一个热门的研究专题,该方法可用于特 ...

最新文章

  1. vue从创建到完整的饿了么(12)miste.vue
  2. 青源 LIVE 第 28 期 | 北大燕博南:下一代AI芯片—存内计算的硬核与软着陆
  3. qunee for html5 api,Qunee for HTML5
  4. DGL教程【五】使用自己的数据集
  5. 师弟走了,以我们都想不到的方式
  6. 2020年上半年小程序互联网发展报告
  7. 小猿圈python学习-函数的递归
  8. 【日志】数字电路电子钟制作日志
  9. 微信公布9月朋友圈十大谣言:包括接通电话手机的钱就会被转走
  10. 52、基于模块化方式安装LAMP
  11. 简单返回顶部代码及注释说明
  12. Backup Exec 在Windows平台下安装、设置及对Oracle数据库备份详细说明
  13. 关于求极限对几个问题的思考和总结
  14. 金蝶K3 WISE 15.0客户端安装部署指南
  15. C4D材质原理揭秘笔记-初学必看
  16. arm linux vi键盘错乱,Ubuntu Server 18.04安装后vi命令解决键盘错乱方法和wifi连接之后不能上网...
  17. win7硬盘检测工具HD tune使用
  18. Linux aarch64交叉编译之glm数学库
  19. 无法启动计算机的病毒是,电脑病毒导致系统中的exe文件无法打开如何解决
  20. 八、vue_options之computed、watch属性选项

热门文章

  1. word图片居中, 实际没效果解决、行间距无效果
  2. 【原创】个人常用电脑软件、浏览器插件、手机APP常用推荐
  3. 金盾播放器android安卓,(金盾高级视频加密系统跨平台播放器Android安卓安装步骤.doc...
  4. 机器人主流编程语言盘点 及优缺点分析
  5. 【Impala】基于Hive的快速大数据查询引擎——Impala知识点总结
  6. 南大计算机学硕复试,2017年南京大学计算机科学与技术系考研复试名单
  7. 作为一个iOS攻城狮不得不了解的网络知识
  8. 微信商户号转账到个人银行卡加密算法及结果查询问题
  9. 权重衰减(weight decay)
  10. 用python编程解决鸡兔同笼问题