CN112926075B - 一种sm9密钥生成方法、装置、设备及存储介质 - Google Patents

一种sm9密钥生成方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN112926075B
CN112926075B CN202110326135.7A CN202110326135A CN112926075B CN 112926075 B CN112926075 B CN 112926075B CN 202110326135 A CN202110326135 A CN 202110326135A CN 112926075 B CN112926075 B CN 112926075B
Authority
CN
China
Prior art keywords
key
management
process data
fragment
matrix
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
Application number
CN202110326135.7A
Other languages
English (en)
Other versions
CN112926075A (zh
Inventor
王现方
涂彬彬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Electronics Technology Network Security Technology Co ltd
Original Assignee
Chengdu Westone Information Industry Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Chengdu Westone Information Industry Inc filed Critical Chengdu Westone Information Industry Inc
Priority to CN202110326135.7A priority Critical patent/CN112926075B/zh
Publication of CN112926075A publication Critical patent/CN112926075A/zh
Application granted granted Critical
Publication of CN112926075B publication Critical patent/CN112926075B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)

Abstract

本公开公开了一种SM9密钥生成方法、装置、设备及存储介质。该方法应用于密钥使用端,步骤包括:获取密钥片段生成参数;根据密钥片段生成参数计算使用端密钥片段;获取由密钥管理端生成的管理端密钥片段;基于使用端密钥片段以及管理端密钥片段生成满足SM9标准的结果密钥。由于密钥使用端所使用的结果密钥是由密钥使用端与密钥管理端各自的密钥片段共同生成的,因此密钥管理端仅通过自身的管理端密钥片段无法恢复得到密钥使用端的密钥,本方法相对确保了密钥使用端所使用的结果密钥的安全性。此外,本公开还提供一种SM9密钥生成装置、设备及存储介质,有益效果同上所述。

Description

一种SM9密钥生成方法、装置、设备及存储介质
技术领域
本公开涉及密码学领域,特别是涉及一种SM9密钥生成方法、装置、设备及存储介质。
背景技术
现代密码学的设计思想通常将数据的安全性归结到加密数据所用的密钥上,而密码算法往往是公开的,因此,如何安全有效的产生密钥是当前数据安全领域关注的重点问题。
在当前国密SM9基于密码算法生成密钥的过程中,密钥使用端使用的密钥通常是由密钥管理端生成并分发给密钥使用端的,因此密钥使用端并不能够参与密钥的生成过程,因此不能够自主制约密钥的生成,难以确保密钥的安全性。在目前已有的解决方案中,往往采用两方或多方密钥管理端联合的方式生成密钥,但这类解决方案仍可能存在密钥管理端之间共谋产生密钥的问题,即多个密钥管理端合谋即可恢复出用户的密钥,仍难以确保密钥的安全性。
由此可见,提供一种SM9密钥生成方法,以确保所生成密钥的安全性,是本领域技术人员需要解决的问题。
发明内容
本公开的目的是提供一种SM9密钥生成方法、装置、设备及存储介质,以确保所生成密钥的安全性。
为解决上述技术问题,本公开提供一种SM9密钥生成方法,应用于密钥使用端,包括:
获取密钥片段生成参数;
根据密钥片段生成参数计算使用端密钥片段;
获取由密钥管理端生成的管理端密钥片段;
基于使用端密钥片段以及管理端密钥片段生成满足SM9标准的结果密钥。
优选地,获取密钥片段生成参数,包括:
获取使用端私钥以及使用端随机数;
相应的,根据密钥片段生成参数计算使用端密钥片段,包括:
基于不经意传输协议,利用使用端私钥以及使用端随机数共同生成使用端过程数据,并传输至密钥管理端;
获取密钥管理端传入的基于管理端私钥以及管理端随机数生成的管理端过程数据;
基于使用端过程数据、管理端过程数据以及使用端随机数生成使用端密钥片段;
相应的,获取由密钥管理端生成的管理端密钥片段,包括:
将使用端密钥片段发送至密钥管理端;
获取由密钥管理端基于使用端密钥片段、使用端过程数据、管理端过程数据以及管理端随机数生成的管理端密钥片段。
优选地,基于不经意传输协议,利用使用端私钥以及使用端随机数共同生成使用端过程数据,并传输至密钥管理端,包括:
随机生成第一矩阵;
基于第一矩阵、使用端私钥以及使用端随机数生成第二矩阵;
将第一矩阵以及第二矩阵的列向量作为不经意传输协议的输入数据,得到使用端过程数据;
将使用端过程数据传输至密钥管理端。
优选地,在随机生成第一矩阵之前,方法还包括:
将使用端私钥以及使用端随机数分别转化为二进制形式;
相应的,第一矩阵包括第一比特矩阵,第二矩阵包括第二比特矩阵。
优选地,基于使用端密钥片段以及管理端密钥片段生成满足SM9标准的结果密钥,包括:
基于使用端密钥片段以及管理端密钥片段生成满足SM9标准的结果私钥。
此外,本公开还提供一种SM9密钥生成装置,应用于密钥使用端,包括:
参数获取模块,用于获取密钥片段生成参数;
第一片段获取模块,用于根据密钥片段生成参数计算使用端密钥片段;
第二片段获取模块,用于获取由密钥管理端生成的管理端密钥片段;
密钥生成模块,用于基于使用端密钥片段以及管理端密钥片段生成满足SM9标准的结果密钥。
优选地,参数获取模块,包括:
参数获取子模块,用于获取使用端私钥以及使用端随机数;
相应的,第一片段获取模块,包括:
协议传输模块,用于基于不经意传输协议,利用使用端私钥以及使用端随机数共同生成使用端过程数据,并传输至密钥管理端;
过程数据获取模块,用于获取密钥管理端传入的基于管理端私钥以及管理端随机数生成的管理端过程数据;
使用端片段生成模块,用于基于使用端过程数据、管理端过程数据以及使用端随机数生成使用端密钥片段;
相应的,第二片段获取模块,包括:
使用端片段发送模块,用于将使用端密钥片段发送至密钥管理端;
管理端片段获取模块,用于获取由密钥管理端基于使用端密钥片段、使用端过程数据、管理端过程数据以及管理端随机数生成的管理端密钥片段。
优选地,协议传输模块,包括:
第一矩阵生成模块,用于随机生成第一矩阵;
第二矩阵生成模块,用于基于第一矩阵、使用端私钥以及使用端随机数生成第二矩阵;
矩阵处理模块,用于将第一矩阵以及第二矩阵的列向量作为不经意传输协议的输入数据,得到使用端过程数据;
过程数据传输模块,用于将使用端过程数据传输至密钥管理端。
此外,本公开还提供一种密钥使用端设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序时实现如上述的SM9密钥生成方法的步骤。
此外,本公开还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述的密钥生成方法的步骤。
本公开所提供的SM9密钥生成方法,应用于密钥使用端,首先获取密钥片段生成参数,并根据密钥片段生成参数计算使用端密钥片段,进而获取密钥管理端生成的管理端密钥片段,并基于使用端密钥片段以及管理端密钥片段生成满足SM9标准的结果密钥。由于密钥使用端所使用的结果密钥是由密钥使用端与密钥管理端各自的密钥片段共同生成的,因此密钥管理端仅通过自身的管理端密钥片段无法恢复得到密钥使用端的密钥,相对确保了密钥使用端所使用的结果密钥的安全性。此外,本公开还提供一种SM9密钥生成装置、设备及存储介质,有益效果同上所述。
附图说明
为了更清楚地说明本公开实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本公开实施例公开的一种SM9密钥生成方法的流程图;
图2为本公开实施例公开的一种SM9密钥生成装置的结构示意图;
图3为本公开实施例公开的一种密钥使用端设备的框图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本公开保护范围。
在当前国密SM9基于密码算法生成密钥的过程中,密钥使用端使用的密钥通常是由密钥管理端生成并分发给密钥使用端的,因此密钥使用端并不能够参与密钥的生成过程,因此不能够自主制约密钥的生成,难以确保密钥的安全性。在目前已有的解决方案中,往往采用两方或多方密钥管理端联合的方式生成密钥,但这类解决方案仍可能存在密钥管理端之间共谋产生密钥的问题,即多个密钥管理端合谋即可恢复出用户的密钥,仍难以确保密钥的安全性。
为此,本公开的核心是提供一种SM9密钥生成方法,以确保所生成密钥的安全性。
为了使本技术领域的人员更好地理解本公开方案,下面结合附图和具体实施方式对本公开作进一步的详细说明。
请参见图1所示,本公开实施例公开了一种SM9密钥生成方法,应用于密钥使用端,包括:
步骤S10:获取密钥片段生成参数。
需要说明的是,本步骤中获取的密钥片段生成参数,指的是用于在后续步骤中生成密钥使用端对应的密钥片段,即使用端密钥片段所需的参数,密钥片段生成参数包括但不限于循环群、生成元参数以及随机数等。
步骤S11:根据密钥片段生成参数计算使用端密钥片段。
在获取到密钥片段生成参数之后,本步骤进一步根据密钥片段生成参数计算使用端密钥片段,使用端密钥片段用于在后续步骤中进一步根据使用端密钥片段以及密钥管理端传入的管理端密钥片段共同生成结果密钥。
步骤S12:获取由密钥管理端生成的管理端密钥片段。
本步骤是在密钥管理端中获取其生成的管理端密钥片段,用于在后续步骤中基于使用端密钥片段与管理端密钥片段共同生成结果密钥。其中,密钥管理端指的是除密钥使用端以外的,参与结果密钥生成的终端,密钥管理端的数量可以为1个或多个,应根据实际情况而定,在此不做具体限定。
步骤S13:基于使用端密钥片段以及管理端密钥片段生成满足SM9标准的结果密钥。
需要说明的是,SM9(商密9号算法)为标识密码标准,在商用密码体系中,SM9适用于互联网应用的各种新兴应用的安全保障。如基于云技术的密码服务、电子邮件安全、智能终端保护、物联网安全、云存储安全等等。本实施方式进一步提高了基于SM标准生成密钥的安全性。
在根据密钥片段生成参数计算得到使用端密钥片段,并获取到由密钥管理端生成的管理端密钥片段之后,本步骤进一步使用端密钥片段以及管理端密钥片段生成满足SM9标准的结果密钥,以此达到结果密钥由密钥管理端以及密钥使用端共同生成的目的。
本公开所提供的SM9密钥生成方法,应用于密钥使用端,首先获取密钥片段生成参数,并根据密钥片段生成参数计算使用端密钥片段,进而获取密钥管理端生成的管理端密钥片段,并基于使用端密钥片段以及管理端密钥片段生成满足SM9标准的结果密钥。由于密钥使用端所使用的结果密钥是由密钥使用端与密钥管理端各自的密钥片段共同生成的,因此密钥管理端仅通过自身的管理端密钥片段无法恢复得到密钥使用端的密钥,相对确保了密钥使用端所使用的结果密钥的安全性。
在上述实施例的基础上,作为一种优选的实施方式,基于使用端密钥片段以及管理端密钥片段生成满足SM9标准的结果密钥,包括:
基于使用端密钥片段以及管理端密钥片段生成满足SM9标准的结果私钥。
需要说明的是,本实施方式的重点在于密钥使用端基于使用端密钥片段以及管理端密钥片段生成满足SM9标准的结果密钥具体为密钥使用端的私钥,即结果私钥,结果私钥为密钥使用端对数据进行解密或签名所使用的密钥,在此基础上,应存在与结果私钥对应的公钥,用户对经过结果私钥加密的数据进行解密,或对经过结果私钥签名的数据进行验证。本实施方式进一步提高了基于分对称密钥进行加密以及签名的机制的可靠性。
在上述实施例的基础上,作为一种优选的实施方式,获取密钥片段生成参数,包括:
获取使用端私钥以及使用端随机数;
相应的,根据密钥片段生成参数计算使用端密钥片段,包括:
基于不经意传输协议,利用使用端私钥以及使用端随机数共同生成使用端过程数据,并传输至密钥管理端;
获取密钥管理端传入的基于管理端私钥以及管理端随机数生成的管理端过程数据;
基于使用端过程数据、管理端过程数据以及使用端随机数生成使用端密钥片段;
相应的,获取由密钥管理端生成的管理端密钥片段,包括:
将使用端密钥片段发送至密钥管理端;
获取由密钥管理端基于使用端密钥片段、使用端过程数据、管理端过程数据以及管理端随机数生成的管理端密钥片段。
需要说明的是,在本实施方式中,密钥使用端获取到的密钥片段生成参数具体是使用端私钥以及使用端随机数。其中,使用端私钥可以是由密钥使用端预先基于特定逻辑生成的私钥,能够唯一表征密钥使用端的身份。
在根据密钥片段生成参数计算使用端密钥片段时,具体是基于不经意传输协议,利用使用端私钥以及使用端随机数共同生成使用端过程数据,并传输至密钥管理端,进而进一步获取密钥管理端传入的基于管理端私钥以及管理端随机数生成的管理端过程数据,并基于使用端过程数据、管理端过程数据以及使用端随机数生成使用端密钥片段。其中,不经意传输协议是一种可保护隐私的双方通信协议,能使通信双方以一种选择模糊化的方式传送消息。不经意传输协议是密码学的一个基本协议,他使得服务的接收方以不经意的方式得到服务发送方输入的某些消息,这样就可以保护接收方的隐私不被发送方所知道。也就是说,本实施方式中,密钥使用端基于不经意传输协议,利用使用端随机数对使用端私钥进行了隐蔽传输,确保密钥管理端无法获悉密钥使用端的使用端私钥。另外,管理端过程数据是由密钥管理端基于管理端私钥以及管理端随机数生成的,生成管理端过程数据的意义是基于管理端随机数隐藏管理端私钥,其中,管理端私钥可以是由密钥管理端预先基于特定逻辑生成的私钥。
更进一步的,本实施方式在获取由密钥管理端生成的管理端密钥片段时,具体是先将使用端密钥片段发送至密钥管理端,进而获取由密钥管理端基于使用端密钥片段、使用端过程数据、管理端过程数据以及管理端随机数生成的管理端密钥片段。
本实施方式本质上是在密钥使用端私钥无法获悉密钥管理端的管理端私钥,且密钥管理端无法获悉密钥使用端的使用端私钥的前提下,密钥使用端与密钥管理端之间基于由使用端私钥衍生的使用端密钥片段以及由管理端私钥衍生的管理端密钥片段共同运算得到结果密钥。进一步提高了生成结果密钥过程的可靠性。
在上述实施方式的基础上,作为一种优选的实施方式,基于不经意传输协议,利用使用端私钥以及使用端随机数共同生成使用端过程数据,并传输至密钥管理端,包括:
随机生成第一矩阵;
基于第一矩阵、使用端私钥以及使用端随机数生成第二矩阵;
将第一矩阵以及第二矩阵的列向量作为不经意传输协议的输入数据,得到使用端过程数据;
将使用端过程数据传输至密钥管理端。
需要说明的是,本实施方式的重点在于,在基于不经意传输协议,利用使用端私钥以及使用端随机数共同生成使用端过程数据,并传输至密钥管理端的过程中,首先以随机的方式生成第一矩阵,也就是说,第一矩阵中每一个元素的值为随机值,在此基础上,基于第一矩阵、使用端私钥以及使用端随机数进一步生成第二矩阵,以此通过第二矩阵进一步建立第一矩阵、使用端私钥以及使用端随机数之间的关联关系,更进一步的,本实施方式将第一矩阵以及第二矩阵的列向量作为不经意传输协议的输入数据,得到使用端过程数据,相对降低了输入数据的总量,从而降低了对于不经意传输协议的调用次数,并提高了结果密钥的生成效率。
在上述实施方式的基础上,作为一种优选的实施方式,在随机生成第一矩阵之前,方法还包括:
将使用端私钥以及使用端随机数分别转化为二进制形式;
相应的,第一矩阵包括第一比特矩阵,第二矩阵包括第二比特矩阵。
需要说明的是,本实施方式中,在随机生成第一矩阵之前,先将使用端私钥以及使用端随机数分别转化为二进制形式,进而生成所包含元素均为随机二进制数的第一比特矩阵,进而基于第一比特矩阵、使用端私钥以及使用端随机数生成第二比特矩阵,将第一比特矩阵以及第二比特矩阵的列向量作为不经意传输协议的输入数据,得到使用端过程数据,最终将将使用端过程数据传输至密钥管理端。本实施方式中的第一矩阵为由二进制数元素构成的第一比特矩阵,第二矩阵为由二进制数元素构成的第二比特矩阵,进而能够确保在进行将第一比特矩阵以及第二比特矩阵的列向量作为不经意传输协议的输入数据,得到使用端过程数据过程的整体运算效率以及运算结果可靠性。进而确保所生成的结果密钥的可靠性。
为了进一步提高对于上述一些列实施例的理解,本公开还提供一种具体应用场景下的场景实施例做进一步说明。
本技术方案的思想是密钥使用端私钥的生成由密钥使用端和密钥管理端联合计算生成,通过交互通信,使得最终生成的私钥仅密钥使用端掌握,并满足SM9私钥的标准格式。
在SM9标准中,密钥使用端私钥的生成方式如下:G1和G2均为N阶循环群,N为素数;P1和P2分别为G1、G2的生成元。密钥管理端产生随机数ks∈[1,N-1]作为***主私钥,Ppub=[ks]P2作为主公钥。hid表示私钥生成函数识别符,H为杂凑函数派生的密码函数,像集为[1,N-1],设密钥使用端标识为IDA,密钥管理端计算t1=H(IDA||hid,N)+ks,t2=ks t1 -1mod N,密钥使用端私钥为dsA=[t2]P1
Figure BDA0002994733850000091
表示比特向量中比特的模2加运算。在密钥使用端和密钥管理端联合生成私钥的过程中,假定密钥使用端部分私钥为ks1∈[1,N-1],密钥管理端的主私钥为ks2∈[1,N-1],具体过程如下:
1、密钥使用端IDA生成随机数R1∈[1,N-1],密钥管理端生成随机数R2∈[1,N-1];
2、密钥管理端生成随机数ai,bi∈[1,N-1],0≤i≤255,令
Figure BDA0002994733850000092
Figure BDA0002994733850000093
3、密钥使用端将ks1的二进制表示记为α0α1...α255,R1的二进制表示记为β0β1...β255;令r=(r1,r2,......r512)=(α0α1...α255β0β1...β255);
4、密钥使用端生成两个比特矩阵T512×k=(tij),U512×k=(uij),令
Figure BDA0002994733850000094
分别表示矩阵第i行,
Figure BDA0002994733850000095
表示矩阵第j列。这两个矩阵具有以下性质,若ri=0,则
Figure BDA0002994733850000096
Figure BDA0002994733850000097
若ri=1,则
Figure BDA0002994733850000098
其中1k表示k长的全1列向量。k为正整数,与安全水平相关,可选范围为128≤k≤256。
5、密钥使用端将
Figure BDA0002994733850000099
作为k个不经意传输协议的消息输入;密钥管理端生成k长随机比特向量s,将s作为不经意传输协议的选择输入;最终密钥管理端得到矩阵Q=(qij),此时Q具有以下性质:若ri=0,则有
Figure BDA0002994733850000101
若ri=1,则有
Figure BDA0002994733850000102
这k个协议可并行进行;
6、密钥管理端将
Figure BDA0002994733850000103
发送给密钥使用端,0≤i≤511;
7、密钥使用端计算H(qi),若ri=0则计算
Figure BDA0002994733850000104
若ri=1则计算
Figure BDA0002994733850000105
这样最终的效果是:密钥使用端从
Figure BDA0002994733850000106
中选择
Figure BDA0002994733850000107
Figure BDA0002994733850000108
中选择
Figure BDA0002994733850000109
密钥使用端记
Figure BDA00029947338500001010
Figure BDA00029947338500001011
密钥管理端记
Figure BDA00029947338500001012
事实上,x1+x2=ks1R2,y1+y2=(ks2+H(IDA||hid,N))R1
8、密钥使用端将δ1=ks1R1+x1+y1发送给密钥管理端,密钥管理端将δ2=(ks2+H(IDA||hid,N))R2+x2+y2发送给密钥使用端;
9、密钥使用端计算T1=(δ12)-1R1,将[T1]P2发送给密钥管理端;
10、密钥管理端计算T2=(δ12)-1R2,将[T2]P2和ks2([T1]P2+[T2]P2)发送给密钥使用端
11、密钥使用端计算dsA=ks1([T1]P2+[T2]P2)+ks2([T1]P2+[T2]P2)作为私钥上述流程后密钥使用端最终计算的私钥为:
dsA=ks1([T1]P2+[T2]P2)+ks2([T1]P2+[T2]P2)=[(ks1+ks2)(ks1+ks2+H(IDA||hid,N))-1]P2
,这与SM9的私钥格式是一致的,此时密钥使用端私钥对应的公钥为Ppub=[ks1]P1+[ks2]P2
请参见图2所示,本公开实施例提供了一种SM9密钥生成装置200,应用于密钥使用端,包括:
参数获取模块210,用于获取密钥片段生成参数;
第一片段获取模块220,用于根据密钥片段生成参数计算使用端密钥片段;
第二片段获取模块230,用于获取由密钥管理端生成的管理端密钥片段;
密钥生成模块240,用于基于使用端密钥片段以及管理端密钥片段生成满足SM9标准的结果密钥。
作为一种优选的实施方式,参数获取模块210,包括:
参数获取子模块,用于获取使用端私钥以及使用端随机数;
相应的,第一片段获取模块220,包括:
协议传输模块,用于基于不经意传输协议,利用使用端私钥以及使用端随机数共同生成使用端过程数据,并传输至密钥管理端;
过程数据获取模块,用于获取密钥管理端传入的基于管理端私钥以及管理端随机数生成的管理端过程数据;
使用端片段生成模块,用于基于使用端过程数据、管理端过程数据以及使用端随机数生成使用端密钥片段;
相应的,第二片段获取模块230,包括:
使用端片段发送模块,用于将使用端密钥片段发送至密钥管理端;
管理端片段获取模块,用于获取由密钥管理端基于使用端密钥片段、使用端过程数据、管理端过程数据以及管理端随机数生成的管理端密钥片段。
作为一种优选的实施方式,协议传输模块,包括:
第一矩阵生成模块,用于随机生成第一矩阵;
第二矩阵生成模块,用于基于第一矩阵、使用端私钥以及使用端随机数生成第二矩阵;
矩阵处理模块,用于将第一矩阵以及第二矩阵的列向量作为不经意传输协议的输入数据,得到使用端过程数据;
过程数据传输模块,用于将使用端过程数据传输至密钥管理端。
本公开所提供的SM9密钥生成装置,应用于密钥使用端,首先获取密钥片段生成参数,并根据密钥片段生成参数计算使用端密钥片段,进而获取密钥管理端生成的管理端密钥片段,并基于使用端密钥片段以及管理端密钥片段生成满足SM9标准的结果密钥。由于密钥使用端所使用的结果密钥是由密钥使用端与密钥管理端各自的密钥片段共同生成的,因此密钥管理端仅通过自身的管理端密钥片段无法恢复得到密钥使用端的密钥,相对确保了密钥使用端所使用的结果密钥的安全性。
图3是根据一示例性实施例示出的一种密钥使用端设备300的框图。如图3所示,该密钥使用端设备300可以包括:处理器301,存储器302。该密钥使用端设备300还可以包括多媒体组件303,输入/输出(I/O)接口304,以及通信组件305中的一者或多者。
其中,处理器301用于控制该密钥使用端设备300的整体操作,以完成上述的SM9密钥生成方法中的全部或部分步骤。存储器302用于存储各种类型的数据以支持在该密钥使用端设备300的操作,这些数据例如可以包括用于在该密钥使用端设备300上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器302可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件303可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器302或通过通信组件305发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口304为处理器301和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件305用于该密钥使用端设备300与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near Field Communication,简称NFC),2G、3G或4G,或它们中的一种或几种的组合,因此相应的该通信组件305可以包括:Wi-Fi模块,蓝牙模块,NFC模块。
在一示例性实施例中,密钥使用端设备300可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的SM9密钥生成方法。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的SM9密钥生成方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器302,上述程序指令可由密钥使用端设备300的处理器301执行以完成上述的SM9密钥生成方法。
此外,本公开还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述的密钥生成方法的步骤。
本公开所提供的计算机可读存储介质,应用于密钥使用端,首先获取密钥片段生成参数,并根据密钥片段生成参数计算使用端密钥片段,进而获取密钥管理端生成的管理端密钥片段,并基于使用端密钥片段以及管理端密钥片段生成满足SM9标准的结果密钥。由于密钥使用端所使用的结果密钥是由密钥使用端与密钥管理端各自的密钥片段共同生成的,因此密钥管理端仅通过自身的管理端密钥片段无法恢复得到密钥使用端的密钥,相对确保了密钥使用端所使用的结果密钥的安全性。
以上对本公开所提供的一种SM9密钥生成方法、装置、设备及存储介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本公开原理的前提下,还可以对本公开进行若干改进和修饰,这些改进和修饰也落入本公开权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。

Claims (10)

1.一种SM9密钥生成方法,其特征在于,应用于密钥使用端,包括:
获取密钥片段生成参数;
根据所述密钥片段生成参数计算使用端密钥片段;基于传输协议,利用所述密钥片段生成参数生成使用端过程数据,并传输至密钥管理端;
获取所述密钥管理端传入的基于密钥片段生成参数生成的管理端过程数据;
基于所述使用端过程数据、所述管理端过程数据以及密钥片段生成参数生成所述使用端密钥片段;
获取由密钥管理端生成的管理端密钥片段;将所述使用端密钥片段发送至所述密钥管理端;
获取由所述密钥管理端基于所述使用端密钥片段、所述使用端过程数据、所述管理端过程数据以及所述密钥片段生成参数生成的所述管理端密钥片段;
基于所述使用端密钥片段以及所述管理端密钥片段生成满足SM9标准的结果密钥。
2.根据权利要求1所述的SM9密钥生成方法,其特征在于,所述获取密钥片段生成参数,包括:
获取使用端私钥以及使用端随机数;
相应的,所述根据所述密钥片段生成参数计算使用端密钥片段,包括:
基于不经意传输协议,利用所述使用端私钥以及所述使用端随机数共同生成使用端过程数据,并传输至所述密钥管理端;
获取所述密钥管理端传入的基于管理端私钥以及管理端随机数生成的管理端过程数据;
基于所述使用端过程数据、所述管理端过程数据以及所述使用端随机数生成所述使用端密钥片段;
相应的,所述获取由密钥管理端生成的管理端密钥片段,包括:
将所述使用端密钥片段发送至所述密钥管理端;
获取由所述密钥管理端基于所述使用端密钥片段、所述使用端过程数据、所述管理端过程数据以及所述管理端随机数生成的所述管理端密钥片段。
3.根据权利要求2所述的SM9密钥生成方法,其特征在于,所述基于不经意传输协议,利用所述使用端私钥以及所述使用端随机数共同生成使用端过程数据,并传输至所述密钥管理端,包括:
随机生成第一矩阵;
基于所述第一矩阵、所述使用端私钥以及所述使用端随机数生成第二矩阵;
将所述第一矩阵以及所述第二矩阵的列向量作为所述不经意传输协议的输入数据,得到所述使用端过程数据;
将所述使用端过程数据传输至所述密钥管理端。
4.根据权利要求3所述的SM9密钥生成方法,其特征在于,在所述随机生成第一矩阵之前,所述方法还包括:
将所述使用端私钥以及所述使用端随机数分别转化为二进制形式;
相应的,所述第一矩阵包括第一比特矩阵,所述第二矩阵包括第二比特矩阵。
5.根据权利要求1至4任意一项所述的SM9密钥生成方法,其特征在于,所述基于所述使用端密钥片段以及所述管理端密钥片段生成满足SM9标准的结果密钥,包括:
基于所述使用端密钥片段以及所述管理端密钥片段生成满足SM9标准的结果私钥。
6.一种SM9密钥生成装置,其特征在于,应用于密钥使用端,包括:
参数获取模块,用于获取密钥片段生成参数;
第一片段获取模块,用于根据所述密钥片段生成参数计算使用端密钥片段;基于传输协议,利用所述密钥片段生成参数生成使用端过程数据,并传输至密钥管理端;
获取所述密钥管理端传入的基于密钥片段生成参数生成的管理端过程数据;
基于所述使用端过程数据、所述管理端过程数据以及密钥片段生成参数生成所述使用端密钥片段;
将所述使用端密钥片段发送至所述密钥管理端;
获取由所述密钥管理端基于所述使用端密钥片段、所述使用端过程数据、所述管理端过程数据以及所述密钥片段生成参数生成的所述管理端密钥片段;
第二片段获取模块,用于获取由密钥管理端生成的管理端密钥片段;
密钥生成模块,用于基于所述使用端密钥片段以及所述管理端密钥片段生成满足SM9标准的结果密钥。
7.根据权利要求6所述的SM9密钥生成装置,其特征在于,所述参数获取模块,包括:
参数获取子模块,用于获取使用端私钥以及使用端随机数;
相应的,所述第一片段获取模块,包括:
协议传输模块,用于基于不经意传输协议,利用所述使用端私钥以及所述使用端随机数共同生成使用端过程数据,并传输至所述密钥管理端;
过程数据获取模块,用于获取所述密钥管理端传入的基于管理端私钥以及管理端随机数生成的管理端过程数据;
使用端片段生成模块,用于基于所述使用端过程数据、所述管理端过程数据以及所述使用端随机数生成所述使用端密钥片段;
相应的,所述第二片段获取模块,包括:
使用端片段发送模块,用于将所述使用端密钥片段发送至所述密钥管理端;
管理端片段获取模块,用于获取由所述密钥管理端基于所述使用端密钥片段、所述使用端过程数据、所述管理端过程数据以及所述管理端随机数生成的所述管理端密钥片段。
8.根据权利要求7所述的SM9密钥生成装置,其特征在于,所述协议传输模块,包括:
第一矩阵生成模块,用于随机生成第一矩阵;
第二矩阵生成模块,用于基于所述第一矩阵、所述使用端私钥以及所述使用端随机数生成第二矩阵;
矩阵处理模块,用于将所述第一矩阵以及所述第二矩阵的列向量作为所述不经意传输协议的输入数据,得到所述使用端过程数据;
过程数据传输模块,用于将所述使用端过程数据传输至所述密钥管理端。
9.一种密钥使用端设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至5任一项所述的SM9密钥生成方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述的密钥生成方法的步骤。
CN202110326135.7A 2021-03-26 2021-03-26 一种sm9密钥生成方法、装置、设备及存储介质 Active CN112926075B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110326135.7A CN112926075B (zh) 2021-03-26 2021-03-26 一种sm9密钥生成方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110326135.7A CN112926075B (zh) 2021-03-26 2021-03-26 一种sm9密钥生成方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN112926075A CN112926075A (zh) 2021-06-08
CN112926075B true CN112926075B (zh) 2023-01-24

Family

ID=76176164

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110326135.7A Active CN112926075B (zh) 2021-03-26 2021-03-26 一种sm9密钥生成方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN112926075B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113329386B (zh) * 2021-06-11 2023-03-31 北京智芯微电子科技有限公司 支持身份鉴权的蓝牙配对方法、安全芯片及蓝牙模块
CN113297608B (zh) * 2021-07-27 2021-11-02 北京理工大学 基于商用密码的身份匿名可搜索加密方法、装置及设备

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070067588A (ko) * 2005-12-24 2007-06-28 중앙대학교 산학협력단 다중 독립 공개키 생성 환경에서 인증된 신원기반 키 동의프로토콜
CN101340282B (zh) * 2008-05-28 2011-05-11 北京易恒信认证科技有限公司 复合公钥的生成方法
JP2010272899A (ja) * 2009-05-19 2010-12-02 Mitsubishi Electric Corp 鍵生成システム及び鍵生成方法及びブラインドサーバ装置及びプログラム
CN103812650B (zh) * 2012-11-12 2017-05-31 华为技术有限公司 信息处理方法、用户设备和加密设备
DE102015210734B4 (de) * 2014-10-31 2021-03-04 Hewlett Packard Enterprise Development Lp Verwaltung kryptographischer schlüssel
CN108418686B (zh) * 2017-11-23 2021-03-19 矩阵元技术(深圳)有限公司 一种多分布式的sm9解密方法与介质及密钥生成方法与介质
CN109067545A (zh) * 2018-08-10 2018-12-21 航天信息股份有限公司 密钥管理方法、装置及存储介质
CN109698745A (zh) * 2018-12-25 2019-04-30 歌尔科技有限公司 一种密钥管理方法、***及耳机和存储介质
CN110166239B (zh) * 2019-06-04 2023-01-06 成都卫士通信息产业股份有限公司 用户私钥生成方法、***、可读存储介质及电子设备
CN111010276A (zh) * 2019-10-25 2020-04-14 武汉大学 一种多方联合sm9密钥生成、密文解密方法与介质
CN111740828B (zh) * 2020-07-29 2021-02-12 北京信安世纪科技股份有限公司 一种密钥生成方法以及装置、设备、加解密方法
CN111901111B (zh) * 2020-08-06 2023-07-25 成都卫士通信息产业股份有限公司 Sm9密钥生成方法、装置、***及可读存储介质
CN112003696B (zh) * 2020-08-25 2023-03-31 成都卫士通信息产业股份有限公司 Sm9密钥生成方法、***、电子设备、装置及存储介质
CN112241527B (zh) * 2020-12-15 2021-04-27 杭州海康威视数字技术股份有限公司 物联网终端设备的密钥生成方法、***及电子设备
CN112511566B (zh) * 2021-02-02 2022-08-26 北京信安世纪科技股份有限公司 Sm9算法无证书机制签名密钥生成方法、设备及存储介质

Also Published As

Publication number Publication date
CN112926075A (zh) 2021-06-08

Similar Documents

Publication Publication Date Title
CN107196763B (zh) Sm2算法协同签名及解密方法、装置与***
CN112003696B (zh) Sm9密钥生成方法、***、电子设备、装置及存储介质
US10511581B2 (en) Parallelizable encryption using keyless random permutations and authentication using same
CN112906038B (zh) 基于sm9密钥的门限化处理方法、装置、设备及存储介质
CN109450640B (zh) 基于sm2的两方签名方法及***
CN112906039B (zh) 一种无证书分布式签名方法、装置、介质和电子设备
CN112926075B (zh) 一种sm9密钥生成方法、装置、设备及存储介质
CN111404952B (zh) 变电站数据加密传输方法、装置、计算机设备和存储介质
US20220006615A1 (en) Computer-implemented system and method for distributing shares of digitally signed data
US20180302220A1 (en) User attribute matching method and terminal
Sengupta et al. Message mapping and reverse mapping in elliptic curve cryptosystem
US20210367772A1 (en) Computer implemented system and method for sharing a common secret
CN113300999B (zh) 信息处理方法、电子设备和可读存储介质
KR20120013415A (ko) 리셋 가능한 변조 방지 하드웨어 토큰을 이용한 효과적인 보안 함수 평가 방법
CN114257366A (zh) 信息同态处理方法、装置、设备及计算机可读存储介质
CN112398646B (zh) 理想格上具有短公共参数的身份基加密方法及***
CN112926074B (zh) 一种sm9密钥门限化生成方法、装置、设备及存储介质
CN114050897B (zh) 一种基于sm9的异步密钥协商方法及装置
US11727125B2 (en) Emergent language based data encryption
Liu et al. Quantum‐resistant anonymous identity‐based encryption with trable identities
CN107872312A (zh) 对称密钥动态生成方法、装置、设备及***
CN113381850B (zh) 一种sm9用户密钥生成方法、装置、设备及存储介质
AlDerai et al. A Study of Image Encryption/Decryption by Using Elliptic Curve Cryptography ECC
CN115001741B (zh) 一种数据加密方法及相关组件
CN110958115B (zh) 基于sm9白盒的数字签名装置、方法、存储介质及设备

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
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: No. 333, Yunhua Road, high tech Zone, Chengdu, Sichuan 610041

Patentee after: China Electronics Technology Network Security Technology Co.,Ltd.

Address before: No. 333, Yunhua Road, high tech Zone, Chengdu, Sichuan 610041

Patentee before: CHENGDU WESTONE INFORMATION INDUSTRY Inc.