【图像加密】基于 AES算法的图像位平面加密解密算法附Matlab代码
✅作者简介热爱科研的Matlab仿真开发者擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。 往期回顾关注个人主页Matlab科研工作室 关注我领取海量matlab电子书和数学建模资料个人信条格物致知,完整Matlab代码获取及仿真咨询内容私信。 内容介绍一、引言在数字化时代图像作为信息传播的重要载体其安全性至关重要。图像加密技术旨在保护图像内容不被未授权访问和篡改。高级加密标准AES作为一种广泛应用且高度安全的对称加密算法被引入到图像加密领域。将 AES 算法与图像的位平面处理相结合形成了基于 AES 算法的图像位平面加密解密算法为图像信息提供了有效的保护。二、AES 算法基础2.1 AES 算法概述AES 算法是一种分组密码算法由美国国家标准与技术研究院NIST在 2001 年发布。它取代了旧的 DES数据加密标准算法以其更高的安全性、效率和灵活性成为现代密码学中的重要组成部分。AES 支持 128 位、192 位和 256 位的密钥长度并且对 128 位的数据块进行加密和解密操作。2.2 AES 算法结构字节代换SubBytes这是一个非线性变换通过一个 S 盒替换盒将数据块中的每个字节替换为另一个字节。S 盒是根据有限域 GF (2^8) 的乘法逆元和仿射变换构造而成的它能够有效混淆数据隐藏数据的统计特性。行移位ShiftRows对数据块的每一行进行循环移位操作。第一行保持不变第二行循环左移 1 字节第三行循环左移 2 字节第四行循环左移 3 字节。这种操作打乱了数据块中字节的位置进一步增加了数据的混乱程度。列混淆MixColumns将数据块的每一列看作 GF (2^8) 上的多项式与一个固定的多项式进行乘法运算然后对结果取模以一个特定的不可约多项式为模。这一步骤使得每一列的字节相互混合扩散数据的影响。轮密钥加AddRoundKey将当前轮的子密钥与经过前面三步变换后的数据块进行异或操作。每一轮使用的子密钥是由主密钥通过密钥扩展算法生成的不同轮的子密钥不同增加了加密的复杂性。2.3 AES 加密与解密流程加密流程首先将明文数据分成 128 位的数据块然后进行一系列的轮变换。轮数取决于密钥长度128 位密钥对应 10 轮192 位密钥对应 12 轮256 位密钥对应 14 轮。每一轮都包含字节代换、行移位、列混淆和轮密钥加操作最后一轮不进行列混淆操作。解密流程解密是加密的逆过程。首先进行与加密最后一轮相反的操作即不包含列混淆的轮操作然后依次进行与加密过程相反的行移位、字节代换等操作最后通过轮密钥加操作得到原始明文。解密过程中使用的子密钥顺序与加密时相反。三、图像位平面原理3.1 图像的位平面表示一幅数字图像可以看作是由多个位平面组成。对于 8 位灰度图像每个像素值可以用 8 位二进制数表示这 8 位分别对应 8 个位平面。例如最左边的位最高有效位MSB表示图像中较亮区域的主要信息而最右边的位最低有效位LSB则包含图像的细节和噪声信息。3.2 位平面分离与合并位平面分离通过位运算可以将图像的每个像素值分离成不同的位平面。例如对于一个 8 位像素值 P可以通过 P 0x80 得到其最高位平面的值 表示按位与运算0x80 在二进制中为 10000000通过 P 0x40 得到次高位平面的值以此类推。位平面合并在需要恢复图像时将各个位平面的值重新组合成完整的像素值。例如将 8 个位平面的值通过适当的移位和按位或运算|可以得到原始的像素值。四、基于 AES 算法的图像位平面加密解密算法原理4.1 图像位平面加密过程位平面分离首先对原始图像进行位平面分离将图像分解为多个位平面通常对于 8 位灰度图像会得到 8 个位平面。AES 加密对每个分离后的位平面将其看作是一个二维的二进制数据矩阵按照 AES 算法的要求将其划分成 128 位的数据块。然后使用 AES 算法对每个数据块进行加密。由于位平面中的数据是二进制形式正好符合 AES 算法对数据块的处理要求。加密位平面合并将经过 AES 加密后的各个位平面重新合并形成加密后的图像。此时的图像在视觉上呈现出杂乱无章的噪声状无法直接识别其原始内容。4.2 图像位平面解密过程加密位平面分离对加密后的图像再次进行位平面分离得到加密后的各个位平面。AES 解密使用与加密时相同的密钥对每个加密后的位平面数据块进行 AES 解密操作。通过解密恢复出原始的位平面数据。位平面合并恢复图像将解密后的位平面按照原始顺序进行合并通过位运算将各个位平面的值组合成完整的像素值从而恢复出原始图像。五、优势与特点5.1 安全性AES 算法本身具有高度的安全性其复杂的轮变换结构和强大的混淆、扩散能力能够有效抵御各种密码分析攻击。将 AES 应用于图像位平面加密使得图像的每个位平面都得到了高强度的保护攻击者很难通过分析加密后的图像来获取原始图像信息。5.2 灵活性由于图像位平面加密是基于位操作对于不同格式和分辨率的图像都能适用。无论是灰度图像还是彩色图像可以将彩色图像转换为 RGB 三个通道分别对每个通道进行位平面加密都可以按照相同的流程进行加密和解密操作具有较好的通用性和灵活性。5.3 计算效率虽然 AES 算法本身的计算量较大但由于是对图像的位平面进行处理每个位平面的数据量相对较小在实际应用中可以通过并行计算等方式提高加密和解密的效率。同时AES 算法已经有成熟的硬件和软件实现方案进一步优化了计算效率。⛳️ 运行结果 部分代码function bytes_out sub_bytes (bytes_in, s_box)%SUB_BYTES Nonlinear byte substitution using a substitution table.%% BYTES_OUT SUB_BYTES (BYTES_IN, S_BOX)% transforms the input array BYTES_IN% into the output array BYTES_OUT% using the substitution table S_BOX.%% BYTES_IN has to be an array of bytes (0 BYTES_IN(i) 255).%applies the S-box to one or more input bytes bytes_in and truly manifestsbytes_out s_box (bytes_in 1); 参考文献[1]肖慧娟,丘水生,邓成良.基于混沌映射和AES算法的图像加密方案[J].计算机工程, 2007, 33(23):3.DOI:10.3969/j.issn.1000-3428.2007.23.053.
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2480559.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!