该代码实现了一种基于DNA加密和二次置乱的图像加密算法。具体过程如下:

  1. 将四幅二维图像存储为一个三维矩阵I。

  2. 对每一幅图像进行哈希处理得到一个长度为4的哈希向量,分别记为'haxi_dec1'、'haxi_dec2'、'haxi_dec3'、'haxi_dec4'。将这四个值拼接成一个长度为4的向量'haxi',并进行归一化处理得到'haxi_norm'。

  3. 对第一幅图像进行混沌系统加密,得到一个长度为r的序列X。对每一个图像分块,并按照X的序号进行DNA编码,得到'Q1_1'、'Q1_2'、'Q1_3'、'Q1_4'。同时对R也进行分块,并按照Y的序号进行DNA编码,得到'Q2'。将'Q1_1'和'Q2'按照Z的序号进行DNA运算,得到'Q3_1'。将'Q3_1'和上一块按照Z的序号进行DNA运算,得到'Q4_1',即扩散后的块。将每一块扩散后得到的结果按照H的序号进行DNA解码,得到'Q_1'。同样的方式分别对其余三幅图像进行加密得到'Q_2'、'Q_3'、'Q_4'。

  4. 将四个矩阵存入'Q_jiami'中。

  5. 对图像进行二次置乱。首先以G通道平均灰度值为密钥对'Q_1'、'Q_2'、'Q_3'、'Q_4'进行行置乱。然后以B通道平均灰度值为密钥对行置乱后的矩阵进行列置乱。

  6. 最终得到的四个矩阵'Q_1'、'Q_2'、'Q_3'、'Q_4'即为加密后的图像。其中,'Zigzag'对多幅图像形成的三维图像立方体的置乱作用体现在第3步,每一幅图像分块后,先对其进行'Zigzag'扫描得到一维序列,再进行DNA编码和解码等操作,最后再将每一块的结果通过'Zigzag'逆置乱还原为二维图像块,最终形成加密后的图像。在整个过程中,没有直接用到'Zigzag'逆置乱,但是在第3步中,对每一块进行DNA解码后,需要将结果通过'Zigzag'逆置乱还原为二维图像块。

基于DNA加密和二次置乱的多幅图像加密算法

原文地址: https://www.cveoy.top/t/topic/n0YC 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录