<?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">INFOR595</article-id>
<article-id pub-id-type="doi">10.15388/25-INFOR595</article-id>
<article-categories><subj-group subj-group-type="heading">
<subject>Research Article</subject></subj-group></article-categories>
<title-group>
<article-title>Scalable Authenticated Group Key Establishment in Quantum and Post-Quantum Networks</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name><surname>González Vasco</surname><given-names>Maria Isabel</given-names></name><email xlink:href="mariaisabel.gonzalez@uc3m.es">mariaisabel.gonzalez@uc3m.es</email><xref ref-type="aff" rid="j_infor595_aff_001">1</xref><xref ref-type="corresp" rid="cor1">∗</xref><bio>
<p><bold>M.I. González Vasco</bold> is a full professor of Applied Mathematics at Universidad Carlos III de Madrid, specializing in mathematical cryptography. She holds a PhD in mathematics from the University of Oviedo and focuses on provable security and quantum-resistant cryptography. She has co-directed NATO-funded projects and collaborates with international institutions. González Vasco is currently vicepresident of the Real Sociedad Matemática Española.</p></bio>
</contrib>
<contrib contrib-type="author">
<name><surname>Steinwandt</surname><given-names>Rainer</given-names></name><email xlink:href="rs0141@uah.edu">rs0141@uah.edu</email><xref ref-type="aff" rid="j_infor595_aff_002">2</xref><bio>
<p><bold>R. Steinwandt</bold> is currently dean of the College of Science at the University of Alabama in Huntsville (UAH). Previously, he chaired the Department of Mathematical Sciences and directed the Center for Cryptology and Information Security at Florida Atlantic University (FAU). He earned his MS and PhD in computer science from the University of Karlsruhe, Germany, specializing in computer algebra. His research focuses on cryptology, including quantum cryptanalysis and quantum-safe cryptography, with funding from agencies such as the National Science Foundation, the National Institute of Standards and Technology, and NATO SPS.</p></bio>
</contrib>
<aff id="j_infor595_aff_001"><label>1</label>Departamento de Matemáticas, <institution>Universidad Carlos III de Madrid</institution>, <country>Spain</country></aff>
<aff id="j_infor595_aff_002"><label>2</label><institution>University of Alabama in Huntsville</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>2025</year></pub-date><pub-date pub-type="epub"><day>4</day><month>6</month><year>2025</year></pub-date><volume>36</volume><issue>2</issue><fpage>315</fpage><lpage>335</lpage><history><date date-type="received"><month>11</month><year>2024</year></date><date date-type="accepted"><month>5</month><year>2025</year></date></history>
<permissions><copyright-statement>© 2025 Vilnius University</copyright-statement><copyright-year>2025</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>Establishing secure keys over untrusted networks is one of the most fundamental cryptographic tasks. While two-party key establishment protocols are available for many scenarios, even offering resistance to potential adversaries equipped with quantum computing resources, the multi-party scenario is not as well understood. In particular, there is a need to find designs that can make the most of the technologies available to each party involved in a cooperative <italic>n</italic>-party key establishment.</p>
<p>We propose an authenticated key establishment protocol involving <inline-formula id="j_infor595_ineq_001"><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> parties, assuming that some—possibly all—network nodes have the potential to implement quantum key distribution (in pairs), while others only have access to standard technology. The protocol allows for the cooperative construction of a shared secret key from partial keys established by quantum and post-quantum solutions, which in turn can be implemented by different building blocks. We give a formal security analysis of our proposal using a hybrid security model simultaneously capturing quantum and classical actions and capabilities.</p>
</abstract>
<kwd-group>
<label>Key words</label>
<kwd>group key establishment</kwd>
<kwd>post quantum cryptography</kwd>
<kwd>quantum key distribution</kwd>
<kwd>security model</kwd>
</kwd-group>
<funding-group><funding-statement>This work has been supported by NATO SPS project G5985.</funding-statement></funding-group>
</article-meta>
</front>
<body>
<sec id="j_infor595_s_001">
<label>1</label>
<title>Introduction</title>
<p>To cope with the potential of cryptanalytically-relevant quantum computers, two lines of research are actively pursued: <italic>quantum cryptography</italic> aims at leveraging results from quantum physics to establish security guarantees, and <italic>post-quantum cryptography</italic> makes use of purely classical constructions built from hardness assumptions that take into account quantum cryptanalysis.<xref ref-type="fn" rid="j_infor595_fn_001">1</xref><fn id="j_infor595_fn_001"><label><sup>1</sup></label>
<p>Throughout, the word <italic>classical</italic> will always mean “not making use of quantum technologies”.</p></fn> In this paper, we look at one of the fundamental cryptographic tasks—establishing a common secret key among a set of <inline-formula id="j_infor595_ineq_002"><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 in an authenticated manner. This task is commonly referred to as <italic>authenticated group key establishment</italic> <inline-formula id="j_infor595_ineq_003"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="sans-serif">GAKE</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(\mathsf{GAKE})$]]></tex-math></alternatives></inline-formula>. The common approach when aiming at <italic>quantum-resistant</italic> <inline-formula id="j_infor595_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>, is to either consider a solution relying entirely on quantum cryptography, specifically quantum key distribution (QKD), or a pure post-quantum protocol, e.g. leveraging a post-quantum key encapsulation mechanism (KEM), which is a public-key design through which one party generates and transports securely a cryptographic key to a designated peer.</p>
<p>While large-scale QKD networks remain unavailable, non-trivial local QKD infrastructures have been implemented. An incomplete list of examples are testbeds in the Chicago area in the U.S. (see Wu <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor595_ref_022">2021</xref>), in the Madrid area in Spain (see Cid <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor595_ref_008">2021</xref>), and in the Berlin area in Germany (see Braun and Geitz, <xref ref-type="bibr" rid="j_infor595_ref_006">2021</xref>). However, existing communication networks are not easy to combine/integrate with these quantum infrastructures, and the security guarantees for the complete network provided by establishing pairwise QKD keys are limited without other cryptographic solutions (most notably, for authentication, but also for refreshing keys or synchronizing multiple nodes). Toward this goal, connecting local QKD network infrastructures remains an active research topic (see Brauer <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor595_ref_005">2024</xref>).</p>
<p>On the post-quantum side, there is a lot of recent work on the design, implementation, and verification of two-party key exchange protocols, mostly built from generic transformations applied to encryption schemes or KEMs. An overview of existing solutions is offered by Alagic <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor595_ref_002">2022</xref>), which summarizes the results of the third evaluation round of the NIST process toward standardizing post-quantum cryptographic solutions. In the group setting, <inline-formula id="j_infor595_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> proposals can already be found in the literature, for instance by Apon <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor595_ref_003">2019</xref>), Escribano Pablos <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor595_ref_011">2020</xref>), or Escribano Pablos <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor595_ref_010">2022</xref>), although these types of constructions have not been intensively analysed and little is known for instance, about implementation-dependent attacks.</p>
<p>From a pragmatic perspective, it is desirable to be able to leverage both existing quantum and post-quantum infrastructures, a scenario that is not well understood yet.</p>
<p><italic>Our contribution</italic>. We present a construction and security analysis for a flexible quantum-safe <inline-formula id="j_infor595_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> that leverages available “local” solutions for (group) key establishment, e.g. post-quantum KEMs or QKD-based designs. Depending on the guarantees provided by the contributing local solutions, the resulting <inline-formula id="j_infor595_ineq_007"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">GAKE</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{GAKE}$]]></tex-math></alternatives></inline-formula> offers information-theoretic or computational guarantees. It is possible to use our design with classical primitives, QKD connections, or in a hybrid network.</p>
<p>We follow a well-established technique of defining a <italic>compiler</italic>, i.e. a metaprotocol using one or more <inline-formula id="j_infor595_ineq_008"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">GAKE</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{GAKE}$]]></tex-math></alternatives></inline-formula>s as embedded subroutines, which can be proven secure provided that a certain level of security is achieved by the basic building blocks involved. The flexibility of our design appears to be very useful with the current state-of-the art, as some quantum and post-quantum designs are still under cryptanalytic exploration.</p>
<p>To be able to capture a hybrid classical/quantum communication infrastructure, we build on a versatile security model proposed by Mosca <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor595_ref_016">2013</xref>), introducing some small adaptations. We believe this model to be of interest for exploring (group) key establishment over hybrid classical-quantum networks, independent of our specific <inline-formula id="j_infor595_ineq_009"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">GAKE</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{GAKE}$]]></tex-math></alternatives></inline-formula> construction.</p>
<p><italic>Paper Roadmap</italic>. We begin this work with a brief overview of the related literature in Section <xref rid="j_infor595_s_002">2</xref>, followed by an introduction to the security model we propose to evaluate our construction in Section <xref rid="j_infor595_s_003">3</xref>. Section <xref rid="j_infor595_s_005">4</xref> provides a detailed description of our proposal, starting with an outline of the rationale behind the construction, and concluding with a formal security analysis in the final subsection. Given the various choices available for concrete implementation in our design, we discuss different options in Section <xref rid="j_infor595_s_009">5</xref>. We conclude with a brief summary of the paper’s main contributions and suggest potential directions for future research in the Conclusion section.</p>
</sec>
<sec id="j_infor595_s_002">
<label>2</label>
<title>Related Work</title>
<p>In the literature, several works can be found exploring different ways of establishing secure keying material through the combination of quantum and classical technologies (see the summarizing Table <xref rid="j_infor595_tab_001">1</xref> below).</p>
<table-wrap id="j_infor595_tab_001">
<label>Table 1</label>
<caption>
<p>Comparison of (hybrid) quantum resistant key exchange constructions.</p>
</caption>
<table>
<thead>
<tr>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Protocol</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Type</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Contributing parties</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Q-parties</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">PQ-parties</td>
</tr>
</thead>
<tbody>
<tr>
<td style="vertical-align: top; text-align: left">Dowling <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor595_ref_009">2020</xref>)</td>
<td style="vertical-align: top; text-align: left">Hybrid AKE</td>
<td style="vertical-align: top; text-align: left">2</td>
<td style="vertical-align: top; text-align: left">2</td>
<td style="vertical-align: top; text-align: left">2</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">Bruckner <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor595_ref_007">2023</xref>)</td>
<td style="vertical-align: top; text-align: left">Hybrid AKE</td>
<td style="vertical-align: top; text-align: left">2</td>
<td style="vertical-align: top; text-align: left">2</td>
<td style="vertical-align: top; text-align: left">2</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">Viksna <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor595_ref_021">2023</xref>)</td>
<td style="vertical-align: top; text-align: left">QKD distribution/management</td>
<td style="vertical-align: top; text-align: left">2</td>
<td style="vertical-align: top; text-align: left">2</td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor595_ineq_010"><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\leqslant 2$]]></tex-math></alternatives></inline-formula></td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">Kozlovics <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor595_ref_015">2023</xref>)</td>
<td style="vertical-align: top; text-align: left">QKD distribution/management</td>
<td style="vertical-align: top; text-align: left">2</td>
<td style="vertical-align: top; text-align: left">2</td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor595_ineq_011"><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\leqslant 2$]]></tex-math></alternatives></inline-formula></td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">Geitz <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor595_ref_012">2023</xref>)</td>
<td style="vertical-align: top; text-align: left">QKD distribution/management</td>
<td style="vertical-align: top; text-align: left">2</td>
<td style="vertical-align: top; text-align: left">2</td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor595_ineq_012"><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\leqslant 2$]]></tex-math></alternatives></inline-formula></td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">James <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor595_ref_014">2023</xref>)</td>
<td style="vertical-align: top; text-align: left">QKD distribution/management</td>
<td style="vertical-align: top; text-align: left">2</td>
<td style="vertical-align: top; text-align: left">2</td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor595_ineq_013"><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\leqslant 2$]]></tex-math></alternatives></inline-formula></td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">Our work</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">GAKE</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"><inline-formula id="j_infor595_ineq_014"><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></td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">any <italic>j</italic> in <inline-formula id="j_infor595_ineq_015"><alternatives><mml:math>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mn>2</mml:mn>
<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[$\{2,n\}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">any <italic>j</italic> in <inline-formula id="j_infor595_ineq_016"><alternatives><mml:math>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mn>2</mml:mn>
<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[$\{2,n\}$]]></tex-math></alternatives></inline-formula></td>
</tr>
</tbody>
</table>
</table-wrap>
<p>A number of research contributions look at different ways to derive (two-party) cryptographic keys by <italic>combining</italic> keys established through different implementations of quantum, post-quantum, or traditional key exchange protocols (see, for instance, Dowling <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor595_ref_009">2020</xref>; Bruckner <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor595_ref_007">2023</xref>). This hybrid approach differs from ours, as it assumes that each party has access to <italic>all</italic> involved key sources, while in our scenario nodes have potentially different capabilities, e.g. we may have only few (or no) QKD connections available.</p>
<p>Also, in the last few years, several authors have explored the combination of classical and quantum resources in order to build secure networks, considering the QKD nodes to be the main source of keying material. For instance, in Viksna <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor595_ref_021">2023</xref>), Kozlovics <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor595_ref_015">2023</xref>), parties use QKD as a service to obtain secure keying material, which is accessed through (classical, post-quantum) TLS links. There, it is however assumed that there exist perfectly secure direct links between users and devices establishing QKD keys, which is a strong assumption. In Geitz <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor595_ref_012">2023</xref>), a high-level key management system is described through which all network nodes may access keying material (coming from a QKD, a post-quantum key exchange protocol, or a combination of those). Different protocols within these systems have been implemented in the OpenQKD testbed in Berlin. Similarly, in James <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor595_ref_014">2023</xref>), the authors explore different options for building a secure <italic>Key Management System</italic> in order to scale up from link-to-link quantum key generation to large key distribution networks.</p>
<p>While all these approaches are in a way related to ours, their main goal is to establish <italic>two-party</italic> keys taking advantage of QKD installations and reinforcing them through PQC. Thus, they could in principle be implemented with “only” two actors involved in the key generation (through a QKD execution). We aim at a contributory scenario, i.e. a general protocol solution where <inline-formula id="j_infor595_ineq_017"><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> users leverage classical and/or quantum techniques in order to (jointly) generate keying material from both sources to establish a secure key for the whole group.</p>
</sec>
<sec id="j_infor595_s_003">
<label>3</label>
<title>Security Model</title>
<p>In this section, we present a novel security model to enable a formal analysis of our proposal. While established models exist in the literature for group key establishment in the <italic>classical</italic> setting, we are not aware of any prior definition that formalizes the interaction between classical and quantum entities.</p>
<p>As a starting point, we base our work on a proposal by Mosca <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor595_ref_016">2013</xref>) and make some small changes to better capture some subtleties of special relevance to the group setting. For the special case of a two-party Authenticated Key Establishment (AKE), our model specializes to Mosca <italic>et al.’s</italic>. This “downward compatibility” enables us to compile a <inline-formula id="j_infor595_ineq_018"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">GAKE</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{GAKE}$]]></tex-math></alternatives></inline-formula> from existing popular two-party QKD (or classical key exchange) protocols that are already known to be secure in Mosca <italic>et al.</italic>’s framework.</p>
<p><italic>Parties</italic>. We follow the formalization in Mosca <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor595_ref_016">2013</xref>) based on classical and quantum Turing machines, but make some tweaks to better align with classical group key exchange models (see, e.g. Bohli <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor595_ref_004">2007</xref>). By <inline-formula id="j_infor595_ineq_019"><alternatives><mml:math><mml:mover accent="false">
<mml:mrow>
<mml:mi mathvariant="script">P</mml:mi>
</mml:mrow>
<mml:mo accent="true">‾</mml:mo></mml:mover></mml:math><tex-math><![CDATA[$\overline{\mathcal{P}}$]]></tex-math></alternatives></inline-formula> we denote a finite set of potential protocol participants, each of them labelled by a public identifier. Each party can be seen as a dual entity consisting of an interactive Turning machine that communicates through a classical tape <inline-formula id="j_infor595_ineq_020"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">e</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(e)$]]></tex-math></alternatives></inline-formula> with a coupled quantum Turing machine. Parties communicate through an input-output classical communication channel <inline-formula id="j_infor595_ineq_021"><alternatives><mml:math>
<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[$(c)$]]></tex-math></alternatives></inline-formula>—established between their “classical” parts. In turn, the quantum Turing machines from each party communicate through a quantum chanel <inline-formula id="j_infor595_ineq_022"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">q</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(q)$]]></tex-math></alternatives></inline-formula>. The classical Turing machine has also access to a randomness source (through a specific tape denoted <italic>r</italic>).</p>
<p>All classical information held by a specific party is stored in its <italic>memory</italic>, consisting of a collection of value pairs of the form <inline-formula id="j_infor595_ineq_023"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">X</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(x,X)$]]></tex-math></alternatives></inline-formula> where <italic>x</italic> is assumed to be private and <italic>X</italic> to be public—often referred to as a <italic>label</italic> of the secret value <italic>x</italic>. <statement id="j_infor595_stat_001"><label>Remark 1.</label>
<p>Our compiler does not require potential protocol participants to have access to quantum computational capabilities. Similarly, our protocol allows for a scenario where only some (possibly no) potential participants have the capability to execute a QKD protocol.</p></statement><italic>Session</italic>. A <italic>protocol</italic> can be seen as a well-defined sequence of classical and quantum interactions that will produce a private output to all involved parties, which is either a shared secret or an error message. Specific executions of the protocol are referred to as <italic>sessions</italic>. Memory pairs held by a party may either be <italic>ephemeral</italic>, i.e. linked to a specific session, or <italic>static</italic>, that is, used across multiple sessions.</p>
<p>Each protocol participant <inline-formula id="j_infor595_ineq_024"><alternatives><mml:math>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo stretchy="false">∈</mml:mo><mml:mover accent="false">
<mml:mrow>
<mml:mi mathvariant="script">P</mml:mi>
</mml:mrow>
<mml:mo accent="true">‾</mml:mo></mml:mover></mml:math><tex-math><![CDATA[$P\in \overline{\mathcal{P}}$]]></tex-math></alternatives></inline-formula> may execute several sessions in parallel. We will refer to a session of <italic>P</italic> with the notation <inline-formula id="j_infor595_ineq_025"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="normal">Π</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ψ</mml:mi>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\Pi _{P}^{\psi }}$]]></tex-math></alternatives></inline-formula>, where Ψ is a unique <italic>protocol session identifier</italic>.<xref ref-type="fn" rid="j_infor595_fn_002">2</xref><fn id="j_infor595_fn_002"><label><sup>2</sup></label>
<p>To better align with the use of the term <italic>session identifier</italic> in other classical group key exchange models, we slightly deviate from the terminology in Mosca <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor595_ref_016">2013</xref>) here and refer to Ψ as <italic>protocol session identifier</italic>; a <italic>session identifier</italic> will be a value <inline-formula id="j_infor595_ineq_026"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">sid</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{sid}$]]></tex-math></alternatives></inline-formula> obtained as output from a protocol.</p></fn> Each such session may be taken for a process executed by <italic>P</italic> and has assigned several variables to it: <inline-formula id="j_infor595_ineq_027"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">state</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ψ</mml:mi>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\mathsf{state}_{P}^{\psi }}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor595_ineq_028"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">sid</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ψ</mml:mi>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\mathsf{sid}_{P}^{\psi }}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor595_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">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ψ</mml:mi>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\mathsf{pid}_{P}^{\psi }}$]]></tex-math></alternatives></inline-formula>, and <inline-formula id="j_infor595_ineq_030"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">sk</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ψ</mml:mi>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\mathsf{sk}_{P}^{\psi }}$]]></tex-math></alternatives></inline-formula>, These variables are used as follows.</p>
<def-list><def-item><term/><def>
<p><inline-formula id="j_infor595_ineq_031"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">state</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ψ</mml:mi>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\mathsf{state}_{P}^{\psi }}$]]></tex-math></alternatives></inline-formula> keeps the state information during the protocol execution, i.e. it stores all memory pairs defined above, and mantains two vectors <bold>u</bold>, <bold>v</bold> defined as follows:</p>
<p><list>
<list-item id="j_infor595_li_001">
<label>•</label>
<p><inline-formula id="j_infor595_ineq_032"><alternatives><mml:math>
<mml:mi mathvariant="bold">v</mml:mi>
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">v</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="bold">v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\mathbf{v}=({\mathbf{v}_{0}},{\mathbf{v}_{1}}\dots )$]]></tex-math></alternatives></inline-formula> is a vector of public values or labels, whose components are vectors themselves. E.g., a vector <inline-formula id="j_infor595_ineq_033"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{v}_{i}}$]]></tex-math></alternatives></inline-formula> can store the ordered public values contributed by an involved participant in the session;</p>
</list-item>
<list-item id="j_infor595_li_002">
<label>•</label>
<p><inline-formula id="j_infor595_ineq_034"><alternatives><mml:math>
<mml:mi mathvariant="bold">u</mml:mi>
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">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="bold">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>…</mml:mo>
<mml:mspace width="0.1667em"/>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\mathbf{u}=({\mathbf{u}_{0}},{\mathbf{u}_{1}}\dots \hspace{0.1667em})$]]></tex-math></alternatives></inline-formula> is a vector storing in each component public values linked to an involved participant, yet these values are linked to the authentication process (thus, <bold>u</bold> will be referred to as the <italic>authentication vector</italic>).</p>
</list-item>
</list></p>
</def></def-item><def-item><term/><def>
<p><inline-formula id="j_infor595_ineq_035"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">sid</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ψ</mml:mi>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\mathsf{sid}_{P}^{\psi }}$]]></tex-math></alternatives></inline-formula> denotes a (non-secret) global session identifier that can serve as the name for the session key <inline-formula id="j_infor595_ineq_036"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">sk</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ψ</mml:mi>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\mathsf{sk}_{P}^{\psi }}$]]></tex-math></alternatives></inline-formula>.</p></def></def-item><def-item><term/><def>
<p><inline-formula id="j_infor595_ineq_037"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">pid</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ψ</mml:mi>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\mathsf{pid}_{P}^{\psi }}$]]></tex-math></alternatives></inline-formula> stores, as unordered sequence, the public identifiers of those participants that <inline-formula id="j_infor595_ineq_038"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="normal">Π</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ψ</mml:mi>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\Pi _{P}^{\psi }}$]]></tex-math></alternatives></inline-formula> aims at establishing a key with—not including <italic>P</italic> itself. We will further denote by <inline-formula id="j_infor595_ineq_039"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="sans-serif">pid</mml:mi>
</mml:mrow>
<mml:mo stretchy="true">¯</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ψ</mml:mi>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\bar{\mathsf{pid}}_{P}^{\psi }}$]]></tex-math></alternatives></inline-formula> the unordered sequence of identifiers involved in a concrete execution, namely, the set of identifiers contained in <inline-formula id="j_infor595_ineq_040"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">pid</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ψ</mml:mi>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\mathsf{pid}_{P}^{\psi }}$]]></tex-math></alternatives></inline-formula> along with the identifier <inline-formula id="j_infor595_ineq_041"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mtext mathvariant="italic">id</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\textit{id}_{P}}$]]></tex-math></alternatives></inline-formula>.</p></def></def-item><def-item><term/><def>
<p><inline-formula id="j_infor595_ineq_042"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">sk</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ψ</mml:mi>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\mathsf{sk}_{P}^{\psi }}$]]></tex-math></alternatives></inline-formula> stores the session key once it is accepted by the session <inline-formula id="j_infor595_ineq_043"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="normal">Π</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ψ</mml:mi>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\Pi _{P}^{\psi }}$]]></tex-math></alternatives></inline-formula>. Before acceptance, it stores a distinguished ⊥ value.</p></def></def-item></def-list>
<p>We assume that a session <inline-formula id="j_infor595_ineq_044"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="normal">Π</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ψ</mml:mi>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\Pi _{P}^{\psi }}$]]></tex-math></alternatives></inline-formula> must accept the session key constructed at the end of the corresponding protocol session if no deviation from the protocol specification occurs, resulting in a non-⊥ value of <inline-formula id="j_infor595_ineq_045"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">sk</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ψ</mml:mi>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\mathsf{sk}_{P}^{\psi }}$]]></tex-math></alternatives></inline-formula>. In the sequel, sessions and session variables may be written without sub- or superscripts, if the context renders them unnecessary. The <inline-formula id="j_infor595_ineq_046"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">state</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ψ</mml:mi>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\mathsf{state}_{P}^{\psi }}$]]></tex-math></alternatives></inline-formula> variable mentioned above is merely a convenient notation to refer to multiple locally stored values. Otherwise, our terminology follows by and large Mosca <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor595_ref_016">2013</xref>) with the following generalizations: 
<list>
<list-item id="j_infor595_li_003">
<label>•</label>
<p>In the model of Mosca <italic>et al.</italic>, each session has associated a <inline-formula id="j_infor595_ineq_047"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">pid</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{pid}$]]></tex-math></alternatives></inline-formula> value to store the identifier of the (one) peer with whom the session is executed. We allow the <inline-formula id="j_infor595_ineq_048"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">pid</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{pid}$]]></tex-math></alternatives></inline-formula> to be an unordered non-empty sequence of peer identifiers instead. The <italic>authentication vector</italic> <bold>u</bold> now captures the information used to identify all peers included in the <inline-formula id="j_infor595_ineq_049"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">pid</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{pid}$]]></tex-math></alternatives></inline-formula> of the session. Further, as noted above, we will denote by <inline-formula id="j_infor595_ineq_050"><alternatives><mml:math><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="sans-serif">pid</mml:mi>
</mml:mrow>
<mml:mo stretchy="true">¯</mml:mo></mml:mover></mml:math><tex-math><![CDATA[$\bar{\mathsf{pid}}$]]></tex-math></alternatives></inline-formula> the set of all identities involved in the execution (namely, those in <inline-formula id="j_infor595_ineq_051"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">pid</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{pid}$]]></tex-math></alternatives></inline-formula> and that from party <italic>P</italic> itself).</p>
</list-item>
<list-item id="j_infor595_li_004">
<label>•</label>
<p>The classical Turing machine’s output in Mosca <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor595_ref_016">2013</xref>) after a sucessful procotol completion is a tuple <inline-formula id="j_infor595_ineq_052"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="sans-serif">sk</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="sans-serif">pid</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="bold">v</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="bold">u</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(\mathsf{sk},\mathsf{pid},\mathbf{v},\mathbf{u})$]]></tex-math></alternatives></inline-formula>. Here, we allow an <italic>optional</italic> global session identifier <inline-formula id="j_infor595_ineq_053"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">sid</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{sid}$]]></tex-math></alternatives></inline-formula> to be included, i.e. the output may have the form <inline-formula id="j_infor595_ineq_054"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="sans-serif">sk</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="sans-serif">pid</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="bold">v</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="bold">u</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="sans-serif">sid</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(\mathsf{sk},\mathsf{pid},\mathbf{v},\mathbf{u},\mathsf{sid})$]]></tex-math></alternatives></inline-formula>, where the first component—<inline-formula id="j_infor595_ineq_055"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">sk</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{sk}$]]></tex-math></alternatives></inline-formula>—is private output and the vector <inline-formula id="j_infor595_ineq_056"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="sans-serif">pid</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="bold">v</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="bold">u</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="sans-serif">sid</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(\mathsf{pid},\mathbf{v},\mathbf{u},\mathsf{sid})$]]></tex-math></alternatives></inline-formula> is public output. If <inline-formula id="j_infor595_ineq_057"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">sid</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{sid}$]]></tex-math></alternatives></inline-formula> is not explicitly specified, it defaults to <inline-formula id="j_infor595_ineq_058"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">sid</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="bold">v</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{sid}=\mathbf{v}$]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
</list> 
We now rephrase (Mosca <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor595_ref_016">2013</xref>, Definition 1) in terms of the session identifier:</p><statement id="j_infor595_stat_002"><label>Definition 1</label>
<title>(<italic>Correctness</italic>)<italic>.</italic></title>
<p>A key exchange protocol is said to be <italic>correct</italic> if, when all protocol messages are relayed faithfully, without changes to content or ordering, the peer parties output the same session key <inline-formula id="j_infor595_ineq_059"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">sk</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{sk}$]]></tex-math></alternatives></inline-formula> and the same session identifier <inline-formula id="j_infor595_ineq_060"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">sid</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{sid}$]]></tex-math></alternatives></inline-formula>.</p></statement>
<p>For 2-party key exchange protocols as discussed in Mosca <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor595_ref_016">2013</xref>), which do not define an explicit session identifier, this specializes to correctness as used in Mosca <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor595_ref_016">2013</xref>). However, for our purposes, the ability to specify a separate session identifier will be convenient: we want to use existing, e.g. 2-party, protocols as building blocks of a protocol involving a larger number of participants. Here, the separation of <bold>v</bold> from the session identifier frees us from the problem of having to make “local” <bold>v</bold>-values of a 2-party protocol available to other protocol participants, just to ensure correctness of the overall protocol.</p>
<p><italic>Communication</italic>. Following Mosca <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor595_ref_016">2013</xref>), the classical Turing machine will have two incoming-outgoing classical communication channels (<italic>e</italic> and <italic>c</italic>). Communication through these channels is modelled through oracle queries:<xref ref-type="fn" rid="j_infor595_fn_003">3</xref><fn id="j_infor595_fn_003"><label><sup>3</sup></label>
<p>In Mosca <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor595_ref_016">2013</xref>), oracle queries are called <italic>activations</italic>, following the Turing-machine modelling terminology.</p></fn></p>
<list>
<list-item id="j_infor595_li_005">
<label>•</label>
<p><inline-formula id="j_infor595_ineq_061"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">SendC</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mtext mathvariant="italic">params</mml:mtext>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="sans-serif">pid</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\mathsf{SendC}(\textit{params},\mathsf{pid})$]]></tex-math></alternatives></inline-formula>: this query is received by a party <inline-formula id="j_infor595_ineq_062"><alternatives><mml:math>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo stretchy="false">∈</mml:mo><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="sans-serif">pid</mml:mi>
</mml:mrow>
<mml:mo stretchy="true">¯</mml:mo></mml:mover></mml:math><tex-math><![CDATA[$P\in \bar{\mathsf{pid}}$]]></tex-math></alternatives></inline-formula> through the <italic>c</italic>-channel and directs <italic>P</italic> to begin a new protocol execution, assigning to it a chosen internal protocol session identifier <italic>ψ</italic> and setting up <inline-formula id="j_infor595_ineq_063"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">pid</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ψ</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="sans-serif">pid</mml:mi></mml:math><tex-math><![CDATA[${\mathsf{pid}_{P}^{\psi }}=\mathsf{pid}$]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
<list-item id="j_infor595_li_006">
<label>•</label>
<p><inline-formula id="j_infor595_ineq_064"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">SendC</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">ψ</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{SendC}(\psi ,m)$]]></tex-math></alternatives></inline-formula>: the party receiving this query will receive the classical message <italic>m</italic> over the <italic>c</italic>-channel.</p>
</list-item>
<list-item id="j_infor595_li_007">
<label>•</label>
<p><inline-formula id="j_infor595_ineq_065"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">Q</mml:mi>
<mml:mn mathvariant="sans-serif">2</mml:mn>
<mml:mi mathvariant="sans-serif">C</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</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{Q}\mathsf{2}\mathsf{C}(m)$]]></tex-math></alternatives></inline-formula>: this models internal communication from the quantum to the classical Turing machine of a party; the classical Turing machine receives the message <italic>m</italic>.</p>
</list-item>
<list-item id="j_infor595_li_008">
<label>•</label>
<p><inline-formula id="j_infor595_ineq_066"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">SendQ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">ρ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\mathsf{SendQ}(\rho )$]]></tex-math></alternatives></inline-formula>: the party receiving this query will receive the quantum message <italic>ρ</italic> over the <italic>q</italic>-channel, activating its quantum Turing machine, which will return any outgoing quantum message over the <italic>q</italic>-channel and any classical message over the <italic>e</italic>-channel (towards the classical Turing machine).</p>
</list-item>
<list-item id="j_infor595_li_009">
<label>•</label>
<p><inline-formula id="j_infor595_ineq_067"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">C</mml:mi>
<mml:mn mathvariant="sans-serif">2</mml:mn>
<mml:mi mathvariant="sans-serif">Q</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</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{C}\mathsf{2}\mathsf{Q}(m)$]]></tex-math></alternatives></inline-formula>: this models internal communication from the classical to the quantum Turing machine of a party; the latter receives the classical message <italic>m</italic> and may output an outgoing quantum message on the <italic>q</italic>-channel or a classical message on the <italic>e</italic>-channel.</p>
</list-item>
</list>
<p>For further details on these oracle queries, we refer to Mosca <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor595_ref_016">2013</xref>).</p>
<p><italic>Adversarial model</italic>. To a large extent, the communication network is controlled by the adversary (following the typical modelling in classical group key exchange). We assume arbitrary point-to-point connections among users to be available, involving for each party the aforementioned classical (<italic>c</italic>) and quantum (<italic>q</italic>) channels. With respect to these channels, the network is non-private and fully asynchronous: The adversary may delay, eavesdrop, insert, and delete messages at will, only limited—with regard to the <italic>q</italic>-channel—by the laws of quantum mechanics. However, the adversary has no control over the communication between the classical and quantum subcomponents of a party, which takes place over the <italic>e</italic>-channel; neither will he have access to any information concerning the randomness obtained through the <italic>r</italic>-channel. In addition to the <inline-formula id="j_infor595_ineq_068"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">SendC</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{SendC}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor595_ineq_069"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">SendQ</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{SendQ}$]]></tex-math></alternatives></inline-formula> oracles, the adversary may also issue the following two types of queries to parties: 
<list>
<list-item id="j_infor595_li_010">
<label>•</label>
<p><inline-formula id="j_infor595_ineq_070"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">RevealNext</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{RevealNext}$]]></tex-math></alternatives></inline-formula>; this query allows the adversary to get the public tag <italic>X</italic> of a freshly generated memory entry <inline-formula id="j_infor595_ineq_071"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">X</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(x,X)$]]></tex-math></alternatives></inline-formula> by the addressed party.</p>
</list-item>
<list-item id="j_infor595_li_011">
<label>•</label>
<p><inline-formula id="j_infor595_ineq_072"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">Partner</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">X</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\mathsf{Partner}(X)$]]></tex-math></alternatives></inline-formula>; when addressed to a certain party, if the pair <inline-formula id="j_infor595_ineq_073"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">X</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(x,X)$]]></tex-math></alternatives></inline-formula> exists in its memory, it forwards to the adversary the secret value <italic>x</italic>. <inline-formula id="j_infor595_ineq_074"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">Partner</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">ψ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\mathsf{Partner}(\psi )$]]></tex-math></alternatives></inline-formula> returns the secret key for the corresponding session, if it exists (thus modelling so-called session-key reveals).</p>
</list-item>
</list> 
Non-internal oracle calls (namely, <inline-formula id="j_infor595_ineq_075"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">SendC</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="sans-serif">SendQ</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="sans-serif">RevealNext</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="sans-serif">Partner</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{SendC},\mathsf{SendQ},\mathsf{RevealNext},\mathsf{Partner}$]]></tex-math></alternatives></inline-formula>) should, in order to avoid ambiguity, include <inline-formula id="j_infor595_ineq_076"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">ψ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(P,\psi )$]]></tex-math></alternatives></inline-formula> as part of the input to clarify which party and which corresponding session are being addressed.</p>
<p><italic>Security</italic>. As customary, a special <inline-formula id="j_infor595_ineq_077"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">Test</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{Test}$]]></tex-math></alternatives></inline-formula> oracle is introduced in order to model a real attack and be able to define security: 
<list>
<list-item id="j_infor595_li_012">
<label>•</label>
<p><inline-formula id="j_infor595_ineq_078"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">Test</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">ψ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\mathsf{Test}(P,\psi )$]]></tex-math></alternatives></inline-formula>, when called by the adversary, will return ⊥ if a corresponding session key <inline-formula id="j_infor595_ineq_079"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">sk</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ψ</mml:mi>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\mathsf{sk}_{P}^{\psi }}$]]></tex-math></alternatives></inline-formula> has not been established. Otherwise, the oracle selects uniformly at random a bit <inline-formula id="j_infor595_ineq_080"><alternatives><mml:math>
<mml:mi mathvariant="italic">b</mml:mi><mml:mover>
<mml:mrow>
<mml:mo stretchy="false">←</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">$</mml:mi>
</mml:mrow>
</mml:mover>
<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\stackrel{\mathrm{\$ }}{\gets }\{0,1\}$]]></tex-math></alternatives></inline-formula> and will output <inline-formula id="j_infor595_ineq_081"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">sk</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ψ</mml:mi>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\mathsf{sk}_{P}^{\psi }}$]]></tex-math></alternatives></inline-formula> if <inline-formula id="j_infor595_ineq_082"><alternatives><mml:math>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[$b=1$]]></tex-math></alternatives></inline-formula> and a randomly selected bitstring (of the same length as <inline-formula id="j_infor595_ineq_083"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">sk</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ψ</mml:mi>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\mathsf{sk}_{P}^{\psi }}$]]></tex-math></alternatives></inline-formula>) if <inline-formula id="j_infor595_ineq_084"><alternatives><mml:math>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn></mml:math><tex-math><![CDATA[$b=0$]]></tex-math></alternatives></inline-formula>. The adversary may call this oracle only once.</p>
</list-item>
</list> 
Indeed, the security model must rule out trivial attacks, i.e. those for which the adversary will know the established session key from its interaction with the involved parties. This is done in Mosca <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor595_ref_016">2013</xref>) by introducing the following definition of <italic>freshness</italic>:</p><statement id="j_infor595_stat_003"><label>Definition 2</label>
<title>(Mosca <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor595_ref_016">2013</xref><italic>, 2</italic>)<italic>.</italic></title>
<p>A session <italic>ψ</italic> of a party <italic>P</italic> is <italic>fresh</italic> provided that, if <inline-formula id="j_infor595_ineq_085"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">out</mml:mi>
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="sans-serif">pid</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="bold">v</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="bold">u</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="sans-serif">sid</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\mathsf{out}=(\mathsf{pid},\mathbf{v},\mathbf{u},\mathsf{sid})$]]></tex-math></alternatives></inline-formula> is the corresponding public output vector, the following hold: 
<list>
<list-item id="j_infor595_li_013">
<label>•</label>
<p>for every component <inline-formula id="j_infor595_ineq_086"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{v}_{i}}$]]></tex-math></alternatives></inline-formula> of <bold>v</bold> there is at least one public label <italic>X</italic> in <inline-formula id="j_infor595_ineq_087"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{v}_{i}}$]]></tex-math></alternatives></inline-formula> such that the adversary never queried <inline-formula id="j_infor595_ineq_088"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">Partner</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">X</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\mathsf{Partner}(X)$]]></tex-math></alternatives></inline-formula>, and</p>
</list-item>
<list-item id="j_infor595_li_014">
<label>•</label>
<p>no query of the form <inline-formula id="j_infor595_ineq_089"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">Partner</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ψ</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[$\mathsf{Partner}({\psi ^{\prime }})$]]></tex-math></alternatives></inline-formula> has been made by the adversary on a session <inline-formula id="j_infor595_ineq_090"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ψ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\psi ^{\prime }}$]]></tex-math></alternatives></inline-formula> with the same output vector <inline-formula id="j_infor595_ineq_091"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">out</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{out}$]]></tex-math></alternatives></inline-formula>,<xref ref-type="fn" rid="j_infor595_fn_004">4</xref><fn id="j_infor595_fn_004"><label><sup>4</sup></label>
<p>In particular, the query <inline-formula id="j_infor595_ineq_092"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">Partner</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="normal">Ψ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\mathsf{Partner}(\Psi )$]]></tex-math></alternatives></inline-formula> violates freshness.</p></fn> and</p>
</list-item>
<list-item id="j_infor595_li_015">
<label>•</label>
<p>at the time of session completion, for every component <inline-formula id="j_infor595_ineq_093"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{u}_{i}}$]]></tex-math></alternatives></inline-formula> from <bold>u</bold>, there was at least one public label <italic>X</italic> in <inline-formula id="j_infor595_ineq_094"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{u}_{i}}$]]></tex-math></alternatives></inline-formula>, such that the adversary did not query <inline-formula id="j_infor595_ineq_095"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">Partner</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">X</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\mathsf{Partner}(X)$]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
</list>
</p></statement>
<p>Note that <italic>all</italic> authentication-related private values may be revealed after protocol completion (the above definition only ensures there will be at least one private value the adversary ignores at all times, which is linked to the vector <bold>v</bold>). This definition of freshness is geared towards including forward security in the model; leakage of authentication keys should not endanger previously established session keys.</p>
<p>Now, the definition of security must establish a corresponding bound on the adversary’s <italic>advantage</italic> when querying the <inline-formula id="j_infor595_ineq_096"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">Test</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{Test}$]]></tex-math></alternatives></inline-formula> oracle. Let <inline-formula id="j_infor595_ineq_097"><alternatives><mml:math>
<mml:mi mathvariant="italic">λ</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:mi mathvariant="double-struck">N</mml:mi></mml:math><tex-math><![CDATA[$\lambda \in \mathbb{N}$]]></tex-math></alternatives></inline-formula> be a fixed security parameter. The advantage <inline-formula id="j_infor595_ineq_098"><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:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">λ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${\mathsf{Adv}_{\mathcal{A}}}(\lambda )$]]></tex-math></alternatives></inline-formula> of an adversary <inline-formula id="j_infor595_ineq_099"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> in attacking the given protocol is a function in the security parameter <italic>λ</italic>, defined as 
<disp-formula id="j_infor595_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: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:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {\mathsf{Adv}_{\mathcal{A}}}:=|2\cdot {\mathsf{Succ}_{\mathcal{A}}}-1|.\]]]></tex-math></alternatives>
</disp-formula> 
Here, <inline-formula id="j_infor595_ineq_100"><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 that the adversary queries <inline-formula id="j_infor595_ineq_101"><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 and guesses correctly the bit <italic>b</italic> used by the <inline-formula id="j_infor595_ineq_102"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">Test</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{Test}$]]></tex-math></alternatives></inline-formula> oracle.</p><statement id="j_infor595_stat_004"><label>Definition 3.</label>
<p>We say that an authenticated group key establishment protocol <inline-formula id="j_infor595_ineq_103"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">P</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{P}$]]></tex-math></alternatives></inline-formula> is <italic>secure</italic> if for every adversary <inline-formula id="j_infor595_ineq_104"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> the following inequality holds for some negligible function <inline-formula id="j_infor595_ineq_105"><alternatives><mml:math>
<mml:mi mathvariant="normal">negl</mml:mi></mml:math><tex-math><![CDATA[$\mathrm{negl}$]]></tex-math></alternatives></inline-formula>: 
<disp-formula id="j_infor595_eq_002">
<label>(1)</label><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 mathvariant="italic">λ</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 mathvariant="italic">λ</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}}}(\lambda )\leqslant \mathrm{negl}(\lambda ).\]]]></tex-math></alternatives>
</disp-formula>
</p></statement>
<p>In the above definition, following Mosca <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor595_ref_016">2013</xref>), the classical running time of adversaries is assumed to be bounded, and so are the quantum runtime and the quantum memory. We consider here only the case of a polynomially bounded adversary, which is common in classical group key establishment models. However, in connection with quantum key distribution it makes sense to consider so-called <italic>long-term security</italic>, introduced by Müller-Quade and Unruh (<xref ref-type="bibr" rid="j_infor595_ref_017">2010</xref>), capturing the feature of a protocol that it will remain secure even if all hardness assumptions made no longer hold after the execution has finished. Following Mosca <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor595_ref_016">2013</xref>), we capture this as follows: <statement id="j_infor595_stat_005"><label>Definition 4.</label>
<p>A protocol is <italic>long-term</italic> secure if, for any unbounded quantum Turing machine <inline-formula id="j_infor595_ineq_106"><alternatives><mml:math>
<mml:mi mathvariant="script">M</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{M}$]]></tex-math></alternatives></inline-formula> acting on a classical and quantum transcript produced by a bounded adversary <inline-formula id="j_infor595_ineq_107"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula>, the advantage of <inline-formula id="j_infor595_ineq_108"><alternatives><mml:math>
<mml:mi mathvariant="script">M</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{M}$]]></tex-math></alternatives></inline-formula> in guessing the bit <italic>b</italic> chosen by the <inline-formula id="j_infor595_ineq_109"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">Test</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{Test}$]]></tex-math></alternatives></inline-formula> oracle is negligible in the security parameter.</p></statement></p>
<sec id="j_infor595_s_004">
<label>3.1</label>
<title>Adding Integrity to a Secure Key Exchange</title>
<p>To analyse the protocol design proposed below, it will be helpful to adopt a notion of <italic>integrity</italic> as introduced by Bohli <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor595_ref_004">2007</xref>) in the context of classical <inline-formula id="j_infor595_ineq_110"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">GAKE</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{GAKE}$]]></tex-math></alternatives></inline-formula>. Formally, note that the given definition of freshness allows the adversary to reveal keys from sessions which have different output vectors; as a result, if two completed sessions holding different session identifiers result in the same session key, the adversary trivially wins the <inline-formula id="j_infor595_ineq_111"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">Test</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{Test}$]]></tex-math></alternatives></inline-formula> challenge by construction. On top of this, integrity guarantees correctness and usability in adversarial environments (for users know who they share the session key with and how to address it).</p><statement id="j_infor595_stat_006"><label>Definition 5</label>
<title>(<italic>Integrity</italic>)<italic>.</italic></title>
<p>We say that a correct (group) key exchange protocol fulfills <italic>integrity</italic>, if, with overwhelming probability, for all sessions of honest parties that have completed with the same session identifier in their output (<inline-formula id="j_infor595_ineq_112"><alternatives><mml:math>
<mml:mo stretchy="false">≠</mml:mo>
<mml:mo stretchy="false">⊥</mml:mo></mml:math><tex-math><![CDATA[$\ne \perp $]]></tex-math></alternatives></inline-formula>), the session keys and parties associated with the session key (i.e. the partner identifier combined with the identifier of the party itself, denoted by <inline-formula id="j_infor595_ineq_113"><alternatives><mml:math><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="sans-serif">pid</mml:mi>
</mml:mrow>
<mml:mo stretchy="true">¯</mml:mo></mml:mover></mml:math><tex-math><![CDATA[$\bar{\mathsf{pid}}$]]></tex-math></alternatives></inline-formula>) are identical.</p></statement>
<p>In the quantum random oracle model, the following simple observation enables us to augment a given secure <inline-formula id="j_infor595_ineq_114"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">AKE</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{AKE}$]]></tex-math></alternatives></inline-formula> so that it fulfills integrity, in case it does not come with this guarantee already. Note that this approach also preserves long-term security, which is particularly desirable when working with QKD-based solutions. <statement id="j_infor595_stat_007"><label>Lemma 1.</label>
<p><italic>Let</italic> <inline-formula id="j_infor595_ineq_115"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">GAKE</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{GAKE}$]]></tex-math></alternatives></inline-formula> <italic>be a correct and secure key establishment protocol, and write</italic> <inline-formula id="j_infor595_ineq_116"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="sans-serif">sk</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="sans-serif">pid</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="bold">u</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="bold">v</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mtext mathvariant="sans-serif">sid</mml:mtext>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(\mathsf{sk},\mathsf{pid},\mathbf{u},\mathbf{v},\textsf{sid})$]]></tex-math></alternatives></inline-formula> <italic>for the output of a successfully completed session for party P. Assume that</italic> <inline-formula id="j_infor595_ineq_117"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">sk</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{sk}$]]></tex-math></alternatives></inline-formula> <italic>is a bitstring of length</italic> <inline-formula id="j_infor595_ineq_118"><alternatives><mml:math>
<mml:mo>⩾</mml:mo>
<mml:mn>9</mml:mn>
<mml:mi mathvariant="italic">λ</mml:mi></mml:math><tex-math><![CDATA[$\geqslant 9\lambda $]]></tex-math></alternatives></inline-formula><italic>, where λ is the security parameter, and write</italic> <inline-formula id="j_infor595_ineq_119"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">sk</mml:mi>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mo>:</mml:mo>
<mml:mi mathvariant="italic">λ</mml:mi>
<mml:mo fence="true" stretchy="false">]</mml:mo></mml:math><tex-math><![CDATA[$\mathsf{sk}[:\lambda ]$]]></tex-math></alternatives></inline-formula> <italic>for the λ left-most bits of</italic> <inline-formula id="j_infor595_ineq_120"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">sk</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{sk}$]]></tex-math></alternatives></inline-formula><italic>, and</italic> <inline-formula id="j_infor595_ineq_121"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">sk</mml:mi>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mi mathvariant="italic">λ</mml:mi>
<mml:mo>:</mml:mo>
<mml:mo fence="true" stretchy="false">]</mml:mo></mml:math><tex-math><![CDATA[$\mathsf{sk}[\lambda :]$]]></tex-math></alternatives></inline-formula> <italic>for the remaining bits of</italic> <inline-formula id="j_infor595_ineq_122"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">sk</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{sk}$]]></tex-math></alternatives></inline-formula><italic>. With a random oracle</italic> <inline-formula id="j_infor595_ineq_123"><alternatives><mml:math>
<mml:mi mathvariant="italic">H</mml:mi>
<mml:mo>:</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:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
<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">λ</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[$H:{\{0,1\}^{\ast }}\longrightarrow {\{0,1\}^{\lambda }}$]]></tex-math></alternatives></inline-formula><italic>, the following protocol</italic> <inline-formula id="j_infor595_ineq_124"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">GAKE</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathsf{GAKE}^{\prime }}$]]></tex-math></alternatives></inline-formula> <italic>is correct, secure and fulfills integrity.</italic> <inline-formula id="j_infor595_ineq_125"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">GAKE</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathsf{GAKE}^{\prime }}$]]></tex-math></alternatives></inline-formula> <italic>is identical to</italic> <inline-formula id="j_infor595_ineq_126"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">GAKE</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{GAKE}$]]></tex-math></alternatives></inline-formula><italic>, but in case of a successful session completion outputs</italic> 
<disp-formula id="j_infor595_eq_003">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:mi mathvariant="sans-serif">sk</mml:mi>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mo>:</mml:mo>
<mml:mi mathvariant="italic">λ</mml:mi>
<mml:mo fence="true" stretchy="false">]</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="sans-serif">pid</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="bold">u</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="bold">v</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">H</mml:mi>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="sans-serif">pid</mml:mi>
</mml:mrow>
<mml:mo stretchy="true">¯</mml:mo></mml:mover>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="sans-serif">sk</mml:mi>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mo>:</mml:mo>
<mml:mi mathvariant="italic">λ</mml:mi>
<mml:mo fence="true" stretchy="false">]</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mtext mathvariant="sans-serif-italic">sid</mml:mtext>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="sans-serif">sk</mml:mi>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mi mathvariant="italic">λ</mml:mi>
<mml:mo>:</mml:mo>
<mml:mo fence="true" stretchy="false">]</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \big(\mathsf{sk}[:\lambda ],\mathsf{pid},\mathbf{u},\mathbf{v},H\big(\bar{\mathsf{pid}},\mathsf{sk}[:\lambda ],\textit{\textsf{sid}},\mathsf{sk}[\lambda :]\big)\big).\]]]></tex-math></alternatives>
</disp-formula> 
<italic>Namely, it sets the output secret key as</italic> <inline-formula id="j_infor595_ineq_127"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">sk</mml:mi>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mo>:</mml:mo>
<mml:mi mathvariant="italic">λ</mml:mi>
<mml:mo fence="true" stretchy="false">]</mml:mo></mml:math><tex-math><![CDATA[$\mathsf{sk}[:\lambda ]$]]></tex-math></alternatives></inline-formula><italic>, and the corresponding session identifier as</italic> 
<disp-formula id="j_infor595_eq_004">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="italic">H</mml:mi>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="sans-serif">pid</mml:mi>
</mml:mrow>
<mml:mo stretchy="true">¯</mml:mo></mml:mover>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="sans-serif">sk</mml:mi>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mo>:</mml:mo>
<mml:mi mathvariant="italic">λ</mml:mi>
<mml:mo fence="true" stretchy="false">]</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mtext mathvariant="sans-serif-italic">sid</mml:mtext>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="sans-serif">sk</mml:mi>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mi mathvariant="italic">λ</mml:mi>
<mml:mo>:</mml:mo>
<mml:mo fence="true" stretchy="false">]</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ H\big(\bar{\mathsf{pid}},\mathsf{sk}[:\lambda ],\textit{\textsf{sid}},\mathsf{sk}[\lambda :]\big).\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p><italic>Moreover, if</italic> <inline-formula id="j_infor595_ineq_128"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">GAKE</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{GAKE}$]]></tex-math></alternatives></inline-formula> <italic>is long-term secure, then</italic> <inline-formula id="j_infor595_ineq_129"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">GAKE</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathsf{GAKE}^{\prime }}$]]></tex-math></alternatives></inline-formula> <italic>is long-term secure.</italic></p></statement><statement id="j_infor595_stat_008"><label>Proof.</label>
<p>The <italic>correctness</italic> of <inline-formula id="j_infor595_ineq_130"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">GAKE</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathsf{GAKE}^{\prime }}$]]></tex-math></alternatives></inline-formula> follows immediately from the correctness of <inline-formula id="j_infor595_ineq_131"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">GAKE</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{GAKE}$]]></tex-math></alternatives></inline-formula>. To see that <inline-formula id="j_infor595_ineq_132"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">GAKE</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathsf{GAKE}^{\prime }}$]]></tex-math></alternatives></inline-formula> is <italic>secure</italic>, note that <inline-formula id="j_infor595_ineq_133"><alternatives><mml:math>
<mml:mi mathvariant="italic">H</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="sans-serif">pid</mml:mi>
</mml:mrow>
<mml:mo stretchy="true">¯</mml:mo></mml:mover>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="sans-serif">sk</mml:mi>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mo>:</mml:mo>
<mml:mi mathvariant="italic">λ</mml:mi>
<mml:mo fence="true" stretchy="false">]</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mtext mathvariant="sans-serif">sid</mml:mtext>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="sans-serif">sk</mml:mi>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mi mathvariant="italic">λ</mml:mi>
<mml:mo>:</mml:mo>
<mml:mo fence="true" stretchy="false">]</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$H(\bar{\mathsf{pid}},\mathsf{sk}[:\lambda ],\textsf{sid},\mathsf{sk}[\lambda :])$]]></tex-math></alternatives></inline-formula> implements a statistically hiding commitment on <inline-formula id="j_infor595_ineq_134"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="sans-serif">pid</mml:mi>
</mml:mrow>
<mml:mo stretchy="true">¯</mml:mo></mml:mover>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="sans-serif">sk</mml:mi>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mo>:</mml:mo>
<mml:mi mathvariant="italic">λ</mml:mi>
<mml:mo fence="true" stretchy="false">]</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="sans-serif">sk</mml:mi>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mi mathvariant="italic">λ</mml:mi>
<mml:mo>:</mml:mo>
<mml:mo fence="true" stretchy="false">]</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mtext mathvariant="sans-serif">sid</mml:mtext>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(\bar{\mathsf{pid}},\mathsf{sk}[:\lambda ],\mathsf{sk}[\lambda :],\textsf{sid})$]]></tex-math></alternatives></inline-formula> in the quantum oracle model— this follows from (Unruh, <xref ref-type="bibr" rid="j_infor595_ref_020">2022</xref>, Lemma 17), which attributes the result to (Pass, <xref ref-type="bibr" rid="j_infor595_ref_019">2004</xref>, Lemma 9). So any successful adversary on <inline-formula id="j_infor595_ineq_135"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">GAKE</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathsf{GAKE}^{\prime }}$]]></tex-math></alternatives></inline-formula> could immediately be turned into a successful adversary on <inline-formula id="j_infor595_ineq_136"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">GAKE</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{GAKE}$]]></tex-math></alternatives></inline-formula>. And as the hiding property of this commitment scheme does not rely on a computational assumption, <italic>long-term security</italic> is preserved.</p>
<p>Finally, <italic>integrity</italic> follows from a result by Zhandry (Zhandry, <xref ref-type="bibr" rid="j_infor595_ref_024">2015</xref>, Theorem 3.1) with an argument by Unruh (Unruh, <xref ref-type="bibr" rid="j_infor595_ref_020">2022</xref>, Footnote 13), establishing the quantum random oracle <italic>H</italic> as collison-resistant.  □</p></statement></p>
</sec>
</sec>
<sec id="j_infor595_s_005">
<label>4</label>
<title>The Proposed Construction – A Compiler</title>
<p>In this section, we give a detailed description of our proposal. We start by sketching the main idea behind our design and then give the details of the protocol steps. We then state and prove the main result (Theorem <xref rid="j_infor595_stat_011">1</xref>) stating the security of our construction.</p>
<p>Let <inline-formula id="j_infor595_ineq_137"><alternatives><mml:math>
<mml:mi mathvariant="script">P</mml:mi>
<mml:mo stretchy="false">⊆</mml:mo><mml:mover accent="false">
<mml:mrow>
<mml:mi mathvariant="script">P</mml:mi>
</mml:mrow>
<mml:mo accent="true">‾</mml:mo></mml:mover></mml:math><tex-math><![CDATA[$\mathcal{P}\subseteq \overline{\mathcal{P}}$]]></tex-math></alternatives></inline-formula> be the set of parties that seek to establish a common key in a concrete execution, and let 
<disp-formula id="j_infor595_eq_005">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="script">P</mml:mi>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>⊎</mml:mo>
<mml:mo stretchy="false">⋯</mml:mo>
<mml:mo>⊎</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">P</mml:mi>
</mml:mrow>
<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:msup>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \mathcal{P}={\mathcal{P}^{(0)}}\uplus \cdots \uplus {\mathcal{P}^{(n-1)}}\]]]></tex-math></alternatives>
</disp-formula> 
be a partition of <inline-formula id="j_infor595_ineq_138"><alternatives><mml:math>
<mml:mi mathvariant="script">P</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{P}$]]></tex-math></alternatives></inline-formula> into non-empty subsets or “clusters”—an important special case is the partition where each <inline-formula id="j_infor595_ineq_139"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{P}^{(i)}}$]]></tex-math></alternatives></inline-formula> contains only a single party. For each <inline-formula id="j_infor595_ineq_140"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{P}^{(i)}}$]]></tex-math></alternatives></inline-formula>, we fix a <italic>cluster leader</italic> <inline-formula id="j_infor595_ineq_141"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\hat{P}^{(i)}}\in {\mathcal{P}^{(i)}}$]]></tex-math></alternatives></inline-formula>, and assume that 
<list>
<list-item id="j_infor595_li_016">
<label>•</label>
<p>for each <inline-formula id="j_infor595_ineq_142"><alternatives><mml:math>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</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>−</mml:mo>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[$i=0,\dots ,n-1$]]></tex-math></alternatives></inline-formula>, a secure <inline-formula id="j_infor595_ineq_143"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">GAKE</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathsf{GAKE}^{(i)}}$]]></tex-math></alternatives></inline-formula> solution among the parties from cluster <italic>i</italic> is available, which we denote by <inline-formula id="j_infor595_ineq_144"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">GAKE</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathsf{GAKE}^{(i)}}$]]></tex-math></alternatives></inline-formula>. We write <inline-formula id="j_infor595_ineq_145"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold">c</mml:mi>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">sk</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold">c</mml:mi>
<mml:mi mathvariant="sans-serif">pid</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold">cv</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold">cu</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="bold">c</mml:mi>
<mml:msubsup>
<mml:mrow>
<mml:mtext mathvariant="sans-serif">sid</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(\mathbf{c}{\mathsf{sk}_{P}^{(i)}},{\mathbf{c}\mathsf{pid}_{P}^{(i)}},{\mathbf{cv}_{P}^{(i)}},{\mathbf{cu}_{P}^{(i)}},\mathbf{c}{\textsf{sid}_{P}^{(i)}})$]]></tex-math></alternatives></inline-formula> for the output vector of a party <italic>P</italic> of an execution of <inline-formula id="j_infor595_ineq_146"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">GAKE</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathsf{GAKE}^{(i)}}$]]></tex-math></alternatives></inline-formula>;</p>
</list-item>
<list-item id="j_infor595_li_017">
<label>•</label>
<p>for <inline-formula id="j_infor595_ineq_147"><alternatives><mml:math>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[$i=0,\dots n-1$]]></tex-math></alternatives></inline-formula>, a secure 2-<inline-formula id="j_infor595_ineq_148"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">AKE</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathsf{AKE}^{(i)}}$]]></tex-math></alternatives></inline-formula> protocol can be executed among the leaders <inline-formula id="j_infor595_ineq_149"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\hat{P}^{(i)}}\in {\mathcal{P}^{(i)}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor595_ineq_150"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mspace width="0.2em"/>
<mml:mo>mod</mml:mo>
<mml:mspace width="0.2em"/>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mspace width="0.2em"/>
<mml:mo>mod</mml:mo>
<mml:mspace width="0.2em"/>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\hat{P}^{((i+1)\hspace{0.2em}\mathrm{mod} \hspace{0.2em}n)}}\in {\mathcal{P}^{((i+1)\hspace{0.2em}\mathrm{mod} \hspace{0.2em}n)}}$]]></tex-math></alternatives></inline-formula>. We write <inline-formula id="j_infor595_ineq_151"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">sk</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="sans-serif">pid</mml:mi>
</mml:mrow>
<mml:mo stretchy="true">¯</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold">v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">sid</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({\mathsf{sk}_{\hat{P}}^{(i)}},{\bar{\mathsf{pid}}_{\hat{P}}^{(i)}},{\mathbf{v}_{\hat{P}}^{(i)}},{\mathbf{u}_{\hat{P}}^{(i)}},{\mathsf{sid}_{\hat{P}}^{(i)}})$]]></tex-math></alternatives></inline-formula> for the corresponding output vector of a cluster leader <inline-formula id="j_infor595_ineq_152"><alternatives><mml:math><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover></mml:math><tex-math><![CDATA[$\hat{P}$]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
</list>
</p>
<sec id="j_infor595_s_006">
<label>4.1</label>
<title>High-Level Description</title>
<fig id="j_infor595_fig_001">
<label>Fig. 1</label>
<caption>
<p>Step A in a 3-cluster configuration with two clusters of size two and one cluster of size four, invoking protocols based on post-quantum (PQ) cryptography and quantum key distribution (QKD).</p>
</caption>
<graphic xlink:href="infor595_g001.jpg"/>
</fig>
<p>We start with a high-level description of our compiler and fill in the details in Fig. <xref rid="j_infor595_fig_004">4</xref> in the next section. First, we note that for the “trivial” case when each cluster consists of a single party, this protocol follows a “standard” Burmester-Desmedt rationale, through which two-party keys established in pairs in a ring configuration are combined in order to derive a group key. The general case can be broken down into three steps:</p>
<p><italic>Step A</italic>. During a first phase, all parties within each cluster <inline-formula id="j_infor595_ineq_153"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{P}^{(i)}}$]]></tex-math></alternatives></inline-formula> execute <inline-formula id="j_infor595_ineq_154"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">GAKE</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathsf{GAKE}^{(i)}}$]]></tex-math></alternatives></inline-formula> to set up a shared “cluster key” <inline-formula id="j_infor595_ineq_155"><alternatives><mml:math>
<mml:mi mathvariant="bold">c</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">sk</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[$\mathbf{c}{\mathsf{sk}^{(i)}}$]]></tex-math></alternatives></inline-formula> among all parties in that cluster. This value will play the role of an <italic>ephemeral masking value</italic> for this execution. Also, possibly in parallel to the <inline-formula id="j_infor595_ineq_156"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">GAKE</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathsf{GAKE}^{(i)}}$]]></tex-math></alternatives></inline-formula> execution, each leader <inline-formula id="j_infor595_ineq_157"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\hat{P}^{(i)}}$]]></tex-math></alternatives></inline-formula> executes two sessions in parallel of the two-party key establishment, 2-<inline-formula id="j_infor595_ineq_158"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">AKE</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathsf{AKE}^{(i)}}$]]></tex-math></alternatives></inline-formula> and 2-<inline-formula id="j_infor595_ineq_159"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">AKE</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mspace width="0.2em"/>
<mml:mo>mod</mml:mo>
<mml:mspace width="0.2em"/>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathsf{AKE}^{((i-1)\hspace{0.2em}\mathrm{mod} \hspace{0.2em}n)}}$]]></tex-math></alternatives></inline-formula>, in order to establish two keys, shared with its “counterclockwise neighbour” <inline-formula id="j_infor595_ineq_160"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mspace width="0.2em"/>
<mml:mo>mod</mml:mo>
<mml:mspace width="0.2em"/>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\hat{P}^{((i+1)\hspace{0.2em}\mathrm{mod} \hspace{0.2em}n)}}$]]></tex-math></alternatives></inline-formula> and “clockwise neighbour” <inline-formula id="j_infor595_ineq_161"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mspace width="0.2em"/>
<mml:mo>mod</mml:mo>
<mml:mspace width="0.2em"/>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\hat{P}^{((i-1)\hspace{0.2em}\mathrm{mod} \hspace{0.2em}n)}}$]]></tex-math></alternatives></inline-formula> respectively. We denote these two keys by <inline-formula id="j_infor595_ineq_162"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">sk</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">↺</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\mathsf{sk}_{{\hat{P}^{(i)}}}^{\circlearrowleft }}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor595_ineq_163"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">sk</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">↻</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\mathsf{sk}_{{\hat{P}^{(i)}}}^{\circlearrowright }}$]]></tex-math></alternatives></inline-formula>, respectively. From this point on, cluster leaders will act on behalf of all participants in the cluster and will be the only ones to send/receive messages to/from outside the cluster. Figure <xref rid="j_infor595_fig_001">1</xref> illustrates an example setup for Step A.</p>
<p><italic>Step B</italic>. Now, each cluster leader <inline-formula id="j_infor595_ineq_164"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\hat{P}^{(i)}}$]]></tex-math></alternatives></inline-formula> commits (using a public random oracle <italic>H</italic>) to the exclusive-or <inline-formula id="j_infor595_ineq_165"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">X</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${X_{i}}$]]></tex-math></alternatives></inline-formula> of the two keys shared with neighbouring leaders. This commitment is contained in a first message (Step B1) <inline-formula id="j_infor595_ineq_166"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${M_{i}^{B}}$]]></tex-math></alternatives></inline-formula>, while <inline-formula id="j_infor595_ineq_167"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\hat{P}^{(i)}}$]]></tex-math></alternatives></inline-formula> sends in Step B2 the actual value <inline-formula id="j_infor595_ineq_168"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">X</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${X_{i}}$]]></tex-math></alternatives></inline-formula>, together with the randomness needed to open the commitment (see Fig. <xref rid="j_infor595_fig_002">2</xref>).</p>
<fig id="j_infor595_fig_002">
<label>Fig. 2</label>
<caption>
<p>Steps B and C1 (only cluster leaders act) in our example 3-cluster configuration.</p>
</caption>
<graphic xlink:href="infor595_g002.jpg"/>
</fig>
<p><italic>Step C</italic>. In a final phase, each cluster leader recovers all two-party keys exchanged throughout the ring of leaders (namely, <inline-formula id="j_infor595_ineq_169"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">sk</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">↻</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">sk</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">↻</mml:mo>
</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="sans-serif">sk</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
</mml:mrow>
<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:msup>
</mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">↻</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\mathsf{sk}_{{\hat{P}^{(0)}}}^{\circlearrowright }},{\mathsf{sk}_{{\hat{P}^{(1)}}}^{\circlearrowright }},\dots ,{\mathsf{sk}_{{\hat{P}^{(n-1)}}}^{\circlearrowright }}$]]></tex-math></alternatives></inline-formula>) and derives a group key and a corresponding session identifier from them (see Fig. <xref rid="j_infor595_fig_003">3</xref>). Again, the public random oracle <italic>H</italic> is leveraged here. Finally, each cluster leader broadcasts within its cluster the <inline-formula id="j_infor595_ineq_170"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">sk</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{sk}$]]></tex-math></alternatives></inline-formula>, masked with the lower bits from the key <inline-formula id="j_infor595_ineq_171"><alternatives><mml:math>
<mml:mtext mathvariant="bold">c</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">sk</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[$\textbf{c}{\mathsf{sk}^{(i)}}$]]></tex-math></alternatives></inline-formula> and authenticated with the upper bits of this cluster key, using an unconditionally secure message authentication code (MAC) .</p>
<fig id="j_infor595_fig_003">
<label>Fig. 3</label>
<caption>
<p>Step C2: key transport inside cluster <inline-formula id="j_infor595_ineq_172"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{P}^{(1)}}$]]></tex-math></alternatives></inline-formula> (for <inline-formula id="j_infor595_ineq_173"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{P}^{(0)}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor595_ineq_174"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{P}^{(2)}}$]]></tex-math></alternatives></inline-formula> this step is analogous).</p>
</caption>
<graphic xlink:href="infor595_g003.jpg"/>
</fig>
<statement id="j_infor595_stat_009"><label>Remark 2.</label>
<p>One could consider alternative approaches for the final key transport, e.g. using a computationally secure AEAD primitive (authenticated encryption with associated data). The protocol security would then, of course, be conditioned on the security of the specific AEAD primitive.</p></statement><statement id="j_infor595_stat_010"><label>Remark 3.</label>
<p>The primary communication bottleneck in our construction is the number of involved clusters, as this significantly influences both the number of exchanged messages and the local computations performed by cluster leaders. These exchanges are vulnerable to failures and depend on synchronization and network reliability, which may not always be guaranteed in certain application scenarios. Furthermore, leaders must maintain awareness of their <italic>index</italic> or position to correctly identify their clockwise and counterclockwise neighbuors. These constraints present major challenges when considering dynamic groups of participants, making our construction unsuitable for such scenarios.</p></statement>
</sec>
<sec id="j_infor595_s_007">
<label>4.2</label>
<title>Detailing the Protocol Steps</title>
<p>Let us look more closely at the individual steps of the proposed compiler. The individual steps are shown in Fig. <xref rid="j_infor595_fig_004">4</xref>, and we are left with specifying the vectors <bold>v</bold> and <bold>u</bold> output at the end of Step C2.</p>
<fig id="j_infor595_fig_004">
<label>Fig. 4</label>
<caption>
<p>The proposed <inline-formula id="j_infor595_ineq_175"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">GAKE</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{GAKE}$]]></tex-math></alternatives></inline-formula>.</p>
</caption>
<graphic xlink:href="infor595_g004.jpg"/>
</fig>
<p>For the pertinent session of each protocol participant <inline-formula id="j_infor595_ineq_176"><alternatives><mml:math>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[$P\in {\mathcal{P}^{(i)}}$]]></tex-math></alternatives></inline-formula> (<inline-formula id="j_infor595_ineq_177"><alternatives><mml:math>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</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>−</mml:mo>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[$i=0,\dots ,n-1$]]></tex-math></alternatives></inline-formula>), we let 
<disp-formula id="j_infor595_eq_006">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="right left" columnspacing="0pt">
<mml:mtr>
<mml:mtd class="align-odd"/>
<mml:mtd class="align-even">
<mml:mi mathvariant="bold">u</mml:mi>
<mml:mo>=</mml:mo>
<mml:mfenced separators="" open="{" close="">
<mml:mrow>
<mml:mtable columnspacing="4.0pt" equalrows="false" columnlines="none" equalcolumns="false" columnalign="left left">
<mml:mtr>
<mml:mtd class="array">
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold">cu</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mspace width="0.2em"/>
<mml:mo>mod</mml:mo>
<mml:mspace width="0.2em"/>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<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:mtext mathvariant="bold">c</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">sk</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mi mathvariant="normal">length</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="sans-serif">sk</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>:</mml:mo>
<mml:mo fence="true" stretchy="false">]</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mtext>if</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mspace width="2.5pt"/>
<mml:mtext>is the cluster leader of</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold">cu</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<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:mtext mathvariant="bold">c</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">sk</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mi mathvariant="normal">length</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="sans-serif">sk</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>:</mml:mo>
<mml:mo fence="true" stretchy="false">]</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mtext>else</mml:mtext>
<mml:mo>;</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd"/>
<mml:mtd class="align-even">
<mml:mi mathvariant="bold">v</mml:mi>
<mml:mo>=</mml:mo>
<mml:mfenced separators="" open="{" close="">
<mml:mrow>
<mml:mtable columnspacing="4.0pt" equalrows="false" columnlines="none" equalcolumns="false" columnalign="left left">
<mml:mtr>
<mml:mtd class="array">
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold">cv</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold">v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mspace width="0.2em"/>
<mml:mo>mod</mml:mo>
<mml:mspace width="0.2em"/>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold">v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">r</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:mo mathvariant="normal">,</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">X</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:mo mathvariant="normal">,</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">H</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn mathvariant="monospace">0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">X</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">r</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:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</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>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="1em"/>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mspace width="1em"/>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<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 mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<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:mtext mathvariant="bold">c</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">sk</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mo>:</mml:mo>
<mml:mi mathvariant="normal">length</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="sans-serif">sk</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo fence="true" stretchy="false">]</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mtext>if</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">cv</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<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 mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<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:mtext mathvariant="bold">c</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">sk</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mo>:</mml:mo>
<mml:mi mathvariant="normal">length</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="sans-serif">sk</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo fence="true" stretchy="false">]</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mtext>else</mml:mtext>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{aligned}{}& \mathbf{u}=\left\{\begin{array}{l@{\hskip4.0pt}l}{\mathbf{cu}_{P}^{(i)}}||{\mathbf{u}_{P}^{((i-1)\hspace{0.2em}\mathrm{mod} \hspace{0.2em}n)}}||{\mathbf{u}_{P}^{(i)}}||((\ell (\textbf{c}{\mathsf{sk}^{(i)}}[\mathrm{length}(\mathsf{sk}):]))),\hspace{1em}& \text{if}\hspace{2.5pt}P\hspace{2.5pt}\text{is the cluster leader of}\hspace{2.5pt}{\mathcal{P}^{(i)}},\\ {} {\mathbf{cu}_{P}^{(i)}}||((\ell (\textbf{c}{\mathsf{sk}^{(i)}}[\mathrm{length}(\mathsf{sk}):]))),\hspace{1em}& \text{else};\end{array}\right.\\ {} & \mathbf{v}=\left\{\begin{array}{l@{\hskip4.0pt}l}{\mathbf{cv}_{P}^{(i)}}||{\mathbf{v}_{P}^{((i-1)\hspace{0.2em}\mathrm{mod} \hspace{0.2em}n)}}||{\mathbf{v}_{P}^{(i)}}||{(({r_{j}}),({X_{j}}),(H(\mathtt{0},{X_{j}},{r_{j}})))_{j=0,\dots ,n-1}}\hspace{1em}\\ {} \hspace{1em}||(({c^{(i)}}),({t^{(i)}}),\dots \dots ,(\ell (\textbf{c}{\mathsf{sk}^{(i)}}[:\mathrm{length}(\mathsf{sk})]))),\hspace{1em}& \text{if}\hspace{2.5pt}P={\hat{P}^{(i)}},\\ {} {\mathbf{cv}^{(i)}}||(({c^{(i)}}),({t^{(i)}}),(\ell (\textbf{c}{\mathsf{sk}^{(i)}}[:\mathrm{length}(\mathsf{sk})]))),\hspace{1em}& \text{else}.\end{array}\right.\end{aligned}\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>Following the notation in Mosca <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor595_ref_016">2013</xref>), here <inline-formula id="j_infor595_ineq_178"><alternatives><mml:math>
<mml:mi>ℓ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mo>·</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\ell (\cdot )$]]></tex-math></alternatives></inline-formula> is a unique public label for a private value (chosen independent of any private value, e.g. with a counter).</p>
<p><italic>Correctness</italic>. Correctness of the protocol in Fig. <xref rid="j_infor595_fig_004">4</xref> follows from the correctness of <inline-formula id="j_infor595_ineq_179"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">GAKE</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">GAKE</mml:mi>
</mml:mrow>
<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:msup></mml:math><tex-math><![CDATA[${\mathsf{GAKE}^{(0)}},\dots ,{\mathsf{GAKE}^{(n-1)}}$]]></tex-math></alternatives></inline-formula> and 2-<inline-formula id="j_infor595_ineq_180"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">AKE</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mtext>2-</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">AKE</mml:mi>
</mml:mrow>
<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:msup></mml:math><tex-math><![CDATA[${\mathsf{AKE}^{(0)}},\dots ,\text{2-}{\mathsf{AKE}^{(n-1)}}$]]></tex-math></alternatives></inline-formula>. Before going into the security analysis, it is worth noting that the GAKE in Fig. <xref rid="j_infor595_fig_004">4</xref> does in general <italic>not</italic> ensure <italic>strong entity authentication</italic>—which is not a standard security goal: by design, only the cluster leads have to send messages in Steps B and C. This is attractive from the pespective of communication complexity, but as a consequence it is not clear that every party in <inline-formula id="j_infor595_ineq_181"><alternatives><mml:math>
<mml:mi mathvariant="script">P</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{P}$]]></tex-math></alternatives></inline-formula> does indeed have possession of the established session key <inline-formula id="j_infor595_ineq_182"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">sk</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{sk}$]]></tex-math></alternatives></inline-formula>.</p>
</sec>
<sec id="j_infor595_s_008">
<label>4.3</label>
<title>Security Analysis</title>
<p>The goal of this section is to establish the following result, which we prove by adapting the security analysis of a Kyber-based <inline-formula id="j_infor595_ineq_183"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">GAKE</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{GAKE}$]]></tex-math></alternatives></inline-formula> by Escribano Pablos <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor595_ref_011">2020</xref>), which builds on Abdalla <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor595_ref_001">2007</xref>). Analogously as Escribano Pablos <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor595_ref_011">2020</xref>), we impose integrity of the underlying 2-<inline-formula id="j_infor595_ineq_184"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">AKE</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{AKE}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor595_ineq_185"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">GAKE</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{GAKE}$]]></tex-math></alternatives></inline-formula> protocols to defend against an attack as considered by Nam <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor595_ref_018">2011</xref>). <statement id="j_infor595_stat_011"><label>Theorem 1.</label>
<p><italic>Let λ be the security parameter and</italic> <inline-formula id="j_infor595_ineq_186"><alternatives><mml:math>
<mml:mi mathvariant="normal">MAC</mml:mi></mml:math><tex-math><![CDATA[$\mathrm{MAC}$]]></tex-math></alternatives></inline-formula> <italic>an information-theoretically secure message authentication code with secret-key length</italic> <inline-formula id="j_infor595_ineq_187"><alternatives><mml:math>
<mml:mi mathvariant="italic">m</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">λ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$m(\lambda )$]]></tex-math></alternatives></inline-formula> <italic>for some polynomial</italic> <inline-formula id="j_infor595_ineq_188"><alternatives><mml:math>
<mml:mi mathvariant="italic">m</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">λ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo stretchy="false">∈</mml:mo>
<mml:mi mathvariant="normal">Ω</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">λ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$m(\lambda )\in \Omega (\lambda )$]]></tex-math></alternatives></inline-formula><italic>. Assume further that</italic> <inline-formula id="j_infor595_ineq_189"><alternatives><mml:math>
<mml:mn>2</mml:mn>
<mml:mtext mathvariant="italic">-</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">AKE</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>2</mml:mn>
<mml:mtext mathvariant="italic">-</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">AKE</mml:mi>
</mml:mrow>
<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:msup></mml:math><tex-math><![CDATA[$2\textit{-}{\mathsf{AKE}^{(0)}},\dots ,2\textit{-}{\mathsf{AKE}^{(n-1)}}$]]></tex-math></alternatives></inline-formula> <italic>and</italic> <inline-formula id="j_infor595_ineq_190"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">GAKE</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">GAKE</mml:mi>
</mml:mrow>
<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:msup></mml:math><tex-math><![CDATA[${\mathsf{GAKE}^{(0)}},\dots ,{\mathsf{GAKE}^{(n-1)}}$]]></tex-math></alternatives></inline-formula> <italic>are secure key exchange protocols satisfying integrity, and each</italic> <inline-formula id="j_infor595_ineq_191"><alternatives><mml:math>
<mml:mn>2</mml:mn>
<mml:mtext mathvariant="italic">-</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">AKE</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[$2\textit{-}{\mathsf{AKE}^{(i)}}$]]></tex-math></alternatives></inline-formula> <inline-formula id="j_infor595_ineq_192"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</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>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(i=0,\dots ,n-1)$]]></tex-math></alternatives></inline-formula> <italic>outputs a session key of length</italic> <inline-formula id="j_infor595_ineq_193"><alternatives><mml:math>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">λ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$p(\lambda )$]]></tex-math></alternatives></inline-formula> <italic>for some polynomial</italic> <inline-formula id="j_infor595_ineq_194"><alternatives><mml:math>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">λ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>⩾</mml:mo>
<mml:mn>8</mml:mn>
<mml:mi mathvariant="italic">λ</mml:mi></mml:math><tex-math><![CDATA[$p(\lambda )\geqslant 8\lambda $]]></tex-math></alternatives></inline-formula><italic>, while the output key of each</italic> <inline-formula id="j_infor595_ineq_195"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">GAKE</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathsf{GAKE}^{(i)}}$]]></tex-math></alternatives></inline-formula><italic>, for</italic> <inline-formula id="j_infor595_ineq_196"><alternatives><mml:math>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</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>−</mml:mo>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[$i=0,\dots ,n-1$]]></tex-math></alternatives></inline-formula><italic>, has bitlength</italic> <inline-formula id="j_infor595_ineq_197"><alternatives><mml:math>
<mml:mi mathvariant="italic">m</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">λ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">λ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$m(\lambda )+p(\lambda )$]]></tex-math></alternatives></inline-formula><italic>. Then, in the quantum random oracle model, the protocol in Fig.</italic> <xref rid="j_infor595_fig_004">4</xref> <italic>is a secure key exchange protocol fulfilling integrity.</italic></p>
<p><italic>Moreover, if all of</italic> <inline-formula id="j_infor595_ineq_198"><alternatives><mml:math>
<mml:mn>2</mml:mn>
<mml:mtext mathvariant="italic">-</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">AKE</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>2</mml:mn>
<mml:mtext mathvariant="italic">-</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">AKE</mml:mi>
</mml:mrow>
<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:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">GAKE</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">GAKE</mml:mi>
</mml:mrow>
<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:msup></mml:math><tex-math><![CDATA[$2\textit{-}{\mathsf{AKE}^{(0)}},\dots ,2\textit{-}{\mathsf{AKE}^{(n-1)}},{\mathsf{GAKE}^{(0)}},\dots ,{\mathsf{GAKE}^{(n-1)}}$]]></tex-math></alternatives></inline-formula> <italic>are long-term secure, then the protocol in Fig.</italic> <xref rid="j_infor595_fig_004">4</xref> <italic>is long-term secure, too.</italic></p></statement><statement id="j_infor595_stat_012"><label>Proof.</label>
<p>Before establishing security, we want to establish integrity of the proposed protocol.</p>
<p><italic>Integrity</italic>. From (Zhandry, <xref ref-type="bibr" rid="j_infor595_ref_024">2015</xref>, Theorem 3.1) and (Unruh, <xref ref-type="bibr" rid="j_infor595_ref_020">2022</xref>, Footnote 13) we obtain that the quantum random oracle <italic>H</italic> is collison-resistant. As a result, if two output vectors have coinciding <inline-formula id="j_infor595_ineq_199"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">sid</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{sid}$]]></tex-math></alternatives></inline-formula>s, then the corresponding inputs to <italic>H</italic> must, with overwhelming probability, coincide, namely, they both share the same <inline-formula id="j_infor595_ineq_200"><alternatives><mml:math><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="sans-serif">pid</mml:mi>
</mml:mrow>
<mml:mo stretchy="true">¯</mml:mo></mml:mover></mml:math><tex-math><![CDATA[$\bar{\mathsf{pid}}$]]></tex-math></alternatives></inline-formula> and the same <inline-formula id="j_infor595_ineq_201"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">sk</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">↻</mml:mo>
</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="sans-serif">sk</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
</mml:mrow>
<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:msup>
</mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">↻</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\mathsf{sk}_{{\hat{P}^{(0)}}}^{\circlearrowright }},\dots ,{\mathsf{sk}_{{\hat{P}^{(n-1)}}}^{\circlearrowright }}$]]></tex-math></alternatives></inline-formula>. By construction, with overwhelming probability, these two sessions must have identical values for the secret key <inline-formula id="j_infor595_ineq_202"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">sk</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">H</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn mathvariant="monospace">10</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="sans-serif">pid</mml:mi>
</mml:mrow>
<mml:mo stretchy="true">¯</mml:mo></mml:mover>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">sk</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">↻</mml:mo>
</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="sans-serif">sk</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
</mml:mrow>
<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>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">↻</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\mathsf{sk}=H(\mathtt{10},\bar{\mathsf{pid}},{\mathsf{sk}_{{\hat{P}^{(0)}}}^{\circlearrowright }},\dots ,{\mathsf{sk}_{{\hat{P}^{(n-2)}}}^{\circlearrowright }})$]]></tex-math></alternatives></inline-formula>.</p>
<p><italic>Security</italic>. To establish security of the proposed protocol, we follow to a large extent the game-based reasoning in the proofs of (Abdalla <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor595_ref_001">2007</xref>, Theorem 1) and (Escribano Pablos <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor595_ref_011">2020</xref>, Theorem 3), making some necessary adaptations. We assume the adversary is interacting with a simulator, which is simulating all oracles and sessions for the adversary.</p>
<p>We proceed in a sequence of games, starting with the real attack against the key secrecy of the group key exchange protocol and ending in a game in which the adversary’s advantage is 0. From game to game the simulator’s behaviour is modified, in a way that allows us to bound the difference in the adversary’s advantage between any two consecutive games. We omit the security parameter in the discussion, namely, writing <inline-formula id="j_infor595_ineq_203"><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:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">λ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${\mathsf{Adv}_{\mathcal{A}}}(\lambda )$]]></tex-math></alternatives></inline-formula> from Definition <xref rid="j_infor595_stat_004">3</xref> simply as <inline-formula id="j_infor595_ineq_204"><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>. Furthermore, following standard notation, we denote by <inline-formula id="j_infor595_ineq_205"><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: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" 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 the adversary <inline-formula id="j_infor595_ineq_206"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> in Game <italic>i</italic>.</p>
<p><bold>Game</bold> <inline-formula id="j_infor595_ineq_207"><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_infor595_ineq_208"><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: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: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: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_infor595_ineq_209"><alternatives><mml:math>
<mml:mn mathvariant="bold">1</mml:mn></mml:math><tex-math><![CDATA[$\mathbf{1}$]]></tex-math></alternatives></inline-formula>. In this game, for <inline-formula id="j_infor595_ineq_210"><alternatives><mml:math>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</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>−</mml:mo>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[$i=0,\dots ,n-1$]]></tex-math></alternatives></inline-formula>, we modify the simulation of the <inline-formula id="j_infor595_ineq_211"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">SendC</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{SendC}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor595_ineq_212"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">SendQ</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{SendQ}$]]></tex-math></alternatives></inline-formula> oracles so that, whenever a session <italic>ψ</italic> is still considered fresh after Step A1, the corresponding keys <inline-formula id="j_infor595_ineq_213"><alternatives><mml:math>
<mml:mtext mathvariant="bold">c</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">sk</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[$\textbf{c}{\mathsf{sk}^{(i)}}$]]></tex-math></alternatives></inline-formula> shared by the involved users are replaced with random bitstrings of the appropriate size.</p>
<p>It is easy to see that the distance between this game and the previous one is bounded by the probability that the adversary breaks the security of any of the underlying <inline-formula id="j_infor595_ineq_214"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">GAKE</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathsf{GAKE}^{(i)}}$]]></tex-math></alternatives></inline-formula> protocols.</p>
<p>As a result, it holds 
<disp-formula id="j_infor595_eq_007">
<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: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: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: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: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 maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:mo>⩽</mml:mo>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mo movablelimits="false">max</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:munderover>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">Adv</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">GAKE</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msubsup>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \big|{\mathsf{Adv}_{\mathcal{A}}}({G_{1}})-{\mathsf{Adv}_{\mathcal{A}}}({G_{0}})\big|\leqslant {\underset{i=0}{\overset{n-1}{\max }}}{\mathsf{Adv}_{\mathcal{A}}^{{\mathsf{GAKE}^{(i)}}}}.\]]]></tex-math></alternatives>
</disp-formula> 
Here, <inline-formula id="j_infor595_ineq_215"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">Adv</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">GAKE</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\mathsf{Adv}_{\mathcal{A}}^{{\mathsf{GAKE}^{(i)}}}}$]]></tex-math></alternatives></inline-formula> denotes the advantage of <inline-formula id="j_infor595_ineq_216"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> against <inline-formula id="j_infor595_ineq_217"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">GAKE</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathsf{GAKE}^{(i)}}$]]></tex-math></alternatives></inline-formula>, which should be a function of the security parameter <italic>λ</italic> and the number of different involved sessions (i.e. sessions for which either <inline-formula id="j_infor595_ineq_218"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">SendC</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{SendC}$]]></tex-math></alternatives></inline-formula> or <inline-formula id="j_infor595_ineq_219"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">SendQ</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{SendQ}$]]></tex-math></alternatives></inline-formula> have been queried by <inline-formula id="j_infor595_ineq_220"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula>).</p>
<p><bold>Game</bold> <inline-formula id="j_infor595_ineq_221"><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, for <inline-formula id="j_infor595_ineq_222"><alternatives><mml:math>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</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>−</mml:mo>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[$i=0,\dots ,n-1$]]></tex-math></alternatives></inline-formula>, we modify the simulation of the <inline-formula id="j_infor595_ineq_223"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">SendC</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{SendC}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor595_ineq_224"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">SendQ</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{SendQ}$]]></tex-math></alternatives></inline-formula> oracles so that, whenever a session <italic>ψ</italic> is still considered fresh after Step A2, the corresponding keys <inline-formula id="j_infor595_ineq_225"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">sk</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">↺</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\mathsf{sk}_{{\hat{P}^{(i)}}}^{\circlearrowleft }}$]]></tex-math></alternatives></inline-formula> shared by the cluster leaders <inline-formula id="j_infor595_ineq_226"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\hat{P}^{(i)}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor595_ineq_227"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mspace width="0.2em"/>
<mml:mo>mod</mml:mo>
<mml:mspace width="0.2em"/>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\hat{P}^{((i+1)\hspace{0.2em}\mathrm{mod} \hspace{0.2em}n)}}$]]></tex-math></alternatives></inline-formula> for <inline-formula id="j_infor595_ineq_228"><alternatives><mml:math>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</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>−</mml:mo>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[$i=0,\dots ,n-1$]]></tex-math></alternatives></inline-formula> are replaced with <italic>n</italic> elements selected uniformly at random from the intended key space.</p>
<p>It is easy to see that the distance between this game and the previous one is bounded by the probability that the adversary breaks the security of any of the underlying 2-<inline-formula id="j_infor595_ineq_229"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">AKE</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathsf{AKE}^{(i)}}$]]></tex-math></alternatives></inline-formula> protocols.</p>
<p>As a result, it holds 
<disp-formula id="j_infor595_eq_008">
<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: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: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: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: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:mn>2</mml:mn>
<mml:mo>·</mml:mo>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mo movablelimits="false">max</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:munderover>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">Adv</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>2-</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">AKE</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msubsup>
<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 2\cdot {\underset{i=0}{\overset{n-1}{\max }}}{\mathsf{Adv}_{\mathcal{A}}^{\text{2-}{\mathsf{AKE}^{(i)}}}}.\]]]></tex-math></alternatives>
</disp-formula> 
Here, <inline-formula id="j_infor595_ineq_230"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">Adv</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>2-</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">AKE</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\mathsf{Adv}_{\mathcal{A}}^{\text{2-}{\mathsf{AKE}^{(i)}}}}$]]></tex-math></alternatives></inline-formula> denotes the advantage of <inline-formula id="j_infor595_ineq_231"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> against a concrete session of 2-<inline-formula id="j_infor595_ineq_232"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">AKE</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathsf{AKE}^{(i)}}$]]></tex-math></alternatives></inline-formula> (note that two sessions, i.e. two test queries, each corresponding to one of the involved leaders, are to be linked to each actual execution, thus the factor 2 in the bound above). Again, this advantage is a function of the security parameter <italic>λ</italic> and the number of different queries to the involved sessions.</p>
<p><bold>Game</bold> <inline-formula id="j_infor595_ineq_233"><alternatives><mml:math>
<mml:mn mathvariant="bold">3</mml:mn></mml:math><tex-math><![CDATA[$\mathbf{3}$]]></tex-math></alternatives></inline-formula>. In this game, we change the simulation of the <inline-formula id="j_infor595_ineq_234"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">SendC</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{SendC}$]]></tex-math></alternatives></inline-formula> oracle so that a <italic>fresh</italic> instance <italic>ψ</italic> does not accept in Step C1 whenever for some <italic>i</italic> a message <inline-formula id="j_infor595_ineq_235"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${M_{i}^{B2}}$]]></tex-math></alternatives></inline-formula> was not faithfully simulated (as would have been generated in that same session by the intended cluster leader).</p>
<p>Note that the adversary will only notice the difference if both the message <inline-formula id="j_infor595_ineq_236"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${M_{i}^{B2}}$]]></tex-math></alternatives></inline-formula> is being fabricated or replayed from another execution in a way that it is consistent with <inline-formula id="j_infor595_ineq_237"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${M_{i}^{B1}}$]]></tex-math></alternatives></inline-formula> (i.e. the hash <inline-formula id="j_infor595_ineq_238"><alternatives><mml:math>
<mml:mi mathvariant="italic">H</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn mathvariant="monospace">0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">X</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">r</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[$H(\mathtt{0},{X_{i}},{r_{i}})$]]></tex-math></alternatives></inline-formula> is consistent with the <inline-formula id="j_infor595_ineq_239"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">X</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${X_{i}}$]]></tex-math></alternatives></inline-formula> value from <inline-formula id="j_infor595_ineq_240"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${M_{i}^{B2}}$]]></tex-math></alternatives></inline-formula>) and, moreover, the bitstring <inline-formula id="j_infor595_ineq_241"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">X</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>⊕</mml:mo>
<mml:mo stretchy="false">⋯</mml:mo>
<mml:mo>⊕</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">X</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${X_{0}}\oplus \cdots \oplus {X_{n-1}}$]]></tex-math></alternatives></inline-formula> is the all-zero bitstring. Given that, at this point, these <inline-formula id="j_infor595_ineq_242"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">X</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${X_{i}}$]]></tex-math></alternatives></inline-formula>-values are distributed uniformly at random and independent of previous messages, the probability that the replayed/fabricated messages involve a matching <inline-formula id="j_infor595_ineq_243"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">X</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${X_{i}}$]]></tex-math></alternatives></inline-formula> is negligible. 
<disp-formula id="j_infor595_eq_009">
<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: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:msub>
<mml:mrow>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</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 mathvariant="normal" fence="true" stretchy="false">(</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 maxsize="1.19em" minsize="1.19em" stretchy="true">|</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 mathvariant="italic">λ</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[\[ \big|{\mathsf{Adv}_{\mathcal{A}}}({G_{3}})-{\mathsf{Adv}_{\mathcal{A}}}({G_{2}})\big|\leqslant \mathrm{negl}(\lambda ).\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p><bold>Game</bold> <inline-formula id="j_infor595_ineq_244"><alternatives><mml:math>
<mml:mn mathvariant="bold">4</mml:mn></mml:math><tex-math><![CDATA[$\mathbf{4}$]]></tex-math></alternatives></inline-formula>. This game reproduces the modification also for the commitments in Step B1: The simulation of the <inline-formula id="j_infor595_ineq_245"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">SendC</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{SendC}$]]></tex-math></alternatives></inline-formula> oracle changes so that a <italic>fresh</italic> instance <italic>ψ</italic> does not accept in Step C1 whenever one value <inline-formula id="j_infor595_ineq_246"><alternatives><mml:math>
<mml:mi mathvariant="italic">H</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn mathvariant="monospace">0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">X</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">r</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[$H(\mathtt{0},{X_{j}},{r_{j}})$]]></tex-math></alternatives></inline-formula> for <inline-formula id="j_infor595_ineq_247"><alternatives><mml:math>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo stretchy="false">≠</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi></mml:math><tex-math><![CDATA[$j\ne i$]]></tex-math></alternatives></inline-formula> is not faithfully simulated. The adversary will only notice the difference if the simulator can fabricate a matching value on the range of <italic>H</italic> that is actually equal to <inline-formula id="j_infor595_ineq_248"><alternatives><mml:math>
<mml:mi mathvariant="italic">H</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn mathvariant="monospace">0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">X</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">r</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[$H(\mathtt{0},{X_{j}},{r_{j}})$]]></tex-math></alternatives></inline-formula>. Due to the preimage resistance of the (quantum) random oracle <italic>H</italic> (cf. Yamakawa and Zhandry, <xref ref-type="bibr" rid="j_infor595_ref_023">2021</xref>, Corollary 4.13), the adversary’s advantage diverges only negligibly from the previous game: 
<disp-formula id="j_infor595_eq_010">
<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: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:msub>
<mml:mrow>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</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 mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</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:mi mathvariant="normal">negl</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">λ</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[\[ \big|{\mathsf{Adv}_{\mathcal{A}}}({G_{4}})-{\mathsf{Adv}_{\mathcal{A}}}({G_{3}})\big|\leqslant \mathrm{negl}(\lambda ).\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p><bold>Game</bold> <inline-formula id="j_infor595_ineq_249"><alternatives><mml:math>
<mml:mn mathvariant="bold">5</mml:mn></mml:math><tex-math><![CDATA[$\mathbf{5}$]]></tex-math></alternatives></inline-formula>. Note that, at this point, all messages produced in Step B are faithfully generated by the simulator. Now, in the simulation of the <inline-formula id="j_infor595_ineq_250"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">SendC</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{SendC}$]]></tex-math></alternatives></inline-formula> oracle we modify how the values in the first component of <inline-formula id="j_infor595_ineq_251"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${c^{(i)}}$]]></tex-math></alternatives></inline-formula> are generated: they are simply bitstrings of the appropriate length, chosen uniformly at random. Indeed, as these values were one-time pad encryptions (with one-time keys, chosen uniformly at random) of the session key, they should again be indistinguishable from random, as a result 
<disp-formula id="j_infor595_eq_011">
<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: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:msub>
<mml:mrow>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>5</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 mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</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:mi mathvariant="normal">negl</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">λ</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[\[ \big|{\mathsf{Adv}_{\mathcal{A}}}({G_{5}})-{\mathsf{Adv}_{\mathcal{A}}}({G_{4}})\big|\leqslant \mathrm{negl}(\lambda ).\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p><bold>Game</bold> <inline-formula id="j_infor595_ineq_252"><alternatives><mml:math>
<mml:mn mathvariant="bold">6</mml:mn></mml:math><tex-math><![CDATA[$\mathbf{6}$]]></tex-math></alternatives></inline-formula>. We now modify the simulation of the <inline-formula id="j_infor595_ineq_253"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">SendC</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{SendC}$]]></tex-math></alternatives></inline-formula> oracle at the point of computing the session key and the corresponding session identifier. At this, the simulator chooses a session key <inline-formula id="j_infor595_ineq_254"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">sk</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">λ</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[$\mathsf{sk}\in {\{0,1\}^{\lambda }}$]]></tex-math></alternatives></inline-formula> uniformly at random and does the same with the <inline-formula id="j_infor595_ineq_255"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">sid</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{sid}$]]></tex-math></alternatives></inline-formula>.</p>
<p>Note that the (quantum) random oracle outputs are indistinguishable from random, so, indeed, 
<disp-formula id="j_infor595_eq_012">
<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: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:msub>
<mml:mrow>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>6</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 mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>5</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:mi mathvariant="normal">negl</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">λ</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[\[ \big|{\mathsf{Adv}_{\mathcal{A}}}({G_{6}})-{\mathsf{Adv}_{\mathcal{A}}}({G_{5}})\big|\leqslant \mathrm{negl}(\lambda ).\]]]></tex-math></alternatives>
</disp-formula> 
Moreover, as the session key is now chosen uniformly at random (independently of any other value the adversary may have access to), it holds that 
<disp-formula id="j_infor595_eq_013">
<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:msub>
<mml:mrow>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>6</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:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {\mathsf{Adv}_{\mathcal{A}}}({G_{6}})=0,\]]]></tex-math></alternatives>
</disp-formula> 
which concludes the proof.</p>
<p><italic>Long-term security</italic>. Suppose that an adversary has access to a protocol transcript and faces the challenge of distinguishing the corresponding established secret key from a random bitstring of the same length. More specifically, he has access to a public output vector 
<disp-formula id="j_infor595_eq_014">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="sans-serif">pid</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="bold">v</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="bold">u</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mtext mathvariant="sans-serif">sid</mml:mtext>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ (\mathsf{pid},\mathbf{v},\mathbf{u},\textsf{sid})\]]]></tex-math></alternatives>
</disp-formula> 
and needs to decide whether a bit string <inline-formula id="j_infor595_ineq_256"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">sk</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathsf{sk}^{\ast }}$]]></tex-math></alternatives></inline-formula> has been chosen uniformly at random (in the appropriate space) or is the actual session key established in that session. We may assume, without loss of generality, that the output vector comes from a cluster leader <inline-formula id="j_infor595_ineq_257"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\hat{P}^{(i)}}$]]></tex-math></alternatives></inline-formula>. That is 
<disp-formula id="j_infor595_eq_015">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="bold">u</mml:mi>
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">cu</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi>ℓ</mml:mi>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em">[</mml:mo>
<mml:mtext mathvariant="bold">c</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">sk</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em">]</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \mathbf{u}=\big({\mathbf{cu}^{(i)}}||{\mathbf{u}^{(i-1)}}||{\mathbf{u}^{(i)}}||\ell \big({\big[\textbf{c}{\mathsf{sk}^{(i)}}\big]_{R}}\big)\big)\]]]></tex-math></alternatives>
</disp-formula> 
and 
<disp-formula id="j_infor595_eq_016">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="bold">v</mml:mi>
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">cv</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em">{</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">X</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">H</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn mathvariant="monospace">0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">X</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">r</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:mo fence="true" maxsize="1.19em" minsize="1.19em">}</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</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>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi>ℓ</mml:mi>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em">[</mml:mo>
<mml:mtext mathvariant="bold">c</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">sk</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em">]</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \mathbf{v}=\big({\mathbf{cv}^{(i)}}||{\mathbf{v}^{(i-1)}}||{\mathbf{v}^{(i)}}||{\big\{{r_{j}}||{X_{j}}||H(\mathtt{0},{X_{j}},{r_{j}})\big\}_{j=0,\dots ,n-1}}||{c^{(i)}}||{t^{(i)}}||\ell \big({\big[\textbf{c}{\mathsf{sk}^{(i)}}\big]_{L}}\big)\big).\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>We can again follow a game-based structure where the adversary interacts with a simulator providing him with the transcript. Note that in this case, we are considering a passive attack when the adversary just gets the public output vector and cannot interact with any party involved in the actual session.</p>
<p><bold>Game</bold> <inline-formula id="j_infor595_ineq_258"><alternatives><mml:math>
<mml:mn mathvariant="bold">0</mml:mn></mml:math><tex-math><![CDATA[$\mathbf{0}$]]></tex-math></alternatives></inline-formula>. Again, we start with a game corresponding to the real attack, in which the transcript is faithfully simulated. By definition, <inline-formula id="j_infor595_ineq_259"><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: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: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: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_infor595_ineq_260"><alternatives><mml:math>
<mml:mn mathvariant="bold">1</mml:mn></mml:math><tex-math><![CDATA[$\mathbf{1}$]]></tex-math></alternatives></inline-formula>. Now, we replace the <inline-formula id="j_infor595_ineq_261"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">X</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${X_{j}}$]]></tex-math></alternatives></inline-formula>-values in the <bold>v</bold>-vector with a bitstring of the same length, yet chosen uniformly at random. If we assume that all involved 2-<inline-formula id="j_infor595_ineq_262"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">AKE</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathsf{AKE}^{(i)}}$]]></tex-math></alternatives></inline-formula>s produce two-party keys that are indistinguishible from values selected uniformly at random (in a long-term sense), so are the corresponding exclusive-or-values of each neighbouring pair of keys, i.e. <inline-formula id="j_infor595_ineq_263"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">X</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">sk</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">↺</mml:mo>
</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:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">↻</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${X_{i}}={\mathsf{sk}_{{\hat{P}^{(i)}}}^{\circlearrowleft }}\oplus {\mathsf{sk}_{{\hat{P}^{(i)}}}^{\circlearrowright }}$]]></tex-math></alternatives></inline-formula>. As a result, 
<disp-formula id="j_infor595_eq_017">
<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: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: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: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: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 maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:mo>⩽</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo>·</mml:mo>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mo movablelimits="false">max</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:munderover>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">Adv</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>2-</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">AKE</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msubsup>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \big|{\mathsf{Adv}_{\mathcal{A}}}({G_{1}})-{\mathsf{Adv}_{\mathcal{A}}}({G_{0}})\big|\leqslant 2\cdot {\underset{i=0}{\overset{n-1}{\max }}}{\mathsf{Adv}_{\mathcal{A}}^{\text{2-}{\mathsf{AKE}^{(i)}}}}.\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p><bold>Game</bold> <inline-formula id="j_infor595_ineq_264"><alternatives><mml:math>
<mml:mn mathvariant="bold">2</mml:mn></mml:math><tex-math><![CDATA[$\mathbf{2}$]]></tex-math></alternatives></inline-formula>. Now, replace each of the left-most components of the values <inline-formula id="j_infor595_ineq_265"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${c^{(i)}}$]]></tex-math></alternatives></inline-formula> with a uniformly at random chosen value from the corresponding key space. Assuming the <inline-formula id="j_infor595_ineq_266"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">GAKE</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathsf{GAKE}^{(i)}}$]]></tex-math></alternatives></inline-formula>s are long-term secure, this should not be noticeable, for each session key is one-time pad encrypted with a bitstring that is indistinguishable from one selected uniformly at random, thus: 
<disp-formula id="j_infor595_eq_018">
<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: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: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: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: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:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mo movablelimits="false">max</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:munderover>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">Adv</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">GAKE</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msubsup>
<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 {\underset{i=0}{\overset{n-1}{\max }}}{\mathsf{Adv}_{\mathcal{A}}^{{\mathsf{GAKE}^{(i)}}}}.\]]]></tex-math></alternatives>
</disp-formula> 
Moreover, note that the session identifier 
<disp-formula id="j_infor595_eq_019">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="sans-serif">sid</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">H</mml:mi>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:mn mathvariant="monospace">11</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="sans-serif">pid</mml:mi>
</mml:mrow>
<mml:mo stretchy="true">¯</mml:mo></mml:mover>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">sk</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">↻</mml:mo>
</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="sans-serif">sk</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
</mml:mrow>
<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:msup>
</mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">↻</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \mathsf{sid}=H\big(\mathtt{11},\bar{\mathsf{pid}},{\mathsf{sk}_{{\hat{P}^{(0)}}}^{\circlearrowright }},\dots ,{\mathsf{sk}_{{\hat{P}^{(n-1)}}}^{\circlearrowright }}\big)\]]]></tex-math></alternatives>
</disp-formula> 
leaks nothing about the established session key, for it can be seen as a statistically hiding commitment on the values <inline-formula id="j_infor595_ineq_267"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">sk</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">↻</mml:mo>
</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="sans-serif">sk</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
</mml:mrow>
<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>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">↻</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\mathsf{sk}_{{\hat{P}^{(0)}}}^{\circlearrowright }},\dots ,{\mathsf{sk}_{{\hat{P}^{(n-2)}}}^{\circlearrowright }}$]]></tex-math></alternatives></inline-formula> using as randomness the value <inline-formula id="j_infor595_ineq_268"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">sk</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
</mml:mrow>
<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:msup>
</mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">↻</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\mathsf{sk}_{{\hat{P}^{(n-1)}}}^{\circlearrowright }}$]]></tex-math></alternatives></inline-formula> (which is, by assumption, long-term secure).</p>
<p>Summing up, at this point no information linked to the actual established session key is available to the adversary: 
<disp-formula id="j_infor595_eq_020">
<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: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:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {\mathsf{Adv}_{\mathcal{A}}}({G_{2}})=0.\]]]></tex-math></alternatives>
</disp-formula> 
 □</p></statement></p>
</sec>
</sec>
<sec id="j_infor595_s_009">
<label>5</label>
<title>Design Choices</title>
<p>We have provided a general compiled protocol that can be constructed using various concrete cryptographic tools, following the principles of <italic>cryptoagility</italic>, which aims for modular designs that can be easily updated if any of the underlying tools need to be replaced. In this section, we offer guidance on how to make appropriate choices for the building blocks of our protocol.</p>
<p>There are many candidates in the literature for deriving the 2-<inline-formula id="j_infor595_ineq_269"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">AKE</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{AKE}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor595_ineq_270"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">GAKE</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{GAKE}$]]></tex-math></alternatives></inline-formula> constructions needed for our design. Prominent two-party quantum-key distribution protocols as analysed by Mosca <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor595_ref_016">2013</xref>) offer QKD building blocks, which we can now combine to <inline-formula id="j_infor595_ineq_271"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">GAKE</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{GAKE}$]]></tex-math></alternatives></inline-formula> solutions in a flexible manner.</p>
<p>For post-quantum cryptography, one can try to leverage known techniques to build 2-party authenticated key-exchange protocols from simpler cryptographic primitives, e.g. from a given <italic>Key Encapsulation Mechanism</italic> (KEM) (cf., for instance, Hövelmanns <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor595_ref_013">2020</xref>)). A high-level description of such a 2-AKE construction is shown in Fig. <xref rid="j_infor595_fig_005">5</xref>. At this, both parties have a pair of long-term authentication keys. In the figure, <inline-formula id="j_infor595_ineq_272"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${P_{i}}$]]></tex-math></alternatives></inline-formula> initiates the key exchange by executing an initiation algorithm <inline-formula id="j_infor595_ineq_273"><alternatives><mml:math>
<mml:mi mathvariant="normal">Init</mml:mi></mml:math><tex-math><![CDATA[$\mathrm{Init}$]]></tex-math></alternatives></inline-formula> and sending a message <italic>M</italic> to <inline-formula id="j_infor595_ineq_274"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${P_{j}}$]]></tex-math></alternatives></inline-formula>, which through a key derivation algorithm <inline-formula id="j_infor595_ineq_275"><alternatives><mml:math><mml:mstyle mathvariant="normal">
<mml:mi mathvariant="normal">De</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>s</mml:mi>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:msub></mml:mstyle></mml:math><tex-math><![CDATA[$\mathrm{De}{r_{resp}}$]]></tex-math></alternatives></inline-formula> computes the key <inline-formula id="j_infor595_ineq_276"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${K^{\prime }}$]]></tex-math></alternatives></inline-formula> and a message <inline-formula id="j_infor595_ineq_277"><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^{\prime }}$]]></tex-math></alternatives></inline-formula>. Upon receipt of <inline-formula id="j_infor595_ineq_278"><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^{\prime }}$]]></tex-math></alternatives></inline-formula>, the receiver <inline-formula id="j_infor595_ineq_279"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${P_{i}}$]]></tex-math></alternatives></inline-formula> is able to obtain the key <italic>K</italic> with a respective key derivation algorithm <inline-formula id="j_infor595_ineq_280"><alternatives><mml:math><mml:mstyle mathvariant="normal">
<mml:mi mathvariant="normal">De</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub></mml:mstyle></mml:math><tex-math><![CDATA[$\mathrm{De}{r_{init}}$]]></tex-math></alternatives></inline-formula>.</p>
<p>If the key exchange is successful, <inline-formula id="j_infor595_ineq_281"><alternatives><mml:math>
<mml:mi mathvariant="italic">K</mml:mi>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[$K={K^{\prime }}$]]></tex-math></alternatives></inline-formula>. In the quantum random oracle model, many such constructions (e.g. derived from Kyber, McEliece, or NTRU) are proven to be secure in a suitable sense. Moreover, as the key derivation algorithms involved are not deterministic, it is often the case that (some flavour of) forward security is attained – thus paving the way for <italic>long-term</italic> security in our setting. To this aim, often the <inline-formula id="j_infor595_ineq_282"><alternatives><mml:math>
<mml:mi mathvariant="normal">Init</mml:mi></mml:math><tex-math><![CDATA[$\mathrm{Init}$]]></tex-math></alternatives></inline-formula> algorithm involves a fresh key generation for a KEM, so that there will be an encapsulated key involved in the final output key that cannot be retrieved from the static long term keys of the involved participants.</p>
<fig id="j_infor595_fig_005">
<label>Fig. 5</label>
<caption>
<p>High-level decryption of a two-message 2-<inline-formula id="j_infor595_ineq_283"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">AKE</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{AKE}$]]></tex-math></alternatives></inline-formula>.</p>
</caption>
<graphic xlink:href="infor595_g005.jpg"/>
</fig>
<p>For the classical group setting, solutions building on these two-party designs are available and may be implemented from different code- or lattice-based cryptographic building blocks (see Escribano Pablos <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor595_ref_011">2020</xref>, <xref ref-type="bibr" rid="j_infor595_ref_010">2022</xref>). It is a natural topic for follow-up research to try to establish general statements that enable an automatic lifting of security guarantees in one of the popular classical security frameworks for <inline-formula id="j_infor595_ineq_284"><alternatives><mml:math>
<mml:mn>2</mml:mn>
<mml:mtext>-</mml:mtext>
<mml:mi mathvariant="sans-serif">AKE</mml:mi></mml:math><tex-math><![CDATA[$2\text{-}\mathsf{AKE}$]]></tex-math></alternatives></inline-formula> or <inline-formula id="j_infor595_ineq_285"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">GAKE</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{GAKE}$]]></tex-math></alternatives></inline-formula> protocols to security guarantees in our model.</p>
</sec>
<sec id="j_infor595_s_010">
<label>6</label>
<title>Conclusion</title>
<p>In this paper, we have proposed the first (to our knowledge) construction of a group key establishment protocol including entities that may have access to quantum or classical technologies. In particular, we integrate clusters of users that may obtain keying material through quantum technologies (i.e. may execute QKD protocols in pairs) and clusters (of <inline-formula id="j_infor595_ineq_286"><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> entities) that are able to establish secure keys through post-quantum protocols. All keying material can be combined to establish a group key shared by all involved entities.</p>
<p>Our construction is proven secure in a formal model including adversaries that have access to quantum resources, thus attaining a very high security level. The security model introduced in this paper is based on Mosca <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor595_ref_016">2013</xref>), one of the few works exploring formal models of security for hybrid scenarios. We believe that this work is a step forward towards these kinds of formalization efforts, which are needed in order to derive sound security proofs in any scenario where quantum/classical technologies are combined.</p>
<p>Furthermore, we believe our construction could be adapted to support diverse network infrastructures. In particular, refining it to function effectively in scenarios with communication constraints would be especially valuable (e.g. to prevent aborts if some leaders from an initially designated cluster fail to complete the protocol). Exploring such a dynamic adaptation of our construction would be a promising avenue for future research.</p>
</sec>
</body>
<back>
<ref-list id="j_infor595_reflist_001">
<title>References</title>
<ref id="j_infor595_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.-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>). <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</source>. <publisher-name>Springer</publisher-name>, <publisher-loc>Berlin, Heidelberg</publisher-loc>, pp. <fpage>499</fpage>–<lpage>514</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1007/978-3-540-70936-7_27" xlink:type="simple">https://doi.org/10.1007/978-3-540-70936-7_27</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor595_ref_002">
<mixed-citation publication-type="other"><string-name><surname>Alagic</surname>, <given-names>G.</given-names></string-name>, <string-name><surname>Cooper</surname>, <given-names>D.</given-names></string-name>, <string-name><surname>Dang</surname>, <given-names>Q.</given-names></string-name>, <string-name><surname>Dang</surname>, <given-names>T.</given-names></string-name>, <string-name><surname>Kelsey</surname>, <given-names>J.M.</given-names></string-name>, <string-name><surname>Lichtinger</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Liu</surname>, <given-names>Y.-K.</given-names></string-name>, <string-name><surname>Miller</surname>, <given-names>C.A.</given-names></string-name>, <string-name><surname>Moody</surname>, <given-names>D.</given-names></string-name>, <string-name><surname>Peralta</surname>, <given-names>R.</given-names></string-name>, <string-name><surname>Perlner</surname>, <given-names>R.</given-names></string-name>, <string-name><surname>Robinson</surname>, <given-names>A.</given-names></string-name>, <string-name><surname>Smith-Tone</surname>, <given-names>D.</given-names></string-name>, <string-name><surname>Apon</surname>, <given-names>D.</given-names></string-name> (2022). <italic>Status Report on the Third Round of the NIST Post-Quantum Cryptography Standardization Process</italic>. NIST Interagency/Internal Report (NISTIR). National Institute of Standards and Technology, Gaithersburg, MD. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.6028/NIST.IR.8413" xlink:type="simple">https://doi.org/10.6028/NIST.IR.8413</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor595_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: <source>Post-Quantum Cryptography – 10th International Conference, PQCrypto 2019, Chongqing, China, May 8–10, 2019 Revised Selected Papers</source>, pp. <fpage>189</fpage>–<lpage>205</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1007/978-3-030-25510-7_11" xlink:type="simple">https://doi.org/10.1007/978-3-030-25510-7_11</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor595_ref_004">
<mixed-citation publication-type="journal"><string-name><surname>Bohli</surname>, <given-names>J.-M.</given-names></string-name>, <string-name><surname>Gonzalez 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>, <fpage>243</fpage>–<lpage>254</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1007/s10207-007-0018-x" xlink:type="simple">https://doi.org/10.1007/s10207-007-0018-x</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor595_ref_005">
<mixed-citation publication-type="journal"><string-name><surname>Brauer</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Vicente</surname>, <given-names>R.J.</given-names></string-name>, <string-name><surname>Buruaga</surname>, <given-names>J.S.</given-names></string-name>, <string-name><surname>Mendez</surname>, <given-names>R.B.</given-names></string-name>, <string-name><surname>Braun</surname>, <given-names>R.-P.</given-names></string-name>, <string-name><surname>Geitz</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Rydlichkowski</surname>, <given-names>P.</given-names></string-name>, <string-name><surname>Brunner</surname>, <given-names>H.H.</given-names></string-name>, <string-name><surname>Fung</surname>, <given-names>F.</given-names></string-name>, <string-name><surname>Peev</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Pastor</surname>, <given-names>A.</given-names></string-name>, <string-name><surname>Lopez</surname>, <given-names>D.R.</given-names></string-name>, <string-name><surname>Martin</surname>, <given-names>V.</given-names></string-name>, <string-name><surname>Brito</surname>, <given-names>J.P.</given-names></string-name> (<year>2024</year>). <article-title>Linking QKD testbeds across Europe</article-title>. <source>Entropy</source>, <volume>26</volume>(<issue>2</issue>), <fpage>123</fpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.3390/e26020123" xlink:type="simple">https://doi.org/10.3390/e26020123</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor595_ref_006">
<mixed-citation publication-type="other"><string-name><surname>Braun</surname>, <given-names>R.-P.</given-names></string-name>, <string-name><surname>Geitz</surname>, <given-names>M.</given-names></string-name> (2021). The OpenQKD Testbed in Berlin. In: <italic>2021 Asia Communications and Photonics Conference (ACP)</italic>, pp. 1–3. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1364/ACPC.2021.M4C.2" xlink:type="simple">https://doi.org/10.1364/ACPC.2021.M4C.2</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor595_ref_007">
<mixed-citation publication-type="chapter"><string-name><surname>Bruckner</surname>, <given-names>S.</given-names></string-name>, <string-name><surname>Ramacher</surname>, <given-names>S.</given-names></string-name>, <string-name><surname>Striecks</surname>, <given-names>C.</given-names></string-name> (<year>2023</year>). <chapter-title>Muckle+: end-to-end hybrid authenticated key exchanges</chapter-title>. In: <string-name><surname>Johansson</surname>, <given-names>T.</given-names></string-name>, <string-name><surname>Smith-Tone</surname>, <given-names>D.</given-names></string-name> (Eds.), <source>Post-Quantum Cryptography – 14th International Workshop, PQCrypto 2023, College Park, MD, USA, August 16–18, 2023, Proceedings</source>. <series><italic>Lecture Notes in Computer Science</italic></series>, Vol. <volume>14154</volume>. <publisher-name>Springer</publisher-name>, pp. <fpage>601</fpage>–<lpage>633</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/0.1007/978-3-031-40003-2_22" xlink:type="simple">https://doi.org/0.1007/978-3-031-40003-2_22</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor595_ref_008">
<mixed-citation publication-type="chapter"><string-name><surname>Cid</surname>, <given-names>M.I.G.</given-names></string-name>, <string-name><surname>Martín</surname>, <given-names>L.O.</given-names></string-name>, <string-name><surname>Ayuso</surname>, <given-names>V.M.</given-names></string-name> (<year>2021</year>). <chapter-title>Madrid Quantum Network: a first step to quantum internet</chapter-title>. In: <string-name><surname>Reinhardt</surname>, <given-names>D.</given-names></string-name>, <string-name><surname>Müller</surname>, <given-names>T.</given-names></string-name> (Eds.), <source>ARES 2021: The 16th International Conference on Availability, Reliability and Security, Vienna, Austria, August 17–20, 2021</source>. <publisher-name>ACM</publisher-name>, pp. <fpage>102</fpage>–<lpage>11027</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1145/3465481.3470056" xlink:type="simple">https://doi.org/10.1145/3465481.3470056</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor595_ref_009">
<mixed-citation publication-type="chapter"><string-name><surname>Dowling</surname>, <given-names>B.</given-names></string-name>, <string-name><surname>Hansen</surname>, <given-names>T.B.</given-names></string-name>, <string-name><surname>Paterson</surname>, <given-names>K.G.</given-names></string-name> (<year>2020</year>). <chapter-title>Many a mickle makes a muckle: a framework for provably quantum-secure hybrid key exchange</chapter-title>. In: <string-name><surname>Ding</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Tillich</surname>, <given-names>J.</given-names></string-name> (Eds.), <source>Post-Quantum Cryptography – 11th International Conference, PQCrypto 2020, Paris, France, April 15–17, 2020, Proceedings</source>. <series><italic>Lecture Notes in Computer Science</italic></series>, Vol. <volume>12100</volume>. <publisher-name>Springer</publisher-name>, pp. <fpage>483</fpage>–<lpage>502</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1007/978-3-030-44223-1_26" xlink:type="simple">https://doi.org/10.1007/978-3-030-44223-1_26</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor595_ref_010">
<mixed-citation publication-type="journal"><string-name><surname>Escribano Pablos</surname>, <given-names>J.I.</given-names></string-name>, <string-name><surname>Marriaga</surname>, <given-names>M.E.</given-names></string-name>, <string-name><surname>del Pozo</surname>, <given-names>A.L.P.</given-names></string-name> (<year>2022</year>). <article-title>Design and implementation of a post-quantum group authenticated key exchange protocol with the LibOQS Library: a comparative performance analysis from classic McEliece, Kyber, NTRU, and Saber</article-title>. <source>IEEE Access</source>, <volume>10</volume>, <fpage>120951</fpage>–<lpage>120983</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1109/access.2022.3222389" xlink:type="simple">https://doi.org/10.1109/access.2022.3222389</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor595_ref_011">
<mixed-citation publication-type="journal"><string-name><surname>Escribano Pablos</surname>, <given-names>J.I.</given-names></string-name>, <string-name><surname>Gonzalez Vasco</surname>, <given-names>M.I.</given-names></string-name>, <string-name><surname>Marriaga</surname>, <given-names>M.E.</given-names></string-name>, <string-name><surname>Perez del Pozo</surname>, <given-names>A.L.</given-names></string-name> (<year>2020</year>). <article-title>Compiled constructions towards post-quantum group key exchange: a design from kyber</article-title>. <source>Mathematics</source>, <volume>8</volume>(<issue>10</issue>). <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.3390/math8101853" xlink:type="simple">https://doi.org/10.3390/math8101853</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor595_ref_012">
<mixed-citation publication-type="chapter"><string-name><surname>Geitz</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Doering</surname>, <given-names>R.</given-names></string-name>, <string-name><surname>Braun</surname>, <given-names>R.-P.</given-names></string-name> (<year>2023</year>). <chapter-title>Hybrid QKD and PQC protocols implemented in the Berlin OpenQKD testbed</chapter-title>. In: <source>2023 8th International Conference on Frontiers of Signal Processing (ICFSP)</source>, pp. <fpage>69</fpage>–<lpage>74</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1109/icfsp59764.2023.10372894" xlink:type="simple">https://doi.org/10.1109/icfsp59764.2023.10372894</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor595_ref_013">
<mixed-citation publication-type="chapter"><string-name><surname>Hövelmanns</surname>, <given-names>K.</given-names></string-name>, <string-name><surname>Kiltz</surname>, <given-names>E.</given-names></string-name>, <string-name><surname>Schäge</surname>, <given-names>S.</given-names></string-name>, <string-name><surname>Unruh</surname>, <given-names>D.</given-names></string-name> (<year>2020</year>). <chapter-title>Generic authenticated key exchange in the quantum random oracle model</chapter-title>. In: <string-name><surname>Kiayias</surname>, <given-names>A.</given-names></string-name>, <string-name><surname>Kohlweiss</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Wallden</surname>, <given-names>P.</given-names></string-name>, <string-name><surname>Zikas</surname>, <given-names>V.</given-names></string-name> (Eds.), <source>Public-Key Cryptography – PKC 2020</source>. <publisher-name>Springer International Publishing</publisher-name>, <publisher-loc>Cham</publisher-loc>, pp. <fpage>389</fpage>–<lpage>422</lpage>. <isbn>978-3-030-45388-6</isbn>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1007/978-3-030-45388-6_14" xlink:type="simple">https://doi.org/10.1007/978-3-030-45388-6_14</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor595_ref_014">
<mixed-citation publication-type="chapter"><string-name><surname>James</surname>, <given-names>P.</given-names></string-name>, <string-name><surname>Laschet</surname>, <given-names>S.</given-names></string-name>, <string-name><surname>Ramacher</surname>, <given-names>S.</given-names></string-name>, <string-name><surname>Torresetti</surname>, <given-names>L.</given-names></string-name> (<year>2023</year>). <chapter-title>Key management systems for large-scale quantum key distribution networks</chapter-title>. In: <source>Proceedings of the 18th International Conference on Availability, Reliability and Security, ARES 2023, Benevento, Italy, 29 August 2023–1 September 2023</source>. <publisher-name>ACM</publisher-name>, pp. <fpage>126</fpage>–<lpage>11269</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1145/3600160.3605050" xlink:type="simple">https://doi.org/10.1145/3600160.3605050</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor595_ref_015">
<mixed-citation publication-type="chapter"><string-name><surname>Kozlovics</surname>, <given-names>S.</given-names></string-name>, <string-name><surname>Petrucena</surname>, <given-names>K.</given-names></string-name>, <string-name><surname>Larins</surname>, <given-names>D.</given-names></string-name>, <string-name><surname>Viksna</surname>, <given-names>J.</given-names></string-name> (<year>2023</year>). <chapter-title>Quantum key distribution as a service and its injection into TLS</chapter-title>. In: <string-name><surname>Meng</surname>, <given-names>W.</given-names></string-name>, <string-name><surname>Yan</surname>, <given-names>Z.</given-names></string-name>, <string-name><surname>Piuri</surname>, <given-names>V.</given-names></string-name> (Eds.), <source>Information Security Practice and Experience – 18th International Conference, ISPEC 2023, Copenhagen, Denmark, August 24–25, 2023, Proceedings</source>. <series><italic>Lecture Notes in Computer Science</italic></series>, Vol. <volume>14341</volume>. <publisher-name>Springer</publisher-name>, pp. <fpage>527</fpage>–<lpage>545</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1007/978-981-99-7032-2_31" xlink:type="simple">https://doi.org/10.1007/978-981-99-7032-2_31</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor595_ref_016">
<mixed-citation publication-type="chapter"><string-name><surname>Mosca</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Stebila</surname>, <given-names>D.</given-names></string-name>, <string-name><surname>Ustaoğlu</surname>, <given-names>B.</given-names></string-name> (<year>2013</year>). <chapter-title>Quantum key distribution in the classical authenticated key exchange framework</chapter-title>. In: <string-name><surname>Gaborit</surname>, <given-names>P.</given-names></string-name> (Ed.), <source>Post-Quantum Cryptography</source>. <publisher-name>Springer</publisher-name>, <publisher-loc>Berlin, Heidelberg</publisher-loc>, pp. <fpage>136</fpage>–<lpage>154</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1007/978-3-642-38616-9_9" xlink:type="simple">https://doi.org/10.1007/978-3-642-38616-9_9</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor595_ref_017">
<mixed-citation publication-type="journal"><string-name><surname>Müller-Quade</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Unruh</surname>, <given-names>D.</given-names></string-name> (<year>2010</year>). <article-title>Long-term security and universal composability</article-title>. <source>Journal of Cryptology</source>, <volume>23</volume>(<issue>4</issue>), <fpage>594</fpage>–<lpage>671</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1007/978-3-540-70936-7_3" xlink:type="simple">https://doi.org/10.1007/978-3-540-70936-7_3</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor595_ref_018">
<mixed-citation publication-type="journal"><string-name><surname>Nam</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Paik</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Won</surname>, <given-names>D.</given-names></string-name> (<year>2011</year>). <article-title>A security weakness in Abdalla et als generic construction of a group key exchange protocol</article-title>. <source>Information Sciences</source>, <volume>181</volume>(<issue>1</issue>), <fpage>234</fpage>–<lpage>238</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1016/j.ins.2010.09.011" xlink:type="simple">https://doi.org/10.1016/j.ins.2010.09.011</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor595_ref_019">
<mixed-citation publication-type="other"><string-name><surname>Pass</surname>, <given-names>R.</given-names></string-name> (2004). <italic>Alternative Variants of Zero-Knowledge Proofs</italic>. Licentiate thesis. KTH Numerical Analysis and Computer Science, Stockholm. Available at <uri>http://www.cs.cornell.edu/~rafael/papers/raf-lic.pdf</uri>.</mixed-citation>
</ref>
<ref id="j_infor595_ref_020">
<mixed-citation publication-type="other"><string-name><surname>Unruh</surname>, <given-names>D.</given-names></string-name> (2022). Computationally binding quantum commitments. Cryptology ePrint Archive, Paper 2015/361. Recition 2. Available at <uri>https://eprint.iacr.org/2015/361</uri>. Major revision of an IACR publication in EUROCRYPT 2016.</mixed-citation>
</ref>
<ref id="j_infor595_ref_021">
<mixed-citation publication-type="chapter"><string-name><surname>Viksna</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Kozlovics</surname>, <given-names>S.</given-names></string-name>, <string-name><surname>Rencis</surname>, <given-names>E.</given-names></string-name> (<year>2023</year>). <chapter-title>Integrating quantum key distribution into hybrid quantum-classical networks</chapter-title>. In: <source>Applied Cryptography and Network Security Workshops – ACNS 2023</source>. <series><italic>Lecture Notes in Computer Science</italic></series>, Vol. <volume>13907</volume>. <publisher-name>Springer</publisher-name>, pp. <fpage>695</fpage>–<lpage>699</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1007/978-3-031-41181-6_42" xlink:type="simple">https://doi.org/10.1007/978-3-031-41181-6_42</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor595_ref_022">
<mixed-citation publication-type="chapter"><string-name><surname>Wu</surname>, <given-names>W.</given-names></string-name>, <string-name><surname>Chung</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Kanter</surname>, <given-names>G.</given-names></string-name>, <string-name><surname>Lauk</surname>, <given-names>N.</given-names></string-name>, <string-name><surname>Valivarthi</surname>, <given-names>R.</given-names></string-name>, <string-name><surname>Ceballos</surname>, <given-names>R.R.</given-names></string-name>, <string-name><surname>Pena</surname>, <given-names>C.</given-names></string-name>, <string-name><surname>Sinclair</surname>, <given-names>N.</given-names></string-name>, <string-name><surname>Thomas</surname>, <given-names>J.M.</given-names></string-name>, <string-name><surname>Eastman</surname>, <given-names>E.M.</given-names></string-name>, <string-name><surname>Xie</surname>, <given-names>S.</given-names></string-name>, <string-name><surname>Kettimuthu</surname>, <given-names>R.</given-names></string-name>, <string-name><surname>Kumar</surname>, <given-names>P.</given-names></string-name>, <string-name><surname>Spentzouris</surname>, <given-names>P.</given-names></string-name>, <string-name><surname>Spiropulu</surname>, <given-names>M.</given-names></string-name> (<year>2021</year>). <chapter-title>Illinois express quantum network for distributing and controlling entanglement on metro-scale</chapter-title>. In: <source>2021 IEEE/ACM Second International Workshop on Quantum Computing Software (QCS)</source>, pp. <fpage>35</fpage>–<lpage>42</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1109/QCS54837.2021.00008" xlink:type="simple">https://doi.org/10.1109/QCS54837.2021.00008</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor595_ref_023">
<mixed-citation publication-type="chapter"><string-name><surname>Yamakawa</surname>, <given-names>T.</given-names></string-name>, <string-name><surname>Zhandry</surname>, <given-names>M.</given-names></string-name> (<year>2021</year>). <chapter-title>Classical vs quantum random oracles</chapter-title>. In: <source>Advances in Cryptology— EUROCRYPT 2021</source>. <series><italic>LNCS</italic></series>, Vol. <volume>12697</volume>. <publisher-name>Springer</publisher-name>, pp. <fpage>568</fpage>–<lpage>597</lpage>.</mixed-citation>
</ref>
<ref id="j_infor595_ref_024">
<mixed-citation publication-type="journal"><string-name><surname>Zhandry</surname>, <given-names>M.</given-names></string-name> (<year>2015</year>). <article-title>A note on the quantum collision and set equality problems</article-title>. <source>Quantum Information &amp; Computation</source>, <volume>15</volume>(<issue>7–8</issue>), <fpage>0557</fpage>–<lpage>0567</lpage>. <comment>Preprint available as</comment> arXiv:<ext-link ext-link-type="uri" xlink:href="https://arxiv.org/abs/1312.1027v3">1312.1027v3</ext-link>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.5555/2871411.2871413" xlink:type="simple">https://doi.org/10.5555/2871411.2871413</ext-link>.</mixed-citation>
</ref>
</ref-list>
</back>
</article>
