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-Suites mit Key Commitment 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.
Feld | Nachrichtenformat, Version 1 Länge (Bytes) |
Nachrichtenformat Version 2 Länge (Bytes) |
---|---|---|
Version | 1 | 1 |
Type | 1 | Nicht vorhanden |
Algorithm ID | 2 | 2 |
Message ID | 16 | 32 |
AAD Length | 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. |
Encrypted Data Key Count | 2 | 2 |
Encrypted Data Key(s) | 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. |
Content Type | 1 | 1 |
Reserved | 4 | Nicht vorhanden |
IV Length | 1 | Nicht anwesend |
Frame Length | 4 | 4 |
Algorithm Suite Data | Nicht anwesend | Variabel. Wird durch den Algorithmus bestimmt, der die Nachricht generiert hat. |
Header Authentication | Variable. Wird durch den Algorithmus bestimmt, der die Nachricht generiert hat. | Variable. Wird durch den Algorithmus bestimmt, der die Nachricht generiert hat. |
- Ausführung
-
Die Version dieses Nachrichtenformats. Die Version ist entweder 1 oder 2 als Byte
01
oder02
in hexadezimaler Schreibweise codiert - Geben Sie ein
-
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 zu 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-Struktur Feld Länge (Bytes) Key-Value Pair Count 2 Key Length 2 Key Variable. Gleich dem Wert, der in den vorherigen 2 Bytes angegeben ist (Schlüssellänge). Value Length 2 Value Variable. Gleich dem Wert, der in den vorherigen 2 Bytes angegeben ist (Wertlänge). - Anzahl der Schlüssel-Wert-Paare
-
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
- Länge des Schlüssels
-
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 Bytes.
- Wert: Lä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.
- Anzahl verschlüsselter Datenschlüssel
-
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 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üssel Feld Länge (Bytes) Key Provider ID Length 2 Key Provider ID Variable. Gleich dem Wert, der in den vorherigen 2 Bytes angegeben ist (Länge der Schlüsselanbieter-ID). Key Provider Information Length 2 Key Provider Information Variable. Gleich dem Wert, der in den vorherigen 2 Bytes angegeben ist (Länge der Schlüsselanbieterinformation). Encrypted Data Key Length 2 Encrypted Data Key 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.
- ID des Schlüsselanbieters
-
Die Schlüsselanbieter-ID. Wird verwendet, um den Anbieter des verschlüsselten Datenschlüssels anzugeben, und ist auf Erweiterbarkeit ausgelegt.
- Länge der Informationen zum Schlüsselanbieter
-
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.
- Informationen zu den wichtigsten Anbietern
-
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üsselter Datenschlüssel
-
Der verschlüsselte Datenschlüssel. Dies ist der vom Schlüsselanbieter verschlüsselte Datenverschlüsselungsschlüssel.
- Art des Inhalts
-
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. - Reserviert
-
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 in Version 2 des Nachrichtenformats nicht vorhanden, das nur Algorithmus-Suites unterstützt, die deterministische IV-Werte im Nachrichtenkopf verwenden.
- Länge des Frames
-
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-Authentifizierung Feld 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 Authentication 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.
Feld | Länge, in Bytes |
---|---|
IV | Variable. Gleich dem im IV Length-Byte des Headers angegebenen Wert. |
Encrypted Content Length | 8 |
Encrypted Content | Variable. Gleich dem Wert, der in den vorherigen 8 Bytes angegeben ist (Länge des verschlüsselten Inhalts). |
Authentication 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. Das AWS Encryption SDK verschlüsselt jeden Frame separat mit einer eindeutigen ID 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.
Feld | Länge, in Bytes |
---|---|
Sequence Number | 4 |
IV | Variable. Gleich dem im IV Length-Byte des Headers angegebenen Wert. |
Encrypted Content | Variable. Gleich dem im Frame Length des Headers angegebenen Wert. |
Authentication Tag | Variable. Wird durch den verwendeten Algorithmus bestimmt, wie im Algorithm 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. Das SDK verwendet eine deterministische Methode, um für jeden Frame in der Nachricht eine andere 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.
Feld | Länge, in Bytes |
---|---|
Sequence Number End | 4 |
Sequence Number | 4 |
IV | Variable. Gleich dem im IV Length-Byte des Headers angegebenen Wert. |
Encrypted Content Length | 4 |
Encrypted Content | Variable. Gleich dem Wert, der in den vorherigen 4 Bytes angegeben ist (Länge des verschlüsselten Inhalts). |
Authentication Tag | Variable. Wird durch den verwendeten Algorithmus bestimmt, wie im Algorithm ID des Headers spezifiziert. |
- Ende der Sequenznummer
-
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. Das 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.
Feld | Länge, in Bytes |
---|---|
Signature Length | 2 |
Signature | Variable. Gleich dem Wert, der in den vorherigen 2 Bytes angegeben ist (Signaturlänge). |
- Länge der Signatur
-
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.
- Signatur
-
Die Signatur