Rfc2409-The Internet Key Exchange (IKE)
Rfc2409-The Internet Key Exchange (IKE)
Harkins
Request for Comments: 2409 D. Carrel
Category: Standards Track cisco Systems
November 1998
Copyright Notice
Table Of Contents
1 Abstract........................................................ 2
2 Discussion...................................................... 2
3 Terms and Definitions........................................... 3
3.1 Requirements Terminology...................................... 3
3.2 Notation...................................................... 3
3.3 Perfect Forward Secrecty...................................... 5
3.4 Security Association.......................................... 5
4 Introduction.................................................... 5
5 Exchanges....................................................... 8
5.1 Authentication with Digital Signatures........................ 10
5.2 Authentication with Public Key Encryption..................... 12
5.3 A Revised method of Authentication with Public Key Encryption. 13
5.4 Authentication with a Pre-Shared Key.......................... 16
5.5 Quick Mode.................................................... 16
5.6 New Group Mode................................................ 20
5.7 ISAKMP Informational Exchanges................................ 20
6 Oakley Groups................................................... 21
6.1 First Oakley Group............................................ 21
6.2 Second Oakley Group........................................... 22
6.3 Third Oakley Group............................................ 22
6.4 Fourth Oakley Group........................................... 23
7 Payload Explosion of Complete Exchange.......................... 23
7.1 Phase 1 with Main Mode........................................ 23
7.2 Phase 2 with Quick Mode....................................... 25
8 Perfect Forward Secrecy Example................................. 27
9 Implementation Hints............................................ 27
10 Security Considerations........................................ 28
11 IANA Considerations............................................ 30
12 Acknowledgments................................................ 31
13 References..................................................... 31
Appendix A........................................................ 33
Appendix B........................................................ 37
Authors’ Addresses................................................ 40
Authors’ Note..................................................... 40
Full Copyright Statement.......................................... 41
1. Abstract
2. Discussion
This does not implement the entire Oakley protocol, but only a subset
necessary to satisfy its goals. It does not claim conformance or
compliance with the entire Oakley protocol nor is it dependant in any
way on the Oakley protocol.
Likewise, this does not implement the entire SKEME protocol, but only
the method of public key encryption for authentication and its
concept of fast re-keying using an exchange of nonces. This protocol
is not dependant in any way on the SKEME protocol.
3.2 Notation
CKY-I and CKY-R are the Initiator’s cookie and the Responder’s
cookie, respectively, from the ISAKMP header.
g^xi and g^xr are the Diffie-Hellman ([DH]) public values of the
initiator and responder respectively.
IDx is the identification payload for "x". x can be: "ii" or "ir"
for the ISAKMP initiator and responder respectively during phase
one negotiation; or "ui" or "ur" for the user initiator and
responder respectively during phase two. The ID payload format for
the Internet DOI is defined in [Pip97].
Message encryption (when noted by a ’*’ after the ISAKMP header) MUST
begin immediately after the ISAKMP header. When communication is
protected, all payloads following the ISAKMP header MUST be
encrypted. Encryption keys are generated from SKEYID_e in a manner
that is defined for each algorithm.
When used in the memo Perfect Forward Secrecy (PFS) refers to the
notion that compromise of a single key will permit access to only
data protected by a single key. For PFS to exist the key used to
protect transmission of data MUST NOT be used to derive any
additional keys, and if the key used to protect transmission of data
was derived from some other keying material, that material MUST NOT
be used to derive any more keys.
4. Introduction
This protocol does not define its own DOI per se. The ISAKMP SA,
established in phase 1, MAY use the DOI and situation from a non-
ISAKMP service (such as the IETF IPSec DOI [Pip97]). In this case an
implementation MAY choose to restrict use of the ISAKMP SA for
establishment of SAs for services of the same DOI. Alternately, an
ISAKMP SA MAY be established with the value zero in both the DOI and
situation (see [MSST98] for a description of these fields) and in
this case implementations will be free to establish security services
for any defined DOI using this ISAKMP SA. If a DOI of zero is used
for establishment of a phase 1 SA, the syntax of the identity
payloads used in phase 1 is that defined in [MSST98] and not from any
DOI-- e.g. [Pip97]-- which may further expand the syntax and
semantics of identities.
The following attributes are used by IKE and are negotiated as part
of the ISAKMP Security Association. (These attributes pertain only
to the ISAKMP Security Association and not to any Security
Associations that ISAKMP may be negotiating on behalf of other
services.)
- encryption algorithm
- hash algorithm
- authentication method
- DES [DES] in CBC mode with a weak, and semi-weak, key check
(weak and semi-weak keys are referenced in [Sch96] and listed in
Appendix A). The key is derived according to Appendix B.
The IKE modes described here MUST be implemented whenever the IETF
IPsec DOI [Pip97] is implemented. Other DOIs MAY use the modes
described here.
5. Exchanges
Exchanges in IKE are not open ended and have a fixed number of
messages. Receipt of a Certificate Request payload MUST NOT extend
the number of messages transmitted or expected.
Quick Mode and New Group Mode have no analog in ISAKMP. The XCHG
values for Quick Mode and New Group Mode are defined in Appendix A.
Initiator Responder
----------- -----------
HDR, SA -->
<-- HDR, SA
HDR, KE, Ni -->
<-- HDR, KE, Nr
HDR*, IDii, [ CERT, ] SIG_I -->
<-- HDR*, IDir, [ CERT, ] SIG_R
Initiator Responder
----------- -----------
HDR, SA, KE, Ni, IDii -->
<-- HDR, SA, KE, Nr, IDir,
[ CERT, ] SIG_R
HDR, [ CERT, ] SIG_I -->
In both modes, the signed data, SIG_I or SIG_R, is the result of the
negotiated digital signature algorithm applied to HASH_I or HASH_R
respectively.
Initiator Responder
----------- -----------
HDR, SA -->
<-- HDR, SA
HDR, KE, [ HASH(1), ]
<IDii_b>PubKey_r,
<Ni_b>PubKey_r -->
HDR, KE, <IDir_b>PubKey_i,
<-- <Nr_b>PubKey_i
HDR*, HASH_I -->
<-- HDR*, HASH_R
Initiator Responder
----------- -----------
HDR, SA, [ HASH(1),] KE,
<IDii_b>Pubkey_r,
<Ni_b>Pubkey_r -->
HDR, SA, KE, <IDir_b>PubKey_i,
<-- <Nr_b>PubKey_i, HASH_R
HDR, HASH_I -->
RSA encryption MUST be encoded in PKCS #1 format. While only the body
of the ID and nonce payloads is encrypted, the encrypted data must be
preceded by a valid ISAKMP generic header. The payload length is the
length of the entire encrypted payload plus header. The PKCS #1
encoding allows for determination of the actual length of the
cleartext payload upon decryption.
In this mode, the nonce is still encrypted using the public key of
the peer, however the peer’s identity (and the certificate if it is
sent) is encrypted using the negotiated symmetric encryption
algorithm (from the SA payload) with a key derived from the nonce.
This solution adds minimal complexity and state yet saves two costly
public key operations on each side. In addition, the Key Exchange
payload is also encrypted using the same derived key. This provides
additional protection against cryptanalysis of the Diffie-Hellman
exchange.
When using the revised encryption mode for authentication, Main Mode
is defined as follows.
Initiator Responder
----------- -----------
HDR, SA -->
<-- HDR, SA
HDR, [ HASH(1), ]
<Ni_b>Pubkey_r,
<KE_b>Ke_i,
<IDii_b>Ke_i,
[<<Cert-I_b>Ke_i] -->
HDR, <Nr_b>PubKey_i,
<KE_b>Ke_r,
<-- <IDir_b>Ke_r,
HDR*, HASH_I -->
<-- HDR*, HASH_R
Initiator Responder
----------- -----------
HDR, SA, [ HASH(1),]
<Ni_b>Pubkey_r,
<KE_b>Ke_i, <IDii_b>Ke_i
[, <Cert-I_b>Ke_i ] -->
HDR, SA, <Nr_b>PubKey_i,
<KE_b>Ke_r, <IDir_b>Ke_r,
<-- HASH_R
HDR, HASH_I -->
where HASH(1) is identical to section 5.2. Ke_i and Ke_r are keys to
the symmetric encryption algorithm negotiated in the SA payload
exchange. Only the body of the payloads are encrypted (in both public
key and symmetric operations), the generic payload headers are left
in the clear. The payload length includes that added to perform
encryption.
The symmetric cipher keys are derived from the decrypted nonces as
follows. First the values Ne_i and Ne_r are computed:
The keys Ke_i and Ke_r are then taken from Ne_i and Ne_r respectively
in the manner described in Appendix B used to derive symmetric keys
for use with the negotiated encryption algorithm. If the length of
the output of the negotiated prf is greater than or equal to the key
length requirements of the cipher, Ke_i and Ke_r are derived from the
most significant bits of Ne_i and Ne_r respectively. If the desired
length of Ke_i and Ke_r exceed the length of the output of the prf
the necessary number of bits is obtained by repeatedly feeding the
results of the prf back into itself and concatenating the result
until the necessary number has been achieved. For example, if the
negotiated encryption algorithm requires 320 bits of key and the
output of the prf is only 128 bits, Ke_i is the most significant 320
bits of K, where
K = K1 | K2 | K3 and
K1 = prf(Ne_i, 0)
K2 = prf(Ne_i, K1)
K3 = prf(Ne_i, K2)
Initiator Responder
---------- -----------
HDR, SA -->
<-- HDR, SA
HDR, KE, Ni -->
<-- HDR, KE, Nr
HDR*, IDii, HASH_I -->
<-- HDR*, IDir, HASH_R
Initiator Responder
----------- -----------
HDR, SA, KE, Ni, IDii -->
<-- HDR, SA, KE, Nr, IDir, HASH_R
HDR, HASH_I -->
When using pre-shared key authentication with Main Mode the key can
only be identified by the IP address of the peers since HASH_I must
be computed before the initiator has processed IDir. Aggressive Mode
allows for a wider range of identifiers of the pre-shared secret to
be used. In addition, Aggressive Mode allows two parties to maintain
multiple, different pre-shared keys and identify the correct one for
a particular exchange.
The client identities are used to identify and direct traffic to the
appropriate tunnel in cases where multiple tunnels exist between two
peers and also to allow for unique and shared SAs with different
granularities.
All offers made during a Quick Mode are logically related and must be
consistant. For example, if a KE payload is sent, the attribute
describing the Diffie-Hellman group (see section 6.1 and [Pip97])
MUST be included in every transform of every proposal of every SA
being negotiated. Similarly, if client identities are used, they MUST
apply to every SA in the negotiation.
Initiator Responder
----------- -----------
HDR*, HASH(1), SA, Ni
[, KE ] [, IDci, IDcr ] -->
<-- HDR*, HASH(2), SA, Nr
[, KE ] [, IDci, IDcr ]
HDR*, HASH(3) -->
Where:
HASH(1) is the prf over the message id (M-ID) from the ISAKMP header
concatenated with the entire message that follows the hash including
all payload headers, but excluding any padding added for encryption.
HASH(2) is identical to HASH(1) except the initiator’s nonce-- Ni,
minus the payload header-- is added after M-ID but before the
complete message. The addition of the nonce to HASH(2) is for a
liveliness proof. HASH(3)-- for liveliness-- is the prf over the
value zero represented as a single octet, followed by a concatenation
of the message id and the two nonces-- the initiator’s followed by
the responder’s-- minus the payload header. In other words, the
hashes for the above exchange are:
With the exception of the HASH, SA, and the optional ID payloads,
there are no payload ordering restrictions on Quick Mode. HASH(1) and
HASH(2) may differ from the illustration above if the order of
payloads in the message differs from the illustrative example or if
any optional payloads, for example a notify payload, have been
chained to the message.
If PFS is not needed, and KE payloads are not exchanged, the new
keying material is defined as
In either case, "protocol" and "SPI" are from the ISAKMP Proposal
Payload that contained the negotiated Transform.
KEYMAT = K1 | K2 | K3 | ...
where
K1 = prf(SKEYID_d, [ g(qm)^xy | ] protocol | SPI | Ni_b | Nr_b)
K2 = prf(SKEYID_d, K1 | [ g(qm)^xy | ] protocol | SPI | Ni_b |
Nr_b)
K3 = prf(SKEYID_d, K2 | [ g(qm)^xy | ] protocol | SPI | Ni_b |
Nr_b)
etc.
Using Quick Mode, multiple SA’s and keys can be negotiated with one
exchange as follows:
Initiator Responder
----------- -----------
HDR*, HASH(1), SA0, SA1, Ni,
[, KE ] [, IDci, IDcr ] -->
<-- HDR*, HASH(2), SA0, SA1, Nr,
[, KE ] [, IDci, IDcr ]
HDR*, HASH(3) -->
Initiator Responder
----------- -----------
HDR*, HASH(1), SA -->
<-- HDR*, HASH(2), SA
where HASH(1) is the prf output, using SKEYID_a as the key, and the
message-ID from the ISAKMP header concatenated with the entire SA
proposal, body and header, as the data; HASH(2) is the prf output,
using SKEYID_a as the key, and the message-ID from the ISAKMP header
concatenated with the reply as the data. In other words the hashes
for the above exchange are:
Initiator Responder
----------- -----------
HDR*, HASH(1), N/D -->
As noted the message ID in the ISAKMP header-- and used in the prf
computation-- is unique to this exchange and MUST NOT be the same as
the message ID of another phase 2 exchange which generated this
informational exchange. The derivation of the initialization vector,
used with SKEYID_e to encrypt this message, is described in Appendix
B.
6 Oakley Groups
The data in the KE payload when using this group is the value x from
the solution (x,y), the point on the curve chosen by taking the
randomly chosen secret Ka and computing Ka*P, where * is the
repetition of the group addition and double operations, P is the
curve point with x coordinate equal to generator 1 and the y
The data in the KE payload when using this group will be identical to
that as when using Oakley Group 3 (three).
Other groups can be defined using New Group Mode. These default
groups were generated by Richard Schroeppel at the University of
Arizona. Properties of these primes are described in [Orm96].
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
˜ ISAKMP Header with XCHG of Main Mode, ˜
˜ and Next Payload of ISA_SA ˜
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
! 0 ! RESERVED ! Payload Length !
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
! Domain of Interpretation !
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
! Situation !
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
! 0 ! RESERVED ! Payload Length !
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
! Proposal #1 ! PROTO_ISAKMP ! SPI size = 0 | # Transforms !
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
! ISA_TRANS ! RESERVED ! Payload Length !
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
! Transform #1 ! KEY_OAKLEY | RESERVED2 !
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
˜ prefered SA attributes ˜
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
! 0 ! RESERVED ! Payload Length !
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
! Transform #2 ! KEY_OAKLEY | RESERVED2 !
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
˜ alternate SA attributes ˜
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
The responder replies in kind but selects, and returns, one transform
proposal (the ISAKMP SA attributes).
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
˜ ISAKMP Header with XCHG of Main Mode, ˜
˜ and Next Payload of ISA_KE ˜
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
! ISA_NONCE ! RESERVED ! Payload Length !
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
˜ D-H Public Value (g^xi from initiator g^xr from responder) ˜
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
! 0 ! RESERVED ! Payload Length !
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
˜ Ni (from initiator) or Nr (from responder) ˜
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
The shared keys, SKEYID_e and SKEYID_a, are now used to protect and
authenticate all further communication. Note that both SKEYID_e and
SKEYID_a are unauthenticated.
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
˜ ISAKMP Header with XCHG of Main Mode, ˜
˜ and Next Payload of ISA_ID and the encryption bit set ˜
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
! ISA_SIG ! RESERVED ! Payload Length !
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
˜ Identification Data of the ISAKMP negotiator ˜
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
! 0 ! RESERVED ! Payload Length !
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
˜ signature verified by the public key of the ID above ˜
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
The following payloads are exchanged in the first round of Quick Mode
with ISAKMP SA negotiation. In this hypothetical exchange, the ISAKMP
negotiators are proxies for other parties which have requested
authentication.
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
˜ ISAKMP Header with XCHG of Quick Mode, ˜
˜ Next Payload of ISA_HASH and the encryption bit set ˜
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
! ISA_SA ! RESERVED ! Payload Length !
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
˜ keyed hash of message ˜
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
! ISA_NONCE ! RESERVED ! Payload Length !
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
! Domain Of Interpretation !
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
! Situation !
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
! 0 ! RESERVED ! Payload Length !
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
where the contents of the hash are described in 5.5 above. The
responder replies with a similar message which only contains one
transform-- the selected AH transform. Upon receipt, the initiator
can provide the key engine with the negotiated security association
and the keying material. As a check against replay attacks, the
responder waits until receipt of the next message.
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
˜ ISAKMP Header with XCHG of Quick Mode, ˜
˜ Next Payload of ISA_HASH and the encryption bit set ˜
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
! 0 ! RESERVED ! Payload Length !
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
˜ hash data ˜
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
This protocol can provide PFS of both keys and identities. The
identies of both the ISAKMP negotiating peer and, if applicable, the
identities for whom the peers are negotiating can be protected with
PFS.
Since the key for use in the non-ISAKMP SA was derived from the
single ephemeral Diffie-Hellman exchange PFS is preserved.
9. Implementation Hints
Repeated re-keying using Quick Mode can consume the entropy of the
Diffie-Hellman shared secret. Implementors should take note of this
fact and set a limit on Quick Mode Exchanges between exponentiations.
This memo does not prescribe such a limit.
While the last roundtrip of Main Mode (and optionally the last
message of Aggressive Mode) is encrypted it is not, strictly
speaking, authenticated. An active substitution attack on the
ciphertext could result in payload corruption. If such an attack
corrupts mandatory payloads it would be detected by an authentication
failure, but if it corrupts any optional payloads (e.g. notify
payloads chained onto the last message of a Main Mode exchange) it
might not be detectable.
Values of the Life Type Class define a type of lifetime to which the
ISAKMP Security Association applies. Requests for assignment of new
life types must be accompanied by a detailed description of the units
of this type and its expiry.
12. Acknowledgements
Special thanks Rob Adams, Cheryl Madson, Derrell Piper, Harry Varnis,
and Elfed Weaver for technical input, encouragement, and various
sanity checks along the way.
We would also like to thank the many members of the IPSec working
group that contributed to the development of this protocol over the
past year.
13. References
[IDEA] Lai, X., "On the Design and Security of Block Ciphers," ETH
Series in Information Processing, v. 1, Konstanz: Hartung-
Gorre Verlag, 1992
[MD5] Rivest, R., "The MD5 Message Digest Algorithm", RFC 1321,
April 1992.
[RSA] Rivest, R., Shamir, A., and Adleman, L., "A Method for
Obtaining Digital Signatures and Public-Key Cryptosystems",
Communications of the ACM, v. 21, n. 2, February 1978.
Appendix A
This is a list of DES Weak and Semi-Weak keys. The keys come from
[Sch96]. All keys are listed in hexidecimal.
Attribute Classes
Class Values
- Authentication Method
pre-shared key 1
DSS signatures 2
RSA signatures 3
Encryption with RSA 4
Revised encryption with RSA 5
- Group Description
default 768-bit MODP group (section 6.1) 1
- Group Type
MODP (modular exponentiation group) 1
ECP (elliptic curve group over GF[P]) 2
EC2N (elliptic curve group over GF[2^N]) 3
- Life Type
seconds 1
kilobytes 2
- PRF
There are currently no pseudo-random functions defined.
- Key Length
- Field Size
- Group Order
Appendix B
Use of negotiated PRFs may require the PRF output to be expanded due
to the PRF feedback mechanism employed by this document. For example,
if the (ficticious) DOORAK-MAC requires 24 bytes of key but produces
only 8 bytes of output, the output must be expanded three times
before being used as the key for another instance of itself. The
output of a PRF is expanded by feeding back the results of the PRF
into itself to generate successive blocks. These blocks are
concatenated until the requisite number of bytes has been acheived.
For example, for pre-shared key authentication with DOORAK-MAC as the
negotiated PRF:
Ka = K1 | K2 | K3
and
K1 = prf(SKEYID_e, 0)
K2 = prf(SKEYID_e, K1)
K3 = prf(SKEYID_e, K2)
where prf is the negotiated prf or the HMAC version of the negotiated
hash function (if no prf was negotiated) and 0 is represented by a
single octet. Each result of the prf provides 120 bits of material
for a total of 360 bits. AKULA would use the first 320 bits of that
360 bit string.
Note that the final phase 1 CBC output block, the result of
encryption/decryption of the last phase 1 message, must be retained
in the ISAKMP SA state to allow for generation of unique IVs for each
Quick Mode. Each post- phase 1 exchange (Quick Modes and
The key for DES-CBC is derived from the first eight (8) non-weak and
non-semi-weak (see Appendix A) bytes of SKEYID_e. The IV is the first
8 bytes of the IV material derived above.
The key for IDEA-CBC is derived from the first sixteen (16) bytes of
SKEYID_e. The IV is the first eight (8) bytes of the IV material
derived above.
The key for Blowfish-CBC is either the negotiated key size, or the
first fifty-six (56) bytes of a key (if no key size is negotiated)
derived in the aforementioned pseudo-random function feedback method.
The IV is the first eight (8) bytes of the IV material derived above.
The key for RC5-R16-B64-CBC is the negotiated key size, or the first
sixteen (16) bytes of a key (if no key size is negotiated) derived
from the aforementioned pseudo-random function feedback method if
necessary. The IV is the first eight (8) bytes of the IV material
derived above. The number of rounds MUST be 16 and the block size
MUST be 64.
The key for 3DES-CBC is the first twenty-four (24) bytes of a key
derived in the aforementioned pseudo-random function feedback method.
3DES-CBC is an encrypt-decrypt-encrypt operation using the first,
middle, and last eight (8) bytes of the entire 3DES-CBC key. The IV
is the first eight (8) bytes of the IV material derived above.
The key for CAST-CBC is either the negotiated key size, or the first
sixteen (16) bytes of a key derived in the aforementioned pseudo-
random function feedback method. The IV is the first eight (8) bytes
of the IV material derived above.
Authors’ Addresses
Dan Harkins
cisco Systems
170 W. Tasman Dr.
San Jose, California, 95134-1706
United States of America
Dave Carrel
76 Lippard Ave.
San Francisco, CA 94131-2947
United States of America
Authors’ Note
The limited permissions granted above are perpetual and will not be
revoked by the Internet Society or its successors or assigns.