找回密码
 立即注册

【自编】使用Lorenz混沌系统进行图像加密和解密的MATLAB代码

[复制链接]
发表于 2024-5-29 14:09:37 | 显示全部楼层 |阅读模式
主要部分:
1.设置Lorenz系统参数:sigma、beta、rho、x0、y0、z0、dt和n。
2.生成Lorenz系统的伪随机序列:调用lorenz_system函数生成Lorenz系统的x、y和z序列。
3.读取和调整图像:循环读取文件夹中的图像,调整其大小为与密钥大小相同。
4.生成矩阵密码:调用generate_key函数生成与图像大小相同的矩阵密钥。
5.加密图像:调用encrypt_image函数将调整大小后的图像与密钥进行加密。
6.显示加密结果及直方图:将原图和加密图像以及它们的直方图显示在subplot中。
7.解密图像:调用decrypt_image函数将加密图像与密钥进行解密。
8.显示解密结果及直方图:将加密图像和解密图像以及它们的直方图显示在subplot中。
9.计算明文图像和密文图像在各个方向上的像素差值。
10.绘制明文图像和密文图像在各个方向上的像素差值散点图和直方图。

最后的三个函数是用于生成Lorenz系统序列、生成矩阵密码、以及对图像进行加密和解密的函数。

代码中的图像加密和解密算法是基于将图像与密钥进行异或运算来实现的。这个算法使用了Lorenz混沌系统生成的伪随机序列作为密钥,并通过对图像的像素值与密钥进行异或运算来进行加密和解密操作。

文件列表:
├文件夹1:[20240526066]
│  ├(1)decrypt_image.m
│  ├(2)encrypt_image.m
│  ├(3)generate_key.m
│  ├(4)lorenz_system.m
│  ├(5)main.m
│  ├文件夹1:[Peppers]
│  │  ├(1)1.jpg
│  │  ├(2)2.jpg
│  │  ├(3)3.jpg
│  │  └█
│  ├(6)文件说明.docx
│  └█
└█

运行例图:
01.gif


使用Lorenz混沌系统进行图像加密和解密的MATLAB代码.rar (52.57 KB, 下载次数: 0, 售价: 400 积分)


回复

使用道具 举报

小黑屋|获取积分|网站地图|必过源码 ( 湘ICP备2020019413号-2 )

GMT+8, 2024-11-25 14:39 , Processed in 0.081098 second(s), 24 queries .

Powered by Biguo100

2006-2023 Biguo100 Team

快速回复 返回顶部 返回列表