基于Matlab的数字水印设计—基于DCT域的水印实现

基于Matlab的数字水印设计—基于DCT域的水印实现
基于Matlab的数字水印设计—基于DCT域的水印实现

成绩评定表

学生姓名班级学号1203030113

专业电子信息工程课程设计题目基于Matlab的数字水印设计——基于DCT域的水印实现

组长签字:

成绩

日期

2015年7月20日

课程设计任务书

学院信息科学与工程专业电子信息工程

学生姓名班级学号 1203030113

课程设计题目基于Matlab的数字水印设计——

基于DCT域的水印实现

实践教学要求与任务:

本设计利用MATLAB进行编程及仿真,仿真内容为基于DCT 域的数字水印实现。拟利用所学数字图象处理技术知识,在MATLAB 软件系统上来实现水印的嵌入和提取,以对水印嵌入与提取算法的不可见性、鲁棒性进行验证性测试。

工作计划与进度安排:

2015年7月10日—11日:熟悉编程环境,查阅相关资料。

2015年7月11日—12日:水印算法设计。

2015年7月12日—13日:编码、调试、实验与分析。

2015年7月13日—14日:撰写课程设计报告。

2015年7月14日—15日:准备答辩。

指导教师:

2015 年7 月2日专业负责人:

2015年7月2日

学院教学副院长:

2015年7月2日

摘要

数字水印(Digital Watermark)技术是指用信号处理的方法在数字化的多媒体数据中嵌入隐蔽的标记,这种标记通常是不可见的,只有通过专用的检测器或阅读器才能提取。数字水印是信息隐藏技术的一个重要研究方向。随着数字水印技术的发展,数字水印的应用领域也得到了扩展,数字水印的基本应用领域是版权保护、隐藏标识、认证和安全不可见通信。

当数字水印应用于版权保护时,潜在的应用市场在于电子商务、在线或离线地分发多媒体内容以及大规模的广播服务。数字水印用于隐藏标识时,可在医学、制图、数字成像、数字图像监控、多媒体索引和基于内容的检索等领域得到应用。数字水印的认证方面主要ID卡、信用卡、ATM卡等上面数字水印的安全不可见通信将在国防和情报部门得到广泛的应用。

本文主要是根据所学的数字图象处理知识,在MATLAB环境下,通过系统编程的方式,建立并实现基于DCT域的数字水印加密系统。该系统主要包含数字水印的嵌入与提取,仿真结果表明,数字水印算法具有有效性、可靠性、抗攻击性、鲁棒性和不可见性,能够为数字媒体信息在防伪、防篡改、认证、保障数据安全和完整性等方面提供有效的技术保障。

关键词:数字水印;MATLAB;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)

结束语 (17)

参考文献 (18)

1课程设计目的

数字水印技术是用信号处理的方法在数字化的多媒体数据中嵌入隐蔽的标记,这种标记通常是不可见的,只有通过专用的检测器或阅读器才能提取。数字水印是信息隐藏技术的一个重要研究方向。

在数字水印技术中,水印的数据量和鲁棒性构成了一对基本矛盾。从主观上讲,理想的水印算法应该既能隐藏大量数据,又可以抗各种信道噪声和信号变形。然而在实际中,这两个指标往往不能同时实现,不过这并不会影响数字水印技术的应用,因为实际应用一般只偏重其中的一个方面。如果是为了隐蔽通信,数据量显然是最重要的,由于通信方式极为隐蔽,遭遇敌方篡改攻击的可能性很小,因而对鲁棒性要求不高。但对保证数据安全来说,情况恰恰相反,各种保密的数据随时面临着被盗取和篡改的危险,所以鲁棒性是十分重要的,此时,隐藏数据量的要求居于次要地位。

数字水印技术是通过一定的算法将一些标志性信息直接嵌到多媒体内容当中,但不影响原内容的价值和使用,并且不能被人的知觉系统觉察或注意到。水印信息可以是作者的序列号、公司标志、有特殊意义的文本等,可用来识别文件、图像或音乐制品的来源、版本、原作者、拥有者、发行人、合法使用人对数字产品的拥有权。

与加密技术不同,数字水印技术并不能阻止盗版活动的发生,但它可以判别对象是否受到保护,监视被保护数据的传播、真伪鉴别和非法拷贝、解决版权纠纷并为法庭提供证据。总的来说,数字水印可以携带有版权保护信息和认证信息,保护数字产品的合法拷贝和传播。

2课程设计要求

利用所学的数字图像处理技术,建立并实现基于DCT的数字水印加密系统,利用MATLAB软件系统来实现水印的嵌入和提取,并对算法的不可见性、鲁棒性进行测试。

具体要求:

(1)熟悉和掌握MATLAB程序设计方法;

(2)学习和熟悉MATLAB图像处理工具箱;

(3)学会运用MATLAB工具箱对图像进行处理和分析;

(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 )的某些特性(如频率的掩蔽特性)可以更方便地结合到水印编码过程中;频域法可与国际数据压缩标准兼容,从而实现在压缩域水印生成算法(G) 数字水印(W )

原始载体数据(J) 水印嵌入算法(E ) 私钥/公钥(K)

嵌入水印后的数据(I W ) 待检测数据(I W ) 水印检测算法(D ) 私钥/公钥(K)

估计水印(W )/相似度检测(Sim )

数字水印(W)/原始数据(I )

(compressed domain)内的水印编码。

3.2.1 DCT法

对原始信号做DCT的算法:Cox和Piva等人提出的DCT技术的经典之作。Cox利用随机数发生器产生标准正态序列作为水印信息对图像进行整体DCT变换后,选取除去DC 系数之外部分较低频率系数叠加水印信息;Piva则修改整幅图像的中频部分。

对原始信号分块后,再作DCT的算法:Hsu和Wu把图像进行8*8分块,将一个二进制序列作为水印放入DCT的中频区;有些学者则计算整个图像的DCT,把一个实数序列嵌入DCT的中频系数上。选择中频区的好处是一方面尽量减少嵌入信息对图像主观视觉的影响;同时,尽量避免有损压缩对水印信息可能带来的损失。

还有一种DCT方法就是把水印信息嵌入到高频系数上,但是采用这种方法,抗压缩性非常差。

3.2.2 其他方法

其它变换域还有Fourier-mellin域、Fourier变换域、分形或WP(Wavelet Package)等。以上的变换域算法计算量都非常大,编程实现这些变换和逆变换也需要好好下一番功夫,由此造成研究人员把大量的时间和精力浪费在与水印算法研究无关的问题上。3.3 实际需要考虑的问题

在数字水印技术中,水印的数据量和鲁棒性构成了一对基本矛盾。从主观上讲,理想的水印算法应该既能隐藏大量数据,又可以抗各种信道噪声和信号变形。然而在实际中,这两个指标往往不能同时实现,不过这并不会影响数字水印技术的应用,因为实际应用一般只偏重其中的一个方面。如果是为了隐蔽通信,数据量显然是最重要的,由于通信方式极为隐蔽,遭遇敌方篡改攻击的可能性很小,因而对鲁棒性要求不高。但对保证数据安全来说,情况恰恰相反,各种保密的数据随时面临着被盗取和篡改的危险,所以鲁棒性是十分重要的,此时,隐藏数据量的要求居于次要地位。

3.3.1 不可见性

对于以模拟方式存储和分发的信息(如电视节目),或是以物理形式存储的信息(如报刊、杂志),用可见的标志就足以表明其所有权。但在数字方式下,标志信息极易被修改或擦除。因此应根据多媒体信息的类型和几何特性,利用用户提供的密钥将水印隐藏到一系列随机产生的位置中,使人无法察觉。图3.3左侧为原始图像,右侧为嵌入水印后的图像。

图3.3 原始图像与嵌入水印后的图像对比

3.3.2 鲁棒性

水印必须对一般的信号处理操作(如滤波、平滑、增强、有失真压缩等)、删除攻击、迷惑攻击等具有鲁棒性。除非对数字水印具有足够的先验知识,任何破坏和消除水印的企图都将严重破坏多媒体信息的质量。

3.3.3 水印容量

嵌入的水印信息必须足以表示多媒体内容的创建者或所有者的标志信息,或是购买者的序列号。这样在发生版权纠纷时,创建者或所有者的信息用于标示数据的版权所有者,而序列号用于标示违反协议而为盗版提供多媒体数据的用户。

数字水印在多媒体信息安全中的另一个重要应用就是内容的真实性鉴定(即认证)。当多媒体内容发生改变时,具有较强的敏感性的易损水印(Fragile watermarking)会随之发生一定程度的改变,从而可以鉴定原始数据是否被篡改。

3.3.4 安全性

水印的安全性要求未授权者不能发现数字作品中含有水印信息。或者算法安全性仅仅依赖于密钥而不依赖于算法的保密性。因此在没有密钥的情况下,未授权者即使知道含有水印信息和知道水印算法,也不能提取出水印信息或者破坏水印信息。另外算法还应该能够抵抗合谋攻击。

由于水印特性的要求对应用的依赖型很强,恰当的评价准则和具体的应用有关。

4基于DCT变换仿真

4.1 算法原理

离散余弦变换(Diserete Cosine Transform)简称DCT变换。离散余弦变换是傅立叶变换的一种特殊情况,在傅立叶级数展开式中,如果被展开的函数是实偶函数,那么其傅立叶级数中只包含余弦项,再将其离散化可导出离散余弦变换,因此余弦变换与傅里叶变换一样有明确的物理意义,DCT变换避免了傅里叶变换中的复数运算,它是基于实数的正交变换。

DCT变换域数字水印算法的基本原理是将空域图像变成频域,然后将水印信息嵌入其直流项之中,最后将频域转换成空域以完成图片的水印的嵌入。其主要思想是:在DCT 变换域上选择中、低频系数叠加水印信息,因为人眼的感觉主要集中在中、低频段,攻击者破坏水印时,不可避免地会引起图像质量的严重下降,而且一般的图像处理也不会改变这部分数据。再者,由于JPEG、MPEG等压缩算法的核心是在DCT变换域上进行量化,故通过巧妙的融合水印和量化过程,可以使水印抵御一定的有损压缩。此外,DCT 变换域系数的统计分布有比较好的数学模型,可以从理论上估计水印的信息量。基于DCT 变换的数字水印在逆变换时会散布在整个图像空间中,故水印不像空间域技术那样易受到裁剪、低通滤波等攻击的影响,具有鲁棒性高、隐蔽性好的特点。

4.1.1 准备工作

首先要读入一幅待嵌入的原始图片I=f1(x,y)以及一幅水印图M=f2(x,y)。由于DCT 法需要给原图像进行8*8分块,所以为了便于将一个二进制序列作为水印放入DCT,最好让原图像的行x与列y象素数可以被8整除。如果不能整除需要将x/8与y/8的结果进行取整,其取法遵循向下取整原则。在整除的情况下,对于水印图像,它的行宽不得大于x/8列长不得大于y/8。取x和y均为256即256*256象素,水印图为32*32象素。由此可以看到,整个原图可以划分为x*y/64=1024个变换块如图4.1。

图4.1 划分变换块

每个块的位置计为(m,n),那么所取的水印图像的每一个象素点可以对应一个变换

块进行嵌入。

4.1.2 选取8*8变换块

下面将原图像的每个8*8块分别作DCT变换,在此之前我们需要知道每个块中所包含象素点的坐标。通过图4.1我们不难总结出规律,即:所取(m,n)快中的左上点的行坐标为x=(m-1)*8+1而左上点的列坐标为y=(n-1)*8+1如图4.2。

图4.2 像素点坐标

由此又可推出该块中所有象素点的坐标,用MATLAB的语句来表示可以写成block_dct1=I(x:x+block-1,y:y+block-1),这样block_dct1矩阵用来表示该块所有象素的值。之后对该块进行DCT变换,从而将空域图像8*8块矩阵变为频域8*8块矩阵。4.1.3 边界自适应

所谓边界自适应,也就是需要根据图像块的边缘信息密度自适应地调整嵌入强度,由于边界处的高频分量较高,相对低频分量不明显,所以在地频分量中嵌入的水印图像的强度应当比较大。同理在非边界区域嵌入的强度应当比较小。在这里我们取常量Alpha1=0.02作为非边界区的嵌入强度;Alpha2=0.1作为边界区的嵌入强度。关于区图像边界的问题可以通过MATLAB函数edge实现,这里另BW=edge(I,'prewitt')其中BW表示边缘图像的矩阵。要说明的是,首先边缘图像是二值图像,白色处表示原图像的边界。其次,edge函数中的I必须是灰度图像,如果I取的是彩色图像的话,就必须先将彩色图像变成灰度图像再取边界。

4.1.4 DCT变换与嵌入

首先,要检测变换块是否含有边界,可以将边界图像与原图相对应位置的象素块提出,将块中所有象素的值(只含0,1)求和的方法检测它是否含有边界,不妨设置一个

阈值等于3,即该块中含有三个或以上的边界点就认为该块含有较多的边界信息,通过边界自适应的原理应当将较大的强度值嵌入。

然后,需要将每一个8*8块进行DCT变换,并将变换后的直流分量与强度值和水印图像相应点象素的信息相乘。在这里需要指出的是为了保证提取算法的简单可以令水印图像象素的值减一个比较小的值。

这一步用MATLAB来实现可以用block_dct1=dct2(block_dct1)分别将8*8块进行二维DCT变换,block_dct1(1,1)=block_dct1(1,1)*(1+Alpha*(mark(m,n)-0.1))其中的mark表示水印图像的象素值,将它嵌入块的直流项中。

4.1.5 恢复空域

将嵌入后的块分别进行反DCT变换,并且按顺序存回I矩阵,这时的I就是嵌入水印后的图像。

4.2 嵌入算法扩展

上面的方法一般只能对一幅灰度图像嵌入一幅二值图像,在下面将进行彩色图像嵌入三幅二值图像或一幅8色彩色图像的方法。

4.2.1 RGB彩色图像三个矩阵的划分

由于所有的RGB彩色图像都是由红绿蓝三个颜色组成的,在存储中这三个图像也是分为3个矩阵存储的,那么我们就可以将每个矩阵视为一个灰度,并且每个灰度图像中都可以分别潜入一个水印图像。

1、彩色图像的边缘图像

由于edge函数中的I必须是灰度图像,所以要想用GRAY=rgb2gray(I)语句将彩色图像变成灰度图像,再将灰度图像GRAY取其边界图像。

2、彩色图像分层

在MATLAB中,将彩色RGB图像读入I后,不同于灰度图像,I矩阵是一个三维矩阵它可以表示为I(a,b,c)其中当c=1时,I(a,b,1)表示彩色图像中红色分量的矩阵,同样的,I(a,b,2)、I(a,b,3)分别表示彩色图像中绿色和蓝色分量的矩阵。在分层嵌入的时候,表示原图像矩阵就需要加入第三维分量c的值,否则MATLAB会默认c=1。

这里需要注意的是,在新图像的生成的时候,要将R、G、B三个矩阵全部存入输出的矩阵,否则会缺色。

4.2.2 八色彩色水印

类似于上面的原理,作为水印的彩色图像也分为R,G,B三层,每层可以作为一幅水印图像分别嵌入原图像的矩阵中。提取的时候只要将提取出的三个水印图像存入一个三维矩阵即使一幅彩色图像。

但是这里要注意的是所用的水印图像的R、G、B分量分别只有0、1两个值。所以如果使用的彩色图像不当将会影响嵌入效果,甚至无法提取。

4.3 水印的提取

这里的水印提取方法可以看作是嵌入的反变换,由于在频域的8*8块的直流量中乘上了与水印信息有关的系数,那么同样我们可以通过原图像与水印图像8*8块直流分量的值相除得到的商即是与水印图像相关的值,由于嵌入时水印图像值只含0、1,而且我们在这个值得后面又减了一个小的常数,因此将除得的商减去1记为cc,这样就可以在嵌入的水印值为0的时候cc<0,反之在嵌入的水印值为1的时候cc>0。这样就可以绘制出水印图像。

4.4 仿真程序

%定义常量

size=256; %图像大小:256*256

block=8; %块大小:8*8

%决定了水印图片不大于32*32

blockno=size/block; %每行块的个数

LENGTH=size*size/64; %总块的个数1024

Alpha1=0.03; %非边界处的强度因子

Alpha2=0.1; %边界处的强度因子

T1=3; %域值为三个边界点

I=zeros(size,size); %原始图像

BW=zeros(size,size); %原始图像的边缘图

block_dct1=zeros(block,block);

mark=imread('D:\水印图','bmp'); %沈阳理工大学字样彩色水印图

mark1=logical(mark(:,:,1));

mark2=logical(mark(:,:,2));

mark3=logical(mark(:,:,3));

figure(1)

subplot(2,2,1);

imshow(mark);title('水印图像');

%显示原图

subplot(2,2,2);I=imread('D:\原始图','bmp'); %读入彩色图像

imshow(I);title('原始图像:I');

%显示prewitt为算子的边缘图

GRAY=rgb2gray(I); %变灰度要用三位数,即彩色图片

BW=edge(GRAY,'prewitt'); %取边界,用于边界自适应

subplot(2,2,3);imshow(BW);

title('原始图像的边缘');

%嵌入水印

for m=1:blockno; %到第(m,n)个块

for n=1:blockno;

x=(m-1)*block+1; %该块的起始像素

y=(n-1)*block+1;

block_dct1=I(x:x+block-1,y:y+block-1); %取该块所有像素

block_dct1=dct2(block_dct1); %变换

%第二维

block_dct2=I(x:x+block-1,y:y+block-1,2); %取该块所有像素

block_dct2=dct2(block_dct2); %变换

%第三维

block_dct3=I(x:x+block-1,y:y+block-1,3); %取该块所有像素

block_dct3=dct2(block_dct3); %变换

BW_8_8=BW(x:x+block-1,y:y+block-1); %取边缘的对应块像素

if m<=1|n<=1;%m或n小于等于1时,

T=0;

else

T=sum(BW_8_8); %列取和

T=sum(T); %对整个BW_8_8中的数字取和

%取和

end

if T>T1; %如果改为<则意味着高频区嵌入了低能量,低频区嵌入了高能量。所以在低频区嵌入的过高能量会是不该看出的水印显示出来

%因此这里表示着边缘自适应性

Alpha=Alpha2; %0.1

else

Alpha=Alpha1; %0.03

end

block_dct1(1,1)=block_dct1(1,1)*(1+Alpha*(mark1(m,n)-1)); %对直流进行嵌入block_dct2(1,1)=block_dct2(1,1)*(1+Alpha*(mark2(m,n)-1)); %第二层

block_dct3(1,1)=block_dct3(1,1)*(1+Alpha*(mark3(m,n)-1)); %第三层block_dct1=idct2(block_dct1); %变回空域

block_dct2=idct2(block_dct2); %第二层

block_dct3=idct2(block_dct3); %第三层

I(x:x+block-1,y:y+block-1)=block_dct1; %贴回原图像

I(x:x+block-1,y:y+block-1,2)=block_dct2; %第二层

I(x:x+block-1,y:y+block-1,3)=block_dct3; %第三层

end

end

%显示嵌入水印后的图像

subplot(2,2,4);imshow(I);title('嵌入水印后的图像');

imwrite(I,'D:\输出图.bmp','bmp');

figure(2);subplot(2,2,1);imshow(mark(:,:,1));title('原水印的第一层'); subplot(2,2,2);imshow(mark(:,:,2));title('原水印的第二层');

subplot(2,2,3);imshow(mark(:,:,3));title('原水印的第三层');

imwrite(I,'D:\压缩图.jpg','jpg','quality',90); %压缩

%通过原图片对比提取水印

I=imread('D:\原始图.bmp','bmp');

J=imread('D:\输出图.bmp','bmp');

K=zeros(32,32,3); %水印图片为32*32

for q=1:blockno;

for p=1:blockno;

x=(p-1)*block+1;

y=(q-1)*block+1;

BLOCK1=I(x:x+block-1,y:y+block-1); %取无水印图的块

BLOCK2=J(x:x+block-1,y:y+block-1); %取带水印图的块

BLOCK1=dct2(BLOCK1);

BLOCK2=dct2(BLOCK2);

a=BLOCK2(1,1)/BLOCK1(1,1)-1;

%第二层

BLOCK12=I(x:x+block-1,y:y+block-1,2);

BLOCK22=J(x:x+block-1,y:y+block-1,2);

BLOCK12=dct2(BLOCK12);

BLOCK22=dct2(BLOCK22);

b=BLOCK22(1,1)/BLOCK12(1,1)-1;

%第三层

BLOCK13=I(x:x+block-1,y:y+block-1,3);

BLOCK23=J(x:x+block-1,y:y+block-1,3); BLOCK13=dct2(BLOCK13);

BLOCK23=dct2(BLOCK23);

c=BLOCK23(1,1)/BLOCK13(1,1)-1;

if a<0

W(p,q)=0; %恢复水印图像

else

W(p,q)=1;

end

if b<0

W2(p,q)=0;

else

W2(p,q)=1;

end

if c<0

W3(p,q)=0;

else

W3(p,q)=1;

end

end

end

figure(3);

subplot(2,2,1);imshow(W);

title('从第一层提取的水印(红R)'); %0表示黑色subplot(2,2,2);imshow(W2);

title('从第二层提取的水印(绿G)');

subplot(2,2,3);imshow(W3);

title('从第三层提取的水印(蓝B)');

K(:,:,1)=W;

K(:,:,2)=W2;

K(:,:,3)=W3;

subplot(2,2,4);imshow(K);title('合并的彩图');

%检测压缩后的水印图像

J=imread('D:\压缩图.jpg','jpg');

for q=1:blockno;

for p=1:blockno;

x=(p-1)*block+1;

y=(q-1)*block+1;

BLOCK1=I(x:x+block-1,y:y+block-1); %取无水印图的块BLOCK2=J(x:x+block-1,y:y+block-1); %取带水印图的块BLOCK1=dct2(BLOCK1);

BLOCK2=dct2(BLOCK2);

a=BLOCK2(1,1)/BLOCK1(1,1)-1;

%第二层

BLOCK12=I(x:x+block-1,y:y+block-1,2);

BLOCK22=J(x:x+block-1,y:y+block-1,2);

BLOCK12=dct2(BLOCK12);

BLOCK22=dct2(BLOCK22);

b=BLOCK22(1,1)/BLOCK12(1,1)-1;

%第三层

BLOCK13=I(x:x+block-1,y:y+block-1,3);

BLOCK23=J(x:x+block-1,y:y+block-1,3);

BLOCK13=dct2(BLOCK13);

BLOCK23=dct2(BLOCK23);

c=BLOCK23(1,1)/BLOCK13(1,1)-1;

if a<0

W(p,q)=0;

else

W(p,q)=1;

end

if b<0

W2(p,q)=0;

else

W2(p,q)=1;

end

if c<0

W3(p,q)=0;

else

W3(p,q)=1;

end

end

end

K(:,:,1)=W;K(:,:,2)=W2;K(:,:,3)=W3;

figure(4);imshow(K);title('90压缩的提取');

5结果分析

图5.1 原始图像与嵌入水印后的图像对比

原始图像与嵌入水印后的图像仅有微小的差别,人眼基本分辨不出两图像的任何不同。这说明DCT域水印算法具有较好的不可见性,基本不影响视觉质量,同时也很好的达到了透明性的要求。

图5.2 通过与原图片对比提取的水印

图5.3 分层提取的水印图像

在分层提取水印图像时,出现了部分误差,部分图像像素点出现了消失,组成彩色水印还原水印图像时,已经不能还原出原本彩色图像。

图5.4 检测压缩后的水印图像结果

由以上结果可以看出,该方法在水印嵌入和提取中方法比较简单。这个方法对于压缩攻击的抗性很低,可以说是脆弱的,很明显在90质量的压缩下已经很难分辨水印内容。

实验结果在某方面验证了该算法的有效性、可靠性、抗攻击性、鲁棒性和不可见性,能够为数字媒体信息在防伪、防篡改、认证、保障数据安全和完整性等方面提供有效的技术保障。

基于DCT的数字水印算法的研究

基于DCT的数字水印算法的研究Research of Digital Watermarking Algorithm Based on Discrete Cosine Transform

摘要 近年来,由于网络的迅猛发展,越来越多的多媒体信息已经走向数字化。人们可以从网上更加方便的取得各类信息,可以更加方便的对别人的作品进行篡改,复制等,由此带来的版权维护问题也日益严重。版权维护也越来越受到人们的关注了,数字水印技术是解决这类问题最有效的手段,所以数字水印技术现在已然成为了研究的热点。 本文是对基于DCT域数字水印算法的研究,简要介绍数字水印的发展,基本原理等,在MATLAB环境中完成两种基于DCT域数字水印算法的设计。第一种是基于DCT图像全局变换的数字水印算法,而第二种则可以认为是第一种算法的改进,是基于DCT域分块水印算法。然后对于水印系统的鲁棒性,进行一些攻击测试,有盐噪声攻击、高斯噪声攻击、旋转攻击、剪切攻击、JPEG有损压缩攻击等,对比分析哪种算法更好。虽然说该课题只不过是对现有的数字水印技术进行了一个比较简单的研究,但是让我们充分认识到了数字水印技术对我们日常生活的重要性。 关键词:数字水印DCT 攻击测试

Abstract In recent years,with the rapid development of the network,more and more multimedia information has been digitized.People can obtain various kinds of information from the Internet more convenient, the work of others will be altered and copied more convenient, copyright protection issues are also increasingly serious. People are more and more concerned about copyright protection, digital watermarking technology is the most effective means to solve these problems, so the digital watermarking technology has become a hot topic now. This article is to study based on DCT-domain digital watermarking algorithm, introduced the development of digital watermarking and the basic principles etc,completed two design schemes based on DCT-domain digital watermarking algorithm in MATLAB environment. The first one is based on digital image watermarking algorithm global transformation of DCT, while the second one can be considered to improve the first algorithm, which is based on DCT-domain block watermarking algorithm. Then for the robustness of the watermarking system, we performed some attack test, salt noise attack, Gaussian noise attack and spin attack, cropping attack, JPEG compression attack, in order to prove which is better. Although the subject is a relatively simple research for the existing digital watermarking technique , but it let us aware of the importance of digital watermarking technology in our daily life. Key words:Digital watermarking DCT Robustness Attack test

基于Matlab的数字水印设计——基于DCT域的水印实现

摘要 数字水印(Digital Watermark)技术是指用信号处理的方法在数字化的多媒体数据中嵌入隐蔽的标记,这种标记通常是不可见的,只有通过专用的检测器或阅读器才能提取。数字水印是信息隐藏技术的一个重要研究方向。随着数字水印技术的发展,数字水印的应用领域也得到了扩展,数字水印的基本应用领域是版权保护、隐藏标识、认证和安全不可见通信。 当数字水印应用于版权保护时,潜在的应用市场在于电子商务、在线或离线地分发多媒体内容以及大规模的广播服务。数字水印用于隐藏标识时,可在医学、制图、数字成像、数字图像监控、多媒体索引和基于内容的检索等领域得到应用。数字水印的认证方面主要ID卡、信用卡、ATM卡等上面数字水印的安全不可见通信将在国防和情报部门得到广泛的应用。 本文主要是根据所学的数字图象处理知识,在MATLAB环境下,通过系统编程的方式,建立并实现基于DCT域的数字水印加密系统。该系统主要包含数字水印的嵌入与提取,仿真结果表明,数字水印算法具有有效性、可靠性、抗攻击性、鲁棒性和不可见性,能够为数字媒体信息在防伪、防篡改、认证、保障数据安全和完整性等方面提供有效的技术保障。 关键词:数字水印;MATLAB;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)

数字水印技术及其应用综述3上课讲义

数字水印技术及其应 用综述3

数字水印技术及其应用综述 随着Internet 网络的快速发展, 越来越多的多媒体数字产品(包括图像、音频、视频等形式的产品)在网络上发布, 人们可以非常方便快捷地从网络上获取数字多媒体产品, 因此,数字多媒体的信息安全、版权保护和完整性认证问题就成为迫切需要解决的一个重要问题。数水印( digital watermarking)技术是目前信息安全技术领域的一个新方向, 是一种可以在开放网络环境下保护版权和认证来源及完整性的新型技术, 它在篡改鉴定、数据的分级访问、数据跟踪和检测、商业和视频广播、Internet 数字媒体的服务付费、电子商务认证鉴定等方面具有十分广阔的应用前景。自1993 年以来, 该技术己经引起人们的浓厚兴趣, 并日益成为国际上非常活跃的研究领域, 受到国际学术界和企业界的高度关注, 而且数字水印技术是一门新兴的多学科交叉的应用技术, 它涉及了不同学科领域的思想和理论, 如信号处理、信息论、编码理论、密码学、检测理论、随机理论、通信理论、对策论、计算机科学及网络技术、算法设计等技术。因此, 数字水印技术的研究无论是从理论上还是从应用上都具有重要意义。 1 数字水印的特点、分类及其应用 1.1 数字水印的基本特点 数字水印的基本思想是在数字图像、音频和视频等多媒体数字产品中嵌入秘密信息, 以保护数字产品的版权,证明产品的真实性, 跟踪盗版行为或提供产品的附加信息等。数字水印系统通常具有下列几方面的特点: (1)鲁棒性即图像水印抵抗常见图像处理操作的能力, 也就是说含水印图像经历无意修改而保留水印信息的能力。一般说来, 当含水印图像经过一些基本处理(如噪声滤波、平滑、增强、有损压缩, 平移、旋转、缩放和裁剪等)后, 仍可检测出水印。 (2)透明性即不可见性, 水印的存在不应明显干扰载体的图像数据, 数字水印的嵌入不应使得原始数据发生可感知的改变, 也不能使得载体数据在质量上发生可以感觉到的失真。 (3)安全性水印算法抵抗恶意攻击的能力。即它必须能承受一定程度的人为攻击, 而使水印信息不会被删除、破坏或窃取。应该保证非授权用户无法检测或破坏水印。数字水印应该难以被伪造或者加工,并且, 未经授权的个体不得阅读和修改水印, 理想情况是未经授权的客户将不能检测到产品中是否有水印存在。 (4)数据容量水印应该包含相当的数据容量,以满足多样化的需要。 (5)可证明性在实际的应用过程 1.2 数字水印的分类 (1)依据所嵌入的载体不同, 可分为图像水印、音频水印、视频水印、文本水印和网络水印等。

数字水印基本原理

介绍了数字水印技术的基本原理 随着信息技术和计算机网络的飞速发展,人们不但可以通过互联网和CD-ROM方便快捷地获得多媒体信息,还可以得到与原始数据完全相同的复制品,由此引发的盗版问题和版权纷争已成为日益严重的社会问题。因此,数字多媒体产品的水印处理技术已经成为近年来研究的热点领域之一。 虽然数字水印技术近几年得到长足发展,但方向主要集中于静止图像。由于包括时间域掩蔽效应等特性在内的更为精确的人眼视觉模型尚未完全建立,视频水印技术的发展滞后于静止图像水印技术。另一方面,由于针对视频水印的特殊攻击形式的出现,为视频水印提出了一些区别于静止图像水印的独特要求。 本文分析了MPEG-4视频结构的特点,提出了一种基于扩展频谱的视频数字水印改进方案,并给出了应用实例。 1视频数字水印技术简介 1.1数字水印技术介绍 数字水印技术通过一定的算法将一些标志性信息直接嵌入到多媒体内容当中,但不影响原内容的价值和使用,并且不能被人的感知系统觉察或注意到。与传统的加密技术不同,数字水印技术并不能阻止盗

版活动的发生,但可以判别对象是否受到保护,监视被保护数据的传播,鉴别真伪,解决版权纠纷并为法庭提供认证证据。为了给攻击者增加去除水印的难度,目前大多数水印制作方案都采用密码学中的加密体系来加强,在水印嵌入、提取时采用一种密钥,甚至几种密钥联合使用。水印嵌入和提取的一般方法如图1所示。 1.2视频数字水印设计应考虑的几个方面 ·水印容量:嵌入的水印信息必须足以标识多媒体内容的购买者或所有者。 ·不可察觉性:嵌入在视频数据中的数字水印应该不可见或不可察觉。·鲁棒性?押在不明显降低视频质量的条件下,水印很难除去。 ·盲检测:水印检测时不需要原始视频,因为保存所有的原始视频几乎是不可能的。 ·篡改提示:当多媒体内容发生改变时,通过水印提取算法,能够敏感地检测到原始数据是否被篡改。 1.3视频数字水印方案选择 通过分析现有的数字视频编解码系统,可以将目前MPEG-4视频水印的嵌入与提取方案分为以下几类,如图2所示。

数字水印技术及基于MATLAB的快速实现

2011年3月刊计算机工程应用技术信息与电脑 China Computer&Communication 1. 引言 多媒体及网络的迅速发展使得多媒体信息的交流和传输变得更 加简单和快捷,然而,这也使盗版者能以低廉的成本复制及传播未经 授权的数字产品,这种对数字产品保护和信息安全的迫切需求,导致 了数字水印技术成为多媒体信息安全领域的一个热点问题。数字水印 技术是在不影响宿主媒体主观质量的情况下,在宿主媒体(文本、图 像、视频、音频)中嵌入不易被人察觉的标识信息,用以证明原创作 者对其作品的所有权,并作为鉴定、起诉非法侵权的证据。 2. 数字水印的特征 一般认为数字水印应具有以下特征: (1) 安全性。数字水印应该是安全、难以被篡改的。当数字作品 发生变化时,数字水印应当也相应发生变化;同时,未经授权的个人 不得修改水印,理论上是未经授权的用户不能检测到产品中是否含有 水印。 (2) 鲁棒性。当被保护的数据在经过攻击后,嵌入的水印信息仍 能保持好的完整性并能以一定的正确概率被检测到。这些可能的攻击 包括噪声、滤波、剪切、旋转和编码等。 (3) 不可感知性。数字水印的嵌入不应使得原始作品发生可以感 知的变化,也不能使得被保护数据在质量上发生可以感觉到的失真。 (4) 可证明性。在多媒体作品的实际应用过程中可能需要多次加 入水印,这时水印系统必须能够允许水印被多次嵌入到被保护的数 据,而且每个水印均能独立地被证明。 (5) 无歧义性。恢复出的水印或对水印判决结果能够表明版权的 惟一,不会发生多重版权纠纷问题。 3. 数字水印的基本原理 通用的水印技术包含两个方面:水印的嵌入和水印的提取或检 测,如图1和图2所示。 图1 水印信号嵌入 图2 水印信号提取或检测 4. 数字水印的研究现状 4.1 文本水印 文本水印就是将代表著作人身份的信息(水印)嵌入到电子出版物 中,在产生版权纠纷时来验证版权的归属。其主要分为三大类:基于 文档结构的水印方法、基于自然语言处理技术的水印方法、基于传统 图像的水印方法。 基于文档结构的各种水印方法都只是提留在文本的表层,无法抵 抗对于文本结构和格式的攻击,简单的重新录入攻击就能使之失效, 因此这些水印方法普遍存在鲁棒性差的缺点。自然语言文本水印方法 相对提高了抗攻击的能力,但普遍存在容量不足的问题。基于传统图 像的文本水印普遍存在鲁棒性不高、操作复杂的缺点。 4.2 图像水印 根据水印的实现过程,图像水印算法可分为空域算法和变换域算 法。空域算法是通过直接改变原始图像的像素值来嵌入水印,通常具 有较快的速度,但鲁棒性差,且水印容量也会受到限制;变换域算法 是通过改变某些变换系数来嵌入水印,通常具有很好的鲁棒性和不可 见性。其实现一般是基于图像变换,如DCT、DFT、DWT等。重点介 绍一下变换域算法。 4.2.1 离散傅里叶变换 (DFT) 该方法是利用图像的DFT来嵌入信息。通信理论中调相信号的抗 干扰能力比调幅信号的抗干扰能力强,同样在图像中利用相位信息嵌 入的水印也比用幅值信息嵌入的水印更稳健。实验表明该方法的抗压 缩能力比较弱。 4.2.2 离散余弦变换 (DCT) DCT能把空间域的图像转换到变换域上进行研究,从而能很容易 了解到图像的各空间频域成分,进行相应处理。基于DCT的水印方法 与基于DFT的水印方法相比有较好的鲁棒性,但是无法做到对图像信 号内容的自适应,因此往往会造成对图像特征的明显损害,不可感知 性不是最佳。 4.2.3 离散小波变换 (DWT) DWT是一种时间---频率信号的多分辨率分析方法,在时频两域 都具有表征信号局部特征的能力。实验表明,与DCT、DFT变换相比 较,基于DWT的水印算法的鲁棒性最优,且与JPEG2000、MPEG4压 缩标准兼容,利用DWT产生的水印具有良好的视觉效果和抵抗多种 攻击的能力,且不可感知性最好。 4.3 音频水印 音频水印利用音频文件的冗余信息和人耳听觉系统的特点来嵌入 水印,其可以保护声音数字产品不被随意复制和篡改,如CD唱片, 广播电台的节目内容等。音频水印的三种基本方法:扩频嵌入方 法、回声隐藏方法和相位编码方法。 4.4 视频水印 视频水印是通过对视频载体的时间和空间冗余来嵌入水印,其既 不影响视频质量,又能达到保护节目制作者的合法权益和控制数字产 品的复制。视频水印从算法要求上同图像水印有许多相似之处,但视 频水印也有一些独特之处,如能够在压缩和未压缩的格式下实时完成 水印的检测,对MPEG压缩、A/D和D/A转换等都有较好的稳健性。 数字水印技术涉及到通信理论、编码理论、噪声理论、视听觉 感知理论、扩频技术、信号处理技术、数字图像处理技术、多媒体技 术、模式识别技术、算法设计等理论,用到经典的DFT离散傅立叶变数字水印技术及基于MATLAB的快速实现 张 巍1 时宏伟2 (1.78179部队,四川成都 610011;2. 川大智胜,四川成都 610045) 摘要:数字水印是近几年来出现的数字产品版权保护技术,是当前国际学术界的研究热点.该文论述了数字水印的提出及研究现状、水印的基本原理和算法、水印的分类等情况,并介绍了一种可以快速上手的高效的实用语言——MATLAB,同时给出了一个用MATLAB工具在静止图像上嵌入水印的实例。 关键词:数字水印;MATLAB;DCT 中图分类号:TP39 文献标识码:A 文章编号:1003-9767(2011)03-0130-02

数字水印技术:概念、应用及现状

数字水印技术:概念、应用及现状 一、引言 随着信息时代的到来,特别是Internet的普及,信息的安全保护问题日益突出。当前的信息安全技术基本上都以密码学理论为基础,无论采用传统的密钥系统还是公钥系统,其保护方式都是控制文件的存取,即将文件加密成密文,使非法用户不能解读。但随着计算机处理能力的快速提高,这种通过不断增加密钥长度来提高系统秘密级别的方法变得越来越不安全。 另一方面,多媒体技术已被广泛应用,需要进行加密、认证和版权保护的声像数据也越来越多。数字化的声像数据从本质上说就是数字信号,如果对这类数据也采用密码加密方式,则其本身的信号属性就被忽略了。最近几年,许多研究人员放弃了传统密码学的技术路线,尝试用各种信号处理方法对声像数据进行隐藏加密,并将该技术用于制作多媒体的“数字水印”。 二、认识数字水印 数字水印(Digital Watermark)技术是指用信号处理的方法在数字化的多媒体数据中嵌入隐蔽的标记,这种标记通常是不可见的,只有通过专用的检测器或阅读器才能提取。数字水印是信息隐藏技术的一个重要研究方向。 数字水印技术的基本特性: 1. 鲁棒性(robustness):所谓鲁棒性是指在经历多种无意或有意的信号处理过程后,数字水印仍能保持完整性或仍能被准确鉴别。可能的信号处理过程包括信道噪声、滤波、数/模与模/数转换、重采样、剪切、位移、尺度变化以及有损压缩编码等。 2.安全性(security):指隐藏算法有较强的抗攻击能力,即它必须能够承受一定程度的人为攻击,而使隐藏信息不会被破坏。 3.透明性(invisibility):利用人类视觉系统或人类听觉系统属性,经过一系列隐藏处理,使目标数据没有明显的降质现象,而隐藏的数据却无法人为地看见或听见。 ***典型的数字水印系统模型: 图 1为水印信号嵌入模型,其功能是完成将水印信号加入原始数据中;图 2为水印信号检测模型,用以判断某一数据中是否含有指定的水印信号。

基于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是矩阵实验室(Matrix Laboratory)的简称,和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。 2.2 MATLAB应用 MATLAB 产品族可以用来进行以下各种工作: 1)数值分析 2)数值和符号计算 3)工程与科学绘图

数字水印综合实验系统的设计与实现--灰度图像水印的嵌入与提取.

数字水印综合实验系统的设计与实现--灰度图像 水印的嵌入与提取 目录前言11 概述21.1 相关知识21.2 数字水印的定义及分类31.3 数字水印技术的原理及实现的典型算法41.4 水印技术的要求,常受到的攻击71.5 水印的主要应用领域81.6 数字水印技术的国内外研究现状92 相关理论知识112.1 小波变换112.1.1 小波变换的含义112.1.2 提出小波变换的原因112.1.3 小波变换数字水印算法及其优点122.1.4 2维信号的Mallat的算法122.2 视觉系统特性研 究132.2.1 人眼的构造132.2.2 人眼的视觉特性152.3 图像的纹理特征163 水印图像预处理183.1 引言183.2 约瑟夫图像置乱193.3 置乱度与图像质量214 水印的嵌入方案244.1 水印嵌入算 法254.2 水印提取算法265 实验及实验结果275.1 水印的嵌入实 验275.2 水印的提取实验285.3 攻击实验295.3.1 缩放295.3.2 噪声295.3.3 压缩305.3.4 剪切315.4 试验结果分析总结336 软件的详细介绍346.1 功能介绍346.2 登录窗口界面346.3 主要菜 单366.4 运行实例387 结论40参考文献41致谢42数字水印综合实验系统的设计与实现----灰度图像水印的嵌入与提取摘要:随着计算机和网络技术的飞速发展,数字图像、音频和视频产品愈来愈需要1种有效的版权保护方法。数字水印技术便是解决上述问题的关键技术之1。为了让更多 的人熟悉并快速掌握数字水印技术的基本理论和算法设计过程,设计1个数字水印综合实验系统是1个很好的解决方案。本文首先介绍了数字水印技术及其原理、特点、以及目前的应用状况,然后介绍如何利用约瑟夫置乱对水印图像进行置乱处理以加强水印的安全性,最后设计了1种水印嵌入与提取方案,并在此基础上设计1个水印图像和宿主图像都采用灰度图像的数字水印实验子系统。该系统主要完成灰度水印嵌入、灰度水印提取及灰度水印鲁棒性检测等实验。关键词:数字水印;图像置乱;离散小波变换;实验 Design and realization of digital watermark synthetic experiment system-----embedding and extracting of gray-scale image watermark Abstract: With the advent of the rapidly development of computer and network technology, many media, such as digital image, audio or video etc, need an effective solution urgently. Digital watermarking is a vital technology to solve foregoing problems. In order to let more people to master this technology rapidly, a perfect solution is to design a digital watermark synthetic experiment system. This thesis first introduce the theory, characteristic and application of digital watermarking, then present how to disorder the gray-scale image watermark using Josephus disorder algorithm for enhancing the security of watermark. At last this thesis brings forward a solution of watermarking embedding and extracting and designs a digital watermark experiment subsystem, in which both watermark image and host image are gray-scale image. This subsystem mainly realizes three experimentations: gray-scale watermark embedding, gray-scale

基于MATLAB的数字水印算法实现

数字水印作为一门新的学科, 自 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′)。

数字水印技术DCT算法MATLAB源代码

%Name: Chris Shoemaker %Course: E ER-280 - Digital Watermarking %Project: Block DCT Based method, using comparision between mid-band coeffcients % Watermark Embeding clear all; % save start time start_time=cputime; k=50; % set minimum coeff difference blocksize=8; % set the size of the block in cover to be used for each bit in watermark % read in the cover object file_name='_lena_std_bw.bmp'; cover_object=double(imread(file_name)); % determine size of cover image Mc=size(cover_object,1); %Height Nc=size(cover_object,2); %Width % determine maximum message size based on cover object, and blocksize max_message=Mc*Nc/(blocksize^2); % read in the message image file_name='_copyright.bmp'; message=double(imread(file_name)); Mm=size(message,1); %Height Nm=size(message,2); %Width % reshape the message to a vector message=round(reshape(message,Mm*Nm,1)./256); % check that the message isn't too large for cover if (length(message) > max_message) error('Message too large to fit in Cover Object') end % pad the message out to the maximum message size with ones message_pad=ones(1,max_message); message_pad(1:length(message))=message; % generate shell of watermarked image watermarked_image=cover_object;

数字水印技术及其应用(精)

数字水印技术及其应用 引言 随着计算机通信技术的迅速发展,多媒体存储和传输技术的进步使存储和传输数字化信息成为可能,然而,这也使盗版者能以低廉的成本复制及传播未经授权的数字产品内容,出于对利益的考虑,数字产品的版权所有者迫切需要解决知识产权(Intellectual Property Rights)的保护问题。密码学的加解密技术是保护数字产品的一种方法,它能够保护数字产品安全传输,并可作为存取控制和征收费用的手段,但它不能保证数字产品解密后的盗版问题,因此,1995年,人们提出了信息伪装技术,其中,数字水印就是近年来比较热门的数字产权保护技术,下面我们主要谈谈数字水印技术的有关问题。 数字水印的定义 综合众多学者的定义和分析已有的数字水印方案,现给出数字水印的定义:数字水印是永久镶嵌在其它数据(宿主数据)中具有可鉴别性的数字信号或模式,而且并不影响宿主数据的可用性。作为数字水印技术基本上应当满足下面几个方面的要求:(1)安全性:数字水印的信息应是安全的,难以篡改或伪造,同时,应当有较低的误检测率,当宿主内容发生变法时,数字水印应当发生变化,从而可以检测原始数据的变更;(2)隐蔽性:数字水印应是不可知觉的,而且应不影响被保护数据的正常使用;(3)稳健性:数字水印必须难以被除去,如果只知道部分数字水印信息,那么试图除去或破坏数字水印将导致严重降质或不可用。同时,数字水印在一般信号处理和几何变换中应具有稳健性;(4)水印容量:嵌入的水印信息必须足以表示多媒体内容的创建者或所有者的标志信息,或购买者的序列号,这样有利于解决版权纠纷,保护数字产权合法拥有者的利益。 3 数字水印技术的基本原理 数字水印技术是通过一定的算法将一些标志性信息直接嵌到多媒体内容中,目前大多数水印制作方案都采用密码学中的加密(包括公开密钥、私有密钥)体系来加强,在水印的嵌入,提取时采用一种密钥,甚至几种密钥的联合使用。水印的嵌入和提取方法如图1、图2所示: 图1 数字水印嵌入过程

基于小波变换的数字水印算法研究

目录 摘要 (Ⅲ) Abstract (Ⅴ) 第1章绪论 (1) 1.1引言 (1) 1.2本文研究的目的及意义 (2) 1.3数字水印技术的国内外研究现状 (2) 第2章数字水印理论基础 (5) 2.1 数字水印的基本概念 (5) 2.2 数字水印的基本特征 (5) 2.3 数字水印的基本原理 (5) 2.4 数字水印的分类 (8) 2.5 数字水印典型算法(针对图像领域) (10) 2.6 数字水印的鲁棒性问题和攻击行为 (12) 2.7 数字水印应用领域 (13) 第3章小波分析理论基础 (17) 3.1小波分析的发展历程 (17) 3.2小波函数与小波变换 (18) 3.3离散小波变换 (20) 3.4 多分辨率分析 (22) 3.5实验环境:可实现数字水印技术的高效实用工具——Matlab (24) 第4章基于小波变换的数字水印算法 (25) 4.1算法描述 (25) 4.2实验结果及分析 (28) 4.3 本章小结 (36) 参考文献 (37) 致谢 (39) 附录 (41)

基于小波变换的数字水印算法研究 摘要 数字水印技术是目前信息安全技术领域的一个新方向,是一个在开放的网络环境下,保护版权和认证来源及完整性的新型技术。 本文针对基于小波变换的数字水印技术,提出了一种基于小波域的二值图像水印算法。该算法选择了检测结果直观、有特殊意义的二值图像作为原始水印,并在嵌入之前进行图像置乱预处理,以提高安全性和隐蔽性,兼顾了水印的不可见性和鲁棒性,利用多分辨率分析思想进行水印的嵌入与提取。通过大量的仿真实验,证明本文算法在保证水印不可见性的同时,对常见的图像处理如JPEG压缩、噪声、滤波、剪切等,均有较好的鲁棒性。 关键词:数字水印,小波变换,鲁棒性,不可见性,JPEG压缩

VC实现数字水印设计报告

计算机科学与技术学院信科专业综合实践设计报告 专业:电子信息科学与技术 班级:信科07-4班 设计题目: VC实现数字水印的加入与提取 成员:姚万华 指导教师: 2010年10月14日

课程设计指导教师评阅书 指导教师评语: 成绩:指导教师签字: 年月日

【摘要】: 当前,数字图像技术的主要研究热点之一是数字水印的应用。本文介绍了LSB算法的思想,利用 VC技术对数字图像水印LSB算法进行实现,并总结LSB算法的利弊,提出了可行的改进措施。 关键词:VC;图像处理;数字水印;LSB算法

一、前言 (9) 1.1背景 (10) 1.2数字水印的现状 (11) 2.3数字水印的应用 (12) 二、数字水印技术 (14) 2.1数字水印的起源、概念和基本原理 (14) 2.2数字水印的嵌入和提取 (15) 三、数字水印的典型算法 (16) 3.1最低有效位算法(LSB) (16) 3.2 Patchwork 算法 (16) 3.3纹理块映射编码 (16) 3.4 其他 (17) 四、LSB算法的VC实现 (17) 五、实验体会 (21) 参考书目: (21) 附录1:算法设计说明书 (21) 附录二:主要原程序 (23)

一、前言

1.1背景 随着网络通信的普及,许多传统媒体内容都向数字化转变,并且在电子商务中即将占据巨大的市场份额,如mP3的网上销售,数字影院的大力推行,网上图片、电子书籍销售等等。在无线领域,随着移动网络由第二代到第三代的演变,移动用户将能方便快速的访问因特网上数字媒体内容,基于有线或无线网络的数字媒体内容的影院即将是信息时代新的趋势。但是,数字媒体内容的安全问题恰恰制约着信息化进程,虽然成熟的密码学可以解决安全传递和访问控制,但是一旦解密后,数字媒体内容便可以随意的被拷贝、传播,它给媒体内容制造商造成了巨大的损失;同时,密文信息的传递也容易引起攻击者的注意。因此如何安全的传送信息就成了其中的关键,数字水印技术就成为开启这一难点的钥匙。 数字水印(digital water marking)是实现版权保护的有效办法,已成为多媒体信息安全研究领域的一个热点,也是信息隐藏技术研究领域的重要分支。它通过在原始数据中嵌入秘密信息—水印(water mark)来证实该数据的所有权。被嵌入的水印可以是一段文字、标识、序列号等。水印通常是不可见的或不可察的,它与原始数据(如图像、音频、视频数据等)紧密结合并隐藏其中,成为源数据不可分离的一部分,并可以经历一些不破坏源数据使用价值或商用价值的操作而存活下来。 数字水印技术除具备信息隐藏技术的一般特点外,还有着其固有的特点和研究方法。例如,从信息安全的保密角度而言,隐藏的信息如果被破坏掉,系统可以视为安全的,因为秘密信息并未泄露;但是,在数字水印系统中,隐藏信息的丢失意味着版权信息的丢失,从而失去了版权保护的功能,这一系统就是失败的。因此数字水印技术必须具有以下特性:安全性(嵌入在宿主数据中的水印是不可删除的,且能够提供完全的版权证据)、鲁棒性(水印对有意或无意的图像操作与失真具有一定的抵抗力)以及不可觉察性(水印对人的感觉器官应是不可觉察的,或者说是透明的)。水印算法识别被嵌入到保护对象中的所有者的有关信息(如注册的用户号码、产品标志或有意义的文字等),并能在需要的时候将其提取出来。水印可以用来判别对象是否受到保护,并能够监视被保护数据的传播、真伪鉴别以及非法拷贝控制等,这实际上是发展数字水印的基本动力。尽管版权保护是发展数字水印最重要的源动力,事实上人们还发现数字水印在真伪鉴别、隐藏通信、

数字水印技术概论

数字水印技术概论 【摘要】本文就数字水印科学保护技术展开探讨,通过原理定义论述、领域背景介绍与应用探讨,明晰了技术核心应用价值。对促进数字水印技术的继续深化拓展,发挥对电子信息相关数据产品的可靠安全保护职能,有积极有效的促进作用。 【关键词】数字水印;应用;保护 0.前言 信息时代,各类信息化数字技术扩充发展,针对丰富数字信息的安全保护需求也日益扩充。基于数字文档可方便快捷的复制、篡改与盗取,因而令其产权保护面临一定困难。同时数字图像具有一定适应性特征,可供用户任意设计更新并为己所用。为此应科学探究一种良好的数据可靠加密保护技术,进而有效应对不良信息篡改、窃取、盗用问题。本文基于这一目标引入水印数字技术探讨,该技术通过印记图形加密有效保护版权信息,形成印记图形同原始保持一致,基于一定标准形成水印图像,进而探究非法复制信息、相关违规产品的不良流通应用。该技术核心特征在于潜入模式,是通过视觉设想推理阐释实效的科学方式。 1.数字水印技术概述 1.1数字水印技术原理内涵 数字水印技术是一类进行数据产品安全保护、信息内容科学检测,通过嵌入模式将相关序列代码或用户定义标识引入信息中,并可基于相关算法进行水印提取,进而实施保护信息版权检验的科学技术方式。可有效维护产权人享有的产品版权利益,杜绝非法盗版问题。数字水印技术所保护的对象可以是媒体,数据文档、工具软件、视频音频资料、信息图像等丰富内容,包括生成水印、相关嵌入过程、综合信息测试与提取水印等实践环节。 数字水印核心原理在于通过针对宿主进行标识信息嵌入形成水印,令其具备无法感知的良好属性,进而确保信息数据安全性。同时需要遵循相应感知规则,令水印信息具有充分冗余性,即可通过分段数据实现恢复。 1.2数字水印具体类别 数字水印基于出发点各异性,令其种类划分各不相同,并体现了一定的联系渗透属性。依据水印特征,可将其划分成健壮与脆弱水印。前者可服务于数字作品资源中进行著作权相应表述,通过水印嵌入可满足综合编辑实践需求。后者则可实现数据完整统一保护,基于对更新信号的敏锐反映性,可依据其水印状况进行数据信息安全程度分析判别。依据水印媒体,可将其分为图像、视频、音频水印、文本与网格水印形式。而基于检测流程,数字水印则包括明文与盲水印等。前者检测进程要利用原始信息,后者则应利用密钥。 基于水印不同内容,可将数字水印定义为有意义以及无意义形式。前者即水印自身同时代表数字图像或音频数据编码,而后者则仅仅代表序列号。 1.3数字水印技术服务应用领域 数字水印技术基于优质属性、科学原理,在数字化、信息化社会建设与市场经济发展中体现了较大的应用潜能,可在电子商务领域、多媒体技术服务、广播媒介中发挥综合优势。数字水印技术具备良好的版权保护功能,基于来源信息与版权内容嵌入,有效预防不良侵权行为,体现良好安全的版权保护能效,当然其实践应用对数字水印提出了显著的鲁棒性要求。同时,数字水印技术科有效实现

相关文档
最新文档