DE102022101490A1 - Technologien zur echtzeitaktualisierung von verschlüsselungsschlüsseln - Google Patents

Technologien zur echtzeitaktualisierung von verschlüsselungsschlüsseln Download PDF

Info

Publication number
DE102022101490A1
DE102022101490A1 DE102022101490.8A DE102022101490A DE102022101490A1 DE 102022101490 A1 DE102022101490 A1 DE 102022101490A1 DE 102022101490 A DE102022101490 A DE 102022101490A DE 102022101490 A1 DE102022101490 A1 DE 102022101490A1
Authority
DE
Germany
Prior art keywords
point
processor
encryption key
key
updated
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
DE102022101490.8A
Other languages
English (en)
Inventor
Vinit Mathew Abraham
Raghunandan Makaram
Kirk S. Yap
Siva Prasad Gadey
Tanmoy KAR
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 DE102022101490A1 publication Critical patent/DE102022101490A1/de
Pending 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/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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0841Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/068Network architectures or network communication protocols for network security for supporting key management in a packet data network using time-dependent keys, e.g. periodically changing keys
    • 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]
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0872Generation of secret information including derivation or calculation of cryptographic keys or passwords using geo-location information, e.g. location data, time, relative position or proximity to other entities
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • H04L9/16Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms the keys or algorithms being changed during operation
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Multi Processors (AREA)
  • Communication Control (AREA)

Abstract

Es werden Techniken zur Echtzeitaktualisierung von Verschlüsselungsschlüsseln offenbart. Bei der veranschaulichenden Ausführungsform wird eine verschlüsselte Verbindung zwischen einem lokalen und einem fernen Prozessor über eine Punkt-zu-Punkt-Zwischenverbindung hergestellt. Die verschlüsselte Verbindung wird für einige Zeit betrieben, bis der Verschlüsselungsschlüssel aktualisiert werden sollte. Der lokale Prozessor sendet eine Schlüsselaktualisierungsnachricht an den fernen Prozessor, die den fernen Prozessor über die Änderung benachrichtigt. Der ferne Prozessor bereitet die Änderung vor und sendet eine Schlüsselaktualisierungsbestätigungsnachricht an den lokalen Prozessor. Der lokale Prozessor sendet dann eine Schlüsselumschaltnachricht an den fernen Prozessor. Der lokale Prozessor pausiert die Übertragung der verschlüsselten Nachricht, während der ferne Prozessor die Verwendung der verschlüsselten Nachricht abschließt. Nach einer Pause setzt der lokale Prozessor das Senden verschlüsselter Nachrichten mit dem aktualisierten Verschlüsselungsschlüssel fort.

Description

  • STAND DER TECHNIK
  • Kommunikationskanäle in Rechensystemen wie zum Beispiel ein Kommunikationskanal zwischen verschiedenen Komponenten eines Rechensystems werden verschlüsselt. In einigen Fällen sollten die Verschlüsselungsschlüssel regelmäßig aktualisiert werden. Die Verschlüsselungsschlüssel können aktualisiert werden, indem ein Kommunikationskanal geschlossen wird, die Verschlüsselungsschlüssel aktualisiert werden und danach der Kommunikationskanal zusammen mit einem warmen Reset der Komponenten neu gestartet wird, die über den Kommunikationskanal kommunizieren.
  • Figurenliste
  • Die hier beschriebenen Konzepte sind in den beigefügten Figuren beispielhaft aber nicht einschränkend veranschaulicht. Der Einfachheit und Deutlichkeit der Veranschaulichung halber sind die in den Figuren veranschaulichten Elemente nicht notwendigerweise maßstabsgetreu gezeichnet. Wo es als angebracht angesehen wird, werden Bezugszeichen in den verschiedenen Figuren wiederholt, um entsprechende oder analoge Elemente zu kennzeichnen.
    • 1 veranschaulicht eine Ausführungsform eines Rechensystems einschließlich einer Zwischenverbindungsarchitektur.
    • 2 veranschaulicht eine Ausführungsform einer Zwischenverbindungsarchitektur, die einen geschichteten Stapel aufweist.
    • 3 veranschaulicht eine Ausführungsform eines Sender-Empfänger-Paars für eine Zwischenverbindungsarchitektur.
    • 4 veranschaulicht eine beispielhafte Implementierung eines Rechensystems, das zwei Hostprozessoren beinhaltet, die durch eine Verbindung gekoppelt sind.
    • Die 5 bis 7 sind ein vereinfachtes Flussdiagramm von mindestens einer Ausführungsform eines Verfahrens zum Echtzeitaktualisieren von Verschlüsselungsschlüsseln, das durch die Rechenvorrichtung der 1 durchgeführt werden kann.
    • 8 veranschaulicht eine Ausführungsform eines Blockdiagramms für ein Rechensystem, das einen Mehrkernprozessor beinhaltet.
    • 9 veranschaulicht eine Ausführungsform eines Blocks für ein Rechensystem, das mehrere Prozessoren beinhaltet.
  • AUSFÜHRLICHE BESCHREIBUNG DER ZEICHNUNGEN
  • In der folgenden Beschreibung werden zahlreiche spezifische Details wie Beispiele von spezifischen Typen von Prozessoren und Systemkonfigurationen, spezifischen Hardwarestrukturen, spezifischen architektonischen und mikroarchitektonischen Details, spezifischen Registerkonfigurationen, spezifischen Befehlstypen, spezifischen Systemkomponenten, spezifischen Maßen/Höhen, spezifischen Prozessorpipelinestufen und deren Betrieb usw. dargelegt, um ein gründliches Verständnis der vorliegenden Offenbarung bereitzustellen. Für einen Fachmann ist es jedoch offensichtlich, dass diese spezifischen Einzelheiten nicht eingesetzt werden müssen, um Ausführungsformen der vorliegenden Offenbarung in die Praxis umzusetzen. In anderen Fällen wurden bekannte Komponenten oder Verfahren, wie zum Beispiel spezifische und alternative Prozessorarchitekturen, spezifische logische Schaltungen/Codes für beschriebene Algorithmen, ein spezifischer Firmwarecode, eine spezifische Zwischenverbindungsoperation, spezifische Logikkonfigurationen, spezifische Herstellungstechniken und -materialien, spezifische Compiler-Implementierungen, ein spezifischer Ausdruck von Algorithmen in Code, spezifische Abschalt- und Ansteuerungstechniken/-logiken und andere spezifische Betriebsdetails von Computersystemen nicht ausführlich beschrieben, um ein unnötiges Komplizieren der Ausführungsformen der vorliegenden Offenbarung zu vermeiden.
  • Obwohl die folgenden Ausführungsformen unter Bezugnahme auf Energieeinsparung und Energieeffizienz in spezifischen integrierten Schaltungen, wie zum Beispiel in Rechenplattformen oder Mikroprozessoren, beschrieben sein können, sind andere Ausführungsformen auf andere Typen integrierter Schaltungen und andere Typen von Logikvorrichtungen anwendbar. Ähnliche Techniken und Lehren der hier beschriebenen Ausführungsformen können auf andere Typen von Schaltungen oder Halbleitervorrichtungen angewandt werden, die auch von einer besseren Energieeffizienz und Energieeinsparung profitieren können. Zum Beispiel sind die offenbarten Ausführungsformen nicht auf Desktop-Computersysteme oder Ultrabooks™ beschränkt. Und sie können auch in anderen Vorrichtungen verwendet werden, wie zum Beispiel in tragbaren Vorrichtungen, Tablets oder dünnen Notebooks, Ein-Chip-System- (SoC-)Vorrichtungen und eingebetteten Anwendungen. Einige Beispiele von tragbaren Vorrichtungen beinhalten Mobiltelefone, Internetprotokollvorrichtungen, Digitalkameras, persönliche digitale Assistenten (PDAs) und tragbare PCs. Eingebettete Anwendungen weisen typischerweise einen Mikrocontroller, einen digitalen Signalprozessor (DSP), ein Ein-Chip-System, einen Netzwerkcomputer (NetPC), Set-Top-Boxen, Netzwerk-Hubs, WAN-Schalter (WAN: Wide Area Network - Fernnetzwerk) oder ein beliebiges anderes System auf, das die nachfolgend gelehrten Funktionen und Operationen ausführen kann. Darüber hinaus sind die hier beschriebenen Einrichtungen, Verfahren und Systeme nicht auf physische Rechenvorrichtungen beschränkt, sondern können auch Softwareoptimierungen für eine Energieeinsparung und -effizienz betreffen. Wie aus der nachfolgenden Beschreibung einfach ersichtlich wird, sind die hier beschriebenen Ausführungsformen von Verfahren, Vorrichtungen, Einrichtungen und Systemen (egal ob mit Bezug auf Hardware, Firmware, Software oder eine Kombination davon) für eine Zukunft mit einer „grünen Technologie“ lebenswichtig, die unter Berücksichtigung der Leistungsfähigkeit abgewogen werden muss.
  • Mit der Weiterentwicklung von Rechensystemen werden die Komponenten darin immer komplexer. Infolgedessen unterliegt die Zwischenverbindungsarchitektur zum Koppeln und Kommunizieren zwischen den Komponenten auch einer zunehmenden Komplexität, um zu gewährleisten, dass Bandbreitenanforderungen für einen optimalen Komponentenbetrieb erfüllt werden. Ferner verlangen unterschiedliche Marktsegmente unterschiedliche Aspekte von Zwischenverbindungsarchitekturen, um für die Marktbedürfnisse geeignet zu sein. Zum Beispiel benötigen Server eine immer höhere Leistungsfähigkeit, während das mobile Ökosystem manchmal in der Lage ist, einen Teil der Gesamtleistungsfähigkeit zum Zweck von Energieeinsparungen zu opfern. Dennoch ist es ein singulärer Zweck der meisten Strukturen, eine höchstmögliche Leistungsfähigkeit bei einer maximalen Energieeinsparung bereitzustellen. Im Folgenden wird eine Anzahl von Zwischenverbindungen erörtert, die potenziell von Aspekten der vorliegenden Offenbarung profitieren würden.
  • Bezugnehmend auf 1 wird eine Ausführungsform einer Struktur veranschaulicht, die aus Punkt-zu-Punkt-Verbindungen besteht, die einen Satz von Komponenten miteinander verbinden. Das System 100 weist einen Prozessor 105, einen Prozessor 107, einen mit dem Prozessor 105 gekoppelten Systemspeicher 110, einen mit dem Prozessor 107 gekoppelten Systemspeicher 112 und einen Controller-Hub 115 auf. Der Prozessor 105 beinhaltet ein beliebiges Verarbeitungselement, wie zum Beispiel einen Mikroprozessor, einen Hostprozessor, einen eingebetteten Prozessor, einen Coprozessor oder einen anderen Prozessor. Der Prozessor 105 und der Prozessor 107 sind durch eine Verbindung 109 verbunden. Bei der veranschaulichenden Ausführungsform ist die Verbindung 109 eine kohärente Punkt-zu-Punkt-Zwischenverbindung mit niedriger Latenz, wie zum Beispiel eine Quick-Path-Zwischenverbindung (QPI) oder eine Ultra-Path-Zwischenverbindung (UPI). Die Prozessoren 105 und 107 sind über Vorderseitenbusse (FSB) 106 bzw. 108 mit dem Controller-Hub 115 gekoppelt. Es versteht sich, dass das System 100 bei einigen Ausführungsformen mehr oder weniger Prozessoren beinhalten kann. In Systemen 100 mit mehr Prozessoren kann jedes Paar von Prozessoren durch eine Verbindung 109 miteinander verbunden sein. Bei einer Ausführungsform ist der FSB 106 eine serielle Punkt-zu-Punkt-Zwischenverbindung, wie weiter unten beschrieben wird. Bei einer anderen Ausführungsform beinhaltet die Verbindung 106 eine serielle differenzielle Zwischenverbindungsarchitektur, die mit einem unterschiedlichen Zwischenverbindungsstandard kompatibel ist, wie zum Beispiel einer Quick-Path-Zwischenverbindung (QPI) oder einer Ultra-Path-Zwischenverbindung (UPI). Bei einigen Implementierungen kann das System unter anderen beispielhaften Merkmalen eine Logik zum Implementieren mehrerer Protokollstapel und ferner eine Logik zum Aushandeln alternativer Protokolle aufweisen, die über einer gemeinsamen Bitübertragungsschicht ausgeführt werden müssen.
  • Der Systemspeicher 110 und 112 beinhaltet eine beliebige Speichervorrichtung, wie zum Beispiel einen Direktzugriffsspeicher (RAM), einen nichtflüchtigen (NV) Speicher oder einen anderen Speicher, auf den die Vorrichtungen in dem System 100 zugreifen können. Die Systemspeicher 110 und 112 sind über eine Speicherschnittstelle mit dem Prozessor 105 bzw. 107 gekoppelt. Beispiele einer Speicherschnittstelle umfassen eine Double-Data-Rate- (DDR- )Speicherschnittstelle, eine Dual-Channel-DDR-Speicherschnittstelle und eine Dynamic-RAM-(DRAM-)Speicherschnittstelle.
  • Bei einer Ausführungsform ist der Controller-Hub 115 ein Root-Hub, ein Root-Komplex oder ein Root-Controller in einer Peripheral Component Interconnect Express- (PCIe- oder PCIE-)Verbindungshierarchie. Beispiele für den Controller-Hub 115 umfassen einen Chipsatz, einen Speicher-Controller-Hub (MCH), eine Nordbrücke, einen Zwischenverbindungs-Controller-Hub (ICH), eine Südbrücke und einen Root-Controller/Hub. Oft bezieht sich der Begriff Chipsatz auf zwei physisch voneinander getrennte Controller-Hubs, das heißt, einen Memory-Controller-Hub (MCH), der mit einem Zwischenverbindungs-Controller-Hub (ICH) gekoppelt ist. Es ist anzumerken, dass aktuelle Systeme häufig den MCH beinhalten, der mit den Prozessoren 105 und 107 integriert ist, während der Controller 115 mit E/A-Vorrichtungen auf eine ähnliche Weise kommunizieren soll, wie weiter unten beschrieben wird. Bei einigen Ausführungsformen wird Peer-to-Peer-Routing optional durch den Root-Komplex 115 unterstützt.
  • Hier ist der Controller-Hub 115 über die serielle Verbindung 119 mit dem Schalter/der Brücke 120 gekoppelt. Die Eingabe/Ausgabe-Module 117 und 121, die auch als Schnittstellen/Anschlüsse 117 und 121 bezeichnet werden können, beinhalten/implementieren einen geschichteten Protokollstapel, um eine Kommunikation zwischen dem Controller-Hub 115 und dem Schalter 120 bereitzustellen. Bei einer Ausführungsform sind mehrere Vorrichtungen in der Lage, mit dem Schalter 120 gekoppelt zu werden.
  • Der Schalter/die Brücke 120 leitet Pakete/Nachrichten von der Vorrichtung 125 aufwärts, das heißt, eine Hierarchie in Richtung auf einen Root-Komplex zum Controller-Hub 115, und abwärts, das heißt, eine Hierarchie weg von einem Root-Controller, von dem Prozessor 105 oder dem Systemspeicher 110 zur Vorrichtung 125. Der Schalter 120 wird bei einer Ausführungsform als eine logische Anordnung mehrerer virtueller PCI-zu-PCI-Brückenvorrichtungen bezeichnet. Die Vorrichtung 125 beinhaltet jede interne oder externe Vorrichtung oder eine Komponente, die dazu dient, um mit einem elektronischen System, wie zum Beispiel einer E/A-Vorrichtung, einem Network-Interface-Controller (NIC), einer Erweiterungskarte, einem Audio-Prozessor, einem Netzwerkprozessor, einer Festplatte, einer Speichervorrichtung, einer CD/DVD-ROM, einem Monitor, einem Drucker, einer Maus, einer Tastatur, einem Router, einer tragbaren Speichervorrichtung, einer Firewire-Vorrichtung, einer Universal-Serial-Bus- USB-)Vorrichtung, einem Scanner und anderen Eingabe-/Ausgabevorrichtungen, gekoppelt zu werden. Oft wird in der PCIe-Umgangssprache eine derartige Vorrichtung als ein Endpunkt bezeichnet. Obwohl dies nicht speziell gezeigt wird, kann die Vorrichtung 125 eine PCIe-zu-PCI/PCI-X-Brücke aufweisen, um PCI-Vorrichtungen von älteren oder anderen Versionen zu unterstützen. Die Endpunktvorrichtungen in PCIe werden häufig als etablierte PCIe- oder Root-Komplex-integrierte Endpunkte klassifiziert.
  • Der Grafikbeschleuniger 130 ist auch über die serielle Verbindung 132 mit dem Controller-Hub 115 gekoppelt. Bei einer Ausführungsform ist der Grafikbeschleuniger 130 mit einem MCH gekoppelt, der mit einem ICH gekoppelt ist. Der Schalter 120 und dementsprechend die E/A-Vorrichtung 125 ist dann mit dem ICH gekoppelt. Die E/A-Module 131 und 118 dienen auch dazu, einen geschichteten Protokollstapel zu implementieren, um zwischen dem Grafikbeschleuniger 130 und dem Controller-Hub 115 zu kommunizieren. Ähnlich der obigen MCH-Erörterung kann ein Grafik-Controller oder der Grafikbeschleuniger 130 selbst in den Prozessor 105 integriert sein. Darüber hinaus können eine oder mehrere Verbindungen (zum Beispiel 123) des Systems eine oder mehrere Erweiterungsvorrichtungen (z. B. 150), wie zum Beispiel Retimer, Repeater, usw., beinhalten.
  • Bezugnehmend auf 2 wird eine Ausführungsform eines geschichteten Protokollstapels veranschaulicht. Der geschichtete Protokollstapel 200 beinhaltet eine beliebige Form eines geschichteten Kommunikationsstapels, wie zum Beispiel einen Quick-Path-Interconnect- (QPI-) Stapel, einen Ultra-Path-Interconnect- (UPI-) Stapel, einen PCIe-Stapel, einen CXL (Compute-Express-Link), einen Hochleistungsrechenzwischenverbindungsstapel der nächsten Generation oder einen anderen geschichteten Stapel. Obwohl sich die unmittelbar nachfolgende Erörterung unter Bezugnahme auf die 1 bis 3 auf einen UPI-Stapel bezieht, können die gleichen Konzepte auf andere Zwischenverbindungsstapel angewandt werden. Bei einer Ausführungsform ist der Protokollstapel 200 ein UPI-Protokollstapel, der die Protokollschicht 202, die Routingschicht 205, die Verbindungsschicht 210 und die Bitübertragungsschicht 220 beinhaltet. Eine Schnittstelle oder eine Verbindung, wie zum Beispiel die Verbindung 109 in 1, kann als Kommunikationsprotokollstapel 200 dargestellt werden. Die Repräsentation als ein Kommunikationsprotokollstapel kann auch als ein Modul oder eine Schnittstelle bezeichnet werden, das bzw. die einen Protokollstapel implementiert/aufweist.
  • Die UPI verwendet Pakete, um Informationen zwischen Komponenten zu kommunizieren. Die Pakete werden in der Protokollschicht 202 gebildet, um die Informationen von der Übertragungskomponente zu der Empfangskomponente zu übertragen. Wenn die übertragenen Pakete durch die anderen Schichten fließen, werden sie mit zusätzlichen Informationen erweitert, die zum Bearbeiten von Paketen in diesen Schichten notwendig sind. Auf der Empfangsseite findet der umgekehrte Prozess statt, und die Pakete werden von ihrer Wiedergabe in der Bitübertragungsschicht 220 in die Wiedergabe in der Datensicherungsschicht 210 und schließlich in die Form umgewandelt, die durch die Protokollschicht 202 der Empfangsvorrichtung verarbeitet werden kann.
  • Protokollschicht
  • Bei einer Ausführungsform dient die Protokollschicht 202 dazu, eine Schnittstelle zwischen einem Verarbeitungskern einer Vorrichtung und der Zwischenverbindungsarchitektur, wie zum Beispiel der Datenverbindungsschicht 210 und der Bitübertragungsschicht 220, bereitzustellen. In dieser Hinsicht ist eine Hauptverantwortung der Protokollschicht 202 das Zusammensetzen und Zerlegen von Paketen. Die Pakete können in verschiedene Klassen kategorisiert werden, wie zum Beispiel Heim, Snoop, Datenantwort, Nichtdatenantwort, nichtkohärenter Standard und nichtkohärente Überbrückung.
  • Routing-Schicht
  • Die Routing-Schicht 205 kann verwendet werden, um den Kurs zu bestimmen, den ein Paket über die verfügbaren Systemzwischenverbindungen durchlaufen wird. Routingtabellen können durch eine Firmware definiert werden und beschreiben die möglichen Pfade, denen ein Paket folgen kann. In kleinen Konfigurationen, wie zum Beispiel einer Zwei-Sockel-Plattform, sind die Routingoptionen beschränkt und die Routingtabellen sind sehr einfach. Für größere Systeme können die Routing-Tabellenoptionen komplexer sein, welche die Flexibilität des Routings und des Umleitens eines Datenverkehrs vorgeben.
  • Sicherungsschicht
  • Die Sicherungsschicht 210, die auch als Datensicherungsschicht 210 bezeichnet wird, funktioniert als eine Zwischenstufe zwischen der Protokollschicht 202 und der Bitübertragungsschicht 220. Bei einer Ausführungsform ist eine Verantwortung der Sicherungsschicht 210 das Bereitstellen eines zuverlässigen Mechanismus zum Austauschen von Paketen zwischen zwei Komponenten. Eine Seite der Datensicherungsschicht 210 akzeptiert Pakete, die durch die Protokollschicht 202 zusammengesetzt werden, wendet einen Fehlererkennungscode an, d. h., einen CRC, und übermittelt die modifizierten Pakete zu der Bitübertragungsschicht 220 für eine Übertragung über eine physische Verbindung zu einer externen Vorrichtung. Beim Empfangen von Paketen prüft die Sicherungsschicht 210 den CRC und weist, falls ein Fehler erkannt wird, die Übertragungsvorrichtung an, erneut zu senden. Bei der veranschaulichenden Ausführungsform wird der CRC auf der Ebene der Flusssteuerungseinheit (Flit) anstatt auf der Paketebene durchgeführt. Bei der veranschaulichenden Ausführungsform beträgt jede Flit 80 Bits. Bei anderen Ausführungsformen kann jede Flit eine beliebige geeignete Länge aufweisen, wie zum Beispiel 16, 20, 32, 40, 64, 80 oder 128 Bits.
  • Bei der veranschaulichenden Ausführungsform verwaltet die Sicherungsschicht 210 eine Credit-basierte Flusssteuerung. In diesem Schema kündigt eine Vorrichtung, wie zum Beispiel der Prozessor 105 in 1, eine anfängliche Credit-Menge für jeden der Empfangspuffer in der Verbindungsschicht 210 an. Eine externe Vorrichtung am entgegengesetzten Ende der Verbindung, wie zum Beispiel der Prozessor 107 in 1, zählt die Anzahl von Credits, die von jedem Paket oder jeder Flit verbraucht werden. Eine Transaktion kann übertragen werden, falls die Transaktion ein Credit-Limit nicht übersteigt. Nach dem Empfangen einer Antwort wird eine Credit-Menge wiederhergestellt. Ein Vorteil eines Credit-Schemas ist es, dass die Latenz der Credit-Rückgabe die Leistungsfähigkeit nicht beeinträchtigt, vorausgesetzt, dass das Credit-Limit nicht erreicht wird.
  • Bei einigen Ausführungsformen kann die Sicherungsschicht 210 eine Verschlüsselung und eine Entschlüsselung an Phits, Flits oder Paketen durchführen. Die Verschlüsselungsfunktionen werden weiter unten ausführlicher beschrieben. Bei anderen Ausführungsformen können die Verschlüsselung und Entschlüsselung in der Bitübertragungsschicht 220 oder der Protokollschicht 202 erfolgen.
  • Bitübertragungsschicht
  • Bei einer Ausführungsform weist die Bitübertragungsschicht 220 einen logischen Teilblock 221 und einen elektrischen Teilblock 222 auf, um ein Paket physisch zu einer externen Vorrichtung zu übertragen. Hier ist der logische Teilblock 221 für die „digitalen“ Funktionen der Bitübertragungsschicht 221 zuständig. In dieser Hinsicht beinhaltet der logische Teilblock einen Übertragungsabschnitt zum Vorbereiten ausgehender Informationen für eine Übertragung durch den physischen Teilblock 222 und einen Empfängerabschnitt zum Identifizieren und Vorbereiten empfangener Informationen, bevor sie zu der Sicherungsschicht 210 weitergeleitet werden.
  • Der physische Block 222 beinhaltet einen Sender und einen Empfänger. Der Sender wird durch den logischen Teilblock 221 mit Symbolen versorgt, die der Sender serialisiert und zu einer externen Vorrichtung überträgt. Der Empfänger wird mit serialisierten Symbolen von einer externen Vorrichtung versorgt und wandelt die empfangenen Signale in einen Bitstrom um. Der Bitstrom wird deserialisiert und dem logischen Teilblock 221 zugeführt. Bei der veranschaulichenden Ausführungsform sendet und empfängt die Bitübertragungsschicht 220 Bits in Gruppen von 20 Bits, die eine physische Einheit oder Phit genannt werden. Bei einigen Ausführungsformen wird eine Leitungscodierung, wie zum Beispiel ein 8b/10b-Übertragungscode oder ein 64b/66b-Übertragungscode, eingesetzt. Bei einigen Ausführungsformen werden spezielle Symbole verwendet, um ein Paket in Frames 223 zu packen. Bei einem Beispiel stellt der Empfänger zusätzlich dazu auch einen aus dem eingehenden seriellen Strom wiederhergestellten Symboltakt bereit.
  • Obwohl die Protokollschicht 202, die Routingschicht 205, die Sicherungsschicht 210 und die Bitübertragungsschicht 220, wie oben angegeben wird, unter Bezugnahme auf eine spezifische Ausführungsform eines QPI-Protokollstapels erörtert werden, ist ein geschichteter Protokollstapel nicht darauf beschränkt. Tatsächlich kann ein beliebiges geschichtetes Protokoll enthalten sein/implementiert werden. Als ein Beispiel weist ein Anschluss/eine Schnittstelle, der/die als ein geschichtetes Protokoll dargestellt ist, auf: (1) eine erste Schicht zum Zusammensetzen von Paketen, d. h., eine Protokollschicht; (2) eine zweite Schicht zum Sequenzieren von Paketen, d. h., eine Sicherungsschicht; und (3) eine dritte Schicht zum Übertragen der Pakete, d. h., eine Bitübertragungsschicht. Als ein spezifisches Beispiel wird ein geschichtetes CSI-Protokoll (CSI: Common Standard Interface) verwendet.
  • Als Nächstes wird unter Bezugnahme auf 3 eine Ausführungsform einer seriellen UPI-Punkt-zu-Punkt-Verbindung veranschaulicht. Obwohl eine Ausführungsform einer seriellen UPI-Punkt-zu-Punkt-Verbindung veranschaulicht ist, ist eine serielle Punkt-zu-Punkt-Verbindung nicht darauf beschränkt, da sie einen beliebigen Übertragungspfad zum Übertragen serieller Daten beinhaltet. Bei der gezeigten Ausführungsform beinhaltet eine serielle UPI-Punkt-zu-Punkt-Basisverbindung zwei differenziell angesteuerte Niederspannungssignalpaare: ein Sendepaar 306/312 und ein Empfangspaar 311/307. Dementsprechend beinhaltet die Vorrichtung 305 eine Übertragungslogik 306 zum Übertragen von Daten zu der Vorrichtung 310 und eine Empfangslogik 307 zum Empfangen von Daten von der Vorrichtung 310. Mit anderen Worten sind zwei Übertragungspfade, d. h., die Pfade 316 und 317, und zwei Empfangspfade, d. h., die Pfade 318 und 319, in einer UPI-Verbindung enthalten.
  • Ein Übertragungspfad bezieht sich auf jeden Pfad zum Übertragen von Daten, wie zum Beispiel eine Übertragungsleitung, eine Kupferleitung, eine optische Leitung, einen drahtlosen Kommunikationskanal, eine Infrarotkommunikationsverbindung oder einen anderen Kommunikationspfad. Eine Verschaltung zwischen zwei Vorrichtungen, wie zum Beispiel der Vorrichtung 305 und der Vorrichtung 310, wird als eine Verbindung, wie zum Beispiel die Verbindung 315, bezeichnet. Eine Verbindung kann eine Spur unterstützen - wobei jede Spur eine Gruppe von differenziellen Signalpaaren (ein Paar für Übertragung, ein Paar für Empfang) darstellt. Um die Bandbreite zu skalieren, kann eine Verbindung mehrere mit xN bezeichnete Spuren aggregieren, wobei N eine beliebige unterstützte Verbindungsbreite ist, wie zum Beispiel 1, 2, 4, 5, 8, 10, 12, 16, 20, 32, 64 oder breiter. Bei einigen Implementierungen enthält jede symmetrische Spur ein Übertragungsdifferentialpaar und ein Empfangsdifferentialpaar. Asymmetrische Spuren können ungleiche Verhältnisse von Sende- und Empfangspaaren enthalten. Einige Technologien können symmetrische Spuren (z. B., UPI) verwenden, während andere (z. B. ein Bildschirmanschluss) unter anderen Beispielen sogar nur Übertragungspaare oder nur Empfangspaare beinhalten können. Eine Verbindung kann sich auf eine Einwegverbindung beziehen (wie zum Beispiel die Verbindung, die durch die Übertragungslogik 306 und die Empfangslogik 311 eingerichtet wird), oder kann sich auf eine bidirektionale Verbindung beziehen (wie zum Beispiel die Verbindungen, die durch die Übertragungslogik 306 und 312 und die Empfangslogik 307 und 311 eingerichtet werden).
  • Ein Differentialpaar bezieht sich auf zwei Übertragungspfade, wie zum Beispiel Leitungen 316 und 317, um Differentialsignale zu übertragen. Wenn die Leitung 316 von einem niedrigen Spannungspegel auf einen hohen Spannungspegel umschaltet, d. h., eine ansteigende Flanke aufweist, wird als ein Beispiel die Leitung 317 von einem hohen logischen Pegel auf einen niedrigen logischen Pegel, d. h. eine abfallende Flanke angesteuert. Differenzielle Signale demonstrieren potenziell bessere elektrische Eigenschaften, wie zum Beispiel eine bessere Signalintegrität, d. h., eine bessere Kreuzkopplung, bessere Spannungsüberschwingungen/- unterschwingungen, bessere Einschwingungen, usw. Dies erlaubt ein besseres Timing-Fenster, das schnellere Übertragungsfrequenzen ermöglicht.
  • Bezugnehmend auf 4 wird ein vereinfachtes Blockdiagramm 400 gezeigt, das ein beispielhaftes System veranschaulicht, das eine UPI-Verbindung 416 nutzt. Die Verbindung 416 kann beispielsweise einen ersten Hostprozessor 402A (z. B. eine erste CPU) und einen zweiten Hostprozessor 402B (z. B. eine zweite CPU) miteinander verbinden. Bei diesem Beispiel beinhaltet jeder Host-Prozessor 402A, 402B einen oder mehrere Prozessorkerne (z. B., 404A bis 404D). Jeder Prozessor 402A, 402B ist über eine Verbindung 414A, 414B mit dem Hostspeicher 412A, 412B verbunden. Bei diesem Beispiel kann jeder Host-Prozessor 402A, 402B eine Schaltungsanordnung zum Implementieren einer Kohärenz-/Cache-Logik 406A, 406B beinhalten. Jeder Prozessor 402A, 402B beinhaltet eine Punkt-zu-Punkt-Schnittstellenschaltungsanordnung 408A, 408B zum Kommunizieren über die UPI-Verbindung 416. Die Punkt-zu-Punkt-Schnittstellenschaltungsanordnung 408B kann ähnlich wie die Punkt-zu-Punkt-Schnittstellenschaltungsanordnung 408A sein, die unten ausführlicher beschrieben wird.
  • Die Punkt-zu-Punkt-Schnittstellenschaltungsanordnung 408A ist dazu konfiguriert, Daten über die UPI-Verbindung 416 zu senden und zu empfangen. Die Punkt-zu-Punkt-Schnittstellenschaltungsanordnung 408A kann z. B. den oben mit Bezug auf 2 beschriebenen UPI-Stapel 200 implementieren. Die Punkt-zu-Punkt-Schnittstellenschaltungsanordnung 408A beinhaltet einen Kryptographiemanager 409A und eine Kryptographie-Engine 410A. Es versteht sich, dass die Punkt-zu-Punkt-Schnittstellenschaltungsanordnung 408A bei einigen Ausführungsformen sowohl eine Übertragungsverbindung als auch eine Empfangsverbindung betreibt. Von daher kann die Punkt-zu-Punkt-Schnittstellenschaltungsanordnung 408A einen unabhängigen Kryptographiemanager 409A und/oder eine unabhängige Kryptographie-Engine 410A sowohl für eine Übertragungsverbindung als für auch eine Empfangsverbindung beinhalten. Bei anderen Ausführungsformen können ein einziger Kryptographiemanager 409A und/oder eine einzige Kryptographie-Engine 410A in der Lage sein, sowohl einen Übertragungskanal als auch einen Empfangskanal gleichzeitig zu betreiben.
  • Die Punkt-zu-Punkt-Schnittstellenschaltungsanordnung 408A kann als Hardware, Software, Firmware oder eine Kombination davon umgesetzt sein. Zum Beispiel können die verschiedenen Module, Logiken und anderen Komponenten der Punkt-zu-Punkt-Schaltungsanordnung 408A einen Teil des Prozessors 402A oder anderer Hardwarekomponenten, wie zum Beispiel des Hostspeichers 412A, der Datenspeicherung usw., bilden oder anderweitig von diesen eingerichtet werden. Bei einer Ausführungsform kann zum Beispiel der Kryptographiemanager 409A zum Steuern der Aktualisierung der Schlüssel, die durch die Kryptographie-Engine 410A verwendet werden, als Firmware oder Software umgesetzt sein. Bei einigen Ausführungsformen kann der Kryptographiemanager 409A als ein Prozessor sowie Speicher und/oder ein Datenspeicher umgesetzt sein, in denen Befehle gespeichert sind, die durch den Prozessor ausgeführt werden. Es versteht sich, dass der Kryptographiemanager 409A nicht vollständig innerhalb des Hostprozessors 402A enthalten sein muss. Zum Beispiel kann sich der Kryptographiemanager 409A, der Schlüsselaktualisierungen für die Kryptographie-Engine 410A und die Kryptographie-Engine 410B steuert, teilweise oder vollständig innerhalb des Hostprozessors 402B oder eines Prozessors einer anderen Vorrichtung befinden. Der Kryptographiemanager 409A kann jede beliebige geeignete Aufgabe in Bezug auf die Aktualisierung von Schlüsseln durchführen, wie zum Beispiel ein Bestimmen, ob ein Schlüssel aktualisiert werden sollte, ein Erzeugen und ein Verteilen von Schlüsseln, ein Anweisen der Punkt-zu-Punkt-Schnittstellenschaltungsanordnung 408A, um Nachrichten in Bezug auf den Schlüsselaktualisierungsprozess (wie zum Beispiel eine Schlüsselaktualisierungsnachricht, eine Schlüsselaktualisierungsbestätigungsnachricht oder eine Schlüsselumschaltnachricht) usw. zu senden. Bei einigen Ausführungsformen kann der Kryptographiemanager 409A die Kryptographie-Engine 410A beinhalten. Es versteht sich, dass einige der Funktionalitäten der Punkt-zu-Punkt-Schnittstellenschaltungsanordnung 408A eine Hardwareimplementierung erfordern können, wobei in diesem Fall Ausführungsformen, die eine derartige Funktionalität implementieren, mindestens teilweise als Hardware umgesetzt werden.
  • Der Kryptographiemanager 409A ist dazu konfiguriert, verschiedene Aufgaben in Bezug auf ein Verschlüsseln, ein Erzeugen und ein Verteilen von Verschlüsselungsschlüsseln, ein Aktualisieren von Verschlüsselungsschlüsseln, ein Konfigurieren der Kryptographie-Engine 410A mit Verschlüsselungsschlüsseln usw. durchzuführen. Die Kryptographie-Engine 410A ist konfiguriert, um Nachrichten, die an eine Verbindung mit einer anderen Vorrichtung gesendet und von dieser empfangen werden, zu verschlüsseln und zu entschlüsseln. Der Kryptographiemanager 409A kann eine verschlüsselte Verbindung zwischen dem lokalen Prozessor 402A und einem fernen Prozessor, wie zum Beispiel dem Prozessor 402B, unter Verwendung der Kryptographie-Engine 410A herstellen. Zusätzlich oder alternativ kann der Kryptographiemanager 409A bei einigen Ausführungsformen eine Verbindung mit anderen Komponenten herstellen, wie zum Beispiel mit einem feldprogrammierbaren Gate-Array, einem Root-Komplex, einem Chipsatz, einem Speicher usw.
  • Zum Herstellen der verschlüsselten Verbindung erzeugt der Kryptographiemanager 409A, unter Verwendung eines Kryptographiesystems mit öffentlichem Schlüssel, wie zum Beispiel einem Diffie-Hellman-Schlüsselaustausch, einen anfänglichen Verschlüsselungsschlüssel. Der Kryptographiemanager 409A kann das Kryptographiesystem mit öffentlichem Schlüssel verwenden, um einen Schlüssel für einen beliebigen geeigneten Verschlüsselungsalgorithmus zu erzeugen. Bei der veranschaulichenden Ausführungsform verwendet der Kryptographiemanager 409A den Verschlüsselungsschlüssel, um eine Advanced-Encryption-Standard- (AES-)Verbindung im Galois/Zählermodus (AES-GCM) einzurichten. Bei anderen Ausführungsformen kann der Kryptographiemanager 409A die verschlüsselte Verbindung unter Verwendung eines beliebigen geeigneten Verschlüsselungsalgorithmus herstellen, wie zum Beispiel eines AES mit einem Galois-Nachrichtenauthentifizierungscode (GMAC). Der Kryptographiemanager 409A kann einen zufälligen oder pseudozufälligen Initialisierungsvektor erstellen, der zum Starten der Verschlüsselung verwendet werden muss.
  • Bei der veranschaulichenden Ausführungsform richtet der Kryptographiemanager 409A eine unabhängige Verschlüsselungsverbindung für eine Übertragungsverbindung und eine Empfangsverbindung, wie zum Beispiel die in 3 gezeigte Übertragungsverbindung und Empfangsverbindung, ein. Der Kryptographiemanager 409A kann eine Übertragungsverbindung basierend auf einem Übertragungsverschlüsselungsschlüssel und eine Empfangsverbindung basierend auf einem Empfangsverschlüsselungsschlüssel herstellen. Bei der veranschaulichenden Ausführungsform steuert der Kryptographiemanager 409A die Übertragungsverbindung und der ferne Prozessor (wie zum Beispiel der Prozessor 402B) steuert die Empfangsverbindung (d. h., die Verbindung, bei der sich der ferne Prozessor am Übertragungsende befindet und der Prozessor 402A das Empfangsende bildet). Bei einigen Ausführungsformen kann die Verschlüsselungsverbindung zwischen dem lokalen Prozessor und dem fernen Prozessor mehrere Kanäle beinhalten, von denen jeder einen separaten Verschlüsselungsschlüssel aufweisen kann. Zum Beispiel kann eine Verbindung zwei Kanäle aufweisen, von denen jeder einen Übertragungsverschlüsselungsschlüssel und einen Empfangsverschlüsselungsschlüssel aufweist. Bei einigen Ausführungsformen sind die Kanäle virtuelle Kanäle, die jeweils über dieselbe physische Verbindung kommuniziert werden. Es versteht sich, dass bei einigen Ausführungsformen jede der Nachrichten, die zwischen dem lokalen und dem fernen Prozessor gesendet werden, eine Angabe des Kanals beinhalten kann, dem die Nachricht entspricht.
  • Sobald er eingerichtet ist, kann der Kryptographiemanager 409A die verschlüsselte Verbindung zwischen dem lokalen Prozessor 402A und dem fernen Prozessor unter Verwendung der Kryptographie-Engine 410A betreiben. Die Kryptographie-Engine 410A kann Pakete, Flits und Phits senden und empfangen. Bei der veranschaulichenden Ausführungsform wird jedes Paket verschlüsselt und entschlüsselt. Bei einigen Ausführungsformen kann eine Teilmenge des Pakets, wie zum Beispiel die Nutzdaten oder Nutzinformationen, verschlüsselt sein, während andere Teile des Pakets, wie zum Beispiel eine Kopfzeile oder die CRC-Informationen nicht verschlüsselt sein müssen. Bei anderen Ausführungsformen können Verschlüsselung und Entschlüsselung auf jede Flit oder jede Phit angewandt werden. Bei der veranschaulichenden Ausführungsform wird die Kryptographie-Engine 410A über eine Pipeline gesteuert, sodass mehrere Pakete unterschiedliche Stufen der Verschlüsselung oder Entschlüsselung gleichzeitig durchlaufen können. Es versteht sich, dass bei einigen Ausführungsformen einige Pakete, Flits oder Phits, wie zum Beispiel Steuerpakete, nicht verschlüsselt sein müssen. Die Kryptographie-Engine 410A kann in Verbindung mit anderen Komponenten, wie zum Beispiel der Kohärenz-/Cache-Logik 406A, Speicheranforderungen verarbeiten, wie zum Beispiel Speicheranforderungen, die zu dem fernen Prozessor gesendet werden, Speicheranforderungen, die von dem fernen Prozessor gesendet werden, Datenantwortnachrichten, die zu dem fernen Prozessor gesendet werden, Datenantwortnachrichten, die von dem fernen Prozessor empfangen werden usw. Die Kryptographie-Engine 410A kann auch andere Arten von Paketen verschlüsseln und entschlüsseln, wie zum Beispiel Steuerpakete, Pakete in Bezug auf die Verschlüsselung der Verbindung usw.
  • Unter bestimmten Umständen sollte der Übertragungsverschlüsselungsschlüssel aktualisiert werden. Zum Beispiel kann der Kryptographiemanager 409A basierend auf einer Datenmenge, die unter Verwendung des Übertragungsverschlüsselungsschlüssels übertragen wurde, bestimmen, ob der Übertragungsverschlüsselungsschlüssel aktualisiert werden sollte, oder kann basierend auf einer Zeitdauer, seit der Schlüssel erstmals verwendet wurde, bestimmen, ob der Übertragungsverschlüsselungsschlüssel aktualisiert werden sollte. Die Zeitdauer könnte eine beliebige geeignete Zeitdauer sein, wie zum Beispiel eine beliebige Zeit von einer Stunde bis zu einem Jahr. Bei der veranschaulichenden Ausführungsform beträgt die Schwellenzeitdauer mehrere Monate. Bei anderen Ausführungsformen kann der Kryptographiemanager 409A basierend auf einer beliebigen geeigneten Kombination einer Datenmenge, die unter Verwendung des Übertragungsverschlüsselungsschlüssels übertragen wurde, einer Zeitdauer seit dem erstmaligen Verwenden des Schlüssels usw. bestimmen, ob der Übertragungsverschlüsselungsschlüssel aktualisiert werden sollte. Der Kryptographiemanager 409A kann die Bestimmung basierend auf Verschlüsselungsstandards vornehmen, wie zum Beispiel auf Verschlüsselungsstandards von dem National Institute for Standards and Technology (NIST). Bei einigen Ausführungsformen kann der Kryptographiemanager 409A angewiesen werden, den Verschlüsselungsschlüssel zu aktualisieren, wie zum Beispiel durch einen Benutzer oder einen Orchestratorserver. Der Kryptographiemanager 409A kann angewiesen werden, den Verschlüsselungsschlüssel zu aktualisieren, falls z. B. ein Datenverstoß aufgetreten ist, der den aktuellen Schlüssel beeinflussen könnte.
  • Wenn ein Übertragungsschlüssel aktualisiert werden soll, erzeugt der Kryptographiemanager 409A einen aktualisierten Verschlüsselungsschlüssel. Der Kryptographiemanager 409A kann den aktualisierten Verschlüsselungsschlüssel auf eine beliebige geeignete Weise erzeugen. Zum Beispiel kann der Kryptographiemanager 409A einen Zufallszahlengenerator verwenden, um einen neuen Schlüssel zu erzeugen, oder der Kryptographiemanager 409A kann eine Schlüsselerzeugungsfunktion oder Schlüsselableitungsfunktion (KDF) an dem zuvor erzeugten Zufallsschlüssel verwenden, um einen neuen Schlüssel zu erzeugen. Sobald ein neuer Schlüssel erzeugt wurde, kann der Kryptographiemanager 409A den Schlüssel unter Verwendung einer beliebigen geeigneten Weise zu dem fernen Agenten senden. Zum Beispiel kann der Kryptographiemanager 409A ein ähnliches Diffie-Hellman-Schlüsselaustauschprotokoll verwenden, das zum Erzeugen des anfänglichen Übertragungsverschlüsselungsschlüssels verwendet wird, oder der Kryptographiemanager 409A kann einen zuvor erzeugten Sitzungsschlüssel verwenden, um einen Schlüssel zu dem fernen Prozessor zu senden. Der Kryptographiemanager 409A speichert den aktualisierten Übertragungsverschlüsselungsschlüssel in einem Schattenregister der Kryptographie-Engine 409A. Durch ein Platzieren des Übertragungsverschlüsselungsschlüssels in dem Schattenregister kann die Kryptographie-Engine 410A dazu vorbereitet werden, mit der Verwendung des aktualisierten Verschlüsselungsschlüssels mit einer kleinen oder keiner Vorabbenachrichtigung zu beginnen.
  • Nach dem Vorbereiten des aktualisierten Übertragungsverschlüsselungsschlüssels sendet der Kryptographiemanager 409A eine Schlüsselaktualisierungsnachricht zu dem fernen Prozessor. Bei einigen Ausführungsformen sendet der Kryptographiemanager 409A den aktualisierten Übertragungsverschlüsselungsschlüssel in der Schlüsselaktualisierungsnachricht. Bei anderen Ausführungsformen kann der Kryptographiemanager 409A mit dem fernen Prozessor koordinieren, um den aktualisierten Übertragungsverschlüsselungsschlüssel vor oder nach dem Senden der Schlüsselaktualisierungsnachricht gemeinsam zu nutzen.
  • Nachdem der Kryptographiemanager 409A die Schlüsselaktualisierungsnachricht gesendet hat, bereitet sich der ferne Prozessor darauf vor, auf die Verwendung des aktualisierten Übertragungsverschlüsselungsschlüssels umzuschalten. Währenddessen fährt die Kryptographie-Engine 410A fort, die Verschlüsselungsverbindung zwischen dem lokalen Prozessor und dem fernen Prozessor unter Verwendung des aktuellen Übertragungsverschlüsselungsschlüssels (und des aktuellen Empfangsverschlüsselungsschlüssels) zu betreiben. Nachdem der ferne Prozessor bereit ist, auf den aktualisierten Übertragungsverschlüsselungsschlüssel umzuschalten, sendet er eine Schlüsselaktualisierungsbestätigungsnachricht zu dem Kryptographiemanager 409A. Bei der veranschaulichenden Ausführungsform gibt die Schlüsselaktualisierungsbestätigungsnachricht an, dass der ferne Prozessor bereit ist, auf den aktualisierten Schlüssel umzuschalten. Bei anderen Ausführungsformen kann die Schlüsselaktualisierungsbestätigungsnachricht angeben, dass der ferne Prozessor bereit sein wird, zu einem bestimmten Zeitpunkt in der Zukunft auf den aktualisierten Schlüssel umzuschalten.
  • Nach dem Empfangen der Schlüsselaktualisierungsbestätigungsnachricht sendet der Kryptographiemanager 409A eine Schlüsselumschaltnachricht zu dem fernen Prozessor. Bei der veranschaulichenden Ausführungsform weist die Schlüsselumschaltnachricht den fernen Prozessor an, mit der Verwendung des aktualisierten Übertragungsverschlüsselungsschlüssels zu beginnen, und gibt an, dass die nächste Nachricht mit dem aktualisierten Übertragungsverschlüsselungsschlüssel verschlüsselt werden wird. Bei einigen Ausführungsformen gibt die Schlüsselumschaltnachricht an, dass die Verwendung des aktualisierten Übertragungsverschlüsselungsschlüssels zu irgendeinem Zeitpunkt in der Zukunft beginnen wird, wie zum Beispiel zu einem bestimmten Zeitpunkt oder nachdem eine bestimmte Anzahl weiterer Nachrichten mit dem aktualisierten Übertragungsverschlüsselungsschlüssel gesendet wurde.
  • Nach dem Senden der Schlüsselumschaltnachricht aktiviert die Kryptographie-Engine 410A den aktualisierten Übertragungsverschlüsselungsschlüssel. Bei der veranschaulichenden Ausführungsform aktiviert die Kryptographie-Engine 410A den aktualisierten Übertragungsverschlüsselungsschlüssel unmittelbar nach dem Senden der Schlüsselumschaltnachricht. Dazu kopiert die Kryptographie-Engine 410A bei der veranschaulichenden Ausführungsform den aktualisierten Übertragungsverschlüsselungsschlüssel von einem Schattenregister in ein aktives Register. Bei einigen Ausführungsformen kann die Kryptographie-Engine 410A bis zu einem späteren Zeitpunkt warten, um den aktualisierten Übertragungsverschlüsselungsschlüssel zu aktivieren, wie zum Beispiel, wenn die erste Nachricht unter Verwendung des aktualisierten Übertragungsverschlüsselungsschlüssels verschlüsselt werden soll.
  • Nach dem Senden der Schlüsselumschaltnachricht pausiert die Kryptographie-Engine 410A die Übertragung verschlüsselter Nachrichten, um dem fernen Prozessor einen Zeitraum zu erlauben, den aktualisierten Übertragungsschlüssel zu aktivieren. Bei der veranschaulichenden Ausführungsform pausiert die Kryptographie-Engine 410A die Übertragung aller verschlüsselten Nachrichten (pausiert z. B. die Übertragung verschlüsselter Nachrichten auf dem einzigen im Betrieb befindlichen Kanal). Bei anderen Ausführungsformen kann die Kryptographie-Engine 410A das Senden verschlüsselter Nachrichten nur auf dem Kanal pausieren, der dem aktualisierten Übertragungsverschlüsselungsschlüssel entspricht, und kann das Senden verschlüsselter Nachrichten für andere Kanäle fortsetzen, die andere Verschlüsselungsschlüssel verwenden. Es versteht sich, dass bei Ausführungsformen, die nicht alle Nachrichten verschlüsseln, die Punkt-zu-Punkt-Schnittstellenschaltungsanordnung 408A weiterhin unverschlüsselte Nachrichten auf demselben Kanal senden kann. Bei einigen Ausführungsformen kann die Kryptographie-Engine 410A während der Pause beginnen, eine Pipeline mit verschlüsselten Nachrichten zu füllen, die unter Verwendung des aktualisierten Übertragungsverschlüsselungsschlüssels gesendet werden sollen.
  • Die Kryptographie-Engine 410A kann für eine beliebige geeignete Zeitdauer, wie zum Beispiel eine beliebige Zeitdauer von 1 bis 1000 Nanosekunden, pausieren. Bei der veranschaulichenden Ausführungsform pausiert die Kryptographie-Engine 410A für eine vorbestimmte Zeitdauer von 100 Nanosekunden. Bei einigen Ausführungsformen kann die Kryptographie-Engine 410A pausieren, bis ein Auslöser auftritt, wie zum Beispiel eine andere Bestätigungsnachricht von dem fernen Prozessor. Nach dem Abschließen der Pause kann die Kryptographie-Engine 410A das Betreiben der verschlüsselten Verbindung fortsetzen. Es versteht sich, dass die Kryptographie-Engine 410A bei der veranschaulichenden Ausführungsform das Senden verschlüsselter Nachrichten auf dem Kanal pausiert, der mit dem Schlüssel assoziiert ist, der aktualisiert wird. Die Kryptographie-Engine 410A kann unverschlüsselte Nachrichten senden, verschlüsselte Nachrichten für andere Kanäle senden, verschlüsselte Nachrichten empfangen usw.
  • Bei der veranschaulichenden Ausführungsform verwaltet der Kryptographiemanager 409A den Übertragungsverschlüsselungsschlüssel, der zum Verschlüsseln von zu dem Prozessor 402B gesendeten Daten verwendet wird. Umgekehrt verwaltet der Kryptographiemanager 409B den Schlüssel, der zum Verschlüsseln von Daten verwendet wird, die von dem Prozessor 402B zu der Kryptographie-Engine 410A gesendet werden, unter Verwendung dessen, was aus der Perspektive der Kryptographie-Engine 410A der Empfangsverschlüsselungsschlüssel ist.
  • Wenn der Kryptographiemanager 409B bestimmt, dass der Empfangsverschlüsselungsschlüssel aktualisiert werden sollte, sendet er eine Schlüsselaktualisierungsnachricht zu der Kryptographie-Engine 410A, die angibt, dass der Empfangsverschlüsselungsschlüssel aktualisiert werden sollte. Der Empfangsverschlüsselungsschlüssel kann mit der Kryptographie-Engine 410A auf eine ähnliche Weise gemeinsam genutzt werden, wie der Übertragungsverschlüsselungsschlüssel mit der Kryptographie-Engine 410B gemeinsam genutzt wird.
  • Die Kryptographie-Engine 410A speichert den aktualisierten Empfangsverschlüsselungsschlüssel in einem Schattenregister, wie zum Beispiel einem Schattenregister der Kryptographie-Engine 410A. Die veranschaulichende Kryptographie-Engine 410A speichert den aktualisierten Empfangsverschlüsselungsschlüssel in einem Schattenregister, um in der Lage zu sein, schnell auf die Verwendung des aktualisierten Empfangsverschlüsselungsschlüssels umschalten zu können. Die Kryptographie-Engine 410A kann eine beliebige zusätzliche oder alternative Aktion vornehmen, die notwendig ist, um ein kurzfristiges Umschalten auf das Verwenden des aktualisierten Empfangsverschlüsselungsschlüssels vorzubereiten. Wenn die Kryptographie-Engine 410A bereit ist, auf den aktualisierten Empfangsverschlüsselungsschlüssel umzuschalten, sendet die Kryptographie-Engine 410A eine Schlüsselaktualisierungsbestätigungsnachricht zu dem fernen Prozessor. Bei der veranschaulichenden Ausführungsform gibt die Schlüsselaktualisierungsbestätigungsnachricht an, dass die Kryptographie-Engine 410A zum Umschalten auf den aktualisierten Schlüssel bereit ist. Bei anderen Ausführungsformen kann die Schlüsselaktualisierungsbestätigungsnachricht angeben, dass die Kryptographie-Engine 410A zu einem bestimmten Zeitpunkt in der Zukunft bereit sein wird, auf den aktualisierten Schlüssel umzuschalten.
  • Wenn der Kryptographiemanager 409B bereit ist, auf den Empfangsverschlüsselungsschlüssel umzuschalten, sendet er eine Schlüsselumschaltnachricht zu der Kryptographie-Engine 410A. Bei der veranschaulichenden Ausführungsform weist die Schlüsselumschaltnachricht die Kryptographie-Engine 410A an, mit der Verwendung des aktualisierten Übertragungsverschlüsselungsschlüssels zu beginnen, und gibt an, dass die nächste Nachricht mit dem aktualisierten Übertragungsverschlüsselungsschlüssel verschlüsselt werden wird. Bei einigen Ausführungsformen gibt die Schlüsselumschaltnachricht an, dass die Verwendung des aktualisierten Übertragungsverschlüsselungsschlüssels zu irgendeinem Zeitpunkt in der Zukunft beginnen wird, wie zum Beispiel zu einem bestimmten Zeitpunkt oder nachdem eine bestimmte Anzahl weiterer Nachrichten mit dem aktualisierten Übertragungsverschlüsselungsschlüssel gesendet wurde.
  • Nach dem Empfangen der Schlüsselumschaltnachricht schließt die Kryptographie-Engine 410A das Verarbeiten empfangener Nachrichten mit dem aktuellen Empfangsverschlüsselungsschlüssel ab. Bei der veranschaulichenden Ausführungsform betreibt die Kryptographie-Engine 410A eine Pipeline und die Kryptographie-Engine 410A muss einen Teil oder die gesamte Entschlüsselungsoperation abschließen, bevor der Empfangsverschlüsselungsschlüssel geändert wird. Zusätzlich oder alternativ dazu kann die Kryptographie-Engine 410A Aufgaben, wie zum Beispiel eine Integritätsprüfung mit dem aktuellen Empfangsverschlüsselungsschlüssel durchführen. Es versteht sich, dass während der Zeit, in der die Kryptographie-Engine 410A die Pipeline basierend auf dem aktuellen Empfangsverschlüsselungsschlüssel abarbeitet, die Kryptographie-Engine 410A nicht beginnen kann, Nachrichten unter Verwendung des aktualisierten Empfangsverschlüsselungsschlüssels zu entschlüsseln. Von daher pausiert der ferne Prozessor das Senden von Nachrichten auf dem Kanal, der dem aktualisierten Empfangsverschlüsselungsschlüssel entspricht.
  • Sobald die Verarbeitungsoperationen unter Verwendung des aktuellen Empfangsverschlüsselungsschlüssels abgeschlossen wurden, aktiviert die Kryptographie-Engine 410A den aktualisierte Empfangsverschlüsselungsschlüssel. Die Kryptographie-Engine 410A kann dann mit dem Durchführen von Verschlüsselungsoperationen fortfahren.
  • Es versteht sich, dass die obige Beschreibung des Kryptographiemanagers 409A und der Kryptographie-Engine 410A für eine mögliche Ausführungsform dient, aber andere Ausführungsformen mit zusätzlichen oder anderen Operationen oder Operationen, die in einer anderen Reihenfolge durchgeführt werden, möglich sind. Zum Beispiel kann der Kryptographiemanager 409A den aktualisierten Übertragungsverschlüsselungsschlüssel bestimmen, bevor er sogar bestimmt, dass der Übertragungsverschlüsselungsschlüssel aktualisiert werden sollte, wie zum Beispiel kurz nach dem Aktivieren eines neuen Übertragungsverschlüsselungsschlüssels. Als ein anderes Beispiel kann der Kryptographiemanager 409A den Übertragungsverschlüsselungsschlüssel vor oder nach dem Senden der Schlüsselaktualisierungsnachricht zu dem fernen Prozessor senden. Bei einem noch weiteren Beispiel kann der Kryptographiemanager 409A das Senden von Nachrichten, die mit dem aktuellen Übertragungsschlüssel verschlüsselt sind, nach dem Senden der Schlüsselumschaltnachricht fortsetzen, wie zum Beispiel das Senden einer vorbestimmten Anzahl von Nachrichten vor dem Aktivieren des aktualisierten Verschlüsselungsschlüssels und dem Pausieren der Übertragung verschlüsselter Nachrichten.
  • Bezugnehmend auf 5 kann das System 100 im Betrieb nun ein Verfahren 500 zur Echtzeitaktualisierung von Verschlüsselungsschlüsseln ausführen. Das Verfahren 500 kann durch eine beliebige geeignete Kombination von Hardware, Software und/oder anderen Komponenten des Systems 100, wie zum Beispiel den Prozessor 402A, die Punkt-zu-Punkt-Schnittstellenschaltungsanordnung 408A, den Kryptographiemanager 409A, die Kryptographie-Engine 410A usw., durchgeführt werden. Bei der unten erörterten Ausführungsform wird ein Teil des Verfahrens 500 als durch den Prozessor 402A durchgeführt beschrieben. Es versteht sich, dass bei anderen Ausführungsformen ein Teil oder das gesamte Verfahren 500 durch eine beliebige geeignete Komponente, wie zum Beispiel eine Hardware, eine Firmware und/oder eine Software einer beliebigen geeigneten Komponente, wie zum Beispiel des Prozessors 402A, des Prozessors 402B, des Hostspeichers 412A, des Hostspeichers 412B, des Kryptographiemanagers 409A, der Kryptographie-Engine 410A usw., durchgeführt werden kann.
  • Im Block 502 stellt der Prozessor 402A eine verschlüsselte Verbindung zwischen dem lokalen Prozessor 402A und einem fernen Prozessor, wie zum Beispiel dem Prozessor 402B, her. Es versteht sich, dass der ferne Prozessor keinen bestimmten Abstand von dem Prozessor 402A aufweisen muss. Stattdessen bezieht sich der ferne Prozessor auf die Komponente am anderen Ende der verschlüsselten Verbindung, die zwischen den Prozessoren eingerichtet ist. In der Praxis kann sich der ferne Prozessor z. B. in der Nähe des lokalen Prozessors auf derselben Hauptplatine befinden. Es versteht sich auch, dass die Verbindung zwischen zwei beliebigen geeigneten Komponenten hergestellt werden kann, wie zum Beispiel einer beliebigen Kombination eines Prozessors, eines feldprogrammierbaren Gate-Arrays, eines Root-Komplexes, eines Chipsatzes, eines Speichers usw.
  • Bei der veranschaulichenden Ausführungsform erzeugt der Prozessor 402A einen anfänglichen Verschlüsselungsschlüssel unter Verwendung eines Kryptographiesystems mit öffentlichem Schlüssel, wie zum Beispiel eines Diffie-Hellman-Schlüsselaustauschs im Block 504. Der Prozessor 402A kann das Kryptographiesystem mit öffentlichem Schlüssel verwenden, um einen Schlüssel für einen beliebigen geeigneten Verschlüsselungsalgorithmus zu erzeugen. Bei der veranschaulichenden Ausführungsform verwendet der Prozessor 402A den Verschlüsselungsschlüssel, um die Verbindung unter Verwendung einer Advanced-Encryption-Standard- (AES-)Verbindung im Galois/Zählermodus (AES-GCM) im Block 506 zu verschlüsseln und seine Integrität zu schützen. Bei anderen Ausführungsformen kann der Prozessor 402A die verschlüsselte Verbindung unter Verwendung eines beliebigen geeigneten Verschlüsselungsalgorithmus herstellen, wie zum Beispiel eines AES-Zählermodus zur Verschlüsselung und eines AES-Galois-Nachrichtenauthentifizierungscodes (GMAC) zur Datenintegrität. Der Prozessor 402A kann einen zufälligen oder pseudozufälligen Initialisierungsvektor erstellen, der verwendet werden soll, um die Verschlüsselung zu starten.
  • Bei der veranschaulichenden Ausführungsform richtet der Prozessor 402A eine unabhängige Verschlüsselungsverbindung für eine Übertragungsverbindung und eine Empfangsverbindung ein. Der Prozessor 402A kann im Block 508 eine Übertragungsverbindung basierend auf einem Übertragungsverschlüsselungsschlüssel und eine Empfangsverbindung basierend auf einem Empfangsverschlüsselungsschlüssel herstellen. Bei der veranschaulichenden Ausführungsform steuert der Prozessor 402A die Übertragungsverbindung und steuert der Fernprozessor die Empfangsverbindung (d. h., die Verbindung, bei der sich der ferne Prozessor am Übertragungsende befindet und der Prozessor 402A das Empfangsende ist). Bei einigen Ausführungsformen kann die Verschlüsselungsverbindung zwischen dem lokalen Prozessor und dem fernen Prozessor mehrere Kanäle beinhalten, von denen jeder einen separaten Verschlüsselungsschlüssel aufweisen kann. Zum Beispiel kann eine Verbindung zwei Kanäle aufweisen, von denen jeder einen Übertragungsverschlüsselungsschlüssel und einen Empfangsverschlüsselungsschlüssel aufweist. Bei einigen Ausführungsformen sind die Kanäle virtuelle Kanäle, die alle über dieselbe physische Verbindung kommuniziert werden. Es versteht sich, dass bei einigen Ausführungsformen jede der Nachrichten, die zwischen dem lokalen und dem fernen Prozessor gesendet werden, eine Angabe des Kanals beinhalten kann, welcher der Nachricht entspricht.
  • Im Block 510 betreibt der Prozessor 402A die verschlüsselte Verbindung zwischen dem lokalen Prozessor 402A und dem fernen Prozessor. Der Prozessor 402A kann Pakete, Flits und Phits senden und empfangen. Bei der veranschaulichenden Ausführungsform wird jedes Paket verschlüsselt und entschlüsselt. Bei einigen Ausführungsformen kann eine Teilmenge des Pakets, wie zum Beispiel die Nutzdaten oder Nutzinformationen, verschlüsselt sein, während andere Teile des Pakets, wie zum Beispiel eine Kopfzeile oder die CRC-Informationen nicht verschlüsselt sein müssen. Bei anderen Ausführungsformen können Verschlüsselung und Entschlüsselung auf jede Flit oder jede Phit angewandt werden. Jedes übertragene (oder empfangene) Paket kann in einer Kryptographie-Engine, wie zum Beispiel der Kryptographie-Engine 410A, verschlüsselt (oder entschlüsselt) werden. Bei der veranschaulichenden Ausführungsform wird die Kryptographie-Engine 410A über eine Pipeline gesteuert, sodass mehrere Pakete unterschiedliche Stufen der Verschlüsselung oder Entschlüsselung gleichzeitig durchlaufen können. Es versteht sich, dass bei einigen Ausführungsformen einige Pakete, Flits oder Phits, wie zum Beispiel Steuerpakete, nicht verschlüsselt sein müssen.
  • Im Block 512 verarbeitet der Prozessor 402A Speicheranforderungen, wie zum Beispiel Speicheranforderungen, die zu dem fernen Prozessor gesendet werden, Speicheranforderungen, die von dem fernen Prozessor gesendet werden, Datenantwortnachrichten, die zu dem fernen Prozessor gesendet werden, Datenantwortnachrichten, die von dem fernen Prozessor empfangen werden usw. Der Prozessor 402A kann auch andere Arten von Paketen wie zum Beispiel Steuerpakete, auf die Verschlüsselung der Verbindung bezogene Pakete usw. verarbeiten.
  • Im Block 514 kann der Prozessor 402A von dem fernen Prozessor eine Schlüsselaktualisierungsnachricht für den Empfangsverschlüsselungsschlüssel empfangen, die angibt, dass der Empfangsverschlüsselungsschlüssel aktualisiert werden sollte. Bei der veranschaulichenden Ausführungsform beinhaltet die Schlüsselaktualisierungsnachricht einen aktualisierten Empfangsverschlüsselungsschlüssel. Bei Ausführungsformen mit unterschiedlichen Verschlüsselungsschlüsseln für unterschiedliche Kanäle beinhaltet die Schlüsselaktualisierungsnachricht eine Angabe des Kanals, für den der Schlüssel aktualisiert werden soll.
  • Im Block 518 bestimmt der Prozessor 402A, ob der Übertragungsverschlüsselungsschlüssel aktualisiert werden sollte. Der Prozessor 402A kann im Block 518 basierend auf einer Datenmenge bestimmen, die unter Verwendung des Übertragungsverschlüsselungsschlüssels übertragen wurde, ob der Übertragungsverschlüsselungsschlüssel aktualisiert werden sollte. Der Prozessor 402A kann basierend auf einer Zeitdauer bestimmen, seit der Schlüssel erstmals im Block 520 verwendet wurde, ob der Übertragungsverschlüsselungsschlüssel aktualisiert werden sollte. Die Zeitdauer kann eine beliebige geeignete Zeitdauer sein, wie zum Beispiel ein beliebiger Zeitraum von einer Stunde bis zu einem Jahr. Bei der veranschaulichenden Ausführungsform beträgt die Schwellenzeitdauer mehrere Monate. Bei anderen Ausführungsformen kann der Prozessor 402A basierend auf einer beliebigen geeigneten Kombination einer Datenmenge, die unter Verwendung des Übertragungsverschlüsselungsschlüssels übertragen wurde, einer Zeitmenge seit dem erstmaligen Verwenden des Schlüssels usw. bestimmen, ob der Übertragungsverschlüsselungsschlüssel aktualisiert werden sollte. Der Prozessor 402A kann die Bestimmung basierend auf Verschlüsselungsstandards, wie zum Beispiel Verschlüsselungsstandards von dem National Institute for Standards and Technology (NIST), vornehmen. Bei einigen Ausführungsformen kann der Prozessor 402A angewiesen werden, den Verschlüsselungsschlüssel zu aktualisieren, wie zum Beispiel durch einen Benutzer oder einen Orchestratorserver. Der Prozessor 402A kann angewiesen werden, den Verschlüsselungsschlüssel zu aktualisieren, falls z. B. eine Datenschutzverletzung aufgetreten ist, die den aktuellen Schlüssel beeinträchtigen könnte.
  • Falls bezugnehmend auf Block 522 der Prozessor 402A bestimmt hat, dass der Übertragungsverschlüsselungsschlüssel nicht aktualisiert werden sollte, geht das Verfahren 500 weiter zum Block 524, um zu prüfen, ob eine Schlüsselaktualisierungsnachricht von dem fernen Prozessor in Bezug auf den Empfangsverschlüsselungsschlüssel empfangen wurde. Falls der Prozessor 402A bestimmt hat, dass der Übertragungsverschlüsselungsschlüssel aktualisiert werden sollte, geht das Verfahren 500 bei 6 weiter zum Block 526.
  • Bezugnehmend auf 6 bestimmt der Prozessor 402A jetzt im Block 526 den aktualisierten Übertragungsverschlüsselungsschlüssel. Der Prozessor 402A kann den aktualisierten Übertragungsverschlüsselungsschlüssel auf eine beliebige geeignete Weise bestimmen. Zum Beispiel kann der Prozessor 402A ein ähnliches Diffie-Hellman-Schlüsselaustauschprotokoll verwenden, das zum Erzeugen des anfänglichen Übertragungsverschlüsselungsschlüssels verwendet wird, oder der Prozessor 402A kann einen zuvor erzeugten Sitzungsschlüssel verwenden, um einen Schlüssel zu dem fernen Prozessor zu senden. Bei einigen Ausführungsformen kann die Erzeugung der aktualisierten Übertragungsverschlüsselungsschlüssel durch eine spezialisierte Schlüsselerzeugungshardware durchgeführt werden. Der Prozessor 402A kann den aktualisierten Verschlüsselungsschlüssel unter Verwendung von z. B. eines Zufallszahlengenerators oder Pseudozufallszahlengenerators erzeugen. Im Block 528 speichert der Prozessor 402A den aktualisierten Übertragungsverschlüsselungsschlüssel in einem Schattenregister, wie zum Beispiel in einem Schattenregister der Kryptographie-Engine 410A. Durch das Platzieren des Übertragungsverschlüsselungsschlüssels in das Schattenregister kann die Kryptographie-Engine 410A dazu vorbereitet werden, die Verwendung des aktualisierten Verschlüsselungsschlüssels mit einer kleinen oder keiner Vorabbenachrichtigung zu beginnen.
  • Im Block 530 sendet der Prozessor 402A eine Schlüsselaktualisierungsnachricht zu dem fernen Prozessor. Bei einigen Ausführungsformen sendet der Prozessor 402A im Block 532 den aktualisierten Übertragungsverschlüsselungsschlüssel in der Schlüsselaktualisierungsnachricht. Bei anderen Ausführungsformen kann der Prozessor 402A mit dem fernen Prozessor den aktualisierten Übertragungsverschlüsselungsschlüssel vor oder nach dem Senden der Schlüsselaktualisierungsnachricht koordinieren. Bei der veranschaulichenden Ausführungsform ist die Schlüsselaktualisierungsnachricht als eine Flit umgesetzt. Zusätzlich oder alternativ dazu kann die Schlüsselaktualisierungsnachricht als ein anderer Nachrichtentyp umgesetzt sein, wie zum Beispiel ein Paket oder eine Phit.
  • Nachdem der Prozessor 402A die Schlüsselaktualisierungsnachricht gesendet hat, bereitet sich der ferne Prozessor darauf vor, auf die Verwendung des aktualisierten Übertragungsverschlüsselungsschlüssels umzuschalten. Währenddessen setzt der Prozessor 402A im Block 534 das Betreiben der Verschlüsselungsverbindung zwischen dem lokalen Prozessor und dem fernen Prozessor unter Verwendung des aktuellen Übertragungsverschlüsselungsschlüssels (und des aktuellen Empfangsverschlüsselungsschlüssels) fort. Im Block 536 empfängt der Prozessor 402A eine Schlüsselaktualisierungsbestätigungsnachricht von dem fernen Prozessor. Bei der veranschaulichenden Ausführungsform gibt die Schlüsselaktualisierungsbestätigungsnachricht an, dass der ferne Prozessor bereit ist, auf den aktualisierten Schlüssel umzuschalten. Bei anderen Ausführungsformen kann die Schlüsselaktualisierungsbestätigungsnachricht angeben, dass der ferne Prozessor bereit sein wird, zu einem bestimmten Zeitpunkt in der Zukunft auf den aktualisierten Schlüssel umzuschalten. Bei der veranschaulichenden Ausführungsform ist die Schlüsselaktualisierungsbestätigungsnachricht als eine Flit umgesetzt. Zusätzlich oder alternativ dazu kann die Schlüsselaktualisierungsbestätigungsnachricht als ein anderer Nachrichtentyp umgesetzt sein, wie zum Beispiel ein Paket oder eine Phit.
  • Falls der Prozessor 402A keine Schlüsselaktualisierungsbestätigungsnachricht empfangen hat, kehrt das Verfahren 500 im Block 538 zurück zum Block 534, um das Betreiben der verschlüsselten Verbindung fortzusetzen. Falls der Prozessor 402A eine Schlüsselaktualisierungsbestätigungsnachricht empfangen hat, geht das Verfahren 500 weiter zum Block 540.
  • Im Block 540 sendet der Prozessor 402A eine Schlüsselumschaltnachricht zu dem fernen Prozessor. Bei der veranschaulichenden Ausführungsform weist die Schlüsselumschaltnachricht den fernen Prozessor an, mit der Verwendung des aktualisierten Übertragungsverschlüsselungsschlüssels zu beginnen, und gibt an, dass die nächste Nachricht mit dem aktualisierten Übertragungsverschlüsselungsschlüssel verschlüsselt werden wird. Bei einigen Ausführungsformen gibt die Schlüsselumschaltnachricht an, dass die Verwendung des aktualisierten Übertragungsverschlüsselungsschlüssels zu irgendeinem Zeitpunkt in der Zukunft beginnen wird, wie zum Beispiel zu einem bestimmten Zeitpunkt oder nachdem eine bestimmte Anzahl weiterer Nachrichten mit dem aktualisierten Übertragungsverschlüsselungsschlüssel gesendet wurde. Bei der veranschaulichenden Ausführungsform wird die Schlüsselumschaltnachricht als eine Flit umgesetzt. Zusätzlich oder alternativ dazu kann die Schlüsselumschaltnachricht als ein anderer Nachrichtentyp umgesetzt sein, wie zum Beispiel ein Paket oder eine Phit.
  • Im Block 542 aktiviert der Prozessor 402A den aktualisierten Übertragungsverschlüsselungsschlüssel. Bei der veranschaulichenden Ausführungsform aktiviert der Prozessor 402A den aktualisierten Übertragungsverschlüsselungsschlüssel unmittelbar nach dem Senden der Schlüsselumschaltnachricht. Dazu kopiert die Kryptographie-Engine 410A bei der veranschaulichenden Ausführungsform den aktualisierten Übertragungsverschlüsselungsschlüssel von einem Schattenregister in ein aktives Register. Bei einigen Ausführungsformen kann der Prozessor 402A auf das Aktivieren des aktualisierten Übertragungsverschlüsselungsschlüssels bis zu einem späteren Zeitpunkt warten, wie zum Beispiel, wenn die erste Nachricht unter Verwendung des aktualisierten Übertragungsverschlüsselungsschlüssels verschlüsselt werden soll.
  • Im Block 544 pausiert der Prozessor 402A die Übertragung verschlüsselter Nachrichten, um dem fernen Prozessor einen Zeitraum zu erlauben, um den aktualisierten Übertragungsschlüssel zu aktivieren. Bei der veranschaulichenden Ausführungsform pausiert der Prozessor 402A die Übertragung aller verschlüsselten Nachrichten (pausiert (z. B. die Übertragung verschlüsselter Nachrichten auf dem einzigen im Betrieb befindlichen Kanal). Bei anderen Ausführungsformen kann der Prozessor 402A das Senden verschlüsselter Nachrichten nur auf dem Kanal pausieren, der dem aktualisierten Übertragungsverschlüsselungsschlüssel entspricht, und kann das Senden verschlüsselter Nachrichten für andere Kanäle fortsetzen, die andere Verschlüsselungsschlüssel verwenden. Es versteht sich, dass der Prozessor 402A bei Ausführungsformen, die nicht alle Nachrichten verschlüsseln, weiterhin unverschlüsselte Nachrichten auf demselben Kanal senden kann. Bei einigen Ausführungsformen kann der Prozessor 402A während der Pause beginnen, eine Pipeline verschlüsselter Nachrichten zu füllen, die unter Verwendung des aktualisierten Übertragungsverschlüsselungsschlüssels gesendet werden müssen.
  • Der Prozessor 402A kann für eine beliebige geeignete Zeitdauer, wie zum Beispiel eine beliebige Zeitdauer von 1 bis 1000 Nanosekunden, pausieren. Bei der veranschaulichenden Ausführungsform pausiert der Prozessor 402A für eine vorbestimmte Zeitdauer von 100 Nanosekunden. Bei einigen Ausführungsformen kann der Prozessor 402A pausieren, bis ein Trigger auftritt, wie zum Beispiel eine weitere Bestätigungsnachricht von dem fernen Prozessor. Nach Abschluss der Pause kehrt der Prozessor 402A zurück zum Block 510 in 5, um den Betrieb der verschlüsselten Verbindung fortzusetzen.
  • Falls der Prozessor 402A von dem fernen Prozessor keine Schlüsselaktualisierungsnachricht hinsichtlich des empfangenen Verschlüsselungsschlüssels im Block 514 empfangen hat, kehrt das Verfahren 500, erneut bezugnehmend auf Block 524 in 5, zurück zum Block 510, um das Betreiben der verschlüsselten Verbindung fortzusetzen. Falls der Prozessor 402A von dem fernen Prozessor eine Schlüsselaktualisierungsnachricht hinsichtlich des empfangenen Verschlüsselungsschlüssels im Block 514 empfangen hat, geht das Verfahren 500 weiter zum Block 540 in 7.
  • Bezugnehmend auf 7 speichert der Prozessor 402A jetzt im Block 546 den aktualisierten Empfangsverschlüsselungsschlüssel in einem Schattenregister, wie zum Beispiel in einem Schattenregister der Kryptographie-Engine 410A. Der veranschaulichte Prozessor 402A speichert den aktualisierten Empfangsverschlüsselungsschlüssel in einem Schattenregister der Kryptographie-Engine 410A, um in der Lage zu sein, schnell auf die Verwendung des aktualisierten Empfangsverschlüsselungsschlüssels umschalten zu können. Der Prozessor 402A kann eine beliebige zusätzliche oder alternative Aktion vornehmen, die notwendig ist, um ein kurzfristiges Umschalten auf die Verwendung des aktualisierten Empfangsverschlüsselungsschlüssels vorzubereiten.
  • Im Block 548 sendet der Prozessor 402 eine Schlüsselaktualisierungsbestätigungsnachricht zu dem fernen Prozessor. Bei der veranschaulichenden Ausführungsform gibt die Schlüsselaktualisierungsbestätigungsnachricht an, dass der Prozessor 402A bereit ist, auf den aktualisierten Schlüssel umzuschalten. Bei anderen Ausführungsformen kann die Schlüsselaktualisierungsbestätigungsnachricht angeben, dass der Prozessor 402A zu einem bestimmten Zeitpunkt in der Zukunft bereit sein wird, auf den aktualisierten Schlüssel umzuschalten.
  • Im Block 550 setzt der Prozessor 402A das Betreiben der Verschlüsselungsverbindung zwischen dem lokalen Prozessor und dem fernen Prozessor unter Verwendung des aktuellen Empfangsverschlüsselungsschlüssels (und des aktuellen Übertragungsverschlüsselungsschlüssels) fort. Im Block 552 empfängt der Prozessor 402A eine Schlüsselumschaltnachricht von dem fernen Prozessor. Bei der veranschaulichenden Ausführungsform weist die Schlüsselumschaltnachricht den Prozessor 402A an, mit der Verwendung des aktualisierten Übertragungsverschlüsselungsschlüssels zu beginnen, und gibt an, dass die nächste Nachricht mit dem aktualisierten Übertragungsverschlüsselungsschlüssel verschlüsselt werden wird. Bei einigen Ausführungsformen gibt die Schlüsselumschaltnachricht an, dass die Verwendung des aktualisierten Übertragungsverschlüsselungsschlüssels zu irgendeinem Zeitpunkt in der Zukunft beginnen wird, wie zum Beispiel zu einem bestimmten Zeitpunkt oder nachdem eine bestimmte Anzahl weiterer Nachrichten mit dem aktualisierten Übertragungsverschlüsselungsschlüssel gesendet wurde.
  • Falls der Prozessor 402A keine Schlüsselumschaltnachricht empfangen hat, kehrt das Verfahren 500 im Block 554 zurück zum Block 550, um das Betreiben der verschlüsselten Verbindung fortzusetzen. Falls der Prozessor 402A eine Schlüsselaktualisierungsbestätigungsnachricht empfangen hat, geht das Verfahren 500 weiter zum Block 556.
  • Im Block 556 schließt der Prozessor 402A die Verarbeitung empfangener Nachrichten mit dem aktuellen Empfangsverschlüsselungsschlüssel ab. Bei der veranschaulichenden Ausführungsform betreibt die Kryptographie-Engine 410A eine Pipeline und die Kryptographie-Engine 410A muss einen Teil oder die gesamte Entschlüsselungsoperation abschließen, bevor der Empfangsverschlüsselungsschlüssel geändert wird. Zusätzlich oder alternativ dazu kann die Kryptographie-Engine 410A Aufgaben, wie zum Beispiel eine Integritätsprüfung mit dem aktuellen Empfangsverschlüsselungsschlüssel durchführen. Es versteht sich, dass während der Zeit, in der die Kryptographie-Engine 410A die Pipeline basierend auf dem aktuellen Empfangsverschlüsselungsschlüssel abarbeitet, die Kryptographie-Engine 410A nicht beginnen kann, Nachrichten unter Verwendung des aktualisierten Empfangsverschlüsselungsschlüssels zu entschlüsseln. Von daher pausiert der ferne Prozessor das Senden von Nachrichten auf dem Kanal, der dem aktualisierten Empfangsverschlüsselungsschlüssel entspricht, ähnlich der im Block 544 in 6 beschriebenen Pause.
  • Sobald die Verarbeitungsoperationen unter Verwendung des aktuellen Empfangsverschlüsselungsschlüssels abgeschlossen wurden, aktiviert der Prozessor 402A im Block 558 den aktualisierten Empfangsverschlüsselungsschlüssel. Das Verfahren 500 kehrt dann zurück zum Block 510 in 5, um die Durchführung von Verschlüsselungsoperationen fortzusetzen.
  • Es versteht sich, dass das Verfahren 500 eine Ausführungsform beschreibt, aber auch andere Ausführungsformen mit zusätzlichen oder unterschiedlichen Operationen oder Operationen möglich sind, die in einer anderen Reihenfolge durchgeführt werden. Zum Beispiel kann der Prozessor 402A den aktualisierten Übertragungsverschlüsselungsschlüssel bestimmen, bevor er sogar bestimmt, dass der Übertragungsverschlüsselungsschlüssel, wie zum Beispiel kurz nach dem Aktivieren eines neuen Übertragungsverschlüsselungsschlüssels, aktualisiert werden sollte. Als ein anderes Beispiel kann der Prozessor 402A den Übertragungsverschlüsselungsschlüssel vor oder nach dem Senden der Schlüsselaktualisierungsnachricht zu dem fernen Prozessor senden. Bei einem noch weiteren Beispiel kann der Prozessor 402A das Senden von Nachrichten, die mit dem aktuellen Übertragungsschlüssel verschlüsselt sind, nach dem Senden der Schlüsselumschaltnachricht fortsetzen, wie zum Beispiel das Senden einer vorbestimmten Anzahl von Nachrichten, bevor der aktualisierte Verschlüsselungsschlüssel aktiviert wird und die Übertragung verschlüsselter Nachrichten pausiert wird.
  • Es versteht sich ferner, dass das in den 5 bis 7 gezeigt Flussdiagramm nicht dem einzigen möglichen Ablauf eines Verfahrens entspricht. Zum Beispiel kann der Prozessor 402A eine Schlüsselaktualisierungsnachricht für den Übertragungsverschlüsselungsschlüssel zu dem fernen Prozessor senden und kann, während er auf eine Schlüsselaktualisierungsbestätigungsnachricht wartet, eine Schlüsselaktualisierungsnachricht für den Empfangsschlüssel von dem fernen Prozessor empfangen. Als ein anderes Beispiel kann der Prozessor 402A eine Schlüsselaktualisierungsnachricht für den Übertragungsverschlüsselungsschlüssel für einen ersten Kanal senden und kann, während er auf eine Schlüsselaktualisierungsbestätigungsnachricht für den ersten Kanal wartet, eine Schlüsselaktualisierungsnachricht für den Übertragungsverschlüsselungsschlüssel für einen zweiten Kanal senden.
  • Bezugnehmend auf 8 wird eine Ausführungsform eines Blockdiagramms für ein Rechensystem dargestellt, das einen Mehrkernprozessors beinhaltet. Der Prozessor 800 beinhaltet einen beliebigen Prozessor oder eine beliebige Verarbeitungsvorrichtung, wie zum Beispiel einen Mikroprozessor, einen eingebetteten Prozessor, einen digitalen Signalprozessor (DSP), einen Netzwerkprozessor, einen handgehaltenen Prozessor, einen Anwendungsprozessor, einen Coprozessor, ein Ein-Chip-System (SoC) oder eine andere Vorrichtung zum Ausführen von Codes. Der Prozessor 800 beinhaltet in einer Ausführungsform mindestens zwei Kerne - die Kerne 801 und 802, die jeweils asymmetrische Kerne oder (in der veranschaulichten Ausführungsform) symmetrische Kerne beinhalten können. Der Prozessor 800 kann jedoch eine beliebige Anzahl von Verarbeitungselementen beinhalten, die symmetrisch oder asymmetrisch sein können.
  • Bei einer Ausführungsform bezieht sich ein Verarbeitungselement auf eine Hardware oder eine Logik, um einen Softwarethread zu unterstützen. Beispiele für Hardwareverarbeitungselemente beinhalten: eine Thread-Einheit, einen Thread-Schlitz, einen Thread, eine Prozesseinheit, einen Kontext, eine Kontexteinheit, einen logischen Prozessor, einen Hardwarethread, einen Kern und/oder ein beliebiges anderes Element, das in der Lage ist, einen Zustand für einen Prozessor beizubehalten, wie zum Beispiel einen Ausführungszustand oder architektonischen Zustand. Mit anderen Worten bezieht sich ein Verarbeitungselement in einer Ausführungsform auf eine beliebige Hardware, die in der Lage ist, unabhängig mit einem Code, wie zum Beispiel einem Softwarethread, einem Betriebssystem, einer Anwendung oder einem anderen Code, assoziiert zu werden. Ein physischer Prozessor (oder Prozessorsockel) bezieht sich typischerweise auf eine integrierte Schaltung, die potenziell eine beliebige Anzahl anderer Verarbeitungselemente, wie zum Beispiel Kerne oder Hardware-Threads, beinhaltet.
  • Ein Kern bezieht sich oftmals auf eine Logik, die sich auf einer integrierten Schaltung befindet, die in der Lage ist, einen unabhängigen architektonischen Zustand beizubehalten, wobei jeder unabhängig beibehaltene architektonische Zustand mit mindestens einigen zweckbestimmten Ausführungsressourcen assoziiert ist. Im Gegensatz zu Kernen bezieht sich ein Hardware-Thread typischerweise auf jede Logik, die sich auf einer integrierten Schaltung befindet, die in der Lage ist, einen unabhängigen architektonischen Zustand beizubehalten, wobei die unabhängig beibehaltenen architektonischen Zustände den Zugriff auf Ausführungsressourcen gemeinsam nutzen. Wie ersichtlich ist, überschneiden sich die Grenzen zwischen der Nomenklatur eines Hardware-Threads und eines Kerns, wenn bestimmte Ressourcen gemeinsam genutzt werden und andere einem architektonischen Zustand gewidmet sind. Dennoch werden ein Kern und ein Hardware-Thread von einem Betriebssystem häufig als individuelle Logikprozessoren angesehen, wobei das Betriebssystem dazu in der Lage ist, Operationen in jedem Logikprozessor individuell zu planen.
  • Der physische Prozessor 800, wie in 8 veranschaulicht, weist zwei Kerne - die Kerne 801 und 802, auf. Hier werden die Kerne 801 und 802 als symmetrische Kerne betrachtet, d. h., als Kerne mit den gleichen Konfigurationen, den gleichen Funktionseinheiten und/oder der gleichen Logik. Bei einer anderen Ausführungsform weist der Kern 801 einen reihenfolgevariablen Prozessorkern auf, während der Kern 802 einen reihenfolgestarren Prozessorkern aufweist. Die Kerne 801 und 802 können jedoch individuell aus einer beliebigen Art von Kernen ausgewählt werden, wie zum Beispiel einem systemeigenen Kern, einem softwareverwalteten Kern, einem Kern, der dazu geeignet ist, eine systemeigene Befehlssatzarchitektur (ISA) auszuführen, einem Kern, der dazu geeignet ist, eine übersetzte Befehlssatzarchitektur (ISA) auszuführen, einem gemeinsam ausgelegten Kern oder einem anderen bekannten Kern. In einer heterogenen Kernumgebung (d. h., bei asymmetrischen Kernen) kann eine Form der Übersetzung, wie zum Beispiel eine binäre Übersetzung, verwendet werden, um einen Code auf einem oder beiden Kernen zu planen oder auszuführen. Der Kürze der Erörterung halber werden nachfolgend nur die in dem Kern 801 veranschaulichten Funktionseinheiten ausführlicher beschrieben, da die Einheiten in dem Kern 802 in der dargestellten Ausführungsform auf eine ähnliche Weise arbeiten.
  • Wie dargestellt, weist der Kern 801 zwei Hardware-Threads 801a und 801b auf, die auch als Hardware-Thread-Schlitze 801a und 801b bezeichnet werden können. Daher betrachten Softwareeinheiten, wie zum Beispiel ein Betriebssystem, in einer Ausführungsform potenziell den Prozessor 800 als vier separate Prozessoren, d. h., vier logische Prozessoren oder Verarbeitungselemente, die in der Lage sind, vier Software-Threads gleichzeitig auszuführen. Wie oben angeführt, ist ein erster Thread mit Architekturzustandsregistern 801a assoziiert, ein zweiter Thread ist mit Architekturzustandsregistern 801b assoziiert, ein dritter Thread kann mit Architekturzustandsregistern 802a assoziiert sein und ein vierter Thread kann mit Architekturzustandsregistern 802b assoziiert sein. Hier kann jede der Architekturen Zustandsregister (801a, 801b, 802a und 802b) als Verarbeitungselemente, Thread-Schlitze oder Thread-Einheiten bezeichnet werden, wie oben beschrieben wird. Wie veranschaulicht, werden die Architekturzustandsregister 801a in die Architekturzustandsregister 801b kopiert, sodass individuelle Architekturzustände/-kontexte für den logischen Prozessor 801a und den logischen Prozessor 801b gespeichert werden können. Im Kern 801 können auch andere kleinere Ressourcen, wie Befehlszeiger und Umbenennungslogik im Zuordnungs- und Umbenennungsblock 830 für die Threads 801a und 801b kopiert werden. Einige Ressourcen, wie zum Beispiel Neuordnungspuffer in der Neuordnungs-/Rückzugseinheit 835, der ILTB 820, Lade -/Speicherpuffer und Warteschlangen, können durch Partitionierung gemeinsam genutzt werden. Andere Ressourcen, wie zum Beispiel interne Universalregister, Seitentabellenbasisregister, ein Datencache einer niedrigen Ebene und ein Daten-TLB 815, Ausführungseinheit(en) 840 und Teile der reihenfolgevariablen Einheit 835 werden potenziell vollständig gemeinsam genutzt.
  • Der Prozessor 800 beinhaltet häufig andere Ressourcen, die vollständig gemeinsam genutzt, durch Partitionierung gemeinsam genutzt oder durch/für Verarbeitungselemente zweckbestimmt werden können. In 8 ist eine Ausführungsform eines rein beispielhaften Prozessors mit veranschaulichenden Logik-Einheiten/-Ressourcen eines Prozessors veranschaulicht. Es ist zu beachten, dass ein Prozessor jede dieser Funktionseinheiten beinhalten oder nicht beinhalten kann, so wie er andere nicht abgebildete bekannte Funktionseinheiten, Logiken oder Firmware beinhalten kann. Wie veranschaulicht, umfasst der Kern 801 einen vereinfachten, repräsentativen reihenfolgevariablen Prozessorkern (OOO-Prozessorkern). Ein reihenfolgestarrer Prozessor kann jedoch in unterschiedlichen Ausführungsformen verwendet werden. Der OOO-Kern weist einen Verzweigungszielpuffer 820 zum Vorhersagen von Verzweigungen, die ausgeführt/übernommen werden müssen, und einen Befehlsübersetzungspuffer (1-TLB) 820 zum Speichern von Adressübersetzungseinträgen für die Befehle auf.
  • Der Kern 801 beinhaltet weiter ein Decodierungsmodul 825, das mit der Abrufeinheit 820 gekoppelt ist, um abgerufene Elemente zu decodieren. Eine Abruflogik beinhaltet bei einer Ausführungsform individuelle Sequenzierer, die jeweils mit Thread-Schlitzen 801a, 801b assoziiert sind. Üblicherweise ist der Kern 801 mit einer ersten ISA assoziiert, die Befehle, die auf dem Prozessor 800 ausführbar sind, definiert/spezifiziert. Oftmals umfassen die Maschinencodebefehle, die Teil der ersten ISA sind, einen Teil des Befehls (der als ein Opcode bezeichnet), der auf einen auszuführenden Befehl oder Operation verweist oder diese spezifiziert. Die Decodierungslogik 825 weist Schaltungsanordnungen auf, die diese Befehle anhand ihrer Opcodes erkennen und die decodierten Befehle in der Pipeline zur Verarbeitung weiterleitet, wie dies durch die erste ISA definiert wird. Wie unten ausführlicher erörtert wird, weisen die Decodierer 825 in einer Ausführungsform zum Beispiel eine Logik auf, die dazu ausgelegt oder geeignet ist, um spezifische Befehle, wie zum Beispiel transaktionale Befehle, zu erkennen. Als ein Ergebnis der Erkennung durch die Decodierer 825 ergreift die Architektur oder der Kern 801 spezifische, vordefinierte Handlungen, um Aufgaben durchzuführen, die mit dem geeigneten Befehl assoziiert sind. Es ist wichtig zu beachten, dass jede der hier beschriebenen Aufgaben, Blöcke, Operationen und Verfahren als Reaktion auf eine einzelne oder mehrere Befehle ausgeführt werden können; einige davon können neue oder alte Befehle sein. Es ist zu beachten, dass die Decodierer 826 in einer Ausführungsform dieselbe ISA (oder eine Teilmenge davon) erkennen. Alternativ dazu erkennen die Decoder 826 in einer heterogenen Kernumgebung eine zweite ISA (entweder eine Teilmenge der ersten ISA oder eine unterschiedliche ISA).
  • Bei einem Beispiel weist der Zuteilungs- und Umbenennungsblock 830 einen Zuteiler zum Reservieren von Ressourcen, wie Registerdateien, zum Speichern von Befehlsverarbeitungsergebnissen auf. Die Threads 801a und 801b sind jedoch potenziell zu einer reihenfolgevariablen Ausführung in der Lage, wobei der Zuteilungs- und Umbenennungsblock 830 auch andere Ressourcen reserviert, wie zum Beispiel einen Neuordnungspuffer, um Befehlsergebnisse zu verfolgen. Die Einheit 830 kann auch einen Registerumbenenner zum Umbenennen von Programm-/Befehlsreferenzregistern für andere Registern innerhalb des Prozessors 800 beinhalten. Die Neuordnungs-/Rückzugseinheit 835 beinhaltet Bauelemente, wie zum Beispiel die oben erwähnten Neuordnungspuffer, Ladepuffer und Speicherpuffer, um eine reihenfolgevariable Ausführung und einen späteren reihenfolgestarren Rückzug von Befehlen, die reihenfolgevariabel ausgeführt werden, zu unterstützen.
  • Der Planungs- und Ausführungseinheitsblock 840 beinhaltet bei einer Ausführungsform eine Planungseinheit zum Planen von Befehlen/Operationen in Ausführungseinheiten. Zum Beispiel wird ein Gleitkommabefehl in einem Anschluss einer Ausführungseinheit geplant, die eine verfügbare Gleitkommaausführungseinheit aufweist. Die Registerdateien, die mit den Ausführungseinheiten assoziiert sind, sind ebenfalls enthalten, um Verarbeitungsergebnisse von Informationsbefehlen zu speichern. Beispielhafte Ausführungseinheiten umfassen eine Gleitkommaausführungseinheit, eine Ganzzahlausführungseinheit, eine Sprungausführungseinheit, eine Ladeausführungseinheit, eine Speicherausführungseinheit und andere bekannte Ausführungseinheiten.
  • Der Daten-Cache einer unteren Ebene und der Datenübersetzungspuffer (D-TLB) 850 sind mit der/den Ausführungseinheit(en) 840 gekoppelt. Der Daten-Cache dient dazu Elemente zu speichern, die kürzlich verwendet wurden/an denen kürzlich Operationen, wie Datenoperanden, die potenziell in Speicherkohärenzzuständen gehalten werden, vorgenommen wurden. Der D-TLB dient dazu, die jüngsten Adressübersetzungen von virtuell/linear-zu-physisch zu speichern. Als ein spezifisches Beispiel kann ein Prozessor eine Seitentabellenstruktur aufweisen, um den physischen Speicher in eine Vielzahl von virtuellen Seiten aufzuteilen.
  • Hier nutzen die Kerne 801 und 802 den Zugriff auf einen Cache einer höheren Ebene oder einer weiter fernen Ebene gemeinsam, wie zum Beispiel einen Cache zweiter Ebene, der mit der chipinternen Schnittstelle 810 assoziiert ist. Es ist zu beachten, dass sich höhere Ebene oder weiter entfernte Ebene auf Cache-Ebenen bezieht, die sich auf höhere Cache-Ebenen oder von der(den) Ausführungseinheit(en) weiter entfernte Ebenen bezieht. Bei einer Ausführungsform ist der Cache einer höheren Ebene ein Daten-Cache der letzten Ebene - der letzte Cache in der Speicherhierarchie auf dem Prozessor 800 - wie zum Beispiel ein Daten-Cache der zweiten oder dritten Ebene. Der Cache einer höheren Ebene ist jedoch nicht darauf beschränkt, da er mit einem Befehlscache assoziiert sein oder einen Befehlscache beinhalten kann. Ein Trace-Cache - ein Typ eines Befehlscaches - kann stattdessen hinter den Decodierer 825 gekoppelt sein, um kürzlich decodierte Traces zu speichern. Hier verweist ein Befehl potenziell auf einen Makro-Befehl (d. h., einen allgemeinen Befehl, der von den Decodierern erkannt wird), der in eine Anzahl von Mikro-Befehlen (Mikro-Operationen) decodiert werden kann.
  • Bei der dargestellten Konfiguration beinhaltet der Prozessor 800 auch ein chipinternes Schnittstellenmodul 810. Historisch war ein Speicher-Controller, der nachfolgend ausführlicher beschrieben wird, in einem Rechensystem außerhalb des Prozessors 800 enthalten. Bei diesem Szenario dient die chipinterne Schnittstelle 810 dazu, mit Vorrichtungen außerhalb des Prozessors 800 zu kommunizieren, wie zum Beispiel dem Systemspeicher 875, einem Chipsatz (der häufig einen Speicher-Controller-Hub zum Verbinden mit dem Speicher 875 und einen E/A-Controller-Hub zum Verbinden von Peripherievorrichtungen aufweist), einem Speicher-Controller-Hub, einer Nordbrücke oder einer anderen integrierten Schaltung. Und bei diesem Szenario kann der Bus 805 eine beliebige bekannte Zwischenverbindung aufweisen, wie zum Beispiel einen Multi-Drop-Bus, eine Punkt-zu-Punkt-Zwischenverbindung, eine serielle Zwischenverbindung, einen parallelen Bus, einen kohärenten (z. B. cache-kohärenten) Bus, eine geschichtete Protokollarchitektur, einen differenziellen Bus und einen GTL-Bus.
  • Der Speicher 875 kann für den Prozessor 800 zweckbestimmt sein oder mit anderen Vorrichtungen in einem System gemeinsam genutzt werden. Übliche Beispiele für Arten von Speichern 875 umfassen einen DRAM, einen SRAM, einen nichtflüchtigen Speicher (NV-Speicher) und andere bekannte Speicherungsvorrichtungen. Es sei angemerkt, dass die Vorrichtung 880 einen Grafikbeschleuniger, einen Prozessor oder eine Karte, die/der mit einem Speicher-Controller-Hub gekoppelt ist, einen Datenspeicher, der mit einem E/A-Controller-Hub gekoppelt ist, einen drahtlosen Sendeempfänger, eine Flash-Vorrichtung, eine Audiosteuerung, eine Netzwerksteuerung oder eine andere bekannte Vorrichtung umfassen kann.
  • In letzte Zeit werden jedoch immer mehr Logiken und Vorrichtungen in einen einzigen Die, wie zum Beispiel einen SoC integriert, wobei jede dieser Vorrichtungen in den Prozessor 800 integriert werden kann. Bei einer Ausführungsform befindet sich zum Beispiel ein Speicher-Controller-Hub in dem gleichen Gehäuse und/oder dem gleichen Die wie der Prozessor 800. Hier weist ein Teil des Kerns (ein kern interner Teil) 810 einen oder mehrere Controller zum Verbinden über eine Schnittstelle mit anderen Vorrichtungen auf, wie zum Beispiel dem Speicher 875 oder einer Grafikvorrichtung 880. Die Konfiguration, die eine Zwischenverbindung und Steuerungen zum Verknüpfen mit derartigen Vorrichtungen umfasst, wird oft als kerninterne (oder kern externe) Konfiguration bezeichnet. Als ein Beispiel beinhaltet die chipinterne Schnittstelle 810 eine Ringverbindung für eine chipinterne Kommunikation und eine serielle Hochgeschwindigkeits-Punkt-zu-Punkt-Verbindung 805 für eine chipexterne Kommunikation. Dennoch können in der SoC-Umgebung noch mehr Vorrichtungen, wie zum Beispiel die Netzwerkschnittstelle, die Coprozessoren, der Speicher 875, der Grafikprozessor 880 und beliebige andere bekannte Computervorrichtungen/Schnittstellen, in einem einzigen Die oder in einer einzigen integrierten Schaltung integriert sein, um einen kleinen Formfaktor mit hoher Funktionalität und niedrigem Leistungsverbrauch bereitzustellen.
  • Bei einer Ausführungsform ist der Prozessor 800 in der Lage, einen Compiler-, Optimierungs- und/oder Übersetzercode 877 auszuführen, um einen Anwendungscode 876 zu kompilieren, zu übersetzen und/oder zu optimieren, um die hier beschriebenen Einrichtungen und Verfahren zu unterstützen oder mit diesen eine Schnittstelle zu bilden. Ein Compiler weist oft ein Programm oder einen Satz von Programmen auf, um einen Quelltext/-code in ein en Zieltext/-code zu übersetzen. Üblicherweise erfolgt die Kompilierung eines Programm-/Anwendungscodes mit einem Compiler in mehreren Phasen und Durchläufen, um den Programmierhochsprachencode in einen Maschinen- oder Assemblersprachencode auf niedriger Ebene umzuwandeln. Allerdings können Einzeldurchlauf-Compiler immer noch zur einfachen Kompilierung verwendet werden. Ein Compiler kann alle bekannten Kompilierungstechniken verwenden und alle bekannten Kompilierungsoperationen, wie zum Beispiel eine lexikalische Analyse, eine Vorverarbeitung, eine Zerlegung, eine semantische Analyse, eine Codeerzeugung, eine Codetransformation und eine Codeoptimierung ausführen.
  • Größere Compiler beinhalten oftmals mehrere Phasen, aber meistens sind diese Phasen in zwei allgemeinen Phasen enthalten: (1) ein Front-End, das heißt, allgemein, wo eine syntaktische Verarbeitung, eine semantische Verarbeitung und einige Transformationen/Optimierungen stattfinden können, und (2) ein Back-End, das heißt, allgemein, wo eine Analyse, Transformationen, Optimierungen und eine Codeerzeugung stattfinden. Einige Compiler beziehen sich auf eine Mitte, welche die Unschärfe der Abgrenzung zwischen einem Front-End und einem Back-End eines Compilers veranschaulicht. Demzufolge kann ein Bezug auf eine Einfügung, eine Zuordnung, eine Erzeugung oder andere Operationen eines Compilers in allen zuvor erwähnten Phasen oder Durchläufen sowie allen anderen bekannten Phasen oder Durchläufen eines Compilers genommen werden. Als ein veranschaulichendes Beispiel fügt ein Compiler potenziell Operationen, Aufrufe, Funktionen, usw. in einer oder mehreren Kompilierungsphasen ein, wie zum Beispiel ein Einfügen von Aufrufen/Operationen in einer Front-End-Phase der Kompilierung und danach einer Transformation der Aufrufe/Operationen in einen Code niedrigerer Ebene während einer Transformationsphase. Es ist zu beachten, dass während einer dynamischen Kompilierung ein Compilercode oder ein dynamischer Optimierungscode diese Operationen/Aufrufe einfügen kann und den Code während der Laufzeit zur Ausführung optimieren kann. Als ein spezifisches veranschaulichendes Beispiel kann der Binärcode (ein bereits kompilierter Code) während der Laufzeit dynamisch optimiert werden. Hier kann der Programmcode den dynamischen Optimierungscode, den Binärcode oder eine Kombination davon umfassen.
  • Ähnlich wie ein Compiler übersetzt ein Übersetzer, wie zum Beispiel ein binärer Übersetzer, einen Code entweder statisch oder dynamisch, um den Code zu optimieren und/oder zu übersetzen. Daher kann sich die Bezugnahme auf eine Ausführung eines Codes, eines Anwendungscodes, eines Programmcodes oder einer anderen Softwareumgebung beziehen auf: (1) eine Ausführung von Compilerprogramm(en), eines Optimierungscodeoptimierers oder eines Übersetzers, entweder dynamisch oder statisch, um einen Programmcode zu kompilieren, Softwarestrukturen beizubehalten, andere Operationen auszuführen, einen Code zu optimieren oder einen Code zu übersetzen; (2) eine Ausführung eines Hauptprogrammcodes, der Operationen/Aufrufen beinhaltet, wie zum Beispiel ein Anwendungscode, der optimiert/kompiliert wurde; (3) eine Ausführung eines anderen Programmcodes, wie zum Beispiel von dem Hauptprogrammcode zugeordneten Bibliotheken, um Softwarestrukturen beizubehalten, andere softwarebezogene Operationen auszuführen oder einen Code zu optimieren; oder (4) eine Kombination davon.
  • Bezugnehmend auf 9 wird nun ein Blockdiagramm eines anderen Systems 900 gemäß einer Ausführungsform der vorliegenden Offenbarung gezeigt. Wie in 19 gezeigt wird, ist das Mehrprozessorsystem 900 ein Punkt-zu-Punkt-Zwischenverbindungssystem und beinhaltet einen ersten Prozessor 970 und einen zweiten Prozessor 980, die über eine Punkt-zu-Punkt-Zwischenverbindung 950 gekoppelt sind. Jeder der Prozessoren 970 und 980 kann eine beliebige Version eines Prozessors sein. Bei einer Ausführungsform sind 952 und 954 Teil einer seriellen kohärenten Punkt-zu-Punkt-Zwischenverbindungsstruktur, wie zum Beispiel einer Hochleistungsarchitektur. Demzufolge können Aspekte der vorliegenden Offenbarung innerhalb der QPI-Architektur implementiert werden.
  • Obwohl hier nur zwei Prozessoren 970, 980 gezeigt werden, versteht es sich, dass der Schutzumfang der vorliegenden Offenbarung nicht darauf beschränkt ist. Bei anderen Ausführungsformen können ein oder mehrere zusätzliche Prozessoren in einem gegebenen Prozessor vorhanden sein.
  • Die Prozessoren 970 und 980 werden einschließlich integrierter Speichercontroller-Einheiten 972 bzw. 982 gezeigt. Der Prozessor 970 beinhaltet als Teil seiner Bussteuerungseinheiten auch die Punkt-zu-Punkt- (P-P-)Schnittstellen 976 und 978; auf ähnliche Weise beinhaltet der zweite Prozessor 980 die P-P-Schnittstellen 986 und 988. Die Prozessoren 970, 980 können Informationen über eine Punkt-zu-Punkt- (P-P-)Schnittstelle 950 unter Verwendung von P-P-Schnittstellenschaltungen 978, 988 austauschen. Wie in 19 gezeigt wird, koppeln die IMCs 972 und 982 die Prozessoren mit entsprechenden Speichern, nämlich einem Speicher 932 und einem Speicher 934, die Teile eines Hauptspeichers sein können, der lokal mit den jeweiligen Prozessoren verbunden ist.
  • Die Prozessoren 970, 980 tauschen jeweils Informationen mit einem Chipsatz 990 über die individuellen P-P-Schnittstellen 952, 954 unter Verwendung der Punkt-zu-Punkt-Schnittstellenschaltungen 976, 994, 986, 998 aus. Der Chipsatz 990 tauscht auch Informationen über eine Schnittstellenschaltung 992 entlang einer Hochleistungsgrafikzwischenverbindung 939 mit einer Hochleistungsgrafikschaltung 938 aus.
  • Ein (nicht gezeigter) gemeinsam genutzter Cache kann in beiden Prozessoren oder außerhalb beider Prozessoren enthalten sein; jedoch über eine P-P-Zwischenverbindung mit den Prozessoren verbunden sein, sodass lokale Cache-Informationen eines oder beider Prozessoren in dem gemeinsam genutzten Cache gespeichert werden können, falls ein Prozessor in einen Niedrigleistungsmodus versetzt wird.
  • Der Chipsatz 990 kann über eine Schnittstelle 996 mit einem ersten Bus 916 gekoppelt sein. Bei einer Ausführungsform kann der erste Bus 916 ein Peripheral-Component-Interconnect- (PCI-)Bus oder ein Bus, wie zum Beispiel ein PCI-Express-Bus oder ein anderer E/A-Zwischenverbindungsbus der dritten Generation sein, obwohl der Schutzumfang der vorliegenden Offenbarung nicht darauf beschränkt ist.
  • Wie in 9 gezeigt wird, sind verschiedene E/A-Vorrichtungen 914 zusammen mit einer Busbrücke 918, die den ersten Bus 916 mit einem zweiten Bus 920 koppelt, mit dem ersten Bus 916 gekoppelt. Bei einer Ausführungsform weist der zweite Bus 920 einen LPC-BUS (LPC: Low Pin Count) auf. Verschiedene Vorrichtungen sind bei einer Ausführungsform mit dem zweiten Bus 920 gekoppelt, einschließlich zum Beispiel einer Tastatur und/oder einer Maus 922, Kommunikationsvorrichtungen 927 und einer Speichereinheit 928, wie zum Beispiel einem Festplattenlaufwerk oder einer anderen Massenspeichervorrichtung, die häufig Befehle/Codes und Daten 930 beinhaltet. Ferner wird ein Audio-E/A 924 gezeigt, der mit dem zweiten Bus 920 gekoppelt ist. Es ist zu beachten, dass andere Architekturen möglich sind, wobei die enthaltenen Komponenten und Zwischenverbindungsarchitekturen variieren. Zum Beispiel kann ein System anstelle der Punkt-zu-Punkt-Architektur von 9 einen Multi-Drop-Bus oder eine andere derartige Architektur implementieren.
  • Obwohl Aspekte der vorliegenden Offenbarung mit Bezug auf eine begrenzte Anzahl von Ausführungsformen beschrieben wurden, sind für den Fachmann zahlreiche Modifikationen und Variationen davon selbstverständlich. Die angefügten Ansprüche sind so zu verstehen, dass sie alle derartigen Modifikationen und Variationen abdecken, die in den wahren Erfindungsgedanken und den Schutzumfang dieser vorliegenden Offenbarung fallen.
  • Eine Gestaltung kann verschiedene Stufen durchlaufen, von Erstellung über die Simulation bis hin zur Herstellung. Daten, die eine Gestaltung darstellen, können die Gestaltung auf verschiedene Weisen repräsentieren. Zunächst kann die Hardware, was bei Simulationen sinnvoll ist, unter Verwendung einer Hardware-Beschreibungssprache oder einer anderen funktionalen Beschreibungssprache repräsentiert werden. Zusätzlich dazu kann bei einigen Stufen des Gestaltungsprozesses ein Modell von Schaltungsebenen mit Logikgattern und/oder Transistor-Gates erstellt werden. Darüber hinaus erreichen die meisten Gestaltungen bei einer gewissen Stufe eine Datenebene, welche die physische Platzierung verschiedener Vorrichtungen in dem Hardwaremodell repräsentiert. Im Fall der Verwendung herkömmlicher Halbleiterherstellungstechniken können die Daten, die das Hardwaremodell repräsentieren, die Daten sein, die das Vorhandensein oder das Nichtvorhandensein verschiedener Merkmale auf unterschiedlichen Maskenschichten für Masken spezifizieren, die zur Herstellung der integrierten Schaltung verwendet werden. Bei einer beliebigen Repräsentation der Gestaltung können die Daten in beliebiger Form eines maschinenlesbaren Mediums gespeichert werden. Ein Speicher oder ein magnetischer oder optischer Datenspeicher, wie zum Beispiel eine Festplatte, kann das maschinenlesbare Medium zum Speichern von Informationen sein, die über optische oder elektrische Wellen übertragen werden, die moduliert oder anderweitig erzeugt werden, um diese Informationen zu übertragen. Wenn eine elektrische Trägerwelle, die den Code oder die Gestaltung angibt oder mit sich führt, in einer Weise übertragen wird, dass ein Kopieren, ein Puffern oder eine Neuübermittlung des elektrischen Signals durchgeführt wird, wird eine neue Kopie erstellt. Daher kann ein Kommunikationsanbieter oder Netzwerkbetreiber einen Artikel, wie zum Beispiel in einer Trägerwelle codierte Informationen, der Techniken von Ausführungsformen der vorliegenden Offenbarung enthält, mindestens temporär in einem gegenständlichen maschinenlesbaren Medium speichern.
  • So wie ein Modul hier verwendet wird, bezieht es sich auf alle Kombination von Hardware, Software und/oder Firmware. Ein Modul beinhaltet beispielsweise eine mit einem nichtflüchtigen Medium assoziierte Hardware, wie zum Beispiel einen Mikrocontroller, zum Speichern von Codes, die dazu geeignet sind, durch den Mikrocontroller ausgeführt zu werden. Daher betrifft eine Bezugnahme auf ein Modul in einer Ausführungsform die Hardware, die insbesondere dazu konfiguriert ist, die Codes zu erkennen und/oder auszuführen, dir in einem nichtflüchtigen Medium aufbewahrt werden. Ferner bezieht sich in einer anderen Ausführungsform die Verwendung eines Moduls auf das den Code beinhaltende nichtflüchtige Medium, das speziell dazu geeignet ist, durch den Mikrocontroller ausgeführt zu werden, um vorbestimmte Operationen auszuführen. Und, wie gefolgert werden kann, kann sich der Begriff Modul (bei diesem Beispiel) bei einer noch weiteren Ausführungsform auf die Kombination aus dem Mikrocontroller und dem nichtflüchtigen Medium beziehen. Modulgrenzen, die als separat dargestellt sind, variieren üblicherweise oft und unterliegen potenziell einer wechselseitigen Überlappung. Ein erstes und ein zweites Modul können zum Beispiel Hardware, Software, Firmware oder eine Kombination gemeinsam nutzen, während eine unabhängige Hardware, Software oder Firmware potenziell beibehalten wird. Bei einer Ausführungsform umfasst die Verwendung des Begriffs Logik eine Hardware, wie zum Beispiel Transistoren, Register oder eine andere Hardware, wie zum Beispiel programmierbare Logikvorrichtungen.
  • Die Verwendung des Ausdrucks „dazu ausgelegt“ oder „dazu konfiguriert“ verweist in einer Ausführungsform auf ein Anordnen, Zusammenstellen, Herstellen, Anbieten zum Verkauf, Importieren und/oder Gestalten einer Einrichtung, Hardware, Logik oder eines Elements zum Durchführen einer zugewiesenen oder bestimmten Aufgabe. Bei diesem Beispiel ist eine Einrichtung oder ein Element davon, die/das nicht in Betrieb ist, immer noch „konfiguriert, um eine zugewiesene Aufgabe durchzuführen“, wenn sie zum Durchführen der zugewiesenen Aufgabe zugewiesen wird oder dafür gekoppelt und/oder verbunden wird. Als rein veranschaulichendes Beispiel kann ein Logikgatter während des Betriebs eine 0 oder eine 1 bereitstellen. Ein Logikgatter, das „dazu konfiguriert“ ist, einem Takt ein Aktivierungssignal bereitzustellen, schließt jedoch nicht jedes mögliche Logikgatter ein, das eine 1 oder eine 0 bereitstellen kann. Stattdessen ist das Logikgatter eines, das auf irgendeine Weise so gekoppelt ist, dass der 1- oder 0-Ausgang während des Betriebs dazu dient, den Takt zu aktivieren. Es wird nochmals angemerkt, dass die Verwendung des Begriffs „konfiguriert zu“ keinen Betrieb erfordert, sondern stattdessen auf den latenten Zustand einer Einrichtung, Hardware und/oder eines Elements abzielt, wobei die Einrichtung, Hardware und/oder das Element in dem latenten Zustand dazu ausgelegt ist, eine bestimmte Aufgabe durchzuführen, wenn die Einrichtung, Hardware und/oder das Element in Betrieb ist.
  • Des Weiteren bezieht sich die Verwendung der Ausdrücke „zu“, „in der Lage sein, zu“ und/oder „funktionsfähig sein zum“ in einer Ausführungsform auf irgendeine Einrichtung, Logik, Hardware und/oder ein Element, die/das derart gestaltet sind, dass sie die Verwendung der Einrichtung, Logik, Hardware und/oder des Elements auf eine festgelegte Weise ermöglichen. Es ist wie oben anzumerken, dass sich die Verwendung von „zu“, in der Lage sein, zu“ oder „funktionsfähig sein zum“ bei einer Ausführungsform auf den latenten Zustand einer Einrichtung, Logik, Hardware und/oder eines Elements bezieht, wobei die Einrichtung, Logik, Hardware und/oder das Element nicht im Betrieb sind, aber auf eine Weise so gestaltet ist, dass sie die Verwendung einer Einrichtung auf eine festgelegte Weise ermöglicht.
  • Ein Wert, so wie er hier verwendet, beinhaltet eine beliebige bekannte Repräsentation einer Zahl, eines Zustands, eines logischen Zustands oder eines binären logischen Zustands. Häufig wird die Verwendung von Logikpegeln, Logikwerten oder logischen Werten auch als 1-en und 0-en bezeichnet, was einfach binäre Logikzustände repräsentiert. Beispielsweise bezieht sich 1 auf einen hohen Logikpegel, und 0 bezieht sich auf einen niedrigen Logikpegel. Bei einer Ausführungsform kann eine Speicherzelle, wie zum Beispiel ein Transistor oder eine Flash-Zelle, dazu in der Lage sein, einen einzelnen logischen Wert oder mehrere logische Werte zu enthalten. Es werden jedoch auch andere Repräsentationen von Werten in Computersystemen verwendet. Zum Beispiel kann die Dezimalzahl zehn auch als ein Binärwert von 1010 oder als ein hexadezimaler Buchstabe A dargestellt werden. Deshalb beinhaltet ein Wert alle Repräsentationen von Information, die in einem Computersystem enthalten sein können.
  • Zudem können Zustände durch Werte oder Teile von Werten repräsentiert werden. Beispielsweise kann ein erster Wert, wie zum Beispiel eine logische Eins, einen standardmäßigen oder anfänglichen Zustand repräsentieren, während ein zweiter Wert, wie zum Beispiel eine logische Null, einen Nichtstandardzustand repräsentieren kann. Außerdem beziehen sich die Begriffe Zurücksetzen und Setzen bei einer Ausführungsform auf einen standardmäßigen bzw. einen aktualisierten Wert oder Zustand. Zum Beispiel beinhaltet ein Standardwert potenziell einen hohen logischen Wert, d. h., ein Zurücksetzen, während ein aktualisierter Wert potenziell einen niedrigen logischen Wert, d. h., ein Setzen, beinhaltet. Es wird angemerkt, dass eine beliebige Kombination aus Werten genutzt werden kann, um eine beliebige Anzahl an Zuständen zu repräsentieren.
  • Die Ausführungsformen von Verfahren, Hardware, Software, Firmware oder Codes, die oben dargelegt sind, können über Befehle oder Codes implementiert werden, die in einem maschinenzugänglichen, maschinenlesbaren, computerzugänglichen oder computerlesbaren Medium gespeichert sind und die durch ein Verarbeitungselement ausführbar sind. Ein nichtflüchtiges maschinenzugängliches/lesbares Medium beinhaltet alle beliebigen Mechanismen, die Informationen in einer Form bereitstellen (d. h., speichern und/oder übertragen), die durch eine Maschine, wie zum Beispiel einen Computer oder ein elektronisches System, lesbar sind. Ein nichtflüchtiges, maschinenzugreifbares Medium beinhaltet zum Beispiel einen Direktzugriffsspeicher (RAM), wie zum Beispiel einen statischen RAM (SRAM) oder einen dynamischen RAM (DRAM); einen ROM; ein magnetisches oder optisches Speichermedium; Flash-Speichervorrichtungen; elektrische Speichervorrichtungen; optische Speichervorrichtungen; akustische Speichervorrichtungen; andere Formen von Speichervorrichtungen zum Aufbewahren von Informationen, die von flüchtigen (verbreiteten) Signalen (z. B. Trägerwellen, Infrarotsignalen, Digitalsignalen) usw. empfangen werden; die von den nichtflüchtigen Medien unterschieden werden müssen, die Informationen davon empfangen können.
  • Befehle, die zum Programmieren von Logiken verwendet werden, um Ausführungsformen der vorliegenden Offenbarung durchzuführen, können in einem Speicher in dem System wie zum Beispiel einem DRAM, einem Cache, einem Flash-Speicher oder einem anderen Speicher gespeichert werden. Des Weiteren können die Befehle über ein Netzwerk oder über andere computerlesbare Medien verteilt werden. Somit kann ein maschinenlesbares Medium einen beliebigen Mechanismus zum Speichern oder Übertragen von Informationen in einer durch eine Maschine (z. B. einen Computer) lesbaren Form beinhalten, ist aber nicht beschränkt auf Disketten, optische Platten, CD-ROMs (Compact Disc Read-Only Memory) und magnetooptische Platten, Festwertspeicher (ROMs), Direktzugriffsspeicher (RAM), einen löschbaren programmierbaren Festwertspeicher (EPROM), einen elektrisch löschbaren programmierbaren Festwertspeicher (EEPROM), magnetische oder optische Karten, Flash Speicher oder ein gegenständlicher, maschinenlesbarer Speicher, der bei der Übertragung von Informationen über das Internet über elektrische, optische, akustische oder andere Formen verbreiteter Signale (z. B. Trägerwellen, Infrarotsignale, digitale Signale usw.) verwendet wird. Dementsprechend beinhaltet das computerlesbare Medium einen beliebigen Typ eines gegenständlichen maschinenlesbaren Mediums, das zum Speichern oder Übertragen elektronischer Befehle oder Informationen in einer durch eine Maschine (z. B. einen Computer) lesbaren Form geeignet ist.
  • BEISPIELE
  • Veranschaulichende Beispiele für die hier offenbarten Technologien werden nachfolgend bereitgestellt. Eine Ausführungsform der Technologien kann ein beliebiges oder mehrere und eine beliebige Kombination der unten beschriebenen Beispiele beinhalten.
  • Beispiel 1 beinhaltet eine Einrichtung, die eine Punkt-zu-Punkt-Schnittstellenschaltungsanordnung umfasst, die eine Kryptographie-Engine umfasst, wobei die Punkt-zu-Punkt-Schnittstellenschaltungsanordnung dazu dient: eine verschlüsselte Punkt-zu-Punkt-Verbindung mit einem Prozessor herzustellen, wobei die Punkt-zu-Punkt-Schnittstellenschaltungsanordnung einen ersten Verschlüsselungsschlüssel verwenden muss, um Nachrichten in der Kryptographie-Engine für die verschlüsselte Punkt-zu-Punkt-Verbindung zu verschlüsseln; einen aktualisierten Verschlüsselungsschlüssel zu bestimmen; eine Schlüsselumschaltnachricht zu dem Prozessor zu übertragen, um den Prozessor anzuweisen, den aktualisierten Verschlüsselungsschlüssel zu verwenden; und um, nach der Übertragung der Schlüsselumschaltnachricht und ohne ein Senden verschlüsselter Nachrichten über die Punkt-zu-Punkt-Verbindung auf mindestens einem Kanal, der dem aktualisierten Verschlüsselungsschlüssel entspricht, eine oder mehrere Stufen einer Pipeline der Kryptographie-Engine zum Verschlüsseln von Nachrichten mit dem aktualisierten Verschlüsselungsschlüssel zu übertragen.
  • Beispiel 2 beinhaltet den Gegenstand des Beispiels 1, und wobei die Punkt-zu-Punkt-Schnittstellenschaltungsanordnung ferner ausgelegt ist zum Übertragen einer Schlüsselaktualisierungsnachricht zu dem Prozessor, um den Prozessor anzuweisen, die Verwendung des aktualisierten Verschlüsselungsschlüssels vorzubereiten; und Empfangen einer Schlüsselaktualisierungsbestätigungsnachricht von dem Prozessor, die angibt, dass der Prozessor bereit ist, den aktualisierten Verschlüsselungsschlüssel zu verwenden, wobei das Übertragen der Schlüsselumschaltnachricht ein Übertragen der Schlüsselumschaltnachricht als Reaktion auf den Empfang der Schlüsselaktualisierungsbestätigungsnachricht von dem Prozessor umfasst.
  • Beispiel 3 beinhaltet den Gegenstand von einem der Beispiele 1 und 2, und wobei die Übertragung verschlüsselter Nachrichten nach der Übertragung der Schlüsselumschaltnachricht während einer vorbestimmten Zeitdauer pausiert werden muss.
  • Beispiel 4 beinhaltet den Gegenstand von einem der Beispiele 1 bis 3, und wobei die verschlüsselte Punkt-zu-Punkt-Verbindung eine Vielzahl von Kanälen umfasst, wobei die Vielzahl von Kanälen einen ersten Kanal und einen zweiten Kanal umfasst, wobei der erste Verschlüsselungsschlüssel mit dem ersten Kanal assoziiert ist, wobei die Punkt-zu-Punkt-Schnittstellenschaltungsanordnung ausgelegt ist zum Pausieren der Übertragung verschlüsselter Nachrichten des ersten Kanals und zum Fortsetzen der Übertragung verschlüsselter Nachrichten des zweiten Kanals während einer vorbestimmten Zeitdauer nach der Übertragung der Schlüsselumschaltnachricht.
  • Beispiel 5 beinhaltet den Gegenstand eines der Beispiele 1 bis 4, und wobei das Übertragen der Schlüsselumschaltnachricht ein Übertragen der Schlüsselumschaltnachricht basierend auf einer Datenmenge umfasst, die unter Verwendung des ersten Verschlüsselungsschlüssels übertragen wird.
  • Beispiel 6 beinhaltet den Gegenstand eines der Beispiele 1 bis 5, und wobei das Übertragen der Schlüsselumschaltnachricht ein Übertragen der Schlüsselumschaltnachricht basierend auf einer Zeitdauer umfasst, seit der erste Verschlüsselungsschlüssel erstmals verwendet wurde.
  • Beispiel 7 beinhaltet den Gegenstand von einem der Beispiele 1 bis 6, und wobei das Einrichten der verschlüsselten Punkt-zu-Punkt-Verbindung umfasst: Einrichten einer Übertragungsverbindung zum Übertragen von Nachrichten zu dem Prozessor unter Verwendung eines ersten Übertragungsverschlüsselungsschlüssels, wobei der erste Verschlüsselungsschlüssel der erste Übertragungsverschlüsselungsschlüssel ist; und Einrichten einer Empfangsverbindung zum Empfangen von Nachrichten von dem Prozessor unter Verwendung eines ersten Empfangsverschlüsselungsschlüssels, wobei die Punkt-zu-Punkt-Schnittstellenschaltungsanordnung ferner ausgelegt ist zum: Entschlüsseln von Nachrichten, die von dem Prozessor in der Kryptographie-Engine empfangen werden, unter Verwendung des ersten Empfangsverschlüsselungsschlüssels und unter Verwendung einer Empfangspipeline der Kryptographie-Engine; Bestimmen eines aktualisierten Empfangsverschlüsselungsschlüssels; Empfangen, von dem Prozessor, einer Schlüsselumschaltnachricht, um die Einrichtung anzuweisen, den aktualisierten Empfangsverschlüsselungsschlüssel zu verwenden; und als Reaktion auf die Schlüsselumschaltnachricht, Abarbeiten der Empfangspipeline der verschlüsselten Engine unter Verwendung des ersten Empfangsverschlüsselungsschlüssels; und Umschalten der Kryptographie-Engine zum Verwenden des aktualisierten Empfangsverschlüsselungsschlüssels anstelle des ersten Empfangsverschlüsselungsschlüssels.
  • Beispiel 8 beinhaltet den Gegenstand eines der Beispiele 1 bis 7, und wobei das Bestimmen des aktualisierten Empfangsverschlüsselungsschlüssels ein Bestimmen des aktualisierten Empfangsverschlüsselungsschlüssels basierend auf einer Kommunikation mit dem Prozessor umfasst.
  • Beispiel 9 beinhaltet den Gegenstand eines der Beispiele 1 bis 8, und wobei die verschlüsselte Punkt-zu-Punkt-Verbindung ausgelegt ist, um den ersten Verschlüsselungsschlüssel zu verwenden, um Nachrichten mit Integritätsschutz unter Verwendung des Advanced Encryption Standards im Galois/Zählermodus (AES-GCM) zu verschlüsseln.
  • Beispiel 10 beinhaltet den Gegenstand von einem der Beispiele 1 bis 9, und wobei die verschlüsselte Punkt-zu-Punkt-Verbindung dazu ausgelegt ist, um den ersten Verschlüsselungsschlüssel zum Verschlüsseln von Nachrichten unter Verwendung des Advanced-Encryption Standard im Counter-Modus (AES-CTR) und einen Integritätsschlüssel zum Integritätsschutz von Nachrichten unter Verwendung eines AES-Galois-Nachrichtenauthentifizierungscodes (AES-GMAC) zu verwenden.
  • Beispiel 11 beinhaltet eine Einrichtung, die eine Punkt-zu-Punkt-Schnittstellenschaltungsanordnung umfasst, die eine Kryptographie-Engine umfasst, wobei die Punkt-zu-Punkt-Schnittstellenschaltungsanordnung ausgelegt ist zum: Einrichten einer verschlüsselten Punkt-zu-Punkt-Verbindung mit einem Prozessor, wobei die Punkt-zu-Punkt-Schnittstellenschaltungsanordnung einen ersten Verschlüsselungsschlüssel zum Verschlüsseln von Nachrichten in der Kryptographie-Engine für die verschlüsselte Punkt-zu-Punkt-Verbindung verwenden muss; Bestimmen eines aktualisierten Verschlüsselungsschlüssels; Übertragen einer Schlüsselumschaltnachricht zu dem Prozessor, um den Prozessor anzuweisen, den aktualisierten Verschlüsselungsschlüssel zu verwenden; und Übertragen, nach der Übertragung der Schlüsselumschaltnachricht und ohne ein Zurücksetzen der verschlüsselten Punkt-zu-Punkt-Verbindung, verschlüsselter Nachrichten unter Verwendung des aktualisierten Verschlüsselungsschlüssels.
  • Beispiel 12 beinhaltet den Gegenstand des Beispiels 11, und wobei die Punkt-zu-Punkt-Schnittstellenschaltungsanordnung ferner ausgelegt ist zum Übertragen einer Schlüsselaktualisierungsnachricht zu dem Prozessor, um den Prozessor anzuweisen, die Verwendung des aktualisierten Verschlüsselungsschlüssels vorzubereiten; und Empfangen einer Schlüsselaktualisierungsbestätigungsnachricht von dem Prozessor, die angibt, dass der Prozessor bereit ist, den aktualisierten Verschlüsselungsschlüssel zu verwenden, wobei das Übertragen der Schlüsselumschaltnachricht ein Übertragen der Schlüsselumschaltnachricht als Reaktion auf den Empfang der Schlüsselaktualisierungsbestätigungsnachricht von dem Prozessor umfasst.
  • Beispiel 13 beinhaltet den Gegenstand von einem der Beispiele 11 und 12, und wobei die Übertragung verschlüsselter Nachrichten nach der Übertragung der Schlüsselumschaltnachricht während einer vorbestimmten Zeitdauer pausiert werden muss.
  • Beispiel 14 beinhaltet den Gegenstand von einem der Beispiele 11 bis 13, und wobei die verschlüsselte Punkt-zu-Punkt-Verbindung eine Vielzahl von Kanälen umfasst, wobei die Vielzahl von Kanälen einen ersten Kanal und einen zweiten Kanal umfasst, wobei der erste Verschlüsselungsschlüssel mit dem ersten Kanal assoziiert ist, wobei die Punkt-zu-Punkt-Schnittstellenschaltungsanordnung ausgelegt ist zum Pausieren der Übertragung verschlüsselter Nachrichten des ersten Kanals und zum Fortsetzen der Übertragung verschlüsselter Nachrichten des zweiten Kanals während einer vorbestimmten Zeitdauer nach der Übertragung der Schlüsselumschaltnachricht.
  • Beispiel 15 beinhaltet den Gegenstand eines der Beispiele 11 bis 14, und wobei das Übertragen der Schlüsselumschaltnachricht ein Übertragen der Schlüsselumschaltnachricht basierend auf einer Datenmenge umfasst, die unter Verwendung des ersten Verschlüsselungsschlüssels übertragen wird.
  • Beispiel 16 beinhaltet den Gegenstand eines der Beispiele 11 bis 15, und wobei das Übertragen der Schlüsselumschaltnachricht ein Übertragen der Schlüsselumschaltnachricht basierend auf einer Zeitdauer umfasst, seit der erste Verschlüsselungsschlüssel erstmals verwendet wurde.
  • Beispiel 17 beinhaltet den Gegenstand eines der Beispiele 11 bis 16, und wobei das Einrichten der verschlüsselten Punkt-zu-Punkt-Verbindung umfasst: Einrichten einer Übertragungsverbindung zum Übertragen von Nachrichten zu dem Prozessor unter Verwendung eines ersten Übertragungsverschlüsselungsschlüssels, wobei der erste Verschlüsselungsschlüssel der erste Übertragungsverschlüsselungsschlüssel ist, und Einrichten einer Empfangsverbindung zum Empfangen von Nachrichten von dem Prozessor unter Verwendung eines ersten Empfangsverschlüsselungsschlüssels, wobei die Punkt-zu-Punkt-Schnittstellenschaltungsanordnung ferner ausgelegt ist zum: Entschlüsseln von Nachrichten, die von dem Prozessor in der Kryptographie-Engine unter Verwendung des ersten Empfangsverschlüsselungsschlüssels und unter Verwendung einer Pipeline der Kryptographie-Engine empfangen werden; Bestimmen eines aktualisierten Empfangsverschlüsselungsschlüssels; Empfangen, von dem Prozessor, einer Schlüsselumschaltnachricht, um die Einrichtung anzuweisen, den aktualisierten Empfangsverschlüsselungsschlüssel zu verwenden; und als Reaktion auf die Schlüsselumschaltnachricht, Abarbeiten der Pipeline der verschlüsselten Engine unter Verwendung des ersten Empfangsverschlüsselungsschlüssels; und Umschalten der Kryptographie-Engine, den aktualisierten Empfangsverschlüsselungsschlüssel anstelle des ersten Empfangsverschlüsselungsschlüssels zu verwenden.
  • Beispiel 18 beinhaltet den Gegenstand eines der Beispiele 11 bis 17, und wobei das Bestimmen des aktualisierten Empfangsverschlüsselungsschlüssels ein Bestimmen des aktualisierten Empfangsverschlüsselungsschlüssels basierend auf einer Kommunikation mit dem Prozessor umfasst.
  • Beispiel 19 beinhaltet den Gegenstand eines der Beispiele 11 bis 18, und wobei die verschlüsselte Punkt-zu-Punkt-Verbindung ausgelegt ist, um den ersten Verschlüsselungsschlüssel zu verwenden, um Nachrichten mit Integritätsschutz unter Verwendung des Advanced Encryption Standards im Galois/Zählermodus (AES-GCM) zu verschlüsseln.
  • Beispiel 20 beinhaltet den Gegenstand von einem der Beispiele 11 bis 19, und wobei die verschlüsselte Punkt-zu-Punkt-Verbindung dazu ausgelegt ist, um den ersten Verschlüsselungsschlüssel zum Verschlüsseln von Nachrichten unter Verwendung des Advanced-Encryption Standard im Counter-Modus (AES-CTR) und einen Integritätsschlüssel zum Integritätsschutz von Nachrichten unter Verwendung eines AES-Galois-Nachrichtenauthentifizierungscodes (AES-GMAC) zu verwenden.
  • Beispiel 21 beinhaltet ein System, das eine Vielzahl von Prozessoren umfasst, die einen ersten Prozessor und einen zweiten Prozessor umfassen, wobei der erste Prozessor eine erste Punkt-zu-Punkt-Schnittstellenschaltungsanordnung umfasst und der zweite Prozessor eine zweite Punkt-zu-Punkt-Schnittstellenschaltungsanordnung umfasst, wobei die erste Punkt-zu-Punkt-Schnittstellenschaltungsanordnung ausgelegt ist zum: Einrichten einer verschlüsselten Punkt-zu-Punkt-Verbindung mit der zweiten Punkt-zu-Punkt-Schnittstellenschaltungsanordnung, wobei die erste Punkt-zu-Punkt-Schnittstellenschaltungsanordnung einen ersten Verschlüsselungsschlüssel zum Verschlüsseln von Nachrichten für die verschlüsselte Punkt-zu-Punkt-Verbindung verwenden muss; Bestimmen eines aktualisierten Verschlüsselungsschlüssels; und Übertragen einer Schlüsselumschaltnachricht zu dem zweiten Prozessor, um den zweiten Prozessor anzuweisen, den aktualisierten Verschlüsselungsschlüssel zu verwenden, wobei die zweite Punkt-zu-Punkt-Schnittstellenschaltungsanordnung die Schlüsselumschaltnachricht von dem ersten Prozessor empfangen muss, um den zweiten Prozessor anzuweisen, den aktualisierten Verschlüsselungsschlüssel zu verwenden; und Abarbeiten, als Reaktion auf die Schlüsselumschaltnachricht, einer Pipeline einer Kryptographie-Engine der zweiten Punkt-zu-Punkt-Schnittstellenschaltungsanordnung unter Verwendung des ersten Verschlüsselungsschlüssels; und als Reaktion auf die Schlüsselumschaltnachricht, Umschalten der Kryptographie-Engine, um den aktualisierten Verschlüsselungsschlüssel anstelle des ersten Verschlüsselungsschlüssels zu verwenden.
  • Beispiel 22 beinhaltet den Gegenstand des Beispiels 21, und wobei die Punkt-zu-Punkt-Schnittstellenschaltungsanordnung ferner ausgelegt ist zum: Übertragen einer Schlüsselaktualisierungsnachricht zu dem zweiten Prozessor, um den zweiten Prozessor anzuweisen, die Verwendung des aktualisierten Verschlüsselungsschlüssels vorzubereiten; und Empfangen einer Schlüsselaktualisierungsbestätigungsnachricht von dem zweiten Prozessor, die angibt, dass der zweite Prozessor bereit ist, den aktualisierten Verschlüsselungsschlüssel zu verwenden, wobei das Übertragen der Schlüsselumschaltnachricht ein Übertragen der Schlüsselumschaltnachricht als Reaktion auf den Empfang der Schlüsselaktualisierungsbestätigungsnachricht von dem zweiten Prozessor umfasst.
  • Beispiel 23 beinhaltet den Gegenstand eines der Beispiele 21 und 22, und wobei die Übertragung verschlüsselter Nachrichten durch die erste Punkt-zu-Punkt-Schnittstellenschaltungsanordnung nach der Übertragung der Schlüsselumschaltnachricht pausiert werden muss.
  • Beispiel 24 beinhaltet den Gegenstand von einem der Beispiele 21 bis 23, und wobei die verschlüsselte Punkt-zu-Punkt-Verbindung eine Vielzahl von Kanälen umfasst, wobei die Vielzahl von Kanälen einen ersten Kanal und einen zweiten Kanal umfasst, wobei der erste Verschlüsselungsschlüssel mit dem ersten Kanal assoziiert ist, wobei die Punkt-zu-Punkt-Schnittstellenschaltungsanordnung ausgelegt ist zum Pausieren der Übertragung verschlüsselter Nachrichten des ersten Kanals und zum Fortsetzen der Übertragung verschlüsselter Nachrichten des zweiten Kanals während einer vorbestimmten Zeitdauer nach der Übertragung der Schlüsselumschaltnachricht.
  • Beispiel 25 beinhaltet den Gegenstand eines der Beispiele 21 bis 24, und wobei das Übertragen der Schlüsselumschaltnachricht ein Übertragen der Schlüsselumschaltnachricht basierend auf einer Datenmenge umfasst, die unter Verwendung des ersten Verschlüsselungsschlüssels übertragen wird.
  • Beispiel 26 beinhaltet den Gegenstand eines der Beispiele 21 bis 25, und wobei das Übertragen der Schlüsselumschaltnachricht ein Übertragen der Schlüsselumschaltnachricht basierend auf einer Zeitdauer umfasst, seit der erste Verschlüsselungsschlüssel erstmals verwendet wurde.
  • Beispiel 27 beinhaltet ein Verfahren, das umfasst: Einrichten, durch einen Prozessor, einer verschlüsselten Punkt-zu-Punkt-Verbindung mit einem zweiten Prozessor, wobei die verschlüsselte Punkt-zu-Punkt-Verbindung einen ersten Verschlüsselungsschlüssel verwenden muss, um Nachrichten zu verschlüsseln; Bestimmen, dass der erste Verschlüsselungsschlüssel aktualisiert werden sollte; Bestimmen eines aktualisierten Verschlüsselungsschlüssels; Übertragen, durch den Prozessor, einer Schlüsselumschaltnachricht zu dem zweiten Prozessor, um den zweiten Prozessor anzuweisen, den aktualisierten Verschlüsselungsschlüssel zu verwenden; und, nach der Übertragung der Schlüsselumschaltnachricht und ohne ein Senden verschlüsselter Nachrichten über die Punkt-zu-Punkt-Verbindung auf mindestens einem Kanal, der dem aktualisierten Verschlüsselungsschlüssel entspricht, Durchführen einer oder mehrerer Stufen einer Pipeline der Kryptographie-Engine zum Verschlüsseln von Nachrichten mit dem aktualisierten Verschlüsselungsschlüssel.
  • Beispiel 28 beinhaltet den Gegenstand des Beispiels 27 und beinhaltet ferner: Übertragen, durch den Prozessor, einer Schlüsselaktualisierungsnachricht zu dem zweiten Prozessor, um den zweiten Prozessor anzuweisen, die Verwendung des aktualisierten Verschlüsselungsschlüssels vorzubereiten; und Empfangen, in dem Prozessor, einer Schlüsselaktualisierungsbestätigungsnachricht von dem zweiten Prozessor, die angibt, dass der zweite Prozessor bereit ist, den aktualisierten Verschlüsselungsschlüssel zu verwenden, wobei das Übertragen der Schlüsselumschaltnachricht ein Übertragen der Schlüsselumschaltnachricht als Reaktion auf den Empfang der Schlüsselaktualisierungsbestätigungsnachricht von dem zweiten Prozessor umfasst.
  • Beispiel 29 beinhaltet den Gegenstand von einem der Beispiele 27 und 28, und wobei die Übertragung verschlüsselter Nachrichten nach der Übertragung der Schlüsselumschaltnachricht während einer vorbestimmten Zeitdauer pausiert werden muss.
  • Beispiel 30 beinhaltet den Gegenstand von einem der Beispiele 27 bis 29, und wobei die verschlüsselte Punkt-zu-Punkt-Verbindung eine Vielzahl von Kanälen umfasst, wobei die Vielzahl von Kanälen einen ersten Kanal und einen zweiten Kanal umfasst, wobei der erste Verschlüsselungsschlüssel mit dem ersten Kanal assoziiert ist, wobei das Verfahren ferner ein Pausieren der Übertragung verschlüsselter Nachrichten des ersten Kanals und ein Fortsetzen der Übertragung verschlüsselter Nachrichten des zweiten Kanals während einer vorbestimmten Zeitdauer nach der Übertragung der Schlüsselumschaltnachricht umfasst.
  • Beispiel 31 beinhaltet den Gegenstand eines der Beispiele 27 bis 30, und wobei das Bestimmen, dass der erste Verschlüsselungsschlüssel aktualisiert werden sollte, ein Bestimmen umfasst, dass der erste Verschlüsselungsschlüssel basierend auf einer Datenmenge aktualisiert werden sollte, die unter Verwendung des ersten Verschlüsselungsschlüssels übertragen wird.
  • Beispiel 32 beinhaltet den Gegenstand eines der Beispiele 27 bis 31, und wobei das Bestimmen, dass der erste Verschlüsselungsschlüssel aktualisiert werden sollte, ein Bestimmen umfasst, dass der erste Verschlüsselungsschlüssel basierend auf einer Zeitdauer aktualisiert werden sollte, seit der erste Verschlüsselungsschlüssel erstmals verwendet wurde.
  • Beispiel 33 beinhaltet den Gegenstand von einem der Beispiele 27 bis 32, und wobei das Einrichten der verschlüsselten Punkt-zu-Punkt-Verbindung umfasst: Einrichten einer Übertragungsverbindung zum Übertragen von Nachrichten zu dem zweiten Prozessor unter Verwendung eines ersten Übertragungsverschlüsselungsschlüssels, wobei der erste Verschlüsselungsschlüssel der erste Übertragungsverschlüsselungsschlüssel ist, und Einrichten einer Empfangsverbindung zum Empfangen von Nachrichten von dem zweiten Prozessor unter Verwendung eines ersten Empfangsverschlüsselungsschlüssels, wobei das Verfahren ferner umfasst: Entschlüsseln, durch den Prozessor, von Nachrichten, die von dem zweiten Prozessor in einer Kryptographie-Engine, unter Verwendung des ersten Empfangsverschlüsselungsschlüssels und unter Verwendung einer Pipeline der Kryptographie-Engine empfangen werden; Bestimmen, durch den Prozessor, eines aktualisierten Empfangsverschlüsselungsschlüssels; Empfangen, durch den Prozessor und von dem zweiten Prozessor, einer Schlüsselumschaltnachricht, um den Prozessor anzuweisen, den aktualisierten Empfangsverschlüsselungsschlüssel zu verwenden; und Abarbeiten, durch den Prozessor und als Reaktion auf die Schlüsselumschaltnachricht, der Pipeline der verschlüsselten Engine unter Verwendung des ersten Empfangsverschlüsselungsschlüssels; und Umschalten, durch den Prozessor, der Kryptographie-Engine, um den aktualisierten Empfangsverschlüsselungsschlüssel anstelle des ersten Empfangsverschlüsselungsschlüssels zu verwenden.
  • Beispiel 34 beinhaltet den Gegenstand eines der Beispiele 27 bis 33, und wobei das Bestimmen des aktualisierten Empfangsverschlüsselungsschlüssels ein Bestimmen des aktualisierten Empfangsverschlüsselungsschlüssels basierend auf einer Kommunikation mit dem zweiten Prozessor umfasst.
  • Beispiel 35 beinhaltet ein oder mehrere computerlesbare Medien, die eine Vielzahl von darauf gespeicherten Befehlen umfassen, die, wenn sie ausgeführt werden, veranlassen, dass ein Prozessor das Verfahren nach einem der Beispiele 19 bis 26 durchführt.
  • Beispiel 36 beinhaltet eine Einrichtung, die ein Element zum Durchführen des Verfahrens nach einem der Beispiele 19 bis 26 umfasst.
  • Beispiel 37 beinhaltet eine Einrichtung, die umfasst: ein Element zum Einrichten einer verschlüsselten Punkt-zu-Punkt-Verbindung mit einem Prozessor, wobei die verschlüsselte Punkt-zu-Punkt-Verbindung einen ersten Verschlüsselungsschlüssel verwenden muss, um Nachrichten zu verschlüsseln; ein Element zum Bestimmen, dass der erste Verschlüsselungsschlüssel aktualisiert werden sollte; ein Element zum Bestimmen eines aktualisierten Verschlüsselungsschlüssels; ein Element zum Übertragen einer Schlüsselumschaltnachricht zu dem Prozessor, um den Prozessor anzuweisen, den aktualisierten Verschlüsselungsschlüssel zu verwenden; und ein Element zum Durchführen, nach der Übertragung der Schlüsselumschaltnachricht und ohne ein Senden verschlüsselter Nachrichten über die Punkt-zu-Punkt-Verbindung auf mindestens einem Kanal, der dem aktualisierten Verschlüsselungsschlüssel entspricht, einer oder mehrerer Stufen einer Pipeline der Kryptographie-Engine zum Verschlüsseln von Nachrichten mit dem aktualisierten Verschlüsselungsschlüssel.
  • Beispiel 38 beinhaltet den Gegenstand des Beispiels 37 und beinhaltet ferner: ein Element zum Übertragen einer Schlüsselaktualisierungsnachricht zu dem Prozessor, um den Prozessor anzuweisen, die Verwendung des aktualisierten Verschlüsselungsschlüssels vorzubereiten; und ein Element zum Empfangen einer Schlüsselaktualisierungsbestätigungsnachricht von dem Prozessor, die angibt, dass der Prozessor bereit ist, den aktualisierten Verschlüsselungsschlüssel zu verwenden, wobei das Element zum Übertragen der Schlüsselumschaltnachricht ein Element zum Übertragen der Schlüsselumschaltnachricht als Reaktion auf den Empfang der Schlüsselaktualisierungsbestätigungsnachricht von dem Prozessor umfasst.
  • Beispiel 39 beinhaltet den Gegenstand von einem der Beispiele 37 und 38, und wobei die Übertragung verschlüsselter Nachrichten nach der Übertragung der Schlüsselumschaltnachricht während einer vorbestimmten Zeitdauer pausiert werden muss.
  • Beispiel 40 beinhaltet den Gegenstand von einem der Beispiele 37 bis 39, und wobei die verschlüsselte Punkt-zu-Punkt-Verbindung eine Vielzahl von Kanälen umfasst, wobei die Vielzahl von Kanälen einen ersten Kanal und einen zweiten Kanal umfasst, wobei der erste Verschlüsselungsschlüssel mit dem ersten Kanal assoziiert ist, wobei die Einrichtung ferner ein Element zum Pausieren der Übertragung verschlüsselter Nachrichten des ersten Kanals und ein Element zum Fortsetzen der Übertragung verschlüsselter Nachrichten des zweiten Kanals während einer vorbestimmten Zeitdauer nach der Übertragung der Schlüsselumschaltnachricht umfasst.
  • Beispiel 41 beinhaltet den Gegenstand eines der Beispiele 37 bis 40, und wobei das Element zum Bestimmen, dass der erste Verschlüsselungsschlüssel aktualisiert werden sollte, ein Element zum Bestimmen umfasst, dass der erste Verschlüsselungsschlüssel basierend auf einer Datenmenge aktualisiert werden sollte, die unter Verwendung des ersten Verschlüsselungsschlüssels übertragen wird.
  • Beispiel 42 beinhaltet den Gegenstand eines der Beispiele 37 bis 41, und wobei das Element zum Bestimmen, dass der erste Verschlüsselungsschlüssel aktualisiert werden sollte, ein Element zum Bestimmen umfasst, dass der erste Verschlüsselungsschlüssel basierend auf einer Zeitdauer aktualisiert werden sollte, seit der erste Verschlüsselungsschlüssel erstmals verwendet wurde.
  • Beispiel 43 beinhaltet den Gegenstand von einem der Beispiele 37 bis 42, und wobei das Element zum Einrichten der verschlüsselten Punkt-zu-Punkt-Verbindung umfasst: ein Element zum Einrichten einer Übertragungsverbindung zum Übertragen von Nachrichten zu dem Prozessor unter Verwendung eines ersten Übertragungsverschlüsselungsschlüssels, wobei der erste Verschlüsselungsschlüssel der erste Übertragungsverschlüsselungsschlüssel ist; und ein Element zum Einrichten einer Empfangsverbindung zum Empfangen von Nachrichten von dem Prozessor unter Verwendung eines ersten Empfangsverschlüsselungsschlüssels; wobei die Einrichtung ferner umfasst: ein Element zum Entschlüsseln von Nachrichten, die von dem Prozessor in einer Kryptographie-Engine empfangen werden, unter Verwendung des ersten Empfangsverschlüsselungsschlüssels und unter Verwendung einer Pipeline der Kryptographie-Engine; ein Element zum Bestimmen eines aktualisierten Empfangsverschlüsselungsschlüssels; ein Element zum Empfangen einer Schlüsselumschaltnachricht von dem Prozessor, um die Einrichtung anzuweisen, den aktualisierten Empfangsverschlüsselungsschlüssel zu verwenden; und als Reaktion auf die Schlüsselumschaltnachricht, ein Element zum Abarbeiten der Pipeline der verschlüsselten Engine unter Verwendung des ersten Empfangsverschlüsselungsschlüssels; und ein Element zum Umschalten der Kryptographie-Engine, um den aktualisierten Empfangsverschlüsselungsschlüssel anstelle des ersten Empfangsverschlüsselungsschlüssels zu verwenden.
  • Beispiel 44 beinhaltet den Gegenstand eines der Beispiele 37 bis 43, und wobei das Element zum Bestimmen des aktualisierten Empfangsverschlüsselungsschlüssels ein Element zum Bestimmen des aktualisierten Empfangsverschlüsselungsschlüssels basierend auf einer Kommunikation mit dem Prozessor umfasst.

Claims (25)

  1. Einrichtung, umfassend: eine Punkt-zu-Punkt-Schnittstellenschaltungsanordnung, die eine Kryptographie-Engine umfasst, wobei die Punkt-zu-Punkt-Schnittstellenschaltungsanordnung ausgelegt ist zum: Einrichten einer verschlüsselten Punkt-zu-Punkt-Verbindung mit einem Prozessor, wobei die Punkt-zu-Punkt-Schnittstellenschaltungsanordnung einen ersten Verschlüsselungsschlüssel verwenden muss, um Nachrichten in der Kryptographie-Engine für die verschlüsselte Punkt-zu-Punkt-Verbindung zu verschlüsseln; Bestimmen eines aktualisierten Verschlüsselungsschlüssels; Übertragen einer Schlüsselumschaltnachricht zu dem Prozessor, um den Prozessor anzuweisen, den aktualisierten Verschlüsselungsschlüssel zu verwenden; und Durchführen, nach der Übertragung der Schlüsselumschaltnachricht und ohne ein Senden verschlüsselter Nachrichten über die Punkt-zu-Punkt-Verbindung auf mindestens einem Kanal, der dem aktualisierten Verschlüsselungsschlüssel entspricht, einer oder mehrerer Stufen einer Pipeline der Kryptographie-Engine, um Nachrichten mit dem aktualisierten Verschlüsselungsschlüssel zu verschlüsseln.
  2. Einrichtung nach Anspruch 1, wobei die Punkt-zu-Punkt-Schnittstellenschaltungsanordnung ferner ausgelegt ist zum: Übertragen einer Schlüsselaktualisierungsnachricht zu dem Prozessor, um den Prozessor anzuweisen, die Verwendung des aktualisierten Verschlüsselungsschlüssels vorzubereiten; und Empfangen einer Schlüsselaktualisierungsbestätigungsnachricht von dem Prozessor, die angibt, dass der Prozessor bereit ist, den aktualisierten Verschlüsselungsschlüssel zu verwenden, wobei das Übertragen der Schlüsselumschaltnachricht ein Übertragen der Schlüsselumschaltnachricht als Reaktion auf den Empfang der Schlüsselaktualisierungsbestätigungsnachricht von dem Prozessor umfasst.
  3. Einrichtung nach einem der Ansprüche 1 oder 2, wobei die Übertragung verschlüsselter Nachrichten nach der Übertragung der Schlüsselumschaltnachricht während einer vorbestimmten Zeitdauer pausiert werden muss.
  4. Einrichtung nach einem der Ansprüche 1 bis 3, wobei die verschlüsselte Punkt-zu-Punkt-Verbindung eine Vielzahl von Kanälen umfasst, wobei die Vielzahl von Kanälen einen ersten Kanal und einen zweiten Kanal umfasst, wobei der erste Verschlüsselungsschlüssel mit dem ersten Kanal assoziiert ist, wobei die Punkt-zu-Punkt-Schnittstellenschaltungsanordnung ausgelegt ist zum Pausieren der Übertragung verschlüsselter Nachrichten des ersten Kanals und zum Fortsetzen der Übertragung verschlüsselter Nachrichten des zweiten Kanals während einer vorbestimmten Zeitdauer nach der Übertragung der Schlüsselumschaltnachricht.
  5. Einrichtung nach einem der Ansprüche 1 bis 4, wobei das Übertragen der Schlüsselumschaltnachricht ein Übertragen der Schlüsselumschaltnachricht basierend auf einer Datenmenge umfasst, die unter Verwendung des ersten Verschlüsselungsschlüssels übertragen wird.
  6. Einrichtung nach einem der Ansprüche 1 bis 4, wobei das Übertragen der Schlüsselumschaltnachricht ein Übertragen der Schlüsselumschaltnachricht basierend auf einer Zeitdauer umfasst, seit der erste Verschlüsselungsschlüssel erstmals verwendet wurde.
  7. Einrichtung nach Anspruch 1, wobei das Einrichten der verschlüsselten Punkt-zu-Punkt-Verbindung umfasst: Einrichten einer Übertragungsverbindung zum Übertragen von Nachrichten zu dem Prozessor unter Verwendung eines ersten Übertragungsverschlüsselungsschlüssels, wobei der erste Verschlüsselungsschlüssel der erste Übertragungsverschlüsselungsschlüssel ist; und Einrichten einer Empfangsverbindung zum Empfangen von Nachrichten von dem Prozessor unter Verwendung eines ersten Empfangsverschlüsselungsschlüssels, wobei die Punkt-zu-Punkt-Schnittstellenschaltungsanordnung ferner ausgelegt ist zum: Entschlüsseln von Nachrichten, die von dem Prozessor in der Kryptographie-Engine empfangen werden, unter Verwendung des ersten Empfangsverschlüsselungsschlüssels und unter Verwendung einer Empfangspipeline der Kryptographie-Engine; Bestimmen eines aktualisierten Empfangsverschlüsselungsschlüssels; Empfangen, von dem Prozessor, einer Schlüsselumschaltnachricht, um die Einrichtung anzuweisen, den aktualisierten Empfangsverschlüsselungsschlüssel zu verwenden; und Abarbeiten, als Reaktion auf die Schlüsselumschaltnachricht, der Empfangspipeline der verschlüsselten Engine unter Verwendung des ersten Empfangsverschlüsselungsschlüssels; und Umschalten der Kryptographie-Engine, um den aktualisierten Empfangsverschlüsselungsschlüssel anstelle des ersten Empfangsverschlüsselungsschlüssels zu verwenden.
  8. Einrichtung nach Anspruch 7, wobei das Bestimmen des aktualisierten Empfangsverschlüsselungsschlüssels ein Bestimmen des aktualisierten Empfangsverschlüsselungsschlüssels basierend auf einer Kommunikation mit dem Prozessor umfasst.
  9. Einrichtung nach einem der Ansprüche 1 bis 8, wobei die verschlüsselte Punkt-zu-Punkt-Verbindung den ersten Verschlüsselungsschlüssel verwenden muss, um Nachrichten mit einem Integritätsschutz unter Verwendung eines Advanced Encryption Standards im Galois/Zählermodus (AES-GCM) zu verschlüsseln.
  10. Einrichtung nach einem der Ansprüche 1 bis 8, wobei die verschlüsselte Punkt-zu-Punkt-Verbindung den ersten Verschlüsselungsschlüssel zum Verschlüsseln von Nachrichten unter Verwendung eines Advanced-Encryption Standard im Zählermodus (AES-CTR) und eines Integritätsschlüssels zum Integritätsschutz von Nachrichten unter Verwendung eines AES-Galois-Nachrichtenauthentifizierungscodes (AES-GMAC) verwenden muss.
  11. System, umfassend: eine Vielzahl von Prozessoren, die einen ersten Prozessor und einen zweiten Prozessor umfassen, wobei der erste Prozessor eine erste Punkt-zu-Punkt-Schnittstellenschaltungsanordnung umfasst und wobei der zweite Prozessor eine zweite Punkt-zu-Punkt-Schnittstellenschaltungsanordnung umfasst, wobei die erste Punkt-zu-Punkt-Schnittstellenschaltungsanordnung ausgelegt ist zum: Einrichten einer verschlüsselten Punkt-zu-Punkt-Verbindung mit der zweiten Punkt-zu-Punkt-Schnittstellenschaltungsanordnung, wobei die erste Punkt-zu-Punkt-Schnittstellenschaltungsanordnung einen ersten Verschlüsselungsschlüssel verwenden muss, um Nachrichten für die verschlüsselte Punkt-zu-Punkt-Verbindung zu verschlüsseln; Bestimmen eines aktualisierten Verschlüsselungsschlüssels; und Übertragen einer Schlüsselumschaltnachricht zu dem zweiten Prozessor, um den zweiten Prozessor anzuweisen, den aktualisierten Verschlüsselungsschlüssel zu verwenden, wobei die zweite Punkt-zu-Punkt-Schnittstellenschaltungsanordnung ausgelegt ist zum: Empfangen, von dem ersten Prozessor, der Schlüsselumschaltnachricht, um den zweiten Prozessor anzuweisen, den aktualisierten Verschlüsselungsschlüssel zu verwenden; und Abarbeiten, als Reaktion auf die Schlüsselumschaltnachricht, einer Pipeline einer Kryptographie-Engine der zweiten Punkt-zu-Punkt-Schnittstellenschaltungsanordnung unter Verwendung des ersten Verschlüsselungsschlüssels; und Umschalten, als Reaktion auf die Schlüsselumschaltnachricht, der Kryptographie-Engine, um den aktualisierten Verschlüsselungsschlüssel anstelle des ersten Verschlüsselungsschlüssels zu verwenden.
  12. System nach Anspruch 11, wobei die Punkt-zu-Punkt-Schnittstellenschaltungsanordnung ferner ausgelegt ist zum: Übertragen einer Schlüsselaktualisierungsnachricht zu dem zweiten Prozessor, um den zweiten Prozessor anzuweisen, die Verwendung des aktualisierten Verschlüsselungsschlüssels vorzubereiten; und Empfangen einer Schlüsselaktualisierungsbestätigungsnachricht von dem zweiten Prozessor, die angibt, dass der zweite Prozessor bereit ist, den aktualisierten Verschlüsselungsschlüssel zu verwenden, wobei das Übertragen der Schlüsselumschaltnachricht ein Übertragen der Schlüsselumschaltnachricht als Reaktion auf den Empfang der Schlüsselaktualisierungsbestätigungsnachricht von dem zweiten Prozessor umfasst.
  13. System nach einem der Ansprüche 11 bis 12, wobei die Übertragung verschlüsselter Nachrichten durch die erste Punkt-zu-Punkt-Schnittstellenschaltungsanordnung nach der Übertragung der Schlüsselumschaltnachricht pausiert werden muss.
  14. System nach einem der Ansprüche 11 bis 13, wobei die verschlüsselte Punkt-zu-Punkt-Verbindung eine Vielzahl von Kanälen umfasst, wobei die Vielzahl von Kanälen einen ersten Kanal und einen zweiten Kanal umfasst, wobei der erste Verschlüsselungsschlüssel mit dem ersten Kanal assoziiert ist, wobei die erste Punkt-zu-Punkt-Schnittstellenschaltungsanordnung ausgelegt ist zum Pausieren der Übertragung verschlüsselter Nachrichten des ersten Kanals und zum Fortsetzen der Übertragung verschlüsselter Nachrichten des zweiten Kanals während einer vorbestimmten Zeitdauer nach der Übertragung der Schlüsselumschaltnachricht.
  15. System nach einem der Ansprüche 11 bis 14, wobei das Übertragen der Schlüsselumschaltnachricht ein Übertragen der Schlüsselumschaltnachricht basierend auf einer Datenmenge umfasst, die unter Verwendung des ersten Verschlüsselungsschlüssels übertragen wird.
  16. Einrichtung, umfassend: eine Punkt-zu-Punkt-Schnittstellenschaltungsanordnung, die eine Kryptographie-Engine umfasst, wobei die Punkt-zu-Punkt-Schnittstellenschaltungsanordnung ausgelegt ist zum: Einrichten einer verschlüsselten Punkt-zu-Punkt-Verbindung mit einem Prozessor, wobei die Punkt-zu-Punkt-Schnittstellenschaltungsanordnung einen ersten Verschlüsselungsschlüssel verwenden muss, um Nachrichten in der Kryptographie-Engine für die verschlüsselte Punkt-zu-Punkt-Verbindung zu verschlüsseln; Bestimmen eines aktualisierten Verschlüsselungsschlüssels; Übertragen einer Schlüsselumschaltnachricht zu dem Prozessor, um den Prozessor anzuweisen, den aktualisierten Verschlüsselungsschlüssel zu verwenden; und Übertragen, nach der Übertragung der Schlüsselumschaltnachricht und ohne ein Zurücksetzen der verschlüsselten Punkt-zu-Punkt-Verbindung, verschlüsselter Nachrichten unter Verwendung des aktualisierten Verschlüsselungsschlüssels.
  17. Einrichtung nach Anspruch 16, wobei die Punkt-zu-Punkt-Schnittstellenschaltungsanordnung ferner ausgelegt ist zum: Übertragen einer Schlüsselaktualisierungsnachricht zu dem Prozessor, um den Prozessor anzuweisen, die Verwendung des aktualisierten Verschlüsselungsschlüssels vorzubereiten; und Empfangen einer Schlüsselaktualisierungsbestätigungsnachricht von dem Prozessor, die angibt, dass der Prozessor bereit ist, den aktualisierten Verschlüsselungsschlüssel zu verwenden, wobei das Übertragen der Schlüsselumschaltnachricht ein Übertragen der Schlüsselumschaltnachricht als Reaktion auf den Empfang der Schlüsselaktualisierungsbestätigungsnachricht von dem Prozessor umfasst.
  18. Einrichtung nach einem der Ansprüche 16 bis 17, wobei die Übertragung verschlüsselter Nachrichten nach der Übertragung der Schlüsselumschaltnachricht während einer vorbestimmten Zeitdauer pausiert werden muss.
  19. Einrichtung nach einem der Ansprüche 16 bis 18, wobei die verschlüsselte Punkt-zu-Punkt-Verbindung eine Vielzahl von Kanälen umfasst, wobei die Vielzahl von Kanälen einen ersten Kanal und einen zweiten Kanal umfasst, wobei der erste Verschlüsselungsschlüssel mit dem ersten Kanal assoziiert ist, wobei die Punkt-zu-Punkt-Schnittstellenschaltungsanordnung ausgelegt ist zum Pausieren der Übertragung verschlüsselter Nachrichten des ersten Kanals und zum Fortsetzen der Übertragung verschlüsselter Nachrichten des zweiten Kanals während einer vorbestimmten Zeitdauer nach der Übertragung der Schlüsselumschaltnachricht.
  20. Einrichtung nach einem der Ansprüche 16 bis 19, wobei das Übertragen der Schlüsselumschaltnachricht ein Übertragen der Schlüsselumschaltnachricht basierend auf einer Datenmenge umfasst, die unter Verwendung des ersten Verschlüsselungsschlüssels übertragen wird.
  21. Einrichtung nach einem der Ansprüche 16 bis 19, wobei das Übertragen der Schlüsselumschaltnachricht ein Übertragen der Schlüsselumschaltnachricht basierend auf einer Zeitdauer umfasst, seit der erste Verschlüsselungsschlüssel erstmals verwendet wurde.
  22. Einrichtung nach Anspruch 16, wobei das Einrichten der verschlüsselten Punkt-zu-Punkt-Verbindung umfasst: Einrichten einer Übertragungsverbindung zum Übertragen von Nachrichten zu dem Prozessor unter Verwendung eines ersten Übertragungsverschlüsselungsschlüssels, wobei der erste Verschlüsselungsschlüssel der erste Übertragungsverschlüsselungsschlüssel ist; und Einrichten einer Empfangsverbindung zum Empfangen von Nachrichten von dem Prozessor unter Verwendung eines ersten Empfangsverschlüsselungsschlüssels, wobei die Punkt-zu-Punkt-Schnittstellenschaltungsanordnung ferner ausgelegt ist zum: Entschlüsseln von Nachrichten, die von dem Prozessor in der Kryptographie-Engine empfangen werden, unter Verwendung des ersten Empfangsverschlüsselungsschlüssels und unter Verwendung einer Pipeline der Kryptographie-Engine; Bestimmen eines aktualisierten Empfangsverschlüsselungsschlüssels; Empfangen, von dem Prozessor, einer Schlüsselumschaltnachricht, um die Einrichtung anzuweisen, den aktualisierten Empfangsverschlüsselungsschlüssel zu verwenden; und Abarbeiten, als Reaktion auf die Schlüsselumschaltnachricht, der Pipeline der Kryptographie-Engine unter Verwendung des ersten Empfangsverschlüsselungsschlüssels; und Umschalten der Kryptographie-Engine, den aktualisierten Empfangsverschlüsselungsschlüssel anstelle des ersten Empfangsverschlüsselungsschlüssels zu verwenden.
  23. Einrichtung nach Anspruch 22, wobei das Bestimmen des aktualisierten Empfangsverschlüsselungsschlüssels ein Bestimmen des aktualisierten Empfangsverschlüsselungsschlüssels basierend auf einer Kommunikation mit dem Prozessor umfasst.
  24. Einrichtung nach einem der Ansprüche 16 bis 23, wobei die verschlüsselte Punkt-zu-Punkt-Verbindung den ersten Verschlüsselungsschlüssel verwenden muss, um Nachrichten mit einem Integritätsschutz unter Verwendung eines Advanced Encryption Standards im Galois/Zählermodus (AES-GCM) zu verschlüsseln.
  25. Einrichtung nach einem der Ansprüche 16 bis 23, wobei die verschlüsselte Punkt-zu-Punkt-Verbindung den ersten Verschlüsselungsschlüssel zum Verschlüsseln von Nachrichten unter Verwendung eines Advanced-Encryption Standard im Zählermodus (AES-CTR) und einen Integritätsschlüssel zum Integritätsschutz von Nachrichten unter Verwendung eines AES-Galois-Nachrichtenauthentifizierungscodes (AES-GMAC) verwenden muss.
DE102022101490.8A 2021-03-26 2022-01-24 Technologien zur echtzeitaktualisierung von verschlüsselungsschlüsseln Pending DE102022101490A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/213,465 US20210218548A1 (en) 2021-03-26 2021-03-26 Technologies for real-time updating of encryption keys
US17/213,465 2021-03-26

Publications (1)

Publication Number Publication Date
DE102022101490A1 true DE102022101490A1 (de) 2022-09-29

Family

ID=76763365

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022101490.8A Pending DE102022101490A1 (de) 2021-03-26 2022-01-24 Technologien zur echtzeitaktualisierung von verschlüsselungsschlüsseln

Country Status (2)

Country Link
US (1) US20210218548A1 (de)
DE (1) DE102022101490A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230224154A1 (en) * 2022-01-13 2023-07-13 Dell Products L.P. Encryption key rotation based on dataset size or time between key rotation intervals

Also Published As

Publication number Publication date
US20210218548A1 (en) 2021-07-15

Similar Documents

Publication Publication Date Title
DE102019127892A1 (de) Sichern eines Plattform-Links mit Verschlüsselung
DE112013003723B4 (de) Hochleistungsfähige physikalische Kopplungsstrukturschicht
DE112013007732B4 (de) System und Vorrichtung zum Bestimmen und Melden eines Fehlers auf einer Bahn
DE102020120102A1 (de) Globale dauerhafte Speicherleerung
DE112017006557T5 (de) Bimodale phy für geringe latenz in hochgeschwindigkeitsverbindungswegen
DE102018004327A1 (de) Systeme und Verfahren zum Zugreifen auf Massenspeicher als Arbeitsspeicher
DE112017001430T5 (de) In-band-retimer-registerzugriff
DE112017006523T5 (de) Retimer mit kurzer latenzzeit
DE102019129626A1 (de) Vorwärtsfehlerkorrekturmechanismus für datenübertragung über mehrspurige verbindungen
DE112013007726T5 (de) Verbesserungen eines Zwischenverbindungs-Retimers
DE102019108376A1 (de) Sequenz zur Aushandlung und Aktivierung von Flexbus-Protokollen
DE112016003233T5 (de) Redriver-verbindungsprüfung
DE112017005002T5 (de) Verbindungsphysikalischer schichtschnittstellenadapter
DE112017006687T5 (de) Hochgeschwindigkeitsverbindungen mit kanalerweiterung
DE112016007566T5 (de) Systeme, Verfahren und Vorrichtungen zur heterogenen Berechnung
DE112016004300T5 (de) Verfahren, gerät und system zum zuweisen von cache unter verwendung einer verkehrsklasse
DE112016005910T5 (de) Architechtur für Software-Definierten Interconnect-Switch
DE102019128261A1 (de) Datenfreigabesteuerung auf der Basis von Authentifizierung und Verbindungsstreckenschutz
DE112013007734T5 (de) Mehrchipgehäuseverbindung
DE112016003222T5 (de) Hochleistungsfähiger repeater
DE102020125353A1 (de) Transaktionsschichtpaketformat
DE112018001138T5 (de) Hochleistungsverbindung
DE102018005753A1 (de) Serdes link training
DE102019109119A1 (de) Host-verwalteter kohärenter gerätespeicher
DE112018001088T5 (de) Anwendung von framing-regeln für eine hochgeschwindigkeitsdatenverbindung