随着Internet技术与多媒体技术的飞速发展,数字化信息以不同的形式在网络上方便、快捷地传输,因此,信息的安全与保密显得越来越重要。其中图像以其不可比拟的直观性、可操作性和大信息量而成为多媒体通信和保密通信中的重要信息载体,这使得数字图像的安全性问题尤为突出,而有关图像加密的算法亦层出不穷。那么我将给大家介绍基于混沌系统的独立密钥DES数字图像加密算法。

一、混沌系统特性

混沌现象是在非线性动力系统中出现的确定性的、类似随机的过程,这种过程既非周期又不收敛,并且对初始值有极其敏感的依赖性。一维多参数非线性动力系统定义如下:

Xn+1=f(xn,μi)

其中,μi(i=1,2,…)为参数,xn∈W(n=0,1,2,…)称之为状态。而f:W→W是一个映射,将当前状态xn映射到下一个状态xn+1。如果从初始值x0开始反复应用f,就可得到一个序列{xk;k=0,1,2,...},这一序列称为该离散时间动力系统的一条轨迹。如果为各μi选择恰当的数值,使f:W→W满足三个条件,即具有对初始条件的敏感性,拓扑传递的和周期点在W中稠密,则对应的动力系统在W上是混沌的。

目前,一类非常简单却被广泛研究的动力系统是Logistic映射,其典型定义式为:

xn+1=μxn(1-xn)      (1)

式中,0≤μ≤4称为分支参数,xn∈(0,1)。混沌动力系统的研究工作指出:当0<μ≤3.569945时,该动力系统从稳定状态分叉产生倍周期;当3.569945<μ≤4时,该动力系统进入混沌状态,也就是说,由初始条件x0在Logistic映射的作用下所产生的序列{xk;k=0,1,2,…}是非周期、不收敛的,且对初始值非常敏感。

实验表明,初始条件任意小(如10-15)的改变都会引起完全不同的行为,呈现出大相径庭的迭代轨迹。下图为μ=3.9,初值x0=0.2,y0=0.2001,z0=0.200001时对应生成的混沌序列X,Y,Z的示意图。

基于混沌系统的独立密钥DES数字图像加密算法同时,由式(1)迭代生成的Logistic序列的遍历统计特性等同于白噪声。另外,若将所有由任意初值产生的混沌实数值序列,通过定义一个阈值函数Γ转换成混沌二值序列,并将这些二值序列看作一个集合G,显然G非空。依据群的第一定义,一个非空集合G对于一个叫做乘法的代数运算来说看作成一个群,假如:

(1)G对某个乘法来说是封闭的;

(2)结合律成立,即对于G中任意三个元a,b,c,均有(ab)c=a(bc);

(3)对于G的任意两个元a,b来说,方程ax=b和ya=b都在G中有解。

由此我们可以得到混沌二值序列的一个特殊性质:混沌二值序列集合是一个乘法群。由Logistic序列特性可见,尽管混沌动力系统具有确定性,但其遍历统计特性等同于白噪声,且具有形式简单、对初始条件极其敏感、具备白噪声统计特性等诸多特性,因而,将定长混沌二值序列作为数字图像加密密钥是简单可行和安全可靠的。

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

基于混沌系统特性,利用初始条件可获得数量极多的混沌序列,而在一般情况下,很难从一段有限长序列推断出整个混沌序列的初始条件,因此,选择定长的混沌二值序列作为密钥对图像的某些信息流(如数据矩阵)进行加密,不失为一种切实可行的方案。基于此思想,我们首先提出将图像数据流与混沌密钥流进行简单异或加密的SCENT算法。

1、简单混沌加密(SCENT)算法

SCENT(SimpleChaoticEncryption)算法的原理是:设原始图像为I,I=M×N,从I中提取出数据矩阵CData,大小Size=M×N×Z,Z=1,2,3(如当I为灰度图像时,Z=1,而当I为真彩色图像时,Z=3),CData中各元素的取值范围为[0,255]。用户密钥为x0,将x0作为初值,采用式(1)生成混沌二值序列xk,长度自行设定,如64,1024(1KB)等。从1到Size,将CData中的每个元素转换为8位ASCII码,与xk按位异或后,再将加密后的该8位ASCII码还原成十进制数,加密过程中xk可重复使用,也可更新。最后,将进行加密处理后的数据矩阵CDa-ta进行重画,即得到加密后的图像,加密效果如图所示。用户输入正确密钥后,将加密算法逆向运算,即可获得解密图像。

基于混沌系统的独立密钥DES数字图像加密算法

上述加密算法(简称为一重SCENT)的特点是:原理简单,软硬件实现非常容易,且加密速度快,特别适用于要求设备轻巧、加密快速而保密性不太高的场合,如网络上传输和发布的低保密性的图像、低比特率视频、文字消息等。但由上图(b)的加密效果可以看出,一重SCENT加密图像的效果很差,这是因为这种简单加密仅改变了原始图像各点的灰度,并没有进行空间上的置乱,原始图像的大量相关信息有可能保存下来,从而起不到加密的作用。针对这样的情况,我们又提出了下面两种改进思路:

①更新密钥,进行多重加密,三重及五重SCENT加密效果如上图(c)、上图(d)所示;

②结合经典的加密算法将混沌二值序列作为密钥对原始图像数据流进行置乱加密。由上图(c)、上图(d)可知,多重SCENT的加密效果并不比单重SCENT加密效果更好,这是由于混沌二值序列集合毕竟是一个群,所以即便用多个密钥K1,K2,K3,K4,K5分别对图像明文P进行三级或五级加密,也总会存在一个密钥K和L满足:

C1=EK3(EK2(EK1(P)))=EK(P)           (2)

C2=EK5(EK4(EK3(EK2(EK1(P)))))=EL(P)

因此,采用多重加密方式并不能很好地提高利用穷举搜索法破解SCENT加密或中间相遇攻击的难度,也无法从根本上提高加密效率,正因为如此,我们又在SCENT的基础上提出了复杂混沌独立密钥DES加密(CCDES)算法。

2、复杂混沌独立密钥DES加密(CCDES)算法

CCDES(ComplexChaoticUnattachedKeyDES)算法的原理是:首先由16个独立密钥x1~x16生成16个独立的48位混沌二值序列K1~K16,然后从待加密图像中提取出数据矩阵CData,将CData按每8个元素进行分组,每组均转换为64位ASCII码明文,进行独立密钥的DES加密,然后将加密后的64位数据转换为加密后的8个十进制元素,依次进行下去,最后剩余不足8个的元素进行简单的SCENT加密,至此就可将加密后的图像重画出来。其算法原理如图所示:

基于混沌系统的独立密钥DES数字图像加密算法

加密效果如下图所示:

基于混沌系统的独立密钥DES数字图像加密算法

解密算法与加密算法完全相同,唯一不同之处是密钥的次序相反,即若DES各轮的加密密钥分别是K1,K2,...,K16那么解密密钥就是K16,K15,...,K1。

由上图可知,CCDES算法加密效果良好、原理简单、软硬件实现也比较容易,其最大的特点是采用由混沌动力系统生成的独立子密钥进行DES加密,可以极大地增加穷举攻击和中间相遇攻击的难度,因此,CCDES算法非常适用于要求高保密性的系统。

三、基于混沌系统的独立密钥DES数字图像加密算法性能分析

1、算法安全性分析

SCENT算法的安全性与混沌映射参数μ、初值x0、二值序列转换时阈值Γ的选取以及二值序列的长度L等因素有关。μ,x0,Γ及L中任何一个发生微小变化均可以生成完全不同的密钥序列,这就使得采用穷尽式密钥搜索分析来进行解密是很困难的,即便在公开除x0(如x0∈(0,1))以外的所有参数的情况下。由于在一般的计算机系统中,十进制小数有效位置精度为15位,所以采用穷举攻击的难度仍将达到10的15次方。但由于这种加密算法自身的缺陷,原始图像或视频的大量相关信息仍将保留下来,因此该算法并不太适于图像和视频文件加密,但对文字信息的加密效果良好,且加密速度极快。

如用SCENT算法对字符串“Iwillwaitingforyouinthepark,2004/9/10,2:30PM”进行加密时,若取密钥x0=0.1457855555555285,加密后的字符串为“←□□:u□ 澝L驅虚袁谝輻并□怂>苁曷怨匈昒c絀酉e鷇冞瑵□□”;解密时,若密钥相同,输出字符串为“Iwillwaitingforyouinthepark,2004/9/10,2:30PM”。若密钥稍有差别,如取x0=0.1457855555555286,则解密字符串为“页艹樵Os} _&vIwg◣潂W Iv8H@{懂□”。

CCDES算法的安全性在基于SCENT算法的安全性基础上,由于采用16个初值x1~x16,利用混沌动力系统生成16个48位独立二值密钥K1~K16,所以其穷举攻击难度可达到(1015)16。另外,单就DES安全性而言,由于采用16个独立混沌二值序列作为每轮DES加密的独立子密钥,而16轮的每轮都需要48密钥位,这就意味着这种变型的密钥长度为768位,这将极大地增加DES算法穷举攻击算法的难度,其复杂性将达到2768,中间相遇攻击的复杂性将达到2384。尽管DES算法对差分分析比较敏感,但由于有混沌密钥和按时更新密钥的双重保护,此算法的安全性足以适用于高保密性系统,如情报、国防、金融等商业的高层管理。

2、计算复杂度及速度分析

本文提出的两种加密算法是将数字图像视为数据流来进行完全加密的,其优点是安全性强,缺陷是计算复杂度较高、速度较慢。由于传统高强度密码(如DES,IDEA,RSA等)通常具有较高的计算复杂度,所以完全加密的CCDES算法的计算复杂度更高,从而极大地影响加密速度。表1以Cameraman.tif(256×256,64KB)原图像为例,列出了单重及多重SCENT算法和CCDES算法总体加密时间、实际加密时间等各项参数,以供参考。实验测试平台为奔Ⅲ处理器,256MB内存,采用双精度浮点运算:

基于混沌系统的独立密钥DES数字图像加密算法

由表1可以看出,SCENT算法的计算复杂度比CCDES的小得多,加密速度快,对实际数据流的加密时间较短,因此这种算法比较适用于要求传输速度快的网络数据流,如文字信息流加密等。CCDES算法的耗时主要集中在DES算法的非线性变换S-盒替换上,其加密速度虽然较慢,但安全性极强。事实上,实用DES的软硬件实现速度是相当快的。

本文讨论了一种基于混沌系统的独立密钥DES数字图像加密算法(CCDES),该算法优点是原理简单、易于理解、安全性很高,且仅依赖于密钥,软硬件实现简单经济,较好地符合了加密算法的设计准则,并且该算法是将数字图像当作数据流来处理,因此也适用于其他多媒体数据流(如位序列、文本文件、数字化的语音和视频等)的加密;缺点是计算较为复杂,速度较慢。

小知识之数字图像

数字图像,又称数码图像或数位图像,是二维图像用有限数字数值像素的表示。数字图像是由模拟图像数字化得到的、以像素为基本元素的、可以用数字计算机或数字电路存储和处理的图像。