View a markdown version of this page

AWS Encryption SDK Referenz zu Algorithmen - AWS Encryption SDK

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

AWS Encryption SDK Referenz zu Algorithmen

Die Informationen auf dieser Seite stellen eine Referenz für die Erstellung Ihrer eigenen, mit AWS Encryption SDK kompatiblen Verschlüsselungsbibliothek dar. Falls Sie keine eigene kompatible Verschlüsselungsbibliothek erstellen, benötigen Sie diese Informationen wahrscheinlich nicht.

Informationen zur Verwendung AWS Encryption SDK in einer der unterstützten Programmiersprachen finden Sie unterProgrammiersprachen.

Die Spezifikation, die die Elemente einer ordnungsgemäßen AWS Encryption SDK Implementierung definiert, finden Sie in der AWS Encryption SDK Spezifikation unter GitHub.

Wenn Sie Ihre eigene Bibliothek erstellen, die Chiffretexte lesen und schreiben kann, die mit der kompatibel sind, müssen Sie verstehen AWS Encryption SDK, wie die die unterstützten Algorithmus-Suites zum Verschlüsseln von Rohdaten AWS Encryption SDK implementiert.

Das AWS Encryption SDK unterstützt die folgenden Algorithmus-Suiten. Alle AES-GCM Algorithmus-Suites verfügen über einen 12-Byte-Initialisierungsvektor und ein AES-GCM 16-Byte-Authentifizierungs-Tag. Die Standard-Algorithmus-Suite variiert je nach AWS Encryption SDK Version und der ausgewählten Key-Commitment-Policy. Einzelheiten finden Sie unter Commitment-Richtlinie und Algorithmus-Suite.

AWS Encryption SDK Algorithmus-Suiten
Algorithmus-ID Version des Nachrichtenformats Verschlüsselungsalgorithmus Länge des Datenschlüssels (Bit) Schlüsselableitungsalgorithmus Signatur-Algorithmus Algorithmus für wichtige Verpflichtungen Datenlänge der Algorithmus-Suite (Byte)
05 78 0x02 AES-GCM 256 HKDF mit SHA-512 ECDSA mit und P-384 SHA-384 HKDF mit SHA-512 32 (wichtige Verpflichtung)
04 78 0x02 AES-GCM 256 HKDF mit SHA-512 Keine HKDF mit SHA-512 32 (wichtige Verpflichtung)
03 78 0x01 AES-GCM 256 HKDF mit SHA-384 ECDSA mit und P-384 SHA-384 Keine N/A
03 46 0x01 AES-GCM 192 HKDF mit SHA-384 ECDSA mit und P-384 SHA-384 Keine N/A
02 14 0x01 AES-GCM 128 HKDF mit SHA-256 ECDSA mit und P-256 SHA-256 Keine N/A
01 78 0x01 AES-GCM 256 HKDF mit SHA-256 Keine Keine N/A
01 46 0x01 AES-GCM 192 HKDF mit SHA-256 Keine Keine N/A
01 14 0x01 AES-GCM 128 HKDF mit SHA-256 Keine Keine N/A
00 78 0x01 AES-GCM 256 Keine Keine Keine N/A
00 46 0x01 AES-GCM 192 Keine Keine Keine N/A
00 14 0x01 AES-GCM 128 Keine Keine Keine N/A
Algorithmus-ID

Ein 2-Byte-Hexadezimalwert, der eine Algorithmusimplementierung eindeutig identifiziert. Dieser Wert wird im Nachrichtenkopf des Chiffretextes gespeichert.

Version des Nachrichtenformats

Die Version des Nachrichtenformats. Algorithmus-Suites mit Schlüsselverpflichtung verwenden das Nachrichtenformat Version 2 (0x02). Algorithmus-Suites ohne Schlüsselbindung verwenden das Nachrichtenformat Version 1 (0x01).

Datenlänge der Algorithmus-Suite

Die für die Algorithmus-Suite spezifische Länge der Daten in Byte. Dieses Feld wird nur im Nachrichtenformat Version 2 (0x02) unterstützt. In der Nachrichtenformatversion 2 (0x02) werden diese Daten im Algorithm suite data Feld des Nachrichtenkopfs angezeigt. Algorithmus-Suites, die Key Commitment unterstützen, verwenden 32 Byte für die Key-Commit-Zeichenfolge. Weitere Informationen finden Sie unter Key Commitment-Algorithmus in dieser Liste.

Länge des Datenschlüssels

Die Länge des Datenschlüssels in Bits. Der AWS Encryption SDK unterstützt 256-Bit-, 192-Bit- und 128-Bit-Schlüssel. Der Datenschlüssel wird durch einen Schlüsselbund oder einen Hauptschlüssel generiert.

In einigen Implementierungen wird dieser Datenschlüssel als Eingabe für eine Schlüsselableitungsfunktion (HKDF) zum HMAC-based Extrahieren und Erweitern verwendet. Die Ausgabe des HKDF wird als Datenverschlüsselungsschlüssel im Verschlüsselungsalgorithmus verwendet. Weitere Informationen finden Sie unter Algorithmus zur Schlüsselableitung in dieser Liste.

Verschlüsselungsalgorithmus

Der Name und der Modus des verwendeten Verschlüsselungsalgorithmus. Die Algorithmus-Suites AWS Encryption SDK verwenden den Verschlüsselungsalgorithmus Advanced Encryption Standard (AES) mit Galois/Counter Modus (GCM).

Algorithmus zur Einhaltung der wichtigsten Verpflichtungen

Der Algorithmus, der zur Berechnung der Schlüssel-Commitment-Zeichenfolge verwendet wird. Die Ausgabe wird im Algorithm suite data Feld des Nachrichtenkopfs gespeichert und zur Validierung des Datenschlüssels für die Schlüsselzusage verwendet.

Eine technische Erklärung zum Hinzufügen von Key Commitment zu einer Algorithmus-Suite finden Sie unter Key Committing AEAds im Cryptology ePrint Archive.

Schlüsselableitungsalgorithmus

Die Funktion zum HMAC-based Extrahieren und Erweitern der Schlüsselableitung (HKDF), die zur Ableitung des Datenverschlüsselungsschlüssels verwendet wird. Die AWS Encryption SDK verwendet das in RFC 5869 definierte HKDF. https://tools.ietf.org/html/rfc5869

Algorithmus-Suiten ohne Schlüsselbindung (Algorithmus-ID —) 01xx 03xx

  • Die verwendete Hash-Funktion ist entweder SHA-384 oder SHA-256, abhängig von der Algorithmus-Suite.

  • Für den Extraktionsschritt:

    • Es wird kein Salt verwendet. Gemäß dem RFC wird das Salz auf eine Reihe von Nullen gesetzt. Die Länge der Zeichenfolge entspricht der Länge der Ausgabe der Hash-Funktion, die 48 Byte für SHA-384 und 32 Byte für beträgt. SHA-256

    • Das Eingabetastmaterial ist der Datenschlüssel des Schlüsselbundes- oder Hauptschlüsselanbieters.

  • Für den Expansionsschritt:

    • Der pseudozufällige Eingabeschlüssel ist die Ausgabe aus dem Extraktionsschritt.

    • Die Eingabeinformationen sind eine Verkettung der Algorithmus-ID und der Nachrichten-ID (in dieser Reihenfolge).

    • Die Länge des Ausgangsschlüsselmaterials entspricht der Länge des Datenschlüssels. Diese Ausgabe wird als Datenverschlüsselungsschlüssel im Verschlüsselungsalgorithmus verwendet.

Algorithmus-Suites mit Schlüsselbindung (Algorithmus-ID 04xx und05xx)

  • Die verwendete Hash-Funktion ist SHA-512.

  • Für den Extraktionsschritt:

    • Das Salz ist ein kryptografischer 256-Bit-Zufallswert. In Version 2 des Nachrichtenformats (0x02) wird dieser Wert im Feld gespeichert. MessageID

    • Das ursprüngliche Schlüsselmaterial ist der Datenschlüssel des Schlüsselbundes oder des Hauptschlüsselanbieters.

  • Für den Expansionsschritt:

    • Der pseudozufällige Eingabeschlüssel ist die Ausgabe aus dem Extraktionsschritt.

    • Die Schlüsselbezeichnung besteht aus den UTF-8-encoded Bytes der DERIVEKEY Zeichenfolge in Big-Endian-Byte-Reihenfolge.

    • Die Eingabeinformationen sind eine Verkettung der Algorithmus-ID und der Schlüsselbezeichnung (in dieser Reihenfolge).

    • Die Länge des Ausgangsschlüsselmaterials entspricht der Länge des Datenschlüssels. Diese Ausgabe wird als Datenverschlüsselungsschlüssel im Verschlüsselungsalgorithmus verwendet.

Version des Nachrichtenformats

Die Version des Nachrichtenformats, das mit der Algorithmus-Suite verwendet wird. Details hierzu finden Sie unter Nachrichtenformat – Referenz.

Signatur-Algorithmus

Der Signaturalgorithmus, der verwendet wird, um eine digitale Signatur über den Chiffretext-Header und den Hauptteil zu generieren. Der AWS Encryption SDK verwendet den Elliptic Curve Digital Signature Algorithm (ECDSA) mit den folgenden Besonderheiten:

  • Die verwendete elliptische Kurve ist entweder die P-256 ODER-Kurve, wie durch die P-384 Algorithmus-ID angegeben. Diese Kurven sind in Digital Signature Standard (DSS) (FIPS PUB 186-4) definiert.

  • Die verwendete Hash-Funktion ist SHA-384 (mit der P-384 Kurve) oder SHA-256 (mit der P-256 Kurve).