基于混沌系统和DNA编码运算的图像分块加密算法研究(Matlab代码实现)

      💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

 ⛳️赠与读者

💥1 概述

一、引言

二、混沌系统理论

三、DNA编码运算

四、图像分块加密算法

五、算法性能分析

六、实验验证与结果分析

七、结论与展望

📚2 运行结果

2.1 加密

2.2 解密

🎉3 参考文献

🌈4 Matlab代码实现


 ⛳️赠与读者

👨‍💻做科研,涉及到一个深在的思想系统,需要科研者逻辑缜密,踏实认真,但是不能只是努力,很多时候借力比努力更重要,然后还要有仰望星空的创新点和启发点。当哲学课上老师问你什么是科学,什么是电的时候,不要觉得这些问题搞笑。哲学是科学之母,哲学就是追究终极问题,寻找那些不言自明只有小孩子会问的但是你却回答不出来的问题。建议读者按目录次序逐一浏览,免得骤然跌入幽暗的迷宫找不到来时的路,它不足为你揭示全部问题的答案,但若能让人胸中升起一朵朵疑云,也未尝不会酿成晚霞斑斓的别一番景致,万一它居然给你带来了一场精神世界的苦雨,那就借机洗刷一下原来存放在那儿的“躺平”上的尘埃吧。

     或许,雨过云收,神驰的天地更清朗.......🔎🔎🔎

💥1 概述

一、引言

随着信息技术的飞速发展,数字图像作为信息的重要载体,其安全性问题日益凸显。传统的图像加密方法,如对称密码算法和差分传输技术等,存在密钥空间小、安全性不足等问题,已难以满足当前的安全需求。因此,研究新的图像加密算法,提高图像加密的安全性和抗攻击能力,具有重要的现实意义。

二、混沌系统理论

混沌系统是一类具有不可预测性和高度敏感性的非线性动力系统,适用于图像加密。混沌系统具有以下特点:

  1. 随机性:混沌系统可以生成具有高度复杂性和随机性的序列,这些序列可以作为加密密钥,增加加密算法的随机性和不可预测性。
  2. 初值敏感性:混沌系统对初始条件极为敏感,即使初始条件有微小的变化,也会导致系统行为的巨大差异。这一特性使得混沌系统能够生成大量不同的密钥,从而增加加密算法的安全性。

常用的混沌系统包括Logistic混沌系统、Chen混沌系统等。其中,Chen超混沌系统具有更大的密钥空间和更高的系统复杂程度,因此具有更好的加密效果。

三、DNA编码运算

DNA编码技术具有天然的并行性和信息冗余性,适用于图像加密中的信息编码和混淆。DNA由四种脱氧核苷酸组成,分别为腺嘌呤(A)、鸟嘌呤(G)、胞嘧啶(C)、胸腺嘧啶(T)。通过构建DNA序列与二进制序列之间的映射关系,可以将图像的二进制序列转化为DNA序列进行存储和传输,从而增强信息的保密性和隐蔽性。

DNA编码运算包括DNA序列的编码、解码以及基于DNA序列的运算等。这些运算可以利用DNA序列的并行性和信息冗余性,增加加密算法的复杂性和安全性。

四、图像分块加密算法

为了提高加密效果,本研究采用图像分块加密的策略。具体步骤如下:

  1. 图像预处理:将原始图像转换为二值图像,并划分为多个像素块。
  2. 密钥生成:利用混沌系统生成多个初始值和控制参数,构成算法的密钥。这些密钥将用于后续的图像加密过程。
  3. 混沌加密:对每个像素块使用混沌系统生成的混沌序列进行扩散和置乱操作,改变像素值。
  4. DNA编码运算:将置乱后的像素块转换为DNA序列,并利用不同的混沌序列对DNA序列进行进一步的扩散和置乱操作。
  5. 图像重构:将经过DNA编码运算的像素块重新组合成加密后的图像。

五、算法性能分析

  1. 安全性:通过混沌系统和DNA编码运算的结合,增加了加密算法的安全性和复杂性。混沌系统的随机性和不可预测性使得密钥的生成更加安全可靠;而DNA编码运算的并行性和信息冗余性则增强了加密数据的混淆效果。
  2. 高效性:采用图像分块加密的策略,可以并行处理多个像素块,提高加密效率。同时,由于混沌系统和DNA编码运算的计算量相对较小,因此整个加密过程具有较高的实时性。
  3. 灵活性:该加密算法支持多种混沌系统和DNA编码运算的选择,可以根据实际需求进行灵活配置。此外,算法还支持不同大小的像素块划分和不同的加密轮数设置,以满足不同应用场景的需求。

六、实验验证与结果分析

通过实验验证,本研究设计的基于混沌系统和DNA编码运算的图像分块加密算法在图像熵、像素相关性和图像复杂性等方面表现出较好的性能。具体结果如下:

  1. 图像熵:加密后的图像熵值较高,表明加密后的图像信息更加随机和不可预测。
  2. 像素相关性:加密后的图像像素相关性很低,表明算法具有良好的混淆性。
  3. 密钥空间:由于采用了高维混沌系统和DNA编码运算的结合,算法的密钥空间大于2^300,具有较高的安全性。

七、结论与展望

本研究设计了一种基于混沌系统和DNA编码运算的图像分块加密算法,该算法具有较高的安全性和实用性,可广泛应用于数字图像通信、医学图像处理、军事保密通信等领域。随着技术的不断发展和完善,相信该技术在未来的信息安全领域将发挥越来越重要的作用。未来可以进一步研究该算法在其他领域的应用,以扩展其实际应用价值。

📚2 运行结果

2.1 加密

2.2 解密

部分代码:

clear;clc;
I=imread('lena.bmp','bmp');         %读取图像信息
figure;imshow(I);title('原始图片');
figure;imhist(I);title('原始图片直方图');
axis([0 255 0 4000]);
[M,N]=size(I);                      %将图像的行列赋值给M,N
t=4;    %分块大小

%% 原始图片信息熵
T1=imhist(I);   %统计图像灰度值从0~255的分布情况,存至T1
S1=sum(T1);     %计算整幅图像的灰度值
xxs1=0;
for i=1:256
    pp1=T1(i)/S1;   %每个灰度值占比,即每个灰度值的概率
    if pp1~=0
        xxs1=xxs1-pp1*log2(pp1);
    end
end

%% 原始图像相邻像素相关性分析
%{
先随机在0~M-1行和0~N-1列选中1000个像素点,
计算水平相关性时,选择每个点的相邻的右边的点;
计算垂直相关性时,选择每个点的相邻的下方的点;
计算对角线相关性时,选择每个点的相邻的右下方的点。
%}
NN=1000;    %随机取1000对像素点
x1=ceil(rand(1,NN)*(M-1));      %生成1000个1~M-1的随机整数作为行
y1=ceil(rand(1,NN)*(N-1));      %生成1000个1~N-1的随机整数作为列
EX1=0;EY1_SP=0;DX1=0;DY1_SP=0;COVXY1_SP=0;    %计算水平相关性时需要的变量
EY1_CZ=0;DY1_CZ=0;COVXY1_CZ=0;                %垂直
EY1_DJX=0;DY1_DJX=0;COVXY1_DJX=0;             %对角线
I=double(I);
for i=1:NN
    %第一个像素点的E,水平、垂直、对角线时计算得出的第一个像素点的E相同,统一用EX1表示
    EX1=EX1+I(x1(i),y1(i)); 
    %第二个像素点的E,水平、垂直、对角线的E分别对应EY1_SP、EY1_CZ、EY1_DJX
    EY1_SP=EY1_SP+I(x1(i),y1(i)+1);
    EY1_CZ=EY1_CZ+I(x1(i)+1,y1(i));
    EY1_DJX=EY1_DJX+I(x1(i)+1,y1(i)+1);
end
%统一在循环外除以像素点对数1000,可减少运算次数
EX1=EX1/NN;
EY1_SP=EY1_SP/NN;
EY1_CZ=EY1_CZ/NN;
EY1_DJX=EY1_DJX/NN;
for i=1:NN
    %第一个像素点的D,水平、垂直、对角线时计算得出第一个像素点的D相同,统一用DX表示
    DX1=DX1+(I(x1(i),y1(i))-EX1)^2;
    %第二个像素点的D,水平、垂直、对角线的D分别对应DY1_SP、DY1_CZ、DY1_DJX
    DY1_SP=DY1_SP+(I(x1(i),y1(i)+1)-EY1_SP)^2;
    DY1_CZ=DY1_CZ+(I(x1(i)+1,y1(i))-EY1_CZ)^2;
    DY1_DJX=DY1_DJX+(I(x1(i)+1,y1(i)+1)-EY1_DJX)^2;
    %两个相邻像素点相关函数的计算,水平、垂直、对角线
    COVXY1_SP=COVXY1_SP+(I(x1(i),y1(i))-EX1)*(I(x1(i),y1(i)+1)-EY1_SP);
    COVXY1_CZ=COVXY1_CZ+(I(x1(i),y1(i))-EX1)*(I(x1(i)+1,y1(i))-EY1_CZ);
    COVXY1_DJX=COVXY1_DJX+(I(x1(i),y1(i))-EX1)*(I(x1(i)+1,y1(i)+1)-EY1_DJX);
end
%统一在循环外除以像素点对数1000,可减少运算次数

clear;clc;
I=imread('lena.bmp','bmp');         %读取图像信息
figure;imshow(I);title('原始图片');
figure;imhist(I);title('原始图片直方图');
axis([0 255 0 4000]);
[M,N]=size(I);                      %将图像的行列赋值给M,N
t=4;    %分块大小

%% 原始图片信息熵
T1=imhist(I);   %统计图像灰度值从0~255的分布情况,存至T1
S1=sum(T1);     %计算整幅图像的灰度值
xxs1=0;
for i=1:256
    pp1=T1(i)/S1;   %每个灰度值占比,即每个灰度值的概率
    if pp1~=0
        xxs1=xxs1-pp1*log2(pp1);
    end
end

%% 原始图像相邻像素相关性分析
%{
先随机在0~M-1行和0~N-1列选中1000个像素点,
计算水平相关性时,选择每个点的相邻的右边的点;
计算垂直相关性时,选择每个点的相邻的下方的点;
计算对角线相关性时,选择每个点的相邻的右下方的点。
%}
NN=1000;    %随机取1000对像素点
x1=ceil(rand(1,NN)*(M-1));      %生成1000个1~M-1的随机整数作为行
y1=ceil(rand(1,NN)*(N-1));      %生成1000个1~N-1的随机整数作为列
EX1=0;EY1_SP=0;DX1=0;DY1_SP=0;COVXY1_SP=0;    %计算水平相关性时需要的变量
EY1_CZ=0;DY1_CZ=0;COVXY1_CZ=0;                %垂直
EY1_DJX=0;DY1_DJX=0;COVXY1_DJX=0;             %对角线
I=double(I);
for i=1:NN
    %第一个像素点的E,水平、垂直、对角线时计算得出的第一个像素点的E相同,统一用EX1表示
    EX1=EX1+I(x1(i),y1(i)); 
    %第二个像素点的E,水平、垂直、对角线的E分别对应EY1_SP、EY1_CZ、EY1_DJX
    EY1_SP=EY1_SP+I(x1(i),y1(i)+1);
    EY1_CZ=EY1_CZ+I(x1(i)+1,y1(i));
    EY1_DJX=EY1_DJX+I(x1(i)+1,y1(i)+1);
end
%统一在循环外除以像素点对数1000,可减少运算次数
EX1=EX1/NN;
EY1_SP=EY1_SP/NN;
EY1_CZ=EY1_CZ/NN;
EY1_DJX=EY1_DJX/NN;
for i=1:NN
    %第一个像素点的D,水平、垂直、对角线时计算得出第一个像素点的D相同,统一用DX表示
    DX1=DX1+(I(x1(i),y1(i))-EX1)^2;
    %第二个像素点的D,水平、垂直、对角线的D分别对应DY1_SP、DY1_CZ、DY1_DJX
    DY1_SP=DY1_SP+(I(x1(i),y1(i)+1)-EY1_SP)^2;
    DY1_CZ=DY1_CZ+(I(x1(i)+1,y1(i))-EY1_CZ)^2;
    DY1_DJX=DY1_DJX+(I(x1(i)+1,y1(i)+1)-EY1_DJX)^2;
    %两个相邻像素点相关函数的计算,水平、垂直、对角线
    COVXY1_SP=COVXY1_SP+(I(x1(i),y1(i))-EX1)*(I(x1(i),y1(i)+1)-EY1_SP);
    COVXY1_CZ=COVXY1_CZ+(I(x1(i),y1(i))-EX1)*(I(x1(i)+1,y1(i))-EY1_CZ);
    COVXY1_DJX=COVXY1_DJX+(I(x1(i),y1(i))-EX1)*(I(x1(i)+1,y1(i)+1)-EY1_DJX);
end
%统一在循环外除以像素点对数1000,可减少运算次数

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

[1]王可,张红伟,李晓辉.基于DNA编码运算和混沌系统的图像分块加密算法[J].电视技术, 2017, 41(3):5.

[2]黄迎久,徐扬,李海荣.基于DNA编码和超混沌系统的图像加密算法[J].内蒙古科技大学学报, 2018, 37(3):9.

[3]张迪,夏立伟,张楚谦,等.基于SHA-3与DNA编码混沌系统的输电线路图像加密算法研究[J].科学技术与工程, 2022, 22(36):16075-16083.

🌈Matlab代码实现

资料获取,更多粉丝福利,MATLAB|Simulink|Python资源获取

                                                           在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

荔枝科研社

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值