DE102020200748A1 - DEVICE AND ENCRYPTION METHOD - Google Patents

DEVICE AND ENCRYPTION METHOD Download PDF

Info

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
Application number
DE102020200748.9A
Other languages
German (de)
Inventor
Berndt Gammel
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US16/253,831 external-priority patent/US10678709B2/en
Application filed by Infineon Technologies AG filed Critical Infineon Technologies AG
Publication of DE102020200748A1 publication Critical patent/DE102020200748A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting 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/79Protecting 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security 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.
According to a further embodiment, a method for encrypting an input memory address to obtain an encrypted memory address is provided. The process includes:
  • 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,
According to a further embodiment, a method for encrypting an input memory address to obtain an encrypted memory address is provided. The process includes:
  • 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 ein Verschlü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 einem Speicher 410, einer ZE 420 und einer Adressenverschlü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.
Preferred exemplary embodiments of the present invention are explained in more detail below with reference to the accompanying drawings. Show it:
  • 1 a device for encrypting an input memory address to obtain an encrypted memory address according to one embodiment,
  • 2nd an encryption 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 a memory 410 , a ZE 420 and an address 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: a ' = f k ( a ) .

Figure DE102020200748A1_0001
Address encryption can be realized as a bijective mapping f, for example a conversion of simple addresses a into encrypted addresses a '. The mapping is controlled by a key k: a ' = f k ( a ) .
Figure DE102020200748A1_0001

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 5 dargestellt realisiert werden, wo ein exklusives ODER der Adressen mit einem Schlüssel durchgeführt wird: f k ( a ) = a k .

Figure DE102020200748A1_0002
Address encryption can be done through a first approach such as 5 can be realized where an exclusive OR of the addresses is carried out with a key: f k ( a ) = a k .
Figure DE102020200748A1_0002

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 5 kann eine verwandte einfache Verwürfelung ausgeführt werden.By changing the approach of 5 a related simple scramble can be performed.

Alternativ kann Adressenverschlüsselung durch einen zweiten Ansatz wie durch 6 dargestellt realisiert werden, wo eine Blockchiffre BC zur Verschlüsselung benutzt wird: f k ( a ) = B C ( S c h l ü s s e l = k , a ) .

Figure DE102020200748A1_0003
Alternatively, address encryption can be done through a second approach such as 6 shown, where a block cipher BC is used for encryption: f k ( a ) = B C. ( S c H l ü s s e l = k , a ) .
Figure DE102020200748A1_0003

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 6 dargestellte Ansatz kann mit einer stark verringerten Rundennummer implementiert werden, z.B. nur eins oder zwei Runden. In diesem Fall ist die kryptografische Stärke beinahe vollständig verloren. Die Investition hoher Hardwarekosten macht sich daher überhaupt nicht bezahlt.The through 6 The approach shown can be implemented with a greatly reduced lap number, eg only one or two laps. In this case, the cryptographic strength is almost completely lost. The investment in high hardware costs therefore does not pay off at all.

Alternativ kann Adressenverschlüsselung durch einen dritten Ansatz wie durch 7 dargestellt realisiert werden, wo ein Satz von Ersatzboxen (S-Boxen) benutzt wird. Angenommen, dass S ( a ) = ( S 1 ( a 1 ) , S 2 ( a 2 ) , S n ( a j ) )

Figure DE102020200748A1_0004
ein Satz von j m-zu-m S-Boxen ist, von denen jede einen disjunkten Teilbereich des Adressraums abbildet. Dann, angenommen, dass f k ( a ) = S ( a ) k
Figure DE102020200748A1_0005
oder f k ( a ) = L ( S ( a ) , k )
Figure DE102020200748A1_0006
wobei L eine lineare Operation darstellt.Alternatively, address encryption can be done through a third approach such as 7 can be realized where a set of replacement boxes (S-boxes) is used. Assume that S ( a ) = ( S 1 ( a 1 ) , S 2nd ( a 2nd ) , ... S n ( a j ) )
Figure DE102020200748A1_0004
is a set of j m-to-m S-boxes, each of which maps a disjoint portion of the address space. Then, suppose that f k ( a ) = S ( a ) k
Figure DE102020200748A1_0005
or f k ( a ) = L ( S ( a ) , k )
Figure DE102020200748A1_0006
where L represents a linear operation.

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 7 dargestellten Ansatz mangelt es an kryptografischer Stärke und es ergibt sich eine Verschlechterung der Speicherzugriffszeit ähnlich dem zweiten Ansatz nach 6.An advantage of this approach is that it can be built to have an identification key. Disadvantages are, however, that even small S-boxes such as 4x4 S-boxes already have a high gate count and a high switching depth. They usually add a significant number of gate delays, which degrades memory access performance. As a result, an additional clock cycle could be needed in the address phase. Furthermore, such an approach has only a medium cryptographic strength. The through 7 shown approach lacks cryptographic strength and there is a deterioration in memory access time similar to the second approach 6 .

Bevorzugte Ausführungsformen vermeiden die Nachteile der durch 5, 6 und 7 dargestellten Ansätze.Preferred embodiments avoid the disadvantages of 5 , 6 and 7 approaches presented.

1 zeigt eine Einrichtung zum Verschlüsseln einer Eingangsspeicheradresse zum Erhalten einer verschlüsselten Speicheradresse nach einer Ausführungsform. 1 FIG. 12 shows a device for encrypting an input memory address to obtain an encrypted memory address according to an embodiment.

Die Einrichtung umfasst eine Eingangsschnittstelle 110 zum Aufnehmen der Eingangsspeicheradresse als eine Adresse eines Speichers.The facility includes an input interface 110 to record the input memory address as an address of a memory.

Weiterhin umfasst die Einrichtung ein Verschlüsselungsmodul 120 zum Verschlüsseln der Eingangsspeicheradresse in Abhängigkeit von einem kryptografischen Schlüssel 121 zum Erhalten der verschlüsselten Speicheradresse.The device also includes an encryption module 120 to encrypt the input memory address depending on a cryptographic key 121 to get the encrypted memory address.

Das Verschlüsselungsmodul 120 ist zum Verschlüsseln der Eingangsspeicheradresse durch Anlegen einer die Eingangsspeicheradresse auf die verschlüsselte Speicheradresse abbildenden Abbildung eingerichtet.The encryption module 120 is set up to encrypt the input memory address by creating an image that maps the input memory address to the encrypted memory address.

Das Verschlüsselungsmodul 120 ist zum Anlegen der Abbildung durch Durchführen einer Multiplikation und einer Modulo-Operation unter Verwendung des kryptografischen Schlüssels 121 und eines Divisors 122 der Modulo-Operation eingerichtet, so dass die Abbildung bijektiv ist.The encryption module 120 is for creating the mapping by performing multiplication and modulo operation using the cryptographic key 121 and a divisor 122 the modulo operation so that the mapping is bijective.

Nach einer Ausführungsform können die Eingangsspeicheradresse, die verschlüsselte Speicheradresse, der kryptografische Schlüssel 121 und der Divisor 122 der Modulo-Operation jeweils ein Polynom anzeigen. In einer solchen Ausführungsform kann der Divisor 122 ein Polynom anzeigen, das ein nichtreduzierbares Polynom ist.In one embodiment, the input memory address, the encrypted memory address, the cryptographic key 121 and the divisor 122 display one polynomial each for the modulo operation. In such an embodiment, the divisor 122 display a polynomial that is an irreducible polynomial.

In einigen Ausführungsformen kann der Divisor 122 ein Polynom anzeigen, das ein nichtreduzierbares Polynom ist, wo alle Koeffizienten des nichtreduzierbaren Polynoms rational sind. Hinsichtlich von Polynomen, wo alle rational sind, kann ein Polynom beispielsweise als nichtreduzierbar angesehen werden, wenn es nicht als das Produkt von zwei oder mehr Polynomen ausgedrückt werden kann, wo alle Koeffizienten rational sind, so dass jedes von diesen zwei oder mehr Polynomen, wo alle Koeffizienten rational sind, einen niedrigeren Grad als das ursprüngliche Polynom aufweist.In some embodiments, the divisor 122 display a polynomial that is a non-reducible polynomial where all the coefficients of the non-reducible polynomial are rational. For example, with respect to polynomials where all are rational, a polynomial can be considered unreducible if it cannot be expressed as the product of two or more polynomials where all coefficients are rational so that each of these two or more polynomials where all coefficients are rational, have a lower degree than the original polynomial.

In einigen Ausführungsformen kann jedoch der Divisor 122 ein Polynom anzeigen, das ein nichtreduzierbares Polynom ist und wobei ein, einige oder alle Koeffizienten des nichtreduzierbaren Polynoms nicht rational sind.In some embodiments, however, the divisor 122 display a polynomial that is a nonreducible polynomial and wherein one, some, or all of the coefficients of the nonreducible polynomial are not rational.

2 zeigt ein Verschlüsselungsmodul 120 nach einer bestimmten Ausführungsform, wo das Verschlüsselungsmodul 120 zum Anlegen der Abbildung durch Einsetzen der Formel: a ' = a k ( m o d p )

Figure DE102020200748A1_0007
eingerichtet ist. In einer solchen Ausführungsform zeigt a die Eingangsspeicheradresse an, a' zeigt die verschlüsselte Speicheradresse an, k zeigt den Verschlüsselungsschlüssel an und p zeigt den Divisor an. 2nd shows an encryption module 120 according to a specific embodiment, where the encryption module 120 to create the image by inserting the formula: a ' = a k ( m O d p )
Figure DE102020200748A1_0007
is set up. In such an embodiment, a indicates the input memory address, a 'indicates the encrypted memory address, k indicates the encryption key, and p indicates the divisor.

Zum Beispiel betrachte man als vereinfachtes Beispiel, dass: a = 1001 ;   k = 1101 ;    p = 101  

Figure DE102020200748A1_0008
For example, consider a simplified example that: a = 1001 ; k = 1101 ; p = 101
Figure DE102020200748A1_0008

Dann können die Bit der Bitfolge Koeffizienten eines Polynoms über dem Galois-Feld GF(2) darstellen: Polynom ( a ) = 1 x 3 + 0 x 2 + 0 x 1 + 1 x 0 = x 3 + 1

Figure DE102020200748A1_0009
Polynom ( k ) = 1 x 3 + 1 x 2 + 0 x 1 + 1 x 0 = x 3 + x 2 + 1
Figure DE102020200748A1_0010
Polynom ( p ) = 1 x 2 + 0 x 1 + 1 x 0 = x 2 + 1
Figure DE102020200748A1_0011
wo x2 + 1 ein nichtreduzierbares Polynom über GF(2) darstellt. Then the bits of the bit sequence can represent coefficients of a polynomial over the Galois field GF (2): polynomial ( a ) = 1 x 3rd + 0 x 2nd + 0 x 1 + 1 x 0 = x 3rd + 1
Figure DE102020200748A1_0009
polynomial ( k ) = 1 x 3rd + 1 x 2nd + 0 x 1 + 1 x 0 = x 3rd + x 2nd + 1
Figure DE102020200748A1_0010
polynomial ( p ) = 1 x 2nd + 0 x 1 + 1 x 0 = x 2nd + 1
Figure DE102020200748A1_0011
where x 2 + 1 represents a nonreducible polynomial over GF (2).

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: b n 1 b n 2 b n 3 b 2 b 1 b 0

Figure DE102020200748A1_0012
das Polynom anzeigt: b n 1 x n 1 + b n 2 x n 2 + b n 3 x n 3 + b 2 x 2 + b 1 x + b 0 .
Figure DE102020200748A1_0013
For example, some implementations can apply the general rule that a bit string: b n - 1 b n - 2nd b n - 3rd ... b 2nd b 1 b 0
Figure DE102020200748A1_0012
the polynomial indicates: b n - 1 x n - 1 + b n - 2nd x n - 2nd + b n - 3rd x n - 3rd + ... b 2nd x 2nd + b 1 x + b 0 .
Figure DE102020200748A1_0013

Es ist weiterhin zu bemerken, dass nach Ausführungsformen beispielsweise a   k ( m o d   p )

Figure DE102020200748A1_0014
( a   k )   m o d   p
Figure DE102020200748A1_0015
bedeutet;
(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 a k ( m O d p )
Figure DE102020200748A1_0014
( a k ) m O d p
Figure DE102020200748A1_0015
means;
(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. a ' = a   k ( m o d   p )

Figure DE102020200748A1_0016
Then the address encryption can be described as a modular multiplication. a ' = a k ( m O d p )
Figure DE102020200748A1_0016

Nach anderen Ausführungsformen wird ein Hilfschlüssel b eingesetzt, so dass: a ' = a   k ( m o d   p ) + b

Figure DE102020200748A1_0017
According to other embodiments, an auxiliary key b is used so that: a ' = a k ( m O d p ) + b
Figure DE102020200748A1_0017

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 a   k ( m o d   p ) = a   m o d   p .

Figure DE102020200748A1_0018
Furthermore, according to embodiments, there could be a natural identifier key k = 1, which is useful for generation verification purposes. Thus, according to some embodiments, the device for selecting a license plate key is configurable as the encryption key k, so that a k ( m O d p ) = a m O d p .
Figure DE102020200748A1_0018

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 a   k ( m o d   p ) = 0.

Figure DE102020200748A1_0019
According to embodiments, a zero key results in a '= 0. This can be used as a security countermeasure: If an attack is detected, the key can be deleted to only zero. In this case, each access to address 0 is mapped (or a fixed address b if the affine variant is used). It is advantageous that this address only contains blank data, so that the From then on, the attacker will only read blank data. Thus, according to some embodiments, the device for selecting a zero key can be configured as the encryption key k, so that a k ( m O d p ) = 0.
Figure DE102020200748A1_0019

Nach einigen Ausführungsformen ist das Verschlüsselungsmodul 120 zum Anwenden der Abbildung durch Einsetzen der Formel a ' = a   k ( m o d   p ) + b

Figure DE102020200748A1_0020
eingerichtet, wobei a die Eingangsspeicheradresse anzeigt, wobei a' die verschlüsselte Speicheradresse anzeigt, wobei k den Verschlüsselungsschlüssel anzeigt, wobei p den Divisor anzeigt und wobei b einen Hilfsschlüssel anzeigt.In some embodiments, the encryption module 120 to apply the image by inserting the formula a ' = a k ( m O d p ) + b
Figure DE102020200748A1_0020
set up, where a indicates the input memory address, where a 'indicates the encrypted memory address, where k indicates the encryption key, where p indicates the divisor and where b indicates an auxiliary key.

In einigen Ausführungsformen ist die Einrichtung zum Auswählen eines Kennzeichnungsschlüssels als der Verschlüsselungsschlüssel k konfigurierbar, so dass a   k ( m o d   p ) + b = a   m o d   p + b .

Figure DE102020200748A1_0021
In some embodiments, the means for selecting an identification key as the encryption key k is configurable so that a k ( m O d p ) + b = a m O d p + b .
Figure DE102020200748A1_0021

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 3 eine Einrichtung zum Verschlüsseln einer Eingangsspeicheradresse zum Erhalten einer verschlüsselten Speicheradresse nach einer anderen Ausführungsform.Accordingly shows 3rd means for encrypting an input memory address to obtain an encrypted memory address according to another embodiment.

Die Einrichtung umfasst eine Eingangsschnittstelle 310 zum Empfangen der Eingangsspeicheradresse als eine Adresse eines Speichers.The facility includes an input interface 310 for receiving the input memory address as an address of a memory.

Weiterhin umfasst die Einrichtung ein Segmentierungsmodul 315 zum Segmentieren der Eingangsspeicheradresse in eine Vielzahl von Eingangsspeicheradresssegmenten. The device also includes a segmentation module 315 for segmenting the input memory address into a plurality of input memory address segments.

Weiterhin umfasst die Einrichtung ein Verschlüsselungsmodul 320 zum Verschlüsseln jedes Eingangsspeicheradresssegments der Vielzahl von Eingangsspeicheradresssegmenten in Abhängigkeit von einem einer Vielzahl von kryptografischen Nebenschlüsseln. Das Verschlüsselungsmodul 320 ist zum Verschlüsseln des Eingangsspeicheradresssegments durch Anlegen einer das Eingangsspeicheradresssegment abbildenden Abbildung an ein verschlüsseltes Speicheradresssegment eingerichtet, wobei das verschlüsselte Speicheradresssegment eines einer Vielzahl von verschlüsselten Speicheradresssegmenten ist. Das Verschlüsselungsmodul 320 ist 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, so dass die Abbildung bijektiv ist.The device also includes an encryption module 320 to encrypt each input memory address segment of the plurality of input memory address segments depending on one of a plurality of cryptographic sub-keys. The encryption module 320 is configured to encrypt the input memory address segment by applying an image depicting the input memory address segment to an encrypted memory address segment, the encrypted memory address segment being one of a plurality of encrypted memory address segments. The encryption module 320 is arranged to create the mapping by performing a multiplication and modulo operation 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 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 320 zum Verschlüsseln jedes der Eingangsspeicheradresssegmente durch Anlegen der das Eingangsspeicheradresssegment abbildenden Abbildung an eines der Vielzahl von verschlüsselten Speicheradresssegmenten durch Einsetzen der Formel a i ' = a i   k i   ( m o d   p i )

Figure DE102020200748A1_0022
eingerichtet, wobei i einen Index des Eingangsspeicheradresssegments anzeigt, wobei ai das Eingangsspeicheradresssegment anzeigt, wobei ai' eines der Vielzahl von verschlüsselten Speicheradresssegmenten anzeigt, wobei ki eines der Verschlüsselungsnebenschlüssel anzeigt und wobei pi einen der Divisoren anzeigt.According to one embodiment, the encryption module 320 for encrypting each of the input memory address segments by applying the image representing the input memory address segment to one of the plurality of encrypted memory address segments by inserting the formula a i ' = a i k i ( m O d p i )
Figure DE102020200748A1_0022
where i indicates an index of the input memory address segment, where a i indicates the input memory address segment, where a i 'is one of the plurality of encrypted Displays memory address segments, where k i indicates one of the encryption subkeys and where p i indicates one of the divisors.

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 a 1 ' = a 1   k 1 ( m o d   p 1 ) a 2 ' = a 2   k 2 ( m o d   p 2 ) a n ' = a n   k n ( m o d   p n )

Figure DE102020200748A1_0023
In a specific embodiment, the (input) address is split into segments a = (a 1 , a 2 , ..., a n ), for example, according to the memory hierarchy of the system, secondary keys are k 1 , k 2 , ..., k n derived from a key k. For example, a secondary key derivation could be a segmentation of the key into bit areas k = (k 1 , k 2 , ..., k n ). Different reduction polynomials p 1 , p 2 , ..., p n can be used. Then the mapping of the scrambling operation of the entire storage system can be accomplished, for example, by a 1 ' = a 1 k 1 ( m O d p 1 ) a 2nd ' = a 2nd k 2nd ( m O d p 2nd ) ... a n ' = a n k n ( m O d p n )
Figure DE102020200748A1_0023

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 320 zum Verschlüsseln jedes der Eingangsspeicheradresssegmente durch Anlegen der das Eingangsspeicheradresssegment abbildenden Abbildung an eine der Vielzahl verschlüsselter Speicheradresssegmente durch Einsetzen der Formel a i ' = a i   k i ( m o d   p i ) + b i ,

Figure DE102020200748A1_0024
eingerichtet, wobei i einen Index des Eingangsspeicheradresssegments anzeigt, wobei ai das Eingangsspeicheradresssegment anzeigt, wobei ai' das eine der Vielzahl von verschlüsselten Speicheradresssegmenten anzeigt, wobei ki eines der Verschlüsselungsnebenschlüssel anzeigt, wobei pi einen der Divisoren anzeigt und wobei bi einen einer Vielzahl von Hilfsschlüsseln anzeigt.According to one embodiment, the encryption module 320 for encrypting each of the input memory address segments by applying the image representing the input memory address segment to one of the plurality of encrypted memory address segments by inserting the formula a i ' = a i k i ( m O d p i ) + b i ,
Figure DE102020200748A1_0024
where i indicates an index of the input memory address segment, a i indicates the input memory address segment, a i 'indicates one of the plurality of encrypted memory address segments, k i indicates one of the encryption sub-keys, p i indicates one of the divisors, and b i indicates one displays a variety of auxiliary keys.

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 a i   k i = ( m o d   p i ) + b i = a i ( m o d   p i ) + b i .

Figure DE102020200748A1_0025
In one embodiment, the device is configurable to select, for each input memory address segment a i, the input memory address segments of an identification key as the encryption key k i , such that a i k i = ( m O d p i ) + b i = a i ( m O d p i ) + b i .
Figure DE102020200748A1_0025

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 a i   k i = ( m o d   p i ) + b i = b i .

Figure DE102020200748A1_0026
In one embodiment, the device is configurable to select, for each input memory address segment a i, the input memory address segments of a zero key as the encryption key k i , so that a i k i = ( m O d p i ) + b i = b i .
Figure DE102020200748A1_0026

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.

4 zeigt eine Einrichtung 400 mit einem Speicher 410, einer ZE 420 zum Verarbeiten von an Speicheradressen im Speicher gespeicherten Daten, und einer Adressenverschlüsselungseinheit 430 zum Verschlüsseln einer Eingangsspeicheradresse des Speichers zum Erhalten einer verschlüsselten Speicheradresse nach einer Ausführungsform. 4th shows a facility 400 with a memory 410 , a ZE 420 for processing data stored in memory addresses in memory, and an address encryption unit 430 for encrypting an input memory address of the memory to obtain an encrypted memory address according to one embodiment.

Die Adressenverschlüsselungseinheit 430 umfasst eine Eingangsschnittstelle 431 zum Aufnehmen der Eingangsspeicheradresse und ein Verschlüsselungsmodul 432 zum Verschlüsseln der Eingangsspeicheradresse in Abhängigkeit von einem kryptografischen Schlüssel zum Erhalten der verschlüsselten Speicheradresse.The address encryption unit 430 includes an input interface 431 to record the input memory address and an encryption module 432 to encrypt the input memory address depending on a cryptographic key to obtain the encrypted memory address.

Das Verschlüsselungsmodul 432 ist zum Verschlüsseln der Eingangsspeicheradresse durch Anlegen einer die Eingangsspeicheradresse abbildenden Abbildung an die verschlüsselte Speicheradresse eingerichtet. Weiterhin ist das Verschlüsselungsmodul 432 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.The encryption module 432 is set up to encrypt the input memory address by applying an image depicting the input memory address to the encrypted memory address. Furthermore, the encryption module 432 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.

In einigen Ausführungsformen kann die Adressenverschlüsselungseinheit 430 eine Einrichtung zum Verschlüsseln einer Eingangsspeicheradresse zum Erhalten einer verschlüsselten Speicheradresse nach einer der oben beschriebenen Ausführungsformen sein.In some embodiments, the address encryption unit 430 means for encrypting an input memory address to obtain an encrypted memory address according to one of the embodiments described above.

8 zeigt eine Architektur, wo Adressenverschlüsselung, z.B. Adressenverschlüsselung nach einer der oben beschriebenen Ausführungsformen, eingesetzt werden kann. 8th shows an architecture where address encryption, eg address encryption according to one of the embodiments described above, can be used.

8 zeigt eine ZE 810, einen Speicher 820, eine Adressenverschlüsselungseinheit 830, eine Datenverschlüsselungs/Entschlüsselungseinheit 840, eine Schlüsselspeicherung 850 und eine MMU (Memory Management Unit, Speicherverwaltungseinheit) 860. 8th shows a ZE 810 , a memory 820 , an address encryption unit 830 , a data encryption / decryption unit 840 , a key storage 850 and an MMU (Memory Management Unit) 860 .

Die ZE muss Daten im Speicher 820 speichern. Weiterhin muss die ZE 810 Daten aus dem Speicher 820 ausladen.The ZE must have data in memory 820 to save. Furthermore, the ZE 810 Data from memory 820 unload.

Zum Übertragen von Daten von der ZE 810 zum Speicher 820 und vom Speicher 820 zur 810 werden Datenbusse eingesetzt.For transferring data from the ZE 810 to the store 820 and from memory 820 to 810 data buses are used.

Die ZE 810 benutzt Klartextdaten. Jedoch werden Daten im Speicher 820 als Chiffretext (verschlüsselte Daten) gespeichert werden. Wenn daher die ZE 810 (Klartext-) Daten im Speicher 820 speichern will, sendet die ZE 810 die Klartextdaten zur Datenverschlüsselungs/Entschlüsselungseinheit 840 über einen Datenbus. Die Datenverschlüsselungs/Entschlüsselungseinheit 840 verschlüsselt die Klartextdaten zum Erhalten von Chiffretextdaten und speichert die Chiffretextdaten im Speicher 820. Wenn die ZE 810 Daten aus dem Speicher 820 auszuladen wünscht, werden die verschlüsselten Daten aus dem Speicher 820 ausgeladen und in die Datenverschlüsselungs/Entschlüsselungseinheit 840 eingespeist. Die Datenverschlüsselungseinheit 840 entschlüsselt die Chiffretextdaten zum Erhalten von Klartextdaten und überträgt die Klartextdaten zur ZE 810.The ZE 810 uses plain text data. However, data is in memory 820 saved as ciphertext (encrypted data). Therefore, if the ZE 810 (Plain text) data in memory 820 wants to save, the ZE sends 810 the plain text data to the data encryption / decryption unit 840 via a data bus. The data encryption / decryption unit 840 encrypts the plain text data to obtain cipher text data and stores the cipher text data in memory 820 . If the ZE 810 Data from memory 820 wishes to unload the encrypted data from memory 820 unloaded and into the data encryption / decryption unit 840 fed. The data encryption unit 840 decrypts the ciphertext data to obtain plaintext data and transmits the plaintext data to the ZE 810 .

Zum Verschlüsseln von Klartextdaten und zum Entschlüsseln von Chiffretextdaten kann die Datenverschlüsselungs/Entschlüsselungseinheit 840 einen in einen bestimmten Speicherbereich, der Schlüsselspeicherung 850, gespeicherten (kryptografischen) Schlüssel benutzen.The data encryption / decryption unit can be used to encrypt plain text data and to decrypt cipher text data 840 one in a certain storage area, the key storage 850 , stored (cryptographic) key.

Die ZE 810 kann eine logische Adresse von im Speicher 820 gespeicherten Daten kennen.The ZE 810 can be a logical address from in memory 820 know stored data.

Zum Speichern von Daten an einer ursprünglichen logischen Adresse gibt die ZE 810 die ursprüngliche logische Adresse zur MMU 860 weiter. Die MMU 860 kann die ursprüngliche logische Adresse verschieben, um eine verschobene logische Adresse zu erhalten und gibt die verschobene logische Adresse zum Adressenverschlüsselungsmodul 830 weiter. Das Adressenverschlüsselungsmodul 830 verschlüsselt die verschobene Adresse durch Einsetzen von Adressenverschlüsselung in eine physikalische Adresse. Die physikalische Adresse wird über einen Adressbus zum Speicher 820 weitergeleitet, so dass der Speicher zum Speicher 820 weitergeleitet, so dass der Speicher 820 weiß, wo die Daten zu speichern sind.ZE saves data at an original logical address 810 the original logical address to the MMU 860 further. The MMU 860 may shift the original logical address to obtain a shifted logical address and pass the shifted logical address to the address encryption module 830 further. The address encryption module 830 encrypts the moved address by inserting address encryption into a physical address. The physical address becomes a memory via an address bus 820 forwarded so that memory goes to memory 820 forwarded so the memory 820 knows where to save the data.

Die Adressenverschlüsselungseinheit 830 kann eine Einrichtung zum Verschlüsseln einer Eingangsspeicheradresse nach einer der oben beschriebenen Ausführungsformen sein.The address encryption unit 830 may be a device for encrypting an input memory address according to one of the embodiments described above.

Zum Ausladen von Daten aus einer ursprünglichen logischen Adresse leitet die ZE 810 wiederum die ursprüngliche logische Adresse zur MMU 860 weiter. Die MMU 860 kann die ursprüngliche logische Adresse verschieben, um eine verschobene logische Adresse zu erhalten, und leitet die verschobene logische Adresse zum Adressenverschlüsselungsmodul 830 weiter. Das Adressenverschlüsselungsmodul 830 verschlüsselt die verschobene logische Adresse durch Einsetzen von Adressenverschlüsselung in eine physikalische Adresse. Die physikalische Adresse wird über einen Adressbus zum Speicher 820 weitergeleitet, so dass der Speicher 820 weiß, wo sich die zu ladenden Daten befinden.ZE unloads data from an original logical address 810 again the original logical address to the MMU 860 further. The MMU 860 can move the original logical address to obtain a shifted logical address and routes the shifted logical address to the address encryption module 830 further. The address encryption module 830 encrypts the shifted logical address by inserting address encryption into a physical address. The physical address becomes a memory via an address bus 820 forwarded so the memory 820 knows where the data to be loaded is located.

Zur Adressenverschlüsselung kann die Adressenverschlüsselungseinheit 830 einen in einen bestimmten Speicherbereich, der Schlüsselspeicherung 850, gespeicherten (kryptografischen) Schlüssel benutzen.The address encryption unit can be used for address encryption 830 one in a certain storage area, the key storage 850 , stored (cryptographic) key.

Insbesondere zeigt 8 eine Ausführungsform einer Einrichtung umfassend:

  • - 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.
In particular shows 8th one embodiment of a device comprising:
  • - 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, the address 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 9 ersichtlich ist: Durch Verschlüsseln der Daten werden die Klartextdaten durch Chiffretextdaten ersetzt, so dass ein Angreifer die Klartextdaten nicht lesen kann. Durch Verschlüsseln der ursprünglichen Adresse zum Erhalten einer verschlüsselten Adresse wird eine Umsetzung der Adresse realisiert und die Daten werden nicht an der durch die ursprüngliche Adresse angezeigten Speicherstelle gespeichert, sondern stattdessen an der verschlüsselten Adresse gespeichert. So weiß ein Angreifer nicht, wo die Daten gespeichert sind und weiterhin werden Daten an nachfolgenden logischen Adressen an vollständig anderen physikalischen Stellen im Speicher gespeichert, da Adressenverschlüsselung eingesetzt wird.In this way, double protection is achieved 9 it can be seen: By encrypting the data, the plain text data is replaced by cipher text data, so that an attacker cannot read the plain text data. By encrypting the original address to obtain an encrypted address, the address is converted and the data is not stored in the storage location indicated by the original address, but instead is stored in the encrypted address. For example, an attacker does not know where the data is stored and data at subsequent logical addresses is stored in completely different physical locations in the memory, since address encryption is used.

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)

Einrichtung zum Verschlüsseln einer Eingangsspeicheradresse zum Erhalten einer verschlüsselten Speicheradresse, umfassen: eine Eingangsschnittstelle, die konfiguriert ist, um die Eingangsspeicheradresse als eine Adresse eines Speichers aufzunehmen, ein Segmentierungsmodul, das konfiguriert ist, um die Eingangsspeicheradresse in eine Vielzahl von Eingangsspeicheradresssegmenten zu segmentieren, und ein Verschlüsselungsmodul, das konfiguriert ist, um jedes Eingangsspeicheradresssegment der Vielzahl von Eingangsspeicheradresssegmenten in Abhängigkeit von einem jeweiligen einer Vielzahl von kryptografischen Nebenschlüsseln zu verschlüsseln, wobei das Verschlüsselungsmodul konfiguriert ist, um das Eingangsspeicheradresssegment zu verschlüsseln durch Anlegen einer Abbildung, die das Eingangsspeicheradresssegment auf ein verschlüsseltes Speicheradresssegment abbildet, wobei das verschlüsselte Speicheradresssegment eines einer Vielzahl von verschlüsselten Speicheradresssegmenten ist, wobei das Verschlüsselungsmodul konfiguriert ist, um die Abbildung anzulegen durch Ausführen einer Multiplikation und einer Modulo-Operation unter Verwendung eines der Vielzahl von kryptografischen Nebenschlüsseln und eines einer Vielzahl von Divisoren, so dass die Abbildung bijektiv ist, wobei die verschlüsselten Speicheradresssegmente der Vielzahl von verschlüsselten Speicheradresssegmenten zusammen die verschlüsselte Speicheradresse bilden.Encryption of an input memory address to obtain an encrypted memory address includes: an input interface configured to receive the input memory address as an address of a memory, a segmentation module configured to segment the input memory address into a plurality of input memory address segments, and one An encryption module configured to encrypt each input memory address segment of the plurality of input memory address segments in response to a respective one of a plurality of cryptographic sub-keys, the encryption module configured to encrypt the input memory address segment by mapping to an encrypted memory address segment , wherein the encrypted memory address segment is one of a plurality of encrypted memory address segments, wherein the Encryption module is configured to apply the mapping by performing a multiplication and modulo operation using one of the plurality of cryptographic sub-keys and one of a plurality of divisors, so that the mapping is bijective, wherein the encrypted memory address segments of the plurality of encrypted memory address segments together form the encrypted memory address. Einrichtung gemäß Anspruch 1, bei der jedes der Vielzahl von Eingangsspeicheradresssegmenten ein Polynom einer ersten Gruppe von Polynomen anzeigt, 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.Establishment according to Claim 1 wherein 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 subkeys indicating a third polynomial, and each of the plurality of divisors displays a fourth polynomial as an irreducible polynomial. Einrichtung gemäß Anspruch 1 oder 2, wobei das Verschlüsselungsmodul konfiguriert ist, um jedes der Eingangsspeicheradresssegmente zu verschlüsseln durch Anlegen der Abbildung, die das Eingangsspeicheradresssegment auf eines der Vielzahl von verschlüsselten Speicheradresssegmenten abbildet, durch Anwenden folgender Formel: a i ' = a i  k i ( mod p i ) ,
Figure DE102020200748A1_0027
wobei i einen Index des Eingangsspeicheradresssegments anzeigt, wobei ai das Eingangsspeicheradresssegment anzeigt, wobei ai' das eine der Vielzahl von verschlüsselten Speicheradresssegmenten anzeigt, wobei ki einen der Verschlüsselungs-Nebenschlüssel anzeigt und wobei pi einen der Divisoren anzeigt.
Establishment according to Claim 1 or 2nd wherein the encryption module is configured to encrypt each of the input memory address segments by applying the mapping that maps the input memory address segment to one of the plurality of encrypted memory address segments using the following formula: a i ' = a i k i ( mod p i ) ,
Figure DE102020200748A1_0027
where i indicates an index of the input memory address segment, where a i indicates the input memory address segment, where a i 'indicates one of the plurality of encrypted memory address segments, where k i indicates one of the encryption subkeys and where p i indicates one of the divisors.
Einrichtung gemäß Anspruch 3, wobei die Einrichtung konfigurierbar ist, um für jedes Eingangsspeicheradresssegment ai der Eingangsspeicheradresssegmente einen Identitätsschlüssel als den Verschlüsselungsschlüssel ki auszuwählen, so dass ai ki (mod pi) = ai (mod pi) gilt.Establishment according to Claim 3 , the device being configurable to select an identity key as the encryption key k i for each input memory address segment a i of the input memory address segments, so that a i k i (mod p i ) = a i (mod p i ) applies. Einrichtung gemäß Anspruch 3, wobei die Einrichtung konfigurierbar ist, um für jedes Eingangsspeicheradresssegment ai der Eingangsspeicheradresssegmente einen Null-Schlüssel als den Verschlüsselungsschlüssel ki auszuwählen, so dass ai ki (mod pi) = 0 gilt.Establishment according to Claim 3 , wherein the device is configurable to select a zero key as the encryption key k i for each input memory address segment a i of the input memory address segments, so that a i k i (mod p i ) = 0 applies. Einrichtung gemäß einem der Ansprüche 1 bis 5, wobei das Verschlüsselungsmodul konfiguriert ist, um jedes der Eingangsspeicheradresssegmente zu verschlüsseln durch Anlegen der Abbildung, die das Eingangsspeicheradresssegment auf eines der Vielzahl von verschlüsselten Speicheradresssegmenten abbildet, durch Anwenden folgender Formel: a i ' = a i   k i ( m o d   p i ) + b i ,
Figure DE102020200748A1_0028
wobei i einen Index des Eingangsspeicheradresssegments anzeigt, wobei ai das Eingangsspeicheradresssegment anzeigt, wobei ai' das eine der Vielzahl von verschlüsselten Speicheradresssegmenten anzeigt, wobei ki einen der Verschlüsselungs-Nebenschlüssel anzeigt, wobei pi einen der Divisoren anzeigt und wobei bi einen einer Vielzahl von Hilfsschlüsseln anzeigt.
Establishment according to one of the Claims 1 to 5 wherein the encryption module is configured to encrypt each of the input memory address segments by applying the mapping that maps the input memory address segment to one of the plurality of encrypted memory address segments using the following formula: a i ' = a i k i ( m O d p i ) + b i ,
Figure DE102020200748A1_0028
where i indicates an index of the input memory address segment, a i indicates the input memory address segment, a i 'indicates one of the plurality of encrypted memory address segments, k i indicates one of the encryption subkeys, p i indicates one of the divisors, and b i indicates one displays a variety of auxiliary keys.
Einrichtung gemäß Anspruch 6, wobei die Einrichtung konfigurierbar ist, um für jedes Eingangsspeicheradresssegment ai der Eingangsspeicheradresssegmente einen Identitätsschlüssel als den Verschlüsselungsschlüssel ki auszuwählen, so dass Folgendes gilt: a i   k i = ( m o d   p i ) + b i = a i ( m o d   p i ) + b i .
Figure DE102020200748A1_0029
Establishment according to Claim 6 , wherein the device is configurable to select an identity key as the encryption key k i for each input memory address segment a i of the input memory address segments, so that the following applies: a i k i = ( m O d p i ) + b i = a i ( m O d p i ) + b i .
Figure DE102020200748A1_0029
Einrichtung gemäß Anspruch 6, wobei die Einrichtung konfigurierbar ist, um für jedes Eingangsspeicheradresssegment ai der Eingangsspeicheradresssegmente einen Null-Schlüssel als den Verschlüsselungsschlüssel ki auszuwählen, so dass Folgendes gilt: a i  k i = ( mod p i ) + b i = b i .
Figure DE102020200748A1_0030
Establishment according to Claim 6 , wherein the device is configurable to select a zero key as the encryption key k i for each input memory address segment a i of the input memory address segments, so that the following applies: a i k i = ( mod p i ) + b i = b i .
Figure DE102020200748A1_0030
Einrichtung gemäß einem der Ansprüche 1 bis 8, bei der das Verschlüsselungsmodul konfiguriert ist, um die Multiplikation und die Modulo-Operation ferner unter Verwendung eines oder mehrerer Bits der Eingangsspeicheradresse außer Bits des Eingangsspeicheradresssegments, das gerade abgebildet wird, auszuführen.Establishment according to one of the Claims 1 to 8th , wherein the encryption module is configured to further perform the multiplication and modulo operation using one or more bits of the input memory address other than bits of the input memory address segment currently being mapped. Einrichtung, umfassend: einen Mikroprozessor 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, um eine physikalische Adresse zu erhalten, wobei die Adressenverschlüsselungseinheit eine Eingangsschnittstelle zum Aufnehmen der verschobenen logischen Adresse aufweist, und ferner ein Verschlüsselungsmodul zum Verschlüsseln der verschobenen logischen Adresse in Abhängigkeit von einem kryptografischen Schlüssel aufweist, um die physikalische Adresse zu erhalten, wobei das Verschlüsselungsmodul konfiguriert ist, um die verschobene logische Adresse zu verschlüsseln durch Anlegen einer Abbildung, die die verschobene logische Adresse auf die physikalische Adresse abbildet, wobei das Verschlüsselungsmodul konfiguriert ist, um die Abbildung anzulegen durch Ausführen einer Multiplikation und einer Modulo-Operation unter Verwendung des kryptografischen Schlüssels und eines Divisors der Modulo-Operation, 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, der konfiguriert ist 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.An apparatus comprising: a microprocessor 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 to obtain a physical address, the address encryption unit having an input interface for receiving the shifted logical address, and further comprising an encryption module for encrypting the shifted logical address depending on a cryptographic key to obtain the physical address, the encryption module being configured to encrypt the shifted logical address by applying an image , which maps the shifted logical address to the physical address, wherein the encryption module is configured to the 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 encrypting first plaintext data to obtain first ciphertext data and decrypting second ciphertext data for obtaining second plain text data, a key storage for storing the cryptographic key, and a memory configured either to store the first cipher text data at the physical address or to provide the second cipher text data stored at the physical address for the data encryption / decryption module. Verfahren zum Verschlüsseln einer Eingangsspeicheradresse zum Erhalten einer verschlüsselten Speicheradresse, umfassend: Aufnehmen der Eingangsspeicheradresse als eine Adresse eines Speichers, Segmentieren der Eingangsspeicheradresse in eine Vielzahl von Eingangsspeicheradresssegmenten und Verschlüsseln jedes Eingangsspeicheradresssegments der Vielzahl von Eingangsspeicheradresssegmenten in Abhängigkeit von einem jeweiligen einer Vielzahl von kryptografischen Nebenschlüsseln, um die verschlüsselte Speicheradresse zu erhalten, wobei das Verschlüsseln des Eingangsspeicheradresssegments ein Anlegen einer Abbildung, die das Eingangsspeicheradresssegment auf ein verschlüsseltes Speicheradresssegment einer Vielzahl von verschlüsselten Speicheradresssegmenten abbildet, aufweist durch Ausführen einer Multiplikation und einer Modulo-Operation unter Verwendung eines der Vielzahl von kryptografischen Nebenschlüsseln und eines einer Vielzahl von Divisoren, so dass die Abbildung bijektiv ist, wobei die verschlüsselten Speicheradresssegmente der Vielzahl von verschlüsselten Speicheradresssegmenten zusammen die verschlüsselte Speicheradresse bilden.A method of encrypting an input memory address to obtain an encrypted memory address, comprising: Taking the input memory address as an address of a memory, Segment 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 depending on a respective one of a plurality of cryptographic sub-keys to obtain the encrypted memory address, wherein encrypting the input memory address segment involves applying an image comprising the input memory address segment to an encrypted memory address segment of a plurality of encrypted memory addresses by performing a multiplication and modulo operation using one of the plurality of cryptographic sub-keys and one of a plurality of divisors so that the mapping is bijective, wherein the encrypted memory address segments of the plurality of encrypted memory address segments together form the encrypted memory address. Verfahren gemäß Anspruch 11, bei dem jedes der Vielzahl von Eingangsspeicheradresssegmenten ein Polynom einer ersten Gruppe von Polynomen anzeigt, 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 anzeigtProcedure according to Claim 11 wherein 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 Verfahren gemäß Anspruch 11 oder 12, bei dem das Ausführen der Multiplikation und der Modulo-Operation ferner ein oder mehrere Bits der Eingangsspeicheradresse außer Bits des Eingangsspeicheradresssegments, das gerade abgebildet wird, verwendet.Procedure according to Claim 11 or 12th wherein performing the multiplication and modulo operation further uses one or more bits of the input memory address other than bits of the input memory address segment that is being mapped. Computerprogramm zum Implementieren des Verfahrens gemäß Anspruch 11, wenn dasselbe durch einen Computer oder Signalprozessor ausgeführt wird.Computer program for implementing the method according to Claim 11 if the same is done by a computer or signal processor.
DE102020200748.9A 2019-01-22 2020-01-22 DEVICE AND ENCRYPTION METHOD Pending DE102020200748A1 (en)

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)

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