基于三维混沌的图像加密

基于三维混沌映射的高效图像加密算法

引言

随着科学技术的快速发展,数字信息已在我们的日常生活中广泛传播。图像作为重要的数字源之一,已成为人们之间共享信息的一种常见且直接的方式。因此,大量图像通过计算机或手机在网络上传输。然而,由于存在未授权访问、读取和篡改等问题,图像的安全性已成为我们所有人面临的紧迫问题。为解决这一问题,可采用密码学技术来抵御非法攻击者,从而保护图像内容[1, 2]。

由于混沌系统(映射)具有非线性、遍历性以及对参数和初始条件的高敏感性等优异特性,基于混沌的图像加密算法近年来受到了广泛关注。例如,提出了一种二维 Logistic‐ICMIC级联映射并将其应用于图像加密方案中。通过同时采用比特级混淆与扩散,经过一些比较后结果显示具有更高的安全性、更低的计算量和更小的时间复杂度。在一项研究中,借助生物DNA序列操作和细胞神经网络提出了一种新的图像加密方案,其中设计了比特替换、密钥流生成和扩散过程。为了使密钥流依赖于明文图像,提出了一种反馈结构,解决了“传统置换操作只能打乱图像像素位置”的问题。

然而,当前一些基于混沌的方法是将加密算法分为置换和扩散两个阶段,并使用双混沌系统(映射)或设置两组密钥。例如,在[9]中,分段线性混沌映射被使用了两次,并采用两组独立的密钥;随后引入了一种新的扩散策略,并对像素比特位进行置换。在[10],中,切线延迟椭圆反射腔映射和斜帐篷映射均被用于加密算法中,其中一个用于置换操作,另一个用于扩散操作。为了解决这些问题,我们提出一种仅使用一个混沌映射和一组密钥的新图像加密算法。由于高维混沌系统(映射)能够表现出复杂的混沌行为,本文所提出的算法采用了三维混沌映射[11] 。本文其余部分组织如下:首先,详细描述所提出的图像密码系统;然后,进行仿真及相关安全分析;最后,对我们方法做出一些结论。

2. 所提出的图像密码系统

2.1 三维混沌映射

一种三维交织逻辑映射(ILM)[11]定义如下

$$
\begin{cases}
x_{i+1} = \left( k_1 y_i x_i z_i \mu_1 \right) \mod 1 \
y_{i+1} = \left[ \frac{k_2}{y_i + z_i} + x_i \mu_2 \right] \mod 1 \
z_{i+1} = \left[ x_i y_i + k_3 z_i \mu_3 \right] \mod 1
\end{cases}
\quad (1)
$$

其中 $0 < \mu_1 \leq 3.999$,$k_1 > 33$,$k_2 > 37$,$k_3 > 35$,$\mu_2,\mu_3$ 是固定的。那么,上述 ILM 将表现出超混沌行为。更多内容可参考文献 [11]。

2.2 加密过程

通常,有意义的自然图像中相邻像素之间具有很强的相关性。为了降低这种相关性,我们采用置换方法来打乱像素位置,即对所有像素进行交换。假设明文图像的大小为 $P \in \mathbb{R}^{m \times n}$。在算法中通过设置随机的密钥作为ILM的初始条件。为了使生成的密钥流依赖于明文图像,计算一个因子

$$
s = \sum_{i,j} P(i,j)^2 \quad (2)
$$

其中 $s$ 是一个整数。然后,它被设计并转换为一个小数

$$
u = f(s) \quad (3)
$$

其中 $f(s)$ 是一个通过迭代的循环操作使 $s/10$ 小于10的函数。接下来,密钥通过以下方式更新

$$
\begin{cases}
x_0 = (x_0 + 0.1 / 3 + u) \mod 1 \
y_0 = (y_0 + 0.2 / 5 + u) \mod 1 \
z_0 = (z_0 + 0.3 / 7 + u) \mod 1
\end{cases}
\quad (4)
$$

其中 $\mod$ 是模函数。然后,通过迭代对ILM进行若干轮迭代,得到 ${x_0,x_1,x_2,\dots}$、${y_0,y_1,y_2,\dots}$ 和 ${z_0,z_1,z_2,\dots}$。这里,${x_0,x_1,x_2,\dots}$ 和 ${y_0,y_1,y_2,\dots}$ 用于第一次置乱,而 $W={x_t,x_{t+1},\dots,x_{t+m}}$、$V={y_t,y_{t+1},\dots,y_{t+n}}$ 和 ${z_0,z_1,z_2,\dots}$ 用于第二次置乱。需要注意的是,$x_0,y_0,z_0$ 会根据明文图像自动更新。因此,在通信过程中,发送方和接收方无需记录或保存它们。

置乱加密。选择两组集合 $X={x_{t+1},x_{t+2},\dots,x_{t+m}}$ 和 $Y={y_{t+1},y_{t+2},\dots,y_{t+n}}$,其中 $t$ 是为避免有害影响而设置的一个数。对这两组集合进行排序函数操作,并获得索引 ${h_1,h_2,\dots,h_m}$ 和 ${l_1,l_2,\dots,l_n}$。然后,根据 $H$ 对明文图像的行进行交换(即将第 $i$-th 行移动到第 $h_i$-th 行)以及根据 $L$ 对列进行交换(即将第 $i$-th 列移动到第 $l_i$-th 列)。由此,通过第一次置乱得到置换后的图像 $A$。再次选择两组集合 $W={w_{t+1},w_{t+2},\dots,w_{t+m}}$ 和 $V={v_{t+1},v_{t+2},\dots,v_{t+n}}$,并将所有元素转换为灰度层级由

$$
W = \left[ W \times 10^{14} \right] \mod n, \quad V = \left[ V \times 10^{14} \right] \mod m
$$

根据图像大小对置换后的图像分别进行行和列的循环置换,得到新图像 $B$。因此,在第二次置乱后,置换加密完成。

扩散加密。为了抵御统计攻击,通常在置换之后采用扩散来改变明文图像中的灰度分布。通过使用密钥 $x_0$、$y_0$ 和 $z_0$ 迭代 ILM,可以获得三个序列,即 ${x_0,x_1,x_2,\dots}$、${y_0,y_1,y_2,\dots}$、${z_0,z_1,z_2,\dots}$。然后将它们排列为 ${x_0,y_0,x_1,y_1,\dots}$ 和 ${x_0,z_0,x_1,z_1,\dots}$。丢弃前几次迭代以避免有害影响后,选取部分元素形成两个长度为 $mn$ 的随机集合,即

$$
S_1 = {x_{r+1},y_{r+1},x_{r+2},y_{r+2},\dots,x_{r+mn},y_{r+mn}}
$$

$$
S_2 = {x_{r+1},z_{r+1},x_{r+2},z_{r+2},\dots,x_{r+mn},z_{r+mn}}
$$

为了匹配图像大小,$S_1$ 和 $S_2$ 按从上到下、从左到右的顺序被重新排列为矩阵 $D \in \mathbb{R}^{m \times n}$ 和 $F \in \mathbb{R}^{m \times n}$。在所提出的算法中,扩散加密设计如下:

$$
\begin{cases}
D_i = \left[ 10^{14} \times d_i \right] \mod 256 \
F_i = \left[ 10^{14} \times f_i \right] \mod 256 \
k_e = \left[ 3k_1 + 5k_2 + 10^{14} \times z_0 \right] \mod 256 \
C_i = (B_i + D_i + F_i + k_e) \mod 256
\end{cases}
\quad (5)
$$

其中 $i=1,2,\dots,m$。$C_i$、$B_i$、$D_i$、$F_i$ 分别表示行。$e$ 是一个元素全为1的向量。因此,可得到密文图像 $C$。

2.3 所提出算法的流程图

我们提出了一种新的图像加密算法,该算法采用一个混沌系统和一组密钥。所提出的图像加密方案的示意图如图1所示。

示意图0

2.4 解密过程

由于我们的方法中设计的置换‐扩散结构是对称密码,因此解密过程可以通过加密过程的逆操作来实现。要从密文图像恢复出明文图像,首先以逆序进行扩散,然后对逆向循环操作执行置换,最后对所有列和行进行逆向交换。

3. 仿真

在本节中,为了验证所提出算法的有效性,随机选取了一些图像(灰度和彩色)进行测试,如图2所示。仿真在Windows 7系统的PC上使用MATLAB R2011b进行。从这些结果可以看出,与明文图像相比,密文图像没有泄露任何有用信息。

示意图1 Lena的明文图像,(b) Lena的密文图像,(c) Cameraman的明文图像,(d) Cameraman的密文图像,(e) Rice的明文图像,(f) Rice的密文图像,(g) Building的明文图像,(h) Building的密文图像,(i) Lake的明文图像,(j) Lake的密文图像,(k) Tree的明文图像,(l) Tree的密文图像)

4. 安全分析

4.1 密钥空间

密钥空间是密钥的组合。在我们的方法中,使用了ILM中的三个初始条件 $x_0$、$y_0$ 和 $z_0$,而不考虑其他控制参数。因此,如果精度设置为 $10^{-14}$,则密钥空间大小可达 $10^{42}$。这样,穷举攻击将变得不可能。

4.2 直方图

图像的直方图显示了消息的统计信息,尤其是可以在其中观察到像素值的分布。为了使统计攻击不可行,理想的图像密码系统应使密文图像中的灰度分布均匀。图3显示了使用我们方法前后Lena、Boat和Baboon的直方图。因此,攻击者很难对所提出的算法发起统计攻击。

示意图2 Lena的明文图像,(b) Lena的密文图像,(c) Boat的明文图像,(d) Boat的密文图像,(e) Baboon的明文图像,(f) Baboon的密文图像)

4.3 信息熵

信息熵 [12] 通常用于测试接收到的图像/消息的随机性,其定义为

$$
E(m) = \sum_{i=0}^{L-1} p(m_i) \log_2 \frac{1}{p(m_i)} \quad (6)
$$

其中 $L = 2^k$,对于灰度图像 $k = 8$。表1列出了部分测试图像的结果。显然,密文图像的信息熵值接近理论值8。

测试图像 明文图像 密文图像
Lena 7.4532 7.9974
Peppers 7.5715 7.9993
Baboon 7.3579 7.9994

4.4 明文图像的敏感性

像素变化率(NPCR)和归一化平均变化强度(UACI)是两种有效工具 [13],用于衡量对明文图像任何改变的敏感性,其计算方式如下

$$
\text{NPCR} = \frac{\sum_{i,j} D(i,j)}{m \times n} \times 100\% \quad (7)
$$

$$
\text{UACI} = \frac{\sum_{i,j} |C’(i,j) - C(i,j)|}{m \times n \times 255} \times 100\% \quad (8)
$$

其中

$$
D(i,j) =
\begin{cases}
0, & \text{if } C’(i,j) = C(i,j) \
1, & \text{otherwise}
\end{cases}
\quad (9)
$$

其中 $C’$ 和 $C$ 是两个密文图像。通过随机改变位置(203,176)处的一位,彩色图像Lena的结果列于表2和表3中。从中可知,所有NPCR值均超过99.5%。因此,所提出的算法对明文图像具有高敏感性,能够有效抵抗差分攻击。

通道 UACI NPCR
R 33.3494 99.6384
G 33.2799 99.5544
B 32.1391 99.5513
通道 UACI NPCR
Lena 33.1534 99.5880
Boat 33.1481 99.5838
Peppers 33.4113 99.6151

5. 结论

本文提出了一种基于三维混沌映射的图像加密算法。结合传统的置换‐扩散加密结构,我们的方法采用了双重置换。然后,进一步进行扩散操作以重写明文图像的灰度分布。幸运的是,我们仅使用一个混沌映射和一组密钥即可实现高安全性。为了验证我们算法的性能,展示了密钥空间、直方图、信息熵和敏感性分析结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值