一种基于超混沌系统的加密算法及其在预制舱变电站的应用

2022-12-27 13:18王兴华高来先张永炘
计算技术与自动化 2022年4期
关键词:加密算法公钥解密

王兴华,张 俊,高来先,张永炘†

(1. 广东电网有限责任公司电网规划研究中心,广东 广州 510600;2. 广东电网有限责任公司江门供电局,广东 江门 529099;3. 广东创成建设监理咨询有限公司,广东 广州 510062)

电力能源是促进时代和社会发展的重要基础支撑之一[1]。近年来随着电网建设的投资力度和建设规模持续增加,电网系统迅速铺开。其中预制舱变电站由于其低成本、高耐久和建造周期短等特点,有逐步取代传统电站的趋势[2]。虽然预制舱变电站技术尚未成熟,但是伴随着该技术的普及和推广,在预制舱变电站模式下的数据安全问题逐渐显露,引起社会各界人士的关注[3]。

纵观国内外研究结果,利用密码技术解决数据安全问题已屡见不鲜,其中基于混沌映射的数据加密更是成为研究热点之一[4]。文献[5]提出了一种基于混沌映射的图像隐藏加密算法,将明文信息通过加密操作后隐藏在公开图中,进而实现图像的隐藏加密。文献[6]设计了一种基于多混沌的加密算法,并利用比特平面分解来进行置换扩散,能够抵御多种形式的攻击。文献[7]利用了混沌的复杂动力学原理,在空间域算法的基础上,提出了一种基于混沌映射的加密算法。综上,基于混沌映射的保密通信技术已有较成熟的研究成果[8]。但是,这些算法大多采用对称加密协议,该协议在预制舱变电站模式的“多对多”的信息交互模式下存在局限性。

相对于对称加密协议,非对称加密协议中的公钥密码系统更加符合物联网安全通信的需求[9]。在公钥密码体制中,任何人都可以在数据库中查询到他人的公钥。该公钥用于信息发送方对明文进行加密。此外,信息发送方和接收方都有一个用于解密的个人私钥,接收方可以利用个人私钥来解密得到明文。另外,公钥密码体制还能为发送方的消息提供认证。发送方使用个人私钥加密的明文通过签名算法经信道传送给接收方,接收方再使用发送方的个人私钥进行解密[10]。同时,混沌动力系统具有不周期、不发散、不收敛的特性。以此为基础,利用其生成的高随机性序列作为密钥序列,并结合公钥密码体制对数据进行加密,达到信息保密、通信安全的目的[11]。

因此,针对预制舱变电站技术中潜在的信息安全问题,设计一种采用公钥密码系统的混沌加密算法具有重要的理论意义和应用价值[12]。本文提出一种面向预制舱变电站的加密算法设计。首先利用素数发生器确定加密系统的公钥和私钥。接着对RAS算法加密产生的密钥初值进行归一化处理,得到符合要求的密钥。然后通过超混沌系统生成的随机序列对数据进行掩膜、置乱、扩散。最后将得到的密文发送至接收端。

1 相关原理

混沌系统是一种具有不发散、不收敛和不周期等特点的非线性系统[13]。一维的离散混沌系统通常形式简单且序列生成时间短,但同时以此序列作为密钥的密码系统通常存在密钥空间小,抗攻击能力差等问题。而二维超混沌系统生成的伪随机序列,由于变换了加密因子,所以系统的动态行为更加难以预测,对保密通信有更高的价值[14]。在评估混沌系统的特性时,通常使用Lyapunov指数(即李氏指数)来衡量。通常,正李氏指数越多表示系统状态量的个数就越多,同时系统的不稳定程度就越高[15]。根据混沌系统的正李氏指数的个数,可将其分为一般的混沌系统和超混沌系统,本文所采用的是Chen超混沌系统,方程组表示如下:

(1)

式中a、b、c、d、k为系统参数,当a=36,b=3,c=28,d=16且-0.7≤k≤0.7时,Chen超混沌系统处于混沌状态,并生成四个混沌序列。Chen超混沌吸引子如图1所示。相同参数下生成的Chen超混沌的倍周期分叉图如图2所示。

图1 Chen超混沌吸引子

图2 Chen超混沌的倍周期分叉图

2 超混沌加密算法设计

提出的加密算法如图3所示,具体步骤如下:

步骤1 利用素数产生器产生3个大素数J、K和L

大素数J、K和参数L的生成如下:

(2)

其中J、K为大素数,参数L为RSA算法的一个参量。isprime为素数产生函数。此外an∈[0,10000],是差值为2的等差序列。

步骤2 确定加密密钥(公钥)

任意选取一位与(J-1)*(K-1)互质大值整数H作为加密密钥。

步骤3 确定解密密钥(私钥)

由已知加密密钥H,以及大素数J、K求得解密密钥G,具体如下式:

G*H=1 mod[(J-1)*(K-1)]

(3)

其中mod为取余函数。

步骤4 RSA算法加密

利用产生的加密密钥H,参数L完成RSA加密,具体公式如下:

D=F*Hmod(L)

(4)

其中D为非对称加密后的混沌初值,F为非对称加密前的混沌初值。

此外,若需要解密则必须知道解密密钥G,具体公式为:

F=D*Gmod(L)

(5)

步骤5 数据归一化处理

将所求得的密钥初值D进行归一化处理,使其数值在Chen混沌序列初值区间内。

步骤6 利用超混沌系统生成掩膜、置乱、扩散的随机序列

将RSA算法产生的初值代入超混沌系统,并舍弃前100位序列,根据加密信息的长度计算相应的迭代次数。具体公式如下:

(6)

其中x∈[0,1],y∈[0,0.1],z∈[0,0.2],β∈[6,+∞],当a=10,b=8/3,c=28,r∈(-1.52,0.06)时,系统处于超混沌状态。

步骤7 异或掩膜

明文通过一个用与其等长等宽的混沌矩阵进行位异或运算,具体公式如下:

C1=Bitxor(P,x')

(7)

其中Bitxor为按位异或函数,P为待加密的信息,x'为处于[0,255]混沌序列。

步骤8 置乱扩散

置乱具体如下:

(8)

其中C1(i,j)为置换后的密文,indexH,indexW为顺序排序的混沌序列,I是混沌系统产生的一个二维矩阵。

扩散具体如下:

Ci*j=Ci*j-1⊕Si*j⊕C1(i*j)

(9)

其中Ci*j为扩散后密文,同时也是最终加密图像,Si*j为混沌系统产生的长度为i*j的混沌序列。

步骤9 生成密文

经过以上操作,可生成一张加密质量良好的雪花密文,并发送至接收端。

图3 超混沌加密算法总框图

解密过程:首先,将私钥G通过另外一个通道发送给接收方,并利用公式5将非对称加密后的混沌初值D还原为之前的混沌初值F。然后,利用混沌初值产生的序列矩阵进行逆扩散和逆置乱,分别还原像素值和像素位置。最后,做异或掩膜变换,得到解密后的信息。

3 软件实现

3.1 置乱

设置产生的浮点数型伪随机序列,公式如下:

n=2*H*W

(10)

其中n为浮点数型伪随机序列的长度。

生成整数型伪随机序列,公式如下:

(11)

其中X为整数型伪随机序列,floor为取整函数,max为取最大值函数。

使用Aronld矩阵对图像进行置乱,算法如下:

fori=1:H

forj=1:W

K=1a(i,j);b(i,j)a(i,j)*b(i,j)+1

k=mod([K]*[i;j],[H;W])+[1;1];

t=A(i,j);

A(i,j)=A(k(1),k(2));

A(k(1),k(2))=t;

end

end

其中k是由坐标(i,j)计算得出的新坐标位置向量,t为与坐标(k(1),k(2))交换后的坐标(i,j)。

将置乱后的图像矩阵赋给另一变量B,使用Aronld矩阵还原图像矩阵B,算法如下:

B=A

fori=H:-1:1

forj=W:-1:1

K=1a(i,j);b(i,j)a(i,j)*b(i,j)+1

k=mod([K]*[i;j],[H;W])+[1;1];

t=B(i,j);

B(i,j)=B(k(1),k(2));

B(k(1),k(2))=t;

end

end

3.2 扩散

生成GF(17)的乘法运算查找表,公式如下:

TBL=mod{[transpose(0:16)*(0:16)],17}

(12)

其中transpose为转置函数,TBL为乘法运算查找表。

用查找表计算B(1)和B(i)的值,算法如下:

A=P(:);B0=0;

B(1)=LookUpGF17(B0,S1(1),A(1),TBL);

fori=2:H*W

B(i)=LookUpGF17(B(i-1),S1(i),A(i),TBL);

end

其中LookUoGF17为基于GF(17)域的乘法运算函数。

利用查找表计算C(H*W)和C(i)的值,算法如下:

C0=0;

C(H*W)=LookUpGF17(C0,S2(H*W),B(H*W),TBL);

fori=H*W-1:-1:1

C(i)=LookUpGF17(C(i+1),S2(i),B(i),TBL);

end

4 实验结果及分析

4.1 实验结果分析

在物联网环境下进行实验验证能够更好地说明本算法在预制舱变电站环境下的可行性。实验使用的Chen超混沌映射,映射参数为:a=10,b=8/3,c=28,可调参数r=-1。物联网环境为Raspberry Pi 4 Model B+,CPU型号为Broadcom BCM2711,四核Cortex-A72 (ARM V8) 64位 SoC @ 1.5GHz,内存 8 GB。Raspberry Pi在处理器速度、多媒体性能、内存等方面具备一定的优势,因此能够更好地验证算法在预制舱变电站环境下的适配情况。基于物联网设备的加密系统如图4所示。

图4 基于物联网设备的加密系统

4.2 密钥敏感性

密钥敏感性的强弱是反映加密算法能否抵挡暴力破解的重要指标之一。密钥敏感性越强说明加密算法在面对暴力攻击时越安全。基于密钥敏感性的分析情况如图5所示。

图5(a)为明文图像,图5(b)为密文图像。图5(c)为密钥完全正确时的解密结果,能够准确反映明文信息。图5(d)为密钥出现10-15数量级错误时的解密结果,解密图像呈噪声样式。从实验结果不难看出,即使解密密钥与正确密钥存在微小差异,错误密钥也无法准确还原明文。实验结果证明了算法具有良好的密钥敏感性。

图5 数据加密解密结果

4.3 差分性能分析

两幅图像对应位置的不同的像素点个数占全部像素点的比例,称为NPCR(Unmber of Pixels Change Rate)。两幅图像对应位置的像素点的差值与最大差值的比例的平均值,称为UACI(Unified Average Changing Intensity)。两者都是评估图像抗差分攻击能力的重要指标。具体计算公式如下:

(13)

其中X1和X2分别为两幅大小为H×W的图像,NPCR中的D(i,j)的值如下式:

(14)

利用本算法分别对不同的图像进行加密,并记录分析各次加密后NPCR和UACI的值。不同图像加密后记录结果如表1所示。

表1 不同图像加密后NPCR和UACI的数值

NPCR的理论期望值为99.6%,UACI的理论期望值为33.5%。由实验结果可知,本算法对不同图像的加密结果均符合理论期望值,所以本算法能够较好地抵抗差分攻击。

4.4 密钥空间

密钥空间是反映加密算法对抗暴力破解攻击时的另一安全指标。密钥空间越大说明算法抵御暴力破解的能力越强。本文算法选取系统的初始值作为超混沌系统的密钥参数,H和G为密钥控制参数。密钥空间可表示为:

KCHAOS∈{x0,y0,z0,w0,H,G}

设定密钥参数为双精度数据类型,其精度值为10-16,混沌系统初始值{x0,y0,z0,w0}的密钥空间为1064,加解密密钥{H,G}的密钥空间至少为(105)2。综上所述,总密钥空间为1064×1010=1074≈2245,密钥长度为245 bit。基于密钥长度,将本文算法与其他算法进行比较,比较结果如图6所示。

图6 密钥长度对比图

从实验对比结果可以看出,本文算法相较于其他算法具有较大的密钥空间,在面对暴力破解时具备一定的优越性。

5 结 论

相比与传统变电站,预制舱变电站更能满足标准化、集成化、智能化等现代电网技术标准要求,但同时信息交互中的安全性也是该标准下的重要考量指标[19]。利用混沌加密算法优化预制舱变电站模式下的信息交互模式。在公钥密码体制下,信息发送方使用公钥加密,信息接收方使用私钥解密,保证算法能够应用于“多方发送,多方接收”的复杂电网信息通信环境,有效提高信息交互效率[20]。同时,密钥的产生基于超混沌系统所产生的伪随机序列,该序列具有高随机性、高敏感性等特点,契合密钥的安全性需求[21]。

针对预制舱变电站技术中可能存在的安全问题,利用Chen超混沌的初值敏感性和高随机性,提出了一种基于Chen超混沌的公钥密码算法。加密方案通过素数发生器确定公钥和私钥,利用超混沌系统生成的随机序列进行掩膜、扩散的加密操作。实验数据表明,提出的算法在具备高初值敏感性的同时,还具有密钥空间大、抗差分攻击强等特点。混沌加密算法与预制舱变电站技术相结合的想法和模式,将有望优化甚至解决变电站智能化过程中产生的信息安全漏洞,为构建更好的电网系统提供帮助。

猜你喜欢
加密算法公钥解密
炫词解密
解密“一包三改”
炫词解密
一种基于混沌的公钥加密方案
HES:一种更小公钥的同态加密算法
SM2椭圆曲线公钥密码算法综述
基于小波变换和混沌映射的图像加密算法
Hill加密算法的改进
解密“大调解”
基于格的公钥加密与证书基加密