CN115955302B - 一种基于协同签名的国密安全通信方法 - Google Patents
一种基于协同签名的国密安全通信方法 Download PDFInfo
- Publication number
- CN115955302B CN115955302B CN202211540602.7A CN202211540602A CN115955302B CN 115955302 B CN115955302 B CN 115955302B CN 202211540602 A CN202211540602 A CN 202211540602A CN 115955302 B CN115955302 B CN 115955302B
- Authority
- CN
- China
- Prior art keywords
- signature
- key
- tlcp
- cryptographic
- cryptographic module
- 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
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种基于协同签名的国密安全通信方法,按以下步骤进行:步骤1、安装启动并配置密码模块软件;步骤2、密码模块软件按照协同签名协议与协同签名服务端协商密钥并加密存储密钥分量;步骤3、密码模块软件激活后导入数字证书,使用数字证书相互验证通信双方身份;步骤4、在数据通信前,建立通信双方的可靠连接;步骤5、密码模块软件采用协同签名实现数字签名,采用协同解密技术实现解密,在可靠连接上按照TLCP协议建立TLCP安全通道;步骤6、通过协议转换实现应用层无感知接入和使用由密码模块软件提供的TLCP安全通道,实现数据加密通信。本发明可以实现通信设备间的通信加密和攻击抵抗,实现在网络环境中安全的通信。
Description
技术领域
本发明涉及通信安全技术领域,特别涉及一种基于协同签名的国密安全通信方法。
背景技术
随着物联网以及各类通信技术的发展,在各个领域内出现了越来越多的物联网设备,它们部署于各个地,通过其上搭载的传感器采集各项物理参数,并通过无线或有线网络传输至数据中心,例如污染源监测、空气质量监测、水质量监测等,这类设备采用行业内统一的通信协议进行数据传输和控制,这些通信协议在设计时仅考虑业务需求,并没有全面的考虑安全因素,因此在通信时数据可能会被攻击者截获、重放、甚至篡改,通信安全问题较为严重。然而这些设备已经大规模的部署于各地,现有的解决方案是加装加密网关或加密机的方式进行升级,也可采用升级通信协议增加通信安全约定方式实现,这些解决方案都具有较大的成本和风险。基于上述因素需要一种通用的安全通信方法,能够在现有设备提供运行环境内运行,且对原设备软件无侵入,又能够保障传输数据安全,传输协议符合国家相关标准规范要求,本身还需安全、可控、易操作。
发明内容
本发明的目的在于,提供一种基于协同签名的国密安全通信方法。本发明可以实现通信设备间的通信加密和攻击抵抗,实现在网络环境中安全的通信。
本发明的技术方案:一种基于协同签名的国密安全通信方法,包括密码模块软件和协同签名服务端,并按以下步骤进行:
步骤1、安装启动并配置密码模块软件;
步骤2、密码模块软件按照协同签名协议与协同签名服务端协商密钥并加密存储密钥分量;
步骤3、密码模块软件激活后导入数字证书,使用数字证书相互验证通信双方身份;
步骤4、在数据通信前,建立通信双方的可靠连接;
步骤5、密码模块软件采用协同签名实现数字签名,采用协同解密技术实现解密,在可靠连接上按照TLCP协议建立TLCP安全通道;
步骤6、通过协议转换实现应用层无感知接入和使用由密码模块软件提供的TLCP安全通道,实现数据加密通信。
上述的基于协同签名的国密安全通信方法,所述密码模块软件包括密码模块服务端与密码模块客户端,密码模块服务端与密码模块客户端在TLCP握手协议中采用ECC_SM4_CBC_SM3或ECC_SM4_GCM_SM3密码套件,密码套件使用SM2签名密钥对签名与验签,密码套件使用SM2加密密钥对加密和解密。
前述的基于协同签名的国密安全通信方法,所述密码模块软件通过PIN码加密存储密钥分量,在使用时解密;在需要签名或解密时,由密码模块软件与协同签名服务端双方协同完成密码计算。
前述的基于协同签名的国密安全通信方法,所述密钥分量由加密密钥对分散得到,其步骤如下:
步骤2.1:密码模块客户端从密码模块服务端下载加密密钥对密文保护结构;
步骤2.2:密码模块客户端根据GM/T0014使用签名密钥对与密码模块服务端协同解密密文保护结构得到密钥加密密钥KEK;
步骤2.3:密码模块客户端使用密钥加密密钥KEK解密得到私钥dA;
步骤2.4:密码模块客户端通过随机数发生器生成满足SM2椭圆曲线要求的密钥分量d1;
步骤2.5:密码模块客户端计算得到密钥分量d2;
步骤2.6:密码模块客户端与密码模块服务端建立单向身份认证的TLCP安全通道,密码模块客户端验证密码模块服务端的签名及数字证书;
步骤2.7:密码模块客户端将密钥分量d2通过TLCP安全通道发送至密码模块服务端,密码模块服务端加密存储密钥分量d2,完成密钥分散。
前述的基于协同签名的国密安全通信方法,所述密钥分量d2的计算公式如下:
d2=(dA+1)-1d1 -1mod n。
前述的基于协同签名的国密安全通信方法,所述的可靠连接是基于TCP的连接。
前述的基于协同签名的国密安全通信方法,所述应用层无感知接入和使用TLCP安全通道根据数据的收发方向包含数据发送时TCP转TLCP协议以及数据接收时TLCP协议转TCP协议。
与现有技术相比,本发明包括了密码模块软件、基于协同签名和协同解密技术实现的符合国家规范的安全通信协议以及保证应用层兼容的协议转换技术;本发明采用密码模块软件的形式,以协同签名与协同解密实现SM2签名和解密算法,按TLCP协议在可靠连接上建立安全通道,通过协议转换技术保证上层应用兼容的接入安全通道。本发明能够在现有设备提供运行环境内运行,且对原设备软件无侵入,又能够保障传输数据安全,传输协议符合国家相关标准规范要求,本身还需安全、可控、易操作,本发明能够在保证上层应用兼容的前提下,通过密码模块软件实现通信设备间的通信加密和攻击抵抗,实现在不安全的网络环境中安全的通信。
附图说明
图1是本发明的密码模块软件与协同签名服务端之间的连接关系示意图;
图2是本发明的方法流程示意图;
图3是协同签名方案示意图;
图4是协同计算与TLCP握手协议示意图;
图5是通信模型的示意图;
图6是TCP协议与TLCP协议的协议栈对比示意图;
图7是TCP转TLCP协议的示意图;
图8是TLCP转TCP协议的示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的说明,但并不作为对本发明限制的依据。
实施例:一种基于协同签名的国密安全通信方法,包括密码模块软件和协同签名服务端;如图1所示,密码模块软件可分为密码模块服务端与密码模块客户端,通过协同签名与协同解密技术建立双向身份认证的TLCP安全通道,采用协议转换技术实现应用层兼容。
协同签名服务端用于实现与密码模块软件的密钥协商,TLCP握手过程中所需的协同签名计算、协同解密计算,以及密码模块软件的管理功能。
密码模块服务端与密码模块客户端在TLCP握手协议中采用ECC_SM4_CBC_SM3或ECC_SM4_GCM_SM3密码套件,这些套件使用SM2签名密钥对签名与验签,使用数字证书相互验证双方身份,保障通信双方的真实性、不可抵赖性,使用SM2加密密钥对加密和解密预主密钥,保证密钥交换的安全,在握手完成后通过加密和校验码保护通信的完整性、机密性。
密码模块软件采用协同签名技术实现数字签名,采用协同解密技术实现解密,密码模块软件内的签名密钥对与加密密钥对由密码模块软件与协同签名服务端协商产生,并由各自存储协商产生密钥分量。密码模块软件通过PIN码加密存储密钥分量,在使用时解密。在需要签名或解密时,由密码模块软件与协同签名服务端双方协同完成密码计算。PIN加密原理以及密钥分散原理如下:
密码模块的PIN由用户手动输入,PIN要求长度至少为8位(最少8位数字、标点或大小写字母),尝试次数最大为3次。若通过暴力手段尝试破解口令,破解概率为≤3/948。PIN码采用基于SM3算法密钥扩展KDF生成16字节加密密钥(EK),保存时使用该EK以SM4算法CBC模式加密密钥分量,CBC模式的IV向量在首次协商时生成。
密钥扩展函数KDF符合GB/T 32918.4要求定义如下:
a、输入比特串为Z,期待klen长度的密钥数据比特串K,令ct=1,v为杂凑算法结果字节长度,其中杂凑函数H为SM3算法实现v=256;
1.计算Hai=Hv(Z||ct);
2.ct++;
根据GM/T0024要求TLCP协议使用的签名密钥对应由自身产生,加密密钥对由外部密钥管理机构产生,加密密钥对的私钥对保护方法应满足GM/T0014的要求。按照GM/T0014要求SM2加密密钥私钥对由密钥加密密钥KEK对称加密,加密方法可为SM4算法ECB模式,密钥加密密钥KEK由SM2签名密钥对非对称加密。
SM2协同签名方案实现了协同签名密钥对的生成、签名、解密,无法满足加密密钥对的分散需要,因此本发明设计了一种基于的SM2协同签名方案的密钥分解方案,该方案的数学原理如下:
在SM2椭圆曲线域内已知公开点坐标G、n,用户A的私钥为dA,公钥为PA=[dA]G。
SM2协同签名方案中用户A没有完整私钥,而是由密钥分量d1、d2构成,d1、d2由协同签名参与双方分别生成,d1拥有者计算P1=[d1 -1]G,d2拥有者计算P2=[d2 -1]G,双方交换P1、P2,公钥PA=[d2 -1]P1[-]G=[d1 -1]P2[-]G=[d1 -1d2 -1-1]G,在该方案中可认为用户A的私钥为d1 -1d2 -1-1。
根据上述原理密钥对分散问题可转换为:
已知用户A公钥PA=dA·G=[d1 -1d2 -1-1]G,已知dA,求d1、d2。
因为dA=d1 -1d2 -1-1 mod n,在该方程中存在两个未知数d1、d2,设已知d1,求d2,求解如下:
dA=d1 -1d2 -1-1 mod n
dA=(d2d1)-1-1 mod n
(d2d1)-1=dA+1 mod n
((d2d1)-1)-1=(dA+1)-1 mod n
d2d1=(dA+1)-1 mod n
d2d1d1 -1=(dA+1)-1d1 -1 mod n
d2=(dA+1)-1d1 -1 mod n;
解得d2=(dA+1)-1d1 -1mod n。
基于以上的密码模块软件和协同签名服务端,本实施例中,如图1所示,通信方法按以下步骤进行:
步骤1、安装启动并配置密码模块软件;
步骤2、密码模块软件按照协同签名协议与协同签名服务端协商密钥并加密存储密钥分量;
步骤3、密码模块软件激活后导入数字证书,使用数字证书相互验证通信双方身份;
步骤4、在数据通信前,建立通信双方基于TCP的可靠连接;
步骤5、密码模块软件采用协同签名实现数字签名,采用协同解密技术实现解密,在可靠连接上按照TLCP协议建立TLCP安全通道;
步骤6、通过协议转换实现应用层无感知接入和使用由密码模块软件提供的TLCP安全通道,实现数据加密通信。
其中,步骤2中,结合GM/T0024要求,如图3所示,加密密钥对分散实现方案如下:
步骤2.1:密码模块客户端从密码模块服务端下载加密密钥对密文保护结构;
步骤2.2:密码模块客户端根据GM/T0014使用签名密钥对与密码模块服务端协同解密密文保护结构得到密钥加密密钥KEK;
步骤2.3:密码模块客户端使用密钥加密密钥KEK解密得到私钥dA;
步骤2.4:密码模块客户端通过随机数发生器生成满足SM2椭圆曲线要求的密钥分量d1;
步骤2.5:密码模块客户端根据d2=(dA+1)-1d1 -1mod n计算得到密钥分量d2;
步骤2.6:密码模块客户端与密码模块服务端建立单向身份认证的TLCP安全通道,密码模块客户端验证密码模块服务端的签名及数字证书;
步骤2.7:密码模块客户端将密钥分量d2通过TLCP安全通道发送至密码模块服务端,密码模块服务端加密存储密钥分量d2,完成密钥分散。
在TLCP协议握手子协议内,密码模块客户端需要协同签名计算,密码模块服务端需要协同签名计算、协同解密计算,密码模块软件与协同签名服务端在协同密码计算时,采用单向身份认证的TLCP安全通道保护。
在本发明中SM2协同签名替代了传统的SM2密钥对签名,SM2协同解密替代了传统的SM2密钥对解密,协同密码计算在TLCP协议的握手子协议的不同阶段进行,包括:客户端密钥交换(ClientKeyExchange)、服务端密钥交换(ServerKeyExchange)、证书验证(CertificateVerify)。如下图4所示。
采用协议转换技术保证上层的应用程序能够无感知的。密码模块软件中协议转换技术原理类似于调制解调器,用于实现TCP协议与TLCP协议的互转。通信模型如下图5所示。
TLCP协议基于TCP或其它可靠连接,在可靠连接的基础上,通过握手协议协商安全参数,然后对应用层的数据进行加密传输。应用层程序间的通信本质是借助底层通信协议栈实现数据的传输、控制,在忽略连接建立与传输细节情况下,TLCP协议对应用层完全透明,TCP协议与TLCP协议的协议栈对比如下图6所示。
跨协议通信根据数据的收发方向包含两种类型转换:数据发送时TCP转TLCP协议、数据接收时TLCP协议转TCP协议。
如图7所示,当密码模块软件作为通信的发送方时,需要将TCP转TLCP协议,由于TCP、TLCP协议都是由客户端发送,服务端接收,因此密码模块软件通过协议转换程序一方面作为TCP协议服务端接收数据,一方面作为TLCP的客户端处理来自于TCP服务端接收到数据,并加密、计算校验、发送至TLCP服务端,解决TCP协议转TLCP协议。
如图8所示,当密码模块软件作为通信的接受方时,需要将TLCP转TCP协议,密码模块软件通过协议转换程序一方面作为TLCP协议服务端接收、解密、并校验数据,一方面作为TCP协议的客户端发送来自于TLCP协议服务端解密后的数据至应用程序,解决TLCP协议转TCP协议。
综上所述,本发明采用密码模块软件的形式,以协同签名与协同解密实现SM2签名和解密算法,按TLCP协议在可靠连接上建立安全通道,通过协议转换技术保证上层应用兼容的接入安全通道。本发明能够在现有设备提供运行环境内运行,且对原设备软件无侵入,又能够保障传输数据安全,传输协议符合国家相关标准规范要求,本身还需安全、可控、易操作,本发明能够在保证上层应用兼容的前提下,通过密码模块软件实现通信设备间的通信加密和攻击抵抗,实现在不安全的网络环境中安全的通信。
Claims (4)
1.一种基于协同签名的国密安全通信方法,其特征在于:包括密码模块软件和协同签名服务端,并按以下步骤进行:
步骤1、安装启动并配置密码模块软件;
步骤2、密码模块软件按照协同签名协议与协同签名服务端协商密钥并加密存储密钥分量;
步骤3、密码模块软件激活后导入数字证书,使用数字证书相互验证通信双方身份;
步骤4、在数据通信前,建立通信双方的可靠连接;
步骤5、密码模块软件采用协同签名实现数字签名,采用协同解密技术实现解密,在可靠连接上按照TLCP协议建立TLCP安全通道;
步骤6、通过协议转换实现应用层无感知接入和使用由密码模块软件提供的TLCP安全通道,实现数据加密通信;
所述密码模块软件包括密码模块服务端与密码模块客户端,密码模块服务端与密码模块客户端在TLCP握手协议中采用ECC_SM4_CBC_SM3或ECC_SM4_GCM_SM3密码套件,密码套件使用SM2签名密钥对签名与验签,密码套件使用SM2加密密钥对加密和解密;
所述密钥分量由加密密钥对分散得到,其步骤如下:
步骤2.1:密码模块客户端从密码模块服务端下载加密密钥对密文保护结构;
步骤2.2:密码模块客户端根据GM/T0014使用签名密钥对与密码模块服务端协同解密密文保护结构得到密钥加密密钥KEK;
步骤2.3:密码模块客户端使用密钥加密密钥KEK解密得到私钥dA;
步骤2.4:密码模块客户端通过随机数发生器生成满足SM2椭圆曲线要求的密钥分量d1;
步骤2.5:密码模块客户端计算得到密钥分量d2;
步骤2.6:密码模块客户端与密码模块服务端建立单向身份认证的TLCP安全通道,密码模块客户端验证密码模块服务端的签名及数字证书;
步骤2.7:密码模块客户端将密钥分量d2通过TLCP安全通道发送至密码模块服务端,密码模块服务端加密存储密钥分量d2,完成密钥分散;
所述密钥分量d2的计算公式如下:
d2=(dA+1)-1d1 -1mod n。
2.根据权利要求1所述的基于协同签名的国密安全通信方法,其特征在于:所述密码模块软件通过PIN码加密存储密钥分量,在使用时解密;在需要签名或解密时,由密码模块软件与协同签名服务端双方协同完成密码计算。
3.根据权利要求1所述的基于协同签名的国密安全通信方法,其特征在于:所述的可靠连接是基于TCP的连接。
4.根据权利要求1所述的基于协同签名的国密安全通信方法,其特征在于:所述应用层无感知接入和使用TLCP安全通道根据数据的收发方向包含数据发送时TCP转TLCP协议以及数据接收时TLCP协议转TCP协议。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211540602.7A CN115955302B (zh) | 2022-12-02 | 2022-12-02 | 一种基于协同签名的国密安全通信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211540602.7A CN115955302B (zh) | 2022-12-02 | 2022-12-02 | 一种基于协同签名的国密安全通信方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115955302A CN115955302A (zh) | 2023-04-11 |
CN115955302B true CN115955302B (zh) | 2023-07-04 |
Family
ID=85885292
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211540602.7A Active CN115955302B (zh) | 2022-12-02 | 2022-12-02 | 一种基于协同签名的国密安全通信方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115955302B (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103634789A (zh) * | 2013-12-17 | 2014-03-12 | 北京网秦天下科技有限公司 | 移动终端和方法 |
CN111049650B (zh) * | 2019-12-27 | 2022-10-25 | 上海市数字证书认证中心有限公司 | 一种基于sm2算法的协同解密方法及装置、系统、介质 |
CN115314214A (zh) * | 2022-06-17 | 2022-11-08 | 安徽科大国创软件科技有限公司 | 一种基于支持硬件加速国密算法的tls协议实现方法 |
CN115174116A (zh) * | 2022-07-06 | 2022-10-11 | 北京神州安付科技股份有限公司 | 一种数据包签名与验签系统 |
-
2022
- 2022-12-02 CN CN202211540602.7A patent/CN115955302B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN115955302A (zh) | 2023-04-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9172529B2 (en) | Hybrid encryption schemes | |
CN108650227A (zh) | 基于数据报安全传输协议的握手方法及系统 | |
CN101600204B (zh) | 一种文件传输方法及系统 | |
WO2010078755A1 (zh) | 电子邮件的传送方法、系统及wapi终端 | |
CN104901935A (zh) | 一种基于cpk的双向认证及数据交互安全保护方法 | |
CN112637136A (zh) | 加密通信方法及系统 | |
US20230188325A1 (en) | Computer-implemented system and method for highly secure, high speed encryption and transmission of data | |
CN114268439B (zh) | 一种基于格的身份基认证密钥协商方法 | |
CN105610773A (zh) | 一种电能表远程抄表的通讯加密方法 | |
JP5027742B2 (ja) | 秘密情報送信システム、秘密情報送信方法、秘密情報管理サーバ、暗号装置、秘密情報送信プログラム | |
CN103118363A (zh) | 一种互传秘密信息的方法、系统、终端设备及平台设备 | |
CN110113150A (zh) | 基于无证书环境的可否认认证的加密方法和系统 | |
CN112104453A (zh) | 一种基于数字证书的抗量子计算数字签名系统及签名方法 | |
CN113285959A (zh) | 一种邮件加密方法、解密方法及加解密系统 | |
CN106713349B (zh) | 一种能抵抗选择密文攻击的群组间代理重加密方法 | |
CN102469173A (zh) | 基于组合公钥算法的IPv6网络层可信传输的方法和系统 | |
CN113572603A (zh) | 一种异构的用户认证和密钥协商方法 | |
CN101707767A (zh) | 一种数据传输方法及设备 | |
CN114172745A (zh) | 一种物联网安全协议系统 | |
CN112491550A (zh) | 一种基于车联网的移动终端设备可信认证方法及系统 | |
CN113572607A (zh) | 一种采用非平衡sm2密钥交换算法的安全通信方法 | |
CN114422205B (zh) | 一种电力专用cpu芯片网络层数据隧道建立方法 | |
CN114629646A (zh) | 基于混合后量子密钥封装和协商的安全传输方法及系统 | |
CN113676448B (zh) | 一种基于对称秘钥的离线设备双向认证方法和系统 | |
KR100456624B1 (ko) | 이동 통신망에서의 인증 및 키 합의 방법 |
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 |