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 von 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 dem kompatibel sind AWS Encryption SDK, müssen Sie verstehen, wie die unterstützten Algorithmus-Suites zur Verschlüsselung von Rohdaten AWS Encryption SDK implementiert.

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

AWS Encryption SDK Algorithmus-Suiten
Algorithmus-ID Version im Nachrichtenformat Verschlüsselungsalgorithmus Länge des Datenschlüssels (Bits) Schlüsselableitungsalgorithmus Signatur-Algorithmus Algorithmus für Schlüsselzusagen Datenlänge der Algorithm Suite (Byte)
05 78 0x02 AES-GCM 256 HKDF mit SHA-512 ECDSA mit P-384 und SHA-384 HKDF mit SHA-512 32 (wichtigste Verpflichtung)
04 78 0x02 AES-GCM 256 HKDF mit SHA-512 Keine HKDF mit SHA-512 32 (wichtigste Verpflichtung)
03 78 0x01 AES-GCM 256 HKDF mit SHA-384 ECDSA mit P-384 und SHA-384 Keine N/A
03 46 0x01 AES-GCM 192 HKDF mit SHA-384 ECDSA mit P-384 und SHA-384 Keine N/A
02 14 0x01 AES-GCM 128 HKDF mit SHA-256 ECDSA mit P-256 und 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 im Nachrichtenformat

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

Datenlänge der Algorithmus-Suite

Die Länge der für die Algorithmus-Suite spezifischen Daten in Byte. Dieses Feld wird nur im Nachrichtenformat Version 2 (0x02) unterstützt. Im Nachrichtenformat Version 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-Commitment-Zeichenfolge. Weitere Informationen finden Sie in dieser Liste unter Key Commitment-Algorithmus.

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 Hauptschlüssel generiert.

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

Verschlüsselungsalgorithmus

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

Algorithmus für Schlüsselzusagen

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

Eine technische Erläuterung des Hinzufügens von Key Commitment zu einer Algorithmus-Suite finden Sie unter Key Committing AEADs in Cryptology ePrint Archive.

Schlüsselableitungsalgorithmus

Die HMAC-basierte extract-and-expand Schlüsselableitungsfunktion (HKDF), die zur Ableitung des Datenverschlüsselungsschlüssels verwendet wird. Die AWS Encryption SDK verwendet das in RFC 5869 definierte HKDF.

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

  • Die verwendete Hash-Funktion ist je nach Algorithmus-Suite entweder SHA-384 oder SHA-256.

  • Für den Extraktionsschritt:

    • Es wird kein Salt verwendet. Gemäß dem RFC ist das Salz auf eine Folge 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 SHA-256 beträgt.

    • Das Eingabematerial ist der Datenschlüssel aus dem Schlüsselbund oder dem Hauptschlüsselanbieter.

  • 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 Ausgabe-Keying-Materials entspricht der Länge des Datenschlüssels. Diese Ausgabe wird als Datenverschlüsselungsschlüssel im Verschlüsselungsalgorithmus verwendet.

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

  • Die verwendete Hash-Funktion ist SHA-512.

  • Für den Extraktionsschritt:

    • Der Salt ist ein kryptografischer 256-Bit-Zufallswert. Im Nachrichtenformat Version 2 (0x02) wird dieser Wert im Feld gespeichert. MessageID

    • Bei der ersten Eingabe handelt es sich um den Datenschlüssel aus dem Schlüsselbund oder dem Hauptschlüsselanbieter.

  • Für den Expansionsschritt:

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

    • Die Schlüsselbezeichnung besteht aus den UTF-8-kodierten 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 Ausgabe-Keying-Materials entspricht der Länge des Datenschlüssels. Diese Ausgabe wird als Datenverschlüsselungsschlüssel im Verschlüsselungsalgorithmus verwendet.

Version im Nachrichtenformat

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

Signatur-Algorithmus

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

  • Die verwendete elliptische Kurve die P-384- oder P-256-Kurve, wie durch die 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).