DE112021003259T5 - Erhöhte datenintegrität für authentifizierte verschlüsselungsalgorithmen - Google Patents

Erhöhte datenintegrität für authentifizierte verschlüsselungsalgorithmen Download PDF

Info

Publication number
DE112021003259T5
DE112021003259T5 DE112021003259.3T DE112021003259T DE112021003259T5 DE 112021003259 T5 DE112021003259 T5 DE 112021003259T5 DE 112021003259 T DE112021003259 T DE 112021003259T DE 112021003259 T5 DE112021003259 T5 DE 112021003259T5
Authority
DE
Germany
Prior art keywords
data
block
response
generating
authenticated
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE112021003259.3T
Other languages
English (en)
Other versions
DE112021003259T9 (de
Inventor
David Joseph Clinton
Patrick Bailey
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microchip Technology Inc
Original Assignee
Microchip Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microchip Technology Inc filed Critical Microchip Technology Inc
Publication of DE112021003259T5 publication Critical patent/DE112021003259T5/de
Application granted granted Critical
Publication of DE112021003259T9 publication Critical patent/DE112021003259T9/de
Active legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/34Encoding or coding, e.g. Huffman coding or error correction

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)
  • Credit Cards Or The Like (AREA)
  • Collating Specific Patterns (AREA)

Abstract

Ein oder mehrere Beispiele beziehen sich allgemein auf Systeme, Verfahren und Vorrichtungen zum Durchführen einer authentifizierten Verschlüsselung, die Sicherheit der Datenauthentizität durch die Verschlüsselungs- und Entschlüsselungsprozesse bereitstellt.

Description

  • QUERVERWEIS AUF VERWANDTE ANMELDUNGEN
  • Diese Anmeldung beansprucht den Vorteil unter 35 U.S.C. §119(e) der vorläufigen US-Patentanmeldung mit der Seriennummer 62/705.194 , eingereicht am 15. Juni 2020, deren Inhalt und Offenbarung hiermit durch Bezugnahme in ihrer Gesamtheit hierin aufgenommen wird.
  • TECHNISCHES GEBIET
  • Ein oder mehrere Beispiele beziehen sich allgemein auf elektronische Kommunikation und Kommunikationssysteme. Ein oder mehrere Beispiele beziehen sich allgemein auf Datenintegrität und Ende-zu-Ende-Datenintegrität, die für Hochzuverlässigkeitsanwendungen geeignet sein können. Ein oder mehrere Beispiele beziehen sich allgemein auf Verschlüsselung und Formen der Verschlüsselung, die gleichzeitig die Vertraulichkeit und Authentizität von Daten und insbesondere die authentifizierte Verschlüsselung sicherstellen.
  • STAND DER TECHNIK
  • Sicherheit und Authentizität von Daten sind wichtige Überlegungen in einer Vielfalt von Zusammenhängen, einschließlich ohne Einschränkung der Datenkommunikation unter Verwendung elektronischer Kommunikationssysteme.
  • Figurenliste
  • Um die Erörterung eines besonderen Elements oder einer besonderen Handlung leicht zu identifizieren, bezieht/beziehen sich die Hauptziffer(n) in einem Bezugszeichen auf die Figurennummer, in der dieses Element zuerst eingeführt wird.
    • 1 ist ein Blockdiagramm, das ein elektronisches Kommunikationssystem gemäß einem oder mehreren Beispielen darstellt.
    • 2 ist ein Funktionsflussblockdiagramm, das einen Prozess für eine Übertragungsseite einer Kommunikation unter Verwendung einer authentifizierten Verschlüsselung mit einem Fehlererkennungscode (error detecting code, EDC) gemäß einem oder mehreren Beispielen darstellt.
    • 3 ist ein Flussdiagramm, das einen Prozess für eine Empfangsseite einer Kommunikation unter Verwendung einer authentifizierten Verschlüsselung mit EDC gemäß einem oder mehreren Beispielen darstellt.
    • 4 ist ein Funktionsflussblockdiagramm, das einen Funktionsfluss einer Übertragungsseite eines Kommunikationssystems, das authentifizierte Verschlüsselung mit EDC verwendet, gemäß einem oder mehreren Beispielen darstellt.
    • 5 ist ein Funktionsflussblockdiagramm, das einen Funktionsfluss einer Empfangsseite eines Kommunikationssystems, das authentifizierte Verschlüsselung mit EDC verwendet, gemäß einem oder mehreren Beispielen darstellt.
    • 6 ist ein Funktionsblockdiagramm, das eine Datentransformation durch einen Algorithmus zur authentifizierten Verschlüsselung mit EDC gemäß einem oder mehreren Beispielen darstellt.
    • 7 ist ein Funktionsblockdiagramm, das eine Datentransformation durch einen Algorithmus zur authentifizierten Verschlüsselung mit EDC gemäß einem oder mehreren Beispielen darstellt.
    • 8 ist eine Schaltlogik, die verwendet werden kann, um verschiedene Funktionen, Vorgänge, Handlungen, Prozesse oder Verfahren gemäß einem oder mehreren Beispielen zu implementieren.
  • ART(EN) ZUM AUSFÜHREN DER ERFINDUNG
  • In der folgenden detaillierten Beschreibung wird auf die beiliegenden Zeichnungen Bezug genommen, die einen Teil dieses Dokuments bilden und in denen zur Veranschaulichung spezifische Beispiele von Beispielen gezeigt sind, in denen die vorliegende Offenbarung umgesetzt werden kann. Diese Beispiele sind hinreichend detailliert beschrieben, um es einem Durchschnittsfachmann zu ermöglichen, die vorliegende Offenbarung umzusetzen. Es können jedoch auch andere hierin ermöglichte Beispiele verwendet werden, und Änderungen der Struktur, des Materials und des Prozesses können vorgenommen werden, ohne vom Schutzumfang der Offenbarung abzuweichen.
  • Die hierin dargestellten Veranschaulichungen sollen keine tatsächlichen Ansichten eines bestimmten Verfahrens oder Systems oder einer bestimmten Vorrichtung oder Struktur sein, sondern sind lediglich idealisierte Darstellungen, die zur Beschreibung der Beispiele der vorliegenden Offenbarung verwendet werden. Ähnliche Strukturen oder Komponenten in den verschiedenen Zeichnungen können in einigen Fällen zur Vereinfachung für den Leser die gleiche oder eine ähnliche Nummerierung beibehalten; die Ähnlichkeit in der Nummerierung bedeutet jedoch nicht notwendigerweise, dass die Strukturen oder Komponenten in Größe, Zusammensetzung, Konfiguration oder einer anderen Eigenschaft identisch sind.
  • Die folgende Beschreibung kann Beispiele einschließen, um es einem Durchschnittsfachmann zu ermöglichen, die offenbarten Beispiele umzusetzen. Die Verwendung der Begriffe „beispielhaft“, „als Beispiel“ und „zum Beispiel“ bedeutet, dass die zugeordnete Beschreibung erläuternd ist, und obwohl der Schutzumfang der Offenbarung die Beispiele und ihre rechtlichen Äquivalente beinhalten soll, ist die Verwendung dieser Begriffe nicht dazu bestimmt, den Schutzumfang eines offenbarten Beispiels oder dieser Offenbarung auf die spezifizierten Komponenten, Schritte, Merkmale, Funktionen oder dergleichen einzuschränken.
  • Es versteht sich, dass die Komponenten der Beispiele, wie sie hierin allgemein beschrieben und in den Zeichnungen veranschaulicht sind, in einer großen Vielfalt unterschiedlicher Konfigurationen angeordnet und gestaltet werden könnten. Somit soll die folgende Beschreibung verschiedener Beispiele den Schutzumfang der vorliegenden Offenbarung nicht einschränken, sondern ist lediglich für verschiedene Beispiele repräsentativ. Während die verschiedenen Gesichtspunkte der Beispiele in den Zeichnungen dargestellt sein können, sind die Zeichnungen nicht notwendigerweise maßstabsgetreu gezeichnet, sofern nicht ausdrücklich angegeben.
  • Des Weiteren sind die gezeigten und beschriebenen spezifischen Implementierungen nur Beispiele und sollten nicht als die einzige Möglichkeit zur Implementierung der vorliegenden Offenbarung ausgelegt werden, sofern hierin nicht anders angegeben. Elemente, Schaltungen und Funktionen können in Blockdiagrammform gezeigt sein, um die vorliegende Offenbarung nicht durch unnötige Details undeutlich werden zu lassen. Umgekehrt sind gezeigte und beschriebene spezifische Implementierungen nur beispielhaft und sollten nicht als die einzige Möglichkeit zur Implementierung der vorliegenden Offenbarung ausgelegt werden, sofern hierin nicht anders angegeben. Außerdem sind Blockdefinitionen und die Aufteilung von Logik zwischen verschiedenen Blöcken beispielhaft für eine spezifische Implementierung. Es ist für den Durchschnittsfachmann ohne Weiteres ersichtlich, dass die vorliegende Offenbarung durch zahlreiche andere Aufteilungslösungen umgesetzt werden kann. Auf Details zu zeitlichen Erwägungen und dergleichen wurde größtenteils verzichtet, soweit solche Details für ein vollständiges Verständnis der vorliegenden Offenbarung nicht erforderlich sind und innerhalb der Fähigkeiten eines Durchschnittsfachmanns liegen.
  • Der Durchschnittsfachmann wird verstehen, dass Informationen und Signale unter Verwendung einer Vielfalt verschiedener Technologien und Techniken dargestellt werden können. Einige Zeichnungen können Signale zur Übersichtlichkeit der Darstellung und Beschreibung als ein einzelnes Signal veranschaulichen. Ein Durchschnittsfachmann wird verstehen, dass das Signal einen Bus von Signalen darstellen kann, wobei der Bus eine Vielfalt von Bitbreiten aufweisen kann und die vorliegende Offenbarung auf einer beliebigen Anzahl von Datensignalen, einschließlich eines einzelnen Datensignals, implementiert werden kann.
  • Die verschiedenen veranschaulichenden logischen Blöcke, Module, Algorithmen und Schaltungen, die in Verbindung mit den hierin offenbarten Beispielen beschrieben werden, können mit einem Universalprozessor, einem Spezialprozessor, einem digitalen Signalprozessor (Digital Signal Processor, DSP), einer integrierten Schaltung (Integrated Circuit, IC), einer anwendungsspezifischen integrierten Schaltung (Application Specific Integrated Circuit, ASIC), einer anwenderprogrammierbaren Gatteranordnung (Field Programmable Gate Array, FPGA) oder einer anderen programmierbaren Logikvorrichtung, einer diskreten Gate- oder Transistorlogik, diskreten Hardwarekomponenten oder einer beliebigen Kombination davon, die zum Durchführen der hierin beschriebenen Funktionen ausgelegt sind, implementiert oder durchgeführt werden - die alle durch die Verwendung des Begriffs „Prozessor“ erfasst sind. Ein Universalprozessor kann ein Mikroprozessor sein, aber alternativ kann der Prozessor jeder herkömmliche Prozessor, jede herkömmliche Steuerung, jeder herkömmliche Mikrocontroller oder jede herkömmliche Zustandsmaschine sein. Ein Prozessor kann auch als eine Kombination von Rechenvorrichtungen, wie eine Kombination aus einem DSP und einem Mikroprozessor, eine Vielzahl von Mikroprozessoren, ein oder mehrere Mikroprozessoren in Verbindung mit einem DSP-Kern oder eine beliebige andere derartige Konfiguration implementiert sein. Ein Universalcomputer, einschließlich eines Prozessors, wird als Spezialcomputer angesehen, während der Universalcomputer konfiguriert ist, um Rechenanweisungen (z. B. Softwarecode, ohne Einschränkung) auszuführen, die sich auf Beispiele der vorliegenden Offenbarung beziehen.
  • Die Beispiele können in Bezug auf einen Prozess beschrieben sein, der als ein Flussdiagramm, ein Fließschema, ein Strukturdiagramm oder ein Blockdiagramm dargestellt ist. Obwohl ein Flussdiagramm Vorgangshandlungen als einen sequentiellen Prozess beschreiben kann, können viele dieser Handlungen in einer anderen Abfolge, parallel oder im Wesentlichen gleichzeitig durchgeführt werden. Außerdem kann die Reihenfolge der Handlungen geändert werden. Ein Prozess kann einem Verfahren, einem Thread, einer Funktion, einer Prozedur, einer Unterroutine, einem Unterprogramm, einer anderen Struktur oder Kombinationen davon entsprechen. Des Weiteren können die hierin offenbarten Verfahren in Hardware, Software oder beidem implementiert werden. Bei Implementierung in Software können die Funktionen als eine oder mehrere Anweisungen oder als Code auf computerlesbaren Medien gespeichert oder übertragen werden. Computerlesbare Medien schließen sowohl Computerspeichermedien als auch Kommunikationsmedien, einschließlich aller Medien, welche die Übertragung eines Computerprogramms von einem Ort zu einem anderen unterstützen, ein.
  • Jede Bezugnahme auf ein Element hierin unter Verwendung einer Bezeichnung, wie „erste/r/s“, „zweite/r/s“ usw., schränkt die Menge oder Reihenfolge dieser Elemente nicht ein, es sei denn, eine solche Einschränkung wird ausdrücklich angegeben. Vielmehr können diese Bezeichnungen hierin als ein zweckmäßiges Verfahren zum Unterscheiden zwischen zwei oder mehr Elementen oder Instanzen eines Elements verwendet werden. Eine Bezugnahme auf ein erstes und ein zweites Element bedeutet somit nicht, dass dort nur zwei Elemente eingesetzt werden dürfen oder dass das erste Element dem zweiten Element in irgendeiner Art und Weise vorausgehen muss. Außerdem kann ein Satz von Elementen, sofern nicht anders angegeben, ein oder mehrere Elemente einschließen.
  • Wie hierin verwendet, bedeutet der Begriff „im Wesentlichen“ in Bezug auf einen gegebenen Parameter, eine gegebene Eigenschaft oder eine gegebene Bedingung und schließt in einem für einen Durchschnittsfachmann verständlichen Ausmaß ein, dass der gegebene Parameter, die gegebene Eigenschaft oder die gegebene Bedingung mit einem geringen Maß an Varianz, wie innerhalb annehmbarer Fertigungstoleranzen, erfüllt ist. Beispielhaft kann in Abhängigkeit von dem bestimmten Parameter, der bestimmten Eigenschaft oder der bestimmten Bedingung, der bzw. die im Wesentlichen erfüllt ist, der Parameter, die Eigenschaft oder die Bedingung zu mindestens 90 % erfüllt, zu mindestens 95 % erfüllt oder sogar zu mindestens 99 % erfüllt sein.
  • Wie hierin verwendet, werden relationale Begriffe, wie „über“, „unter“, „auf“, „darunterliegend“ „oberhalb“, „unterhalb“ usw., aus Gründen der Klarheit und Zweckmäßigkeit für das Verständnis der Offenbarung und der begleitenden Zeichnungen verwendet und sind nicht mit einer bestimmten Präferenz, Ausrichtung oder Reihenfolge verbunden oder davon abhängig, es sei denn, aus dem Zusammenhang geht eindeutig etwas anderes hervor.
  • In dieser Beschreibung können der Begriff „gekoppelt“ und Derivate davon verwendet werden, um anzugeben, dass zwei Elemente zusammenwirken oder miteinander interagieren. Wenn ein Element als mit einem anderen Element „gekoppelt“ beschrieben wird, können die Elemente in direktem physischem oder elektrischem Kontakt sein oder es können Zwischenelemente oder -schichten vorhanden sein. Wenn dagegen ein Element als mit einem anderen Element „direkt gekoppelt“ bezeichnet wird, sind keine Zwischenelemente oder -schichten vorhanden. Der Begriff „verbunden“ kann in dieser Beschreibung austauschbar mit dem Begriff „gekoppelt“ verwendet werden und hat die gleiche Bedeutung, sofern nicht ausdrücklich etwas anderes angegeben ist oder der Zusammenhang einem Durchschnittsfachmann etwas anderes angeben würde.
  • Wie hierin verwendet, bedeutet „Zeichenfolge“ eine Sequenz von Symbolen. Wie hierin verwendet, bedeutet „Code“ eine Zeichenfolge, die durch Durchführen spezifischer Vorgänge generiert wird, wobei die spezifischen Vorgänge der generierten Zeichenfolge einen spezifischen Nutzen verleihen.
  • Authentifizierte Verschlüsselungsalgorithmen sind Algorithmen, die theoretisch gleichzeitig die Vertraulichkeit und Authentizität von Daten sicherstellen.
  • Als ein nicht einschränkendes Beispiel ist GCM ein Betriebsmodus für kryptografische Blockchiffren mit symmetrischem Schlüssel, der häufig mit der kryptografischen Blockchiffre mit symmetrischem Schlüssel nach Advanced Encryption Standard (AES) gepaart ist (Algorithmen, die den GCM-Modus für AES verwenden, werden als „AES-GCM-Algorithmen“ bezeichnet). AES-GCM-Algorithmen werden für Verschlüsselungsschemata für die Netzwerkkommunikation verwendet.
  • Authentifizierte Verschlüsselung mit zugeordneten Daten ist eine Variation der authentifizierten Verschlüsselung, die verschlüsselte Daten und so genannte „zugeordnete Daten“, die nicht verschlüsselt sind, in einer Nachricht authentifiziert. Nicht einschränkende Beispiele für Ansätze für authentifizierte Verschlüsselungsalgorithmen schließen „verschlüsseln, dann authentifizieren“, „verschlüsseln und authentifizieren“ und „authentifizieren, dann verschlüsseln“ ein. Nicht einschränkende Beispiele für authentifizierte Verschlüsselungsalgorithmen, die mit Blockchiffren verwendet werden, schließen ohne Einschränkung Galois Counter Mode (GCM), Carter-Wegman mit Zählermodus (CWC-Modus), Zähler mit Cipher Block Chaining Message Authentication Code (CCM-Modus) oder Offset-Codebuchmodus (OCB-Modus) ein).
  • Als ein nicht einschränkendes Beispiel beinhaltet der Authentifizierungsmodus von AES-GCM das Generieren eines Nachrichtenauthentifizierungscodes, der als GCM-Nachrichtenauthentifizierungscode (GMAC) oder „GMAC-Tag“ bezeichnet wird, der dazu ausgelegt ist, sowohl unbeabsichtigte Fehler als auch beabsichtigte Modifikationen von Daten während der Übertragung offenzulegen. AES-GMAC ist eine Spezialisierung des AES-GCM-Algorithmus, die manchmal verwendet wird, um die Authentifizierungssicherheit in Fällen bereitzustellen, in denen die Eingabedaten nicht verschlüsselt sind.
  • Authentifizierte Verschlüsselungsalgorithmen, die den Erfindern dieser Offenbarung bekannt sind, wie AES-GCM, schließen einen Mechanismus, um harte oder weiche Fehler zu erkennen, die während der Verschlüsselungs- oder Entschlüsselungsphasen des Algorithmus auftreten, nicht ein (z. B. nativ, ohne Einschränkung). In Kommunikationssystemen für Hochzuverlässigkeitsprodukte ist die Ende-zu-Ende-Datenintegrität in der Regel eine Anforderung, und nicht erkennbare Fehler sind inakzeptabel. Techniken zur Aufrechterhaltung der Ende-zu-Ende-Datenintegrität in Kommunikationen, die unter Verwendung eines AES-GCM-Algorithmus gesichert sind, der den Erfindern dieser Offenbarung bekannt ist, beinhalten in der Regel das Ändern einer Nachrichtenstruktur durch Erweitern der Nachrichtenstruktur, sodass die erweiterte Nachricht die ursprüngliche Nachricht und einen Fehlererkennungscode trägt, Verschlüsseln der erweiterten Nachricht und Generieren eines Authentifizierungscodes unter Verwendung der verschlüsselten erweiterten Nachricht. Änderungen an einer Nachrichtenstruktur sind seitens einiger Kommunikationsprotokolle nicht zulässig oder können anderweitig unerwünscht sein.
  • Die Erfinder dieser Offenbarung schätzen, dass es wünschenswert wäre, über einen Mechanismus zu verfügen, um eine Ende-zu-Ende-Datenintegrität bereitzustellen, die Verschlüsselungs- und Entschlüsselungsprozesse einschließt, die in authentifizierten Verschlüsselungsalgorithmen verwendet werden, ohne die Nachrichtenstruktur zu ändern, die übertragen wird, um die Nachricht gemäß einem spezifischen Kommunikationsprotokoll zu kommunizieren.
  • Ein oder mehrere Beispiele beziehen sich allgemein auf Systeme, Verfahren und Vorrichtungen zum Durchführen einer authentifizierten Verschlüsselung, die eine Ende-zu-Ende-Datenintegrität bereitstellt, einschließlich der Verschlüsselungs- und Entschlüsselungsprozesse.
  • In einem oder mehreren Beispielen wird ein Fehlererkennungscode (EDC) generiert und in einen Block von Daten eingefügt, die von einem authentifizierten Verschlüsselungsalgorithmus verwendet werden, um einen authentifizierten verschlüsselten Block von Daten zu generieren. In einem oder mehreren Beispielen wird der EDC in einen Abschnitt eines Blocks von Daten eingefügt, in dem sein Vorhandensein die Nachrichtenstruktur einer Nachricht, die einen Abschnitt des Blocks von Daten umfasst, nicht beeinflusst. Zum Beispiel würde das Vorhandensein des EDC in einem Abschnitt eines Blocks von Daten, der durch einen authentifizierten Verschlüsselungsalgorithmus verschlüsselt wird, eine Nachrichtenstruktur beeinflussen, während ein Abschnitt eines Blocks von Daten, der ausschließlich zur Authentifizierung verwendet wird, und genauer gesagt das Generieren eines Authentifizierungscodes, den Inhalt von Daten, die in einer Nutzlast eines Pakets gespeichert sind, nicht einfach dadurch beeinflussen, dass er beim Generieren des Authentifizierungscodes vorhanden ist.
  • Ein Prozess zum Generieren eines Authentifizierungscodes wird auf den modifizierten Block von Daten angewendet, der den EDC und den Chiffriertext einschließt. Insbesondere ist der generierte Authentifizierungscode ein Authentifizierer für eine Nachricht (d. h. zum Sicherstellen der Datenintegrität einer Nachricht und von Nachrichtensegmenten, die über eine Paketdatenübertragung kommuniziert werden), und auch ein Authentifizierer für die Verschlüsselungs- und Entschlüsselungsprozesse, die verwendet werden, um die Nachrichten zu sichern (d. h. zum Sicherstellen der Datenintegrität von Nachrichten und Nachrichtensegmenten während des Verschlüsselungsprozesses, der einen Klartext in einen Chiffriertext umwandelt). Der Sender überträgt die Authentifizierungscodes zusammen mit den verschlüsselten Nachrichtensegmenten.
  • An einem Empfänger der authentifizierten verschlüsselten Nachricht (und insbesondere der verschlüsselten Nachricht und des Authentifizierungscodes) werden Klartextdaten aus der verschlüsselten Nachricht mindestens teilweise als Reaktion auf das Anwenden eines Entschlüsselungsprozesses auf den Chiffriertext in der Nachricht wiederhergestellt. Ein EDC wird unter Verwendung der aus dem Chiffriertext wiederhergestellten Klartextdaten generiert. Der EDC wird in einen Block von Daten eingefügt, der beim Empfänger verwendet wird, um einen Authentifizierungscode (einen Sender-Authentifizierungscode) zu generieren. Ein Authentifizierungscode, der mit der Nachricht empfangen wird (ein Empfänger-Authentifizierungscode), und die zweite Authentifizierung werden über einen Authentifizierungsprozess verglichen, und wenn sich der erste und der Sender-Authentifizierungscode basierend auf dem Authentifizierungsprozess unterscheiden, dient der Unterschied als Hinweis auf das Vorhandensein eines Fehlers in der Nachricht, und es werden fehlerhafte Daten erkannt. Wenn der erste und der Sender-Authentifizierungscode basierend auf dem Authentifizierungsprozesses gleich sind, dient die Gleichheit als Hinweis darauf, dass die Daten nicht fehlerhaft sind.
  • Insbesondere handelt es sich bei einem offenbarten Authentifizierungscode um einen Authentifizierer für einen Datenpfad, der mit dem Anwenden eines Verschlüsselungsprozesses auf Klartextdaten beginnt, um Chiffriertextdaten zu erzeugen, und endet mit dem Wiederherstellen von Klartextdaten aus den Chiffriertextdaten. Die offenbarten Beispiele erweitern die Datenintegrität so, dass sie die Verschlüsselungs- und Entschlüsselungsfunktionen einschließt, was die Sicherheit erhöht, dass empfangene Nachrichten den Nachrichten entsprechen, deren Empfang ein Sender beabsichtigte.
  • Insbesondere können offenbarte authentifizierte Verschlüsselungsalgorithmen für die Ende-zu-Ende-Datenintegrität und die Fehlererkennung in Fällen allgemeiner verwendet werden, in denen ein authentifizierter Verschlüsselungsalgorithmus mit einem Kommunikationsprotokoll verwendet wird, das keine Änderungen an einer Nachrichtenstruktur zulässt, oder wenn Änderungen an einer Nachrichtenstruktur unerwünscht sind.
  • 1 ist ein Blockdiagramm, das ein Kommunikationssystem 100 gemäß einem oder mehreren Beispielen darstellt. In einem oder mehreren Beispielen kann das Kommunikationssystem 100 eine Verschaltung, wie Peripheral Component Interconnect Express (PCIe), Compute Express Link (CXL) oder Variationen davon, ohne Einschränkung, sein oder einschließen, oder ein Schicht 2.0-Protokoll, wie Media Access Control Security (MACsec), ohne Einschränkung, verwenden, das auf einer Datensicherungsschicht arbeitet. Die Kommunikation 110 zwischen einem ersten Teilnehmer 102 (eine Übertragungsseite des Kommunikationssystems 100) und einem zweiten Teilnehmer 104 (eine Empfangsseite des Kommunikationssystems 100) schließt einen Block von Daten 106 ein, der authentifiziert und verschlüsselt ist (d. h. einen „authentifizierten verschlüsselten Block von Daten 106“). Insbesondere wird der Block von Daten 106 durch Authentifizierungscode 108 zur authentifizierten Verschlüsselung mit EDC gemäß einem oder mehreren Beispielen authentifiziert.
  • 2 ist ein Funktionsflussblockdiagramm, das den Prozess 200 für eine Übertragungsseite der authentifizierten Verschlüsselung mit EDC gemäß einem oder mehreren Beispielen darstellt.
  • Bei Vorgang 202 generiert der Prozess 200 einen Fehlererkennungscode mindestens teilweise als Reaktion auf Klartextdaten. In einem oder mehreren Beispielen kann der Prozess 200 den Fehlererkennungscode aus den Klartextdaten durch Anwenden eines kryptografischen Grundelements auf die Klartextdaten, wie eine kryptografische Hash-Funktion, die zum Ableiten eine zyklischen Redundanzprüfung (Cyclic Redundancy Check, CRC), Prüfsumme oder von Hamming-Codes verwendet wird, ohne Einschränkung, ableiten.
  • Bei Vorgang 204 generiert der Prozess 200 einen Chiffriertext mindestens teilweise als Reaktion auf das Anwenden eines Verschlüsselungsprozesses auf die Klartextdaten. In einem oder mehreren Beispielen kann der Verschlüsselungsprozess ein Verschlüsselungsabschnitt eines authentifizierten Verschlüsselungsprozesses sein (z. B. AES, RSA, Serpent, Datenverschlüsselungsstandard (Data Encryption Standard, DES), ChaCha20 symmetric cipher oder Diffie-Hellman, ohne Einschränkung).
  • Bei Vorgang 206 generiert der Prozess 200 einen modifizierten Block von Daten mindestens teilweise als Reaktion auf das Hinzufügen des generierten EDC des Vorgangs 202 zu einem Block von Daten, der die bei Vorgang 204 generierten Chiffriertextdaten einschließt. In einem oder mehreren Beispielen kann jeder Abschnitt des Blocks von Daten ausgewählt werden, um den EDC einzufügen, der Daten einschließt oder für Daten zugeordnet ist, die für die hierin erörterte Authentifizierung verwendet werden (z. B. Daten einschließt, die verwendet werden, um den Authentifizierungscode zu generieren). In einem oder mehreren Beispielen kann der ausgewählte Abschnitt des Blocks von Daten Daten, die zur Authentifizierung verwendet werden, aber nicht verschlüsselt sind, Daten, die verschlüsselt sind und zur Authentifizierung verwendet werden, oder beides einschließen (z. B., ohne Einschränkung, wird der EDC abgetrennt oder werden mehrere EDCs generiert). In einem oder mehreren Beispielen wird der EDC nicht mit einem authentifizierten verschlüsselten Block von Daten übertragen und wird nur zur Authentifizierung verwendet. In einem oder mehreren Beispielen kann der EDC in einem Abschnitt eines Blocks von Daten für zugeordnete Daten (z. B. „zusätzliche authentifizierte Daten“ (additional authenticated data, AAD) in GCM, ohne Einschränkung), Chiffriertext oder Auffüllsymbole eingesetzt werden oder an diese angehängt oder darauf angewendet werden (z. B. verwendet werden, um eine Verschlüsselung oder Transformation, ohne Einschränkung, anzuwenden), ohne Einschränkung.
  • Bei Vorgang 208 generiert der Prozess 200 einen Empfänger-Authentifizierungscode mindestens teilweise als Reaktion auf den modifizierten Block von Daten. In einem oder mehreren Beispielen kann ein Authentifizierungsabschnitt eines authentifizierten Verschlüsselungsprozesses auf den modifizierten Block von Daten angewendet werden, der den EDC einschließt, um den Empfänger-Authentifizierungscode zu generieren. Nicht einschränkende Beispiele für einen Authentifizierungsabschnitt schließen GCM, CWC-Modus, CCM-Modus, OCB-Modus oder Poly1305 ein. Eine Grundfunktion kann verwendet werden, um den Empfänger-Authentifizierungscode, wie GHASHH-, GCTRK- und MSBt-Funktionen, die bei AES-GCM verwendet werden, zu generieren.
  • Bei Vorgang 210 generiert der Prozess 200 einen authentifizierten verschlüsselten Block von Daten mindestens teilweise als Reaktion auf den Block von Daten und den generierten Empfänger-Authentifizierungscode. In einem oder mehreren Beispielen kann der Prozess 200 den Block von Daten und den generierten Empfänger-Authentifizierungscode zuordnen (z. B. durch Markieren des verschlüsselten Blocks von Daten mit dem Authentifizierungscode, ohne Einschränkung), um den authentifizierten Verschlüsselungsblock von Daten zu generieren.
  • Bei Vorgang 210 überträgt der Prozess 200 optional den bei Vorgang 210 generierten authentifizierten verschlüsselten Block von Daten.
  • 3 ist ein Flussdiagramm, das einen Prozess 300 für eine Empfangsseite von authentifizierter Verschlüsselung mit EDC gemäß einem oder mehreren Beispielen darstellt.
  • Bei Vorgang 302 empfängt der Prozess 300 optional einen authentifizierten verschlüsselten Block von Daten. Der authentifizierte verschlüsselte Block von Daten kann zum Beispiel gemäß dem Prozess 200 generiert werden.
  • Bei Vorgang 304 generiert der Prozess 300 Klartextdaten mindestens teilweise als Reaktion auf das Anwenden eines Entschlüsselungsprozesses auf einen Chiffriertext, der im authentifizierten verschlüsselten Block von Daten eingeschlossen ist. In einem oder mehreren Beispielen kann der Entschlüsselungsprozess ein Abschnitt eines authentifizierten Entschlüsselungsprozesses sein (z. B. Entschlüsselung, wie sie in AES, RSA, Serpent, Datenverschlüsselungsstandard (Data Encryption Standard, DES), ChaCha20 symmetric cipher oder Diffie-Hellman verwendet wird, ohne Einschränkung).
  • Bei Vorgang 306 generiert der Prozess 300 einen empfängermodifizierten Block von Daten mindestens teilweise als Reaktion auf das Hinzufügen eines Empfänger-Fehlererkennungscodes zu einem Empfängerblock von Daten. Der Empfängerblock von Daten kann ein authentifizierter verschlüsselter Block von Daten sein, einen solchen einschließen oder einem solchen im Wesentlichen entsprechen.
  • In einem oder mehreren Beispielen wird der Empfänger-EDC aus den in Vorgang 304 generierten Klartextdaten abgeleitet. In einem oder mehreren Beispielen ein erster Abschnitt des Empfängerblocks von Daten, die nicht verschlüsselt sind (zugeordnete Daten), und ein zweiter Abschnitt des Datenblocks schließt Daten ein, die verschlüsselt sind, nämlich Chiffriertextdaten. In einem oder mehreren Beispielen kann der Empfänger-EDC einem Abschnitt des Empfängerblocks von Daten hinzugefügt werden, der dem Abschnitt des Senderblocks von Daten, in den der Sender-EDC eingefügt wurde, entspricht oder ihn ergänzt.
  • Bei Vorgang 308 generiert der Prozess 300 einen Empfänger-Authentifizierungscode mindestens teilweise als Reaktion auf den modifizierten Block von Daten. In einem oder mehreren Beispielen kann ein Authentifizierungsabschnitt eines authentifizierten Entschlüsselungsprozesses auf den empfängermodifizierten Block von Daten angewendet werden, um den Sender-Authentifizierungscode zu generieren, wie vorstehend erörtert.
  • Bei Vorgang 310 erkennt der Prozess 300 ein Vorhandensein oder Nichtvorhandensein von fehlerhaften Daten im modifizierten Block von Daten mindestens teilweise als Reaktion auf einen Hinweis auf einen Unterschied zwischen einem Sender-Authentifizierungscode (mit dem authentifizierten verschlüsselten Block von Daten bei Vorgang 302 empfangen) und dem Empfänger-Authentifizierungscode (bei Vorgang 308 generiert).
  • Es gibt keine Einschränkung der Anzahl und Gründe, warum fehlerhafte Daten erkannt werden können. Nicht einschränkende Beispiele schließen ein: Daten wurden während der Übertragung fehlerhaft, Daten wurden während eines Verschlüsselungsprozesses fehlerhaft, Daten wurden während eines Entschlüsselungsprozesses fehlerhaft, Daten wurden absichtlich manipuliert oder ein Block von Daten, die authentifiziert wurden, wurde nicht über einen offenbarten authentifizierten Verschlüsselungsalgorithmus authentifiziert, der Ende-zu-Ende-Datenintegrität bereitstellt.
  • 4 ist ein Funktionsflussblockdiagramm, das einen Funktionsfluss einer Übertragungsseite 400 eines Kommunikationssystems darstellt, das authentifizierte Verschlüsselung mit EDC gemäß einem oder mehreren Beispielen verwendet. Die Übertragungsseite 400 schließt einen Prozessor 402 in Kommunikation mit einem optionalen Sender 414 ein, um Klartextdaten 416 als authentifizierte verschlüsselte Daten 426 zu übertragen.
  • Der Prozessor 402 ist allgemein konfiguriert, um authentifizierte verschlüsselte Daten 426 mindestens teilweise als Reaktion auf das Anwenden eines authentifizierten Verschlüsselungsalgorithmus mit EDC 434 (Algorithmus 434) auf Klartextdaten 416 zu generieren. 4 stellt verschiedene Abhängigkeiten von Funktionsblöcken zum Durchführen des Algorithmus 434 dar, der ein authentifizierter Verschlüsselungsalgorithmus mit EDC ist. Nach dem Empfangen von Klartextdaten 416 wird bei Block 404 ein Verschlüsselungsalgorithmus auf die Klartextdaten 416 angewendet, um Chiffriertextdaten 428 zu generieren. Ein solcher Verschlüsselungsalgorithmus kann als ein nicht einschränkendes Beispiel ein Verschlüsselungsabschnitt eines authentifizierten Verschlüsselungsalgorithmus sein, wie hierin erörtert. Ein EDC-Generierungsalgorithmus zum Ableiten eines Fehlererkennungscodes wird bei Block 406 auf die Klartextdaten 416 angewendet, um einen Sender-EDC 420 zu generieren.
  • Die Chiffriertextdaten 428 werden mit dem Sender zugeordneten Daten 430 in einem Addiererblock 432 kombiniert, um den Senderblock von Daten 418 zu generieren. Der Block von Daten 418 kann verschiedene Zeichenfolgen einschließen, die die Chiffriertextdaten 428 und die dem Sender zugeordneten Daten 430 sowie andere umfassen. In einem oder mehreren Beispielen können die dem Sender zugeordneten Daten 430 Daten sein, die zur Authentifizierung verwendet werden, aber weder verschlüsselt sind noch, in einem oder mehreren Beispielen, übertragen werden, ohne Einschränkung. Die eingegebenen Daten 430 können Netzwerkprotokolldaten für ein spezifisches Kommunikationsprotokoll unter Verwendung des Algorithmus 434 einschließen, um Kommunikation, wie Adressen, Anschlüsse, Sequenznummern, Protokoll- und Versionsnummern, zu verschlüsseln und zu authentifizieren. Zusätzlich oder alternativ können die dem Sender zugeordneten Daten 430 ein Feld einschließen, das die Handhabung der Klartextdaten 416 beschreibt.
  • Der Sender-EDC 420 wird mit dem Senderblock von Daten 418 an dem Addiererblock 408 kombiniert, um den sendermodifizierten Block von Daten 422 zu generieren. Um den Sender-EDC 420 und den Senderblock von Daten 418 an dem Addiererblock 408 zu kombinieren, kann der Sender-EDC 420 in einen beliebigen Abschnitt des Senderblocks von Daten 418 eingefügt werden. 4 stellt zwei Signalpfade für den Senderblock von Daten 418 dar: einen ersten Signalpfad zu dem Addiererblock 408, wobei der Sender-EDC 420 mit dem Senderblock von Daten 418 kombiniert wird, um einen sendermodifizierten Block von Daten 422 zu generieren, und einen zweiten Signalpfad zu dem Addiererblock 412, wo er mit dem Sender-Authentifizierungscode 424 kombiniert wird. Die Instanz des Senderblocks von Daten 418, die dem Addiererblock 408 und dem Authentifizierungsblock 410 als sendermodifizierter Block von Daten 422 übermittelt wird, wird schließlich durch den Prozess des Generierens des Sender-Authentifizierungscodes 424 umgewandelt. Die Instanz des Senderblocks von Daten 418, die dem Addiererblock 412 übermittelt werden, wird weder von dem Sender-EDC 420 modifiziert noch transformiert, wie die Instanz des Senderblocks von Daten 418, die in den Addiererblock 408 eingegeben wird. Während der Sender-EDC 420 verwendet wird, um den sendermodifizierten Block von Daten 422 und den Sender-Authentifizierungscode 424 zu generieren, wird er weder von dem Senderblock von Daten 418 verwendet, noch ist er darin eingeschlossen, und der Senderblock von Daten 418 kann ohne den Sender-EDC 420 übertragen werden.
  • Ein Authentifizierungsalgorithmus zum Ableiten eines Codes wird bei Block 410 auf den sendermodifizierten Block von Daten 422 angewendet, um den Sender-Authentifizierungscode 424 zu generieren. Der Sender-Authentifizierungscode 424 wird mit dem Senderblock von Daten 418 an dem Addierer 412 kombiniert, um authentifizierte verschlüsselte Daten 426 zu generieren (z. B. ist der Senderblock von Daten 418 mit dem Sender-EDC 420 markiert, ohne Einschränkung). In einem oder mehreren Beispielen kann ein optionaler Sender 414 zur Übertragung der authentifizierten verschlüsselten Daten 426 bereitgestellt sein.
  • 5 ist ein Funktionsflussblockdiagramm, das einen Funktionsfluss einer Empfangsseite 500 eines Kommunikationssystems darstellt, das eine authentifizierte Verschlüsselung mit EDC gemäß einem oder mehreren Beispielen verwendet. Die Empfangsseite 500 schließt den Prozessor 512 ein, um das Vorhandensein oder Nichtvorhandensein von fehlerhaften Daten in empfangenen authentifizierten verschlüsselten Daten 514 zu erkennen.
  • Der Prozessor 512 ist allgemein konfiguriert, um einen Hinweis 524 auf das Vorhandensein oder Nichtvorhandensein von fehlerhaften Daten in authentifizierten verschlüsselten Daten 514 mindestens teilweise als Reaktion auf das Anwenden eines authentifizierten Entschlüsselungsalgorithmus mit EDC 532 (Algorithmus 532) auf die authentifizierten verschlüsselten Daten 514 zu generieren.
  • Klartextdaten 516 werden durch Anwenden eines Entschlüsselungsalgorithmus auf Chiffriertextdaten der authentifizierten verschlüsselten Daten 514 am Entschlüsselungsblock 504 generiert. Ein Algorithmus zum Ableiten eines EDC wird bei Block 502 auf die Klartextdaten 516 angewendet, um einen EDC 518 zu generieren. Der EDC 518, die authentifizierten verschlüsselten Daten 514 und die dem Empfänger zugeordneten Daten 526 (die den gleichen oder einen anderen Inhalt wie/als die dem Sender zugeordneten Daten 430 aufweisen können) werden bei Block 528 kombiniert, um den empfängermodifizierten Block von Daten 520 zu generieren. Ein Authentifizierungsalgorithmus zum Ableiten eines Codes wird bei Block 506 auf den empfängermodifizierten Block von Daten 520 angewendet, um den Empfänger-Authentifizierungscode 510 zu generieren.
  • Der Empfänger-Authentifizierungscode 510 wird mit dem Sender-Authentifizierungscode 522 der authentifizierten verschlüsselten Daten 514 und einem Hinweis 524 auf ein bei Block 530 generiertes Ergebnis verglichen. Der Vergleich kann, als ein nicht einschränkendes Beispiel, gemäß einem Authentifizierungsprozess durchgeführt werden. Ein Detektor 508 verwendet eine Ausgabe oder ein Ergebnis des Authentifizierungsprozesses, wie durch den Hinweis 524 angegeben, um ein Vorhandensein oder Nichtvorhandensein von fehlerhaften Daten in den authentifizierten verschlüsselten Daten 514 zu erkennen.
  • 6 ist ein Funktionsblockdiagramm, das eine Datentransformation durch einen Algorithmus 600 zur authentifizierten Verschlüsselung mit EDC gemäß einem oder mehreren Beispielen darstellt. Der durch 6 dargestellte Ablauf des Algorithmus 600 ergänzt allgemein den durch 4 dargestellten Ablauf des Algorithmus 434.
  • In dem durch 6 dargestellten spezifischen nicht einschränkenden Beispiel beginnt der Algorithmus 600 mit dem Empfang von Klartextdaten P (Datenblock 602), ähnlich dem Empfang von Klartextdaten 416 von 4.
  • Eine Ableitungsfunktion EDC Gen (Funktionsblock 606) nimmt die Klartextdaten P als Eingabe und generiert EDC-Daten EDC (Datenblock 618). Chiffriertextdaten C (Datenblock 608) werden durch eine Verschlüsselungsfunktion Encrypt Gen (Funktionsblock 604) generiert, die die Klartextdaten P als Eingabe nimmt.
  • Ein modifizierter Block von Daten S' (Block 612) schließt die Chiffriertextdaten C, zugeordnete Daten A (Datenblock 610) und die EDC-Daten EDC (hier mit den zugeordneten Daten A eingefügt) ein. Die Primärbezeichnung des modifizierten Blocks von Daten S' wird hierin verwendet, um einen modifizierten Block von Daten S' anzugeben, der durch Hinzufügen der EDC-Daten EDC zu einem Block von Daten S generiert wird.
  • Ein Authentifizierungscode TT (Datenblock 616) wird durch eine Ableitungsfunktion Auth Gen (Funktionsblock 614) generiert, die den modifizierten Block von Daten S' als Eingabe nimmt. Der Block von Daten S und der Authentifizierungscode TT werden bei Block 622 kombiniert, um einen authentifizierten verschlüsselten Block von Daten S'' zu generieren.
  • 7 ist ein Funktionsblockdiagramm, das eine Datentransformation durch einen Algorithmus 700 zur authentifizierten Verschlüsselung mit EDC gemäß einem oder mehreren Beispielen darstellt. Der durch 7 dargestellte Ablauf des Algorithmus 700 ergänzt allgemein den durch 5 dargestellten Ablauf des Algorithmus 532.
  • In dem durch 7 dargestellten spezifischen nicht einschränkenden Beispiel beginnt der Algorithmus 700 mit dem Erhalten eines Blocks von Daten S (Datenblock 702) und eines Sender-Authentifizierungscodes TT. Der Block von Daten S kann authentifizierte verschlüsselte Daten, wie die authentifizierten verschlüsselten Daten 426 von 4, die authentifizierten verschlüsselten Daten 512 von 5 oder die authentifizierten verschlüsselten Daten S'' von 6, sein oder von solchen erhalten werden. Der Block von Daten S schließt die Chiffriertextdaten C (Datenblock 706) und die zugeordneten Daten A (Datenblock 708) ein.
  • Klartextdaten P (Datenblock 712) werden durch eine Entschlüsselungsfunktion Decrypt Gen (Funktionsblock 710) generiert, die die Chiffriertextdaten C als Eingabe nimmt. Die Sender-EDC-Daten EDC (Datenblock 726) werden durch eine Ableitungsfunktion EDC Gen (Funktionsblock 714) generiert, die die generierten Klartextdaten P als Eingabe nimmt.
  • Ein modifizierter Block von Daten S' (Datenblock 716) wird durch Einfügen der Sender-EDC-Daten EDC in den Block von Daten S generiert, der die Chiffriertextdaten C und die zugeordneten Daten A einschließt. Die Sender-EDC-Daten EDC werden bei dem Block von Daten S eingefügt (hier einem Abschnitt des Blocks von Daten S, der die zugeordneten Daten A einschließt, aber ein beliebiger Abschnitt/beliebige Abschnitte des Blocks von Daten S oder daran angehängte oder darauf angewendete (z. B. zum Anwenden einer Verschlüsselung oder Transformation, ohne Einschränkung, verwendet) werden in Betracht gezogen), um den modifizierten Block von Daten S' zu generieren.
  • Ein Authentifizierungscode TR (Datenblock 720) wird durch eine Ableitungsfunktion Auth Gen (Funktionsblock 718) generiert, die einen modifizierten Block von Daten S' als Eingabe nimmt. Der Authentifizierungscode TR wird mit dem Authentifizierungscode TT (Datenblock 704) verglichen (Funktionsblock 724), der zusammen mit dem Block von Daten S erhalten wird. Das Ergebnis des Vergleichs ist ein Hinweis auf das Vorhandensein oder Nichtvorhandensein von fehlerhaften Daten bei dem Block von Daten S.
  • Es versteht sich für den Durchschnittsfachmann, dass Funktionselemente von hierin offenbarten Beispielen (z. B. Funktionen, Vorgänge, Handlungen, Prozesse und/oder Verfahren, ohne Einschränkung) in jeder geeigneten Hardware, Software, Firmware oder Kombinationen davon implementiert werden können. 8 veranschaulicht nicht einschränkende Beispiele für Implementierungen von hierin offenbarten Funktionselementen. In verschiedenen Beispielen können einige oder alle Abschnitte der hierin offenbarten Funktionselemente durch Hardware durchgeführt werden, die speziell zum Ausführen der Funktionselemente konfiguriert ist.
  • 8 ist ein Blockdiagramm einer Schaltlogik 800, die in verschiedenen Beispielen verwendet werden kann, um verschiedene hierin offenbarte Funktionen, Vorgänge, Handlungen, Prozesse oder Verfahren zu implementieren. Die Schaltlogik 800 schließt einen oder mehrere Prozessoren 802 (hierin manchmal als „Prozessoren 802“ bezeichnet) ein, die betriebsfähig mit einer oder mehreren Datenspeicherungsvorrichtungen (hierin manchmal als „Speicher 804“ bezeichnet) gekoppelt sind. Der Speicher 804 schließt einen darauf gespeicherten maschinenausführbaren Code 806 ein, und die Prozessoren 802 schließen die Logikschaltlogik 808 ein. Der maschinenausführbare Code 806 schließt Informationen ein, die Funktionselemente beschreiben, die durch die Logikschaltlogik 808 implementiert (z. B. durchgeführt) werden können. Die Logikschaltlogik 808 ist angepasst, um die durch den maschinenausführbaren Code 806 beschriebenen Funktionselemente zu implementieren (z. B. durchzuführen). Die Schaltlogik 800 sollte beim Ausführen der durch den maschinenausführbaren Code 806 beschriebenen Funktionselemente als Spezialhardware betrachtet werden, die zum Ausführen von hierin offenbarten Funktionselementen konfiguriert ist. In verschiedenen Beispielen können die Prozessoren 802 dazu konfiguriert sein, die durch den maschinenausführbaren Code 806 beschriebenen Funktionselemente sequenziell, gleichzeitig (z. B. auf einer oder mehreren unterschiedlichen Hardwareplattformen) oder in einem oder mehreren parallelen Prozessströmen durchzuführen.
  • Wenn durch die Logikschaltlogik 808 der Prozessoren 802 implementiert, ist der maschinenausführbare Code 806 dazu konfiguriert, die Prozessoren 802 anzupassen, um Vorgänge von hierin offenbarten Beispielen durchzuführen. Als Beispiel kann der maschinenausführbare Code 806 dazu konfiguriert sein, die Prozessoren 802 anzupassen, zumindest einen Abschnitt oder eine Gesamtheit der in Bezug auf das Kommunikationssystem 100, die Übertragungsseite 400 und die Empfängerseite 500 erörterten Merkmale und Funktionen durchzuführen.
  • Als ein spezifisches, nicht einschränkendes Beispiel kann der maschinenausführbare Code 806 dazu konfiguriert sein, die Prozessoren 802 anzupassen, zumindest einen Abschnitt der EDC-Generierung und authentifizierten Verschlüsselung unter Verwendung des hierin erörterten EDC durchzuführen, einschließlich zum Beispiel des Prozesses 200 von 2, des Prozesses 300 von 3, des Algorithmus 600 und des Algorithmus 700.
  • Die Prozessoren 802 können einen Universalprozessor, einen Spezialprozessor, eine zentrale Verarbeitungseinheit (CPU), einen Mikrocontroller, eine speicherprogrammierbare Steuerung (SPS), einen Digitalsignalprozessor (DSP), eine anwendungsspezifische integrierte Schaltung (ASIC), eine anwenderprogrammierbare Gatteranordnung (FPGA) oder eine andere programmierbare Logikvorrichtung, diskrete Gatter- oder Transistorlogik, diskrete Hardwarekomponenten, eine andere programmierbare Vorrichtung oder eine beliebige Kombination davon, die zum Durchführen der hierin offenbarten Funktionen ausgelegt ist, einschließen. Ein Universalcomputer, einschließlich eines Prozessors, wird als Spezialcomputer angesehen, während der Universalcomputer dazu konfiguriert ist, Funktionselemente entsprechend dem maschinenausführbaren Code 806 (z. B. Softwarecode, Firmwarecode, Hardwarebeschreibungen) auszuführen, der sich auf Beispiele der vorliegenden Offenbarung bezieht. Es wird darauf hingewiesen, dass ein Universalprozessor (der hierin auch als Host-Prozessor oder einfach als Host bezeichnet werden kann) ein Mikroprozessor sein kann, aber alternativ können die Prozessoren 802 jeden herkömmlichen Prozessor, jede herkömmliche Steuerung, jeden herkömmlichen Mikrocontroller oder jede herkömmliche Zustandsmaschine einschließen. Die Prozessoren 802 können auch als eine Kombination von Rechenvorrichtungen, wie eine Kombination aus einem DSP und einem Mikroprozessor, eine Vielzahl von Mikroprozessoren, ein oder mehrere Mikroprozessoren in Verbindung mit einem DSP-Kern oder eine beliebige andere derartige Konfiguration implementiert sein.
  • In verschiedenen Beispielen schließt der Speicher 804 eine flüchtige Datenspeicherung (z. B. Direktzugriffsspeicher (RAM)), nichtflüchtige Datenspeicherung (z. B. Flash-Speicher, ein Festplattenlaufwerk, ein Solid-State-Laufwerk, löschbaren programmierbaren Nur-LeseSpeicher (EPROM), ohne Einschränkung) ein. In verschiedenen Beispielen können die Prozessoren 802 und der Speicher 804 in einer einzelnen Vorrichtung (z. B. einem Halbleitervorrichtungsprodukt, einem System-on-Chip (SoC), ohne Einschränkung) implementiert sein. In verschiedenen Beispielen können die Prozessoren 802 und der Speicher 804 in separaten Vorrichtungen implementiert sein.
  • In verschiedenen Beispielen kann der maschinenausführbare Code 806 computerlesbare Anweisungen (z. B. Softwarecode, Firmwarecode) einschließen. Als ein nicht einschränkendes Beispiel können die computerlesbaren Anweisungen durch den Speicher 804 gespeichert werden, es kann durch die Prozessoren 802 direkt auf sie zugegriffen werden und sie können durch die Prozessoren 802 unter Verwendung mindestens der Logikschaltlogik 808 ausgeführt werden. Ebenfalls als ein nicht einschränkendes Beispiel können die computerlesbaren Anweisungen auf dem Speicher 804 gespeichert, zur Ausführung an eine Speichervorrichtung (nicht gezeigt) übertragen und durch die Prozessoren 802 unter Verwendung mindestens der Logikschaltlogik 808 ausgeführt werden. Dementsprechend schließt die Logikschaltlogik 808 in verschiedenen Beispielen eine elektrisch konfigurierbare Logikschaltlogik 808 ein.
  • In verschiedenen Beispielen kann der maschinenausführbare Code 806 Hardware (z. B. eine Schaltlogik) beschreiben, die in der Logikschaltlogik 808 implementiert werden soll, um die Funktionselemente durchzuführen. Diese Hardware kann auf einer Vielfalt von Abstraktionsebenen beschrieben werden, von Low-Level-Transistor-Layouts bis hin zu High-Level-Beschreibungssprachen. Auf einer hohen Abstraktionsebene kann eine Hardwarebeschreibungssprache (HDL), wie eine IEEE-Standard-Hardwarebeschreibungssprache (HDL), verwendet werden. Als nicht einschränkende Beispiele können Verilog, SystemVerilog oder Very Large Scale Integration (VLSI)-Hardwarebeschreibungssprachen (VHDL) verwendet werden.
  • HDL-Beschreibungen können nach Belieben in Beschreibungen auf einer beliebigen von zahlreichen anderen Abstraktionsebenen umgewandelt werden. Als ein nicht einschränkendes Beispiel kann eine Beschreibung auf hoher Ebene in eine Beschreibung auf Logikebene, wie eine Register-Übertragungssprache (RTL), eine Beschreibung auf Gatterebene (GL), eine Beschreibung auf Layoutebene oder eine Beschreibung auf Maskenebene, umgewandelt werden. Als ein nicht einschränkendes Beispiel können Mikrovorgänge, die durch Hardwarelogikschaltlogiken (z. B. Gatter, Flip-Flops, Register, ohne Einschränkung) der Logikschaltlogik 808 durchgeführt werden sollen, in einer RTL beschrieben und dann von einem Synthesewerkzeug in eine GL-Beschreibung umgewandelt werden, und die GL-Beschreibung kann von einem Platzierungs- und Routing-Werkzeug in eine Beschreibung auf Layoutebene umgewandelt werden, die einem physischen Layout einer integrierten Schaltung einer programmierbaren Logikvorrichtung, diskreten Gatter- oder Transistorlogik, diskreten Hardwarekomponenten oder Kombinationen davon entspricht. Dementsprechend kann in verschiedenen Beispielen der maschinenausführbare Code 806 eine HDL-, eine RTL-, eine GL-Beschreibung, eine Beschreibung auf Maskenebene, eine andere Hardwarebeschreibung oder eine beliebige Kombination davon einschließen.
  • In Beispielen, in denen der maschinenausführbare Code 806 eine Hardwarebeschreibung (auf beliebiger Abstraktionsebene) einschließt, kann ein System (nicht gezeigt, aber den Speicher 804 einschließend) dazu konfiguriert sein, die durch den maschinenausführbaren Code 806 beschriebene Hardwarebeschreibung zu implementieren. Als ein nicht einschränkendes Beispiel können die Prozessoren 802 eine programmierbare Logikvorrichtung (z. B. eine FPGA oder eine PLC) einschließen, und die Logikschaltlogik 808 kann elektrisch gesteuert werden, um eine der Hardwarebeschreibung entsprechende Schaltlogik in der Logikschaltlogik 808 zu implementieren. Ebenfalls als ein nicht einschränkendes Beispiel kann die Logikschaltlogik 808 eine festverdrahtete Logik einschließen, die von einem Fertigungssystem (nicht gezeigt, aber den Speicher 804 einschließend) gemäß der Hardwarebeschreibung des maschinenausführbaren Codes 806 gefertigt ist. Diese Fertigung einer festverdrahteten Logik kann hierin auch als permanente Konfiguration einer Logikschaltlogik eines Prozessors gekennzeichnet sein.
  • Ungeachtet dessen, ob der maschinenausführbare Code 806 computerlesbare Anweisungen oder eine Hardwarebeschreibung einschließt, ist die Logikschaltlogik 808 angepasst, um die durch den maschinenausführbaren Code 806 beschriebenen Funktionselemente durchzuführen, wenn die Funktionselemente des maschinenausführbaren Codes 806 implementiert werden. Es sei darauf hingewiesen, dass, obwohl eine Hardwarebeschreibung Funktionselemente möglicherweise nicht direkt beschreibt, eine Hardwarebeschreibung indirekt Funktionselemente beschreibt, welche die durch die Hardwarebeschreibung beschriebenen Hardwareelemente durchführen können.
  • Ein Durchschnittsfachmann wird verstehen, dass offenbarte Beispiele angewendet werden können, um die Authentifizierung und/oder Datenintegrität in vielen Zusammenhängen, nicht nur den hierin erörterten spezifischen Beispielen, zu erhöhen. Als ein nicht einschränkendes Beispiel kann sie in einer Speicherverschlüsselungsanwendung verwendet werden, bei der in einem Speicher ruhende Daten (Data-at-rest) unter Verwendung einer Blockchiffrierung, wie Xor-encrypt-xor (AES-XEX) oder einem XEX-basierten Tweaked-Codebuch-Modus mit Chiffriertext-Versiegelung (AES-XTS) verschlüsselt werden, und die Data-at-rest unter Verwendung eines Secure Hash-Algorithmus, wie SHA3-KMAC-256 oder eines anderen SHA, authentifiziert werden. Eine solche Authentifizierung kann mit dem EDC erweitert werden, sodass ein von einer SHA-Engine generierter MAC aus einem EDCerweiterten Eingabedatenblock generiert wird. Als ein nicht einschränkendes Beispiel kann eine solche Erweiterung auf authentifizierte Verschlüsselung von Data-at-rest an einem DRAM, der an eine Host-CPU angebunden ist, und einem Dynamic Random Access Memory (DRAM), der über CXL-Schnittstellen angebunden ist, angewendet werden.
  • Wie in der vorliegenden Offenbarung verwendet, kann der Begriff „Kombination“ in Bezug auf eine Vielzahl von Elementen eine Kombination aller Elemente oder eine beliebige von verschiedenen unterschiedlichen Unterkombinationen einiger der Elemente einschließen. Zum Beispiel kann die Formulierung „A, B, C, D oder Kombinationen davon“ Bezug nehmen auf eines von A, B, C oder D; die Kombination von jedem von A, B, C und D und jede Unterkombination von A, B, C oder D, wie A, B und C; A, B und D; A, C und D; B, C und D; A und B; A und C; A und D; B und C; B und D oder C und D.
  • Begriffe, die in der vorliegenden Offenbarung und insbesondere in den beiliegenden Ansprüchen (z. B. Hauptteilen der beiliegenden Ansprüche, ohne Einschränkung) verwendet werden, sind allgemein als „offene“ Begriffe gedacht (z. B. sollte der Begriff „einschließlich“ als „einschließlich, ohne darauf beschränkt zu sein“ interpretiert werden, der Begriff „aufweisend“ sollte als „mindestens aufweisend“ interpretiert werden, der Begriff „schließt ein“ sollte als „schließt ein, ohne darauf beschränkt zu sein“ interpretiert werden, ohne Einschränkung). Wie hierin verwendet, bedeutet der Begriff „jedes" einige oder eine Gesamtheit. Wie hierin verwendet, bedeutet der Begriff „alle“ eine Gesamtheit.
  • Außerdem wird, wenn eine bestimmte Anzahl einer eingeführten Anspruchsangabe beabsichtigt ist, diese Absicht ausdrücklich im Anspruch angegeben, und in Ermangelung einer solchen Angabe liegt keine solche Absicht vor. Als Verständnishilfe können zum Beispiel die folgenden beiliegenden Ansprüche die Verwendung der einleitenden Formulierungen „mindestens eine/r/s“ und „eine/r/s oder mehrere“ zum Einführen von Anspruchsangaben enthalten. Die Verwendung solcher Formulierungen sollte jedoch nicht ausgelegt werden, um zu implizieren, dass die Einführung einer Anspruchsangabe durch die unbestimmten Artikel „ein“ oder „eine“ einen bestimmten Anspruch, der eine solche eingeführte Anspruchsangabe enthält, auf Beispiele beschränkt, die nur eine solche Angabe enthalten, selbst wenn derselbe Anspruch die einleitenden Formulierungen „eine/r/s oder mehrere“ oder „mindestens eine/r/s“ und unbestimmte Artikel, wie „ein“ oder „eine“, einschließt (z. B. soll „ein“ und/oder „eine“ so interpretiert werden, dass es „mindestens eine/r/s“ oder „eine/r/s oder mehrere“ bedeutet, ohne Einschränkung); gleiches gilt für die Verwendung von bestimmten Artikeln, die zur Einführung von Anspruchsangaben verwendet werden.
  • Auch wenn eine bestimmte Anzahl einer eingeführten Anspruchsangabe explizit angegeben wird, wird der Fachmann zusätzlich erkennen, dass eine solche Angabe dahin gehend interpretiert werden sollte, dass sie mindestens die angegebene Anzahl bedeutet (z. B. bedeutet die bloße Angabe von „zwei Angaben“ ohne andere Modifikatoren mindestens zwei Angaben oder zwei oder mehr Angaben, ohne Einschränkung). Des Weiteren ist in den Fällen, in denen eine Konvention analog zu „mindestens eines von A, B und C usw.“ oder „eines oder mehrere von A, B und C usw.“ verwendet wird, eine solche Konstruktion allgemein A allein, B allein, C allein, A und B zusammen, A und C zusammen, B und C zusammen oder A, B und C zusammen usw. einschließen soll.
  • Ferner sollte jedes disjunkte Wort oder jede disjunkte Formulierung, das bzw. die zwei oder mehr alternative Begriffe darstellt, sei es in der Beschreibung, den Ansprüchen oder den Zeichnungen, dahin gehend verstanden werden, dass die Möglichkeit des Einschließens eines der Begriffe, des einen oder des anderen Begriffs oder beider Begriffe in Betracht gezogen wird. Zum Beispiel sollte die Formulierung „A oder B“ so verstanden werden, dass sie die Möglichkeiten „A“ oder „B“ oder „A und B“ einschließt.
  • Zusätzliche, nicht einschränkende Beispiele der Offenbarung schließen ein:
    • Beispiel 1: Eine Einrichtung, umfassend: einen Prozessor, der konfiguriert ist zum:
      • Generieren eines empfängermodifizierten Blocks von Data-at-rest mindestens teilweise als Reaktion auf das Hinzufügen eines Fehlererkennungscodes zu einem Block von Daten; Generieren eines Empfänger-Authentifizierungscodes mindestens teilweise als Reaktion auf den empfängermodifizierten Block von Daten und Generieren eines Hinweises auf einen Unterschied zwischen dem Empfänger-Authentifizierungscode und einem Sender-Authentifizierungscode.
    • Beispiel 2: Die Einrichtung gemäß Beispiel 1, wobei der Prozessor konfiguriert ist zum: Generieren von Klartextdaten mindestens teilweise als Reaktion auf das Anwenden eines Entschlüsselungsabschnitts eines authentifizierten Entschlüsselungsalgorithmus auf Chiffriertextdaten, die in einem authentifizierten verschlüsselten Block von Daten enthalten sind; und Generieren des Fehlererkennungscodes mindestens teilweise als Reaktion auf die Klartextdaten.
    • Beispiel 3. Die Einrichtung gemäß einem der Beispiele 1 und 2, wobei der Prozessor dazu konfiguriert ist, einen Algorithmus zum Generieren des Fehlererkennungscodes aus den Klartextdaten durchzuführen.
    • Beispiel 4: Die Einrichtung gemäß einem der Beispiele 1 bis 3, wobei der authentifizierte Entschlüsselungsalgorithmus AES-GCM ist.
    • Beispiel 5: Die Einrichtung gemäß einem der Beispiele 1 bis 4, wobei der Prozessor an einem Kommunikationssystem bereitgestellt ist.
    • Beispiel 6: Die Einrichtung gemäß einem der Beispiele 1 bis 5, wobei das Kommunikationssystem für eine Compute Express Link-Verschaltung (CXL-Verschaltung) ist.
    • Beispiel 7: Die Einrichtung gemäß einem der Beispiele 1 bis 6, wobei das Kommunikationssystem für eine Peripheral Component Interconnect Express-Verschaltung (PCIe-Verschaltung) ist.
    • Beispiel 8: Die Einrichtung gemäß einem der Beispiele 1 bis 7, wobei das Hinzufügen des Fehlererkennungscodes zu dem Block von Daten das Hinzufügen des Fehlererkennungscodes zu einem Abschnitt des Blocks von Daten für zusätzliche authentifizierte Daten umfasst.
    • Beispiel 9: Eine Einrichtung, umfassend: einen Prozessor, wobei der Prozessor konfiguriert ist zum: Generieren eines Fehlererkennungscodes mindestens teilweise als Reaktion auf Klartextdaten; Generieren von Chiffriertextdaten mindestens teilweise als Reaktion auf das Anwenden eines Verschlüsselungsalgorithmus auf die Klartextdaten; Generieren eines sendermodifizierten Blocks von Daten mindestens teilweise als Reaktion auf das Hinzufügen des Fehlererkennungscodes zu einem Block von Daten, der die Chiffriertextdaten einschließt; und Generieren eines Authentifizierungscodes mindestens teilweise als Reaktion auf den sendermodifizierten Block von Daten; Generieren eines authentifizierten verschlüsselten Blocks von Daten mindestens teilweise als Reaktion auf den Authentifizierungscode; und einen Sender, wobei der Sender dazu konfiguriert ist, einen authentifizierten verschlüsselten Block von Daten zu übertragen.
    • Beispiel 10: Die Einrichtung gemäß Beispiel 9, wobei der Prozessor dazu konfiguriert ist, eine Ableitungsfunktion durchzuführen, um den Fehlererkennungscode aus den Klartextdaten zu generieren.
    • Beispiel 11: Die Einrichtung gemäß einem der Beispiele 9 und 10, wobei der Prozess dazu konfiguriert ist, einen authentifizierten verschlüsselten Block von Daten mindestens teilweise als Reaktion auf den Block von Daten und den Authentifizierungscode zu generieren.
    • Beispiel 12: Die Einrichtung gemäß einem der Beispiele 9 bis 11, wobei der übertragene Block von Daten die Chiffriertextdaten einschließt.
    • Beispiel 13: Die Einrichtung gemäß einem der Beispiele 9 bis 12, wobei der übertragene Block von Daten den Fehlererkennungscode, der zu dem Block von Daten hinzugefügt wurde, um den sendermodifizierten Block von Daten zu generieren, nicht einschließt.
    • Beispiel 14: Die Einrichtung gemäß einem der Beispiele 9 bis 13, wobei der authentifizierte Verschlüsselungsalgorithmus AES-GCM ist.
    • Beispiel 15: Die Einrichtung gemäß einem der Beispiele 9 bis 14, wobei der Prozessor an einem Kommunikationssystem bereitgestellt ist.
    • Beispiel 16: Die Einrichtung gemäß einem der Beispiele 9 bis 15, wobei das Kommunikationssystem für eine Compute Express Link-Verschaltung (CXL-Verschaltung) ist.
    • Beispiel 17: Die Einrichtung gemäß einem der Beispiele 9 bis 16, wobei das Kommunikationssystem für eine Peripheral Component Interconnect Express-Verschaltung (PCIe-Verschaltung) ist.
    • Beispiel 18: Ein Verfahren, umfassend: Generieren eines empfängermodifizierten Blocks von Daten mindestens teilweise als Reaktion auf das Hinzufügen eines Empfänger-Fehlererkennungscodes zu einem Block von Daten; und Generieren eines Empfänger-Authentifizierungscodes mindestens teilweise als Reaktion auf den empfängermodifizierten Block von Daten und Erkennen eines Vorhandenseins oder Nichtvorhandenseins von fehlerhaften Daten in dem Block von Daten mindestens teilweise als Reaktion auf einen Unterschied zwischen dem Empfänger-Authentifizierungscode und einem Sender-Authentifizierungscode.
    • Beispiel 19. Das Verfahren gemäß Beispiel 18, umfassend: Generieren von Klartextdaten mindestens teilweise als Reaktion auf das Anwenden eines Entschlüsselungsabschnitts eines authentifizierten Entschlüsselungsalgorithmus auf Chiffriertextdaten, die in einem authentifizierten verschlüsselten Block von Daten eingeschlossen sind; und Generieren des Empfänger-Fehlererkennungscodes mindestens teilweise als Reaktion auf die Klartextdaten.
    • Beispiel 20: Das Verfahren gemäß einem der Beispiele 18 und 19, wobei der authentifizierte Entschlüsselungsalgorithmus AES-GCM ist.
    • Beispiel 21: Das Verfahren gemäß einem der Beispiele 18 bis 20, umfassend: Generieren des Empfänger-Fehlererkennungscodes durch Anwenden einer Ableitungsfunktion auf die Klartextdaten.
    • Beispiel 22: Das Verfahren gemäß einem der Beispiele 18 bis 21, umfassend das Empfangen eines authentifizierten verschlüsselten Blocks von Daten an einem Kommunikationssystem.
    • Beispiel 23: Das Verfahren gemäß einem der Beispiele 18 bis 22, wobei das Kommunikationssystem für eine Compute Express Link-Verschaltung (CXL-Verschaltung) ist.
    • Beispiel 24: Das Verfahren gemäß einem der Beispiele 18 bis 23, wobei das Kommunikationssystem für eine Peripheral Component Interconnect Express-Verschaltung (PCIe-Verschaltung) ist.
    • Beispiel 25: Das Verfahren gemäß einem der Beispiele 18 bis 24, wobei das Hinzufügen des Fehlererkennungscodes zu dem Block von Daten das Hinzufügen des Fehlererkennungscodes zu einem Abschnitt des Blocks von Daten für zugeordnete Daten umfasst.
    • Beispiel 26: Ein Verfahren, umfassend: Generieren eines Sender-Fehlererkennungscodes mindestens teilweise als Reaktion auf Klartextdaten; Generieren von Chiffriertextdaten mindestens teilweise als Reaktion auf das Anwenden eines Verschlüsselungsalgorithmus auf die Klartextdaten; Generieren eines sendermodifizierten Blocks von Daten mindestens teilweise als Reaktion auf das Hinzufügen eines Fehlererkennungscodes zu einem Block von Daten, der die Chiffriertextdaten einschließt; Generieren eines Sender-Authentifizierungscodes mindestens teilweise als Reaktion auf den sendermodifizierten Block von Daten; Generieren eines authentifizierten verschlüsselten Blocks von Daten mindestens teilweise als Reaktion auf den Sender-Authentifizierungscode und den Block von Daten und Übertragen des authentifizierten verschlüsselten Blocks von Daten.
    • Beispiel 27: Das Verfahren gemäß Beispiel 26, umfassend das Durchführen einer Ableitungsfunktion zum Generieren des Sender-Fehlererkennungscodes aus den Klartextdaten.
    • Beispiel 28: Das Verfahren gemäß einem der Beispiele 26 und 27, umfassend das Generieren eines authentifizierten verschlüsselten Blocks von Daten mindestens teilweise als Reaktion auf den Block von Daten und den Sender-Authentifizierungscode.
    • Beispiel 29: Das Verfahren gemäß einem der Beispiele 26 bis 28, wobei der Block von Daten des authentifizierten verschlüsselten Blocks von Daten den Fehlererkennungscode, der zu dem Block von Daten hinzugefügt wurde, um den sendermodifizierten Block von Daten zu generieren, nicht einschließt.
    • Beispiel 30: Das Verfahren gemäß einem der Beispiele 26 bis 29, wobei der authentifizierte Verschlüsselungsalgorithmus AES-GCM ist.
    • Beispiel 31: Das Verfahren gemäß einem der Beispiele 26 bis 30, umfassend das Senden eines authentifizierten verschlüsselten Blocks von Daten an einem Kommunikationssystem.
    • Beispiel 32: Das Verfahren gemäß einem der Beispiele 26 bis 31, wobei das Kommunikationssystem für eine Compute Express Link-Verschaltung (CXL-Verschaltung) ist.
    • Beispiel 33: Das Verfahren gemäß einem der Beispiele 26 bis 32, wobei das Kommunikationssystem für eine Peripheral Component Interconnect Express-Verschaltung (PCIe-Verschaltung) ist.
  • Obwohl die vorliegende Offenbarung hierin in Bezug auf bestimmte veranschaulichte Beispiele beschrieben wurde, wird der Durchschnittsfachmann erkennen und anerkennen, dass die vorliegende Erfindung nicht darauf beschränkt ist. Vielmehr können viele Ergänzungen, Löschungen und Modifikationen an den veranschaulichten und beschriebenen Beispielen vorgenommen werden, ohne vom Schutzumfang der Erfindung, wie er nachfolgend zusammen mit ihren rechtlichen Äquivalenten beansprucht wird, abzuweichen. Außerdem können Merkmale eines Beispiels mit Merkmalen eines anderen Beispiels kombiniert werden, aber dennoch noch innerhalb des Schutzumfangs der Erfindung enthalten sein, der durch den Erfinder in Betracht gezogen wird.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 62/705194 [0001]

Claims (33)

  1. Einrichtung umfassend: einen Prozessor, der konfiguriert ist zum: Generieren eines empfängermodifizierten Blocks von Daten mindestens teilweise als Reaktion auf das Hinzufügen eines Fehlererkennungscodes zu einem Block von Daten; Generieren eines Empfänger-Authentifizierungscodes mindestens teilweise als Reaktion auf den empfängermodifizierten Block von Daten und Generieren eines Hinweises auf einen Unterschied zwischen dem Empfänger-Authentifizierungscode und einem Sender-Authentifizierungscode.
  2. Einrichtung nach Anspruch 1, wobei der Prozessor konfiguriert ist zum: Generieren von Klartextdaten mindestens teilweise als Reaktion auf das Anwenden eines Entschlüsselungsabschnitts eines authentifizierten Entschlüsselungsalgorithmus auf Chiffriertextdaten, die in einem authentifizierten verschlüsselten Block von Daten enthalten sind; und Generieren des Fehlererkennungscodes mindestens teilweise als Reaktion auf die Klartextdaten.
  3. Einrichtung nach Anspruch 2, wobei der Prozessor dazu konfiguriert ist, einen Algorithmus zum Generieren des Fehlererkennungscodes aus den Klartextdaten durchzuführen.
  4. Einrichtung nach Anspruch 2, wobei der authentifizierte Entschlüsselungsalgorithmus AES-GCM ist.
  5. Einrichtung nach Anspruch 1, wobei der Prozessor an einem Kommunikationssystem bereitgestellt ist.
  6. Einrichtung nach Anspruch 5, wobei das Kommunikationssystem für eine Compute Express Link-Verschaltung (CXL-Verschaltung) ist.
  7. Einrichtung nach Anspruch 5, wobei das Kommunikationssystem für eine Peripheral Component Interconnect Express-Verschaltung (PCIe-Verschaltung) ist.
  8. Einrichtung nach Anspruch 1, wobei das Hinzufügen des Fehlererkennungscodes zu dem Block von Daten das Hinzufügen des Fehlererkennungscodes zu einem Abschnitt des Blocks von Daten für zusätzliche authentifizierte Daten umfasst.
  9. Einrichtung, umfassend: einen Prozessor, wobei der Prozessor konfiguriert ist zum: Generieren eines Fehlererkennungscodes mindestens teilweise als Reaktion auf Klartextdaten, Generieren von Chiffriertextdaten mindestens teilweise als Reaktion auf das Anwenden eines Verschlüsselungsalgorithmus auf die Klartextdaten; Generieren eines sendermodifizierten Blocks von Daten mindestens teilweise als Reaktion auf das Hinzufügen des Fehlererkennungscodes zu einem Block von Daten, der die Chiffriertextdaten einschließt; und Generieren eines Authentifizierungscodes mindestens teilweise als Reaktion auf den sendermodifizierten Block von Daten; Generieren eines authentifizierten verschlüsselten Blocks von Daten mindestens teilweise als Reaktion auf den Authentifizierungscode; und einen Sender, wobei der Sender dazu konfiguriert ist, einen authentifizierten verschlüsselten Block von Daten zu senden.
  10. Einrichtung nach Anspruch 9, wobei der Prozessor dazu konfiguriert ist, eine Ableitungsfunktion durchzuführen, um den Fehlererkennungscode aus den Klartextdaten zu generieren.
  11. Einrichtung nach Anspruch 9, wobei der Prozess dazu konfiguriert ist, einen authentifizierten verschlüsselten Block von Daten mindestens teilweise als Reaktion auf den Block von Daten und den Authentifizierungscode zu generieren.
  12. Einrichtung nach Anspruch 9, wobei der gesendete Block von Daten die Chiffriertextdaten einschließt.
  13. Einrichtung nach Anspruch 9, wobei der gesendete Block von Daten den Fehlererkennungscode, der zu dem Block von Daten hinzugefügt wurde, um den sendermodifizierten Block von Daten zu generieren, nicht einschließt.
  14. Einrichtung nach Anspruch 9, wobei der authentifizierte Verschlüsselungsalgorithmus AES-GCM ist.
  15. Einrichtung nach Anspruch 9, wobei der Prozessor an einem Kommunikationssystem bereitgestellt ist.
  16. Einrichtung nach Anspruch 15, wobei das Kommunikationssystem für eine Compute Express Link-Verschaltung (CXL-Verschaltung) ist.
  17. Einrichtung nach Anspruch 15, wobei das Kommunikationssystem für eine Peripheral Component Interconnect Express-Verschaltung (PCIe-Verschaltung) ist.
  18. Verfahren, umfassend: Generieren eines empfängermodifizierten Blocks von Daten mindestens teilweise als Reaktion auf das Hinzufügen eines Empfänger-Fehlererkennungscodes zu einem Block von Daten und Generieren eines Empfänger-Authentifizierungscodes mindestens teilweise als Reaktion auf den empfängermodifizierten Block von Daten und Erkennen eines Vorhandenseins oder Nichtvorhandenseins von fehlerhaften Daten in dem Block von Daten mindestens teilweise als Reaktion auf einen Unterschied zwischen dem Empfänger-Authentifizierungscode und einem Sender-Authentifizierungscode.
  19. Verfahren nach Anspruch 18, umfassend: Generieren von Klartextdaten mindestens teilweise als Reaktion auf das Anwenden eines Entschlüsselungsabschnitts eines authentifizierten Entschlüsselungsalgorithmus auf Chiffriertextdaten, die in einem authentifizierten verschlüsselten Block von Daten enthalten sind; und Generieren des Empfänger-Fehlererkennungscodes mindestens teilweise als Reaktion auf die Klartextdaten.
  20. Verfahren nach Anspruch 19, wobei der authentifizierte Entschlüsselungsalgorithmus AES-GCM ist.
  21. Verfahren nach Anspruch 18, umfassend: Generieren des Empfänger-Fehlererkennungscodes durch Anwenden einer Ableitungsfunktion auf die Klartextdaten.
  22. Verfahren nach Anspruch 18, umfassend das Empfangen eines authentifizierten verschlüsselten Blocks von Daten an einem Kommunikationssystem.
  23. Verfahren nach Anspruch 22, wobei das Kommunikationssystem für eine Compute Express Link-Verschaltung (CXL-Verschaltung) ist.
  24. Verfahren nach Anspruch 22, wobei das Kommunikationssystem für eine Peripheral Component Interconnect Express-Verschaltung (PCIe-Verschaltung) ist.
  25. Verfahren nach Anspruch 18, wobei das Hinzufügen des Empfänger-Fehlererkennungscodes zu dem Block von Daten das Hinzufügen des Empfänger-Fehlererkennungscodes zu einem Abschnitt des Blocks von Daten für zugeordnete Daten umfasst.
  26. Verfahren, umfassend: Generieren eines Sender-Fehlererkennungscodes mindestens teilweise als Reaktion auf Klartextdaten; Generieren von Chiffriertextdaten mindestens teilweise als Reaktion auf das Anwenden eines Verschlüsselungsalgorithmus auf die Klartextdaten; Generieren eines sendermodifizierten Blocks von Daten mindestens teilweise als Reaktion auf das Hinzufügen eines Fehlererkennungscodes zu einem Block von Daten, der die Chiffriertextdaten einschließt; Generieren eines Sender-Authentifizierungscodes mindestens teilweise als Reaktion auf den sendermodifizierten Block von Daten; Generieren eines authentifizierten verschlüsselten Blocks von Daten mindestens teilweise als Reaktion auf den Sender-Authentifizierungscode und den Block von Daten und Senden des authentifizierten verschlüsselten Blocks von Daten.
  27. Verfahren nach Anspruch 26, umfassend das Durchführen einer Ableitungsfunktion zum Generieren des Sender-Fehlererkennungscodes aus den Klartextdaten.
  28. Verfahren nach Anspruch 26, umfassend das Generieren eines authentifizierten verschlüsselten Blocks von Daten mindestens teilweise als Reaktion auf den Block von Daten und den Sender-Authentifizierungscode.
  29. Verfahren nach Anspruch 26, wobei der Block von Daten des authentifizierten verschlüsselten Blocks von Daten den Fehlererkennungscode, der zu dem Block von Daten hinzugefügt wurde, um den sendermodifizierten Block von Daten zu generieren, nicht einschließt.
  30. Verfahren nach Anspruch 26, wobei der authentifizierte Verschlüsselungsalgorithmus AES-GCM ist.
  31. Verfahren nach Anspruch 26, umfassend das Senden des authentifizierten verschlüsselten Blocks von Daten an einem Kommunikationssystem.
  32. Verfahren nach Anspruch 31, wobei das Kommunikationssystem für eine Compute Express Link-Verschaltung (CXL-Verschaltung) ist.
  33. Verfahren nach Anspruch 32, wobei das Kommunikationssystem für eine Peripheral Component Interconnect Express-Verschaltung (PCIe-Verschaltung) ist.
DE112021003259.3T 2020-06-15 2021-06-11 Erhöhte datenintegrität für authentifizierte verschlüsselungsalgorithmen Active DE112021003259T9 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202062705194P 2020-06-15 2020-06-15
US62/705,194 2020-06-15
PCT/US2021/070698 WO2021258098A2 (en) 2020-06-15 2021-06-11 Increased data integrity for authenticated encryption algorithms

Publications (2)

Publication Number Publication Date
DE112021003259T5 true DE112021003259T5 (de) 2023-03-30
DE112021003259T9 DE112021003259T9 (de) 2023-05-04

Family

ID=76797192

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112021003259.3T Active DE112021003259T9 (de) 2020-06-15 2021-06-11 Erhöhte datenintegrität für authentifizierte verschlüsselungsalgorithmen

Country Status (4)

Country Link
US (1) US20210391978A1 (de)
CN (1) CN115804062A (de)
DE (1) DE112021003259T9 (de)
WO (1) WO2021258098A2 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11892955B2 (en) 2021-06-01 2024-02-06 Microchip Technology Inc. System and method for bypass memory read request detection

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5935268A (en) * 1997-06-03 1999-08-10 Bay Networks, Inc. Method and apparatus for generating an error detection code for a modified data packet derived from an original data packet
US7200227B2 (en) * 2001-07-30 2007-04-03 Phillip Rogaway Method and apparatus for facilitating efficient authenticated encryption
US20200151362A1 (en) * 2019-08-21 2020-05-14 Intel Corporation Integrity and data encryption (ide) over computer buses
US20210211467A1 (en) * 2020-04-02 2021-07-08 Intel Corporation Offload of decryption operations

Also Published As

Publication number Publication date
WO2021258098A2 (en) 2021-12-23
CN115804062A (zh) 2023-03-14
DE112021003259T9 (de) 2023-05-04
US20210391978A1 (en) 2021-12-16
WO2021258098A3 (en) 2022-02-10

Similar Documents

Publication Publication Date Title
DE102007063755B4 (de) Fehlererkennungsschaltung und zugehöriges Betriebsverfahren und Computerprogrammprodukt
CN103905202B (zh) 一种基于puf的rfid轻量级双向认证方法
DE60023705T2 (de) Sichere verteilung und schutz einer schlüsselinformation
CN103810664B (zh) 一种信息隐藏方法及装置
EP2918040A1 (de) Erstellen eines abgeleiteten schlüssels aus einem kryptographischen schlüssel mittels einer physikalisch nicht klonbaren funktion
DE102019113026A1 (de) Automobile nonce-missbrauchs-widerstandsfähige authentifizierte verschlüsselung
DE112017001853T5 (de) Flexible Bereitstellung von Bestätigungsschlüsseln in sicheren Enklaven
EP2765752B1 (de) Verfahren zum versehen eines mobilen endgeräts mit einem authentisierungszertifikat
DE102009000869A1 (de) Verfahren und Vorrichtung zur manipulationssicheren Übertragung von Daten
DE202015009800U1 (de) Sicherheits-Plug-In für eine System-on-a-Chip-Plattform
CN104252881A (zh) 半导体集成电路及系统
DE102009061045A1 (de) Erzeugung eines Session-Schlüssels zur Authentisierung und sicheren Datenübertragung
WO2007051842A1 (de) Verfahren und system zum übertragen von daten von einer ersten datenverarbeitungseinrichtung an eine zweite datenverarbeitungseinrichtung
DE112020006159T5 (de) Protokoll zur gegenseitigen authentifizierung für systeme mit kommunikationsverbindungen mit niedrigem durchsatz und vorrichtungen zum durchführen desselben
DE112021003259T9 (de) Erhöhte datenintegrität für authentifizierte verschlüsselungsalgorithmen
DE102017118164A1 (de) Kryptographische schaltung und datenverarbeitung
DE102020134250A1 (de) System, Vorrichtung und Verfahren zum Bereitstellen eines Schutzes gegen eine stille Datenkorruption in einer Verbindung
CN105917381A (zh) 基于双随机相位图像编码系统的密码学破解方法和装置
DE102011054410A1 (de) Vorrichtung und Verfahren zur Erzeugung einer Bitfolge
DE102016222278A1 (de) Systemarchitektur mit sicherem datenaustausch
EP3304802A1 (de) Verfahren zur sicherstellung der informationssicherheit von über einen datenbus übertragenen daten sowie datenbussystem
DE102019119831A1 (de) Verschlüsselungsschaltung zum Durchführen von virtuellen Verschlüsselungsoperationen
DE112018002723B4 (de) System, verfahren und vorrichtung zur verschleierung von vorrichtungsoperationen
CN108199836B (zh) 一种密钥与设备绑定、解绑定的方法及装置
WO1998010559A1 (de) Anordnung und verfahren zur kryptographischen bearbeitung eines digitalen datenstroms, der eine beliebige anzahl von daten aufweist

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: H04L0009060000

Ipc: H04L0009320000