基于混沌与私钥的图像加密技术

时间:2022-09-04 07:52:29

基于混沌与私钥的图像加密技术

【摘要】 提出一种基于logistic混沌序列与私钥图像相结合的图像加密技术。将待加密图像与从100张私钥图像中随机抽取出的图像合成,进而利用混沌序列对其进行行、列置乱,保证了足够大的密钥空间,最后将程序转化为具有易操作性与可移植性的加密软件。实验证明,该加密软件应用便捷安全性较高。

【关键字】 logistic 混沌与私钥 图像加密

混沌加密技术是近年来发展较快的非线性科学的重要分支,因其具有非周期、连续宽频带、类噪声和长期不可预测等特点,所以特别适用于保密通信等领域[1]。现有的混沌序列的研究是建立在统计分析上,或是通过实验测试给出的,这难以保证其每个实现序列的周期足够大,复杂性足够高,因而不能让人们放心地采用它来加密[2]。

本文提出一种基于logistic混沌序列与私钥图像相结合的图像加密技术。加密算法的程序开发平台为Matlab2012a,涉及计算机模拟环境为 Windows XP。借助于VC++版本的Matlab Compiler编译器将程序转化为具有易操作性与可移植性的加密软件。

程序设计流程基本思路如下,引入100张私钥图像,通过序号对私钥图像进行身份识别,将密钥图像预处理后与待加密图像合成,进而进行logistic映射置乱加密,从而得到加密图像。为了增加加密程序的隐蔽性,将私钥图片存储在移动存储器(如u盘)上,在程序的设计上使用try……catch……语句,当能按照所设置路径正确读取到私钥图像时,启动解密程序,否则显示一张预设图像。解密过程为加密过程的逆运算,其基本原理与加密过程一致。

Matlab所编程序都要在Matlab环境中运行,其操作较专业且可移植性较差,为此我们借助于Matlab自带的编译器Matlab Compiler将GUI程序中的.m文件与.fig文件进行封装,转换成exe文件。首先配置编译器,我们选择使用VC++6.0版本的编译器;其次,安装\toolbox\compiler\deploy\win32目录下的MCRInstaller。最后,调用编译器,输入mcc-m filaname,filaname为要转成exe文件的m文件。

最后,对该加密算法进行了安全性、实时性分析。首先,将本文所采用的加密算法应用于BMP图像的解密效果如图1。其中图1(a)为正确解密图像,1(b)为错误解密后图像,1(c)为无私钥图像的解密图像。

由图1(a)可见,正确密钥解密后的图像是清晰的、正确的、没有任何失真。图1(b)显示了用错误密钥(仅将密钥二改变0.01)解密后的图像,图像是模糊的、无法分辨的。图1(c)则给出了一张清晰但与原始图像毫不相干的图像,该图像具有一定的误导性可很好的隐藏原始图像。

第二、密钥空间分析。在本文所涉及的加密算法中,两个方程的参数和初始值都能作为密钥。matlab默认的数据类型是双精度(8个字节),数据具有16位有效数字,因此该算法的密钥空间可以达到1064,再加上100张私钥图像所占空间,此算法具有足够大的密钥空间抵抗攻击[3]。

第三、对此加密方案做实时性分析。本文所涉及的图像加密算法包含像素的置换、图像的加合等,虽然密钥空间较大但迭代次数较少,因此计算速度较快,可做到对图像的实时处理。

综上,本文所涉及的基于混沌与私钥图像结合的加密算法,经数值仿真实验证明,加密效果好,具有较强的抗攻击性,加密效率较高,能满足实时图像加密的要求;基于该算法的加密软件具有较强的移植性且操作方便,应用范围较广。

上一篇:基于Matlab仿真的区域传感器定位最佳节点布局... 下一篇:基于4G环境下移动图书馆服务平台构建探讨