数字水印的攻击类型

简介: 数字水印的攻击类型

数字水印的攻击类型

引言


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


方法


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


实验结果与讨论


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)  


目录
相关文章
|
JavaScript 前端开发 API
Python和Vue:构建动态网站的最佳伙伴
【4月更文挑战第10天】在数字时代,Python和Vue.js成为构建互动性网站的理想组合。Python以其强大的后端处理和丰富的库(如Django和Flask)支持高效开发,而Vue.js则凭借其轻量级、数据驱动的前端框架提供直观界面。两者结合,实现前后端分离,双向数据绑定,高效API交互,以及高度灵活性和可扩展性。庞大的社区和生态系统为开发过程提供资源支持,优化用户体验。这种技术栈适合从简单的博客平台到复杂应用的各类项目,为企业带来竞争优势。
353 1
|
机器学习/深度学习
为什么在二分类问题中使用交叉熵函数作为损失函数
为什么在二分类问题中使用交叉熵函数作为损失函数
623 2
|
9月前
|
SQL 安全 数据库
如何在Django中正确使用参数化查询或ORM来避免SQL注入漏洞?
如何在Django中正确使用参数化查询或ORM来避免SQL注入漏洞?
518 77
|
9月前
|
机器学习/深度学习 人工智能 编解码
StereoCrafter:腾讯开源将任意2D视频转换为立体3D视频的框架,适用于Apple Vision Pro等多种显示设备
StereoCrafter 是腾讯开源的框架,能够将单目2D视频转换为高保真度的立体3D视频,适用于多种显示设备。
488 8
StereoCrafter:腾讯开源将任意2D视频转换为立体3D视频的框架,适用于Apple Vision Pro等多种显示设备
|
数据采集 自然语言处理 数据挖掘
【NLP-新闻文本分类】1 数据分析和探索
文章提供了新闻文本分类数据集的分析,包括数据预览、类型检查、缺失值分析、分布情况,指出了类别不均衡和句子长度差异等问题,并提出了预处理建议。
231 1
|
安全 数据安全/隐私保护 Python
版权保卫战的新武器!揭秘数字水印如何成为知识产权的守护神!
【8月更文挑战第22天】数字水印技术在知识产权保护中至关重要。它通过在数字媒体中嵌入不可见信息(如版权标识),在不影响原内容的前提下实现作品的版权保护、防篡改及非法分发追踪。本文将概述数字水印的概念、技术原理(包括空间域与频域方法),并提供Python代码示例展示水印的嵌入与提取过程。此外,还将分享一个出版社如何运用数字水印成功维护自身版权的真实案例,以此展现数字水印在实际应用中的价值与潜力。
563 0
|
云安全 安全 数据库
阿里巴巴主导的首项数字水印IEEE国际标准成功立项,提升行业数据安全
2023年3月29日,国际标准组织电气与电子工程师标准协会(IEEE-SA)正式通过了阿里巴巴牵头的《数字内容中数字水印实现的鲁棒性评估方法》(立项编号P3361)。
1851 1
|
机器学习/深度学习 人工智能 自然语言处理
|
存储 缓存 搜索推荐
复杂系统设计原则与案例
## 一、复杂是软件的本质属性 ### 1.1 复杂是软件的本质属性 正如Brooks所言,软件复杂性是软件固有的属性,这种固有的复杂性主要由4个方面的原因造成的: - 问题域的复杂性 - 管理开发过程的复杂性 - 随处可变的灵活性 - 描绘离散系统行为的问题 上面每一个方面都有极大的挑战,以「问题域的复杂性」为例,现在我们的大型系统中,动不动就几十个应用,组合在一起就是一个复杂的系统,而每个
1653 4
复杂系统设计原则与案例