EncryptionandDecryptionResearchofDigitalImageBasedonMatlab
Abstract:Digitalimageencryption,decryptiontechnologyiswiththedevelopmentofinformationsecurityandconfidentialityareconsidered.Gooddigitalimageencryptionalgorithmbasedontheonehand,canachievethepurposeofmakingillegalusersunabletodecipherimagecontent.KeyWords:digitalimage;encryption;decryption;Matlab0引言
随着社会科学的进步,多媒体技术、信息存储技术的飞速发展,以及网络普及率的提升,越来越多的数字图像得以在网络上传输,并逐步成为人们获取信息的主要途径,因此对图像的安全保密有更高的要求。例如,图像数据所有者在Internet上传输他所拥有的图像时,为了保护自身的利益,就需要对发送的图像通过可靠的加密技术进行处理;在远程医疗系统中,病人的照片等图像数据必须在加密之后才能在网上传输。于是图像的加密、解密技术就应运而生了。本文探讨了几种加密解密算法,包括像素点随机打乱、图像行列随机乱序、色彩饱和度混乱重置等,并给出了三种算法的Matlab实现代码。
Matlab里的imread函数可用于读取图片文件中的数据。读进去的数据为一个三层的矩阵,矩阵的行或列表示图像每一个像素点的位置。矩阵的第一层、第二层、第三层分别代表红、绿、蓝三种像素(RGB色域)。对此,可设计以下几种加密方法:①随机打乱各层的行或列。②随机打乱像素点③像素点RGB值的缩放。
第一章随机打乱各层的行或列
打乱矩阵行或列的方法运算步骤少、运算速度快,可对较大图像文件进行加密,缺点是对于一些特殊的图像无法进行加密。下面以随机打乱行为例介绍加密解密方法。
用imread函数将图像读入矩阵RGB中,假设RGB是一个m行n列3层的矩阵。randsample可产生随机向量,用此函数产生一个与图像矩阵RGB的行数m相等的整数随机数列并返回到r中。这样就可以将原图像矩阵的行随机打乱,将打乱后的矩阵返回至RGBS中。用find函数找出向量r内从1到m的元素的位置并返回到向量f。至此就可以将打乱的图像还原。效果图如下:
1加密后解密后图1.1随机打乱各层的行加密解密效果图加密后解密后图1.2随机打乱各层的列加密解密效果图2加密后解密后图1.3随机打乱各层的行、列加密解密效果图但是对于一些特殊的图像这种方法不能进行加密。如下:
加密后解密后图1.4特殊图像加密解密效果图第二章像素点随机打乱
像素,又称画素,为图像显示的基本单位。每个像素都有各自的颜色值,可采三原色显示,因而又分成红、绿、蓝三种子像素(RGB色域),或者青、品红、黄和黑(CMYK色域,印刷行业以及打印机中常见)。像素点随机打乱算法即将图像文件的每一个像素点随机打乱。这种算法的加密效果非常好,加密用的随机数列更提高了这种算法的加密性,但是由于真彩图像的矩阵元素
3非常多,这种加密算法运算速度较慢。
用imread函数将图像读入矩阵RGB中,假设RGB是一个m行n列3层的矩阵。randsample可产生随机向量,用此函数产生一个值为从1到m*n*3的行向量并返回到r中。这样就可以将原图像矩阵的所有像素点随机打乱,将打乱后的矩阵返回至RGBS中,在用reshape函数将RGBS中的所有元素重置为新的
的矩阵并返回到RGBSS中。用find函数找出向量r内从1
到m的元素的位置并返回到向量f。至此就可以将打乱的图像还原。效果图如下:
加密后解密后图2.1像素点随机打乱加密解密效果图第三章像素点RGB值的缩放
每个像素都有各自的颜色值,其颜色值按一定倍数缩放,将其原数值进行覆盖,便产生了与原图像不同的图像,起到了加密的作用。这种加密方法加密效果会随倍数的增加其效果会更好,但由于过于简单,易被解密。
用imread函数将图像读入矩阵RGB中,假设RGB是一个m行n列3层的矩阵。Rand函数产生一个m行n列3层的由随机数组成的矩阵,并返回到r中,再返回时可以数乘一个数改变其缩放倍数。用矩阵的点运算,通过点乘、点除,可得到加密解密图像。效果图如下:
4图3.1像素点RGB值的缩放加密解密效果图第四章结语
本文简单讨论了三种对数字图像加密解密的方法及原理,以及其matlab实现方法和加密效果。这三种方法只适用于加密后立刻解密,要广泛应用应选择一个具体的固定的算法进行加密解密。从以上分析可知,不同的加密方法适用于不同的场合,而加密算法的不同也使得图像加密效果和运算速度有所不同。图像加密解密技术随着信息安全的要求而越来越被重视,所以完善和改进图像加密算法将是今后要解决的一个重要问题。
5参考文献
[1]张博.基于Matlab的数字图像置乱方法研究[J].计算机与数字工程,2010,38(007):139-142.[2]刘卫国.Matlab程序设计与应用[M].高等教育出版社,2006.
[3]丁炜,齐东旭.数字图像变换及信息隐藏与伪装技术[J].计算机学报.1998,21(9).[4]博森,曹长修.图像置乱程度研究[C]./全国第二届信息隐藏学术研讨会论文集.北京.2000
6附件
程序一(jiamijiemihang.m):
clearRGB=imread('lenna.jpg');s=size(RGB);r=randsample(s(1),s(1));RGBS=RGB(r,:,:);t=1;j=1;f=1:r;whilet<=length(r)f(j)=find(r==t);t=t+1;j=j+1;endf;RGBE=RGBS(f,:,:);subplot(1,2,1);imshow(RGBS);title('加密后','fontsize',20);subplot(1,2,2);imshow(RGBE);title('解密后','fontsize',20);程序二(jiamijiemilie.m)
clearRGB=imread('321.jpg');s=size(RGB);i=randsample(s(2),s(2));RGBS=RGB(:,i,:);t=1;j=1;f=1:i;whilet<=length(i)f(j)=find(i==t);t=t+1;j=j+1;endf;RGBE=RGBS(:,f,:);subplot(1,2,1);imshow(RGBS);title('加密后','fontsize',20);subplot(1,2,2);imshow(RGBE);title('解密后','fontsize',20);程序三(jiamijiemihanglie.m)
clearRGB=imread('321.jpg');s=size(RGB);i=randsample(s(1),s(1));RGBS=RGB(i,:,:);t=1;j=1;f=1:i;whilet<=length(i)f(j)=find(i==t);t=t+1;j=j+1;endi1=randsample(s(2),s(2));RGBS1=RGBS(:,i1,:);t1=1;j1=1;f1=1:i1;whilet1<=length(i1)f1(j1)=find(i1==t1);t1=t1+1;j1=j1+1;endRGBE1=RGBS1(:,f1,:);RGBE=RGBE1(f,:,:);subplot(1,2,1);imshow(RGBS1);title('加密后','fontsize',20);subplot(1,2,2);imshow(RGBE);title('解密后','fontsize',20);程序四(jiamijiemi.m):
clearRGB=imread('lenna.jpg');s=size(RGB);n=s(1)*s(2)*s(3);r=randsample(n,n);RGBS=RGB(r);RGBSS=reshape(RGBS,s(1),s(2),s(3));t=1;j=1;f=1:n;whilet<=length(r)f(j)=find(r==t);t=t+1;j=j+1;endRGBE=RGBS(f);RGBEE=reshape(RGBE,s(1),s(2),s(3));subplot(1,2,1);imshow(RGBSS);title('加密后','fontsize',20);subplot(1,2,2);imshow(RGBEE);title('解密后','fontsize',20);程序五(jiamijiemirand.m):
clearRGB=imread('lenna.jpg');s=size(RGB);r=rand(s(1),s(2),s(3))*50;RGBD=im2double(RGB);RGBS=RGBD.*r;RGBE=RGBS./r;subplot(1,2,1);imshow(RGBS);title('加密后','fontsize',20);subplot(1,2,2);imshow(RGBE);title('解密后','fontsize',20);
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务