密钥协商方法和密钥协商系统与流程
未命名
08-15
阅读:88
评论:0

1.本发明涉及安全通信技术领域,尤其涉及一种密钥协商方法和密钥协商系统。
背景技术:
2.随着科技的发展,科技给人们的生活发展带来了极大的便利。目前已有科员人员正在研究量子计算机,如果量子计算机问世,那么会进一步提高现有的科技水平。而在计算机飞速发展的同时,也会为通信安全带来一些隐患。比如说,第一用户设备与第二用户设备之间采用sm2算法对会话消息进行加密操作,在传输加密后得到的秘密消息的过程中,不法分子截取并将秘密消息保存在普通计算机中。一旦等量子计算机研制出来,不法分子就可以通过量子计算机对早先保存的秘密消息进行破解,给第一用户设备和第二用户设备间通信的前向安全性造成威胁。
技术实现要素:
3.本发明实施例提供一种密钥协商方法和密钥协商系统,用以实现在尽可能不改变当前现有的公钥基础设施的前提下,保证第一用户设备和第二用户设备间通信的前向安全性。
4.第一方面,本发明实施例提供一种密钥协商方法,应用于密钥协商系统,所述密钥协商系统包括第一用户设备和第二用户设备,所述方法包括:所述第一用户设备确定第一密钥协商元素,并将所述第一密钥协商元素发送至所述第二用户设备,其中,所述第一密钥协商元素中包括采用sm2算法生成的元素;所述第二用户设备基于所述第一密钥协商元素,确定第二密钥协商元素,并将所述第二密钥协商元素发送至所述第一用户设备,其中,所述第二密钥协商元素中包括采用所述sm2算法生成的元素以及采用ntru算法生成的元素;所述第二用户设备基于所述第一密钥协商元素以及所述第二密钥协商元素,生成与所述第一用户设备间的通信会话密钥;所述第一用户设备基于所述第一密钥协商元素以及所述第二密钥协商元素,生成与所述第二用户设备间的所述通信会话密钥。
5.可选地,所述第一用户设备确定第一密钥协商元素,包括:所述第一用户设备通过所述sm2算法生成第一公私钥对,以及通过所述ntru算法生成第二公私钥对;所述第二用户设备通过所述sm2算法生成第三公私钥对;所述第一用户设备生成第一随机数,基于所述第一随机数以及所述第一公私钥对中的私钥,确定第一参数;所述第一用户设备基于所述第三公私钥对中的公钥,对所述第一参数进行加密操作,得到第一元素;所述第一用户设备将所述第一元素、所述第二公私钥对中的私钥以及所述第一用
户设备对应的标识信息,确定为所述第一密钥协商元素。
6.可选地,所述第二用户设备基于所述第一密钥协商元素,确定第二密钥协商元素,包括:所述第二用户设备生成第二随机数,基于所述第二随机数以及所述第三公私钥对中的私钥,确定第二参数;所述第二用户设备基于所述第一公私钥对中的公钥,对所述第二参数进行加密操作,得到第二元素;所述第二用户设备生成第三随机数,并通过所述第二公私钥对中的私钥对所述第三随机数进行加密操作,得到第三元素;所述第二用户设备将所述第二元素、所述第三元素以及所述第二用户设备对应的标识信息,确定为所述第二密钥协商元素。
7.可选地,所述第二用户设备生成第三随机数,并通过所述第二公私钥对中的私钥对所述第三随机数进行加密操作,得到第三元素,包括:随机选取多项式,且;其中,表示三值多项式;基于下述表达式,计算密文:其中,p为所述ntru算法的第一固定参数;为所述第二公私钥对中的私钥;为所述第三随机数;q为所述ntru算法的第二固定参数;获取所述密文包括的多项式中的各项系数;对所述各项系数进行组合,并将组合后的结果转换为字节串,以得到第三元素。
8.可选地,所述方法还包括:所述第二用户设备基于所述第三公私钥对中的私钥,对所述第一元素进行解密操作,得到所述第一参数。
9.可选地,所述第二用户设备基于所述第一密钥协商元素以及所述第二密钥协商元素,生成与所述第一用户设备间的通信会话密钥,包括:所述第二用户设备以所述第一密钥协商元素、所述第二密钥协商元素、所述第二参数、所述第三随机数以及所述第一参数作为sm3算法的输入参数,计算生成与所述第一用户设备间的通信会话密钥。
10.可选地,所述第一用户设备基于所述第一密钥协商元素以及所述第二密钥协商元素,生成与所述第二用户设备间的所述通信会话密钥,包括:所述第一用户设备以所述第一密钥协商元素、所述第二密钥协商元素、所述第二参数、所述第三随机数以及所述第一参数作为所述sm3算法的输入参数,计算生成与所述第二用户设备间的所述通信会话密钥。
11.可选地,在计算生成与所述第二用户设备间的所述通信会话密钥之前,所述方法还包括:所述第一用户设备基于所述第一公私钥对中的私钥,对所述第二元素进行解密操作,得到所述第二参数。
12.可选地,在计算生成与所述第二用户设备间的所述通信会话密钥之前,所述方法还包括:所述第一用户设备基于所述第二公私钥对中的公钥,对所述第三元素进行解密操作,得到所述第三随机数。
13.第二方面,本发明实施例提供一种密钥协商系统,所述密钥协商系统包括第一用户设备和第二用户设备,其中:所述第一用户设备,用于确定第一密钥协商元素,并将所述第一密钥协商元素发送至所述第二用户设备,其中,所述第一密钥协商元素中包括采用sm2算法生成的元素;所述第二用户设备,用于基于所述第一密钥协商元素,确定第二密钥协商元素,并将所述第二密钥协商元素发送至所述第一用户设备,其中,所述第二密钥协商元素中包括采用所述sm2算法生成的元素以及采用ntru算法生成的元素;基于所述第一密钥协商元素以及所述第二密钥协商元素,生成与所述第一用户设备间的通信会话密钥;所述第一用户设备,用于基于所述第一密钥协商元素以及所述第二密钥协商元素,生成与所述第二用户设备间的所述通信会话密钥。
14.可选地,所述第一用户设备,用于通过所述sm2算法生成第一公私钥对,以及通过所述ntru算法生成第二公私钥对;所述第二用户设备,用于通过所述sm2算法生成第三公私钥对;所述第一用户设备,用于生成第一随机数,基于所述第一随机数以及所述第一公私钥对中的私钥,确定第一参数;基于所述第三公私钥对中的公钥,对所述第一参数进行加密操作,得到第一元素;将所述第一元素、所述第二公私钥对中的私钥以及所述第一用户设备对应的标识信息,确定为所述第一密钥协商元素。
15.可选地,所述第二用户设备,用于:生成第二随机数,基于所述第二随机数以及所述第三公私钥对中的私钥,确定第二参数;基于所述第一公私钥对中的公钥,对所述第二参数进行加密操作,得到第二元素;生成第三随机数,并通过所述第二公私钥对中的私钥对所述第三随机数进行加密操作,得到第三元素;将所述第二元素、所述第三元素以及所述第二用户设备对应的标识信息,确定为所述第二密钥协商元素。
16.可选地,所述第二用户设备,用于:随机选取多项式,且;其中,表示三值多项式;基于下述表达式,计算密文:其中,p为所述ntru算法的第一固定参数;为所述第二公私钥对中的私钥;为所述第三随机数;q为所述ntru算法的第二固定参数;获取所述密文包括的多项式中的各项系数;对所述各项系数进行组合,并将组合后的结果转换为字节串,以得到第三元素。
17.可选地,所述第二用户设备,还用于:基于所述第三公私钥对中的私钥,对所述第一元素进行解密操作,得到所述第一参数。
18.可选地,所述第二用户设备,用于:以所述第一密钥协商元素、所述第二密钥协商元素、所述第二参数、所述第三随机数以及所述第一参数作为sm3算法的输入参数,计算生成与所述第一用户设备间的通信会话密钥。
19.可选地,所述第一用户设备,用于:所述第一用户设备以所述第一密钥协商元素、所述第二密钥协商元素、所述第二参数、所述第三随机数以及所述第一参数作为所述sm3算法的输入参数,计算生成与所述第二用户设备间的所述通信会话密钥。
20.可选地,所述第一用户设备,还用于:所述第一用户设备基于所述第一公私钥对中的私钥,对所述第二元素进行解密操作,得到所述第二参数。
21.可选地,所述第一用户设备,还用于:所述第一用户设备基于所述第二公私钥对中的公钥,对所述第三元素进行解密操作,得到所述第三随机数。
22.采用本发明,第一用户设备和第二用户设备间通过相互传递密钥协商元素来协商生成通信会话密钥。在密钥协商元素中,融入了采用sm2算法生成的元素,同时也融入了采用ntru算法生成的元素。在采用sm2算法生成密钥协商元素中的元素的过程中,由于依然延续使用了sm2算法体系,因此可以继续沿用目前运行的公钥基础设施,无需重新构建新的公钥基础设施,大大节约了设施构建资源。同时,由于密钥协商元素中也融入了采用ntru算法生成的元素,对于这部分元素来说,即使未来量子计算机被研制出来,也依然无法破解这部分元素。如果不能破解采用ntru算法生成的元素,那么最终由于无法获取用于生成通信会话密钥中的全部元素,导致无法破解生成通信会话密钥,进而保证了第一用户设备和第二用户设备间通信的前向安全性。
附图说明
23.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
24.图1为本发明实施例提供的一种密钥协商方法的流程示意图;图2为本发明实施例提供的一种用户设备间数据交互的示意图;图3为本发明实施例提供的一种密钥协商系统的结构示意图;图4为本发明实施例提供的一种用户设备的结构示意图。
具体实施方式
25.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例
中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
26.在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种。
27.取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
28.另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。
29.图1为本发明实施例提供的一种密钥协商方法的流程图,该方法可以应用于密钥协商系统。其中,密钥协商系统可以包括第一用户设备和第二用户设备。通过密钥协商系统,第一用户设备可以与第二用户设备协商出同一通信会话密钥,通过该通信会话密钥对会话消息进行加密操作以及解密操作,以进行安全的消息传输。如图1所示,该方法包括如下步骤:101、第一用户设备确定第一密钥协商元素,并将第一密钥协商元素发送至第二用户设备,其中,第一密钥协商元素中包括采用sm2算法生成的元素。
30.102、第二用户设备基于第一密钥协商元素,确定第二密钥协商元素,并将第二密钥协商元素发送至第一用户设备,其中,第二密钥协商元素中包括采用sm2算法生成的元素以及采用ntru算法生成的元素。
31.103、第二用户设备基于第一密钥协商元素以及第二密钥协商元素,生成与第一用户设备间的通信会话密钥。
32.104、第一用户设备基于第一密钥协商元素以及第二密钥协商元素,生成与第二用户设备间的通信会话密钥。
33.实际应用中,第一用户设备可以确定第一密钥协商元素,其中,第一密钥协商元素可以由多个元素构成,该多个元素中包括采用sm2算法生成的元素。其中,sm2算法为一种国家密码局认定的国产密码算法。在确定出第一密钥协商元素之后,第一用户设备可以将第一密钥协商元素发送至第二用户设备。
34.第二用户设备可以基于第一密钥协商元素,确定第二密钥协商元素。其中,第二密钥协商元素也可以由多个元素构成,该多个元素中可以包括采用sm2算法生成的元素以及采用ntru(number theory research unit)算法生成的元素。值得注意的是,采用ntru算法生成的元素可以抵抗量子计算机的攻击,即采用ntru算法生成的元素无法通过量子计算机破解。在确定出第二密钥协商元素之后,第二用户设备可以将第二密钥协商元素发送至第一用户设备。
35.在另一方面,第二用户设备还可以基于第一密钥协商元素以及第二密钥协商元素,生成与第一用户设备间的通信会话密钥。通过该通信会话密钥,第二用户设备可以对向第一用户设备发送的会话消息进行加密操作,以实现与第一用户设备间的秘密通信。
36.第一用户设备同样可以基于第一密钥协商元素以及第二密钥协商元素,生成与第
二用户设备间的通信会话密钥。在第一用户设备和第二用户设备采用相同算法的情况下,第一用户设备和第二用户设备分别基于第一密钥协商元素以及第二密钥协商元素生成的通信会话密钥是相同的。
37.以上从整体上介绍了本发明实施例的方案,下面将详细介绍各个步骤的实现过程。
38.其中,可选地,第一用户设备确定第一密钥协商元素的过程可以实现为:第一用户设备通过sm2算法生成第一公私钥对,以及通过ntru算法生成第二公私钥对;第二用户设备通过sm2算法生成第三公私钥对;第一用户设备生成第一随机数,基于第一随机数以及第一公私钥对中的私钥,确定第一参数;第一用户设备基于第三公私钥对中的公钥,对第一参数进行加密操作,得到第一元素;第一用户设备将第一元素、第二公私钥对中的私钥以及第一用户设备对应的标识信息,确定为第一密钥协商元素。
39.实际应用中,第一用户设备可以通过sm2算法生成第一公私钥对,第一公私钥对可以记为。其中,为第一公私钥对中的私钥,为第一公私钥对中的公钥。
40.第一用户设备还可以通过ntru算法生成第二公私钥对,第二公私钥对可以记为。其中,为第二公私钥对中的私钥,为第二公私钥对中的公钥。
41.下面将介绍一种可能的生成第二公私钥对的过程:(1)选择公开参数,且让n和p为素数,且让n和q满足以下表达式:(表达式1)(2)随机选取多项式,并随机选取多项式。计算以下两个表达式的值:(表达式2);(表达式3)(3)计算。
42.输出,以及。
43.同样地,第二用户设备可以通过sm2算法生成第三公私钥对,第三公私钥对可以记为。其中,为第三公私钥对中的私钥,为第三公私钥对中的公钥。
44.第一用户设备可以生成第一随机数,第一随机数可以记为。基于第一随机数以及第一公私钥对中的私钥,确定第一参数,第一参数可以记为。在某些可选实施例中,可以通过以下表达式进行计算:(表达式4)
其中,表示基于sm3算法的带密钥的哈希算法,为其中应用到的密钥。
45.在获得第一参数之后,第一用户设备可以基于第三公私钥对中的公钥,对第一参数进行加密操作,得到第一元素,第一元素可以记为。在某些可选实施例中,可以采用sm2算法以第三公私钥对中的公钥,对第一参数进行加密操作,该过程可以通过下述表达式表示:(表达式5)第一用户设备可以将第一元素、第二公私钥对中的私钥以及第一用户设备对应的标识信息,确定为第一密钥协商元素,即为第一密钥协商元素。其中,第一用户设备对应的标识信息可以是第一用户设备的id(identity document,身份标识号)。第一用户设备可以将发送至第二用户设备。
46.在接收到第一密钥协商元素之后,第二用户设备可以基于第三公私钥对中的私钥,对第一元素进行解密操作,得到第一参数。具体来说,第二用户设备可以使用第三公私钥对中的私钥对第一元素进行解密操作,得到第一参数。该过程可以通过以下表达式进行表示:(表达式6)在接收到第一密钥协商元素之后,第二用户设备还可以基于第一密钥协商元素,确定第二密钥协商元素。可选地,该过程可以实现为:第二用户设备生成第二随机数,基于第二随机数以及第三公私钥对中的私钥,确定第二参数;第二用户设备基于第一公私钥对中的公钥,对第二参数进行加密操作,得到第二元素;第二用户设备生成第三随机数,并通过第二公私钥对中的私钥对第三随机数进行加密操作,得到第三元素;第二用户设备将第二元素、第三元素以及第二用户设备对应的标识信息,确定为第二密钥协商元素。
47.实际应用中,第二用户设备可以生成第二随机数,该第二随机数可以记为。然后,第二用户设备可以基于第二随机数以及第三公私钥对中的私钥,确定第二参数,第二参数可以记为。具体来说,可以通过下述表达式计算:(表达式7)其中,表示基于sm3算法的带密钥的哈希算法,为其中应用到的密钥。
48.接着,第二用户设备可以通过第一公私钥对中的公钥,采用sm2算法对第二参数进行加密操作,得到第二元素,第二元素可以记为。可以由下述表达式计算得出:(表达式8)
在另一方面,第二用户设备还可以生成第三随机数,第三随机数可以记为。通过第二公私钥对中的私钥,采用ntru算法对第三随机数进行加密操作,得到第三元素,第三元素可以记为。的计算过程可以表示为:(表达式9)在某些可选实施例中,计算的过程可以实现为:(1)随机选取多项式,且。
49.其中,表示三值多项式,多项式中的d个系数为1、d个系数为-1、以及多项式中除2d以外个系数为0。
50.(2)基于下述表达式,计算密文:(表达式10)其中,为ntru算法的第一固定参数;为第二公私钥对中的私钥;为第三随机数;为ntru算法的第二固定参数。其中,需要说明的是,和都是ntru算法中常见的固定参数,它们的值是固定的。
51.(3)获取密文包括的多项式中的各项系数。
52.需要说明的是,密文是多项式,多项式中的每一项带有各自的系数,可以获取各项系数。
53.(4)对各项系数进行组合,并将组合后的结果转换为字节串,以得到第三元素。
54.需要说明的是,在获取密文的各项系数之后,可以将它们组合,也就是顺序拼接在一起,然后将组合后的结果转换为字节串的形式,这样就得到了第三元素。
55.第二用户设备可以将第二元素、第三元素以及第二用户设备对应的标识信息,确定为第二密钥协商元素,即为第二密钥协商元素。其中,第二用户设备对应的标识信息可以是第二用户设备的id。第二用户设备可以将发送至第一用户设备。
56.在另一方面,第二用户设备还可以基于第一密钥协商元素以及第二密钥协商元素,生成与第一用户设备间的通信会话密钥。可选地,该过程可以实现为:第二用户设备以第一密钥协商元素、第二密钥协商元素、第二参数、第三随机数以及第一参数作为sm3算法的输入参数,计算生成与第一用户设备间的通信会话密钥。
57.在第二用户设备中,计算生成通信会话密钥的过程可以表示为:(表达式11)其中,为第二用户设备计算生成的通信会话密钥。
58.对于第一用户设备来说,第一用户设备也可以一一计算或者解密出第二用户设备计算通信会话密钥的过程中所使用到的所有元素,即。这样,当第一用户设备也采用sm3算法以上述所有元素作为输入参数时,能够计算生成出与第二用户设备计算生成的相同的通信会话密钥。
59.基于此,第一用户设备可以通过第一密钥协商元素、第二密钥协商元素、第二参数、第三随机数以及第一参数作为sm3算法的输入参数,计算生成与第二用户设备间的通信会话密钥。
60.其中,第一密钥协商元素已在第一用户设备本地生成,第二密钥协商元素是从第二用户设备接收到的。第一参数也是第一用户设备在生成第一密钥协商元素的过程中已在本地生成。下面将介绍第一用户设备获得第二参数以及第三随机数的过程,这些元素可以基于从第二用户设备接收到的第二密钥协商元素解密而出。
61.可选地,确定第二参数的过程可以实现为:第一用户设备基于第一公私钥对中的私钥,对第二元素进行解密操作,得到第二参数。
62.具体来说,第一用户设备可以使用第一公私钥对中的私钥,对第二元素进行解密操作,得到第二参数。该过程可以通过以下表达式进行表示:(表达式12)可选地,确定第三随机数的过程可以实现为:第一用户设备基于第二公私钥对中的公钥,对第三元素进行解密操作,得到第三随机数。
63.具体来说,第一用户设备可以使用第二公私钥对中的公钥,对第三元素进行解密操作,得到第三随机数。该过程可以通过以下表达式进行表示:(表达式13)上述过程也可以通过下述表达式进行表示:(表达式14)在第一用户设备中,计算生成通信会话密钥的过程可以表示为:(表达式15)其中,为第一用户设备计算生成的通信会话密钥。
64.上述第一用户设备和第二用户设备间的数据交互也可表示为图2示意的过程。
65.采用本发明,第一用户设备和第二用户设备间通过相互传递密钥协商元素来协商生成通信会话密钥。在密钥协商元素中,融入了采用sm2算法生成的元素,同时也融入了采用ntru算法生成的元素。在采用sm2算法生成密钥协商元素中的元素的过程中,由于依然延续使用了sm2算法体系,因此可以继续沿用目前运行的公钥基础设施,无需重新构建新的公钥基础设施,大大节约了设施构建资源。同时,由于密钥协商元素中也融入了采用ntru算法生成的元素,对于这部分元素来说,即使未来量子计算机被研制出来,也依然无法破解这部
分元素。如果不能破解采用ntru算法生成的元素,那么最终由于无法获取用于生成通信会话密钥中的全部元素,导致无法破解生成通信会话密钥,进而保证了第一用户设备和第二用户设备间通信的前向安全性。
66.在本发明另一实施例中提供一种密钥协商系统,如图3所示,该系统30可以包括第一用户设备31和第二用户设备32。其中:所述第一用户设备31,用于确定第一密钥协商元素,并将所述第一密钥协商元素发送至所述第二用户设备32,其中,所述第一密钥协商元素中包括采用sm2算法生成的元素;所述第二用户设备32,用于基于所述第一密钥协商元素,确定第二密钥协商元素,并将所述第二密钥协商元素发送至所述第一用户设备31,其中,所述第二密钥协商元素中包括采用所述sm2算法生成的元素以及采用ntru算法生成的元素;基于所述第一密钥协商元素以及所述第二密钥协商元素,生成与所述第一用户设备31间的通信会话密钥;所述第一用户设备31,用于基于所述第一密钥协商元素以及所述第二密钥协商元素,生成与所述第二用户设备32间的所述通信会话密钥。
67.可选地,所述第一用户设备31,用于通过所述sm2算法生成第一公私钥对,以及通过所述ntru算法生成第二公私钥对;所述第二用户设备32,用于通过所述sm2算法生成第三公私钥对;所述第一用户设备31,用于生成第一随机数,基于所述第一随机数以及所述第一公私钥对中的私钥,确定第一参数;基于所述第三公私钥对中的公钥,对所述第一参数进行加密操作,得到第一元素;将所述第一元素、所述第二公私钥对中的私钥以及所述第一用户设备31对应的标识信息,确定为所述第一密钥协商元素。
68.可选地,所述第二用户设备32,用于:生成第二随机数,基于所述第二随机数以及所述第三公私钥对中的私钥,确定第二参数;基于所述第一公私钥对中的公钥,对所述第二参数进行加密操作,得到第二元素;生成第三随机数,并通过所述第二公私钥对中的私钥对所述第三随机数进行加密操作,得到第三元素;将所述第二元素、所述第三元素以及所述第二用户设备32对应的标识信息,确定为所述第二密钥协商元素。
69.可选地,所述第二用户设备32,用于:随机选取多项式,且;其中,表示三值多项式;基于下述表达式,计算密文:其中,p为所述ntru算法的第一固定参数;为所述第二公私钥对中的私钥;为所述第三随机数;q为所述ntru算法的第二固定参数;获取所述密文包括的多项式中的各项系数;对所述各项系数进行组合,并将组合后的结果转换为字节串,以得到第三元素。
70.可选地,所述第二用户设备32,还用于:基于所述第三公私钥对中的私钥,对所述第一元素进行解密操作,得到所述第一参数。
71.可选地,所述第二用户设备32,用于:以所述第一密钥协商元素、所述第二密钥协商元素、所述第二参数、所述第三随机数以及所述第一参数作为sm3算法的输入参数,计算生成与所述第一用户设备31间的通信会话密钥。
72.可选地,所述第一用户设备31,用于:所述第一用户设备31以所述第一密钥协商元素、所述第二密钥协商元素、所述第二参数、所述第三随机数以及所述第一参数作为所述sm3算法的输入参数,计算生成与所述第二用户设备32间的所述通信会话密钥。
73.可选地,所述第一用户设备31,还用于:所述第一用户设备31基于所述第一公私钥对中的私钥,对所述第二元素进行解密操作,得到所述第二参数。
74.可选地,所述第一用户设备31,还用于:所述第一用户设备31基于所述第二公私钥对中的公钥,对所述第三元素进行解密操作,得到所述第三随机数。
75.图3所示系统的详细的实现过程和技术效果参见前述实施例中的描述,在此不再赘述。
76.在一个可能的设计中,如图4所示,上述用户设备可以包括:处理器91、存储器92。其中,所述存储器92上存储有可执行代码,当所述可执行代码被所述处理器91执行时,使所述处理器91至少可以实现如前述图1至图2所示实施例中提供的密钥协商方法。
77.可选地,该用户设备中还可以包括通信接口93,用于与其他设备进行通信。
78.另外,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被用户设备的处理器执行时,使所述处理器至少可以实现如前述图1至图2所示实施例中提供的密钥协商方法。
79.以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
80.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以计算机产品的形式体现出来,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
81.本发明实施例提供的密钥协商方法可以由某种程序/软件来执行,该程序/软件可以由网络侧提供,前述实施例中提及的用户设备可以将该程序/软件下载到本地的非易失性存储介质中,并在其需要执行前述密钥协商方法时,通过cpu将该程序/软件读取到内存
中,进而由cpu执行该程序/软件以实现前述实施例中所提供的密钥协商方法,执行过程可以参见前述图1至图2中的示意。
82.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
技术特征:
1.一种密钥协商方法,其特征在于,应用于密钥协商系统,所述密钥协商系统包括第一用户设备和第二用户设备,所述方法包括:所述第一用户设备确定第一密钥协商元素,并将所述第一密钥协商元素发送至所述第二用户设备,其中,所述第一密钥协商元素中包括采用sm2算法生成的元素;所述第二用户设备基于所述第一密钥协商元素,确定第二密钥协商元素,并将所述第二密钥协商元素发送至所述第一用户设备,其中,所述第二密钥协商元素中包括采用所述sm2算法生成的元素以及采用ntru算法生成的元素;所述第二用户设备基于所述第一密钥协商元素以及所述第二密钥协商元素,生成与所述第一用户设备间的通信会话密钥;所述第一用户设备基于所述第一密钥协商元素以及所述第二密钥协商元素,生成与所述第二用户设备间的所述通信会话密钥。2.根据权利要求1所述的方法,其特征在于,所述第一用户设备确定第一密钥协商元素,包括:所述第一用户设备通过所述sm2算法生成第一公私钥对,以及通过所述ntru算法生成第二公私钥对;所述第二用户设备通过所述sm2算法生成第三公私钥对;所述第一用户设备生成第一随机数,基于所述第一随机数以及所述第一公私钥对中的私钥,确定第一参数;所述第一用户设备基于所述第三公私钥对中的公钥,对所述第一参数进行加密操作,得到第一元素;所述第一用户设备将所述第一元素、所述第二公私钥对中的私钥以及所述第一用户设备对应的标识信息,确定为所述第一密钥协商元素。3.根据权利要求2所述的方法,其特征在于,所述第二用户设备基于所述第一密钥协商元素,确定第二密钥协商元素,包括:所述第二用户设备生成第二随机数,基于所述第二随机数以及所述第三公私钥对中的私钥,确定第二参数;所述第二用户设备基于所述第一公私钥对中的公钥,对所述第二参数进行加密操作,得到第二元素;所述第二用户设备生成第三随机数,并通过所述第二公私钥对中的私钥对所述第三随机数进行加密操作,得到第三元素;所述第二用户设备将所述第二元素、所述第三元素以及所述第二用户设备对应的标识信息,确定为所述第二密钥协商元素。4.根据权利要求3所述的方法,其特征在于,所述第二用户设备生成第三随机数,并通过所述第二公私钥对中的私钥对所述第三随机数进行加密操作,得到第三元素,包括:随机选取多项式,且;其中,表示三值多项式;基于下述表达式,计算密文:
其中,p为所述ntru算法的第一固定参数;为所述第二公私钥对中的私钥;为所述第三随机数;q为所述ntru算法的第二固定参数;获取所述密文包括的多项式中的各项系数;对所述各项系数进行组合,并将组合后的结果转换为字节串,以得到第三元素。5.根据权利要求3所述的方法,其特征在于,所述方法还包括:所述第二用户设备基于所述第三公私钥对中的私钥,对所述第一元素进行解密操作,得到所述第一参数。6.根据权利要求5所述的方法,其特征在于,所述第二用户设备基于所述第一密钥协商元素以及所述第二密钥协商元素,生成与所述第一用户设备间的通信会话密钥,包括:所述第二用户设备以所述第一密钥协商元素、所述第二密钥协商元素、所述第二参数、所述第三随机数以及所述第一参数作为sm3算法的输入参数,计算生成与所述第一用户设备间的通信会话密钥。7.根据权利要求6所述的方法,其特征在于,所述第一用户设备基于所述第一密钥协商元素以及所述第二密钥协商元素,生成与所述第二用户设备间的所述通信会话密钥,包括:所述第一用户设备以所述第一密钥协商元素、所述第二密钥协商元素、所述第二参数、所述第三随机数以及所述第一参数作为所述sm3算法的输入参数,计算生成与所述第二用户设备间的所述通信会话密钥。8.根据权利要求7所述的方法,其特征在于,在计算生成与所述第二用户设备间的所述通信会话密钥之前,所述方法还包括:所述第一用户设备基于所述第一公私钥对中的私钥,对所述第二元素进行解密操作,得到所述第二参数。9.根据权利要求7所述的方法,其特征在于,在计算生成与所述第二用户设备间的所述通信会话密钥之前,所述方法还包括:所述第一用户设备基于所述第二公私钥对中的公钥,对所述第三元素进行解密操作,得到所述第三随机数。10.一种密钥协商系统,其特征在于,所述密钥协商系统包括第一用户设备和第二用户设备,其中:所述第一用户设备,用于确定第一密钥协商元素,并将所述第一密钥协商元素发送至所述第二用户设备,其中,所述第一密钥协商元素中包括采用sm2算法生成的元素;所述第二用户设备,用于基于所述第一密钥协商元素,确定第二密钥协商元素,并将所述第二密钥协商元素发送至所述第一用户设备,其中,所述第二密钥协商元素中包括采用所述sm2算法生成的元素以及采用ntru算法生成的元素;基于所述第一密钥协商元素以及所述第二密钥协商元素,生成与所述第一用户设备间的通信会话密钥;所述第一用户设备,用于基于所述第一密钥协商元素以及所述第二密钥协商元素,生成与所述第二用户设备间的所述通信会话密钥。
技术总结
本发明实施例提供一种密钥协商方法和密钥协商系统,该方法包括:第一用户设备确定第一密钥协商元素,并将第一密钥协商元素发送至第二用户设备,其中,第一密钥协商元素中包括采用SM2算法生成的元素;第二用户设备基于第一密钥协商元素,确定第二密钥协商元素,并将第二密钥协商元素发送至第一用户设备,其中,第二密钥协商元素中包括采用SM2算法生成的元素以及采用NTRU算法生成的元素;第二用户设备基于第一密钥协商元素以及第二密钥协商元素,生成与第一用户设备间的通信会话密钥;第一用户设备基于第一密钥协商元素以及第二密钥协商元素,生成与第二用户设备间的通信会话密钥。在不改变公钥基础设施的前提下,保证通信的前向安全性。的前向安全性。的前向安全性。
技术研发人员:秦体红 王翊心 胡进
受保护的技术使用者:武汉信安珞珈科技有限公司
技术研发日:2023.07.12
技术公布日:2023/8/13
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/