🔥 内容介绍
一、图像加密的背景与重要性
随着数字技术和网络通信的飞速发展,图像信息的存储、传输和共享变得越来越便捷。然而,这也带来了严重的信息安全问题,彩色图像可能包含敏感信息,如医疗影像、军事图像、商业机密图像等,一旦被非法获取和篡改,可能导致严重的后果。因此,对彩色图像进行加密保护至关重要,它可以确保图像信息在传输和存储过程中的保密性、完整性和可用性。
二、比特层级加密原理
- 基本概念:比特层级加密是指在图像的二进制比特层面进行操作。彩色图像通常由红(R)、绿(G)、蓝(B)三个颜色通道组成,每个像素在每个通道上的值在计算机中以二进制数表示。比特层级加密通过对这些二进制比特进行特定的变换,改变图像的原始数据,从而达到加密的目的。
- 操作方式:常见的比特层级操作包括比特置换和比特异或等。比特置换是将图像像素的二进制比特位按照一定的规则重新排列。例如,对于一个 8 位二进制数表示的像素值,可以将其第 1 位与第 8 位交换,第 2 位与第 7 位交换等。比特异或则是将图像像素的二进制比特与一个特定的密钥序列进行异或运算。由于异或运算具有可逆性,即 A⊕B=C 则 C⊕B=A,在解密时使用相同的密钥序列与加密后的比特再次进行异或运算,就可以恢复原始图像数据。
三、混沌映射原理
- 混沌现象:混沌是一种确定性的非线性动力学系统所表现出的貌似随机的行为。混沌系统对初始条件极其敏感,初始值的微小差异会导致系统演化结果的巨大不同,且其行为具有长期不可预测性和遍历性。这些特性使得混沌在图像加密领域具有很大的应用潜力。
- 混沌映射在图像加密中的应用:在图像加密中,常用的混沌映射有 Logistic 映射、Tent 映射等。以 Logistic 映射为例,其数学表达式为 xn+1=μxn(1−xn),其中 xn 是第 n 次迭代的值,μ 是控制参数(3.5699456<μ≤4 时系统进入混沌状态)。通过选择合适的初始值 x0 和控制参数 μ,生成混沌序列。这个混沌序列可以作为密钥用于图像加密,例如生成与图像像素数量相同长度的混沌序列,将其与图像的比特数据进行运算(如异或运算),从而打乱图像数据,实现加密。混沌映射生成的密钥具有良好的随机性和不可预测性,增加了加密图像的安全性。
四、基于比特层级和混沌映射的彩色图像加密实现
- 加密过程:首先,将彩色图像分解为 R、G、B 三个颜色通道。然后,利用混沌映射生成三个混沌序列,分别对应三个颜色通道。对于每个通道,将像素值转换为二进制比特形式,接着对这些比特进行比特置换或与相应的混沌序列进行比特异或操作。经过这些操作后,将处理后的二进制比特转换回像素值,重新组合 R、G、B 通道,得到加密后的彩色图像。
- 解密过程:解密是加密的逆过程。首先从加密图像中分离出 R、G、B 通道,然后使用与加密时相同的混沌映射和初始条件生成混沌序列。对每个通道的像素值再次转换为二进制比特,进行与加密相反的操作(如逆比特置换或与混沌序列再次异或),将处理后的比特转换回像素值,最后合并三个通道得到原始的彩色图像。
五、安全分析
- 密钥空间分析:基于混沌映射的加密方法,其密钥空间主要由混沌映射的初始值和控制参数决定。由于混沌系统对初始条件的极端敏感性,即使初始值有极其微小的变化,生成的混沌序列也会截然不同。合适选择混沌映射的参数范围,可以获得足够大的密钥空间,使得攻击者通过穷举法破解密钥几乎不可能。
- 敏感性分析:混沌映射的特性使得加密后的图像对密钥具有高度敏感性。即使密钥有微小的偏差,解密后的图像也会与原始图像完全不同,这保证了只有拥有正确密钥的合法用户才能准确解密图像。同时,图像本身的微小变化(如改变一个像素的值),经过加密后会在整个图像中产生显著的变化,这体现了加密算法对明文的敏感性,增加了攻击者通过篡改部分数据来获取有用信息的难度。
- 抗攻击性分析:通过比特层级和混沌映射相结合的加密方法,加密后的图像在统计特性上与原始图像有很大差异,有效地抵抗了统计攻击。例如,攻击者试图通过分析加密图像的直方图等统计特征来获取密钥或还原图像是非常困难的。此外,由于混沌序列的伪随机性和不可预测性,该加密方法对已知明文攻击、选择明文攻击等常见攻击方式也具有较强的抵抗力。
⛳️ 运行结果
📣 部分代码
%%================================================================================
%This functionto is to demonstrate image encryption using the er.
%If you have any questions, please email me and I will try to response you ASAP.
%It worthwhile to note that all following source code is written under MATLAB R2022b
% and that files may call built-in functions from specific toolbox(es).
%%================================================================================
function [ bit_1_24HW ] = Function_bitplane( B )
B=double(B);[H,W0] = size(B);W=W0;
% BR = B(:,:,1);BG = B(:,:,2);BB = B(:,:,3);
% B_H_3W(:,1:W)=BR;B_H_3W(:,W+1:2*W)=BG;B_H_3W(:,2*W+1:3*W)=BB; %RGB size -> grayscale size H*3W
% bit-plane decomposition
bitPI=zeros(H,W,8);
for i=1:8
bitPI(:,:,i)=bitget(B,i);
end
B1=bitPI(:,:,1);B2=bitPI(:,:,2);B3=bitPI(:,:,3);B4=bitPI(:,:,4);
B5=bitPI(:,:,5);B6=bitPI(:,:,6);B7=bitPI(:,:,7);B8=bitPI(:,:,8);
B_H_24W(:,1:W)=B1;B_H_24W(:,W+1:2*W)=B2;B_H_24W(:,2*W+1:3*W)=B3;B_H_24W(:,3*W+1:4*W)=B4;
B_H_24W(:,4*W+1:5*W)=B5;B_H_24W(:,5*W+1:6*W)=B6;B_H_24W(:,6*W+1:7*W)=B7;B_H_24W(:,7*W+1:8*W)=B8;
% step2 convert to 1D image bit matrix B
bit_B=B_H_24W';
bit_1_24HW=reshape(B_H_24W',1,H*8*W);
end
🔗 参考文献
Security analysis of a color image encryption based onbit-level and chaotic map", Multimedia Tools and Applications