基于DNA算法的遥感图像加解密matlab仿真

本文涉及的产品
实时数仓Hologres,5000CU*H 100GB 3个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
实时计算 Flink 版,1000CU*H 3个月
简介: 本程序基于DNA算法实现遥感图像加密与解密,利用DNA分子双螺旋结构和碱基配对规则完成信息编码。主要步骤包括图像预处理、DNA编码、DNA操作(杂交、酶切、连接)及密钥生成管理。通过直方图、相关性、熵和解密后图像质量分析验证效果。程序在MATLAB2022A版本运行,具有高效性和安全性,但需解决操作准确性与密钥管理复杂性等挑战。

1.程序功能描述
通过DNA算法对遥感图像进行加密和解密,分析加解密处理后图像的直方图,相关性,熵,解密后图像质量等。

2.测试软件版本以及运行结果展示
MATLAB2022A版本运行

1.jpeg
2.jpeg
3.jpeg
4.jpeg
5.jpeg
6.jpeg

3.核心程序

x0=0.07628261275522;
y0=0.77258554999421;
z0=0.14153066287988;
w0=0.53152627474363;
[lx,ly,lz,lw]=generate_chenstream_gen(x0,y0,z0,w0,KEY_STREAM_LENGTH,0);   
load func\Scramble_matrix.mat 

%dna_enc(img,img_dna,lx_rule);//对M*N的img进行DNA编码,输出为M*4N的img_dna,编码规则为rule
dat1    = dna_rules(imgs,lx(1),0);
%置乱 
dat2    = dna_rules(R,ly(1),0);
%扩散
dat3    = dna_xor(dat1,dat2,lz(1));
%解码
dat_enc = dna_rules(dat3,lw(1),1);
dat_enc = uint8(dat_enc);

subplot(132);
imshow(dat_enc);
title(['加密图']);

save func\encode.mat dat_enc      



% %计算熵
% disp('熵:');
% S1 = func_shang(imgs)
% S2 = func_shang(dat_enc)


% %相关性分析
% disp('相关性分析:');
% [R1,R2,R3]=func_xgx(imgs,Row,Col);
% [R1,R2,R3]
% [R1,R2,R3]=func_xgx(dat_enc,Row,Col);
% [R1,R2,R3]




load func\encode.mat         
[Row,Col,k]       = size(dat_enc);                    
KEY_STREAM_LENGTH = 4*Row*Col;

%generate_chenstream(x0,y0,z0,w0);//产生密钥流
x0=0.07628261275522;
y0=0.77258554999421;
z0=0.14153066287988;
w0=0.53152627474363;
[lx,ly,lz,lw]=generate_chenstream_gen(x0,y0,z0,w0,KEY_STREAM_LENGTH,1);
load func\Scramble_matrix.mat 

%dna_enc(img,img_dna,lw_rule);
dat_dec1 = dna_rules(dat_enc,lw(1),0);
%inv_diffusion(img_dna);
dat_dec2 = dna_rules(R,ly(1),0);
%inv_permu_trans(img_dna,ly);
dat_dec3 = dna_xor(dat_dec1,dat_dec2,lz(1));
%dna_dec(img,img_dna,lx_rule);
dat_dec  = dna_rules(dat_dec3,lx(1),1);
dat_dec  = uint8(dat_dec);

subplot(133);
imshow(dat_dec);
dat_dec_=dat_dec;
title(['解密图']);
save func\right_mat.mat dat_dec



PSNR = psnr(uint8(imgs), uint8(dat_dec))

4.本算法原理
DNA算法的核心在于利用DNA分子的双螺旋结构和碱基配对规则来进行信息编码和解密。DNA分子由四种核苷酸组成:腺嘌呤(A)、胞嘧啶(C)、鸟嘌呤(G)和胸腺嘧啶(T)。这四种核苷酸通过碱基互补配对规则(A与T配对,C与G配对)形成稳定的双链结构。

基于 DNA 算法的遥感图像加密步骤如下:

图像预处理

将遥感图像转换为灰度图像,以减少数据量。

对灰度图像进行分块处理,将其划分为若干个大小相同的子块。

DNA 编码

采用合适的编码方法将每个子块的像素值转换为 DNA 序列。例如,对于一个 8 位灰度值,可以使用 2 位 DNA 编码,即 00(A)、01(C)、10(G)、11(T)。

对每个子块的 DNA 序列进行随机化处理,以增加加密的安全性。

DNA 操作

杂交操作:随机选择两个子块的 DNA 序列进行杂交,生成新的 DNA 序列。

酶切操作:利用特定的酶对杂交后的 DNA 序列进行切割。

连接操作:将切割后的 DNA 片段进行连接,形成新的 DNA 序列。

重复上述操作多次,以增加加密的复杂性。

密钥生成与管理

生成随机密钥,用于控制 DNA 操作的过程。密钥可以包括杂交的位置、酶切的位置和连接的方式等信息。

对密钥进行加密存储,以确保安全性。

加密图像生成

将经过多次 DNA 操作后的 DNA 序列转换回二进制数据,得到加密后的子块。
将加密后的子块组合起来,形成加密后的遥感图像。

   基于 DNA 算法的遥感图像加解密是一种具有创新性和潜力的方法。通过利用 DNA 分子的结构和特性,结合密码学的原理,可以实现对遥感图像的高效、安全加密和解密。然而,目前该方法还存在一些挑战,如 DNA 操作的准确性和稳定性、密钥管理的复杂性等。
相关文章
|
4天前
|
传感器 算法 数据挖掘
基于协方差交叉(CI)的多传感器融合算法matlab仿真,对比单传感器和SCC融合
基于协方差交叉(CI)的多传感器融合算法,通过MATLAB仿真对比单传感器、SCC与CI融合在位置/速度估计误差(RMSE)及等概率椭圆上的性能。采用MATLAB2022A实现,结果表明CI融合在未知相关性下仍具鲁棒性,有效降低估计误差。
|
3天前
|
机器学习/深度学习 运维 算法
【储能选址定容】基于多目标粒子群算法的配电网储能选址定容(Matlab代码实现)
【储能选址定容】基于多目标粒子群算法的配电网储能选址定容(Matlab代码实现)
|
2天前
|
传感器 机器学习/深度学习 算法
【使用 DSP 滤波器加速速度和位移】使用信号处理算法过滤加速度数据并将其转换为速度和位移研究(Matlab代码实现)
【使用 DSP 滤波器加速速度和位移】使用信号处理算法过滤加速度数据并将其转换为速度和位移研究(Matlab代码实现)
|
2天前
|
机器学习/深度学习 算法 Java
基于灰狼优化算法(GWO)解决柔性作业车间调度问题(Matlab代码实现)
基于灰狼优化算法(GWO)解决柔性作业车间调度问题(Matlab代码实现)
|
3天前
|
算法 机器人 Serverless
【机器人路径规划】基于6种算法(黑翅鸢优化算法BKA、SSA、MSA、RTH、TROA、COA)求解机器人路径规划研究(Matlab代码实现)
【机器人路径规划】基于6种算法(黑翅鸢优化算法BKA、SSA、MSA、RTH、TROA、COA)求解机器人路径规划研究(Matlab代码实现)
|
3天前
|
供应链 算法 Java
【柔性作业车间调度问题FJSP】基于非支配排序的多目标小龙虾优化算法求解柔性作业车间调度问题FJSP研究(Matlab代码实现)
【柔性作业车间调度问题FJSP】基于非支配排序的多目标小龙虾优化算法求解柔性作业车间调度问题FJSP研究(Matlab代码实现)
|
3天前
|
传感器 算法 安全
基于分布式模型预测控制DMPC的单向拓扑结构下异构车辆车队研究(Matlab代码实现)
基于分布式模型预测控制DMPC的单向拓扑结构下异构车辆车队研究(Matlab代码实现)
|
5天前
|
负载均衡 算法 调度
基于遗传算法的新的异构分布式系统任务调度算法研究(Matlab代码实现)
基于遗传算法的新的异构分布式系统任务调度算法研究(Matlab代码实现)
64 11
|
5天前
|
机器学习/深度学习 传感器 算法
基于全局路径的无人地面车辆的横向避让路径规划研究[蚂蚁算法求解](Matlab代码实现)
基于全局路径的无人地面车辆的横向避让路径规划研究[蚂蚁算法求解](Matlab代码实现)
|
5天前
|
算法 安全 BI
基于粒子群算法的多码头连续泊位分配优化研究(Matlab代码实现)
基于粒子群算法的多码头连续泊位分配优化研究(Matlab代码实现)