The invention of the Internet and the wide spread of the computers, scanners and the printers make it simply easy to gain, exchange and transport the digital media data. However , the bad guys and units can copy and transport the documents with the copyright at their minds through the internet. Digital watermarking is an effective way to solve this problem.
The paper had mainly discusses the semi-fragile digital water- marking, a branch of the digital water-marking. At first this paper introduces the universe conception and methods of the digital water- marking. Then it gives a few of the common algorithms of semi-fragile water-marking. At last it proposes an algorithm to cover the request of the research. It is divided into four parts including the preprocessing of the water-marking, the embedding of it, the detection of it, and the attack-detecting. Then it gives the results of the experiment and analysis it. The simulation platform is the Matlab 6.5.
At the last of this paper, the estimation and the forecast to the semi-fragile water marking are proposed.
KEY WORDS : copyright protection, digital watermarking,
semi-fragile, Matlab
目 录
目 录 I
摘要 III
ABSTRACT IV
第一章 绪论 1
1.1 课题研究意义 1
1.1.1 使用数字水印的必要性 1
1.1.2 使用半脆弱数字水印的必要性 3
1.1.3使用半脆弱数字水印的优点 3
1.1.4 课题目标 4
1.2半脆弱数字水印的研究现状 4
1.3 论文的组织 5
第二章 相关技术与设计环境概述 7
2.1 数字水印的概念 7
2.1.1 数字水印的基本概念 7
2.1.2 半脆弱数字水印的基本概念 10
2.1.3 半脆弱数字水印的实现方法 10
2.2 算法性能指标简介 12
2.3 仿真介绍 13
第三章 图像认证半脆弱水印算法原理与总体设计 15
3.1 用于图像认证算法的特殊要求分析 15
3.2 实现认证功能的总体设计 15
3.2.1模块划分 16
3.2.2算法框架图 16
第四章 图像认证半脆弱水印算法的详细设计与实现 19
4.1 算法思路 19
4.2 各步骤详细设计 19
4.2.1水印预处理的实现 19
4.2.2水印嵌入的实现 21
4.2.3水印检测的实现 22
4.3 实验结果与分析 23
第五章 总结与展望 30
5.1 本文所做的工作总结 30
5.2 工作展望 30
参 考 文 献 32
致 谢 34
附 录1 35
1.1 程序清单 35
摘要
因特网的出现以及计算机、扫描仪和打印机的广泛使用使得数字化多媒体数据的获取、交换和传输变得异常简单。但是通过网络传播数据也使有恶意的个人或团体在没有得到数据文件所有者许可的情况下能肆意地复制和传播有版权保护的文档。数字水印技术则为这种问题提供了一个潜在的解决方案。
论文研究的方向–半脆弱(Semi-fragile)数字水印,是数字水印(Digital Watermarking)的一个重要分支。论文首先介绍了水印技术的通用概念和方法,然后介绍了半脆弱水印的几种常见算法,在此基础上提出了一种能抗几种典型攻击的半脆弱算法。本算法实现分成四个部分,水印预处理,水印嵌入,水印检测,攻击检测。通过实验可以看出,算法能有效实现图像认证的功能。算法用Matlab6.5实现仿真。
最后,对半脆弱水印技术所存在的问题和未解决的难题进行了思考,并对其之后的发展方向进行了展望。
关键词 版权保护 数字水印 半脆弱 Matlab
ABSTRACT
第一章 绪论
计算机和网络的广泛应用,大大地方便了人们获取信息和交流信息。由于数字化信息以多种形式在网络上迅速便捷地传输,政府、企业及个人都逐渐把网络作为主要的通信手段,大量重要文件和个人信息以数字化形式存储和传输,电子商务则通过网络为我们提供了各种服务,网络与信息安全问题变得越来越重要。
传统的信息加密方法可以加密文本信息,保证其传输的安全,但如果要对图像、视频和声音等多媒体信息进行加密,则基于密码学的传统加密方法就比较困难了,随着计算机处理能力的快速提高,这种通过不断增加密钥长度来提高系统密级的方法变得越来越不可靠。特别是随着网络多媒体技术的发展,信息已经不仅仅局限于文本,许多信息是图形图象和视频格式,需要认证和版权保护的声像数据也越来越多。此外,在军事领域,人们可能需要将一幅作战地图隐藏在一幅艺术作品中。这些应用需求正是数字水印技术要解决的问题。
1.1 课题研究意义
1.1.1 使用数字水印的必要性
数字水印(Digital Watermarking)技术是通过一定的算法将一些标志性信息直接嵌入到多媒体内容当中,但不影响原内容的价值和使用,并且不能被人的知觉系统觉察或注意到,只有通过专用的检测器或阅读器才能提取。其中的水印信息可以是作者的序列号、公司标志、有特殊意义的文本等,可用来识别文件、图像或音乐制品的来源、版本、原作者、拥有者、发行人、合法使用人对数字产品的拥有权。嵌入数字多媒体作品中的数字水印须具有以下特性:
(1)不可见性或隐蔽性:不易被察觉,不会引起原来数字作品明显的图像质量下降,即看不到数字水印的存在;
(2) 鲁棒性:即当被保护的信息经过某种改动后,比如在传输、压缩、滤波,图像的几何变换如平移、伸缩、旋转、剪裁等处理下,数字水印不容易被破坏;
(3)安全性:加入水印和检测水印的方法对没有授权的第三方是保密的而且不可轻易被破解,即使被黑客检测到了也不能读出(数字水印需要加密)〔1〕。
因特网的出现以及计算机、扫描仪和打印机的广泛使用使得数字化多媒体数据的获取、交换和传输变得异常简单。但是通过网络传播数据也使有恶意的个人或团体在没有得到数据文件所有者许可的情况下能肆意地复制和传播有版权保护的文档。数字水印技术则为这种问题提供了一个潜在的解决方案。数字水印是往多媒体数据(如图像、声音、视频信号等)中添加某些数字信息以达到版权保护等作用。如果没有鲁棒性(Robustness)的要求,水印与信息伪装技术上的处理本质上是完全一致的。典型数字水印系统模型:
图1.1 水印信号嵌入模型
图1.2 水印信号检测模型
图1.1为水印信号嵌入模型,其功能是完成将水印信号加入原始数据中;图1.2为水印信号检测模型,用以判断某一数据中是否含有指定的水印信号〔2〕。
数字水印主要用于:阻止非法复制(间接的)、确定所有权(作者、发行人、分发商、合法的最终用户)、确定作品的真实性和完整性(是否伪造、被篡改)、证实收件人、不可否认的传送、法庭证据的验证、赝品甄别、识别文件来源与版本、Web网络巡逻监视盗贼、广播监控〔1-2〕 。
1.1.2 使用半脆弱数字水印的必要性
数字水印是往多媒体数据(如图像、声音、视频信号等)中添加某些数字信息以达到版权保护等作用。如果没有鲁棒性的要求,水印与信息伪装技术上的处理本质上是完全一致的。在绝大多数情况下我们希望添加的信息是不可察觉的,并且希望攻击者在不破坏数据本身质量的情况下无法将水印去掉。发展数字水印技术的原动力就是为了提供多媒体数据的版权保护。按水印的特性可以将数字水印分为鲁棒数字水印和脆弱数字水印两类。鲁棒数字水印主要用于在数字作品中标识著作权信息,如作者、作品序号等,它要求嵌入的水印能够经受各种常用的编辑处理;脆弱数字水印主要用于完整性保护,与鲁棒水印的要求相反,脆弱水印必须对信号的改动很敏感,人们根据脆弱水印的状态就可以判断数据是否被篡改过。
图像认证的目的是确认作品没有受到恶意篡改,可用脆弱水印来实现认证。为了便于操作,脆弱水印对某些变换具有较低的鲁棒性,而对另外一些则更低。脆弱水印对图像的改变极为敏感,即使最微小的改变也会导致检测到改变。比如说,对一副图像进行很小的质量的JPEG(Joint Photographic Experts Group,联合图像专家组)压缩(1%),加入了脆弱水印的图像在检测时,给出的结论就是图像被篡改,即图像已不是原来的或者说可以接受的图像了。但是实际上,就HVS(Human Visual System,人类视觉系统)来说,1%的JPEG是完全可以接受的。这就是说,对于现在广泛使用的数字图像来说,少量的不在关键位上的改变是完全可以接受的,在视觉或者听觉上即HVS上是不会有很大的感觉的。此时,基于脆弱水印的精确认证就无法实现认证功能。
1.1.3使用半脆弱数字水印的优点
近年来,国内外有关认证水印的研究日益增加,根据识别能力的不同,又分为脆弱水印和半脆弱水印。脆弱水印不是本文要讨论的重点。由于实际应用上的不确定性,导致了简单的数字水印不能胜任,人们提出了半脆弱水印。比如说了法庭上的证据,图像的或音频的,简单的水印加入了,敌手可能破解水印,并加入有利于敌手的篡改水印,这样原始的水印就无法发挥作用。用了半脆弱水印的话,任何敌手的恶意篡改都可能被检测到,并由于算法的不同,而采取水印毁灭或是诸如水印以篡改的信息。这样,这种证据就不能被敌手应用了。另外,由于水印是半脆弱的,在非恶意攻击下,比如JPEG压缩后,检测系统给出的结论仍然会是通过认证。这就是因为半脆弱水印对善意攻击的鲁棒性而体现的优势。总的来说,即对恶意篡改的脆弱性和对善意改变的鲁棒性。
1.1.4 课题目标
研究的过程就是学习数字水印的相关知识的过程,并在一定的理解的前提下能提出自己的想法,并在仿真平台上实现。具体来说,就是了解数字水印的概念,发展,理解半脆弱数字水印的提出和意义,实现方法,现有算法,实现一个自己的能用于图像认证的半脆弱水印算法。具体针对本算法,要实现的四个部分如下:
(1) 水印预处理(Preprocessing) 嵌入水印前将要嵌入的水印进行某种处理,以达到加密的目的。本算法是使用海明码处理水印后再用高斯序列处理,才成为要嵌入的水印。
(2) 水印嵌入(Embedding) 采用分块植入方法,原图像分成8块,由图像的能量和方差决定分块,再给每块赋基准域值噪声。
(3) 水印检测(Detection) 从植入水印后的图像中提取水印信息,并把图像和原图像,水印和原水印进行比较。
(4) 攻击检测(Attack detecting) 对遭受攻击的图像进行水印提取和分析,从而判断图像是否遭受恶意篡改。
1.2半脆弱数字水印的研究现状
利用半脆弱性水印进行图像内容认证在保证数字媒体信息一定视(或听)觉质量的前提下,将与媒体内容相关或不相关的标志信息作为水印直接嵌入媒体内容中,当媒体内容需要认证时,可将水印提出鉴定其是否真实完整。由于半脆弱性水印本身在对篡改具有一定的敏感性和脆弱性的同时,仍然具备数字水印的一般特征,如不可见、安全性和对某些图像信号处理的稳健性,因此在图像内容认证中获得了广泛的使用。目前,半脆弱水印已应用于新闻图片、电子商务、法律案件、医学图像、工程设计等领域。
近年来,国内外有关认证水印的研究日益增加,根据识别能力的不同,又分为脆弱水印和半脆弱水印。脆弱水印不是本文要讨论的重点。早期的脆弱水印技术大多采用对图像重要性校验和将水印嵌入到LSB (Least Significant Bit,最低有效位)平面上的方法对媒体内容的完整性进行认证。改进后的脆弱水印算法有了新的特性,不仅可实现对篡改位置的定位,有的甚至可用于篡改部位的复原。但总的来说这些脆弱水印的鲁棒性较低,无论对恶意篡改还是对正常的图像处理都非常敏感,而事实上大多数图像内容认证的应用并不需要如此精确,因此完全脆弱性水印在实际应用中实用性不高。
为了提高脆弱性水印在实际应用中的实用性,同时具有脆弱水印和鲁棒性水印两种功能的半脆弱水印应运而生。半脆弱水印在容忍一定程度的常见信号处理操作的同时,还可把正常的信号处理与恶意篡改区别对待。篡改发生时,半脆弱水印认证系统不仅可提供篡改的破坏量位置,而且可帮助分析篡改类型。另外,基于半脆弱水印的自嵌入水印还可恢复被篡改的部分。半脆弱水印作为一项新型数字媒体认证技术,近年来得到长足发展,并且逐步从静止图像扩展到视频等领域。视频水印从实现算法上来说同静止图像水印并无太大差别,但对半脆弱水印算法的实时性要求是必要的,而且应能处理连续帧序列。由于实际应用上的不确定性,导致了简单的数字水印不能胜任,人们提出了半脆弱水印。比如说了法庭上的证据,图像的或音频的,简单的水印加入了,敌手可能破解水印,并加入有利于敌手的篡改水印,这样原始的水印就无法发挥作用。用了半脆弱水印的话,任何敌手的恶意篡改都可能被检测到,并由于算法的不同,而采取水印毁灭或是诸如水印以篡改的信息。这样,这种证据就不能被敌手应用了。另外,由于水印是半脆弱的,在非恶意攻击下,比如JPEG压缩后,检测系统给出的结论仍然会是通过认证。这就是因为半脆弱水印对善意攻击的鲁棒性而体现的优势。总的来说,即对恶意篡改的脆弱性和对善意攻击的鲁棒性。
脆弱水印因为在内容认证方面的重要性而受到日益广泛的关注。在恶意篡改和偶然攻击之间必须要有一个确定,所以半脆弱水印要对内容保护的操作要有一定的鲁棒性。一个半脆弱水印要具备以下三个要求:对恶意篡改的高度敏感性和对内容保护操作的鲁棒性、不可见性、安全性。半脆弱水印不但要对恶意的攻击特别敏感,还要对一些常规的图像操作具有一定的鲁棒性,据此区分偶然攻击和恶意篡改。因为JPEG压缩的普遍性,抗JPEG压缩一直是半脆弱水印研究的重点和难点[3-5]。国际上已有这方面的诸多论文问世。
1.3 论文的组织
论文全文共分五章:
第一章 绪论。这一章主要介绍本课题的研究意义、现状和目标。
第二章 相关技术和设计环境概述。这一章主要介绍了数字水印的基本概念和半脆弱数字水印的基本概念,并介绍了实现认证的半脆弱水印的5种流行的方法。对于各种方法的优劣评判,接下来介绍了评价算法的几个指标。最后,介绍了实现仿真的平台,Matlab6.5。
第三章 图像认证半脆弱水印算法原理与总体设计。针对图像认证这一目标,我们的半脆弱水印有它自己的要求和特点。根据这些要求我们设计了算法,这一章给出了算法的框架,并对算法进行了模块划分,最后给出了程序框图。
第四章 图像认证半脆弱水印算法的详细设计与实现。这一章详细介绍了水印算法的各个步骤的实现,最后对实验结果进行分析,并评价了本算法。
第五章 总结与展望。这一章主要是对本次毕业设计论文工作的总结,以及对数字水印技术发展的想法。
第二章 相关技术与设计环境概述
数字水印技术的基本思想源于古代的伪装术(密写术)。古希腊的斯巴达人曾将军事情报刻在普通的木板上,用石蜡填平,收信的一方只要用火烤热木板,融化石蜡后就可以看到密信。使用最广泛的密写方法恐怕要算化学密写了,牛奶、白矾、果汁等都曾充当过密写药水的角色。大约700年前,在手工造纸技术中出现了纸张上的水印。
可以说,人类早期使用的保密通信手段大多数属于密写而不是密码。但与密码技术相比,密写术始终没有发展成为一门独立的学科,其中的主要原因是密写术缺乏必要的理论基础。
然而今天的数字化技术的发展为古老的密写术注入了新的活力,在研究数字水印的过程中,研究者大量借鉴了信息伪装的思想。尤其是近年来信息隐藏技术理论框架研究的兴起,更给密写术成为一门严谨的科学带来了希望。
2.1 数字水印的概念
2.1.1 数字水印的基本概念
在数字水印技术中,水印的数据量和鲁棒性构成了一对基本矛盾。理想的水印算法应该既能隐藏大量数据,又可以抗各种信道噪声和信号变形。然而在实际这两个指标往往不能同时实现,但是实际应用一般只偏重其中的一个方面。如果是为了隐蔽通信,数据量显然是最重要的,由于通信方式极为隐蔽,遭遇敌方篡改攻击的可能性很小,因而对鲁棒性要求不高。但对保证数据安全来说,情况恰恰相反,各种保密的数据随时面临着被盗取和篡改的危险,所以鲁棒性是十分重要的,此时,隐藏数据量的要求居于次要地位。
一般数字水印的通用模型包括嵌入和检测、提取两个阶段。数字水印的生成阶段,嵌入算法的嵌入方案的目标是使数字水印在不可见性和鲁棒性之间找到一个较好的折中。检测阶段主要是设计一个相应于嵌入过程的检测算法。检测的结果或是原水印(如字符串或图标等),或是基于统计原理的检验结果以判断水印存在与否。检测方案的目标是使错判与漏判的概率尽量小。为了给攻击者增加去除水印的不可预测的难度,目前大多水印制作方案都在加入、提取时采用了密钥,只有掌握密钥的人才能读出水印。
数字水印技术从不同的角度有下面的一些划分方法。
1. 按特性划分
按水印的特性可以将数字水印分为鲁棒数字水印和脆弱数字水印。鲁棒数字水印主要用于在数字作品中标识著作权信息,它要求嵌入的水印能够经受各种常用的编辑处理;脆弱数字水印主要用于完整性保护,脆弱水印必须对信号的改动很敏感,人们根据脆弱水印的状态就可以判断数据是否被篡改过。
2. 按水印所附载的媒体划分
按水印所附载的媒体,数字水印分为图像水印、音频水印、视频水印、文本水印以及用于三维网格模型的网格水印等。
3. 按检测过程划分
按水印的检测过程将数字水印分为明文水印和盲水印。明文水印在检测过程中需要原始数据,而盲水印的检测只需要密钥,不需要原始数据。一般明文水印的鲁棒性比较强,但其应用受到存储成本的限制。目前数字水印大多数是盲水印。
4. 按内容划分
按数字水印的内容可以将水印划分为有意义水印和无意义水印。有意义水印是指水印本身也是某个数字图像(如商标)或数字音频片段的编码;无意义水印则只对应于一个序列号。有意义水印如由于受到攻击或其他原因致使解码后的水印破损,人们仍然可以通过视觉观察确认是否有水印。但对于无意义水印来说,如果解码后的水印序列有若干码元错误,则只能通过统计决策来确定信号中是否含有水印。
5. 按水印隐藏的位置划分
按数字水印的隐藏位置划分为时域数字水印、频域数字水印、时/频域数字水印和时间/尺度域数字水印。时域数字水印是直接在信号空间上叠加水印信息,而频域数字水印、时/频域数字水印和时间/尺度域数字水印则分别是在DCT变换域、时/频变换域和小波变换域上隐藏水印。随着数字水印技术的发展,各种水印算法层出不穷,水印的隐藏位置也不再局限于上述四种。实际上只要构成一种信号变换,就有可能在其变换空间上隐藏水印。
6. 按用途划分
不同的应用需求造就了不同的水印技术。而这又可分为6种不同的水印技术。
(1)数字作品的知识产权保护
版权标识水印是目前研究最多的一类数字水印由于数字作品的拷贝、修改非常容易,而且可以做到与原作完全相同,所以原创者不得不采用一些严重损害作品质量的办法来加上版权标志,而这种明显可见的标志很容易被篡改。数字作品的所有者可用密钥产生一个水印,并将其嵌入原始数据,然后公开发布其水印版本作品。当该作品被盗版或出现版权纠纷时,所有者即可从盗版作品或水印版作品中获取水印信号作为依据,从而保护所有者的权益。
目前用于版权保护的数字水印技术已经进入了初步实用化阶,IBM(International Business Machines Corporation,国际商用机器公司)公司在其”数字图书馆”软件中就提供了数字水印功能,Adobe公司也在其著名的Photoshop软件中集成了Digimarc公司的数字水印插件。
(2)商务交易中的票据防伪
随着高质量图像输入输出设备的发展,特别是高精度彩色喷墨、激光打印机和高精度彩色复印机的出现,使得货币、支票以及其他票据的伪造变得更加容易。
据报道,美国、日本以及荷兰都已开始研究用于票据防伪的数字水印技术。麻省理工学院媒体实验室受美国财政部委托,已经开始研究在彩色打印机、复印机输出的每幅图像中加入唯一的、不可见的数字水印,在需要时可以实时地从扫描票据中判断水印的有无,快速辨识真伪。
此外在电子商务中会出现大量过度性的电子文件,如各种纸质票据的扫描图像等。即使在网络安全技术成熟以后,各种电子票据也还需要一些非密码的认证方式。数字水印技术可以为各种票据提供不可见的认证标志,从而大大增加了伪造的难度。
(3)标题与注释
即将作品的标题、注释等内容(如照片的拍摄时间和地点等)以水印形式嵌入到作品中,这种隐式注释不需要额外的带宽,且不易丢失.
(4)篡改提示
由于现有的信号拼接和镶嵌技术可以做到移花接木而不为人知,基于数字水印的篡改提示是解决这一问题的理想技术途径,通过隐藏水印的状态可以判断声像信号是否被篡改。为实现该目的,通常可将原始图象分成多个独立块,再将每个块加入不同的水印。
同时可通过检测每个数据块中的水印信号,来确定作品的完整性。与其他水印不同的是,这类水印必须是脆弱的,并且检测水印信号时,不需要原始数据。
(5)使用控制
这种应用的一个典型的例子是DVD(Digital Video Disk, 数字化视频光盘)防拷贝系统,即将水印信息加入DVD数据中,这样DVD播放机即可通过检测DVD数据中的水印信息而判断其合法性和可拷贝性。从而保护制造商的商业利益。
(6)隐蔽通信及其对抗
数字水印所依赖的信息隐藏技术不仅提供了非密码的安全途径,可以实现网络情报战的革命。网络情报战是信息战的重要组成部分,其核心内容是利用公用网络进行保密数据传送。由于经过加密的文件往往是混乱无序的,容易引起攻击者的注意。网络多媒体技术的广泛应用使得利用公用网络进行保密通信有了新的思路,利用数字化声像信号相对于人的视觉、听觉冗余,可以进行各种信息隐藏,从而实现隐蔽通信〔4〕。
2.1.2 半脆弱数字水印的基本概念
按照水印特性,即水印抵抗攻击噪声能力可分为鲁棒水印和脆弱水印,而半脆弱水印是介于两者之间的水印技术。
鲁棒水印是指经受攻击后仍然能够提取出的水印,它能够抵制任何企图破坏或去除水印的操作,任何企图移动和破坏水印的操作都将导致媒体质量的严重损害。这个特性使得它主要用在版权保护和内容跟踪上。透明性(不可见性)和鲁棒性是其最重要的两个特征。
为了取得理想的鲁棒性,提出了许多水印技术。如利用扩频的方法,将水印作为一个窄带的信号通过宽带的信道(载体图像)进行传输,各种有意无意的干扰被视作噪声。还有基于图像特征的自适应水印方案,动态地改变水印嵌入参数来降低嵌入过程带来的干扰,增强水印的鲁棒性。脆弱水印极容易破坏,一般用于图像的认证。任何对嵌入水印图像的操作都会破坏嵌入其中的水印,许多的水印技术还能定位出被篡改部分的位置。但是,脆弱水印对图像某些正常的操作鲁棒性太差,比如正常的JPEG压缩及图像的增强。实际应用中我们希望嵌入的水印对这些正常的操作具有一定的鲁棒性同时又能够检测到对图像恶意修改(比如添加、移动、扭曲图像中的物体)。由此,就产生了所谓的半脆弱水印。
半脆弱水印融合了鲁棒水印和脆弱水印的特性,主要用在图像的内容认证上,这就需要它必须具备两个基本特性:(1)透明性:即嵌入水印的过程是不可察觉的,嵌入水印后的图像质量不能引起质的变化。这是大多数水印嵌入方案所要求的。(2)盲检测:即在认证的时候不需要原始图像。
2.1.3 半脆弱数字水印的实现方法
一个典型的数字水印系统,包括水印的生成、水印的嵌入及水印提取的三个部分,半脆弱水印和鲁棒水印的嵌入过程基本相同,但是在水印提取(即图像认证)的过程中与鲁棒水印不同。下面我们以图像的半脆弱水印为例说明水印的嵌入和检测过程:
(1)水印的嵌入过程
水印的嵌入算法为 (),水印为W,原始图像为I,嵌入水印后的图像为 。设 。 为从图像中抽取出要嵌入水印的属性序列, 。 为相应的水印序列,水印是有特殊意义的信息,如文字、序列号、公司标志、声音等。则一般的嵌入规则为:
(加法规则) (2.1)
(乘法规则) (2.2)
利用 代替载体图像中的V,即得到嵌入水印的图像 。抽取的属性序列V即可以是采样强度/幅度(空域/时域)或者是变换系数大小(变换域),由此对应空域和频域的水印算法。参数 随着采样的不同而不同。水印嵌入强度应该保证水印是不可见的,即嵌入的水印应该不影响载体图像的原内容和价值。算法的框架如下:
图2.1 一般水印的嵌入框图
(2)水印的检测过程
水印的提取算法为 ,对于一个待测试的图像 ,利用提取算法提取出水印 ,其中K为提取密钥。利用W和 的差别(需要预先设置一个阈值)或者利用一个相似函数,我们就可以对图像的真实性进行认证。脆弱水印算法的目的在于真实性认证,因此在认证的过程,或者说在水印的提取过程中不需要原始图像;而鲁棒水印的目的是版权保护,因此某些鲁棒水印算法在水印提取的过程中可能需要原始图像。一般水印检测和认证框图如图2.2。
2.2 算法性能指标简介
图2.2 一般水印检测和认证框图
水印的不可感知性和稳健性之间有一个权衡。对水印的不可感知性进行评估可以通过主观测试或者通过质量度量来衡量。现在,在图像和视频的编码压缩领域最流行的失真度量标准是SNR(Signal to Noise Ratio,信噪比),以及PSNR (Peak Signal to Noise Ratio,峰值信噪比)。它们通常以dB(decibel,分贝)来度量。
(2.3)
(2.4)
其中 和 ,分别表示原始图像和嵌入水印后的图像中点的灰度值。X, Y分别是图像行和列的个数。由2.4式中可以看出较高的峰值信噪比对应较高的图像相似程度,也就是表示嵌入水印后的图像有较高的不可感知性。还有用MSE(Mean Squared Error,均方误差)来度量图像的客观保真度的,与PSNR相反,MSE越小表示图像的近似程度越高,即:
(2.5)
在确定了失真度量后,下一个要解决的问题就是如何评估稳健性。根据嵌入水印的类型:一种是由某一密钥产生的随机序列;另一种是特定的信息或图像。水印检测的方法也相应有两种:对于随机序列的判定,一般利用假设检验的原理计算相似性,即:
(2.6)
当 时水印存在,否则判定水印不存在[8]。
当然,一个可能成为标准的数字水印系统必须能够抵御各式各样的攻击,上述的评测标准只是其中的几个方面,如信噪比和峰值信噪比这两种度量方法在大多数情况下可以较为准确的反映出图像的视觉质量,但由于它们没有与人类的视觉系统和感知性相结合,所以在进行评估时又可能导致错误的结论。可见数字水印的跨学科性质决定了其进展与相关学科的发展密切相关。
2.3 仿真介绍
Matlab是Mathworks公司开发的一种集计算、图形可视化和编辑功能于一体的功能强大、操作简便、易于扩充的语言,是目前国际上公认的优秀的数学应用软件之一。
? 在70年代中期,Cleve Moler博士和其同事在美国国家科学基金的资助下开发了调用EISPACK和LINPACK的FORTRAN子程序库。EISPACK是特征值求解的FOETRAN程序库,LINPACK是解线性方程的程序库。在当时,这两个程序库代表矩阵运算的最高水平。
到70年代后期,身为美国New Mexico大学计算机系系主任的Cleve Moler,在给学生讲授线性代数课程时,想教学生使用EISPACK和LINPACK程序库,但他发现学生用FORTRAN编写接口程序很费时间,于是他开始自己动手,利用业余时间为学生编写EISPACK和LINPACK的接口程序。Cleve Moler给这个接口程序取名为Matlab,该名为矩阵(matrix)和实验室(labotatory)两个英文单词的前三个字母的组合。在以后的数年里,Matlab在多所大学里作为教学辅助软件使用,并作为面向大众的免费软件广为流传。
1983年春天,Cleve Moler到Standford大学讲学,Matlab深深地吸引了工程师John Little。John Little敏锐地觉察到Matlab在工程领域的广阔前景。同年,他和Cleve Moler,Steve Bangert一起,用C语言开发了第二代专业版。这一代的Matlab语言同时具备了数值计算和数据图示化的功能。
1984年,Cleve Moler和John Little成立了Math Works公司,正式把Matlab推向市场,并继续进行Matlab的研究和开发。
在当今30多个数学类科技应用软件中,就软件数学处理的原始内核而言,可分为两大类。一类是数值计算型软件,如Matlab,Xmath,Gauss等,这类软件长于数值计算,对处理大批数据效率高;另一类是数学分析型软件,Mathematica,Maple等,这类软件以符号计算见长,能给出解析解和任意精确解,其缺点是处理大量数据时效率较低。MathWorks公司顺应多功能需求之潮流,在其卓越数值计算和图示能力的基础上,又率先在专业水平上开拓了其符号计算,文字处理,可视化建模和实时控制能力,开发了适合多学科,多部门要求的新一代科技应用软件Matlab。经过多年的国际竞争,Matlab以经占据了数值软件市场的主导地位。
在Matlab进入市场前,国际上的许多软件包都是直接以FORTRANC语言等编程语言开发的。这种软件的缺点是使用面窄,接口简陋,程序结构不开放以及没有标准的基库,很难适应各学科的最新发展,因而很难推广。Matlab的出现,为各国科学家开发学科软件提供了新的基础。在Matlab问世不久的80年代中期,原先控制领域里的一些软件包纷纷被淘汰或在Matlab上重建。
MathWorks公司1993年推出了Matlab 4.0版,1995年推出4.2C版(for win3.X)1997年推出5.0版。1999年推出5.3版。Matlab5.X较Matlab 4.X无论是界面还是内容都有长足的进展,其帮助信息采用超文本格式和PDF格式,在Netscape 3.0或IE 4.0及以上版本,Acrobat Reader中可以方便地浏览。
时至今日,经过MathWorks公司的不断完善,Matlab已经发展成为适合多学科,多种工作平台的功能强大大大型软件。在国外,Matlab已经经受了多年考验。在欧美等高校,Matlab已经成为线性代数,自动控制理论,数理统计,数字信号处理,时间序列分析,动态系统仿真等高级课程的基本教学工具;成为攻读学位的大学生,硕士生,博士生必须掌握的基本技能。在设计研究单位和工业部门,Matlab被广泛用于科学研究和解决各种具体问题。在国内,特别是工程界,Matlab一定会盛行起来。可以说,无论你从事工程方面的哪个学科,都能在Matlab里找到合适的功能〔7〕。
第三章 图像认证半脆弱水印算法原理与总体设计
半脆弱水印技术既可以在一定程度上容忍施加于含水印数字媒体上的常见信号处理操作(如叠加噪声、平滑滤波、有损压缩等),又能够对恶意篡改做出报警反应且具有定位篡改区域的能力,故在网络时代具有更重要的应用价值。近几年,半脆弱图像数字水印技术研究取得了很大进展,陆续提出了诸如与JPEG编解码器相结合、基于视觉掩蔽特性、基于量化系数等多种水印嵌入算法。这些半脆弱型水印算法普遍具有篡改检测较出色、虚警率较低的优点,但也不同程度存在透明性较差、对某些常规信号处理不够鲁棒、篡改区域定位不够准确等不足。
3.1 用于图像认证算法的特殊要求分析
图像认证的目的是确认作品没有受到任何改变,可用脆弱水印来实现图像认证。为了便于检测,脆弱水印对某些变换(如压缩),具有较低的健壮性,面对其他变换的健壮性更低。脆弱水印对图像的改变极其敏感,适于图像的精确认证,但对数字图像来说,少量比特的改变不会造成原作品实质上的不同,事实上有的失真(如有损压缩等)会修改作品中很多的比特,但在视觉上不会造成改变。在许多应用中,两幅图像在视觉上相似就意昧着其压缩版本是可接受的。此时,基于脆弱水印的精确认证无法实现图像认证,这促使研究人员提出能够进行选择认证的半脆弱水印。目前大多数图像数字水印研究都集中在版权保护水印上,而对图像认证水印的研究相较少,针对这种情况,论文中提出了一种能经受JPEG压缩的半脆弱水印算法。该方法将两个水印位嵌入到图像每个8*8块的高频DCT(Discrete Cosine Transform,离散余弦变换)系数中,水印信号和嵌入的位置由DCT系数样本和密钥决定。这种水印可以从严重的JPEG压缩中保存下来,但对低通滤波和噪声等极为敏感,可用于图像的选择认证〔8〕。
3.2 实现认证功能的总体设计
所谓认证水印就是在保证数字媒体信息一定视(或听)觉质量的前提下,将与媒体内容相关或不相关的标志信息作为水印直接嵌入媒体内容中,当媒体内容需要认证时,可将水印提出鉴定其是否真实完整。认证水印除了具有数字水印的一般特征,如不可见、稳健性、安全性外,水印本身对篡改必须具有一定的敏感性和脆弱性。因此,同样在数字媒体中嵌入信息,认证水印与鲁棒水印的不同之处在于当信息内容发生改变时,认证水印信息会发生一定程度的改变。要实现对于图像的认证功能,在水印嵌入和检测上就有一些要求了。本身嵌入的水印就不能对要保护的图像在感官上有太大的改变,这就要求嵌入的水印要在较低的有效位上,嵌入的水印不能是显式的。提取出水印后,我们要把水印和嵌入的水印进行比较,以确定水印是否被篡改,最终才能认证图像。
3.2.1模块划分
本算法共分为四个部分,水印预处理,水印嵌入,水印检测,攻击检测。
图3.1 算法模块划分图
3.2.2算法框架图
认证水印系统的一般框架如图3.2,系统主体包括三部分,水印的产生,嵌入和检测认证。
认证水印系统首先将提取的宿主图像信息(特征或图像内容)或自定义信息(图像标志或序列号)转变为水印信号,通过嵌入算法将其嵌入原始图像中,得到的含水印的图像经过信道在信宿端被接收.通过检测认证算法进行认证,得到检测结果。检测认证时,要求仅仅借助待测图像,或者再加上水印信息,即可得认证结果。在实际应用中,在嵌入和检测的过程中,还需加入密钥。
图3.2 认证水印系统的一般框架图
图3.3给出一典型认证水印实现的例子。可以看出,图3.3(a)(b)无明显视觉差异。图3.3(d)能较好的定位篡改部位。
(a)原始图像 (b)嵌入水印后的图像 (c)篡改图像 (d)检测结果
图 3.3 认证水印的实现例子
而本论文的设计思想就是要实现对于图像的认证。由于其特有的性质,我的算法也有一定的特性。首先产生的水印信息是高斯伪随机码,这是因为我考虑到,在具体的一副图像中,不同的主体植入的水印信息是不同的,而我现在植入随机序列作为信息,就具有一定的普遍性了。还有,我做的是不可见水印,也就无所谓植入的信息是否有直观意义了。之后是对水印信息进行海明编码,其作用是为了防止在传输过程中的客观出错。对信息进行置乱则是加密的需要了。做完了这些准备工作后即可以植入水印信息了。我的算法采用分块DCT植入的方法,即把图像分成8*8的小块,每个都植入水印信息。最后就是对图像进行攻击测试了。我一共选用了10种常见的攻击,一一做实验,验证我算法的性能。
下面就给出这个算法的框架图。
图3.4 本程序的框图
第四章 图像认证半脆弱水印算法的详细设计与实现
在实际应用中,一个实用的数字媒体认证系统应大致满足一些基本要求。如对篡改操作与否应具备极强的判断能力;应对数字媒体内容被篡改的程度进行有效描述;在无法得知原始数字媒体内容或其它与真实信号内容相关的信息条件下,判断可能发生的篡改操作的具体类别,例如信号处理中的滤波、压缩、还是替换操作等。
4.1 算法思路
由于本算法是要实现对图像的认证功能,故在算法上有一定的特点。由于具体水印信息的不确定性,本论文加入的水印信息是个随机的噪声码,这样在水印信息上就具有一定的普遍性了。算法首先是在扩频域对水印信息进行预处理,采用的方法有海明编码,直序扩展,以达到一定的加密和抗传输错误要求。嵌入算法是在DCT域分块植入水印信息。检测算法和嵌入算法是个相逆的过程。最后把提取的水印和原水印进行相关系数比较,从而判断是否受到篡改攻击。
4.2 各步骤详细设计
模块化程序设计就是把一个复杂的程序分成若干小部分,分部来进行设计,以达到简化设计的目的。水印算法现在大都采用这种方法。论文的算法把程序分成如下三个部分:水印预处理、水印嵌入和水印检测。
4.2.1水印预处理的实现
要想得到安全的水印,在嵌入目标水印前必须要对其进行一个预处理的过程。也就是加密的过程。本算法是用海明编码和伪随机码进行置乱以隐藏加入的水印信息。如果传输的数据位是m位,加了r位冗余位,那么总共传输的数据单元是m+r位。 为了能够发现这m+r位数据单元在传输到目的端后是否出错,并能够指明是在哪一位出错,那么r至少应该能够代表m+r+1种状态。r比特能够代表2r不同状态。 因此,2r>=m+r+1 。若m=7,则满足上式的最小r值为:4。下面以一个例子来说明海明码的纠错原理。
海明码的接收端的公式:
S3= P3⊕ D4⊕D3 ⊕D2
S2= P2⊕D4 ⊕D3 ⊕D1 (4.1)
S1= P1⊕D4 ⊕D2 ⊕D1
假定海明码1010101在传送中由于偶然错误变成了1000101 ,
S3= P3⊕ D4⊕D3 ⊕D2=0⊕1⊕0 ⊕0 =1
S2= P2⊕D4 ⊕D3 ⊕D1=0⊕1⊕ 0 ⊕1=0
S1= P1⊕D4 ⊕D2 ⊕D1=1⊕1⊕ 0 ⊕1=1
因此,由S3S2S1= 101,指出第5位错,应由0变1。这样就可以纠错了。
本文的算法要求先实现海明编码,根据本论文加入的水印信息是34*4的伪随机码,所以实现海明编码后得到的是36*7的编码。
for i=1:36
s=8*x0(i,1)+4*x0(i,2)+2*x0(i,3)+x0(i,4);
switch s
case 0
x0(i,5)=0;x0(i,6)=0;x0(i,7)=0;
case 1
x0(i,5)=0;x0(i,6)=1;x0(i,7)=1;
case 2
x0(i,5)=1;x0(i,6)=1;x0(i,7)=0;
case 3
x0(i,5)=1;x0(i,6)=0;x0(i,7)=1;
case 4
x0(i,5)=1;x0(i,6)=1;x0(i,7)=1;
case 5
x0(i,5)=1;x0(i,6)=0;x0(i,7)=0;
case 6
x0(i,5)=0;x0(i,6)=0;x0(i,7)=1;
case 7
x0(i,5)=0;x0(i,6)=1;x0(i,7)=0;
case 8
x0(i,5)=1;x0(i,6)=0;x0(i,7)=1;
case 9
x0(i,5)=1;x0(i,6)=1;x0(i,7)=0;
case 10
x0(i,5)=0;x0(i,6)=1;x0(i,7)=1;
case 11
x0(i,5)=0;x0(i,6)=0;x0(i,7)=0;
case 12
x0(i,5)=0;x0(i,6)=1;x0(i,7)=0;
case 13
x0(i,5)=0;x0(i,6)=0;x0(i,7)=1;
case 14
x0(i,5)=1;x0(i,6)=0;x0(i,7)=0;
case 15
x0(i,5)=1;x0(i,6)=1;x0(i,7)=1;
end;
end;
由于本身我们嵌入的水印信息是高斯正态分布序列,本身就具有一定的无序性,再加上之后用伪码进行了置乱,很好的达到了加密的目的。为了抵抗在传输过程中的偶然错误,伪码用了海明码纠错。所以检测的时候我用相关的纠错解码技术就可再现水印信息。
4.2.2水印嵌入的实现
由于JPEG压缩的不变性,也就是说,如果一个DCT系数是经过某个预先选定的量化步长量化并取整得到的,只要后续的量化步长小于选定值,则这个DCT系数可以被精确重建,换句话说,如果某幅图像预先经过某个选定的质量因子的JPEG有损压缩,那么这幅图像可以对任何大于该选定质量因子的后续JPEG压缩保持不变,因为原始量化图像所有DCT系数都可以精确重建,而如果后续JPEG压缩的质量因子小于选定值,原始量化图像的DCT系数则无法恢复。这个需要预先选定的质量因子一般可以设定为人眼最低可以接受的图像质量因子,也就是说,任何低于该质量因子的图像被视为不可接受的。JPEG标准推荐图像的质量因子在50一75之间均为视觉上可以接受的,因此我们可以选择50作为预先设定的质量因子,其对应的量化表为DCT系数的量化步长。
利用前面所述的JPEG压缩的不变性,首先将原始图像的8*8块DCT系数块按预定的质量因子对应的量化表进行量化,通过对量化后的DCT系数进行”微调”来嵌入水印信息比特,再进行DCT反变换得到水印图像。相同的过程提取出水印,并将其与原始水印信息匹配的百分比和设定的阈值比较,决定是否通过认证。该算法能够抵抗所有大于预定质量因子的攻击。
算法中水印信息的选择是基于图像内容特征的。一种简单的基于图像内容的特征是每个分块灰度值的均值的最重要位(MSB ,the Most Significant Bit),即最高位。水印的嵌人算法采用了一种无损数据隐藏方法环形直方图算法(Circular His-togram Algorithm)。首先把待嵌人水印的图像分成8*8块,每块64个像素通过密钥被随机地分为A和B两组,在每一组中,灰度值直方图映射为一个环形,环形的周长为256个单位,等分为Q个区间,每个区间分的弧长为256/O若一个像素灰度值落在某个区间之内,则这个区间的权重加1,这样每一组共有犯个权重加载在环上。计算每组环上的加权平均值,从统计学的角度分析,由于A, B两组的像素都是随机选择的,因而A, B两组的加权平均值应非常接近或近似相等。为了在每一个8*8块中嵌入1比特水印信息,将块中像素的灰度值作如下修改:
若嵌人比特为”1 ” C`=C+P当像素在A组中;
C`=C-P当像素在B组中;
若嵌入比特为”0″ C`=C-P当像素在A组中;
C`=C+P当像素在B组中;
其中c为待嵌入水印图像的像素灰度值,c为修改后,即嵌入水印后图像的像素灰度值,P= 256/Q。若嵌入比特”1″,则A组中的所有像素灰度值增加P,对应到环上即像素灰度值均顺时针方向偏转了一个区间,每个像素在环上的位置均顺时针转了360/Q度。相应的B组中的所有像素均逆时针方向偏转了相同的度数。这样当嵌入比特”10的时候,A组的加权平均值大于B组,且每个图像块灰度值的均值,即选定的图像特征保持不变。嵌入”0″比特的情况同理可得。通过这种环形直方图无损数据隐藏算法将由图像内容特征产生的水印信息嵌入了预压缩后的图像〔9〕。
4.2.3水印检测的实现
将接收到的待验证的图像先按预定质量因子压缩,恢复出预压缩后的水印图像;再依照环形直方图算法提取水印:将图像8*8分块按选定的密钥随机分成A, B两组,并映射到环上,计算A, B两组对应环的加权平均值。如果A组的加权平均值大于B组,则提取出比特”1″,反之则提取出比特”0″。图像认证过程将提取出的水印比特与对恢复出的预压缩图像再次计算得到的特征信息进行比较匹配,若匹配的百分比大于设定的域值则图像通过认证,反之判断为遭受过恶意篡改。由前面所说的JPEG压缩的不变性可知,该算法可以抵抗任何高于预定质量因子的JPEG压缩。并能根据认证过程中不匹配的比特定位遭受篡改的位置,精度为8*8块。由于嵌人的水印信息是基于图像内容特征的,每幅图像嵌人的比特信息必定各不相同,因而可以有效地抵抗共谋攻击〔10〕。
论文中用到的纠错编码现在就可以发挥它的优势了。程序实现到此,论文用纠错解码的方法得到36*4的提取水印,把这个水印和之前植入的水印信息进行比较,就可以作出是否被篡改的判断了。
for i=1:36
s1(i)=x1(i,1)+x1(i,2)+x1(i,3)+x1(i,5);
s2(i)=x1(i,2)+x1(i,3)+x1(i,4)+x1(i,6);
s3(i)=x1(i,1)+x1(i,2)+x1(i,4)+x1(i,7);
s1(i)=mod(s1(i),2);
s2(i)=mod(s2(i),2);
s3(i)=mod(s3(i),2);
if (s1(i)==0&s2(i)==0)&(s3(i)==1)
x1(i,7)=~x1(i,7);
elseif (s1(i)==0&s2(i)==1)&(s3(i)==0)
x1(i,6)=~x1(i,6);
elseif (s1(i)==0&s2(i)==1)&(s3(i)==1)
x1(i,4)=~x1(i,4);
elseif (s1(i)==1&s2(i)==0)&(s3(i)==0)
x1(i,5)=~x1(i,5);
elseif (s1(i)==1&s2(i)==0)&(s3(i)==1)
x1(i,1)=~x1(i,1);
elseif (s1(i)==0&s2(i)==1)&(s3(i)==0)
x1(i,3)=~x1(i,3);
elseif (s1(i)==1&s2(i)==1)&(s3(i)==1)
x1(i,2)=~x1(i,2);
end;
end;
4.3 实验结果与分析
由算法写的程序在Matlab6.5平台上仿真,使用标准水印实验图像cameraman(256*256)(如图4.1)作为认证图像。由于Matlab的易用性,我只要用个简单的函数imread()就能读取cameraman图像为我用了。
图4.1 Cameraman
Matlab功能强大的函数功能使我生成高斯正态序列也变得简单了。如下的程序能生成36*4的信息。
randn(’state’,1106);
g1=randn(36,4);
for i=1:36
for j=1:4
if g1(i,j)>=0
w0(i,j)=1;
else w0(i,j)=0;
end;
end;
end;
加入的高斯正态序列生成的图片,也即要加入的水印图像如图4.2。
图 4.2 水印图像
这些属于预处理的工作做好后,就可以实现嵌入了。嵌入水印是所有所有算法中最重要的部分,这部分写的好坏能很大程度上影响算法的性能。应用本算法嵌入水印后的图像为4.3图。
图 4.3 嵌入水印后的图像
使用语句imwrite(f,’attackf.jpg’,'jpg’,'quality’,30)即实现了30%JPEG压缩。攻击后的图像为图4.4。
图 4.4 30%jpeg压缩后的图像
我们知道,在评价一个算法好坏的时候有两中标准,一种是主观的一种是客观的。首先在主观上我们可以很直接的说,算法能抵抗压缩因子为30%的JPEG压缩。当我们把压缩因子提高到20%时的图像如图4.5。
这样在主观上我们就能看出来压缩因子在20时,算法就有一定的局限性了。对JPEG压缩攻击后的图像进行水印提取后与嵌入的水印进行相关系数运算结果是r11=corr2(w0,w11)=1;snr11=31.2909。对余下的九种攻击,我们也给出图像,并求其相关系数和信噪比。由于算法加入了纠错编码,使得水印在遭受恶意篡改后所求出的相关系数是0,而在遭受了善意攻击后的相关系数则是1。
所以得出结论如下:本算法能有效抵抗高斯低通滤波,直方图均衡化,图像增亮和变暗,对增加对比度,降低对比度,添加高斯噪声增黑白像素点,添加乘积性噪声则性能下降。也就是说本算法能很好的实现对图像的认证功能。但算法对篡改的定位不是很有效,只能在主观上判断篡改部分。
图 4.5 20%jpeg压缩后的图像
snr=30.3054 r=1
以下依次给出论文所做的其它攻击后的图像,如图4.6-4.14。
图4.6高斯低通滤波后的图像 图4.7 直方图均衡化后的图像
snr=31.067 r=1 snr=31.126 r=1
图4.8 图像增亮处理后的 图4.9 图像变暗处理后的
snr= 30.596 r=1 snr=30489 r=1
图4.10 增加对比度后的图像 图4.11 降低对比度后的图像
snr=30.158 r=0 snr=31.268 r=0
图4.12 添加高斯噪声后的图像 图4.13 增加黑白点像素后的图像
snr=31.564 r=0 snr=31.357 r=0
图4.14添加乘积性噪声后图像
snr=31.874 r=0
第五章 总结与展望
5.1 本文所做的工作总结
本论文主要是研究了一个用于图像认证的水印算法,并对其有效性进行了评价。下面就在本论文写作过程中作的工作进行一下总结:
一. 针对现在数字媒体应用的日益广泛和盗版现状的担忧,提出了数字水印的概念。并进一步阐述了数字水印的必要性和重要性。然后对于特殊应用上,比如图像认证方面的要求,引出了半脆弱水印的概念。之后论文还详细介绍了脆弱水印的发展历程和研究现状。
二. 论文具体解释了数字水印的定义和半脆弱水印的技术要求,并详细介绍了国内外做半脆弱水印的方法,在此基础上介绍了评价水印算法优劣的几个指标。最后对本次毕业设计要用到的仿真平台Matlab6.5进行了简单的介绍。
三. 针对要实现对图像进行认证这一目标,介绍了认证算法的一般要求,然后就提出了一个可用于图像认证的半脆弱水印算法。介绍了算法的思路,并画出了算法的方框图。
四. 这部分详细说明了算法各个部分的实现过程。包括水印的预处理的实现,水印嵌入的实现和水印检测的实现。之后把仿真后的输出结果直观的贴在论文里,并给出了攻击后图像对于原图像的信噪比和水印的相关系数。再加上我们的主观评价,得出了对算法的评价。
5.2 工作展望
数字水印技术的理论基础依然非常薄弱,大多数水印算法还是经验性的。主要有以下几个方面还需努力:
〔1〕 从现实的角度看,水印系统必然要在算法的鲁棒性、水印的嵌入信息量以及不可觉察性之间达到一个平衡,这涉及鲁棒性算法的原理性设计、水印的构造模型、水印能量和容量的理论估计、水印嵌入算法和检测算法的理论研究等方面。如何确定平衡点仍是一个难题,目前大多数水印算法均利用经验而不是从理论上解决此问题;
〔2〕如何将水印技术与现行国际图像及视频压缩标准,如JPEG2000和MPEG-4(Moving Picture Experts Group-4,运动图像专家组)相结合,以及如何将水印技术应用于DVD工业标准中;
〔3〕 所有权的证明问题还没有完全解决,就目前已经出现的很多算法而言,攻击者完全可以破坏掉图像中的水印,或复制出一个理论上存在的”原始图像”,这导致文件所有者不能令人信服地提供版权归属的有效证据。因此一个好的水印算法应该能够提供完全没有争议的版权证明,在这方面还需要做很多工作。目前将水印作为版权保护的法律证据还不可能;
〔4〕声频和视频水印的解决方案还不完善,大多数的视频水印算法实际上是将其图像水印的结果直接应用与视频领域中,而没有考虑视频应用中大数据量以及近乎实时的特性。从今后的发展上看,水印在包括DVD等数字产品在内的视频和音频领域将有极为广阔的应用前景。因此如何设计成熟的、合乎国际规范的水印算法仍然悬而未决;
〔5〕现有水印算法中在原理上有许多雷同之处,但目前国内外的工作尚未能对这些有内在联系的不同算法中的共性问题进行高度提炼和深入的理论研究,因而缺乏对数字水印作进一步研究具有指导意义的理论结果。
从目前看大多数水印算法本质上都没什么差别,且在嵌入过程中均是对PN(Pseudo Noise Sequence,伪随机序列)序列进行调制并结合掩蔽特性,在检测过程中使用基于相关法的假设检验。水印算法的设计不仅要考虑一般性的由标准数据处理过程导致的鲁棒性问题,而且要考虑由于恶意攻击而导致的鲁棒性问题。前面已经提到了几种普遍的攻击类型,针对性的水印策略和方法也在研究中。一句话,水印应该有足够的冗余设计以保证能够抵抗各种攻击行为。在版权保护方面,还需要考虑一些额外的方面。一个问题是如果有很多水印被嵌入到图像中,如何证明那个最先被嵌入的。此问题的解决也许需要数字时间标识或水印等级等方法。而且现在已经可以看出,一个水印算法仅仅有足够的鲁棒性不足以保证解决有效版权问题,即使能够得到原始数据。更进一步的讲,水印算法应该是非对称的、单向的、不可逆的。
虽然已经有商业化的水印系统,但对水印的研究还远未成熟,许多问题如鲁棒性、真伪鉴别、版权证明、网络快速自动验证等方面仍然还需要比较完美的解决方案〔11-14〕。
评论
查看更多