◆李莉 刘梦
基于DNA编码图像加密系统的FPGA实现
◆李莉 刘梦
(北京电子科技学院电子与通信工程系 北京 100070)
图像相比传统文本蕴含更复杂和丰富的信息,图像的广泛应用使得其对安全和隐私的需求也越来越高,如何实现图像数据的安全传输和存储一直是研究的热点。本文基于DNA编码,提出了一种将DNA计算和线性反馈移位寄存器相结合的图像加密方案,使用线性反馈移位寄存器产生的随机序列作为DNA计算过程中的选择密钥,实现对DNA计算的选择,利用DNA计算的多样性实现数据的加解密处理。设计在国产紫光同创PGL22G FPGA上进行了实现,加密性能测试及统计分析结果显示,此图像加密系统硬件实现简单、资源占用低,且具有良好的随机性和安全性,加密效果良好。
图像加密;DNA计算;国产FPGA
作为主流的多媒体形式,图像相比于文本蕴含更多的信息。数字图像的广泛应用使得其在传输、存储上的安全愈来愈受到重视。图像加密作为保护图像数据安全和用户隐私的一种方法,一直是研究的热点。目前的图像加密技术主要分为两种,一是空域图像加密技术,对图像数据直接进行加密运算操作,常见的方法有像素置乱、现代密码体制的加密,如:DES、AES等;二是压缩图像加密技术,将图像数据使用某种压缩格式或编码技术进行加密,如JPEG编码、算术编码等。从实现方法上来说,又分为软件实现和硬件实现两种,硬件运算的快速性成了追求高用户体验的设计首选。本文利用DNA运算的多样性和硬件实现的便利性,提出了一种将DNA编码和线性反馈移位寄存器相结合的图像加密方案,通过线性反馈移位寄存器产生的随机序列作为DNA编码过程中的选择密钥,利用DNA计算的多样性实现数据的加解密处理,并对方案进行了性能分析。
数字图像可以对应为一个像素矩阵,矩阵的每个元素表示对应位置像素点的像素值,数字图像的加密即是对矩阵元素的处理。最典型的空域图像加密算法是Arnold置乱算法,它将图像的像素信息按照一定规律打乱,从而实现图像的加密。由于只改变像素的位置,像素的灰度分布不变,单纯的像素置乱并不能起到良好的加密效果,而且随着迭代次数的增加,经过一定次数的置乱之后又会恢复到原始图像,因此需要将像素置乱与其他的安全性方案一同进行。文献[1]提出了一种基于整体置乱的并行加密方法,将明文图像进行子图像划分、打乱并利用两个混沌系统的状态组合来改变图像的像素值,此方案具有良好的敏感性和安全性,子图像划分有效的混淆了明文图像中像素位置并削弱相邻像素之间的相关性,而混沌系统产生的混沌序列具有随机性强、对初始值和参数敏感等特点,非常适合应用于图像加密算法。但是该方案也存在子图像划分数量受限,以及混沌系统固有的不足。
现代密码体制的加密算法将图像信息当作明文进行加密,接收方可用事先约定好的密钥对加密数据进行解密。文献[4]提出了一种将置乱和优化的RSA相结合的图像加密算法,文献[5]提出了利用混沌序列对传统DES算法改进的加密方案,但由于密钥长度短、密钥空间小,容易受到穷举攻击和差分分析攻击。算术编码对数据的处理具有很好的压缩效率,在实现完整加密的同时可以解决由于图像数据量庞大、冗余度高带来的计算时资源占用大的问题。但算术编码实现的困难之处在于算术编码的数据字符的统计很复杂且需要不断更新,给数据建模、保存带来了很大的问题,且编码器和译码器在数据更新时需要同步。
基于混沌序列的图像加密算法在图像加密领域十分普遍,混沌系统对初始值和参数的敏感性可以很好满足密码学中要求的密钥敏感性,并且尽管混沌系统运动轨迹随机、错综复杂、无法进行预测,但始终处于有限区域内,而且在具有内在随机性的同时也可以通过控制系统参数与初值来确定运动轨迹。但存在一维混沌映射密钥空间小、安全性差,多维混沌映射要多轮置乱和扩散,时间消耗量大的问题。文献[2]提出了一种组合不同的一维映射构成混合混沌函数,并同时提出了一种优化S-box和产生动态密钥的加密方案,通过混沌系统的迭代产生的向量对S盒进行了优化用于加密置换,在实现速度上表现了较好性能,但是运算复杂度相对高。文献[3]提出了一种基于四元数的图像加密算法,以32个四元数为基础,即32×4的块来处理图像。由于四元数仅包含四个数,相比于矩阵和欧拉角要简便得多,因此算法运行速度较快,运算复杂度较低,但四元数的使用要求极为苛刻,输入数据错误或者存在误差都有可能造成四元数不合法。
在DNA计算加密方面,文献[6]提出了混沌系统和DNA编码结合的图像加密方案,文献[7]提出了基于DNA编码的多图像加密算法,DNA密码学利用其特有的多种编码选择的特征对数据进行加密存储,可保证信息的安全传输。但存在单独使用DNA编码安全性低的问题,结合混沌序列可以解决这一问题,但混沌系统在硬件实现中存在低级混沌系统效果不好而高级混沌系统需要较长的前置时间的问题。
DNA分子有四种含氮碱基(脱氧核苷酸):腺嘌呤(A)、鸟嘌呤(G)、胞嘧啶(C)、胸腺嘧啶(T),DNA的双链螺旋结构意味着一条核苷酸链上的含氮碱基必须与另一条核苷酸链上的碱基以某种方式相对应,其中A与T、C与G间存在互补配对关系。利用二进制数中0和1间的互补特性来契合DNA的碱基互补配对原则,即可完美的描述DNA计算相关内容[8]。DNA计算包含了DNA编码、DNA替换、DNA异或计算和DNA解码几部分,每部分均有多种方式可以选择,所以DNA计算具有更大的选择性和操作性。
结合DNA四种含氮碱基的互补原则和二进制中的0、1特性,可以使用两位二进制数来对应一种含氮碱基,实现二进制数和四种含氮碱基之间的一一对应。在DNA中,腺嘌呤A对应胸腺嘧啶T,鸟嘌呤C对应胞嘧啶G,两位二进制中00和11视为互补,01和10视为互补,用四组二进制来对应四种含氮碱基,共有24种方案,其中有8种方案满足互补条件[9],如表1所示。据此,可将数字图像的像素编码成含有4个含氮碱基的DNA序列。例如像素为156的像素点,其二进制表示为10011100,若采用碱基编码方式1,可知对应的DNA碱基序列为CGTA;若将CGTA按照碱基编码方式3来解码,可得二进制数11001001,像素发生了变化,由156变为了211。
表1 DNA碱基编码方式
DNA碱基替换是为了打乱编码后的DNA序列,具体的DNA替换方式如表2所示,A→T→C→G→A表示将编码后序列中的A用T替换,T用C替换,C用G替换,G用A替换,任意确定一个起始项,例如以碱基A为起点,剩下三个碱基不重复出现的排列顺序有6种。
表2 DNA 碱基替换方式
对应于DNA的8种不同的碱基编码方式,存在8种不同的加减法运算和异或运算方式。本文设计中使用到了DNA序列的碱基异或运算,以编码方式1为例,DNA碱基异或运算规则如表3所示。
表3 DNA碱基异或运算规则(编码方式1)
本文设计的加密系统采用DNA编码结合LFSR所产生的随机序列作为选择密钥进行加密的方案,系统结构如图1所示,由四部分组成:选择密钥生成模块、编码模块、加密替换模块、运算模块和解码模块。其中LFSR用于生成选择密钥,LFSR具有电路简单,易于硬件实现的特点,可以产生周期性良好、数据量足够大的随机序列,生成的选择密钥便于实时更新,比较适合用来进行图像加密中DNA计算的选择。在加密过程中,每个8bit像素根据选择密钥编码为4个碱基序列,进行DNA计算。由于每个碱基为2bit,即DNA计算是对2bit二进制数的操作,可以通过并行处理的方式一次对四组数据进行同时处理,实现一次处理一个像素的操作。
图1 图像加密系统框图
由于DNA计算中的编码、替换、运算、解码不止一种工作方式,为了使得加密具有安全性,针对不同的像素采用随机且不同的工作方式进行处理。工作方式的选择由选择密钥完成,选择密钥的产生需要满足如下条件:(1)选择密钥需要不断的更新变化,保证每次运算的选择密钥不同。(2)选择密钥的产生要具有良好的随机性。(3)选择密钥的数量要足够多,保证每个数据使用的加密都是各不相同的。
综合考虑编码、替换、运算、解码这几种处理的工作方式,编码有8种工作方式,替换有6种工作方式,运算和解码都是在编码的基础上进行的,也有8种处理方式,因此选择密钥的长度设定为3bit。这里选择使用32级斐波那契LFSR(异或门外接型LFSR)来进行选择密钥的生成,这种电路构造简单,运行速度只与移位单元和异或单元的延迟时间有关,因此具有较高的运行速度[10-11]。由于斐波那契LFSR每次计算更新的是最低位的数据,为了避免初始种子对选择密钥带来的影响,同时又不浪费处理初始种子长度数据的时间,将选择密钥设定为每一次线性反馈移位寄存器更新的第三位数据,既保证了选择密钥的随机性,又保证了选择密钥的实时更新变化的性质。
编码模块的作用是将输入的两位二进制通过编码来转换成A、T、C、G构成的碱基序列,对于DNA的8种编码方式,使用000~111共8组二进制数来进行选择,在每一种选择下的编码方式都不同,具体如表1所示。如若输入信号为00,当选择密钥为000时,编码结果为A;当选择密钥为010时,编码结果为G;当选择密钥为101时,编码结果为C;当选择密钥为110时,编码结果为T。编码模块的具体构造框图如图2所示。
图2 编码模块结构框图
加密替换模块的功能是将编码模块输出的DNA碱基序列再一次的顺序打乱。对于替换存在的6种方式,使用3bit选择密钥进行选择。例如:当选择密钥为000时,那么当输入信号为A时,将其替换结果输出为T;那么当输入信号为T时,将其替换结果输出为G;那么当输入信号为G时,将其替换结果输出为C;那么当输入信号为C时,将其替换结果输出为A;加密替换模块的具体构造框图如图3所示。
图3 加密替换模块结构框图
运算模块将加密替换操作后产生的DNA碱基序列打乱后的运算,一个像素的8bit数据对应为4个DNA碱基,保持一位不变,其余三位均与不变的碱基进行异或运算处理,由于DNA的异或运算是基于DNA编码操作的,所以DNA异或运算也就有8种方式,使用000~111共8组二进制进行选择,例如:选择密钥为000时,两组输入信号为AA、TT、CC、GG时,将其运算结果输出为A;两组输入信号为AT时,将其运算结果输出为T;两组输入信号为AG时,将其运算结果输出为G;两组输入信号为AC时,将其运算结果输出为C;两组输入信号为CT时,将其运算结果输出为G;两组输入信号为CG时,将其运算结果输出为T;两组输入信号为GT时,将其运算结果输出为C;运算模块的具体构造框图如图4所示。
图4 运算模块结构框图
解码模块将运算模块输出的DNA碱基序列转换为二进制数据,其原理为编码操作的逆处理,具体构造如图2,将编码运算改为解码运算即可。对应于DNA的8种编码方式,同样也有8种解码方式,使用选择密钥进行选择,在每一种选择下的解码方式都不同,例如:选择密钥为000时,那么当输入信号为A时,将其解码结果输出为00;那么当输入信号为T时,将其解码结果输出为11;那么当输入信号为C时,将其解码结果输出为10;那么当输入信号为G时,将其解码结果输出为01。
加密操作逆序即可实现解密。唯一不同的是加密模块和解密模块中的替换模块在条件选择下的输入和输出的对应关系不同,例如;当选择密钥为000时,在加密替换模块中,输入信号为A时,产生的输出信号为T;而在解密替换模块中,输入信号为A时,产生的输出信号为C,具体对比关系如表4所示。
表4 加密替换和解密替换输入输出对比
该图像加密系统基于紫光同创Logos系列PGL22G FPGA开发板开发,采用 Verilog HDL语言,操作系统:Windows10,开发工具:Pango Design Suite、matlab R2016a。选择标准测试图像lena.jpg,编码密钥和解码密钥均为32bit。系统实现效果如图5所示。
图5 图像加密系统实现效果
(1)直方图统计
灰度直方图描述一幅图像中不同灰度级的像素出现的频率,据图6所示,加密处理后图像的R、G、B三个分量的灰度直方图分布均匀,表明方案具有良好的统计分析的能力。
图6 直方图分析
(2)相邻像素相关性分析
相邻像素具有较强相关性是图像最大的特点,也反映了图像像素的随机性强弱。本文所设计的图像加密后的相邻像素相关性如图7、表5所示。
表5 图像相邻像素相关性分析表
(3)信息熵
表6 加密图像信息熵分析
加密系统是否安全最基本的特点就是要有足够大的密钥空间,而DNA计算与之相比增加了算法本身的多选择性:DNA编码具有8种方式、替换具有6种方式、运算具有8种方式、解码具有8种方式,对于一个像素来说,理论上每一个像素都具有的加密情况就具有3072种,32bit的密钥具有264的密钥空间,因此本文设计的图像加密系统具有很好的可以抵御暴力破解攻击的能力。
理论分析上DNA加密只需要包括数据处理、编码、替换、计算、解码在内的五个周期即可完成,且在硬件实现上,每个周期的运算以查表为主,处理数据方式简单,具有轻计算量的优势。采取对4000组8bit数据进行测试,硬件处理时间对比如表6所示,两组方案在PGL22G FPGA上的资源占用情况如表7所示。可见本算法可以在较少的资源占用情况下,达到理想的运算处理速度。
表7 两组加密算法的硬件处理时间对比
表8 资源占用及速度对比
本文基于线性反馈移位寄存器和DNA编码设计实现了一种图像加密的硬件实现方案,将线性反馈移位寄存器产生的伪随机序列来作为选择密钥,应用于DNA编码、替换、运算、解码的各个环节,控制DNA序列计算完成图像数据的加解密,增加了算法加密过程的随机性。性能测试及统计分析表明此图像加密系统具有良好的随机性和安全性,加密效果良好。由于本文并未对DNA算法的硬件实现做进一步的优化,所以在其运算耗时上,还有较大的改进空间。
[1]Omid Mirzaei,Mahdi Yaghoobi,Hassan Irani. A new image encryption method: parallel sub-image encryption with hyper chaos[J]. Springer Netherlands,2012,67(1).
[2]M. A. Ben Farah,A. Farah,T. Farah. An image encryption scheme based on a new hybrid chaotic map and optimized substitution box[J]. Nonlinear Dynamics,2019(prepublish).
[3]Mohamed Boussif,Noureddine Aloui,Adnene Cherif. Images encryption algorithm ba-sed on the quaternion multiplication and the XOR operation[J]. Multimedia Tools and Applications,2019,78(24).
[4]杨洋,杨洁,冯久超.一种基于Arnold置乱和优化大素数选取方案的RSA数字图像加密算法[J].计算机科学,2013,40(S2):178-180.
[5]汤任君,段竞哲,邓洪敏.Logistic混沌序列和DES算法的图像加密方法[J].计算机应用,2017,37(S1):89-92.
[6]胡裴龙. 基于混沌理论与DNA编码的图像加密算法研究[D].安徽大学,2018.
[7]孙鹤鹏,张晓强.基于DNA编码的多图像加密算法[J].计算机工程与设计,2018,39(10):3050-3054+3099.
[8]霍家佳,张文政.DNA密码与DNA计算及应用[J].中国电子科学研究院学报,2014,9(01):17-21.
[9]张勋才,刘奕杉,崔光照.基于DNA编码和超混沌系统的图像加密算法[J].计算机应用研究,2019,36(04):1139-1143.
[10]潘晓英.基于线性反馈移位寄存器和分组密码的伪随机数生成方法[J].通信技术,2015,48(02):228-231.
[11]郝洪伟.基于FPGA的Leap-forward型线性反馈移位寄存器在伪随机序列算法中的应用[J].控制与信息技术,2018(02):56-60.
北京市共建项目专项资助