数字水印 | 数字水印技术原理入门

🍍原文: 基于小波变换的数字水印技术

🍍写在前面: 本文属搬运博客,自己留存学习。虽然原文标题聚焦于 “小波变换”,但实际上原文介绍了数字水印技术的整体情况。



前言

离散小波变换不仅可以较好地匹配人类视觉系统的特性,而且兼容 J P E G 2000 \mathsf{JPEG2000} JPEG2000 M P E G 4 \mathsf{MPEG4} MPEG4 压缩标准,利用小波变换产生的水印具有良好的视觉效果和抵抗多种攻击的能力,因此基于 D W T \mathsf{DWT} DWT 的数字水印技术是目前的主要研究方向。

离散小波变换(Discrete Wavelet Transformation,简称 DWT)

本案例围绕基于小波变换的数字水印技术,对数字水印的原理、算法、流程进行了讲解,并进行了数字水印攻击分析。



1 理论基础

数字水印通常可以分为鲁棒 r o b u s t \mathsf{robust} robust 数字水印和易损 f r a g i l e \mathsf{fragile} fragile 数字水印两类,从狭义上讲,数字水印一般特指鲁棒数字水印。本章主要针对鲁棒数字水印进行案例讲解与分析。

✒️ 鲁棒数字水印

主要用于在数字作品中标示著作权信息,利用该水印技术在多媒体内容的数据中嵌入不可见的标示信息。在发生版权纠纷时,标示信息用于保护数据的版权所有者。用于版权保护的数字水印要求有很强的鲁棒性和安全性。

✒️ 易损数字水印

与鲁棒数字水印的要求相反,主要用于完整性保护,该水印技术同样是在多媒体内容的数据中嵌入不可见的信息。当内容发生改变时,这些水印信息会发生相应的改变,从而可以鉴定原始数据是否被篡改。易损水印必须对信号的改动很敏感,人们根据易损水印的状态就可以判断数据是否被篡改过。

鲁棒数字水印主要用于在数字作品中标示著作权信息,易损数字水印主要用于判断数字作品是否被篡改。

不同领域对数字水印有不同的要求,但一般而言,鲁棒数字水印应具备如下特点:

  • 不可感知性:嵌入水印前后的图像必须在视觉上没有任何差别,即产品的质量和价值不受影响。
  • 鲁棒性:嵌入水印后的图像在受到攻击时,水印依然存在于载体数据中,并可以被恢复和检测。
  • 安全性:嵌入的水印难以被篡改或伪造,只有授权机构才能检测出来,非法用户不能检测、提取或者去除水印。
  • 计算复杂度:水印的嵌入算法和提取算法的计算复杂度,复杂度直接与水印系统的实时性相关。
  • 水印容量:载体数据中可嵌入多少水印信息,从几兆到几个比特不等。


2 数字水印技术原理

数字水印技术实际上就是通过对水印载体的分析、水印信息的处理、水印嵌入点的选择、嵌入方式的设计、嵌入调制的控制和提取检测方法等相关技术环节进行合理优化,寻求满足不可感知性、鲁棒性和安全性等约束条件下的最优设计问题。在实际应用中,一个完整水印系统的设计通常包括水印的 生成、嵌入、检测、提取 四个部分。

2.1 水印生成

通常基于伪随机数发生器或混沌系统来产生水印信号,从水印的鲁棒性和安全性方面来考虑,常常需要对原水印进行预处理来适应水印嵌入算法。


2.2 水印嵌入

在尽量保证水印不可感知性的前提下,嵌入最大强度的水印,可提高水印的稳健性。水印的嵌入过程如下图所示
,虚线框表示水印嵌入算法不一定需要的数据。常用的水印嵌入准则有 加法准则、乘法准则、融合准则


在这里插入图片描述


2.3 水印检测

水印检测是判断水印载体中是否存在水印的过程。水印的检测过程如下图所示,虚线框表示水印检测算法不一定需要的数据。


在这里插入图片描述

说明:上图中符号打了一撇的数据,和前面出现过的数据之间存在对应关系。


2.4 水印提取

水印提取是水印被比较精确地提取的过程。水印的提取和检测可以分为:

  • 明检测:需要原始图像的参与;
  • 盲检测:不需要原始图像的参与;

水印的提取过程如下图所示,虚线框表示水印提取算法不一定需要的数据。


在这里插入图片描述

说明:上图中符号打了一撇的数据或算法,和前面出现过的数据或算法之间存在对应关系。



3 典型的数字水印算法

当今的数字水印技术已经涉及多媒体信息的各个方面,数字水印技术研究也得到了很大的进步,尤其是针对图像数据的水印算法繁多,下面对一些经典的算法进行分析介绍。

3.1 空间域算法

空间域算法是数字水印最早的一类算法,它阐明了关于数字水印的一些重要概念。空间域算法一般通过改变图像的灰度值来加入数字水印,大多采用替换法,用水印信号替换载体中的数据。主要的算法有:

  • LSB 算法原理:利用人眼对数字图像亮色等级分辨率的有限性,用水印信号替换原图像中像素灰度值的最不重要位或者次不重要位。这种方法简单易行,且能嵌入较多信息,但是抵抗攻击的能力较差,攻击者简单地利用信号处理技术就能完全破坏消息。正是由于这一点,LSB 算法能够有效地确定一幅图在何处被修改了。
  • Patchwork 算法原理:基于统计学的方法,将图像分成两个子集,其中一个子集的亮度增加,另一个子集的亮度减少同样的量。这个量以不可见为标准,整幅图像的平均灰度值保持不变,在这个调整过程中完成水印的嵌入。同时,使用一个密钥来初始化一个伪随机数,该伪随机数规定了在载体中放置水印的位置。该算法的隐蔽性好,对有损压缩和 FIR 滤波有一定的抵抗力,但其缺陷是嵌入信息量有限,对多拷贝平均攻击的抵抗力较弱。
  • 纹理块映射编码算法原理:将一个基于纹理的水印嵌入到图像的具有相似纹理的一部分当中。该算法基于图像的纹理结构,因而很难察觉,同时对于滤波、压缩和旋转等操作具有抵抗能力。

3.2 变换域算法

目前变换域算法主要包括:傅里叶变换域 D F T \mathsf{DFT} DFT、离散余弦域 D C T \mathsf{DCT} DCT、离散小波变换 D W T \mathsf{DWT} DWT

基于变换域的数字水印技术相对于基于空间域的数字水印技术通常具有更多优势,抗攻击能力更强,比如一般的几何变换对基于空间域的算法影响较大,而对基于变换域的算法却影响较小。但是基于变换域的算法的水印嵌入和水印提取操作复杂,隐藏信息量不能太多。

  • 傅里叶变换是一种经典而有效的数学工具, D F T \mathsf{DFT} DFT 水印技术是利用图像的 D F T \mathsf{DFT} DFT 相位和幅值嵌入信息,一般利用相位信息嵌入水印比利用幅值信息鲁棒性更好,而利用幅值嵌入水印则对旋转、缩放、平移等操作具有不变性。 D F T \mathsf{DFT} DFT 水印技术的优点是具有仿射不变性,还可以利用相位嵌入水印,但 D F T \mathsf{DFT} DFT 技术与国际压缩标准不兼容导致抗压缩能力弱,且算法比较复杂、效率较低,因此限制了它的应用。
  • D C T \mathsf{DCT} DCT 水印技术的主要思想是在图像的 D C T \mathsf{DCT} DCT 变换域上选择中低频系数叠加水印信息。选择中低频系数是因为人眼的感觉主要集中在这一频段,攻击者在破坏水印的过程中,不可避免地会引起图像质量的严重下降,而一般的图像处理过程也不会改变这部分数据。该算法不仅在视觉上具有很强的隐蔽性、鲁棒性和安全性,而且可经受一定程度的有损压缩、滤波、剪切、缩放、平移、旋转、扫描等操作。
  • D W T \mathsf{DWT} DWT 是一种 “时间——尺度” 信号的多分辨率分析方法,它具有良好的空频分解和模拟人类视觉系统的特,而且嵌入式零树小波编码 E Z W \mathsf{EZW} EZW 将在新一代的压缩标准中被采用,符合国际压缩标准,小波域的水印算法具有良好的发展前景。 D W T \mathsf{DWT} DWT 水印算法的优点是水印检测按子带分级扩充水印序列进行,即如果先检测出的水印序列已经满足水印存在的相似函数要求,则检测可以终止,否则继续搜寻下一子带扩充水印序列直至相似函数出现一个峰值或使所有子带搜索结束。因此含有水印的载体在质量破坏不大的情况下,水印检测可以在搜索少数几个子带后终止,提高了水印检测的效率。

3.3 其他水印算法

基于压缩域、基于 NEC 算法和生理模型的数字水印算法。其实数字水印算法正在不断地发展和前进中日益完善,但是仍然存在许多不足,具有更加深入的发展空间,这就需要我们在不断的学习和探索中寻找具有更好性能的新算法。



4 数字水印攻击和评价

数字水印攻击是指带有损害性、毁坏性的,或者试图移去水印信号的处理过程。鲁棒性是指水印信号在经历无意或有意的信号处理后,仍能被准确检测或提取的特征。鲁棒性好的水印应该能够抵抗各种水印攻击行为。水印攻击分析就是对现有的数字水印系统进行攻击,以检验其鲁棒性,分析其弱点所在及其易受攻击的原因,以便在以后的数字水印系统的设计中加以改进。

对数字水印的攻击–般是针对水印的鲁棒性提出的要求。按照攻击原理,水印攻击一般可以划分为简单攻击、同步攻击和混淆攻击,而常见的攻击操作有滤波、压缩、噪声、量化、裁剪、缩放、抽样等。

  • 简单攻击: 是指试图对整个嵌入水印后的载体数据进行减弱嵌入水印的幅度,并不识别或者分离水印,导致数字水印提取发生错误,甚至提取不出水印信号。
  • 同步攻击: 是指试图破坏载体数据和水印的同步性,使水印的相关检测失效或恢复嵌入的水印成为不可能。被攻击的作品中水印仍然存在,而且幅值没有变化,但是水印信号已经错位,不能维持正常提取过程中所需的同步性。
  • 混淆攻击: 是指试图生成一个伪水印化的数据来混淆含有真正水印的数字作品。虽然载体数据是真实的,水印信号也存在,但是由于嵌入了一个或多个伪造水印,所以混淆了第一个水印,失去了唯一性。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/617433.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

各种行业里的副业项目,你适合哪一类

你希望在周末能够请自己吃一顿豪华大餐嘛?哈哈,但问题来了,自己的收入勉强够支付生活开销,不足以让自己有额外的消费,这样的生活小调调怎么满足呢,那就一起通过副业来实现吧! 面对五花八门的副业…

第⼀个SpringBoot程序

Spring Boot介绍 Spring让Java程序更加快速, 简单和安全. Spring对于速度、简单性和⽣产⼒的关注使其成为 世界上最流⾏的Java框架。 Spring Boot 的诞⽣是为了简化 Spring 项目而诞生的 创建Spring Boot项目 File->New Project->Spring Initializr 选择2.多的版本 创建…

群辉虚拟机安装openWRT作旁路由

最近在整活旁路由,基本就是要实现adguard和出国留学。openwrt这个的安装比较简单,就是先去找个镜像,然后导入即可。 我这里最后是去github上找了个大佬每天编译的地址链接。我用的是这个版本 1.下载解压得到img 下载完之后解压会得到一个…

YOLOv5改进 | 注意力机制 | 通道和空间的双重作用的CBAM注意力机制

在深度学习目标检测领域,YOLOv5成为了备受关注的模型之一。本文给大家带来的是通道和空间的双重作用的CBAM注意力机制。文章在介绍主要的原理后,将手把手教学如何进行模块的代码添加和修改,并将修改后的完整代码放在文章的最后,方…

【云原生】 Kubernetes核心概念

目录 引言 一、部署方式回溯 (一)传统部署时代 (二)虚拟化部署时代 (三)容器部署时代 二、Kubernetes基本介绍 (一)为什么使用k8s (二)主要功能 &am…

【JVM】Class文件的格式

目录 概述 Class文件的格式 概述 Class文件是JVM的输入,Java虚拟机规范中定义了Class文件的结构。Class文件是JVM实现平台无关、技术无关的基础。 1:Class文件是一组以8字节为单位的字节流,各个数据项目按顺序紧凑排列 2:对于占用空间大于8字节的数据…

BGP学习一:关于对等体建立和状态组改变

目录 一.BGP基本概念 (1).BGP即是协议也是分类 1.早期EGP 2.BGP满足不同需求 3.BGP区域间传输的优势 (1)安全性——只传递路由信息 (2)跨网段建立邻居 4.BGP总结 5.BGP的应用 (1&#…

力扣HOT100 - 295. 数据流的中位数

解题思路&#xff1a; 小顶堆 大顶堆 class MedianFinder {Queue<Integer> A, B;public MedianFinder() {A new PriorityQueue<>();B new PriorityQueue<>((x, y) -> (y - x));}public void addNum(int num) {if (A.size() ! B.size()) {A.add(num);B…

如何在Mac 电脑上安装 Homebrew

1、打开终端应用程序 在终端中输入以下命令并回车: /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 这个命令会自动下载并运行 Homebrew 的安装脚本。 系统可能会提示您输入管理员密码,请输入您的 Mac 登录…

Django国际化与本地化指南

title: Django国际化与本地化指南 date: 2024/5/12 16:51:04 updated: 2024/5/12 16:51:04 categories: 后端开发 tags: Django-i18n本地化-L10n多语言国际化翻译工具表单验证性能优化 引言 在数字化时代&#xff0c;网站和应用程序必须跨越地域限制&#xff0c;服务于全球…

【MySQL】聊聊你不知道的前缀索引原理以及使用场景

背景 在本周的时候&#xff0c;接到一个需求&#xff0c;需要通过加密后的身份证 md5 去数据库里匹配。由于业务方存储的是身份证 md5username 构建的一列&#xff0c;并且没有加索引。 解决方案&#xff1a;1.新建一列 md5的列&#xff0c;加索引 2.对现有的列进行加前缀索引…

【免费】2024年全新超强版本itvboxfast如意版影视APP源码 TV+手机双端后台PHP源码

首先&#xff0c;让我们了解一下ITVBox如意版影视源码的特点和优势。这一源码基于先进的技术和框架开发&#xff0c;具有稳定、高效的性能&#xff0c;能够满足影视网站的各种需求。与此同时&#xff0c;该源码还提供了丰富的功能和模块&#xff0c;包括影视资源管理、会员系统…

攻防世界-web-file_include

题目 解题 通过阅读php代码&#xff0c;我们明显的可以发现&#xff0c;这个一个文件包含的类型题 文件包含漏洞也是一种“注入型漏洞”&#xff0c;其本质就是输入一段用户能够控制的脚本或者代码&#xff0c;并让服务器端执行。 require()&#xff0c;找不到被包含的文件时…

57. 【Android教程】相机:Camera

相机现在已经不仅仅是手机必备神器了&#xff0c;甚至相机的拍照质量已经是很多人买手机的首选条件了。而对于相机而言主要有两大功能&#xff1a;拍照片和拍视频。Android 为此两种方式&#xff1a; 相机 intent相机 API 本节我们就一起来看看相机的具体用法。 1. 打开 Camer…

Windows快速部署DCNv4(成功版)

文章目录 一、介绍二、编译DCNv42.1 下载源码2.2 编译DCNv4 三、报错提示3.1 Cuda is not available3.2 需要Microsoft Visual C 14.0 一、介绍 论文链接&#xff1a;[https://arxiv.org/pdf/2401.06197.pdf] (https://arxiv.org/pdf/2401.06197.pdf)   在这篇文章中介绍了一…

8种区块链开发者必须知道的顶级编程语言!

我来问你一个问题&#xff1a;请说出一种技术&#xff0c;它以去中心化、不可篡改和透明性等核心特征席卷了全球。 这个问题的答案是&#xff0c;当然是区块链&#xff0c;它在近些年进入大家的视野并颠覆了工商业&#xff0c;没有任何其他技术能够做到这一点。 预计从2020年…

通过python实现Google的精准搜索

问题背景&#xff1a; 我想通过Google或者其他网站通过精准搜索确认该产品是否存在&#xff0c;但是即使该产品不存在Google也会返回一些相关的url链接&#xff0c;现在想通过python实现搜索结果的精准匹配以确认该产品是否为正确的名称【可以通过google搜索到&#xff0c;如果…

Git的安装和配置

一、Git的介绍 代码的一套托管工具&#xff0c;它分为两个仓库&#xff0c;首先将你写的代码提交到本地仓库&#xff0c;这个时候只有你可以看&#xff0c;和你一起开发的同事看不到。将本地仓库的代码推到远程仓库&#xff08;githab、gitee、gitlab等之一&#xff09;&#…

斩获 32k 星!号称下一代知识库工具开源了!

AFFiNE&#xff08;发音为 [ə‘fain]&#xff09;是一个下一代知识库平台&#xff0c;它将规划、整理和创造整合在一个空间。AFFiNE致力于提供一个隐私优先、开源、可定制且即用性强的解决方案&#xff0c;作为 Notion 、Airtable、Miro 的整合“替代品”。 Notion 、Airtable…

数据结构-二叉树-红黑树

一、红黑树的概念 红黑树是一种二叉搜索树&#xff0c;但在每个节点上增加一个存储位表示节点的颜色&#xff0c;可以是Red或者BLACK&#xff0c;通过对任何一条从根到叶子的路径上各个节点着色方式的限制&#xff0c;红黑树确保没有一条路径会比其他路径长出两倍&#xff0c;…