CN115208615B - 一种数控***数据加密传输方法 - Google Patents
一种数控***数据加密传输方法 Download PDFInfo
- Publication number
- CN115208615B CN115208615B CN202210551593.5A CN202210551593A CN115208615B CN 115208615 B CN115208615 B CN 115208615B CN 202210551593 A CN202210551593 A CN 202210551593A CN 115208615 B CN115208615 B CN 115208615B
- Authority
- CN
- China
- Prior art keywords
- data
- module
- interface
- equipment
- calls
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 47
- 238000000034 method Methods 0.000 title claims abstract description 33
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 97
- 238000012795 verification Methods 0.000 claims description 17
- 238000003860 storage Methods 0.000 claims description 5
- 238000004891 communication Methods 0.000 claims description 4
- 238000004458 analytical method Methods 0.000 claims description 2
- 230000006870 function Effects 0.000 description 30
- 238000012545 processing Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 5
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012216 screening Methods 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 239000011800 void material Substances 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000003754 machining Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 239000004575 stone Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
- H04L63/045—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply hybrid encryption, i.e. combination of symmetric and asymmetric encryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种数控***数据加密传输方法,属于网络安全技术领域。所述方法包括:构建国密算法模块,并构建基于以太网TCP/IP协议和原始套接字的客户端模块和服务器模块;在设备A上部署国密算法模块和客户端模块,在设备B上部署国密算法模块和服务器模块;其中,设备A为工作站服务器,是数据发送方;设备B为数控设备,是数据接收方;设备A调用国密算法模块对待发送的明文进行加密,并调用客户端模块将加密后的数据发送至设备B;设备B调用服务器模块接收设备A发送的数据,并调用国密算法模块对接收到的数据进行解密。采用本发明,能够实现数控***中数据的安全传输。
Description
技术领域
本发明涉及网络安全技术领域,特别是指一种数控***数据加密传输方法。
背景技术
在计算机网络技术日新月异的新时代,数控***联网已经势在必行,但由原来封闭式的生产环境逐步向开放式环境转变,不解决数控***所面临的网络安全问题,将会造成不可预知的严重后果。
与一般的信息***相比,数控***及其网络具有的高可靠性、高防危性、高精确性、高时敏性等特征,再加上数控技术的应用场景千差万别,使得数控***的安全保障面临诸多全新的挑战。
密码学已被证明是维护网络安全的有效、可靠、经济的技术手段,能够在网络空间安全防护中发挥重要的基础支撑作用。密码技术能够满足实体身份鉴别、信息来源鉴别、信息存储与安全传输、抗抵赖、完整性鉴别等多方面的需求,是网络安全的核心技术,是网络信任的基石。借助密码技术在数据加密、完整性校验、数字签名与验签、身份鉴别与访问控制等方面的优势,保障数控***生产加工数据在存储传输过程中的保密性和完整性,防止加工代码、数控***组态配置信息和升级维护信息被恶意篡改,验证加工数据的真实性和完整性,实现对数控网络中的用户、设备等实体的身份鉴别与访问控制,是提升数控领域网络安全防护水平的关键性技术手段。
发明内容
本发明实施例提供了数控***数据加密传输方法,能够实现数控***中数据的安全传输。所述技术方案如下:
构建国密算法模块,并构建基于以太网TCP/IP协议和原始套接字的客户端模块和服务器模块;
在设备A上部署国密算法模块和客户端模块,在设备B上部署国密算法模块和服务器模块;其中,设备A为工作站服务器,是数据发送方;设备B为数控设备,是数据接收方;
设备A调用国密算法模块对待发送的明文进行加密,并调用客户端模块将加密后的数据发送至设备B;
设备B调用服务器模块接收设备A发送的数据,并调用国密算法模块对接收到的数据进行解密。
进一步地,所述国密算法模块,用于基于国密SM2、SM3算法实现数据加密;其中,所述国密算法模块包括:SM3哈希接口、密钥生成接口、签名接口、验签接口、加密接口以及解密接口。
进一步地,所述客户端模块,用于提供基于以太网TCP/IP协议和原始套接字的加密数据发送服务。
进一步地,所述服务器模块,用于提供基于以太网TCP/IP协议和原始套接字的加密数据接收服务。
进一步地,所述设备A调用国密算法模块对待发送的明文进行加密,并调用客户端模块将加密后的数据发送至设备B包括:
设备A及设备B调用各自部署的国密算法模块中的密钥生成接口生成SM2密钥对,并将密钥对中的私钥保密存储、公钥发送至通信对方;
设备A使用设备B的公钥,调用国密算法模块中的加密接口对待发送的明文m进行加密;
设备A调用客户端模块中的数据发送接口,将加密后的数据、TCP首部以及IP首部组合形成完整的IP数据报,使用原始套接字发送所述IP数据报。
进一步地,在设备A调用客户端模块中的数据发送接口,将加密后的数据、TCP首部以及IP首部组合形成完整的IP数据报,通过原始套接字发送所述IP数据报之前,所述方法还包括:
设备A调用国密算法模块中的签名接口,使用设备A的私钥对待发送的明文进行签名,得到数字签名值;
将数字签名值发送至设备B。
进一步地,所述设备A调用国密算法模块中的签名接口,使用设备A的私钥对待发送的明文进行签名,得到数字签名值包括:
设备A调用国密算法模块的签名接口,在签名接口中,计算并产生待发送的明文的256位SM3哈希值;
通过设备A的私钥对SM3哈希值进行签名,得到数字签名值。
进一步地,所述设备B调用服务器模块接收设备A发送的数据,并调用国密算法模块对接收到的数据进行解密包括:
设备B调用服务器模块中的数据接收接口使用原始套接字获取设备A发送的IP数据报,并对接收到的IP数据报进行解析,得到报文首部信息及加密后的数据,调用国密算法模块中的解密接口,对解析得到的加密后的数据进行解密,得到明文m。
进一步地,在设备B调用服务器模块接收设备A发送的数据,并调用国密算法模块对接收到的数据进行解密之后,所述方法还包括:
设备B调用国密算法模块中的验签接口,使用设备A的公钥对接收到的数字签名值进行验证。
本发明实施例提供的技术方案带来的有益效果至少包括:
本发明实施例中,构建国密算法模块,并构建基于以太网TCP/IP协议和原始套接字的客户端模块和服务器模块;在设备A上部署国密算法模块和客户端模块,在设备B上部署国密算法模块和服务器模块;其中,设备A为工作站服务器,是数据发送方;设备B为数控设备,是数据接收方;设备A调用国密算法模块对待发送的明文进行加密,并调用客户端模块将加密后的数据发送至设备B;设备B调用服务器模块接收设备A发送的数据,并调用国密算法模块对接收到的数据进行解密,由国密算法模块保证传输过程的安全性及高效性,成功实现数控***中数据的安全传输。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的数控***数据加密传输方法的流程示意图;
图2为本发明实施例提供的数据安全传输的流程示意图;
图3为本发明实施例提供的数据加密及发送模拟演示结果示意图;
图4为本发明实施例提供的数据接收及解密模拟演示结果示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
如图1所示,针对现有数控***安全性较差,数控***加工数据的传输过程缺乏加密保护的问题,本发明实施例基于TCP/IP协议以及国密算法,提供了一种数控***数据加密传输方法,包括:
S101,构建国密算法模块,并构建基于以太网TCP/IP协议和原始套接字的客户端模块和服务器模块;
本实施例中,所述国密算法模块是一个基于国密算法的国密算法模块,用于提供数据加密、解密、签名和验签等服务。该模块基于C语言实现,包含SM2、SM3算法,未使用openssl等第三方库,目前支持256位SM2算法。国密算法模块主要提供SM3哈希接口、密钥生成接口、签名接口、验签接口、加密接口以及解密接口等。
为了更好地理解国密算法模块,对国密算法模块所提供的几个接口进行描述:
1)SM3哈希接口
该接口对输入的消息进行填充和迭代压缩,从而生成杂凑值。接口函数具体定义为:void sm3(unsigned char*input,int ilen,unsigned char*output[32]);其中,input为输入的消息;ilen为消息长度;output[32]为256比特哈希值。假设输入的消息m长度为l(l<264)比特时,该接口函数中SM3算法具体实现过程如下:
(1)首先进行比特填充,获得填充后消息m′,m′的比特长度为512的倍数;
(2)将填充后消息m′进行分组:m′=B(0)B(1)...B(n-1),其中,分组长度n=(l+k+65)/512,k是m′末尾所填充0的个数。B(i)为消息分组;
(3)将分组消息B[n]扩展并生成132个字W[132],用于压缩函数CF;
(4)进行压缩处理:处理结果为Vi+1=CF(V(i),B(i)),0≤i≤n-1,最终输出256比特的哈希值V[n]。
2)密钥生成接口
该接口用于生成SM2非对称密钥对,其中,所述密钥对包括:公钥和私钥对。接口函数定义为:void ecc_make_key(EccPoint*p_publicKey,uint8_t p_privateKey[NUM_ECC_DIGITS]);其中,p_publicKey为生成的公钥;p_privateKey为生成的私钥;该接口函数中SM2算法使用的椭圆曲线形式为:y2=x3+ax+b,其中a,b为椭圆曲线系数,具体实现过程如下:
(1)用随机数发生器产生整数d∈[1,n-2],其中,n为基点G的阶;
(2)G为基点,计算椭圆曲线上一点P=(xp,yp)=[d]G;
(3)得到公钥P,私钥d。
3)签名接口
该接口用于数字签名。接口函数定义为:int sm2_sign(EccSig*sig,uint8_t*msg,int msg_len,uint8_t*IDa,uint8_t IDa_len,uint8_t p_privateKey[NUM_ECC_DIGITS]);其中,sig为签名结果;msg为待签名消息;msg_len为待签名消息长度;IDa为签名用户身份标识;IDa_len为签名用户身份标识长度;p_privateKey为签名者私钥;返回值为1表示签名成功,0表示签名失败。假设待签名消息为M,签名者可辩别标识为ID,签名者私钥为d,公钥为P,Gx,Gy为基点,n为基点G的阶,a,b为椭圆曲线系数,SM3()为哈希函数。则该接口函数中SM2签名算法具体实现过程如下:
(1)计算签名用户的哈希值Z=SM3(ENTL||ID||a||b||Gx||Gy||P),其中ENTL为2字节标识的ID的比特长度;
(2)设待签名消息为M,计算哈希值Z和消息M的拼接值M=Z||M;
(3)计算消息M的哈希值e=SM3(M),并将e的数据类型转化为整数;
(4)用随机数发生器产生随机数k∈[1,n-1];
(5)计算椭圆曲线点(x1,y1)=[k]G,将x1的数据类型转化为整数;
(6)计算签名值r=(e+x1)modn,若r=0或r+k=n则返回(4)重新获取随机数并继续流程;
(7)计算签名值s=((1+d)-1·(k-r·d))mod n,若s=0则返回(4);
(8)将r,s转化为字节串,则消息M的签名为(r,s)。
4)验签接口
该接口用于验证数字签名。接口函数定义为:int sm2_verify(EccSig*sig,uint8_t*msg,int msg_len,uint8_t*IDa,uint8_t IDa_len,EccPoint*p_publicKey);其中,sig为消息签名结果;msg为待验签消息;msg_len为待验签消息长度;IDa为签名用户身份标识;IDa_len为签名用户身份标识长度;p_publicKey为签名者公钥。返回值为1表示验签成功,0表示验签失败。假设待验证消息为M,签名为(r,s),签名者公钥为P,n为基点G的阶,该接口函数中SM2验签算法具体实现过程如下:
(1)检验r∈[1,n-1]是否成立,若不成立则验签失败;
(2)检验s∈[1,n-1]是否成立,若不成立则验签失败;
(3)计算M=Z||M;
(4)计算消息M的哈希值e=SM3(M),并将e的数据类型转化为整数;
(5)将r,s的数据类型转化为整数,计算验签中间值t=(r+s)modn,若t=0则验签失败;
(6)计算椭圆曲线点(x1,y1)=[s]G+[t]P;
(7)将x1的数据类型转化为整数,计算验签对比值R=(e+x1)mod n,检验R=r是否成立,若成立验签通过,否则验签失败。
5)加密接口
该接口用于数据加密。接口函数定义为:int sm2_encrypt(uint8_t*cipher_text,int cipher_len,Eccpoint*publicKey,uint8_t*plain_text,int plain_len);其中,cipher_text为经加密得到的密文;cipher_len为密文长度;publicKey为加密使用的公钥;plain_text为待加密明文;plain_len为明文长度。返回值为1表示加密成功,0表示加密失败。假设待加密消息为M,其比特长度为mlen,加密使用的公钥为P,n为基点G的阶,h为n的余因子,SM3()为哈希函数。则该接口函数中SM2加密算法具体实现过程如下:
(1)用随机数发生器产生随机数k∈[1,n-1];
(2)计算椭圆曲线点C1=[k]G=(x1,y1),并将C1的数据类型转化为比特串;
(3)计算椭圆曲线点S=[h]P。若S为无穷远点,则报错并退出;
(4)计算椭圆曲线点[k]P=(x2,y2),将坐标x2,y2的数据类型转化为比特串;
(5)计算密钥数据比特串t=KDF(x2||y2,mlen),其中KDF()为密钥派生函数。若t为全0比特串则返回(1);
(6)计算密文中间值C2=M⊕t,计算密文中间值C3=SM3(x2||M||y2);
(7)得到密文C=C1||C2||C3。
6)解密接口
该接口用于数据解密。接口函数定义为:int sm2_decrypt(uint8_t*cipher_text,int cipher_len,uint8_t
p_privateKey[NUM_ECC_DIGITS],uint8_t*plain_text,int plain_len);其中,cipher_text为需解密的密文;cipher_len为密文长度;privateKey为解密使用的私钥;plain_text为解密后明文;plain_len为明文长度。返回值为1表示解密成功,0表示解密失败。假设待解密消息为C,mlen为C2的比特长度,解密使用的私钥为d,则该接口函数中SM2解密算法具体实现过程如下:
(1)从C中取出比特串C1,将C1的数据类型转换为椭圆曲线上的点,验证C1是否满足椭圆曲线方程,若不满足则报错并退出;
(2)计算椭圆曲线点S=[h]C1,若S为无穷远点,则报错并退出;
(3)计算[d]C1=(x2,y2),将坐标x2,y2的数据类型转化为比特串;
(4)计算t=KDF(x2||y2,mlen),若t为全0比特串则报错并退出;
(5)从C中取出比特串C2,计算中间结果M′=C2⊕t;
(6)计算密文对比值U=SM3(x1||M′||y2),从C中取出比特串C3,若U≠C3则报错并退出;
(7)得到明文M′。
本实施例中,为实现数据加密传输,需要使用SM2非对称密钥对待发送的明文进行加密。因此在这一过程实现前,需要为数据发送方和数据接收方都生成SM2非对称密钥对,其中,私钥由设备自身保密保存,公钥需要预先发送至数据接收方。
作为一优选实施例,本实施例中,为保护数据完整性,可使用签名接口,使用数据发送方私钥为数据进行签名。
本实施例中,在客户端模块中,主要用于提供基于以太网TCP/IP协议和原始套接字的加密数据发送服务。该模块主要提供数据发送接口,其接口函数形式如:int ip_tcp_send(char*src_ip,int src_port,char*dst_ip,int dst_port,const char*data)。下面对该接口所需参数进行描述:src_ip为源IP;dst_ip为目的IP;src_port为源端口;dst_port为目的端口;data为需发送数据。返回值为1表示发送成功,0表示发送失败。该接口可根据接口参数构造IP报文并发送,其中,数据的发送依靠原始套接字协议实现。数据发送接口函数主要分为以下3个步骤:
1)构造TCP报头和IP报头;
本实施例中,在构造TCP报头和IP报头时,为手动构造IP报头,需开启原始套接字的IP_HDRINCL选项。通过使用***网络编程头文件netinet/ip.h和netinet/tcp.h以获取TCP和IP首部结构体,之后根据用户需要填充TCP和IP首部信息,包括数据发送方源IP、端口号及数据接收方目的IP、端口号和协议类型等。
2)将用户需发送数据与TCP/IP报头连接形成完整IP数据报;
本实施例中,在构建完整IP数据报过程中,通过调用memcpy函数,将构造好的IP首部,TCP首部以及需发送数据全部复制到缓冲区中,作为完整的IP数据报。对发送数据来说,若需要对数据进行加密,可预先调用国密算法模块中的加密接口,使用数据接收方公钥对数据进行加密。若需对数据完整性进行保护,可使用国密算法模块中的签名接口,使用数据发送方私钥对发送数据进行数字签名。
3)构建TCP类型原始套接字并发送IP数据报。
本实施例中,完成IP数据报构建后,进入原始套接字构建及数据发送阶段。在构建TCP类型原始套接字时,使用socket函数及PF_INET协议簇参数、SOCK_RAW参数及IPPROTO_TCP参数构建TCP类型原始套接字,其中原始套接字为Linux原始套接字,Linux原始套接字协议的接口函数具体为socket(PF_INET,SOCK_RAW,IPPROTO_TCP),通过调用该函数接口,完成Linux原始套接字的创建,之后使用sendto函数将完整的IP数据报通过构建的原始套接字发送至目的IP设备。
本实施例中,在服务器模块中,主要用于提供基于以太网TCP/IP协议和原始套接字的加密数据接收服务。服务器模块主要提供数据接收接口,其接口函数形式如:int ip_tcp_receive(char*src_ip,int src_port,char*dst_ip,int dst_port)。下面对该接口所需参数进行描述:src_ip为源IP;dst_ip为目的IP;src_port为源端口;dst_port为目的端口。返回值为1表示接收成功,0表示接收失败。该接口可根据设定的IP及端口号对接收到的IP数据报进行筛选。数据接收接口函数主要分为以下2个步骤:
1)构建TCP类型原始套接字并接收IP数据报;
本实施例中,在构建TCP类型原始套接字时,使用socket函数及PF_INET协议簇参数、SOCK_RAW参数及IPPROTO_TCP参数构建TCP类型原始套接字。其中,原始套接字为Linux原始套接字,Linux原始套接字协议的接口函数具体为socket(PF_INET,SOCK_RAW,IPPROTO_TCP),通过调用该函数接口,完成Linux原始套接字的创建,之后使用recv函数接收IP数据报。
2)将接收到的IP报文进行解析,并根据TCP报头中端口号进行数据包筛选,同时获取TCP数据包中的数据部分。
本实施例中,在接收IP数据报后,根据TCP/IP协议格式进行数据解析,依次取出IP首部、TCP首部和数据部分,并根据IP、端口号等进行数据包的筛选,最后获取筛选后数据包的数据部分。
由此可知,本实施例中,国密算法模块基于国密SM2、SM3算法实现数据加密等服务,客户端模块和服务器模块基于TCP/IP协议和原始套接字实现加密数据传输。
S102,在设备A上部署国密算法模块和客户端模块,在设备B上部署国密算法模块和服务器模块;其中,设备A为工作站服务器,是数据发送方;设备B为数控设备,是数据接收方;
本实施例中,当国密算法模块、服务器模块、客户端模块构建完成后,即可在设备中进行部署,实现数控设备数据安全传输。在此假设拥有设备A及设备B,其上均可部署国密算法模块、服务器模块和客户端模块。其中,设备A作为工作站服务器,其具备大量数控加工产品数据文件,需要向数控设备发送。设备B作为数控设备,需要获取数控加工产品相关数据文件。为了实现数控***数据的安全传输,本实施例中,假设,在设备A上部署国密算法模块和客户端模块,在设备B上部署国密算法模块和服务器模块。
S103,设备A调用国密算法模块对待发送的明文进行加密,并调用客户端模块将加密后的数据发送至设备B;如图2所示,具体可以包括以下步骤:
H1,设备A及设备B调用各自部署的国密算法模块中的密钥生成接口生成SM2密钥对,并将密钥对中的私钥保密存储、公钥发送至通信对方;
本实施例中,由于SM2为非对称加密,密钥是由公钥和私钥组成的密钥对,在使用SM2算法进行加解密前,必须为设备生成密钥对。因此在在这个阶段,首先需要使用步骤101中构建的国密算法模块,为设备生成密钥对。具体方式为,调用国密算法模块中的密钥生成接口,使用新的不可预测随机数来生成新密钥对。对于假定的设备A及设备B来说,均通过部署国密算法模块,调用密钥生成接口生成SM2密钥对,其中公钥为64字节,私钥为32字节。设备生成密钥后,需将私钥保密存储,将公钥发送至通信对方。因此,设备A除自身生成的密钥外,拥有设备B的公钥,设备B除自身生成的密钥外,拥有设备A的公钥,到此完成密钥设置流程。
H2,设备A使用设备B的公钥,调用国密算法模块中的加密接口对待发送的明文m进行加密;
本实施例中,为保证步骤H3中数据的加密传输,需要对待发送数据进行加密处理。当设备A作为数据发送方,设备B作为数据接收方时,设备A使用设备B的公钥,调用国密算法模块中的加密接口对待发送数据进行加密,得到二进制密文c,其中,图3中c′为密文c的16进制字符串形式。
H3,设备A调用客户端模块中的数据发送接口,将加密后的数据(即:密文)、TCP首部以及IP首部组合形成完整的IP数据报,使用原始套接字发送所述IP数据报,从而完成加密数据的发送。
本实施例中,数据加密完成后,通过调用客户端模块的数据发送接口,根据设备A设定的IP及端口号构造TCP和IP首部,之后将加密后的数据、TCP首部以及IP首部组合形成完整的IP数据报;最后使用原始套接字实现数据的加密传输。
需要注意的是,由于发送数据长度受到TCP/IP协议及SM2算法的限制,因此若需发送文件过长,需要对其进行分片处理,将其划分为若干长度适中的小文件后依次发送。
本实施例中,作为一优选实施例,在设备A调用客户端模块中的数据发送接口,将加密后的数据、TCP首部以及IP首部组合形成完整的IP数据报,通过原始套接字发送所述IP数据报(步骤H3)之前,所述方法还包括:
设备A调用国密算法模块中的签名接口,使用设备A的私钥对待发送的明文进行签名,得到数字签名值;
将数字签名值发送至设备B。
本实施例中,为保证数控加工文件、数控***升级包等的完整性,避免文件被篡改,需要对数控文件进行数字签名。当设备A作为数据发送方时,通过调用国密算法模块中的签名接口,使用设备A的私钥对待发送的明文进行签名,得到数字签名值。在该接口函数中,首先计算并产生待发送的明文的256位SM3哈希值,之后通过使用设备A的私钥对SM3哈希值进行签名,得到数字签名值。需注意的是,对于设备A来说,为向设备B发送文件并保证文件的完整、合法且不被破坏,因此需要先对文件进行签名,并将数字签名值发送至设备B,之后再将文件进行发送。
S104,设备B调用服务器模块接收设备A发送的数据,并调用国密算法模块对接收到的数据进行解密。
本实施例中,设备B调用服务器模块中的数据接收接口,使用原始套接字获取设备A发来的以太网TCP/IP协议IP数据报。在获取该IP数据报后,数据接收接口会解析该IP数据报,按照端口号等协议参数进行处理,得到报文首部信息及加密后的数据后,如图4所示,为演示方便,在此将二进制密文转为十六进制字符串c′;调用国密算法模块中的解密接口进行解密,获得图4中所示的明文m,并通过对原始的明文m进行拼接可得到数控加工产品相关数据文件。
本实施例中,作为一优选实施例,为保证数控加工文件、数控***升级包等的完整性,避免文件被篡改,数据解密完成并获取完整的明文后,进入数据验证阶段:在这一流程中,设备B通过调用国密算法模块中的验签接口,使用设备A的公钥对接收到的数字签名值进行验证,以对文件的合法性进行判断,并确保文件未被恶意破坏或篡改。
本发明实施例所述的数控***数据加密传输方法,构建国密算法模块,并构建基于以太网TCP/IP协议和原始套接字的客户端模块和服务器模块;在设备A上部署国密算法模块和客户端模块,在设备B上部署国密算法模块和服务器模块;其中,设备A为工作站服务器,是数据发送方;设备B为数控设备,是数据接收方;设备A调用国密算法模块对待发送的明文进行加密,并调用客户端模块将加密后的数据发送至设备B;设备B调用服务器模块接收设备A发送的数据,并调用国密算法模块对接收到的数据进行解密,由国密算法模块保证传输过程的安全性及高效性,成功实现数控***中数据的安全传输。
本发明实施例所述的数控***数据加密传输方法,至少具有以下有益效果:
1)由国密算法模块保证传输过程的安全性,成功实现数控***中数据的安全传输;且国密算法模块无需使用openssl等第三方库,支持256位SM2及SM3算法,有着较高的数据处理效率和数据传输速率,对加密设备性能要求较低;
2)客户端模块通过构建原始套接字实现数据发送,主要提供数据发送接口,服务器模块通过构建原始套接字实现数据接收,主要提供数据接收接口,且客户端和服务器可部署在同一台设备中以实现数据的发送及接收;
3)通过使用国密算法模块中的签名、验签接口为加密数据提供签名验签服务,从而提供数据完整性保护。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (3)
1.一种数控***数据加密传输方法,其特征在于,包括:
构建国密算法模块,并构建基于以太网TCP/IP协议和原始套接字的客户端模块和服务器模块;
在设备A上部署国密算法模块和客户端模块,在设备B上部署国密算法模块和服务器模块;其中,设备A为工作站服务器,是数据发送方;设备B为数控设备,是数据接收方;
设备A调用国密算法模块对待发送的明文进行加密,并调用客户端模块将加密后的数据发送至设备B;
设备B调用服务器模块接收设备A发送的数据,并调用国密算法模块对接收到的数据进行解密;
其中,用于基于国密SM2、SM3算法实现数据加密;其中,所述国密算法模块包括:SM3哈希接口、密钥生成接口、签名接口、验签接口、加密接口以及解密接口;
其中,所述签名接口的接口函数中签名算法的步骤包括:
步骤A1,计算签名用户的哈希值Z=SM3(ENTL||ID||a||b||Gx||Gy||P),其中,SM3()为哈希函数,ID为签名者能够辩别的标识,ENTL为2字节标识的ID的比特长度,a和b为椭圆曲线系数,Gx和Gy为基点,P为公钥;
步骤A2,设待签名消息为M,计算哈希值Z和消息M的拼接值
步骤A3,计算消息M的哈希值并将e的数据类型转化为整数;
步骤A4,用随机数发生器产生随机数k∈[1,n-1],其中,n为基点G的阶;
步骤A5,计算椭圆曲线点(x1,y1)=[k]G,将x1的数据类型转化为整数;
步骤A6,计算签名值r=(e+x1)mod n,若r=0或r+k=n则返回步骤A4重新获取随机数并继续流程;
步骤A7,计算签名值s=((1+d)-1·(k-r·d))mod n,若s=0则返回步骤A4,其中,d为签名者私钥;
步骤A8,将r,s转化为字节串,则消息M的签名为(r,s);
其中,所述设备A调用国密算法模块对待发送的明文进行加密,并调用客户端模块将加密后的数据发送至设备B包括:
设备A及设备B调用各自部署的国密算法模块中的密钥生成接口生成SM2密钥对,并将密钥对中的私钥保密存储、公钥发送至通信对方;
设备A使用设备B的公钥,调用国密算法模块中的加密接口对待发送的明文m进行加密;
设备A调用客户端模块中的数据发送接口,将加密后的数据、TCP首部以及IP首部组合形成完整的IP数据报,使用原始套接字发送所述IP数据报;
其中,在设备A调用客户端模块中的数据发送接口,将加密后的数据、TCP首部以及IP首部组合形成完整的IP数据报,通过原始套接字发送所述IP数据报之前,所述方法还包括:
设备A调用国密算法模块中的签名接口,使用设备A的私钥对待发送的明文进行签名,得到数字签名值;
将数字签名值发送至设备B;
其中,所述设备A调用国密算法模块中的签名接口,使用设备A的私钥对待发送的明文进行签名,得到数字签名值包括:
设备A调用国密算法模块的签名接口,在签名接口中,计算并产生待发送的明文的256位SM3哈希值;
通过设备A的私钥对SM3哈希值进行签名,得到数字签名值;
其中,所述设备B调用服务器模块接收设备A发送的数据,并调用国密算法模块对接收到的数据进行解密包括:
设备B调用服务器模块中的数据接收接口使用原始套接字获取设备A发送的IP数据报,并对接收到的IP数据报进行解析,得到报文首部信息及加密后的数据,调用国密算法模块中的解密接口,对解析得到的加密后的数据进行解密,得到明文m;
其中,在设备B调用服务器模块接收设备A发送的数据,并调用国密算法模块对接收到的数据进行解密之后,所述方法还包括:
设备B调用国密算法模块中的验签接口,使用设备A的公钥对接收到的数字签名值进行验证。
2.根据权利要求1所述的数控***数据加密传输方法,其特征在于,所述客户端模块,用于提供基于以太网TCP/IP协议和原始套接字的加密数据发送服务。
3.根据权利要求1所述的数控***数据加密传输方法,其特征在于,所述服务器模块,用于提供基于以太网TCP/IP协议和原始套接字的加密数据接收服务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210551593.5A CN115208615B (zh) | 2022-05-20 | 2022-05-20 | 一种数控***数据加密传输方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210551593.5A CN115208615B (zh) | 2022-05-20 | 2022-05-20 | 一种数控***数据加密传输方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115208615A CN115208615A (zh) | 2022-10-18 |
CN115208615B true CN115208615B (zh) | 2023-12-19 |
Family
ID=83575048
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210551593.5A Active CN115208615B (zh) | 2022-05-20 | 2022-05-20 | 一种数控***数据加密传输方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115208615B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115664841A (zh) * | 2022-11-14 | 2023-01-31 | 济南大学 | 具有网络隔离与单向加密传输功能的数据采集***及方法 |
CN116743505B (zh) * | 2023-08-14 | 2023-10-20 | 上海特高信息技术有限公司 | 一种基于国密的安全传输加密方法 |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011120421A1 (zh) * | 2010-03-31 | 2011-10-06 | 北京飞天诚信科技有限公司 | 加密引擎的实现方法 |
WO2015021934A1 (zh) * | 2013-08-16 | 2015-02-19 | 西安西电捷通无线网络通信股份有限公司 | 一种生成数字签名的方法及装置 |
CN104917741A (zh) * | 2014-07-19 | 2015-09-16 | 国家电网公司 | 一种基于usbkey的明文文档公网安全传输*** |
KR20160028230A (ko) * | 2014-09-03 | 2016-03-11 | (주)헤리트 | IoT 환경에서 공개키 배포를 이용한 정보 보안 장치 및 방법 |
CN107147495A (zh) * | 2017-05-25 | 2017-09-08 | 广东工业大学 | 二元扩域上sm2加密算法的实现方法 |
US9806887B1 (en) * | 2014-09-23 | 2017-10-31 | Amazon Technologies, Inc. | Authenticating nonces prior to encrypting and decrypting cryptographic keys |
CN111756726A (zh) * | 2020-06-23 | 2020-10-09 | 上海缔安科技股份有限公司 | 一种支持国密算法的sip安全认证方法 |
CN111865609A (zh) * | 2020-07-03 | 2020-10-30 | 上海缔安科技股份有限公司 | 一种基于国密算法的私有云平台数据加解密*** |
US11128609B1 (en) * | 2018-12-13 | 2021-09-21 | Secure Channels, Inc. | System and method to improve user authentication for enhanced security of cryptographically protected communication sessions |
CN113572613A (zh) * | 2021-07-28 | 2021-10-29 | 罗克佳华(重庆)科技有限公司 | 一种消息保护***及消息保护方法 |
WO2021218885A1 (zh) * | 2020-04-28 | 2021-11-04 | 万维数码智能有限公司 | 用于数据传输的安全保密方法和*** |
WO2021238527A1 (zh) * | 2020-05-26 | 2021-12-02 | 腾讯科技(深圳)有限公司 | 数字签名生成方法、装置、计算机设备和存储介质 |
CN114172679A (zh) * | 2021-06-23 | 2022-03-11 | 上海电力大学 | 一种基于国密算法的电力数据安全加密传输方法 |
CN114172745A (zh) * | 2022-01-19 | 2022-03-11 | 中电华瑞技术有限公司 | 一种物联网安全协议*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080065878A1 (en) * | 2006-09-08 | 2008-03-13 | Michael Hutson | Method and system for encrypted message transmission |
-
2022
- 2022-05-20 CN CN202210551593.5A patent/CN115208615B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011120421A1 (zh) * | 2010-03-31 | 2011-10-06 | 北京飞天诚信科技有限公司 | 加密引擎的实现方法 |
WO2015021934A1 (zh) * | 2013-08-16 | 2015-02-19 | 西安西电捷通无线网络通信股份有限公司 | 一种生成数字签名的方法及装置 |
CN104917741A (zh) * | 2014-07-19 | 2015-09-16 | 国家电网公司 | 一种基于usbkey的明文文档公网安全传输*** |
KR20160028230A (ko) * | 2014-09-03 | 2016-03-11 | (주)헤리트 | IoT 환경에서 공개키 배포를 이용한 정보 보안 장치 및 방법 |
US9806887B1 (en) * | 2014-09-23 | 2017-10-31 | Amazon Technologies, Inc. | Authenticating nonces prior to encrypting and decrypting cryptographic keys |
CN107147495A (zh) * | 2017-05-25 | 2017-09-08 | 广东工业大学 | 二元扩域上sm2加密算法的实现方法 |
US11128609B1 (en) * | 2018-12-13 | 2021-09-21 | Secure Channels, Inc. | System and method to improve user authentication for enhanced security of cryptographically protected communication sessions |
WO2021218885A1 (zh) * | 2020-04-28 | 2021-11-04 | 万维数码智能有限公司 | 用于数据传输的安全保密方法和*** |
WO2021238527A1 (zh) * | 2020-05-26 | 2021-12-02 | 腾讯科技(深圳)有限公司 | 数字签名生成方法、装置、计算机设备和存储介质 |
CN111756726A (zh) * | 2020-06-23 | 2020-10-09 | 上海缔安科技股份有限公司 | 一种支持国密算法的sip安全认证方法 |
CN111865609A (zh) * | 2020-07-03 | 2020-10-30 | 上海缔安科技股份有限公司 | 一种基于国密算法的私有云平台数据加解密*** |
CN114172679A (zh) * | 2021-06-23 | 2022-03-11 | 上海电力大学 | 一种基于国密算法的电力数据安全加密传输方法 |
CN113572613A (zh) * | 2021-07-28 | 2021-10-29 | 罗克佳华(重庆)科技有限公司 | 一种消息保护***及消息保护方法 |
CN114172745A (zh) * | 2022-01-19 | 2022-03-11 | 中电华瑞技术有限公司 | 一种物联网安全协议*** |
Non-Patent Citations (2)
Title |
---|
Xin Zheng ; Chongyao Xu ; Xianghong Hu ; Yun Zhang ; Xiaoming Xiong.The Software/Hardware Co-Design and Implementation of SM2/3/4 Encryption/Decryption and Digital Signature System.<IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems ( Volume: 39, Issue: 10, October 2020)>.2019,2055-2066页. * |
基于Android的国密SSLVPN终端的研究与实现;陈明帅;《中国优秀硕士学位论文全文数据库 信息科技辑》;I139-271页 * |
Also Published As
Publication number | Publication date |
---|---|
CN115208615A (zh) | 2022-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111740828B (zh) | 一种密钥生成方法以及装置、设备、加解密方法 | |
US9077521B2 (en) | Method and system for secure communication | |
JP3872107B2 (ja) | 暗号キー回復システム | |
CN107395368B (zh) | 无介质环境中的数字签名方法及解封装方法与解密方法 | |
US7979707B2 (en) | Secure seed generation protocol | |
US8275997B2 (en) | Method of encrypting and transmitting data and system for transmitting encrypted data | |
US8249255B2 (en) | System and method for securing communications between devices | |
CN115208615B (zh) | 一种数控***数据加密传输方法 | |
CN111526023B (zh) | 一种基于ipk的区块链上链数据安全认证方法与*** | |
CN1922816B (zh) | 单向认证 | |
CN112152805B (zh) | 一种认证加密方法、验证解密方法和通信方法 | |
CN113285959A (zh) | 一种邮件加密方法、解密方法及加解密*** | |
CN112165386B (zh) | 一种基于ecdsa的数据加密方法及*** | |
CN112771832A (zh) | 用于共享公共秘密的计算机实现的***和方法 | |
CN114448641A (zh) | 一种隐私加密方法、电子设备、存储介质以及芯片 | |
CN117155564A (zh) | 一种双向加密认证***及方法 | |
CN112907247B (zh) | 一种区块链授权计算控制方法 | |
CN102946315B (zh) | 一种采用分组方式构造mac码的方法及*** | |
KR100551992B1 (ko) | 어플리케이션 데이터의 암호화 및 복호화 방법 | |
Prafullchandra et al. | Diffie-Hellman proof-of-possession algorithms | |
US7526643B2 (en) | System for transmitting encrypted data | |
Rogobete et al. | Hashing and Message Authentication Code Implementation. An Embedded Approach. | |
IL159804A (en) | Method for authenticating a message | |
US11956358B2 (en) | Method for synchronizing a receiver initialization vector with a transmitter initialization vector | |
CN115242392B (zh) | 基于安全传输协议实现工业信息安全传输的方法及*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |