ISO/IEC 9797-1

ISO/IEC 9797-1 Informationstechnologie - Sicherheitstechniken - Nachrichtenauthentifizierungscodes (MACs) - Teil 1: Mechanismen mit einer Blockausfall[1] ist ein internationaler Standard Das definiert Methoden zur Berechnung a Nachrichtenauthentifizierungscode (MAC) Über Daten.

Anstatt einen spezifischen Algorithmus zu definieren, definiert der Standard ein allgemeines Modell, aus dem eine Vielzahl spezifischer Algorithmen konstruiert werden kann. Das Modell basiert auf a Cipher Block mit einem Geheimnis Symmetrischer Schlüssel.

Da der Standard eher ein Modell als einen bestimmten Algorithmus beschreibt, müssen Benutzer des Standards müssen Geben Sie alle bestimmten Optionen und Parameter an, die verwendet werden sollen, um eine eindeutige MAC -Berechnung zu gewährleisten.

Modell

Das Modell für die Mac -Generation umfasst sechs Schritte:

  1. Polsterung der Daten zu einem Vielfachen der Verschlüsselungsblockgröße
  2. Aufteilung der Daten in Blöcke
  3. Anfangsumwandlung des ersten Datenblocks
  4. Wiederholung durch die verbleibenden Datenblöcke
  5. Ausgangsumwandlung des Ergebnisses der letzten Iteration
  6. Kürzung des Ergebniss auf die erforderliche Länge

Für die meisten Schritte bietet der Standard mehrere Optionen für die Auswahl und/oder eine gewisse Konfigurierbarkeit.

Polsterung

Die Eingabedaten müssen auf ein Vielfaches der Verschlüsselungsblockgröße gepolstert werden, sodass jeder nachfolgende kryptografische Betrieb einen vollständigen Datenblock aufweist. Es werden drei Polstermethoden definiert. In jedem Fall n ist die Blocklänge (in Bits):

Polstermethode 1

Fügen Sie gegebenenfalls Bits mit Wert 0 zum Ende der Daten hinzu, bis die gepolsterten Daten ein Vielfaches von sind n. (Wenn die ursprünglichen Daten bereits ein Vielfaches von waren n, es werden keine Bits hinzugefügt.)

Polstermethode 2

Fügen Sie zum Ende der Daten ein einzelnes Bit mit Wert 1 hinzu. Fügen Sie bei Bedarf Bits mit Wert 0 zum Ende der Daten hinzu, bis die gepolsterten Daten ein Vielfaches von sind n.

Polstermethode 3

Die gepolsterten Daten umfassen (in dieser Reihenfolge):

  • Die Länge der nicht exprimierten Daten (in Bits) ausgedrückt in Big-Endian binär in n Bits (d. H. Ein Chiffre -Block)
  • Die nicht fehlgeschlagenen Daten
  • So viele (möglicherweise keine) Bits mit Wert 0, wie es erforderlich ist, um die Gesamtlänge auf ein Vielfaches von zu bringen n Bits

Es ist nicht erforderlich, die Polsterbits zu übertragen oder zu speichern, da der Empfänger sie regenerieren kann, wobei die Länge der nicht fehlgeschlagenen Daten und die verwendete Polstermethode kennt.

Aufteilung

Die gepolsterten Daten D ist in geteilt in q Blöcke D1, D2, ... Dq, jeder der Länge n, geeignet für die Blockchiffre.

Anfangsumwandlung

Ein kryptografischer Betrieb wird am ersten Block durchgeführt (D1), um einen Zwischenblock zu erstellen H1. Es werden zwei anfängliche Transformationen definiert:

Anfangsumwandlung 1

D1 ist mit dem Schlüssel verschlüsselt K:

H1 = eK(D1)

Erste Transformation 2

D1 ist mit dem Schlüssel verschlüsselt Kund dann um einen zweiten Schlüssel K'':

H1 = eK''(eK(D1))

Wiederholung

Blöcke H2 ... Hq werden durch Verschlüsselung mit dem Schlüssel berechnet K, das Bitgewise Exklusiv oder des entsprechenden Datenblocks und des vorherigen H Block.

zum i = 2 bis q
Hi = eK(DiHi-1)

Wenn es nur einen Datenblock gibt (q= 1), dieser Schritt wird weggelassen.

Ausgangsumwandlung

Ein kryptografischer Betrieb wird (optional) im letzten Iterationsausgangsblock durchgeführt Hq Um den Block zu produzieren G. Drei Ausgangstransformationen werden definiert:

Ausgangstransformation 1

Hq wird unverändert verwendet:

G = Hq

Ausgangstransformation 2

Hq ist mit dem Schlüssel verschlüsselt K':

G = eK(Hq)

Ausgangstransformation 3

Hq wird mit dem Schlüssel entschlüsselt K'Und das Ergebnis verschlüsselt mit dem Schlüssel K:

G = eK(dK(Hq))

Kürzung

Der Mac wird erhalten, indem der Block abgeschnitten wird G (Halten Sie die linken Bits, die die erforderlichen Bits ablegen), auf die erforderliche Länge.

Spezifische Algorithmen

Das allgemeine Modell ermöglicht nominell eine beliebige Kombination von Optionen für jede Polsterung, die anfängliche Transformation, die Ausgangsumwandlung und die Kürzungsschritte. Der Standard definiert jedoch vier bestimmte Kombinationen der Anfangs- und Ausgangstransformation und (gegebenenfalls entsprechende) Schlüsselableitung sowie zwei weitere Kombinationen, die auf doppelten parallelen Berechnungen basieren. Die Kombinationen werden durch den Standard als "Mac -Algorithmus 1" über "MAC -Algorithmus 6" bezeichnet.

MAC -Algorithmus 1

Dieser Algorithmus verwendet die erste Transformation 1 und die Ausgangsumwandlung 1.

Es ist nur ein Schlüssel erforderlich, K.

(Wenn die Blockausfall ist DesDies entspricht dem in angegebenen Algorithmus in FIPS PUB 113 Computerdatenauthentifizierung.[2]))

Algorithmus 1 ist allgemein bekannt als CBC-Mac.[3]

MAC -Algorithmus 2

Dieser Algorithmus verwendet die anfängliche Transformation 1 und die Ausgangstransformation 2.

Es sind zwei Schlüssel erforderlich, K und K', aber K'Kann abgeleitet werden von K.

MAC -Algorithmus 3

Dieser Algorithmus verwendet die erste Transformation 1 und die Ausgangsumwandlung 3.

Es sind zwei unabhängige Schlüssel erforderlich, K und K'.

Algorithmus 3 ist auch als Einzelhandel MAC bekannt.[4]

MAC -Algorithmus 4

Dieser Algorithmus verwendet die erste Transformation 2 und die Ausgangstransformation 2.

Es sind zwei unabhängige Schlüssel erforderlich, K und K', Mit einem dritten Schlüssel K'' abgeleitet von K'.

MAC -Algorithmus 5

Der Mac -Algorithmus 5 umfasst zwei parallele Instanzen des Mac -Algorithmus 1. Die erste Instanz arbeitet mit den ursprünglichen Eingabedaten. Die zweite Instanz arbeitet auf zwei Schlüsselvarianten, die aus der ursprünglichen Taste über die Multiplikation in a generiert werden Galois Feld. Der endgültige Mac wird von der Bitgewise berechnet Exklusiv oder der Macs, die durch jede Instanz von Algorithmus 1 erzeugt werden.[5]

Algorithmus 5 ist auch als bekannt als CMAC.[6]

MAC -Algorithmus 6

Dieser Algorithmus umfasst zwei parallele Instanzen des Mac-Algorithmus 4. Der endgültige Mac ist das bitweise exklusive oder der Macs, die durch jede Instanz des Algorithmus 4 generiert werden.[7]

Jede Instanz von Algorithmus 4 verwendet ein anderes Schlüsselpaar (K und K') Aber diese vier Schlüssel stammen aus zwei unabhängigen Basischlüssel.

Schlüsselableitung

MAC -Algorithmen 2 (optional), 4, 5 und 6 erfordern einen oder mehrere Schlüssel von einem anderen Schlüssel. Der Standard schreibt keine bestimmte Methode zur Schlüsselableitung vor, obwohl er allgemein vorschreibt, dass abgeleitete Schlüssel voneinander unterscheidet.

Der Standard enthält einige Beispiele für wichtige Ableitungsmethoden, z. K Beginnend mit den ersten vier Bit Byte des Schlüssels mit F0 (verhexen).

Vollständige Spezifikation der Mac -Berechnung

Um die Mac-Berechnung vollständig und eindeutig zu definieren, muss ein Benutzer von ISO/IEC 9797-1 auswählen und angeben:

  • Der Block -Verkleidungsalgorithmus e
  • Die Polstermethode (1 bis 3)
  • Der spezifische MAC -Algorithmus (1 bis 6)
  • Die Länge des Mac
  • Die wichtigsten Ableitungsmethode (n) für Mac -Algorithmen 2, 4, 5 oder 6 für Mac -Algorithmen

Sicherheitsanalyse der Algorithmen

Anhang B des Standards ist eine Sicherheitsanalyse der MAC -Algorithmen. Es beschreibt verschiedene kryptografische Angriffe auf die Algorithmen - einschließlich Schlüsselrecovery-Angriff, Brute Force Key -Wiederherstellung, und Geburtstagsangriff - und analysiert den Widerstand jedes Algorithmus gegen diese Angriffe.

Verweise

  1. ^ ISO/IEC 9797-1: 2011 Informationstechnologie-Sicherheitstechniken-Nachrichtenauthentifizierungscodes (MACs)-Teil 1: Mechanismen mit einer Blockausfall
  2. ^ "FIPS PUB 113 - Computerdatenauthentifizierung". Nationales Institut für Standards und Technologie. Archiviert von das Original Am 2011-09-27. Abgerufen 2011-10-01.
  3. ^ ISO/IEC 9797-1: 2011 Informationstechnologie - Sicherheitstechniken - Nachrichtenauthentifizierungscodes (MACs) - Teil 1: Mechanismen mit einer Blockausfall, Einführung
  4. ^ ISO/IEC 9797-1 Informationstechnologie-Sicherheitstechniken-Nachrichtenauthentifizierungscodes (MACs)-Teil 1: Mechanismen mit einer Blockausfall. Internationale Standardisierungsorganisation. 2011. p. 11.
  5. ^ ISO/IEC 9797-1 Informationstechnologie-Sicherheitstechniken-Nachrichtenauthentifizierungscodes (MACs)-Teil 1: Mechanismen mit einer Blockausfall. Internationale Standardisierungsorganisation. 2011. p. 12.
  6. ^ ISO/IEC 9797-1 Informationstechnologie-Sicherheitstechniken-Nachrichtenauthentifizierungscodes (MACs)-Teil 1: Mechanismen mit einer Blockausfall. Internationale Standardisierungsorganisation. 2011. p. 13.
  7. ^ ISO/IEC 9797-1: 1999 Informationstechnologie - Sicherheitstechniken - Nachrichtenauthentifizierungscodes (MACs) - Teil 1: Mechanismen mit einer Blockausfällen -ersetzt von ISO/IEC 9797-1: 2011, was (nach dem Angaben Letzteres Vorwort) hat einen anderen Algorithmus 6.