Lably
Skip to content

CBC-MAC

Message authentication code algorithm

  • 9 min read
  • 3 chapters

Related on Lably

Through Bluetooth

To calculate the CBC-MAC of message m, one encrypts m in CBC mode with zero initialization vector and keeps the last block. The following figure sketches the computation of the CBC-MAC of a message comprising blocks m1‖m2‖⋯‖mx using a secret key k and a block cipher E:

CBC-MAC on its own is not secure for variable-length messages (see the discussion below) and is currently used to construct a pseudorandom function family and as a component of the CCM mode.

Use in standards

The CBC-MAC construct is used as part of the CCM mode utilized in IEEE 802.11i and NIST SP 800-97 (as CCMP, the CCM encryption protocol for WPA2), IPsec, and TLS 1.2, as well as Bluetooth Low Energy (as of Bluetooth 4.0, see NIST SP 800-121 Rev2). It is available for TLS 1.3, but not enabled by default in OpenSSL.

CBC-MAC is also used as a "conditioning component" (a.k.a. randomness extractor, a method to generate bitstrings with full entropy) in NIST SP 800-90B.

Standards that define the algorithm

FIPS PUB 113 Computer Data Authentication is a (now obsolete) U.S. government standard that specified the CBC-MAC algorithm using DES as the block cipher.

The CBC-MAC algorithm is also included into ANSI X9.9, ANSI X9.19, ISO 8731-1, and ISO/IEC 9797-1 MAC (Algorithm 1).

Sign in to keep reading

2 more chapters are free with a Lably account.

More in Computing and communication