一种基于改进sm4算法的水下可移动设备无线加密通信方法

文档序号:1942036 发布日期:2021-12-07 浏览:18次 >En<

阅读说明:本技术 一种基于改进sm4算法的水下可移动设备无线加密通信方法 (Underwater movable equipment wireless encryption communication method based on improved SM4 algorithm ) 是由 花芳芳 乔海岩 韩丽娟 李泽峰 张欣召 于 2021-08-17 设计创作,主要内容包括:本发明提供一种基于改进SM4算法的水下可移动设备无线加密通信方法,通信密钥是不断生成和更新的,且通过有线通信方式传输,还将有线通信断开前最后一次更新的密钥作为加密通信的通信密钥,能够避免因事先约定而造成通信密钥的泄露和窃取,进一步加强了水下可移动设备无线通信的安全性和可靠性;此外,本发明采用随机生成密钥扩展参数的方法,增加了轮密钥生成的随机性和复杂性,提升了加密算法的复杂度和安全性。(The invention provides an underwater mobile device wireless encryption communication method based on an improved SM4 algorithm, wherein a communication key is continuously generated and updated and is transmitted in a wired communication mode, and the key updated last before the wired communication is disconnected is used as the communication key of the encryption communication, so that the leakage and stealing of the communication key caused by the prior appointment can be avoided, and the safety and the reliability of the underwater mobile device wireless communication are further enhanced; in addition, the invention adopts a method of randomly generating key expansion parameters, increases the randomness and complexity of the round key generation, and improves the complexity and safety of the encryption algorithm.)

一种基于改进SM4算法的水下可移动设备无线加密通信方法

技术领域

本发明属于无线通信和信息安全领域,尤其涉及一种基于改进SM4算法的水下可移动设备无线加密通信方法。

背景技术

水下可移动设备作战集群体系由多个作战单元组成,其中每个作战单元由一艘水上作战指挥舰船和舰船上搭载的若干水下可移动设备组成。作战开始后,指挥者根据目标位置初步规划进攻路径,把规划结果传输给水下可移动设备,并将其释放到海中。水下可移动设备根据规划路径移动到目标海域附近进行潜伏,定时接收舰船发送的目标实时信息,等待攻击指令。接收到舰船发送的攻击指令后,水下攻击可移动设备根据接收到的目标信息,对目标发动进攻,击毁作战目标。水下可移动设备通过传感器等设备探测水下环境状况并将环境信息发送给舰船,舰船根据水下可移动设备反馈的环境信息对作战任务内容进行相应更改。

水下攻击可移动设备的作战方式决定了要实现对目标的有效打击,舰船与水下攻击可移动设备的通信必须安全可靠。由于作战集群中参与作战的可移动设备数量较多且作战环境复杂,指挥舰船与水下攻击可移动设备之间主要采用无线通信方式。无线通信方式具有易被干扰,且传输信息易被监听、易被篡改的缺点。因此,亟需寻找一种方法,来确保通信的安全可靠。

发明内容

为解决水下可移动设备作战集群无线通信的安全隐患,本发明提供一种基于改进SM4算法的水下可移动设备无线加密通信方法,能够保证无线通信传输的安全性和可靠性。

一种基于改进SM4算法的水下可移动设备无线加密通信方法,包括以下步骤:

S1:水面舰船准备释放水下可移动设备时,将已规划好的初始路径信息通过有线数据端口传输给水下可移动设备;同时,水面舰船每隔设定周期更新一次密钥,并通过有线数据端口将密钥实时传输给水下可移动设备;

S2:当初始路径信息传输完成后,终止水面舰船和水下可移动设备之间的有线通信,开启无线通信,并将最后一次更新的密钥作为加密通信的通信密钥;

S3:水面舰船和水下可移动设备在通信密钥的基础上,利用SM4算法生成轮密钥,再采用正序的轮密钥分别对各自要发送的信息进行加密、采用逆序的轮密钥对接收到的信息进行解密,实现无线加密通信。

进一步地,所述轮密钥(rk0,rk1,rk2,...,rk31)的生成公式如下:

其中,K0~K35为中间变量;MK0~MK3为由128bit的通信密钥划分而成的密钥段,且MK0~MK3均为32bit的二进制序列;FK0~FK3为SM4算法中设定的系统参数,且FK0~FK3均为32bit的二进制序列;CK0~CK31为SM4算法中设定的固定参数,且 CK0~CK31均为32bit的二进制序列,同时,CK0~CK31从64个固定参数中随机选出;表示为两个数的异或操作;T′(·)为SM4算法中由非线性变换和线性变换复合而成的可逆变换。

进一步地,所述可逆变换T′(·)表示为L′(τ(·)),其中,τ(·)为SM4算法中定义的非线性变换,L′(·)为自定义的线性变换,且L′(·)变换公式如下:

其中,<<<为循环左移位操作。

进一步地,64个固定参数中的每一个均由随机函数随机生成的32个不重复的随机正整数组合而成,且随机正整数为处于0~15之间的16进制数。

进一步地,所述密钥在传输之前,水面舰船的控制系统会检查水面舰船与水下可移动设备之间相连线缆的通断情况,若断开,则放弃本次传输,反之进行正常传输。

进一步地,在对信息进行加密和对信息进行解密前,判断信息的长度是否达到128bit,其中,对于长度不足128bit的信息,自动补0,使其长度达到128bit;对于长度大于128bit的信息,将信息按128bit的长度进行划分分组,对于最后大小不足128bit的组也补0使其长度达到128bit。

有益效果:

1、本发明提供一种基于改进SM4算法的水下可移动设备无线加密通信方法,通信密钥是不断生成和更新的,且通过有线通信方式传输,还将有线通信断开前最后一次更新的密钥作为加密通信的通信密钥,能够避免因事先约定而造成通信密钥的泄露和窃取,进一步加强了水下可移动设备无线通信的安全性和可靠性。

2、本发明提供一种基于改进SM4算法的水下可移动设备无线加密通信方法,为增强SM4算法的抗差分攻击和线性攻击能力,将密钥扩展算法中用于产生轮密钥的固定参数CK采用为动态随机组合的方式产生,以此取代传统SM4 算法中的一成不变的32个固定参数;由此可见,本发明利用随机函数动态随机生成密钥扩展参数的方式,是为了通过参数生成的随机性和不确定性来增加轮密钥的复杂性、抗攻击能力以及密文破解的难度,使攻击者无法简单通过数学方法从密文中获得统计特性,有利于抵抗各类攻击,提高算法的安全性。

3、本发明提供一种基于改进SM4算法的水下可移动设备无线加密通信方法,对水下可移动设备作战集群的无线通信进行了加密保护,使作战信息难以被敌方获取、破解和篡改,保证作战过程的安全和有效。

附图说明

图1为本发明提供的水下可移动设备无线加密通信流程图;

图2为SM4加密算法原理示意图。

具体实施方式

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。

SM4算法是一种适用于无线通信领域的加密算法,非常适合在实时性要求较高的场合,易于硬件和软件实现。SM4算法是一种对称加密算法,信息的加密和解密的密钥相同。相较于DES算法,能够大大提高加密算法的复杂度和安全性,相较于AES算法,实现过程更简单,与公钥密码算法相比,具有数据吞吐率高和硬件资源消耗少等优点。

基于此,如图1所示,本发明提供一种基于改进SM4算法的水下可移动设备无线加密通信方法,包括以下步骤:

S1:水面舰船准备释放水下可移动设备时,将已规划好的初始路径信息通过有线数据端口传输给水下可移动设备;同时,水面舰船每隔设定周期,如每隔100ms更新一次密钥,并通过有线数据端口将密钥实时传输给水下可移动设备。

需要说明的是,密钥是舰船内部控制模块随机生成并储存的一组随机码,且为128bit的二进制序列;此随机码会通过有线通信模块的数据端口传输给水下可移动设备的控制模块存储区。

此外,所述密钥在传输之前,水面舰船的控制系统会检查水面舰船与水下可移动设备之间相连线缆的通断情况,若断开,则放弃本次传输,反之进行正常传输。

S2:当初始路径信息传输完成后,终止水面舰船和水下可移动设备之间的有线通信,开启无线通信,并将最后一次更新的密钥作为加密通信的通信密钥。

也就是说,舰船释放水下可移动设备,断开有线连接瞬间,随机码生成更新中止,最后一次更新和存储的随机码作为双方进行基于SM4算法的无线加密通信的密钥。

S3:水面舰船和水下可移动设备在通信密钥的基础上,利用SM4算法生成轮密钥,再采用正序的轮密钥分别对各自要发送的信息进行加密、采用逆序的轮密钥对接收到的信息进行解密,实现无线加密通信。

也就是说,水面舰船与水下可移动设备进行无线通信时,水面舰船通过内部控制模块将要发送的指令信息利用SM4加密算法和加密轮密钥进行加密,通过舰船通信系统上的无线通信模块发送给水下可移动设备。水下可移动设备通过内部的无线通信模块接收到加密的指令信息,通过预先保存的密钥利用SM4 解密算法,将指令密文解密成指令明文,传输给可移动设备的控制模块,进行相应的处理和控制操作。

水下可移动设备将侦察到的水下环境信息等信息通过SM4加密算法和加密密钥加密成密文,通过其上无线通信模块发送至水面舰船。水面舰船接收到密文信息,由无线通信模块传输到控制模块,利用SM4解密算法解密为明文信息,控制模块对该信息进行判断、处理和存储。

需要说明的是,在对信息进行加密和对信息进行解密前,需要判断信息的长度是否达到128bit,其中,对于长度不足128bit的信息,自动补0,使其长度达到128bit;对于长度大于128bit的信息,将信息按128bit的长度进行划分分组,对于最后大小不足128bit的组也补0使其长度达到128bit。

下面介绍现有的SM4算法的基本原理:

SM4算法包括加密算法、解密算法和密钥扩展算法。

如图2所示,所述的加密算法包括32次迭代计算和1次反序变换。

定义为二进制的e bit的向量集,假设待加密的明文输入为经过加密算法处理后的密文输出为轮密钥为所述加密算法包括以下步骤:

S31:将输入的明文信息(X0,X1,X2,X3)进行32次迭代计算,迭代公式如下:

其中,F(·)为轮函数;表示为两个数的异或操作;T(·)是一个可逆变换,由非线性变换和线性变换的复合而成,可表示为T(·)=L(τ(·))。

假设τ(·)变换的输入内容为通过进行非线性变换,输出结果为该变换公式表示如下:

τ(A)=(Sbox(a0),Sbox(a1),Sbox(a2),Sbox(a3))=(b0,b1,b2,b3)=B

在本实施例中,所述的加密算法包括32次迭代计算和1次反序变换,迭代计算是由非线性变换τ(·)、线性变换L(·)和异或操作组成,反序变换为:

R(A0,A1,A2,A3)=(A3,A2,A1,A0)

非线性变换τ(·)是由4个并行的S盒构成,S盒是一个8bit输入和8bit输出的表格,记为Sbox(·),用于对输入数据进行非线性置换。SM4的S盒如下表1所示,S盒的输入、输出以及表格中数值都采用16进制。由表可知,如果S盒的输入为“8f”,经过查表1可得输出为S盒第8行第f列对应的数值,即输出结果为Sbox(8f)=a1。

表1 S盒查找表

0 1 2 3 4 5 6 7 8 9 a b c d e f
0 d6 90 e9 fe cc e1 3d b7 16 b6 14 c2 28 fb 2c 05
1 2b 67 9a 76 2a be 04 c3 aa 44 13 26 49 86 06 99
2 9c 42 50 f4 91 ef 98 7a 33 54 0b 43 ed cf ac 62
3 e4 b3 1c a9 c9 08 e8 95 80 df 94 fa 75 8f 3f a6
4 47 07 a7 fc f3 73 17 ba 83 59 3c 19 e6 85 4f a8
5 68 6b 81 b2 71 64 da 8b f8 eb 0f 4b 70 56 9d 35
6 1e 24 0e 5e 63 58 d1 a2 25 22 7c 3b 01 21 78 87
7 d4 00 46 57 9f d3 27 52 4c 36 02 e7 a0 c4 c8 9e
8 ea bf 8a d2 40 c7 38 b5 a3 f7 f2 ce f9 61 15 a1
9 e0 ae 5d a4 9b 34 1a 55 ad 93 32 30 f5 8c b1 e3
a 1d f6 e2 2e 82 66 ca 60 c0 29 23 ab 0d 53 4e 6f
b d5 db 37 45 de fd 8e 2f 03 ff 6a 72 6d 6c 5b 51
c 8d 1b af 92 bb dd bc 7f 11 d9 5c 41 1f 10 5a d8
d 0a c1 31 88 a5 cd 7b bd 2d 74 d0 12 b8 e5 b4 b0
e 89 69 97 4a 0c 96 77 7e 65 b9 f1 09 c5 6e c6 84
f 18 f0 7d ec 3a dc 4d 20 79 ee 5f 3e d7 cb 39 48

假设输入内容为通过进行非线性变换τ(·),则输出结果为该非线性变换公式为:

τ(A)=(Sbox(a0),Sbox(a1),Sbox(a2),Sbox(a3))=(b0,b1,b2,b3)=B

线性变换L(·)的输入是非线性τ(·)的输出。假设L(·)变换输入为输出为则该线性变换公式如下:

其中,<<<为循环左移位操作。

定义为二进制的e bit的向量集,假设待加密的明文输入为经过加密算法处理后的密文输出为轮密钥为对明文信息(X0,X1,X2,X3)进行加密的过程如下:

其中,F(·)为轮函数;表示为两个数的异或操作;T(·)是一个可逆变换,由非线性变换和线性变换的复合而成,可表示为T(·)=L(τ(·))。

经过32次迭代计算后,将第32次迭代计算得到的加密内容进行反序变换R 得到最终的密文(Y0,Y1,Y2,Y3),反序变换过程表示为:

(Y0,Y1,Y2,Y3)=R(X32,X33,X34,X35)=(X35,X34,X33,X32)

基于现有的SM4算法,本发明提供一种改进的SM4算法,其改进点在于所述的轮密钥(rk0,rk1,…,rk31)是由加密密钥通过密钥扩展算法获得的。具体的,SM4 算法中用于加密的通信密钥的长度为128bit,表示为密钥扩展算法的系统参数为固定参数为则轮密钥生成公式如下:

FK=(FK0,FK1,FK2,FK3)

其中,K0~K35为中间变量;MK0~MK3为由128bit的通信密钥划分而成的密钥段,且MK0~MK3均为32bit的二进制序列;FK0~FK3为SM4算法中设定的系统参数,且FK0~FK3均为32bit的二进制序列;CK0~CK31为SM4算法中设定的固定参数,且 CK0~CK31均为32bit的二进制序列,同时,CK0~CK31从64个固定参数中随机选出;表示为两个数的异或操作;T′(·)为SM4算法中由非线性变换和线性变换复合而成的可逆变换。

需要说明的是,传统SM4算法中系统参数FK和固定参数CK都是固定值,分别如表2和表3所示;然而,本发明为增强SM4算法的抗差分攻击和线性攻击能力,对固定参数进行了扩展,由原有的32个扩展为64个,如表4所示,同时,将传统SM4算法中固定采用32个固定参数改进为通过动态随机组合方式从64个参数中产生32个,以参数生成的随机性和不确定性增加密钥的复杂性;此外,本发明的T′(·)变换与传统加密算法中的T(·)变换的运算过程相似,只是将变换中的线性变换L(·)变换更改为L′(·)变换,其他运算变换不变,L′(·)变换公式如下:

表2 FK参数表

FK<sub>0</sub> FK<sub>1</sub> FK<sub>2</sub> FK<sub>3</sub>
A3B1BAC6 56AA3350 677D99197 B27022DC

表3原CK参数表

00070E15 1C232A31 383F464D 545B6269
70777E85 8C939AA1 A8AFB6BD C4CBD2D9
E0E7EEF5 FC030A11 181F26BD 343B4249
50575E65 6C737A81 888F969D A4ABB2B9
C0C7CED5 DSE3EAF1 F8FF060D 141B2229
30373E45 4C535A61 686F767D 848B9299
A0A7AEB5 BCC3CAD1 D8DFE6ED F4FB0209
10171E25 2C333A41 484F5565D 646B7279

表4扩展后的CK参数表

00070E15 1C232A31 383F464D 545B6269
70777E85 8C939AA1 A8AFB6BD C4CBD2D9
E0E7EEF5 FC030A11 181F26BD 343B4249
50575E65 6C737A81 888F969D A4ABB2B9
C0C7CED5 DSE3EAF1 F8FF060D 141B2229
30373E45 4C535A61 686F767D 848B9299
A0A7AEB5 BCC3CAD1 D8DFE6ED F4FB0209
10171E25 2C333A41 484F5565D 646B7279
34E2E7A4 BB23482E 9124A015 98CA015A
73B65FA3 E4C35952 24763151 21FAACFC
B7584DBD 17707B32 6FEF2C24 ED4BB3AC
FBC1733F 92444239 41662B61 CFCBB5D9
7C359A66 D420B428 A1800CF2 E4FC7326
CC874699 A520307C 0633FA19 FF99F357
01CF72E5 F7140C81 B79BE680 FE941606
E4FC7756 1FD3FF2D 25FDE680 104495A1

需要说明的是,本发明对于SM4改进的具体方法为将原来固定的32个参数CK扩展为64个CK参数,其值如表4所示。确定密钥扩展算法的参数CK 值的方法,是采用随机函数随机生成0~15之间的32个不重复的随机正整数,以此作为查询索引号,根据表4进行查询确定一组参数CK的值,用于轮密钥扩展算法。

由此可见,本发明所述的改进的SM4算法,是对原SM4算法的密钥扩展算法进行了改进,使用动态随机组合的方式确定CK参数以取代原参数,通过提高轮密钥生成的随机性来增强密文的抗攻击性能和提高密文破解的难度。

最后,在本发明中,所述的解密算法和加密算法的结构相同,只是在解密算法中所使用的轮密钥为加密算法的轮密钥的逆序,即若加密算法使用的加密轮密钥为(rk0,rk1,…,rk31),则解密使用的解密轮密钥为(rk31,rk30,…,rk0)。

综上所述,本发明提供一种基于改进SM4算法的水下可移动设备无线加密通信方法,首先,通信密钥是不断生成和更新的,且通过有线通信方式传输,避免了因事先约定而造成通信密钥的泄露和窃取,进一步加强了水下可移动设备无线通信的安全性和可靠性;其次,采用随机生成密钥扩展参数方法,增加了轮密钥生成随机性和复杂性,提升了加密算法的复杂度和安全性;最后,对水下可移动设备作战集群的无线通信进行了加密保护,使作战信息难以被敌方获取、破解和篡改,保证作战过程的安全和有效。

当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当然可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

11页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种网络的接入方法、装置及系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!