CN114050897B - 一种基于sm9的异步密钥协商方法及装置 - Google Patents
一种基于sm9的异步密钥协商方法及装置 Download PDFInfo
- Publication number
- CN114050897B CN114050897B CN202110959598.7A CN202110959598A CN114050897B CN 114050897 B CN114050897 B CN 114050897B CN 202110959598 A CN202110959598 A CN 202110959598A CN 114050897 B CN114050897 B CN 114050897B
- Authority
- CN
- China
- Prior art keywords
- key
- client
- message
- offline
- negotiation
- 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
Classifications
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供一种基于SM9的异步密钥协商方法及装置;其中,方法,包括:第一客户端接收第二客户端发送的好友添加请求,基于所述第二客户端的标识生成用于异步密钥协商的预密钥对;其中,所述密钥对包含公钥和私钥;将生成的所述预密钥对的公钥安全发送至通信服务器进行存储;将生成的所述预密钥对的私钥用预密钥加密密钥对的公钥加密后安全发送至密钥中心进行存储;在第一客户端向所述第二客户端发送消息时,若第二客户端离线,则该第一客户端通过所述通信服务器协商确定与所述第二客户端的会话密钥。如此,提高了网络通信过程中数据通信的安全性。
Description
技术领域
本发明涉及数据处理技术领域,具体而言,涉及一种基于SM9的异步密钥协商方法及装置。
背景技术
随着互联网的发展和智能终端的应用越来越普及,人与人之间的通讯也越来越依赖于网络通信系统。
本发明的发明人在研究中发现,为保证通信安全,需要对通信消息进行加密,由于对通信消息进行加密的密钥需要由通信双方自行协商产生,现在的密钥协商方法存在着不支持密钥的异步协商(即消息接收方不在线的情况下进行密钥协商)的问题,现有技术方案中密钥协商的过程中要求通信双方必须同时在线,接收方离线时将无法进行密钥协商。
发明内容
有鉴于此,本发明提供一种基于SM9的异步密钥协商方法及装置,以提高网络通信过程中的数据信息的安全性。
具体地,本发明是通过如下技术方案实现的:
第一方面,本发明实施例提供了一种基于SM9的异步密钥协商方法,所述方法,包括:
第一客户端接收第二客户端发送的好友添加请求,基于所述第二客户端的标识生成用于异步密钥协商的预密钥对;其中,所述密钥对包含公钥和私钥;
将生成的所述预密钥对的公钥安全发送至通信服务器进行存储;
将生成的所述预密钥对的私钥用标识密码的公钥(即预密钥加密密钥对的公钥)加密后安全发送至密钥中心进行存储;
第一客户端向所述第二客户端发送消息,若第二客户端离线,则该第一客户端首先通过所述通信服务器协商确定与所述第二客户端的会话密钥。
第二方面,本发明实施例提供了一种基于SM9的异步密钥协商装置,所述装置应用于第一客户端,所述装置,包括:
接收模块,用于接收第二客户端发送的好友添加请求,基于所述第二客户端的标识生成用于异步密钥协商的预密钥对;其中,所述密钥对包含公钥和私钥;
第一发送模块,用于将生成的所述预密钥对的公钥安全发送至通信服务器进行存储;将生成的所述预密钥对的私钥用标识密码的公钥(即预密钥加密密钥对的公钥)加密后安全发送至密钥中心进行存储;
协商模块,用于在第一客户端向所述第二客户端发送消息时,若第二客户端离线,则该第一客户端通过所述通信服务器协商确定与所述第二客户端的会话密钥。
第三方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如第一方面所述方法的步骤。
第四方面,本本发明实施例还提供了一种计算机设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现如第一方面所述的方法步骤。
本发明实施例中提供的一种基于SM9的异步密钥协商方法及装置,第一客户端接收第二客户端发送的好友添加请求,基于所述第二客户端的标识生成用于异步密钥协商的预密钥对;将生成的所述预密钥对发送至通信服务器进行存储;在第一客户端向所述第二客户端发送消息时,若第二客户端离线,则该第一客户端通过所述通信服务器协商确定与所述第二客户端的会话密钥。进而本申请实施例实现了密钥的异步协商,即在消息接收方不在线的情况下进行密钥协商,进而提高了数据通信的安全性。
附图说明
图1是本发明一示例性实施例示出的一种基于SM9的异步密钥协商方法的流程示意图;
图2是本发明一示例性实施例示出的一种基于SM9的异步密钥协商方法的参考密钥生成的场景示意图;
图3是本发明一示例性实施例示出的密钥协商及通信过程的场景示意图;
图4是本发明一示例性实施例示出的一种基于SM9的异步密钥协商方法装置的结构示意图;
图5是本发明一示例性实施例示出的一种计算机设备的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
在本发明使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本发明可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
在网络通信领域,网络信息的安全性和私密性越来越受到人们的重视,使用密钥对信息进行加密是普遍的一种数据保护方式;为保证通信安全,对通信消息进行加密的密钥需要由通信双方自行协商产生,现在的密钥协商方法存在以下问题:1、支持密钥的异步(即消息接收方不在线)协商,通信双方必须同时在线,接收方离线时将无法进行密钥协商;2、可进行密钥异步协商但不支持设备更换,即接收方的密钥只能保存在本地,在新设备登录将无法获得此前保存的密钥协商参数导致协商失败;3、密钥安全性不足,已有的异步密钥协商方法产生的密钥或用于产生密钥的关键参数相对固定,不能很好的保证密钥的前后向安全,即攻击者获得当前密钥,能够穷轻松推算出之前使用过的密钥和后续协商出来的密钥;基于此,本发明实施例提供了一种基于SM9(GM/T 0044-2016SM9标识密码算法)的异步密钥协商方法及装置。
图1是本发明一示例性实施例示出的一种基于SM9的异步密钥协商方法的流程示意图;参照图1所示,该方法应用于第一客户端,第一客户端在与第二客户端建立好友关系以后,第一客户端通过通信服务器与第二客户端之间进行信息交互,该方法具体包括如下步骤:
S10、第一客户端接收第二客户端发送的好友添加请求,基于所述第二客户端的标识生成用于异步密钥协商的预密钥对;其中,所述密钥对包含公钥和私钥。
S20、将生成的所述预密钥对的公钥安全发送至通信服务器进行存储。
S30、将生成的所述预密钥对的私钥用预密钥加密密钥对的公钥加密后安全发送至密钥中心进行存储。
S40、在第一客户端向所述第二客户端发送消息时,若第二客户端离线,则该第一客户端通过所述通信服务器协商确定与所述第二客户端的会话密钥。
举例说明,通信过程中,当客户端A添加客户端B为好友时,客户端A和客户端B均基于对方的标识生成用于异步密钥协商的预密钥对,具体计算过程如下:
步骤1)、客户端A通过以下公式(1)计算用户B的身份公钥QB,
QB=[H1(IDB||hiduid,N)]P1+Ppub_uid (1)
其中,上述公式(1)具体解释说明如下:
QB为用户B的身份公钥,其值为N阶循环子群G1中的元素;
运算符[]为椭圆曲线的倍点运算;
H1为密码函数:通过输入为一个比特串(即上式的IDB||hiduid)和一个整数(即上式的N),输出为一个整数h1∈[1,N-1];H1需要调用HV密码杂凑算法,使用国家密码管理局批准的密码杂凑函数,例如SM3密码杂凑算法;
IDB为用户B的标识;
N为素因子;
hiduid为KGC选择并公开用一个字节标识的用户身份私钥生产函数识别符号;
运算符||表征进行拼接的操作;
P1为椭圆曲线上的N阶循环子群G1的生成元;
Ppud_uid为KGC用来产生用户身份密钥的主密钥对中的公钥。
步骤2)、客户端A产生随机数计算RAB=[rAB]QB,(rAB,RAB)即为客户端A离线时客户端B与客户端A进行密钥协商时客户端A的参考预密钥对,并将RAB发送至通信服务器中存储;
步骤3)、客户端A按照如下公式(2)计算预密钥加密密钥公钥:
QA_pre=[H1(IDA||hidpre,N)]P1+Ppub_pre (2)
并在加密密钥公钥QA_pre的基础上,使用SM9的加密算法加密rAB得到密文CAB,将CAB发送至离线密钥管理中心存储。
上述公式(2)具体解释说明如下:
Ppud_pre为KGC(KeyGenerationCenter,密钥生产中心)用来产生预密钥加密密钥的主密钥对中的公钥。
hidpre为KGC选择并公开用一个字节标识的用户预密钥加密密钥对的私钥生产函数识别符号。
步骤4)、客户端B采用与客户端A相同的方式,生成客户端B离线时客户端A与客户端B进行离线密钥协商的参考预密钥对(rBA,RBA),并采用与客户端A相同的方式存储其参考预密钥。
本申请一实施例中,上述方法,还包括如下步骤A10-A30:
步骤A10、第一客户端通过所述通信服务器协商与所述第二客户端的会话密钥;其中,所述通信服务器用于为每次会话产生一个当次有效的随机数参与到该次密钥协商中,以保证相同的第一客户端与第二客户端的每次会话协商出来的密钥都不同。
示例性的,客户端A给客户端B发消息时,若客户端B离线,密钥协商的具体计算过程如下:
客户端A计算QB=[H1(IDB||hiduid,N)]P1+Ppub_uid;
客户端A产生随机数rAB_t∈[1,N-1],计算RAB_t=[rAB_t]QB,将RAB_t发送给通信服务器,并向通信服务器请求客户端B的一次性预密钥;
通信服务器产生随机数计算客户端B的一次性预密钥公钥RBA_t=[rBA_t]RBA,之后将RBA_t发送给客户端A;
客户端A计算g2'=e(RBA_t,dA_uid),/>则会话密钥KAB=KDF(IDA||IDB||RAB_t||RBA_t||g1'||g2'||g3',klen);
上述公式中,参数具体的定义,包括:
e为双线性运算;
P2为椭圆曲线上的N阶循环子群G2的生成元;
Ppud_uid为KGC用来产生用户身份密钥的主密钥对中的公钥;
KDF函数为密钥派生函数,符合《SM9标识密码算法》中的5.4.3的规定;
||为拼接符号;
klen为用户A和B协商获取密钥数据的长度(单位为b)。
步骤A20、第一客户端应用所述会话密钥加密将要发送至第二客户端的消息。
步骤A30、将所述消息发送至通信服务器,以使所述通信服务器基于所述第二客户端的标识公钥加密生成当前消息的解密密钥的必要信息,将加密后的所述必要信息及所述消息一起发送至第二客户端,以使所述第二客户端根据所述必要信息计算得到解密密钥。
本申请中,系统主密钥建立过程如下:
KGC生成(spre,Ppub_pre),作为产生预密钥加密密钥的主密钥对,KGC存储并设置私钥spre为保密状态,设置公钥Ppub_pre为能够公开获取的状态。
KGC生成(suid,Ppub_uid),作为产生用户身份密钥的主密钥对,KGC存储并设置私钥suid为保密状态,设置公钥Ppub_uid为能够公开获取的状态。
本申请中,用户私钥生成过程为:
用户A的标识为IDA,密钥中心为A生成预密钥加密密钥对的私钥dA_pre;
用户A的标识为IDA,密钥中心为A生成身份私钥dA_uid。
本申请另一实施例中,上述方法,还包括如下步骤B10-B20:
B10、若第一客户端接收到来自所述第二客户端的离线消息,则向密钥中心请求解密该离线消息的必要信息。
B20、所述第一客户端基于所述解密密钥的必要信息计算得到解密密钥,进而应用该解密密钥对所述离线消息进行解密得到消息明文。
继续举例说明,上述离线消息发送及接收的过程,如下:
1),客户端A将要发给客户端B的消息M用KAB进行加密,将用KAB加密后的消息M发送至通信服务器。
2),通信服务器基于客户端B的标识公钥KB_pub加密rBA_t获得CBA_t,则客户端B收到的来自于客户端A的离线消息为M'=(M||RAB_t||RBA||CBA_t)。
3),上述客户端B接收到来自客户端A的离线消息M'=(M||RAB_t||RBA||CBA_t)后,客户端B向密钥中心请求预密钥加密密钥对的私钥dB_pre和身份私钥dB_uid,向离线密钥管理中心请求客户端B与客户端A的参考预密钥。
4)、离线密钥管理中心将CBA发送给客户端B。
5)、客户端B用预密钥加密密钥对的私钥dB_pre解密CBA获得rBA,用客户端B的标识私钥KB_pri解密CBA_t获得rBA_t。
6)、客户端B计算rBA_t'=rBA·rBA_t,RBA_t=[rBA_t]RBA。
7)、客户端B计算g1=e(RBA_t,dB_uid),则会话密钥为KBA=KDF(IDA||IDB||RAB_t||RBA_t||g1||g2||g3,klen)。
8)、客户端B用KBA解密M获得通信消息明文。
本申请实施例中,上述在线用户按照一定时间间隔更新参考预密钥;参考预密钥私钥生成时被安全存储在当前设备中,若离线用户上线时未更换设备,则可直接使用存储在本地的参考预密钥私钥进行密钥协商,无需从离线密钥管理中心请求其参考预密钥私钥。
本系统中,客户端与服务器之间关于密钥协商的信息传输,均通过服务器与客户端共享对称密钥进行加密传输,进而保证了数据传输过程的安全性。
本申请基于SM9设计了一种新的异步密钥协商方案,利用SM9公钥(即用户标识)对用户用于异步密钥协商的私钥加密后保存至离线密钥管理中心,合法用户方可通过其标识信息向SM9密钥管理中心申请解密私钥,既能保证安全性,又可支持设备更新。
每轮异步密钥协商,通信服务器会产生一个随机数参与协商,以保证密钥的前后向安全,可实现“一话一密”(每次协商出来的密钥都不同)的异步密钥协商功能。
图5是本发明一示例性实施例示出的一种基于SM9的异步密钥协商装置的结构示意图;参照图5所示,所述装置300包括:
接收模块301,用于接收第二客户端发送的好友添加请求,基于所述第二客户端的标识生成用于异步密钥协商的预密钥对;其中,所述密钥对包含公钥和私钥;
第一发送模块302,用于将生成的所述预密钥对的公钥发送至通信服务器进行存储;
第二发送模块303,用于将生成的所述预密钥对的私钥用预密钥加密密钥对的公钥加密后安全发送至密钥中心进行存储;
协商模块304,用于在第一客户端向所述第二客户端发送消息时,若第二客户端离线,则该第一客户端通过所述通信服务器协商确定与所述第二客户端的会话密钥。
可选地,所述装置,还包括:
协商模块,用于第一客户端通过所述通信服务器协商与所述第二客户端的会话密钥;其中,所述通信服务器用于为每次会话产生一个当次有效的随机数参与到该次密钥协商中,以保证相同的第一客户端与第二客户端的每次会话协商出来的密钥都不同;
加密模块,用于应用所述会话密钥加密将要发送至第二客户端的消息;
第二发送模块,用于将所述消息发送至通信服务器,以使所述通信服务器基于所述第二客户端的标识公钥加密生成当前消息的解密密钥的必要信息,将加密后的所述必要信息及所述消息一起发送至第二客户端,以使所述第二客户端根据所述必要信息计算得到解密密钥。
可选地,所述装置,还包括:
请求模块,用于若第一客户端接收到来自所述第二客户端的离线消息,则向密钥中心请求解密该离线消息的必要信息;
解密模块,用于基于所述解密密钥的必要信息计算得到解密密钥,进而应用该解密密钥对所述离线消息进行解密得到消息明文。
图5是本发明一示例性实施例示出的一种计算机设备的结构示意图;本发明实施例中提供的一种电子设备,如图5所示,包括处理器501、通信接口502、存储器503和通信总线504,其中,处理器501,通信接口502,存储器503通过通信总线504完成相互间的通信;
存储器503,用于存放计算机程序;
处理器501,用于执行存储器503上所存放的程序时,实现上述任一实施例中所述的一种基于SM9的异步密钥协商方法。第一客户端接收第二客户端发送的好友添加请求,基于所述第二客户端的标识生成用于异步密钥协商的预密钥对;将生成的所述预密钥对发送至通信服务器进行存储;在第一客户端向所述第二客户端发送消息时,若第二客户端离线,则该第一客户端通过所述通信服务器协商确定与所述第二客户端的会话密钥。进而本申请实施例实现了密钥的异步协商,即在消息接收方不在线的情况下进行密钥协商,进而提高了数据通信的安全性。
上述终端提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述终端与其他设备之间的通信。
存储器可以包括随机存取存储器(RandomAccess Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、媒介和存储器设备,例如包括半导体存储器设备(例如EPROM、EEPROM和闪存设备)、磁盘(例如内部磁盘或可移动盘)、磁光盘以及CD ROM和DVD-ROM盘。处理器和存储器可由专用逻辑电路补充或并入专用逻辑电路中。
虽然本说明书包含许多具体实施细节,但是这些不应被解释为限制任何发明的范围或所要求保护的范围,而是主要用于描述特定发明的具体实施例的特征。本说明书内在多个实施例中描述的某些特征也可以在单个实施例中被组合实施。另一方面,在单个实施例中描述的各种特征也可以在多个实施例中分开实施或以任何合适的子组合来实施。此外,虽然特征可以如上所述在某些组合中起作用并且甚至最初如此要求保护,但是来自所要求保护的组合中的一个或多个特征在一些情况下可以从该组合中去除,并且所要求保护的组合可以指向子组合或子组合的变型。
类似地,虽然在附图中以特定顺序描绘了操作,但是这不应被理解为要求这些操作以所示的特定顺序执行或顺次执行、或者要求所有例示的操作被执行,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中均需要这样的分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中,或者封装成多个软件产品。
由此,主题的特定实施例已被描述。其他实施例在所附权利要求书的范围以内。在某些情况下,权利要求书中记载的动作可以以不同的顺序执行并且仍实现期望的结果。此外,附图中描绘的处理并非必需所示的特定顺序或顺次顺序,以实现期望的结果。在某些实现中,多任务和并行处理可能是有利的。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (8)
1.一种基于SM9的异步密钥协商方法,其特征在于,所述方法,包括:
第一客户端接收第二客户端发送的好友添加请求,基于所述第二客户端的标识生成用于异步密钥协商的预密钥对;其中,所述密钥对包含公钥和私钥;
通信过程中,当客户端A添加客户端B为好友时,客户端A和客户端B均基于对方的标识生成用于异步密钥协商的预密钥对,具体计算过程如下:
步骤1)、客户端A通过以下公式(1)计算用户B的身份公钥QB,
QB=[H1(IDB||hiduid,N)]P1+Ppub_uid (1)
其中,上述公式(1)具体解释说明如下:
QB为用户B的身份公钥,其值为N阶循环子群G1中的元素;
运算符[]为椭圆曲线的倍点运算;
H1为密码函数:通过输入为一个比特串,即上式的IDB||hiduid,和一个整数,
即上式的N,输出为一个整数h1∈[1,N-1];H1需要调用HV密码杂凑算法,
使用国家密码管理局批准的密码杂凑函数,例如SM3密码杂凑算法;
IDB为用户B的标识;
N为素因子;
hiduid为KGC选择并公开用一个字节标识的用户身份私钥生产函数识别符号;
运算符||表征进行拼接的操作;
P1为椭圆曲线上的N阶循环子群G1的生成元;
Ppud_uid为KGC用来产生用户身份密钥的主密钥对中的公钥;
步骤2)、客户端A产生随机数计算RAB=[rAB]QB,(rAB,RAB)即为客户端A离线时客户端B与客户端A进行密钥协商时客户端A的参考预密钥对,并将RAB发送至通信服务器中存储;
步骤3)、客户端A按照如下公式(2)计算预密钥加密密钥公钥:
QA_pre=[H1(IDA||hidpre,N)]P1+Ppub_pre (2)
并在加密密钥公钥QA_pre的基础上,使用SM9的加密算法加密rAB得到密文CAB,将CAB发送至离线密钥管理中心存储;
上述公式(2)具体解释说明如下:
Ppud_pre为KGC(Key Generation Center,密钥生产中心)用来产生预密钥加密密钥的主密钥对中的公钥;
hidpre为KGC选择并公开用一个字节标识的用户预密钥加密密钥对的私钥生产函数识别符号;
步骤4)、客户端B采用与客户端A相同的方式,生成客户端B离线时客户端A与客户端B进行离线密钥协商的参考预密钥对(rBA,RBA),并采用与客户端A相同的方式存储其参考预密钥;
将生成的所述预密钥对的公钥发送至通信服务器进行存储;
将生成的所述预密钥对的私钥用预密钥加密密钥对的公钥加密后发送至密钥中心进行存储;
第一客户端向所述第二客户端发送消息,若第二客户端离线,则该第一客户端首先通过所述通信服务器协商与所述第二客户端之间的会话密钥。
2.根据权利要求1所述的方法,其特征在于,所述第一客户端向所述第二客户端发送消息,若第二客户端离线,则该第一客户端首先通过所述通信服务器协商与所述第二客户端之间的会话密钥,包括:
第一客户端通过所述通信服务器协商与所述第二客户端的会话密钥;其中,所述通信服务器用于为每次会话产生一个当次有效的随机数参与到次密钥协商中,以保证相同的第一客户端与第二客户端的每次会话协商出来的密钥都不同;
第一客户端应用所述会话密钥加密将要发送至第二客户端的消息;
将加密后的所述消息发送至通信服务器,以使所述通信服务器基于所述第二客户端的标识公钥加密生成当前消息的解密密钥的必要信息,将加密后的所述必要信息及所述消息一起发送至第二客户端,以使所述第二客户端根据所述必要信息计算得到解密密钥。
3.根据权利要求1或2所述的方法,其特征在于,所述方法,还包括:
若第一客户端接收到来自所述第二客户端的离线消息,则向密钥中心请求解密该离线消息的必要信息;
所述第一客户端基于解密密钥的必要信息计算得到解密密钥,进而应用该解密密钥对所述离线消息进行解密得到消息明文。
4.根据权利要求1或2所述的方法,其特征在于,上述方法,还包括:
在线用户按照一定时间间隔更新参考预密钥;
参考预密钥私钥生成时被安全存储在当前设备中,若离线用户上线时未更换设备,则可直接使用存储在本地的参考预密钥私钥进行密钥协商,此时省去从离线密钥管理中心请求其参考预密钥私钥的步骤。
5.一种基于SM9的异步密钥协商装置,其特征在于,所述装置应用于第一客户端,所述装置,包括:
接收模块,用于接收第二客户端发送的好友添加请求,基于所述第二客户端的标识生成用于异步密钥协商的预密钥对;其中,所述密钥对包含公钥和私钥;以及,通信过程中,当客户端A添加客户端B为好友时,客户端A和客户端B均基于对方的标识生成用于异步密钥协商的预密钥对,具体计算过程如下:
步骤1)、客户端A通过以下公式(1)计算用户B的身份公钥QB,
QB=[H1(IDB||hiduid,N)]P1+Ppub_uid (1)
其中,上述公式(1)具体解释说明如下:
QB为用户B的身份公钥,其值为N阶循环子群G1中的元素;
运算符[]为椭圆曲线的倍点运算;
H1为密码函数:通过输入为一个比特串,即上式的IDB||hiduid,和一个整数,
即上式的N,输出为一个整数h1∈[1,N-1];H1需要调用HV密码杂凑算法,
使用国家密码管理局批准的密码杂凑函数,例如SM3密码杂凑算法;
IDB为用户B的标识;
N为素因子;
hiduid为KGC选择并公开用一个字节标识的用户身份私钥生产函数识别符号;
运算符||表征进行拼接的操作;
P1为椭圆曲线上的N阶循环子群G1的生成元;
Ppud_uid为KGC用来产生用户身份密钥的主密钥对中的公钥;
步骤2)、客户端A产生随机数计算RAB=[rAB]QB,(rAB,RAB)即为客户端A离线时客户端B与客户端A进行密钥协商时客户端A的参考预密钥对,并将RAB发送至通信服务器中存储;
步骤3)、客户端A按照如下公式(2)计算预密钥加密密钥公钥:
QA_pre=[H1(IDA||hidpre,N)]P1+Ppub_pre (2)
并在加密密钥公钥QA_pre的基础上,使用SM9的加密算法加密rAB得到密文CAB,将CAB发送至离线密钥管理中心存储;
上述公式(2)具体解释说明如下:
Ppud_pre为KGC(Key Generation Center,密钥生产中心)用来产生预密钥加密密钥的主密钥对中的公钥;
hidpre为KGC选择并公开用一个字节标识的用户预密钥加密密钥对的私钥生产函数识别符号;
步骤4)、客户端B采用与客户端A相同的方式,生成客户端B离线时客户端A与客户端B进行离线密钥协商的参考预密钥对(rBA,RBA),并采用与客户端A相同的方式存储其参考预密钥;
第一发送模块,用于将生成的所述预密钥对的公钥发送至通信服务器进行存储;
第二发送模块,用于将生成的所述预密钥对的私钥用预密钥加密密钥对的公钥加密后安全发送至密钥中心进行存储;
协商模块,用于在第一客户端向所述第二客户端发送消息时,若第二客户端离线,则该第一客户端通过所述通信服务器协商确定与所述第二客户端的会话密钥。
6.根据权利要求5所述的装置,其特征在于,所述装置,还包括:
协商模块,用于第一客户端通过所述通信服务器协商与所述第二客户端的会话密钥;其中,所述通信服务器用于为每次会话产生一个当次有效的随机数参与到次密钥协商中,以保证相同的第一客户端与第二客户端的每次会话协商出来的密钥都不同;
加密模块,用于应用所述会话密钥加密将要发送至第二客户端的消息;
第二发送模块,用于将所述消息发送至通信服务器,以使所述通信服务器基于所述第二客户端的标识公钥加密生成当前消息的解密密钥的必要信息,将加密后的所述必要信息及所述消息一起发送至第二客户端,以使所述第二客户端根据所述必要信息计算得到解密密钥。
7.根据权利要求5或6所述的装置,其特征在于,所述装置,还包括:
请求模块,用于若第一客户端接收到来自所述第二客户端的离线消息,则向密钥中心请求解密该离线消息的必要信息;
解密模块,用于基于解密密钥的必要信息计算得到解密密钥,进而应用该解密密钥对所述离线消息进行解密得到消息明文。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-5任一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110959598.7A CN114050897B (zh) | 2021-08-20 | 2021-08-20 | 一种基于sm9的异步密钥协商方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110959598.7A CN114050897B (zh) | 2021-08-20 | 2021-08-20 | 一种基于sm9的异步密钥协商方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114050897A CN114050897A (zh) | 2022-02-15 |
CN114050897B true CN114050897B (zh) | 2023-10-03 |
Family
ID=80204366
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110959598.7A Active CN114050897B (zh) | 2021-08-20 | 2021-08-20 | 一种基于sm9的异步密钥协商方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114050897B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117834138B (zh) * | 2024-03-04 | 2024-05-24 | 北卡科技有限公司 | 一种适用于即时通信的密钥协商方法、系统、设备及介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108199844A (zh) * | 2018-04-09 | 2018-06-22 | 北京无字天书科技有限公司 | 一种支持离线sm9算法密钥首次申请下载方法 |
EP3364330A1 (en) * | 2017-02-17 | 2018-08-22 | WhatsApp, Inc. | Methods and systems for processing an ephemeral content message |
CN109922084A (zh) * | 2019-04-10 | 2019-06-21 | 北京阿尔山区块链联盟科技有限公司 | 密钥管理方法、装置以及电子设备 |
CN110838910A (zh) * | 2019-10-16 | 2020-02-25 | 郑州地铁集团有限公司 | 一种基于sm3和sm4通信加密的地铁综合监控系统 |
CN111585749A (zh) * | 2016-10-26 | 2020-08-25 | 阿里巴巴集团控股有限公司 | 数据传输方法、装置、系统及设备 |
CN112906038A (zh) * | 2021-03-26 | 2021-06-04 | 成都卫士通信息产业股份有限公司 | 基于sm9密钥的门限化处理方法、装置、设备及存储介质 |
-
2021
- 2021-08-20 CN CN202110959598.7A patent/CN114050897B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111585749A (zh) * | 2016-10-26 | 2020-08-25 | 阿里巴巴集团控股有限公司 | 数据传输方法、装置、系统及设备 |
EP3364330A1 (en) * | 2017-02-17 | 2018-08-22 | WhatsApp, Inc. | Methods and systems for processing an ephemeral content message |
CN108199844A (zh) * | 2018-04-09 | 2018-06-22 | 北京无字天书科技有限公司 | 一种支持离线sm9算法密钥首次申请下载方法 |
CN109922084A (zh) * | 2019-04-10 | 2019-06-21 | 北京阿尔山区块链联盟科技有限公司 | 密钥管理方法、装置以及电子设备 |
CN110838910A (zh) * | 2019-10-16 | 2020-02-25 | 郑州地铁集团有限公司 | 一种基于sm3和sm4通信加密的地铁综合监控系统 |
CN112906038A (zh) * | 2021-03-26 | 2021-06-04 | 成都卫士通信息产业股份有限公司 | 基于sm9密钥的门限化处理方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114050897A (zh) | 2022-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7119040B2 (ja) | データ伝送方法、装置およびシステム | |
TWI748853B (zh) | 用於基於區塊鏈的系統結合錢包管理系統中的安全多方防遺失儲存及加密金鑰轉移 | |
US7424615B1 (en) | Mutually authenticated secure key exchange (MASKE) | |
EP2707988B1 (en) | Discovery of security associations for key management relying on public keys | |
US8769288B2 (en) | Discovery of security associations | |
WO2019088979A1 (en) | Multi-party threshold authenticated encryption | |
JP5544355B2 (ja) | 共有の秘密の確認の方法およびシステム | |
US11405365B2 (en) | Method and apparatus for effecting a data-based activity | |
CA2886849A1 (en) | A secure mobile electronic payment system where only the bank has the key, distributed key handshakes, one way and two way authentication distributed key processes and setting up a dynamic distributed key server | |
US12010216B2 (en) | Computer-implemented system and method for highly secure, high speed encryption and transmission of data | |
US11374910B2 (en) | Method and apparatus for effecting a data-based activity | |
US11528127B2 (en) | Computer-implemented system and method for highly secure, high speed encryption and transmission of data | |
US11637817B2 (en) | Method and apparatus for effecting a data-based activity | |
CN111192050B (zh) | 一种数字资产私钥存储提取方法及装置 | |
CN114050897B (zh) | 一种基于sm9的异步密钥协商方法及装置 | |
CN111431846B (zh) | 数据传输的方法、装置和系统 | |
CN110572788B (zh) | 基于非对称密钥池和隐式证书的无线传感器通信方法和系统 | |
RU2693192C1 (ru) | Компьютерно-реализуемый способ обеспечения защищённых групповых коммуникаций со свойствами отказуемости, совершенной прямой секретности и согласованности текста переписки | |
CN117914483A (zh) | 安全通信方法、装置、设备和介质 | |
CN115378666A (zh) | 支持外包密文数据相等性测试的公钥加密方法及系统 | |
CN116192427A (zh) | 一种保密会话方法及装置 | |
CN115102698A (zh) | 量子加密的数字签名方法及系统 | |
CN110572256A (zh) | 基于非对称密钥池和隐式证书的抗量子计算非对称密钥管理方法和系统 | |
WO2019192699A1 (en) | Device for providing a service and terminal for reusing a secure session |
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 |