[go: up one dir, main page]

CN106961336A - A kind of key components trustship method and system based on SM2 algorithms - Google Patents

A kind of key components trustship method and system based on SM2 algorithms Download PDF

Info

Publication number
CN106961336A
CN106961336A CN201710253749.0A CN201710253749A CN106961336A CN 106961336 A CN106961336 A CN 106961336A CN 201710253749 A CN201710253749 A CN 201710253749A CN 106961336 A CN106961336 A CN 106961336A
Authority
CN
China
Prior art keywords
key
user
client
uid
pke
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
Application number
CN201710253749.0A
Other languages
Chinese (zh)
Other versions
CN106961336B (en
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.)
Beijing Baiwang Xin'an Technology Co Ltd
Original Assignee
Beijing Baiwang Xin'an Technology Co Ltd
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 Beijing Baiwang Xin'an Technology Co Ltd filed Critical Beijing Baiwang Xin'an Technology Co Ltd
Priority to CN201710253749.0A priority Critical patent/CN106961336B/en
Publication of CN106961336A publication Critical patent/CN106961336A/en
Application granted granted Critical
Publication of CN106961336B publication Critical patent/CN106961336B/en
Expired - Fee Related 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3255Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using group based signatures, e.g. ring or threshold signatures
    • 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/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • 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/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

一种基于SM2公钥密码算法的密钥分量托管方法和系统,属于信息安全领域。由N(N≥1)个不同的密钥分量托管系统构成一个密钥托管网络,采用密钥分割存储和多方联合计算的方式,将用户的SM2私钥分割为N+1个分量,由用户和N个不同的密钥分量托管系统分散保存,在需要使用私钥时,由用户和N个密钥分量托管系统联合完成相关计算。在用户密钥生成和使用阶段,密钥分量托管系统通过标识映射算法产生用户私钥分量,但不实际保存,可以大大减小系统建设规模,节约系统投资成本,提高系统运行效率和服务水平。

A key component escrow method and system based on the SM2 public key cryptographic algorithm belongs to the field of information security. A key escrow network is composed of N (N≥1) different key component escrow systems, and the user's SM2 private key is divided into N+1 components by means of key split storage and multi-party joint calculation. It is stored in a decentralized manner with N different key component escrow systems, and when the private key needs to be used, the user and N key component escrow systems jointly complete relevant calculations. In the stage of user key generation and use, the key component escrow system generates the user's private key component through the identification mapping algorithm, but does not actually save it, which can greatly reduce the system construction scale, save system investment costs, and improve system operation efficiency and service level.

Description

一种基于SM2算法的密钥分量托管方法和系统A key component escrow method and system based on SM2 algorithm

技术领域technical field

本发明涉及基于SM2公钥密码算法和密钥分割存储机制的密钥分量托管方法和系统,属于信息安全领域。The invention relates to a key component trusteeship method and system based on an SM2 public key cryptographic algorithm and a key split storage mechanism, and belongs to the field of information security.

背景技术Background technique

在互联网和云计算环境下,出现了大量与网络相关的应用,如网上银行、网上支付、网上购物和互联网医疗等,需要进行网上用户身份认证、网上操作确认和用户隐私保护,以保证网络应用的安全性。解决这种安全需求的最佳手段是使用公钥密码技术来实现数字签名和公钥加密。在使用公钥密码技术时,保证所使用私钥的安全则是关键所在。在通常情况下,为了保证私钥的存储安全和使用安全,用于签名和解密的私钥都要求保存在密码设备内,相应的密码运算也在密码设备内执行。所采用的密码设备在服务器端通常为密码机,在客户端为带CPU的USBKEY和IC卡等。但在网络环境和手机移动终端等环境下,使用这些密码设备来保存密钥和执行密码运算就很不方便,因而出现了将密钥保存在手机文件中并在手机上执行密码运算的应用需求。这种软环境给密钥的存储安全和使用安全带来很大隐患。为了提高密钥存储和密码运算的安全性,可以采用密钥分割存储和多方联合计算的方式,将用户的私钥分割为几个分量,各个私钥分量分散保存在不同的密钥托管系统中,在需要使用私钥对一个消息作数字签名时,由多个密钥托管系统联合完成签名计算,最后形成的签名可使用用户端的公钥进行验证。同样地,在需要对用户端公钥加密后的密文进行解密时,由多个密钥托管系统联合完成对密文的解密计算,实现对加密消息的完整解密。针对国密SM2公钥密码算法,已经有了相应的密钥分割方法和联合签名算法(参见申请号为201710157604.0的专利),现在的需求是要建立安全高效的密钥托管系统,为广大用户提供私钥分量的托管服务。当需要密钥分量托管的用户量很大(例如达到亿级或十亿级水平)时,密钥托管系统必须耗费大量的存储资源和密码设备来保存用户的密钥和与用户相关的信息,必将大大降低系统的运行效率和服务水平。In the Internet and cloud computing environment, a large number of network-related applications have emerged, such as online banking, online payment, online shopping and Internet medical care, etc., which require online user identity authentication, online operation confirmation and user privacy protection to ensure that network applications security. The best way to solve this security requirement is to use public key cryptography to realize digital signature and public key encryption. When using public key cryptography, it is critical to keep the private key used secure. Under normal circumstances, in order to ensure the safe storage and use of the private key, the private key used for signing and decryption is required to be stored in the cryptographic device, and the corresponding cryptographic operations are also executed in the cryptographic device. The cryptographic device used is usually a cryptographic machine on the server side, and a USBKEY with a CPU and an IC card on the client side. However, in the network environment and mobile terminal environment, it is inconvenient to use these cryptographic devices to store keys and perform cryptographic operations, so there is an application demand for storing keys in mobile phone files and performing cryptographic operations on mobile phones . This soft environment brings great hidden dangers to the storage security and use security of the key. In order to improve the security of key storage and cryptographic operations, the user's private key can be divided into several components by means of key split storage and multi-party joint calculation, and each private key component is stored in different key escrow systems , when a private key needs to be used to digitally sign a message, multiple key escrow systems jointly complete the signature calculation, and the final signature can be verified using the public key of the client. Similarly, when it is necessary to decrypt the ciphertext encrypted by the public key of the client, multiple key escrow systems jointly complete the decryption calculation of the ciphertext, and realize the complete decryption of the encrypted message. For the national secret SM2 public key encryption algorithm, there are already corresponding key splitting methods and joint signature algorithms (see patent application number 201710157604.0), and the current demand is to establish a safe and efficient key escrow system to provide users with Escrow service for private key components. When the number of users who need key component escrow is large (for example, reaching the level of 100 million or billion), the key escrow system must consume a large amount of storage resources and cryptographic devices to save the user's key and user-related information. It will greatly reduce the operating efficiency and service level of the system.

发明内容Contents of the invention

本发明针对密钥分割与联合计算需要对大量私钥分量进行托管的应用需求,提出一种基于标识的私钥分量托管方法,并由此构造一种相应的密钥分量托管系统(Partialkey escrow,简称PKE),解决大用户量场景下的用户私钥分量托管问题。采用的技术方案是,建立N(N≥1)个密钥分量托管系统,在每个密钥分量托管系统中生成一个主密钥,通过一种标识映射算法,在用户密钥生成阶段,密钥分量托管系统采用系统主密钥对用户提供的识别信息进行一种分散映射,生成对应的私钥分量,但不实际保存这个私钥分量;在用户需使用自已的私钥分量时,按同样的算法恢复用户的私钥分量后,再进行相关密码运算。这里所指的用户识别信息可以是用户标识、用户设置的PIN码和用户端设备信息的一种组合或叠加。采用这种方案的有益效果是密钥分量托管系统不需要数据库软件系统和大量的密钥存储设备,对管理的用户数量没有限制,可以大大提高系统的运行效率和服务水平,并且安全性没有任何降低。Aiming at the application requirement of entrusting a large number of private key components for key splitting and joint computing, the present invention proposes an identification-based private key component escrow method, and thus constructs a corresponding key component escrow system (Partialkey escrow, PKE for short), which solves the problem of user private key component custody in the scenario of a large number of users. The technical solution adopted is to establish N (N ≥ 1) key component escrow systems, generate a master key in each key component escrow system, and use an identity mapping algorithm to generate the user key. The key component escrow system uses the system master key to perform a decentralized mapping on the identification information provided by the user to generate the corresponding private key component, but does not actually save the private key component; when the user needs to use his own private key component, the same After the algorithm restores the user's private key components, the relevant cryptographic operations are performed. The user identification information referred to here may be a combination or superposition of a user identification, a PIN code set by the user, and user terminal equipment information. The beneficial effect of adopting this scheme is that the key component escrow system does not require a database software system and a large number of key storage devices, and there is no limit to the number of managed users, which can greatly improve the operating efficiency and service level of the system, and there is no need for security. reduce.

本发明所述基于SM2算法的密钥分量托管方法和系统所依托的密码算法为国密SM2公钥密码算法和SM3杂凑算法,与SM2相关的椭圆曲线参数按国密 SM2算法标准设置。有限域上的椭圆曲线记为E(Fq),其基点记为G,G的阶记为n,SM3杂凑函数记作h(x)。The cryptographic algorithm based on the SM2 algorithm-based key component custody method and system of the present invention is the national secret SM2 public key cryptographic algorithm and the SM3 hash algorithm, and the elliptic curve parameters related to SM2 are set according to the national secret SM2 algorithm standard. The elliptic curve on the finite field is denoted as E(Fq), its base point is denoted as G, the order of G is denoted as n, and the SM3 hash function is denoted as h(x).

本发明所述基于SM2算法的密钥分量托管方法和系统涉及到的实体包括用户和N(N≥1)个密钥分量托管系统,N个密钥分量托管系统分别记为PKE[1], PKE[2],…,PKE[N]。在系统运行初期,密钥分量托管系统PKE[i]随机生成1 个系统主密钥MK[i]和1对SM2非对称密钥,系统主密钥MK[i]也可以用非对称密钥的私钥充当。每个用户面对N个密钥分量托管系统,针对每个密钥分量托管系统,用户需要提供不同的用户识别信息,一个用户的N个识别信息分别记为UID[1],UID[2],…,UID[N]。The entities involved in the SM2 algorithm-based key component escrow method and system of the present invention include users and N (N≥1) key component escrow systems, and the N key component escrow systems are respectively denoted as PKE[1], PKE[2],...,PKE[N]. In the early stage of system operation, the key component escrow system PKE[i] randomly generates a system master key MK[i] and a pair of SM2 asymmetric keys, and the system master key MK[i] can also use asymmetric keys The private key of . Each user faces N key component escrow systems. For each key component escrow system, the user needs to provide different user identification information. The N identification information of a user are respectively recorded as UID[1], UID[2] ,...,UID[N].

所述密钥分量托管系统PKE[i]使用一个密钥分量映射生成函数g(x,y),对于每个用户,通过对系统主密钥MK[i]和用户识别信息UID[i]的映射可生成一个私钥分量di=g(MK[i],UID[i]),且di∈[1,n-1]。The key component escrow system PKE[i] uses a key component mapping generation function g(x,y), for each user, through the system master key MK[i] and user identification information UID[i] The mapping can generate a private key component di=g(MK[i], UID[i]), and di∈[1,n-1].

用户密钥分量托管的具体实现过程分为密钥生成和密钥使用两个阶段,而密钥生成又包含签名密钥生成和加密密钥生成,密钥使用又包含联合签名和联合解密。The specific implementation process of user key component escrow is divided into two stages: key generation and key use, and key generation includes signature key generation and encryption key generation, and key use includes joint signature and joint decryption.

一、签名密钥生成1. Signature key generation

签名密钥生成由所述用户和所述N个密钥分量托管系统协同完成,生成步骤如下:Signature key generation is completed by the user and the N key component escrow systems in cooperation, and the generation steps are as follows:

第1步:所述用户以自已的标识、输入的PIN码和硬件设备信息等构造N个用户识别信息UID[1],UID[2],…,UID[N],再设置初始值QN+1=G。Step 1: The user constructs N pieces of user identification information UID[1], UID[2],..., UID[N] with his own identification, input PIN code and hardware device information, and then sets the initial value QN+ 1=G.

第2步:对于i=N,N-1,…,1,所述用户依次与PKE[i]交互执行:Step 2: For i=N, N-1,...,1, the user executes interactively with PKE[i] in turn:

(2a)所述用户以PKE[i]的公钥对UID[i]加密生成一个密文C[i],发送C[i] 和Qi+1到PKE[i]。(2a) The user encrypts UID[i] with the public key of PKE[i] to generate a ciphertext C[i], and sends C[i] and Qi+1 to PKE[i].

(2b)所述PKE[i]使用私钥对C[i]解密获取所述用户UID[i],计算di= g(MK[i],UID[i]),Qi=(di)-1Qi+1,回送Qi到用户端,将di作为用户的第i个签名私钥分量,但不需保存。(2b) The PKE[i] uses the private key to decrypt C[i] to obtain the user UID[i], calculate di=g(MK[i], UID[i]), Qi=(di)-1Qi +1, send Qi back to the client, and use di as the i-th signature private key component of the user, but it does not need to be saved.

(2c)所述用户保存Qi。(2c) The user saves Qi.

第3步:所述用户随机选取d0∈[1,n-1],计算Q0=(d0)-1Q1,Q=Q0-G,将d0作为用户端的签名私钥分量保存,将Q作为用户的实际签名公钥保存,同时保存Q0。Step 3: The user randomly selects d0∈[1,n-1], calculates Q0=(d0)-1Q1, Q=Q0-G, saves d0 as the signature private key component of the client, and uses Q as the user’s The actual signature public key is saved, and Q0 is saved at the same time.

通过上述步骤生成的用户实际签名私钥d=(d0d1d2…dN)-1-1,实际签名公钥Q=dG。实际签名私钥在生成过程中并未出现,且对用户和N个密钥分量托管系统都不可知。用户和N个密钥分量托管系统对各自生成的签名私钥分量具有完全自主权,其他用户或任何第三方都不能获取其签名私钥分量的信息。The user's actual signature private key generated through the above steps d=(d0d1d2...dN)-1-1, and the actual signature public key Q=dG. The actual signature private key does not appear during the generation process, and is unknown to the user and the N key component escrow systems. The user and the N key component escrow systems have complete autonomy over the signature private key components generated by them, and no other user or any third party can obtain information about their signature private key components.

二、加密密钥生成2. Encryption key generation

所述加密密钥主要用于对消息作公钥加密和私钥解密,由所述用户和所述 N个密钥分量托管系统协同完成,生成步骤如下:The encryption key is mainly used for public key encryption and private key decryption of the message, which is completed by the user and the N key component escrow systems in cooperation, and the generation steps are as follows:

第1步:所述用户以自已的标识、输入的PIN码和硬件设备信息等构造N个用户识别信息UID’[1],UID’[2],…,UID’[N],再设置初始值Q’N+1=G。Step 1: The user constructs N pieces of user identification information UID'[1], UID'[2],..., UID'[N] with his own identification, input PIN code and hardware device information, and then sets the initial Value Q'N+1=G.

第2步:所述用户设置初始值Q’N+1=G,对于i=N,N-1,…,1,依次与PKE[i] 交互执行:Step 2: The user sets the initial value Q'N+1=G, and for i=N, N-1,...,1, executes interactively with PKE[i] in turn:

(2a)所述用户以PKE[i]的公钥对UID’[i]加密生成一个密文C[i],发送 C[i]和Q’i+1到PKE[i]。(2a) The user encrypts UID'[i] with the public key of PKE[i] to generate a ciphertext C[i], and sends C[i] and Q'i+1 to PKE[i].

(2b)所述PKE[i]使用私钥对C[i]解密获取所述用户UID’[i],计算d’i= g(MK[i],UID’[i]),Q’i=d’iQ’i+1,回送Q’i到用户端,将d’i作为用户的第i个加密私钥分量,但不需保存。(2b) The PKE[i] uses the private key to decrypt C[i] to obtain the user UID'[i], calculate d'i=g(MK[i], UID'[i]), Q'i =d'iQ'i+1, return Q'i to the client, and use d'i as the i-th encrypted private key component of the user, but it does not need to be saved.

第3步:所述用户随机选取d’0∈[1,n-1],计算Q’0=d’0Q1,Q’=Q’0,将d’0作为用户端的加密私钥分量保存,将Q’作为用户的实际加密公钥保存。Step 3: The user randomly selects d'0∈[1,n-1], calculates Q'0=d'0Q1, Q'=Q'0, and saves d'0 as the encrypted private key component of the client, Save Q' as the user's actual encrypted public key.

通过上述步骤生成的用户实际加密私钥d’=d’0d’1d’2…d’N,实际加密公钥Q’=d’G。实际加密私钥在生成过程中并未出现,且对用户和N个密钥分量托管系统都不可知。用户和N个密钥分量托管系统对各自生成的私钥分量具有完全自主权,其他用户不能获取其私钥分量的信息。The user's actual encrypted private key d'=d'0d'1d'2...d'N generated through the above steps, and the actual encrypted public key Q'=d'G. The actual encrypted private key does not appear during the generation process, and is agnostic to both the user and the N key component escrow systems. The user and the N key component escrow systems have complete autonomy over the private key components generated by them, and other users cannot obtain information about their private key components.

三、联合签名3. Joint signature

本发明所述联合签名是指用户需要对消息作数字签名时,由用户和N个密钥分量托管系统联合按序完成对消息的签名,且签名结果为符合SM2标准的普通签名,签名接收方可以使用用户的实际签名公钥进行验证。The joint signature in the present invention refers to that when a user needs to digitally sign a message, the user and N key component escrow systems jointly complete the signature of the message in sequence, and the signature result is an ordinary signature conforming to the SM2 standard, and the signature recipient This can be verified using the user's actual signing public key.

所述签名方法涉及到用户和N个密钥分量托管系统。所述用户具有签名私钥分量d0,所述密钥分量托管系统PKE[i]具有签名私钥分量di,所述用户的实际签名公钥为Q=((d0d1…dN)-1–1)G。The signature method involves users and N key component escrow systems. The user has a signature private key component d0, the key component escrow system PKE[i] has a signature private key component di, and the actual signature public key of the user is Q=((d0d1...dN)-1–1) g.

设待签名的消息为M,e=h(Z||M)是对消息M的摘要值,其中Z是与用户公钥和用户标识有关的信息。首先由用户和N个密钥分量托管系统按次序联合生成一对随机密钥对,再按相反的次序联合完成对摘要值e的SM2签名。所述多方联合签名步骤如下。Assuming that the message to be signed is M, e=h(Z||M) is the digest value of the message M, where Z is information related to the user public key and user ID. First, the user and N key component escrow systems jointly generate a pair of random key pairs in sequence, and then jointly complete the SM2 signature on the digest value e in the reverse order. The multi-party joint signature steps are as follows.

第1步:所述用户以自已的标识、输入的PIN码和硬件设备信息等重新构造 N个用户的识别信息UID[1],UID[2],…,UID[N],再选择随机数k0,计算R0 =k0Q0。Step 1: The user reconstructs the identification information UID[1], UID[2],..., UID[N] of N users with their own identification, input PIN code and hardware device information, and then selects a random number k0, calculate R0 = k0Q0.

第2步:对于i=1,2,…,N,所述用户依次与PKE[i]交互执行:Step 2: For i=1,2,...,N, the user executes interactively with PKE[i] in turn:

(2a)用户发送Ri-1和Qi到PKE[i];(2a) The user sends Ri-1 and Qi to PKE[i];

(2b)PKE[i]随机选取ki∈[1,n-1],计算Ri=Ri-1+kiQi,回送Ri到用户;(2b) PKE[i] randomly selects ki∈[1,n-1], calculates Ri=Ri-1+kiQi, and sends Ri back to the user;

第3步:设RN=(x1,y1),所述用户计算r=(e+x1)(mod n),并记sN+1=r。Step 3: Set RN=(x1, y1), the user calculates r=(e+x1)(mod n), and write sN+1=r.

第4步:对于i=N,N-1,…,1,所述用户依次与PKE[i]交互执行:Step 4: For i=N, N-1,...,1, the user executes interactively with PKE[i] in turn:

(4a)所述用户以所述PKE[i]的公钥对UID[i]|Ri加密生成一个密文C[i],发送C[i]和si+1到PKE[i];(4a) The user encrypts UID[i]|Ri with the public key of PKE[i] to generate a ciphertext C[i], and sends C[i] and si+1 to PKE[i];

(4b)所述PKE[i]对C[i]作私钥解密获取UID[i]和Ri’,验证Ri’=Ri是否成立,若成立,再计算签名私钥分量di=g(MK[i],UID[i])和部分签名si=ki+ si+1di(mod n),回送所述部分签名si到用户端;(4b) The PKE[i] performs private key decryption on C[i] to obtain UID[i] and Ri', verifies whether Ri'=Ri is established, and if established, then calculates the signature private key component di=g(MK[ i], UID[i]) and partial signature si=ki+si+1di(mod n), return the partial signature si to the client;

(4c)所述用户在收到所述PKE[i]的部分签名si后,计算R’=Ri-1+siQi –rG,检验R’=RN是否成立,若成立,则接受PKE[i]的部分签名si。(4c) After receiving the partial signature si of the PKE[i], the user calculates R'=Ri-1+siQi-rG, checks whether R'=RN is established, and if established, accepts PKE[i] The partial signature of si.

第5步:所述用户计算s=k0+s1d0–r(mod n),生成最终签名(r,s)。Step 5: The user calculates s=k0+s1d0−r(mod n) to generate the final signature (r, s).

按此步骤生成的签名(r,s)可以使用公钥Q按SM2签名的验证算法进行验证,具体的证明过程可参见申请号为201710157604.0的专利。The signature (r, s) generated by this step can be verified using the public key Q according to the SM2 signature verification algorithm. For the specific verification process, please refer to the patent application number 201710157604.0.

四、联合解密4. Joint Decryption

当用户需要对使用用户的加密公钥加密的密文解密时,可由用户和N个密钥分量托管系统联合完成对密文的解密。When the user needs to decrypt the ciphertext encrypted with the user's encryption public key, the decryption of the ciphertext can be completed jointly by the user and the N key component escrow systems.

所述解密方法涉及到用户和N个密钥分量托管系统。用户具有加密私钥分量d’0,密钥分量托管系统PKE[i]具有加密私钥分量d’i,用户的实际加密私钥为d’=d’0d’1…d’N(mod n),实际加密公钥为Q’=(d’0d’1…d’N)G。The decryption method involves the user and N key component escrow systems. The user has an encrypted private key component d'0, the key component escrow system PKE[i] has an encrypted private key component d'i, and the user's actual encrypted private key is d'=d'0d'1...d'N(mod n ), the actual encrypted public key is Q'=(d'0d'1...d'N)G.

设待解密的密文为C1||C2||C3,其中C1是一个椭圆曲线点。按照SM2解密算法,用户需要首先计算D=d’C1,然后再进行其它解密步骤。由用户和N个密钥分量托管系统联合完成解密的关键点就是联合计算D=d’C1。所述多方联合解密方案的步骤如下。Suppose the ciphertext to be decrypted is C1||C2||C3, where C1 is an elliptic curve point. According to the SM2 decryption algorithm, the user needs to calculate D=d'C1 first, and then perform other decryption steps. The key point for the joint completion of decryption by the user and the N key component escrow systems is the joint calculation of D=d'C1. The steps of the multi-party joint decryption scheme are as follows.

第1步:所述用户以自已的标识、输入的PIN码和硬件设备信息等重新构造用户的识别信息UID’[1],UID’[2],…,UID’[N],再随机选取k0∈[1,n-1],且k0≠(d’0)-1,计算DN+1=k0C1。Step 1: The user reconstructs the user's identification information UID'[1], UID'[2],..., UID'[N] with his own identification, input PIN code and hardware device information, and then randomly selects k0∈[1,n-1], and k0≠(d'0)-1, calculate DN+1=k0C1.

第2步:对于i=N,N-1,…,1,所述用户依次与所述PKE[i]交互执行:Step 2: For i=N, N-1,...,1, the user executes interactively with the PKE[i] in turn:

(2a)所述用户从所述PKE[i]获取一个随机数r[i]。(2a) The user obtains a random number r[i] from the PKE[i].

(2b)所述用户以所述PKE[i]的公钥对UID’[i]||r[i]加密生成一个密文C[i],发送Di+1和C[i]到PKE[i]。(2b) The user encrypts UID'[i]||r[i] with the public key of PKE[i] to generate a ciphertext C[i], and sends Di+1 and C[i] to PKE[ i].

(2c)所述PKE[i]对C[i]作私钥解密获取UID’[i]和r’[i],验证r’[i]=r[i] 是否成立,若成立,计算d’i=g(MK[i],UID’[i])(mod n)和Di=d’iDi+1,回送Di到用户端。(2c) The PKE[i] decrypts the private key of C[i] to obtain UID'[i] and r'[i], and verifies whether r'[i]=r[i] is true, and if it is true, calculate d 'i=g(MK[i], UID'[i])(mod n) and Di=d'iDi+1, return Di to the client.

第3步:所述用户计算D=(k0)-1d’0D1。Step 3: The user calculates D=(k0)-1d'0D1.

第4步:由于(k0)-1d’0D1=(k0)-1(d’0d’1…d’N)k0C1=d’C1,所以通过联合计算得出的D正是私钥解密所需要的计算结果,再按SM2解密算法的后续步骤即可解出明文。Step 4: Since (k0)-1d'0D1=(k0)-1(d'0d'1...d'N)k0C1=d'C1, the D obtained through the joint calculation is exactly what is needed for private key decryption According to the calculation result of the SM2 decryption algorithm, the plaintext can be solved.

附图说明Description of drawings

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。In order to more clearly illustrate the technical solutions in the embodiments of the present invention or the prior art, the following will briefly introduce the drawings that need to be used in the description of the embodiments or the prior art. Obviously, the accompanying drawings in the following description are only These are some embodiments of the present invention. Those skilled in the art can also obtain other drawings based on these drawings without creative work.

图1为本发明所述密钥分量托管系统与用户端关系结构图。Fig. 1 is a structural diagram of the relationship between the key component escrow system and the client according to the present invention.

图2为本发明所述密钥分量托管系统内部结构图。Fig. 2 is a diagram of the internal structure of the key component escrow system of the present invention.

图3为本发明所述签名密钥生成流程图。Fig. 3 is a flowchart of signature key generation according to the present invention.

图4为本发明所述加密密钥生成流程图。Fig. 4 is a flow chart of encryption key generation according to the present invention.

图5为本发明所述联合签名流程图。Fig. 5 is a flow chart of joint signature according to the present invention.

图6为本发明所述联合解密流程图。Fig. 6 is a flowchart of joint decryption according to the present invention.

具体实施方式detailed description

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。The following will clearly and completely describe the technical solutions in the embodiments of the present invention with reference to the accompanying drawings in the embodiments of the present invention. Obviously, the described embodiments are only some, not all, embodiments of the present invention. Based on the embodiments of the present invention, all other embodiments obtained by persons of ordinary skill in the art without making creative efforts belong to the protection scope of the present invention.

本发明提出了一种基于SM2算法的密钥分量托管方法和系统,下面根据附图详细说明本发明的具体实施方式。The present invention proposes a key component escrow method and system based on the SM2 algorithm. The specific implementation of the present invention will be described in detail below with reference to the accompanying drawings.

本发明所述基于SM2算法的密钥分量托管方法和系统所依托的密码算法为国密SM2公钥密码算法和SM3杂凑算法,与SM2相关的椭圆曲线参数按国密SM2算法标准设置。有限域上的椭圆曲线记为E(Fq),其基点记为G,G 的阶记为n,SM3杂凑函数记作h(x)。The key component escrow method and system based on the SM2 algorithm of the present invention rely on the national secret SM2 public key cryptographic algorithm and the SM3 hash algorithm, and the elliptic curve parameters related to SM2 are set according to the national secret SM2 algorithm standard. The elliptic curve on the finite field is denoted as E(Fq), its base point is denoted as G, the order of G is denoted as n, and the SM3 hash function is denoted as h(x).

图1所示为基于SM2算法的密钥分量托管系统的整体结构图。整个系统由N(N≥1)个密钥分量托管系统和众多用户端组成,用户端个数不受限制。每个用户端面对N个密钥托管系统,用户端私钥在生成时即被分割成N+1个分量,分别由用户端和N个密钥分量托管系统管理。密钥分量托管系统所管理的用户端私钥分量并不实际保存,而是通过一种映射算法,由密钥分量托管系统的系统主密钥和用户端的识别信息计算得出,在密钥生成阶段确定,在密钥使用阶段重新计算后恢复,使用完成后自动销毁。这种密钥分量托管方式的有益效果是不需要实际存储用户端私钥分量,节省大量的存储资源和密码设备,对用户端数量没有限制,大大提高系统的运行效率和服务水平。Figure 1 shows the overall structure of the key component escrow system based on the SM2 algorithm. The whole system is composed of N (N≥1) key component escrow systems and many client terminals, and the number of client terminals is not limited. Each client faces N key escrow systems, and the client private key is divided into N+1 components when it is generated, which are managed by the client and N key component escrow systems respectively. The client’s private key component managed by the key component escrow system is not actually saved, but is calculated from the system master key of the key component escrow system and the identification information of the client through a mapping algorithm. The stage is determined, it will be restored after recalculation in the key usage stage, and it will be automatically destroyed after the use is completed. The beneficial effect of this key component escrow method is that it does not need to actually store the private key component of the client, saves a lot of storage resources and cryptographic devices, has no limit on the number of client terminals, and greatly improves the operating efficiency and service level of the system.

图2所示是密钥分量托管系统的内部结构。所述密钥分量托管系统由服务单元、密钥生成单元、签名运算单元、解密运算单元构成。服务单元接受用户端请求,与用户端之间进行安全通信,对用户端身份进行确认,为用户端提供密钥生成、联合签名和联合解密服务。密钥生成单元采用系统主密钥对用户端提供的识别信息进行一种分散映射,在用户端密钥生成阶段和用户端密钥使用阶段,为用户端生成或恢复私钥分量。签名运算单元执行联合签名运算,以用户端的私钥分量对所述消息摘要值进行部分签名运算。解密运算单元执行联合解密运算,以用户端的私钥分量对所述数据进行部分解密运算。Figure 2 shows the internal structure of the key component escrow system. The key component escrow system is composed of a service unit, a key generation unit, a signature calculation unit, and a decryption calculation unit. The service unit accepts the request from the client, conducts secure communication with the client, confirms the identity of the client, and provides key generation, joint signature and joint decryption services for the client. The key generation unit uses the system master key to perform a distributed mapping on the identification information provided by the client, and generates or restores the private key component for the client during the client key generation stage and the client key use stage. The signature operation unit executes a joint signature operation, and uses the private key component of the client to perform a partial signature operation on the message digest value. The decryption operation unit executes a joint decryption operation, and performs a partial decryption operation on the data with the private key component of the client.

为帮助理解本发明的实质内容,图3到图6给出了具体的密钥生成和密钥使用的实施步骤,并给出一个具体的映射函数g(MK,UID)=h(MK||UID)(mod n),其中h(x)为SM3杂凑函数。In order to help understand the essence of the present invention, Fig. 3 to Fig. 6 have provided the implementation steps of specific key generation and key use, and provide a specific mapping function g(MK, UID)=h(MK|| UID)(mod n), where h(x) is the SM3 hash function.

图3所示为本发明所述签名密钥生成流程,包括以下几个步骤:Figure 3 shows the signature key generation process of the present invention, including the following steps:

步骤(1):所述用户端设置用户端识别信息UID[i],再设置初始公钥参数 QN+1=G。Step (1): The user terminal sets the user terminal identification information UID[i], and then sets the initial public key parameter QN+1=G.

步骤(2):所述用户端以PKE[N]的公钥对UID[N]加密,发送加密的UID[N] 和QN+1到PKE[N]。PKE[N]使用私钥解密获取所述用户端UID[N],计算dN= h(MK[N]||UID[N])(modn),QN=(dN)-1QN+1,回送QN到用户端,将dN作为用户端的第N个签名私钥分量,但不需要保存。Step (2): The client encrypts UID[N] with the public key of PKE[N], and sends the encrypted UID[N] and QN+1 to PKE[N]. PKE[N] uses the private key to decrypt and obtain the client UID[N], calculate dN=h(MK[N]||UID[N])(modn), QN=(dN)-1QN+1, and return QN To the client, dN is used as the Nth signature private key component of the client, but it does not need to be saved.

步骤(3):对于i=N-1,…,2,所述用户端以PKE[i]的公钥对UID[i]加密,发送加密的UID[i]和Qi+1到PKE[i]。PKE[i]使用私钥解密获取所述用户端 UID[i],计算di=h(MK[i]||UID[i])(mod n),Qi=(di)-1Qi+1,回送Qi到用户端,将di作为用户端的第i个签名私钥分量,但不需要保存。Step (3): For i=N-1,...,2, the client encrypts UID[i] with the public key of PKE[i], and sends encrypted UID[i] and Qi+1 to PKE[i] ]. PKE[i] uses the private key to decrypt and obtain the client UID[i], calculate di=h(MK[i]||UID[i])(mod n), Qi=(di)-1Qi+1, send back Qi arrives at the user end, and di is used as the i-th signature private key component of the user end, but it does not need to be saved.

步骤(4):所述用户端以PKE[1]的公钥对UID[1]加密,发送加密的UID[1] 和Q2到PKE[1]。PKE[1]使用私钥解密获取所述用户端UID[1],计算d1=h(MK[1]||UID[1])(modn),Q1=(d1)-1Q2,回送Q1到用户端,将d1作为用户端的第1个签名私钥分量,但不需要保存。Step (4): The client encrypts UID[1] with the public key of PKE[1], and sends the encrypted UID[1] and Q2 to PKE[1]. PKE[1] uses the private key to decrypt and obtain the client UID[1], calculate d1=h(MK[1]||UID[1])(modn), Q1=(d1)-1Q2, and send Q1 back to the user On the client side, use d1 as the first signature private key component on the client side, but it does not need to be saved.

步骤(5):所述用户端随机选取d0∈[1,n-1],计算Q0=(d0)-1Q1,Q=Q0-G,将d0作为用户端的签名私钥分量保存,将Q作为用户端的实际签名公钥保存,同时保存{Q0,Q1,…,QN}。Step (5): The client randomly selects d0∈[1,n-1], calculates Q0=(d0)-1Q1, Q=Q0-G, saves d0 as the signature private key component of the client, and uses Q as The actual signature public key of the client is saved, and {Q0, Q1,...,QN} are saved at the same time.

图4所示为本发明所述加密密钥生成流程,包括以下几个步骤:Figure 4 shows the encryption key generation process of the present invention, including the following steps:

步骤(6):所述用户端以自已的标识、输入的PIN码和硬件设备信息等构造一组用户端识别信息,并将所述用户端识别信息记为UID’[i],再设置初始值Q’N+1=G。Step (6): The user terminal constructs a set of user terminal identification information with its own identification, input PIN code and hardware device information, and records the user terminal identification information as UID'[i], and then sets the initial Value Q'N+1=G.

步骤(7):所述用户端以PKE[N]的公钥对UID’[N]加密,发送加密的UID’ [N]和Q’N+1到PKE[N]。PKE[N]使用私钥解密获取所述用户端UID’[N],计算d’N=h(MK[N]||UID’[N])(mod n),Q’N=d’NQN+1,回送Q’N到用户端,将d’N作为用户端的第N个加密私钥分量,但不需要保存。Step (7): The client encrypts the UID'[N] with the public key of PKE[N], and sends the encrypted UID'[N] and Q'N+1 to PKE[N]. PKE[N] uses the private key to decrypt and obtain the client UID'[N], calculate d'N=h(MK[N]||UID'[N])(mod n), Q'N=d'NQN +1, send Q'N back to the client, and use d'N as the Nth encrypted private key component of the client, but it does not need to be saved.

步骤(8):对于i=N-1,…,2,所述用户端以PKE[i]的公钥对UID’[i]加密,发送加密的UID’[i]和Q’i+1到PKE[i]。PKE[i]使用私钥解密获取所述用户端UID’[i],计算d’i=h(MK[i]||UID’[i])(mod n),Q’i=d’iQi+1,回送Q’ i到用户端,将d’i作为用户端的第i个加密私钥分量,但不需要保存。Step (8): For i=N-1,...,2, the client encrypts the UID'[i] with the public key of PKE[i], and sends the encrypted UID'[i] and Q'i+1 to PKE[i]. PKE[i] uses the private key to decrypt and obtain the client UID'[i], calculate d'i=h(MK[i]||UID'[i])(mod n), Q'i=d'iQi +1, send Q' i back to the client, and use d'i as the i-th encrypted private key component of the client, but it does not need to be saved.

步骤(9):所述用户端以PKE[1]的公钥对UID’[1]加密,发送加密的UID’[1]和Q’2到PKE[1]。PKE[1]使用私钥解密获取所述用户端UID’[1],计算d’ 1=h(MK[1]||UID’[1])(mod n),Q’1=d’1Q2,回送Q’1到用户端,将d’ 1作为用户的第1个加密私钥分量,但不需要保存。Step (9): The client encrypts UID'[1] with the public key of PKE[1], and sends encrypted UID'[1] and Q'2 to PKE[1]. PKE[1] uses the private key to decrypt and obtain the client UID'[1], calculate d' 1=h(MK[1]||UID'[1])(mod n), Q'1=d'1Q2 , send Q'1 back to the client, and use d'1 as the first encrypted private key component of the user, but it does not need to be saved.

步骤(10):所述用户端随机选取d’0∈[1,n-1],计算Q’0=d’0Q1,Q’=Q’0,将d’0作为用户端的加密私钥分量保存,将Q’作为用户端的实际加密公钥保存。Step (10): The client randomly selects d'0∈[1,n-1], calculates Q'0=d'0Q1, Q'=Q'0, and uses d'0 as the encrypted private key component of the client Save, save Q' as the actual encrypted public key of the client.

图5所示为本发明所述联合签名流程,包括以下几个步骤:Figure 5 shows the joint signature process of the present invention, including the following steps:

步骤(11):所述用户端以自已的标识、输入的PIN码和硬件设备信息等重新构造用户端的识别信息UID[i],再随机选取k0∈[1,n-1],计算R0=k0Q0。设待签名的消息为M,所述用户端计算摘要值e=h(Z||M),其中Z为所述用户端的标识信息和公钥信息。Step (11): The user terminal reconstructs the identification information UID[i] of the user terminal with its own identification, input PIN code and hardware device information, etc., then randomly selects k0∈[1,n-1], and calculates R0= k0Q0. Assuming that the message to be signed is M, the client calculates a digest value e=h(Z||M), where Z is the identification information and public key information of the client.

步骤(12):所述用户端发送R0和Q1到PKE[1],PKE[1]随机选取k1∈ [1,n-1],计算R1=R0+k1Q1,回送R1到用户端。Step (12): The client sends R0 and Q1 to PKE[1], and PKE[1] randomly selects k1∈[1,n-1], calculates R1=R0+k1Q1, and sends R1 back to the client.

步骤(13):对于i=2,…,N-1,所述用户端发送Ri-1和Qi到PKE[i],PKE[i] 随机选取ki∈[1,n-1],计算Ri=Ri-1+kiQi,回送Ri到用户端。Step (13): For i=2,...,N-1, the client sends Ri-1 and Qi to PKE[i], PKE[i] randomly selects ki∈[1,n-1], and calculates Ri =Ri-1+kiQi, send Ri back to the user end.

步骤(14):所述用户端发送RN-1和QN到PKE[N],PKE[N]随机选取kN ∈[1,n-1],计算RN=RN-1+kNQN,回送RN到用户端。Step (14): The client sends RN-1 and QN to PKE[N], PKE[N] randomly selects kN ∈ [1,n-1], calculates RN=RN-1+kNQN, and sends RN back to the user end.

步骤(15):设RN=(x1,y1),所述用户端计算r=(e+x1)(mod n)。Step (15): Assuming RN=(x1, y1), the UE calculates r=(e+x1)(mod n).

步骤(16):所述用户端以所述PKE[N]的公钥对UID[N]||RN加密,连同r 发送到PKE[N]。所述PKE[N]用私钥解密获取UID[N]和Ri’,验证R’N=RN 是否成立,若成立,再计算签名私钥分量dN=h(MK[N]||UID[N])(mod n)和部分签名sN=kN+rdi(mod n),回送所述部分签名sN到用户端。Step (16): The client encrypts UID[N]||RN with the public key of PKE[N], and sends it to PKE[N] together with r. The PKE[N] decrypts with the private key to obtain UID[N] and Ri', verifies whether R'N=RN is established, and if it is established, then calculates the signature private key component dN=h(MK[N]||UID[N ])(mod n) and a partial signature sN=kN+rdi(mod n), and send the partial signature sN back to the client.

步骤(17):所述用户端在收到所述PKE[N]的部分签名sN后,计算R’= RN-1+sNQN–rG,检验R’=RN是否成立,若成立,则接受所述PKE[N] 的部分签名sN。Step (17): After receiving the partial signature sN of the PKE[N], the client calculates R'=RN-1+sNQN-rG, checks whether R'=RN is established, and if established, accepts the Partial signature sN of the above PKE[N].

步骤(18):对于i=N-1,…,2,所述用户端以所述PKE[i]的公钥对UID[i]||Ri 加密,连同si+1发送到PKE[i]。所述PKE[i]用私钥解密获取UID[i]和Ri’,验证Ri’=Ri是否成立,若成立,再计算签名私钥分量di=h(MK[i]||UID[i])(mod n)和部分签名si=ki+si+1di(mod n),回送所述部分签名si到用户端。所述用户端在收到所述PKE[i]的部分签名si后,计算R’=Ri-1+siQi–rG,检验 R’=RN是否成立,若成立,则接受PKE[i]的部分签名si。Step (18): For i=N-1,...,2, the client encrypts UID[i]||Ri with the public key of PKE[i], and sends it to PKE[i] together with si+1 . The PKE[i] decrypts with the private key to obtain UID[i] and Ri', verifies whether Ri'=Ri is established, if established, then calculates the signature private key component di=h(MK[i]||UID[i] )(mod n) and partial signature si=ki+si+1di(mod n), and send the partial signature si back to the client. After receiving the partial signature si of the PKE[i], the client calculates R'=Ri-1+siQi-rG, checks whether R'=RN is established, and if it is established, accepts the part of PKE[i] signature si.

步骤(19):所述用户端以所述PKE[1]的公钥对UID[1]||R1加密,连同s2 发送到PKE[1]。所述PKE[1]用私钥解密获取UID[1]和R1’,验证R1’=R1是否成立,若成立,再计算签名私钥分量d1=h(MK[1]||UID[1])(mod n)和部分签名s1=k1+s2d1(mod n),回送所述部分签名s1到用户端。Step (19): The client encrypts UID[1]||R1 with the public key of PKE[1], and sends it to PKE[1] together with s2. The PKE[1] decrypts with the private key to obtain UID[1] and R1', verifies whether R1'=R1 is established, and if established, calculates the signature private key component d1=h(MK[1]||UID[1] )(mod n) and partial signature s1=k1+s2d1(mod n), and send the partial signature s1 back to the client.

步骤(20):所述用户端在收到所述PKE[1]的部分签名s1后,计算R’=R0 +s1Qi–rG,检验R’=RN是否成立,若成立,则接受PKE[1]的部分签名s1。所述用户端再计算s=k0+s1d0–r(mod n),生成最终签名(r,s)。Step (20): After receiving the partial signature s1 of the PKE[1], the client calculates R'=R0+s1Qi-rG, checks whether R'=RN is established, and if established, accepts the PKE[1] ] of the partial signature s1. The client calculates s=k0+s1d0−r(mod n) again to generate the final signature (r, s).

图6所示为本发明所述联合解密流程,包括以下几个步骤:Figure 6 shows the joint decryption process of the present invention, including the following steps:

步骤(21):所述用户端以自已的标识、输入的PIN码和硬件设备信息等重新构造用户端的识别信息UID’[i],再随机选取k0∈[1,n-1],且k0≠(d’0)-1,计算DN+1=k0C1。Step (21): The user terminal reconstructs the identification information UID'[i] of the user terminal with its own identification, input PIN code and hardware device information, and then randomly selects k0∈[1,n-1], and k0 ≠(d'0)-1, calculate DN+1=k0C1.

步骤(22):所述用户端以所述PKE[N]的公钥对UID’[N]加密,连同DN+1 发送到PKE[N]。所述PKE[N]用私钥解密获取UID’[N],计算d’N= h(MK[N]||UID’[N])(mod n)和DN=d’N DN+1,回送DN到用户端。Step (22): The client encrypts UID'[N] with the public key of PKE[N], and sends it to PKE[N] together with DN+1. The PKE[N] decrypts with the private key to obtain UID'[N], calculates d'N=h(MK[N]||UID'[N])(mod n) and DN=d'N DN+1, Return the DN to the client.

步骤(23):对于i=N-1,…,2,所述用户端以所述PKE[i]的公钥对UID’[i] 加密,连同Di+1发送到PKE[i]。所述PKE[i]用私钥解密获取UID’[i],计算 d’i=h(MK[i]||UID’[i])(mod n)和Di=d’iDi+1,回送Di到用户端。Step (23): For i=N-1,...,2, the client encrypts UID'[i] with the public key of PKE[i], and sends it to PKE[i] together with Di+1. The PKE[i] decrypts with the private key to obtain UID'[i], calculates d'i=h(MK[i]||UID'[i])(mod n) and Di=d'iDi+1, and sends back Die to the client.

步骤(24):所述用户端以所述PKE[1]的公钥对UID’[1]加密,连同D2发送到PKE[1]。所述PKE[1]用私钥解密获取UID’[1],计算d’1=h(MK[1]||UID’ [1])(mod n)和D1=d’1D2,回送D1到用户端。Step (24): The client encrypts UID'[1] with the public key of PKE[1], and sends it to PKE[1] together with D2. The PKE[1] decrypts with the private key to obtain UID'[1], calculates d'1=h(MK[1]||UID'[1])(mod n) and D1=d'1D2, and returns D1 to user terminal.

步骤(25):所述用户端计算D=(k0)-1d’0D1。Step (25): The UE calculates D=(k0)-1d'0D1.

步骤(26):所述用户端按SM2解密算法的后续步骤解出明文。Step (26): The client decrypts the plaintext according to the subsequent steps of the SM2 decryption algorithm.

上述实施例仅从原理上描述了本发明的内容,应理解,此处给出的实施例和映射函数仅用于说明本发明的基本思想,并不能限制本发明所具有的一般性。任何对本发明实质内容所作的数学上的变形和修饰都包含在本发明专利的保护范围。The above embodiments only describe the content of the present invention in principle, and it should be understood that the embodiments and mapping functions given here are only used to illustrate the basic idea of the present invention, and cannot limit the generality of the present invention. Any mathematical deformation and modification made to the essential content of the present invention are included in the protection scope of the patent of the present invention.

Claims (8)

1.一种基于SM2公钥密码算法的密钥分量托管方法,其特征在于:应用于由N(N≥1)个不同的密钥分量托管系统所构成的一个密钥托管网络;所述方法包括:1. A key component escrow method based on the SM2 public key cryptographic algorithm, characterized in that: it is applied to a key escrow network formed by N (N≥1) different key component escrow systems; the method include: 采用密钥分割存储和多方联合计算的方式,将用户端的SM2私钥分割为N+1个分量;Using the method of key split storage and multi-party joint calculation, the SM2 private key of the client is divided into N+1 components; 由用户端和N个不同的密钥分量托管系统分散保存;Decentralized storage by the client and N different key component escrow systems; 在需要使用私钥对一个消息作数字签名时,由用户端和N个密钥分量托管系统联合完成签名计算,其中,计算形成的签名可使用用户端的公钥进行验证;When a private key needs to be used to digitally sign a message, the client and N key component escrow systems jointly complete the signature calculation, and the signature formed by the calculation can be verified using the public key of the client; 在需要对用户端公钥加密后的密文进行解密时,由用户端和N个密钥分量托管系统联合完成对所述密文的解密计算,实现对所述密文的完整解密。When it is necessary to decrypt the ciphertext encrypted by the public key of the user terminal, the user terminal and the N key component escrow systems jointly complete the decryption calculation of the ciphertext, and realize the complete decryption of the ciphertext. 2.根据权利要求1所述的密钥分量托管方法,其特征在于:所述方法还包括:2. The key component escrow method according to claim 1, wherein the method further comprises: 在每个密钥分量托管系统中生成一个主密钥;Generate a master key in each key component escrow system; 通过一种标识映射算法,在用户密钥生成阶段,密钥分量托管系统采用所生成的主密钥对用户提供的识别信息进行分散映射,生成对应的私钥分量;其中,所述识别信息为:用户标识、用户设置的PIN码和用户端设备信息的一种组合或叠加;Through an identification mapping algorithm, in the user key generation stage, the key component escrow system uses the generated master key to perform decentralized mapping on the identification information provided by the user to generate the corresponding private key component; wherein, the identification information is : A combination or superposition of user identification, PIN code set by the user, and user terminal equipment information; 在用户端需使用自已的私钥分量时,按所述标识映射算法恢复用户端的私钥分量后,再进行相关密码运算。When the user terminal needs to use its own private key component, the relevant cryptographic operation is performed after the private key component of the user terminal is recovered according to the identification mapping algorithm. 3.根据权利要求1所述的密钥分量托管方法,其特征在于:本发明所依托的密码算法为国密SM2公钥密码算法,与SM2相关的椭圆曲线参数按国密SM2算法标准设置,有限域上的椭圆曲线记为E(Fq),其基点记为G,G的阶记为n;本发明涉及到的实体包括用户端和N(N≥1)个密钥分量托管系统,N个密钥分量托管系统分别记为PKE[1],PKE[2],…,PKE[N];每个用户端针对N个密钥分量托管系统,分别设置N个识别信息UID[1],UID[2],…,UID[N],而用户端数量不限;在系统运行初期,密钥分量托管系统PKE[i]随机生成1个系统主密钥MK[i]和1对SM2非对称密钥,系统主密钥MK[i]也可以用非对称密钥的私钥充当;密钥分量托管系统PKE[i]选取一个密钥分量映射生成函数g(x,y),对任意用户端,通过对系统主密钥MK[i]和用户识别信息UID[i]的映射可生成一个私钥分量di=g(MK[i],UID[i]),且di∈[1,n-1]。3. The key component trusteeship method according to claim 1, characterized in that: the cryptographic algorithm relied on by the present invention is the national secret SM2 public key cryptographic algorithm, and the elliptic curve parameters related to SM2 are set according to the national secret SM2 algorithm standard, The elliptic curve on the finite field is marked as E(Fq), its base point is marked as G, and the order of G is marked as n; the entities involved in the present invention include the client and N (N≥1) key component escrow systems, N The key component escrow systems are respectively denoted as PKE[1], PKE[2], ..., PKE[N]; each client sets up N identification information UID[1] for the N key component escrow systems, UID[2],..., UID[N], and the number of clients is not limited; at the initial stage of system operation, the key component escrow system PKE[i] randomly generates a system master key MK[i] and a pair of SM2 Symmetric key, the system master key MK[i] can also be used as the private key of an asymmetric key; the key component escrow system PKE[i] selects a key component mapping generation function g(x, y), for any On the client side, a private key component d i =g(MK[i],UID[i]) can be generated by mapping the system master key MK[i] and user identification information UID[i], and d i ∈ [ 1,n-1]. 4.根据权利要求1所述的密钥分量托管方法,其特征在于:通过以下步骤可完成用户签名密钥的生成与分割存储:4. The key component escrow method according to claim 1, characterized in that: the generation and split storage of the user signature key can be completed through the following steps: 第1步:所述用户端以自已的标识、输入的PIN码和硬件设备信息构造N个用户识别信息UID[1],UID[2],…,UID[N],再设置初始公钥参数QN+1=G;Step 1: The client constructs N user identification information UID[1], UID[2],..., UID[N] with its own identity, input PIN code and hardware device information, and then sets initial public key parameters Q N+1 = G; 第2步:对于i=N,N-1,…,1,所述用户端依次与PKE[i]交互执行:Step 2: For i=N, N-1, ..., 1, the client executes interactively with PKE[i] in turn: (2a)所述用户端以PKE[i]的公钥对UID[i]加密生成一个密文C[i],发送C[i]和Qi+1到PKE[i];(2a) The client encrypts UID[i] with the public key of PKE[i] to generate a ciphertext C[i], and sends C[i] and Q i+1 to PKE[i]; (2b)所述PKE[i]使用私钥对C[i]解密获取所述用户识别信息UID[i],计算di=g(MK[i],UID[i]),Qi=(di)-1Qi+1,回送Qi到用户端,将di作为用户的第i个签名私钥分量,但不需保存;(2b) The PKE[i] uses the private key to decrypt C[i] to obtain the user identification information UID[i], calculate d i =g(MK[i], UID[i]), Q i =( d i ) -1 Q i+1 , send Q i back to the client, and use d i as the i-th signature private key component of the user, but it does not need to be saved; (2c)所述用户保存Qi(2c) The user saves Q i ; 第3步:所述用户端随机选取d0∈[1,n-1],计算Q0=(d0)-1Q1,Q=Q0-G,将d0作为用户端的签名私钥分量保存,将Q作为用户端的实际签名公钥保存,同时保存Q0Step 3: The client randomly selects d 0 ∈ [1,n-1], calculates Q 0 =(d 0 ) -1 Q 1 , Q=Q 0 -G, and uses d 0 as the signature private key of the client Save the component, save Q as the actual signature public key of the client, and save Q 0 at the same time; 通过上述步骤生成的用户实际签名私钥d=(d0d1d2…dN)-1-1,实际签名公钥Q=dG,实际签名私钥在生成过程中并未出现,且对用户和N个密钥分量托管系统都不可知。The user’s actual signature private key generated through the above steps d=(d 0 d 1 d 2 …d N ) -1 -1, the actual signature public key Q=dG, the actual signature private key did not appear during the generation process, and the Both the user and the N key component escrow system are agnostic. 5.根据权利要求1所述的密钥分量托管方法,其特征在于:通过以下步骤可完成用户加密密钥的生成与分割存储:5. The key component escrow method according to claim 1, characterized in that: the generation and split storage of user encryption keys can be completed through the following steps: 第1步:所述用户以自已的标识、输入的PIN码和硬件设备信息构造一个用户识别信息,并将所述用户识别信息记为UID’[1],UID’[2],…,UID’[N],再设置初始值Q’N+1=G;Step 1: The user constructs a user identification information with his own identification, input PIN code and hardware device information, and records the user identification information as UID'[1], UID'[2],..., UID '[N], then set the initial value Q' N+1 = G; 第2步:对于i=N,N-1,…,1,所述用户依次与PKE[i]交互执行:Step 2: For i=N, N-1,...,1, the user executes interactively with PKE[i] in turn: (2a)所述用户以PKE[i]的公钥对UID’[i]加密生成一个密文C[i],发送C[i]和Q’i+1到PKE[i];(2a) The user encrypts UID'[i] with the public key of PKE[i] to generate a ciphertext C[i], and sends C[i] and Q' i+1 to PKE[i]; (2b)所述PKE[i]使用私钥对C[i]解密获取所述用户UID’[i],计算di’=g(MK[i],UID’[i]),Q’i=di’Q’i+1,回送Q’i到用户端,将d’i作为用户的第i个加密私钥分量,但不需保存;(2b) The PKE[i] uses the private key to decrypt C[i] to obtain the user UID'[i], and calculate d i '=g(MK[i], UID'[i]), Q' i =d i 'Q' i+1 , return Q' i to the client, and use d' i as the i-th encrypted private key component of the user, but it does not need to be saved; 第3步:所述用户随机选取d’0∈[1,n-1],计算Q’0=d’0Q1,Q’=Q’0,将d’0作为用户端的加密私钥分量保存,将Q’作为用户的实际加密公钥保存;Step 3: The user randomly selects d' 0 ∈ [1,n-1], calculates Q' 0 =d' 0 Q 1 , Q'=Q' 0 , and uses d' 0 as the encrypted private key component of the client Save, save Q' as the user's actual encrypted public key; 通过上述步骤生成的用户实际加密私钥d’=d’0d’1d’2…d’N,实际加密公钥Q’=d’G,实际加密私钥在生成过程中并未出现,且对用户和N个密钥分量托管系统都不可知。The user's actual encrypted private key d'=d' 0 d' 1 d' 2 ...d' N generated through the above steps, the actual encrypted public key Q'=d'G, the actual encrypted private key did not appear during the generation process, And it is agnostic to users and N key component escrow systems. 6.根据权利要求1所述的密钥分量托管方法,其特征在于:用户端和N个密钥分量托管系统可联合完成对一个消息的SM2签名,设待签名的消息为M,e=h(Z||M)是对消息M的摘要值,其中,Z是与用户公钥和用户标识有关的信息,所述多方联合签名步骤如下:6. The key component escrow method according to claim 1, characterized in that: the client and N key component escrow systems can jointly complete the SM2 signature of a message, assuming that the message to be signed is M, e=h (Z||M) is the digest value of the message M, where Z is the information related to the user public key and the user ID, and the multi-party joint signature steps are as follows: 第1步:所述用户端以自已的标识、输入的PIN码和硬件设备信息等重新构造用户的识别信息UID[1],UID[2],…,UID[N],再随机选取k0∈[1,n-1],计算R0=k0Q0Step 1: The client reconstructs the user's identification information UID[1], UID[2],..., UID[N] with its own identification, input PIN code and hardware device information, and then randomly selects k 0 ∈[1,n-1], calculate R 0 =k 0 Q 0 ; 第2步:对于i=1,2,…,N,所述用户依次与PKE[i]交互执行:Step 2: For i=1,2,...,N, the user executes interactively with PKE[i] in turn: (2a)用户端发送Ri-1和Qi到PKE[i];(2a) The client sends R i-1 and Q i to PKE[i]; (2b)PKE[i]随机选取ki∈[1,n-1],计算Ri=Ri-1+kiQi,回送Ri到用户;(2b) PKE[i] randomly selects k i ∈ [1,n-1], calculates R i =R i-1 +k i Q i , and returns R i to the user; 第3步:设RN=(x1,y1),所述用户计算r=(e+x1)(mod n),并记sN+1=r;Step 3: Set R N =(x 1 ,y 1 ), the user calculates r=(e+x 1 )(mod n), and writes s N+1 =r; 第4步:对于i=N,N-1,…,1,所述用户依次与PKE[i]交互执行:Step 4: For i=N, N-1,...,1, the user executes interactively with PKE[i] in turn: (4a)所述用户端以所述PKE[i]的公钥对UID[i]||Ri加密生成一个密文C[i],发送C[i]和si+1到PKE[i];(4a) The client encrypts UID[i]||R i with the public key of PKE[i] to generate a ciphertext C[i], and sends C[i] and s i+1 to PKE[i ]; (4b)所述PKE[i]对C[i]作私钥解密获取UID[i]和Ri’,验证Ri’=Ri是否成立,若成立,再计算签名私钥分量di=g(MK[i],UID[i])和部分签名si=ki+si+1di(mod n),回送所述部分签名si到用户端;(4b) The PKE[i] decrypts the private key of C[i] to obtain UID[i] and R i ', verify whether R i '=R i is established, and if it is established, calculate the signature private key component d i = g(MK[i], UID[i]) and partial signature s i =k i +s i+1 d i (mod n), return the partial signature s i to the client; (4c)所述用户端在收到所述PKE[i]的部分签名si后,计算R’=Ri-1+siQi–rG,检验R’=RN是否成立,若成立,则接受PKE[i]的部分签名si(4c) After receiving the partial signature s i of the PKE[i], the client calculates R'=R i-1 +s i Q i -rG, and checks whether R'=R N is established, and if it is established , then accept the partial signature s i of PKE[i]; 第5步:所述用户端计算s=k0+s1d0–r(mod n),生成最终签名(r,s);Step 5: The client calculates s=k 0 +s 1 d 0 -r(mod n) to generate the final signature (r, s); 按此步骤生成的签名(r,s)可以使用签名公钥Q按SM2签名的验证算法进行验证。The signature (r, s) generated by this step can be verified using the signature public key Q according to the SM2 signature verification algorithm. 7.根据权利要求1所述的密钥分量托管方法,其特征在于:用户端和N个密钥分量托管系统可联合完成对一个公钥加密的密文进行解密,设待解密的密文为C1||C2||C3,其中C1是一个椭圆曲线点,所述多方联合解密步骤如下:7. The key component escrow method according to claim 1, characterized in that: the client and N key component escrow systems can jointly complete the decryption of a public key encrypted ciphertext, assuming that the ciphertext to be decrypted is C 1 ||C 2 ||C 3 , where C 1 is an elliptic curve point, and the multi-party joint decryption steps are as follows: 第1步:所述用户端以自已的标识、输入的PIN码和硬件设备信息重新构造用户的识别信息UID’[1],UID’[2],…,UID’[N],再随机选取k0∈[1,n-1],且k0≠(d’0)-1,计算DN+1=k0C1Step 1: The client reconstructs the user's identification information UID'[1], UID'[2],..., UID'[N] with its own identification, input PIN code and hardware device information, and then randomly selects k 0 ∈[1,n-1], and k 0 ≠(d' 0 ) -1 , calculate D N+1 = k 0 C 1 ; 第2步:对于i=N,N-1,…,1,所述用户依次与所述PKE[i]交互执行:Step 2: For i=N, N-1,...,1, the user executes interactively with the PKE[i] in turn: (2a)所述用户端从所述PKE[i]获取一个随机数r[i];(2a) The client obtains a random number r[i] from the PKE[i]; (2b)所述用户端以所述PKE[i]的公钥对UID’[i]||r[i]加密生成一个密文C[i],发送Di+1和C[i]到PKE[i];(2b) The client encrypts UID'[i]||r[i] with the public key of PKE[i] to generate a ciphertext C[i], and sends D i+1 and C[i] to PKE[i]; (2c)所述PKE[i]对C[i]作私钥解密获取UID’[i]和r’[i],验证r’[i]=r[i]是否成立,若成立,计算d’i=g(MK[i],UID’[i])和Di=d’iDi+1,回送Di到用户端;(2c) The PKE[i] decrypts the private key of C[i] to obtain UID'[i] and r'[i], and verifies whether r'[i]=r[i] is established, and if it is established, calculate d ' i =g(MK[i], UID'[i]) and D i =d' i D i+1 , return D i to the client; 第3步:所述用户端计算D=(k0)-1d’0D1Step 3: the client calculates D=(k 0 ) -1 d' 0 D 1 ; 第4步:所述用户端令D=(x2,y2),再按SM2解密算法的后续步骤解出明文。Step 4: The client sets D=(x 2 , y 2 ), and then decrypts the plaintext according to the subsequent steps of the SM2 decryption algorithm. 8.一种密钥分量托管系统,其特征在于:所述密钥分量托管系统由服务单元、密钥生成单元、签名运算单元、解密运算单元构成;服务单元接受用户请求,与用户之间进行安全通信,对用户身份进行确认,为用户提供密钥生成、联合签名和联合解密服务;密钥生成单元采用系统主密钥对用户端提供的识别信息进行一种分散映射,在用户端密钥生成阶段和用户端密钥使用阶段,为用户端生成或恢复私钥分量;签名运算单元执行联合签名运算,以用户的私钥分量对所述消息摘要值进行部分签名运算;解密运算单元执行联合解密运算,以用户的私钥分量对所述数据进行部分解密运算。8. A key component escrow system, characterized in that: the key component escrow system is composed of a service unit, a key generation unit, a signature calculation unit, and a decryption calculation unit; the service unit accepts user requests and communicates with users. Secure communication, confirming the user's identity, providing users with key generation, joint signature and joint decryption services; the key generation unit uses the system master key to perform a decentralized mapping on the identification information provided by the user end, and the user end key In the generation stage and the client key use stage, the private key component is generated or restored for the client; the signature operation unit performs a joint signature operation, and uses the user’s private key component to perform a partial signature operation on the message digest value; the decryption operation unit performs a joint signature operation. Decryption operation, using the user's private key component to perform a partial decryption operation on the data.
CN201710253749.0A 2017-04-18 2017-04-18 A kind of key components trustship method and system based on SM2 algorithm Expired - Fee Related CN106961336B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710253749.0A CN106961336B (en) 2017-04-18 2017-04-18 A kind of key components trustship method and system based on SM2 algorithm

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710253749.0A CN106961336B (en) 2017-04-18 2017-04-18 A kind of key components trustship method and system based on SM2 algorithm

Publications (2)

Publication Number Publication Date
CN106961336A true CN106961336A (en) 2017-07-18
CN106961336B CN106961336B (en) 2019-11-26

Family

ID=59483712

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710253749.0A Expired - Fee Related CN106961336B (en) 2017-04-18 2017-04-18 A kind of key components trustship method and system based on SM2 algorithm

Country Status (1)

Country Link
CN (1) CN106961336B (en)

Cited By (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106972928A (en) * 2017-04-11 2017-07-21 北京奇艺世纪科技有限公司 A kind of fort machine private key management method, apparatus and system
CN107483212A (en) * 2017-08-15 2017-12-15 武汉信安珞珈科技有限公司 A kind of method of both sides' cooperation generation digital signature
CN107483191A (en) * 2017-08-16 2017-12-15 济南浪潮高新科技投资发展有限公司 A SM2 algorithm key split signature system and method
CN107864037A (en) * 2017-10-25 2018-03-30 深圳奥联信息安全技术有限公司 SM9 Combination with Digital endorsement method and device
CN108173648A (en) * 2017-12-29 2018-06-15 数安时代科技股份有限公司 Security processing method, equipment and storage medium based on private key escrow
CN108400868A (en) * 2018-01-17 2018-08-14 深圳市文鼎创数据科技有限公司 Storage method, device and the mobile terminal of seed key
CN108629583A (en) * 2018-04-16 2018-10-09 上海分赋信息科技有限公司 Mapped system and correlation method of the digital asset on mapping chain are realized based on distributed computing technology
CN108964923A (en) * 2018-06-22 2018-12-07 成都卫士通信息产业股份有限公司 Hide interactive SM2 endorsement method, system and the terminal of private key
CN109039611A (en) * 2018-08-31 2018-12-18 北京海泰方圆科技股份有限公司 Decruption key segmentation and decryption method, device, medium based on SM9 algorithm
CN109194478A (en) * 2018-11-19 2019-01-11 武汉大学 A kind of method that joint generates SM9 digital signature in many ways under Asymmetric
CN109257176A (en) * 2018-10-18 2019-01-22 天津海泰方圆科技有限公司 Decruption key segmentation and decryption method, device and medium based on SM2 algorithm
CN109586912A (en) * 2018-11-09 2019-04-05 天津海泰方圆科技有限公司 A kind of generation method, system, equipment and the medium of SM2 digital signature
CN109818741A (en) * 2017-11-22 2019-05-28 航天信息股份有限公司 A kind of decryption calculation method and device based on elliptic curve
CN109818754A (en) * 2019-02-28 2019-05-28 矩阵元技术(深圳)有限公司 Client is method, the equipment that multiple client and single server generate key
CN109818753A (en) * 2019-02-28 2019-05-28 矩阵元技术(深圳)有限公司 Selecting a client is the method and apparatus that multi-client multiserver generates key
CN109872155A (en) * 2019-02-22 2019-06-11 矩阵元技术(深圳)有限公司 Data processing method and device
CN109934585A (en) * 2019-03-08 2019-06-25 矩阵元技术(深圳)有限公司 A kind of endorsement method based on multi-party computations, apparatus and system
CN109934582A (en) * 2019-02-25 2019-06-25 矩阵元技术(深圳)有限公司 Digital cash transaction data processing method, server, client and system
CN110311881A (en) * 2018-03-27 2019-10-08 阿里健康信息技术有限公司 A kind of authorization method, encryption method and terminal device
CN110784320A (en) * 2019-11-04 2020-02-11 张冰 Distributed key implementation method and system and user identity management method and system
CN110868299A (en) * 2018-08-27 2020-03-06 上海铠射信息科技有限公司 Novel collaborative digital signature method and device
CN110943829A (en) * 2019-11-08 2020-03-31 中国电子科技网络信息安全有限公司 A method for three-party collaborative generation of SM2 signatures
CN111447065A (en) * 2019-01-16 2020-07-24 中国科学院软件研究所 Active and safe SM2 digital signature two-party generation method
CN111510299A (en) * 2020-04-10 2020-08-07 宁波富万信息科技有限公司 Joint digital signature generation method, electronic device, and computer-readable medium
CN111600717A (en) * 2020-05-12 2020-08-28 北京海益同展信息科技有限公司 SM 2-based decryption method and system, electronic device and storage medium
WO2020172882A1 (en) * 2019-02-28 2020-09-03 云图有限公司 Method and device for selecting client to generate key for multiple clients and multiple servers
WO2020172883A1 (en) * 2019-02-28 2020-09-03 云图有限公司 Method and electronic device for multiple clients and multiple servers to jointly generate keys
WO2020172884A1 (en) * 2019-02-28 2020-09-03 云图有限公司 Key management method in which servers separately generate key components, and electronic device
WO2020172886A1 (en) * 2019-02-28 2020-09-03 云图有限公司 Data processing method and apparatus, user terminal, management platform, and service device
WO2020172889A1 (en) * 2019-02-28 2020-09-03 云图有限公司 Key management method in which clients separately generate key components, and electronic device
CN111953675A (en) * 2020-08-10 2020-11-17 四川阵风科技有限公司 Key management method based on hardware equipment
WO2020232800A1 (en) * 2019-05-17 2020-11-26 深圳市网心科技有限公司 Data processing method and system in block chain network and related device
CN112653554A (en) * 2020-12-30 2021-04-13 成都卫士通信息产业股份有限公司 Signature method, system, equipment and readable storage medium
CN112800479A (en) * 2021-04-07 2021-05-14 支付宝(杭州)信息技术有限公司 Multi-party combined data processing method and device by using trusted third party
CN115396099A (en) * 2022-08-31 2022-11-25 北京神州数码方圆科技有限公司 Trusted custody method and system for asymmetric key, method and system for obtaining it
CN115499175A (en) * 2022-08-31 2022-12-20 临沂大学 Digital product authorization method and system based on private key storage
CN115580401A (en) * 2022-10-25 2023-01-06 商密(广州)信息科技有限公司 Certificateless SM2 secret key generation method based on verifiable secret sharing
CN116032655A (en) * 2023-02-13 2023-04-28 杭州天谷信息科技有限公司 Identity authentication method and system capable of resisting timing attack
CN116827542A (en) * 2023-08-29 2023-09-29 江苏省国信数字科技有限公司 Digital certificate management method and system of intelligent device

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101610514A (en) * 2009-07-23 2009-12-23 中兴通讯股份有限公司南京分公司 Authentication method, Verification System and certificate server
CN102664732A (en) * 2012-03-07 2012-09-12 南相浩 Implementation method and system for resisting quantum computation attack based on CPK public key system
CN103428172A (en) * 2012-05-18 2013-12-04 袁斌 Method for safely storing information and method for safely reading information
CN105227566A (en) * 2015-10-16 2016-01-06 中国联合网络通信集团有限公司 Cipher key processing method, key handling device and key handling system
CN105356997A (en) * 2015-08-06 2016-02-24 华南农业大学 Security distributed data management method based on public cloud
CN106549770A (en) * 2017-01-13 2017-03-29 武汉理工大学 SM2 digital signature generation method and system

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101610514A (en) * 2009-07-23 2009-12-23 中兴通讯股份有限公司南京分公司 Authentication method, Verification System and certificate server
CN102664732A (en) * 2012-03-07 2012-09-12 南相浩 Implementation method and system for resisting quantum computation attack based on CPK public key system
CN103428172A (en) * 2012-05-18 2013-12-04 袁斌 Method for safely storing information and method for safely reading information
CN105356997A (en) * 2015-08-06 2016-02-24 华南农业大学 Security distributed data management method based on public cloud
CN105227566A (en) * 2015-10-16 2016-01-06 中国联合网络通信集团有限公司 Cipher key processing method, key handling device and key handling system
CN106549770A (en) * 2017-01-13 2017-03-29 武汉理工大学 SM2 digital signature generation method and system

Cited By (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106972928A (en) * 2017-04-11 2017-07-21 北京奇艺世纪科技有限公司 A kind of fort machine private key management method, apparatus and system
CN106972928B (en) * 2017-04-11 2020-07-28 北京奇艺世纪科技有限公司 Bastion machine private key management method, device and system
CN107483212A (en) * 2017-08-15 2017-12-15 武汉信安珞珈科技有限公司 A kind of method of both sides' cooperation generation digital signature
CN107483191A (en) * 2017-08-16 2017-12-15 济南浪潮高新科技投资发展有限公司 A SM2 algorithm key split signature system and method
CN107483191B (en) * 2017-08-16 2020-04-14 浪潮集团有限公司 A SM2 algorithm key segmentation signature system and method
CN107864037A (en) * 2017-10-25 2018-03-30 深圳奥联信息安全技术有限公司 SM9 Combination with Digital endorsement method and device
CN109818741B (en) * 2017-11-22 2022-06-07 航天信息股份有限公司 Decryption calculation method and device based on elliptic curve
CN109818741A (en) * 2017-11-22 2019-05-28 航天信息股份有限公司 A kind of decryption calculation method and device based on elliptic curve
CN108173648A (en) * 2017-12-29 2018-06-15 数安时代科技股份有限公司 Security processing method, equipment and storage medium based on private key escrow
CN108173648B (en) * 2017-12-29 2021-01-26 数安时代科技股份有限公司 Digital security processing method, device and storage medium based on private key escrow
CN108400868B (en) * 2018-01-17 2021-06-15 深圳市文鼎创数据科技有限公司 Seed key storage method, device and mobile terminal
CN108400868A (en) * 2018-01-17 2018-08-14 深圳市文鼎创数据科技有限公司 Storage method, device and the mobile terminal of seed key
CN110311881A (en) * 2018-03-27 2019-10-08 阿里健康信息技术有限公司 A kind of authorization method, encryption method and terminal device
CN114205114B (en) * 2018-03-27 2023-12-29 阿里健康信息技术有限公司 Authorization method and terminal equipment
CN114205114A (en) * 2018-03-27 2022-03-18 阿里健康信息技术有限公司 Authorization method and terminal equipment
CN110311881B (en) * 2018-03-27 2022-01-14 阿里健康信息技术有限公司 Authorization method, encryption method and terminal equipment
WO2019200765A1 (en) * 2018-04-16 2019-10-24 上海分赋信息科技有限公司 System and corresponding method for realizing mapping of digital asset on mapping chain based on distributed technique
CN108629583A (en) * 2018-04-16 2018-10-09 上海分赋信息科技有限公司 Mapped system and correlation method of the digital asset on mapping chain are realized based on distributed computing technology
CN108964923B (en) * 2018-06-22 2021-07-20 成都卫士通信息产业股份有限公司 Interactive SM2 signature method, system and terminal for hiding private key
CN108964923A (en) * 2018-06-22 2018-12-07 成都卫士通信息产业股份有限公司 Hide interactive SM2 endorsement method, system and the terminal of private key
CN110868299A (en) * 2018-08-27 2020-03-06 上海铠射信息科技有限公司 Novel collaborative digital signature method and device
CN109039611A (en) * 2018-08-31 2018-12-18 北京海泰方圆科技股份有限公司 Decruption key segmentation and decryption method, device, medium based on SM9 algorithm
CN109039611B (en) * 2018-08-31 2019-05-21 北京海泰方圆科技股份有限公司 Decruption key segmentation and decryption method, device, medium based on SM9 algorithm
CN109257176A (en) * 2018-10-18 2019-01-22 天津海泰方圆科技有限公司 Decruption key segmentation and decryption method, device and medium based on SM2 algorithm
CN109586912A (en) * 2018-11-09 2019-04-05 天津海泰方圆科技有限公司 A kind of generation method, system, equipment and the medium of SM2 digital signature
CN109194478B (en) * 2018-11-19 2021-12-07 武汉大学 Method for generating SM9 digital signature by combining multiple parties under asymmetric environment
CN109194478A (en) * 2018-11-19 2019-01-11 武汉大学 A kind of method that joint generates SM9 digital signature in many ways under Asymmetric
CN111447065A (en) * 2019-01-16 2020-07-24 中国科学院软件研究所 Active and safe SM2 digital signature two-party generation method
CN109872155A (en) * 2019-02-22 2019-06-11 矩阵元技术(深圳)有限公司 Data processing method and device
CN109934582A (en) * 2019-02-25 2019-06-25 矩阵元技术(深圳)有限公司 Digital cash transaction data processing method, server, client and system
CN109934582B (en) * 2019-02-25 2023-12-19 矩阵元技术(深圳)有限公司 Digital currency transaction data processing method, server, client and system
CN109818754A (en) * 2019-02-28 2019-05-28 矩阵元技术(深圳)有限公司 Client is method, the equipment that multiple client and single server generate key
WO2020172883A1 (en) * 2019-02-28 2020-09-03 云图有限公司 Method and electronic device for multiple clients and multiple servers to jointly generate keys
WO2020172889A1 (en) * 2019-02-28 2020-09-03 云图有限公司 Key management method in which clients separately generate key components, and electronic device
CN109818754B (en) * 2019-02-28 2022-07-05 矩阵元技术(深圳)有限公司 Method and equipment for generating keys for multiple clients and single server by client
CN109818753B (en) * 2019-02-28 2022-03-08 矩阵元技术(深圳)有限公司 Method and equipment for generating key for multiple clients and multiple servers by one client
WO2020172884A1 (en) * 2019-02-28 2020-09-03 云图有限公司 Key management method in which servers separately generate key components, and electronic device
WO2020172882A1 (en) * 2019-02-28 2020-09-03 云图有限公司 Method and device for selecting client to generate key for multiple clients and multiple servers
WO2020172886A1 (en) * 2019-02-28 2020-09-03 云图有限公司 Data processing method and apparatus, user terminal, management platform, and service device
CN109818753A (en) * 2019-02-28 2019-05-28 矩阵元技术(深圳)有限公司 Selecting a client is the method and apparatus that multi-client multiserver generates key
CN109934585A (en) * 2019-03-08 2019-06-25 矩阵元技术(深圳)有限公司 A kind of endorsement method based on multi-party computations, apparatus and system
WO2020232800A1 (en) * 2019-05-17 2020-11-26 深圳市网心科技有限公司 Data processing method and system in block chain network and related device
CN110784320A (en) * 2019-11-04 2020-02-11 张冰 Distributed key implementation method and system and user identity management method and system
CN110943829A (en) * 2019-11-08 2020-03-31 中国电子科技网络信息安全有限公司 A method for three-party collaborative generation of SM2 signatures
CN111510299B (en) * 2020-04-10 2021-03-19 宁波富万信息科技有限公司 Joint digital signature generation method, electronic device, and computer-readable medium
CN111510299A (en) * 2020-04-10 2020-08-07 宁波富万信息科技有限公司 Joint digital signature generation method, electronic device, and computer-readable medium
CN111600717B (en) * 2020-05-12 2024-01-12 京东科技信息技术有限公司 SM 2-based decryption method, system, electronic equipment and storage medium
CN111600717A (en) * 2020-05-12 2020-08-28 北京海益同展信息科技有限公司 SM 2-based decryption method and system, electronic device and storage medium
CN111953675A (en) * 2020-08-10 2020-11-17 四川阵风科技有限公司 Key management method based on hardware equipment
CN111953675B (en) * 2020-08-10 2022-10-25 四川阵风科技有限公司 Key management method based on hardware equipment
CN112653554B (en) * 2020-12-30 2023-03-31 成都卫士通信息产业股份有限公司 Signature method, system, equipment and readable storage medium
CN112653554A (en) * 2020-12-30 2021-04-13 成都卫士通信息产业股份有限公司 Signature method, system, equipment and readable storage medium
CN112800479B (en) * 2021-04-07 2021-07-06 支付宝(杭州)信息技术有限公司 Multi-party combined data processing method and device by using trusted third party
CN112800479A (en) * 2021-04-07 2021-05-14 支付宝(杭州)信息技术有限公司 Multi-party combined data processing method and device by using trusted third party
CN115499175A (en) * 2022-08-31 2022-12-20 临沂大学 Digital product authorization method and system based on private key storage
CN115396099A (en) * 2022-08-31 2022-11-25 北京神州数码方圆科技有限公司 Trusted custody method and system for asymmetric key, method and system for obtaining it
CN115499175B (en) * 2022-08-31 2023-08-15 临沂大学 Digital product authorization method and system based on private key storage
CN115580401A (en) * 2022-10-25 2023-01-06 商密(广州)信息科技有限公司 Certificateless SM2 secret key generation method based on verifiable secret sharing
CN115580401B (en) * 2022-10-25 2023-12-22 商密(广州)信息科技有限公司 Certificateless SM2 key generation method based on verifiable secret sharing
CN116032655A (en) * 2023-02-13 2023-04-28 杭州天谷信息科技有限公司 Identity authentication method and system capable of resisting timing attack
CN116827542A (en) * 2023-08-29 2023-09-29 江苏省国信数字科技有限公司 Digital certificate management method and system of intelligent device
CN116827542B (en) * 2023-08-29 2023-11-07 江苏省国信数字科技有限公司 Digital certificate management method and system of intelligent device

Also Published As

Publication number Publication date
CN106961336B (en) 2019-11-26

Similar Documents

Publication Publication Date Title
CN106961336B (en) A kind of key components trustship method and system based on SM2 algorithm
US11552792B2 (en) Systems and methods for generating signatures
US20230208627A1 (en) Secure multiparty loss resistant storage and transfer of cryptographic keys for blockchain based systems in conjunction with a wallet management system
CN108292402B (en) Determination of a common secret and hierarchical deterministic keys for the secure exchange of information
CN110247757B (en) Block chain processing method, device and system based on cryptographic algorithm
CN110519046B (en) Quantum communication service station key negotiation method and system based on one-time asymmetric key pair and QKD
US11223486B2 (en) Digital signature method, device, and system
CN107248909B (en) A Certificateless Secure Signature Method Based on SM2 Algorithm
CN106789042B (en) Authentication key agreement method for users in the IBC domain to access resources in the PKI domain
US11616643B2 (en) System and method of management of a shared cryptographic account
CN110138567A (en) A kind of collaboration endorsement method based on ECDSA
CN101640590A (en) Method for obtaining identification cipher algorithm private key and cipher center
CN107360002B (en) Application method of digital certificate
CN114244502B (en) Signature key generation method, device and computer equipment based on SM9 algorithm
CN113382002B (en) Data request method, request response method, data communication system, and storage medium
CN116318654A (en) SM2 algorithm cooperative signature system, method and equipment integrated with quantum key distribution
CN112000941A (en) An identity authentication method and system for mobile cloud computing
CN116232578A (en) A multi-party cooperative signature system, method and device integrating quantum key distribution
CN110401531B (en) Cooperative signature and decryption system based on SM9 algorithm
CN106850584B (en) Anonymous authentication method facing client/server network
WO2022185328A1 (en) System and method for identity-based key agreement for secure communication
CN117527229A (en) Method for realizing multiparty collaborative identity authentication and key negotiation processing in cloud environment based on domestic commercial cryptographic algorithm
TWI761243B (en) Encryption system and encryption method for group instant massaging
CN110572788B (en) Wireless sensor communication method and system based on asymmetric key pool and implicit certificate
CN113839786A (en) SM9 key algorithm-based key distribution method and system

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20191126

CF01 Termination of patent right due to non-payment of annual fee