WO2023093278A1 - Digital signature thresholding method and apparatus - Google Patents

Digital signature thresholding method and apparatus Download PDF

Info

Publication number
WO2023093278A1
WO2023093278A1 PCT/CN2022/121597 CN2022121597W WO2023093278A1 WO 2023093278 A1 WO2023093278 A1 WO 2023093278A1 CN 2022121597 W CN2022121597 W CN 2022121597W WO 2023093278 A1 WO2023093278 A1 WO 2023093278A1
Authority
WO
WIPO (PCT)
Prior art keywords
computer device
vector
matrix
message
challenge
Prior art date
Application number
PCT/CN2022/121597
Other languages
French (fr)
Chinese (zh)
Inventor
李哲
邢朝平
杨艳江
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Publication of WO2023093278A1 publication Critical patent/WO2023093278A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/45Structures or tools for the administration of authentication
    • G06F21/46Structures or tools for the administration of authentication by designing passwords or checking the strength of passwords
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures

Definitions

  • This application relates to the field of cryptography, in particular to a digital signature threshold method and device.
  • the working principle of the threshold cipher is to split the key into n parts through the secret sharing scheme (t-out-of-n secret sharing) and distribute it to n parties for independent storage.
  • the function of the key is performed under the circumstances, such as decryption or signing.
  • the privacy of the key is of information theory significance for any party smaller than t, that is, no valid information about the key can be obtained at all.
  • quantum computers traditional digital signature algorithms are at risk of being cracked.
  • the post-quantum digital signature algorithm is a new generation of cryptographic algorithms that can resist the attack of quantum computers on existing cryptographic algorithms.
  • the embodiments of the present application provide a digital signature threshold method and device, which can improve the security of key management and can resist side channel attacks to a certain extent.
  • a digital signature threshold method includes: a first computer device acquires a first matrix, the first matrix is a matrix with k rows and l columns, and k and l are positive integers greater than or equal to 1; The first computer device determines a first vector and a second vector; the first computer device determines a first key parameter share according to the first matrix, the first vector and the second vector; the The first computer device receives a key parameter shares from a computer device, a is a positive integer greater than or equal to p-1, and p is the minimum number of computer devices for the secret sharing scheme; the first computer device according to the The first key parameter share and the a key parameter shares determine the high-order bits and low-order bits of the key parameter; the first computer device determines the first key parameter according to the matrix seed and the high-order bits of the key parameter A random number: the first computer device determines the signature information of the first message according to the first vector, the second vector, the lower bits of the key parameter, the first random number
  • the first matrix can be represented by matrix A.
  • matrix A is a matrix of k ⁇ l
  • each element in matrix A is a polynomial
  • each polynomial can be randomly generated by the public seed ⁇
  • the coefficient of each polynomial is an integer smaller than q
  • q is a prime number .
  • the specific way of generating the matrix A is not limited in this application.
  • the matrix A is public to the m computer devices in the system, that is, each computer device can obtain the matrix A.
  • the computer device that generates matrix A can distribute the obtained matrix A to m computer devices in the system.
  • the m computer devices can also directly use the preset matrix A.
  • [x] means that according to the agreed secret sharing scheme, x has been split into secret shares (shares) and each share has been delivered to the corresponding user , [x] can also be represented by xi , which represents the i-th copy of x obtained by the i-th user.
  • the first vector may be s i1
  • the second vector may be s i2
  • the first vector can also be expressed as [s 1 ]
  • the second vector can also be expressed as [s 2 ].
  • the first vector and the second vector may be referred to as random key vector shares, because the first vector and the second vector participate in key generation in a random manner.
  • the first computer device generates random key vector shares s i1 and s i2 , optionally, the random key vector shares s i1 and s i2 can be formulated by the formula ([s 1 ],[s 2 ]) ⁇ Thr-RandNum( ⁇ ) n ⁇ l+n ⁇ k is determined.
  • the Thr-RandNum( ⁇ ) algorithm is used to generate a random number whose absolute value ⁇ ⁇ .
  • s i1 has l polynomials
  • s i2 has k polynomials
  • each polynomial contains n items
  • the absolute value of the coefficient of each item is less than or equal to ⁇ .
  • is a preset parameter
  • n is a positive integer.
  • the first key parameter share can be represented by [t].
  • the key parameter t can be obtained according to [t] of more than or equal to p users. Therefore, the first computer device can obtain a key parameter t after receiving a key parameter shares from a computer device, where a is a positive integer greater than or equal to p-1.
  • the first computer device may determine the key parameter t according to the first key parameter share and the a key parameter shares, and then according to the formula (t 1 ,t 0 ) ⁇ Power2Round q (t,d ) to get the high-order bits and low-order bits of the key parameter t.
  • the first random number may be represented by tr.
  • tr can be determined according to the formula tr ⁇ 0,1 ⁇ 384 ⁇ CRH( ⁇
  • collision-resistant hashing collision-resistant hashing
  • the private key share of the first computer device includes the first vector [s 1 ] and the second vector [s 2 ], optionally, the private key share of the first computer device may also include matrix A or public seed ⁇ , The first random number tr, the key parameter t or the lower bit t 0 of the key parameter t.
  • the function of the key is divided into multiple computer devices, which can realize the security management of the key and resist side channel attacks to a certain extent.
  • the signature information of the first message includes: a challenge, a response, and a prompt, and the first computer device according to the first vector, the second Two vectors, the lower bits of the key parameter, the first random number and the matrix seed, determine the signature information of the first message, including: the first computer device according to the first random number and the The first message determines the challenge parameter; the first computer device determines the challenge according to the first preset parameter, the first matrix and the challenge parameter; the first computer device determines the challenge according to the first preset parameter, the challenge and the first vector, determine the response; the first computer device determines the response according to the challenge, the lower bits of the key parameter, the first matrix, and the first preset parameter and the second vector, determine the hint.
  • the first 384 bits of the value if the number of bits of the connection value is less than 384, randomly generate the specified bits ( ⁇ 1 or 0) to fill in, and assign the final value to ⁇ .
  • the function of the key is divided into multiple computer devices, which can realize the security management of the key and resist side channel attacks to a certain extent.
  • the first computer device determines the challenge according to first preset parameters, the first matrix, and the signature of the first message, It includes: the first computer device generates a masking vector according to the first preset parameter, wherein the masking vector includes l polynomials, and the coefficient of each polynomial in the l polynomials is less than or equal to the first Preset parameters; the first computer device determines a first promised intermediate share according to the first matrix and the masked vector; the first computer device obtains a promised intermediate share from the a computer device The high-order bits of the first computer device determine the promise according to the high-order bits of the first promise middle part and the high-order bits of the a promise middle part; the first computer device determines the promise according to the promise and the first promise A signature of a message identifying the challenge.
  • the masking vector may be represented by [y], and the first preset parameter may be represented by ⁇ 1 .
  • the masking vector [y] can be determined according to the formula [y] ⁇ Thr-RandNum( ⁇ 1 ) n ⁇ l .
  • the masking vector [y] includes l polynomials, each polynomial has n items, and the coefficient of each item is generated by Thr-RandNum( ⁇ 1 ) function and the absolute value does not exceed ⁇ 1 .
  • the first committed intermediate share can be represented by [w].
  • the first promised intermediate share [w] can be determined according to the formula [w] ⁇ A ⁇ [y], that is, [w] is the cross product of the matrix A and the masked vector [y].
  • the high-order bits of the middle part of the promise can be represented by [w 1 ].
  • the upper bits [w 1 ] of the middle portion of the promise can be determined according to the formula [w 1 ] ⁇ Thr-HighBits q ([w],2 ⁇ 2 ).
  • the Thr-HighBits q function is used to extract the upper bits [w 1 ] of the first committed middle share [w].
  • each computer equipment in the a computer equipment may first determine its own promised intermediate shares and its own promised intermediate shares. The high bit, and then send the middle part of the promise and the high bit of the middle part of the promise to the first computer device. Or, it can also be that each user only determines and sends his own promised middle share, and the first computer device extracts high bits from the received promised middle share by itself.
  • the promise w 1 can be obtained according to the high-order bits [w 1 ] of the first middle part of the promise and the high-order bits of the a middle part of the promises.
  • the challenge can be express.
  • challenge according to the formula Sure Concatenate the signature ⁇ of the first message and the promise w 1 , and use the hash function to map the concatenated value of the signature ⁇ of the first message and the promise w 1 to ⁇ 0,1 ⁇ 256 fields to get the challenge That is, the first 256 bits of the connection value are intercepted. If the connection value has less than 256 bits, the specified bits ( ⁇ 1 or 0) are randomly generated to fill in, and the final value is assigned to the challenge
  • the function of the key is divided into multiple computer devices, which can realize the security management of the key and resist side channel attacks to a certain extent.
  • the first computer device determines the response according to the first preset parameter, the challenge, and the first vector, including: The first computer device determines a first response share according to the mask vector, the challenge and the first vector; the first computer device acquires a response shares from the a computer device; The first computer device determines the response according to the first response share and the a response shares.
  • the challenge can be express.
  • the scope of the challenge can be specified There are ⁇ terms in which the coefficients are ⁇ 1, and 256- ⁇ terms have coefficients of 0. If challenge is specified With a factor of ⁇ 1, the challenge at this time can be Defined as challenge c.
  • the first response share can be represented by [z].
  • the first response share [z] can be determined according to the formula [z] ⁇ [y]+c ⁇ [s 1 ]. It should be understood that the first response share [z] is a polynomial.
  • a computer device calculates the respective response share according to the masked vector share [y], the challenge c and the first vector s i1 and sends it to A first computer device. It may also be that some or all of the computer devices in a computer device send their respective response shares to at least one intermediary, and at least one intermediary forwards them to the first computer device.
  • the response z can be obtained according to the first response share [z] and the response share of the a computer device.
  • the function of the key is divided into multiple computer devices, which can realize the security management of the key and resist side channel attacks to a certain extent.
  • the first computer device according to the challenge, the lower bits of the key parameter, the first matrix, the first preset parameter and the second vector, and determining the hint includes: the first computer device determining the first promise according to the challenge, the low-order bits of the key parameter, the first promise intermediate share, and the second vector One prompt share; the first computer device obtains a prompt share from the a computer device; the first computer device determines the prompt according to the first prompt share and the a prompt share .
  • the first prompt share can be represented by [h].
  • the first hint share [h] can be determined according to the formula [h] ⁇ Thr-MakeHint(-c ⁇ t 0 ,[w]-c ⁇ [s 2 ]+c ⁇ t 0 ,2 ⁇ 2 ).
  • Thr-MakeHint is used to generate a one-bit hint [h].
  • One by one compare [w]-c ⁇ [s 2 ]+c ⁇ t 0 and [w]-c ⁇ [s 2 ] the size of the corresponding bit, if the two are equal, the bit corresponding to [h] is 1 , otherwise the bit corresponding to [h] is 0, and [h] is a sequence consisting of 0 and 1.
  • a computer device may calculate the respective reminder share and send it to the first computer device. It may also be that some or all of the computer devices in a computer device send their reminder shares to at least one intermediary, and the at least one intermediary forwards them to the first computer device.
  • the prompt h can be obtained according to the first prompt share [h] and the prompt share of the a computer device.
  • the function of the key is divided into multiple computer devices, which can realize the security management of the key and resist side channel attacks to a certain extent.
  • the method further includes: the first computer device receiving the second message and the signature information of the second message from the second computer device ; The first computer device verifies the signature information of the second message according to the high order bits of the matrix seed and the key parameter.
  • the first computer device can not only sign the message M, but also receive the second message sent by other computer devices and the signature information of the second message, and then verify it.
  • the function of the key is divided into multiple computer devices, which can realize the security management of the key and resist side channel attacks to a certain extent.
  • an embodiment of the present application provides a computer device, where the computer device includes a unit for implementing the first aspect or any possible implementation manner of the first aspect.
  • an embodiment of the present application provides a computer device, the computer device includes a processor, the processor is used to be coupled with a memory, read and execute instructions and/or program codes in the memory, to perform the first aspect or Any possible implementation of the first aspect.
  • an embodiment of the present application provides a chip system, the chip system includes a logic circuit, the logic circuit is used to couple with an input/output interface, and transmit data through the input/output interface to perform the first aspect or the first Any possible implementation of the aspect.
  • the embodiment of the present application provides a computer-readable storage medium, the computer-readable storage medium stores program codes, and when the computer storage medium is run on a computer, the computer executes the first aspect or the first aspect. any possible implementation of .
  • an embodiment of the present application provides a computer program product, the computer program product comprising: computer program code, when the computer program code is run on a computer, the computer is made to execute any of the first aspect or the first aspect.
  • a computer program product comprising: computer program code, when the computer program code is run on a computer, the computer is made to execute any of the first aspect or the first aspect.
  • FIG. 1 is a schematic diagram of a scenario of a key generation algorithm provided by an embodiment of the present application.
  • Fig. 2 is a schematic diagram of a joint signature algorithm scenario provided by the embodiment of the present application.
  • Fig. 3 is a schematic flowchart of a digital signature threshold method provided by an embodiment of the present application.
  • Fig. 4 is a schematic flow chart of verifying message signature information provided by an embodiment of the present application.
  • Fig. 5 is a structural example diagram of a computer device provided by an embodiment of the present application.
  • FIG. 6 is a structural example diagram of another computer device provided by an embodiment of the present application.
  • Fig. 7 is an exemplary diagram of a computer program product provided by an embodiment of the present application.
  • the main purpose of the threshold cipher is for key security management: in order to solve the problem of single-point theft/invalidation of key management, the threshold cipher splits the key into n Shares are distributed to n parties for independent storage, among which any ⁇ t parties can exercise the function of the key without recovering the key, such as decryption or signature.
  • the privacy of the key is information-theoretic for any party smaller than t.
  • threshold ciphers can also be used as a means of resisting a certain degree of side channel attacks (first-order side channel attacks).
  • This application takes Crystals-Dilithium (Dilithium for short) and its previous evolution algorithms GLP12 and BG14 as examples to conduct threshold research on post-quantum digital signature algorithms.
  • Dilithium belongs to the Fiat-Shamir route.
  • the calculation process of the Fiat-Shamir route can be summarized into three steps: “commitment”, using the random oracle (random oracle, RO) to generate a "challenge” (challenge) from the promise and the signed message, and the random oracle in the commitment Number and signing key to generate a "response”.
  • the development of Dilithium roughly went through L09 ⁇ L12 ⁇ GLP12 ⁇ BG14 ⁇ Dilithium.
  • Dilithium mainly includes key generation algorithm Gen, signature algorithm Sign, and signature verification algorithm Verify.
  • Gen key generation algorithm
  • Sign signature algorithm Sign
  • Verify signature verification algorithm Verify.
  • the "promise”, “challenge” and “response” of the Fiat-Shamir route are included in Dilithium's signature algorithm Sign.
  • R q Z q [x]/(x n +1), where R is a real number and Z is an integer.
  • Z q represents the set of integers smaller than q.
  • Z q [x] represents a polynomial about x, and the coefficient of each item of the polynomial is an integer smaller than q.
  • R q represents a polynomial with respect to x whose highest term is less than x n , and whose coefficients are also integers less than q.
  • Hash function in It is an overall polynomial with the highest order n-1 and at most 32 coefficients of -1 or 1 (the remaining coefficients are 0).
  • the degree of the item with the highest degree is called the order of the polynomial
  • the overall polynomial with the highest order n-1 is the set of all polynomials whose order is less than or equal to n-1, that is, a constant, a linear, a quadratic,... ..., a set of n-1 formulas.
  • n-1 a constant, a linear, a quadratic,... ..., a set of n-1 formulas.
  • Hash function H ⁇ 0,1 ⁇ * ⁇ B ⁇ , B ⁇ means that in the polynomial, there are ⁇ coefficients whose value is 1 or -1, and the remaining coefficients are 0.
  • a hash function is a function that compresses a long input into a short output.
  • the hash function becomes an anti-collision hash function.
  • a collision-resistant hash function mapped to ⁇ 0,1 ⁇ 384 is used in the signature scheme of this application.
  • the floor(x) function can also be used express. Its function is to "round down”, or “round down”, “round to zero", that is, to take the largest integer not greater than x.
  • 9.mod is a modulo operation, which finds the remainder of the division of two numbers.
  • Masking vector in order to avoid the exposure of some secret vectors that need to be protected, a random vector used to cover up the secret vector is generated.
  • the first vector and the second vector in the private key are secret vectors.
  • the secret vector is a vector composed of private keys of participating computer equipment, which needs to be kept secret.
  • ⁇ 1 and ⁇ 2 are preset parameters. ⁇ 1 and ⁇ 2 should be large enough that the key will not be displayed in the final signature, and should be small enough that the signature cannot be easily forged.
  • the keys used for encryption and decryption are different: usually one is public, called the public key (pk). The other is kept secret, called the private key (secret key, sk).
  • the function ExpandA is used to map the seed ⁇ 0,1 ⁇ 256 to the matrix A ⁇ R q k ⁇ l represented by the number theory transform (NTT) domain.
  • NTT number theory transform
  • the number-theoretic transformation is a fast algorithm for computing convolutions.
  • the most commonly used fast algorithm for calculating the convolution product is to use the fast Fourier transform.
  • the fast Fourier transform must perform complex and floating-point operations, so the amount of calculation will be relatively large, and the error generated by floating-point operations will be relatively large. big.
  • Using number-theoretic transformations to perform operations on integers only reduces the complexity of calculating the convolution product.
  • r' r mod ⁇ ⁇ as a unique element r', satisfying - ⁇ /2 ⁇ r' ⁇ /2 (when ⁇ is an even number), and ( ⁇ -1)/2 ⁇ r' ⁇ ( ⁇ -1)/2 (when ⁇ is an odd number).
  • a ⁇ b is the inner product of two vectors
  • a ⁇ b is the outer product of two vectors.
  • this application first introduces GLP12 and BG14, which present the Fiat-Shamir route well:
  • BG14 solves this problem, only needs to prove s 1 , thus only needs to generate z 1 , greatly reducing the size of the signature. But this also leads to another problem, that is, since z 2 is not included in the signature, t cannot be verified.
  • the solution of BG14 is to use the rounding method, that is, the signature verification algorithm only verifies the part of t corresponding to s 1 .
  • the following introduces BG14, which is developed based on GLP12.
  • the basic code of the key generation algorithm Gen of BG14 is as follows:
  • HighBits is used to extract high-order bits
  • LowBits is used to extract low-order bits.
  • the largest possible coefficient of the polynomial c ⁇ s i , s i includes s 1 and s 2
  • the largest possible coefficient of c ⁇ s i is the largest of the absolute values of the coefficients in the polynomial vectors c ⁇ s 1 and c ⁇ s 2 value. Since c has ⁇ coefficients with values of 1 or -1 and the largest coefficient in si is ⁇ , ⁇ . If any coefficient of response z is greater than or equal to ⁇ 1 - ⁇ , or A ⁇ yc ⁇ s 2 has any coefficient of lower bits greater than or equal to ⁇ 2 - ⁇ , reject sampling and restart the signature process.
  • the verifier first calculates the high-order bit w' 1 of A ⁇ zc ⁇ t, if
  • Dilithium is formed by optimizing the basic scheme of BG14 above, and its optimization ideas are as follows:
  • BG14 The most prominent problem of the basic scheme of BG14 is that the size of the public key pk is very large, which includes a matrix A composed of k ⁇ l polynomials, and each polynomial has up to 256 coefficients of 23 bits.
  • the solution adopted by Dilithium is to use a public seed ⁇ to generate the matrix A.
  • Dilithium uses additional compression techniques to compress the size of the public key element t. The reason is that when the verifier calculates w' 1 (line 1 of the signature verification function Verify), the high-order bits of A ⁇ zc ⁇ t actually do not depend much on the low-order bits of t, because t will be related to a polynomial with a very low weight c is multiplied. In the real Dilithium scheme, some low-order bits of t will be discarded, so the sign verifier may not be able to calculate some high-order bits of A ⁇ zc ⁇ t. In order to make up for the discarding of the low-order bits of t, the digital signature generation algorithm will add some hints (hints) bits as part of the signature. These "hints" bits are actually the carry obtained by adding the discarded low-order bits of c ⁇ t .
  • hints hints
  • Dilithium In order to compress the size of the public key, Dilithium needs to extract the high-order bits and low-order bits of the Z q element. Its purpose is as follows: when given an arbitrary element r ⁇ Z q and another small element z ⁇ Z q , Dilithium wants to recover the upper bits of r+z without saving z. To this end, it is necessary to define such an algorithm, which takes r and z as input and generates a "hint" h of one bit, and then only r and h can be used to calculate the high-order bits of r+z. This one bit h actually makes the carry generated during the calculation of r+z. Power2Round q and Decompose q algorithms can be used to extract high and low bits.
  • r 0 r mod ⁇ ⁇ as a unique element r 0 , satisfying - ⁇ /2 ⁇ r 0 ⁇ /2 (when ⁇ is an even number), and ( ⁇ -1)/2 ⁇ r 0 ⁇ ( ⁇ -1)/2 (when ⁇ is an odd number).
  • Dilithium includes two versions, randomized signing and deterministic signing. The difference between the two lies in the way the random numbers used in the signature algorithm are generated. The former uses random numbers directly, while the latter uses random number generators to generate signed messages and signature private keys.
  • the algorithm samples random key vectors s 1 and s 2 , that is, s 1 is randomly generated from S ⁇ l , and s 2 is randomly generated from S ⁇ k .
  • Each entry of the random key vectors s1 and s2 is an element of Rq with a coefficient up to ⁇ .
  • the second part t 1 and t 0 of the key are calculated. All algebraic operations in this scheme are on the polynomial ring Rq .
  • the embodiment of the present application implements the threshold Dilithium scheme by using secure multiparty computation technology (multiparty computation, MPC) under the condition of fully following the parameters in the above-mentioned Dilithium algorithm specification.
  • MPC multiparty computation
  • the threshold Dilithium scheme designed in the embodiment of the present application completely complies with the parameters in the original Dilithium specification.
  • the main idea is to use a specific practical secure multi-party computing technology to threshold Dilithium. Since the thresholded Dilithium will not affect the signature verification algorithm Verify of the original scheme, this application only needs to threshold the key generation function and signature function, and keep the verification function unchanged.
  • FIG. 1 is a schematic diagram of a scenario of a key generation algorithm provided by an embodiment of the present application.
  • any ⁇ p parties among them can exercise the function of the private key sk without recovering the key.
  • m users divide the private key sk into m shares through the secret sharing scheme, so that each computer device i obtains a private key share sk i of the private key sk.
  • Fig. 2 is a schematic diagram of a joint signature algorithm scenario provided by the embodiment of the present application.
  • a piece of information M needs at least three computer devices to use their respective private keys to sign the message, that is, the ski of any at least three computer devices among the five computer devices A, B, C, D, and E can be in Complete the signing of the message M without recovering the private key sk.
  • any computer device cannot obtain the private key shares of other computer devices or useful information related to the private key sk.
  • the threshold Dilithium scheme includes two algorithms, the threshold key generation algorithm and the threshold joint signature algorithm.
  • [x] means that according to the agreed secret sharing scheme, x has been split into secret shares (shares) and each share has been delivered to the corresponding user, [ x] can also be represented by xi , representing the i-th share of x obtained by the i-th user.
  • the operation acting on [x] means that ⁇ p users use their respective secret shares to participate in the corresponding secure multi-party computing operation, such as [x]+[y] means that ⁇ p users use their own secret shares of x and the secret share of y to participate in the calculation of x+y.
  • Commonly used secret sharing schemes are Shamir t-out-of-n secret sharing schemes, n-out-of-n secret sharing schemes, or other linear secret sharing schemes.
  • Fig. 3 is a schematic flowchart of a digital signature threshold method provided by an embodiment of the present application.
  • the first matrix can be represented by matrix A.
  • matrix A is a matrix of k ⁇ l
  • each element in matrix A is a polynomial
  • each polynomial can be randomly generated by the public seed ⁇
  • the coefficient of each polynomial is an integer smaller than q
  • q is a prime number .
  • the specific way of generating the matrix A is not limited in this application.
  • the matrix A is public to the m computer devices in the system, that is, each computer device can obtain the matrix A.
  • the computer device that generates matrix A can distribute the obtained matrix A to m computer devices in the system.
  • the m computer devices can also directly use the preset matrix A.
  • S320 Determine a first vector and a second vector.
  • the first vector may be s i1
  • the second vector may be s i2
  • the first vector can also be expressed as [s 1 ]
  • the second vector can also be expressed as [s 2 ].
  • the first vector and the second vector may be referred to as random key vector shares, because the first vector and the second vector participate in key generation in a random manner.
  • the first computer device generates random key vector shares s i1 and s i2 , optionally, the random key vector shares s i1 and s i2 can be formulated by the formula ([s 1 ],[s 2 ]) ⁇ Thr-RandNum( ⁇ ) n ⁇ l+n ⁇ k is determined.
  • the Thr-RandNum( ⁇ ) algorithm is used to generate a random number whose absolute value ⁇ ⁇ .
  • s i1 has l polynomials
  • s i2 has k polynomials
  • each polynomial contains n items
  • the absolute value of the coefficient of each item is less than or equal to ⁇ .
  • is a preset parameter
  • n is a positive integer.
  • the first key parameter share can be represented by [t].
  • a is a positive integer greater than or equal to p-1, and p is the minimum number of users in the secret sharing scheme.
  • the key parameter t can be obtained according to the key parameter shares [t] of more than or equal to p users. Therefore, the first computer device receives a key parameter share from a computer device to obtain the key parameter t.
  • a linear secret sharing scheme LSSS
  • LSSS linear secret sharing scheme
  • s 1 LSSS(s 11 ,...,s i1 ,...)
  • s 2 LSSS(s 12 ,...,s i2 , ...)
  • t LSSS(t 1 ,...,t i ,...)
  • i is less than or equal to p.
  • t LSSS(t 1 ,...,t i ,...,t p ).
  • the high-order bits and low-order bits of the key parameter t can be obtained according to the formula (t 1 ,t 0 ) ⁇ Power2Round q (t,d).
  • the first random number may be represented by tr.
  • tr can be determined according to the formula tr ⁇ 0,1 ⁇ 384 ⁇ CRH( ⁇
  • the signature information of the first message may be determined according to the first vector, the second vector, the lower bits of the key parameter, the first random number and the matrix seed.
  • the signature information of the first message can be expressed as The signature information of the first message includes answer z, prompt h and challenge
  • the first computer device sends the first message and signature information of the first message to a second computer device.
  • the first computer device sends the first message and the signature information of the first message to the verifier, and the verifier will verify the message according to the information received from the first computer device.
  • Fig. 4 is a schematic flow chart of verifying message signature information provided by an embodiment of the present application.
  • the first computer device is a verifier of the signed message
  • receiving the second message and the signature information of the second message from the second computer device When the first computer device is a verifier of the signed message, receiving the second message and the signature information of the second message from the second computer device.
  • the first computer device verifies the signature information of the second message by using the public key.
  • the public key may include the public seed ⁇ of the generator matrix, and the upper bits t 1 of the key parameters.
  • Random bit generation (random bit generation)[b] MPCRb(): This algorithm generates a shared random bit[b] among ⁇ p users, that is, each user gets a secret share about this bit.
  • the digital signature threshold method of this application needs to use the following supporting algorithms, and the header Thr of the algorithm name represents the threshold (threshold):
  • line 15 of the joint signature algorithm Thr-Sign of the threshold Dilithium set the bit corresponding to [h] to be 0 when the two are equal, otherwise the bit corresponding to [h] is 1, and then Line 16 counts the number of 0s in [h], and in line 17, change the judgment condition to the number of 0s in h greater than the preset parameter.
  • the above is only the specific implementation of this application.
  • those skilled in the art can easily think of the threshold method about Dilithium and its evolution and deformation algorithm, which should be covered in this application. within the scope of protection.
  • the BG14 and GLP12 algorithms can also be thresholded using a similar secret sharing method and the corresponding threshold support algorithm.
  • the embodiment of the present application also provides a computer storage medium, the computer storage medium stores program instructions, and when the program is executed, it may include some or all steps of the digital signature threshold method in the corresponding embodiments as shown in Fig. 3 and Fig. 4 .
  • FIG. 5 is a structural example diagram of a computer device provided by an embodiment of the present application.
  • the computer device 600 includes an acquisition module 610 , a processing module 620 and a sending module 630 .
  • the obtaining module 610 is configured to obtain the first matrix and key parameter shares of at least p-1 users, and execute S310 and S340 in the method in FIG. 3 .
  • the acquiring module 610 is further configured to acquire the second message and the signature information of the second message, and execute S410 in the method in FIG. 4 .
  • the processing module 620 is configured to determine the signature information of the first message according to the first matrix, the first vector, the first key parameter share, the key parameter and the first random number, and execute some or all of the steps in the method in FIG. 3 .
  • the processing module 620 is configured to verify the signature information of the second message, and execute S420 in the method in FIG. 4 .
  • a sending module 630 configured to send the first message and the signature information of the first message to the second computer device.
  • FIG. 6 is a structural example diagram of another computer device 1300 provided in the embodiment of the present application.
  • the computer device 1300 includes a processor 1302 , a communication interface 1303 and a memory 1304 .
  • One example of computer device 1300 is a chip.
  • Another example of computer apparatus 1300 is a computing device.
  • Processor 1302 can be a central processing unit (central processing unit, CPU), and can also be other general-purpose processors, digital signal processors (digital signal processors, DSP), application specific integrated circuits (application specific integrated circuits, ASICs), on-site Programmable gate array (field programmable gate array, FPGA) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc.
  • a general purpose processor may be a microprocessor or any conventional processor or the like. In the implementation process, each step of the above method may be completed by an integrated logic circuit of hardware in the processor 1302 or instructions in the form of software.
  • a general-purpose processor may be a microprocessor, or the processor may be any conventional processor, and the like.
  • the steps of the methods disclosed in the embodiments of the present invention may be directly implemented by a hardware decoding processor, or implemented by a combination of hardware and software modules in the decoding processor.
  • Memory 1304 can be volatile memory or nonvolatile memory, or can include both volatile and nonvolatile memory.
  • the non-volatile memory can be read-only memory (read-only memory, ROM), programmable read-only memory (programmable ROM, PROM), erasable programmable read-only memory (erasable PROM, EPROM), electrically programmable Erases programmable read-only memory (electrically EPROM, EEPROM) or flash memory.
  • Volatile memory can be random access memory (RAM), which acts as external cache memory.
  • RAM random access memory
  • SRAM static random access memory
  • DRAM dynamic random access memory
  • DRAM synchronous dynamic random access memory
  • SDRAM double data rate synchronous dynamic random access memory
  • ESDRAM enhanced synchronous dynamic random access memory
  • SLDRAM direct memory bus random access memory
  • direct rambus RAM direct rambus RAM
  • the processor 1302, the memory 1304, and the communication interface 1303 may communicate through a bus.
  • Executable codes are stored in the memory 1304, and the processor 1302 reads the executable codes in the memory 1304 to execute a corresponding method.
  • the memory 1304 may also include an operating system and other software modules required for running processes.
  • the operating system can be LINUX TM , UNIX TM , WINDOWS TM and so on.
  • the executable code in the memory 1304 is used to implement the methods shown in FIG. 3 and FIG. 4
  • the processor 1302 reads the executable code in the memory 1304 to execute the methods shown in FIG. 3 and FIG. 4 .
  • the disclosed methods may be implemented as computer program instructions encoded in a machine-readable format on a computer-readable storage medium or on other non-transitory media or articles of manufacture.
  • Figure 7 schematically illustrates a conceptual partial view of an example computer program product comprising a computer program for executing a computer process on a computing device, arranged in accordance with at least some embodiments presented herein.
  • the example computer program product 1400 is provided using a signal bearing medium 1401 .
  • the signal bearing medium 1401 may include one or more program instructions 1402, which may provide the functions or part of the functions described above with respect to the methods shown in FIG. 3 and FIG. 4 when executed by one or more processors.
  • one or more features therein may be undertaken by one or more instructions associated with the signal bearing medium 1401 .
  • signal bearing medium 1401 may comprise computer readable medium 1403 such as, but not limited to, a hard drive, compact disc (CD), digital video disc (DVD), digital tape, memory, read-only memory (read only memory) -only memory, ROM) or random access memory (random access memory, RAM) and so on.
  • signal bearing media 1401 may comprise computer recordable media 1404 such as, but not limited to, memory, read/write (R/W) CDs, R/W DVDs, and the like.
  • signal bearing media 1401 may include communication media 1405 such as, but not limited to, digital and/or analog communication media (eg, fiber optic cables, waveguides, wired communication links, wireless communication links, etc.).
  • signal bearing medium 1401 may be conveyed by a wireless form of communication medium 1405 (eg, a wireless communication medium that complies with the IEEE 802.11 standard or other transmission protocol).
  • One or more program instructions 1402 may be, for example, computer-executable instructions or logic-implemented instructions.
  • the aforementioned computing device may be configured to, in response to program instructions 1402 communicated to the computing device via one or more of computer-readable media 1403, computer-recordable media 1404, and/or communication media 1405, Various operations, functions, or actions are provided. It should be understood that the arrangements described herein are for example purposes only.
  • the disclosed systems, devices and methods may be implemented in other ways.
  • the device embodiments described above are only illustrative.
  • the division of the units is only a logical function division. In actual implementation, there may be other division methods.
  • multiple units or components can be combined or May be integrated into another system, or some features may be ignored, or not implemented.
  • the mutual coupling or direct coupling or communication connection shown or discussed may be through some interfaces, and the indirect coupling or communication connection of devices or units may be in electrical, mechanical or other forms.
  • the units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place, or may be distributed to multiple network units. Part or all of the units can be selected according to actual needs to achieve the purpose of the solution of this embodiment.
  • each functional unit in each embodiment of the present application may be integrated into one processing unit, each unit may exist separately physically, or two or more units may be integrated into one unit.
  • the functions described above are realized in the form of software function units and sold or used as independent products, they can be stored in a computer-readable storage medium.
  • the technical solution of the present application is essentially or the part that contributes to the prior art or the part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a storage medium, including Several instructions are used to make a computer device (which may be a personal computer, a server, or a network device, etc.) execute all or part of the steps of the methods described in the various embodiments of the present application.
  • the aforementioned storage media include: U disk, mobile hard disk, read-only memory (Read-Only Memory, ROM), random access memory (Random Access Memory, RAM), magnetic disk or optical disc and other media that can store program codes. .

Abstract

Provided in the embodiments of the present application is a digital signature thresholding method. The method comprises: a first computer device acquiring a first matrix; determining a first vector and a second vector; determining a first key parameter part according to the first matrix, the first vector and the second vector; receiving a key parameter parts from a computer devices; determining a high-order bit and a low-order bit of a key parameter according to the first key parameter part and the a key parameter parts; determining a first random number according to a matrix seed and the high-order bit of the key parameter; determining signature information of a first message according to the first vector, the second vector, the low-order bit of the key parameter, the first random number, and the matrix seed; and the first computer device sending the first message and the signature information of the first message to a second computer device. By means of the technical solution of the present application, the security of key management can be improved, and a side channel attack can be resisted.

Description

数字签名门限方法和装置Digital signature threshold method and device
本申请要求于2021年11月24日提交中国专利局、申请号为202111401610.9、申请名称为“数字签名门限方法和装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。This application claims the priority of the Chinese patent application with the application number 202111401610.9 and the application title "Digital Signature Threshold Method and Device" filed with the China Patent Office on November 24, 2021, the entire contents of which are incorporated by reference in this application.
技术领域technical field
本申请涉及密码学领域,具体涉及一种数字签名门限方法和装置。This application relates to the field of cryptography, in particular to a digital signature threshold method and device.
背景技术Background technique
门限密码的工作原理是将密钥通过秘密共享方案(t-out-of-n secret sharing)拆分成n份并分发给n方独立保管,其中任意的≥t方一起可在不恢复密钥的情况下行使密钥的功能,如解密或签名。而密钥的私密性对于任意小于t方来说是信息论意义的,即完全获取不到密钥的任何有效信息。随着量子计算机的发展,传统的数字签名算法面临着被破解的风险。后量子数字签名算法是能够抵抗量子计算机对现有密码算法攻击的新一代密码算法。虽然对于门限传统密码的研究已经相当充分,但现阶段对门限后量子签名算法的研究却很少。The working principle of the threshold cipher is to split the key into n parts through the secret sharing scheme (t-out-of-n secret sharing) and distribute it to n parties for independent storage. The function of the key is performed under the circumstances, such as decryption or signing. The privacy of the key is of information theory significance for any party smaller than t, that is, no valid information about the key can be obtained at all. With the development of quantum computers, traditional digital signature algorithms are at risk of being cracked. The post-quantum digital signature algorithm is a new generation of cryptographic algorithms that can resist the attack of quantum computers on existing cryptographic algorithms. Although the research on threshold traditional cryptography has been quite sufficient, there is little research on threshold post-quantum signature algorithms at this stage.
因此,如何对后量子数字签名算法进行门限化从而保证后量子密钥的安全,是一个亟待解决的问题。Therefore, how to threshold the post-quantum digital signature algorithm to ensure the security of the post-quantum key is an urgent problem to be solved.
发明内容Contents of the invention
本申请实施例提供一种数字签名门限方法和装置,能够提高密钥管理的安全性,及在一定程度上可以抵抗侧信道攻击。The embodiments of the present application provide a digital signature threshold method and device, which can improve the security of key management and can resist side channel attacks to a certain extent.
第一方面,提供了一种数字签名门限方法,该方法包括:第一计算机设备获取第一矩阵,所述第一矩阵为k行l列的矩阵,k和l为大于等于1的正整数;所述第一计算机设备确定第一向量和第二向量;所述第一计算机设备根据所述第一矩阵、所述第一向量和所述第二向量,确定第一密钥参数份;所述第一计算机设备接收来自于a个计算机设备的a个密钥参数份,a为大于或等于p-1的正整数,p为秘密共享方案的最小计算机设备数目;所述第一计算机设备根据所述第一密钥参数份和所述a个密钥参数份,确定密钥参数的高位比特和低位比特;所述第一计算机设备根据矩阵种子和所述密钥参数的高位比特,确定第一随机数;所述第一计算机设备根据所述第一向量、所述第二向量、所述密钥参数的低位比特、所述第一随机数和所述矩阵种子,确定第一消息的签名信息;所述第一计算机设备向第二计算机设备发送所述第一消息和所述第一消息的签名信息,所述第二计算机设备为所述a个计算机设备中的一个。In a first aspect, a digital signature threshold method is provided, the method includes: a first computer device acquires a first matrix, the first matrix is a matrix with k rows and l columns, and k and l are positive integers greater than or equal to 1; The first computer device determines a first vector and a second vector; the first computer device determines a first key parameter share according to the first matrix, the first vector and the second vector; the The first computer device receives a key parameter shares from a computer device, a is a positive integer greater than or equal to p-1, and p is the minimum number of computer devices for the secret sharing scheme; the first computer device according to the The first key parameter share and the a key parameter shares determine the high-order bits and low-order bits of the key parameter; the first computer device determines the first key parameter according to the matrix seed and the high-order bits of the key parameter A random number: the first computer device determines the signature information of the first message according to the first vector, the second vector, the lower bits of the key parameter, the first random number and the matrix seed ; The first computer device sends the first message and the signature information of the first message to a second computer device, and the second computer device is one of the a computer devices.
应理解,系统中有m个计算机设备,p为秘密共享方案的最小计算机设备数目,p小于等于m。It should be understood that there are m computer devices in the system, p is the minimum number of computer devices in the secret sharing scheme, and p is less than or equal to m.
示例性地,第一矩阵可以用矩阵A表示。可选地,矩阵A可以根据公式A∈R q k×l:=ExpandA(ρ)确定。其中,矩阵A为k×l的矩阵,矩阵A中的每一个元素都是多项式,每一个多项式可以由公开种子ρ随机生成,且每一个多项式的系数都是小于q的 整数,q是一个素数。 Exemplarily, the first matrix can be represented by matrix A. Optionally, the matrix A can be determined according to the formula A∈R q k×l :=ExpandA(ρ). Among them, matrix A is a matrix of k×l, each element in matrix A is a polynomial, each polynomial can be randomly generated by the public seed ρ, and the coefficient of each polynomial is an integer smaller than q, q is a prime number .
可选地,获取矩阵A的方式可以是第一计算机设备通过公开种子ρ随机生成矩阵A,也可以使用预设的矩阵A,或者矩阵A也可以由多个计算机设备共同生成。例如,k=5,l=6,则矩阵A为5行6列的矩阵。其中,第一计算机设备生成矩阵A的其中一行元素,第二计算机设备生成剩下四行元素。或者,第一计算机设备生成矩阵A的其中一列元素,第二计算机设备生成另一列元素,第三计算机设备生成剩下四列元素。矩阵A的具体生成方式本申请不作限定。Optionally, the way to obtain matrix A may be that the first computer device randomly generates matrix A by publicizing the seed ρ, or a preset matrix A may be used, or matrix A may also be jointly generated by multiple computer devices. For example, k=5, l=6, then the matrix A is a matrix with 5 rows and 6 columns. Wherein, the first computer device generates one row of elements of the matrix A, and the second computer device generates the remaining four rows of elements. Alternatively, the first computer device generates one column of elements of matrix A, the second computer device generates another column of elements, and the third computer device generates the remaining four columns of elements. The specific way of generating the matrix A is not limited in this application.
应理解,矩阵A对于系统中m个计算机设备来说是公开的,也就是每个计算机设备都可以获得矩阵A。生成矩阵A的计算机设备可以将得到的矩阵A分发给系统中m个计算机设备。m个计算机设备也可以直接使用预设的矩阵A。It should be understood that the matrix A is public to the m computer devices in the system, that is, each computer device can obtain the matrix A. The computer device that generates matrix A can distribute the obtained matrix A to m computer devices in the system. The m computer devices can also directly use the preset matrix A.
应理解,本申请会用到下述重要标识:对于一个数值x,[x]表示按照所约定的秘密共享方案,x已拆分成秘密份(shares)且每份已传递到相应用户的手中,[x]也可以用x i表示,代表第i个用户得到的第i份x。 It should be understood that this application will use the following important signs: For a value x, [x] means that according to the agreed secret sharing scheme, x has been split into secret shares (shares) and each share has been delivered to the corresponding user , [x] can also be represented by xi , which represents the i-th copy of x obtained by the i-th user.
示例性地,第一向量可以是s i1,第二向量可以是s i2。第一向量也可以表示为[s 1],第二向量也可以表示为[s 2]。第一向量和第二向量可以称为随机密钥向量份,因为第一向量和第二向量参与密钥的生成且产生方式随机。第一计算机设备生成随机密钥向量份s i1和s i2,可选地,随机密钥向量份s i1和s i2可以由公式([s 1],[s 2])←Thr-RandNum(η) n×l+n×k确定。Thr-RandNum(η)算法用于生成一个绝对值≤η的随机数。其中,s i1有l个多项式,s i2有k个多项式,每个多项式包含n项,每一项的系数的绝对值都小于等于η。η为预设参数,n为正整数。 Exemplarily, the first vector may be s i1 , and the second vector may be s i2 . The first vector can also be expressed as [s 1 ], and the second vector can also be expressed as [s 2 ]. The first vector and the second vector may be referred to as random key vector shares, because the first vector and the second vector participate in key generation in a random manner. The first computer device generates random key vector shares s i1 and s i2 , optionally, the random key vector shares s i1 and s i2 can be formulated by the formula ([s 1 ],[s 2 ])←Thr-RandNum(η ) n×l+n×k is determined. The Thr-RandNum(η) algorithm is used to generate a random number whose absolute value ≤ η. Among them, s i1 has l polynomials, s i2 has k polynomials, each polynomial contains n items, and the absolute value of the coefficient of each item is less than or equal to η. η is a preset parameter, and n is a positive integer.
示例性地,第一密钥参数份可以用[t]表示。第一密钥参数份[t]可以根据公式[t]=A×[s 1]+[s 2]确定。应理解,在a 1,b 1均表示向量的前提下,a 1·b 1是两个向量的内积,a 1×b 1是两个向量的外积。 Exemplarily, the first key parameter share can be represented by [t]. The first key parameter share [t] can be determined according to the formula [t]=A×[s 1 ]+[s 2 ]. It should be understood that on the premise that a 1 and b 1 both represent vectors, a 1 ·b 1 is the inner product of the two vectors, and a 1 ×b 1 is the outer product of the two vectors.
应理解,根据大于等于p个用户的[t]可以得到密钥参数t。因此第一计算机设备接收来自于a个计算机设备的a个密钥参数份可以得到密钥参数t,a为大于或等于p-1的正整数。It should be understood that the key parameter t can be obtained according to [t] of more than or equal to p users. Therefore, the first computer device can obtain a key parameter t after receiving a key parameter shares from a computer device, where a is a positive integer greater than or equal to p-1.
可选地,第一计算机设备可以根据所述第一密钥参数份和所述a个密钥参数份确定密钥参数t,然后根据公式(t 1,t 0)←Power2Round q(t,d)得到密钥参数t的高位比特和低位比特。Power2Round q函数可以将t分解为t=t 1·2 d+t 0,d为大于0的整数,t 1为密钥参数t的高位比特,t 0为密钥参数t的低位比特。 Optionally, the first computer device may determine the key parameter t according to the first key parameter share and the a key parameter shares, and then according to the formula (t 1 ,t 0 )←Power2Round q (t,d ) to get the high-order bits and low-order bits of the key parameter t. The Power2Round q function can decompose t into t=t 1 ·2 d +t 0 , where d is an integer greater than 0, t 1 is the high-order bit of the key parameter t, and t 0 is the low-order bit of the key parameter t.
示例性地,第一随机数可以用tr表示。可选地,tr可以根据公式tr∈{0,1} 384←CRH(ρ||t 1)确定。将公开种子ρ和密钥参数t的高位比特t 1进行字符串连接,使用抗碰撞哈希函数(collision-resistant hashing,CRH)将公开种子ρ和密钥参数t的高位比特t 1的连接值映射到{0,1} 384域得到tr,即截取该连接值的前384个比特,若该连接值的比特不足384个,则随机产生指定的比特(±1或0)补齐,并将最终得到的值赋值给tr。 Exemplarily, the first random number may be represented by tr. Optionally, tr can be determined according to the formula tr∈{0,1} 384 ←CRH(ρ||t 1 ). Concatenate the public seed ρ and the high-order bit t 1 of the key parameter t, and use the collision-resistant hash function (collision-resistant hashing, CRH) to connect the public seed ρ and the high-order bit t 1 of the key parameter t Map to {0,1} 384 field to get tr, that is, intercept the first 384 bits of the connection value, if the connection value has less than 384 bits, randomly generate the specified bits (±1 or 0) to fill in, and The resulting value is assigned to tr.
应理解,第一计算机设备的私钥份包括第一向量[s 1]和第二向量[s 2],可选的,第一计算机设备的私钥份还可以包括矩阵A或公开种子ρ,第一随机数tr,密钥参数t或密钥参数t的低位比特t 0It should be understood that the private key share of the first computer device includes the first vector [s 1 ] and the second vector [s 2 ], optionally, the private key share of the first computer device may also include matrix A or public seed ρ, The first random number tr, the key parameter t or the lower bit t 0 of the key parameter t.
在本申请实施例中,通过门限化数字签名方法,将密钥的功能拆分为由多个计算机设备共同行使,可以实现密钥的安全管理,并且在一定程度上抵抗侧信道攻击。In the embodiment of the present application, through the threshold digital signature method, the function of the key is divided into multiple computer devices, which can realize the security management of the key and resist side channel attacks to a certain extent.
结合第一方面,在第一方面的某些实现方式中,所述第一消息的签名信息包括:挑战,应答和提示,所述第一计算机设备所述根据所述第一向量、所述第二向量、所述密钥参数的低位比特、所述第一随机数和所述矩阵种子,确定第一消息的签名信息,包括:所述第一计算机设备根据所述第一随机数和所述第一消息,确定挑战参数;所述第一计算机设备根据第一预设参数、所述第一矩阵和所述挑战参数,确定所述挑战;所述第一计算机设备根据所述第一预设参数、所述挑战和所述第一向量,确定所述应答;所述第一计算机设备根据所述挑战、所述密钥参数的低位比特、所述第一矩阵、所述第一预设参数和所述第二向量,确定所述提示。With reference to the first aspect, in some implementation manners of the first aspect, the signature information of the first message includes: a challenge, a response, and a prompt, and the first computer device according to the first vector, the second Two vectors, the lower bits of the key parameter, the first random number and the matrix seed, determine the signature information of the first message, including: the first computer device according to the first random number and the The first message determines the challenge parameter; the first computer device determines the challenge according to the first preset parameter, the first matrix and the challenge parameter; the first computer device determines the challenge according to the first preset parameter, the challenge and the first vector, determine the response; the first computer device determines the response according to the challenge, the lower bits of the key parameter, the first matrix, and the first preset parameter and the second vector, determine the hint.
可选地,根据所述第一随机数和所述第一消息,确定挑战参数可以用公式μ∈{0,1} 384:=CRH(tr||M)表示。将第一随机数tr和消息M进行字符串连接,使用抗碰撞哈希函数将第一随机数tr和消息M的连接值映射到{0,1} 384域得到挑战参数μ,即截取该连接值的前384个比特,若该连接值的比特不足384个,则随机产生指定的比特(±1或0)补齐,并将最终得到的值赋值给μ。 Optionally, according to the first random number and the first message, determining a challenge parameter may be expressed by a formula μ∈{0,1} 384 :=CRH(tr||M). Concatenate the first random number tr and the message M, and use the anti-collision hash function to map the connection value of the first random number tr and the message M to the {0,1} 384 domain to obtain the challenge parameter μ, that is, intercept the connection The first 384 bits of the value, if the number of bits of the connection value is less than 384, randomly generate the specified bits (±1 or 0) to fill in, and assign the final value to μ.
在本申请实施例中,通过门限化数字签名方法,将密钥的功能拆分为由多个计算机设备共同行使,可以实现密钥的安全管理,并且在一定程度上抵抗侧信道攻击。In the embodiment of the present application, through the threshold digital signature method, the function of the key is divided into multiple computer devices, which can realize the security management of the key and resist side channel attacks to a certain extent.
结合第一方面,在第一方面的某些实现方式中,所述所述第一计算机设备根据第一预设参数、所述第一矩阵和所述第一消息的签名,确定所述挑战,包括:所述第一计算机设备根据所述第一预设参数,生成屏蔽向量,其中所述屏蔽向量包括l个多项式,所述l个多项式中的每个多项式的系数小于或等于所述第一预设参数;所述第一计算机设备根据所述第一矩阵和所述屏蔽向量,确定第一许诺中间份;所述第一计算机设备获取来自于所述a个计算机设备的a个许诺中间份的高位比特;所述第一计算机设备根据所述第一许诺中间份的高位比特和所述a个许诺中间份的高位比特,确定许诺;所述第一计算机设备根据所述许诺和所述第一消息的签名,确定所述挑战。With reference to the first aspect, in some implementation manners of the first aspect, the first computer device determines the challenge according to first preset parameters, the first matrix, and the signature of the first message, It includes: the first computer device generates a masking vector according to the first preset parameter, wherein the masking vector includes l polynomials, and the coefficient of each polynomial in the l polynomials is less than or equal to the first Preset parameters; the first computer device determines a first promised intermediate share according to the first matrix and the masked vector; the first computer device obtains a promised intermediate share from the a computer device The high-order bits of the first computer device determine the promise according to the high-order bits of the first promise middle part and the high-order bits of the a promise middle part; the first computer device determines the promise according to the promise and the first promise A signature of a message identifying the challenge.
示例性地,屏蔽向量可以用[y]表示,第一预设参数可以用γ 1表示。可选地,屏蔽向量[y]可以根据公式[y]←Thr-RandNum(γ 1) n×l确定。屏蔽向量[y]包括l个多项式,每个多项式都有n个项,每一项的系数通过Thr-RandNum(γ 1)函数生成且绝对值都不超过γ 1Exemplarily, the masking vector may be represented by [y], and the first preset parameter may be represented by γ1 . Optionally, the masking vector [y] can be determined according to the formula [y]←Thr-RandNum(γ 1 ) n×l . The masking vector [y] includes l polynomials, each polynomial has n items, and the coefficient of each item is generated by Thr-RandNum(γ 1 ) function and the absolute value does not exceed γ 1 .
示例性地,第一许诺中间份可以用[w]表示。可选地,第一许诺中间份[w]可以根据公式[w]←A×[y]确定,即[w]为矩阵A和屏蔽向量[y]的叉积。Exemplarily, the first committed intermediate share can be represented by [w]. Optionally, the first promised intermediate share [w] can be determined according to the formula [w]←A×[y], that is, [w] is the cross product of the matrix A and the masked vector [y].
示例性地,许诺中间份的高位比特可以用[w 1]表示。可选地,许诺中间份的高位比特[w 1]可以根据公式[w 1]←Thr-HighBits q([w],2γ 2)确定。其中,许诺中间份[w]的每一个系数可以用[w]=[w 1]·2γ 2+[w 0]表示,γ 2为预设参数,[w 1]为许诺中间份[w]的高位比特,[w 0]为许诺中间份[w]的低位比特。Thr-HighBits q函数用于提取第一许诺中间份[w]的高位比特[w 1]。 Exemplarily, the high-order bits of the middle part of the promise can be represented by [w 1 ]. Optionally, the upper bits [w 1 ] of the middle portion of the promise can be determined according to the formula [w 1 ]←Thr-HighBits q ([w],2γ 2 ). Among them, each coefficient of the promised intermediate share [w] can be expressed by [w]=[w 1 ]·2γ 2 +[w 0 ], where γ 2 is a preset parameter, and [w 1 ] is the promised intermediate share [w] [w 0 ] is the low-order bit of the middle portion [w] of the promise. The Thr-HighBits q function is used to extract the upper bits [w 1 ] of the first committed middle share [w].
可选地,获取来自于所述a个计算机设备的a个许诺中间份的高比特位,可以是a个计算机设备中的每个计算机设备先确定自己的许诺中间份以及自己的许诺中间份的高比特位,再将自己的许诺中间份和自己的许诺中间份的高比特位发送给第一计算机设备。或者,还可以是每个用户只确定和发送自己的许诺中间份,由第一计算机设备自行从接收到 的许诺中间份中提取出高比特位。Optionally, to obtain the high-order bits of the a promised intermediate shares from the a computer equipment, each computer equipment in the a computer equipment may first determine its own promised intermediate shares and its own promised intermediate shares. The high bit, and then send the middle part of the promise and the high bit of the middle part of the promise to the first computer device. Or, it can also be that each user only determines and sends his own promised middle share, and the first computer device extracts high bits from the received promised middle share by itself.
应理解,根据所述第一许诺中间份的高位比特[w 1]和所述a个许诺中间份的高位比特,可以得到许诺w 1It should be understood that the promise w 1 can be obtained according to the high-order bits [w 1 ] of the first middle part of the promise and the high-order bits of the a middle part of the promises.
示例性地,挑战可以用
Figure PCTCN2022121597-appb-000001
表示。可选地,挑战
Figure PCTCN2022121597-appb-000002
可以根据公式
Figure PCTCN2022121597-appb-000003
确定。将第一消息的签名μ和许诺w 1进行字符串连接,使用哈希函数将第一消息的签名μ和许诺w 1的连接值映射到{0,1} 256域得到挑战
Figure PCTCN2022121597-appb-000004
即截取该连接值的前256个比特,若该连接值的比特不足256个,则随机产生指定的比特(±1或0)补齐,并将最终得到的值赋值给挑战
Figure PCTCN2022121597-appb-000005
Exemplarily, the challenge can be
Figure PCTCN2022121597-appb-000001
express. Optionally, challenge
Figure PCTCN2022121597-appb-000002
according to the formula
Figure PCTCN2022121597-appb-000003
Sure. Concatenate the signature μ of the first message and the promise w 1 , and use the hash function to map the concatenated value of the signature μ of the first message and the promise w 1 to {0,1} 256 fields to get the challenge
Figure PCTCN2022121597-appb-000004
That is, the first 256 bits of the connection value are intercepted. If the connection value has less than 256 bits, the specified bits (±1 or 0) are randomly generated to fill in, and the final value is assigned to the challenge
Figure PCTCN2022121597-appb-000005
在本申请实施例中,通过门限化数字签名方法,将密钥的功能拆分为由多个计算机设备共同行使,可以实现密钥的安全管理,并且在一定程度上抵抗侧信道攻击。In the embodiment of the present application, through the threshold digital signature method, the function of the key is divided into multiple computer devices, which can realize the security management of the key and resist side channel attacks to a certain extent.
结合第一方面,在第一方面的某些实现方式中,所述所述第一计算机设备根据所述第一预设参数、所述挑战和所述第一向量,确定所述应答,包括:所述第一计算机设备根据所述屏蔽向量、所述挑战和所述第一向量,确定第一应答份;所述第一计算机设备获取来自于所述a个计算机设备的a个应答份;所述第一计算机设备根据所述第一应答份和所述a个应答份,确定所述应答。With reference to the first aspect, in some implementation manners of the first aspect, the first computer device determines the response according to the first preset parameter, the challenge, and the first vector, including: The first computer device determines a first response share according to the mask vector, the challenge and the first vector; the first computer device acquires a response shares from the a computer device; The first computer device determines the response according to the first response share and the a response shares.
示例性地,挑战可以用
Figure PCTCN2022121597-appb-000006
表示。可选地,为了方便确定挑战
Figure PCTCN2022121597-appb-000007
的范围,可以指定挑战
Figure PCTCN2022121597-appb-000008
中有τ个项的系数为±1,256-τ个项的系数为0。若指定了挑战
Figure PCTCN2022121597-appb-000009
中系数为±1的数量,可以将此时的挑战
Figure PCTCN2022121597-appb-000010
定义为挑战c。
Exemplarily, the challenge can be
Figure PCTCN2022121597-appb-000006
express. Optionally, to facilitate the identification of challenges
Figure PCTCN2022121597-appb-000007
The scope of the challenge can be specified
Figure PCTCN2022121597-appb-000008
There are τ terms in which the coefficients are ±1, and 256-τ terms have coefficients of 0. If challenge is specified
Figure PCTCN2022121597-appb-000009
With a factor of ±1, the challenge at this time can be
Figure PCTCN2022121597-appb-000010
Defined as challenge c.
示例性地,第一应答份可以用[z]表示。可选地,第一应答份[z]可以根据公式[z]←[y]+c×[s 1]确定。应理解,第一应答份[z]为多项式。 Exemplarily, the first response share can be represented by [z]. Optionally, the first response share [z] can be determined according to the formula [z]←[y]+c×[s 1 ]. It should be understood that the first response share [z] is a polynomial.
示例性地,获取来自于所述a个计算机设备的a个应答份,可以是a个计算机设备根据屏蔽向量份[y]、挑战c和第一向量s i1来计算各自的应答份并发送给第一计算机设备。也可以是a个计算机设备中部分或全部计算机设备将各自的应答份发送给至少一个中间者,由至少一个中间者转发给第一计算机设备。 Exemplarily, to obtain a response share from the a computer device, it may be that a computer device calculates the respective response share according to the masked vector share [y], the challenge c and the first vector s i1 and sends it to A first computer device. It may also be that some or all of the computer devices in a computer device send their respective response shares to at least one intermediary, and at least one intermediary forwards them to the first computer device.
应理解,根据所述第一应答份[z]和所述a个计算机设备的应答份,可以得到应答z。It should be understood that the response z can be obtained according to the first response share [z] and the response share of the a computer device.
在本申请实施例中,通过门限化数字签名方法,将密钥的功能拆分为由多个计算机设备共同行使,可以实现密钥的安全管理,并且在一定程度上抵抗侧信道攻击。In the embodiment of the present application, through the threshold digital signature method, the function of the key is divided into multiple computer devices, which can realize the security management of the key and resist side channel attacks to a certain extent.
结合第一方面,在第一方面的某些实现方式中,所述所述第一计算机设备根据所述挑战、所述密钥参数的低位比特、所述第一矩阵、所述第一预设参数和所述第二向量,确定所述提示,包括:所述第一计算机设备根据所述挑战、所述密钥参数的低位比特、所述第一许诺中间份和所述第二向量确定第一提示份;所述第一计算机设备获取来自于所述a个计算机设备的a个提示份;所述第一计算机设备根据所述第一提示份和所述a个提示份,确定所述提示。With reference to the first aspect, in some implementation manners of the first aspect, the first computer device according to the challenge, the lower bits of the key parameter, the first matrix, the first preset parameter and the second vector, and determining the hint includes: the first computer device determining the first promise according to the challenge, the low-order bits of the key parameter, the first promise intermediate share, and the second vector One prompt share; the first computer device obtains a prompt share from the a computer device; the first computer device determines the prompt according to the first prompt share and the a prompt share .
示例性地,第一提示份可以用[h]表示。可选地,第一提示份[h]可以根据公式[h]←Thr-MakeHint(-c×t 0,[w]-c×[s 2]+c×t 0,2γ 2)确定。其中,Thr-MakeHint用于产生一比特的提示份[h]。一一比较比较[w]-c×[s 2]+c×t 0和[w]-c×[s 2]对应比特位的大小,若二者相等则[h]对应的比特位为1,否则[h]对应的比特位为0,[h]为由0和1组成的序列。 Exemplarily, the first prompt share can be represented by [h]. Optionally, the first hint share [h] can be determined according to the formula [h]←Thr-MakeHint(-c×t 0 ,[w]-c×[s 2 ]+c×t 0 ,2γ 2 ). Among them, Thr-MakeHint is used to generate a one-bit hint [h]. One by one compare [w]-c×[s 2 ]+c×t 0 and [w]-c×[s 2 ] the size of the corresponding bit, if the two are equal, the bit corresponding to [h] is 1 , otherwise the bit corresponding to [h] is 0, and [h] is a sequence consisting of 0 and 1.
示例性地,获取来自于所述a个计算机设备的a个提示份,可以是a个计算机设备计 算各自的提示份并发送给第一计算机设备。也可以是a个计算机设备中部分或全部计算机设备将各自的提示份发送给至少一个中间者,由至少一个中间者转发给第一计算机设备。Exemplarily, to obtain a reminder share from said a computer device, a computer device may calculate the respective reminder share and send it to the first computer device. It may also be that some or all of the computer devices in a computer device send their reminder shares to at least one intermediary, and the at least one intermediary forwards them to the first computer device.
应理解,根据所述第一提示份[h]和所述a个计算机设备的提示份,可以得到提示h。It should be understood that the prompt h can be obtained according to the first prompt share [h] and the prompt share of the a computer device.
在本申请实施例中,通过门限化数字签名方法,将密钥的功能拆分为由多个计算机设备共同行使,可以实现密钥的安全管理,并且在一定程度上抵抗侧信道攻击。In the embodiment of the present application, through the threshold digital signature method, the function of the key is divided into multiple computer devices, which can realize the security management of the key and resist side channel attacks to a certain extent.
结合第一方面,在第一方面的某些实现方式中,所述方法还包括:所述第一计算机设备接收来自于所述第二计算机设备的第二消息和所述第二消息的签名信息;所述第一计算机设备根据所述矩阵种子、所述密钥参数的高位比特对所述第二消息的签名信息进行验证。With reference to the first aspect, in some implementations of the first aspect, the method further includes: the first computer device receiving the second message and the signature information of the second message from the second computer device ; The first computer device verifies the signature information of the second message according to the high order bits of the matrix seed and the key parameter.
应理解,第一计算机设备不仅可以对消息M进行签名,还可以接收其他计算机设备发送的第二消息和所述第二消息的签名信息,然后对其进行验证。It should be understood that the first computer device can not only sign the message M, but also receive the second message sent by other computer devices and the signature information of the second message, and then verify it.
在本申请实施例中,通过门限化数字签名方法,将密钥的功能拆分为由多个计算机设备共同行使,可以实现密钥的安全管理,并且在一定程度上抵抗侧信道攻击。In the embodiment of the present application, through the threshold digital signature method, the function of the key is divided into multiple computer devices, which can realize the security management of the key and resist side channel attacks to a certain extent.
第二方面,本申请实施例提供一种计算机装置,该计算机装置包括用于实现第一方面或第一方面的任一种可能的实现方式的单元。In a second aspect, an embodiment of the present application provides a computer device, where the computer device includes a unit for implementing the first aspect or any possible implementation manner of the first aspect.
第三方面,本申请实施例提供一种计算机装置,该计算机装置包括处理器,该处理器用于与存储器耦合,读取并执行该存储器中的指令和/或程序代码,以执行第一方面或第一方面的任一种可能的实现方式。In a third aspect, an embodiment of the present application provides a computer device, the computer device includes a processor, the processor is used to be coupled with a memory, read and execute instructions and/or program codes in the memory, to perform the first aspect or Any possible implementation of the first aspect.
第四方面,本申请实施例提供一种芯片系统,该芯片系统包括逻辑电路,该逻辑电路用于与输入/输出接口耦合,通过该输入/输出接口传输数据,以执行第一方面或第一方面任一种可能的实现方式。In a fourth aspect, an embodiment of the present application provides a chip system, the chip system includes a logic circuit, the logic circuit is used to couple with an input/output interface, and transmit data through the input/output interface to perform the first aspect or the first Any possible implementation of the aspect.
第五方面,本申请实施例提供一种计算机可读存储介质,该计算机可读存储介质存储有程序代码,当该计算机存储介质在计算机上运行时,使得计算机执行如第一方面或第一方面的任一种可能的实现方式。In the fifth aspect, the embodiment of the present application provides a computer-readable storage medium, the computer-readable storage medium stores program codes, and when the computer storage medium is run on a computer, the computer executes the first aspect or the first aspect. any possible implementation of .
第六方面,本申请实施例提供一种计算机程序产品,该计算机程序产品包括:计算机程序代码,当该计算机程序代码在计算机上运行时,使得该计算机执行如第一方面或第一方面的任一种可能的实现方式。In a sixth aspect, an embodiment of the present application provides a computer program product, the computer program product comprising: computer program code, when the computer program code is run on a computer, the computer is made to execute any of the first aspect or the first aspect. One possible implementation.
附图说明Description of drawings
图1是本申请实施例提供的一种密钥生成算法场景示意图。FIG. 1 is a schematic diagram of a scenario of a key generation algorithm provided by an embodiment of the present application.
图2是本申请实施例提供的一种联合签名算法场景示意图。Fig. 2 is a schematic diagram of a joint signature algorithm scenario provided by the embodiment of the present application.
图3是本申请实施例提供的一种数字签名门限方法的示意性流程图。Fig. 3 is a schematic flowchart of a digital signature threshold method provided by an embodiment of the present application.
图4是本申请实施例提供的一种验证消息签名信息的示意性流程图。Fig. 4 is a schematic flow chart of verifying message signature information provided by an embodiment of the present application.
图5是本申请实施例提供的一种计算机装置的结构示例图。Fig. 5 is a structural example diagram of a computer device provided by an embodiment of the present application.
图6是本申请实施例提供的另一种计算机装置的结构示例图。FIG. 6 is a structural example diagram of another computer device provided by an embodiment of the present application.
图7是本申请实施例提供的一种计算机程序产品的示例图。Fig. 7 is an exemplary diagram of a computer program product provided by an embodiment of the present application.
具体实施方式Detailed ways
门限密码的主要目的是为了密钥的安全管理:为了解决密钥管理的单点失窃/失效问题,门限密码将密钥通过秘密共享方案(t-out-of-n secret sharing)拆分成n份并分发给n方 独立保管,其中任意的≥t方一起可在不恢复密钥的情况下行使密钥的功能,如解密或签名。而密钥的私密性对于任意小于t方来说是信息论意义的。除了密钥安全管理,门限密码还可以作为抵抗一定程度的侧信道攻击(first-order side channel attacks)的一种手段。虽然对于门限传统密码的研究已经相当充分,但现阶段对门限后量子签名算法的研究却很少。因此,对后量子签名算法进行门限化研究,无论从技术卡位角度还是实际应用角度来看,都有一定的现实意义。The main purpose of the threshold cipher is for key security management: in order to solve the problem of single-point theft/invalidation of key management, the threshold cipher splits the key into n Shares are distributed to n parties for independent storage, among which any ≥t parties can exercise the function of the key without recovering the key, such as decryption or signature. The privacy of the key is information-theoretic for any party smaller than t. In addition to key security management, threshold ciphers can also be used as a means of resisting a certain degree of side channel attacks (first-order side channel attacks). Although the research on threshold traditional cryptography has been quite sufficient, there is little research on threshold post-quantum signature algorithms at this stage. Therefore, research on the thresholding of post-quantum signature algorithms has certain practical significance no matter from the perspective of technical card position or practical application.
本申请以Crystals-Dilithium(简称Dilithium)以及其之前的演进算法GLP12和BG14为例,对后量子数字签名算法进行门限化研究。设计基于格的后量子数字签名方案的技术路线有两条,即哈希&签名(hash&sign)路线和菲亚特-沙米尔(Fiat-Shamir)路线。Dilithium属于Fiat-Shamir路线。Fiat-Shamir路线的计算流程可概括为三个步骤:“许诺”(commitment),利用随机预言(random oracle,RO)由许诺和被签名的消息生成“挑战”(challenge),由许诺中的随机数和签名密钥生成“应答”(response)。Dilithium的发展路程大致历经了L09→L12→GLP12→BG14→Dilithium。This application takes Crystals-Dilithium (Dilithium for short) and its previous evolution algorithms GLP12 and BG14 as examples to conduct threshold research on post-quantum digital signature algorithms. There are two technical routes for designing lattice-based post-quantum digital signature schemes, namely the hash&sign route and the Fiat-Shamir route. Dilithium belongs to the Fiat-Shamir route. The calculation process of the Fiat-Shamir route can be summarized into three steps: "commitment", using the random oracle (random oracle, RO) to generate a "challenge" (challenge) from the promise and the signed message, and the random oracle in the commitment Number and signing key to generate a "response". The development of Dilithium roughly went through L09→L12→GLP12→BG14→Dilithium.
Dilithium主要包括密钥生成算法Gen,签名算法Sign,和签名验证算法Verify。Fiat-Shamir路线的“许诺”、“挑战”和“应答”包含在Dilithium的签名算法Sign中。Dilithium mainly includes key generation algorithm Gen, signature algorithm Sign, and signature verification algorithm Verify. The "promise", "challenge" and "response" of the Fiat-Shamir route are included in Dilithium's signature algorithm Sign.
为便于理解本申请实施例,首先对本申请中涉及的一些定义做简单说明。In order to facilitate the understanding of the embodiments of the present application, some definitions involved in the present application are briefly described first.
1.R q=Z q[x]/(x n+1),R为实数,Z为整数。Z q代表小于q的整数的集合。Z q[x]代表关于x的多项式,且多项式的每一项的系数都为小于q的整数。R q代表最高项小于x n的关于x的多项式,其系数也为小于q的整数。其中q是一个素数,n是2的指数。例如,q=2 23-2 13+1,n=256。 1. R q =Z q [x]/(x n +1), where R is a real number and Z is an integer. Z q represents the set of integers smaller than q. Z q [x] represents a polynomial about x, and the coefficient of each item of the polynomial is an integer smaller than q. R q represents a polynomial with respect to x whose highest term is less than x n , and whose coefficients are also integers less than q. where q is a prime number and n is a power of 2. For example, q=2 23 -2 13 +1, n=256.
2.S k是R=Z[x]/(x n+1)的一个子集,且多项式S k的每一项的系数取值范围为[-k,k],Z[x]/(x n+1)代表系数为整数且最高项小于x n的关于x的多项式。 2. S k is a subset of R=Z[x]/(x n +1), and the coefficient value range of each item of polynomial S k is [-k, k], Z[x]/( x n + 1) represents a polynomial with respect to x whose coefficients are integers and whose highest term is less than x n .
3.哈希函数
Figure PCTCN2022121597-appb-000011
其中
Figure PCTCN2022121597-appb-000012
是阶数最高为n-1且最多有32个系数为-1或1(其余系数为0)的全体多项式。次数最高的项的次数叫多项式的阶数,阶数最高为n-1的全体多项式就是所有的多项式的阶数小于或者等于n-1的集合,即由常数,一次式,二次式,……,n-1次式组成的集合。例如,
Figure PCTCN2022121597-appb-000013
为有5个项的系数为-1或1,有27个项的系数为0的多项式。
3. Hash function
Figure PCTCN2022121597-appb-000011
in
Figure PCTCN2022121597-appb-000012
It is an overall polynomial with the highest order n-1 and at most 32 coefficients of -1 or 1 (the remaining coefficients are 0). The degree of the item with the highest degree is called the order of the polynomial, and the overall polynomial with the highest order n-1 is the set of all polynomials whose order is less than or equal to n-1, that is, a constant, a linear, a quadratic,... ..., a set of n-1 formulas. For example,
Figure PCTCN2022121597-appb-000013
is a polynomial with 5 terms having a coefficient of -1 or 1 and 27 terms having a coefficient of 0.
4.哈希函数H:{0,1} *→B τ,B τ表示多项式中,有τ个系数的值为1或-1,余下的系数为0。 4. Hash function H: {0,1} * → B τ , B τ means that in the polynomial, there are τ coefficients whose value is 1 or -1, and the remaining coefficients are 0.
5.
Figure PCTCN2022121597-appb-000014
代表返回值为true或是false的判断式。
5.
Figure PCTCN2022121597-appb-000014
Represents a judgment expression that returns true or false.
6.哈希函数是一种将长的输入压缩为短的输出的函数,当哈希函数具有抗碰撞性时就变成了抗碰撞哈希函数。本申请的签名方案中使用一个映射到{0,1} 384的抗碰撞哈希函数。抗碰撞性指的是,对于一个哈希函数,无法找到两个不同的输入拥有相同的输出,即对于满足x≠x’的x和x’,难以找到H(x)=H(x’)。 6. A hash function is a function that compresses a long input into a short output. When the hash function is anti-collision, it becomes an anti-collision hash function. A collision-resistant hash function mapped to {0,1} 384 is used in the signature scheme of this application. Anti-collision means that for a hash function, it is impossible to find two different inputs with the same output, that is, for x and x' satisfying x≠x', it is difficult to find H(x)=H(x') .
7.floor(x)函数,也可以用
Figure PCTCN2022121597-appb-000015
表示。其功能是“向下取整”,或者说“向下舍入”、“向零取舍”,即取不大于x的最大整数。
7. The floor(x) function can also be used
Figure PCTCN2022121597-appb-000015
express. Its function is to "round down", or "round down", "round to zero", that is, to take the largest integer not greater than x.
8.
Figure PCTCN2022121597-appb-000016
其功能是“向上取整”,即取不小于x的最大整数。
8.
Figure PCTCN2022121597-appb-000016
Its function is to "round up", that is, to take the largest integer not less than x.
9.mod为取模运算,求两个数相除的余数。9.mod is a modulo operation, which finds the remainder of the division of two numbers.
10.屏蔽向量(masking vector),为了避免某些需要保护的秘密向量暴露而生成用于掩盖秘密向量的随机向量。例如,私钥中的第一向量和第二向量为秘密向量。秘密向量是参与计算机设备私钥组成的向量,需要进行保密。10. Masking vector (masking vector), in order to avoid the exposure of some secret vectors that need to be protected, a random vector used to cover up the secret vector is generated. For example, the first vector and the second vector in the private key are secret vectors. The secret vector is a vector composed of private keys of participating computer equipment, which needs to be kept secret.
11.γ 1和γ 2为预设参数,γ 1和γ 2要足够大直到最终签名不会显示密钥,也要足够小直到签名不容易被伪造。 11. γ 1 and γ 2 are preset parameters. γ 1 and γ 2 should be large enough that the key will not be displayed in the final signature, and should be small enough that the signature cannot be easily forged.
12.|||| 代表多项式中系数的绝对值中最大的值。 12. |||| represents the largest value among the absolute values of the coefficients in the polynomial.
13.在非对称密码学中,加密和解密用的钥匙不同:通常一个是公开的,称为公钥(public key,pk)。另一个是保密的,称为私钥(secret key,sk)。13. In asymmetric cryptography, the keys used for encryption and decryption are different: usually one is public, called the public key (pk). The other is kept secret, called the private key (secret key, sk).
14.函数ExpandA用于将种子ρ∈{0,1} 256映射到数论变换(number theory transform,NTT)域表示的矩阵A∈R q k×l中。数论转换是一种计算折积的快速算法。计算折积的快速算法中最常用的一种是使用快速傅里叶变换,然而快速傅立叶变换必须做复数而且是浮点数的运算,因此计算量会比较大,而且浮点数运算产生的误差会比较大。使用数论转换只进行整数的运算,可以降低计算折积的复杂度。 14. The function ExpandA is used to map the seed ρ∈{0,1} 256 to the matrix A∈R q k×l represented by the number theory transform (NTT) domain. The number-theoretic transformation is a fast algorithm for computing convolutions. The most commonly used fast algorithm for calculating the convolution product is to use the fast Fourier transform. However, the fast Fourier transform must perform complex and floating-point operations, so the amount of calculation will be relatively large, and the error generated by floating-point operations will be relatively large. big. Using number-theoretic transformations to perform operations on integers only reduces the complexity of calculating the convolution product.
15.对于一个正整数α,定义r'=r mod±α为独一无二的元素r',满足-α/2<r'≤α/2(当α为偶数),及(α-1)/2≤r'≤(α-1)/2(当α为奇数)。15. For a positive integer α, define r'=r mod ± α as a unique element r', satisfying -α/2<r'≤α/2 (when α is an even number), and (α-1)/2 ≤r'≤(α-1)/2 (when α is an odd number).
16.对于一个正整数α,定义r'=r mod +α为独一无二的元素r',满足0<r'≤α。 16. For a positive integer α, define r'=r mod + α as a unique element r', satisfying 0<r'≤α.
17.在a,b均表示向量的前提下,a·b是两个向量的内积,a×b是两个向量的外积。17. On the premise that both a and b represent vectors, a·b is the inner product of two vectors, and a×b is the outer product of two vectors.
18.若字符串a为01,字符串b为10,则将a和b两个字符串进行连接可以得到0110。18. If the string a is 01 and the string b is 10, then the two strings a and b can be connected to get 0110.
为了更好的理解本申请中对后量子数字签名算法进行门限化的方案,本申请先介绍GLP12和BG14,它们很好地呈现了Fiat-Shamir路线:In order to better understand the scheme of thresholding the post-quantum digital signature algorithm in this application, this application first introduces GLP12 and BG14, which present the Fiat-Shamir route well:
GLP12的密钥生成算法Gen的基本代码如下:The basic code of GLP12's key generation algorithm Gen is as follows:
Figure PCTCN2022121597-appb-000017
Figure PCTCN2022121597-appb-000017
Figure PCTCN2022121597-appb-000018
Figure PCTCN2022121597-appb-000018
GLP12方案的缺点是由于需分别证明s 1,s 2,因此需产生相应的z 1,z 2,导致签名的尺寸较大。BG14解决了这个问题,仅仅证明s 1,因而只需产生z 1,大大减少了签名的尺寸。但是这同时会导致另一个问题,即因为签名中不包括z 2,因此无法验证t。BG14的解决思路是采用凑整(rounding)的方法,即签名验证算法只验证t中对应于s 1的部分。下面介绍这个基于GLP12发展而来BG14。 The disadvantage of the GLP12 scheme is that since s 1 and s 2 need to be proved separately, corresponding z 1 and z 2 need to be generated, resulting in a larger size of the signature. BG14 solves this problem, only needs to prove s 1 , thus only needs to generate z 1 , greatly reducing the size of the signature. But this also leads to another problem, that is, since z 2 is not included in the signature, t cannot be verified. The solution of BG14 is to use the rounding method, that is, the signature verification algorithm only verifies the part of t corresponding to s 1 . The following introduces BG14, which is developed based on GLP12.
BG14的密钥生成算法Gen的基本代码如下:The basic code of the key generation algorithm Gen of BG14 is as follows:
Figure PCTCN2022121597-appb-000019
Figure PCTCN2022121597-appb-000019
其中,HighBits用于提取高位比特位,LowBits用于提取低位比特。Among them, HighBits is used to extract high-order bits, and LowBits is used to extract low-order bits.
A×y中的每个系数w可表示为w=w 1·2γ 2+w 0,|w 0|≤γ 2,这样HighBits(A×y,2γ 2)则返回由所有w 1组成的向量,即A×y的高位比特。c是R q中的一个多项式,其系数中有τ个系数的值为1或-1,余下的系数为0。如果第一步计算z:=y+c×s 1就输出应答z是不安全的,因为密钥会被泄露,因此BG14使用拒绝采样的方法来避免z可能存在的密钥暴露风险。将参数β设置为多项式c×s i的最大可能系数,s i包括s 1和s 2,c×s i的最大可能系数为多项式向量c×s 1和c×s 2中系数绝对值中最大的值。由于c有τ个系数的值为1或-1并 且s i中的最大系数为η,因此β≤τ·η。如果应答z有任意一个系数大于等于γ 1-β,或者A×y-c×s 2有任意一个低位比特的系数大于等于γ 2-β,就拒绝采样并重新启动签名过程。对||z|| ≥γ 1-β进行检查是为了安全性,对||LowBits(A×y-c×s 2,2γ 2)|| ≥γ 2-β进行检查是为了安全性和正确性。签名过程不断循环重复,直到不满足这两个条件为止。 Each coefficient w in A×y can be expressed as w=w 1 ·2γ 2 +w 0 ,|w 0 |≤γ 2 , so HighBits(A×y,2γ 2 ) returns a vector consisting of all w 1 , that is, the upper bits of A×y. c is a polynomial in R q , among its coefficients, τ coefficients are 1 or -1, and the remaining coefficients are 0. If the first step is to calculate z:=y+c×s 1 , it is not safe to output the response z, because the key will be leaked, so BG14 uses the method of rejecting sampling to avoid the possible key exposure risk of z. Set the parameter β to the largest possible coefficient of the polynomial c×s i , s i includes s 1 and s 2 , the largest possible coefficient of c×s i is the largest of the absolute values of the coefficients in the polynomial vectors c×s 1 and c×s 2 value. Since c has τ coefficients with values of 1 or -1 and the largest coefficient in si is η, β≤τ·η. If any coefficient of response z is greater than or equal to γ 1 -β, or A×yc×s 2 has any coefficient of lower bits greater than or equal to γ 2 -β, reject sampling and restart the signature process. Checking ||z|| ≥γ 1 -β is for safety, and checking ||LowBits(A×yc×s 2 ,2γ 2 )|| ≥γ 2 -β is for safety and correctness sex. The signing process is repeated in a loop until these two conditions are not met.
BG14的签名验证算法Verify的基本代码如下:The basic code of BG14's signature verification algorithm Verify is as follows:
Figure PCTCN2022121597-appb-000020
Figure PCTCN2022121597-appb-000020
验证者首先计算A×z-c×t的高位比特w' 1,如果||z|| <γ 1-β并且c是由消息M和w' 1得到的哈希值,则签名验证通过。验证者验证的主要工作是验证HighBits(A×y,2γ 2)=HighBits(A×z-c×t,2γ 2),由于z=y+c×s 1,t=A×s 1+s 2,因此A×z-c×t=A×y-c×s 2,也就是验证HighBits(A×y,2γ 2)=HighBits(A×y-c×s 2,2γ 2)。理由是A×y-c×s 2的低位比特系数的最大值||LowBits(A×y-c×s 2,2γ 2)|| 小于γ 2-β,且c×s 2的系数值小于β,因此加上c×s 2到A×y-c×s 2的低位比特不足以导致进位进而影响A×y-c×s 2的高位比特(也就是A×y的高位比特)。 The verifier first calculates the high-order bit w' 1 of A×zc×t, if ||z|| 1 -β and c is the hash value obtained from the message M and w' 1 , the signature verification is passed. The main work of verifier verification is to verify HighBits(A×y,2γ 2 )=HighBits(A×zc×t,2γ 2 ), since z=y+c×s 1 , t=A×s 1 +s 2 , Therefore, A×zc×t=A×yc×s 2 , that is, verify HighBits(A×y,2γ 2 )=HighBits(A×yc×s 2 ,2γ 2 ). The reason is that the maximum value of the low bit coefficient of A×yc×s 2 ||LowBits(A×yc×s 2 ,2γ 2 )|| is less than γ 2 -β, and the coefficient value of c×s 2 is smaller than β, so Adding the lower bits of c×s 2 to A×yc×s 2 is not enough to cause a carry to affect the upper bits of A×yc×s 2 (that is, the upper bits of A×y).
Dilithium经由优化上述BG14的基本方案而成,其优化思路如下:Dilithium is formed by optimizing the basic scheme of BG14 above, and its optimization ideas are as follows:
BG14的基本方案的最突出问题是公钥pk的尺寸很大,其包括一个由k×l个多项式组成的矩阵A,每个多项式有多达256个23比特的系数。Dilithium采用的解决方案是使用一个公开种子ρ来生成矩阵A。The most prominent problem of the basic scheme of BG14 is that the size of the public key pk is very large, which includes a matrix A composed of k×l polynomials, and each polynomial has up to 256 coefficients of 23 bits. The solution adopted by Dilithium is to use a public seed ρ to generate the matrix A.
Dilithium采用了额外的压缩技术来压缩公钥元素t的size。理由是当验证者计算w' 1(签名验证函数Verify的第1行),A×z-c×t的高位比特实际上并不太多依赖t的低位比特,因为t会与一个权重很低的多项式c相乘。在真正的Dilithium方案中,t的一些低位比特会被舍弃,因此验签者可能无法计算A×z-c×t的一些高位比特。为了弥补对t低位比特的舍弃,数字签名生成算法会添补一些提示(hints)比特作为签名的一部分,这些“hints”比特实际上是在加上c×t的那些舍弃的低位比特而得到的进位。 Dilithium uses additional compression techniques to compress the size of the public key element t. The reason is that when the verifier calculates w' 1 (line 1 of the signature verification function Verify), the high-order bits of A×zc×t actually do not depend much on the low-order bits of t, because t will be related to a polynomial with a very low weight c is multiplied. In the real Dilithium scheme, some low-order bits of t will be discarded, so the sign verifier may not be able to calculate some high-order bits of A×zc×t. In order to make up for the discarding of the low-order bits of t, the digital signature generation algorithm will add some hints (hints) bits as part of the signature. These "hints" bits are actually the carry obtained by adding the discarded low-order bits of c×t .
为了压缩公钥的尺寸,Dilithium需要提取Z q元素的高位比特和低位比特。其目的如下:当给定一个任意元素r∈Z q和另一个小元素z∈Z q,Dilithium想在不保存z的情况下恢复r+z的高位比特。为此需要定义这样的算法,以r、z为输入并产生一个比特的“hint”h,以后只需r和h即可计算r+z的高位比特。这个一比特h实际上使计算r+z过程中产生的进位。Power2Round q和Decompose q算法可用于提取高位比特和低位比特。 In order to compress the size of the public key, Dilithium needs to extract the high-order bits and low-order bits of the Z q element. Its purpose is as follows: when given an arbitrary element r∈Z q and another small element z∈Z q , Dilithium wants to recover the upper bits of r+z without saving z. To this end, it is necessary to define such an algorithm, which takes r and z as input and generates a "hint" h of one bit, and then only r and h can be used to calculate the high-order bits of r+z. This one bit h actually makes the carry generated during the calculation of r+z. Power2Round q and Decompose q algorithms can be used to extract high and low bits.
Power2Round q:直观地在Z q元素的比特表现形式上将元素r分解为r=r 1×2 d+r 0,其中r 0=r mod ±2 d,r 1=(r-r 0)/2 d。对于一个正整数α,定义r 0=r mod ±α为独一无二的元素r 0,满足-α/2<r 0≤α/2(当α为偶数),及(α-1)/2≤r 0≤(α-1)/2(当α为奇数)。 Power2Round q : Decompose the element r into r=r 1 ×2 d +r 0 intuitively on the bit representation of Z q elements, where r 0 =r mod ± 2 d , r 1 =(rr 0 )/2 d . For a positive integer α, define r 0 =r mod ± α as a unique element r 0 , satisfying -α/2<r 0 ≤α/2 (when α is an even number), and (α-1)/2≤r 0 ≤ (α-1)/2 (when α is an odd number).
Decompose q:Power2Round q的问题是对于边界情况floor(q/2 d)与q之间的距离可能会 很小。原因是如果选择r 1为0到
Figure PCTCN2022121597-appb-000021
之间的非负整数,任意r 1·2 d与r 1'·2 d之间的距离mod q通常≥2 d(因为|r 1-r 1'|≥1)。除了边界情况,特别是,
Figure PCTCN2022121597-appb-000022
与0之间的距离mod q将会非常小。因此r加上一个小元素可能会引起r的高位比特变化超过1。这与Dilithium只想产生一比特“hint”的想法相抵触。
Decompose q : The problem with Power2Round q is that the distance between floor(q/2 d ) and q may be small for the boundary case. The reason is that if r is chosen to be 1 from 0 to
Figure PCTCN2022121597-appb-000021
Between non-negative integers, the distance mod q between any r 1 ·2 d and r 1 '·2 d is usually ≥2 d (because |r 1 -r 1 '|≥1). Except for edge cases, in particular,
Figure PCTCN2022121597-appb-000022
The distance mod q from 0 will be very small. Thus adding a small element to r may cause the high-order bits of r to change by more than 1. This contradicts the idea that Dilithium only wants to generate a one-bit "hint".
解决方法是选取α作为q-1的除数,q-1能够被α整除,及分解r=r 1·α+r 0。此时选择r 1为0到
Figure PCTCN2022121597-appb-000023
之间的非负整数,可能的r 1·α's是{0,α,2α,...,q-1},两两之间等距,此时的r 1·α's代表r 1·α的可能值。由于q-1和0之间的距离是1(因为(q-1+1)mod q=0),因此把q-1在集合中移除,且简单地将相对应的r 1当作0。因为q-1和0只相差1,因此只需将r 0减1。
The solution is to choose α as the divisor of q-1, q-1 can be divisible by α, and decompose r=r 1 ·α+r 0 . At this point select r 1 from 0 to
Figure PCTCN2022121597-appb-000023
The non-negative integers between, the possible r 1 ·α's are {0,α,2α,...,q-1}, equidistant between each pair, at this time r 1 ·α's represents r 1 ·α possible value. Since the distance between q-1 and 0 is 1 (since (q-1+1) mod q=0), remove q-1 from the set and simply treat the corresponding r + 1 as 0 . Since q-1 and 0 only differ by 1, just subtract 1 from r 0 .
Dilithium会用到下列支撑算法:Dilithium will use the following supporting algorithms:
Power2Round q的基本代码如下: The basic code of Power2Round q is as follows:
Figure PCTCN2022121597-appb-000024
Figure PCTCN2022121597-appb-000024
Figure PCTCN2022121597-appb-000025
Figure PCTCN2022121597-appb-000025
Dilithium包括两个版本,随机签名方案(randomized signing)和确定签名方案(deterministic signing)。两者的差别在于签名算法用到的随机数的产生方式。前者是直接使用随机数,而后者的随机数是利用随机数生成器由被签名的消息和签名私钥生成的。Dilithium includes two versions, randomized signing and deterministic signing. The difference between the two lies in the way the random numbers used in the signature algorithm are generated. The former uses random numbers directly, while the latter uses random number generators to generate signed messages and signature private keys.
下面以随机签名方案为例,介绍一下Dilithium的基本方案。The following takes the random signature scheme as an example to introduce the basic scheme of Dilithium.
其中,Dilithium的密钥生成算法Gen的基本代码如下:Among them, the basic code of Dilithium's key generation algorithm Gen is as follows:
Figure PCTCN2022121597-appb-000026
Figure PCTCN2022121597-appb-000026
Figure PCTCN2022121597-appb-000027
Figure PCTCN2022121597-appb-000027
密钥生成算法Gen使用一个公开种子ρ生成一个k×l矩阵A,矩阵中的每一个元素都是R q=Z q[x]/(x n+1)中的一个多项式,每个多项式都有n个项。该算法对随机密钥向量s 1和s 2进行采样,即从S η l中随机生成s 1,从S η k中随机生成s 2。随机密钥向量s 1和s 2的每一项都是R q的一个元素,且系数最大为η。最后,计算密钥的第二部分t 1和t 0。该方案中的所有代数运算都在多项式环R q上。 The key generation algorithm Gen uses a public seed ρ to generate a k×l matrix A, each element in the matrix is a polynomial in R q =Z q [x]/(x n +1), and each polynomial is There are n items. The algorithm samples random key vectors s 1 and s 2 , that is, s 1 is randomly generated from S η l , and s 2 is randomly generated from S η k . Each entry of the random key vectors s1 and s2 is an element of Rq with a coefficient up to η. Finally, the second part t 1 and t 0 of the key are calculated. All algebraic operations in this scheme are on the polynomial ring Rq .
Dilithium的签名算法Sign的基本代码如下:The basic code of Dilithium's signature algorithm Sign is as follows:
Figure PCTCN2022121597-appb-000028
Figure PCTCN2022121597-appb-000028
Figure PCTCN2022121597-appb-000029
Figure PCTCN2022121597-appb-000029
本申请实施例是在完全遵循上述Dilithium算法规范中的参数情况下,利用安全多方计算技术(multiparty computation,MPC)来实现门限Dilithium方案。The embodiment of the present application implements the threshold Dilithium scheme by using secure multiparty computation technology (multiparty computation, MPC) under the condition of fully following the parameters in the above-mentioned Dilithium algorithm specification.
本申请实施例所设计的门限Dilithium方案完全遵循原Dilithium规范中的参数。主要思路是使用特定的实用化的安全多方计算技术来门限化Dilithium。由于门限化Dilithium将不影响原方案的签名验证算法Verify,因此本申请只需门限化密钥生成函数和签名函数,而保持验证函数不变。The threshold Dilithium scheme designed in the embodiment of the present application completely complies with the parameters in the original Dilithium specification. The main idea is to use a specific practical secure multi-party computing technology to threshold Dilithium. Since the thresholded Dilithium will not affect the signature verification algorithm Verify of the original scheme, this application only needs to threshold the key generation function and signature function, and keep the verification function unchanged.
由于完全未改变Dilithium的规范,再辅以安全多方计算技术,其过程无泄露秘密信息,如密钥、中间状态等,因此门限Dilithium方案的安全性得以保证,从而无需重新证明门限方案的安全性。在保证安全的情况下,由于安全多方计算的效率较低,为了效率 只在绝对必要的情况下使用安全多方计算。Since the specifications of Dilithium have not been changed at all, and supplemented by secure multi-party computing technology, the process does not leak secret information, such as keys, intermediate states, etc., so the security of the threshold Dilithium scheme is guaranteed, so there is no need to re-prove the security of the threshold scheme . In the case of ensuring security, due to the low efficiency of secure multi-party computing, secure multi-party computing is only used when absolutely necessary for efficiency.
下面将结合附图,对本申请实施例中的技术方案进行描述。The technical solutions in the embodiments of the present application will be described below with reference to the accompanying drawings.
图1是本申请实施例提供的一种密钥生成算法场景示意图。FIG. 1 is a schematic diagram of a scenario of a key generation algorithm provided by an embodiment of the present application.
假设系统中有m个计算机设备,其中任意的≥p方一起可在不恢复密钥的情况下行使私钥sk的功能。m个用户通过秘密共享方案将私钥sk分为m份,从而每个计算机设备i得到私钥sk的一个私钥份sk iAssuming that there are m computer devices in the system, any ≥p parties among them can exercise the function of the private key sk without recovering the key. m users divide the private key sk into m shares through the secret sharing scheme, so that each computer device i obtains a private key share sk i of the private key sk.
图2是本申请实施例提供的一种联合签名算法场景示意图。Fig. 2 is a schematic diagram of a joint signature algorithm scenario provided by the embodiment of the present application.
应理解,在实际场景中仅需m个计算机设备各自生成自己的密钥份sk i,在需要联合签名的时候由≥p个计算机设备共同签名即可完成私钥sk的功能。 It should be understood that in an actual scenario, only m computer devices are required to generate their own key shares sk i , and when a joint signature is required, ≥ p computer devices can jointly sign to complete the function of the private key sk.
示例性地,当m=5,p=3时,系统中有5个计算机设备A、B、C、D、E,他们分别对应私钥份sk 1、sk 2、sk 3、sk 4、sk 5。一则信息M需要至少3个计算机设备使用各自的私钥份才能对该消息进行签名,即5个计算机设备A、B、C、D、E中任意的至少三个计算机设备的sk i可以在不恢复私钥sk的情况下完成对消息M的签名。签名过程中任何一个计算机设备无法获取其他计算机设备的私钥份或与私钥sk有关的有用信息。 Exemplarily, when m=5, p=3, there are 5 computer devices A, B, C, D, E in the system, and they respectively correspond to private key shares sk 1 , sk 2 , sk 3 , sk 4 , sk 5 . A piece of information M needs at least three computer devices to use their respective private keys to sign the message, that is, the ski of any at least three computer devices among the five computer devices A, B, C, D, and E can be in Complete the signing of the message M without recovering the private key sk. During the signature process, any computer device cannot obtain the private key shares of other computer devices or useful information related to the private key sk.
门限Dilithium方案包括两个算法,门限密钥生成算法和门限联合签名算法。The threshold Dilithium scheme includes two algorithms, the threshold key generation algorithm and the threshold joint signature algorithm.
安全多方计算会用到下述重要标识:对于一个数值x,[x]表示按照所约定的秘密共享方案,x已拆分成秘密份(shares)且每份已传递到相应用户的手中,[x]也可以用x i表示,代表第i个用户得到的第i份x。作用于[x]的操作则表示≥p个用户使用各自的秘密份参与的相应的安全多方计算操作,如[x]+[y]表示≥p个用户分别使用其所拥有的x的秘密份和y的秘密份而参与计算x+y。常用的秘密共享方案为Shamir t-out-of-n秘密共享方案,n-out-of-n秘密共享方案,或其它的线性秘密共享方案。 Secure multi-party computation will use the following important signs: For a value x, [x] means that according to the agreed secret sharing scheme, x has been split into secret shares (shares) and each share has been delivered to the corresponding user, [ x] can also be represented by xi , representing the i-th share of x obtained by the i-th user. The operation acting on [x] means that ≥p users use their respective secret shares to participate in the corresponding secure multi-party computing operation, such as [x]+[y] means that ≥p users use their own secret shares of x and the secret share of y to participate in the calculation of x+y. Commonly used secret sharing schemes are Shamir t-out-of-n secret sharing schemes, n-out-of-n secret sharing schemes, or other linear secret sharing schemes.
图3是本申请实施例提供的一种数字签名门限方法的示意性流程图。Fig. 3 is a schematic flowchart of a digital signature threshold method provided by an embodiment of the present application.
S310,获取第一矩阵。S310. Acquire a first matrix.
示例性地,第一矩阵可以用矩阵A表示。可选地,矩阵A可以根据公式A∈R q k×l:=ExpandA(ρ)确定。其中,矩阵A为k×l的矩阵,矩阵A中的每一个元素都是多项式,每一个多项式可以由公开种子ρ随机生成,且每一个多项式的系数都是小于q的整数,q是一个素数。 Exemplarily, the first matrix can be represented by matrix A. Optionally, the matrix A can be determined according to the formula A∈R q k×l :=ExpandA(ρ). Among them, matrix A is a matrix of k×l, each element in matrix A is a polynomial, each polynomial can be randomly generated by the public seed ρ, and the coefficient of each polynomial is an integer smaller than q, q is a prime number .
可选地,获取矩阵A的方式可以是第一计算机设备通过公开种子ρ随机生成矩阵A,也可以使用预设的矩阵A,或者矩阵A也可以由多个计算机设备共同生成。例如,k=5,l=6,则矩阵A为5行6列的矩阵。其中,第一计算机设备生成矩阵A的其中一行元素,第二计算机设备生成剩下四行元素。或者,第一计算机设备生成矩阵A的其中一列元素,第二计算机设备生成另一列元素,第三计算机设备生成剩下四列元素。矩阵A的具体生成方式本申请不作限定。Optionally, the way to obtain matrix A may be that the first computer device randomly generates matrix A by publicizing the seed ρ, or a preset matrix A may be used, or matrix A may also be jointly generated by multiple computer devices. For example, k=5, l=6, then the matrix A is a matrix with 5 rows and 6 columns. Wherein, the first computer device generates one row of elements of the matrix A, and the second computer device generates the remaining four rows of elements. Alternatively, the first computer device generates one column of elements of matrix A, the second computer device generates another column of elements, and the third computer device generates the remaining four columns of elements. The specific way of generating the matrix A is not limited in this application.
应理解,矩阵A对于系统中m个计算机设备来说是公开的,也就是每个计算机设备都可以获得矩阵A。生成矩阵A的计算机设备可以将得到的矩阵A分发给系统中m个计算机设备。m个计算机设备也可以直接使用预设的矩阵A。It should be understood that the matrix A is public to the m computer devices in the system, that is, each computer device can obtain the matrix A. The computer device that generates matrix A can distribute the obtained matrix A to m computer devices in the system. The m computer devices can also directly use the preset matrix A.
S320,确定第一向量和第二向量。S320. Determine a first vector and a second vector.
示例性地,第一向量可以是s i1,第二向量可以是s i2。第一向量也可以表示为[s 1],第二向量也可以表示为[s 2]。第一向量和第二向量可以称为随机密钥向量份,因为第一向量 和第二向量参与密钥的生成且产生方式随机。第一计算机设备生成随机密钥向量份s i1和s i2,可选地,随机密钥向量份s i1和s i2可以由公式([s 1],[s 2])←Thr-RandNum(η) n×l+n×k确定。Thr-RandNum(η)算法用于生成一个绝对值≤η的随机数。其中,s i1有l个多项式,s i2有k个多项式,每个多项式包含n项,每一项的系数的绝对值都小于等于η。η为预设参数,n为正整数。 Exemplarily, the first vector may be s i1 , and the second vector may be s i2 . The first vector can also be expressed as [s 1 ], and the second vector can also be expressed as [s 2 ]. The first vector and the second vector may be referred to as random key vector shares, because the first vector and the second vector participate in key generation in a random manner. The first computer device generates random key vector shares s i1 and s i2 , optionally, the random key vector shares s i1 and s i2 can be formulated by the formula ([s 1 ],[s 2 ])←Thr-RandNum(η ) n×l+n×k is determined. The Thr-RandNum(η) algorithm is used to generate a random number whose absolute value ≤ η. Among them, s i1 has l polynomials, s i2 has k polynomials, each polynomial contains n items, and the absolute value of the coefficient of each item is less than or equal to η. η is a preset parameter, and n is a positive integer.
S330,确定第一密钥参数份。S330. Determine a first key parameter share.
示例性地,第一密钥参数份可以用[t]表示。第一密钥参数份[t]可以根据公式[t]=A×[s 1]+[s 2]确定。应理解,在a 1,b 1均表示向量的前提下,a 1·b 1是两个向量的内积,a 1×b 1是两个向量的外积。 Exemplarily, the first key parameter share can be represented by [t]. The first key parameter share [t] can be determined according to the formula [t]=A×[s 1 ]+[s 2 ]. It should be understood that on the premise that a 1 and b 1 both represent vectors, a 1 ·b 1 is the inner product of the two vectors, and a 1 ×b 1 is the outer product of the two vectors.
S340,接收来自于a个计算机设备的a个密钥参数份。S340. Receive a key parameter shares from a computer device.
a为大于或等于p-1的正整数,p为秘密共享方案的最小用户数目。根据大于等于p个用户的密钥参数份[t]可以得到密钥参数t。因此第一计算机设备接收来自于a个计算机设备的a个密钥参数份可以得到密钥参数t。a is a positive integer greater than or equal to p-1, and p is the minimum number of users in the secret sharing scheme. The key parameter t can be obtained according to the key parameter shares [t] of more than or equal to p users. Therefore, the first computer device receives a key parameter share from a computer device to obtain the key parameter t.
应理解,s 1和s 2满足s 1=MPC(s 11,…,s i1,…),s 2=MPC(s 12,…,s i2,…)。即在选定安全多方计算方案后,可以根据大于等于p个计算机设备的参数份得到该参数。示例性地,可以选定线性秘密共享方案(linear secret sharing scheme,LSSS),即s 1=LSSS(s 11,…,s i1,…),s 2=LSSS(s 12,…,s i2,…),t=LSSS(t 1,…,t i,…),i小于等于p。示例性地,若第一计算机设备接收到p-1个计算机设备的p-1个密钥参数份,则t=LSSS(t 1,…,t i,…,t p)。 It should be understood that s 1 and s 2 satisfy s 1 =MPC(s 11 ,...,s i1 ,...), s 2 =MPC(s 12 ,...,s i2 ,...). That is, after the secure multi-party computing scheme is selected, the parameter can be obtained according to the parameter shares of more than or equal to p computer devices. Exemplarily, a linear secret sharing scheme (LSSS) may be selected, that is, s 1 =LSSS(s 11 ,...,s i1 ,...), s 2 =LSSS(s 12 ,...,s i2 , ...), t=LSSS(t 1 ,...,t i ,...), i is less than or equal to p. Exemplarily, if the first computer device receives p-1 key parameter shares of p-1 computer devices, then t=LSSS(t 1 ,...,t i ,...,t p ).
应理解,a个计算机设备仅需发送各自的密钥参数份[t]即可,也就是说密钥参数t的生成并没有暴露各个计算机设备的[s 1]和[s 2]。 It should be understood that a computer device only needs to send its own key parameter share [t], that is to say, the generation of the key parameter t does not expose [s 1 ] and [s 2 ] of each computer device.
S350,确定密钥参数的高位比特和低位比特。S350. Determine the high-order bits and low-order bits of the key parameter.
示例性地,可以根据公式(t 1,t 0)←Power2Round q(t,d)得到密钥参数t的高位比特和低位比特。Power2Round q函数可以将t分解为t=t 1·2 d+t 0,d为大于0的整数,t 1为密钥参数t的高位比特,t 0为密钥参数t的低位比特。 Exemplarily, the high-order bits and low-order bits of the key parameter t can be obtained according to the formula (t 1 ,t 0 )←Power2Round q (t,d). The Power2Round q function can decompose t into t=t 1 ·2 d +t 0 , where d is an integer greater than 0, t 1 is the high-order bit of the key parameter t, and t 0 is the low-order bit of the key parameter t.
S360,确定第一随机数。S360. Determine a first random number.
示例性地,第一随机数可以用tr表示。可选地,tr可以根据公式tr∈{0,1} 384←CRH(ρ||t 1)确定。将公开种子ρ和密钥参数t的高位比特t 1进行字符串连接,使用抗碰撞哈希函数将公开种子ρ和密钥参数t的高位比特t 1的连接值映射到{0,1} 384域得到tr,即截取该连接值的前384个比特,若该连接值的比特不足384个,则随机产生指定的比特(±1或0)补齐,并将最终得到的值赋值给tr。 Exemplarily, the first random number may be represented by tr. Optionally, tr can be determined according to the formula tr∈{0,1} 384 ←CRH(ρ||t 1 ). Concatenate the public seed ρ and the high-order bit t 1 of the key parameter t, and map the concatenated value of the public seed ρ and the high-order bit t 1 of the key parameter t to {0,1} using a collision-resistant hash function 384 domain to obtain tr, that is, intercept the first 384 bits of the connection value, if the connection value has less than 384 bits, randomly generate the specified bits (±1 or 0) to fill in, and assign the final value to tr.
S370,确定第一消息的签名信息。S370. Determine signature information of the first message.
可以根据第一向量、第二向量、密钥参数的低位比特、第一随机数和矩阵种子,来确定第一消息的签名信息。示例性地,第一消息的签名信息可以表示为
Figure PCTCN2022121597-appb-000030
第一消息的签名信息包括应答z,提示h和挑战
Figure PCTCN2022121597-appb-000031
The signature information of the first message may be determined according to the first vector, the second vector, the lower bits of the key parameter, the first random number and the matrix seed. Exemplarily, the signature information of the first message can be expressed as
Figure PCTCN2022121597-appb-000030
The signature information of the first message includes answer z, prompt h and challenge
Figure PCTCN2022121597-appb-000031
S380,所述第一计算机设备向第二计算机设备发送所述第一消息和第一消息的签名信息。S380. The first computer device sends the first message and signature information of the first message to a second computer device.
第一计算机设备向验证者发送第一消息和第一消息的签名信息,验证者将会根据收到的第一计算机设备发来的信息,对消息进行验证。The first computer device sends the first message and the signature information of the first message to the verifier, and the verifier will verify the message according to the information received from the first computer device.
图4是本申请实施例提供的一种验证消息签名信息的示意性流程图。Fig. 4 is a schematic flow chart of verifying message signature information provided by an embodiment of the present application.
S410,接收来自于所述第二计算机设备的第二消息和所述第二消息的签名信息。S410. Receive a second message and signature information of the second message from the second computer device.
当第一计算机设备为签名消息的验证者时,接收来自于所述第二计算机设备的第二消息和所述第二消息的签名信息。When the first computer device is a verifier of the signed message, receiving the second message and the signature information of the second message from the second computer device.
S410,对第二消息的签名信息进行验证。S410. Verify the signature information of the second message.
第一计算机设备利用公钥对第二消息的签名信息进行验证。公钥可以包括生成矩阵的公开种子ρ,密钥参数的高位比特t 1The first computer device verifies the signature information of the second message by using the public key. The public key may include the public seed ρ of the generator matrix, and the upper bits t 1 of the key parameters.
本申请所需要的具体安全多方计算算法如下:The specific secure multi-party computation algorithm required by this application is as follows:
随机比特生成(random bit generation)[b]=MPCRb():该算法在≥p个用户中生成一个共享的随机比特[b],即每个用户得到一个关于该比特的秘密份。Random bit generation (random bit generation)[b]=MPCRb(): This algorithm generates a shared random bit[b] among ≥p users, that is, each user gets a secret share about this bit.
小于比较(less than comparison)[b]=MPCLt([x],[y]):给定两个共享值[x]和[y]作为输入(即每个用户持有一个x的秘密份和一个y的秘密份),该算法输出一个共享比特[b](即每个用户得到一个关于该比特的秘密份):如果x<y,则b=1,否则b=0。Less than comparison (less than comparison)[b]=MPCLt([x],[y]): Given two shared values [x] and [y] as input (that is, each user holds a secret share of x and A secret share of y), the algorithm outputs a shared bit [b] (that is, each user gets a secret share about this bit): if x<y, then b=1, otherwise b=0.
相等比较(equality comparison)[b]=MPCEq([x],[y]):给定两个共享值[x]和[y]作为输入,该算法输出一个共享比特[b]:如果x=y,则b=1,否则b=0。Equality comparison [b] = MPCEq([x], [y]): given two shared values [x] and [y] as input, the algorithm outputs a shared bit [b]: if x = y, then b=1, otherwise b=0.
取模规约(modulo reduction)[x’]=MPCMod([x],m):给定一个共享值[x]和一个公共模数m作为输入,该算法输出一个共享值[x’]:x’=x mod m。Modulo reduction [x'] = MPCMod([x], m): Given a shared value [x] and a public modulus m as input, the algorithm outputs a shared value [x']: x '=x mod m.
本申请数字签名门限方法需要用到如下支撑算法,算法名的头部Thr代表门限(threshold):The digital signature threshold method of this application needs to use the following supporting algorithms, and the header Thr of the algorithm name represents the threshold (threshold):
Figure PCTCN2022121597-appb-000032
Figure PCTCN2022121597-appb-000032
Figure PCTCN2022121597-appb-000033
Figure PCTCN2022121597-appb-000033
Figure PCTCN2022121597-appb-000034
Figure PCTCN2022121597-appb-000034
Figure PCTCN2022121597-appb-000035
Figure PCTCN2022121597-appb-000035
可选的,也可以在门限Dilithium的联合签名算法Thr-Sign的第15行,令二者相等时[h]对应的比特位为0,否则[h]对应的比特位为1,然后在第16行统计[h]中0的数量,在17行中将判断条件对应改为h中0的数量大于预设参数。Optionally, in line 15 of the joint signature algorithm Thr-Sign of the threshold Dilithium, set the bit corresponding to [h] to be 0 when the two are equal, otherwise the bit corresponding to [h] is 1, and then Line 16 counts the number of 0s in [h], and in line 17, change the judgment condition to the number of 0s in h greater than the preset parameter.
以上所述,仅为本申请的具体实施方式,本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的关于Dilithium和其演进及变形算法的门限方法,都应涵盖在本申请的保护范围之内。例如,也可以使用类似的秘密共享方法和相应的门限支撑算法对BG14和GLP12算法进行门限化。The above is only the specific implementation of this application. Within the technical scope disclosed in this application, those skilled in the art can easily think of the threshold method about Dilithium and its evolution and deformation algorithm, which should be covered in this application. within the scope of protection. For example, the BG14 and GLP12 algorithms can also be thresholded using a similar secret sharing method and the corresponding threshold support algorithm.
以上描述了根据本申请实施例的数字签名门限方法,下面分别结合图5和图6描述根据本申请实施例的装置和设备。The digital signature threshold method according to the embodiment of the present application has been described above, and the apparatus and equipment according to the embodiment of the present application will be described below with reference to FIG. 5 and FIG. 6 respectively.
本申请实施例还提供了一种计算机存储介质,该计算机存储介质中存储有程序指令,所述程序执行时可包括如图3、图4对应实施例中的数字签名门限方法的部分或全部步骤。The embodiment of the present application also provides a computer storage medium, the computer storage medium stores program instructions, and when the program is executed, it may include some or all steps of the digital signature threshold method in the corresponding embodiments as shown in Fig. 3 and Fig. 4 .
图5为本申请实施例提供的一种计算机装置的结构示例图。该计算机装置600包括获取模块610,处理模块620和发送模块630。FIG. 5 is a structural example diagram of a computer device provided by an embodiment of the present application. The computer device 600 includes an acquisition module 610 , a processing module 620 and a sending module 630 .
其中,获取模块610,用于获取第一矩阵和至少p-1个用户的密钥参数份,执行图3方法中的S310和S340。Wherein, the obtaining module 610 is configured to obtain the first matrix and key parameter shares of at least p-1 users, and execute S310 and S340 in the method in FIG. 3 .
获取模块610,还用于获取第二消息和第二消息的签名信息,执行图4方法中的S410。The acquiring module 610 is further configured to acquire the second message and the signature information of the second message, and execute S410 in the method in FIG. 4 .
处理模块620,用于根据第一矩阵、第一向量、第一密钥参数份、密钥参数和第一随机数确定第一消息的签名信息,执行图3的方法中的部分或全部步骤。The processing module 620 is configured to determine the signature information of the first message according to the first matrix, the first vector, the first key parameter share, the key parameter and the first random number, and execute some or all of the steps in the method in FIG. 3 .
处理模块620,用于对第二消息的签名信息进行验证,执行图4的方法中的S420。The processing module 620 is configured to verify the signature information of the second message, and execute S420 in the method in FIG. 4 .
发送模块630,用于发送第一消息和第一消息的签名信息给第二计算机设备。A sending module 630, configured to send the first message and the signature information of the first message to the second computer device.
图6为本申请实施例提供的另一种计算机装置1300的结构示例图。计算机装置1300包括处理器1302、通信接口1303和存储器1304。计算机装置1300的一种示例为芯片。计算机装置1300的另一种示例为计算设备。FIG. 6 is a structural example diagram of another computer device 1300 provided in the embodiment of the present application. The computer device 1300 includes a processor 1302 , a communication interface 1303 and a memory 1304 . One example of computer device 1300 is a chip. Another example of computer apparatus 1300 is a computing device.
上述本发明实施例揭示的方法可以应用于处理器1302中,或者由处理器1302实现。处理器1302可以是中央处理器(central processing unit,CPU),还可以是其他通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。在实现过程中,上述方法的各步骤可以通过处理器1302中的硬件的集成逻辑电路或者软件形式的指令完成。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。The methods disclosed in the foregoing embodiments of the present invention may be applied to the processor 1302 or implemented by the processor 1302 . Processor 1302 can be a central processing unit (central processing unit, CPU), and can also be other general-purpose processors, digital signal processors (digital signal processors, DSP), application specific integrated circuits (application specific integrated circuits, ASICs), on-site Programmable gate array (field programmable gate array, FPGA) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. A general purpose processor may be a microprocessor or any conventional processor or the like. In the implementation process, each step of the above method may be completed by an integrated logic circuit of hardware in the processor 1302 or instructions in the form of software. Various methods, steps and logic block diagrams disclosed in the embodiments of the present invention may be implemented or executed. A general-purpose processor may be a microprocessor, or the processor may be any conventional processor, and the like. The steps of the methods disclosed in the embodiments of the present invention may be directly implemented by a hardware decoding processor, or implemented by a combination of hardware and software modules in the decoding processor.
存储器1304可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM, ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。Memory 1304 can be volatile memory or nonvolatile memory, or can include both volatile and nonvolatile memory. Among them, the non-volatile memory can be read-only memory (read-only memory, ROM), programmable read-only memory (programmable ROM, PROM), erasable programmable read-only memory (erasable PROM, EPROM), electrically programmable Erases programmable read-only memory (electrically EPROM, EEPROM) or flash memory. Volatile memory can be random access memory (RAM), which acts as external cache memory. By way of illustration and not limitation, many forms of RAM are available such as static random access memory (static RAM, SRAM), dynamic random access memory (dynamic RAM, DRAM), synchronous dynamic random access memory (synchronous DRAM, SDRAM), double data rate synchronous dynamic random access memory (double data rate SDRAM, DDR SDRAM), enhanced synchronous dynamic random access memory (enhanced SDRAM, ESDRAM), synchronous connection dynamic random access memory (synchlink DRAM, SLDRAM ) and direct memory bus random access memory (direct rambus RAM, DR RAM). It should be noted that the memory of the systems and methods described herein is intended to include, but not be limited to, these and any other suitable types of memory.
处理器1302、存储器1304和通信接口1303之间可以通过总线通信。存储器1304中存储有可执行代码,处理器1302读取存储器1304中的可执行代码以执行对应的方法。存储器1304中还可以包括操作系统等其他运行进程所需的软件模块。操作系统可以为LINUX TM,UNIX TM,WINDOWS TM等。 The processor 1302, the memory 1304, and the communication interface 1303 may communicate through a bus. Executable codes are stored in the memory 1304, and the processor 1302 reads the executable codes in the memory 1304 to execute a corresponding method. The memory 1304 may also include an operating system and other software modules required for running processes. The operating system can be LINUX TM , UNIX TM , WINDOWS TM and so on.
例如,存储器1304中的可执行代码用于实现图3、图4所示的方法,处理器1302读取存储器1304中的该可执行代码以执行图3、图4所示的方法。For example, the executable code in the memory 1304 is used to implement the methods shown in FIG. 3 and FIG. 4 , and the processor 1302 reads the executable code in the memory 1304 to execute the methods shown in FIG. 3 and FIG. 4 .
在本申请的一些实施例中,所公开的方法可以实施为以机器可读格式被编码在计算机可读存储介质上的或者被编码在其它非瞬时性介质或者制品上的计算机程序指令。图7示意性地示出根据这里展示的至少一些实施例而布置的示例计算机程序产品的概念性局部视图,所述示例计算机程序产品包括用于在计算设备上执行计算机进程的计算机程序。在一个实施例中,示例计算机程序产品1400是使用信号承载介质1401来提供的。所述信号承载介质1401可以包括一个或多个程序指令1402,其当被一个或多个处理器运行时可以提供以上针对图3、图4所示的方法中描述的功能或者部分功能。因此,例如,参考图3、图4中所示的实施例,其中的一个或多个特征可以由与信号承载介质1401相关联的一个或多个指令来承担。In some embodiments of the present application, the disclosed methods may be implemented as computer program instructions encoded in a machine-readable format on a computer-readable storage medium or on other non-transitory media or articles of manufacture. Figure 7 schematically illustrates a conceptual partial view of an example computer program product comprising a computer program for executing a computer process on a computing device, arranged in accordance with at least some embodiments presented herein. In one embodiment, the example computer program product 1400 is provided using a signal bearing medium 1401 . The signal bearing medium 1401 may include one or more program instructions 1402, which may provide the functions or part of the functions described above with respect to the methods shown in FIG. 3 and FIG. 4 when executed by one or more processors. Thus, for example, with reference to the embodiments shown in FIGS. 3 and 4 , one or more features therein may be undertaken by one or more instructions associated with the signal bearing medium 1401 .
在一些示例中,信号承载介质1401可以包含计算机可读介质1403,诸如但不限于,硬盘驱动器、紧密盘(CD)、数字视频光盘(DVD)、数字磁带、存储器、只读存储记忆体(read-only memory,ROM)或随机存储记忆体(random access memory,RAM)等等。在一些实施方式中,信号承载介质1401可以包含计算机可记录介质1404,诸如但不限于,存储器、读/写(R/W)CD、R/W DVD、等等。在一些实施方式中,信号承载介质1401可以包含通信介质1405,诸如但不限于,数字和/或模拟通信介质(例如,光纤电缆、波导、有线通信链路、无线通信链路、等等)。因此,例如,信号承载介质1401可以由无线形式的通信介质1405(例如,遵守IEEE 802.11标准或者其它传输协议的无线通信介质)来传达。一个或多个程序指令1402可以是,例如,计算机可执行指令或者逻辑实施指令。在一些示例中,前述的计算设备可以被配置为,响应于通过计算机可读介质1403、计算机可记录介质1404、和/或通信介质1405中的一个或多个传达到计算设备的程序指令1402,提供各种操作、功能、或者动作。应该理解,这里描述的布置仅仅是用于示例的目的。因而,本领域技术人员将理解,其它布置和其它元素(例如,机器、接口、功能、顺序、和功能组等等)能够被取而代之地使用,并且一些元素可以根据所期望的结果而一并省略。另外,所描述的元素中的许多是可以被实现为离散的或者分布式的组件的、或者以任何适当的组合和位置来结合其它组件实施的功能实体。In some examples, signal bearing medium 1401 may comprise computer readable medium 1403 such as, but not limited to, a hard drive, compact disc (CD), digital video disc (DVD), digital tape, memory, read-only memory (read only memory) -only memory, ROM) or random access memory (random access memory, RAM) and so on. In some implementations, signal bearing media 1401 may comprise computer recordable media 1404 such as, but not limited to, memory, read/write (R/W) CDs, R/W DVDs, and the like. In some implementations, signal bearing media 1401 may include communication media 1405 such as, but not limited to, digital and/or analog communication media (eg, fiber optic cables, waveguides, wired communication links, wireless communication links, etc.). Thus, for example, signal bearing medium 1401 may be conveyed by a wireless form of communication medium 1405 (eg, a wireless communication medium that complies with the IEEE 802.11 standard or other transmission protocol). One or more program instructions 1402 may be, for example, computer-executable instructions or logic-implemented instructions. In some examples, the aforementioned computing device may be configured to, in response to program instructions 1402 communicated to the computing device via one or more of computer-readable media 1403, computer-recordable media 1404, and/or communication media 1405, Various operations, functions, or actions are provided. It should be understood that the arrangements described herein are for example purposes only. Accordingly, those skilled in the art will appreciate that other arrangements and other elements (e.g., machines, interfaces, functions, sequences, and groups of functions, etc.) can be used instead, and some elements may be omitted altogether depending on the desired result. . In addition, many of the described elements are functional entities that may be implemented as discrete or distributed components, or implemented in conjunction with other components in any suitable combination and location.
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。Those skilled in the art can appreciate that the units and algorithm steps of the examples described in conjunction with the embodiments disclosed herein can be implemented by electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are executed by hardware or software depends on the specific application and design constraints of the technical solution. Skilled artisans may use different methods to implement the described functions for each specific application, but such implementation should not be regarded as exceeding the scope of the present application.
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。Those skilled in the art can clearly understand that for the convenience and brevity of the description, the specific working process of the above-described system, device and unit can refer to the corresponding process in the foregoing method embodiment, which will not be repeated here.
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。In the several embodiments provided in this application, it should be understood that the disclosed systems, devices and methods may be implemented in other ways. For example, the device embodiments described above are only illustrative. For example, the division of the units is only a logical function division. In actual implementation, there may be other division methods. For example, multiple units or components can be combined or May be integrated into another system, or some features may be ignored, or not implemented. In another point, the mutual coupling or direct coupling or communication connection shown or discussed may be through some interfaces, and the indirect coupling or communication connection of devices or units may be in electrical, mechanical or other forms.
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。The units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place, or may be distributed to multiple network units. Part or all of the units can be selected according to actual needs to achieve the purpose of the solution of this embodiment.
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。In addition, each functional unit in each embodiment of the present application may be integrated into one processing unit, each unit may exist separately physically, or two or more units may be integrated into one unit.
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。If the functions described above are realized in the form of software function units and sold or used as independent products, they can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present application is essentially or the part that contributes to the prior art or the part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a storage medium, including Several instructions are used to make a computer device (which may be a personal computer, a server, or a network device, etc.) execute all or part of the steps of the methods described in the various embodiments of the present application. The aforementioned storage media include: U disk, mobile hard disk, read-only memory (Read-Only Memory, ROM), random access memory (Random Access Memory, RAM), magnetic disk or optical disc and other media that can store program codes. .
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。The above is only a specific implementation of the application, but the scope of protection of the application is not limited thereto. Anyone familiar with the technical field can easily think of changes or substitutions within the technical scope disclosed in the application. Should be covered within the protection scope of this application. Therefore, the protection scope of the present application should be determined by the protection scope of the claims.

Claims (15)

  1. 一种数字签名门限方法,其特征在于,包括:A digital signature threshold method, characterized in that, comprising:
    第一计算机设备获取第一矩阵,所述第一矩阵为k行l列的矩阵,k和l为大于等于1的正整数;The first computer device acquires a first matrix, the first matrix is a matrix with k rows and l columns, and k and l are positive integers greater than or equal to 1;
    所述第一计算机设备确定第一向量和第二向量;said first computer device determines a first vector and a second vector;
    所述第一计算机设备根据所述第一矩阵、所述第一向量和所述第二向量,确定第一密钥参数份;The first computer device determines a first key parameter share based on the first matrix, the first vector, and the second vector;
    所述第一计算机设备接收来自于a个计算机设备的a个密钥参数份,a为大于或等于p-1的正整数,p为秘密共享方案的最小计算机设备数目;The first computer device receives a key parameter shares from a computer device, a is a positive integer greater than or equal to p-1, and p is the minimum number of computer devices in the secret sharing scheme;
    所述第一计算机设备根据所述第一密钥参数份和所述a个密钥参数份,确定密钥参数的高位比特和低位比特;The first computer device determines the high-order bits and low-order bits of key parameters according to the first key parameter share and the a key parameter shares;
    所述第一计算机设备根据矩阵种子和所述密钥参数的高位比特,确定第一随机数;The first computer device determines a first random number according to the matrix seed and the upper bits of the key parameter;
    所述第一计算机设备根据所述第一向量、所述第二向量、所述密钥参数的低位比特、所述第一随机数和所述矩阵种子,确定第一消息的签名信息;The first computer device determines the signature information of the first message according to the first vector, the second vector, the lower bits of the key parameter, the first random number and the matrix seed;
    所述第一计算机设备向第二计算机设备发送所述第一消息和所述第一消息的签名信息,所述第二计算机设备为所述a个计算机设备中的一个。The first computer device sends the first message and the signature information of the first message to a second computer device, and the second computer device is one of the a computer devices.
  2. 根据权利要求1所述的方法,其特征在于,所述第一消息的签名信息包括:挑战,应答和提示,The method according to claim 1, wherein the signature information of the first message includes: challenge, response and prompt,
    所述第一计算机设备所述根据所述第一向量、所述第二向量、所述密钥参数的低位比特、所述第一随机数和所述矩阵种子,确定第一消息的签名信息,包括:The first computer device determines the signature information of the first message according to the first vector, the second vector, the lower bits of the key parameter, the first random number and the matrix seed, include:
    所述第一计算机设备根据所述第一随机数和所述第一消息,确定挑战参数;The first computer device determines a challenge parameter according to the first random number and the first message;
    所述第一计算机设备根据第一预设参数、所述第一矩阵和所述挑战参数,确定所述挑战;The first computer device determines the challenge according to a first preset parameter, the first matrix and the challenge parameter;
    所述第一计算机设备根据所述第一预设参数、所述挑战和所述第一向量,确定所述应答;The first computer device determines the response based on the first preset parameter, the challenge and the first vector;
    所述第一计算机设备根据所述挑战、所述密钥参数的低位比特、所述第一矩阵、所述第一预设参数和所述第二向量,确定所述提示。The first computer device determines the hint according to the challenge, the lower bits of the key parameter, the first matrix, the first preset parameter, and the second vector.
  3. 根据权利要求2所述的方法,其特征在于,所述所述第一计算机设备根据第一预设参数、所述第一矩阵和所述第一消息的签名,确定所述挑战,包括:The method according to claim 2, wherein the first computer device determines the challenge according to the first preset parameters, the first matrix and the signature of the first message, comprising:
    所述第一计算机设备根据所述第一预设参数,生成屏蔽向量,其中所述屏蔽向量包括l个多项式,所述l个多项式中的每个多项式的系数小于或等于所述第一预设参数;The first computer device generates a masking vector according to the first preset parameter, wherein the masking vector includes l polynomials, and the coefficient of each polynomial in the l polynomials is less than or equal to the first preset parameter;
    所述第一计算机设备根据所述第一矩阵和所述屏蔽向量,确定第一许诺中间份;The first computer device determines a first promised intermediate share based on the first matrix and the masked vector;
    所述第一计算机设备获取来自于所述a个计算机设备的a个许诺中间份的高位比特;The first computer device acquires high-order bits of a promise intermediate shares from the a computer device;
    所述第一计算机设备根据所述第一许诺中间份的高位比特和所述a个许诺中间份的高位比特,确定许诺;The first computer device determines the promise according to the upper bits of the first middle part of the promise and the upper bits of the a middle parts of the promise;
    所述第一计算机设备根据所述许诺和所述第一消息的签名,确定所述挑战。The first computer device determines the challenge based on the promise and the signature of the first message.
  4. 根据权利要求3所述的方法,其特征在于,所述所述第一计算机设备根据所述第 一预设参数、所述挑战和所述第一向量,确定所述应答,包括:The method according to claim 3, wherein said first computer device determines said response according to said first preset parameter, said challenge and said first vector, comprising:
    所述第一计算机设备根据所述屏蔽向量、所述挑战和所述第一向量,确定第一应答份;The first computer device determines a first response share according to the masked vector, the challenge and the first vector;
    所述第一计算机设备获取来自于所述a个计算机设备的a个应答份;The first computer device obtains a response shares from the a computer device;
    所述第一计算机设备根据所述第一应答份和所述a个应答份,确定所述应答。The first computer device determines the response according to the first response share and the a response shares.
  5. 根据权利要求4所述的方法,其特征在于,所述所述第一计算机设备根据所述挑战、所述密钥参数的低位比特、所述第一矩阵、所述第一预设参数和所述第二向量,确定所述提示,包括:The method according to claim 4, wherein the first computer device is based on the challenge, the lower bits of the key parameter, the first matrix, the first preset parameter and the The second vector, determining the prompt, includes:
    所述第一计算机设备根据所述挑战、所述密钥参数的低位比特、所述第一许诺中间份和所述第二向量确定第一提示份;The first computer device determines a first hint share according to the challenge, the low-order bits of the key parameter, the first promise intermediate share, and the second vector;
    所述第一计算机设备获取来自于所述a个计算机设备的a个提示份;The first computer device acquires a reminder shares from the a computer device;
    所述第一计算机设备根据所述第一提示份和所述a个提示份,确定所述提示。The first computer device determines the reminder according to the first reminder share and the a reminder shares.
  6. 根据权利要求2至5任一项所述的方法,其特征在于,所述方法还包括:The method according to any one of claims 2 to 5, wherein the method further comprises:
    所述第一计算机设备接收来自于所述第二计算机设备的第二消息和所述第二消息的签名信息;The first computer device receives a second message from the second computer device and signature information for the second message;
    所述第一计算机设备根据所述矩阵种子、所述密钥参数的高位比特对所述第二消息的签名信息进行验证。The first computer device verifies the signature information of the second message according to the matrix seed and the upper bits of the key parameter.
  7. 一种计算机装置,其特征在于,包括:A computer device, characterized in that it includes:
    获取模块,用于获取第一矩阵,所述第一矩阵为m行l列的矩阵,k和l为大于等于1的正整数;An acquisition module, configured to acquire a first matrix, the first matrix is a matrix with m rows and l columns, and k and l are positive integers greater than or equal to 1;
    处理模块,用于确定第一向量和第二向量;a processing module, configured to determine the first vector and the second vector;
    所述处理模块,还用于根据所述第一矩阵、所述第一向量和所述第二向量,确定第一密钥参数份;The processing module is further configured to determine a first key parameter share according to the first matrix, the first vector, and the second vector;
    所述获取模块,还用于接收来自于a个计算机设备的a个密钥参数份,a为大于或等于p-1的正整数,p为秘密共享方案的最小用户数目;The acquisition module is also used to receive a key parameter share from a computer device, where a is a positive integer greater than or equal to p-1, and p is the minimum number of users of the secret sharing scheme;
    所述处理模块,还用于根据所述第一密钥参数份和所述a个密钥参数份,确定密钥参数的高位比特和低位比特;The processing module is further configured to determine high-order bits and low-order bits of key parameters according to the first key parameter share and the a key parameter shares;
    所述处理模块,还用于根据矩阵种子和所述密钥参数的高位比特,确定第一随机数;The processing module is further configured to determine a first random number according to the matrix seed and the upper bits of the key parameter;
    所述处理模块,还用于根据所述第一向量、所述第二向量、所述密钥参数的低位比特、所述第一随机数和所述矩阵种子,确定第一消息的签名信息;The processing module is further configured to determine the signature information of the first message according to the first vector, the second vector, the lower bits of the key parameter, the first random number and the matrix seed;
    发送模块,用于向另一计算机设备发送所述第一消息和所述第一消息的签名信息,所述另一计算机设备为所述a个计算机设备中的一个。A sending module, configured to send the first message and the signature information of the first message to another computer device, where the other computer device is one of the a computer devices.
  8. 根据权利要求7所述的装置,其特征在于,所述处理模块,具体用于:The device according to claim 7, wherein the processing module is specifically used for:
    根据所述第一随机数和所述第一消息,确定挑战参数;Determine a challenge parameter according to the first random number and the first message;
    根据第一预设参数、所述第一矩阵和所述挑战参数,确定挑战;determining a challenge according to a first preset parameter, the first matrix, and the challenge parameter;
    根据所述第一预设参数、所述挑战和所述第一向量,确定应答;determining a response according to the first preset parameter, the challenge and the first vector;
    根据所述挑战、所述密钥参数的低位比特、所述第一矩阵、所述第一预设参数和所述第二向量,确定提示。A hint is determined according to the challenge, the lower bits of the key parameter, the first matrix, the first preset parameter, and the second vector.
  9. 根据权利要求8所述的装置,其特征在于,所述获取模块,还用于获取来自于所述a个计算机设备的a个许诺中间份的高位比特;The device according to claim 8, wherein the obtaining module is further configured to obtain high-order bits of a promised intermediate portion from the a computer equipment;
    所述处理模块,具体用于:The processing module is specifically used for:
    根据所述第一预设参数,生成屏蔽向量,其中所述屏蔽向量包括l个多项式,所述l个多项式中的每个多项式的系数小于或等于所述第一预设参数;Generate a masking vector according to the first preset parameter, wherein the masking vector includes l polynomials, and the coefficient of each polynomial in the l polynomials is less than or equal to the first preset parameter;
    根据所述第一矩阵和所述屏蔽向量,确定第一许诺中间份;determining a first promised intermediate share based on the first matrix and the masked vector;
    根据所述第一许诺中间份的高位比特和所述a个许诺中间份的高位比特,确定许诺;determining the promise according to the high-order bits of the first committed middle part and the high-order bits of the a promised middle parts;
    根据所述许诺和所述第一消息的签名,确定所述挑战。The challenge is determined based on the promise and the signature of the first message.
  10. 根据权利要求9所述的装置,其特征在于,所述获取模块,还用于获取来自于所述a个计算机设备的a个应答份;The apparatus according to claim 9, wherein the acquisition module is further configured to acquire a response shares from the a computer equipment;
    所述处理模块,具体用于:The processing module is specifically used for:
    根据所述屏蔽向量、所述挑战和所述第一向量,确定第一应答份;determining a first response share based on the masked vector, the challenge, and the first vector;
    根据所述第一应答份和所述a个应答份,确定所述应答。The response is determined according to the first response share and the a response shares.
  11. 根据权利要求10所述的装置,其特征在于,所述获取模块,还用于获取来自于所述a个计算机设备的a个提示份;The device according to claim 10, wherein the acquisition module is further configured to acquire a reminders from the a computer equipment;
    所述处理模块,具体用于:The processing module is specifically used for:
    根据所述挑战、所述密钥参数的低位比特、所述第一许诺中间份和所述第二向量确定第一提示份;determining a first hint share based on the challenge, the lower bits of the key parameter, the first promise intermediate share, and the second vector;
    根据所述第一提示份和所述k个提示份,确定所述提示。The prompt is determined according to the first prompt share and the k prompt shares.
  12. 根据权利要求8至11任一项所述的装置,其特征在于,所述获取模块,还用于接收来自于所述另一计算机设备的第二消息和所述第二消息的签名信息;The apparatus according to any one of claims 8 to 11, wherein the obtaining module is further configured to receive a second message from the other computer device and signature information of the second message;
    所述处理模块,还用于根据所述矩阵种子、所述密钥参数的高位比特对所述第二消息的签名信息进行验证。The processing module is further configured to verify the signature information of the second message according to the high order bits of the matrix seed and the key parameter.
  13. 一种计算机设备,其特征在于,包括:处理器,所述处理器用于与存储器耦合,读取并执行所述存储器中的指令和/或程序代码,以执行如权利要求1-6中任一项所述的方法。A computer device, characterized in that it comprises: a processor, configured to be coupled to a memory, read and execute instructions and/or program codes in the memory, so as to perform any one of claims 1-6 method described in the item.
  14. 一种芯片系统,其特征在于,包括:逻辑电路,所述逻辑电路用于与输入/输出接口耦合,通过所述输入/输出接口传输数据,以执行如权利要求1-6中任一项所述的方法。A system on a chip, characterized in that it includes: a logic circuit, the logic circuit is used to couple with an input/output interface, and transmit data through the input/output interface, so as to perform the operation described in any one of claims 1-6. described method.
  15. 一种计算机可读介质,其特征在于,所述计算机可读介质存储有程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行如权利要求1-6中任一项所述的方法。A computer-readable medium, characterized in that the computer-readable medium stores program codes, and when the computer program codes run on a computer, the computer executes the method described in any one of claims 1-6. method.
PCT/CN2022/121597 2021-11-24 2022-09-27 Digital signature thresholding method and apparatus WO2023093278A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202111401610.9A CN116167093A (en) 2021-11-24 2021-11-24 Digital signature threshold method and device
CN202111401610.9 2021-11-24

Publications (1)

Publication Number Publication Date
WO2023093278A1 true WO2023093278A1 (en) 2023-06-01

Family

ID=86416852

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2022/121597 WO2023093278A1 (en) 2021-11-24 2022-09-27 Digital signature thresholding method and apparatus

Country Status (2)

Country Link
CN (1) CN116167093A (en)
WO (1) WO2023093278A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116996237A (en) * 2023-09-29 2023-11-03 山东高速建设管理集团有限公司 Distributed management method and system based on quantum threshold signature

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008262040A (en) * 2007-04-12 2008-10-30 Kddi Corp Distributed information creating apparatus, secret information restoring apparatus, distributed information creating method, secret information restoring method, and program
CN101882992A (en) * 2010-06-21 2010-11-10 中国农业大学 Threshold secret information distribution and recovery method and device
CN105406966A (en) * 2015-12-30 2016-03-16 中国农业大学 Threshold secret information distribution, restoration, integrity verification method and device
CN111314084A (en) * 2020-01-21 2020-06-19 南京如般量子科技有限公司 Anti-quantum computation RFID authentication method and system based on secret sharing and online offline signature
CN113065145A (en) * 2021-03-25 2021-07-02 上海海洋大学 Privacy protection linear regression method based on secret sharing and random disturbance

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008262040A (en) * 2007-04-12 2008-10-30 Kddi Corp Distributed information creating apparatus, secret information restoring apparatus, distributed information creating method, secret information restoring method, and program
CN101882992A (en) * 2010-06-21 2010-11-10 中国农业大学 Threshold secret information distribution and recovery method and device
CN105406966A (en) * 2015-12-30 2016-03-16 中国农业大学 Threshold secret information distribution, restoration, integrity verification method and device
CN111314084A (en) * 2020-01-21 2020-06-19 南京如般量子科技有限公司 Anti-quantum computation RFID authentication method and system based on secret sharing and online offline signature
CN113065145A (en) * 2021-03-25 2021-07-02 上海海洋大学 Privacy protection linear regression method based on secret sharing and random disturbance

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116996237A (en) * 2023-09-29 2023-11-03 山东高速建设管理集团有限公司 Distributed management method and system based on quantum threshold signature
CN116996237B (en) * 2023-09-29 2023-12-08 山东高速建设管理集团有限公司 Distributed management method and system based on quantum threshold signature

Also Published As

Publication number Publication date
CN116167093A (en) 2023-05-26

Similar Documents

Publication Publication Date Title
WO2021238527A1 (en) Digital signature generation method and apparatus, computer device, and storage medium
ES2687182T3 (en) Determine a common secret for the secure exchange of information and hierarchical and deterministic cryptographic keys
RU2376651C2 (en) Using isogenies to design cryptosystems
CN107395368B (en) Digital signature method, decapsulation method and decryption method in media-free environment
JP2013539295A (en) Authenticated encryption of digital signatures with message recovery
US20220006615A1 (en) Computer-implemented system and method for distributing shares of digitally signed data
CN111162906A (en) Collaborative secret sharing method, device, system and medium based on vast transmission algorithm
CN111147245A (en) Algorithm for encrypting by using national password in block chain
CN113711564A (en) Computer-implemented method and system for encrypting data
CN112118113B (en) Multi-party cooperative group signature method, device, system and medium based on SM2 algorithm
CN111262704A (en) SM9 digital signature generation method and device, computer equipment and storage medium
TW202232913A (en) Generating shared keys
CN110932865B (en) Linkable ring signature generation method based on SM2 digital signature algorithm
CN114448641A (en) Privacy encryption method, electronic equipment, storage medium and chip
WO2014030706A1 (en) Encrypted database system, client device and server, method and program for adding encrypted data
WO2023093278A1 (en) Digital signature thresholding method and apparatus
US20160373417A1 (en) Biometric based authenticated key exchange
Lizama-Pérez et al. Public hash signature for mobile network devices
Chang et al. Secure medical data management with privacy-preservation and authentication properties in smart healthcare system
Agrawal et al. Game-set-MATCH: Using mobile devices for seamless external-facing biometric matching
Dong et al. Enabling privacy preserving record linkage systems using asymmetric key cryptography
Alslman et al. Enhanced and authenticated cipher block chaining mode
CN117795901A (en) Generating digital signature shares
CN112019335B (en) SM2 algorithm-based multiparty collaborative encryption and decryption method, device, system and medium
Zhao et al. Privacy preserving search services against online attack

Legal Events

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

Ref document number: 22897364

Country of ref document: EP

Kind code of ref document: A1