博主简介: 专注、专一于Matlab图像处理学习、交流,matlab图像代码/项目合作可以联系(QQ:3249726188)
个人主页:https://blog.csdn.net/Matlab_ImagePro?spm=1011.2266.3001.5343
原则:代码均由本人编写完成,非中介,提供有偿Matlab算法代码编程服务,不从事不违反涉及学术原则的事。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
本次分享的是基于分数阶超混沌系统的图像加密算法,用matlab实现。(有疑问或者想交流细节的QQ:3249726188)
简述一下算法背景:之前的发表的博文,我们分享了基于组合混沌映射的图像加密算法,具体链接前之前博文:https://blog.csdn.net/Matlab_ImagePro/article/details/136584958?spm=1001.2014.3001.5502
这次分享的是分数阶组合混沌加密算法,文献提出了一种基于分数阶超混沌系统的加密算法。该分数阶超混沌系统的 Lyapunov 指数表明,其较以往的整数阶混沌系统具有更复杂的动力学行为。将明文序列间关系参入初值后利用分数阶混沌系统进行迭代,确保系统加密序列与于明文相关联。
简要来说,本次分享的算法就是采用Logistic 映射和分数阶chen混沌序列组合加密算法。具体算法参考文献见附件。
映射到图像算法原理上,简要步骤主要如下(详细算法原理文献有描述,这里只是简要描述框架步骤):
加密过程:
一、读取待加密图像
二、产生logistic算法序列,利用logistic算法对图像进行像素的置换(留意一下,这里是置换,只是改变了像素位置,不该变像素值)。
三、获取分数阶chen混沌序列,用分数阶chen混沌序列进行加密(这里是异或操作,对像素值进行加密,改变了像素值),得到加密图像。
解密过程:
理解了怎么进行图像加密,图像解密原理就容易理解了,解密是加密的逆向过程,具体如下:
一、读取已加密图像
二、获取分数阶chen混沌序列,用分数阶chen混沌序列进行解密操作(这里是异或操作,对像素值进行解密,恢复加密前的像素值),得到待置乱恢复图像。
三、产生logistic算法序列,利用logistic算法对解密步骤二的图像进行像素的置换(这里是置换,只是改变了像素位置,不该变像素值,恢复图像原值像素值位置,得到解密图像)。
最终对图像加密性能进行评价,呈现加密前后的直方图、像素相关性等指标值。
Matlab具体效果图步骤如下:
加密部分
一、读取待加密图像
二、产生logistic算法序列,利用logistic算法对图像进行像素的置换
三、获取分数阶chen混沌序列,用分数阶chen混沌序列进行加密,得到加密图像
解密部分:
一、读取已加密图像
二、获取分数阶chen混沌序列,用分数阶chen混沌序列进行解密操作
三、产生logistic算法序列,利用logistic算法对解密步骤二的图像进行像素的置换
至此,加密解密过程完成。
下面对图像加密性能进行评价,呈现加密前后的直方图、像素相关性等指标值。
加密前的直方图分布:
加密后的直方图分布:
加密前的相关性分布:
加密后的相关性分布:
至此,完成图像加密解密和评价的代码仿真。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Matlab图像处理
QQ:3249726188