基于Logistic-Sine-Cosine映射的图像加密算法

2023-10-12 09:46黄佳鑫赵凯悦李佳文李珊珊
科学技术与工程 2023年27期
关键词:明文加密算法密文

黄佳鑫,赵凯悦,李佳文,李珊珊

(长安大学信息工程学院,西安 710064)

医学、生物特征、个人、卫星图像等内容常含有机密信息,当这些载体通过公开信道进行传输时,容易被非法窃听获取,造成机密信息泄露。图像加密通过一定的运算来隐藏视觉信息,保证信息安全,使得非法用户无法得到图像内容,接收方通过解密密钥可以获得图像的全部内容,是保护图像安全中最常用的途径[1]。

20世纪90年代开始,许多学者开始研究图像加密理论[1]。图像加密可分为基于传统方法、空间域、混沌系统、压缩感知等方法[2-3]。DES(date encryption standard)、AES(advanced encryption standard)等传统加密技术主要是针对数据流进行加密,没有考虑到图像相邻像素之间的关系,加密时间复杂度高、运算量大并且效率低[4]。空间域中,如采用zigzag变换、约瑟夫置乱、Arnold变换、幻方排列等[5]对图像像素置乱的技术,没有改变像素值分布即不存在扩散步骤,存在一定的缺陷。基于压缩感知的图像加密存在加密图像视觉安全性不高和重构图像质量不佳的问题。上述加密方法存在加密算法效率低、扩散性能不佳、解密损失信息等缺陷。

混沌系统具有复杂的非线性动力学性能,良好的伪随机特性、轨道的不可预测性以及对初始状态和控制参数极其敏感等特征,因此混沌系统广泛应用于图像加密、保密通信等领域[6]。低维混沌系统具有密钥空间小和安全级别低等缺点,由于计算机计算精度的限制,混沌系统会出现动力学退化等现象[7]。常用的低维混沌系统包含Logistic映射、Chebyshev映射、Tent映射、Sine映射、分段线性映射、Cubic映射等[8]。高维混沌系统具有良好的混沌特性,但其时间复杂度较高。常见的高维混沌系统有Lorenz系统、Chen’s系统和其他超混沌系统[9-10]。

很多学者都研究了基于混沌系统的图像加密方法。文献[1]采用coupled logistic映射结合猫映射来实现图像加密,并采用双向扩散提高加密性能。文献[11]基于PWLCM(piecewise linear chaotic map)、Lorena、Chen混沌系统,结合哈希函数、DNA(deoxyribonucleic acid)运算实现加密,初始加密参数通过SHA-256(secure hash algorithm-256)运算与明文相关,提高了密钥敏感性。文献[12]提出的算法基于混沌理论、分数傅里叶变换、DNA运算,对图像进行了三次分数阶傅里叶变换和异或操作。该算法具有良好的加密效果、较大的密钥空间和良好的密钥敏感性。然而,相位掩码占用了存储和传输中的资源。文献[13]使用SHA-3(secure hash algorithm-3)算法计算初始密码的哈希值,用作混沌系统的初始值,使用Fisher-Yates置乱、排序置乱算法进行了二次置乱,增强了置乱效果。

为了克服低维和高维混沌系统存在的不足,许多学者采用低维混沌系统级联的方式来设计新的混沌系统。文献[5]基于Logistic-Sine-Cosine混沌系统产生序列,利用该序列进行了四轮置乱和扩散,但四轮运算会显著地增加算法的运行时间。文献[14]提出了一种使用离散复合混沌映射LSS(logistic-sine)生成混沌S盒图像加密算法,该算法具有突出的扩散和混淆特性。文献[15]提出一种基于余弦变换的复合混沌系统,该方案克服了现有的低维混沌系统混沌区间不连续等缺点,但是没有针对彩色图像进行设计。文献[16]基于Logistic、Sine和Tent映射构造了新的复合混沌系统,并基于此设计循环移位和分块等操作实现加密。

除了密码学本身的方法,其他领域的研究成果也拓宽了研究思路,与其他领域方法结合的新方案逐渐被关注。如结合约瑟夫问题和滤波器扩散的图像加密算法[17],基于Mandelbrot集的条件移位的图像加密算法[18],结合混沌系统和DNA运算的图像加密方法[19],将混沌系统和神经网络结合[20],将混沌系统和压缩感知结合[21],将安全哈希算法和脱氧核糖核酸编码与混沌系统相结合[22],结合DNA编码与混沌系统[23],基于量子魔方旋转图像置乱的方案[24],基于一维Logistic和Sine映射耦合而来的新的二维混沌映射[25]等。

现设计基于Logistic-Sine-Cosine混沌系统的空间域无损图像加密算法,该算法包含针对彩色图像的Fisher-Yates置乱方案和二维异或滤波扩散方案,在提高安全性、实时性的同时降低时间复杂度。

1 基础知识

1.1 Logistic-Sine-Cosine映射

为保证加密系统的安全性和较低的时间复杂度,将Logistic映射和Sine映射作为种子映射,与Cosine映射级联,构成Logistic-Sine-Cosine映射[15],表达式为

(1)

式(1)中:F(α,xi)、G(1-α,xi)为已知的Logistic、Sine映射;α、β为控制参数,取β=-0.5得到Logistic-Sine-Cosine映射的表达式为

xi+1=cosπ[4αxi(1-xi)+(1-α)sin(πxi)-0.5]

(2)

式(2)中:α∈[0,1],xi∈(0,1)。

样本熵、分岔图、Lyapunov指数分析表明该混沌系统的性能良好[15],如图1所示。该系统在定义域α∈[0,1]内都能呈现出混沌状态,且输出状态是随机的。

图1 Logistic-Sine-Cosine系统分叉图

1.2 Fisher-Yates置乱

Fisher-Yates置乱生成一个有限集合的随机排列[13]。传统的Fisher-Yates置乱方案将图像转化为一维序列进行置乱。设计一种针对彩色图像的三维Fisher-Yates置乱方案,对像素点同时进行行、列、平面维度的置乱。该方案对矩阵A[l1,l2,l3]的具体置乱步骤如下:

(1)令i=1,j=1,k=1。

(2)生成1~l1的整数i1,生成1~l2的整数j1,生成1~l3的整数k1。

(3)交换A(i,j,k)和A(i1,j1,k1)的值。

(4)按照平面、行、列的顺序执行(2)和(3),遍历完所有的像素点。

1.3 滤波器扩散

滤波是采用滤波器对图像进行卷积处理的图像处理技术。滤波器是二维矩阵,其中心元素和当前处理像素对齐,其余元素和相关的像素对应。滤波结果是滤波器元素与对应像素相乘再相加。现在传统滤波技术的基础上,将异或运算引入滤波中。

假设二阶滤波器f的尺寸为a×b。对像素y(lr,lc)进行处理得到y′(lr,lc),公式为

b+j)

(3)

图2描述了滤波操作,其中y是图像块,y(2,2)是要处理的元素,滤波器f的尺寸是2×2。f的中心元素f(2,2)与y(2,2)异或⊕,其他元素与y(2,2)对应的元素异或,这些异或结果相加得到滤波结果y′(2,2)。

图2 滤波过程

采用合适的滤波器,滤波可以去除图像中的噪声。然而,使用不规则的滤波器,图像滤波会使图像模糊,故采用滤波技术来实现图像加密中的扩散操作。本方案使用二阶异或滤波的方式对图像进行扩散。传统滤波技术不需要恢复明文像素值,将该技术应用在图像加密领域时,必须存在其逆过程以保证运算可逆。根据异或的性质,任何正整数和0异或,其值不变,故滤波过程可逆问题可以通过设置滤波器的中心元素f(2,2)=0,其他元素为正整数来解决。

滤波过程存在边界问题,像素矩阵在每个平面的首行和最左边的一列没有足够的像素。当处理这些像素点的时候,使用对角方向上的像素来扩充矩阵,如图3所示,扩充的矩阵不需要被存储,因此像素矩阵的尺寸不会改变。

图3 扩充示意图

为了更加清晰地表示该过程,定义对像素点进行滤波时,像素点p2(lr,lc,lz)对应的相邻像素矩阵为T,其表达式为

(4)

为了进一步提高滤波的随机性,在滤波器模板中引入混沌序列值,即将滤波器f中的第一个元素设置为伪随机像素。

对像素p2(lr,lc,lz)进行滤波,其表达式为

(5)

从相邻像素矩阵T中可以看出,像素左上角元素已经经过处理,右下角元素是未经过处理的原始像素。当对当前像素进行逆运算时,矩阵T中的元素与正向处理时处于相同的状态,故式(5)是可逆的,其逆运算表达式为。

(6)

根据式(5)和式(6)设计图像扩散算法。

现有的扩散技术通常使用同一行或列的先前像素值来改变当前像素。本文中的扩散方法引入像素的邻域像素,且滤波器模板由明文和密钥共同决定并引入伪随机像素值,实现了可变滤波器。该滤波技术可以更快的将一个像素的微小变化扩散到所有像素,在抗差分攻击方面表现出更好的性能。

2 加密算法

根据Fisher-Yates置乱和滤波器扩散的原理,提出了一种基于置乱-扩散框架的图像加密方案。该方案由两部分组成,分别是Fisher-Yates置乱和滤波器扩散。设计的三维Fisher-Yates置乱可以同时对行、列、平面位置进行置乱,从而获得良好的置乱效果,滤波技术可以实现良好的扩散特性,因此将二者结合设计了加密方案。解密过程是加密过程的逆过程,本文不再描述。加密过程如图4所示。

图4 加密流程图

2.1 密钥生成

为了提高加密密钥和明文的相关性,本文中初始密钥由用户输入的密钥k0、k1和明文SHA-512值h0共同决定,其中k0,k1∈[0,1],h0是对明文p进行SHA-512运算得到的128位十六进制字符串。具体步骤如下。

(1)将h0中的元素按照先后顺序,每4位为一组转化为十进制序列记为h1,表达式为

h1(i)=hex2dec{h0[(i-1)×4+1:i×4]},i∈[1,32]

(7)

(2)将h1中的元素按顺序每8位进行取模运算然后求和,结合k0、k1来生成F0,表达式为

(8)

(3)生成混沌系统的舍弃项数n0,表达式为

(9)

(4)令混沌系统的初始参数y0=F1(1),u0=F1(2),表达式为

(10)

(5)为了确保滤波过程可逆,设置滤波器的中心元素为0,通过F0得到f0,重新排列后得到滤波器模板f,表达式为

f0(i)=bitxor[F0(i),F0(4)],i∈[1,4]

(11)

f(i,j)=f0[(i-1)×2+j],i∈[1,2],j∈[1,2]

(12)

2.2 三维Fisher-Yates置乱

对像素矩阵p进行三维Fisher-Yates置乱,置乱后的像素矩阵记为p1。利用控制参数u0和初始值y0迭代式(2)所定义的系统l1l2l3+n0次,并且舍弃前n0项获得一维序列X。将X按照行优先的顺序重新排列得到与矩阵p尺寸相同新矩阵X2。

(1)令lr=1,lc=1,lz=1;根据平面、行、列的顺序来重复执行(2)和(3),置乱后的矩阵记为p1。

(2)计算坐标(lr,lc,lz)置乱后的坐标(lrs,lcs,lzs),公式为

(13)

(3)交换像素p(lr,lc,lz)和p(lrs,lcs,lzs)。

2.3 滤波器扩散

采用2.1节中生成的滤波器f来对像素进行滤波处理。利用式(14)对X处理得到伪随机像素序列X3,利用式(15)将X3排列为尺寸为[l1,l2,l3]的伪随机像素矩阵X4,X4是f中使用的伪随机像素矩阵。按照RGB平面的顺序对像素矩阵进行滤波,在每个平面内,利用式(16)按照行优先的顺序执行滤波运算。对当前像素点p2(lr,lc,lz)处理时,将X4中的混沌序列值引入滤波器f中,得到对应的f如式(17)所示。直到所有的像素点都滤波完成,得到加密后的图像矩阵Pe。

X3(i)=fix[X(i)×1015]mod256,i∈[1,l1l2l3]

(14)

X4(i,j,k)=X3[(k-1)l1l2+(i-1)l2+j],i∈[1,l1],j∈[1,l2],k∈[1,l3]

(15)

T(i,j)]mod256

(16)

(17)

3 结果分析

实验软件采用Matlab R2022a,CPU为3.10 GHz的Intel i5-12500H处理器,内存为16G。参数k0=0.666 6,k1=0.888 8,明文的十六进制SHA-512值为’cc3de5553fe62ff546f66b5b27a1de0a2758e2 299216af8004e10ec353e1ac695c04103bc11d1ffc70646 34332c89290f94caac381d79a6d1835692b653276ca’。

3.1 加密结果

为了测试本文所提算法的性能,对尺寸为512×512×3的彩色“Lena”图像进行仿真,结果如图5所示。由图5可知,密文和明文完全不同,而且密文类似于噪声图像且密文的直方图分布是近似均匀的,表明该方案可以对图像进行有效的加密。

通道取值为1、2、3分别代表R、G、B平面的像素分布直方图

加密破坏了明文中的像素相关性,绘制明文和密文相邻像素点分布点图如图6所示。明文相邻像素对集中分布在对角线附近,说明明文相邻像素之间的相关性较强,而密文邻域像素对近似均匀的分布于整个平面之中,说明加密破坏了明文相邻像素的相关性。

通道取值为1、2、3分别代表对应平面水平、垂直、对角线的相邻像素对分布点图

计算明文和密文RGB平面相关系数,如表1所示。由表1可知明文在三个通道内的相关系数接近于1,对应的密文相关系数均接近0。表明明文相邻像素的相关性很强,密文相关性较弱,加密有效的降低了明文像素之间的强相关关系。

表1 明文和密文的相关系数

3.2 信息熵

信息熵反映一个系统的混乱程度。根据香农定理,图像的信息熵通定义[5]为

(18)

式(18)中:i为像素值,f(i)为该像素出现的概率。

计算Lena图像在加密前后不同通道的信息熵,如表2所示。结果显示明文信息熵的值较小,密文信息熵接近于8,说明密文的像素值分布较明文更加均匀,加密隐藏了明文的像素分布规律,攻击者不能通过分析密文像素分布规律来得到有用信息。

表2 明文和密文的信息熵

3.3 已知明文攻击

传统密码攻击分析算法包括:唯密文攻击、已知明文攻击、选择明文攻击和选择密文攻击[6]。其中,选择明文攻击对密码系统最具有威胁性。如果一个加密系统能够抵御选择明文攻击,那么该算法也可以抵御其余三种攻击。本文的方案中,密钥和明文的SHA-512值相关,故密文图像与明文图像高度相关,所以对抗选择明文攻击是安全的。图7显示了512×512×3的纯黑、白图像加密结果,表3列出了对应的相关系数和信息熵。结果表明,这些特殊图像的信息熵接近于8,且直方图是均衡的,表明该算法也适用于单一像素值图像。

表3 纯黑和纯白图像信息熵与相关系数

图7 纯黑和纯白图像加密结果

3.4 差分攻击

安全的加密方法应该对明文高度敏感,即明文的微小变化会导致加密图像发生很大的变化。NPCR(number of pixel change rate)、UACI(unified average change intensity)用来评估密码抗差分攻击的能力[3],NPCR与UACI 的定义为

攻击者通常对原始图像进行微小的改变,找出原始图像和加密图像之间的关系,即差分攻击。

(19)

(20)

NPCR理论值是99.6094%,UACI理论值为33.463 5%[6]。当明文p中的第一个像素点的改变量为1时,加密算法的NPCR和UACI值如表4所示。

表4 NPCR与UACI值

NPCR值接近于1表明当明文发生微小变化时,密文中几乎所有的像素点都会发生改变,表明算法抗差分攻击能力较强。本文方法的NPCR值与参考文献性能基本一致,UACI值低于参考文献的值,但均接近于理想值。

3.5 安全性分析

密钥空间包含所有参与加密过程的密钥集合,较大的密钥空间可以抵御任何穷举攻击。图像加密算法的密钥空间大于2100才能够抵抗穷举攻击[6]。图像SHA-512值h0产生的密钥空间为2512。根据美国电气电子工程师学会(Institute of Electrical and Electronics Engineers,IEEE)浮点标准[26],64位双精度数据的计算精度为1015。所以本算法的密钥空间为2512×1015×2≈2611,远大于2100,故该算法产生的密钥空间可以抵御穷举攻击。

除了足够大的密钥空间外,加密算法还需要对密钥高度敏感才能更好地抵抗暴力攻击[1]。本文加密密钥分别是k0、k1、h0。当解密密钥分别发生微小的变化变为k0+10-15、k1+10-15、h0中第一位字符改变1位,解密结果如图8所示,由图8可知,当密钥发生微小的改变,无法正确的解密出明文,表明加密算法对密钥高度敏感。

图8 密钥敏感性分析

3.6 鲁棒性检测

图9 噪声攻击解密结果

3.7 时间分析

图像具有大量的像素点,因此对处理时间要求较高,好的图像加密算法要求具有较短的运行时间。加密算法的耗时不仅和时间复杂度有关,还和运行的硬件环境相关。选择和本文算法运行环境相近的方法比较,如表5所示。由表5可知,在图像尺寸相同的情况下,本文算法用时少于文献[14]。

表5 不同尺寸图像计算时间对比

4 结论

针对数字图像加密算法存在安全性低的问题,提出了一种基于Logistic-Sine-Cosine复合混沌映射、Fisher-Yates置乱和滤波器扩散的彩色图像加密方案。采用明文哈希值和用户输入参数来生成密钥;应用Fisher-Yates置乱和混沌序打乱明文像素间强相关性;采用滤波器分别在图像RGB平面滤波。选择标准Lena图进行实验,实验结果表明,本文算法能够抵御差分、暴力、剪切、噪声等常见攻击,可应用于数字图像的加密和传输。本文为了提高算法的安全性,设计的滤波扩散增加了运算的次数。若将算法应用于实时性要求高的场合,需进一步提升算法效率。

猜你喜欢
明文加密算法密文
一种支持动态更新的可排名密文搜索方案
基于模糊数学的通信网络密文信息差错恢复
奇怪的处罚
一种基于密文分析的密码识别技术*
奇怪的处罚
基于小波变换和混沌映射的图像加密算法
四部委明文反对垃圾焚烧低价竞争
云存储中支持词频和用户喜好的密文模糊检索
Hill加密算法的改进