AWS Encryption SDK Referenz für 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 für 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 haben einen 12-Byte-Initialisierungsvektor und ein AES GCM 16-Byte-Authentifizierungs-Tag. Die Standard-Algorithmus-Suite variiert je nach AWS Encryption SDK Version und ausgewählter Key Commitment Policy. 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 HKDFmit SHA -512 ECDSAmit P-384 und -384 SHA HKDFmit -512 SHA 32 (zentrale Verpflichtung)
04 78 0x02 AES-GCM 256 HKDFmit SHA -512 None HKDFmit SHA -512 32 (zentrale Verpflichtung)
03 78 0x01 AES-GCM 256 HKDFmit SHA -384 ECDSAmit P-384 und -384 SHA None N/A
03 46 0x01 AES-GCM 192 HKDFmit -384 SHA ECDSAmit P-384 und -384 SHA None N/A
02 14 0x01 AES-GCM 128 HKDFmit -256 SHA ECDSAmit P-256 und -256 SHA None N/A
01 78 0x01 AES-GCM 256 HKDFmit -256 SHA Keine None N/A
01 46 0x01 AES-GCM 192 HKDFmit SHA -256 Keine None N/A
01 14 0x01 AES-GCM 128 HKDFmit SHA -256 Keine None N/A
00 78 0x01 AES-GCM 256 Keine Keine None N/A
00 46 0x01 AES-GCM 192 Keine Keine None N/A
00 14 0x01 AES-GCM 128 Keine Keine None 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 () verwendet. HKDF Die Ausgabe von 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-Modus (). 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 Archive ePrint .

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 die in HKDF RFC 5869 definierte.

Algorithmus-Suiten ohne Schlüsselbindung (Algorithmus-ID 01xx03xx)

  • 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 ist RFC 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 Algorithmus für digitale Signaturen mit elliptischen Kurven (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 im Digital Signature Standard (DSS) (FIPSPUB186-4) definiert.

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