rfc-4494

The AES-CMAC-96 Algorithm and Its Use with IPsec

JH. Song, R. Poovendran, J. Lee
date2006-06 streamIETF wgnon working group statusPROPOSED STANDARD pages8 canonicalhttps://www.rfc-editor.org/rfc/rfc4494 doi10.17487/RFC4494
The National Institute of Standards and Technology (NIST) has recently specified the Cipher-based Message Authentication Code (CMAC), which is equivalent to the One-Key CBC-MAC1 (OMAC1) algorithm submitted by Iwata and Kurosawa. OMAC1 efficiently reduces the key size of Extended Cipher Block Chaining mode (XCBC). This memo specifies the use of CMAC mode as an authentication mechanism of the IPsec Encapsulating Security Payload (ESP) and the Authentication Header (AH) protocols. This new algorithm is named AES-CMAC-96. [STANDARDS-TRACK]

Extracted elements (11)

design-rationale §3

AES-CMAC is appropriate for information systems in which AES is more readily available than a hash function, providing an alternative to HMAC for systems where AES hardware acceleration exists but hash functions are less accessible.

crypto, ipsec, security

design-rationale §1

OMAC1 (equivalently CMAC) was chosen because it efficiently reduces the key size of XCBC while addressing the security deficiencies of basic CBC-MAC, resulting in a single-key construction with strong security properties.

crypto, security

interoperability-note §6

As of the time of writing, there are no known issues that preclude the use of AES-CMAC-96 with any specific ESP cipher algorithm.

ipsec, crypto

interoperability-note §4

The 96-bit output of AES-CMAC-96 meets the default authenticator length specified in the IP Authentication Header (AH) RFC 4302, ensuring compatibility with standard IPsec implementations.

ipsec, crypto

normative-requirement §4 SHOULD

For IPsec message authentication on AH and ESP, AES-CMAC-96 should be used.

ipsec, crypto, security

protocol-element §4

AES-CMAC-96 is the IPsec AH and ESP MAC generation function based on AES-CMAC, which truncates the 96 most significant bits (12 octets) of the 128-bit AES-CMAC output in MSB-first order.

crypto, ipsec, security

protocol-element §2

The key K for AES-CMAC-96 is a 128-bit (16-octet) key used for the AES-128 cipher block operation.

crypto, ipsec

protocol-element §2

Truncation of the AES-CMAC output is performed in most-significant-bit-first (MSB-first) order using the truncate(T, l) operation, where l is 12 octets for AES-CMAC-96.

crypto, ipsec

registry §8

IANA allocated value 8 for IKEv2 Transform Type 3 (Integrity Algorithm) to the AUTH_AES_CMAC_96 algorithm.

registry, ipsec, crypto

security-consideration §7

Security considerations for AES-CMAC-96 are inherited from AES-CMAC (RFC 4493). According to NIST, at least 64 bits should be used against guessing attacks; AES-CMAC-96 uses 96 bits, exceeding this minimum.

security, crypto, ipsec

wire-format §4

AES-CMAC-96 takes a 128-bit (16-octet) key K, a message M, and message length len as input, applies AES-CMAC to produce a 128-bit output T, then truncates T to 12 octets (96 bits) in MSB-first order to produce the authenticator.

crypto, ipsec