李梅 李佳酿 陈飞翔
【摘要】由于混沌序列具有容易生成,对初始条件和混沌参数敏感等特点,近年来在图像加密领域得到了广泛的应用。因此可以借助Matlab编程语言,编写适当的算法将信息进行加解密,实现对秘密消息的加密保护。
【关键字】混沌序列 图像加密 Matlab语言
基金项目:2015年度西北民族大学中央高校基本科研业务费专项资金本科生项目资助(项目编号107422015010)
1混沌序列的生成原理
混沌是确定性系统的伪随机性,又具有确定性。其确定性是指其输出值由非线性系统的方程、参数和初始条件完全决定。只有以上条件相同就可以恢复出原始的混沌序列。而正是由于混沌序列有随机性这一特点,它才被广泛应用在图像加密技术中。
2混沌序列产生方法
在图像置乱加密算法中常用的几种混沌序列生成器有Logistic映射、Hybrid映射、Optically bistable(光学双稳)模型和Chebyshev映射等。
Logistic映射,即虫口模型,它是目前应用较为广泛的一种映射。Logistic映射有比较形象的生物学解释。假设,在某一范围内单一种类的昆虫繁殖时,其子代数量远远大于其亲代数量,这样可以认为,在子代出生后,其亲代的数量可忽略不计。
例如,设Mi是某种昆虫第i年的个体数目,其中Mi与i有关,i的取值为1,2,3,...
而一维Logistic映射可以有如下数学表示:
,其中为控制系数。
3加密技术设计原理
运用异或运算将数据进行隐藏,连续使用同一数据对图像数据两次异或运算图像的数据不发生改变,利用这一特性对图像信息进行加密保护。用户输入的密码必须在0~1之间任何一个数据进行加密,并且加密的程序与解密的程序输入的密码必须一致才能正确解密。
加密程序核心代码如下:
for i=1:N-1 %进行N-1次循环
m(i+1)=4*m(i)-4*m(i)^2; %循环产生密码
end
m=mod(1000*m,256); %1000*m除以256的余數
m=uint8(m); %强制转换为无符号整型
n=1; %定义变量n
for i=1:a
for j=1:b
e(i,j)=bitxor(m(n),x(i,j)); %将图像信息藏在e(i,j)矩阵中进行异或运算
n=n+1;
end
End
4运行结果与分析
加密前图片:
加密后图片:
解密后图片
5实验结果评估
由实验结果,原图被加密后再显示出来,已经无法辨别其内容,成功实现了对图像数据的加密。此混沌序列算法法非常适用对图像数据的加密,进而实现对数据的保密,在网络传输中能够很好地保护图像数据不被第三方轻易获取其内容,实现数据的隐藏保护。
参考文献
[1] 王工一. 混沌序列流密码[J ]. 计算机与信息技术, 2002, (3) : 1—6.
[2] 李昌刚,韩正之,张浩然.图象加密技术综述[M].计算机研展.2002.10
[3] 陈勇,孙劲庚.一种混沌密码序列的产生[M].南京:解放军理工大学出版社,2005.1