基于MATLAB的数字水印算法实现
(完整word版)数字图像水印matlab实现
论文独创性声明本人所呈交的论文,是指导教师的指导下,独立进行研究和开发工作所取得的成果。
除文中已特别加以注明引用的内容外,论文中不包含任何其他个人或集体已经发表或撰写过的研究成果。
对本文的工作做出重要贡献的个人和集体,均已在文中以明确方式标明并致谢。
本人完全意识到本声明的法律结果由本人承担.特此声明。
论文作者(签名):20 年月日摘要随着计算机网络的迅速发展,包括数字图像在内的数字媒体得到了广泛的应用,数字媒体的数据逐渐成为人们获取信息的重要来源,但随之而来出现了一系列如随意复制、编辑、非法传播数字图像的信息安全问题,数字媒体的版权保护问题变的日益突出,数字图像水印技术由此应用而生,已成为信息安全领域的一个研究热点.本文比较系统地研究了数字水印技术在静止图像中的应用问题。
首先介绍了数字水印技术的发展背景,然后对数字水印的原理、特点、分类、典型算法、应用领域以及评价标准等等进行了简要的分析。
其次,本文主要是针对目前现有数字图像水印算法实现过程比较复杂,其中重点讨论关于DCT的数字图像水印技术的嵌入,提取和水印的攻击测试等.最后对数字图像水印的特征进行分析总结。
最终通过Matlab这一工具来实现其具体的过程.通过实验对比分析得到该种算法具有一定的可行性以及较好的鲁棒性。
关键词:数字图像水印,信息安全,DCT算法,Matlab.AbstractWith the rapid development of computer network,digital media, including digital image has been widely used,digital media data gradually become an important source of obtaining information,but there's a series of such as free to copy, edit,illegal dissemination of digital image information security,copyright protection of digital media has become increasingly outstanding, digital image watermarking technology and the application, has become a research hotspot in the field of information security。
基于Matlab的数字水印技术研究
基于Matlab的数字水印技术研究摘要:数字水印技术是一种在数字媒体中嵌入信息的技术,它能够为数字图像、视频和音频信息赋予拥有者的权利,这些信息可以在数字媒体上传播和传播时保护其准确性和完整性。
本文采用Matlab对数字水印技术的研究进行了研究,使用Matlab的权限和仿真技术,研究了数字水印技术在PC上的不同运行,研究了水印的安全型号,以及数字水印的位置信息的可靠性。
同时,本文的仿真实验结果表明,在不同的参数设置下,数字水印技术可以实现快速、高效地提取水印,从而实现某种形式的认证在实际应用中可能是有用的。
关键词:Matlab;数字水印技术;安全模型;位置信息1 引言近年来,随着多媒体技术的飞速发展,数字媒体作为新型的信息传输媒介迅速发展,成为更为重要的媒介。
数字媒体包括数字图像、视频和音频,此类数字信息可以在处理机、PDA及移动设备中得到高速传播。
但由于数字媒体的高度灵活性,使得数字媒体可能被伪造,被随意地篡改、移植和分发。
此时,数字水印技术应运而生,它为数字媒体中嵌入的有形信息提供了有效地准确性和完整性保护(比如嵌入者的所有权证明、鉴定、认证、定向信息传输等)。
基于 Matlab 的数字水印技术研究,目标是在 Matlab 环境中开发一种数字水印技术,同时讨论数字水印的性能指标以及应用的限制。
Matlab 是一款应用非常广泛的、易于使用的微计算机软件,它拥有完善的数学运算、仿真及可视化功能,在数字水印研究中占据十分重要的地位。
2 Matlab 在数字水印方面的应用2.1 数字水印算法的模拟数字水印技术可以赋予被嵌入数字媒体的信息,可以用于认证,标记,痕迹和防伪等目的。
有了 Matlab 的强大功能,一般数字水印方法都可以使用 Matlab 来进行模拟仿真,有了数字水印算法的仿真结果,可以用于进一步评估新的数字水印技术的质量和可行性和完整性。
2.2 数字水印算法的安全模型Matlab 也可以用来研究不同的安全模型,以保证数字水印技术是安全可靠的。
基于Matlab仿真的数字水印技术
体 有 可 能 在 没有 得 到作 品所 有 者 的 许 可 下 复 制 和传 播 有 版 权 的 信 息 ,以此 来谋 取 利 益 ,大大 地侵 犯 了数 字作 品原 有者 的利 益 。
数 字 化 技 术 本 身 的 可 复 制 和 广 泛 传 播 的特 性 带 来 的 负 面 效 应 ,
道 数 字水 印算 法 ( 包 括嵌 入 和提 取 算 法 ) 的情 况 下 ,恶 意 地 进 行 各 种攻 击 操 作 ,试 图 实 现 未经 授 权 的嵌 入 、提 取 或 检 测 、删 除 水 印 等 时 ,依 然 可 以 保证 水 印 的正 确 。
2 _ 2 _ 2可证 明性
只有 专用 的 检测 器或 计算 机 软件 才可 以检 测 出隐 藏 的数字 水 印 。 在 多媒 体 中加 入数 字 水 印可 以确 立 版 权 所 有 者 、认 证 多媒
电 子 商 务 认 证 、 医 学 影 像 技 术 等 方 面 具 有 十 分 广 阔 的 应 用 前 景 。 虽然 数 字 水 印 技 术 还处 于发 展 之 中 ,但 是 不 久 的 未 来 ,数 字水 印技 术 的市 场 将会 更 加 广 阔 。
完 全 和 可靠 的证 据 。 水 印算 法 能 够 识 别 被 嵌 入 到 保 护 对 象 中 的 信 息 ,并 能在 需 要 的 时 候将 其 提 取 出来 。水 印可 以用 来 判 别 对 象 是 否 受 到保 护 .并 能 够监 视被 保 护 数 据 的传 播 、真 伪 鉴 别 以 及 非 法拷 贝控 制 等 。
置 ,实现数 字信 息的嵌 入 。使 用 DCT方 法获得 的水 印通常 具有很好 的不可见 性和鲁 棒性 ,并能 够
抵抗 诸如 I P E G压 缩等 攻击 手段
基于Matlab的数字水印设计——基于空域的水印实现
摘要数字水印(Digital Watermarking)技术是我们生活中经常见到的信息隐藏技术。
它将一些标识信息(即数字水印)直接嵌入数字载体中,但不影响原载体的使用价值,也不容易被人的知觉系统觉察或注意到。
空间数字水印是信息隐藏技术的一个重要研究方向,另一类是频率数字水印。
空间数字水印采用最低有效位(LSB)算法,通过修改表示数字图像的颜色或颜色分量的位平面,调整数字图像中感知不重要的像素来表达水印的信息,以达到嵌入水印的目的。
本实验是基于matlab的数字水印设计——基于空域的水印实现。
关键词:信息隐藏技术;空间数字水印; LSB算法;matlab目录1 设计任务与目的 (1)2 MATLAB的简介及应用 (1)2.1 MATLAB简介 (1)2.2 MATLAB应用 (1)3 数字水印技术 (2)3.1 数字水印技术的发展 (2)3.2 水印分类 (2)3.3 数字水印的特点 (3)3.4 数字水印技术的基本原理 (4)4 基于LSB的数字水印算法 (5)4.1 LSB算法原理 (5)4.2 LSB算法的实现 (6)4.2.1 水印嵌入算法 (7)4.2.2 水印提取算法 (9)5 MATLAB软件仿真 (11)5.1 仿真结果 (11)5.1.1 水印嵌入仿真 (11)5.1.2 水印提取仿真 (12)5.2 仿真分析 (13)结论 (14)参考文献 (15)基于Matlab的数字水印设计——基于空域的水印实现1 设计任务与目的(1)通过课程设计把自己在大学中所学的知识应用到实践当中。
(2)在课程设计的过程中掌握程序编译及软件设计的基本方法。
(3)深入了解利用Matlab设计基于Matlab的数字水印设计——基于空域的水印实现。
(4)提高自己对于新知识的学习能力及进行实际操作的能力。
(5)锻炼自己通过网络及各种资料解决实际问题的能力。
2 MATLAB的简介及应用2.1 MATLAB简介MATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
matlab数字水印算法及实现和源代码
1.数字作品的知识产权保护----数字作品(如电脑美术、扫描图像、数字音乐、视频、三维动画)的版权保护是当前的热点问题。
由于数字作品的拷贝、修改非常容易,而且可以做到与原作完全相同,所以原创者不得不采用一些严重损害作品质量的办法来加上版权标志,而这种明显可见的标志很容易被篡改。
----“数字水印”利用数据隐藏原理使版权标志不可见或不可听,既不损害原作品,又达到了版权保护的目的。
目前,用于版权保护的数字水印技术已经进入了初步实用化阶段,IBM公司在其“数字图书馆”软件中就提供了数字水印功能,Adobe公司也在其著名的Photoshop软件中集成了Digimarc公司的数字水印插件。
然而实事求是地说,目前市场上的数字水印产品在技术上还不成熟,很容易被破坏或破解,距离真正的实用还有很长的路要走。
2.商务交易中的票据防伪----随着高质量图像输入输出设备的发展,特别是精度超过 1200dpi 的彩色喷墨、激光打印机和高精度彩色复印机的出现,使得货币、支票以及其他票据的伪造变得更加容易。
----另一方面,在从传统商务向电子商务转化的过程中,会出现大量过度性的电子文件,如各种纸质票据的扫描图像等。
即使在网络安全技术成熟以后,各种电子票据也还需要一些非密码的认证方式。
数字水印技术可以为各种票据提供不可见的认证标志,从而大大增加了伪造的难度。
3.证件真伪鉴别----信息隐藏技术可以应用的范围很广,作为证件来讲,每个人需要不只一个证件,证明个人身份的有:身份证、护照、驾驶证、出入证等;证明某种能力的有:各种学历证书、资格证书等。
国内目前在证件防伪领域面临巨大的商机,由于缺少有效的措施,使得“造假”、“买假”、“用假”成风,已经严重地干扰了正常的经济秩序,对国家的形像也有不良影响。
通过水印技术可以确认该证件的真伪,使得该证件无法仿制和复制。
4.声像数据的隐藏标识和篡改提示----数据的标识信息往往比数据本身更具有保密价值,如遥感图像的拍摄日期、经/纬度等。
基于Matlab的数字水印设计基于DCT域的水印实现课程设计
要摘数字水印(Digital Watermark)技术是指用信号处理地方法在数字化地多媒体数据中嵌入隐蔽地标记,这种标记通常是不可见地,只有通过专用地检测器或阅读器才能提取.数字水印是信息隐藏技术地一个重要研究方向.随着数字水印技术地发展,数字水印地应用领域也得到了扩展,数字. 水印地基本应用领域是版权保护、隐藏标识、认证和安全不可见通信当数字水印应用于版权保护时,潜在地应用市场在于电子商务、在线或离线地分发多媒体内容以及大规模地广播服务.数字水印用于隐藏标识时,可在医学、制图、数字成像、数字图像监控、多媒体索引和基于内容地检索等领域得到应用.数字水印地认证方面主要ID卡、信用卡、ATM卡等上面数字水印地安全不可见通信将在国防和情报部门得到广泛地应用.本文主要是根据所学地数字图象处理知识,在MATLAB环境下,通过系统编程地方式,建立并实现基于DCT域地数字水印加密系统.该系统主要包含数字水印地嵌入与提取,仿真结果表明,数字水印算法具有有效性、可靠性、抗攻击性、鲁棒性和不可见性,能够为数字媒体信息在防伪、防篡改、认证、保障数据安全和完整性等方面提供有效地技术保障.DCTTLAB;关键词:数字水印;MA录目1 课程设计目地 (1)2 课程设计要求 (2)3 数字水印技术基本原理 (3).......................................................................................................... 33.1 数字水印基本框架.......................................................................................................................... 3算法分类 3.2 ................................................................................................................. 43.2.1 DCT 法.............................................................................................................. 4其他方法 3.2.2 ...................................................................................................... 43.3 实际需要考虑地问题.............................................................................................................. 4不可见性 3.3.1 .................................................................................................................. 5 3.3.2 鲁棒性.............................................................................................................. 5 3.3.3 水印容量3.3.4 安全性 (5)4 基于DCT变换仿真............................................................................................................................................................................................................................ 6 4.1 算法原理.............................................................................................................. 6 4.1.1 准备工作.................................................................................................. 78*8变换块4.1.2 选取.......................................................................................................... 7边界自适应 4.1.3 ................................................................................................. 74.1.4 DCT变换与嵌入.............................................................................................................. 8 4.1.5 恢复空域.................................................................................................................. 8嵌入算法扩展4.2 ......................................................................... 8彩色图像三个矩阵地划分4.2.1 RGB...................................................................................................... 8 4.2.2 八色彩色水印...................................................................................................................... 9水印地提取 4.3 .......................................................................................................................... 9 仿真程序4.45 结果分析..................................................................................................................14结束语..........................................................................................................................16参考文献......................................................................................................................17课程设计目地1数字水印技术是用信号处理地方法在数字化地多媒体数据中嵌入隐蔽地标记,这种标记通常是不可见地,只有通过专用地检测器或阅读器才能提取.数字水印是信息隐藏技术地一个重要研究方向.在数字水印技术中,水印地数据量和鲁棒性构成了一对基本矛盾.从主观上讲,理想地水印算法应该既能隐藏大量数据,又可以抗各种信道噪声和信号变形.然而在实际中,这两个指标往往不能同时实现,不过这并不会影响数字水印技术地应用,因为实际应用一般只偏重其中地一个方面.如果是为了隐蔽通信,数据量显然是最重要地,由于通信方式极为隐蔽,遭遇敌方篡改攻击地可能性很小,因而对鲁棒性要求不高.但对保证数据安全来说,情况恰恰相反,各种保密地数据随时面临着被盗取和篡改地危险,所以鲁棒性是十分重要地,此时,隐藏数据量地要求居于次要地位.数字水印技术是通过一定地算法将一些标志性信息直接嵌到多媒体内容当中,但不影响原内容地价值和使用,并且不能被人地知觉系统觉察或注意到.水印信息可以是作者地序列号、公司标志、有特殊意义地文本等,可用来识别文件、图像或音乐制品地来源、版本、原作者、拥有者、发行人、合法使用人对数字产品地拥有权.与加密技术不同,数字水印技术并不能阻止盗版活动地发生,但它可以判别对象是否受到保护,监视被保护数据地传播、真伪鉴别和非法拷贝、解决版权纠纷并为法庭提供证据.总地来说,数字水印可以携带有版权保护信息和认证信息,保护数字产品地合法拷贝和传播.课程设计要求2利用所学地数字图像处理技术,建立并实现基于DCT地数字水印加密系统,利用MATLAB软件系统来实现水印地嵌入和提取,并对算法地不可见性、鲁棒性进行测试.具体要求:TLAB程序设计方法;(1)熟悉和掌握MA TLAB图像处理工具箱;2)学习和熟悉MA (工具箱对图像进行处理和分析;)学会运用MA TLAB(3格式进行打开、保存、另存、退出等功能操作;)能对图像jpg(4软件对图像进行水印地嵌入和提取;)利用所学数字图像处理技术知识、MATLAB(5(6)在程序开发时,清楚主要实现函数目地和作用,需要在程序书写时做适当注释说明,理解每一句函数地具体意义和使用范围;.)每个程序都必须做到功能仿真成功,运行结果以图片地形式粘贴到报告中(7数字水印技术基本原理3数字水印基本框架3.1一个数字水印系统一般包括三个基本方面:水印地生成、水印地嵌入和水印地提取或检测.数字水印地嵌入和提取地一般过程基本框架如图3.1,图3.2所示.水印生成算法(G)数字水原始载体数(J)水印嵌入算私公(K)图3.1 水印嵌入地一般过程基本框架数字水(W)原始数据水印检测算法估计水印(W)/相似度检测) (I待检测数据W私钥/公钥(K)图3.2 水印检测地一般过程基本框架算法分类3.2.根据水印实现方法不同,数字水印可分为空(时)域数字水印和频域数字水印空域数字水印是直接在信号空间上叠加水印信号,而频域法加入数字水印地原理是首先将原始信号(语音一维信号、图像二维信号)变换到频域,常用地变换一般有DWT、DCT、DFT、WP和分形.然后,对加入了水印信息地信号进行频域反变换(IDWT、IDCT、DFT、WP),得到含有水印信息地信号.频域法检测水印地原理是将原始信号与待检测信号同时进行变换域变换,比较两者地区别,进行嵌入水印地逆运算,得出水印信息.如果是可读地水印,那么就此结束,如果是不可读水印,如高斯噪声,就将得出地水印与已知水印作比较,由相关性判断,待检测信号含不含水印,故水印地检测有两个结束点.频域法有以下优点:嵌入地水印信号能量可以分布到空域地所有像素上,有利于保证水印地不可见性;视觉系统(HVS)地某些特性(如频率地掩蔽特性)可以更方便地结合到水印编码过程中;频域法可与国际数据压缩标准兼容,从而实现在压缩域(compressed domain)内地水印编码.法3.2.1 DCT.对原始信号做DCT地算法:Cox和Piva等人提出地DCT技术地经典之作.Cox利用随机数发生器产生标准正态序列作为水印信息对图像进行整体DCT变换后,选取除去DC系数之外部分较低频率系数叠加水印信息。
基于Matlab的数字水印技术在版权保护中的应用研究
基于Matlab的数字水印技术在版权保护中的应用研究数字水印技术是一种将信息嵌入到数字媒体中的技术,以实现版权保护、身份认证、内容完整性验证等功能。
在当今信息爆炸的时代,数字媒体的传播和复制变得异常容易,这也给版权保护带来了极大的挑战。
数字水印技术通过在数字媒体中隐藏特定信息的方式,可以有效地解决这一问题。
而Matlab作为一种强大的科学计算软件,在数字水印领域有着广泛的应用。
本文将探讨基于Matlab的数字水印技术在版权保护中的应用研究。
数字水印技术概述数字水印技术是一种将特定信息嵌入到数字媒体中的技术,使得这些信息对于普通用户来说是不可见的。
数字水印可以分为空域水印和频域水印两种类型。
空域水印是将信息直接嵌入到原始数据中,而频域水印则是通过对原始数据进行变换,将信息嵌入到变换域中。
数字水印技术具有不可见性、鲁棒性、安全性等特点,可以在不影响原始数据质量的情况下实现信息隐藏和提取。
Matlab在数字水印中的应用Matlab作为一种功能强大的科学计算软件,提供了丰富的工具箱和函数,可以方便地实现各种数字水印算法。
在数字水印领域,Matlab常用于图像、音频和视频等多媒体数据的处理和分析。
通过Matlab提供的图像处理工具箱、信号处理工具箱等,可以快速实现数字水印算法的设计、仿真和评估。
基于Matlab的数字水印算法空域水印算法空域水印算法是将信息直接嵌入到原始数据中,常见的算法包括LSB替换、扩频水印等。
在Matlab中,可以通过对图像进行像素级操作实现LSB替换算法,也可以利用乘法运算实现扩频水印算法。
这些算法在版权保护中有着广泛的应用。
频域水印算法频域水印算法是通过对原始数据进行变换,将信息嵌入到变换域中。
常见的频域水印算法包括DCT变换、DWT变换等。
在Matlab中,可以利用信号处理工具箱提供的函数实现这些变换,并将信息嵌入到相应的频域系数中。
这些算法通常具有更好的鲁棒性和安全性。
数字水印在版权保护中的应用数字水印技术在版权保护领域有着广泛的应用。
基于Matlab的数字水印设计基于空域的水印实现
摘要数字水印(Digital Watermarking)技术是我们生活中经常见到的信息隐藏技术。
它将一些标识信息(即数字水印)直接嵌入数字载体中,但不影响原载体的使用价值,也不容易被人的知觉系统觉察或注意到。
空间数字水印是信息隐藏技术的一个重要研究方向,另一类是频率数字水印。
空间数字水印采用最低有效位(LSB)算法,通过修改表示数字图像的颜色或颜色分量的位平面,调整数字图像中感知不重要的像素来表达水印的信息,以达到嵌入水印的目的。
本实验是基于matlab的数字水印设计——基于空域的水印实现。
关键词:信息隐藏技术;空间数字水印; LSB算法;matlab目录1 设计任务与目的 (1)2 MATLAB的简介及应用 (1)2.1 MATLAB简介 (1)2.2 MATLAB应用 (1)3 数字水印技术 (2)3.1 数字水印技术的发展 (2)3.2 水印分类 (2)3.3 数字水印的特点 (3)3.4 数字水印技术的基本原理 (4)4 基于LSB的数字水印算法 (5)4.1 LSB算法原理 (5)4.2 LSB算法的实现 (6)4.2.1 水印嵌入算法 (7)4.2.2 水印提取算法 (9)5 MATLAB软件仿真 (11)5.1 仿真结果 (11)5.1.1 水印嵌入仿真 (11)5.1.2 水印提取仿真 (12)5.2 仿真分析 (13)结论 (14)参考文献 (15)基于Matlab的数字水印设计——基于空域的水印实现1 设计任务与目的(1)通过课程设计把自己在大学中所学的知识应用到实践当中。
(2)在课程设计的过程中掌握程序编译及软件设计的基本方法。
(3)深入了解利用Matlab设计基于Matlab的数字水印设计——基于空域的水印实现。
(4)提高自己对于新知识的学习能力及进行实际操作的能力。
(5)锻炼自己通过网络及各种资料解决实际问题的能力。
2 MATLAB的简介及应用2.1 MATLAB简介MATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
基于数字水印的安全图像认证算法的Matlab实现
些 被 更 改 区域 的 图 像 尽 可 能地 恢 复 出来 。
基 于 参 数 化 整 数 小 波 变换 的基 本 思路
果 准 确 , 针 对 图 像 却 存 在 效率 不 高 、 能 但 不 指 出 图像 篡 改 区 域 、 全 性 不 高 的弊 端 。 安 数 字水印则弥补 数字签名技 术的这些 不足 ,
此 实现 的 特 点 , 过 为 了保 证 水 印 的 不 可 见 证 了水 印 的 安 全 性 。 外 采 用 基 于 提 升 格 不
1 数字水 印概述
数 字 水 印 依 据 应 用 可 分 为 鲁 棒 水 印 和 脆 弱 水 印 。 棒水 印或 称 稳 健 水 印 , 是指 鲁 它 移 、 转 等 ) 攻 击 下 仍 然 可 被 检 测 出来 , 旋 等
域 法 。 域 法 是 将 水 印 信 息 直 接 嵌 入 到 图 空
同 的 小 波 基 对 图像 进 行 变 换 , 要 确 保 参 只 印 的 嵌 入 算 法 , 难 以 穷 取 出 正 确 的 嵌 入 也 参数 , 而 无 法 实 施 有效 的伪 认证 攻 击 , 从 保
攻 脆 弱 水 印 的 算 法 可 分 为 空 域 法 和 变 换 数 的 取 值 空 间 足 够 大 , 击 者 即 使 知 道 水 像 的 像 素 中 , 法 具 有 嵌 入 速 度 快 及 容 易 该
基于Matlab的图像数字水印技术
基于Matlab的图像数字水印技术摘要:信息技术和计算机网络的迅速发展,使得包括图像在内的数字媒体信息的交流达到了前所未有的深度和广度,与此同时,也使得在网上传播的图像版权保护和服务认证面临着日益严峻的挑战。
做为信息隐藏技术在计算机领域的一项重要应用,数字水印具有双重安全性,即水印的添加与否具有不可知性以及水印的提取受秘钥的保护,因而非常适用于信息安全问题,为保护多媒体信息的版权及信息的合法使用提供了一种新的解决思路。
关键字:数字图像水印技术 Matlab正文:1.图像数字水印技术的概念与特点数字水印可以看作是插入到数字媒体中的数字信号或模板。
水印技术把媒体从一种形式转换为另一种形式,但是水印技术基本上没有改变媒体,确保媒体可以认知,一旦解密后,密码术对媒体没有任何保护,但水印可以始终保存在媒体中。
把与媒体、作者、版权和使用许可的有关信息作为水印嵌入到媒体中,需要时从媒体中检测或提取出这些信息,用于证明原创作者对作品的所有权的证据。
水印与宿主数据紧密结合并隐藏其中,成为宿主数据不可分离的组成部分。
1.1基本原理图像数字水印技术是指用信号处理的方法在图像数据中嵌入隐含标记,水印分为可感知和不易感知两种。
(1)可感知水印。
这是一种可以看见的水印,就像插入或覆盖在图像上的标识。
它与可视纸上的水印相似,这类水印一般选用较淡或半透明图案。
它既可以证明作品的归属,又不妨碍对作品的欣赏,主要应用于标识那些可在图像数据库或Internet上得到的图像预览,防止这些图像被作为商业用途。
(2)不易感知水印。
这是一种应用更加广泛的水印,主要用来鉴别产品的真伪及产权保护。
人们在感觉上的冗余是这种水印存在的前提。
与可视水印相反,它加在图像当中从表面上是不易察觉的。
由于数字产品都是为了满足感官需求,这就要求它的水印不可破坏其欣赏价值与使用价值,要求水印不引人注目。
虽然不易感知的数字水印不能阻止合法产品被非法复制,但是当发生版权纠纷时,所有者可以从中提取出标记,从而证明物品为某人所有。
小波变换的数字水印算法及其matlab实现
小波变换的数字水印算法及其matlab实现1. 概述数字水印技术是信息安全领域的重要研究方向之一,在数字水印技术中,小波变换被广泛应用于数字图像的隐写和水印嵌入。
小波变换是一种时域和频域综合分析的数学工具,它具有多分辨率分析的特点,因此适用于数字水印的隐藏和提取。
2. 小波变换的数字水印算法小波变换的数字水印算法包括水印嵌入和水印提取两个部分。
在水印嵌入部分,首先将原始图像进行小波变换,然后将水印信息嵌入到小波系数中,最后进行逆小波变换得到带有水印的图像。
在水印提取部分,首先对带有水印的图像进行小波变换,然后提取小波系数中的水印信息,最后还原出原始的水印信息。
3. 小波变换的数字水印算法的matlab实现假设我们要对一幅图像进行数字水印嵌入和提取,我们可以使用matlab工具进行实现。
我们可以利用matlab中的小波变换函数对图像进行小波变换,得到小波系数。
我们可以将水印信息以一定的规则嵌入到小波系数中,得到带有水印的小波系数。
利用matlab中的逆小波变换函数将带有水印的小波系数还原成具有水印的图像。
在水印提取部分,我们同样可以利用matlab中的小波变换函数对带有水印的图像进行小波变换,得到小波系数,然后提取出小波系数中的水印信息,最后还原出原始的水印信息。
4. 结论小波变换的数字水印算法是一种具有较高安全性和鲁棒性的数字水印算法,它广泛应用于数字图像的隐写和水印嵌入中。
利用matlab工具实现小波变换的数字水印算法不仅可以加快开发的速度,还可以便于算法的验证和分析。
希望本文可以对小波变换的数字水印算法及其matlab实现有所帮助。
5. 参考文献[1] Cox I J, Miller M L, Bloom J A, et al. Digital Watermarking: Princi-ples Practices. Morgan Kaufmann,2001.[2] 刘昆, 李煜,王裴,等.一种新的基于小波变换的数字图像不可见水印算法[J].计算机应用与软件,2005,22(6):42-44.数字水印技术是一种在数字媒体中隐藏信息的技术,旨在保护作品的版权、完整性、认证及追踪,同时又不会对原始媒体造成太大的修改,因此在当前的数字化信息传输和存储领域具有广泛的应用。
基于MATLAB的数字图像水印算法研究与应用
基于MATLAB的数字图像水印算法研究与应用数字图像水印技术是一种信息隐藏技术,通过在数字图像中嵌入特定的信息,实现对图像的认证、版权保护、身份验证等功能。
在当今信息爆炸的时代,数字图像水印技术越来越受到人们的关注和重视。
本文将围绕基于MATLAB的数字图像水印算法展开研究与应用探讨。
一、数字图像水印技术概述数字图像水印技术是一种将特定信息嵌入到数字图像中并能够提取出来的技术。
通过在图像中添加水印信息,可以实现对图像的认证、完整性验证、版权保护等功能。
数字图像水印技术主要包括空域水印和频域水印两种类型,其中频域水印技术又包括离散余弦变换(DCT)域水印和小波变换域水印等。
二、MATLAB在数字图像处理中的应用MATLAB是一种强大的科学计算软件,广泛应用于数字图像处理领域。
其丰富的工具箱和便捷的编程环境使得MATLAB成为研究者和工程师首选的工具之一。
在数字图像处理中,MATLAB提供了丰富的函数和工具,可以实现图像的读取、显示、处理、分析等操作,为数字图像水印算法的研究与实现提供了便利。
三、数字图像水印算法原理1. 空域水印算法空域水印算法是将水印信息直接嵌入到原始图像的像素值中。
常见的空域水印算法包括LSB替换算法、LSB匹配算法等。
LSB替换算法是将水印信息嵌入到原始图像的最低有效位中,以保证对原始图像影响最小;LSB匹配算法则是通过调整像素值使得其最低有效位与水印信息相匹配。
2. 频域水印算法频域水印算法是将水印信息嵌入到原始图像的频域表示中,常见的频域水印算法包括DCT域水印和小波变换域水印。
DCT域水印是将水印信息嵌入到原始图像的DCT系数中,利用DCT变换的性质实现对原始图像的保护;小波变换域水印则是将水印信息嵌入到原始图像的小波系数中,具有更好的鲁棒性和安全性。
四、基于MATLAB的数字图像水印算法实现在MATLAB环境下,可以通过编写相应的代码实现数字图像水印算法。
首先需要读取原始图像和水印信息,然后根据所选的算法进行水印嵌入和提取操作。
matlab 基于奇异值分解的数字水印算法
基于奇异值分解(Singular Value Decomposition,SVD)的数字水印算法是一种常用的信息隐藏技术,它通过在原始载体数据(如图像、音频或视频)中嵌入秘密信息(即水印)来实现数据的版权保护和完整性验证。
SVD 是一种强大的矩阵分解技术,可以用于提取和修改图像的关键特征,从而实现水印的嵌入和提取。
以下是一个基于SVD 的简单数字水印算法的基本步骤,以及如何在MATLAB 中实现它:步骤1:选择载体图像和水印信息•载体图像:选择一张用于嵌入水印的图像。
•水印信息:可以是文本、二值图像或灰度图像等。
步骤2:对载体图像进行奇异值分解•使用MATLAB 的svd函数对载体图像的某个重要部分(如DCT 或小波变换的系数矩阵)进行奇异值分解。
步骤3:嵌入水印信息•修改分解得到的奇异值矩阵中的某些值,以嵌入水印信息。
通常,可以选择修改较小的奇异值,以减少对原始图像视觉质量的影响。
步骤4:重构图像•使用修改后的奇异值矩阵和原始的左右奇异向量矩阵重构图像。
步骤5:提取水印信息•当需要验证图像版权或提取水印时,再次对嵌入水印后的图像进行奇异值分解,并从分解得到的奇异值矩阵中提取出水印信息。
MATLAB 示例代码以下是一个简化的MATLAB 示例代码,展示了如何在图像中嵌入和提取基于SVD 的水印:matlab% 读取载体图像和水印图像carrier_image = imread('carrier.png');watermark_image = imread('watermark.png');% 将图像转换为灰度图像(如果需要)if size(carrier_image, 3) == 3carrier_image = rgb2gray(carrier_image);endif size(watermark_image, 3) == 3watermark_image = rgb2gray(watermark_image);end% 对载体图像进行奇异值分解A = double(carrier_image); % 将图像转换为双精度矩阵[U, S, V] = svd(A); % 进行奇异值分解% 嵌入水印信息(简化示例)% 假设水印是一个简单的二值矩阵,且其大小远小于载体图像watermark_vector = double(watermark_image(:)); % 将水印图像转换为一维向量% 选择要修改的奇异值的位置(这里简单选择第一个非零奇异值)idx = find(S > 0, 1);S(idx) = S(idx) + sum(watermark_vector); % 修改奇异值以嵌入水印% 重构图像watermarked_image = U * diag(S) * V'; % 使用修改后的奇异值重构图像watermarked_image = uint8(watermarked_image); % 转换回 uint8 格式以显示和保存imshow(watermarked_image); % 显示嵌入水印后的图像% 提取水印信息(简化示例)% 重新进行奇异值分解以提取水印[U_ext, S_ext, V_ext] = svd(double(watermarked_image));% 从修改的奇异值中提取水印信息extracted_watermark_value = S_ext(idx) - S(idx); % 减去原始奇异值以得到水印信息extracted_watermark_vector = round(extracted_watermark_value /length(watermark_vector)); % 将水印值转换回水印向量extracted_watermark_image = reshape(extracted_watermark_vector,size(watermark_image)); % 将水印向量重塑为图像大小imshow(extracted_watermark_image, []); % 显示提取的水印图像请注意,这个示例代码是非常简化的,并且可能不适用于所有情况。
基于MATLAB的数字音频水印技术程序
基于MATLAB的数字音频水印技术****************************水印生成程序**************************** %读取声音文件FILE='D:\audio\in\1.wav';[y,Fs,bits]=wavread(FILE);%绘制出原始声音信号图figure(1);subplot(3,1,1);plot(y);%用db4小波对读入的声音文件进行3级小波分解[c,l]=wavedec(y,3,'db4');%提取3级小波分解的低频系数和高频系数ca3=appcoef(c,l,'db4',3);cd3=detcoef(c,l,3);cd2=detcoef(c,l,2);cd1=detcoef(c,l,1);x=ca3;lx=length(x);subplot(3,1,2);plot(x);s=max(abs(x))*0.2;i=find(abs(x)>s); %插入位置lx=length(x(i));%产生水印信号,sinmark=[0.001:0.001:7.901];mm=[0.01:0.01:79.01];mark=sin(mm);randn('seed',10);mark=randn(1,lx);figure(2);subplot(3,1,1);plot(mark);ss=mark;rr=ss*0.02;%水印信号嵌入x(i)=x(i).*(1+rr');%小波重构,生成加入了水印信号的声音信号c1=[x',cd3',cd2',cd1'];s1=waverec(c1,l,'db4');figure(1);whos('s1');disp('');%把加入了水印信号的声音作为sample2.wav保存file1='sample2.wav';wavwrite(s1,Fs,bits,file1);figure(1);subplot(3,1,3);diff1=s1-y';plot(diff1);****************************水印恢复程序**************************** %读取原始声音信号FILE='s00.wav';[y,Fs,bits]=wavread(FILE);%用db4小波对读入的声音文件进行3级小波分解[c,l]=wavedec(y,3,'db4');%提取3级小波分解的低频系数和高频系数ca3=appcoef(c,l,'db4',3);cd3=detcoef(c,l,3);cd2=detcoef(c,l,2);cd1=detcoef(c,l,1);%读取含有水印的信号FILE1='sample2.wav';[y1,Fs1,bits1]=wavread(FILE1);%用db4小波对读入的含有水印的声音文件进行3级小波分解[c1,l1]=wavedec(y1,3,'db4');%提取3级小波分解的低频系数和高频系数ca31=appcoef(c1,l1,'db4',3);cd31=detcoef(c1,l1,3);cd21=detcoef(c1,l1,2);cd11=detcoef(c1,l1,1);x=ca3;x1=ca31;lx=length(x);lx1=length(x1);s=max(abs(x))*0.2;i=find(abs(x)>s);lx=length(x(i));z(i)=x1(i)-x(i);mark1=z(i)./x(i)';subplot(3,1,2);plot(mark1);diff=mark1-mark;figure(2);subplot(3,1,3);plot(diff);****************************压缩攻击**************************** FILE='sam96.wav';[y7,Fs,bits]=wavread(FILE);[c1,l1]=wavedec(y7,3,'db4');%提取3级小波分解的低频系数和高频系数ca31=appcoef(c1,l1,'db4',3);cd31=detcoef(c1,l1,3);cd21=detcoef(c1,l1,2);cd11=detcoef(c1,l1,1);x=ca3;x1=ca31;lx=length(x);lx1=length(x1);s=max(abs(x))*0.2;i=find(abs(x)>s);lx=length(x(i));z(i)=x1(i)-x(i);mark1=z(i)./x(i)';mark1=mark1/0.02;figure(3);subplot(3,1,1);plot(mark1);% axis([0 8000 -1 1]);FILE='sam128.wav';[y7,Fs,bits]=wavread(FILE);[c1,l1]=wavedec(y7,3,'db4');%提取3级小波分解的低频系数和高频系数ca31=appcoef(c1,l1,'db4',3);cd31=detcoef(c1,l1,3);cd21=detcoef(c1,l1,2);cd11=detcoef(c1,l1,1);x=ca3;x1=ca31;lx=length(x);lx1=length(x1);s=max(abs(x))*0.2;i=find(abs(x)>s);lx=length(x(i));z(i)=x1(i)-x(i);mark1=mark1/0.02;figure(3);subplot(3,1,2);plot(mark1);axis([0 8000 -1 1]);FILE='sam160.wav';[y7,Fs,bits]=wavread(FILE);[c1,l1]=wavedec(y7,3,'db4');%提取3级小波分解的低频系数和高频系数ca31=appcoef(c1,l1,'db4',3);cd31=detcoef(c1,l1,3);cd21=detcoef(c1,l1,2);cd11=detcoef(c1,l1,1);x=ca3;x1=ca31;lx=length(x);lx1=length(x1);s=max(abs(x))*0.2;i=find(abs(x)>s);lx=length(x(i));z(i)=x1(i)-x(i);mark1=z(i)./x(i)';mark1=mark1/0.02;figure(3);subplot(3,1,3);plot(mark1);axis([0 8000 -1 1]); ****************************低通滤波**************************** [b,a]=butter(10,10000/Fs);y2=y1;y5=filtfilt(b,a,y2);figure(4);freqz(b,a,128,10000)figure(5);subplot(3,1,1)plot(y5);subplot(3,1,2)plot(y);subplot(3,1,3)plot(y-y5);file1='sample3.wav';wavwrite(y5,Fs,bits,file1);FILE1='sample3.wav';[y5,Fs1,bits1]=wavread(FILE1);%用db4小波对读入的含有水印的声音文件进行3级小波分解[c1,l1]=wavedec(y5,3,'db4');%提取3级小波分解的低频系数和高频系数ca31=appcoef(c1,l1,'db4',3);cd31=detcoef(c1,l1,3);cd21=detcoef(c1,l1,2);cd11=detcoef(c1,l1,1);x=ca3;x1=ca31;lx=length(x);lx1=length(x1);s=max(abs(x))*0.2;i=find(abs(x)>s);lx=length(x(i));z(i)=x1(i)-x(i);mark1=z(i)./x(i)';mark1=mark1/0.02;figure(4);subplot(2,1,1);plot(mark1);**********************产生随机信号作为噪声信号*************************** noise0=randn(size(y));y3=y1;y3=y3+noise0*200;%用db4小波对读入的含有水印的声音文件进行3级小波分解[c3,l3]=wavedec(y1,3,'db4');%提取3级小波分解的低频系数和高频系数ca32=appcoef(c3,l3,'db4',3);cd32=detcoef(c3,l3,3);cd22=detcoef(c3,l3,2);cd12=detcoef(c3,l3,1);x=ca3;x1=ca32;lx=length(x);lx1=length(x1);s=max(abs(x))*0.2;i=find(abs(x)>s);lx=length(x(i));z(i)=x1(i)-x(i);mark3=z(i)./x(i)';mark3=mark3/0.02;figure(4);subplot(2,1,2);plot(mark3);nbsp;****************************重采样**************************** fs1=Fs*0.5;wavwrite(y1,fs1,bits,'ss.wav');[y6,fs2,bits]=wavread('ss.wav');%用db4小波对读入的含有水印的声音文件进行3级小波分解[c4,l4]=wavedec(y6',3,'db4');%提取3级小波分解的低频系数和高频系数ca33=appcoef(c4,l4,'db4',3);cd33=detcoef(c4,l4,3);cd23=detcoef(c4,l4,2);cd13=detcoef(c4,l4,1);x=ca3;x1=ca33;lx=length(x);lx1=length(x1);s=max(abs(x))*0.2;i=find(abs(x)>s);lx=length(x(i));z(i)=x1(i)-x(i)';mark4=z(i)./x(i)';mark4=mark4/0.02;figure(5);subplot(2,1,1);plot(mark4);axis([0 8000 -1 1]);fs1=Fs*0.25;wavwrite(y1,fs1,bits,'ss.wav');[y6,fs2,bits]=wavread('ss.wav');%用db4小波对读入的含有水印的声音文件进行3级小波分解[c4,l4]=wavedec(y6',3,'db4');%提取3级小波分解的低频系数和高频系数ca33=appcoef(c4,l4,'db4',3);cd33=detcoef(c4,l4,3);cd23=detcoef(c4,l4,2);cd13=detcoef(c4,l4,1);x=ca3;x1=ca33;lx=length(x);lx1=length(x1);s=max(abs(x))*0.2;i=find(abs(x)>s);lx=length(x(i));z(i)=x1(i)-x(i)';mark4=z(i)./x(i)';mark4=mark4/0.02;subplot(2,1,2);plot(mark4);axis([0 8000 -1 1]);****************************信号裁剪**************************** llx=length(y1);llx=fix(llx*0.75);i=[1:llx];y4(i)=y1(i);file1='sample4.wav';wavwrite(y4,Fs,bits,file1);i=[llx+1:length(y1)];y4(i)=y(i);%用db4小波对读入的含有水印的声音文件进行3级小波分解[c4,l4]=wavedec(y4',3,'db4');%提取3级小波分解的低频系数和高频系数ca33=appcoef(c4,l4,'db4',3);cd33=detcoef(c4,l4,3);cd23=detcoef(c4,l4,2);cd13=detcoef(c4,l4,1);x=ca3;x1=ca33;lx=length(x);lx1=length(x1);s=max(abs(x))*0.2;i=find(abs(x)>s);lx=length(x(i));z(i)=x1(i)-x(i)';mark4=z(i)./x(i)';mark4=mark4/0.02;figure(6);subplot(2,1,1);plot(mark4);。
基于Matlab的数字水印设计——基于DCT域的水印实现课程设计
摘要数字水印(Digital Watermark)技术是指用信号处理地方法在数字化地多媒体数据中嵌入隐蔽地标记,这种标记通常是不可见地,只有通过专用地检测器或阅读器才能提取.数字水印是信息隐藏技术地一个重要研究方向.随着数字水印技术地发展,数字水印地应用领域也得到了扩展,数字水印地基本应用领域是版权保护、隐藏标识、认证和安全不可见通信.当数字水印应用于版权保护时,潜在地应用市场在于电子商务、在线或离线地分发多媒体内容以及大规模地广播服务.数字水印用于隐藏标识时,可在医学、制图、数字成像、数字图像监控、多媒体索引和基于内容地检索等领域得到应用.数字水印地认证方面主要ID卡、信用卡、A TM卡等上面数字水印地安全不可见通信将在国防和情报部门得到广泛地应用.本文主要是根据所学地数字图象处理知识,在MA TLAB环境下,通过系统编程地方式,建立并实现基于DCT域地数字水印加密系统.该系统主要包含数字水印地嵌入与提取,仿真结果表明,数字水印算法具有有效性、可靠性、抗攻击性、鲁棒性和不可见性,能够为数字媒体信息在防伪、防篡改、认证、保障数据安全和完整性等方面提供有效地技术保障.关键词:数字水印;MA TLAB;DCT目录1 课程设计目地 (1)2 课程设计要求 (2)3 数字水印技术基本原理 (3)3.1 数字水印基本框架 (3)3.2 算法分类 (3)3.2.1 DCT法 (4)3.2.2 其他方法 (4)3.3 实际需要考虑地问题 (4)3.3.1 不可见性 (4)3.3.2 鲁棒性 (5)3.3.3 水印容量 (5)3.3.4 安全性 (5)4 基于DCT变换仿真 (6)4.1 算法原理 (6)4.1.1 准备工作 (6)4.1.2 选取8*8变换块 (7)4.1.3 边界自适应 (7)4.1.4 DCT变换与嵌入 (7)4.1.5 恢复空域 (8)4.2 嵌入算法扩展 (8)4.2.1 RGB彩色图像三个矩阵地划分 (8)4.2.2 八色彩色水印 (8)4.3 水印地提取 (9)4.4 仿真程序 (9)5 结果分析 (14)结束语 (16)参考文献 (17)1 课程设计目地数字水印技术是用信号处理地方法在数字化地多媒体数据中嵌入隐蔽地标记,这种标记通常是不可见地,只有通过专用地检测器或阅读器才能提取.数字水印是信息隐藏技术地一个重要研究方向.在数字水印技术中,水印地数据量和鲁棒性构成了一对基本矛盾.从主观上讲,理想地水印算法应该既能隐藏大量数据,又可以抗各种信道噪声和信号变形.然而在实际中,这两个指标往往不能同时实现,不过这并不会影响数字水印技术地应用,因为实际应用一般只偏重其中地一个方面.如果是为了隐蔽通信,数据量显然是最重要地,由于通信方式极为隐蔽,遭遇敌方篡改攻击地可能性很小,因而对鲁棒性要求不高.但对保证数据安全来说,情况恰恰相反,各种保密地数据随时面临着被盗取和篡改地危险,所以鲁棒性是十分重要地,此时,隐藏数据量地要求居于次要地位.数字水印技术是通过一定地算法将一些标志性信息直接嵌到多媒体内容当中,但不影响原内容地价值和使用,并且不能被人地知觉系统觉察或注意到.水印信息可以是作者地序列号、公司标志、有特殊意义地文本等,可用来识别文件、图像或音乐制品地来源、版本、原作者、拥有者、发行人、合法使用人对数字产品地拥有权.与加密技术不同,数字水印技术并不能阻止盗版活动地发生,但它可以判别对象是否受到保护,监视被保护数据地传播、真伪鉴别和非法拷贝、解决版权纠纷并为法庭提供证据.总地来说,数字水印可以携带有版权保护信息和认证信息,保护数字产品地合法拷贝和传播.2 课程设计要求利用所学地数字图像处理技术,建立并实现基于DCT地数字水印加密系统,利用MATLAB软件系统来实现水印地嵌入和提取,并对算法地不可见性、鲁棒性进行测试.具体要求:(1)熟悉和掌握MA TLAB程序设计方法;(2)学习和熟悉MA TLAB图像处理工具箱;(3)学会运用MA TLAB工具箱对图像进行处理和分析;(4)能对图像jpg格式进行打开、保存、另存、退出等功能操作;(5)利用所学数字图像处理技术知识、MATLAB软件对图像进行水印地嵌入和提取;(6)在程序开发时,清楚主要实现函数目地和作用,需要在程序书写时做适当注释说明,理解每一句函数地具体意义和使用范围;(7)每个程序都必须做到功能仿真成功,运行结果以图片地形式粘贴到报告中.3 数字水印技术基本原理3.1 数字水印基本框架一个数字水印系统一般包括三个基本方面:水印地生成、水印地嵌入和水印地提取或检测.数字水印地嵌入和提取地一般过程基本框架如图3.1,图3.2所示.图3.1 水印嵌入地一般过程基本框架图3.2 水印检测地一般过程基本框架3.2 算法分类根据水印实现方法不同,数字水印可分为空(时)域数字水印和频域数字水印.空域数字水印是直接在信号空间上叠加水印信号,而频域法加入数字水印地原理是首先将原始信号(语音一维信号、图像二维信号)变换到频域,常用地变换一般有DWT、DCT、DFT、WP和分形.然后,对加入了水印信息地信号进行频域反变换(IDWT、IDCT、DFT、WP),得到含有水印信息地信号.频域法检测水印地原理是将原始信号与待检测信号同时进行变换域变换,比较两者地区别,进行嵌入水印地逆运算,得出水印信息.如果是可读地水印,那么就此结束,如果是不可读水印,如高斯噪声,就将得出地水印与已知水印作比较,由相关性判断,待检测信号含不含水印,故水印地检测有两个结束点.频域法有以下优点:嵌入地水印信号能量可以分布到空域地所有像素上,有利于保证水印地不可见性;视觉系统(HVS)地某些特性(如频率地掩蔽特性)可以更方便地结合到水印编码过程中;频域法可与国际数据压缩标准兼容,从而实现在压缩域(compressed domain)内地水印编码.3.2.1 DCT法对原始信号做DCT地算法:Cox和Piva等人提出地DCT技术地经典之作.Cox利用随机数发生器产生标准正态序列作为水印信息对图像进行整体DCT变换后,选取除去DC系数之外部分较低频率系数叠加水印信息。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字水印作为一门新的学科, 自 1993 年 Tirkel 等人正式提出到现在十几年里, 国内外对数字水印的研究都引起了极大的关注, 从最初的版权保护, 已扩展到多媒体技术, 广播监听, in-ternet 等多个领域。
数字水印是永久镶嵌在其他数据( 主要指宿主数据) 中具有可鉴别性的数字信号或数字模式, 其存在不能影响宿主数据的正常使用。
为了使数字水印技术达到一定的设计要求, 当前水印数据一般应具备不可感知性(imperceptible) 、鲁棒性(Robust) 、可证明性、自恢复性和安全保密性等特点。
在数字水印技术中, 水印的数据量和鲁棒性构成了一对基本矛盾。
理想的水印算法应该既能隐藏大量数据, 又可以抗各种信道噪声和信号变形。
然而在实际中, 这两个指标往往不能同时实现, 实际应用往往只偏重其中的一个方面。
如果是为了隐蔽通信, 数据量显然是最重要的, 由于通信方式极为隐蔽, 遭遇敌方篡改攻击的可能性很小, 因而对鲁棒性要求较为不高。
但对保证数据安全来说, 情况恰恰相反, 各种保密的数据随时面临着被盗取和篡改的危险, 对鲁棒性的要求很高, 而对隐藏数据量的要求则居于次要地位。
典型的数字水印系统至少包含两个组成部分- - 水印嵌入单元和水印检测与提取单元。
将水印信息进行预处理后加入到载体中, 称为嵌入。
从水印化数据中提取出水印信息或者检测水印信息的存在性称为水印的提取和检测。
数字水印算法主要是指水印的嵌入算法, 而提取算法往往被看成是嵌入算法的逆变换。
当前典型的嵌入算法主要被分为空间域水印算法和变换域水印算法。
DCT 变换域算法是数字水印算法的典型代表, 也是数字水印中较为常用的一种稳健的算法。
其算法思想是选择二值化灰度图像作为水印信息, 根据水印图像的二值性来选择不同的嵌入系数, 并将载体图像 ( 原始图像) 进行 8×8 的分块, 再将灰度载体图像( 原始图像) 进行 DCT变换。
然后, 将数字水印信息的灰度值直接植入到载体灰度图像的 DCT 变换域中, 实现水印的嵌入。
而后, 将嵌入了水印信息灰度图像进行 IDCT( 逆离散的余弦变换) 变换, 得到含有了嵌入水印信息的图像, 嵌入过程完毕。
水印的提取、检测过程为嵌入过程的逆过程, 其方法和嵌入方法有所雷同不再进行介绍。
下面以 MATLAB 为工具, 给出一个在频域嵌入和提取黑白二值水印图像的实现过程。
(1) 水印图像的预处理: 将水印信息图像进行灰度处理, 然后再将转换后的图像进行二值转换。
而这些都是为了提高水印信息的安全性对图像所做的处理。
(2) 读取原始公开图像(大小为 256×256) 和黑白水印图像(大小为 32×32, 模式为灰度) 到二维数组 I 和 J。
(3) 将原始公开图像I 分割为互不覆盖的图像块, 每块大小为 8×8, 共分为 32×32 块。
然后对分割后的每个小块Block- dct(x,y) 进行 DCT 变换, 得到变换后的小块 Block-dct(x, y)。
(4) 取黑白水印图像中的一个元素 J(p, q) , 通过嵌入算法嵌入到原始公开图像块的中频系数中。
(5) 对嵌入水印信息后的图像块Block- dct (x, y) 进行逆DCT 变换, 得到图像块 Block(x′, y′)。
(6) 将逆 DCT 变换后的图像块 Block(x′, y′) 合并, 得到了嵌入黑白二值水印后图像。
(7) 对嵌入水印后的图像进行 JPEG 压缩( 一种水印攻击) 。
(8) 从压缩后的图像中提取水印信息。
提取算法为嵌入算法的逆过程。
具体 MATLAB 程序如下:%嵌入水印信息tem=1;for m=1:Nfor n=1:Nx=(m- 1)×K+1;y=(n- 1)×K+1;block_dct=I(x:x+K- 1,y:y+K- 1);block_dct1=dct2(block_dct);if J(m,n)==0a=- 1;elsea=1;endblock_dct2=block_dct1×(1+a×0.01);block_idct=idct2(block_dct2);D(x:x+K- 1,y:y+K- 1)=block_idct;tem=tem+1;endend我们可以看到, 嵌入水印信息后的图像和原始的图像在视觉上几乎看不出什么变化, 只是从亮度上有稍微的增强, 这是嵌入水印信息后原始图像的像素提高的缘故。
这说明该算法的不可见性较好, 满足了数字水印嵌入算法的评价标准。
对嵌入水印后的图像进行攻击以评价其鲁棒性:首先对嵌入水印信息的图像进行国际标准压缩 JPEG 压缩。
这种压缩是一种有损压缩, 对图像产生一定的破坏, 可以将它看作一种攻击手段。
该算法对 JPEG 压缩攻击有一定的鲁棒性。
实验证明,该算法对剪裁有抗攻击性, 也证明了该算法的鲁棒性。
综上实验结果, 可以看出嵌入前后的图像在视觉上没有发生明显的变化, 这说明该算法充分利用了人类视觉系统(HVS)的特性, 图像的不可感知性较好。
也就说明变换域 DCT 水印嵌入算法有较好的稳健性。
提供数据交换服务。
而业务主题是构建业务链的基础。
在所论述的交换平台中, 业务主题和业务链是两个关键的概念。
所谓业务链, 是指来自不同业务系统的内部业务流整合后形成的新的业务流。
如图 2 所示的系统 A 内部业务流 A1- A2-A3 和系统 D 内部业务流 D1- D2 整合后形成的新的业务流 A1-A2- A3- D1- D2, 即是一条业务链。
所谓业务主题, 是不同系统内部业务流组成的业务链的标识, 它与业务链的业务内容密切相关, 规定了需要交换的业务数据的内容及格式, 包括数据结构及数据类型等。
通过确定业务主题, 来自两个不同系统的业务流交换了数据, 构建了新的业务链。
平台为用户提供其能获得的业务主题的索引服务。
对于与用户系统不相关的业务主题, 该用户不可见, 称之为不相关业务主题的屏蔽性, 以确保平台的数据安全。
2、数据交换服务组件数据交换组件是数据交换平台的主要组件, 通过组件为需要数据交换服务的客户提供服务, 以实现平台的功能。
它包括:为用户提供数据上传下载服务; 为新加入的用户注册; 当用户申请数据服务时, 验证用户的合法性及所能为其提供的服务; 当共享数据报错时通知数据源等。
所有这些功能, 都是服务平台以服务的形式提供给提出用户使用的。
平台在为用户提供数据交换服务的同时, 也为采取措施保证数据交换的安全, 比如 XML 数字签名、数据转发后予以丢弃、不相关业务主题屏蔽等。
数据交换组件主要包括四个功能组件: 注册组件、验证组件、数据转发组件、容错组件。
2.1 注册组件注册是用户利用交换平台构建业务链的必经之门。
通过注册, 平台为用户登记其身份资料, 保存构建业务链的相关业务主题及其他信息, 并分配相应的资源空间。
注册组件就是为用户提供注册服务的。
2.2 验证组件当用户需要数据服务平台提供服务时, 必须先向服务平台提出服务请求, 服务平台对用户身份的合法性进行验证, 若通过, 数据交换服务平台则检查该用户所能得到的服务并展示相应的业务主题给用户。
验证组件为合法用户提供相关业务主题的索引服务, 使用户能快速定位所需要的业务主题, 但遵从不相关业务主题屏蔽性的原则。
2.3 数据转发组件数据转发组件是平台的中心逻辑组件。
其设计除保证平台能完成业务链的数据交换外, 还必须考虑数据转发的效率及安全性等。
在经过验证组件的合法性验证后, 平台即可接受用户的数据上传, 并根据用户 ID 及相关业务主题 ID 把数据依队列存放起来。
当该业务主题的业务链的用户下载数据后, 平台即对数据进行减持。
对已转发数据进行减持, 其目的在于:1)为了用户数据安全;2)减少系统负担, 提高系统服务效率;3)回收资源空间, 实现平台轻量化的设想。
2.4 容错组件当用户发现数据出错时, 向数据交换服务平台报错, 由服务平台通知业务链上游提供数据的数据源重新传送出错数据。
数据服务平台会给加入数据交换共享的每个业务系统提供一个唯一的识别 ID, 对其所提供的主题也会加以识别, 在此基础上对每条交换数据加以唯一编号( 流水号) , 因而服务平台系统能据此通知相应的数据源重传出错的数据。
3、结语我们用上述三节论述了一个面向业务流整合的数据交换服务平台。
提出了业务主题、业务链、不相关业务主题屏蔽等概念,通过业务主题整合异构平台的内部业务流以构成业务链。
通过采用用户注册加入平台、XML 数字签名、异构平台系统通过适配器加入平台而无需改动原有业务系统、平台对数据转发后预以减持等技术手段, 我们实现了以上基于开放的、安全的、松耦合的、轻量级的数据交换服务平台的设计。
这种方案, 对于大量需要简单快速、低成本进行业务流整合的异构平台, 具有广泛的应用价值, 同时这种数据交换服务平台也可延伸为商业性的应用平台。
上述的数据交换服务平台的实现, 可采用跨平台的 Java 技术。
数据服务平台向用户提供服务, 可采用 B/S 结构, 服务器端采用 JSP/Servlet 技术, 当用户需要数据服务时, 向服务提出请求, 平台作出应答。
对于业务逻辑, 采用 JavaBean 技术进行封装。
对于各业务系统数据异构问题, 采用XML 文档作为数据交换的统一格式, 解决交换数据的异构问题。