WO2019101134A1 - Multi-distributed sm9 decryption method, medium and key generating method - Google Patents

Multi-distributed sm9 decryption method, medium and key generating method Download PDF

Info

Publication number
WO2019101134A1
WO2019101134A1 PCT/CN2018/116941 CN2018116941W WO2019101134A1 WO 2019101134 A1 WO2019101134 A1 WO 2019101134A1 CN 2018116941 W CN2018116941 W CN 2018116941W WO 2019101134 A1 WO2019101134 A1 WO 2019101134A1
Authority
WO
WIPO (PCT)
Prior art keywords
key
calculate
key generation
encryption key
bit
Prior art date
Application number
PCT/CN2018/116941
Other languages
French (fr)
Chinese (zh)
Inventor
何德彪
马米米
谢翔
孙立林
李升林
Original Assignee
云图有限公司
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 云图有限公司 filed Critical 云图有限公司
Publication of WO2019101134A1 publication Critical patent/WO2019101134A1/en

Links

Images

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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • H04L9/3073Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
    • 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
    • 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/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • 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
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/3033Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters details relating to pseudo-prime or prime number generation, e.g. primality test

Definitions

  • the present invention relates to the field of cryptography, and in particular, to a SM9 decryption method and medium based on multiple parties.
  • Digital signature cryptography-based digital signature and encryption and decryption technology is a key technology to achieve message confidentiality, integrity and non-repudiation. It has been widely used in network communication, e-commerce and e-government. However, its security depends mainly on the protection of the key. Once the key is compromised, security cannot be discussed.
  • Secret sharing provides a new idea for solving key management problems and plays a key role in the secure storage and transmission of secret data. Secret sharing uses an algorithm to divide the secret into several shares. Only when a certain number of shares are put together, the secret can be reconstructed by a certain algorithm, and less than this number of shares cannot reconstruct the secret. This number is called As a threshold. In the (t,n) threshold signature scheme, the secret is divided into n shares, and even if the attacker steals t-1 shares, a valid signature cannot be generated.
  • the existing key segmentation is mostly poor in security protection, and the existing decryption scheme tends to have more interactions, and the user's computational complexity is relatively high, which cannot meet the low latency and less interaction required in the big data environment. Application requirements.
  • the object of the present invention is to solve the above problems, and provide a multi-distributed SM9 decryption method, a medium and a key generation method, in which multiple communication parties do not leak their own partial encryption keys, and cannot obtain a complete encryption key. In the case, the decryption process of the message is completed together.
  • the technical solution of the present invention is as follows:
  • the present invention discloses a key generation method, including:
  • hid,q)+ke, if t 1 0, regenerates the master key, calculates and publicizes the encrypted master public key, and updates the Have the user's encryption key, otherwise calculate the second temporary variable among them Representing the inverse of t 1 modulo q, ie
  • ke denotes the master private key
  • hid the key generation center selects the encryption key generation function identifier expressed by one byte
  • q is the order of the cyclic group and q>2 191 is the prime number
  • the ID is the identity identifier of the user
  • H 1 () represents a cryptographic function derived from a cryptographic hash function;
  • Step 2 The key generation center randomly selects d 1 , d 2 ,..., d n-1 ⁇ [1,q-1], and calculates among them Representing the inverse of d i modulo q, ie Where [1, q-1] represents a set of integers not less than 1 and not greater than q-1;
  • Step 3 The Key Generation Center sets the first part of the encryption key. Second part encryption key And so on, the n-1 part encryption key Part n encryption key Wherein P 2 represents a generator of the addition cycle group G 2 whose order is prime q, and [d n ]P 2 is d n times the generator P 2 ;
  • Step 4 User put Stored in device A i .
  • the system initialization phase is further included:
  • P pub-e is published, and the key generation center selects to disclose an encryption key generation function identifier hid represented by one byte, where P 1 is a generator of the addition cycle group G 1 whose order is prime q, [ke]P 1 is the ke times of the generated element P 1 .
  • the invention also discloses a computer storage medium, characterized in that a computer program is stored, and the computer program is executed to perform the following steps:
  • hid,q)+ke, if t 1 0, regenerates the master key, calculates and publicizes the encrypted master public key, and updates the Have the user's encryption key, otherwise calculate the second temporary variable among them Representing the inverse of t 1 modulo q, ie
  • ke denotes the master private key
  • hid the key generation center selects the encryption key generation function identifier expressed by one byte
  • q is the order of the cyclic group and q>2 191 is the prime number
  • the ID is the identity identifier of the user
  • H 1 () represents a cryptographic function derived from a cryptographic hash function;
  • Step 2 The key generation center randomly selects d 1 , d 2 ,..., d n-1 ⁇ [1,q-1], and calculates among them Representing the inverse of d i modulo q, ie Where [1, q-1] represents a set of integers not less than 1 and not greater than q-1;
  • Step 3 The Key Generation Center sets the first part of the encryption key. Second part encryption key And so on, the n-1 part encryption key Part n encryption key Wherein P 2 represents a generator of the addition cycle group G 2 whose order is prime q, and [d n ]P 2 is d n times the generator P 2 ;
  • Step 4 User put Stored in device A i .
  • the step of executing the computer program execution further includes the system initialization phase prior to step 1:
  • P pub-e is published, and the key generation center selects to disclose an encryption key generation function identifier hid represented by one byte, where P 1 is a generator of the addition cycle group G 1 whose order is prime q, [ke]P 1 is the ke times of the generated element P 1 .
  • the invention also discloses a multi-distributed SM9 decryption method, comprising:
  • the n-th part encryption key set for the key generation center, e( ⁇ , ⁇ ) represents a bilinear map of G 1 ⁇ G 2 ⁇ G T , and G 1 , G 2 are addition cycle groups whose order is a prime number q, G T is a multiplicative cyclic group whose order is a prime number q;
  • Step 2 After the n-1th communicating party A n-1 receives w 1 , calculate the second temporary variable And send w 2 to the n-2th communicating party A n-2 , wherein The n-1th part encryption key set for the key generation center, Representing w 1 Power, ie
  • Step 3 After the n-2th communicating party A n-2 receives w 2 , calculate the third temporary variable And send w 3 to the n-3th party A n-3 , wherein The n-2th encryption key set for the key generation center;
  • Step 4 By analogy, after receiving the w n-2 , the second communicating party A 2 calculates the n-1th temporary variable. And send w n-1 to the first communication party A 1 , wherein The second part encryption key set for the key generation center;
  • Step 5 After receiving the w n-1 , the first communication party A 1 calculates the nth temporary variable.
  • the data type of w n is converted into a bit string, and the first communication party A 1 classifies and decrypts according to the method of encrypting plaintext.
  • the decryption calculation according to the method of encrypting plaintext in step 5 further comprises:
  • K 1 ' is a full 0-bit string, report an error and exit, otherwise calculate
  • K 2_ len is the bit length of the key K 2 in the message authentication code function MAC (K 2 , Z)
  • ID represents the identity of the user as the decrypter, and can uniquely determine the user's public Key
  • Z represents a message data bit string of the message authentication code to be obtained;
  • KDF( ⁇ ) the key derivation function KDF( ⁇ )
  • the invention also discloses a computer storage medium, which stores a computer program, and executes the following steps after running the computer program:
  • the n-th part encryption key set for the key generation center, e( ⁇ , ⁇ ) represents a bilinear map of G 1 ⁇ G 2 ⁇ G T , and G 1 , G 2 are addition cycle groups whose order is a prime number q, G T is a multiplicative cyclic group whose order is a prime number q;
  • Step 2 After the n-1th communicating party A n-1 receives w 1 , calculate the second temporary variable And send w 2 to the n-2th communicating party A n-2 , wherein The n-1th part encryption key set for the key generation center, Representing w 1 Power, ie
  • Step 3 After the n-2th communicating party A n-2 receives w 2 , calculate the third temporary variable And send w 3 to the n-3th party A n-3 , wherein The n-2th encryption key set for the key generation center;
  • Step 4 By analogy, after receiving the w n-2 , the second communicating party A 2 calculates the n-1th temporary variable. And send w n-1 to the first communication party A 1 , wherein The second part encryption key set for the key generation center;
  • Step 5 After receiving the w n-1 , the first communication party A 1 calculates the nth temporary variable.
  • the data type of w n is converted into a bit string, and the first communication party A 1 classifies and decrypts according to the method of encrypting plaintext.
  • the step of performing the decryption calculation according to the method of encrypting plaintext in step 5 of the execution of the computer program further comprises:
  • K 1 ' is a full 0-bit string, report an error and exit, otherwise calculate
  • K 2_ len is the bit length of the key K 2 in the message authentication code function MAC (K 2 , Z)
  • ID represents the identity of the user as the decrypter, and can uniquely determine the user's public Key
  • Z represents a message data bit string of the message authentication code to be obtained;
  • KDF( ⁇ ) the key derivation function KDF( ⁇ )
  • the SM9 identification cryptographic algorithm is an identification cryptographic algorithm based on a bilinear pairing, which can use the user's identity to generate a public and private key pair of the user.
  • the application and management of SM9 does not require digital certificates, certificate bases or key stores. It is mainly used for digital signatures, data encryption, key exchange and identity authentication.
  • the algorithm was released in 2015 as the national password industry standard (GM/T 0044). -2016).
  • the Key Generation Center (KGC) in the present invention Based on the SM9 identification cryptographic algorithm, the Key Generation Center (KGC) in the present invention generates a corresponding partial key for the communicating party participating in the SM9 decryption system.
  • KGC Key Generation Center
  • the nth communicating party A n After receiving the key, the nth communicating party A n calculates the first temporary variable And return to A n-1 . After A n-1 receives w 1 , it calculates the second temporary variable. And return to A n-2 , and so on, until A 1 receives w n-1 , calculate the nth temporary variable The decryption calculation is performed according to the method of encrypting plaintext, and finally the plaintext M' is output.
  • the present invention devises a multi-party distributed SM9 decryption method and system, assuming that there are n communicating parties, this scheme must cooperate with each other to share and decrypt the partial private keys in the n communicating parties, and the final calculation result can be obtained. At the same time, the security of the private key is guaranteed. Compared with the prior art, the invention not only reduces the computational complexity of the user, but also improves the security of the key.
  • FIG. 1 is a flow chart showing an embodiment of a key generation method of the present invention.
  • FIG. 2 is a flow chart showing an embodiment of a multi-distributed SM9 decryption method of the present invention.
  • FIG. 3 shows a schematic diagram of an embodiment of a multi-distributed SM9 decryption method of the present invention.
  • KGC Key Generation Center. It is a trusted authority responsible for generating system parameters, master and private keys, and encryption keys.
  • G 1 , G 2 The addition cycle group whose order is prime q.
  • G T The multiplicative cyclic group whose order is prime q.
  • g u the power of u in the multiplicative group G T , ie Where u is a positive integer.
  • ID C The identity of the communicating party C, which can uniquely determine the public key of the communicating party C.
  • Mod q modulo q operation. For example, 27 (mod 5) ⁇ 2.
  • q the order of the cyclic groups G 1 , G 2 and G T , and q>2 191 is a prime number.
  • P 1 , P 2 are the generators of the groups G 1 and G 2 , respectively.
  • [u]P U times the element P in the addition group G 1 and G 2 .
  • y splicing of x and y, where x and y are bit strings or byte strings.
  • [x, y] A set of integers not less than x and not greater than y.
  • the implementation of the key generation method of the present invention is as shown in Fig. 1. The following is a detailed description of the steps of the key generation method.
  • hid,q)+ke. If t 1 0, regenerate the master key, calculate and publicize the encrypted master public key, and update the existing user. Encryption key; otherwise, calculate the second temporary variable among them Representing the inverse of t 1 modulo q, ie
  • Step S12 KGC randomly selects d 1 , d 2 , ..., d n-1 ⁇ [1, q-1], and calculates among them Representing the inverse of d i modulo q, ie
  • Step S13 KGC sets the first partial encryption key Second part encryption key And so on, the n-1 part encryption key Part n encryption key
  • Step S14 the user puts Stored in device A i .
  • the present invention also discloses a computer storage medium having a computer program thereon running the computer program to perform the steps of the key generation method as described in the foregoing embodiments. Since the steps performed are the same as those of the foregoing embodiment, they are not described herein again.
  • Step S21 The nth communication party A n extracts the bit string C 1 from the ciphertext C, converts the data type of C 1 into a point on the elliptic curve, verifies whether C 1 ⁇ G 1 is established, and if not, reports an error and exits. ; otherwise, A n calculates the first temporary variable And send w 1 to A n-1 .
  • Step S22 After receiving the w 1 , the A n-1 calculates the second temporary variable. And send w 2 to A n-2 .
  • Step S23 After receiving the w 2 by A n-2 , calculating the third temporary variable And send w 3 to A n-3 .
  • Step S24 and so on, after A 2 receives w n-2 , the n-1th temporary variable is calculated. And send w n-1 to A 1 .
  • Step S25 After A 1 receives w n-1 , the nth temporary variable is calculated. And convert the data type of w n into a bit string. A 1 is classified according to the method of encrypting plaintext for decryption calculation.
  • K 1 ' be the pre-Mlen bit of K'
  • K 2 ' be the K 2_ len bit of K'
  • K 1 ' is a full 0-bit string, report an error and exit;
  • K 1_ len K 1_ len+K 2_ len
  • K' KDF(C 1
  • the present invention also discloses a computer storage medium having a computer program thereon running the computer program to perform the steps of the multi-distributed SM9 decryption method as described in the foregoing embodiments. Since the steps performed are the same as those of the foregoing embodiment, they are not described herein again.
  • the invention has the advantages of high security, low communication cost, and the like, and the communication party must participate in the complete decryption of the message without leaking the respective keys.
  • the bilinear map calculation is relatively expensive, so in the solution of the present invention, the bilinear operation is performed by one communication party, thereby reducing the computational cost of other communication parties and reducing the number of interactions.
  • DSPs digital signal processors
  • ASICs application specific integrated circuits
  • FPGAs field programmable gate arrays
  • Programmable logic devices, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein are implemented or executed.
  • a general purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine.
  • the processor may also be implemented as a combination of computing devices, such as a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.
  • a software module may reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art.
  • An exemplary storage medium is coupled to the processor to enable the processor to read and write information to/from the storage medium.
  • the storage medium can be integrated into the processor.
  • the processor and the storage medium can reside in an ASIC.
  • the ASIC can reside in the user terminal.
  • the processor and the storage medium may reside as a discrete component in the user terminal.
  • the functions described may be implemented in hardware, software, firmware, or any combination thereof. If implemented as a computer program product in software, the functions may be stored on or transmitted as one or more instructions or code on a computer readable medium.
  • Computer readable media includes both computer storage media and communication media including any medium that facilitates transfer of a computer program from one place to another.
  • a storage medium may be any available media that can be accessed by a computer.
  • such computer readable media may comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, disk storage or other magnetic storage device, or can be used to carry or store instructions or data structures. Any other medium that is desirable for program code and that can be accessed by a computer.
  • any connection is also properly referred to as a computer readable medium.
  • the software is transmitted from a web site, server, or other remote source using coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave.
  • the coaxial cable, fiber optic cable, twisted pair cable, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of the medium.
  • Disks and discs as used herein include compact discs (CDs), laser discs, optical discs, digital versatile discs (DVDs), floppy discs, and Blu-ray discs, in which disks are often reproduced magnetically. Data, and discs optically reproduce data with a laser. Combinations of the above should also be included within the scope of computer readable media.

Abstract

Disclosed in the present invention are a multi-distributed SM9 decryption method, a medium and a key generating method. Multiple communication parties jointly complete a message decryption process under the conditions of not leaking the respective partial encryption key thereof and being unable to acquire the complete encryption key. The technical solution is: a key generation center (KGC) generates a corresponding partial encryption key for communication parties participating in an SM9 decryption system; after the keys are received, the n-th communication party An computes a first temporary variable (I) and returns the first temporary variable (I) to An-1; and An-1, after receiving w1, computes a second temporary variable (II), and returns the second temporary variable (II) to An-2, and so on, until A1, after receiving wn-1, computes the n-th temporary variable (III), performs decryption computing by classifying according to a plaintext encryption method, and finally outputs a plain text M'.

Description

一种多分布式的SM9解密方法与介质及密钥生成方法Multi-distributed SM9 decryption method and medium and key generation method 技术领域Technical field
本发明涉及密码技术领域,尤其涉及基于多方共同产生SM9解密方法及介质。The present invention relates to the field of cryptography, and in particular, to a SM9 decryption method and medium based on multiple parties.
背景技术Background technique
随着科学技术的飞速发展,物联网等网络平台为大数据的存储和传输提供了强大的计算平台,也为人们的日常生活提供了便利。但是,数据的安全和隐私问题成为人们高度关注的问题。在大数据环境中,既能实现消息安全存储、传输以及使用,又能防止消息泄漏、保证消息的完整性、保密性是一个巨大的挑战。With the rapid development of science and technology, network platforms such as the Internet of Things provide a powerful computing platform for the storage and transmission of big data, and also provide convenience for people's daily life. However, data security and privacy issues have become a matter of great concern. In a big data environment, it is a huge challenge to achieve secure storage, transmission and use of messages while preventing message leakage and ensuring message integrity and confidentiality.
基于公钥密码学的数字签名和加解密技术是实现消息机密性、完整性和不可否认性的关键技术,已经广泛应用于网络通信、电子商务和电子政务等领域。但是其安全性主要取决于对密钥的保护,一旦密钥泄露则安全性无从谈起。秘密共享为解决密钥管理问题提供了一个崭新的思路,在秘密数据的安全存储及传输中起着关键作用。秘密共享采用一种算法将秘密分割成若干份额,只有将一定数量的份额放在一起,秘密才可以通过一定的算法重构出来,而少于这个数量的份额无法重构秘密,这个数量被称作门限。在(t,n)门限签名方案中,秘密被分割成n份,即使攻击者窃取了t-1个份额,也无法生成有效签名。Digital signature cryptography-based digital signature and encryption and decryption technology is a key technology to achieve message confidentiality, integrity and non-repudiation. It has been widely used in network communication, e-commerce and e-government. However, its security depends mainly on the protection of the key. Once the key is compromised, security cannot be discussed. Secret sharing provides a new idea for solving key management problems and plays a key role in the secure storage and transmission of secret data. Secret sharing uses an algorithm to divide the secret into several shares. Only when a certain number of shares are put together, the secret can be reconstructed by a certain algorithm, and less than this number of shares cannot reconstruct the secret. This number is called As a threshold. In the (t,n) threshold signature scheme, the secret is divided into n shares, and even if the attacker steals t-1 shares, a valid signature cannot be generated.
但是,上述算法的实现通常需要大量的双线性对和指数运算,而这些运算对于资源受限的用户而言将是一个巨大的计算负担。However, the implementation of the above algorithms usually requires a large number of bilinear pairings and exponential operations, and these operations will be a huge computational burden for resource-constrained users.
因此,现有的密钥分割大多数安全防护性较差,而现有的解密方案往往交互次数较多,用户的计算复杂度比较高,不能满足大数据环境中要求的低延时、少交互的应用需求。Therefore, the existing key segmentation is mostly poor in security protection, and the existing decryption scheme tends to have more interactions, and the user's computational complexity is relatively high, which cannot meet the low latency and less interaction required in the big data environment. Application requirements.
发明内容Summary of the invention
以下给出一个或多个方面的简要概述以提供对这些方面的基本理解。此概述不是所有构想到的方面的详尽综览,并且既非旨在指认出所有方面的关键性或决定性要素亦非试图界定任何或所有方面的范围。其唯一的目的是要以简化形式给出一个或多个方面的一些概念以为稍后给出的更加详细的描述之序。A brief overview of one or more aspects is provided below to provide a basic understanding of these aspects. This summary is not an extensive overview of all aspects that are conceived, and is not intended to identify key or critical elements in all aspects. Its sole purpose is to present some concepts of one or more aspects
本发明的目的在于解决上述问题,提供了一种多分布式的SM9解密方法与介质及密钥生成方法,多个通信方在不泄漏自己的部分加密密钥,无法获得完整的加密密钥的情况下共同完成对消息的解密过程。The object of the present invention is to solve the above problems, and provide a multi-distributed SM9 decryption method, a medium and a key generation method, in which multiple communication parties do not leak their own partial encryption keys, and cannot obtain a complete encryption key. In the case, the decryption process of the message is completed together.
本发明的技术方案为:本发明揭示了一种密钥生成方法,包括:The technical solution of the present invention is as follows: The present invention discloses a key generation method, including:
步骤1:密钥生成中心计算一个临时变量t 1=H 1(ID||hid,q)+ke,若t 1=0则重新产生主密钥,计算和公开加密主公钥,并更新已有用户的加密密钥,否则计算第二个临时变量
Figure PCTCN2018116941-appb-000001
其中
Figure PCTCN2018116941-appb-000002
表示t 1模q的逆元,即
Figure PCTCN2018116941-appb-000003
其中ke表示主私钥,hid是密钥生成中心选择公开用一个字节表示的加密密钥生成函数识别符,q是循环群的阶且q>2 191为素数,ID是用户的身份标识符,H 1()表示由密码杂凑函数派生的密码函数;
Step 1: The key generation center calculates a temporary variable t 1 =H 1 (ID||hid,q)+ke, if t 1 =0, regenerates the master key, calculates and publicizes the encrypted master public key, and updates the Have the user's encryption key, otherwise calculate the second temporary variable
Figure PCTCN2018116941-appb-000001
among them
Figure PCTCN2018116941-appb-000002
Representing the inverse of t 1 modulo q, ie
Figure PCTCN2018116941-appb-000003
Where ke denotes the master private key, hid is the key generation center selects the encryption key generation function identifier expressed by one byte, q is the order of the cyclic group and q>2 191 is the prime number, and the ID is the identity identifier of the user , H 1 () represents a cryptographic function derived from a cryptographic hash function;
步骤2:密钥生成中心随机选择d 1,d 2,...,d n-1∈[1,q-1],计算
Figure PCTCN2018116941-appb-000004
其中
Figure PCTCN2018116941-appb-000005
表示d i模q的逆元,即
Figure PCTCN2018116941-appb-000006
其中[1,q-1]表示不小于1且不大于q-1的整数的集合;
Step 2: The key generation center randomly selects d 1 , d 2 ,..., d n-1 ∈[1,q-1], and calculates
Figure PCTCN2018116941-appb-000004
among them
Figure PCTCN2018116941-appb-000005
Representing the inverse of d i modulo q, ie
Figure PCTCN2018116941-appb-000006
Where [1, q-1] represents a set of integers not less than 1 and not greater than q-1;
步骤3:密钥生成中心设置第一部分加密密钥
Figure PCTCN2018116941-appb-000007
第二部分加密密钥
Figure PCTCN2018116941-appb-000008
以此类推,第n-1部分加密密钥
Figure PCTCN2018116941-appb-000009
第n部分加密密钥
Figure PCTCN2018116941-appb-000010
其中P 2表示阶为素数q的加法循环群G 2的生成元,[d n]P 2是生成元P 2的d n倍;
Step 3: The Key Generation Center sets the first part of the encryption key.
Figure PCTCN2018116941-appb-000007
Second part encryption key
Figure PCTCN2018116941-appb-000008
And so on, the n-1 part encryption key
Figure PCTCN2018116941-appb-000009
Part n encryption key
Figure PCTCN2018116941-appb-000010
Wherein P 2 represents a generator of the addition cycle group G 2 whose order is prime q, and [d n ]P 2 is d n times the generator P 2 ;
步骤4:用户把
Figure PCTCN2018116941-appb-000011
存储到设备A i中。
Step 4: User put
Figure PCTCN2018116941-appb-000011
Stored in device A i .
根据本发明的密钥生成方法的一实施例,在步骤1之前还包括系统初始化阶段:According to an embodiment of the key generation method of the present invention, before the step 1, the system initialization phase is further included:
密钥生成中心选择选择随机数ke∈[1,q-1]作为主私钥,计算P pub-e=[ke]P 1作为加密主公钥,密钥生成中心秘密保存主私钥ke,公开P pub-e,且密钥生成中心选择公开用一个字节表示的加密密钥生成函数识别符hid,其中P 1是阶为素数q的加法循环群G 1的生成元,[ke]P 1是生成元P 1的ke倍。 The key generation center selects the random number ke∈[1,q-1] as the primary private key, calculates P pub-e =[ke]P 1 as the encrypted primary public key, and the key generation center secretly saves the primary private key ke. P pub-e is published, and the key generation center selects to disclose an encryption key generation function identifier hid represented by one byte, where P 1 is a generator of the addition cycle group G 1 whose order is prime q, [ke]P 1 is the ke times of the generated element P 1 .
本发明还揭示了一种计算机存储介质,其特征在于,存储有计算机程序,运行计算机程序执行以下的步骤:The invention also discloses a computer storage medium, characterized in that a computer program is stored, and the computer program is executed to perform the following steps:
步骤1:密钥生成中心计算一个临时变量t 1=H 1(ID||hid,q)+ke,若t 1=0则重新产生主密钥,计算和公开加密主公钥,并更新已有用户的加密密钥,否则计算第二个临时变量
Figure PCTCN2018116941-appb-000012
其中
Figure PCTCN2018116941-appb-000013
表示t 1模q的逆元,即
Figure PCTCN2018116941-appb-000014
其中ke表示主私钥,hid是密钥生成中心选择公开用一个字节表示的加密密钥生成函数识别符,q是循环群的阶且q>2 191为素数,ID是用户的身份标识符,H 1()表示由密码杂凑函数派生的密码函数;
Step 1: The key generation center calculates a temporary variable t 1 =H 1 (ID||hid,q)+ke, if t 1 =0, regenerates the master key, calculates and publicizes the encrypted master public key, and updates the Have the user's encryption key, otherwise calculate the second temporary variable
Figure PCTCN2018116941-appb-000012
among them
Figure PCTCN2018116941-appb-000013
Representing the inverse of t 1 modulo q, ie
Figure PCTCN2018116941-appb-000014
Where ke denotes the master private key, hid is the key generation center selects the encryption key generation function identifier expressed by one byte, q is the order of the cyclic group and q>2 191 is the prime number, and the ID is the identity identifier of the user , H 1 () represents a cryptographic function derived from a cryptographic hash function;
步骤2:密钥生成中心随机选择d 1,d 2,...,d n-1∈[1,q-1],计算
Figure PCTCN2018116941-appb-000015
其中
Figure PCTCN2018116941-appb-000016
表示d i模q的逆元,即
Figure PCTCN2018116941-appb-000017
其中[1,q-1]表示不小于1且不大于q-1的整数的集合;
Step 2: The key generation center randomly selects d 1 , d 2 ,..., d n-1 ∈[1,q-1], and calculates
Figure PCTCN2018116941-appb-000015
among them
Figure PCTCN2018116941-appb-000016
Representing the inverse of d i modulo q, ie
Figure PCTCN2018116941-appb-000017
Where [1, q-1] represents a set of integers not less than 1 and not greater than q-1;
步骤3:密钥生成中心设置第一部分加密密钥
Figure PCTCN2018116941-appb-000018
第二部分加密密钥
Figure PCTCN2018116941-appb-000019
以此类推,第n-1部分加密密钥
Figure PCTCN2018116941-appb-000020
第n部分加密密钥
Figure PCTCN2018116941-appb-000021
其中P 2表示阶为素数q的加法循环群G 2的生成元,[d n]P 2是生成元P 2的d n倍;
Step 3: The Key Generation Center sets the first part of the encryption key.
Figure PCTCN2018116941-appb-000018
Second part encryption key
Figure PCTCN2018116941-appb-000019
And so on, the n-1 part encryption key
Figure PCTCN2018116941-appb-000020
Part n encryption key
Figure PCTCN2018116941-appb-000021
Wherein P 2 represents a generator of the addition cycle group G 2 whose order is prime q, and [d n ]P 2 is d n times the generator P 2 ;
步骤4:用户把
Figure PCTCN2018116941-appb-000022
存储到设备A i中。
Step 4: User put
Figure PCTCN2018116941-appb-000022
Stored in device A i .
根据本发明的计算机存储介质的一实施例,运行计算机程序执行的步骤还包括在步骤1之前的系统初始化阶段:In accordance with an embodiment of the computer storage medium of the present invention, the step of executing the computer program execution further includes the system initialization phase prior to step 1:
密钥生成中心选择选择随机数ke∈[1,q-1]作为主私钥,计算P pub-e=[ke]P 1作为加密主公钥,密钥生成中心秘密保存主私钥ke,公开P pub-e,且密钥生成中心选择公开用一个字节表示的加密密钥生成函数识别符hid,其中P 1是阶为素数q的加法循环群G 1的生成元,[ke]P 1是生成元P 1的ke倍。 The key generation center selects the random number ke∈[1,q-1] as the primary private key, calculates P pub-e =[ke]P 1 as the encrypted primary public key, and the key generation center secretly saves the primary private key ke. P pub-e is published, and the key generation center selects to disclose an encryption key generation function identifier hid represented by one byte, where P 1 is a generator of the addition cycle group G 1 whose order is prime q, [ke]P 1 is the ke times of the generated element P 1 .
本发明还揭示了一种多分布式的SM9解密方法,包括:The invention also discloses a multi-distributed SM9 decryption method, comprising:
步骤1:第n通信方A n从密文C中提取出比特串C 1,将C 1的数据类型转换为椭圆曲线上的点,验证C 1∈G 1是否成立,如果不成立则报错并退出;否则,A n计算第一个临时变量
Figure PCTCN2018116941-appb-000023
并将w 1发送给A n-1,其中密文C=C 1||C 3||C 2,C 1、C 2、C 3为比特串,G 1为阶q为素数的加法循环群,
Figure PCTCN2018116941-appb-000024
为密钥生成中心设置的第n部分加密密钥,e(·,·)表示G 1×G 2→G T的双线性映射,G 1,G 2为阶是素数q的加法循环群,G T为阶是素数q的乘法循环群;
Step 1: The nth communication party A n extracts the bit string C 1 from the ciphertext C, converts the data type of C 1 into a point on the elliptic curve, verifies whether C 1 ∈ G 1 is established, and if not, reports an error and exits ; otherwise, A n calculates the first temporary variable
Figure PCTCN2018116941-appb-000023
And send w 1 to A n-1 , where ciphertext C=C 1 ||C 3 || C 2 , C 1 , C 2 , C 3 are bit strings, and G 1 is an additive cyclic group whose order q is a prime number ,
Figure PCTCN2018116941-appb-000024
The n-th part encryption key set for the key generation center, e(·,·) represents a bilinear map of G 1 ×G 2 →G T , and G 1 , G 2 are addition cycle groups whose order is a prime number q, G T is a multiplicative cyclic group whose order is a prime number q;
步骤2:第n-1通信方A n-1收到w 1后,计算第二个临时变量
Figure PCTCN2018116941-appb-000025
并将w 2发送给第n-2通信方A n-2,其中
Figure PCTCN2018116941-appb-000026
为密钥生成中心设置的第n-1部分加密密钥,
Figure PCTCN2018116941-appb-000027
表示w 1
Figure PCTCN2018116941-appb-000028
次幂,即
Figure PCTCN2018116941-appb-000029
Step 2: After the n-1th communicating party A n-1 receives w 1 , calculate the second temporary variable
Figure PCTCN2018116941-appb-000025
And send w 2 to the n-2th communicating party A n-2 , wherein
Figure PCTCN2018116941-appb-000026
The n-1th part encryption key set for the key generation center,
Figure PCTCN2018116941-appb-000027
Representing w 1
Figure PCTCN2018116941-appb-000028
Power, ie
Figure PCTCN2018116941-appb-000029
步骤3:第n-2通信方A n-2收到w 2后,计算第三个临时变量
Figure PCTCN2018116941-appb-000030
并将w 3发送给第n-3通信方A n-3,其中
Figure PCTCN2018116941-appb-000031
为密钥生成中心设置的第n-2部分加密密钥;
Step 3: After the n-2th communicating party A n-2 receives w 2 , calculate the third temporary variable
Figure PCTCN2018116941-appb-000030
And send w 3 to the n-3th party A n-3 , wherein
Figure PCTCN2018116941-appb-000031
The n-2th encryption key set for the key generation center;
步骤4:以此类推,第2通信方A 2收到w n-2后,计算第n-1个临时变量
Figure PCTCN2018116941-appb-000032
并将w n-1发送给第1通信方A 1,其中
Figure PCTCN2018116941-appb-000033
为密钥生成中心设置的第2部分加密密钥;
Step 4: By analogy, after receiving the w n-2 , the second communicating party A 2 calculates the n-1th temporary variable.
Figure PCTCN2018116941-appb-000032
And send w n-1 to the first communication party A 1 , wherein
Figure PCTCN2018116941-appb-000033
The second part encryption key set for the key generation center;
步骤5:第1通信方A 1收到w n-1后,计算第n个临时变量
Figure PCTCN2018116941-appb-000034
并将w n的数据类型转换为比特串,第1通信方A 1按加密明文的方法分类进行解密计算。
Step 5: After receiving the w n-1 , the first communication party A 1 calculates the nth temporary variable.
Figure PCTCN2018116941-appb-000034
The data type of w n is converted into a bit string, and the first communication party A 1 classifies and decrypts according to the method of encrypting plaintext.
根据本发明的多分布式的SM9解密方法的一实施例,步骤5的按加密明文的方法分类进行解密计算进一步包括:According to an embodiment of the multi-distributed SM9 decryption method of the present invention, the decryption calculation according to the method of encrypting plaintext in step 5 further comprises:
若加密明文的方法是基于密钥派生函数KDF(·)的序列密码算法,则计算klen=mlen+K 2_len,然后计算K'=KDF(C 1||w n||ID,klen),设K 1′为K′前mlen比特,K 2′为K′的后K 2_len比特,如果K 1′为全0比特串,则报错并退出,否则计算
Figure PCTCN2018116941-appb-000035
其中mlen是密文C的比特长度,K 2_len是消息认证码函数MAC(K 2,Z)中密钥K 2的比特长度,ID表示作为解密者的用户的标识,可以唯一确定用户的公钥,Z表示待求取消息认证码的消息数据比特串;
If the method of encrypting plaintext is based on the sequence cipher algorithm of the key derivation function KDF(·), calculate klen=mlen+K 2_ len, and then calculate K'=KDF(C 1 ||w n ||ID,klen), Let K 1 ' be the pre-Mlen bit of K', and K 2 ' be the K 2_ len bit of K'. If K 1 ' is a full 0-bit string, report an error and exit, otherwise calculate
Figure PCTCN2018116941-appb-000035
Where mlen is the bit length of ciphertext C, K 2_ len is the bit length of the key K 2 in the message authentication code function MAC (K 2 , Z), and ID represents the identity of the user as the decrypter, and can uniquely determine the user's public Key, Z represents a message data bit string of the message authentication code to be obtained;
若加密明文的方法是基于密钥派生函数KDF(·)的分组密码算法,则计算klen=K 1_len+K 2_len,然后计算K'=KDF(C 1||w n||ID,klen),设K 1′为K′前K 1_len比特,K 2′为K′的后K 2_len比特,如果K 1′为全0比特串,则报错并退出,否则计算M′=Dec(K 1′,C 2),其中K 1_len是分组密码算法Dec(·)中密钥K 1的比特长度,klen表示输出的比特串长度,取值为预先设定; If the method of encrypting plaintext is a block cipher algorithm based on the key derivation function KDF(·), calculate klen=K 1_ len+K 2_ len, then calculate K'=KDF(C 1 ||w n ||ID,klen Let K 1 ' be the K 1_ len bit before K' and K 2 ' be the K 2_ len bit of K'. If K 1 ' is a full 0 bit string, report an error and exit, otherwise calculate M'=Dec ( K 1 ', C 2 ), where K 1_ len is the bit length of the key K 1 in the block cipher algorithm Dec(·), and klen represents the length of the output bit string, and the value is preset;
之后计算u=MAC(K 2′,C 2),从C中取出比特串C 3,如果u≠C 3,则报错并退出,否则输出明文M′。 Then calculate u=MAC(K 2 ', C 2 ), take the bit string C 3 from C, and if u ≠ C 3 , report an error and exit, otherwise output the plaintext M′.
本发明还揭示了一种计算机存储介质,存储有计算机程序,运行计算机程序后执行如下的步骤:The invention also discloses a computer storage medium, which stores a computer program, and executes the following steps after running the computer program:
步骤1:第n通信方A n从密文C中提取出比特串C 1,将C 1的数据类型转换为椭圆曲线上的点,验证C 1∈G 1是否成立,如果不成立则报错并退出;否则,A n计算第一个临时变量
Figure PCTCN2018116941-appb-000036
并将w 1发送给A n-1,其中密文C=C 1||C 3||C 2,C 1、C 2、C 3为比特串,G 1为阶q为素数的加法循环群,
Figure PCTCN2018116941-appb-000037
为密钥生成中心设置的第n部分加密密钥,e(·,·)表示G 1×G 2→G T的双线性映射,G 1,G 2为阶是素数q的加法循环群,G T为阶是素数q的乘法循环群;
Step 1: The nth communication party A n extracts the bit string C 1 from the ciphertext C, converts the data type of C 1 into a point on the elliptic curve, verifies whether C 1 ∈ G 1 is established, and if not, reports an error and exits ; otherwise, A n calculates the first temporary variable
Figure PCTCN2018116941-appb-000036
And send w 1 to A n-1 , where ciphertext C=C 1 ||C 3 || C 2 , C 1 , C 2 , C 3 are bit strings, and G 1 is an additive cyclic group whose order q is a prime number ,
Figure PCTCN2018116941-appb-000037
The n-th part encryption key set for the key generation center, e(·,·) represents a bilinear map of G 1 ×G 2 →G T , and G 1 , G 2 are addition cycle groups whose order is a prime number q, G T is a multiplicative cyclic group whose order is a prime number q;
步骤2:第n-1通信方A n-1收到w 1后,计算第二个临时变量
Figure PCTCN2018116941-appb-000038
并将w 2发送给第n-2通信方A n-2,其中
Figure PCTCN2018116941-appb-000039
为密钥生成中心设置的第n-1部分加密密钥,
Figure PCTCN2018116941-appb-000040
表示w 1
Figure PCTCN2018116941-appb-000041
次幂,即
Figure PCTCN2018116941-appb-000042
Step 2: After the n-1th communicating party A n-1 receives w 1 , calculate the second temporary variable
Figure PCTCN2018116941-appb-000038
And send w 2 to the n-2th communicating party A n-2 , wherein
Figure PCTCN2018116941-appb-000039
The n-1th part encryption key set for the key generation center,
Figure PCTCN2018116941-appb-000040
Representing w 1
Figure PCTCN2018116941-appb-000041
Power, ie
Figure PCTCN2018116941-appb-000042
步骤3:第n-2通信方A n-2收到w 2后,计算第三个临时变量
Figure PCTCN2018116941-appb-000043
并将w 3发送给第n-3通信方A n-3,其中
Figure PCTCN2018116941-appb-000044
为密钥生成中心设置的第n-2部分加密密钥;
Step 3: After the n-2th communicating party A n-2 receives w 2 , calculate the third temporary variable
Figure PCTCN2018116941-appb-000043
And send w 3 to the n-3th party A n-3 , wherein
Figure PCTCN2018116941-appb-000044
The n-2th encryption key set for the key generation center;
步骤4:以此类推,第2通信方A 2收到w n-2后,计算第n-1个临时变量
Figure PCTCN2018116941-appb-000045
并将w n-1发送给第1通信方A 1,其中
Figure PCTCN2018116941-appb-000046
为密钥生成中心设置的第2部分加密密钥;
Step 4: By analogy, after receiving the w n-2 , the second communicating party A 2 calculates the n-1th temporary variable.
Figure PCTCN2018116941-appb-000045
And send w n-1 to the first communication party A 1 , wherein
Figure PCTCN2018116941-appb-000046
The second part encryption key set for the key generation center;
步骤5:第1通信方A 1收到w n-1后,计算第n个临时变量
Figure PCTCN2018116941-appb-000047
并将w n的数据类型转换为比特串,第1通信方A 1按加密明文的方法分类进行解密计算。
Step 5: After receiving the w n-1 , the first communication party A 1 calculates the nth temporary variable.
Figure PCTCN2018116941-appb-000047
The data type of w n is converted into a bit string, and the first communication party A 1 classifies and decrypts according to the method of encrypting plaintext.
根据本发明的计算机存储介质的一实施例,运行计算机程序执行的步骤5的按加密明文的方法分类进行解密计算进一步包括:According to an embodiment of the computer storage medium of the present invention, the step of performing the decryption calculation according to the method of encrypting plaintext in step 5 of the execution of the computer program further comprises:
若加密明文的方法是基于密钥派生函数KDF(·)的序列密码算法,则计算klen=mlen+K 2_len,然后计算K'=KDF(C 1||w n||ID,klen),设K 1′为K′前mlen比特,K 2′为K′的后K 2_len比特,如果K 1′为全0比特串,则报错并退出,否则计算
Figure PCTCN2018116941-appb-000048
其中mlen是密文C的比特长度,K 2_len是消息认证码函数MAC(K 2,Z)中密钥K 2的比特长度,ID表示作为解密者的用户的标识,可以唯一确定用户的公钥,Z表示待求取消息认证码的消息数据比特串;
If the method of encrypting plaintext is based on the sequence cipher algorithm of the key derivation function KDF(·), calculate klen=mlen+K 2_ len, and then calculate K'=KDF(C 1 ||w n ||ID,klen), Let K 1 ' be the pre-Mlen bit of K', and K 2 ' be the K 2_ len bit of K'. If K 1 ' is a full 0-bit string, report an error and exit, otherwise calculate
Figure PCTCN2018116941-appb-000048
Where mlen is the bit length of ciphertext C, K 2_ len is the bit length of the key K 2 in the message authentication code function MAC (K 2 , Z), and ID represents the identity of the user as the decrypter, and can uniquely determine the user's public Key, Z represents a message data bit string of the message authentication code to be obtained;
若加密明文的方法是基于密钥派生函数KDF(·)的分组密码算法,则计算klen=K 1_len+K 2_len,然后计算K'=KDF(C 1||w n||ID,klen),设K 1′为K′前K 1_len比特,K 2′为K′的后K 2_len比特,如果K 1′为全0比特串,则报错并退出,否则计算M′=Dec(K 1′,C 2),其中K 1_len是分组密码算法Dec(·)中密钥K 1的比特长度,klen表示输出的比特串长度,取值为预先设定; If the method of encrypting plaintext is a block cipher algorithm based on the key derivation function KDF(·), calculate klen=K 1_ len+K 2_ len, then calculate K'=KDF(C 1 ||w n ||ID,klen Let K 1 ' be the K 1_ len bit before K' and K 2 ' be the K 2_ len bit of K'. If K 1 ' is a full 0 bit string, report an error and exit, otherwise calculate M'=Dec ( K 1 ', C 2 ), where K 1_ len is the bit length of the key K 1 in the block cipher algorithm Dec(·), and klen represents the length of the output bit string, and the value is preset;
计算u=MAC(K 2′,C 2),从C中取出比特串C 3,如果u≠C 3,则报错并退出,否则输出明文M′。 Calculate u = MAC(K 2 ', C 2 ), take the bit string C 3 from C, and if u ≠ C 3 , report an error and exit, otherwise output plaintext M'.
本发明对比现有技术有如下的有益效果:SM9标识密码算法是一种基于双线性对的标识密码算法,它可以把用户的身份标识用以生成用户的公、私密钥对。SM9的应用与管理不需要数字证书、证书库或密钥库,主要用于数字签名、数据加密、密钥交换以及身份认证等,该算法于2015年发布为国家密码行业标准(GM/T 0044-2016)。基于SM9标识密码算法,本发明中的密钥生成中心(KGC)为参与SM9解密系统的通信方生成对应的部分密钥。收到密钥后,第n通信方A n计算第一个临时变量
Figure PCTCN2018116941-appb-000049
并返回给A n-1。A n-1收到w 1后,计算第二个临时变量
Figure PCTCN2018116941-appb-000050
并返回给A n-2,如此继续下去,直到A 1收到w n-1后,计算第n个临时变量
Figure PCTCN2018116941-appb-000051
并按加密明文的方法分类进行解密计算,最终输出明文M′。
Compared with the prior art, the present invention has the following beneficial effects: the SM9 identification cryptographic algorithm is an identification cryptographic algorithm based on a bilinear pairing, which can use the user's identity to generate a public and private key pair of the user. The application and management of SM9 does not require digital certificates, certificate bases or key stores. It is mainly used for digital signatures, data encryption, key exchange and identity authentication. The algorithm was released in 2015 as the national password industry standard (GM/T 0044). -2016). Based on the SM9 identification cryptographic algorithm, the Key Generation Center (KGC) in the present invention generates a corresponding partial key for the communicating party participating in the SM9 decryption system. After receiving the key, the nth communicating party A n calculates the first temporary variable
Figure PCTCN2018116941-appb-000049
And return to A n-1 . After A n-1 receives w 1 , it calculates the second temporary variable.
Figure PCTCN2018116941-appb-000050
And return to A n-2 , and so on, until A 1 receives w n-1 , calculate the nth temporary variable
Figure PCTCN2018116941-appb-000051
The decryption calculation is performed according to the method of encrypting plaintext, and finally the plaintext M' is output.
因此,本发明设计了一种多方分布式SM9解密方法与系统,假设有n个通信方,此方案必须在n个通信方协同利用自己的部分私钥共同协作解密,才能的到最终的计算结果,同时保证了私钥的安全性。相较于现有技术,本发明不仅降低了用户的计算复杂度,同时提高了密钥的安全性。Therefore, the present invention devises a multi-party distributed SM9 decryption method and system, assuming that there are n communicating parties, this scheme must cooperate with each other to share and decrypt the partial private keys in the n communicating parties, and the final calculation result can be obtained. At the same time, the security of the private key is guaranteed. Compared with the prior art, the invention not only reduces the computational complexity of the user, but also improves the security of the key.
附图说明DRAWINGS
在结合以下附图阅读本公开的实施例的详细描述之后,能够更好地理解本发明的上述特征和优点。在附图中,各组件不一定是按比例绘制,并且具有类似的相关特性或特征的组件可能具有相同或相近的附图标记。The above features and advantages of the present invention will be better understood from the following description of the appended claims. In the figures, components are not necessarily drawn to scale, and components having similar related features or features may have the same or similar reference numerals.
图1示出了本发明的密钥生成方法的一实施例的流程图。1 is a flow chart showing an embodiment of a key generation method of the present invention.
图2示出了本发明的多分布式的SM9解密方法的一实施例的流程图。2 is a flow chart showing an embodiment of a multi-distributed SM9 decryption method of the present invention.
图3示出了本发明的多分布式的SM9解密方法的一实施例的示意图。FIG. 3 shows a schematic diagram of an embodiment of a multi-distributed SM9 decryption method of the present invention.
具体实施方式Detailed ways
以下结合附图和具体实施例对本发明作详细描述。注意,以下结合附图和具体实施例描述的诸方面仅是示例性的,而不应被理解为对本发明的保护范围进行任何限制。The invention is described in detail below with reference to the drawings and specific embodiments. It is to be noted that the aspects described below in conjunction with the drawings and the specific embodiments are merely exemplary and are not to be construed as limiting the scope of the invention.
在开始描述本发明的实施例的技术方案之前,先列出在下述描述中会出现的符号及其定义。Before starting to describe the technical solutions of the embodiments of the present invention, the symbols that appear in the following description and their definitions are listed first.
KGC:密钥生成中心。是一个可信机构,主要负责生成系统参数、主私钥以及加密密钥。KGC: Key Generation Center. It is a trusted authority responsible for generating system parameters, master and private keys, and encryption keys.
KDF(·):密钥派生函数。KDF(·): Key derivation function.
MAC(·):消息认证码函数。MAC (·): Message authentication code function.
G 1,G 2:阶为素数q的加法循环群。 G 1 , G 2 : The addition cycle group whose order is prime q.
G T:阶为素数q的乘法循环群。 G T : The multiplicative cyclic group whose order is prime q.
e:从G 1×G 2到G T的双线性对。 e: bilinear pair from G 1 ×G 2 to G T .
g u:乘法群G T中g的u次幂,即
Figure PCTCN2018116941-appb-000052
其中u是正整数。
g u : the power of u in the multiplicative group G T , ie
Figure PCTCN2018116941-appb-000052
Where u is a positive integer.
H 1(·),H 2(·):由{0,1} *
Figure PCTCN2018116941-appb-000053
的密码杂凑函数。
H 1 (·), H 2 (·): from {0,1} * to
Figure PCTCN2018116941-appb-000053
Password hash function.
ID C:通信方C的标识,可以唯一确定通信方C的公钥。 ID C : The identity of the communicating party C, which can uniquely determine the public key of the communicating party C.
Figure PCTCN2018116941-appb-000054
通信方C的加密密钥。
Figure PCTCN2018116941-appb-000054
The encryption key of the communicating party C.
mod q:模q运算。例如,27(mod 5)≡2。Mod q: modulo q operation. For example, 27 (mod 5) ≡ 2.
q:循环群G 1,G 2和G T的阶,且q>2 191为素数。 q: the order of the cyclic groups G 1 , G 2 and G T , and q>2 191 is a prime number.
P 1,P 2:分别是群G 1和G 2的生成元。 P 1 , P 2 : are the generators of the groups G 1 and G 2 , respectively.
[u]P:加法群G 1,G 2中元素P的u倍。 [u]P: U times the element P in the addition group G 1 and G 2 .
x||y:x与y的拼接,其中x和y是比特串或字节串。x||y: splicing of x and y, where x and y are bit strings or byte strings.
[x,y]:不小于x且不大于y的整数的集合。[x, y]: A set of integers not less than x and not greater than y.
本发明的密钥生成方法的实施例如图1所示,以下是对密钥生成方法的各步骤的详细描述。The implementation of the key generation method of the present invention is as shown in Fig. 1. The following is a detailed description of the steps of the key generation method.
步骤S11:KGC计算一个临时变量t 1=H 1(ID||hid,q)+ke,若t 1=0,则重新产生主密钥,计算和公开加密主公钥,并更新已有用户的加密密钥;否则,计算第二个临时变量
Figure PCTCN2018116941-appb-000055
其中
Figure PCTCN2018116941-appb-000056
表示t 1模q的逆元,即
Figure PCTCN2018116941-appb-000057
Step S11: KGC calculates a temporary variable t 1 =H 1 (ID||hid,q)+ke. If t 1 =0, regenerate the master key, calculate and publicize the encrypted master public key, and update the existing user. Encryption key; otherwise, calculate the second temporary variable
Figure PCTCN2018116941-appb-000055
among them
Figure PCTCN2018116941-appb-000056
Representing the inverse of t 1 modulo q, ie
Figure PCTCN2018116941-appb-000057
其中在步骤S11之前的系统初始化阶段,KGC选择随机数ke∈[1,q-1]作为主私钥,计算P pub-e=[ke]P 1作为加密主公钥。KGC秘密保存ke,公开P pub-e。KGC选择并公开用一个字节表示的加密密钥生成函数识别符hid。 In the system initialization phase before step S11, the KGC selects the random number ke ∈ [1, q-1] as the primary private key, and calculates P pub-e = [ke] P 1 as the encrypted primary public key. KGC secretly saves ke, public P pub-e . The KGC selects and discloses the encryption key generation function identifier hid represented by one byte.
步骤S12:KGC随机选择d 1,d 2,...,d n-1∈[1,q-1],计算
Figure PCTCN2018116941-appb-000058
其中
Figure PCTCN2018116941-appb-000059
表示d i模q的逆元,即
Figure PCTCN2018116941-appb-000060
Step S12: KGC randomly selects d 1 , d 2 , ..., d n-1 ∈ [1, q-1], and calculates
Figure PCTCN2018116941-appb-000058
among them
Figure PCTCN2018116941-appb-000059
Representing the inverse of d i modulo q, ie
Figure PCTCN2018116941-appb-000060
步骤S13:KGC设置第一部分加密密钥
Figure PCTCN2018116941-appb-000061
第二部分加密密钥
Figure PCTCN2018116941-appb-000062
以此类推,第n-1部分加密密钥
Figure PCTCN2018116941-appb-000063
第n部分加密密钥
Figure PCTCN2018116941-appb-000064
Step S13: KGC sets the first partial encryption key
Figure PCTCN2018116941-appb-000061
Second part encryption key
Figure PCTCN2018116941-appb-000062
And so on, the n-1 part encryption key
Figure PCTCN2018116941-appb-000063
Part n encryption key
Figure PCTCN2018116941-appb-000064
步骤S14:用户把
Figure PCTCN2018116941-appb-000065
存储到设备A i中。
Step S14: the user puts
Figure PCTCN2018116941-appb-000065
Stored in device A i .
此外,本发明还揭示了一种计算机存储介质,其上存有计算机程序,运行计算机程序以执行如前述实施例所述的密钥生成方法的各步骤。由于执行的步骤和前述实施例的相同,在此不再赘述。Furthermore, the present invention also discloses a computer storage medium having a computer program thereon running the computer program to perform the steps of the key generation method as described in the foregoing embodiments. Since the steps performed are the same as those of the foregoing embodiment, they are not described herein again.
本发明的多分布式的SM9解密方法的一实施例的流程如图2和图3所示,以下是对SM9解密方法的各步骤的详细描述。设密文C=C 1||C 3||C 2的比特长度为mlen,分组密码算法中密钥K 1的比特长度为K 1_len,函数MAC(K 2,Z)中密钥K 2的比特长度为K 2_len。为了对密文C解密,n个通信方进行如下交互。 The flow of an embodiment of the multi-distributed SM9 decryption method of the present invention is shown in Figures 2 and 3. The following is a detailed description of the steps of the SM9 decryption method. Let the ciphertext C=C 1 ||C 3 || C 2 have a bit length of mlen, and the bit length of the key K 1 in the block cipher algorithm is K 1_ len, and the key K 2 in the function MAC (K 2 , Z) The bit length is K 2_ len. In order to decrypt the ciphertext C, the n communicating parties perform the following interactions.
步骤S21:第n通信方A n从密文C中提取出比特串C 1,将C 1的数据类型转换为椭圆曲线上的点,验证C 1∈G 1是否成立,如果不成立则报错并退出;否则,A n计算第一个临时变量
Figure PCTCN2018116941-appb-000066
并将w 1发送给A n-1
Step S21: The nth communication party A n extracts the bit string C 1 from the ciphertext C, converts the data type of C 1 into a point on the elliptic curve, verifies whether C 1 ∈ G 1 is established, and if not, reports an error and exits. ; otherwise, A n calculates the first temporary variable
Figure PCTCN2018116941-appb-000066
And send w 1 to A n-1 .
步骤S22:A n-1收到w 1后,计算第二个临时变量
Figure PCTCN2018116941-appb-000067
并将w 2发送给A n-2
Step S22: After receiving the w 1 , the A n-1 calculates the second temporary variable.
Figure PCTCN2018116941-appb-000067
And send w 2 to A n-2 .
步骤S23:A n-2收到w 2后,计算第三个临时变量
Figure PCTCN2018116941-appb-000068
并将w 3发送给A n-3
Step S23: After receiving the w 2 by A n-2 , calculating the third temporary variable
Figure PCTCN2018116941-appb-000068
And send w 3 to A n-3 .
步骤S24:以此类推,A 2收到w n-2后,计算第n-1个临时变量
Figure PCTCN2018116941-appb-000069
并将w n-1发送给A 1
Step S24: and so on, after A 2 receives w n-2 , the n-1th temporary variable is calculated.
Figure PCTCN2018116941-appb-000069
And send w n-1 to A 1 .
步骤S25:A 1收到w n-1后,计算第n个临时变量
Figure PCTCN2018116941-appb-000070
并将w n的数据类型转换为比特串。A 1按加密明文的方法分类进行解密计算。
Step S25: After A 1 receives w n-1 , the nth temporary variable is calculated.
Figure PCTCN2018116941-appb-000070
And convert the data type of w n into a bit string. A 1 is classified according to the method of encrypting plaintext for decryption calculation.
A 1按加密明文的方法分类进行解密计算的具体方式如下。 The specific manner in which A 1 is classified according to the method of encrypting plaintext is as follows.
a)若加密明文的方法是基于密钥派生函数的序列密码算法,则a) If the method of encrypting plaintext is a sequence cipher algorithm based on a key derivation function, then
i.计算klen=mlen+K 2_len,然后计算K'=KDF(C 1||w n||ID,klen)。设K 1′为K′前mlen比特,K 2′为K′的后K 2_len比特,如果K 1′为全0比特串,则报错并退出; i. Calculate klen=mlen+K 2_ len, then calculate K'=KDF(C 1 ||w n ||ID, klen). Let K 1 ' be the pre-Mlen bit of K', K 2 ' be the K 2_ len bit of K', and if K 1 ' is a full 0-bit string, report an error and exit;
ii.否则,计算
Figure PCTCN2018116941-appb-000071
Ii. Otherwise, calculate
Figure PCTCN2018116941-appb-000071
b)若加密明文的方法是基于密钥派生函数的分组密码算法,则b) if the method of encrypting plaintext is a block cipher algorithm based on a key derivation function, then
i.计算klen=K 1_len+K 2_len,然后计算K'=KDF(C 1||w n||ID,klen)。设K 1′为K′前K 1_len比特,K 2′为K′的后K 2_len比特,如果K 1′为全0比特串,则报错并退出; i. Calculate klen=K 1_ len+K 2_ len, then calculate K'=KDF(C 1 ||w n ||ID, klen). Let K 1 ' be the K 1_ len bit before K', K 2 ' be the K 2_ len bit of K', and if K 1 ' is a full 0 bit string, report an error and exit;
ii.否则,计算M′=Dec(K 1′,C 2),其中Dec(·)为分组解密算法。 Ii. Otherwise, calculate M'=Dec(K 1 ', C 2 ), where Dec(·) is a packet decryption algorithm.
c)计算u=MAC(K 2′,C 2),从C中取出比特串C 3,如果u≠C 3,则报错并退出; c) calculate u = MAC (K 2 ', C 2 ), take the bit string C 3 from C, and if u ≠ C 3 , report an error and exit;
d)否则,输出明文M′。d) Otherwise, the plaintext M' is output.
此外,本发明还揭示了一种计算机存储介质,其上存有计算机程序,运行计算机程序以执行如前述实施例所述的多分布式的SM9解密方法的各步骤。由于执行的步骤和前述实施例的相同,在此不再赘述。Moreover, the present invention also discloses a computer storage medium having a computer program thereon running the computer program to perform the steps of the multi-distributed SM9 decryption method as described in the foregoing embodiments. Since the steps performed are the same as those of the foregoing embodiment, they are not described herein again.
本发明具有安全性高、通信代价小等优点,通信方在不泄漏各自密钥的前提下,必须共同参与才能完成对消息的完整解密。在基本操作运算中,双线性映射计算代价比较大,因此在本发明的方案中,双线性操作是由一个通信方来完成的,从而降低其他通信方的计算代价并减少了交互次数。The invention has the advantages of high security, low communication cost, and the like, and the communication party must participate in the complete decryption of the message without leaking the respective keys. In the basic operation operation, the bilinear map calculation is relatively expensive, so in the solution of the present invention, the bilinear operation is performed by one communication party, thereby reducing the computational cost of other communication parties and reducing the number of interactions.
尽管为使解释简单化将上述方法图示并描述为一系列动作,但是应理解并领会,这些方法不受动作的次序所限,因为根据一个或多个实施例,一些动作可按不同次序发生和/或与来自本文中图示和描述或本文中未图示和描述但本领域技术人员可以理解的其他动作并发地发生。Although the above method is illustrated and described as a series of acts for simplicity of the explanation, it should be understood and appreciated that these methods are not limited by the order of the acts, as some acts may occur in different orders in accordance with one or more embodiments. And/or concurrently with other acts from what is illustrated and described herein or that are not illustrated and described herein, but are understood by those skilled in the art.
本领域技术人员将进一步领会,结合本文中所公开的实施例来描述的各种解说性逻辑板块、模块、电路、和算法步骤可实现为电子硬件、计算机软件、或这两者的组合。为清楚地解说硬件与软件的这一可互换性,各种解说性组件、框、模块、电路、和步骤在上面是以其功能性的形式作一般化描述的。此类功能性是被实现为硬件还是软件取决于具体应用和施加于整体系统的设计约束。技术人员对于每种特定应用可用不同的方式来实现所描述的功能性,但这样的实现决策不应被解读成导致脱离了本发明的范围。Those skilled in the art will further appreciate that the various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps are described above generally in the form of their functionality. Whether such functionality is implemented as hardware or software depends on the particular application and design constraints imposed on the overall system. The skilled person will be able to implement the described functionality in a different manner for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the invention.
结合本文所公开的实施例描述的各种解说性逻辑板块、模块、和电路可用通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、分立的门或晶体管逻辑、分立的硬件组件、或其设计成执行本文所描述功能的任何组合 来实现或执行。通用处理器可以是微处理器,但在替换方案中,该处理器可以是任何常规的处理器、控制器、微控制器、或状态机。处理器还可以被实现为计算设备的组合,例如DSP与微处理器的组合、多个微处理器、与DSP核心协作的一个或多个微处理器、或任何其他此类配置。Various illustrative logic blocks, modules, and circuits described in connection with the embodiments disclosed herein may be general purpose processors, digital signal processors (DSPs), application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), or others. Programmable logic devices, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein are implemented or executed. A general purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. The processor may also be implemented as a combination of computing devices, such as a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.
结合本文中公开的实施例描述的方法或算法的步骤可直接在硬件中、在由处理器执行的软件模块中、或在这两者的组合中体现。软件模块可驻留在RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动盘、CD-ROM、或本领域中所知的任何其他形式的存储介质中。示例性存储介质耦合到处理器以使得该处理器能从/向该存储介质读取和写入信息。在替换方案中,存储介质可以被整合到处理器。处理器和存储介质可驻留在ASIC中。ASIC可驻留在用户终端中。在替换方案中,处理器和存储介质可作为分立组件驻留在用户终端中。The steps of a method or algorithm described in connection with the embodiments disclosed herein may be embodied in hardware, in a software module executed by a processor, or in a combination of the two. A software module may reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art. An exemplary storage medium is coupled to the processor to enable the processor to read and write information to/from the storage medium. In the alternative, the storage medium can be integrated into the processor. The processor and the storage medium can reside in an ASIC. The ASIC can reside in the user terminal. In the alternative, the processor and the storage medium may reside as a discrete component in the user terminal.
在一个或多个示例性实施例中,所描述的功能可在硬件、软件、固件或其任何组合中实现。如果在软件中实现为计算机程序产品,则各功能可以作为一条或更多条指令或代码存储在计算机可读介质上或藉其进行传送。计算机可读介质包括计算机存储介质和通信介质两者,其包括促成计算机程序从一地向另一地转移的任何介质。存储介质可以是能被计算机访问的任何可用介质。作为示例而非限定,这样的计算机可读介质可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁存储设备、或能被用来携带或存储指令或数据结构形式的合意程序代码且能被计算机访问的任何其它介质。任何连接也被正当地称为计算机可读介质。例如,如果软件是使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)、或诸如红外、无线电、以及微波之类的无线技术从web网站、服务器、或其它远程源传送而来,则该同轴电缆、光纤电缆、双绞线、DSL、或诸如红外、无线电、以及微波之类的无线技术就被包括在介质的定义之中。如本文中所使用的盘(disk)和碟(disc)包括压缩碟(CD)、激光碟、光碟、数字多用碟(DVD)、软盘和蓝光碟,其中盘(disk)往往以磁的方式再现数据,而碟(disc)用激光以光学方式再现数据。上述的组合也应被包括在计算机可读介质的范围内。In one or more exemplary embodiments, the functions described may be implemented in hardware, software, firmware, or any combination thereof. If implemented as a computer program product in software, the functions may be stored on or transmitted as one or more instructions or code on a computer readable medium. Computer readable media includes both computer storage media and communication media including any medium that facilitates transfer of a computer program from one place to another. A storage medium may be any available media that can be accessed by a computer. By way of example and not limitation, such computer readable media may comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, disk storage or other magnetic storage device, or can be used to carry or store instructions or data structures. Any other medium that is desirable for program code and that can be accessed by a computer. Any connection is also properly referred to as a computer readable medium. For example, if the software is transmitted from a web site, server, or other remote source using coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave. The coaxial cable, fiber optic cable, twisted pair cable, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of the medium. Disks and discs as used herein include compact discs (CDs), laser discs, optical discs, digital versatile discs (DVDs), floppy discs, and Blu-ray discs, in which disks are often reproduced magnetically. Data, and discs optically reproduce data with a laser. Combinations of the above should also be included within the scope of computer readable media.
提供对本公开的先前描述是为使得本领域任何技术人员皆能够制作或使用本公开。对本公开的各种修改对本领域技术人员来说都将是显而易见的,且本文中所定义的普适原理可被应用到其他变体而不会脱离本公开的精神或范围。由此,本公开并非旨在被限定于本文中所描述的示例和设计,而是应被授予与本文中所公开的原理和新颖性特征相一致的最广范围。The previous description of the disclosure is provided to enable any person skilled in the art to make or use the disclosure. Various modifications to the present disclosure will be obvious to those skilled in the art, and the general principles defined herein may be applied to other variations without departing from the spirit or scope of the disclosure. The present disclosure is not intended to be limited to the examples and designs described herein, but rather the broadest scope of the principles and novel features disclosed herein.

Claims (8)

  1. 一种密钥生成方法,其特征在于,包括:A key generation method, comprising:
    步骤1:密钥生成中心计算一个临时变量t 1=H 1(ID||hid,q)+ke,若t 1=0则重新产生主密钥,计算和公开加密主公钥,并更新已有用户的加密密钥,否则计算第二个临时变量
    Figure PCTCN2018116941-appb-100001
    其中
    Figure PCTCN2018116941-appb-100002
    表示t 1模q的逆元,即
    Figure PCTCN2018116941-appb-100003
    其中ke表示主私钥,hid是密钥生成中心选择公开用一个字节表示的加密密钥生成函数识别符,q是循环群的阶且q>2 191为素数,ID是用户的身份标识符,H 1()表示由密码杂凑函数派生的密码函数;
    Step 1: The key generation center calculates a temporary variable t 1 =H 1 (ID||hid,q)+ke, if t 1 =0, regenerates the master key, calculates and publicizes the encrypted master public key, and updates the Have the user's encryption key, otherwise calculate the second temporary variable
    Figure PCTCN2018116941-appb-100001
    among them
    Figure PCTCN2018116941-appb-100002
    Representing the inverse of t 1 modulo q, ie
    Figure PCTCN2018116941-appb-100003
    Where ke denotes the master private key, hid is the key generation center selects the encryption key generation function identifier expressed by one byte, q is the order of the cyclic group and q>2 191 is the prime number, and the ID is the identity identifier of the user , H 1 () represents a cryptographic function derived from a cryptographic hash function;
    步骤2:密钥生成中心随机选择d 1,d 2,...,d n-1∈[1,q-1],计算
    Figure PCTCN2018116941-appb-100004
    其中
    Figure PCTCN2018116941-appb-100005
    表示d i模q的逆元,即
    Figure PCTCN2018116941-appb-100006
    其中[1,q-1]表示不小于1且不大于q-1的整数的集合;
    Step 2: The key generation center randomly selects d 1 , d 2 ,..., d n-1 ∈[1,q-1], and calculates
    Figure PCTCN2018116941-appb-100004
    among them
    Figure PCTCN2018116941-appb-100005
    Representing the inverse of d i modulo q, ie
    Figure PCTCN2018116941-appb-100006
    Where [1, q-1] represents a set of integers not less than 1 and not greater than q-1;
    步骤3:密钥生成中心设置第一部分加密密钥
    Figure PCTCN2018116941-appb-100007
    第二部分加密密钥
    Figure PCTCN2018116941-appb-100008
    以此类推,第n-1部分加密密钥
    Figure PCTCN2018116941-appb-100009
    第n部分加密密钥
    Figure PCTCN2018116941-appb-100010
    其中P 2表示阶为素数q的加法循环群G 2的生成元,[d n]P 2是生成元P 2的d n倍;
    Step 3: The Key Generation Center sets the first part of the encryption key.
    Figure PCTCN2018116941-appb-100007
    Second part encryption key
    Figure PCTCN2018116941-appb-100008
    And so on, the n-1 part encryption key
    Figure PCTCN2018116941-appb-100009
    Part n encryption key
    Figure PCTCN2018116941-appb-100010
    Wherein P 2 represents a generator of the addition cycle group G 2 whose order is prime q, and [d n ]P 2 is d n times the generator P 2 ;
    步骤4:用户把
    Figure PCTCN2018116941-appb-100011
    存储到设备A i中。
    Step 4: User put
    Figure PCTCN2018116941-appb-100011
    Stored in device A i .
  2. 根据权利要求1所述的密钥生成方法,其特征在于,在步骤1之前还包括系统初始化阶段:The key generation method according to claim 1, further comprising a system initialization phase before the step 1:
    密钥生成中心选择选择随机数ke∈[1,q-1]作为主私钥,计算P pub-e=[ke]P 1作为加密主公钥,密钥生成中心秘密保存主私钥ke,公开P pub-e,且密钥生成中心选择公开用一个字节表示的加密密钥生成函数识别符hid,其中P 1是阶为素数q的加法循环群G 1的生成元,[ke]P 1是生成元P 1的ke倍。 The key generation center selects the random number ke∈[1,q-1] as the primary private key, calculates P pub-e =[ke]P 1 as the encrypted primary public key, and the key generation center secretly saves the primary private key ke. P pub-e is published, and the key generation center selects to disclose an encryption key generation function identifier hid represented by one byte, where P 1 is a generator of the addition cycle group G 1 whose order is prime q, [ke]P 1 is the ke times of the generated element P 1 .
  3. 一种计算机存储介质,其特征在于,存储有计算机程序,运行计算机程序执行以下的步骤:A computer storage medium characterized in that a computer program is stored, and the computer program is executed to perform the following steps:
    步骤1:密钥生成中心计算一个临时变量t 1=H 1(ID||hid,q)+ke,若t 1=0则重新产生主密钥,计算和公开加密主公钥,并更新已有用户的加密密钥,否则计算第二个临时变量
    Figure PCTCN2018116941-appb-100012
    其中
    Figure PCTCN2018116941-appb-100013
    表示t 1模q的逆元,即
    Figure PCTCN2018116941-appb-100014
    其中ke表示主私钥,hid是密钥生成中心选择公开用一个字节表示的加密密钥生成函数识别符,q是循环群的阶且q>2 191为素数,ID是用户的身份标识符,H 1()表示由密码杂凑函数派生的密码函数;
    Step 1: The key generation center calculates a temporary variable t 1 =H 1 (ID||hid,q)+ke, if t 1 =0, regenerates the master key, calculates and publicizes the encrypted master public key, and updates the Have the user's encryption key, otherwise calculate the second temporary variable
    Figure PCTCN2018116941-appb-100012
    among them
    Figure PCTCN2018116941-appb-100013
    Representing the inverse of t 1 modulo q, ie
    Figure PCTCN2018116941-appb-100014
    Where ke denotes the master private key, hid is the key generation center selects the encryption key generation function identifier expressed by one byte, q is the order of the cyclic group and q>2 191 is the prime number, and the ID is the identity identifier of the user , H 1 () represents a cryptographic function derived from a cryptographic hash function;
    步骤2:密钥生成中心随机选择d 1,d 2,...,d n-1∈[1,q-1],计算
    Figure PCTCN2018116941-appb-100015
    其中
    Figure PCTCN2018116941-appb-100016
    表示d i模q的逆元,即
    Figure PCTCN2018116941-appb-100017
    其中[1,q-1]表示不小于1且不大于q-1的整数的集合;
    Step 2: The key generation center randomly selects d 1 , d 2 ,..., d n-1 ∈[1,q-1], and calculates
    Figure PCTCN2018116941-appb-100015
    among them
    Figure PCTCN2018116941-appb-100016
    Representing the inverse of d i modulo q, ie
    Figure PCTCN2018116941-appb-100017
    Where [1, q-1] represents a set of integers not less than 1 and not greater than q-1;
    步骤3:密钥生成中心设置第一部分加密密钥
    Figure PCTCN2018116941-appb-100018
    第二部分加密密钥
    Figure PCTCN2018116941-appb-100019
    以此类推,第n-1部分加密密钥
    Figure PCTCN2018116941-appb-100020
    第n部分加密密钥
    Figure PCTCN2018116941-appb-100021
    其中P 2表示阶为素数q的加法循环群G 2的生成元,[d n]P 2是生成元P 2的d n倍;
    Step 3: The Key Generation Center sets the first part of the encryption key.
    Figure PCTCN2018116941-appb-100018
    Second part encryption key
    Figure PCTCN2018116941-appb-100019
    And so on, the n-1 part encryption key
    Figure PCTCN2018116941-appb-100020
    Part n encryption key
    Figure PCTCN2018116941-appb-100021
    Wherein P 2 represents a generator of the addition cycle group G 2 whose order is prime q, and [d n ]P 2 is d n times the generator P 2 ;
    步骤4:用户把
    Figure PCTCN2018116941-appb-100022
    存储到设备A i中。
    Step 4: User put
    Figure PCTCN2018116941-appb-100022
    Stored in device A i .
  4. 根据权利要求3所述的计算机存储介质,其特征在于,运行计算机程序执行的步骤还包括在步骤1之前的系统初始化阶段:The computer storage medium of claim 3 wherein the step of executing the computer program execution further comprises the system initialization phase prior to step 1:
    密钥生成中心选择选择随机数ke∈[1,q-1]作为主私钥,计算P pub-e=[ke]P 1作为加密主公钥,密钥生成中心秘密保存主私钥ke,公开P pub-e,且密钥生成中心选择公开用一个字节表示的加密密钥生成函数识别符hid,其中P 1是阶为素数q的加法循环群G 1的生成元,[ke]P 1是生成元P 1的ke倍。 The key generation center selects the random number ke∈[1,q-1] as the primary private key, calculates P pub-e =[ke]P 1 as the encrypted primary public key, and the key generation center secretly saves the primary private key ke. P pub-e is published, and the key generation center selects to disclose an encryption key generation function identifier hid represented by one byte, where P 1 is a generator of the addition cycle group G 1 whose order is prime q, [ke]P 1 is the ke times of the generated element P 1 .
  5. 一种多分布式的SM9解密方法,其特征在于,包括:A multi-distributed SM9 decryption method, comprising:
    步骤1:第n通信方A n从密文C中提取出比特串C 1,将C 1的数据类型转换为椭圆曲线上的点,验证C 1∈G 1是否成立,如果不成立则报错并退出;否则,A n计算第一个临时变量
    Figure PCTCN2018116941-appb-100023
    并将w 1发送给A n-1,其中密文C=C 1||C 3||C 2,C 1、C 2、C 3为比特串,G 1为阶q为素数的加法循环群,
    Figure PCTCN2018116941-appb-100024
    为密钥生成中心设置的第n部分加密密钥,e(·,·)表示G 1×G 2→G T的双线性映射,G 1,G 2为阶是素数q的加法循环群,G T为阶是素数q的乘法循环群;
    Step 1: The nth communication party A n extracts the bit string C 1 from the ciphertext C, converts the data type of C 1 into a point on the elliptic curve, verifies whether C 1 ∈ G 1 is established, and if not, reports an error and exits ; otherwise, A n calculates the first temporary variable
    Figure PCTCN2018116941-appb-100023
    And send w 1 to A n-1 , where ciphertext C=C 1 ||C 3 || C 2 , C 1 , C 2 , C 3 are bit strings, and G 1 is an additive cyclic group whose order q is a prime number ,
    Figure PCTCN2018116941-appb-100024
    The n-th part encryption key set for the key generation center, e(·,·) represents a bilinear map of G 1 ×G 2 →G T , and G 1 , G 2 are addition cycle groups whose order is a prime number q, G T is a multiplicative cyclic group whose order is a prime number q;
    步骤2:第n-1通信方A n-1收到w 1后,计算第二个临时变量
    Figure PCTCN2018116941-appb-100025
    并将w 2发送给第n-2通信方A n-2,其中
    Figure PCTCN2018116941-appb-100026
    为密钥生成中心设置的第n-1部分加密密钥,
    Figure PCTCN2018116941-appb-100027
    表示w 1
    Figure PCTCN2018116941-appb-100028
    次幂,即
    Figure PCTCN2018116941-appb-100029
    Step 2: After the n-1th communicating party A n-1 receives w 1 , calculate the second temporary variable
    Figure PCTCN2018116941-appb-100025
    And send w 2 to the n-2th communicating party A n-2 , wherein
    Figure PCTCN2018116941-appb-100026
    The n-1th part encryption key set for the key generation center,
    Figure PCTCN2018116941-appb-100027
    Representing w 1
    Figure PCTCN2018116941-appb-100028
    Power, ie
    Figure PCTCN2018116941-appb-100029
    步骤3:第n-2通信方A n-2收到w 2后,计算第三个临时变量
    Figure PCTCN2018116941-appb-100030
    并将w 3发送给第n-3通信方A n-3,其中
    Figure PCTCN2018116941-appb-100031
    为密钥生成中心设置的第n-2部分加密密钥;
    Step 3: After the n-2th communicating party A n-2 receives w 2 , calculate the third temporary variable
    Figure PCTCN2018116941-appb-100030
    And send w 3 to the n-3th party A n-3 , wherein
    Figure PCTCN2018116941-appb-100031
    The n-2th encryption key set for the key generation center;
    步骤4:以此类推,第2通信方A 2收到w n-2后,计算第n-1个临时变量
    Figure PCTCN2018116941-appb-100032
    并将w n-1发送给第1通信方A 1,其中
    Figure PCTCN2018116941-appb-100033
    为密钥生成中心设置的第2部分加密密钥;
    Step 4: By analogy, after receiving the w n-2 , the second communicating party A 2 calculates the n-1th temporary variable.
    Figure PCTCN2018116941-appb-100032
    And send w n-1 to the first communication party A 1 , wherein
    Figure PCTCN2018116941-appb-100033
    The second part encryption key set for the key generation center;
    步骤5:第1通信方A 1收到w n-1后,计算第n个临时变量
    Figure PCTCN2018116941-appb-100034
    并将w n的数据类型转换为比特串,第1通信方A 1按加密明文的方法分类进行解密计算。
    Step 5: After receiving the w n-1 , the first communication party A 1 calculates the nth temporary variable.
    Figure PCTCN2018116941-appb-100034
    The data type of w n is converted into a bit string, and the first communication party A 1 classifies and decrypts according to the method of encrypting plaintext.
  6. 根据权利要求5所述的多分布式的SM9解密方法,其特征在于,步骤5的按加密明文的方法分类进行解密计算进一步包括:The multi-distributed SM9 decryption method according to claim 5, wherein the decrypting calculation according to the method of encrypting plaintext in step 5 further comprises:
    若加密明文的方法是基于密钥派生函数KDF(·)的序列密码算法,则计算klen=mlen+K 2_len,然后计算K'=KDF(C 1||w n||ID,klen),设K 1′为K′前mlen比特,K 2′为K′的后K 2_len比特,如果K 1′为全0比特串,则报错并退出,否则计算
    Figure PCTCN2018116941-appb-100035
    其中mlen是密文C的比特长度,K 2_len是消息认证码函数MAC(K 2,Z)中密钥K 2的比特长度,ID表示作为解密者的用户的标识,可以唯一确定用户的公钥,Z表示待求取消息认证码的消息数据比特串;
    If the method of encrypting plaintext is based on the sequence cipher algorithm of the key derivation function KDF(·), calculate klen=mlen+K 2_ len, and then calculate K'=KDF(C 1 ||w n ||ID,klen), Let K 1 ' be the pre-Mlen bit of K', and K 2 ' be the K 2_ len bit of K'. If K 1 ' is a full 0-bit string, report an error and exit, otherwise calculate
    Figure PCTCN2018116941-appb-100035
    Where mlen is the bit length of ciphertext C, K 2_ len is the bit length of the key K 2 in the message authentication code function MAC (K 2 , Z), and ID represents the identity of the user as the decrypter, and can uniquely determine the user's public Key, Z represents a message data bit string of the message authentication code to be obtained;
    若加密明文的方法是基于密钥派生函数KDF(·)的分组密码算法,则计算klen=K 1_len+K 2_len,然后计算K'=KDF(C 1||w n||ID,klen),设K 1′为K′前K 1_len比特,K 2′为K′的后K 2_len比特,如果K 1′为全0比特串,则报错并退出,否则计算M′=Dec(K 1′,C 2),其中K 1_len是分组密码算法Dec(·)中密钥K 1的比特长度,klen表示输出的比特串长度,取值为预先设定; If the method of encrypting plaintext is a block cipher algorithm based on the key derivation function KDF(·), calculate klen=K 1_ len+K 2_ len, then calculate K'=KDF(C 1 ||w n ||ID,klen Let K 1 ' be the K 1_ len bit before K' and K 2 ' be the K 2_ len bit of K'. If K 1 ' is a full 0 bit string, report an error and exit, otherwise calculate M'=Dec ( K 1 ', C 2 ), where K 1_ len is the bit length of the key K 1 in the block cipher algorithm Dec(·), and klen represents the length of the output bit string, and the value is preset;
    之后计算u=MAC(K 2′,C 2),从C中取出比特串C 3,如果u≠C 3,则报错并退出,否则输出明文M′。 Then calculate u=MAC(K 2 ', C 2 ), take the bit string C 3 from C, and if u ≠ C 3 , report an error and exit, otherwise output the plaintext M′.
  7. 一种计算机存储介质,其特征在于,存储有计算机程序,运行计算机程序后执行如下的步骤:A computer storage medium, characterized in that a computer program is stored, and after running the computer program, the following steps are performed:
    步骤1:第n通信方A n从密文C中提取出比特串C 1,将C 1的数据类型转换为椭圆曲线上的点,验证C 1∈G 1是否成立,如果不成立则报错并退出;否则,A n计算第一个临时变量
    Figure PCTCN2018116941-appb-100036
    并将w 1发送给A n-1,其中密文C=C 1||C 3||C 2,C 1、C 2、C 3为比特串,G 1为阶q为素数的加法循环群,
    Figure PCTCN2018116941-appb-100037
    为密钥生成中心设置的第n部分加密密钥,e(·,·)表示G 1×G 2→G T的双线性映射,G 1,G 2为阶是素数q的加法循环群,G T为阶是素数q的乘法循环群;
    Step 1: The nth communication party A n extracts the bit string C 1 from the ciphertext C, converts the data type of C 1 into a point on the elliptic curve, verifies whether C 1 ∈ G 1 is established, and if not, reports an error and exits ; otherwise, A n calculates the first temporary variable
    Figure PCTCN2018116941-appb-100036
    And send w 1 to A n-1 , where ciphertext C=C 1 ||C 3 || C 2 , C 1 , C 2 , C 3 are bit strings, and G 1 is an additive cyclic group whose order q is a prime number ,
    Figure PCTCN2018116941-appb-100037
    The n-th part encryption key set for the key generation center, e(·,·) represents a bilinear map of G 1 ×G 2 →G T , and G 1 , G 2 are addition cycle groups whose order is a prime number q, G T is a multiplicative cyclic group whose order is a prime number q;
    步骤2:第n-1通信方A n-1收到w 1后,计算第二个临时变量
    Figure PCTCN2018116941-appb-100038
    并将w 2发送给第n-2通信方A n-2,其中
    Figure PCTCN2018116941-appb-100039
    为密钥生成中心设置的第n-1部分加密密钥,
    Figure PCTCN2018116941-appb-100040
    表示w 1
    Figure PCTCN2018116941-appb-100041
    次幂,即
    Figure PCTCN2018116941-appb-100042
    Step 2: After the n-1th communicating party A n-1 receives w 1 , calculate the second temporary variable
    Figure PCTCN2018116941-appb-100038
    And send w 2 to the n-2th communicating party A n-2 , wherein
    Figure PCTCN2018116941-appb-100039
    The n-1th part encryption key set for the key generation center,
    Figure PCTCN2018116941-appb-100040
    Representing w 1
    Figure PCTCN2018116941-appb-100041
    Power, ie
    Figure PCTCN2018116941-appb-100042
    步骤3:第n-2通信方A n-2收到w 2后,计算第三个临时变量
    Figure PCTCN2018116941-appb-100043
    并将w 3发送给第n-3通信方A n-3,其中
    Figure PCTCN2018116941-appb-100044
    为密钥生成中心设置的第n-2部分加密密钥;
    Step 3: After the n-2th communicating party A n-2 receives w 2 , calculate the third temporary variable
    Figure PCTCN2018116941-appb-100043
    And send w 3 to the n-3th party A n-3 , wherein
    Figure PCTCN2018116941-appb-100044
    The n-2th encryption key set for the key generation center;
    步骤4:以此类推,第2通信方A 2收到w n-2后,计算第n-1个临时变量
    Figure PCTCN2018116941-appb-100045
    并将w n-1发送给第1通信方A 1,其中
    Figure PCTCN2018116941-appb-100046
    为密钥生成中心设置的第2部分加密密钥;
    Step 4: By analogy, after receiving the w n-2 , the second communicating party A 2 calculates the n-1th temporary variable.
    Figure PCTCN2018116941-appb-100045
    And send w n-1 to the first communication party A 1 , wherein
    Figure PCTCN2018116941-appb-100046
    The second part encryption key set for the key generation center;
    步骤5:第1通信方A 1收到w n-1后,计算第n个临时变量
    Figure PCTCN2018116941-appb-100047
    并将w n的数据类型转换为比特串,第1通信方A 1按加密明文的方法分类进行解密计算。
    Step 5: After receiving the w n-1 , the first communication party A 1 calculates the nth temporary variable.
    Figure PCTCN2018116941-appb-100047
    The data type of w n is converted into a bit string, and the first communication party A 1 classifies and decrypts according to the method of encrypting plaintext.
  8. 根据权利要求7所述的计算机存储介质,其特征在于,运行计算机程序执行的步骤5的按加密明文的方法分类进行解密计算进一步包括:The computer storage medium according to claim 7, wherein the performing the decryption calculation by the method of encrypting plaintext in step 5 of the execution of the computer program further comprises:
    若加密明文的方法是基于密钥派生函数KDF(·)的序列密码算法,则计算klen=mlen+K 2_len,然后计算K'=KDF(C 1||w n||ID,klen),设K 1′为K′前mlen比特,K 2′为K′的后K 2_len比特,如果K 1′为全0比特串,则报错并退出,否则计算
    Figure PCTCN2018116941-appb-100048
    其中mlen是密文C的比特长度,K 2_len是消息认证码函数MAC(K 2,Z)中密钥K 2的比特长度,ID表示作为解密者的用户的标识,可以唯一确定用户的公钥,Z表示待求取消息认证码的消息数据比特串;
    If the method of encrypting plaintext is based on the sequence cipher algorithm of the key derivation function KDF(·), calculate klen=mlen+K 2_ len, and then calculate K'=KDF(C 1 ||w n ||ID,klen), Let K 1 ' be the pre-Mlen bit of K', and K 2 ' be the K 2_ len bit of K'. If K 1 ' is a full 0-bit string, report an error and exit, otherwise calculate
    Figure PCTCN2018116941-appb-100048
    Where mlen is the bit length of ciphertext C, K 2_ len is the bit length of the key K 2 in the message authentication code function MAC (K 2 , Z), and ID represents the identity of the user as the decrypter, and can uniquely determine the user's public Key, Z represents a message data bit string of the message authentication code to be obtained;
    若加密明文的方法是基于密钥派生函数KDF(·)的分组密码算法,则计算klen=K 1_len+K 2_len,然后计算K'=KDF(C 1||w n||ID,klen),设K 1′为K′前K 1_len比特,K 2′为K′的后K 2_len比特,如果K 1′为全0比特串,则报错并退出,否则计算M′=Dec(K 1′,C 2),其中K 1_len是分组密码算法Dec(·)中密钥K 1的比特长度,klen表示输出的比特串长度,取值为预先设定; If the method of encrypting plaintext is a block cipher algorithm based on the key derivation function KDF(·), calculate klen=K 1_ len+K 2_ len, then calculate K'=KDF(C 1 ||w n ||ID,klen Let K 1 ' be the K 1_ len bit before K' and K 2 ' be the K 2_ len bit of K'. If K 1 ' is a full 0 bit string, report an error and exit, otherwise calculate M'=Dec ( K 1 ', C 2 ), where K 1_ len is the bit length of the key K 1 in the block cipher algorithm Dec(·), and klen represents the length of the output bit string, and the value is preset;
    计算u=MAC(K 2′,C 2),从C中取出比特串C 3,如果u≠C 3,则报错并退出,否则输出明文M′。 Calculate u = MAC(K 2 ', C 2 ), take the bit string C 3 from C, and if u ≠ C 3 , report an error and exit, otherwise output plaintext M'.
PCT/CN2018/116941 2017-11-23 2018-11-22 Multi-distributed sm9 decryption method, medium and key generating method WO2019101134A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201711183120.XA CN108418686B (en) 2017-11-23 2017-11-23 Multi-distributed SM9 decryption method and medium, and key generation method and medium
CN201711183120.X 2017-11-23

Publications (1)

Publication Number Publication Date
WO2019101134A1 true WO2019101134A1 (en) 2019-05-31

Family

ID=63125356

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2018/116941 WO2019101134A1 (en) 2017-11-23 2018-11-22 Multi-distributed sm9 decryption method, medium and key generating method

Country Status (2)

Country Link
CN (1) CN108418686B (en)
WO (1) WO2019101134A1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111600948A (en) * 2020-05-14 2020-08-28 北京安御道合科技有限公司 Cloud platform application and data security processing method, system, storage medium and program based on identification password
CN112769556A (en) * 2020-12-30 2021-05-07 北京宏思电子技术有限责任公司 Implementation method and device for accelerating SM9 bilinear pairing operation in embedded system
CN112769557A (en) * 2020-12-30 2021-05-07 北京宏思电子技术有限责任公司 Implementation method and device for accelerating SM9 bilinear pairing operation in embedded system
CN113904768A (en) * 2021-11-10 2022-01-07 福建师范大学 Online and offline decryption method based on SM9 key encapsulation mechanism

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108418686B (en) * 2017-11-23 2021-03-19 矩阵元技术(深圳)有限公司 Multi-distributed SM9 decryption method and medium, and key generation method and medium
CN109194478B (en) * 2018-11-19 2021-12-07 武汉大学 Method for generating SM9 digital signature by combining multiple parties under asymmetric environment
CN109600225B (en) * 2018-12-04 2019-10-15 北京海泰方圆科技股份有限公司 A kind of key exchange method, device and storage medium
CN110247759B (en) * 2019-06-03 2020-07-10 武汉理工大学 SM9 private key generation and use method and system
CN110166239B (en) * 2019-06-04 2023-01-06 成都卫士通信息产业股份有限公司 User private key generation method and system, readable storage medium and electronic device
CN111030801A (en) * 2019-10-25 2020-04-17 武汉大学 Multi-party distributed SM9 key generation and ciphertext decryption method and medium
CN111010276A (en) * 2019-10-25 2020-04-14 武汉大学 Multi-party combined SM9 key generation and ciphertext decryption method and medium
CN110855425A (en) * 2019-10-25 2020-02-28 武汉大学 Lightweight multiparty cooperative SM9 key generation and ciphertext decryption method and medium
CN111106936B (en) * 2019-11-27 2023-04-21 国家电网有限公司 SM 9-based attribute encryption method and system
CN111314080B (en) * 2019-12-13 2021-04-13 北京海泰方圆科技股份有限公司 SM9 algorithm-based collaborative signature method, device and medium
CN111585759B (en) * 2020-05-12 2023-06-09 北京华大信安科技有限公司 Efficient on-line and off-line encryption method based on SM9 public key encryption algorithm
CN112926075B (en) * 2021-03-26 2023-01-24 成都卫士通信息产业股份有限公司 SM9 key generation method, device, equipment and storage medium
CN113141248B (en) * 2021-04-25 2023-06-16 重庆都会信息科技有限公司 Threshold decryption method and system based on homomorphic encryption and readable storage medium
CN115549904A (en) * 2022-10-11 2022-12-30 北京无字天书科技有限公司 Key generation method, related method, computer device and storage medium

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102523093A (en) * 2011-12-16 2012-06-27 河海大学 Encapsulation method and encapsulation system for certificate-based key with label
CN105025024A (en) * 2015-07-22 2015-11-04 河海大学 Certificateless condition based proxy re-encryption system and method
CN108418686A (en) * 2017-11-23 2018-08-17 矩阵元技术(深圳)有限公司 A kind of how distributed SM9 decryption methods and medium and key generation method

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8199917B2 (en) * 2008-10-29 2012-06-12 International Business Machines Corporation SID management for access to encrypted drives
WO2010096923A1 (en) * 2009-02-27 2010-09-02 Certicom Corp. System and method for securely communicating with electronic meters
EP2649833A1 (en) * 2010-12-07 2013-10-16 Telefonaktiebolaget LM Ericsson (PUBL) Method and apparatus for provisioning a temporary identity module using a key-sharing scheme
CN102523086B (en) * 2011-12-07 2014-12-24 上海交通大学 Key recovery method in privacy protection cloud storage system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102523093A (en) * 2011-12-16 2012-06-27 河海大学 Encapsulation method and encapsulation system for certificate-based key with label
CN105025024A (en) * 2015-07-22 2015-11-04 河海大学 Certificateless condition based proxy re-encryption system and method
CN108418686A (en) * 2017-11-23 2018-08-17 矩阵元技术(深圳)有限公司 A kind of how distributed SM9 decryption methods and medium and key generation method

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111600948A (en) * 2020-05-14 2020-08-28 北京安御道合科技有限公司 Cloud platform application and data security processing method, system, storage medium and program based on identification password
CN111600948B (en) * 2020-05-14 2022-11-18 北京安御道合科技有限公司 Cloud platform application and data security processing method, system, storage medium and program based on identification password
CN112769556A (en) * 2020-12-30 2021-05-07 北京宏思电子技术有限责任公司 Implementation method and device for accelerating SM9 bilinear pairing operation in embedded system
CN112769557A (en) * 2020-12-30 2021-05-07 北京宏思电子技术有限责任公司 Implementation method and device for accelerating SM9 bilinear pairing operation in embedded system
CN112769556B (en) * 2020-12-30 2022-08-19 北京宏思电子技术有限责任公司 Implementation method and device for accelerating SM9 bilinear pairing operation in embedded system
CN112769557B (en) * 2020-12-30 2022-10-18 北京宏思电子技术有限责任公司 Implementation method and device for accelerating SM9 bilinear pairing operation in embedded system
CN113904768A (en) * 2021-11-10 2022-01-07 福建师范大学 Online and offline decryption method based on SM9 key encapsulation mechanism
CN113904768B (en) * 2021-11-10 2023-05-05 福建师范大学 Online offline decryption method based on SM9 key packaging mechanism

Also Published As

Publication number Publication date
CN108418686A (en) 2018-08-17
CN108418686B (en) 2021-03-19

Similar Documents

Publication Publication Date Title
WO2019101134A1 (en) Multi-distributed sm9 decryption method, medium and key generating method
CN111106936B (en) SM 9-based attribute encryption method and system
CN108667626B (en) Secure two-party collaboration SM2 signature method
CN111740828B (en) Key generation method, device and equipment and encryption and decryption method
CN108173639B (en) Two-party cooperative signature method based on SM9 signature algorithm
Odelu et al. Provably secure authenticated key agreement scheme for smart grid
WO2019214070A1 (en) Encryption method for user communication on block chain, apparatus, terminal device and storage medium
Seo et al. An efficient certificateless encryption for secure data sharing in public clouds
JP4527358B2 (en) An authenticated individual cryptographic system that does not use key escrow
US8429408B2 (en) Masking the output of random number generators in key generation protocols
CN107395368B (en) Digital signature method, decapsulation method and decryption method in media-free environment
US11223486B2 (en) Digital signature method, device, and system
CN112564907B (en) Key generation method and device, encryption method and device, and decryption method and device
TWI760546B (en) Computer-implemented system and method for highly secure, high speed encryption and transmission of data
CN110535626B (en) Secret communication method and system for identity-based quantum communication service station
CN111010276A (en) Multi-party combined SM9 key generation and ciphertext decryption method and medium
US11528127B2 (en) Computer-implemented system and method for highly secure, high speed encryption and transmission of data
CN111030801A (en) Multi-party distributed SM9 key generation and ciphertext decryption method and medium
CN110855425A (en) Lightweight multiparty cooperative SM9 key generation and ciphertext decryption method and medium
WO2023184858A1 (en) Timestamp generation method and apparatus, and electronic device and storage medium
TW202025666A (en) Computer implemented system and method for sharing a common secret
CN116599659B (en) Certificate-free identity authentication and key negotiation method and system
CA2742530C (en) Masking the output of random number generators in key generation protocols
Doshi An enhanced approach for CP-ABE with proxy re-encryption in IoT paradigm
CN114070570A (en) Safe communication method of power Internet of things

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 18881581

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18881581

Country of ref document: EP

Kind code of ref document: A1