DE102018125786A1 - Encrypted system memory management - Google Patents
Encrypted system memory management Download PDFInfo
- Publication number
- DE102018125786A1 DE102018125786A1 DE102018125786.4A DE102018125786A DE102018125786A1 DE 102018125786 A1 DE102018125786 A1 DE 102018125786A1 DE 102018125786 A DE102018125786 A DE 102018125786A DE 102018125786 A1 DE102018125786 A1 DE 102018125786A1
- Authority
- DE
- Germany
- Prior art keywords
- mac
- system memory
- data
- block
- memory
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/79—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Storage Device Security (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
Bei einem Beispiel umfasst ein System zum Verwalten eines verschlüsselten Speichers einen Prozessor zum Speichern eines ersten MAC basierend auf in einem Systemspeicher gespeicherten Daten als Reaktion auf einen Schreibvorgang in den Systemspeicher. Der Prozessor kann auch einen Lesevorgang detektieren, der den in dem Systemspeicher gespeicherten Daten entspricht, einen zweiten MAC basierend auf den aus dem Systemspeicher abgerufenen Daten berechnen, bestimmen, dass der zweite MAC nicht mit dem ersten MAC übereinstimmt, und den zweiten MAC mit einem Korrekturvorgang neuberechnen, wobei der Korrekturvorgang einen XOR-Vorgang basierend auf den aus dem Systemspeicher abgerufenen Daten und einem Ersatzwert für eine Vorrichtung des Systemspeichers umfasst. Des Weiteren kann der Prozessor die in dem Systemspeicher gespeicherten Daten als Reaktion auf das Detektieren, dass der neuberechnete zweite MAC mit dem ersten MAC übereinstimmt, entschlüsseln und die entschlüsselten Daten an einen Cache übertragen, wodurch Speicherfehler korrigiert werden. In one example, an encrypted memory management system includes a processor for storing a first MAC based on data stored in system memory in response to a write to system memory. The processor may also detect a read corresponding to the data stored in the system memory, calculate a second MAC based on the data retrieved from the system memory, determine that the second MAC does not match the first MAC, and the second MAC with a correction operation recalculating, wherein the correction process includes an XOR operation based on the data retrieved from the system memory and a replacement value for a system memory device. Further, the processor may decrypt the data stored in the system memory in response to detecting that the recalculated second MAC matches the first MAC and transmit the decrypted data to a cache, thereby correcting memory errors.
Description
Querverweis auf verwandte AnmeldungenCross-reference to related applications
Die vorliegende Anmeldung ist eine Teilfortsetzung der US-Patentanmeldung mit der Serien-Nr. 14/998,054, mit dem Titel „Memory Integrity with Error Detection and Correction“, eingereicht am 24. Dezember 2015, deren Inhalte durch Bezugnahme aufgenommen sind, als wenn sie hier vollständig dargelegt wären.The present application is a continuation-in-part of US patent application Ser. No. 14 / 998,054 entitled "Memory Integrity with Error Detection and Correction" filed on December 24, 2015, the contents of which are incorporated by reference as if fully set forth herein.
Technisches GebietTechnical area
Diese Offenbarung betrifft allgemein Verwalten von Daten, die in einem Speicher gespeichert sind, und insbesondere, aber nicht ausschließlich, Verwalten verschlüsselter Daten, die in einem Speicher gespeichert sind.This disclosure generally relates to managing data stored in a memory, and more particularly, but not exclusively, managing encrypted data stored in memory.
Hintergrundbackground
Rechenvorrichtungen können Daten auf eine hierarchische Weise speichern, wobei Daten zwischen einer größeren Speicherungsvorrichtung und kleineren Cache-Speichervorrichtungen übertragen werden. Bei manchen Beispielen können die Daten in einem verschlüsselten Format in Speicherungsvorrichtungen und nichtverschlüsselt in kleineren On-Chip-Cache-Vorrichtungen gespeichert werden. Bei manchen Beispielen können Fehlerkorrekturcode(ECC: Error Correction Code)-Speichertechniken verwendet werden, um Fehler in den Daten zu detektieren, die in Speichervorrichtungen gespeichert sind. Die ECC-Speichertechniken sind möglicherweise deterministisch und reversibel, aber nicht kryptografisch.Computers can store data in a hierarchical manner, transferring data between a larger storage device and smaller cache memory devices. In some examples, the data may be stored in an encrypted format in storage devices and non-encrypted in smaller on-chip cache devices. In some examples, Error Correction Code (ECC) memory techniques may be used to detect errors in the data stored in memory devices. The ECC storage techniques may be deterministic and reversible, but not cryptographic.
Figurenlistelist of figures
Die folgende ausführliche Beschreibung kann besser unter Bezugnahme auf die begleitenden Zeichnungen verstanden werden, die spezielle Beispiele für zahlreiche Merkmale des offenbarten Gegenstands enthalten.
-
1 veranschaulicht ein Blockdiagramm einer Rechenvorrichtung, die verschlüsselte Daten verwalten kann; -
2 veranschaulicht ein Blockdiagramm eines Dual-In-Line-Speichermoduls; -
3 veranschaulicht ein Prozessflussdiagramm zum Verwalten verschlüsselter Daten; -
4 veranschaulicht ein Prozessflussdiagramm zum Verwalten verschlüsselter Daten; -
5A und5B veranschaulichen Beispiele für Datenstrukturen zum Speichern verschlüsselter Daten; -
6 ist ein Prozessflussdiagramm zum Verwalten verschlüsselter Daten basierend auf einem Entropieniveau der Daten; -
7 ist eine Beispiel-Pipeline zum Verwalten verschlüsselter Daten; -
8 ist ein Prozessflussdiagramm zum Verwalten verschlüsselter Daten; -
9 ist ein Prozessflussdiagramm zum Verwalten verschlüsselter Daten basierend auf einem Korrekturwert als ein zweiter MAC-Wert; -
10A und10B sind Beispiele für Techniken zum Verwalten verschlüsselter Daten mit einem Blockkorrekturwert als ein zweiter MAC; und -
11 ist ein Beispiel für ein greifbares nichtflüchtiges computerlesbares Medium zum Verwalten verschlüsselter Daten.
-
1 Figure 12 illustrates a block diagram of a computing device that can manage encrypted data; -
2 illustrates a block diagram of a dual-in-line memory module; -
3 illustrates a process flow diagram for managing encrypted data; -
4 illustrates a process flow diagram for managing encrypted data; -
5A and5B illustrate examples of data structures for storing encrypted data; -
6 FIG. 10 is a process flow diagram for managing encrypted data based on an entropy level of the data; FIG. -
7 is an example pipeline for managing encrypted data; -
8th is a process flow diagram for managing encrypted data; -
9 FIG. 10 is a process flow diagram for managing encrypted data based on a correction value as a second MAC value; FIG. -
10A and10B Examples of techniques for managing encrypted data having a block correction value as a second MAC; and -
11 is an example of a tangible non-transitory computer-readable medium for managing encrypted data.
In manchen Fällen werden die selben Zahlen durch die Offenbarung und die Figuren hinweg verwendet, um auf gleiche Komponenten und Merkmale zu verweisen. Zahlen in den 100-Reihen verweisen auf Merkmale, die ursprünglich in
Beschreibung der Ausführungsformen Description of the embodiments
Fehlerkorrekturcode(ECC: Error Correcting Code)-Speicher kann das Verwenden zusätzlicher integrierter Schaltkreise oder Vorrichtungen oder Chips eines physischen Speichers beinhalten, um fehlerhafte Daten zu korrigieren, was die Systemkosten erhöhen kann. Außerdem sind ECC-Speichertechniken möglicherweise nicht kryptografisch. Hier beschriebene Techniken stellen kryptografisch sichere ECC-Verfahren bereit, während Fehlerkorrekturfähigkeiten beibehalten werden, um einen Speicher mit hoher Leistungsfähigkeit bereitzustellen, der zufällige Bitfehler, speicherbasierte Integrierter-Schaltkreis-Fehler und schädliche Gegner abschwächen kann. Ein speicherbasierter integrierter Schaltkreis, hier auch als eine Vorrichtung bezeichnet, kann einen beliebigen geeigneten Hardware- oder Logikchip zum Speichern einer vorbestimmten Anzahl an Bits in einer Speicherungsvorrichtung beinhalten. Die hier beschriebenen Techniken sind kryptografisch sicher und führen die Aufgabe von sowohl der Fehlerkorrektur als auch dem Bereitstellen einer Speicherintegrität, einschließlich Unterstützung für mehrere Verschlüsselungsschlüssel/MKTME (Multi-Key Total Memory Encryption), Wiederholungsvorbeugung und kryptografisch starker Datenbeschädigungsdetektion selbst durch einen physischen Gegner, durch. Außerdem erfordern die hier beschriebenen Techniken möglicherweise nicht die Verwendung von zusätzlichem ECC-Speicher und reduzieren dementsprechend Speicherkosten.Error Correcting Code (ECC) memory may include using additional integrated circuits or physical memory chips or chips to correct erroneous data, which may increase system cost. In addition, ECC storage techniques may not be cryptographic. Techniques described herein provide cryptographically secure ECC techniques while maintaining error correction capabilities to provide high performance memory that can mitigate random bit errors, memory-based integrated circuit errors, and harmful adversaries. A memory-based integrated circuit, also referred to herein as a device, may include any suitable hardware or logic chip for storing a predetermined number of bits in a memory device. The techniques described herein are cryptographically secure and perform the task of both error correction and memory integrity, including Multi-Key Total Memory Encryption (MKTME) support, repetition prevention, and cryptographically strong data corruption detection even by a physical adversary , In addition, the techniques described herein may not require the use of additional ECC memory and accordingly reduce memory costs.
Die hier beschriebenen Techniken beinhalten das Nutzen eines kryptografisch starken Nachrichtenauthentifizierungscodes (MAC: Message Authentication Code) oder HMAC (Hash Message Authentication Code), um ECC-Detektionsmechanismen mit einem statistischen Trial-and-Error-Ansatz zu ersetzen. Bei manchen Beispielen werden Vorrichtungskorrekturcodes entrollt, um eine Vorrichtung eines Speichers nach der anderen gegenüber dem sicheren Hash zu testen, was die Speichervorrichtung identifizieren kann, die Fehler enthält und deren Bits umgeklappt sind (bis zu einer vollständig fehlerhaften Vorrichtung). Entrollen, wie hier bezeichnet, kann Durchführen eines XOR-Vorgangs oder eines beliebigen anderen geeigneten Logikvorgangs an Daten, die in integrierten Schaltkreisen in einer Speichervorrichtung gespeichert sind, beinhalten. Bei manchen Beispielen kann Heuristik, wenn sie mit einer totalen Speicherverschlüsselung (Total Memory Encryption: TME/Multi-Key-TME) kombiniert wird, dabei helfen, potentiell fehlerhafte Klartextblöcke unter der Annahme zu identifizieren, dass ihre Entropie gegeben ist, weil Fehler, die den im Speicher gespeicherten Geheimcodetext verändern, bei Entschlüsselung zu zufälligen Klartexten führen. Alternativ dazu kann eine Kompression verwendet werden, um Detektionscodes (z. B. Reed-Solomon) innerhalb Daten-Cache-Lines zu verschlüsseln, um fehlerhafte Speicherstellen zu identifizieren/lokalisieren und die Kosten/Menge von physischem Speicher zu reduzieren, der zum Speichern dieser Codes benötigt wird.The techniques described herein involve the use of a cryptographically strong message authentication code (MAC) or hash message authentication code (HMAC) to replace ECC detection mechanisms with a statistical trial-and-error approach. In some examples, device correction codes are unrolled to test one device of memory at a time versus the secure hash, which can identify the memory device that contains errors and whose bits are flipped (up to a completely failed device). Unrolling, as referred to herein, may include performing an XOR operation or any other suitable logic operation on data stored in integrated circuits in a memory device. In some examples, heuristics, when combined with Total Memory Encryption (TME), can help identify potentially faulty plaintext blocks assuming their entropy is given, because errors that Change the secret code text stored in the memory, lead to random plain texts when decrypted. Alternatively, compression may be used to encrypt detection codes (eg, Reed-Solomon) within data cache lines, to identify / locate bad memory locations, and to reduce the cost / amount of physical memory used to store them Codes is needed.
Bei manchen Ausführungsformen kann eine Rechenvorrichtung einen ersten Nachrichtenauthentifizierungscode (MAC) basierend auf in einem Systemspeicher gespeicherten Daten als Reaktion auf einen Schreibvorgang in den Systemspeicher speichern. Ein MAC, wie hier bezeichnet, kann einen beliebigen geeigneten Nachrichtenauthentifizierungscode beinhalten, der eine kryptografische Hash-Funktion und einen geheimen kryptografischen Schlüssel involviert. Bei manchen Ausführungsformen kann die Rechenvorrichtung auch einen Lesevorgang, der den in dem Systemspeicher gespeicherten Daten entspricht, detektieren und einen zweiten MAC basierend auf den in dem Systemspeicher gespeicherten Daten berechnen. Die Rechenvorrichtung kann auch bestimmen, dass der zweite MAC nicht mit dem ersten gespeicherten MAC übereinstimmt und den zweiten MAC anschließend an einen Korrekturvorgang neuberechnen, wobei der Korrekturvorgang einen XOR-Vorgang basierend auf den in dem Systemspeicher gespeicherten Daten und einem Ersatzwert für eine Vorrichtung des Systemspeichers umfasst. Des Weiteren kann die Rechenvorrichtung die in dem Systemspeicher gespeicherten Daten als Reaktion auf das Detektieren, dass der neuberechnete zweite MAC mit dem ersten MAC übereinstimmt, entschlüsseln und die entschlüsselten Daten an einen Cache übertragen.In some embodiments, a computing device may store a first message authentication code (MAC) based on system data stored in system memory in response to a write to system memory. A MAC, as referred to herein, may include any suitable message authentication code involving a cryptographic hash function and a secret cryptographic key. In some embodiments, the computing device may also detect a read corresponding to the data stored in the system memory and calculate a second MAC based on the data stored in the system memory. The computing device may also determine that the second MAC does not match the first stored MAC and then recalculate the second MAC to a correction process, the correction process performing an XOR operation based on the data stored in the system memory and a system memory device replacement value includes. Further, the computing device may decrypt the data stored in the system memory in response to detecting that the recalculated second MAC matches the first MAC and transmit the decrypted data to a cache.
Bei manchen Ausführungsformen kann eine Rechenvorrichtung auch einen verschlüsselten ersten Blockkorrekturwert basierend auf in einem Systemspeicher zu speichernden Klartextdaten als Reaktion auf einen Schreibvorgang in den Systemspeicher speichern. Außerdem kann die Rechenvorrichtung einen Lesevorgang, der den in dem Systemspeicher gespeicherten Daten entspricht, detektieren und einen zweiten Blockkorrekturwert basierend auf den in dem Systemspeicher gespeicherten Daten berechnen, wobei der zweite Blockkorrekturwert basierend auf einem XOR-Vorgang berechnet wird, der den Klartext der in dem Systemspeicher gespeicherten verschlüsselten Daten umfasst. Bei manchen Ausführungsformen kann die Rechenvorrichtung bestimmen, dass der zweite Blockkorrekturwert nicht mit einem entschlüsselten ersten Blockkorrekturwert übereinstimmt, und den zweiten Blockkorrekturwert anschließend an einen Korrekturvorgang neuberechnen, wobei der Korrekturvorgang einen XOR-Vorgang basierend auf in dem Systemspeicher entschlüsselten Daten und einem Ersatzwert für Daten des Systemspeichers einer Vorrichtung umfasst. Des Weiteren kann die Rechenvorrichtung die in dem Systemspeicher gespeicherten Daten als Reaktion auf das Detektieren, dass der neuberechnete zweite Blockkorrekturwert mit dem ersten Blockkorrekturwert übereinstimmt, entschlüsseln und die entschlüsselten Daten an einen Cache übertragen.In some embodiments, a computing device may also store an encrypted first block correction value based on plaintext data to be stored in system memory in response to a write to system memory. In addition, the computing device may detect a read corresponding to the data stored in the system memory and calculate a second block correction value based on the data stored in the system memory, wherein the second block correction value is calculated based on an XOR operation that is the plaintext of the System memory includes stored encrypted data. In some embodiments, the computing device may determine that the second block correction value does not match a decrypted first block correction value and then recalculate the second block correction value to a correction operation, the correction process performing an XOR operation based on data decrypted in the system memory and a replacement value for the data System memory comprises a device. Furthermore, the computing device may store the data stored in the system memory in response to the Detecting that the recalculated second block correction value matches the first block correction value, decrypts, and transmits the decrypted data to a cache.
Die hier beschriebenen Techniken können eine Rekonstruktion von in dem Speicher gespeicherten Daten verhindern, um einen korrekten ECC-Code bereitzustellen und einen Speicherschutz gegenüber zufälligen Fehlern und Ausfällen vorzusehen. Außerdem ermöglichen die hier beschriebenen Techniken es, Versuche zum Beschädigen eines Speichers durch Injizieren von Daten von einem Pächter zu einem anderen Pächter in einem schlüsselübergreifenden Domänenangriff oder durch Umklappen physischer Bits in einem Rowhammer-Angriff oder anderes physisches Manipulieren einer Speichervorrichtung zu detektieren. Weil die hier beschriebenen Techniken kryptografisch für einen Gegner nicht deterministisch sind, ist keine deterministische Manipulation der Speicherdaten durch einen Gegner möglich, wie etwa zur Detektion.The techniques described herein may prevent reconstruction of data stored in the memory to provide correct ECC code and provide memory protection against random errors and failures. In addition, the techniques described herein make it possible to detect attempts to corrupt a memory by injecting data from one tenant to another tenant in a cross-domain domain attack or by flipping physical bits in a rowhammer attack or other physical manipulation of a storage device. Because the techniques described herein are cryptographically nondeterministic to an adversary, no deterministic manipulation of the memory data by an adversary is possible, such as for detection.
Eine Bezugnahme in der Beschreibung auf „eine Ausführungsform“ des offenbarten Gegenstands bedeutet, dass ein(e) bestimmte(s) Merkmal, Struktur oder Charakteristik, das/die in Verbindung mit der Ausführungsform beschrieben ist, in wenigstens einer Ausführungsform des offenbarten Gegenstands enthalten ist. Dementsprechend kann die Phrase „bei einer Ausführungsform“ an verschiedenen Stellen durch die Beschreibung hinweg erscheinen, aber die Phrase verweist möglicherweise nicht notwendigerweise auf die gleiche Ausführungsform.Reference in the specification to "one embodiment" of the disclosed subject matter means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the disclosed subject matter , Accordingly, the phrase "in one embodiment" may appear at different locations throughout the description, but the phrase may not necessarily refer to the same embodiment.
Der Prozessor
Außerdem kann eine Netzwerkschnittstellensteuerung (hier auch als eine NIC (Network Interface Controller) bezeichnet)
Der Prozessor
Bei manchen Ausführungsformen kann der Prozessor
Bei manchen Ausführungsformen kann der Prozessor
Alternativ dazu kann der MAC-Verwalter
Es versteht sich, dass das Blockdiagramm aus
Es versteht sich, dass das Blockdiagramm aus
Bei Block
Bei Block
Bei Block
Bei Block
Bei Block
Bei Block
Bei manchen Ausführungsformen soll das Prozessflussdiagramm aus
Bei manchen Ausführungsformen kann der Schlüssel basierend auf Metadaten oder Schlüsselkennungen ausgewählt werden, die Teil einer Speicheradresse sind. Bei manchen Beispielen können alternative MAC-Funktionen die Speicheradresse der Daten-Line in einem Speicher als Teil der gehashten Daten beinhalten. Außerdem kann die MAC-Funktion bei manchen Beispielen mit einer beliebigen geeigneten alternativen kryptografisch sicheren Hash-Funktion, wie etwa unter anderem SHA-
Bei manchen Beispielen kann der Vorrichtungsblockkorrekturwert (BC) als ein XOR-Vorgang berechnet werden:
Bei manchen Beispielen sind Daten, die von einem Speicherlesevorgang zurückgegeben werden, B'[0] .... B' [N-1], was gleich B[0]...B[N-1] sein kann, falls es keinen Fehler gab. Falls ein MAC nicht übereinstimmt, kann ein Reparaturwert (RV) mit einem XOR-Vorgang berechnet werden, bei dem einer der Vorrichtungsdatenblöcke B'[i] aus dem Satz von B'[0] bis B'[N-1] aus der Gleichung ausgelassen wird:
Wie oben besprochen, kann ein Versuch zum Reparieren jeder Vorrichtung und Verifizieren des MAC in einem Korrekturvorgang für alle Vorrichtungsdaten Folgendes beinhalten:
Bei manchen Beispielen kann die MAC-Funktion mit einer beliebigen geeigneten alternativen kryptografisch sicheren Hash-Funktion, wie etwa unter anderem SHA-
Alternativ dazu kann der Reparaturwert RV für jede Vorrichtung ohne XOR-Vorgänge hinsichtlich des Datenblocks dieser Vorrichtung mit Datenblöcken der anderen Vorrichtung berechnet werden. Bei diesem Beispiel kann der RV einen Vorrichtungsdatenblock während eines Reparaturversuches ersetzen. Bei manchen Beispielen gilt S=32 und N=16. Jedoch können S und N beliebige geeignete Werte sein. Bei einem Beispiel kann, falls S=1 und N=512 gilt, jedes Bit umgeklappt sein und kann der MAC anschließend an jedes Bitumklappen verifiziert werden. Bei diesem Beispiel wird der BC möglicherweise nicht gespeichert.Alternatively, the repair value RV for each device without XOR operations may be calculated in terms of the data block of this device with data blocks of the other device. In this example, the RV may replace a device data block during a repair attempt. In some examples, S = 32 and N = 16. However, S and N may be any suitable values. For an example For example, if S = 1 and N = 512, each bit can be flipped and the MAC can then be verified for each bit flip. In this example, the BC may not be saved.
Bei Block
Bei Block
Falls jeder der integrierten Schaltkreise oder jede der Vorrichtungen, die eine Cache-Line von Daten umfassen, getestet werden, aber der erste und zweite MAC niemals übereinstimmen, dann fährt der Prozess zu Block
Bei manchen Beispielen können die Techniken hier mit einer MAC-Größe einer beliebigen geeigneten Länge verwendet werden. Zum Beispiel können zwei zusätzliche integrierte Schaltkreise oder Speichervorrichtungen verwendet werden, um zwei 32-Bit-Werte zu speichern, falls der MAC-Wert
Bei manchen Ausführungsformen können die Techniken hier einen Versuch pro integriertem Schaltkreis oder Vorrichtung eines Speicher-DIMM, der/die eine Cache-Line von Daten umfasst, verwenden, um Einzelbitfehler oder Mehrfachbitfehler innerhalb einer einzigen Vorrichtung oder eines einzigen integrierten Schaltkreises zu korrigieren. Bei manchen Beispielen können die Techniken auch mehrere Einzelbitfehler über mehrere Vorrichtungen oder mehrere integrierte Schaltkreise korrigieren. Falls es zum Beispiel jeweils einen Bitfehler in zwei separaten Vorrichtungen gibt, kann der vollständig entrollte oder XOR-ausgeführte Korrekturwert zeigen, dass zwei Bits umgeklappt sind. Bei manchen Ausführungsformen kann der MAC getestet werden, indem die verschiedenen Kombinationen von Bits in jedem Vorrichtungsdatenblock umgeklappt werden. Zum Beispiel können für 8 DDR5-Vorrichtungen zwei Bitpositionen pro Vorrichtungsdatenblock über n Vorrichtungen umgeklappt werden. Entsprechend können vierundsechzig MAC-Tests identifizieren, dass beide der Vorrichtungen individuelle Einzelbitfehler enthalten.In some embodiments, the techniques herein may use one attempt per integrated circuit or device of a memory DIMM that includes a cache line of data to correct for single bit errors or multiple bit errors within a single device or integrated circuit. In some examples, the techniques may also correct for multiple single bit errors across multiple devices or multiple integrated circuits. For example, if there is one bit error in each of two separate devices, the fully unrolled or XORed correction value may indicate that two bits have flipped. In some embodiments, the MAC may be tested by flipping the various combinations of bits in each device data block. For example, for 8 DDR5 devices, two bit positions per device data block can be flipped over n devices. Similarly, sixty-four MAC tests can identify that both of the devices contain individual single-bit errors.
Bei manchen Beispielen ist, falls ein vollständig entrollter oder XOR-ausgeführter Korrekturwert eine große Anzahl an umgeklappten Bits aufweist, der Fehler dann wahrscheinlich ein vollständiges Vorrichtungsversagen. Vorrichtungsversagen können über eine Anzahl von Speicherlesevorgängen vorhanden sein, aber weniger Versuche zum Beheben verwenden. Zum Beispiel kann das Addieren von lediglich 22*8 zusätzlichen Takten für eine SHA3-Verschlüsselung der schlechteste Fall für DDR5-Speicher sein und diese Vorgänge können parallel durchgeführt werden. Bei manchen Beispielen dauert eine SHA3-Verschlüsselung weniger Taktzyklen als eine AES-XTS-Verschlüsselung, sodass eine Integrität keinerlei Leistungsfähigkeit-Overhead für Speicherlesevorgänge jenseits einer Verschlüsselung hinzufügt, wenn der MAC über den Geheimcodetext berechnet und parallel mit der Entschlüsselung auf einem Speicherlesevorgang errechnet wird.In some examples, if a fully unrolled or XORed correction value has a large number of flip bits, then the error is likely to be a complete device failure. Device failures can exist over a number of memory reads, but use fewer attempts to fix. For example, adding only 22 * 8 additional clocks for SHA3 encryption may be the worst case for DDR5 memory and these operations can be done in parallel. In some examples, SHA3 encryption takes less clock cycles than AES-XTS encryption, so integrity does not add any performance overhead to memory reads beyond encryption when the MAC is computed over the secret code text and computed in parallel with the decryption on a memory read.
Das Prozessflussdiagramm aus
In
Bei Block
Bei Block
Falls der Klartext der entschlüsselten Daten eine Entropie aufweist, die oberhalb eines Schwellenwertes liegt, fährt der Prozessfluss bei Block
Bei manchen Ausführungsformen kann auch eine Kompression für Daten verwendet werden, um Reed-Solomon-Codes oder ähnliche ECC-Fehlerdetektionscodes innerhalb der Daten-Cache-Lines aufzunehmen. Falls diese Codes über mehrere Blöcke dupliziert werden, können sie auch verwendet werden, um die Bitfehlerstellen präzise zu identifizieren, ohne Trial-and-Error zu benötigen. Gleichermaßen kann die Kompression der Daten-Line ermöglichen, dass der MAC-Wert in dem Platz gespeichert wird, der durch eine Kompression freigegeben wird, wodurch der Bedarf an zusätzlichem Speicher, um die MAC- Werte zu halten, reduziert wird. Falls es ein Vorrichtungsversagen oder einen Haftfehler gibt, ist dies des Weiteren über mehrere Speicherlesewerte zu ausgerichteten Speicherstellen wahrscheinlich, die derselben Vorrichtung entsprechen. Dies bedeutet, dass mehrere angrenzende Lesewerte die gleiche Fehlerstelle erfahren werden. Dies wird dabei helfen, dass die Fehlerkorrektur sich auf die wahrscheinlichste Vorrichtung für ein Haftversagen konzentriert, wodurch wieder Trial-and-Error reduziert wird.In some embodiments, compression for data may also be used to capture Reed-Solomon codes or similar ECC error detection codes within the data cache lines. If these codes are duplicated over multiple blocks, they can also be used to precisely identify the bit error locations without requiring trial-and-error. Likewise, the compression of the data line may allow the MAC value to be stored in the space released by compression, thereby reducing the need for additional memory to hold the MAC values. Further, if there is a device failure or an adhesion failure, it is likely to have multiple memory readings to aligned memory locations corresponding to the same device. This means that several adjacent readings will experience the same point of failure. This will help to fix the error correction on the most likely device for adhesive failure, again reducing trial-and-error.
Das Prozessflussdiagramm aus
Bei dem Beispiel 700 aus
Diese Schleifengestaltung ermöglicht es, mehrere Eingang-Cache-Lines in dem gleichen Zyklus zu laden und sie parallel anstatt um einen Zyklus versetzt zu verarbeiten. Dies ist nützlich, wenn MACs berechnet werden, um einen Vorrichtungsdatenblock zu reparieren. Im besten Fall können, falls die Pipeline leer ist, die „reparierten“ Cache-Lines parallel geladen werden, um zu bestimmen, welche Vorrichtung fehlerhaft war, wodurch die Latenz reduziert wird. Bei manchen Beispielen können nichtverwendete Eingänge verwendet werden, um MACs für andere Datenantworten zu berechnen, die von dem Speicher ankommen. Dies verbessert die Latenz und den Durchsatz für speicherintensive Arbeitslasten mit häufigen DRAM-Fehlern. Ein Hardware-Arbiter kann verwendet werden, um die MAC-Berechnungen zu verfolgen, die in der Reihe sind, und um Eingabedaten in die angemessenen Stufen zu multiplexen. Dieser Ansatz kann auch auf eine Partielle-Pipeline-Gestaltung angewandt werden, in der jede Stufe mehrere Runden einer Keccak-Funktion auf den momentanen Zustand bis zu einem Transfer zu der nächsten Stufe anwendet. Jede dieser Stufen kann einen externen Eingang und Ausgang wie oben beschrieben aufweisen, um eine Nutzung jeder Stufe zu maximieren.This loop design allows multiple input cache lines to be loaded in the same cycle and processed in parallel rather than offset by one cycle. This is useful when calculating MACs to repair a device data block. At best, if the pipeline is empty, the "repaired" cache lines can be loaded in parallel to determine which device was faulty, thereby reducing latency. In some examples, unused inputs may be used to compute MACs for other data responses that arrive from the memory. This improves latency and throughput for memory-intensive workloads with frequent DRAM errors. A hardware arbiter can be used to keep track of the MAC calculations that are in-line and to multiplex input data into the appropriate stages. This approach can also be applied to a partial pipeline Design, in which each stage applies multiple rounds of a keccak function to the current state until a transfer to the next level. Each of these stages may have an external input and output as described above to maximize utilization of each stage.
Bei Block
Bei Block
Bei Block
Bei Block
Das Prozessflussdiagramm aus
Entsprechend ist selbst der Korrekturcode sicher. Zum Beispiel kann eine Verschlüsselung jeder Vorrichtung mit einem Geheimcode mit einer kleinen Blockgröße als Eingabe in die XOR-Funktion verwendet werden, um den XOR-ausgeführten Korrekturcode zu berechnen. Ein Angreifer müsste diese geheime Funktionsausgabe kennen, um zu erreichen, dass alle Vorrichtungsdatenblöcke auf null entrollt werden. Daher arbeiten sowohl der MAC als auch die Korrekturcodes zusammen, wodurch die Sicherheit des Blocks verbessert wird.Accordingly, even the correction code is secure. For example, an encryption of any device having a secret code with a small block size may be used as input to the XOR function to compute the XOR-executed correction code. An attacker would need to know this secret function output to ensure that all device data blocks are unrolled to zero. Therefore, both the MAC and the correction codes work together, improving the security of the block.
Bei Block
Bei Block
Bei Block
In
Bei manchen Ausführungsformen können hier beschriebene Techniken auch einen Replay-Schutz bereitstellen, selbst wenn mehrere Schlüssel (MKTME) verwendet wurden, um die Daten zu AES-XTS-verschlüsseln. Zum Beispiel kann der MAC-Verwalter
Bei diesem Beispiel wird, falls ein Gegner oder nichtautorisierter Benutzer Inhalt von einer anderen Schlüsseldomäne für die gleiche Speicheradresse wiedereinspielt, der HMAC über den Geheimcodetext korrekt berechnen, aber der adressenbasierte Tweak, der den momentanen Schlüsseldomänenschlüssel k verwendet, wird bei einem Speicherlesen nicht übereinstimmen. Der MAC-Verwalter
Bei manchen Ausführungsformen kann der MAC-Verwalter
Bei einer anderen Ausführungsform kann der MAC-Verwalter
Ein Replay/Version-Baum kann auch mit diesem Konstrukt verwendet werden. Hier sind die eingebetteten MACs die ECC-Speicher-MACs, wie zuvor beschrieben. Der MAC des Replay-Baums kann einen Elternzählerwert für die Cache-Line beinhalten. Ein Wurzel-Zähler/Nonce (oder Zähler/Nonces für mehrere Speichergebiete) kann auch in der Hardware, auf dem Die, eingebettet sein. Die erste Ebene in dem Baum in dem Speicher enthält eine Cache-Line mit einem Satz von Zähler/Nonce-Werten und dem MAC in dem ECC-Speicher. Dieser MAC wird über sämtliche Zählerwerte, die die Cache-Line umfassen, und den assoziierten Wurzel-Zähler/Nonce berechnet, der auf dem Die gespeichert ist. Jeder Zähler/Nonce-Wert auf der Line ist ein Elternteil für die nächste Ebene des Baums. Die nächste Ebene des Baums ist eine Line mit Zähler/Nonce-Werten, wobei wieder der MAC in dem ECC-Speicher sämtliche Zähler/Nonce-Werte in der Line und einen einzigen Eltern-Nonce/Zähler von der vorherigen Line in dem Baum hasht. Die letzte Ebene/Blätter des Baums bestehen aus der Daten-Line und ihrem MAC in dem ECC-Speicher, wie zuvor beschrieben, wobei der eine Unterschied ist, dass der MAC auch über den Eltern-Zähler/Nonce-Wert gehasht wird. Auf diese Weise kann ein Replay verhindert werden, da jedes Mal, wenn Daten in den Speicher geschrieben werden, der Wurzelzähler und alle Zählerwerte in dem Zweig des Zähler/Nonce-Baums, die zu der aktualisierten Daten-Line führen, erhöht/aktualisiert werden und sämtliche betroffenen MACs in dem ECC-Speicher neuberechnet werden. Bei einem Speicherlesen werden die MACs für den Zweig des Baums verifiziert, der mit der gelesenen Daten-Line in Zusammenhang steht, indem überprüft wird, dass die Zähler/Nonce-Werte korrekt/nichtmodifiziert sind. Die MAC-Werte können mit einem anderen geheimen Schlüssel als dem Schlüssel, der zum Verschlüsseln der Daten-Lines verwendet wird, und dem MAC, der über den AES-XTS-Geheimcodetext der Daten-Line berechnet wird, berechnet werden, wodurch ermöglicht wird, dass unterschiedliche Daten mit unterschiedlichen Schlüsseln, wie etwa MKTME, verschlüsselt werden.A replay / version tree can also be used with this construct. Here, the embedded MACs are the ECC memory MACs, as previously described. The MAC of the replay tree may include a parent counter value for the cache line. A root counter / nonce (or counter / nonces for multiple memory areas) may also be embedded in the hardware on which the. The first level in the tree in memory contains a cache line with a set of counter / nonce values and the MAC in the ECC memory. This MAC is calculated over all counter values that comprise the cache line and the associated root counter / nonce stored on the die. Each counter / nonce value on the line is a parent for the next level of the tree. The next level of the tree is a line with counter / nonce values, again with the MAC in the ECC memory hashing all counter / nonce values in the line and a single parent nonce / counter from the previous line in the tree. The last level / leaves of the tree consist of the data line and its MAC in the ECC memory, as previously described, the one difference being that the MAC is also hashed over the parent counter / nonce value. In this way, replay can be prevented because each time data is written to memory, the root counter and all counter values in the branch of the counter / nonce tree leading to the updated data line are increased / updated and all affected MACs in the ECC memory are recalculated. In a memory read, the MACs for the branch of the tree associated with the read data line are verified by verifying that the counter / nonce values are correct / unmodified. The MAC values can be calculated with a different secret key than the key used to encrypt the data lines and the MAC calculated via the AES-XTS secret code text of the data line, thereby allowing that different data is encrypted with different keys, such as MKTME.
Bei manchen Ausführungsformen können die ECC-/Integritätswerte auch in separaten Speicherstellen gespeichert werden, so dass sie nicht das Hinzufügen von physischem/physischen ECC-Speicher/ECC-DIMMs erfordern. Zusätzliche Speicher-Lese/Schreib-Vorgänge werden verwendet werden, um die ECC-/Integritätswerte in diesem Fall aus den separaten Speicherstellen abzurufen. Zum Beispiel kann das ECC-Korrekturfeld erweitert werden, um sowohl einen Speicher zu korrigieren als auch ein HMAC zum Detektieren von Fehlern zu sein. Das Verwenden von Entropietests zum Validieren, welche Vorrichtung sich wahrscheinlich in einem Fehlerzustand befindet, beseitigt die Notwendigkeit, irgendwelche anderen Werte zu speichern, wodurch die Hälfte des ECC-Speicher-Overheads eingespart wird und Kosten reduziert werden.In some embodiments, the ECC / integrity values may also be stored in separate memory locations so that they do not require the addition of physical / physical ECC memory / ECC DIMMs. Additional memory read / write operations will be used to retrieve the ECC / integrity values from the separate memory locations in this case. For example, the ECC correction field may be extended to both correct a memory and to be an HMAC for detecting errors. Using entropy tests to validate which device is likely to be in an error state eliminates the need to store any other values, saving half of the ECC memory overhead and reducing costs.
Die verschiedenen hier besprochenen Softwarekomponenten können auf dem greifbaren nichtflüchtigen computerlesbaren medium 1100 gespeichert werden, wie in
Alternativ dazu kann der MAC-Verwalter
Es versteht sich, dass eine beliebige geeignete Anzahl der in
BEISPIEL 1EXAMPLE 1
Bei manchen Beispielen umfasst ein System zum Verwalten eines verschlüsselten Speichers einen Prozessor zum Speichern eines ersten Nachrichtenauthentifizierungscodes (MAC) basierend auf in einem Systemspeicher gespeicherten Daten als Reaktion auf einen Schreibvorgang in den Systemspeicher. Der Prozessor kann auch einen Lesevorgang detektieren, der den in dem Systemspeicher gespeicherten Daten entspricht, einen zweiten MAC basierend auf den aus dem Systemspeicher abgerufenen Daten berechnen und bestimmen, dass der zweite MAC nicht mit dem ersten MAC übereinstimmt. Des Weiteren kann der Prozessor auch den zweiten MAC anschließend an einen Korrekturvorgang neuberechnen, wobei der Korrekturvorgang einen XOR-Vorgang basierend auf den aus dem Systemspeicher abgerufenen Daten und einem Ersatzwert für eine Vorrichtung des Systemspeichers umfasst. Außerdem kann der Prozessor die in dem Systemspeicher gespeicherten Daten als Reaktion auf das Detektieren, dass der neuberechnete zweite MAC mit dem ersten MAC übereinstimmt, entschlüsseln und die entschlüsselten Daten an einen Cache übertragen.In some examples, an encrypted memory management system includes a processor for storing a first message authentication code (MAC) based on data stored in system memory in response to a write to system memory. The processor may also detect a read corresponding to the data stored in the system memory, calculate a second MAC based on the data retrieved from the system memory, and determine that the second MAC does not match the first MAC. Further, the processor may also recalculate the second MAC subsequent to a correction process, wherein the correction process includes an XOR operation based on the data retrieved from the system memory and a replacement value for a system memory device. In addition, the processor may decrypt the data stored in the system memory in response to detecting that the recalculated second MAC matches the first MAC and transmit the decrypted data to a cache.
Alternativ dazu oder zusätzlich umfasst der Korrekturvorgang Neuberechnen das zweiten MAC für mehrere Vorrichtungen des Systemspeichers. Alternativ dazu oder zusätzlich ist der Prozessor dazu ausgelegt, den XOR-Vorgang für jede der mehreren Vorrichtungen auszuführen, wobei der XOR-Vorgang auf dem Ersatzwert und den in jeder der mehreren Vorrichtungen ausschließlich einer Vorrichtung gespeicherten Daten basiert. Alternativ dazu oder zusätzlich ist der Prozessor dazu ausgelegt, einen nicht korrigierbaren Fehler als Reaktion auf das Detektieren, dass der neuberechnete zweite MAC für jede Vorrichtung des Systemspeichers nicht mit dem ersten MAC übereinstimmt, zu erzeugen. Alternativ dazu oder zusätzlich ist der Prozessor dazu ausgelegt, einen Block der in dem Systemspeicher gespeicherten Daten zu entschlüsseln, wobei eine Größe des Blocks einer Größe einer Eingabe oder Ausgabe eines Blockgeheimcodes entspricht, zu bestimmen, dass eine Entropie eines Klartexts in dem entschlüsselten Block der Daten oberhalb eines Schwellenniveaus liegt, und den Korrekturbefehl auf jeder Vorrichtung in dem Systemspeicher, die einen Teil des Blocks der Daten speichert, durchzuführen. Alternativ dazu oder zusätzlich umfasst der Prozessor eine Logik zum Ausführen des Korrekturbefehls in einer parallelen Pipeline, wobei die parallele Pipeline Erzeugen des zweiten MAC mit dem Ersatzwert für jede Vorrichtung des Systemspeichers umfasst. Alternativ dazu oder zusätzlich ist der Prozessor dazu ausgelegt, einen Blockkorrekturwert zu erzeugen. Alternativ dazu oder zusätzlich ist der Prozessor dazu ausgelegt, den ersten MAC und den zweiten MAC als Reaktion auf ein Verstreichen einer vorbestimmten Zeitperiode mit einem neuen Schlüssel zu versehen.Alternatively, or in addition, the recalculate correction process includes the second MAC for a plurality of system memory devices. Alternatively, or in addition, the processor is configured to perform the XOR operation for each of the plurality of devices, wherein the XOR operation is based on the replacement value and the data stored in each of the plurality of device-only devices. Alternatively, or in addition, the processor is configured to generate an uncorrectable error in response to detecting that the recalculated second MAC for each device of the system memory does not match the first MAC. Alternatively, or in addition, the processor is configured to decrypt a block of the data stored in the system memory, wherein a size of the block corresponds to a size of an input or output of a block secret code, to determine that an entropy of a plaintext in the decrypted block of the data is above a threshold level, and to execute the correction command on each device in the system memory storing a portion of the block of data. Alternatively, or additionally, the processor includes logic to execute the correction instruction in a parallel pipeline, the parallel pipeline comprising generating the second MAC with the substitute value for each device of the system memory. Alternatively or additionally, the processor is configured to generate a block correction value. Alternatively, or in addition, the processor is configured to provide the first MAC and the second MAC with a new key in response to a lapse of a predetermined period of time.
BEISPIEL 2 EXAMPLE 2
Bei einer Ausführungsform umfasst ein System zum Verwalten verschlüsselter Daten einen Prozessor zum Speichern eines verschlüsselten ersten Blockkorrekturwerts basierend auf in einem Systemspeicher gespeicherten Daten als Reaktion auf einen Schreibvorgang in den Systemspeicher. Der Prozessor kann auch einen Lesevorgang detektieren, der den in dem Systemspeicher gespeicherten Daten entspricht, und einen zweiten Blockkorrekturwert basierend auf den in dem Systemspeicher gespeicherten Daten berechnen, wobei der zweite Blockkorrekturwert, der basierend auf einem XOR-Vorgang berechnet wird, in dem Systemspeicher gespeicherte Klartextdaten umfasst. Außerdem kann der Prozessor bestimmen, dass der zweite Blockkorrekturwert nicht mit einem entschlüsselten ersten Blockkorrekturwert übereinstimmt, bestimmen, dass ein gespeicherter erster MAC-Wert nicht mit einem berechneten zweiten MAC übereinstimmt, und den zweiten Blockkorrekturwert mit einem Korrekturvorgang neuzuberechnen, wobei der Korrekturvorgang einen XOR-Vorgang basierend auf in dem Systemspeicher gespeicherten entschlüsselten Daten und einem Ersatzwert für eine Vorrichtung des Systemspeichers umfasst. Des Weiteren kann der Prozessor die in dem Systemspeicher gespeicherten Daten als Reaktion auf das Detektieren, dass der neuberechnete zweite MAC mit dem ersten Blockkorrekturwert übereinstimmt, entschlüsseln und die entschlüsselten Daten an eine Cache-Vorrichtung übertragen.In one embodiment, a system for managing encrypted data includes a processor for storing an encrypted first block correction value based on data stored in system memory in response to a write to the system memory. The processor may also detect a read corresponding to the data stored in the system memory and calculate a second block correction value based on the data stored in the system memory, wherein the second block correction value calculated based on an XOR operation is stored in the system memory Plain text data includes. In addition, the processor may determine that the second block correction value does not match a decrypted first block correction value, determine that a stored first MAC value does not match a calculated second MAC, and recalculate the second block correction value with a correction operation, wherein the correction operation is an XOR. A process based on decrypted data stored in the system memory and a system memory device replacement value. Further, the processor may decrypt the data stored in the system memory in response to detecting that the recalculated second MAC matches the first block correction value and transmit the decrypted data to a cache device.
Alternativ dazu oder zusätzlich ist der Prozessor dazu ausgelegt, einen ersten MAC basierend auf einem XOR-Vorgang zu erzeugen, der in dem Systemspeicher gespeicherte Geheimcodetextdaten umfasst. Alternativ dazu oder zusätzlich ist der Prozessor dazu ausgelegt, die in dem Systemspeicher gespeicherten Daten und den ersten Blockkorrekturwert zu entschlüsseln. Alternativ dazu oder zusätzlich umfasst das System eine einzige Vorrichtung in dem Systemspeicher zum Speichern des ersten Blockkorrekturwertes.Alternatively, or in addition, the processor is configured to generate a first MAC based on an XOR process that includes secret code text data stored in the system memory. Alternatively or additionally, the processor is configured to decrypt the data stored in the system memory and the first block correction value. Alternatively or additionally, the system includes a single device in the system memory for storing the first block correction value.
BEISPIEL 3EXAMPLE 3
Bei einem Beispiel umfasst ein Verfahren zum Verwalten eines verschlüsselten Speichers Speichern eines ersten Nachrichtenauthentifizierungscodes (MAC) basierend auf Daten, die in einem Systemspeicher gespeichert werden, als Reaktion auf einen Schreibvorgang in den Systemspeicher. Das Verfahren kann auch Detektieren eines Lesevorgangs, der den in dem Systemspeicher gespeicherten Daten entspricht, Berechnen eines zweiten MAC basierend auf den aus dem Systemspeicher abgerufenen Daten und Bestimmen, dass der zweite MAC nicht mit dem ersten MAC übereinstimmt, beinhalten. Zusätzlich kann das Verfahren Neuberechnen des zweiten MAC anschließend an einen Korrekturvorgang beinhalten, wobei der Korrekturvorgang einen XOR-Vorgang basierend auf den Daten, die aus dem Systemspeicher abgerufen werden, und einem Ersatzwert für eine Vorrichtung des Systemspeichers umfasst. Des Weiteren kann das Verfahren Entschlüsseln der in dem Systemspeicher gespeicherten Daten als Reaktion auf das Detektieren, dass der neuberechnete zweite MAC mit dem ersten MAC übereinstimmt, und Übertragen der entschlüsselten Daten an einen Cache beinhalten.In one example, a method for managing encrypted memory includes storing a first message authentication code (MAC) based on data stored in system memory in response to a write to system memory. The method may also include detecting a read corresponding to the data stored in the system memory, calculating a second MAC based on the data retrieved from the system memory, and determining that the second MAC does not match the first MAC. In addition, the method may include recalculating the second MAC subsequent to a correction process, the correction process including an XOR operation based on the data retrieved from the system memory and a system memory device replacement value. Furthermore, the method may include decrypting the data stored in the system memory in response to detecting that the recalculated second MAC matches the first MAC and transmitting the decrypted data to a cache.
Alternativ dazu oder zusätzlich umfasst der Korrekturvorgang Neuberechnen des zweiten MAC für mehrere Vorrichtungen des Systemspeichers. Alternativ dazu oder zusätzlich beinhaltet das Verfahren Ausführen des XOR-Vorgangs für jede der mehreren Vorrichtungen, wobei der XOR-Vorgang auf dem Ersatzwert und den in jeder der mehreren Vorrichtungen ausschließlich einer Vorrichtung gespeicherten Daten basiert. Alternativ dazu oder zusätzlich beinhaltet das Verfahren Erzeugen eines nicht korrigierbaren Fehlers als Reaktion auf das Detektieren, dass der neuberechnete zweite MAC für jede Vorrichtung des Systemspeichers nicht mit dem ersten MAC übereinstimmt. Alternativ dazu oder zusätzlich beinhaltet das Verfahren Entschlüsseln eines Blocks der in dem Systemspeicher gespeicherten Daten, wobei eine Größe des Blocks einer Größe einer Eingabe oder Ausgabe eines Blockgeheimcodes entspricht, Bestimmen, dass eine Entropie eines Klartexts in dem entschlüsselten Block der Daten oberhalb eines Schwellenniveaus liegt, und Durchführen des Korrekturbefehls auf jeder Vorrichtung in dem Systemspeicher, die einen Teil des Blocks der Daten speichert. Alternativ dazu oder zusätzlich beinhaltet das Verfahren Ausführen des Korrekturbefehls in einer parallelen Pipeline, wobei die parallele Pipeline Erzeugen des zweiten MAC mit dem Ersatzwert für jede Vorrichtung des Systemspeichers umfasst. Alternativ dazu oder zusätzlich beinhaltet das Verfahren Erzeugen eines Blockkorrekturwerts. Alternativ dazu oder zusätzlich beinhaltet das Verfahren Versehen des ersten MAC und des zweiten MAC mit einem neuen Schlüssel oder Neuverschlüsseln davon basierend auf einem neuen Schlüssel als Reaktion auf ein Verstreichen einer vorbestimmten Zeitperiode.Alternatively, or in addition, the correction process includes recalculating the second MAC for a plurality of system memory devices. Alternatively, or additionally, the method includes executing the XOR operation for each of the plurality of devices, wherein the XOR process is based on the substitute value and the data stored in each of the plurality of device-only devices. Alternatively, or additionally, the method includes generating an uncorrectable error in response to the detecting that the recalculated second MAC for each device of the system memory does not match the first MAC. Alternatively, or additionally, the method includes decrypting a block of the data stored in the system memory, wherein a size of the block corresponds to a size of an input or output of a block secret code, determining that an entropy of a plaintext in the decrypted block of the data is above a threshold level, and performing the correction command on each device in the system memory that stores a portion of the block of data. Alternatively, or additionally, the method includes executing the correction instruction in a parallel pipeline, the parallel pipeline comprising generating the second MAC with the substitute value for each device of the system memory. Alternatively, or additionally, the method includes generating a block correction value. Alternatively or additionally, the method includes providing the first MAC and the second MAC with a new key or re-encrypting it based on a new key in response to a lapse of a predetermined period of time.
BEISPIEL 4 EXAMPLE 4
Bei einer Ausführungsform umfasst ein Verfahren zum Verwalten verschlüsselter Daten Speichern eines verschlüsselten ersten Blockkorrekturwerts basierend auf in einem Systemspeicher gespeicherten Daten als Reaktion auf einen Schreibvorgang in den Systemspeicher. Das Verfahren kann auch Detektieren eines Lesevorgangs, der den in dem Systemspeicher gespeicherten Daten entspricht, und Berechnen eines zweiten Blockkorrekturwerts basierend auf den in dem Systemspeicher gespeicherten Daten beinhalten, wobei der zweite Blockkorrekturwert, der basierend auf einem XOR-Vorgang berechnet wird, in dem Systemspeicher gespeicherte Klartextdaten umfasst. Zusätzlich kann das Verfahren Bestimmen, dass der zweite Blockkorrekturwert nicht mit einem entschlüsselten ersten Blockkorrekturwert übereinstimmt, Bestimmen, dass ein gespeicherter erster MAC-Wert nicht mit einem berechneten zweiten MAC übereinstimmt, und Neuberechnen des zweiten Blockkorrekturwerts mit einem Korrekturvorgang beinhalten, wobei der Korrekturvorgang einen XOR-Vorgang basierend auf in dem Systemspeicher gespeicherten entschlüsselten Daten und einem Ersatzwert für eine Vorrichtung des Systemspeichers umfasst. Des Weiteren kann das Verfahren Entschlüsseln der in dem Systemspeicher gespeicherten Daten als Reaktion auf das Detektieren, dass der neuberechnete zweite MAC mit dem ersten Blockkorrekturwert übereinstimmt, und Übertragen der entschlüsselten Daten an eine Cache-Vorrichtung beinhalten.In one embodiment, a method for managing encrypted data includes storing an encrypted first block correction value based on data stored in system memory in response to a write to the system memory. The method may also include detecting a read corresponding to the data stored in the system memory and calculating a second block correction value based on the data stored in the system memory, wherein the second block correction value calculated based on an XOR operation is in the system memory stored plaintext data. In addition, the method may determine that the second block correction value does not match a decrypted first block correction value, determine that a stored first MAC value does not match a calculated second MAC, and recalculate the second block correction value with a correction operation, wherein the correction process is an XOR Operation based on decrypted data stored in the system memory and a replacement value for a system memory device. Furthermore, the method may include decrypting the data stored in the system memory in response to detecting that the recalculated second MAC matches the first block correction value and transmitting the decrypted data to a cache device.
Alternativ dazu oder zusätzlich kann das Verfahren Erzeugen eines ersten MAC basierend auf einem XOR-Vorgang beinhalten, der in dem Systemspeicher gespeicherte Geheimcodetextdaten umfasst. Alternativ dazu oder zusätzlich kann das Verfahren Entschlüsseln der in dem Systemspeicher gespeicherten Daten und des ersten Blockkorrekturwerts beinhalten. Alternativ dazu oder zusätzlich kann das Verfahren Verwenden einer einzigen Vorrichtung in dem Systemspeicher zum Speichern des ersten Blockkorrekturwerts beinhalten.Alternatively, or in addition, the method may include generating a first MAC based on an XOR process that includes secret code text data stored in the system memory. Alternatively, or in addition, the method may include decrypting the data stored in the system memory and the first block correction value. Alternatively, or in addition, the method may include using a single device in the system memory to store the first block correction value.
BEISPIEL 5EXAMPLE 5
Bei einer Ausführungsform umfasst ein nichtflüchtiges computerlesbares Medium zum Verwalten eines verschlüsselten Speichers mehrere Befehle, die als Reaktion auf eine Ausführung durch einen Prozessor bewirken, dass der Prozessor einen ersten Nachrichtenauthentifizierungscode (MAC) basierend auf in einem Systemspeicher gespeicherten Daten als Reaktion auf einen Schreibvorgang in den Systemspeicher speichert. Der Prozessor kann auch einen Lesevorgang detektieren, der den in dem Systemspeicher gespeicherten Daten entspricht, einen zweiten MAC basierend auf den aus dem Systemspeicher abgerufenen Daten berechnen und bestimmen, dass der zweite MAC nicht mit dem ersten MAC übereinstimmt. Des Weiteren kann der Prozessor auch den zweiten MAC anschließend an einen Korrekturvorgang neuberechnen, wobei der Korrekturvorgang einen XOR-Vorgang basierend auf den aus dem Systemspeicher abgerufenen Daten und einem Ersatzwert für eine Vorrichtung des Systemspeichers umfasst. Außerdem kann der Prozessor die in dem Systemspeicher gespeicherten Daten als Reaktion auf das Detektieren, dass der neuberechnete zweite MAC mit dem ersten MAC übereinstimmt, entschlüsseln und die entschlüsselten Daten an einen Cache übertragen.In one embodiment, a non-transitory computer readable medium for managing encrypted memory includes a plurality of instructions that, in response to execution by a processor, cause the processor to generate a first message authentication code (MAC) based on data stored in system memory in response to a write to the computer System memory stores. The processor may also detect a read corresponding to the data stored in the system memory, calculate a second MAC based on the data retrieved from the system memory, and determine that the second MAC does not match the first MAC. Further, the processor may also recalculate the second MAC subsequent to a correction process, wherein the correction process includes an XOR operation based on the data retrieved from the system memory and a replacement value for a system memory device. In addition, the processor may decrypt the data stored in the system memory in response to detecting that the recalculated second MAC matches the first MAC and transmit the decrypted data to a cache.
Alternativ dazu oder zusätzlich umfasst der Korrekturvorgang Neuberechnen des zweiten MAC für mehrere Vorrichtungen des Systemspeichers. Alternativ dazu oder zusätzlich ist der Prozessor dazu ausgelegt, den XOR-Vorgang für jede der mehreren Vorrichtungen auszuführen, wobei der XOR-Vorgang auf dem Ersatzwert und den in jeder der mehreren Vorrichtungen ausschließlich einer Vorrichtung gespeicherten Daten basiert. Alternativ dazu oder zusätzlich ist der Prozessor dazu ausgelegt, einen nicht korrigierbaren Fehler als Reaktion auf das Detektieren, dass der neuberechnete zweite MAC für jede Vorrichtung des Systemspeichers nicht mit dem ersten MAC übereinstimmt, zu erzeugen. Alternativ dazu oder zusätzlich ist der Prozessor dazu ausgelegt, einen Block der in dem Systemspeicher gespeicherten Daten zu entschlüsseln, wobei eine Größe des Blocks einer Größe einer Eingabe oder Ausgabe eines Blockgeheimcodes entspricht, zu bestimmen, dass eine Entropie eines Klartextes in dem entschlüsselten Block der Daten oberhalb eines Schwellenniveaus liegt, und den Korrekturbefehl auf jeder Vorrichtung in dem Systemspeicher, die einen Teil des Blocks der Daten speichert, durchzuführen. Alternativ dazu oder zusätzlich umfasst der Prozessor eine Logik zum Ausführen des Korrekturbefehls in einer parallelen Pipeline, wobei die parallele Pipeline Erzeugen des zweiten MAC mit dem Ersatzwert für jede Vorrichtung des Systemspeichers umfasst. Alternativ dazu oder zusätzlich ist der Prozessor dazu ausgelegt, einen Blockkorrekturwert zu erzeugen. Alternativ dazu oder zusätzlich ist der Prozessor dazu ausgelegt, den ersten MAC und den zweiten MAC als Reaktion auf ein Verstreichen einer vorbestimmten Zeitperiode mit einem neuen Schlüssel zu versehen.Alternatively, or in addition, the correction process includes recalculating the second MAC for a plurality of system memory devices. Alternatively, or in addition, the processor is configured to perform the XOR operation for each of the plurality of devices, wherein the XOR operation is based on the replacement value and the data stored in each of the plurality of device-only devices. Alternatively, or in addition, the processor is configured to generate an uncorrectable error in response to detecting that the recalculated second MAC for each device of the system memory does not match the first MAC. Alternatively, or in addition, the processor is configured to decrypt a block of the data stored in the system memory, wherein a size of the block corresponds to a size of an input or output of a block secret code, to determine that an entropy of a plaintext in the decrypted block of the data is above a threshold level, and to execute the correction command on each device in the system memory storing a portion of the block of data. Alternatively, or additionally, the processor includes logic to execute the correction instruction in a parallel pipeline, the parallel pipeline comprising generating the second MAC with the substitute value for each device of the system memory. Alternatively or additionally, the processor is configured to generate a block correction value. Alternatively, or in addition, the processor is configured to provide the first MAC and the second MAC with a new key in response to a lapse of a predetermined period of time.
BEISPIEL 6 EXAMPLE 6
Bei einer Ausführungsform umfasst ein nichtflüchtiges computerlesbares Medium zum Verwalten eines verschlüsselten Speichers mehrere Befehle, die als Reaktion auf eine Ausführung durch einen Prozessor bewirken, dass der Prozessor einen verschlüsselten ersten Blockkorrekturwert basierend auf in einem Systemspeicher gespeicherten Daten als Reaktion auf einen Schreibvorgang in den Systemspeicher speichert. Der Prozessor kann auch einen Lesevorgang detektieren, der den in dem Systemspeicher gespeicherten Daten entspricht, und einen zweiten Blockkorrekturwert basierend auf den in dem Systemspeicher gespeicherten Daten berechnen, wobei der zweite Blockkorrekturwert, der basierend auf einem XOR-Vorgang berechnet wird, in dem Systemspeicher gespeicherte Klartextdaten umfasst. Zusätzlich kann der Prozessor bestimmen, dass der zweite Blockkorrekturwert nicht mit einem entschlüsselten ersten Blockkorrekturwert übereinstimmt, bestimmen, dass ein gespeicherter erster MAC-Wert nicht mit einem berechneten zweiten MAC übereinstimmt, und den zweiten Blockkorrekturwert mit einem Korrekturvorgang neuberechnen, wobei der Korrekturvorgang einen XOR-Vorgang basierend auf in dem Systemspeicher gespeicherten entschlüsselten Daten und einem Ersatzwert für eine Vorrichtung des Systemspeichers umfasst. Des Weiteren kann der Prozessor die in dem Systemspeicher gespeicherten Daten als Reaktion auf das Detektieren, dass der neuberechnete zweite MAC mit dem ersten Blockkorrekturwert übereinstimmt, entschlüsseln und die entschlüsselten Daten an eine Cache-Vorrichtung übertragen.In one embodiment, a non-transitory computer-readable medium for managing encrypted memory includes a plurality of instructions that cause the processor to store an encrypted first block correction value based on system-stored data in system memory in response to a write to system memory , The processor may also detect a read corresponding to the data stored in the system memory and calculate a second block correction value based on the data stored in the system memory, wherein the second block correction value calculated based on an XOR operation is stored in the system memory Plain text data includes. In addition, the processor may determine that the second block correction value does not match a decrypted first block correction value, determine that a stored first MAC value does not match a calculated second MAC, and recalculate the second block correction value with a correction operation, wherein the correction process is an XOR. A process based on decrypted data stored in the system memory and a system memory device replacement value. Further, the processor may decrypt the data stored in the system memory in response to detecting that the recalculated second MAC matches the first block correction value and transmit the decrypted data to a cache device.
Alternativ dazu oder zusätzlich ist der Prozessor dazu ausgelegt, einen ersten MAC basierend auf einem XOR-Vorgang zu erzeugen, der in dem Systemspeicher gespeicherte Geheimcodetextdaten umfasst. Alternativ dazu oder zusätzlich ist der Prozessor dazu ausgelegt, die in dem Systemspeicher gespeicherten Daten und den ersten Blockkorrekturwert zu entschlüsseln. Alternativ dazu oder zusätzlich umfasst das System eine einzige Vorrichtung in dem Systemspeicher zum Speichern des ersten Blockkorrekturwerts.Alternatively, or in addition, the processor is configured to generate a first MAC based on an XOR process that includes secret code text data stored in the system memory. Alternatively or additionally, the processor is configured to decrypt the data stored in the system memory and the first block correction value. Alternatively or additionally, the system includes a single device in the system memory for storing the first block correction value.
Obwohl ein Ausführungsbeispiel des offenbarten Gegenstands unter Bezugnahme auf Block- und Flussdiagramme in
Bei der vorhergehenden Beschreibung wurden verschiedene Aspekte des offenbarten Gegenstands beschrieben. Zu Erklärungszwecken wurden spezielle Zahlen, Systeme und Konfigurationen dargelegt, um ein gründliches Verständnis des Gegenstands zu vermitteln. Jedoch ist es für einen Fachmann unter Zuhilfenahme dieser Offenbarung offensichtlich, dass der Gegenstand ohne diese speziellen Einzelheiten umgesetzt werden kann. In anderen Fällen wurden wohlbekannte Merkmale, Komponenten oder Module weggelassen, vereinfacht, kombiniert oder aufgeteilt, um den offenbarten Gegenstand nicht zu verschleiern.In the foregoing description, various aspects of the disclosed subject matter have been described. For purposes of explanation, specific numbers, systems, and configurations have been set forth in order to provide a thorough understanding of the subject matter. However, it will be apparent to those skilled in the art, with the aid of this disclosure, that the subject matter can be practiced without these specific details. In other instances, well-known features, components or modules have been omitted, simplified, combined or subdivided so as not to obscure the disclosed subject matter.
Verschiedene Ausführungsformen des offenbarten Gegenstands können in Hardware, Firmware, Software oder einer Kombination davon implementiert werden und können durch Bezugnahme auf oder in Verbindung mit Programmcode, wie etwa Befehlen, Funktionen, Prozeduren, Datenstrukturen, Logik, Anwendungsprogrammen, Gestaltungspräsentationen oder Formaten zur Simulation, Emulation und Fabrikation einer Gestaltung beschrieben werden, der, wenn auf ihn durch eine Maschine zugegriffen wird, dazu führt, dass die Maschine Aufgaben durchführt, abstrakte Datentypen oder Hardwarekontexte auf niedriger Ebene definiert oder ein Ergebnis produziert.Various embodiments of the disclosed subject matter may be implemented in hardware, firmware, software, or a combination thereof, and may be by reference to or in connection with program code, such as instructions, functions, procedures, data structures, logic, application programs, design presentations, or simulation, emulation and fabricating a design that, when accessed by a machine, causes the machine to perform tasks, define low-level abstract data types or hardware contexts, or produce a result.
Programmcode kann Hardware unter Verwendung einer Hardwarebeschreibungssprache oder einer anderen funktionalen Beschreibungssprache repräsentieren, die im Wesentlichen ein Modell davon bereitstellt, wie eine gestaltete Hardware erwartungsgemäß funktioniert. Programmcode kann Assembler- oder Maschinensprache oder Hardwaredefinitionssprachen sein oder Daten, die kompiliert und/oder interpretiert werden können. Des Weiteren ist es in der Technik üblich, von Software in einer Form oder einer anderen als eine Handlung vornehmend oder ein Ergebnis bewirkend zu sprechen. Solche Ausdrücke sind lediglich ein kurzschriftlicher Weg, eine Ausführung eines Programmcodes durch ein Verarbeitungssystem anzugeben, das bewirkt, dass ein Prozessor eine Handlung durchführt oder ein Ergebnis produziert.Program code may represent hardware using a hardware description language or other functional description language that essentially provides a model of how a designed hardware functions as expected. Program code may be assembly or machine language or hardware definition languages, or data that may be compiled and / or interpreted. Further, it is common in the art to speak of software in a form or other as an act or effect a result. Such terms are merely a shorthand way of indicating execution of program code by a processing system that causes a processor to perform an action or produce a result.
Programmcode kann in zum Beispiel flüchtigem und/oder nichtflüchtigem Speicher gespeichert werden, wie etwa Speicherungsvorrichtungen und/oder einem assoziierten maschinenlesbaren oder maschinenzugänglichen Medium, einschließlich eines Festkörperspeichers, Festplatten, Floppy-Disketten, einer optischen Speicherung, Bändern, Flash-Speicher, Speicher-Sticks, digitalen Video-Disks, digitalen Versatile-Discs (DVDs) usw., sowie exotischeren Medien, wie etwa einer maschinenzugänglichen biologischen Zustandsbewahrungsspeicherung. Ein maschinenlesbares Medium kann einen beliebigen greifbaren Mechanismus zum Speichern, Übertragen oder Empfangen von Informationen in einer Form beinhalten, die durch eine Maschine, wie etwa Antennen, optische Fasern, Kommunikationsschnittstellen usw., lesbar ist. Programmcode kann in der Form von Paketen, seriellen Daten, parallelen Daten usw. übertragen werden und kann in einem komprimierten oder verschlüsselten Format verwendet werden.Program code may be stored in, for example, volatile and / or nonvolatile memory, such as storage devices and / or an associated machine-readable or machine-accessible medium, including a solid state memory, hard disks, floppy disks, optical storage, tapes, flash memory, memory sticks , digital video discs, digital versatile discs (DVDs), etc., as well as more exotic media, such as machine-accessible biological condition preservation storage. A machine-readable medium may include any tangible mechanism for storing, transmitting, or receiving information in a form readable by a machine such as antennas, optical fibers, communication interfaces, and so on. Program code may be transmitted in the form of packets, serial data, parallel data, etc., and may be used in a compressed or encrypted format.
Programmcode kann in Programmen implementiert werden, die auf programmierbaren Maschinen, wie etwa mobilen oder stationären Computern, persönlichen digitalen Assistenten, Set-Top-Boxen, Mobiltelefonen und Pagern, und anderen elektronischen Vorrichtungen ausgeführt werden, die jeweils einen Prozessor, einen flüchtigen und/oder nichtflüchtigen Speicher, der durch den Prozessor lesbar ist, wenigstens eine Eingabevorrichtung und/oder eine oder mehrere Ausgabevorrichtungen beinhalten. Programmcode kann auf die Daten angewandt werden, die unter Verwendung der Eingabevorrichtung eingegeben werden, um die beschriebenen Ausführungsformen durchzuführen und Ausgabeinformationen zu erzeugen. Die Ausgabeinformationen können auf eine oder mehrere Ausgabevorrichtungen angewandt werden. Ein Durchschnittsfachmann versteht, dass Ausführungsformen des offenbarten Gegenstands mit verschiedenen Computersystemkonfigurationen umgesetzt werden können, einschließlich Mehrfachprozessor- oder Mehrfachkernprozessorsystemen, Minicomputern, Mainframe-Computern sowie allgegenwärtigen oder Miniaturcomputern oder -prozessoren, die in praktisch jeder Vorrichtung eingebettet sein können. Ausführungsformen des offenbarten Gegenstands können auch in verteilten Rechenumgebungen umgesetzt werden, bei denen Aufgaben durch ferne Verarbeitungsvorrichtungen durchgeführt werden können, die durch ein Kommunikationsnetz verknüpft sind.Program code may be implemented in programs executing on programmable machines, such as mobile or stationary computers, personal digital assistants, set-top boxes, cell phones and pagers, and other electronic devices, each having a processor, a volatile, and / or nonvolatile memory readable by the processor, including at least one input device and / or one or more output devices. Program code may be applied to the data input using the input device to perform the described embodiments and generate output information. The output information may be applied to one or more output devices. One of ordinary skill in the art will understand that embodiments of the disclosed subject matter may be implemented with various computer system configurations, including multiple processor or multi-core processor systems, minicomputers, mainframe computers, and ubiquitous or miniature computers or processors that may be embedded in virtually any device. Embodiments of the disclosed subject matter may also be practiced in distributed computing environments where tasks may be performed by remote processing devices that are linked by a communications network.
Obwohl Vorgänge als ein sequenzieller Prozess beschrieben sein können, können manche der Vorgänge tatsächlich parallel, gleichzeitig und/oder in einer verteilten Umgebung und mit einem Programmcode, der lokal und/oder fern zum Zugriff durch Einzel- oder Mehrfachprozessormaschinen gespeichert ist, durchgeführt werden. Außerdem kann bei manchen Ausführungsformen die Reihenfolge von Vorgängen umsortiert werden, ohne von der Idee des offenbarten Gegenstands abzuweichen. Programmcode kann durch oder in Verbindung mit eingebetteten Steuerungen verwendet werden.Although operations may be described as a sequential process, some of the operations may in fact be performed in parallel, concurrently, and / or in a distributed environment and with program code stored locally and / or remotely for access by single or multiple processor machines. Additionally, in some embodiments, the order of operations may be resorted without departing from the idea of the disclosed subject matter. Program code can be used by or in conjunction with embedded controllers.
Obwohl der offenbarte Gegenstand unter Bezugnahme auf veranschaulichende Ausführungsformen beschrieben wurde, soll diese Beschreibung nicht in einem beschränkenden Sinn aufgefasst werden. Verschiedene Modifikationen der veranschaulichenden Ausführungsformen sowie andere Ausführungsformen des Gegenstands, die für einen Fachmann auf dem Gebiet, auf das sich der offenbarte Gegenstand bezieht, offensichtlich sind, werden als innerhalb des Schutzumfangs des offenbarten Gegenstands liegend betrachtet.Although the disclosed subject matter has been described with reference to illustrative embodiments, this description is not intended to be construed in a limiting sense. Various modifications of the illustrative embodiments as well as other embodiments of the subject that will be apparent to those skilled in the art to which the disclosed subject matter pertains are considered to be within the scope of the disclosed subject matter.
Claims (23)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/816,901 | 2017-11-17 | ||
US15/816,901 US10594491B2 (en) | 2015-12-24 | 2017-11-17 | Cryptographic system memory management |
Publications (1)
Publication Number | Publication Date |
---|---|
DE102018125786A1 true DE102018125786A1 (en) | 2019-05-23 |
Family
ID=66336541
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102018125786.4A Pending DE102018125786A1 (en) | 2017-11-17 | 2018-10-17 | Encrypted system memory management |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN109800103A (en) |
DE (1) | DE102018125786A1 (en) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11321469B2 (en) | 2019-06-29 | 2022-05-03 | Intel Corporation | Microprocessor pipeline circuitry to support cryptographic computing |
US11403234B2 (en) | 2019-06-29 | 2022-08-02 | Intel Corporation | Cryptographic computing using encrypted base addresses and used in multi-tenant environments |
US11575504B2 (en) | 2019-06-29 | 2023-02-07 | Intel Corporation | Cryptographic computing engine for memory load and store units of a microarchitecture pipeline |
US11580035B2 (en) | 2020-12-26 | 2023-02-14 | Intel Corporation | Fine-grained stack protection using cryptographic computing |
US11669625B2 (en) | 2020-12-26 | 2023-06-06 | Intel Corporation | Data type based cryptographic computing |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102019128528A1 (en) * | 2019-10-22 | 2021-04-22 | Infineon Technologies Ag | DATA CRYPTOGRAPHY DEVICES AND STORAGE SYSTEMS |
-
2018
- 2018-10-17 DE DE102018125786.4A patent/DE102018125786A1/en active Pending
- 2018-10-17 CN CN201811209775.4A patent/CN109800103A/en active Pending
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11321469B2 (en) | 2019-06-29 | 2022-05-03 | Intel Corporation | Microprocessor pipeline circuitry to support cryptographic computing |
US11403234B2 (en) | 2019-06-29 | 2022-08-02 | Intel Corporation | Cryptographic computing using encrypted base addresses and used in multi-tenant environments |
US11416624B2 (en) | 2019-06-29 | 2022-08-16 | Intel Corporation | Cryptographic computing using encrypted base addresses and used in multi-tenant environments |
US11575504B2 (en) | 2019-06-29 | 2023-02-07 | Intel Corporation | Cryptographic computing engine for memory load and store units of a microarchitecture pipeline |
US11580234B2 (en) * | 2019-06-29 | 2023-02-14 | Intel Corporation | Implicit integrity for cryptographic computing |
US11620391B2 (en) | 2019-06-29 | 2023-04-04 | Intel Corporation | Data encryption based on immutable pointers |
US11768946B2 (en) | 2019-06-29 | 2023-09-26 | Intel Corporation | Low memory overhead heap management for memory tagging |
US11829488B2 (en) | 2019-06-29 | 2023-11-28 | Intel Corporation | Pointer based data encryption |
US11580035B2 (en) | 2020-12-26 | 2023-02-14 | Intel Corporation | Fine-grained stack protection using cryptographic computing |
US11669625B2 (en) | 2020-12-26 | 2023-06-06 | Intel Corporation | Data type based cryptographic computing |
Also Published As
Publication number | Publication date |
---|---|
CN109800103A (en) | 2019-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE102018125786A1 (en) | Encrypted system memory management | |
US20220094553A1 (en) | Cryptographic system memory management | |
DE102019102229A1 (en) | Techniques for detecting and correcting errors in data | |
DE102018115491A1 (en) | SYSTEM, APPARATUS AND METHOD FOR SIDE GRANULAR, SOFTWARE CONTROLLED MEMORY ENCRYPTION WITH SEVERAL KEYS | |
US10802910B2 (en) | System for identifying and correcting data errors | |
US10303622B2 (en) | Data write to subset of memory devices | |
DE102019109088A1 (en) | KEY AND SENSITIVE DATA PROTECTION AGAINST ATTACKS IN A MICROPROCESSOR ARCHITECTURE | |
DE112017000220T5 (en) | Effective secure data section encrypted with a secret key | |
EP3259698B1 (en) | Autonomously booting system with a security module | |
US20140281784A1 (en) | Systems and Methods for Data Repair | |
DE102013213568A1 (en) | Secure storage and signature | |
DE102018115267A1 (en) | TECHNOLOGIES FOR MEMORY PLAYBACK PREVENTION USING COMPRESSING ENCRYPTION | |
US10725861B2 (en) | Error correction code memory security | |
US20170220257A1 (en) | Memory device write based on mapping | |
DE102019128528A1 (en) | DATA CRYPTOGRAPHY DEVICES AND STORAGE SYSTEMS | |
DE102019110440A1 (en) | Replay protection for storage based on key refresh | |
DE112017005005T5 (en) | SYSTEMS, DEVICES, AND METHOD FOR PLATFORMS SAFETY | |
DE112021000648T5 (en) | STORAGE DEVICE RESISTANT TO CYBER ATTACKS AND MALFUNCTIONS | |
DE102020134250A1 (en) | System, apparatus and method for providing protection against silent data corruption in a connection | |
DE102019119831A1 (en) | Encryption circuit for performing virtual encryption operations | |
DE102016102590A1 (en) | DATA PROCESSING DEVICES AND METHOD FOR RECONSTRUCTING A PUF VALUE | |
DE102005031611B4 (en) | Proof of a change in the data of a data record | |
DE102018105848B4 (en) | CPU error correction during erasure code encoding | |
US11528126B2 (en) | Interface for revision-limited memory | |
DE10316951A1 (en) | Method for checking the data integrity of software in ECUs |