数字水印的攻击类型

article/2025/9/21 19:18:03

数字水印的攻击类型

引言

数字水印技术作为信息隐藏技术的一种,不可见性和鲁棒性是它的主要特点。通常在水印嵌入时我们需要来确定水印的嵌入量,以此来平衡不可见性和可见性之间的关系。

方法

对于不可见性,我们可以直观的判断出来。但对于鲁棒性,我们需要进行一系列的攻击测试来判断。下面,将介绍数字水印常见的几种攻击类型。

实验结果与讨论

1.常见的攻击类型

1.1 简单攻击

简单攻击是试图对整个水印化数据进行操作来削弱嵌入的水印的幅度,而不是试图识别水印或者分离水印,以此来导致数字水印提取发生错误,甚至根本提取不出来水印信号。常见的有:压缩(JPEG、MPEG)、噪声

1.2 同步攻击

同步攻击是试图破坏载体数据和水印的同步性,被攻击的数字作品中水印仍然存在,而且幅度没有变化,但是水印信号已经发生错位,不能维持正常的水印提取过程所需要的同步性。同步攻击通常采用几何变换方法,常见的有:缩放,裁剪,旋转。、

1.3 削去攻击

削去攻击试图通过分析水印化数据,估计图像中的水印,将水印化的数据分离成为载体数据和水印信号,然后抛弃水印,得到没有水印的载体数据。常见的有:合谋攻击

1.4混淆攻击

混淆攻击是试图生成一个伪源数据、伪水印化数据来混淆含有真正水印的数字作品的版权。常见的有:IMB攻击

2.理论知识及代码

2.1 压缩

在处理数字水印的压缩攻击时,用的最多的是Stirmark工具。

Stirmark工具实操步骤

Step1.在matlab中将水印嵌入后,保存嵌入了水印后的图,我这里保存为了.BMP格式

Step2.将待检测的图放置在文件夹Media\Input\Images\Set1中。

f17123c5cafbf51d824f75c8296f147f.png

Step3.双击Bin\Benchmark\StirMark Benchmark应用程序,程序会自动运行,会自动将攻击测试后的图放置在Media\Output\Images\Set1中,如图:

1d7935aefcf328349f620ebad7f38573.png

程序运行时,会有下面的界面,显示的是攻击测试类型:

80a467aae1ccc3d443dd98c61678fd42.png

若想修改攻击测试的参数,可以在Profiles\SMBsettings里进行修改

5a2261212cabcb3c4fd9868efa766d50.png

Step4.直接从Output\Images\Set1中拿图去提取吧,提取不出来,就是不抗这种攻击哦。

2.2 噪声

常见的几种噪声:高斯噪声、椒盐噪声、泊松噪声、乘性噪声

在matlab中,可以通过imnoise()函数给图像添加这四种噪声,imnoise()函数的调用格式为:

J=imnoise(I,type,parameters)

I:要添加噪声的图像

type:添加的噪声类型,‘gaussian’为高斯噪声,‘localvar’为0均值白噪声,‘poisson’为泊松噪声,‘salt & pepper’为椒盐噪声,‘speckle’为乘性噪声

parameters:噪声的参数,不设置采用默认值。不同的噪声类型,需要设定的参数也不同,下面对高斯噪声和椒盐噪声进行介绍

①高斯噪声

J=imnoise(I,‘gaussian’,m,v)

m:高斯噪声的均值,默认为0

v:高斯噪声的方差,默认为0.01

附上高斯噪声代码:

代码清单 1

clear all; close all;

I=imread('coins.png');

J=imnoise(I, 'gaussian', 0, 0.01);%方差为0.01的高斯噪声

K=imnoise(I, 'gaussian', 0, 0.03);%方差为0.03的高斯噪声

figure;

subplot(121);  imshow(J);title('方差为0.01的高斯噪声')

subplot(122);  imshow(K);title('方差为0.03的高斯噪声')

8dbe14da2fcb3e2913af64c2546201e4.png

②椒盐噪声
J=imnoise(I,‘salt & pepper’,d)
d:噪声的密度,默认为0.05

附上椒盐噪声的代码:

d67dc5a4cc6073bb4ff8efcf08007ca6.png代码清单2

f68998a746ac23ed1433f91b6f85f7be.png     

2.3 缩放

这里用imresize()函数,调用格式可以用最基础的:
B=imresize(A,m)
m大于1,图像放大;m小于1,图像缩小

7fa60ddd5692b901c844eab4f71b607f.png代码清单3 

   2.4 剪切

  这里要注意的是,matlab中有自带的剪切函数,imcrop()函数是我们对一幅图中的某个区域感兴趣需要将这部分剪切下来时使用的,保留的是剪切下来的那部分。而对于数字水印的剪切攻击而言,我们并不是直接调用imcrop()函数,因为我们要保留的是原图“剪切”后剩下的那部分,用图表示就是下面的阴影部分。这里的剪切我用了引号,是因为这里并不是真正的剪切,只是将选中的部分调为白色,也就是像素调为255,(0表示黑色,255表示白色),若原图为灰度图像,直接调为255即可,若原图为RGB彩色图像,需要三色通道都调为255。

f1e2a30548aa24c32edc82538f40732e.png

cd785ec5c2252b3d76505413210029d6.png

下面附上RGB图“剪切”的代码,对于灰度图只用剪切一次即可:

4eff17cf5a34e69b22afca8c67073331.png代码清单4

5fd457730a4a55e94b00c4c82da34764.png

2.5 旋转

图像的旋转通常是以图像的中心为原点进行旋转,旋转后,图像的大小一般都会改变。

函数imrotate()的调用格式如下:

1.B=imrotate(A,angle)

将图像A以原点为中心按照angle角度进行旋转。

angle大于0,逆时针方向旋转;angle小于0,顺时针方向旋转。

(该函数默认使用‘nearest’进行领域插值)

2.B=imrotate(A,angle,method)

将图像A以原点为中心按照angle角度进行旋转,旋转时采用method的方法进行插值。

method的取值有:‘nearest’最近邻插值(默认),'bilinear’双线性插值,‘bicubic’双三次插值

3.B=imrotate(A,angle,method,bbox)

将图像A以原点为中心按照angle角度进行旋转,旋转时采用method的方法进行插值,bbox为旋转之后图像的大小。

bbox的取值有:‘crop’表示输出图像与输入图像大小相等,旋转后的图像进行剪裁;‘loose’表示能将完整旋转图像容下的足够大的图像。

下面对以上几种调用格式的旋转进行操作:

代码清单5

f4ae3469c308abf4f96cf5e16a1a785e.png

e5579a0e7417693533e9f288c62a2752.png

结语

以上就是数字水印常见的一些简单攻击和几何攻击,具体在数字水印当中的应用,就是用这些攻击方法对嵌入水印后的图像进行攻击,保存受攻击后的图,再进行水印的提取,若能提取出水印,则说明水印算法能够抵抗这种攻击,若提取不出来,说明鲁棒性有待提高。

稿件来源:深度学习与文旅应用实验室(DLETA) 


作者:何绪林

实习编辑:王晓姣


http://chatgpt.dhexx.cn/article/LCL7aRHG.shtml

相关文章

数字图像处理复习

简答题:8’*3 1、图像的数字化过程:采样,分色,量化,编码相关概念。 采样:采样的实质就是用多少点来描述一幅图像,采样结果质量的高低就是图像分辨率,连续图像的空间样本实际上就是用…

MATLAB数字水印实现

目 录 摘 要 2 ABSTRACT 3 1.数字水印技术概述 4 1.1 数字水印技术提出的背景 4 1.2 数字水印的基本特点 4 1.3 数字水印的应用 5 1.MATLAB软件的介绍 7 2.1 MATLAB研究数字水印的优点 7 2.2 MATLAB函数介绍 8 3.傅立叶域水印理论基础 10 3.1 傅立叶变换简述 10 3.1.1 一维离散…

数字图像处理基础知识(自救指南)

概念 本部分多来自课件,见水印 数字图像处理的目的 提高图像的视感质量,以达到赏心悦目的目的。提取图像中所包含的某些特征或特殊信息,主要用于计算机分析,经常用作模式识别、计算机视觉的预处理。对图像数据进行变换、编码和压…

通过FPGA计算矩阵的伪逆pinv

1.问题描述: 一个12*4的矩阵。 2.部分程序: 然后我们要定义个函数,用来计算复数转置的。 然后是复数乘法器, 这个过程中,我们暂时还没截位,所以计算结果会和matlab一样,后面的会有大量的位宽截取,所以计算结果需要换算才行。 然后,中间计算过程中,涉及到精度要求的…

巨正则系综处理理想气体

经典统计中的巨正则系综需要对粒子数求和 使用巨正则系综计算理想气体的好处是方便求化学势,求化学势是用粒子平均数来求

系综的实现方式(nve、nvt、npt)

一、NVE系综 更新位置和速度,v和e恒定。 二、NVT系综 几种实现的方式: 如: fix 1 all nve #更新位置和速度,e和V保持不变。若只有这个命令,就只nve系综,如果和控温命令一起,就是nvt系综。fix 2 …

新手入门 | 跑分子动力学必须要知道的5个点

更多精彩请关注公众号:分子动力学 一、基 本 介 绍 随着计算机的软硬件和计算技术的发展,利用计算机对物质的微观结构和运动进行数值模拟计算得到了迅速发展,并在此基础上发展了用数值运算统计求和的方法:分子动力学 (MD) 方法和…

lammps多孔结构

原创 公众号LAMMPS交流站 点击上方蓝字关注我们 大家好,我是YJ学长,本文的模型是小编在lammps模拟Ni的熔化过程中偶然生成了一帧多孔结构,小编觉得图挺好看的,因此做一期推送共同来讨论这一现象。 因能力有限,这种…

量子计算入门学习笔记 (八—— 密度算符 )

hello,大家好,如果您是第一次观看我的博客,如果您也是和我一样刚入门量子力学或是量子计算相关的学习,纠结于量子计算的抽象与晦涩难懂,那么本专栏(量子计算)一定是您的不二之选,学海…

lammps npt系综iso和aniso控压对比

大家好,我是小马老师。 本文讲解lammps基础命令fix npt设置。 关于系综的设置,前面已经介绍过多次,但在咨询中发现,对于大部分初学者来说,对于系综选择和设置还是有些困惑。 fix npt命令名称就可以看出,它的…

lammps案例:npt系综练手,H2压缩模拟

上一篇文章中介绍了npt系综的设置方法,本文给出一个lammps模拟氢气压缩的案例,熟悉npt系综的设置方法。 模拟温度300k,压强100GPa,在该条件下,氢气应该为固态。 在MS中建立H2模型,共包含1000个H原子&…

lammps教程:实例讲解npt、nvt系综的选择

对于lammps新手来说,系综的选择令人困惑,到底是应该用nvt系综还是npt系综? 我在初学lammps时就被这个问题困扰了很久。如果去问别人,可能会告诉你一个答案:根据模拟需要确定。 其实和没说一样。 到底如何确定系综&a…

lammps问题-关于NVT与NVE系综产生的不同

相同的材料构型,在不同的系综下产生如下不同的结果: 1.NVE系综下: 2.NVT系综如下: 产生的不同结果如上,原脚本如下: 1. shell mkdir initial-comp shell mkdir config-comp shell mkdir restart-comp #--…

Ensemble Average(系综平均)(集平均)

什么是系综平均?: 下图(来自知乎:卖艺的小青年)中集平均实际就是系综平均,按照随机信号分析的知识来分析,我们可以把这一系列函数看成一个随机信号,取定一个时间,我们就得…

系综理论(Ensemble Theory)

本文参考[Pathria] Statistical Mechanics (3rd Ed.)里的思路整理了系综理论的一些基本知识。Pathria的书有较多繁复的计算,在此不详细给出,只希望对系综理论能形成一个宏观的认知。 1. 前言 给定一个系统的宏观态描述 ( N , V , E ) (N,V ,E) (N,V,E)…

经典系综理论

系综理论是统计力学的理论基础 本质上来说,统计热力学中只有一个问题,即给定能量$E$,如何分布在$N$个全同系统构成的系综上 --薛定谔 1.系综的定义 在下面的介绍中我们可以逐渐体会这句话的含义,此时我们暂且把这个定位我们解决的…

lammps教程:nve/nvt/npt系综设置方法

系综是指大量性质和结构完全相同的、处于各种运动状态的、各自独立的系统的集合。 在lammps模拟中,常用的系综有nve、nvt、npt三种系综,下面说说这三种系综的使用方法。 1. nve(微正则系综) nve系综保证系统中原子数量n、体系总…

数值分析(2)-多项式插值: 拉格朗日插值法

整理一下数值分析的笔记~ 目录: 1. 误差 2. 多项式插值与样条插值(THIS) 3. 函数逼近 4. 数值积分与数值微分 5. 线性方程组的直接解法 6. 线性方程组的迭代解法 7. 非线性方程求根 8. 特征值和特征向量的计算 9. 常微分方程初值问题的数值解 1. 拉格朗日基函数 定…