基于MATLAB的混沌序列图像加密程序
一种基于混沌序列的数字图像加密算法

一种基于混沌序列的数字图像加密算法周焕芹(渭南师范学院数学与信息科学系,陕西渭南714000)摘 要:基于混沌序列给出了一种图像加密算法.借助Logistic混沌动力学系统过程既非周期又不收敛,且对初始条件敏感性,生成混沌矩阵,对原图像进行融合操作,实现了对图像的加密过程.实验结果证明,算法简单易行,安全性好.关键词:数字图像;混沌序列;图像加密;迭代;置乱中图分类号T N911.73 文献标志码:A 文章编号:1009—5128(2008)02—0011—04收稿日期:2007—05—31基金项目:陕西省基础教育科研“十一五”规划课题(SJJY B06297);渭南师范学院科研基金资助项目(06YKF011);渭南师范学院教学改革研究项目(JG200712)作者简介:周焕芹(1962—),女,陕西澄城人,渭南师范学院数学与信息科学系副教授20世纪60年代人们发现了一种特殊的自然现象———混沌(chaos),混沌是一种非线性动力学规律控制的行为,表现为对初始值和系统参数的敏感性、白噪声的统计特性和混沌序列的遍历特性,其吸引子的维数是分维,有十分复杂的分形结构,具有不可预测性.由于混沌序列有如此优良的密码学特性,混沌密码学成为现代密码学的重要研究内容.最早将离散混沌动力学系统应用于加密算法的是M atthe w s[1],1990年,他给出了一种一维的混沌映射.该映射根据初始条件产生的具有混沌特性的伪随机序列可以直接应用于一次一密的加密算法中,但是该混沌映射在使用计算机实现时会退化成周期序列,而且该序列的周期一般较小.1990年,Habutsu等人也给出了一种基于线性的Tent映射的混沌加密系统[2],该方法保留了混沌系统对于初始条件的敏感性.1994年,B iance利用Logistic映射产生实数序列,应用范围较广[1-4].随着网络技术的发展,大量个人和公众信息在网络上传播.信息的安全问题成为人们关注的热点,而信息安全中图像安全是众所关心的.对于图像信息,传统的保密学尚缺少足够的研究.随着计算机技术与数字图像处理技术的发展,对此已有一些成果[6].近年来,相继召开了关于数据加密的国际学术会议,图像信息隐蔽问题为其重要议题之一,且有关的论文以数字水印技术为主.数字图像置乱技术,可以看做数字图像加密的一种途径,也可以用做数字图像隐藏、数字水印图像植入、数值计算恢复方法和数字图像分存的预处理和后处理过程.作为信息隐藏的基础性工作,置乱技术已经取得了较大的发展,提出了很多有效的方法如:基于A rnold变换,F ASS曲线,分形技术,幻方,正交拉丁方,骑士巡游,仿射变换,原根,Gray码变换的置乱方法[7].本文应用离散混沌动力系统设计了一种图像加密/解密算法.该方法的特点是:无论从加密还是解密算法的设计都是由不同的动力系统提供的.本文依赖于随机密钥的非线性迭代完成图像的像素融合,其中所用的子密钥由离散混沌系统产生.分析和仿真结果表明,经过这样的融合,算法具有良好的安全性及鲁棒性.1 算法原理由混沌矩阵对图像置乱.从构成图像的像素角度考虑,一幅图像大小为M×N,具有256级灰度的图像,设图像为I m age,对应于像素点(i,j)的灰度值记为I m age(i,j),其中1≤i,j≤L,Endi m age(i,j)为(i,j)坐标处融合操作后图像的像素灰度值,即要设计映射f,使得 f:I m age(i,j)→End i m age(i,j)(1)为了使得融合后的像素灰度值Endi m age(i,j)具有不可预测性,本文采用离散混沌映射生成离散混沌矩阵Keyi m age(i,j)来达到这个目的.生成Keyi m age(i,j)的方法如下:采用目前广泛研究的Logistic映射构造混沌序列.混沌系统表述为 αk+1=μ・αk・(1-αk),k=0,1,2, (2)2008年3月第23卷第2期 渭南师范学院学报Journal of W einan Teachers UniversityM arch2008Vol.23 No.2其中,3.569946…≤μ≤4,α0∈(0,1).这样,Logistic映射可以定义在(0,1)上.给定初值μ和α,经过N-1次混沌迭代运算得到混沌实值序列α1,α2,…,αN,通过排序变换将这N个值由小到大排序,生成β1,β2,…,βN,并确定αi在β1,β2,…,βN中的位置编号,形成地址集合G1={g1,g2,…,g N,},反复操作M次,便生成混沌矩阵Keyi m age: Keyi m age=G1G2…G M(3)则置乱操作可表示为:Endi m age(i,j)=γi,,j×(I m age(i,j)-Keyi m age(i,j))+Keyi m age(i,j))mod256(4)其中γi,,j为由混沌系统生成的融合因子,这里采用Logistic映射生成(同(2)式).对图像的解密可由下式得到: I m age(i,j)=1γi,,j×(Endi m age(i,j)-Keyi m age(i,j))+Keyi m age(i,,j))mod256(5)2 图像加密解密算法由第一部分我们可以得到具体的加密解密算法如下:算法1:加密算法Step1.输入原图像I m age和迭代次数ti m es;Step2.输入密钥:μ1和α0,由式(2)和(3)生成混沌矩阵Keyi m age;Step3.输入密钥:μ2和γ0,由式(2)生成融合因子γi,,j;Step4.利用式(4)对原图象进行融合置乱,得到置乱图像Endi m age.算法2:解密算法Step1.输入置乱图像Endi m age和迭代次数ti m es;Step2.输入密钥:μ1和α0,由式(2)和(3)生成混沌矩阵Keyi m age;Step31输入密钥:μ2和γ0,由式(2)生成融合因子γi,,j;Step41利用式(5)对图像进行置乱恢复.3 算法分析从结构上分析,整个算法主要思想是利用Logistic混沌映射生成混沌矩阵,利用Logistic映射生成融合因子对原图像进行融合操作.基于混沌序列的数字图像加密算法,其安全性主要依赖于:(1)所选用的混沌序列的安全性:从式(3)可知,当Endi m age不可知,则要通过Endi m age直接解出I m age是不可能的,而当图像较大时,相应生成的混沌矩阵也会很大,采用穷举法进行破解也是困难的,因为其时间复杂度为O(M×N×256);(2)由Lo2 gistic映射生成融合因子使得破解更为困难.同时,由于混沌系统是拓扑可迁的,所以,初始时很小的误差会很快传递到整个吸引域相空间上,这一特点也增加了破译的难度.此外,加密者可以自由随意地选择密钥,这样的选择可以使得算法有着几乎一次一密特性的安全性.另外本文给出的算法密钥较多,比如:迭代次数ti m es,混沌序列初值α,μ1,γ0,μ2等等,使得破解更为困难,另外也可以减少密钥个数,比如在上述密钥中固定可别参数可以减少密钥,使得算法具有更高的灵活性,根据实际情况应用起来更为方便.4 数值实验根据以上算法,采用Logistic混沌序列进行图像融合.如图1所示:选择Lena图像(256×256)作为仿真图像,选择密钥分别为:μ1=4,α0=0.7,μ2=4,γ0=0.6,ti m es=3.・21・ 周焕芹:一种基于混沌序列的数字图像加密算法 第23卷图1 利用本文给出的算法的加密图像和解密图像从图1可以看出,算法能够有效的加密和解密原图像数据.图2是由错误密钥的解密图像(其中仅改变一个密钥μ1=4,ti m es =3,μ2=4,γ0=0.6,α0=0.7000000000000001).由图2可以看出即使密钥有很小的差异也无法解密出原图像,使用枚举搜索很难对加密图像进行解密.表明本文算法具有较好的安全性.5 结 论本文给出了一种图像加密算法,该算法具有较好的加密效果.算法思想为:首先是利用Logistic 混沌映射生成混沌矩阵,然后利用Logistic 映射生成融合因子对原图像进行融合操作,从而得到置乱图象.该算法的优点是密钥较多,使得用穷举发破解困难,另外本文在生成混沌矩阵和融合因子时均采用Logistic 映射,也可以用其它混沌映射增加加密效果和安全性.实验数据表明,本文算法具有很好的加密效果.・31・2008年第2期 渭南师范学院学报 图2 错误密钥的解密图像参考文献:[1]R A J M atthe w s .O n the derivation of a chaotic encryption algorithm [J ].C ryptologia .1989,(4):29—42.[2]T Habutsu,Y N ishio,I Sasase,et al .A secret cryptosyste m by iterating a chaotic m ap [A ].A dvances in C ryptology EU 2RCRYPT ’91[C ].B erlin:Springer -V erlag .1991,127—140.[3]M.E .B ianco,G .L.M ayhe w.H igh Speed Encryption Syste m and M ethod [J ].US Patent,1994,15(5):365—588.[4]Zhang Han,W ang X iufeng .A ne w i m age encryption algorithm based on chaos syste m [A ].International conference on robotic,intelligent syste m s and signals processing .Changsha,China .2003,778—782.[5]D ang P P,Chau P M.I m age encryption for secure Internet m ulti m edia applications [J ].IEEE T ransactions on Consum er Elec 2tronics,2000,46(8):395—403.[6]Yonghong Zhang,B aosheng Kang,Xuefeng Zhang .I m age Encryption A lgorithm B ased on Chaotic Sequence [C ].The 16THInternational Conference on A rtificial R eality and Telexistence,2006,221—223.[7]丁玮,齐东旭.数字图像变换及信息隐藏与伪装[J ].计算机学报,1998,21(9):838—843.[责任编辑 舒尚奇]A D i g it a l Image Encrypti on A lgor ith m Ba sed on Chaos SequencesZHOU Huan 2qin(Depart m ent of Mathe matics and I nf or mati on Science,W einan Teachers University,W einan 714000,China )Abstract:An algorith m of digital i m age encryp ti on is p resented .Based on chaos sequences,with the hel p of Logistic chaos dy 2na m ics,syste matic p r ocess is non 2peri od,non 2convergence and sensitivity t o the initial conditi ons,p r oducing the real chaos matrix t o substituti on the p ixel .W e get an algorith m for encryp ti on and decryp ti on a digital i m age .The nu merical experi m entati ons show that the hiding algorith m is efficient and safety .Key words:digital i m age;chaos sequence;i m age encryp ti on;iterative;scra mbling ・41・ 周焕芹:一种基于混沌序列的数字图像加密算法 第23卷。
一种基于复合混沌序列的图像加密方法

一种基于复合混沌序列的图像加密方法
基于复合混沌序列的图像加密方法是一种高效的数字图像加密方法,它可以有效地保护传输或存储的数字图像。
该加密方法主要是在杂质密码理论中引入复合混沌序列,而不是单纯地使用传统的密码解密机制来保护数字图像。
复合混沌序列是一种复合的随机数序列,是一种仿真混沌系统的结果。
它的混沌特性能够为加密技术提供极其有效的加密机制,包括一种新颖的加密技术——“M-R码”,它可以将一个复合混沌序列映射到一个M-R码,这种方法可以替代传统密码解密机制,更有效地保护数字图像。
基于复合混沌序列的图像加密方法同时利用了像素值混沌映射和混沌表示实现加密。
像素值混沌映射可以完全替代传统的密码解密机制,这样可以有效地实现加密任务。
混沌表示的加密算法使用复合混沌序列的性质,对图像的连续像素数据进行打乱,以此产生一个混沌表示的加密图像。
最后,基于复合混沌序列的图像加密方法采用了一种新的“门限混沌码”方法。
这种方法使用门限混沌码将已加密的图像像素值重新组合成一个新的加密图像,这样可以在更大程度上混沌化图像,并避免有水印痕迹可见。
总之,基于复合混沌序列的图像加密方法是一种高效且安全的数字图像加密方法,它能够有效保护数字图像的安全,使得攻击者无法获得足够的信息来破解加密图像。
基于混沌序列的图像加密解密算法_陈永红

张图像的大小为M×N个像素,其中 0 ≤ i ≤ M −1 , 0 ≤ j ≤ N −1 。 2.1 加密算法设计 Step 1 输入 M , N ,原始图像 I R = ( i , j , g ( i , j )) 。 Step 2 输入一维混沌映射式(2)的初始值 x 0 , 设置参数
a ,m的值和迭代次数n的值,用混沌映射(2)生成混沌序列:
图 1 加密解密过程
其中,对于加密解密过程的混沌系统是完全一样的。如 图1混沌系统式(2)的初始值 x 0 ,参数 a 、m的值和迭代次数 n的值对于加密解密处理过程完全一样,从而保证加密前的 图像和解密后的图像完全一致,即完全还原。
这一步利用第2步生成的混沌序列将图像的每列像素下 移(循环移动)变换到该列的另一位置,像素的灰度值不变。 Step5 得到加密图像的各个像素的新的灰度值 g ′(i , j ) , 生成加密图像 I E = ( i , j , g ′( i , j )) 。 Step6 终止算法。 2.2 解密算法设计 Step1 输入M,N以及加密图像 I E 。 Step2 这一步与加密过程第二步正好一样,输入一维混 沌映射式(2)的初始值 x 0 ,设置参数 a 、m的值和迭代次数n 的值,用混沌映射式(2)生成混沌序列: x0 , x1 , x2 ,L , xM + N −1 。 Step3
—104—
列加密图像。而本文用混沌系统式(2)生成的混沌序列直接 加密图像,该算法更简洁。 设原始图像为 I R ,我们用 ( i , j , g ( i , j )) 表示这一张图像,
(i , j ) 为某一像素坐标值, g(i, j) 表示该像素的灰度值, 这一
for i = 0 to M − 1 X i = xi mod N for j = 0 to N − 1 if j − X i ≤ N (i, j, g (i , j )) → (i, j − X i + N , g (i, j )) else (i, j, g (i , j )) → (i, j − X i , g (i, j )) end end
数字图像加密算法的研究与实现

数字图像加密算法的研究与实现摘要数字图像加密是进行数字图像信息保密的一种手段。
随着信息技术的飞速发展,数字图像在各个领域中有着极为广泛的运用,那么数字图像中所包含的信息安全性应受到重视。
数字图像本身具有数据量较大的特点,用传统的的加密方法往往无法达到加密的要求,许多学者对数字图像的信息安全性进行了多次研究并提出了许多强而有效的算法。
本文研究并实现了一种基于混沌序列置乱的数字图像加密算法,通过密钥产生混沌序列,将该混沌序列进行逻辑排序,并以此排列方法对数字图像进行加密。
该算法隐私性较强,在数字图像的加密和解密过程中均需要密钥的参与,因此不知道密钥的用户无法恢复数字图像,具有良好的保密性。
关键词:数字图像混沌加密数据隐藏AbstractDigital image encryption algorithm is a method about keeping the information of digital image secret.With the quick development of informational technology,the digital image has been utilized in many areas,so the security of message that digital images carry should be paid attention.Particularly ,digital images have the characteristic of a large amount of data,it can not meet demands about encryption that encrypting data in traditional way,which leads to a lot of scholars have spent much time and energy on researching the security about digital image information and illustrated many effective algorithm.This article discuss and illustrate a kind of digital image encryption algorithm based on chaotic array disruption,producing chaotic array according to the key,then logically arranging existed chaotic array,finally encrypt digital image with same logic.It shows better privacy.This process requires keys participating in both encryption and deciphering,so anyone does not know the key who can not rebuild the original image.Key words:digital image chaotic encryption hiding data目录摘要 (I)Abstract (II)绪论 (1)1数字图像加密的基础理论 (4)1.1密码学的介绍 (4)1.2 图像加密技术 (4)1.3数字图像的置乱 (5)1.4混沌加密简介 (5)1.5混沌加密安全性分析 (6)2开发工具简介 (8)3基于混沌的数字图像加密算法 (11)3.1数字图像混沌加密算法总体设计 (11)3.2 数字图像混沌加密算法 (11)3.3数字图像混沌解密算法 (13)4实验仿真与结果 (14)4.1编程实现相关函数及其方法 (14)4.2仿真结果 (14)4.2.1非彩色图像实验仿真 (14)4.2.2彩色图像实验仿真 (16)结论 (18)附录1混沌加密与混沌解密算法代码 (19)绪论计算机和网络的飞速发展为多媒体数字产品的使用、传播提供了极其便利的途径,然而由于数字产品具有极易被复制和修改的特性,使得数字作品的信息安全问题和版权保护成为迫切需要解决的难题。
混沌密码与数字图像加密应用

cout<<"How many logistic sequence do you wanna output?"<<endl;
cin>>k;
while(k<1||k>N)
{
cout<<"Input a positive integer from 1 to "<<N<<":"<<endl;
{int i=0;
float temp_1,temp_2,temp_3;
temp_1=x0;
while(k)
{
result[i++]=temp_1;
temp_2=1-temp_1;
temp_3=u*temp_1;
temp_1=temp_2*temp_3;
k--;
}
}
int main()
{
int i,k;
imhist(uint8(Ximage));
title('原图像的直方图');
figure(4)
imhist(uint8(Yimage));
title('加密之后的直方图');
%%置乱度分析
Yimage=double(Yimage);
sx=sum(sum((Ximage-256*rand(M,N)).^2));
实验项目与实验报告(1)
学科:信息与网络安全学号:141姓名:羊波时间:11月3日
实验项目:混沌密码与数字图像加密应用、信息隐藏
基于混沌系统的图像加密算法研究

基于混沌系统的图像加密算法研究随着图像技术的发展,图像加密技术已经成为了一个不可避免的问题。
现如今,在数字化信息传输中,尤其是在网络传输中,保证信息的安全性是非常重要的。
而其中,图像加密技术是保护图像信息安全的重要手段之一。
然而,传统的图像加密算法效果不佳,易受到攻击,因此研究基于混沌系统的图像加密算法显得尤为重要。
一、混沌系统的基本原理与应用混沌系统是一种复杂的动态系统,具有分形性、敏感性依赖性和随机性等特征。
其中,分形性表现为系统的自相似性,敏感依赖性表现为系统对初始条件和参数的敏感度非常高,随机性表现为系统长期的运动是不可预测的,因此,混沌系统的引入能够提高加密算法的随机性,保证信息传输的安全性。
混沌系统在信息安全中的应用有很多,除了图像加密算法,还有数据加密算法、语音加密算法等等,都可以利用混沌系统的特性提高其安全性。
二、基于混沌系统的图像加密算法的特点基于混沌系统的图像加密算法有以下特点:1、加密过程快速:混沌系统的计算具有快速性能,能够有效提高加密算法的速度。
2、加密效果好:通过混沌系统复杂的运动轨迹,可以使得图像加密后的像素点分布更加随机,增强了加密的随机性和不可预测性,保证信息的安全性。
3、加密系统具有可调性:通过调整混沌系统的参数,可以实现加密算法的可调性,进一步提高加密算法的安全性。
三、基于混沌系统的图像加密算法研究进展目前,关于基于混沌系统的图像加密算法的研究,已经取得了很大的进展。
其中,比较有代表性的算法有:1、Arnold变换和混沌映射Arnold变换是一种二维置换运算,可以将图像像素进行充分的混沌映射。
同时,通过与混沌映射相结合,加强了加密算法的随机性和不可预测性,保证了信息的安全性。
2、离散余弦变换和混沌置乱离散余弦变换是一种常用的图像压缩算法,也可以用于图像加密。
通过与混沌置乱相结合,可以使压缩后的图像得到更好的保护,同时保证加密算法的安全性。
3、混沌加法和混沌变换混沌加法和混沌变换可以同时作用于图像像素的映射,增加了加密算法的复杂度和随机性,保证了信息的安全性。
基于混沌序列的通用数字图像加密算法

基于混沌序列的通用数字图像加密算法沌序列,然后根据子密钥及图像类型将其转换为无符号整数序列,最后再依次与对应的像素值进行异或运算以实现置换加用评价指标对加密效果与安全性进行分析。
理论分析与实验结果表明,该算法密钥空间大,具有良好的加密效果、安全统计特性,且抗干忧能力较强。
键词 :数字图像加密 ;像素置换 ;混沌序列 ;Logistic 映射Universal Digital Image Encryption Algorithm Base on Chaotic SequenceLU Shou-dong(School of Information and Statisticsof, FiGuangxinanceandUniversity Economics ,Nanning,Guangxi 530003,China ) stract: In order to protect digital aimage's universal digitalinformation, image encryption algorithm based on is chaoticpropo sequencetly, according tokey the and the size of image, a chaoticis generated. sequence Then, according to the sub-key and the type of im chaotic sequenceis converted to an unsigned integer sequence. Lastly, pixelwill permutation be realizedby usencryptioning theXOR opera ween the unsigned integer sequence and each turn.corresponding The effect piofxel encryption value inis and al s osecurity analyzed by u evaluation index. Theoretical analysis and experimental results show that the algorithm has aeff large space of key, a good encryptionrity and statistical characteristics,a strong anti -anoisebility.words: digital image encryption; pixel permutation; sequenc; Logistice chaoticmapping引言可改变图像的直方图,因此安全性更好。
在Matlab中使用图像加密和解密技术

在Matlab中使用图像加密和解密技术图像加密和解密技术是保护图像信息安全的重要手段之一。
在信息时代,随着图像的广泛应用,图像加密和解密技术的需求也日益增加。
Matlab作为一种常用的科学计算软件,提供了丰富的工具和函数,使得图像加密和解密变得更加便捷和高效。
一、图像加密技术的基本原理图像加密技术通过对图像进行转换和混淆操作,使得原始图像的信息变得不可读取,达到保护图像信息安全的目的。
常见的图像加密技术包括置乱、替换、混淆等方法。
1.置乱方法:通过对图像的像素点进行置换操作,改变像素点的位置,使得原始图像的信息难以被还原。
常见的置乱方法有置乱矩阵法、置乱像素法等。
2.替换方法:通过对图像的像素点进行替换操作,改变像素点的值,使得原始图像的信息无法被识别。
常见的替换方法有置乱像素法、置乱位值法等。
3.混淆方法:通过对图像的像素点进行逻辑运算、异或运算等操作,改变像素点的值,使得原始图像的信息无法被解读。
常见的混淆方法有异或混淆法、逻辑运算混淆法等。
二、图像加密的Matlab实现在Matlab中,图像加密和解密的实现通常可以借助于图像处理工具箱和编程语言的支持。
下面以置乱方法为例,介绍如何在Matlab中实现图像加密。
1.图像置乱:首先,需要读取待加密的图像文件,并将其转换为Matlab支持的矩阵格式。
可以使用imread函数读取图像文件,得到灰度图像矩阵。
然后,使用randperm函数生成一个随机的置乱矩阵,该矩阵用于置乱图像的像素点位置。
可以使用reshape函数将矩阵转换为一维数组,再将图像矩阵按照置乱矩阵进行置乱操作。
最后,使用imwrite函数将置乱后的图像矩阵写入新的图像文件中,完成图像置乱操作。
2.图像解密:与图像加密相反,图像解密需要使用与加密相对应的逆操作。
在这里,我们需要使用与置乱相反的矩阵,将置乱后的图像还原为原始图像。
首先,读取已经加密的图像文件,并将其转换为Matlab支持的矩阵格式。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
设计题目:基于MATLAB的混沌序列图像加密程序
一.设计目的
图像信息生动形象,它已成为人类表达信息的重要手段之一,网络上的图像数据很多是要求发送方和接受都要进行加密通信,信息的安全与保密显得尤为重要,因此我想运用异或运算将数据进行隐藏,连续使用同一数据对图像数据两次异或运算图像的数据不发生改变,利用这一特性对图像信息进行加密保护。
熟练使用matlab运用matlab进行编程,使用matlab语言进行数据的隐藏加密,确保数字图像信息的安全,混沌序列具有容易生成,对初始条件和混沌参数敏感等特点,近年来在图像加密领域得到了广泛的应用。
使用必要的算法将信息进行加解密,实现信息的保护。
二.设计内容和要求
使用混沌序列图像加密技术对图像进行处理使加密后的图像
使用matlab将图像信息隐藏,实现信息加密。
三.设计思路
1.基于混沌的图像置乱加密算法
本文提出的基于混沌的图像置乱加密算法示意图如图1所示。
加密算法如下:首先,数字图像B大小为M×N(M是图像B的行像素数,N是图像B的列像素数),将A的第j行连接到j-1行后面(j=2,3,A,M),形成长度为M×N的序列C。
其次,用Logistic混沌映射产生一个长度为的混沌序列{k1,k2,A,kM×N},并构造等差序列D:{1,2,3,A,M×N-1,M×N}。
再次,将所产生的混沌序列{k1,k2,A,kM×N}的M×N个值由小到大排序,形成有序序列{k1′,k2′,A’,kM×N’},确定序列{k1,k2,A,kM×N}中的每个ki在有序序列{k1′,k2′,A’,kM×N’}中的编号,形成置换地址集合{t1,t2,A,tM×N},其中ti为集合{1,2,A,M×N}中的一个;按置换地址集合{t1,t2,A,tM×N}对序列C进行置换,将其第i个像素置换至第ti列,i=1,2,A,M×N,得到C’。
将等差序列D做相同置换,得到D’。
最后,B’是一个M×N的矩阵,B’(i ,j)=C’((i-1)×M+j),其中i=1,2,A,M;j=i=1,2,A,N,则B’就是加密后的图像文件。
解密算法与加密算法相似,不同之处在于第3步中,以序列C’代替随机序列{k1,k2,A,kM×N},即可实现图像的解密。
2.用MATLAB的实现基于混沌的图像置乱加密算法
本文借助MATLAB软件平台,使用MATLAB提供的文本编辑器进行编程实现加密功能。
根据前面加密的思路,把加密算法的编程分为三个主要模块:首先,构造一个与原图a等高等宽的矩阵b加在图像矩阵a后面形成复合矩阵c:
b=zeros(m1,n1);
ifm1>=n1
ifm1>n1
fore=1:n1
b=(e,e);
end
……
else
fore=1:n1
end
fore=1:(n1-m1)
b((m1+e-1),e)=m1+e-1
end
end
c=zeros(m1*2,n1);
c=zeros(m1*2,1);
c=[b,a];
然后,用Logitic映射产生混沌序列:
……
forn=1:n1+100x(n+1)=q*x(n)*(1-x(n));
endn=101:1:n1+100;
y(n-100)=x(n);
……
最后,采用冒泡法将产生的混沌序列值由小到大进行排序,并利用同样的换序条理依次对复合矩阵的列和行进行打乱排序:
forf=1:n1-1forh=f:n1ify(f)>y(h)k=y(f);
y(f)=y(h);
y(h)=k;
c1=c(:,f);
c(:,f)=c(:,h);
c(:,h)=c1;
end
……
forh=g:m1
if y(f>y<h)
k=y(f)
y(f)=y(h)
y(h)=k;
d1=d(:,f);
d(:,f)=d(:,h);
d(:h)=d;
end
……
解密的程序与加密的相反。
3.基于混沌的图像置乱加密算法效果分析
利用Logistic混沌序列对图像像素点置乱对图像文件加密,其效果要比用Logistic混沌序列直接对图像文件加密好,令x0=0.3001,图2(b)为用Logistic 混沌序列直接对图像文件爱你进行加密的图像,图2(c)为用Logistic混沌序列对图像像素点置乱对图像文件进行加密的图像,图2(d)为其的解密图像文件。
4.设计原理
运用异或运算将数据进行隐藏,连续使用同一数据对图像数据两次异或运算图像的数据不发生改变,利用这一特性对图像信息进行加密保护。
用户输入的密
码必须在0~1之间任何一个数据进行加密,并且加密的程序与解密的程序输入的密码必须一致才能正确解密。
四.
%该程序针对图像近似系数和高频系数进行加密,以达到加密的效果clear all;
t0 = clock; %测试程序运行时间
im=imread('tank.jpg');
im1=rgb2gray(im); %图像灰度化
im1=medfilt2(im1,[3 3]); %图像平滑处理
figure;
imshow(im1);
title('灰度化处理');
im1=double(im1);
%小波变换,获取图像的低频高频系数
[ca1,ch1,cv1,cd1]=dwt2(im1,'bior3.7');
figure(3);
subplot(231);
imshow(ca1,[]);
title('图像近似');
subplot(232);
imshow(ch1);
title('低频水平分量');
subplot(233);
imshow(cv1);
title('低频垂直分量');
imshow(cd1),;
title('高频分量');
%%%%%%以下为混沌加密算法%%%%%%
[M,N]=size(ca1);
e=hundungen(M,N,0.1);
tt=0.1;
fca1=mod(tt*ca1+(1-tt)*e,256);
subplot(235);
imshow(fca1,[]);
title('加密');
im2=idwt2(ca1,ch1,cv1,cd1,'bior3.7'); figure(4);
imshow(uint8(im2),[]);
title('灰度图像小波重构');
im3=idwt2(fca1,ch1,cv1,cd1,'bior3.7'); figure(5);
imshow(uint8(im3),[]);
title('加密图像小波重构');
%%%%%%以下为混沌解密算法%%%%%%
e=hundungen(M,N,0.1);
[fca1,ch1,cv1,cd1]=dwt2(im3,'bior3.7'); fca2=(fca1-(1-tt)*e)/tt;
im4=idwt2(fca2,ch1,cv1,cd1,'bior3.7'); figure(6);
imshow(uint8(im4),[]);
title('解密图像小波重构');
%置乱后图像的均值
figure(7);
imhist(uint8(im1));
title('初始图像的直方图');
subplot(222)
imhist(uint8(fca1));
title('ca1系数加密之后的直方图'); subplot(223)
imhist(uint8(im3));
title('加密之后的直方图');
subplot(224)
imhist(uint8(im4));
title('解密之后的直方图');
ssy=sum(sum(im3));
%置乱后图像的均值
uy=ssy/(M*N);
vy=sum(sum((im3-uy)^2));
ssx=sum(sum(im1));
%原图像的均值
ux=ssx/(M*N);
vx=sum(sum((im1-ux)^2)); Variancey=vy/uy; %置乱后图像的方差Variancex=vx/ux; %原图像的方差
%置乱度
DDD=Variancey/Variancex;
etime(clock,t0)
五.运行结果及分析总结
1.运行结果:
2.结果分析:
由程序的运行结果来看,原图被加密后在显示出来,已经无法辨别其内容,实现了图像数据的隐藏,这种混沌序列方法对图像数据的加密是十分有用,实现了信息的保密,在网络传输中能够很好地保护图像数据不被第三方轻易获取其内容,实现数据的隐藏保护。
3.心得体会
通过运用matlab语言进行图像数据的加解密,不仅了解了matlab本身处理信息的优越性也了解了信息安全的必要性,对于信息的保密是十分重要的,尤其是一些安全部门。
对于图像信息的加密了解了混沌序列的一些初步知识,对于混沌序列的思想有的一些了解,本程序是通过异或运算的特性对图像信息进行加解密,使图像信息的到保护。