基于 Matlab 的数字水印技术
题 目: 基于 __Matlab __的数字水印技术研究
摘要
本设计重点探讨以Matlab为基础的数字水印技术。通过采用加密数学的方法将其引入到数字水印技术中,并充分挖掘并发挥其优势。
用了信号的不可预测性和易于实现等特征。
Matlab 是一种数值计算工具,在数据处理中采用了矩阵运算方式。该软件集成了高效的数值计算能力和图形化可视化界面,并配备了丰富的内置函数库,在科学计算、控制系统以及信息处理等多个领域得到了广泛应用,并基于其开放式的架构设计特点能够方便地扩展其功能模块。数字水印技术具有易于实现的特点
对初始条件敏感以及具有白噪声的统计特性等特点,得到了较好的结果。
数字水印技术已深入应用至网络通讯等关键领域。文章伊始将Matlab系统作为研究对象进行了深入分析。通过理论推演与计算机仿真实验结果高度吻合后,探讨了基于Matlab平台的算法运行机制,并提出了基于上述算法原理的数字水印编码方案,在安全性、实时性和鲁棒性等多个维度对编码方案进行了性能评估。最后利用Matlab开发平台完成了该数字水印编码方案的具体设计与实现工作
法的设计,用该算法对实例进行设计仿真。
关键词:Matlab;DWT;数字水印;加密
第 1**** 章 绪 论
1.1 研究背景和意义
伴随着数字技术的进步和社会的整体发展
传统多媒体保护技术主要采用密码技术手段,其基础建立在香农理论与密码学理论之上。然而,该方法仍存在局限性:一方面,文件加密后由于无法解密而导致不利于多媒体信息的有效传播;另一方面,攻击者容易察觉到已加密的多媒体内容,并进一步试图破解这些内容。因此,传统的密码学主要用于对正在传输中的数据进行保护,而对于已经解密的数据则无法提供相应的防护措施
1.2**** 数字水印技术简介
基于此而言,在密码学体系存在缺陷的情况下
数字水印技术是信息伪装技术中的核心内容之一[2] ,它作为一种辅助加密手段,在 多媒体信息版权保护以及完整性认证方面取得了显著进展。文件所有权人通过数字水印技术将水印(包括图片、文字、商标以及序列号等具体内容)以完全不可察觉的方式嵌入用于传播的多媒体载体中去,从而有效防止传统解码方式。该技术不仅能够增强多媒体数据的安全性,在版权保护方面也发挥了重要作用;同时在确保数据完整性的方面具有显著优势。
基于诸多学术研究者对现有数字水印方案的深入分析与总结,在此基础上我们进一步提出并界定了数字水印的概念。该概念具体表现为能够在宿主数据中永久性地嵌入并具有可识别特征的数据信号或图案。值得注意的是这一特性不仅能够显著提升信息的安全性还能确保其不会对宿主数据的有效性和完整性造成任何负面影响。从以下几个维度来看该技术应具备以下基本特征:
(1)安全性:数字水印的信息应当具有高度的安全性,在不被恶意修改或伪造的情况下依然保持完整性;同时该系统还应具备低误报率的特点,在宿主内容发生微小变化时也能相应地产生变化;这种机制能够有效地识别出原始数据是否发生过合法的变化;
(2)隐蔽性:数字水印应是不可知觉的,而且应不影响被保护数据的正常使用;
(3)稳健性:数字水印必须不容易去除;如果仅掌握部分水印信息,则尝试去除或破坏将导致严重的降质或无法使用。同时,在常规的信号处理和几何变换中应保持其稳健特性
(4)水印容量:嵌入在多媒体内容中的水印信息不仅能够充分表示多媒体内容的所有者标识信息或购买者的序列号码等关键信息数据, 这种设计既能有效解决版权纠纷问题, 同时也能保障数字产权合法拥有者的权益
1.3 数字水印技术研究现状
自1993年该技术开始发展以来,在信息安全与经济发展方面发挥重要作用,并呈现出快速发展的态势。各国科研机构、高校以及商业领域均积极投身于研究之中。例如美国财政部;美国版权工作组;麻省理工学院;微软公司等都进行了相关研究工作。
版权保护的应用需求以及基础理论研究的快速发展推动了数字水印技术得到广泛应用。我国的一些研究单位逐步展开了对数字水印技术系统的全面研究工作。
虽然数字水印技术的研究工作刚刚起步,但已有了很大发展。
然而,在数字水印技术领域仍存在诸多挑战:底层技术理论支持不足,并未建立相应的规范化研究体系
作为传统加密系统的重要辅助手段之一,从1993年Caronni正式提出数字水印技术到现在短短几年里,无论在国内还是国外,在数字水印技术方面都引起了人们的广泛关注.然而,尽管如此,数字水印技术的发展仍显稚嫩,在应用层面也仅处在一个初级阶段.在我国的知识产权问题是一个敏感且备受关注的话题,只有深入研究数字水印技术并制定相应的标准,才能在可能发生的国际知识产权纠纷中占据主动地位.本文将重点探讨一种高效的实用工具.
——MATLAB.







第2 章 基于Matlab 的数字水印产生方案
2.1 传统的数字水印技术方案
现有的数字水印算法大多集中在数学领域,并以DCT变换作为基础工具。然而由于DCT变换所具有的频率特性是固定的这一局限性,在数字水印技术的研究中面临着较大的瓶颈。与此同时,在JPEG2000标准中采用的是DWT(离散小波变换)技术这一突破也为现有DCT方法的应用带来了新的挑战。(图 2-1)

图2-1 传统数字水印
例如最低有效位算法[3]:它是一种通过在空间域直接替换多媒体信息中最不重要的位来实现水印信息嵌入的方式。对于图片数据而言,在一个像素中包含多个比特的信息描述是正确的。其中低位所携带的能量较少而高位则承载了更多的能量因此在数字图像处理以及图像变换过程中由于低位的变化对图片质量的影响较小使得攻击者只需删除图片中的低位数据即可破坏水印信息从而导致该类水印算法鲁棒性较差
2.2 基于 Matlab 的数字水印技术方案
数字水印算法主要分为两类:一类是基于空间域的方法(spatial domain techniques),另一类是基于频域的方法(frequency domain techniques)。这类技术的优势在于:其嵌入的信息能量能够均匀分布在所有像素中,并且能够在不影响图像质量的前提下实现较高的鲁棒性;此外,在视觉系统(如人眼感知机制中的频率掩蔽特性)这一关键属性的基础上设计编码机制能够进一步提高抗干扰能力。














(3)频域法具备与国际数据压缩标准的兼容性特征,并因此能够实现水印信息嵌入于压缩域中这一目标。为此我们主要阐述 MATLAB 在数字水印技术中的应用方法。
DCT 方法:对原始信号执行离散余弦变换(DCT)的算法,在Cox 和 Piva 等人的研究基础上形成了经典的技术框架。Cox 使用随机数生成器创建标准正态序列作为水印信息,并对该图像执行整体离散余弦变换(DCT),随后移除了 DC 系数后,在较低频段叠加水印信息;而 Piva 则对整幅图像的中频区域进行了调整。在处理分块信号时采用了以下方法:将图像划分为8×8的小块区域,并以二进制序列作为水印插入中频区;或者计算整个图像的 DCT 并在中频系数上注入实数序列;还有一种方法是将水印信息嵌入到高频系数中,在这种情况下抗压缩性能表现欠佳。
DWT方法基于时域小波变换与频率掩蔽特性相结合的方式,在多分辨率视频水印中得到应用。该方法不仅能够将信息隐藏在灰度图像的小波变换域中,并且可以在其他频域如Fourier-Mellin域或其他Fourier变换空间中处理信息;通过将原始图像实施三级小波分解,则可以分别从不同层次提取细节特征并构建多分辨率表示;随后通过对一级分解后的各个子图分别嵌入到原始图像第三级小波分解对应的子图中,并根据不同的分组情况选择相应的嵌入系数;最后对经水印处理后的小波系数执行三级重构过程以恢复完整的图像信息;整个过程不仅能够有效保护原始数据的安全性还能较好地维持信号的信息完整性

| 有/无水印 |
|---|
图 2-2 基于 DWT 的数字水印
第 3**** 章 基于 Matlab**** 的数字水印技术研究
3.1**** 图像的色彩模式
根据同一属性定义的色彩集合即为色彩模式。根据其颜色属性划分为彩色图像与灰度图像两种类型。基于其适用场景区分...有三种类型:RGB模式、CMYK模式与Lab模式等三种表现形式。若从该类图片中剔除色彩信息,则该图转为灰度图
一、灰度图像:其被用来表示图像。每个像素均具有一个从0(黑色)到255(白色)之间的亮度值。在计算机领域中,在处理需要存储256个状态时,计算机需要使用一个字节即8位来存储每个像素点的亮度信息。这就是常说的8位灰度图。
2、彩色图像:彩色图像的表现形式相较于灰度图像要丰富得多。除了最常用的 RGB 颜色模式外,还包括 Lab 颜色模式、索引颜色模式以及 CMYK 颜色模式等等。
其中索引颜色模式仅支持最多256种不同的色彩,在网络环境中常见于GIF图片所使用的这种格式。CMYK色彩模型主要用于图像打印领域其色彩生成机制与RGB正好相反它属于减色模型的一种。
RGB 颜色模式:GB 颜色模式是一种基础且广泛应用的颜色表示方式。其依据于光的三原色理论基础,在该模式中 R 代表红色通道、G 代表绿色通道、B 代表蓝色通道(如图 1-30 所示)。每个颜色通道均包含 256 种不同的亮度级别,在理论上 RGB 模式能够呈现 256³ 约等于 16,777,216 种不同的颜色组合。尽管自然界中存在的色彩种类远超此数量级,在实际应用中这种色彩覆盖已经足以模拟自然界中的各种真实色彩效果。基于 RGB 模式的彩色显示器通过分别控制不同强度的红光、绿光和蓝光照射到荧光屏上的材料表面来实现不同色彩的显示效果。
对于数字水印,此处只对灰度图像做讨论。
3.2 基于 Matlab 序列的数字水印
现在有一张图片。通过 MATLAB 中的 imread 函数获取该图像的灰度值(若该图为灰度图像,则返回一个二维矩阵;若为彩色图像,则返回一个三维矩阵)。对于三维矩阵,请将其分解为三个二维矩阵进行处理(此方法与处理灰度图像的方式相同)。
这里采用的是异或运算:
Wv=Wp ⊕Xk ,v= 1 ,2 ,……
假设原始的灰度图片是大小为 M × M __ ,每个像素用sbit 表示,则
X = {x(m , n),0 < m , n __ < M __}
其中,x(m,n) ∈{0 ,1 ,2…… ,2s-1}是原始图像在(m , n) 处的灰度值。
假设水印图像是大小为 N × N ,每个像素用cbit 表示
W __ = {w(m , n),0 < m , n __ < N}
其中,w(m,n) ∈{0 ,1 ,2…… ,2c- 1}是水印图像在(m , n) 处的灰度值。
这里我们将混沌密钥 key 作为用户的私钥,在不知道 key __ 的情况下,盗版者即使提 取出水印信号也无法恢复出水印图像。同时,key 的大小也影响着水印嵌入图像后图像 的失真。
设置嵌入强度参数为 key=0.00225后,在此基础上选择原始水印图像文件路径为123.BMP(见图 3-1)。随后采用异或运算算法进行仿真实验:针对该原始水印图像文件路径为123.BMP(见图 3-1),执行异或运算操作后得到加密后的水印图像文件路径为0.BMP(见图 3-2)。实验结果表明生成了一个完整的加密序列(见图 3-3)。

图 3-1 水印

图 3-2 异或后的水印

图 3-3 逻辑时序序列
将产生的加密序列与原始水印图像执行异或运算后, 经过计算得到一个经过置乱处理的新水印图像(如图所示)

图 3-4 Figure 2
3.3 基于 Matlab 的数字水印嵌入
已获取到加密水印(如图3-2所示),通过Matlab平台进行水印嵌入操作,生成带入水印的图像,并可从新生成的图像中提取对应的加密水印(如图3-5所示)。

图 3-5 Figure 3
3.4**** 嵌入水印图像与原图的比较
把新图和原图的直方图进行比较
原图直方图(图 3-6):

图 3-6 原图直方图
新图直方图(图 3-7):

图 3-7 新图直方图
原图与新图的频谱比较(图 3-8):

图 3-8 频谱图比较
可以看出,在外观上原图与新图几乎看不出差别;经过对比分析可知,在直方图和频谱图中两者的特征存在明显差异。
不同的一幅图片显然具有明显的不同之处。为了识别出这些差异性特征,我们需要对未知的一张图片进行分析判断以判断其中是否带有水印标记。
3.5 检测图像中是否含有水印
对于任意一张未知图片而言,在检测其中是否存在水印时需要遵循以下步骤:首先将图像中的潜在证据进行识别;如果存在嵌入式的水印其提取过程通常采用混沌序列加密;随后将识别出的水印信息与预生成的混沌序列进行异或运算;最后通过对比解码后的结果(如图3-9所示)与原始模板(如图3-1所示),判断是否存在误码。

图 3-9 还原水印
原图(图 3-10)不含有水印的情况下,还原水印的结果(图 3-11):

图 3-10 原图

图 3-11 空白图
从一副未知图像(图 3-12)中提取水印(图 3-13)并还原(图 3-14)

图 3-12 未知图像

图 3-13 未知图提取水印

图 3-14 未知图还原水印
第 4**** 章 总结及研究展望
4.1**** 总结
数字水印技术是近年来出现的一种新型的水印技术。它不仅不仅在图像领域,在音频、视频以及多种多媒体文件上都有较为广泛的运用。相比而言,在多媒体文件加密这一应用场景下具有显著的应用前景。
本文详细阐述了基于 logistic 映射设计并实现了数字水印算法的具体过程。其中,在信息加密领域发挥重要作用的 混沌理论通过伪随机序列生成器实现了高度的安全性保障;不仅还具备形式简洁明了的特点,在实际应用中所生成的一维混沌时间序列较短,并且展现出良好的应用前景。
我们对基于Matlab平台的数字水印技术实现方式进行深入研究,并旨在开发一种适合图像处理的应用型数字水printed技术和相关算法框架。通过对RGB图像进行处理后的像素变化情况进行对比分析和实验验证,在此基础上提出了一个具有较好应用效果的新算法方案。然而, 该方案在实际应用中存在明显局限性, 显示出现有设计方案在实际应用中存在明显局限性, 离现代数字watermarking technology的发展水平相比仍有一定差距. 由于个人技术水平限制, 目前无法独立完成watermarking信息从带watermark图像中无失真地恢复出原始watermark信息. 此外, 本课题所涉及的技术发展尚处于起步阶段, 存在着计算精度有限、算法设计不够完善以及安全性有待进一步提升等问题. 如果希望进一步完善watermarking information extraction process, 可以考虑引入基于chaos mapping的小波变换域相结合的方法框架
4.2**** 研究展望
目前开发的数字水印技术被视为一项最新的防伪手段。它是一种数码化技术,在静止图像、活动图像或其他数码化传播媒体中隐藏了包括图像、音频、视频、文本以及网络等目标的信息,并被简称为图像数码化水印处理技术。该技术具有广泛的应用前景。
眼下传统防伪技术难以应对多种伪造检测;数字水印防伪检测系统应运而生,则实现了人们对这种技术的需求。
已有多个国际标准结合了数字水印技术或为这些技术留下了专用空间。
SDMI旨在为音乐的播放、存储以及发布提供一个开放且包容的平台框架。
SDMI规范中规定了多种音频文件格式,并联合应用加密技术和数字水印技术。
JPEG 2000国际标准已为此类技术留下了专用空间。
即将出台的MPEG-4压缩编码规范则提供了相应的接口,
允许集成包括水印在内的版权保护功能。
在我国政府对于信息安全产业的发展给予高度关注。数字水印研究获得了国家自然科学基金及"863"专项的支持。每年举办一次的国内信息隐藏学术研讨会(CIHW)从1999年开始至今已连续举办五届,并对该领域的发展起到了积极促进作用。去年我国政府才颁布了《中华人民共和国电子签名法》,这一法律法规的确立为水印技术的应用奠定了重要法律基础
参考文献
[1] 数位水印_百度百科
[2]TEWFIK A H. Digital watermarking[J], IEEE Signal Processing Magazine, 2020 ,17(9): 17~88.
[3] Schyndel van RG, Tirkel AZ, and Osborne CF. 一项数字水印技术. 国际图像处理会议, 2020年第二期: 86-90.
[4] Hui Xiang and her co-authors developed digital watermarking systems based on chaotic sequences for electronic imaging'99, focusing on the areas of security and watermarking.
Multimedia-based content is commonly found in the Proceeding of the International Society for Optical Engineering, held in San Jose.
California,2022,3657:449-457.
[5]P.P.Vadyanathan, Multirate Digital Filters, Filter Banks, Polyphase Network, and Application: A Tutoral, Proc. IEEE, 2019,
Vol.78(1):56-93.
参考文献[6]:丁玮团队; Arnold transform驱动下的数字图像混乱技术研究,《计算机辅助设计与图形学报》,2021年 第13卷第4期。
[7]陈明奇,钮心祈,杨义先.数字水印的研究进展和应用.通信学报,2021,22(5):71-79.
[8]高飞,李兴华.基于混沌序列的位图像加密研究.北京理工大学学报,2015,25
文志强等提出了基于混沌序列的一种新型图像加密技术
李振教授就混沌序列算法应用于计算机图像加密技术展开研究[D]. 沈阳: 沈阳工业大学, 2022年. 第二十六卷第六期刊载
附录:
clear all;
%logistic 序列生成算法
figure(1);
an=linspace(3.1,3.99,400);
hold on;box on;axis([min(an),max(an),-1,2]);
N=64*64;
xn=zeros(1,N);
for a=an;
x=rand;
for k=1:N;
x=ax(1-x);
xn(k)=x;
b(k,1)=x;
end
plot(a*ones(1,N),xn,'k.','markersize',1);
end
c=reshape(b,64,64);
%二维矩阵调制
for a1=1:64;
for a2=1:64;
if c(a1,a2)>=0.5;
d(a1,a2)=1;
else d(a1,a2)=0;
end;
end;
end
%水印加密
e=imread('c:\new\123.BMP');
e=double(e);
f=bitxor(d,e);%mm=imread('c:\new\0.BMP');nn=double(m m);%h=bitxor(d,mm);
g=bitxor(d,f);
figure(2);
subplot(2,2,1);
imshow(d);title('混沌序列矩阵');
subplot(2,2,2);
imshow(e);title('水印图像');
subplot(2,2,3);
imshow(f);title('混沌加密水印图像');
imwrite(f,'c:\new\0.BMP');
subplot(2,2,4);
imshow(g);title('水印图像恢复');
M=256;
N=64;
[filename1.pathname] = ginput('.', 'image file name'); image1 = imread(numeral_to_string(filename1));
figure(3);subplot(2,2,1);imshow(image1);
title('original image');
subplot(2,2,2);imshow(f);title('original watermark');
%嵌入水印
[ca,ch,cv,cd] = dwt2(image1,'db1');
[cas,chs,cvs,cds] = dwt2(ca,'db1');
for i=1:N
for j=1:N
iff(i,j)==0
a=-1;
else
a=1;
end
Ca(i,j)=cas(i,j)(1+a0.03);
end
end
IM= idwt2(Ca,chs,cvs,cds,'db1') ;
subplot(2,2,3);colormap(gray(256));image(markedimage); title('marked image');
imwrite(markedimage,gray(256),'c:\new\watermarked.bm p','bmp');
%提取水印
image1=imread(num2str(filename1));image1=double(imag
e1);
imaged=imread('c:\new\watermarked.bmp');
[ca,ch,cv,cd] = dwt2(image1,'db1');
[cas,chs,cvs,cds]=dwt2(ca,'db1');
[caa,chh,cvv,cdd]=dwt2(imaged,'db1');
| [caas,chhs,cvvs,cdds]=dwt2(caa,'db1'); for p=1:N for q=1:N a=caas(p,q)/cas(p,q)-1; if a<0 W(p,q)=0; else W(p,q)=255; end | end end subplot(2,2,4); colormap(gray(256));image(W);title('从含水印图像中提取 的水印'); imwrite(W,gray(256),'watermark.bmp','bmp'); %figure(4); h=bitxor(d,W);figure(7);subplot(2,2,1);imshow(h); |
|---|---|
| %频谱 | |
| pic1= imread('c:\new\3.jpg'); | pic2= imread('c:\new\watermarked.BMP'); |
| %pic=rgb2gray(pic); | %pic=rgb2gray(pic); |
| subplot(2,2,1); | subplot(2,2,3); |
| imshow(pic1); | imshow(pic2); |
| title('原图'); | title('新图'); |
| pic_fft1=fft2(double(pic1)); | pic_fft2=fft2(double(pic2)); |
| pic_fft1=fftshift(pic_fft1); | pic_fft2=fftshift(pic_fft2); |
| subplot(2,2,2); | subplot(2,2,4); |
| imshow(log(abs(pic_fft1)), []); | imshow(log(abs(pic_fft2)), []); |
| title('原图频谱图'); | title('新图频谱图' |
