CMAC

CMAC

In cryptography, CMAC (Cipher-based MAC)[1] is a block cipher-based message authentication code algorithm. It may be used to provide assurance of the authenticity and, hence, the integrity of binary data. This mode of operation fixes security deficiencies of CBC-MAC (CBC-MAC is secure only for fixed-length messages).

The core of the CMAC algorithm is a variation of CBC-MAC that Black and Rogaway proposed and analyzed under the name XCBC[2] and submitted to NIST.[3] The XCBC algorithm efficiently addresses the security deficiencies of CBC-MAC, but requires three keys. Iwata and Kurosawa proposed an improvement of XCBC and named the resulting algorithm One-Key CBC-MAC (OMAC) in their papers.[4][5] They later submitted OMAC1[6], a refinement of OMAC, and additional security analysis.[7] The OMAC algorithm reduces the amount of key material required for XCBC. CMAC is equivalent to OMAC1.

To generate an ℓ-bit CMAC tag (t) of a message (m) using a b-bit block cipher (E) and a secret key (k), one first generates two b-bit sub-keys (k1 and k2) using the following algorithm (this is equivalent to multiplication by x and x2 in a finite field GF(2b)). Let ≪ signify a standard left-shift operator:

  1. Calculate a temporary value k0 = Ek(0).
  2. If msb(k0) = 0, then k1 = k0 ≪ 1, else k1 = (k0 ≪ 1) C; where C is a certain constant that depends only on b. (Specifically, C is the non-leading coefficients of the lexicographically first irreducible degree-b binary polynomial with the minimal number of ones.)
  3. If msb(k1) = 0, then k2 = k1 ≪ 1, else k2 = (k1 ≪ 1) ⊕ C.

As a small example, suppose b = 4, C = 00112, and k0 = Ek(0) = 01012. Then k1 = 10102 and k2 = 0100 ⊕ 0011 = 01112.

The CMAC tag generation process is as follows:

  1. Divide message into b-bit blocks m = m1 ∥ … ∥ mn−1mn′ where m1, …, mn−1 are complete blocks. (The empty message is treated as 1 incomplete block.)
  2. If mn′ is a complete block then mn = k1mn′ else mn = k2 ⊕ (mn′∥ 10…02).
  3. Let c0 = 00…02.
  4. For i = 1,…, n, calculate ci = Ek(ci−1mi).
  5. Output t = msb(cn).

The verification process is as follows:

  1. Use the above algorithm to generate the tag.
  2. Check that the generated tag is equal to the received tag.

References

  • ^ NIST, Recommendation for Block Cipher Modes of Operation: The CMAC Mode for Authentication, Special Publication 800-38B.
  • ^ J. Black, P. Rogaway, A Suggestion for Handling Arbitrary-Length Messages with the CBC MAC, available from NIST.
  • ^ J. Black, P. Rogaway, CBC MACs for arbitrary-length messages: The three-key constructions, Advances in Cryptology—Crypto 2000.
  • ^ T. Iwata, K. Kurosawa, OMAC: One-Key CBC MAC, available from NIST.
  • ^ T. Iwata, K. Kurosawa, OMAC: One-Key CBC MAC, Fast Software Encryption 2003.
  • ^ T. Iwata, K. Kurosawa, OMAC: One-Key CBC MAC—Addendum, available from NIST.
  • ^ T. Iwata, K. Kurosawa, Stronger Security Bounds for OMAC, TMAC, and XCBC, available from NIST.

External links

  • RFC 4493 The AES-CMAC Algorithm
  • RFC 4494 The AES-CMAC-96 Algorithm and Its Use with IPsec
  • RFC 4615 The Advanced Encryption Standard-Cipher-based Message Authentication Code-Pseudo-Random Function-128 (AES-CMAC-PRF-128)



Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать реферат

Look at other dictionaries:

  • CMAC (disambiguation) — CMAC usually refers to Cipher based Message Authentication Code , a cryptographic algorithm.It may also refer to: *Cambodian Mine Action Centre *Cerebellar Model Articulation Controller *Constellation Brands Marvin Sands Performing Arts Center,… …   Wikipedia

  • CMAC — C MAC steht für: MAC Verfahren, eine Fernsehnorm Diese Seite ist eine Begriffsklärung zur Unterscheidung mehrerer mit demselben Wort bezeichneter Begriffe …   Deutsch Wikipedia

  • CMAC — Construction Management Agency Construction (Community » Educational) Captial Military Assistance Command (Business » Positions) * Central Management of Army Commissaries (Governmental » Military) …   Abbreviations dictionary

  • CMAC — cerebellar model articulation controller …   Medical dictionary

  • CMAC — Centralized Maintenance & Administration Center …   Acronyms

  • CMAC — Centralized Maintenance & Administration Center …   Acronyms von A bis Z

  • CMAC — abbr. and/or acronym. Catholic Marriage Advisory Council …   American Life League. Abbreviations and acronyms

  • CMAC — • cerebellar model articulation controller …   Dictionary of medical acronyms & abbreviations

  • Center for Maritime Archaeology and Conservation (CMAC) — The Center for Maritime Archaeology and Conservation (CMAC) was created in May of 2005 by the regents of Texas A M University. [Hamilton, Donny L. 2005. The Institute of Nautical Archaeology The Nautical Archaeology Program: A History of Both… …   Wikipedia

  • Cerebellar Model Articulation Controller — A block diagram of the CMAC system for a single joint. The vector S is presented as input to all joints. Each joint separately computes an S . A* mapping and a joint actuator signal pi. The adjustable weights for a l l joints may reside in the… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”