Abstract
We revisit the SM2 protocol, which is widely used in Chinese commercial applications and by Chinese government agencies. Although it is by now standard practice for protocol designers to provide security proofs in widely accepted security models in order to assure protocol implementers of their security properties, the SM2 protocol does not have a proof of security. In this paper, we prove the security of the SM2 protocol in the widely accepted indistinguishability-based Bellare-Rogaway model under the elliptic curve discrete logarithm problem (ECDLP) assumption. We also present a simplified and more efficient version of the SM2 protocol with an accompanying security proof.
1. Introduction
Due to the potential of elliptic curve cryptography (ECC) to offer similar security to established public-key cryptosystems at reduced key sizes, it has become a subject of research focus. For example, we observe an emerging trend in the use of identity-based (ID-based) cryptography, such as ID-based key agreement protocols using pairings. The latter include ID-based authenticated key agreement (ID-AKA) protocol. ID-AKA protocols (as well as other key establishment protocols such as [1–4]) allow a shared secret key to be established between two or more parties for subsequent cryptographic use. The first two-party ID-AKA protocol was proposed by Shamir, which is based on Weil Pairing [5]. Shamir's protocol requires a trusted key generation center (KGC). Challenges associated with KGC are well documented, and Alriyami and Paterson proposed the first certificateless two-party authenticated key agreement (CTAKA) protocol that does not require a KGC [6]. Since then, a number of CTAKA protocols have been proposed in the literature [7–9]. Most of these CTAKA protocols are, however, based on bilinear pairings. The latter is expensive, especially in comparison to RSA algorithm [10, 11].
A number of recently published certificateless ECC-based AKA protocols that do not require the use of pairings have been proposed. For example, in 2007, Zhu et al. proposed a pairing-free ID-AKA protocol [12]. However, the combination of a pairing-free ID-based signature scheme with the Diffie-Hellman key exchange in the proposed protocol results in larger computation complexity and message size. In addition, the protocol and the ECC-based pairing-free ID-AKA protocol of Cao et al. [13] require three rounds of message exchanges. Another later protocol of Cao et al. reduces the minimum message exchange rounds to two and the protocol was proven secure in the Bellare-Rogaway model [10]. He et al. also independently proposed a two-round certificateless ID-AKA protocol without the use of pairings [14] and a three-round certificateless ID-AKA protocol without the use of pairings [2], respectively.
In 2011, the Chinese government published an ECC-based key exchange protocol, SM2 [15]. According to the official report from the Chinese Government State Cryptography Administration and various media releases, SM2 protocol is mandatory in various cryptographic applications used by Chinese government agencies from 1st July, 2011 [16–18]. A 2005 survey by Boyd and Choo revealed that the purported security of several published ID-based protocols is based on heurstic security arguments. A number of protocols were also found to be proven secure in a restricted model. This study highlighted the need for more rigorously tested identity-based protocols [19]. Surprisingly, we observed that despite the wide usage of the SM2 protocol among Chinese commercial applications/electronics, it does not have a security proof.
A protocol's goal is defined as the properties that the protocol aims to achieve. As Boyd and Mathuria suggested, any attack on a protocol is only valid if it violates some property that the protocol was intended to achieve [20]. Without identifying at an early stage the properties and/or goals that a protocol offers, one can debate the validity of attacks against a published protocol since it may not be clear whether the protocol is not intended to provide assurances against the properties being exploited [21]. This reinforced the importance of having a security proof for protocols, particularly those that are widely used by government agencies and in the private sector.
Our contributions in this paper are two-fold.
We prove the SM2 protocol secure in the widely accepted indistinguishability-based model of Bellare and Rogaway under the ECDLP assumption.
We propose a simplified version of SM2 protocol that is more efficient, and prove it secure in the Bellare-Rogaway model under the ECDLP assumption.
In the next section, we will briefly review the model that we work in. We revisit the SM2 protocol and prove it secure in Section 3. Section 4 describes our simplified SM2 protocol and its proof of security. Finally, the last section concludes the paper.
2. Overview of the Bellare-Rogaway Model
In the Bellare-Rogaway model [22, 23], the adversary (denoted by A) controls the communication channel by interacting with a set of ΠU1,U2 i oracles. ΠU1,U2 i is defined to be the ith instantiation of a protocol participant, U 1 in a specific protocol run and U 2 is the other protocol participant, with whom U 1 wishes to establish a secret key. The predefined oracle queries are described informally as follows.
-
The Send (U 1, U 2, i, m) query allows A to send a message m to another protocol participant at will. In other words,
- ΠU1,U2 i, upon receiving the query, will compute what the protocol specification demands. The response message and/or decision will then be sent to A,
- if ΠU1,U2 i has either accepted with some session key or terminated, this will be made known to A.
The Reveal (U, i) query allows A to expose a previously accepted session key. In other words, U i, upon receiving this query and if it has accepted and holds some session key, will send this session key back to A.
The Corrupt (U) query allows A to learn the complete internal state of U. This models the real world scenario of a corrupted insider.
The Test (U 1, U 2, i) query is the only oracle query that does not correspond to any of A's abilities. If ΠU1,U2 i has accepted with some session key and is being asked a Test (U 1, U 2, i) query; then depending on a randomly chosen bit b, A is given either the actual session key or a session key drawn randomly from the session key distribution.
Definition 1 (Definition of Partnership). —
Let us denote ΠA,B i and ΠB,A j as two oracles in the protocol run. These two oracles are considered partners if and only if
both ΠA,B i and ΠB,A j have accepted the same session key,
only ΠA,B i and ΠB,A j (i.e., no other oracle) have accepted with the same session ID (i.e., SID, which is defined to be the concatenation of the message flows) and agreed on the same set of principals (i.e., the initiator and the responder of the protocol).
Definition 2 (Definition of Freshness). —
Oracle ΠA,B i holds a fresh session key at the end of execution, if and only if all the following conditions are satisfied:
ΠA,B i has accepted with, or without, a partner oracle ΠB,A j,
ΠA,B i and ΠB,A j (if such a partner oracle exists) has/have not been sent a Reveal query,
both A and B (if such a partner exists) has/have not been sent a Corrupt query.
The definition of security depends on the notions of partnership as outlined in Definition 1 and freshness as outlined in Definition 2 and is defined using the game G and played between A and a collection of ΠUx,Uy i oracles for players U x, U y ∈ {U 1,…, U Np} and instances i ∈ {1,…, N s}. A runs the game simulation G, whose setting is as follows.
Send, Reveal, and Corrupt oracle queries are sent by A in any order at will.
A chooses a fresh session on which to be tested by sending a Test query to the fresh oracle associated with the test session at some point during G. This chosen test session must be fresh (in the sense of Definition 2). Depending on a randomly chosen bit b, A is given either the actual session key or a session key drawn randomly from the session key distribution.
A continues making any Send, Reveal, and Corrupt oracle queries of its choice.
A will eventually terminate G and outputs its guess of the value of b, denoted as b′.
We measure A's success in G in terms of A's advantage in distinguishing whether A receives the real key or a random value (i.e., whether b′ = b).
Let k be a security parameter. Then, the advantage function of A is denoted by AdvA(k), where
| (1) |
Definition 3 (Definition of Security). —
A protocol is secure in the Bellare-Rogaway model if both the following requirements are satisfied.
Two oracles accept the same key when the protocol is run in the absence of a malicious adversary.
For all probabilistic, polynomial-time (PPT) adversaries A, AdvA(k) is negligible.
3. A Provably-Secure SM2 Key Exchange Protocol
3.1. SM2 Key Exchange Protocol
The notations used in SM2 protocol (Table 1) are as follows:
A, B: two SM2 protocol participants with identities IDA and IDB respectively,
a, b: a, b ∈ f q: the parameters of the elliptic curve E on F q where elliptic function is y 2 = x 3 + ax + b,
F q: the prime field F includes q elements,
E(F q): the set of all points on the elliptic curve E defined over F q,
G: the base point of elliptic curve, order of G is prime number that G = (x G, y G),
h: cofactor, h = #E(F q)/n, n is the order of G,
D: the space of number that D = [1, n − 1],
(d, P): long-term private and public key pair,
K: session key,
ID: identification of client,
Z: hash value of identification, the length of Z is entlen A bits,
H v(): one-way hash function,
(r, R): temporary private and public key pair,
klen and entlen: the bit length of the key and ID, respectively,
KDF(Z, klen): the one-way key derivation hash function whose output length is klen,
x||y: concatenation of two strings x and y,
⊥: there is no message or the value is not known.
Table 1.
SM2 key exchange protocol.
| A | B |
|---|---|
| d A, E(F q), G, n, Z A, Z B, P A, P B, H(), KDF(), G | d B, E(F q), G, n, Z A, Z B, P A, P B, H(), KDF(), G |
| Randomly selects r A ∈ [1, n − 1] | Randomly selects r B ∈ [1, n − 1] |
| Computes R A = [r A]G = (x 1, y 1) | Computes R B = [r B]G = (x 2, y 2) |
| Computes | Computes |
| Computes | Computes |
| Computes | |
| Computes | |
| Computes K B = KDF(x V||y V||Z A||Z B, klen) | |
| Computes S B = H(0x02||y V||H(x V||Z A||Z B||x 1||y 1||x 2||y 2)) | |
| Computes | |
| Computes | |
| Computes K A = KDF(x U||y U||Z A||Z B, klen) | |
| Computes S 1 = H(0x02||y U||H(x U||Z A||Z B||x 1||y 1||x 2||y 2)) | |
| Verifies | |
| Computes S A = H(0x03||y U||H(x U||Z A||Z B||x 1||y 1||x 2||y 2)) | |
| Computes S 2 = H(0x03||y V||H(x V||Z A||Z B||x 1||y 1||x 2||y 2)) | |
| Verifies | |
| Key established K A = K B | Key established K B = K A |
| SID is (R A||R B) or (R A||R B||S B||S A) in the case where key confirmation is required. | |
A randomly selects d A ∈ [1, n − 1] and computes P A = [d A]G = (x A, y A), prior to sending P A to B. B will also randomly select d B ∈ [1, n − 1] and compute P B = [d B]G = (x B, y B), before sending P B to A. The public parameters are (E(Fq), G, n, Z A, Z B, P A, P B). And Z A and Z B are hash values of the identification of A and B, respectively, where Z A = H(ENTL A||IDA||a||b||x G||y G||x A||y A) and Z B = H(ENTL B||IDB||a||b||x G||y G||x B||y B). To establish a session key with client B,
-
client A will now run the protocol as follows:
- randomly selects r A ∈ [1, n − 1],
- computes R A = [r A]G = (x 1, y 1) and where w = ⌈(⌈log2(n)⌉/2)⌉ − 1,
- computes ,
- sends R A to client B;
-
upon receiving the message R A from client A, B will perform the following:
- randomly selects r B ∈ [1, n − 1],
- computes R B = [r B]G = (x 2, y 2), , t B = , and K B = KDF(x V||y V||Z A||Z B, klen),
- (optional for key confirmation) computes S B = H(0x02||y V||H(x V||Z A||Z B||x 1||y 1||x 2||y 2)),
- Sends R B to client A (optional for key confirmation, B will also send S B to A);
-
upon receiving the messages, R B (and S B), from B, client A will perform the following:
- computes , U = = (x U, y U) and K A = KDF(x U||y U||Z A||Z B, klen),
- (optional for key confirmation) computes S 1 = H(0x02||y U||H(x U||Z A||Z B||x 1||y 1||x 2||y 2)),
-
verifies , and if it returns true then A is assured that B actually has possession of the session key, otherwise, terminates the protocol run and outputs ⊥,
- (optional for key confirmation, computes S A = H(0x03||y U||H(x U||Z A||Z B||x 1||y 1||x 2||y 2))),
- Sends S A to client B;
-
(optional for key confirmation) upon receiving the message (S A) from client A, client B will perform the following:
- computes S 2 = H(0x03||y V||H(x V||Z A||Z B||x 1||y 1||x 2||y 2)),
- verifies whether ,
- if the verification returns wrong, then client B terminates the protocol run and outputs ⊥,
- otherwise, client B is assured that A actually has possession of the session key;
session key established is K A = K B,
SID is (R A||R B) or (R A||R B||S B||S A) in the case where key confirmation is required.
3.2. Security Proof
The security of the protocol—see Theorem 5—is based on the ECDLP assumption (see Definition 4) in the random oracle model.
Definition 4 (ECDLP Assumption). —
The ECDLP problem is defined as follows:
(2) If we can solve the discrete logarithm problem (DLP) [26], then we can also (immediately) solve the ECDLP problem.
Theorem 5 . —
SM2 protocol is secure in the sense of Definition 3 when the underlying hash and key derivation schemes are modelled as random oracles and the elliptic curve discrete logarithm problem (ECDLP) assumption is satisfied in E(F q).
The soundness requirement is trivial to verify. We will now concentrate on proving the indistinguishability requirement.
In the usual tradition of reductionist proofs, we assume that there exists an adversary A against the protocol (i.e., A has a nonnegligible advantage, η(k), where k is the security parameter), and we then construct a solver S that makes use of A to solve the ECDLP problem. In other words, S will simulate the view of A by answering all Send, Reveal, Corrupt, and Test queries of A. S will start by randomly selecting two users, I and J, and a session number, i, as the test session. S will also manage two random oracles, H and KDF, in order to answer A's queries. More specifically when the H oracle is queried, S will check whether the tuple is already in the H-list and output the stored response. Otherwise, S will respond with the appropriate output, H(⋯), and adds the tuple (H(⋯), U, i) to the H-list. S will answer KDF queries in the same manner.
-
Send (Ω I, Ω J, j, m) queries: for any well-formed Send queries from A, S can trivially answer with the right output as the protocol specification demands. Specifically, S answers the query as follows.
- If Ω I = initiator and Ω J = responder, then the S will output the message m = (R I, Z I, Z J, P I, P J).
-
Consider the case that Ω J = initiator, Ω I = responder, and message m = R I.
- If S has rejected the message m, then S will respond with ⊥. Otherwise, S will verify whether m is the right format or not.
- If m verifies correctly, then S will output messages (R J, S J) to A. Otherwise, S will abort the simulation and output ⊥.
-
Assume Ω I = initiator, Ω J = responder, and messages m = R J, S J.
- If S has rejected the messages m, then S will respond with ⊥. Otherwise, S will verify whether m is the right format or not.
- If m verifies correctly, then S will output messages S I to A. Otherwise, S will abort the simulation and output ⊥.
Reveal (Ω, j) queries: if Ω j = I i or Ω j = J i, then S will abort the simulation and fail. Otherwise this query can be answered with the right session key as long as U j has accepted and neither Ω nor its partner has been corrupted. However, such a session will be rendered unfresh.
Corrupt (Ω) queries: this query can be easily answered as per the protocol specifications, unless Ω = I or Ω = J. In the latter scenario, S will abort the simulation and fail.
Test (Ω 1, Ω 2, j, m) queries: if ΠU1,U2 j ≠ ΠI,J i, then S will abort the simulation and fail. Otherwise, S will check whether ΠΩ1,Ω2 j has accepted and that the session is fresh. If so, A will be given either the actual session key or a session key drawn randomly from the session key distribution, depending on the randomly chosen bit b.
For A to distinguish whether the value returned is the actual session key or a session key drawn randomly from the session key distribution, A has to determine the correct values of U = (x U, y U) or V = (x V, y V) to compute the session key (since K I = KDF(x U||y U||Z A||Z B, klen) and K J = KDF(x V||y V||Z A||Z B, klen)). For this to happen,
-
(i)A has to guess the long-term private key d I and short-term private key r I in order to compute t I and hence, the session key K I. If A is able to successfully guess d I and r I via P I = [d I]G and R I = [r I]G, then S would be able to use A to solve the ECDLP problem. Let SuccdI ECDLP and SuccrI ECDLP denote A's advantage in computing the correct values of d I and r I, respectively, and SuccA U denotes the event that A can successfully guess the session key using the computed values of d I and r I. So we have
(3) -
(ii)A has to guess the correct value of V. Similar to the above, we let SuccdJ ECDLP and SuccrJ ECDLP denote A's advantage in computing the correct value of d J and r J, respectively, and SuccA V denotes the event that A can successfully guess the session key using the computed values of d J and r J. So we have
(4)
There is, therefore, a negligible advantage of A distinguishing whether the value returned is the actual session key or a session key drawn randomly from the session key distribution. Let q t and SuccA SM2 denote the number of Test queries asked and the event that A can correctly distinguish the session key, respectively. We now have
| (5) |
Since D = [1, n − 1], n → ∞, D → ∞, 1/|D|2 → 0, 1/|D|4 → 0, q t ≪ D, and q t/|D|2 → 0, q t/|D|4 → 0, we have ((2q t/|D|2) − (q t/|D|4)) → 0 and ((2q t/|D|2) − (q t/|D|4)) = (q t/|D|2)(2 − (1/|D|2)) > 0. Therefore,
| (6) |
This concludes the proof for Theorem 5.
4. A Provably-Secure Simplified SM2 Key Exchange Protocol
In this section, we propose a more efficient version of the SM2 protocol—see Table 2—and prove its security in the Bellare-Rogaway model.
Table 2.
Simplified SM2 key exchange protocol.
| A | B |
|---|---|
| pub: E(F q), G, n, H(), KDF(), G, P A, P B, Z A, Z B | |
| Randomly selects r A ∈ [1, n − 1] | Randomly selects r B ∈ [1, n − 1] |
| Computes t A = (d A · r A)modn | Computes t B = (d B · r B)modn |
| Computes R A = [t A]G = (x 1, y 1) | Computes R B = [t B]G = (x 2, y 2) |
| Computes V = [t B] · R A + d B · P A = (x V, y V) | |
| Computes K B = KDF(x V||y V||Z A||Z B, klen) | |
| Computes S B = H(0x02||y V||H(x V||Z A||Z B||x 1||y 1||x 2||y 2)) | |
| Computes U = [t A] · R B + d A · P B = (x U, y U) | |
| Computes K A = KDF(x U||y U||Z A||Z B, klen) | |
| Computes S 1 = H(0x02||y U||H(x U||Z A||Z B||x 1||y 1||x 2||y 2)) | |
| Verifies | |
| Computes S A = H(0x03||y U||H(x U||Z A||Z B||x 1||y 1||x 2||y 2)) | |
| Computes S 2 = H(0x03||y V||H(x V||Z A||Z B||x 1||y 1||x 2||y 2)) | |
| Verifies | |
| Key established K A = K B | Key established K B = K A |
| SID is (R A||R B) or (R A||R B||S B||S A) in the case where key confirmation is required. | |
4.1. Protocol Description
A randomly selects d A ∈ [1, n − 1] and computes long-term public key P A = [d A]G = (x A, y A) and Z A = H(ENTL A||IDA||a||b||x G||y G||x A||y A). It then sends P A and Z A to B. B also randomly selects d B ∈ [1, n − 1] and computes P B = [d B]G = (x B, y B) and Z B = H(ENTL A||IDA||a||b||x G||y G||x B|| y B), prior to sending P B and Z B to A. E(Fq), G, n, H(), KDF(), G, P A, P B, Z A, Z B are system parameters. To establish a session key with B,
-
A will now run the protocol as follows:
- randomly selects r A ∈ [1, n − 1],
- computes t A = (d A · r A)modn and R A = [t A]G = (x 1, y 1),
- sends R A to B;
-
upon receiving P A from A, B will perform the following:
- randomly selects r B ∈ [1, n − 1],
- computes t B = (d B · r B)modn, R B = [t B]G = (x 2, y 2), V = [t B] · R A + d B · P A = (x V, y V), and K B = KDF(x V||y V||Z A||Z B, klen),
- (optional for key confirmation) computes S B = H(0x02||y V||H(x V||Z A||Z B||x 1||y 1||x 2||y 2)),
- sends R B to A (optionally for key confirmation, B will also send S B to A);
-
upon receiving R B (and S B, optionally for key confirmation) from B, A will perform the following:
- computes U = [t A] · R B + d A · P B = (x U, y U) and K A = KDF(x U||y U||Z A||Z B, klen),
- (optional for key confirmation) compute S 1 = H(0x02||y U||H(x U||Z A||Z B||x 1||y 1||x 2||y 2)),
-
verifies that , and if it returns true, then A is assured that B actually has possession of the session key, otherwise, terminates the protocol run and outputs ⊥,
- (optional for key confirmation) computes S A = H(0x03||y U||H(x U||Z A||Z B||x 1||y 1||x 2||y 2)),
- Send S A to client B;
-
(optional for key confirmation) upon receiving S A, B will perform the following:
- computes S 2 = H(0x03||y V||H(x V||Z A||Z B||x 1||y 1||x 2||y 2)),
- verifies whether ,
- if the verification returns wrong, then client B terminates the protocol run and outputs ⊥. If it returns true, then B is assured that A actually has possession of the session key. Otherwise, terminates the protocol run and outputs ⊥;
session key established is K A = K B,
SID is (R A||R B) or (R A||R B||S B||S A) in the case where key confirmation is required.
4.2. Security Proof
Theorem 6 . —
The simplified SM2 protocol (Table 2) is secure in the sense of Definition 3 when the underlying hash and key derivation schemes are modelled as random oracles and the ECDLP assumption is satisfied in E(F q).
The proof process is similar to that of Section 3.2.
-
Send (Ω I, Ω J, j, m) queries: for any well-formed Send queries from A, S can trivially answer with the right output as the protocol specification demands. Specifically, S answers the query as follows.
- If Ω I = initiator and Ω J = responder, then the S will output the message, m = R I, to the query.
-
Consider the case that Ω J = initiator, Ω I = responder, and messages m = R I.
- If S has rejected the message m, then S will respond with ⊥. Otherwise, S will verify whether m is the right format or not.
- If m verifies correctly, then S will output messages (R J, S J) to A. Otherwise, S will abort the simulation and output ⊥.
-
Assume Ω I = initiator, Ω J = responder, and messages m = R J, S J.
- If S has rejected the messages m, then S will respond with ⊥. Otherwise, S will verify whether m is the right format or not.
- If m verifies correctly, then S will output messages S I to A. Otherwise, S will abort the simulation and output ⊥.
Simulations for the Reveal, Corrupt, and Test follow that of Section 3.2.
For A to distinguish whether the value returned is the actual session key or a session key drawn randomly from the session key distribution (i.e., whether b = 0 or b = 1), A has to determine the correct values of U = (x U, y U) or V = (x V, y V) (since K I = KDF(x U||y U||Z A||Z B, klen) and K J = KDF(x V||y V||Z A||Z B, klen)). For this to happen, A has to obtain the correct value of d I · r I in order to compute t I and consequently, the session key K I. For A to obtain t I, A has to be able to compute from R I since R I = [t I]G.
Let SucctI ECDLP denote A's advantage in computing t I from R I, and we have
| (7) |
Let SucctJ ECDLP denote A's advantage in computing t J from R J, and we have
| (8) |
Let SuccA ESM2 denote the event that A is able to distinguish whether the value returned is the actual session key or a session key drawn randomly from the session key distribution. We then have
| (9) |
Since D = [1, n − 1], n → ∞, D → ∞, 2/|D| → 0, 1/|D|4 → 0, q t ≪ D, and 2q t/|D| → 0, q t/|D|2 → 0, we have ((2q t/|D|) − (q t/|D|2)) → 0 and ((2q t/|D|) − (q t/|D|2)) = (q t/|D|)(2 − (1/|D|)) > 0. It follows that Pr[SuccA ESM2] = (2q t/|D|) − (q t/|D|2) → 0.
This concludes the proof for Theorem 6.
5. Conclusion
Key exchange protocols are the cornerstone of any secure communication. By proving the widely used Chinese Government SM2 protocol secure in the Bellare-Rogaway model under the ECDLP assumption, we hope that this provides a strong assurance to protocol implementers that the protocol is behaving as desired. In addition, we presented a more efficient version of the SM2 protocol with a proof of security in the Bellare-Rogaway model under the ECDLP assumption.
A comparison with six existing pairing-free protocols reveals that the computational load of our simplified SM2 protocol is no more than that of the six and the SM2 protocols, yet provides both implicit key confirmation (A is assured that B can compute the session key) and explicit key confirmation (A is assured that B has actually computed the session key)—see Table 3. In Table 3, a, m, e, and h denote addition, multiplication, exponentiation, and hash operations, respectively.
Table 3.
Protocol comparison.
| Protocol | Cost | Both implicit and explicit key confirmation? |
|---|---|---|
| Cao et al. (2008) [13] | 10m + 4a + 4h + 1e | No |
| Cao et al. (2010) [10] | 8m + 3a + 2h | No |
| He et al. (2012) [2] | 6m + 5a + 2e + 2h | No |
| Yang and Tan (2011) [24] | 6m + 2h | No |
| He et al. (2011) [14] | 5m + 4a + 2h | No |
| Chen and Han (2013) [25] | 9m + 2a + 7h + 1e | No |
| SM2 [15] | 5m + 4a + 3h | Yes |
| Our simplified SM2 protocol | 4m + 1a + 3h | Yes |
Conflict of Interests
As the authors of the paper, we do not have a direct financial relation with any institution or organization mentioned in our paper that might lead to a conflict of interests for any of the authors.
References
- 1.Cheng Z, Liu Y, Chang C, Guo C. A fault-tolerant group key agreement protocol exploiting dynamic setting. International Journal of Communication Systems. 2013;26(2):259–275. [Google Scholar]
- 2.He D, Chen J, Hu J. A pairing-free certificateless authenticated key agreement protocol. International Journal of Communication Systems. 2012;25(2):221–230. [Google Scholar]
- 3.He D, Chen C, Ma M, Chan S, Bu J. A secure and efficient password-authenticated group key exchange protocol for mobile ad hoc networks. International Journal of Communication Systems. 2013;26(4):495–504. [Google Scholar]
- 4.Choo KR, Nam J, Won D. A mechanical approach to derive identity-based protocols from Diffie-Hellman-based protocols. Information Sciences. 2014;281:182–200. [Google Scholar]
- 5.Shamir A. in Advances in Cryptology—CRYPTO 1984. Vol. 196. Berlin, Germany: Springer; 1985. Identity-based cryptosystems and signature schemes; pp. 47–53. (Lecture Notes in Computer Science). [Google Scholar]
- 6.Al-Riyami S, Paterson K. Advances in Cryptology—ASIACRYPT 2003. Vol. 2894. Berlin, Germany: Springer; 2003. Certificateless public key cryptography; pp. 452–473. (Lecture Notes in Computer Science). [Google Scholar]
- 7.Lippold G, Boyd C, Nieto J. Pairing-Based Cryptography—Pairing 2009. Vol. 5671. Berlin, Germany: Springer; 2009. Strongly secure certificateless key agreement; pp. 206–230. ( Lecture Notes in Computer Science). [Google Scholar]
- 8.Swanson C. Security in key agreement: two-party certificateless schemes [M.S. thesis] University of Waterloo; 2008. [Google Scholar]
- 9.Zhang L, Zhang F, Wu Q, Domingo- Ferrer J. Simulatable certificateless two-party authenticated key agreement protocol. Information Sciences. 2010;180(6):1020–1030. [Google Scholar]
- 10.Cao X, Kou W, Du X. A pairing-free identity-based authenticated key agreement protocol with minimal message exchanges. Information Sciences. 2010;180(15):2895–2903. [Google Scholar]
- 11.Joye M, Neven G. Identity-Based Cryptography. IOS Press; 2009. [Google Scholar]
- 12.Zhu RW, Yang G, Wong DS. An efficient identity-based key exchange protocol with KGS forward secrecy for low-power devices. Theoretical Computer Science. 2007;378(2):198–207. [Google Scholar]
- 13.Cao X, Kou W, Yu Y, Sun R. Identity-based authenticated key agreement protocols without bilinear pairings. IEICE Transactions on Fundamentals of Electronics, Communications and Computer Sciences. 2008;E91-A(12):3833–3836. [Google Scholar]
- 14.He D, Chen Y, Chen J, Zhang R, Han W. A new two-round certificateless authenticated key agreement protocol without bilinear pairings. Mathematical and Computer Modelling. 2011;54(11-12):3143–3152. [Google Scholar]
- 15.Chinese Government State Cryptography Administration. Public key cryptographic algorithm SM2 based on elliptic curves. (Chinese), 2010, http://www.oscca.gov.cn/UpFile/2010122214822692.pdf.
- 16.Chinese Government State Cryptography Administration. Chinese government state cryptography administration no: 24 announcement. 2012 (Chinese), http://www.oscca.gov.cn/News/201212/News_1234.htm.
- 17.Chinese Government State Cryptography Administ ration. Chinese government st ate cryptography administration no.64 announcement. 2012, http://www.oscca.gov.cn/WebSite/smb/Upload/File/201301/20130125170704188.pdf.
- 18.Xu J, Feng D. Cryptology and Network Security. Vol. 7092. Berlin, Germany: Springer; 2011. Comments on the SM2 key exchange protocol; pp. 160–171. (Lecture Notes in Computer Science). [Google Scholar]
- 19.Boyd C, Choo KKR. Progress in Cryptology—Mycrypt 2005. Vol. 3715. Berlin, Germany: Springer; 2005. Security of two-party identity-based key agreement; pp. 229–243. (Lecture Notes in Computer Science). [Google Scholar]
- 20.Boyd C, Mathuria A. Protocols for Authentication and Key Establishment. Berlin, Germany: Springer; 2003. [Google Scholar]
- 21.Choo K-KR. Secure Key Establishment. Vol. 41. Springer; 2009. (Advances in Information Security). [Google Scholar]
- 22.Bellare M, Rogaway P. Advances in Cryptology—CRYPTO 1993. Vol. 773. Berlin, Germany: Springer; 1994. Entity authentication and key distribution; pp. 232–249. (Lecture Notes in Computer Science). [Google Scholar]
- 23.Bellare M, Rogaway P. Provably secure session key distribution—the three party case. Proceedings of of 27th ACM Symposium on Theory of Computing; 1995; pp. 57–66. [Google Scholar]
- 24.Yang G, Tan C. Strongly secure certificateless key exchange without pairing. Proceedings of the 6th International Symposium on Information, Computer and Communications Security (ASIACCS '11); March 2011; Hong Kong. pp. 71–79. [Google Scholar]
- 25.Chen Y, Han W. Efficient identity-based auth enticated multiple key exchange protocol. Acta Scientiarum, Technology. 2013;35(4):629–636. [Google Scholar]
- 26.Boneh D, Lipton R. Advances in Cryptology—CRYPTO '96. Vol. 1109. Berlin, Germany: Springer; 1996. Algorithms for black-box fields and their application to cryptography; pp. 283–297. ( Lecture Notes in Computer Science). [Google Scholar]
