Collaborative signature verification method, system and device and storage medium

Through a collaborative signature verification method, the process data, elliptic curve points and message digest are used, combined with the private key and public key of the collaborative end, multiple signature values ​​are calculated to generate verification results, which solves the problem that the initiator cannot effectively verify that the initiator uses collaborative signature technology in the prior art, and realizes the reliability and security of the signature process.

CN119835089AActive Publication Date: 2025-04-15DINGXUAN COMMERCIAL PASSWORD EVALUATION TECH (SHENZHEN) CO LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
CN202510295691.0
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-03-13
Publication Date
2025-04-15
Estimated Expiration
2045-03-13

AI Technical Summary

Technical Problem

The existing collaborative signature algorithm cannot effectively verify whether the initiator uses collaborative signature technology correctly, resulting in the signing process being unilaterally controlled, which poses a security risk.

Method used

A collaborative signature verification method is proposed. By obtaining the process data after the initiator completes the collaborative signature, the number of elliptic curve points and message digest are generated, and interacting with the collaborative end, multiple signature values ​​are calculated, and the collaborative signature verification result is finally generated to ensure that each participant participates in the signature process correctly.

Benefits of technology

Through this method, it can be effectively verified whether the initiator and the collaborative end use collaborative signature technology correctly, ensuring the reliability and security of the signature process, and improving the overall security of the system.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119835089A_ABST
    Figure CN119835089A_ABST
Patent Text Reader

Abstract

The invention discloses a collaborative signature verification method, system and device and a storage medium, and relates to the technical field of data transmission security, and the method comprises the steps: obtaining process data after an initiating end completes collaborative signature; obtaining a first verification result based on the process data, the first signature value and the second signature value; generating an elliptic curve point number and a message digest, and sending the elliptic curve point number and the message digest to a collaboration end, so that the collaboration end determines a collaboration end private key, calculates a third signature value based on the collaboration end private key, the elliptic curve point number and the message digest, and sends a fourth signature value to a verification end; receiving a third signature value returned by the cooperation end, calculating a fourth signature value based on the elliptic curve point number and the message digest, and obtaining a second verification result based on the third signature value and the fourth signature value; and generating a collaborative signature verification result based on the first verification result and the second verification result. The method can effectively verify whether the initiating end and the collaboration end correctly use the collaboration signature technology or not.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of data transmission security technology, and in particular 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 participant (usually the initiator and the collaborative end) contributes a part of the signature data, and finally generates a joint signature. It is suitable for scenarios where the collaborative end does not need to know the content of the message, but needs to audit the signature information summary. In the general collaborative signature mechanism, the initiator sends the summary of the message to the collaborative end, and the collaborative end calculates the partial signature and returns it to the initiator. The initiator then calculates and outputs the final signature, thereby ensuring the decentralization and security of the signature process and preventing any entity from controlling the entire signature process alone.

[0003] However, the existing collaborative signature algorithm cannot determine whether the collaborative signature method is adopted in the signature verification process initiated by the initiator. For example, the initiator directly sends the signature data to the back-end for verification without adopting the collaborative signature method, which means that the signature process will be controlled by one party. The attacker may tamper with the signature data or forge the signature, thereby bypassing security verification. For example, the attacker can intercept and modify the signature data, or directly generate a forged signature and send it to the back-end for verification, thereby causing security vulnerabilities and potential security risks.

[0004] Therefore, how to effectively verify whether the initiator and the coordinator have correctly used the collaborative signature technology is a problem that needs to be solved urgently. 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 initiator and the collaborative end have correctly used the collaborative signature technology.

[0006] To achieve the above purpose, the present application proposes a collaborative signature verification method, which is applied to a verification end and includes: Acquire process data after the initiator completes the collaborative signature, wherein the process data includes the first signature value and the second signature value; Obtaining a first verification result based on the process data, the first signature value, and the second signature value; Generate elliptic curve points and a message digest, and send the elliptic curve points and the message digest to the collaborative end so that the collaborative end can determine the collaborative end private key, calculate a third signature value based on the collaborative end private key, the elliptic curve points and the message digest, and send the third signature value to the verification end; receiving a 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; Based on the first verification result and the second verification result, a collaborative signature verification result is generated.

[0007] In one embodiment, the method further comprises: Obtaining a collaborative end public key corresponding to the collaborative end, wherein the collaborative end public key includes a first parameter value and a second parameter value; 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; If not, the collaborative signature verification process is terminated.

[0008] In one embodiment, the method further comprises: Sending the message digest to the collaborative end, so that the collaborative end signs based on the message digest, generates a fifth signature value, and returns the fifth signature value to the verification end; Receive the fifth signature value returned by the collaborative end, and determine the collaborative end public key; Based on the collaborative end public key, the fifth signature value is verified to verify the legitimacy of the collaborative end.

[0009] In one embodiment, obtaining a first verification result based on the process data, the first signature value, and the second signature value includes: detecting whether a message digest and an elliptic curve point exist in the process data; If yes, 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 is successful, verifying the correctness of the fourth parameter value and the sixth parameter value according to the first preset verification formula; If the verification is successful, it is determined that the initiating end and the coordinating end correctly use the collaborative signature technology when performing the collaborative signature to generate a first verification result.

[0010] In one embodiment, obtaining a second verification result based on the third signature value and the fourth signature value includes: Determine a first random number, a collaborative end public key, and a message digest, and based on a second preset verification formula, calculate the first random number, the collaborative end public key, the message digest, and the third signature value to obtain a seventh parameter value corresponding to the third signature value; Comparing the seventh parameter value with an 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.

[0011] This application proposes a collaborative signature verification method, which is applied to a collaborative end and includes: Receive the elliptic curve points and message digest sent by the verification end, and determine the private key of the collaboration end; Calculate a third signature value based on the collaborative end private key, the elliptic curve points and the message digest; The third signature value is sent to the verification end so that the verification end can calculate the fourth signature value based on the elliptic curve point 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, wherein the first verification result is generated based on the process data, the first signature value and the second signature value.

[0012] In addition, to achieve the above purpose, the present application also proposes a collaborative signature verification system, the collaborative signature verification system comprising: The verification end is used to obtain process data after the initiator and the collaborative end complete the collaborative signature, wherein 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 elliptic curve points and a message digest, and send the elliptic curve points and the message digest to the collaborative end, so that the collaborative end can determine the collaborative end private key, calculate a third signature value based on the collaborative end private key, the elliptic curve points 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 points and the message digest, so as to 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; The collaborative end is used to receive the elliptic curve points and 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 points and the message digest; send the third signature value to the verification end, so that the verification end can calculate 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, 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 the process data, the first signature value and the second signature value.

[0013] In addition, to achieve the above-mentioned purpose, 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 described above.

[0014] In addition, to achieve the above-mentioned purpose, 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. When the computer program is executed by the processor, the steps of the collaborative signature verification method described above are implemented.

[0015] In addition, to achieve the above-mentioned purpose, 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 described above.

[0016] The present application provides a collaborative signature verification method, system, device and storage medium. The collaborative signature verification method obtains process data after the initiator completes the collaborative signature, wherein the process data includes a first signature value and a second signature value, and then obtains a first verification result based on the process data, the first signature value and the second signature value, thereby generating an elliptic curve point and a message digest, and sending the elliptic curve point 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 and the message digest, send the third signature value to the verification end, and then receive the third signature value returned by the collaborative end, and calculate a fourth signature value based on the elliptic curve point 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 participant has correctly participated in the collaborative signature process, and each step has a clear verification mechanism to ensure the reliability and validity of the signature and the legitimacy and validity of the participant, thereby jointly ensuring the validity and security of the collaborative signature mechanism and improving the overall security of the system. BRIEF DESCRIPTION OF THE DRAWINGS

[0017] The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments consistent with the present application and, together with the description, serve to explain the principles of the present application.

[0018] In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the drawings required for use in the embodiments or the description of the prior art will be briefly introduced below. Obviously, for ordinary technicians in this field, other drawings can be obtained based on these drawings without paying any creative work.

[0019] Figure 1 A flowchart of the first embodiment of the collaborative signature verification method of this application is provided; Figure 2 A schematic diagram of the process of generating a joint signature public key for the collaborative signature verification method of this application; Figure 3 A flowchart of the second embodiment of the collaborative signature verification method of this application is provided; Figure 4 A flowchart of the third embodiment of the collaborative signature verification method of this application is provided; Figure 5 This is a schematic diagram of the module structure of the collaborative signature verification system of the embodiment of the present application; Figure 6 This is a schematic diagram of the device structure of the hardware operating environment involved in the collaborative signature verification method in the embodiment of the present application.

[0020] The purpose, features and advantages of this application will be further described in conjunction with the embodiments and with reference to the accompanying drawings. DETAILED DESCRIPTION

[0021] It should be understood that the specific embodiments described herein are only used to explain the technical solutions of the present application and are not used to limit the present application.

[0022] In order to better understand the technical solution of the present application, a detailed description will be given below in conjunction with the accompanying drawings and specific implementation methods.

[0023] 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 capable of realizing the above functions, a big data service platform, a collaborative signature verification system, etc. The collaborative signature verification system is taken as an example to illustrate this embodiment and the following embodiments.

[0024] Based on this, the present application embodiment provides a collaborative signature verification method, referring to Figure 1 , Figure 1 A flowchart of the first embodiment of the collaborative signature verification method of this application is provided.

[0025] In this embodiment, the collaborative signature verification method includes steps S11 to S13: Step S11, obtaining process data after the initiator completes the collaborative signature, wherein the process data includes a first signature value and a second signature value; It should be noted that the initiator refers to the participant who sends the first round of information during the operation of the protocol. The initiator may be untrustworthy (fake initiator) or real initiator, and needs to be verified by the verification end. The initiator includes the initiator private key d1∈[1,n-1], which is not public; the initiator public key P1=[d1]G, the initiator key pair (d1, P1); P1 is disclosed to the verification end; the joint public key is P A =[d1]P2-G,P A Public 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 public key of the collaboration end.

[0026] It should be further explained that the verification end (evaluation party) represents an evaluation agency that detects whether the collaborative signature algorithm mechanism is implemented correctly and effectively and whether the collaborative end actually participates in the collaborative signature algorithm. The verification end can independently call the collaborative end and the initiator to perform the SM2 signature verification operation, so that 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 the point P on the elliptic curve, k is a positive integer, n is the order of the base point G, etc.); process data of collaborative signature between the initiator and the collaborative end, including message digest e, Q1 (indicating the number of points on the elliptic curve); partial signature value (r, s2) sent by the collaborative end to the initiator; message M transmitted by the initiator and the joint signature value (r, s) of message M.

[0027] In addition, the process data refers to all data generated and transmitted by the initiator in 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, which is used to send to the initiator to generate the final joint signature value; the second signature value refers to the joint signature value (r, s) generated by the initiator after receiving the partial signature value.

[0028] Specifically, a network packet capture tool (such as Wireshark) may be used to capture data packets sent from the initiator to the coordinator, and no limitation is made here.

[0029] Step S12, obtaining a first verification result based on the process data, the first signature value and the second signature value; 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, which is used to verify whether the initiating end and the collaborative end correctly use the collaborative signature technology to perform collaborative signing.

[0030] Specifically, it is detected whether a message digest and an elliptic curve point exist in the process data, and if so, 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 are extracted, and the consistency of the third parameter value and the fifth parameter value is verified. If the verification passes, the correctness of the fourth parameter value and the sixth parameter value is verified according to a first preset verification formula. If the verification passes, it is determined that the initiator and the collaborative end correctly use the collaborative signature technology when performing the collaborative signature to generate a first verification result.

[0031] Step S13, generating elliptic curve points and a message digest, and sending the elliptic curve points and the message digest to the collaborative end, so that the collaborative end can determine the collaborative end private key, calculate a third signature value based on the collaborative end private key, the elliptic curve points and the message digest, and send the third signature value to the verification end; It should be noted that the elliptic curve points refer to the points generated on the elliptic curve, which are usually used in the signing and verification process to generate signature values ​​and verify the correctness of signatures, such as Q1=[k1]P2, Q2=[k2]G, etc. The message digest refers to the fixed-length summary 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, such as e=H v (M), H v () represents a cryptographic hashing algorithm with a message digest length of v bits.

[0032] It should be further explained that the collaborative end (collaborative party) refers to the participant who assists the initiator in completing the key pair generation or signing during the operation of the protocol. The collaborative end may be untrustworthy (a fake collaborative end) and may not participate in the actual collaboration) or a real collaborative end, which requires verification and confirmation by the verification end. The parameters included in the collaborative end are: the collaborative end private key d2∈[1,n-1], which is not public; the collaborative end public key P2=[d2]G, and the collaborative end's key pair is (d2,P2); P2 is disclosed to the verification end.

[0033] Additionally, the third signature value refers to a partial signature value (r, s2) for verification that is generated by the collaboration end according to the data sent by the verification end and sent to the verification end.

[0034] Specifically, the verification end generates a random number k1, and generates or calculates a number W1∈[1,n-1] based on the random number k1, and selects a message M, calculates the elliptic curve point number 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 collaborative end, and H v It represents a cryptographic hash algorithm with a message digest length of v bits, where e is the message digest (or hash value or hash value), thereby generating elliptic curve points and message digest.

[0035] Furthermore, the elliptic curve points and the message digest are sent to the collaborative end so that the collaborative end can determine the collaborative end private key, and a third signature value is calculated based on the collaborative end private key, the elliptic curve points and the message digest, and the third signature value is sent to the verification end.

[0036] 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; 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.

[0037] 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.

[0038] 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.

[0039] Step S15: Generate a collaborative signature verification result based on the first verification result and the second verification result.

[0040] It should be noted that the collaborative signature verification result refers to the final verification result obtained by the verification end after combining 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 to ensure that the signature result is valid and credible.

[0041] Specifically, if the first verification result and the second verification result are both verification pass results, a collaborative signature verification result of "collaborative signature verification passed" is generated.

[0042] This embodiment obtains process data after the initiator completes the collaborative signature, wherein the process data includes a first signature value and a second signature value, and then obtains a first verification result based on the process data, the first signature value and the second signature value, thereby generating elliptic curve points and a message digest, and sending the elliptic curve points and the message digest to the collaborative end so that the collaborative end can determine the collaborative end private key, calculate a third signature value based on the collaborative end private key, the elliptic curve points and the message digest, send the third signature value to the verification end, and then receive the third signature value returned by the collaborative end, and calculate 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, and then generate a collaborative signature verification result based on the first verification result and the second verification result, thereby ensuring that each participant correctly participates in the collaborative signature process, and each step has a clear verification mechanism to ensure the reliability and validity of the signature and the legitimacy and validity of the participant, thereby jointly ensuring the validity and security of the collaborative signature mechanism and improving the overall security of the system.

[0043] In a feasible implementation manner, the method further includes: Step S21, obtain the collaborative end public key corresponding to the collaborative end, wherein 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.

[0044] It should be noted that the collaborative end public key refers to the public key used by the collaborative end in the elliptic curve cryptography system. The public key is calculated using the collaborative end's private key and the base point G, and is usually represented as a point P2 on an elliptic curve in the form of P2=(x2,y2).

[0045] It should be further explained that the first parameter value refers to the x-coordinate of the collaborative end public key P2, usually expressed as x2. The second parameter value refers to the y-coordinate of the collaborative end public key P2, usually expressed as y2.

[0046] Specifically, obtain the collaborative end public key P2=(x2,y2) corresponding to the collaborative end, wherein the collaborative end public key includes a first parameter value x2 and a second parameter value y2, and 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, wherein the preset elliptic curve equation is y 2 =x 3 +ax+b, and then substitute x2 and y2 into the elliptic curve equation for verification to check whether the equation holds.

[0047] Furthermore, if the equation holds, it means that P2 is a valid point on the elliptic curve; if the equation does not hold, it means that P2 is not on the elliptic curve, the verification fails, and the verification process is terminated.

[0048] This embodiment obtains the collaborative end public key corresponding to the collaborative end, wherein the collaborative end public key includes a first parameter value and a second parameter value, and then calculates 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, and if not, terminates the collaborative signature verification process, 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 discover and terminate the signature verification process, thereby preventing middleman attackers from inserting or modifying the public key during the signing process, ensuring the security of the signing process. At the same time, in the early stage of the signature verification process, by verifying the validity of the public key, the invalid signing process can be discovered and terminated in time, saving computing resources and time, and ensuring that the data in the signing process has not been tampered with, thereby ensuring the integrity of the signing process.

[0049] In a feasible implementation manner, the method further includes: Step S31, sending the message digest to the collaborative end, so that the collaborative end signs based on the message digest, generates a fifth signature value, and returns the fifth signature value to the verification end; Step S32, receiving the fifth signature value returned by the collaborative end, and determining the collaborative end public key; Step S33, verifying the fifth signature value based on the collaborative end public key to verify the legitimacy of the collaborative end.

[0050] 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.

[0051] 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: 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.

[0052] 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.

[0053] 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.

[0054] 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: Step S41, detect whether there are message digests and elliptic curve points in the process data; Step S42, if yes, 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; 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 initiator and the collaborative end use the collaborative signature technology correctly when performing collaborative signing to generate a first verification result.

[0055] 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 initiator. 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 initiator.

[0056] Specifically, detect whether a message digest and an elliptic curve point exist in the process data, and 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 verify the consistency of the third parameter value and the fifth parameter value. Specifically, refer to the steps in "comparing the seventh parameter value with the eighth parameter value corresponding to the fourth signature value for consistency" for consistency verification.

[0057] Furthermore, if the verification is successful, the correctness of the fourth parameter value and the sixth parameter value are verified according to the first preset verification formula. The specific verification process is as follows: Let T=[s](P+G)+[r]P, T'=[s1+w1s2+w2s3+...+w γ s γ+1 ]·P2-[r]·G Where, s1=d1(r+W y+1 )mod n;s2=(d2W y+2 )mod n,...,s y+1 =(d2W 2y+1 )mod n; T'=(s1·P2+w1s2·P2+w2s3·P2+...+w γ s γ+1 ·P2)-[r]·G =(s1·P2+w1s2·d2 -1 G+w2s3·d2 -1 G+...+w γ s γ+1 ·d2 -1 G)-[r]·G =(s1·d2 -1 G+Q1s2·d2 -1 +Q2s3·d2 -1 +...+Q γ s γ+1 ·d2 -1 )-[r]·G =(s1G+Q1s2+Q2s3+...+Q γ s γ+1 )·d2 -1 -[r]·G T’·d2+[r]·G·d2=(s1G+Q1s2+Q2s3+...+Q γ s γ+1 ) T’·d2+[r]·G·d2=[s](P+G)·d2+[r]P·d2+[r]·G·d2 =[s]P1+[r](P·d2+G·d2) =[s]P1+[r]P1=(s+r)P1 =(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 =(s1P2+w1·w y+2 ·G+w2·w y+3 ·G+...+w γ ·w 2y+2 ·G)-[r]·G =(s1P2+Q1·w y+2 +Q2·w y+3 +...+Q γ ·w 2y+2 )-[r]·G =(d1(r+w y+1 )·d2 -1 G+Q1·w y+2 +Q2·w y+3 +...+Q γ ·w2y+2 )-[r]·G =(r·G+w y+1 ·G+Q1·w y+2 +Q2·w y+3 +...+Q γ ·w 2y+2 )-[r]·G =w y+1 ·G+Q1·w y+2 +Q2·w y+3 +...+Q γ ·w 2y+2 =Q According to the first preset verification formula, that is: s·(P+G)=(P2·(s1+w1s2+w2s3+...+w γ s γ+1 )-r·(P+G))mod n, we get: s = (P2·(s1+w1s2+w2s3+...+w γ s γ+1 )-r·(P+G))·(P+G) -1 =P2·(P+G) -1 ·(s1+w1s2+w2s3+...+w γ s γ+1 )-r =d2 -1 ·G·(P+G) -1 ·(s1+w1s2+w2s3+...+w γ s γ+1 )-r (Formula 1) 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 (Formula 1) to get the value of s, and according to s, (Q1, Q2, ..., Q γ ), (s1, s2, s3,..., s r+1 )、P2、r、P A , G values, calculate T and T'. By comparing the values ​​of T and T', verify (s1, s2, s3, ..., s r+1 ) and s and the verification initiator obtains the signature value of the collaborative end (r, s1, s2, s3, ..., s r+1 ) After that, the collaborative signature mechanism is adopted to complete the system signature.

[0058] Furthermore, if T = T', then (s1, s2, s3, ..., s r+1 ), there is such a relationship between s: s×(P A +G)=(P2×(s1+w1s2+w2s3+...+w γ s γ+1 )-r×(P A +G), and also proves that the initiator obtains the signature value of the coordinator (r, s1, s2, s3, ..., s r+1 ), the initiator uses the collaborative signature mechanism to complete the joint signature operation of the system, and outputs the joint signature value (r, s) to generate the first verification result. In addition, if T≠T', it means that the initiator has not correctly completed the collaborative signature mechanism, and the verification process ends.

[0059] This embodiment detects whether there are message digests and elliptic curve points in the process data, and if so, extracts 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 verifies the consistency of the third parameter value and the fifth parameter value, so that if the verification passes, the correctness of the fourth parameter value and the sixth parameter value is verified according to the first preset verification formula, and if the verification passes, it is determined that the initiator and the collaborative end correctly use the collaborative signature technology when performing collaborative signing to generate a first verification result, so as to ensure the integrity and correctness of the signing process by verifying whether the initiator correctly uses the signature data of the collaborative end to complete the final signature, and prevent the initiator from tampering with or ignoring the signature data of the collaborative end after receiving the signature data, thereby generating an invalid signature, because if the initiator does not use the collaborative signature technology correctly, the detection party will not be able to pass the verification, thereby preventing signature forgery and unauthorized signing behavior, and finally achieving the purpose of verifying whether the initiator uses the collaborative signature technology to sign.

[0060] Based on this, the present application embodiment provides a collaborative signature verification method, referring to Figure 3 , Figure 3 A flowchart diagram is provided for the second embodiment of the collaborative signature verification method of this application.

[0061] In a feasible implementation manner, obtaining a second verification result based on the third signature value and the fourth signature value includes: 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, the message digest, and the third signature value based on a second preset verification formula to obtain a seventh parameter value corresponding to the third signature value; Step S52, comparing the seventh parameter value with the eighth parameter value corresponding to the fourth signature value for consistency; Step S53: If the comparison is successful, it is determined that the collaborative end participates in the collaborative signing process to generate a second verification result.

[0062] It should be noted that the seventh parameter value refers to r in the partial signature value sent by the collaboration 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.

[0063] Specifically, determine the first random number k1, the collaborative end public key P2 and the message digest e, and based on the second preset verification formula, calculate the first random number, the collaborative end public key and the message digest and other values ​​with the third signature value to obtain the seventh parameter value corresponding to the third signature value. The specific calculation process is as follows: 1) First, according to the signature verification principle in SM2 digital signature technology, the mathematical expression of the elliptic curve point (x1', y1') of the joint signature is as follows: (x1', y1')=[s]G+[t]P=[s]G+[r+s]P=[s]G+[r]P+[s]P=[s](P+G)+[r]P (Formula 2) 2) Since s=(d1·(s1+w1s2+w2s3+...+w γ s γ+1 )-r)mod n, we get: s·(P+G)=(d1·(P+G)·(s1+w1s2+w2s3+...+w γ s γ+1 )-r·(P+G))mod n (Formula 3) 3) If the public key P = d1 -1 P2-G, meets the requirements for collaborative signature key generation, then d1 -1 P2=P+G; P2=d1 -1 (P+G), so (Equation 2) can be expressed as: s·(P+G)=(P2·(s1+w1s2+w2s3+...+w γ s γ+1 )-r·(P+G))mod n (Formula 4) Then we can get, [s]·(P+G)=[s1+w1s2+w2s3+...+w γ s γ+1 ]·P2-[r]·P-[r]·G; [s]·(P+G)+[r]·P=[s1+w1s2+w2s3+...+w γ sγ+1 ]·P2-[r]·G (Formula 5) 4) According to (Formula 2) and (Formula 5), (x1', y1')=[s1+w1s2+w2s3+...+w γ s γ+1 ]·P2-[r]·G (Formula 6) When W1=k1, the initiator only generates one random number. When the verifier simulates the initiator test, it sends Q1=W1G=k1G, then (Equation 6)=[s1+k1s2]*P2-[r]*G; When W1=d1 -1 When k1, the initiator generates W2=k2, W3=k3, and the verification end simulates the Q1=W1G=d1 ​​sent by the initiator during the test. -1 ·k1·G=k1P1, Q2=k2G, Q3=k3G, When using (Formula 6) at the same time, because W1·P2=d1 -1 k1 P2 = k1 (P + G), (Formula 6) = (s1·P2+w1s2·P2+w2s3·P2+...+w γ s γ+1 ·P2)-[r]·G, (Equation 6) = (s1·P2+s2·d1 -1 k1·P2+w2s3·P2+...+w γ s γ+1 ·P2)-[r]·G, (Equation 6) = (s1·P2+s2·k1·(P+G)+k2s3·P2+...+k γ s γ+1 ·P2)-[r]·G When W1=d1 -2 When k1, the initiator generates W2=k2, W3=k3, and the verification end simulates the Q1=W1G=d1 ​​sent by the initiator during the test. -2 k1 G=d1 -1 ·k1·d1 -1 G = d1 -1 ·k1·P1, Q2=k2G, Q3=k3G, when using (Formula 6) at the same time, because W1·P2=d1 -2 k1 P2 = d1 -1 k1 (P+G), (Formula 6) = (s1·P2+w1s2·P2+w2s3·P2+...+w γ s γ+1 ·P2)-[r]·G, (Equation 6) = (s1·P2+s2·d1 -1 k1·P2+w2s3·P2+...+w γ s γ+1 ·P2)-[r]·G, (Equation 6) = (s1·P2+s2·k1·(P+G)+k2s3·P2+...+k γ s γ+1 ·P2)-[r]·G Because, P = [d1 -1 d2 -1 -1]G= d1 -1 d2 -1 GG = d1 -1 P2-G=d2 -1 P2-G d1 -1 P2=P+G;d2 -1 P2=P+G; P1=(P+G)d2; P2=d1P+d1G=d1(P+G)=d2 -1 G; [s]·(P+G)·d1 -1 +[r]P·d1 -1 =[s1+w1s2+w2s3+...+w γ s γ+1 ]·P2·d1 -1 -[r]·G·d1 -1 Background formula: s1=d2(r+w γ+1 )mod q,s2=(d2w γ+2 )mod q,...,s γ+1 =(d2w 2γ+1 )mod q; Background formula: w1,w2,...w γ ∈[1,n-1]; calculate Q1=[w1]G,...,Q γ =[w γ ]G; Background formula: Q=(x1,y1)=[w γ+1 ]G+[w γ+2 ]Q1+...+[w 2γ+1 ]Q; At the collaborative end, since s2=(d2·(r+W2)) mod n, we substitute s2 into (Equation 6) and obtain: (x1', y1')=[s1+w1s2+w2s3+...+w γ s γ+1·P2 - [r]·G = s1·P2 + w1s2·P2 + w2s3·P2 +... + w γ s γ+1 ·P2 - [r]·G = d2(r + w γ+1 )·P2 + w1·(d2w γ+2 )·P2 + w2·(d2w γ+3 )·P2 +... + w γ ·d2w 2γ+1 ·P2 - [r]·G = 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 =(r + w γ+1 )·G + w1·(w γ+2 )·G + w2·(w γ+3 )·G +... + w γ ·w 2γ+1 ·G - [r]·G = r·G + w γ+1 ·G + w1·(w γ+2 )·G + w2·(w γ+3 )·G +... + w γ ·w 2γ+1 ·G - [r]·G = w γ+1 ·G + w1·(w γ+2 )·G + w2·(w γ+3 )·G +... + w γ ·w 2γ+1 ·G =(x1,y1) (Equation 7) According to (Formula 7), x1'=x1. Assume that the joint signature value calculated by the verification end is represented by r' (eighth parameter value), the signature value sent by the collaborative party is r (seventh parameter value), and r'=(e+x1') mod n, r=(e+x1) mod n, and then by comparing the values ​​of (e+x1') mod n and (e+x1) mod n, (e+x1') mod n=(e+x1) mod n is obtained, thereby verifying that the joint signature value r'=r calculated by the verification end, thereby proving that the collaborative end participated in the collaborative signature. In order to achieve consistency comparison between the seventh parameter value and the eighth parameter value corresponding to the fourth signature value, if the comparison is successful, it is determined that the collaborative end participates in the collaborative signature process to generate a second verification result.

[0064] In addition, this conclusion can be verified by the following alternative scheme: use the signature value (r, s2) already known by the verification end, the random number k1, the public key P2 of the collaborative end, and point G to directly calculate the value of (x1', y1') using (Formula 6), and then use x1', e and r'=(e+x1') mod n to calculate the value of r', and then verify whether the collaborative party participated in the collaborative signature by comparing the values ​​of r' and r.

[0065] Furthermore, if r'=r, it means that the collaborative end has participated in the collaborative signature; if r'≠r, it means that the collaborative end has not participated in the collaborative signature. In addition, the verification process also shows that P A is the public key of the joint signature, and through the collaborative signature mechanism (P = [d1 -1 d2 -1 -1]G)Generate.

[0066] This embodiment determines a first random number, a public key of the collaborative end, and a message digest, and based on a second preset verification formula, calculates 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 compares 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 signature process to generate a second verification result, and then the verification end simulates the behavior of the initiating end to verify whether the collaborative end correctly generates part of the signature data in accordance with the collaborative signature protocol, so as to ensure that the collaborative end plays its due role in the signature process, rather than just transmitting some invalid or forged data or the initiating end forging the collaborative signature itself, but the collaborative end does not actually participate. If the collaborative end does not correctly participate in the collaborative signature process, the detection party will not be able to pass the subsequent verification steps, so as to timely discover and prevent potential cheating behaviors and achieve the purpose of verifying that the collaborative end correctly participates in the collaborative signature process.

[0067] Based on this, the present application embodiment provides a collaborative signature verification method, referring to Figure 4 , Figure 4 A flowchart diagram of the third embodiment of the collaborative signature verification method of this application is provided.

[0068] In this embodiment, the collaborative signature verification method includes steps S61 to S63: Step S61, receiving the elliptic curve points and message digest sent by the verification end, and determining the collaborative end private key; It should be noted that the collaborative end private key refers to the private key used by the collaborative end (collaborative end) to generate a signature, denoted as d2.

[0069] Step S62, calculating a third signature value based on the collaborative end private key, the elliptic curve points and the message digest; Specifically, the collaborative end generates a random number k2, and generates or calculates a number W2 based on the random number k2, and then uses the collaborative signature method, takes e and Q1 as the message of the initiator, uses its own private key d2 to calculate the third signature value (r, s2), and sends it to the verification end; Where 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.

[0070] Step S63, sending the third signature value to the verification end, so that the verification end calculates the fourth signature value based on the elliptic curve point 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, wherein the first verification result is generated based on the process data, the first signature value and the second signature value.

[0071] This embodiment receives the elliptic curve points and message digest sent by the verification end, determines the collaborative end private key, and then calculates the third signature value based on the collaborative end private key, the elliptic curve points and the message digest, and then sends the third signature value to the verification end, so that the verification end can calculate the fourth signature value based on the elliptic curve points and the message digest, and obtain the second verification result based on the third signature value and the fourth signature value, and generate the collaborative signature verification result based on the first verification result and the second verification result, wherein the first verification result is generated based on the process data, the first signature value and the second signature value, thereby ensuring that each participant has correctly participated in the collaborative signature process, and each step has a clear verification mechanism to ensure the reliability and validity of the signature and the legitimacy and validity of the participants, thereby jointly ensuring the effectiveness and security of the collaborative signature mechanism and improving the overall security of the system.

[0072] It should be understood that the order of execution of the steps in the above embodiment does not necessarily mean the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiment of the present invention.

[0073] This application also provides a collaborative signature verification system, please refer to Figure 5 , the collaborative signature verification system comprises: The verification end 51 is used to obtain process data after the initiator and the collaborative end complete the collaborative signature, wherein 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 elliptic curve points and a message digest, and send the elliptic curve points and the message digest to the collaborative end, so that the collaborative end can determine the collaborative end private key, calculate a third signature value based on the collaborative end private key, the elliptic curve points 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 points and the message digest, so as to 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; The collaborative end 52 is used to receive the elliptic curve points and message digest sent by the verification end, and determine the collaborative end private key; calculate the third signature value based on the collaborative end private key, the elliptic curve points and the message digest; send the third signature value to the verification end, so that the verification end can calculate the 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, 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 the process data, the first signature value and the second signature value.

[0074] The collaborative signature verification system is also used for: Obtaining a collaborative end public key corresponding to the collaborative end, wherein the collaborative end public key includes a first parameter value and a second parameter value; 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; If not, the collaborative signature verification process is terminated.

[0075] The collaborative signature verification system is also used for: Sending the message digest to the collaborative end, so that the collaborative end signs based on the message digest, generates a fifth signature value, and returns the fifth signature value to the verification end; Receive the fifth signature value returned by the collaborative end, and determine the collaborative end public key; Based on the collaborative end public key, the fifth signature value is verified to verify the legitimacy of the collaborative end.

[0076] The collaborative signature verification system is also used for: detecting whether a message digest and an elliptic curve point exist in the process data; If yes, 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 is successful, verifying the correctness of the fourth parameter value and the sixth parameter value according to the first preset verification formula; If the verification is successful, it is determined that the initiating end and the coordinating end correctly use the collaborative signature technology when performing the collaborative signature to generate a first verification result.

[0077] The collaborative signature verification system is also used for: Determine a first random number, a collaborative end public key, and a message digest, and based on a second preset verification formula, calculate the first random number, the collaborative end public key, the message digest, and the third signature value to obtain a seventh parameter value corresponding to the third signature value; Comparing the seventh parameter value with an 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.

[0078] The collaborative signature verification system is also used for: Receive the elliptic curve points and message digest sent by the verification end, and determine the private key of the collaboration end; Calculate a third signature value based on the collaborative end private key, the elliptic curve points and the message digest; The third signature value is sent to the verification end so that the verification end can calculate the fourth signature value based on the elliptic curve point 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, wherein the first verification result is generated based on the process data, the first signature value and the second signature value.

[0079] The collaborative signature verification system provided by the present application adopts the collaborative signature verification method in the above embodiment, which can solve the technical problems in the background technology. Compared with the prior art, the beneficial effects of the collaborative signature verification system provided by the present application are the same as the beneficial effects of the collaborative signature verification method provided by the above embodiment, and other technical features in the collaborative signature verification system are the same as the features disclosed in the above embodiment method, which will not be repeated here.

[0080] The present 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 so that the at least one processor can execute the collaborative signature verification method in the above-mentioned embodiment one.

[0081] Reference below Figure 6, which shows a schematic diagram of the structure of a collaborative signature verification device suitable for implementing the embodiment of the present application. The collaborative signature verification device in the embodiment of the present 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), vehicle-mounted terminals (such as vehicle-mounted navigation terminals), etc., and fixed terminals such as digital TVs, desktop computers, etc. Figure 6 The collaborative signature verification device shown is merely an example and should not bring any limitation to the functions and scope of use of the embodiments of the present application.

[0082] like Figure 6 As shown, the collaborative signature verification device may include a processing system 1001 (e.g., a central processing unit, a graphics processing unit, etc.), which can perform various appropriate actions and processes according to a program stored in a read-only memory (ROM: Read Only Memory) 1002 or a program loaded from a storage system 1003 to a random access memory (RAM: Random Access Memory) 1004. In RAM1004, various programs and data required for the operation of the collaborative signature verification device are also stored. The processing system 1001, ROM1002, and RAM1004 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 can 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: Liquid Crystal Display), 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 can allow the collaborative signature verification device to communicate with other devices wirelessly or by wire to exchange data. Although the figure shows a collaborative signature verification device with various systems, it should be understood that it is not required to implement or have all the systems shown. More or fewer systems can be implemented or have alternatively.

[0083] In particular, according to the embodiments disclosed in the present application, the process described above with reference to the flowchart can be implemented as a computer software program. 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 a program code for executing the method shown in the flowchart. In such an embodiment, the computer program can be downloaded and installed from a network through a communication system, or installed from a storage system 1003, or installed from a ROM 1002. When the computer program is executed by the processing system 1001, the above-mentioned functions defined in the method of the embodiment disclosed in the present application are executed.

[0084] The collaborative signature verification device provided by the present application adopts the collaborative signature verification method in the above embodiment, which can solve the technical problems in the background technology. Compared with the prior art, the beneficial effects of the collaborative signature verification device provided by the present application are the same as the beneficial effects of the collaborative signature verification method provided by the above embodiment, and the other technical features in the collaborative signature verification device are the same as the features disclosed in the method of the previous embodiment, which will not be repeated here.

[0085] 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 any one or more embodiments or examples in a suitable manner.

[0086] The above is only a specific implementation of the present application, but the protection scope of the present application is not limited thereto. Any person skilled in the art who is familiar with the present technical field can easily think of changes or substitutions within the technical scope disclosed in the present application, which should be included in the protection scope of the present application. Therefore, the protection scope of the present application should be based on the protection scope of the claims.

[0087] The present application provides a computer-readable storage medium having computer-readable program instructions (ie, computer programs) stored thereon, and the computer-readable program instructions are used to execute the collaborative signature verification method in the above-mentioned embodiment.

[0088] The computer-readable storage medium provided in the present application may be, for example, a USB flash drive, but is not limited to electrical, magnetic, optical, electromagnetic, infrared, or semiconductor systems, systems or devices, or any combination of the above. More specific examples of computer-readable storage media may include, but are not limited to: an electrical connection with one or more wires, a portable computer disk, a hard disk, a random access memory (RAM: Random Access Memory), a read-only memory (ROM: Read Only Memory), an erasable programmable read-only memory (EPROM: Erasable Programmable Read Only Memory or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM: CD-Read Only Memory), an optical storage device, a magnetic storage device, or any suitable combination of the above. In this embodiment, the computer-readable storage medium may be any tangible medium containing or storing a program, which may be used by or in combination with an instruction execution system, system or device. The program code contained on the computer-readable storage medium may be transmitted using any appropriate medium, including but not limited to: wires, optical cables, RF (Radio Frequency: Radio Frequency), etc., or any suitable combination of the above.

[0089] The above-mentioned computer-readable storage medium may be included in the collaborative signature verification device; or it may exist independently without being assembled into the collaborative signature verification device.

[0090] The computer-readable storage medium carries one or more programs. When the one or more programs are executed by the collaborative signature verification device, the collaborative signature verification device: Acquire process data after the initiator completes the collaborative signature, wherein the process data includes the first signature value and the second signature value; Obtaining a first verification result based on the process data, the first signature value, and the second signature value; Generate elliptic curve points and a message digest, and send the elliptic curve points and the message digest to the collaborative end so that the collaborative end can determine the collaborative end private key, calculate a third signature value based on the collaborative end private key, the elliptic curve points and the message digest, and send the third signature value to the verification end; receiving a 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; Based on the first verification result and the second verification result, a collaborative signature verification result is generated.

[0091] Computer program code for performing the operations of the present application may be written in one or more programming languages ​​or a combination thereof, including object-oriented programming languages ​​such as Java, Smalltalk, C++, and conventional procedural programming languages ​​such as "C" or similar programming languages. The program code may be executed entirely on the user's computer, partially on the user's computer, as a separate 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 may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (e.g., via the Internet using an Internet service provider).

[0092] The flow chart and block diagram in the accompanying drawings illustrate the possible architecture, function and operation of the system, method and computer program product according to various embodiments of the present application. In this regard, each square box in the flow chart or block diagram can represent a module, a program segment or a part of a code, and the module, the program segment or a part of the code contains one or more executable instructions for realizing the specified logical function. It should also be noted that in some alternative implementations, the functions marked in the square box can also occur in a sequence different from that marked in the accompanying drawings. For example, two square boxes represented in succession can actually be executed substantially in parallel, and they can sometimes be executed in the opposite order, depending on the functions involved. It should also be noted that each square box in the block diagram and / or flow chart, and the combination of the square boxes in the block diagram and / or flow chart can be implemented with a dedicated hardware-based system that performs a specified function or operation, or can be implemented with a combination of dedicated hardware and computer instructions.

[0093] The modules involved in the embodiments described in this application may be implemented by software or hardware, wherein the name of the module does not constitute a limitation on the unit itself in some cases.

[0094] The readable storage medium provided in this application is a computer-readable storage medium, which stores computer-readable program instructions (i.e., computer programs) for executing the above-mentioned collaborative signature verification method, and can solve the technical problems in the background technology. Compared with the prior art, the beneficial effects of the computer-readable storage medium provided in this application are the same as the beneficial effects of the collaborative signature verification method provided in the above-mentioned embodiment, and will not be repeated here.

[0095] An embodiment of the present application provides a computer program product, including a computer program, which implements the steps of the collaborative signature verification method as described above when executed by a processor.

[0096] The computer program product provided in this application can solve the technical problems in the background technology. Compared with the prior art, the beneficial effects of the computer program product provided in the embodiment of this application are the same as the beneficial effects of the collaborative signature verification method provided in the above embodiment, which will not be repeated here.

[0097] The above descriptions are only some embodiments of the present application, and are not intended to limit the patent scope of the present application. All equivalent structural changes made using the contents of the present application specification and drawings under the technical concept of the present application, or direct / indirect applications in other related technical fields are 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 end, and includes: Acquire process data after the initiator completes the collaborative signature, wherein the process data includes the first signature value and the second signature value; Obtaining a first verification result based on the process data, the first signature value, and the second signature value; Generate elliptic curve points and a message digest, and send the elliptic curve points and the message digest to the collaborative end so that the collaborative end can determine the collaborative end private key, calculate a third signature value based on the collaborative end private key, the elliptic curve points and the message digest, and send the third signature value to the verification end; receiving a 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; Based on the first verification result and the second verification result, a collaborative signature verification result is generated.

2. The collaborative signature verification method according to claim 1, characterized in that: The method further comprises: Obtaining a collaborative end public key corresponding to the collaborative end, wherein the collaborative end public key includes a first parameter value and a second parameter value; 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; If not, the collaborative signature verification process is terminated.

3. The collaborative signature verification method according to claim 1, characterized in that: The method further comprises: Sending the message digest to the collaborative end, so that the collaborative end signs based on the message digest, generates a fifth signature value, and returns the fifth signature value to the verification end; Receive the fifth signature value returned by the collaborative end, and determine the collaborative end public key; Based on the collaborative end public key, the fifth signature value is verified to verify the legitimacy of the collaborative end.

4. The collaborative signature verification method according to claim 1, characterized in that: The obtaining a first verification result based on the process data, the first signature value, and the second signature value includes: detecting whether a message digest and an elliptic curve point exist in the process data; If yes, 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 is successful, verifying the correctness of the fourth parameter value and the sixth parameter value according to the first preset verification formula; If the verification is successful, it is determined that the initiating end and the coordinating end correctly use the collaborative signature technology when performing the collaborative signature to generate a first verification result.

5. The collaborative signature verification method according to claim 1, characterized in that: The obtaining a second verification result based on the third signature value and the fourth signature value includes: Determine a first random number, a collaborative end public key, and a message digest, and based on a second preset verification formula, calculate the first random number, the collaborative end public key, the message digest, and the third signature value to obtain a seventh parameter value corresponding to the third signature value; Comparing the seventh parameter value with an 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.

6. A collaborative signature verification method, characterized in that: The method is applied to the collaborative end, and includes: Receive the elliptic curve points and message digest sent by the verification end, and determine the private key of the collaboration end; Calculate a third signature value based on the collaborative end private key, the elliptic curve points and the message digest; The third signature value is sent to the verification end so that the verification end can calculate the fourth signature value based on the elliptic curve point 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, wherein the first verification result is generated based on the process data, the first signature value and the second signature value.

7. A collaborative signature verification system, characterized in that: include: The verification end is used to obtain process data after the initiator and the collaborative end complete the collaborative signature, wherein 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 elliptic curve points and a message digest, and send the elliptic curve points and the message digest to the collaborative end, so that the collaborative end can determine the collaborative end private key, calculate a third signature value based on the collaborative end private key, the elliptic curve points 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 points and the message digest, so as to 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; The collaborative end is used to receive the elliptic curve points and 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 points and the message digest; send the third signature value to the verification end, so that the verification end can calculate 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, 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 the process data, the first signature value and the second signature value.

8. A collaborative signature verification device, characterized in that: The collaborative signature verification device comprises: a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the computer program is configured to implement the steps of the collaborative signature verification method according to any one of claims 1 to 6.

9. 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. 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 6 are implemented.

10. A computer program product, characterized in that The computer program product comprises 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 6 are implemented.

Citation Information

Patent Citations

  • Multi-party joint signature method and system based on SM2 algorithm

    CN114978536A

  • 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

  • Systems and methods for generating signatures

    US10903991B1