💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
📋📋📋本文目录如下:🎁🎁🎁
目录
⛳️赠与读者
👨💻做科研,涉及到一个深在的思想系统,需要科研者逻辑缜密,踏实认真,但是不能只是努力,很多时候借力比努力更重要,然后还要有仰望星空的创新点和启发点。当哲学课上老师问你什么是科学,什么是电的时候,不要觉得这些问题搞笑。哲学是科学之母,哲学就是追究终极问题,寻找那些不言自明只有小孩子会问的但是你却回答不出来的问题。建议读者按目录次序逐一浏览,免得骤然跌入幽暗的迷宫找不到来时的路,它不足为你揭示全部问题的答案,但若能让人胸中升起一朵朵疑云,也未尝不会酿成晚霞斑斓的别一番景致,万一它居然给你带来了一场精神世界的苦雨,那就借机洗刷一下原来存放在那儿的“躺平”上的尘埃吧。
或许,雨过云收,神驰的天地更清朗.......🔎🔎🔎
💥1 概述
参考文献:
摘要
基于混沌的图像加密算法在各个行业得到了广泛的应用,但许多基于低维混沌的图像加密算法,导致这些加密算法的安全性不能满足要求。为了应对这一挑战,本文提出了一种基于6D高维混沌系统和DNA编码技术的图像加密算法。首先,原始图像序列被几个随机混沌序列扩散和打乱。其次,产生的序列在DNA水平上被不同的混沌序列扩散和洗牌。最后,将不同的编码序列组合成加密图像。实验结果表明,与参考算法相比,所提出的算法在图像熵(值无限接近8)、像素相关性和图像复杂性(密钥空间大于2300)方面具有一定的优势,并且对几何和截断攻击具有良好的鲁棒性。
随着通信技术的飞速发展,数十亿张图像在公共网络上传输。诸如医学影像系统、军事图像数据库等许多应用,需要更加可靠、快速的安全系统来存储和传输数字图像[1,2,3]。因此,保护数字图像的安全性已成为至关重要的问题。在此背景下,已提出加密、隐写术和水印[4]三种方法。在这三种方法中,由于加密具有更高的安全性,已成为主要工具之一。在过去的几十年里,已使用各种方法提出了许多图像加密技术[5]。其中,许多加密算法,如AES、DES、IDEA、RSA等已被用于加密。然而,这些方法中的大多数仅适用于文本信息的加密,而不适用于图像加密,原因是图像具有诸如像素间相关性强、体积大和高冗余度等特性。为了解决这一问题,一些学者已经提出了各种加密方案[5,6,7,8,9]。在这些方法中,基于混沌的加密算法比其他加密算法受到更多关注,因为混沌对初始条件和系统参数敏感,这使得混沌在非周期性、随机性和不可预测性方面比传统加密算法具有更好的性能[10, 11]。基于上述原因,基于混沌的加密算法得到了迅速发展。一般来说,混沌加密系统使用序列来打乱原始图像中每个像素的位置。此外,在混沌序列中应用扩散操作也是图像加密中的一种通用方法。
一般来说,混沌系统分为低维混沌系统和高维混沌系统两类。第一类混沌系统通常生成一个或两个混沌流,相比之下,高维系统通常生成三个或更多混沌流。1991年,Habustu等人提出了基于混沌理论的图像加密算法[12],这促进了基于混沌的图像加密算法的发展。之后,又提出了许多图像加密算法。例如,Hua Z提出了一种基于“二维Logistic-Sine耦合映射”的图像加密算法[13],该算法是基于Logistic和Sine映射相结合的一种典型耦合映射;Pareek.N提出了一种使用一维混沌Logistic映射的图像加密算法,该算法的不同之处在于,在加密图像的每16个像素块之后,会对密钥进行修改[1]。Chanil Pak提出了一种使用新的一维混沌映射组合的颜色图像加密算法[14],Chanil提出的算法的实验结果比大多数基于低维混沌的图像加密算法性能更好。除此之外,还开发了许多基于各种低维混沌系统的图像加密算法[15,16,17]。然而,随着现代通信技术的快速发展,由于安全问题,低维加密已不能满足要求,因此高维加密方法得到了迅速发展。Guarnong提出了一种基于三维混沌Cat映射的对称图像加密方案[2],该算法是基于超混沌的图像加密算法发展中的一个里程碑。Mao YB提出了一种基于三维baker映射的快速图像加密方案[9, 10],与他论文中列出的其他算法相比,该算法在时间复杂度方面具有更好的性能。Adrian-Viorel Diaconu提出了一种通过使用骑士移动规则和数字混沌在RGB通道之间置换像素的颜色图像置乱技术[18]。高晓红提出了一种基于改进型Hénon映射的颜色图像加密算法[19],与经典Hénon映射相比,改进后的Hénon映射具有更丰富的混沌行为和更好的复杂性,这使得该算法具有更好的性能。除此之外,其他研究人员也提出了许多基于高维混沌系统的图像加密算法[20,21,22]。近年来,根据DNA计算的特性,如存储容量巨大、超低功耗和大规模并行性等,已提出了许多基于超混沌和DNA编码的加密方法[15,16,17, 22]。同时,由于位级置换的优越性,一些图像加密算法采用它来扰乱像素之间的关系[19, 23, 24]。此外,将低维混沌系统与其他方法相结合的一些算法也取得了很好的性能。[25]在2022年提出了一种基于混沌系统和子块螺旋扫描及矩阵乘法的方法,[26]也实现了一种基于单通道加密和混沌系统的快速图像加密算法。
上述论文中提出的方法要么基于低维混沌系统,导致复杂性不足,要么基于DNA编码,导致容易被破解。为了克服这些弱点,本文提出了一种基于6D超混沌系统和DNA编码的颜色图像加密算法。本文的贡献和创新点如下。首先,我们采用更复杂的6D超混沌系统作为随机流生成器,该系统根据密钥和原始图像的特性生成六个不同的混沌流。然后,本文将这六个流分为两组,分别用于置换和扩散。为了提高置换的效率和安全性,本文实现了像素级和DNA级的置换,这确保了原始图像和加密图像之间像素的关系足够弱。显然,这两个置换过程使得图像加密算法能够有效地抵抗剪切攻击。由于置换不会改变像素的分布和平均值,本文在置换后对混沌图像进行了像素级和DNA级的扩散操作。为了验证该算法,本文采用密钥空间、密钥强度、直方图、相关性等分析来评估所提出的算法。结果表明,该算法相比现有方法具有更好的性能。
📚2 运行结果
部分代码:
% Import the image.
%original_image = imread('photos\lena.jpg');
original_image = imread('photos\lena.png');
subplot(2,4,1); imshow(original_image);title('original image')
% The complementary principle of DNA.
dna_complementary_principle = [
65 67 71 84;
65 71 67 84;
67 65 84 71;
67 84 65 71;
71 65 84 67;
71 84 65 67;
84 67 71 65;
84 71 67 65;
];
dna_complementary_principle = uint8(dna_complementary_principle);
%{
===============================================
Encryption procedure
===============================================
%}
% Generate two persudo-random quences key_stream_diffusion and
% key_stream_scrambling, which are used to scramble the original image and
% diffuse the scrambled image respectively.
[key_stream_diffusion, key_stream_scrambling] = generate_chaotic_quence(original_image);
% Scramble the original image
scrambled_image = scramble_img(original_image, key_stream_scrambling);
subplot(2,4,2); imshow(scrambled_image);title('scrambled image')
% Diffuse the scrambled image
diffused_image = diffuse_img(scrambled_image, key_stream_diffusion);
%diffused_image = cut_and_paste_attack(diffused_image);
%diffused_image = noisy_attack(diffused_image);
subplot(2,4,3); imshow(diffused_image);title('diffused image')
% Convert the diffused image with DNA computing
encoded_image = encode_img(diffused_image, dna_complementary_principle);
subplot(2,4,4); imshow(encoded_image);title('encoded image')
%{
===============================================
Decryption procedure
===============================================
%}
% Decode the encoded image
decoded_image = decode_img(encoded_image, dna_complementary_principle);
% Dediffuse the diffused image
dediffused_image = dediffuse_img(diffused_image, key_stream_diffusion);
subplot(2,4,6); imshow(dediffused_image);title('dediffused image')
% Descramble the dediffused image.
% Descrambled image is the decrypted image, which is the copy of original
% image.
descrambled_image = descramble_img(dediffused_image, key_stream_scrambling);
subplot(2,4,7); imshow(descrambled_image);title('descrambled image')
🎉3 参考文献
文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。(文章内容仅供参考,具体效果以运行结果为准)
🌈4 Matlab代码、文章下载
资料获取,更多粉丝福利,MATLAB|Simulink|Python资源获取