<?xml version="1.0" encoding="utf-8"?><!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.0 20120330//EN" "JATS-journalpublishing1.dtd"><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" article-type="research-article">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">INFORMATICA</journal-id>
<journal-title-group><journal-title>Informatica</journal-title></journal-title-group>
<issn pub-type="epub">1822-8844</issn>
<issn pub-type="ppub">0868-4952</issn>
<issn-l>0868-4952</issn-l>
<publisher>
<publisher-name>Vilnius University</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="publisher-id">INFOR427</article-id>
<article-id pub-id-type="doi">10.15388/20-INFOR427</article-id>
<article-categories><subj-group subj-group-type="heading">
<subject>Research Article</subject></subj-group></article-categories>
<title-group>
<article-title>Group Key Establishment in a Quantum-Future Scenario</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name><surname>González Vasco</surname><given-names>María Isabel</given-names></name><email xlink:href="mariaisabel.vasco@urjc.es">mariaisabel.vasco@urjc.es</email><xref ref-type="aff" rid="j_infor427_aff_001">1</xref><xref ref-type="corresp" rid="cor1">∗</xref><bio>
<p><bold>M.I. González Vasco</bold> is associate professor at MACIMTE, Universidad Rey Juan Carlos, where she works since 2003. She received her diploma and PhD degree in mathematics from the Universidad de Oviedo (1999 and 2003). Her research interests include provable security for cryptographic constructions, with special focus on public key cryptographic designs for encryption and group key exchange. She is currently a member of the Board of Directors (<italic>Junta de Gobierno</italic>) of the Royal Spanish Mathematical Society.</p></bio>
</contrib>
<contrib contrib-type="author">
<name><surname>Pérez del Pozo</surname><given-names>Ángel L.</given-names></name><email xlink:href="angel.perez@urjc.es">angel.perez@urjc.es</email><xref ref-type="aff" rid="j_infor427_aff_001">1</xref><bio>
<p><bold>A.L. Pérez del Pozo</bold> is assistant professor (<italic>profesor ayudante doctor</italic>) at the Universidad Rey Juan Carlos, Spain. He holds a PhD in Mathematics from Universidad Complutense de Madrid (Spain). His main research focus is cryptographic designs for key exchange in non-standard scenarios, secret sharing schemes, and applications of multi-party computation.</p></bio>
</contrib>
<contrib contrib-type="author">
<name><surname>Steinwandt</surname><given-names>Rainer</given-names></name><email xlink:href="rsteinwa@fau.edu">rsteinwa@fau.edu</email><xref ref-type="aff" rid="j_infor427_aff_002">2</xref><bio>
<p><bold>R. Steinwandt</bold> serves as Chair of Florida Atlantic University’s Department of Mathematical Sciences. Before joining FAU, he was with the University of Karlsruhe in Germany, where he completed his MS and PhD degrees in computer science, researching topics in computer algebra. Today, his research focus is in cryptology, including quantum cryptanalysis and quantum-safe cryptography. He currently serves as director of FAU’s Center for Cryptology and Information Security. His research has been funded through the Air Force Research Laboratory, the German Federal Office for Information Security, the National Science Foundation, and the NATO Science for Peace and Security program.</p></bio>
</contrib>
<aff id="j_infor427_aff_001"><label>1</label>MACIMTE, <institution>Universidad Rey Juan Carlos</institution>, <country>Spain</country></aff>
<aff id="j_infor427_aff_002"><label>2</label>Dept. of Mathematical Sciences, <institution>Florida Atlantic University</institution>, <country>USA</country></aff>
</contrib-group>
<author-notes>
<corresp id="cor1"><label>∗</label>Corresponding author.</corresp>
</author-notes>
<pub-date pub-type="ppub"><year>2020</year></pub-date>
<pub-date pub-type="epub"><day>15</day><month>9</month><year>2020</year></pub-date>
<volume>31</volume><issue>4</issue><fpage>751</fpage><lpage>768</lpage>
<history>
<date date-type="received"><month>2</month><year>2020</year></date>
<date date-type="accepted"><month>8</month><year>2020</year></date>
</history>
<permissions><copyright-statement>© 2020 Vilnius University</copyright-statement><copyright-year>2020</copyright-year>
<license license-type="open-access" xlink:href="http://creativecommons.org/licenses/by/4.0/">
<license-p>Open access article under the <ext-link ext-link-type="uri" xlink:href="http://creativecommons.org/licenses/by/4.0/">CC BY</ext-link> license.</license-p></license></permissions>
<abstract>
<p>In cryptography, key establishment protocols are often the starting point paving the way towards secure execution of different tasks. Namely, the parties seeking to achieve some cryptographic task, often start by establishing a common high-entropy secret that will eventually be used to secure their communication. In this paper, we put forward a security model for group key establishment (<inline-formula id="j_infor427_ineq_001"><alternatives>
<mml:math><mml:mi mathvariant="sans-serif">GAKE</mml:mi></mml:math>
<tex-math><![CDATA[$\mathsf{GAKE}$]]></tex-math></alternatives></inline-formula>) with an adversary that may execute efficient quantum algorithms, yet only once the execution of the protocol has concluded. This captures a situation in which keys are to be established in the present, while security guarantees must still be provided in the future when quantum resources may be accessible to a potential adversary.</p>
<p>Further, we propose a protocol design that can be proven secure in this model. Our proposal uses password authentication and builds upon efficient and reasonably well understood primitives: a message authentication code and a post-quantum key encapsulation mechanism. The hybrid structure dodges potential efficiency downsides, like large signatures, of some “true” post-quantum authentication techniques, making our protocol a potentially interesting fit for current applications with long-term security needs.</p>
</abstract>
<kwd-group>
<label>Key words</label>
<kwd>Group Key Exchange</kwd>
<kwd>post-quantum cryptography</kwd>
<kwd>QUANTUM-future cryptography</kwd>
</kwd-group>
<funding-group>
<funding-statement>This research was funded by the NATO Science for Peace and Security Programme, grant number G5448, and by MINECO under Grant MTM2016-77213-R.</funding-statement>
</funding-group>
</article-meta>
</front>
<body>
<sec id="j_infor427_s_001">
<label>1</label>
<title>Introduction</title>
<p>The advent of quantum computing has had a great effect in cryptographic developments, giving rise to different active lines of work. Some efforts focus on finding new constructions exploiting the great potential of quantum technology (<italic>Quantum Key Distribution</italic> schemes being the flagship example), while others target design strategies transitioning from classical to quantum resistant schemes.</p>
<p>In this contribution, we focus on group key exchange protocols (<inline-formula id="j_infor427_ineq_002"><alternatives>
<mml:math><mml:mi mathvariant="sans-serif">GAKE</mml:mi></mml:math>
<tex-math><![CDATA[$\mathsf{GAKE}$]]></tex-math></alternatives></inline-formula>), which are cryptographic constructions allowing a group of <inline-formula id="j_infor427_ineq_003"><alternatives>
<mml:math><mml:mi mathvariant="italic">n</mml:mi><mml:mo>⩾</mml:mo><mml:mn>2</mml:mn></mml:math>
<tex-math><![CDATA[$n\geqslant 2$]]></tex-math></alternatives></inline-formula> participants to agree upon a high-entropy secret key. Communication is carried out over an insecure channel, and thus legitimate participants need to authenticate themselves (if not necessarily as specific individuals, at least as legitimate group members). It is typical to assume in this context that the network is fully under adversarial control, and thus a potential adversary may not only eavesdrop, but also delay, suppress, or insert messages at will. On top of the standard security challenges encountered in this framework, significant difficulties arise when considering adversaries that have access to quantum computing—the so-called post-quantum setting. Basic building blocks behind a post-quantum <inline-formula id="j_infor427_ineq_004"><alternatives>
<mml:math><mml:mi mathvariant="sans-serif">GAKE</mml:mi></mml:math>
<tex-math><![CDATA[$\mathsf{GAKE}$]]></tex-math></alternatives></inline-formula> (such as encryption or commitment schemes) should be proven secure in this new restricted scenario, where primitives based on the hardness of factoring or computing discrete logarithms in certain groups can no longer be trusted. While a number of primitives for <italic>post-quantum</italic> cryptographic tasks are available, restricting to this kind of tools comes at a prize in terms of computational cost, memory, bandwidth, etc. The question arises whether it is possible to put off some of the cost that comes with an immediate transition to a “full-fledged post-quantum design” without jeopardizing the long-term security of established session keys. This is where a <italic>future-quantum</italic> scenario comes in.</p>
<p><italic>Related work</italic></p>
<p><italic>Two-party constructions.</italic> A number of two-party key establishment protocols have been proposed taking into account quantum adversaries with diverse security models and levels of formalism. Many of these proposals are not contributory key exchange protocols, but key encapsulation mechanisms (KEMs), allowing one party to send a high-entropy key to another one, which can be later used to secure their two-party communication; submissions to NIST’s ongoing standardization effort provide various examples of current candidates for post-quantum KEMs National Institute of Standards and Technology (<xref ref-type="bibr" rid="j_infor427_ref_028">2019</xref>).</p>
<p>When it comes to secure joint key generation of two-party keys, fewer proposals are available in the literature. In Bos <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor427_ref_016">2015</xref>), an unauthenticated Diffie-Hellman-like key exchange protocol is proposed, based on the ring learning with errors (RLWE) problem, and the authors demonstrate its practicality, integrating it in TLS cipher suits. Their protocol is only secure for passive adversaries, and classical (non-quantum resistant) authentication means—such as RSA signatures—are suggested in order to dodge active attacks by standard adversaries. Also considering different levels of quantum-precautions with respect to authentication, Bindel <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor427_ref_013">2018</xref>) builds a hybrid key exchange protocol, in the two party scenario, which uses (post-quantum) KEMs as a fundamental building block. More precisely, they present a compiler for authenticated key exchange that can be built from a passively secure KEM, a signature scheme, a message authentication code and a secure key derivation function. Depending on the security of these building blocks, different guarantees are proven with respect to two-stage adversaries.<xref ref-type="fn" rid="j_infor427_fn_001">1</xref><fn id="j_infor427_fn_001"><label><sup>1</sup></label>
<p>We later mimic their approach, where adversaries are modelled differently in two well-defined attack stages, where the quantum/classical capabilities may differ.</p></fn></p>
<p>Ding et al.’s recent work Ding <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor427_ref_024">2019b</xref>) is worth mentioning, too. They gave a somewhat informal proposal for two-party key exchange constructions based on the short integer solution problem and learning with errors. In a similar fashion, two-party constructions using the ring learning with errors problem as a base can be found in Ding <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor427_ref_023">2019a</xref>). Finally, in a paper presented at PKC 2018, Benhamouda <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor427_ref_008">2018</xref>) refine prior work by Katz and Vaikuntanathan (<xref ref-type="bibr" rid="j_infor427_ref_027">2009</xref>) to obtain a very strong type of <italic>smooth projective hash functions</italic> over lattices. As a byproduct, they present a one-round two-party password-authenticated key establishment.</p>
<p><italic>Group constructions.</italic> Already Ding <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor427_ref_022">2012</xref>) gave a proposal for mimicking Diffie-Hellman constructions for key exchange using different variants of the <italic>learning with errors</italic> problem. However, no security proof was provided for the group version of their protocol. Recently, in Apon <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor427_ref_003">2019</xref>), a constant-round protocol for group key exchange is proposed and proven secure in a passive scenario. Using a post-quantum signature scheme this construction can be made secure in the presence of active adversaries, by means of a well known compiler from Katz and Yung (see Katz and Yung, <xref ref-type="bibr" rid="j_infor427_ref_026">2007</xref>). This construction adapts to the Ring-LWE scenario a well known circular design introduced by Burmester and Desmedt (<xref ref-type="bibr" rid="j_infor427_ref_020">2005</xref>). While being a major contribution, this proposal carries over many of the hardships of a lattice-based construction; in particular, a bound on the number of maximum parties the protocol may support for both correctness and security (depending on the ring, the noise distributions and the security parameters). Finally, here the (unfortunately, only theoretical) work of Boneh <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor427_ref_015">2018</xref>) should be mentioned, where first steps towards a post-quantum secure group key establishment construction based on isogenies are taken.</p>
<p><italic>Going from 2-party to group.</italic> Instead of using a direct design like ours, one possible approach for deriving group key establishment with some security guarantees in the presence of a quantum adversary is to use the compiler of Abdalla <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor427_ref_001">2007</xref>) from a secure two-party construction. However, complexity drawbacks of a post-quantum authentication method can make such a construction rather inefficient. As it is password-based, a compiled protocol from the two-party PAKE of Benhamouda <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor427_ref_008">2018</xref>) will not be hindered by this, while due to the (rather sophisticated) tools used in this construction, a thorough analysis would be needed to be able to understand the efficiency of such a design. For other two-party schemes, such as the one presented in Bindel <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor427_ref_013">2018</xref>, Section 4), it is the round-efficiency where our construction surpasses this compiling approach.</p>
<p><italic>Our contribution</italic></p>
<p>In this work we focus on a scenario that tries to capture today’s reality: Participants engage in a <inline-formula id="j_infor427_ineq_005"><alternatives>
<mml:math><mml:mi mathvariant="sans-serif">GAKE</mml:mi></mml:math>
<tex-math><![CDATA[$\mathsf{GAKE}$]]></tex-math></alternatives></inline-formula> execution today, assuming no quantum-adversary is present, and establish a common secret key that should remain secure even if, in the future, an adversary eventually obtains access to quantum computing capabilities. We adapt the (by now standard) security model for <inline-formula id="j_infor427_ineq_006"><alternatives>
<mml:math><mml:mi mathvariant="sans-serif">GAKE</mml:mi></mml:math>
<tex-math><![CDATA[$\mathsf{GAKE}$]]></tex-math></alternatives></inline-formula> to capture this kind of evolution of adversarial capabilities, and put forward a protocol design that can be proven secure in this model. Our proposal uses password-based authentication and builds on rather non-expensive primitives: a message authentication code and a post-quantum key encapsulation mechanism.</p>
</sec>
<sec id="j_infor427_s_002">
<label>2</label>
<title>Model</title>
<p>Our modelling and construction follow the approach of recent work by Bindel <italic>et al.</italic> for signature schemes (Bindel <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor427_ref_012">2017</xref>) and KEMs (Bindel <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor427_ref_013">2018</xref>), who consider security against adversaries with different levels of quantum-computing capabilities over time. Our adversaries will be merely classical during the protocol run, but may take advantage of quantum computing once the execution under attack is finished and accepted by the involved participant. Users are modelled as probabilistic polynomial time (ppt) Turing machines. We build on classical models for group key establishment as introduced in Bellare and Rogaway (<xref ref-type="bibr" rid="j_infor427_ref_006">1994</xref>), Bellare <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor427_ref_007">2000</xref>), Bresson <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor427_ref_019">2001</xref>). The potential set of users <inline-formula id="j_infor427_ineq_007"><alternatives>
<mml:math><mml:mi mathvariant="script">U</mml:mi></mml:math>
<tex-math><![CDATA[$\mathcal{U}$]]></tex-math></alternatives></inline-formula> is assumed to be of polynomial size (in the security parameter <inline-formula id="j_infor427_ineq_008"><alternatives>
<mml:math><mml:msup><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>ℓ</mml:mi></mml:mrow></mml:msup></mml:math>
<tex-math><![CDATA[${1^{\ell }}$]]></tex-math></alternatives></inline-formula>), and each user <inline-formula id="j_infor427_ineq_009"><alternatives>
<mml:math><mml:mi mathvariant="italic">U</mml:mi><mml:mo stretchy="false">∈</mml:mo><mml:mi mathvariant="script">U</mml:mi></mml:math>
<tex-math><![CDATA[$U\in \mathcal{U}$]]></tex-math></alternatives></inline-formula> may execute a polynomial number of protocol <italic>instances</italic> concurrently. To refer to instance <inline-formula id="j_infor427_ineq_010"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="italic">s</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${s_{i}}$]]></tex-math></alternatives></inline-formula> of a user <inline-formula id="j_infor427_ineq_011"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="italic">U</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">∈</mml:mo><mml:mi mathvariant="script">U</mml:mi></mml:math>
<tex-math><![CDATA[${U_{i}}\in \mathcal{U}$]]></tex-math></alternatives></inline-formula> we use the notation <inline-formula id="j_infor427_ineq_012"><alternatives>
<mml:math><mml:msubsup><mml:mrow><mml:mi mathvariant="normal">Π</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="italic">s</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup></mml:math>
<tex-math><![CDATA[${\Pi _{i}^{{s_{i}}}}$]]></tex-math></alternatives></inline-formula> (<inline-formula id="j_infor427_ineq_013"><alternatives>
<mml:math><mml:mi mathvariant="italic">i</mml:mi><mml:mo stretchy="false">∈</mml:mo><mml:mi mathvariant="double-struck">N</mml:mi></mml:math>
<tex-math><![CDATA[$i\in \mathbb{N}$]]></tex-math></alternatives></inline-formula>).</p>
<p><italic>Protocol instances.</italic> A single instance <inline-formula id="j_infor427_ineq_014"><alternatives>
<mml:math><mml:msubsup><mml:mrow><mml:mi mathvariant="normal">Π</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="italic">s</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup></mml:math>
<tex-math><![CDATA[${\Pi _{i}^{{s_{i}}}}$]]></tex-math></alternatives></inline-formula> can be taken for a process executed by <inline-formula id="j_infor427_ineq_015"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="italic">U</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${U_{i}}$]]></tex-math></alternatives></inline-formula>. To each instance we assign seven variables: 
<def-list><def-item><term><inline-formula id="j_infor427_ineq_016"><alternatives>
<mml:math><mml:msubsup><mml:mrow><mml:mi mathvariant="sans-serif">used</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="italic">s</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup></mml:math>
<tex-math><![CDATA[${\mathsf{used}_{i}^{{s_{i}}}}$]]></tex-math></alternatives></inline-formula></term><def>
<p>indicates whether this instance is or has been used for a protocol run. The <inline-formula id="j_infor427_ineq_017"><alternatives>
<mml:math><mml:msubsup><mml:mrow><mml:mi mathvariant="sans-serif">used</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="italic">s</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup></mml:math>
<tex-math><![CDATA[${\mathsf{used}_{i}^{{s_{i}}}}$]]></tex-math></alternatives></inline-formula> flag can only be set through a protocol message received by the instance due to a call to the <inline-formula id="j_infor427_ineq_018"><alternatives>
<mml:math><mml:mi mathvariant="sans-serif">Execute</mml:mi></mml:math>
<tex-math><![CDATA[$\mathsf{Execute}$]]></tex-math></alternatives></inline-formula>- or the <inline-formula id="j_infor427_ineq_019"><alternatives>
<mml:math><mml:mi mathvariant="sans-serif">Send</mml:mi></mml:math>
<tex-math><![CDATA[$\mathsf{Send}$]]></tex-math></alternatives></inline-formula>-oracle (see below);</p></def></def-item><def-item><term><inline-formula id="j_infor427_ineq_020"><alternatives>
<mml:math><mml:msubsup><mml:mrow><mml:mi mathvariant="sans-serif">state</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="italic">s</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup></mml:math>
<tex-math><![CDATA[${\mathsf{state}_{i}^{{s_{i}}}}$]]></tex-math></alternatives></inline-formula></term><def>
<p>keeps the state information needed during the protocol execution;</p></def></def-item><def-item><term><inline-formula id="j_infor427_ineq_021"><alternatives>
<mml:math><mml:msubsup><mml:mrow><mml:mi mathvariant="sans-serif">term</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="italic">s</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup></mml:math>
<tex-math><![CDATA[${\mathsf{term}_{i}^{{s_{i}}}}$]]></tex-math></alternatives></inline-formula></term><def>
<p>shows if the execution has terminated;</p></def></def-item><def-item><term><inline-formula id="j_infor427_ineq_022"><alternatives>
<mml:math><mml:msubsup><mml:mrow><mml:mi mathvariant="sans-serif">sid</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="italic">s</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup></mml:math>
<tex-math><![CDATA[${\mathsf{sid}_{i}^{{s_{i}}}}$]]></tex-math></alternatives></inline-formula></term><def>
<p>denotes a possibly public session identifier that can serve as identifier for the session key <inline-formula id="j_infor427_ineq_023"><alternatives>
<mml:math><mml:msubsup><mml:mrow><mml:mi mathvariant="sans-serif">sk</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="italic">s</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup></mml:math>
<tex-math><![CDATA[${\mathsf{sk}_{i}^{{s_{i}}}}$]]></tex-math></alternatives></inline-formula>;</p></def></def-item><def-item><term><inline-formula id="j_infor427_ineq_024"><alternatives>
<mml:math><mml:msubsup><mml:mrow><mml:mi mathvariant="sans-serif">pid</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="italic">s</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup></mml:math>
<tex-math><![CDATA[${\mathsf{pid}_{i}^{{s_{i}}}}$]]></tex-math></alternatives></inline-formula></term><def>
<p>stores the set of identities of those users that <inline-formula id="j_infor427_ineq_025"><alternatives>
<mml:math><mml:msubsup><mml:mrow><mml:mi mathvariant="normal">Π</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="italic">s</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup></mml:math>
<tex-math><![CDATA[${\Pi _{i}^{{s_{i}}}}$]]></tex-math></alternatives></inline-formula> aims at establishing a key with—including <inline-formula id="j_infor427_ineq_026"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="italic">U</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${U_{i}}$]]></tex-math></alternatives></inline-formula> himself;<xref ref-type="fn" rid="j_infor427_fn_002">2</xref><fn id="j_infor427_fn_002"><label><sup>2</sup></label>
<p>Dealing with authentication through a shared password exclusively, we do not consider key establishments among strict subsets of <inline-formula id="j_infor427_ineq_027"><alternatives>
<mml:math><mml:mi mathvariant="script">U</mml:mi></mml:math>
<tex-math><![CDATA[$\mathcal{U}$]]></tex-math></alternatives></inline-formula>. With <inline-formula id="j_infor427_ineq_028"><alternatives>
<mml:math><mml:msubsup><mml:mrow><mml:mi mathvariant="sans-serif">pid</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="italic">s</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup><mml:mo>:</mml:mo><mml:mo>=</mml:mo><mml:mi mathvariant="script">U</mml:mi></mml:math>
<tex-math><![CDATA[${\mathsf{pid}_{i}^{{s_{i}}}}:=\mathcal{U}$]]></tex-math></alternatives></inline-formula> being the only case of interest, in the sequel we do not make explicit use of <inline-formula id="j_infor427_ineq_029"><alternatives>
<mml:math><mml:msubsup><mml:mrow><mml:mi mathvariant="sans-serif">pid</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="italic">s</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup></mml:math>
<tex-math><![CDATA[${\mathsf{pid}_{i}^{{s_{i}}}}$]]></tex-math></alternatives></inline-formula> when defining partnering, integrity, etc.</p></fn></p></def></def-item><def-item><term><inline-formula id="j_infor427_ineq_030"><alternatives>
<mml:math><mml:msubsup><mml:mrow><mml:mi mathvariant="sans-serif">acc</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="italic">s</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup></mml:math>
<tex-math><![CDATA[${\mathsf{acc}_{i}^{{s_{i}}}}$]]></tex-math></alternatives></inline-formula></term><def>
<p>indicates if the protocol instance was successful, i.e. the user accepted the session key;</p></def></def-item><def-item><term><inline-formula id="j_infor427_ineq_031"><alternatives>
<mml:math><mml:msubsup><mml:mrow><mml:mi mathvariant="sans-serif">sk</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="italic">s</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup></mml:math>
<tex-math><![CDATA[${\mathsf{sk}_{i}^{{s_{i}}}}$]]></tex-math></alternatives></inline-formula></term><def>
<p>stores the session key once it is accepted by <inline-formula id="j_infor427_ineq_032"><alternatives>
<mml:math><mml:msubsup><mml:mrow><mml:mi mathvariant="normal">Π</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="italic">s</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup><mml:mo>.</mml:mo></mml:math>
<tex-math><![CDATA[${\Pi _{i}^{{s_{i}}}}.$]]></tex-math></alternatives></inline-formula> Before acceptance, it stores a distinguished <sc>null</sc> value.</p></def></def-item></def-list> For more details on the usage of the variables we refer to Bellare <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor427_ref_007">2000</xref>).</p>
<p><italic>Communication network.</italic> Arbitrary point-to-point (peer-to-peer) connections among the users are assumed to be available. Thus, the network topology is that of a complete graph. We assume the network to be non-private, however, and fully asynchronous. More specifically, it is controlled by the adversary, who may alter, delay, insert, and delete messages at will.</p>
<p><italic>Adversarial capabilities.</italic> Our adversaries are only capable of executing tasks in probabilistic polynomial time, and they are restricted to classical algorithms. The capabilities of an adversary <inline-formula id="j_infor427_ineq_033"><alternatives>
<mml:math><mml:mi mathvariant="script">A</mml:mi></mml:math>
<tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> are made explicit through a number of <italic>oracles</italic> allowing <inline-formula id="j_infor427_ineq_034"><alternatives>
<mml:math><mml:mi mathvariant="script">A</mml:mi></mml:math>
<tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> to communicate with protocol instances run by the users, and we use an oracle to capture future quantum capabilities of <inline-formula id="j_infor427_ineq_035"><alternatives>
<mml:math><mml:mi mathvariant="script">A</mml:mi></mml:math>
<tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula>: 
<def-list><def-item><term><inline-formula id="j_infor427_ineq_036"><alternatives>
<mml:math><mml:mi mathvariant="sans-serif">Send</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="italic">U</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub><mml:mo mathvariant="normal">,</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="italic">s</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub><mml:mo mathvariant="normal">,</mml:mo><mml:mi mathvariant="italic">M</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math>
<tex-math><![CDATA[$\mathsf{Send}({U_{i}},{s_{i}},M)$]]></tex-math></alternatives></inline-formula></term><def>
<p>This sends message <italic>M</italic> to the instance <inline-formula id="j_infor427_ineq_037"><alternatives>
<mml:math><mml:msubsup><mml:mrow><mml:mi mathvariant="normal">Π</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="italic">s</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup></mml:math>
<tex-math><![CDATA[${\Pi _{i}^{{s_{i}}}}$]]></tex-math></alternatives></inline-formula> and returns the reply generated by this instance. If <inline-formula id="j_infor427_ineq_038"><alternatives>
<mml:math><mml:mi mathvariant="script">A</mml:mi></mml:math>
<tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> queries this oracle with an unused instance <inline-formula id="j_infor427_ineq_039"><alternatives>
<mml:math><mml:msubsup><mml:mrow><mml:mi mathvariant="normal">Π</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="italic">s</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup></mml:math>
<tex-math><![CDATA[${\Pi _{i}^{{s_{i}}}}$]]></tex-math></alternatives></inline-formula> and <italic>M</italic> being the string “<inline-formula id="j_infor427_ineq_040"><alternatives>
<mml:math><mml:mi mathvariant="sans-serif">Start</mml:mi></mml:math>
<tex-math><![CDATA[$\mathsf{Start}$]]></tex-math></alternatives></inline-formula>”, the <inline-formula id="j_infor427_ineq_041"><alternatives>
<mml:math><mml:msubsup><mml:mrow><mml:mi mathvariant="sans-serif">used</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="italic">s</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup></mml:math>
<tex-math><![CDATA[${\mathsf{used}_{i}^{{s_{i}}}}$]]></tex-math></alternatives></inline-formula>-flag is set, and the initial protocol message of <inline-formula id="j_infor427_ineq_042"><alternatives>
<mml:math><mml:msubsup><mml:mrow><mml:mi mathvariant="normal">Π</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="italic">s</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup></mml:math>
<tex-math><![CDATA[${\Pi _{i}^{{s_{i}}}}$]]></tex-math></alternatives></inline-formula> is returned.</p></def></def-item><def-item><term><inline-formula id="j_infor427_ineq_043"><alternatives>
<mml:math><mml:mi mathvariant="sans-serif">Execute</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mo fence="true" stretchy="false">{</mml:mo><mml:msubsup><mml:mrow><mml:mi mathvariant="normal">Π</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="italic">u</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="italic">s</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="italic">u</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:msubsup><mml:mo mathvariant="normal">,</mml:mo><mml:mo>…</mml:mo><mml:mo mathvariant="normal">,</mml:mo><mml:msubsup><mml:mrow><mml:mi mathvariant="normal">Π</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="italic">u</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">μ</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="italic">s</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="italic">u</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">μ</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:msubsup><mml:mo fence="true" stretchy="false">}</mml:mo><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math>
<tex-math><![CDATA[$\mathsf{Execute}(\{{\Pi _{{u_{1}}}^{{s_{{u_{1}}}}}},\dots ,{\Pi _{{u_{\mu }}}^{{s_{{u_{\mu }}}}}}\})$]]></tex-math></alternatives></inline-formula></term><def>
<p>This executes a complete protocol run among the specified unused instances of the respective users. The adversary obtains a transcript of all messages sent over the network. A query to the <inline-formula id="j_infor427_ineq_044"><alternatives>
<mml:math><mml:mi mathvariant="sans-serif">Execute</mml:mi></mml:math>
<tex-math><![CDATA[$\mathsf{Execute}$]]></tex-math></alternatives></inline-formula> oracle is supposed to reflect a passive eavesdropping. In particular, no online-guess for the secret password can be implemented with this oracle.</p></def></def-item><def-item><term><inline-formula id="j_infor427_ineq_045"><alternatives>
<mml:math><mml:mi mathvariant="sans-serif">Reveal</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="italic">U</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub><mml:mo mathvariant="normal">,</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="italic">s</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math>
<tex-math><![CDATA[$\mathsf{Reveal}({U_{i}},{s_{i}})$]]></tex-math></alternatives></inline-formula></term><def>
<p>yields the session key <inline-formula id="j_infor427_ineq_046"><alternatives>
<mml:math><mml:msubsup><mml:mrow><mml:mi mathvariant="sans-serif">sk</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="italic">s</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup></mml:math>
<tex-math><![CDATA[${\mathsf{sk}_{i}^{{s_{i}}}}$]]></tex-math></alternatives></inline-formula> along with its corresponding session identifier <inline-formula id="j_infor427_ineq_047"><alternatives>
<mml:math><mml:msubsup><mml:mrow><mml:mi mathvariant="sans-serif">sid</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="italic">s</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup></mml:math>
<tex-math><![CDATA[${\mathsf{sid}_{i}^{{s_{i}}}}$]]></tex-math></alternatives></inline-formula>.</p></def></def-item><def-item><term><inline-formula id="j_infor427_ineq_048"><alternatives>
<mml:math><mml:mi mathvariant="sans-serif">Test</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="italic">U</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub><mml:mo mathvariant="normal">,</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="italic">s</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math>
<tex-math><![CDATA[$\mathsf{Test}({U_{i}},{s_{i}})$]]></tex-math></alternatives></inline-formula></term><def>
<p>Only one query of this form is allowed for an active adversary <inline-formula id="j_infor427_ineq_049"><alternatives>
<mml:math><mml:mi mathvariant="script">A</mml:mi></mml:math>
<tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula>. Provided that <inline-formula id="j_infor427_ineq_050"><alternatives>
<mml:math><mml:msubsup><mml:mrow><mml:mi mathvariant="sans-serif">sk</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="italic">s</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup></mml:math>
<tex-math><![CDATA[${\mathsf{sk}_{i}^{{s_{i}}}}$]]></tex-math></alternatives></inline-formula> is defined, (i.e. <inline-formula id="j_infor427_ineq_051"><alternatives>
<mml:math><mml:msubsup><mml:mrow><mml:mi mathvariant="sans-serif">acc</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="italic">s</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mi mathvariant="sans-serif">true</mml:mi></mml:math>
<tex-math><![CDATA[${\mathsf{acc}_{i}^{{s_{i}}}}=\mathsf{true}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor427_ineq_052"><alternatives>
<mml:math><mml:msubsup><mml:mrow><mml:mi mathvariant="sans-serif">sk</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="italic">s</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup><mml:mo stretchy="false">≠</mml:mo><mml:mtext mathvariant="normal" mathsize="small">NULL</mml:mtext></mml:math>
<tex-math><![CDATA[${\mathsf{sk}_{i}^{{s_{i}}}}\ne \text{NULL}$]]></tex-math></alternatives></inline-formula>), <inline-formula id="j_infor427_ineq_053"><alternatives>
<mml:math><mml:mi mathvariant="script">A</mml:mi></mml:math>
<tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> can execute this oracle query at any time when being activated. Then with probability 1/2 the session key <inline-formula id="j_infor427_ineq_054"><alternatives>
<mml:math><mml:msubsup><mml:mrow><mml:mi mathvariant="sans-serif">sk</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="italic">s</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup></mml:math>
<tex-math><![CDATA[${\mathsf{sk}_{i}^{{s_{i}}}}$]]></tex-math></alternatives></inline-formula> and with probability 1/2 a uniformly chosen random session key is returned.</p></def></def-item><def-item><term><inline-formula id="j_infor427_ineq_055"><alternatives>
<mml:math><mml:mi mathvariant="sans-serif">Corrupt</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="italic">U</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math>
<tex-math><![CDATA[$\mathsf{Corrupt}({U_{i}})$]]></tex-math></alternatives></inline-formula></term><def>
<p>This oracle returns all long-term secrets held by user <inline-formula id="j_infor427_ineq_056"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="italic">U</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${U_{i}}$]]></tex-math></alternatives></inline-formula> (e.g. a password or static keys for an authentication mechanism). The <inline-formula id="j_infor427_ineq_057"><alternatives>
<mml:math><mml:mi mathvariant="sans-serif">Corrupt</mml:mi></mml:math>
<tex-math><![CDATA[$\mathsf{Corrupt}$]]></tex-math></alternatives></inline-formula>-oracle’s only purpose is to model forward secrecy.</p></def></def-item><def-item><term><inline-formula id="j_infor427_ineq_058"><alternatives>
<mml:math><mml:mi mathvariant="sans-serif">QCom</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mi mathvariant="italic">c</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math>
<tex-math><![CDATA[$\mathsf{QCom}(c)$]]></tex-math></alternatives></inline-formula></term><def>
<p>This oracle is used to capture future quantum computation abilities. It accepts a polynomial-size description <italic>c</italic> (a quantum circuit) of a quantum computation that can be executed in polynomial time, e.g. computing a discrete logarithm. The oracle returns a classical value, representing the result of the specified quantum computation.</p></def></def-item></def-list></p>
<sec id="j_infor427_s_003">
<label>2.1</label>
<title>Correctness, Integrity and Secrecy</title>
<p>Before we define correctness, integrity, and secrecy, we introduce <italic>partnering</italic> to express which instances are associated in a common protocol session.</p>
<p><italic>Partnering.</italic> We adopt the notion of partnering from Bohli <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor427_ref_014">2007</xref>). Namely, we refer to instances <inline-formula id="j_infor427_ineq_059"><alternatives>
<mml:math><mml:msubsup><mml:mrow><mml:mi mathvariant="normal">Π</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="italic">s</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup></mml:math>
<tex-math><![CDATA[${\Pi _{i}^{{s_{i}}}}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor427_ineq_060"><alternatives>
<mml:math><mml:msubsup><mml:mrow><mml:mi mathvariant="normal">Π</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">j</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="italic">s</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup></mml:math>
<tex-math><![CDATA[${\Pi _{j}^{{s_{j}}}}$]]></tex-math></alternatives></inline-formula> as being <italic>partnered</italic> if both <inline-formula id="j_infor427_ineq_061"><alternatives>
<mml:math><mml:msubsup><mml:mrow><mml:mi mathvariant="sans-serif">sid</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="italic">s</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mi mathvariant="sans-serif">sid</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">j</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="italic">s</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup></mml:math>
<tex-math><![CDATA[${\mathsf{sid}_{i}^{{s_{i}}}}={\mathsf{sid}_{j}^{{s_{j}}}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor427_ineq_062"><alternatives>
<mml:math><mml:msubsup><mml:mrow><mml:mi mathvariant="sans-serif">acc</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="italic">s</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mi mathvariant="sans-serif">acc</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">j</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="italic">s</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mi mathvariant="sans-serif">true</mml:mi></mml:math>
<tex-math><![CDATA[${\mathsf{acc}_{i}^{{s_{i}}}}={\mathsf{acc}_{j}^{{s_{j}}}}=\mathsf{true}$]]></tex-math></alternatives></inline-formula>.</p>
<p>To avoid trivial cases, we assume that an instance <inline-formula id="j_infor427_ineq_063"><alternatives>
<mml:math><mml:msubsup><mml:mrow><mml:mi mathvariant="normal">Π</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="italic">s</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup></mml:math>
<tex-math><![CDATA[${\Pi _{i}^{{s_{i}}}}$]]></tex-math></alternatives></inline-formula> always accepts the session key constructed at the end of the corresponding protocol run if no deviation from the protocol specification occurs. Moreover, all users in the same protocol session should come up with the same session key, and we capture this in the subsequent notion of correctness.</p>
<p><italic>Correctness.</italic> We call a group key establishment protocol <inline-formula id="j_infor427_ineq_064"><alternatives>
<mml:math><mml:mi mathvariant="script">P</mml:mi></mml:math>
<tex-math><![CDATA[$\mathcal{P}$]]></tex-math></alternatives></inline-formula> <italic>correct</italic>, if in the presence of a passive adversary <inline-formula id="j_infor427_ineq_065"><alternatives>
<mml:math><mml:mi mathvariant="script">A</mml:mi></mml:math>
<tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula>—i.e. <inline-formula id="j_infor427_ineq_066"><alternatives>
<mml:math><mml:mi mathvariant="script">A</mml:mi></mml:math>
<tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> must not use the <inline-formula id="j_infor427_ineq_067"><alternatives>
<mml:math><mml:mi mathvariant="sans-serif">Send</mml:mi></mml:math>
<tex-math><![CDATA[$\mathsf{Send}$]]></tex-math></alternatives></inline-formula> oracle—the following holds: for all <inline-formula id="j_infor427_ineq_068"><alternatives>
<mml:math><mml:mi mathvariant="italic">i</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:mi mathvariant="italic">j</mml:mi></mml:math>
<tex-math><![CDATA[$i,j$]]></tex-math></alternatives></inline-formula> with both <inline-formula id="j_infor427_ineq_069"><alternatives>
<mml:math><mml:msubsup><mml:mrow><mml:mi mathvariant="sans-serif">sid</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="italic">s</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mi mathvariant="sans-serif">sid</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">j</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="italic">s</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup></mml:math>
<tex-math><![CDATA[${\mathsf{sid}_{i}^{{s_{i}}}}={\mathsf{sid}_{j}^{{s_{j}}}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor427_ineq_070"><alternatives>
<mml:math><mml:msubsup><mml:mrow><mml:mi mathvariant="sans-serif">acc</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="italic">s</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mi mathvariant="sans-serif">acc</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">j</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="italic">s</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mi mathvariant="sans-serif">true</mml:mi></mml:math>
<tex-math><![CDATA[${\mathsf{acc}_{i}^{{s_{i}}}}={\mathsf{acc}_{j}^{{s_{j}}}}=\mathsf{true}$]]></tex-math></alternatives></inline-formula>, we have <inline-formula id="j_infor427_ineq_071"><alternatives>
<mml:math><mml:msubsup><mml:mrow><mml:mi mathvariant="sans-serif">sk</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="italic">s</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mi mathvariant="sans-serif">sk</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">j</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="italic">s</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup><mml:mo stretchy="false">≠</mml:mo></mml:math>
<tex-math><![CDATA[${\mathsf{sk}_{i}^{{s_{i}}}}={\mathsf{sk}_{j}^{{s_{j}}}}\ne $]]></tex-math></alternatives></inline-formula><sc>null</sc>.</p>
<p><italic>Key integrity.</italic> Correctness takes only passive attacks into account, whereas <italic>key integrity</italic> does not restrict the adversary’s oracle access: a correct group key establishment protocol fulfills <italic>key integrity</italic>, if with overwhelming probability all instances of users that have accepted with the same session identifier <inline-formula id="j_infor427_ineq_072"><alternatives>
<mml:math><mml:msubsup><mml:mrow><mml:mi mathvariant="sans-serif">sid</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">j</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="italic">s</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup></mml:math>
<tex-math><![CDATA[${\mathsf{sid}_{j}^{{s_{j}}}}$]]></tex-math></alternatives></inline-formula> hold identical session keys <inline-formula id="j_infor427_ineq_073"><alternatives>
<mml:math><mml:msubsup><mml:mrow><mml:mi mathvariant="sans-serif">sk</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">j</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="italic">s</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup></mml:math>
<tex-math><![CDATA[${\mathsf{sk}_{j}^{{s_{j}}}}$]]></tex-math></alternatives></inline-formula>.</p>
<p>Next, for detailing the security definition, we will have to specify under which conditions a <inline-formula id="j_infor427_ineq_074"><alternatives>
<mml:math><mml:mi mathvariant="sans-serif">Test</mml:mi></mml:math>
<tex-math><![CDATA[$\mathsf{Test}$]]></tex-math></alternatives></inline-formula>-query may be executed.</p>
<p><italic>Freshness.</italic> A <inline-formula id="j_infor427_ineq_075"><alternatives>
<mml:math><mml:mi mathvariant="sans-serif">Test</mml:mi></mml:math>
<tex-math><![CDATA[$\mathsf{Test}$]]></tex-math></alternatives></inline-formula>-query should only be allowed to those instances holding a key that is not for trivial reasons known to the adversary. To this aim, an instance <inline-formula id="j_infor427_ineq_076"><alternatives>
<mml:math><mml:msubsup><mml:mrow><mml:mi mathvariant="normal">Π</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="italic">s</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup></mml:math>
<tex-math><![CDATA[${\Pi _{i}^{{s_{i}}}}$]]></tex-math></alternatives></inline-formula> is called <italic>fresh</italic> in case none of the events below occurred: 
<list>
<list-item id="j_infor427_li_001">
<label>•</label>
<p>A <inline-formula id="j_infor427_ineq_077"><alternatives>
<mml:math><mml:mi mathvariant="sans-serif">Corrupt</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="italic">U</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">j</mml:mi></mml:mrow></mml:msub><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math>
<tex-math><![CDATA[$\mathsf{Corrupt}({U_{j}})$]]></tex-math></alternatives></inline-formula> query is executed before a query of the form <inline-formula id="j_infor427_ineq_078"><alternatives>
<mml:math><mml:mi mathvariant="sans-serif">Send</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="italic">U</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">k</mml:mi></mml:mrow></mml:msub><mml:mo mathvariant="normal">,</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="italic">s</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">k</mml:mi></mml:mrow></mml:msub><mml:mo mathvariant="normal">,</mml:mo><mml:mo>∗</mml:mo><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math>
<tex-math><![CDATA[$\mathsf{Send}({U_{k}},{s_{k}},\ast )$]]></tex-math></alternatives></inline-formula> takes place. (One could consider to restrict to <inline-formula id="j_infor427_ineq_079"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="italic">U</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">j</mml:mi></mml:mrow></mml:msub><mml:mo mathvariant="normal">,</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="italic">U</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">k</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">∈</mml:mo><mml:msubsup><mml:mrow><mml:mi mathvariant="sans-serif">pid</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="italic">s</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup></mml:math>
<tex-math><![CDATA[${U_{j}},{U_{k}}\in {\mathsf{pid}_{i}^{{s_{i}}}}$]]></tex-math></alternatives></inline-formula>, but as indicated in footnote <xref rid="j_infor427_fn_002">2</xref>, <inline-formula id="j_infor427_ineq_080"><alternatives>
<mml:math><mml:msubsup><mml:mrow><mml:mi mathvariant="sans-serif">pid</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="italic">s</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mi mathvariant="script">U</mml:mi></mml:math>
<tex-math><![CDATA[${\mathsf{pid}_{i}^{{s_{i}}}}=\mathcal{U}$]]></tex-math></alternatives></inline-formula> is the only case of interest.)</p>
</list-item>
<list-item id="j_infor427_li_002">
<label>•</label>
<p>A <inline-formula id="j_infor427_ineq_081"><alternatives>
<mml:math><mml:mi mathvariant="sans-serif">Send</mml:mi></mml:math>
<tex-math><![CDATA[$\mathsf{Send}$]]></tex-math></alternatives></inline-formula> query is performed, after a <inline-formula id="j_infor427_ineq_082"><alternatives>
<mml:math><mml:mi mathvariant="sans-serif">QCom</mml:mi></mml:math>
<tex-math><![CDATA[$\mathsf{QCom}$]]></tex-math></alternatives></inline-formula> query took place.</p>
</list-item>
<list-item id="j_infor427_li_003">
<label>•</label>
<p>A <inline-formula id="j_infor427_ineq_083"><alternatives>
<mml:math><mml:mi mathvariant="sans-serif">Reveal</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="italic">U</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">j</mml:mi></mml:mrow></mml:msub><mml:mo mathvariant="normal">,</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="italic">s</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">j</mml:mi></mml:mrow></mml:msub><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math>
<tex-math><![CDATA[$\mathsf{Reveal}({U_{j}},{s_{j}})$]]></tex-math></alternatives></inline-formula> query is executed with <inline-formula id="j_infor427_ineq_084"><alternatives>
<mml:math><mml:msubsup><mml:mrow><mml:mi mathvariant="normal">Π</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="italic">s</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup></mml:math>
<tex-math><![CDATA[${\Pi _{i}^{{s_{i}}}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor427_ineq_085"><alternatives>
<mml:math><mml:msubsup><mml:mrow><mml:mi mathvariant="normal">Π</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">j</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="italic">s</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup></mml:math>
<tex-math><![CDATA[${\Pi _{j}^{{s_{j}}}}$]]></tex-math></alternatives></inline-formula> being partnered.</p>
</list-item>
</list> 
As usual, the idea is that revealing a session key from an instance <inline-formula id="j_infor427_ineq_086"><alternatives>
<mml:math><mml:msubsup><mml:mrow><mml:mi mathvariant="normal">Π</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="italic">s</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup></mml:math>
<tex-math><![CDATA[${\Pi _{i}^{{s_{i}}}}$]]></tex-math></alternatives></inline-formula> trivially yields the session key of all instances partnered with <inline-formula id="j_infor427_ineq_087"><alternatives>
<mml:math><mml:msubsup><mml:mrow><mml:mi mathvariant="normal">Π</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="italic">s</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup></mml:math>
<tex-math><![CDATA[${\Pi _{i}^{{s_{i}}}}$]]></tex-math></alternatives></inline-formula>, and hence this kind of “attack” will be excluded in the security definition. Similarly, if an adversary eventually succeeds in corrupting a legitimate group member and controls him fully while the protocol is being executed, he will of course know the resulting session key, and that situation is also excluded through our freshness definition. Further, this definition formalizes our exclusion of on-line quantum attacks; namely, we also restrict <inline-formula id="j_infor427_ineq_088"><alternatives>
<mml:math><mml:mi mathvariant="sans-serif">Test</mml:mi></mml:math>
<tex-math><![CDATA[$\mathsf{Test}$]]></tex-math></alternatives></inline-formula> queries to those sessions for which no quantum process has been executed during the actual protocol run.</p>
<p>In our construction we will focus on password-based authentication. Thus, we must assume users select their passwords from a given public dictionary <inline-formula id="j_infor427_ineq_089"><alternatives>
<mml:math><mml:mi mathvariant="script">D</mml:mi><mml:mo mathvariant="normal">,</mml:mo></mml:math>
<tex-math><![CDATA[$\mathcal{D},$]]></tex-math></alternatives></inline-formula> of polynomial size in the security parameter <italic>ℓ</italic>. Groups are as a result defined by a set of users which use the same password in <inline-formula id="j_infor427_ineq_090"><alternatives>
<mml:math><mml:mi mathvariant="script">D</mml:mi></mml:math>
<tex-math><![CDATA[$\mathcal{D}$]]></tex-math></alternatives></inline-formula> for authentication. The security goal aimed at is defined in terms of the advantage <inline-formula id="j_infor427_ineq_091"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="sans-serif">Adv</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="script">A</mml:mi></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${\mathsf{Adv}_{\mathcal{A}}}$]]></tex-math></alternatives></inline-formula> of an adversary <inline-formula id="j_infor427_ineq_092"><alternatives>
<mml:math><mml:mi mathvariant="script">A</mml:mi></mml:math>
<tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> in attacking protocol <inline-formula id="j_infor427_ineq_093"><alternatives>
<mml:math><mml:mi mathvariant="script">P</mml:mi></mml:math>
<tex-math><![CDATA[$\mathcal{P}$]]></tex-math></alternatives></inline-formula>. This advantage is a function in the security parameter <italic>ℓ</italic>, defined as 
<disp-formula id="j_infor427_eq_001">
<alternatives>
<mml:math display="block"><mml:mtable displaystyle="true"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi mathvariant="sans-serif">Adv</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="script">A</mml:mi></mml:mrow></mml:msub><mml:mo>:</mml:mo><mml:mo>=</mml:mo><mml:mo stretchy="false">|</mml:mo><mml:mn>2</mml:mn><mml:mo>·</mml:mo><mml:mi mathvariant="sans-serif">Succ</mml:mi><mml:mo>−</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">|</mml:mo><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math>
<tex-math><![CDATA[\[ {\mathsf{Adv}_{\mathcal{A}}}:=|2\cdot \mathsf{Succ}-1|.\]]]></tex-math></alternatives>
</disp-formula> 
Here <inline-formula id="j_infor427_ineq_094"><alternatives>
<mml:math><mml:mi mathvariant="sans-serif">Succ</mml:mi></mml:math>
<tex-math><![CDATA[$\mathsf{Succ}$]]></tex-math></alternatives></inline-formula> is the probability that the adversary queries <inline-formula id="j_infor427_ineq_095"><alternatives>
<mml:math><mml:mi mathvariant="sans-serif">Test</mml:mi></mml:math>
<tex-math><![CDATA[$\mathsf{Test}$]]></tex-math></alternatives></inline-formula> on a fresh instance <inline-formula id="j_infor427_ineq_096"><alternatives>
<mml:math><mml:msubsup><mml:mrow><mml:mi mathvariant="normal">Π</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="italic">s</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup></mml:math>
<tex-math><![CDATA[${\Pi _{i}^{{s_{i}}}}$]]></tex-math></alternatives></inline-formula> and guesses correctly the bit <italic>b</italic> used by the <inline-formula id="j_infor427_ineq_097"><alternatives>
<mml:math><mml:mi mathvariant="sans-serif">Test</mml:mi></mml:math>
<tex-math><![CDATA[$\mathsf{Test}$]]></tex-math></alternatives></inline-formula> oracle in a moment when <inline-formula id="j_infor427_ineq_098"><alternatives>
<mml:math><mml:msubsup><mml:mrow><mml:mi mathvariant="normal">Π</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="italic">s</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup></mml:math>
<tex-math><![CDATA[${\Pi _{i}^{{s_{i}}}}$]]></tex-math></alternatives></inline-formula> is still fresh. <statement id="j_infor427_stat_001"><label>Definition 1.</label>
<p>A group key exchange protocol <inline-formula id="j_infor427_ineq_099"><alternatives>
<mml:math><mml:mi mathvariant="script">P</mml:mi></mml:math>
<tex-math><![CDATA[$\mathcal{P}$]]></tex-math></alternatives></inline-formula> provides <italic>quantum-future key secrecy</italic>, if for every dictionary <inline-formula id="j_infor427_ineq_100"><alternatives>
<mml:math><mml:mi mathvariant="script">D</mml:mi></mml:math>
<tex-math><![CDATA[$\mathcal{D}$]]></tex-math></alternatives></inline-formula> and every ppt adversary <inline-formula id="j_infor427_ineq_101"><alternatives>
<mml:math><mml:mi mathvariant="script">A</mml:mi></mml:math>
<tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> querying the <inline-formula id="j_infor427_ineq_102"><alternatives>
<mml:math><mml:mi mathvariant="sans-serif">Send</mml:mi></mml:math>
<tex-math><![CDATA[$\mathsf{Send}$]]></tex-math></alternatives></inline-formula>-oracle with at most <italic>q</italic> different protocol instances, the following inequality holds for some negligible function <inline-formula id="j_infor427_ineq_103"><alternatives>
<mml:math><mml:mi mathvariant="normal">negl</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mi>ℓ</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math>
<tex-math><![CDATA[$\mathrm{negl}(\ell )$]]></tex-math></alternatives></inline-formula>: 
<disp-formula id="j_infor427_eq_002">
<alternatives>
<mml:math display="block"><mml:mtable displaystyle="true"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi mathvariant="sans-serif">Adv</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="script">A</mml:mi></mml:mrow></mml:msub><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mi>ℓ</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo><mml:mo>⩽</mml:mo><mml:mi mathvariant="italic">ε</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mi>ℓ</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:mi mathvariant="italic">q</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:mi mathvariant="normal">negl</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mi>ℓ</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo><mml:mo mathvariant="normal">,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math>
<tex-math><![CDATA[\[ {\mathsf{Adv}_{\mathcal{A}}}(\ell )\leqslant \varepsilon (\ell ,q)+\mathrm{negl}(\ell ),\]]]></tex-math></alternatives>
</disp-formula> 
where <italic>ℓ</italic> is the security parameter and <italic>ε</italic> is a function which is at most linear in <inline-formula id="j_infor427_ineq_104"><alternatives>
<mml:math><mml:mi mathvariant="italic">q</mml:mi><mml:mo>.</mml:mo></mml:math>
<tex-math><![CDATA[$q.$]]></tex-math></alternatives></inline-formula></p></statement><statement id="j_infor427_stat_002"><label>Remark 1.</label>
<p>The above definition follows the standard approach in password authenticated key exchange, where typically the function <italic>ε</italic> is a constant multiple of <inline-formula id="j_infor427_ineq_105"><alternatives>
<mml:math><mml:mstyle displaystyle="false"><mml:mfrac><mml:mrow><mml:mi mathvariant="italic">q</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="false">|</mml:mo><mml:mi mathvariant="script">D</mml:mi><mml:mo stretchy="false">|</mml:mo></mml:mrow></mml:mfrac></mml:mstyle></mml:math>
<tex-math><![CDATA[$\frac{q}{|\mathcal{D}|}$]]></tex-math></alternatives></inline-formula> plus some negligible term (thus, it is assumed that passwords are chosen uniformly at random from the dictionary and that the adversary can test a constant number of passwords on each <inline-formula id="j_infor427_ineq_106"><alternatives>
<mml:math><mml:mi mathvariant="sans-serif">Send</mml:mi></mml:math>
<tex-math><![CDATA[$\mathsf{Send}$]]></tex-math></alternatives></inline-formula>-query).</p></statement></p>
</sec>
</sec>
<sec id="j_infor427_s_004">
<label>3</label>
<title>Tools</title>
<p>Our construction invokes two well-studied cryptographic primitives: a key encapsulation mechanism (KEM) and a message authentication code (MAC). We use them in a black-box way, in the sense that specific details of the primitives do not affect our security claims, as long as the required security properties are fulfilled. The KEM needs to be resistant against quantum adversaries and NIST’s ongoing standardization effort offers various candidates (National Institute of Standards and Technology, <xref ref-type="bibr" rid="j_infor427_ref_028">2019</xref>), whose security relies on the intractability of several families of mathematical problems. For instance, CRYSTALS-Kyber (Bos <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor427_ref_018">2018</xref>), Frodo (Bos <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor427_ref_017">2016</xref>), NewHope (Alkim <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor427_ref_002">2016</xref>) or NTRU Prime (Bernstein <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor427_ref_011">2017b</xref>) are lattice-based KEMs, BIKE (Aragon <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor427_ref_004">2017</xref>) or Classic McEliece (Bernstein <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor427_ref_010">2017a</xref>) are code-based, while SIKE (Azarderakhsh <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor427_ref_005">2017</xref>) is an isogeny-based proposal. On the other hand, for the choice of the MAC one can rely on a popular construction like Poly1305 (Bernstein, <xref ref-type="bibr" rid="j_infor427_ref_009">2005</xref>).</p>
<sec id="j_infor427_s_005">
<label>3.1</label>
<title>Key Encapsulation Mechanisms</title>
<p>Key encapsulation mechanisms are public key algorithms suited for the generation and transfer of a high entropy key for later use. To achieve this, first, a pair of keys is generated, one of them being public while the other must be kept secret. Any entity holding the public key is able to run an <italic>encapsulation</italic> algorithm, which outputs a fresh, high entropy, key and a ciphertext which “encapsulates” it. The user holding the secret key can, upon reception of this ciphertext, run a <italic>decapsulation</italic> algorithm, which outputs the same fresh key, shared, from that moment, between both users.</p>
<p>More formally, a <italic>key encapsulation mechanism</italic> (KEM) is a triple of algorithms <inline-formula id="j_infor427_ineq_107"><alternatives>
<mml:math><mml:mi mathvariant="script">K</mml:mi><mml:mo>=</mml:mo><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mi mathvariant="script">K</mml:mi><mml:mo>.</mml:mo><mml:mi mathvariant="sans-serif">KeyGen</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:mi mathvariant="sans-serif">Encaps</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:mi mathvariant="sans-serif">Decaps</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math>
<tex-math><![CDATA[$\mathcal{K}=(\mathcal{K}.\mathsf{KeyGen},\mathsf{Encaps},\mathsf{Decaps})$]]></tex-math></alternatives></inline-formula>, where: 
<list>
<list-item id="j_infor427_li_004">
<label>•</label>
<p>The probabilistic <italic>key generation</italic> algorithm <inline-formula id="j_infor427_ineq_108"><alternatives>
<mml:math><mml:mi mathvariant="script">K</mml:mi><mml:mo>.</mml:mo><mml:mi mathvariant="sans-serif">KeyGen</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:msup><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>ℓ</mml:mi></mml:mrow></mml:msup><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math>
<tex-math><![CDATA[$\mathcal{K}.\mathsf{KeyGen}({1^{\ell }})$]]></tex-math></alternatives></inline-formula> takes as input the security parameter and outputs a key pair <inline-formula id="j_infor427_ineq_109"><alternatives>
<mml:math><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mi mathvariant="italic">p</mml:mi><mml:mi mathvariant="italic">k</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:mi mathvariant="italic">s</mml:mi><mml:mi mathvariant="italic">k</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math>
<tex-math><![CDATA[$(pk,sk)$]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
<list-item id="j_infor427_li_005">
<label>•</label>
<p>The probabilistic <italic>encapsulation</italic> algorithm <inline-formula id="j_infor427_ineq_110"><alternatives>
<mml:math><mml:mi mathvariant="sans-serif">Encaps</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mi mathvariant="italic">p</mml:mi><mml:mi mathvariant="italic">k</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:msup><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>ℓ</mml:mi></mml:mrow></mml:msup><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math>
<tex-math><![CDATA[$\mathsf{Encaps}(pk,{1^{\ell }})$]]></tex-math></alternatives></inline-formula> takes as input a public key <inline-formula id="j_infor427_ineq_111"><alternatives>
<mml:math><mml:mi mathvariant="italic">p</mml:mi><mml:mi mathvariant="italic">k</mml:mi></mml:math>
<tex-math><![CDATA[$pk$]]></tex-math></alternatives></inline-formula> and outputs a ciphertext <italic>c</italic> and a key <inline-formula id="j_infor427_ineq_112"><alternatives>
<mml:math><mml:mi mathvariant="italic">k</mml:mi><mml:mo stretchy="false">∈</mml:mo><mml:msup><mml:mrow><mml:mo fence="true" stretchy="false">{</mml:mo><mml:mn>0</mml:mn><mml:mo mathvariant="normal">,</mml:mo><mml:mn>1</mml:mn><mml:mo fence="true" stretchy="false">}</mml:mo></mml:mrow><mml:mrow><mml:mi mathvariant="italic">p</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mi>ℓ</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:math>
<tex-math><![CDATA[$k\in {\{0,1\}^{p(\ell )}}$]]></tex-math></alternatives></inline-formula>, where <inline-formula id="j_infor427_ineq_113"><alternatives>
<mml:math><mml:mi mathvariant="italic">p</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mi>ℓ</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math>
<tex-math><![CDATA[$p(\ell )$]]></tex-math></alternatives></inline-formula> is a polynomial function of the security parameter.</p>
</list-item>
<list-item id="j_infor427_li_006">
<label>•</label>
<p>The deterministic <italic>decapsulation</italic> algorithm <inline-formula id="j_infor427_ineq_114"><alternatives>
<mml:math><mml:mi mathvariant="sans-serif">Decaps</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mi mathvariant="italic">s</mml:mi><mml:mi mathvariant="italic">k</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:mi mathvariant="italic">c</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:msup><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>ℓ</mml:mi></mml:mrow></mml:msup><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math>
<tex-math><![CDATA[$\mathsf{Decaps}(sk,c,{1^{\ell }})$]]></tex-math></alternatives></inline-formula> takes as input a secret key <inline-formula id="j_infor427_ineq_115"><alternatives>
<mml:math><mml:mi mathvariant="italic">s</mml:mi><mml:mi mathvariant="italic">k</mml:mi></mml:math>
<tex-math><![CDATA[$sk$]]></tex-math></alternatives></inline-formula> and a ciphertext <italic>c</italic> and outputs a key <italic>k</italic> or ⊥.</p>
</list-item>
</list> 
A KEM <inline-formula id="j_infor427_ineq_116"><alternatives>
<mml:math><mml:mi mathvariant="script">K</mml:mi></mml:math>
<tex-math><![CDATA[$\mathcal{K}$]]></tex-math></alternatives></inline-formula> is <italic>correct</italic> if for all <inline-formula id="j_infor427_ineq_117"><alternatives>
<mml:math><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mi mathvariant="italic">p</mml:mi><mml:mi mathvariant="italic">k</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:mi mathvariant="italic">s</mml:mi><mml:mi mathvariant="italic">k</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo><mml:mo stretchy="false">←</mml:mo><mml:mi mathvariant="script">K</mml:mi><mml:mo>.</mml:mo><mml:mi mathvariant="sans-serif">KeyGen</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:msup><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>ℓ</mml:mi></mml:mrow></mml:msup><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math>
<tex-math><![CDATA[$(pk,sk)\gets \mathcal{K}.\mathsf{KeyGen}({1^{\ell }})$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor427_ineq_118"><alternatives>
<mml:math><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mi mathvariant="italic">c</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:mi mathvariant="italic">k</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo><mml:mo stretchy="false">←</mml:mo><mml:mi mathvariant="sans-serif">Encaps</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mi mathvariant="italic">p</mml:mi><mml:mi mathvariant="italic">k</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:msup><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>ℓ</mml:mi></mml:mrow></mml:msup><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math>
<tex-math><![CDATA[$(c,k)\gets \mathsf{Encaps}(pk,{1^{\ell }})$]]></tex-math></alternatives></inline-formula>, we have <inline-formula id="j_infor427_ineq_119"><alternatives>
<mml:math><mml:mi mathvariant="sans-serif">Decaps</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mi mathvariant="italic">s</mml:mi><mml:mi mathvariant="italic">k</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:mi mathvariant="italic">c</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:msup><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>ℓ</mml:mi></mml:mrow></mml:msup><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mi mathvariant="italic">k</mml:mi></mml:math>
<tex-math><![CDATA[$\mathsf{Decaps}(sk,c,{1^{\ell }})=k$]]></tex-math></alternatives></inline-formula>.</p>
<p>As a security requirement, we adopt IND-CPA security against fully quantum adversaries from Bindel <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor427_ref_012">2017</xref>). This intuitively means that any eavesdropper, that may have access to quantum computation, is unable to obtain any information about the shared fresh key, which is, from its point of view, indistinguishable from a key chosen uniformly at random from the key space. In more detail, an IND-CPA experiment is defined, where a challenger <inline-formula id="j_infor427_ineq_120"><alternatives>
<mml:math><mml:mi mathvariant="script">C</mml:mi></mml:math>
<tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> generates <inline-formula id="j_infor427_ineq_121"><alternatives>
<mml:math><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mi mathvariant="italic">p</mml:mi><mml:mi mathvariant="italic">k</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:mi mathvariant="italic">s</mml:mi><mml:mi mathvariant="italic">k</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo><mml:mo stretchy="false">←</mml:mo><mml:mi mathvariant="script">K</mml:mi><mml:mo>.</mml:mo><mml:mi mathvariant="sans-serif">KeyGen</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:msup><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>ℓ</mml:mi></mml:mrow></mml:msup><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math>
<tex-math><![CDATA[$(pk,sk)\gets \mathcal{K}.\mathsf{KeyGen}({1^{\ell }})$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor427_ineq_122"><alternatives>
<mml:math><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:msup><mml:mrow><mml:mi mathvariant="italic">c</mml:mi></mml:mrow><mml:mrow><mml:mo>∗</mml:mo></mml:mrow></mml:msup><mml:mo mathvariant="normal">,</mml:mo><mml:msubsup><mml:mrow><mml:mi mathvariant="italic">k</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow><mml:mrow><mml:mo>∗</mml:mo></mml:mrow></mml:msubsup><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo><mml:mo stretchy="false">←</mml:mo><mml:mi mathvariant="sans-serif">Encaps</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mi mathvariant="italic">p</mml:mi><mml:mi mathvariant="italic">k</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:msup><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>ℓ</mml:mi></mml:mrow></mml:msup><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math>
<tex-math><![CDATA[$({c^{\ast }},{k_{0}^{\ast }})\gets \mathsf{Encaps}(pk,{1^{\ell }})$]]></tex-math></alternatives></inline-formula>, chooses uniformly at random a key <inline-formula id="j_infor427_ineq_123"><alternatives>
<mml:math><mml:msubsup><mml:mrow><mml:mi mathvariant="italic">k</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mo>∗</mml:mo></mml:mrow></mml:msubsup><mml:mo stretchy="false">∈</mml:mo><mml:msup><mml:mrow><mml:mo fence="true" stretchy="false">{</mml:mo><mml:mn>0</mml:mn><mml:mo mathvariant="normal">,</mml:mo><mml:mn>1</mml:mn><mml:mo fence="true" stretchy="false">}</mml:mo></mml:mrow><mml:mrow><mml:mi mathvariant="italic">p</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mi>ℓ</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:math>
<tex-math><![CDATA[${k_{1}^{\ast }}\in {\{0,1\}^{p(\ell )}}$]]></tex-math></alternatives></inline-formula> and a bit <inline-formula id="j_infor427_ineq_124"><alternatives>
<mml:math><mml:mi mathvariant="italic">b</mml:mi><mml:mo stretchy="false">∈</mml:mo><mml:mo fence="true" stretchy="false">{</mml:mo><mml:mn>0</mml:mn><mml:mo mathvariant="normal">,</mml:mo><mml:mn>1</mml:mn><mml:mo fence="true" stretchy="false">}</mml:mo></mml:math>
<tex-math><![CDATA[$b\in \{0,1\}$]]></tex-math></alternatives></inline-formula>. Then the adversary <inline-formula id="j_infor427_ineq_125"><alternatives>
<mml:math><mml:mi mathvariant="script">A</mml:mi></mml:math>
<tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula>, which is treated as a quantum algorithm, is given <inline-formula id="j_infor427_ineq_126"><alternatives>
<mml:math><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mi mathvariant="italic">p</mml:mi><mml:mi mathvariant="italic">k</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:msup><mml:mrow><mml:mi mathvariant="italic">c</mml:mi></mml:mrow><mml:mrow><mml:mo>∗</mml:mo></mml:mrow></mml:msup><mml:mo mathvariant="normal">,</mml:mo><mml:msubsup><mml:mrow><mml:mi mathvariant="italic">k</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">b</mml:mi></mml:mrow><mml:mrow><mml:mo>∗</mml:mo></mml:mrow></mml:msubsup><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math>
<tex-math><![CDATA[$(pk,{c^{\ast }},{k_{b}^{\ast }})$]]></tex-math></alternatives></inline-formula> and produces an output <inline-formula id="j_infor427_ineq_127"><alternatives>
<mml:math><mml:msup><mml:mrow><mml:mi mathvariant="italic">b</mml:mi></mml:mrow><mml:mrow><mml:mo>′</mml:mo></mml:mrow></mml:msup><mml:mo stretchy="false">∈</mml:mo><mml:mo fence="true" stretchy="false">{</mml:mo><mml:mn>0</mml:mn><mml:mo mathvariant="normal">,</mml:mo><mml:mn>1</mml:mn><mml:mo fence="true" stretchy="false">}</mml:mo></mml:math>
<tex-math><![CDATA[${b^{\prime }}\in \{0,1\}$]]></tex-math></alternatives></inline-formula> as the guess for <italic>b</italic>. With <inline-formula id="j_infor427_ineq_128"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="sans-serif">Succ</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="script">A</mml:mi></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${\mathsf{Succ}_{\mathcal{A}}}$]]></tex-math></alternatives></inline-formula> being the probability that <inline-formula id="j_infor427_ineq_129"><alternatives>
<mml:math><mml:mi mathvariant="script">A</mml:mi></mml:math>
<tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula>’s output equals <italic>b</italic>, we define <inline-formula id="j_infor427_ineq_130"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="sans-serif">Adv</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="script">A</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:mtext mathvariant="monospace">KEM</mml:mtext></mml:mrow></mml:msub><mml:mo>:</mml:mo><mml:mo>=</mml:mo><mml:mo stretchy="false">|</mml:mo><mml:mn>2</mml:mn><mml:mo>·</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="sans-serif">Succ</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="script">A</mml:mi></mml:mrow></mml:msub><mml:mo>−</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">|</mml:mo></mml:math>
<tex-math><![CDATA[${\mathsf{Adv}_{\mathcal{A},\texttt{KEM}}}:=|2\cdot {\mathsf{Succ}_{\mathcal{A}}}-1|$]]></tex-math></alternatives></inline-formula> and say that the KEM is IND-CPA secure against fully quantum adversaries if for every polynomial-time bounded <inline-formula id="j_infor427_ineq_131"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="sans-serif">Adv</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="script">A</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:mtext mathvariant="monospace">KEM</mml:mtext></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${\mathsf{Adv}_{\mathcal{A},\texttt{KEM}}}$]]></tex-math></alternatives></inline-formula>, the advantage <inline-formula id="j_infor427_ineq_132"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="sans-serif">Adv</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="script">A</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:mtext mathvariant="monospace">KEM</mml:mtext></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${\mathsf{Adv}_{\mathcal{A},\texttt{KEM}}}$]]></tex-math></alternatives></inline-formula> is negligible.</p>
</sec>
<sec id="j_infor427_s_006">
<label>3.2</label>
<title>Message Authentication Codes</title>
<p>A message authentication code is a symmetric key primitive whose purpose is to preserve information integrity. To achieve this, whenever two users holding the same secret key wish to communicate, the one sending the message produces an authentication tag computed from the message and the secret key. When the other user receives the message together with the tag, the secret key allows him to check the validity of the tag with respect to the message. This procedure protects against an adversary modifying the message without being detected, because if the MAC is secure he will be unable to produce a valid tag for any different message.</p>
<p>More formally, a <italic>message authentication code</italic> (MAC) (Dodis <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor427_ref_025">2012</xref>) is a triple of algorithms <inline-formula id="j_infor427_ineq_133"><alternatives>
<mml:math><mml:mi mathvariant="script">M</mml:mi><mml:mo>=</mml:mo><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mi mathvariant="script">M</mml:mi><mml:mo>.</mml:mo><mml:mi mathvariant="sans-serif">KeyGen</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:mi mathvariant="sans-serif">Tag</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:mi mathvariant="sans-serif">Vf</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math>
<tex-math><![CDATA[$\mathcal{M}=(\mathcal{M}.\mathsf{KeyGen},\mathsf{Tag},\mathsf{Vf})$]]></tex-math></alternatives></inline-formula> where:</p>
<list>
<list-item id="j_infor427_li_007">
<label>•</label>
<p>The probabilistic <italic>key generation</italic> algorithm <inline-formula id="j_infor427_ineq_134"><alternatives>
<mml:math><mml:mi mathvariant="script">M</mml:mi><mml:mo>.</mml:mo><mml:mi mathvariant="sans-serif">KeyGen</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:msup><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>ℓ</mml:mi></mml:mrow></mml:msup><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math>
<tex-math><![CDATA[$\mathcal{M}.\mathsf{KeyGen}({1^{\ell }})$]]></tex-math></alternatives></inline-formula> takes as input the security parameter and outputs a key <inline-formula id="j_infor427_ineq_135"><alternatives>
<mml:math><mml:mi mathvariant="italic">k</mml:mi><mml:mo stretchy="false">∈</mml:mo><mml:msup><mml:mrow><mml:mo fence="true" stretchy="false">{</mml:mo><mml:mn>0</mml:mn><mml:mo mathvariant="normal">,</mml:mo><mml:mn>1</mml:mn><mml:mo fence="true" stretchy="false">}</mml:mo></mml:mrow><mml:mrow><mml:mi mathvariant="italic">m</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mi>ℓ</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:math>
<tex-math><![CDATA[$k\in {\{0,1\}^{m(\ell )}}$]]></tex-math></alternatives></inline-formula> for a suitable polynomial <inline-formula id="j_infor427_ineq_136"><alternatives>
<mml:math><mml:mi mathvariant="italic">m</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mi>ℓ</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math>
<tex-math><![CDATA[$m(\ell )$]]></tex-math></alternatives></inline-formula>.<xref ref-type="fn" rid="j_infor427_fn_003">3</xref><fn id="j_infor427_fn_003"><label><sup>3</sup></label>
<p>In the sequel, for the sake of simplicity, we will assume <inline-formula id="j_infor427_ineq_137"><alternatives>
<mml:math><mml:mi mathvariant="script">M</mml:mi><mml:mo>.</mml:mo><mml:mi mathvariant="sans-serif">KeyGen</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:msup><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>ℓ</mml:mi></mml:mrow></mml:msup><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math>
<tex-math><![CDATA[$\mathcal{M}.\mathsf{KeyGen}({1^{\ell }})$]]></tex-math></alternatives></inline-formula> actually selects <italic>k</italic> uniformly at random in <inline-formula id="j_infor427_ineq_138"><alternatives>
<mml:math><mml:msup><mml:mrow><mml:mo fence="true" stretchy="false">{</mml:mo><mml:mn>0</mml:mn><mml:mo mathvariant="normal">,</mml:mo><mml:mn>1</mml:mn><mml:mo fence="true" stretchy="false">}</mml:mo></mml:mrow><mml:mrow><mml:mi mathvariant="italic">m</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mi>ℓ</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:math>
<tex-math><![CDATA[${\{0,1\}^{m(\ell )}}$]]></tex-math></alternatives></inline-formula>.</p></fn></p>
</list-item>
<list-item id="j_infor427_li_008">
<label>•</label>
<p>The probabilistic <italic>authentication</italic> algorithm <inline-formula id="j_infor427_ineq_139"><alternatives>
<mml:math><mml:mi mathvariant="sans-serif">Tag</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mi mathvariant="italic">k</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:mi mathvariant="italic">M</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math>
<tex-math><![CDATA[$\mathsf{Tag}(k,M)$]]></tex-math></alternatives></inline-formula> takes as input a key <italic>k</italic> and a message <italic>M</italic> and outputs a tag <italic>t</italic>.</p>
</list-item>
<list-item id="j_infor427_li_009">
<label>•</label>
<p>The deterministic <italic>verification</italic> algorithm <inline-formula id="j_infor427_ineq_140"><alternatives>
<mml:math><mml:mi mathvariant="sans-serif">Vf</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mi mathvariant="italic">k</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:mi mathvariant="italic">M</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:mi mathvariant="italic">t</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math>
<tex-math><![CDATA[$\mathsf{Vf}(k,M,t)$]]></tex-math></alternatives></inline-formula> takes as input a key <italic>k</italic>, a message <italic>M</italic> and a tag <italic>t</italic> and outputs a decision: 1 (accept) or 0 (reject).</p>
</list-item>
</list>
<p>The standard security notion for a MAC is <italic>unforgeability under chosen message and chosen verification queries attack</italic> (UF-CMVA) (Dodis <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor427_ref_025">2012</xref>). This essentially means that an adversary cannot produce a valid tag for a message of his choice, even if he has access to tags of other messages of his choice and is able to check validity of pairs message-tag (via the so called <italic>verification oracle</italic>). To formally capture this notion, an experiment is defined where a challenger <inline-formula id="j_infor427_ineq_141"><alternatives>
<mml:math><mml:mi mathvariant="script">C</mml:mi></mml:math>
<tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> generates <inline-formula id="j_infor427_ineq_142"><alternatives>
<mml:math><mml:mi mathvariant="italic">k</mml:mi><mml:mo stretchy="false">←</mml:mo><mml:mi mathvariant="script">M</mml:mi><mml:mo>.</mml:mo><mml:mi mathvariant="sans-serif">KeyGen</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:msup><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>ℓ</mml:mi></mml:mrow></mml:msup><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math>
<tex-math><![CDATA[$k\gets \mathcal{M}.\mathsf{KeyGen}({1^{\ell }})$]]></tex-math></alternatives></inline-formula> and the adversary <inline-formula id="j_infor427_ineq_143"><alternatives>
<mml:math><mml:mi mathvariant="script">A</mml:mi></mml:math>
<tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> is granted oracle access to <inline-formula id="j_infor427_ineq_144"><alternatives>
<mml:math><mml:mi mathvariant="sans-serif">Tag</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mi mathvariant="italic">k</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:mo>·</mml:mo><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math>
<tex-math><![CDATA[$\mathsf{Tag}(k,\cdot )$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor427_ineq_145"><alternatives>
<mml:math><mml:mi mathvariant="sans-serif">Vf</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mi mathvariant="italic">k</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:mo>·</mml:mo><mml:mo mathvariant="normal">,</mml:mo><mml:mo>·</mml:mo><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math>
<tex-math><![CDATA[$\mathsf{Vf}(k,\cdot ,\cdot )$]]></tex-math></alternatives></inline-formula>. The adversary wins if <inline-formula id="j_infor427_ineq_146"><alternatives>
<mml:math><mml:mi mathvariant="script">A</mml:mi></mml:math>
<tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> makes a query <inline-formula id="j_infor427_ineq_147"><alternatives>
<mml:math><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:msup><mml:mrow><mml:mi mathvariant="italic">M</mml:mi></mml:mrow><mml:mrow><mml:mo>∗</mml:mo></mml:mrow></mml:msup><mml:mo mathvariant="normal">,</mml:mo><mml:msup><mml:mrow><mml:mi mathvariant="italic">t</mml:mi></mml:mrow><mml:mrow><mml:mo>∗</mml:mo></mml:mrow></mml:msup><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math>
<tex-math><![CDATA[$({M^{\ast }},{t^{\ast }})$]]></tex-math></alternatives></inline-formula> to <inline-formula id="j_infor427_ineq_148"><alternatives>
<mml:math><mml:mi mathvariant="sans-serif">Vf</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mi mathvariant="italic">k</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:mo>·</mml:mo><mml:mo mathvariant="normal">,</mml:mo><mml:mo>·</mml:mo><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math>
<tex-math><![CDATA[$\mathsf{Vf}(k,\cdot ,\cdot )$]]></tex-math></alternatives></inline-formula> such that the output is 1 and <inline-formula id="j_infor427_ineq_149"><alternatives>
<mml:math><mml:msup><mml:mrow><mml:mi mathvariant="italic">M</mml:mi></mml:mrow><mml:mrow><mml:mo>∗</mml:mo></mml:mrow></mml:msup></mml:math>
<tex-math><![CDATA[${M^{\ast }}$]]></tex-math></alternatives></inline-formula> has not been queried to <inline-formula id="j_infor427_ineq_150"><alternatives>
<mml:math><mml:mi mathvariant="sans-serif">Tag</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mi mathvariant="italic">k</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:mo>·</mml:mo><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math>
<tex-math><![CDATA[$\mathsf{Tag}(k,\cdot )$]]></tex-math></alternatives></inline-formula>. The MAC is said to be UF-CMVA secure if for all ppt adversaries <inline-formula id="j_infor427_ineq_151"><alternatives>
<mml:math><mml:mi mathvariant="script">A</mml:mi></mml:math>
<tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula>, the probability <inline-formula id="j_infor427_ineq_152"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="sans-serif">Succ</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="script">A</mml:mi></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${\mathsf{Succ}_{\mathcal{A}}}$]]></tex-math></alternatives></inline-formula> of the adversary winning the previous experiment is negligible in the security parameter <italic>ℓ</italic>.</p>
<p>If <inline-formula id="j_infor427_ineq_153"><alternatives>
<mml:math><mml:mi mathvariant="sans-serif">Tag</mml:mi></mml:math>
<tex-math><![CDATA[$\mathsf{Tag}$]]></tex-math></alternatives></inline-formula> is a deterministic algorithm, then <inline-formula id="j_infor427_ineq_154"><alternatives>
<mml:math><mml:mi mathvariant="sans-serif">Vf</mml:mi></mml:math>
<tex-math><![CDATA[$\mathsf{Vf}$]]></tex-math></alternatives></inline-formula> does not need to be explicitly defined, since it is specified by <inline-formula id="j_infor427_ineq_155"><alternatives>
<mml:math><mml:mi mathvariant="sans-serif">Vf</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mi mathvariant="italic">k</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:mi mathvariant="italic">M</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:mi mathvariant="italic">t</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:math>
<tex-math><![CDATA[$\mathsf{Vf}(k,M,t)=1$]]></tex-math></alternatives></inline-formula> if and only if <inline-formula id="j_infor427_ineq_156"><alternatives>
<mml:math><mml:mi mathvariant="sans-serif">Tag</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mi mathvariant="italic">k</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:mi mathvariant="italic">M</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mi mathvariant="italic">t</mml:mi></mml:math>
<tex-math><![CDATA[$\mathsf{Tag}(k,M)=t$]]></tex-math></alternatives></inline-formula>.</p>
</sec>
<sec id="j_infor427_s_007">
<label>3.3</label>
<title>Deterministic Randomness Extraction</title>
<p>In the protocol to be discussed in Section <xref rid="j_infor427_s_008">4</xref>, we use a prime order group <italic>G</italic> in which the Decision-Diffie-Hellman assumption holds, and from (uniform random) elements in <italic>G</italic>, we want to extract (uniform random) bit-strings. To realize this without the introduction of additional technical machinery or a random oracle, work in Chevassut <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor427_ref_021">2006</xref>) comes in handy. Specifically, if we let <italic>G</italic> be the group of quadratic residues in <inline-formula id="j_infor427_ineq_157"><alternatives>
<mml:math><mml:msubsup><mml:mrow><mml:mi mathvariant="double-struck">Z</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn><mml:mo stretchy="false">|</mml:mo><mml:mi mathvariant="italic">G</mml:mi><mml:mo stretchy="false">|</mml:mo><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mo>×</mml:mo></mml:mrow></mml:msubsup></mml:math>
<tex-math><![CDATA[${\mathbb{Z}_{2|G|+1}^{\times }}$]]></tex-math></alternatives></inline-formula> with a Sophie-Germain prime <inline-formula id="j_infor427_ineq_158"><alternatives>
<mml:math><mml:mo stretchy="false">|</mml:mo><mml:mi mathvariant="italic">G</mml:mi><mml:mo stretchy="false">|</mml:mo></mml:math>
<tex-math><![CDATA[$|G|$]]></tex-math></alternatives></inline-formula> close to a power of 2, simple truncation of the binary representation is an efficient extractor (Chevassut <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor427_ref_021">2006</xref>, Section 3.2). Subsequently, for a (uniform random) group element <inline-formula id="j_infor427_ineq_159"><alternatives>
<mml:math><mml:mi mathvariant="italic">g</mml:mi><mml:mo stretchy="false">∈</mml:mo><mml:mi mathvariant="italic">G</mml:mi></mml:math>
<tex-math><![CDATA[$g\in G$]]></tex-math></alternatives></inline-formula>, we denote by <inline-formula id="j_infor427_ineq_160"><alternatives>
<mml:math><mml:mo fence="true" stretchy="false">[</mml:mo><mml:mi mathvariant="italic">g</mml:mi><mml:mo fence="true" stretchy="false">]</mml:mo></mml:math>
<tex-math><![CDATA[$[g]$]]></tex-math></alternatives></inline-formula> (statistically close to uniform random) bits extracted deterministically from <italic>g</italic>. When extracting two independent (half-length) bit-strings from <italic>g</italic>, we take <inline-formula id="j_infor427_ineq_161"><alternatives>
<mml:math><mml:mo fence="true" stretchy="false">[</mml:mo><mml:mi mathvariant="italic">g</mml:mi><mml:mo fence="true" stretchy="false">]</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mo fence="true" stretchy="false">[</mml:mo><mml:mi mathvariant="italic">g</mml:mi><mml:mo fence="true" stretchy="false">]</mml:mo></mml:mrow><mml:mrow><mml:mi mathvariant="italic">L</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">|</mml:mo><mml:mo stretchy="false">|</mml:mo><mml:msub><mml:mrow><mml:mo fence="true" stretchy="false">[</mml:mo><mml:mi mathvariant="italic">g</mml:mi><mml:mo fence="true" stretchy="false">]</mml:mo></mml:mrow><mml:mrow><mml:mi mathvariant="italic">R</mml:mi></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[$[g]={[g]_{L}}||{[g]_{R}}$]]></tex-math></alternatives></inline-formula> as concatenation of two (half length) bit-strings. <statement id="j_infor427_stat_003"><label>Remark 2.</label>
<p>An elegant and more efficient approach to randomness extraction, which enables the use of elliptic curves over prime fields <inline-formula id="j_infor427_ineq_162"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="double-struck">F</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">p</mml:mi></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${\mathbb{F}_{p}}$]]></tex-math></alternatives></inline-formula> with <italic>p</italic> being close to a power of 2, is provided by Chevassut et al.’s <italic>Twist-AUgmented (TAU)</italic> technique. When trying to optimize the performance of the protocol below, a possible adoption of the TAU approach is natural to explore. Similar to Chevassut <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor427_ref_021">2006</xref>, Fig. 1) one could—at the bandwidth cost of essentially two parallel Diffie-Hellman executions—try to work on a curve and its twist simultaneously, eventually leveraging the message authentication code to select the correct protocol outcome.</p></statement></p>
</sec>
</sec>
<sec id="j_infor427_s_008">
<label>4</label>
<title>The Proposed Protocol</title>
<p>Let <inline-formula id="j_infor427_ineq_163"><alternatives>
<mml:math><mml:mi mathvariant="script">D</mml:mi></mml:math>
<tex-math><![CDATA[$\mathcal{D}$]]></tex-math></alternatives></inline-formula> be the (polynomial-size) password dictionary, and let <italic>G</italic> be a group of prime order <italic>q</italic>. We assume that <inline-formula id="j_infor427_ineq_164"><alternatives>
<mml:math><mml:mi mathvariant="script">D</mml:mi><mml:mo stretchy="false">⊆</mml:mo><mml:mi mathvariant="italic">G</mml:mi></mml:math>
<tex-math><![CDATA[$\mathcal{D}\subseteq G$]]></tex-math></alternatives></inline-formula> through some public and efficiently computable injection <inline-formula id="j_infor427_ineq_165"><alternatives>
<mml:math><mml:mi mathvariant="script">D</mml:mi><mml:mo stretchy="false">↪</mml:mo><mml:mi mathvariant="italic">G</mml:mi></mml:math>
<tex-math><![CDATA[$\mathcal{D}\hookrightarrow G$]]></tex-math></alternatives></inline-formula>. For instance, if <inline-formula id="j_infor427_ineq_166"><alternatives>
<mml:math><mml:mi mathvariant="italic">G</mml:mi><mml:mo>=</mml:mo><mml:mo fence="true" stretchy="false">⟨</mml:mo><mml:mi mathvariant="italic">g</mml:mi><mml:mo fence="true" stretchy="false">⟩</mml:mo></mml:math>
<tex-math><![CDATA[$G=\langle g\rangle $]]></tex-math></alternatives></inline-formula> is the group of quadratic residues in <inline-formula id="j_infor427_ineq_167"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="double-struck">Z</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn><mml:mo stretchy="false">|</mml:mo><mml:mi mathvariant="italic">G</mml:mi><mml:mo stretchy="false">|</mml:mo><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${\mathbb{Z}_{2|G|+1}}$]]></tex-math></alternatives></inline-formula> with a Sophie-Germain prime <inline-formula id="j_infor427_ineq_168"><alternatives>
<mml:math><mml:mo stretchy="false">|</mml:mo><mml:mi mathvariant="italic">G</mml:mi><mml:mo stretchy="false">|</mml:mo></mml:math>
<tex-math><![CDATA[$|G|$]]></tex-math></alternatives></inline-formula>, we can identify the binary representation of (length-restricted) passwords with elements in <inline-formula id="j_infor427_ineq_169"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="double-struck">Z</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="false">|</mml:mo><mml:mi mathvariant="italic">G</mml:mi><mml:mo stretchy="false">|</mml:mo></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${\mathbb{Z}_{|G|}}$]]></tex-math></alternatives></inline-formula>, and then map passwords uniquely into <italic>G</italic> by raising the generator <italic>g</italic> to the appropriate power.<xref ref-type="fn" rid="j_infor427_fn_004">4</xref><fn id="j_infor427_fn_004"><label><sup>4</sup></label>
<p>In view of Definition <xref rid="j_infor427_stat_001">1</xref>, simply squaring the password <inline-formula id="j_infor427_ineq_170"><alternatives>
<mml:math><mml:mi mathvariant="sans-serif">pw</mml:mi></mml:math>
<tex-math><![CDATA[$\mathsf{pw}$]]></tex-math></alternatives></inline-formula>, seen as group element, has the downside that with any incorrect guess <inline-formula id="j_infor427_ineq_171"><alternatives>
<mml:math><mml:msup><mml:mrow><mml:mi mathvariant="sans-serif">pw</mml:mi></mml:mrow><mml:mrow><mml:mo>′</mml:mo></mml:mrow></mml:msup></mml:math>
<tex-math><![CDATA[${\mathsf{pw}^{\prime }}$]]></tex-math></alternatives></inline-formula> for <inline-formula id="j_infor427_ineq_172"><alternatives>
<mml:math><mml:mi mathvariant="sans-serif">pw</mml:mi></mml:math>
<tex-math><![CDATA[$\mathsf{pw}$]]></tex-math></alternatives></inline-formula>, an adversary can exclude <inline-formula id="j_infor427_ineq_173"><alternatives>
<mml:math><mml:mo>−</mml:mo><mml:msup><mml:mrow><mml:mi mathvariant="sans-serif">pw</mml:mi></mml:mrow><mml:mrow><mml:mo>′</mml:mo></mml:mrow></mml:msup></mml:math>
<tex-math><![CDATA[$-{\mathsf{pw}^{\prime }}$]]></tex-math></alternatives></inline-formula>, too.</p></fn> Finally, let <italic>ℓ</italic> denote the security parameter and <inline-formula id="j_infor427_ineq_174"><alternatives>
<mml:math><mml:mi mathvariant="italic">p</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mi>ℓ</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math>
<tex-math><![CDATA[$p(\ell )$]]></tex-math></alternatives></inline-formula> denote the bit-length of session keys. We impose a Decisional Diffie Hellman assumption as follows: <statement id="j_infor427_stat_004"><label>Assumption 1</label>
<title><italic>(Decisional Diffie Hellman for</italic> <inline-formula id="j_infor427_ineq_175"><alternatives>
<mml:math><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mi mathvariant="italic">G</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:mi mathvariant="script">D</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math>
<tex-math><![CDATA[$(G,\mathcal{D})$]]></tex-math></alternatives></inline-formula><italic>).</italic></title>
<p>Let <italic>G</italic> be a finite group of prime order and <inline-formula id="j_infor427_ineq_176"><alternatives>
<mml:math><mml:mi mathvariant="script">D</mml:mi></mml:math>
<tex-math><![CDATA[$\mathcal{D}$]]></tex-math></alternatives></inline-formula> a dictionary with an efficient injection <inline-formula id="j_infor427_ineq_177"><alternatives>
<mml:math><mml:mi mathvariant="italic">ι</mml:mi><mml:mo>:</mml:mo><mml:mi mathvariant="script">D</mml:mi><mml:mo stretchy="false">↪</mml:mo><mml:mi mathvariant="italic">G</mml:mi></mml:math>
<tex-math><![CDATA[$\iota :\mathcal{D}\hookrightarrow G$]]></tex-math></alternatives></inline-formula>. Then, the Decisional Diffie Hellman assumption for <inline-formula id="j_infor427_ineq_178"><alternatives>
<mml:math><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mi mathvariant="italic">G</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:mi mathvariant="script">D</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math>
<tex-math><![CDATA[$(G,\mathcal{D})$]]></tex-math></alternatives></inline-formula> states that, for every <inline-formula id="j_infor427_ineq_179"><alternatives>
<mml:math><mml:mi mathvariant="italic">g</mml:mi><mml:mo stretchy="false">∈</mml:mo><mml:mi mathvariant="italic">ι</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mi mathvariant="script">D</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math>
<tex-math><![CDATA[$g\in \iota (\mathcal{D})$]]></tex-math></alternatives></inline-formula>, the probability distributions <inline-formula id="j_infor427_ineq_180"><alternatives>
<mml:math><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:msup><mml:mrow><mml:mi mathvariant="italic">g</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">a</mml:mi></mml:mrow></mml:msup><mml:mo mathvariant="normal">,</mml:mo><mml:msup><mml:mrow><mml:mi mathvariant="italic">g</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">b</mml:mi></mml:mrow></mml:msup><mml:mo mathvariant="normal">,</mml:mo><mml:msup><mml:mrow><mml:mi mathvariant="italic">g</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">a</mml:mi><mml:mi mathvariant="italic">b</mml:mi></mml:mrow></mml:msup><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math>
<tex-math><![CDATA[$({g^{a}},{g^{b}},{g^{ab}})$]]></tex-math></alternatives></inline-formula> for <inline-formula id="j_infor427_ineq_181"><alternatives>
<mml:math><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mi mathvariant="italic">a</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:mi mathvariant="italic">b</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo><mml:mo stretchy="false">←</mml:mo><mml:msubsup><mml:mrow><mml:mi mathvariant="double-struck">Z</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="false">|</mml:mo><mml:mi mathvariant="italic">G</mml:mi><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:math>
<tex-math><![CDATA[$(a,b)\gets {\mathbb{Z}_{|G|}^{2}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor427_ineq_182"><alternatives>
<mml:math><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:msup><mml:mrow><mml:mi mathvariant="italic">g</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">a</mml:mi></mml:mrow></mml:msup><mml:mo mathvariant="normal">,</mml:mo><mml:msup><mml:mrow><mml:mi mathvariant="italic">g</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">b</mml:mi></mml:mrow></mml:msup><mml:mo mathvariant="normal">,</mml:mo><mml:mi mathvariant="italic">h</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math>
<tex-math><![CDATA[$({g^{a}},{g^{b}},h)$]]></tex-math></alternatives></inline-formula> for <inline-formula id="j_infor427_ineq_183"><alternatives>
<mml:math><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mi mathvariant="italic">a</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:mi mathvariant="italic">b</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:mi mathvariant="italic">h</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo><mml:mo stretchy="false">←</mml:mo><mml:msubsup><mml:mrow><mml:mi mathvariant="double-struck">Z</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="false">|</mml:mo><mml:mi mathvariant="italic">G</mml:mi><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup><mml:mo>×</mml:mo><mml:mi mathvariant="italic">G</mml:mi></mml:math>
<tex-math><![CDATA[$(a,b,h)\gets {\mathbb{Z}_{|G|}^{2}}\times G$]]></tex-math></alternatives></inline-formula> are computationally indistinguishable. In other words, no ppt algorithm can tell them apart with non-negligible probability in the security parameter <italic>ℓ</italic>.</p></statement></p>
<sec id="j_infor427_s_009">
<label>4.1</label>
<title>Protocol Specification</title>
<p>Let <inline-formula id="j_infor427_ineq_184"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="italic">U</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub><mml:mo mathvariant="normal">,</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="italic">U</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo mathvariant="normal">,</mml:mo><mml:mo>…</mml:mo><mml:mo mathvariant="normal">,</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="italic">U</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">n</mml:mi></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${U_{0}},{U_{1}},\dots ,{U_{n}}$]]></tex-math></alternatives></inline-formula> be the users running the protocol and assume they share password <inline-formula id="j_infor427_ineq_185"><alternatives>
<mml:math><mml:mi mathvariant="sans-serif">pw</mml:mi></mml:math>
<tex-math><![CDATA[$\mathsf{pw}$]]></tex-math></alternatives></inline-formula>. Further, we will assume that every user is aware of his index and the indices of the rest of participants. Our construction is depicted in Fig. <xref rid="j_infor427_fig_001">1</xref>, while in Fig. <xref rid="j_infor427_fig_002">2</xref> we give a somewhat simplified description for the case of four users.</p>
<p>The basic idea is a simple key transport from <inline-formula id="j_infor427_ineq_186"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="italic">U</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${U_{0}}$]]></tex-math></alternatives></inline-formula> to all the other parties, with the actual session key <italic>k</italic> being masked (for each of them) with an ephemeral key obtained from the key encapsulation. To ensure (password-based) authentication, in parallel each user establishes a Diffie-Hellman key with <inline-formula id="j_infor427_ineq_187"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="italic">U</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${U_{0}}$]]></tex-math></alternatives></inline-formula>, with the shared password fixing a generator for the Diffie-Hellman group. The latter keys are used to compute “after the fact” authentication tags on protocol messages. Once a player is convinced that all protocol messages are legitimate, the session key is accepted. More precisely:</p>
<list>
<list-item id="j_infor427_li_010">
<label>•</label>
<p>In Round I, <inline-formula id="j_infor427_ineq_188"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="italic">U</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${U_{0}}$]]></tex-math></alternatives></inline-formula> broadcasts a group element, <inline-formula id="j_infor427_ineq_189"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="italic">g</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${g_{0}}$]]></tex-math></alternatives></inline-formula>, obtained as an encoding of his password, which is his “Diffie-Hellman contribution” for the authentication tags. Any other user <inline-formula id="j_infor427_ineq_190"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="italic">U</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${U_{i}}$]]></tex-math></alternatives></inline-formula> broadcasts similarly a group element <inline-formula id="j_infor427_ineq_191"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="italic">g</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub><mml:mo mathvariant="normal">,</mml:mo></mml:math>
<tex-math><![CDATA[${g_{i}},$]]></tex-math></alternatives></inline-formula> and his freshly generated public key <inline-formula id="j_infor427_ineq_192"><alternatives>
<mml:math><mml:mi mathvariant="italic">p</mml:mi><mml:msub><mml:mrow><mml:mi mathvariant="italic">k</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[$p{k_{i}}$]]></tex-math></alternatives></inline-formula> for the key encapsulation mechanism.</p>
</list-item>
<list-item id="j_infor427_li_011">
<label>•</label>
<p>In Round II, user <inline-formula id="j_infor427_ineq_193"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="italic">U</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${U_{0}}$]]></tex-math></alternatives></inline-formula> generates for each user <inline-formula id="j_infor427_ineq_194"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="italic">U</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">j</mml:mi></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${U_{j}}$]]></tex-math></alternatives></inline-formula> a KEM key, and masks with it a (freshly chosen for each run) bitstring <italic>k</italic> (which will eventually be the session key). This message is authenticated using a bit-string extracted from <inline-formula id="j_infor427_ineq_195"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="italic">g</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn><mml:mo mathvariant="normal">,</mml:mo><mml:mi mathvariant="italic">j</mml:mi></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${g_{0,j}}$]]></tex-math></alternatives></inline-formula>. Furthermore, users also broadcast confirmation tags pairwise. Namely, <inline-formula id="j_infor427_ineq_196"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="italic">U</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${U_{i}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor427_ineq_197"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="italic">U</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">j</mml:mi></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${U_{j}}$]]></tex-math></alternatives></inline-formula> extract two different MAC keys from the shared element <inline-formula id="j_infor427_ineq_198"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="italic">g</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:mi mathvariant="italic">j</mml:mi></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${g_{i,j}}$]]></tex-math></alternatives></inline-formula>, that is, <inline-formula id="j_infor427_ineq_199"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="italic">U</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${U_{i}}$]]></tex-math></alternatives></inline-formula> uses <inline-formula id="j_infor427_ineq_200"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mo fence="true" stretchy="false">[</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="italic">g</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:mi mathvariant="italic">j</mml:mi></mml:mrow></mml:msub><mml:mo fence="true" stretchy="false">]</mml:mo></mml:mrow><mml:mrow><mml:mi mathvariant="italic">L</mml:mi></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${[{g_{i,j}}]_{L}}$]]></tex-math></alternatives></inline-formula> for users “on his left” (i.e. for <inline-formula id="j_infor427_ineq_201"><alternatives>
<mml:math><mml:mi mathvariant="italic">j</mml:mi><mml:mo mathvariant="normal">&gt;</mml:mo><mml:mi mathvariant="italic">i</mml:mi></mml:math>
<tex-math><![CDATA[$j>i$]]></tex-math></alternatives></inline-formula>) and <inline-formula id="j_infor427_ineq_202"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mo fence="true" stretchy="false">[</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="italic">g</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:mi mathvariant="italic">j</mml:mi></mml:mrow></mml:msub><mml:mo fence="true" stretchy="false">]</mml:mo></mml:mrow><mml:mrow><mml:mi mathvariant="italic">R</mml:mi></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${[{g_{i,j}}]_{R}}$]]></tex-math></alternatives></inline-formula> for users “on his right” (<inline-formula id="j_infor427_ineq_203"><alternatives>
<mml:math><mml:mi mathvariant="italic">i</mml:mi><mml:mo mathvariant="normal">&lt;</mml:mo><mml:mi mathvariant="italic">j</mml:mi></mml:math>
<tex-math><![CDATA[$i<j$]]></tex-math></alternatives></inline-formula>).</p>
</list-item>
<list-item id="j_infor427_li_012">
<label>•</label>
<p>Finally, all tags are checked, and if they are successful then each <inline-formula id="j_infor427_ineq_204"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="italic">U</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${U_{i}}$]]></tex-math></alternatives></inline-formula> (<inline-formula id="j_infor427_ineq_205"><alternatives>
<mml:math><mml:mi mathvariant="italic">i</mml:mi><mml:mo mathvariant="normal">&gt;</mml:mo><mml:mn>0</mml:mn></mml:math>
<tex-math><![CDATA[$i>0$]]></tex-math></alternatives></inline-formula>) decapsulates the bitstring <italic>k</italic> and extracts from it the session key and its corresponding session identifier. Note that if a user <inline-formula id="j_infor427_ineq_206"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="italic">U</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${U_{i}}$]]></tex-math></alternatives></inline-formula> is inserting an invalid password, the two party Diffie Hellman key <inline-formula id="j_infor427_ineq_207"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="italic">g</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:mi mathvariant="italic">j</mml:mi></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${g_{i,j}}$]]></tex-math></alternatives></inline-formula> he will be able to construct will (with overwhelming probability) not match the one constructed by <inline-formula id="j_infor427_ineq_208"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="italic">U</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">j</mml:mi></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${U_{j}}$]]></tex-math></alternatives></inline-formula>, hence it will be detected as a tag-mismatch.</p>
</list-item>
</list>
<statement id="j_infor427_stat_005"><label>Remark 3.</label>
<p>Note that our solution is not contributory (for <inline-formula id="j_infor427_ineq_209"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="italic">U</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${U_{0}}$]]></tex-math></alternatives></inline-formula> fully determines the session key established by the execution). Still, as it often happens in this type of construtions users are assumed to be honest and thus the security definition does not impose that all parties influence the value of the session key. Moreover, if a contributory solution is preferred, one could, e.g. deterministically extract random bits from the <inline-formula id="j_infor427_ineq_210"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="italic">g</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${g_{i}}$]]></tex-math></alternatives></inline-formula>-values in Round I, and exclusive-or these with the session key.</p></statement>
<fig id="j_infor427_fig_001">
<label>Fig. 1</label>
<caption>
<p>Proposed password-based group-key establishment.</p>
</caption>
<graphic xlink:href="infor427_g001.jpg"/>
</fig>
<fig id="j_infor427_fig_002">
<label>Fig. 2</label>
<caption>
<p>Simplified description of our protocol with four users.</p>
</caption>
<graphic xlink:href="infor427_g002.jpg"/>
</fig>
<p>The following theorem establishes security of the proposed protocol in the sense of Definition <xref rid="j_infor427_stat_001">1</xref>. In our formal analysis, the fact that legitimate users are authenticated as such comes from the strength of the MAC, as can be seen in Game 1 in the proof below. Note also that MAC keys are generated using passwords as fresh inputs for Diffie-Hellman exponents, thus we also take into account the probability of a password guess and the hardness of the Decisional Diffie Hellman problem in our reduction. Further, note that the session key is freshly generated (uniformly at random) by <inline-formula id="j_infor427_ineq_211"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="italic">U</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${U_{0}}$]]></tex-math></alternatives></inline-formula> on each execution (in the proof, this results in the fact that Game 1 and Game 2 are indistinguishable unless the security of the underlying KEM is compromised).</p><statement id="j_infor427_stat_006"><label>Theorem 1.</label>
<p><italic>The protocol described in Fig.</italic> <xref rid="j_infor427_fig_001"><italic>1</italic></xref> <italic>achieves quantum-future key secrecy, under the Decisional Diffie Hellman Assumption in</italic> <inline-formula id="j_infor427_ineq_212"><alternatives>
<mml:math><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mi mathvariant="italic">G</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:mi mathvariant="script">D</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math>
<tex-math><![CDATA[$(G,\mathcal{D})$]]></tex-math></alternatives></inline-formula> <italic>and assuming it is instantiated with a UF-CMVA-secure message authentication code and an IND-CPA-secure (post-quantum) key encapsulation mechanism.</italic></p></statement><statement id="j_infor427_stat_007"><label>Proof.</label>
<p>The proof is set up in terms of several experiments or games, where a challenger interacts with the adversary confronting it with a counterfeit <inline-formula id="j_infor427_ineq_213"><alternatives>
<mml:math><mml:mi mathvariant="sans-serif">Test</mml:mi></mml:math>
<tex-math><![CDATA[$\mathsf{Test}$]]></tex-math></alternatives></inline-formula>-challenge in the spirit of the key secrecy definition from Section <xref rid="j_infor427_s_002">2</xref>. We denote with <inline-formula id="j_infor427_ineq_214"><alternatives>
<mml:math><mml:mi mathvariant="sans-serif">Adv</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mi mathvariant="script">A</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="italic">G</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math>
<tex-math><![CDATA[$\mathsf{Adv}(\mathcal{A},{G_{i}})$]]></tex-math></alternatives></inline-formula> the advantage of adversary <inline-formula id="j_infor427_ineq_215"><alternatives>
<mml:math><mml:mi mathvariant="script">A</mml:mi></mml:math>
<tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> in the <italic>i</italic>-th game <inline-formula id="j_infor427_ineq_216"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="italic">G</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${G_{i}}$]]></tex-math></alternatives></inline-formula>.</p>
<p><bold>Game</bold> <inline-formula id="j_infor427_ineq_217"><alternatives>
<mml:math><mml:mn mathvariant="bold">0</mml:mn></mml:math>
<tex-math><![CDATA[$\mathbf{0}$]]></tex-math></alternatives></inline-formula>. This first game corresponds to a real attack, in which all the parameters are chosen as in the actual scheme. By definition, <inline-formula id="j_infor427_ineq_218"><alternatives>
<mml:math><mml:mi mathvariant="sans-serif">Adv</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mi mathvariant="script">A</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="italic">G</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="sans-serif">Adv</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="script">A</mml:mi></mml:mrow></mml:msub><mml:mo>.</mml:mo></mml:math>
<tex-math><![CDATA[$\mathsf{Adv}(\mathcal{A},{G_{0}})={\mathsf{Adv}_{\mathcal{A}}}.$]]></tex-math></alternatives></inline-formula></p>
<p><bold>Game</bold> <inline-formula id="j_infor427_ineq_219"><alternatives>
<mml:math><mml:mn mathvariant="bold">1</mml:mn></mml:math>
<tex-math><![CDATA[$\mathbf{1}$]]></tex-math></alternatives></inline-formula>. This game is identical to <inline-formula id="j_infor427_ineq_220"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="italic">G</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${G_{0}}$]]></tex-math></alternatives></inline-formula>, except from the fact that it aborts with an adversarial win if <inline-formula id="j_infor427_ineq_221"><alternatives>
<mml:math><mml:mi mathvariant="script">A</mml:mi></mml:math>
<tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> succeeds in producing a valid MAC for a message he has constructed (i.e. which is adversarially-generated) in Round II. There are two cases we should distinguish: 
<def-list><def-item><term><bold>Case 1: no</bold> <inline-formula id="j_infor427_ineq_222"><alternatives>
<mml:math><mml:mi mathvariant="bold-sans-serif">QCom</mml:mi></mml:math>
<tex-math><![CDATA[${\bf\sf QCom}$]]></tex-math></alternatives></inline-formula> <bold>queries called by</bold> <inline-formula id="j_infor427_ineq_223"><alternatives>
<mml:math><mml:mi mathvariant="bold-script">A</mml:mi></mml:math>
<tex-math><![CDATA[$\pmb{\mathcal{A}}$]]></tex-math></alternatives></inline-formula></term><def>
<p>At this, we can argue that the tags <inline-formula id="j_infor427_ineq_224"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="italic">t</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:mi mathvariant="italic">j</mml:mi></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${t_{i,j}}$]]></tex-math></alternatives></inline-formula> can be replaced with bitstrings of the correct length chosen uniformly at random. Indeed, we may modify the <inline-formula id="j_infor427_ineq_225"><alternatives>
<mml:math><mml:mi mathvariant="sans-serif">Execute</mml:mi></mml:math>
<tex-math><![CDATA[$\mathsf{Execute}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor427_ineq_226"><alternatives>
<mml:math><mml:mi mathvariant="sans-serif">Send</mml:mi></mml:math>
<tex-math><![CDATA[$\mathsf{Send}$]]></tex-math></alternatives></inline-formula> oracle in such a way that all values <inline-formula id="j_infor427_ineq_227"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="italic">g</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${g_{i}}$]]></tex-math></alternatives></inline-formula> from Round I are replaced with <inline-formula id="j_infor427_ineq_228"><alternatives>
<mml:math><mml:msubsup><mml:mrow><mml:mi mathvariant="italic">g</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow><mml:mrow><mml:mo>∗</mml:mo></mml:mrow></mml:msubsup></mml:math>
<tex-math><![CDATA[${g_{i}^{\ast }}$]]></tex-math></alternatives></inline-formula> chosen u.a.r. from <italic>G</italic>. The games <inline-formula id="j_infor427_ineq_229"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="italic">G</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${G_{0}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor427_ineq_230"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="italic">G</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${G_{1}}$]]></tex-math></alternatives></inline-formula> can only be distinguished one from the other if: 
<list>
<list-item id="j_infor427_li_013">
<label>•</label>
<p><inline-formula id="j_infor427_ineq_231"><alternatives>
<mml:math><mml:mi mathvariant="script">A</mml:mi></mml:math>
<tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> correctly guesses <inline-formula id="j_infor427_ineq_232"><alternatives>
<mml:math><mml:mi mathvariant="sans-serif">pw</mml:mi></mml:math>
<tex-math><![CDATA[$\mathsf{pw}$]]></tex-math></alternatives></inline-formula> and sends a properly computed value <inline-formula id="j_infor427_ineq_233"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="italic">g</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msup><mml:mrow><mml:mi mathvariant="sans-serif">pw</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="italic">β</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msup></mml:math>
<tex-math><![CDATA[${g_{i}}={\mathsf{pw}^{{\beta _{i}}}}$]]></tex-math></alternatives></inline-formula> to an instance of <inline-formula id="j_infor427_ineq_234"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="italic">U</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">j</mml:mi></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${U_{j}}$]]></tex-math></alternatives></inline-formula> on behalf of an instance of <inline-formula id="j_infor427_ineq_235"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="italic">U</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${U_{i}}$]]></tex-math></alternatives></inline-formula>. If this is the case, <inline-formula id="j_infor427_ineq_236"><alternatives>
<mml:math><mml:mi mathvariant="script">A</mml:mi></mml:math>
<tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> may correctly verify the tag <inline-formula id="j_infor427_ineq_237"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="italic">t</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">j</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${t_{j,i}}$]]></tex-math></alternatives></inline-formula> he gets from <inline-formula id="j_infor427_ineq_238"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="italic">U</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">j</mml:mi></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${U_{j}}$]]></tex-math></alternatives></inline-formula> in <inline-formula id="j_infor427_ineq_239"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="italic">G</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${G_{0}}$]]></tex-math></alternatives></inline-formula> while the verification will be unsuccessful in <inline-formula id="j_infor427_ineq_240"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="italic">G</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${G_{1}}$]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
<list-item id="j_infor427_li_014">
<label>•</label>
<p><inline-formula id="j_infor427_ineq_241"><alternatives>
<mml:math><mml:mi mathvariant="script">A</mml:mi></mml:math>
<tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula>, not using <inline-formula id="j_infor427_ineq_242"><alternatives>
<mml:math><mml:mi mathvariant="sans-serif">QCom</mml:mi></mml:math>
<tex-math><![CDATA[$\mathsf{QCom}$]]></tex-math></alternatives></inline-formula> checks offline, for each password in the dictionary <inline-formula id="j_infor427_ineq_243"><alternatives>
<mml:math><mml:mi mathvariant="script">D</mml:mi><mml:mo mathvariant="normal">,</mml:mo></mml:math>
<tex-math><![CDATA[$\mathcal{D},$]]></tex-math></alternatives></inline-formula> whether the triplets <inline-formula id="j_infor427_ineq_244"><alternatives>
<mml:math><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="italic">g</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub><mml:mo mathvariant="normal">,</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="italic">g</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">j</mml:mi></mml:mrow></mml:msub><mml:mo mathvariant="normal">,</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="italic">t</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:mi mathvariant="italic">j</mml:mi></mml:mrow></mml:msub><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math>
<tex-math><![CDATA[$({g_{i}},{g_{j}},{t_{i,j}})$]]></tex-math></alternatives></inline-formula> are all consistent for a fixed password. It is easy to see that if <inline-formula id="j_infor427_ineq_245"><alternatives>
<mml:math><mml:mi mathvariant="script">A</mml:mi></mml:math>
<tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> can actually check whether such triplets <inline-formula id="j_infor427_ineq_246"><alternatives>
<mml:math><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="italic">g</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub><mml:mo mathvariant="normal">,</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="italic">g</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">j</mml:mi></mml:mrow></mml:msub><mml:mo mathvariant="normal">,</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="italic">t</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:mi mathvariant="italic">j</mml:mi></mml:mrow></mml:msub><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math>
<tex-math><![CDATA[$({g_{i}},{g_{j}},{t_{i,j}})$]]></tex-math></alternatives></inline-formula> are consistent with a given password <inline-formula id="j_infor427_ineq_247"><alternatives>
<mml:math><mml:mi mathvariant="italic">p</mml:mi><mml:msup><mml:mrow><mml:mi mathvariant="italic">w</mml:mi></mml:mrow><mml:mrow><mml:mo>∗</mml:mo></mml:mrow></mml:msup></mml:math>
<tex-math><![CDATA[$p{w^{\ast }}$]]></tex-math></alternatives></inline-formula>, the corresponding Decisional Diffie Hellman assumption in <inline-formula id="j_infor427_ineq_248"><alternatives>
<mml:math><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mi mathvariant="italic">G</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:mi mathvariant="script">D</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math>
<tex-math><![CDATA[$(G,\mathcal{D})$]]></tex-math></alternatives></inline-formula> cannot hold. Indeed, we may construct an adversary <inline-formula id="j_infor427_ineq_249"><alternatives>
<mml:math><mml:mi mathvariant="script">B</mml:mi></mml:math>
<tex-math><![CDATA[$\mathcal{B}$]]></tex-math></alternatives></inline-formula> using <inline-formula id="j_infor427_ineq_250"><alternatives>
<mml:math><mml:mi mathvariant="script">A</mml:mi></mml:math>
<tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> in order to solve a corresponding Decisional Diffie Hellman challenge in <inline-formula id="j_infor427_ineq_251"><alternatives>
<mml:math><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mi mathvariant="italic">G</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:mi mathvariant="script">D</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math>
<tex-math><![CDATA[$(G,\mathcal{D})$]]></tex-math></alternatives></inline-formula>. Let <inline-formula id="j_infor427_ineq_252"><alternatives>
<mml:math><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mi mathvariant="italic">g</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:mi mathvariant="italic">x</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:mi mathvariant="italic">y</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:mi mathvariant="italic">z</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math>
<tex-math><![CDATA[$(g,x,y,z)$]]></tex-math></alternatives></inline-formula> be the input to <inline-formula id="j_infor427_ineq_253"><alternatives>
<mml:math><mml:mi mathvariant="script">B</mml:mi><mml:mo>.</mml:mo></mml:math>
<tex-math><![CDATA[$\mathcal{B}.$]]></tex-math></alternatives></inline-formula> In order to tell whether order to distinguish whether that is a triplet of the form <inline-formula id="j_infor427_ineq_254"><alternatives>
<mml:math><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:msup><mml:mrow><mml:mi mathvariant="italic">g</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">a</mml:mi></mml:mrow></mml:msup><mml:mo mathvariant="normal">,</mml:mo><mml:msup><mml:mrow><mml:mi mathvariant="italic">g</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">b</mml:mi></mml:mrow></mml:msup><mml:mo mathvariant="normal">,</mml:mo><mml:msup><mml:mrow><mml:mi mathvariant="italic">g</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">a</mml:mi><mml:mi mathvariant="italic">b</mml:mi></mml:mrow></mml:msup><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math>
<tex-math><![CDATA[$({g^{a}},{g^{b}},{g^{ab}})$]]></tex-math></alternatives></inline-formula> or <italic>z</italic> is a randomly generated element in <italic>G</italic>, <inline-formula id="j_infor427_ineq_255"><alternatives>
<mml:math><mml:mi mathvariant="script">B</mml:mi></mml:math>
<tex-math><![CDATA[$\mathcal{B}$]]></tex-math></alternatives></inline-formula> presents <inline-formula id="j_infor427_ineq_256"><alternatives>
<mml:math><mml:mi mathvariant="script">A</mml:mi></mml:math>
<tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> with a simulated transcript (using the password encoding by <italic>g</italic> for authentication) where for a certain pair of users <inline-formula id="j_infor427_ineq_257"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="italic">U</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub><mml:mo mathvariant="normal">,</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="italic">U</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">j</mml:mi></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${U_{i}},{U_{j}}$]]></tex-math></alternatives></inline-formula> the authenticated tags <inline-formula id="j_infor427_ineq_258"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="italic">t</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:mi mathvariant="italic">j</mml:mi></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${t_{i,j}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor427_ineq_259"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="italic">t</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">j</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${t_{j,i}}$]]></tex-math></alternatives></inline-formula> are constructed from <inline-formula id="j_infor427_ineq_260"><alternatives>
<mml:math><mml:mi mathvariant="italic">z</mml:mi><mml:mo>.</mml:mo></mml:math>
<tex-math><![CDATA[$z.$]]></tex-math></alternatives></inline-formula></p>
</list-item>
</list> 
Indeed, as the group elements <inline-formula id="j_infor427_ineq_261"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="italic">g</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${g_{i}}$]]></tex-math></alternatives></inline-formula> have been chosen uniformly at random, the MAC keys derived in Round II are also uniformly at random selected bitstrings. Thus we have, 
<disp-formula id="j_infor427_eq_003">
<alternatives>
<mml:math display="block"><mml:mtable displaystyle="true"><mml:mtr><mml:mtd><mml:mo stretchy="false">|</mml:mo><mml:mi mathvariant="sans-serif">Adv</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mi mathvariant="script">A</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="italic">G</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo><mml:mo>−</mml:mo><mml:mi mathvariant="sans-serif">Adv</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mi mathvariant="script">A</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="italic">G</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo><mml:mo stretchy="false">|</mml:mo><mml:mo>⩽</mml:mo><mml:mi mathvariant="italic">ε</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mi>ℓ</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:mi mathvariant="italic">q</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="sans-serif">Adv</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">D</mml:mi><mml:mi mathvariant="italic">D</mml:mi><mml:mi mathvariant="italic">H</mml:mi></mml:mrow></mml:msub><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mi mathvariant="italic">G</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:mi mathvariant="script">D</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math>
<tex-math><![CDATA[\[ |\mathsf{Adv}(\mathcal{A},{G_{1}})-\mathsf{Adv}(\mathcal{A},{G_{0}})|\leqslant \varepsilon (\ell ,q)+{\mathsf{Adv}_{DDH}}(G,\mathcal{D}).\]]]></tex-math></alternatives>
</disp-formula>
</p></def></def-item><def-item><term><bold>Case 2:</bold> <inline-formula id="j_infor427_ineq_262"><alternatives>
<mml:math><mml:mi mathvariant="bold-script">A</mml:mi></mml:math>
<tex-math><![CDATA[$\pmb{\mathcal{A}}$]]></tex-math></alternatives></inline-formula> <bold>queried</bold> <inline-formula id="j_infor427_ineq_263"><alternatives>
<mml:math><mml:mi mathvariant="bold-sans-serif">QCom</mml:mi></mml:math>
<tex-math><![CDATA[${\bf\sf QCom}$]]></tex-math></alternatives></inline-formula> <bold>after</bold> <inline-formula id="j_infor427_ineq_264"><alternatives>
<mml:math><mml:mi mathvariant="bold-sans-serif">Execute</mml:mi></mml:math>
<tex-math><![CDATA[${\bf\sf Execute}$]]></tex-math></alternatives></inline-formula> <bold>or</bold> <inline-formula id="j_infor427_ineq_265"><alternatives>
<mml:math><mml:mi mathvariant="bold-sans-serif">Send</mml:mi></mml:math>
<tex-math><![CDATA[${\bf\sf Send}$]]></tex-math></alternatives></inline-formula></term><def>
<p>If the <inline-formula id="j_infor427_ineq_266"><alternatives>
<mml:math><mml:mi mathvariant="sans-serif">QCom</mml:mi></mml:math>
<tex-math><![CDATA[$\mathsf{QCom}$]]></tex-math></alternatives></inline-formula> oracle calls are only restricted as stated in the freshness definition, indeed it may be the case that the MAC keys are known to the adversary who has queried <inline-formula id="j_infor427_ineq_267"><alternatives>
<mml:math><mml:mi mathvariant="sans-serif">QCom</mml:mi></mml:math>
<tex-math><![CDATA[$\mathsf{QCom}$]]></tex-math></alternatives></inline-formula>; however, as he is not allowed making any <inline-formula id="j_infor427_ineq_268"><alternatives>
<mml:math><mml:mi mathvariant="sans-serif">Send</mml:mi></mml:math>
<tex-math><![CDATA[$\mathsf{Send}$]]></tex-math></alternatives></inline-formula> query, he will of course not produce any valid forgery, as a result, only Case 1 is to be taken into account when bounding the distinguishing probability of <inline-formula id="j_infor427_ineq_269"><alternatives>
<mml:math><mml:mi mathvariant="script">A</mml:mi></mml:math>
<tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> 
<disp-formula id="j_infor427_eq_004">
<alternatives>
<mml:math display="block"><mml:mtable displaystyle="true"><mml:mtr><mml:mtd><mml:mo stretchy="false">|</mml:mo><mml:mi mathvariant="sans-serif">Adv</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mi mathvariant="script">A</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="italic">G</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo><mml:mo>−</mml:mo><mml:mi mathvariant="sans-serif">Adv</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mi mathvariant="script">A</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="italic">G</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo><mml:mo stretchy="false">|</mml:mo><mml:mo>⩽</mml:mo><mml:mi mathvariant="italic">ε</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mi>ℓ</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:mi mathvariant="italic">q</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="sans-serif">Adv</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">D</mml:mi><mml:mi mathvariant="italic">D</mml:mi><mml:mi mathvariant="italic">H</mml:mi></mml:mrow></mml:msub><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mi mathvariant="italic">G</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:mi mathvariant="script">D</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math>
<tex-math><![CDATA[\[ |\mathsf{Adv}(\mathcal{A},{G_{1}})-\mathsf{Adv}(\mathcal{A},{G_{0}})|\leqslant \varepsilon (\ell ,q)+{\mathsf{Adv}_{DDH}}(G,\mathcal{D}).\]]]></tex-math></alternatives>
</disp-formula> 
Given that all MAC keys are at this point generated uniformly at random, this can only happen if <inline-formula id="j_infor427_ineq_270"><alternatives>
<mml:math><mml:mi mathvariant="script">A</mml:mi></mml:math>
<tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> is able to produce a forgery for the MAC in use, and thus 
<disp-formula id="j_infor427_eq_005">
<alternatives>
<mml:math display="block"><mml:mtable displaystyle="true"><mml:mtr><mml:mtd><mml:mi mathvariant="sans-serif">Adv</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mi mathvariant="script">A</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="italic">G</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mi mathvariant="sans-serif">Adv</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mi mathvariant="script">A</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="italic">G</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo><mml:mo>⩽</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="sans-serif">Succ</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="script">A</mml:mi></mml:mrow></mml:msub><mml:mo mathvariant="normal">,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math>
<tex-math><![CDATA[\[ \mathsf{Adv}(\mathcal{A},{G_{1}})=\mathsf{Adv}(\mathcal{A},{G_{0}})\leqslant {\mathsf{Succ}_{\mathcal{A}}},\]]]></tex-math></alternatives>
</disp-formula> 
where <inline-formula id="j_infor427_ineq_271"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="sans-serif">Succ</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="script">A</mml:mi></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${\mathsf{Succ}_{\mathcal{A}}}$]]></tex-math></alternatives></inline-formula> is the probability of an adversary winning in the UF-CMVA game described in Section <xref rid="j_infor427_s_004">3</xref>, hence assumed to be negligible in <italic>ℓ</italic>.</p></def></def-item></def-list> <bold>Game</bold> <inline-formula id="j_infor427_ineq_272"><alternatives>
<mml:math><mml:mn mathvariant="bold">2</mml:mn></mml:math>
<tex-math><![CDATA[$\mathbf{2}$]]></tex-math></alternatives></inline-formula>. In this game the output of the <inline-formula id="j_infor427_ineq_273"><alternatives>
<mml:math><mml:mi mathvariant="sans-serif">Execute</mml:mi></mml:math>
<tex-math><![CDATA[$\mathsf{Execute}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor427_ineq_274"><alternatives>
<mml:math><mml:mi mathvariant="sans-serif">Send</mml:mi></mml:math>
<tex-math><![CDATA[$\mathsf{Send}$]]></tex-math></alternatives></inline-formula> oracles are modified as follows. For each <inline-formula id="j_infor427_ineq_275"><alternatives>
<mml:math><mml:mi mathvariant="italic">j</mml:mi><mml:mo stretchy="false">∈</mml:mo><mml:mo fence="true" stretchy="false">{</mml:mo><mml:mn>1</mml:mn><mml:mo mathvariant="normal">,</mml:mo><mml:mo>…</mml:mo><mml:mo mathvariant="normal">,</mml:mo><mml:mi mathvariant="italic">n</mml:mi><mml:mo fence="true" stretchy="false">}</mml:mo></mml:math>
<tex-math><![CDATA[$j\in \{1,\dots ,n\}$]]></tex-math></alternatives></inline-formula>, the value <inline-formula id="j_infor427_ineq_276"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="italic">d</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">j</mml:mi></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${d_{j}}$]]></tex-math></alternatives></inline-formula> is replaced with <inline-formula id="j_infor427_ineq_277"><alternatives>
<mml:math><mml:msubsup><mml:mrow><mml:mi mathvariant="italic">d</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">j</mml:mi></mml:mrow><mml:mrow><mml:mo>∗</mml:mo></mml:mrow></mml:msubsup></mml:math>
<tex-math><![CDATA[${d_{j}^{\ast }}$]]></tex-math></alternatives></inline-formula> selected u.a.r. from <inline-formula id="j_infor427_ineq_278"><alternatives>
<mml:math><mml:msup><mml:mrow><mml:mo fence="true" stretchy="false">{</mml:mo><mml:mn>0</mml:mn><mml:mo mathvariant="normal">,</mml:mo><mml:mn>1</mml:mn><mml:mo fence="true" stretchy="false">}</mml:mo></mml:mrow><mml:mrow><mml:mi mathvariant="italic">p</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mi>ℓ</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:math>
<tex-math><![CDATA[${\{0,1\}^{p(\ell )}}$]]></tex-math></alternatives></inline-formula>. Then, for the computation of each tag <inline-formula id="j_infor427_ineq_279"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="italic">t</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn><mml:mo mathvariant="normal">,</mml:mo><mml:mi mathvariant="italic">j</mml:mi></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${t_{0,j}}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor427_ineq_280"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="italic">m</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn><mml:mo mathvariant="normal">,</mml:mo><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${m_{0,i}}$]]></tex-math></alternatives></inline-formula> is replaced with <inline-formula id="j_infor427_ineq_281"><alternatives>
<mml:math><mml:msubsup><mml:mrow><mml:mi mathvariant="italic">m</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn><mml:mo mathvariant="normal">,</mml:mo><mml:mi mathvariant="italic">i</mml:mi></mml:mrow><mml:mrow><mml:mo>∗</mml:mo></mml:mrow></mml:msubsup><mml:mo>:</mml:mo><mml:mo>=</mml:mo><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:msubsup><mml:mrow><mml:mi mathvariant="italic">d</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow><mml:mrow><mml:mo>∗</mml:mo></mml:mrow></mml:msubsup><mml:mo mathvariant="normal">,</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="italic">c</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math>
<tex-math><![CDATA[${m_{0,i}^{\ast }}:=({d_{i}^{\ast }},{c_{i}})$]]></tex-math></alternatives></inline-formula> for <inline-formula id="j_infor427_ineq_282"><alternatives>
<mml:math><mml:mi mathvariant="italic">i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mo mathvariant="normal">,</mml:mo><mml:mo>…</mml:mo><mml:mo mathvariant="normal">,</mml:mo><mml:mi mathvariant="italic">n</mml:mi></mml:math>
<tex-math><![CDATA[$i=1,\dots ,n$]]></tex-math></alternatives></inline-formula>. Note that <inline-formula id="j_infor427_ineq_283"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="italic">d</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${d_{i}}$]]></tex-math></alternatives></inline-formula> is the XOR of <italic>k</italic> and the output <inline-formula id="j_infor427_ineq_284"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="italic">k</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${k_{i}}$]]></tex-math></alternatives></inline-formula> of <inline-formula id="j_infor427_ineq_285"><alternatives>
<mml:math><mml:mi mathvariant="sans-serif">Encaps</mml:mi></mml:math>
<tex-math><![CDATA[$\mathsf{Encaps}$]]></tex-math></alternatives></inline-formula> and that <italic>k</italic> is chosen u.a.r. by <inline-formula id="j_infor427_ineq_286"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="italic">U</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${U_{0}}$]]></tex-math></alternatives></inline-formula> and only used in the computation of the values <inline-formula id="j_infor427_ineq_287"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="italic">d</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${d_{i}}$]]></tex-math></alternatives></inline-formula> throughout a protocol run.</p>
<p>To argue that the only way an adversary is able to distinguish between <inline-formula id="j_infor427_ineq_288"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="italic">G</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${G_{1}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor427_ineq_289"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="italic">G</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${G_{2}}$]]></tex-math></alternatives></inline-formula> is breaking the IND-CPA security of the KEM, we depict how an IND-CPA adversary <inline-formula id="j_infor427_ineq_290"><alternatives>
<mml:math><mml:mi mathvariant="script">B</mml:mi></mml:math>
<tex-math><![CDATA[$\mathcal{B}$]]></tex-math></alternatives></inline-formula> for the KEM can be constructed from an adversary <inline-formula id="j_infor427_ineq_291"><alternatives>
<mml:math><mml:mi mathvariant="script">A</mml:mi></mml:math>
<tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> who may distinguish between the two games.</p>
<p>Indeed, suppose we actually introduce the change in <inline-formula id="j_infor427_ineq_292"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="italic">G</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${G_{1}}$]]></tex-math></alternatives></inline-formula> step by step. Let <inline-formula id="j_infor427_ineq_293"><alternatives>
<mml:math><mml:mi mathvariant="script">A</mml:mi></mml:math>
<tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> be an adversary distinguishing between <inline-formula id="j_infor427_ineq_294"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="italic">G</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${G_{1}}$]]></tex-math></alternatives></inline-formula> and the game resulting after step 1. Now, let <inline-formula id="j_infor427_ineq_295"><alternatives>
<mml:math><mml:mi mathvariant="script">B</mml:mi></mml:math>
<tex-math><![CDATA[$\mathcal{B}$]]></tex-math></alternatives></inline-formula> be presented with an IND-CPA challenge for the KEM used by user <inline-formula id="j_infor427_ineq_296"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="italic">U</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${U_{1}}$]]></tex-math></alternatives></inline-formula>, i.e. with a value <inline-formula id="j_infor427_ineq_297"><alternatives>
<mml:math><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mi mathvariant="italic">K</mml:mi><mml:mi mathvariant="italic">E</mml:mi><mml:mi mathvariant="italic">Y</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:mi mathvariant="italic">C</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math>
<tex-math><![CDATA[$(KEY,C)$]]></tex-math></alternatives></inline-formula> where <inline-formula id="j_infor427_ineq_298"><alternatives>
<mml:math><mml:mi mathvariant="italic">K</mml:mi><mml:mi mathvariant="italic">E</mml:mi><mml:mi mathvariant="italic">Y</mml:mi></mml:math>
<tex-math><![CDATA[$KEY$]]></tex-math></alternatives></inline-formula> is either a key encapsulated in <italic>C</italic> using <inline-formula id="j_infor427_ineq_299"><alternatives>
<mml:math><mml:mi mathvariant="italic">p</mml:mi><mml:msub><mml:mrow><mml:mi mathvariant="italic">k</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[$p{k_{1}}$]]></tex-math></alternatives></inline-formula> or a string chosen uniformly at random. Now, fixing a session key <italic>k</italic>, fairly produce messages from Round I for each user <inline-formula id="j_infor427_ineq_300"><alternatives>
<mml:math><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="italic">d</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub><mml:mo mathvariant="normal">,</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="italic">c</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math>
<tex-math><![CDATA[$({d_{i}},{c_{i}})$]]></tex-math></alternatives></inline-formula> for <inline-formula id="j_infor427_ineq_301"><alternatives>
<mml:math><mml:mi mathvariant="italic">i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mo mathvariant="normal">,</mml:mo><mml:mo>…</mml:mo><mml:mo mathvariant="normal">,</mml:mo><mml:mi mathvariant="italic">n</mml:mi></mml:math>
<tex-math><![CDATA[$i=1,\dots ,n$]]></tex-math></alternatives></inline-formula> and replace <inline-formula id="j_infor427_ineq_302"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="italic">m</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn><mml:mo mathvariant="normal">,</mml:mo><mml:mi mathvariant="italic">l</mml:mi></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${m_{0,l}}$]]></tex-math></alternatives></inline-formula> by <inline-formula id="j_infor427_ineq_303"><alternatives>
<mml:math><mml:msubsup><mml:mrow><mml:mi mathvariant="italic">m</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn><mml:mo mathvariant="normal">,</mml:mo><mml:mi mathvariant="italic">l</mml:mi></mml:mrow><mml:mrow><mml:mo>∗</mml:mo></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mi mathvariant="italic">K</mml:mi><mml:mi mathvariant="italic">E</mml:mi><mml:mi mathvariant="italic">Y</mml:mi><mml:mo>⊕</mml:mo><mml:mi mathvariant="italic">k</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:mi mathvariant="italic">C</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo><mml:mo mathvariant="normal">,</mml:mo></mml:math>
<tex-math><![CDATA[${m_{0,l}^{\ast }}=(KEY\oplus k,C),$]]></tex-math></alternatives></inline-formula> while, for the rest, follow the protocol description. Now, if <inline-formula id="j_infor427_ineq_304"><alternatives>
<mml:math><mml:mi mathvariant="italic">K</mml:mi><mml:mi mathvariant="italic">E</mml:mi><mml:mi mathvariant="italic">Y</mml:mi></mml:math>
<tex-math><![CDATA[$KEY$]]></tex-math></alternatives></inline-formula> comes from the KEM, all messages will follow the protocol specification, while if it is selected uniformly at random indeed <inline-formula id="j_infor427_ineq_305"><alternatives>
<mml:math><mml:mi mathvariant="italic">K</mml:mi><mml:mi mathvariant="italic">E</mml:mi><mml:mi mathvariant="italic">Y</mml:mi><mml:mo>⊕</mml:mo><mml:mi mathvariant="italic">k</mml:mi></mml:math>
<tex-math><![CDATA[$KEY\oplus k$]]></tex-math></alternatives></inline-formula> will also be. As a result, if <inline-formula id="j_infor427_ineq_306"><alternatives>
<mml:math><mml:mi mathvariant="script">A</mml:mi></mml:math>
<tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> distinguishes between <inline-formula id="j_infor427_ineq_307"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="italic">G</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${G_{1}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor427_ineq_308"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="italic">G</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${G_{2}}$]]></tex-math></alternatives></inline-formula> he will violate the IND-CPA security of the KEM, so indeed, replicating this argument in a step by step fashion we have 
<disp-formula id="j_infor427_eq_006">
<alternatives>
<mml:math display="block"><mml:mtable displaystyle="true"><mml:mtr><mml:mtd><mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo><mml:mi mathvariant="sans-serif">Adv</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mi mathvariant="script">A</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="italic">G</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo><mml:mo>−</mml:mo><mml:mi mathvariant="sans-serif">Adv</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mi mathvariant="script">A</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="italic">G</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo><mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo><mml:mo>⩽</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="sans-serif">Adv</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="script">A</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:mtext mathvariant="monospace">KEM</mml:mtext></mml:mrow></mml:msub><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math>
<tex-math><![CDATA[\[ \big|\mathsf{Adv}(\mathcal{A},{G_{2}})-\mathsf{Adv}(\mathcal{A},{G_{1}})\big|\leqslant {\mathsf{Adv}_{\mathcal{A},\texttt{KEM}}}.\]]]></tex-math></alternatives>
</disp-formula> 
Now note that no information correlated with the actual session key is involved in any message at this point; clearly we have <inline-formula id="j_infor427_ineq_309"><alternatives>
<mml:math><mml:mi mathvariant="sans-serif">Adv</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mi mathvariant="script">A</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="italic">G</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:math>
<tex-math><![CDATA[$\mathsf{Adv}(\mathcal{A},{G_{2}})=0$]]></tex-math></alternatives></inline-formula>, which concludes the proof.  □</p></statement><statement id="j_infor427_stat_008"><label>Remark 4.</label>
<p>Note that in the above proof it is crucial to restrict the <inline-formula id="j_infor427_ineq_310"><alternatives>
<mml:math><mml:mi mathvariant="sans-serif">QCom</mml:mi></mml:math>
<tex-math><![CDATA[$\mathsf{QCom}$]]></tex-math></alternatives></inline-formula> calls in the definition of freshness; otherwise an offline-guessing strategy can be mounted by solving the corresponding Diffie-Hellman instances <inline-formula id="j_infor427_ineq_311"><alternatives>
<mml:math><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mi mathvariant="italic">p</mml:mi><mml:mi mathvariant="italic">w</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:mi mathvariant="italic">p</mml:mi><mml:msup><mml:mrow><mml:mi mathvariant="italic">w</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="italic">β</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msup><mml:mo mathvariant="normal">,</mml:mo><mml:mi mathvariant="italic">p</mml:mi><mml:msup><mml:mrow><mml:mi mathvariant="italic">w</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="italic">β</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msup><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math>
<tex-math><![CDATA[$(pw,p{w^{{\beta _{i}}}},p{w^{{\beta _{j}}}})$]]></tex-math></alternatives></inline-formula> for every <inline-formula id="j_infor427_ineq_312"><alternatives>
<mml:math><mml:mi mathvariant="italic">p</mml:mi><mml:mi mathvariant="italic">w</mml:mi><mml:mo stretchy="false">∈</mml:mo><mml:mi mathvariant="script">D</mml:mi><mml:mo mathvariant="normal">,</mml:mo></mml:math>
<tex-math><![CDATA[$pw\in \mathcal{D},$]]></tex-math></alternatives></inline-formula> and confronting the result with the messages tagged with <inline-formula id="j_infor427_ineq_313"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="italic">t</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi><mml:mo mathvariant="normal">,</mml:mo><mml:mi mathvariant="italic">j</mml:mi></mml:mrow></mml:msub><mml:mo mathvariant="normal">,</mml:mo></mml:math>
<tex-math><![CDATA[${t_{i,j}},$]]></tex-math></alternatives></inline-formula> i.e. a quantum adversary may get the password from the transcript and thus we should make clear we do not allow for subsequent <inline-formula id="j_infor427_ineq_314"><alternatives>
<mml:math><mml:mi mathvariant="sans-serif">Send</mml:mi></mml:math>
<tex-math><![CDATA[$\mathsf{Send}$]]></tex-math></alternatives></inline-formula> calls once <inline-formula id="j_infor427_ineq_315"><alternatives>
<mml:math><mml:mi mathvariant="sans-serif">QCom</mml:mi></mml:math>
<tex-math><![CDATA[$\mathsf{QCom}$]]></tex-math></alternatives></inline-formula> has been queried.</p></statement><statement id="j_infor427_stat_009"><label>Remark 5.</label>
<p>We stress further that for the above proof (see Game 2) it is needed to impose that the KEM in use is post-quantum, as we do not restrict the usage of <inline-formula id="j_infor427_ineq_316"><alternatives>
<mml:math><mml:mi mathvariant="sans-serif">QCom</mml:mi></mml:math>
<tex-math><![CDATA[$\mathsf{QCom}$]]></tex-math></alternatives></inline-formula> when trying to tell apart the “real” <inline-formula id="j_infor427_ineq_317"><alternatives>
<mml:math><mml:msubsup><mml:mrow><mml:mi mathvariant="italic">d</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">i</mml:mi></mml:mrow><mml:mrow><mml:mo>′</mml:mo></mml:mrow></mml:msubsup><mml:mi mathvariant="italic">s</mml:mi></mml:math>
<tex-math><![CDATA[${d^{\prime }_{i}}s$]]></tex-math></alternatives></inline-formula> from randomly selected ones.</p></statement>
</sec>
<sec id="j_infor427_s_010">
<label>4.2</label>
<title>Performance</title>
<p>Let us compare the performance of the above protocol with two state-of-the-art fully post-quantum solutions for group key establishment (Apon <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor427_ref_003">2019</xref>; Persichetti <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor427_ref_029">2019</xref>). For clarity, we assume that the number of users is <inline-formula id="j_infor427_ineq_318"><alternatives>
<mml:math><mml:mi mathvariant="italic">n</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:math>
<tex-math><![CDATA[$n+1$]]></tex-math></alternatives></inline-formula> for every protocol. Table <xref rid="j_infor427_tab_001">1</xref> summarizes important characteristics. 
<list>
<list-item id="j_infor427_li_015">
<label>•</label>
<p><italic>Our protocol</italic>. In the first round, <inline-formula id="j_infor427_ineq_319"><alternatives>
<mml:math><mml:mi mathvariant="italic">n</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:math>
<tex-math><![CDATA[$n+1$]]></tex-math></alternatives></inline-formula> elements of <italic>G</italic> and <italic>n</italic> public keys of the KEM are broadcast, yielding a total of <inline-formula id="j_infor427_ineq_320"><alternatives>
<mml:math><mml:msup><mml:mrow><mml:mi mathvariant="italic">n</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo>+</mml:mo><mml:mi mathvariant="italic">n</mml:mi></mml:math>
<tex-math><![CDATA[${n^{2}}+n$]]></tex-math></alternatives></inline-formula> elements of <italic>G</italic> and <inline-formula id="j_infor427_ineq_321"><alternatives>
<mml:math><mml:msup><mml:mrow><mml:mi mathvariant="italic">n</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:math>
<tex-math><![CDATA[${n^{2}}$]]></tex-math></alternatives></inline-formula> public keys to be transmitted. In the second round, <inline-formula id="j_infor427_ineq_322"><alternatives>
<mml:math><mml:msup><mml:mrow><mml:mi mathvariant="italic">n</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:math>
<tex-math><![CDATA[${n^{2}}$]]></tex-math></alternatives></inline-formula> tags, <italic>n</italic> KEM ciphertexts, and <italic>n</italic> masked ephemeral keys are sent.</p>
</list-item>
<list-item id="j_infor427_li_016">
<label>•</label>
<p>Apon <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor427_ref_003">2019</xref>). This scheme provides security against passive adversaries. In order to transform it into a <inline-formula id="j_infor427_ineq_323"><alternatives>
<mml:math><mml:mi mathvariant="sans-serif">GAKE</mml:mi></mml:math>
<tex-math><![CDATA[$\mathsf{GAKE}$]]></tex-math></alternatives></inline-formula>, the authors propose using the Katz-Yung compiler (Katz and Yung, <xref ref-type="bibr" rid="j_infor427_ref_026">2007</xref>), which adds one round of communication (in which each participant broadcasts a nonce), and appends one signature to every sent message that should be taken into account. In the setup, a ring <inline-formula id="j_infor427_ineq_324"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="italic">R</mml:mi></mml:mrow><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi mathvariant="italic">q</mml:mi></mml:mrow><mml:mo stretchy="false">ˆ</mml:mo></mml:mover></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="double-struck">Z</mml:mi></mml:mrow><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi mathvariant="italic">q</mml:mi></mml:mrow><mml:mo stretchy="false">ˆ</mml:mo></mml:mover></mml:mrow></mml:msub><mml:mo fence="true" stretchy="false">[</mml:mo><mml:mi mathvariant="italic">X</mml:mi><mml:mo fence="true" stretchy="false">]</mml:mo><mml:mo mathvariant="normal" stretchy="false">/</mml:mo><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:msup><mml:mrow><mml:mi mathvariant="italic">X</mml:mi></mml:mrow><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi mathvariant="italic">n</mml:mi></mml:mrow><mml:mo stretchy="false">ˆ</mml:mo></mml:mover></mml:mrow></mml:msup><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math>
<tex-math><![CDATA[${R_{\hat{q}}}={\mathbb{Z}_{\hat{q}}}[X]/({X^{\hat{n}}}+1)$]]></tex-math></alternatives></inline-formula> is fixed, where <inline-formula id="j_infor427_ineq_325"><alternatives>
<mml:math><mml:mover accent="true"><mml:mrow><mml:mi mathvariant="italic">q</mml:mi></mml:mrow><mml:mo stretchy="false">ˆ</mml:mo></mml:mover></mml:math>
<tex-math><![CDATA[$\hat{q}$]]></tex-math></alternatives></inline-formula> is a prime and <inline-formula id="j_infor427_ineq_326"><alternatives>
<mml:math><mml:mover accent="true"><mml:mrow><mml:mi mathvariant="italic">n</mml:mi></mml:mrow><mml:mo stretchy="false">ˆ</mml:mo></mml:mover></mml:math>
<tex-math><![CDATA[$\hat{n}$]]></tex-math></alternatives></inline-formula> is a power of 2 such that <inline-formula id="j_infor427_ineq_327"><alternatives>
<mml:math><mml:mover accent="true"><mml:mrow><mml:mi mathvariant="italic">q</mml:mi></mml:mrow><mml:mo stretchy="false">ˆ</mml:mo></mml:mover><mml:mo stretchy="false">≡</mml:mo><mml:mn>1</mml:mn><mml:mspace width="0.2em"/><mml:mo>mod</mml:mo><mml:mspace width="0.2em"/><mml:mn>2</mml:mn><mml:mover accent="true"><mml:mrow><mml:mi mathvariant="italic">n</mml:mi></mml:mrow><mml:mo stretchy="false">ˆ</mml:mo></mml:mover></mml:math>
<tex-math><![CDATA[$\hat{q}\equiv 1\hspace{0.2em}\mathrm{mod} \hspace{0.2em}2\hat{n}$]]></tex-math></alternatives></inline-formula>. In the first two rounds, each user broadcasts an element of <inline-formula id="j_infor427_ineq_328"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="italic">R</mml:mi></mml:mrow><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi mathvariant="italic">q</mml:mi></mml:mrow><mml:mo stretchy="false">ˆ</mml:mo></mml:mover></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${R_{\hat{q}}}$]]></tex-math></alternatives></inline-formula>, for a total of <inline-formula id="j_infor427_ineq_329"><alternatives>
<mml:math><mml:mn>2</mml:mn><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:msup><mml:mrow><mml:mi mathvariant="italic">n</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo>+</mml:mo><mml:mi mathvariant="italic">n</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math>
<tex-math><![CDATA[$2({n^{2}}+n)$]]></tex-math></alternatives></inline-formula> elements. In the third round, each user runs the key recovery algorithm to get a pair <inline-formula id="j_infor427_ineq_330"><alternatives>
<mml:math><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mover accent="true"><mml:mrow><mml:mi mathvariant="italic">K</mml:mi></mml:mrow><mml:mo stretchy="false">ˆ</mml:mo></mml:mover><mml:mo mathvariant="normal">,</mml:mo><mml:mover accent="true"><mml:mrow><mml:mi mathvariant="italic">k</mml:mi></mml:mrow><mml:mo stretchy="false">ˆ</mml:mo></mml:mover><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math>
<tex-math><![CDATA[$(\hat{K},\hat{k})$]]></tex-math></alternatives></inline-formula> and broadcasts <inline-formula id="j_infor427_ineq_331"><alternatives>
<mml:math><mml:mover accent="true"><mml:mrow><mml:mi mathvariant="italic">K</mml:mi></mml:mrow><mml:mo stretchy="false">ˆ</mml:mo></mml:mover></mml:math>
<tex-math><![CDATA[$\hat{K}$]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
<list-item id="j_infor427_li_017">
<label>•</label>
<p>Persichetti <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor427_ref_029">2019</xref>). This scheme is also a compiler which invokes a KEM and a signature scheme. In the first round, each user sends a KEM public key to his right neighbour, while in the second one, each user sends a KEM ciphertext to his left neighbour. Finally, in the third round each user broadcasts a masked ephemeral key and a signature.</p>
</list-item>
</list> 
In the table we also included a column on the authentication tools used – differing from the other mentioned protocols, we opted for password-based authentication and do not assume a PKI for signatures. In terms of performance, the reduced number of rounds in our protocol is attractive. Compared to PSS, we pay a cost for the MAC tag computations and transmissions, but, as we do not involve a PKI to handle signatures and MAC computations tend to be fast, this cost seems quite reasonable.</p>
<table-wrap id="j_infor427_tab_001">
<label>Table 1</label>
<caption>
<p>Performance of our protocol compared to recent post-quantum solutions. Here, ADGK refers to the protocol in Apon <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor427_ref_003">2019</xref>) and ADGK<sup>†</sup> is an authenticated version of ADGK, obtained by applying the Katz-Yung compiler. PSS refers to the solution in Persichetti <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor427_ref_029">2019</xref>).</p>
</caption>
<table>
<thead>
<tr>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin"/>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Rounds</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Communication</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Computation</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Authentication</td>
</tr>
</thead>
<tbody>
<tr>
<td style="vertical-align: top; text-align: left">Here</td>
<td style="vertical-align: top; text-align: left">2</td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor427_ineq_333"><alternatives>
<mml:math><mml:msup><mml:mrow><mml:mi mathvariant="italic">n</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo>+</mml:mo><mml:mi mathvariant="italic">n</mml:mi></mml:math>
<tex-math><![CDATA[${n^{2}}+n$]]></tex-math></alternatives></inline-formula> elements in <italic>G</italic>,</td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor427_ineq_334"><alternatives>
<mml:math><mml:mn>2</mml:mn><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mi mathvariant="italic">n</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math>
<tex-math><![CDATA[$2(n+1)$]]></tex-math></alternatives></inline-formula> exp. in <italic>G</italic>,</td>
<td style="vertical-align: top; text-align: left">Password+</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor427_ineq_335"><alternatives>
<mml:math><mml:msup><mml:mrow><mml:mi mathvariant="italic">n</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:math>
<tex-math><![CDATA[${n^{2}}$]]></tex-math></alternatives></inline-formula> KEM public keys,</td>
<td style="vertical-align: top; text-align: left"><italic>n</italic> key enc. and dec.,</td>
<td style="vertical-align: top; text-align: left">MAC</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor427_ineq_336"><alternatives>
<mml:math><mml:msup><mml:mrow><mml:mi mathvariant="italic">n</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:math>
<tex-math><![CDATA[${n^{2}}$]]></tex-math></alternatives></inline-formula> MAC tags,</td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor427_ineq_337"><alternatives>
<mml:math><mml:msup><mml:mrow><mml:mi mathvariant="italic">n</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo>+</mml:mo><mml:mi mathvariant="italic">n</mml:mi></mml:math>
<tex-math><![CDATA[${n^{2}}+n$]]></tex-math></alternatives></inline-formula> MAC tags</td>
<td style="vertical-align: top; text-align: left"/>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"><italic>n</italic> KEM-encapsulated keys,</td>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"/>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"><italic>n</italic> masked ephem. keys</td>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"/>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">ADGK</td>
<td style="vertical-align: top; text-align: left">3</td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor427_ineq_338"><alternatives>
<mml:math><mml:mn>2</mml:mn><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:msup><mml:mrow><mml:mi mathvariant="italic">n</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo>+</mml:mo><mml:mi mathvariant="italic">n</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math>
<tex-math><![CDATA[$2({n^{2}}+n)$]]></tex-math></alternatives></inline-formula> <inline-formula id="j_infor427_ineq_339"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="italic">R</mml:mi></mml:mrow><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi mathvariant="italic">q</mml:mi></mml:mrow><mml:mo stretchy="false">ˆ</mml:mo></mml:mover></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${R_{\hat{q}}}$]]></tex-math></alternatives></inline-formula>-elements,</td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor427_ineq_340"><alternatives>
<mml:math><mml:mn>2</mml:mn><mml:msup><mml:mrow><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mi mathvariant="italic">n</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:math>
<tex-math><![CDATA[$2{(n+1)^{2}}$]]></tex-math></alternatives></inline-formula> ops. in <inline-formula id="j_infor427_ineq_341"><alternatives>
<mml:math><mml:msub><mml:mrow><mml:mi mathvariant="italic">R</mml:mi></mml:mrow><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi mathvariant="italic">q</mml:mi></mml:mrow><mml:mo stretchy="false">ˆ</mml:mo></mml:mover></mml:mrow></mml:msub></mml:math>
<tex-math><![CDATA[${R_{\hat{q}}}$]]></tex-math></alternatives></inline-formula>,</td>
<td style="vertical-align: top; text-align: left">Unauthent.</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor427_ineq_342"><alternatives>
<mml:math><mml:msup><mml:mrow><mml:mi mathvariant="italic">n</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo>+</mml:mo><mml:mi mathvariant="italic">n</mml:mi></mml:math>
<tex-math><![CDATA[${n^{2}}+n$]]></tex-math></alternatives></inline-formula> elements in the</td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor427_ineq_343"><alternatives>
<mml:math><mml:mn>2</mml:mn><mml:mi mathvariant="italic">n</mml:mi></mml:math>
<tex-math><![CDATA[$2n$]]></tex-math></alternatives></inline-formula> key rec. calls</td>
<td style="vertical-align: top; text-align: left"/>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left">output space of the key</td>
<td style="vertical-align: top; text-align: left"/>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left">reconciliation algorithm</td>
<td style="vertical-align: top; text-align: left"/>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">ADGK<sup>†</sup></td>
<td style="vertical-align: top; text-align: left">4</td>
<td style="vertical-align: top; text-align: left">As in ADGK, plus</td>
<td style="vertical-align: top; text-align: left">As above, plus</td>
<td style="vertical-align: top; text-align: left">PKI+</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor427_ineq_345"><alternatives>
<mml:math><mml:mi mathvariant="italic">n</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:math>
<tex-math><![CDATA[$n+1$]]></tex-math></alternatives></inline-formula> nonces and</td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor427_ineq_346"><alternatives>
<mml:math><mml:mn>3</mml:mn><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:msup><mml:mrow><mml:mi mathvariant="italic">n</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo>+</mml:mo><mml:mi mathvariant="italic">n</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math>
<tex-math><![CDATA[$3({n^{2}}+n)$]]></tex-math></alternatives></inline-formula> sign.</td>
<td style="vertical-align: top; text-align: left">Signature</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor427_ineq_347"><alternatives>
<mml:math><mml:mn>3</mml:mn><mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:msup><mml:mrow><mml:mi mathvariant="italic">n</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo>+</mml:mo><mml:mi mathvariant="italic">n</mml:mi><mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math>
<tex-math><![CDATA[$3({n^{2}}+n)$]]></tex-math></alternatives></inline-formula> signatures</td>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"/>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">PSS</td>
<td style="vertical-align: top; text-align: left">3</td>
<td style="vertical-align: top; text-align: left"><italic>n</italic> KEM public keys,</td>
<td style="vertical-align: top; text-align: left"><italic>n</italic> key enc. and dec.,</td>
<td style="vertical-align: top; text-align: left">PKI+</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"><italic>n</italic> KEM-encapsulated keys,</td>
<td style="vertical-align: top; text-align: left"><italic>n</italic> sign.</td>
<td style="vertical-align: top; text-align: left">Signature</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor427_ineq_348"><alternatives>
<mml:math><mml:msup><mml:mrow><mml:mi mathvariant="italic">n</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo>+</mml:mo><mml:mi mathvariant="italic">n</mml:mi></mml:math>
<tex-math><![CDATA[${n^{2}}+n$]]></tex-math></alternatives></inline-formula> masked ephem. keys</td>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"/>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"/>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"/>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"><inline-formula id="j_infor427_ineq_349"><alternatives>
<mml:math><mml:msup><mml:mrow><mml:mi mathvariant="italic">n</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo>+</mml:mo><mml:mi mathvariant="italic">n</mml:mi></mml:math>
<tex-math><![CDATA[${n^{2}}+n$]]></tex-math></alternatives></inline-formula> signatures</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"/>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"/>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
</sec>
<sec id="j_infor427_s_011">
<label>5</label>
<title>Final Remarks</title>
<p>We present in this work a group key exchange that can be proven secure in the sense of Definition <xref rid="j_infor427_stat_001">1</xref>. As we only consider quantum adversaries to be active once the protocol execution has ended, and, moreover, our building blocks are very simple tools, we accomplish a clean and efficient design. It is indeed worth exploring other approaches towards thwarting general quantum attacks. A promising avenue is to investigate the viability of a compiled construction derived from applying the design sketched in Appendix C of Benhamouda <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor427_ref_008">2018</xref>) and the compiler from Abdalla <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor427_ref_001">2007</xref>). While being fully quantum resistant, such a design would involve sophisticated lattice-based primitives, for which, moreover, investigating the attained post-quantum security level is still a topic of active research.</p>
</sec>
</body>
<back>
<ref-list id="j_infor427_reflist_001">
<title>References</title>
<ref id="j_infor427_ref_001">
<mixed-citation publication-type="chapter"><string-name><surname>Abdalla</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Bohli</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Vasco</surname>, <given-names>M.I.G.</given-names></string-name>, <string-name><surname>Steinwandt</surname>, <given-names>R.</given-names></string-name> (<year>2007</year>). <chapter-title>(Password) Authenticated key establishment: from 2-party to group</chapter-title>. In: <string-name><surname>Vadhan</surname>, <given-names>S.P.</given-names></string-name> (Ed.), <source>Theory of Cryptography, 4th Theory of Cryptography Conference</source>, <conf-loc>TCC 2007, Amsterdam, The Netherlands, February 21–24, 2007, Proceedings</conf-loc>, <series><italic>Lecture Notes in Computer Science</italic></series>, Vol. <volume>4392</volume>. <publisher-name>Springer</publisher-name>, <publisher-loc>Amsterdam, The Netherlands</publisher-loc>, pp. <fpage>499</fpage>–<lpage>514</lpage>.</mixed-citation>
</ref>
<ref id="j_infor427_ref_002">
<mixed-citation publication-type="chapter"><string-name><surname>Alkim</surname>, <given-names>E.</given-names></string-name>, <string-name><surname>Ducas</surname>, <given-names>L.</given-names></string-name>, <string-name><surname>Pöppelmann</surname>, <given-names>T.</given-names></string-name>, <string-name><surname>Schwabe</surname>, <given-names>P.</given-names></string-name> (<year>2016</year>). <chapter-title>Post-quantum key exchange – a new hope</chapter-title>. In: <string-name><surname>Holz</surname>, <given-names>T.</given-names></string-name>, <string-name><surname>Savage</surname>, <given-names>S.</given-names></string-name> (Eds.), <source>25th USENIX Security Symposium, USENIX Security 16</source>, <conf-loc>Austin, TX, USA, August 10–12, 2016</conf-loc>. <publisher-name>USENIX Association</publisher-name>, pp. <fpage>327</fpage>–<lpage>343</lpage>.</mixed-citation>
</ref>
<ref id="j_infor427_ref_003">
<mixed-citation publication-type="chapter"><string-name><surname>Apon</surname>, <given-names>D.</given-names></string-name>, <string-name><surname>Dachman-Soled</surname>, <given-names>D.</given-names></string-name>, <string-name><surname>Gong</surname>, <given-names>H.</given-names></string-name>, <string-name><surname>Katz</surname>, <given-names>J.</given-names></string-name> (<year>2019</year>). <chapter-title>Constant-round group key exchange from the ring-LWE assumption</chapter-title>. In: <string-name><surname>Ding</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Steinwandt</surname>, <given-names>R.</given-names></string-name> (Eds.), <source>Post-Quantum Cryptography – 10th International Conference</source> <conf-loc>PQCrypto 2019, Chongqing, China, May 8–10, 2019, Revised Selected Papers</conf-loc>, <series><italic>Lecture Notes in Computer Science</italic></series>, Vol. <volume>11505</volume>. <publisher-name>Springer</publisher-name>, pp. <fpage>189</fpage>–<lpage>205</lpage>.</mixed-citation>
</ref>
<ref id="j_infor427_ref_004">
<mixed-citation publication-type="other"><string-name><surname>Aragon</surname>, <given-names>N.</given-names></string-name>, <string-name><surname>Barreto</surname>, <given-names>P.</given-names></string-name>, <string-name><surname>Bettaieb</surname>, <given-names>S.</given-names></string-name>, <string-name><surname>Bidoux</surname>, <given-names>L.</given-names></string-name>, <string-name><surname>Blazy</surname>, <given-names>O.</given-names></string-name>, <string-name><surname>Deneuville</surname>, <given-names>J.-C.</given-names></string-name>, <string-name><surname>Gaborit</surname>, <given-names>P.</given-names></string-name>, <string-name><surname>Gueron</surname>, <given-names>S.</given-names></string-name>, <string-name><surname>Guneysu</surname>, <given-names>T.</given-names></string-name>, <string-name><surname>Melchor</surname>, <given-names>C.A.</given-names></string-name>, <string-name><surname>Misoczki</surname>, <given-names>R.</given-names></string-name>, <string-name><surname>Persichetti</surname>, <given-names>E.</given-names></string-name>, <string-name><surname>Sendrier</surname>, <given-names>N.</given-names></string-name>, <string-name><surname>Tillich</surname>, <given-names>J.-P.</given-names></string-name>, <string-name><surname>Zémor</surname>, <given-names>G.</given-names></string-name> (2017). BIKE: bit flipping key encapsulation. hal-01671903.</mixed-citation>
</ref>
<ref id="j_infor427_ref_005">
<mixed-citation publication-type="other"><string-name><surname>Azarderakhsh</surname>, <given-names>R.</given-names></string-name>, <string-name><surname>Campagna</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Costello</surname>, <given-names>C.</given-names></string-name>, <string-name><surname>Feo</surname>, <given-names>L.</given-names></string-name>, <string-name><surname>Hess</surname>, <given-names>B.</given-names></string-name>, <string-name><surname>Jalali</surname>, <given-names>A.</given-names></string-name>, <string-name><surname>Jao</surname>, <given-names>D.</given-names></string-name>, <string-name><surname>Koziel</surname>, <given-names>B.</given-names></string-name>, <string-name><surname>LaMacchia</surname>, <given-names>B.</given-names></string-name>, <string-name><surname>Longa</surname>, <given-names>P.</given-names></string-name> et al. (2017). SIKE – Supersingular Isogeny Key Encapsulation. <uri>https://sike.org/</uri>.</mixed-citation>
</ref>
<ref id="j_infor427_ref_006">
<mixed-citation publication-type="chapter"><string-name><surname>Bellare</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Rogaway</surname>, <given-names>P.</given-names></string-name> (<year>1994</year>). <chapter-title>Entitiy authentication and key distribution</chapter-title>. In: <string-name><surname>Stinson</surname>, <given-names>D.R.</given-names></string-name> (Ed.), <source>Advances in Cryptology – CRYPTO ’93</source>, <series><italic>Lecture Notes in Computer Science</italic></series>, Vol. <volume>773</volume>. <publisher-name>Springer</publisher-name>, pp. <fpage>232</fpage>–<lpage>249</lpage>.</mixed-citation>
</ref>
<ref id="j_infor427_ref_007">
<mixed-citation publication-type="chapter"><string-name><surname>Bellare</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Pointcheval</surname>, <given-names>D.</given-names></string-name>, <string-name><surname>Rogaway</surname>, <given-names>P.</given-names></string-name> (<year>2000</year>). <chapter-title>Authenticated key exchange secure against dictionary attacks</chapter-title>. In: <string-name><surname>Preneel</surname>, <given-names>B.</given-names></string-name> (Ed.), <source>Advances in Cryptology – EUROCRYPT 2000</source>, <series><italic>Lecture Notes in Computer Science</italic></series>, Vol. <volume>1807</volume>. <publisher-name>Springer</publisher-name>, pp. <fpage>139</fpage>–<lpage>155</lpage>.</mixed-citation>
</ref>
<ref id="j_infor427_ref_008">
<mixed-citation publication-type="chapter"><string-name><surname>Benhamouda</surname>, <given-names>F.</given-names></string-name>, <string-name><surname>Blazy</surname>, <given-names>O.</given-names></string-name>, <string-name><surname>Ducas</surname>, <given-names>L.</given-names></string-name>, <string-name><surname>Quach</surname>, <given-names>W.</given-names></string-name> (<year>2018</year>). <chapter-title>Hash proof systems over lattices revisited</chapter-title>. In: <string-name><surname>Abdalla</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Dahab</surname>, <given-names>R.</given-names></string-name> (Eds.), <source>Public-Key Cryptography – PKC 2018 – 21st IACR International Conference on Practice and Theory of Public-Key Cryptography</source>. <conf-loc>Rio de Janeiro, Brazil, March 25–29, 2018, Proceedings, Part II</conf-loc>, <series><italic>Lecture Notes in Computer Science</italic></series>, Vol. <volume>10770</volume>. <publisher-name>Springer</publisher-name>, pp. <fpage>644</fpage>–<lpage>674</lpage>.</mixed-citation>
</ref>
<ref id="j_infor427_ref_009">
<mixed-citation publication-type="chapter"><string-name><surname>Bernstein</surname>, <given-names>D.J.</given-names></string-name> (<year>2005</year>). <chapter-title>The Poly1305-AES message-authentication code</chapter-title>. In: <string-name><surname>Gilbert</surname>, <given-names>H.</given-names></string-name>, <string-name><surname>Handschuh</surname>, <given-names>H.</given-names></string-name> (Eds.), <source>Fast Software Encryption FSE 2005, Revised Selected Papers</source>, <series><italic>Lecture Notes in Computer Science</italic></series>, Vol. <volume>3557</volume>. <publisher-name>Springer</publisher-name>, pp. <fpage>32</fpage>–<lpage>49</lpage>.</mixed-citation>
</ref>
<ref id="j_infor427_ref_010">
<mixed-citation publication-type="other"><string-name><surname>Bernstein</surname>, <given-names>D.</given-names></string-name>, <string-name><surname>Chou</surname>, <given-names>T.</given-names></string-name>, <string-name><surname>Lange</surname>, <given-names>T.</given-names></string-name>, <string-name><surname>von Maurich I</surname></string-name>, <string-name><surname>Misoczki</surname>, <given-names>R.</given-names></string-name>, <string-name><surname>Niederhagen</surname>, <given-names>R.</given-names></string-name>, <string-name><surname>Persichetti</surname>, <given-names>E.</given-names></string-name>, <string-name><surname>Peters</surname>, <given-names>C.</given-names></string-name>, <string-name><surname>Schwabe</surname>, <given-names>P.</given-names></string-name>, <string-name><surname>Sendrier</surname>, <given-names>N.</given-names></string-name>, <string-name><surname>Szefer</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Wang</surname>, <given-names>W.</given-names></string-name> (2017a). Classic McEliece. <uri>https://classic.mceliece.org/</uri>.</mixed-citation>
</ref>
<ref id="j_infor427_ref_011">
<mixed-citation publication-type="chapter"><string-name><surname>Bernstein</surname>, <given-names>D.J.</given-names></string-name>, <string-name><surname>Chuengsatiansup</surname>, <given-names>C.</given-names></string-name>, <string-name><surname>Lange</surname>, <given-names>T.</given-names></string-name>, <string-name><surname>van Vredendaal</surname>, <given-names>C.</given-names></string-name> (<year>2017b</year>). <chapter-title>Reducing attack surface at low cost</chapter-title>. In: <string-name><surname>Adams</surname>, <given-names>C.</given-names></string-name>, <string-name><surname>Camenisch</surname>, <given-names>J.</given-names></string-name>, (Eds.), <chapter-title>Selected Areas in Cryptography – SAC 2017 – 24th International Conference</chapter-title>, <conf-loc>Ottawa, ON, Canada, August 16–18, 2017, Revised Selected Papers</conf-loc>, <series><italic>Lecture Notes in Computer Science</italic></series>, Vol. 10719. <publisher-name>Springer</publisher-name>, pp. <fpage>235</fpage>–<lpage>260</lpage>.</mixed-citation>
</ref>
<ref id="j_infor427_ref_012">
<mixed-citation publication-type="chapter"><string-name><surname>Bindel</surname>, <given-names>N.</given-names></string-name>, <string-name><surname>Herath</surname>, <given-names>U.</given-names></string-name>, <string-name><surname>McKague</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Stebila</surname>, <given-names>D.</given-names></string-name> (<year>2017</year>). <chapter-title>Transitioning to a quantum-resistant public key infrastructure</chapter-title>. In: <string-name><surname>Lange</surname>, <given-names>T.</given-names></string-name>, <string-name><surname>Takagi</surname>, <given-names>T.</given-names></string-name> (Eds.), <source>Post-Quantum Cryptography – 8th International Workshop</source>, <conf-loc>PQCrypto 2017, Utrecht, The Netherlands, June 26–28, 2017, Proceedings</conf-loc>, <series><italic>Lecture Notes in Computer Science</italic></series>, Vol. <volume>10346</volume>. <publisher-name>Springer</publisher-name>, pp. <fpage>384</fpage>–<lpage>405</lpage>.</mixed-citation>
</ref>
<ref id="j_infor427_ref_013">
<mixed-citation publication-type="journal"><string-name><surname>Bindel</surname>, <given-names>N.</given-names></string-name>, <string-name><surname>Brendel</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Fischlin</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Goncalves</surname>, <given-names>B.</given-names></string-name>, <string-name><surname>Stebila</surname>, <given-names>D.</given-names></string-name> (<year>2018</year>). <article-title>Hybrid key encapsulation mechanisms and authenticated key exchange</article-title>. <source>IACR Cryptology ePrint Archive</source>, <volume>2018</volume>, <fpage>903</fpage>.</mixed-citation>
</ref>
<ref id="j_infor427_ref_014">
<mixed-citation publication-type="journal"><string-name><surname>Bohli</surname>, <given-names>J.M.</given-names></string-name>, <string-name><surname>González Vasco</surname>, <given-names>M.I.</given-names></string-name>, <string-name><surname>Steinwandt</surname>, <given-names>R.</given-names></string-name> (<year>2007</year>). <article-title>Secure group key establishment revisited</article-title>. <source>International Journal of Information Security</source>, <volume>6</volume>(<issue>4</issue>), <fpage>243</fpage>–<lpage>254</lpage>.</mixed-citation>
</ref>
<ref id="j_infor427_ref_015">
<mixed-citation publication-type="other"><string-name><surname>Boneh</surname>, <given-names>D.</given-names></string-name>, <string-name><surname>Glass</surname>, <given-names>D.</given-names></string-name>, <string-name><surname>Krashen</surname>, <given-names>D.</given-names></string-name>, <string-name><surname>Lauter</surname>, <given-names>K.E.</given-names></string-name>, <string-name><surname>Sharif</surname>, <given-names>S.</given-names></string-name>, <string-name><surname>Silverberg</surname>, <given-names>A.</given-names></string-name>, <string-name><surname>Tibouchi</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Zhandry</surname>, <given-names>M.</given-names></string-name> (2018). Multiparty non-interactive key exchange and more from isogenies on elliptic curves. CoRR. <ext-link ext-link-type="uri" xlink:href="http://arxiv.org/abs/abs/1807.03038">abs/1807.03038</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor427_ref_016">
<mixed-citation publication-type="chapter"><string-name><surname>Bos</surname>, <given-names>J.W.</given-names></string-name>, <string-name><surname>Costello</surname>, <given-names>C.</given-names></string-name>, <string-name><surname>Naehrig</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Stebila</surname>, <given-names>D.</given-names></string-name> (<year>2015</year>). <chapter-title>Post-quantum key exchange for the TLS protocol from the ring learning with errors problem</chapter-title>. In: <source>2015 IEEE Symposium on Security and Privacy</source>, <conf-loc>SP 2015, San Jose, CA, USA, May 17–21, 2015</conf-loc>. <publisher-name>IEEE Computer Society</publisher-name>, pp. <fpage>553</fpage>–<lpage>570</lpage>.</mixed-citation>
</ref>
<ref id="j_infor427_ref_017">
<mixed-citation publication-type="chapter"><string-name><surname>Bos</surname>, <given-names>J.W.</given-names></string-name>, <string-name><surname>Costello</surname>, <given-names>C.</given-names></string-name>, <string-name><surname>Ducas</surname>, <given-names>L.</given-names></string-name>, <string-name><surname>Mironov</surname>, <given-names>I.</given-names></string-name>, <string-name><surname>Naehrig</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Nikolaenko</surname>, <given-names>V.</given-names></string-name>, <string-name><surname>Raghunathan</surname>, <given-names>A.</given-names></string-name>, <string-name><surname>Stebila</surname>, <given-names>D.</given-names></string-name> (<year>2016</year>). <chapter-title>Frodo: take off the ring! Practical, quantum-secure key exchange from LWE</chapter-title>. In: <string-name><surname>Weippl</surname>, <given-names>E.R.</given-names></string-name>, <string-name><surname>Katzenbeisser</surname>, <given-names>S.</given-names></string-name>, <string-name><surname>Kruegel</surname>, <given-names>C.</given-names></string-name>, <string-name><surname>Myers</surname>, <given-names>A.C.</given-names></string-name>, <string-name><surname>Halevi</surname>, <given-names>S.</given-names></string-name> (Eds.), <source>Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security</source>, <conf-loc>Vienna, Austria, October 24–28, 2016</conf-loc>. <publisher-name>ACM</publisher-name>, pp. <fpage>1006</fpage>–<lpage>1018</lpage>.</mixed-citation>
</ref>
<ref id="j_infor427_ref_018">
<mixed-citation publication-type="chapter"><string-name><surname>Bos</surname>, <given-names>J.W.</given-names></string-name>, <string-name><surname>Ducas</surname>, <given-names>L.</given-names></string-name>, <string-name><surname>Kiltz</surname>, <given-names>E.</given-names></string-name>, <string-name><surname>Lepoint</surname>, <given-names>T.</given-names></string-name>, <string-name><surname>Lyubashevsky</surname>, <given-names>V.</given-names></string-name>, <string-name><surname>Schanck</surname>, <given-names>J.M.</given-names></string-name>, <string-name><surname>Schwabe</surname>, <given-names>P.</given-names></string-name>, <string-name><surname>Seiler</surname>, <given-names>G.</given-names></string-name>, <string-name><surname>Stehlé</surname>, <given-names>D.</given-names></string-name> (<year>2018</year>). <chapter-title>CRYSTALS – kyber: A CCA-secure module-lattice-based KEM</chapter-title>. In: <source>2018 IEEE European Symposium on Security and Privacy</source>, <conf-loc>EuroS&amp;P 2018, London, United Kingdom, April, 24–26, 2018</conf-loc>. <publisher-name>IEEE</publisher-name>, pp. <fpage>353</fpage>–<lpage>367</lpage>.</mixed-citation>
</ref>
<ref id="j_infor427_ref_019">
<mixed-citation publication-type="chapter"><string-name><surname>Bresson</surname>, <given-names>E.</given-names></string-name>, <string-name><surname>Chevassut</surname>, <given-names>O.</given-names></string-name>, <string-name><surname>Pointcheval</surname>, <given-names>D.</given-names></string-name>, <string-name><surname>Quisquater</surname>, <given-names>J.</given-names></string-name> (<year>2001</year>). <chapter-title>Provably authenticated group Diffie-Hellman key exchange</chapter-title>. In: <string-name><surname>Reiter</surname>, <given-names>M.K.</given-names></string-name>, <string-name><surname>Samarati</surname>, <given-names>P.</given-names></string-name> (Eds.), <series>CCS 2001, Proceedings of the 8th ACM Conference on Computer and Communications Security</series>, <conf-loc>Philadelphia, Pennsylvania, USA, November 6–8, 2001</conf-loc>. <publisher-name>ACM</publisher-name>, pp. <fpage>255</fpage>–<lpage>264</lpage>.</mixed-citation>
</ref>
<ref id="j_infor427_ref_020">
<mixed-citation publication-type="journal"><string-name><surname>Burmester</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Desmedt</surname>, <given-names>Y.</given-names></string-name> (<year>2005</year>). <article-title>A secure and scalable Group Key Exchange system</article-title>. <source>Information Processing Letters</source>, <volume>94</volume>(<issue>3</issue>), <fpage>137</fpage>–<lpage>143</lpage>.</mixed-citation>
</ref>
<ref id="j_infor427_ref_021">
<mixed-citation publication-type="chapter"><string-name><surname>Chevassut</surname>, <given-names>O.</given-names></string-name>, <string-name><surname>Fouque</surname>, <given-names>P.</given-names></string-name>, <string-name><surname>Gaudry</surname>, <given-names>P.</given-names></string-name>, <string-name><surname>Pointcheval</surname>, <given-names>D.</given-names></string-name> (<year>2006</year>). <chapter-title>The twist-augmented technique for key exchange</chapter-title>. In: <string-name><surname>Yung</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Dodis</surname>, <given-names>Y.</given-names></string-name>, <string-name><surname>Kiayias</surname>, <given-names>A.</given-names></string-name>, <string-name><surname>Malkin</surname>, <given-names>T.</given-names></string-name> (Eds.), <source>Public Key Cryptography – PKC 2006 Proceedings</source>. <series><italic>Lecture Notes in Computer Science</italic></series>, Vol. <volume>3958</volume>. <publisher-name>Springer</publisher-name>, pp. <fpage>410</fpage>–<lpage>426</lpage>.</mixed-citation>
</ref>
<ref id="j_infor427_ref_022">
<mixed-citation publication-type="journal"><string-name><surname>Ding</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Xie</surname>, <given-names>X.</given-names></string-name>, <string-name><surname>Lin</surname>, <given-names>X.</given-names></string-name> (<year>2012</year>). <article-title>A simple provably secure key exchange scheme based on the learning with errors problem</article-title>. <source>IACR Cryptology ePrint Archive</source>, <volume>2012</volume>, <fpage>688</fpage>.</mixed-citation>
</ref>
<ref id="j_infor427_ref_023">
<mixed-citation publication-type="chapter"><string-name><surname>Ding</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Gao</surname>, <given-names>X.</given-names></string-name>, <string-name><surname>Takagi</surname>, <given-names>T.</given-names></string-name>, <string-name><surname>Wang</surname>, <given-names>Y.</given-names></string-name> (<year>2019</year>a). <chapter-title>One sample ring-LWE with rounding and its application to key exchange</chapter-title>. In: <string-name><surname>Deng</surname>, <given-names>R.H.</given-names></string-name>, <string-name><surname>Gauthier-Umaña</surname>, <given-names>V.</given-names></string-name>, <string-name><surname>Ochoa</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Yung</surname>, <given-names>M.</given-names></string-name> (Eds.), <source>Applied Cryptography and Network Security – 17th International Conference</source>, <conf-loc>ACNS 2019, Bogota, Colombia</conf-loc>, <conf-date>June 5–7, 2019, Proceedings</conf-date>, <series><italic>Lecture Notes in Computer Science</italic></series>, Vol. <volume>11464</volume>. <publisher-name>Springer</publisher-name>, pp. <fpage>323</fpage>–<lpage>343</lpage>.</mixed-citation>
</ref>
<ref id="j_infor427_ref_024">
<mixed-citation publication-type="chapter"><string-name><surname>Ding</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Schmitt</surname>, <given-names>K.</given-names></string-name>, <string-name><surname>Zhang</surname>, <given-names>Z.</given-names></string-name> (<year>2019</year>b). <chapter-title>A key exchange based on the short integer solution problem and the learning with errors problem</chapter-title>. In: <string-name><surname>Carlet</surname>, <given-names>C.</given-names></string-name>, <string-name><surname>Guilley</surname>, <given-names>S.</given-names></string-name>, <string-name><surname>Nitaj</surname>, <given-names>A.</given-names></string-name>, <string-name><surname>Souidi</surname>, <given-names>E.M.</given-names></string-name> (Eds.), <source>Codes, Cryptology and Information Security – Third International Conference</source>, <conf-loc>C2S 2019, Rabat, Morocco, April 22–24, 2019, Proceedings – In Honor of Said El Hajji</conf-loc>, <series><italic>Lecture Notes in Computer Science</italic></series>, Vol. <volume>11445</volume>. <publisher-name>Springer</publisher-name>, pp. <fpage>105</fpage>–<lpage>117</lpage>.</mixed-citation>
</ref>
<ref id="j_infor427_ref_025">
<mixed-citation publication-type="chapter"><string-name><surname>Dodis</surname>, <given-names>Y.</given-names></string-name>, <string-name><surname>Kiltz</surname>, <given-names>E.</given-names></string-name>, <string-name><surname>Pietrzak</surname>, <given-names>K.</given-names></string-name>, <string-name><surname>Wichs</surname>, <given-names>D.</given-names></string-name> (<year>2012</year>). <chapter-title>Message authentication</chapter-title>. In: <string-name><surname>Pointcheval</surname>, <given-names>D.</given-names></string-name>, <string-name><surname>Johansson</surname>, <given-names>T.</given-names></string-name> (Eds.), <source>Advances in Cryptology – EUROCRYPT 2012 – 31st Annual International Conference on the Theory and Applications of Cryptographic Techniques</source>, <conf-loc>Cambridge, UK, April 15–19, 2012, Proceedings</conf-loc>, <series><italic>Lecture Notes in Computer Science</italic></series>, Vol. <volume>7237</volume>. <publisher-name>Springer</publisher-name>, pp. <fpage>355</fpage>–<lpage>374</lpage>.</mixed-citation>
</ref>
<ref id="j_infor427_ref_026">
<mixed-citation publication-type="journal"><string-name><surname>Katz</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Yung</surname>, <given-names>M.</given-names></string-name> (<year>2007</year>). <article-title>Scalable protocols for authenticated group key exchange</article-title>. <source>Journal of Cryptology</source>, <volume>20</volume>(<issue>1</issue>), <fpage>85</fpage>–<lpage>113</lpage>.</mixed-citation>
</ref>
<ref id="j_infor427_ref_027">
<mixed-citation publication-type="chapter"><string-name><surname>Katz</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Vaikuntanathan</surname>, <given-names>V.</given-names></string-name> (<year>2009</year>). <chapter-title>Smooth projective hashing and password-based authenticated key exchange from lattices</chapter-title>. In: <string-name><surname>Matsui</surname>, <given-names>M.</given-names></string-name> (Ed.), <source>Advances in Cryptology – ASIACRYPT 2009, 15th International Conference on the Theory and Application of Cryptology and Information Security</source>, <conf-loc>Tokyo, Japan, December 6–10, 2009, Proceedings</conf-loc>, <series><italic>Lecture Notes in Computer Science</italic></series>, Vol. <volume>5912</volume>. <publisher-name>Springer</publisher-name>, pp. <fpage>636</fpage>–<lpage>652</lpage>.</mixed-citation>
</ref>
<ref id="j_infor427_ref_028">
<mixed-citation publication-type="other"><string-name><surname>National Institute of Standards and Technology</surname></string-name> (2019). Post-Quantum Cryptography; Round 2 Submissions. <uri>https://csrc.nist.gov/projects/post-quantum-cryptography/round-2-submissions</uri>.</mixed-citation>
</ref>
<ref id="j_infor427_ref_029">
<mixed-citation publication-type="journal"><string-name><surname>Persichetti</surname>, <given-names>E.</given-names></string-name>, <string-name><surname>Steinwandt</surname>, <given-names>R.</given-names></string-name>, <string-name><surname>Suárez Corona</surname>, <given-names>A.</given-names></string-name> (<year>2019</year>). <article-title>From key encapsulation to authenticated group key establishment – a compiler for post-quantum primitives</article-title>. <source>Entropy</source>, <volume>21</volume>(<issue>12</issue>), <fpage>1183</fpage>.</mixed-citation>
</ref>
</ref-list>
</back>
</article>