隐写术基础

article/2025/7/20 17:03:21

目录

前言

一. 隐写系统模型

二. 隐写分析系统模型

三. 对比隐写技术与密码技术

四. 隐写术的基本术语与概念

4.1 不可感知性

 4.2 安全性

4.3 隐蔽性

4.4 鲁棒性

4.5 隐藏容量

4.7 检测粒度

总结


前言

隐写术是一门关于信息隐藏的技巧与科学,所谓信息隐藏指的是不让第三者知晓信息的传递。隐写术的英文名叫做Steganography,起源于德国的一位修道士特里特米乌斯的著作《steganographia》。隐写技术提供对秘密信息存在性的保护,可以看成是一种保密通信技术和安全存储技术。数字隐写的载体包括音频、图像、视频、文本、网络包等等。

一. 隐写系统模型

音频隐写对抗模型包括三个实体和两个系统。

  • 三个实体:隐写者、接收方和隐写分析者。隐写者和接收方利用隐写系统来传递信息。隐写分析者利用隐写分析系统来发现和检测隐写通信系统的存在性。
  • 两个系统:隐写系统和隐写分析系统

隐写者可以看成信源,接收方可以看成信宿,密钥K可有可无,在传递时的公开信道可能是有损信道。系统模型图如下:

一个隐写系统S_0是由隐写者的消息嵌入算法和接收方的消息提取算法两部分组成。\epsilon代表嵌入算法集合,D代表提取算法集合,如下:

S_0=(\epsilon,D)

对任意的消息嵌入算法都一定有对应的消息提取算法,K代表隐写密钥,如下表达式:

\forall Emb_K\in\epsilon, \exists Ext_K\in D, s.t Emt_K=Emb_K^{-1}

利用M代表信息,C代表原始载体,s代表携带信息的隐秘载体,可得如下表达式:

\begin{cases} Emb(C,K,M)=S\\Ext(S,K)=M\end{cases}

在有损信道下,如果Ext(S',K)=M依旧成立,则称S_0是鲁棒的。

二. 隐写分析系统模型

隐写分析系统S_a可利用统计分析特征来正确区分隐写样本S和正常样本C,本质上是一个分类检测器,如下表达式:

S_a(X)=\begin{cases}0,&\text{if X is normal} \\1,& \text{if X is steganography}\end{}

目前隐写分析系统正从传统的机器学习方法往深度学习技术发展,即便如此,一个可投入应用的隐写分析系统少之又少,此领域有待发掘。当前隐写分析系统主要还停留在评测隐写算法的安全性上。隐写分析系统的主要流程如下:

三. 对比隐写技术与密码技术

隐写技术总体上来看比密码系统更安全,但是由于密码技术的通信效率更高,所以目前生活中的加密主要还是使用密码技术。关于两者的对比可形成如下表格:

隐写技术密码技术
本质区别保护通信双方进行秘密信息交换行为的事实,即保证通信的隐蔽性。安全层级更高保护内容机密性、完整性和非否认性。攻击者无法获知数据的真实内容但能够知道其为加密数据或者通信双方采用了加密通信。
安全性评估分析者使用充分多的检测器对载密样本和自然样本进行检测的结果等效于随机猜测,或者分析者的检测器无法区分是载密样本还是自然样本。其安全性的本质上是关于分类检测器的可靠性问题。基于隐写技术的数据保护需要数字媒体来提供隐蔽信道,因此隐写的安全等价于检测器对于数字媒体统计特征改变的不可区分性。密码系统基于,到目前为止,不能够设计出比暴力搜索密钥更快的攻击方法,其应用通信的效率更高。
数学基础隐写系统设计的安全性模型是基于数字信号的统计学理论。密码系统设计的安全性模型是基于密钥或者某些公开的数学难题。

举例音频隐写与密码技术最直观的区别如下: 

基于图片的隐写如下:

 

隐写也可以和密码系统结合起来进行使用,如下:

四. 隐写术的基本术语与概念

4.1 不可感知性

不可感知性又称之为感知透明性,指的是隐写后的载体在感知上与原始载体不存在差异。更专业一点就是,嵌入失真是不可感知的。也有一套客观度量的评价指标PEAQ,其基本结构可见下图:

 PEAQ算法对参考信号和测试信号进行对比分析得出语音频质量的客观差异等级(ODG),ODG越大则嵌入失真越小,不可感知性越好。另一方面,主观上也有平均主观意见MOS。两者的质量等级图如下:

 4.2 安全性

安全性关注于统计不可检测性,是指隐写算法能够抵抗隐写分析攻击。从数学的角度,其度量指标可使用混沌矩阵来定义,包含检测正确率P_{ACC}和错误率P_e。利用P_{FA}代表虚警率,即假阳性率(False Positive Rate,FPR);利用P_{MD}代表漏警率,即假阴性率(False Negative Rate,FNR)。数学关系式如下:

P_{ACC}=1-P_e=1-\frac{P_{FA}+P_{MD}}{2}=1-\frac{FPR+FNR}{2}

如果以坐标(P_{FA},1-P_{MD})为点绘制接收者操作特征曲线(Receiver Operating Characteristic curve,ROC曲线),该曲线下的面积AUC(Area Under the Curve of ROC)值可展示其检测性能。具体来看AUC值越大表示分类检测器的正确率越高,检测性能越好。具体的规定指标如下:

4.3 隐蔽性

隐蔽性包含了不可感知性和安全性,也是隐写系统的基本要求。从这个要求不难看出,隐写系统比密码系统的安全需要层级更高,密码是保护数据的机密性,而隐写系统需要保护数据的隐蔽性,通俗上讲就是保护通信行为不被检测。

4.4 鲁棒性

鲁棒性指的是载体在经过信息处理的操作后仍然能够正确提取隐藏信息,这里提到的信号处理操作就包含:二次压缩码率转码

利用M'代表提取信息,M代表嵌入信息,则隐写算法的鲁棒性可以用信息的比特误码率(BER)来度量,计算式子如下:

BER=\frac{\text{difference number bits between M and M'}}{\text{total number bits of M}}

如果BER=0,则表明隐写算法对操作是完全鲁棒的。

4.5 隐藏容量

隐藏容量即负载,指的是隐藏消息的长度,通常用相对负载率来度量。严格意义上来讲,相对负载率(RPR)会受到不同嵌入域和嵌入方式的影响,为了统一表达形式,|M|代表隐藏消息的大小,|S|代表隐秘载体的大小,可以直观的用如下表达式:

RPR=\frac{|M|}{|S|}\times 100%

性质:

  • 当增加隐写算法的嵌入负载率时,算法的安全性和鲁棒性会同时降低
  • 隐写算法的鲁棒性和安全性也是相对独立的,若增强算法的鲁棒性,即增强嵌入强度也会引入大量的噪声,继而降低算法的安全性

所以,当把负载率、安全性和鲁棒性之间的关系形成图像,如下:

4.6 嵌入效率

嵌入效率指的是每单位期望的嵌入失真条件下,隐藏的期望比特数。由于嵌入失真的计算形式较为复杂,此定义也可以简化为平均每次嵌入修改可隐藏的消息比特数,计算的公式如下: 

嵌入效率通常由隐写算法的基本嵌入编码隐写码等因素决定。

4.7 检测粒度

检测粒度是衡量隐写分析系统的性能指标。由于语音频文件是一种流式数据,时间可以很长,因此检测器需要按音频片段来进行检测,音频片段的长度就可以看成隐写分析器的检测粒度。

易得,若检测粒度过小,则统计特征不显著;若检测粒度过大,对检测器的计算性能要求更高,也会引入更多的噪声特征。种种这些因素都会直接地影响隐写分析器的性能。

总结

音频隐写的方法可分类为如下:

 


http://chatgpt.dhexx.cn/article/3jcIio57.shtml

相关文章

CTF学习之MISC之图片隐写与文档隐写

CTF学习之MISC之图片隐写 隐写术概述 图片隐写技术图片EXIF信息隐写图片LSB低位隐写 隐写术(Stega) 隐写术(Steganography,简写Stega) 一门关于信息隐藏的技巧与科学 信息隐藏:不让除预期的接收者之外的…

隐写术

目录 隐写(信息隐藏,steganography) Stegsolve Binwalk MP3Stego Bftools(Brainfuck) F5-steganography-master S-Tools 隐写(信息隐藏,steganography) 目的:以表面正常的数字载体如静止图象、数字音频和视频信号等作为掩护&#xff…

OMNET++安装教程

安装: 如果你是windows系统,那么强烈推荐你跟着B站上的教程来学习,下面是链接。 这个博主讲的特别细致,而且会捎带讲几个例子,有助于我们快速的建立起来学习的信心!!! 当时我看到…

【OMNET++】OMNET如何开启Debug调试

1.前言 OMNET作为网络仿真软件,其编译语言为NEDC和C,在学习过程中我们该如何运用debug跟踪代码呢?这一讲我们简单和大家分享一下OMNET如何开启Debug调试。 可能我们翻阅很多资料,都会提到一句话,Window下的OMNET是基于…

【OMNET++】OMNET安装卸载说明以及原理探讨

前言 我们安装OMNET,参考file:///D:/omnetpp-5.4.1-src-windows/omnetpp-5.4.1/doc/InstallGuide.pdf的官方文档,其支持的平台很多,例如window、Ubuntu 、Linux以及红帽等系统,这篇博文以window为例,简单说明其中注意…

Ubuntu18.04 安装 omnet 5.6.2

1. 下载所需的OMNet版本 下载链接: OMNeT官网下载 2. 解压下载的omnet包,找到安装教程 解压方式:可以鼠标右击,选择Extract here;也可以在终端中使用命令行解压. 安装教程在: omnetpp-5.6.2-src-linux/omnetpp-5.6.2/doc/Install…

OMNeT学习之TicToc2-7详解

OMNeT学习之TicToc2-7详解 前言 安装好OMNeT,学会新建项目之后,开始学习OMNeT提供的tictoc案例,共17个,之前的博客中已经讲解了Tictoc1,本次学习2-7。 本人学习一个tictoc工程,主要就是看它的cc文件、ned…

omnet++构架与源码分析(1)

omnet模型以及运行环境部分使用c开发,IDE以及插件使用Eclipse以及插件方式开发。其中c代码位于解压后的include与src目录; src下面分为: sim:仿真内核类的CC代码;各种头文件,都在include目录;…

linux下运行omnet,Ubuntu安装Omnet++

1.官网下载Omnet++压缩包(https://omnetpp.org/),解压到安装文件夹 tar -zxvf omnetpp-5.1.1-src-linux.tgz /opt 2.运行./configure 报错configure: error: Bison not found, needed to build OMNeT++/OMNEST – please install it! 解决办法:安装bison,安装完成后会提示还…

OMNeT学习之新建工程

OMNeT学习之新建工程 前言 之前学习了OMNeT的安装与运行官方的实例代码,这篇文章记录一下,OMNeT如何创建一个新的项目。 本人为初学者,如有错误望批评指正! 本文原创,创作不易,转载请注明! …

omnet++ 之aloha示例 的动画效果分析

void Host::refreshDisplay() const {cCanvas *canvas getParentModule()->getCanvas();const int numCircles 20;const double circleLineWidth 10;// 第一次使用时候创建:如果没有传输波形图,则创建一个圆环内部填色,创建20个圆环&am…

【OMNeT+INET】详解OMNeT开源库INET(一)

1、前言 在我看来,网络模拟器是用于评估目标系统性能和能力的方便工具,不同的设计方案,在不同的配置下不同的操作条件和运行场景下,可以用于帮助理解系统并获得与性能相关的参数(例如吞吐量、延迟、稳定性、健壮性和可…

omnet结果分析anf文件

运行omnet项目,在result文件夹里生成vec 和sca 文件。这两个文件是模拟的统计信息。 我们下面来进行结果分析,首先要新建一个.anf 的分析文件。(直接双击vec文件系统会提示新建一个anf文件,finish)Finish 之后,把左侧result 文件夹里面所有的.sca、.vec 文件拖到Input fi…

一些OMNET使用心得

一些菜鸡学习心得,如果有错的话希望大佬能帮忙指出,感激不尽!! (底层组织结构是大佬帮忙写的,感谢大佬带入门) 项目组织 \prj \prjname \simulation \results package.ned omnet.ini n…

OMNET的安装说明

1.安装MingGW GCC编译环境的安装程序 1.下载安装包: http://www.mingw.org/download/installer 2.自动弹出一个窗口 3.选择下载  左栏选中basic Setup,右栏选中GCC和G,选择的方式右键 Mark for Installation 4.下载成功  点击菜单栏的In…

2022-04-21 Omnet学习笔记(一)

Omnet学习笔记(一) 前言 1、本机为Inspiron 5005,为64位,所用操作系统为Windos 10。所使用软件为Omnet-5.2.1。 2、推荐Omnet入门教程系列 实验现象 在网络Tictoc1中创建两个节点,分别命名为"tic"和"t…

OMNeT++学习(概述+框架)一

中文手册地址 之前一直学习的是mininet,但是所做的方向有一个开源的代码,和我需要的框架一样,它用的仿真器是Omnetpp-5.4.1。 概述 omnet是开源的基于组件的模块化的开放网络仿真平台。是离散事件仿真器,具备强大完善的图形界面…

OMNeT学习之OMNeT安装与运行

OMNeT学习之OMNeT安装与运行 前言 本文原创,创作不易,转载请注明!!! 本人为OMNet初学者,如有错误,请不吝请教! 最近学WSN(无线传感器网络),做传感器实验,老…

omnet++ 快速入门 | 计算机网络仿真 | omnet++ 入门教程

文章目录 omnet1 网络仿真软件综述01 wsn仿真软件02 为什么使用omnet03 学习资料04 目标 2 omnet介绍1 omnet安装与启动2 使用omnet仿真的一般步骤3 新建项目 3 定义仿真网络的拓扑结构01 新建一个空的 network02 Module的概念01-Module的概念02-Module Type的定义步骤1. ned文…

无图无真相!设计模式概览

设计模式太多,最近没有更新,最后想想还是看一点更新一点吧。