数字图像置乱
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字图像置乱技术
摘要
随着多媒体技术、信息存储技术的飞速发展,以及网络带宽限制的放松,越来越多的数字图像得以在网络上传输,并逐步成为人们获取信息的主要手段。
网络上传输的数字图像有些无关紧要,有些却至关重要,这其中有可能涉及到个人隐私、公司利益、军事机密、国家安全,其价值无法衡量。
另一方面,Internet网络的日益普及使得任何人都有可能接触并搜集到网络中的图像信息,而不管它是善意的还是恶意的、合法的还是非法的,从而使得在网络上传输的图像安全倍受关注,字图像的安全已经成为信息安全领域中重要的研究分支,而置乱技术在数字图像加密技术中起着不可忽视的作用。
一般从客观景物得到的图像是二维的。
一幅图像可以用二维函数f(x,y)来表示,也可看作是一个二维数组,x和y表示二维空间XY中一个坐标点的位置,而f则代表图像在点(x,y)的某种性质F的数值。
例如常用的图像一般是灰度图像,此时f表示灰度值,它常对应客观景物被观察到的亮度。
需要指出,一般是根据图像内不同位置的不同性质来利用图像的。
本文为你重点介绍了数字图像置乱的原理,并介绍了两种基本的置换方法,分别是:二维坐标置乱法、基于Arnold变换的图像置乱方法,教你如何对你的图像进行加密,并对数字图像置乱程度进行测评,同时对未来可能的研究方向进行了展望。
选择了MATLAB7.1作为软件工具,所给出的程序代码均在其上测试通过。
关键词:MATLAB、数字图像置技术、二维坐标变换、Arnold变换、置乱度
1、问题的提出
随着网络技术的高速发展,大量的个人信息和公众信息在网上传播,使得信息安全显得日趋重要。
面对如此严峻的信息泄露问题,我们如何把一幅数字图像变换为一幅杂乱无章的加密图像,以保护个人隐私、公司利益、军事机密、国家安全,最后再通过解密过程,把置乱后的图像恢复为原始图像的过程为图像复原。
给出一张图形,对其进去以下操作:
(1)大概分析数字图像加密解密原理;
(2)设计两种图形置乱方法,运行并分析结果; (3)衡量评价图像置换程度; (4)分析总结两种方案。
2、模型假设
(1)程序中使用的图形为题目所提供,无损坏;
(2)图像保存在本电脑具体保存在I:\picture.jpg ; (3)图像大小为256*256
(4)M 、N 为图像的行、列的像素;
3、问题分析及建模
3.1、数字图像置乱技术(Digital Image Scrambling)加密原理
、
3.2图像置乱程度的衡量评价
图像置乱的目的在于打乱图像,使非法获取图像者无法识别图像内容,图像置乱度表明了图像被打乱的程度,图像经过置乱变换,越“乱”效果越好,保密性越好。
从图中可以看出图像Arnold 变换迭代次数较少时,置乱效果不好,但是置乱效果并不随迭代次数的增加而增加,观测Arnold 迭代50次和迭代100次的图像,主观很难判断哪个图像更乱。
重排列
原始图像 序列
加密图像
解密图像
序列
重新排序 重排列
重新排序
数字图像可看作是一个矩阵,这个矩阵的元素有其特殊性,这就是相关性,即距离相近的元素,其代表的图像信息等相差不大。
根据这一性质,可以知道图像置乱程度的大小与加密后图像的相关性有关,相关性越小说明置乱程度越高,反之越低。
图像的相关系数,可以直接反映任意两个像素之间的相关性,也就是在统计平均的意义上来计算它们之间的相似程度。
可用corr2()函数来检测矩阵的相似程度;发现Arnold 变换的相似度11r S -≤< ,当0r S =表示完全不相关,1r S =±表示完全相关。
3.3方法1问题分析及建模
3.2.1方法1:把图像看成二维的形式,采用二维坐标的形式对其进行置乱
3.2.1.1、加密原理:
将图形分解成二维坐标上的一个个点的组合,用G(i,j)(i=1,2,...M ,j=1,2...,N)表示各个点,然后通过一个方程将有序的点置乱,置乱的点组合起来的图便是加密后的图。
3.1.1.1.2分析:
G(i,j)为原图各点,G1(i,j)为加密图各点,用方程G1(i,j)=0.1*G(i,j)+0.9*Gadd(i,j)(对原来的点进行加权求和)得到G1(i,j),再将其按顺序输出,记得到置乱后的图像。
3.2.1.2、解密原理:
将置乱后的点G1(i,j)通过与原来方程的逆运算,得到G2(i,j),并将其组合起来,即得到恢复后的图像。
4、方法1求解
4.1.1加密程序:
G=imread('I:\picture.jpg'); subplot(1,3,1) imshow(G) title('原图')
Gadd=fix(256*rand(256,256,3)); for i=1:256 for j=1:256
G1(i,j)=0.1*G(i,j)+0.9*Gadd(i,j); %进行加权求和 end end
subplot(1,3,2) imshow(G1); %显示图像 title('置乱后的图像')
4.1.2结果为:
原
图置乱后的图像
经过G1(i,j)=0.1*G(i,j)+0.9*Gadd(i,j)变换,输出G1(i,j)即得到置乱后的图像; 4.2.1恢复图像程序如下:
4.2.2结果为:
原图置乱后的图像恢复后的图像
3.4.3结果分析:经过逆运算,置乱的图像又恢复到跟原图一样。
事实上我们也可以理解为G2(i,j)=G(i,j),所以恢复后的图像跟原图一样。
5、方法1分析总结
此方法方法原理简单,容易实现,运算量小,但同时存在以下部分不足:
(1)置乱后的图像不够加密,置乱度不够高;(置乱度的计算见附件(1)) (2)方程变换过于简单,容易找到逆运算,安全性不高;
for i=1:256 for j=1:256
G2(i,j)=(G1(i,j)-0.9*Gadd(i,j))./0.1; %还原图像 end end
subplot(1,3,3) imshow(G2); %显示图像
6、方法2问题分析及建模
6.1、方法2:基于Arnold 变换基础上的置换 6.1. 1、变换原理:
用一个矩阵M N A ⨯表示二维数字图像,矩阵元素(),a i j 代表图像第i 行第j 列像素的灰度值()1,2,,;1,2,,i M j N == 。
M 、N 为图像的行、列的像素,位置空间上的置乱实质上是由原图像矩阵M N A ⨯经一个可逆矩阵p 变换到密图矩阵1M N A ⨯的过程。
Arnold 变换为:
{}'11mod ,,0,1,,112'x x N x y N y y ⎛⎫⎛⎫⎛⎫
⎪ ⎪⎪
⎪⎝⎭⎝
⎭⎝⎭= ∈- ,其中N 为图像的宽度和高度。
用Arnold 变换遍历图像中所有点,就完成了一次图像的Arnold 变换。
这里是置乱后的
图像矩阵,置乱p 不改变原图像素的灰度值,密图1M N A ⨯与原图M N A ⨯有相同的灰度直方图,但改变了原图像M N A ⨯中像素的相邻位置,使得视觉系统无法从杂乱无章的图像中获得原图像信息,从而达到加密的目的。
6.1.2 、Arnold 变换的周期:
Arnold 变换之所以成为一种得到广泛应用的置乱算法,是因为Arnold 变换具有周期性,如果重复的进行Arnold 变换,经过一定的次数之后必然会还原出原始图像。
Arnold 变换的周期性与图像的大小有关系,但是不成正比。
如大小为128 ×128的图像的Arnold 变换的周期为96,大小为240 ×240的图像的Arnold 变换的周期为60。
下图为Arnold 变换周期
和图像尺寸关系图
Arnold 变换周期和图像尺寸关系图
下表给出了不同N 值与Arnold 变换的周期T 之间的关系。
7、方法2求解7.1.1、基于Arnold变换的图像置乱MATLAB程序:
7.1.2、实验结果对比及分析
原图变换1次G=imread('I:\picture.jpg');
w0 = double (G) / 255 ;
[m,n]=size(w0);
w1 =w0 ;
subplot(1,2,1)
imshow(w1 ,[ ]) ;
title('原图')
for k = 1:1 % 1为变换次数for x = 1:m
for y = 1 :n
x1 = x + y ;
y1 = x + 2*y ;
if x1 > m
x1 = mod(x1 ,m) ;
end
if y1 > n
y1 = mod(y1 ,n) ;
end
if x1== 0
x1 = m ;
end
if y1 == 0
y1 = n ;
end
w1 (x1 ,y1) =w0 (x ,y) ;
end
end
w0 =w1;
end
subplot(1,2,2)
imshow(w1 ,[ ]);
title('变换1次')
imwrite(mat2gray(w1),'no2.jpg');
再修改迭代次数分别为15、95、192、200次,进行对比分析。
原图变换15次
原图变换95次
原图变换192次
原图变换200次
8、方法2分析总结
从结果上看,Arnold 方法简单、容易实现,在不同迭代次数下,图像相似度较小,置乱效果较好,图形已经被置乱得面目全非,无法看出原始图像的端倪,且用corr2()函数来检测矩阵的相似程度;发现置乱后的图像相似度11r S -≤<,经192次置换后的图像
1r S =。
但该方法具有周期性,变换次数在一定的范围内与置乱程度成正比,但到一个周期结束时会恢复出原始图像。
所以有以下缺点:
(1)在图像置乱过程中使用的矩阵形式是固定的、复杂度不够,容易被破解; (2)图像的隐秘性只能依赖于置乱的次数,安全性仍需加强。
(3)运算量大而且求逆变换困难;
9、本文总结与展望
其中二维坐标置乱法,原理简单,容易实现,但加密过于简单,容易被解密,却置乱效果不是很好;Arnold 置乱方式实现容易,置乱效果较好,但由于在图像置乱过程中使用的矩阵形式是固定的,图像的隐秘性只能依赖于置乱的次数,安全性仍需加强;但是问题仍然存在,如果非法破译者不在乎恢复运算可能要花费的巨大计算时间,那么他就可以恢复出原始图像。
所以我们还必须考虑,在置乱过程的每一步都通过添加其它操作,来增加非法破译的复杂度。
因此,本文在实用性方面还有许多需要改善的地方,从而进一步提 高置乱算法在各方面的性能。
今后数字图像置乱技术的研究方向将侧重于完善图像置乱理论,提高置乱算法的安全性、稳健性,研究其在实际网络中的应用,建立相关标准等。
10.参考文献
[1] 韩明、王家宝、李林,数学实验,上海:同济大学出版社,2012.1 [2] 何正风,Matlab 在数学方面的应用,北京:清华大学出版社,2012.1 [3] 王薇等,MATLAB 从基础到精通,北京:电子工业出版社,2012.5 [5] 《Matlab 图形加密》。