CN117240467A - Method, system and node for realizing threshold signature - Google Patents
Method, system and node for realizing threshold signature Download PDFInfo
- Publication number
- CN117240467A CN117240467A CN202311119660.7A CN202311119660A CN117240467A CN 117240467 A CN117240467 A CN 117240467A CN 202311119660 A CN202311119660 A CN 202311119660A CN 117240467 A CN117240467 A CN 117240467A
- Authority
- CN
- China
- Prior art keywords
- random value
- participants
- share
- signature
- private key
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 92
- 238000003860 storage Methods 0.000 claims description 13
- 238000004422 calculation algorithm Methods 0.000 description 37
- 238000012795 verification Methods 0.000 description 35
- 230000005540 biological transmission Effects 0.000 description 26
- 230000008569 process Effects 0.000 description 18
- 230000006870 function Effects 0.000 description 12
- 239000012634 fragment Substances 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000006872 improvement Effects 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 7
- 238000004590 computer program Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 101100391172 Dictyostelium discoideum forA gene Proteins 0.000 description 5
- 239000000654 additive Substances 0.000 description 5
- 230000000996 additive effect Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 238000009826 distribution Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 239000000047 product Substances 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000009795 derivation Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 206010061619 Deformity Diseases 0.000 description 1
- 108010001267 Protein Subunits Proteins 0.000 description 1
- 230000004931 aggregating effect Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000007795 chemical reaction product Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 229920001296 polysiloxane Polymers 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 108090000623 proteins and genes Proteins 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 239000010979 ruby Substances 0.000 description 1
- 229910001750 ruby Inorganic materials 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Landscapes
- Storage Device Security (AREA)
Abstract
A method of implementing a distributed threshold signature, comprising: a distributed key generation stage: each of the n participants generates a first random value and a second random value respectively, and exchanges with other participants after homomorphic encryption; each party generates a private key share based on the collected first and second random values and a sum of the secret shares generated by the distributed key generation protocol; an offline phase of distributed signing, each of at least t+1 participants performs: updating the share of the private key, generating a third random value of the private key and a public key corresponding to the third random value, and broadcasting; an online phase of distributed signing, each of the at least t+1 participants performing: after collecting the third random value public key, calculating the total coordinates of the third random value public key, and calculating r in the signature share of the message based on the total coordinates, and furtherCalculating a component s of the signature share of the message from r and the third random value of the self, the updated self private key share i Thereby obtaining a signature share.
Description
Technical Field
The embodiment of the specification belongs to the technical field of cryptography, and particularly relates to a method, a system and a node for realizing threshold signature.
Background
In cryptography, public key cryptography, known as public key cryptography for short, is cryptography using a pair of public and private keys (public-private keys are denoted pk-sk, where pk represents public key, sk represents secret key), corresponding to cryptography using only one private key. Public key cryptography includes encryption algorithms and digital signature algorithms. Public-private key cryptography pairs are the basis for modern cryptographic security, and many applications are based on pk-sk, such as https (Hypertext Transfer Protocol Secure, secure hypertext transfer protocol) based application layer encrypted transport protocols, blockchain, etc.
The private key generally represents the identity of the party that owns the private key, which can only be held by the owner of the private key and cannot be disclosed, while the corresponding public key can be disclosed. Signing with the private key may represent approval by the private key owner of certain information of the digital world, and the signed information may also represent certain behavior of the private key owner in the message of the agreement. In general, an owner has a private key alone, and then the owner can sign a certain information by using its private key and send the signed information to other parties. After receiving this signature, the receiver can verify the signature using the corresponding public key. The recipient can confirm that the owner signed the information and that the signed information has not been tampered with.
Sometimes an account requires a flexible access control policy, especially where one account is commonly controlled by multiple parties on a blockchain. Under some requirements, one account needs to be commonly controlled by n participants. Thus, controlling the account, such as a transfer, requires approval by all n parties to control the account's transfer. Under other requirements, the account may be controlled without all consent from n participants, but with consent from t+1 of the n participants (t+1 < n, t being the threshold), which may be achieved by a threshold signature. In the threshold cryptography, private key information is shared to a plurality of independent participants, and each private key calculation requires agreement of the plurality of participants, so that the algorithm security is improved; and when a small number of participants fail and are not available, the usability of the private key is not affected. A secure (t, n) threshold cryptographic algorithm should be satisfied that (1) any more than t participants can calculate the final signature, exchanged keys or plaintext, while t or less than t participants cannot get any information about the above result; (2) No information about the private key and the private key shares of the participants is revealed during the execution of the algorithm.
Disclosure of Invention
The invention aims to provide a method, a system and a node for realizing threshold signature, which comprise the following steps:
a method of implementing a distributed threshold signature, comprising: a distributed key generation stage: each of the n participants generates a first random value and a second random value respectively, and exchanges with other participants after homomorphic encryption; each party generates a private key share based on the collected first and second random values and a sum of the secret shares generated by the distributed key generation protocol; an offline phase of distributed signing, each of at least t+1 participants performs: updating the share of the private key, generating a third random value of the private key and a public key corresponding to the third random value, and broadcasting; an online phase of distributed signing, each of the at least t+1 participants performing: after collecting the third random value public key, calculating the total coordinates of the third random value public key, calculating r in the signature share of the message based on the total coordinates, and calculating the component s of the signature share of the message based on r, the third random value of the message, the updated private key share of the message i Thereby obtaining a signature share.
A computer device, comprising:
A processor;
and a memory in which a program is stored, wherein when the processor executes the program, the following operations are performed:
generating a first random value and a second random value, and exchanging with other participants after homomorphic encryption; each party generates a private key share based on the collected first and second random values and a sum of the secret shares generated by the distributed key generation protocol;
updating the share of the private key, generating a third random value of the private key and a public key corresponding to the third random value, and broadcasting;
after collecting the third random value public key, calculating the total coordinates of the third random value public key, calculating r in the signature share of the message based on the total coordinates, and calculating the component s of the signature share of the message based on r, the third random value of the message, the updated private key share of the message i Thereby obtaining a signature share.
A storage medium storing a program, wherein the program when executed performs the operations of:
generating a first random value and a second random value, and exchanging with other participants after homomorphic encryption; each party generates a private key share based on the collected first and second random values and a sum of the secret shares generated by the distributed key generation protocol;
Updating the share of the private key, generating a third random value of the private key and a public key corresponding to the third random value, and broadcasting;
after collecting the third random value public key, calculating the total coordinates of the third random value public key, calculating r in the signature share of the message based on the total coordinates, and calculating the component s of the signature share of the message based on r, the third random value of the message, the updated private key share of the message i Thereby obtaining a signature share.
The scheme provided by the application can support any threshold value.
Drawings
In order to more clearly illustrate the technical solutions of the embodiments of the present disclosure, the drawings that are needed in the description of the embodiments will be briefly described below, and it is obvious that the drawings in the following description are only some embodiments described in the present disclosure, and that other drawings may be obtained according to these drawings without inventive effort for a person skilled in the art.
FIG. 1 is a schematic diagram of distributed threshold key generation in one embodiment;
figure 2 is a schematic diagram of a distributed threshold signature in one embodiment.
Detailed Description
In order to make the technical solutions in the present specification better understood by those skilled in the art, the technical solutions in the embodiments of the present specification will be clearly and completely described below with reference to the drawings in the embodiments of the present specification, and it is obvious that the described embodiments are only some embodiments of the present specification, not all embodiments. All other embodiments, which can be made by one of ordinary skill in the art without undue burden from the present disclosure, are intended to be within the scope of the present disclosure.
DKG (Distributed Key Generation) protocol, a distributed key generation protocol, refers to a distributed protocol that cooperatively generates a set of keys among a plurality of parties participating in the protocol. The VSS (Verifiable Secret Sharing) protocol, namely the verifiable secret sharing protocol, is an important theoretical basis of the DKG protocol.
VSS refers to the fact that, when sharing one piece of secret data among a plurality of parties, the secret data can be split into a plurality of pieces without revealing the secret data itself, and the pieces can be stored in the plurality of parties. Then, when the secret data needs to be restored, all the fragments need to be collected to successfully restore the complete secret data.
The VSS protocol was first proposed by Shamir in 1979 to be a polynomial-based secret sharing protocol. The VSS protocol was developed by Shamir's Secret Sharing (SSS), and Shamir Secret Sharing was first introduced.
Shamir secret sharing, which includes two phases of secret sharing (or secret distribution) and secret reconstruction, first requires the construction of a polynomial by a Dealer:
f(x)=a 0 +a 1 x+a 2 x 2 +…+a n x n polynomial (, x)
Wherein a is 0 Is secret data to be shared.
The n-degree polynomial is composed of a set of coefficients (a 0 ,a 1 ,a 2 ,…,a n ) The unique determination, the set of coefficients includes n+1 values. Thus, if the curve corresponding to the n-th order polynomial is known to pass through n+1 different points on the plane, the coordinates (x 1 ,y 1 ),(x 2 ,y 2 ),…,(x n ,y n ),(x n+1 ,y n+1 ) Then a system of (n+1) th-order equations of n+1 equations can be obtained, from which the n+1 coefficients a can be determined 0 ,a 1 ,a 2 ,…,a n Further determining the polynomial (x), finally obtaining the secret data a 0 Is a value of (2). Coordinates (x) 1 ,y 1 ),(x 2 ,y 2 ),…,(x n ,y n ),(x n+1 ,y n+1 ) I.e. n +1 secret slices.
With respect to solving for curves passing through points from existing points, this solving process is called polynomial interpolation. There are various ways to implement polynomial interpolation, and a common Lagrangian interpolation method is described below. Given an n-degree polynomial, the polynomial is known to correspond to a curve passing through n+1 points (x 1 ,y 1 ),(x 2 ,y 2 ),…,(x n ,y n ),(x n+1 ,y n+1 ) The polynomial of the nth order curve can be obtained by lagrangian interpolation as follows:
the polynomial (x) is in fact equivalent to the polynomial (x). Let x=0 in polynomial (x), then f (0) =a 0 I.e. the secret data a can be obtained 0 Is a value of (2). Therefore, the secret data a can also be obtained by setting x=0 in the polynomial (x:) 0 Values of (2)I.e. f (0) =a 0 。
For n+1 points (x 1 ,y 1 ),…,(x n ,y n ),(x n+1 ,y n+1 ) The above polynomial (x) can also be expressed as:
wherein,also, for constant items or secret values, there are
In summary, n+1 points on the polynomial may be taken and shared among n+1 participants, e.g., each participant obtains coordinates of one point. Collecting coordinates of any less than n+1 points does not infer the original secret data a 0 The secret data a can be restored by reconstructing the polynomial coefficients only after all n+1 points have been obtained 0 Is a value of (2). In addition, even if the coordinates of any less than n+1 points, for example, the coordinates of n points are collected, since there are innumerable n-th-order curves passing through the n points, the secret data a cannot be leaked from the probability 0 Is a value of (2). The degree of the polynomial is also referred to herein as the degree of the degree n.
Based on the method, threshold Shamir secret sharing can be achieved. For example, t-of-n secret sharing is to share secrets among n participants and specifies that the minimum secret shards required for recovery have a threshold value greater than t, i.e., greater than or equal to t+1. For example, in a transaction in which 4 parties participate, the agreed threshold is 3, i.e., n=4, t=2, and if t+1=3 parties are greater than or equal to t+1=3 parties provide own secret fragments, the secret can be restored, otherwise, the secret cannot be restored. Specifically, a polynomial of t=2 degrees may be constructed:
f(x)=a 0 +a 1 x+a 2 x 2 Polynomial (/ x)
Can obtain 4 different points on the curve passing plane corresponding to the 2-degree polynomial, namely obtain coordinates (x) 1 ,y 1 ),(x 2 ,y 2 ),(x 3 ,y 3 ),(x 4 ,y 4 ) And the coordinates of the 4 points are distributed to one participant in the secret sharing stage. The 4 participants were set to Party 1 ,Party 2 ,Party 3 ,Party 4 Thus, assume Party 1 Having slices (x) 1 ,y 1 ),Party 2 Having slices (x) 2 ,y 2 ),Party 3 Having slices (x) 3 ,y 3 ),Party 4 Having slices (x) 4 ,y 4 ). Since the polynomial (x) can be determined from any 3 points on the corresponding curve, party is therefore i When any three parties provide own secret shards in (i epsilon {1,2,3,4 }), a polynomial (x) can be restored in the secret reconstruction stage, so that a secret value a can be obtained 0 . When any less than three parties provide own secret shards, the polynomial (x) cannot be restored, and the secret value a cannot be obtained 0 . The above t is also referred to as a threshold.
The above Shamir secret sharing and threshold Shamir secret sharing require a role of generating polynomials and distributing secret patches, which may be referred to as Dealer. This Dealer is an entity that knows the secret and needs to be a trusted third party for each party. There is also a need for an entity, e.g. a Dealer or a party, but also other entities, for aggregating at least t+1 fragments and deriving secrets.
In engineering practice, polynomials are often defined in a finite field (based on elliptic curves or discrete logarithms) or in a prime field (based on RSA), rather than in a real or natural number field.
In the classical Shamir secret sharing scheme, the participants are assumed to be honest. In practice there may be dishonest behaviour, or so-called devil behaviour, e.g. deception of a certain party or parties, distribution of erroneous secret fragments to the party or parties, etc.
In secret sharing, verifiable secret sharing (Verifiable Secret Sharing, VSS) is proposed in order to verify a disfigurement, such as a party verifying that a Dealer spoofs itself (verifying whether the Dealer sent a wrong secret piece as described above). Feldman VSS is a practical VSS solution based on the Shamir secret sharing architecture, comprising:
the Dealer has a secret and distributes n slices of the secret to n participants, where t+1 participants can reconstruct the secret, and a t degree polynomial can be constructed using a threshold Shamir secret sharing scheme similar to that described above:
f(x)=a 0 +a 1 x+a 2 x 2 +…+a t x t polynomial (/ x)
Dealer is Party for each participant i Optionally selecting a non-0 x i Calculate s i =f(x i ) And secret the child s i Encryption of Party sent to participant i . Meanwhile, dealer calculationWhere j=0, 1,2,.. t, and disclose A j I.e. publication { A 0 ,A 1 ,A 2 ,…,A t }。A j Also referred to as public verification parameters. Here A j The method of generating (a) is the same as the method of generating the public key based on the private key on the elliptic curve, and thus, a j May also be referred to as public key sharding or public key sharing (share).
For the case where the selected polynomial is a corresponding elliptic curve, disclosure A j Is safe because according to the nature of elliptic curve, it cannot be according to A j Back-pushing to obtain a j 。
Public authentication parameter { A 0 ,A 1 ,A 2 ,…,A t Also known as commitment. The commitment can be used to verify whether a value of the polynomial is correct, since the coefficients of the polynomial are bound. In discrete logarithm based implementations, g is the generator (gene) of the cyclic group over the finite fieldrator), g may be in Dealer and Party i Pre-configured. The above-mentioned sub-secrets may also be referred to as secret shares.
The party receives the sub-secret s i Thereafter, the common verification parameters may be employed to verify s i Is effective in the following. S can be verified by verifying whether the following equation holds true i Whether or not to be effective:
polynomial (.) x) of the following formula the right side can be derived as follows:
the right side of the polynomial (x) can also be written as:
it can be seen that for Party i The Dealer selects a non-0 x for it i ,x i For example i, then Party i I and a common authentication parameter { A }, may be employed 0 ,A 1 ,A 2 ,…,A t To the right of the polynomial (x) is computed and the generator g and the subsecret s are used i To calculate the left side of the polynomial (x) and to determine whether the left and right sides of the polynomial (x) are equalWhether or not it is { A 0 ,A 1 ,A 2 ,…,A t Corresponds to a point on the curve. This verification belongs to the verification of the secret distribution phase. For simplicity, x can be taken generally i =i。
General basis in engineeringIn discrete logarithm implementations, modulo arithmetic is used for the above formulas, e.g., mod p, where p is a large prime number, and p is also Dealer and Party i Pre-configured. mod p is also omitted in the following analogy.
In the secret reconstruction phase, for example, at least t+1 participants respectively send their secret fragments to the Dealer, the Dealer can verify each secret fragment using the common verification parameters corresponding to the polynomial. Verification is not passed, and the party sending the secret shard can be proved to be wrongly; the secret shards that pass verification can be used as the basis for reconstructing the secret.
And in the secret reconstruction stage, after collecting secret fragments of at least t+1 participants, reconstructing a polynomial f (x) through a Lagrange interpolation method, thereby obtaining a value of f (0), and obtaining the secret value.
Furthermore, by the common authentication parameter { A } 0 ,A 1 ,A 2 ,…,A t May also be applied to secret a 0 Is verified, i.e. can verify (0, a) 0 ) Whether it is a point on the curve, because the following relationship exists:
that is, for the secret a 0 Is verified by the validity of the (A) and can be simplified to pass through the public verification parameter A 0 Realizing the method.
In the above derivation, 0 is defined 0 =1, and 0 k =0,k≠0。
In the above scenario, a Dealer is required, which is centralized, is a secret-aware entity, and as previously described, needs to be a trusted third party, or requires that the participants all trust the Dealer. In a distributed scenario, both distributed secret distribution and distributed secret reconstruction are required, which requires the removal of a centralized Dealer, thus implementing the de-trust. To address this problem, an improved protocol called join-Feldman was proposed by Rabin et al in 1999. The basic idea of this protocol is to execute the Feldman VSS protocol in parallel, where each participant generates a random polynomial locally and then shares the randomly selected secret value among all participants. Since it is a promise of the secret that is shared and not the secret itself, the secret cannot be recovered as long as multi-person collusion cheating exceeding the threshold t does not occur. Such Distributed VSS protocol with trusted third parties removed is also known as DVSS protocol (Distributed VSS).
Specifically, taking 4 participants as an example, assuming that the threshold t=2, the degree of the polynomial is also 2, and the decentralizing threshold secret sharing, that is, the Joint-Feldman implementation scheme, includes the following steps:
each P i (Party i Abbreviated as P i I e {1,2,3,4 }) sets the secret s to be shared i0 And randomly select other parameters to generate a t-degree polynomial:
participant P 1 Generating a 2 degree polynomial:
f 1 (z)=a 10 +a 11 z+a 12 z 2 wherein a is 10 Is P 1 Set secret s 1 ;
Participant P 2 Generating a 2 degree polynomial:
f 2 (z)=a 20 +a 21 z+a 22 z 2 wherein a is 20 Is P 2 Set secret s 2 ;
Participant P 3 Generating a 2 degree polynomial:
f 3 (z)=a 30 +a 31 z+a 32 z 2 wherein a is 30 Is P 3 Set secret s 3 ;
Participant P 4 Generating a 2 degree polynomial:
f 4 (z)=a 40 +a 41 z+a 42 z 2 wherein a is 40 Is P 4 Set secret s 4 。
Next, each party P i Generating and distributing n values on a curve corresponding to the t degree polynomial of the self, wherein n=4, t=2 and n are still set=1, 2,3,4, then:
participant P 1 Generating s 11 =f 1 (1)、s 12 =f 1 (2)、s 13 =f 1 (3)、s 14 =f 1 (4) Self-reserve s 11 And respectively encrypt and send s 12 To P 2 Encrypted transmission s 13 To P 3 Encrypted transmission s 14 To P 4 ;
Participant P 2 Generating s 21 =f 2 (1)、s 22 =f 2 (2)、s 23 =f 2 (3)、s 24 =f 2 (4) Self-reserve s 22 And respectively encrypt and send s 21 To P 1 Encrypted transmission s 23 To P 3 Encrypted transmission s 24 To P 4 ;
Participant P 3 Generating s 31 =f 3 (1)、s 32 =f 3 (2)、s 33 =f 3 (3)、s 34 =f 3 (4) Self-reserve s 33 And respectively encrypt and send s 31 To P 1 Encrypted transmission s 32 To P 2 Encrypted transmission s 34 To P 4 ;
Participant P 4 Generating s 41 =f 4 (1)、s 42 =f 4 (2)、s 43 =f 4 (3)、s 44 =f 4 (4) Self-reserve s 44 And respectively encrypt and send s 41 To P 1 Encrypted transmission s 42 To P 2 Encrypted transmission s 43 To P 3 。
Also, each participant P i And also generates public verification parameters corresponding to the self t degree polynomialWhere k=0, 1, …, t, and published to each party, specifically:
participant P 1 GeneratingComprises->Broadcast { A 10 ,A 11 ,A 12 Go to P 2 、P 3 And P 4 ;
Participant P 2 GeneratingComprises->Broadcast { A 20 ,A 21 ,A 22 Go to P 1 、P 3 And P 4 ;
Participant P 3 GeneratingComprises->Broadcast { A 30 ,A 31 ,A 32 Go to P 1 、P 2 And P 4 ;
Participant P 4 GeneratingComprises->Broadcast { A 40 ,A 41 ,A 42 Go to P 1 、P 2 And P 3 。
Thus P 1 Receiving s 21 After that, { A } 20 ,A 21 ,A 22 Verifying; p (P) 1 Receiving s 31 After that, { A } 30 ,A 31 ,A 32 Verifying; p (P) 1 Receiving s 41 After that, { A } 40 ,A 41 ,A 42 Verifying; the verification method is similar to the above, and will not be repeated.
Similarly, P 2 Receiving s 12 After that, { A } 10 ,A 11 ,A 12 Verifying; p (P) 2 Receiving s 32 After that, { A } 30 ,A 31 ,A 32 Verifying; p (P) 2 Receiving s 42 After that, { A } 40 ,A 41 ,A 42 Verifying;
similarly, P 3 Receiving s 13 After that, { A } 10 ,A 11 ,A 12 Verifying; p (P) 3 Receiving s 23 After that, { A } 20 ,A 21 ,A 22 Verifying; p (P) 3 Receiving s 43 After that, { A } 40 ,A 41 ,A 42 Verifying;
similarly, P 4 Receiving s 14 After that, { A } 10 ,A 11 ,A 12 Verifying; p (P) 4 Receiving s 24 After that, { A } 20 ,A 21 ,A 22 Verifying; p (P) 4 Receiving s 34 After that, { A } 30 ,A 31 ,A 32 Verifying.
Assuming that the set of authenticated participants obtained after each participant is authenticated is set as Qual, and qual= { P is set 1 ,P 2 ,P 3 ,P 4 -such that:
P 1 locally generated secret shares s with different parties 11 、s 21 、s 31 、s 41 And a common authentication parameter { A } 10 ,A 11 ,A 12 },{A 20 ,A 21 ,A 22 },{A 30 ,A 31 ,A 32 },{A 40 ,A 41 ,A 42 };
P 2 Locally generated secret shares s with different parties 12 、s 22 、s 32 、s 42 And a common authentication parameter { A } 10 ,A 11 ,A 12 },{A 20 ,A 21 ,A 22 },{A 30 ,A 31 ,A 32 },{A 40 ,A 41 ,A 42 };
P 3 Locally generated secret shares s with different parties 13 、s 23 、s 33 、s 43 And a common authentication parameter { A } 10 ,A 11 ,A 12 },{A 20 ,A 21 ,A 22 },{A 30 ,A 31 ,A 32 },{A 40 ,A 41 ,A 42 };
P 4 Locally generated secret shares s with different parties 14 、s 24 、s 34 、s 44 And a common authentication parameter { A } 10 ,A 11 ,A 12 },{A 20 ,A 21 ,A 22 },{A 30 ,A 31 ,A 32 },{A 40 ,A 41 ,A 42 }。
Then:
participant P 1 Can calculate the secret share s 1 The method comprises the following steps: s is(s) 1 =s 11 +s 21 +s 31 +s 41 ;
Participant P 2 Can calculate the secret share s 2 The method comprises the following steps: s is(s) 2 =s 12 +s 22 +s 32 +s 42 ;
Participant P 3 Can calculate the secret share s 3 The method comprises the following steps: s is(s) 3 =s 13 +s 23 +s 33 +s 43 ;
Participant P 4 Can calculate the secret share s 4 The method comprises the following steps: s is(s) 4 =s 14 +s 24 +s 34 +s 44 ;
Each participant P i Can calculate the secret share s by itself i Broadcast to other participants. Each party P i Collect the alignment { s ] 1 ,s 2 ,s 3 ,s 4 After at least a threshold t+1 secret shares, the secret s can be reconstructed 0 . Here, for t=2, each party P i After collecting at least the threshold t+1=2+1=3 secret shares, the secret s can also be reconstructed 0 。
This is because the sum of the curves of the participants can be summed to give a total curve:
f(z)=f 1 (z)+f 2 (z)+f 3 (z)+f 4 (z)
f(z)=(a 10 +a 11 z+a 12 z 2 )+(a 20 +a 21 z+a 22 z 2 )+(a 30 +a 31 z+a 32 z 2 )
+(a 40 +a 41 z+a 42 z 2 )
f(z)=(a 10 +a 20 +a 30 +a 40 )+(a 11 +a 21 +a 31 +a 41 )z+(a 12 +a 22 +a 32 +a 42 )z 2
polynomial (I)
This is the case:
s 1 =s 11 +s 21 +s 31 +s 41 =f 1 (1)+f 2 (1)+f 3 (1)+f 4 (1);
s 2 =s 12 +s 22 +s 32 +s 42 =f 1 (2)+f 2 (2)+f 3 (2)+f 4 (2);
s 3 =s 13 +s 23 +s 33 +s 43 =f 1 (3)+f 2 (3)+f 3 (3)+f 4 (3);
s 4 =s 14 +s 24 +s 34 +s 44 =f 1 (4)+f 2 (4)+f 3 (4)+f 4 (4);
for the total curve f (z), there is a relationship:
s 1 =f 1 (1)+f 2 (1)+f 3 (1)+f 4 (1)=f(1);
s 2 =f 1 (2)+f 2 (2)+f 3 (2)+f 4 (2)=f(2);
s 3 =f 1 (3)+f 2 (3)+f 3 (3)+f 4 (3)=f(3);
s 4 =f 1 (4)+f 2 (4)+f 3 (4)+f 4 (4)=f(4);
secret s 0 =a 10 +a 20 +a 30 +a 40 。
Thus, any party P i Collecting secret shares s 1 、s 2 、s 3 、s 4 After at least 3 points on the corresponding curve of the polynomial (I) are obtained, namely (x) 1 =1,y 1 =s 1 ),(x 2 =2,y 2 =s 2 ),(x 3 =3,y 3 =s 3 ),(x 4 =4,y 4 =s 4 ) At least 3 of these 4 coordinates, so that the total curve f (z) can be restored. Further, f (0) =a can be calculated 10 +a 20 +a 30 +a 40 =s 0 Thus, the secret s can be obtained 0 。
Also, by verifying the parameter { A } 10 ,A 11 ,A 12 },{A 20 ,A 21 ,A 22 },{A 30 ,A 31 ,A 32 },{A 40 ,A 41 ,A 42 May also be applied to secret s i Can be verified by verifying the validity of (0, s) i ) Whether it is a point on the total curve. Specifically, the validity is judged by verifying whether the following equation is established:
this is because the following relationship exists:
the right side of the polynomial (II) equal sign is also commonly referred to as public key share and is denoted as pub i I=1, 2, …, n for verifying the corresponding private key share.
As previously mentioned, x can be taken generally i I for eachi=1, 2, …, n. Thus, i can be the number of each participant.
For secret s 0 Verification of (x), i.e. x i =0, the above formula can be further deduced as follows:
definition 0 0 =1, and 0 k =0, k+.0, so the above equation can be further derived:
It can be seen that based on the polynomial (III), s can be verified 0 Is the legitimacy of (2).
Moreover, based on the derivation in the above polynomial (III), for verification s 0 Can be further simplified into:
the right side of the polynomial (IV) is also generally designated as the total public key and is denoted as pub.
The join-Feldman protocol can realize distributed secret sharing, namely, the main content of DKG is completed. The above-described secret sharing implementation is a series of secret sharing implementations starting from Shamir to threshold Shamir, feldman VSS protocol, and then to join-Feldman DVSS protocol. In fact, besides the series of schemes taking Shamir secret sharing as a starting point, there are schemes based on additive secret sharing (Additive Secret Share), SPDZ (an important protocol in multiparty security computation, which was first proposed in 2012), or chinese remainder theorem, etc., and finally DKG may also be implemented, which is omitted here and not repeated.
By implementing the DKG protocol, the problem that a single point of failure is caused by generating a key by a single entity, so that the whole is not available, and the problem that a single point of generating the key needs to be trusted can be overcome. However, due to the individual parties P i Broadcast-generated secret shares s ij I, j e (1, 2, …, n), n being the number of participants, and each participant P i Can calculate the secret share s by itself i Broadcast to other participants so that each participant P i Collect the alignment { s ] 1 ,s 2 ,s 3 ,s 4 After at least a threshold t+1 secret shares, the secret s can be reconstructed 0 In this way, at least t+1 participants will be led to obtain the final reconstructed secret s 0 I.e. the secret s will be exposed 0 The total curve will also become unusable. If a new secret s is to be generated again next time 0 The process of executing the DKG protocol needs to be repeated.
The DKG protocol can be used for constructing a distributed threshold signature protocol by combining the properties of threshold and secret promise and the like and a threshold signature algorithm matched with the DKG protocol. Blockchains are largely used as distributed systems with signature algorithms. In this way, nodes in the blockchain generate secret shares in a distributed manner through DKG, at least t+1 blockchain nodes adopt the secret shares as private key shares to sign information to be signed and broadcast, any blockchain node which collects at least t+1 signature shares can recover the total signature and recover the total public key in the mode, and the recovered total signature can be verified by the total public key, so that threshold signature is realized. Moreover, this has the advantage that the secret shares held by each block link point need not be broadcasted to other nodes, so that the secret shares of each block link point are not exposed, i.e. the private key is not exposed, and therefore the secret shares generated by one DKG can be reused many times without performing one DKG protocol for each threshold signature.
The national cipher is a domestic cipher algorithm identified by the national cipher bureau, and mainly comprises SM1, SM2, SM3, SM4 and the like. In public key cryptography, there are widely used ECC (Elliptic Curve Cryptography, elliptic curve cryptography, an asymmetric (or public key) encryption algorithm based on discrete logarithm problem, which can be expressed by adding or multiplying points on elliptic curve) and RSA (an asymmetric cryptographic algorithm, which is formed by splicing the first letters of Ron Rivest, adi shamir and Leonard Adleman surnames based on the multiplication result of two large prime numbers in a number theory) which are difficult to factor. Under the same security strength, the ECC is longer than the private key bit of RSA and the system parameters are much smaller, which means that the memory space required by applying ECC is much smaller, the bandwidth requirement for transmission is lower, the logic gate number of the logic circuit required by hardware to realize ECC is less than RSA, and the power consumption is lower. These advantages of ECC make it a public key cryptographic algorithm with development potential and application prospect, and several national and industry organizations have adopted ECC as a public key cryptographic algorithm standard by 2000 internationally. Under the background, the research of ECC of independent intellectual property rights is organized and studied from 2001 in China, and an SM2 algorithm is developed and completed at 2004 on the basis of absorbing the existing ECC research results at home and abroad by applying the public key cryptographic algorithm design and safety analysis theory and method which are accepted by the international cryptographic community. The SM2 algorithm is published in 12 th 2010 for the first time, and 3 rd 2012 becomes a commercial password standard (standard number is GM/T0003-2012) in China, and 8 th 2016 becomes a national password standard (standard number is GB/T32918-2016) in China.
SM2 contains a digital signature algorithm, a key exchange protocol and a public key encryption algorithm. The underlying SM2 signature algorithm includes:
signing party Alice selects one elliptic curve E q (a, b) and a base point g, and sharing this information to a verifier Bob, where q is a modulus;
alice is in finite fieldTop select a private key +.>And generates a public key x=g from the private key x ;
Alice is in finite fieldUp-select a random number +.>And calculate k=g k =(x 1 ,y 1 ),x 1 、y 1 Respectively the abscissa and the ordinate of the K point on the elliptic curve;
alice calculates a message m to be signed through hash to obtain a digest value H (m), and calculates:
r=H(m)+x 1 mod q type (a)
And based on this calculation:
s=(1+x) -1 (k-r.x) mod p; (b)
Alice generates signature σ= (r, s), and sends message m, signature σ, public key X to signer Bob.
Bob calculates the coordinates of point K' using base point g, signature σ, public key X:
K′=g s ·X r+s =(x′ 1 ,y′ 1 ) (c)
Bob uses the abscissa x ' of the r, message m, and K ' points in signature σ ' 1 The following equation is verified:
r=H(m)+x′ 1 mod q type (d)
If the above equation holds, the signature is valid; otherwise, the signature is invalid.
This is because, equivalently, verifying the coordinates of the K 'point (x' 1 ,y′ 1 ) Coordinates (x) of the K point employed in the signature 1 ,y 1 ) Equal:
(x′ 1 ,y′ 1 )=s·G+(r+s)·x·G=(1+x)·s·G+r·x·G=(k-r·x)·G+r·x·G=k·G
=(x 1 ,y 1 )
or expressed in an exponential form as follows:
(x′ 1 ,y′ 1 )=g s ·X r+s =g s ·g X(r+s) =g s ·g X(r+s) =g (1+X)s+Xr =g (k-r·X)+Xr =g k =(x 1 ,y 1 )
the basic SM2 signature algorithm described above can be extended to a threshold signature algorithm. For example, through the DKG procedure described above, n signers P 1 ,P 2 ,…,P n Each having its own secret share and having a total public key, wherein the threshold value is t, and t<n. At least t+1 signature parties in the n parties respectively adopt secret shares of themselves as private key shares respectively, after signing and broadcasting the same information to be signed, any verification party collecting at least t+1 signature shares can recover the total signature, and the total signature can be verified by adopting the total public key, so that the threshold signature is realized. Shang Ming et al in 2014 published in the article "SM 2 elliptic curve threshold cryptographic algorithm" of "cryptographic report," constructed a distributed signature algorithm based on SM2 that satisfies the t-n threshold, i.e., n parties respectively generate a private key fragment and a corresponding public key through a protocol, and at least t+1 of the n parties need to participate in the SM2 distributed signature protocol to generate a corresponding SM2 signature and verify. The disadvantage of this algorithm is that the above (t, n) must be satisfied with n.gtoreq.2t+1, which makes the application very inflexible. For example, the algorithm cannot meet the (2, 4) threshold or the (2, 3) threshold, which is most often used in real world use.
The above relationship may be represented by the distributed threshold key generation of fig. 1 and the distributed threshold signature of fig. 2.
The embodiment of the application provides a distributed threshold signature method based on SM 2.
The embodiment of the application can comprise two parts, namely a distributed threshold key generation part and a distributed threshold signature part, wherein the two parts are processes of how to mutually transmit data and how to process the data through a protocol form between the parties, so that the specific purpose is realized by cooperation.
The procedure of the distributed threshold key generation protocol is first described below. In this process, it is assumed that there are n participants, P 1 ,P 2 ,…,P n . Each party P via a distributed threshold key generation protocol i (i= {1,2, …, n }) a respective private key share x 'may be generated' i 。
Each participant P i An own public-private key pair for homomorphic encryption, such as the Paillier public-private key pair (E i ,e i ) Wherein e is i Is a private key, E i Is the corresponding public key. Homomorphic encryption techniques can "homomorphic" the plaintext data, i.e., map the plaintext data to a new, secure state, such that only recipients with a secret key can obtain the plaintext data. Paillier homomorphic addition is a public key encryption system widely used in cryptography, proposed by Pascal Paillier (1999). Its main feature is that it has additive homomorphic property, which means that given two ciphertexts, the ciphertexts of their corresponding plain text sum can be calculated without decryption. Specifically, assume that there are two plaintext m1 and m2, whose Paillier encrypted ciphertext is c1 and c2, respectively. The additive homomorphism of Paillier can be implemented as a new ciphertext c, which is exactly the ciphertext of the sum of m1 and m2, obtained by computing the product of c1 and c2. The additive homomorphism is an important feature of the Paillier encryption algorithm, and is expressed simply as: e (m) 1 )·E(m 2 )=E(m 1 +m 2 ) Dot product here, i.e. subsequent homomorphism additionThis homomorphism property allows some form of computation of the encrypted data to be accomplished without revealing the original data. />
Each participant P i After the generated homomorphic encryption public and private key pair, the public key can be sent to other participants.
For example, party P 1 Generating a Paillier encrypted public-private key (E 1 ,e 1 ) Then, homomorphic encryption public key E 1 Broadcasting to other participants; participant P 2 Generating a Paillier encrypted public-private key (E 2 ,e 2 ) Then, homomorphic encryption public key E 2 Broadcasting to other participants; participant P 3 Generating a Paillier encrypted public-private key (E 3 ,e 3 ) Then, homomorphic encryption public key E 3 Broadcasting to other participants; participant P 4 Generating a Paillier encrypted public-private key (E 4 ,e 4 ) Then, homomorphic encryption public key E 4 Broadcasting to other participants; participant P 5 Generating a Paillier encrypted public-private key (E 5 ,e 5 ) Then, homomorphic encryption public key E 5 Broadcast to other participants.
Each participant P i A second random value gamma may be generated i Then there are 5 participants P 1 ,P 2 ,P 3 ,P 4 ,P 5 Respectively generating second random values gamma 1 、γ 2 、γ 3 、γ 4 、γ 5 . Each participant P i The secret value gamma generated respectively i The sum is gamma, i.e
Also, each participant P i A t degree polynomial f may be generated i (z)=a i0 +a i1 z+a i2 z 2 +…+a it z t Wherein a is i0 Is P i The secret set is here referred to as gamma i . The threshold here is t, so that the degree of the polynomial is also t.
Let the threshold be 2 and let the total number of participants be 5, i.e. t=2, n=5, there are a total of 5 participants P 1 ,P 2 ,P 3 ,P 4 ,P 5 Respectively using the secret values gamma generated by each 1 、γ 2 、γ 3 、γ 4 、γ 5 Constructing a polynomial, wherein:
P 1 generating a 2 degree (t=2) polynomial: f (f) 1 (z)=a 10 +a 11 z+a 12 z 2 Wherein a is 10 Is P 1 Set secret gamma 1 ;
P 2 Generating a 2 degree (t=2) polynomial: f (f) 2 (z)=a 20 +a 21 z+a 22 z 2 Wherein a is 20 Is P 2 Set secret gamma 2 ;
P 3 Generating a 2 degree (t=2) polynomial: f (f) 3 (z)=a 30 +a 31 z+a 32 z 2 Wherein a is 30 Is P 3 Set secret gamma 3 ;
P 4 Generating a 2 degree (t=2) polynomial: f (f) 4 (z)=a 40 +a 41 z+a 42 z 2 Wherein a is 40 Is P 4 Set secret gamma 4 ;
P 5 Generating a 2 degree (t=2) polynomial: f (f) 5 (z)=a 50 +a 51 z+a 52 z 2 Wherein a is 50 Is P 5 Set secret gamma 5 ;
Further, each party P i N secret shares may be generated, one of which is reserved by itself, and the remaining secret shares sent to the other participants are encrypted. For example, party P i Generating coordinates of n points on a polynomial corresponding curve of the self as n secret shares, reserving the coordinates of one point of the self, and encrypting and transmitting the coordinates of the other points to other participants.
Specifically, for example:
P 1 generating s 11 =f 1 (1)、s 12 =f 1 (2)、s 13 =f 1 (3)、s 14 =f 1 (4)、s 15 =f 1 (5) Self-reserve s 11 And respectively encrypt and send s 12 To P 2 Encrypted transmission s 13 To P 3 Encrypted transmission s 14 To P 4 Encrypted transmission s 15 To P 5 ;
P 2 Generating s 21 =f 2 (1)、s 22 =f 2 (2)、s 23 =f 2 (3)、s 24 =f 2 (4)、s 25 =f 2 (5) Self-reserve s 22 And respectively encrypt and send s 21 To P 1 Encrypted transmission s 23 To P 3 Encrypted transmission s 24 To P 4 Encrypted transmission s 25 To P 5 ;
P 3 Generating s 31 =f 3 (1)、s 32 =f 3 (2)、s 33 =f 3 (3)、s 34 =f 3 (4)、s 35 =f 3 (5) Self-reserve s 33 And respectively encrypt and send s 31 To P 1 Encrypted transmission s 32 To P 2 Encrypted transmission s 34 To P 4 Encrypted transmission s 35 To P 5 ;
P 4 Generating s 41 =f 4 (1)、s 42 =f 4 (2)、s 43 =f 4 (3)、s 44 =f 4 (4)、s 45 =f 4 (5) Self-reserve s 44 And respectively encrypt and send s 41 To P 1 Encrypted transmission s 42 To P 2 Encrypted transmission s 43 To P 3 Encrypted transmission s 45 To P 5 ;
P 5 Generating s 51 =f 5 (1)、s 52 =f 5 (2)、s 53 =f 5 (3)、s 54 =f 5 (4)、s 55 =f 5 (5) Self-reserve s 55 And respectively encrypt and send s 51 To P 1 Encrypted transmission s 52 To P 2 Encrypted transmission s 53 To P 3 Encrypted transmission s 54 To P 4 ;
This is the case:
P 1 locally generated secret shares s with different parties 11 、s 21 、s 31 、s 41 、s 51 ;
P 2 Locally generated secret shares s with different parties 12 、s 22 、s 32 、s 42 、s 52 ;
P 3 Locally generated secret shares s with different parties 13 、s 23 、s 33 、s 43 、s 53 ;
P 4 Locally generated secret shares s with different parties 14 、s 24 、s 34 、s 44 、s 54 ;
P 5 Locally generated secret shares s with different parties 15 、s 25 、s 35 、s 45 、s 55 。
In addition, each party P i Can calculate the secret value generated by itself as gamma i Corresponding homomorphic encryption value R i =E i (γ i ) And broadcast to other participants.
Then, each party P i One secret share s that can be reserved by itself ii And from other participants P j The resulting secret share s ji The sum of the secret shares being obtained after the sum, e.g. by summing, e.g. by party P i Is the sum of the secret shares of (a)Specific examples are:
participant P 1 The sum omega of secret shares can be calculated 1 The method comprises the following steps: omega 1 =s 11 +s 21 +s 31 +s 41 +s 51 ;
Participant P 2 The sum omega of secret shares can be calculated 2 The method comprises the following steps: omega 2 =s 12 +s 22 +s 32 +s 42 +s 52 ;
Participant P 3 The sum omega of secret shares can be calculated 3 The method comprises the following steps: omega 3 =s 13 +s 23 +s 33 +s 43 +s 53 ;
Participant P 4 The sum omega of secret shares can be calculated 4 The method comprises the following steps: omega 4 =s 14 +s 24 +s 34 +s 44 +s 54 ;
Participant P 5 The sum omega of secret shares can be calculated 5 The method comprises the following steps: omega 5 =s 15 +s 25 +s 35 +s 45 +s 55 。
Also, each participant P i Can also generate a public verification parameter A corresponding to the self t degree polynomial ik =a ik G, where k=0, 1, …, t, and published to each party, specifically:
participant P 1 Generation A 1k =a 1k G, k=0, 1, …, t=2, including a 10 =a 10 G=s 10 G,A 11 =a 11 G,A 12 =a 12 G, broadcast { A 10 ,A 11 ,A 12 Go to P 2 、P 3 、P 4 And P 5 ;
Participant P 2 Generation A 2k =a 2k G, k=0, 1, …, t=2, including a 20 =a 20 G=s 20 G,A 21 =a 21 G,A 22 =a 22 G, broadcast { A 20 ,A 21 ,A 22 Go to P 1 、P 3 、P 4 And P 5 ;
Participant P 3 Generation A 3k =a 3k G, k=0, 1, …, t=2, including a 30 =a 30 G=s 30 G,A 31 =a 31 G,A 32 =a 32 G, broadcast { A 30 ,A 31 ,A 32 Go to P 1 、P 2 、P 4 And P 5 ;
Participant P 4 Generation A 4k =a 4k G, k=0, 1, …, t=2, including a 40 =a 40 G=s 40 G,A 41 =a 41 G,A 42 =a 42 G, broadcast { A 40 ,A 41 ,A 42 Go to P 1 、P 2 、P 3 And P 5 ;
Participant P 5 Generation A 5k =a 5k G,k=0,1,…,t=2, include A 50 =a 50 G=s 50 G,A 51 =a 51 G,A 52 =a 52 G, broadcast { A 50 ,A 51 ,A 52 Go to P 1 、P 2 、P 3 And P 4 。
Each participant P i Can also be according to P j Public authentication parameter { A } j0 ,A j1 ,…,A jt Verification P j The transmitted secret share s ji For example, by the following formula:
s ji G=A j0 +iA j1 +…+i t A jt
specific:
participant P 1 Through s 21 G=A 20 +A 21 +A 22 Verification s 21 Through s 31 G=A 30 +A 31 +A 32 Verification s 31 Through s 41 G=A 40 +A 21 +A 42 Verification s 41 Through s 51 G=A 50 +A 51 +A 52 Verification s 51 ;
Participant P 2 Through s 12 G=A 10 +2A 11 +2 2 A 12 Verification s 12 Through s 32 G=A 30 +2A 31 +2 2 A 32 Verification s 32 Through s 42 G=A 40 +2A 21 +2 2 A 42 Verification s 42 Through s 52 G=A 50 +2A 51 +2 2 A 52 Verification s 52 ;
Participant P 3 Through s 13 G=A 10 +3A 11 +3 2 A 12 Verification s 13 Through s 23 G=A 30 +3A 31 +3 2 A 32 Verification s 23 Through s 43 G=A 40 +3A 21 +3 2 A 42 Verification s 43 Through s 53 G=A 50 +3A 51 +3 2 A 52 Verification s 53 ;
Participant P 4 Through s 14 G=A 10 +4A 11 +4 2 A 12 Verification s 14 Through s 24 G=A 20 +4A 21 +4 2 A 22 Verification s 24 Through s 34 G=A 40 +4A 21 +4 2 A 42 Verification s 42 Through s 54 G=A 50 +4A 51 +4 2 A 52 Verification s 52 ;
Participant P 5 Through s 15 G=A 10 +5A 11 +5 2 A 12 Verification s 15 Through s 25 G=A 20 +5A 21 +5 2 A 22 Verification s 25 Through s 35 G=A 30 +5A 31 +5 2 A 32 Verification s 35 Through s 45 G=A 40 +5A 41 +5 2 A 42 Verification s 45 ;
Either party may terminate the protocol if the authentication is not passed.
On the other hand, each party P i The first random value can be randomly selectedThen 5 participants P 1 ,P 2 ,P 3 ,P 4 ,P 5 Respectively generating first random values as x 1 、x 2 、x 3 、x 4 、x 5 . The corresponding public keys are respectively Each participant P i The first random value corresponding public key generated by the self can be broadcasted to other participants P i,j≠i . Then P i The local area is provided with: { X 1 ,X 2 ,X 3 ,...,X n }. Specifically, for 5 participants P 1 ,P 2 ,P 3 ,P 4 ,P 5 Each local has { X } 1 ,X 2 ,X 3 ,X 4 ,X 5 }。
To this end, each party P i Can collect the first random value corresponding public key set { X } j } j∈[1,n] And a second random value homomorphic ciphertext set { R j } j∈[1,n] 。
Each participant P i May correspond to the public key set { X } based on the first random value j } j∈[1,n] The total public key X is calculated in a similar manner to that described above, for example by the following formula:
as previously described, this total public key may be used to verify the total signature after subsequent aggregation. Wherein x=x 1 +x 2 +…+x n 。
In addition, each party P i For P j The first mask number between one party can be randomly selectedAnd can calculate the first intermediate ciphertext D through homomorphic algorithm i,j And send to P j For example using Paillier encryption and computation
Thus, for party P i Can receiveThen decryption can be performed using its own homomorphic encryption private key, such as public key E encrypted using Paillier i Corresponding private key e 1 Decryption to obtain x j ·γ i -β j,i =α i,j . Further, P i A first intermediate value can be calculated +.> And broadcast a first intermediate value delta i To other parties.
In the next step, party P i Collecting the first intermediate value delta j,j∈[1,n] After that, can calculateThen +.>As a private key shard of its own.
For example, for 5 participants P 1 ,P 2 ,P 3 ,P 4 ,P 5 :
P 1 For P 2 Randomly selecting a first mask number beta between one of the participants 1,2 Encryption and computation of a first intermediate ciphertext using a PaillierAnd send D 1,2 To P 2 The method comprises the steps of carrying out a first treatment on the surface of the Similarly, P 1 For P 3 Randomly selecting a first mask number beta between one of the participants 1,3 Calculate a first intermediate ciphertextAnd send D 1,3 To P 3 The method comprises the steps of carrying out a first treatment on the surface of the Similarly, P 1 For P 4 Randomly selecting a first mask number beta between one of the participants 1,4 Calculate the first intermediate ciphertext ++> And send D 1,4 To P 4 The method comprises the steps of carrying out a first treatment on the surface of the Similarly, P 1 For P 5 Randomly selecting a first mask number beta between one of the participants 1,5 Calculate the first intermediate ciphertext ++>And send D 1,5 To P 5 。
P 2 For P 1 Randomly selecting a first mask number beta between one of the participants 2,1 Encryption and computation of a first intermediate ciphertext using a PaillierAnd send D 2,1 To P 1 The method comprises the steps of carrying out a first treatment on the surface of the Similarly, P 2 For P 3 Randomly selecting a first mask number beta between one of the participants 2,3 Calculate a first intermediate ciphertextAnd send D 2,3 To P 3 The method comprises the steps of carrying out a first treatment on the surface of the Similarly, P 2 For P 4 Randomly selecting a first mask number beta between one of the participants 2,4 Calculate the first intermediate ciphertext ++> And send D 2,4 To P 4 The method comprises the steps of carrying out a first treatment on the surface of the Similarly, P 2 For P 5 Randomly selecting a first mask number beta between one of the participants 2,5 Calculate the first intermediate ciphertext ++>And send D 2,5 To P 5 。
P 3 For P 1 Randomly selecting a first mask number beta between one of the participants 3,1 Encryption and computation of a first intermediate ciphertext using a PaillierAnd send D 3,1 To P 1 The method comprises the steps of carrying out a first treatment on the surface of the Similarly, P 3 For P 2 Randomly selecting a first mask number beta between one of the participants 3,2 Calculate a first intermediate ciphertextAnd send D 3,2 To P 2 The method comprises the steps of carrying out a first treatment on the surface of the Similarly, P 3 For P 4 Randomly selecting a first mask number beta between one of the participants 3,4 Calculate the first intermediate ciphertext ++> And send D 3,4 To P 4 The method comprises the steps of carrying out a first treatment on the surface of the Similarly, P 3 For P 5 Randomly selecting a first mask number beta between one of the participants 3,5 Calculate the first intermediate ciphertext ++>And send D 3,5 To P 5 。
P 4 For P 1 Randomly selecting a first mask number beta between one of the participants 4,1 Encryption and computation of a first intermediate ciphertext using a PaillierAnd send D 4,1 To P 1 The method comprises the steps of carrying out a first treatment on the surface of the Similarly, P 4 For P 2 Randomly selecting a first mask number beta between one of the participants 4,2 Calculate a first intermediate ciphertext And send D 4,2 To P 2 The method comprises the steps of carrying out a first treatment on the surface of the Similar toOf P of 4 For P 3 Randomly selecting a first mask number beta between one of the participants 4,3 Calculate the first intermediate ciphertext ++>And send D 4,3 To P 3 The method comprises the steps of carrying out a first treatment on the surface of the Similarly, P 4 For P 5 Randomly selecting a first mask number beta between one of the participants 4,5 Calculate the first intermediate ciphertext ++>And send D 4,5 To P 5 。
P 5 For P 1 Randomly selecting a first mask number beta between one of the participants 5,1 Encryption and computation of a first intermediate ciphertext using a PaillierAnd send D 5,1 To P 1 The method comprises the steps of carrying out a first treatment on the surface of the Similarly, P 5 For P 2 Randomly selecting a first mask number beta between one of the participants 5,2 Calculate a first intermediate ciphertextAnd send D 5,2 To P 2 The method comprises the steps of carrying out a first treatment on the surface of the Similarly, P 5 For P 3 Randomly selecting a first mask number beta between one of the participants 5,3 Calculate the first intermediate ciphertext ++> And send D 5,3 To P 3 The method comprises the steps of carrying out a first treatment on the surface of the Similarly, P 5 For P 4 Randomly selecting a first mask number beta between one of the participants 5,4 Calculate the first intermediate ciphertext ++>And send D 5,4 To P 4 。
Thus P 1 Can receive D 2,1 、D 3,1 、D 4,1 、D 5,1 Thus, P 1 Can decrypt to obtain x 2 ·γ 1 -β 2,1 =α 1,2 ,x 3 ·γ 1 -β 3,1 =α 1,3 ,x 4 ·γ 1 -β 4,1 =α 1,4 ,x 5 ·γ 1 -β 5,1 =α 1,5 . And then P 1 Intermediate values can be calculated And broadcast delta 1 。
Similarly, P 2 Can receive D 1,2 、D 3,2 、D 4,2 、D 5,2 Thus, P 2 Can decrypt to obtain x 1 ·γ 2 -β 1,2 =α 2,1 ,x 3 ·γ 2 -β 3,2 =α 2,3 ,x 4 ·γ 2 -β 4,2 =α 2,4 ,x 5 ·γ 2 -β 5,2 =α 2,5 . And then P 2 Intermediate values can be calculated And broadcast delta 2 。/>
Similarly, P 3 Can receive D 1,3 、D 2,3 、D 4,3 、D 5,3 Thus, P 3 Can decrypt to obtain x 1 ·γ 3 -β 1,3 =α 3,1 ,x 2 ·γ 3 -β 2,3 =α 3,2 ,x 4 ·γ 3 -β 4,3 =α 3,4 ,x 5 ·γ 3 -β 5,3 =α 3,5 . Feeding inAnd P is 3 Intermediate values can be calculated And broadcast delta 3 。
Similarly, P 4 Can receive D 1,4 、D 2,4 、D 3,4 、D 5,4 Thus, P 4 Can decrypt to obtain x 1 ·γ 4 -β 1,4 =α 4,1 ,x 2 ·γ 4 -β 2,4 =α 4,2 ,x 3 ·γ 4 -β 3,4 =α 4,3 ,x 5 ·γ 4 -β 5,4 =α 4,5 . And then P 4 Intermediate values can be calculated And broadcast delta 4 。
Similarly, P 5 Can receive D 1,5 、D 2,5 、D 3,5 、D 4,5 Thus, P 5 Can decrypt to obtain x 1 ·γ 5 -β 1,5 =α 5,1 ,x 2 ·γ 5 -β 2,5 =α 5,2 ,x 3 ·γ 5 -β 3,5 =α 5,3 ,x 4 ·γ 5 -β 4,5 =α 5,4 . And then P 5 Intermediate values can be calculated And broadcast delta 5 。
In the next step, party P 1 Collect Ji j,j∈[1,5] After that, can calculate
Similarly, P 2 Collect Ji j,j∈[1,5] Then, can also be calculated to obtain
Similarly, P 3 Collect Ji j,j∈[1,5] Then, can also be calculated to obtain
Similarly, P 4 Collect Ji j,j∈[1,5] Then, can also be calculated to obtain
Similarly, P 5 Collect Ji j,j∈[1,5] Then, can also be calculated to obtain
Further, party P 1 Can be used forAs its own share of the private key (i.e., private key shard);
likewise, party P 2 Can be used forAs its own private key share;
Likewise, party P 3 Can be used forAs its own private key share;
likewise, the participantsP 4 Can be used forAs its own private key share; />
Likewise, party P 5 Can be used forAs its own private key share;
thus, each participant P i Finally, the first random value x generated by each participant is obtained i Sum and second random value gamma i The sum, but because the process of exchanging information between the participants combines homomorphic encryption and the design of intermediate ciphertext and intermediate value, any participant P is not exposed i Respective first random values x i And a second random value gamma i . And in turn, each party P in combination with the sum of the secret shares obtained by the distributed key generation protocol i The private key share x 'of the self can be obtained' i 。
The distributed signing process is described below and may include both an offline phase and an online phase. The distributed key generation process described above requires n participants to participate in the protocol process together. The distributed threshold signature process described below requires only at least t+1 participants to participate in the protocol process together. In particular, the threshold t=2 is still taken as an example here.
Offline stage: updating self private key share x' i Generates a third random value k of the self i Corresponding third random value homomorphic ciphertext K i And a third random value public key G i Broadcast K i And G i The method comprises the steps of carrying out a first treatment on the surface of the A second mask number is generated and a second intermediate plaintext is exchanged by homomorphic encryption.
Specifically, the method comprises the following steps:
S21:
first, t+1 participants, each participant P i Calculation of Lagrange coefficientsAnd adopts the Lagrange coefficient updates its own private key share: x is x i ″←l i (0)·x′ i . Here, for example, i is 1, 2, 3, then:
participant P 1 Calculation of Lagrange coefficientsAnd updates its own private key share x 1 ←l 1 (0)·x′ 1 ;
Participant P 2 Calculation of Lagrange coefficients And updates its own private key share x 2 ←l 2 (0)·x′ 2 ;
Participant P 3 Calculation of Lagrange coefficientsAnd updates its own private key share x 3 ←l 3 (0)·x′ 3 。
Second, each of the t+1 participants generates a third random value k i Corresponding third random value homomorphic ciphertext K i And a third random value public key G i And broadcast the third random value homomorphic ciphertext K i And a third random value public key G i . In particular, for example, party P i ,i∈[1,t+1]Generating a third random value k i And (2) andparticipant P i A third random value homomorphic ciphertext, e.g., paillier ciphertext K, may be calculated i =E i (k i ) And calculating a third random value public key G i For example->Specifically, t+1 is 3, and the participation party is P 1 、P 2 、P 3 When (1):
P 1 generating a third random value k 1 And calculates the Paillier ciphertext K of the third random value 1 =E 1 (k 1 ) And calculating a third random value public keyBroadcast K 1 And G 1 ;
P 2 Generating a third random value k 2 And calculates the Paillier ciphertext K of the third random value 2 =E 2 (k 2 ) And calculating a third second random value public keyBroadcast K 2 And G 2 ;
P 3 Generating a third random value k 3 And calculates the Paillier ciphertext K of the third random value 3 =E 3 (k 3 ) And calculating a third second random value public keyBroadcast K 3 And G 3 。
In addition, each party P i A second mask number is also generated and a second intermediate plaintext is exchanged by homomorphic encryption. Specifically, the method comprises the following steps: p (P) i For party P j Generating a second mask numberAnd based on the updated private key share x i "received third random value homomorphic ciphertext K j And the second mask number->Calculates a second intermediate ciphertext ++>With other participants P j Exchange second intermediate ciphertext->Decrypting the second intermediate ciphertext->Obtaining a second intermediate plaintext->Specifically, S22 and S23 below may be mentioned.
S22:
Participant P receiving broadcast i For P j K sent out j Selecting a second mask number Here, the value range of the finite field subscript is represented as the 5 th power of q, which is a proven value range with cryptographic security. Second mask count->Can be generally +.>Larger values are selected within the range. Further, P i The second intermediate ciphertext may be calculated by homomorphic algorithm>And send to P j :
Specific:
P 1 receiving P 2 Broadcast K 2 =E 2 (k 2 ) Then, selecting a second mask numberFurther, P 1 The second intermediate ciphertext may be calculated by homomorphic algorithm>And send to P 2 Wherein:
thus P 2 Received byAlthough P 2 With a corresponding Paillier private key e 2 ,k 2 Also P 2 Generated but due to P therein 1 Second mask number selected->Masking effect of P 2 Cannot estimate P 1 Private key share x' 1 Thereby completing the information transfer on the basis. Similar to the above, the description is omitted.
Similarly, P 1 Receiving P 3 Broadcast K 3 =E 3 (k 3 ) Then, selecting a second mask numberFurther, P 1 The second intermediate ciphertext may be calculated by homomorphic algorithm>And send to P 3 Wherein:
similarly, P 2 Receiving P 1 Broadcast K 1 =E 1 (k 1 ) Then, selectTaking a second mask numberFurther, P 2 The second intermediate ciphertext may be calculated by homomorphic algorithm>And send to P 1 Wherein:
similarly, P 2 Receiving P 3 Broadcast K 3 =E 3 (k 3 ) Then, selecting a second mask numberFurther, P 2 The second intermediate ciphertext may be calculated by homomorphic algorithm>And send to P 3 Wherein:
similarly, P 3 Receiving P 1 Broadcast K 1 =E 1 (k 1 ) Then, selecting a second mask numberFurther, P 3 The second intermediate ciphertext may be calculated by a homomorphic encryption algorithm>And send to P 1 Wherein:
similarly, P 3 Receiving P 2 Broadcast K 2 =E 2 (k 2 ) Then, selecting a second mask numberFurther, P 3 The second intermediate ciphertext may be calculated by a homomorphic encryption algorithm>And send to P 2 Wherein: />
S23:
Further, each party P i Received second intermediate ciphertextDecrypting by adopting a corresponding homomorphic encryption private key to obtain plaintext ++>Referred to herein as a second intermediate plaintext, wherein:
To this end, P i Having locally k i Updated self private key share x i And for P j A kind of electronic device
On-line stage: each P of the at least t+1 participants i Using the collected third random value public key G i Calculating the total coordinate K of the third random value public key, and adoptingCalculating r in the signature share for message m using the total coordinate K, and based on r and its own third random value K i Updated private key share x i For party P j Is the second intermediate plaintext of (2)And a second mask number->Calculating the component s of the signature share for message m i Thereby obtaining signature share sigma i (r,s i )。
S31:
At least t+1 participants each P i Can collect the third random value public key G j,j∈[1,t+1] So that the total coordinates can be calculated based on at least t+1 third random value public keysWherein x is 1 、y 1 The abscissa and the ordinate of the K point on the elliptic curve, respectively.
On the other hand, P i The message m to be signed can be calculated by means of a hash to obtain the digest value H (m), and r=h (m) +x in the signature share can be calculated on the basis of the total coordinate K point 1 mod q. This is similar to the formula (a) described above.
Due to any P i The messages m for are identical, i.e. H (m) are also identical. Also, t+1 k j The sum is also the same and the total coordinate K is also the same. Thus, any P i The r in the calculated signature shares is also the same.
S32:
P i Can be based on r and a third random value k of itself i Updated self private key share x i For party P j Is the second intermediate plaintext of (2)And a second mask number->Calculating the component s of the signature share for message m i Thereby obtaining signature share sigma i (r,s i )。
Specifically, s is calculated as follows i :
Wherein,simplified, the->x″ i Is the updated private key share, i.e. equal to l i (0)·x′ i 。
Thus, after any party obtains at least t+1 signature shares, the at least t+1 signature shares may be aggregated into a total signatureCan prove->Namely (1+x) -1 (k-r.x). It can be seen that here s in the total signature σ is in the same form as s in the formula (b) in the basic SM2 signature algorithm described above. Thus, the correctness of the total signature σ can be verified using the aforementioned total public key X.
In addition, the total private key is the sum of the updated private key shares:
Continuing the example above, either party (either one of n=5 parties or one other than n=5 parties) obtains a signature share of t+1=3:
for example, based onP 1 And (3) calculating:
similarly, based onP 2 And (3) calculating:
s 2 =k 2 ·(l 2 (0)·x′ 2 +l 1 (0)·x′ 1 +l 3 (0)·x′ 3 )+l 2 (0)·rx′ 2
similarly, based onP 3 And (3) calculating:
s 3 =k 3 ·(l 3 (0)·x′ 3 +l 1 (0)·x′ 1 +l 2 (0)·x′ 2 )+l 3 (0)·rx′ 3
so that:
in the above example, the case where t+1 is the right number is mainly described. In fact, it may be the case that there are more than t+1 participants, i.e. the number of participants in the distributed signature protocol phase is more than t+1, through the above procedure, the same aggregate signature as that equal to t+1 can still be obtained, and thus still be verified by the total public key.
Similar to the ECC-based cryptography scheme, the same k cannot be encrypted twice, otherwise it would be cracked by others to get k. Therefore, a new k is preferably used during each signature. It may be that at least t+1 participants execute the offline phase again to generate at leastt+1 k i Thereby obtaining a new k.
The above procedure may be that the distributed key generation phase is performed cooperatively by n participants once, and then the off-line phase + on-line phase is performed by at least t +1 participants each time the signature is made. It is also possible that after n participants cooperatively perform a distributed key generation phase, at least t+1 participants perform multiple offline phases, thereby generating multiple different k values, and thus different R values and corresponding R values, for signature of each subsequent online phase.
The method uses the homomorphic algorithm scheme like Pailier to replace the multiparty MPC multiplication protocol used in SM2 elliptic curve threshold cryptographic algorithm, thereby overcoming the limitation condition that n is more than or equal to 2t+1 and achieving the distributed threshold signature algorithm of any threshold.
Secondly, in the whole distributed threshold key generation process, no participant can know the total private key, and only know the own threshold private key fragment x i Only t+1 participants in n persons cooperate to sign. In the distributed threshold signature process, the distributed signature can be realized only by at least t+1 of n users without all participation of the n users, thereby greatly improving the fault tolerance of the system.
Furthermore, the embodiment of the application supports an offline-online mode, wherein only one round of interaction is needed between online stage participants, thereby greatly simplifying the complexity of signature.
An embodiment of a computer device of the present application is described below, comprising:
a processor;
and a memory in which a program is stored, wherein when the processor executes the program, the following operations are performed:
generating a first random value and a second random value, and exchanging with other participants after homomorphic encryption; each party generates a private key share based on the collected first and second random values and a sum of the secret shares generated by the distributed key generation protocol;
Updating the share of the private key, generating a third random value of the private key and a public key corresponding to the third random value, and broadcasting;
after collecting the third random value public key, calculating the total coordinates of the third random value public key, calculating r in the signature share of the message based on the total coordinates, and calculating the component s of the signature share of the message based on r, the third random value of the message, the updated private key share of the message i Thereby obtaining a signature share.
The following describes an embodiment of a storage medium of the present application for storing a program, wherein the program when executed performs the following operations:
generating a first random value and a second random value, and exchanging with other participants after homomorphic encryption; each party generates a private key share based on the collected first and second random values and a sum of the secret shares generated by the distributed key generation protocol;
updating the share of the private key, generating a third random value of the private key and a public key corresponding to the third random value, and broadcasting;
after collecting the third random value public key, calculating the total coordinates of the third random value public key, calculating r in the signature share of the message based on the total coordinates, and calculating the component s of the signature share of the message based on r, the third random value of the message, the updated private key share of the message i Thereby obtaining a signature share.
In the 90 s of the 20 th century, improvements to one technology could clearly be distinguished as improvements in hardware (e.g., improvements to circuit structures such as diodes, transistors, switches, etc.) or software (improvements to the process flow). However, with the development of technology, many improvements of the current method flows can be regarded as direct improvements of hardware circuit structures. Designers almost always obtain corresponding hardware circuit structures by programming improved method flows into hardware circuits. Therefore, an improvement of a method flow cannot be said to be realized by a hardware entity module. For example, a programmable logic device (Programmable Logic Device, PLD) (e.g., field programmable gate array (Field Programmable Gate Array, FPGA)) is an integrated circuit whose logic function is determined by the programming of the device by a user. A designer programs to "integrate" a digital system onto a PLD without requiring the chip manufacturer to design and fabricate application-specific integrated circuit chips. Moreover, nowadays, instead of manually manufacturing integrated circuit chips, such programming is mostly implemented by using "logic compiler" software, which is similar to the software compiler used in program development and writing, and the original code before the compiling is also written in a specific programming language, which is called hardware description language (Hardware Description Language, HDL), but not just one of the hdds, but a plurality of kinds, such as ABEL (Advanced Boolean Expression Language), AHDL (Altera Hardware Description Language), confluence, CUPL (Cornell University Programming Language), HDCal, JHDL (Java Hardware Description Language), lava, lola, myHDL, PALASM, RHDL (Ruby Hardware Description Language), etc., VHDL (Very-High-Speed Integrated Circuit Hardware Description Language) and Verilog are currently most commonly used. It will also be apparent to those skilled in the art that a hardware circuit implementing the logic method flow can be readily obtained by merely slightly programming the method flow into an integrated circuit using several of the hardware description languages described above.
The controller may be implemented in any suitable manner, for example, the controller may take the form of, for example, a microprocessor or processor and a computer readable medium storing computer readable program code (e.g., software or firmware) executable by the (micro) processor, logic gates, switches, application specific integrated circuits (Application Specific Integrated Circuit, ASIC), programmable logic controllers, and embedded microcontrollers, examples of which include, but are not limited to, the following microcontrollers: ARC 625D, atmel AT91SAM, microchip PIC18F26K20, and Silicone Labs C8051F320, the memory controller may also be implemented as part of the control logic of the memory. Those skilled in the art will also appreciate that, in addition to implementing the controller in a pure computer readable program code, it is well possible to implement the same functionality by logically programming the method steps such that the controller is in the form of logic gates, switches, application specific integrated circuits, programmable logic controllers, embedded microcontrollers, etc. Such a controller may thus be regarded as a kind of hardware component, and means for performing various functions included therein may also be regarded as structures within the hardware component. Or even means for achieving the various functions may be regarded as either software modules implementing the methods or structures within hardware components.
The system, apparatus, module or unit set forth in the above embodiments may be implemented in particular by a computer chip or entity, or by a product having a certain function. One typical implementation device is a server system. Of course, the application does not exclude that as future computer technology advances, the computer implementing the functions of the above-described embodiments may be, for example, a personal computer, a laptop computer, a car-mounted human-computer interaction device, a cellular telephone, a camera phone, a smart phone, a personal digital assistant, a media player, a navigation device, an email device, a game console, a tablet computer, a wearable device, or a combination of any of these devices.
Although one or more embodiments of the present description provide method operational steps as described in the embodiments or flowcharts, more or fewer operational steps may be included based on conventional or non-inventive means. The order of steps recited in the embodiments is merely one way of performing the order of steps and does not represent a unique order of execution. When implemented in an actual device or end product, the instructions may be executed sequentially or in parallel (e.g., in a parallel processor or multi-threaded processing environment, or even in a distributed data processing environment) as illustrated by the embodiments or by the figures. The terms "comprises," "comprising," or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. Without further limitation, it is not excluded that additional identical or equivalent elements may be present in a process, method, article, or apparatus that comprises a described element. For example, if first, second, etc. words are used to indicate a name, but not any particular order.
For convenience of description, the above devices are described as being functionally divided into various modules, respectively. Of course, when one or more of the present description is implemented, the functions of each module may be implemented in the same piece or pieces of software and/or hardware, or a module that implements the same function may be implemented by a plurality of sub-modules or a combination of sub-units, or the like. The above-described apparatus embodiments are merely illustrative, for example, the division of the units is merely a logical function division, and there may be additional divisions when actually implemented, for example, multiple units or components may be combined or integrated into another system, or some features may be omitted or not performed. Alternatively, the coupling or direct coupling or communication connection shown or discussed with each other may be an indirect coupling or communication connection via some interfaces, devices or units, which may be in electrical, mechanical or other form.
The present invention is described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each flow and/or block of the flowchart illustrations and/or block diagrams, and combinations of flows and/or blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
In one typical configuration, a computing device includes one or more processors (CPUs), input/output interfaces, network interfaces, and memory.
The memory may include volatile memory in a computer-readable medium, random Access Memory (RAM) and/or nonvolatile memory, such as Read Only Memory (ROM) or flash memory (flash RAM). Memory is an example of computer-readable media.
Computer readable media, including both non-transitory and non-transitory, removable and non-removable media, may implement information storage by any method or technology. The information may be computer readable instructions, data structures, modules of a program, or other data. Examples of storage media for a computer include, but are not limited to, phase change memory (PRAM), static Random Access Memory (SRAM), dynamic Random Access Memory (DRAM), other types of Random Access Memory (RAM), read Only Memory (ROM), electrically Erasable Programmable Read Only Memory (EEPROM), flash memory or other memory technology, read only compact disc read only memory (CD-ROM), digital Versatile Discs (DVD) or other optical storage, magnetic cassettes, magnetic tape magnetic disk storage, graphene storage or other magnetic storage devices, or any other non-transmission medium, which can be used to store information that can be accessed by a computing device. Computer-readable media, as defined herein, does not include transitory computer-readable media (transmission media), such as modulated data signals and carrier waves.
One skilled in the relevant art will recognize that one or more embodiments of the present description may be provided as a method, system, or computer program product. Accordingly, one or more embodiments of the present description may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. Moreover, one or more embodiments of the present description can take the form of a computer program product on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, etc.) having computer-usable program code embodied therein.
One or more embodiments of the present specification may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. One or more embodiments of the present specification may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media including memory storage devices.
In this specification, each embodiment is described in a progressive manner, and identical and similar parts of each embodiment are all referred to each other, and each embodiment mainly describes differences from other embodiments. In particular, for system embodiments, since they are substantially similar to method embodiments, the description is relatively simple, as relevant to see a section of the description of method embodiments. In the description of the present specification, a description referring to terms "one embodiment," "some embodiments," "examples," "specific examples," or "some examples," etc., means that a particular feature, structure, material, or characteristic described in connection with the embodiment or example is included in at least one embodiment or example of the present specification. In this specification, schematic representations of the above terms are not necessarily directed to the same embodiment or example. Furthermore, the particular features, structures, materials, or characteristics described may be combined in any suitable manner in any one or more embodiments or examples. Furthermore, the different embodiments or examples described in this specification and the features of the different embodiments or examples may be combined and combined by those skilled in the art without contradiction.
The foregoing is merely an example of one or more embodiments of the present specification and is not intended to limit the one or more embodiments of the present specification. Various modifications and alterations to one or more embodiments of this description will be apparent to those skilled in the art. Any modification, equivalent replacement, improvement, or the like, which is within the spirit and principles of the present specification, should be included in the scope of the claims.
Claims (12)
1. A method of implementing a distributed threshold signature, comprising:
a distributed key generation stage: each of the n participants generates a first random value and a second random value respectively, and exchanges with other participants after homomorphic encryption; each party generates a private key share based on the collected first and second random values and a sum of the secret shares generated by the distributed key generation protocol;
an offline phase of distributed signing, each of at least t+1 participants performs: updating the share of the private key, generating a third random value of the private key and a public key corresponding to the third random value, and broadcasting;
an online phase of distributed signing, each of the at least t+1 participants performing: after collecting the third random value public key, calculating the total coordinates of the third random value public key, calculating r in the signature share of the message based on the total coordinates, and calculating the component s of the signature share of the message based on r, the third random value of the message, the updated private key share of the message i Thereby obtaining a signature share.
2. The method of claim 1, wherein after any party obtains at least t+1 signature shares, the at least t+1 signature shares are aggregated into a total signature.
3. The method of claim 2, the n participants further generating a total public key via a distributed key generation protocol; after any party obtains the total signature and the total public key, the correctness of the total signature is verified by adopting the total public key.
4. The method of claim 1, the distributed key generation phase, each of the n participants performing:
s11: generating a first random value and a second random value, calculating a second random value homomorphic ciphertext and broadcasting; and generating a sum of the respective secret shares by a distributed key generation protocol using the second random value as a secret;
s12: receiving a second random value homomorphic ciphertext, generating a first mask number among the participants aiming at other participants, calculating a first intermediate ciphertext based on the first mask number among the participants, the first random value generated by the first intermediate ciphertext and the second random value homomorphic ciphertext obtained by exchange, and transmitting the first intermediate ciphertext to the corresponding received participants;
s13: receiving a first intermediate ciphertext sent by other participants, decrypting to obtain a first intermediate plaintext, calculating an intermediate value based on a first random value and a second random value of the intermediate plaintext and a first mask number between the first intermediate plaintext and the participants, which are obtained by decryption, and broadcasting the intermediate value; the private key shares are calculated based on the sum of the private key shares obtained by itself and the sum of the collected intermediate values.
5. The method of claim 4, the distributed key generation phase further comprising:
generating a public key share of the first random value and broadcasting;
and collecting the public key shares of n participants, and calculating to obtain a total public key.
6. The method according to claim 1, wherein each of at least t+1 participants in the offline phase updates its own private key share, comprising in particular:
the Lagrangian coefficients are used to update the private key shares of themselves.
7. The method of claim 1, wherein each of the at least t+1 participants in the offline phase further generates and broadcasts a third random value homomorphic ciphertext of itself, further generates a second mask number, and exchanges a second intermediate plaintext through homomorphic encryption.
8. The method according to claim 7, wherein each of the at least t+1 participants in the offline phase further generates and broadcasts a third random value homomorphic ciphertext of itself, further generates a second mask number, and exchanges a second intermediate plaintext by homomorphic encryption, specifically comprising:
generating a second mask number for other participants, calculating a second intermediate ciphertext based on the updated private key share, the received third random value homomorphic ciphertext and the homomorphic ciphertext of the second mask number, and exchanging the second intermediate ciphertext with the other participants; and decrypting the second intermediate ciphertext to obtain a second intermediate plaintext.
9. The method of claim 8, wherein the generating a second mask number for the participant and calculating a second intermediate ciphertext based on the updated private key share, the received third random value homomorphic ciphertext, and the homomorphic ciphertext of the second mask number, exchanging the second intermediate ciphertext with the other participant; decrypting the second intermediate ciphertext to obtain a second intermediate plaintext, comprising:
s22: the participants receiving the broadcast generate second mask numbers for other participants, calculate second intermediate ciphertexts based on the updated private key share, the received homomorphic ciphertexts of the third random value and the homomorphic ciphertexts of the second mask numbers, and send the second intermediate ciphertexts to the corresponding participants;
s23: and homomorphic decryption is carried out on the received second intermediate ciphertext to obtain a second intermediate plaintext.
10. The method of claim 8, each of the at least t+1 participants in the online phase performing:
s31: calculating the total coordinate K of the third random value public key by adopting the collected third random value public key, and calculating r in the signature share of the message m by adopting the total coordinate;
s32: based on r and selfThree random values, updated private key share of the self, second intermediate plaintext for other parties and second mask number for other parties, component s of signature share calculated for message m i Thereby obtaining a signature share.
11. A computer device, comprising:
a processor;
and a memory in which a program is stored, wherein when the processor executes the program, the following operations are performed:
generating a first random value and a second random value, and exchanging with other participants after homomorphic encryption; each party generates a private key share based on the collected first and second random values and a sum of the secret shares generated by the distributed key generation protocol;
updating the share of the private key, generating a third random value of the private key and a public key corresponding to the third random value, and broadcasting;
after collecting the third random value public key, calculating the total coordinates of the third random value public key, calculating r in the signature share of the message based on the total coordinates, and calculating the component s of the signature share of the message based on r, the third random value of the message, the updated private key share of the message i Thereby obtaining a signature share.
12. A storage medium storing a program, wherein the program when executed performs the operations of:
generating a first random value and a second random value, and exchanging with other participants after homomorphic encryption; each party generates a private key share based on the collected first and second random values and a sum of the secret shares generated by the distributed key generation protocol;
Updating the share of the private key, generating a third random value of the private key and a public key corresponding to the third random value, and broadcasting;
after collecting the third random value public key, calculating the total coordinates of the third random value public key, calculating r in the signature share of the message based on the total coordinates, and further based on r, the third random value of the self and the updated self private valueComponent s of key share to message computation signature share i Thereby obtaining a signature share.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311119660.7A CN117240467A (en) | 2023-08-31 | 2023-08-31 | Method, system and node for realizing threshold signature |
PCT/CN2023/134975 WO2025043916A1 (en) | 2023-08-31 | 2023-11-29 | Threshold signature implementation method, and system and node |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311119660.7A CN117240467A (en) | 2023-08-31 | 2023-08-31 | Method, system and node for realizing threshold signature |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117240467A true CN117240467A (en) | 2023-12-15 |
Family
ID=89090324
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311119660.7A Pending CN117240467A (en) | 2023-08-31 | 2023-08-31 | Method, system and node for realizing threshold signature |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117240467A (en) |
WO (1) | WO2025043916A1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117439737B (en) * | 2023-12-18 | 2024-02-27 | 北京信安世纪科技股份有限公司 | Collaborative signature method and collaborative signature system |
CN119172077A (en) * | 2024-11-25 | 2024-12-20 | 浪潮软件科技有限公司 | Data distributed storage method and system based on secret sharing technology |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7301039B2 (en) * | 2017-08-15 | 2023-06-30 | エヌチェーン ライセンシング アーゲー | Threshold digital signature method and system |
CN113507374B (en) * | 2021-07-02 | 2021-11-30 | 恒生电子股份有限公司 | Threshold signature method, device, equipment and storage medium |
CN114157427B (en) * | 2021-12-02 | 2023-06-20 | 南京邮电大学 | Threshold signature method based on SM2 digital signature |
CN115378617B (en) * | 2022-10-21 | 2023-01-10 | 三未信安科技股份有限公司 | Block chain threshold signature method and system thereof |
-
2023
- 2023-08-31 CN CN202311119660.7A patent/CN117240467A/en active Pending
- 2023-11-29 WO PCT/CN2023/134975 patent/WO2025043916A1/en unknown
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117439737B (en) * | 2023-12-18 | 2024-02-27 | 北京信安世纪科技股份有限公司 | Collaborative signature method and collaborative signature system |
CN119172077A (en) * | 2024-11-25 | 2024-12-20 | 浪潮软件科技有限公司 | Data distributed storage method and system based on secret sharing technology |
Also Published As
Publication number | Publication date |
---|---|
WO2025043916A1 (en) | 2025-03-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104270249B (en) | It is a kind of from the label decryption method without certificate environment to identity-based environment | |
Liu et al. | An efficient privacy-preserving outsourced calculation toolkit with multiple keys | |
Schindler et al. | Ethdkg: Distributed key generation with ethereum smart contracts | |
CN109246098B (en) | A Method for Supporting Synchronous Ciphertext Comparison of Backup Servers | |
CN104301108B (en) | It is a kind of from identity-based environment to the label decryption method without certificate environment | |
CN110120939B (en) | Encryption method and system capable of repudiation authentication based on heterogeneous system | |
Hassan et al. | An efficient outsourced privacy preserving machine learning scheme with public verifiability | |
CN117240467A (en) | Method, system and node for realizing threshold signature | |
CN107733648A (en) | The RSA digital signature generation method and system of a kind of identity-based | |
Farash et al. | A Pairing-free ID-based Key Agreement Protocol with Different PKGs. | |
CN116915414A (en) | Method for realizing threshold signature, computer equipment and storage medium | |
CN110011995A (en) | Encryption and decryption approaches and device in multi-casting communication | |
CN106936584B (en) | Method for constructing certificateless public key cryptosystem | |
Yao et al. | A novel revocable and identity-based conditional proxy re-encryption scheme with ciphertext evolution for secure cloud data sharing | |
CN117118633A (en) | Method for realizing distributed digital certificate, computer equipment and storage medium | |
Wei et al. | Remove key escrow from the BF and Gentry identity-based encryption with non-interactive key generation | |
CN116391346A (en) | Redistribution of secret sharing | |
CN108964906B (en) | Digital signature method for cooperation with ECC | |
CN110011782A (en) | A kind of full homomorphic encryption algorithm of many-one | |
Saxena et al. | Efficient node admission and certificateless secure communication in short-lived MANETs | |
Braeken et al. | Pairing free and implicit certificate based signcryption scheme with proxy re-encryption for secure cloud data storage | |
Peng et al. | Efficient distributed decryption scheme for IoT gateway-based applications | |
CN117040764A (en) | Secret key share updating method, computer equipment and storage medium | |
WO2015081505A1 (en) | Method for establishing public key cryptogram against quantum computing attack | |
CN110247761A (en) | The ciphertext policy ABE encryption method of attribute revocation is supported on a kind of lattice |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |