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 zum Nachrichtenformat
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 |
Die Verschlüsselungsoperationen AWS Encryption SDK geben eine einzelne Datenstruktur oder eine verschlüsselte Nachricht zurück, die die verschlüsselten Daten (Chiffretext) und alle verschlüsselten Datenschlüssel enthält. Um diese Datenstruktur zu verstehen, oder zum Erstellen von Bibliotheken, die sie lesen und schreiben können, müssen Sie das Nachrichtenformat verstehen.
Das Nachrichtenformat besteht aus mindestens zwei Teilen: einem Header und einem Text. In einigen Fällen enthält das Nachrichtenformat einen dritten Teil, einen Footer. Das Nachrichtenformat definiert eine sortierte Reihenfolge von Bytes in Netzwerk-Bytereihenfolge, auch als Big-Endian-Format bezeichnet. Das Nachrichtenformat beginnt mit dem Header, gefolgt vom Text, gefolgt vom Footer (falls vorhanden).
Die Algorithmus-Suiten, die von der unterstützt werden, AWS Encryption SDK verwenden eine von zwei Versionen im Nachrichtenformat. Algorithmus-Suiten ohne Schlüsselbindung verwenden das Nachrichtenformat Version 1. Algorithmus-Suiten mit Schlüsselbindung verwenden das Nachrichtenformat Version 2.
Header-Struktur
Der Nachrichten-Header enthält den verschlüsselten Datenschlüssel sowie Informationen darüber, wie der Nachrichtentext gebildet wird. In der folgenden Tabelle werden die Felder beschrieben, die den Header in den Nachrichtenformat-Versionen 1 und 2 bilden. Die Byte werden in der angegebenen Reihenfolge angehängt.
Der Wert Nicht vorhanden gibt an, dass das Feld in dieser Version des Nachrichtenformats nicht vorhanden ist. Fettgedruckter Text weist auf Werte hin, die in jeder Version unterschiedlich sind.
Anmerkung
Möglicherweise müssen Sie horizontal oder vertikal scrollen, um alle Daten in dieser Tabelle anzuzeigen.
Header-Struktur | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Feld | Nachrichtenformat, Version 1 Länge (Bytes) |
Nachrichtenformat Version 2 Länge (Bytes) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Version | 1 | 1 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Typ | 1 | Nicht vorhanden | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Algorithmus-ID | 2 | 2 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Nachrichten-ID | 16 | 32 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
AADLänge | 2 Wenn der Verschlüsselungskontext leer ist, ist der Wert des AAD 2-Byte-Längenfeldes 0. |
2 Wenn der Verschlüsselungskontext leer ist, ist der Wert des AAD 2-Byte-Längenfeldes 0. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
AAD | Variable. Die Länge dieses Felds wird in den vorherigen 2 Byte angezeigt (Feld AAD Länge). Wenn der Verschlüsselungskontext leer ist, gibt es kein AAD Feld in der Kopfzeile. |
Variable. Die Länge dieses Felds wird in den vorherigen 2 Byte angezeigt (Feld AAD Länge). Wenn der Verschlüsselungskontext leer ist, gibt es kein AAD Feld in der Kopfzeile. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Verschlüsselter Datenschlüssel-Zähler | 2 | 2 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Verschlüsselte(r) Datenschlüssel | Variable. Abhängig von der Anzahl der verschlüsselten Datenschlüssel und ihrer jeweiligen Länge. | Variable. Abhängig von der Anzahl der verschlüsselten Datenschlüssel und ihrer jeweiligen Länge. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhaltstyp | 1 | 1 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Reserved Instances | 4 | Nicht vorhanden | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IV-Länge | 1 | Nicht anwesend | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Frame-Länge | 4 | 4 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Daten der Algorithm Suite | Nicht anwesend | Variabel. Wird durch den Algorithmus bestimmt, der die Nachricht generiert hat. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Header-Authentifizierung | Variable. Wird durch den Algorithmus bestimmt, der die Nachricht generiert hat. | Variable. Wird durch den Algorithmus bestimmt, der die Nachricht generiert hat. |
- Version
-
Die Version dieses Nachrichtenformats. Die Version ist entweder 1 oder 2 als Byte
01
oder02
in hexadezimaler Schreibweise codiert - Typ
-
Der Typ dieses Nachrichtenformats. Der Typ gibt die Art der Struktur an. Der einzige unterstützte Typ wird als vom Kunden authentifizierte verschlüsselte Daten beschrieben. Sein Typwert ist 128, kodiert als Byte
80
im Hexadezimalformat.Dieses Feld ist im Nachrichtenformat Version 2 nicht vorhanden.
- Algorithmus-ID
-
Eine ID für den verwendeten Algorithmus. Dies ist ein 2-Byte-Wert, interpretiert als vorzeichenlose 16-Bit-Ganzzahl. Weitere Informationen die Algorithmen finden Sie unter AWS Encryption SDK Referenz für Algorithmen.
- Nachrichten-ID
-
Ein zufällig generierter Wert, der die Nachricht identifiziert. Die Nachrichten-ID:
-
Identifiziert die verschlüsselte Nachricht eindeutig.
-
Bindet den Nachrichten-Header schwach an den Nachrichtentext.
-
Stellt einen Mechanismus zur sicheren Wiederverwendung eines Datenschlüssels für mehrere verschlüsselte Nachrichten bereit.
-
Schützt vor versehentlicher Wiederverwendung eines Datenschlüssels oder der Abnutzung von Schlüsseln im AWS Encryption SDK.
Dieser Wert beträgt 128 Bit im Nachrichtenformat Version 1 und 256 Bit in Version 2.
-
- AADLänge
-
Die Länge der zusätzlichen authentifizierten Daten (AAD). Es handelt sich um einen 2-Byte-Wert, der als 16-Bit-Ganzzahl ohne Vorzeichen interpretiert wird und die Anzahl der Byte angibt, die den enthalten. AAD
Wenn der Verschlüsselungskontext leer ist, ist der Wert des Felds AAD Länge 0.
- AAD
-
Die zusätzlich authentifizierten Daten (Additional Authenticated Data, ADD). Das AAD ist eine Kodierung des Verschlüsselungskontextes, ein Array von Schlüssel-Wert-Paaren, wobei jeder Schlüssel und Wert eine Zeichenfolge von UTF -8 codierten Zeichen ist. Der Verschlüsselungskontext wird in eine Bytefolge umgewandelt und für den Wert verwendet. AAD Wenn der Verschlüsselungskontext leer ist, gibt es kein AAD Feld in der Kopfzeile.
Wenn die Algorithmen mit Signatur verwendet werden, muss der Verschlüsselungskontext das Schlüssel-Wert-Paar
{'aws-crypto-public-key', Qtxt}
enthalten. Qtxt steht für den elliptischen Kurvenpunkt Q, der gemäß Version SEC 1 2.0komprimiert und dann Base64-kodiert wurde. Der Verschlüsselungskontext kann zusätzliche Werte enthalten, aber die maximale Länge des Konstruierten AAD beträgt 2^16 — 1 Byte. In der folgenden Tabelle werden die Felder beschrieben, die den bilden. AAD Schlüssel-Wert-Paare werden nach Schlüsseln in aufsteigender Reihenfolge gemäß dem UTF 8-stelligen Code sortiert. Die Byte werden in der angegebenen Reihenfolge angehängt.
AAD-StrukturFeld Länge (Bytes) Schlüssel-Wert-Paar-Zähler 2 Schlüssellänge 2 Schlüssel Variable. Gleich dem Wert, der in den vorherigen 2 Bytes angegeben ist (Schlüssellänge). Wertlänge 2 Wert Variable. Gleich dem Wert, der in den vorherigen 2 Bytes angegeben ist (Wertlänge). - Schlüssel-Wert-Paar-Zähler
-
Die Anzahl der Schlüssel-Wert-Paare in der. AAD Es handelt sich um einen 2-Byte-Wert, der als 16-Bit-Ganzzahl ohne Vorzeichen interpretiert wird und die Anzahl der Schlüssel-Wert-Paare in der angibt. AAD Die maximale Anzahl von Schlüssel-Wert-Paaren in der ist 2^16 - 1. AAD
Wenn kein Verschlüsselungskontext vorhanden ist oder der Verschlüsselungskontext leer ist, ist dieses Feld in der Struktur nicht vorhanden. AAD
- Schlüssellänge
-
Die Länge des Schlüssels für das Schlüssel-Wert-Paar. Es handelt sich um einen 2-Byte-Wert, interpretiert als vorzeichenlose 16-Bit-Ganzzahl, die die Anzahl der Bytes angibt, die den Schlüssel enthalten.
- Schlüssel
-
Der Schlüssel für das Schlüssel-Wert-Paar. Es ist eine Sequenz von UTF -8 codierten Byte.
- Wertlänge
-
Die Länge des Werts für das Schlüssel-Wert-Paar. Es handelt sich um einen 2-Byte-Wert, interpretiert als vorzeichenlose 16-Bit-Ganzzahl, die die Anzahl der Bytes angibt, die den Wert enthalten.
- Wert
-
Der Wert für das Schlüssel-Wert-Paar. Es ist eine Sequenz von UTF -8 codierten Bytes.
- Verschlüsselter Datenschlüssel-Zähler
-
Die Anzahl der verschlüsselten Datenschlüssel. Es handelt sich um einen 2-Byte-Wert, interpretiert als vorzeichenlose 16-Bit-Ganzzahl, die die Anzahl der verschlüsselten Datenschlüssel angibt. Die maximale Anzahl verschlüsselter Datenschlüssel in jeder Nachricht beträgt 65.535 (2^16 — 1).
- Verschlüsselte(r) Datenschlüssel
-
Eine Folge von verschlüsselten Datenschlüsseln. Die Länge der Folge wird durch die Anzahl der verschlüsselten Datenschlüssel und ihre jeweilige Länge bestimmt. Die Folge enthält mindestens einen verschlüsselten Datenschlüssel.
In der folgenden Tabelle sind die Felder beschrieben, die die verschlüsselten Datenschlüssel bilden. Die Byte werden in der angegebenen Reihenfolge angehängt.
Struktur der verschlüsselten DatenschlüsselFeld Länge (Bytes) Länge der Schlüsselanbieter-ID 2 Schlüsselanbieter-ID Variable. Gleich dem Wert, der in den vorherigen 2 Bytes angegeben ist (Länge der Schlüsselanbieter-ID). Länge der Schlüsselanbieterinformation 2 Schlüsselanbieterinformation Variable. Gleich dem Wert, der in den vorherigen 2 Bytes angegeben ist (Länge der Schlüsselanbieterinformation). Länge des verschlüsselten Datenschlüssels 2 Verschlüsselte Datenschlüssel Variable. Gleich dem Wert, der in den vorherigen 2 Bytes angegeben ist (Länge des verschlüsselten Datenschlüssels). - Länge der Schlüsselanbieter-ID
-
Die Länge der Schlüsselanbieter-ID. Es handelt sich um einen 2-Byte-Wert, interpretiert als vorzeichenlose 16-Bit-Ganzzahl, die die Anzahl der Bytes angibt, die die Schlüsselanbieter-ID enthalten.
- Schlüsselanbieter-ID
-
Die Schlüsselanbieter-ID. Wird verwendet, um den Anbieter des verschlüsselten Datenschlüssels anzugeben, und ist auf Erweiterbarkeit ausgelegt.
- Länge der Schlüsselanbieterinformation
-
Die Länge der Schlüsselanbieterinformation. Es handelt sich um einen 2-Byte-Wert, interpretiert als vorzeichenlose 16-Bit-Ganzzahl, die die Anzahl der Bytes angibt, die die Schlüsselanbieterinformation enthalten.
- Schlüsselanbieterinformation
-
Die Schlüsselanbieterinformation. Wird durch den Schlüsselanbieter bestimmt.
Wenn der Hauptschlüsselanbieter AWS KMS ist oder Sie einen AWS KMS Schlüsselbund verwenden, enthält dieser Wert den Amazon-Ressourcennamen (ARN) von. AWS KMS key
- Länge des verschlüsselten Datenschlüssels
-
Die Länge des verschlüsselten Datenschlüssels. Es handelt sich um einen 2-Byte-Wert, interpretiert als vorzeichenlose 16-Bit-Ganzzahl, die die Anzahl der Bytes angibt, die den verschlüsselten Datenschlüssel enthalten.
- Verschlüsselte Datenschlüssel
-
Der verschlüsselte Datenschlüssel. Dies ist der vom Schlüsselanbieter verschlüsselte Datenverschlüsselungsschlüssel.
- Inhaltstyp
-
Der Typ der verschlüsselten Daten, entweder ungerahmt oder gerahmt.
Anmerkung
Verwenden Sie nach Möglichkeit gerahmte Daten. Das AWS Encryption SDK unterstützt Daten ohne Frames nur für die Verwendung in älteren Versionen. Einige Sprachimplementierungen von AWS Encryption SDK können immer noch nicht gerahmten Chiffretext generieren. Alle unterstützten Sprachimplementierungen können gerahmten und ungerahmten Chiffretext entschlüsseln.
Frame-Daten werden in gleich lange Teile aufgeteilt; jeder Teil wird separat verschlüsselt. Inhalt mit Frame ist Typ 2, kodiert als Byte
02
im Hexadezimalformat.Daten ohne Frames werden nicht aufgeteilt, sondern sind ein einziger verschlüsselter Blob. Inhalt ohne Frame ist Typ 1, kodiert als Byte
01
im Hexadezimalformat. - Reserved Instances
-
Eine reservierte Folge aus 4 Bytes. Der Wert muss 0 sein. Es ist kodiert als die Bytes
00 00 00 00
im Hexadezimalformat (d. h. eine 4-Byte-Folge einer 32-Bit-Ganzzahl mit dem Wert 0).Dieses Feld ist im Nachrichtenformat Version 2 nicht vorhanden.
- IV-Länge
-
Die Länge des Initialisierungsvektors (IV). Es handelt sich um einen 1-Byte-Wert, interpretiert als vorzeichenlose 8-Bit-Ganzzahl, die die Anzahl der Bytes angibt, die den IV enthalten. Dieser Wert wird durch den IV-Byte-Wert des Algorithmus bestimmt, der die Nachricht generiert hat.
Dieses Feld ist im Nachrichtenformat Version 2 nicht vorhanden, das nur Algorithmus-Suites unterstützt, die deterministische IV-Werte im Nachrichtenkopf verwenden.
- Frame-Länge
-
Die Länge jedes Frames mit gerahmten Daten. Es handelt sich um einen 4-Byte-Wert, der als 32-Bit-Ganzzahl ohne Vorzeichen interpretiert wird und die Anzahl der Byte in jedem Frame angibt. Wenn die Daten nicht gerahmt sind, d. h. wenn der Wert des
Content Type
Felds 1 ist, muss dieser Wert 0 sein.Anmerkung
Verwenden Sie nach Möglichkeit gerahmte Daten. Das AWS Encryption SDK unterstützt Daten ohne Frames nur für die Verwendung in älteren Versionen. Einige Sprachimplementierungen von AWS Encryption SDK können immer noch nicht gerahmten Chiffretext generieren. Alle unterstützten Sprachimplementierungen können gerahmten und ungerahmten Chiffretext entschlüsseln.
- Daten der Algorithm Suite
-
Zusätzliche Daten, die der Algorithmus benötigt, der die Nachricht generiert hat. Die Länge und der Inhalt werden durch den Algorithmus bestimmt. Ihre Länge könnte 0 sein.
Dieses Feld ist im Nachrichtenformat Version 1 nicht vorhanden.
- Header-Authentifizierung
-
Die Header-Authentifizierung wird durch den Algorithmus bestimmt, der die Meldung generiert hat. Die Header-Authentifizierung wird unter Verwendung des kompletten Headers berechnet. Sie besteht aus einem IV und einem Authentifizierungs-Tag. Die Byte werden in der angegebenen Reihenfolge angehängt.
Struktur der Header-AuthentifizierungFeld Länge in Version 1.0 (Byte) Länge in Version 2.0 (Byte) IV Variable. Wird durch den IV-Byte-Wert des Algorithmus bestimmt, der die Nachricht generiert hat. N/A Authentifizierungs-Tag Variable. Wird durch den Authentifizierungs-Tag-Byte-Wert des Algorithmus bestimmt, die die Nachricht generiert hat. Variable. Wird durch den Authentifizierungs-Tag-Byte-Wert des Algorithmus bestimmt, die die Nachricht generiert hat. - IV
-
Der Initialisierungsvektor (IV) zur Berechnung des Header-Authentifizierungs-Tags.
Dieses Feld ist im Header der Nachrichtenformatversion 2 nicht vorhanden. Nachrichtenformat Version 2 unterstützt nur Algorithmus-Suites, die deterministische IV-Werte im Nachrichtenkopf verwenden.
- Authentifizierungs-Tag
-
Die Authentifizierungswert für den Header. Es wird verwendet, um den gesamten Inhalt des Headers zu authentifizieren.
Textstruktur
Der Nachrichtentext enthält die verschlüsselten Daten, den sogenannten Verschlüsselungstext. Die Struktur des Textes hängt vom Inhaltstyp ab (mit oder ohne Frame). Die folgenden Abschnitte beschreiben das Format des Nachrichtentexts für jeden Inhaltstyp. Die Struktur des Nachrichtentexts ist in den Nachrichtenformat-Versionen 1 und 2 dieselbe.
Daten ohne Frame
Anmerkung
Verwenden Sie nach Möglichkeit gerahmte Daten. Das AWS Encryption SDK unterstützt Daten ohne Frames nur für die Verwendung in älteren Versionen. Einige Sprachimplementierungen von AWS Encryption SDK können immer noch nicht gerahmten Chiffretext generieren. Alle unterstützten Sprachimplementierungen können gerahmten und ungerahmten Chiffretext entschlüsseln.
In der folgenden Tabelle sind die Felder beschrieben, die Daten ohne Frame bilden. Die Byte werden in der angegebenen Reihenfolge angehängt.
Struktur von Text ohne Frame | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Feld | Länge, in Bytes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IV | Variable. Gleich dem im IV-Länge-Byte des Headers angegebenen Wert. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Länge des verschlüsselten Inhalts | 8 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Verschlüsselter Inhalt | Variable. Gleich dem Wert, der in den vorherigen 8 Bytes angegeben ist (Länge des verschlüsselten Inhalts). | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Authentifizierungs-Tag | Variable. Wird durch die verwendete Algorithmus-Implementierung bestimmt. |
- IV
-
Der Initialisierungsvektor (IV) für die Verwendung mit dem Verschlüsselungsalgorithmus.
- Länge des verschlüsselten Inhalts
-
Die Länge des verschlüsselten Inhalts oder Verschlüsselungstext. Es handelt sich um einen 8-Byte-Wert, interpretiert als vorzeichenlose 64-Bit-Ganzzahl, die die Anzahl der Bytes angibt, die den verschlüsselten Inhalt enthalten.
Technisch ist der maximal zulässige Wert 2 ^ 63 – 1 oder 8 Exbibytes (8 EiB). In der Praxis ist der maximale Wert jedoch 2 ^ 36 – 32 oder 64 Gibibyte (64 GiB), aufgrund von Einschränkungen durch die implementierten Algorithmen.
Anmerkung
Die Java-Implementierung schränkt diesen Wert aufgrund von Einschränkungen in der Sprache SDK weiter auf 2^31 - 1 oder 2 Gibibyte (2 GiB) ein.
- Verschlüsselter Inhalt
-
Der verschlüsselte Inhalt (Verschlüsselungstext), wie vom Verschlüsselungsalgorithmus zurückgegeben.
- Authentifizierungs-Tag
-
Die Authentifizierungswert für den Text. Er wird verwendet, um den Nachrichtentext zu authentifizieren.
Daten mit Frame
Bei Daten mit Frame werden die Klartextdaten in gleichlange Teile unterteilt, die als Frames bezeichnet werden. Der AWS Encryption SDK verschlüsselt jeden Frame separat mit einer eindeutigen IV und einem eindeutigen Hauptteil. AAD
Anmerkung
Verwenden Sie nach Möglichkeit gerahmte Daten. Das AWS Encryption SDK unterstützt Daten ohne Frames nur für die Verwendung in älteren Versionen. Einige Sprachimplementierungen von AWS Encryption SDK können immer noch nicht gerahmten Chiffretext generieren. Alle unterstützten Sprachimplementierungen können gerahmten und ungerahmten Chiffretext entschlüsseln.
Die Frame-Länge, d. h. die Länge des verschlüsselten Inhalts im Frame, kann für jede Nachricht unterschiedlich sein. Die maximale Anzahl von Bytes in einem Frame ist 2 ^ 32 – 1. Die maximale Anzahl von Frames in einer Nachricht ist 2 ^ 32 – 1.
Es gibt zwei Arten von Frames: reguläre und abschließende. Jede Nachricht muss aus einem abschließenden Frame bestehen oder einen enthalten.
Alle regulären Frames in einer Nachricht haben die gleiche Frame-Länge. Der abschließende Frame kann eine andere Frame-Länge haben.
Die Zusammensetzung der Frames in Daten mit Frame variiert je nach Länge des verschlüsselten Inhalts.
-
Entspricht der Framelänge — Wenn die Länge des verschlüsselten Inhalts mit der Framelänge der regulären Frames übereinstimmt, kann die Nachricht aus einem regulären Frame bestehen, der die Daten enthält, gefolgt von einem letzten Frame mit der Länge Null (0). Oder die Nachricht kann nur aus einem abschließenden Frame bestehen, der die Daten enthält. In diesem Fall hat der abschließende Frame die gleiche Frame-Länge wie die regulären Frames.
-
Vielfaches der Framelänge — Wenn die Länge des verschlüsselten Inhalts ein exaktes Vielfaches der Framelänge der regulären Frames ist, kann die Nachricht in einem regulären Frame enden, der die Daten enthält, gefolgt von einem letzten Frame mit einer Länge von Null (0). Oder die Nachricht kann in einem abschließenden Frame enden, der die Daten enthält. In diesem Fall hat der abschließende Frame die gleiche Frame-Länge wie die regulären Frames.
-
Kein Vielfaches der Framelänge — Wenn die Länge des verschlüsselten Inhalts kein exaktes Vielfaches der Framelänge der regulären Frames ist, enthält der letzte Frame die verbleibenden Daten. Die Frame-Länge des abschließenden Frames ist kleiner als die Frame-Länge der regulären Frames.
-
Weniger als die Framelänge — Wenn die Länge des verschlüsselten Inhalts kleiner als die Framelänge der regulären Frames ist, besteht die Nachricht aus einem letzten Frame, der alle Daten enthält. Die Frame-Länge des abschließenden Frames ist kleiner als die Frame-Länge der regulären Frames.
In den folgenden Tabellen sind die Felder beschrieben, die die Frames bilden. Die Byte werden in der angegebenen Reihenfolge angehängt.
Textstruktur mit Frame, regulärer Frame | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Feld | Länge, in Bytes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Sequenznummer | 4 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IV | Variable. Gleich dem im IV-Länge-Byte des Headers angegebenen Wert. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Verschlüsselter Inhalt | Variable. Gleich dem im Frame-Länge des Headers angegebenen Wert. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Authentifizierungs-Tag | Variable. Wird durch den verwendeten Algorithmus bestimmt, wie im Algorithmus-ID des Headers spezifiziert. |
- Sequenznummer
-
Die Frame-Folgenummer. Dies ist ein inkrementeller Zähler für den Frame. Dies ist ein 4-Byte-Wert, interpretiert als vorzeichenlose 32-Bit-Ganzzahl.
Daten mit Frame müssen mit der Folgenummer 1 beginnen. Nachfolgende Frames müssen sich in der richtigen Reihenfolge befinden ein Inkrement von 1 gegenüber dem vorherigen Frame enthalten. Andernfalls wird der Entschlüsselungsprozess angehalten und eine Fehlermeldung ausgegeben.
- IV
-
Der Initialisierungsvektor (IV) für den Frame. Der SDK verwendet eine deterministische Methode, um für jeden Frame in der Nachricht ein anderes IV zu erstellen. Seine Länge wird durch die verwendete Algorithmus-Folge bestimmt.
- Verschlüsselter Inhalt
-
Der verschlüsselte Inhalt (Verschlüsselungstext) für den Frame, wie vom Verschlüsselungsalgorithmus zurückgegeben.
- Authentifizierungs-Tag
-
Die Authentifizierungswert für den Frame. Er wird verwendet, um den gesamten Frame zu authentifizieren.
Textstruktur mit Frame, abschließender Frame | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Feld | Länge, in Bytes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Folgenummerende | 4 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Sequenznummer | 4 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IV | Variable. Gleich dem im IV-Länge-Byte des Headers angegebenen Wert. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Länge des verschlüsselten Inhalts | 4 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Verschlüsselter Inhalt | Variable. Gleich dem Wert, der in den vorherigen 4 Bytes angegeben ist (Länge des verschlüsselten Inhalts). | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Authentifizierungs-Tag | Variable. Wird durch den verwendeten Algorithmus bestimmt, wie im Algorithmus-ID des Headers spezifiziert. |
- Folgenummerende
-
Ein Indikator für den abschließenden Frame. Der Wert wird als die 4 Bytes
FF FF FF FF
im Hexadezimalformat kodiert. - Sequenznummer
-
Die Frame-Folgenummer. Dies ist ein inkrementeller Zähler für den Frame. Dies ist ein 4-Byte-Wert, interpretiert als vorzeichenlose 32-Bit-Ganzzahl.
Daten mit Frame müssen mit der Folgenummer 1 beginnen. Nachfolgende Frames müssen sich in der richtigen Reihenfolge befinden ein Inkrement von 1 gegenüber dem vorherigen Frame enthalten. Andernfalls wird der Entschlüsselungsprozess angehalten und eine Fehlermeldung ausgegeben.
- IV
-
Der Initialisierungsvektor (IV) für den Frame. Der SDK verwendet eine deterministische Methode, um für jeden Frame in der Nachricht eine andere IV zu erstellen. Die Länge der IV-Länge wird durch die Algorithmus-Folge angegeben.
- Länge des verschlüsselten Inhalts
-
Die Länge des verschlüsselten Inhalts. Es handelt sich um einen 4-Byte-Wert, interpretiert als vorzeichenlose 32-Bit-Ganzzahl, die die Anzahl der Bytes angibt, die den verschlüsselten Inhalt für den Frame enthalten.
- Verschlüsselter Inhalt
-
Der verschlüsselte Inhalt (Verschlüsselungstext) für den Frame, wie vom Verschlüsselungsalgorithmus zurückgegeben.
- Authentifizierungs-Tag
-
Die Authentifizierungswert für den Frame. Er wird verwendet, um den gesamten Frame zu authentifizieren.
Footer-Struktur
Wenn die Algorithmen mit Signatur verwendet werden, enthält das Nachrichtenformat einen Footer. Die Fußzeile der Nachricht enthält eine digitale Signatur, die anhand des Nachrichtenkopfs und des Nachrichtentexts berechnet wird. In der folgenden Tabelle sind die Felder des Footers beschrieben. Die Byte werden in der angegebenen Reihenfolge angehängt. Die Struktur der Nachrichtenfußzeile ist in den Nachrichtenformat-Versionen 1 und 2 dieselbe.
Footer-Struktur | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Feld | Länge, in Bytes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Signaturlänge | 2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Signatur | Variable. Gleich dem Wert, der in den vorherigen 2 Bytes angegeben ist (Signaturlänge). |
-
Die Länge der Signatur. Es handelt sich um einen 2-Byte-Wert, interpretiert als vorzeichenlose 16-Bit-Ganzzahl, die die Anzahl der Bytes angibt, die die Signatur enthalten.
-
Die Signatur