资源描述:
《图像保密通信技术之arnold变换》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、图像保密通信技术之Arnold变换一、作业目的1.利用Matlab实现数字图像Arnold变换的置乱及恢复。2.深入学习通讯保密技术,进一步了解图像保密通讯技术。3.向大家展示实现图像保密技术的方法和技术。二、作业介绍近年来,随着网络带宽和速度的极大提高,多媒体数据特别是数字图像的流传和使用越来越广。而人们对安全性和隐私的也愈发关注,图像加解密技术得到了极快地发展。在机要、军事、政府、金融和私人通信中,数字图像所占的比例越来越大,它所承载的信息的安全成为当前人们关心的焦点。如何确保基于网络的图像/视频信息的安全,是当前信息处理技术领域的亟待解决的难点和研究热点之
2、。本次作业主要研究Matlab实现数字图像Arnold变换的置乱及恢复。置乱技术是一种图像加密技术,它利用数字图像具有的数字阵列的特点,搅乱图像中像素的位置或颜色使之变成一幅杂乱无章的图像,从而达到无法辨认出原图像的目的,可用于数字图像水印的预处理和后处理过程。置乱过程不仅可以在数字图像的空间域上进行,还可以在其频率域上进行。常见置乱方法有Arnold变换、幻方变换、Hilbert曲线、Conway游戏、广义Gray码变换、仿射变换、正交拉丁方变换等。1.置乱技术的特点及优点:置乱技术具有以下特点:置乱技术一般来说具有周期性;置乱变换之后的图像大小不发生改变,直
3、方图不变,只是打乱图像各像素的次序;置乱技术是可逆变换,水印在提取后需要进行置乱变换的逆变换。对水印进行置乱处理的优点:1)采用置乱技术的合法使用者可以自由控制算法的选择、参数的选择以及使用随机数技术,从而使非法使用者难以破译图像内容,即可以提高水印信息的安全性。2)置乱技术可以分散错误比特的分布,提高数字水印的视觉效果从而增强其鲁棒性。2.Arnold变换及其Matlab实现Arnold变换是Arnold在遍历理论研究中提出的一种变换,俗称猫脸变换,即“catmapping”。根据所选择不同的相位空间可分为二维、三维、四维直至N维的Arnold变换。本文针对的
4、研究对象因为是二维图像故采用的是二维Arnold变换。其定义为:其中,(x,y)是原图像的像素点,(x’,y’)是变换后新图像的像素点,n是图像阶数,即图像的尺寸大小,一般多为正方形图像。由于Arnold变换具有周期性,因此可利用其周期性Period来对图像进行反变换,即在水印嵌入过程中可将水印置乱次数作为密钥key,再进行水印嵌入,当水印提取出来时,再将其继续置乱(Period—key)次即可使其恢复至原图。这就是利用Arnold的正变换来进行的置乱恢复方案。由于这种方案用到了Arnold周期性,如果置乱次数key较小而周期较大时,就比较浪费时间。这里,我们对
5、二维Arnold的反变换进行了Matlab实现,在恢复时只需根据密钥key,置乱相同的次数:key次便可恢复出原水印图像,从而大大减少了置乱处理的时间,且也不像利用正变换恢复那样需要先进行周期计算,省去麻烦的一步,提高了效率。在实际情况中,我们应以处理时间最短为准则,根据置乱密钥来自由选择正、反变换策略恢复图像。三、作业过程1.Arnold变换打开Matlab软件,新建一个M—file,在里面打入如下代码:functionArnold(Image,key)%图像数值矩阵Arnold转换函数%key:图像需要变换迭的次数%M:转换后图像数据矩阵ifnargin<2
6、disp('请按程序的输入参数格式输入参数!!!');return;end%将Q赋值给M,计算Q的大小Q=imread(Image);M=Q;Size_Q=size(Q);%Arnold转换n=0;K=Size_Q(1);M1_t=Q;M2_t=Q;fors=1:keyn=n+1;ifmod(n,2)==0fori=1:Kforj=1:Kc=M2_t(i,j);M1_t(mod(i+j-2,K)+1,mod(i+2*j-3,K)+1)=c;endendelsefori=1:Kforj=1:Kc=M1_t(i,j);M2_t(mod(i+j-2,K)+1,mod(
7、i+2*j-3,K)+1)=c;endendendendifmod(key,2)==0M=M1_t;elseM=M2_t;endimwrite(double(M)/255,strcat('Arnold_',num2str(key),'_',Image),'bmp');imshow(M);然后保存为Arnold.m并运行,然后随便找一个图片,放在D:MATLAB7work文件夹里,而后在Matlab窗口的CommandWindow里按照格式Arnold(Image,key)输入Arnold('001.bmp',1)回车,这是1次Arnold变换,可以改变key
8、的值来改变变换次数,如如