MATLAB基于GUI图像置乱+混沌加密解密
一、课题介绍
1 混沌的解释
混沌密码学是一种新的密码加密算法,具有简单、高效、安全等优点。混沌密码学是混沌理论的一个重要的应用领域。混沌用于密码学主要依据混沌的基本特性,即随机性、遍历性、确定性和对初始条件的敏感性,混沌密码体系在结构上与传统密码学理论中的混淆(Confhainn)和扩散(Diffusion)概念联系起来,混沌理论和纯粹密码学之间的必然联系形成了混沌密码学。
2 混沌序列的生成
当迭代n次后,我们就得到了X(1)、X(2)、…,X(n)这么n个值。那么这就是一个混沌序列,是一维的暂且称作序列A,也就是我们想要得到的序列,在MATLAB中,可以看出X(i)(i=1,2,…,n)的取值是在(0,1)之间的——这是一个很好地特性,就像图像灰度值是在(0,255)之间一样。那么我们把这个一维序列归一化到(0,255)之间得到序列B。
3 加密过程
对于一幅MN大小的图像(暂且称为Picture),我们需要产生一个同样大小的矩阵来对其进行加密。如此说来,只需要迭代MN次得到序列A,再转成序列B,此时序列B是一维的,将其转化成MXN的二维矩阵(暂且称为Fuck)。因此,用Fuck与Picutre进行异或,便可得到一幅新的图像,称作Rod,如此便完成了一次图像加密,加密后的图像为Rod。
二、参考代码
% 预加载初始数据
load('mixparam_data.mat')
set(handles.edit1,'string',num2str(u))
% Update handles structure
guidata(hObject, handles);
setappda