信息隐藏与数字水印matlab实现.docx

上传人:b****6 文档编号:6174129 上传时间:2023-01-04 格式:DOCX 页数:11 大小:176.30KB
下载 相关 举报
信息隐藏与数字水印matlab实现.docx_第1页
第1页 / 共11页
信息隐藏与数字水印matlab实现.docx_第2页
第2页 / 共11页
信息隐藏与数字水印matlab实现.docx_第3页
第3页 / 共11页
信息隐藏与数字水印matlab实现.docx_第4页
第4页 / 共11页
信息隐藏与数字水印matlab实现.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

信息隐藏与数字水印matlab实现.docx

《信息隐藏与数字水印matlab实现.docx》由会员分享,可在线阅读,更多相关《信息隐藏与数字水印matlab实现.docx(11页珍藏版)》请在冰豆网上搜索。

信息隐藏与数字水印matlab实现.docx

信息隐藏与数字水印matlab实现

网络与信息安全专题研究

 

题目信息隐藏与数字水印原理与matlab实现

 

姓名XXX

院系信息与技术学院

年级专业XX级计本班

指导教师XXX

 

2015年6月15日

 

3.4RSA的MATLAB实现

信息隐藏与数字水印原理与matlab实现

 

【关键词】水印技术隐藏嵌入

【内容摘要】

随着计算机应用逐渐广泛、网络技术的迅速发展,使图文、音频、视频等多媒体信息都能以数字形式传输、阅读和播放,从而使大规模非授权拷贝成为了可能,而这样会损害音乐、电影、书籍和软件等出版业的健康发展。

为了保护知识产权,引发了一个很有意义的研究方向:

信息隐藏。

第一章摘要

本文首先介绍了数字水印技术的原理和分类

所谓的信息隐藏是利用媒体信息普遍存在的冗余特性,将秘密信息隐藏在其他媒体信息中。

其首要目标就是使加入隐藏信息后的媒体目标的质量下降,尽可能地小,使人无法觉察到隐藏的数据,或者知道它的存在,但XX者无法知道它的位置,并不像传统加密过的文件一样,看起来是一堆会激发非法拦截者破解机密资料动机的乱码,而是看起来和其它非机密性的一般资料无异,因而十分容易逃过非法拦截者的破解。

其道理如同生物学上的保护色,巧妙地将自己伪装隐藏于环境中,免于被天敌发现而遭受攻击。

被人们誉为历史学之父的古希腊历史学家希罗多德(Herodotus,486-425),在其著作中讲述了这样一则故事:

一个名叫Histaieus的人筹划着与他的朋友合伙发起叛乱,里应外合,以便推翻波斯人的统治。

他找来一位忠诚的奴隶,剃光其头发并把消息刺在头皮上,等到头发义长起来了,把这人派出去送“信”,最后叛乱成功了。

 

第三章信息隐藏的原理

2.1信息隐藏技术的特点

2.1.1不可感知性

信息隐藏技术利用信源数据的自相关性和统计冗余特性,将秘密信息嵌入数字载体中,而不会影响原载体的主观质量,不易被观察者察觉。

如果载体是图像,所做的修改对人类的视觉系统应该是不可见的;如果载体是声音,所做的修改对人类的听觉系统应该是听不出来的。

秘密信息的嵌入在不改变原数字载体的主观质量的基础上,还应不改变其统计规律,使得运用统计检查工具检查到隐秘载体文件中秘密信息的存在性也是非常困难的。

2.1.2鲁棒性 

鲁棒性反映了信息隐藏技术的抗干扰能力,它是指隐藏信息后数字媒体在传递过程中,虽然经过多重无意或有意的处理信号,但仍能够在保证较低错误率的条件下将秘密信息加以恢复,保持原有信息的完整性和可靠性,它也称为自恢复性或可纠错性

对隐藏信息的处理过程一般包括数/模、模/数转换;再取样、再量化和低通滤波;剪切、位移;对图像进行有损压缩编码,如变换编码、矢量量化;对音频信号的低频放大,等等。

2.1.3隐藏容量 

将信息隐藏技术应用于隐蔽通信中时,为了提高通信的效率,往往希望每一个数字载体文件能够携带更多的秘密数据。

隐藏容量是反映这种能力的一个指标,它是指在隐藏秘密数据后仍满足不可感知性的前提下,数字载体中可以隐藏秘密信息的最大比特数。

随着数字隐藏技术的发展,在特定的应用方面对其技术性能又提出了更高、更具体的要求。

在一般的信息隐藏方法中,这些特性都是相互冲突、互相矛盾的。

例如,有的方法隐藏容量大,但鲁棒性较差;有的方法鲁棒性很好,但不可感知性较差;有的方法鲁棒性较差,但运算量较小,等等。

应根据实际的需求对各种性能做出选择和择中,从而找到最合适的信息隐藏方法。

在信息隐藏算法中,主要有空间域算法和变换域算法。

最典型的空间域信息隐藏算法为LSB算法。

LFTurnet与RGVan利用LSB算法将信息隐藏在音频和数字图像中。

Bender提出了通过修改调色板统计信息来嵌入秘密数据库的隐藏算法。

Patchwork方法采用随机技术选择若干对像素,通过调节每对像素的亮度和对比度来隐藏信息,并保证这种调整不影响图像的整体观感。

丁玮从数字图像的透明叠加方法出发,提出了基于融合的数字图像信息隐藏算法。

并根据七巧板的游戏原理,提出了隐藏数字图像的Tangram算法,Marvel将数字图像看作嗓声,提出了空间域中的扩频数据隐藏方法。

Lippman使用信号的色度,提出了在国家电视委员会的色度信道中隐藏信息的方法。

Liaw和Chen提出了将秘密图像嵌入到载体图像中的灰度值替方法,为了适合灰度值替换,Wu和Tsai提出了使用图像差分的改进方法;Wu和Tsai还在人类视觉模型的基础上,提出了在数字图像中嵌入任何类型数据的数据隐藏方法;Tseng和Pan提出了一种安全的、大容量的数据隐藏算法;Provos通过随机嵌入和纠错编码的方法改进了信息隐藏的性能,Solanki等从信息论的角度出发,将视觉标准引入到通过量化来嵌入信息的方法,并由此提出了一种高容量的信息隐藏算法。

在变换域算法中,正交变换的形式可以有离散傅立叶变换(DFT),离散余弦变换(DCT),小波变换(Wavelet)等。

由于变换域算法利用了人眼对于不同空间频率的敏感性,在适当的位置嵌入信息具有更好的鲁棒性和不可觉察性。

容量也较高,所以变换域隐藏算法比空间域算法复杂。

最具代表性的变换域算法是Cox在1995年提出的扩频算法。

Andreas Westfel和Pitas分别提出了通过模拟图像水平或者垂直移动将秘密数据嵌入到图像的DCT系统的数据隐藏算法,管晓康提出了Pitas算法的改进算法,克服了该算法中嵌入数据量小的缺点。

丁玮成功地将该算法修改并在小波域中运算该算法,并通过置乱技术改进了Pitas算法中的随机数策略,消除了误判的可能性。

  

2.2数字水印的特点

2.2.1安全性:

数字水印的信息应是安全的,难以篡改或伪造,同时,应当有较低的误检测率,当原内容发生变化时,数字水印应当发生变化,从而可以检测原始数据的变更;当然数字水印同样对重复添加有很强的抵抗性

2.2.2隐蔽性:

数字水印应是不可知觉的,而且应不影响被保护数据的正常使用;不会降质;

2.2.3鲁棒性:

是指在经历多种无意或有意的信号处理过程后,数字水印仍能保持部分完整性并能被准确鉴别。

可能的信号处理过程包括信道噪声、滤波、数/模与模/数转换、重采样、剪切、位移、尺度变化以及有损压缩编码等。

主要用于版权保护的数字水印易损水印(FragileWatermarking),主要用于完整性保护,这种水印同样是在内容数据中嵌入不可见的信息。

当内容发生改变时,这些水印信息会发生相应的改变,从而可以鉴定原始数据是否被篡改。

2.2.4水印容量:

是指载体在不发生形变的前提下可嵌入的水印信息量。

嵌入的水印信息必须足以表示多媒体内容的创建者或所有者的标志信息,或购买者的序列号,这样有利于解决版权纠纷,保护数字产权合法拥有者的利益。

尤其是隐蔽通信领域的特殊性,对水印的容量需求很大。

2.3数字水印的基本原理

目的是将特定的信息加入到需要保护的媒体信息中,加入的信息一般是能够代表媒体信息版权的内容,如公司标志、媒体作者、特定代码等,而且要保证数字水印能够抵抗一定的攻击,而不被轻易的破坏和修改,同时数字水印要能够被提取或者能够被检测到。

数字水印的具体内容、算法、提取或检测过程根据实际应用有不同的要求。

数字水印的嵌入和提取过程如图1,图2所示。

图1数字水印的嵌入过程

图2数字水印的提取过程

图1是数字水印的嵌入过程,加入密钥可以提高数字水印的隐蔽性、抗攻击性,而并非是必须的。

根据用途不同,,嵌入的水印有些是需要还原的,而有些则只需验证水印的存在性,前者需要数字水印的提取算法,而图2需要数字水印的检测算法,根据具体的水印算法,嵌入或提取的过程可能有所不同。

第四章基于Matlab的数字水印算法

3.1matlab实现程序

clear  

clc 

M =512;%原图像长度 N =64;

%水印图像长度 K =8; 

I=zeros(M,M);

J=zeros(N,N);

BLOCK=zeros(K,K);

 %显示原图像 subplot(2,3,1); 

I=imread('C:

\Documents and Settings\Administrator\桌面\图像.jpg','jpg');

imshow(I);

title('原始公开图像');

 %显示水印图像 subplot(2,3,2); 

J=imread('C:

\Documents and Settings\Administrator\桌面\水印.jpg','jpg');

imshow(J);

title ('水印图像'); 

%水印嵌入 for p=1:

N for q=1:

x=(p-1)*K+1; y=(q-1)*K+1; 

  BLOCK =I(x:

x+K-1,y:

y+K-1);

BLOCK=dct2(BLOCK); 

if J(p,q)==0   a=-1;

else   a=1;

 end 

BLOCK(1,1)=BLOCK(1,1)*(1+a*0.03);

BLOCK=idct2(BLOCK); 

I(x:

x+K-1,y:

y+K-1)=BLOCK; 

end 

end 

%显示嵌入水印后的图像 subplot(2,3,3); 

imshow(I);

title('嵌入水印后的图像');

imwrite(I,'C:

\Documents and Settings\Administrator\桌面\图像.jpg','jpg'); 

%从嵌入水印的图像中提取水印 

I=imread('C:

\Documents and Settings\Administrator\桌面\图像.jpg','jpg'); 

J=imread('C:

\Documents and Settings\Administrator\桌面\水印.jpg','jpg');

 J=imnoise(J,'gaussian',0,0.01); 

subplot(2,3,4);imshow(J,[]);

title('加入高斯噪声'); 

I=imread('C:

\Documents and Settings\Administrator\桌面\图像.jpg','jpg'); 

J=imread('C:

\Documents and Settings\Administrator\桌面\水印.jpg','jpg');

 J=imnoise(J,'gaussian',0,0.01); 

subplot(2,3,4);imshow(J,[]);

title('加入高斯噪声'); 

for p=1:

N for q=1:

N x=(p-1)*K+1; 

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

BLOCK1 =I(x:

x+K-1,y:

y+K-1);

 BLOCK2 =J(x:

x+K-1,y:

y+K-1);

 BLOCK1=dct2(BLOCK1);

 BLOCK2=dct2(BLOCK2); 

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

if a<0 W(p,q)=0; 

else W(p,q)=1; 

end end end 

%显示提取的水印 subplot(2,3,5); 

imshow(W); 

title('从含水印图像中提取的水印')[3]; 

3.2水印前图片

嵌入的文件

3.3嵌入文件后的图片

3.4RSA的MATLAB实现

1. 模n求逆函数

 function [d]=moni(u,n) 

 n1=n; 

n2=u; 

b1=0; 

b2=1; 

for i=0:

1000  

    q=floor(n1/n2);  

    r=n1-q*n2;  

    i=i+1;  

    if r~=0

n1=n2;  

         n2=r;   

        t=b2;  

         b2=b1+q*b2;  

         b1=t; 

     else 

          break  

    end end if n2~=1 

warning(‘所求的模逆不存在‘);

 end if n2= =1 

      if 0= =mod(i,2)  

         b2=-b2;  

     else   

        b2=b2;

       end 

      d=mod(b2,n);

       %return; end 

2.求模n的大数幂乘函数 

function [dashuchenmi]=dashuchenmi(x,r,n); 

a=x; 

b=r; 

c=1; 

for i=1:

1000 if b= =0 

dashuchenmi=c; 

end 

if mod(b,2)~=0 

b=b-1;  

    c=mod(c*a,n);

 else  

    b=b/2; 

     a=mod(a*a,n); 

end 

end 

dashuchenmi=c; 

3.主函数 clc clear 

fid=input(‘输入待加密的明文:

’,‘s’);

 f=abs(fid); 

p=input(‘输入第一个大素数:

’);

 q=input(‘输入第二个大素数:

’);

 e=input(‘输入加密密钥:

’);

 n=p*q; 

fain=(p-1)*(q-1); 

d=moni(e,fain); 

for i=1:

length(f) 

      miwen(i)=setstr(dashuchenmi(f(i),e,n));

 end 

for i=1:

length(f) 

      mingwen(i)=setstr(dashuchenmi(miwen(i),d,n));

 end 

miwen 

mingwen 

实验结果:

 

输入待加密的明文:

2106 

输入第一个大素数:

43 

输入第二个大素数:

59

输入加密密钥:

13 

密文= 

2321 

明文= 

2106

4结语

当老师讲课说道数字水印技术时,就感觉自己很感兴趣,于是就在网上搜素了一下相关的信息,真的挺有意思,所以就选择了这个课题。

当着手做数字水印的时候,却发现好多好多不明白,在网上搜资料查询咨询老师等等,在此过程真的了解了好多相关的知识,从以前对于数字水印以及图像处理的Matlab程序的不懂到现在的这篇论文,进步了不少。

但是现在还是不能自己编出一套完整的程序,Matlab这样一个强大的工具!

嵌入水印信息后,原图与嵌入水印信息的图像在视觉效果上基本没有明显分别,用肉眼几乎分辨不出,这说明这种算法充分利用人限的视觉HVS特性, 利用离散DCT域嵌入水印后,水印的不可见性相当好,图像在嵌入水印前后视觉效果改变不大, 不会影响正常使用。

【参考文献】

1.王磊-《计算机工程与应用》,2002年第23期

2.祁明,刘迎风-《通信技术》,2001年06期

3.牛少彰,郭芬红,钮心忻-《北京邮电大学学报》,2004年06期

4.胡春萍-《电脑学习》,2006年02期

 

【特别致谢】

在本文的策划设计中,得到吴老师还有同学的精心辅导

在此表示忠心的感谢!

负责人意见

(由负责人本人手写)

 

负责人签名:

年月日

学院意见

 

 

负责人签名:

年月日

主要内容:

(电子打印版)

研究方法:

(电子打印版)

完成期限及采取的主要措施:

(电子打印版)

主要参考资料:

(电子打印版)

指导教师意见:

(由指导教师手写)

 

签名:

年月日

议记录摘要:

(记录人手写):

 

会议主持人签名:

记录人签名:

年月日

指导小组意见

 

签名:

年月日

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 外语学习 > 法语学习

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1