Internet Engineering Task Force C. Tjhai Internet-Draft M. Tomlinson Intended Status: InformationalA. ChengPost-Quantum Expires:JanuaryJuly 19, 2018Post-QuantumG. Bartlett S. Fluhrer Cisco SystemsJuly 18, 2017 Hybrid Quantum-SafeD. Van Geest ISARA Corporation Z. Zhang Onboard Security O. Garcia-Morchon Philips January 15, 2018 Framework to Integrate Post-quantum KeyExchange forExchanges into Internet Key Exchange Protocol Version 2 (IKEv2)draft-tjhai-ipsecme-hybrid-qske-ikev2-00draft-tjhai-ipsecme-hybrid-qske-ikev2-01 Abstract This document describesthe optional key-exchange payload ofhow to extend Internet Key Exchange Protocol Version 2 (IKEv2) so thatcarries quantum-safethe shared secret exchanged between peers has resistance against quantum computer attacks. The basic idea is to exchange one or more post quantum key exchangedata. This optional payload is usedpayloads in conjunction with the existing (Elliptic Curve) Diffie-Hellmankey exchange to establish a quantum-safe shared secret between an initiator and a responder. The optional payload supportspayload. This document also addresses the challenge of fragmentation as anumberresult ofquantum-safesending large post quantum key exchangeschemes.data in the first pair of message of the initial exchange phase. Status of This Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at http://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." This Internet-Draft will expire onDecember 21, 2017.July 19, 2018. Copyright Notice Copyright (c)20172018 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . .23 1.1. Problem Description . . . . . . . . . . . . . . . . . . .23 1.2. Proposed Extension . . . . . . . . . . . . . . . . . . . . 3 1.3.TerminologyChanges . . . . . . . . . . . . . . . . . . . . . . .3. . 4 1.4. Document organization . . . . . . . . . . . . . . . . . . 4 2. Design criteria . . . . . . . . . . . . . . . . . . . . . . . 5 3. The Framework of HybridQuantum-SafePost-quantum Key Exchange . . . . . . 6 3.1. Overall design . . . . . . . . .4 2.1. Quantum-Safe Group Transform Type. . . . . . . . . . . .4 2.2. IKE_SA_INIT Exchange. 6 3.2. Overall Protocol . . . . . . . . . . . . . . . . . .5 2.3. CREATE_CHILD_SA Exchange. . . 7 3.2.1. First Protocol Round . . . . . . . . . . . . . .6 2.3.1. New Child SAs from the CREATE_CHILD_SA Exchange. . . 72.3.2. Rekeying IKE SAs with the CREATE_CHILD_SA Exchange3.2.2. Second Protocol Round . .8 2.3.3. Rekeying. . . . . . . . . . . . . . 10 3.2.3. ChildSAs withSA Negotiation . . . . . . . . . . . . . . . . . 11 3.3. Computation of a Post-Quantum Shared Secret . . . . . . . 12 3.4. Post-Quantum Group Transform Type and Group Identifiers . 12 3.5. Hybrid Group Negotiation . . . . . . . . . . . . . . . . . 13 3.5.1. Protocol for theCREATE_CHILD_SA ExchangeInitiator .8 2.4. QSKE Payload Format. . . . . . . . . . . . . 14 3.5.2. Protocol from the Responder . . . . . . .9 3. Design Rationale. . . . . . . 17 3.6. Fragmentation Support . . . . . . . . . . . . . . . .10 3.1. Threat Categories. . 19 3.6.1. Fragmentation Problem Description . . . . . . . . . . 19 3.6.2. Fragmentation Solution . . . . . . . .10 3.2. Dealing with. . . . . . . . 19 3.6.2.1. Fragmentation Pointer Payload . . . . . . . . . . 19 3.6.2.2. Fragmentation Body Payload . . . . . .11 3.3. Removal of the Diffie-Hellman exchange. . . . . . 20 3.6.2.3. Fragmentation Semantics . . . .12 4. Security Considerations. . . . . . . . . 23 3.6.2.4. IKE AUTH Processing . . . . . . . . . .12 5. IANA Considerations. . . . . 24 3.6.2.5. Design Rationale . . . . . . . . . . . . . . . .13 6. References. 25 3.7. Protection against Downgrade Attacks . . . . . . . . . . . 25 4. Alternative Design . . . . . . . . . . . . . . .14 Appendix A. Quantum-safe Ciphers. . . . . . . 28 5. Security considerations . . . . . . . . . . . . . . . . . . . 31 6. References . . . . . . . . . . .16 Appendix A.1. Ring Learning With Errors. . . . . . . . . . . . .16 Appendix A.2. NTRU Lattices. . 33 Acknowledgements . . . . . . . . . . . . . . . . .21. . . . . . . . 34 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . .2235 1. Introduction 1.1. Problem Description Internet Key Exchange Protocol (IKEv2) as specified in RFC 7296 [RFC7296] uses the Diffie-Hellman (DH) or Elliptic Curve Diffie- Hellman (ECDH) algorithm[DH]to establish a shared secret between an initiator and a responder. The security of theDiffie-Hellman algorithmDH and ECDH algorithms relies on the difficulty to solve a discrete logarithm problem in multiplicative and elliptic curve groups respectively when the order of the group parameter is large enough. While solving such a problem remains difficult with current computing power, it is believed that general purpose quantum computerscan easily crackwill be able to solve this problem, implying that the security of IKEv2 is compromised. There are, however, a number of cryptosystems that are conjectured to be resistant against quantum computer attack. This family of cryptosystems are known as post-quantum cryptography (PQC). It is sometime also referred to as quantum-safe cryptography (QSC) or quantum-resistant cryptography (QRC). 1.2. Proposed Extension This document describes amethodframework toextendintegrate QSC for IKEv2, whilst maintaining backwards compatibility, toperform keyexchange a shared secret such thatis robust againstit has resistance to quantumcomputers. The idea iscomputer attacks. Our framework allows the negotiation of one or more QSC algorithm touse an optional keyexchangepayload using a quantum-safe key exchange algorithm,data, in addition to the existingDiffie-HellmanDH or ECDH keyexchange.exchange data. We believe that the feature of using more than one post quantum algorithm is important as many of these algorithms are relatively new and there may be a need to hedge the security risk with multiple key exchange data from several distinct QSC algorithms. The secrets established from each key exchange are combined in a way such that should thequantum-safe secretpost quantum secrets not be present, the derived shared secret is equivalent to that of the standard IKEv2; on the other hand, aquantum-safepost quantum shared secret is obtained if both classical and post quantum key exchangepayloadsdata are present. Thisextensionframework also applies to key exchanges in IKE Security Associations (SAs) for Encapsulating Security Payload (ESP) [ESP] or Authentication Header (AH) [AH], i.e. Child SAs, in order to provide a stronger guarantee of forward security.The goalsOne of the key challenges in thisextension are: oframework is fragmentation handling during the first message pair of the initial exchange phase, i.e. IKE_SA_INIT. Almost all of the known PQC algorithms toallow an additionaldate have key exchangeusing a quantum-safe algorithm to be useddata size that exceeds 1K octets. When transmitted alongside other payloads, theexisting key exchange algorithm while we are transitioning to a post-quantum era; o to keeptotal payload size could easily exceed themodificationscommon maximum transmission unit (MTU) size of 1500 octets, and hence this may lead to IP level fragmentation. While IKEv2tohas aminimum whilst maintaining compatibility with IKEv2; and omechanism toprovidehandle fragmentation [RFC7383], it is applicable to messages exchanged after IKE_SA_INIT. Of course, fragmentation will not be an issue if messages are sent over TCP [RFC8229]; however, we believe that apathUDP-based solution will also be required. This document describes a simple mechanism tophase outfragment IKE_SA_INIT messages, which also allows exchanges for payload larger than 65,535 octets. Note that readers should consider theexisting Diffie-Hellman key exchangeapproach in this document as providing a long term solution in upgrading thefuture. ItIKEv2 protocol to support post quantum algorithms. A short term solution to make IKEv2 key exchange quantum secure isexpected that implementers ofto use post quantum pre-shared keys as discussed in [FMKS]. 1.3. Changes Changes in thisspecification are familiar with IKEv2 [RFC7296], and are knowledgeable about quantum-safe cryptosystems,draft inparticulareach version iterations. draft-tjhai-ipsecme-hybrid-qske-ikev2-00 o We added a feature to allow more than one post quantum key exchangemechanismsalgorithms to be negotiated andkeyused to exchange a post- quantum shared secret. o Instead of relying on TCP encapsulationmechanisms instantiatedto deal withpublic-key encryption.IP level fragmentation, we introduced a new key exchange payload that can be sent as multiple fragments within IKE_SA_INIT message. 1.4. Document organization The remainder of this document is organized as follows.Subsection 1.3 provides an overview of the terminology and the abbreviations used in this document.Section 2specifiessummarizes design criteria. Section 3 describes howquantum-safepost-quantum key exchange is performed between two IKEpeers andpeers, how keying materials are derivedin both IKEandChild SAs. The rationale behind the approach of this extensionhow downgrade attack isdescribedprevented. This section also specifies we handle fragmentation in IKE_SA_INIT exchanges. A number of alternative designs to Section3.3, which we have considered but not adopted, are discussed in Section44. Lastly, Section 5 discusses security considerations.Section 5 describes IANA considerations for the name spaces introduced in this document. This is followed by a list of cited references and the authors' contact information. 1.3. TerminologyThe keywords MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, SHOULD NOT, RECOMMENDED, MAY, and OPTIONAL, when they appear in this document, are to be interpreted as described in RFC 2119 [RFC2119].In addition to using2. Design criteria The design of theterms defined inproposed post-quantum IKEv2[RFC7296], this document usesis driven by the followinglist of abbreviations: KEM: It standscriteria: 1) Need for post-quantum cryptography in IPsec. Quantum computers might become feasible in the next 5-10 years. If current Internet communications are monitored and recorded today (D), the communications could be decrypted as soon as a quantum- computer is available (e.g., year Q) if keyencapsulation mechanism whereby key materialnegotiation only relies on non post-quantum primitives. This istransported usingapublic-key algorithm. QSKE: Denoteshigh threat for any information that must remain confidential for aquantum-safelong period of time T > Q-D. The need is obvious if we assume that Q is 2040, D is 2020, and T is 30 years. Such a value of T is typical in classified or healthcare data. 2) Hybrid. Currently, there does not exist a post-quantum key exchangepayload,that is trusted at the level that ECDH is trusted against conventional (non-quantum) adversaries. A hybrid approach allows introducing promising post-quantum candidates next to well-established primitives, since the overall security is at least as strong as each individual primitive. 3) Focus on quantum-resistant confidentiality. A passive attacker can eavesdrop IPsec communication today and decrypt it once a quantum computer is available in the future. This is a very serious attack for which we do not have a solution. An attacker can only perform active attacks such as impersonation of the communicating peers once a quantum computer issimilaravailable, sometime in the future. Thus, our design focuses on quantum- resistant confidentiality due toKey Exchange (KE) payload. QSSS: Denotesthe urgency of this problem. This document does not address quantum-resistant authentication since it is less urgent at this stage. 4) Limit amount of exchanged data. The protocol design should be such that the amount of exchanged data, such as public-keys, is kept as small as possible even if initiator and responder need to agree on aquantum-safe shared secret (QSSS) established from QSKEihybrid group or multiple public-keys need to be exchanged. 5) Future proof. Any cryptographic algorithm could be potentially broken in the future by currently unknown or impractical attacks: quantum computers are merely the most concrete example of this. The design does not categorize algorithms as "post- quantum" or "non post-quantum" andQSKEr payloads.does not create assumptions about the properties of the algorithms, meaning that if algorithms with different properties become necessary in future, this framework can be used unchanged to facilitate migration to those algorithms. 6) Identification of hybrid algorithms. The usage of a hybrid approach in which each hybrid combination of several classical and post-quantum algorithms leads to a different group identifier can lead to an exponential number of combinations. Thus, the design should seek an approach in which a hybrid group -- comprising multiple post-quantum algorithms -- can be efficiently negotiated. 7) Limited amount of changes. A key goal is to limit the number of changes required when enabling a post-quantum handshake. Thisentityensures easier and quicker adoption in existing implementations. 8) Localized changes. Another key requirement issimilarthat changes to theDiffie-Hellman shared secret g^ir as definedprotocol are limited inRFC 7296. Q-S Group: It stands for Quantum-Safe Groupscope, in particular, limiting changes in the exchanged messages andit representsin the state machine, so that they can be easily implemented. 9) Deterministic operation. This requirement means that the hybrid post-quantum exchange, and thus, the computed key, will be based on algorithms that both client and server wish to support. 10) Fragmentation support. Some PQC algorithms could be relatively bulky and they might require fragmentation. Thus, aquantum-safe cryptography algorithmdesign goal is the adaptation and adoption of an existing fragmentation method or the design of a new method that allows for the fragmentation of the keyexchange. Each group correspondsshares. 11) Backwards compatibility and interoperability. This is a fundamental requirement toan algorithm withensure that hybrid post-quantum IKEv2 and aspecific setnon-post-quantum IKEv2 implementations are interoperable. 12) FIPS compliance. IPsec is widely used in Federal Information Systems and FIPS certification is an important requirement. However, algorithms that are believed to be post-quantum are not FIPS compliant yet. Still, the goal is that the overall hybrid post-quantum IKEv2 design can be FIPS compliant. 3. The Framework ofparameters. 2.HybridQuantum-SafePost-quantum Key Exchange 3.1. Overall design The proposed hybrid post-quantum IKEv2 protocol extends RFC7296 [RFC7296] by duplicating the initial exchange in [RFC7296]. In order to minimize communication overhead, only the key shares that are agreed to be used are actually exchanged. In order to achieve this, the IKE_SA_INIT exchange now consists of two message exchange pairs. The first pair of IKE_SA_INIT messages negotiates which classical cryptographic algorithms are to be used, along with the supported PQC algorithms by initiator and responder, and policies of the initiator that specify its requirements on a hybrid group. The second IKE_SA_INIT message pair, on the other hand, consists of each peer sending the Diffie-Hellman public value along with the post-quantum key-shares. Note that no Diffie-Hellman exchange or exchange of post-quantum key-shares is performed in the first round of IKE_SA_INIT exchange. Messages are described as message 1 for the initiator's first message, message 2 for the responder's first message, message 3 for the initiator's second message and message 4 for the responder's second message. Initiator Responder -------------------------------------------------------------- <-- First round (hybrid group negotiation) --> <-- Second round (hybrid quantum-safe key exchange) --> This hybrid post-quantum IKEv2 key exchangeoccurscan occur in IKE_SA_INIT or CREATE_CHILD_SA message pair which contains various payloads for negotiating cryptographic algorithms, exchanging nonces, and performing a Diffie-Hellman shared secret exchange for an IKE SA or a Child SA. These payloads are chained together forming a linked-list and this flexible structure allowsanadditional key exchangepayload, denoted QSKE,payloads to be introduced. The additional key exchange uses algorithms that are currently considered to be resistant to quantum computer attacks. These algorithms are collectively referred to asquantum-safepost-quantum algorithms in this document.2.1. Quantum-Safe Group Transform Type3.2. Overall Protocol Ingenerating keying materials within IKEv2, both initiator and responder negotiate up to four cryptographic algorithms intheSA payload of an IKE_SA_INIT or a CREATE_CHILD_SA exchange. One offollowing we overview thenegotiated algorithms is an ephemeral Diffie-Hellman algorithm, which is used for key-exchange. This negotiation is facilitated bytwo protocol rounds involved in theTransform Type 4 (Diffie-Hellman Group) where each Diffie-Hellman group is assigned a unique Transform ID.hybrid post-quantum protocol. 3.2.1. First Protocol Round Inorder to enable a quantum-safe key exchange in IKEv2,thevarious quantum-safe algorithms MUST be negotiated between two IKEv2 peers. Transform Type #tba (Quantum-Safe Group) isfirst round, the IKE_SA_INIT request and response messages are used tofacilitate this negotiation. It is identicalnegotiate the hybrid group. The method toTransform Type 4, except thatnegotiate and exchange post-quantum policies is achieved using thelatter dealskey exchange payload (with a Diffie-Hellman Group Num of #TBA). The KE payload withvariousgroup number #TBA does not contain Diffie-Hellmangroupsor post- quantum public values, but proposed post-quantum algorithms and the policy for the post-quantum ciphers. The initiator negotiates cryptographic suites as per RFC7296, the onlywhereasexception is, theformer handles quantum-safe algorithms only. Each quantum-safe algorithmDiffie-Hellman KE payload isassignednot populated with aunique Transform ID. Whilst allkeyshare, but rather thekey exchange algorithms in Transform Type 4 are based on Diffie-Hellman, some ofKE payload contains the proposed post-quantum algorithmsin Transform Type #tba are Diffie-Hellman-like,and policies. The Diffie-Hellman groups are negotiated in therest ofsecurity association payload as per RFC7296 and thealgorithms use key- encapsulation-mechanism (KEM). Inpublic values sent in thecasenext round ofKEM,exchange. When a responder that supports theinitiator randomly generateshybrid exchange, receives an IKE_SA_INIT message with arandom, ephemeral public and private key pair, and sendsKE payload with group number #TBA, it performs a lookup of thepublic key topolicies and algorithms contained within theresponder in QSKEiKE payload. Assuming that it supports one or more proposed post- quantum algorithms, it then indicates these in the KE payload response with group number #TBA. The respondergenerates a random entity, encrypts it usingalso selects thereceived public key, and sendscryptographic suites, including theencrypted quantity tochosen Diffie-Hellman Group Num in theinitiatorsecurity association payload as per RFC7296. In this exchange the Diffie-Hellman public value is not sent inQSKErthe KE payload. The initiatordecrypts the encryptedcan signal support of IKE_SA_INIT message fragmentation by including a payloadusing the private key. Afterfragmentation Notify payload. The responder can also include thispointNotify payload to indicate support ofthe exchange, both initiator andIKE_SA_INIT message fragmentation. The responderhavemay choose to allocate state to thesame random entity from whichsession, as thequantum-safe shared secret (QSSS) is derived. The Transform Type #tba (Quantum-Safe Group)initial message isdefined as an optional typeused inIKE, AHauthenticating the IKE SA messages. Optionally, the responder may prefer not to allocate any state andESP protocols. This transform type MUST NOT exist if there is no Transform Type 4 inreply with aproposal. For Transform Type #tba,cookie instead. The cookie can provide two functions. One being thedefined liststandard RFC7296 behaviour. The other benefit ofquantum-safe Transform IDs are listed below. Note thatusing thevalues below are only current ascookie is to provide fast detection of a downgrade attack without running into thepublication daterisk ofthis document. Readers should refer to [IKEV2IANA] forstate exhaustion attacks. Whether or not any states are allocated, thelatest values. Name Number Key exchange ------------------------------------------------------ RLWE 128 1 Diffie-Hellman-like NewHope 128 2 Diffie-Hellman-like NTRU EES743EP1 3 KEM NTRU-Prime 216 4 KEM 2.2. IKE_SA_INIT Exchange The IKE_SA_INIT request and response pairs negotiateresponder detects the post-quantum cryptographicalgorithms, exchange noncesalgorithms andperform a key exchangepolicies that do not match and can then abort the session prior to calculating the shared secrets. See Section 3.7 foran IKE SA.more information on cookie and downgrade attack prevention. Initiator Responder -------------------------------------------------------------- HDR, SAi1,KEi, [QSKEi,] NiKEi(#TBA), Ni, [N(Pay Frag)] -->The initiator sends a QSKEi payload which contains parameters needed to established a quantum-safe shared secret. The QSKEi payload is marked as OPTIONAL so<-- HDR, SAr1, KE(#TBA), Nr, [N(Pay Frag),] [N(COOKIE)] By using the KE payload, peers thatit will be ignored by a responder who doesdo notunderstand it. In this particular case,support theresponderhybrid exchange willrespond withreject the initial negotiation and assuming that aset of payloads as definedDiffie-Hellman Group Num contained inIKEv2 [RFC7296], and therefore maintainingthe Diffie-Hellman Group Transform IDs was acceptable, the peer will send an INVALID_KE_PAYLOAD message to indicate its preferred Diffie-Hellman group. Note that using the KE payload enables backward compatibility with existingimplementation. OnRFC7296 implementations. If this scenario occurs, theother hand, ifinitiator SHOULD retry theresponder implements this specification, it will respondhybrid exchange. Dependent on policies, the initiator may retry the exchange asfollows: <-- HDR, SAr1, KEr, [QSKEr,] Nr, [CERTREQ]per RFC7296, and if this occurs then the N(PQ_ALGO_POLICIES) notify payload MUST be included to prevent downgrade attacks. TheQSKErN(PQ_ALGO_POLICIES) notify payloadcompletes the quantum-safe shared secret betweencontains theinitiatorsame post-quantum algorithms andresponder. At this pointpolicies that were sent in thenegotiation, both initiator andKE(#TBA) payload in the first round of IKE_SA_INIT request. On receipt of the N(PQ_ALGO_POLICIES) payload, the responder MUST validate these post-quantum algorithms and policies against its own policies. This validation isablerequired tocompute: o a shared Diffie-Hellman secret from KEi and KEr pair, and oensure that the post- quantum algorithms were not amended in the initial exchange, resulting in aquantum-safe shared secret from QSKEi and QSKEr pair. Using these two shared secrets, each peer generates SKEYSEED, from which all keying materials for protection ofdowngrade attack. Should theIKE SA are derived. The quantity SKEYSEEDproposed post-quantum algorithms not be acceptable to the responder, the responder SHOULD indicate this by sending the INVALID_KE_PAYLOAD Notify message to indicate its preferred Diffie- Hellman group or the NO_PROPOSAL_CHOSEN Notify message if no Diffie- Hellman group were acceptable. If the classical cryptographic suite iscomputed as follows: SKEYSEED = prf(Ni | Nr, g^ir | QSSS) where prf, Ni, Nr, and g^iracceptable, but the post-quantum algorithms aredefined asnot, the responder SHOULD indicate this by specifying the preferred Diffie-Hellman group in the INVALID_KE_PAYLOAD notification. The initiator should then revert to the classical IKEv2[RFC7296]. QSSSexchange and include the N(PQ_ALGO_POLICIES) payload to prevent downgrade attacks. Below isrepresented asanoctet string. The seven secrets derived from SKEYSEED, namely SK_d, SK_ai, SK_ar, SK_ei, SK_er, SK_pi,example that shows the proposed hybrid group is not supported by the responder andSK_pr, are generated as defined in IKEv2 [RFC7296]. Becausethat theinitiator sendsresponder prefers aQSKE payload, which contains quantum- safe data,Diffie-Hellman Group 19 (P-256), assuming that this group is in theIKE_SA_INIT,list proposed (although itmust guess a Q-S groupis not preferred), in the previous message. Initiator Responder -------------------------------------------------------------- HDR, SAi1, KEi(#TBA), Ni, [N(Pay Frag)] --> <-- HDR, N(INVALID_KE_PAYLOAD, 19) HDR, SAi1, KEi(19), N(PQ_ALGO_POLICIES), --> Ni For implementations that mandate only theresponder will select from its listuse ofproposed groups. Ifhybrid exchange, these MUST not revert to using theinitiator guesses incorrectly,classical IKEv2 exchange. This should be a configurable parameter in implementations. As per RFC7296, should the responderwill respond withnot accept any of the cryptographic suites that were sent in the security association payload, aNotify payloadNO_PROPOSAL_CHOSEN message is responded, as depicted below. Initiator Responder -------------------------------------------------------------- HDR, SAi1, KEi(#TBA), Ni, [N(Pay Frag)] --> <-- HDR, N(NO_PROPOSAL_CHOSEN) 3.2.2. Second Protocol Round In the second protocol round, the initiator sends again the IKE_SA_INIT request. The main difference is that this message includes the key-shares associated to each oftype INVALID_QSKE_PAYLOAD indicatingtheselected Q-S grouppost-quantum algorithms agreed in the previous round. Each key-share is transported in a KE payload, and therefore there may exist multiple KE payloads in theinitiator MUST retrysecond round of the IKE_SA_INITwithmessage. Furthermore, these KE payloads may be fragmented if thecorrected Q-S group. Therekey-shares aretwo octetslarge and both peers indicate the support ofdata associatedfragmentation. In a general hybrid arrangement, the RFC7296 Diffie-Hellman public value is sent in the first KE payload (denoted KEi1), with one or more post-quantum key-share being sent in additional KE payloads (denoted KEi2, KEi3, etc). However, thisnotification, which containsordering is not mandatory. If theaccepted Quantum-Safe Group Transform Type number in big endian order. Asresponder sent a cookie in thecasefirst round ofINVALID_KE_PAYLOAD,exchange, the initiator MUSTagain propose its full setreturn this cookie. In addition to that, the initiator MUST send the same post-quantum algorithms and policies that were included in the KE payload ofacceptable cryptographic suites becausetype #TBA sent in therejection message was not authenticated, which may lead to any potential vulnerabilities exploitation. 2.3. CREATE_CHILD_SA Exchangefirst round of the exchange, in a notify payload N(PQ_ALGO_POLICIES). TheCREATE_CHILD_SA exchange is used to create new Child SAsresponder MUST examine the post-quantum algorithms andto rekey both IKE SAspolicies, andChild SAs. Ifconfirm that theCREATE_CHILD_SA request contains apresented KEpayload, it MAY also contain an optional QSKE payload to enable quantum-safe forward secrecy forpayloads match those represented by theChild SA. The keying materialcookie, see Section 3.7 forthe Child SA ismore information. Should an anomaly or afunction of Sk_d established duringmismatch be detected, theestablishment ofresponder MUST abort theIKE SA,session. On thenonces exchanged duringother hand, if theCREATE_CHILD_SA exchange,validation passes, then theDiffie-Hellman value,responder can proceed to compute a shared secret as detailed in Section 3.3. The responder also sends the IKE_SA-INIT response message including its key-shares. As before, if agreed and if required, fragmentation is handled as described in Section 3.6. Once thequantum- safe data (if QSKE payloadinitiator has received all key-shares from the responder, the initiator can compute the same shared secret following the description in Section 3.3. Below isincludedan example message exchanged in theCREATE_CHILD_SA exchange). If a CREATE_CHILD_SA request includes a QSKEi payload, at least onesecond round of IKE_SA_INIT message. Initiator Responder -------------------------------------------------------------- HDR, [N(COOKIE),] SAi1, KEi1[, KEi2, ..., KEiX,] Ni[, N(PQ_ALGO_POLICIES)] --> <-- HDR, SAr1, KEr1[, KEr2, ..., KErX,] Nr For implementations that are to be used by peers that are pre- configured with matching hybrid policies, resulting in theSA offers MUST include a Q-S groupinitial exchange used to negotiate the post-quantum policies and algorithms contained inonethe first round ofits transform structures. The Q-S group MUST be an elementexchanges being redundant, the initiator can skip the first round of exchanges by sending thegroup thatIKE_SA_INIT containing the key-shares. However the initiatorexpectsMUST be sure that the responderto accept. Ifwill accept theresponder selects a different Q-S group,presented key-shares. In this instance the responder is open to abuse by fragmentation related attacks and MUSTrejectrevert to using therequest by sending INVALID_QSKE_PAYLOAD Notify payload. The responder's preferred Q-S groupinitial exchange, should it find itself under any form of attack. 3.2.3. Child SA Negotiation After the initial IKE SA isindicated in this notify payload. Innegotiated, either side may later negotiate child SAs or rekey thecase ofIKE SA which may involve arejection,fresh key exchange. If a hybrid group is desired, then the initiatorshould retry with another CREATE_CHILD_SA request containingproposes aQ-S groupTransform Type 4 (Diffie-Hellman) of (TBA); he includes the KE payloads for the key exchange types thatwas indicated inwere negotiated for theINVALID_QSKE_PAYLOAD Notify payload. 2.3.1. New Childchild SAsfromduring theCREATE_CHILD_SA Exchangeinitial negotiation (see Section 3.5.1). TheCREATED_CHILD_SA requestresponder replies with the corresponding KE payloads, andresponse pairboth use the shared secrets tocreategenerate the child SA keying material (see section 3.3). If hybrid groups were not initially negotiated as anew Childpart of the initial key exchange, then child SAs MUST NOT propose a hybrid group. Specifically, the key exchange for creating a child SAis shown below:using a hybrid group is: Initiator Responder -------------------------------------------------------------- HDR,SK {SA,SK{SA, Ni,[KEi,] [QSKEi,]KEi1, KEi2, ..., KEiN, TSi, TSr} --> <-- HDR,SK {SA,SK{SA, Nr,[KEr,] [QSKEr,]KEr1, KEr2, ..., KErN, TSi, TSr}The initiator sends an encrypted request containingwhere both SAoffer(s),payloads include anonce, optional Diffie-Hellman and quantum-safe key exchange datatransform type 4 of (TBA), and theproposed Traffic Selectors. TheKEi1, ..., KEiN, KEr1, ..., KErN are the KE types there were initially negotiated. 3.3. Computation of a Post-Quantum Shared Secret After the second protocol round detailed in Section 2.2., both initiator and responderreplies withcan compute the common shared secrets to generate anencrypted response containingSKEYSEED, from which all keying materials for protection of theacceptedIKE SAoffer, a nonce, a Diffie-Hellman value if KEi was includedare derived. The quantity SKEYSEED is computed as follows: SKEYSEED = prf(Ni | Nr, SS1 | SS2 | ...| SSN) where prf, Ni and Nr are defined as in IKEv2 [RFC7296], SSi represents therequest andi-th shared secret computed from theexpected Diffie-Hellman group was selected, a quantum-safe data if QSKEi was includedi-th key exchange algorithm contained in therequest and the expected Q-Shybrid group that wasselected, andnegotiated in theaccepted Traffic Selectors. The keying materialprotocol. Note that if at least one of theseCREATE_CHILD_SA exchangesSSi is a classical shared secret thathave both KEis FIPS approved, then FIPS compliance design criteria as outlined in Section 2 is achieved. The seven secrets derived from SKEYSEED, namely SK_d, SK_ai, SK_ar, SK_ei, SK_er, SK_pi, andQSKE payloadsSK_pr, are generated as defined in IKEv2 [RFC7296]. For child SAs that are negotiated using a hybrid group, the keying material is defined as: KEYMAT = prf+(SK_d,QSSS (new)SS1 | SS2 | ... |g^ir (new)SSN | Ni | Nr) whereprf+, Sk_d, g^ir (new), Ni and Nr are defined in IKEv2 [RFC7296], and QSSS (new) isSSi represents the i-th shared secret computed from theephemeral quantum-safei-th keyexchange. The QSSS quantity is represented as an octet string. 2.3.2. Rekeying IKE SAs withexchange algorithm that was performed during theCREATE_CHILD_SA Exchange The CREATE_CHILD_SA request and response pair fornegotiation of the child SA. When rekeying an IKE SA using a hybrid group, the new SKEYSEED isshown below: Initiator Responder -------------------------------------------------------------- HDR, SK{SA, Ni, KEi[, QSKEi]} --> <-- HDR, SK {SA, Nr, KEr[, QSKEr]} Thecomputed as: SKEYSEED = prf(SK_d (old), SS1 | SS2 | ... | SSN | Ni | Nr) where SSi represents the i-th shared secret computed from the i-th key exchange algorithm that was performed during the negotiation of the new IKE SA. 3.4. Post-Quantum Group Transform Type and Group Identifiers In generating keying material within IKEv2, both initiatorsends an encrypted request containing amongst other payloads, a KEi payload which carries a Diffie-Hellman value,andan OPTIONAL QSKEi payload which carries a quantum-safe data. Theresponderreplies withnegotiate up to four cryptographic algorithms in the SA payload of anencrypted response containingIKE_SA_INIT or anumberCREATE_CHILD_SA exchange. One ofpayloads. Iftheresponder selectsnegotiated algorithms is a Diffie-Hellmangroup that matches one ofalgorithm, which is used for key exchange. This negotiation is done using theproposed group(s), a KEr payload containing aTransform Type 4 (Diffie-Hellman Group) where each Diffie-Hellmanpublic valuegroup isrepliedassigned a unique value. In order to enable a post-quantum key exchange in IKEv2, theencrypted response. Ifvarious post-quantum algorithms MUST be negotiated between two IKEv2 peers. To this end, this draft assigns new meanings to various transforms of transform type 4 ("Diffie-Hellman group"). It assigns identifiers to each of therequest containsvarious post-quantum algorithms (even though they are not actually Diffie-Hellman groups, they are methods of performing key exchange). In addition, it assigns two artificial values that are not actually key exchange mechanisms, but are used as aQSKEr payload andpart of theresponder selects a Q-S groupnegotiation. We expect thatmatches one ofin theproposed group(s),future, IANA will assign permanent values to these transforms. Until it does, we will use the following mappings in the 'reserved for private use space': 0x9000 HYBRID - this signifies that we are negotiating aQSKEr payload containing quantum-safe data is senthybrid group, the details are listed in thereply.KE payload. Thequantity SKEYSEEDfollowing values are reserved for thenew IKE SA is computed as follows: SKEYSEED = prf(SK_d (old), QSSS (new) | g^ir (new) | Ni | Nr) where prf, SK_d (old), g^ir (new), Nibelow key exchanges: 0x9100 - 0xXXXX. The following abstract identifiers are used to illustrate their usage in our framework. Actual identifiers will be maintained by IANA andNrupdated during the NIST standardization process. Name Number Key exchange -------------------------------------------------- NIST_CANDIDATE_1 0x9100 The 1st candidate of NIST PQC submission NIST_CANDIDATE_2 0x9101 The 2nd candidate of NIST PQC submission Because we aredefinedusing transforms inIKEv2 [RFC7296], QSSS (new)the private use space, both the initiator and responder must include a vendor id with this payload: d4 48 11 94 c0 c3 4c 9d d1 22 76 aa 9a 4e 80 d5 This payload is theshared secret fromMD5 hash of "IKEv2 Quantum Safe Key Exchange v1"). If theephemeral quantum-safeother side does not include this vendor id, an implementation MUST NOT process these private use transforms as listed in this draft. 3.5. Hybrid Group Negotiation Most post-quantum keyexchange.agreement algorithms are relatively new, and thus are not fully trusted. There are also many proposed algorithms, with different trade-offs and relying on different hard problems. TheQSSS quantityconcern isrepresentedthat some of these hard problems may turn out to be easier to solve than anticipated (and thus the key agreement algorithm not be asan octet string. 2.3.3. Rekeying Child SAssecure as expected). A hybrid solution allows us to deal withthe CREATE_CHILD_SA Exchange The CREATE_CHILD_SA request and response pair for rekeyingthis uncertainty by combining classical key exchanges with post-quantum key agreements. However, there are many post-quantum proposals that when combined can lead to many potential hybrid groups. Furthermore, different organizations might have different requirements when using aChild SAhybrid group. For instance, the type of underlying problem that isshown below: Initiator Responder -------------------------------------------------------------- HDR, SK {N(REKEY_SA), SA, Ni, [KEi,] [QSKEi,] TSi, TSr} --> <-- HDR, SK {SA, Nr, [KEr,] [QSKEr,] TSi, TSr} Both KEi and QSKEi payloads are OPTIONAL. The KEi and QSKEi payloads, which are sent encrypted bytrusted, theinitiator, carryminimum number of algorithms that should be used in aDiffie- Hellman value and quantum-safe data respectively. Ifhybrid group, or theCREATE_CHILD_SA request includes KEisecurity strength of each of the algorithms. For these reasons, hybrid groups might lead to many potential combinations difficult to define, maintain andQSKEi payloads, provided that a Diffie-Hellmanstandardize. This motivates our hybrid groupand a Q-Snegation protocol. Our hybrid groupare present in the SA offers,negotiation protocol allows theresponder replies with an encrypted response containing both KErinitiator andQSKEr payloads.responder to agree on a common hybrid group based on their respective policies. Thekeying material computationprotocol categorizes each type ofthiskey exchange into a type T, which is based on thesame astype of hard problem it relies upon. We use the aforementioned abstract identifiers to illustrate the idea. Given this categorization of the key agreement protocols, initiator and responder have security policies thatdefineddefine the minimum number of post-quantum algorithms that they require in[Section 2.3.1]. 2.4. QSKE Payload Format The quantum-safea hybrid group and also the types of keyexchange payload, denoted QSKEagreement protocols that they support (and therefore, trust). The initiator and responder can then engage inthis document,a simple protocol that allows them to compute a common hybrid group fulfilling their policies. The protocol for the initiator and responder isuseddescribed below. Note that it would be possible for the responder to search for a mutually acceptable combination without specifying the key exchange types, however the algorithm to search for such aquantum-safe shared secret between two IKE peers. The QSKE payload consistscombination would be considerably more complex. This design assumes that the security policies of theIKE generic payload header, a two-octet value denotinginitiator and theQuantum-Safe Group number,responder will rely on key exchanges based upon distinct types of hard problems, andfollowed byhence thequantum-safe data itself. The formatadditional complexity of theQSKE payloadmore general algorithm isshown below.not warranted. 3.5.1. Protocol for the Initiator To define the protocol, we first define a "DH_Group_List", this is a list of groups of a specific type; it has the format: 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Next Payload |C| RESERVED | Payload Length+---------------------------------------------------------------+ |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+T |Quantum-Safe Group NumN |RESERVED+---------------------------------------------------------------+ |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+PQC_ID_1 | PQC_ID_2 | ~Quantum-Safe Data... ~ ... ~ | PQC_ID_N |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ The length of the quantum-safe data varies depending on0 | +---------------------------------------------------------------+ where o T is the type ofquantum-safe cipher. The content type of quantum-safe datathe groups that are in this list, with this proposed encoding: - 0x0001 is classical - 0x0002 is lattice - 0x0003 is code-based - 0x0004 is isogeny-based - 0x0005 is symmetric (preshared key) o N isalso dependent onthetypenumber ofquantum-safe cipher. For quantum-safe ciphersgroups thatuse Diffie-Hellman-like key exchange,make up thecontentlist. The semantics ofthe quantum-safe datathis proposal isthe proposed/accepted cipher's public value. For ciphersthatuse KEM,thecontentinitiator iseither a random public-key of the proposed quantum-safe cipher in the caseproposing M different types ofQSKEi payload, or the content is a ciphertext produced using the received public-key in the casegroups; any selection ofQSKEr payload. The Quantum-Safe Group Num identifies the quantum-safe cipher with which the quantum-safe data was computed. The Quantum-Safe Group Num MUST match the Q-Sone groupspecified in a proposal in the SA payload sent in the same message. If the proposal in the SA payload does not specify a quantum-safe cipher, the QSKE payload MUST NOTfrom K different types will bepresent. If the responder selects a Q-S group that does not matchacceptable. o PQC_ID_1, PQC_ID_2, PQC_ID_N, such as NIST_CANDIDATE_1, is theproposed group,identifier for thequantum-safe key exchange MUSTPQC algorithm to berejected with a Notify payloadused for negotiation, in order oftype INVALID_QSKE_PAYLOAD. The chosen Q-S grouppreference. o 0 isindicated in the INVALID_QSKE_PAYLOAD Notify payload and the initiator can restart the exchange with that group. The payload type for the QSKE payloadpadding, present if N isTBA (TBA). 3. Design Rationale In general, the sizeodd. The semantics ofQSKE payloadthis list islarger thanthatof the KE counterpart and sending it inthese are theIKE_SA_INIT may prevent peers from establishing IPSec Security Association (SA) duegroups of PQC algorithms of type T that are acceptable tofragmentation. While the fragmentation issue may be addressed by sending QSKE intheIKE_AUTH exchange, itinitiator. We now define a "DH_Group_Policy"; this isdecided that QSKE should stilla list of group types that are negotiated together. It has the format: 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +---------------------------------------------------------------+ | K | M | +---------------------------------------------------------------+ | DH Group List 1 | +---------------------------------------------------------------+ | DH Group List 2 | ~ ... ~ | DH Group List M | +---------------------------------------------------------------+ where: o K is the minimum number of group lists that must beexchanged insatisfied; o M is theIKE_SA_INIT.number of group lists; o DH_Group_LIST_1, ..., DH_Group_List_M are the lists of different types of DH groups, in order of preference. Therationale behindsemantics of thisdecisionproposal isdiscussed below. 3.1. Threat Categories The treats tothat theIKE exchange caninitiator is proposing M different types of groups; any selection of one group from K different types will bebroken into two categories: 1. From current day until general purpose quantum computersacceptable. For example, suppose our policy is "we must agree on at least 2 groups from the list (P-256, P-384), (NIST_CANDIDATE_1, NIST_CANDIDATE_2; both of type lattice) and (NIST_CANDIDATE_1 of type isogeny), where NIST_CANDIDATE_1 and NIST_CANDIDATE_2 of type lattice areavailable. The additionassigned group numbers 40 and 41 respectively, and NIST_CANDIDATE_1 of type isogeny is assigned group number 60"; we have theQSKE allowsfollowing list (in hexadecimal) 0002 0003 0001 0002 0013 0014 0002 0002 0028 0029 0004 0001 003c 0000 which is parsed as 0002 K = 2 0003 We have 3 group lists 0001 0002 First list is of type classical, and consists of two groups 0013 0014 Group 19 (P-256) and group 20 (P-384) 0002 0002 Second list is of type lattice, and consists of two groups 0028 0029 Group 40 (NIST_CANDIDATE_1 of type lattice) and group 41 (NIST_CANDIDATE_2 of type lattice) 0004 0001 Third list is of type isogeny, and consists of one group 003c Group 60 (NIST_CANDIDATE_1 of type isogeny) 0000 Zero-pad We can now give theIKEv2 exchangeformat that the initiator sends to the responder in the KEi payload. The initiator sends its group policy in one of the following two formats: 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-------------------------------------------------------------+ | DH_Group_Policy | +-------------------------------------------------------------+ 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-------------------------------------------------------------+ | DH_Group_Policy for initial IKE exchange | +-------------------------------------------------------------+ | DH_Group_Policy for child SAs | +-------------------------------------------------------------+ If the initiator uses the first format, then the same DH policy will besecured against an adversary who captures all control plane (IKE) and data plane (ESP) traffic,negotiated for both the initial IKE exchange, as well as any child SA exchanges. If the initiator uses the second format, then the first policy listed will be used for the initial IKE exchange; the second policy listed will be used for any child SA negotiations. 3.5.2. Protocol from the Responder If the responder finds a combination of groups that are mutually acceptable, then it responds with theintentionKEr payload in one of the following two formats: 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +---------------------------------------------------------------+ | 0 | N | +---------------------------------------------------------------+ | DH_1 | DH_2 | ~ ... ~ ... ~ | DH_N | 0 | +---------------------------------------------------------------+ 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +---------------------------------------------------------------+ | 0 | N_Initial | +---------------------------------------------------------------+ | DH_1 | DH_2 | ~ ... ~ ... ~ | DH_N_Initial | 0 | +---------------------------------------------------------------+ | 0 | N_Child | +---------------------------------------------------------------+ | DH_1 | DH_2 | ~ ... ~ ... ~ | DH_N_Child | 0 | +---------------------------------------------------------------+ where o 0 is a fixed 0000 pattern; o N, N_Initial, N_Child is the number ofbreakinggroups that are selected; o DH_1, DH_2, ..., DH_N are the selected groups. If the second format is selected, then the groups used for the initial IKEexchange (when quantum computers become available)SA andsubsequently being ablethe groups used for child SAs are listed separately. We assume that the responder has a similar local policy governing what it is willing toviewnegotiate. To search thedata plane traffic. The useinitiator's vector to find such a mutually acceptable combination, the responder can run the following algorithm. 1. Set list of accepted DH groups to empty 2. Set K to theQSKEmaximum of (minimum number of group lists specified by the initiator, minimum number of group lists acceptable according to the responder policy). 3. For every DH_Group_list in theIKE_SA_INIT resultsinitiator proposal a. Set T to the DH_Group_list type b. Find for the responder DH_Group_list of type T c. If the responder has such a group list * Scan for a DH element that the two lists have in common - If there is such a group o Append that to the "list of accepted DH groups" o (Optional) if the list is at least K elements long, stop searching (and accept) 4. If the list of accepted DH groups is at least K elements long, accept. Otherwise, fail. 3.6. Fragmentation Support 3.6.1. Fragmentation Problem Description When the IKESA becoming quantum secure against future attacks. 2. After general purpose quantum computersmessage size exceeds the path MTU, the IKE messages areavailable. Once general purpose quantum computersfragmented at the IP level. IP fragments can be blocked or dropped by network devices such as NAT/PAT gateways, firewalls, proxies and load balancers. If IKE messages areavailabledropped, the IKE and subsequent IPsec Security Association (SA) will fail to be established. In many instances the quantum safe key exchange data could be too large to send in a single IKE message as the path MTU between hosts is set below the total size of the IKE message. As this draft defines multiple key exchanges in a single IKE message, thereare two typesis a high chance that IP fragmentation will occur in IKE_SA_INIT messages. The maximum length ofattack: o Active attack Assumingan IKE payload is 65,535 octets. It is anticipated thata general purposesome post quantumcomputeralgorithms will require a key exchange payload size that isavailablegreater than 65,535 octets. Furthermore, CERT payloads in IKE_AUTH messages are expected to exceed 65,565 octets when sending certificates containing post quantum public keys and signatures. To overcome these limitations we present a method to split any payload into multiple fragments and optionally send these fragments in separate IKE_SA_INIT messages. 3.6.2. Fragmentation Solution To enable fragmentation of IKE payloads, we introduce new FRAG_POINTER and FRAG_BODY payloads. Further, we introduce a method of sending payload fragments in multiple IKE_SA_INIT messages as well as a method of sending payload fragments in encrypted IKE messages which then may or may not be fragmented using RFC 7383's IKEv2 message fragmentation. 3.6.2.1. Fragmentation Pointer Payload In place of any payload within anadversary can manipulateIKE packet, the sender may replace it with a FRAG_POINTER payload; this FRAG_POINTER type (rather than the original payload type) will appear in the next payload field of the previous payload (or IKEexchangeheader). This payload has the following format 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Next Payload |C| RESERVED | Payload Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Payload Type | Fragment Identifier | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Total Payload Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Fragment Length | RESERVED | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ where: o C is the Critical flag for the original payload. o Payload Type is the payload type of the original payload; e.g. if this payload is a KE payload, this will be the value 34. o Fragment Identifier is a 24 bit value that the sender does not reuse often, that is, within the timeout period of this IKE packet. It is intended to be used to allow the receiver to correlate the fragments (contained inreal time.other packets) to the payload within the original IKE packet. o Total Payload Length is the length of the original payload. Note that this draft allows the transmission of payloads greater than 64k, if necessary. o Fragment Length is the amount of data contained within each fragment (except for the last fragment, which may be smaller). o RESERVED will be an all-0's field. 3.6.2.2. Fragmentation Body Payload Theattackersender canbreak Diffie-Hellman in real time, but notsplit theQSKE.contents of any payload across one or more FRAG_BODY payloads. Thisresultspayload has the format: 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Next Payload |C| RESERVED | Payload Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Payload Type | Fragment Identifier | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Total Payload Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Fragment Length | Fragment Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | ~ Payload Data ~ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ where: o Next Payload is the identifier for the payload type of the next payload in theIKE_AUTH exchange being securemessage. There may be additional restrictions on the value of Next Payload during the fragmentation of an IKE_SA_INIT message, see Section 3.6.2.3 below. o Payload Type, Fragment Identifier, Total Payload Length, Fragment Length are the same as theQSKEcorresponding fields in the FRAG_POINTER payload. Take careful note, like the other fields described here the Fragment Length field will be identical across all fragments. Thus, if this is the last fragment, Fragment Length could be longer than the size of the Payload Data field. o Fragment Number is the current fragment message number, starting from 1. This field MUST NOT be 0. o Payload Data is the contents of the payload for this fragment. For any fragment other than the last, this will be 'Fragment Length' bytes long; for the last one, it will be (Total Payload Length-1) % Fragment Length + 1 bytes long. Note that the Generic Payload Header from the original payload MUST NOT be included in thederivationPayload Data ofkey material usedthe fragment, but any additional payload header fields after the Generic Payload Header MUST be included. The Generic Payload Header cannot be included because it includes the 16-bit Payload Length field, however the length of a fragmented payload may require more than 16 bits tosecurebe stored. The logical contents of theIKE_AUTH exchange. However,reassembled payload will be Payload Data[1] | PayloadData[2] | ... | PayloadData[N] where N = Total Payload Length / Fragment Length (rounded up). As anactive attacker who can sit betweenexample, the following KE payload could be fragmented into a FRAG_POINTER and twohostsFRAG_BODY payloads with Fragment Length of 1000 as follows: 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Next Payload |C| RESERVED | Payload Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Diffie-Hellman Group Num | RESERVED | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | ~ Key Exchange Data (1500 bytes) ~ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 1: Key Exchange Payload to be Fragmented 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Next Payload |C| RESERVED | Payload Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | KE | Fragment Identifier | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Total Payload Length (1504) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Fragment Length (1000) | RESERVED | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 2: Example FRAG_POINTER Payload for KE Payload 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Next Payload |C| RESERVED | Payload Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | KE | Fragment Identifier | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Total Payload Length (1504) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Fragment Length (1000) | Fragment Number (1) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Diffie-Hellman Group Num * | RESERVED | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | ~ Key Exchange Data[0..995] (996 bytes) ~ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 3: Example FRAG_BODY Payload 1 for KE Payload (*) Corresponds to the payload-specific header fields beginning immediately after the Generic Payload Header of the Key Exchange payload being fragmented. This is the beginning of the Payload Data field in the FRAG_BODY payload. 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Next Payload |C| RESERVED | Payload Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | KE | Fragment Identifier | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Total Payload Length (1504) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Fragment Length (1000) | Fragment Number (2) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | ~ Key Exchange Data[996..1499] (504 bytes) ~ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 4: Example FRAG_BODY Payload 2 for KE Payload 3.6.2.3. Fragmentation Semantics If the receiver supports this fragmentation extension, the sender may fragment any payload by replacing the payload with a FRAG_POINTER payload andimpersonate each host can performone of more FRAG_BODY payloads. If IP fragmentation is not aman-in-the-middle (MitM) attackconcern (e.g. whenthe authentication methodIKEv2 fragmentation isnot quantum secure. This includesachieved using encrypted fragment payloads, or it's known that IP fragmentation of IKE_SA_INIT won't be an issue) then the corresponding FRAG_BODY payloads MUST appear anywhere after the FRAG_POINTER in an IKE message. An IKE_SA_INIT message may be fragmented across multiple IKE messages using this payload fragmentation. In this case the sender first sends an IKE_SA_INIT message containing the FRAG_POINTER payloads and anyasymmetric authentication methodunfragmented payloads. Then it sends one IKE_SA_INIT message per FRAG_BODY payload generated from the original IKE_SA_INIT message. Each IKE_SA_INIT message must be sent with a Message ID of 0. Each IKE_SA_INIT message subsequent to the first one MUST contain one FRAG_BODY payload, MAY contain a COOKIE notification andnon-quantum computer resistant Extensible Authentication Protocol (EAP) authentication. For authentication methodsSHOULD NOT contain any other payloads. Since FRAG_POINTER support is negotiated in an initial IKE_SA_INIT round-trip whichare quantum secure, such as usingdidn't generate any sharedkeykeys, the responder had the opportunity to send a COOKIE notify payload back to the initiator. This COOKIE can be used by the responder as a denial-of-service prevention measure. If the sender received a COOKIE notification payload in the initial exchange, it MUST include the COOKIE notify payload in each fragmented IKE_SA_INIT messageintegrity code comprisingthat it sends. This allows the receiver to reject any IKE_SA_INIT messages without ashared-secretCOOKIE or withsufficient entropy (256 bits),an unrecognized COOKIE, thus mitigating a DoS attack where an attacker sends malformed IKE_SA_INIT messages containing a FRAG_BODY payload which the receiver would enqueue, filling up its receiving buffers. Note, thisallows fordoes not prevent an attack where theIKEv2 exchangeattacker listens in on messages to determine a valid COOKIE and emits malformed IKE_SA_INIT messages with that cookie, or where it sends a valid initial round IKE_SA_INIT message to received a valid cookie and then emit malformed messages using that cookie. When the receiver receives an IKE payload with one or more FRAG_POINTER payloads, it waits until it processes all the corresponding FRAG_BODY payloads to transform the payloads into the original unfragmented payload which it processes as normal. If the IKE message was not a fragmented IKE_SA_INIT message, all corresponding FRAG_BODY payloads will besecured againstcontained in the IKE message, if they are not the receiver MUST reject the IKE message. When the receiver receives anactive adversary when includingIKE_SA_INIT message, is may have to process several IKE_SA_INIT messages to reconstruct theQSKE. o Passive attack As peroriginal unfragmented message. If it receives thefirst category,initial message containing the FRAG_POINTER payloads, it enqueues that message and awaits the corresponding IKE_SA_INIT messages containing the FRAG_POINTER payloads needed to reconstruct the original message. In addition, if it receives a FRAG_BODY message without receiving a corresponding FRAG_POINTER payload first, it may enqueue that payload. The receiver may vet the declared payload length, and reject it if it decides that the length is too long. Also note that we allow the FRAG_BODY payload to consist of the entire payload; this can happen if (for example) the MTU size is 1500, and we want to transmit a 1300 byte KE payload, in addition to 400 bytes of other IKE data. Once all theQSKE allowsFRAG_BODY payloads have been received and reassembled, theIKEv2 exchangeIKE receiver may commence parsing the IKE packet. This proceeds as normal, except that when it sees a payload of type FRAG_POINTER, it looks into the FRAG_POINTER payload to see the actual payload type and length, and refers to the reassembly buffer for the actual payload data. Note about the criticality field; a FRAG_POINTER field may besecured against an adversary who capturesmarked as noncritical, which means that the IKE parser may ignore it if it does not understand the payload type within the FRAG_POINTER payload. However, even if it does that, it MUST still reassemble allcontrol plane (IKE) and data plane (ESP) traffic, withtheintentionFRAG_BODY payloads (because ofbreakingthe IKEexchange. 3.2. DealingAUTH processing depends on them). 3.6.2.4. IKE AUTH Processing When generating the IKE AUTH payload, the reassembled texts contained within the FRAG_BODY payloads is logically appended to the IKE message (and before the nonce). Specifically, we modify how InitiatorSignedOctets and ResponderSignedOctets are computed as follows: InitiatorSignedOctets = RealMessage1 | PayloadData1 | PayloadData2 | ... | PayloadDataN | NonceRData | MACedIDForI ResponderSignedOctets = RealMessage2 | PayloadData1 | PayloadData2 | ... | PayloadDataN | NonceIData | MACedIDForR where PayloadData1, ..., PayloadDataN are the fields from the FRAG_BODY payloads associated withFragmentation In some instances,theQSKE public valueIKE message being authenticated, in the same order that the corresponding FRAG_POINTERS appear in, and for payloads from the same FRAG_POINTER, in increasing FRAGMENT_NUMBER order. 3.6.2.5. Design Rationale The contents of the FRAG_POINTER/FRAG_BODY payloads were designed to make it easy to reassemble. The initial segments of the payloads were intentionally kept identical (to simply the processing if the FRAG_BODY arrived first); the receiver always knows how long the payload will belarge enough(allowing the allocation of buffers, if required); the receiver always knows the location in the payload data of each fragment (and so is able tocause fragmentationsave the data immediately into the buffer), and the receiver can compute the number of fragments up front (and hence can easily tell when all fragments have been received). The method of performing IKE AUTH processing was also designed tooccur atmake it easy to implement; that PayloadData1 | PayloadData2 | ... | PayloadDataN is just theIP layer.reassembled payloads concatenated together. 3.7. Protection against Downgrade Attacks Inpractice, there willRFC7296, man-in-the-middle (MitM) downgrade attack is prevented by always resending the full set of group proposal in subsequent IKE_SA_INIT messages if the responder chooses a different Diffie- Hellman group from the one in the initial IKE_SA_INIT message. The two-round nature of the protocol in this document presents some challenges in terms of downgrade attack protection. However, the general idea is the same as the one in RFC7296, in that the responder must have sufficient information to verify that the downgrade is a genuine one, rather than one instigated by a malicious attacker. Consider the following example: an initiator proposes to use a hybrid key exchange, and for backward compatibility also purposes a Diffie- Hellman group 19 (P-256 elliptic curve) through SAi payload, in the first round of the exchange. The initiator may receive an INVALID_KE_PAYLOAD notification response. This could becases where IKE traffic fragmented ata genuine response from a responder that does not understand or support theIP layer willselected hybrid key exchange, or it could also bedroppeda malicious downgrade response from an MitM attacker. The initiator, on the second round of the exchange, MUST send the same cipher proposals and policies as in the first exchange round to indicate that the initiator would have preferred to use the hybrid key exchange. The responder MUST check that the chosen proposal is indeed not caused bynetwork devicesa downgrade attack. If the check fails, it indicates a potential downgrade attack and the connection SHALL be dropped immediately. In order to check the proposals and policies, the responder may choose to maintain states between IKE_SA_INIT rounds. However, this increases the risk of state exhaustion attack. Of course, the responder may decide not to allocate any states and rely on the authentication in IKE_AUTH for any tampering of the exchange. Unfortunately, this option does not offer the benefit of an early downgrade attack detection; the responder will have to spend resources computing entities such asNAT/PAT gateways, Intrusion Prevention System (IPS), firewallsshared secrets andproxies, that cannot handle IP fragmentsauthentication code before knowing whether orare configurednot there is a downgrade attack. Such a benefit may be obtained by encoding some information into a cookie (Section 2.6. RFC7296). Whilst this document does not mandate how information should be encoded toblock IP fragments. This blocked traffic will preventform theIKE sessioncookie, it could be efficiently done as follows Cookie = <VersionIDofSecret> | Hash(KEi(#TBA) | <secret>) where KEi(#TBA) is the KE payload in the first round of IKE_SA_INIT exchange, <secret> is a randomly entity generated by the responder which SHOULD be changed periodically as suggested in RFC7296, and the entity <VersionIDofSecret> should be updated whenever <secret> is changed. In this scenario, the responder calculates a cookie value frombeing established.the first round of the IKE_SA_INIT request message and sends it to the initiator as part of the first round IKE_SA_INIT response message. Theissueinitiator echoes back the cookie and a N(PQ_ALGO_POLICIES) notify payload along withfragmentation can easilyother IKE_SA_INIT attributes. When the responder receives the second round of the IKE_SA_INIT message, it recalculates the cookie value and checks whether or not this value is the same as the one in the previous round of the exchange, which is available from N(PQ_ALGO_POLICIES). If they mismatch, it indicates an attempt to force a downgrade attack and therefore the connection SHALL beavoided by movingterminated. As before, any attempts of theQSKEattacker to modify the packets so that cookie validation passes will be detectable in IKE_AUTH stage. In the event of the value <secret> goes out-of-sync, as suggested in RFC7296, the responder MAY reject the request by responding with a new cookie, or it MAY keep using the old value of <secret> for a short time and accept cookies computed from either one. The complete two-round IKE_SA_INIT message exchange flow with cookie is shown below. In this particular example, the responder understands andby employing IKEv2 Message Fragmentation [RFC7383].accepts the hybrid key exchange proposed in the first IKE_SA_INIT round. Initiator Responder -------------------------------------------------------------- HDR, SAi1, KEi(#TBA), Ni, [N(Pay Frag)] --> <-- HDR, SAr1, KE(#TBA), Nr, N(COOKIE), [N(Pay Frag),] HDR, N(COOKIE), SAi1, KEi1[, KEi2, ..., KEiX,] Ni, N(PQ_ALGO_POLICIES) --> <-- HDR, SAr1, KEr1[, KEr2, ..., KErX,] Nr Theimplicationfollowing shows the flow whereby the responder does not support the proposed hybrid key exchange and proposes to switch to classical Diffie-Hellman key exchange ofthistype P-256. Because the responder does not keep any states, it relies on the cookie and N(PQ_ALGO_POLICIES) to detect that it is a genuine downgrade. Initiator Responder -------------------------------------------------------------- HDR, SAi1, KEi(#TBA), Ni, [N(Pay Frag)] --> <-- HDR, N(INVALID_KE_PAYLOAD, 19), N(COOKIE) HDR, N(COOKIE), SAi1, KEi(19), Ni, N(PQ_ALGO_POLICIES) --> <-- HDR, SAr1, KEr(19), Nr The cookie does not protect against an adversary thatwhile allamends theChild SAs, which carryKE(#TBA) payload in thedata traffic, wouldfirst IKE_SA_INIT request round and also then amends the N(PQ_ALGO_POLICIES) payload in the second IKE_SA_INIT request round to create a match. In this instance, IKE_AUTH authentication SHALL fail due to the InitiatorSignedOctets being inconsistent between both peers. The decision to use a cookie or allocate state SHOULD bequantum secure,a decision taken by theIKE SA itself wouldresponder. This should be a configurable value, and/or activated when a certain threshold of half open connections is reached. The cookie is sent in addition to the other attributes contained in first round of IKE_SA_INIT response. The cookie does notbe,mitigate an attack whereby an adversary cause the responder to perform many lookups for the post-quantum algorithms and policies, resulting inthe disclosurea denial-of-service (DoS) condition. In order to mitigate this type ofIKE identitiesattack, the RFC7296 cookie mechanism or a puzzle-solving mechanism as described in RFC8019 SHOULD be used. A responder MAY decide to combine DoS andIPsec proxies. Furthermore by sendingdowngrade prevention cookies, in which case, theQSKEcombined cookie may be encoded as follows Cookie = <VersionIDofSecret> | Hash(Ni | IPi | SPIi | KEi(#TBA) | <secret>) where Ni, IPi and SPIi are as described inIKE_AUTHRFC7296. 4. Alternative Design This section gives an overview on a number of alternative approaches that we have considered, but later discarded. These approaches are: o Sending post-quantum proposals and policies in KE payload only With the objective of notIKE_SA_INIT would allowintroducing unnecessary notify payloads, we considered communicating the hybrid post-quantum proposal in the KE payload during the first pass of the protocol exchange. Unfortunately, this design is susceptible to the following downgrade attack. Consider the scenario where there is anactiveMitM attackerwithsitting between an initiator and aquantum computerresponder. The initiator proposes, through SAi payload, toperform attacks against IKE suchuse a hybrid post- quantum group and asforging an identity used for authentication, abusea backup a Diffie-Hellman group, and through KEi payload, the initiator proposes a list ofattributes senthybrid post-quantum proposals and policies. The MitM attacker intercepts this traffic and replies with N(INVALID_KE_PAYLOAD) suggesting to downgrade to the backup Diffie-Hellman group instead. The initiator then resends the same SAi payload and the KEi payload containing the public value of the backup Diffie-Hellman group. Note that the attacker may forward the second IKE_SA_INIT message only to the responder, and therefore at this point in time, theCFG exchange, MitM attack, DoS, etc. Itresponder will not have the information that the initiator prefers the hybrid group. Of course, it isbelievedpossible for the responder to have a policy to reject an IKE_SA_INIT message that (a) offers a hybrid group but not offering the corresponding public value in the KEi payload; and (b) the responder has not specifically acknowledged that it does not supported thetrade offrequested hybrid group. However, the checking of this policy introduces unnecessary protocol complexity. Therefore, in order todeliverfully prevent any downgrade attacks, using KE payload alone is not sufficient and that the initiator MUST always indicate its preferred post-quantum proposals and policies in a notify payload in the subsequent IKE_SA_INIT messages following a N(INVALID_KE_PAYLOAD) response. o New payload types to negotiate hybrid proposal and to carry post- quantumresistant IKEpublic values Semantically, it makes sense to use a new payload type, which mimics the SAis of greater security benefit thanpayload, to carry a hybrid proposal. Likewise, another new payload type that mimics theissuesKE payload, could be used to transport hybrid public value. Although, in theory a new payload type could be made backwards compatible by not setting its critical flag as per Section 2.5 of RFC7296, we believe that it may not be that simple in practice. Since the original release of IKEv2 in RFC4306, no new payload type has ever been proposed and therefore, this creates a potential risk of having a backward compatibility issue from non-conforming RFC IKEv2 implementations. Since we could not see any other compelling advantages apart from a semantic one, we use the existing KE and notify payloads instead. In fact, as described above, we use the KE payload in the first IKE_SA_INIT request round and the notify payload to carry the post-quantum proposals and policies. We use one or more of the existing KE payloads to carry the hybrid public values. o Hybrid public value payload One way to transport the negotiated hybrid public payload, which contains one classical Diffie-Hellman public value and one or more post-quantum public values, is to bundle these into a single KE payload. Alternatively, these could also beencountered duetransported in a single new hybrid public value payload, but following the same reasoning as above, this may not be a good idea from a backward compatibility perspective. Using a single KE payload would require an encoding or formatting tofragmentationbe defined so that both peers are able to compose and extract the individual public values. However, we believe that it is cleaner to send the hybrid public values in multiple KE payloads--one for each group or algorithm. Furthermore, at this point in theIP layer. Itprotocol exchange, both peers should have indicated support of handling multiple KE payloads. o Fragmentation Handling of large IKE_SA_INIT messages has been one of the most challenging tasks. A number of approaches have been considered and the two prominent ones that we have discarded are outlined as follows. The first approach was to treat the entire IKE_SA_INIT message as a stream of bytes, which we then split it into a number of fragments, each of which isworth notingwrapped onto a payload thatencapsulating IKE traffic within TCP [IKETCPENCAP]would fit into the size of the network MTU. The payload that wraps each fragment is asimple method to prevent IKE_SA_INIT traffic being fragmentednew payload type and it was envisaged that this new payload type will not cause a backward compatibility issue because at this stage of theIP layer.protocol, both peers should have indicated support of fragmentation in the first pass of the IKE_SA_INIT exchange. Thefollowing table gives an ideanegotiation of fragmentation is performed using a notify payload, which also defines supporting parameters such as thecommonsize of fragment in octets and theQSKEfragment identifier. The new payload that wraps each fragment of the messages in this exchange is assigned theproposed schemes. Scheme QSKE size (octets) ------------------------------------- RLWE 128 4096 NewHope 128 1792 NTRU EES743EP1 1030 NTRU-Prime 216 1200 Itsame fragment identifier. Furthermore, it also has other parameters such as a fragment index and total number of fragments. We decided to discard this approach due to its blanket approach to fragmentation. In cases where only a few payloads need to be fragmented, we felt that this approach isevidentoverly complicated. Another idea thatboth NewHope 128 and RLWE 128 will naturally increasewas discarded was fragmenting anIP Maximum Transmission Unit (MTU)individual payload without introducing a new payload type. The idea was to use the 9-th bit (the bit after the critical flag in the RESERVED field) in the generic payload header as a flag to mark that this payload is fragmented. As an example, if a KE payload is to belarger than 1500 octets whichfragmented, it may look as follows. 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Next Payload |C|F| RESERVED | Payload Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Diffie-Hellman Group Number | Fragment Identifier | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Fragment Index | Total Fragments | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Total KE Payload Data Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | ~ Fragmented KE Payload ~ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ When the flag F iscommon for most Internet traffic, resulting inset, this means theIKE_SA_INIT being fragmented atcurrent KE payload is a fragment of a larger KE payload. The Payload Length field denotes theIP layer. 3.3. Removalsize of this payload fragment in octets--including the size of the generic payload header. The two-octet RESERVED field following Diffie-HellmanexchangeGroup Number was to be used as a fragment identifier to help assembly and disassembly of fragments. TheIKE_SA_INIT exchange currently mandatesFragment Index and Total Fragments fields are self-explanatory. The Total KE Payload Data Length indicates theusesize of theDiffie- Hellman. Asassembled KE payload data in octets. Finally, theDiffie-Hellman exchangeactual fragment is carried in Fragment KE Payload field. We discarded this approach because we believe that the working group may notquantum securebe happy using the RESERVED field to change the format of a packet and that implementers may not like theQSKE exchange is quantum secure,complexity added from checking theadditionfragmentation flag in each received payload. Furthermore, we dismissed this idea in favour of theQSKE can be thoughtidea present in Section 3.6 due to the handling ofmakingtheDiffie-Hellman redundant. This draft doestotal IKEv2 payload size. There was notadvise removinga clean method for theusereceiver to determine the total size ofDiffie-Hellman, though futureall the IKEv2 fragmented payloads. The method defined in Section 3.6 allows for a clean method for implementationsthat have migratedtousing QSKEdetermine the IKE payload size and make a policy decision to allocate memory or discard the packet. o Group sub-identifier As discussed in Section 3.4, each group identifier is used to distinguish a post-quantum algorithm. Further classification couldremovebe made on a particular post-quantum algorithm by assigning additional value alongside therequirementgroup identifier. This sub- identifier value may be used tosendassign different security parameter sets to a given post-quantum algorithm. However, this level of details does not fit theDiffie-Hellman exchangeprinciples of the document where it should deal with generic hybrid key exchange protocol, not a specific ciphersuite. Furthermore, there are enough Diffie- Hellman group identifiers should this be required in theQSKE providingfuture. o State Keeping in Downgrade Attack Protection Another way of checking whether or not a downgrade attack is in effect is to have a responder to commit thesame functionality. Sendingstate of theQSKE infirst- pass of the IKE_SA_INITallows formessage onto memory or a temporary database. When the responder receives the second-pass of the exchange, it can verify it against the saved state to determine whether or not a downgrade attack is in effect. While this simpletransitionverification does offer protection against downgrade attack, it is susceptible toonly using QSKE should the needstate exhaustion attack. While we do not discard this idea, it is RECOMMENDED toremoveuse theDiffie-Hellman exchange occur. 4.other two downgrade protection mechanisms described in Section 3.7. 5. SecurityConsiderationsconsiderations The key length of the Encryption Algorithm (Transform Type 1), the Pseudorandom Function (Transform Type 2) and the Integrity Algorithm (Transform Type 3), all have to be of sufficient length to prevent attacks using Grover's algorithm [GROVER]. In order to use the extension proposed in this document, the key lengths of these transforms SHALL be at least 256 bits long in order toprevent anyprovide sufficient resistance to quantumattacks from succeeding.attacks. Accordingly thepost-quantumpost- quantum security level achieved is at least 128 bits.The quantitiesSKEYSEEDand KEYMAT areis calculated fromshared secrets, g^ir and QSSS,shared, KEx, using an algorithm defined in Transform Type 2. While a quantum attacker may learn the value ofg^ir, the quantity QSSS ensuresKEx', if this value is obtained by means of a classical key exchange, other KEx values generated by means of a quantum-resistant algorithm ensure thatneitherSKEYSEEDnor KEYMATis not compromised. This assumes that the algorithm defined in the Transform Type 2 isquantum-safe. Because some quantum-safe public values are in the orderpost-quantum. The main focus ofseveral KB,this document is to prevent aIKEv2 message that contains suchpassive attacker performing aQSKE payload will exceed the path Maximum Transmission Unit (MTU)"harvest andthe message may be fragmented at the IP level. This presents the possibility ofdecrypt" attack. In other words, anattack vectorattacker thatrelies on IP fragmentation. One suchrecords messages exchanges today and proceeds to decrypt them once he owns a quantum computer. This attackvectoris prevented due tomount a denialthe hybrid nature ofservice by swampingthe key exchange. Other attacks involving an active attacker using areceiver with IP fragments [DOSUDPPROT]. This issue could be mitigatedquantum-computer are not completely solved byemploying TCP encapsulation [IKETCPENCAP]. Thethis document since the authentication step remains classical. In particular, the authenticity of the SAs established under IKEv2 is protected using a pre-shared key, RSA,DSS,DSA, or ECDSA algorithms. Whilst the pre-shared key option, provided the key is long enough, isquantum- safe,post-quantum, the other algorithms are not. Moreover, in implementations where scalability is a requirement, the pre-shared key method may not be suitable.Quantum-safeQuantum- safe authenticity may be provided by using a quantum-safe digital signature and several quantum-safe digital signature methods are being explored by IETF. For example the hash based method, XMSS has the status of an Internet Draft, see [XMSS]. Currently, quantum-safe authentication methods are not specified in this document, but are planned to be incorporated in due course. It should be noted that the purpose ofquantum-safepost-quantum algorithms is toprevent attacks,provide resistance to attacks mounted in thefuture, from succeeding.future. The current threat is that encrypted sessionsmay beare subject to eavesdropping and archived with decryption by quantum computers taking place at some point in the future. Until quantum computers become available there is no point in attacking the authenticity of a connection because there are no possibilities for exploitation. These only occur at the time of the connection, for example by mounting a MitM attack. Consequently there is not such a pressing need for quantum-safe authenticity. Theuse of the QSKEkey exchange mechanism in this document providesana method for malicious parties to sendIKE_SA_INIT initiator messages containing QSKEmultiple KE payloads, where each oftype KEM and with random values.which could be large, to a responder. As the standard behavior is for the responder togenerate a random entity, encrypt it using the received public key (which would be a random value),consume computational resources to compute andsends the encrypted quantitysend multiple KE payloads back to theinitiator in QSKEr payload. Thisinitiator, this allows for asimplysimple method for malicious parties to cause a VPN gateway to perform excessive processing.ToIn order to mitigate against this threat, implementationscanMAY make use of the DoS prevention COOKIE notification as defined in [RFC7296], to mitigate spoofed traffic and a puzzle-solving notification [RFC8019] to minimize the impact from hosts who use their own IP address.5. IANA Considerations This document defines a new IANA registry for IKEv2 Transform Types. Trans. Description Type Used In ----------------------------------------------------------- Quantum-Safe Group (Q-S) tba Optional in IKE, AH & ESP A number of Transform IDs of the Q-S group Transform Type are also defined. The initial values are listed below: Name Value ------------------------------ RLWE 128 1 NewHope 128 2 NTRU EES743EP1 3 NTRU-Prime 216 4 In order to transport quantum-safe dataCookie notification is used toestablish a quantum-safe SA, this extension registers a new key exchange payload in the IKEv2 Payload Typesprevent downgrade attacks. The cookie SHALL NOT be ofthe IANA registry: Description Notation Value --------------------------------- QSKE Payload QSKE tba This extension also specifies a new error typearbitrary length, otherwise it will be susceptible to SLOTH attack as described in [BL]. It is RECOMMENDED that theIKEv2 Notify Message Types - Error Typeslength of theIANA registry: Error Type Value ------------------------------ INVALID_QSKE_PAYLOAD tbacookie be no longer than 64 octets. 6. References [ADPS] Alkim, E., Ducas, L., Poppelmann, T., and Schwabe, P., "Post-quantum Key Exchange - a New Hope", 25th USENIX Security Symposium, pp. 327-343, 2016. [AH] Kent, S., "IP Authentication Header", RFC 4302, December 2005, <http://www.rfc-editor.org/info/rfc4302>.[BCNS15] Bos, J., Costello, C., Naehrig, M., and Stebila, D., "Post-quantum Key Exchange for the TLS Protocol from the Ring Learning with Errors Problem", IEEE Symposium on Security and Privacy, pp. 553-570, 2015. [DH] Diffie, W.,[BL] Bhargavan, K. andHellman, M., "New DirectionsLeurent, G., "Transcript Collision Attacks: Breaking Authentication inCryptography", IEEE Transactions on Information Theory, V.IT-22 n. 6, June 1977. [DOSUDPPROT] Kaufman, C., Perlman, R.,TLS, IKE, andSommerfeld, B., "DoS protection for UDP-based protocols", ACM Conference on ComputerSSH", Network andCommunications Security, October 2003.Distributed System Security Symposium, 2016. [ESP] Kent, S., "IP Encapsulating Security Payload (ESP)", RFC 4303, December 2005, <http://www.rfc- editor.org/info/rfc4303>. [FMKS] Fluhrer, S., McGrew, D., Kampanakis, P., and Smyslov, V., "Postquantum Preshared Keys for IKEv2", Internet draft, https://datatracker.ietf.org/doc/draft-ietf-ipsecme-qr- ikev2, 2017. [GROVER] Grover, L., "A Fast Quantum Mechanical Algorithm for Database Search", Proc. of the Twenty-Eighth Annual ACM Symposium on the Theory of Computing (STOC 1996), 1996[IKETCPENCAP] Pauly, T., Touati, S., and Mantha, R., "TCP Encapsulation of IKE and IPsec Packets", draft RFC, May 2017, <https://tools.ietf.org/html/draft-ietf-ipsecme-tcp- encaps-10>.[IKEV2IANA] IANA, "Internet Key Exchange Version 2 (IKEv2) Parameters", <http://www.iana.org/assignments/ikev2- parameters/>. [LOGJAM] Adrian, D., Bhargavan, K., Durumeric, Z., Gaudry, P., Green, M., Halderman, J., Heninger, N., Springall, D., Thome, E., Valenta, L., VanderSloot, B., Wustrow, E., Beguelin, S., and Zimmermann, P., "Imperfect forward secrecy: How Diffie-Hellman fails in practice", Proc. 22rd ACM SIGSAC Conference on Computer and Communications Security, pp. 5-17, 2015.[NTRU] Hoffstein, J., Pipher, J., and Silverman, J., "NTRU: A Ring-Based Public Key Cryptosystem", Lecture Notes in Computer Science, pp. 267-288, 1998. [NTRUPRIME] Bernstein, D., Chuengsatiansup, C., Lange, T., and van Vredendaal, C., "NTRU Prime", IACR Cryptology ePrint Archive: Report 2016/461, 2016.[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", RFC 2119, March 1997. [RFC7296] Kaufman, C., Hoffman, P., Nir, Y., Eronen, P., and Kivinen, T., "Internet Key Exchange Protocol Version 2 (IKEv2)", RFC 7296, October 2014. [RFC7383] Smyslov, V., "Internet Key Exchange Protocol Version 2 (IKEv2) Message Fragmentation", RFC 7383, November 2014. [RFC8019] Nir, Y., Smyslov, V., "Protecting Internet Key Exchange Protocol Version 2 (IKEv2) Implementations from Distributed Denial-of-Service Attacks", RFC 8019, November 2016. [RFC8229] Pauly, T., Touati, S., and Mantha, R., "TCP Encapsulation of IKE and IPsec Packets", RFC8229, August 2017. [XMSS] Huelsing, A., Butin, D., Gazdag, S., and Mohaisen, A., "XMSS: Extended Hash-Based Signatures", Crypto Forum Research Group Internet Draft, 2017Appendix A. Quantum-safe Ciphers Each of the specific quantum-safe ciphers is assigned a unique Transform ID. All of the selected quantum-safe ciphers are based on lattice construction. Specifically the ciphers fall into the categories of Ring Learning With Errors, NTRU and Streamlined NTRU Prime. In each case the selected parameters are chosen so as to achieve at least 128 bits of post-quantum security. Appendix A.1. Ring Learning With Errors Ring Learning with Errors is a cryptographic primitive that relies on the worst-case hardness of a shortest vector problem in ideal lattices. It is commonly abbreviated as RLWE. The security parameters are given by an integer n which is a power of 2, a prime integer q, an array of n coefficients denoted by {a} and a standard deviation sigma along with the type of error distribution X. Note that each coefficient of {a} is less than the prime q and is sampled from distribution X. Let a(x) be a polynomial, whose coefficients are given by {a}, the RLWE problem can be stated as follows: given polynomials a(x), b(x) and a small polynomial e(x), find the secret s(x) from the relationship a(x) * s(x) + b(x) = e(x) modulo q. RLWE 128 -------- This set of parameters follows the system described by Bos et al [BCNS15]. Using a fixed coefficient array {a} in this way may result in security vulnerabilities such as "all-for-the-price-of-one" precomputation attacks such as the Logjam attack on the classical Diffie-Hellman key exchange [LOGJAM]. As has been pointed out since, this is straightforwardly solved by the coefficient array {a} being generated on-the-fly for each key exchange from a seed value shared by the initiator and responder. The fixed coefficient array {a} is also avoided in similar fashion in NewHope 128 (see below). The set of parameters that is proposed by Bos et al is given as follows: n = 1024 q = 2^32 -1 sigma = 8/sqrt(2 * PI) X = discrete Gaussian {a} = 29FE0191, DD1A457D, 3534EE4B, 6450ED74, BBFE9F64, 92BF0F31, 8DCF8995, 4C5E30D0, 9E2ED04D, 8C18FE0B, 1A70F2E7, 2625CD93, 0065DA14, 6E009722, E6A70E8B, AEF6EF56, 8C6C06AF, 9E59E953, 4995F67B, E918EE9D, 8B4F41A7, 0D811041, F5FE6458, 3C02B584, CBCFC8FD, 5A01F116, 73408361, 44D3A098, BBDEECF6, 90E09082, F8538BA4, F9600091, D8D30FEF, 56201487, ACB2159D, 38F47F77, ED7A864F, 8FC785CA, 7CBD6108, 3CA577DE, FF44CCC2, A1385A79, 5C88E3AD, 177C46A9, DA4A4DD8, 2AA3594F, A4A5E629, 47CA6F6E, B2DF1BC6, 6841B78E, 0823F5A8, A18C7D52, 7634A0D1, DA1751BA, 18B9D25D, 5B2643BC, ACC6975D, 48E786F4, 05E3ED4E, 4DC86568, 3F5C5F99, 585DBFD7, EF6E0715, 7D36B823, 12D872CD, D7B78F27, DD672BF5, 2DC7C7EB, A3033801, 50E48348, 9162A260, 0BE8F15B, ABB563EC, 06624C5A, 812BF7BC, 8637AC35, F44504F3, FF8577AB, 4A0161B0, 000AEB0E, 311204AF, 2A76831B, 4D903F3A, 97204FA9, 9EB524E3, 1757AFAC, BA369FEC, CD8F198D, 6B33C246, 51C13FCE, B58ACC4E, 39ACF8DA, 7BB7EBF7, EDC1449D, C7B47FDB, 9C39148D, 4E688D7B, FAD0C2C2, 296CE85C, 6045C89C, 6441C0C6, 50C7C83A, C11764DD, 58D7EEA2, E57B9D0E, 4E142770, B8BFBB59, E143EBAA, FF60C855, 238727F0, E35B4A5B, 8F96940B, 4498A6BA, 5911093A, 394DD002, 521B00D2, 140BDAF9, EAB67207, 21E631A6, A04AADA9, A96A9843, 4B44CC9B, E4D24C33, C7E7AE78, E45A6C72, CBE61D3C, CE5A4869, 10442A52, DB11F194, 39FC415D, 7E7BDB76, AE9EFA22, 25F4F262, 472DD0A7, 42EBD7A0, E8038ECE, D3DB002A, 8416D2EC, DF88C989, 7FEA22D5, C7A3F6FE, 37409982, F45B75E2, 9A4AC289, 90406FD6, EA1C74A5, 5777B39F, D07F1FA3, CE6EDA0D, D150ECFB, BEFF71BA, 50129EFC, 51CE65B9, B9FB0AB8, 770C59CB, 11F2354F, 8623D4BB, D6FCAFD6, B2B1697C, 0D7067E2, 2BA5AFB9, D369C585, 5B5E156C, D8C81E6E, 80CFDF16, F6F441EB, C173BAF5, 78099E3A, D38F027B, 4AC8D518, 8D0108A1, E442B0F1, 56F9EA3C, D0D6BBCA, 4E17DCB4, 69BF743B, 0CCE779F, D5E59851, 63861EA2, B1CB22C1, BBFD2ACE, DDA390D1, EDF1059F, 04F80F89, B13AF849, 58C66009, E0D781C0, 588DC348, A305669D, 0D7AF67F, 32BC3C38, D725EFBA, DC3D9434, 22BD7ED8, 2DFD2926, 4BDEAD3A, B2D5ECE6, 16B05C99, FEEC7104, F6CAC918, 0944C774, CE00633B, C59DA01A, 41E8E924, 335DF501, 3049E8EE, 5B4B8AAC, C962FC91, D6BB22B3, 0AC870EB, C3D99400, A0CEAC28, AF07DE1E, 831C2824, 258C5DDC, 779417E6, 41CB33D0, 4E51076A, D1DB6038, 9E0B1C41, A9A1F90D, F27E7705, 75892711, 5D9F1175, 85CC508B, 5CA415BE, 1858C792, FB18632F, C94111EB, 937C0D28, C2A09970, 386209D9, BBDD9787, 2473F53A, EF7E7637, CFC8630B, 2BA3B7F8, 3C0047AD, 10D76FF7, B1D9414D, CEB7B902, A5B543F5, 2E484905, E0233C10, D061A1F8, CED0A901, AC373CAC, 04281F37, 3609797F, DB80964D, 7B49A74F, 7699656F, 0DCEC4BC, 0EC49C2D, F1573A4E, A3708464, 9A1E89F0, 6B26DEB6, 2329FA10, CA4F2BFF, 9E012C8E, 788C1DFD, 2C758156, 2774C544, 150A1F7D, 50156D6E, 7B675DE1, 5D634703, A7CEB801, 92733DAB, B213C00B, 304A65B1, 8856CF8E, 7FF7DD67, D0912293, 30064297, 663D051D, 01BC31B4, 2B1700BD, 39D7D18F, 1EAD5C95, 6FB9CD8B, A09993A6, B42071C0, 3C1F2195, 7FDF4CF8, C7565A7E, 64703D34, 14B250EF, 2FA338D2, AEE576DC, 6CCED41D, 612D0913, D0680733, 8B4DBE8A, 6FFEA3D0, 46197CA2, A77F916F, FA5D7BD6, 01E22AEB, 18E462DD, 4EC9B937, DE753212, 05113C94, 7786FBD4, FB379F71, 756CF595, EAADCFAB, BBD74C2E, 1F234AC9, 85E28AEB, 329F7878, D48FDE09, 47A60D0A, AE95163F, 72E70995, 27F9FCBF, BDCFCC41, 334BC498, EE7931A1, DFA6AEF4, 1EC5E1BF, 6221870F, CD54AE13, 7B56EF58, 4847B490, 31640CD3, 10940E14, 556CC334, C9E9B521, 499611FF, BEC8D592, 44A7DCB7, 4AC2EABD, 7D387357, 1B76D4B6, 2EACE8C9, 52B2D2A4, 0C1F2A64, 50EF2B9A, 3B23F4F4, 8DDE415E, F6B92D2D, 9DB0F840, E18F309D, 737B7733, F9F563C5, 3C5D4AEE, 8136B0AF, C5AC5550, 6E93DEF9, 946BCCEC, 5163A273, B5C72175, 4919EFBD, 222E9B68, 6E43D8EE, AA039B23, 913FD80D, 42206F18, 5552C01F, 35B1136D, FDC18279, 5946202B, FAAE3A37, 4C764C88, 78075D9B, 844C8BA0, CC33419E, 4B0832F6, 10D15E89, EE0DD05A, 27432AF3, E12CECA6, 60A231B3, F81F258E, E0BA44D7, 144F471B, B4C8451E, 3705395C, E8A69794, 3C23F27E, 186D2FBA, 3DAED36B, F04DEFF1, 0CFA7BDD, FEE45A4F, 5E9A4684, 98438C69, 5F1D921B, 7E43FD86, BD0CF049, 28F47D38, 7DF38246, 8EED8923, E524E7FC, 089BEC03, 15E3DE77, 78E8AE28, CB79A298, 9F604E2B, 3C6428F7, DCDEABF3, 33BAF60A, BF801273, 247B0C3E, E74A8192, B45AC81D, FC0D2ABE, F17E99F5, 412BD1C1, 75DF4247, A90FC3C0, B2A99C0E, 0D3999D7, D04543BA, 0FBC28A1, EF68C7EF, 64327F30, F11ECDBE, 4DBD312C, D71CE03A, AEFDAD34, E1CC7315, 797A865C, B9F1B1EB, F7E68DFA, 816685B4, 9F38D44B, 366911C8, 756A7336, 696B8261, C2FA21D2, 75085BF3, 2E5402B4, 75E6E744, EAD80B0C, 4E689F68, 7A9452C6, A5E1958A, 4B2B0A24, 97E0165E, A4539B68, F87A3096, 6543CA9D, 92A8D398, A7D7FDB4, 1EA966B3, 75B50372, 4C63A778, 34E8E033, 87C60F82, FC47303B, 8469AB86, 2DAADA50, CFBB663F, 711C9C41, E6C1C423, 8751BAA9, 861EC777, 31BCCCE1, C1333271, 06864BEE, 41B50595, D2267D30, 878BA5C5, 65267F56, 2118FB18, A6DDD3DE, 8D309B98, 68928CB2, FAE967DC, 3CEC52D0, 9CA8404B, AADD68A8, 3AC6B1DF, D53D67EA, 95C8D163, B5F03F1D, 3A4C28A7, E3C4B709, B8EB7C65, E76B42A3, 25E5A217, 6B6DD2B4, BEFC5DF4, 9ACA5758, C17F14D3, B224A9D3, DE1A7C8F, 1382911B, 627A2FB9, C66AE36E, 02CC60EF, C6800B20, 7A583C77, E1CECEE8, CA0001B4, 6A14CF16, EF45DD21, 64CAA7D5, FF3F1D95, D328C67E, C85868B1, 7FBF3FEB, 13D68388, 25373DD9, 8DE47EFB, 47912F26, 65515942, C5ED711D, 6A368929, A2405C50, FFA9D6EB, ED39A0D4, E456B8B5, 53283330, 7837FD52, 6EE46629, CAFC9D63, B781B08F, DD61D834, FB9ACF09, EDA4444A, BB6AA57F, AED2385C, 22C9474D, 36E90167, E6DF6150, F1B0DA3B, C3F6800E, 966302E0, 7DB1F627, F9632186, B4933075, 81C5C817, 878CA140, 4EDE8FED, 1AF347C1, FDEB72BA, 2DA7FF9A, B9BA3638, 2BB883F1, 474D1417, C2F474A4, 1E2CF9F3, 231CB6B0, 7E574B53, EDA8E1DA, E1ACB7BB, D1E354A6, 7C32B431, 8189991B, 25F9376A, 3FFA8782, CD9038F1, 119EDBD1, 5C571840, 3DCA350F, 83923909, 9DC3CF55, 94D79DD0, D683DE2B, ECF4316A, 0FFF48D4, 5D8076ED, 12B42C97, 2284CDB4, CB245554, 3025B4D9, B0075F35, 43A3802E, 18332B4D, 056C4467, C597E3F7, 3F0EAF9D, F48EBB9F, 92F62731, BDB76296, 516D4466, 226102B3, 15E38046, A683C4E0, 6C0D1962, E20CB6CA, C90C1D70, D0FF8692, D1419690, 2D6F1081, 34782E5E, AE092CD5, 90C99193, E97C0405, EAE201DA, 631FB5AC, 279A2821, DF47BA5B, FBE587E2, 6810AD2D, C63E94BD, 9AF36B42, F14F0855, 946CE350, 7E3320E0, 34130DFF, 8C57C413, AB0723B2, F514C743, 63694BA3, 5665D23D, 6292C0B5, 9D768323, 2F8E447C, B99A00FB, 6F8E5970, 69B3BB45, 59253E02, 1C518A02, DD7C1232, C6416C38, 77E10340, CF6BEB9A, 006F9239, 0E99B50F, 863AD247, 75F0451A, 096E9094, E0C2B357, 7CC81E15, 222759D4, EE5BCFD0, 050F829B, 723B8FA9, 76143C55, 3B455EAF, C2683EFD, EE7874B4, 9BCE92F7, 6EED7461, 8E93898F, A4EBE1D0, FA4F019F, 1B0AD6DA, A39CDE2F, 27002B33, 830D478D, 3EEA937E, 572E7DA3, 4BFFA4D1, 5E53DB0B, 708D21EE, B003E23B, 12ED0756, 53CA0412, 73237D35, 438EC16B, 295177B8, C85F4EE6, B67FD3B4, 5221BC81, D84E3094, 18C84200, 855E0795, 37BEC004, DF9FAFC9, 60BEB6CD, 8645F0C5, B1D2F1C3, ECDC4AE3, 424D17F1, 8429238C, 6155EAAB, A17BEE21, 218D3637, 88A462CC, 8A1A031E, 3F671EA5, 9FA08639, FF4A0F8E, 34167A7D, 1A817F54, 3215F21E, 412DD498, 57B633E7, E8A2431F, 397BD699, 5A155288, BB3538E8, A49806D2, 49438A07, 24963568, 40414C26, E45C08D4, 61D2435B, 2F36AEDE, 6580370C, 02A56A5E, 53B18017, AF2C83FC, F4C83871, D9E5DDC3, 17B90B01, ED4A0904, FA6DA26B, 35D9840D, A0C505E4, 3396D0B5, EC66B509, C190E41C, 2F0CE5CF, 419C3E94, 220D42CA, 2F611F4F, 47906734, 8C2CDB17, D8658F1C, 2F6745CD, 543D0D4F, 818F0469, 380FFDAE, F5DD91E2, AD25E46A, E7039205, A9F47165, B2114C12, CF7F626F, 54D2C9FF, E4736A36, 16DB09FC, E2B787BB, 9631709A, 72629F66, 819EBA08, 7F5D73F3, A0B0B91C, FEDFBA71, 252F14EE, F26F8FA2, 92805F94, 43650F7F, 3051124F, 72CA8EAD, 21973E34, A5B70509, B36A41CC, C52EDE5F, F706A24E, 8AAF9F92, ADF6D99A, 23746D73, 1DA39F70, 9660FC8F, A0A8CFEB, 83D5EFCA, 0AA4A72F, EEF1B2DE, 00CFCC66, 8A145369, 6376CEDA, A3262E2E, 3367BBA8, 01488C32, 5561A2AD, 40821BF2, F0C89F61, C4FAA6B3, D843377A, 67A76555, E8D9F1CE, 943034FF, 2BD468BD, A514D935, 50CDB19D, A09C7E9E, 6FEBEC30, B1B36CF7, CD7A30BC, 36C6FE0A, 2DF52C45, 45C9957F, 65076A79, BF783DEE, 718D37F0, 098F9117, 9A70C430, 80EB1A53, 9F2505B1, 48D10D98, B8D781E9, F2376133, ECF25B98, 5A3B0E18, 2F623537, 9F0E34A4, F1027EB6, F9B16022, BA3FEC59, EF7226FD, 9F3058AA, BB51DE0E, D5435EA0, 8A6479D5, 077708B8, 9634876A, 069A260A, 168D9E6A, 9FD18E94, 8A7ACD53, 8E5A5869, 1B6F35FD, A968913B, C72F076B, 7DDA354C, 25B0297C, D07219D5, A66862BA, 87E8EE67, FA28809B, 55762443, 31EF4956, F4F4A511, 9A9378CB, 42ABDBDE, 7AA484B7, E8EC22ED, CADDEF61, 9D18538A, A81B923E, 9C32F92A, 6D278E58, 4CDFC716, AB64814F, F832BF1A, E2C1A36B, 20675610, E78D855A, 38332C3D, 5AE0EAD9, 2E23F22D, 3C8683C5, A351AF89, 54720D3B, ABC6E51F, 89330C8E, 600D5650, 197EA0C6, 7D502A5D, 3A536EA7, 7DF71F32, 456FE645, 3EF5E7A2, 6664BCAF, A9D074C2, E9D9E478, 1AE9AB77, FECE7160, C618EEEC, 771B0026, 2B54F43C, 145DA102, 1B3D7949, BB6E2D9D, DB8FDC4A, 25397EBA, 9228A6E9, 56B4C69D, 337B943C, E35B716C, F7FE89A1, 023AC20D, 033165C8, 9F13B130, C1BAFB1D, A2C42C8C, 58E4D431, E10741E6, 2547589A, 8D9EF7BD, 7E322280, F49FDDC2, BE21A094, A061178A, 34D9F13B, 694D652F, 05084A2A, 2767B991, E8536AB4, EBFADF6F, F4C8DFAC, D9967CCA, E04BCF3F, 232B3460, 9FF6E88A, 6DF3A2B0, 0FE10E99, 7B059283, 067BFB57, 8DDA26B0, B7D6652F, 85705248, 0826240C, 5DF7F52E, 47973463, B9C22D37, 9BEB265D, 493AB6FD, 10C0FB07, 947C102A, 5FEC0608, 140E07AE, 8B330F43, 9364A649, C9AD63EF, BE4B2475, 1A09AC77, 9E40A4B0, BA9C23E7, 7F4A798D, E2C52D66, A26EE9E0, 8C79DCE7, DD7F1C3D, 6AE83B20, 073DBA03, B1844D97, 16D7ED6E, 5E0DE0B1, A497D717, FA507AA2, C332649B, 21419E15, 384D9CCC, 8B915A8B, BA328FD5, F99E8016, 545725EC, ED9840ED, 71E5D78A, 21862496, 6F858B6C, F3736AE2, 8979FC2B, 5C8122D0, 0A20EB5A, 2278AA6E, 55275E74, 22D57650, E5FFDC96, 6BA86E10, 4EC5BFCC, 05AFA305, FB7FD007, 726EA097, F6A349C4, CB2F71E4, 08DD80BA, 892D0E23, BD2E0A55, 40AC0CD3, BFAF5688, 6E40A6A5, 6DA1BBE0, 969557A9, FB88629B, 11F845C4, 5FC91C6F, 1B0C7E79, D6946953, 27A164A0, 55D20869, 29A2182D, 406AA963, 74F40C59, 56A90570, 535AC9C6, 9521EF76, BA38759B, CD6EF76E, F2181DB9, 7BE78DA6, F88E4115, ABA7E166, F60DC9B3, FECA1EF3, 43DF196A, CC4FC9DD, 428A8961, CF6B4560, 87B30B57, 20E7BAC5, BFBDCCDF, F7D3F6BB, 7FC311C8, 2C7835B5, A24F6821, 6A38454C, 460E42FD, 2B6BA832, C7068C72, 28CDCE59, AE82A0B4, 25F39572, 9B6C7758, E0FE9EBA, A8F03EE1, D70B928E, 95E529D7, DD91DB86, F912BA8C, 7F478A6A, 1F017850, 5A717E10, DAC243F9, D235F314, 4F80AAE6, A46364D8, A1E3A9E9, 495FEFB1, B9058508, 23A20999, 73D18118, CA3EEE2A, 34E1C7E2, AADBADBD. The public key size of RLWE 128 is 4096 octets and it provides 128- bit post-quantum security, although it does not provide forward secrecy due to the way coefficient array {a} is generated. A set of open source ciphersuites has been implemented and included in OpenSSL v1.0.1f and may be found within the libcrypto module.Acknowledgements The authorsanticipate RLWE being incorporated into TLS with the RLWE 128 ciphersuites being compatible with TLS 1.3. Moreover, the ciphersuites are constant time, and therefore are not vulnerable to possible side channel attacks. NewHope 128 ----------- This is a variation on the ring learning with errors cipher by Alkim et al [ADPS] who set out in their solution to make improvements to RLWE 128. Their main improvements arewould like touse a random coefficient array {a} for each key exchangethanks Frederic Detienne andto reduce the size of key exchanges by using a 14-bit modulus instead of a 32-bit modulus. Additionally they relax the requirementOlivier Pelerin forthe error distribution to be discrete Gaussian and substitute the easier to generate Binomial distribution and provide a security justification. The set of parameters proposed by Alkim et al is given as follows: n = 1024 q = 12289 sigma = sqrt(8) X = Binomial This cipher provides 128-bit post-quantum security and has a public key size of 1792 octets. It features forward secrecy. Open source, constant time, side-channel-proof, ciphersuites are publically available. Appendix A.2. NTRU Lattices NTRU lattices are another variant of cryptosystems based on integer lattices. The lattices have a cyclic structure as in the case of RLWE, however the NTRU problem can be stated as follows: given a polynomial a(x), a small secret polynomial e(x) and ciphertext c(x) find the secret e(x) from the ciphertext c(x) = a(x) * s(x) + e(x), modulo some integer q, where s(x) is a small secret polynomial. In the case of NTRU-Prime 216, the transmitted secret is the small polynomial s(x) and e(x) is generated incidentally as a result of streamlined data packing of the ciphertext. NTRU EES743EP1 -------------- The inventors of the first lattice cryptosystem by Silverman et al in 1996 have been developingtheirsystem ever since. Adoption by the crypto community has been hampered by patentscomments anda lack of security proof. Whilst the polynomial ring of RLWE is truncated modulo (x^n + 1) where n is an integer power of 2, the operations of NTRU EES743EP1 [NTRU] are defined over the polynomial ring modulo (x^n - 1) where n is 743, a prime integer. The integer modulus q is a power of 2, and it is 2048 in NTRU EES743EP1. The QSKE public value is 1030 octets. NTRU-Prime 216 -------------- The authors, Bernstein et al [NTRUPRIME], of this recent variant of NTRU set out to provide increased security in the light of possible vulnerabilities in the mathematical structure of rings used in NTRU and RLWE. Accordingly a Galois field, not a ring, is used in NTRU- Prime 216 with polynomials reduced modulo (x^p - x - 1), where p is a prime integer. Specifically, while the operations of NTRU EES743EP1 are defined over the polynomial modulo (x^743 - 1), the operations of NTRU-Prime 216 [NTRUPRIME] are defined over polynomial modulo (x^743 - x - 1). The integer modulus q is also chosen to be a prime to avoid any additional mathematical structure that may be potentially exploited. NTRU-Prime 216 has q = 7541. There is another parameter, an integer t, which defines the weight of one ofsuggestions, including thepublic key polynomials. The value of t is chosen to be 157 in this case so as to make cryptographic failure an impossibility. Cryptographic failure is theoretically possible in some ring based systems but usually these systems are designed so that this occurs with infinitesimal probability. NTRU-Prime 216 has been designedidea tominimizenegotiate thepublic key size and key encapsulation data bypost-quantum algorithms usingstreamlined data packing andtheresulting QSKE public value is 1200 octets long. The ciphertext includes a 256 bit key confirmation hash. The system achieves forward secrecy. It is a very conservative design achieving 216 bits pre-quantum security and at least 128 bits post-quantum security. Open source, constant time, side-channel-proof ciphersuites are publicly available.existing KE payload. Authors' Addresses C. Tjhai Post-QuantumEMail: cjt@post-quantum.comemail: cjt [at] post-quantum.com M. Tomlinson Post-QuantumEMail: mt@post-quantum.com A. Cheng Post-Quantum EMail: ac@post-quantum.comemail: mt [at] post-quantum.com G. Bartlett Cisco SystemsEMail: grbartle@cisco.comemail: grbartle [at] cisco.com S. Fluhrer Cisco Systems email: sfluhrer [at] cisco.com D. Van Geest ISARA Corporation email: daniel.vangeest [at] isara.com Z. Zhang Onboard Security email: zzhang [at] onboardsecurity.com O. Garcia-Morchon Philips email: oscar.garcia-morchon [at] philips.com