Collaborative Signature Verification Method, System, Device and Storage Medium
By generating and verifying the number of points and message digests of the elliptic curve, ensuring that the initiator and collaborative end use collaborative signature technology correctly, the problem of inability to verify collaborative signature methods in the existing technology is solved, and the reliability and security of signatures are achieved.
Patent Information
- Application Number
- CN202510295691.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-03-13
- Publication Date
- 2025-07-08
- Estimated Expiration
- 2045-03-13
AI Technical Summary
The existing collaborative signature algorithm cannot determine whether the initiator adopts collaborative signature method, resulting in security risks, and the attacker may tamper with or forge signed data.
By obtaining the signature values of the initiator and the collaborative end, generating the number of elliptic curve points and message digest, calculating the third signature value, and performing consistency verification to ensure that each participant correctly participates in the collaborative signature process.
Ensure the reliability and security of signatures, prevent forgery of signatures, and improve the overall security of the system.
Smart Images

Figure CN119835089B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the technical field of data transmission security, and particularly relates to a collaborative signature verification method, system, device, and storage medium. Background Art
[0002] Collaborative signature is a digital signature technology that allows multiple parties to jointly generate a signature. In this mechanism, each participating party (usually the initiating end and the collaborative end) contributes part of the signature data, and finally a joint signature is generated, which is applicable to the scenario where the collaborative end does not need to know the message content but needs to audit the signature information digest. In a general collaborative signature mechanism, the initiating end sends the digest of the message to the collaborative end, the collaborative end calculates a partial signature and returns it to the initiating end, and the initiating end then calculates and outputs the final signature, thereby ensuring the decentralization and security of the signature process and preventing any entity from independently controlling the entire signature process.
[0003] However, the existing collaborative signature algorithms cannot determine whether the collaborative signature method is used during the signature verification process initiated by the initiating end. For example, the initiating end directly sends the signature data to the backend for verification without using the collaborative signature method, which means that the signature process will be controlled unilaterally, and attackers may tamper with the signature data or forge a signature, thereby bypassing the security verification. For example, attackers can intercept and modify the signature data, or directly generate a forged signature and send it to the backend for verification, resulting in security vulnerabilities and potential security risks.
[0004] Therefore, how to effectively verify whether the initiating end and the collaborative end correctly use the collaborative signature technology is an urgent problem to be solved at present. Summary of the Invention
[0005] The main purpose of this application is to provide a collaborative signature verification method, system, device, and storage medium, aiming to effectively verify whether the initiating end and the collaborative end correctly use the collaborative signature technology.
[0006] To achieve the above object, this application proposes a collaborative signature verification method, which is applied to a verification end, and the method includes:
[0007] Obtain the process data after the initiating end completes the collaborative signature, where the process data includes a first signature value and a second signature value;
[0008] Based on the process data, the first signature value, and the second signature value, obtain a first verification result;
[0009] Generate the number of points on the elliptic curve and the message digest, and send the number of points on the elliptic curve and the message digest to the collaborative end for the collaborative end to determine the collaborative end private key. Based on the collaborative end private key, the number of points on the elliptic curve, and the message digest, calculate the third signature value and send the third signature value to the verification end;
[0010] Receive the third signature value returned by the collaborative end, and calculate the fourth signature value based on the number of points on the elliptic curve and the message digest, so as to obtain the second verification result based on the third signature value and the fourth signature value;
[0011] Generate a collaborative signature verification result based on the first verification result and the second verification result.
[0012] In one embodiment, the method further includes:
[0013] Obtain the collaborative end public key corresponding to the collaborative end, where the collaborative end public key includes a first parameter value and a second parameter value;
[0014] Calculate the first parameter value and the second parameter value with a preset elliptic curve equation to determine whether the collaborative end public key satisfies the preset elliptic curve equation;
[0015] If not, terminate the collaborative signature verification process.
[0016] In one embodiment, the method further includes:
[0017] Send the message digest to the collaborative end for the collaborative end to sign based on the message digest, generate a fifth signature value, and return the fifth signature value to the verification end;
[0018] Receive the fifth signature value returned by the collaborative end and determine the collaborative end public key;
[0019] Verify the fifth signature value based on the collaborative end public key to verify the legitimacy of the collaborative end.
[0020] In one embodiment, the obtaining the first verification result based on the process data, the first signature value, and the second signature value includes:
[0021] Detect whether there is a message digest and an elliptic curve point in the process data;
[0022] If so, extract the third parameter value and the fourth parameter value in the first signature value and the fifth parameter value and the sixth parameter value in the second signature value, and perform consistency verification on the third parameter value and the fifth parameter value;
[0023] If the verification passes, verify the correctness of the fourth parameter value and the sixth parameter value according to the first preset verification formula;
[0024] If the verification passes, it is determined that the collaborative signature technology is correctly used when the initiating end and the collaborative end perform collaborative signature to generate a first verification result.
[0025] In one embodiment, obtaining the second verification result based on the third signature value and the fourth signature value includes:
[0026] Determine a first random number, a collaborative end public key, and a message digest, and calculate, based on a second preset verification formula, the first random number, the collaborative end public key, and the message digest with the third signature value to obtain a seventh parameter value corresponding to the third signature value;
[0027] Perform a consistency comparison between the seventh parameter value and an eighth parameter value corresponding to the fourth signature value;
[0028] If the comparison is successful, it is determined that the collaborative end participates in the collaborative signature process to generate a second verification result.
[0029] The present application proposes a collaborative signature verification method, which is applied to a collaborative end and includes:
[0030] Receive the elliptic curve point number and the message digest sent by the verification end, and determine the private key of the collaborative end;
[0031] Calculate a third signature value based on the private key of the collaborative end, the elliptic curve point number, and the message digest;
[0032] Send the third signature value to the verification end for the verification end to calculate a fourth signature value based on the elliptic curve point number and the message digest, so as to obtain a second verification result based on the third signature value and the fourth signature value, and generate a collaborative signature verification result based on the first verification result and the second verification result, where the first verification result is generated based on process data, a first signature value, and a second signature value.
[0033] In addition, to achieve the above object, the present application also proposes a collaborative signature verification system, and the collaborative signature verification system includes:
[0034] The verification end is used to obtain the process data after the initiating end and the collaborative end complete the collaborative signature, where the process data includes a first signature value and a second signature value; based on the process data, the first signature value, and the second signature value, obtain a first verification result; generate an elliptic curve point number and a message digest, and send the elliptic curve point number and the message digest to the collaborative end for the collaborative end to determine the collaborative end private key, calculate a third signature value based on the collaborative end private key, the elliptic curve point number, and the message digest, and send the third signature value to the verification end; receive the third signature value returned by the collaborative end, calculate a fourth signature value based on the elliptic curve point number and the message digest, and obtain a second verification result based on the third signature value and the fourth signature value; generate a collaborative signature verification result based on the first verification result and the second verification result;
[0035] The collaborative end is used to receive the elliptic curve point number and the message digest sent by the verification end and determine the collaborative end private key; calculate a third signature value based on the collaborative end private key, the elliptic curve point number, and the message digest; send the third signature value to the verification end for the verification end to calculate a fourth signature value based on the elliptic curve point number and the message digest, obtain a second verification result based on the third signature value and the fourth signature value, and generate a collaborative signature verification result based on the first verification result and the second verification result, where the first verification result is generated based on the process data, the first signature value, and the second signature value.
[0036] In addition, to achieve the above object, the present application also proposes a collaborative signature verification device, which includes: a memory, a processor, and a computer program stored on the memory and executable on the processor, and the computer program is configured to implement the steps of the collaborative signature verification method as described above.
[0037] In addition, to achieve the above object, the present application also proposes a storage medium, which is a computer-readable storage medium, and a computer program is stored on the storage medium, and when the computer program is executed by a processor, it implements the steps of the collaborative signature verification method as described above.
[0038] In addition, to achieve the above object, the present application also provides a computer program product, which includes a computer program, and when the computer program is executed by a processor, it implements the steps of the collaborative signature verification method as described above.
[0039] The present application provides a collaborative signature verification method, system, device, and storage medium. The collaborative signature verification method obtains the process data after the initiating end completes the collaborative signature. Among them, the process data includes a first signature value and a second signature value. Then, based on the process data, the first signature value, and the second signature value, a first verification result is obtained. Thereby, the number of elliptic curve points and the message digest are generated, and the number of elliptic curve points and the message digest are sent to the collaborative end for the collaborative end to determine the collaborative end private key. Based on the collaborative end private key, the number of elliptic curve points, and the message digest, a third signature value is calculated, and the third signature value is sent to the verification end. Then, the third signature value returned by the collaborative end is received, and a fourth signature value is calculated based on the number of elliptic curve points and the message digest. To obtain a second verification result based on the third signature value and the fourth signature value, and then based on the first verification result and the second verification result, a collaborative signature verification result is generated, thereby ensuring that each participating party has correctly participated in the collaborative signature process, and each step has a clear verification mechanism to ensure the reliability, effectiveness of the signature, and the legality and effectiveness of the participating parties, thus jointly ensuring the effectiveness and security of the collaborative signature mechanism and improving the overall security of the system. BRIEF DESCRIPTION OF THE DRAWINGS
[0040] The accompanying drawings herein are incorporated into the specification and constitute a part of this specification, showing embodiments consistent with the present application, and are used together with the specification to explain the principles of the present application.
[0041] To more clearly illustrate the technical solutions in the embodiments of the present application or the prior art, the following will briefly introduce the drawings required for use in the description of the embodiments or the prior art. Obviously, for those of ordinary skill in the art, without creative efforts, other drawings can also be obtained based on these drawings.
[0042] Figure 1 It is a schematic flowchart provided for Embodiment 1 of the collaborative signature verification method of the present application;
[0043] Figure 2 It is a schematic flowchart provided for the generation of the joint signature public key of the collaborative signature verification method of the present application;
[0044] Figure 3 It is a schematic flowchart provided for Embodiment 2 of the collaborative signature verification method of the present application;
[0045] Figure 4 It is a schematic flowchart provided for Embodiment 3 of the collaborative signature verification method of the present application;
[0046] Figure 5 It is a schematic module structure diagram of the collaborative signature verification system according to the embodiment of the present application;
[0047] Figure 6 It is a schematic diagram of the device structure of the hardware operating environment involved in the collaborative signature verification method in the embodiments of this application.
[0048] The realization of the purpose of this application, its functional characteristics and advantages will be further described with reference to the embodiments and the accompanying drawings. Specific embodiments
[0049] It should be understood that the specific embodiments described herein are only used to explain the technical solutions of this application and are not used to limit this application.
[0050] In order to better understand the technical solutions of this application, the following will be described in detail with reference to the drawings of the specification and specific embodiments.
[0051] It should be noted that the execution subject of this embodiment can be a computing service device with data processing, network communication and program running functions, such as a tablet computer, a personal computer, a mobile phone, etc., or an electronic device, a big data service platform, a collaborative signature verification system, etc. that can implement the above functions. The following takes the collaborative signature verification system as an example to illustrate this embodiment and the following embodiments.
[0052] Based on this, the embodiments of this application provide a collaborative signature verification method, with reference to Figure 1 , Figure 1 It is a schematic flow chart provided for the first embodiment of the collaborative signature verification method of this application.
[0053] In this embodiment, the collaborative signature verification method includes steps S11 to S13:
[0054] Step S11, obtaining the process data after the initiating end completes the collaborative signature, where the process data includes a first signature value and a second signature value;
[0055] It should be noted that the initiating end refers to the participating party that sends the first-round information during the operation of the protocol. Among them, the initiating end (initiating party) may be untrusted (a fake initiating end) or a real initiating end, which needs to be verified by the verification end before confirmation. The initiating end includes an initiating end private key d1 ∈ [1, n - 1], and the private key d1 is not publicly disclosed; the initiating end public key P1 = [d1]G, and the initiating end key pair (d1, P1); P1 is publicly disclosed to the verification end; the combined public key is P A = [d1]P2 - G, P A is publicly disclosed to the verification end, where G is a point on a predefined elliptic curve, used to generate other points on the elliptic curve; P2 is the collaborative end public key.
[0056] Further, it should be noted that the verification end (evaluation party) represents an evaluation institution that detects whether the collaborative signature algorithm mechanism is implemented correctly and effectively and whether the collaborative end truly participates in the collaborative signature algorithm. The verification end can separately call the collaborative end and the initiating end to perform SM2 signature verification operations, so the parameters obtained by the verification end may include P A (joint public key), P2 (public key of the collaborative end); other SM2 elliptic curve public parameters (base point G, k times point of point P on the elliptic curve, k is a positive integer, n is the order of the base point G, etc.); process data of the collaborative signature between the initiating end and the collaborative end, including message digest e, Q1 (representing the number of points on the elliptic curve); partial signature values (r, s2) sent by the collaborative end to the initiating end; message M transmitted by the initiating end, joint signature value (r, s) of message M.
[0057] Additionally, the process data refers to all data generated and transmitted by the initiating end during the collaborative signature process, including message digest e, elliptic curve points (Q1, Q2,...), random numbers (k1, k2,...), first signature value, second signature value, etc. Among them, the first signature value refers to the partial signature value (r, s2) generated by the collaborative end and sent to the initiating end to generate the final joint signature value; the second signature value refers to the joint signature value (r, s) generated by the initiating end after receiving the partial signature value.
[0058] Specifically, a network packet capture tool (such as Wireshark) can be used to capture the data packets sent by the initiating end to the collaborative end, etc., which is not limited here.
[0059] Step S12, obtain a first verification result based on the process data, the first signature value, and the second signature value;
[0060] It should be noted that the first verification result refers to the result after the verification end verifies the signature values of the initiating end and the collaborative end, and is used to verify whether the initiating end and the collaborative end correctly use the collaborative signature technology for collaborative signature.
[0061] Specifically, detect whether there is a message digest and elliptic curve points in the process data. If so, then extract the third parameter value and the fourth parameter value in the first signature value and the fifth parameter value and the sixth parameter value in the second signature value, and perform consistency verification on the third parameter value and the fifth parameter value. If the verification passes, then according to the first preset verification formula, verify the correctness of the fourth parameter value and the sixth parameter value. If the verification passes, then determine that the initiating end and the collaborative end correctly use the collaborative signature technology when performing collaborative signature to generate the first verification result.
[0062] Step S13: Generate the number of points on the elliptic curve and the message digest, and send the number of points on the elliptic curve and the message digest to the collaborating end for the collaborating end to determine the private key of the collaborating end. Based on the private key of the collaborating end, the number of points on the elliptic curve, and the message digest, calculate the third signature value and send the third signature value to the verification end;
[0063] It should be noted that the number of points on the elliptic curve refers to the points generated on the elliptic curve, which are usually used in the signature and verification processes to generate signature values and verify the correctness of signatures. For example, Q1 = [k1]P2, Q2 = [k2]G, etc. The message digest refers to the fixed-length digest value obtained by performing a hash operation on the original message, which is used to ensure the integrity and consistency of the message and prevent the message from being tampered with. For example, e = H v (M), where H v () represents a cryptographic hash algorithm with a message digest length of v bits.
[0064] Furthermore, it should be noted that the collaborating end (collaborator) refers to the participating party that assists the initiating end in generating key pairs or signatures during the operation of the protocol. The collaborating end may be untrusted (a fake collaborating end), may not participate in the actual collaboration, or may be a real collaborating end, and requires verification by the verification end. The parameters included in the collaborating end are: the private key d2 of the collaborating end ∈ [1, n - 1], and the private key d2 is not publicly disclosed; the public key P2 of the collaborating end = [d2]G, and the key pair of the collaborating end is (d2, P2); P2 is publicly disclosed to the verification end.
[0065] In addition, the third signature value refers to the partial signature value (r, s2) generated by the collaborating end according to the data sent by the verification end and sent to the verification end for verification.
[0066] Specifically, the verification end generates a random number k1, generates or calculates a number W1 ∈ [1, n - 1] based on the random number k1, selects a message M at the same time, calculates the number of points on the elliptic curve Q1 = [W1]P2 and the message digest e = H v (M), where Q1 represents the number of points on the elliptic curve, P2 represents the public key of the collaborating end, and H v represents a cryptographic hash algorithm with a message digest length of v bits, and e is the message digest (or called the hash value or digest value), thereby generating the number of points on the elliptic curve and the message digest.
[0067] Furthermore, send the number of points on the elliptic curve and the message digest to the collaborating end for the collaborating end to determine the private key of the collaborating end. Based on the private key of the collaborating end, the number of points on the elliptic curve, and the message digest, calculate the third signature value and send the third signature value to the verification end.
[0068] Step S14, receiving the third signature value returned by the collaborative end, and calculating a fourth signature value based on the elliptic curve points and the message digest, so as to obtain a second verification result based on the third signature value and the fourth signature value;
[0069] It should be noted that the fourth signature value refers to the signature value (r') calculated by the verification end based on the elliptic curve points and the message digest. The second verification result refers to the result of the verification end verifying the third signature value and the fourth signature value, which is used to verify whether the collaborative end participates in the collaborative signing process.
[0070] Specifically, the third signature value returned by the collaborative end is received, and then the fourth signature value is calculated based on the elliptic curve point number and the message digest. At this time, the process data obtained by the verification end includes the signature value (r, s2) sent by the collaborative end, the random number k1, the elliptic curve point W1, the message digest e, and the joint public key P A , the public key P2 of the collaborative end. In the collaborative signature, the joint signature value (r, s) of the message M is provided by the collaborative end to the verification end, and s is calculated by the private key d1 of the initiator, s=(d1(s2+W1)-r) mod n, but the verification end cannot calculate s at this time, because if the verification end generates the formula P=[d1 - 1 d2 -1 -1]G, it can be realized by using P when s is unknown A Completing the signature verification calculation proves that the collaborative end has participated in the collaborative signature process, where P A It is the public key of the joint signature and is generated through the collaborative signature mechanism. Figure 2 , Figure 2 A flowchart of the generation of a joint signature public key is provided for the collaborative signature verification method of this application.
[0071] Furthermore, if the verification end generates the formula P=[d1 -1 d2 -1 -1]G, it can be realized by using P when s is unknown A The process of completing the signature verification calculation includes: determining a first random number, a public key of the collaborative end, and a message digest, and based on a second preset verification formula, calculating the first random number, the public key of the collaborative end, the message digest and the third signature value to obtain a seventh parameter value corresponding to the third signature value, and then comparing the seventh parameter value with the eighth parameter value corresponding to the fourth signature value for consistency. If the comparison is successful, it is determined that the collaborative end participates in the collaborative signing process to generate a second verification result.
[0072] Step S15: Generate a collaborative signature verification result based on the first verification result and the second verification result.
[0073] It should be noted that the collaborative signature verification result refers to the final verification result obtained by the verification end after comprehensively considering the first verification result and the second verification result, which is used to ensure the correctness and security of the entire collaborative signature process and ensure that the signature result is valid and trustworthy.
[0074] Specifically, if both the first verification result and the second verification result are verification passed results, a collaborative signature verification result of "collaborative signature verification passed" is generated.
[0075] In this embodiment, by obtaining the process data after the initiating end completes the collaborative signature, where the process data includes a first signature value and a second signature value, and then based on the process data, the first signature value, and the second signature value, a first verification result is obtained, thereby generating an elliptic curve point number and a message digest, and sending the elliptic curve point number and the message digest to the collaborative end for the collaborative end to determine the collaborative end private key. Based on the collaborative end private key, the elliptic curve point number, and the message digest, a third signature value is calculated, and the third signature value is sent to the verification end. Then, the third signature value returned by the collaborative end is received, and a fourth signature value is calculated based on the elliptic curve point number and the message digest, so as to obtain a second verification result based on the third signature value and the fourth signature value, and then generate a collaborative signature verification result based on the first verification result and the second verification result, thereby ensuring that each participating party has correctly participated in the collaborative signature process, and each step has a clear verification mechanism to ensure the reliability, validity of the signature, and the legality and validity of the participating parties, thus jointly ensuring the effectiveness and security of the collaborative signature mechanism and improving the overall security of the system.
[0076] In a feasible implementation manner, the method further includes:
[0077] Step S21: Obtain the collaborative end public key corresponding to the collaborative end, where the collaborative end public key includes a first parameter value and a second parameter value; Step S22: Calculate the first parameter value and the second parameter value with a preset elliptic curve equation to determine whether the collaborative end public key satisfies the preset elliptic curve equation; Step S23: If not, terminate the collaborative signature verification process.
[0078] It should be noted that the collaborative end public key refers to the public key used by the collaborative end in the elliptic curve cryptosystem, which is calculated from the private key of the collaborative end and the base point G, and is usually represented as a point P2 on an elliptic curve, in the form of P2=(x2,y2).
[0079] Further, it should be noted that the first parameter value refers to the x coordinate of the collaborative end public key P2, which is usually denoted as x2. The second parameter value refers to the y coordinate of the collaborative end public key P2, which is usually denoted as y2.
[0080] Specifically, obtain the collaborative end public key P2 = (x2, y2) corresponding to the collaborative end. Among them, the collaborative end public key includes the first parameter value x2 and the second parameter value y2. Then, calculate the first parameter value and the second parameter value with a preset elliptic curve equation to determine whether the collaborative end public key satisfies the preset elliptic curve equation. Among them, the preset elliptic curve equation is y 2 =x 3 +ax + b. Then, substitute x2 and y2 into the elliptic curve equation for verification to check whether the equation holds.
[0081] Further, if the equation holds, it indicates that P2 is a valid point on the elliptic curve; if the equation does not hold, it indicates that P2 is not on the elliptic curve, the verification fails, and the verification process is terminated.
[0082] In this embodiment, by obtaining the collaborative end public key corresponding to the collaborative end, where the collaborative end public key includes the first parameter value and the second parameter value, and then calculating the first parameter value and the second parameter value with a preset elliptic curve equation to determine whether the collaborative end public key satisfies the preset elliptic curve equation. Thus, if not, the collaborative signature verification process is terminated, thereby ensuring that the collaborative end public key is valid and preventing attackers from forging the public key. Since the public key does not satisfy the elliptic curve equation, it indicates that it may be invalid or tampered with. The verification process can immediately detect and terminate the signature verification process, thereby preventing a man-in-the-middle attacker from inserting or modifying the public key during the signature process, ensuring the security of the signature process. At the same time, in the early stage of the signature verification process, by verifying the validity of the public key, an invalid signature process can be detected and terminated in a timely manner, saving computing resources and time, and ensuring that the data in the signature process is not tampered with, guaranteeing the integrity of the signature process.
[0083] In a feasible implementation manner, the method further includes:
[0084] Step S31: Send the message digest to the collaborative end for the collaborative end to sign based on the message digest to generate a fifth signature value, and return the fifth signature value to the verification end; Step S32: Receive the fifth signature value returned by the collaborative end and determine the collaborative end public key; Step S33: Verify the fifth signature value based on the collaborative end public key to verify the legality of the collaborative end.
[0085] It should be noted that the fifth signature value refers to the signature value generated by the collaborative end based on the message digest e.
[0086] Specifically, the verification end generates a message digest e, and then the verification end calls the collaboration end, uses the collaboration end private key d2 to sign the message digest e, and generates a fifth signature value (r, s2). The specific steps of calculating the fifth signature value (r, s2) by the collaboration end are as follows:
[0087] Generate a random number k2; calculate the elliptic curve point Q2=[k2]G, and calculate r=x2mod n, where x2 is the x coordinate of Q2, calculate s2=(d2×(e+r)-k2) mod n, and obtain the fifth signature value. The collaborative end then sends the signature value (r, s2) to the detection party.
[0088] The signature verification process is as follows: the detection party uses the collaborative end public key P2 to verify the signature value (r, s2) and calculates u1=s2 -1 ×emod n and u2=s2 -1 ×r mod n, and calculate the elliptic curve point Q'=[u1]G+[u2]P2. Then check whether the x coordinate of Q' is equal to r. If so, the signature verification succeeds; otherwise, the signature verification fails and the collaborative signature verification process is terminated.
[0089] This embodiment sends the message digest to the collaborative end so that the collaborative end signs based on the message digest to generate a fifth signature value, and returns the fifth signature value to the verification end, and then receives the fifth signature value returned by the collaborative end, and determines the collaborative end public key, so as to verify the fifth signature value based on the collaborative end public key to verify the legitimacy of the collaborative end, and then signs the message digest by calling the collaborative end private key d2 of the collaborative end, and uses the collaborative end public key P2 to verify the signature, ensuring that the collaborative end does have the private key d2 corresponding to P2, thereby preventing identity impersonation, because if the collaborative end does not have the corresponding private key d2, the signature will not be able to pass the verification of P2, thereby preventing identity impersonation and unauthorized signing behavior, and in the early stage of the signature verification process, timely discovering and terminating invalid signing processes, saving computing resources and time.
[0090] In a feasible implementation manner, obtaining a first verification result based on the process data, the first signature value, and the second signature value includes:
[0091] Step S41: Detect whether there is a message digest and an elliptic curve point in the process data; Step S42: If so, extract the third parameter value and the fourth parameter value in the first signature value and the fifth parameter value and the sixth parameter value in the second signature value, and perform consistency verification on the third parameter value and the fifth parameter value; Step S43: If the verification passes, verify the correctness of the fourth parameter value and the sixth parameter value according to the first preset verification formula; Step S44: If the verification passes, determine that the collaborative signature technology is correctly used when the initiating end and the collaborative end perform collaborative signature to generate a first verification result.
[0092] It should be noted that the third parameter value in the first signature value refers to r in the partial signature value (r, s2) sent by the collaborative end, and the fourth parameter value refers to r in the joint signature value (r, s) generated by the initiating end. The fifth parameter value in the second signature value refers to s2 in the partial signature value (r, s2) sent by the collaborative end, and the sixth parameter value refers to s in the joint signature value (r, s) generated by the initiating end.
[0093] Specifically, detect whether there is a message digest and an elliptic curve point in the process data. If so, extract the third parameter value and the fourth parameter value in the first signature value and the fifth parameter value and the sixth parameter value in the second signature value, and then perform consistency verification on the third parameter value and the fifth parameter value. The specific steps for consistency verification can refer to the steps in "Performing consistency comparison between the seventh parameter value and the eighth parameter value corresponding to the fourth signature value".
[0094] Furthermore, if the verification passes, verify the correctness of the fourth parameter value and the sixth parameter value according to the first preset verification formula. The specific verification process is as follows:
[0095] Let T = [s](P + G) + [r]P, T’ = [s1 + w1s2 + w2s3 +... + w γ s γ+1 ·P2 - [r]·G
[0096] where s1 = d1(r + W y+1 ) mod n; s2 = (d2W y+2 ) mod n,..., s y+1 = (d2W 2y+1 ) mod n;
[0097] T’ = (s1·P2 + w1s2·P2 + w2s3·P2 +... + w γ s γ+1 ·P2) - [r]·G
[0098] =(s1·P2+w1s2·d2 -1 G+w2s3·d2 -1 G+...+w γ s γ+1 ·d2 -1 G)-[r]·G
[0099] =(s1·d2 -1 G+Q1s2·d2 -1 +Q2s3·d2 -1 +...+Q γ s γ+1 ·d2 -1 )-[r]·G
[0100] =(s1G+Q1s2+Q2s3+...+Q γ s γ+1 )·d2 -1 -[r]·G
[0101] T’·d2+[r]·G·d2=(s1G+Q1s2+Q2s3+...+Q γ s γ+1 )
[0102] T’·d2+[r]·G·d2=[s](P+G)·d2+[r]P·d2+[r]·G·d2
[0103] =[s]P1+[r](P·d2+G·d2)
[0104] =[s]P1+[r]P1=(s+r)P1
[0105] =(s1P2+w1·d2·w y+2 ·d2 -1 G+w2·d2·w y+3 ·d2 -1 G+...+w γ ·d2·w 2y+2 ·d2 -1 G)-[r]G
[0106] =(s1P2+w1·w y+2 ·G+w2·w y+3 ·G+...+w γ ·w 2y+2 ·G)-[r]·G
[0107] =(s1P2+Q1·w y+2 +Q2·w y+3 +...+Q γ ·w 2y+2 )-[r]·G
[0108] =(d1(r + w y+1 )·d2 -1 G + Q1·w y+2 + Q2·w y+3 +... + Q γ ·w 2y+2 ) - [r]·G
[0109] =(r·G + w y+1 ·G + Q1·w y+2 + Q2·w y+3 +... + Q γ ·w 2y+2 ) - [r]·G
[0110] = w y+1 ·G + Q1·w y+2 + Q2·w y+3 +... + Q γ ·w 2y+2
[0111] = Q
[0112] According to the first preset verification formula, that is:
[0113] s·(P + G) = (P2·(s1 + w1s2 + w2s3 +... + w γ s γ+1 ) - r·(P + G)) mod n, we get:
[0114] s = (P2·(s1 + w1s2 + w2s3 +... + w γ s γ+1 ) - r·(P + G))·(P + G) -1
[0115] = P2·(P + G) -1 ·(s1 + w1s2 + w2s3 +... + w γ s γ+1 ) - r
[0116] = d2 -1 ·G·(P + G) -1 ·(s1 + w1s2 + w2s3 +... + w γ s γ+1 ) - r (Equation 1)
[0117] Furthermore, since the verification end knows (w1, w2, w3,..., w r+1 ), (s1, s2, s3,..., s r+1 ), P2, r, P A, G, and then substitute it into (Equation 1) to obtain the value of s, and based on the values of s, (Q1, Q2,..., Q γ ), (s1, s2, s3,..., s r+1 ), P2, r, P A , G, calculate T and T’. By comparing the values of T and T’, verify the relationship between (s1, s2, s3,..., s r+1 ) and s, and verify that after the originator obtains the signature values (r, s1, s2, s3,..., s r+1 ) of the collaborator, the collaborative signature mechanism is adopted to complete the system signature.
[0118] Furthermore, if T = T’, it proves that there is such a relationship between (s1, s2, s3,..., s r+1 ), s: s×(P A +G)=(P2×(s1+w1s2+w2s3+...+w γ s γ+1 )-r×(P A +G). In addition, it also proves that after the originator obtains the signature values (r, s1, s2, s3,..., s r+1 ) of the collaborator, the originator has completed the joint signature operation of the system using the collaborative signature mechanism and outputs the joint signature value (r, s), generating the first verification result. Additionally, if T≠T’, it indicates that the originator has not correctly completed the collaborative signature mechanism, and the verification process ends.
[0119] In this embodiment, by detecting whether there are message digests and elliptic curve points in the process data, and if so, extracting the third parameter value and the fourth parameter value in the first signature value and the fifth parameter value and the sixth parameter value in the second signature value, and performing consistency verification on the third parameter value and the fifth parameter value. Thus, if the verification passes, according to the first preset verification formula, verify the correctness of the fourth parameter value and the sixth parameter value. Furthermore, if the verification passes, it is determined that the originator and the collaborator correctly use the collaborative signature technology during collaborative signature to generate the first verification result. Thus, by verifying whether the originator correctly uses the signature data of the collaborator to complete the final signature, the integrity and correctness of the signature process can be ensured, preventing the originator from tampering with or ignoring the signature data received from the collaborator after receiving it, thereby generating an invalid signature. Because if the originator does not correctly use the collaborative signature technology, the detector will not be able to pass the verification, thus preventing signature forgery and unauthorized signature behavior, and ultimately achieving the purpose of verifying whether the originator uses the collaborative signature technology for signature.
[0120] Based on this, an embodiment of the present application provides a collaborative signature verification method, referring to Figure 3 ,Figure 3 This is a schematic flowchart provided for the second embodiment of the collaborative signature verification method of the present application.
[0121] In a feasible implementation manner, obtaining the second verification result based on the third signature value and the fourth signature value includes:
[0122] Step S51, determining a first random number, a collaborative end public key, and a message digest, and calculating the first random number, the collaborative end public key, and the message digest with the third signature value based on a second preset verification formula to obtain a seventh parameter value corresponding to the third signature value;
[0123] Step S52, performing a consistency comparison between the seventh parameter value and an eighth parameter value corresponding to the fourth signature value;
[0124] Step S53, if the comparison is successful, determining that the collaborative end participates in the collaborative signature process to generate a second verification result.
[0125] It should be noted that the seventh parameter value refers to r in the partial signature value sent by the collaborative end, and the eighth parameter value corresponding to the fourth signature value refers to r' in the joint signature value calculated by the verification end.
[0126] Specifically, determining a first random number k1, a collaborative end public key P2, and a message digest e, and calculating the first random number, the collaborative end public key, and the message digest and other values with the third signature value based on a second preset verification formula to obtain a seventh parameter value corresponding to the third signature value. The specific calculation process is as follows:
[0127] 1) First, according to the signature verification principle in the SM2 digital signature technology, the mathematical expression of the elliptic curve point (x1', y1') of the joint signature is as follows:
[0128] (x1', y1') = [s]G + [t]P = [s]G + [r + s]P = [s]G + [r]P + [s]P = [s](P + G) + [r]P (Equation 2)
[0129] 2) Since s = (d1·(s1 + w1s2 + w2s3 +... + w γ s γ+1 ) - r) mod n, we get:
[0130] s·(P + G) = (d1·(P + G)·(s1 + w1s2 + w2s3 +... + w γ s γ+1 ) - r·(P + G)) mod n (Equation 3)
[0131] 3) If the public key P = d1 -1P2 - G satisfies the co - signature key generation requirements, then d1 -1 P2 = P + G; P2 = d1 -1 (P + G), so (Equation 2) can be expressed as:
[0132] s·(P + G)=(P2·(s1 + w1s2 + w2s3 +... + w γ s γ+1 ) - r·(P + G)) mod n (Equation 4)
[0133] Furthermore, it can be obtained that
[0134] [s]·(P + G)=[s1 + w1s2 + w2s3 +... + w γ s γ+1 ·P2 - [r]·P - [r]·G;
[0135] [s]·(P + G)+[r]·P=[s1 + w1s2 + w2s3 +... + w γ s γ+1 ·P2 - [r]·G (Equation 5)
[0136] 4) According to (Equation 2) and (Equation 5), it can be obtained that
[0137] (x1’, y1’)=[s1 + w1s2 + w2s3 +... + w γ s γ+1 ·P2 - [r]·G (Equation 6)
[0138] When W1 = k1, at this time the initiator only generates 1 random number; when the verifier simulates the initiator for testing and sends Q1 = W1G = k1G, then (Equation 6)=[s1 + k1s2]*P2 - [r]*G;
[0139] When W1 = d1 -1 k1, at this time the W2 = k2 and W3 = k3 generated by the initiator, and when the verifier simulates the initiator for testing, it sends Q1 = W1G = d1 -1 ·k1·G = k1P1, Q2 = k2G, Q3 = k3G,
[0140] When using (Equation 6) simultaneously, because W1·P2 = d1 -1 ·k1·P2 = k1(P + G),
[0141] (Equation 6)=(s1·P2 + w1s2·P2 + w2s3·P2 +... + w γ s γ+1 ·P2)-[r]·G,
[0142] (Equation 6)=(s1·P2 + s2·d1-1 k1·P2 + w2s3·P2 +... + w γ s γ+1 ·P2) - [r]·G,
[0143] (Equation 6) = (s1·P2 + s2·k1·(P + G) + k2s3·P2 +... + k γ s γ+1 ·P2) - [r]·G
[0144] When W1 = d1 -2 k1, at this time, W2 = k2, W3 = k3 generated by the initiating end, and the verification end simulates Q1 = W1G = d1 -2 ·k1·G = d1 -1 ·k1·d1 -1 ·G = d1 -1 ·k1·P1, Q2 = k2G, Q3 = k3G. When using (Equation 6) at the same time, because W1·P2 = d1 -2 ·k1·P2 = d1 -1 ·k1·(P + G),
[0145] (Equation 6) = (s1·P2 + w1s2·P2 + w2s3·P2 +... + w γ s γ+1 ·P2) - [r]·G,
[0146] (Equation 6) = (s1·P2 + s2·d1 -1 k1·P2 + w2s3·P2 +... + w γ s γ+1 ·P2) - [r]·G,
[0147] (Equation 6) = (s1·P2 + s2·k1·(P + G) + k2s3·P2 +... + k γ s γ+1 ·P2) - [r]·G
[0148] Because, P = [d1 -1 d2 -1 - 1]G = d1 -1 d2 -1 G - G = d1 -1 P2 - G = d2 -1 P2 - G
[0149] d1 -1 P2 = P + G; d2 -1 P2 = P + G; P1 = (P + G)d2; P2 = d1P + d1G = d1(P + G) = d2 -1 G;
[0150] [s]·(P + G)·d1 -1 +[r]P·d1 -1 =[s1 + w1s2 + w2s3 +... + w γ s γ+1 ·P2·d1 -1 -[r]·G·d1 -1
[0151] Background formula: s1 = d2(r + w γ+1 ) mod q, s2 = (d2w γ+2 ) mod q,..., s γ+1 =(d2w 2γ+1 ) mod q;
[0152] Background formula: w1, w2,... w γ ∈ [1, n - 1]; Calculate Q1 = [w1]G,..., Q γ =[w γ G;
[0153] Background formula: Q = (x1, y1) = [w γ+1 G + [w γ+2 Q1 +... + [w 2γ+1 Q;
[0154] At the collaborative end, since s2 = (d2·(r + W2)) mod n, substitute s2 into (Equation 6) to get:
[0155] (x1’, y1’) = [s1 + w1s2 + w2s3 +... + w γ s γ+1 ·P2 - [r]·G
[0156] = s1·P2 + w1s2·P2 + w2s3·P2 +... + w γ s γ+1 ·P2 - [r]·G
[0157] = d2(r + w γ+1 )·P2 + w1·(d2w γ+2 )·P2 + w2·(d2w γ+3 )·P2 +... + w γ ·d2w 2γ+1 ·P2 - [r]·G
[0158] = d2(r + w γ+1 )d2 -1 G + w1(d2w γ+2 )d2 -1 G + w2(d2w γ+3)d2 -1 G +... + w γ d2w 2γ+1 d2 -1 G - [r]·G
[0159] =(r + w γ+1 )·G + w1·(w γ+2 )·G + w2·(w γ+3 )·G +... + w γ ·w 2γ+1 ·G - [r]·G
[0160] =r·G + w γ+1 ·G + w1·(w γ+2 )·G + w2·(w γ+3 )·G +... + w γ ·w 2γ+1 ·G - [r]·G
[0161] =w γ+1 ·G + w1·(w γ+2 )·G + w2·(w γ+3 )·G +... + w γ ·w 2γ+1 ·G
[0162] =(x1, y1) (Equation 7)
[0163] According to (Equation 7), x1’ = x1. Assume that the joint signature value calculated by the verification end is represented by r’ (the eighth parameter value), the signature value sent by the collaborative party is r (the seventh parameter value), and r’ = (e + x1’) mod n, r = (e + x1) mod n. Then, by comparing the values of (e + x1’) mod n and (e + x1) mod n, we get (e + x1’) mod n = (e + x1) mod n, thus verifying that the joint signature value r’ calculated by the verification end is r’ = r. This can prove that the collaborative end participated in the collaborative signature. To achieve the consistency comparison between the seventh parameter value and the eighth parameter value corresponding to the fourth signature value, so that if the comparison is successful, it is determined that the collaborative end participated in the collaborative signature process to generate the second verification result.
[0164] In addition, this conclusion can be verified by the following alternative solution: Use the signature value (r, s2), random number k1, collaborative party public key P2, and point G that the verification end already has to directly calculate the value of (x1’, y1’) using (Equation 6), and then use x1’, e, and r’ = (e + x1’) mod n to calculate the value of r’. Then, by comparing the value of r’ with r, it is verified whether the collaborative party participated in the collaborative signature.
[0165] Further, if r' = r, it indicates that the collaborative end participates in the collaborative signature; if r' ≠ r, it indicates that the collaborative end does not participate in the collaborative signature. In addition, this verification process also shows that P A is the public key for the joint signature and is generated through the mechanism of the collaborative signature (P = [d1 -1 d2 -1 -1]G).
[0166] In this embodiment, by determining the first random number, the public key of the collaborative end, and the message digest, and based on the second preset verification formula, calculating the first random number, the public key of the collaborative end, and the message digest with the third signature value to obtain the seventh parameter value corresponding to the third signature value, and then comparing the seventh parameter value with the eighth parameter value corresponding to the fourth signature value for consistency. Thus, if the comparison is successful, it is determined that the collaborative end participates in the collaborative signature process to generate a second verification result. Furthermore, by simulating the behavior of the initiating end by the verification end, it is verified whether the collaborative end correctly generates partial signature data according to the collaborative signature protocol, ensuring that the collaborative end plays its due role in the signature process, rather than simply transmitting some invalid or forged data or the initiating end forging the collaborative signature by itself while there is actually no participation of the collaborative end. If the collaborative end does not correctly participate in the collaborative signature process, the detecting party will not be able to pass the subsequent verification steps, thereby timely discovering and preventing potential cheating behaviors, achieving the purpose of verifying the correct participation of the collaborative end in the collaborative signature process.
[0167] Based on this, an embodiment of the present application provides a collaborative signature verification method. Refer to Figure 4 , Figure 4 which is the schematic flowchart provided for the third embodiment of the collaborative signature verification method of the present application.
[0168] In this embodiment, the collaborative signature verification method includes steps S61 to S63:
[0169] Step S61, receiving the elliptic curve point number and the message digest sent by the verification end, and determining the private key of the collaborative end;
[0170] It should be noted that the private key of the collaborative end refers to the private key used by the collaborative end (collaborative end) to generate the signature, denoted as d2.
[0171] Step S62, calculating the third signature value based on the private key of the collaborative end, the elliptic curve point number, and the message digest;
[0172] Specifically, the collaborative end generates a random number k2, and based on the random number k2, generates or calculates a number W2. Then, in the way of collaborative signature, taking e and Q1 as the messages of the initiating end, calculates the third signature value (r, s2) with its own private key d2, and sends it to the verification end;
[0173] Among them, the elliptic curve point (x1, y1) = [W2]G + d2 -1 Q1 = [W2]G + d2 -1 [W1]G, r = (e + x1) mod n, s2 = (d2·(r + W2)) mod n. Note that d2 is non - public data and can only be used by the collaborative end.
[0174] Step S63, send the third signature value to the verification end for the verification end to calculate a fourth signature value based on the elliptic curve point number and the message digest, and obtain a second verification result based on the third signature value and the fourth signature value. Generate a collaborative signature verification result based on the first verification result and the second verification result, where the first verification result is generated based on process data, the first signature value, and the second signature value.
[0175] In this embodiment, by receiving the elliptic curve point number and the message digest sent by the verification end, and determining the private key of the collaborative end, then calculating the third signature value based on the private key of the collaborative end, the elliptic curve point number, and the message digest, and sending the third signature value to the verification end for the verification end to calculate the fourth signature value based on the elliptic curve point number and the message digest, and obtaining the second verification result based on the third signature value and the fourth signature value, and generating the collaborative signature verification result based on the first verification result and the second verification result, where the first verification result is generated based on process data, the first signature value, and the second signature value, thus ensuring that each participating party has correctly participated in the collaborative signature process, and each step has a clear verification mechanism to ensure the reliability, effectiveness of the signature, and the legality and effectiveness of the participating parties, thereby jointly ensuring the effectiveness and security of the collaborative signature mechanism and improving the overall security of the system.
[0176] It should be understood that the magnitudes of the sequence numbers of the steps in the above - mentioned embodiments do not mean the sequence of execution. The execution sequence of each process should be determined by its function and internal logic, and should not constitute any limitation to the implementation process of the embodiments of the present invention.
[0177] This application also provides a collaborative signature verification system. Please refer to Figure 5 , the collaborative signature verification system includes:
[0178] The verification end 51 is used to obtain the process data after the initiating end and the collaborative end complete the collaborative signature. Among them, the process data includes a first signature value and a second signature value; based on the process data, the first signature value, and the second signature value, a first verification result is obtained; an elliptic curve point number and a message digest are generated, and the elliptic curve point number and the message digest are sent to the collaborative end for the collaborative end to determine the collaborative end private key. Based on the collaborative end private key, the elliptic curve point number, and the message digest, a third signature value is calculated, and the third signature value is sent to the verification end; the third signature value returned by the collaborative end is received, and a fourth signature value is calculated based on the elliptic curve point number and the message digest, so as to obtain a second verification result based on the third signature value and the fourth signature value; based on the first verification result and the second verification result, a collaborative signature verification result is generated;
[0179] The collaborative end 52 is used to receive the elliptic curve point number and the message digest sent by the verification end and determine the collaborative end private key; based on the collaborative end private key, the elliptic curve point number, and the message digest, a third signature value is calculated; the third signature value is sent to the verification end for the verification end to calculate a fourth signature value based on the elliptic curve point number and the message digest, so as to obtain a second verification result based on the third signature value and the fourth signature value, and a collaborative signature verification result is generated based on the first verification result and the second verification result, where the first verification result is generated based on the process data, the first signature value, and the second signature value.
[0180] The collaborative signature verification system is further used for:
[0181] Obtain the collaborative end public key corresponding to the collaborative end, where the collaborative end public key includes a first parameter value and a second parameter value;
[0182] Calculate the first parameter value and the second parameter value with a preset elliptic curve equation to determine whether the collaborative end public key satisfies the preset elliptic curve equation;
[0183] If not, terminate the collaborative signature verification process.
[0184] The collaborative signature verification system is further used for:
[0185] Send the message digest to the collaborative end for the collaborative end to sign based on the message digest to generate a fifth signature value and return the fifth signature value to the verification end;
[0186] Receive the fifth signature value returned by the collaborative end and determine the collaborative end public key;
[0187] Verify the fifth signature value based on the collaborative end public key to verify the legality of the collaborative end.
[0188] The collaborative signature verification system is also used for:
[0189] Detect whether there are message digests and elliptic curve points in the process data;
[0190] If so, extract the third parameter value and the fourth parameter value in the first signature value and the fifth parameter value and the sixth parameter value in the second signature value, and verify the consistency of the third parameter value and the fifth parameter value;
[0191] If the verification passes, verify the correctness of the fourth parameter value and the sixth parameter value according to the first preset verification formula;
[0192] If the verification passes, it is determined that the collaborative signature technology is correctly used when the initiating end and the collaborative end perform collaborative signature to generate a first verification result.
[0193] The collaborative signature verification system is also used for:
[0194] Determine the first random number, the public key of the collaborative end, and the message digest, and calculate based on the second preset verification formula the first random number, the public key of the collaborative end, and the message digest with the third signature value to obtain the seventh parameter value corresponding to the third signature value;
[0195] Compare the seventh parameter value with the eighth parameter value corresponding to the fourth signature value for consistency;
[0196] If the comparison is successful, it is determined that the collaborative end participates in the collaborative signature process to generate a second verification result.
[0197] The collaborative signature verification system is also used for:
[0198] Receive the elliptic curve point number and the message digest sent by the verification end, and determine the private key of the collaborative end;
[0199] Calculate the third signature value based on the private key of the collaborative end, the elliptic curve point number, and the message digest;
[0200] Send the third signature value to the verification end for the verification end to calculate the fourth signature value based on the elliptic curve point number and the message digest, so as to obtain a second verification result based on the third signature value and the fourth signature value, and generate a collaborative signature verification result based on the first verification result and the second verification result, where the first verification result is generated based on the process data, the first signature value, and the second signature value.
[0201] The collaborative signature verification system provided by this application adopts the collaborative signature verification method in the above-mentioned embodiment, and can solve the technical problems in the background art. Compared with the prior art, the beneficial effects of the collaborative signature verification system provided by this application are the same as those of the collaborative signature verification method provided by the above-mentioned embodiment, and other technical features in the collaborative signature verification system are the same as those disclosed in the method of the above-mentioned embodiment, which will not be elaborated here.
[0202] This application provides a collaborative signature verification device, which includes: at least one processor; and a memory communicatively connected to the at least one processor; wherein, the memory stores instructions executable by the at least one processor, and the instructions are executed by the at least one processor to enable the at least one processor to execute the collaborative signature verification method in Embodiment 1 above.
[0203] Refer to the following Figure 6 , which shows a schematic structural diagram of a collaborative signature verification device suitable for implementing the embodiments of this application. The collaborative signature verification device in the embodiments of this application may include, but is not limited to, mobile terminals such as mobile phones, laptop computers, digital broadcast receivers, PDAs (Personal Digital Assistants), PADs (Portable Application Descriptions), PMPs (Portable Media Players), in-vehicle terminals (such as in-vehicle navigation terminals), etc., and fixed terminals such as digital TVs, desktop computers, etc. Figure 6 The shown collaborative signature verification device is only an example and should not impose any restrictions on the functions and usage scope of the embodiments of this application.
[0204] As Figure 6As shown, the collaborative signature verification device may include a processing system 1001 (such as a central processing unit, a graphics processing unit, etc.), which may perform various appropriate actions and processes according to a program stored in a read-only memory (ROM) 1002 or a program loaded from a storage system 1003 into a random access memory (RAM) 1004. In the RAM 1004, various programs and data required for the operation of the collaborative signature verification device are also stored. The processing system 1001, the ROM 1002, and the RAM 1004 are connected to each other through a bus 1005. An input / output (I / O) interface 1006 is also connected to the bus. Generally, the following systems may be connected to the I / O interface 1006: an input system 1007 including, for example, a touch screen, a touchpad, a keyboard, a mouse, an image sensor, a microphone, an accelerometer, a gyroscope, etc.; an output system 1008 including, for example, a liquid crystal display (LCD), a speaker, a vibrator, etc.; a storage system 1003 including, for example, a magnetic tape, a hard disk, etc.; and a communication system 1009. The communication system 1009 may allow the collaborative signature verification device to communicate with other devices wirelessly or wiredly to exchange data. Although the figure shows a collaborative signature verification device having various systems, it should be understood that it is not required to implement or have all the shown systems. More or fewer systems may be alternatively implemented or had.
[0205] In particular, according to the embodiments disclosed in the present application, the processes described above with reference to the flowcharts may be implemented as computer software programs. For example, the embodiments disclosed in the present application include a computer program product, which includes a computer program carried on a computer-readable medium, and the computer program includes program codes for executing the methods shown in the flowcharts. In such an embodiment, the computer program may be downloaded and installed from a network through the communication system, or installed from the storage system 1003, or installed from the ROM 1002. When the computer program is executed by the processing system 1001, the above-mentioned functions defined in the methods of the embodiments disclosed in the present application are executed.
[0206] The collaborative signature verification device provided by the present application adopts the collaborative signature verification method in the above-mentioned embodiments and can solve the technical problems in the background art. Compared with the prior art, the beneficial effects of the collaborative signature verification device provided by the present application are the same as those of the collaborative signature verification method provided by the above-mentioned embodiments, and other technical features in the collaborative signature verification device are the same as those disclosed in the method of the previous embodiment, and will not be elaborated herein.
[0207] It should be understood that the various parts disclosed in this application can be implemented by hardware, software, firmware, or a combination thereof. In the description of the above embodiments, specific features, structures, materials, or characteristics can be combined in a suitable manner in any one or more embodiments or examples.
[0208] As described above, the above is only the specific implementation manner of this application, but the protection scope of this application is not limited thereto. Any person skilled in the art can easily think of changes or substitutions within the technical scope disclosed in this application, and all of them should be covered by the protection scope of this application. Therefore, the protection scope of this application should be subject to the protection scope of the claims.
[0209] This application provides a computer-readable storage medium having computer-readable program instructions (i.e., computer programs) stored thereon, and the computer-readable program instructions are used to execute the collaborative signature verification method in the above embodiments.
[0210] The computer-readable storage medium provided by this application can be, for example, a USB flash drive, but is not limited to electrical, magnetic, optical, electromagnetic, infrared, or semiconductor systems, devices, or any combination of the above. More specific examples of computer-readable storage media may include, but are not limited to: electrical connections with one or more wires, portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM) or flash memory, optical fibers, portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination of the above. In this embodiment, the computer-readable storage medium can be any tangible medium that contains or stores a program, and this program can be used by or in combination with an instruction execution system, device, or device. The program code contained on the computer-readable storage medium can be transmitted by any appropriate medium, including but not limited to: wires, optical cables, RF (Radio Frequency), etc., or any suitable combination of the above.
[0211] The above computer-readable storage medium can be included in the collaborative signature verification device; it can also exist separately and not be assembled into the collaborative signature verification device.
[0212] The above computer-readable storage medium carries one or more programs, and when the above one or more programs are executed by the collaborative signature verification device, the collaborative signature verification device is caused to:
[0213] Obtain the process data after the initiating end completes collaborative signature, where the process data includes a first signature value and a second signature value;
[0214] Based on the process data, the first signature value, and the second signature value, obtain a first verification result;
[0215] Generate the number of elliptic curve points and a message digest, and send the number of elliptic curve points and the message digest to the collaborative end for the collaborative end to determine the collaborative end private key. Based on the collaborative end private key, the number of elliptic curve points, and the message digest, calculate a third signature value, and send the third signature value to the verification end;
[0216] Receive the third signature value returned by the collaborative end, and calculate a fourth signature value based on the number of elliptic curve points and the message digest, so as to obtain a second verification result based on the third signature value and the fourth signature value;
[0217] Generate a collaborative signature verification result based on the first verification result and the second verification result.
[0218] Computer program code for performing the operations of this application can be written in one or more programming languages or combinations thereof. The above programming languages include object-oriented programming languages - such as Java, Smalltalk, C++, and also include conventional procedural programming languages - such as the "C" language or similar programming languages. The program code can be executed entirely on the user's computer, partially on the user's computer, executed as an independent software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the case of a remote computer, the remote computer can be connected to the user's computer through any type of network - including a local area network (LAN: Local Area Network) or a wide area network (WAN: Wide Area Network) - or can be connected to an external computer (for example, by using an Internet service provider to connect through the Internet).
[0219] The flowcharts and block diagrams in the accompanying drawings illustrate the possible architectures, functions, and operations of systems, methods, and computer program products according to various embodiments of the present application. In this regard, each block in the flowchart or block diagram may represent a module, a segment of a program, or a portion of code that contains one or more executable instructions for implementing a specified logical function. It should also be noted that in some alternative implementations, the functions marked in the blocks may occur in a different order than that marked in the accompanying drawings. For example, two consecutive blocks shown may actually be executed substantially in parallel, and they may sometimes be executed in the reverse order, depending on the functions involved. It should also be noted that each block in the block diagram and / or flowchart, as well as combinations of blocks in the block diagram and / or flowchart, can be implemented by a dedicated hardware-based system that performs the specified functions or operations, or can be implemented by a combination of dedicated hardware and computer instructions.
[0220] The modules described in the embodiments of the present application can be implemented in software or in hardware. In some cases, the name of the module does not constitute a limitation on the unit itself.
[0221] The readable storage medium provided by the present application is a computer-readable storage medium, and the computer-readable storage medium stores computer-readable program instructions (i.e., computer programs) for executing the above-mentioned collaborative signature verification method, which can solve the technical problems in the background art. Compared with the prior art, the beneficial effects of the computer-readable storage medium provided by the present application are the same as those of the collaborative signature verification method provided by the above embodiments, and will not be elaborated here.
[0222] An embodiment of the present application provides a computer program product, including a computer program, and when the computer program is executed by a processor, it implements the steps of the collaborative signature verification method as described above.
[0223] The computer program product provided by the present application can solve the technical problems in the background art. Compared with the prior art, the beneficial effects of the computer program product provided by the embodiments of the present application are the same as those of the collaborative signature verification method provided by the above embodiments, and will not be elaborated here.
[0224] The above are only some embodiments of the present application, and do not limit the patent scope of the present application. Any equivalent structural transformation made under the technical concept of the present application by using the content of the specification and drawings of the present application, or directly / indirectly applied in other related technical fields, is included in the patent protection scope of the present application.
Claims
1. A collaborative signature verification method, characterized in that, The method is applied to the verification side and includes: Obtain the process data after the initiating side completes the collaborative signature, where the process data includes a first signature value and a second signature value; Based on the process data, the first signature value, and the second signature value, obtain a first verification result; Generate an elliptic curve point number and a message digest, and send the elliptic curve point number and the message digest to the collaborative side for the collaborative side to determine the collaborative side private key. Based on the collaborative side private key, the elliptic curve point number, and the message digest, calculate a third signature value, and send the third signature value to the verification side; Receive the third signature value returned by the collaborative side, and calculate a fourth signature value based on the elliptic curve point number and the message digest, so as to obtain a second verification result based on the third signature value and the fourth signature value; Based on the first verification result and the second verification result, generate a collaborative signature verification result; The obtaining the first verification result based on the process data, the first signature value, and the second signature value includes: Detect whether there is a message digest and an elliptic curve point in the process data; if so, extract the third parameter value and the fourth parameter value in the first signature value and the fifth parameter value and the sixth parameter value in the second signature value, and perform a consistency verification on the third parameter value and the fifth parameter value; if the verification passes, verify the correctness of the fourth parameter value and the sixth parameter value according to a first preset verification formula; if the verification passes, determine that the initiating side and the collaborative side correctly use the collaborative signature technology when performing the collaborative signature to generate a first verification result.
2. The collaborative signature verification method according to claim 1, characterized in that, The method further includes: Obtain the collaborative side public key corresponding to the collaborative side, where the collaborative side public key includes a first parameter value and a second parameter value; Perform calculations on the first parameter value and the second parameter value with a preset elliptic curve equation to determine whether the collaborative side public key satisfies the preset elliptic curve equation; If not, terminate the collaborative signature verification process.
3. The collaborative signature verification method according to claim 1, wherein The method further includes: Send the message digest to the collaborative side for the collaborative side to perform a signature based on the message digest, generate a fifth signature value, and return the fifth signature value to the verification side; Receive the fifth signature value returned by the collaborative side and determine the collaborative side public key; Based on the collaborative side public key, verify the signature of the fifth signature value to verify the legality of the collaborative side.
4. The collaborative signature verification method according to claim 1, wherein The obtaining the second verification result based on the third signature value and the fourth signature value includes: Determine a first random number, the collaborative side public key, and the message digest, and based on a second preset verification formula, perform calculations on the first random number, the collaborative side public key, and the message digest with the third signature value to obtain a seventh parameter value corresponding to the third signature value; Perform a consistency comparison between the seventh parameter value and an eighth parameter value corresponding to the fourth signature value; If the comparison is successful, determine that the collaborative side participates in the collaborative signature process to generate a second verification result.
5. A collaborative signature verification method, characterized in that, The method is applied to the collaborative side and includes: Receive the elliptic curve point number and the message digest sent by the verification side and determine the collaborative side private key; Calculate a third signature value based on the collaborative end private key, the elliptic curve point number, and the message digest; Send the third signature value to the verification end for the verification end to calculate a fourth signature value based on the elliptic curve point number and the message digest, obtain a second verification result based on the third signature value and the fourth signature value, and generate a collaborative signature verification result based on the first verification result and the second verification result; wherein, the first verification result is generated based on process data, a first signature value, and a second signature value, and includes: Detect whether there is a message digest and an elliptic curve point in the process data; if so, extract the third parameter value and the fourth parameter value in the first signature value and the fifth parameter value and the sixth parameter value in the second signature value, and verify the consistency of the third parameter value and the fifth parameter value; if the verification passes, verify the correctness of the fourth parameter value and the sixth parameter value according to a first preset verification formula; if the verification passes, determine that the collaborative signature technology is correctly used when the initiating end and the collaborative end perform collaborative signature to generate a first verification result.
6. A collaborative signature verification system, characterized in that, including: A verification end, configured to obtain process data after the initiating end and the collaborative end complete collaborative signature, where the process data includes a first signature value and a second signature value; obtain a first verification result based on the process data, the first signature value, and the second signature value; generate an elliptic curve point number and a message digest, and send the elliptic curve point number and the message digest to the collaborative end for the collaborative end to determine the collaborative end private key, calculate a third signature value based on the collaborative end private key, the elliptic curve point number, and the message digest, and send the third signature value to the verification end; receive the third signature value returned by the collaborative end, and calculate a fourth signature value based on the elliptic curve point number and the message digest, obtain a second verification result based on the third signature value and the fourth signature value; generate a collaborative signature verification result based on the first verification result and the second verification result; A collaborative end, configured to receive the elliptic curve point number and the message digest sent by the verification end, and determine the collaborative end private key; calculate a third signature value based on the collaborative end private key, the elliptic curve point number, and the message digest; send the third signature value to the verification end for the verification end to calculate a fourth signature value based on the elliptic curve point number and the message digest, obtain a second verification result based on the third signature value and the fourth signature value, and generate a collaborative signature verification result based on the first verification result and the second verification result, where the first verification result is generated based on process data, a first signature value, and a second signature value; The verification terminal is further configured to detect whether there are message digests and elliptic curve points in the process data; if so, extract the third parameter value and the fourth parameter value in the first signature value and the fifth parameter value and the sixth parameter value in the second signature value, and perform consistency verification on the third parameter value and the fifth parameter value; if the verification passes, verify the correctness of the fourth parameter value and the sixth parameter value according to a first preset verification formula; if the verification passes, determine that the initiating end and the collaborative end correctly use the collaborative signature technology when performing collaborative signature to generate a first verification result.
7. A collaborative signature verification device, characterized in that, The collaborative signature verification device includes: a memory, a processor, and a computer program stored on the memory and executable on the processor, and the computer program is configured to implement the steps of the collaborative signature verification method according to any one of claims 1 to 5.
8. A storage medium, characterized in that, The storage medium is a computer-readable storage medium, and a computer program is stored on the storage medium, and when the computer program is executed by a processor, the steps of the collaborative signature verification method according to any one of claims 1 to 5 are implemented.
9. A computer program product, characterized in that, The computer program product includes a computer program, and when the computer program is executed by a processor, the steps of the collaborative signature verification method according to any one of claims 1 to 5 are implemented.
Citation Information
Patent Citations
Data processing method, device and equipment and computer readable storage medium
CN117749379A
Collaborative signature algorithm detection method, collaborative signature device and readable storage medium
CN117978408A