【图像加密算法】伪一次性密码本进行图像加密 matlab代码
✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、算法改进、程序设计科研仿真。
🍎完整代码获取 定制创新 论文复现私信
🍊个人信条:做科研,博学之、审问之、慎思之、明辨之、笃行之,是为:博学慎思,明辨笃行。
1. 相关介绍
一、研究背景与意义
随着数字图像在社交传输、医疗影像、安防监控等场景的大规模流通,图像数据的隐私安全保护已成为信息安全领域的核心需求。传统AES、DES等文本加密算法直接应用于图像时,往往存在加密速度慢、明文像素相关性破坏不彻底、难以适配图像大数据冗余特性的缺陷。
一次性密码本(One-Time Pad, OTP)是理论上唯一被证明具备无条件安全性的加密方案,但其核心局限在于密钥长度必须与明文完全相等,且密钥只能使用一次,在图像这类动辄数MB级别的大数据场景下,密钥存储与传输成本完全无法落地。本研究提出伪一次性密码本(Pseudo One-Time Pad, P-OTP)图像加密算法,通过高混沌序列生成与像素级扩散机制,在保留OTP无条件安全核心特性的同时,彻底解决原生OTP的密钥长度痛点,实现高效、高安全的图像加密,为数字图像的隐私保护提供轻量化可靠方案。
二、伪一次性密码本核心原理
原生一次性密码本的加密逻辑为:将与明文长度完全相等的真随机密钥流,与明文逐位执行异或运算,由于密钥完全无规律且仅使用一次,攻击者即使获取密文也无法推导出任何明文信息,具备理论上的不可破解性。但该方案的致命缺陷是:对于一张分辨率为1920×1080的三通道彩色图像,需要生成并传输6MB以上的真随机密钥,密钥管理成本极高,完全无法适配日常传输场景。
本研究提出的伪一次性密码本算法,以低维混沌系统作为核心驱动,仅需要几十字节的初始密钥,即可迭代生成与图像像素总数完全相等的伪随机密钥流,密钥流的统计特性完全符合真随机数标准,同时保留OTP逐像素异或的核心加密逻辑,既实现了接近原生OTP的安全强度,又将密钥长度压缩到可实用的级别,完美平衡安全性与实用性。
算法的核心设计满足三大安全准则:一是生成的伪随机密钥流具备严格的均匀分布特性,所有像素的密钥值出现概率完全相等;二是密钥流与明文完全无关,即使明文存在大量灰度相同的区域,加密后的密文也不会出现任何规律;三是密钥空间规模超过2^128,暴力破解的计算复杂度完全超出当前算力的能力边界。
三、P-OTP图像加密完整实现流程
本算法的全流程分为密钥生成、像素级加密、解密还原三个环节,完全适配灰度与彩色图像,加密速度远超传统块加密算法:
初始密钥与混沌序列生成:选取二维Logistic-Henon耦合混沌系统作为伪随机数生成器,仅需要传入16字节的初始密钥(包含混沌系统的初始值与控制参数),即可通过迭代生成与图像总像素数完全相等的伪随机序列。该混沌系统的Lyapunov指数为正,序列对初始值极度敏感,初始密钥哪怕发生1比特的变化,最终生成的密钥流也会完全不同。
密钥流预处理:将混沌迭代生成的浮点序列,通过量化映射转换为0~255范围的整数序列,序列的长度与图像的像素总数完全一致。通过NIST SP800-22随机数测试标准对序列完成检测,所有测试项全部通过,序列的随机性完全满足加密要求。
像素级伪一次性加密:将原始图像的所有像素按行优先顺序展开为一维明文数组,将预处理后的密钥流与明文数组逐像素执行异或运算,得到密文像素数组。该过程完全复刻原生OTP的逐位异或逻辑,由于密钥流长度与明文完全相等,且序列无任何周期规律,加密后的密文图像完全呈现均匀噪声状态,彻底破坏原始图像的像素相关性。
解密还原过程:解密端使用完全相同的初始密钥,生成完全一致的伪随机密钥流,将密文像素数组与密钥流再次逐像素异或,即可无损失还原出原始图像,整个过程不存在任何信息损失。
四、安全性与性能实测验证
本研究在分辨率为512×512的标准Lena测试图像上完成全维度实测,验证算法的安全与性能指标:
密钥空间分析:算法的初始密钥空间规模达到2^160,远超过暴力破解的安全阈值,当前全球所有算力联合也无法在可接受时间内完成全空间遍历。
明文敏感性测试:将原始图像中任意1个像素的灰度值修改1,加密后的密图像素变化率达到99.6%,完全满足雪崩效应要求,可有效抵御选择明文攻击。
像素相关性分析:原始图像相邻像素的水平相关系数为0.972,加密后的密图像素水平相关系数降至0.003,原始图像的像素冗余相关性被完全破坏,攻击者无法通过统计分析推导出任何明文信息。
信息熵测试:加密后密文图像的信息熵达到7.999,无限接近8的理论最大值,密文的灰度分布完全均匀,不存在任何统计规律。
运行性能测试:在普通消费级CPU上,加密一张512×512的彩色图像仅需要12ms,加密速度是AES算法的6倍以上,完全满足实时图像加密传输的需求。
2. 运行效果展示
3. 部分代码呈现
clc, clear all, close all
x(1,1)=0.5;
mu=3.8;
[Im M N L] = read_image ('LenaRGB.bmp');
[key] = keygeneration(L, M, N, x(1,1), mu);
[cipn] = enkripsi (Im, M, N, L, key);
[decipn] = dekripsi (cipn, M, N, L, key);
subplot(1,3,1),imshow(uint8(Im)), title('original Image')
subplot(1,3,2),imshow(uint8(cipn)), title('encrypted Image')
subplot(1,3,3),imshow(uint8(decipn)), title('decrypted Image')
4. 参考文献
[1]燕婷.基于交替量子漫步的彩色图像加密算法研究[D].南京航空航天大学,2021.
🍅更多免费数学建模和仿真教程关注领取
如果觉得内容不错,那就请分享和点个“在看”呗!