DE102020200748A1 - DEVICE AND ENCRYPTION METHOD - Google Patents
DEVICE AND ENCRYPTION METHOD Download PDFInfo
- Publication number
- DE102020200748A1 DE102020200748A1 DE102020200748.9A DE102020200748A DE102020200748A1 DE 102020200748 A1 DE102020200748 A1 DE 102020200748A1 DE 102020200748 A DE102020200748 A DE 102020200748A DE 102020200748 A1 DE102020200748 A1 DE 102020200748A1
- Authority
- DE
- Germany
- Prior art keywords
- memory address
- address
- input memory
- encryption
- input
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1408—Protection against unauthorised use of memory or access to memory by using cryptography
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1052—Security improvement
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Storage Device Security (AREA)
Abstract
Es wird eine Vorrichtung zum Verschlüsseln einer Eingangsspeicheradresse zum Erhalten einer verschlüsselten Speicheradresse bereitgestellt. Die Einrichtung umfasst eine Eingangsschnittstelle zum Empfangen der Eingangsspeicheradresse als eine Adresse eines Speichers. Weiterhin umfasst die Einrichtung ein Verschlüsselungsmodul zum Verschlüsseln der Eingangsspeicheradresse in Abhängigkeit von einem kryptografischen Schlüssel zum Erhalten der verschlüsselten Speicheradresse. Das Verschlüsselungsmodul ist zum Verschlüsseln der Eingangsspeicheradresse durch Anlegen einer die Eingangsspeicheradresse auf die verschlüsselte Speicheradresse abbildenden Abbildung eingerichtet, wobei das Verschlüsselungsmodul, zum Anlegen der Abbildung durch Durchführen einer Multiplikation und einer Modulo-Operation unter Verwendung des kryptografischen Schlüssels und eines Divisors der Modulo-Operation eingerichtet ist, so dass die Abbildung bijektiv ist.An apparatus for encrypting an input memory address to obtain an encrypted memory address is provided. The device includes an input interface for receiving the input memory address as an address of a memory. Furthermore, the device comprises an encryption module for encrypting the input memory address as a function of a cryptographic key for obtaining the encrypted memory address. The encryption module is set up to encrypt the input memory address by applying an image that maps the input memory address to the encrypted memory address, the encryption module being set up to apply the image by performing a multiplication and a modulo operation using the cryptographic key and a divisor of the modulo operation is so that the mapping is bijective.
Description
Die vorliegende Erfindung betrifft Verschlüsselung und insbesondere eine Einrichtung und ein Verfahren zur Speicheradressenverschlüsselung.The present invention relates to encryption, and in particular to a device and a method for memory address encryption.
Speicher- und Adressenverschlüsselung gewinnen immer mehr an Bedeutung.Memory and address encryption are becoming increasingly important.
Auf einer Steuerung in einer Chipkarte oder einer ähnlichen Sicherheitsvorrichtung unterliegt die Ausführung von Speicherverschlüsselung und insbesondere Adressenverschlüsselung strengen Strom-, Bereichs- und Zeitgabebeschränkungen.On a controller in a chip card or a similar security device, the execution of memory encryption and in particular address encryption is subject to strict current, area and timing restrictions.
Es wäre sehr nutzbringend, wenn verbesserte Konzepte für Speicher- und Adressenverschlüsselung bereitgestellt werden würden.It would be very beneficial if improved concepts for memory and address encryption were provided.
Die Aufgabe der vorliegenden Erfindung besteht darin, eine Einrichtung zum Verschlüsseln einer Eingangsspeicheradresse, eine Vorrichtung, ein Verfahren zum Verschlüsseln einer Eingangsspeicheradresse oder ein Computerprogramm mit verbesserten Charakteristika zu schaffen.The object of the present invention is to provide a device for encrypting an input memory address, a device, a method for encrypting an input memory address or a computer program with improved characteristics.
Diese Aufgabe wird gelöst durch eine Einrichtung zum Verschlüsseln einer Eingangsspeicheradresse gemäß Anspruch 1, eine Vorrichtung gemäß Anspruch 10, ein Verfahren zum Verschlüsseln einer Eingangsspeicheradresse gemäß Anspruch 11 oder ein Computerprogramm gemäß Anspruch 14.This object is achieved by a device for encrypting an input memory address according to claim 1, a device according to claim 10, a method for encrypting an input memory address according to claim 11 or a computer program according to claim 14.
Nach einer Ausführungsform wird eine Einrichtung zum Verschlüsseln einer Eingangsspeicheradresse zum Erhalten einer verschlüsselten Speicheradresse bereitgestellt. Die Einrichtung umfasst eine Eingangsschnittstelle zum Empfangen der Eingangsspeicheradresse als eine Adresse eines Speichers. Weiterhin umfasst die Einrichtung ein Verschlüsselungsmodul zum Verschlüsseln der Eingangsspeicheradresse in Abhängigkeit von einem kryptografischen Schlüssel zum Erhalten der verschlüsselten Speicheradresse. Das Verschlüsselungsmodul ist zum Verschlüsseln der Eingangsspeicheradresse durch Anlegen einer die Eingangsspeicheradresse abbildenden Abbildung an die verschlüsselte Speicheradresse, wobei das Verschlüsselungsmodul zum Anlegen der Abbildung durch Durchführen einer Multiplikation und einer Modulo-Operation unter Verwendung des kryptografischen Schlüssels und eines Divisors der Modulo-Operation eingerichtet ist, so dass die Abbildung bijektiv ist.According to one embodiment, a device is provided for encrypting an input memory address to obtain an encrypted memory address. The device includes an input interface for receiving the input memory address as an address of a memory. Furthermore, the device comprises an encryption module for encrypting the input memory address as a function of a cryptographic key for obtaining the encrypted memory address. The encryption module is for encrypting the input memory address by applying an image representing the input memory address to the encrypted memory address, the encryption module being designed for applying the image by performing a multiplication and a modulo operation using the cryptographic key and a divisor of the modulo operation, so the mapping is bijective.
Nach einer weiteren Ausführungsform wird eine Einrichtung zum Verschlüsseln einer Eingangsspeicheradresse zum Erhalten einer verschlüsselten Speicheradresse bereitgestellt. Die Einrichtung umfasst eine Eingangsschnittstelle zum Empfangen der Eingangsspeicheradresse als eine Adresse eines Speichers. Weiterhin umfasst die Einrichtung ein Segmentierungsmodul zum Segmentieren der Eingangsspeicheradresse in eine Vielzahl von Eingangsspeicheradresssegmenten. Weiterhin umfasst die Einrichtung ein Verschlüsselungsmodul zum Verschlüsseln jedes Eingangsspeicheradresssegments der Vielzahl von Eingangsspeicheradresssegmenten in Abhängigkeit von einem einer Vielzahl von kryptografischen Nebenschlüsseln. Das Verschlüsselungsmodul ist eingerichtet zum Verschlüsseln dieses Eingangsspeicheradresssegments durch Anlegen einer das Eingangsspeicheradresssegment abbildenden Abbildung an ein verschlüsseltes Speicheradresssegment, wobei dieses verschlüsselte Speicheradresssegment eines einer Vielzahl von verschlüsselten Speicheradresssegmenten ist, wobei das Verschlüsselungsmodul zum Anlegen der Abbildung durch Durchführen einer Multiplikation und einer Modulo-Operation unter Verwendung eines der Vielzahl von kryptografischen Nebenschlüsseln und eines einer Vielzahl von Divisoren eingerichtet ist, so dass die Abbildung bijektiv ist. Zusammen bilden die verschlüsselten Speicheradresssegmente der Vielzahl von verschlüsselten Speicheradresssegmenten die verschlüsselte Speicheradresse.According to a further embodiment, a device for encrypting an input memory address is provided to obtain an encrypted memory address. The device includes an input interface for receiving the input memory address as an address of a memory. Furthermore, the device comprises a segmentation module for segmenting the input memory address into a plurality of input memory address segments. Furthermore, the device comprises an encryption module for encrypting each input memory address segment of the plurality of input memory address segments as a function of one of a plurality of cryptographic subkeys. The encryption module is configured to encrypt this input memory address segment by applying an image representing the input memory address segment to an encrypted memory address segment, this encrypted memory address segment being one of a plurality of encrypted memory address segments, the encryption module being used to create the image by performing a multiplication and a modulo operation one of the plurality of cryptographic sub-keys and one of a plurality of divisors is set up so that the mapping is bijective. Together, the encrypted memory address segments of the plurality of encrypted memory address segments form the encrypted memory address.
Nach einer weiteren Ausführungsform wird eine Einrichtung mit einem Speicher, einer Zentraleinheit zum Verarbeiten von an Speicheradressen im Speicher gespeicherten Daten und eine Adressenverschlüsselungseinheit zum Verschlüsseln einer Eingangsspeicheradresse des Speichers zum Erhalten einer verschlüsselten Speicheradresse bereitgestellt. Die Adressenverschlüsselungseinheit umfasst eine Eingangsschnittstelle zum Empfangen der Eingangsspeicheradresse und ein Verschlüsselungsmodul zum Verschlüsseln der Eingangsspeicheradresse in Abhängigkeit von einem kryptografischen Schlüssel zum Erhalten der verschlüsselten Speicheradresse. Das Verschlüsselungsmodul ist zum Verschlüsseln der Eingangsspeicheradresse durch Anlegen einer die Eingangsspeicheradresse auf die verschlüsselte Speicheradresse abbildenden Abbildung eingerichtet. Das Verschlüsselungsmodul ist zum Anlegen der Abbildung durch Durchführen einer Multiplikation und einer Modulo-Operation unter Verwendung des kryptografischen Schlüssels und eines Divisors der Modulo-Operation eingerichtet, so dass die Abbildung bijektiv ist.According to a further embodiment, a device is provided with a memory, a central unit for processing data stored in memory addresses in memory and an address encryption unit for encrypting an input memory address of the memory in order to obtain an encrypted memory address. The address encryption unit comprises an input interface for receiving the input memory address and an encryption module for encrypting the input memory address as a function of a cryptographic key for obtaining the encrypted memory address. The encryption module is set up to encrypt the input memory address by creating an image that maps the input memory address to the encrypted memory address. The encryption module is set up to create the image by performing a multiplication and a modulo operation using the cryptographic key and a divisor of the modulo operation, so that the image is bijective.
Die Einrichtung nach einer weiteren Ausführungsform wird bereitgestellt. Die Einrichtung umfasst eine ZE zum Bereitstellen einer ursprünglichen logischen Adresse, eine MMU zum Erzeugen einer verschobenen logischen Adresse in Abhängigkeit von der ursprünglichen logischen Adresse, eine Adressenverschlüsselungseinheit zum Verschlüsseln der verschobenen logischen Adresse zum Erhalten einer physikalischen Adresse, wobei die Adressenverschlüsselungseinheit eine Eingangsschnittstelle zum Empfangen der verschobenen logischen Adresse umfasst und weiterhin ein Verschlüsselungsmodul zum Verschlüsseln der verschobenen logischen Adresse in Abhängigkeit von einem kryptografischen Schlüssel zum Erhalten der physikalischen Adresse umfasst, wobei das Verschlüsselungsmodul zum Verschlüsseln der verschobenen logischen Adresse durch Anlegen einer die verschobene logische Adresse auf die physikalische Adresse abbildenden Abbildung eingerichtet ist, wobei das Verschlüsselungsmodul zum Anlegen der Abbildung durch Durchführen einer Multiplikation und einer Modulo-Operation unter Verwendung des kryptografischen Schlüssels und eines Divisors der Modulo-Operation eingerichtet ist, so dass die Abbildung bijektiv ist, eine Datenverschlüsselungs/Entschlüsselungseinheit zum Verschlüsseln erster Klartextdaten zum Erhalten erster Chiffretextdaten und zum Entschlüsseln zweiter Chiffretextdaten zum Erhalten zweiter Klartextdaten, eine Schlüsselspeicherung zum Speichern des kryptografischen Schlüssels und einen Speicher, eingerichtet entweder zum Speichern der ersten Chiffretextdaten an der physikalischen Adresse oder zum Bereitstellen der zweiten an der physikalischen Adresse gespeicherten Chiffretextdaten für das Datenverschlüsselungs/Entschlüsselungsmodul.The device according to a further embodiment is provided. The device comprises a ZE for providing an original logical address, an MMU for generating a shifted logical address depending on the original logical address, an address encryption unit for encrypting the shifted logical address for obtaining a physical address, the address encryption unit one Input interface for receiving the shifted logical address and further comprises an encryption module for encrypting the shifted logical address depending on a cryptographic key to obtain the physical address, the encryption module for encrypting the shifted logical address by applying a shifted logical address to the physical Address mapping mapping is set up, wherein the encryption module is set up to create the mapping by performing a multiplication and a modulo operation using the cryptographic key and a divisor of the modulo operation, so that the mapping is bijective, a data encryption / decryption unit for encryption first plain text data for obtaining first cipher text data and for decrypting second cipher text data for obtaining second clear text data, a key storage for storing d It cryptographic key and a memory, configured either to store the first ciphertext data at the physical address or to provide the second ciphertext data stored at the physical address for the data encryption / decryption module.
Nach einer weiteren Ausführungsform wird ein Verfahren zum Verschlüsseln einer Eingangsspeicheradresse zum Erhalten einer verschlüsselten Speicheradresse bereitgestellt. Das Verfahren umfasst:
- - Enpfangen der Eingangsspeicheradresse als eine Adresse eines Speichers und:
- - Verschlüsseln der Eingangsspeicheradresse in Abhängigkeit von einem kryptografischen Schlüssel zum Erhalten der verschlüsselten Speicheradresse.
- Receiving the input memory address as an address of a memory and:
- - Encrypting the input memory address depending on a cryptographic key to obtain the encrypted memory address.
Verschlüsseln der Eingangsspeicheradresse umfasst Anlegen einer die Eingangsspeicheradresse auf die verschlüsselte Speicheradresse abbildenden Abbildung durch Durchführen einer Multiplikation und einer Modul-Operation unter Verwendung des kryptografischen Schlüssels und eines Divisors der Modulo-Operation, so dass die Abbildung bijektiv ist.Encrypting the input memory address includes creating an image mapping the input memory address to the encrypted memory address by performing multiplication and module operation using the cryptographic key and divisor of the modulo operation so that the image is bijective.
Nach einer weiteren Ausführungsform wird ein Verfahren zum Verschlüsseln einer Eingangsspeicheradresse zum Erhalten einer verschlüsselten Speicheradresse bereitgestellt. Das Verfahren umfasst:
- - Empfangen der Eingangsspeicheradresse als eine Adresse eines Speichers,
- - Segmentieren der Eingangsspeicheradresse in eine Vielzahl von Eingangsspeicheradresssegmenten, und
- - Verschlüsseln jedes Eingangsspeicheradresssegments der Vielzahl von Eingangspeicheradresssegmenten in Abhängigkeit von einem einer Vielzahl von kryptografischen Nebenschlüsseln zum Erhalten der verschlüsselten Speicheradresse, wobei Verschlüsseln des Eingangsspeicheradresssegments Anlegen einer das Eingangsspeicheradresssegment auf ein verschlüsseltes Speicheradresssegment einer Vielzahl von verschlüsselten Speicheradresssegmenten abbildenden Abbildung durch Durchführen einer Multiplikation und einer Modulo-Operation unter Verwendung eines der Vielzahl von kryptografischen Nebenschlüsseln und eines einer Vielzahl von Divisoren umfasst, so dass die Abbildung bijektiv ist,
- Receiving the input memory address as an address of a memory,
- Segmenting the input memory address into a plurality of input memory address segments, and
- Encrypting each input memory address segment of the plurality of input memory address segments in dependence on one of a multiplicity of cryptographic subkeys to obtain the encrypted memory address, wherein encrypting the input memory address segment applying a mapping the input memory address segment to an encrypted memory address segment by performing a multiplicity of encrypted memory address segments and mapping an image mapping Surgery using one of the plurality of cryptographic sub-keys and one of a plurality of divisors, so that the mapping is bijective,
Zusammen bilden die verschlüsselten Speicheradresssegmente der Vielzahl von verschlüsselten Speicheradresssegmenten die verschlüsselte Speicheradresse.Together, the encrypted memory address segments of the plurality of encrypted memory address segments form the encrypted memory address.
Ehe Ausführungsformen der vorliegenden Erfindung ausführlich unter Verwendung der beiliegenden Figuren beschrieben werden, ist darauf hinzuweisen, dass den gleichen oder funkionsmäßig gleichen Elementen die gleichen Bezugsziffern in den Figuren erteilt werden und dass eine wiederholte Beschreibung für mit den gleichen Bezugsziffern versehene Elemente weggelassen wird. Für Elemente mit den gleichen Bezugsziffern vorgesehene Beschreibungen sind daher gegenseitig austauschbar.Before embodiments of the present invention are described in detail using the accompanying figures, it should be noted that the same or functionally identical elements are given the same reference numerals in the figures and a repeated description for elements provided with the same reference numerals is omitted. Descriptions provided for elements with the same reference numbers are therefore interchangeable.
Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf die beigefügten Zeichnungen näher erläutert. Es zeigen:
-
1 eine Einrichtung zum Verschlüsseln einer Eingangsspeicheradresse zum Erhalten einer verschlüsselten Speicheradresse nach einer Ausführungsform, -
2 einVerschlüsselungsmodul 120 nach einer Ausführungsform, -
3 eine Einrichtung zum Verschlüsseln einer Eingangsspeicheradresse zum Erhalten einer verschlüsselten Speicheradresse nach einer Ausführungsform, -
4 eine Einrichtung mit einemSpeicher 410 , einer ZE420 und einerAdressenverschlüsselungseinheit 430 nach einer Ausführungsform, -
5 einen Ansatz für Adressenverschlüsselung, -
6 einen weiteren Ansatz für Adressenverschlüsselung, -
7 einen weiteren Ansatz für Adressenverschlüsselung, -
8 die Einrichtung nach einer weiteren Ausführungsform mit einer ZE, einer MMU, einer Adressenverschlüsselungseinheit, einer Datenverschlüsselungs/Entschlüsselungseinheit, einer Schlüsselspeicherung und einem Speicher, und -
9 die Auswirkung kombinierter Datenverschlüsselung und Adressenverschlüsselung.
-
1 a device for encrypting an input memory address to obtain an encrypted memory address according to one embodiment, -
2nd anencryption module 120 according to one embodiment, -
3rd a device for encrypting an input memory address to obtain an encrypted memory address according to one embodiment, -
4th a device with amemory 410 , a ZE420 and anaddress encryption unit 430 according to one embodiment, -
5 an approach to address encryption, -
6 another approach to address encryption, -
7 another approach to address encryption, -
8th the device according to a further embodiment with a ZE, an MMU, an address encryption unit, a data encryption / decryption unit, a key storage and a memory, and -
9 the impact of combined data encryption and address encryption.
Vor der ausführlichen Beschreibung bevorzugter Ausführungsform werden einige Überlegungen über Adressenverschlüsselung geboten, die dazu beitragen, ein besseres Verständnis der bevorzugten Ausführungsformen zu bieten.Before describing the preferred embodiment in detail, some address encryption considerations are offered to help provide a better understanding of the preferred embodiments.
Adressenverschlüsselung kann als eine bijektive Abbildung f realisiert werden, z.B. eine Umsetzung von einfachen Adressen a in verschlüsselte Adressen a'. Die Abbildung wird durch einen Schlüssel k gesteuert:
Für Prüfzwecke wie beispielsweise Herstellungsprüfungen kann es wichtig sein, eine indizierte Funktion a' = fk(a) zu besitzen, für die es einen k0 genannten Kennzeichenschlüssel gibt, mit der Eigenschaft, dass er die Kennzeichenabbildung ergibt, d.h. a = fk0(a). Das bedeutet, dass Verwürfeln abgeschaltet wird.For test purposes such as manufacturing tests, it may be important to have an indexed function a '= f k (a) for which there is a label key called k 0 , with the property that it yields the label mapping , i.e. a = f k0 ( a). This means that scrambling is switched off.
Die Ausführung einer solchen Funktion kann in einer Mikrosteuerungsarchitektur aus mehreren Gründen kritisch sein. Beispielsweise führt jegliche Verzögerung auf dem Adressweg von der Steuerung zum Speicher (siehe Figur: Weg von MMU zu Speicher) zur Verschlechterung der Systemleistung. Wenn die Ausführung eine große Anzahl von Gatterverzögerungen benötigt, werden zusätzliche Taktzyklen für den Speicherzugriff benötigt. Weiterhin führen komplizierte Auslegungen zu einem hohen Stromverbrauch, da Speicheradressierung häufig auftritt.Executing such a function can be critical in a microcontroller architecture for several reasons. For example, any delay in the address path from the controller to the memory (see figure: path from MMU to memory) leads to a deterioration in system performance. If the execution requires a large number of gate delays, additional clock cycles are required for memory access. Furthermore, complicated designs lead to high power consumption since memory addressing occurs frequently.
Es kann häufig ausreichen, dass die Adressenverschlüsselung nicht kryptografisch hart ist, aber dass genügend Verwürfeln vorgesehen wird, um nachfolgende Angriffe härter zu machen. Beispielsweise wird durch Adressenverwürfelung die für eine Kryptoanalyse der Speicherverschlüsselung von Daten notwendige Kennzeichnung von Datenblöcken viel schwieriger. Zweitens wird durch Adressenverwürfelung die Kennzeichnung von Speicherblöcken für nachfolgende Fehlereinkopplungsattacken viel schwieriger.It can often be sufficient that the address encryption is not cryptographically hard, but that enough scrambling is provided to make subsequent attacks harder. For example, address scrambling makes the identification of data blocks necessary for cryptanalysis of the storage encryption of data much more difficult. Second, address scrambling makes labeling blocks of memory for subsequent error coupling attacks much more difficult.
Adressenverschlüsselung kann durch einen ersten Ansatz wie durch
Vorteile dieses Ansatzes sind eine minimale Gatterzählung, eine minimale Leistungsauswirkung aufgrund der minimalen Schaltungstiefe (es wird nur eine Gatterverzögerung zugefügt), und ein Vorliegen eines Kennzeichnungsschlüssels. Für k = 0 ist Verwürfeln deaktiviert. Jedoch realisiert ein solcher Ansatz nur eine lineare Abbildung, d.h. ein solcher Ansatz weist überhaupt keine kryptografische Stärke auf. Der Ansatz fungiert auf bitweiser Basis, d.h. es besteht keine Vermischung von Bit. Er kann daher umgearbeitet und leicht aufgebrochen werden. Daraus ergibt sich eine geringe Endsicherheit.Advantages of this approach are minimal gate counting, minimal performance impact due to minimal circuit depth (only a gate delay is added), and an identification key. Scrambling is deactivated for k = 0. However, such an approach only realizes a linear mapping, i.e. such an approach has no cryptographic strength at all. The approach works on a bit-by-bit basis, i.e. there is no mixing of bits. It can therefore be reworked and easily broken open. This results in a low final security.
Durch Abändern des Ansatzes der
Alternativ kann Adressenverschlüsselung durch einen zweiten Ansatz wie durch
Ein Vorteil eines solchen Ansatzes besteht in seiner hohen kryptografischen Stärke, wenn eine starke Chiffre benutzt wird. Nachteile sind eine hohe Gatterzählung, eine drastische Leistungsverschlechterung, da Blockchiffren rund basiert sind und kryptografisch harte Blockchiffren eine hohe Rundennummer benötigen, z.B. 16 für DES oder 10 für AES-128. Die kritische Zugriffszeit auf den Speicher wird daher durch einen enormen Faktor vergrößert, da mehrere zusätzliche Taktzyklen in der Adressphase benötigt werden und es gewöhnlich keinen (bekannten) Kennzeichnungsschlüssel gibt. Die Kennzeichnungsabbildung muss durch einen Multiplexoren benutzenden Nebenweg realisiert werden.An advantage of such an approach is its high cryptographic strength when a strong cipher is used. Disadvantages are a high gate count, a drastic deterioration in performance, since block ciphers are round-based and cryptographically hard block ciphers require a high round number, e.g. 16 for DES or 10 for AES-128. The critical access time to the memory is therefore increased by an enormous factor, since several additional clock cycles are required in the address phase and there is usually no (known) identification key. The labeling must be implemented by a secondary path using multiplexors.
Der durch
Alternativ kann Adressenverschlüsselung durch einen dritten Ansatz wie durch
Im Grund entspricht dies einer Runde einer klassischen Block-Chiffre (siehe b) mit einer S-Box-Schicht, einem Schlüsseladdierungsschritt und wahlweise einer linearen Diffusionsschicht.Basically, this corresponds to a round of a classic block cipher (see b) with an S-box layer, a key addition step and optionally a linear diffusion layer.
Ein Vorteil dieses Ansatzes besteht darin, dass er so aufgebaut werden kann, dass ein Kennzeichnungsschlüssel besteht. Nachteile sind jedoch dass selbst kleine S-Boxen wie 4x4 S-Boxen bereits eine hohe Gatterzählung und eine hohe Schaltungstiefe aufweisen. Sie tragen gewöhnlich mit einer bedeutsamen Anzahl von Gatterverzögerungen bei, was die Leistung des Speicherzugriffs verschlechtert. Als Folge könnte ein zusätzlicher Taktzyklus in der Adressphase benötigt sein. Weiterhin weist ein solcher Ansatz nur eine mittlere kryptografische Stärke auf. Dem durch
Bevorzugte Ausführungsformen vermeiden die Nachteile der durch
Die Einrichtung umfasst eine Eingangsschnittstelle
Weiterhin umfasst die Einrichtung ein Verschlüsselungsmodul
Das Verschlüsselungsmodul
Das Verschlüsselungsmodul
Nach einer Ausführungsform können die Eingangsspeicheradresse, die verschlüsselte Speicheradresse, der kryptografische Schlüssel
In einigen Ausführungsformen kann der Divisor
In einigen Ausführungsformen kann jedoch der Divisor
Zum Beispiel betrachte man als vereinfachtes Beispiel, dass:
Dann können die Bit der Bitfolge Koeffizienten eines Polynoms über dem Galois-Feld GF(2) darstellen:
Demgegenüber ist ein Polynom x2 ein reduzierbares Polynom, da x2 = x · x.In contrast, a polynomial x 2 is a reducible polynomial since x 2 = x · x.
Beispielsweise können einige Ausführungen die allgemeine Regel anwenden, dass eine Bitfolge:
Es ist weiterhin zu bemerken, dass nach Ausführungsformen beispielsweise
(z.B. zuerst Multiplikation von a und k; dann Modulo-Teilung des Ergebnisses durch p).It should also be noted that according to embodiments, for example
(eg first multiplication of a and k; then modulo division of the result by p).
Nach einer bestimmten Ausführungsform werden die Adresse a und der Schlüssel k als Elemente eines Polynomrings betrachtet, z.B. das Erweiterungsfeld Fq[x] /(p), wobei p ein nichtreduzierbares Polynom ist.According to a specific embodiment, the address a and the key k are regarded as elements of a polynomial ring, for example the extension field F q [x] / (p), where p is a non-reducible polynomial.
In einer bestimmten Ausführungsform wird die Kenngröße q=2 gewählt, so dass Adressbitbereiche Feldelementen zugewiesen werden können.In a specific embodiment, the parameter q = 2 is selected so that address bit areas can be assigned to field elements.
Dann kann die Adressenverschlüsselung als eine modulare Multiplikation beschrieben werden.
Nach anderen Ausführungsformen wird ein Hilfschlüssel b eingesetzt, so dass:
Hier bezeichnet „+“ die Addition im Feld, z.B. exklusives-Oder (⊕) für q = 2.Here "+" denotes the addition in the field, e.g. exclusive-or (⊕) for q = 2.
Für einen festen, z.B. vorgewählten Wert von k ≠ 0 und nichtreduzierbares p ist die Abbildung bijektiv und erzeugt eine Umsetzung des Satzes ursprünglicher Adresswerte. Aufgrund dieser Eigenschaft kann die Polynomringoperation als Adressenverschlüsselung benutzt werden.For a fixed, e.g. The preselected value of k ≠ 0 and non-reducible p is bijective and generates an implementation of the set of original address values. Due to this property, the polynomial ring operation can be used as address encryption.
Im Vergleich mit dem Stand der Technik sind die hier vorgesehenen Ausführungsformen für wirkungsvolle Adressenverwürflung besonders vorteilhaft.In comparison with the prior art, the embodiments provided here are particularly advantageous for effective address scrambling.
Beispielsweise kann allgemein die Feldmultiplikation so ausgeführt werden, dass sie mit nur wenigen Gatterverzögerungen durchgeführt wird. Das bedeutet, dass sie fliegend innerhalb des Adresstaktzyklus durchgeführt werden kann (es wird kein zusätzlichter Taktzyklus benötigt). Für spärliche Polynome p ist die Gatterverzögerung der Schaltung sehr klein.For example, the field multiplication can generally be carried out in such a way that it is carried out with only a few gate delays. This means that it can be performed on the fly within the address clock cycle (no additional clock cycle is required). For sparse polynomials p, the gate delay of the circuit is very small.
Weiterhin sind Flächen- und Stromverbrauch im Vergleich zu Lösungen des Standes der Technik kleiner.Furthermore, area and power consumption are smaller compared to solutions of the prior art.
Weiterhin ist die Sicherheit im Vergleich zu dem oben beschriebenen „Xor“-Ansatz des Standes der Technik verbessert und mit dem oben beschriebenen Ansatz des Standes der Technik „S-Box-Schicht“ vergleichbar, aber mit bedeutend verringerten Flächen- und Stromkosten. Ein wohlgewähltes Polynom wird eine hoch nichtlineare Vermischung der Adressbit erzeugen.Furthermore, the security is improved compared to the “Xor” approach of the prior art described above and is comparable to the above-described approach of the prior art “S-box layer”, but with significantly reduced area and electricity costs. A well-chosen polynomial will produce a highly non-linear mix of the address bits.
Weiterhin könnte nach Ausführungsformen ein natürlicher Kennzeichenschlüssel k = 1 bestehen, was für Erzeugungsprüfzwecke nützlich ist. So ist nach einigen Ausführungsformen die Einrichtung zum Auswählen eines Kennzeichenschlüssels als der Verschlüsselungsschlüssel k konfigurierbar, so dass
Nach Ausführungsformen ergibt ein Null-Schlüssel a' = 0. Dieser kann als Sicherheitsgegenmaßnahme benutzt werden: Wenn ein Angriff erkannt wird, kann der Schlüssel auf Nur-Null gelöscht werden. In diesem Fall wird jeder Zugriff auf Adresse 0 abgebildet (oder eine feste Adresse b, wenn die affine Variante eingesetzt wird). Es ist vorteilhaft, dass diese Adresse nur Leerdaten enthält, so dass der Angreifer von dann an nur Leerdaten lesen wird. So ist nach einigen Ausführungsformen die Einrichtung zum Auswählen eines Nullschlüssels als der Verschlüsselungsschlüssel k konfigurierbar, so dass
Nach einigen Ausführungsformen ist das Verschlüsselungsmodul
In einigen Ausführungsformen ist die Einrichtung zum Auswählen eines Kennzeichnungsschlüssels als der Verschlüsselungsschlüssel k konfigurierbar, so dass
Nach einigen Ausführungsformen ist die Einrichtung zum Auswählen eines Nullschlüssels als der Verschlüsselungsschlüssel k konfigurierbar, so dass a k (mod p) + b = b.In some embodiments, the means for selecting a zero key is configurable as the encryption key k such that a k (mod p) + b = b.
Einige Ausführungsformen bieten Versionen der oben beschriebenen Konzepte mit segmentierten Adressbereichen. Das dargestellte Adressenverwürfelungsverfahren kann auch auf segmentierte Adressräume angewandt werden. Eine Adressenkörnigkeit kann durch die Speicherhierarchie der Steuerung eingeführt werden. Beispielsweise enthält ein nichtflüchtiger Speicher eine Anzahl von Ns Segmenten (die zu einer Zeit gelöscht werden können), von denen jedes eine Anzahl von Nb Blöcken enthält (die zu einer Zeit programmiert werden), von denen jeder eine Anzahl von Nw Worten enthält (bestimmt durch die Prozessor-Wortbreite), von denen jedes eine Anzahl von Nb Byte enthält. Bei Anwendung von Verwürfelung ist es in der Praxis nur möglich, eine Dateneinheit innerhalb der gleichen Muttereinheit mit einer anderen Dateneinheit auszutauschen. Beispielsweise können nur Blöcke im gleichen Segment ausgetauscht werden, nur Worte im gleichen Block ausgetauscht werden usw.Some embodiments offer versions of the concepts described above with segmented address ranges. The address scrambling method shown can also be applied to segmented address spaces. Address granularity can be introduced through the controller's memory hierarchy. For example, non-volatile memory contains a number of N s segments (which can be erased at one time), each of which contains a number of N b blocks (which are programmed at a time), each of which contains a number of N w words (determined by the processor word width), each of which contains a number of N b bytes. When using scrambling, it is only possible in practice to exchange a data unit within the same parent unit with another data unit. For example, only blocks in the same segment can be exchanged, only words in the same block can be exchanged, etc.
Dementsprechend zeigt
Die Einrichtung umfasst eine Eingangsschnittstelle
Weiterhin umfasst die Einrichtung ein Segmentierungsmodul
Weiterhin umfasst die Einrichtung ein Verschlüsselungsmodul
Zusammen bilden die verschlüsselten Speicheradresssegmente der Vielzahl verschlüsselter Speicheradresssegmente die verschlüsselte Speicheradresse.Together, the encrypted memory address segments of the plurality of encrypted memory address segments form the encrypted memory address.
In einer Ausführungsform zeigt jedes der Vielzahl von Eingangsspeicheradresssegmenten ein Polynom einer ersten Gruppe von Polynomen an, wobei jedes der Vielzahl von verschlüsselten Speicheradresssegmenten ein Polynom einer zweiten Gruppe von Polynomen anzeigt, wobei jeder der Vielzahl von kryptografischen Nebenschlüsseln ein drittes Polynom anzeigt und wobei jeder der Vielzahl von Divisoren ein viertes Polynom als ein nichtreduzierbares Polynom anzeigt.In one embodiment, each of the plurality of input memory address segments indicates a polynomial of a first group of polynomials, each of the plurality of encrypted memory address segments indicating a polynomial of a second group of polynomials, each of the plurality of cryptographic sub-keys indicating a third polynomial, and each of the plurality of divisors displays a fourth polynomial as an irreducible polynomial.
Nach einer Ausführungsform ist das Verschlüsselungsmodul
In einer bestimmten Ausführungsform ist die (Eingangs-) Adresse in Segmente a = (a1, a2, ..., an) aufgespaltet, beispielsweise nach der Speicherhierarchie des Systems sind Nebenschlüssel k1, k2, ..., kn aus einem Schlüssel k abgeleitet. Beispielsweise könnte eine Nebenschlüsselableitung eine Segmentierung des Schlüssels in Bitbereiche k = (k1, k2, ..., kn) sein. Verschiedene Reduzierungspolynome p1, p2, ..., pn können benutzt werden. Dann kann die Abbildung der Verwürfelungsoperation des gesamten Speichersystems beispielsweise erreicht werden durch
Da die Operationen auf allen Hierarchieebenen parallel durchgeführt werden können, ergibt sich keine zusätzliche Einbuße für die Leistung.Since the operations can be performed in parallel on all hierarchical levels, there is no additional loss in performance.
Nach einer Ausführungsform ist die Einrichtung zum Auswählen für jedes Eingangsspeicheradresssegment ai der Eingangsspeicheradresssegmente eines Kennzeichenschlüssels als der Verschlüsselungsschlüssel ki konfigurierbar, so dass ai ki (mod pi) = ai (mod pi).According to one embodiment, the device for selecting each input memory address segment a i of the input memory address segments of a label key is configurable as the encryption key k i , so that a i k i (mod p i ) = a i (mod p i ).
In einer Ausführungsform ist die Einrichtung zum Auswählen für jedes Eingangsspeicheradresssegment ai der Eingangsspeicheradresssegmente eines Nullschlüssels als der Verschlüsselungsschlüssel ki konfigurierbar, so dass ai ki (mod pi) = 0.In one embodiment, the device for selecting the input memory address segments a i of the input memory address segments of a zero key is configurable as the encryption key k i , so that a i k i (mod p i ) = 0.
Nach einer Ausführungsform ist das Verschlüsselungsmodul
In einer Ausführungsform ist die Einrichtung konfigurierbar zum Auswählen für jedes Eingangsspeicheradresssegment ai der Eingangsspeicheradresssegmente eines Kennzeichnungsschlüssels als der Verschlüsselungsschlüssel ki, so dass
Nach einer Ausführungsform ist die Einrichtung konfigurierbar zum Auswählen für jedes Eingangsspeicheradresssegment ai der Eingangsspeicheradresssegmente eines Nullschlüssels als der Verschlüsselungsschlüssel ki, so dass
Bei bestimmten Ausführungsbeispielen wird eine weitere Diversifizierung oder Verwürfelung der verschlüsselten Speicheradresssegmente bereitgestellt durch, für die Abbildung eines Eingangsspeicheradresssegments ai auf ein verschlüsseltes Speicheradresssegment ai', Verwenden eines oder mehrerer Bits aus der Eingangsspeicheradresse außer Bits der Eingangsspeicheradresse, die gerade abgebildet werden. Mit anderen Worten, alle oder ein Teil eines oder mehrerer anderer Eingangsspeicheradresssegmente können in die Abbildung eingebaut werden. So kann beispielsweise das Verschlüsselungsmodul konfiguriert sein, um für jedes eines oder mehrerer der Eingangsspeicheradresssegmente eine Multiplikation und eine Modulo-Operation auszuführen, wie oben beschrieben wurde, jedoch unter Verwendung eines oder mehrerer Bits der Eingangsspeicheradresse außer Bits des Eingangsspeicheradresssegments, das gerade abgebildet wird. Dies kann auf mehrere unterschiedliche Weisen erfolgen. Beispielsweise können bei einigen Ausführungsbeispielen ein oder mehrere Bits der Eingangsspeicheradresse in den kryptografischen Nebenschlüssel ki, eingebaut sein oder verwendet werden, um diesen zu modifizieren oder auszuwählen, oder bei anderen in einen Hilfsschlüssel bi, eingebaut sein oder verwendet werden, um diesen zu modifizieren oder auszuwählen, oder kann bei wiederum anderen eine Kombination aus bei dem erfolgen. Bei jedem beliebigen dieser sowie anderen Ausführungsbeispielen können ein oder mehrere der Eingangsspeicheradressbits in den Divisor pi eingebaut sein oder verwendet werden, um diesen zu modifizieren oder auszuwählen.In certain embodiments, further diversification or scrambling of the encrypted memory address segments is provided by mapping an input memory address segment a i to an encrypted memory address segment a i ', using one or more bits from the input memory address other than bits of the input memory address that are being mapped. In other words, all or part of one or more other input memory address segments can be built into the map. For example, the encryption module may be configured to perform multiplication and modulo operation for each of one or more of the input memory address segments, as described above, but using one or more bits of the input memory address other than bits of the input memory address segment currently being mapped. This can be done in several different ways. For example, in some embodiments, one or more bits of the input memory address may be built in or used to modify or select the cryptographic subkey k i , or in others may be built in or used in an auxiliary key b i , to modify it or to select, or a combination of which can be used with still others. In any of these and other embodiments, one or more of the input memory address bits may be built into divisor p i or used to modify or select it.
Es ist zu erkennen, dass diese Ansätze, bei denen Eingangsspeicheradressbits aus Abschnitten der Eingangsspeicheradresse außer dem Eingangsspeicheradresssegment, das gerade verschlüsselt wird, in die Abbildung eingebaut sind, die Ausgabe aus der Abbildung diversifizieren, so dass das gleiche Eingangsspeicheradresssegment abhängig von diesen anderen Bits auf unterschiedliche verschlüsselte Eingangsspeicheradresssegmente abbildet. Dies macht es für einen Angreifer schwieriger, Blöcke verschlüsselter Speicheradressen zu identifizieren, die zusammengehören, da beispielsweise ein Eingangsspeicheradresssegment, das Bits hoher Ordnung der Eingangsspeicheradresse beinhaltet, das sich nur gelegentlich ändern wird, da der Bereich von Speicheradressen der Reihe nach abgetastet wird, auf sehr unterschiedliche verschlüsselte Speicheradresssegmente abbildet, und zwar in Abhängigkeit von den Bits niedrigerer Ordnung der Eingangsspeicheradresse.It can be seen that these approaches, where input memory address bits from portions of the input memory address other than the input memory address segment that is being encrypted, are built into the map, diversify the output from the map so that the same input memory address segment is different depending on these other bits maps encrypted input memory address segments. This makes it more difficult for an attacker to identify blocks of encrypted memory addresses that belong together because, for example, an input memory address segment containing high order bits of the input memory address that will only change occasionally as the range of memory addresses is sequentially scanned for very different ones maps encrypted memory address segments depending on the lower order bits of the input memory address.
Die Adressenverschlüsselungseinheit
Das Verschlüsselungsmodul
In einigen Ausführungsformen kann die Adressenverschlüsselungseinheit
Die ZE muss Daten im Speicher
Zum Übertragen von Daten von der ZE
Die ZE
Zum Verschlüsseln von Klartextdaten und zum Entschlüsseln von Chiffretextdaten kann die Datenverschlüsselungs/Entschlüsselungseinheit
Die ZE
Zum Speichern von Daten an einer ursprünglichen logischen Adresse gibt die ZE
Die Adressenverschlüsselungseinheit
Zum Ausladen von Daten aus einer ursprünglichen logischen Adresse leitet die ZE
Zur Adressenverschlüsselung kann die Adressenverschlüsselungseinheit
Insbesondere zeigt
- -
eine ZE 810 zum Bereitstellen einer ursprünglichen logischen Adresse, - -
eine MMU 860 zum Erzeugen einer verschobenen logischen Adresse in Abhängigkeit von der ursprünglichen logischen Adresse, - -
eine Adressenverschlüsselungseinheit 830 zum Verschlüsseln der verschobenen logischen Adresse zum Erhalten einer physikalischen Adresse,wobei die Adressenverschlüsselungseinheit 830 eine Eingangsschnittstelle zum Aufnehmen der verschobenen logischen Adresse umfasst und weiterhin ein Verschlüsselungsmodul zum Verschlüsseln der verschobenen logischen Adresse in Abhängigkeit von einem kryptografischen Schlüssel zum Erhalten der physikalischen Adresse umfasst, wobei das Verschlüsselungsmodul zum Verschlüsseln der verschobenen logischen Adresse durch Anlegen einer die verschobene logische Adresse abbildenden Abbildung an die physikalische Adresse eingerichtet ist, wobei das Verschlüsselungsmodul zum Anlegen der Abbildung durch Durchführen einer Multiplikation und einer Modulo-Operation unter Verwendung des kryptografischen Schlüssels und eines Divisors der Modulo-Operation eingerichtet ist, so dass die Abbildung bijektiv ist, - - eine Datenverschlüsselungs/
Entschlüsselungseinheit 840 zum Verschlüsseln erster Klartextdaten zum Erhalten erster Chiffretextdaten und zum Entschlüsseln zweiter Chiffretextdaten zum Erhalten zweiter Klartextdaten, - -
eine Schlüsselspeicherung 850 zum Speichern des kryptografischen Schlüssels, - - und einen Speicher
820 , eingerichtet entweder zum Speichern der ersten Chiffretextdaten an der physikalischen Adresse oder zum Bereitstellen der an der physikalischen Adresse gespeicherten zweiten Chiffretextdaten für das Datenverschlüsselungs/Entschlüsselungsmodul.
- - a
ZE 810 to provide an original logical address, - - an
MMU 860 to generate a shifted logical address depending on the original logical address, - - an
address encryption unit 830 for encrypting the shifted logical address to obtain a physical address, theaddress encryption unit 830 comprises an input interface for receiving the shifted logical address and further comprises an encryption module for encrypting the shifted logical address in dependence on a cryptographic key for obtaining the physical address, the encryption module for encrypting the shifted logical address by creating an image representing the shifted logical address to the physical address, the encryption module being set up to create the image by performing a multiplication and a modulo operation using the cryptographic key and a divisor of the modulo operation, so that the image is bijective, - - a data encryption /
decryption unit 840 to encrypt first plain text data to obtain first cipher text data and to decrypt second cipher text data to obtain second clear text data, - - a
key storage 850 to save the cryptographic key, - - and a
memory 820 , set up either for storing the first ciphertext data at the physical address or for providing the second ciphertext data stored at the physical address for the data encryption / decryption module.
So wird ein Doppelschutz erreicht wie aus
Obwohl einige Aspekte im Zusammenhang mit einer Einrichtung beschrieben worden sind, ist klar, dass diese Aspekte auch eine Beschreibung des entsprechenden Verfahrens darstellen, wo ein Block oder eine Vorrichtung einem Verfahrensschritt oder einem Merkmal eines Verfahrensschritts entspricht. Analog stellen im Zusammenhang eines Verfahrensschritts beschriebene Aspekte auch eine Beschreibung einer entsprechenden Einheit oder eines entsprechenden Gegenstands oder eines entsprechenden Merkmals einer entsprechenden Einrichtung dar.Although some aspects have been described in connection with a device, it is clear that these aspects also represent a description of the corresponding method, where a block or device corresponds to a method step or a feature of a method step. Analogously, aspects described in the context of a method step also represent a description of a corresponding unit or a corresponding object or a corresponding feature of a corresponding device.
Das erfindungsgemäße zersetzte Signal kann auf einem digitalen Speichermittel gespeichert werden oder auf einem Übertragungsmittel wie beispielsweise einem drahtlosen Übertragungsmittel oder einem drahtgebundenen Übertragungsmittel wie beispielsweise dem Internet übertragen werden.The decomposed signal according to the invention can be stored on a digital storage medium or can be transmitted on a transmission medium such as a wireless transmission medium or a wired transmission medium such as the Internet.
Abhängig von gewissen Ausführungserfordernissen können Ausführungsformen von Ausführungsformen in Hardware oder in Software ausgeführt sein. Die Ausführung kann unter Verwendung eines digitalen Speichermittels, beispielsweise einer Diskette, einer DVD, einer CD, eines ROM, eines PROM, eines EPROM, eines EEPROM oder eines FLASH-Speichers mit darauf gespeicherten elektronisch lesbaren Steuersignalen durchgeführt werden, die mit einem programmierbaren Computersystem zusammenwirken (oder zusammenwirken können), so dass das jeweilige Verfahren durchgeführt wird.Depending on certain execution requirements, embodiments of embodiments may be implemented in hardware or in software. Execution can be performed using digital storage means such as a floppy disk, DVD, CD, ROM, PROM, EPROM, EEPROM, or FLASH memory with electronically readable control signals stored thereon that interact with a programmable computer system (or can work together) so that the respective procedure is carried out.
Einige Ausführungsformen nach Ausführungsformen umfassen einen nichtflüchtigen Datenträger mit elektronisch lesbaren Steuersignalen, die mit einem programmierbaren Computersystem zusammenwirken können, so dass eines der hier beschriebenen Verfahren durchgeführt wird.Some embodiments according to embodiments include a non-volatile data carrier with electronically readable control signals that can interact with a programmable computer system, so that one of the methods described here is carried out.
Im Allgemeinen können Ausführungsformen der vorliegenden Erfindung als ein Computerprogrammprodukt mit einem Programmcode ausgeführt werden, wobei der Programmcode zum Durchführen eines der Verfahren wirksam ist, wenn das Computerprogrammprodukt auf einem Computer abläuft. Der Programmcode kann beispielsweise auf einem maschinenlesbaren Träger gespeichert sein.In general, embodiments of the present invention can be implemented as a computer program product with a program code, the program code being effective for performing one of the methods when the computer program product is running on a computer. The program code can, for example, be stored on a machine-readable medium.
Andere Ausführungsformen umfassen das Computerprogramm zum Durchführen eines der hier beschriebenen Verfahren, gespeichert auf einem maschinenlesbaren Träger.Other embodiments include the computer program for performing one of the methods described herein, stored on a machine readable medium.
Anders gesagt ist daher eine Ausführungsform des erfindungsgemäßen Verfahrens ein Computerprogramm mit einem Programmcode zum Durchführen eines der hier beschriebenen Verfahren, wenn das Computerprogramm auf einem Computer abläuft.In other words, one embodiment of the method according to the invention is a computer program with a program code for carrying out one of the methods described here when the computer program runs on a computer.
Eine weitere Ausführungsform der erfindungsgemäßen Verfahren ist daher ein Datenträger (oder ein digitales Speichermedium oder ein computerlesbares Medium), der darauf aufgezeichnet das Computerprogramm zum Durchführen eines der hier beschriebenen Verfahren umfasst.A further embodiment of the method according to the invention is therefore a data carrier (or a digital storage medium or a computer-readable medium) which, recorded thereon, comprises the computer program for carrying out one of the methods described here.
Eine weitere Ausführungsform des erfindungsgemäßen Verfahrens ist daher ein Datenstrom oder eine Folge von das Computerprogramm darstellenden Signalen zum Durchführen eines der hier beschriebenen Verfahren. Der Datenstrom oder die Folge von Signalen kann beispielsweise eingerichtet sein, über eine Datenkommunikationsverbindung, beispielsweise über das Internet, übertragen zu werden.A further embodiment of the method according to the invention is therefore a data stream or a sequence of signals representing the computer program for carrying out one of the methods described here. The data stream or the sequence of signals can, for example, be set up to be transmitted via a data communication connection, for example via the Internet.
Eine weitere Ausführungsform umfasst ein Verarbeitungsmittel, beispielsweise einen Computer, oder eine programmierbare Logikvorrichtung, eingerichtet oder ausgebildet zum Durchführen eines der hier beschriebenen Verfahren.A further embodiment comprises a processing means, for example a computer, or a programmable logic device, set up or designed to carry out one of the methods described here.
Eine weitere Ausführungsform umfasst einen Computer mit darauf installiertem Computerprogramm zum Durchführen eines der hier beschriebenen Verfahren.Another embodiment includes a computer with a computer program installed thereon for performing one of the methods described here.
In einigen Ausführungsformen kann eine programmierbare Logikvorrichtung (z.B. eine feldprogrammierbare Gatteranordnung) zum Durchführen einiger oder aller der Funktionalitäten der hier beschriebenen Verfahren benutzt werden. In einigen Ausführungsformen kann eine feldprogrammierbare Gatteranordnung mit einem Mikroprozessor zusammenwirken, um eines der hier beschriebenen Verfahren durchzuführen. Im Allgemeinen werden die Verfahren durch eine beliebige Hardwareeinrichtung durchgeführt.In some embodiments, a programmable logic device (e.g., a field programmable gate array) can be used to perform some or all of the functionalities of the methods described herein. In some embodiments, a field programmable gate arrangement may cooperate with a microprocessor to perform one of the methods described herein. In general, the methods are performed by any hardware device.
Während diese Erfindung mittels mehrerer vorteilhafter Ausführungsformen beschrieben worden ist, gibt es Änderungen, Umwandlungen oder Entsprechungen, die in den Schutzbereich der vorliegenden Erfindung fallen. Auch sollte erwähnt werden, dass es viele alternative Weisen zum Ausführen der Verfahren und Kompositionen der vorliegenden Erfindung gibt. Die nachfolgenden beiligenden Ansprüche sollen daher als alle solche Änderungen, Umsetzungen oder Entsprechungen enthaltend ausgelegt werden, die in den wahren Sinn und Schutzbereich der vorliegenden Erfindung fallen.While this invention has been described in terms of several advantageous embodiments, there are changes, conversions, or correspondences that fall within the scope of the present invention. It should also be noted that there are many alternative ways to carry out the methods and compositions of the present invention. The following appended claims are therefore to be interpreted as including any such changes, implementations, or correspondences that fall within the true meaning and scope of the present invention.
Die oben beschriebenen Ausführungsformen sind nur beispielhaft für die Grundsätze der vorliegenden Erfindung. Es versteht sich, dass Abänderungen und Veränderungen der hier beschriebenen Anordnungen und Einzelheiten dem Fachmann offenbar sein werden. Sie sollen daher nur durch den Schutzbereich der nachstehenden Patentansprüche und nicht durch die als Beschreibung und Erläuterung der hiesigen Ausführungsformen dargestellten bestimmten Einzelheiten begrenzt sein.The embodiments described above are only exemplary of the principles of the present invention. It is understood that changes and changes in the arrangements and details described herein will be apparent to those skilled in the art. They are therefore intended to be limited only by the scope of protection of the following claims and not by the specific details shown as a description and explanation of the embodiments here.
Obwohl jeder Anspruch sich nur auf einen einzelnen Anspruch bezieht, wird durch die Offenbarung auch jede vorstellbare Kombination von Ansprüchen abgedeckt.Although each claim relates to only a single claim, the disclosure also covers every conceivable combination of claims.
Claims (14)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/253,831 | 2019-01-22 | ||
US16/253,831 US10678709B2 (en) | 2013-07-15 | 2019-01-22 | Apparatus and method for memory address encryption |
Publications (1)
Publication Number | Publication Date |
---|---|
DE102020200748A1 true DE102020200748A1 (en) | 2020-07-23 |
Family
ID=71402556
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102020200748.9A Pending DE102020200748A1 (en) | 2019-01-22 | 2020-01-22 | DEVICE AND ENCRYPTION METHOD |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE102020200748A1 (en) |
-
2020
- 2020-01-22 DE DE102020200748.9A patent/DE102020200748A1/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE102014213539A1 (en) | Device and method for memory address encryption | |
DE60222052T2 (en) | Encryption secured against attacks through the analysis of power consumption (DPA) | |
DE602005002632T2 (en) | Key masking for cryptographic processes using a combination of random mask values | |
EP1668515B1 (en) | Word-individual key generation | |
DE69728465T2 (en) | Non-parallel multi-cycle encryption device | |
EP2462717B1 (en) | Real-time capable quantum computer secure encoding of data of all types | |
DE102005056814B4 (en) | Cryptography system and data encryption method | |
EP2605445B1 (en) | Method and apparatus for securing block ciphers against template attacks | |
EP3219042B1 (en) | Hardened white box implementation 2 | |
DE69933108T2 (en) | SYNCHRONIZED BITSTROM ENCRYPTION | |
DE19924986A1 (en) | Encryption conversion device for electronic toll collection | |
EP1298834B1 (en) | Method and apparatus for encrypting and decrypting data | |
EP1777913A1 (en) | Method to enciphering/deciphering data packets of a data steam | |
DE102007052656A1 (en) | Electronic device for encryption and decryption of data blocks of message, has control stage controlling processing stage and calculating message authentication code block wise over encrypted and /or decrypted message | |
DE102008010789B4 (en) | Method for the access and communication-related random encryption and decryption of data | |
DE69729297T2 (en) | ENCRYPTION DEVICE FOR BINARY CODED MESSAGES | |
EP2499774B1 (en) | Method and system for the accelerated decryption of cryptographically protected user data units | |
DE10345378B4 (en) | Method and device for encryption / decryption | |
EP1668817B1 (en) | Encryption and decryption method and device | |
DE102020200748A1 (en) | DEVICE AND ENCRYPTION METHOD | |
DE10352680A1 (en) | Encryption device and encryption method | |
DE102015208899A1 (en) | Apparatus and method for flexibly generating cryptographic private keys and device with flexibly generated cryptographic private keys | |
DE602004012096T2 (en) | METHOD AND DEVICE FOR A HADWARE IMPLEMENTATION OF THE KEY EXPANSION FUNCTION WITH LITTLE MEMORY | |
DE19757370C2 (en) | Process for the tactile generation of pseudo-random data words | |
DE102012004780B4 (en) | Method and arrangement for protecting data secrets in memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R012 | Request for examination validly filed |