基于SM2和DNA的图像加密算法
2025-01-25唐亦昕张英男
摘 要:近年来,随着互联网的全面普及,公民对信息安全和隐私保护提出了新的更高的要求,为了保护公民的数据安全,并且满足“打赢新时代网络战争”的要求,对图像加密算法的研究与实现进行深入的研究,提出了一种基于国密SM2数字信封和脱氧核糖核酸(Deoxyribonucleic acid,DNA)编码的图像加密技术,将图像编码技术、公钥技术、口令保护技术相结合.在该算法中,通过使用Python重点实现了密钥空间的复杂性、图像的鲁棒性、随机性、低相关性,同时对图像的直方图进行了分析,研究结果表明,在实现公钥加密算法国产化替代的同时,增强了加密的安全性.
关键词:SM2数字信封; Chen 超混沌; Logistic混沌; 鲁棒性; 脱氧核糖核酸(DNA)
中图分类号:TP309
文献标志码: A
The image encryption algorithm based on SM2 and DNA
TANG Yi-xin, ZHANG Ying-nan*
(College of Cryptography Engineering, Key Laboratory of Cryptography and Information Security of People Army Police, University of People Army Police, Xi′an 710016, China
)
Abstract:In recent years,with the comprehensive popularization of the Internet,citizens have put forward new and higher requirements for information security and privacy protection.In order to keep the information secure,we are based on the requirements of \"winning the network war in the new era\" and carry out in-depth research on the research and realization of image encryption algorithms.We propose an image encryption technology based on the China secret SM2 digital envelopes and DNA encoding,combining image encoding technology,public key technology,and password protection technology.In this algorithm,the focus is on realizing the complexity of the key space,robustness,randomness,and low correlation of the image using Python.The histogram of the image is analyzed,and the research results have enhanced encryption security while achieving the replacement of public key by Chinese algorithm.
Key words:SM2 digital envelope; Chen hyperchaos; Logistic chaos; robustness; deoxyribonucleic Acid (DNA)
0 引言
近年来,人民群众对网络安全的要求愈来愈高,党的二十大报告中提出:要“健全网络综合治理体系,推动形成良好网络生态”.为了达到这一目标,就必须使用密码学的相关理论,密码学是一门综合性极强的学科,涉及到计算机科学、数学、通信工程、电子技术、量子物理学等诸多学科.古典的密码学只是对文字、数字作简单的变换,比如单表代换密码中非常有名的恺撒密码.经典的密码学分为对称密码体制和公钥密码体制,无一例外,都是针对二进制数据流的运算,而图像的信息数据量相对传统数据流信息来说更大,信息更加冗余.在图像传输过程中,图像信息非常容易被非法窜改、通过恶意复制和传播等方式进行破坏,这就需要可靠实用的图像加密技术来确保数字图像的安全传递与储存.
一些传统的加密算法,例如RSA[1],主要的处理对象是文本和数据的形式,并不适用于图像加密,且密码算法来自外国,算法在保证同等安全性的情况下,密钥量远远超过国密算法SM2[2].传统的增强型双随机相位编码技术忽略了图像中R、G、B通道之间的相关性,当像素独立加密三次后会降低安全性[3].刘海峰等[4]利用多种混沌系统设计了图像加密方案,取得了比较好的效果.
近年来,出现了一些利用生物技术进行编码的方式,DNA编码就是其中一种,这种方法利用碱基对互补配对的规则进行编码,施飞等[5]提出了基于混沌映射的DNA序列加密算法.Hu等[6]提出了一种基于时空混沌系统和DNA插入删除的图像加密算法.DNA计算总体上具有高度并行性、海量存储能力、极低能耗等特点[7],在信息安全领域有以下具体优势:(1)极高的信息密度:DNA分子具有极高的信息存储密度,可以在微小的空间内存储大量信息,适合用于加密和存储大容量数据;(2)生物特性:DNA是生物体内的基本遗传物质,具有生物特性,不易被仿制或窃取,增加了信息的安全性;(3)耐久性:DNA分子具有较长的寿命,能够长期保存信息而不受损坏,适合用于长期数据存储和传输;(4)隐蔽性:将信息编码到DNA序列中可以实现信息的隐蔽传输,不易被检测到或拦截,提高了信息安全性;(5)抗干扰能力:DNA分子具有较强的抗干扰能力,能够在恶劣环境下保持信息完整性,适合用于特殊环境下的信息传输和存储.
混沌现象是普遍存在于自然界中一种看似无序实则有自己运行规律的复杂的运动形式,如气候变化、股市变化.每个混沌系统的数学表达式都是独一无二的[8].混沌系统具有对初始条件和系统参数高度敏感、伪随机性、遍历性等优良特性,非常适合应用于数字图像加密,国内外许多学者都使用了混沌系统来对图像进行加密[9].Niyat等[10]通过高维的混沌来增强加密的安全性,取得了较为理想的效果,但是同时增大了对硬件负担,在此基础上,Hua等[11]通过Logistic映射与Sine映射构造了综合性能良好的LASM映射.
在公钥技术方面,1978年Adleman等[1]提出了RSA公钥加密技术,成为应用广泛的公钥技术.1987年,Karp等[12]提出了一种改进的RSA算法,称为Rabin算法.2010年,国家密码管理局发布了椭圆曲线公钥密码算法SM2,在我国的商用密码体系中被用来替换RSA算法.其具有密码复杂度高、处理速度快、机器性能消耗小的特点.
1 混沌系统与DNA编码运算
1.1 Logistic 映射
Logistic映射又被称为单峰映象[13],后来,数学家们对 Logistic 映射进行了深入细致的研究后发现,它完美地继承了混沌内在无法预测性、初值敏感性的优点,是目前应用最广泛的一类非线性动力学离散混沌映射系统[14].Logistic 映射在数学的定义上来说,是一种一维迭代函数,方程为:
Xn+1=UXn(1-Xn)
(1)
当3.569 9lt;Ult;4时,此时的系统正于混沌状态下,可以产生优质的伪随机序列.
1.2 Chen 超混沌系统
Chen超混沌系统[15]是一种经典的混沌动力学系统,方程为:
x=a(y-x)
y=-xz+bx+cy
z=xy-dz
q=yz+eq
(2)
式(2)中:x、y、z和q为混沌系统的状态变量;而a、b、c、d 和 e 是混沌系统控制参数.当a取35,b取7,c取12,d取3,e取0.086时,经过相应的计算可以得出此超混沌系统具有两个正的 Lyapunov 指数.在这种条件下,满足超混沌运动的定义,说明此时的系统处于超混沌状态.
1.3 DNA编码运算
通过生物学知识可以知道,DNA是一种高分子化合物,其结构是双链型,基本组成单位为4种不同的脱氧核苷酸:腺嘌呤、胞嘧啶、鸟嘌呤和胸腺嘧啶,分别用A、C、G、T进行表示.其中,腺嘌呤和胸腺嘧啶、胞嘧啶和鸟嘌呤之间存在碱基互补配对原则,即A—T配对,C—G配对.对于一幅真彩色图像,可以分解为B、R、G三个通道,每一个通道就是一个灰度图像,灰度图像的每一个像素可以用8位二进制数表示,二进制数中,0和1互补配对,所以00和11、01和10之间也是互补配对的.因此,如果用四个脱氧核苷酸A、T、C和G分别表示二进制数00、11、01和10,则每一个像素值就可以用长度为4的DNA序列来表示.根据碱基互补配对规则,编码规则分为8种,具体如表 1所示.算法中所用到的DNA运算方式包含:加法运算、减法运算、异或运算和同或运算,如表2所示.
2 SM2与数字信封
2.1 SM2公钥加密
SM2是中国密码学算法标准中的一种非对称加密算法,它是由国家密码管理局(中国密码局)发布的一种椭圆曲线公钥密码算法.SM2基于椭圆曲线离散对数问题,其安全强度比RSA 2048位高,运算速度快于RSA.随着密码技术和计算技术的发展,目前常用的1 024位RSA算法面临严重的安全威胁,我国的国家密码管理部门经过研究,决定采用SM2椭圆曲线算法用来代替RSA算法.经过计算证明,SM2算法在安全性、性能上都具有优势.
2.2 数字信封
数字信封是公钥密码的具体应用,只允许特定的人阅读信件中的内容.加密者通常使用对称密钥对原文信息进行加密,在此过程中产生了一个问题:对称密钥的安全性如何保证?于是,加密者使用接收方的公钥对对称密钥进行加密,将加密后的密文、密钥一同发给接收方.接收方收到信件后,用自己的私钥解密,得到明文,这个明文也就是对称加密时所用的密钥,而后就用这个密钥对被加密的消息再次进行解密,这样就实现了消息的安全传递.
在对称密码与公钥密码中,对称密码在加密时加密速度快,加密实现简单.公钥密码加密可靠牢固,对于数字签名的实现更加容易,但是加密速度慢.这两种加密方式的结合,可以快速安全地对信息进行加密传输,对称密钥的密钥长度通常比信息文短,利用公钥对对称密钥加密实现了数字信封.
3 基于SM2和DNA的图像加密算法
提出了一种新型的图像加密算法,其算法流程如图1所示.对于一幅RGB真彩色图像,图像由红、绿、蓝三通道组成,每一个通道有8位的深度,十进制表示是0~255,所以一幅真彩色图像可以在计算机中表示为三个二维矩阵,通过DNA编码运算系统对图像进行加密后,而后进行抗裁剪等处理,增强图像的鲁棒性,最后将三个矩阵重新合成,得到加密后的真彩色图像.
具体加密步骤如下:
步骤1
通过opencv中的函数将图像读入.对于一幅图像,它的图像大小并不固定,但是为了方便编码运算,算法需要对图像进行分块,在这个过程中,会导致在图像的边缘出现分块的不完整,这时可以创建一个初值全为0的二维数组,这个数组的大小取决图像分块后,块数每块的像素完整值相乘,相当于将图像分块内的边缘像素(包括原始图像不存在的部分)全部设置为0,而后,把这个二维初始数组赋上读入的原始图像的像素灰度值.这样,数组不仅有原始图像的信息,图像的边缘部分也有了值.另外,在实现一些置乱算法,例如阿诺德变换时,需要图像的尺寸是相等的长宽,这时从兼容性的角度来看,需要填充满足变换算法的要求.
步骤2
口令输入.口令是最常用的安全工具之一,很多时候,日常生活中所说的“密码”其实就是指的口令.口令方便快捷,但是容易遭受到社会工程学攻击和爆破攻击.口令作为加密程序的一部分,是安全性的第一道防线.输入口令kl1后,对其进行处理.
kl2=kl1mod3 999
(3)
kl3=kl2÷10 000
(4)
通过模运算提高输入长度的自由度,同时保证kl3的值在0.000 0到0.399 8之间.
步骤3
产生Logistic混沌序列.将参数代入递归运算表达式,进行混沌序列的产生,参数和初值的公式如式(5)~(7)所示.
u=3.6+kl3
(5)
x0=sum(p1)+sum(p2)SUM*255*2
(6)
pi+1=upi(1-pi)
(7)
式(5)~(7)中:P1、P2和SUM分别是图像第一分块、第二分块的像素值之和以及总的像素数量.
为了保证良好的随机性,去除序列的前1 000项,这一过程称为对序列引擎的预热,最后将序列p变换到0~255范围内整数,转换成M*N的二维矩阵
步骤4
求解Chen超混沌系统.Chen超混沌系统的实现略显复杂,因为系统的初值多,需要进行的计算比Logistic混沌系统的多,时空开销更大.Chen超混沌系统的计算本质是求微分方程的解,去除前3 000项,得到随机性更好的Chen超混沌序列.系统初值如式(8)所示.
X0=sum(sum(P1amp;17))/(17SUM)
Y0=sum(sum(P2amp;34))/(34SUM)
Z0=sum(sum(P1amp;68))/(68SUM)
H0=sum(sum(P2amp;136))/(136SUM)
(8)
通过对微分方程的求解可以得到X,Y,Z,H四个混沌序列.
步骤5
DNA编码运算.利用前面产生的混沌序列控制DNA的编码运算方式.以蓝色通道以例,Z[0]随机序列决定了运算方式,0表示加、1表示减、2表示异或、3表示同或,运算的主体是编码后的矩阵与第一大块的矩阵,这么做的目的是通过与自己的动态运算对算法的安全性和敏感性进一步提升.运算完成后,得到三个新的矩阵Q_last_B、Q_last_G、Q_last_R.对编码运算好的新矩阵进行解码操作,通过判断碱基对的组成来还原成十进制数,解码所用到的混沌序列同编码时所用的混沌序列不一样,提高了加密算法的安全性.
步骤6
抗裁剪处理.通过上述的编码解码运算处理,虽然加密图像的相关性和鲁棒性有了很大的提高,但是在面对一些信道中出现的能量损失和干扰的时候,还是会在解密的图像中出现很大的噪点,为了把图像的加密性能进一步提升,还需要利用Logistic混沌的方法降低像素之间的相关性.计算出原始图像绿、蓝色通道的灰度平均值记为xx0和xx1,作为混沌的初值迭代计算得到ppx和ppy序列,利用其对图像进行置乱.
步骤7
生成对称密钥.数字信封的定义里,对称密钥负责对明信息文进行加密,由于通过了多种方式提高了加密过程的随机性,这些方式通过初值的迭代产生,初值又通过原始图像的像素信息产生,这些具有初值敏感性的迭代算法保护着加密过程,对于很小的变换,图像都无法完成正确的加解密的过程,算法将这些初值和口令系统的口令作为对称密钥存入数组:
TheKey=[kl1,xx0,xx1,x0,X0,Y0,Z0,H0]
(9)
步骤8
数字信封的生成与拆封.算法利用了SM2的公钥,对步骤7中生成的对称密钥数组TheKey进行加密,这样就得到了一封数字信封.在解密时利用私钥对信封解密,提取出对称密钥,再对图像进行解密,这样就完成了整个加解密过程.
4 加密算法实现与安全分析
4.1 算法实现结果
实验所用到的环境配置为:Intel(R) Core i7-9750H 2.60GHz CPU,GTX 1650 GPU,16GB DDR4 RAM,专业版Pycharm搭配python3.11的笔记本计算机,使用Gmssl和opencv作为主要算法库.
4.2 算法安全性分析
4.2.1 密钥空间分析
64位计算机的运算精度为10-15[16],从而可以得出本算法中的各种参数构成的密钥空间.经过计算,密钥空间至少有1080≈2266,能抵抗穷举攻击的破译.
4.2.2 加解密结果
在验证过程中,选用大小为500×651的彩色图像“girl”,如图2(a)~(c)所示,经过算法加解密后的图像能够进行可逆运算.
4.2.3 初值敏感性测试与分析
为了测试密钥的初值敏感性,在代码运行时,通过Debug强制改变初值,使得初值存在Δ=10-15的误差,测试过程中,使用口令为“10180205”.正确的解密图像如图3(a)所示,与原图一致,提取信息完整.当改变编码初值X0、Y0,运算初值Z0和解码初值H0后,得到的图像如图3(b)~(e)所示.当改变初值μ时,如图3(f)所示,无法解析出原始信息.因此,算法具有很强的初值敏感性.
为了得到图像对混沌序列的初值敏感性,通过DeBug对Logistic混沌序列的初值μ加上Δ=10-15,通过像素数变化率(Number of Pixels Change Rate,NPCR)和统一平均变化强度(The UnifiedAverage Changing Intensity,UACI)这两个指标对两张图像的差异进行对比.NPCR的百分率表示了两张加密图像之间的变化像素数,而UACI的百分率的值表示的是两张加密图像之间的平均变化强度数.NPCR和UACI的计算公式如式(10)和式(12)所示:
NPCR=∑i,jD(i,j)M*N*100%
(10)
D(i,j)=f(x)=1,C1(i,j)≠C2(i,j)
0,others
(11)
UACI=1M*N∑(C1(i,j)-C2(i,j))255*100%
(12)
式(12)中:C1(i,j)为原加密图像的像素值,C2(i,j)为新加密图像的像素值.得出数据如表3和表4所示.
下面再选取三张图像对混沌序列的初值敏感性测试,同上,通过DeBug对Logistic混沌序列的初值μ加上Δ=10-15,明文图像、原加密图像和变换后加密图像如图4所示.
4.2.4 直方图分析
直方图是对图像的一种统计学分析依据,测试得出的图像信息直观地反应了统计学特征,如果加密时使用的变换方法过于简单,则根据明文图像和密文图像之间的变换规律得到密钥.为了抵御统计攻击,加密后的直方图必须没有统计规律.
以图5(a)和图5(b)为例,图5(a)所示的明文直方图的红色像素值集中在225,绿色像素值在20、95、115、145和200处出现峰值,而蓝色通道集中在100附近,图像整体的像素值分布在100附近.对比图5(b)加密后的图像, R、G、B三通道的像素值在0~255间均匀分布,因此,该算法具有极好的抗统计分析能力,同时表现出密文图像的直方图方差小,像素分布均匀,这样的加密算法在统计意义上安全.
4.2.5 像素相关性分析
通常,一幅带有一定信息的图像像素之间存在很强的相关性,可以通过相邻像素的一些特性推断出该像素的信息,从而实现对加密信息的破译,复原出明文图像,为了降低这种攻击方法的成功性,需要降低像素之间的相关性,可以用式(13)~(16)计算出图像像素的相关性.
Rxy=cov(x,y)D(x)D(y)
(13)
E(x)=1N∑Ni=1xi
(14)
D(x)=1N∑Ni=1(xi-E(x))2
(15)
cov(x,y)=1N∑Ni=1(xi-E(x))(yi-E(y))
(16)
式(13)~(16)中:y、yi分别是x、xi的相邻像素, Rxy是这两个像素的相关系数,E(x)表示均值、cov(x,y)表示x与y的协方差,D(x)为方差,N为像素的总数.明文图像像素相关性强,其相关系数也就趋于1,而加密效果好的图像其相关性也就趋于0.测试结果如图6所示.实验结果表明,经过该算法加密后的图像,像素之间的相关性低,各个通道的离散程度大.明文图像在各个通道的所有方向上相关性水平都非常接近于1,密文图像的相关性接近于0.两种数据的呈现方式都表明,该算法破坏了图像的相关性,打乱了图像的规律,对统计攻击具有防护效果.
4.2.6 阻塞攻击
图像在信道中传输的时候,信道中会存在能量损失,在遇到干扰时也会损失部分像素,好的算法在面对阻塞攻击时,能够最大化地扩散这种能量的损失.为了模拟这种情况,在仿真实验时,将加密后图像的红色通道挖去一块80×80的像素块,绿色通道挖去一块50×80的像素块,再将所有通道挖去一块60×50的像素块,而后对挖去像素块的密文图像进行解密,观察解密后图像效果如图7所示.
经过阻塞攻击后的密文图像在解密后,损失的像素均匀分在在图像上,对图像整体的信息提取没有造成影响,图像依然能够读出原始信息.所以,本加密算法可以抵抗阻塞攻击.
5 结论
本文提出了一种基于国密SM2和DNA编码运算的新型图像加密算法.在整个算法里,对于伪随机序列的生成使用了Logistic混沌序列和Chen氏超混沌系统,产生的混沌序列用于控制DNA的编码规则以及运算规则,融合了口令加密,对称密钥通过图像生成,经过SM2公钥加密产生数字信封,在保证密钥安全的前提下,加大了加密效率.在测试时,对密钥空间、初值敏感性、像素相关性、NPCR,UAIC、直方图和鲁棒性进行了分析.
结果表明,算法具有较大的密钥空间,对初值的高度敏感性可以防止敌手的恶意攻击.良好的直方图特性和像素之间的线性无关性表明算法对于图像的置乱效果好,能抵抗统计学攻击.接
近理想值的NPCR值和UAIC值表明算法可抵抗差分攻击,综上结果说明算法可以适用于彩色图像的加密.在实际应用场景中,还可以配以AES加密,并适当增长密钥长度[21].算法在实现时也存在一些还有待提高的方面.一是对硬件的要求还不够低,算法的计算量较大,如果将系统部署在性能较低的办公设备上,算法就不太适合.二是算法随机性还可以改进,混沌序列终究只是伪随机序列,期望能找到真随机序列对算法进行控制.在未来的研究学习中,会将图像加密技术与密文域可逆信息隐藏技术结合起来,增强加密技术与隐蔽通信技术的融合发展,为我国的信息战、网络战作出贡献.
参考文献
[1] R.L.Rivest,A.Shamir,L.Adleman.A method for obtaning digital signatures and pubilc-key cryptosystems\.Communications of the ACM,1987,21(2):120-126.
[2] 杨 波.现代密码学[M].5版.北京:清华大学出版社,2012.
[3] Yildirim M.Optical color image encryption scheme with a novel DNA encoding algorithm based on a chaotic circuit[J].Chaos,Solitons amp; Fractals,2022,155:111 631.
[4] 刘海峰,周雪飞,梁星亮,等.基于多混沌系统的图像加密算法[J].陕西科技大学学报,2022,40(1):188-195.
[5] 施 飞,张红梅,张向利.基于混沌映射和 DNA 编码的图像加密算法[J].计算机工程与应用,2018,54(5):91-95.
[6] Hu T,Liu Y,Gong L H,et al.Chaotic image cryptosystem using DNA deletion and DNA insertion[J].Signal Processing,2017,134:234-243.
[7] 胡倩颖.基于Chen超混沌的图像加密研究[D].南昌:南昌大学,2017.
[8] 焦开心.基于RSA与DCT的图像信息加密隐藏算法研究[D].湛江:广东海洋大学,2021.
[9],Kaar S,Pehlivan I,et al.Secure image encryption algorithm design using a novel chaos based S-Box[J].Chaos,Solitons amp; Fractals,2017,95:92-101.
[10] Niyat A Y,Moattar M H,Torshiz M N.Color image encryption based on hybrid hyper-chaotic system and cellular automata[J].Optics and Lasers in Engineering,2017,90:225-237.
[11] Hua Z,Zhou Y.Image encryption using 2D Logistic-adjusted-Sine map[J].Information Sciences,2016,339:237-253.
[12] Karp R M,Rabin M O.Efficient randomized pattern-matching algorithms[J].IBM Journal of Research and Development,1987,31(2):249-260.
[13] 邓晓衡,廖春龙,朱从旭,等.像素位置与比特双重置乱的图像混沌加密算法[J].通信学报,2014,35(3):216-223.
[14] 李志远,蒋爱平,沈彦琦.基于Chen超混沌和DNA编码的图像加密算法[J].黑龙江大学自然科学学报,2020,37(5):602-609.
[15] Chen G,Ueta T.Yet another chaotic attractor[J].International Journal of Bifurcation and Chaos,1999,9(7):1 465-1 466.
[16] 朱凯歌,武相军,任广龙.基于DNA动态编码和混沌系统的彩色图像无损加密算法[J].计算机应用研究,2020,37(S2):230-233.
[17] 高若云,白牡丹,黄佳鑫,等.基于多混沌系统的多图像加密算法[J].计算机系统应用,2024,33(3):170-177.
[18] Nan S X,Feng X F,Wu Y F,et al.Remote sensing image compression and encryption based on block compressive sensing and 2D-LCCCM\.Nonlinear Dynamics,2022,108(3):2 705-2 729.
[19] Belazi A,Abd El Latif A A,Belghith S.A novel image encryption scheme based on substitution-permutation network and chaos[J].Signal Processing,2016,128:155-170.
[20] Hua Z,Zhou Y,Pun C M,et al.2D Sine logistic modulation map for image encryption[J].Information Sciences,2015,297:80-94.
[21] 杨 帆,吴浩宇,郭雅婷,等.基于联邦学习的火灾图像检测算法[J].陕西科技大学学报,2022,40(6):184-191.
【责任编辑:蒋亚儒】