DE102020134250A1 - System, Vorrichtung und Verfahren zum Bereitstellen eines Schutzes gegen eine stille Datenkorruption in einer Verbindung - Google Patents

System, Vorrichtung und Verfahren zum Bereitstellen eines Schutzes gegen eine stille Datenkorruption in einer Verbindung Download PDF

Info

Publication number
DE102020134250A1
DE102020134250A1 DE102020134250.0A DE102020134250A DE102020134250A1 DE 102020134250 A1 DE102020134250 A1 DE 102020134250A1 DE 102020134250 A DE102020134250 A DE 102020134250A DE 102020134250 A1 DE102020134250 A1 DE 102020134250A1
Authority
DE
Germany
Prior art keywords
protection code
data
mac
encrypted
plaintext
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.)
Pending
Application number
DE102020134250.0A
Other languages
English (en)
Inventor
Raghunandan Makaram
Kirk S. Yap
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of DE102020134250A1 publication Critical patent/DE102020134250A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

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)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Power Engineering (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

Bei einer Ausführungsform weist eine Vorrichtung auf: einen Integritätsschaltkreis zum Empfangen von Daten und zum Erzeugen eines Schutzcodes mindestens teilweise aufgrund der Daten; einen kryptographischen Schaltkreis, der mit dem Integritätsschaltkreis verbunden ist, um die Daten in verschlüsselte Daten zu verschlüsseln und um den Schutzcode in einen verschlüsselten Schutzcode zu verschlüsseln; einen Nachrichtenauthentifizierungscodeschaltkreis (MAC-Schaltkreis), der mit dem kryptographischen Schaltkreis verbunden ist, um mithilfe von Kopfzeileninformationen, der verschlüsselten Daten und des verschlüsselten Schutzcodes einen MAC zu berechnen, der einen Tag umfasst; und einen Ausgabeschaltkreis zum Senden der Kopfzeileninformationen, der verschlüsselten Daten und des Tags über eine Verbindung zu einem Empfänger. Weitere Ausführungsformen werden beschrieben und beansprucht.

Description

  • Technisches Gebiet
  • Die Ausführungsformen beziehen sich auf ein Bereitstellen einer Datenintegrität und einer Verschlüsselung für Verbindungskommunikationen.
  • Hintergrund
  • Moderne Computersysteme bewältigen große Mengen an Kommunikationen und Datenübertragungen. Mit zunehmenden Geschwindigkeiten und immer mehr Schaltungen, die in die integrierten Schaltkreise eingebaut werden, besteht eine Sorge hinsichtlich der Datenintegrität und des Schutzes gegen eine stille Datenkorruption (Silent Data Corruption, SDC). Diese Probleme können durch eine Cloud-Bereitstellung und eine Datenverarbeitung mit sehr hohen Geschwindigkeiten verschärft werden.
  • Operationen, die verwendet werden, um eine Integrität und Datenverschlüsselung (Integrity and Data Encryption, IDE) für Daten bereitzustellen, die über eine Verbindung übertragen werden, bereiten besondere Sorgen, da ein einziger Bitfehler zu einer Lawine von Bitfehlern (z. B. könnten 50 % der Bits umkippen) führen kann. Aktuelle Ansätze weisen Nachteile unter anderem hinsichtlich Leistungsfähigkeit/Latenzstrafe, einer sich duplizierenden Zunahme von Verschlüsselungsschaltungen und/oder Stromverbrauchsproblemen auf.
  • Figurenliste
    • 1 ist ein Blockschaltbild eines Systems gemäß einer Ausführungsform.
    • 2 ist ein Blockschaltbild eines IDE-Schaltkreises gemäß einer Ausführungsform.
    • 3 ist ein Blockschaltbild eines IDE-Schaltkreises gemäß einer weiteren Ausführungsform.
    • 4 ist ein Ablaufplan eines Verfahrens gemäß einer Ausführungsform.
    • 5 ist ein Ablaufplan eines Verfahrens gemäß einer weiteren Ausführungsform.
    • 6A bis 6B sind Schaubilder, die einen Sender und einen Empfänger und entsprechende Datenflüsse gemäß einer Ausführungsform darstellen.
    • 7A bis 7C sind Blockschaubilder von Datenformaten gemäß einigen Ausführungsformen.
    • 8 ist ein Ablaufplan von Operationen auf einer Sendeseite gemäß einer Ausführungsform.
    • 9 ist ein Ablaufplan von Operationen auf einer Empfangsseite gemäß einer Ausführungsform.
    • 10 ist ein Blockschaubild eines Schnittstellenschaltkreises gemäß einer Ausführungsform.
    • 11 ist ein Blockschaubild eines Systems gemäß einer Ausführungsform.
  • Detaillierte Beschreibung
  • Bei verschiedenen Ausführungsformen können mehrere Komponenten in einem oder mehreren Computersystemen sowohl mit einem Fehlererkennungsschutz (und/oder Korrekturschutz) als auch mit einem kryptographischen Schutz in einer hoch effizienten Weise und mit einem geringen Overhead bereitgestellt werden. Einige Ausführungsformen können Fehlerschutzinformationen (z. B. eine zyklische Redundanzprüfsumme (Cyclic Redundancy Checksum, CRC) oder eine Fehlerkorrekturcodierung (Error Correction Coding, ECC)), die eine Fehlererkennung und/oder Fehlerkorrektur bereitstellen, mit einem Verbindungs-IDE-Nachrichtenauthentifizierungscode (Verbindungs-IDE-MAC) kombinieren. Auf diese Weise kann eine Datenintegrität garantiert werden, um ein hohes Schutzniveau gegen eine stille Datenkorruption (Silent Data Corruption protection, SDC-Schutz) zu niedrigen Kosten zu bewerkstelligen.
  • Auf einer übergeordneten Ebene erzeugt ein Sender diese Schutzbits an (vorverschlüsselten) Klartextdaten, verschlüsselt die Schutzbits und berechnet einen Verbindungs-IDE-MAC auf den verschlüsselten Daten. Diese Operation stellt sicher, dass die Sicherheitseigenschaften beibehalten werden und dass kein Datenverlust auftritt. Es ist jedoch zu beachten, dass bei einigen Ausführungsformen die verschlüsselten Schutzbits selbst nicht über die Verbindung übertragen werden. Ein Empfänger regeneriert seinerseits die Schutzbits aufgrund des Klartexts und verwendet sie dann, um den MAC zu überprüfen. Infolgedessen wird ein hohes Niveau einer Fehlererkennung verwirklicht. Und in einigen Fällen ist bei Ausführungsformen, welche die ECC-Technologie umsetzen, eine Fehlerkorrektur möglich.
  • Außerdem können einige Ausführungsformen diesen Schutz ohne eine Bandbreiteneinschränkung und mit einer minimalen Latenzauswirkung auf die Verbindung verwirklichen. Bei einer Ausführungsform kann eine Verbindungs-IDE, eine Vertraulichkeit, eine Integrität und einen Wiedergabeschutz für Daten bereitstellen, die eine Verbindung durchlaufen, die physischen Angriffen auf die Verbindung ausgesetzt ist. Von einem Widersacher wird angenommen, dass er die Fähigkeit besitzt, Daten zu untersuchen, die als vertraulich gelten, Daten oder Protokollmetadaten zu modifizieren und aufgezeichnete Transaktionen aufzuzeichnen und wiederzugeben, Transaktionen neuzuordnen oder zu löschen, Transaktionen einschließlich Anfragen/Daten oder Nicht-Datenantworten einzufügen, vertrauenswürdige Vorrichtungen durch nicht-vertrauenswürdige Vorrichtungen zu ersetzen und/oder eine vertrauenswürdige Vorrichtung zu entfernen und auf diese von einem System aus zuzugreifen, das unter der Kontrolle des Widersachers steht. Einige Ausführungsformen können einen Schutz gegen solche Angriffe bereitstellen.
  • In 1 wird jetzt ein Blockschaltbild eines Systems gemäß einer Ausführungsform gezeigt. Wie in 1 gezeigt wird, kann das System 100 ein gesamtes oder ein Teil eines gegebenen Computersystems sein, das von einer Client-Vorrichtung wie zum Beispiel einer tragbaren Client-Vorrichtung, z. B. einem Smartphone, einem Tablet-Computer und so weiter, über eine größere Client-Vorrichtung, wie zum Beispiel einem Desktop-Computer, bis zu einem Unternehmenscomputersystem, wie zum Beispiel einem Serversystem, reichen kann. Die in 1 gezeigten Komponenten können auch in einem oder mehreren integrierten Schaltkreisen umgesetzt werden. In einigen Fällen kann zum Beispiel mindestens ein Großteil der gezeigten Schaltungen in einem einzigen Gehäuse wie zum Beispiel einem Ein-Chip-System (System on Chip, SoC) oder in einem anderen Mehrkernprozessor wie zum Beispiel einem Serverprozessor umgesetzt werden. Bei weiteren Fällen kann eine Vielfalt von unterschiedlichen integrierten Schaltkreisen über Verbindungselemente miteinander verbunden sein.
  • In der übergeordneten Darstellung von 1 verbinden unterschiedliche Verbindungselemente die verschiedenen Vorrichtungen miteinander. Mit den hier beschriebenen Ausführungsformen können Informationen über Verbindungselemente mit Fehlererkennungs- und/oder Fehlerkorrekturfähigkeiten kommuniziert werden. Darüber hinaus können mindestens einige Verbindungselemente Informationen in einer verschlüsselten Weise kommunizieren. Mit den hier beschriebenen Ausführungsformen kann ein durchgehender Datenschutz für Klartextinformationen verwirklicht werden, sodass Fehler, die in kryptographischen Operationen auftreten, erkannt werden können.
  • In der übergeordneten Darstellung von 1 wird ein repräsentativer Kern 110 gezeigt. Dieser Kern kann ein reihenfolgestarrer Kern oder ein reihenfolgevariabler Kern sein. Obwohl der einfacheren Darstellung halber nur ein einziger Kern gezeigt wird, ist es selbstverständlich, dass mehrere dieser Kerne vorhanden sein können. Wie gezeigt wird, ist der Kern 110 mit einem zwischenspeichernden Heimatagenten (Caching Home Agent, CHA) 115 verbunden. Bei einer Ausführungsform können Kommunikationen zwischen dem Kern 110 und dem CHA 115 durch eine Parität geschützt werden. Der CHA 115 kann seinerseits mit einem gemeinsam genutzten Cachespeicher 120 verbunden sein, der bei einer Ausführungsform als ein Cachespeicher der letzten Ebene (Last Level Cache, LLC) umgesetzt sein kann. Bei einer Ausführungsform können die Kommunikationen zwischen dem CHA 115 und dem LLC 120 mit einer ECC geschützt werden. Die paritätsgeschützten Kommunikationen können auch zwischen dem CHA 115 und einem Netz 125 auftreten, das mehrere Elemente miteinander verbinden kann. Von daher können Informationen, die über das Netz 125 kommuniziert werden, durch eine Parität geschützt sein, da es mit einem M2M 130, einem Schnittstellenschaltkreis Intel® Ultra Path Interconnect (UPI-Schnittstellenschaltkreis) 150, einem Downlink-Anschluss eines Cachespeichers Compute Express Link (CXL-Cachespeicher) 160 und einem Downlink-Anschluss Peripheral Component Interconnect Express (PCIe)/CXL.io 170 kommuniziert. Jede dieser Vorrichtungen kann entsprechende kryptographische Schaltkreise 152, 162, 172 enthalten. Wie gezeigt wird, kann eine Verschlüsselung gemäß einem gegebenen kryptographischen Algorithmus des „Advanced Encryption Standard“ (AES) ausgeführt werden. Bei weiteren Ausführungsformen ist selbstverständlich auch eine Wahl eines anderen kryptographischen Algorithmus speziell für andere Verbindungsprotokolle möglich. Entweder innerhalb dieser kryptographischen Schaltkreise oder als andere Schaltungen innerhalb dieser Vorrichtungen können außerdem Verbindungs-IDE-Schaltungen vorhanden sein, um einen Datenschutz und eine Datenverschlüsselung zu verwirklichen, wie sie hier beschrieben werden.
  • Noch immer in 1 können der UPI-Schnittstellenschaltkreis 155 und die Uplink-Anschlüsse 165, 175 auf ähnliche Weise entsprechende kryptographische Schaltungen 156, 165 und 175 (und Verbindungs-IDE-Schaltungen) enthalten. Obwohl das System mit diesen repräsentativen Vorrichtungen und Verbindungen gezeigt wird, ist es selbstverständlich, dass andere Vorrichtungen darin vorhanden sein können, die mithilfe anderer Kommunikationsprotokolle wie zum Beispiel DMI, PECI, I3C, MIPI und USB verbunden sind.
  • Mit den hier beschriebenen Ausführungsformen können alle Fehler, die in diesen Schaltungen auftreten, mit den hier beschriebenen IDE-Techniken erkannt und möglicherweise korrigiert werden. Auf diese Weise können Kommunikationen zwischen den Schnittstellenschaltkreisen 150, 160, 170 und einem entsprechenden UPI-Schaltkreis 155 und den Uplink-Anschlüssen 165, 175 sowohl kryptographisch als auch mit einer Datenintegrität geschützt werden. So wie hier beschrieben werden wird, werden gleichzeitig Datenschutzcodierungen wie zum Beispiel Prüfsummen, eine Fehlerkorrekturcodierung und so weiter nicht auf entsprechenden Verbindungen zwischen diesen Vorrichtungen kommuniziert. Zu diesem Zweck können die verschiedenen Komponenten in 1 Verbindungs-IDE-Schaltungen enthalten, wie hier beschrieben wird.
  • Immer noch in 1 kann die M2M 130 paritätsgeschützt Informationen mit einer Speichersicherheitsengine (Memory Security Engine, MSE) 135 austauschen, die Verschlüsselungsoperationen ausführen kann. Die MSE 135 kann entsprechende kryptographische AES-Verschlüsselungsschaltkreise 136/138 enthalten. Wie außerdem dargestellt wird, können die verschlüsselten Informationen über eine Speichersteuereinheit 140 in einem Speicher 145 gespeichert werden. Bei einem Beispiel wird der Speicher 145 mithilfe eines anderen Mechanismus z. B. mithilfe einer Speicherverschlüsselungsengine (MKTME) geschützt.
  • Bei einem Beispiel von Kommunikationen innerhalb des Systems 100 sollte der Fall betrachtet werden, bei dem ein Kern 110 in einen CXL-Speicher schreibt, der über CXL-Verbindungen angeschlossen ist. Für diese Situation sind die Kernschreibanfrage und -daten über die Verbindung paritätsgeschützt, die mit dem CHA 115 verbunden ist. Die Daten werden ihrerseits in einem Cachespeicher 120 gespeichert, wo sie ECC-geschützt sind. Die Daten werden dann mithilfe eines internen Netzes, wo sie paritätsgeschützt sind, über das Netz 125 zu einem CXL-Downlink-Anschluss 160 bewegt. Wenn die Daten über die CXL-Verbindung übertragen werden, sind sie CRC-geschützt. Sobald die Daten die Downstream-Vorrichtung erreichen, sind dort ähnliche Datenschutzpläne vorhanden, bis die Daten in die Speichervorrichtung geschrieben werden. Im Speicher werden die Daten mithilfe einer ECC geschützt. Obwohl diese Datenpfade alle geschützt sind, wären sie ohne eine Ausführungsform noch immer Fehlern ausgesetzt, die sich in den kryptographischen Engines (z. B. den AES-Schaltkreisen 162, 166) ereignen, wo die Datentransformation erfolgt. Dies bedeutet, dass ohne eine Ausführungsform ein Umkippen von Bits, das sich in dem Prozess eines Erzeugens eines Geheimtexts ereignet, nicht erkannt würde. Stattdessen können mit einer Ausführungsform diese Fehler erkannt und möglicherweise korrigiert werden.
  • Obwohl bei der Ausführungsform der 1 eine übergeordnete Darstellung gezeigt wird, sind viele Variationen und Alternativen möglich. Außerdem werden in der übergeordneten Darstellung in 1 die Einzelheiten einer Schnittstellenschaltung, die in den verschiedenen Vorrichtungen vorhanden sind, nicht gezeigt. Es ist selbstverständlich, dass bei den hier beschriebenen Ausführungsformen diese Schnittstellenschaltungen vorhanden sein können und eine Verbindungs-IDE-Schaltung enthalten sein kann, die einen durchgehenden Datenschutz bereitstellt, so wie er hier beschrieben wird.
  • In 2 wird jetzt ein Blockschaltbild eines IDE-Schaltkreises gemäß einer Ausführungsform gezeigt. Wie in 2 gezeigt wird, kann der IDE-Schaltkreis 200 innerhalb von Schnittstellenschaltungen verschiedener Vorrichtungen in einem Computersystem enthalten sein. Der IDE-Schaltkreis 200 der 2 zeigt insbesondere eine Schaltung, die in einem Sender vorhanden ist. Obwohl er als ein zweckbestimmter Schaltkreis gezeigt wird, ist es selbstverständlich, dass bei einigen Umsetzungen mindestens Teile dieser Schnittstellenschaltung auch konfiguriert sein können, um empfängerbasierte IDE-Operationen auszuführen.
  • Wie gezeigt wird, werden eingehende Daten in einem Datenintegritätsschaltkreis 210 empfangen. Diese Daten können verschiedene Formen annehmen und können Befehle, Anfragen, Dateninformationen und so weiter enthalten. Auf jeden Fall ist es selbstverständlich, dass diese eingehenden Daten in einer unverschlüsselten Weise empfangen werden. Bei einigen Ausführungsformen können die Datenintegritätsschaltkreise 210 eine Datenintegrität mithilfe einer Fehlererkennungs- und/oder Fehlerkorrekturcodierung bereitstellen. Allgemeiner kann der Datenintegritätsschaltkreis 210 einen Code erzeugen, der ein Paritätscode, ein Fehlerkorrekturcode und so weiter sein kann. Es ist selbstverständlich, dass der Schutzcode aufgrund des empfangenen Klartexts erzeugt wird. Dementsprechend gibt der Datenintegritätsschaltkreis 210 sowohl die Daten als auch den Schutzcode in einer Klartextform aus.
  • Wie außerdem in 2 dargestellt wird, werden diese Informationen einer kryptographischen Engine 220 bereitgestellt. Die kryptographische Engine 220 kann diese Informationen gemäß einer Verschlüsselungstechnik z. B. einer gegebenen AES-Verschlüsselungstechnik verschlüsseln. Bei einer Ausführungsform kann die Verschlüsselung ausgeführt werden, indem die Daten und der angefügte Schutzcode separat verschlüsselt werden. Folglich wird der Klartext in einen Geheimtext verschlüsselt und der Schutzcode wird in einen verschlüsselten Schutzcode verschlüsselt.
  • Als Nächstes werden der Geheimtext und der verschlüsselte Schutzcode einem Nachrichtenauthentifizierungscodeschaltkreis (Message Authentication Code circuit, MAC-Schaltkreis) 230 bereitgestellt, der außerdem Kopfzeileninformationen empfängt. Aus allen diesen empfangenen Eingaben kann der MAC-Schaltkreis 230 einen MAC erzeugen, auf den hier auch als „Tag“ Bezug genommen wird. Bei einer Ausführungsform kann ein 96-Bit-Tag aus 300 Bytes eines Geheimtexts, einer 20-Byte-Kopfzeile und einem 4-Byte-Schutzcode erzeugt werden.
  • Wie gezeigt wird, stellt der MAC-Schaltkreis 230 den Tag einem Datenübertragungsschaltkreis 240 bereit, der außerdem den Geheimtext und die unverschlüsselten Kopfzeileninformationen empfängt. Es ist zu beachten, dass der verschlüsselte Schutzcode selbst dem Datenübertragungsschaltkreis 240 nicht bereitgestellt wird. Diese Anordnung kann somit Informationen einsparen, die über eine Verbindung kommuniziert werden müssen, mit welcher der Datenübertragungsschaltkreis 240 verbunden ist. Bei verschiedenen Umsetzungen kann der Datenübertragungsschaltkreis 240 mindestens einige Abschnitte von Protokollschichtschaltungen, Datenverbindungsschichtschaltungen und Datenübertragungsschichtschaltungen enthalten. Von daher bereitet der Datenübertragungsschaltkreis 240 Nachrichten für eine Übertragung über die Verbindung vor, die in verschiedenen Umsetzungen eine verdrahtete oder drahtlose Verbindung sein kann. Bei dem Beispiel einer CXL-Verbindung kann der Datenübertragungsschaltkreis 240 individuelle Flits (Flusssteuereinheiten) erzeugen, die jeweils 528 Bits enthalten und die an einen Empfänger gesendet werden. Obwohl bei der Ausführungsform der 2 eine übergeordnete Darstellung gezeigt wird, sind viele Variationen möglich.
  • In 3 wird jetzt ein Blockschaltbild eines IDE-Schaltkreises gemäß einer Ausführungsform gezeigt. Wie in 3 gezeigt wird, kann der IDE-Schaltkreis 300 innerhalb von Schnittstellenschaltungen verschiedener Vorrichtungen in einem Computersystem enthalten sein. Der IDE-Schaltkreis 300 der 3 zeigt insbesondere Schaltungen, die in einem Empfänger vorhanden sind. Obwohl er als ein zweckbestimmter Schaltkreis gezeigt wird, ist es selbstverständlich, dass bei einigen Umsetzungen mindestens Teile dieser Schnittstellenschaltung auch konfiguriert sein können, um senderbasierte IDE-Operationen auszuführen.
  • Wie gezeigt wird, werden eingehende Daten von einer Verbindung in einem Datenübertragungsschaltkreis 310 empfangen. Diese Daten können Kopfzeileninformationen, verschlüsselte Daten und einen Tag eines MAC enthalten, der in einem Sender erzeugt wurde. Wie gezeigt wird, stellt der Datenübertragungsschaltkreis 310 den Geheimtext für einen MAC-Schaltkreis 320 und eine kryptographische Engine 330 bereit. Der Datenübertragungsschaltkreis 310 stellt den Tag für einen Validierungsschaltkreis 350 bereit.
  • Die kryptographische Engine 330 kann den Geheimtext z. B. mithilfe einer AES-Technik entschlüsseln, um einen Klartext zu erzeugen, der einem Datenintegritätsschaltkreis 340 bereitgestellt wird. Bei einigen Ausführungsformen kann der Datenintegritätsschaltkreis 340 eine Datenintegrität mithilfe einer Fehlererkennungs- und/oder Fehlerkorrekturcodierung wie zum Beispiel eines Erzeugens einer CRC des Klartexts oder eines Schutzcodes bereitstellen, die der kryptographischen Engine 330 bereitgestellt werden. Die kryptographische Engine 330 verschlüsselt diesen Schutzcode und stellt ihn dem MAC-Schaltkreis 320 für eine Verwendung beim Erzeugen des MAC bereit.
  • Wie außerdem in 3 gezeigt wird, erzeugt der MAC-Schaltkreis 320 mithilfe des Geheimtexts, der verschlüsselten CRC und der Kopfzeileninformationen einen MAC und stellt ihn dem Validierungsschaltkreis 350 bereit. Bei einigen Ausführungsformen kann der Validierungsschaltkreis 350 konfiguriert sein zum Vergleichen des empfangenen Tags mit dem erzeugten MAC, um zu ermitteln, ob die Werte übereinstimmen. Falls ja, werden die empfangenen Daten als gültig ausgewiesen. Andernfalls kann eine Anzeige von ungültigen Daten gesendet werden. Als Reaktion auf ungültige Daten können verschiedene Operationen ausgeführt werden. In den Fällen, in denen eine Fehlerkorrekturcodierung bereitgestellt wird, kann versucht werden, den Fehler in einer Fehlerkorrekturschaltung (die der einfacheren Darstellung halber in 3 nicht gezeigt wird) zu korrigieren. Letztlich kann eine Fehlernachricht über die Verbindung zurück an den Sender gesendet werden, um eine Wiederholung der Nachricht anzufordern. Selbstverständlich können bei weiteren Ausführungsformen andere Fehlerbearbeitungsoperationen ausgeführt werden. Zum Beispiel kann ein Fehlerbearbeitungsschema diese Fehler als fatale Fehler markieren, was ein Zurücksetzen einer Systemsteuereinheit oder -software der Verbindung (oder des Systems) auslöst, um einen Zustand vor dem Fehler wiederherzustellen. Eine Wiederholung ist auch möglich. Eine begrenztere Fehlerkorrektur ist möglich, wenn der Fehler in dem empfangenen Geheimtext enthalten ist (das heißt Fehler, die durch ein Schutzschema auf Verbindungsebene wie zum Beispiel eine Verbindungs-CRC nicht erkennbar waren).
  • In 4 wird jetzt ein Ablaufplan eines Verfahrens gemäß einer Ausführungsform gezeigt. Das Verfahren 400 ist insbesondere ein Verfahren zum Bereitstellen von Verbindungs-IDE-Maßnahmen für Daten, die von dem Sender übertragen werden sollen. Bei einer Ausführungsform kann das Verfahren 400 von einer Hardwareschaltung wie zum Beispiel dem IDE-Schaltkreis 200 der 2 ausgeführt werden. Selbstverständlich kann das Verfahren 400 bei weiteren Ausführungsformen durch andere Hardwareschaltungen eigenständig oder in Kombination mit Firmware und/oder Software ausgeführt werden.
  • In jedem Fall beginnt das Verfahren 400 mit einem Empfangen von zu übertragenden Daten (Block 410). Danach kann im Block 420 ein Schutzcode für die Daten berechnet werden. Bei einem Beispiel können die eingehenden Klartextdaten durch eine CRC geschützt werden. Danach kann im Block 430 dieser Schutzcode, z. B. die Klartext-CRC, zu den Daten hinzugefügt werden (die an diesem Punkt noch immer in einer Klartextform vorliegen). Danach können im Block 440 die verketteten Informationen (Daten und Schutzcode) verschlüsselt werden. Insbesondere können die Klartextdaten verschlüsselt werden, um einen Geheimtext zu bilden, und der Schutzcode kann verschlüsselt werden, um einen verschlüsselten Schutzcode zu bilden.
  • Immer noch in 4 geht die Steuerung als Nächstes weiter zu Block 450, wo ein MAC(-Tag) aufgrund von Kopfzeileninformationen, dem Geheimtext und dem verschlüsselten Schutzcode berechnet werden kann. Danach können im Block 460 die Kopfzeileninformationen, der Geheimtext und der Tag von dem Sender z. B. über eine gegebene Verbindung zu einem Empfänger gesendet werden. Es ist zu beachten, dass bei den hier beschriebenen Ausführungsformen der Schutzcode weder in seiner Klartextform noch in seiner verschlüsselten Form gesendet wird. Von daher kann ein IDE-Schutz bereitgestellt werden, während die Menge an Informationen verringert wird, die über eine Verbindung zu senden sind. Obwohl bei der Ausführungsform der 4 eine übergeordnete Darstellung gezeigt wird, sind viele Variationen und Alternativen möglich.
  • In 5 wird jetzt ein Ablaufplan eines Verfahrens gemäß einer weiteren Ausführungsform gezeigt. Das Verfahren 500 ist insbesondere ein Verfahren zum Bereitstellen von Verbindungs-IDE-Maßnahmen für Daten, die in einem Empfänger empfangen werden. Bei einer Ausführungsform kann das Verfahren 500 von einer Hardwareschaltung wie zum Beispiel dem IDE-Schaltkreis 300 der 3 ausgeführt werden. Selbstverständlich kann das Verfahren 500 bei weiteren Ausführungsformen durch andere Hardwareschaltungen eigenständig oder in Kombination mit Firmware und/oder Software ausgeführt werden.
  • Das Verfahren 500 beginnt mit dem Empfangen einer Nachricht in dem Empfänger (Block 510). Diese Nachricht kann in einem Datenübertragungsschaltkreis des Empfängers über eine Verbindung empfangen werden. Als Nächstes kann im Block 520 der Geheimtext der Nachricht entschlüsselt werden, um Klartextdaten zu erhalten. Danach kann im Block 530 ein Schutzcode für diese Klartextdaten berechnet werden. Da die empfangene Nachricht den Schutzcode nicht enthält, bedeutet dies, dass er in dem Empfänger selbst erzeugt wird. Danach kann im Block 540 der Schutzcode verschlüsselt werden, um einen verschlüsselten Schutzcode zu erhalten.
  • Immer noch in 5 kann entweder parallel zu den oben beschriebenen Operationen oder nachdem die obigen Operationen beendet wurden, eine MAC-Berechnung erfolgen. Wie in Block 550 gezeigt wird, ist es insbesondere möglich, die MAC-Berechnung aufgrund der empfangenen Kopfzeile und des Geheimtexts zu beginnen, sogar bevor der verschlüsselte Schutzcode zur Verfügung steht. Bei diesem Beispiel kann im Block 560 nach dieser anfänglichen MAC-Berechnung die MAC-Berechnung mit dem verschlüsselten Schutzcode beendet werden. Somit wird ein resultierender Tag erzeugt.
  • Als Nächstes wird in der Raute 570 ermittelt, ob der erzeugte Tag (oder MAC) mit dem empfangenen Tag übereinstimmt. Falls ja, ist die empfangene Nachricht gültig und die Steuerung geht weiter zu Block 580, wo die Daten zu einer Zieleinrichtung, wie sie zum Beispiel in den Kopfzeileninformationen identifiziert werden kann, weitergeleitet werden können. Falls anderseits der erzeugte Tag und der empfangene Tag nicht übereinstimmen, geht die Steuerung weiter zum Block 590, wo ein Datenfehler erstellt wird. In den Fällen, in denen ein Fehlerkorrekturmechanismus verwendet wird, kann es möglich sein, dass versucht wird, den Fehler zu korrigieren. In anderen Fällen kann die fehlerhafte Nachricht gelöscht werden und eine Wiederholungsanforderung kann zurück an den Sender gesendet werden. Oder es kann ein fataler Fehler ausgelöst werden. Obwohl bei der Ausführungsform der 5 eine übergeordnete Darstellung gezeigt wird, sind viele Variationen und Alternativen möglich.
  • In den 6A und 6B werden jetzt Blockschaubilder gezeigt, die Datenströme durch einen Sender bzw. einen Empfänger gemäß einer Ausführungsform darstellen. 6A zeigt insbesondere Einzelheiten von Schaltungen innerhalb eines Senders 610 und einen Fluss von Daten durch den Sender. Wie gezeigt wird, weist der Sender 610 einen Schutzschaltkreis, der als ein CRC-Berechnungsschaltkreis 615 umgesetzt ist, einen kryptographischen Schaltkreis, der als ein AES-Schaltkreis 620 umgesetzt ist, und einen Nachrichtenauthentifizierungsschaltkreis auf, der als ein MAC-Berechnungsschaltkreis 630 umgesetzt ist.
  • In der übergeordneten Darstellung der 6A muss ein Klartextinhalt (P) vor der Übertragung verschlüsselt werden. Der Sender 610 berechnet Schutzbits wie zum Beispiel eine Klartext-CRC (pCRC) (oder eine Parität oder eine ECC) auf diesen Daten. Diese pCRC wird an den Klartext angefügt, um einen Inhalt zu erstellen, der für eine kryptographische Verarbeitung verwendet wird. Bei einer Ausführungsform kann diese kryptographische Verarbeitung über einen AES Galois-Counter-Modus (GCM) erfolgen, sodass der Klartext mithilfe eines AES-CTR-Modus verschlüsselt wird, der ein XOR eines AES-Schlüsselstroms (K) mit dem KlartextIpCRC beinhaltet, um einen Geheimtext|enc pCRC zu erzeugen. Eine MAC-Berechnung wird ihrerseits an dem verschlüsselten Inhalt ausgeführt, der die verschlüsselte pCRC enthält. Jede zusätzliche reine Datenauthentifizierung (wie zum Beispiel einer Kopfzeile, die als A in 6A gezeigt wird) wird auch in den MAC-Berechnungsschaltkreis 630 eingespeist, um den Tag zu erzeugen. Es ist zu beachten, dass wie gezeigt wird, die pCRC nicht in einer Nachricht 640 über die Verbindung übertragen wird. Von daher gibt es keinen zusätzlichen Bandbreitenoverhead für das Bereitstellen eines AES-Engine-Stabilitätsschutzes. Für einige Kommunikationsprotokolle (zum Beispiel ein CXL.cache/mem-Protokoll) müssen keine überzähligen Bits verfügbar sein, um die verschlüsselte pCRC über die Verbindung zu senden, wodurch Änderungen an einer Protokolldefinition oder einem Protokollstandard vermieden werden, um diese Bits zur Verfügung zu stellen.
  • Es ist zu beachten, dass diese sendebasierte Operation (und eine empfangsbasierte Operation, die in 6B beschrieben wird) selektiv z. B. gemäß einer Einstellung in einem oder mehreren Konfigurationsregistern aktiviert werden kann. Bei einer CXL-Umsetzung kann dieser verschlüsselte pCRC-Mechanismus unterstützt werden, um eine Stabilität gegen harte und weiche Fehler innerhalb von Verschlüsselungs- und Entschlüsselungs-Engines bereitzustellen. Diese verschlüsselte pCRC kann somit in einen MAC-Prüfmechanismus integriert werden, verbraucht keine zusätzliche Verbindungsbandbreite und kann ohne ein Hinzufügen einer erheblichen zusätzlichen Latenz umgesetzt werden. Diese pCRC kann standardmäßig wie zum Beispiel für ein CXL.cache/mem-Protokoll aktiviert werden und/oder kann optional z. B. für ein CXL.io-Protokoll aktiviert werden.
  • In 6B werden jetzt Einzelheiten von Schaltungen innerhalb eines Empfängers 650 und ein Fluss von Daten durch den Empfänger gezeigt. Wie gezeigt wird, weist der Empfänger 650 einen Schutzschaltkreis, der als ein CRC-Berechnungsschaltkreis 655 umgesetzt ist, einen kryptographischen Schaltkreis, der als ein AES-Schaltkreis 660 umgesetzt ist, und einen Nachrichtenauthentifizierungsschaltkreis auf, der als ein MAC-Berechnungsschaltkreis 670 umgesetzt ist.
  • Der Empfänger 650 empfängt eine Nachricht 680, die Kopfzeileninformationen, einen Geheimtext und einen Tag aufweist. Der Geheimtext wird einem AES-Schaltkreis 660 bereitgestellt, der den Geheimtext mithilfe des Schlüsselstroms (K) entschlüsselt, was zu dem Klartext (P) führt, der dem CRC-Berechnungsschaltkreis 655 bereitgestellt wird, um eine pCRC zu erzeugen, die dann z. B. mithilfe eines AES-CTR-Modus verschlüsselt wird.
  • In einigen Fällen kann der MAC-Berechnungsschaltkreis 670 eine MAC-Berechnung parallel aufgrund einer Kopfzeile A und eines Geheimtexts C beginnen. Die MAC-Berechnung kann dann mit den letzten Informationsbits von der verschlüsselten pCRC beendet werden. Wie gezeigt wird, werden die empfangenen Kopfzeileninformationen, der Geheimtext und die verschlüsselte pCRC auf jeden Fall dem MAC-Berechnungsschaltkreis 670 bereitgestellt, der einen berechneten Tag erzeugt. Dieser berechnete Tag kann mit dem empfangenen Tag verglichen werden, um eine Datenintegrität zu bestätigen. Obwohl bei der Ausführungsform der 6A und 6B eine übergeordnete Darstellung gezeigt wird, sind viele Variationen und Alternativen möglich.
  • Bei einer Ausführungsform für eine CXL-Umsetzung können die Datenpakete eine Unterstützung für eine hier beschriebene Verschlüsselung und einen hier beschriebenen Datenschutz enthalten. In den 7A bis 7C werden jetzt Blockschaubilder von Datenformaten gemäß einigen Ausführungsformen gezeigt. Beginnend mit 7A wird ein Datenformat 710 gezeigt, in dem Nachrichteninhalte Kopfzeileninformationen und Schlitzinformationen zusammen mit Datenblöcken enthalten. Wie gezeigt wird, kann jede Flit eine Kopfzeile und mehrere Schlitze enthalten, von denen jeder ein Kopfzeilenschlitztyp, ein generischer Schlitz und/oder ein Datenblock sein kann. Es ist zu beachten, dass die individuellen Schlitze der Flits sowohl verschlüsselt als auch integritätsgeschützt sind, während die Flitkopfzeilen nur integritätsgeschützt sind. Wie gezeigt wird, bilden die Flitkopfzeilen gemeinsam zusätzliche Authentifizierungsdaten (AAD), die zusammen mit dem Flit-Klartextinhalt und einer pCRC verwendet werden können, um einen MAC in der Form eines Tags zu bilden. Insbesondere können der Klartext und die pCRC vor der Erzeugung des MAC mithilfe dieser verschlüsselten Informationen und der AAD zuerst verschlüsselt werden.
  • In 7B wird ein ähnliches Datenformat 720 dargestellt. Hier ist zu beachten, dass bei diesem Beispiel eine erste Flit einen MAC anstelle eines Kopfzeilenschlitztyps aufweist. Auf ähnliche Weise wird in 7C ein weiteres Datenformat 730 dargestellt. Hier ist zu beachten, dass bei dem Datenformat 730 eine zweite Flit einen MAC enthält und dass alle verbleibenden Flits einen Kopfzeilenschlitztyp und generische Schlitze enthalten.
  • Bei einer Ausführungsform kann ein verschlüsselter pCRC-Mechanismus ein Polynom mit dem Koeffizienten 0x1EDC6F41 umsetzen, um für eine pCRC-Berechnung verwendet zu werden. Bei dieser Ausführungsform kann die pCRC-Berechnung mit einem anfänglichen Wert von OxFFFFFFFF beginnen. Bei einer Ausführungsform wird die pCRC über alle Bytes des Klartexts in den zusammengefügten Flits berechnet, die Teil eines gegebenen MAC-Zeitraums sind. Diese pCRC-Berechnung kann mit BitO von ByteO des Flit-Klartextinhalts beginnen und sequenziell die Bits 0 bis 7 für jedes Byte der Flitinhalte enthalten, die dem Klartext zugeordnet sind. Nach dem Akkumulieren eines 32-Bit-Werts über die Flitinhalte kann der pCRC-Wert abgeschlossen werden, indem der Komplementärwert der Bits des akkumulierten Werts übernommen werden, um eine pCRC [31:0] zu erhalten.
  • In 8 wird jetzt ein Ablaufplan von Operationen auf einer Sendeseite gemäß einer Ausführungsform gezeigt. Bei dieser Anordnung empfängt ein Empfänger 800 den Flit-Klartextinhalt 805 und erzeugt in einem CRC-Generator 810 eine pCRC 816. Wie gezeigt wird, wird der pCRC-Wert an das Ende des zusammengefügten Flit-Klartextinhalts angefügt, verschlüsselt und in die MAC-Berechnung aufgenommen, aber diese verschlüsselte pCRC wird nicht über eine Verbindung übertragen, was einen Einfluss auf ein Kommunikationsprotokoll vermeidet. Wenn die pCRC (z. B. gemäß einer Konfigurationsregistereinstellung) aktiviert wird, wird eine 32-Bit-pCRC an das Ende des zusammengefügten Flitinhalts angefügt, um zu einem endgültigen Klartextwert beizutragen, der integritätsgeschützt ist.
  • Der sich ergebende Klartext 815 und die CRC 816 werden einem AES-Block 820 bereitgestellt, der außerdem eine Schlüsselstromeingabe empfängt, die aus Verkettungsdaten 830 eines Initialisierungswerts (IV) und einem anfänglichen Zählerwert gebildet werden. Wie gezeigt wird, wird der sich ergebende Geheimtext, der in dem AES-Block 820 zusammen mit der verschlüsselten CRC, den AAD und zusätzlichen Informationen in dem Datenpaket 840 erzeugt wird, einem Hash-Generator 850 bereitgestellt, der einen Hash erzeugt, der einem anderen AES-Block 860 bereitgestellt wird. Die sich ergebenden verschlüsselten Informationen, insbesondere die höchstwertigen 96 Bits (Block 870), werden einem MAC-Schaltkreis 880 bereitgestellt, der einen MAC, insbesondere einen Tag, erzeugt.
  • In 9 wird jetzt ein Ablaufplan von Operationen auf einer Empfangsseite gemäß einer Ausführungsform gezeigt. In dem Empfänger wird der pCRC-Wert aufgrund des empfangenen entschlüsselten Geheimtexts neu berechnet. Wenn die letzte Flit eines aktuellen MAC-Zeitraums verarbeitet wurde, wird der akkumulierte pCRC-Wert mit AES-Schlüsselstrombits einem XOR unterzogen (verschlüsselt), die unmittelbar auf die Werte folgen, die zum Entschlüsseln des empfangenen Geheimtextflits verwendet werden. Dieser verschlüsselte pCRC-Wert wird zu Zwecken einer MAC-Berechnung an das Ende des empfangenen Geheimtexts angefügt.
  • Wie in 9 gezeigt wird, empfängt ein Empfänger 900 eine Nachricht, die einen Geheimtext und zusätzliche Authentifizierungsdaten enthält, die Kopfzeileninformationen aufweisen. Nachdem ein AES-Block 920 den Flit-Klartextinhalt 905 erhalten hat, wird eine CRC in einem CRC-Generator 910 erzeugt. Wie gezeigt wird, wird dieser pCRC-Wert zurück an den AES-Block 920 geliefert, um mithilfe eines Schlüsselstroms verschlüsselt zu werden, der aus Verkettungsdaten 930 eines IV und einem anfänglichen Zählerwert gebildet wird. Der Geheimtext wird zusammen mit der verschlüsselten CRC, den AAD und zusätzlichen Informationen in dem Datenpaket 940 für einen Hash-Generator 950 bereitgestellt, der einen Hash erzeugt, der einem anderen AES-Block 960 bereitgestellt wird. Die sich ergebenden verschlüsselten Informationen, insbesondere die höchstwertigen 96 Bits (Block 970), werden einem MAC-Schaltkreis 980 bereitgestellt, der einen MAC-Tag erzeugt, der für einen Vergleich mit einem empfangenen Tag verwendet werden soll.
  • In 10 wird jetzt ein Blockschaubild eines Schnittstellenschaltkreises gemäß einer Ausführungsform gezeigt. Wie in 10 gezeigt dient der Schnittstellenschaltkreis 1000 insbesondere dazu, eine gegebene Vorrichtung wie zum Beispiel einen Sender und/oder einen Empfänger über eine Schnittstelle mit einer Verbindung zu verbinden. Bei der in 10 gezeigten Ausführungsform ist der Schnittstellenschaltkreis 1000 ein CXL-Schnittstellenschaltkreis. Wie gezeigt wird, weist der CXL-Schnittstellenschaltkreis 1000 eine Transaktionsschicht 1010, eine Verbindungsschicht 1020 und eine Datenübertragungsschicht 1040 auf. Die CXL-Transaktionsschicht 1010 weist verschiedene Komponenten auf, um eine Transaktionsschichtverarbeitung für PCIe/CXL.io-Kommunikationen und CXL.cache- und CXL.memory-Transaktionen zu aktivieren. Eine PCIe/CXL.io-Transaktionsschicht 1015 weist insbesondere einen Steuerschaltkreis 1012 auf, der verschiedene Steueroperationen einer Transaktionsschicht ausführen kann. Außerdem weist die Transaktionsschicht 1010 außerdem eine PCIe-Transaktionsschicht 1016 und zusätzliche Schaltungen 1018 zum Bearbeiten von Verbesserungen in der PCIe-Transaktionsschicht 1016 für ein Bearbeiten von CXL.io-Transaktionen auf. Die CXL.cache und CXL.memory-Transaktionsschicht 1019 kann ihrerseits eine Transaktionsschichtverarbeitung für diese Protokolle ausführen.
  • Die CXL-Verbindungsschicht 1020 weist verschiedene Komponenten auf, um eine Verbindungsschichtverarbeitung für PCIe/CXL.io-Kommunikationen und CXL.cache- und CXL.memory-Transaktionen zu aktivieren. Eine PCIe/CXL.io- Verbindungsschicht 1025 enthält insbesondere einen Steuerschaltkreis 1022. Bei hier beschriebenen Ausführungsformen kann der Steuerschaltkreis 1022 die verschiedenen Komponenten konfigurieren und/oder selbst Verbindungs-IDE-Operationen einschließlich eines Bereitstellens sowohl einer Datenintegrität als auch einer Verschlüsselung/Entschlüsselung ausführen, so wie sie hier beschrieben werden.
  • Bei einer Ausführungsform kann der Steuerschaltkreis 1022 ein oder mehrere Konfigurationsregister 1027 enthalten oder mit diesen verbunden sein. Diese Konfigurationsregister können ein oder mehrere Felder enthalten, um verschiedene Elemente einschließlich eines hier beschriebenen pCRC-Mechanismus zu steuern. Bei einer speziellen Ausführungsform können die Konfigurationsregister 1027 ein CXL-IDE-Ausschlussregister aufweisen, das einen pCRC Aktivierungs-/Deaktivierungsindikator enthalten kann. Bei einer Umsetzung kann ein logischer Wert ,,1" ein Verbessern der MAC-Erzeugung mit einer Klartext-CRC deaktivieren, und wenn der logische Wert auf „0“ zurückgesetzt wird, kann dieser pCRC-Mechanismus standardmäßig aktiviert werden.
  • Wie außerdem gezeigt wird, weist die Verbindungsschicht 1020 auch eine PCIe-Datenverbindungsschicht 1026 und zusätzliche Schaltungen 1028 zum Bearbeiten von Verbesserungen in der PCIe-Datenverbindungsschicht 1026 für ein Bearbeiten von CXL.io-Transaktionen auf. Die CXL.cache und CXL.memory-Verbindungsschicht 1029 kann ihrerseits eine Verbindungsschichtverarbeitung für diese Protokolle ausführen.
  • In 10 wird die Verbindungsschicht 1020 außerdem mit einem Vermittler/Multiplexer 1030 verbunden, um eingehende Datenströme von der Verbindungsschicht 1020 zu empfangen und um einen Datenstrom (oder einen Teil davon) für eine Kommunikation mit einer Datenübertragungsschicht 1040 auszuwählen.
  • Bei einer Ausführungsform kann die Datenübertragungsschicht 1040 eine Datenübertragungsschicht sein, um die eingehenden Datenpakete für eine Kommunikation über eine physische Verbindung weiter zu verarbeiten, die bei einer Ausführungsform ein Flex-Bus sein kann. Wie dargestellt wird, weist die Datenübertragungsschicht 1040 einen logischen PCIe/CXL-Schaltkreis 1042 und einen elektrischen PCIe/CXL-Schaltkreis 1046 auf. Wie zu sehen ist, enthalten diese Schaltkreise jeweilige Steuerschaltkreise 1045, 1048, um eine Verarbeitung innerhalb der Datenübertragungsschicht 1040 zu steuern. Nachdem die gesamte Verarbeitung abgeschlossen wurde, können die ausgehenden Transaktionsschichtdatenpakete über die Verbindung kommuniziert werden. Auf ähnliche Weise können eingehende Transaktionsschichtdatenpakete in der Datenübertragungsschicht 1040 empfangen werden und in dem Kommunikationsstapel des Schnittstellenschaltkreises 1000 verarbeitet werden. Obwohl bei der Ausführungsform der 10 eine übergeordnete Darstellung gezeigt wird, sind viele Variationen und Alternativen möglich.
  • 11 ist ein Blockschaubild eines Systems gemäß einer Ausführungsform. Wie in 11 gezeigt wird, kann eine Vorrichtung 1105 eine Beschleuniger- oder eine Prozessorvorrichtung sein, die über ein Verbindungselement 1189, das ein einziges Verbindungselement, ein Bus, eine Leiterbahn und so weiter sein kann, mit einem Host-Prozessor 1145 verbunden ist. Die Vorrichtung 1105 und der Host-Prozessor 1145 können über die Verbindung 1189 kommunizieren, um zu ermöglichen, dass Daten und Nachrichten zwischen ihnen ausgetauscht werden. Bei einigen Ausführungsformen kann die Verbindung 1189 funktionsfähig sein, um mehrere Protokolle und Kommunikation von Daten und Nachrichten über die mehreren Verbindungsprotokolle einschließlich eines CXL-Protokolls zu unterstützen, wie es hier beschrieben wird. Die Verbindung 1189 kann zum Beispiel verschiedene Verbindungsprotokolle einschließlich eines nicht-kohärenten Verbindungsprotokolls, eines kohärenten Verbindungsprotokolls und eines Speicherverbindungsprotokolls unterstützen. Zu den nicht-einschränkenden Beispielen von unterstützten Verbindungsprotokollen können PCI, PCIe, USB, IDI, IOSF, SMI, SMI3, SATA, CXL.io, CXL.cache und CXL.mem und/oder Ähnliche gehören.
  • Bei einigen Ausführungsformen kann die Vorrichtung 1105 eine Beschleunigerlogik 1125 einschließlich einer Schaltung 1129 aufweisen. Bei einigen Beispielen können die Beschleunigerlogik 1125 und die Schaltung 1129 Verarbeitungs- und Speicherfähigkeiten bereitstellen. Zu den Beispielen von Vorrichtungen 1105 können Erzeuger-Verbraucher-Vorrichtungen wie zum Beispiel eine Grafik oder ein anderer spezialisierter Beschleuniger, Erzeuger-Verbraucher-Plus-Vorrichtungen, Speichervorrichtungen mit einer softwareunterstützten Vorrichtung, Speichervorrichtungen mit einer autonomen Vorrichtung und Riesencachespeichervorrichtungen gehören. Bei einigen Fällen kann die Beschleunigerlogik 1125 mit einem optionalen Beschleunigerspeicher 1130 verbunden werden. Die Beschleunigerlogik 1125 und die Schaltung 1129 können aufgrund der Vorrichtung die Verarbeitungs- und Speicherfähigkeiten bereitstellen. Zum Beispiel können die Beschleunigerlogik 1125 und die Schaltung 1129 mithilfe zum Beispiel eines kohärenten Verbindungsprotokolls für verschiedene Funktionen wie zum Beispiel kohärente Anforderungen und Speicherdatenströme über eine Schnittstellenlogik 1113 und eine Schaltung 1127 mit dem Host-Prozessor 1145 kommunizieren. Die Schnittstellenlogik 1113 und die Schaltung 1127 können aufgrund der Nachrichten und Daten ein Verbindungsprotokoll für die Kommunikation ermitteln. Es ist selbstverständlich, dass bei den hier beschriebenen Ausführungsformen die Schaltung 1127 eine Verbindungs-IDE-Schaltung aufweisen kann, um sowohl eine Datenintegrität als auch eine Datenverschlüsselung/-entschlüsselung auszuführen, wie sie hier beschrieben werden. Bei einigen Ausführungsformen kann die Schnittstellenlogik 1113 mit einem Mehrprotokoll-Multiplexer 1110 verbunden werden, der eine oder mehrere Protokollwarteschlangen 1112 zum Senden und Empfangen von Nachrichten und Daten mit dem Host-Prozessor 1145 aufweist. Die Protokollwarteschlange 1112 kann protokollspezifisch sein, sodass jedes Verbindungsprotokoll einer speziellen Protokollwarteschlange zugeordnet werden kann. Der Multiplexer 1110 kann auch eine Vermittlungsschaltung umsetzen, um zwischen Kommunikationen mit verschiedenen Protokollen zu vermitteln und um ausgewählte Kommunikationen für eine Datenübertragungsschicht 1115 bereitzustellen.
  • Bei verschiedenen Ausführungsformen kann der Host-Prozessor 1145 ein Hauptprozessor wie zum Beispiel eine CPU sein. Der Host-Prozessor 1145 kann mit einem Host-Speicher 1140 verbunden werden und kann eine Kohärenzlogik (oder Kohärenz- und Cachespeicherlogik) 1155 aufweisen, die eine Cachespeicherhierarchie enthalten kann. Die Kohärenzlogik 1155 kann mithilfe von verschiedenen Verbindungselementen mit einer Schnittstellenlogik 1163 einschließlich einer Schaltung 1161 und einem oder mehreren Kernen 1165a bis 1165n kommunizieren. Bei einigen Ausführungsformen kann die Kohärenzlogik 1155 eine Kommunikation über ein oder mehrere kohärente Verbindungsprotokolle und ein Speicherverbindungsprotokoll ermöglichen.
  • Bei verschiedenen Ausführungsformen kann der Host-Prozessor 1140 eine Vorrichtung 1170 enthalten, um über ein Verbindungselement mit einer Buslogik 1160 zu kommunizieren. Bei einigen Ausführungsformen kann die Vorrichtung 1170 eine E/A-Vorrichtung wie zum Beispiel eine PCIe-E/A-Vorrichtung sein. Bei weiteren Fällen können eine oder mehrere externe Vorrichtungen wie zum Beispiel PCIe-Vorrichtungen mit der Buslogik 1170 verbunden werden.
  • Bei einigen Ausführungsformen kann der Host-Prozessor 1145 eine Schnittstellenlogik 1163 und eine Schaltung 1161 enthalten, um eine Mehrprotokollkommunikation zwischen den Komponenten des Host-Prozessors 1145 und der Vorrichtung 1105 zu aktivieren. Die Schnittstellenlogik 1163 und die Schaltung 1161 können eine Kommunikation von Nachrichten und Daten zwischen dem Host-Prozessor 1145 und der Vorrichtung 1105 gemäß einem oder mehreren Verbindungsprotokollen z.B. einem nicht-kohärenten Verbindungsprotokoll, einem kohärenten Verbindungsprotokoll und einem Speicherverbindungsprotokoll dynamisch verarbeiten und aktivieren. Die Schnittstellenlogik 1163 und die Schaltung 1161 können zum Beispiel einen Nachrichtentyp für jede Nachricht ermitteln und können ermitteln, welches Verbindungsprotokoll aus der Vielzahl von Verbindungsprotokollen jede der Nachrichten verarbeiten soll. Verschiedene Verbindungsprotokolle können verwendet werden, um die Nachrichten zu verarbeiten. Außerdem kann die Schaltung 1161 eine Verbindungs-IDE-Schaltung aufweisen, um sowohl eine Datenintegrität als auch eine Datenverschlüsselung/-entschlüsselung auszuführen, wie sie hier beschrieben werden.
  • Bei einigen Ausführungsformen kann die Schnittstellenlogik 1163 mit einem Mehrprotokoll-Multiplexer 1150 verbunden werden, der eine oder mehrere Protokollwarteschlangen 1152 zum Senden und Empfangen von Nachrichten und Daten mit der Vorrichtung 1105 aufweist. Die Protokollwarteschlange 1152 kann protokollspezifisch sein, sodass jedes Verbindungsprotokoll einer speziellen Protokollwarteschlange zugeordnet werden kann. Der Multiplexer 1150 kann auch eine Vermittlungsschaltung umsetzen, um zwischen Kommunikationen mit verschiedenen Protokollen zu vermitteln und um ausgewählte Kommunikationen für eine Datenübertragungsschicht 1154 bereitzustellen.
  • Die folgenden Beispiele gehören zu weiteren Ausführungsformen.
  • Bei einem Beispiel weist eine Vorrichtung auf: einen Integritätsschaltkreis zum Empfangen von Daten und zum Erzeugen eines Schutzcodes mindestens teilweise aufgrund der Daten; einen kryptographischen Schaltkreis, der mit dem Integritätsschaltkreis verbunden ist, um die Daten in verschlüsselte Daten zu verschlüsseln und um den Schutzcode in einen verschlüsselten Schutzcode zu verschlüsseln; einen MAC-Schaltkreis, der mit dem kryptographischen Schaltkreis verbunden ist, wobei der MAC-Schaltkreis geeignet ist zum Berechnen, mithilfe von Kopfzeileninformationen, der verschlüsselten Daten und des verschlüsselten Schutzcodes, eines MAC, der einen Tag umfasst; und einen Ausgabeschaltkreis zum Senden der Kopfzeileninformationen, der verschlüsselten Daten und des Tags über eine Verbindung zu einem Empfänger.
  • Bei einem Beispiel ist der Ausgabeschaltkreis dazu geeignet, den verschlüsselten Schutzcode nicht an den Empfänger zu senden.
  • Bei einem Beispiel ist der Integritätsschaltkreis dazu geeignet, den Schutzcode zu erzeugen, der eine zyklische Redundanzprüfsumme eines Klartexts umfasst.
  • Bei einem Beispiel umfasst die Vorrichtung ein Konfigurationsregister, das einen ersten Indikator aufweist, wobei, wenn der erste Indikator einen ersten Wert aufweist, der Integritätsschaltkreis dazu geeignet ist, den Schutzcode zu erzeugen, und wenn der erste Indikator einen zweiten Wert aufweist, der Integritätsschaltkreis dazu geeignet ist, den Schutzcode nicht zu erzeugen.
  • Bei einem Beispiel ist die Vorrichtung dazu geeignet, den Schutzcode an einen Klartext anzufügen, der die Daten umfasst, den Klartext in einen Geheimtext zu verschlüsseln und den angefügten Schutzcode in den verschlüsselten Schutzcode zu verschlüsseln.
  • Bei einem Beispiel ist der Integritätsschaltkreis dazu geeignet, einen Schutzwert aus einer Vielzahl von Flits der Daten und einem Polynom zu akkumulieren, das einen vorbestimmten Koeffizienten aufweist, und den Schutzcode als Einerkomplement des akkumulierten Schutzwerts zu erzeugen.
  • Bei einem Beispiel umfasst die Vorrichtung außerdem einen Entschlüsselungsschaltkreis zum Entschlüsseln eines Geheimtexts aus einer Nachricht in einen Klartext, wobei die Nachricht außerdem eine Kopfzeile und einen MAC-Tag umfasst.
  • Bei einem Beispiel umfasst die Vorrichtung außerdem einen zweiten Integritätsschaltkreis, um aus dem Klartext einen Klartextschutzcode zu erzeugen.
  • Bei einem Beispiel umfasst die Vorrichtung außerdem einen zweiten kryptographischen Schaltkreis, um den Klartextschutzcode in einen verschlüsselten Schutzcode zu verschlüsseln.
  • Bei einem Beispiel umfasst die Vorrichtung außerdem einen zweiten MAC-Schaltkreis, um einen MAC-Tag aus dem Geheimtext, der Kopfzeile und dem verschlüsselten Schutzcode zu erzeugen.
  • Bei einem Beispiel umfasst die Vorrichtung außerdem einen Validierungsschaltkreis zum Validieren der Nachricht als Reaktion auf ein Übereinstimmen zwischen dem Tag und dem MAC-Tag.
  • Bei einem weiteren Beispiel umfasst ein Verfahren: Empfangen, in einem Empfänger, einer Nachricht, die eine Kopfzeile, einen Tag und einen Geheimtext enthält; Entschlüsseln, in dem Empfänger, des Geheimtexts, um einen Klartext zu erhalten, Berechnen eines Schutzcodes für den Klartext und Verschlüsseln des Schutzcodes, um einen verschlüsselten Schutzcode zu erhalten; Berechnen, in dem Empfänger, eines MAC mithilfe der Kopfzeile, des Geheimtexts und des verschlüsselten Schutzcodes; und Validieren der Nachricht als Reaktion, darauf, dass der Tag und der MAC übereinstimmen, und Senden des Klartexts zu einem Ziel, das in der Kopfzeile identifiziert ist.
  • Bei einem Beispiel umfasst das Verfahren außerdem: Beginnen des Berechnens des MAC mithilfe der Kopfzeile und des Geheimtexts; und Abschließen des Berechnens des MAC, indem außerdem der verschlüsselte Schutzcode verwendet wird.
  • Bei einem Beispiel umfasst das Verfahren außerdem als Reaktion auf eine Nichtübereinstimmung zwischen dem Tag und dem MAC ein Signalisieren eines Datenfehlers in der Nachricht.
  • Bei einem Beispiel umfasst das Empfangen der Nachricht ein Empfangen der Nachricht, welche die Kopfzeile, den Tag und den Geheimtext enthält, aber keinen Schutzcode enthält.
  • Bei einem Beispiel umfasst das Berechnen des Schutzcodes ein Verwenden eines Polynoms, das einen Koeffizienten von 0xIEDC6F41 aufweist und wobei der Klartext eine Vielzahl von Flits eines MAC-Zeitraums umfasst.
  • Bei einem weiteren Beispiel enthält ein computerlesbares Medium Befehle, die geeignet sind zum Ausführen des Verfahrens nach einem der obigen Beispiele.
  • Bei einem weiteren Beispiel enthält ein computerlesbares Medium Daten, die von mindestens einer Maschine zum Herstellen mindestens eines integrierten Schaltkreises verwendet werden, um das Verfahren nach einem der obigen Beispiele auszuführen.
  • Bei einem weiteren Beispiel umfasst eine Vorrichtung ein Element zum Ausführen des Verfahrens nach einem der obigen Beispiele.
  • Bei einem noch weiteren Verfahren weist ein System auf: mindestens einen Kern; ein Verbindungselement, das mit dem ersten Kern verbunden ist; einen Downstream-Anschluss, der mit dem Verbindungselement verbunden ist; einen Upstream-Anschluss der mit dem Downstream-Anschluss verbunden ist, und eine Vorrichtung, die mit dem Upstream-Anschluss verbunden ist. Bei einem Beispiel umfasst der Downstream-Anschluss: einen ersten Verbindungs-IDE-Schaltkreis zum: Empfangen eines Klartexts, Erzeugen eines Klartextschutzcodes aus dem Klartext, Verschlüsseln des Klartexts in einen Geheimtext, Verschlüsseln des Klartextschutzcodes in einen verschlüsselten Schutzcode, Erzeugen eines MAC aus zusätzlichen Authentifizierungsdaten, dem Geheimtext und dem verschlüsselten Schutzcode; und einen Ausgabeschaltkreis, der mit dem ersten Verbindungs-IDE-Schaltkreis verbunden ist, um eine Nachricht auszugeben, die die zusätzlichen Authentifizierungsdaten, den Geheimtext und den MAC enthält, wobei die Nachricht den verschlüsselten Schutzcode nicht enthält. Bei einem Beispiel umfasst der Upstream-Anschluss: einen Eingangsschaltkreis zum Empfangen der Nachricht, welche die zusätzlichen Authentifizierungsdaten, den Geheimtext und den MAC enthält, wobei die Nachricht den verschlüsselten Schutzcode nicht enthält; und einen zweiten Verbindungs-IDE-Schaltkreis, der mit dem Eingangsschaltkreis verbunden ist, wobei der zweite Verbindungs-IDE-Schaltkreis geeignet ist zum: Entschlüsseln des Geheimtexts in den Klartext, Erzeugen des Klartextschutzcodes aus dem Klartext, Verschlüsseln des Klartextschutzcodes in den verschlüsselten Schutzcode, Erzeugen des MAC aus den zusätzlichen Authentifizierungsdaten, dem Geheimtext und dem verschlüsselten Schutzcode, und Überprüfen, ob der erzeugte MAC mit dem MAC übereinstimmt, der in der Nachricht empfangen wurde. Die Vorrichtung kann mindestens den Klartext empfangen, wenn der erzeugte MAC mit dem MAC übereinstimmt, der in der Nachricht empfangen wurde.
  • Bei einem Beispiel ist der Verbindungs-IDE-Schaltkreis dazu geeignet, einen Schutzwert aus einer Vielzahl von Flits und einem Polynom zu akkumulieren, das einen vorbestimmten Koeffizienten aufweist, und den Schutzcode als Einerkomplement des akkumulierten Schutzwerts zu erzeugen.
  • Bei einem Beispiel ist der Downstream-Anschluss über ein CXL-Verbindungselement mit dem Upstream-Anschluss verbunden, wobei der Upstream-Anschluss geeignet ist zum Senden der Nachricht über das CXL-Verbindungselement an den Downstream-Anschluss gemäß einem von einem CXL.memory-Kommunikationsprotokoll, einem CXL.cache-Kommunikationsprotokoll und einem CXL.io-Kommunikationsprotokoll.
  • Bei einem Beispiel umfasst das System außerdem ein Ausschlussregister, das einen ersten Indikator aufweist, wobei, wenn der erste Indikator einen ersten Wert aufweist, der erste Verbindungs-IDE-Schaltkreis dazu geeignet ist, den Klartextschutzcode zu erzeugen, und wenn der erste Indikator einen zweiten Wert aufweist, der erste Verbindungs-IDE-Schaltkreis dazu geeignet ist, den Klartextschutzcode nicht zu erzeugen.
  • Es ist selbstverständlich, dass verschiedene Kombinationen der obigen Beispiele möglich sind.
  • Es ist zu beachten, dass die Begriffe „Schaltkreis“ und „Schaltungen“ hier untereinander austauschbar verwendet werden. So wie diese Begriffe und der Begriff „Logik“ hier verwendet werden, werden sie verwendet, um sich eigenständig oder in einer beliebigen Kombination auf analoge Schaltungen, digitale Schaltungen, verkabelte Schaltungen, programmierbare Schaltungen, Prozessorschaltungen, Mikrosteuereinheitsschaltungen, Hardwarelogikschaltungen, Zustandsmaschinenschaltungen und/oder auf jeden beliebigen anderen Typ einer physischen Hardwarekomponente zu beziehen. Die Ausführungsformen können in vielen verschiedenen Systemtypen verwendet werden. Bei einer Ausführungsform kann zum Beispiel eine Kommunikationseinrichtung angeordnet sein, um die hier beschriebenen verschiedenen Verfahren und Techniken auszuführen. Selbstverständlich ist der Umfang der vorliegenden Erfindung nicht auf eine Kommunikationseinrichtung beschränkt und stattdessen können sich weitere Ausführungsformen an andere Einrichtungstypen zum Verarbeiten von Befehlen oder ein oder mehrere maschinenlesbare Medien richten, die Befehle enthalten, die als Reaktion darauf, dass sie in einer Computervorrichtung ausgeführt werden, die Vorrichtung veranlassen, eines oder mehrere der hier beschriebenen Verfahren oder eine oder mehrere der hier beschriebenen Techniken auszuführen.
  • Einige Ausführungsformen können in einem Code umgesetzt werden und können in einem nichtflüchtigen Speichermedium gespeichert werden, in dem Befehle gespeichert sind, die verwendet werden können, um ein System zum Ausführen der Befehle zu programmieren. Einige Ausführungsformen können auch als Daten umgesetzt werden und können in einem nichtflüchtigen Speichermedium gespeichert werden, das, wenn es von mindestens einer Maschine verwendet wird, die mindestens eine Maschine veranlassen kann, mindestens einen integrierten Schaltkreis herzustellen, um eine oder mehrere Operationen auszuführen. Noch weitere Ausführungsformen können in einem computerlesbaren Speichermedium umgesetzt werden, das Informationen enthält, die, wenn sie in einem SoC oder einem anderen Prozessor hergestellt werden, geeignet sind zum Konfigurieren des SoC oder des anderen Prozessors, um eine oder mehrere Operationen auszuführen. Das Speichermedium kann, ohne auf diese beschränkt zu sein, jeden beliebigen Typ eines Laufwerks einschließlich flexibler Diskettenlaufwerke, optischer Diskettenlaufwerke, Halbleiterlaufwerken (Solid State Drives, SSD), Compact-Disk-Speicher (Compact Disk Read-Only Memories, CD-ROMs), mehrfach beschreibbarer Compact-Disk-Speicher (Compact Disk Re-Writables, CD-RWs) und magnetooptischer Speicherplatten; Halbleitereinheiten wie zum Beispiel schreibgeschützte Speicher (Read-Only Memories, ROMs), Direktzugriffsspeicher (Random Access Memories, RAMs) wie zum Beispiel dynamische Direktzugriffsspeicher (DRAMs), statische Direktzugriffsspeicher (Static Random Access Memories, SRAMs), löschbare programmierbare Direktzugriffsspeicher (Erasable Programmable Read-Only Memories, EPROMs), Flash-Speicher, elektrisch löschbare programmierbare Direktzugriffsspeicher (Electrically Erasable Programmable Read-Only Memories, EEPROMs), magnetische oder optische Karten, oder jede beliebige andere Medienart aufweisen, die geeignet ist, elektronische Befehle zu speichern.
  • Obwohl die vorliegende Erfindung in Bezug auf eine begrenzte Anzahl von Ausführungsformen beschrieben wurde, sind für den Fachmann zahlreiche Veränderungen und Variationen davon selbstverständlich. Die angefügten Ansprüche sind so zu verstehen, dass sie alle diese Veränderungen und Variationen abdecken, die in den wahren Erfindungsgedanken und den Umfang der vorliegenden Erfindung fallen.

Claims (25)

  1. Vorrichtung, umfassend: einen Integritätsschaltkreis zum Empfangen von Daten und zum Erzeugen eines Schutzcodes mindestens teilweise aufgrund der Daten; einen kryptographischen Schaltkreis, der mit dem Integritätsschaltkreis verbunden ist, um die Daten in verschlüsselte Daten zu verschlüsseln und um den Schutzcode in einen verschlüsselten Schutzcode zu verschlüsseln; einen Nachrichtenauthentifizierungscodeschaltkreis (MAC-Schaltkreis), der mit dem kryptographischen Schaltkreis verbunden ist, wobei der MAC-Schaltkreis geeignet ist, um mithilfe von Kopfzeileninformationen, der verschlüsselten Daten und des verschlüsselten Schutzcodes einen MAC zu berechnen, der einen Tag umfasst; und einen Ausgabeschaltkreis zum Senden der Kopfzeileninformationen, der verschlüsselten Daten und des Tags über eine Verbindung zu einem Empfänger.
  2. Vorrichtung nach Anspruch 1, wobei der Ausgabeschaltkreis geeignet ist, den verschlüsselten Schutzcode nicht an den Empfänger zu senden.
  3. Vorrichtung nach Anspruch 1, wobei der Integritätsschaltkreis geeignet ist, den Schutzcode zu erzeugen, der eine zyklische Redundanzprüfsumme eines Klartexts umfasst.
  4. Vorrichtung nach Anspruch 1, die außerdem ein Konfigurationsregister umfasst, das einen ersten Indikator aufweist, wobei, wenn der erste Indikator einen ersten Wert aufweist, der Integritätsschaltkreis geeignet ist, den Schutzcode zu erzeugen, und wenn der erste Indikator einen zweiten Wert aufweist, der Integritätsschaltkreis geeignet ist, den Schutzcode nicht zu erzeugen.
  5. Vorrichtung nach Anspruch 1, wobei die Vorrichtung geeignet ist, den Schutzcode an einen Klartext anzufügen, der die Daten umfasst, den Klartext in einen Geheimtext zu verschlüsseln und den angefügten Schutzcode in den verschlüsselten Schutzcode zu verschlüsseln.
  6. Vorrichtung nach Anspruch 1, wobei der Integritätsschaltkreis geeignet ist, einen Schutzwert aus einer Vielzahl von Flits der Daten und einem Polynom zu akkumulieren, das einen vorbestimmten Koeffizienten aufweist, und den Schutzcode als Einerkomplement des akkumulierten Schutzwerts zu erzeugen.
  7. Vorrichtung nach einem der Ansprüche 1 bis 6, die außerdem einen Entschlüsselungsschaltkreis zum Entschlüsseln eines Geheimtexts aus einer Nachricht in einen Klartext umfasst, wobei die Nachricht außerdem eine Kopfzeile und einen MAC-Tag umfasst.
  8. Vorrichtung nach Anspruch 7, die außerdem einen zweiten Integritätsschaltkreis zum Erzeugen eines Klartextschutzcodes aus dem Klartext umfasst.
  9. Vorrichtung nach Anspruch 8, die außerdem einen zweiten kryptographischen Schaltkreis zum Verschlüsseln des Klartextschutzcodes in einen verschlüsselten Schutzcode umfasst.
  10. Vorrichtung nach Anspruch 9, die außerdem einen zweiten MAC-Schaltkreis umfasst, um einen MAC-Tag aus dem Geheimtext, der Kopfzeile und dem verschlüsselten Schutzcode zu erzeugen.
  11. Vorrichtung nach Anspruch 10, die außerdem einen Validierungsschaltkreis zum Validieren der Nachricht als Reaktion auf ein Übereinstimmen zwischen dem Tag und dem MAC-Tag umfasst.
  12. Verfahren, umfassend: Empfangen, in einem Empfänger, einer Nachricht, die eine Kopfzeile, einen Tag und einen Geheimtext enthält; Entschlüsseln, in dem Empfänger, des Geheimtexts, um einen Klartext zu erhalten, Berechnen eines Schutzcodes für den Klartext und Verschlüsseln des Schutzcodes, um einen verschlüsselten Schutzcode zu erhalten; Berechnen, in dem Empfänger, eines Nachrichtenauthentifizierungscodes (MAC) mithilfe der Kopfzeile, des Geheimtexts und des verschlüsselten Schutzcodes; und Validieren der Nachricht als Reaktion, darauf, dass der Tag und der MAC übereinstimmen, und Senden des Klartexts zu einem Ziel, das in der Kopfzeile identifiziert ist.
  13. Verfahren nach Anspruch 12, das außerdem umfasst: Beginnen des Berechnens des MAC mithilfe der Kopfzeile und des Geheimtexts; und Abschließen des Berechnens des MAC, indem außerdem der verschlüsselte Schutzcode verwendet wird.
  14. Verfahren nach Anspruch 13, das außerdem als Reaktion auf eine Nichtübereinstimmung zwischen dem Tag und dem MAC ein Signalisieren eines Datenfehlers in der Nachricht umfasst.
  15. Verfahren nach Anspruch 12, wobei das Empfangen der Nachricht ein Empfangen der Nachricht umfasst, welche die Kopfzeile, den Tag und den Geheimtext enthält, aber keinen Schutzcode enthält.
  16. Verfahren nach Anspruch 12, wobei das Berechnen des Schutzcodes ein Verwenden eines Polynoms umfasst, das einen Koeffizienten von 0xIEDC6F41 aufweist und wobei der Klartext eine Vielzahl von Flits eines MAC-Zeitraums umfasst.
  17. Computerlesbares Speichermedium, das computerlesbare Befehle enthält, die, wenn sie ausgeführt werden, geeignet sind, ein Verfahren nach einem der Ansprüche 12 bis 16 umzusetzen.
  18. System, umfassend: mindestens einen Kern; ein Verbindungselement, das mit dem mindestens einen Kern verbunden ist; einen Downstream-Anschluss, der mit dem Verbindungselement verbunden ist, wobei der Downstream-Anschluss umfasst: einen ersten Verbindungsintegritäts- und Datenverschlüsselungsschaltkreis (IDE-Schaltkreis) zum Empfangen eines Klartexts, Erzeugen eines Klartextschutzcodes aus dem Klartext, Verschlüsseln des Klartexts in einen Geheimtext, Verschlüsseln des Klartextschutzcodes in einen verschlüsselten Schutzcode, Erzeugen eines Nachrichtenauthentifizierungscodes (MAC) aus zusätzlichen Authentifizierungsdaten, dem Geheimtext und dem verschlüsselten Schutzcode; und einen Ausgabeschaltkreis, der mit dem ersten Verbindungs-IDE-Schaltkreis verbunden ist, um eine Nachricht auszugeben, die die zusätzlichen Authentifizierungsdaten, den Geheimtext und den MAC enthält, wobei die Nachricht den verschlüsselten Schutzcode nicht enthält; einen Upstream-Anschluss der mit dem Downstream-Anschluss verbunden ist, wobei der Upstream-Anschluss umfasst: einen Eingangsschaltkreis zum Empfangen der Nachricht, welche die zusätzlichen Authentifizierungsdaten, den Geheimtext und den MAC enthält, wobei die Nachricht den verschlüsselten Schutzcode nicht enthält; und einen zweiten Verbindungs-IDE-Schaltkreis, der mit dem Eingangsschaltkreis verbunden ist, wobei der zweite Verbindungs-IDE-Schaltkreis geeignet ist zum Entschlüsseln des Geheimtexts in den Klartext, Erzeugen des Klartextschutzcodes aus dem Klartext, Verschlüsseln des Klartextschutzcodes in den verschlüsselten Schutzcode, Erzeugen des MAC aus den zusätzlichen Authentifizierungsdaten, dem Geheimtext und dem verschlüsselten Schutzcode, und Überprüfen, ob der erzeugte MAC mit dem MAC übereinstimmt, der in der Nachricht empfangen wurde; und eine Vorrichtung, die mit dem Upstream-Anschluss verbunden ist, wobei die Vorrichtung geeignet ist, mindestens den Klartext zu empfangen, wenn der erzeugte MAC mit dem MAC übereinstimmt, der in der Nachricht empfangen wurde.
  19. System nach Anspruch 18, wobei der erste Verbindungs-IDE-Schaltkreis geeignet ist, einen Schutzwert aus einer Vielzahl von Flits und einem Polynom zu akkumulieren, das einen vorbestimmten Koeffizienten aufweist, und den Schutzcode als Einerkomplement des akkumulierten Schutzwerts zu erzeugen.
  20. System nach Anspruch 18, wobei der Downstream-Anschluss über ein Compute-Express-Link-Verbindungselement (CXL-Verbindungselement) mit dem Upstream-Anschluss verbunden ist, wobei der Upstream-Anschluss geeignet ist zum Senden der Nachricht über das CXL-Verbindungselement an den Downstream-Anschluss gemäß einem von einem CXL.memory-Kommunikationsprotokoll, einem CXL.cache-Kommunikationsprotokoll und einem CXL.io-Kommunikationsprotokoll.
  21. System nach Anspruch 20, das außerdem ein Ausschlussregister umfasst, das einen ersten Indikator aufweist, wobei, wenn der erste Indikator einen ersten Wert aufweist, der erste Verbindungs-IDE-Schaltkreis geeignet ist, den Klartextschutzcode zu erzeugen, und wenn der erste Indikator einen zweiten Wert aufweist, der erste Verbindungs-IDE-Schaltkreis geeignet ist, den Klartextschutzcode nicht zu erzeugen.
  22. Vorrichtung, umfassend: ein Integritätselement zum Empfangen von Daten und zum Erzeugen eines Schutzcodes mindestens teilweise aufgrund der Daten; ein kryptographisches Element zum Verschlüsseln der Daten in verschlüsselte Daten und zum Verschlüsseln des Schutzcodes in einen verschlüsselten Schutzcode; ein Nachrichtenauthentifizierungscodeelement (MAC-Element) zum Berechnen mithilfe von Kopfzeileninformationen, der verschlüsselten Daten und des verschlüsselten Schutzcodes eines MAC, der einen Tag umfasst; und ein Ausgabeelement zum Senden der Kopfzeileninformationen, der verschlüsselten Daten und des Tags über eine Verbindung an einen Empfänger.
  23. Vorrichtung nach Anspruch 22, wobei das Ausgabeelement geeignet ist, den verschlüsselten Schutzcode nicht an den Empfänger zu senden.
  24. Vorrichtung nach Anspruch 22, die außerdem ein Konfigurationsregisterelement umfasst, das einen ersten Indikator aufweist, wobei, wenn der erste Indikator einen ersten Wert aufweist, das Integritätselement geeignet ist, den Schutzcode zu erzeugen, und wenn der erste Indikator einen zweiten Wert aufweist, das Integritätselement geeignet ist, den Schutzcode nicht zu erzeugen.
  25. Vorrichtung nach Anspruch 22, wobei die Vorrichtung geeignet ist, den Schutzcode an einen Klartext anzufügen, der die Daten umfasst, den Klartext in einen Geheimtext zu verschlüsseln und den angefügten Schutzcode in den verschlüsselten Schutzcode zu verschlüsseln.
DE102020134250.0A 2020-07-14 2020-12-18 System, Vorrichtung und Verfahren zum Bereitstellen eines Schutzes gegen eine stille Datenkorruption in einer Verbindung Pending DE102020134250A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202063051598P 2020-07-14 2020-07-14
US63/051,598 2020-07-14
US17/111,905 US20210089388A1 (en) 2020-07-14 2020-12-04 System, Apparatus And Method For Providing Protection Against Silent Data Corruption In A Link
US17/111,905 2020-12-04

Publications (1)

Publication Number Publication Date
DE102020134250A1 true DE102020134250A1 (de) 2022-01-20

Family

ID=74879928

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020134250.0A Pending DE102020134250A1 (de) 2020-07-14 2020-12-18 System, Vorrichtung und Verfahren zum Bereitstellen eines Schutzes gegen eine stille Datenkorruption in einer Verbindung

Country Status (2)

Country Link
US (1) US20210089388A1 (de)
DE (1) DE102020134250A1 (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11626995B2 (en) * 2020-09-29 2023-04-11 Infineon Technologies Ag Automatic message assembly during a cryptographic operation
KR20230145167A (ko) * 2021-04-09 2023-10-17 구글 엘엘씨 보안 칩-와이드 통신
US11861046B2 (en) * 2021-04-29 2024-01-02 Infineon Technologies Ag System for an improved safety and security check
EP4332809A1 (de) * 2022-08-31 2024-03-06 Nxp B.V. End-to-end-transaktionsintegrität durch standardverbindung
US20240160543A1 (en) * 2022-11-14 2024-05-16 Meta Platforms, Inc. Datapath integrity testing, validation and remediation

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7305084B2 (en) * 2002-07-24 2007-12-04 Qualcomm Incorporated Fast encryption and authentication for data processing systems
US6950517B2 (en) * 2002-07-24 2005-09-27 Qualcomm, Inc. Efficient encryption and authentication for data processing systems
US7254233B2 (en) * 2002-07-24 2007-08-07 Qualcomm Incorporated Fast encryption and authentication for data processing systems
US7725933B2 (en) * 2003-10-07 2010-05-25 Koolspan, Inc. Automatic hardware-enabled virtual private network system
FR2863076B1 (fr) * 2003-11-28 2006-02-03 Bull Sa Systeme cryptographique haut debit a architecture modulaire.
US7885405B1 (en) * 2004-06-04 2011-02-08 GlobalFoundries, Inc. Multi-gigabit per second concurrent encryption in block cipher modes
US7555128B2 (en) * 2004-11-03 2009-06-30 Ndosa Technologies, Inc. Systems and methods for the application of cryptosystems to the data link layer of packetized wireless networks
US8503679B2 (en) * 2008-01-23 2013-08-06 The Boeing Company Short message encryption
WO2016068941A1 (en) * 2014-10-30 2016-05-06 Hewlett Packard Enterprise Development Lp Secure transactions in a memory fabric
US10715332B2 (en) * 2014-10-30 2020-07-14 Hewlett Packard Enterprise Development Lp Encryption for transactions in a memory fabric
US9773432B2 (en) * 2015-06-27 2017-09-26 Intel Corporation Lightweight cryptographic engine
US10225239B2 (en) * 2016-09-29 2019-03-05 Chelsio Communications, Inc. Method for in-line TLS/SSL cleartext encryption and authentication
US10695681B2 (en) * 2017-06-02 2020-06-30 Tapcentive, Inc. System for unlocking game play data on near field communications system for unlocking game play data on near field communications (NFC) chips to allow for game play on an electronic computing device that uses the game play data
US20190004990A1 (en) * 2017-07-01 2019-01-03 Stephen R. Van Doren Techniques to support mulitple interconnect protocols for an interconnect
US10922439B2 (en) * 2018-06-29 2021-02-16 Intel Corporation Technologies for verifying memory integrity across multiple memory regions
US11210664B2 (en) * 2018-10-02 2021-12-28 Capital One Services, Llc Systems and methods for amplifying the strength of cryptographic algorithms
US11283598B2 (en) * 2019-01-25 2022-03-22 Infineon Technologies Ag Selective real-time cryptography in a vehicle communication network
US11743240B2 (en) * 2019-03-08 2023-08-29 Intel Corporation Secure stream protocol for serial interconnect
US11232058B2 (en) * 2019-03-08 2022-01-25 Intel Corporation Enabling sync header suppression latency optimization in the presence of retimers for serial interconnect
US11552781B2 (en) * 2019-04-05 2023-01-10 Honeywell International Inc. Using error detection bits for cryptographic integrity and authentication
US20200328879A1 (en) * 2019-08-13 2020-10-15 Intel Corporation Secure communications over computer buses
US20200151362A1 (en) * 2019-08-21 2020-05-14 Intel Corporation Integrity and data encryption (ide) over computer buses
IT201900023544A1 (it) * 2019-12-10 2021-06-10 Fpt Ind Spa Metodo e sistema di scambio di dati su una rete per incrementare misure di sicurezza della rete, veicolo comprendente tale sistema

Also Published As

Publication number Publication date
US20210089388A1 (en) 2021-03-25

Similar Documents

Publication Publication Date Title
DE102020134250A1 (de) System, Vorrichtung und Verfahren zum Bereitstellen eines Schutzes gegen eine stille Datenkorruption in einer Verbindung
DE102013203415B4 (de) Erstellen eines abgeleiteten Schlüssels aus einem kryptographischen Schlüssel mittels einer physikalisch nicht klonbaren Funktion
EP2974114B1 (de) System und verfahren für counter-mode-verschlüsselte kommunikation mit verminderter bandbreite
DE60317296T2 (de) Sicherheitsprozessorspiegelung
US11693754B2 (en) Aggregate GHASH-based message authentication code (MAC) over multiple cachelines with incremental updates
DE112012002277B4 (de) Verknüpfen von Schlüssel-Steuerdaten bei Diensten allgemeiner kryptografischer Architektur
ES2917200T3 (es) Verificación de procesos de datos en una red de recursos informáticos
DE102005025169B4 (de) Kommunikationsvorrichtung und Verfahren zur Übermittlung von Daten
DE102019102229A1 (de) Techniken zum Erkennen und Korrigieren von Fehlern in Daten
DE202015009800U1 (de) Sicherheits-Plug-In für eine System-on-a-Chip-Plattform
DE102009045133A1 (de) Verfahren zum Manipulationsschutz von Sensordaten und Sensor hierzu
DE102009061045A1 (de) Erzeugung eines Session-Schlüssels zur Authentisierung und sicheren Datenübertragung
DE69722891T2 (de) Entschlüsselung von wiederholt übertragenen daten in einem verschlüsselten kommunikationssystem
DE102007044330A1 (de) Verschlüsselungsprozessor und Verfahren zum Schreiben und Lesen von Daten
US10699031B2 (en) Secure transactions in a memory fabric
US10715332B2 (en) Encryption for transactions in a memory fabric
DE102015119896A1 (de) Technologien für Datenintegrität von Mehrfachnetzwerkpaketoperationen
US10725861B2 (en) Error correction code memory security
AT517983B1 (de) Schutz eines Computersystems vor Seitenkanalattacken
Padilha et al. Belisarius: BFT storage with confidentiality
DE102012200197A1 (de) Vorrichtung und Verfahren zur Fehlerkorrektur und zum Schutz vor Datenverfälschung
EP3304802A1 (de) Verfahren zur sicherstellung der informationssicherheit von über einen datenbus übertragenen daten sowie datenbussystem
CN106788969B (zh) 一种数据文件的传输方法
DE102015217724A1 (de) Vorrichtung und Verfahren zum Erstellen einer asymmetrischen Prüfsumme
Hussain et al. A bandwidth-aware authentication scheme for packet-integrity attack detection on Trojan infected NoC

Legal Events

Date Code Title Description
R012 Request for examination validly filed