Skip to main content
Log in

ASICS: authenticated key exchange security incorporating certification systems

  • Regular Contribution
  • Published:
International Journal of Information Security Aims and scope Submit manuscript

Abstract

Most security models for authenticated key exchange (AKE) do not explicitly model the associated certification system, which includes the certification authority and its behaviour. However, there are several well-known and realistic attacks on AKE protocols which exploit various forms of malicious key registration and which therefore lie outside the scope of these models. We provide the first systematic analysis of AKE security incorporating certification systems. We define a family of security models that, in addition to allowing different sets of standard AKE adversary queries, also permit the adversary to register arbitrary bitstrings as keys. For this model family, we prove generic results that enable the design and verification of protocols that achieve security even if some keys have been produced maliciously. Our approach is applicable to a wide range of models and protocols; as a concrete illustration of its power, we apply it to the CMQV protocol in the natural strengthening of the eCK model to the ASICS setting.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2

Similar content being viewed by others

Notes

  1. For example, issuance of Extended Validation (EV) certificates requires stronger identity-checking requirements than non-EV certificates, see https://www.cabforum.org/certificates.html for more details.

  2. In June and July 2011, Dutch CA DigiNotar was hacked [23], with the intruder taking control of all 8 of the CA’s signing servers; at least 531 rogue certificates were then issued. In August 2011, TURKTRUST CA [21] issued special certificates with wildcard signing capabilities, allowing impersonation of any domain in the Internet. This was discovered, by coincidence, only 18 months later.

  3. An early version of [43] from April 1999 in fact did allow revealing session state without simultaneously revealing long-term secrets. However, this option disappeared in all later versions of the paper.

  4. Although interactive or non-interactive zero-knowledge proof systems seem to yield ideal solutions in this context, standards like X.509, OpenPGP, and PKCS#10 content themselves with the purely heuristic (and inferior) approach of demanding a so-called proof-of-possession (PoP), mostly implemented via self-signed certificates or self-signed certificate requests (cf. [1, 41]). The security of such constructions seems to be difficult to formally assess [40].

  5. Reasonable implementations of \({\mathsf {VP}}\) output 1 on all keys \(\mathsf {pk}\in {\mathcal {HK}}\), because \({\mathcal {HK}}\subseteq {\mathbf {PK}}\).

  6. For instance, consider an RSA modulus N and the (cyclic) group \(QR_N\) of quadratic residues modulo N. As the CDH problem in \(QR_N\) is provably as hard as factoring N [35, 42], it is conceivable to instantiate a DL-based key agreement protocol (like UM, HMQV, etc.) with that group. This would result in \({\mathbf {PK}}=QR_N\), and \(\mathsf {pkregister}\) and \(\mathsf {npkregister}\) queries would have to perform membership tests for this set. However, the latter is assumed to be a hard problem, by the quadratic residuosity assumption [26].

References

  1. Adams, C., Farrell, S., Kause, T., Mononen, T.: Internet X.509 Public Key Infrastructure Certificate Management Protocol (CMP). RFC 4210 (Proposed Standard). http://www.ietf.org/rfc/rfc4210.txt, updated by RFC 6712 (2005)

  2. Barker, E., Barker, W., Burr, W., Polk, W., Smid, M.: Recommendation for key management—part 1: general. NIST Special Publication. http://csrc.nist.gov/publications/nistpubs/800-57/sp800-57-Part1-revised2_Mar08-2007.pdf (2007)

  3. Bellare, M., Neven, G.: Multi-signatures in the plain public-key model and a general forking lemma. In: Juels, A., Wright, R.N., Vimercati, S. (eds.) ACM CCS 06, pp. 390–399. ACM Press, Alexandria (2006)

  4. Bellare, M., Pointcheval, D., Rogaway, P.: Authenticated key exchange secure against dictionary attacks. In: Preneel, B. (ed.) EUROCRYPT 2000. LNCS, vol. 1807, pp. 139–155. Springer, Heidelberg (2000)

  5. Bellare, M., Rogaway, P.: Entity authentication and key distribution. In: Stinson, D.R. (ed.) CRYPTO’93. LNCS, vol. 773, pp. 232–249. Springer, Heidelberg (1994)

  6. Bellare, M., Rogaway, P.: Provably secure session key distribution: the three party case. In: 27th ACM STOC, pp. 57–66. ACM Press, Las Vegas (1995)

  7. Blake-Wilson, S., Johnson, D., Menezes, A.: Key agreement protocols and their security analysis. In: Darnell, M. (ed.) 6th IMA International Conference on Cryptography and Coding. LNCS, vol. 1355, pp. 30–45. Springer, Heidelberg (1997)

  8. Blake-Wilson, S., Menezes, A.: Entity authentication and authenticated key transport protocols employing asymmetric techniques. In: Christianson, B., Crispo, B., Lomas, T.M.A., Roe, M. (eds.) Proceedings of the 5th International Workshop on Security Protocols, Paris, France, April 7–9, 1997. LNCS, vol. 1361, pp. 137–158. Springer (1998)

  9. Blake-Wilson, S., Menezes, A.: Unknown key-share attacks on the station-to-station (STS) protocol. In: Imai, H., Zheng, Y. (eds.) PKC’99. LNCS, vol. 1560, pp. 154–170. Springer, Heidelberg (1999)

  10. Boldyreva, A., Fischlin, M., Palacio, A., Warinschi, B.: A closer look at PKI: security and efficiency. In: Okamoto, T., Wang, X. (eds.) PKC 2007. LNCS, vol. 4450, pp. 458–475. Springer, Heidelberg (2007)

  11. Boyd, C., Cremers, C., Feltz, M., Paterson, K.G., Poettering, B., Stebila, D.: ASICS: Authenticated key exchange security incorporating certification systems. In: Crampton, J., Jajodia, S., Mayes, K. (eds.) ESORICS 2013. LNCS, vol. 8134, pp. 381–399. Springer, Heidelberg (2013)

  12. CA/Browser Forum: Baseline requirements for the issuance and management of publicly-trusted certificates, v1.1.6. https://cabforum.org/wp-content/uploads/Baseline_Requirements_V1_1_6.pdf (2013)

  13. CA/Browser Forum: Guidelines for the issuance and management of extended validation certificates, v1.4.3. https://cabforum.org/wp-content/uploads/Guidelines_v1_4_3.pdf (2013)

  14. Canetti, R., Krawczyk, H.: Analysis of key-exchange protocols and their use for building secure channels. In: Pfitzmann, B. (ed.) EUROCRYPT 2001. LNCS, vol. 2045, pp. 453–474. Springer, Heidelberg, Germany (2001)

  15. Cash, D., Kiltz, E., Shoup, V.: The twin Diffie–Hellman problem and applications. In: Smart, N.P. (ed.) EUROCRYPT 2008. LNCS, vol. 4965, pp. 127–145. Springer, Heidelberg (2008)

  16. Chatterjee, S., Menezes, A., Ustaoglu, B.: Combined security analysis of the one- and three-pass unified model key agreement protocols. In: Gong, G., Gupta, K.C. (eds.) INDOCRYPT 2010. LNCS, vol. 6498, pp. 49–68. Springer, Heidelberg (2010)

  17. Choo, K.K.R., Boyd, C., Hitchcock, Y.: Examining indistinguishability-based proof models for key establishment protocols. In: Roy, B.K. (ed.) ASIACRYPT 2005. LNCS, vol. 3788, pp. 585–604. Springer, Heidelberg (2005)

  18. Cremers, C.: Examining indistinguishability-based security models for key exchange protocols: the case of CK, CK-HMQV, and eCK. In: Cheung, B.S.N., Hui, L.C.K., Sandhu, R.S., Wong, D.S. (eds.) ASIACCS 11, pp. 80–91. ACM Press, Hong Kong, China (2011)

  19. Cremers, C.J.F., Feltz, M.: Beyond eCK: perfect forward secrecy under actor compromise and ephemeral-key reveal. In: Foresti, S., Yung, M., Martinelli, F. (eds.) ESORICS 2012. LNCS, vol. 7459, pp. 734–751. Springer, Heidelberg (2012)

  20. Cremers, C.J.F., Feltz, M.: Beyond eCK: perfect forward secrecy under actor compromise and ephemeral-key reveal. Des. Codes Cryptogr. 74(1), 183–218 (2015)

    Article  MathSciNet  MATH  Google Scholar 

  21. Ducklin, P.: The TURKTRUST SSL certificate fiasco—what really happened, and what happens next?http://nakedsecurity.sophos.com/2013/01/08/the-turktrust-ssl-certificate-fiasco-what-happened-and-what-happens-next/ (2013)

  22. Farshim, P., Warinschi, B.: Certified encryption revisited. In: Preneel, B. (ed.) AFRICACRYPT 09. LNCS, vol. 5580, pp. 179–197. Springer, Heidelberg (2009)

  23. FOX IT: Black Tulip: Report of the investigation into the DigiNotar Certificate Authority breach. http://www.rijksoverheid.nl/bestanden/documenten-en-publicaties/rapporten/2012/08/13/black-tulip-update/black-tulip-update.pdf (2012)

  24. Freire, E.S.V., Hofheinz, D., Kiltz, E., Paterson, K.G.: Non-interactive key exchange. In: Kurosawa, K., Hanaoka, G. (eds.) PKC 2013. LNCS, vol. 7778, pp. 254–271. Springer, Heidelberg (2013)

  25. Goldberg, I., Stebila, D., Ustaoglu, B.: Anonymity and one-way authentication in key exchange protocols. Des. Codes Cryptogr. 67(2), 245–269 (2013)

    Article  MathSciNet  MATH  Google Scholar 

  26. Goldwasser, S., Micali, S.: Probabilistic encryption. J. Comput. Syst. Sci. 28(2), 270–299 (1984)

    Article  MathSciNet  MATH  Google Scholar 

  27. Jeong, I.R., Katz, J., Lee, D.H.: One-round protocols for two-party authenticated key exchange. In: Jakobsson, M., Yung, M., Zhou, J. (eds.) ACNS 04. LNCS, vol. 3089, pp. 220–232. Springer, Heidelberg (2004)

  28. Kaliski, B.S.: An unknown key-share attack on the MQV key agreement protocol. ACM Trans. Inf. Syst. Secur. 4, 275–288 (2001)

    Article  Google Scholar 

  29. Krawczyk, H.: HMQV: A high-performance secure Diffie–Hellman protocol. Cryptology ePrint Archive, Report 2005/176. http://eprint.iacr.org/2005/176 (2005)

  30. Krawczyk, H.: HMQV: A high-performance secure Diffie–Hellman protocol. In: Shoup, V. (ed.) CRYPTO 2005. LNCS, vol. 3621, pp. 546–566. Springer, Heidelberg (2005)

  31. Kudla, C., Paterson, K.G.: Modular security proofs for key agreement protocols. In: Roy, B.K. (ed.) ASIACRYPT 2005. LNCS, vol. 3788, pp. 549–565. Springer, Heidelberg (2005)

  32. LaMacchia, B.A., Lauter, K., Mityagin, A.: Stronger security of authenticated key exchange. In: Susilo, W., Liu, J.K., Mu, Y. (eds.) ProvSec 2007. LNCS, vol. 4784, pp. 1–16. Springer, Heidelberg (2007)

  33. Lauter, K., Mityagin, A.: Security analysis of KEA authenticated key exchange protocol. In: Yung, M., Dodis, Y., Kiayias, A., Malkin, T. (eds.) PKC 2006. LNCS, vol. 3958, pp. 378–394. Springer, Heidelberg (2006)

  34. Lim, C.H., Lee, P.J.: A key recovery attack on discrete log-based schemes using a prime order subgroup. In: Kaliski Jr., B.S. (ed.) CRYPTO’97. LNCS, vol. 1294, pp. 249–263. Springer, Heidelberg (1997)

  35. McCurley, K.S.: A key distribution system equivalent to factoring. J Cryptol 1(2), 95–105 (1988)

    Article  MathSciNet  MATH  Google Scholar 

  36. Menezes, A.: Another look at HMQV. Cryptology ePrint Archive, Report 2005/205. http://eprint.iacr.org/2005/205 (2005)

  37. Menezes, A., Ustaoglu, B.: On the importance of public-key validation in the MQV and HMQV key agreement protocols. In: Barua, R., Lange, T. (eds.) INDOCRYPT 2006. LNCS, vol. 4329, pp. 133–147. Springer, Heidelberg (2006)

  38. Menezes, A., Ustaoglu, B.: Security arguments for the UM key agreement protocol in the NIST SP 800–56A standard. In: Abe, M., Gligor, V. (eds.) ASIACCS 08. pp. 261–270. ACM Press, Tokyo, Japan (2008)

  39. Pointcheval, D., Stern, J.: Security arguments for digital signatures and blind signatures. J Cryptol 13(3), 361–396 (2000)

    Article  MATH  Google Scholar 

  40. Ristenpart, T., Yilek, S.: The power of proofs-of-possession: securing multiparty signatures against rogue-key attacks. In: Naor, M. (ed.) EUROCRYPT 2007. LNCS, vol. 4515, pp. 228–245. Springer, Heidelberg (2007)

  41. Schaad, J.: Internet X.509 Public Key Infrastructure Certificate Request Message Format (CRMF). RFC 4211 (Proposed Standard). http://www.ietf.org/rfc/rfc4211.txt (2005)

  42. Shmuely, Z.: Composite Diffie–Hellman public-key generating systems are hard to break. Technical Report No. 356, Computer Science Department, Technion-Israel Institute of Technology (1985)

  43. Shoup, V.: On formal methods for secure key exchange (version 4) (November 1999), revision of IBM Research Report RZ 3120. http://www.shoup.net/papers/skey.pdf (1999)

  44. Turner, S.: The application/pkcs10 Media Type. RFC 5967 (Informational). http://www.ietf.org/rfc/rfc5967.txt (2010)

  45. Turner, P., Polk, W., Barker, E.: ITL Bulletin for July 2012: preparing for and responding to certification authority compromise and fraudulent certificate issuance. http://csrc.nist.gov/publications/nistbul/july-2012_itl-bulletin.pdf (2012)

  46. Ustaoglu, B.: Obtaining a secure and efficient key agreement protocol from (H)MQV and NAXOS. Des. Codes Cryptogr. 46(3), 329–342 (2008)

    Article  MathSciNet  MATH  Google Scholar 

  47. Ustaoglu, B.: Comparing sessionstatereveal and ephemeralkeyreveal for Diffie–Hellman protocols. In: Pieprzyk, J., Zhang, F. (eds.) ProvSec 2009. LNCS, vol. 5848, pp. 183–197. Springer, Heidelberg (2009)

Download references

Acknowledgments

C. B. and D. S. were supported by Australian Research Council (ARC) Discovery Project DP130104304. C. C. was supported by ETH Research Grant ETH-30 09-3. K. G. P. and B. P. were supported by a EPSRC Leadership Fellowship EP/H005455/1. This work was partly done while M. F. was at ETH Zurich, supported by ETH Research Grant ETH-30 09-3.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Bertram Poettering.

Appendices

Appendix 1: Proofs of Theorems 1 and 2

Proof of Theorem 1

The proof structure is similar to the proof of Theorem 2 in [31]. We denote by \(\varLambda \) the session key space associated with protocol \(\varPi \). Since the \({\mathsf {cNR}{ {\text {-}}}{X}}\) security of protocol \(\pi \) is probabilistic polynomial-time reducible to the hardness of the computational problem of some relation \(\phi \), there exists an algorithm A that on input of a problem instance of the computational problem of \(\phi \) and interacting with an adversary E which has non-negligible probability \(\eta \) of winning the \({\mathsf {cNR}{ {\text {-}}}{X}}\) game for \(\pi \) in time \(\tau \) is able to solve the computational problem of \(\phi \) with non-negligible probability \(h(\eta )\) and in time \(v(\tau )\), for some polynomial functions h and v.

By assumption, the session string decisional problem in the \({\mathsf {ASICS}_{Y}}\) experiment for \(\varPi \) is polynomial-time reducible to the decisional problem of \(\phi \). Hence, there is an algorithm W which solves the session string decisional problem for \(\varPi \) in polynomial-time \(\tau ''\) given access to a decisional oracle for \(\phi \).

Let D be an adversary winning the \({\mathsf {ASICS}_{Y}}\) experiment against protocol \(\varPi \) with non-negligible probability \(\eta '\) in time \(\tau '\). Let K denote the event that D does not query H with the session string \(ss^{*}\) of the test session \(s^{*}\). Since \(\varPi \) has strong partnering in the \({\mathsf {ASICS}_{Y}}\) experiment, it holds that, with overwhelming probability, if two sessions compute the same session key, then they must be M-matching. Thus, if event K occurs, then D can only win the experiment with negligible probability \(u(k)+1/|\varLambda |\), where u(k) denotes the probability that D issues a \(\mathsf {session{{ {\text {-}}}}key}\) query to a session s that is not M-matching \(s^{*}\) and \(s_{\mathrm {key}}=s^{*}_{\mathrm {key}}\).

We next define an algorithm B which solves the gap problem of \(\phi \) with non-negligible probability \(h'(\eta ')\) and in time \(v'(\tau ')\), for some polynomial functions \(h'\) and \(v'\), using adversary D as a subroutine. B will also run algorithm A on the problem instance of the computational problem of \(\phi \), and an algorithm L that decides, in polynomial-time \(\tau '''\), whether an arbitrary bitstring \(\mathsf {pk}\) submitted for certification is an element of G. We now define B’s responses to D’s queries for the pre-specified peer setting; the post-specified peer case proceeds similarly. Algorithm B maintains sets of certificates \({\mathcal {C}_h}\) and \({\mathcal {C}_{\mathsf {pk}}}\) as well as lists H-List and G-List, all of which are initially empty.

  1. 1.

    \(q\in Q\cap \{\mathsf {kgen},\mathsf {randomness},\mathsf {corrupt}\}\): B forwards the query to A and passes A’s response back to D.

  2. 2.

    \(\mathsf {hregister}(\mathsf {pk},{\hat{P}})\): B forwards the query to A and passes A’s response back to D. In case A returns a certificate CB adds C to the set \({\mathcal {C}_h}\), i.e., \({\mathcal {C}_h}\leftarrow {\mathcal {C}_h}\cup \{C\}\).

  3. 3.

    \(\mathsf {pkregister}(\mathsf {pk},{\hat{P}})\): B checks whether \(\mathsf {pk}\in G\) using algorithm L and whether \({\mathsf {VP}}\) outputs 1 on input \(\mathsf {pk}\) and \({\hat{P}}\). If all the checks succeed, then B adds a certificate C to the set \({\mathcal {C}_{\mathsf {pk}}}\), i.e., \({\mathcal {C}_{\mathsf {pk}}}\leftarrow {\mathcal {C}_{\mathsf {pk}}}\cup \{C\}\), and returns C. Else, B returns \(\bot \).

  4. 4.

    \(\mathsf {create}\left( s=\left( C,i\right) ,r,C'\right) \): B checks whether \(C\in {\mathcal {C}_h}\), a session s with counter i has not yet been created, \(r\in \{{\mathcal {I}},{\mathcal {R}}\}\), and \(C'\in {\mathcal {C}_h}\cup {\mathcal {C}_{\mathsf {pk}}}\). If one of the checks fails, then B returns \(\bot \). Else if \(C'\in {\mathcal {C}_{\mathsf {pk}}}\), then B answers D’s query by simulating the protocol execution itself. Else, B forwards the query to A and passes A’s response (if any) to D.

  5. 5.

    \(\mathsf {send}\left( s,M\right) \): If session s does not exist or if \(s_{\mathrm {status}}\ne {\mathtt {active}}\), then B returns \(\bot \). Else if \(s_{\mathrm {pcert}}\in {\mathcal {C}_{\mathsf {pk}}}\), then B responds to the query by simulating the protocol execution itself. Else B forwards the query to A and passes A’s response (if any) to D.

  6. 6.

    H query: To answer D’s queries to the random oracle for HB stores entries of the form \((x_{i},\lambda _{i})\) with \(\lambda _{i}\in \varLambda \) in the H-List. When D makes a query x to the random oracle for HB determines the return value for D as follows:

    • If there exists an entry \((x_{i},\lambda _{i})\) in the H-List with \(x_{i}=x\), then return \(\lambda _{i}\).

    • Else if there is an entry \((s_{\mathrm {acert}}.\mathsf {id},{}s_{\mathrm {acert}}.\mathsf {pk},{}s_{\mathrm {pcert}}.\mathsf {id},{} s_{\mathrm {pcert}}.\mathsf {pk}, \, s_{\mathrm {role}},{}s_{\mathrm {sent}},{}s_{\mathrm {rcvd}},{}\lambda _{i})\) in the G-List, for some session s that has accepted and \(\lambda _{i}\in \varLambda \), such that x is the session string of session s (i.e., \(x=ss\)) using algorithm W, then store the entry \((x,\lambda _{i})\) in the H-List and return \(\lambda _{i}\).

    • Else, B chooses \(\lambda \in _{R}\varLambda \), stores the entry \((x,\lambda )\) in the H-List and return \(\lambda \).

  7. 7.

    \(\mathsf {session{{ {\text {-}}}}key}(s):\) To answer D’s \(\mathsf {session{{ {\text {-}}}}key}\) queries, B stores entries of the form \((s_{\mathrm {acert}}.\mathsf {id},{}s_{\mathrm {acert}}.\mathsf {pk},{}s_{\mathrm {pcert}}.\mathsf {id},{} s_{\mathrm {pcert}}.\mathsf {pk},{}s_{\mathrm {role}},{}s_{\mathrm {sent}},{}s_{\mathrm {rcvd}},{}\lambda _{i})\) with \(\lambda _{i}\in \varLambda \) in the G-List. When D makes a \(\mathsf {session{{ {\text {-}}}}key}(s)\) query to an initiator session s that has accepted, B determines the return value for D as follows:

    • If there exists an entry \((s_{\mathrm {acert}}.\mathsf {id},{}s_{\mathrm {acert}}.\mathsf {pk},{}s_{\mathrm {pcert}}.\mathsf {id},{} s_{\mathrm {pcert}}.\mathsf {pk},{}{\mathcal {I}}, \, s_{\mathrm {sent}},{},{}s_{\mathrm {rcvd}},{}\lambda _{i})\) in the G-List, for some \(\lambda _{i}\in \varLambda \), then return \(\lambda _{i}\).

    • Else if there is an entry \((s_{\mathrm {pcert}}.\mathsf {id},{}s_{\mathrm {pcert}}.\mathsf {pk},{}s_{\mathrm {acert}}.\mathsf {id},{} s_{\mathrm {acert}}.\mathsf {pk},{}{\mathcal {R}}, \, s_{\mathrm {rcvd}},{}s_{\mathrm {sent}},{}\lambda _{i})\) in the G-List, then B stores the entry \((s_{\mathrm {acert}}.\mathsf {id}, \, s_{\mathrm {acert}}.\mathsf {pk},s_{\mathrm {pcert}}.\mathsf {id},{}s_{\mathrm {pcert}}.\mathsf {pk},{\mathcal {I}},s_{\mathrm {sent}},{}s_{\mathrm {rcvd}},\lambda _{i})\) in the G-List and returns \(\lambda _{i}\).

    • Else if there exists an entry of the form \((x_{i},\lambda _{i})\) in the H-List, where \(x_{i}=ss\) using algorithm W, then B stores the entry \((s_{\mathrm {acert}}.\mathsf {id}, s_{\mathrm {acert}}.\mathsf {pk},s_{\mathrm {pcert}}.\mathsf {id},{}s_{\mathrm {pcert}}.\mathsf {pk},{\mathcal {I}},s_{\mathrm {sent}},{}s_{\mathrm {rcvd}},\lambda _{i})\) in the G-List and returns \(\lambda _{i}\).

    • Else, B chooses \(\lambda \in _{R} \varLambda \), stores the entry \((s_{\mathrm {acert}}.\mathsf {id},{} s_{\mathrm {acert}}.\mathsf {pk}, \, s_{\mathrm {pcert}}.\mathsf {id},s_{\mathrm {pcert}}.\mathsf {pk},{\mathcal {I}},s_{\mathrm {sent}}, s_{\mathrm {rcvd}},\lambda )\) in the G-List, and returns \(\lambda \).

    A \(\mathsf {session{{ {\text {-}}}}key}\) query to a responder session that has accepted is answered similarly.

  8. 8.

    \(\mathsf {test{{ {\text {-}}}}session}(s^{*})\): B selects \(\mu \in _{R}\varLambda \) and returns \(\mu \) to D.

  9. 9.

    D outputs a guess: B aborts with failure.

B can detect the complementary event \(K^{c}\) by checking which of the entries \((x_{i},\lambda _{i})\) in the H-List has \(x_{i}=ss^{*}\) using algorithm W. B then passes \(x_{i}\) to A. Since the test session \(s^{*}\) must be fresh, no \(\mathsf {pkregister}(s^{*}_{\mathrm {pcert}}.\mathsf {pk},s^{*}_{\mathrm {pcert}}.\mathsf {id})\) occurred in the \({\mathsf {ASICS}_{Y}}\) experiment and hence the certificate \(s^{*}_{\mathrm {pcert}}\) has been output through an \(\mathsf {hregister}(s^{*}_{\mathrm {pcert}}.\mathsf {pk},{}s^{*}_{\mathrm {pcert}}.\mathsf {id})\) query. A solves the computational problem of \(\phi \) with non-negligible probability \(h(\eta )\), where \(\eta =\eta '(1-u(k)-1/|\varLambda |)\). B is successful by outputting A’s solution to the instance of the computational problem of \(\phi \) and solves the gap problem of \(\phi \) with non-negligible probability \(h(\eta )\) and in time \(v(\tau )\), where \(\tau =\tau '+\tau ''n_{H}(n_{\mathsf {session{{ {\text {-}}}}key}}+1)+\tau '''n_{\mathsf {pkregister}}\) with \(n_{H},n_\mathsf {session{{ {\text {-}}}}key}\) and \(n_{\mathsf {pkregister}}\) denoting the number of \(H,\mathsf {session{{ {\text {-}}}}key}\) and \(\mathsf {pkregister}\) queries issued by D, respectively. \(\square \)

Remark 11

We cannot show that Theorem 1 holds for more complex protocols \(\varPi \) such as UM or HMQV-C in arbitrary ASICS base models as the simulation of non-test sessions s of \(\varPi \) with \(s_{\mathrm {pcert}}\) being the result of a \(\mathsf {pkregister}\) query cannot be performed in the appropriate way without the knowledge of long-term secret keys and without violating the freshness condition.

Proof of Theorem 2

Let \(\varPi \) be an ASICS protocol secure in model X. It is straightforward to verify the first condition of Definition 6, that is, that M-matching sessions of protocol \(f(\varPi )\) compute the same session key. This follows from the fact that M-matching sessions of protocol \(\varPi \) compute the same key as protocol \(\varPi \) is secure in ASICS model X. We next verify that the second condition of Definition 6 holds.

Claim If there is a PPT adversary E succeeding in the \({\mathsf {ASICS}_{Y}}\) experiment against protocol \(f(\varPi )\) with non-negligible advantage in time \(\tau '\), then we can construct a PPT adversary \(E'\) succeeding in the \({\mathsf {ASICS}_{X}}\) experiment against protocol \(\varPi \) with non-negligible advantage in time \(v(\tau )\) (for some polynomial function v) using adversary E as a subroutine. Let L be an algorithm that decides, in polynomial-time \(\tau ''\), whether an arbitrary bitstring \(\mathsf {pk}\) submitted for certification is an element of G.

Proof. Fix a PPT adversary E succeeding in the \({\mathsf {ASICS}_{Y}}\) experiment against protocol \(f(\varPi )\) with non-negligible advantage. We define an algorithm \(E'\) which succeeds in the \({\mathsf {ASICS}_{X}}\) experiment against protocol \(\varPi \) with non-negligible advantage using E as a subroutine. Algorithm \(E'\) maintains sets of certificates \({\mathcal {C}_h},{\mathcal {C}_{\mathsf {pk}}}\) and \({\mathcal {C}_{\mathsf {npk}}}\), all of which are initially empty, and answers E’s queries in the pre-specified peer setting as follows.

  1. 1.

    \(q\in Q\cap \{\mathsf {kgen},\mathsf {randomness},\mathsf {corrupt},\mathsf {session{{ {\text {-}}}}key}\}\): \(E'\) issues the same query and returns the answer to E.

  2. 2.

    \(\mathsf {hregister}(\mathsf {pk},{\hat{P}})\): When E issues an \(\mathsf {hregister}(\mathsf {pk},{\hat{P}})\) query, \(E'\) issues the same query and returns the answer to E. In case a certificate C is returned, \(E'\) adds C to the set \({\mathcal {C}_h}\), i.e., \({\mathcal {C}_h}\leftarrow {\mathcal {C}_h}\cup \{C\}\).

  3. 3.

    \(\mathsf {pkregister}(\mathsf {pk},{\hat{P}})\): When E issues a \(\mathsf {pkregister}(\mathsf {pk},{\hat{P}})\) query, \(E'\) issues the same query and returns the answer to E. In case a certificate C is returned, \(E'\) adds C to the set \({\mathcal {C}_{\mathsf {pk}}}\), i.e., \({\mathcal {C}_{\mathsf {pk}}}\leftarrow {\mathcal {C}_{\mathsf {pk}}}\cup \{C\}\).

  4. 4.

    \(\mathsf {npkregister}(\mathsf {pk},{\hat{P}})\): \(E'\) checks whether \(\mathsf {pk}\notin G\) (using algorithm L) and \({\mathsf {VP}}\) outputs 1 on input \(\mathsf {pk}\) and \({\hat{P}}\). If the checks succeed (i.e., \(\mathsf {pk}\notin G\) and \({\mathsf {VP}}(\mathsf {pk},{\hat{P}})=1\)), then \(E'\) returns a certificate C to E and adds C to the set \({\mathcal {C}_{\mathsf {npk}}}\), i.e., \({\mathcal {C}_{\mathsf {npk}}}\leftarrow {\mathcal {C}_{\mathsf {npk}}}\cup \{C\}\). Otherwise, \(E'\) returns \(\bot \).

  5. 5.

    \(\mathsf {create}\left( s=\left( C,i\right) ,r,C'\right) \): \(E'\) checks whether \(C\in {\mathcal {C}_h}\), a session s with counter i has not yet been created, \(r\in \{{\mathcal {I}},{\mathcal {R}}\}\), and \(C'\in {\mathcal {C}_h}\cup {\mathcal {C}_{\mathsf {pk}}}\cup {\mathcal {C}_{\mathsf {npk}}}\). If one of the checks fails, then \(E'\) returns \(\bot \). Else if \(C'\in {\mathcal {C}_h}\cup {\mathcal {C}_{\mathsf {pk}}}\), then \(E'\) issues the same query and returns the answer (if any) to E. Else, \(E'\) rejects the session creation and sets \(s_{\mathrm {status}}\) to \({\mathtt {rejected}}\).

  6. 6.

    \(\mathsf {send}\left( s,M\right) \): If session s does not exist or if \(s_{\mathrm {status}}\ne {\mathtt {active}}\), then \(E'\) returns \(\bot \). Else \(E'\) issues the same query and returns the response (if any) to E.

  7. 7.

    \(\mathsf {test{{ {\text {-}}}}session}(s)\): When E issues a \(\mathsf {test{{ {\text {-}}}}session}(s)\) query to a session s that has accepted, \(E'\) issues the same \(\mathsf {test{{ {\text {-}}}}session}\) query and returns the answer to E.

  8. 8.

    At the end of E’s execution, that is, after it has output its guess \(b', E'\) outputs \(b'\) as well.

It follows that \( {\mathrm {Adv}}^{{\mathsf {ASICS}_{Y}}}_{f(\varPi ), E}(k)\le {\mathrm {Adv}}^{{\mathsf {ASICS}_{X}}}_{\varPi , E'}(k), \) and adversary \(E'\) runs in time \(v(\tau )\) with \(\tau =\tau '+\tau ''n_{\mathsf {npkregister}}\), for some polynomial function v, where \(n_{\mathsf {npkregister}}\) denotes the number of \(\mathsf {npkregister}\) queries made by E. Since \(\varPi \) is secure in ASICS model \(X, {\mathrm {Adv}}^{{\mathsf {ASICS}_{Y}}}_{f(\varPi ), E}(k)\) is bounded above by a negligible function in the security parameter k. \(\square \)

Appendix 2: Analysis of CMQV

Let \(\mathsf {eCK}'=(\mathsf {M}2,Q',F')\) be the ASICS model where \(Q'=Q\cup \{\mathsf {pkregister}\}\) and \(F'\) is defined as F with the additional requirement that no \(\mathsf {pkregister}(s_{{\mathrm {pcert}}}.\mathsf {pk},s_{{\mathrm {pcert}}}.\mathsf {id})\) query has been issued.

Lemma 1

Let \(\mathsf {eCK}\) and \(\mathsf {eCK}'\) be as above. CMQV has strong partnering in the \({\mathsf {ASICS}_{\mathsf {eCK}'}}\) experiment under the assumption that H is a random oracle.

Proof

Suppose otherwise. Namely, suppose there exists two sessions s and \(s'\) of CMQV that hold the same session key but are not \(\mathsf {M}2\)-matching. Since the session key in CMQV is derived by applying a random oracle, except with negligible probability, the input to the random oracle in both sessions must be the same. Since they are not \(\mathsf {M}2\) matching, either \(s_{{\mathrm {acert}}}.\mathsf {id}\ne s'_{{\mathrm {pcert}}}.\mathsf {id}\), or \(s_{{\mathrm {acert}}}.\mathsf {pk}\ne s'_{{\mathrm {pcert}}}.\mathsf {pk}\), or \(s_{{\mathrm {pcert}}}.\mathsf {id}\ne s'_{{\mathrm {acert}}}.\mathsf {id}\), or \(s_{{\mathrm {pcert}}}.\mathsf {pk}\ne s'_{{\mathrm {acert}}}.pk\), or \(s_{{\mathrm {sent}}} \ne s'_{{\mathrm {rcvd}}}\), or \(s_{{\mathrm {rcvd}}} \ne s'_{{\mathrm {sent}}}\), or \(s_{{\mathrm {role}}} = s'_{{\mathrm {role}}}\).

First suppose \(s_{{\mathrm {role}}} \ne s'_{{\mathrm {role}}}\). Then, either the public keys, identifiers, or transcripts of the two sessions do not correspond. But these are all inputs to the random oracle, so except with negligible probability the outputs of the random oracle will be different, contradicting that the two sessions hold the same session key.

Now suppose \(s_{{\mathrm {role}}} = s'_{{\mathrm {role}}}\). Except with negligible probability, two distinct honest sessions will have \(s_{{\mathrm {rand}}} \ne s'_{{\mathrm {rand}}}\), and hence \(s_{{\mathrm {sent}}} \ne s'_{{\mathrm {sent}}}\). But since both s and \(s'\) think of themselves as the initiator, they will each put their own sent ephemeral public key in the second component of the call to H, and these values are different, so except with negligible probability the outputs of the random oracle will be different, contradicting that the two sessions hold the same key. \(\square \)

Let (Ggq) be as in Definition 10. Let \(\phi \subseteq (G \times G) \times G\) be the Diffie–Hellman relation on \(G = \langle g \rangle \). In particular, \((g^{a}, g^{b})\) is related under \(\phi \) to \(g^{c}\) if and only if \(ab \equiv c \mod q\).

Lemma 2

The \({\mathsf {cNR}{ {\text {-}}}{\mathsf {eCK}}}\) security of the variant of CMQV in which the session string is output as the session key is polynomial-time reducible to the computational problem of the Diffie–Hellman relation \(\phi \), under the assumption that \({\mathcal {H}}_{1}\) and \({\mathcal {H}}_{2}\) are random oracles.

The basic idea of the proof is as follows.

  • If the adversary happens to figure out a long-term secret key without issuing a \(\mathsf {corrupt}\) query (event E), it must ask that value to a random oracle \({\mathcal {H}}_{1}\), and we can immediately use that value to solve the CDH problem by having embedded one of the CDH challenge values in that public key.

  • If the adversary is passive in the test session (event \(\overline{E} \wedge M\)), we can embed the CDH challenge values UV as the ephemeral public keys X and Y of the test session. The adversary’s view can be simulated perfectly unless the adversary asks either \((\tilde{x},a)\) or \((\tilde{y},b)\) as a query for \({\mathcal {H}}_1\). But the freshness condition prevents the adversary from finding both elements of either pair. Therefore, the adversary cannot do better than guess the session string unless it can compute \(\sigma \). Here, the CDH of U and V can be extracted from \(\sigma \).

  • If the adversary is active in the test session (event \(\overline{E} \wedge \overline{M}\)), we can embed the CDH challenge values in the long-term key of the partner of the test session and the ephemeral public key of the session. As before the simulation is perfect unless the adversary asks \((\tilde{x},a)\) as a query for \({\mathcal {H}}_1\). Note that, since the adversary is active, the adversary cannot change or corrupt the secret long-term key of the peer. This time the value of \(\sigma \) is similar to a signature forgery and we can apply the Forking Lemma [3, 39] to extract the CDH of U and V.

Proof

Recall that \({\mathsf {cNR}{ {\text {-}}}{\mathsf {eCK}}}\) security means security in an ASICS model that omits the \(\mathsf {session{{ {\text {-}}}}key}\) query, so the allowed queries are \({\mathcal {Q}_N}\cup \{\mathsf {corrupt}, \mathsf {randomness}\}\). The freshness condition remains unchanged.

Recall further that the goal of the adversary is to recovery the session string; let S be the event that an algorithm \({\mathcal {M}}\) computes the session string. The security proof largely follows the original proof of Ustaoglu that CMQV is eCK-secure, but can be simplified somewhat as the queries in the \({\mathsf {cNR}{ {\text {-}}}{\mathsf {eCK}}}\) game are restricted compared to full eCK security.

Consider the following two complementary events:

  • E. There exists a certificate \(C'\) (created using \(\mathsf {hregister}\)) such that \({\mathcal {M}}\), during its execution, queries \({\mathcal {H}}_{1}(*, b)\) (where \(C'.\mathsf {pk}= g^{b}\)) before issuing any \(\mathsf {corrupt}(C'.\mathsf {pk})\) query (if it issues one at all).

  • \(\overline{E}\). During its execution, for every certificate \(C'\) (created using \(\mathsf {hregister}\)) for which \({\mathcal {M}}\) queries \({\mathcal {H}}_{1}(*, b)\) (where \(C'.\mathsf {pk}=g^{b}\)), it issued a \(\mathsf {corrupt}(C'.\mathsf {pk})\) query before the \({\mathcal {H}}_{1}(*, b)\) query.

Since the events are complementary, if \({\mathcal {M}}\) succeeds in computing the session string, it succeeded either when E occurred or when \(\overline{E}\) occurred.

We will see how, when each event occurs, the required polynomial-time reduction exists.

Event E Suppose event E occurs and \({\mathcal {M}}\) succeeds in computing the session string.

Here, the simulator \({\mathcal {S}}\) guesses one public key \(\mathsf {pk}^{*}\) at random and assigns \(\mathsf {pk}^{*} \leftarrow V\), where (UV) is the Diffie–Hellman challenge. All other public keys are generated according to the protocol specification.

For all sessions and queries where the session actor is not using \(\mathsf {pk}^{*}, {\mathcal {S}}\) follows the protocol specification exactly.

For sessions where the session actor is using \(\mathsf {pk}^{*}, {\mathcal {S}}\) responds to queries as follows:

  • \(\mathsf {hregister}(\mathsf {pk}^{*}, {\hat{P}})\): \({\mathcal {S}}\) outputs a certificate as normal.

  • \(\mathsf {corrupt}(\mathsf {pk}^{*})\): \({\mathcal {S}}\) aborts.

  • \(\mathsf {randomness}(s=(C, i))\) where \(C.\mathsf {pk}= \mathsf {pk}^{*}\): Return \(s_{{\mathrm {rand}}}\).

For sessions where the session actor is using \(\mathsf {pk}^{*}\) and is the initiator, \({\mathcal {S}}\) responds to queries as follows:

  • \(\mathsf {create}(s=(C, i), {\mathcal {I}}, C')\) where \(C.\mathsf {pk}= \mathsf {pk}^{*}\): \({\mathcal {S}}\) selects \(x \in _R\mathbb {Z}_{q}\), computes \(X \leftarrow g^{x}\), and responds with X. Note that \(s_{{\mathrm {rand}}}\) is not used in the calculation.

  • \(\mathsf {send}(s=(C, i), M)\) where \(s_{{\mathrm {acert}}}.\mathsf {pk}= \mathsf {pk}^{*}\) and \(s_{{\mathrm {role}}} = {\mathcal {I}}\): \({\mathcal {S}}\) does not need to simulate anything here, since there is not outgoing message required, and since the only variable updated is the session string ss but no \(\mathsf {session{{ {\text {-}}}}key}\) reveal query is allowed.

For sessions where the session actor is using \(\mathsf {pk}^{*}\) and is the responder, \({\mathcal {S}}\) responds to queries as follows:

  • \(\mathsf {create}(s=(C, i), {\mathcal {R}}, C')\) where \(C.\mathsf {pk}= \mathsf {pk}^{*}\): no response required.

  • \(\mathsf {send}(s=(C, i), M)\) where \(s_{{\mathrm {acert}}}.\mathsf {pk}= \mathsf {pk}^{*}\) and \(s_{{\mathrm {role}}} = {\mathcal {R}}\): \({\mathcal {S}}\) selects \(y \in _R\mathbb {Z}_{q}\), computes \(Y \leftarrow g^{y}\), and responds with Y. Note that \(s_{{\mathrm {rand}}}\) is not used in the calculation.

\({\mathcal {S}}\) responds to \({\mathcal {H}}_{2}\) queries as normal. \({\mathcal {S}}\) responds to \({\mathcal {H}}_{1}(*, b)\) queries as normal for all b such that \(g^{b} \ne \mathsf {pk}^{*}\). When \({\mathcal {M}}\) queries \({\mathcal {H}}_{1}(*, b)\) where \(g^{b} = \mathsf {pk}^{*}=V, {\mathcal {S}}\) outputs the solution to the Diffie–Hellman challenge (UV) as \(U^{b}\).

Note that \({\mathcal {S}}\)’s simulation is perfect up until an abort event from the \(\mathsf {corrupt}\) query occurs. Given that event E occurs, there exists some public key \(\mathsf {pk}=g^{b}\) for which the query \({\mathcal {H}}_{1}(*, b)\) occurs before any \(\mathsf {corrupt}(\mathsf {pk})\) query occurs. With probability at least \(1/n_{\mathsf {kgen}}\), where \(n_{\mathsf {kgen}}\) is the number of \(\mathsf {kgen}\) queries made by \({\mathcal {M}}, {\mathcal {S}}\) this condition holds for \(\mathsf {pk}^{*}\). When \({\mathcal {S}}\) guesses correctly, \({\mathcal {M}}\) will indeed query \({\mathcal {H}}_{1}(*, b)\) before any \(\mathsf {corrupt}(\mathsf {pk}^{*})\) query and thus \({\mathcal {S}}\) will solve the computational Diffie–Hellman problem.

Thus, when event E occurs, there exists a polynomial-time reduction from a \({\mathsf {cNR}{ {\text {-}}}{\mathsf {eCK}}}\) adversary for the session string variant of CMQV to the computational Diffie–Hellman problem under the assumption that \({\mathcal {H}}_{1}\) is a random oracle, with a tightness factor of \(n_{\mathsf {kgen}}\).

Event \(\overline{E}\) We divide this event into two complementary cases:

  • M. The session s for which the adversary output the session string has an \(\mathsf {M}2\)-matching session \(s'\).

  • \(\overline{M}\). The session s for which the adversary output the session string does not have an \(\mathsf {M}2\)-matching session.

When \(\overline{E}\) occurs, either M or \(\overline{M}\) must also occur.

Event \(\overline{E} \wedge M\) Suppose event \(\overline{E}\) occurs and there is an \(\mathsf {M}2\)-matching session \(s'\) for the target session s.

Here, the simulator guesses two sessions s and \(s'\); assume without loss of generality that \(s_{{\mathrm {role}}} = {\mathcal {I}}\) and \(s'_{{\mathrm {role}}} = {\mathcal {R}}\). \({\mathcal {S}}\) responds to all \(\mathsf {kgen}, \mathsf {hregister}, \mathsf {corrupt}\), and \(\mathsf {randomness}\) queries as specified by the protocol. For all sessions other than s and \(s', {\mathcal {S}}\) responds to \(\mathsf {create}\) and \(\mathsf {send}\) as specified by the protocol. For s and \(s', {\mathcal {S}}\) responds to \(\mathsf {create}\) and \(\mathsf {send}\) as follows:

  • \(\mathsf {create}(s = (C, i), {\mathcal {I}}, C')\): Return \(X \leftarrow U\), where (UV) is the Diffie–Hellman challenge. Note that \(s_{{\mathrm {rand}}}\) is not used.

  • \(\mathsf {create}(s' = (C', i), {\mathcal {R}}, C)\): No response required.

  • \(\mathsf {send}(s', M)\): Return \(Y \leftarrow V\), where (UV) is the Diffie–Hellman challenge. Note that \(s'_{{\mathrm {rand}}}\) is not used.

\({\mathcal {S}}\) responds to \({\mathcal {H}}_{2}\) queries as normal. \({\mathcal {S}}\) responds to \({\mathcal {H}}_{1}\) queries as normal except for the queries \((\tilde{x}, a)\) or \((\tilde{y}, b)\), where a and b are the secret keys corresponding to the public keys in sessions s and \(s'\); when this occurs, the simulation aborts.

Note that \({\mathcal {S}}\)’s simulation is perfect unless a \({\mathcal {H}}_{1}(\tilde{x}, a)\) or \({\mathcal {H}}_{1}(\tilde{y}, b)\) query occurs. Because of event \(\overline{E}, {\mathcal {M}}\) issues a \(\mathsf {corrupt}(g^{a})\) query before any \({\mathcal {H}}_{1}(\tilde{x}, a)\) query, and a \(\mathsf {corrupt}(g^{b})\) query before any \({\mathcal {H}}_{1}(\tilde{y}, b)\) query. Since \(\tilde{x}\) and \(\tilde{y}\) are used in only one session and \({\mathcal {H}}_{1}\) is a random function, no information can be learned about \(\tilde{x}\) and \(\tilde{y}\) without \(\mathsf {randomness}(s)\) or \(\mathsf {randomness}(s')\) queries. By the freshness condition, it cannot be that both \(\mathsf {randomness}(s)\) and \(\mathsf {corrupt}(g^{a})\) occurred, or that both \(\mathsf {randomness}(s')\) and \(\mathsf {corrupt}(g^{b})\) occurred. Thus, if \({\mathcal {S}}\) correctly guess s and \(s'\), the simulation is perfect and does not abort. This happens with probability at least \(2/n_{\mathsf {create}}^{2}\).

Assuming the simulation is perfect and does not abort and that \({\mathcal {M}}\) outputs the session string, \({\mathcal {S}}\) can use this to solve the Diffie–Hellman problem. In particular, let \(\sigma \) be the shared secret in the session string output by \({\mathcal {M}}\). Then, \({\mathcal {S}}\) outputs \(\sigma g^{-abed}U^{-be}V^{-ad}\) as the solution to the computational Diffie–Hellman challenge (UV).

Thus, when event \(\overline{E} \wedge M\) occurs, there exists a polynomial-time reduction from a \({\mathsf {cNR}{ {\text {-}}}{\mathsf {eCK}}}\) adversary for the session string variant of CMQV to the computational Diffie–Hellman problem under the assumption that \({\mathcal {H}}_{1}\) is a random oracle, with a tightness factor of \(n_{\mathsf {create}}^{2}\).

Event \(\overline{E} \wedge \overline{M}\) Suppose event \(\overline{E}\) occurs but there is no \(\mathsf {M}2\)-matching session for the target session s.

Here, the simulator guesses integers \(j \in _R\{1, \dots , n_{\mathsf {kgen}}\}\), and a session \(s^{*}\). Assume without loss of generality that \(s^{*}_{{\mathrm {role}}} = {\mathcal {I}}\).

For the jth query to \(\mathsf {kgen}, {\mathcal {S}}\) assigns \(\mathsf {pk}^{*} \leftarrow V\) from the Diffie–Hellman challenge (UV) to be the public key; for all other \(\mathsf {kgen}\) queries, it responds as specified by the protocol.

All \(\mathsf {hregister}\) queries are responded to as normal. All \(\mathsf {corrupt}\) queries are responded to as normal, except for \(\mathsf {corrupt}(\mathsf {pk}^{*})\), in which case \({\mathcal {S}}\) aborts.

Suppose that \({\mathcal {M}}\) selects \(s^{*}\) as the target session and furthermore that \(s^{*}_{{\mathrm {pcert}}}.\mathsf {pk}= V\).

For all sessions and queries where the session actor or peer is not using \(\mathsf {pk}^{*}, {\mathcal {S}}\) follows the protocol specification exactly.

For sessions where the session actor is using \(\mathsf {pk}^{*}, {\mathcal {S}}\) responds as in event E.

For sessions where the session peer is using \(\mathsf {pk}^{*}, {\mathcal {S}}\) responds as specified by the protocol, except for the target session \(s^{*}\). In \(s^{*}, {\mathcal {S}}\) responds as follows:

  • \(\mathsf {create}(s^{*}, {\mathcal {I}}, C')\): \({\mathcal {S}}\) returns \(X \leftarrow U\), where (UV) is the Diffie–Hellman challenge. Note that \(s^{*}_{{\mathrm {rand}}}\) is not used.

  • \(\mathsf {send}(s^{*}, M)\): No response required.

  • \(\mathsf {randomness}(s^{*})\): Return \(s^{*}_{{\mathrm {rand}}}\).

  • \(\mathsf {session{{ {\text {-}}}}key}(s^{*})\): \({\mathcal {S}}\) aborts. Assuming that \({\mathcal {S}}\) correctly guesses \(s^{*}\) as the target session, this abort will never occur.

\({\mathcal {S}}\) responds to \({\mathcal {H}}_{2}\) queries as normal. \({\mathcal {S}}\) responds to \({\mathcal {H}}_{1}(\tilde{x}, b)\) queries as normal except for the following two cases:

  • If \(g^{b} = \mathsf {pk}^{*}\): \({\mathcal {S}}\) outputs the solution to the Diffie–Hellman challenge (UV) as \(U^{b}\).

  • If \(\tilde{x} = s^{*}_{{\mathrm {rand}}}\) and \(g^{a} = s^{*}_{{\mathrm {acert}}}.\mathsf {pk}\): \({\mathcal {S}}\) aborts.

Note that \({\mathcal {S}}\)’s simulation is perfect up until an abort event from the \(\mathsf {corrupt}\) or the \({\mathcal {H}}_{2}\) query occurs. Given that \(s^{*}\) is fresh and no matching session exists, no \(\mathsf {corrupt}(s^{*})\) query is allowed and hence \({\mathcal {S}}\) does not abort for that reason. Given that event \(\overline{E}\) occurs, if \({\mathcal {M}}\) queries \({\mathcal {H}}_{1}(s^{*}_{{\mathrm {rand}}}, a)\) such that \(g^{a} = s^{*}_{{\mathrm {acert}}}.\mathsf {pk}, {\mathcal {M}}\) must have issued a \(\mathsf {corrupt}(g^{a})\) query first. But it is also the case that \(s^{*}\) is fresh, so \({\mathcal {M}}\) cannot have also issued a \(\mathsf {randomness}(s^{*})\) query, and thus cannot know \(s^{*}_{{\mathrm {rand}}}\) unless it guessed it correctly, which can be done only with negligible probability.

Assume the simulation is perfect and does not abort, and that \({\mathcal {M}}\) outputs the session string containing the correct shared secret \(\sigma = g^{uy}g^{ady}g^{uve}g^{adev}\). \({\mathcal {S}}\) can then compute \(\eta = \sigma Y^{-ad}V^{-ade} = g^{uy+uve}\). But the peer’s ephemeral secret key y was chosen by the adversary, so without \(y \, {\mathcal {S}}\) cannot directly compute \(g^{uv}\) from \(\eta \).

Using the Forking Lemma, \({\mathcal {S}}\) runs \({\mathcal {M}}\) on the same input and the same random coins but with modified answers to \({\mathcal {H}}_{2}\) queries. Note that \({\mathcal {M}}\) must have queried \({\mathcal {H}}_{2}(Y, s^{*}_{{\mathrm {acert}}}.\mathsf {id}, s^{*}_{{\mathrm {pcert}}}.\mathsf {id})\) to obtain e, because otherwise \({\mathcal {M}}\) would be unable to compute \(\sigma \) except with negligible probability. For the second run of \({\mathcal {M}}, {\mathcal {S}}\) responds to \({\mathcal {H}}_{2}(Y, s^{*}_{{\mathrm {acert}}}.\mathsf {id}, s^{*}_{{\mathrm {pcert}}}.\mathsf {id})\) with \(e' \ne e\) selected uniformly at random.

If \({\mathcal {M}}\) succeeds in the second run, it outputs

$$\begin{aligned} \sigma = g^{uy}g^{ad'y}g^{uve'}g^{ad'e'v}. \end{aligned}$$

\({\mathcal {S}}\) can then compute

$$\begin{aligned} \eta ' = \sigma ' Y^{-ad'} V^{-ad'e'} = g^{uy}g^{uve'}. \end{aligned}$$

\({\mathcal {S}}\) can furthermore compute

$$\begin{aligned} (\eta / \eta ')^{1/(e-e')}&=(g^{uy}g^{uve}g^{-uy}g^{-uve'})^{1/(e-e')} \\&= g^{uv(e-e')/(e-e')} = g^{uv} \end{aligned}$$

which is the solution to the computational Diffie–Hellman challenge (UV).

Thus, when event \(\overline{E} \wedge \overline{M}\) occurs, there exists a polynomial-time reduction from a \({\mathsf {cNR}{ {\text {-}}}{\mathsf {eCK}}}\) adversary for the session string variant of CMQV to the computational Diffie–Hellman problem under the assumption that \({\mathcal {H}}_{1}\) and \({\mathcal {H}}_{2}\) are random oracles, with a tightness factor of \(n_{\mathsf {create}} n_{\mathsf {kgen}} n_{{\mathcal {H}}_{2}} c\), where c is a constant from the Forking Lemma. \(\square \)

Remark 12

Because in the above lemma we do not have to prove full session key indistinguishability security of CMQV, instead proving the hardness of session string computation of a variant of CMQV, we can make a few simplifications from Ustaoglu’s original proof:

  • We do not have to worry about key replication attacks (when the adversary causes two non-matching sessions to have the same session key (that is, session string), and then reveals the session key at one of the sessions) because there is no \(\mathsf {session{{ {\text {-}}}}key}\) query.

  • In event E, we do not have to worry about setting the session string correctly for any session involving the user whose public key has been injected with the CDH challenge, because there is no \(\mathsf {session{{ {\text {-}}}}key}\) query. Thus we do not need a DDH oracle here.

  • In event \(\overline{E} \wedge M\), we do not have to use the DDH oracle to test which of the many \({\mathcal {H}}\) random oracle queries is the solution we need: we simply output the CDH value derived directly from the output of \({\mathcal {M}}\).

Lemma 3

The session string decision problem for CMQV is poly-time reducible to the decisional problem of the Diffie–Hellman relation \(\phi \).

Proof

Let D be a polynomial-time algorithm that can distinguish real CMQV session strings \((g^{(y+eb)(x+da)} \parallel X \parallel Y \parallel \mathsf {id}\parallel {} A \parallel \mathsf {id}' \parallel B)\) from random session strings \((g^{r} \parallel g^{x} \parallel g^{y} \parallel \mathsf {id}\parallel g^{a} \parallel \mathsf {id}' \parallel g^{b})\), for randomly chosen \(a, b, x, y, r \in _R\mathbb {Z}_{q}, \mathsf {id}\) and \(\mathsf {id}'\) are arbitrary binary strings, \(d={\mathcal {H}}_{2}(g^{x} \parallel \mathsf {id}\parallel \mathsf {id}')\), and \(e={\mathcal {H}}_{2}(g^{y} \parallel \mathsf {id}\parallel \mathsf {id}')\).

We claim that there exists an algorithm E that can distinguish real Diffie–Hellman triples \((g^{u}, g^{v}, g^{uv})\) from random triples \((g^{u}, g^{v}, g^{w})\) for randomly chosen \(u, v, w \in _R\mathbb {Z}_{q}\).

First, note that \(g^{(y+eb)(x+da)} = g^{xy+ady+bex+abde}\). Using D construct \(E_{D}\) as follows. Let (UVW) be a Diffie–Hellman challenge. Pick arbitrary \(\mathsf {id}, \mathsf {id}'\). Do one of the following, each with equal probability:

  1. 1.

    Set \(A \leftarrow U\) and \(B \leftarrow V\). Choose \(x, y \in _R\mathbb {Z}_{q}\).

    Run D on the session string \((g^{xy}A^{dy}B^{ex}W^{de} \parallel g^{x} \parallel g^{y} \parallel \mathsf {id}\parallel A \parallel \mathsf {id}' \parallel B)\).

  2. 2.

    Set \(A \leftarrow U\) and \(Y \leftarrow V\). Choose \(x, b \in _R\mathbb {Z}_{q}\).

    Run D on the session string \((Y^{x}W^{d}g^{bex}A^{bde} \parallel g^{x} \parallel Y \parallel \mathsf {id}\parallel A \parallel \mathsf {id}' \parallel g^{b})\).

  3. 3.

    Set \(X \leftarrow U\) and \(B \leftarrow V\). Choose \(a, y \in _R\mathbb {Z}_{q}\).

    Run D on the session string \((X^{y}g^{ady}W^{e}B^{ade} \parallel X \parallel g^{y} \parallel \mathsf {id}\parallel g^{a} \parallel \mathsf {id}' \parallel B)\).

  4. 4.

    Set \(X \leftarrow U\) and \(Y \leftarrow V\). Choose \(a, b \in _R\mathbb {Z}_{q}\).

    Run D on the session string \((WY^{ad}X^{be}g^{abde} \parallel X \parallel Y \parallel \mathsf {id}\parallel g^{a} \parallel \mathsf {id}' \parallel g^{b})\).

E outputs the result of D.

Note that in each of the above cases, if (UVW) is a real Diffie–Hellman triple, then D is run on a real CMQV session string, whereas if (UVW) is a random triple, then D is run on a random session string. Thus, if D is a distinguisher for CMQV session strings, then E is a distinguisher for the Diffie–Hellman relation. \(\square \)

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Boyd, C., Cremers, C., Feltz, M. et al. ASICS: authenticated key exchange security incorporating certification systems. Int. J. Inf. Secur. 16, 151–171 (2017). https://doi.org/10.1007/s10207-015-0312-y

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10207-015-0312-y

Keywords

Mathematics Subject Classification

Navigation