A multi-party collaborative signature system, method and device fusing quantum key distribution
The collaborative signature scheme of the quantum key distribution system solves the security problem of collaborative signature in the cloud computing environment, realizes the integrity protection of data transmission and the credibility of digital signature, and reduces the risk of forgery and fraud.
Patent Information
- Application Number
- CN202310027748.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-01-09
- Publication Date
- 2026-02-17
- Estimated Expiration
- 2043-01-09
AI Technical Summary
In cloud computing environments, existing collaborative signature schemes suffer from low security due to a lack of integrity protection for data transmission and the possibility of message digests being replaced and signatures being forged.
A multi-party collaborative signature system integrating quantum key distribution is adopted. Through quantum key negotiation and encryption processing between the client and the collaborative end group, digital signatures are generated and verified to ensure the integrity and security of data transmission.
It improves the security of collaborative signatures, reduces the possibility of forgery and fraud, and enhances the credibility of digital signatures in open environments.
Smart Images

Figure CN116232578B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of cryptographic application technology, specifically to a multi-party collaborative signature system, method, and device that integrates quantum key distribution. Background Technology
[0002] Elliptic Curve Cryptography (ECC) is a public-key cryptography system based on the mathematical problem of elliptic curves defined over finite fields. The SM2 algorithm, as specified in the GB / T 32918-2016 standard "Information Security Technology SM2 Elliptic Curve Public-Key Cryptography Algorithm," is a specific algorithm within the ECC cryptosystem. In cloud computing environments and SaaS applications, numerous software-implemented cryptographic modules are deployed. The use of these modules raises concerns about the security of the private key in the SM2 algorithm and the resulting trustworthiness of digital signatures in open environments. To address the security issues of private key signatures in open environments, collaborative signature techniques are generally employed. This involves both the software cryptographic module in the open environment and a closed hardware cryptographic module (HSM, commonly a cryptographic machine) storing portions of the private key. Only through collaboration can a message be digitally signed. Neither party can obtain any information about the other's private key. Therefore, even if an attacker successfully compromises the software cryptographic module in the open environment, they cannot forge the signature.
[0003] Patent document CN104243456A discloses a signature and decryption method and system based on the SM2 algorithm applicable to cloud computing. In this scheme, the SM2 algorithm generates a digital signature (r, s), where r is generated solely by the second communicating party based on the message digest e. The first communicating party processes the r returned by the second communicating party, rather than directly processing the message digest e. The following possibility exists: the second communicating party generates r' based on e' and sends it back to the first communicating party for signature processing, and replaces the original message of e with the original message of e' in the final message published by the first communicating party. This achieves the purpose of deceiving the first communicating party into performing a collaborative signature using e' that is unknown to them.
[0004] In existing technologies, implementing collaborative signatures requires the transmission of important data between two signer parties. The transmission of this data often lacks integrity protection and is susceptible to tampering. Moreover, collaborative signatures rely on one party to process the message and message digest, while the other party processes the message based on the already processed message digest. This can lead to the message digest being replaced and the signature being forged, resulting in low security for collaborative signatures. Summary of the Invention
[0005] The purpose of this invention is to solve the problems mentioned above in the background technology, and to propose a multi-party collaborative signature system, method and device that integrates quantum key distribution.
[0006] The objective of this invention can be achieved through the following technical solutions:
[0007] In a first aspect, this invention provides a quantum key distribution (QKD) multi-party collaborative signature system, comprising a client, a collaborative terminal group, and a QKD network; the collaborative terminal group comprises N collaborative terminals connected sequentially, and the Nth collaborative terminal has a hardware boundary cryptographic machine (HSM); wherein:
[0008] The client is configured to obtain a first quantum key and a second quantum key from a preset storage medium, generate a first encryption parameter using the SM2 algorithm, generate a first digest of the message to be signed by negotiating an encryption public key with multiple collaborating terminals based on the first quantum key, encrypt the first encryption parameter, the message to be signed, and the first digest using the second quantum key and generate a corresponding first integrity check value, and send the first encrypted data to the server; the preset storage medium stores multiple quantum keys injected by the QKD network;
[0009] The collaborative terminal group is configured to obtain the first quantum key and the second quantum key from the QKD network, use the second quantum key to perform integrity verification and decryption on the first encrypted data to obtain the first encryption parameters, the message to be signed, and the first digest, and use the first quantum key to generate a second digest of the message to be signed; after comparing the first digest and the second digest and finding no errors, the first collaborative terminal uses the SM2 algorithm to generate a second encryption parameter based on the first encryption parameter; the second to the (N-1)th collaborative terminals sequentially use the SM2 algorithm to update the second encryption parameter generated by the previous collaborative terminal connected to them; the Nth collaborative terminal uses the SM2 algorithm to generate a third encryption parameter based on the first encryption parameter and all second encryption parameters; the Nth collaborative terminal uses the second quantum key to encrypt the third encryption parameter and generate a corresponding second integrity verification value, obtaining second encrypted data which is then sent to the client; the (N-1)th to the first collaborative terminal sequentially use the SM2 algorithm to reverse-engineer the second encryption parameter based on the third encryption parameter; the first collaborative terminal uses the second quantum key to encrypt the reverse-engineered second encryption parameter and generate a corresponding third integrity verification value, obtaining third encrypted data which is then sent to the client.
[0010] The client is further configured to use the second quantum key to perform integrity verification and decryption on the second encrypted data and the third encrypted data to obtain the second encryption parameters and the third encrypted data, and generate a digital signature based on the second encryption parameters and the third encrypted data.
[0011] In a second aspect, the present invention also provides a method for multi-party collaborative signature using quantum key distribution, the method being applied to a client and comprising:
[0012] The first encryption parameters are generated using the SM2 algorithm, and the first quantum key is obtained from the preset storage medium. The encryption public key and the first quantum key are obtained through negotiation between the client and multiple collaborating terminals to generate the first digest of the message to be signed. The preset storage medium stores multiple quantum keys injected by the QKD network.
[0013] Obtain a second quantum key from a preset storage medium, use the second quantum key to encrypt the first encryption parameter, the message to be signed and the first digest and generate a corresponding first integrity check value to obtain the first encrypted data;
[0014] The first encrypted data is sent to the collaborative end group, which includes N collaborative ends connected sequentially, with the Nth collaborative end having a hardware boundary cryptographic machine (HSM). The collaborative end group then obtains the first quantum key and the second quantum key from the QKD network, uses the second quantum key to perform integrity verification and decryption on the first encrypted data to obtain the first encryption parameters, the message to be signed, and the first digest, and uses the first quantum key to generate a second digest of the message to be signed. After verifying that the first digest and the second digest are correct, the first collaborative end uses the SM2 algorithm to generate the second encryption parameters based on the first encryption parameters, and the second to the (N-1)th collaborative ends... Each coordinating end sequentially updates the second encryption parameters generated by the previous coordinating end using the SM2 algorithm. The Nth coordinating end uses the SM2 algorithm to generate a third encryption parameter based on the first encryption parameter and all second encryption parameters. The Nth coordinating end uses the second quantum key to encrypt the third encryption parameter and generate a corresponding second integrity check value, obtaining second encrypted data which is then sent to the client. The N-1th to the first coordinating end sequentially uses the SM2 algorithm to reverse-engineer the second encryption parameter based on the third encryption parameter. The first coordinating end uses the second quantum key to encrypt the reverse-engineered second encryption parameter and generate a corresponding third integrity check value, obtaining third encrypted data which is then sent to the client.
[0015] The second quantum key is used to perform integrity verification and decryption on the second encrypted data and the third encrypted data to obtain the second encryption parameters and the third encrypted data, and a digital signature is generated based on the second encryption parameters and the third encrypted data.
[0016] Optionally, before generating the first encryption parameters using the SM2 algorithm, obtaining the first quantum key from a preset storage medium, and generating the first digest of the message to be signed based on the encryption public key obtained through client-server key negotiation and the first quantum key, the method further includes:
[0017] Obtain the pre-set elliptic curve parameters E(Fq), G, and n of the SM2 algorithm. Elliptic curve E is defined on the finite field Fq, and G represents the nth-order base point on elliptic curve E.
[0018] Generate a random number between [1, n-1], and use the generated random number as D. C Calculate the first private key data P1 = D C [*]G, [*] represents the generation of elliptic curve dot product operation. The third quantum key is obtained in the preset storage medium. The first private key data is encrypted using the third quantum key and a corresponding third integrity check value is generated to obtain the negotiated data.
[0019] The negotiated data is sent to the collaborative end group; enabling the collaborative end group to obtain the third quantum key through the QKD network, and to use the third quantum key to perform integrity verification and decryption on the negotiated data to obtain the first private key data. Each collaborative end generates a random number between [1, n-1], and the i-th collaborative end uses the generated random number as D. i Calculate P sequentially i =D i [*]P i-1 The Nth cooperating end calculates the public key P. G =P N -G=(D N …D1D c -1)[*]G, and publish the public key.
[0020] Optionally, the first encryption parameter is generated using the SM2 algorithm as follows:
[0021] Generate a random number K0 between [1, n-1], and use D c -1 D c Given the inverse element in Fq, calculate Q = ((K0 + e) mod n)[*]G, S = D c -1 *(K0+e)mod n, where Q and S are used as the first encryption parameters;
[0022] Based on the encryption public key obtained through key negotiation between the client and multiple collaborating terminals and the first quantum key, a first digest of the message to be signed is generated, including:
[0023] Calculate the first intermediate parameter Z based on GB / T 32918:
[0024] Z = HASH(ENTL) C ||ID C ||ENTL S ||ID S ||x G ||y G ||x||y)
[0025] Among them, ID C and ID S These are the user identifier of the client and the user identifier (ID) of the collaborating end, respectively. S =D N ||…D1), ENTL C and ENTL S The length of the user identifier is x, respectively. G and y G Let G be the coordinates of the point on the elliptic curve, and x and y be the public key P. G The coordinates;
[0026] Calculate the second intermediate parameter M' based on Z and the message M to be signed:
[0027] M'=Z||ID key ||M
[0028] Among them, ID key The key ID for the first quantum key;
[0029] The first digest e of the message to be signed is obtained by performing a keyed hash operation on M' with the first quantum key: e = HMAC(M', Key1).
[0030] Optionally, the calculation process of the third encryption parameter is as follows: the first to the Nth cooperating end each generate a random number K located between [1, n-1]. i Q is calculated sequentially starting from the first cooperating end. i =(K i +emod n)[*]Q i-1 Q1 = (K1 + emod n)[*]Q, calculate s i =D i -1 *(K i +e)*s i-1 mod n, D i -1 D i The inverse element on Fq, s1 = D1 -1*(K1*e)*S modm; The Nth cooperating end generates a random number K between [1, n-1], and calculates Q. K =K*D N mod n[*]G,(x1,y1)=Q N -Q K =((K0+e)(K1+e)…(K n +e)-K*D N )mod n[*]G, and calculate r=x1+e mod n and S N =D N -1 *rK modn,D N -1 D N Inverse in Fq; r, Q K and s N , as the third encryption parameter; the calculation process of the second encryption parameter is as follows: the N-1th to the 1st cooperating end calculates S sequentially. i =D i -1 *S i+1 mod n,D i -1 D i The inverse in Fq, and S i As the second encryption parameter;
[0031] Generating a digital signature based on the second encryption parameter and the third encryption data includes:
[0032] Use the second quantum key to verify and decrypt the message to obtain r and s. N After summing S1, calculate s = s N +S1*D c -1 -rmod n converts the data type of (r,s) into a byte string according to the method of GB / T 32918, which is used as a signature for message M and published externally along with the client user identifier and the list of collaborating end identifiers.
[0033] A third aspect of this invention also provides a method for multi-party collaborative signature using quantum key distribution. The method is applied to a collaborative end group, which includes N collaborative ends connected sequentially, with the Nth collaborative end having a hardware boundary cryptographic machine (HSM). The method includes:
[0034] The system receives first encrypted data sent by a client. The process of generating the first encrypted data is as follows: generating first encryption parameters using the SM2 algorithm; obtaining a first quantum key from a preset storage medium; obtaining an encryption public key and the first quantum key through key negotiation between the client and multiple collaborating ends; generating a first digest of the message to be signed using the first quantum key; obtaining a second quantum key from the preset storage medium; encrypting the first encryption parameters, the message to be signed, and the first digest using the second quantum key; and generating a corresponding first integrity check value to obtain the first encrypted data. The preset storage medium stores multiple quantum keys injected by the QKD network.
[0035] The first quantum key and the second quantum key are obtained from the QKD network. The second quantum key is used to perform integrity verification and decryption on the first encrypted data to obtain the first encryption parameters, the message to be signed and the first digest. The first quantum key is used to generate the second digest of the message to be signed.
[0036] After verifying that the first digest and the second digest are correct, the first coordinating end uses the SM2 algorithm to generate a second encryption parameter based on the first encryption parameter. The second to the (N-1)th coordinating ends sequentially use the SM2 algorithm to update the second encryption parameter generated by the previous coordinating end to which they are connected. The Nth coordinating end uses the SM2 algorithm to generate a third encryption parameter based on the first encryption parameter and all second encryption parameters. The Nth coordinating end uses the second quantum key to encrypt the third encryption parameter and generate a corresponding second integrity check value, obtaining second encrypted data which is then sent to the client. The (N-1)th to the first coordinating end sequentially use the SM2 algorithm to reverse-engineer the second encryption parameter based on the third encryption parameter. The first coordinating end uses the second quantum key to encrypt the reverse-engineered second encryption parameter and generate a corresponding third integrity check value, obtaining third encrypted data which is then sent to the client. This allows the client to use the second quantum key to perform integrity check and decryption on the second and third encrypted data to obtain the second encryption parameter and the third encrypted data, and generate a digital signature based on the second encryption parameter and the third encrypted data.
[0037] Optionally, before receiving the first encrypted data sent by the client, the method further includes:
[0038] The client receives negotiation data sent by the client. The process of generating the negotiation data is as follows: the client obtains the pre-set elliptic curve parameters E(Fq), G, and n of the SM2 algorithm, where the elliptic curve E is defined on the finite field Fq, and G represents the nth-order base point on the elliptic curve E; a random number between [1, n-1] is generated, and the generated random number is used as D. C Calculate the first private key data P1 = DC [*]G, [*] represents the generation of elliptic curve dot product operation. The third quantum key is obtained in the preset storage medium. The first private key data is encrypted using the third quantum key and a corresponding third integrity check value is generated to obtain the negotiated data.
[0039] The third quantum key is obtained through the QKD network. The third quantum key is used to perform integrity verification and decryption on the negotiated data to obtain the first private key data. Each collaborating end generates a random number between [1, n-1]. The i-th collaborating end uses the generated random number as D. i Calculate P sequentially i =D i [*]P i-1 The Nth cooperating end calculates the public key P. G =P N -G=(D N …D1D c -1)[*]G, and publish the public key.
[0040] Optionally, the process of generating the first encryption parameter is as follows: the client generates a random number K0 located between [1, n-1], and then... c -1 D c Given the inverse element in Fq, calculate Q = ((K0 + e) mod n)[*]G, S = D c -1 *(K0+e)mod n, where Q and S are used as the first encryption parameters;
[0041] The first to the Nth cooperating ends each generate a random number K located in the range [1, n-1]. i Q is calculated sequentially starting from the first cooperating end. i =(K i +e mod n)[*]Q i-1 Q1 = (K1 + e mod m)[*]Q, calculate s i =D i -1 *(K i +e)*s i-1 mod n, D i -1 D i The inverse element on Fq, s1 = D1 -1 *(K1*e)*Smod n; The Nth cooperating end generates a random number K between [1, n-1], and calculates Q. K =K*D N mod n[*]G,(x1,y1)=Q N -Q K=((K0+e)(K1+e)…(K n +e)-K*D N )mod n[*]G, and calculate r=x1+e mod m and S N =D N -1 *rK mod n,D N -1 D N Inverse in Fq; r, Q K and s N , as the third encryption parameter; the calculation process of the second encryption parameter is as follows: the N-1th to the 1st cooperating end calculates S sequentially. i =D i -1 *S i+1 mod n,D i -1 D i The inverse in Fq, and S i As the second encryption parameter;
[0042] Generating a digital signature based on the second encryption parameter and the third encryption data includes:
[0043] Use the second quantum key to verify and decrypt the message to obtain r and s. N After summing S1, calculate s = s N +S1*D c -1 -rmod n converts the data type of (r,s) into a byte string according to the method of GB / T 32918, which is used as a signature for message M and published externally along with the client user identifier and the list of collaborating end identifiers.
[0044] A fourth aspect of the present invention also provides a fusion quantum key distribution multi-party collaborative signature device, the device being applied to a client, comprising:
[0045] The data processing module is used to generate first encryption parameters using the SM2 algorithm, obtain a first quantum key from a preset storage medium, and generate a first digest of the message to be signed by negotiating an encryption public key and the first quantum key based on the keys of the client and multiple collaborating ends; the preset storage medium stores multiple quantum keys injected by the QKD network;
[0046] An encryption module is used to obtain a second quantum key from a preset storage medium, use the second quantum key to encrypt the first encryption parameter, the message to be signed, and the first digest, and generate a corresponding first integrity verification value to obtain first encrypted data;
[0047] A data transmission module is used to send the first encrypted data to the collaborative end group, which includes N collaborative ends connected sequentially, and the Nth collaborative end has a hardware boundary cryptographic machine (HSM). The collaborative end group obtains the first quantum key and the second quantum key from the QKD network, uses the second quantum key to perform integrity verification and decryption on the first encrypted data to obtain the first encryption parameters, the message to be signed, and the first digest, and uses the first quantum key to generate a second digest of the message to be signed. After verifying that the first digest and the second digest are correct, the first collaborative end uses the SM2 algorithm to generate a second encryption parameter based on the first encryption parameters, and so on. N-1 cooperating ends sequentially use the SM2 algorithm to update the second encryption parameters generated by the previous cooperating end to which they are connected. The Nth cooperating end uses the SM2 algorithm to generate a third encryption parameter based on the first encryption parameter and all the second encryption parameters. The Nth cooperating end uses the second quantum key to encrypt the third encryption parameter and generate a corresponding second integrity check value, and then sends the second encrypted data to the client. The N-1th to the first cooperating end sequentially use the SM2 algorithm to reverse-engineer the second encryption parameter based on the third encryption parameter. The first cooperating end uses the second quantum key to encrypt the reverse-engineered second encryption parameter and generate a corresponding third integrity check value, and then sends the third encrypted data to the client.
[0048] The first collaborative signature module is used to perform integrity verification and decryption of the second encrypted data and the third encrypted data using the second quantum key to obtain the second encryption parameters and the third encrypted data, and to generate a digital signature based on the second encryption parameters and the third encrypted data.
[0049] A fifth aspect of the present invention also provides a fusion quantum key distribution multi-party collaborative signature device, the device being applied to a server group, the collaborative terminal group comprising N collaborative terminals connected sequentially, and the Nth collaborative terminal having a cryptographic machine (HSM) with hardware boundaries; comprising:
[0050] A data receiving module is used to receive first encrypted data sent by a client. The process of generating the first encrypted data is as follows: generating first encryption parameters using the SM2 algorithm; obtaining a first quantum key from a preset storage medium; obtaining an encryption public key and the first quantum key through key negotiation between the client and multiple collaborating ends; generating a first digest of the message to be signed using the first quantum key; obtaining a second quantum key from the preset storage medium; encrypting the first encryption parameters, the message to be signed, and the first digest using the second quantum key; generating a corresponding first integrity check value; and obtaining the first encrypted data. The preset storage medium stores multiple quantum keys injected by the QKD network.
[0051] The decryption module is used to obtain the first quantum key and the second quantum key from the QKD network, use the second quantum key to perform integrity verification and decryption on the first encrypted data to obtain the first encryption parameter, the message to be signed and the first digest, and use the first quantum key to generate a second digest of the message to be signed.
[0052] In the second collaborative signature module, after verifying that the first digest and the second digest are correct, the first collaborative end uses the SM2 algorithm to generate a second encryption parameter based on the first encryption parameter. The second to the (N-1)th collaborative ends sequentially use the SM2 algorithm to update the second encryption parameter generated by the previous collaborative end to which they are connected. The Nth collaborative end uses the SM2 algorithm to generate a third encryption parameter based on the first encryption parameter and all the second encryption parameters. The Nth collaborative end uses the second quantum key to encrypt the third encryption parameter and generate a corresponding second integrity check value, obtaining second encrypted data which is then sent to the client. The (N-1)th to the first collaborative end sequentially use the SM2 algorithm to reverse-engineer the second encryption parameter based on the third encryption parameter. The first collaborative end uses the second quantum key to encrypt the reverse-engineered second encryption parameter and generate a corresponding third integrity check value, obtaining third encrypted data which is then sent to the client. This allows the client to use the second quantum key to perform integrity check and decryption on the second and third encrypted data to obtain the second encryption parameter and the third encrypted data, and generate a digital signature based on the second encryption parameter and the third encrypted data.
[0053] The beneficial effects of this invention are:
[0054] This invention provides a multi-party collaborative signature system integrating quantum key distribution (QKD), including a client, a collaborative terminal group, and a QKD network. The collaborative terminal group includes N collaborative terminals connected sequentially, with the Nth collaborative terminal possessing a hardware boundary cryptographic machine (HSM). The client is configured to obtain a first quantum key and a second quantum key from a preset storage medium, generate first encryption parameters using the SM2 algorithm, generate a first digest of the message to be signed based on the encryption public key negotiated between the client and multiple collaborative terminals and the first quantum key, encrypt the first encryption parameters, the message to be signed, and the first digest using the second quantum key to generate a corresponding first integrity check value, and send the first encrypted data to the server. The preset storage medium stores multiple quantum keys injected by the QKD network. The collaborative terminal group is configured to obtain the first quantum key and the second quantum key from the QKD network, perform integrity check and decryption on the first encrypted data using the second quantum key to obtain the first encryption parameters, the message to be signed, and the first digest, and generate a second digest of the message to be signed using the first quantum key. After verifying the first and second digests, the first coordinating end uses the SM2 algorithm to generate a second encryption parameter based on the first encryption parameter. The second to (N-1)th coordinating ends sequentially use the SM2 algorithm to update the second encryption parameter generated by the previous coordinating end to which they are connected. The Nth coordinating end uses the SM2 algorithm to generate a third encryption parameter based on the first encryption parameter and all second encryption parameters. The Nth coordinating end uses a second quantum key to encrypt the third encryption parameter and generate a corresponding second integrity check value, obtaining second encrypted data which is then sent to the client. The (N-1)th to the first coordinating end sequentially use the SM2 algorithm to reverse-engineer the second encryption parameter based on the third encryption parameter. The first coordinating end uses a second quantum key to encrypt the reverse-engineered second encryption parameter and generate a corresponding third integrity check value, obtaining third encrypted data which is then sent to the client. The client is also used to use the second quantum key to perform integrity checks and decryption on the second and third encrypted data to obtain the second encryption parameter and the third encrypted data, and to generate a digital signature based on the second encryption parameter and the third encrypted data. The communication and interaction process of collaborative signatures among multiple parties adopts a quantum key distribution system to improve the security of collaborative signatures. The client and multiple collaborative terminals in the collaborative terminal group directly process the message to be signed, reducing the possibility of one party forging or committing fraud. Attached Figure Description
[0055] The invention will now be further described with reference to the accompanying drawings.
[0056] Figure 1 This is a system block diagram of a multi-party collaborative signature system for quantum key distribution provided in an embodiment of the present invention. Detailed Implementation
[0057] The technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of the present invention, and not all embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of the present invention.
[0058] This invention provides a multi-party collaborative signature system integrating quantum key distribution. See also: Figure 1 , Figure 1 This invention provides a system block diagram of a quantum key distribution (QKD) multi-party collaborative signature system. It includes a client, a collaborative terminal group, and a quantum key distribution network (QKD). The collaborative terminal group comprises N collaborative terminals, which are connected sequentially, and the Nth collaborative terminal has a hardware-bounded cryptographic machine (HSM).
[0059] The client is used to obtain a first quantum key and a second quantum key from a preset storage medium, generate a first encryption parameter using the SM2 algorithm, generate a first digest of the message to be signed by obtaining an encryption public key and the first quantum key through key negotiation between the client and multiple collaborating ends, encrypt the first encryption parameter, the message to be signed, and the first digest using the second quantum key and generate a corresponding first integrity check value, and send the first encrypted data to the server; the preset storage medium stores multiple quantum keys injected by the QKD network;
[0060] The collaborative terminal group is used to obtain a first quantum key and a second quantum key from the QKD network, use the second quantum key to perform integrity verification and decryption on the first encrypted data to obtain a first encryption parameter, a message to be signed, and a first digest, and use the first quantum key to generate a second digest of the message to be signed; after comparing the first digest and the second digest and finding no errors, the first collaborative terminal uses the SM2 algorithm to generate a second encryption parameter based on the first encryption parameter; the second to the (N-1)th collaborative terminals sequentially use the SM2 algorithm to update the second encryption parameter generated by the previous collaborative terminal connected to them; the Nth collaborative terminal uses the SM2 algorithm to generate a third encryption parameter based on the first encryption parameter and all the second encryption parameters; the Nth collaborative terminal uses the second quantum key to encrypt the third encryption parameter and generate a corresponding second integrity verification value, obtaining the second encrypted data and sending it to the client; the (N-1)th to the first collaborative terminal sequentially use the SM2 algorithm to reverse-engineer the second encryption parameter based on the third encryption parameter; the first collaborative terminal uses the second quantum key to encrypt the reverse-engineered second encryption parameter and generate a corresponding third integrity verification value, obtaining the third encrypted data and sending it to the client.
[0061] The client is also used to perform integrity verification and decryption of the second and third encrypted data using the second quantum key to obtain the second encryption parameters and the third encrypted data, and to generate a digital signature based on the second encryption parameters and the third encrypted data.
[0062] Based on the embodiments of the present invention, a multi-party collaborative signature system integrating quantum key distribution is provided. The communication and interaction process of the multi-party collaborative signature uses a quantum key distribution system to improve the security of collaborative signature. The client and multiple collaborative terminals in the collaborative terminal group directly process the message to be signed, reducing the possibility of one party forging or committing fraud.
[0063] In one implementation, the present invention achieves its content through the following method and system structure, including:
[0064] Client: The initiator and issuer of collaborative signatures, typically a cryptographic module in the form of software running in the cloud or on a mobile device;
[0065] The collaborative terminal group consists of N collaborative terminals, which are connected sequentially, and the Nth collaborative terminal has a cryptographic machine HSM with hardware boundaries;
[0066] Collaborating End Group: This group consists of multiple collaborating ends, all of which are participants in the collaborative signature process. The collaborating ends are connected sequentially, with the last collaborating end being a hardware boundary cryptographic machine (HSM) and serving as the publisher of the shared public key.
[0067] Key proxy: Provides a proxy function for key injection when it is not possible to directly inject keys at the nodes of the quantum key distribution network;
[0068] Quantum key distribution network: includes quantum network nodes and quantum network link control center, and realizes services such as quantum key generation, quantum key relay, and quantum key provision;
[0069] Quantum network nodes: store the generated quantum keys, receive key requests from key brokers, and provide keys to key brokers or directly provide key filling services;
[0070] Quantum Network Link Control Center: Can establish quantum key distribution and relay links between nodes according to the quantum network node ID.
[0071] In one implementation, a large number of quantum keys are pre-loaded into the software or hardware cryptographic modules of the client and server using a quantum key distribution (QKD) network and a high-capacity secure storage medium such as a secure TF card or a secure USB key. Each quantum key is in the format of a 4-byte key ID + an L-byte key (where L is related to the encryption algorithm).
[0072] Based on the same inventive concept, embodiments of the present invention provide a method for multi-party collaborative signature fusion using quantum key distribution. This includes:
[0073] Step 1: Generate the first encryption parameters using the SM2 algorithm, obtain the first quantum key from the preset storage medium, and generate the first digest of the message to be signed by negotiating the encryption public key and the first quantum key with the client and multiple collaborating ends; the preset storage medium stores multiple quantum keys injected by the QKD network.
[0074] Step 2: Obtain the second quantum key from the preset storage medium, use the second quantum key to encrypt the first encryption parameter, the message to be signed and the first digest and generate the corresponding first integrity verification value to obtain the first encrypted data;
[0075] Step 3: The first encrypted data is sent to the collaborative end group, which consists of N collaborative ends connected sequentially. The Nth collaborative end has a hardware boundary cryptographic machine (HSM). The collaborative end group obtains a first quantum key and a second quantum key from the QKD network. Using the second quantum key, it performs integrity verification and decryption on the first encrypted data to obtain the first encryption parameters, the message to be signed, and a first digest. It then uses the first quantum key to generate a second digest of the message to be signed. After verifying that the first digest and the second digest are correct, the first collaborative end uses the SM2 algorithm to generate the second encryption parameters based on the first encryption parameters. The second to (N-1)th collaborative ends then sequentially use the SM2 algorithm... The algorithm updates the second encryption parameters produced by the previous cooperating end connected to the current cooperating end. The Nth cooperating end uses the SM2 algorithm to generate a third encryption parameter based on the first encryption parameter and all the second encryption parameters. The Nth cooperating end uses the second quantum key to encrypt the third encryption parameter and generate a corresponding second integrity check value, and then sends the second encrypted data to the client. The N-1th to the first cooperating end sequentially use the SM2 algorithm to reverse-engineer the second encryption parameter based on the third encryption parameter. The first cooperating end uses the second quantum key to encrypt the reverse-engineered second encryption parameter and generate a corresponding third integrity check value, and then sends the third encrypted data to the client.
[0076] Step four: Use the second quantum key to perform integrity verification and decryption on the second and third encrypted data to obtain the second encryption parameters and the third encrypted data, and generate a digital signature based on the second encryption parameters and the third encrypted data.
[0077] In one embodiment, before generating the first encryption parameters using the SM2 algorithm, obtaining the first quantum key from a preset storage medium, and generating the first digest of the message to be signed based on the encryption public key and the first quantum key obtained through key negotiation between the client and the server, the method further includes:
[0078] Obtain the pre-set elliptic curve parameters E(Fq), G, and n of the SM2 algorithm. Elliptic curve E is defined on the finite field Fq, and G represents the nth-order base point on elliptic curve E.
[0079] Generate a random number between [1, n-1], and use the generated random number as D. C Calculate the first private key data P1 = D C [*]G, [*] represents the generation of elliptic curve dot product operation. The third quantum key is obtained from the preset storage medium. The first private key data is encrypted using the third quantum key and a corresponding third integrity check value is generated to obtain the negotiated data.
[0080] The negotiated data is sent to the collaborative end group; the collaborative end group then obtains the third quantum key through the QKD network, uses the third quantum key to perform integrity verification and decryption of the negotiated data to obtain the first private key data, and each collaborative end generates a random number between [1, n-1]. The i-th collaborative end uses the generated random number as D. i Calculate P sequentially i =D i [*]P i-1 The Nth cooperating end calculates the public key P. G =P N -G=(D N …D1D c -1)[*]G, and publish the public key.
[0081] In one embodiment, generating the first encryption parameter using the SM2 algorithm specifically involves:
[0082] Generate a random number K0 between [1, n-1], and use Dc -1 Given the inverse of Dc on Fq, calculate Q = ((K0 + e) mod n)[*]G, S = D c -1 *(K0+e)mod n, where Q and S are used as the first encryption parameters;
[0083] Based on the encryption public key and the first quantum key obtained through key negotiation between the client and multiple collaborating parties, a first digest of the message to be signed is generated, including:
[0084] Calculate the first intermediate parameter Z based on GB / T 32918:
[0085] Z = HASH(ENTL) C ||ID C ||ENTL S ||ID S ||x G ||y G ||x||y)
[0086] Among them, ID C and ID SThese are the user identifiers for the client and the user identifiers for the collaborating end, respectively. S =D N ||…D1), ENTL C and ENTL S The length of the user identifier is x, respectively. G and y G Let G be the coordinates of the point on the elliptic curve, and x and y be the public key P. G The coordinates;
[0087] Calculate the second intermediate parameter M' based on Z and the message M to be signed:
[0088] M'=Z||ID key ||M
[0089] Among them, ID key The key ID for the first quantum key;
[0090] The first digest e of the message to be signed is obtained by performing a keyed hash operation on M' with the first quantum key: e = HMAC(M', Key1).
[0091] In one implementation, Key1 is the first quantum key, and the hash calculation for the signature uses hash operation with quantum key. Only those who possess or acquire a quantum key that matches their identity can perform correct signing and verification. The correctness and validity of the quantum key are guaranteed by the quantum key distribution system. This further enhances the security and trustworthiness of digital signatures in open environments on the basis of collaborative signature.
[0092] In one embodiment, the calculation process of the third encryption parameter is as follows: the first to the Nth cooperating end each generate a random number K located between [1, n-1]. i Q is calculated sequentially starting from the first cooperating end. i =(K i +e mod n)[*]Q i-1 Q1 = (K1 + emod n)[*]Q, calculate s i =D i -1 *(K i +e)*s i-1 mod n, D i -1 D i The inverse element on Fq, s1 = D1 -1 *(K1*e)*S mod n; The Nth cooperating end generates a random number K between [1, n-1], and calculates Q. K =K*D N mod n[*]G,(x1,y1)=Q N -QK =((K0+e)(K1+e)…(K N +e)-K*D N )mod n[*]G, and calculate r=x1+e mod n and S N =D N -1 *rK modm,D N -1 D N Inverse in Fq; r, Q K and s N S is used as the third encryption parameter; the calculation process for the second encryption parameter is as follows: the N-1th to the 1st cooperating end calculates S sequentially. i =D i -1 *S i+1 mod n,D i -1 D i The inverse in Fq, and S i As a second encryption parameter;
[0093] Generating a digital signature based on the second encryption parameter and the third encryption data includes:
[0094] Use the second quantum key to verify and decrypt the message to obtain r and s. N After summing S1, calculate s = s N +S1*D c -1 The `-r mod m` option converts the data type of (r,s) into a byte string according to the method in GB / T 32918, which is then used as a signature for message M and published externally along with the client user identifier and the list of collaborating end identifiers.
[0095] Based on the same inventive concept, embodiments of the present invention provide a fusion quantum key distribution multi-party collaborative signature method applied to a collaborative end group. The collaborative end group includes N collaborative ends, which are connected sequentially, and the Nth collaborative end has a hardware boundary cryptographic machine (HSM); the method includes:
[0096] The system receives first encrypted data sent by the client. The process of generating the first encrypted data is as follows: first encryption parameters are generated using the SM2 algorithm; a first quantum key is obtained from a preset storage medium; an encryption public key and the first quantum key are obtained through key negotiation between the client and multiple collaborating ends to generate a first digest of the message to be signed; a second quantum key is obtained from the preset storage medium; the first encryption parameters, the message to be signed, and the first digest are encrypted using the second quantum key, and a corresponding first integrity check value is generated to obtain the first encrypted data; the preset storage medium stores multiple quantum keys injected by the QKD network.
[0097] Obtain a first quantum key and a second quantum key from the QKD network; use the second quantum key to perform integrity verification and decryption on the first encrypted data to obtain the first encryption parameters, the message to be signed and the first digest; use the first quantum key to generate the second digest of the message to be signed.
[0098] After verifying the first and second digests, the first coordinating end uses the SM2 algorithm to generate a second encryption parameter based on the first encryption parameter. The second to (N-1)th coordinating ends sequentially use the SM2 algorithm to update the second encryption parameter generated by the previous coordinating end to which they are connected. The Nth coordinating end uses the SM2 algorithm to generate a third encryption parameter based on the first encryption parameter and all second encryption parameters. The Nth coordinating end uses a second quantum key to encrypt the third encryption parameter and generate a corresponding second integrity check value, obtaining second encrypted data which is then sent to the client. The (N-1)th to the first coordinating end sequentially use the SM2 algorithm to reverse-engineer the second encryption parameter based on the third encryption parameter. The first coordinating end uses a second quantum key to encrypt the reverse-engineered second encryption parameter and generate a corresponding third integrity check value, obtaining third encrypted data which is then sent to the client. This allows the client to use the second quantum key to perform integrity checks and decryption on the second and third encrypted data to obtain the second encryption parameter and the third encrypted data, and then generate a digital signature based on the second encryption parameter and the third encrypted data.
[0099] In one embodiment, before receiving the first encrypted data sent by the client, the method further includes:
[0100] The client receives negotiation data sent by the client. The process of generating the negotiation data is as follows: the client obtains the pre-set elliptic curve parameters E(Fq), G, and n of the SM2 algorithm. Elliptic curve E is defined on the finite field Fq, and G represents the nth-order base point on elliptic curve E. A random number between [1, n-1] is generated, and the generated random number is used as D. C Calculate the first private key data P1 = D C [*]G, [*] represents the generation of elliptic curve dot product operation. The third quantum key is obtained from the preset storage medium. The first private key data is encrypted using the third quantum key and a corresponding third integrity check value is generated to obtain the negotiated data.
[0101] The third quantum key is obtained through a QKD network. The third quantum key is used to perform integrity verification and decryption of the negotiated data to obtain the first private key data. Each collaborating end generates a random number between [1, n-1]. The i-th collaborating end uses the generated random number as D. i Calculate P sequentially i =D i [*]P i-1 The Nth cooperating end calculates the public key P.G =P N -G=(D N …D1D c -1)[*]G, and publish the public key.
[0102] In one embodiment, the process of generating the first encryption parameter is as follows: the client generates a random number K0 located between [1, n-1], and then... -1 Given the inverse of Dc on Fq, calculate Q = ((K0 + e) mod n)[*]G, S = D c -1 *(K0+e)mod n, where Q and S are used as the first encryption parameters;
[0103] The first to the Nth cooperating ends each generate a random number K located in the range [1, n-1]. i Q is calculated sequentially starting from the first cooperating end. i =(K i +e mod n)[*]Q i-1 Q1 = (K1 + e mod n)[*]Q, calculate s i =D i -1 *(K i +e)*s i-1 mod n, D i -1 D i The inverse element on Fq, s1 = D1 -1 *(K1*e)*S mod n; The Nth cooperating end generates a random number K between [1, n-1], and calculates Q. K =K*D N mod n[*]G,(x1,y1)=Q N -Q K =((K0+e)(K1+e)…(K N +e)-K*D N )mod n[*]G, and calculate r=x1+e mod n and S N =D N -1 *rK mod n,D N -1 D N Inverse in Fq; r, Q K and s N , as the third encryption parameter; the calculation process of the second encryption parameter is as follows: the N-1th to the 1st cooperating end calculates S sequentially. i =D i -1 *S i+1 mod n,Di -1 D i The inverse in Fq, and S i As the second encryption parameter;
[0104] Generating a digital signature based on the second encryption parameter and the third encryption data includes:
[0105] Use the second quantum key to verify and decrypt the message to obtain r and s. N After summing S1, calculate s = s N +S1*D c -1 -r mod n converts the data type of (r,s) into a byte string according to the method of GB / T 32918, which is used as a signature for message M and published externally along with the client user identifier and the list of collaborating end identifiers.
[0106] Based on the same inventive concept, embodiments of the present invention provide a fusion quantum key distribution multi-party collaborative signature device, which is applied to a client and includes:
[0107] The data processing module is used to generate the first encryption parameters using the SM2 algorithm, obtain the first quantum key from the preset storage medium, and generate the first digest of the message to be signed by obtaining the encryption public key and the first quantum key based on the key negotiation between the client and multiple collaborating ends; the preset storage medium stores multiple quantum keys injected by the QKD network;
[0108] An encryption module is used to obtain a second quantum key from a preset storage medium, use the second quantum key to encrypt a first encryption parameter, a message to be signed, and a first digest, and generate a corresponding first integrity verification value to obtain first encrypted data;
[0109] The data transmission module is used to send the first encrypted data to a collaborative end group, which includes N collaborative ends connected sequentially, with the Nth collaborative end having a hardware boundary cryptographic machine (HSM). The collaborative end group obtains a first quantum key and a second quantum key from the QKD network, uses the second quantum key to perform integrity verification and decryption of the first encrypted data to obtain the first encryption parameters, the message to be signed, and a first digest, and uses the first quantum key to generate a second digest of the message to be signed. After verifying that the first digest and the second digest are correct, the first collaborative end uses the SM2 algorithm to generate the second encryption parameters based on the first encryption parameters, and the second to (N-1)th collaborative ends sequentially... The SM2 algorithm is used to update the second encryption parameters produced by the previous coordinating end connected to this coordinating end. The Nth coordinating end uses the SM2 algorithm to generate the third encryption parameters based on the first encryption parameters and all the second encryption parameters. The Nth coordinating end uses the second quantum key to encrypt the third encryption parameters and generate the corresponding second integrity check value, and then sends the second encrypted data to the client. The N-1th to the first coordinating end sequentially use the SM2 algorithm to reverse-engineer the second encryption parameters based on the third encryption parameters. The first coordinating end uses the second quantum key to encrypt the reverse-engineered second encryption parameters and generate the corresponding third integrity check value, and then sends the third encrypted data to the client.
[0110] The first collaborative signature module is used to perform integrity verification and decryption of the second and third encrypted data using the second quantum key to obtain the second encryption parameters and the third encrypted data, and to generate a digital signature based on the second encryption parameters and the third encrypted data.
[0111] Based on the same inventive concept, embodiments of the present invention provide a fusion quantum key distribution multi-party collaborative signature device. The device is applied to a server group, which includes N collaborative terminals connected sequentially, with the Nth collaborative terminal possessing a cryptographic machine (HSM) with hardware boundaries; including:
[0112] The data receiving module is used to receive the first encrypted data sent by the client. The process of generating the first encrypted data is as follows: first encryption parameters are generated using the SM2 algorithm; a first quantum key is obtained from a preset storage medium; an encryption public key and the first quantum key are obtained through key negotiation between the client and multiple collaborating ends to generate a first digest of the message to be signed; a second quantum key is obtained from the preset storage medium; the first encryption parameters, the message to be signed, and the first digest are encrypted using the second quantum key, and a corresponding first integrity check value is generated to obtain the first encrypted data; the preset storage medium stores multiple quantum keys injected by the QKD network.
[0113] The decryption module is used to obtain a first quantum key and a second quantum key from the QKD network, use the second quantum key to perform integrity verification and decryption on the first encrypted data to obtain the first encrypted parameters, the message to be signed and the first digest, and use the first quantum key to generate the second digest of the message to be signed.
[0114] In the second collaborative signature module, after verifying the first and second digests, the first collaborative terminal uses the SM2 algorithm to generate a second encryption parameter based on the first encryption parameter. The second to N-1th collaborative terminals sequentially use the SM2 algorithm to update the second encryption parameter generated by the previous collaborative terminal they are connected to. The Nth collaborative terminal uses the SM2 algorithm to generate a third encryption parameter based on the first encryption parameter and all second encryption parameters. The Nth collaborative terminal uses the second quantum key to encrypt the third encryption parameter and generate a corresponding second integrity check value, obtaining second encrypted data which is then sent to the client. The N-1th to the first collaborative terminal sequentially use the SM2 algorithm to reverse-engineer the second encryption parameter based on the third encryption parameter. The first collaborative terminal uses the second quantum key to encrypt the reverse-engineered second encryption parameter and generate a corresponding third integrity check value, obtaining third encrypted data which is then sent to the client. This allows the client to use the second quantum key to perform integrity verification and decryption on the second and third encrypted data to obtain the second encryption parameter and the third encrypted data, and then generate a digital signature based on the second encryption parameter and the third encrypted data.
[0115] In the above embodiments, implementation can be achieved entirely or partially through software, hardware, firmware, or any combination thereof. When implemented using software, it can be implemented entirely or partially in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, all or part of the processes or functions described in the embodiments of the present invention are generated. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, the computer instructions can be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via wired (e.g., coaxial cable, fiber optic, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server or data center that integrates one or more available media. The available medium can be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium (e.g., solid-state drive (SSD)).
[0116] It should be noted that, in this document, relational terms such as "first" and "second" are used merely to distinguish one entity or operation from another, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Furthermore, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Without further limitations, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes said element.
[0117] The various embodiments in this specification are described in a related manner. Similar or identical parts between embodiments can be referred to mutually. Each embodiment focuses on describing the differences from other embodiments. In particular, the system and device embodiments are basically similar to the method embodiments, so the descriptions are relatively simple; relevant parts can be referred to the descriptions of the method embodiments.
[0118] The foregoing has provided a detailed description of one embodiment of the present invention, but this description is merely a preferred embodiment and should not be construed as limiting the scope of the invention. All equivalent variations and modifications made within the scope of the claims of this invention should still fall within the patent coverage of this invention.
Claims
1. A fusion quantum key distribution multi-party cooperative signature system, characterized in that, The system comprises a client, a collaborative terminal group and a quantum key distribution (QKD) network; the collaborative terminal group comprises N collaborative terminals, the N collaborative terminals are connected in sequence, and the Nth collaborative terminal has a hardware boundary cryptographic machine (HSM); wherein: The client is configured to obtain a first quantum key and a second quantum key from a preset storage medium, generate a first encryption parameter by using an SM2 algorithm, generate a first digest of a message to be signed according to an encryption public key obtained by key negotiation between the client and the collaborative terminal group and the first quantum key, encrypt the first encryption parameter, the message to be signed and the first digest by using the second quantum key, and generate a corresponding first integrity check value to obtain first encryption data and send the first encryption data to the collaborative terminal group; and the preset storage medium stores a plurality of quantum keys injected by the QKD network. The collaborative terminal group is configured to obtain the first quantum key and the second quantum key from the QKD network, perform integrity check and decryption on the first encryption data by using the second quantum key to obtain the first encryption parameter, the message to be signed and the first digest, generate a second digest of the message to be signed by using the first quantum key, compare the first digest and the second digest, and if the comparison result is correct, generate a second encryption parameter according to the first encryption parameter by using an SM2 algorithm, update the second encryption parameter generated by a previous collaborative terminal connected to the collaborative terminal by using an SM2 algorithm, generate a third encryption parameter according to the first encryption parameter and all the second encryption parameters by using an SM2 algorithm, encrypt the third encryption parameter by using the second quantum key, generate a corresponding second integrity check value, obtain second encryption data, and send the second encryption data to the client; and the N-1th to first collaborative terminals update the second encryption parameter according to the third encryption parameter by using an SM2 algorithm in sequence, the first collaborative terminal encrypts the second encryption parameter obtained by reverse calculation by using the second quantum key, generates a corresponding third integrity check value, obtains third encryption data, and sends the third encryption data to the client. The client is further configured to perform integrity check and decryption on the second encryption data and the third encryption data by using the second quantum key to obtain the second encryption parameter and the third encryption parameter, and generate a digital signature according to the second encryption parameter and the third encryption parameter.
2. A method for multi-party collaborative signature based on fusion quantum key distribution, characterized in that, The method is applied to a client and comprises the following steps: generating a first encryption parameter by using an SM2 algorithm, obtaining a first quantum key from a preset storage medium, and generating a first digest of a message to be signed according to an encryption public key obtained by key negotiation between the client and a collaborative terminal group and the first quantum key; the preset storage medium stores a plurality of quantum keys injected by a quantum key distribution (QKD) network; obtaining a second quantum key from the preset storage medium, encrypting the first encryption parameter, the message to be signed and the first digest by using the second quantum key, and generating a corresponding first integrity check value to obtain first encryption data; sending the first encrypted data to the collaborative end group, the collaborative end group including N collaborative ends, the N collaborative ends being connected in sequence, and an Nth collaborative end having a hardware boundary cryptographic machine (HSM); so that the collaborative end group obtains the first quantum key and the second quantum key from the quantum key distribution (QKD) network, uses the second quantum key to perform integrity verification and decryption on the first encrypted data to obtain the first encryption parameter, the message to be signed, and the first digest, and uses the first quantum key to generate a second digest of the message to be signed; after the first digest and the second digest are compared and found to be correct, a first collaborative end generates a second encryption parameter according to the first encryption parameter using an SM2 algorithm, a second collaborative end to an (N-1)th collaborative end successively update the second encryption parameter generated by a previous collaborative end connected to the collaborative end using the SM2 algorithm, and an Nth collaborative end generates a third encryption parameter according to the first encryption parameter and all the second encryption parameters using the SM2 algorithm, and the Nth collaborative end encrypts the third encryption parameter using the second quantum key and generates a corresponding second integrity verification value, to obtain second encrypted data that is sent to the client; an (N-1)th collaborative end to a first collaborative end successively use the SM2 algorithm to inversely deduce the second encryption parameter according to the third encryption parameter, and the first collaborative end encrypts the inversely deduced second encryption parameter using the second quantum key and generates a corresponding third integrity verification value, to obtain third encrypted data that is sent to the client; using the second quantum key to perform integrity verification and decryption on the second encrypted data and the third encrypted data to obtain the second encryption parameter and the third encryption parameter, and generating a digital signature according to the second encryption parameter and the third encryption parameter.
3. The method of claim 2, wherein, Before generating the first encryption parameter using the SM2 algorithm, obtaining the first quantum key in a preset storage medium, and generating the first digest of the message to be signed according to the encryption public key obtained through key negotiation between the client and the collaborative end and the first quantum key, the method further includes: obtaining pre-set elliptic curve parameters E(Fq), G, and n of the SM2 algorithm, the elliptic curve E being an elliptic curve defined on a finite field Fq, and G representing a base point of the order n on the elliptic curve E; generating a random number between [1, n-1], taking the generated random number as D C , calculating a first private key data P1=D C [ ]G,[ ] represents an elliptic curve point multiplication operation generation, obtaining a third quantum key in a preset storage medium, encrypting the first private key data using the third quantum key and generating a corresponding third integrity check value to obtain negotiation data; The negotiation data is sent to the collaborative end group; so that the collaborative end group obtains the third quantum key through the quantum key distribution QKD network, uses the third quantum key to perform integrity check and decryption on the negotiation data to obtain the first private key data, each collaborative end generates a random number between [1, n-1], and the ith collaborative end takes the generated random number as D i , and sequentially calculates P i =D i [ ]P i-1 ; the Nth collaborative end calculates the public key P G =P N -G=(D N …D1D c -1)[ ]G, and publishes the public key.
4. The method of claim 3, wherein, generating the first encryption parameter using the SM2 algorithm specifically includes: A random number K0 between [1, n-1] is generated, and D c -1 For D c The inverse element on Fq is calculated, and Q = ((K0+e) mod n) ]G, S = D c -1 (K0+e) mod n, and Q and S are taken as the first encryption parameters; generating the first digest of the message to be signed according to the encryption public key obtained through key negotiation between the client and the plurality of collaborative ends and the first quantum key includes: calculating a first intermediate parameter Z based on GB / T 32918: Z = HASH(ENTL C || ID C || ENTL S || ID S || x G || y G || x||y) ID C and ID S are respectively the user identification of the client and the user identification of the cooperative end (ID S = D N ||…D1), ENTL C and ENTL S are respectively the identification length of the user identification, x G and y G are the coordinates of the elliptic curve G point, and x and y are the coordinates of the public key P G . calculating a second intermediate parameter M' according to Z and the message to be signed M: M' = Z || ID key || M ID key is a key ID of the first quantum key; performing a keyed hash operation on M' using the first quantum key to obtain the first digest e of the message to be signed: e = HMAC (M', Key1).
5. The method of claim 4, wherein, The third encryption parameter is calculated as follows: the first to the Nth cooperative terminals generate a random number K between 1 and n-1 respectively i The Q is calculated in turn from the first cooperative terminal i =(K i +e mod n)[ ]Q i-1 ,Q1=(K1+e mod n)[ ]Q, and s i = D i -1 (K i +e) s i-1 mod n, D i -1 is the inverse element of D i in Fq, s1= D1 -1 (K1 e) S mod n; the Nth cooperative terminal generates a random number K between 1 and n-1, and calculates Q K =K D N mod n[ ]G,(x1,y1)=Q N -Q K =((K0+e)(K1+e)…(K n +e)-K D N ) mod n [ ]G, and calculates r=x1+e mod n and S N =D N -1 r-K mod n,D N -1 is the inverse element of D N in Fq; r, Q K and s N are taken as the third encryption parameter; the second encryption parameter is calculated as follows: the Nth-1 to the first cooperative terminals calculate S i = D i -1 S i+1 mod n,D i -1 is the inverse element of D i in Fq, and S i is taken as the second encryption parameter; generating a digital signature according to the second encryption parameter and the third encryption parameter includes: Using the second quantum key to verify and decrypt the message to obtain r, s N and S1, calculate s = s N + S1 D c -1 -r mod n, convert the data type of (r, s) to a byte string according to the method of GB / T 32918 as the signature of the message M and publish it together with the client user identification and the list of collaborative end identifications.
6. A method for multi-party collaborative signature based on fusion quantum key distribution, characterized in that, The method is applied to a collaborative end group, the collaborative end group including N collaborative ends, the N collaborative ends being connected in sequence, and an Nth collaborative end having a hardware boundary cryptographic machine (HSM); the method includes: receive first encrypted data sent by a client; the first encrypted data is generated by using an SM2 algorithm to generate a first encryption parameter, obtaining a first quantum key from a preset storage medium, and generating a first digest of a message to be signed according to an encryption public key obtained through key negotiation between the client and a plurality of collaborative terminals and the first quantum key; obtaining a second quantum key from the preset storage medium, and encrypting the first encryption parameter, the message to be signed and the first digest by using the second quantum key to generate a corresponding first integrity check value, thereby obtaining the first encrypted data; the preset storage medium stores a plurality of quantum keys injected by a quantum key distribution (QKD) network; obtain the first quantum key and the second quantum key from the QKD network, and perform integrity check and decryption on the first encrypted data by using the second quantum key to obtain the first encryption parameter, the message to be signed and the first digest, and generate a second digest of the message to be signed by using the first quantum key; after the first digest and the second digest are compared and found to be correct, a first collaborative terminal generates a second encryption parameter according to the first encryption parameter by using an SM2 algorithm, the second to (N-1)th collaborative terminals update the second encryption parameter generated by a previous collaborative terminal connected to the collaborative terminal in sequence by using the SM2 algorithm, an Nth collaborative terminal generates a third encryption parameter according to the first encryption parameter and all the second encryption parameters by using the SM2 algorithm, and the Nth collaborative terminal encrypts the third encryption parameter by using the second quantum key to generate a corresponding second integrity check value, thereby obtaining second encrypted data that is sent to the client; the (N-1)th to first collaborative terminals update the second encryption parameter in sequence according to the third encryption parameter by using the SM2 algorithm, and the first collaborative terminal encrypts the second encryption parameter obtained by updating to generate a corresponding third integrity check value, thereby obtaining third encrypted data that is sent to the client; so that the client performs integrity check and decryption on the second encrypted data and the third encrypted data by using the second quantum key to obtain the second encryption parameter and the third encryption parameter, and generates a digital signature according to the second encryption parameter and the third encryption parameter.
7. The method of claim 6, wherein, Before receiving the first encrypted data sent by the client, the method further comprises: Receiving the negotiation data sent by the client; the generation process of the negotiation data is: the client obtains the elliptic curve parameters E(Fq), G and n of the pre-set SM2 algorithm, the elliptic curve E is defined on the finite field Fq, G represents the base point of the n-order on the elliptic curve E; a random number between [1, n-1] is generated, and the generated random number is taken as D C , the first private key data P1=D C [ ]G,[ ] represents the elliptic curve point multiplication operation generation, obtains the third quantum key in the pre-set storage medium, encrypts the first private key data using the third quantum key and generates the corresponding third integrity check value, and obtains the negotiation data; The third quantum key is obtained through the quantum key distribution (QKD) network, the first private key data is obtained by using the third quantum key to perform integrity check and decryption on the negotiation data, each cooperative end generates a random number between 1 and n-1, and the i-th cooperative end takes the generated random number as D i , and sequentially calculates P i =D i [ ]P i-1 ; the Nth cooperative end calculates the public key P G =P N -G=(D N …D1D c -1)[ ]G, and publishes the public key.
8. The method of claim 7, wherein, The first encryption parameter is generated by the client generating a random number K0 between 1 and n-1, taking D c -1 for D c The inverse element on Fq is calculated, Q = ((K0+e) mod n) ]G, S = D c -1 (K0+e) mod n, and taking Q and S as the first encryption parameter; The first to the Nth cooperative terminals generate a random number K between 1 and n-1 respectively i The Q is calculated by the first cooperative terminal in turn i =(K i +e mod n)[ ]Q i-1 ,Q1=(K1+e mod n)[ ]Q, and s i = D i -1 (K i +e) s i-1 mod n, D i -1 is the inverse element of D i in Fq, s1= D1 -1 (K1 e) S mod n;The Nth cooperative terminal generates a random number K between 1 and n-1, and calculates Q K =K D N mod n[ ]G,(x1,y1)=Q N -Q K =((K0+e)(K1+e)…(K n +e)-K D N ) mod n [ ]G, and calculates r=x1+e mod n and S N =D N -1 r-K mod n,D N -1 is the inverse element of D N in Fq; r, Q K and s N are taken as the third encryption parameter; the second encryption parameter is calculated as follows: the Nth-1 to the first cooperative terminals calculate S i = D i -1 S i+1 modn, D i -1 is the inverse element of D i in Fq, and S i is taken as the second encryption parameter; generating a digital signature according to the second encryption parameter and the third encryption parameter comprises: Using the second quantum key to verify and decrypt the message to obtain r, s N and S1, calculate s = s N + S1 D c -1 -r mod n, convert the data type of (r, s) to a byte string according to the method of GB / T 32918 as the signature of the message M and publish it together with the client user identification and the list of collaborative end identifications.
9. A fusion quantum key distribution multi-party cooperative signature device, characterized in that, The apparatus is applied to a client and comprises: a data processing module configured to generate a first encryption parameter by using an SM2 algorithm, obtain a first quantum key from a preset storage medium, and generate a first digest of a message to be signed according to an encryption public key obtained through key negotiation between the client and a plurality of collaborative terminals and the first quantum key; the preset storage medium stores a plurality of quantum keys injected by a quantum key distribution (QKD) network; an encryption module configured to obtain a second quantum key from the preset storage medium, and encrypt the first encryption parameter, the message to be signed and the first digest by using the second quantum key to generate a corresponding first integrity check value, thereby obtaining the first encrypted data; The data sending module is configured to send the first encrypted data to the collaborative end group, the collaborative end group including N collaborative ends, the N collaborative ends being connected in sequence, and an Nth collaborative end having a hardware boundary cryptographic machine HSM; so that the collaborative end group obtains the first quantum key and the second quantum key from the quantum key distribution QKD network, uses the second quantum key to perform integrity check and decryption on the first encrypted data to obtain the first encryption parameter, the message to be signed, and the first digest, and uses the first quantum key to generate a second digest of the message to be signed; after the first digest and the second digest are compared and found to be correct, a first collaborative end generates a second encryption parameter according to the first encryption parameter using an SM2 algorithm, a second collaborative end to an (N-1)th collaborative end sequentially update the second encryption parameter generated by a previous collaborative end connected to the collaborative end using the SM2 algorithm, and an Nth collaborative end generates a third encryption parameter according to the first encryption parameter and all the second encryption parameters using the SM2 algorithm, and the Nth collaborative end encrypts the third encryption parameter using the second quantum key and generates a corresponding second integrity check value, and sends the second encrypted data to the client; the (N-1)th collaborative end to the first collaborative end sequentially use the SM2 algorithm to inversely deduce the second encryption parameter according to the third encryption parameter, and the first collaborative end encrypts the inversely deduced second encryption parameter using the second quantum key and generates a corresponding third integrity check value, and sends the third encrypted data to the client; The first collaborative signature module is configured to use the second quantum key to perform integrity check and decryption on the second encrypted data and the third encrypted data to obtain the second encryption parameter and the third encryption parameter, and generate a digital signature according to the second encryption parameter and the third encryption parameter.
10. A fusion quantum key distribution multi-party cooperative signature device, characterized in that, The device is applied to a collaborative end group, the collaborative end group including N collaborative ends, the N collaborative ends being connected in sequence, and an Nth collaborative end having a hardware boundary cryptographic machine HSM; and includes: The data receiving module is configured to receive first encrypted data sent by a client; the first encrypted data is generated in the following process: generating a first encryption parameter using an SM2 algorithm, obtaining a first quantum key in a preset storage medium, generating a first digest of a message to be signed according to an encryption public key obtained through key negotiation between the client and a plurality of collaborative ends and the first quantum key, obtaining a second quantum key in the preset storage medium, and encrypting the first encryption parameter, the message to be signed, and the first digest using the second quantum key and generating a corresponding first integrity check value to obtain the first encrypted data; and the preset storage medium stores a plurality of quantum keys injected by a quantum key distribution QKD network. The decryption module is configured to obtain the first quantum key and the second quantum key from the quantum key distribution (QKD) network, perform integrity check and decryption on the first encrypted data using the second quantum key to obtain the first encrypted parameter, the message to be signed, and the first digest, and generate a second digest of the message to be signed using the first quantum key; The second collaborative signature module is configured to, after the first digest and the second digest are compared and found to be correct, generate a second encrypted parameter according to the first encrypted parameter using the SM2 algorithm at the first collaborative end, sequentially update the second encrypted parameter generated by the previous collaborative end connected to the collaborative end using the SM2 algorithm at the second to (N-1)th collaborative end, generate a third encrypted parameter according to the first encrypted parameter and all the second encrypted parameters using the SM2 algorithm at the Nth collaborative end, encrypt the third encrypted parameter using the second quantum key at the Nth collaborative end and generate a corresponding second integrity check value, obtain second encrypted data, and send the second encrypted data to the client, sequentially reverse the second encrypted parameter according to the third encrypted parameter using the SM2 algorithm at the (N-1)th to first collaborative end, encrypt the reversed second encrypted parameter using the second quantum key at the first collaborative end and generate a corresponding third integrity check value, obtain third encrypted data, and send the third encrypted data to the client; so that the client performs integrity check and decryption on the second encrypted data and the third encrypted data using the second quantum key to obtain the second encrypted parameter and the third encrypted parameter, and generates a digital signature according to the second encrypted parameter and the third encrypted parameter.
Citation Information
Patent Citations
Signing and decrypting method and system applied to cloud computing and based on SM2 algorithm
CN104243456A
Multi-party collaborative signature method and system based on SM2
CN111147246A
Multi-party collaborative signature method and system
CN113468580A