CN117811730A - 国密密钥协商方法、装置、计算设备及可读存储介质 - Google Patents
国密密钥协商方法、装置、计算设备及可读存储介质 Download PDFInfo
- Publication number
- CN117811730A CN117811730A CN202311862850.8A CN202311862850A CN117811730A CN 117811730 A CN117811730 A CN 117811730A CN 202311862850 A CN202311862850 A CN 202311862850A CN 117811730 A CN117811730 A CN 117811730A
- Authority
- CN
- China
- Prior art keywords
- elliptic curve
- curve point
- random number
- computing device
- point
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 49
- 230000006870 function Effects 0.000 claims description 10
- 238000009795 derivation Methods 0.000 claims description 6
- 238000004364 calculation method Methods 0.000 abstract description 9
- 238000010586 diagram Methods 0.000 description 9
- 238000004590 computer program Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 206010033799 Paralysis Diseases 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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
-
- 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/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- 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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- General Physics & Mathematics (AREA)
- Algebra (AREA)
- Storage Device Security (AREA)
Abstract
本申请公开了一种国密密钥协商方法、装置、计算设备及可读存储介质,国密密钥协商方法包括:获取原始数据、第一随机数与第一椭圆曲线点,其中,第一随机数与第一椭圆曲线点是首次进行密钥协商时确定的;获取第二随机数;根据第二随机数与第一椭圆曲线点确定第二椭圆曲线点;在第一随机数、第二随机数、第一椭圆曲线点与第二椭圆曲线点均满足预设条件的情况下,获取第三椭圆曲线点与中间量;根据原始数据、第一随机数、第二随机数、第二椭圆曲线点、第三椭圆曲线点与中间量确定第一会话密钥,以利用第一会话密钥与第二计算设备进行通信。由此,减少了第一计算设备的计算量,提升了第一计算设备的计算性能。
Description
技术领域
本申请涉及密钥协商技术领域,具体地涉及一种国密密钥协商方法、装置、计算设备及可读存储介质。
背景技术
云计算、大数据等信息技术正在深刻改变着人们的思维、生产、生活和学习方式,云密码服务技术飞速发展,众多企业和个人通过云密码服务将数据加密后存放在云端,因此云计算、大数据等信息技术对云密码服务提出了更高要求。
现有的国密密钥协商技术没有考虑云环境下的云服务器压力,在实际应用中,云服务器和客户端往往是一对多的关系,因此大量的数据传输和密钥协商会带给云服务器巨大压力,从而可能导致云服务器的计算性能下降或服务器瘫痪,造成数据泄露。
可见,现有的国密密钥协商存在云服务器计算量大与计算性能低的技术问题。
发明内容
本申请实施例的目的是提供一种国密密钥协商方法、装置、计算设备及可读存储介质,用以解决现有技术中国密密钥协商存在云服务器计算量大与计算性能低的技术问题。
为了实现上述目的,本申请第一方面提供一种国密密钥协商方法,应用于第一计算设备,国密密钥协商方法包括:
获取原始数据、第一随机数与第一椭圆曲线点,其中,第一随机数与第一椭圆曲线点是首次进行密钥协商时确定的,第一椭圆曲线点是根据第一随机数确定的;
获取第二随机数,其中,第二随机数的长度小于第一随机数的长度;
根据第二随机数与第一椭圆曲线点确定第二椭圆曲线点;
在第一随机数、第二随机数、第一椭圆曲线点与第二椭圆曲线点均满足预设条件的情况下,获取第三椭圆曲线点与中间量;
根据原始数据、第一随机数、第二随机数、第二椭圆曲线点、第三椭圆曲线点与中间量确定第一会话密钥,以利用第一会话密钥与第二计算设备进行通信。
在本申请实施例中,在第一随机数、第二随机数、第一椭圆曲线点与第二椭圆曲线点均满足预设条件的情况下,获取第三椭圆曲线点与中间量,包括:
在第一随机数、第二随机数、第一椭圆曲线点与第二椭圆曲线点均满足预设条件的情况下,接收第二计算设备发送的第三椭圆曲线点与中间量。
在本申请实施例中,在第一随机数、第二随机数、第一椭圆曲线点与第二椭圆曲线点均满足预设条件的情况下,获取第三椭圆曲线点与中间量,包括:
在第一随机数、第二随机数、第一椭圆曲线点与第二椭圆曲线点均满足预设条件的情况下,接收第二计算设备发送的第三椭圆曲线点,并根据原始数据与第三椭圆曲线点确定中间量。
在本申请实施例中,在第一随机数、第二随机数、第一椭圆曲线点与第二椭圆曲线点均满足预设条件的情况下,获取第三椭圆曲线点与中间量,包括:
根据第一随机数、第二随机数与原始数据确定第四椭圆曲线点;
在第一椭圆曲线点、第二椭圆曲线点与第四椭圆曲线点均满足椭圆曲线方程的情况下,获取第三椭圆曲线点与中间量。
在本申请实施例中,根据原始数据、第一随机数、第二随机数、第二椭圆曲线点、第三椭圆曲线点与中间量确定第一会话密钥,以利用第一会话密钥与第二计算设备进行通信,包括:
根据原始数据、第一随机数、第二随机数、第二椭圆曲线点、第三椭圆曲线点与中间量确定第五椭圆曲线点;
在第五椭圆曲线点不是无穷远点的情况下,根据第五椭圆曲线点与原始数据确定第一会话密钥,以利用第一会话密钥与第二计算设备进行通信。
在本申请实施例中,在第五椭圆曲线点不是无穷远点的情况下,根据第五椭圆曲线点与原始数据确定第一会话密钥,以利用第一会话密钥与第二计算设备进行通信,包括:
在第五椭圆曲线点不是无穷远点的情况下,利用密钥派生函数,根据第五椭圆曲线点与原始数据确定第一会话密钥,以利用第一会话密钥与第二计算设备进行通信。
在本申请实施例中,国密密钥协商方法还包括:
向第二计算设备发送第二椭圆曲线点,以使第二计算设备根据第二椭圆曲线点确定第二会话密钥,以利用第二会话密钥与第一计算设备进行通信。
本申请第二方面提供一种国密密钥协商装置,包括:
第一获取模块:获取原始数据、第一随机数与第一椭圆曲线点,其中,第一随机数与第一椭圆曲线点是首次进行密钥协商时确定的,第一椭圆曲线点是根据第一随机数确定的;
第二获取模块:获取第二随机数,其中,第二随机数的长度小于第一随机数的长度;
第一确定模块:根据第二随机数与第一椭圆曲线点确定第二椭圆曲线点;
第三获取模块:在第一随机数、第二随机数、第一椭圆曲线点与第二椭圆曲线点均满足预设条件的情况下,获取第三椭圆曲线点与中间量;
第二确定模块:根据原始数据、第一随机数、第二随机数、第二椭圆曲线点、第三椭圆曲线点与中间量确定第一会话密钥,以利用第一会话密钥与第二计算设备进行通信。
本申请第三方面提供一种第一计算设备,包括:
存储器,被配置成存储指令;以及
处理器,被配置成从存储器调用指令以及在执行指令时能够实现根据第一方面中任一项所述的国密密钥协商方法。
本申请第四方面提供一种机器可读存储介质,该机器可读存储介质上存储有指令,该指令用于使得机器执行根据第一方面中任一项所述的国密密钥协商方法。
通过上述技术方案,仅在首次密钥协商时生成第一随机数,在后续进行协商时可以重复使用,能够减少第一计算设备的计算量,从而提升第一计算设备的计算性能;通过获取长度小于第一随机数的第二随机数,能够加强随机数强度,增强国密密钥协商的安全性。
本申请实施例的其它特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本申请实施例的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本申请实施例,但并不构成对本申请实施例的限制。在附图中:
图1示意性示出了根据本申请实施例的一种国密密钥协商方法的流程示意图;
图2示意性示出了根据本申请实施例的一种国密密钥协商装置的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,应当理解的是,此处所描述的具体实施方式仅用于说明和解释本申请实施例,并不用于限制本申请实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明,若本申请实施例中有涉及方向性指示(诸如上、下、左、右、前、后……),则该方向性指示仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。
另外,若本申请实施例中有涉及“第一”、“第二”等的描述,则该“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
图1示意性示出了根据本申请实施例的一种国密密钥协商方法的流程示意图。如图1所示,本申请实施例提供一种国密密钥协商方法,应用于第一计算设备,该方法可以包括下列步骤。
步骤110:获取原始数据、第一随机数与第一椭圆曲线点,其中,第一随机数与第一椭圆曲线点是首次进行密钥协商时确定的,第一椭圆曲线点是根据第一随机数确定的;
可以理解的是,公钥和私钥是在加密通信和加密技术中使用的一对密钥,常用于实现加密、解密、数字签名等安全操作。公钥是由加密算法生成的非对称密钥对中的一个,可以自由分发给其他人,被用来加密消息,对用公钥加密的数据,只能使用对应的私钥才能解密;私钥是非对称密钥对中与公钥对应的另一个密钥,私钥是保密的,并且只有持有者可以拥有和使用它,用于解密用公钥加密的数据。
具体地,获取原始数据、第一随机数与第一椭圆曲线点,其中,原始数据保存在第一计算设备内部,包括第一计算设备的私钥、第一计算设备的公钥、第二计算设备的公钥、第一计算设备的杂凑值、第二计算设备的杂凑值与椭圆曲线系统参数。第一计算设备的杂凑值包括第一计算设备的可辨别标识、椭圆曲线系统参数和第一计算设备公钥的杂凑值;第二计算设备的杂凑值包括第二计算设备的可辨别标识、椭圆曲线系统参数和第二计算设备公钥的杂凑值;第一随机数可利用随机数发生器生成,第一随机数与第一椭圆曲线点是首次进行密钥协商时确定的,第一椭圆曲线点是根据第一随机数确定的,第一随机数与第一椭圆曲线点可以重复使用,在非首次密钥协商的情况下,第一随机数与第一椭圆曲线点可以直接选取首次密钥协商时确定好的值。第一椭圆曲线点可以通过如下公式确定:
Ra=[ra]G=(x1,y1)
式中,Ra表示第一椭圆曲线点,ra表示第一随机数,G表示椭圆曲线系统参数中的椭圆曲线基点,x1表示第一椭圆曲线点的横坐标,y1表示第一椭圆曲线点的纵坐标。
需要注意的是,本申请实施例中的第一计算设备可以是云服务器,通过仅在首次密钥协商时生成第一随机数,在后续进行协商时可以重复使用,能够减少云服务器产生随机数的次数,当云服务器对应大量的并发的客户端时,计算量的减少能够提升云服务器的计算性能。
步骤120:获取第二随机数,其中,第二随机数的长度小于第一随机数的长度;
需要注意的是,在本申请实施例中,第二随机数可利用随机数发生器生成,第二随机数的长度小于第一随机数的长度,即第一随机数是长度相对较长的随机数,第二随机数是长度相对较短的随机数,通过获取长度小于第一随机数的第二随机数,能够加强随机数强度,增强国密密钥协商的安全性。
步骤130:根据第二随机数与第一椭圆曲线点确定第二椭圆曲线点;
具体地,通过如下公式根据第二随机数与第一椭圆曲线点确定第二椭圆曲线点:
Rk=[rk]Ra=[rk][ra]G=(xk,yk)
式中,Rk表示第二椭圆曲线点,rk表示第二随机数,Ra表示第一椭圆曲线点,ra表示第一随机数,G表示椭圆曲线系统参数中的椭圆曲线基点,xk表示第二椭圆曲线点的横坐标,yk表示第二椭圆曲线点的纵坐标。
通过根据第二随机数与第一椭圆曲线点确定第二椭圆曲线点,为进行后续密钥协商打下数据基础。
步骤140:在第一随机数、第二随机数、第一椭圆曲线点与第二椭圆曲线点均满足预设条件的情况下,获取第三椭圆曲线点与中间量;
可以理解的是,在获取第三椭圆曲线点与中间量之前,还需验证第一随机数、第二随机数、第一椭圆曲线点与第二椭圆曲线点是否满足预设条件,只有在第一随机数、第二随机数、第一椭圆曲线点与第二椭圆曲线点满足预设条件的情况下才能再进行后续的密钥协商,如果不满足预设条件,则表明密钥协商失败,从而确保了密钥协商的安全准确性。
在本申请实施例中,步骤140包括:
在第一随机数、第二随机数、第一椭圆曲线点与第二椭圆曲线点均满足预设条件的情况下,接收第二计算设备发送的第三椭圆曲线点与中间量。
具体地,在第一随机数、第二随机数、第一椭圆曲线点与第二椭圆曲线点均满足预设条件的情况下,接收第二计算设备发送的第三椭圆曲线点与中间量,其中第二计算设备可以是客户端设备。第二计算设备首先获取第二计算设备原始数据、第三随机数与第三椭圆曲线点,第二计算设备原始数据保存在第二计算设备内部,包括第二计算设备的私钥、第一计算设备的公钥、第二计算设备的公钥、第一计算设备的杂凑值、第二计算设备的杂凑值与椭圆曲线系统参数;第三随机数可利用随机数发生器生成,长度大于第二随机数;第三椭圆曲线点可以通过如下公式根据第三随机数确定:
Rb=[rb]G=(x2,y2)
式中,Rb表示第三椭圆曲线点,rb表示第三随机数,G表示椭圆曲线系统参数中的椭圆曲线基点,x2表示第三椭圆曲线点的横坐标,y2表示第三椭圆曲线点的纵坐标。
中间量由第二计算设备生成,第二计算设备可以通过如下公式根据椭圆曲线系统参数与第三椭圆曲线点确定中间量:
x2'=2w+(x2&(2w-1)
式中,x2'表示中间量,w表示椭圆曲线系统参数中的常量值,n表示椭圆曲线基点的阶,x2表示第三椭圆曲线点的横坐标。
通过接收第二计算设备发送的第三椭圆曲线点与中间量,使第一计算设备可以直接采用第二计算设备计算好的中间量进行使用,而无需再次计算中间量,并且由于第二计算设备的第三椭圆曲线点与中间量是一次性发送,没有延迟,并且第二计算设备分担了部分计算量,从而减少了第一计算设备的计算量,提高了第一计算设备的计算性能。
在本申请实施例中,步骤140包括:
在第一随机数、第二随机数、第一椭圆曲线点与第二椭圆曲线点均满足预设条件的情况下,接收第二计算设备发送的第三椭圆曲线点,并根据原始数据与第三椭圆曲线点确定中间量。
可以理解的是,在第一随机数、第二随机数、第一椭圆曲线点与第二椭圆曲线点均满足预设条件的情况下,第二计算设备也可以根据原始数据与第三椭圆曲线点确定中间量,根据第二计算设备自身携带的数据进行中间量的计算,能够提高密钥协商的安全性。
具体地,在第一随机数、第二随机数、第一椭圆曲线点与第二椭圆曲线点均满足预设条件的情况下,接收第二计算设备发送的第三椭圆曲线点,并通过如下公式根据原始数据与第三椭圆曲线点确定中间量:
x2'=2w+(x2&(2w-1)
式中,x2'表示中间量,w表示椭圆曲线系统参数中的常量值,n表示椭圆曲线基点的阶,x2表示第三椭圆曲线点的横坐标。
在本申请实施例中,步骤140包括:
根据第一随机数、第二随机数与原始数据确定第四椭圆曲线点;
在第一椭圆曲线点、第二椭圆曲线点与第四椭圆曲线点均满足椭圆曲线方程的情况下,获取第三椭圆曲线点与中间量。
具体地,可以通过如下公式根据第一随机数、第二随机数与原始数据确定第四椭圆曲线点:
Rm=[ra][rk]G=(xm,ym)
式中,Rm表示第四椭圆曲线点,ra表示第一随机数,rk表示第二随机数,G表示椭圆曲线系统参数中的椭圆曲线基点,xm表示第四椭圆曲线点的横坐标,ym表示第四椭圆曲线点的纵坐标。
验证第一椭圆曲线点、第二椭圆曲线点与第四椭圆曲线点是否都满足椭圆曲线方程,在第一椭圆曲线点、第二椭圆曲线点与第四椭圆曲线点均满足椭圆曲线方程的情况下,获取第三椭圆曲线点与中间量,如果第一椭圆曲线点和/或第二椭圆曲线点和/或第四椭圆曲线点不满足椭圆曲线方程,则表明密钥协商失败,从而确保了密钥协商的安全准确性。
步骤150:根据原始数据、第一随机数、第二随机数、第二椭圆曲线点、第三椭圆曲线点与中间量确定第一会话密钥,以利用第一会话密钥与第二计算设备进行通信。
可以理解的是,会话密钥是一种用于加密通信会话中传输的数据的临时密钥,它能够为通信双方提供一个只在该会话期间有效的加密手段,从而确保传输的数据的机密性和完整性。会话密钥通常通过加密算法加密传输的数据,只有掌握密钥的双方可以解密并读取数据内容,从而防止未授权的第三方窃取信息;配合适当的消息认证码或数字签名算法,会话密钥可以用来验证数据在传输过程中没有被篡改;会话密钥通常是一次性的,为每个会话生成唯一的会话密钥,即便会话密钥被破解,但由于使用的是不同的会话密钥,之前的通信内容也无法被解密。
具体地,原始数据是存储在第一计算设备内部的,第一随机数、第二随机数与第二椭圆曲线点是第一计算设备确定的,第三椭圆曲线点是从第二计算设备接收的,中间量可以由第一计算设备确定,也可以从第二计算设备接收,通过第一计算设备与第二计算设备之间的数据交互,确定了可以用于交换加秘数据的第一会话密钥,从而实现了一个完整的密钥协商流程,保证了密钥协商的完整性与安全性。
在本申请实施例中,步骤150包括:
根据原始数据、第一随机数、第二随机数、第二椭圆曲线点、第三椭圆曲线点与中间量确定第五椭圆曲线点;
在第五椭圆曲线点不是无穷远点的情况下,根据第五椭圆曲线点与原始数据确定第一会话密钥,以利用第一会话密钥与第二计算设备进行通信。
具体地,首先可以通过如下公式根据原始数据与第二椭圆曲线点确定第一临时量:
xk'=2w+(xk&(2w-1)
式中,xk'表示第一临时量,w表示原始数据中椭圆曲线系统参数的常量值,n表示椭圆曲线基点的阶,xk表示第二椭圆曲线点的横坐标。
通过如下公式根据原始数据、第一临时量、第二随机数与第一随机数确定第二临时量:
ta=(da+xk'*rk*ra)modn
式中,ta表示第二临时量,da表示原始数据中的第一计算设备的私钥,xk'表示第一临时量,rk表示第二随机数,ra表示第一随机数,n表示椭圆曲线基点的阶,mod n表示模n运算。
通过如下公式根据原始数据、第一临时量、中间量、第三椭圆曲线点确定第五椭圆曲线点:
V=[h*ta](Pb+[x2']*Rb)=(xv,yv)
式中,V表示第五椭圆曲线点,h表示原始数据中椭圆曲线系统参数的余因子,Pb表示原始数据中第二计算设备的公钥,x2'表示中间量,Rb表示第三椭圆曲线点,xv表示第五椭圆曲线点的横坐标,yv表示第五椭圆曲线点的纵坐标。
确定第五椭圆曲线点是否是无穷远点,如果第五椭圆曲线点是无穷远点,则表明协商失败,在第五椭圆曲线点不是无穷远点的情况下,根据第五椭圆曲线点与原始数据确定第一会话密钥,以利用第一会话密钥与第二计算设备进行通信,从而保证了密钥协商的完整性与安全性。
在本申请实施例中,在第五椭圆曲线点不是无穷远点的情况下,根据第五椭圆曲线点与原始数据确定第一会话密钥,以利用第一会话密钥与第二计算设备进行通信,包括:
在第五椭圆曲线点不是无穷远点的情况下,利用密钥派生函数,根据第五椭圆曲线点与原始数据确定第一会话密钥,以利用第一会话密钥与第二计算设备进行通信。
具体地,在第五椭圆曲线点不是无穷远点的情况下,利用密钥派生函数,可以通过如下公式根据第五椭圆曲线点与原始数据确定第一会话密钥,以利用第一会话密钥与第二计算设备进行通信:
KA=KDF(xv||yv||ZB||ZA,klen)
式中,KA表示第一会话密钥,KDF()表示密钥派生函数,xv表示第五椭圆曲线点的横坐标,yv表示第五椭圆曲线点的纵坐标,ZB表示原始数据中第一计算设备的杂凑值,ZA表示原始数据中第二计算设备的杂凑值,klen表示第一会话密钥的长度。
通过利用密钥派生函数确定第一会话密钥,以利用第一会话密钥与第二计算设备进行通信,从而保证了国密密钥协商的规范性。
在本申请实施例中,国密密钥协商方法还包括:
向第二计算设备发送第二椭圆曲线点,以使第二计算设备根据第二椭圆曲线点确定第二会话密钥,以利用第二会话密钥与第一计算设备进行通信。
具体地,向第二计算设备发送第二椭圆曲线点,以使第二计算设备根据第二椭圆曲线点确定第二会话密钥,以利用第二会话密钥与第一计算设备进行通信。通过第一计算设备与第二计算设备之间的数据交互,确定了可以用于交换加秘数据的第一会话密钥与第二会话密钥,从而实现了一个完整的密钥协商流程,保证了密钥协商的完整性与安全性。
本申请实施例提供的国密密钥协商方法,通过仅在首次密钥协商时生成第一随机数,在后续进行协商时可以重复使用,能够减少第一计算设备的计算量,从而提升第一计算设备的计算性能;通过获取长度小于第一随机数的第二随机数,能够加强随机数强度,增强国密密钥协商的安全性。
图2示意性示出了根据本申请实施例的一种国密密钥协商装置的结构示意图。如图2所示,在本申请实施例中,本申请实施例提供一种国密密钥协商装置,该装置包括:
第一获取模块210:获取原始数据、第一随机数与第一椭圆曲线点,其中,第一随机数与第一椭圆曲线点是首次进行密钥协商时确定的,第一椭圆曲线点是根据第一随机数确定的;
第二获取模块220:获取第二随机数,其中,第二随机数的长度小于第一随机数的长度;
第一确定模块230:根据第二随机数与第一椭圆曲线点确定第二椭圆曲线点;
第三获取模块240:在第一随机数、第二随机数、第一椭圆曲线点与第二椭圆曲线点均满足预设条件的情况下,获取第三椭圆曲线点与中间量;
第二确定模块250:根据原始数据、第一随机数、第二随机数、第二椭圆曲线点、第三椭圆曲线点与中间量确定第一会话密钥,以利用第一会话密钥与第二计算设备进行通信。
可以理解的是,本申请实施例提供的国密密钥协商装置能够实现方法实施例中国密密钥协商方法的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本申请实施例还提供一种第一计算设备,包括:
存储器310,被配置成存储指令;以及
处理器320,被配置成从存储器310调用指令以及在执行指令时能够实现上述方法实施例中的国密密钥协商方法。
可以理解的是,本申请实施例提供的第一计算设备,能够实现方法实施例中国密密钥协商方法的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本申请实施例还提供一种机器可读存储介质,该机器可读存储介质上存储有指令,该指令用于使得机器执行上述方法实施例中的国密密钥协商方法,且能达到相同的技术效果,为避免重复,这里不再赘述。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种国密密钥协商方法,其特征在于,应用于第一计算设备,所述方法包括:
获取原始数据、第一随机数与第一椭圆曲线点,其中,所述第一随机数与所述第一椭圆曲线点是首次进行密钥协商时确定的,所述第一椭圆曲线点是根据所述第一随机数确定的;
获取第二随机数,其中,所述第二随机数的长度小于所述第一随机数的长度;
根据所述第二随机数与所述第一椭圆曲线点确定第二椭圆曲线点
在所述第一随机数、所述第二随机数、所述第一椭圆曲线点与所述第二椭圆曲线点均满足预设条件的情况下,获取第三椭圆曲线点与中间量;
根据所述原始数据、所述第一随机数、所述第二随机数、所述第二椭圆曲线点、所述第三椭圆曲线点与所述中间量确定第一会话密钥,以利用所述第一会话密钥与第二计算设备进行通信。
2.根据权利要求1所述的国密密钥协商方法,其特征在于,所述在所述第一随机数、所述第二随机数、所述第一椭圆曲线点与所述第二椭圆曲线点均满足预设条件的情况下,获取第三椭圆曲线点与中间量,包括:
在所述第一随机数、所述第二随机数、所述第一椭圆曲线点与所述第二椭圆曲线点均满足所述预设条件的情况下,接收所述第二计算设备发送的第三椭圆曲线点与中间量。
3.根据权利要求1所述的国密密钥协商方法,其特征在于,所述在所述第一随机数、所述第二随机数、所述第一椭圆曲线点与所述第二椭圆曲线点均满足所述预设条件的情况下,获取第三椭圆曲线点与中间量,包括:
在所述第一随机数、所述第二随机数、所述第一椭圆曲线点与所述第二椭圆曲线点均满足所述预设条件的情况下,接收所述第二计算设备发送的第三椭圆曲线点,并根据所述原始数据与所述第三椭圆曲线点确定所述中间量。
4.根据权利要求1所述的国密密钥协商方法,其特征在于,所述在所述第一随机数、所述第二随机数、所述第一椭圆曲线点与所述第二椭圆曲线点均满足预设条件的情况下,获取第三椭圆曲线点与中间量,包括:
根据所述第一随机数、所述第二随机数与所述原始数据确定第四椭圆曲线点;
在所述第一椭圆曲线点、所述第二椭圆曲线点与所述第四椭圆曲线点均满足椭圆曲线方程的情况下,获取所述第三椭圆曲线点与所述中间量。
5.根据权利要求1所述的国密密钥协商方法,其特征在于,所述根据所述原始数据、所述第一随机数、所述第二随机数、所述第二椭圆曲线点、所述第三椭圆曲线点与所述中间量确定第一会话密钥,以利用所述第一会话密钥与所述第二计算设备进行通信,包括:
根据所述原始数据、所述第一随机数、所述第二随机数、所述第二椭圆曲线点、所述第三椭圆曲线点与所述中间量确定第五椭圆曲线点;
在所述第五椭圆曲线点不是无穷远点的情况下,根据所述第五椭圆曲线点与所述原始数据确定所述第一会话密钥,以利用所述第一会话密钥与所述第二计算设备进行通信。
6.根据权利要求5所述的国密密钥协商方法,其特征在于,所述在所述第五椭圆曲线点不是无穷远点的情况下,根据所述第五椭圆曲线点与所述原始数据确定所述第一会话密钥,以利用所述第一会话密钥与所述第二计算设备进行通信,包括:
在所述第五椭圆曲线点不是无穷远点的情况下,利用密钥派生函数,根据所述第五椭圆曲线点与所述原始数据确定所述第一会话密钥,以利用所述第一会话密钥与所述第二计算设备进行通信。
7.根据权利要求1所述的国密密钥协商方法,其特征在于,所述方法还包括:
向所述第二计算设备发送所述第二椭圆曲线点,以使所述第二计算设备根据所述第二椭圆曲线点确定所述第二会话密钥,以利用所述第二会话密钥与所述第一计算设备进行通信。
8.一种国密密钥协商装置,其特征在于,所述装置包括:
第一获取模块:获取原始数据、第一随机数与第一椭圆曲线点,其中,所述第一随机数与所述第一椭圆曲线点是首次进行密钥协商时确定的,所述第一椭圆曲线点是根据所述第一随机数确定的;
第二获取模块:获取第二随机数,其中,所述第二随机数的长度小于所述第一随机数的长度;
第一确定模块:根据所述第二随机数与所述第一椭圆曲线点确定第二椭圆曲线点;
第三获取模块:在所述第一随机数、所述第二随机数、所述第一椭圆曲线点与所述第二椭圆曲线点均满足预设条件的情况下,获取第三椭圆曲线点与中间量;
第二确定模块:根据所述原始数据、所述第一随机数、所述第二随机数、所述第二椭圆曲线点、所述第三椭圆曲线点与所述中间量确定第一会话密钥,以利用所述第一会话密钥与第二计算设备进行通信。
9.一种第一计算设备,其特征在于,包括:
存储器,被配置成存储指令;以及
处理器,被配置成从所述存储器调用所述指令以及在执行所述指令时能够实现根据权利要求1至7中任一项所述的国密密钥协商方法。
10.一种机器可读存储介质,其特征在于,该机器可读存储介质上存储有指令,该指令用于使得机器执行根据权利要求1至7中任一项所述的国密密钥协商方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311862850.8A CN117811730B (zh) | 2023-12-29 | 2023-12-29 | 国密密钥协商方法、装置、计算设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311862850.8A CN117811730B (zh) | 2023-12-29 | 2023-12-29 | 国密密钥协商方法、装置、计算设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117811730A true CN117811730A (zh) | 2024-04-02 |
CN117811730B CN117811730B (zh) | 2024-06-25 |
Family
ID=90428170
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311862850.8A Active CN117811730B (zh) | 2023-12-29 | 2023-12-29 | 国密密钥协商方法、装置、计算设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117811730B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150124970A1 (en) * | 2011-11-30 | 2015-05-07 | China Iwncomm Co., Ltd. | Key negotiation method and apparatus according to sm2 key exchange protocol |
CN111010277A (zh) * | 2019-12-27 | 2020-04-14 | 北京海泰方圆科技股份有限公司 | 密钥交换方法、装置和存储介质、计算装置 |
CN116668008A (zh) * | 2023-03-09 | 2023-08-29 | 北京握奇数据股份有限公司 | 密钥的协同交换方法、装置、电子设备及介质 |
-
2023
- 2023-12-29 CN CN202311862850.8A patent/CN117811730B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150124970A1 (en) * | 2011-11-30 | 2015-05-07 | China Iwncomm Co., Ltd. | Key negotiation method and apparatus according to sm2 key exchange protocol |
CN111010277A (zh) * | 2019-12-27 | 2020-04-14 | 北京海泰方圆科技股份有限公司 | 密钥交换方法、装置和存储介质、计算装置 |
CN116668008A (zh) * | 2023-03-09 | 2023-08-29 | 北京握奇数据股份有限公司 | 密钥的协同交换方法、装置、电子设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117811730B (zh) | 2024-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110391900B (zh) | 基于sm2算法的私钥处理方法、终端及密钥中心 | |
CN109728914B (zh) | 数字签名验证方法、系统、装置及计算机可读存储介质 | |
CN108352015A (zh) | 用于基于区块链的系统结合钱包管理系统的安全多方防遗失存储和加密密钥转移 | |
CN107483191B (zh) | 一种sm2算法密钥分割签名系统及方法 | |
US11044082B2 (en) | Authenticating secure channel establishment messages based on shared-secret | |
CN106650482A (zh) | 电子文件加密解密方法、装置和系统 | |
CN109068322B (zh) | 解密方法、系统、移动终端、服务器及存储介质 | |
CN108632031B (zh) | 密钥生成装置及方法、加密装置及方法 | |
CN111970114B (zh) | 文件加密方法、系统、服务器和存储介质 | |
EP4283922A2 (en) | Computer-implemented system and method for highly secure, high speed encryption and transmission of data | |
CN113382002B (zh) | 数据请求方法、请求应答方法、数据通信系统及存储介质 | |
CN116132043B (zh) | 会话密钥协商方法、装置及设备 | |
CN110032874A (zh) | 一种数据存储方法、装置及设备 | |
US20240113885A1 (en) | Hub-based token generation and endpoint selection for secure channel establishment | |
US20180287796A1 (en) | Security key hopping | |
CN116170131B (zh) | 密文处理方法、装置、存储介质及可信执行设备 | |
CN106257859A (zh) | 一种密码使用方法 | |
CN117811730B (zh) | 国密密钥协商方法、装置、计算设备及可读存储介质 | |
CN113206739B (zh) | 组合公钥cpk的密钥生成方法、装置及存储介质 | |
CN114697001B (zh) | 一种基于区块链的信息加密传输方法、设备及介质 | |
KR101793528B1 (ko) | 무인증서 공개키 암호 시스템 | |
CN112713989B (zh) | 一种解密方法及装置 | |
CN114513302A (zh) | 一种数据加解密方法及设备 | |
CN113259097A (zh) | 基于cpk的可多态配置的密钥生成方法及装置 | |
CN114765544A (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 |