乐可馨, 王亮亮
(上海电力大学 计算机科学与技术学院, 上海 200090)
随着互联网技术的快速发展,越来越多的信息通过网络传播,数字图像就是其中之一。数字图像在现代医疗等领域有着很重要的应用。数字图像包含了大量的信息,例如:一张军舰的照片不仅可以显示其大小和武器配置,还可以显示其大致位置和军事任务;自拍照不仅可以显示主人的长相,还可以泄露其大致年龄和健康状况。因此,图像安全越来越受到人们的关注。在各种图像安全技术中,图像加密是一种将有意义的原始图像转化为不可识别的噪声类密码图像的方法。目前,无论是在研究上还是在应用上数字图像处理技术都得到了很好的发展,再加上网络技术的快速普及,为数字图像加密技术的进一步发展提供了有力的支撑[1]。由于图像的信息量很大,处理起来很慢,所以常见的对图像进行的加密方案的加、解密效率并不高。
与此同时,云计算的发展日渐成熟。云计算是一种并行的分布式系统,由虚拟化的计算资源构成,能够根据服务提供者和用户事先商定好的服务协议等动态地提供服务[2]。云计算发展至今已有10多年,早期的有简单分布式计算、处理多并发任务、合并计算结果等,目前已应用于各个领域的计算,并带动了众多行业的技术革新。因为通过这项技术,可以在很短的时间内完成对数以万计数据的处理,从而达到强大的网络服务。同时,云计算与其他技术和理论的有机结合,也是解决理论研究和实际应用的重要途径[3]。然而云计算在可以提供强力计算支持的同时,其安全性也存在一定的风险。有关云计算的安全讨论一直没有停止。
在图像加密中,常用的是基于混沌的图像加密算法。这是利用混沌对初始值的敏感特性,使攻击者难以破译图像信息[4]。文献[5]提出了一种基于Logistic映射的图像加密算法的改进方案,改进了传统Logistic加密算法存在的部分缺点。但Logistic映射是一维映射,一维混沌系统的随机性是有限的。文献[6]提出了一种基于信息熵的混沌图像加密算法,采用的混沌系统为二维映射,增强了随机性,并增加了调制操作,加强了密文图像的安全性。但其计算量过大,对本地计算资源的要求较高。文献[7]提出了一种基于简单混沌数方法的图像加密技术,分为混淆和扩散两个阶段,并利用了简单混沌数,使系统具有良好的分岔行为。但该方案使用简单的一维混沌映射,计算量较小,算法复杂性不够,方案安全性不足。文献[8]提出了一种离散混沌异或图像加密技术,根据需要加密的数字图像的大小,产生相应的二值混沌序列,实现二值混沌序列与数字图像之间的二值异或运算,对数字图像进行加密。然而二值混沌序列计算开销大,导致该方案的计算效率较低,并且密文图像的统计特性打破不够彻底。文献[9]提出了一种基于有限域运算的混沌图像加密方法,利用混沌映射将原始图像映射成二维矩阵,然后在有限域内对原始图像矩阵和先前生成的两个矩阵进行乘法运算。该方案置乱效果较优,安全性高,但图像映射过程计算开销较大,对系统的计算能力要求较高。
本文在上述多种方案的基础上进行了改进。首先,采用二维混沌映射生成置乱矩阵和扩散矩阵,使系统具有良好的混沌行为,采用2D-LASM映射公式来确保密文图像的安全性和加密过程的计算效率。其次,增加调制操作,在置乱前改变图像的灰度分布,提高方案的安全性;并且将部分加密过程置于云环境下,利用云的强大计算能力和分布式能力,提高方案的效率,并使方案支持大规模图像处理。最后,为了避免云环境中的未知风险,调制操作在客户端本地完成,调制密钥不与云端共享,将加密过程安全隔离成两部分,云服务器无法得到原始图像数据,以规避云服务器存在的安全隐患。
混沌是20世纪以来最重要的发现之一,其重要性可以与相对论和量子力学相提并论[10]。混沌理论来源于美国气象学家洛伦兹于20世纪60年代发现的“蝴蝶效应”。洛伦兹在实验过程中发现,当参数选择在一定范围时,一个大气对流模型就变得不可预测了。混沌系统的很多特性如奇异性、复杂性导致人们至今尚未完全认识混沌理论,也导致混沌至今没有一个统一的定义。
混沌系统的许多性质与密码学中的同类系统相似,所以非常适合于密码学,并已广泛应用于图像加密。当混沌系统应用于图像加密时,图像加密方案的安全性在很大程度上取决于所用混沌系统的性能。
文献[11]提出了2D-LASM映射,其来源于一维Logistic映射和二维正弦映射的结合。Logistic映射和二维正弦映射具有相近的参数混沌范围,都表现出良好的混沌性能。混沌的参数范围是指该混沌映射公式的结果只有当参数在某些区间内时才表现出混沌现象。混沌性能指映射结果的不可预知性,不可预知性越强,混沌性能就越好,一般可通过李雅普诺夫指数等标准来判定。2D-LASM映射公式为
(1)
其中,μ为混沌系数,只有当混沌系数处于某一范围内时,混沌映射的结果才会产生混沌行为。2D-LASM混沌映射的混沌系数范围为[0.37,0.38]∪[0.4,0.42]∪[0.44,0.93]∪ {1}。本方案选取混沌系数μ=0.821 6。
云计算是将互联网当作一个超级计算机。对于终端客户端来说,他们不需要关心自己的数据存储在什么地方,也不需要担心自己的计算能力,其数据存储和计算能力都由远程(即云端)提供[12]。在图像加密这一应用场景中,主要目的是利用云服务器高效和分布式的计算能力来快速处理大规模图像数据集。众所周知,与一般数据相比,图像数据的数据量更大,处理起来更复杂,而本地计算资源的能力十分有限,尤其是在处理大量图像时,需要将计算外包给云服务器。
从目前云计算的发展来看,用户数据的安全、隐私信息的保护、数据的异地存储、云计算自身的稳定性,以及云计算监管方面的问题,直接关系到云计算业务被用户接受的程度,进而成为影响云计算业务发展的最重要因素[13]。这是因为:一方面,云服务器经常遭受各种外部恶意敌手的攻击;另一方面,云服务器本身也存在着诸多不安全因素,例如,服务器管理员有泄密可能,服务提供商可能会主动窥探用户隐私等。因此,在各种安全模型中,云服务器通常被视为“诚实但好奇”的敌手。
在图像加密这一涉及大量用户隐私的领域中,如何既充分利用云计算的优势,又避免云服务器泄露用户隐私(明文图像)成为一个重要问题。通常,云服务器只用来存储密文图像,在上传图像之前加密并添加访问控制即可,但本方案需要利用云服务器的计算能力来优化加密过程。本文提出的解决方案为在本地先进行初步加密,再上传至云服务器完成剩余加密步骤。其中,利用混沌映射加密的部分计算量大,放在用户端进行则违背引入云计算的初衷,故设计一种计算量较小的调制操作置于用户端。这样就可实现对云服务器的“取长补短”。
本方案主要分为客户端和云服务器两个模块。对图像进行加密时,客户端对明文图像进行一步调制操作,改变图像的统计特性后发送给云服务器。云服务器则对调制后的图像进行多轮置乱和扩散,从而完成加密并将密文图像发送给客户端。解密时,客户端将密文图像发给云服务器,云服务器将密文图像解密至调制前一步后发给客户端,最后由客户端本地对图像进行解调,得到明文图像。图1揭示了加密的具体流程。
图1 加密流程示意
2.2.1 调 制
此过程在客户端本地完成。若在对图像进行扩散和置乱操作前没有改变图像的灰度分布,那么加密算法很容易受到攻击,并且密文图像的统计特性也会打破的不够彻底。同时,在客户端本地对图像进行调制后再发给云服务器,并将调制密钥保留在本地,可以避免云服务器获取原始图像,提高了方案的安全性,保护了用户的隐私。调制矩阵可通过式(2)计算得到。
T(i,j)=i+j+K1+m×nmod 256
(2)
i=1,2,3,…,m;j=1,2,3,…,n
式中:K1——调制密钥,由客户端本地生成,值为整数;
m——明文图像对应像素值矩阵的行数;
n——明文图像对应像素值矩阵的列数。
得到调制矩阵后将明文图像A与调制矩阵相加得到调制后图像W
W=A+Tmod 256
(3)
2.2.2 置 乱
在收到客户端发来的调制后图像W后,云服务器对W进行置乱操作。设云端初始置乱密钥为X和Y,其取值在0和1之间。为了加强抗攻击能力,云服务器每次进行加密操作前都会使用伪随机数发生器生成两个随机数h和z对密钥进行更新,并存储h和z供解密使用。
(4)
使用2D-LASM混沌映射公式生成置乱矩阵Q,取Q的第h行、第z列两个一维数组U和V,并为了方便计算进行一次取整更新
(5)
利用u′和v′两个一维数组对图像W进行置乱操作,此处使用文献[14]提出的循环位移法。具体过程为:数组u′有n个值对应图像W的矩阵的n列,每列作为一个单独的数组向下循环平移u′[i]个单位(i为当前列数);数组v′有m个值对应图像W的矩阵的m行,每行作为一个单独的数组向下循环平移v′[j]个单位(j为当前行数)。最后形成的矩阵R即为置乱后矩阵。
2.2.3 扩 散
云服务器再对置乱后矩阵进行扩散操作,将每个像素点的特性扩散到全图。初始扩散密钥为x0和y0,取值在0和1之间。与置换操作一样,每次加密前都对初始密钥进行更新
(6)
将x0′和y0′作为初始值通过2D-LASM混沌映射公式生成扩散矩阵K,并通过伪随机序列生成器生成随机数d,扩散过程可表示为
Ci=Ri+dCi-1+dKi
(7)
式中:Ci——密文图像第i行;
Ri——置换后矩阵第i行;
Ki——混沌映射产生的扩散矩阵第i行。
最后得到的图像C即为密文图像。通过扩散,用某些行的信息去影响其他行的值,使图像的统计特性更平稳。
解密过程与加密过程相反,采用相同的密钥和公式。
本方案可以抵抗基于算法的攻击和基于密文图像统计特性的攻击,并且可以抵抗云端恶意敌手,规避云服务器自身的安全风险。同时,在性能上能满足大规模图像数据的传输和加密,在存储空间和计算效率上表现较优。具体分析如下。
(1) 安全性方面,本方案中客户端被认为是可信的,云环境被认为存在被攻击风险和一定的主动泄露数据的可能性。在被动攻击下,云服务器在每次加密前都会通过伪随机序列生成器产生随机数动态更新密钥,即使攻击者获得初始密钥也无法进行解密。对于随机数泄露的情况,即使泄露某次加密使用的随机数,也只有这一张加密图片存在被破解的风险,其余图片皆是安全的,故本方案的抗被动攻击能力足够强大。在云服务器主动泄露数据的情况下,由于在客户端提交图片给云服务器之前已经通过密钥进行了调制操作,并且密钥不提供给云服务器,云服务器既没有直接的原始图像数据,也不存在通过自身存储的数据破解密文图像的可能性,所以这一情况下方案的安全性仍然很高。在抗统计攻击方面,本方案中密文图像的统计特性是安全的,因为加入了扩散这一操作,使得图像的灰度直方图趋于平稳,攻击者无法直接攻击密文图像进行破解。在加密算法方面,本文使用的核心算法2D-LASM被证明具有很高的安全性,可以抵抗攻击者基于算法的攻击。
(2) 性能方面,本方案采用云服务器进行大规模的加密计算。云服务器具有强大的计算能力,不仅节约了客户端本地的存储空间和计算资源,而且加快了对图像进行加密的速度,并且支持分布式工作,故可同时快速地加密大量的图像。在加密单个图像时,本方案提出的高效算法能保证较高的计算效率;在加密大量图像时,本方案计算效率高的优点更加明显。系统将大量计算转移到云端,大大减少了本地的计算资源,同时,算法要求每张图像加密过程中需保留自身对应的密钥和随机数,在大规模图像加密中,这些就是大量的数据,而此部分在云端进行,利用云服务器的大规模存储功能,既有足够的空间支持系统计算的正常进行,又能大大节约本地的存储空间。因此,本方案在计算规模、计算效率和存储空间上表现优异。
2D-LASM混沌映射利用Logistic映射的输出来调整Sine映射的输入,然后将相位平面从一维扩展到二维,经过各种客观评价方法,包括轨迹法、LE法和KE法,都表明2D-LASM具有更好的遍历性、更宽的混沌范围,比现有的几种一维(包括Logistic)和二维方法有更好的映射结果[11]。
与文献[6]和文献[7]等基于一维Logistic映射、二维Logistic映射、二维Sine映射以及香农映射的方案相比,本文方案使用的算法具有不可忽略的先天优势,该优势主要体现在安全性上。
本文方案的性能优势主要依靠引入云计算。通常情况下,云服务器被用于存储数据,图像加密方案更关注研究算法本身而不考虑实现时的场景,而本文方案在改进算法的同时,结合云计算,设计了一种底层模型,利用云计算的分布式计算能力,避开其泄密风险,使得同时加密大量图像这一需求得到了满足。因此,与传统的只研究算法本身的方案相比,本文方案在加密大规模图像数据时有较好的效率优势。
本文提出了一种新的图像加密方案,将部分加密过程交给云服务器进行计算,充分利用云服务器强大的计算能力和分布式能力,大大提高了加密效率,并且加密算法采用图像加密领域中安全性较高的2D-LASM混沌映射算法,使加密的安全性有了保证。同时,本文方案将另一部分加密过程保留在本地并独立保留密钥,避免了因云环境自身的安全问题而产生的安全隐患。经过安全分析和性能分析,认为本文方案成功地结合了混沌算法的安全性和云计算的计算能力,实现了图像加密的安全和效率的平衡。