<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Hybrid Post-Quantum TLS formal specification in Maude-NPA - toward its security analysis?</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Duong Dinh Tran</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Canh Minh Do</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Santiago Escobar</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Kazuhiro Ogata</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Japan Advanced Institute of Science and Technology</institution>
          ,
          <addr-line>Ishikawa 923-1292</addr-line>
          ,
          <country country="JP">Japan</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>VRAIN, Universitat Politècnica de València</institution>
          ,
          <addr-line>Valencia</addr-line>
          ,
          <country country="ES">Spain</country>
        </aff>
      </contrib-group>
      <fpage>50</fpage>
      <lpage>64</lpage>
      <abstract>
        <p>This paper presents a formal speci cation of the Hybrid Post-Quantum TLS protocol in Maude-NPA, toward a security analysis of the protocol, where Hybrid Post-Quantum TLS is a quantum-resistant version of TLS proposed by AWS as a preparation against future attacks from quantum computers. The proposed protocol uses a hybrid key exchange mode: one is a classical key exchange algorithm and the other is a post-quantum key encapsulation mechanism. One of our assumptions about the intruder's capabilities is that the intruder can break the security of the classical key exchange algorithm by utilizing the power of large-scale quantum computers. In the present paper, we focus on presenting how to formally specify the protocol in Maude-NPA, which is a well-known tool for analyzing the security of cryptographic protocols, so that later on we can conduct the formal analysis of the protocol with some security properties.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;post-quantum</kwd>
        <kwd>TLS</kwd>
        <kwd>Maude-NPA</kwd>
        <kwd>formal speci cation</kwd>
        <kwd>security analysis</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <sec id="sec-1-1">
        <title>Post-quantum cryptographic protocols refer to those alternatives to classical cryptographic</title>
        <p>protocols in order to oppose potential attacks from quantum computers. Research on quantum
computers, which exploits quantum mechanical phenomena to solve hard mathematical
problems that are intractable for traditional computers, has increased signi cantly in recent years.</p>
      </sec>
      <sec id="sec-1-2">
        <title>For example, the integer factorization problem is no longer hard under large-scale quantum computers running Shor’s algorithm [1]. That leads to most of the asymmetric primitives used today will become insecure under su ciently powerful quantum computers because the computationally hard mathematical problems on which they are relying (i.e., the integer factorization</title>
        <p>problem, the discrete logarithm problem, and the elliptic-curve discrete logarithm problem) can
be e ciently solved by a su ciently large quantum computer. Meanwhile, many important
milestones in the construction of quantum computer hardware have been achieved with the
involvement of many giants, such as Intel, IBM, and Google. That makes practical quantum
computers closer and closer to reality. Therefore, research on building new post-quantum
cryptographic protocols and security veri cation of those post-quantum cryptosystems has got
extensive attention from cryptography and security research groups in recent years.</p>
      </sec>
      <sec id="sec-1-3">
        <title>The Hybrid Post-Quantum Transport Layer Security (TLS) Protocol [2] has been proposed by</title>
      </sec>
      <sec id="sec-1-4">
        <title>Amazon Web Services (AWS) as a quantum-resistant version of the TLS 1.2 protocol, where TLS</title>
        <p>
          is known as one of the most widely used cryptographic protocols. The hybrid terminology in the
name of the proposed protocol refers to the hybrid key exchange mode used in the protocol: one
is a conventional key exchange algorithm, i.e., Elliptic Curve Di e-Hellman (ECDH), and the
other is a post-quantum key encapsulation mechanism (KEM), which can be one of Kyber [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ],
        </p>
      </sec>
      <sec id="sec-1-5">
        <title>SIKE [4], and BIKE [5]. That results in a shared secret key at least as secure as ECDH against a</title>
        <p>classical adversary and at least as secure as the selected post-quantum KEM (PQ KEM) against
a quantum adversary.</p>
        <p>
          Maude-NPA is a powerful formal veri cation tool for analyzing cryptographic protocols that
uses a backward narrowing reachability analysis modulo an equational theory and the Dolev-Yao
strand space model [
          <xref ref-type="bibr" rid="ref6 ref7">6, 7</xref>
          ], which gives intruders capable of intercepting, modifying, and injecting
messages to impersonate other protocol principals. Narrowing is a generalization of term
rewriting that allows logical variables in terms and replaces pattern matching by uni cation and
so Maude-NPA supports a symbolic execution. The backward narrowing reachability analysis
starts from a nal insecure pattern that represents insecure states, a so-called attack pattern,
to check whether it is reachable from an initial state, which has no further backward steps.
        </p>
      </sec>
      <sec id="sec-1-6">
        <title>If that is the case, the attack concerned can be conducted for the protocol under veri cation;</title>
        <p>
          otherwise, the attack cannot. The advantage of Maude-NPA is that it supports protocols with
an unbounded session model and di erent equational theories as other modern analyzers, such
as Tamarin [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ], and especially it is fully automatic. This paper focuses on presenting the formal
speci cation of the Hybrid Post-Quantum TLS protocol in Maude-NPA, which is the rst step
toward conducting a security formal analysis of the protocol.
        </p>
      </sec>
      <sec id="sec-1-7">
        <title>The remaining of this paper is organized as follows. Section 2 rst gives some preliminaries</title>
        <p>related to Maude and Maude-NPA. Then, Section 3 describes in detail messages exchanged in
the Hybrid PQ TLS protocol. Section 4 is the main content of the paper, where we present how
to formally specify the protocol in Maude-NPA. After that, Section 5 mentions some related
work, and nally, Section 6 summarizes our paper. The full speci cation of the protocol in</p>
      </sec>
      <sec id="sec-1-8">
        <title>Maude-NPA is publicly available at https://github.com/duongtd23/PQTLS-MaudeNPA.</title>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>2. Preliminaries</title>
      <p>
        Maude-NPA is implemented in Maude [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], a declarative language and high-performance tool
that focuses on simplicity, expressiveness, and performance to support the formal speci cation
and analysis of concurrent programs/systems in rewriting logic. Maude can directly specify
order-sorted equational logics and rewriting logic [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], and the tool provides several formal
analysis methods, such as reachability analysis and LTL model checking. This section gives
the syntax of the Maude language in a nutshell (see [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] for more detail) and describes how
narrowing works with an example.
      </p>
      <sec id="sec-2-1">
        <title>Functional modules</title>
        <p>A functional module M speci es an order-sorted equational logic theory (⌃ , E ) with the
syntax: fmod M is (⌃ , E ) endfm, where ⌃ is an order-sorted signature and E is the collection
of equations in the functional module. (⌃ , E ) may contain a set of declarations as follows:
• importations of previously de ned modules (protecting . . . or extending . . . or
including . . .)
• declarations of sorts (sort s . or sorts s s0 .)
• subsort declarations (subsort s &lt; s0 .)
• declarations of function symbols (op f : s1 . . . sn ! s [att1 . . . attk] . )
• declarations of variables (vars v v0 .)
• unconditional equations (eq t = t0 .)
• conditional equations (ceq t = t0 if cond .)
where s, s1, . . . , sn are sort names, v, v0 are variable names, t, t0 are terms, cond is a conjunction
of equations (e.g., t = t0), and att1, . . . attk are equational attributes. Equations are used as
equational rules to perform the simpli cation in which instances of the lefthand side pattern that
match subterms of a subject term are replaced by the corresponding instances of the righthand
side. The process is called term rewriting and the result of simplifying a term is called its normal
form.</p>
      </sec>
      <sec id="sec-2-2">
        <title>System modules</title>
        <p>
          A system module R speci es a rewrite theory (⌃ , E , R) with the syntax: mod R is (⌃ , E , R)
endm, where ⌃ and E are the same as those in an equational theory and R is the collection of
rewrite rules in the system module. (⌃ , E , R) may contain all possible declarations in (⌃ , E )
and rewrite rules in R as follows:
• unconditional rewrite rules (rl [label] : u =&gt; v .)
• conditional rewrite rules (crl [label] : u =&gt; v if cond .)
where label is the name of a rewrite rule, u, v are terms, and cond is a conjunction of equations
and/or rewrites (e.g., t =&gt; t0). Rewrite rules are also computed by rewriting from left to right
modulo the equations in the system module and regarded as local transition rules, making many
possible state transitions from a given state in a concurrent system.
Narrowing is a generalization of term rewriting that allows logical variables in terms and replaces
pattern matching by uni cation. Let us use a classical example in the Maude community to
describe how narrowing works. The formal de nition of narrowing can be found in [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ]. The
following system module speci es a concurrent machine to buy cakes (c) and apples (a) with
dollars ($) and quarters (q). We suppose that a cake costs a dollar (see the rewrite rule labeled
as buy-c below) while an apple costs three quarters (the rewrite rule buy-a). The machine only
allows buying cakes and apples with dollars. However, the machine can change four quarters
into a dollar (the rewrite rule change).
mod NARROWING-VENDING-MACHINE is
sorts Coin Item Marking Money State .
subsort Coin &lt; Money .
op empty : -&gt; Money .
op __ : Money Money -&gt; Money [assoc comm id: empty] .
subsort Money Item &lt; Marking .
op __ : Marking Marking -&gt; Marking [assoc comm id: empty] .
op &lt;_&gt; : Marking -&gt; State .
ops $ q : -&gt; Coin .
ops c a : -&gt; Item .
var M : Marking .
rl [buy-a] : &lt; M $ &gt; =&gt; &lt; M a q &gt; [narrowing] .
rl [buy-c] : &lt; M $ &gt; =&gt; &lt; M c &gt; [narrowing] .
        </p>
        <p>
          eq [change] : q q q q M = $ M [variant] .
endm
where the __ operator is associative and commutative and has an identity element empty, the
&lt;_&gt; operator speci es the machine state, and narrowing and variant attributes are specially
used for narrowing and variant-based equational uni cation algorithms [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ]. Let us consider
a term &lt; M1 &gt; as an initial state that only contains a variable of the sort Money. There would
be several traces from the initial state by using narrowing. At each narrowing step, we must
choose which subterm of the subject term, which rewrite rule of the speci cation, and which
instantiation on the variables of the subterm and the left-hand side of the rewrite rule (or which
uni er (or substitution) of the subterm and the left-hand side of the rewrite rule) are going
to be considered. Note that only rewrite rules with a narrowing attribute are considered and
only equations with a variant attribute are used to decide the uni cation problem modulo
the equations. Each narrowing step applied to a given state produces a new branch in the
reachability tree. For example, for each rewrite rule of the machine, there is only one uni er
that makes the initial state equal to the left-hand side of the rewrite rule. Therefore, we can
only obtain the following two narrowing steps, generating only two successor states from the
initial state, by performing narrowing just by one step as follows:
&lt; M1 &gt;
&lt; M1 &gt;
1, buy-a &lt; a q M2 &gt;
10, buy-c &lt; c M2’ &gt;
where M2 and M2’ are variables of the sort Money and the substitutions are 1 = {M1 7! $ M2, M 7!
M2} and 10 = {M1 7! $ M2’, M 7! M2’} with the rewrite rules buy-a and buy-c, respectively.
        </p>
        <sec id="sec-2-2-1">
          <title>Note that M in the substitutions is the variable used in the left-hand side of the rewrite rules. If</title>
          <p>Client
ClientHello
Certificate⇤
ClientKeyExchange
CertificateVerify⇤
[ChangeCipherSpec]
Finished</p>
          <p>Server</p>
          <p>ServerHello</p>
          <p>Certificate
ServerKeyExchange
CertificateRequest⇤</p>
          <p>ServerHelloDone
we take the successor state &lt; a q M2 &gt; and perform two more consecutive narrowing steps, it
makes one trace taking us to the state &lt; a a c q M4 &gt;, which also contains a variable M4 of the
sort Money. The narrowing sequence associated to the state is as follows:
&lt; M1 &gt;
1, buy-a &lt; a q M2 &gt;
2, buy-c &lt; a c q M3 &gt;
3, buy-a &lt; a a c q M4 &gt;
where M3 and M4 are variables of the sort Money and the substitutions are 2 = {M2 7! $ M3, M 7!
a q M3} and 3 = {M3 7! q q q M4, M 7! a c M4} with the rewrite rules buy-c and buy-a,
respectively. In the third narrowing step, when we apply the substitution 3, the instance of
&lt; a c q M3 &gt; is &lt; a c q q q q M4 &gt;, while the instance of the left-hand side of the rewrite rule
buy-a is &lt; a c M4 $ &gt;. The two instances are actually equal thanks to the commutative property
and the equation change. Therefore, the rewrite rule buy-a modulo the equational theory is
used to obtain the state &lt; a a c q M4 &gt;. By using narrowing, we can solve the reachability
problem St R,E St0 where St and St0 are patterns (terms that may have variables) of the sort</p>
        </sec>
        <sec id="sec-2-2-2">
          <title>State such that some conditions are satis ed, and R, E are the rewrite rules and equations in</title>
          <p>the speci cation.</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>3. Hybrid Post-Quantum TLS 1.2</title>
      <p>parameters) supported by the client. Upon reception of the ClientHello message, the server
sends a ServerHello message back to the client, which consists of the protocol version, a random
number, a non-empty session ID, and a selected cipher suite. Together with that message, the
server also sends their digital certi cate (a Certificate message) and a ServerKeyExchange
message to the client. The ServerKeyExchange message contains the server’s ECDHE &amp; PQ</p>
      <sec id="sec-3-1">
        <title>KEM public keys and a signature over the two public keys together with the two random</title>
        <p>numbers in the ClientHello and ServerHello messages signed by the server’s long-term private
key. In the case when client authentication is requested, the server sends a CertificateRequest
message, which is optional. A ServerHelloDone message is then sent to the client to signal the
completion of the hello-message phase on the server side.</p>
      </sec>
      <sec id="sec-3-2">
        <title>Upon reception of the ServerHelloDone message, the client replies to the server with a</title>
        <p>ClientKeyExchange message, which consists of the client’s ECDHE public key and the KEM
ciphertext. Before that, if the server has sent a CertificateRequest message, the client must
send their certi cate (a Certificate message) rst. Similarly, if the server has requested client
authentication, the client will then send a CertificateVerify message, whose content is a digital
signature over all handshake messages exchanged so far signed by the client’s long-term
private key. After that, a ChangeCipherSpec message (which belongs to the change cipher
spec protocol) is sent to notify that all subsequent messages will be encrypted by the newly
negotiated keys. Finally, the client sends a Finished message, whose content is a hash of all
handshake messages encrypted by a handshake key just negotiated.</p>
      </sec>
      <sec id="sec-3-3">
        <title>Upon reception of the Finished message from the client, the server must validate that the</title>
        <p>message is correct. If so, the server sends their own ChangeCipherSpec and Finished messages.</p>
      </sec>
      <sec id="sec-3-4">
        <title>Once the client receives the Finished message, it also has to validate that the message is correct.</title>
      </sec>
      <sec id="sec-3-5">
        <title>After that, both sides are ready for secure data communication.</title>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4. Hybrid PQ TLS formal specification in Maude-NPA</title>
      <sec id="sec-4-1">
        <title>Before going into detail about the formal speci cation of the Hybrid PQ TLS protocol, this</title>
        <p>section rst presents strands notation, and how we can use them to model protocol execution
via a simple example. Comprehension of this concept is an essential step to understanding how
we can specify the protocol in Maude-NPA later.</p>
        <sec id="sec-4-1-1">
          <title>4.1. Formal specification by strands</title>
          <p>
            Maude-NPA uses strands [
            <xref ref-type="bibr" rid="ref7">7</xref>
            ] to specify the behavior of a protocol execution and the intruder
capabilities. Each strand is a sequence of positive and negative messages describing a principal
executing a protocol, or the intruder performing actions. A strand is in the following form:
:: r1, . . . , rk :: [+(m1), (m2), . . . , (mi) | + (mi+1), . . . ]
where r1, . . . , rk denote unique freshes generated in the strand, and a positive message +(m)
and a negative message (m) denote sending and receiving the message m, respectively. The
vertical bar is used to distinguish between present and future when the strand appears in a state
description. Messages appearing before the bar were sent/received in the past, while messages
appearing after the bar will be sent/received in the future. To illustrate how to specify protocol
execution with strands, let us consider the Needham-Schroeder Public Key (NSPK) protocol [
            <xref ref-type="bibr" rid="ref13">13</xref>
            ],
which has three following messages exchanged written in the standard Alice-and-Bob notation:
i) A ! B : pk(B, A ; NA)
ii) B ! A : pk(A, NA ; NB)
iii) A ! B : pk(B, NB)
where A and B denote Alice and Bob principal identi ers, NA and NB are nonces (unguessable
values) generated by A and B, respectively, and pk(A, m) denotes the encryption of message
m by the public key of A. The three messages can be explained as follows. A rst generates a
nonce NA and sends it together with their ID encrypted by B’s public key to B (note that the
semicolon denotes the concatenation). Upon receiving that message, B decrypts it and obtains
a nonce. The nonce and a newly generated nonce NB are encrypted by A ’s public key and then
sent back to A. When receiving the message, A decrypts it, getting two nonces, and checking if
the rst one is exactly the one that A has sent in this session. A nishes the communication by
sending to B the other nonce encrypted under B’s public key.
          </p>
          <p>To model the protocol in Maude-NPA, we use some built-in sorts in Maude-NPA, such as the
sort Msg that represents messages and the sort Fresh that is used to identify terms that must
be unique. Besides, we introduce some sorts, such as Name and Nonce to distinguish principal
names and nonces, respectively. The two sorts are sub sorts of the sort Msg, which are declared
as follows:
sorts Name Nonce .
subsort Name Nonce &lt; Msg .</p>
        </sec>
      </sec>
      <sec id="sec-4-2">
        <title>Nonce is de ned by the following operator:</title>
        <p>op n : Name Fresh -&gt; Nonce [frozen] .
where the frozen attribute is attached following the Maude-NPA convention, which is necessary
to tell Maude not to attempt to apply rewrites at the arguments of this operator. Suppose that</p>
      </sec>
      <sec id="sec-4-3">
        <title>A and r respectively are variables of the sorts Name and Fresh, then n(A,r) denotes the nonce generated by A, where r guarantees its uniqueness. We also declare two public &amp; private encryption operators respectively as follows:</title>
        <p>op pk : Name Msg -&gt; Msg [frozen] .
op sk : Name Msg -&gt; Msg [frozen] .</p>
      </sec>
      <sec id="sec-4-4">
        <title>Let B and N be variables of the sorts Name and Nonce, respectively. The strand specifying the</title>
        <p>protocol execution from the A side is then de ned as follows:
:: r ::
[ nil | +(pk(B, A ; n(A,r))), -(pk(A, n(A,r) ; N)), +(pk(B, N)), nil ]
The strand says that initially, A generates a nonce based on the fresh r and sends it to B together
with A’s ID encrypted by B’s public key. When A receives another message whose content is their
nonce sent in the rst message and another nonce N encrypted under A’s public key (which can
be checked by using their secret key to decrypt the received ciphertext), A replies to B the new
nonce N encrypted under B’s public key. Note that :: r :: denotes the fresh r is generated in
the strand and all messages are put after the vertical bar following the Maude-NPA convention
because the vertical bar is irrelevant when specifying the protocol execution. Note also that ; is
the in x operator of messages concatenation, which is declared as follows:
op _;_ : Msg Msg -&gt; Msg [frozen] .</p>
      </sec>
      <sec id="sec-4-5">
        <title>In the same manner, the strand specifying the protocol execution from the B side can be</title>
        <p>de ned as follows:
:: r ::
[ nil | -(pk(B, A ; N)), +(pk(A, N ; n(B,r))), -(pk(B, n(B,r))), nil ]</p>
      </sec>
      <sec id="sec-4-6">
        <title>Strands are also used for the speci cation of the intruder capabilities. But in this case, such</title>
        <p>an intruder strand is limited to be in form of a sequence of negative messages (possibly empty)
followed by one positive message combining all previous variables under a function symbol.
For example, to specify the intruder capability in concatenating two arbitrary messages, we
de ne the following strand:
:: nil :: [ nil | -(M1), -(M2), +(M1 ; M2), nil ]
where M1 and M2 are variables of the sort Msg. The strand says that if the messages M1 and M2 are
available to the intruder, then the intruder can produce the message M1 ; M2.</p>
        <sec id="sec-4-6-1">
          <title>4.2. Hybrid PQ TLS formal specification</title>
          <p>4.2.1. KEM specification
A key encapsulation mechanism is a tuple of algorithms (KeyGen, Encaps, Decaps) along with a
nite key space K:
• KeyGen() ! (pk, sk): A probabilistic key generation algorithm that outputs a public key
pk and a secret key sk.
• Encaps(pk) ! (c, k): A probabilistic encapsulation algorithm that takes as input a public
key pk, and outputs an encapsulation (or ciphertext) c and a shared key k 2 K .
• Decaps(c, sk) ! k: A (usually deterministic) decapsulation algorithm that takes as inputs
a ciphertext c and a secret key sk, and outputs a shared key k 2 K .</p>
        </sec>
      </sec>
      <sec id="sec-4-7">
        <title>A KEM is ✏-correct if for all (pk, sk)</title>
        <p>KeyGen() and (c, k)</p>
      </sec>
      <sec id="sec-4-8">
        <title>Encaps(pk), it holds that:</title>
        <p>Pr[Decaps(c, sk) 6= k]  ✏</p>
      </sec>
      <sec id="sec-4-9">
        <title>In this paper, we assume that all KEMs are 0-correct, which means that Encaps and Decaps</title>
        <p>always correctly return the same shared key k. Idealizing assumptions like that are typically
necessary when conducting security analysis in the symbolic model. Furthermore, because a</p>
      </sec>
      <sec id="sec-4-10">
        <title>Decaps-failure probability is really small, typically almost 0, we are not over-idealizing when</title>
        <p>
          omitting such Decaps-failure cases. For example, with Kyber, that failure probability is below
2 140 [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ], i.e., Kyber is ✏-correct with ✏ &lt; 2 140.
        </p>
      </sec>
      <sec id="sec-4-11">
        <title>To model KEMs in Maude-NPA, we rst introduce PqSk, PqPk, Cipher, and PqKey sorts to represent secret keys, public keys, encapsulations, and shared keys, respectively. The sort PqSk is speci ed as follows:</title>
        <p>op pqSk : Name Fresh -&gt; PqSk [frozen] .</p>
      </sec>
      <sec id="sec-4-12">
        <title>The argument of the sort Fresh ensures the uniqueness of secret keys, while the argument of</title>
        <p>the sort Name is not strictly necessary, but it is convenient for identifying the owner of a key.</p>
      </sec>
      <sec id="sec-4-13">
        <title>The Decaps algorithm is straightforwardly declared as follows:</title>
        <p>op decap : Cipher PqSk -&gt; PqKey [frozen] .</p>
        <p>Unlike Decaps, it is a bit tricky to specify the KeyGen and Encaps procedures because they are
probabilistic algorithms. For each of the two procedures, we add an argument of the sort PqSk
to make them become deterministic procedures. With the Encaps procedures, we declare two
separate Maude operators: encapCipher and encapKey that return the ciphertext c and the key
k, respectively. We declare the following operators:
op pqPk : PqSk -&gt; PqPk [frozen] .
op encapCipher : PqPk PqSk -&gt; Cipher [frozen] .
op encapKey : PqPk PqSk -&gt; PqKey [frozen] .</p>
        <p>The rst operator models the KeyGen procedure, while the two others model the Encaps
procedure. The algebraic properties of KEMs are then speci ed as follows:
op $pqKey : PqSk PqSk -&gt; PqKey [frozen] .
eq encapKey(pqPk(S:PqSk), S2:PqSk) = $pqKey(S:PqSk, S2:PqSk) [variant] .
eq decap(encapCipher(pqPk(S:PqSk),S2:PqSk), S:PqSk)</p>
        <p>
          = $pqKey(S:PqSk, S2:PqSk) [variant] .
where the variant attribute denotes that the two equations are not regular Maude equations
used for simpli cation, but are equations used for variant-based equational uni cation [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ].
Here we introduce one more operator, namely $pqKey, which is necessary for specifying the
rewritings of encapKey and decap (Encaps and Decaps steps) on proper arguments resulting in
the same key. The rst equation can be straightforwardly comprehended. The second equation
states that given an encapsulation en and a secret key sk, a principal can perform Decaps(en, sk)
to get the proper shared key only if en is the result of Encaps when taking as input the public
key associated with the secret key sk.
4.2.2. ECDH and key calculation specification
        </p>
      </sec>
      <sec id="sec-4-14">
        <title>To model ECDH in Maude-NPA, we rst introduce the following sorts:</title>
        <p>sort Scalar Point ECKey .
subsort Point &lt; ECKey .</p>
      </sec>
      <sec id="sec-4-15">
        <title>The sort Point represents points on the curve, which serve as ECDH public keys. The sort Scalar and ECKey represents the secret keys and shared keys, respectively. We then declare the following operators:</title>
        <p>op p : -&gt; Point .
op sk : Name Fresh -&gt; Scalar [frozen] .
op gen : Point Scalar -&gt; Point [frozen] .
op _*_ : Scalar Scalar -&gt; Scalar [frozen assoc comm] .
The constant p denotes a point generator on the curve, which is publicly known by everyone
including the intruder. The operator sk takes as inputs a principal name and a fresh, and outputs
a scalar, which serves as a secret key. The operator gen takes as inputs a point and a (secret)
scalar and returns as output another point. In particular, when the rst argument is a point
generator, the operator outputs a public key, which is used to send to the other peer; and when
the rst argument is a public key received from the opposite peer, the operator outputs a shared
key. The last operator is the associative-commutative multiplication operation on scalars, thanks
to the Maude attributes assoc and comm. The algebraic property of ECDH is then speci ed as
follows:</p>
        <p>Sorts PreMasterSecret and MasterSecret are introduced to represent premaster secrets and
master secrets in the protocol key calculation. We then model their calculations with the
following operators:
op pms : ECKey PqKey -&gt; PreMasterSecret [frozen] .
op ms : PreMasterSecret Rand Rand Point Cipher -&gt; MasterSecret [frozen] .
where the sort Rand represents random numbers generated by clients and servers. A pre-master
secret is the concatenation of an ECDH shared secret and a PQ KEM shared secret. Whereas, a
master secret is computed by the pseudorandom function (PRF) from a pre-master secret and a
seed, which is the combination of the two random numbers in the ClientHello and ServerHello
messages and the ECDH public key &amp; PQ encapsulation in the ClientKeyExchange message
sent in that session.
4.2.3. Honest principal specification
We use three operators rd, sess, and cert that serve as functions to produce random numbers,
session IDs, and digital certi cates, respectively. We also de ne operators sig and enc re ecting
the signature and encryption functions. All of them are as follows:
op rd : Name Fresh -&gt; Rand [frozen] .
op sess : Name Fresh -&gt; Session [frozen] .
op cert : Name -&gt; Cert [frozen] .
op sig : Name Msg -&gt; Msg [frozen] .
op enc : MasterSecret Msg -&gt; Msg [frozen] .</p>
        <p>With a server S, a message M, and a master-secret MS, enc(MS,M) denotes the ciphertext obtained
by encrypting M by MS, while sig(S,M) denotes the signature over message M signed by the
longterm private key of server S. By using a name as an argument of the signature algorithm instead
of explicit private key encryption (for example, sig(priKey(S),M)), we implicitly associate a
long-term private key with its owner’s name. For the sake of simplicity and for reducing the
size of the state space, cert(S) is used to denote the digital certi cate of the server S, while in
fact, the certi cate must contain information about the trusted certi cate authority and the
public key of S. By using that simpli cation form, we explicitly associate a certi cate with its
owner’s name and ignore the case when the intruder tries to fake a certi cate.</p>
      </sec>
      <sec id="sec-4-16">
        <title>Let r1, r2, and r3 be variables of the sort Fresh; C and S be variables of the sort Name; N and</title>
      </sec>
      <sec id="sec-4-17">
        <title>SS be variables of the sorts Rand and Session, respectively; PK1 and PK2 be variables of the sorts</title>
      </sec>
      <sec id="sec-4-18">
        <title>Point and PqPk, respectively. The execution of the Hybrid PQ TLS protocol up to the client’s</title>
        <p>Finished message from a client’s side is speci ed as follows:
:: r1,r2,r3 ::
[ nil |
+(ch ; rd(C,r1)),
-(sh ; N ; SS),
-(sc ; cert(S)),
-(ske ; PK1 ; PK2 ; sig(S, PK1 ; PK2 ; rd(C,r1) ; N)),
+(cke ; gen(p,sk(C,r2)) ; encapCipher(PK2, pqSk(C,r3))),
+(cf ; enc(ms(pms(gen(PK1,sk(C,r2)), encapKey(PK2, pqSk(C,r3))),</p>
        <p>rd(C,r1), N, gen(p,sk(C,r2)), encapCipher(PK2, pqSk(C,r3))),
(ch ; rd(C,r1)) ++
(sh ; N ; SS) ++
(sc ; cert(S)) ++
(ske ; PK1 ; PK2 ; sig(S, PK1 ; PK2 ; rd(C,r1) ; N)) ++
(cke ; gen(p,sk(C,r2)) ; encapCipher(PK2, pqSk(C,r3))))
where ch, sh, sc, ske, cke, and cf are constants of the sort Msg, which are acronyms of
ClientHello, ServerHello, Server Certificate, ServerKeyExchange, ClientKeyExchange, and
client’s Finished. The ++ operator denotes message concatenation. The strand says that the
client starts a new connection by sending a ClientHello message with a random number denoted
by rd(C,r1). When the client receives back a ServerHello message, a valid server Certificate
message, and a valid ServerKeyExchange message with ECDH and PQ public keys by means of</p>
      </sec>
      <sec id="sec-4-19">
        <title>PK1 and PK2, the client will send a ClientKeyExchange message with the client’s ECDH public</title>
        <p>key exchange and the encapsulation computed with PK2 as one of the inputs. Together with
that message, the client also sends a Finished message, whose content is derived by encrypting
the concatenation of all messages exchanged so far (denoted by ++) under the master secret key.</p>
      </sec>
      <sec id="sec-4-20">
        <title>Note that for the sake of simplicity and for reducing the size of the state space, here we use</title>
        <p>the master secret as the symmetric key for encryption of the Finished message, but actually in
the protocol design, such a symmetric key is computed by the PRF function from the master
secret and the two random numbers in the ClientHello and ServerHello messages. In addition,
we also suppose that client authentication is not requested, we eliminate ServerHelloDone &amp;</p>
      </sec>
      <sec id="sec-4-21">
        <title>ChangeCipherSpec messages, and some parameters in the Hello messages such as protocol</title>
        <p>version, cipher suites, and PQ KEMs parameters are excluded. Note also that the use of ++ is
unnecessary. For example, based on the de nition of _++_, (ch ; rd(C,r1)) ++ (sh ; N ; SS)
is rewritten to (ch ; rd(C,r1) ; sh ; N ; SS), so we can exclude the use of ++. However, we
de ne and keep on using it because we want to show each message separately so that readers
can easily follow.</p>
      </sec>
      <sec id="sec-4-22">
        <title>In a similar way, we specify the protocol execution from a server’s side up to the client’s</title>
        <p>Finished message by the following strand:
:: r1,r2,r3,r4 ::
[ nil |
-(ch ; N),
+(sh ; rd(S,r1) ; sess(S,r2)),
+(sc ; cert(S)),
+(ske ; gen(p,sk(S,r3)) ; pqPk(pqSk(S,r4)) ;</p>
        <p>sig(S, gen(p,sk(S,r3)) ; pqPk(pqSk(S,r4)) ; N ; rd(S,r1))),
-(cke ; PK1 ; CP),
-(cf ; enc(ms(pms(gen(PK1,sk(S,r3)), decap(CP, pqSk(S,r4))),</p>
        <p>N, rd(S,r1), PK1, CP),
(ch ; N) ++
(sh ; rd(S,r1) ; sess(S,r2)) ++
(sc ; cert(S)) ++
(ske ; gen(p,sk(S,r3)) ; pqPk(pqSk(S,r4)) ;</p>
        <p>
          sig(S, gen(p,sk(S,r3)) ; pqPk(pqSk(S,r4)) ; N ; rd(S,r1))) ++
(cke ; PK1 ; CP))
where CP is a variable of the sort Cipher. Note that in both strands, we exclude the appearance
of the server’s Finished message because they are too long to show all. Readers can nd the
complete speci cation from the webpage provided in Section 1.
4.2.4. Intruder capabilities
Maude-NPA uses the standard Dolev-Yao intruder model [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ], that is the intruder can, for example,
intercept and glean information from any message in the network; fake, synthesize, and send
messages based on the gleaned information. Similar to the capability in concatenation messages
presented in Section 4.1, we specify the deconcatenation message capability for the intruder as
follows:
:: nil :: [ nil | -(M1 ; M2), +(M1), nil ] &amp;
:: nil :: [ nil | -(M1 ; M2), +(M2), nil ] &amp;
        </p>
      </sec>
      <sec id="sec-4-23">
        <title>The intruder can generate by himself/herself any random number and any point serving as an ECDH private key exchange:</title>
        <p>:: r :: [ nil | +(rd(i,r)), nil ] &amp;
:: r :: [ nil | +(sk(i,r)), nil ] &amp;</p>
      </sec>
      <sec id="sec-4-24">
        <title>Note that these two strands consume some fresh r.</title>
      </sec>
      <sec id="sec-4-25">
        <title>For KEMs, if there are some public key PK2, secret key SK, and encapsulation CP that are available to the intruder, then the intruder can derive some appropriate encapsulations and keys as follows:</title>
        <p>:: nil :: [ nil | -(PK2), -(SK), +(encapCipher(PK2,SK)), nil ] &amp;
:: nil :: [ nil | -(PK2), -(SK), +(encapKey(PK2,SK)), nil ] &amp;
:: nil :: [ nil | -(CP), -(SK), +(decap(CP,SK)), nil ] &amp;</p>
        <p>With ECDH, an important assumption we suppose is that the intruder can break the key
exchange security by utilizing the power of quantum computation. That is, if the intruder
knows the two ECDH public keys exchanged between a client and a server, then the intruder
can derive the shared secret key. This is done by the following strand:
:: nil :: [ nil | -(gen(p,K1)), -(gen(p,K2)), +(gen(p,K1 * K2)), nil ]
where K1 and K2 are variables of Scalar.</p>
      </sec>
      <sec id="sec-4-26">
        <title>There are also some more strands specifying the intruder capabilities, but we omit to present all of them here. Again, readers can nd them from the webpage presented in Section 1.</title>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>5. Related work</title>
      <sec id="sec-5-1">
        <title>Hülsing et al. [14] have veri ed the security of their proposed post-quantum WireGuard (PQ</title>
        <p>
          WireGuard) protocol [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ]. This is a quantum-resistant version of the WireGuard protocol [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ],
which is a lightweight and high-performance VPN protocol. The veri cation con rms that
the protocol enjoys the desired security properties inherited from the WireGuard protocol and
also resists attacks using a large-scale quantum computer. The veri cation used the Tamarin
prover [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ], which is known as one of the state-of-the-art formal veri cation tools for symbolic
analysis of cryptographic protocols. Similar to Maude-NPA, they have rst symbolically modeled
the primitives, messages, etc. used in the protocol as function symbols and terms, and then
speci ed the desired security properties. However, unlike Maude-NPA, several commonly used
primitives are pre-de ned as built-in functions in Tamarin, such as the Di e-Hellman key
exchange algorithm, symmetric and asymmetric encryption, hashing, and digital signatures,
while Maude-NPA leaves all of these de nitions to human users. To prove the protocol enjoys
the desired properties, they also introduced some auxiliary lemmas, which are also needed to
prove. Conjecturing lemmas, however, is one of the most intellectual tasks in formal veri cation,
which is not a new issue in the theorem proving eld.
        </p>
        <p>Using some additional lemmas to complete veri cation in Tamarin is called the interactive
mode, distinguishing it from the fully automated mode. This way of veri cation is useful
when the tool fails to prove properties in the fully automated mode or the time taken is too
long. Tamarin operates based on multiset rewriting and its veri cation algorithm is based
on constraint solving. Similar to Maude-NPA, the tool can handle an unbounded number of
sessions (executions) of protocols. Once the tool terminates, it returns either proof of security
correctness or an attack. A Tamarin speci cation is essentially a state machine where each
state is a multiset of facts. Transitions between states are de ned by rules. Rules specify the
protocol execution, the behavior of honest parties as well as the capabilities of the intruder.
A security property is modeled as a trace property, and then Tamarin checks the satis ability
and/or the validity of the property. If it is the validity checking, Tamarin rst converts it to
checking the satis ability of the negated formula formalizing the property. Constraint solving
is then used to perform an exhaustive, symbolic search for executions with the trace until a
satisfying trace is found or no more rewrite rules can be applied. Roughly speaking, the negation
of the formula formalizing the validity property in Tamarin corresponds to the attack pattern
in Maude-NPA, and the satisfying trace, if found, in Tamarin corresponds to the initial state, if
found, in Maude-NPA.</p>
        <p>
          Cremers et al. [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ] have presented a comprehensive security analysis of TLS 1.3 [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ], precisely,
the TLS 1.3 draft 21 release candidate. They used the Tamarin tool to verify the claimed security
requirements, which were stated in the draft, with respect to a Dolev-Yao intruder. Their
analysis considers all the possible interactions of the available handshake modes in TLS 1.3,
such as pre-shared key (PSK) based resumption and zero round trip time (0-RTT), which are
new mechanisms only available from version 1.3. Similar to the work in [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ], to complete the
security veri cation, they have conjectured a number of auxiliary lemmas, with some manual
interaction in the Tamarin interactive mode.
        </p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>6. Conclusion</title>
      <sec id="sec-6-1">
        <title>This paper has presented a formal speci cation of the Hybrid PQ TLS protocol in Maude-NPA,</title>
        <p>which is the rst step toward conducting a security analysis of the protocol with Maude-NPA.</p>
      </sec>
      <sec id="sec-6-2">
        <title>In the next step, from the formal speci cation, we are going to specify the attack states and</title>
        <p>
          execute experiments to check the satis ability of the secrecy property and the authentication
property. In addition to the original Maude-NPA, we are also going to use a parallel version
of Maude-NPA [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ] for the experiments to make the best use of multicore architectures, for
which we strongly believe that a better running performance than the original one in terms of
veri cation time will be obtained.
        </p>
      </sec>
      <sec id="sec-6-3">
        <title>To prepare for the quantum computing era, which may become in a near future, security</title>
        <p>analysis by formal methods is necessary to verify and construct secure post-quantum
cryptosystems. Security veri cation by Maude-NPA is fully automated, that is no manual e ort is
required once the formal speci cation and the attack pattern are provided, but it may take a
quite long time if the state space of the system under veri cation is huge (i.e., state explosion).</p>
      </sec>
      <sec id="sec-6-4">
        <title>Therefore, regarding the long-term future work, we are also interested in formal veri cations</title>
        <p>
          of post-quantum cryptographic protocols using some interactive approaches that take less time
but often require some manual human user e ort. CafeOBJ/proof score approach [
          <xref ref-type="bibr" rid="ref18 ref19">18, 19</xref>
          ] is a
promising way, for which we plan to use it to tackle the formal veri cation of the Hybrid PQ
        </p>
      </sec>
      <sec id="sec-6-5">
        <title>TLS protocol.</title>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>P.</given-names>
            <surname>Shor</surname>
          </string-name>
          ,
          <article-title>Algorithms for quantum computation: discrete logarithms and factoring</article-title>
          ,
          <source>in: Proceedings 35th Annual Symposium on Foundations of Computer Science</source>
          ,
          <year>1994</year>
          , pp.
          <fpage>124</fpage>
          -
          <lpage>134</lpage>
          . doi:
          <volume>10</volume>
          .1109/SFCS.
          <year>1994</year>
          .
          <volume>365700</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>M.</given-names>
            <surname>Campagna</surname>
          </string-name>
          , E. Crockett,
          <article-title>Hybrid Post-Quantum Key Encapsulation Methods (PQ KEM) for Transport Layer Security 1.2 (TLS), RFC</article-title>
          , RFC Editor,
          <year>2021</year>
          . URL: https://datatracker.ietf. org/doc/html/draft-campagna
          <article-title>-tls-bike-sike-hybrid.</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>J.</given-names>
            <surname>Bos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Ducas</surname>
          </string-name>
          , E. Kiltz,
          <string-name>
            <given-names>T.</given-names>
            <surname>Lepoint</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Lyubashevsky</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. M.</given-names>
            <surname>Schanck</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Schwabe</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Seiler</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Stehle</surname>
          </string-name>
          , CRYSTALS - Kyber
          <string-name>
            <surname>: A CCA-Secure Module-Lattice-Based</surname>
            <given-names>KEM</given-names>
          </string-name>
          , in: 2018 IEEE European Symposium on Security and
          <string-name>
            <surname>Privacy (EuroS P)</surname>
          </string-name>
          ,
          <year>2018</year>
          , pp.
          <fpage>353</fpage>
          -
          <lpage>367</lpage>
          . doi:
          <volume>10</volume>
          .1109/ EuroSP.
          <year>2018</year>
          .
          <volume>00032</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>R.</given-names>
            <surname>Azarderakhsh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Campagna</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Costello</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Feo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Hess</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Jalali</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Jao</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Koziel</surname>
          </string-name>
          , B. LaMacchia,
          <string-name>
            <given-names>P.</given-names>
            <surname>Longa</surname>
          </string-name>
          , et al.,
          <source>Supersingular isogeny key encapsulation</source>
          (
          <year>2020</year>
          ). URL: https://sike.org/ les/SIDH-spec.pdf .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>N.</given-names>
            <surname>Aragon</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Barreto</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Bettaieb</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Bidoux</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Blazy</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.-C.</given-names>
            <surname>Deneuville</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Gaborit</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Gueron</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Güneysu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C. A.</given-names>
            <surname>Melchor</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Misoczki</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Persichetti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Sendrier</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.-P.</given-names>
            <surname>Tillich</surname>
          </string-name>
          , G. Zémor, Bike:
          <article-title>Bit ipping key encapsulation - round 3 submission, 2019</article-title>
          . URL: https://bikesuite. org/ les/v4.2/BIKE_Spec.
          <year>2021</year>
          .
          <volume>09</volume>
          .29.1.pdf .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>D.</given-names>
            <surname>Dolev</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. C.</given-names>
            <surname>Yao</surname>
          </string-name>
          ,
          <article-title>On the security of public key protocols</article-title>
          ,
          <source>IEEE Trans. Inf. Theory</source>
          <volume>29</volume>
          (
          <year>1983</year>
          )
          <fpage>198</fpage>
          -
          <lpage>207</lpage>
          . doi:
          <volume>10</volume>
          .1109/TIT.
          <year>1983</year>
          .
          <volume>1056650</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>F. J.</given-names>
            <surname>Thayer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. C.</given-names>
            <surname>Herzog</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. D.</given-names>
            <surname>Guttman</surname>
          </string-name>
          ,
          <article-title>Strand spaces: Why is a security protocol correct?</article-title>
          , in: Security and Privacy - 1998
          <source>IEEE Symposium on Security and Privacy</source>
          , Oakland, CA, USA, May 3-
          <issue>6</issue>
          ,
          <year>1998</year>
          , Proceedings, IEEE Computer Society,
          <year>1998</year>
          , pp.
          <fpage>160</fpage>
          -
          <lpage>171</lpage>
          . doi:
          <volume>10</volume>
          .1109/SECPRI.
          <year>1998</year>
          .
          <volume>674832</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>S.</given-names>
            <surname>Meier</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Schmidt</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Cremers</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Basin</surname>
          </string-name>
          ,
          <article-title>The TAMARIN Prover for the Symbolic Analysis of Security Protocol</article-title>
          , in: N.
          <string-name>
            <surname>Sharygina</surname>
          </string-name>
          , H. Veith (Eds.), Computer Aided Veri cation, Springer Berlin Heidelberg, Berlin, Heidelberg,
          <year>2013</year>
          , pp.
          <fpage>696</fpage>
          -
          <lpage>701</lpage>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>642</fpage>
          -39799-8_
          <fpage>48</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>M.</given-names>
            <surname>Clavel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Durán</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Eker</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Lincoln</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Martí-Oliet</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Meseguer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C. L.</given-names>
            Talcott (Eds.),
            <surname>All About Maude - A High-Performance Logical</surname>
          </string-name>
          <string-name>
            <surname>Framework</surname>
          </string-name>
          , How to Specify,
          <source>Program and Verify Systems in Rewriting Logic</source>
          , volume
          <volume>4350</volume>
          of Lecture Notes in Computer Science, Springer,
          <year>2007</year>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>540</fpage>
          -71999-1.
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>J.</given-names>
            <surname>Meseguer</surname>
          </string-name>
          ,
          <article-title>Twenty years of rewriting logic</article-title>
          , in: P. C. Ölveczky (Ed.),
          <source>Rewriting Logic and Its Applications</source>
          , Springer Berlin Heidelberg, Berlin, Heidelberg,
          <year>2010</year>
          , pp.
          <fpage>15</fpage>
          -
          <lpage>17</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <surname>C. M. Do</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Riesco</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Escobar</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          <article-title>Ogata, Parallel Maude-NPA for cryptographic protocol analysis</article-title>
          , in: K. Bae (Ed.),
          <source>Rewriting Logic and Its</source>
          Applications - 14th
          <source>International Workshop, WRLA@ETAPS</source>
          <year>2022</year>
          , Munich, Germany, April 2-
          <issue>3</issue>
          ,
          <year>2022</year>
          , Revised Selected Papers, volume
          <volume>13252</volume>
          of Lecture Notes in Computer Science, Springer,
          <year>2022</year>
          , pp.
          <fpage>253</fpage>
          -
          <lpage>273</lpage>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>031</fpage>
          -12441-9_
          <fpage>13</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>S.</given-names>
            <surname>Escobar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Sasse</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Meseguer</surname>
          </string-name>
          ,
          <article-title>Folding variant narrowing and optimal variant termination</article-title>
          , in: P. C. Ölveczky (Ed.),
          <source>Rewriting Logic and Its Applications</source>
          , Springer Berlin Heidelberg, Berlin, Heidelberg,
          <year>2010</year>
          , pp.
          <fpage>52</fpage>
          -
          <lpage>68</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <surname>R. M. Needham</surname>
            ,
            <given-names>M. D.</given-names>
          </string-name>
          <string-name>
            <surname>Schroeder</surname>
          </string-name>
          ,
          <article-title>Using Encryption for Authentication in Large Networks of Computers, Commun</article-title>
          . ACM
          <volume>21</volume>
          (
          <year>1978</year>
          )
          <fpage>993</fpage>
          -
          <lpage>999</lpage>
          . doi:
          <volume>10</volume>
          .1145/359657.359659.
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>A.</given-names>
            <surname>Hülsing</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Ning</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Schwabe</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Weber</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P. R.</given-names>
            <surname>Zimmermann</surname>
          </string-name>
          ,
          <article-title>Post-quantum WireGuard</article-title>
          ,
          <source>in: 2021 IEEE Symposium on Security and Privacy</source>
          ,
          <year>2021</year>
          , pp.
          <fpage>304</fpage>
          -
          <lpage>321</lpage>
          . doi:
          <volume>10</volume>
          .1109/ SP40001.
          <year>2021</year>
          .
          <volume>00030</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>J. A.</given-names>
            <surname>Donenfeld</surname>
          </string-name>
          ,
          <article-title>WireGuard: Next generation kernel network tunnel, in: 24th Annual Network and Distributed System Security Symposium</article-title>
          ,
          <string-name>
            <surname>NDSS</surname>
          </string-name>
          <year>2017</year>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>C.</given-names>
            <surname>Cremers</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Horvat</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Hoyland</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Scott</surname>
          </string-name>
          , T. van der Merwe,
          <article-title>A comprehensive symbolic analysis of TLS 1.3</article-title>
          , in:
          <source>Proceedings of the 2017 ACM SIGSAC Conference on Computer and Communications Security, ACM</source>
          ,
          <year>2017</year>
          , pp.
          <fpage>1773</fpage>
          -
          <lpage>1788</lpage>
          . doi:
          <volume>10</volume>
          .1145/3133956.3134063.
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>E.</given-names>
            <surname>Rescorla</surname>
          </string-name>
          ,
          <source>The Transport Layer Security (TLS) Protocol Version 1.3, RFC 8446</source>
          ,
          <year>2018</year>
          . doi:
          <volume>10</volume>
          .17487/RFC8446.
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>K.</given-names>
            <surname>Ogata</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Futatsugi</surname>
          </string-name>
          ,
          <article-title>Compositionally Writing Proof Scores of Invariants in the OTS/CafeOBJ Method</article-title>
          ,
          <source>J. Univers. Comput. Sci</source>
          .
          <volume>19</volume>
          (
          <year>2013</year>
          )
          <fpage>771</fpage>
          -
          <lpage>804</lpage>
          . doi:
          <volume>10</volume>
          .3217/ jucs-019-06-0771.
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>K.</given-names>
            <surname>Ogata</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Futatsugi</surname>
          </string-name>
          ,
          <article-title>Proof scores in the OTS/CafeOBJ method</article-title>
          ,
          <source>in: FMOODS</source>
          <year>2003</year>
          ,
          <year>2003</year>
          , pp.
          <fpage>170</fpage>
          -
          <lpage>184</lpage>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>540</fpage>
          -39958-2_
          <fpage>12</fpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>