信息隐藏与数字水印matlab实现_第1页
信息隐藏与数字水印matlab实现_第2页
信息隐藏与数字水印matlab实现_第3页
信息隐藏与数字水印matlab实现_第4页
信息隐藏与数字水印matlab实现_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGEPAGE1-网络与信息安全专题研究题目信息隐藏与数字水印原理与matlab实现姓名XXX院系信息与技术学院年级专业XX级计本班指导教师XXX2015年6月15日

目录第一章摘要 2第二章信息隐藏原理 32.1信息隐藏技术的特点 32.1.1不可感知性 32.1.2鲁棒性 32.1.3隐藏容量 42.2数字水印的特点 52.2.1安全性: 52.2.2隐蔽性: 52.2.3鲁棒性: 52.2.4水印容量: 52.3数字水印的基本原理 6第三章数字水印实现 73.1matlab实现程序 73.2水印前图片 83.3嵌入文件后的图片 93.4RSA的MATLAB实现第四章结语 11【参考文献】 12【特别致谢】 13信息隐藏的原理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:N

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~=0n1=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

明文=

21064结语当老师讲课说道数字水印技术时,就感觉自己很感兴趣,于是就在网上搜素了一下相关的信息,真的挺有意思

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论