基于数字混沌的图像加密算法

2022-09-11

混沌系统是一种复杂的非线性动力学系统, 由于混沌具有良好的伪随机特性、轨道的不可预测性、对初始状态及控制参数极端敏感等特性, 使得混沌保密通信成为近年来保密通信领域内的一项重大研究课题。本文采用目前被广泛研究的离散Logistic映射来产生混沌序列, 讨论了一种基于混沌流密码的图象加密方案, 提出了把混沌用于密码学中的具体方法。

1 混沌加密算法

1.1 混沌的基本概念

简单起见, 这里讨论一维映射。考虑一个离散动态系统, 形式为

其中, f是在区间I=[0, 1]的连续序列.这个系统如果满足下列条件就可说为混沌[5]:

(1) 对于初始条件的敏感:

(2) 拓扑传递性:

(3) 在I中周期点密集:令

是f周期点的集合, 那么P在I中就是密集的:

1.2 Logistic Map

Logistic Map是目前被广泛研究的一维混沌系统, 参见[6,7], 混沌动力系统的研究工作指出, 当0≤u

本文采用离散Logistic映射产生混沌序列实现对数字图像的信息加密, 提出把混沌用于密码学中的具体方法。

2 混沌加密算法设计

2.1 加密算法设计

我们定义三种bit操作符, 分别为“保持操作”、“异或操作”和“非操作”, 用符号#, ⊕和-表示。#和-都是一元操作, 而⊕则是二元操作, 为当前bit与前一bit的异或操作。整个加密过程如下:

步骤一:选择一个8bit的序列, K1={K10, K11......K17}作为初始密钥序列, 其中K1i∈ (0, 1) 。假设二元序列C={C0, C1.....Cn-1}是一组加密比特流, 这里n是这组数据的比特数, 并随着加密进程的进行而增加。设C=K1={K 10.....K 17}。

步骤二:输入double型x0, 作为初值, x0∈ (0, 1) 。然后用Logistic映射得到8个处在 (0.3, 0.7) 的数。把这8个数组成一组定义为X={x0, ....x7}。

由公式

取出上述8个二元数字并重新编组为Cn={CS0...CS7}。这组Cn可以根据一下公式被进一步映射到一组浮点数y0∈ (0, 1) :

然后, 把y0作为初始值, 用Logistic映射产生一组新数ym∈ (0.3, 0.7) 。这组ym就是下个步骤用来决定符位号操作类型的。

步骤三:把区间 (0.3, 0.7) 不均匀的分割位下面三个互不交叠的区间 (0.3, 0.4) 、 (0.4, 0.6) 、 (0.6, 0.7) 。一次循环中的符位号操作类型就是由此时的ym落在哪个区间来决定。如果ym∈ (0.3, 0.4) , 那么执行#, 如果ym∈ (0.4, 0.6) , 那么执行⊕, 如果ym∈ (0.6, 0.7) , 那么执行操作-。假设第l次循环的值为P1。根据上述结论, 有C1=op (Pl) , 这里P1是同一循环中相应的密码比特。此步骤的最后工作是把C1添加到序列C当中使之变为C1+8。

步骤四:所有比特加密后, 置n=n+1, x0=x7, 退出。若未加密完, 则返回步骤二。

2.2 仿真结果与比较

这里我们用DES算法编程对同样的图像加密, 与流密码加密效果比较

从DES加密后的图像中我们仍然可以大致辩识原Lena的轮廓, 可以区分出背景和前景。根据ECB格式的DES, 每64bit明文块被各自独立加密, 对于一个256级灰度的图像, 以8个像素块为单位加密。在原图中, 邻近的8个像素往往格式相似;因此, 加密后的图像仍然保留着原来的大致轮廓。而用流密码加密过后, 图像画面类似白噪声, 加密效果明显优于D E S。

密钥空间分析。此方案中的密钥由一些初始值的Logistic映射组成。理论上, 由于logistic映射的混沌性质, 它对于初始条件值相当敏感, 加密的密钥空间可以无限大。然而, 由于计算机数字精度的限制, 实际操作中只能把密钥空间限制在一个小范围内。在此方案中, 采用双精度浮点数作为密钥, 由于把密钥输入限制在了 (0, 1) 之间, 所以密钥空间为1015-1030, 视初始密钥x0而定。

密钥敏感性分析。Logistic映射对混沌态初始值是很敏感的, 这也确保了此加密方案对密钥的敏感性。

对密文破译的分析。假设破译者想用穷举法来破译加密图像的前1000bit流, 这里每个bit不是0就是1。那么这1000bit的可能组合会是一个庞大的数字2 1 0 0 0=1.0 7 1 5*10301。而1000bit还仅是一幅图像的一小部分而已。

此方案的另一个特性就是随着数据的bit数增加, 强行对加密系统进攻会越来越难。注意到每次操作都是从#, -, 和⊕中选的, 可以把浮点数从两头比较。浮点数ym是基于一个8bit的二元序列产生的, 并且此二元序列和加密后的明文密切相关。即使破译者知道了前面的n个bit, 也猜不出整个浮点数来。

对已知明文的破译分析。在此加密方案中, 有三种操作, 四种bit数的改变:0到0, 0到1, 1到0, 1到1, 且此四种改变的几率相等。这些位操作并不是确定的, 和上面的加密后的比特有关, 因此可以抵御住对已知明文的破译。

3 结语

在本文中, 详细地描述了基于混沌的图像流密码方案。安全性分析和实验表明, 这种基于混沌的图像加密方案在攻击开销, 信息价值, 操作速度, 处理开销, 执行简单性间有一个较好的平衡, 因而是比较实用的。

摘要:本文通过对混沌和密码学之间关系的分析, 提出了把混沌用于密码学中的具体方法。讨论了一种基于混沌的流密码图像加密方案。该方案以实数值混沌序列为基础, 通过离散映射而产生相应的置换序列, 利用其进行数字图像加密, 得到了较好的结果。

关键词:混沌,Logistic映射,流密码,图像加密

参考文献

[1] 关新平.等混沌控制及其在保密通信中的应用[J].国防工业出版社, 2002, 10.

[2] 李树钧.数字混沌密码设计与分析-兼及图像/视频加密与数字水印[J].西安交通大学图像所, 2001.

[3] 郝柏林.从抛物线谈起——混沌动力学引论[M].上海:上海科技出版社, 1995.

上一篇:学生素质教育与校园文化建设措施下一篇:高职数学教学中融入数学建模思想的探讨