Advertisement

Matlab 的数字水印技术研究

阅读量:

题 目: 基于 __Matlab __的数字水印技术研究

摘要

本研究旨在探讨基于Matlab的数字水印技术。我们通过整合加密数学理论到该领域中,并充分利用其内在特性进行信息的嵌入与保护。

用了信号的不可预测性和易于实现等特征。

Matlab 是一种用于科学计算的软件, 特别擅长以矩阵形式处理数据. MATLAB 将高性能数值计算与可视化功能有机整合, 并配备了丰富的内置函数库, 在多个领域得到广泛应用, 如科学计算、控制系统以及信息处理等. 基于其开放式的架构设计, 利用 MATLAB 产品能够非常方便地扩展其功能, 从而赋予研究者全新的思维方式去分析和理解问题. 数字水印技术具有易于生成的特点

对初始条件敏感以及具有白噪声的统计特性等特点,得到了较好的结果。

数字水印技术在现代网络通讯、信息安全等领域的应用日益广泛。本文首先对Matlab系统进行了深入分析。理论分析与计算机仿真结果完全吻合后,深入研究了基于Matlab的算法原理,并在此基础上提出了基于上述算法的水印设计方案,从安全性、效率等多方面评估了该算法性能,最后利用Matlab开发工具实现了这一数字水印方案

法的设计,用该算法对实例进行设计仿真。

关键词:Matlab;DWT;数字水印;加密

1**** 章 绪 论

1.1 研究背景和意义

伴随着图像数据、音频文件以及视频流等多媒体形式与互联网的快速发展,数字化信息在互联网上的传播效率不断提高。与此同时,在线获取与分享数字化资源的方式也日益便捷。然而,在这一过程中也产生了一系列亟待解决的问题。例如,在未获得授权的情况下复制、下载以及传播数字文件及作品等已成为普遍现象。这种非法行为不仅损害了创作者的利益,并且破坏了网络环境下的知识共享秩序。长期而言,这种现象将对我国信息产业市场造成严重影响

传统 multimedia protection techniques primarily rely on cryptographic methods, which are based on information theory and cryptography. Despite their effectiveness, this approach has limitations. On one hand, encrypting files makes them difficult to transmit without decryption hindering multimedia signals' dissemination; on the other hand, attackers easily spot encrypted media and attempt to decrypt them further. Consequently, while cryptography secures data in transit, it does not protect decrypted information.

1.2**** 数字水印技术简介

因此

数字水印技术作为信息伪装技术中的重要组成部分[2] ,在多媒体信息安全领域发挥了重要作用,并作为加密技术的重要补充,在版权保护和数据完整性认证方面取得了显著进展。文件所有权者通过将数字水印技术应用于多媒体信息内容(包括图片、文字、商标和序列号等),将其有机地融入传播过程中的人类难以察觉的形式中进行保护。

从多篇文献综述及现有数字水印技术的研究成果出发, 我们在此基础上给出了数字水 印的定义: 将可识别特征永久嵌入到承载信息的数据流(宿主数据)中, 并且这种嵌入不会影响到 宿主数据的整体可访问性. 基于此, 在提出数字水印技术时需考虑以下几个关键指标:

安全性:数字水印的信息具有高度的安全性,并且不易被篡改或仿制。同时,在宿主内容遭受损坏时(即发生变形),数字水印必须发生变化以便能够识别原始数据的变化;

(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 的数字水印技术方案

数字水印算法主要包含空间域方法与频率域方法两种类型,在应用层面具有显著优势。其优势体现在两个方面:首先,在频率域方法中,嵌入的水印信号能量能够分布至图像全部像素点上,并能有效降低可见性程度;其次,在人眼视觉特性(HVS)的基础上考虑了频率特性的掩蔽特性这一重要特征,在水印编码过程中可实现更为便捷的应用结合

(3)该方法能够与现有的国际数据压缩标准实现兼容性,并进而使得在压缩域内实施水印编码成为可能。因此,在介绍 MATLAB 在数字水印技术中的应用时,我们也将主要聚焦于频域法这一核心技术方法的应用场景和实现细节。

DCT 方法:用于处理原始信号的技术。该方法由 Cox 和 Piva 等人提出的经典方案中指出,在图像处理中对原始信号进行 DCT 转换后选择低频系数叠加水印信息以达到隐藏信息的目的;其中一种改进方式是将水印信息嵌入中频区域;另一种则是通过整体变换的方式将水印信息放置在特定频域区域;然而这种方法在抗压缩性能方面存在明显缺陷;因此在实际应用中需要综合考虑各方面的性能指标以实现最佳效果

DWT技术利用时域与频率掩蔽特性相结合的方式实现多分辨率视频水印功能,并能在灰度图像的小波变换域中或通过傅里叶-梅林变换以及傅里叶变换等方式实施水印植入策略。对原始图像进行三级小波分解以获取不同分辨率层级的细节子块以及一个近似子块,在此基础之上将一级分解所得的各部分分别注入到原始图像第三级分层中的对应区域。针对不同分组区间所选嵌入系数随之变化;最后通过对嵌入后的小波系数执行三级小波重构操作从而获得最终完成度较高的嵌入目标水印(见图2-2)。

有/无水印

图 2-2 基于 DWT 的数字水印

3**** 章 基于 Matlab**** 的数字水印技术研究

3.1**** 图像的色彩模式

色彩模式指的是同一属性中不同颜色集合的表现形式。
根据颜色属性的不同分类原则下,在二维平面上呈现效果各异的图像类型。
在基于不同应用场景需求,在二维平面上呈现效果各异的颜色空间体系中,则有RGB模型、CMYK模型以及Lab模型三种主要的颜色表示方法。
在去除原始彩色图象中的色彩信息后,则该图象将仅保留亮度数据作为其表征手段。

在本领域中:灰度图像代表使用256级亮度变化来表示图像信息。
每个像素都拥有一个从0到255的数值范围来定义其亮度值。
当处理或存取大量状态信息时,在计算机中用8位二进制数据来编码每个像素的状态信息。
这被称为标准的8位深度。

在彩色图像中:相较于灰度图像而言,其图像模式更加丰富多样。除了最常用的RGB颜色模式之外,还有Lab颜色模式、索引颜色模式以及CMYK颜色模式等多种选择。

其中索引颜色模式仅限于 256 种颜色,在网络平台常见于 GIF 图片的运用。CMYK 颜色模式其主要用于打印输出图像,它与 RGB 系统正好相反,并属于一种减色模型。

RGB 颜色模式:GB 颜色模式是最基本且广泛应用的颜色模式之一。它基于人眼三种颜色锥体的三原色原理,在图像处理中被广泛应用。其中R代表红色通道,G代表绿色通道,B代表蓝色通道,如图 1-30所示。每种颜色都有256种不同的亮度值设定,因此RGB颜色空间中共有 256³ 约等于 16,777,216 种不同的颜色组合(虽然自然界中存在的颜色种类远超此数值,但通过RGB模型已经能够充分模拟自然界中的绝大多数色彩)。彩色显示器正是基于RGB模型运行的设备,通过发射红、绿、蓝三种不同强度的光束来生成各种所需显示的颜色

对于数字水印,此处只对灰度图像做讨论。

3.2 基于 Matlab 序列的数字水印

一张图片已经存在,在 MATLAB 中通过 imread 函数获取其灰度值(若该图片是灰度图像,则对应的 MATLAB 二维数组表示是一个二维矩阵;若为彩色图像,在 MATLAB 中则表示为一个三维数组。我们可以把这个三维数组分解成三个二维数组来进行处理,并且其处理方式与灰度图像完全相同)

这里采用的是异或运算:

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 设置为 0.00225 ,接下来选择原始待加密水印样本为文件名标记为123.BMP(见图 3-1)。然后采用异或运算算法进行测试或实验分析:将原始水印样本执行异或运算处理后得到对应的加密水印样本标记为0.BMP(见图 3-2),并生成一个加密序列(见图 3-3)。

图 3-1 水印

图 3-2 异或后的水印

图 3-3 逻辑时序序列

通过将产生的加密序列与原始水印图像执行异或运算操作(如图3-4所示),生成了一个经过处理的新水印图像。

图 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技术实现方案,并用于生成适用于图像处理的相关数学waterprinted技术和理论框架。对RGB图像进行增施waterprinted信息后像素变化情况进行了对比实验分析。尽管本文所提出的waterprinted算法在性能上具有一定优势,并且相对容易实现系统功能需求目标;但同时也暴露出该设计方案存在明显局限性与现有waterprinted技术和标准之间仍存在一定差距需要进一步优化完善工作才能达到理想效果目标为此建议在后续开发中可考虑引入基于混沌映射的小波变换域相关waterprinted系统方案从而提升系统的鲁棒性和抗干扰能力

4.2**** 研究展望

数字水印是一项新兴的数字水印技术,在当前的技术发展中处于领先地位。它通过数字化手段将多种多样的信息如图片声音视频文字网络数据等直接嵌入到静态图片动态影像或其他形式的数字化传播媒介中,并被广泛应用于保护知识产权等领域。此外它还被称为一种专业的图像数码化处理技术展现了良好的市场应用前景

眼下而言,在应对各类伪造检测方面,传统的防伪技术已经显得力不从心;而数字水印防伪检测系统的确切出现,则完美地解决了这一难题.

一些国际标准已对其 数字水印留下空间或实现其功能

在我国政府对于信息安全产业的发展给予高度关注。数字水印研究已获得国家自然科学基金以及"863"计划的支持。从1999年起至今年止共举办过五届国际信息隐藏学术研讨会(CIHW),有力推动了水印技术的研究与发展。去年我国政府颁布实施了《中华人民共和国电子签名法》,该法律为水印技术的应用提供了必要的法律保障。

参考文献

[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 .A digital watermark .Int Conf on ImageProcessing ,2020(2):86—90 .

4

multimedia works. In: Publication of the International Society for Optical Engineering, San Jose,

California,2022,3657:449-457.

[5] P.P. Vadyanathan, Multirate digital filters, filter banks, polyphase network, and application: A tutorial guide, Proc. IEEE, 2019

Vol.78(1):56-93.

6

[7]陈明奇,钮心祈,杨义先.数字水印的研究进展和应用.通信学报,2021,22(5):71-79.

[8]高飞,李兴华.基于混沌序列的位图像加密研究.北京理工大学学报,2015,25

(9)文志强·李陶深·张增芳. 基于混沌序列的一种新型图像加密方法. 计算机工程与应用, 2015, 31

[10] 李振 于沈阳完成于沈阳工业大学 以 混沌序列算法为基础 的 计算机图像加密技术研究 在 《沈阳工业大学学报》 第6期刊登 且 包含页码为678至682的内容。

附录:

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]=uigetfile('.','选择图像文件'); image1=imread(num2str(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('新图频谱图'

全部评论 (0)

还没有任何评论哟~