数字水印攻击软件_防盗水印软件
作者:hacker | 分类:渗透破解 | 浏览:113 | 日期:2022年07月14日文章目录:
关于数字水印在网络安全方面的应用
数字水印技术数字水印(Digital Watermarking)技术是将一些标识信息(即数字水印)直接嵌入数字载体(包括多媒体、文档、软件等)当中,但不影响原载体的使用价值,也不容易被人的知觉系统(如视觉或听觉系统)觉察或注意到。通过这些隐藏在载体中的信息,可以达到确认内容创建者、购买者、传送隐秘信息或者判断载体是否被篡改等目的。数字水印是信息隐藏技术的一个重要研究方向。
作为数字水印技术基本上具有下面几个方面的特点:
----安全性:数字水印的信息应是安全的,难以篡改或伪造,同时,应当有较低的误检测率,当原内容发生变化时,数字水印应当发生变化,从而可以检测原始数据的变更;当然数字水印同样对重复添加有有强的抵抗性
----隐蔽性:数字水印应是不可知觉的,而且应不影响被保护数据的正常使用;不会降质;
----鲁棒性:是指在经历多种无意或有意的信号处理过程后,数字水印仍能保持部分完整性并能被准确鉴别。可能的信号处理过程包括信道噪声、滤波、数/模与模/数转换、重采样、剪切、位移、尺度变化以及有损压缩编码等。主要用于版权保护的数字水印易损水印(Fragile Watermarking),主要用于完整性保护,这种水印同样是在内容数据中嵌入不可见的信息。当内容发生改变时,这些水印信息会发生相应的改变,从而可以鉴定原始数据是否被篡改。
----水印容量:是指载体在不发生形变的前提下可嵌入的水印信息量。嵌入的水印信息必须足以表示多媒体内容的创建者或所有者的标志信息,或购买者的序列号,这样有利于解决版权纠纷,保护数字产权合法拥有者的利益。尤其是隐蔽通信领域的特殊性,对水印的容量需求很大。
数字水印的分类
----1.按特性划分
----按水印的特性可以将数字水印分为鲁棒数字水印和易损数字水印两类。鲁棒数字水印主要用于在数字作品中标识著作权信息,利用这种水印技术在多媒体内容的数据中嵌入创建者、所有者的标示信息,或者嵌入购买者的标示(即序列号)。在发生版权纠纷时,创建者或所有者的信息用于标示数据的版权所有者,而序列号用于追踪违反协议而为盗版提供多媒体数据的用户。用于版权保护的数字水印要求有很强的鲁棒性和安全性,除了要求在一般图像处理(如:滤波、加噪声、替换、压缩等)中生存外,还需能抵抗一些恶意攻击。
----易损水印(Fragile Watermarking),与鲁棒水印的要求相反,易损数字水印主要用于完整性保护,这种水印同样是在内容数据中嵌入不可见的信息。当内容发生改变时,这些水印信息会发生相应的改变,从而可以鉴定原始数据是否被篡改。易损水印应对一般图像处理(如:滤波、加噪声、替换、压缩等)有较强的免疫能力(鲁棒性),同时又要求有较强的敏感性,即:既允许一定程度的失真,又要能将失真情况探测出来。必须对信号的改动很敏感,人们根据易损水印的状态就可以判断数据是否被篡改过。
----2.按水印所附载的媒体划分
----按水印所附载的媒体,我们可以将数字水印划分为图像水印、音频水印、视频水印、文本水印以及用于三维网格模型的网格水印等。随着数字技术的发展,会有更多种类的数字媒体出现,同时也会产生相应的水印技术。
----3.按检测过程划分
----按水印的检测过程可以将数字水印划分为明文水印和盲水印。明文水印在检测过程中需要原始数据,而盲水印的检测只需要密钥,不需要原始数据。一般来说,明文水印的鲁棒性比较强,但其应用受到存储成本的限制。目前学术界研究的数字水印大多数是盲水印。
----4.按内容划分
----按数字水印的内容可以将水印划分为有意义水印和无意义水印。有意义水印是指水印本身也是某个数字图像(如商标图像)或数字音频片段的编码;无意义水印则只对应于一个序列号。有意义水印的优势在于,如果由于受到攻击或其他原因致使解码后的水印破损,人们仍然可以通过视觉观察确认是否有水印。但对于无意义水印来说,如果解码后的水印序列有若干码元错误,则只能通过统计决策来确定信号中是否含有水印。
----5.按用途划分
----不同的应用需求造就了不同的水印技术。按水印的用途,我们可以将数字水印划分为票证防伪水印、版权保护水印、篡改提示水印和隐蔽标识水印。
----票证防伪水印是一类比较特殊的水印,主要用于打印票据和电子票据、各种证件的防伪。一般来说,伪币的制造者不可能对票据图像进行过多的修改,所以,诸如尺度变换等信号编辑操作是不用考虑的。但另一方面,人们必须考虑票据破损、图案模糊等情形,而且考虑到快速检测的要求,用于票证防伪的数字水印算法不能太复杂。
----版权标识水印是目前研究最多的一类数字水印。数字作品既是商品又是知识作品,这种双重性决定了版权标识水印主要强调隐蔽性和鲁棒性,而对数据量的要求相对较小。
----篡改提示水印是一种脆弱水印,其目的是标识原文件信号的完整性和真实性。
----隐蔽标识水印的目的是将保密数据的重要标注隐藏起来,限制非法用户对保密数据的使用。
----6.按水印隐藏的位置划分
----按数字水印的隐藏位置,我们可以将其划分为时(空)域数字水印、频域数字水印、时/频域数字水印和时间/尺度域数字水印。
----时(空)域数字水印是直接在信号空间上叠加水印信息,而频域数字水印、时/频域数字水印和时间/尺度域数字水印则分别是在DCT变换域、时/ 频变换域和小波变换域上隐藏水印。
----随着数字水印技术的发展,各种水印算法层出不穷,水印的隐藏位置也不再局限于上述四种。应该说,只要构成一种信号变换,就有可能在其变换空间上隐藏水印。
按水印的特性可以将数字水印分为鲁棒数字水印和脆弱数字水印。鲁棒数字水印主要用于在数字作品中标识著作权信息,它要求嵌入的水印能够经受各种常用的编辑处理;脆弱数字水印主要用于完整性保护,脆弱水印必须对信号的改动很敏感,人们根据脆弱水印的状态就可以判断数据是否被篡改过。 Enterprise Culture--Its Meaning and Implications for Education and Training.
AA Gibb - Journal of European Industrial Training, 1987 - eric.ed.gov
Building an Enterprise Culture in the Public Sector: Reform of the Public Sector in Australia, …
RC Mascarenhas - Public Administration Review, 1993 - JSTOR
Entrepreneurship education within the enterprise culture -
SL Jack, AR Anderson - International Journal of Entrepreneurial Behaviour and …, 1999 - emeraldinsight.com
The Enterprise Culture and the Inner City
N Deakin - 1993
Welfare Dependency, the Enterprise Culture and Self-Employed Survival
R MacDonald - Work Employment Society, 1996 - wes.sagepub.com
Self-Employment and Home Ownership after the Enterprise Culture
R Burrows, J Ford - Work Employment Society, 1998 - wes.sagepub.com 数字水印(或数字水印),是指将特定的信息嵌入数字讯号中,数字讯号可能是音频、图片或是影片等。若要拷贝有数字水印的讯号,所嵌入的信息也会一并被拷贝。数字水印可分为浮现式和隐藏式两种,前者是可被看见的水印(visible watermarking),其所包含的信息可在观看图片或影片时同时被看见。一般来说,浮现式的水印通常包含版权拥有者的名称或标志。右侧的示例图片便包含了浮现式水印。电视台在画面角落所放置的标志,也是浮现式水印的一种。隐藏式的水印是以数字数据的方式加入音频、图片或影片中,但在一般的状况下无法被看见。隐藏式水印的重要应用之一是保护版权,期望能借此避免或阻止数字媒体未经授权的复制和拷贝。隐写术(Steganography)也是数字水印的一种应用,双方可利用隐藏在数字讯号中的信息进行沟通。数字照片中的注释数据能记录照片拍摄的时间、使用的光圈和快门,甚至是相机的厂牌等信息,这也是数字水印的应用之一。某些文件格式可以包含这些称为“metadata”的额外信息。数字水印 scheme 示例 一般常见的数字水印 scheme 定义为:其中 E 定义了嵌入(embedding)功能、D 侦测(detecting)功能、R 恢复(retrieval)功能,M 则是所夹带的消息。此外,嵌入参数 定义了 E 定义嵌入功能使用的参数组, 定义了侦测参数,而 恢复参数。因此,每一个水印 scheme Ω 根据上述的参数不同可能会有不同的结果。[编辑] 性质要求 安全性:水印信息应当难以篡改、难以伪造;隐蔽性:水印对感官不可知觉,水印的嵌入不能影响被保护数据的可用性大大降低。不具备这一特性的水印,称为可见水印(Visible Watermarking)。如电视台播放信号的时候在某个角落经常嵌有它的标志。鲁棒性:水印能够抵御对嵌入后数据的一定操作,而不因为一些细微的操作而磨灭。包括数据的传输中产生的个别位错误,图像或视频、音频的压缩。不具备这一特性的水印,称为脆弱水印(Fragile Watermarking)。水印容量:是指载体可以嵌入水印的信息量。[编辑] 分类 [编辑] 常用技术 [编辑] 数字水印生成技术 伪随机生成扩频水印[编辑] 数字水印嵌入技术 LSBQIMSCS[编辑] 数字水印检测技术 计算自相关[编辑] 数字水印攻击技术 剪切-粘贴攻击[编辑] 图像水印技术 [编辑] 常用水印攻击 数字模拟转换(A/D,D/A conversion)旋转(rotation)放大缩小(scaling)切割(cropping)压缩(compression)再量化(requantization)再取样(resample)[编辑] 功能需求 隐蔽性或透明性(Imperceptible or Transparency)-原始图像在嵌入数字水印后的差异必须是人眼所无法察觉到的,也就是不能降低或破坏原始图像的品质。不易移除性(Non-removable)-水印要设计得不容易甚至不可能被黑客移除。强健性(Robustness)-经过水印技术处理后的图像经由噪声、压缩处理、图像处理以及各种攻击后,所萃取的数字水印仍然可以清楚的体现以便于人眼辨识或判断。明确性(Unambiguous)-萃取的数字水印,经过各种攻击后,失真不会很严重,可以明确的让拥有者辨识或判断。[编辑] 数字水印的发展 [编辑] 图像水印的发展 一般而言,图像水印技术是通过更改图像中的数据来嵌入水印,其作法上有两个主要的领域:空间域(时间域)法早期的图像水印研究主要是发展在空间域中,以灰阶图像而言,每个取样点(pixel)一般是以八个位来表示,且由最高有效位(MSB)开始向右排列至最低有效位(LSB),表示数据位的重要性次序,因此可通过更改每个取样点中敏感度最低的LSB来嵌入水印信息,使得水印具有较高的隐密性,这是信息隐藏技术中最常被用来藏入信息的一个既简单又容易实现的方法。但其缺点是容易被不法人士恶意破坏,且难以抵抗噪声、压缩处理、图像处理以及剪切处理等各种攻击。/dd变换域法在频域中的水印主要是原始图像转换到频域里,在加入水印数据,将水印嵌入至不同频率成份讯号可满足不同需求,当嵌入至高频讯号,较不容易被人眼视觉系统所察觉,嵌入至低频成份讯号,由于能量较高因而不容易被破坏。/dd离散余弦转换域离散余弦转换是静态图像压缩技术(如JPEG)以及动态视频压缩技术(如MPEG)中的主要内核,而从图像以8*8的像素区块为单位来做离散余弦转换,转换后仍然以8*8的区块大小来表示频率信息,其目的主要是将区块中各个像素的关系性打散,使得大部分的能量可以集中在少数几个基底函数上。/dd以离散余弦转换为工具,根据水印所嵌入的频带位置不同又分为:嵌入DC系数的水印技术嵌入低频系数的水印技术/dd小波域离散小波转换也是一种可将图像的空间域信息转换为频率域信息的技术,其优点除了可以有效的将图像中各个像素的关系性打散之外,还提供了多重分辨率与多频率的特性,使得在处理声音、图像以及视频等信息时的弹性较大,因此近年来被广泛的应用在图像处理、数据压缩以及信息隐藏等研究领域。而离散小波转换可通过相对应的滤波器而分别作用在图像信息中的列与行来实现/dd以离散小波转换为工具,根据水印所嵌入的频带位置不同又分为: 嵌入频带HL1的水印技术嵌入频带LH2的水印技术[编辑] 参考 [编辑] 参考资料 《音视频处理讲义》,张宝基 著孙圣和,陆哲明,牛夏牧. 数字水印技术及应用,北京, 2004.
关于数字水印的应用,需要大家的建议。。
数字水印被视做抵抗多媒体盗版数字水印攻击软件的“最后一道防线”。因此从水印技术自身来说,它具有广泛的应用前景和巨大的经济价值。
当今社会的发展已经呈现两个明显的特征:数字化和网络化。数字化指的是信息的存储形式,特点是信息存储量大、便于编辑和复制数字水印攻击软件;网络化指的是信息的传输形式,具有速度快、分布广的优点。过去10年,数字媒体信息的使用和分布呈爆炸性的增长。人们通过互联网可以快捷方便地获得数字信息和在线服务。但同时,盗版也变得更加容易,对数字内容的管理和保护成为业界迫切需要解决的问题。
数字信息在本质上有别于模拟信息,传统的保护模拟信息的方案对数字信息已不再奏效。再加上一些具有通用目的的处理器,如PC机,使得那些基于硬件的媒体保护方案很容易被攻破。而通常采用的加密技术事实上只能在信息从发送者到接受者的传输过程中保护媒体的内容。在信息被接收到以后,再利用的过程中所有的数据对使用者都是透明的,不再受到任何保护。在这一形势下,数字水印作为一种潜在的解决方案,得到了众多学者的青睐。
数字水印的基本思想是在原始媒体数据中,如音频、视频、图像等,隐藏具有一定意义的附加信息作为标记,这些信息与原始数据紧密结合,并随之一起被传输。在接收端,通过计算机水印信号被提取出来用于各种目的,可能的应用包括数字签名、数字指纹、广播监视、内容认证、拷贝控制和秘密通信等。数字水印被视做抵抗多媒体盗版的“最后一道防线”。因此从水印技术自身来说,它具有广泛的应用前景和巨大的经济价值。
数字水印的一般框架图
数字水印的基本框架
一个典型的水印系统由嵌入器和检测器组成,如图所示。嵌入器(式(1))根据要传送的信息M生成真正的水印信号,并把它隐藏到媒体数据x中,得到含水印的信号y。为了安全起见,水印信号的生成通常依赖于密钥K。
y经过传输网络可能会有一定的信息损失,到达检测器端变成y′,这段通道对于嵌入器和检测器来说都是不可控、不可知的,可以称其为攻击通道(attack channel)。检测器负责从y′中提取信息,如式(2)。对于不需要宿主信号的检测,数字水印攻击软件我们称为盲水印(blind watermarking),相反称为非盲水印(non-blind watermarking)。由于应用的需求,盲水印一直是研究的主流。
数字水印的特性
数字水印的思想虽然简单,但是要达到应用的目的,就必须满足一定的性能指标,其中相对重要的特性包括:
● 保真性(fidelity):又常称为不可见性,指的是水印嵌入导致宿主信号质量变化的程度。鉴于宿主信号多是多媒体数据供人们观赏,水印应具有很高的保真性,同时又增加了水印自身的安全。
● 鲁棒性(robustness):是指水印在媒体数据编辑、处理过程中的生存能力。媒体数据的各种操作会导致宿主信号信息损失,从而破坏水印完整性,像压缩、滤波、加噪、剪切、缩放和旋转等,也包括一些恶意的攻击。
● 信息容量(data payload):是指在一定保真度下,水印信号可传递的信息量。实际应用要求水印可传送多位信息。
● 安全性:在应用中总有人要嵌入、检测或剔除水印,而必须限制其数字水印攻击软件他人做同样的操作,这就是水印的安全性。要实现安全,必须保密重要信息,比如通常使用密钥产生水印。
● 错警率:是指在不含水印的宿主信号中,错误地检测出水印的概率。很显然,只有错警率足够低,系统才能安全可靠地使用。
设计水印必须围绕上述性能指标选择合适的技术。有些特性之间是不相容的,像不可见性、鲁棒性和信息容量,必须做权衡的考虑。
由水印的保真性将其分为可见水印和不可见水印,顾名思义可见水印可通过人眼检测。由水印的鲁棒性又可分为鲁棒水印(robust watermarking)和脆弱水印(fragile watermarking)。鲁棒水印可以抵抗一定程度的信号处理;而脆弱水印的特点是任何对媒体信息的更改都会破坏水印的完整性,使水印检测不出来。所以说鲁棒水印是尽力保证水印信息的完整性,脆弱水印是尽力保证媒体信息的完整性,它们各有各的用途。还有一种水印介于二者之间,称为半脆弱水印,对一些操作鲁棒,但对重要数据特征的修改操作是脆弱的。
数字水印技术的进展
早期,水印设计者关注的是如何把信息隐藏在数字媒体中并不被发现。为此,水印信息被置于二进制数据的最低位中,这类方案被统称为最低有效位调制。很明显,最低有效位内的信息容易在常用的信号处理中丢失,水印的鲁棒性差。
随后,出现了大量空间域内的水印算法。水印嵌入不再是修改空间域内的单个点,而是一个点集或一个区域的特征,例如均值、方差、奇偶性等。Patchwork是这类方法的一个典型代表。它在图像空间随机选取n对像素点(ai, bi),并且对像素ai的亮度加d,bi的亮度减d,结果这两组像素点之间亮度差值的均值被修改为2d。该均值和统计假设检验理论可确定水印的有无。可是Patchwork能嵌入的信息量有限,而且对几何变换敏感。空间域内水印算法存在的共性问题是对图像处理的鲁棒性差。
相较于空间域,频谱则是一种很好的信号描述方法。低频分量代表了信号的平滑部分,是主体信息;高频分量表示信号的抖动部分,是边缘信息,信号的分析和处理非常直观方便。扩频水印引入了扩频通信理论,是一种非常流行的频率域内的水印设计思想。它将数字媒体视为信道,通常具有较宽的带宽,要嵌入的水印信号作为发射信号,带宽较窄。可以先将水印扩展到多个频率点上,再与媒体信号叠加。这样,每个频率分量内只含有微小能量的水印,既保证了不可见性,同时要破坏水印,则必须在每个频率上叠加幅值很高的噪声。这一思想首先被应用到DCT域内,之后又被推广到傅立叶变换域和小波域内。另外,为了兼顾水印的保真性,人类感知模型被用于控制每个频率点上水印的能量,使其不至于破坏信号质量,从而形成了一类自适应的扩频水印。
另一种重要的水印模型是把水印看成是已知边带信息的通信。边带信息指的是嵌入器端已知的信息,包括媒体数据。嵌入器应该充分利用边带信息,尽可能提高水印正确检测的概率。这对水印的设计有重要的指导意义,它说明含水印的宿主信号应该选择在可检测到水印的区域,同时保证一定的保真度。
当前,水印研究的热点是探讨媒体信号中能嵌入并可靠检测的最大信息量,它应用了已知边带信息的通信模型以及信息论的知识。水印算法的研究则侧重于针对压缩域,即JPEG、MPEG等压缩标准,因为压缩是信息传输中必须采用的技术。
数字水印的攻击技术
对媒体数据的各种编辑和修改常常导致信息损失,又由于水印与媒体数据紧密结合,所以也会影响到水印的检测和提取,我们把这些操作统称为攻击。水印的攻击技术可以用来测试水印的性能,它是水印技术发展的一个重要方面。如何提高水印的鲁棒性,抵抗攻击,是水印设计者最为关注的问题。
第一代水印性能评价系统Stirmark囊括了大量的信号和图像处理操作,它们可以分为:
● 去除水印攻击(Removal attack):主要包括A/D、D/A转换、去噪、滤波、直方图修改、量化和有损压缩等。这些操作造成了媒体数据的信息损失,特别是压缩,能在保证一定信息质量的前提下,尽可能多地剔出冗余,使得水印被去掉。
● 几何攻击(Geometrical attack):主要包括各种几何变换,例如旋转、平移、尺度变换、剪切、删除行或列、随机几何变换等。这些操作使得媒体数据的空间或时间序列的排布发生变化,造成水印的不可检测,因此也叫异步攻击。
● 共谋攻击:攻击者利用同一条媒体信息的多个含水印拷贝,使用统计方法构造出不含水印的媒体数据。
● 重复嵌入攻击:攻击者在已嵌入他人水印的媒体数据中嵌入自己的版权信息,从而造成版权纠纷。
第二代水印攻击系统由Voloshynovskiy提出,其核心思想是利用合理的媒体数据统计模型和最大后验概率来估计水印或者原始媒体信号,从而将水印剔除。
对攻击技术的分析和研究促进了水印技术的革新,但也为水印自身提出了一个又一个挑战。当前,还不存在一种算法能够抵抗所有的攻击,特别是几何攻击,是学术界公认的最困难的问题,目前还没有成熟的方案。
数字水印产品
20世纪90年代末期国际上开始出现一些水印产品。美国的Digimarc公司率先推出了第一个用于静止图像版权保护的数字水印软件,而后又以插件形式将该软件集成到Adobe公司的Photoshop和Corel Draw图像处理软件中。AlpVision公司推出的LavelIt软件,能够在任何扫描的图片中隐藏若干字符,用于文档的保护与跟踪。MediaSec公司的SysCop用水印技术来保护多媒体内容,欲杜绝非法拷贝、传播和编辑。
美国版权保护技术组织(CPTWG)成立了专门的数据隐藏小组(DHSG)来制定版权保护水印的技术标准。他们提出了一个5C系统,用于DVD的版权保护。IBM公司将数字水印用于数字图书馆的版权保护系统中。许多国际知名的商业集团,如韩国的三星、日本的NEC等,也都设立了DRM技术开发项目。另外,当前还有一些潜在的应用需求,例如软件的搜索和下载数量的统计、网页安全预警、数字电视节目的保护和机密文档的防遗失等。
一些国际标准中已结合了数字水印或者为其预留了空间。SDMI的目标是为音乐的播放、存储和发布提供一个开放的框架。SDMI规范中规定了多种音频文件格式,并联合加密和数字水印技术来实现版权保护。已经颁布的JPEG2000国际标准中,为数字水印预留了空间。即将颁布的数字视频压缩标准MPEG-4(ISO/IEC 14496),提供了一个知识产权管理和保护的接口,允许结合包括水印在内的版权保护技术。
在国内,政府对信息安全产业的发展极为重视。数字水印的研究得到了国家自然科学基金和“863”计划的资助。国内信息隐藏学术研讨会(CIHW)自1999年以来至今已成功举办了五届,有力地推动了水印技术的研究与发展。去年政府更颁布了《中华人民共和国电子签名法》,这给水印技术的应用提供了必要的法律依据。
尽管数字水印发展迅速,但离实际应用,还有一段距离要走。许多项目和研究都还处于起步和实验阶段,已出现的水印产品还不能完全满足使用需求。如今水印技术正在向纵深发展,一些基本的技术和法律问题正逐个得到解决。相信不久的将来,水印与其它DRM技术的结合,将彻底解决数字内容的管理和保护问题。
小资料2
多媒体数字版权保护的应用案例
在安全领域有20年发展历史的美商SafeNet推出的数字产权保护方案DMD是采用加密技术的DRM产品。SafeNet公司亚太地区副总裁陈泓应记者的要求介绍几个成功的应用案例。
DMD主要应用于音乐和铃声的下载、VOD、多媒体内容发布服务,以及最近的移动TV。基本来说,客户选择基于以下几点:基于电信级的性能,可以同时处理上千个用户;可以同步支持多种DRM技术,并且对未来的DRM技术有高支持能力;高互通性,确保服务器端与客户端能安全稳定地沟通;先进的授权能力,例如可以有效控制一个授权的使用量;高集成性,确保DRM的平台不是独立作业的,可以很容易地整合至服务器平台,与收费系统等结合。
在音乐下载方面,NPO是SafeNet在法国的客户。他们主要负责发布CD音乐及将发表的音乐放到FN@C的网络上供人付费下载。NPO将音乐内容做DRM处理后,将内容由FN@C (这是一个公开的入口网站)发布,提供给人付费下载。当终端用户付了钱,FN@C会将一部分的证明数据加密并提交给NPO,由NPO产生授权给此用户。
在VOD的应用层面,德国的Arcor公司是一家ISP供货商。透过DRM解决方案,Arcor将影音内容加密,透过互联网和Cable给客户做使用者付费的服务。客户付了钱,Arcor由SafeNet的DRM解决方案产生正式授权,让客户享用影音服务。
在3G的应用方面,英国的BT LiftTime公司也采用SafeNet的DMD方案。BT LifeTime向内容供货商购买cable TV的内容(如运动节目或音乐节目等),并将此内容转成dab格式,经过DMD加密并放到其平台,再转卖给无线运营商,提供移动装置用户直接付费下载内容。通过SafeNet DMD将授权提供给已经付费的客户。
(计算机世界报 2005年11月14日 第44期 B6、B7)
MPEG-4视频数字水印技术的设计与实现
武汉大学信号与信息处理实验室(430079) 裘风光 李富平
随着信息技术和计算机网络的飞速发展,人们不但可以通过互联网和CD-ROM方便快捷地获得多媒体信息,还可以得到与原始数据完全相同的复制品,由此引发的盗版问题和版权纷争已成为日益严重的社会问题。因此,数字多媒体产品的水印处理技术已经成为近年来研究的热点领域之一。
虽然数字水印技术近几年得到长足发展,但方向主要集中于静止图像。由于包括时间域掩蔽效应等特性在内的更为精确的人眼视觉模型尚未完全建立,视频水印技术的发展滞后于静止图像水印技术。另一方面,由于针对视频水印的特殊攻击形式的出现,为视频水印提出了一些区别于静止图像水印的独特要求。
本文分析了MPEG-4视频结构的特点种基于扩展频谱的视频数字水印改进方案应用实例。
1视频数字水印技术简介
1.1数字水印技术介绍
数字水印技术通过一定的算法将一些标志性信息直接嵌入到多媒体内容当中,但不影响原内容的价值和使用,并且不能被人的感知系统觉察或注意到。与传统的加密技术不同,数字水印技术并不能阻止盗版活动的发生,但可以判别对象是否受到保护,监视被保护数据的传播,鉴别真伪,解决版权纠纷并为法庭提供认证证据。为了给攻击者增加去除水印的难度,目前大多数水印制作方案都采用密码学中的加密体系来加强,在水印嵌入、提取时采用一种密钥,甚至几种密钥联合使用。水印嵌入和提取的一般方法如图1所示。
1.2视频数字水印设计应考虑的几个方面
·水印容量:嵌入的水印信息必须足以标识多媒体内容的购买者或所有者。
·不可察觉性:嵌入在视频数据中的数字水印应该不可见或不可察觉。
·鲁棒性:在不明显降低视频质量的条件下,水印很难除去。
·盲检测:水印检测时不需要原始视频,因为保存所有的原始视频几乎是不可能的。
·篡改提示:当多媒体内容发生改变时,通过水印提取算法,能够敏感地检测到原始数据是否被篡改。
1.3视频数字水印方案选择
通过分析现有的数字视频编解码系统,可以将目前MPEG-4视频水印的嵌入与提取方案分为以下几类,如图2所示。
(1)视频水印嵌入方案一:水印直接嵌入在原始视频流中。此类方案的优点是:水印嵌入的方法较多,原则上数字图像水印方案均可应用于此。缺点是:
·会增加视频码流的数据比特率;
·经MPEG-4有损压缩后会丢失水印;
·会降低视频质量;
·对于已压缩的视频,需先进行解码,然后嵌入水印,再重新编码。
(2)视频水印嵌入方案二:水印嵌入在编码阶段的离散余弦变换(DCT)的直流系数(DC)中(量化后、预测前)。此类方案的优点是:
·水印仅嵌入在DCT系数中,不会增加视频流的数据比特率;
·易设计出抗多种攻击的水印;
·可通过自适应机制依据人的视觉特性进行调制,在得到较好的主观视觉质量的同时得到较强的抗攻击能力。
缺点是对于已压缩的视频,有一个部分解码、嵌入、再编码的过程。
(3)视频水印嵌入方案三:水印直接嵌入在MPEG-4压缩比特流中。优点是不需完全解码和再编码的过程,对整体视频信号的影响较小。缺点是:
·视频系统对视频压缩码率的约束将限制水印的嵌入量;
·水印的嵌入可能造成对视频解码系统中运动补偿环路的不良影响;
·该类算法设计具有一定的复杂度。
2 MPEG-4视频水印的实现
基于上述的各种方案,本文在方案二的基础上提出了一种针对MPEG-4视频编码系统的扩展频谱数字水印技术改进方案,将扩频调制后的水印信息嵌入到视频流IVOP(Intra Video Object Plane)中色度DCT直流系数的最低位。本方案不需要完全解码,大大减少了运算的
复杂度,提高了实时性。同时由于水印嵌入在直流系数中,在保证视频效果不失真的前提下,水印具有很强的鲁棒性。
2.1 MPEG-4视频的特点 MPEG-4视频编解码基于VOP(Video Object Plane)。
从时间上看,VOP分为内部VOP(1VOP)、前向因果预测VOP(PVOP)、双向非因果预测VOP(BVOP)、全景的灵影VOP(SVOP)。IVOP只用本身的信息进行编码;PVOP利用过去的参考VOP进行运动补偿的预测编码;BVOP利用过去和将来的参考VOP进行双向运动补偿的预测编码;SVOP一系列运动图像中的静止背景。因此IVOP的图像信息较独立,最适合嵌入水印信息。
从空间上看,它由若干个大小为16×16的宏块(Macro Block)组成,每个宏块包括大小为8×8的6个子块。其中4个亮度子块Y,1个色差子块U,1个色差子块V。IVOP编码基本流程如图3所示。
为了不受量化过程的影响,本方案将水印嵌入在量化后的DCT系数中,从而提高了水印生存的稳定性。在MPEG-4压缩算法中,DCT系数的量化是关键,它直接影响视频的质量和码流控制算法。为此,MPEG-4提供了一个供参考的标准量化表。该表根据人类视觉模型(HVS)建立。考虑到人眼对高频信息损失的敏感度较低频损失小很多,因此通常把水印嵌入到中低频信息中,提高了水印信息的鲁棒性。另外,根据人眼对亮度信息的变化比色度信息较敏感这一特性,为最大限度地保持视频质量,本方案将水印嵌入到色度(U子块)DCT系数中。由于DCT是目前多媒体视频压缩中被广泛采用的技术基础,因此基于DCT的视频水印方案具有显著的优势。将水印信息嵌入到IVOP色度量化后的DCT直流系数中,不但无需引入额外的变换以获取视频的频谱分布,且水印信息不受DCT系数量化带来的影响。
2.2视频数字水印算法与实现
在MPEG-4视频中,由于IVOP中色度子块的DCT直流系数是一个在视频流中始终存在且很鲁棒的参数,本方案将水印信息经m序列(最长线性反馈移存器序列)调制后嵌入到IVOP的色度子块DCT的直流系数中。这样水印信息在不影响视频效果的情况下难以去除,所以鲁棒性足够强。本方案采用扩频的方法,以方便有效地检测水印,抵抗各种攻击和干扰,保密性好。关键问题是色度DCT的直流系统是一个对视觉系统很敏感的参数,本方案在色度DCT的直流系数上加水印相当于对其加入微量干扰,必须使这种干扰低于一定的门限值,使人眼的视觉系统对视频中色度的微小变化感觉不到。经过试验将水印嵌入到IVOP的色度DCT的直流系数的最低位能满足要求。
2.2.1视频数字水印的嵌入
伪随机的扩展序列长度为255(28-1),每一水印信息位通过伪随机扩展序列的调制嵌入到相应的IVOP色度对应的DCT直流系数(量化后、预测前)的最低位,这样水印信息在不影响视频效果的情况下一般难以去除。同时,嵌入在直流系数的最低位,带来的误差非常小。
伪随机的扩展序列产生代码如下:
#define M_LEN 255
#define M_SERIES 8
for(I=0;i for(i=M_SERIES;i {
m[i]=m[i-1]+m[i-5]+m[I-6]+m[i-7]
m[i]=m[i]%2;
}
水印信息位扩展调制方式为:
·水印信息位为0,伪随机的扩展序列不变;
·水印信息位为1,伪随机的扩展序列取反。
这个过程可以用异或运算实现。代码如下:
Wmij=Wi^m[j];
/*每一水印信息位扩展调制成255位的扩展调制位*/
这里Wi表示水印信息码流,WMij表示水印信息扩展调制码流。设UDCij表示视频IVOP色度DCT的直流系数(量化后、DC预测计算之前)序列,为了方便,用一个字节表示一位二进制码流信息。
水印嵌入过程如下:
if(WMij) UDCij 1=1;
/*根据扩展调制后的码流嵌入水印信息*/
else UDCij=0xFFFE;
2.2.2视频数字水印的提取
水印信息提取是水印信息嵌入的逆过程,代码如下:
if(inv_UDCij 1)inv_Wmij=1;
else inv_Wmij=0;
这里inv_UDCij表示带有水印信息的视频IVOP色度DCT的直流系数(反量化前、DC预测计算之后)序列;inv_WMij表示检测到的水印信息扩展调制码流。每个IVOP色度子块在解码时得到一位扩展调制的信号位,每连续255个扩展调制的信号位可解调得到1位水印
信息,具体分析如下:
用与原始伪随机序列结构相同且完全同步的序列与得到的连续255个扩展调制的信号接收序列进行异或运算,统计运算后1的个数记为OneCount。由于m序列的自相关函数只有两种取值(1和-1/(2n-1)),属于双值自相关序列。因此,如果数据未受到任何攻击和干扰,OneCount只有两种结果:255或0。当OneCount=255时,得到的水印信息位为1;当OneCount=0时,得到的水印信息位为0。如果数据受到攻击或干扰,OneCount有多种结果。根据统计分析,当OneCount127时,得到的水印信息位为1,并且这255个IVOP色度子块中有(255-OneCount)个子块受到攻击或干扰;当OneCount127时,得到的水印信息位为0,并且这255个IVOP色度子块中有OneCount个子块受到攻击或干扰。这样既可以统计总共有多少视频IVOP色度子块受到攻击或干扰,同时又能极强地恢复出原始水印信息。
3试验结果分析
试验结果表明,m序列的长度越长,检测效果越好,但能够嵌入的水印信息量也相应地减少。本方案中水印只嵌入在视频的IVOP中,不修改PVOP和BVOP,对帧跳跃与帧删除攻击稳健,因为IVOP不可以被跳跃或删除。同时,由于水印信息嵌入在DCT的直流系数中,而直流系数的变化对视频效果会有较大的影响,所以采取将水印信息嵌入到色度子块DCT直流系数的最低位。这样不仅使水印嵌入计算的复杂度大为降低,为MPEG-4编解码节省了时间,还可取得良好的视频效果,达到了不可觉察性。从统计角度看也不会增加视频码流。另外,水印提取时无需原始视频。若水印信息未受到攻击,则本方案可准确地提取到原始视频的完全水印;若水印信息受到攻击,根据扩频解调性质,本方案可以最大限度地恢复出原始水印信息,并统计出有多少个IVOP色度子块受到攻击。
由于DCT是目前多媒体视频压缩几大标准(H.261、H.263、MPEG-4等)共同采用的技术基础。因此基于DCT的水印方案在视频压缩中具有非常重要的研究意义和应用前景。本文在此基础上提出了一个基于扩展频谱的MPEG-4视频数字水印方案。实践证明,在不需要原始视频的情况下,本方案能敏感地检测到数据是否被篡改或破坏,并具有良好的稳定性和鲁棒性,从而提供了知识产权的保护,防止非法获取。
本文摘自《电子技术应用》
应用:数字水印
消息认证与数字签名可以应用到数字水印中。
传统水印用来证明纸币或纸张上内容的合法性,数字水印(digital watermark)用以证明一个数字产品的拥有权、真实性。数字水印是嵌在数字产品中的数字信息。可以是作者的序列号、公司标志、有特殊意义的文本等。
数字水印主要用于:阻止非法复制(间接的)、确定所有权(作者、发行人、分发商、合法的最终用户)、确定作品的真实性和完整性(是否伪造、被篡改)、证实收件人、不可否认的传送、法庭证据的验证、赝品甄别、识别文件来源与版本、Web网络巡逻监视盗贼等。
传统水印是人眼可以看得见的,而数字水印可以分为可感知的(Perceptible)和不易感知的(Inperceptible)两种。
可感知的数字水印,主要用于当场声明对产品的所有权、著作权及来源,起到一个宣传广告或约束的作用。可感知水印一般为较淡的或半透明的不碍观瞻的图案;比如电视台节目播放的同时,在某个角落插上电视台的半透明标志。另一个用途是为了在线分发作品,比如先将一个低分辨率的有可见水印的图像免费送人,其水印往往是拥有者或卖主的信息,它提供了寻找原高分辨率作品的线索,若想得到高分辨率的原作品则需付费。有些公司在产品出售前为了在网络上宣传其产品,先做上可逆可见水印分发,付费购买时,再用专用软件将可见水印去掉,加入不可见水印(发行人、分发商、最终用户等的信息)。可见水印还有另一些用途,那就是为了节约带宽、存储空间等原因,在VCD、DVD等电影拷贝中用嵌入不可见水印的方式配上多种语言的副标题和字幕,待播放时由硬件根据需要实时地解出每一帧中的水印文字,将其显示在屏幕上。
可见水印在某些产品中或多或少降低了作品的观赏价值,使其用途相对受到一定限制。不易感知的水印的应用层次更高,制作难度更大。
不易感知的数字水印就像隐形墨水技术中的看不见的文字,隐藏在数字产品中。水印的存在要以不破坏原数据的欣赏价值、使用价值为原则。数字水印按照某种方式植入被保护的信息中,在产生版权纠纷时,通过相应的算法提取出该数字水印,从而验证版权的归属。被保护的信息可以是图像、声音、视频或一般性的电子文档等。为了给攻击者增加去除水印的难度,大多数水印制作方案都在水印的嵌入、提取时使用密钥。
图5.7水印的嵌入与提取
数字水印技术虽然不能阻止盗版活动的发生,但它可以判别对象是否受到保护,监视被保护数据的传播、真伪鉴别和非法拷贝、解决版权纠纷并为法庭提供证据。
数字水印的设计需要考虑以下几个方面:
鲁棒性:是指被保护的信息经过某种改动后抵抗隐藏信息丢失的能力。例如传输过程中的信道噪音、滤波操作、重采样、有损编码压缩、D/ A或 A/ D转换、图像的几何变换
我用MATLAB做的水印,怎么用stirmark进行攻击?急求
肯定对 望采纳
3.1水印的预处理
采用二值图像作为待嵌入的水印数据,本文针对的研究对象因为是二维图像故采用的是二维Arnold变换。
二维Arnold变换定义为:
(3-1)
其中,(x,y)是原图像的像素点,(x’,y’)是变换后新图像的像素点,N是图像阶数,即图像的尺寸大小,一般多为正方形图像。由于Arnold变换具有周期性,因此可利用其周期性Period来对图像进行反变换。即在水印嵌入过程中可将水印置乱次数作为密钥times,再进行水印嵌入,当水印提取出来时,再将其继续: (Period-times)次即可使其恢复至原图。这就是利用Arnold的正变换来进行的置乱恢复方案。Arnold变换次数由版权所有者保管。
对水印进行置乱有以下优点:
(1) 采用置乱技术的合法者可以自由控制算法的选择,参数的选择以及使用随机数技术,从而使非法使用者难以破译图像内容,可以提高水印信息的安全性;
(2) 置乱技术可以分散错误比特的分布,提高数字水印的视觉效果,从而增强其鲁棒性。
3.2 视频水印的嵌入
水印嵌入算法关键在于以下三点:
(1) 水印的结构;
(2) 水印的嵌入区域;
(3) 嵌入技巧;
本文选取二值图像作为水印。为了提高水印的鲁棒性,大多数的DCT域水印算法把水印信号嵌入到DCT系数的低频部分。但低频区域是图像的能量集中部分,嵌入到低频会降低透明性。而嵌入在高频虽然透明性比较好,但对大多数的图像处理对高频成分影响较大,从而降低水印的鲁棒性.于是大多数的水印算法将水印信号嵌入在载体图像DCT系数的中频部分,以达到透明性和鲁棒性的最佳折衷。各种嵌入技巧的最终目的还是为了尽量地提高水印的鲁棒性和透明性。
用于版权保护的数字水印在尽量提高鲁棒性的同时还要满足人类的视觉极限,因此必须根据HVS找到嵌入位置。
本文将HVS归纳为运动敏感性、纹理敏感性和亮度敏感性。在接下来的嵌入过程中,充分利用了这些特性。如图3-1中间分支所示。
嵌入过程如图3-1所示。
图3-1 水印嵌入过程
从视频中读取亮度分量Y,因为它是最有效的数据,根据NEC算法,嵌入到它里面的水印才具有最强的鲁棒性。根据式(3-2)所示的运动敏感性阈值计算公式,寻找32帧满足敏感性比较大的视频帧Yi (i=1,2,…32)。
(3-2)
其中 (t代表当前帧的编号)
接下来,将Y32中的数据按照64*64的尺寸切分成20块BYij (j=1,2,…20),于是我们可得到20块尺寸为64*64*32的三维数据块BYk (k=1,2,…20),如图2-3所示。
图3-2 亮度分量的分块
根据式(3-3)、式(3-4)所示的亮度敏感性Lk和纹理敏感性Dk计算公式,通过计算,我们选择计算值都比较高的20块数据中的一块 ( )作为水印的嵌入块。
(3-3)
(3-4)
其中, 是BYk中的亮度数据, 。
最后,折衷考虑复杂度和性能,我们对选定的一块数据块 实施了2阶三维DCT变换。根据NEC算法的思想,且为了抵抗滤波和压缩攻击,我们将置乱后的水印序列嵌入到了第一帧DCT系数c(u,v)中,详见式(3-5)。
(3-5)
其中,w(u,v)是水印序列中的数据,c(u,v)是DCT变换后第一帧中的系数,c’(u,v)是嵌入水印后的系数,S是非负整数(且满足T1=S/4, T2=3*T1)。
嵌入完成后,对c’(u,v)实施反2阶三维DCT变换就得到了嵌入水印后的视频数据,再将它们放回原来的位置即可。
需要说明的是,在整个嵌入过程中,所有用到的参数都应作为密钥保留。
具体方案如下所述:
第一步:抽取32帧视频Y分量数据:
(1) 读取视频文件;
(2) 提取所有的Y分量,把所有的Y分量分为32组;
(3) 每组4帧,从各组中选出一个最运动敏感的,判断每组中最大的Y_deltmax,存入变量m;
(4) 定位最大的Y_deltmax,存入变量w;
Y32是就是所需的视频帧中Y分量满足敏感性的32帧视频 (355*288*32)。
第二步:分块过程:
(1) 对行分块(4块);
(2) 对列分块(5块);
(3) 隔十帧取一帧,共从32帧中取4帧以降低运算量;
(4) 一个数一个数的赋值;
切成20块,每块为64*64*4的数据块BY,维数不同,只能逐个象素赋值。
第三步:根据公式计算数据块BY的亮度敏感性L和纹理敏感性D
第四步:选取L和D都比较大的一块嵌入水印
(1) 判断最大的L,存入变量Lm;
(2) 去掉这个最大的块再比较;
(4) 赋第一块的L的权重为20;
(5) 计算第2块到第20块的L的权重;
(6) 同理对D进行处理;
(7) 计算每块BY的权重;
(8) 对所有的20块BY的权重qz按由小到大的顺序进行排序,并保持原来的位置索引index,则index[20]就是所要选取的块;
第五步:三维DCT变换
由于视频是由图像数据流组成的,所以可以把视频的每一帧看作是一幅静止的图像。对运动图像序列进行3D-DCT,可以视为先对视频的每一帧进行2D-DCT,再对帧间方向进行1D-DCT。
第六步:嵌入水印数据
将置乱的水印序列嵌入所选的DCT系数中,即嵌入经过3D-DCT变换后的数据块中的第一帧数据中。然后把这些数据进行反3D-DCT变换后放回原位置。
第七步:将所选的数据放回原位置
最后一步:写视频文件
3.3视频水印的检测
水印提取是嵌入的逆过程,本算法的一大优势是,水印提取时无需原始视频数据的参与,但依然需要一些参数。它们是:
(1) 嵌入过程第四步产生的块BY的排序结果,由此我们可以得知水印的大致嵌入位置;
(2) 嵌入时指定的参数S;
(3) 需要Arnold变换的次数和周期;
获得了上面的各项参数,水印的提取就十分简单,具体过程如图3-3所示。
图3-3 水印盲提取过程
方案如下:
从待提取水印的视频数据 (可能是被攻击过后的视频)中抽取出亮度分量Y’,根据密钥,抽出32帧中的四帧亮度分量 ,然后分别从这组数据中提取水印。
在图3-3中,首先将 分隔成20块 ,并找到和 对应的 。然后,对 做二阶三维DCT变换,根据式(3-6)提取出水印数据 。
(3-6)
其中, 是DCT系数。
最后,我们将 进行Arnold变换,得到水印图像,作为最终提取出的水印。
具体步骤如下所述:
第一步:抽取32帧视频Y分量数据:
(1) 读取嵌入水印图像的视频文件;
(2) 提取所有的Y分量,把所有的Y分量分为32组;
(3) 每组4帧,从各组中选出一个最运动敏感的,判断每组中最大的Y_deltmax,存入变量m;
(4) 定位最大的Y_deltmax,存入变量w;
Y32是就是所需的视频帧中Y分量满足运动敏感性的32帧视频,Y32是一个355*288*32的三维数组。
第二步:分块过程:
(1) 对行分块(4块);
(2) 对列分块(5块);
(3) 隔十帧取一帧,从32帧中共取4帧以降低运算量;
(4) 一个数一个数的赋值;
切成20块,每块为64*64*4的数据块BY,维数不同,只能逐个象素赋值。
经过计算其亮度敏感性和纹理敏感性并排序,index[20]就是本文算法中嵌入水印的块;
第三步:三维DCT变换
第四步:Arnold变换
由于本算法中水印图像是二值图像,其Arnold变换是二维变换,周期是Period,嵌入水印时变换了times次,所以此处只需变换(Period-times)次就可得到结果。
第五步:写图像文件
提取水印图像数据并写成图像文件
第六步:检测水印图像存在与否,并与原水印图像比较。
最后一步:进行实验,验证本文算法的可见性和鲁棒性。
经过以上步骤就是水印图像信息嵌入视频中的方法,具体实现过程见第四章。
4 用MATLAB实现视频水印的嵌入和检测
Matlab是近年来在国内外广泛流行的一种可视化科学计算软件。它的特点是结构简单、数值计算高效、图形功能完备、图像处理方便,是国际公认的最优秀的科学计算与数学应用软件之一。利用Matlab实现数字水印图像算法便捷、高效,省去了繁琐的程序代码,避免了科研人员在编程上浪费精力。
其内容已涉及矩阵代数、微积分、应用数学、信号与系统、神经网络、小波分析及应用、数字图像处理、计算机图形学、自动控制与通信技术等诸多方面,是科学计算、系统仿真、信号与图像处理的主流软件,受到了各方科研人员的青睐,在数字水印技术中得到了广泛的应用。将Matlab应用于数字水印技术,其优点主要有以下几个方面:
(1) 强大的数值计算功能
视频水印技术是针对图像进行研究的,而图像是由矩阵表达的,将水印嵌入视频中及从视频中将水印提取出来都意味着大量的矩阵运算,而矩阵运算更是Matlab语言的核心,表达自然、直接。因此,利用Matlab强大的矩阵运算功能来实现图像水印技术非常合适。
(2) 方便的图像读取和显示功能
视频水印首先要将数据从视频中读取出来,嵌入水印后还要将嵌入水印后的数据还原为视频。Matlab为用户提供了专门的图像处理函数,用于读写显示图像数据。这种方法不像其他编程语言那样,需要编写复杂的代码,只需要简单地调用Matlab提供的函数即可,相关的函数及其功能主要有下列一些:
imread 将图像读入工作空间;
imwrite 将图像写入磁盘;
image 提供最原始的图像显示函数;
imshow 是最常用的显示各种图像的函数;
load将文件读入工作空间;
(3) 高效的图像变换功能
数字水印嵌入算法一般分空域方法和频域方法。空域方法指通过改变象素的亮度值来加入数字水印:频域方法指图像通过某种变换后再嵌入数字水印。与空域法相比,频域法具有如下优点:在变换域中嵌入的水印信号可以分布到空域的所有象素上,有利于保证水印的不可见性。在变换域中,视觉系统的某些特性(如视频特性)可以更方便地结合到水印编码过程中。变换域的方法可以与国际数据压缩标准兼容,从而实现压缩域内的水印编码。因此,变换域的方法应是水印算法未来趋势的主流。但是变换域的算法一般来讲计算量都比较大,需要复杂的编程运算,Matlab则改变了这种现状。在Matlab图像处理工具箱中,提供了常用的图像变换函数,复杂的变换域算法在Matlab中只需简单地调用函数即可实现,充分体现了使用Matlab的简便性和高效性。
主要图像变换函数如下:
dct是一维离散余弦变换;
idct是一维离散余弦逆变换;
dct2是二维离散余弦变换;
idct2是二维离散余弦逆变换;
(4) 丰富的图像处理函数
水印技术要求嵌入的水印不可见且有较强的鲁棒性。不可见性可通过视觉效果和计算图像的峰值信噪比来比较优劣,而鲁棒性则要对水印后图像进行各种攻击,通过比较攻击后图像提取出的水印情况来说明问题。Matlab有各种图像处理函数,可实现对图像的各种攻击。
综上所述,Matlab具有语言简洁、函数丰富、使用方便、数值计算高效等特点,将功能强大的Matlab软件应用于数字水印技术是有效的选择,因此,本文采用Matlab对图像水印进行研究。
4.1水印的嵌入过程
(1) 基于Arnold变换的图像置乱
Matlab实现如下:
Arnold变换由function r=Arnold(w0,row,colum,times) 实现,其中w0为读取的图像数据,row是行数,colum是列数,times是Arnold变换次数。
function r=Arnold(w0,row,colum,times)
for k=1:times
for i=1:row
for j=1:colum
i1=i+j;
j1=i+2*j;
if i1row
i1=mod(i1,row);
end
if j1colum
j1=mod(j1,colum);
end
if i1= =0
i1=row;
end
if j1= =0
j1=colum;
end
w1(i1,j1)=w0(i,j);
end
end
w0=w1;
end
r=w0;
用imwrite(w0,'Arnold.bmp', 'bmp')写置乱后的图像文件;在MATLAB中用imshow('Arnold.bmp')显示此图像。
本文采用二维的二值水印图像watermark.bmp,我们将图像数据(64*64)扫描到二维的矩阵中并实施Arnold变换,从而得到置乱后的二维矩阵。随着迭代次数的增加,图像逐渐趋于混乱,不过到一定次数时,又将回到原图。因为watermark.bmp大小为64*64,故经过试验图像迭代48次后将回到原图,即周期性Period=48。
本算法选择置乱8次,因为8次Arnold变换后原水印图像已经成为无形状的图像。实验结果表明,该方法能较好地刻划图像的置乱程度,与人的视觉基本相符。但需要指出的是不一定图像的置乱次数越多其置乱度就越高。所以,在水印嵌入时,为了提高其鲁棒性而增加置乱次数的方法是不科学的,合理的做法是计算置乱后图像的置乱度,达到较为满意的置乱度后就可停止置乱,避免盲目的提高置乱次数。
置乱次数作为密钥有视频版权所有者保管,如果非法所有者不知道置乱次数就很难恢复出原水印图像。
原水印图像如图4-1所示,本算法实现置乱8次后效果如图4-2所示:
图4-1 水印原图像 图4-2 置乱8次后
(2)Matlab实现嵌入过程:
本文中选取352×288×142的yuv格式视频流进行测试。YUV颜色模型是一种常用的颜色模型,其基本特征是将亮度信号与颜色信号分离,由于人眼对亮度的变化比对颜色的变化敏感,因此,YUV模型中Y分量的值所占带宽大于等于彩色分量所占带宽。YUV色彩空间模型可以在一定程度上避免RGB模型的高分散性和高相关性所带来的闭值划分问题,计算也较为简单。这种色彩空间模型中Y和UV分量是相互独立的,反映了人眼观察彩色的视觉规律,在实际中应用较多。其中“Y”表示明亮度(Luminance或Luma),也就是灰阶值;而“U”和“V”表示的则是色度(Chrominan“或Chroma),作用是描述影像色彩及饱和度,用于指定像素颜色。因此选择YUV颜色空间更加稳定,易于分析。
本文选择测试视频中的第39帧如图4-3所示。YUV格式的视频中Y:U:V=4:2:2,但通俗叫“420”格式。
图4-3 未嵌入水印的视频
第一步:读取文件;
读取视频文件由[yuv,Y,u,v,num_f]=loadyuv(filename)实现,filename是所选取得视频文件名称。yuv是一个四维数组,它返回的是视频的yuv分量,Y是亮度分量,u和v是色彩分量,num_f是视频文件中所有帧的数目。
读取一帧数据的YUV分量在Matlab中由以下源代码实现:
function [YUV,Y,U,V] = loadFileYUV(width,heigth,Frame,fileName,format)
[Teil_h,Teil_b]=YUVFormat(format);
fileId = fopen(fileName,'r');
其中width:每一帧的宽度;heigth:每一帧的高度;Frame:当前load的那一帧;filename:视频文件名;Teil_h:垂直比例参数;Teil_b:水平比例参数;YUV:返回值,返回YUV分量,是一个三维变量,本文算法中将U、V分量的宽度和高度设成与Y一样的了,因此U、V分量中有重复的。YUV(:,:,1)存放Y分量;YUV(:,:,2)存放U分量;YUV(:,:,3)存放V分量;Y,U,V是三个分量的实际值,二维矩阵,没有重复,他们的长度可能不一样。
Y_delt(j)=delt(Y(:,:,w(i)),Y(:,:,4*(i-1)+j));
其中Y_delt是当前帧与下一组各帧的Y的差,m(i)=max(Y_delt(j));判断每组中最大的Y_deltmax,存入变量m,以此来得到每组中最运动敏感的视频帧。w(i+1)=4*(i-1)+k定位最大的Y_deltmax,存入变量w。
最后得到Y32=double(Y(:,:,w)), Y32是视频帧中Y分量满足敏感性的32帧视频是一个355*288*32的三维数组。
第二步:分块;
分块时因为需要块标号,由此造成维数不同,所以只能逐个象素赋值,在Matlab中由BY(t1,t2,t3,j*5+k+1)= double(Y32((64*j+t1),(64*k+t2),i))实现,切成20块,每块为64*64*4的数据块BY ,其中t1是块的杭坐标,t2是块的列坐标,t3帧标号,j*5+k+1是快标号。
第三步:三维DCT变换;
运动图像序列的每一帧可以看作是静止图像 对运动图像序列进行3D DCT,可以视为先对每帧进行2D DCT,再对帧间方向进行1D DCT。
%对每一块的帧间方向进行1D DCT变换
for i=1:64
for j=1:64
dcta(i,j,1:4,index(20))=dct(BY(i,j,1:4,index(20)));
end
end
%对每一块的每一帧进行2D DCT
for i=1:4
dct3a(:,:,i,index(20))=dct2(dcta(:,:,i,index(20)));
end
第四步:嵌入水印过程;
读入二值水印图像由message=double(imread('watermark.bmp'))实现 ,message是一个由0和1组成的二维数组。
将置乱的水印序列嵌入所选的dct系数中,源代码如下所示:
其中dct3a是DCT系数,index[20]是纹理敏感性和亮度敏感性都比较好的一块,S作为密钥由版权所有者保管。
S=60;
T1=S/4;
T2=3*T1;
for i=1:64
for j=1:64
if (w2(i,j)==1)
if (dct3a(i,j,1,index(20))=0)
dipin(i,j)=dct3a(i,j,1,index(20))-mod(dct3a(i,j,1,index(20)),S)+T1;
end
if (dct3a(i,j,1,index(20))0)
dipin(i,j)=dct3a(i,j,1,index(20))+mod(abs(dct3a(i,j,1,index(20))),S)-T1;
end
end
if (w2(i,j,:)==0)
if (dct3a(i,j,1,index(20))=0)
dipin(i,j)=dct3a(i,j,1,index(20))-mod(dct3a(i,j,1,index(20)),S)+T2;
end
if (dct3a(i,j,1,index(20))0)
dipin(i,j)=dct3a(i,j,1,index(20))+mod(abs(dct3a(i,j,1,index(20))),S)-T2;
end
end
end
end
第五步:三维DCT反变换;
先对块的第一帧进行二维DCT反变换,然后在对其它三帧进行二维反变换,最后对帧间方向进行一维DCT反变换。此过程由Matlab实现如下:
二维DCT反变换:
idcta(:,:,1,index(20))=idct2(dipin);
for i=2:4
idcta(:,:,i,index(20))=idct2(dct3a(:,:,i,index(20)));
end
对每一块的帧间方向进行一维DCT反变换
for i=1:64
for j=1:64
idct3a(i,j,1:4,index(20))=idct(idcta(i,j,1:4,index(20)));
end
end
第六步:把这些数据放入原位置;
第七步:写视频文件;
写视频文件由以下程序实现,其中fileId为写入视频文件的位置。
fileId = fopen('vectra_w.yuv','wb')
fwrite(fileId,Y(:,:,i)' , 'uchar');
fwrite(fileId,u(:,:,i)' , 'uchar');
fwrite(fileId,v(:,:,i)' , 'uchar');
4.2水印的检测过程
水印的检测过程就是嵌入水印的逆过程,其Matlab实现如下所示:
filename='vectra_w.yuv';此文件是对含有水印的视频(可能是被攻击过后的视频)文件。
[yuv,Y,u,v,num_f]=loadyuv(filename);
读取视频文件和三维DCT正变换其原理和嵌入过程相同,此处不再赘述。
提取水印数据在Matlab中由以下程序实现,其中S、T1、T2等都是嵌入时的密钥,版权所有者拥有它。
for i=1:64
for j=1:64
if (mod(abs(dct3b(i,j,1,index(20))),S)((T1+T2)/2))
shuiyin(i,j)=1;
end
if (mod(abs(dct3b(i,j,1,index(20))),S)=((T1+T2)/2))
shuiyin(i,j)=0;
end
end
end
Arnold反变换如下所示:
w0=shuiyin;
w2=Arnold(w0,Hm,Wm,40);
w0是检测到的水印数据,Hm和Wm是水印数据的行和列,变换次数为40。
写水印文件,检测水印图像存在与否,并且和原水印图像有无差异。
imwrite(w2,'恢复.bmp', 'bmp');
imshow('恢复.bmp');
综上,水印的嵌入主要经过将视频和水印分别进行预处理,然后根据嵌入算法选择水印的合适嵌入位置以及合理嵌入策略,从而得到含水印的视频数据。在各个环节中采用HVS特性来提高视频水印的鲁棒性.最后用相应的视频水印检测策略提取出水印从而实现视频的保护。结果显示本文算法能成功提取出水印图像。
5 实验结果与分析
对水印的性能建立合理的评估方法和基准是数字水印研究的一个重要内容。对视频水印的评估主要包括以下两方面:嵌入水印对视频引起的失真的主观和客观定量评估;水印鲁棒性的评估。一般而言,在水印的不可见性和鲁棒性之间需要进行折中。因此为了能够进行公平合理的性能评估,我们必须尽量保证水印系统是在可比较的条件下进行测试,即应该在给定视频视觉可见性要求的前提下进行测试。本文中首先对水印的不可见性进行测试,然后对其鲁棒性进行测试。