Skip to main content
PLOS One logoLink to PLOS One
. 2023 Feb 6;18(2):e0268245. doi: 10.1371/journal.pone.0268245

Multi-party co-signature scheme based on SM2

Liang Tan 1,¤c, Xinglin Shang 1, Liping Zou 1,¤a,#, Hekun Yang 1,¤b,#, Yi Wen 1, Zhongzhu Liu 2,*
Editor: Pandi Vijayakumar3
PMCID: PMC9901816  PMID: 36745591

Abstract

Two-party collaborative signature scheme is an important cryptographic technology for user authentication and data integrity protection when using mobile devices for financial and securities transactions. However, the two-party collaboration scheme has the following shortcomings: firstly, it is not flexible enough, and it requires the collaborating parties to be secure and trusted; secondly, the two-party collaboration security still needs to be improved. Once a hacker obtains the signature private key and collaborative identity of a mobile device, it can construct a legitimate two-party collaborative signature. Third, the application scenario of two-party co-signature is limited and cannot meet the application scenario of multi-device co-signature. For this reason, this paper designs a multi-party collaborative signature scheme based on SM2 digital signature algorithm in the standard “SM2 Elliptic Curve Public Key Cryptography” of GM/T003-2012. This scheme consists of multiple (more than 2) participants to jointly generate the signature group public key and valid signature in an interactive manner, while ensuring that each user cannot know the signature key other than their own during the signing process. We implement this scheme based on the GMP library. The experimental results show that this scheme is not only flexible but also more secure and trustworthy to meet the application scenario of multi-device collaborative signing. In addition, the time for multiple participants to construct signatures in this scheme is similar, and the time for signature verification is less different from that of the original SM2 signature.

Introduction

With the rapid development of mobile Internet, the owners of mobile smart devices are increasing, and device owners can use their mobile devices to communicate with each other anytime and anywhere, and mobile devices have been fully integrated into the production life of society. According to real-time data from GSMA intelligence, as of the end of 2019, there are currently more than 5.2 billion unique owners of mobile devices worldwide (i.e., more than 67% of the world’s population has a mobile device), and this number is forecast to increase to 5.8 billion by the end of 2025, accounting for 70% of the world’s population [1]. Nowadays, it is very common for users to use mobile devices to conduct financial, securities and other transactions, and it has become particularly important to ensure the security of sensitive user data and transaction processes [24].

Data signature is an important cryptographic technology for authentication of mobile device users and integrity protection of mobile device data, which can play an important role in protecting users’ sensitive data and transaction process security. However, the digital signature technology has extremely high requirements for the storage and management of the signature private key of the mobile device, mobile devices themselves have security risks such as easy loss or hijacking, and limited computing power, if the software module is used to save the signature private key to the local or smart chip [5], this simple device security deployment and open network connections make mobile devices extremely easy to become the target of network attacks [6, 7]. Once the mobile device is hacked and the signature private key is stolen, the hacker can pretend to be a user in banking, insurance, securities, transportation, postal, e-commerce, mobile communications and other industries to conduct transactions, causing huge economic losses to the user.

Currently, there are two specific methods to solve this problem. One is the threshold signature scheme based on Shamir’s secret sharing, which splits the signature private key of a device among n participants when and only when there are more than a threshold t (tn) participants collaboratively recovering the complete private key and signing it with their respective private key slice [8]. The signature private key slice in this scheme is no longer stored and managed by a unique device but by n devices, thus it is more secure and trustworthy, and even if a hacker breaks one or m(m < t) of the devices and obtains their private key slice, it still cannot construct a legitimate signature. However, this scheme is difficult to apply to mobile terminals with limited computing and storage resources. In addition such threshold signature schemes [913] all require the participation of trusted centers and suffer from high communication computational cost, complex interaction, and too many communications. The second is the two-party co-signature scheme. The so-called two-party co-signature scheme refers to the co-signature scheme in which only 2 entities participate, usually one is a mobile terminal, and the other is a secure and trusted server. There are also some research results available. The two-party ECDSA signature scheme proposed by Ref. [14] in 2017 provides a good research direction for the subsequent work [1416]. The literature [1719] proposed a two-party co-signature protocol based on the SM2 algorithm. The Ref. [20] proposed a two-party co-signature scheme based on the SM2 algorithm, which gives a security model and a proof of security, with only one communication between the signing parties. The signature generated by the two-party co-signature scheme is no longer generated by the mobile terminal device alone, but is generated by the two parties together, which greatly increases the difficulty for hackers to construct a legal signature and improves the security and trustworthiness of the signature.

However, the two-party co-signing scheme still has three problems: first, two-party co-signing is not flexible enough. It requires that the cooperating party must be secure and trustworthy, so that the constructed collaborative signature can ensure the identity authentication and data integrity of mobile users. second, the two-party co-signing security still needs to be improved. Once a hacker obtains the signature private key and collaborative identity of the mobile device as the initiator of the signature, it is able to construct a legitimate two-party collaborative signature. Third, the application scenarios of two-party collaborative signatures are limited, which cannot meet the application scenarios of multi-device collaborative signatures. For example, in e-government affairs, leaders at all levels need to approve and sign the same document from lower to higher levels. In e-commerce Multiple partners sign the same contract, and the order of signatures can be fixed or random, etc.

To this end, this paper proposes a scalable multi-party collaborative signature scheme based on the SM2 algorithm. In this scheme, each participant generates a key pair, and any participant can initiate a signature, and multiple parties jointly participate in generating a valid signature and a group public key for signature verification, which can ensure that each participant cannot know the signature key other than their own during the signing process, and the original complete signature cannot be recovered by any missing user. The experimental results show that this scheme can not only construct a legitimate signature, but also the time for multiple participants to construct a signature is similar, and the signature verification can pass and the verification time is less than the original SM2 scheme. Moreover, it is more flexible, safer and more reliable, and is suitable for application scenarios of multi-device collaborative signature, which has great practical value in events that require the joint participation of multiple departments, such as document issuance, certificate issuance and auditing.

This article is divided into 7 sections for introduction. Section 1 introduces the background and development of SM2 algorithm, Section 2 introduces the basics involved in SM2 algorithm, Section 3 introduces the model and objective of SM2 algorithm, Section 4 introduces the principle of SM2 multi-party collaborative signature scheme based on SM2, Section 5 analyzes the security of SM2 multi-party collaborative scheme, Section 6 introduces the experiments and results analysis of SM2 multi-party collaborative scheme. Section 7 concludes the scheme of this paper.

Basic knowledge

This section will introduce the basic knowledge of digital signature and collaborative computing involved in this article. The symbol descriptions of related parameters are as follows.

In this paper, λ denotes the safety parameter and μ(λ) denotes a negligible function of λ. In addition, [*] denotes the dot product operation of elliptic curve and [−] denotes the dot subtraction operation of elliptic curve; ⊙ denotes the scalar multiplication homomorphism operation, that is, ab denotes the plaintext corresponding to b does multiplication operation with a; ⊕ means addition homomorphic operation, that is, ab means that the plaintext corresponding to a and the plaintext corresponding to b are added. Hv() is the hash algorithm with digest length v bits. Encpk() denotes the encryption operation of the Paillier scheme [21] under the homomorphic public key pk, and Decsk() denotes the decryption operation of the Paillier scheme [21] under the homomorphic private key sk.

Definition 1. Fp is a finite field, p denotes the scale of the finite field, and p is an odd prime or a square power of 2. E denotes an elliptic curve over a finite field Fp, and choose a, bFp as the parameters of the elliptic curve E, where the elliptic curve E(Fp) satisfies y2 = x3 + ax + bmodp and (4a3 + 27b2) mod p ≠ 0, and G is a point on the elliptic curve, that is, E(Fp) = {G|GE}∪{O}. A set formed by the addition operation of G as the generator point is called a group [22], the number of points in this group is called order n, where {O} is the point at infinity.

SM2 digital signature

According to the specification of “SM2 Elliptic Curve Public Key Cryptography Algorithm”, the definition of SM2 digital signature [23] is as follows:

(1) Parameter initialization (Setup): Input security parameters k, generate elliptic curve parameters params = (p, a, b, G, n) and output.

(2) Key generation (Key): Given the elliptic curve parameters params, select the random number dA as the user’s private key and calculate P = dA × G as the corresponding public key. Output the public-private key pair (P, dA).

(3) Signature algorithm (Sign): Given the elliptic curve parameters params, the private key dA and the message m, the algorithm steps for generating the signature (r, s) are as follows:

① Calculate ZA = Hv(ENTLIDAab|Ppk), where IDA is the distinguishable identifier of the user, ENTL is the length of IDA, calculate M′ = ZAM;

② Calculate e = Hv(M′), and convert the text e to an integer, where Hv() is a one-way function;

③ Select the random number kZp*, calculate the elliptic curve point Q = k[*]G = (x1, y1), and convert the data type of x1 to an integer;

④ Calculate the signature r = (e + x1)mod n, if r = 0 or r + k = n, return ③;

⑤ Calculate the signature s = (1 + dA)−1(krdA)modn, if s = 0, return to ③; otherwise, output the signature result (r, s).

(4) Signature verification (Verify): Given parameters params, public key P = dA[*]G, message m′ and signature (r′, s′), the steps of the verification algorithm are as follows.

① Respectively check whether r′, s′ ∈ [1, n − 1] is established, if not, the verification fails;

② Calculate M″ = ZM′, compute e′ = Hv(M′) and convert the data type of e′ to an integer;

③ Convert the data type of signature (r′, s′) to integer and calculate t = (r′ + s′) mod n. If t = 0 then the verification does not pass; otherwise, go to step ④;

④ Calculate the elliptic curve point (x1,y1)=s[*]G+t[*]P and convert the data type of x1 to an integer;

⑤ Calculate R=(e+x1) mod n, check whether R = r′ is established, and output 1 if the verification passes; otherwise output 0.

Secure Multi-Party Computation

Secure Multi-Party Computation (SMC) was first proposed by Prof. Yao in 1980 [24], which is mainly used to solve the personal privacy problem between participants who do not trust each other.

Secure Multi-Party Computation means that neither a public random string nor complex distributed settings are required. Each participant can generate its own key pair completely independently without any auxiliary information to complete the computation, which is an effective method to solve the privacy computation problem between two or more participants with strong theoretical and practical significance. In this paper, the scheme consists of multiple participants each selecting their own key pairs and jointly completing the signatures without revealing their respective privacy information, and during the computation process, all participants cannot obtain any additional valid information except for knowing their respective input data (including the received data transmitted by others) and the returned data results.

Safety model and design goals

Based on the co-signature described in the introduction, we construct the following application scenarios. Taking a customer’s loan application as an example, a bank has three-level administrative departments A, B, and C. When a customer makes a large loan in the bank, the approval process will be relatively strict, and two or more departments are often required to review the transaction documents level by level [25], and the specific steps for multi-level signing of transaction documents by multiple departments are as follows.

1) The customer initiates an application for a large loan with the bank.

2) First, the bank receives the application, and the third-level department C reviews the customer’s personal credit and other information, and if the basic information is legal, the transaction document will be signed for the first time.

3) Then, after receiving the transaction documents signed by the tertiary department, the secondary department B will conduct a valuation review on the client’s asset information, etc. If the review is approved, the transaction documents will be signed for the second time.

4) Finally, the Level 1 department summarizes and finally reviews all the information required by the customer, and if there is no problem, the transaction document will be signed for the third time.

In the above application, which involves joint cooperation among 3 departments, more review steps and corresponding signatures may be required in practical application scenarios. Therefore, this section will detail the security model on which the digital signature is based and the ideal design goals of the scheme in this paper. The main goal of the digital signature algorithm security model is to ensure that the attacker cannot obtain the user’s private data even through multiple signature interactions.

Safety model

The scheme in this paper is based on the framework of the MPC security proof model. By constructing an analog protocol, using the interaction of the signature process, the security is regulated to the security proof of the original digital signature scheme [24, 26].

(1) Communication model

It is assumed that the system parameters (and the standard parameters of SM2) can be passed to all participants in an efficient and secure manner. In addition, there is a peer-to-peer channel connected to any 2 participants to carry the protocol interactions.

(2) Multiple digital signature

Depending on the signature process, multiple digital signatures [27, 28] are classified into sequential and broadcast multiple signatures. Sequential multi-signature means that the message sender specifies the order of signing the message, and then sends the message to be signed to the first signing member. After each signing member receives the message, it first verifies the validity of the previous signing member’s partial signature on the message, and if it is valid, it continues to sign and sends the generated partial signature to the next signing member; if the signature is invalid, it refuses to continue signing the received message and terminates the whole signing process. Until the last signing member completes the partial signature of the message, that is, the sequential multi-signature is completed [29]. In this paper, the key generation and co-signing parts of the scheme involve chain calculation data, so the concept of multiple digital signatures is used to complete the chain calculation of data.

(3) Safety model

The security model of the digital signature algorithm contains challenger and adversary. The main attack on the digital signature scheme is forging the signature. If adversary is unable to forge a digital signature after several attacks, the signature constructed by challenger is considered to be secure.

Definition 2. A signature algorithm (Setup, Key, Sign, Verify) is given in the digital signature algorithm attack game. Challenger runs the Setup and Key algorithms and exposes the generated system parameters params and the verifying public key P. Adversary obtains the parameters and initiates n (n is large enough) signature training to challenger. That is, the input message sequence {M1, M2, …, Mn} requires challenger to give a legitimate digital signature {δ1, δ2, …, δn}. After n times of signature training, adversary is able to construct a valid signature message pair (M*, δ*) satisfying the condition M* ≠ {M1, M2, …, Mn} and Verify(M*, δ*) = 1. It is considered that the adversary successfully forged the signature, that is, the signature constructed by the challenger is not secure, and the event is called Event_attack [2]and the Event_attack event satisfies the Eq (1).

Event_attack{S:{M1,M2,...,Mn}{δ1,δ2,...,δn}&&Verify(Mi,δi)=1A:{M*}{δ*}&&Verify(M*,δ*)=1} (1)

Conversely, if all signature message pairs (M*, δ*) constructed by adversary cannot satisfy the condition M* ∉ {M1, M2, ⋯, Mn} and Verify(M*, δ*) = 1, then adversary is considered unable to forge a signature and this event is said to be a safety model of Event_safe, and the Event_safe event satisfies Eq (2).

Event_safe{S:{M1,M2,...,Mn}{δ1,δ2,...,δn}&&Verify(Mi,δi)=1A:M*{M1,M2,,Mn},{M*}{δ*}&&Verify(M*,δ*)1} (2)

Design goals

The existing scheme enables multiple users or multiple devices U1, U2, …, Um to jointly complete a digital signature and satisfy a security model, where m>2 and any legal member of the signature can be signature initiator. In this model, participants in collaborative signatures must meet the following conditions.

(1) The public keys of all participant key pairs are made public before participating in co-signing, and each participant has a unique index number for identity identification.

(2) The public key values of all participants should be different, and even if the attacker and the participants have the same public key, they still correspond to multiple different private key values, which is guaranteed by the difficulty of solving the discrete logarithm problem on the elliptic curve.

(3) Two steps are required to process the transmitted data during chain computing: ① encrypting the transmitted data with the next user’s public key value; ② digitally signing the encrypted data to be transmitted with the current user’s private key.

(4) As long as the participant is a legal member of the collaborative signature and participates in the chain calculation of the public key value of the group, it is necessary to unconditionally cooperate with the signature when initiating the signature;

(5) The attacker can corrupt up to m-1 participants, that is, at least one participant has not been corrupted, this scheme proves to be meaningful.

The condition (1) is to distinguish whether it is a legal member of the collaborative signature, and the condition (2) can ensure that the encrypted data can only be decrypted by the only user who knows the corresponding private key, so as to ensure the confidentiality of the scheme; the private key in condition (3) decrypts the cryptographic data to guarantee the non-forgeability of the transmitted data, as well as the non-repudiation of the operation guaranteed by the digital signature verification, and from the multiple digital signatures in Section 3.1, it is known that all participants have and only one participation in the chain calculation, condition (4) can guarantee the correctness of the digital signature, and condition (5) can guarantee the integrity and practical significance of the multi-party co-signature scheme.

SM2-based multi-party co-signing scheme

In the design scheme of this paper, the signature is completed jointly by m participants U1, U2, …, Um. This section will introduce in detail the SM2-based multi-party collaborative signature scheme and the specific algorithm implementation proposed in this paper. The multi-party co-signing scheme is divided into two parts: key generation and co-signing, in which the generation of the group public key P in the key generation protocol and the signature intermediate value D in the co-signing process need to use the idea of sequential multi-signing in Section 31 to complete the data transmission and computation, and the sequential computation here is only to ensure that all co-signing participants participate in the computation only once. In the multi-party co-signing scheme, the system parameters and elliptic curves of the SM2 signature scheme are not changed. For the system initialization part of SM2, refer to the specification of “SM2 Elliptic Curve Public Key Cryptography Algorithm”.

Scheme design

In this scheme, the parameter initialization and signature verification process are the same as the national standard SM2 algorithm, which makes the scheme more applicable and has more application scenarios. The multi-party collaborative signature scheme is jointly completed by m (m ≥ 3) participants. First, each of the m participants invokes a function to generate a key pair, and the m participants chain invoke the function to compute the public key P of the signature group. Then the participants jointly sign, and any participant can become the signature initiator, and the final signature result (r, s) is calculated by the signature initiator. The symbol descriptions of related parameters are as follows: elliptic curve parameters are represented as params = (p, a, b, G, n); Ui represents the i-th participant, di represents the private key of the participant Ui, and Pi denotes the public key of participant Ui, ki represents the random number of participant Ui, Ki represents the intermediate value of the public point calculated by participant Ui; D represents the intermediate value of the second part of the signature, P represents the group public key of the multi-party signature, and r is the first part of the signature, and s is the second part of the signature. The specific process is shown in Fig 1.

Fig 1. Multi-party co-signature flow chart.

Fig 1

Key generation

The SM2 key generation algorithm is jointly completed by m participants. No one can master the complete signature key, and enter the elliptic curve parameter params. The specific group public key generation process is shown below.

(1) Parameter initialization of participants (Setup): Ui → {ki, di, Pi, Ki}

Participant Ui chooses the private key random number di ∈ [1, n − 1], calculates the public key Pi = di[*]G, takes any random number ki, and then calculates the intermediate value Ki = ki/di for the public point calculation.

(2) All participants jointly calculate the group public key (Key): {di, G}→{P(x, y)}

The group public key P is calculated jointly using the participant’s private key di and the generator G. All participants are chain-calculated with the group public key point value, where the initial value of pk0 is the generator G. When the group public key P is chained, participant U1 encrypts the computed point value data pk1 using the public key of the next participant Ui: pk1′ = Encpk(pk1, Pi), and then digitally signs the encrypted pk1 using U1’s private key d1: δ = Sign(pk1, d1), and finally sends the encrypted data pk1′ and digital signature δ to the next participant Ui; when the next participant Ui receives the message, decrypts the encrypted data pk1′ using the private key di, and then verifies the digital signature using the encrypted plaintext data, and if the verification passes, proceeds to the next step of computation and sends the encrypted data and digital signature to the next participant. This process can be started from different participants, and the group public key is calculated several times, and the specific operation flow is shown in Fig 2.

Fig 2. Key generation flow chart.

Fig 2

The specific steps are as follows:

① Participant U1 initializes the parameters, calculates pk1 = d1−1[*]pk0, and then sends the ciphertext data and digital signature of pk1 to participant U2.

② Participant U2 initializes the parameters, first decrypts the received data and verifies the signature. If the verification is passed, calculate pk2 = d2−1[*]pk1, and finally send the cip-hertext data and digital signature of pk2 to the participant U3;

……

ⓜ Participant Um initializes parameters, first decrypts the received data and verifies the signature. If the verification is passed, then calculate pkm = dm−1[*]pkm−1, and the last participant Um calculates P = pkm[*]G and publish the group public key, where P = dm-1[*]pkm-1G = … = dm-1 dm-1-1d1-1[*]GG.

Co-signature

Any participant can initiate a signature collaboration request as the signature initiator Ux, where x ∈ [1, m], and the public point Q used in the multi-party collaborative signature is computed jointly by all participants, and all participants except the signature initiator Ux send the intermediate value Ki of the public point computation to the signature initiator.

(1) All participants chained calculation of the second part of the signature intermediate value (SignD): {Di−1, di}→{Di}

The signature initiator Ux selects the private value b ∈ [1, n − 1] and uses the private key dx to calculate the intermediate transmission value D1 = dx*D0; all participants except the signature initiator Ux chain compute the second part of the signature intermediate value using the private key di, where the initial value of D0 is the private value b, which is only known to the signature initiator Ux. This process starts with the signature initiator, and there is no sequence among chained computing users. The specific steps are as follows.

① Signature initiator Ux selects the private value D0 = b, calculates D1 = dx*D0, and then sends D1 to participant U1.

② Participant U1 uses the private key d1, calculates D2 = d1*D1, and then sends D2 to participant U2.

……

ⓘ Participant Ui uses the private key di to calculate Di+1 = di*Di, and then sends Di+1 to the participant Ui+1, where i ∈ [1, m] and ix;

ⓜ Participant Um uses the private key dm to calculate Dm+1 = dm*Dm, where D = Dm+1 = dm * Dm = … = dm dm − 1d1 * b, and then the last participant Um returns D to the signature initiator Ux.

(2) Signature initiator Ux calculates the first part of the signature r (Sign_r): {Q, hash}→{r}

① Signature initiator Ux computes ZA = Hv(ENTLIDA∥|abPpk), where IDA is the user’s distinguishable identifier and ENTL is the length of IDA, and computes M′ = ZAM;

② Signature initiator Ux computes e = Hv(M′) and converts the text e to an integer, where Hv() is a one-way function;

③ Signature initiator Ux calculates the value K = (K1 + K2 + … + Km) mod n based on the data Ki sent by each participant, and then calculates the open point Q = K[*]G = (x1, y1) and converts the data type of x1 to an integer;

④ Calculate the signature r = (e + x1) mod n, if r = 0 or r + k = n, return ③.

(3) The signature initiator Ux calculates the second part of the signature s (Sign_s): {K, r, Dm, b}→{s}

⑤ After the signature initiator Ux receives the intermediate value D of the second part of the signature, it uses the private value b, the self-calculated K value and the first part signature r value to calculate the second part signature s value. Among them, s = (K + r)*D/b. The specific operation process is shown in Fig 3.

Fig 3. Multi-signature flow chart.

Fig 3

(4) Anyone can verify the signature result (r′, s′) (Verify): {P, M′, r, s}→{R == r}

According to the verification algorithm of SM2 digital signature, only need to calculate the elliptic curve point value (x1,y1)=s[*]G+t[*]P and the signature data value R=e+x1 mod n in sequence, and finally verify whether R = r′ holds, and the specific verification steps of the signature verifier Ux are shown below.

① The verifier separately checks whether r′ ∈ [1, n − 1] and s′ ∈ [1, n − 1]are established, if not, the verification fails;

② Set M″ = ZAM′; compute e′ = Hv(M″) and convert the data type of e′ to an integer;

③ Convert the data types of r′, s′ to integers and calculate t = (r′ + s′) mod n. If t = 0, the verification fails;

④ Calculate the elliptic curve point (x1,y1)=s[*]G+t[*]P and convert the data type of x1 to an integer;

⑤ Calculate R=(e+x1) mod n and check whether R = r′ holds, if it does, the validation passes; otherwise, the validation fails.

Verification process

Based on the key generation and co-signing process, the correctness of the scheme can be analyzed. The elliptic curve parameters are known: coefficients a and b, modulus p, generator G, and order n. In this scheme, each participant Ui has private data private key di, random number ki, public data Pi, and non-private data Ki. The specific verification process is shown below.

First, generate the group public key P according to the key generation protocol:

P=dm-1dm-1-1...d1-1[*]G-G (3)

Then, calculate the first part of the signature intermediate value K and the public point Q, and the second part of the signature intermediate value D:

K=(K1+...+Km)modn=(k1d1+...+kmdm)modn (4)
Q=(x1,y1)=K[*]G (5)
D=dmdm-1d1*b (6)

Finally, the signature (r, s) is generated according to the co-signature protocol rules:

r=e+x1,s=(K+r)*Db-r=(K+r)*dm...d1-r (7)

Derive the verification formula (x1,y1)=[s]G+[t]P for the SM2 digital signature algorithm.

(x1,y1)=s[*]G+t[*]P=(r+s)dm-1...d1-1[*]G-r[*]G (8)

From s′ = (K + r)*D/br, D = dmd1*b, we can get:

(x1,y1)=(r+(K+r)*Db-r)dm-1...d1-1[*]G-r[*]G=K[*]G (9)

From (x1,y1)=K[*]G, we know that x1 is equal to x1, and the final validation calculation value R=(e+x1) mod n is exactly the same as the signature value r = (e + x1) mod n. The validation relation R = r holds, and the signature verification passes. It can be seen that the correctness of the scheme is verified and this scheme is completely feasible.

Implementation of SM2-based multi-party co-signature scheme

In the implementation of the multi-party co-signing scheme in this paper, the number of specific participants m is determined when a multi-party co-signing scenario is identified in a particular enterprise or department. The implementation of this scheme is divided into 2 main parts: key generation implementation and co-signing implementation. This section will mainly introduce the custom functions and implementation process related to the scheme in this paper, and the specific implementation principles of the scheme are described in Sections 4.2 and 4.3.

Key generation implementation

The key generation process of SM2 algorithm is mainly done by m participants, which mainly includes the initialization of the participants’ parameters and the generation of the public key of the signature group.

Definition 3. SM2_User_init(): The main function of this function is to allow each user to obtain private data and use it by calling the interface SM2_User_init(). In practical applications, both the random number ki and the private key di are generated by a random number generator. This process will be implemented using the function SM2_User_init(Useruser[]), where the parameters transmitted are the single-user structure User, which contains the user identification uID, random number ki, private key di, public key Pi, and public point calculation value Ki. The input parameter of this function is null, the output parameter is the structure User, and the return value type is null.

Definition 4. SM2_Gpubkey_gen(): The main function of this function is for each signature participant to chain call the function SM2_Gpubkey_gen(uID, di, pki−1, *pki) and generate the point value pkm, where the initial value of the signature group public key P is −G, and then call the function SM2_Point_add(pkm, *P) to generate the final signature group public key P = pkmG. The input parameters of this function are user uID, user private key di, the previous user calculation point pki−1 (the initial value pk0 is the generator G), and the output parameter is the user calculation point pki; the return value type is int, and when the return value is 1, it means that the signature group public key is computed successfully, otherwise, the calculation fails.

The implementation process of key generation is shown below.

1.Ui:SM2_User_init(User*Ui)UserUi;2.U1U2:pk0=G;pk1=SM2_Gpubkey_gen(uID1,d1,pk0,*pk1);......Ui-1Ui:pk1=SM2_Gpubkey_gen(uIDi-1,di,pki-1,*pki);......Um-1Um:pkm=SM2_Gpubkey_gen(uIDm=1,dm,pkm-1,*pkm);3.Um:P=-G;P=SM2_Point_add(pkm,*P);

The key generation timing chart is shown in Fig 4.

Fig 4. Key generation timing chart.

Fig 4

Co-signature implementation

The SM2 co-signing process will be implemented in four parts in sequence, which mainly including the initialization of the public data, the calculation of the second part of the signature intermediate value D, the generation of the first part of the signature r, and the generation of the first part of the signature s.

Definition 5. SM2_Group_init(): The main function of this function is to calculate the required public data, which includes the signature calculation value K and the public point Qxy, where Qxy will be used as the required value for the calculation of the first part of the signature r and K will be used as the required value for the calculation of the second part of the signature s. In this process, each participant calls the value Ki generated by the function SM2_User_init(), and sends the calculated value Ki of the public point to the signature initiator for implementation. The input parameters of this function are all the values Ki, the output parameters are the signature calculation value K and the public point Qxy, the return value type is int, when the return value is 1, it means that the signature calculation value and the public point value are successfully calculated, otherwise, The calculation fails.

Definition 6. SM2_cor_signD(): The main function of this function is to let each signature participant chain calls the function SM2_cor_signD(uID, Di−1, di, *Di) and generate the intermediate value D calculated by the private key, and transmits the intermediate value D of the private key calculation obtained by the last participant calling the function SM2_cor_sign_D() to the signature initiator Ux. The input parameters of this function are the user uID, the previous user calculation point Di−1 (the initial value D0 is the calculation data of the signature initiator’s optional value b and the private key), the user private key di, the output parameter is the user calculation point Di, and the return value type is int. When the return value is 1, it means that the calculation of the intermediate value D of the private key is successful, otherwise, the calculation fails.

Definition 7. SM2_cor_sign_r(): The main function of this function is to generate the first part of the signature r. This process takes the public point Qxy and the hash value of the message to be signed generated by the signature initiator Ux calling the SM2_Group_init() function as input data, and then uses the SM2_cor_sign_r() function to calculate the first part of the signature r. The input parameter of this function is the public point Qxy, the hash value of the message to be signed, and the output parameter is the first part of the signature value r. The return value type is int, and when the return value is 1, it means that the first part of the signature is calculated successfully, otherwise, the calculation fails.

Definition 8. SM2_cor_sign_s(): the main function of this function is to generate the second part of the signature s. This procedure will call the SM2_cor_sign_r() function to calculate the value r, the value K generated by the SM2_Group_init() function, the calculated value D of the SM2_cor_sign_D() function, and the signature initiator’s self-selected value b as input data, and finally the second part of the signature s is calculated using the SM2_cor_sign_s() function. The input parameters of this function are the first part signature r, the signature calculation value K, the intermediate value D of the private key calculation, and the self-chosen value b of the signature initiator, and the output parameter is the second part signature value s. The return value type is int, and when the return value is 1, it means that the second part signature calculation is successful, otherwise, the calculation fails.

The implementation process of the co-signature is shown below, and the message to be signed is M.

1.UiUx:Ki=SM2_User_init(User*Ui);2.Ux:Qxy=SM2_Group_init(Ki,*K,*Qxy);r=SM2_cor_sign_r(hash,Qxy,*r);3.UxU1:D0=b;D1=SM2_cor_sign_D(uIDx,D0,dx,*D1);U1U2:D2=SM2_cor_sign_D(uID1,D1,d1,*D2);......Ui-1Ui:Di=SM2_cor_sign_D(uIDi=1,Di-1,di-1,*Di);......UmUx:D=Dm+1=SM2_cor_sign_D(uIDm,Dm,dm,*Dm+1);4.Ux:s=SM2_cor_sign_s(r,K,D,b,*s);

The co-signature timing chart is shown in Fig 5.

Fig 5. Co-signature timing chart.

Fig 5

Safety analysis

In this section, the provable security based on the original SM2 digital signature scheme is used to analytically prove the security of the multi-party collaborative digital signature scheme designed in this paper.

Definition 9. Assuming that the existence of the original SM2 signature scheme π is unforgeable under the selective message attack [30], if for any probabilistic polynomial-time adversary in the security model, there exists a negligible function μ such that for each security parameter λ, there is Pr[SignA,π(1λ) = 1]≤μ(λ), that is, the signature scheme SignA,π constructed by adversary after polynomial query, the probability that the signature verification result is 1 is still less than one The negligible function μ(λ), then this scheme is proved to be secure.

The collaborative signature scheme is also known as the distributed signature generation method, and the output digital signature can be effectively verified by the original verification algorithm. Therefore, the existence of the collaborative signature scheme can also be defined as unforgeable.

Definition 10. Assume that the existence of the SM2 multi-party co-signature scheme Π under the selected message attack is unforgeable, its safety factor is κ. If for any probabilistic polynomial-time adversary in the security model, adversary passes through the fake signature initiator or corrupting all participants except the signature initiator, there is still a negligible function μ such that for each security parameter κ, there is Pr[DisSignA,Π(1κ) = 1]≤μ(κ), the signature scheme DisSignA,Π constructed with joint participation of adversary has a probability of signature verification result of 1 less than a negligible function μ(κ), then the multi-party collaborative signature scheme is proved to be secure.

Proof of corruption of signature initiator

In the whole SM2 multi-party collaborative (at least three-party) digital signature process, adversary corrupts the server of one participant who is a legitimate member of the multi-party collaboration and controls this server to initiate the collaborative signature application and obtains multi-party data only during the participation in the collaborative signature process, at which time the multi-party collaborative scheme is similar to the two-party collaborative signature scheme, but the data obtained is the product of the private keys of multiple participants. Adversary acts as the signature initiator UA, and adversary tries to obtain the other party’s private information through simulator ζ to get hold of the corrupted party’s key to forge the signature attack on the original scheme. The specific simulation scheme is shown below.

(1) Simulation key generation

① The adversary UA initiates the calculation of the group public key P. The adversary UA calculates the point value pk1 several times for encryption and digital signature processing, and sends the encrypted data pk1 and digital signature δ1 to the next participant Ui.

② When the next participant Ui receives the ciphertext and digital signature, it verifies the ciphertext by digital signature and recalculates the data until the last user calculates and discloses the value of group public key P.

Therefore, even if the adversary UA uses a different value point pk1 to participate in the calculation of the group public key point value P′, the two points pk1 and P′ on the elliptic curve are known, guaranteed by the elliptic curve discrete logarithm difficulty problem, this process still cannot obtain any private information about the private key dx in polynomial time.

(2) Simulation of co-signature

① The adversary UA initiates a co-signature request. The adversary UA chooses any private value b′∈[1, n − 1], chooses to use the private key random number dx to calculate the intermediate transmission value D1=dx*D0, and sends D1 to the next user for chain calculation, and the last participant calculates the intermediate value Dm=dmdm-1...dx...d1*b and returns it to the adversary UA, who finally obtains the product of other users’ private keys by the private value b′ and the private key random number dx as: dx=dmdm-1...dx+1dx-1...d1.

② The adversary UA calculates the value of K and the value of the public point Q. The co-signing participants Ui send their respective calculated intermediate values Ki to the adversary UA, and the adversary UA receives Ki also cannot calculate its specific factorized random number ki value and private key di value, and the adversary UA finally obtains the valid data as the intermediate values of other participants: K1, …, Kx−1, Kx+1, … Km, and the sum of the median values of other participants Kx=K1+...+Kx-1+Kx+1+...+Km. The calculated value K and the public point Q value are ultimately determined by the value of the private key dx;

③ If the adversary UA uses the private key random number dx, product value Dx, sum value Kx and point value Qx to calculate the value K=(Kx+Kx) and public point value Q′ = K′[*]G, finally calculate the intermediate value D=dx*dx and the signature value r=e+Q->x1, s = (K′ + r′)*D′/b′ − r′.

④ Finally, the previous r′ and s′ are verified by any user.

(x1,y1)=R=s[*]G+t[*]P=s[*]G+(r+s)[*]P=s[*]G+(r+s)(dm-1...d1-1[*]G-G)=(r+(K+r)*Db-r)dm-1...d1-1[*]G-r[*]G=(Kx+Kx)*dx*dx-1[*]G+r*dx*dx-1[*]G-r[*]G (10)

From the verification results and simulated key generation, it is clear that the probability that the private key random number dx is equal to the original private key value dx is negligible, and the adversary UA uses the private key random number dx to sign, and the signature verification result fails, that is, Pr[DisSignA,Π(1κ) = 1]≤μ(κ) holds constantly. Therefore adversary UA corrupts a participant’s server counterfeit signature initiator to forge a signature fails.

Proof of maximum corruption

In the entire SM2 multi-party collaborative digital signature process, adversary corrupts the servers of as many collaborative legitimate members as possible (up to m-1 participants), at which point the multi-party collaborative signature scheme is equivalent to a two-party collaborative signature containing signature initiator U1 and collaborative participant UA, while adversary corrupts collaborative participant UA, which can be up to m-1 participants at this point, and adversary UA attempts to multiple signature tests to obtain the other party’s information and forge the signature. The specific simulation scheme is shown below.

(1) Simulated key generation

① The signature initiator U1 initiates the calculation of the group public key P. U1 encrypts and digitally signs the point value pk1=d1-1[*]G calculated by itself and sends the encrypted data of pk1 and the digital signature δ1 to the co-participant UA.

② When the corrupted participant UA receives the ciphertext and digital signature, UA only knows the generated meta point value G and received point value pk1 or the original group public key point value P and received point value pk1, and it is known that the two points on the elliptic curve cannot obtain the valid privacy information; UA continues the calculation by the private key random number d2 and finally gets the group public key P=d2-1d1-1[*]G.

Therefore, the adversary UA cannot obtain any valid information during the simulation key generation process.

(2) Simulated co-signature

① The signature initiator U1 initiates a co-signature request. The signature initiator U1 can choose the private value b ∈ [1, n − 1], and use the private key d1 to calculate the intermediate transmission value D1 = d1*b, and send D1 to the corrupt cooperative user UA for chain calculation.

② The corrupt party UA only participates in the calculation of the intermediate value D once during the signature process, and only obtains the transmission data D1 of the signature initiator, and calculates the signature r′ = e + Q′ − >x1′, s = (K′ + r′)*D′/b′ − r′; the point value Q′ is the public data, K′ and b′ are the data held by U1, so it is impossible to forge the signature s.

From the simulated co-signature process, it is clear that the adversary UA cannot obtain valid information when impersonating a co-signature participant. Therefore, adversary fails to obtain information to forge signatures by corrupting the servers of multiple participants.

Experimental results and performance analysis

In this section, we analyze and evaluate the signature and verification results of the multi-party collaborative signature scheme with different number of participants for the multi-party collaborative signature scheme proposed in Section 4.3, and compare the implementation and verification runtime of the original SM2 scheme with different multi-party collaborative signatures. The implementation of the original SM2 scheme and the multi-party collaborative digital signature algorithm are shown in Algorithm 1 and Algorithm 2, respectively.

Algorithm 1: SM2_sign0 Algorithm 2: SM2_signN
Input: hash, rand, prikey Input: hash, K, D, b
Output: sign Output: sign
int SM2_sign0(hash, rand, prikey, *sign){ int ec_SM2_signN(hash, K, D, b, *sign){
1. int res = 0; 1. int res = 0;
2. mpz_mod(rand, rand, Gn); 2. point_mult_naf(&group, &base, K, &Q);
3. if (mpz_sgn(rand) == 0) 3. mpz_mod(gmp_r, Q.X, group.Gn);
4.  mpz_set_ui(rand, 1); 4. if (mpz_sgn(gmp_r) == 0)
5. point_mult_naf(&group, &base, rand, &Q); 5.  goto end;
6. mpz_mod(tmp_r, Q.X, group.Gn); 6. mpz_add(r, gmp_r, hash);
7. if (mpz_sgn(tmp_r) == 0) 7. mpz_mod(sign->X, r, group.Gn);
8.  goto end; 8. mpz_add(tmpK, K, r);
9. mpz_add(r, tmp_r, hash); 9. mpz_mod(gmp_D, tmpK, group.Gn);
10. mpz_mod(sign->X, r, group.Gn); 10. if (mpz_sgn(gmp_D) == 0)
11. mpz_add_ui(tmp1, prikey, (long)1); 11.  goto end;
12. mpz_invert(invert, tmp1, group.Gn); 12. mpz_mul(gmp_S, gmp_D, D);
13. mpz_mul(tmp2, sign->X, prikey); 13. mpz_mod(S, gmp_S, group.Gn);
14. mpz_mod(tmp3,tmp2, group.Gn); 14. mpz_invert(invert, b, group.Gn);
15. mpz_sub(tmp4, rand, tmp3); 15. mpz_mul(gmp_s, S, invert);
16. mpz_mod(tmp_sub, tmp4, group.Gn); 16. mpz_mod(gmp_s, gmp_s, group.Gn);
17. if (mpz_sgn(tmp_sub) == 0) 17. mpz_sub(s, gmp_s, gmp_r);
18.  goto end; 18. mpz_mod(sign->Y, s, group.Gn);
19. mpz_mul(tmp, invert, tmp_sub); 19. if (mpz_sgn(tmps) == 0)
20. mpz_mod(sign->Y, tmp, group.Gn); 20.  goto end;
21. res = 1; 21. res = 1;
22. end: 22. end:
23. return (res); } 23. return (res); }

Experimental environment

In this paper, we construct a model based on the multi-party co-signing scheme of SM2 algorithm. The experimental PC operating system is win10 operating system, the processor is Intel(R) Core(TM) i7-5500U CPU @ 2.40GHz 2.39GHz, 8G RAM; the large integer library gmp-6.2.0 is selected for implementation; the main programming language is C; the platform used to implement the algorithm is Visual Studio 2019. In addition, the system parameters are the elliptic curve parameters recommended by the State Secret.

Experimental results

Anti-forgery attacks

Multi-party co-signing is inherently resistant to forgery attacks, During the signature process, the complete private key does not appear in the memory of any party, eliminating the risk of forgery of digital signatures due to private key leakage, and the complete signature cannot be generated without the participation of any party after the public key of the co-signing group is determined. In addition, the identity of each user is legitimate at the time of signature group public key generation, even if the forger forges the signature by impersonating a node in the signature process, the forged signature cannot pass the verification in the final signature verification process with the participation of the group public key, so the forger fails to forge the signature. Taking 3-party collaboration as an example, assume that the authenticated collaborative participants are userA{dA, PA}, userB{dB, PB}, userC{dC, PC}, and the generated legitimate group public key is P=dA-1dB-1dC-1[*]G-G. The counterfeiter forgerA attacks the participant userA, and forges information such as the same identity IDA, the same public key PA (the private key is different dX) and other information. The steps for forging the signature are as follows:

(1) Forger forgerA requests participant chain to calculate the second part of the signature intermediate value (Sign_D)

① ForgerA initiates a signature, first selects the private value D0 = b, calculates D1 = dx*D0, and then sends D1 to the participant userB;

② The participant userB uses the private key dB to calculate D2 = dB*D1, and then sends D2 to the participant userC;

③ The participant userC uses the private key dC to calculate D3 = dC*D2, where D = D3 = dC*dB*dX*b, and finally returns D to the signature initiator forgerA.

(2) The forger forgerA calculates the first part of the signature r (Sign_r)

① ForgerA calculates ZA = Hv(ENTLIDAabPpk), and calculates M’ = ZAM;

② The counterfeiter forgerA calculates e = Hv(M′), and converts the text e to an integer, where Hv() is a one-way function;

③ The forger forgerA calculates the value K = (KX + KA + KB)modn based on the data Ki sent by each participant, where KX = kX/dX, and then calculates the public point Q = K[*]G = (x1, y1), and convert the data type of x1 to integer.

④ Calculate the signature r = (e+x1) mod n, and return ③ if r = 0 or r+k = n.

(3) Forger forgerA calculates the second part of signature s (Sign_s)

⑤ ForgerA uses the signature intermediate value D, private value b, self-calculated K value and the first part of the signature r value to calculate the second part of the signature s value, where s = (K + r)*D/br = (K + r)*dC dB dXr.

(4) Verification of the forged signature result (r′, s′)

Verify the forged digital signature by deriving the verification formula (x1,y1)=[s]G+[t]P, where P=dA-1dB-1dC-1[*]G-G, t = (r′ + s′)modn. The detailed verification steps of the signature are described in Section 4.4.

Q=(x1,y1)=s[*]G+t[*]P=s[*]G+(r+s)[*]P=s[*]G+(r+s)(dA-1dB-1dC-1[*]G-G)=(r+s)dA-1dB-1dC-1[*]G-r[*]G=(r+(K+r)*dCdBdX-r)dA-1dB-1dC-1[*]G-r[*]G=(K*dX/dA+r*dX/dA)[*]G-r[*]G=(K*dX/dA)[*]G+(r*dX/dA-r)[*]G (11)

It can be seen from the verification result of the forged signature that Q’ ≠ Q, x1x1, then Rr’, that is, the verification fails and the forged signature fails.

Feasibility and flexibility validation

In order to verify the feasibility and flexibility of this solution, we choose a specific application scenario: an enterprise produces an important product for a large number of users, and needs qualified manufacturers of semi-finished products, and qualified semi-finished products need qualified manufacturers of components, qualified parts manufacturers need qualified raw material suppliers to provide, which forms a supply chain. In order to ensure that the quality of the final product is recognized and accepted by the user, the company needs the company in the supply chain to collaborate to sign a product quality commitment to users, and the user can verify the signature to trust the quality of the product. Because once the user’s verification is passed, it means that the supply chain of the product is trustworthy.

In response to this scenario, we separately set the private key and random number of the SM2 digital signature, and the private keys and random numbers of multiple companies in the industry chain. In order to facilitate the experiment, we take the same values for the private keys and random numbers of multiple enterprises in the industry chain as the original SM2 digital signature scheme: dA = “0x128B2FA8 BD433C6C 068C8D80 3DFF7979 2A519A55 171B1B65 0C23661D 15897263”; k = “0x6CB28D99 385C175C 94F94E93 4817663F C176D925 DD72B727 260DBAAE 1FB2F96F”.

(1) The plaintext message digest of the original SM2 digital signature scheme uses the SM3 algorithm to calculate the hash e(Hash) and the public key P(X, Y), and the digital signature (r, s) and signature verification results are shown in Fig 6.

Fig 6. Original SM2 digital signature and verification data.

Fig 6

(2) The SM3 algorithm is used to calculate the hash e(Hash) and group public key P(X, Y), as well as the digital signature (r, s) and signature verification results for the plaintext “message digest” of the SM2 industry chain multi-enterprise collaborative digital signature scheme. The results of co-signatures are shown in Figs 79 for 3, 8, and 23 parties.

Fig 7. 3-party co-digital signature and verification data.

Fig 7

Fig 9. 23-party co-digital signature and verification data.

Fig 9

Fig 8. 8-party co-digital signature and verification data.

Fig 8

From the above experimental results, it can be seen that this scheme has strong flexibility, and the participants of the supply chain can be any n parties such as 3 parties or 8 parties to participate in the collaborative signature, which can meet the requirements of any multi-party hierarchical evaluation of the same document in electronic transactions, making the multi-party collaborative signature scheme have stronger applicability. In addition, this scheme can obtain legal signature results for different number of supply chain participants and the verification result is correct, which shows the correctness and feasibility of this scheme. In addition, for the n-party co-signing scheme, unless the hacker obtains the signature key of the n − 1 signer, the legitimate signature cannot be forged, so the multi-party co-signing scheme in this paper also has sufficient security.

Performance analysis

For the differences caused by running in different time periods in the native environment, firstly, the original SM2 scheme will be carried out several times with multiple co-signers at the same time, and then the running time of multiple signatures of the original SM2 scheme (the difference in the values taken should not be too large) will be taken, and finally the average value will be used as the standard value for floating values, and the running time of multiple co-signers in the corresponding range of floating values will be selected. For different parties, 100 tests were conducted, and the number of multiparty co-signers was taken as 3, 8, 23, etc., and then the average value of the running time was calculated. The average running time of the digital signature interface and signature verification interface of the original SM2 scheme and the multi-party collaboration algorithm are shown in Fig 10.

Fig 10. Average runtime of SM2 scheme and multi-party co-digital signature and signature verification.

Fig 10

The above data counts the average running time of the digital signature interface of the original SM2 scheme and the multi-party collaboration algorithm (that is, Algorithm 1 and Algorithm 2), and after running Algorithm 1 and Algorithm 2 several times simultaneously, changing only the number of supply chain participants in the collaborative signature each time, and finally taking the running time of the original SM2 signature as the standard value to take the running time of multiple interfaces and calculate the average value. From the above statistical results, it can be seen that there is no additional burden on the performance of the signature scheme when increasing the number of multi-signers, because the signature time of Algorithm 2 here is only the interface time for the final calculation of the signature result by the tested signature initiator, and the number of supply chain participants does not correlate with the signature time, so the signature times of Algorithm 1 and Algorithm 2 are almost the same. In addition, for the results of multi-party co-signing, signature verification has been performed using the standard SM2 verification interface, and the verification in Section 7.2.1 experimental results passed proving that multi-party co-signing is feasible, flexible and universally applicable to application scenarios such as multi-user and multi-device digital signatures. Thus, although there is a certain amount of computing time and data transmission time when calculating the intermediate values before the signature of this scheme, this scheme is still highly feasible and has wide application prospects.

Conclusion

In order to prevent the leakage of the user’s key stored in the client in the mobile Internet environment and to meet the needs of multiple entities operating on the same file, this paper designs a multi-party collaborative signature scheme based on SM2 based on the idea of collaborative signature. It allows users to hold their own private key values and jointly complete the SM2 digital signature without revealing the key, and both the group public key and signature must be jointly generated by multiple parties, and the complete signature key cannot be recovered in the process, fully guaranteeing the security of the signature key. In addition, we attribute the security of co-signatures to standard SM2 signatures, thus proving the security of our proposed protocol, that is, if the original SM2 is probabilistic polynomial-time unforgeable, then our protocol also satisfies probabilistic polynomial-time unforgeability. Finally, this article has completed the test and evaluation for the correctness and performance of the scheme. The experimental results show that the multiparty co-signing takes slightly more time than the original SM2 signature once for the same device in an approximately consistent environment, but the signature verification interface and verification time are consistent. The co-signature does not change the format of the signature result and the signature verification algorithm. It has high compatibility with the standard SM2 digital signature algorithm, so it has a wide application prospect in practical applications, especially in the multi-user and multi-device application scenario with strong scalability and practicality.

Data Availability

The data underlying the results presented in the study are available from the Open Science Framework database (https://osf.io/BHX32/).

Funding Statement

This work was supported by the National Natural Science Foundation of China 61373162, the Sichuan Provincial Science and Technology Support Project 2019YFG0183, and the Sichuan Provincial Key Laboratory Project KJ201402. The funder had no role in study design, data collection and analysis, decision to publish, or preparation of the manuscript.

References

  • 1.GSMA Intelligence. The Mobile Economy 2020 [R]. Barcelona: MWC, 2020. https://www.gsma.com/mobileeconomy/wp-content/uploads/2020/03/GSMA_MobileEconomy2020_Global.pdf.
  • 2. Su Y X, Tian H B. A Two-party SM2 Signing Protocol and Its Application[J]. Chinese Journal of Computers, 2020, 43(04):701–710. [Google Scholar]
  • 3. Xu Z, Luo M, Kumar N, et al. Privacy-Protection Scheme Based on Sanitizable Signature for Smart Mobile Medical Scenarios[J]. Wireless Communications and Mobile Computing, 2020, 2020(1):1–10. [Google Scholar]
  • 4. Kong W, Shen J, Vijayakumar P, et al. A Practical Group Blind Signature Scheme for Privacy Protection in Smart Grid[J]. Journal of Parallel and Distributed Computing, 2020, 136: 29–39. doi: 10.1016/j.jpdc.2019.09.016 [DOI] [Google Scholar]
  • 5.Ding F, Long Y, Wu P. Study on Secret Sharing for Sm2 Digital Signature and Its Application[C]//2018 14th International Conference on Computational Intelligence and Security (CIS). IEEE, 2018: 205–209.
  • 6. Xu Z, He D, Vijayakumar P, et al. Efficient NTRU Lattice-Based Certificateless Signature Scheme for Medical Cyber-Physical Systems[J]. Journal of Medical Systems, 2020, 44(5): 1–8. doi: 10.1007/s10916-020-1527-7 [DOI] [PubMed] [Google Scholar]
  • 7. Ali Z, Alzahrani B A, Barnawi A, et al. TC-PSLAP: Temporal Credential-Based Provably Secure and Lightweight Authentication Protocol for IoT-Enabled Drone Environments[J]. Security and Communication Networks, 2021, 2021. doi: 10.1155/2021/9919460 [DOI] [Google Scholar]
  • 8. Feng Q, He D B, Luo M, et al. Efficient Two-Party SM2 Signing Protocol for Mobile Internet[J]. Journal of Computer Research and Development, 2020, 57(10): 2136. [Google Scholar]
  • 9. Hong H, Sun Z, Liu X. A key-insulated CP-ABE with Key Exposure Accountability for Secure Data Sharing in the Cloud[J]. KSII Transactions on Internet and Information Systems, 2016,10(5):2394–2406. [Google Scholar]
  • 10. Chen L Q, Zhu Z, Wang M Y. A Threshold Group Signature Scheme for Mobile Internet Application[J]. Chinese Journal of Computers, 2018, 41(5): 1052–1067. [Google Scholar]
  • 11. Yan J, Lu Y, Chen L Y, et al. A SM2 Elliptic Curve Threshold Signature Scheme without A Trusted Center[J]. KSII Transactions on Internet and Information Systems (TIIS), 2016, 10(2): 897–913. [Google Scholar]
  • 12.PEDERSEN T P. Distributed Provers with Applications to Undeniable Signatures[C]//Workshop on the Theory and Application of of Cryptographic Techniques. Springer, Berlin, Heidelberg, 1991. 221–242.
  • 13. Shang M, Ma Y, Lin J Q, et al. A Threshold Scheme for SM2 Elliptic Curve Cryptographic Algorithm [J]. Journal of Cryptologic Research, 2014, 1(2): 155–166. [Google Scholar]
  • 14. Lindell Y. Fast Secure Two-Party ECDSA Signing[J]. Journal of Cryptology, 2021, 34(4): 1–38. doi: 10.1007/s00145-021-09409-9 [DOI] [Google Scholar]
  • 15. He D B, Zhang Y D, Wang D, et al. Secure and Efficient Two-Party Signing Protocol for the Identity-Based Signature Scheme in the IEEE P1363 Standard for Public Key Cryptography[J]. IEEE Transactions on Dependable and Secure Computing, 2018, 17(5): 1124–1132. doi: 10.1109/TDSC.2018.2857775 [DOI] [Google Scholar]
  • 16. Zhang Y D, He D B, Zeadally S, et al. Efficient and Provably Secure Distributed Signing Protocol for Mobile Devices in Wireless Networks[J]. IEEE Internet of Things Journal, 2018, 5(6): 5271–5280. doi: 10.1109/JIOT.2018.2865247 [DOI] [Google Scholar]
  • 17.Lin J Q, Ma Y, Jing J W, et al. SM2 Algorithm-based Signature and Decryption Method and System for Cloud Computing, China Patent, CN104243456A[P], 2014.12.24.
  • 18.Zhang Y Q, Liu W. SM2 Algorithm Co-signature and Decryption Method, Apparatus and System, China Patent, CN107196763A[P], 2017.09.22.
  • 19.Yang G Q, Liu H Y. Distributed Signature Method and System Based on Elliptic Curve, China Patent, CN106685648A[P], 2017.05.17.
  • 20. Zhang Y D, He D B, Zhang M W, et al. A Provable-secure and Practical Two-party Distributed Signing Protocol for SM2 Signature Algorithm[J]. Frontiers of Computer Science, 2020, 14(3): 1–14. doi: 10.1007/s11704-018-8106-9 [DOI] [Google Scholar]
  • 21.Yao A C. Protocols for Secure Computations[C]//23rd annual symposium on foundations of computer science (sfcs 1982). IEEE, 1982: 160–164.
  • 22. Lu K C, Lu H M. Combinatorial Mathematics: Tsinghua University Press, 1991: 167–168. [Google Scholar]
  • 23. Wang Z H, Zhang Z F. Overview on Public Key Cryptographic Algorithm SM2 Based on Elliptic Curves [J]. Journal of Information Security Research, 2016, 2(11): 972–982. [Google Scholar]
  • 24.Hazay C, Lindell Y. Efficient Secure Two-Party Protocols: Techniques and Constructions[M]. Berlin: Springer & Business Media, 2010.
  • 25. Peng C, Chen J, Obaidat M S, et al. Efficient and Provably Secure Multireceiver Signcryption Scheme for Multicast Communication in Edge Computing[J]. IEEE Internet of Things Journal, 2019, 7(7): 6056–6068. doi: 10.1109/JIOT.2019.2949708 [DOI] [Google Scholar]
  • 26. Lindell Y. How to Simulate It-A Tutorial on the Simulation Proof Technique[J]. Tutorials on the Foundations of Cryptography, 2017: 277–346. [Google Scholar]
  • 27. Liu X D, Zhang W F, Wang X M. Multi-Authority Attribute-based Alterable Threshold Ring Signature without Central Authority[J]. Journal of Software, 2018, 29(11): 3528–3543. [Google Scholar]
  • 28.Lindell Y, Nof A. Fast Secure Multiparty ECDSA with Practical Distributed Key Generation and Applications to Cryptocurrency Custody[C] //Proceedings of the 2018 ACM SIGSAC Conference on Computer and Communications Security. 2018: 1837–1854.
  • 29. Wang X F, Zhang J, Wang S P. Digital Multi-Signature Scheme and Its Security Proof [J]. Chinese Journal of Computers, 2008, 31(1): 176–183. [Google Scholar]
  • 30.Shen J X. Certificate-based Multisignature and Its Applications[D]. Nanjing Normal University, 2019.

Decision Letter 0

Pandi Vijayakumar

2 Feb 2022

PONE-D-21-40703Multi-party co-signature scheme based on SM2PLOS ONE

Dear Dr. zhongzhu,

Thank you for submitting your manuscript to PLOS ONE. After careful consideration, we feel that it has merit but does not fully meet PLOS ONE’s publication criteria as it currently stands. Therefore, we invite you to submit a revised version of the manuscript that addresses the points raised during the review process. Please submit your revised manuscript by Mar 19 2022 11:59PM. If you will need more time than this to complete your revisions, please reply to this message or contact the journal office at plosone@plos.org. When you're ready to submit your revision, log on to https://www.editorialmanager.com/pone/ and select the 'Submissions Needing Revision' folder to locate your manuscript file.

Please include the following items when submitting your revised manuscript:

  • A rebuttal letter that responds to each point raised by the academic editor and reviewer(s). You should upload this letter as a separate file labeled 'Response to Reviewers'.

  • A marked-up copy of your manuscript that highlights changes made to the original version. You should upload this as a separate file labeled 'Revised Manuscript with Track Changes'.

  • An unmarked version of your revised paper without tracked changes. You should upload this as a separate file labeled 'Manuscript'.

If you would like to make changes to your financial disclosure, please include your updated statement in your cover letter. Guidelines for resubmitting your figure files are available below the reviewer comments at the end of this letter.

If applicable, we recommend that you deposit your laboratory protocols in protocols.io to enhance the reproducibility of your results. Protocols.io assigns your protocol its own identifier (DOI) so that it can be cited independently in the future. For instructions see: https://journals.plos.org/plosone/s/submission-guidelines#loc-laboratory-protocols. Additionally, PLOS ONE offers an option for publishing peer-reviewed Lab Protocol articles, which describe protocols hosted on protocols.io. Read more information on sharing protocols at https://plos.org/protocols?utm_medium=editorial-email&utm_source=authorletters&utm_campaign=protocols.

We look forward to receiving your revised manuscript.

Kind regards,

Pandi Vijayakumar, Ph.D

Academic Editor

PLOS ONE

Journal Requirements:

When submitting your revision, we need you to address these additional requirements.

1. Please ensure that your manuscript meets PLOS ONE's style requirements, including those for file naming. The PLOS ONE style templates can be found at 

https://journals.plos.org/plosone/s/file?id=wjVg/PLOSOne_formatting_sample_main_body.pdf and 

https://journals.plos.org/plosone/s/file?id=ba62/PLOSOne_formatting_sample_title_authors_affiliations.pdf

2. Please review your reference list to ensure that it is complete and correct. If you have cited papers that have been retracted, please include the rationale for doing so in the manuscript text, or remove these references and replace them with relevant current references. Any changes to the reference list should be mentioned in the rebuttal letter that accompanies your revised manuscript. If you need to cite a retracted article, indicate the article’s retracted status in the References list and also include a citation and full reference for the retraction notice.

3. Thank you for stating the following financial disclosure: 

"Unfunded studies"

At this time, please address the following queries:

a) Please clarify the sources of funding (financial or material support) for your study. List the grants or organizations that supported your study, including funding received from your institution. 

b) State what role the funders took in the study. If the funders had no role in your study, please state: “The funders had no role in study design, data collection and analysis, decision to publish, or preparation of the manuscript.”

c) If any authors received a salary from any of your funders, please state which authors and which funders.

d) If you did not receive any funding for this study, please state: “The authors received no specific funding for this work.”

Please include your amended statements within your cover letter; we will change the online submission form on your behalf.

4. Thank you for stating the following in your Competing Interests section:  

"NO authors have competing interests"

Please complete your Competing Interests on the online submission form to state any Competing Interests. If you have no competing interests, please state "The authors have declared that no competing interests exist.", as detailed online in our guide for authors at http://journals.plos.org/plosone/s/submit-now 

 This information should be included in your cover letter; we will change the online submission form on your behalf.

5. In your Data Availability statement, you have not specified where the minimal data set underlying the results described in your manuscript can be found. PLOS defines a study's minimal data set as the underlying data used to reach the conclusions drawn in the manuscript and any additional data required to replicate the reported study findings in their entirety. All PLOS journals require that the minimal data set be made fully available. For more information about our data policy, please see http://journals.plos.org/plosone/s/data-availability.

Upon re-submitting your revised manuscript, please upload your study’s minimal underlying data set as either Supporting Information files or to a stable, public repository and include the relevant URLs, DOIs, or accession numbers within your revised cover letter. For a list of acceptable repositories, please see http://journals.plos.org/plosone/s/data-availability#loc-recommended-repositories. Any potentially identifying patient information must be fully anonymized.

Important: If there are ethical or legal restrictions to sharing your data publicly, please explain these restrictions in detail. Please see our guidelines for more information on what we consider unacceptable restrictions to publicly sharing data: http://journals.plos.org/plosone/s/data-availability#loc-unacceptable-data-access-restrictions. Note that it is not acceptable for the authors to be the sole named individuals responsible for ensuring data access.

We will update your Data Availability statement to reflect the information you provide in your cover letter.

[Note: HTML markup is below. Please do not edit.]

Reviewers' comments:

Reviewer's Responses to Questions

Comments to the Author

1. Is the manuscript technically sound, and do the data support the conclusions?

The manuscript must describe a technically sound piece of scientific research with data that supports the conclusions. Experiments must have been conducted rigorously, with appropriate controls, replication, and sample sizes. The conclusions must be drawn appropriately based on the data presented.

Reviewer #1: Partly

Reviewer #2: Yes

Reviewer #3: Yes

**********

2. Has the statistical analysis been performed appropriately and rigorously?

Reviewer #1: Yes

Reviewer #2: Yes

Reviewer #3: Yes

**********

3. Have the authors made all data underlying the findings in their manuscript fully available?

The PLOS Data policy requires authors to make all data underlying the findings described in their manuscript fully available without restriction, with rare exception (please refer to the Data Availability Statement in the manuscript PDF file). The data should be provided as part of the manuscript or its supporting information, or deposited to a public repository. For example, in addition to summary statistics, the data points behind means, medians and variance measures should be available. If there are restrictions on publicly sharing data—e.g. participant privacy or use of data from a third party—those must be specified.

Reviewer #1: Yes

Reviewer #2: Yes

Reviewer #3: Yes

**********

4. Is the manuscript presented in an intelligible fashion and written in standard English?

PLOS ONE does not copyedit accepted manuscripts, so the language in submitted articles must be clear, correct, and unambiguous. Any typographical or grammatical errors should be corrected at revision, so please note any specific errors here.

Reviewer #1: Yes

Reviewer #2: Yes

Reviewer #3: Yes

**********

5. Review Comments to the Author

Please use the space provided to explain your answers to the questions above. You may also include additional comments for the author, including concerns about dual publication, research ethics, or publication ethics. (Please upload your review as an attachment if it exceeds 20,000 characters)

Reviewer #1: Only 10% of reference in this manuscript is recent work others are too old.

Authors has to increase recent references in to 20%.

Align the paper to journal format.

No keyword or indexed terms in your research work.

Reviewer #2: This article proposed cryptography mechanism for multiple user signing. This will ensure the product verification in many applications. Kindly answer the below questions.

1. The scheme proposed here matches with blockchain technology, except mutiuser sign. But, aim of the work can be accomplished by blockchain permissionless (private) scheme, in which only the authenticated users can verify. Pls clarify.

2. The performance analysis indicate only the runing time of the SM2 scheme. There are many security metrics available.

Reviewer #3: This work proposes a multi-party collaborative signing technique based on the SM2 digital signature algorithm from the GM/T003-2012 standard "SM2 Elliptic Curve Public Key Cryptography." This approach entails several (more than 2) participants working together in an interactive manner to generate the signature group public key and valid signature, while ensuring that no user knows the signature key other than their own during the signing process. We use the GMP library to implement this strategy. The experimental findings show that this approach is not only more flexible, but also more secure and trustworthy in the multi-device collaborative signing application scenario. Furthermore, the time it takes for numerous participants to construct signatures in this method is similar to that of the original SM2 signature, and the time it takes for signature verification is similar to that of the original SM2 signature. Authors should, however, handle the following concerns.

• In this survey, the authors missed the case study. I suggested authors to add case study about signature scheme so that the international readers could follow the work and understand easily.

1. Privacy-Protection Scheme Based on Sanitizable Signature for Smart Mobile Medical Scenarios

2. Efficient NTRU lattice-based certificateless signature scheme for medical cyber-physical systems

3. A practical group blind signature scheme for privacy protection in smart grid

4. Efficient and provably secure multireceiver signcryption scheme for multicast communication in edge computing

5. TC-PSLAP: Temporal Credential-Based Provably Secure and Lightweight Authentication Protocol for IoT-Enabled Drone Environments

• I suggested authors should check the typo errors.

After answering above queries, the review paper may be considered for publication. I can recommend for Minor revision.

**********

6. PLOS authors have the option to publish the peer review history of their article (what does this mean?). If published, this will include your full peer review and any attached files.

If you choose “no”, your identity will remain anonymous but your review may still be made public.

Do you want your identity to be public for this peer review? For information about this choice, including consent withdrawal, please see our Privacy Policy.

Reviewer #1: Yes: Dr. D. RAJESH

Reviewer #2: Yes: Saravanan K

Reviewer #3: No

[NOTE: If reviewer comments were submitted as an attachment file, they will be attached to this email and accessible via the submission site. Please log into your account, locate the manuscript record, and check for the action link "View Attachments". If this link does not appear, there are no attachment files.]

While revising your submission, please upload your figure files to the Preflight Analysis and Conversion Engine (PACE) digital diagnostic tool, https://pacev2.apexcovantage.com/. PACE helps ensure that figures meet PLOS requirements. To use PACE, you must first register as a user. Registration is free. Then, login and navigate to the UPLOAD tab, where you will find detailed instructions on how to use the tool. If you encounter any issues or have any questions when using PACE, please email PLOS at figures@plos.org. Please note that Supporting Information files do not need this step.

PLoS One. 2023 Feb 6;18(2):e0268245. doi: 10.1371/journal.pone.0268245.r002

Author response to Decision Letter 0


18 Apr 2022

We thank the editor and the reviewers for their insightful comments. We are glad that they have found the current research to be valuable, the method used reliable to provide novel results and the discussion substantial to explain the results. In sum, we thank the reviewers for noting that we have filled the research gap by asking an important question that has not yet been thoroughly addressed in the existing literature.

We have further revised the manuscript in light of the review comments. Below, we summarise the major changes we have made to the manuscript, and then we detail our responses to the review comments point by point.

We numbered the comments made by reviewers and started with bold letters " Q1" for the first reviewer, "Q2" for the second reviewer, "Q3" for the third reviewer, and "Q4" for the fourth reviewer. In addition, responses to the comments are started with the bold letter "Response to *". In order to make the response letter and revised manuscript easier to read for the editor and reviewers, the changes are marked in "red color" for reviewers' comments. Finally, we change the order of authors.

Data Availability Statement:

All relevant data in this study are available at https://doi.org/10.5064/F6ULCCQA

Revisions

Thanks to the reviewers for the questions raised during the review process, we have made the following modifications in response to the additional requirements for revision comments.

1. The style of the manuscript was revised, as well as the naming of the documents and other issues.

2. Reviewed the citation format of references and revised the format of some of the literature; in addition, old literature was replaced with new ones and relevant literature was added.

3. Added a section "Acknowledgments" to the manuscript, in which the source of funding for the study is described.

4. Regarding the issue of "Competing Interests", there are no competing interests among the authors in this study.

5. Submit the corresponding minimal data set of the results described in the manuscript.

6. In the manuscript, a detailed description of the review comments and the corresponding changes were added, as described in "Responses to Reviewer".

Attachment

Submitted filename: Plos-d-21-40703-Response to Reviewers.docx

Decision Letter 1

Pandi Vijayakumar

26 Apr 2022

Multi-party co-signature scheme based on SM2

PONE-D-21-40703R1

Dear Dr. Liu,

We’re pleased to inform you that your manuscript has been judged scientifically suitable for publication and will be formally accepted for publication once it meets all outstanding technical requirements.

Within one week, you’ll receive an e-mail detailing the required amendments. When these have been addressed, you’ll receive a formal acceptance letter and your manuscript will be scheduled for publication.

An invoice for payment will follow shortly after the formal acceptance. To ensure an efficient process, please log into Editorial Manager at http://www.editorialmanager.com/pone/, click the 'Update My Information' link at the top of the page, and double check that your user information is up-to-date. If you have any billing related questions, please contact our Author Billing department directly at authorbilling@plos.org.

If your institution or institutions have a press office, please notify them about your upcoming paper to help maximize its impact. If they’ll be preparing press materials, please inform our press team as soon as possible -- no later than 48 hours after receiving the formal acceptance. Your manuscript will remain under strict press embargo until 2 pm Eastern Time on the date of publication. For more information, please contact onepress@plos.org.

Kind regards,

Pandi Vijayakumar, Ph.D

Academic Editor

PLOS ONE

Additional Editor Comments (optional):

Reviewers' comments:

Reviewer's Responses to Questions

Comments to the Author

1. If the authors have adequately addressed your comments raised in a previous round of review and you feel that this manuscript is now acceptable for publication, you may indicate that here to bypass the “Comments to the Author” section, enter your conflict of interest statement in the “Confidential to Editor” section, and submit your "Accept" recommendation.

Reviewer #1: All comments have been addressed

Reviewer #2: All comments have been addressed

**********

2. Is the manuscript technically sound, and do the data support the conclusions?

The manuscript must describe a technically sound piece of scientific research with data that supports the conclusions. Experiments must have been conducted rigorously, with appropriate controls, replication, and sample sizes. The conclusions must be drawn appropriately based on the data presented.

Reviewer #1: Yes

Reviewer #2: Yes

**********

3. Has the statistical analysis been performed appropriately and rigorously?

Reviewer #1: Yes

Reviewer #2: Yes

**********

4. Have the authors made all data underlying the findings in their manuscript fully available?

The PLOS Data policy requires authors to make all data underlying the findings described in their manuscript fully available without restriction, with rare exception (please refer to the Data Availability Statement in the manuscript PDF file). The data should be provided as part of the manuscript or its supporting information, or deposited to a public repository. For example, in addition to summary statistics, the data points behind means, medians and variance measures should be available. If there are restrictions on publicly sharing data—e.g. participant privacy or use of data from a third party—those must be specified.

Reviewer #1: Yes

Reviewer #2: Yes

**********

5. Is the manuscript presented in an intelligible fashion and written in standard English?

PLOS ONE does not copyedit accepted manuscripts, so the language in submitted articles must be clear, correct, and unambiguous. Any typographical or grammatical errors should be corrected at revision, so please note any specific errors here.

Reviewer #1: Yes

Reviewer #2: No

**********

6. Review Comments to the Author

Please use the space provided to explain your answers to the questions above. You may also include additional comments for the author, including concerns about dual publication, research ethics, or publication ethics. (Please upload your review as an attachment if it exceeds 20,000 characters)

Reviewer #1: Manuscript is organized and corrected as per the comments. so it may be Accepted.

Reviewer #2: author addressed the queries and revised the paper. the revised paper has the proper strcture and narration

**********

7. PLOS authors have the option to publish the peer review history of their article (what does this mean?). If published, this will include your full peer review and any attached files.

If you choose “no”, your identity will remain anonymous but your review may still be made public.

Do you want your identity to be public for this peer review? For information about this choice, including consent withdrawal, please see our Privacy Policy.

Reviewer #1: Yes: Dr. D. Rajesh

Reviewer #2: Yes: Saravanan K

Acceptance letter

Pandi Vijayakumar

20 Jun 2022

PONE-D-21-40703R1

Multi-party co-signature scheme based on SM2 

Dear Dr. Liu:

I'm pleased to inform you that your manuscript has been deemed suitable for publication in PLOS ONE. Congratulations! Your manuscript is now with our production department.

If your institution or institutions have a press office, please let them know about your upcoming paper now to help maximize its impact. If they'll be preparing press materials, please inform our press team within the next 48 hours. Your manuscript will remain under strict press embargo until 2 pm Eastern Time on the date of publication. For more information please contact onepress@plos.org.

If we can help with anything else, please email us at plosone@plos.org.

Thank you for submitting your work to PLOS ONE and supporting open access.

Kind regards,

PLOS ONE Editorial Office Staff

on behalf of

Dr. Pandi Vijayakumar

Academic Editor

PLOS ONE

Associated Data

    This section collects any data citations, data availability statements, or supplementary materials included in this article.

    Supplementary Materials

    Attachment

    Submitted filename: Plos-d-21-40703-Response to Reviewers.docx

    Data Availability Statement

    The data underlying the results presented in the study are available from the Open Science Framework database (https://osf.io/BHX32/).


    Articles from PLOS ONE are provided here courtesy of PLOS

    RESOURCES