Page 1 Seite 1
COMPUTERSECURITY COMPUTERSECURITY
Recommendation for Block Empfehlung für Block
Cipher Modes of Operation: Chiffre Betriebsmodi:
The CMAC Mode for Der Modus für CMAC
Authentication Beglaubigung
Morris Dworkin Morris Dworkin
NIST Special Publication 800-38B NIST Special Publica 800-38B

Page 2 Seite 2

Page 3 Seite 3
Computer Security Division Computer Security Division
Information Technology Laboratory Laboratorium für Informationstechnologie
National Institute of Standards and Technology National Institute of Standards and Technology
Gaithersburg, MD 20899-8930 Gaithersburg, MD 20899-8930
May 2005 Mai 2005
US Department of Commerce US Department of Commerce
Carlos M. Gutierrez, Secretary Carlos M. Gutierrez, Secretary
Technology Administration Technologie Verwaltung
Phillip J. Bond, Under Secretary of Commerce for Technology Phillip J. Bond, Under Secretary of Commerce for Technology
National Institute of Standards and Technology National Institute of Standards and Technology
Hratch G. Semerjian, Acting Director Hratch G. Semerjian, Geschäftsführender Direktor
NIST Special Publication 800-38B NIST Special Publica 800-38B
Recommendation for Block Empfehlung für Block
Cipher Modes of Operation: Chiffre Betriebsmodi:
The CMAC Mode for Der Modus für CMAC
Authentication Beglaubigung
Morris Dworkin Morris Dworkin
COMPUTERSECURITY COMPUTERSECURITY

Page 4 Seite 4
Reports on Information Security Technology Berichte über Sicherheit in der Informationstechnik
The Information Technology Laboratory (ITL) at the National Institute of Standards and Technology Die Information Technology Laboratory (ITL) am National Institute of Standards and Technology
(NIST) promotes the US economy and public welfare by providing technical leadership for the Nation's (NIST) fördert die US-Wirtschaft und der öffentlichen Wohlfahrt durch technische Führung für die Nation
measurement and standards infrastructure. Messung und Standards Infrastruktur. ITL develops tests, test methods, reference data, proof of ITL entwickelt Tests, Testmethoden, Referenzdaten, Nachweis der
concept implementations, and technical analyses to advance the development and productive use of Konzept Implementierungen und technische Analysen, die Entwicklung und den produktiven Einsatz von Advance
information technology. Informationstechnologie. ITL's responsibilities include the development of technical, physical, Verantwortlichkeiten ITL gehören die Entwicklung von technischen, physikalischen,
administrative, and management standards and guidelines for the cost-effective security and privacy of Verwaltung und Management-Standards und Richtlinien für die kostengünstige Sicherheit und Privatsphäre
sensitive unclassified information in Federal computer systems. sensible Informationen klassifiziert in Bundes Computer-Systeme. This Special Publication 800-series Diese Sonderveröffentlichung 800-Serie
reports on ITL's research, guidance, and outreach efforts in computer security, and its collaborative Berichte über Forschung, Beratung und weit reichende Anstrengungen ITL in Computer-Sicherheit, und ihre Zusammenarbeit
activities with industry, government, and academic organizations. Aktivitäten mit der Industrie, Regierung und akademischen Organisationen.
Certain commercial entities, equipment, or materials may be identified in this document in order Bestimmte gewerbliche Einrichtungen, Geräten oder Materialien können in diesem Dokument, um identifiziert werden
to describe an experimental procedure or concept adequately. eine experimentelle Verfahren oder Konzept adäquat zu beschreiben. Such identification is not intended Eine solche Identifizierung ist nicht beabsichtigt
to imply recommendation or endorsement by the National Institute of Standards and Technology, auf Empfehlung oder Billigung durch das National Institute of Standards and Technology implizieren,
nor is it intended to imply that the entities, materials, or equipment are necessarily the best noch ist es zu verstehen, dass die Einrichtungen, Materialien oder Ausrüstung notwendigerweise die besten
available for the purpose. zur Verfügung.
National Institute of Standards and Technology Special Publication 800-38B National Institute of Standards and Technology Special Publica 800-38B
Natl. Natl. Inst. Inst. Stand. Stehen. Technol. Technol. Spec. Spec. Publ. Publ. 800-38B, 23 pages (May 2005) 800-38B, 23 Seiten (Mai 2005)
CODEN: NSPUE2 CODEN: NSPUE2

Page 5 Seite 5
iii iii
Abstract Abstrakt
This Recommendation specifies a message authentication code (MAC) algorithm based on a Diese Empfehlung gibt einen Nachrichtenauthentifizierungscode (MAC)-Algorithmus auf der Basis einer
symmetric key block cipher. symmetrischen Schlüssel Blockchiffre. This block cipher-based MAC algorithm, called CMAC, may be Diese Blockchiffre-basierten MAC-Algorithmus, genannt CMAC, kann
used to provide assurance of the authenticity and, hence, the integrity of binary data. zur Sicherung der Authentizität bereitzustellen und somit die Integrität der binären Daten.
KEY WORDS: authentication; STICHWORTE: Authentifizierung; block cipher; Blockchiffre; cryptography; Kryptographie; information security; Informationssicherheit; integrity; Integrität;
message authentication code; Message Authentication Code; mode of operation. Betriebsart.

Page 6 Seite 6
iv iv
Table of Contents Inhaltsverzeichnis
1 1
PURPOSE...........................................................................................................................................................1
2 2
AUTHORITY.....................................................................................................................................................1
3 3
INTRODUCTION..............................................................................................................................................1
4 4
DEFINITIONS, ABBREVIATIONS, AND SYMBOLS.................................................................................2 DEFINITIONEN, Abkürzungen und Symbole ............................................ ..................................... 2
4.1 4.1
D D
EFINITIONS AND EFINITIONEN UND
A Ein
BBREVIATIONS BKÜRZUNGEN
.............................................................................................................2
4.2 4.2
S S
YMBOLS YMBOLE
....................................................................................................................................................4
4.2.1 4.2.1
Variables................................................................................................................................................4
4.2.2 4.2.2
Operations and Functions Vorgänge und Funktionen .....................................................................................................................4
5 5
PRELIMINARIES.............................................................................................................................................5
5.1 5.1
E E
XAMPLES OF EISPIELE DER
O O
PERATIONS AND Arbeitsvorgänge und
F F
UNCTIONS UNKTIONEN
..............................................................................................5 .................................................. ............................................ 5
5.2 5.2
B B
LOCK LOCK
C C
IPHER Ipher
............................................................................................................................................5
5.3 5.3
S S
UBKEYS UBKEYS
.....................................................................................................................................................6
5.4 5.4
MAC G MAC G
ENERATION AND Eneration UND
V V
ERIFICATION RÜFUNG
......................................................................................................6
5.5 5.5
I Ich
NPUT AND NPUT UND
O O
UTPUT UTPUT
D D
ATA ATA
...........................................................................................................................7
6 6
CMAC CMAC SPECIFICATION.................................................................................................................................7
6.1 6.1
S S
UBKEY UBKEY
G G
ENERATION Eneration
.................................................................................................................................7
6.2 6.2
MAC G MAC G
ENERATION Eneration
.....................................................................................................................................8
6.3 6.3
MAC V MAC V
ERIFICATION RÜFUNG
.................................................................................................................................10
APPENDIX A: LENGTH OF THE ANHANG A: Länge der MAC..............................................................................................................11
A.1 A.1
A Ein
SSURANCE SSURANCE
A Ein
GAINST Gainst
G G
UESSING UESSING
A Ein
TTACKS TTACKS
..............................................................................................11 .................................................. ............................................ 11
A.2 A.2
S S
ELECTION OF THE Wahl des
MAC L MAC L
ENGTH Ength
.............................................................................................................11
APPENDIX B: MESSAGE SPAN OF THE KEY .................................................................................................13 ANHANG B: NACHRICHT SPAN der Schlüssel .......................................... .................................................. 13 .....
APPENDIX C: PROTECTION AGAINST REPLAY OF MESSAGES.............................................................14 ANHANG C: Schutz gegen Replay von Nachrichten .......................................... ................... 14
APPENDIX D: EXAMPLES Anhang D: Beispiele ...................................................................................................................................15
D.1 D.1
AES-128...................................................................................................................................................15
D.2 D.2
AES-192...................................................................................................................................................16
D.3 D.3
AES-256...................................................................................................................................................16
D.4 D.4
T T
HREE HREE
K K
EY EY
TDEA....................................................................................................................................17
D.5 D.5
T T
WO WO
K K
EY EY
TDEA.......................................................................................................................................18
APPENDIX E: Anhang E: BIBLIOGRAPHY..........................................................................................................................19
Figures Zahlen
Figure 1: Illustration of the two cases of MAC Generation........................................................... 9 Abbildung 1: Illustration der beiden Fälle von MAC-Generation ....................................... .................... 9

Page 7 Seite 7
1 1
1 Purpose 1 Zweck
This publication is the second Part in a series of Recommendations regarding modes of operation Diese Veröffentlichung ist der zweite Teil einer Reihe von Empfehlungen zur Betriebsarten
of symmetric key block ciphers. von symmetrischen Schlüssel Blockchiffren.
2 Authority 2 Behörde
This document has been developed by the National Institute of Standards and Technology Dieses Dokument wurde von der National Institute of Standards and Technology entwickelt
(NIST) in furtherance of its statutory responsibilities under the Federal Information Security (NIST) zur Förderung seiner gesetzlichen Aufgaben nach dem Bundesinformationssicherheit
Management Act (FISMA) of 2002, Public Law 107-347. Management Act (FISMA) 2002, Public Law 107-347.
NIST is responsible for developing standards and guidelines, including minimum requirements, NIST ist für die Entwicklung von Standards und Richtlinien, einschließlich der Mindestanforderungen verantwortlich,
for providing adequate information security for all agency operations and assets, but such für eine angemessene Informationssicherheit für alle Agentur Operationen und Vermögenswerte, aber solche
standards and guidelines shall not apply to national security systems. Normen und Richtlinien gelten nicht für die nationale Sicherheit gelten Systeme. This guideline is consistent Diese Richtlinie steht im Einklang
with the requirements of the Office of Management and Budget (OMB) Circular A-130, Section mit den Anforderungen des Office of Management and Budget (OMB) Circular A-130, Abschnitt
8b(3), Securing Agency Information Systems, as analyzed in A-130, Appendix IV: Analysis of 8b (3), Absichern Agentur Information Systems, als in A-130, Anhang IV analysiert: Die Analyse der
Key Sections. Wesentliche Abschnitte. Supplemental information is provided in A-130, Appendix III. Ergänzende Informationen sind in A-130, Anhang III.
This guideline has been prepared for use by federal agencies. Diese Richtlinie ist für den Einsatz von Bundesbehörden erstellt. It may be used by Es kann genutzt werden,
nongovernmental organizations on a voluntary basis and is not subject to copyright. Nicht-Regierungsorganisationen auf freiwilliger Basis und unterliegt dem Urheberrecht. (Attribution (Namensnennung
would be appreciated by NIST.) würde durch NIST geschätzt.)
Nothing in this document should be taken to contradict standards and guidelines made Nichts in diesem Dokument werden sollten, um Normen und Richtlinien vorgenommen werden widersprechen
mandatory and binding on federal agencies by the Secretary of Commerce under statutory Pflicht und bindend für Bundesstellen von der Handelsminister im Rahmen der gesetzlichen
authority. Autorität. Nor should these guidelines be interpreted as altering or superseding the existing Auch sollten diese Richtlinien als Veränderung oder verdrängen die vorhandene interpretiert werden
authorities of the Secretary of Commerce, Director of the OMB, or any other federal official. Behörden der Handelsminister, Direktor des OMB, oder jede andere Bundesbeamte.
Conformance testing for implementations of the mode of operation that is specified in this Part Konformitätstests für Implementierungen des Betriebsmodus, der in diesem Teil festgelegt ist
of the Recommendation will be conducted within the framework of the Cryptographic Module der Empfehlung wird im Rahmen des Cryptographic Module durchgeführt werden
Validation Program (CMVP), a joint effort of NIST and the Communications Security Validation Program (CMVP), eine gemeinsame Anstrengung von NIST und der Kommunikationssicherheit
Establishment of the Government of Canada. Einsetzung der Regierung von Kanada. An implementation of a mode of operation must Eine Implementierung eines Betriebsmodus muss
adhere to the requirements in this Recommendation in order to be validated under the CMVP. sich an die Anforderungen in dieser Empfehlung, um unter dem CMVP validiert werden.
The requirements of this Recommendation are indicated by the word “shall.” Die Anforderungen dieser Empfehlung werden durch das Wort "soll".
3 Introduction 3 Einführung
This Recommendation specifies a message authentication code (MAC) algorithm that is based on Diese Empfehlung gibt einen Nachrichtenauthentifizierungscode (MAC)-Algorithmus, der auf basiert
a symmetric key block cipher. ein symmetrischer Schlüssel Blockchiffre. This cipher-based MAC is abbreviated CMAC, analogous to the Diese Chiffre-basierten Mac abgekürzt CMAC, analog zu der
abbreviation for the hash function-based MAC, HMAC, that is standardized in FIPS Pub. Abkürzung für die Hash-Funktion-basierten Mac, HMAC, ist, dass in FIPS Pub standardisiert. 198 198
[4]. [4]. CMAC may be appropriate for information systems in which an approved block cipher is CMAC kann für Informationssysteme, in denen ein zugeBlockChiffre ist angemessen
more readily available than an approved hash function. leichter als einer genehmigten Hash-Funktion zur Verfügung.
The basic Cipher Block Chaining MAC algorithm (CBC-MAC) has security deficiencies [9]. Die Grund Cipher Block Chaining MAC-Algorithmus (CBC-MAC) hat Sicherheitsmängel [9].
The core of the CMAC algorithm is a variation of CBC-MAC that Black and Rogaway proposed Der Kern der CMAC Algorithmus ist eine Variation des CBC-MAC, die Schwarz Rogaway vorgeschlagenen
and analyzed under the name XCBC in Ref. und unter dem Namen XCBC in Ref analysiert. [2] and submitted to NIST in Ref. [2] und in Ref auf NIST eingereicht. [1]. [1]. The XCBC Die XCBC

Page 8 Seite 8
2 2
algorithm efficiently addresses the security deficiencies of CBC-MAC. Algorithmus effizient adressiert die Sicherheitsmängel des CBC-MAC. Iwata and Kurosawa Iwata und Kurosawa
proposed an improvement of XCBC and named the resulting algorithm One-Key CBC-MAC hat eine Verbesserung der XCBC und nannte die resultierende Algorithmus One-Key CBC-MAC
(OMAC) in Ref. (OMAC) in Ref. [6] and in Ref. [6] und in Ref. [5], their initial submission to NIST; [5], die erste Vorlage auf NIST; they later submitted sie später eingereicht
OMAC1 [7], a refinement of OMAC, and additional security analysis [8]. OMAC1 [7], eine Verfeinerung der OMAC und zusätzliche Sicherheitsanalyse [8]. The OMAC1 Die OMAC1
variation efficiently reduces the key size of XCBC. Variation effizient reduziert die Schlüsselgröße von XCBC. CMAC is equivalent to OMAC1. CMAC entspricht OMAC1.
Because CMAC is based on an approved symmetric key block cipher, such as the Advanced Da CMAC auf einer zugelassenen symmetrischen Blockverschlüsselungsschlüssel wie das erweiterte basierend
Encryption Standard (AES) algorithm that is specified in Federal Information Processing Encryption Standard (AES) Algorithmus, der in Federal Information Processing angegeben ist
Standard (FIPS) Pub. Standard (FIPS) Pub. 197 [3], CMAC can be considered a mode of operation of the block cipher. 197 [3] kann CMAC als Betriebsmodus der Blockchiffre ist.
CMAC is also an approved mode of the Triple Data Encryption Algorithm (TDEA) [10]; CMAC ist auch ein zugeModus des Triple Data Encryption Algorithm (TDEA) [10];
however, as discussed in Appendix B, the recommended default message span for TDEA is jedoch, wie in Anhang B diskutiert, die empfohlene Standardmeldung Spanne für TDEA ist
much more restrictive than for the AES algorithm, due to the smaller block size of TDEA. viel strenger als für den AES-Algorithmus, aufgrund des kleineren Blockgröße TDEA.
CMAC, like any well-designed MAC algorithm, provides stronger assurance of data integrity CMAC, wie jeder gut gestaltete MAC-Algorithmus, bietet eine stärkere Sicherung der Datenintegrität
than a checksum or an error detecting code. als eine Prüfsumme oder einen Fehlererkennungscode. The verification of a checksum or an error detecting Die Verifikation einer Prüfsumme oder ein Fehlererfassungs
code is designed to detect only accidental modifications of the data, while CMAC is designed to Code ist nur für versehentliche Änderungen an den Daten zu erkennen, während CMAC wird entwickelt
detect intentional, unauthorized modifications of the data, as well as accidental modifications. erkennen vorsätzliche, unbefugte Änderungen der Daten, sowie Unfall Modifikationen.
4 Definitions, Abbreviations, and Symbols 4 Definitionen, Abkürzungen und Symbole
4.1 Definitions and Abbreviations 4.1 Definitionen und Abkürzungen
AES AES
Advanced Encryption Standard. Advanced Encryption Standard.
Approved Genehmigt
FIPS approved or NIST recommended: an algorithm or technique that FIPS genehmigt oder NIST empfohlen: einen Algorithmus oder Technik, die
is either 1) specified in a FIPS or a NIST Recommendation, or 2) wird entweder 1) in einer FIPS oder NIST Empfehlung angegeben, oder 2)
adopted in a FIPS or a NIST Recommendation. in einer FIPS oder NIST Empfehlung angenommen.
Authenticity Authentizität
The property that data originated from its purported source. Die Eigenschaft, die Daten aus seinem angeblichen Quelle stammen.
Bit Bit
A binary digit: 0 or 1. Eine binäre Ziffer 0 oder 1 ist.
Bit String Bit-String
A finite, ordered sequence of bits. Eine endliche, geordnete Folge von Bits.
Block Block
For a given block cipher, a bit string whose length is the block size of Für einen gegebenen Block-Chiffre, eine Bitfolge, deren Länge die Blockgröße
the block cipher. der Block-Chiffre.
Block Cipher Block Cipher
An algorithm for a parameterized family of permutations on bit Ein Algorithmus für eine parametrisierten Familie von Permutationen auf Bit
strings of a fixed length. Strings fester Länge.
Block Size Blockgröße
For a given block cipher, the fixed length of the input (or output) bit Für einen gegebenen Block-Chiffre, die feste Länge der Eingang (oder Ausgang) Bit
strings. Saiten.
CBC CBC
Cipher Block Chaining. Cipher Block Chaining.

Page 9 Seite 9
3 3
Collision Kollision
For a given function, a pair of distinct input values that yield the same Für eine gegebene Funktion, ein Paar von getrennten Eingangswerten, die die gleiche Ausbeute
output value. Ausgangswert.
Exclusive-OR Exklusiv-Oder-
The bitwise addition, modulo 2, of two bit strings of equal length. Das bitweise hinaus Modulo 2, von zwei Bit-Strings gleich lang.
FIPS FIPS
Federal Information Processing Standard. Federal Information Processing Standard.
Forward Cipher Vorwärts Cipher
Function Funktion
A permutation on blocks that is determined by the choice of a key for Eine Permutation von Blöcken, die durch die Wahl einer Taste bestimmt wird,
a given block cipher. eine gegebene Blockchiffre.
Integrity Integrität
The property that received data has not been altered. Die Eigenschaft, die empfangenen Daten nicht verändert wurden.
Inverse Cipher Function The inverse function of the forward cipher function for a given block Inversen Verschlüsselungsfunktion die Umkehrfunktion des Vorwärtsverschlüsselungsfunktion für einen gegebenen Block
cipher key. Chiffrierschlüssel.
Key Schlüssel
(Block Cipher Key) (Block Cipher Key)
The parameter of the block cipher that determines the selection of the Der Parameter der Blockchiffre, die die Auswahl der fest
forward cipher function from the family of permutations. mitteln Verschlüsselungsfunktion aus der Familie der Permutationen.
Least Significant Bit(s) Niedrigstwertige Bit (s)
The right-most bit(s) of a bit string. Die äußerste rechte Bit (s) einer Bit-Kette.
Message Nachricht
Authentication Code Authentication Code
(MAC) (Mac)
A bit string of fixed length, computed by a MAC generation Eine Bitfolge mit fester Länge, durch eine MAC-Generierung berechnet
algorithm, that is used to establish the authenticity and, hence, the Algorithmus, der verwendet wird, um die Echtheit damit die festzustellen und
integrity of a message. Integrität der Nachricht.
MAC Generation MAC-Generation
(Generation) (Generation)
An algorithm that computes a MAC from a message and a key. Ein Algorithmus, der eine MAC berechnet aus einer Nachricht und einem Schlüssel.
MAC Verification MAC Überprüfung
(Verification) (Verification)
An algorithm that verifies if a purported MAC is valid for a given Ein Algorithmus, wenn eine angebliche MAC gilt für einen gegebenen verifiziert
message and key. Nachricht und Schlüssel.
Mode of Operation Arbeitsweise
(Mode) (Mode)
An algorithm for the cryptographic transformation of data that Ein Algorithmus für die kryptographische Umwandlung von Daten,
features a symmetric key block cipher. verfügt über einen symmetrischen Schlüssel Blockchiffre.
Most Significant Bit(s) Höchstwertige Bit (s)
The left-most bit(s) of a bit string. Das Bit ganz links (s) einer Bit-Kette.
NIST NIST
National Institute of Standards and Technology. National Institute of Standards and Technology.
Permutation Permutation
An invertible function. Eine umkehrbare Funktion.
Subkey Unterschlüssel
A secret string that is derived from the key. Eine geheime Zeichenfolge, die von der Schlüssel abgeleitet ist.
Subkey Generation Unterschlüssel-Generation
An algorithm that derives subkeys from a key. Ein Algorithmus, der Unterschlüssel von einem Schlüssel ableitet.
TDEA TDEA
Triple Data Encryption Algorithm. Triple Data Encryption Algorithm.

Page 10 Seite 10
4 4
4.2 Symbols 4.2 Symbole
4.2.1 4.2.1
Variables Variablen
b b
The bit length of a block. Die Bit-Länge eines Blocks.
R R
b b
The constant string for subkey generation for a cipher with block size b . Die konstante String für Unterschlüssel Generation für eine Chiffre mit Blockgröße b.
K K
The block cipher key. Die Blockchiffre-Taste.
K1 K1
The first subkey. Die erste Unterschlüssel.
K2 K2
The second subkey. Die zweite Unterschlüssel.
Key1 Taste1
The first component of a TDEA key. Die erste Komponente eines TDEA drücken.
Key2 Taste2
The second component of a TDEA key. Die zweite Komponente des TDEA-Taste.
Key3 Key3
The third component of a TDEA key. Die dritte Komponente des TDEA-Taste.
M M
The message. Die Botschaft.
M M
i ich
The i th block of the formatted message. Das i-te Block des formatierte Nachricht.
M M
n n
* *
The final block, possibly a partial block, of the formatted message. Der letzte Block, gegebenenfalls ein Teilblock, der formatierte Nachricht.
Mlen Mlen
The bit length of the message. Die Bitlänge der Nachricht.
n n
The number of blocks in the formatted message. Die Anzahl der Blöcke in der formatierten Nachricht.
T T
The MAC. Die MAC.
Tlen Tlen
The bit length of the MAC. Die Bitlänge des MAC.
4.2.2 4.2.2
Operations and Functions Vorgänge und Funktionen
⎡ ⎤ ⎡ ⎤
x x
The least integer that is not less than the real number x . Die kleinste ganze Zahl, die nicht kleiner als der reale Zahl x ist.
X || Y X Y ||
The concatenation of two bit strings X and Y . Die Verkettung von zwei Bitfolgen x und y.
XY XY
The bitwise exclusive-OR of two bit strings X and Y of the same length. Das bitweise Exklusiv-ODER von zwei Bit-Strings X und Y die gleiche Länge.
CIPH CIPH
K K
( X ) (X)
The output of the forward cipher function of the block cipher under the key K Der Ausgang des Vorwärts-Verschlüsselungsfunktion der Blockchiffre unter dem Schlüssel K
applied to the block X . dem Block X verwendet.
LSB LSB
s s
( X ) (X)
The bit string consisting of the s right-most bits of the bit string X . Die Bit-String, der aus den n am weitesten rechts Bits der Bitkette X.

Page 11 Seite 11
5 5
MSB MSB
s s
( X ) (X)
The bit string consisting of the s left-most bits of the bit string X . Die Bit-String, bestehend aus den s am weitesten links Bits der Bit-String X.
X << 1 X << 1
The bit string that results from discarding the leftmost bit of the bit string X and Die Bit-String, der von der Entsorgung des am weitesten links stehende Bit der Bit-String X Ergebnisse und
appending a '0' bit on the right. Anhängen eines "0"-Bit auf der rechten Seite.
lg( x ) lg (x)
The base 2 logarithm of the positive real number x . Der Logarithmus zur Basis 2 der positiven reellen Zahl x ist.
0 0
s s
The bit string that consists of s '0' bits. Die Bit-String, der von s '0' Bits besteht.
5 Preliminaries 5 Vorbemerkungen
The elements of CMAC and the associated notation are introduced in the five sections below. Die Elemente der CMAC und die damit verbundene Schreibweise sind in den fünf folgenden Abschnitten vorgestellt.
Examples of operations and functions are given in Sec. Beispiele für Operationen und Funktionen sind in § gegeben. 5.1. 5.1. The underlying block cipher and Die zugrunde liegende Blockchiffre und
key are discussed in Sec. Schlüssel sind in § diskutiert. 5.2. 5.2. The two subkeys that are derived from the key are discussed in Die beiden Unterschlüssel von dem Schlüssel abgeleitet werden diskutiert
Sec. Sec. 5.3. 5.3. MAC generation and verification are discussed in Sec. MAC Erzeugung und Prüfung sind in § diskutiert. 5.4. 5.4. The input and output data Die Eingangs und Ausgangsdaten
for MAC generation are discussed in Sec. für MAC-Generation sind in § diskutiert. 5.5. 5.5.
5.1 Examples of Operations and Functions 5.1 Beispiele für Vorgänge und Funktionen
Given a positive integer s , 0 Bei einer positiven ganzen Zahl n, 0
s s
denotes the string that consists of s '0' bits. bezeichnet die Zeichenfolge, die von s '0' Bits besteht. For example, 0 Beispielsweise 0
8 8
= =
00000000. 00000000.
Given a real number x , the ceiling function, denoted ⎡x⎤, is the least integer that is not less than x . Bei einer reellen Zahl x, die Decke Funktion, bezeichnet ⎡x⎤, ist die kleinste ganze Zahl, die nicht kleiner als x ist.
For example, ⎡2.1⎤ = 3, and ⎡4⎤ = 4. Zum Beispiel ⎡2.1⎤ = 3 und ⎡4⎤ = 4 ist.
The concatenation operation on bit strings is denoted ||; Die Verkettung Operation auf Bit-Strings wird bezeichnet ||; for example, 001 || 10111 = 00110111. beispielsweise 001 || 10111 = 00110111.
Given bit strings of equal length, the exclusive-OR operation, denoted ⊕, specifies the addition, Gegeben Bitfolgen von gleicher Länge, die Exklusiv-ODER-Operation bezeichnet ⊕, gibt die zusätzlich
modulo 2, of the bits in each bit position, ie, without carries. modulo 2 der Bits in jeder Bit-Position, also ohne trägt. For example, 10011 ⊕ 10101 = B. 10011 10101 ⊕ =
00110. 00110.
Given a bit string X , the functions LSB Bei einem Bit-String X, die Funktionen LSB
s s
( X ) and MSB (X) und MSB
s s
( X ) return the s least significant (ie, right- (X) kehren die am wenigsten signifikante (dh der rechten Maustaste
most) bits and the s most significant (ie, left-most) bits, respectively, of X . esten) Bits und die n höchstwertigen (dh linke) Bit jeweils von x. For example, Beispielsweise,
LSB LSB
3 3
(111011010) = 010, and MSB (111011010) = 010, und MSB
4 4
(111011010) = 1110. (111011010) = 1110.
Given a bit string X that consists of Xlen bits, the (single) left-shift function, denoted X << 1, is Bei einem Bit-String X, die von Xlen Bits besteht, die (einzige) Links-Shift-Funktion, bezeichnet mit X << 1, ist
LSB LSB
Xlen Xlen
( X || 0). (X || 0). For example, 1101110 << 1 = 1011100. B. 1101110 << 1 = 1011100.
Given a positive real number x , its base 2 logarithm is denoted lg( x ). Bei einer positiven reellen Zahl x ist, dessen Logarithmus zur Basis 2 bezeichnet lg (x). For example, lg(2 Zum Beispiel, lg (2
10 10
) = 10. ) = 10.
5.2 Block Cipher 5.2 Block Cipher
The CMAC algorithm depends on the choice of an underlying symmetric key block cipher. Der CMAC Algorithmus hängt von der Wahl des zugrundeliegenden symmetrischen Blockverschlüsselungsschlüssel. The Die
CMAC algorithm is thus a mode of operation (a mode, for short) of the block cipher. CMAC Algorithmus ist also ein Betriebsmodus (ein Modus, kurz) der Blockchiffre. The Die
CMAC key is the block cipher key (the key, for short). CMAC Schlüssel ist die Blockchiffre-Taste (Taste für kurz).

Page 12 Seite 12
6 6
For any given key, the underlying block cipher of the mode consists of two functions that are Für jeden gegebenen Schlüssel, die zugrunde liegende Blockchiffre des Modus besteht aus zwei Funktionen, die sind
inverses of each other. Inverse zueinander sind. The choice of the block cipher includes the designation of one of the two Die Wahl der Blockverschlüsselung enthält die Bezeichnung eines der beiden
functions of the block cipher as the forward function/transformation, and the other as the inverse Funktionen der Blockchiffre als die Vorwärts Funktion / Transformation, und die andere als die inverse
function, as in the specifications of the AES algorithm and TDEA in Ref. Funktion, wie sie in den Spezifikationen des AES-Algorithmus und TDEA in Ref. [3] and Ref. [3] und Ref. [10], [10],
respectively. jeweils. The CMAC mode does not employ the inverse function. Die CMAC Modus verwendet nicht die umgekehrte Funktion.
The forward cipher function is a permutation on bit strings of a fixed length; Die Vorwärtsverschlüsselungsfunktion ist eine Permutation Bitfolgen einer festen Länge; the strings are die Saiten
called blocks. Blöcke genannt. The bit length of a block is denoted b , and the length of a block is called the block Die Bit-Länge eines Blockes B bezeichnet, und die Länge eines Blocks wird der Block aufgerufen
size. Größe. For the AES algorithm, b = 128; Für den AES-Algorithmus, b = 128; for TDEA, b = 64. The key is denoted K , and the für TDEA, b = 64. Der Schlüssel bezeichnet K, und die
resulting forward cipher function of the block cipher is denoted CIPH resultierende Vorwärtsverschlüsselungsfunktion der Blockchiffre bezeichnet CIPH
K K
. .
The underlying block cipher shall be approved, and the key shall be generated uniformly at Die zugrunde liegende Blockchiffre ist gebilligt, und der Schlüssel wird gleichmäßig auf erzeugt werden
random, or close to uniformly at random, ie, so that each possible key is (nearly) equally likely zufällig oder nahezu gleichverteilt, also so, dass jede mögliche Schlüssel (fast) gleich wahrscheinlich
to be generated. erzeugt werden. The key shall be secret and shall be used exclusively for the CMAC mode of Der Schlüssel sind geheim und werden ausschließlich für die CMAC Modus verwendet werden
the chosen block cipher. die gewählte Blockchiffre. The message span of the key is discussed in Appendix B. To fulfill the Die Meldung Spannweite der Schlüssel ist in Anhang B diskutiert, um die Erfüllung
requirements on the key, the key should be established among the parties to the information Anforderungen an die Schlüssel, sollte der Schlüssel unter den Parteien zu den Informationen festgelegt werden
within an approved key management structure; innerhalb einer zugelassenen Schlüssel-Management-Struktur; the details of the establishment and management die Details der Einrichtung und Verwaltung
of keys are outside the scope of this Recommendation. der Schlüssel nicht in den Geltungsbereich dieser Empfehlung.
5.3 Subkeys 5.3 Unterschlüssel
The block cipher key is used to derive two additional secret values, called the subkeys, denoted Die Blockchiffre-Taste wird verwendet, um zwei zusätzliche geheimen Werte abzuleiten, die so genannte Unterschlüssel, bezeichnet
K1 and K2 . K1 und K2. The length of each subkey is the block size. Die Länge der einzelnen Unterschlüssel ist die Blockgröße. The subkeys are fixed for any Die Unterschlüssel sind für jede Fest
invocation of CMAC with the given key. Aufruf von CMAC mit dem angegebenen Schlüssel. Consequently, the subkeys may be precomputed and Folglich können die Unterschlüssel voraus berechnet werden und
stored with the key for repeated use; mit der Taste für eine wiederholte Verwendung gespeichert werden; alternatively, the subkeys may be computed anew for each Alternativ kann die Unterschlüssel für jede neu berechnet werden,
invocation. Aufruf.
Any intermediate value in the computation of the subkey, in particular, CIPH Jeder Zwischenwert bei der Berechnung des Unterschlüssels, insbesondere CIPH
K K
(0 (0
b b
), shall also be ), So wird auch sein,
secret. Geheimnis. This requirement precludes the system in which CMAC is implemented from using this Diese Forderung schließt das System, in dem CMAC wird von der Verwendung dieser umgesetzt
intermediate value publicly for some other purpose, for example, as an unpredictable value or as Zwischenwert öffentlich für andere Zwecke, beispielsweise als eine unvorhersehbare Wert oder als
an integrity check value on the key. ein Integritätsprüfwert auf der Taste.
One of the elements of the subkey generation process is a bit string, denoted R Eines der Elemente der Unterschlüssel-Erzeugungsprozess ist eine Bitfolge, bezeichnet R
b b
, that is , Ist, dass
completely determined by the number of bits in a block. durch die Anzahl der Bits in einem Block vollständig bestimmt. In particular, for the two block sizes of Insbesondere für die beiden Blockgrößen
the currently approved block ciphers, R die derzeit zugelassenen Blockchiffren, R
128 128
= 0 = 0
120 120
10000111, and R 10000111, und R
64 64
= 0 = 0
59 59
11011. 11011.
In general, R Im allgemeinen ist R
b b
is a representation of a certain irreducible binary polynomial of degree b , namely, ist eine Darstellung eines bestimmten binären irreduzible Polynom vom Grad B, nämlich
the lexicographically first among all such polynomials with the minimum possible number of die lexikographisch erste unter allen solchen Polynome mit der minimal möglichen Anzahl von
nonzero terms. Null verschiedene Begriffe. If this polynomial is expressed as u Wenn dieses Polynom wird als u ausgedrückt
b b
+ c + C
b -1 b -1
u u
b -1 b -1
+...+ c + ... + C
2 2
u u
2 2
+ c + C
1 1
u + c u + c
0 0
, where the , Wobei die
coefficients c Koeffizienten c
b -1 b -1
, c , C
b -2 b -2
, ... , c , ..., C
2 2
, c , C
1 1
, c , C
0 0
are either 0 or 1, then R entweder 0 oder 1 ist, R
b b
is the bit string c ist die Bit-String c
b -1 b -1
c c
b -2 b -2
...c C ...
2 2
c c
1 1
c c
0 0
. .
5.4 MAC Generation and Verification 5.4 MAC Generierung und Verifikation
As for any MAC algorithm, an authorized party applies the MAC generation process to the data Wie bei jedem MAC-Algorithmus, gilt der Berechtigte die Generierung von MAC in der Daten
to be authenticated to produce a MAC for the data. authentifiziert werden, um einen MAC für die Daten zu erzeugen. Subsequently, any authorized party can Anschließend kann jeder autorisierte Partei
apply the verification process to the received data and the received MAC. Anwendung des Verifizierungsprozesses auf die empfangenen Daten und der empfangenen MAC. Successful Erfolgreich
verification provides assurance of data authenticity, as discussed in Appendix A, and, hence, of Überprüfung bietet Sicherung der Datenauthentizität, wie in Anhang A diskutiert, und damit der

Page 13 Seite 13
7 7
integrity. Integrität.
5.5 Input and Output Data 5.5 Eingang und Ausgangsdaten
For a given block cipher and key, the input to the MAC generation function is a bit string called Für einen gegebenen Block Cipher und Schlüssel, der Eingang in den MAC Erzeugungsfunktion ist eine Bit-Kette genannt
the message, denoted M . die Nachricht, bezeichnet M. The bit length of M is denoted Mlen . Die Bitlänge M bezeichnet MLEN. The value of Mlen is not an Der Wert ist nicht MLEN
essential input for the MAC generation algorithm if the implementation has some other means of wesentliche Voraussetzung für die MAC-Generation-Algorithmus, wenn die Umsetzung hat einige andere Mittel der
identifying the last block in the partition of the message, as discussed in Sec. Identifizierung der letzte Satz in der Partition der Nachricht, wie in § diskutiert. 6.2. 6.2. Thus, in such a Damit in einem solchen
case, the computation of the MAC may begin “on-line” before the entire message is available. Bei der Berechnung des MAC kann "on-line" zu beginnen, bevor die gesamte Nachricht verfügbar ist. In In
principle, there is no restriction on the lengths of messages. Grundsätzlich besteht keine Einschränkung hinsichtlich der Länge der Nachrichten. In practice, however, the system in In der Praxis jedoch ist das System in
which CMAC is implemented may restrict the length of the input messages to the MAC die CMAC implementiert ist, die Länge der Eingangsnachrichten an die MAC-Filterung
generation function. Generation-Funktion.
The output of the MAC generation function is a bit string called the MAC, denoted T . Der Ausgang der Erzeugungsfunktion MAC ist eine Bitfolge, die MAC, bezeichnet mit T. The Die
length of T , denoted Tlen , is a parameter that shall be fixed for all invocations of CMAC with the Länge T, bezeichnet Tlen, ist ein Parameter, der für alle Aufrufe von CMAC mit der festsetzt
given key. gegebenen Schlüssel. The requirements for the selection of Tlen are given in Appendix A. Die Anforderungen für die Auswahl von Tlen sind in Anhang A angegeben
6 CMAC Specification 6 CMAC Spezifikation
Subkey generation, MAC generation, and MAC verification are specified in Sections 6.1, 6.2, Unterschlüssel Generation, MAC Generation und MAC-Überprüfung werden in den Abschnitten 6.1, 6.2,
and 6.3 below. und 6.3. The specifications include the inputs, the outputs, a suggested notation for the Die Spezifikationen sind die Eingänge, die Ausgänge, eine vorgeschlagene Schreibweise für die
function, the steps, and a summary; Funktion, die Schritte, und eine Zusammenfassung; for MAC generation, a diagram is also given. für MAC Generation ist ein Diagramm angegeben. The inputs Die Eingänge
that are typically fixed across many invocations of CMAC are called the prerequisites. dass in der Regel behoben werden, über viele Aufrufe von CMAC sind die Voraussetzungen genannt. The Die
prerequisites and the other inputs shall meet the requirements in Sec. Voraussetzungen und die anderen Eingänge müssen den Anforderungen in § erfüllen. 5. The suggested notation 5. Der vorgeschlagene Schreibweise
does not include the block cipher. beinhaltet nicht die Blockchiffre.
6.1 Subkey Generation 6.1 Unterschlüssel-Erzeugungs
The following is a specification of the subkey generation process of CMAC: Das folgende ist eine Spezifikation des Unterschlüssel Erzeugungsprozess CMAC:
Prerequisites : Voraussetzungen:
block cipher CIPH with block size b ; Blockchiffre mit Blockgröße CIPH b;
key K . Schlüssel K.
Output : Ausgang:
subkeys K1 , K2. Unterschlüssel K1, K2.
Suggested Notation : Empfohlene Notation:
SUBK( K ). SUBK (K).
Steps : Schritte aus:
1. 1.
Let L = CIPH Sei L = CIPH
K K
(0 (0
b b
). ).
2. 2.
If MSB Wenn MSB
1 1
( L ) = 0, then K1 = L << 1; (L) = 0, dann ist L = K1 << 1;
Else K1 = ( L << 1) ⊕ R Sonst K1 = (L << 1) ⊕ R
b b
; ; see Sec. siehe Sec. 5.3 for the definition of R 5.3 für die Definition von R
b b
. .
3. 3.
If MSB Wenn MSB
1 1
( K1 ) = 0, then K2 = K1 << 1; (K1) = 0, K2 = K1 << 1;
Else K2 = ( K1 << 1) ⊕ R Sonst K2 = (K1 << 1) ⊕ R
b b
. .

Page 14 Seite 14
8 8
4. 4.
Return K1 , K2 . Zurück K1, K2.
In Step 1, the block cipher is applied to the block that consists entirely of '0' bits. In Schritt 1 wird die Blockverschlüsselung an dem Block, der nur aus "0"-Bits besteht aufgebracht. In Step 2, the In Schritt 2 wird die
first subkey is derived from the resulting string by a left shift of one bit, and, conditionally, by erste Unterschlüssel wird von der resultierenden Saite durch eine Linksverschiebung um ein Bit nach abgeleitet und bedingt
XORing a constant that depends on the block size. XOR-Verknüpfung eine Konstante, die von der Blockgröße abhängt. In Step 3, the second subkey is derived in In Schritt 3 wird die zweite Unterschlüssel in abgeleiteten
the same manner from the first subkey. die gleiche Weise von der ersten Unterschlüssel.
1 1
As discussed in Sec. Wie in § diskutiert. 5.3, any intermediate value in the 5.3, jeder Zwischenwert in der
computation of the subkey, in particular, CIPH Berechnung des Unterschlüssels, insbesondere CIPH
K K
(0 (0
b b
), shall be secret. ), Sind geheim.
6.2 MAC Generation 6.2 MAC-Generation
The following is a specification of the MAC generation process of CMAC: Das folgende ist eine Spezifikation des Generierungsprozesses von CMAC MAC:
Prerequisites : Voraussetzungen:
block cipher CIPH with block size b ; Blockchiffre mit Blockgröße CIPH b;
key K ; Schlüssel K;
MAC length parameter Tlen . MAC Längenparameter Tlen.
Input : Input:
message M of bit length Mlen. Nachricht M der Bit-Länge MLEN.
Output : Ausgang:
MAC T of bit length Tlen. MAC T der Bit-Länge Tlen.
Suggested Notation : Empfohlene Notation:
CMAC( K , M , Tlen ) or, if Tlen is understood from the context, CMAC( K , M ). CMAC (K, M, Tlen) oder, falls Tlen aus dem Zusammenhang CMAC (K, M) verstanden.
Steps : Schritte aus:
1. 1.
Apply the subkey generation process in Sec. Wenden Sie den Unterschlüssel-Erzeugungsprozess in Sec. 6.1 to K to produce K1 and K2 . 6.1 bis K zu K1 und K2 zu produzieren.
2. 2.
If Mlen = 0, let n = 1; Wenn MLEN = 0, sei n = 1; else, let n = ⎡ Mlen / b ⎤. sonst sei n = ⎡ MLEN / b ⎤.
3. 3.
Let M Sei M
1 1
, M , M
2 2
, ... , M , ..., M
n -1 n -1
, M , M
n n
* *
denote the unique sequence of bit strings such that M = bezeichnen die eindeutige Folge von Bit-Ketten, so dass M =
M M
1 1
|| M || M
2 2
|| ... || M || ... || M
n -1 n -1
|| M || M
n n
* *
, where M , Wobei M
1 1
, M , M
2 2
,..., M , ..., M
n -1 n -1
are complete blocks. sind vollständig blockiert.
2 2
4. 4.
If M Wenn M
n n
* *
is a complete block, let M ein vollständiger Block sei M
n n
= K1M = K1M
n n
* *
; ; else, let M sonst sei M
n n
= K2 ⊕ ( M = K2(M
n n
* *
||10 || 10
j j
), )
where j = nb - Mlen -1. wobei j = nb - MLEN -1.
5. 5.
Let C Sei C
0 0
= 0 = 0
b b
. .
6. 6.
For i = 1 to n , let C Für i = 1 bis n, lassen C
i ich
= CIPH = CIPH
K K
( C (C
i -1 i-1
M M
i ich
). ).
7. 7.
Let T = MSB Sei T = MSB
Tlen Tlen
( C (C
n n
). ).
8. 8.
Return T. Zurück T.
In Step 1, the subkeys are generated from the key. In Schritt 1 werden die Unterschlüssel aus dem Schlüssel erzeugt. In Steps 2–4, the input message is formatted In Schritt 2-4 wird der eingegebene Nachricht formatiert
into a sequence of complete blocks in which the final block has been masked by a subkey. in einer Folge von vollständigen Sätzen, in denen der letzte Block wurde durch eine Unterschlüssel maskiert. There Da
are two cases: sind zwei Fälle:
1 1
As detailed in Ref. Wie in Ref beschrieben. [5], the generation of K1 and K2 is essentially equivalent to multiplication by u and u [5] ist die Herstellung von K1 und K2 im wesentlichen äquivalent zu einer Multiplikation mit u und u
2 2
, ,
respectively, within the Galois field that is determined by the irreducible polynomial that is represented by R jeweils innerhalb des Galois-Feldes, die durch das irreduzible Polynom, das durch R dargestellt wird, bestimmt wird,
b b
, which , Die
is discussed in Sec. ist in § diskutiert. 5.3. 5.3.
2 2
Consequently, if Mlenb , then M = M Wenn also MLENb, dann ist M = M
1 1
* *
. .

Page 15 Seite 15
9 9
• If the message length is a positive multiple of the block size, then the message is • Wenn die Länge der Nachricht ist ein positives Vielfaches der Blockgröße, dann wird die Nachricht
partitioned into complete blocks. in vollständige Blöcke unterteilt. The final block is masked with the first subkey; Der letzte Block ist mit dem ersten Unterschlüssel maskiert; in in
other words, the final block in the partition is replaced with the exclusive-OR of the final Mit anderen Worten wird der letzte Block in der Trennwand mit dem Exklusiv-ODER der endgültigen Fassung
block with the first subkey. Block mit dem ersten Unterschlüssel. The resulting sequence of blocks is the formatted message. Die resultierende Sequenz von Blöcken ist die formatierte Nachricht.
• If the message length is not a positive multiple of the block size, then the message is • Wenn die Länge der Nachricht ist nicht ein positives Vielfaches der Blockgröße, dann wird die Nachricht
partitioned into complete blocks to the greatest extent possible, ie, into a sequence of in vollständigen Blöcken so weit wie möglich, dh, partitioniert in eine Folge von
complete blocks followed by a final bit string whose length is less than the block size. kompletten Blöcken, gefolgt von einem letzten Bit-Kette, deren Länge kleiner ist als die Blockgröße. A Ein
padding string is appended to this final bit string, in particular, a single '1' bit followed Polsterung String wird an diesem letzten Bit-String angehängt, insbesondere eine einzelne "1" Bit gefolgt
by the minimum number of '0' bits, possibly none, that are necessary to form a complete die minimale Anzahl von "0" Bits, möglicherweise keine, die notwendig sind zur Bildung eines vollständigen
block. Block. The complete final block is masked, as described in the previous bullet, with the Der komplette letzte Block ist maskiert, wie im vorherigen Punkt beschrieben, mit der
second subkey. zweiten Unterschlüssel. The resulting sequence of blocks is the formatted message. Die resultierende Sequenz von Blöcken ist die formatierte Nachricht.
In Steps 5 and 6, the cipher block chaining (CBC) technique, with the zero block as the In den Schritten 5 und 6 der Cipher Block Chaining (CBC)-Technik, mit der Null-Block als die
initialization vector, is applied to the formatted message. Initialisierungsvektor wird die formatierte Nachricht angewendet. In Steps 7 and 8, the final CBC output In den Schritten 7 und 8 der letzten CBC Ausgangs
block is truncated according to the MAC length parameter that is associated with the key, and the Block nach der MAC Längenparameter, die mit dem Schlüssel assoziiert ist, abgeschnitten, und die
result is returned as the MAC. Ergebnis wird als MAC zurückgegeben.
Equivalent sets of steps, ie, procedures that yield the correct output from the same input, are Äquivalente Mengen von Schritten, also Verfahren, die die korrekte Ausgabe aus der gleichen Eingabe ergeben, sind
permitted. gestattet. For example, it is not necessary to complete the formatting of the entire message Zum Beispiel ist es nicht notwendig, die Formatierung der gesamten Nachricht abzuschließen
(Steps 3 and 4) prior to the cipher block chaining (Steps 5 and 6). (Schritte 3 und 4) vor dem Cipher Block Chaining (Stufen 5 und 6). Instead, the iterations of Step Stattdessen werden die Iterationen des Schritts
5 may be executed “on the fly,” ie, on each successive block of the message as soon as it is 5. Mai "on the fly", also durchgeführt werden, bei jedem aufeinanderfolgenden Block der Nachricht, sobald es
available for processing. zur Verarbeitung zur Verfügung. Step 4 may be delayed until the final bit string in the partition is Schritt 4 verzögert, bis die endgültige Bit-String in der Partition werden
available; verfügbar; the appropriate case, and value of j , if necessary, can be determined from the length of der entsprechende Fall, und der Wert von j, falls erforderlich, von der Länge bestimmt werden,
the final bit string. das letzte Bit-String. In such an implementation, the determination in Step 2 of the total number of Bei einer solchen Implementierung wird die Bestimmung in Schritt 2 der Gesamtzahl der
blocks in the formatted message may be omitted, assuming that the implementation has another Blöcke in der formatierten Nachricht weggelassen werden, vorausgesetzt, dass die Durchführung weiterer
way to identify the final string in the partition. Weise die letzte Zeichenfolge in der Partition zu identifizieren.
Similarly, the subkeys need not be computed anew for each invocation of CMAC with a given Ebenso die Unterschlüssel müssen nicht neu für jeden Aufruf CMAC mit einer gegebenen berechnet werden
key; Schlüssel; instead, they may be precomputed and stored along with the key as algorithm inputs. Stattdessen können sie im voraus berechnet und zusammen mit dem Schlüssel als Algorithmus Eingänge gespeichert werden.
Figure 1: Illustration of the two cases of MAC Generation. Abbildung 1: Illustration der beiden Fälle von MAC-Generation.
...
K 1 K 1
MSB MSB
Tlen Tlen
T T
CIPH CIPH
K K
CIPH CIPH
K K
M M
1 1
M M
2 2
CIPH CIPH
K K
M M
n n
* *
...
K 2 K 2
MSB MSB
Tlen Tlen
T T
CIPH CIPH
K K
CIPH CIPH
K K
M M
1 1
M M
2 2
CIPH CIPH
K K
M M
n n
* *
10…0 10 ... 0
...
K 1 K 1
MSB MSB
Tlen Tlen
T T
CIPH CIPH
K K
CIPH CIPH
K K
M M
1 1
M M
2 2
CIPH CIPH
K K
M M
n n
* *
...
K 2 K 2
MSB MSB
Tlen Tlen
T T
CIPH CIPH
K K
CIPH CIPH
K K
M M
1 1
M M
2 2
CIPH CIPH
K K
M M
n n
* *
10…0 10 ... 0

Page 16 Seite 16
10 10
The two cases of MAC Generation are illustrated in Figure 1 above. Die beiden Fälle von MAC-Generation sind in Abbildung 1 oben dargestellt. On the left is the case Auf der linken Seite ist der Fall,
where the message length is a positive multiple of the block size; wobei die Länge der Nachricht ist ein positives Vielfaches der Blockgröße; on the right is the case where rechts ist der Fall, wenn
the message length is not a positive multiple of the block length. Die Nachrichtenlänge ist kein positives Vielfaches der Blocklänge ist.
6.3 MAC Verification 6.3 MAC Überprüfung
The following is a specification of the MAC verification process of CMAC: Das folgende ist eine Spezifikation der MAC-Verifizierungsprozess von CMAC:
Prerequisites : Voraussetzungen:
block cipher CIPH with block size b ; Blockchiffre mit Blockgröße CIPH b;
key K ; Schlüssel K;
subkeys K1 , K2 ; Unterschlüssel K1, K2;
MAC length Tlen . MAC Länge Tlen.
Input : Input:
message M of bit length Mlen ; Nachricht M der Bit-Länge MLEN;
received MAC T'. empfangenen MAC T '.
Output : Ausgang:
VALID or INVALID . Gültig oder ungültig.
Suggested Notation : Empfohlene Notation:
VER( K , M , T' ). VER (K, M, T ').
Steps : Schritte aus:
1. 1.
Apply the MAC generation process in Sec. Tragen Sie die MAC-Generierungsprozess in Sec. 6.2 to M to produce T . 6,2 bis M bis T zu produzieren.
2. 2.
If T = T' , return VALID; Wenn T = T ', Rückkehr gültig ist; else, return INVALID. sonst, Rückkehr INVALID.
In Step 1, the MAC generation process in Sec. In Schritt 1 wird die Generierung MAC in Sec. 6.2 is applied to the message, and, in Step 2, the 6.2 auf die Nachricht angewendet wird, und in Schritt 2 die
resulting MAC is compared with the received MAC to determine its validity. resultierende MAC wird mit dem empfangenen MAC verglichen, um die Gültigkeit zu bestimmen.

Page 17 Seite 17
11 11
Appendix A: Length of the MAC Anhang A: Länge des MAC
The length, Tlen , of the MAC is an important security parameter. Die Länge, Tlen, der MAC ist ein wichtiger Sicherheitsparameter. The role of this parameter in Die Rolle dieser Parameter
resisting guessing attacks is outlined in Sec. Widerstand gegen Angriffe zu erraten ist in § skizziert. A.1, and guidance in the selection of Tlen is given in A.1 und Führung bei der Auswahl der Tlen in vorgegebenen
Sec. Sec. A.2. A.2.
A.1 A.1
Assurance Against Guessing Attacks Sicherheit gegen Angriffe zum Erraten
The verification process determines whether the purported MAC on a message is the valid output Die Überprüfung, ob der angebliche MAC auf einer Nachricht ist die gültige Ausgangs
of the MAC generation process applied to the message. der MAC-Erzeugungsprozess auf die Nachricht angewendet. The output of the MAC verification Der Ausgang der MAC-Überprüfung
determines the assurance that the receiver of the message obtains: bestimmt die Sicherheit, dass der Empfänger der Nachricht erhält:
• If the output is INVALID, then the message is definitely not authentic, ie, it did not • Wenn die Ausgabe ungültig ist, dann ist die Botschaft definitiv nicht authentisch, das heißt, es kam nicht
originate from a source that executed the generation process on the message to produce aus einer Quelle, die den Erzeugungsprozess ausgeführt auf die Nachricht zu erzeugen,
the purported MAC. die angebliche MAC.
• If the output is VALID, then the design of the mode provides assurance that the message • Wenn der Ausgang gültig ist, dann ist das Design des Modus gewährleistet, dass der Nachrichten
is authentic and, hence, was not corrupted in transit; ist authentisch, und daher nicht im Transit beschädigt; however, this assurance, as for any dies jedoch Sicherung, wie für jede
MAC algorithm, is not absolute. MAC-Algorithmus, ist nicht absolut.
In the second case, an attacker, ie, a party without access to the key or to the MAC generation Im zweiten Fall kann ein Angreifer, dh, eine Gruppe, die keinen Zugang zu dem Schlüssel bzw. zu der MAC-Erzeugung
process, may have simply guessed the correct MAC for the message. Verfahren kann einfach erraten haben die richtige MAC für die Nachricht. In particular, if the attacker Insbesondere, wenn der Angreifer
selects a MAC at random from the set of strings of length Tlen bits, then the probability is 1 in wählt ein MAC zufällig aus der Menge von Zeichenketten der Länge Tlen Bits, dann ist die Wahrscheinlichkeit 1
2 2
Tlen Tlen
that the MAC will be valid. dass die MAC gültig. Consequently, larger values of Tlen provide greater protection Folglich größere Werte von Tlen bieten mehr Schutz
against such an event. eines solchen Ereignisses. Of course, an attacker may attempt to systematically guess many different Natürlich kann ein Angreifer versuchen, systematisch denke, viele verschiedene
MACs for a message, or for different messages, and thereby increase the probability that one (or MACs für eine Meldung oder mehrerer Meldungen, und dadurch die Wahrscheinlichkeit zu erhöhen, dass eine (oder
more) of them will be accepted as valid. mehr) von ihnen werden als gültig akzeptiert werden. For this reason, a system should limit the number of Aus diesem Grund sollte ein System die Anzahl der Grenzwert
unsuccessful verification attempts for each key. erfolglos versucht Prüfung für jede Taste.
A.2 A.2
Selection of the MAC Length Auswahl der MAC Länge
Larger values of Tlen provide greater assurance against guessing attacks. Größere Werte von Tlen bieten größere Sicherheit gegen Angriffe zum Erraten. The performance Die Leistung
tradeoff is that larger values of Tlen require more bandwidth/storage for the MAC. Nachteil ist, dass größere Werte von Tlen benötigen mehr Bandbreite / Lagerung für den Mac.
For most applications, a value for Tlen that is at least 64 should provide sufficient protection Für die meisten Anwendungen wird ein Wert für Tlen, die mindestens 64 sollte ausreichend Schutz bieten
against guessing attacks. Rate gegen Angriffe. A value of Tlen that is less than 64 shall only be used in conjunction Ein Wert von Tlen, die weniger als 64 ist nur in Verbindung verwendet werden
with a careful analysis of the risks of accepting an inauthentic message as authentic. mit einer sorgfältigen Analyse der Risiken der Annahme eines unechten Nachricht als authentisch.
In particular, a value of Tlen smaller than 64 should not be used unless the controlling protocol Insbesondere sollte ein Wert von kleiner als 64 Tlen nicht, es sei denn die Steuerprotokoll verwendet werden
or system sufficiently restricts the number of times that the verification process can return oder System ausreichend begrenzt die Anzahl der Male, dass der Überprüfungsprozess zurückkehren können
INVALID, across all implementations with any given key. INVALID, in allen Implementierungen mit einem bestimmten Schlüssel. For example, the short duration of a Zum Beispiel kann die kurze Dauer eines
session or, more generally, the low bandwidth of the communication channel may preclude many Sitzung oder, allgemeiner, die geringe Bandbreite der Kommunikationskanal kann viele entgegen
repeated trials. wiederholten Versuchen.

Page 18 Seite 18
12 12
This guidance can be quantified in terms of the following two bounds: 1) the highest acceptable Diese Führung kann in Form der folgenden zwei Grenzen quantifiziert werden: 1) die höchste akzeptable
probability for an inauthentic message to pass the verification process, and 2) a limit on the Wahrscheinlichkeit für einen unechten Nachricht, um den Prüfungsprozess übergeben, und 2) eine Obergrenze für die
number of times that the output is the error message INVALID before the key is retired, across Anzahl der Zeiten, die die Ausgabe der Fehlermeldung INVALID bevor der Schlüssel ist im Ruhestand, über
all implementations of the verification process for the key. Alle Implementierungen des Verifikationsprozesses für den Schlüssel. Given estimates of these quantities, Angesichts Schätzungen dieser Mengen,
denoted Risk and MaxInvalids , respectively, Tlen should satisfy the following inequality: Bezeichnetes Risiko und MaxInvalids jeweils Tlen sollte die folgende Ungleichung erfüllen:
) )
/ /
lg( lg (
Risk Risiko
s s
MaxInvalid MaxInvalid
Tlen Tlen
. .
For example, suppose that the MAC verification process(es) within a system will not output Angenommen, dass die MAC-Verifizierungsprozess (es) in einem System nicht ausgegeben
INVALID for more than 1024 messages before the key is retired (ie, MaxInvalids = 2 Ungültig für mehr als 1024 Meldungen vor der Schlüssel ist im Ruhestand (dh MaxInvalids = 2
10 10
), and ), Und
that the users can tolerate about a one in a million chance that the system will accept an dass die Benutzer können über eine eins zu einer Million Chance tolerieren, dass das System eine Annahme
inauthentic message (ie, Risk = 2 unecht Nachricht (dh Risiko = 2
-20 -20
). ). In this case, any value of Tlen that is greater than or equal In diesem Fall wird ein beliebiger Wert von Tlen, die größer oder gleich ist
to 30 satisfies the inequality. 30 der Ungleichung.

Page 19 Seite 19
13 13
Appendix B: Message Span of the Key Anhang B: Nachricht Spanne der Key
The message span of a key is the total number of messages for which MACs are generated across Die Nachricht Spanne eines Schlüssels ist die Gesamtzahl von Nachrichten, für die MACs für erzeugte
all implementations of CMAC with that key. Alle Implementierungen von CMAC mit diesem Schlüssel. The message span of the key affects the security of Die Meldung Spannweite der Taste wirkt sich auf die Sicherheit der
the system against attacks that are based on the detection of a pair of distinct messages with the das System gegen Angriffe, die auf der Detektion eines Paares unterschiedliche Nachrichten mit der Basis von
same MAC before its truncation gleiche MAC vor seinem Abschneiden
3 3
. . Such a pair is called a collision Ein solches Paar wird als Kollisions
4 4
in this appendix. in diesem Anhang. As with Wie
other block cipher-based MAC algorithms, an attacker may be able to exploit a collision to anderen Blockchiffre-basierten MAC-Algorithmen, kann ein Angreifer in der Lage, um eine Kollision zu nutzen sein
produce the valid MAC for a new message, the content of which may be largely of the attacker's produzieren die gültige MAC für eine neue Nachricht, kann deren Inhalt weitgehend der Angreifer sein
choosing. Wahl. Such an event would be a fundamental breach of the expected authentication Ein solches Ereignis wäre ein fundamentaler Verstoß gegen die Authentifizierung erwartet sein
assurance. Sicherung.
In principle, collisions must exist because there are many more possible messages than MACs; Grundsätzlich müssen Kollisionen existieren, weil es viel mehr möglich als MACs Nachrichten; in in
practice, however, collisions may not occur among the messages for which MACs are actually Praxis jedoch Kollisionen nicht zu den Nachrichten auftreten, für die MACs sind eigentlich
generated during the lifetime of the key. während der Laufzeit des Schlüssels erzeugt wird. The probability that at least one collision will occur Die Wahrscheinlichkeit, dass mindestens eine Kollision auftreten wird,
depends mostly on the message span of the key relative to the block size, b , of the underlying hängt meistens von der Nachricht Spannweite der Schlüssel relativ zu der Blockgröße, b, Basis
block cipher. Blockchiffre. For example, a collision is expected to exist among a set of 2 Zum Beispiel wird eine Kollision erwartet, unter einer Menge von 2 existieren
b /2 b / 2
arbitrary messages; beliebige Nachrichten;
in other words, 2 Mit anderen Worten, 2
64 64
messages for the AES algorithm, and 2 Nachrichten für den AES-Algorithmus und 2
32 32
messages for TDEA. Nachrichten für TDEA. This property Diese Eigenschaft
was one of the motivations to develop the AES with a block size of 128 bits. war eine der Motivationen, die AES mit einer Blockgröße von 128 Bit zu entwickeln.
For any system in which CMAC is implemented, the risk that an attacker can detect and exploit a Für jedes System, in dem CMAC implementiert ist, das Risiko, dass ein Angreifer zu erkennen und auszubeuten,
collision shall be limited to a level that is appropriate to the value of the data. Kollision auf ein Niveau, das entsprechend dem Wert der Daten ist beschränkt. A simple and Eine einfache und
prudent method to achieve this goal is to establish and enforce an appropriate limit on the umsichtige Methode, um dieses Ziel zu erreichen ist die Schaffung und Durchsetzung eines angemessenen Begrenzung der
message span of any CMAC key, which in turn limits the probability that a collision will even Nachricht Spannweite von jedem CMAC-Taste, die wiederum die Wahrscheinlichkeit, dass eine Kollision selbst
occur. auftreten. For general-purpose applications, the default recommendation is to limit the key to no Für allgemeine Anwendungen ist der Standard Empfehlung an den Schlüssel zu begrenzen nicht
more than 2 mehr als 2
48 48
messages when the block size of the underlying block cipher is 128 bits, as with Nachrichten, wenn die Blockgröße des zugrundeliegenden Blockchiffre ist 128 Bits, wie mit
the AES algorithm, and 2 Die AES-Algorithmus und 2
21 21
messages when the block size is 64 bits, as with TDEA. Nachrichten, wenn die Blockgröße beträgt 64 Bits, wie mit TDEA. Within Innerhalb
these limits, the probability that a collision will occur is expected to be less than one in a billion Diese Grenzen, die Wahrscheinlichkeit, dass eine Kollision auftreten wird, wird erwartet, dass weniger als eins zu einer Milliarde
for the AES algorithm, and less than one in a million for TDEA. für den AES-Algorithmus, und weniger als eins zu einer Million für TDEA.
For applications where higher confidence in the security is required, the message span of a key Für Anwendungen, bei denen höhere Vertrauen in die Sicherheit erforderlich ist, wird die Meldung Spannweite von einem Schlüssel
may be measured in terms of the total number of message blocks. in Bezug auf die Gesamtanzahl von Nachrichtenblöcken gemessen werden. The recommendation in this Die Empfehlung in diesem
case is to limit the key to no more than 2 Fall ist, den Schlüssel auf nicht mehr als 2 begrenzen
48 48
message blocks (2 Nachrichtenblöcke (2
22 22
Gbytes) when the block size is GB), wenn die Blockgröße
128 bits, and 2 128 Bits und 2
21 21
message blocks (16 Mbytes) when the block size is 64 bits. Nachrichtenblöcke (16 MByte), wenn die Blockgröße beträgt 64 Bits. Within these limits, Innerhalb dieser Grenzen
the probability that a collision will occur is proved to be less than one in a billion for the AES Die Wahrscheinlichkeit, dass eine Kollision auftreten wird, erwies sich als weniger als eins zu einer Milliarde für die AES sein
algorithm, and less than one in a million for TDEA, assuming that the underlying block cipher Algorithmus, und weniger als eins zu einer Million für TDEA, unter der Annahme, dass die zugrunde liegenden Blockchiffre
has no weakness, as modeled in Ref. hat keine Schwäche, wie in Lit. modelliert. [6]. [6].
In some cases, a limit on the message span of a key may be established and enforced within a In einigen Fällen kann eine Grenze für die Nachrichtendauer einer Taste festgelegt, und innerhalb gesetzt werden
key management infrastructure by an appropriate constraint on the time span during which the Schlüssel-Management-Infrastruktur durch eine entsprechende Einschränkung für die Zeitspanne, in der der
key remains in effect, ie, its cryptoperiod. Schlüssel bleibt in Kraft, dh seine Schlüssellebens.
3 3
The MAC before truncation is denoted C Die MAC vor Abschneiden bezeichnet C
m m
in Sec. in Sec. 6.2. 6.2.
4 4
The standard definition of a collision, in Ref. Die Standard-Definition einer Kollision in Ref. [9], for example, is more general: for a given function, a collision is a [9], zum Beispiel, ist allgemeiner: für eine gegebene Funktion, eine Kollision ein
pair of distinct input values that yield the same output value. Paar verschiedener Eingabewerte, die den gleichen Ausgangswert zu erhalten.

Page 20 Seite 20
14 14
Appendix C: Protection Against Replay of Messages Anhang C: Schutz vor Replay der Meldungen
As described in Appendix A, the successful verification of a MAC for a message gives assurance Wie im Anhang A beschrieben, die erfolgreiche Verifikation eines MAC für eine Nachricht gibt Sicherheit
that the source of the message executed the MAC generation algorithm to create the MAC; dass die Quelle der Nachricht ausgeführt wird die MAC-Erzeugungsalgorithmus, um den MAC zu erzeugen;
however, the party that presented the message and MAC for verification may not be the original jedoch kann die Partei, die die Nachricht und MAC zur Überprüfung vorgelegt das Original nicht sein
source of the message. Quelle der Nachricht. Therefore, the CMAC algorithm does not inherently prevent an attacker Daher wird der CMAC Algorithmus nicht inhärent dass ein Angreifer
from intercepting a legitimate message and its MAC and “replaying” them for verification at a abfangen eine legitime Nachricht und ihre MAC und "Wiedergabe" sie zur Überprüfung an ein
later time, for example, in an attempt to impersonate a party that has access to the key. späteren Zeitpunkt, beispielsweise bei einem Versuch, eine Partei, die Zugriff auf den Schlüssel hat imitieren. In some In einigen
protocols an attacker may even be able to present to a verifier a message-MAC pair that the -Protokolle kann ein Angreifer auch in der Lage, zu einem Gutachter, dass eine Nachricht präsentieren MAC-Paar sein die
verifier itself generated earlier in the protocol. Verifier selbst früher in der Protokoll erzeugt.
The controlling protocol or application may protect against such an event by incorporating Das Controlling-Protokoll oder eine Anwendung kann gegen eine solche Veranstaltung zu schützen, indem
certain identifying information into the initial bits of every message. bestimmte identifizierende Informationen in den ersten Bits jeder Nachricht. Examples of such Beispiele solcher
information include a sequential message number, a timestamp, or a nonce. Informationen sind eine sequenzielle Nachricht Nummer, einen Zeitstempel oder eine Nonce. Upon successful Nach erfolgreicher
verification of the message, this information may provide a means for the detection of replayed Überprüfung der Meldung kann diese Information ein Mittel zum Nachweis von wiedergegebenen bereitzustellen
messages, out-of-sequence messages, or missing messages. Nachrichten, out-of-sequence-Nachrichten oder Nachrichten fehlen.

Page 21 Seite 21
15 15
Appendix D: Examples Anhang D: Beispiele
In this appendix, twenty examples are provided for the MAC generation process. In diesem Anhang werden zwanzig Beispiele für die MAC-Erzeugungsprozess zur Verfügung gestellt. The underlying Die zugrunde liegende
block cipher is either the AES algorithm or TDEA. Blockchiffre ist entweder der AES-Algorithmus oder TDEA. A block cipher key is fixed for each of the Ein Blockverschlüsselungsschlüssel für jede der festen
currently allowed key sizes, ie, AES-128, AES-192, AES-256, two key TDEA, and three key Derzeit erlaubt Schlüsselgrößen, dh, AES-128, AES-192, AES-256, zwei Schlüssel TDEA und drei Schlüssel
TDEA. TDEA. For each key, the generation of the associated subkeys is given, followed by four Für jede Taste wird die Erzeugung der zugehörigen Unterschlüssel gegeben, gefolgt von vier
examples of MAC generation with the key. Beispiele für MAC-Generation mit dem Schlüssel. The messages in each set of examples are derived by Die Nachrichten in jedem Satz von Beispielen von abgeleiteten
truncating a common fixed string of 64 bytes. Abschneiden einer gemeinsamen festen String von 64 Byte.
All strings are represented in hexadecimal notation, with a space (or a new line) inserted every 8 Alle Saiten werden hexadezimal dargestellt, mit einem Raum (oder eine neue Linie) eingefügt alle 8
symbols, for readability. Symbole, für die Lesbarkeit. As before, K1 and K2 denote the subkeys, M denotes the message, and Wie vor, K1 und K2 bezeichnen die Unterschlüssel, M bezeichnet die Nachricht, und
T denotes the MAC. T die MAC. For the AES algorithm examples, Tlen is 128, ie, 32 hexadecimal Für den AES-Algorithmus Beispielen ist Tlen 128, dh 32 hexadezimal
symbols, and K denotes the key. Symbole und K die Taste. For the TDEA examples, Tlen is 64, ie, 16 hexadecimal Für die TDEA Beispielen ist Tlen 64, dh 16 hexadezimal
symbols, and the key, K , is the ordered triple of strings, ( Key1 , Key2 , Key3 ), consistent with Ref. Symbole, und der Schlüssel, K, wird die bestellte Dreifach von Strings, (Tasten 1, 2, Key3), im Einklang mit Ref.
[10]. [10]. For two key TDEA, Key1 = Key3 . Für zwei Schlüssel TDEA, Taste1 = Key3.
D.1 AES-128 D.1 AES-128
For Examples 1–4 below, the block cipher is the AES algorithm with the following 128 bit key: Für die Beispiele 1-4 unten, ist die Blockchiffre der AES-Algorithmus mit der folgenden 128-Bit-Schlüssel:
K K
2b7e1516 28aed2a6 abf71588 09cf4f3c . 2b7e1516 28aed2a6 abf71588 09cf4f3c.
Subkey Generation Unterschlüssel-Generation
CIPH CIPH
K K
(0 (0
128 128
) )
7df76b0c 1ab899b3 3e42f047 b91b546f 7df76b0c 1ab899b3 3e42f047 b91b546f
K1 K1
fbeed618 35713366 7c85e08f 7236a8de fbeed618 35.713.366 7c85e08f 7236a8de
K2 K2
f7ddac30 6ae266cc f90bc11e e46d513b f7ddac30 6ae266cc f90bc11e e46d513b
Example 1: Mlen 0 Beispiel 1: 0 MLEN
M M
<empty string> <Leer string>
T T
bb1d6929 e9593728 7fa37d12 9b756746 bb1d6929 e9593728 7fa37d12 9b756746
Example 2: Mlen = 128 Beispiel 2: MLEN = 128
M M
6bc1bee2 2e409f96 e93d7e11 7393172a 6bc1bee2 2e409f96 e93d7e11 7393172a
T T
070a16b4 6b4d4144 f79bdd9d d04a287c 070a16b4 6b4d4144 f79bdd9d d04a287c
Example 3: Mlen = 320 Beispiel 3: MLEN = 320
M M
6bc1bee2 2e409f96 e93d7e11 7393172a 6bc1bee2 2e409f96 e93d7e11 7393172a
ae2d8a57 1e03ac9c 9eb76fac 45af8e51 ae2d8a57 1e03ac9c 9eb76fac 45af8e51
30c81c46 a35ce411 30c81c46 a35ce411
T T
dfa66747 de9ae630 30ca3261 1600c827 dfa66747 de9ae630 30ca3261 1600c827
Example 4: Mlen = 512 Beispiel 4: MLEN = 512
M M
6bc1bee2 2e409f96 e93d7e11 7393172a 6bc1bee2 2e409f96 e93d7e11 7393172a
ae2d8a57 1e03ac9c 9eb76fac 45af8e51
30c81c46 a35ce411 e5fbc119 1a0a52ef

Page 22 Seite 22
16 16
f69f2445 df4f9b17 ad2b417b e66c3710
T T
51f0bebf 7e3b9d92 fc497417 79363cfe
D.2 AES-192
For Examples 5–8 below, the block cipher is the AES algorithm with the following 192 bit key:
K K
8e73b0f7 da0e6452 c810f32b 809079e5
62f8ead2 522c6b7b .
Subkey Generation
CIPH
K K
(0 (0
128 128
) )
22452d8e 49a8a593 9f7321ce ea6d514b
K1 K1
448a5b1c 93514b27 3ee6439d d4daa296
K2 K2
8914b639 26a2964e 7dcc873b a9b5452c
Example 5: Mlen = 0
M M
<empty string>
T T
d17ddf46 adaacde5 31cac483 de7a9367
Example 6: Mlen = 128
M M
6bc1bee2 2e409f96 e93d7e11 7393172a
T T
9e99a7bf 31e71090 0662f65e 617c5184
Example 7: Mlen = 320
M M
6bc1bee2 2e409f96 e93d7e11 7393172a
ae2d8a57 1e03ac9c 9eb76fac 45af8e51
30c81c46 a35ce411
T T
8a1de5be 2eb31aad 089a82e6 ee908b0e
Example 8: Mlen = 512
M M
6bc1bee2 2e409f96 e93d7e11 7393172a
ae2d8a57 1e03ac9c 9eb76fac 45af8e51
30c81c46 a35ce411 e5fbc119 1a0a52ef
f69f2445 df4f9b17 ad2b417b e66c3710
T T
a1d5df0e ed790f79 4d775896 59f39a11
D.3 AES-256
For Examples 9–12 below, the block cipher is the AES algorithm with the following 256 bit key:
K K
603deb10 15ca71be 2b73aef0 857d7781
1f352c07 3b6108d7 2d9810a3 0914dff4 .
Subkey Generation
CIPH
K K
(0 (0
128 128
) )
e568f681 94cf76d6 174d4cc0 4310a854
K1 K1
cad1ed03 299eedac 2e9a9980 8621502f
K2 K2
95a3da06 533ddb58 5d353301 0c42a0d9

Page 23 Seite 23
17 17
Example 9: Mlen = 0
M M
<empty string>
T T
028962f6 1b7bf89e fc6b551f 4667d983
Example 10: Mlen = 128
M M
6bc1bee2 2e409f96 e93d7e11 7393172a
T T
28a7023f 452e8f82 bd4bf28d 8c37c35c
Example 11: Mlen = 320
M M
6bc1bee2 2e409f96 e93d7e11 7393172a
ae2d8a57 1e03ac9c 9eb76fac 45af8e51
30c81c46 a35ce411
T T
aaf3d8f1 de5640c2 32f5b169 b9c911e6
Example 12: Mlen = 512
M M
6bc1bee2 2e409f96 e93d7e11 7393172a
ae2d8a57 1e03ac9c 9eb76fac 45af8e51
30c81c46 a35ce411 e5fbc119 1a0a52ef
f69f2445 df4f9b17 ad2b417b e66c3710
T T
e1992190 549f6ed5 696a2c05 6c315410
D.4 Three Key TDEA
For Examples 13-16 below, the block cipher is three key TDEA with the following key:
Key1
8aa83bf8 cbda1062
Key2
0bc1bf19 fbb6cd58
Key3
bc313d4a 371ca8b5
Subkey Generation
CIPH
K K
(0 (0
64 64
) )
c8cc74e9 8a7329a2
K1 K1
9198e9d3 14e6535f
K2 K2
2331d3a6 29cca6a5
Example 13: Mlen = 0
M M
<empty string>
T T
b7a688e1 22ffaf95
Example 14: Mlen = 64
M M
6bc1bee2 2e409f96
T T
b7a688e1 22ffaf95
Example 15: Mlen = 160
M M
6bc1bee2 2e409f96 e93d7e11 7393172a

Page 24 Seite 24
18 18
ae2d8a57
T T
d32bcebe 43d23d80
Example 16: Mlen = 256
M M
6bc1bee2 2e409f96 e93d7e11 7393172a
ae2d8a57 1e03ac9c 9eb76fac 45af8e51
T T
33e6b109 2400eae5
D.5 Two Key TDEA
For Examples 17-20 below, the block cipher is two key TDEA with the following key:
Key1
4cf15134 a2850dd5
Key2
8a3d10ba 80570d38
Key3
4cf15134 a2850dd5
Subkey Generation
CIPH
K K
(0 (0
64 64
) )
c7679b9f 6b8d7d7a
K1 K1
8ecf373e d71afaef
K2 K2
1d9e6e7d ae35f5c5
Example 17: Mlen = 0
M M
<empty string>
T T
bd2ebf9a 3ba00361
Example 18: Mlen = 64
M M
6bc1bee2 2e409f96
T T
bd2ebf9a 3ba00361
Example 19: Mlen = 160
M M
6bc1bee2 2e409f96 e93d7e11 7393172a
ae2d8a57
T T
8ea92435 b52660e0
Example 20: Mlen = 256
M M
6bc1bee2 2e409f96 e93d7e11 7393172a
ae2d8a57 1e03ac9c 9eb76fac 45af8e51
T T
31b1e431 dabc4eb8

Page 25 Seite 25
19 19
Appendix E: Bibliography
[1] [1]
J. Black, P. Rogaway, A Suggestion for Handling Arbitrary-Length Messages with the
CBC MAC, Natl. Inst. Inst. Stand. Stehen. Technol. Technol. [Web page] , http://csrc.nist.gov/CryptoToolkit/
modes/workshop1/.
[2] [2]
J. Black, P. Rogaway, CBC MACs for arbitrary-length messages: The three-key
constructions, in Advances in Cryptology—Crypto 2000, Lecture Notes in Computer
Science, Vol. 1880, Mihir Bellare, ed., Springer-Verlag (2000), pp. 197–215.
[3] [3]
FIPS Publication 197, The Advanced Encryption Standard (AES), US DoC/NIST,
November 26, 2001.
[4]
FIPS Publication 198, The Keyed-Hash Message Authentication Code, US DoC/NIST,
March 6, 2002.
[5] [5]
T. Iwata, K. Kurosawa, OMAC: One-Key CBC MAC, Natl. Inst. Inst. Stand. Stehen. Technol. Technol. [Web
page] , http://csrc.nist.gov/CryptoToolkit/modes/proposedmodes/.
[6] [6]
T. Iwata, K. Kurosawa, OMAC: One-Key CBC MAC, in Fast Software Encryption, 10
th th
International Workshop, FSE 2003, Lecture Notes in Computer Science, Vol. 2887,
Thomas Johansson, ed., Springer-Verlag (2003), pp 129–153.
[7] [7]
T. Iwata, K. Kurosawa, OMAC: One-Key CBC MAC—Addendum, Natl. Inst. Inst. Stand. Stehen.
Technol. Technol. [Web page] , http://csrc.nist.gov/CryptoToolkit/modes/proposedmodes/.
[8] [8]
T. Iwata, K. Kurosawa, Stronger Security Bounds for OMAC, TMAC, and XCBC, Natl.
Inst. Inst. Stand. Stehen. Technol. Technol. [Web page] , http://csrc.nist.gov/CryptoToolkit/modes/comments/.
[9] [9]
A. Menezes, P. van Oorschot, S. Vanstone, Handbook of Applied Cryptography, CRC
Press, Inc., Boca Raton (1996).
[10] NIST Special Publication 800-67 Version 1, Recommendation for the Triple Data
Encryption Algorithm (TDEA) Block Cipher, May 2004, Natl. Inst. Inst. Stand. Stehen. Technol. Technol.
[Web page] , http://csrc.nist.gov/publications/nistpubs/800-67/SP800-67.pdf.