summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc2412.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/rfc/rfc2412.txt')
-rw-r--r--doc/rfc/rfc2412.txt3083
1 files changed, 3083 insertions, 0 deletions
diff --git a/doc/rfc/rfc2412.txt b/doc/rfc/rfc2412.txt
new file mode 100644
index 0000000..9169d78
--- /dev/null
+++ b/doc/rfc/rfc2412.txt
@@ -0,0 +1,3083 @@
+
+
+
+
+
+
+Network Working Group H. Orman
+Request for Comments: 2412 Department of Computer Science
+Category: Informational University of Arizona
+ November 1998
+
+
+ The OAKLEY Key Determination Protocol
+
+Status of this Memo
+
+ This memo provides information for the Internet community. It does
+ not specify an Internet standard of any kind. Distribution of this
+ memo is unlimited.
+
+Copyright Notice
+
+ Copyright (C) The Internet Society (1998). All Rights Reserved.
+
+Abstract
+
+ This document describes a protocol, named OAKLEY, by which two
+ authenticated parties can agree on secure and secret keying material.
+ The basic mechanism is the Diffie-Hellman key exchange algorithm.
+
+ The OAKLEY protocol supports Perfect Forward Secrecy, compatibility
+ with the ISAKMP protocol for managing security associations, user-
+ defined abstract group structures for use with the Diffie-Hellman
+ algorithm, key updates, and incorporation of keys distributed via
+ out-of-band mechanisms.
+
+1. INTRODUCTION
+
+ Key establishment is the heart of data protection that relies on
+ cryptography, and it is an essential component of the packet
+ protection mechanisms described in [RFC2401], for example. A
+ scalable and secure key distribution mechanism for the Internet is a
+ necessity. The goal of this protocol is to provide that mechanism,
+ coupled with a great deal of cryptographic strength.
+
+ The Diffie-Hellman key exchange algorithm provides such a mechanism.
+ It allows two parties to agree on a shared value without requiring
+ encryption. The shared value is immediately available for use in
+ encrypting subsequent conversation, e.g. data transmission and/or
+ authentication. The STS protocol [STS] provides a demonstration of
+ how to embed the algorithm in a secure protocol, one that ensures
+ that in addition to securely sharing a secret, the two parties can be
+ sure of each other's identities, even when an active attacker exists.
+
+
+
+
+Orman Informational [Page 1]
+
+RFC 2412 The OAKLEY Key Determination Protocol November 1998
+
+
+ Because OAKLEY is a generic key exchange protocol, and because the
+ keys that it generates might be used for encrypting data with a long
+ privacy lifetime, 20 years or more, it is important that the
+ algorithms underlying the protocol be able to ensure the security of
+ the keys for that period of time, based on the best prediction
+ capabilities available for seeing into the mathematical future. The
+ protocol therefore has two options for adding to the difficulties
+ faced by an attacker who has a large amount of recorded key exchange
+ traffic at his disposal (a passive attacker). These options are
+ useful for deriving keys which will be used for encryption.
+
+ The OAKLEY protocol is related to STS, sharing the similarity of
+ authenticating the Diffie-Hellman exponentials and using them for
+ determining a shared key, and also of achieving Perfect Forward
+ Secrecy for the shared key, but it differs from the STS protocol in
+ several ways.
+
+ The first is the addition of a weak address validation mechanism
+ ("cookies", described by Phil Karn in the Photuris key exchange
+ protocol work in progress) to help avoid denial of service
+ attacks.
+
+ The second extension is to allow the two parties to select
+ mutually agreeable supporting algorithms for the protocol: the
+ encryption method, the key derivation method, and the
+ authentication method.
+
+ Thirdly, the authentication does not depend on encryption using
+ the Diffie-Hellman exponentials; instead, the authentication
+ validates the binding of the exponentials to the identities of the
+ parties.
+
+ The protocol does not require the two parties compute the shared
+ exponentials prior to authentication.
+
+ This protocol adds additional security to the derivation of keys
+ meant for use with encryption (as opposed to authentication) by
+ including a dependence on an additional algorithm. The derivation
+ of keys for encryption is made to depend not only on the Diffie-
+ Hellman algorithm, but also on the cryptographic method used to
+ securely authenticate the communicating parties to each other.
+
+ Finally, this protocol explicitly defines how the two parties can
+ select the mathematical structures (group representation and
+ operation) for performing the Diffie-Hellman algorithm; they can
+ use standard groups or define their own. User-defined groups
+ provide an additional degree of long-term security.
+
+
+
+
+Orman Informational [Page 2]
+
+RFC 2412 The OAKLEY Key Determination Protocol November 1998
+
+
+ OAKLEY has several options for distributing keys. In addition to the
+ classic Diffie-Hellman exchange, this protocol can be used to derive
+ a new key from an existing key and to distribute an externally
+ derived key by encrypting it.
+
+ The protocol allows two parties to use all or some of the anti-
+ clogging and perfect forward secrecy features. It also permits the
+ use of authentication based on symmetric encryption or non-encryption
+ algorithms. This flexibility is included in order to allow the
+ parties to use the features that are best suited to their security
+ and performance requirements.
+
+ This document draws extensively in spirit and approach from the
+ Photuris work in progress by Karn and Simpson (and from discussions
+ with the authors), specifics of the ISAKMP document by Schertler et
+ al. the ISAKMP protocol document, and it was also influenced by
+ papers by Paul van Oorschot and Hugo Krawcyzk.
+
+2. The Protocol Outline
+
+2.1 General Remarks
+
+ The OAKLEY protocol is used to establish a shared key with an
+ assigned identifier and associated authenticated identities for the
+ two parties. The name of the key can be used later to derive
+ security associations for the RFC 2402 and RFC 2406 protocols (AH and
+ ESP) or to achieve other network security goals.
+
+ Each key is associated with algorithms that are used for
+ authentication, privacy, and one-way functions. These are ancillary
+ algorithms for OAKLEY; their appearance in subsequent security
+ association definitions derived with other protocols is neither
+ required nor prohibited.
+
+ The specification of the details of how to apply an algorithm to data
+ is called a transform. This document does not supply the transform
+ definitions; they will be in separate RFC's.
+
+ The anti-clogging tokens, or "cookies", provide a weak form of source
+ address identification for both parties; the cookie exchange can be
+ completed before they perform the computationally expensive part of
+ the protocol (large integer exponentiations).
+
+ It is important to note that OAKLEY uses the cookies for two
+ purposes: anti-clogging and key naming. The two parties to the
+ protocol each contribute one cookie at the initiation of key
+ establishment; the pair of cookies becomes the key identifier
+ (KEYID), a reusable name for the keying material. Because of this
+
+
+
+Orman Informational [Page 3]
+
+RFC 2412 The OAKLEY Key Determination Protocol November 1998
+
+
+ dual role, we will use the notation for the concatenation of the
+ cookies ("COOKIE-I, COOKIE-R") interchangeably with the symbol
+ "KEYID".
+
+ OAKLEY is designed to be a compatible component of the ISAKMP
+ protocol [ISAKMP], which runs over the UDP protocol using a well-
+ known port (see the RFC on port assignments, STD02-RFC-1700). The
+ only technical requirement for the protocol environment is that the
+ underlying protocol stack must be able to supply the Internet address
+ of the remote party for each message. Thus, OAKLEY could, in theory,
+ be used directly over the IP protocol or over UDP, if suitable
+ protocol or port number assignments were available.
+
+ The machine running OAKLEY must provide a good random number
+ generator, as described in [RANDOM], as the source of random numbers
+ required in this protocol description. Any mention of a "nonce"
+ implies that the nonce value is generated by such a generator. The
+ same is true for "pseudorandom" values.
+
+2.2 Notation
+
+ The section describes the notation used in this document for message
+ sequences and content.
+
+2.2.1 Message descriptions
+
+ The protocol exchanges below are written in an abbreviated notation
+ that is intended to convey the essential elements of the exchange in
+ a clear manner. A brief guide to the notation follows. The detailed
+ formats and assigned values are given in the appendices.
+
+ In order to represent message exchanges succinctly, this document
+ uses an abbreviated notation that describes each message in terms of
+ its source and destination and relevant fields.
+
+ Arrows ("->") indicate whether the message is sent from the initiator
+ to the responder, or vice versa ("<-").
+
+ The fields in the message are named and comma separated. The
+ protocol uses the convention that the first several fields constitute
+ a fixed header format for all messages.
+
+ For example, consider a HYPOTHETICAL exchange of messages involving a
+ fixed format message, the four fixed fields being two "cookies", the
+ third field being a message type name, the fourth field being a
+ multi-precision integer representing a power of a number:
+
+
+
+
+
+Orman Informational [Page 4]
+
+RFC 2412 The OAKLEY Key Determination Protocol November 1998
+
+
+ Initiator Responder
+ -> Cookie-I, 0, OK_KEYX, g^x ->
+ <- Cookie-R, Cookie-I, OK_KEYX, g^y <-
+
+ The notation describes a two message sequence. The initiator begins
+ by sending a message with 4 fields to the responder; the first field
+ has the unspecified value "Cookie-I", second field has the numeric
+ value 0, the third field indicates the message type is OK_KEYX, the
+ fourth value is an abstract group element g to the x'th power.
+
+ The second line indicates that the responder replies with value
+ "Cookie-R" in the first field, a copy of the "Cookie-I" value in the
+ second field, message type OK_KEYX, and the number g raised to the
+ y'th power.
+
+ The value OK_KEYX is in capitals to indicate that it is a unique
+ constant (constants are defined in the appendices).
+
+ Variable precision integers with length zero are null values for the
+ protocol.
+
+ Sometimes the protocol will indicate that an entire payload (usually
+ the Key Exchange Payload) has null values. The payload is still
+ present in the message, for the purpose of simplifying parsing.
+
+2.2.2 Guide to symbols
+
+ Cookie-I and Cookie-R (or CKY-I and CKY-R) are 64-bit pseudo-random
+ numbers. The generation method must ensure with high probability
+ that the numbers used for each IP remote address are unique over some
+ time period, such as one hour.
+
+ KEYID is the concatenation of the initiator and responder cookies and
+ the domain of interpretation; it is the name of keying material.
+
+ sKEYID is used to denote the keying material named by the KEYID. It
+ is never transmitted, but it is used in various calculations
+ performed by the two parties.
+
+ OK_KEYX and OK_NEWGRP are distinct message types.
+
+ IDP is a bit indicating whether or not material after the encryption
+ boundary (see appendix B), is encrypted. NIDP means not encrypted.
+
+ g^x and g^y are encodings of group elements, where g is a special
+ group element indicated in the group description (see Appendix A) and
+ g^x indicates that element raised to the x'th power. The type of the
+ encoding is either a variable precision integer or a pair of such
+
+
+
+Orman Informational [Page 5]
+
+RFC 2412 The OAKLEY Key Determination Protocol November 1998
+
+
+ integers, as indicated in the group operation in the group
+ description. Note that we will write g^xy as a short-hand for
+ g^(xy). See Appendix F for references that describe implementing
+ large integer computations and the relationship between various group
+ definitions and basic arithmetic operations.
+
+ EHAO is a list of encryption/hash/authentication choices. Each item
+ is a pair of values: a class name and an algorithm name.
+
+ EHAS is a set of three items selected from the EHAO list, one from
+ each of the classes for encryption, hash, authentication.
+
+ GRP is a name (32-bit value) for the group and its relevant
+ parameters: the size of the integers, the arithmetic operation, and
+ the generator element. There are a few pre-defined GRP's (for 768
+ bit modular exponentiation groups, 1024 bit modexp, 2048 bit modexp,
+ 155-bit and 210-bit elliptic curves, see Appendix E), but
+ participants can share other group descriptions in a later protocol
+ stage (see the section NEW GROUP). It is important to separate
+ notion of the GRP from the group descriptor (Appendix A); the former
+ is a name for the latter.
+
+ The symbol vertical bar "|" is used to denote concatenation of bit
+ strings. Fields are concatenated using their encoded form as they
+ appear in their payload.
+
+ Ni and Nr are nonces selected by the initiator and responder,
+ respectively.
+
+ ID(I) and ID(R) are the identities to be used in authenticating the
+ initiator and responder respectively.
+
+ E{x}Ki indicates the encryption of x using the public key of the
+ initiator. Encryption is done using the algorithm associated with
+ the authentication method; usually this will be RSA.
+
+ S{x}Ki indicates the signature over x using the private key (signing
+ key) of the initiator. Signing is done using the algorithm
+ associated with the authentication method; usually this will be RSA
+ or DSS.
+
+ prf(a, b) denotes the result of applying pseudo-random function "a"
+ to data "b". One may think of "a" as a key or as a value that
+ characterizes the function prf; in the latter case it is the index
+ into a family of functions. Each function in the family provides a
+ "hash" or one-way mixing of the input.
+
+ prf(0, b) denotes the application of a one-way function to data "b".
+
+
+
+Orman Informational [Page 6]
+
+RFC 2412 The OAKLEY Key Determination Protocol November 1998
+
+
+ The similarity with the previous notation is deliberate and indicates
+ that a single algorithm, e.g. MD5, might will used for both purposes.
+ In the first case a "keyed" MD5 transform would be used with key "a";
+ in the second case the transform would have the fixed key value zero,
+ resulting in a one-way function.
+
+ The term "transform" is used to refer to functions defined in
+ auxiliary RFC's. The transform RFC's will be drawn from those
+ defined for IPSEC AH and ESP (see RFC 2401 for the overall
+ architecture encompassing these protocols).
+
+2.3 The Key Exchange Message Overview
+
+ The goal of key exchange processing is the secure establishment of
+ common keying information state in the two parties. This state
+ information is a key name, secret keying material, the identification
+ of the two parties, and three algorithms for use during
+ authentication: encryption (for privacy of the identities of the two
+ parties), hashing (a pseudorandom function for protecting the
+ integrity of the messages and for authenticating message fields), and
+ authentication (the algorithm on which the mutual authentication of
+ the two parties is based). The encodings and meanings for these
+ choices are presented in Appendix B.
+
+ The main mode exchange has five optional features: stateless cookie
+ exchange, perfect forward secrecy for the keying material, secrecy
+ for the identities, perfect forward secrecy for identity secrecy, use
+ of signatures (for non-repudiation). The two parties can use any
+ combination of these features.
+
+ The general outline of processing is that the Initiator of the
+ exchange begins by specifying as much information as he wishes in his
+ first message. The Responder replies, supplying as much information
+ as he wishes. The two sides exchange messages, supplying more
+ information each time, until their requirements are satisfied.
+
+ The choice of how much information to include in each message depends
+ on which options are desirable. For example, if stateless cookies
+ are not a requirement, and identity secrecy and perfect forward
+ secrecy for the keying material are not requirements, and if non-
+ repudiatable signatures are acceptable, then the exchange can be
+ completed in three messages.
+
+ Additional features may increase the number of roundtrips needed for
+ the keying material determination.
+
+ ISAKMP provides fields for specifying the security association
+ parameters for use with the AH and ESP protocols. These security
+
+
+
+Orman Informational [Page 7]
+
+RFC 2412 The OAKLEY Key Determination Protocol November 1998
+
+
+ association payload types are specified in the ISAKMP memo; the
+ payload types can be protected with OAKLEY keying material and
+ algorithms, but this document does not discuss their use.
+
+2.3.1 The Essential Key Exchange Message Fields
+
+ There are 12 fields in an OAKLEY key exchange message. Not all the
+ fields are relevant in every message; if a field is not relevant it
+ can have a null value or not be present (no payload).
+
+ CKY-I originator cookie.
+ CKY-R responder cookie.
+ MSGTYPE for key exchange, will be ISA_KE&AUTH_REQ or
+ ISA_KE&AUTH_REP; for new group definitions,
+ will be ISA_NEW_GROUP_REQ or ISA_NEW_GROUP_REP
+ GRP the name of the Diffie-Hellman group used for
+ the exchange
+ g^x (or g^y) variable length integer representing a power of
+ group generator
+ EHAO or EHAS encryption, hash, authentication functions,
+ offered and selectedj, respectively
+ IDP an indicator as to whether or not encryption with
+ g^xy follows (perfect forward secrecy for ID's)
+ ID(I) the identity for the Initiator
+ ID(R) the identity for the Responder
+ Ni nonce supplied by the Initiator
+ Nr nonce supplied by the Responder
+
+ The construction of the cookies is implementation dependent. Phil
+ Karn has recommended making them the result of a one-way function
+ applied to a secret value (changed periodically), the local and
+ remote IP address, and the local and remote UDP port. In this way,
+ the cookies remain stateless and expire periodically. Note that with
+ OAKLEY, this would cause the KEYID's derived from the secret value to
+ also expire, necessitating the removal of any state information
+ associated with it.
+
+ In order to support pre-distributed keys, we recommend that
+ implementations reserve some portion of their cookie space to
+ permanent keys. The encoding of these depends only on the local
+ implementation.
+
+ The encryption functions used with OAKLEY must be cryptographic
+ transforms which guarantee privacy and integrity for the message
+ data. Merely using DES in CBC mode is not permissible. The
+ MANDATORY and OPTIONAL transforms will include any that satisfy this
+ criteria and are defined for use with RFC 2406 (ESP).
+
+
+
+
+Orman Informational [Page 8]
+
+RFC 2412 The OAKLEY Key Determination Protocol November 1998
+
+
+ The one-way (hash) functions used with OAKLEY must be cryptographic
+ transforms which can be used as either keyed hash (pseudo-random) or
+ non-keyed transforms. The MANDATORY and OPTIONAL transforms will
+ include any that are defined for use with RFC 2406 (AH).
+
+ Where nonces are indicated, they will be variable precision integers
+ with an entropy value that matches the "strength" attribute of the
+ GRP used with the exchange. If no GRP is indicated, the nonces must
+ be at least 90 bits long. The pseudo-random generator for the nonce
+ material should start with initial data that has at least 90 bits of
+ entropy; see RFC 1750.
+
+2.3.1.1 Exponent Advice
+
+ Ideally, the exponents will have at least 180 bits of entropy for
+ every key exchange. This ensures complete independence of keying
+ material between two exchanges (note that this applies if only one of
+ the parties chooses a random exponent). In practice, implementors
+ may wish to base several key exchanges on a single base value with
+ 180 bits of entropy and use one-way hash functions to guarantee that
+ exposure of one key will not compromise others. In this case, a good
+ recommendation is to keep the base values for nonces and cookies
+ separate from the base value for exponents, and to replace the base
+ value with a full 180 bits of entropy as frequently as possible.
+
+ The values 0 and p-1 should not be used as exponent values;
+ implementors should be sure to check for these values, and they
+ should also refuse to accept the values 1 and p-1 from remote parties
+ (where p is the prime used to define a modular exponentiation group).
+
+2.3.2 Mapping to ISAKMP Message Structures
+
+ All the OAKLEY message fields correspond to ISAKMP message payloads
+ or payload components. The relevant payload fields are the SA
+ payload, the AUTH payload, the Certificate Payload, the Key Exchange
+ Payload. The ISAKMP protocol framwork is a work in progress at this
+ time, and the exact mapping of Oakley message fields to ISAKMP
+ payloads is also in progress (to be known as the Resolution
+ document).
+
+ Some of the ISAKMP header and payload fields will have constant
+ values when used with OAKLEY. The exact values to be used will be
+ published in a Domain of Interpretation document accompanying the
+ Resolution document.
+
+ In the following we indicate where each OAKLEY field appears in the
+ ISAKMP message structure. These are recommended only; the Resolution
+ document will be the final authority on this mapping.
+
+
+
+Orman Informational [Page 9]
+
+RFC 2412 The OAKLEY Key Determination Protocol November 1998
+
+
+ CKY-I ISAKMP header
+ CKY-R ISAKMP header
+ MSGTYPE Message Type in ISAKMP header
+ GRP SA payload, Proposal section
+ g^x (or g^y) Key Exchange Payload, encoded as a variable
+ precision integer
+ EHAO and EHAS SA payload, Proposal section
+ IDP A bit in the RESERVED field in the AUTH header
+ ID(I) AUTH payload, Identity field
+ ID(R) AUTH payload, Identity field
+ Ni AUTH payload, Nonce Field
+ Nr AUTH payload, Nonce Field
+ S{...}Kx AUTH payload, Data Field
+ prf{K,...} AUTH payload, Data Field
+
+2.4 The Key Exchange Protocol
+
+ The exact number and content of messages exchanged during an OAKLEY
+ key exchange depends on which options the Initiator and Responder
+ want to use. A key exchange can be completed with three or more
+ messages, depending on those options.
+
+ The three components of the key determination protocol are the
+
+ 1. cookie exchange (optionally stateless)
+ 2. Diffie-Hellman half-key exchange (optional, but essential for
+ perfect forward secrecy)
+ 3. authentication (options: privacy for ID's, privacy for ID's
+ with PFS, non-repudiatable)
+
+ The initiator can supply as little information as a bare exchange
+ request, carrying no additional information. On the other hand the
+ initiator can begin by supplying all of the information necessary for
+ the responder to authenticate the request and complete the key
+ determination quickly, if the responder chooses to accept this
+ method. If not, the responder can reply with a minimal amount of
+ information (at the minimum, a cookie).
+
+ The method of authentication can be digital signatures, public key
+ encryption, or an out-of-band symmetric key. The three different
+ methods lead to slight variations in the messages, and the variations
+ are illustrated by examples in this section.
+
+ The Initiator is responsible for retransmitting messages if the
+ protocol does not terminate in a timely fashion. The Responder must
+ therefore avoid discarding reply information until it is acknowledged
+ by Initiator in the course of continuing the protocol.
+
+
+
+
+Orman Informational [Page 10]
+
+RFC 2412 The OAKLEY Key Determination Protocol November 1998
+
+
+ The remainder of this section contains examples demonstrating how to
+ use OAKLEY options.
+
+2.4.1 An Aggressive Example
+
+ The following example indicates how two parties can complete a key
+ exchange in three messages. The identities are not secret, the
+ derived keying material is protected by PFS.
+
+ By using digital signatures, the two parties will have a proof of
+ communication that can be recorded and presented later to a third
+ party.
+
+ The keying material implied by the group exponentials is not needed
+ for completing the exchange. If it is desirable to defer the
+ computation, the implementation can save the "x" and "g^y" values and
+ mark the keying material as "uncomputed". It can be computed from
+ this information later.
+
+ Initiator Responder
+ --------- ---------
+ -> CKY-I, 0, OK_KEYX, GRP, g^x, EHAO, NIDP, ->
+ ID(I), ID(R), Ni, 0,
+ S{ID(I) | ID(R) | Ni | 0 | GRP | g^x | 0 | EHAO}Ki
+ <- CKY-R, CKY-I, OK_KEYX, GRP, g^y, EHAS, NIDP,
+ ID(R), ID(I), Nr, Ni,
+ S{ID(R) | ID(I) | Nr | Ni | GRP | g^y | g^x | EHAS}Kr <-
+ -> CKY-I, CKY-R, OK_KEYX, GRP, g^x, EHAS, NIDP, ->
+ ID(I), ID(R), Ni, Nr,
+ S{ID(I) | ID(R) | Ni | Nr | GRP | g^x | g^y | EHAS}Ki
+
+ NB "NIDP" means that the PFS option for hiding identities is not used.
+ i.e., the identities are not encrypted using a key based on g^xy
+
+ NB Fields are shown separated by commas in this document; they are
+ concatenated in the actual protocol messages using their encoded
+ forms as specified in the ISAKMP/Oakley Resolution document.
+
+ The result of this exchange is a key with KEYID = CKY-I|CKY-R and
+ value
+
+ sKEYID = prf(Ni | Nr, g^xy | CKY-I | CKY-R).
+
+ The processing outline for this exchange is as follows:
+
+
+
+
+
+
+
+Orman Informational [Page 11]
+
+RFC 2412 The OAKLEY Key Determination Protocol November 1998
+
+
+ Initiation
+
+ The Initiator generates a unique cookie and associates it with the
+ expected IP address of the responder, and its chosen state
+ information: GRP (the group identifier), a pseudo-randomly
+ selected exponent x, g^x, EHAO list, nonce, identities. The first
+ authentication choice in the EHAO list is an algorithm that
+ supports digital signatures, and this is used to sign the ID's and
+ the nonce and group id. The Initiator further
+
+ notes that the key is in the initial state of "unauthenticated",
+ and
+
+ sets a timer for possible retransmission and/or termination of the
+ request.
+
+ When the Responder receives the message, he may choose to ignore all
+ the information and treat it as merely a request for a cookie,
+ creating no state. If CKY-I is not already in use by the source
+ address in the IP header, the responder generates a unique cookie,
+ CKY-R. The next steps depend on the Responder's preferences. The
+ minimal required response is to reply with the first cookie field set
+ to zero and CKY-R in the second field. For this example we will
+ assume that the responder is more aggressive (for the alternatives,
+ see section 6) and accepts the following:
+
+ group with identifier GRP,
+ first authentication choice (which must be the digital signature
+ method used to sign the Initiator message),
+ lack of perfect forward secrecy for protecting the identities,
+ identity ID(I) and identity ID(R)
+
+ In this example the Responder decides to accept all the information
+ offered by the initiator. It validates the signature over the signed
+ portion of the message, and associate the pair (CKY-I, CKY-R) with
+ the following state information:
+
+ the source and destination network addresses of the message
+
+ key state of "unauthenticated"
+
+ the first algorithm from the authentication offer
+
+ group GRP, a "y" exponent value in group GRP, and g^x from the
+ message
+
+ the nonce Ni and a pseudorandomly selected value Nr
+
+
+
+
+Orman Informational [Page 12]
+
+RFC 2412 The OAKLEY Key Determination Protocol November 1998
+
+
+ a timer for possible destruction of the state.
+
+ The Responder computes g^y, forms the reply message, and then signs
+ the ID and nonce information with the private key of ID(R) and sends
+ it to the Initiator. In all exchanges, each party should make sure
+ that he neither offers nor accepts 1 or g^(p-1) as an exponential.
+
+ In this example, to expedite the protocol, the Responder implicitly
+ accepts the first algorithm in the Authentication class of the EHAO
+ list. This because he cannot validate the Initiator signature
+ without accepting the algorithm for doing the signature. The
+ Responder's EHAS list will also reflect his acceptance.
+
+ The Initiator receives the reply message and
+ validates that CKY-I is a valid association for the network
+ address of the incoming message,
+
+ adds the CKY-R value to the state for the pair (CKY-I, network
+ address), and associates all state information with the pair
+ (CKY-I, CKY-R),
+
+ validates the signature of the responder over the state
+ information (should validation fail, the message is discarded)
+
+ adds g^y to its state information,
+
+ saves the EHA selections in the state,
+
+ optionally computes (g^y)^x (= g^xy) (this can be deferred until
+ after sending the reply message),
+
+ sends the reply message, signed with the public key of ID(I),
+
+ marks the KEYID (CKY-I|CKY-R) as authenticated,
+
+ and composes the reply message and signature.
+
+ When the Responder receives the Initiator message, and if the
+ signature is valid, it marks the key as being in the authenticated
+ state. It should compute g^xy and associate it with the KEYID.
+
+ Note that although PFS for identity protection is not used, PFS for
+ the derived keying material is still present because the Diffie-
+ Hellman half-keys g^x and g^y are exchanged.
+
+ Even if the Responder only accepts some of the Initiator information,
+ the Initiator will consider the protocol to be progressing. The
+ Initiator should assume that fields that were not accepted by the
+
+
+
+Orman Informational [Page 13]
+
+RFC 2412 The OAKLEY Key Determination Protocol November 1998
+
+
+ Responder were not recorded by the Responder.
+
+ If the Responder does not accept the aggressive exchange and selects
+ another algorithm for the A function, then the protocol will not
+ continue using the signature algorithm or the signature value from
+ the first message.
+
+2.4.1.1 Fields Not Present
+
+ If the Responder does not accept all the fields offered by the
+ Initiator, he should include null values for those fields in his
+ response. Section 6 has guidelines on how to select fields in a
+ "left-to-right" manner. If a field is not accepted, then it and all
+ following fields must have null values.
+
+ The Responder should not record any information that it does not
+ accept. If the ID's and nonces have null values, there will not be a
+ signature over these null values.
+
+2.4.1.2 Signature via Pseudo-Random Functions
+
+ The aggressive example is written to suggest that public key
+ technology is used for the signatures. However, a pseudorandom
+ function can be used, if the parties have previously agreed to such a
+ scheme and have a shared key.
+
+ If the first proposal in the EHAO list is an "existing key" method,
+ then the KEYID named in that proposal will supply the keying material
+ for the "signature" which is computed using the "H" algorithm
+ associated with the KEYID.
+
+ Suppose the first proposal in EHAO is
+ EXISTING-KEY, 32
+ and the "H" algorithm for KEYID 32 is MD5-HMAC, by prior negotiation.
+ The keying material is some string of bits, call it sK32. Then in
+ the first message in the aggressive exchange, where the signature
+
+ S{ID(I), ID(R), Ni, 0, GRP, g^x, EHAO}Ki
+
+ is indicated, the signature computation would be performed by
+ MD5-HMAC_func(KEY=sK32, DATA = ID(I) | ID(R) | Ni | 0 | GRP | g^x
+ | g^y | EHAO) (The exact definition of the algorithm corresponding
+ to "MD5-HMAC- func" will appear in the RFC defining that transform).
+
+ The result of this computation appears in the Authentication payload.
+
+
+
+
+
+
+Orman Informational [Page 14]
+
+RFC 2412 The OAKLEY Key Determination Protocol November 1998
+
+
+2.4.2 An Aggressive Example With Hidden Identities
+
+ The following example indicates how two parties can complete a key
+ exchange without using digital signatures. Public key cryptography
+ hides the identities during authentication. The group exponentials
+ are exchanged and authenticated, but the implied keying material
+ (g^xy) is not needed during the exchange.
+
+ This exchange has an important difference from the previous signature
+ scheme --- in the first message, an identity for the responder is
+ indicated as cleartext: ID(R'). However, the identity hidden with
+ the public key cryptography is different: ID(R). This happens
+ because the Initiator must somehow tell the Responder which
+ public/private key pair to use for the decryption, but at the same
+ time, the identity is hidden by encryption with that public key.
+
+ The Initiator might elect to forgo secrecy of the Responder identity,
+ but this is undesirable. Instead, if there is a well-known identity
+ for the Responder node, the public key for that identity can be used
+ to encrypt the actual Responder identity.
+
+ Initiator Responder
+ --------- ---------
+ -> CKY-I, 0, OK_KEYX, GRP, g^x, EHAO, NIDP, ->
+ ID(R'), E{ID(I), ID(R), E{Ni}Kr}Kr'
+ <- CKY-R, CKY-I, OK_KEYX, GRP, g^y, EHAS, NIDP,
+ E{ID(R), ID(I), Nr}Ki,
+ prf(Kir, ID(R) | ID(I) | GRP | g^y | g^x | EHAS) <-
+ -> CKY-I, CKY-R, OK_KEYX, GRP, 0, 0, NIDP,
+ prf(Kir, ID(I) | ID(R) | GRP | g^x | g^y | EHAS) ->
+
+ Kir = prf(0, Ni | Nr)
+
+ NB "NIDP" means that the PFS option for hiding identities is not used.
+
+ NB The ID(R') value is included in the Authentication payload as
+ described in Appendix B.
+
+ The result of this exchange is a key with KEYID = CKY-I|CKY-R and
+ value sKEYID = prf(Ni | Nr, g^xy | CKY-I | CKY-R).
+
+ The processing outline for this exchange is as follows:
+
+ Initiation
+ The Initiator generates a unique cookie and associates it with the
+ expected IP address of the responder, and its chosen state
+ information: GRP, g^x, EHAO list. The first authentication choice
+ in the EHAO list is an algorithm that supports public key
+
+
+
+Orman Informational [Page 15]
+
+RFC 2412 The OAKLEY Key Determination Protocol November 1998
+
+
+ encryption. The Initiator also names the two identities to be
+ used for the connection and enters these into the state. A well-
+ known identity for the responder machine is also chosen, and the
+ public key for this identity is used to encrypt the nonce Ni and
+ the two connection identities. The Initiator further
+
+ notes that the key is in the initial state of "unauthenticated",
+ and
+
+ sets a timer for possible retransmission and/or termination of the
+ request.
+
+ When the Responder receives the message, he may choose to ignore all
+ the information and treat it as merely a request for a cookie,
+ creating no state.
+
+ If CKY-I is not already in use by the source address in the IP
+ header, the Responder generates a unique cookie, CKY-R. As before,
+ the next steps depend on the responder's preferences. The minimal
+ required response is a message with the first cookie field set to
+ zero and CKY-R in the second field. For this example we will assume
+ that responder is more aggressive and accepts the following:
+
+ group GRP, first authentication choice (which must be the public
+ key encryption algorithm used to encrypt the payload), lack of
+ perfect forward secrecy for protecting the identities, identity
+ ID(I), identity ID(R)
+
+ The Responder must decrypt the ID and nonce information, using the
+ private key for the R' ID. After this, the private key for the R ID
+ will be used to decrypt the nonce field.
+
+ The Responder now associates the pair (CKY-I, CKY-R) with the
+ following state information:
+
+ the source and destination network addresses of the message
+
+ key state of "unauthenticated"
+
+ the first algorithm from each class in the EHAO (encryption-hash-
+ authentication algorithm offers) list
+
+ group GRP and a y and g^y value in group GRP
+
+ the nonce Ni and a pseudorandomly selected value Nr
+
+ a timer for possible destruction of the state.
+
+
+
+
+Orman Informational [Page 16]
+
+RFC 2412 The OAKLEY Key Determination Protocol November 1998
+
+
+ The Responder then encrypts the state information with the public key
+ of ID(I), forms the prf value, and sends it to the Initiator.
+
+ The Initiator receives the reply message and
+ validates that CKY-I is a valid association for the network
+ address of the incoming message,
+
+ adds the CKY-R value to the state for the pair (CKY-I, network
+ address), and associates all state information with the pair
+ (CKY-I, CKY-R),
+
+ decrypts the ID and nonce information
+
+ checks the prf calculation (should this fail, the message is
+ discarded)
+
+ adds g^y to its state information,
+
+ saves the EHA selections in the state,
+
+ optionally computes (g^x)^y (= g^xy) (this may be deferred), and
+
+ sends the reply message, encrypted with the public key of ID(R),
+
+ and marks the KEYID (CKY-I|CKY-R) as authenticated.
+
+ When the Responder receives this message, it marks the key as being
+ in the authenticated state. If it has not already done so, it should
+ compute g^xy and associate it with the KEYID.
+
+ The secret keying material sKEYID = prf(Ni | Nr, g^xy | CKY-I |
+ CKY-R)
+
+ Note that although PFS for identity protection is not used, PFS for
+ the derived keying material is still present because the Diffie-
+ Hellman half-keys g^x and g^y are exchanged.
+
+2.4.3 An Aggressive Example With Private Identities and Without Diffie-
+ Hellman
+
+ Considerable computational expense can be avoided if perfect forward
+ secrecy is not a requirement for the session key derivation. The two
+ parties can exchange nonces and secret key parts to achieve the
+ authentication and derive keying material. The long-term privacy of
+ data protected with derived keying material is dependent on the
+ private keys of each of the parties.
+
+
+
+
+
+Orman Informational [Page 17]
+
+RFC 2412 The OAKLEY Key Determination Protocol November 1998
+
+
+ In this exchange, the GRP has the value 0 and the field for the group
+ exponential is used to hold a nonce value instead.
+
+ As in the previous section, the first proposed algorithm must be a
+ public key encryption system; by responding with a cookie and a non-
+ zero exponential field, the Responder implicitly accepts the first
+ proposal and the lack of perfect forward secrecy for the identities
+ and derived keying material.
+
+ Initiator Responder
+ --------- ---------
+ -> CKY-I, 0, OK_KEYX, 0, 0, EHAO, NIDP, ->
+ ID(R'), E{ID(I), ID(R), sKi}Kr', Ni
+ <- CKY-R, CKY-I, OK_KEYX, 0, 0, EHAS, NIDP,
+ E{ID(R), ID(I), sKr}Ki, Nr,
+ prf(Kir, ID(R) | ID(I) | Nr | Ni | EHAS) <-
+ -> CKY-I, CKY-R, OK_KEYX, EHAS, NIDP,
+ prf(Kir, ID(I) | ID(R) | Ni | Nr | EHAS) ->
+
+ Kir = prf(0, sKi | sKr)
+
+ NB The sKi and sKr values go into the nonce fields. The change in
+ notation is meant to emphasize that their entropy is critical to
+ setting the keying material.
+
+ NB "NIDP" means that the PFS option for hiding identities is not
+ used.
+
+ The result of this exchange is a key with KEYID = CKY-I|CKY-R and
+ value sKEYID = prf(Kir, CKY-I | CKY-R).
+
+2.4.3 A Conservative Example
+
+ In this example the two parties are minimally aggressive; they use
+ the cookie exchange to delay creation of state, and they use perfect
+ forward secrecy to protect the identities. For this example, they
+ use public key encryption for authentication; digital signatures or
+ pre-shared keys can also be used, as illustrated previously. The
+ conservative example here does not change the use of nonces, prf's,
+ etc., but it does change how much information is transmitted in each
+ message.
+
+ The responder considers the ability of the initiator to repeat CKY-R
+ as weak evidence that the message originates from a "live"
+ correspondent on the network and the correspondent is associated with
+ the initiator's network address. The initiator makes similar
+ assumptions when CKY-I is repeated to the initiator.
+
+
+
+
+Orman Informational [Page 18]
+
+RFC 2412 The OAKLEY Key Determination Protocol November 1998
+
+
+ All messages must have either valid cookies or at least one zero
+ cookie. If both cookies are zero, this indicates a request for a
+ cookie; if only the initiator cookie is zero, it is a response to a
+ cookie request.
+
+ Information in messages violating the cookie rules cannot be used for
+ any OAKLEY operations.
+
+ Note that the Initiator and Responder must agree on one set of EHA
+ algorithms; there is not one set for the Responder and one for the
+ Initiator. The Initiator must include at least MD5 and DES in the
+ initial offer.
+
+ Fields not indicated have null values.
+
+ Initiator Responder
+ --------- ---------
+ -> 0, 0, OK_KEYX ->
+ <- 0, CKY-R, OK_KEYX <-
+ -> CKY-I, CKY-R, OK_KEYX, GRP, g^x, EHAO ->
+ <- CKY-R, CKY-I, OK_KEYX, GRP, g^y, EHAS <-
+ -> CKY-I, CKY-R, OK_KEYX, GRP, g^x, IDP*,
+ ID(I), ID(R), E{Ni}Kr, ->
+ <- CKY-R, CKY-I, OK_KEYX, GRP, 0 , 0, IDP, <-
+ E{Nr, Ni}Ki, ID(R), ID(I),
+ prf(Kir, ID(R) | ID(I) | GRP | g^y | g^x | EHAS )
+ -> CKY-I, CKY-R, OK_KEYX, GRP, 0 , 0, IDP,
+ prf(Kir, ID(I) | ID(R) | GRP | g^x | g^y | EHAS ) ->
+
+ Kir = prf(0, Ni | Nr)
+
+ * when IDP is in effect, authentication payloads are encrypted with
+ the selected encryption algorithm using the keying material prf(0,
+ g^xy). (The transform defining the encryption algorithm will
+ define how to select key bits from the keying material.) This
+ encryption is in addition to and after any public key encryption.
+ See Appendix B.
+
+ Note that in the first messages, several fields are omitted from
+ the description. These fields are present as null values.
+
+ The first exchange allows the Responder to use stateless cookies; if
+ the responder generates cookies in a manner that allows him to
+ validate them without saving them, as in Photuris, then this is
+ possible. Even if the Initiator includes a cookie in his initial
+ request, the responder can still use stateless cookies by merely
+ omitting the CKY-I from his reply and by declining to record the
+ Initiator cookie until it appears in a later message.
+
+
+
+Orman Informational [Page 19]
+
+RFC 2412 The OAKLEY Key Determination Protocol November 1998
+
+
+ After the exchange is complete, both parties compute the shared key
+ material sKEYID as prf(Ni | Nr, g^xy | CKY-I | CKY-R) where "prf" is
+ the pseudo-random function in class "hash" selected in the EHA list.
+
+ As with the cookies, each party considers the ability of the remote
+ side to repeat the Ni or Nr value as a proof that Ka, the public key
+ of party a, speaks for the remote party and establishes its identity.
+
+ In analyzing this exchange, it is important to note that although the
+ IDP option ensures that the identities are protected with an
+ ephemeral key g^xy, the authentication itself does not depend on
+ g^xy. It is essential that the authentication steps validate the g^x
+ and g^y values, and it is thus imperative that the authentication not
+ involve a circular dependency on them. A third party could intervene
+ with a "man-in-middle" scheme to convince the initiator and responder
+ to use different g^xy values; although such an attack might result in
+ revealing the identities to the eavesdropper, the authentication
+ would fail.
+
+2.4.4 Extra Strength for Protection of Encryption Keys
+
+ The nonces Ni and Nr are used to provide an extra dimension of
+ secrecy in deriving session keys. This makes the secrecy of the key
+ depend on two different problems: the discrete logarithm problem in
+ the group G, and the problem of breaking the nonce encryption scheme.
+ If RSA encryption is used, then this second problem is roughly
+ equivalent to factoring the RSA public keys of both the initiator and
+ responder.
+
+ For authentication, the key type, the validation method, and the
+ certification requirement must be indicated.
+
+2.5 Identity and Authentication
+
+2.5.1 Identity
+
+ In OAKLEY exchanges the Initiator offers Initiator and Responder ID's
+ -- the former is the claimed identity for the Initiator, and the
+ latter is the requested ID for the Responder.
+
+ If neither ID is specified, the ID's are taken from the IP header
+ source and destination addresses.
+
+ If the Initiator doesn't supply a responder ID, the Responder can
+ reply by naming any identity that the local policy allows. The
+ Initiator can refuse acceptance by terminating the exchange.
+
+
+
+
+
+Orman Informational [Page 20]
+
+RFC 2412 The OAKLEY Key Determination Protocol November 1998
+
+
+ The Responder can also reply with a different ID than the Initiator
+ suggested; the Initiator can accept this implicitly by continuing the
+ exchange or refuse it by terminating (not replying).
+
+2.5.2 Authentication
+
+ The authentication of principals to one another is at the heart of
+ any key exchange scheme. The Internet community must decide on a
+ scalable standard for solving this problem, and OAKLEY must make use
+ of that standard. At the time of this writing, there is no such
+ standard, though several are emerging. This document attempts to
+ describe how a handful of standards could be incorporated into
+ OAKLEY, without attempting to pick and choose among them.
+
+ The following methods can appear in OAKLEY offers:
+
+ a. Pre-shared Keys
+ When two parties have arranged for a trusted method of
+ distributing secret keys for their mutual authentication, they can
+ be used for authentication. This has obvious scaling problems for
+ large systems, but it is an acceptable interim solution for some
+ situations. Support for pre-shared keys is REQUIRED.
+
+ The encryption, hash, and authentication algorithm for use with a
+ pre-shared key must be part of the state information distributed
+ with the key itself.
+
+ The pre-shared keys have a KEYID and keying material sKEYID; the
+ KEYID is used in a pre-shared key authentication option offer.
+ There can be more than one pre-shared key offer in a list.
+
+ Because the KEYID persists over different invocations of OAKLEY
+ (after a crash, etc.), it must occupy a reserved part of the KEYID
+ space for the two parties. A few bits can be set aside in each
+ party's "cookie space" to accommodate this.
+
+ There is no certification authority for pre-shared keys. When a
+ pre-shared key is used to generate an authentication payload, the
+ certification authority is "None", the Authentication Type is
+ "Preshared", and the payload contains
+
+ the KEYID, encoded as two 64-bit quantities, and the result of
+ applying the pseudorandom hash function to the message body
+ with the sKEYID forming the key for the function
+
+
+
+
+
+
+
+Orman Informational [Page 21]
+
+RFC 2412 The OAKLEY Key Determination Protocol November 1998
+
+
+ b. DNS public keys
+ Security extensions to the DNS protocol [DNSSEC] provide a
+ convenient way to access public key information, especially for
+ public keys associated with hosts. RSA keys are a requirement for
+ secure DNS implementations; extensions to allow optional DSS keys
+ are a near-term possibility.
+
+ DNS KEY records have associated SIG records that are signed by a
+ zone authority, and a hierarchy of signatures back to the root
+ server establishes a foundation for trust. The SIG records
+ indicate the algorithm used for forming the signature.
+
+ OAKLEY implementations must support the use of DNS KEY and SIG
+ records for authenticating with respect to IPv4 and IPv6 addresses
+ and fully qualified domain names. However, implementations are
+ not required to support any particular algorithm (RSA, DSS, etc.).
+
+ c. RSA public keys w/o certification authority signature PGP
+ [Zimmerman] uses public keys with an informal method for
+ establishing trust. The format of PGP public keys and naming
+ methods will be described in a separate RFC. The RSA algorithm
+ can be used with PGP keys for either signing or encryption; the
+ authentication option should indicate either RSA-SIG or RSA-ENC,
+ respectively. Support for this is OPTIONAL.
+
+ d.1 RSA public keys w/ certificates There are various formats and
+ naming conventions for public keys that are signed by one or more
+ certification authorities. The Public Key Interchange Protocol
+ discusses X.509 encodings and validation. Support for this is
+ OPTIONAL.
+
+ d.2 DSS keys w/ certificates Encoding for the Digital Signature
+ Standard with X.509 is described in draft-ietf-ipsec-dss-cert-
+ 00.txt. Support for this is OPTIONAL; an ISAKMP Authentication
+ Type will be assigned.
+
+2.5.3 Validating Authentication Keys
+
+ The combination of the Authentication algorithm, the Authentication
+ Authority, the Authentication Type, and a key (usually public) define
+ how to validate the messages with respect to the claimed identity.
+ The key information will be available either from a pre-shared key,
+ or from some kind of certification authority.
+
+ Generally the certification authority produces a certificate binding
+ the entity name to a public key. OAKLEY implementations must be
+ prepared to fetch and validate certificates before using the public
+ key for OAKLEY authentication purposes.
+
+
+
+Orman Informational [Page 22]
+
+RFC 2412 The OAKLEY Key Determination Protocol November 1998
+
+
+ The ISAKMP Authentication Payload defines the Authentication
+ Authority field for specifying the authority that must be apparent in
+ the trust hierarchy for authentication.
+
+ Once an appropriate certificate is obtained (see 2.4.3), the
+ validation method will depend on the Authentication Type; if it is
+ PGP then the PGP signature validation routines can be called to
+ satisfy the local web-of-trust predicates; if it is RSA with X.509
+ certificates, the certificate must be examined to see if the
+ certification authority signature can be validated, and if the
+ hierarchy is recognized by the local policy.
+
+2.5.4 Fetching Identity Objects
+
+ In addition to interpreting the certificate or other data structure
+ that contains an identity, users of OAKLEY must face the task of
+ retrieving certificates that bind a public key to an identifier and
+ also retrieving auxiliary certificates for certifying authorities or
+ co-signers (as in the PGP web of trust).
+
+ The ISAKMP Credentials Payload can be used to attach useful
+ certificates to OAKLEY messages. The Credentials Payload is defined
+ in Appendix B.
+
+ Support for accessing and revoking public key certificates via the
+ Secure DNS protocol [SECDNS] is MANDATORY for OAKLEY implementations.
+ Other retrieval methods can be used when the AUTH class indicates a
+ preference.
+
+ The Public Key Interchange Protocol discusses a full protocol that
+ might be used with X.509 encoded certificates.
+
+2.6 Interface to Cryptographic Transforms
+
+ The keying material computed by the key exchange should have at least
+ 90 bits of entropy, which means that it must be at least 90 bits in
+ length. This may be more or less than is required for keying the
+ encryption and/or pseudorandom function transforms.
+
+ The transforms used with OAKLEY should have auxiliary algorithms
+ which take a variable precision integer and turn it into keying
+ material of the appropriate length. For example, a DES algorithm
+ could take the low order 56 bits, a triple DES algorithm might use
+ the following:
+
+ K1 = low 56 bits of md5(0|sKEYID)
+ K2 = low 56 bits of md5(1|sKEYID)
+ K3 = low 56 bits of md5(2|sKEYID)
+
+
+
+Orman Informational [Page 23]
+
+RFC 2412 The OAKLEY Key Determination Protocol November 1998
+
+
+ The transforms will be called with the keying material encoded as a
+ variable precision integer, the length of the data, and the block of
+ memory with the data. Conversion of the keying material to a
+ transform key is the responsibility of the transform.
+
+2.7 Retransmission, Timeouts, and Error Messages
+
+ If a response from the Responder is not elicited in an appropriate
+ amount of time, the message should be retransmitted by the Initiator.
+ These retransmissions must be handled gracefully by both parties; the
+ Responder must retain information for retransmitting until the
+ Initiator moves to the next message in the protocol or completes the
+ exchange.
+
+ Informational error messages present a problem because they cannot be
+ authenticated using only the information present in an incomplete
+ exchange; for this reason, the parties may wish to establish a
+ default key for OAKLEY error messages. A possible method for
+ establishing such a key is described in Appendix B, under the use of
+ ISA_INIT message types.
+
+ In the following the message type is OAKLEY Error, the KEYID supplies
+ the H algorithm and key for authenticating the message contents; this
+ value is carried in the Sig/Prf payload.
+
+ The Error payload contains the error code and the contents of the
+ rejected message.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Orman Informational [Page 24]
+
+RFC 2412 The OAKLEY Key Determination Protocol November 1998
+
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ ! !
+ ~ Initiator-Cookie ~
+ / ! !
+KEYID +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ \ ! !
+ ~ Responder-Cookie ~
+ ! !
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ ! Domain of Interpretation !
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ ! Message Type ! Exch ! Vers ! Length !
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ ! SPI (unused) !
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ ! SPI (unused) !
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ ! Error Payload !
+ ~ ~
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ ! Sig/prf Payload
+ ~ ~
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ The error message will contain the cookies as presented in the
+ offending message, the message type OAKLEY_ERROR, and the reason for
+ the error, followed by the rejected message.
+
+ Error messages are informational only, and the correctness of the
+ protocol does not depend on them.
+
+ Error reasons:
+
+ TIMEOUT exchange has taken too long, state destroyed
+ AEH_ERROR an unknown algorithm appears in an offer
+ GROUP_NOT_SUPPORTED GRP named is not supported
+ EXPONENTIAL_UNACCEPTABLE exponential too large/small or is +-1
+ SELECTION_NOT_OFFERED selection does not occur in offer
+ NO_ACCEPTABLE_OFFERS no offer meets host requirements
+ AUTHENTICATION_FAILURE signature or hash function fails
+ RESOURCE_EXCEEDED too many exchanges or too much state info
+ NO_EXCHANGE_IN_PROGRESS a reply received with no request in progress
+
+
+
+
+
+
+
+Orman Informational [Page 25]
+
+RFC 2412 The OAKLEY Key Determination Protocol November 1998
+
+
+2.8 Additional Security for Privacy Keys: Private Groups
+
+ If the two parties have need to use a Diffie-Hellman key
+ determination scheme that does not depend on the standard group
+ definitions, they have the option of establishing a private group.
+ The authentication need not be repeated, because this stage of the
+ protocol will be protected by a pre-existing authentication key. As
+ an extra security measure, the two parties will establish a private
+ name for the shared keying material, so even if they use exactly the
+ same group to communicate with other parties, the re-use will not be
+ apparent to passive attackers.
+
+ Private groups have the advantage of making a widespread passive
+ attack much harder by increasing the number of groups that would have
+ to be exhaustively analyzed in order to recover a large number of
+ session keys. This contrasts with the case when only one or two
+ groups are ever used; in that case, one would expect that years and
+ years of session keys would be compromised.
+
+ There are two technical challenges to face: how can a particular user
+ create a unique and appropriate group, and how can a second party
+ assure himself that the proposed group is reasonably secure?
+
+ The security of a modular exponentiation group depends on the largest
+ prime factor of the group size. In order to maximize this, one can
+ choose "strong" or Sophie Germaine primes, P = 2Q + 1, where P and Q
+ are prime. However, if P = kQ + 1, where k is small, then the
+ strength of the group is still considerable. These groups are known
+ as Schnorr subgroups, and they can be found with much less
+ computational effort than Sophie-Germaine primes.
+
+ Schnorr subgroups can also be validated efficiently by using probable
+ prime tests.
+
+ It is also fairly easy to find P, k, and Q such that the largest
+ prime factor can be easily proven to be Q.
+
+ We estimate that it would take about 10 minutes to find a new group
+ of about 2^1024 elements, and this could be done once a day by a
+ scheduled process; validating a group proposed by a remote party
+ would take perhaps a minute on a 25 MHz RISC machine or a 66 MHz CISC
+ machine.
+
+ We note that validation is done only between previously mutually
+ authenticated parties, and that a new group definition always follows
+ and is protected by a key established using a well-known group.
+ There are five points to keep in mind:
+
+
+
+
+Orman Informational [Page 26]
+
+RFC 2412 The OAKLEY Key Determination Protocol November 1998
+
+
+ a. The description and public identifier for the new group are
+ protected by the well-known group.
+
+ b. The responder can reject the attempt to establish the new
+ group, either because he is too busy or because he cannot validate
+ the largest prime factor as being sufficiently large.
+
+ c. The new modulus and generator can be cached for long periods of
+ time; they are not security critical and need not be associated
+ with ongoing activity.
+
+ d. Generating a new g^x value periodically will be more expensive
+ if there are many groups cached; however, the importance of
+ frequently generating new g^x values is reduced, so the time
+ period can be lengthened correspondingly.
+
+ e. All modular exponentiation groups have subgroups that are
+ weaker than the main group. For Sophie Germain primes, if the
+ generator is a square, then there are only two elements in the
+ subgroup: 1 and g^(-1) (same as g^(p-1)) which we have already
+ recommended avoiding. For Schnorr subgroups with k not equal to
+ 2, the subgroup can be avoided by checking that the exponential is
+ not a kth root of 1 (e^k != 1 mod p).
+
+2.8.1 Defining a New Group
+
+ This section describes how to define a new group. The description of
+ the group is hidden from eavesdroppers, and the identifier assigned
+ to the group is unique to the two parties. Use of the new group for
+ Diffie-Hellman key exchanges is described in the next section.
+
+ The secrecy of the description and the identifier increases the
+ difficulty of a passive attack, because if the group descriptor is
+ not known to the attacker, there is no straightforward and efficient
+ way to gain information about keys calculated using the group.
+
+ Only the description of the new group need be encrypted in this
+ exchange. The hash algorithm is implied by the OAKLEY session named
+ by the group. The encryption is the encryption function of the
+ OAKLEY session.
+
+ The descriptor of the new group is encoded in the new group payload.
+ The nonces are encoded in the Authentication Payload.
+
+ Data beyond the encryption boundary is encrypted using the transform
+ named by the KEYID.
+
+
+
+
+
+Orman Informational [Page 27]
+
+RFC 2412 The OAKLEY Key Determination Protocol November 1998
+
+
+ The following messages use the ISAKMP Key Exchange Identifier OAKLEY
+ New Group.
+
+ To define a new modular exponentiation group:
+
+ Initiator Responder
+ --------- ----------
+ -> KEYID, ->
+ INEWGRP,
+ Desc(New Group), Na
+ prf(sKEYID, Desc(New Group) | Na)
+
+ <- KEYID,
+ INEWGRPRS,
+ Na, Nb
+ prf(sKEYID, Na | Nb | Desc(New Group)) <-
+
+ -> KEYID,
+ INEWGRPACK
+ prf(sKEYID, Nb | Na | Desc(New Group)) ->
+
+ These messages are encrypted at the encryption boundary using the key
+ indicated. The hash value is placed in the "digital signature" field
+ (see Appendix B).
+
+ New GRP identifier = trunc16(Na) | trunc16(Nb)
+
+ (trunc16 indicates truncation to 16 bits; the initiator and
+ responder must use nonces that have distinct upper bits from any
+ used for current GRPID's)
+
+ Desc(G) is the encoding of the descriptor for the group descriptor
+ (see Appendix A for the format of a group descriptor)
+
+ The two parties must store the mapping between the new group
+ identifier GRP and the group descriptor Desc(New Group). They must
+ also note the identities used for the KEYID and copy these to the
+ state for the new group.
+
+ Note that one could have the same group descriptor associated with
+ several KEYID's. Pre-calculation of g^x values may be done based
+ only on the group descriptor, not the private group name.
+
+2.8.2 Deriving a Key Using a Private Group
+
+ Once a private group has been established, its group id can be used
+ in the key exchange messages in the GRP position. No changes to the
+ protocol are required.
+
+
+
+Orman Informational [Page 28]
+
+RFC 2412 The OAKLEY Key Determination Protocol November 1998
+
+
+2.9 Quick Mode: New Keys From Old,
+
+ When an authenticated KEYID and associated keying material sKEYID
+ already exist, it is easy to derive additional KEYID's and keys
+ sharing similar attributes (GRP, EHA, etc.) using only hashing
+ functions. The KEYID might be one that was derived in Main Mode, for
+ example.
+
+ On the other hand, the authenticated key may be a manually
+ distributed key, one that is shared by the initiator and responder
+ via some means external to OAKLEY. If the distribution method has
+ formed the KEYID using appropriately unique values for the two halves
+ (CKY-I and CKY-R), then this method is applicable.
+
+ In the following, the Key Exchange Identifier is OAKLEY Quick Mode.
+ The nonces are carried in the Authentication Payload, and the prf
+ value is carried in the Authentication Payload; the Authentication
+ Authority is "None" and the type is "Pre-Shared".
+
+ The protocol is:
+
+ Initiator Responder
+ --------- ---------
+ -> KEYID, INEWKRQ, Ni, prf(sKEYID, Ni) ->
+ <- KEYID, INEWKRS, Nr, prf(sKEYID, 1 | Nr | Ni) <-
+ -> KEYID, INEWKRP, 0, prf(sKEYID, 0 | Ni | Nr) ->
+
+ The New KEYID, NKEYID, is Ni | Nr
+
+ sNKEYID = prf(sKEYID, Ni | Nr )
+
+ The identities and EHA values associated with NKEYID are the same as
+ those associated with KEYID.
+
+ Each party must validate the hash values before using the new key for
+ any purpose.
+
+2.10 Defining and Using Pre-Distributed Keys
+
+ If a key and an associated key identifier and state information have
+ been distributed manually, then the key can be used for any OAKLEY
+ purpose. The key must be associated with the usual state
+ information: ID's and EHA algorithms.
+
+ Local policy dictates when a manual key can be included in the OAKLEY
+ database. For example, only privileged users would be permitted to
+ introduce keys associated with privileged ID's, an unprivileged user
+ could only introduce keys associated with her own ID.
+
+
+
+Orman Informational [Page 29]
+
+RFC 2412 The OAKLEY Key Determination Protocol November 1998
+
+
+2.11 Distribution of an External Key
+
+ Once an OAKLEY session key and ancillary algorithms are established,
+ the keying material and the "H" algorithm can be used to distribute
+ an externally generated key and to assign a KEYID to it.
+
+ In the following, KEYID represents an existing, authenticated OAKLEY
+ session key, and sNEWKEYID represents the externally generated keying
+ material.
+
+ In the following, the Key Exchange Identifier is OAKLEY External
+ Mode. The Key Exchange Payload contains the new key, which is
+ protected
+
+ Initiator Responder
+ --------- ---------
+ -> KEYID, IEXTKEY, Ni, prf(sKEYID, Ni) ->
+ <- KEYID, IEXTKEY, Nr, prf(sKEYID, 1 | Nr | Ni) <-
+ -> KEYID, IEXTKEY, Kir xor sNEWKEYID*, prf(Kir, sNEWKEYID | Ni | Nr) ->
+
+ Kir = prf(sKEYID, Ni | Nr)
+
+ * this field is carried in the Key Exchange Payload.
+
+ Each party must validate the hash values using the "H" function in
+ the KEYID state before changing any key state information.
+
+ The new key is recovered by the Responder by calculating the xor of
+ the field in the Authentication Payload with the Kir value.
+
+ The new key identifier, naming the keying material sNEWKEYID, is
+ prf(sKEYID, 1 | Ni | Nr).
+
+ Note that this exchange does not require encryption. Hugo Krawcyzk
+ suggested the method and noted its advantage.
+
+2.11.1 Cryptographic Strength Considerations
+
+ The strength of the key used to distribute the external key must be
+ at least equal to the strength of the external key. Generally, this
+ means that the length of the sKEYID material must be greater than or
+ equal to the length of the sNEWKEYID material.
+
+ The derivation of the external key, its strength or intended use are
+ not addressed by this protocol; the parties using the key must have
+ some other method for determining these properties.
+
+
+
+
+
+Orman Informational [Page 30]
+
+RFC 2412 The OAKLEY Key Determination Protocol November 1998
+
+
+ As of early 1996, it appears that for 90 bits of cryptographic
+ strength, one should use a modular exponentiation group modulus of
+ 2000 bits. For 128 bits of strength, a 3000 bit modulus is required.
+
+3. Specifying and Deriving Security Associations
+
+ When a security association is defined, only the KEYID need be given.
+ The responder should be able to look up the state associated with the
+ KEYID value and find the appropriate keying material, sKEYID.
+
+ Deriving keys for use with IPSEC protocols such as ESP or AH is a
+ subject covered in the ISAKMP/Oakley Resolution document. That
+ document also describes how to negotiate acceptable parameter sets
+ and identifiers for ESP and AH, and how to exactly calculate the
+ keying material for each instance of the protocols. Because the
+ basic keying material defined here (g^xy) may be used to derive keys
+ for several instances of ESP and AH, the exact mechanics of using
+ one-way functions to turn g^xy into several unique keys is essential
+ to correct usage.
+
+4. ISAKMP Compatibility
+
+ OAKLEY uses ISAKMP header and payload formats, as described in the
+ text and in Appendix B. There are particular noteworthy extensions
+ beyond the version 4 draft.
+
+4.1 Authentication with Existing Keys
+
+ In the case that two parties do not have suitable public key
+ mechanisms in place for authenticating each other, they can use keys
+ that were distributed manually. After establishment of these keys
+ and their associated state in OAKLEY, they can be used for
+ authentication modes that depend on signatures, e.g. Aggressive Mode.
+
+ When an existing key is to appear in an offer list, it should be
+ indicated with an Authentication Algorithm of ISAKMP_EXISTING. This
+ value will be assigned in the ISAKMP RFC.
+
+ When the authentication method is ISAKMP_EXISTING, the authentication
+ authority will have the value ISAKMP_AUTH_EXISTING; the value for
+ this field must not conflict with any authentication authority
+ registered with IANA and is defined in the ISAKMP RFC.
+
+
+
+
+
+
+
+
+
+Orman Informational [Page 31]
+
+RFC 2412 The OAKLEY Key Determination Protocol November 1998
+
+
+ The authentication payload will have two parts:
+
+ the KEYID for the pre-existing key
+
+ the identifier for the party to be authenticated by the pre-
+ existing key.
+
+ The pseudo-random function "H" in the state information for that
+ KEYID will be the signature algorithm, and it will use the keying
+ material for that key (sKEYID) when generating or checking the
+ validity of message data.
+
+ E.g. if the existing key has an KEYID denoted by KID and 128 bits of
+ keying material denoted by sKID and "H" algorithm a transform named
+ HMAC, then to generate a "signature" for a data block, the output of
+ HMAC(sKID, data) will be the corresponding signature payload.
+
+ The KEYID state will have the identities of the local and remote
+ parties for which the KEYID was assigned; it is up to the local
+ policy implementation to decide when it is appropriate to use such a
+ key for authenticating other parties. For example, a key distributed
+ for use between two Internet hosts A and B may be suitable for
+ authenticating all identities of the form "alice@A" and "bob@B".
+
+4.2 Third Party Authentication
+
+ A local security policy might restrict key negotiation to trusted
+ parties. For example, two OAKLEY daemons running with equal
+ sensitivity labels on two machines might wish to be the sole arbiters
+ of key exchanges between users with that same sensitivity label. In
+ this case, some way of authenticating the provenance of key exchange
+ requests is needed. I.e., the identities of the two daemons should
+ be bound to a key, and that key will be used to form a "signature"
+ for the key exchange messages.
+
+ The Signature Payload, in Appendix B, is for this purpose. This
+ payload names a KEYID that is in existence before the start of the
+ current exchange. The "H" transform for that KEYID is used to
+ calculate an integrity/authentication value for all payloads
+ preceding the signature.
+
+ Local policy can dictate which KEYID's are appropriate for signing
+ further exchanges.
+
+
+
+
+
+
+
+
+Orman Informational [Page 32]
+
+RFC 2412 The OAKLEY Key Determination Protocol November 1998
+
+
+4.3 New Group Mode
+
+ OAKLEY uses a new KEI for the exchange that defines a new group.
+
+5. Security Implementation Notes
+
+ Timing attacks that are capable of recovering the exponent value used
+ in Diffie-Hellman calculations have been described by Paul Kocher
+ [Kocher]. In order to nullify the attack, implementors must take
+ pains to obscure the sequence of operations involved in carrying out
+ modular exponentiations.
+
+ A "blinding factor" can accomplish this goal. A group element, r, is
+ chosen at random. When an exponent x is chosen, the value r^(-x) is
+ also calculated. Then, when calculating (g^y)^x, the implementation
+ will calculate this sequence:
+
+ A = (rg^y)
+ B = A^x = (rg^y)^x = (r^x)(g^(xy))
+ C = B*r^(-x) = (r^x)(r^-(x))(g^(xy)) = g^(xy)
+
+ The blinding factor is only necessary if the exponent x is used more
+ than 100 times (estimate by Richard Schroeppel).
+
+6. OAKLEY Parsing and State Machine
+
+ There are many pathways through OAKLEY, but they follow a left-to-
+ right parsing pattern of the message fields.
+
+ The initiator decides on an initial message in the following order:
+
+ 1. Offer a cookie. This is not necessary but it helps with
+ aggressive exchanges.
+
+ 2. Pick a group. The choices are the well-known groups or any
+ private groups that may have been negotiated. The very first
+ exchange between two Oakley daemons with no common state must
+ involve a well-known group (0, meaning no group, is a well-known
+ group). Note that the group identifier, not the group descriptor,
+ is used in the message.
+
+ If a non-null group will be used, it must be included with the
+ first message specifying EHAO. It need not be specified until
+ then.
+
+ 3. If PFS will be used, pick an exponent x and present g^x.
+
+ 4. Offer Encryption, Hash, and Authentication lists.
+
+
+
+Orman Informational [Page 33]
+
+RFC 2412 The OAKLEY Key Determination Protocol November 1998
+
+
+ 5. Use PFS for hiding the identities
+
+ If identity hiding is not used, then the initiator has this
+ option:
+
+ 6. Name the identities and include authentication information
+
+ The information in the authentication section depends on the first
+ authentication offer. In this aggressive exchange, the Initiator
+ hopes that the Responder will accept all the offered information and
+ the first authentication method. The authentication method
+ determines the authentication payload as follows:
+
+ 1. Signing method. The signature will be applied to all the
+ offered information.
+
+ 2. A public key encryption method. The algorithm will be used to
+ encrypt a nonce in the public key of the requested Responder
+ identity. There are two cases possible, depending on whether or
+ not identity hiding is used:
+
+ a. No identity hiding. The ID's will appear as plaintext.
+ b. Identity hiding. A well-known ID, call it R', will appear
+ as plaintext in the authentication payload. It will be
+ followed by two ID's and a nonce; these will be encrypted using
+ the public key for R'.
+
+ 3. A pre-existing key method. The pre-existing key will be used
+ to encrypt a nonce. If identity hiding is used, the ID's will be
+ encrypted in place in the payload, using the "E" algorithm
+ associated with the pre-existing key.
+
+ The Responder can accept all, part or none of the initial message.
+
+ The Responder accepts as many of the fields as he wishes, using the
+ same decision order as the initiator. At any step he can stop,
+ implicitly rejecting further fields (which will have null values in
+ his response message). The minimum response is a cookie and the GRP.
+
+ 1. Accept cookie. The Responder may elect to record no state
+ information until the Initiator successfully replies with a cookie
+ chosen by the responder. If so, the Responder replies with a
+ cookie, the GRP, and no other information.
+
+ 2. Accept GRP. If the group is not acceptable, the Responder will
+ not reply. The Responder may send an error message indicating the
+ the group is not acceptable (modulus too small, unknown
+ identifier, etc.) Note that "no group" has two meanings during
+
+
+
+Orman Informational [Page 34]
+
+RFC 2412 The OAKLEY Key Determination Protocol November 1998
+
+
+ the protocol: it may mean the group is not yet specified, or it
+ may mean that no group will be used (and thus PFS is not
+ possible).
+
+ 3. Accept the g^x value. The Responder indicates his acceptance
+ of the g^x value by including his own g^y value in his reply. He
+ can postpone this by ignoring g^x and putting a zero length g^y
+ value in his reply. He can also reject the g^x value with an
+ error message.
+
+ 4. Accept one element from each of the EHA lists. The acceptance
+ is indicated by a non-zero proposal.
+
+ 5. If PFS for identity hiding is requested, then no further data
+ will follow.
+
+ 6. If the authentication payload is present, and if the first item
+ in the offered authentication class is acceptable, then the
+ Responder must validate/decrypt the information in the
+ authentication payload and signature payload, if present. The
+ Responder should choose a nonce and reply using the same
+ authentication/hash algorithm as the Initiator used.
+
+ The Initiator notes which information the Responder has accepted,
+ validates/decrypts any signed, hashed, or encrypted fields, and if
+ the data is acceptable, replies in accordance to the EHA methods
+ selected by the Responder. The Initiator replies are distinguished
+ from his initial message by the presence of the non-zero value for
+ the Responder cookie.
+
+ The output of the signature or prf function will be encoded as a
+ variable precision integer as described in Appendix C. The KEYID
+ will indicate KEYID that names keying material and the Hash or
+ Signature function.
+
+7. The Credential Payload
+
+ Useful certificates with public key information can be attached to
+ OAKLEY messages using Credential Payloads as defined in the ISAKMP
+ document. It should be noted that the identity protection option
+ applies to the credentials as well as the identities.
+
+Security Considerations
+
+ The focus of this document is security; hence security considerations
+ permeate this memo.
+
+
+
+
+
+Orman Informational [Page 35]
+
+RFC 2412 The OAKLEY Key Determination Protocol November 1998
+
+
+Author's Address
+
+ Hilarie K. Orman
+ Department of Computer Science
+ University of Arizona
+
+ EMail: ho@darpa.mil
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Orman Informational [Page 36]
+
+RFC 2412 The OAKLEY Key Determination Protocol November 1998
+
+
+APPENDIX A Group Descriptors
+
+ Three distinct group representations can be used with OAKLEY. Each
+ group is defined by its group operation and the kind of underlying
+ field used to represent group elements. The three types are modular
+ exponentiation groups (named MODP herein), elliptic curve groups over
+ the field GF[2^N] (named EC2N herein), and elliptic curve groups over
+ GF[P] (named ECP herein) For each representation, many distinct
+ realizations are possible, depending on parameter selection.
+
+ With a few exceptions, all the parameters are transmitted as if they
+ were non-negative multi-precision integers, using the format defined
+ in this appendix (note, this is distinct from the encoding in
+ Appendix C). Every multi-precision integer has a prefixed length
+ field, even where this information is redundant.
+
+ For the group type EC2N, the parameters are more properly thought of
+ as very long bit fields, but they are represented as multi-precision
+ integers, (with length fields, and right-justified). This is the
+ natural encoding.
+
+ MODP means the classical modular exponentiation group, where the
+ operation is to calculate G^X (mod P). The group is defined by the
+ numeric parameters P and G. P must be a prime. G is often 2, but
+ may be a larger number. 2 <= G <= P-2.
+
+ ECP is an elliptic curve group, modulo a prime number P. The
+ defining equation for this kind of group is
+ Y^2 = X^3 + AX + B The group operation is taking a multiple of an
+ elliptic-curve point. The group is defined by 5 numeric parameters:
+ The prime P, two curve parameters A and B, and a generator (X,Y).
+ A,B,X,Y are all interpreted mod P, and must be (non-negative)
+ integers less than P. They must satisfy the defining equation,
+ modulo P.
+
+ EC2N is an elliptic curve group, over the finite field F[2^N]. The
+ defining equation for this kind of group is
+ Y^2 + XY = X^3 + AX^2 + B (This equation differs slightly from the
+ mod P case: it has an XY term, and an AX^2 term instead of an AX
+ term.)
+
+ We must specify the field representation, and then the elliptic
+ curve. The field is specified by giving an irreducible polynomial
+ (mod 2) of degree N. This polynomial is represented as an integer of
+ size between 2^N and 2^(N+1), as if the defining polynomial were
+ evaluated at the value U=2.
+
+
+
+
+
+Orman Informational [Page 37]
+
+RFC 2412 The OAKLEY Key Determination Protocol November 1998
+
+
+ For example, the field defined by the polynomial U^155 + U^62 + 1 is
+ represented by the integer 2^155 + 2^62 + 1. The group is defined by
+ 4 more parameters, A,B,X,Y. These parameters are elements of the
+ field GF[2^N], and can be thought of as polynomials of degree < N,
+ with (mod 2) coefficients. They fit in N-bit fields, and are
+ represented as integers < 2^N, as if the polynomial were evaluated at
+ U=2. For example, the field element U^2 + 1 would be represented by
+ the integer 2^2+1, which is 5. The two parameters A and B define the
+ curve. A is frequently 0. B must not be 0. The parameters X and Y
+ select a point on the curve. The parameters A,B,X,Y must satisfy the
+ defining equation, modulo the defining polynomial, and mod 2.
+
+ Group descriptor formats:
+
+ Type of group: A two-byte field,
+ assigned values for the types "MODP", "ECP", "EC2N"
+ will be defined (see ISAKMP-04).
+ Size of a field element, in bits. This is either Ceiling(log2 P)
+ or the degree of the irreducible polynomial: a 32-bit integer.
+ The prime P or the irreducible field polynomial: a multi-precision
+ integer.
+ The generator: 1 or 2 values, multi-precision integers.
+ EC only: The parameters of the curve: 2 values, multi-precision
+ integers.
+
+ The following parameters are Optional (each of these may appear
+ independently):
+ a value of 0 may be used as a place-holder to represent an unspecified
+ parameter; any number of the parameters may be sent, from 0 to 3.
+
+ The largest prime factor: the encoded value that is the LPF of the
+ group size, a multi-precision integer.
+
+ EC only: The order of the group: multi-precision integer.
+ (The group size for MODP is always P-1.)
+
+ Strength of group: 32-bit integer.
+ The strength of the group is approximately the number of key-bits
+ protected.
+ It is determined by the log2 of the effort to attack the group.
+ It may change as we learn more about cryptography.
+
+ This is a generic example for a "classic" modular exponentiation group:
+ Group type: "MODP"
+ Size of a field element in bits: Log2 (P) rounded *up*. A 32bit
+ integer.
+ Defining prime P: a multi-precision integer.
+ Generator G: a multi-precision integer. 2 <= G <= P-2.
+
+
+
+Orman Informational [Page 38]
+
+RFC 2412 The OAKLEY Key Determination Protocol November 1998
+
+
+ <optional>
+ Largest prime factor of P-1: the multi-precision integer Q
+ Strength of group: a 32-bit integer. We will specify a formula
+ for calculating this number (TBD).
+
+ This is a generic example for an elliptic curve group, mod P:
+ Group type: "ECP"
+ Size of a field element in bits: Log2 (P) rounded *up*,
+ a 32 bit integer.
+ Defining prime P: a multi-precision integer.
+ Generator (X,Y): 2 multi-precision integers, each < P.
+ Parameters of the curve A,B: 2 multi-precision integers, each < P.
+ <optional>
+ Largest prime factor of the group order: a multi-precision integer.
+ Order of the group: a multi-precision integer.
+ Strength of group: a 32-bit integer. Formula TBD.
+
+ This is a specific example for an elliptic curve group:
+ Group type: "EC2N"
+ Degree of the irreducible polynomial: 155
+ Irreducible polynomial: U^155 + U^62 + 1, represented as the
+ multi-precision integer 2^155 + 2^62 + 1.
+ Generator (X,Y) : represented as 2 multi-precision integers, each
+ < 2^155.
+ For our present curve, these are (decimal) 123 and 456. Each is
+ represented as a multi-precision integer.
+ Parameters of the curve A,B: represented as 2 multi-precision
+ integers, each < 2^155.
+ For our present curve these are 0 and (decimal) 471951, represented
+ as two multi-precision integers.
+
+ <optional>
+ Largest prime factor of the group order:
+
+ 3805993847215893016155463826195386266397436443,
+
+ represented as a multi-precision integer.
+ The order of the group:
+
+ 45671926166590716193865565914344635196769237316
+
+ represented as a multi-precision integer.
+
+ Strength of group: 76, represented as a 32-bit integer.
+
+ The variable precision integer encoding for group descriptor fields
+ is the following. This is a slight variation on the format defined
+ in Appendix C in that a fixed 16-bit value is used first, and the
+
+
+
+Orman Informational [Page 39]
+
+RFC 2412 The OAKLEY Key Determination Protocol November 1998
+
+
+ length is limited to 16 bits. However, the interpretation is
+ otherwise identical.
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ ! Fixed value (TBD) ! Length !
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ . .
+ . Integer .
+ . .
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+
+ The format of a group descriptor is:
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ !1!1! Group Description ! MODP !
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ !1!0! Field Size ! Length !
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ ! MPI !
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ !1!0! Prime ! Length !
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ ! MPI !
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ !1!0! Generator1 ! Length !
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ ! MPI !
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ !1!0! Generator2 ! Length !
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ ! MPI !
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ !1!0! Curve-p1 ! Length !
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ ! MPI !
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ !1!0! Curve-p2 ! Length !
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ ! MPI !
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ !1!0! Largest Prime Factor ! Length !
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ ! MPI !
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+
+
+Orman Informational [Page 40]
+
+RFC 2412 The OAKLEY Key Determination Protocol November 1998
+
+
+ !1!0! Order of Group ! Length !
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ ! MPI !
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ !0!0! Strength of Group ! Length !
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ ! MPI !
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Orman Informational [Page 41]
+
+RFC 2412 The OAKLEY Key Determination Protocol November 1998
+
+
+APPENDIX B Message formats
+
+ The encodings of Oakley messages into ISAKMP payloads is deferred to
+ the ISAKMP/Oakley Resolution document.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Orman Informational [Page 42]
+
+RFC 2412 The OAKLEY Key Determination Protocol November 1998
+
+
+APPENDIX C Encoding a variable precision integer.
+
+ Variable precision integers will be encoded as a 32-bit length field
+ followed by one or more 32-bit quantities containing the
+ representation of the integer, aligned with the most significant bit
+ in the first 32-bit item.
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ ! length !
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ ! first value word (most significant bits) !
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ ! !
+ ~ additional value words ~
+ ! !
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ An example of such an encoding is given below, for a number with 51
+ bits of significance. The length field indicates that 2 32-bit
+ quantities follow. The most significant non-zero bit of the number
+ is in bit 13 of the first 32-bit quantity, the low order bits are in
+ the second 32-bit quantity.
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ ! 1 0!
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ !0 0 0 0 0 0 0 0 0 0 0 0 0 1 x x x x x x x x x x x x x x x x x x!
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ !x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x!
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Orman Informational [Page 43]
+
+RFC 2412 The OAKLEY Key Determination Protocol November 1998
+
+
+APPENDIX D Cryptographic strengths
+
+ The Diffie-Hellman algorithm is used to compute keys that will be
+ used with symmetric algorithms. It should be no easier to break the
+ Diffie-Hellman computation than it is to do an exhaustive search over
+ the symmetric key space. A recent recommendation by an group of
+ cryptographers [Blaze] has recommended a symmetric key size of 75
+ bits for a practical level of security. For 20 year security, they
+ recommend 90 bits.
+
+ Based on that report, a conservative strategy for OAKLEY users would
+ be to ensure that their Diffie-Hellman computations were as secure as
+ at least a 90-bit key space. In order to accomplish this for modular
+ exponentiation groups, the size of the largest prime factor of the
+ modulus should be at least 180 bits, and the size of the modulus
+ should be at least 1400 bits. For elliptic curve groups, the LPF
+ should be at least 180 bits.
+
+ If long-term secrecy of the encryption key is not an issue, then the
+ following parameters may be used for the modular exponentiation
+ group: 150 bits for the LPF, 980 bits for the modulus size.
+
+ The modulus size alone does not determine the strength of the
+ Diffie-Hellman calculation; the size of the exponent used in
+ computing powers within the group is also important. The size of the
+ exponent in bits should be at least twice the size of any symmetric
+ key that will be derived from it. We recommend that ISAKMP
+ implementors use at least 180 bits of exponent (twice the size of a
+ 20-year symmetric key).
+
+ The mathematical justification for these estimates can be found in
+ texts that estimate the effort for solving the discrete log problem,
+ a task that is strongly related to the efficiency of using the Number
+ Field Sieve for factoring large integers. Readers are referred to
+ [Stinson] and [Schneier].
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Orman Informational [Page 44]
+
+RFC 2412 The OAKLEY Key Determination Protocol November 1998
+
+
+APPENDIX E The Well-Known Groups
+
+ The group identifiers:
+
+ 0 No group (used as a placeholder and for non-DH exchanges)
+ 1 A modular exponentiation group with a 768 bit modulus
+ 2 A modular exponentiation group with a 1024 bit modulus
+ 3 A modular exponentiation group with a 1536 bit modulus (TBD)
+ 4 An elliptic curve group over GF[2^155]
+ 5 An elliptic curve group over GF[2^185]
+
+ values 2^31 and higher are used for private group identifiers
+
+ Richard Schroeppel performed all the mathematical and computational
+ work for this appendix.
+
+ Classical Diffie-Hellman Modular Exponentiation Groups
+
+ The primes for groups 1 and 2 were selected to have certain
+ properties. The high order 64 bits are forced to 1. This helps the
+ classical remainder algorithm, because the trial quotient digit can
+ always be taken as the high order word of the dividend, possibly +1.
+ The low order 64 bits are forced to 1. This helps the Montgomery-
+ style remainder algorithms, because the multiplier digit can always
+ be taken to be the low order word of the dividend. The middle bits
+ are taken from the binary expansion of pi. This guarantees that they
+ are effectively random, while avoiding any suspicion that the primes
+ have secretly been selected to be weak.
+
+ Because both primes are based on pi, there is a large section of
+ overlap in the hexadecimal representations of the two primes. The
+ primes are chosen to be Sophie Germain primes (i.e., (P-1)/2 is also
+ prime), to have the maximum strength against the square-root attack
+ on the discrete logarithm problem.
+
+ The starting trial numbers were repeatedly incremented by 2^64 until
+ suitable primes were located.
+
+ Because these two primes are congruent to 7 (mod 8), 2 is a quadratic
+ residue of each prime. All powers of 2 will also be quadratic
+ residues. This prevents an opponent from learning the low order bit
+ of the Diffie-Hellman exponent (AKA the subgroup confinement
+ problem). Using 2 as a generator is efficient for some modular
+ exponentiation algorithms. [Note that 2 is technically not a
+ generator in the number theory sense, because it omits half of the
+ possible residues mod P. From a cryptographic viewpoint, this is a
+ virtue.]
+
+
+
+
+Orman Informational [Page 45]
+
+RFC 2412 The OAKLEY Key Determination Protocol November 1998
+
+
+E.1. Well-Known Group 1: A 768 bit prime
+
+ The prime is 2^768 - 2^704 - 1 + 2^64 * { [2^638 pi] + 149686 }. Its
+ decimal value is
+ 155251809230070893513091813125848175563133404943451431320235
+ 119490296623994910210725866945387659164244291000768028886422
+ 915080371891804634263272761303128298374438082089019628850917
+ 0691316593175367469551763119843371637221007210577919
+
+ This has been rigorously verified as a prime.
+
+ The representation of the group in OAKLEY is
+
+ Type of group: "MODP"
+ Size of field element (bits): 768
+ Prime modulus: 21 (decimal)
+ Length (32 bit words): 24
+ Data (hex):
+ FFFFFFFF FFFFFFFF C90FDAA2 2168C234 C4C6628B 80DC1CD1
+ 29024E08 8A67CC74 020BBEA6 3B139B22 514A0879 8E3404DD
+ EF9519B3 CD3A431B 302B0A6D F25F1437 4FE1356D 6D51C245
+ E485B576 625E7EC6 F44C42E9 A63A3620 FFFFFFFF FFFFFFFF
+ Generator: 22 (decimal)
+ Length (32 bit words): 1
+ Data (hex): 2
+
+ Optional Parameters:
+ Group order largest prime factor: 24 (decimal)
+ Length (32 bit words): 24
+ Data (hex):
+ 7FFFFFFF FFFFFFFF E487ED51 10B4611A 62633145 C06E0E68
+ 94812704 4533E63A 0105DF53 1D89CD91 28A5043C C71A026E
+ F7CA8CD9 E69D218D 98158536 F92F8A1B A7F09AB6 B6A8E122
+ F242DABB 312F3F63 7A262174 D31D1B10 7FFFFFFF FFFFFFFF
+ Strength of group: 26 (decimal)
+ Length (32 bit words) 1
+ Data (hex):
+ 00000042
+
+E.2. Well-Known Group 2: A 1024 bit prime
+
+ The prime is 2^1024 - 2^960 - 1 + 2^64 * { [2^894 pi] + 129093 }.
+ Its decimal value is
+ 179769313486231590770839156793787453197860296048756011706444
+ 423684197180216158519368947833795864925541502180565485980503
+ 646440548199239100050792877003355816639229553136239076508735
+ 759914822574862575007425302077447712589550957937778424442426
+ 617334727629299387668709205606050270810842907692932019128194
+
+
+
+Orman Informational [Page 46]
+
+RFC 2412 The OAKLEY Key Determination Protocol November 1998
+
+
+ 467627007
+
+ The primality of the number has been rigorously proven.
+
+ The representation of the group in OAKLEY is
+ Type of group: "MODP"
+ Size of field element (bits): 1024
+ Prime modulus: 21 (decimal)
+ Length (32 bit words): 32
+ Data (hex):
+ FFFFFFFF FFFFFFFF C90FDAA2 2168C234 C4C6628B 80DC1CD1
+ 29024E08 8A67CC74 020BBEA6 3B139B22 514A0879 8E3404DD
+ EF9519B3 CD3A431B 302B0A6D F25F1437 4FE1356D 6D51C245
+ E485B576 625E7EC6 F44C42E9 A637ED6B 0BFF5CB6 F406B7ED
+ EE386BFB 5A899FA5 AE9F2411 7C4B1FE6 49286651 ECE65381
+ FFFFFFFF FFFFFFFF
+ Generator: 22 (decimal)
+ Length (32 bit words): 1
+ Data (hex): 2
+
+ Optional Parameters:
+ Group order largest prime factor: 24 (decimal)
+ Length (32 bit words): 32
+ Data (hex):
+ 7FFFFFFF FFFFFFFF E487ED51 10B4611A 62633145 C06E0E68
+ 94812704 4533E63A 0105DF53 1D89CD91 28A5043C C71A026E
+ F7CA8CD9 E69D218D 98158536 F92F8A1B A7F09AB6 B6A8E122
+ F242DABB 312F3F63 7A262174 D31BF6B5 85FFAE5B 7A035BF6
+ F71C35FD AD44CFD2 D74F9208 BE258FF3 24943328 F67329C0
+ FFFFFFFF FFFFFFFF
+ Strength of group: 26 (decimal)
+ Length (32 bit words) 1
+ Data (hex):
+ 0000004D
+
+E.3. Well-Known Group 3: An Elliptic Curve Group Definition
+
+ The curve is based on the Galois field GF[2^155] with 2^155 field
+ elements. The irreducible polynomial for the field is u^155 + u^62 +
+ 1. The equation for the elliptic curve is
+
+ Y^2 + X Y = X^3 + A X + B
+
+ X, Y, A, B are elements of the field.
+
+ For the curve specified, A = 0 and
+
+ B = u^18 + u^17 + u^16 + u^13 + u^12 + u^9 + u^8 + u^7 + u^3 + u^2 +
+
+
+
+Orman Informational [Page 47]
+
+RFC 2412 The OAKLEY Key Determination Protocol November 1998
+
+
+ u + 1.
+
+ B is represented in binary as the bit string 1110011001110001111; in
+ decimal this is 471951, and in hex 7338F.
+
+ The generator is a point (X,Y) on the curve (satisfying the curve
+ equation, mod 2 and modulo the field polynomial).
+
+ X = u^6 + u^5 + u^4 + u^3 + u + 1
+
+ and
+
+ Y = u^8 + u^7 + u^6 + u^3.
+
+ The binary bit strings for X and Y are 1111011 and 111001000; in
+ decimal they are 123 and 456.
+
+ The group order (the number of curve points) is
+ 45671926166590716193865565914344635196769237316
+ which is 12 times the prime
+
+ 3805993847215893016155463826195386266397436443.
+ (This prime has been rigorously proven.) The generating point (X,Y)
+ has order 4 times the prime; the generator is the triple of some
+ curve point.
+
+ OAKLEY representation of this group:
+ Type of group: "EC2N"
+ Size of field element (bits): 155
+ Irreducible field polynomial: 21 (decimal)
+ Length (32 bit words): 5
+ Data (hex):
+ 08000000 00000000 00000000 40000000 00000001
+ Generator:
+ X coordinate: 22 (decimal)
+ Length (32 bit words): 1
+ Data (hex): 7B
+ Y coordinate: 22 (decimal)
+ Length (32 bit words): 1
+ Data (hex): 1C8
+ Elliptic curve parameters:
+ A parameter: 23 (decimal)
+ Length (32 bit words): 1
+ Data (hex): 0
+ B parameter: 23 (decimal)
+ Length (32 bit words): 1
+ Data (hex): 7338F
+
+
+
+
+Orman Informational [Page 48]
+
+RFC 2412 The OAKLEY Key Determination Protocol November 1998
+
+
+ Optional Parameters:
+ Group order largest prime factor: 24 (decimal)
+ Length (32 bit words): 5
+ Data (hex):
+ 00AAAAAA AAAAAAAA AAAAB1FC F1E206F4 21A3EA1B
+ Group order: 25 (decimal)
+ Length (32 bit words): 5
+ Data (hex):
+ 08000000 00000000 000057DB 56985371 93AEF944
+ Strength of group: 26 (decimal)
+ Length (32 bit words) 1
+ Data (hex):
+ 0000004C
+
+E.4. Well-Known Group 4: A Large Elliptic Curve Group Definition
+
+ This curve is based on the Galois field GF[2^185] with 2^185 field
+ elements. The irreducible polynomial for the field is
+
+ u^185 + u^69 + 1.
+
+ The equation for the elliptic curve is
+
+ Y^2 + X Y = X^3 + A X + B.
+
+ X, Y, A, B are elements of the field. For the curve specified, A = 0
+ and
+
+ B = u^12 + u^11 + u^10 + u^9 + u^7 + u^6 + u^5 + u^3 + 1.
+
+ B is represented in binary as the bit string 1111011101001; in
+ decimal this is 7913, and in hex 1EE9.
+
+ The generator is a point (X,Y) on the curve (satisfying the curve
+ equation, mod 2 and modulo the field polynomial);
+
+ X = u^4 + u^3 and Y = u^3 + u^2 + 1.
+
+ The binary bit strings for X and Y are 11000 and 1101; in decimal
+ they are 24 and 13. The group order (the number of curve points) is
+
+ 49039857307708443467467104857652682248052385001045053116,
+
+ which is 4 times the prime
+
+ 12259964326927110866866776214413170562013096250261263279.
+
+ (This prime has been rigorously proven.)
+
+
+
+Orman Informational [Page 49]
+
+RFC 2412 The OAKLEY Key Determination Protocol November 1998
+
+
+ The generating point (X,Y) has order 2 times the prime; the generator
+ is the double of some curve point.
+
+ OAKLEY representation of this group:
+
+ Type of group: "EC2N"
+ Size of field element (bits): 185
+ Irreducible field polynomial: 21 (decimal)
+ Length (32 bit words): 6
+ Data (hex):
+ 02000000 00000000 00000000 00000020 00000000 00000001
+ Generator:
+ X coordinate: 22 (decimal)
+ Length (32 bit words): 1
+ Data (hex): 18
+ Y coordinate: 22 (decimal)
+ Length (32 bit words): 1
+ Data (hex): D
+ Elliptic curve parameters:
+ A parameter: 23 (decimal)
+ Length (32 bit words): 1
+ Data (hex): 0
+ B parameter: 23 (decimal)
+ Length (32 bit words): 1
+ Data (hex): 1EE9
+
+ Optional parameters:
+ Group order largest prime factor: 24 (decimal)
+ Length (32 bit words): 6
+ Data (hex):
+ 007FFFFF FFFFFFFF FFFFFFFF F6FCBE22 6DCF9210 5D7E53AF
+ Group order: 25 (decimal)
+ Length (32 bit words): 6
+ Data (hex):
+ 01FFFFFF FFFFFFFF FFFFFFFF DBF2F889 B73E4841 75F94EBC
+ Strength of group: 26 (decimal)
+ Length (32 bit words) 1
+ Data (hex):
+ 0000005B
+
+E.5. Well-Known Group 5: A 1536 bit prime
+
+ The prime is 2^1536 - 2^1472 - 1 + 2^64 * { [2^1406 pi] + 741804
+ }.
+ Its decimal value is
+ 241031242692103258855207602219756607485695054850245994265411
+ 694195810883168261222889009385826134161467322714147790401219
+ 650364895705058263194273070680500922306273474534107340669624
+
+
+
+Orman Informational [Page 50]
+
+RFC 2412 The OAKLEY Key Determination Protocol November 1998
+
+
+ 601458936165977404102716924945320037872943417032584377865919
+ 814376319377685986952408894019557734611984354530154704374720
+ 774996976375008430892633929555996888245787241299381012913029
+ 459299994792636526405928464720973038494721168143446471443848
+ 8520940127459844288859336526896320919633919
+
+ The primality of the number has been rigorously proven.
+
+ The representation of the group in OAKLEY is
+ Type of group: "MODP"
+ Size of field element (bits): 1536
+ Prime modulus: 21 (decimal)
+ Length (32 bit words): 48
+ Data (hex):
+ FFFFFFFF FFFFFFFF C90FDAA2 2168C234 C4C6628B 80DC1CD1
+ 29024E08 8A67CC74 020BBEA6 3B139B22 514A0879 8E3404DD
+ EF9519B3 CD3A431B 302B0A6D F25F1437 4FE1356D 6D51C245
+ E485B576 625E7EC6 F44C42E9 A637ED6B 0BFF5CB6 F406B7ED
+ EE386BFB 5A899FA5 AE9F2411 7C4B1FE6 49286651 ECE45B3D
+ C2007CB8 A163BF05 98DA4836 1C55D39A 69163FA8 FD24CF5F
+ 83655D23 DCA3AD96 1C62F356 208552BB 9ED52907 7096966D
+ 670C354E 4ABC9804 F1746C08 CA237327 FFFFFFFF FFFFFFFF
+ Generator: 22 (decimal)
+ Length (32 bit words): 1
+ Data (hex): 2
+
+ Optional Parameters:
+ Group order largest prime factor: 24 (decimal)
+ Length (32 bit words): 48
+ Data (hex):
+ 7FFFFFFF FFFFFFFF E487ED51 10B4611A 62633145 C06E0E68
+ 94812704 4533E63A 0105DF53 1D89CD91 28A5043C C71A026E
+ F7CA8CD9 E69D218D 98158536 F92F8A1B A7F09AB6 B6A8E122
+ F242DABB 312F3F63 7A262174 D31BF6B5 85FFAE5B 7A035BF6
+ F71C35FD AD44CFD2 D74F9208 BE258FF3 24943328 F6722D9E
+ E1003E5C 50B1DF82 CC6D241B 0E2AE9CD 348B1FD4 7E9267AF
+ C1B2AE91 EE51D6CB 0E3179AB 1042A95D CF6A9483 B84B4B36
+ B3861AA7 255E4C02 78BA3604 6511B993 FFFFFFFF FFFFFFFF
+ Strength of group: 26 (decimal)
+ Length (32 bit words) 1
+ Data (hex):
+ 0000005B
+
+
+
+
+
+
+
+
+
+Orman Informational [Page 51]
+
+RFC 2412 The OAKLEY Key Determination Protocol November 1998
+
+
+Appendix F Implementing Group Operations
+
+ The group operation must be implemented as a sequence of arithmetic
+ operations; the exact operations depend on the type of group. For
+ modular exponentiation groups, the operation is multi-precision
+ integer multiplication and remainders by the group modulus. See
+ Knuth Vol. 2 [Knuth] for a discussion of how to implement these for
+ large integers. Implementation recommendations for elliptic curve
+ group operations over GF[2^N] are described in [Schroeppel].
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Orman Informational [Page 52]
+
+RFC 2412 The OAKLEY Key Determination Protocol November 1998
+
+
+BIBLIOGRAPHY
+
+ [RFC2401] Atkinson, R., "Security Architecture for the
+ Internet Protocol", RFC 2401, November 1998.
+
+ [RFC2406] Atkinson, R., "IP Encapsulating Security Payload (ESP)",
+ RFC 2406, November 1998.
+
+ [RFC2402] Atkinson, R., "IP Authentication Header", RFC 2402,
+ November 1998.
+
+ [Blaze] Blaze, Matt et al., MINIMAL KEY LENGTHS FOR SYMMETRIC
+ CIPHERS TO PROVIDE ADEQUATE COMMERCIAL SECURITY. A
+ REPORT BY AN AD HOC GROUP OF CRYPTOGRAPHERS AND COMPUTER
+ SCIENTISTS... --
+ http://www.bsa.org/policy/encryption/cryptographers.html
+
+ [STS] W. Diffie, P.C. Van Oorschot, and M.J. Wiener,
+ "Authentication and Authenticated Key Exchanges," in
+ Designs, Codes and Cryptography, Kluwer Academic
+ Publishers, 1992, pp. 107
+
+ [SECDNS] Eastlake, D. and C. Kaufman, "Domain Name System
+ Security Extensions", RFC 2065, January 1997.
+
+ [Random] Eastlake, D., Crocker, S. and J. Schiller, "Randomness
+ Recommendations for Security", RFC 1750, December 1994.
+
+ [Kocher] Kocher, Paul, Timing Attack,
+ http://www.cryptography.com/timingattack.old/timingattack.html
+
+ [Knuth] Knuth, Donald E., The Art of Computer Programming, Vol.
+ 2, Seminumerical Algorithms, Addison Wesley, 1969.
+
+ [Krawcyzk] Krawcyzk, Hugo, SKEME: A Versatile Secure Key Exchange
+ Mechanism for Internet, ISOC Secure Networks and
+ Distributed Systems Symposium, San Diego, 1996
+
+ [Schneier] Schneier, Bruce, Applied cryptography: protocols,
+ algorithms, and source code in C, Second edition, John
+ Wiley & Sons, Inc. 1995, ISBN 0-471-12845-7, hardcover.
+ ISBN 0-471-11709-9, softcover.
+
+ [Schroeppel] Schroeppel, Richard, et al.; Fast Key Exchange with
+ Elliptic Curve Systems, Crypto '95, Santa Barbara, 1995.
+ Available on-line as
+ ftp://ftp.cs.arizona.edu/reports/1995/TR95-03.ps (and
+ .Z).
+
+
+
+Orman Informational [Page 53]
+
+RFC 2412 The OAKLEY Key Determination Protocol November 1998
+
+
+ [Stinson] Stinson, Douglas, Cryptography Theory and Practice. CRC
+ Press, Inc., 2000, Corporate Blvd., Boca Raton, FL,
+ 33431-9868, ISBN 0-8493-8521-0, 1995
+
+ [Zimmerman] Philip Zimmermann, The Official Pgp User's Guide,
+ Published by MIT Press Trade, Publication date: June
+ 1995, ISBN: 0262740176
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Orman Informational [Page 54]
+
+RFC 2412 The OAKLEY Key Determination Protocol November 1998
+
+
+Full Copyright Statement
+
+ Copyright (C) The Internet Society (1998). All Rights Reserved.
+
+ This document and translations of it may be copied and furnished to
+ others, and derivative works that comment on or otherwise explain it
+ or assist in its implementation may be prepared, copied, published
+ and distributed, in whole or in part, without restriction of any
+ kind, provided that the above copyright notice and this paragraph are
+ included on all such copies and derivative works. However, this
+ document itself may not be modified in any way, such as by removing
+ the copyright notice or references to the Internet Society or other
+ Internet organizations, except as needed for the purpose of
+ developing Internet standards in which case the procedures for
+ copyrights defined in the Internet Standards process must be
+ followed, or as required to translate it into languages other than
+ English.
+
+ The limited permissions granted above are perpetual and will not be
+ revoked by the Internet Society or its successors or assigns.
+
+ This document and the information contained herein is provided on an
+ "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
+ TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
+ BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
+ HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
+ MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Orman Informational [Page 55]
+