基于序列密码的图像加密算法

2021-04-02 05:15胡超飞尹毅峰刘琨鹏
关键词:加密算法密文解密

胡超飞,尹毅峰,刘琨鹏

(郑州轻工业大学 计算机与通信工程学院,郑州 450002)

伴随着现代社会多媒体等技术的发展,信息化社会越来越成熟.但是随着信息化社会带来的问题是信息的安全,人们越来越关注信息安全,信息的传输安全显得尤其重要.相比传统的文字等信息,多媒体社会的信息载体多种多样,例如:声音、图像、视频等.新的信息载体包含着更大量的信息,所以对信息安全的要求也更高[1],人们在进行信息的传输时,都希望自己传输的信息不会被他人窃取和篡改,确保自己传输的内容完整并且具有保密性.在现在的社会中,通信过程中使用最为广泛的信息载体就是图像,一是因为图像作为信息载体包含的信息量巨大,能够生动形象的描述想传达的信息,例如在国防、社会、私人和航空航天网络中,图像信息就是最频繁的一种通信形式;二是图像信息传输是如今最方便使用的手段之一,正是因为使用量大,并且使用方便,所以图像信息传输的安全性就需要更高的要求[2].

图像信息安全性的需求提高,本文就是针对图像为载体的信息加密进行研究.图像数据由于其信息量较大,所以加密难度较高.传统的对称性加密的安全性不够高,非对称加密的加密效率对于信息量较大的图像效率较低.本文提出的图像加密在加密安全性能方面有着较大的优势.使用序列密码[3]结合混沌映射理论的优势提出的图像加密算法能够使一些较为隐私的图片安全地进行传输.

随着科技的发展,各行业各领域的科技都在创新,图像加密也有着很多创新[4],例如:有着很多其他领域的知识都被应用到图像加密技术的研究中,并且因为引用了其他领域的知识来丰富图像加密的内容[5],所以有着许多新颖的图像加密方法被提出.Enayatifar等[6]将极大堆积树的理论应用在图像加密算法中,在置乱效果上有着显著的成果,算法安全性也较高,想法新颖独特,但计算复杂度却很高.Abdullah等[7]使用生物学中的遗传算法与Logistic混沌相结合对图像进行置乱,大幅度的降低了图像的像素相关性.有很多成熟的图像加密技术应用在计算机端了,也有一些创新的图像加密算法也有比较好的效果,但是目前社会在移动端上的图像加密方面还是没有太多建树,计算机端的一些加密算法通常需要很高的计算复杂度,对于当前社会的实际价值并不高,所以又有学者通过将混沌系统与其他加密技术相结合来对图像进行加密[8-10],增加了图像加密的复杂性,显著的提髙了其安全性.文献[11]中提出了一种自编码,混沌和超混沌映射相结合的一种新的图像加密算法,与上述加密算法相比此类算法不仅提高了图像加密的安全性还增加了加密效率[12].庄志本等[13]对混沌系统进行改进,提出了一种高维混沌的图像加密算法能够有效地抵御统计分析攻击和灰度值分析攻击.

综合近年来学者的研究,对于轻量级的图像加密[14]方法的研究不多.但是轻量级的图像加密算法[15-16]却越来越重要,轻量级的加密不仅仅适用于PC端,还能够适用于移动终端,能够提升移动终端的图像传输的安全性.本文结合序列密码中的m序列以及对称密码学的经典加密算法希尔密码对图像进行加密,并且结合混沌置乱的方法提出的加密方法,通过m序列增强加密算法的密钥安全性,结合传统的希尔加密,能够快速并且安全地对图像进行加密.

1 基于序列密码的图像加密算法描述

1.1 预备知识

希尔密码是运用矩阵论基本运算的一种替换密码,在1929年被Lester S.Hill发明.它的原理就是将26个英文字母看作0~25个数字,例如:A=0,B=1,C=2,…,然后每一串字母都看作是一个n维向量,通过一个可逆矩阵与n维向量进行矩阵的乘法运算得出一个数值,该数值对26进行取模运算以后的结果就是密文数字,密文数字对应的字母就是密文.解密过程就是将加密的密钥矩阵进行求逆运算,然后将密文数字和密钥矩阵的逆矩阵进行相乘得出的结果和26进行取模运算就能够得出原文.

本文使用希尔密码的理论对图像进行加密,使用的是灰度级为256的图像,每个像素的像素值最大为256,把每一个像素值当作256进制数字,每一个像素值与密钥矩阵相乘的结果mod256得出的数字对应的像素就是密文.

1.2 基于序列密码的图像加密原理

图1 基于序列密码的图像加密算法加密过程Fig.1 The encryption process of image encryption algorithm based on sequence cipher

1.3 算法加密过程

步骤1 选取灰度级为256的明文图像,然后读取图像Pm×n,通过灰度矩阵转换算法求出图像Pm×n的灰度共生矩阵Mm×n.

步骤2 通过线性反馈移位寄存器生成一个m序列,计算出序列的线性复杂度L,确定m序列中的任意2L-1长的一段序列(SiSi+1Si+2…Si+2L-2)以及确定算法的平移量x0.

步骤3 将灰度矩阵Mm×n分成n个列向量(γ1,γ2,γ3,…,γn),然后根据周期序列的性质以及确定的序列段(SiSi+1Si+2…Si+2L-2)求出可逆矩阵作为加密密钥Ekey.

Mm×n⟹(γ1,γ2,γ3,…,γn).

(1)

(2)

(3)

(4)

步骤5 对扩散加密后的列矩阵组进行置乱迭代r次,每迭代一次都将与偏移量x0进行相加,最终得到向量组(γ1‴,γ2‴,γ3‴,…,γn‴),密文矩阵通过聚合成为一个密文图像进行传输.

1.4 算法解密过程

(5)

步骤2 通过可信信道获得m序列,序列段(SiSi+1Si+2,…,Si+2L-2)以及算法的平移量x0,然后计算出线性复杂度L.根据线性复杂度L以及确定的序列段求出加密密钥,然后加密密钥通过矩阵运算求出其逆矩阵,逆矩阵即为解密密钥Dkey.

(6)

步骤3 列向量(γ1‴,γ2‴,γ3‴,…,γn‴)减去偏移量x0后进行解密迭代,每进行一次解密迭代都减去一次偏移量x0最终得到向量组(γ1″,γ2″,γ3″,…,γn″).

步骤4 根据希尔加密的原理,将步骤2中得到的解密密钥Dkey对解密迭代的列向量进行解密运算得到(γ1,γ2,γ3,…,γn),然后将列向量组(γ1,γ2,γ3,…,γn)转化明文图像.

(7)

(8)

Pm×n=(γ1‖γ2‖γ3…‖γn).

(9)

2 实验仿真结果

2.1 密钥敏感性分析

密钥敏感性是衡量一个算法密钥安全性的指标.密钥敏感性分析就是指在密钥发生微小的改变后,改变后的密钥作为解密密钥进行正常解密操作,如果一个算法的密钥敏感性强,那么在密钥变化极小的时候,密钥也不能作为解密密钥进行正确的解密,如果算法的密钥敏感性不强,那么解密密钥在进行微小的改动后,改动后的密钥也能够进行解密操作.算法1的密钥是通过线性反馈移位寄存器生成的m序列,然后确定m序列中的一段序列段,最后根据周期序列的性质,通过序列段生成的矩阵作为密钥.本文密钥敏感性测试是通过改变1位m序列寄存器的初始值,然后使用相同操作生成密钥对同一密文进行解密,获取解密图像.实验结果如图2所示.

图2(a)为未加密的原图,图2(c)为使用正确密钥进行解密后的解密图像,图2(b)为将m序列寄存器的初始值进行修改1位后生成的解密密钥对密文图像进行解密的图像.根据实验结果可知,图2(b)中无法观察到图像信息,实验证明及其微小的改动也能够使得改动后的密钥没法对密文图像进行解密.所以证明算法1的密钥敏感性较强.

(a) (b) (c)图2 密钥敏感性实验结果Fig.2 The key sensitivity experiment results

2.2 抗差分攻击

抗差分攻击能力是评定算法安全性的一个重要的因素,一个安全的图像加密算法应该有着良好的抗差分攻击能力.一般对图像加密来说,通常使用两种标准来衡量一个这个算法对图像加密的抗差分攻击能力,这两种标准分别是像素变化率NPCR(Number of Pixels Change Rate)和归一化像素值平均改变强度UACI(Unified Average Changing Intensity).像素变化率和归一化像素值平均改变强度的计算公式为:

(10)

(11)

(12)

其中C1,C2分别是两幅大小都为(M,N)的灰度图像.

根据计算可知NPCR的理论值为0.996 1,UACI的理论值为0.334 6,经过多次测试以后取平均值与文献[17]中的算法2和文献[18]中的算法3对比得知,算法1测量后的平均值与相关文献结果相当,所以算法1能抵抗差分攻击.实验结果如表1所示.

表1 抗差分攻击实验结果Tab.1 The experimental results of resisting differential attack

2.3 信息熵

信息熵的概念是在香农信息论中被提出的,信息熵用来表示平均信息量的一个指标概念,反映了信源的不稳定度,其公式为:

(13)

对密文图片进行信息熵的测量,如果任意像素出现的概率是均匀的话,这种情况下密文图片是最混乱的,信息熵也是最大的.在这种情况下,信息最不容易泄露.图像信息熵又叫图像熵,是一种特征的统计形式.Si为密文图像中灰度值为i的像素出现的比例,P(Si)则是密文图像中像素值为i出现的概率.像素值出现的概率可以通过图像的灰度直方图获取.本文使用的是灰度级为256的图像,信息熵值的理论值为8,实验测量结果如表2所示.

表2 信息熵测量结果Tab.2 The image entropy measurement results

通过实验表明,算法1的信息熵相比于文献[19]中的算法4和文献[20]中的算法5更接近8,所以算法1加密后的图像信息相比算法4和算法5加密后的信息是更加无序混乱的,所以图像信息更为安全且不容易泄露.

3 结语

本文提出的是一种基于序列密码的加密算法.在将图像灰度化的基础上,利用序列密码的特性以及混沌映射理论对图像的矩阵进行加密并且给出了相对应的解密步骤.算法具有计算简单,对密钥敏感等特点,并且m序列能够增大序列周期,周期扩大以后就能够增大密钥空间,使算法更安全.并且通过对其密钥敏感性,抗差分攻击以及信息熵等方面进行了实验测试证明了该加密算法适合如今社会发展.

猜你喜欢
加密算法密文解密
一种支持动态更新的可排名密文搜索方案
基于模糊数学的通信网络密文信息差错恢复
炫词解密
解密“一包三改”
基于网络报文流量的协议密文分析方法
密钥共享下跨用户密文数据去重挖掘方法*
炫词解密
炫词解密
DES加密算法的实现
基于整数矩阵乘法的图像加密算法