【MATLAB】基于MATLAB的图像加密传输平台【GUI+源码+项目说明】
一、项目介绍
数字图像具有数据量大、像素间相关性强、视觉冗余度高的特点, 传统的字节级加密 (如 AES) 直接作用于图像比特流虽能保密, 但无法破坏图像在空间域的统计特征. 本项目采用 "Arnold 置乱 + 明文相关 Logistic 混沌扩散 + AES + SHA-256" 的组合方案:
- Arnold 置乱 打破像素位置相关性, 降低相邻像素相关系数.
- 明文相关 Logistic 混沌扩散 借助混沌系统的初值敏感性, 将像素值映射到近似均匀分布, 提升信息熵; 且 Logistic 初值由
SHA-256(明文)参与派生, 实现"明文 1 bit 变化 → 全图变化"的雪崩效应, 满足差分攻击鲁棒性 (NPCR/UACI) 的标准定义. - AES 在字节流层做强加密, 抵御已知明文攻击.
- SHA-256 提供端到端完整性校验, 应对信道破坏.
并配有 GUI 可视化界面,平台支持灰度图与彩色图,可一键完成 加密 → 信道传输 → 完整性校验 → 解密恢复,并实时输出
PSNR、信息熵、相邻像素相关性、NPCR、UACI 等量化指标。
二、整体技术路线
原图 → 方阵补齐 → Arnold 置乱 → Logistic 混沌扩散(XOR)
→ 序列化字节流 → AES-128 加密 → SHA-256 摘要
→ 信道仿真(normal/noise/loss/tamper)
→ 哈希校验 → AES 解密 → Logistic 逆扩散 → Arnold 逆置乱 → 恢复图
三、核心算法与公式
N:正方形图像行列像素总数(x,y):原始图像像素坐标(x′,y′):Arnold置乱后像素坐标μ:Logistic混沌系统控制参数xn:Logistic混沌迭代序列浮点值x0:Logistic混沌序列初始值kn:8位混沌密钥流序列(0∼255)P:明文图像像素值C:密文图像像素值KAES:AES−128加密密钥H:SHA−256哈希校验值 N:正方形图像行列像素总数 (x,y):原始图像像素坐标 (x',y'):Arnold置乱后像素坐标 \mu:Logistic混沌系统控制参数 x_n:Logistic混沌迭代序列浮点值 x_0:Logistic混沌序列初始值 k_n:8位混沌密钥流序列(0\sim255) P:明文图像像素值 C:密文图像像素值 K_{\text{AES}}:AES-128加密密钥 H:SHA-256哈希校验值 N:正方形图像行列像素总数(x,y):原始图像像素坐标(x′,y′):Arnold置乱后像素坐标μ:Logistic混沌系统控制参数xn:Logistic混沌迭代序列浮点值x0:Logistic混沌序列初始值kn:8位混沌密钥流序列(0∼255)P:明文图像像素值C:密文图像像素值KAES:AES−128加密密钥H:SHA−256哈希校验值
1、Arnold 猫映射置乱
正向加密公式
x′y′\]=\[1112\]\[xy\] mod N \\begin{bmatrix} x' \\\\ y' \\end{bmatrix} = \\begin{bmatrix} 1 \& 1 \\\\ 1 \& 2 \\end{bmatrix}\\begin{bmatrix} x \\\\ y \\end{bmatrix} \\bmod N \[x′y′\]=\[1112\]\[xy\]modN 逆向解密公式 \[xy\]=\[2−1−11\]\[x′y′\] mod N \\begin{bmatrix} x \\\\ y \\end{bmatrix} = \\begin{bmatrix} 2 \& -1 \\\\ -1 \& 1 \\end{bmatrix}\\begin{bmatrix} x' \\\\ y' \\end{bmatrix} \\bmod N \[xy\]=\[2−1−11\]\[x′y′\]modN #### 2、Logistic 混沌映射扩散公式 迭代公式 xn+1=μxn(1−xn),μ∈(3.57,4\],μ=3.99 x_{n+1} = \\mu x_n \\left(1 - x_n\\right),\\quad \\mu \\in (3.57,4\],\\mu=3.99 xn+1=μxn(1−xn),μ∈(3.57,4\],μ=3.99 密钥流生成公式 kn=⌊xn⋅1010⌋ mod 256 k_n = \\left\\lfloor x_n \\cdot 10\^{10} \\right\\rfloor \\bmod 256 kn=⌊xn⋅1010⌋mod256 像素加密 C=P⊕kn C = P \\oplus k_n C=P⊕kn 像素解密 P=C⊕kn P = C \\oplus k_n P=C⊕kn 混沌初值公式 x0=F(SHA-256(明文图像),AES密钥) x_0 = F\\left(\\text{SHA-256(明文图像)},\\text{AES密钥}\\right) x0=F(SHA-256(明文图像),AES密钥) #### 3、AES 密钥派生公式 KAES=SHA-256(用户口令)\[0:15\] K_{\\text{AES}} = \\text{SHA-256}(\\text{用户口令})\[0:15\] KAES=SHA-256(用户口令)\[0:15
4、SHA-256 完整性校验公式
H=SHA-256(C) H = \text{SHA-256}(C) H=SHA-256(C)
四、信道仿真
提供四种模式:
- normal:理想信道
- noise:随机位置替换为随机字节(高斯/突发噪声近似)
- loss:随机位置置 0(丢包)
- tamper:集中区间 +128 mod 256(恶意篡改)
五、优势
- 零第三方工具箱依赖:AES / SHA-256 全部走 MATLAB 自带 JVM
- 纯 .m GUI:开箱即用,无需 App Designer
- 明文耦合密钥流:抵御选择明文攻击 / 差分攻击
- 完整指标输出 + 直方图:直接用于实验报告与论文
- 批量扫描脚本:sweepResults.m / keySensitivity.m 自动生成密钥敏感性曲线
六、界面演示

