CN111901111B - Sm9密钥生成方法、装置、***及可读存储介质 - Google Patents

Sm9密钥生成方法、装置、***及可读存储介质 Download PDF

Info

Publication number
CN111901111B
CN111901111B CN202010784021.2A CN202010784021A CN111901111B CN 111901111 B CN111901111 B CN 111901111B CN 202010784021 A CN202010784021 A CN 202010784021A CN 111901111 B CN111901111 B CN 111901111B
Authority
CN
China
Prior art keywords
private key
random number
sub
key
ciphertext
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
CN202010784021.2A
Other languages
English (en)
Other versions
CN111901111A (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.)
Chengdu Westone Information Industry Inc
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 CN202010784021.2A priority Critical patent/CN111901111B/zh
Publication of CN111901111A publication Critical patent/CN111901111A/zh
Application granted granted Critical
Publication of CN111901111B publication Critical patent/CN111901111B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Power Engineering (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Selective Calling Equipment (AREA)
  • Lock And Its Accessories (AREA)

Abstract

本公开涉及一种SM9密钥生成方法、装置、***及可读存储介质。SM9密钥生成方法包括:根据目标用户的ID和第一主私钥,利用第一随机数、第二随机数与多个从密管中心进行交互通信,以生成与SM9算法的格式对应的第一子私钥;其中,从密管中心是根据第二主私钥,利用第三随机数、第四随机数进行交互通信的密管中心;将第一子私钥发送至目标用户,以便目标用户根据第一子私钥与多个从密管中心的多个第二子私钥合成私钥。可知,本公开提供的SM9密钥生成方法保证了第一主私钥的安全,实现了最终私钥只有目标用户掌握。应用了该SM9密钥生成方法的SM9密钥生成装置、***及可读存储介质也具有相同的有益效果。

Description

SM9密钥生成方法、装置、***及可读存储介质
技术领域
本公开涉及密钥生成技术领域,特别涉及一种SM9密钥生成方法、装置、***及可读存储介质。
背景技术
为了使信息能够安全的传输,相关技术人员发明了加解密技术,在公钥密码体制中,加密所用的公钥是公开的,任何人都可以利用公钥对数据进行加密算法,而解密时采用与公钥对应的私钥进行解密。因此,如何安全有效的管理密钥是个重要的问题。在现有SM9相关技术中,用户的私钥由密管中心的主私钥生成,密管中心掌握了***中所有用户的私钥,一旦主私钥泄露后,所有用户的私钥都泄露,安全风险高。
因此,如何提供一种解决上述技术问题的方案是本领域技术人员目前需要解决的问题。
发明内容
本公开的目的是提供一种SM9密钥生成方法、SM9密钥生成装置、***及计算机可读存储介质,采取多个密管中心交互通信生成对应的子私钥并发送至目标用户,实现了密钥只有目标用户掌握,在整个交互过程中,用户不需要参与交互,只需要被动接受私钥份额即可,提高了私钥的安全性。
根据本公开实施例的第一方面,提供一种SM9密钥生成方法,所述SM9密钥生成方法包括:
根据目标用户的ID和第一主私钥,利用第一随机数、第二随机数与多个从密管中心进行交互通信,以生成与SM9算法的格式对应的第一子私钥;其中,所述从密管中心是根据第二主私钥,利用第三随机数、第四随机数进行所述交互通信的密管中心;
将所述第一子私钥发送至所述目标用户,以便所述目标用户根据所述第一子私钥与多个所述从密管中心的多个第二子私钥合成私钥。
可选的,所述根据目标用户的ID和第一主私钥,利用第一随机数、第二随机数与多个从密管中心进行交互通信,以生成与SM9算法的格式对应的第一子私钥,包括:
根据所述目标用户的所述ID和所述第一主私钥,利用同态加密算法的公钥对预设变量记为Hash(ID||hid,N)+ks1加密,得到第一密文;其中,ks1是所述第一主私钥;
获取各个所述从密管中心的第二密文;其中,所述第二密文是所述从密管中心利用所述公钥对所述第二主私钥加密得到的密文;
根据所述第一随机数、所述第二密文、利用所述公钥对所述第二随机数进行加密得到的第一随机密文,得到各个第一临时变量,对应的,并获取所述从密管中心的根据所述第三随机数、所述第一密文、利用所述公钥对所述第四随机数进行加密得到的第二随机密文,得到第二临时变量;
对各个所述第二临时变量进行解密,得到各个第一明文;
基于所述SM9算法的格式利用各个所述第一明文、所述第一随机数、所述第二随机数、所述第一主私钥,得到所述第一子私钥。
可选的,所述同态加密算法是Palillier算法。
可选的,所述基于所述SM9算法的格式利用各个所述第一明文、所述第一随机数、所述第二随机数、所述第一主私钥,得到所述第一子私钥,包括:
根据各个所述第一明文、所述第一随机数、各个所述第二随机数、所述预设变量进行计算,得到第一中间数;
获取所述从密管中心通过各个第二明文、所述第三随机数、所述第四随机数、所述第二主私钥进行计算得到的第二中间数;其中,所述第二明文是所述从密管中心对所述第一临时变量解密得到的明文;
根据所述第一中间数、所述第二中间数、所述第一随机数得到第三中间数,并利用所述第三中间数、所述第二密文、利用所述公钥对第五随机数得到的第三随机密文,得到第五中间数,获取所述从密管中心的第六中间数,其中,所述第六中间数是利用第四中间数、主密管中心发送的利用所述公钥与所述第一主私钥得到的第三密文、利用所述公钥对第六随机数得到的数据,所述第四中间数是根据所述第一中间数、所述第二中间数、所述第三随机数得到数据;
利用对所述第六中间数解密得到的第三明文、所述第三中间数、所述第五随机数、所述第一主私钥、生成元得到所述第一子私钥;
对应的,所述第二子私钥是所述从密管中心根据所述第四中间数、对所述第五中间数解密得到的第四明文、所述第六随机数、所述第二主私钥、所述生成元得到子私钥。
可选的,所述根据所述目标用户的ID和第一主私钥,利用同态加密算法的公钥对预设变量记为Hash(ID||hid,N)+ks1加密,得到第一密文之前,包括:
判断所述预设变量是否等于0;
若等于0,则重新确定所述第一主私钥;
若不等于0,则执行所述根据所述目标用户的ID和所述第一主私钥,利用所述同态加密算法的所述公钥对所述预设变量记为Hash(ID||hid,N)+ks1加密,得到第一密文的步骤。
可选的,所述根据目标用户的ID和第一主私钥,利用第一随机数、第二随机数与多个从密管中心进行交互通信,以生成与SM9算法的格式对应的第一子私钥之后,还包括:
判断所述第一子私钥是否与所述SM9算法的格式相对应;
若所述第一子私钥对应于所述SM9算法的格式,则将所述第一子私钥发送至所述目标用户。
根据本公开实施例的第二方面,提供一种SM9密钥生成装置,所述SM9密钥生成装置包括:
第一子私钥生成模块,用于根据目标用户的ID和第一主私钥,利用第一随机数、第二随机数与多个从密管中心进行交互通信,以生成与SM9算法的格式对应的第一子私钥;其中,所述从密管中心是根据第二主私钥,利用第三随机数、第四随机数进行所述交互通信的密管中心;
第一子私钥发送模块,用于将所述第一子私钥发送至所述目标用户,以便所述目标用户根据所述第一子私钥与多个所述从密管中心的多个第二子私钥合成私钥。
可选的,所述第一子私钥生成模块包括:
第一密文获得单元,用于根据所述目标用户的所述ID和所述第一主私钥,利用同态加密算法的公钥对预设变量记为Hash(ID||hid,N)+ks1加密,得到第一密文;其中,ks1是所述第一主私钥;
第二密文获取单元,用于获取各个所述从密管中心的第二密文;其中,所述第二密文是所述从密管中心利用所述公钥对所述第二主私钥加密得到的密文;
临时变量获取单元,用于根据所述第一随机数、所述第二密文、利用所述公钥对所述第二随机数进行加密得到的第一随机密文,得到各个第一临时变量,对应的,并获取所述从密管中心的根据所述第三随机数、所述第一密文、利用所述公钥对所述第四随机数进行加密得到的第二随机密文,得到第二临时变量;
解密单元,用于对各个所述第二临时变量进行解密,得到各个第一明文;
第一子私钥生成单元,用于基于所述SM9算法的格式利用各个所述第一明文、所述第一随机数、所述第二随机数、所述第一主私钥,得到所述第一子私钥。
可选的,所述同态加密算法是Palillier算法。
可选的,第一子私钥生成单元包括:
第一中间数获得子单元,用于根据各个所述第一明文、所述第一随机数、各个所述第二随机数、所述预设变量进行计算,得到第一中间数;
第二中间数获得子单元,用于获取所述从密管中心通过各个第二明文、所述第三随机数、所述第四随机数、所述第二主私钥进行计算得到的第二中间数;其中,所述第二明文是所述从密管中心对所述第一临时变量解密得到的明文;
第五中间数和第六中间数获取子单元,用于根据所述第一中间数、所述第二中间数、所述第一随机数得到第三中间数,并利用所述第三中间数、所述第二密文、利用所述公钥对第五随机数得到的第三随机密文,得到第五中间数,获取所述从密管中心的第六中间数,其中,所述第六中间数是利用第四中间数、主密管中心发送的利用所述公钥与所述第一主私钥得到的第三密文、利用所述公钥对第六随机数得到的数据,所述第四中间数是根据所述第一中间数、所述第二中间数、所述第三随机数得到数据;
第一子私钥生成子单元,用于利用对所述第六中间数解密得到的第三明文、所述第三中间数、所述第五随机数、所述第一主私钥、生成元得到所述第一子私钥。
可选的,所述第一子私钥生成模块还包括:
判断单元,用于判断所述预设变量是否等于0;
第一执行单元,用于在所述预设变量等于0时,则重新确定所述第一主私钥;
第二执行单元,用于在所述预设变量不等于0时,则执行所述根据所述目标用户的ID和所述第一主私钥,利用所述同态加密算法的所述公钥对所述预设变量记为Hash(ID||hid,N)+ks1加密,得到第一密文的步骤。
可选的,所述SM9密钥生成装置还包括:
判断模块,用于判断所述第一子私钥是否与所述SM9算法的格式相对应;
发送模块,用于若所述第一子私钥符合所述SM9算法的格式,则将所述第一子私钥发送至所述目标用户。
根据本公开实施例的第三方面,提供一种SM9密钥生成***,包括:
主密管中心,用于根据目标用户的ID和第一主私钥,利用第一随机数、第二随机数与多个从密管中心进行交互通信;将所述第一子私钥发送至所述目标用户;
多个所述从密管中心,用于根据第二主私钥利用第三随机数、第四随机数与除当前所述从密管中心外的其他密管中心进行所述交互通信,产生当前第二子私钥,将当前所述第二子私钥发送至所述目标用户;
所述目标用户,用于根据接收到的所述第一子私钥和各个所述第二子私钥生成私钥。
可选的,所述主密管中心与多个所述从密管中心设置在不同设备中。
根据本公开实施例的第四方面,提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述的SM9密钥生成方法的步骤。
通过上述技术方案可知,本公开提供一种SM9密钥生成方法,可以包括以下有益效果,本公开采用主密管中心和多个从密管中心交互通信,生成第一子私钥,并发送至目标用户,以便目标用户根据第一子私钥和多个第二子私钥合成私钥,实现了密钥只有目标用户掌握,提高了私钥的安全性;在多个密管中心交互通信过程中,主密管中心根据目标用户ID和第一主私钥,利用第一随机数、第二随机数与多个从密管中心进行信息交互,保证了第一主私钥的安全,实现了最终私钥只有目标用户掌握,在整个交互过程中,用户不需要参与交互,只需要被动接受私钥份额即可,提高了私钥的安全性。进一步的,在主密管中心与多个从密管中心进行交互通信时,利用第一随机数、第三随机数对主密管中心的第一主私钥、从密管中心的第二主私钥在加密过程中进行保护,第二随机数、第四随机数对第一随机数和第三随机数在加密过程中进行保护,因此,在交互通信过程中提高了第一主私钥、第二主私钥的安全性,最终将第一子私钥发送至目标用户,目标用户根据第一子私钥和多个第二子私钥合成私钥,实现了只有目标用户能够得到完整的私钥,而主密管中心和从密管中心只能掌握自己的主私钥,避免了当部分密管中心丢失主私钥后,不影响私钥的安全性。本公开还同时提供了一种SM9密钥生成装置、SM9密钥生成***及计算机可读存储介质也具有相同的有益效果,在此不再赘述。
附图说明
为了更清楚地说明本公开实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本公开实施例提供的一种SM9密钥生成方法的流程图;
图2为本公开实施例提供的另一种SM9密钥生成方法的流程图;
图3为本公开实施例提供的另一种SM9密钥生成方法的流程图;
图4为本公开实施例提供的一种密钥生成示意图;
图5为本公开实施例提供的另一种SM9密钥生成方法的流程图;
图6为本公开实施例提供的一种SM9密钥生成装置的示意图;
图7为本公开实施例提供的第一子私钥生成模块610的示意图;
图8为本公开实施例提供的一种SM9密钥生成***的示意图;
图9是根据一示例性实施例示出的一种电子设备900的框图。
具体实施方式
本公开的核心是提供一种SM9密钥生成方法、装置、***以及计算机可读存储介质,采取多个密管中心交互通信生成对应的子私钥并发送至目标用户,实现了密钥只有目标用户掌握,提高了私钥的安全性。
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本公开保护的范围。
SM9相关技术中私钥的安全风险较高,为解决上述技术问题本公开提供一种SM9密钥生成方法,具体请参考图1,图1为本公开实施例提供的一种SM9密钥生成方法的流程图,包括:
S101、根据目标用户的ID和第一主私钥,利用第一随机数、第二随机数与多个从密管中心进行交互通信,以生成与SM9算法的格式对应的第一子私钥;其中,从密管中心是根据第二主私钥,利用第三随机数、第四随机数进行交互通信的密管中心。
本实施例涉及多个密管中心,包括主密管中心和多个从密管中心。可以理解的是,主密管中心和多个第二密管可以设置在不同设备中,也可以设置在同一个设备中,设置其中一定数量的密管中心可以设置在相同的设备中,其他的密管中心设置在不同的设备中,用户可根据实际需求进行设置,只要是能够满足本公开的目的即可,本实施例不再进行限定。
目标用户ID指的是目标用户的身份标识。一般的SM9算法是密管中心产生随机数作为主私钥ks,然后计算G2中的元素P=[ks]P2作为主公钥,密管中心选择并公开一个字节标识的私钥生成函数标识符hid。因此本公开根据SM9算法提供一中SM9密钥生成方法通过多个密管中心间的交互通信,以保证密钥的安全。可以理解的是,本实施例提供的主密管中心和从密管中心的交互通信方式最终得到的第一子私钥要满足SM9算法的格式。由于要保证主私钥,包括主密管中心产生的第一主私钥和从密管中心产生的第二主私钥的安全性,不被其他的密管中心所得到,因此在主密管中心与多个密管中心进行交互的过程中,为保证第一主私钥和各个第二主私钥的安全,因此本公开采用主密管中心利用第一随机数、第二随机数与多个从密管中心进行交互通信,从密管中心是根据第二主私钥利用第三随机数、第四随机数进行交互通信的密管中心;第一随机数用于保护第一主私钥、第三随机数用于保护第二主私钥,第二随机数用于保护第一随机数,第四随机数用于保护第三随机数,在此过程中,避免了第一主私钥第二主私钥的泄露。本步骤最终生成与SM9算法的格式对应的第一子私钥。本实施例不对交互过程进行限定,用户可根据实际需求进行选择。
以从密管中心的数量是一个为例,同态加密算法是加法同态加密算法,加法同态加密算法包括加法同态加密算法和减法同态加密算法,当同态加密算法是加法同态加密算法中的加法同态加密算法时,在根据目标用户的ID和第一主私钥,利用加法同态加密算法的公钥对预设变量记为Hash(ID||hid,N)+ks1加密,得到第一密文E(Hash(ID||hid,N)+ks1);其中,ks1是第一主私钥;获取各个从密管中心的第二密文记为E(ks2);其中,第二密文是从密管中心利用公钥对第二主私钥ks2加密得到的密文;根据第一随机数记为α1、第二密文E(ks2)、利用公钥对第二随机数β1进行加密得到的第一随机密文E(β1),得到各个第一临时变量,此时,第一临时变量可以是α1*E(ks2)+E(β1),当然也可以引入其他随机函数κ1,并对其利用公钥进行加密,得到E(κ1),此时,第一临时变量为α1*E(ks2)+E(β1)+E(κ1),对应的,并获取从密管中心的根据第三随机数α2、第一密文E(Hash(ID||hid,N)+ks1)、利用公钥对第四随机数β2进行加密得到的第二随机密文E(β2),得到第二临时变量,对应与上述第一临时变量,第二临时变量可以是α2*E(Hash(ID||hid,N)+ks1)+E(β2)或α2*E(Hash(ID||hid,N)+ks1)+E(β2)+E(κ2);对各个第二临时变量进行解密,得到各个第一明文α2*(Hash(ID||hid,N)+ks1)+β2或α2*(Hash(ID||hid,N)+ks1)+β22;基于SM9算法的格式利用各个第一明文、第一随机数、第二随机数、第一主私钥,得到第一子私钥。主密管中心与多个从密管中心合成得到的私钥的格式符合[ks*(Hash(ID||hid,N)+ks)-1]P1,其中ks是总主私钥的集合,当主密管中心的主私钥为ks1,从密管中心的主私钥是ks2,则ks=ks1+ks2;当主密管中心的主私钥为ks1,从密管中心的主私钥是ks2、ks3,则ks=ks1+ks2+ks3;当主密管中心的主私钥为ks1,从密管中心的主私钥是ks2、ks3、ks4,则ks=ks1+ks2+ks3+ks4
同态加密算法是加法同态加密算法中的减法同态加密算法时,利用减法同态算法进行主密管中心与从密管中心之间的交互处理,具体处理过程请参考上述加法同态算法,例如,在根据目标用户的ID和第一主私钥,利用减法同态加密算法的公钥对预设变量记为Hash(ID||hid,N)+ks1加密,得到第一密文E(Hash(ID||hid,N)+ks1);其中,ks1是第一主私钥;获取各个从密管中心的第二密文记为E(ks2);其中,第二密文是从密管中心利用公钥对第二主私钥ks2加密得到的密文;根据第一随机数记为α1、第二密文E(ks2)、利用公钥对第二随机数β1进行加密得到的第一随机密文E(β1),得到各个第一临时变量,此时,第一临时变量可以是α1*E(ks2)-E(β1),当然也可以引入其他随机函数κ1,并对其利用公钥进行加密,得到E(κ1),此时,第一临时变量为α1*E(ks2)-E(β1)-E(κ1),对应的,并获取从密管中心的根据第三随机数α2、第一密文E(Hash(ID||hid,N)+ks1)、利用公钥对第四随机数β2进行加密得到的第二随机密文E(β2),得到第二临时变量,对应与上述第一临时变量,第二临时变量可以是α2*E(Hash(ID||hid,N)+ks1)-E(β2)或α2*E(Hash(ID||hid,N)+ks1)-E(β2)-E(κ2);对各个第二临时变量进行解密,得到各个第一明文α2*(Hash(ID||hid,N)+ks1)-β2或α2*(Hash(ID||hid,N)+ks1)-β22。当然,也可以利用全同态算法,例如Gentry算法,具体的用户可自定义设置,只要在交互通信过程中,主密管中心与从密管中心根据目标用户的ID和第一主私钥,利用第一随机数、第二随机数与多个从密管中心进行交互通信,得到对应的子私钥,主密管中心与多个从密管中心合成得到的私钥的格式符合下述格式:
[ks*(Hash(ID||hid,N)+ks)-1]P1。
S102、将第一子私钥发送至目标用户,以便目标用户根据第一子私钥与多个从密管中心的多个第二子私钥合成私钥。
主密管中心将第一子私钥发送至目标用户,多个从密管中心将对应的第二子私钥发送至目标用户,此时,目标用户得到各个密管中心发送的对应的子私钥,目标用户将其合成,最终生成私钥。
基于上述技术方案,本实施例提供的SM9密钥生成方法,采用主密管中心和多个从密管中心交互通信,生成第一子私钥,并发送至目标用户,以便目标用户根据第一子私钥和多个第二子私钥合成私钥,实现了密钥只有目标用户掌握,提高了私钥的安全性;在多个密管中心交互通信过程中,主密管中心根据目标用户ID和第一主私钥,利用第一随机数、第二随机数与多个从密管中心进行信息交互,保证了第一主私钥的安全,实现了最终私钥只有目标用户掌握,在整个交互过程中,用户不需要参与交互,只需要被动接受私钥份额即可,提高了私钥的安全性。
基于上述实施例,本实施例提供一种SM9密钥生成方法,通过具体的主密管中心和多个从密管中心进行交互实现私钥的安全性,具体请参考图2,图2为本公开实施例提供的另一种SM9密钥生成方法的流程图,具体包括:
S201、根据目标用户的ID和第一主私钥,利用同态加密算法的公钥对预设变量记为Hash(ID||hid,N)+ks1加密,得到第一密文。
其中,ks1是第一主私钥。主密管中心产生随机数作为第一主私钥ks1,同时计算G2中的元素P=[ks]P2作为主公钥,密管中心选择并公开一个字节标识的私钥生成函数标识符hid。以E()表示同态加密算法的公钥的加密算法结果,其中,第一密文可以是E(Hash(ID||hid,N)+ks1),当然也可以在上述基础上增加新的参数例如新的随机数,只要保证能够实现本实施例的目的即可。
进一步的,根据目标用户的ID和第一主私钥ks1利用同态加密算法的公钥对预设变量记为Hash(ID||hid,N)+ks1加密,得到第一密文之前,包括:判断预设变量是否等于0;若等于0,则重新确定第一主私钥;若不等于0,则执行根据上述目标用户的ID和第一主私钥ks1利用同态加密算法的公钥对预设变量记为Hash(ID||hid,N)+ks1加密,得到第一密文步骤。
当预设变量是0时,则重新产生第一主私钥,计算并公开第一主公钥,以便保证第一子私钥生成的准确性。
进一步的,同态加密算法是Palillier算法,当然也可以是其他的加法同态加密算法,值得注意的是,加法同态加密算法是加法同态加密算法和减法同态加密算法的总称。
S202、获取各个从密管中心的第二密文;其中,第二密文是从密管中心利用公钥对第二主私钥加密得到的密文。
其中,第二密文是从密管中心利用同态加密算法的公钥对第二主私钥加密得到的密文。值得注意的是,在整个主密管中心和多个从密管中心的交互过程中,存在数据交互的对称性。同态加密算法与主密管中心的同态算法加密一致。第二密文的获得与S201步骤中的第一密文的获得相对应,可以是得到E(ks2),其中ks2是第二主私钥。
S203、根据第一随机数、第二密文、利用公钥对第二随机数进行加密得到的第一随机密文,得到各个第一临时变量,对应的,并获取从密管中心的根据第三随机数、第一密文、利用公钥对第四随机数进行加密得到的第二随机密文,得到第二临时变量。
第一随机数设为α1,第二随机数设为β1,对第二密文进行保护,得到α1*E(ks2)+E(β1),对应的从密管中心对第一密文进行保护得到α2*E(Hash(ID||hid,N)+ks1)+E(β2),当然还有其他的从密管中心按照当前密管中心的保护方法对除自己以外的密管中心的第二密文进行保护以实现最终的保护第一主私钥和各个第二主私钥的目的。
S204、对各个第二临时变量进行解密,得到各个第一明文。
相应的,对第二临时变量进行解密得到第一明文α1*ks21,可知,此时主密管中心得到的第一明文中第二主私钥被第一随机数和第二随机数保护。
S205、基于SM9算法的格式利用各个第一明文、第一随机数、第二随机数、第一主私钥,得到第一子私钥。
此时根据明文和第一随机数、第二随机数、第一主私钥进行计算,最终得到与SM9算法格式对应的子私钥。上述对应指的是,主密管中心与多个从密管中心合成得到的私钥的格式符合[ks*(Hash(ID||hid,N)+ks)-1]P1。具体的计算过程,本实施例不再进行限定,只要能够实现本实施例的目的即可。
S206、将第一子私钥发送至目标用户,以便目标用户根据第一子私钥与多个从密管中心的多个第二子私钥合成私钥。
值得注意的是,在上述计算过程中用户可以根据实际需求在计算过程中增减参数以实现本公开的目的,用户可自行调节,本公开不再进行限定。
基于上述技术方案,本实施例提供的SM9密钥生成方法,在主密管中心与多个从密管中心进行交互通信时,利用第一随机数、第三随机数对主密管中心的第一主私钥、从密管中心的第二主私钥在加密过程中进行保护,第二随机数、第四随机数对第一随机数和第三随机数在加密过程中进行保护,因此,在交互通信过程中提高了第一主私钥、第二主私钥的安全性,最终将第一子私钥发送至目标用户,目标用户根据第一子私钥和多个第二子私钥合成私钥,实现了只有目标用户能够得到完整的私钥,而主密管中心和从密管中心只能掌握自己的主私钥,避免了当部分密管中心丢失主私钥后,不影响私钥的安全性。
基于上述实施例,本实施例提供一种SM9密钥生成方法,通过具体的主密管中心和多个从密管中心进行交互实现私钥的安全性,具体请参考图3,图3为本公开实施例提供的另一种SM9密钥生成方法的流程图,具体包括:
S301、根据目标用户的ID和第一主私钥,利用同态加密算法的公钥对预设变量记为Hash(ID||hid,N)+ks1加密,得到第一密文。
其中,ks1是第一主私钥。
S302、获取各个从密管中心的第二密文;其中,第二密文是从密管中心利用公钥对第二主私钥加密得到的密文。
S303、根据第一随机数、第二密文、利用公钥对第二随机数进行加密得到的第一随机密文,得到各个第一临时变量,对应的,并获取从密管中心的根据第三随机数、第一密文、利用公钥对第四随机数进行加密得到的第二随机密文,得到第二临时变量。
S304、对各个第二临时变量进行解密,得到各个第一明文。
S305、根据各个第一明文、第一随机数、各个第二随机数、预设变量进行计算,得到第一中间数。
S306、获取从密管中心通过各个第二明文、第三随机数、第四随机数、第二主私钥进行计算得到的第二中间数;其中,第二明文是从密管中心对第一临时变量解密得到的明文。
S307、根据第一中间数、第二中间数、第一随机数得到第三中间数,并利用第三中间数、第二密文、利用公钥对第五随机数得到的第三随机密文,得到第五中间数,获取从密管中心的第六中间数。
其中,第六中间数是利用第四中间数、主密管中心发送的利用公钥与第一主私钥得到的第三密文、利用公钥对第六随机数得到的数据,第四中间数是根据第一中间数、第二中间数、第三随机数得到数据。
S308、利用对第六中间数解密得到的第三明文、第三中间数、第五随机数、第一主私钥、生成元得到第一子私钥。
对应的,第二子私钥是从密管中心根据第四中间数、对第五中间数解密得到的第四明文、第六随机数、第二主私钥、生成元得到子私钥。
S309、将第一子私钥发送至目标用户,以便目标用户根据第一子私钥与多个从密管中心的多个第二子私钥合成私钥。
第二子私钥是从密管中心根据利用对第五中间数解密得到的第四明文、第四中间数、第六随机数、第二主私钥、生成元得到子私钥。
基于实施例3,本公开提供一种具体的SM9密钥生成方法,当从密管中心是一个密管中心时,请参考图4,图4为本公开实施例提供的一种密钥生成示意图,具体包括:
E()为加法同态加密算法的公钥算法,P1为生成元,[KS1]P1+[KS2]P1为私钥记为ds,FN为包含N个元素的有限域,N为循环群G1、G2、GT的阶,hid表示签名私钥生成函数的识别符,P1是表示群G1的生成元;用户A为目标用户。
KGC1为主密管中心,α1为第一随机数,β1为第二随机数,ks1为第一子私钥,Hash(ID||hid,N)+ks1为预设变量,E(Hash(ID||hid,N)+ks1)为第一密文,E(β1)为第一随机密文,α1*E(ks2)+E(β1)为第一临时变量,α2*(Hash(ID||hid,N)+ks1)+β2为第一明文,α2(Hash(ID||hid,N)+ks1)+β21*(Hash(ID||hid,N)+ks1)-β1第一中间数记为γ1,(γ12)-11为第三中间数记为δ1,ε1为第五随机数,E(ε1)为第三随机密文,δ1*E(ks2)+E(ε1)为第五中间数,为δ2*ks12为第三明文,P1*(δ1*ks12*ks121)为第一子私钥记为[KS1]P1
KGC2为从密管中心,α2为第三随机数,β2为第四随机数,ks2为第二子私钥,E(ks2)为第二密文,E(β2)为第二随机密文,α2*E(Hash(ID||hid,N)+ks1)+E(β2)为第二临时变量,α1*ks21为第二明文,α1*ks212*ks22为第二中间数记为γ2,(γ12)-12为第四中间数记为δ2,ε2第六随机数,δ2*E(ks1)+E(ε2)为第六中间数,E(ks1)为第三密文,δ1*ks21为第四明文,P1*(δ1*ks22*ks212)为第二子私钥记为[KS2]P1
S1、KGC1随机选择α1∈FN,KGC2随机选择α2∈FN;KGC1利用加法同态加密算法的公钥对Hash(ID||hid,N)+ks1加密得到E(Hash(ID||hid,N)+ks1)并将其发送给KGC2。KGC2利用加法同态加密算法的公钥对ks2加密得到E(ks2)并将其发送给KGC1
S2、KGC1随机选择β1∈FN,将α1*E(ks2)+E(β1)发送给KGC2
KGC2随机选择β2∈FN,将α2*E(Hash(ID||hid,N)+ks1)+E(β2)发送给KGC1
S3、KGC1解密得到α2*(Hash(ID||hid,N)+ks1)+β2,计算第一中间数γ1即α2(Hash(ID||hid,N)+ks1)+β21*(Hash(ID||hid,N)+ks1)-β1,并将γ1发送给KGC2
KGC2解密得到α1*ks21,计算第二中间数γ2即α1*ks212*ks22,并将γ2发送给KGC1
S4、KGC1计算δ1即(γ12)-11,随机选择ε1∈FN,并将δ1*E(ks2)+E(ε1)和E(ks1)发给KGC2
KGC2计算δ2即(γ12)-12,随机选择ε2∈FN,并将δ2*E(ks1)+E(ε2)发给KGC1
S5、KGC1计算第一子私钥P1*(δ1*ks12*ks121),并将第一子私钥即[KS1]P1发送给用户A;
KGC2计算第二子私钥P1*(δ1*ks22*ks212),并将第二子私钥即[KS2]P1发送给用户A。
S6、用户A得到自己的私钥ds即[KS1]P1+[KS2]P1
经过上述SM9密钥生成方法可知,目标用户的私钥为:
ds=[KS1]P1+[KS2]P1=[(ks1+ks2)(Hash(ID||hid,N)+ks1+ks2)-1]P1
此时,公钥为:
[ks1]P2+[ks2]P2=[(ks1+ks2)]P2
私钥与SM9标准签名保持一致。并且,目标用户的私钥仅自己掌握,密管中心KGC1和KGC2仅掌握部分私钥,两者合谋才能推出用户的私钥。因此,提高了用户私钥的安全性。
基于实施例3,本公开提供另一种具体的SM9密钥生成方法,当多个从密管中心是两个从密管中心时,包括:
主密管中心KGC1、第一从密管中心KGC2、第二从密管中心KGC3
E()为加法同态加密算法的公钥密码算法,P1为生成元,[KS1]P1+[KS2]P1为私钥记为ds,FN为包含N个元素的有限域,N为循环群G1、G2、GT的阶,hid表示签名私钥生成函数的识别符,P1是表示群G1的生成元;
KGC1为主密管中心,α1为第一随机数,β12为第一个第二随机数,β13为第二个第二随机数,ks1为第一子私钥,Hash(ID||hid,N)+ks1为预设变量,E(Hash(ID||hid,N)+ks1)为第一密文,E(β12)为第一个第一随机密文,E(β13)为第二个第一随机密文,α1*E(ks2)+E(β12)为第一个第一临时变量,α1*E(ks3)+E(β13)为第二个第一临时变量,α2*(Hash(ID||hid,N)+ks1)+β21为第一个第一明文,α3*(Hash(ID||hid,N)+ks1)+β31为第二个第一明文,α2(Hash(ID||hid,N)+ks1)+β21+α3*(Hash(ID||hid,N)+ks1)-β31+α1*(Hash(ID||hid,N)+ks1)-β12-β13
为第一中间数记为γ1,(γ123)-11为第三中间数记为δ1,ε12、ε13∈FN为第五随机数,E(ε1)为第三随机密文,δ1*E(ks2)+E(ε12)为第一个第五中间数,δ1*E(ks3)+E(ε13)为第二个第五中间数,为δ2*ks121为第一个第三明文,δ3*ks131为第二个第三明文,P1*(δ1*ks112132*ks1213*ks131)为第一子私钥记为[KS1]P1
KGC2为第一从密管中心,α2为第三随机数,β21、β23∈FN为第四随机数,ks2为第二子私钥,E(ks2)为第二密文,E(β21)、E(β23)为第二随机密文,α2*E(Hash(ID||hid,N)+ks1)+E(β21)、α2*E(ks3)+E(β23)为第二临时变量,α1*ks212、α3*ks323为第二明文,α1*ks2123*ks2322+ks22123为第二中间数记为γ2,(γ123)-12为第四中间数记为δ2,ε21、ε23第六随机数,δ2*E(ks1)+E(ε21)、δ2*E(ks3)+E(ε23)为第六中间数,E(ks1)为第三密文,δ1*ks212、δ3*ks232为第四明文,P1*(δ2*ks221231*ks2123*ks232)为第二子私钥记为[KS2]P1
KGC3为第二从密管中心。此时为确保参数便于理解,此处不再对第二从密管中心的各参数重新进行命名,以各字母代表的含义为主。α3为第三随机数,β31、β32∈FN为第四随机数,ks3为第二子私钥,E(ks3)为第二密文,E(β31)、E(β32)为第二随机密文,α3*E(Hash(ID||hid,N)+ks1)+E(β31)、α3*E(ks2)+E(β32)为第二临时变量,α1*ks313、α2*ks323为第二明文,α1*ks3132*ks3233+ks33132为第二中间数记为γ3,(γ123)-13为第四中间数记为δ3,ε31、ε32第六随机数,δ3*E(ks1)+E(ε31)、δ3*E(ks1)+E(ε31)为第六中间数,E(ks1)为第三密文,δ1*ks313、δ2*ks323为第四明文,P1*(δ3*ks331321*ks3132*ks323)为第二子私钥记为[KS3]P1
S10、KGC1随机选择α1∈FN,KGC2随机选择α2∈FN,KGC3随机选择α3∈FN
KGC1利用加法同态加密算法的公钥对Hash(ID||hid,N)+ks1加密得到E(Hash(ID||hid,N)+ks1)并将其发送给KGC2和KGC3
KGC2利用加法同态加密算法的公钥对ks2加密得到E(ks2)并将其发送给KGC1和KGC3
KGC3利用加法同态加密算法的公钥对ks3加密得到E(ks3)并将其发送给KGC1和KGC2
S20、KGC1随机选择β1213∈FN,将α1*E(ks2)+E(β12)发送给KGC2,将α1*E(ks3)+E(β13)发送给KGC3
KGC2随机选择β2123∈FN,将α2*E(Hash(ID)+ks1)+E(β21)发送给KGC1,将α2*E(ks3)+E(β23)发送给KGC3
KGC3随机选择β3132∈FN,将α3*E(Hash(ID||hid,N)+ks1)+E(β31)发送给KGC1,将α3*E(ks2)+E(β32)发送给KGC2
S30、KGC1解密得到α2*(Hash(ID||hid,N)+ks1)+β21和α3*(Hash(ID||hid,N)+ks1)+β31,计算计算第一中间数γ1即α2(Hash(ID||hid,N)+ks1)+β21+α3*(Hash(ID||hid,N)+ks1)-β311*(Hash(ID||hid,N)+ks1)-β1213
并将γ1发送给KGC2和KGC3
KGC2解密得到α1*ks212和α3*ks323,计算第二中间数γ2即α1*ks2123*ks2322+ks221-β23,并将γ2发送给KGC1和KGC3
KGC3解密得到α1*ks313和α2*ks323,计算第二中间数γ3即α1*ks3132*ks3233+ks33132,并将γ3发送给KGC1和KGC2
S40、KGC1计算δ1即(γ123)-11,随机选择ε12、ε13∈FN,并将δ1*E(ks2)+E(ε12)和E(ks1)发给KGC2;将δ1*E(ks3)+E(ε13)和E(ks1)发给KGC3
KGC2计算δ2即(γ123)-12,随机选择ε21、ε23∈FN,并将δ2*E(ks1)+E(ε21)发给KGC1;将δ2*E(ks3)+E(ε23)发给KGC3
KGC3计算δ3即(γ123)-13,随机选择ε31、ε32∈FN,并将δ3*E(ks1)+E(ε31)发给KGC1;将δ3*E(ks1)+E(ε31)发给KGC2
S50、KGC1计算第一子私钥P1*(δ1*ks112132*ks1213*ks131)并将第一子私钥即[KS1]P1发送给目标用户;
KGC2计算第二子私钥P1*(δ2*ks221231*ks2123*ks232),并将第一个第二子私钥即[KS2]P1发送给目标用户;
KGC3计算第二个第二子私钥P1*(δ3*ks331321*ks3132*ks323),并将第二个第二子私钥即[KS3]P1发送给目标用户。
S60、目标用户得到自己的私钥ds即[KS1]P1+[KS2]P1+[KS3]P1
可见,本实施例提供的技术方案,能够通过两个乃至多个密管中心同时提供子私钥以合成符合SM9格式的私钥,确保了各个主私钥的安全性,当部分主私钥丢失也不影响私钥的安全性。
基于上述实施例,本实施例提供一种SM9密钥生成方法,通过判断第一子私钥的格式是否符合SM9标准以保障生成的第一子私钥的正确性,具体请参考图5,图5为本公开实施例提供的另一种SM9密钥生成方法的流程图,包括:
S501、根据目标用户的ID和第一主私钥,利用第一随机数、第二随机数与多个从密管中心进行交互通信,以生成与SM9算法的格式对应的第一子私钥;其中,从密管中心是根据第二主私钥,利用第三随机数、第四随机数进行交互通信的密管中心。
S502、判断第一子私钥是否与SM9算法的格式相对应。
S503、若第一子私钥对应于SM9算法的格式,则将第一子私钥发送至目标用户,以便目标用户根据第一子私钥与多个从密管中心的多个第二子私钥合成私钥。
第一子私钥生成后验证是否对应SM9算法的格式,以确定在运算过程中的正确性,值得注意的是,此处的对应指的是第一子私钥能够和多个从密管中心得到的多个第二子私钥合成符合SM9格式的私钥。
基于上述技术方案,本实施例通过在得到第一子私钥后确定其是否与SM9格式相对应,实现了验证生成过程的正确性,也提高了秘钥生成的精准性。
下面对本公开实施例提供的一种SM9密钥生成装置进行介绍,下文描述的SM9密钥生成装置与上文描述的SM9密钥生成方法可相互对应参照,参考图6,图6为本公开实施例提供的一种SM9密钥生成装置的示意图,包括:
第一子私钥生成模块610,用于根据目标用户的ID和第一主私钥,利用第一随机数、第二随机数与多个从密管中心进行交互通信,以生成与SM9算法的格式对应的第一子私钥;其中,从密管中心是根据第二主私钥,利用第三随机数、第四随机数进行交互通信的密管中心;
第一子私钥发送模块620,用于将第一子私钥发送至目标用户,以便目标用户根据第一子私钥与多个从密管中心的多个第二子私钥合成私钥。
在一些实施例中,具体请参考图7,图7为本公开实施例提供的第一子私钥生成模块610的示意图,第一子私钥生成模块610包括:
第一密文获得单元611,用于根据目标用户的ID和第一主私钥,利用加法同态加密算法的公钥对预设变量记为Hash(ID||hid,N)+ks1加密,得到第一密文;其中,ks1是第一主私钥;
第二密文获取单元612,用于获取各个从密管中心的第二密文;其中,第二密文是从密管中心利用公钥对第二主私钥加密得到的密文;
临时变量获取单元613,用于根据第一随机数、第二密文、利用公钥对第二随机数进行加密得到的第一随机密文,得到各个第一临时变量,对应的,并获取从密管中心的根据第三随机数、第一密文、利用公钥对第四随机数进行加密得到的第二随机密文,得到第二临时变量;
解密单元614,用于对各个第二临时变量进行解密,得到各个第一明文;
第一子私钥生成单元615,用于基于SM9算法的格式利用各个第一明文、第一随机数、第二随机数、第一主私钥,得到第一子私钥。
在一些实施例中,第一子私钥生成单元615包括:
第一中间数获得子单元,用于根据各个第一明文、第一随机数、各个第二随机数、预设变量进行计算,得到第一中间数;
第二中间数获得子单元,用于获取从密管中心通过各个第二明文、第三随机数、第四随机数、第二主私钥进行计算得到的第二中间数;其中,第二明文是从密管中心对第一临时变量解密得到的明文;
第五中间数和第六中间数获取子单元,用于根据第一中间数、第二中间数、第一随机数得到第三中间数,并利用第三中间数、第二密文、利用公钥对第五随机数得到的第三随机密文,得到第五中间数,获取从密管中心的第六中间数,其中,第六中间数是利用第四中间数、主密管中心发送的利用公钥与第一主私钥得到的第三密文、利用公钥对第六随机数得到的数据,第四中间数是根据第一中间数、第二中间数、第三随机数得到数据;
第一子私钥生成子单元,用于利用对第六中间数解密得到的第三明文、第三中间数、第五随机数、第一主私钥、生成元得到第一子私钥。
在一些实施例中,第一子私钥生成模块610还包括:
判断单元,用于判断预设变量是否等于0;
第一执行单元,用于在预设变量等于0时,则重新确定第一主私钥;
第二执行单元,用于在预设变量不等于0时,则执行根据上述目标用户的ID和第一主私钥,利用加法同态加密算法的公钥对预设变量记为Hash(ID||hid,N)+ks1加密,得到第一密的步骤。
在一些实施例中,SM9密钥生成装置还包括:
判断模块,用于判断第一子私钥是否与SM9算法的格式相对应;
发送模块,用于若第一子私钥对应于SM9算法的格式,则将第一子私钥发送至目标用户。
关于上述实施例中的SM9密钥生成装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
下面对本公开实施例提供的一种SM9密钥生成***进行介绍,下文描述的一种SM9密钥生成***与上文描述的一种SM9密钥生成方法可相互对应参照,参考图8,图8为本公开实施例提供的一种SM9密钥生成***的示意图,包括:
主密管中心810,用于根据目标用户的ID和第一主私钥,利用第一随机数、第二随机数与多个从密管中心进行交互通信;将第一子私钥发送至目标用户;
多个从密管中心820,用于根据第二主私钥利用第三随机数、第四随机数与除当前从密管中心外的其他密管中心进行交互通信,产生当前第二子私钥,将当前第二子私钥发送至目标用户;
目标用户830,用于根据接收到的第一子私钥和各个第二子私钥生成私钥。
在一些实施例中,主密管中心与多个从密管中心设置在不同设备中。
关于上述实施例中的SM9密钥生成***,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
下面对本公开实施例提供的一种计算机可读存储介质进行介绍,下文描述的计算机可读存储介质与上文描述的SM9密钥生成方法可相互对应参照。
一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述的SM9密钥生成方法的步骤。
下面对本公开实施例提供的一种进行介绍,下文描述的与上文描述的SM9密钥生成方法可相互对应参照。图9是根据一示例性实施例示出的一种电子设备900的框图。如图9所示,该电子设备900可以包括:
处理器901,其上存储有计算机程序;
存储器902,处理器,用于执行存储器中的计算机程序,以实现如上述的SM9密钥生成方法的步骤。
该电子设备900还可以包括多媒体组件903,信息输入/信息输出(I/O)接口904,以及通信组件905中的一者或多者。
其中,处理器901用于控制该电子设备900的整体操作,以完成上述的应用于中的***切换方法中的全部或部分步骤;存储器902用于存储各种类型的数据以支持在该电子设备900的操作,这些数据例如可以包括用于在该电子设备900上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器902可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(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),磁存储器,快闪存储器,磁盘或光盘。
多媒体组件903可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器902或通过通信组件905发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口904为处理器901和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件905用于该电子设备900与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near Field Communication,简称NFC),2G、3G或4G,或它们中的一种或几种的组合,因此相应的该通信组件905可以包括:Wi-Fi模块,蓝牙模块,NFC模块。
在一示例性实施例中,900可以被一个或多个应用专用集成电路(ApplicationSpecific Integrated Circuit,简称ASIC)、数字信号处理器(Digital SignalProcessor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述给出的SM9密钥生成方法。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述数据传输方法的步骤。例如,该计算机可读存储介质可以为上述存储有程序指令的存储器702,上述程序指令可由电子设备700的处理器701执行以完成上述SM9密钥生成方法。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。

Claims (8)

1.一种SM9密钥生成方法,其特征在于,包括:
根据目标用户的ID和第一主私钥,利用第一随机数、第二随机数与多个从密管中心进行交互通信,以生成与SM9算法的格式对应的第一子私钥;其中,所述从密管中心是根据第二主私钥,利用第三随机数、第四随机数进行所述交互通信的密管中心;
将所述第一子私钥发送至所述目标用户,以便所述目标用户根据所述第一子私钥与多个所述从密管中心的多个第二子私钥合成私钥;
所述根据目标用户的ID和第一主私钥,利用第一随机数、第二随机数与多个从密管中心进行交互通信,以生成与SM9算法的格式对应的第一子私钥,包括:
根据所述目标用户的所述ID和所述第一主私钥,利用同态加密算法的公钥对预设变量记为Hash(ID||hid,N)+ks1加密,得到第一密文;其中,ks1是所述第一主私钥,N为循环群的阶,hid表示签名私钥生成函数的识别符;
获取各个所述从密管中心的第二密文;其中,所述第二密文是所述从密管中心利用所述公钥对所述第二主私钥加密得到的密文;
根据所述第一随机数、所述第二密文、利用所述公钥对所述第二随机数进行加密得到的第一随机密文,得到各个第一临时变量,对应的,并获取所述从密管中心的根据所述第三随机数、所述第一密文、利用所述公钥对所述第四随机数进行加密得到的第二随机密文,得到第二临时变量;
对各个所述第二临时变量进行解密,得到各个第一明文;
基于所述SM9算法的格式利用各个所述第一明文、所述第一随机数、所述第二随机数、所述第一主私钥,得到所述第一子私钥;
所述基于所述SM9算法的格式利用各个所述第一明文、所述第一随机数、所述第二随机数、所述第一主私钥,得到所述第一子私钥,包括:
根据各个所述第一明文、所述第一随机数、各个所述第二随机数、所述预设变量进行计算,得到第一中间数;
获取所述从密管中心通过各个第二明文、所述第三随机数、所述第四随机数、所述第二主私钥进行计算得到的第二中间数;其中,所述第二明文是所述从密管中心对所述第一临时变量解密得到的明文;
根据所述第一中间数、所述第二中间数、所述第一随机数得到第三中间数,并利用所述第三中间数、所述第二密文、利用所述公钥对第五随机数得到的第三随机密文,得到第五中间数,获取所述从密管中心的第六中间数,其中,所述第六中间数是利用第四中间数、主密管中心发送的利用所述公钥与所述第一主私钥得到的第三密文、利用所述公钥对第六随机数得到的数据,所述第四中间数是根据所述第一中间数、所述第二中间数、所述第三随机数得到数据;
利用对所述第六中间数解密得到的第三明文、所述第三中间数、所述第五随机数、所述第一主私钥、生成元得到所述第一子私钥;
对应的,所述第二子私钥是所述从密管中心根据所述第四中间数、对所述第五中间数解密得到的第四明文、所述第六随机数、所述第二主私钥、所述生成元得到子私钥。
2.根据权利要求1所述的SM9密钥生成方法,其特征在于,所述同态加密算法是Palillier算法。
3.根据权利要求1所述的SM9密钥生成方法,其特征在于,所述根据所述目标用户的ID和第一主私钥,利用同态加密算法的公钥对预设变量记为Hash(ID||hid,N)+ks1加密,得到第一密文之前,包括:
判断所述预设变量是否等于0;
若等于0,则重新确定所述第一主私钥;
若不等于0,则执行所述根据所述目标用户的ID和所述第一主私钥,利用所述同态加密算法的所述公钥对所述预设变量记为Hash(ID||hid,N)+ks1加密,得到第一密文的步骤。
4.根据权利要求1所述的SM9密钥生成方法,其特征在于,所述根据目标用户的ID和第一主私钥,利用第一随机数、第二随机数与多个从密管中心进行交互通信,以生成与SM9算法的格式对应的第一子私钥之后,还包括:
判断所述第一子私钥是否与所述SM9算法的格式相对应;
若所述第一子私钥对应于所述SM9算法的格式,则将所述第一子私钥发送至所述目标用户。
5.一种SM9密钥生成装置,其特征在于,包括:
第一子私钥生成模块,用于根据目标用户的ID和第一主私钥,利用第一随机数、第二随机数与多个从密管中心进行交互通信,以生成与SM9算法的格式对应的第一子私钥;其中,所述从密管中心是根据第二主私钥利用第三随机数、第四随机数进行所述交互通信的密管中心;
第一子私钥发送模块,用于将所述第一子私钥发送至所述目标用户,以便所述目标用户根据所述第一子私钥与多个所述从密管中心的多个第二子私钥合成私钥;
所述第一子私钥生成模块,包括:
第一密文获得单元,根据所述目标用户的所述ID和所述第一主私钥,利用同态加密算法的公钥对预设变量记为Hash(ID||hid,N)+ks1加密,得到第一密文;其中,ks1是所述第一主私钥,N为循环群的阶,hid表示签名私钥生成函数的识别符;
第二密文获取单元,用于获取各个从密管中心的第二密文;其中,第二密文是从密管中心利用公钥对第二主私钥加密得到的密文;
临时变量获取单元,用于根据第一随机数、第二密文、利用公钥对第二随机数进行加密得到的第一随机密文,得到各个第一临时变量,对应的,并获取从密管中心的根据第三随机数、第一密文、利用公钥对第四随机数进行加密得到的第二随机密文,得到第二临时变量;
解密单元,用于对各个第二临时变量进行解密,得到各个第一明文;
第一子私钥生成单元,用于基于SM9算法的格式利用各个第一明文、第一随机数、第二随机数、第一主私钥,得到第一子私钥;
所述第一子私钥生成单元,包括:
第一中间数获得子单元,用于根据各个第一明文、第一随机数、各个第二随机数、预设变量进行计算,得到第一中间数;
第二中间数获得子单元,用于获取从密管中心通过各个第二明文、第三随机数、第四随机数、第二主私钥进行计算得到的第二中间数;其中,第二明文是从密管中心对第一临时变量解密得到的明文;
第五中间数和第六中间数获取子单元,用于根据第一中间数、第二中间数、第一随机数得到第三中间数,并利用第三中间数、第二密文、利用公钥对第五随机数得到的第三随机密文,得到第五中间数,获取从密管中心的第六中间数,其中,第六中间数是利用第四中间数、主密管中心发送的利用公钥与第一主私钥得到的第三密文、利用公钥对第六随机数得到的数据,第四中间数是根据第一中间数、第二中间数、第三随机数得到数据;
第一子私钥生成子单元,用于利用对第六中间数解密得到的第三明文、第三中间数、第五随机数、第一主私钥、生成元得到第一子私钥。
6.一种SM9密钥生成***,其特征在于,包括:
主密管中心,用于根据目标用户的ID和第一主私钥,利用第一随机数、第二随机数与多个从密管中心进行交互通信;将第一子私钥发送至所述目标用户;所述根据目标用户的ID和第一主私钥,利用第一随机数、第二随机数与多个从密管中心进行交互通信,以生成与SM9算法的格式对应的第一子私钥,包括:根据所述目标用户的所述ID和所述第一主私钥,利用同态加密算法的公钥对预设变量记为Hash(ID||hid,N)+ks1加密,得到第一密文;其中,ks1是所述第一主私钥,N为循环群的阶,hid表示签名私钥生成函数的识别符;获取各个所述从密管中心的第二密文;其中,所述第二密文是所述从密管中心利用所述公钥对第二主私钥加密得到的密文;根据所述第一随机数、所述第二密文、利用所述公钥对所述第二随机数进行加密得到的第一随机密文,得到各个第一临时变量,对应的,并获取所述从密管中心的根据第三随机数、所述第一密文、利用所述公钥对第四随机数进行加密得到的第二随机密文,得到第二临时变量;对各个所述第二临时变量进行解密,得到各个第一明文;基于所述SM9算法的格式利用各个所述第一明文、所述第一随机数、所述第二随机数、所述第一主私钥,得到所述第一子私钥;所述基于所述SM9算法的格式利用各个所述第一明文、所述第一随机数、所述第二随机数、所述第一主私钥,得到所述第一子私钥,包括:根据各个所述第一明文、所述第一随机数、各个所述第二随机数、所述预设变量进行计算,得到第一中间数;获取所述从密管中心通过各个第二明文、所述第三随机数、所述第四随机数、所述第二主私钥进行计算得到的第二中间数;其中,所述第二明文是所述从密管中心对所述第一临时变量解密得到的明文;根据所述第一中间数、所述第二中间数、所述第一随机数得到第三中间数,并利用所述第三中间数、所述第二密文、利用所述公钥对第五随机数得到的第三随机密文,得到第五中间数,获取所述从密管中心的第六中间数,其中,所述第六中间数是利用第四中间数、主密管中心发送的利用所述公钥与所述第一主私钥得到的第三密文、利用所述公钥对第六随机数得到的数据,所述第四中间数是根据所述第一中间数、所述第二中间数、所述第三随机数得到数据;利用对所述第六中间数解密得到的第三明文、所述第三中间数、所述第五随机数、所述第一主私钥、生成元得到所述第一子私钥;对应的,第二子私钥是所述从密管中心根据所述第四中间数、对所述第五中间数解密得到的第四明文、所述第六随机数、所述第二主私钥、所述生成元得到子私钥;
多个所述从密管中心,用于根据第二主私钥利用第三随机数、第四随机数与除当前所述从密管中心外的其他密管中心进行所述交互通信,产生当前第二子私钥,将当前所述第二子私钥发送至所述目标用户;
所述目标用户,用于根据接收到的所述第一子私钥和各个所述第二子私钥生成私钥。
7.根据权利要求6所述的SM9密钥生成***,其特征在于,所述主密管中心与多个所述从密管中心设置在不同设备中。
8.一种计算机可读存储介质,其特征在于,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如权利要求1至4任一项所述的SM9密钥生成方法的步骤。
CN202010784021.2A 2020-08-06 2020-08-06 Sm9密钥生成方法、装置、***及可读存储介质 Active CN111901111B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010784021.2A CN111901111B (zh) 2020-08-06 2020-08-06 Sm9密钥生成方法、装置、***及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010784021.2A CN111901111B (zh) 2020-08-06 2020-08-06 Sm9密钥生成方法、装置、***及可读存储介质

Publications (2)

Publication Number Publication Date
CN111901111A CN111901111A (zh) 2020-11-06
CN111901111B true CN111901111B (zh) 2023-07-25

Family

ID=73246798

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010784021.2A Active CN111901111B (zh) 2020-08-06 2020-08-06 Sm9密钥生成方法、装置、***及可读存储介质

Country Status (1)

Country Link
CN (1) CN111901111B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112906038B (zh) * 2021-03-26 2023-04-07 成都卫士通信息产业股份有限公司 基于sm9密钥的门限化处理方法、装置、设备及存储介质
CN112926075B (zh) * 2021-03-26 2023-01-24 成都卫士通信息产业股份有限公司 一种sm9密钥生成方法、装置、设备及存储介质
CN113179158B (zh) * 2021-04-08 2022-05-17 支付宝(杭州)信息技术有限公司 一种控制带宽的多方联合数据处理方法及装置
CN113794693A (zh) * 2021-08-25 2021-12-14 浪潮云信息技术股份公司 一种防止服务器数量扩张的分布式sm9密钥安全分发方法
CN114189338B (zh) * 2021-12-07 2023-12-19 浙江大学 基于同态加密技术的sm9密钥安全分发和管理***及方法
CN114257366B (zh) * 2021-12-20 2024-04-12 成都卫士通信息产业股份有限公司 信息同态处理方法、装置、设备及计算机可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110166239A (zh) * 2019-06-04 2019-08-23 成都卫士通信息产业股份有限公司 用户私钥生成方法、***、可读存储介质及电子设备
CN110855425A (zh) * 2019-10-25 2020-02-28 武汉大学 一种轻量级多方协同sm9密钥生成、密文解密方法与介质
CN111010276A (zh) * 2019-10-25 2020-04-14 武汉大学 一种多方联合sm9密钥生成、密文解密方法与介质
CN111030801A (zh) * 2019-10-25 2020-04-17 武汉大学 一种多方分布式的sm9密钥生成、密文解密方法与介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9065637B2 (en) * 2012-01-25 2015-06-23 CertiVox Ltd. System and method for securing private keys issued from distributed private key generator (D-PKG) nodes

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110166239A (zh) * 2019-06-04 2019-08-23 成都卫士通信息产业股份有限公司 用户私钥生成方法、***、可读存储介质及电子设备
CN110855425A (zh) * 2019-10-25 2020-02-28 武汉大学 一种轻量级多方协同sm9密钥生成、密文解密方法与介质
CN111010276A (zh) * 2019-10-25 2020-04-14 武汉大学 一种多方联合sm9密钥生成、密文解密方法与介质
CN111030801A (zh) * 2019-10-25 2020-04-17 武汉大学 一种多方分布式的sm9密钥生成、密文解密方法与介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
An efficient certificateless aggregate signature scheme for vehicular ad-hoc networks;Avleen Kaur Malhi;《Discrete Mathematics & Theoretical Computer Science》;20151231;全文 *
一种关于SM9的安全密钥分发方案;许盛伟等;《计算机应用与软件》;20200112(第01期);全文 *

Also Published As

Publication number Publication date
CN111901111A (zh) 2020-11-06

Similar Documents

Publication Publication Date Title
CN111901111B (zh) Sm9密钥生成方法、装置、***及可读存储介质
CN107196763B (zh) Sm2算法协同签名及解密方法、装置与***
CN113259329B (zh) 一种数据不经意传输方法、装置、电子设备及存储介质
JP4981072B2 (ja) 復号可能かつ検索可能な暗号化のための方法およびシステム
CN111404952B (zh) 变电站数据加密传输方法、装置、计算机设备和存储介质
CN112003696B (zh) Sm9密钥生成方法、***、电子设备、装置及存储介质
CN108183791B (zh) 应用于云环境下的智能终端数据安全处理方法及***
CN112861164B (zh) 一种加密方法、解密方法、数据处理方法、终端及加密机
JP5171787B2 (ja) サインクリプションシステムおよびサインクリプション生成方法
Huang et al. Constructing a Secure Point-to-Point Wireless Environment by Integrating Diffie-Hellman PKDS RSA and Stream Ciphering for Users Known to Each Other.
KR20010000738A (ko) 계산적 디피-헬만 가정에 기반하는 안전성 증명 가능한공개키 암호화 방법
CN110401524B (zh) 一种借助同态加密的包含秘密的数的协同生成方法及***
CN109361506B (zh) 信息处理方法
CN115361109B (zh) 一种支持双向代理重加密的同态加密方法
JP4563037B2 (ja) 暗号化装置および復号化装置、並びにこれらを備えた暗号システム、暗号化方法および復号化方法
CN114697001B (zh) 一种基于区块链的信息加密传输方法、设备及介质
JP2005176144A (ja) 端末装置、通信システム及び通信方法
JP3694242B2 (ja) 署名付き暗号通信方法及びその装置
JP4856933B2 (ja) 署名装置、検証装置、復号装置、平文復元装置、情報提供装置、署名システム、通信システム、鍵生成装置及び署名方法
JP2007053449A (ja) 復号装置、暗号化装置、通信システム及び通信方法
CN117521031B (zh) 数字版权密钥烧录方法及其装置
JP4000900B2 (ja) 認証付暗号方法及び認証付復号方法及び検証方法及び装置及びプログラム及びコンピュータが読み取り可能な記録媒体
CN117294431A (zh) 一种密钥生成方法、装置、设备及介质
CN116248270A (zh) 一种明文加密的方法、装置、电子设备以及存储介质
JP5689839B2 (ja) 公開鍵暗号システム、公開鍵暗号方法、受信装置、およびプログラム

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