DE102012004780A1 - Method for protecting data confidentiality in memory e.g. static RAM for processor of computer system, involves encrypting data written in memory using selected address-dependent random number - Google Patents

Method for protecting data confidentiality in memory e.g. static RAM for processor of computer system, involves encrypting data written in memory using selected address-dependent random number Download PDF

Info

Publication number
DE102012004780A1
DE102012004780A1 DE201210004780 DE102012004780A DE102012004780A1 DE 102012004780 A1 DE102012004780 A1 DE 102012004780A1 DE 201210004780 DE201210004780 DE 201210004780 DE 102012004780 A DE102012004780 A DE 102012004780A DE 102012004780 A1 DE102012004780 A1 DE 102012004780A1
Authority
DE
Germany
Prior art keywords
address
data
memory
random
unique
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.)
Granted
Application number
DE201210004780
Other languages
German (de)
Other versions
DE102012004780B4 (en
Inventor
Werner Rozek
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.)
ROZEK, WERNER, PROF. DR.-ING. DIPL.-ING., DE
Original Assignee
Fachhochschule Schmalkalden
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fachhochschule Schmalkalden filed Critical Fachhochschule Schmalkalden
Priority to DE102012004780.0A priority Critical patent/DE102012004780B4/en
Publication of DE102012004780A1 publication Critical patent/DE102012004780A1/en
Application granted granted Critical
Publication of DE102012004780B4 publication Critical patent/DE102012004780B4/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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

Abstract

The method involves selecting a memory cell which is used as unique and related to memory cell address data. A random particular address transformation is executed prior to or at an address of a memory (401) using the unique address data determined at random in new mapping unique addresses. The data that are written in the memory are encrypted using selected address-dependent random number. An independent claim is included for an arrangement for protecting data confidentiality in memory.

Description

Die vorliegende Erfindung betrifft ein Verfahren und eine Anordnung zum Schutz von Datengeheimnissen in Speicher, die vorrangig in unmittelbarer Umgebung eines Prozessors oder mehreren Prozessoren sich befinden.The present invention relates to a method and an arrangement for the protection of data secrets in memory, which are located primarily in the immediate vicinity of a processor or multiple processors.

Stand der Technik und Hintergrund der ErfindungPrior art and background of the invention

Der Schutz von Datengeheimnissen und der Schutz vor Datenmanipulationen zählen bei Fremdnutzung von Computern bzw. Computersystemen zu den relevantesten IT-Sicherheitszielen. Besonders bei Cloud Computing, in denen Entwicklungsaufgaben in der Cloud realisiert werden, müssen die obig aufgeführten Schutzarten vom Frontend- bis einschließlich Backend-Computer gewährleistet sein.The protection of data secrets and the protection against data manipulation are among the most relevant IT security goals when computers or computer systems are used by others. Especially in cloud computing, where development tasks are implemented in the cloud, the protection types listed above must be guaranteed from the front-end to the back-end computer.

Auch bei der computerisierten Verwaltung von Fremddaten verschiedener Aktiengesellschaften bei einem Provider müssen die Daten auf Grund rechtlicher Vorgaben so verwaltet werden, dass kein unbefugter Dritter Kenntnis über firmeninterne Daten erlangt.Even with the computerized management of third-party data of various public limited companies with a provider, the data must be managed on the basis of legal requirements so that no unauthorized third party acquires knowledge about company-internal data.

Programmcodedaten stellen ein hohes Wirtschaftsgut dar. Der Schutz der Datengeheimnisse dieser Daten in der unmittelbaren Umgebung eines Prozessors ist ein besonderes Anliegen des Urhebers der Programmcodedaten, um den Knowhow-Schutz und den Schutz von Algorithmen sowie Initialisierungsparameter zu gewährleisten.Program code data is a high value asset. Protecting the data secrets of this data in the immediate vicinity of a processor is a particular concern of the originator of the program code data in order to ensure the know-how protection and the protection of algorithms as well as initialization parameters.

Der Stand der Technik schützt Daten durch Verschlüsselung. So werden in US020110047375A1 die Daten während einer P2P-Kommunikation verschlüsselt übertragen. Die zur Umsetzung des Schutzes der Datengeheimnisse erforderlichen sicherheitsrelevanten Daten werden in Form permutierter relativer Daten vom Ort der Verschlüsselung zum Ort der Entschlüsselung als Daten mit einem Standardkommunikationsprotokolls wie z. B. TCP/IP gesendet.The prior art protects data by encryption. So be in US020110047375A1 transmit the data encrypted during a P2P communication. The security-relevant data required to implement the protection of the data secrets are transmitted in the form of permuted relative data from the location of the encryption to the place of decryption as data with a standard communication protocol such. B. TCP / IP sent.

DE 10 2008 010 792 B4 offenbart wie Daten in Dateien oder Ordner durch Verschlüsselung geschützt werden. Die für den Schutz erforderlichen sicherheitsrelevanten Daten wie z. B. die dynamischen Zufallsschlüssel und die dynamischen zufallsbestimmten Permutationssteuerinformationen werden in einem Header von permutierten relativen Daten gesichert und den verschlüsselten Daten vorangestellt. DE 10 2008 010 792 B4 discloses how data in files or folders are protected by encryption. The security-relevant data required for the protection such as. The dynamic random keys and the dynamic random permutation control information are stored in a header of permuted relative data and prepended to the encrypted data.

Die besondere Art des Schutzes sicherheitsrelevanter Daten in Form permutierter relativer Daten löst die Probleme des Schlüsselaustausches und Schlüsselmanagements. Zur Datenverschlüsselung können etablierte Verschlüsselungsverfahren wie RSA oder AES eingesetzt werden. One-Time-Pad-Verschlüsselungen von Daten aller Art sind mit dem in WO002011015510A1 offenbarten Verfahren möglich.The special way of protecting security-relevant data in the form of permuted relative data solves the problems of key exchange and key management. For data encryption, established encryption methods such as RSA or AES can be used. One-time pad encryption of data of all kinds are with the in WO002011015510A1 disclosed method possible.

Alle diese Verfahren haben den Nachteil, dass bei Kenntnis des Speicherortes der verschlüsselten Daten z. B. einer Datei, die Daten in Bezug auf die Datengesamtheit bekannt sind. Ein Hacker kann mittels Brute-Force-Attacke versuchen das Datengeheimnis zu erfahren.All of these methods have the disadvantage that with knowledge of the storage location of the encrypted data z. A file that has data related to the population of data. A hacker can use Brute Force Attack to try to learn the data secret.

Die Anwendung des in WO002011015510A1 offenbarten Verfahrens ist auch zur Datensicherung in der unmittelbaren Umgebung eines Prozessors im Backendbereich geeignet, doch gilt auch hier der im vorangestellten Absatz aufgeführte Nachteil.The application of in WO002011015510A1 The disclosed method is also suitable for data backup in the immediate vicinity of a processor in the backend area, but here too the disadvantage listed in the preceding paragraph applies.

Zum Schutz von Datengeheimnissen in unsichere Speicher in unmittelbarer Umgebung eines Prozessors werden in DE 10 2008 026 697 A1 eine „Vorrichtung und ein Verfahren zum Verschlüsseln von auf einem Bus ausgegebenen Daten” veröffentlicht. Dabei umfasst die Vorrichtung einen Prozessor, eine Peripherieschnittstelle, einen Bus und eine Busverschlüsselungseinrichtung. Prozessor und Peripherieschnittstelle sind über den Bus miteinander verbunden. Die Busverschlüsselungseinrichtung verschlüsselt selektiv die vom Prozessor ausgegebenen digitalen Signale in Abhängigkeit von einem den Signalen zugeordneten Verschlüsselungssignal.To protect data secrets in insecure memory in the immediate vicinity of a processor will be in DE 10 2008 026 697 A1 a "Device and method for encrypting data output on a bus" published. In this case, the device comprises a processor, a peripheral interface, a bus and a bus encryption device. Processor and peripheral interface are interconnected via the bus. The bus cipher selectively encrypts the digital signals output by the processor in response to an encryption signal associated with the signals.

In DE 10 2008 054 627 A1 wird ein „Steuergerät mit Verfahren zum Manipulationsschutz Computerprogramm, Computerprogrammprodukt” aufgezeigt. Das Steuergerät enthält einen Mikrocontroller, eine zwischen Mikrocontroller und Speicher angeordnete Verschlüsselungseinrichtung sowie ein Speicher. Der Schutz der Daten erfolgt durch datenblockbezogene AES-Verschlüsselung.In DE 10 2008 054 627 A1 a "control device with methods for manipulation protection computer program, computer program product" is shown. The control unit contains a microcontroller, an encryption device arranged between the microcontroller and the memory, and a memory. The data is protected by data block AES encryption.

Auch das in US2006/0008084 offenbarte Verfahren schützt die Daten durch datenblockbezogene Verschlüsselung.Also in US2006 / 0008084 The disclosed method protects the data by block-based encryption.

Die zuletzt genannten Verfahren haben den Nachteil, dass Daten eines Programmcodes oder eines Prozesses im Speicher zusammenhängende Speicherbereiche belegen.The last-mentioned methods have the disadvantage that data of a program code or a process in the memory occupy contiguous memory areas.

Der in dieser Schrift verwendete Prozessbegriff steht für einen Prozess in der Informatik, der für den „Vorgang einer algorithmischen ablaufenden Informationsverarbeitung” angesehen wird./Stallings, W.: Operating Systems, Internals and Design Principles. ISBN 0-13-147954-7/ . Ein Prozess benutzt die Speicherressource, besonders den Adressraum, größtenteils in zusammenhängende Speicherbereiche exklusiv. Nur die Daten des Prozesses befinden sich im zusammenhängenden logischen Adressenraum und liegen größtenteils zusammenhängend im physikalischen Speicheradressraum. Sie sind nur dem Prozess zugänglich.The process term used in this document stands for a process in computer science that is responsible for the "Process of algorithmic information processing in progress." / Stallings, W .: Operating Systems, Internals and Design Principles. ISBN 0-13-147954-7 / , One process uses the memory resource, especially the address space, mostly in contiguous memory areas exclusively. Only the data of the process is in the coherent logical Address space and are largely contiguous in physical memory address space. They are only accessible to the process.

Aufgabe und Ziele der ErfindungObject and objectives of the invention

Die Aufgabe der Erfindung besteht darin, ein Verfahren und eine Anordnung zu schaffen, die den Schutz von Datengeheimnissen in Speichern sichern. Dabei soll mit dem Schutz der Datengeheimnisse gleichzeitig ein Schutz vor Datenmanipulation gegeben sein. Weiterhin soll der Schutz von Datengeheimnissen in einem Speicher auch gegenüber von Berechtigten gewährleistet sein.The object of the invention is to provide a method and an arrangement which ensure the protection of data secrets in memories. At the same time, the protection of data secrets should provide protection against data manipulation. Furthermore, the protection of data secrets in a memory should also be guaranteed against authorized persons.

Offenbarung der ErfindungDisclosure of the invention

Gegenüber dem Stand der Technik erfolgt erfindungsgemäß der Schutz von Datengeheimnissen in Speichern mit folgenden Merkmalen:

  • – Zufallsbestimmte Adressentransformation vor oder bei einer Adressierung eines Speichers, wobei die als Unikat verwendete Adresse eines Speichers in ein zufallsbestimmtes Adressunikat oder in mehrere zufallsbestimmte Adressunikate abgebildet wird und die Daten, die in einen Speicher geschrieben werden, mit mindestens einer adressabhängig ausgewählten Zufallszahl verschlüsselt werden.
  • – Zufallsbestimmte Adressentransformation einer Adresse eines Speichers in ein zufallsbestimmtes Adressunikat ohne oder mit Datenexpansion oder in zufallsbestimmte Adressunikate mit Adressenexpansion oder in zufallsbestimmte Adressunikate mit Adressen- und Datenexpansion, wobei bei zufallsbestimmter Adressentransformation einer Adresse in ein zufallsbestimmtes Adressunikat oder in zufallsbestimmte Adressunikate mit Datumsexpansion dem Datum einen adressabhängigen fehlererkennenden Sicherheitscode oder einen adressabhängigen fehlererkennenden Sicherheitscode und eine Zufallszahl hinzugefügt wird.
  • – Alle für die Adressentransformationen, für die Verschlüsselungen und Entschlüsselungen der Daten verwendeten Zufallszahlen oder für die Adressentransformationen, für die Verschlüsselungen und Entschlüsselungen der Daten und Datenexpansion verwendeten Zufallszahlen werden durch einen Zufallsgenerator erzeugt und in einem internen Speicher eines Prozessors oder verschlüsselt auf einem externen Speichermedium solange gespeichert, wie sie zum Schreiben und Lesen des Speichers über ihre zufallsbestimmten Adressunikate benötigt werden.
  • – Zufallsbestimmte Adressentransformation, bei der mindestens ein und derselbe Adressteil jedes Adressdatums des Speichers mit mindestens einer Zufallszahl oder bei der mindestens ein und derselbe Adressteil jedes Adressdatums des Speichers mit einer Zufallszahl und mindestens ein anderer Adressteil jedes Adressdatums des Speichers mit mindestens einer weiteren Zufallszahl so verändert wird oder werden, dass jedes Adressdatum für die Adressierung eines Speichers ein zufallsbestimmtes Adressunikat ist. Die zufallsbestimmte Adressentransformationen sind vorzugsweise Anti- und/oder Äquivalenz-Verknüpfungen oder Anti- und/oder Äquivalenz-Verknüpfungen und mindestens eine zufallsbestimmte Bit- oder Bit-Byte- oder Byte-Permutation, wobei die Anti- und/oder Äquivalenz-Verknüpfungen zwischen den Bits einer Zufallszahl oder mehrerer Zufallszahlen und den Bits der Adresse eines Adressteils oder mehrerer Adressteile ausgeführt werden. Die Zuordnung einer Zufallszahl oder die Zuordnungen mehrerer Zufallszahlen zu einer Adresse erfolgt bzw. erfolgen adress- oder teiladressbereichsmäßig. Die Auswahl des Adressbereiches oder Teiladressbereiches wird in Verbindung mit mindestens einem Vergleich eines Teiles einer Adresse mit mindestens einer als Adressbereichsgrenzwert oder Teiladressbereichsgrenzwert verwendeten Zufallszahl gesteuert.
  • – Alternativ zum vorangehenden Anstrich bildet die zufallsbestimmte Adressentransformation mindestens ein Adressteil jedes Adressdatums des Speichers über eine Look-up-Tabelle in ein zufallsbestimmtes Adressunikat oder mehr als ein Adressteil jedes Adressdatums des Speichers über je eine Look-up-Tabelle in zufallsbestimmte Adressunikate ab. Die Zuordnung eines Adressteils zu einer Look-up-Tabelle erfolgt adress- oder teiladressbereichsmäßig, wobei die Auswahl des Adressbereiches oder Teiladressbereiches in Verbindung mit mindestens einem Vergleich eines Teiles einer Adresse mit mindestens einer als Adressbereichsgrenzwert oder Teiladressbereichsgrenzwert gebrauchten Zufallszahl gesteuert wird. Der Inhalt einer Look-up-Tabelle wird aus einer streng monotonen Zahlenfolge durch zufallsbestimmte Änderungen der Reihenfolge generiert, wobei die zufallsbestimmten Änderungen der Reihenfolge in Verbindung mit einem Zufallsgenerator ermittelt werden. Alle Inhalte der Look-up-Tabellen werden in einem Speicher eines Prozessors solange gespeichert, wie sie zum Schreiben und Lesen des Speichers über ihre zufallsbestimmten Adressunikate benötigt werden.
Compared with the prior art, according to the invention, the protection of data secrets takes place in memories having the following features:
  • Random address transformation before or during addressing of a memory, where the unique address of a memory is mapped into a random address set or several random address unique and the data written to a memory is encrypted with at least one address-selected random number.
  • Random address transformation of an address of a memory into a random address uniqueness with or without data expansion or random address unicom with address expansion or in random address unicampted with address and data expansion, wherein in case of random address transformation of an address into a random address unique or Random Adressunikate with date expansion the date one address-dependent error-detecting security code or an address-dependent error-detecting security code and a random number is added.
  • All random numbers used for the address transformations, for the encryption and decryption of the data or for the address transformations, random numbers used for the encryption and decryption of the data and data expansion are generated by a random generator and in an internal memory of a processor or encrypted on an external storage medium stored as they are needed to write and read the memory about their random address unique.
  • Random address transformation in which at least one and the same address part of each address datum of the memory with at least one random number or at least one and the same address part of each address datum of the memory with a random number and at least one other address part of each datum of the memory with at least one further random number change in this way It will be or become that each address datum for addressing a memory is a randomly-determined address unique. The random address transforms are preferably anti and / or equivalence links or anti and / or equivalence links and at least one random bit or bit byte or byte permutation, the anti and / or equivalence links between the Bits of a random number or a plurality of random numbers and the bits of the address of an address part or a plurality of address parts. The allocation of a random number or the assignments of several random numbers to an address takes place or takes place address or Teiladressbereichsmäßig. The selection of the address range or partial address range is controlled in conjunction with at least one comparison of a portion of an address with at least one random number used as the address range limit or sub address range limit.
  • As an alternative to the preceding painting, the randomly determined address transformation maps at least one address part of each address datum of the memory via a look-up table into a randomly determined address unique or more than one address part of each address datum of the memory via a look-up table into random address unique datums. The assignment of an address part to a look-up table takes place at the address or in the partial address range, wherein the selection of the address range or partial address range is controlled in conjunction with at least one comparison of a part of an address with at least one random number used as an address range limit or partial address range limit value. The content of a look-up table is generated from a strictly monotonic sequence of numbers by randomly changing the order, determining the random order changes associated with a random number generator. All contents of the look-up tables are stored in a memory of a processor as long as they are needed to write and read the memory via their randomly determined address unique.

Merkmale einer DatenbehandlungCharacteristics of a data treatment

  • – Vor dem Schreiben eines Datums in einen Speicher wird das Datum durch das Hinzufügen mindestens eines adressabhängigen fehlererkennenden Sicherheitscodes expandiert, anschließend Bit oder Byte oder Bit und Byte permutiert, mit mindestens einer einem Adressteil der Adresse oder des Adressunikats zugeordneten Zufallszahl verschlüsselt und adressenabhängig gesplittet. Die Teildaten des gesplitteten Datums werden auf Speicherplätze gespeichert, die mit einem zufallsbestimmten Adressunikat oder mit mehr als einem zufallsbestimmten Adressunikat ausgewählt sind.- Before writing a date to a memory, the date is expanded by adding at least one address-dependent error-detecting security code, then Bit or byte or bit and byte permutes, with at least one random number assigned to an address part of the address or the address unique, encrypted in an encrypted manner and address-dependently split. The partial data of the split date is stored in memory locations selected with a random address set or with more than one random address unique.
  • – Beim Lesen eines Datums aus einem Speicher werden Teildaten des gesplitteten Datums von einem mit einem zufallsbestimmten Adressunikat ausgewählten Speicherplatz oder von mehreren zufallsbestimmten Adressunikaten ausgewählten Speicherplätzen gelesen, die Teildaten des gesplitteten Datums adressenabhängig zusammengefügt, anschließend mit mindestens einer einem Adressteil der Adresse oder des Adressunikats zugeordneten Zufallszahl entschlüsselt, Bit oder Byte oder Bit und Byte repermutiert. Der adressabhängige fehlererkennende Sicherheitscode wird vom Datum getrennt und ausgewertet. Bei Richtigkeit des Codes werden die gelesenen Daten den Prozessor zur Verfügung gestellt.When reading a date from a memory, partial data of the split date is read from a memory location selected with a random address unique or selected from a plurality of randomly selected address unique, the partial data of the split date address-related, then associated with at least one address part of the address or the address unique Random number decrypted, bit or byte or bit and byte repermutated. The address-dependent error-detecting security code is separated from the date and evaluated. If the code is correct, the read data is made available to the processor.

Merkmale einer alternativen DatenbehandlungFeatures of an alternative data handling

  • – Vor dem Schreiben eines Datums in einen Speicher wird das Datum durch das Hinzufügen mindestens eines adressabhängigen fehlererkennenden Sicherheitscodes expandiert, anschließend fehlerkorrigierend codiert, Bit oder Byte oder Bit und Byte permutiert, mit mindestens einer einem Adressteil der Adresse oder des Adressunikats zugeordneten Zufallszahl verschlüsselt und adressenabhängig gesplittet. Die Teildaten des gesplitteten Datums werden auf Speicherplätze gespeichert, die mit einem zufallsbestimmten Adressunikat oder mit mehr als einem zufallsbestimmten Adressunikat ausgewählt sind. Beim Lesen eines Datums aus einem Speicher werden Teildaten des gesplitteten Datums von einem mit einem zufallsbestimmten Adressunikat ausgewählten Speicherplatz oder von mehreren zufallsbestimmten Adressunikaten ausgewählten Speicherplätzen gelesen, die Teildaten des gesplitteten Datums adressenabhängig zusammengefügt, anschließend mit mindestens einer einem Adressteil der Adresse oder des Adressunikats zugeordneten Zufallszahl entschlüsselt, Bit oder Byte oder Bit und Byte repermutiert und fehlerkorrigierend decodiert. Der adressabhängige fehlererkennende Sicherheitscode wird vom Datum getrennt und ausgewertet. Bei Richtigkeit des Codes werden die gelesenen Daten den Prozessor zur Verfügung gestellt.- Prior to writing a date in a memory, the date is expanded by the addition of at least one address-dependent error-detecting security code, then error-correcting encoded, bit or byte or bit and byte permutated, encrypted with at least one random number associated with an address portion of the address or the address unique and address dependent split. The partial data of the split date is stored in memory locations selected with a random address set or with more than one random address unique. When reading a date from a memory, partial data of the split date is read from a memory location selected by a random address unique or selected from a plurality of random address unique entries, the partial data of the split date is address-dependent, then associated with at least one random number associated with an address portion of the address or address unique decoded, bit or byte or bit and byte repermutiert and error correcting decoded. The address-dependent error-detecting security code is separated from the date and evaluated. If the code is correct, the read data is made available to the processor.
  • – Der adressabhängige fehlererkennende Sicherheitscode wird vor dem Schreiben eines Datums in einem Speicher durch Anti- und/oder Äquivalenz-Verknüpfungen generiert, wobei Bits des zu schreibenden Datums und Bits mindestens eines Adressteils der im Schreibvorgang angesprochenen Adresse anti- und/oder äquivalent verknüpft werden.- The address-dependent error-detecting security code is generated prior to writing a date in a memory by anti and / or equivalence links, whereby bits of the date and bits to be written at least one address portion of the address addressed in the write operation are anti-and / or equivalent linked.
  • – Die Auswertung des adressabhängigen fehlererkennenden Sicherheitscodes enthält Anti- und/oder Äquivalenz-Verknüpfungen von Bits des gelesenen Datums und Bits des adressabhängigen fehlererkennenden Sicherheitscodes und ein Vergleich des Ergebnisses der Anti- und/oder Äquivalenz-Verknüpfungen mit dem beim Schreiben verwendeten gleichen Adressteil der im Lesevorgang angesprochenen Adresse, wobei bei Ungleichheit ein Fehlerflag gesetzt wird. Das Setzen des Fehlerflags löst eine Fehlerbehandlungsroutine in einem Prozessor aus.- The evaluation of the address-dependent error-detecting security code contains anti and / or equivalence links of bits of the read date and bits of the address-dependent error-detecting security code and a comparison of the result of the anti and / or equivalence links with the same address part of the used in writing Address addressed address, in case of inequality an error flag is set. Setting the error flag triggers an error handling routine in a processor.
  • – Bei zufallsbestimmter Adressentransformation einer Adresse in ein zufallsbestimmtes Adressunikat oder zufallsbestimmtes expandiertes Adressunikat mit oder ohne Datumsexpansion schreibt mindestens ein weiterer Prozess oder eine Interrupt-Softwareroutine Zufallszahlen zu zufälligen Zeiten auf Adressen eines, für den Prozess bzw. für die Interrupt-Softwareroutine, festgelegten Adressbereichs eines Speichers oder ein Prozess oder eine Interrupt-Softwareroutine liest Daten von Speicherplätzen zufällig generierter Adressen oder es werden Daten mehrerer Prozesse mischend geschrieben und gelesen.- In the case of random address transformation of an address into a random address unique or random expanded address unique, with or without date expansion, at least one other process or interrupt software routine writes random numbers at random times to addresses of a memory address range specified for the process or interrupt software routine or a process or interrupt software routine reads data from memory locations of randomly generated addresses, or data from multiple processes is mixed written and read.
  • – Alternativ zum vorangehenden Anstrich wird bei zufallsbestimmter Adressentransformation einer Adresse in zufallsbestimmte Adressunikate mit Adressenexpansion oder mit Adressenexpansion und Datenexpansion der prozessorseitige Schreibvorgang in mehrere Teilschreibvorgänge zerlegt, wobei die gesplitteten Daten aufeinanderfolgend auf Speicherplätzen zufallsbestimmter expandierter Adressunikate gespeichert werden. Bei zufallsbestimmter Adressentransformation einer Adresse in zufallsbestimmte Adressunikate mit Adressenexpansion oder mit Adressenexpansion und Datenexpansion wird der prozessorseitige Lesevorgang in mehrere Teillesevorgänge zerlegt, wobei die gesplitteten Daten aufeinanderfolgend von Speicherplätzen zufallsbestimmter expandierter Adressunikate gelesen werden.As an alternative to the preceding painting, random address transformation of an address into random address unicamines with address expansion or with address expansion and data expansion splits the processor-side write operation into a plurality of partial write operations, wherein the split data is sequentially stored in memory locations of randomly-defined expanded address unique data. In the case of random address transformation of an address into random address unicamines with address expansion or with address expansion and data expansion, the processor-side read operation is split into a plurality of partial readings, wherein the split data are successively read from memory locations of randomly-defined expanded address unique items.
  • – Alternativ zu den zwei vorangestellten Anstrichen wird bei zufallsbestimmter Adressentransformation einer Adresse in zufallsbestimmte Adressunikate mit Adressenexpansion und Datenexpansion der prozessorseitige Schreibvorgang in mehrere Teilschreibvorgänge zerlegt, die gesplitteten Daten werden gespeichert auf Speicherplätze zufallsbestimmter expandierter Adressunikate, wobei zufallsbestimmt eine Zufallszahl zwischen den Teilschreibvorgängen der gesplitteten Daten auf ein Speicherplatz eines zufallsbestimmten expandierten Adressunikats geschrieben werden. Bei zufallsbestimmter Adressentransformation einer Adresse in zufallsbestimmte Adressunikate mit Adressenexpansion und Datenexpansion wird der prozessorseitige Lesevorgang in mehrere Teillesevorgänge zerlegt. Die gesplitteten Daten werden von Speicherplätzen zufallsbestimmter expandierter Adressunikate gelesen, wobei zufallsbestimmt zwischen den Teillesevorgängen der gesplitteten Daten von einem Speicherplatz eines zufallsbestimmten expandierten Adressunikats gelesen wird.As an alternative to the two preceding coats, random address transformation of an address into random address unicodes with address expansion and data expansion splits the processor-side write into multiple partial writes, the split data is stored in random randomized address unique locations, randomly randomizing between the partial writes of the split data a storage location of a randomly determined expanded address unique will be written. In a random address transformation of an address in random address unique with address expansion and data expansion, the processor-side read operation is decomposed into several partial reads. The split data is read from locations of randomly-defined expanded address unique items, randomly read between the partial counts of the split data from a randomly-selected expanded address unique location.

Merkmale der Anordnung zum Schutz von Datengeheimnissen in SpeichernFeatures of the device for protecting data secrets in memories

  • – Prozessor mit obigen Verfahrensschritten ausführendem Computerprogramm ist innerhalb eines Schaltkreises als Controller zur Ansteuerung des Speichers integriert oder über eine SPI-Schnittstelle mit einem Speicher verbunden, dessen Speicherplätze einzeln adressierbar sind.- Processor executing the above method steps computer program is integrated within a circuit as a controller for driving the memory or connected via an SPI interface to a memory whose memory locations are individually addressable.
  • – Alternativ zum vorangehenden Anstrich führt eine elektronische Einheit die obigen Verfahrensschritte aus, wobei die elektronische Einheit zwischen Speicher und Speicherverwaltungseinheit oder MMU eines Prozessors oder Bus und Speicher angeordnet ist.As an alternative to the preceding painting, an electronic unit carries out the above method steps, the electronic unit being arranged between memory and memory management unit or MMU of a processor or bus and memory.

Das mit den Merkmalen zum Schutz der Datengeheimnisse gleichzeitig der Schutz vor Datenmanipulationen gewährleistet wird.That with the features to protect the data secrets at the same time the protection against data manipulation is guaranteed.

Erfindungsgemäß wird die Aufgabe durch die in den Ansprüchen dargestellte Lehre gelöst. Im Folgenden wird die Erfindung beispielhaft und detailliert anhand der 1 bis 15 näher erläutert.According to the invention the object is achieved by the teaching presented in the claims. In the following, the invention will be described by way of example and in detail with reference to FIG 1 to 15 explained in more detail.

Im Einzelnen zeigen:In detail show:

1: ein Blockbild eines ersten Ausführungsbeispiels der erfindungsgemäßen Anordnung beim Schreibvorgang eines Datums in einen Speicher 1 : A block diagram of a first embodiment of the arrangement according to the invention in the writing operation of a date in a memory

2: eine Ausführungsart eines Adressentransformationsmodul 2k0 zur Charakterisierung einer zufallsbestimmten Adressentransformation 2 : an embodiment of an address transformation module 2k0 for characterizing a random address transformation

3: eine Ausführungsart eines Adressteiltransformationsmodul 2kj zur Charakterisierung einer zufallsbestimmten Teiladressentransformation 3 : An embodiment of an address sub-transformation module 2kj for characterizing a random partial address transformation

4: eine Ausführungsart eines Datenmoduls 300 zur Charakterisierung der erfindungsgemäßen Datenbehandlung beim Schreibvorgang eines Datums in einen Speicher 4 : an embodiment of a data module 300 for characterizing the data treatment according to the invention in the writing process of a date in a memory

5: eine Ausführungsart eines Moduls 310 zur Charakterisierung der erfindungsgemäßen Generierung eines adressabhängigen fehlererkennenden Sicherheitscodes 5 : an embodiment of a module 310 for characterizing the generation according to the invention of an address-dependent error-detecting security code

6: eine Ausführungsart eines Random-Steuermoduls 340 zur Charakterisierung der zufallsbestimmten und adressenabhängigen Generierung von Permutationssteuerdaten PSD, Zufallsschlüssel Zts und Datensplitter-Steuerdaten DSS 6 : an embodiment of a random control module 340 for characterizing the random and address-dependent generation of permutation control data PSD, random key Zts and data splitter control data DSS

7: das Blockbild des ersten Ausführungsbeispiels der erfindungsgemäßen Anordnung beim Lesevorgang eines Datums aus einem Speicher 7 : the block diagram of the first embodiment of the arrangement according to the invention in the reading operation of a date from a memory

8: das Modul 300 zur Charakterisierung der erfindungsgemäßen Datenbehandlung beim Lesevorgang eines Datums aus einem Speicher 8th : the module 300 for characterizing the data treatment according to the invention in the reading operation of a date from a memory

9: eine Ausführungsart des Adressexpansionsmoduls 201 zur Charakterisierung der erfindungsgemäßen Adressenexpansion 9 : an embodiment of the address expansion module 201 for characterizing the address expansion according to the invention

10: eine Ausführungsart eines Adressexpansionssteuer-Moduls 201/1 10 : An embodiment of an address expansion control module 201/1

11: eine Ausführungsart der Realisierung einer Datenexpansion beim Schreibvorgang in einen Speicher 11 an embodiment of the realization of a data expansion in the write operation in a memory

12: eine Ausführungsart der Realisierung einer Datenexpansion beim Lesevorgang aus einem Speicher 12 an embodiment of the realization of a data expansion during the reading process from a memory

13: ein Blockbild eines zweiten Ausführungsbeispiels der erfindungsgemäßen Anordnung beim Schreibvorgang eines Datums in einen Speicher 13 : A block diagram of a second embodiment of the arrangement according to the invention in the writing operation of a date in a memory

14: ein drittes Ausführungsbeispiel der erfindungsgemäßen Anordnung 14 a third embodiment of the inventive arrangement

15: eine Gegenüberstellung einer Adressierungsart der erfindungsgemäßen Lösung zum Stand der Technik 15 : a comparison of an addressing of the solution according to the invention to the prior art

16: Ein weiteres Ausführungsbeispiels der erfindungsgemäßen Lösung 16 : Another embodiment of the solution according to the invention

In dem Blockbild, 1, sind dargestellt, eine erfindungsgemäße Anordnung 100 mit Adressbus 101, Datenbus 102, Schreib-Lesesteuerbus 103 und einem Adress-Datenmodul 110. Das Adress-Datenmodul 110 umfasst ein Adressmodul 200 und ein Datenmodul 300. Das Adressmodul 200 setzt sich zusammen aus den Adressentransformationsmodulen 210 bis 2p0 und Adressexpansionsmodul 201. Jeder der Adressentransformationsmodule 210 bis 2p0 ist mit dem Adressexpansionsmodul 201 verknüpft. Über dem Adressexpansionsmodul 201 und einem weiteren Adressbus 111 ist das Adressmodul 200 mit den Adresseingängen eines Speichers 401 verbunden. Das Datenmodul 300 ist über einen Datenbus 112 mit den Dateneingängen des Speichers 401 gekoppelt.In the block picture, 1 are shown, an inventive arrangement 100 with address bus 101 , Data bus 102 , Read-write control bus 103 and an address data module 110 , The address data module 110 includes an address module 200 and a data module 300 , The address module 200 consists of the address transformation modules 210 to 2p0 and address expansion module 201 , Each of the address transformation modules 210 to 2p0 is with the address expansion module 201 connected. Above the address expansion module 201 and another address bus 111 is the address module 200 with the address inputs of a memory 401 connected. The data module 300 is via a data bus 112 with the data inputs of the memory 401 coupled.

Der Speicher 401 ist in diesem Ausführungsbeispiel ein externer Speicher als Datenspeicher oder Arbeitsspeicher. Als Datenspeicher dient er der Speicherung von Programmcodedaten oder sonstigen Daten aller Art.The memory 401 is in this embodiment, an external memory as a data memory or memory. As a data store, it serves to store program code data or other data of all kinds.

Der Speicher 401 ist vorteilhafterweise ein Speicher wie z. B. SRAM oder FRAM, bei dem jeder Speicherplatz adressmäßig einzeln geschrieben und gelesen werden kann.The memory 401 is advantageously a memory such. SRAM or FRAM, where each memory location can be individually written and read by address.

In 2 ist beispielhaft eine Ausführungsart eines Adressentransformationsmoduls 2k0 mit k = 1, ..., p dargestellt. Gezeigt werden für einen 32 Bit breiten Adressbus 101 eine Aufteilung des Gesamtadressbereiches ADRi in Teiladressbereiche ADRij und die ihnen zugeordneten Adressteiltransformationsmodule 2kj mit j = 1, ..., 4. Die Ausgänge jedes Adressteiltransformationsmodul 2kj sind mit einem Byte-Permutationsmodul 2k5 verbunden. Die Adressteiltransformationsmodule 2kj mit j = 1, ..., 4 und das Byte-Permutationsmodul 2k5 stehen in Verbindung mit dem Datenbus 102.In 2 is an example of an embodiment of an address transformation module 2k0 represented by k = 1, ..., p. Shown are for a 32 bit wide address bus 101 a division of the total address range ADRi into partial address ranges ADRij and their associated address transformation modules 2kj with j = 1, ..., 4. The outputs of each address sub-transformation module 2kj are with a byte permutation module 2k5 connected. The address transformation modules 2kj with j = 1, ..., 4 and the byte permutation module 2k5 are connected to the data bus 102 ,

In 3 ist eine Ausführungsart eines Adressteiltransformationsmodul 2kj abgebildet. Im Einzelnen besteht das Modul aus einem Vergleicher 2kj1, Datenregister 2kj2, 2kj3, 2kj4, Teiladressenverschlüsselungsmodul 2kj5 und Datenumschalter 2kj6. Das Datenregister 2kj2 speichert einen Teiladressbereichsgrenzwert AZGj. Das Datenregister 2kj3 enthält eine Zufallszahl Zj1 für die teiladressbereichsmäßige Verschlüsselung eines Adressteils eines Adressdatums. Im Datenregister 2kj4 steht eine weitere Zufallszahl, dessen höchstwertigem Bit das negierte höchstwertige Bit der Zufallszahl Zj1 ist und alle weiteren Bits dieser Zufallszahl von einer Zufallszahl des nichtdargestellten Zufallsgenerators sind.In 3 is one embodiment of an address sub-transformation module 2kj displayed. In detail, the module consists of a comparator 2KJ1 , Data register 2kj2 . 2kj3 . 2kj4 , Sub address encryption module 2kj5 and data switcher 2kj6 , The data register 2kj2 stores a partial address range limit AZGj. The data register 2kj3 contains a random number Zj1 for the partial address area encryption of an address part of an address datum. In the data register 2kj4 is another random number whose most significant bit is the negated most significant bit of the random number Zj1 and all other bits of this random number are of a random number of the unrepresented random number generator.

Die Funktionsweise des Adressteiltransformationsmoduls 2kj ergibt sich aus 3. Bei einem Schreib- oder Lesevorgang liegt der Adressteil des Teiladressbereiches ADRij Bit(y...x) an dem Vergleicher 2kj1 an. Dieser vergleicht die Teiladresse mit dem Teiladressbereichsgrenzwert AZGj. Je nach Vergleichsergebnis schaltet der Datenumschalter den Wert des Datenregisters 2kj3 oder den Wert des Registers 2kj4 an einen der Eingänge des Teiladressenverschlüsselungsmodul 2kj5. Das Teiladressenverschlüsselungsmodul 2kj5 verschlüsselt bitweise die Teiladresse mit der anliegenden Zufallszahl über eine anti- oder äquivalente Operation.The operation of the address sub-transformation module 2kj turns out 3 , In a write or read operation, the address portion of the partial address range ADRij bit (y ... x) is located at the comparator 2KJ1 at. This compares the subaddress with the subaddress range limit AZGj. Depending on the result of the comparison, the data switcher switches the value of the data register 2kj3 or the value of the register 2kj4 to one of the inputs of the subaddress encryption module 2kj5 , The subaddress encryption module 2kj5 bitwise encrypts the partial address with the adjacent random number via an anti- or equivalent operation.

Eine beispielhafte Ausführungsart eines Datenmoduls 300 ist in 4 dargestellt. Einzelne Bestandteile des Datenmoduls 300 sind ein Modul 311 zur Generierung eines adressabhängigen fehlererkennenden Sicherheitscodes, ein Modul 321 zur fehlerkorrigierenden Codierung, ein Permutationsmodul 331, ein Random-Steuermodul 340, ein Datenverschlüsselungsmodul 351 und ein Datensplitter 361. Die Verschaltung der einzelnen Module sind der 4 zu entnehmen. Über den Datenbus 102 werden die Register der Module 311 und 340 mit Zufallswerte voreingestellt. Das Modul 311 besteht, wie aus 5 zu erkennen, aus einem anti- und/oder äquivalent verknüpfendem Operatormodul 311/1. Das Modul 311 generiert vor dem Schreiben eines Datums in einen Speicher den adressabhängigen fehlererkennenden Sicherheitscode. Dabei werden Bits des zu schreibenden Datums und Bits mindestens eines Adressteils ADRi Bit(u...v) der im Schreibvorgang angesprochenen Adresse anti- oder äquivalent verknüpft. Das, mit dem adressabhängigen fehlererkennenden Sicherheitscode, expandierte Datum wird entweder gleich im Permutationsmodul 331 oder nach einer fehlerkorrigierenden Codierung im Modul 321 Bit oder Byte oder Bit-Byte permutiert. Als fehlerkorrigierende Codierung wird ein Standard fehlerkorrigierender Code verwendet.An exemplary embodiment of a data module 300 is in 4 shown. Individual components of the data module 300 are a module 311 for generating an address-dependent error-detecting security code, a module 321 for error-correcting coding, a permutation module 331 , a random control module 340 , a data encryption module 351 and a data splitter 361 , The interconnection of the individual modules is the 4 refer to. Via the data bus 102 become the registers of the modules 311 and 340 pre-set with random values. The module 311 is how it looks 5 from an anti- and / or equivalent linking operator module 311/1 , The module 311 generates the address-dependent error-detecting security code before writing a date to a memory. In this case, bits of the data to be written and bits of at least one address part ADRi bits (u... V) of the addressed address in the write operation are anti- or equivalently linked. The expanded date, with the address-dependent error-detecting security code, is either equal in the permutation module 331 or after an error-correcting coding in the module 321 Bit or byte or bit byte permuted. The error-correcting coding used is a standard error-correcting code.

Die Permutation wird mit dem zufallsbestimmten Permutationssteuerdatum PSD gesteuert. Nach der Permutation des expandierten Datums erfolgt im Datenverschlüsselungsmodul 351 mit der Zufallszahl Zts eine adressabhängige Zufallsverschlüsselung. Das Datenverschlüsselungsmodul 351 verknüpft bitweise jedes Bit des permutierten expandierten Datums mit einem Bit der Zufallszahl Zts. Als Verknüpfungsoperatian kommt eine Anti- oder Äquivalenzoperation oder eine Anti- und Äquivalenzoperation zur Anwendung. Am Ausgang des Datenverschlüsselungsmoduls 351 ist aus äußerer Sichtweise jeglicher Bezug zu irgendeinem Datumsbit aufgehoben. Der sich anschließende Datensplitter 361 splittet (teilt), gesteuert durch das Datensplittersteuerdatum DSS, das verschlüsselte permutierte expandierte Datum in Teildaten auf und speichert jedes Teildatum aufeinanderfolgend auf die Speicherplätze, die mit den zufallsbestimmten Adressunikaten ADR1i, ..., ADRpi ausgewählt sind.The permutation is controlled with the random permutation control data PSD. After the permutation of the expanded date takes place in the data encryption module 351 with the random number Zts an address-dependent random coding. The data encryption module 351 bitwise links each bit of the permuted expanded date to a bit of the random number Zts. As a link operation an anti or equivalent operation or an anti and equivalent operation is used. At the output of the data encryption module 351 From an external point of view, any reference to any date bit is canceled. The subsequent data splitter 361 under the control of the data splitter control data DSS, splits (partitions) the encrypted permuted expanded data into sub-data and sequentially stores each sub-data in the memory locations selected with the random address unique data ADR1i, ..., ADRpi.

Der Index p hängt davon ab, wie die Adressenexpansion und die zufallsbestimmte Datenabspeicherung im Speicher 401 erfindungsgemäß ausgeführt werden. P ist gleich zwei, wenn das verschlüsselte permutierte expandierte Datum in zwei Teildaten gesplittet wird.The index p depends on how the address expansion and the random data storage in the memory 401 be carried out according to the invention. P is equal to two if the encrypted permuted expanded date is split into two sub-data.

P ist gleich drei, wenn das verschlüsselte permutierte expandierte Datum 24 Bit breit ist und der Datensplitter in Byte-Teildaten splittet.P equals three if the encrypted permuted expanded date is 24 bits wide and the data splitter splits into byte sub data.

6 zeigt beispielhaft den Inhalt des Random-Steuermoduls 340. Es beinhaltet Datenregister 341, 344, Vergleicher 342, Zuordnungstabellen oder Zuordnungslogik 343, anti- und/oder äquivalent verknüpfende Bitoperatoren 345, 346 und einem Datenumschalter 347. Die Datenregister 341 enthalten Zufallsgrenzwerte. Die Vergleicher 342 vergleichen den Teiladresswert des zugeordneten Teiladressbereichs mit den Zufallsgrenzwerten. Die Vergleichsergebnisse der Vergleicher 342 werden über die Zuordnungstabellen 343 so verknüpft, dass je Zuordnungstabelle genau ein Zufallsregister 344 angesprochen wird, der seine gespeicherte Zufallszahl zum Datenumschalter 347 ausgibt. Das Verknüpfungsergebnis des Bitoperators 345 steuert zufällig die Auswahl der auszugebenen Zufallszahl Zts. 6 shows by way of example the contents of the random control module 340 , It contains data registers 341 . 344 , Comparator 342 , Allocation tables or allocation logic 343 , anti and / or equivalent bit operators 345 . 346 and a data switcher 347 , The data registers 341 contain random limits. The comparators 342 compare the partial address value of the assigned partial address range with the random limit values. The comparison results of the comparators 342 be through the mapping tables 343 so linked, that per allocation table exactly one random register 344 which addresses its stored random number to the data switcher 347 outputs. The result of the join of the bit operator 345 randomly controls the selection of the random number Zts to be output.

Das Random-Steuermodul 340 generiert auch das Permutationssteuerdatum PSD. In der beispielhaften Ausführungsart ist das Permutationssteuerdatum die Bitzusammensetzung zweier Bitausgänge der Zuordnungstabellen 343.The Random Control Module 340 also generates the permutation control date PSD. In the exemplary embodiment, the permutation control data is the bit composition of two bit outputs of the mapping tables 343 ,

Das vom Random-Steuermodul 340 erzeugte Datensplittersteuerdatum DSS wird ebenfalls aus den Bitausgängen der Zuordnungstabellen 343 abgeleitet. In der 6 hat das Datensplittersteuerdatum DSS eine Bit-Breite von einem Bit. Damit ist ein Datensplitten in zwei Teildaten möglich.That from the Random Control Module 340 generated data splitter control data DSS is also from the bit outputs of the allocation tables 343 derived. In the 6 The data splitter control data DSS has a bit width of one bit. This makes a data split into two partial data possible.

In 7 ist das Blockbild des ersten Ausführungsbeispiels der erfindungsgemäßen Anordnung beim Lesevorgang eines Datums aus einem Speicher dargestellt. Die Funktionsweise des Adressmoduls 200 ist identisch mit der Funktionsweise beim Schreibvorgang. Die Funktionsweise des Datenmoduls 300 geht aus 8 hervor.In 7 the block diagram of the first embodiment of the arrangement according to the invention in the reading of a date from a memory is shown. The operation of the address module 200 is identical to how it works when writing. The functioning of the data module 300 comes from 8th out.

Beim Lesen eines Datums aus einem Speicher werden Teildaten des gesplitteten Datums von einem mit einem zufallsbestimmten Adressunikat ausgewählten Speicherplatz oder von mehreren zufallsbestimmten Adressunikaten ausgewählten Speicherplätzen gelesen, die Teildaten des gesplitteten Datums werden im Modul 362 adressenabhängig zusammengefügt, anschließend im Datenentschlüsselungsmodul 352 mit mindestens einer einem Adressteil der Adresse oder des Adressunikats zugeordneten Zufallszahl entschlüsselt. Die entschlüsselten Daten werden im Re-Permutationsmodul 332 Bit oder Byte oder Bit und Byte repermutiert. Die Steuerung des Re-Permutationsmodul 332 erfolgt ebenfalls mit den Permutationssteuerdatum PSD. Je nach Ausführungsart werden die re-permutierten Daten im Modul 322 fehlerkorrigierend decodiert oder direkt im Modul 312 der adressabhängige fehlererkennende Sicherheitscode vom Datum getrennt und ausgewertet. Die Auswertung des adressabhängigen fehlererkennenden Sicherheitscodes enthält Anti- oder Äquivalenz-Verknüpfungen von Bits des gelesenen Datums und Bits des adressabhängigen fehlererkennenden Sicherheitscodes und ein Vergleich des Ergebnisses der Anti- oder Äquivalenz-Verknüpfungen mit dem beim Schreiben verwendeten gleichen Adressteil der im Lesevorgang angesprochenen Adresse, wobei bei Ungleichheit ein nichtdargestelltes Fehlerflag gesetzt wird. Das Setzen des Fehlerflags löst eine Fehlerbehandlungsroutine in einem Prozessor aus.When reading a date from a memory, partial data of the split date is read from a memory location selected with a random address unique or from several randomly selected address unique memory locations, the partial data of the split date are in the module 362 Merged address-dependent, then in the data decryption module 352 decrypted with at least one random number associated with an address part of the address or the address unique. The decrypted data is in the re-permutation module 332 Bit or byte or bit and byte repermutiert. The control of the re-permutation module 332 is also done with the permutation control date PSD. Depending on the type of execution, the re-permuted data in the module 322 error correcting decoded or directly in the module 312 the address-dependent error-detecting security code is separated from the date and evaluated. The evaluation of the address-dependent error-detecting security code contains anti-or equivalence links of bits of the read-date and error-detecting security code bits and a comparison of the result of the anti-equivalence links with the same address part of the address addressed in the write, wherein if unequal, an unrepresented error flag is set. Setting the error flag triggers an error handling routine in a processor.

9 zeigt zur Charakterisierung der erfindungsgemäßen Adressenexpansion eine Ausführungsart des Adressexpansionsmodul 201. 9 shows an embodiment of the address expansion module for characterizing the address expansion according to the invention 201 ,

Bestandteile des Adressexpansionsmoduls 201 sind ein Adressexpansionssteuer-Modul 201/1, ein Zufallsadresszahlen-FIFO-Speicher 201/2, Adressenverschlüsselungsmodul 201/3 und Datenumschalter 201/4, 201/5. Die Verschaltung der einzelnen Bestandteile ist aus 9 erkennbar.Components of the address expansion module 201 are an address expansion control module 201/1 , a random address number FIFO memory 201/2 , Address encryption module 201/3 and data switcher 201/4 . 201/5 , The interconnection of the individual components is off 9 recognizable.

Das Adressexpansionsmodul 201 ermöglicht mehrere Adressexpansionsvarianten. Eine Adressexpansionsvariante ist dadurch gekennzeichnet, dass das Adressdatensteuersignal ADS1 den Datenumschalter 201/4 innerhalb eines prozessorseitigen Schreibvorganges pro Teilschreibvorgang oder innerhalb eines prozessorseitigen Lesevorganges pro Teillesevorgang von Stellung 1 zu Stellung p schaltet. Der Umschalter 201/5 verbleibt bei dieser Ausführungsvariante in Stellung 0.The address expansion module 201 allows multiple address expansion variants. An address expansion variant is characterized in that the address data control signal ADS1 the data switch 201/4 switches from position 1 to position p within a processor-side write process per partial write operation or within a processor-side read process per partial process. The switch 201/5 remains in this embodiment in position 0.

Eine andere Ad ressexpansionsvariante realisiert die Adressexpansion zum Einfügen eines zusätzlichen Teilschreibvorganges zum Schreiben einer Zufallszahl auf einen Speicherplatz, dessen Adresse sich aus einer mit dem zufallsbestimmten Adressunikat zADRki verschlüsselten und aus 201/2 entnommenen Zufallsadresszahl und den Biterweiterungen Bitp...0 zusammensetzt. Bei einem prozessorseitigem Lesevorgang mit Einfügen eines zusätzlichen Teillesevorganges von einem Speicherplatz, dessen Adresse sich aus einer mit dem zufallsbestimmten Adressunikat zADRki verschlüsselten und aus 201/2 entnommenen Zufallsadresszahl und den Biterweiterungen Bitp...0 zusammensetzt.Another ad ressexpansionsvariante realizes the address expansion for inserting an additional partial writing process for writing a random number to a memory location whose address is encrypted from one with the randomly determined address unique zADRki and off 201/2 taken Random address number and the bit extensions Bitp ... 0 composed. In a processor-side read with insertion of an additional partial operation of a memory location whose address is encrypted from one with the randomly determined address unique zADRki and off 201/2 taken Random address number and the bit extensions Bitp ... 0 composed.

Das Umschalten des Umschalters 201/5, d. h. das Einfügen eines Teilschreib- oder Teillesevorganges, wird über das, von dem Adressexpansionssteuer-Modul 201/1 bereitgestellte Umschaltzufallsdatum uZD gesteuert.Switching the switch 201/5 That is, the insertion of a partial write or partial write is done via the, from the address expansion control module 201/1 provided shift random data uZD controlled.

Eine beispielhafte Ausführungsart des Adressexpansionssteuer-Moduls 201/1 ist in 10 dargestellt.An exemplary embodiment of the address expansion control module 201/1 is in 10 shown.

In einem Steuermodul 201/11 zur Steuerung der Teilschreib- und Teillesevorgänge ist der Ort des Einfügen des zusätzlichen Teilschreib- und Teillesevorganges in Abhängigkeit von den zufallsbestimmten Vergleichsergebnissen ZVEj beschrieben. Über einen Zähler 201/12 wird das Adressdatensteuersignal ADS1 abgeleitet. Der Zähler 201/12 ist ein Vorwärtszähler, der zu Beginn eines prozessorseitigen Schreib- oder Lesevorganges von Null bis p zählt, danach sich auf null zurücksetzt. Der Zählerwert stellt die Erweiterungsbits Bitp...1 der expandierten Adressunikate ADR1i, ..., ADRpi dar. Das Erweiterungsbit Bit0 entspricht beim Einfügen eines Teilschreibvorganges zum Schreiben einer zusätzlichen Zufallszahl dem zufallsbestimmten Vergleichsergebnis zVE3, das durch logische Verknüpfung der zufallsbestimmten Vergleichsergebnisse zVE31, ..., zVE34 abgeleitet ist. Für die Teilschreibvorgänge der sonstigen verschlüsselten Daten ist das Erweiterungsbit Bit0 das inverse Vergleichsergebnis /zVE3. Die Auswahl von zVE3 oder /zVE3 wird durch das Umschaltzufallsdatum uZD gesteuert.In a control module 201/11 In order to control the partial write and partial read operations, the place of insertion of the additional partial write and partial readings in dependence on the randomly determined comparison results ZVEj is described. About a counter 201/12 the address data control signal ADS1 is derived. The counter 201/12 is a Up-counter counting from zero to p at the beginning of a processor-side write or read, then resetting to zero. The counter value represents the extension bits Bitp ... 1 of the expanded Adressunikate ADR1i, ..., ADRpi. The extension bit Bit0 corresponds to the insertion of a partial write to write an additional random number the randomly determined result of comparison zVE3, by logically combining the random comparison results zVE31,. .., ZVE34 is derived. For the partial write operations of the other encrypted data, the extension bit Bit0 is the inverse comparison result / zVE3. The selection of zVE3 or / zVE3 is controlled by the switchover random data uZD.

11 zeigt die Erweiterung des Datenmoduls 300 für das Einfügen einer zusätzlichen Zufallszahl ZUZr für den Teilschreibvorgang der zwischen den Teilschreibvorgängen der gesplitteten Daten auf einen Speicherplatz eines zufallsbestimmten expandierten Adressunikats ausgeführt wird. 11 shows the extension of the data module 300 for inserting an additional random number ZUZr for the partial write operation which is executed between the partial writes of the split data to a storage location of a randomly determined expanded address unique.

Für das Einfügen schaltet der Datenumschalter 381 mit dem Umschaltzufallsdatum uZD auf den Ausgang eines Zufallszahlen-Daten-FIFO 370 um.The data switcher switches for insertion 381 with the switchover random data uZD to the output of a random number data FIFO 370 around.

Die Erweiterung des Datenmoduls 300 beim zusätzlichen Teillesevorgang geht aus 12 hervor. Beim zusätzlichen Teillesevorgang liegt am Eingang des Datenumschalters 382 ein Datum vom Speicherplatz des zusätzlich zufallsbestimmt eingefügten Adressunikats an. Der Datenumschalter unterbricht die Verbindung zum Modul 362. Das gelesene Datum ZUZr wird ignoriert.The extension of the data module 300 at the additional partial process goes off 12 out. The additional partial process is at the input of the data switch 382 a date from the memory location of the additionally randomly inserted address unique. The data switch interrupts the connection to the module 362 , The read date ZUZr is ignored.

Ein zweites Ausführungsbeispiel der erfindungsgemäßen Lösung ist in 13 dargestellt. Das Blockbild der erfindungsgemäßen Anordnung 100 adressiert den externen Speicher 402 über die Adressbusse 111a und 111b mit den parallelen zufallsbestimmten Adressunikaten zADRui und zADRvi. Bei einem Schreibvorgang wird auf jedem mit den zufallsbestimmten Adressunikaten zADRui oder zADRvi angesprochenen Speicherplatz das zufallsverschlüsselte Datum zDATwi oder zDATzi parallel geschrieben. In diesem Ausführungsbeispiel besteht der Speicher 402 aus zwei Speicherbänken 402a und 402b. Das Adressmodul 200 enthält die Adressentransformationsmodule 210, 220 und ein Adressexpansionsmodul 202. Die Adressentransformationsmodule 210, 220 liefern die zufallsbestimmten Adressunikate, die von dem Adressexpansionsmodul 202 auf die externen Adressbusse 111a und 111b parallel ausgegeben werden.A second embodiment of the solution according to the invention is in 13 shown. The block diagram of the arrangement according to the invention 100 addresses the external memory 402 over the address buses 111 and 111b with the parallel random address unique zADRui and zADRvi. During a write operation, the randomly encrypted data zDATwi or zDATzi is written in parallel on each memory location addressed with the randomly determined address unique data zADRui or zADRvi. In this embodiment, the memory is composed 402 from two memory banks 402a and 402b , The address module 200 contains the address transformation modules 210 . 220 and an address expansion module 202 , The address transformation modules 210 . 220 provide the random address unique items received from the address expansion module 202 to the external address buses 111 and 111b be output in parallel.

Das Datenmodul 302 unterscheidet sich vom Datenmodul 301 beim Schreibvorgang eines Datums auf einen Speicher nur in der Art des Datensplittens. Das Datensplitten ist im Datenmodul 302 eine Art der parallelen Aufteilung des von dem Datenverschlüsselungsmodul 351 gesendeten verschlüsselten Datums.The data module 302 is different from the data module 301 when writing a date to a memory only in the manner of data splitting. The data splitting is in the data module 302 a kind of parallel partitioning of the data encryption module 351 sent encrypted date.

14 zeigt ein drittes Ausführungsbeispiel der erfindungsgemäßen Anordnung 100. Die dort dargestellte Anordnung unterscheidet sich von der Anordnung in 1 nur dadurch, dass der Speicher 400 innerhalb von 100 liegt. Der Speicher 400 dient in diesem Fall als Programmcode- und/oder Datenspeicher. 14 shows a third embodiment of the inventive arrangement 100 , The arrangement shown there differs from the arrangement in 1 only by the fact that the memory 400 within 100 lies. The memory 400 serves in this case as a program code and / or data memory.

In 15 ist beispielhaft die erfindungsgemäße Lösung dem Stand der Technik gegenübergestellt. Im Modul 600 ist eine Speicheradressierung über ein kombiniertes Segmentation/Paging System dargestellt. Nach dem Stand der Technik wird der Speicher 500 mit der, aus der logischen Adresse abgeleitete, physikalische Adresse angesprochen. Bei der erfindungsgemäßen Lösung wird die physikalische Adresse über dem Adressmodul 200 zufallsbestimmt adresstransformiert. Die zufallsbestimmte Adressentransformation einer physikalischen Adresse in ein zufallsbestimmtes Adressunikat erfolgt mit oder ohne einer Datumsexpansion oder erfolgt in zufallsbestimmte Adressunikate mit einer Adressenexpansion oder in zufallsbestimmte Adressunikate mit einer Adressen- und Datenexpansion, wobei bei zufallsbestimmter Adressentransformation einer Adresse in ein zufallsbestimmtes Adressunikat oder in zufallsbestimmte Adressunikate mit Datumsexpansion dem Datum einen adressabhängigen fehlererkennende Sicherheitscode oder einen adressabhängigen fehlererkennenden Sicherheitscode und eine Zufallszahl hinzugefügt wird.In 15 By way of example, the solution according to the invention is compared with the prior art. In the module 600 a memory addressing via a combined segmentation / paging system is shown. According to the prior art, the memory 500 addressed with the, derived from the logical address, physical address. In the solution according to the invention, the physical address is above the address module 200 Randomly address-transformed. The random address transformation of a physical address into a random address unique with or without a date expansion or takes place in random Adressunikate with an address expansion or random Adressunikate with an address and data expansion, wherein in random address transformation of an address in a random address unique or in random Adressunikate with Date expansion is added to the date an address-dependent error-detecting security code or an address-dependent error-detecting security code and a random number.

16 ist ein weiteres Ausführungsbeispiels der erfindungsgemäßen Lösung dargestellt. Gezeigt sind die erfindungsgemäße Anordnung 100, zwei in Bearbeitung befindende Prozesse 701, 702, ein SPI-Interface 800 und ein FRAM-Speicher mit SPI-Interface 900. Des Weiteren sind ein Schreibzyklus auf der Leitung 901 und ein Lesezyklus auf den Leitungen 901 und 902 aufgezeigt. Außer der op-Code sind alle Daten erfindungsgemäß zufallsbestimmt verschlüsselt. Die Symbolik _P1 und _P2 in den Angaben der Schreib- und Lesezyklen kennzeichnen die aktiven Prozesse 1 und 2. 16 is shown a further embodiment of the solution according to the invention. Shown are the inventive arrangement 100 , two processes in progress 701 . 702 , an SPI interface 800 and a FRAM memory with SPI interface 900 , There is also a write cycle on the line 901 and a read cycle on the lines 901 and 902 demonstrated. Apart from the op-code, all data are randomly encrypted according to the invention. The symbols _P1 and _P2 in the specifications of the write and read cycles identify the active processes 1 and 2.

Vorteile der ErfindungAdvantages of the invention

Die erfindungsgemäße Lösung besitzt gegenüber dem Stand der Technik folgende Vorteile:

  • – ONE-TIME-PAD gesicherter Schutz der Datengeheimisse durch erfindungsgemäße Expansion eines Datums mit adressabhängigen fehlererkennenden Sicherheitscode, Bit oder Byte oder Bit und Byte-Permutation, bitweiser Zufallsverschlüsselung und mit anschließender datenaufgeteilter Speicherung auf getrennte zufallsbestimmte Speicherplätze eines Speichers mit angemessener Speicherkapazität (Zuordnung getrennter Datenteile durch einen Dritten im Speicher letztlich nicht möglich.)
  • – ONE-TIME-PAD gesicherter Schutz vor Datenmanipulation durch erfindungsgemäßes Mischen von Bits und Bytes des adressabhängigen fehlererkennenden Sicherheitscode und den Bits oder Bytes des zu speichernden Datums mit anschließender Zufallsverschlüsselung und getrenntes Speichern auf zufallsbestimmte Adressplätze des Speichers (Zuordnung der Bit zum Datum und zum adressenabhängigen fehlererkennenden Fehlercode durch einen Dritten scließlich nicht möglich.)
  • – Mischen von verschiedenen Speicherschreib- und Speicherlesevorgängen unterbindet das Zuordnen eines Datums zum Prozess.
  • – Zufallsbestimmtes Abspeichern von Zufallszahlen in einem begrenzten Adressbereich auf Speicherplätze zufallsbestimmter Adressunikate erschweren das Aufspüren von verschlüsselten permutierten expandierten Datenteilen.
  • – Einfügen eines zufallsbestimmten Teilschreibvorgangs zum Schreiben einer Zufallszahl in der Reihenfolge von Teilschreibvorgangen der gesplitteten Datenteile verhindert auch beim Beobachten der Schreibvorgange die Zuordnung zum Datum.
  • – Mischen von verschlüsselten, permutierten expandierten Programmcodedaten mit sonstigen anders verschlüsselten, permutierten, expandierten Daten schützt Programmcode vor Maschinencode-Rückübersetzung.
  • – Programmparameter, Nutzerschlüssel u. a. m., die in den Daten des Programmcodes enthalten sind, können somit geschützt werden.
  • – Sicherheitsrelevante Daten wie Passwörter, Zertifikate und anderes mehr können somit abgesichert werden.
  • – Keine neuen Speicherverwaltungsmechanismen erforderlich. Etablierten Speicherverwaltungsmechanismen zufügbar.
  • – Real-World-Attacken wie Zeitangriffe, Stromanalysen, Auswertung elektromagnetischer Felder, Speicherauslesen durch Antasten von Leitungen oder durch Mikroskopie, Tampering sind letztendlich unterbunden.
The solution according to the invention has the following advantages over the prior art:
  • Secure protection of the data secrets by ONE-TIME-PAD invention expansion of a date with address-dependent error-detecting security code, bit or byte or bit and byte permutation, bitwise random encryption and subsequent data-separated storage on separate random Storage locations of a storage with adequate storage capacity (assignment of separate data parts by a third party in the storage ultimately not possible.)
  • - ONE-TIME-PAD secured protection against data manipulation by mixing according to the invention bits and bytes of the address-dependent error-detecting security code and the bits or bytes of the data to be stored with subsequent random encryption and separate storage on random address locations of the memory (assignment of the bit to the date and the address-dependent error-detecting error code by a third party finally not possible.)
  • - Mixing different memory write and memory reads prevents the assignment of a datum to the process.
  • Randomly storing random numbers in a limited address range on storage locations of randomly determined address items makes the detection of encrypted permuted expanded data items difficult.
  • - Inserting a random partial write to write a random number in the order of partial write operations of the split data parts also prevents the assignment to the date when observing the write operations.
  • - Mixing encrypted, permuted expanded program code data with other differently encrypted, permuted, expanded data protects program code from machine code back translation.
  • - Program parameters, user keys, etc., which are contained in the data of the program code, can thus be protected.
  • - Security-relevant data such as passwords, certificates and more can thus be secured.
  • - No new storage management mechanisms required. Established memory management mechanisms available.
  • - Real-world attacks such as time attacks, power analysis, evaluation of electromagnetic fields, memory readings by probing lines or by microscopy, tampering are ultimately prevented.

Der in den beiden ersten Anstrichen aufgeführte ONE-TIME-PAD-Schutz bezieht sich auf die Betrachtung des gesamten Datenmassivs im kompletten Speicher.The ONE-TIME PAD protection listed in the first two coats refers to the consideration of the entire data mass in the entire memory.

ZITATE ENTHALTEN IN DER BESCHREIBUNG QUOTES INCLUDE IN THE DESCRIPTION

Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.This list of the documents listed by the applicant has been generated automatically and is included solely for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions.

Zitierte PatentliteraturCited patent literature

  • US 020110047375 A1 [0005] US 020110047375 A1 [0005]
  • DE 102008010792 B4 [0006] DE 102008010792 B4 [0006]
  • WO 002011015510 A1 [0007, 0009] WO 002011015510 A1 [0007, 0009]
  • DE 102008026697 A1 [0010] DE 102008026697 A1 [0010]
  • DE 102008054627 A1 [0011] DE 102008054627 A1 [0011]
  • US 2006/0008084 [0012] US 2006/0008084 [0012]

Zitierte Nicht-PatentliteraturCited non-patent literature

  • „Vorgang einer algorithmischen ablaufenden Informationsverarbeitung” angesehen wird./Stallings, W.: Operating Systems, Internals and Design Principles. ISBN 0-13-147954-7/ [0014] "Process of algorithmic information processing in progress." / Stallings, W .: Operating Systems, Internals and Design Principles. ISBN 0-13-147954-7 / [0014]

Claims (10)

Verfahren zum Schutz von Datengeheimnissen in Speicher, indem die Auswahl einer Speicherzelle mit einem als Unikat verwendeten und auf die Speicherzelle bezogenen Adressdatum erfolgt, dadurch gekennzeichnet, – dass vor oder bei einer Adressierung eines Speichers eine zufallsbestimmte Adressentransformation ausgeführt wird, die das als Unikat verwendete Adressdatum zufallsbestimmt in mindestens ein neues Adressunikat abbildet, und – dass die Daten, die in einen Speicher geschrieben werden, mit mindestens einer adressabhängig ausgewählten Zufallszahl verschlüsselt werden.Method for protecting data secrets in memory by selecting a memory cell having an address datum used as unique and relating to the memory cell, characterized in that - before or during addressing of a memory, a randomly determined address transformation is performed which uses the address datum used as unique Randomly maps into at least one new address unique, and - that the data written to a memory is encrypted with at least one address-selected random number. Verfahren nach Anspruch 1 dadurch gekennzeichnet, – dass die zufallsbestimmte Adressentransformation einer Adresse in ein zufallsbestimmtes Adressunikat ohne oder mit einer Datumsexpansion oder in zufallsbestimmte Adressunikate mit einer Adressenexpansion oder in zufallsbestimmte Adressunikate mit einer Adressen- und Datenexpansion verbunden ist, wobei bei zufallsbestimmter Adressentransformation einer Adresse in ein zufallsbestimmtes Adressunikat oder in zufallsbestimmte Adressunikate mit Datumsexpansion dem Datum einen adressabhängigen fehlererkennenden Sicherheitscode oder einen adressabhängigen fehlererkennenden Sicherheitscode und eine Zufallszahl hinzugefügt wird.Method according to claim 1, characterized - That the random address transformation of an address in a random address uniqueness with or without a date expansion or in Random Adressunikate with an address expansion or random Adressunikate with an address and data expansion is connected, wherein in random address transformation of an address in a random address unique or random address unique with date expansion, the date is added an address-dependent error-detecting security code or an address-dependent error-detecting security code and a random number. Verfahren nach Anspruch 1 oder 2 dadurch gekennzeichnet, – dass die zufallsbestimmte Adressentransformation mindestens ein und denselben Adressenteil jedes Adressdatums des Speichers mit mindestens einer Zufallszahl oder mindestens ein und denselben Adressenteil jedes Adressdatums des Speichers mit einer Zufallszahl und mindestens ein anderer Adressenteil jedes Adressdatums des Speichers mit mindestens einer weiteren Zufallszahl so verändert, dass jedes Adressdatum für die Adressierung eines Speichers ein zufallsbestimmtes Adressunikat ist, und – dass alle für die Adressentransformationen verwendeten Zufallszahlen durch einen Zufallsgenerator erzeugt und in einem internen Speicher eines Prozessors oder verschlüsselt auf einem externen Speichermedium solange gespeichert werden, wie sie zum Schreiben und Lesen des Speichers über ihre zufallsbestimmten Adressunikate benötigt werden.Method according to claim 1 or 2, characterized In that the random address transformation transforms at least one and the same address part of each address datum of the memory having at least one random number or at least one and the same address part of each address datum of the random number memory and at least one other address part of each datum of the memory having at least one further random number Address for addressing a memory is a random address unique, and - That all random numbers used for the address transformations generated by a random number generator and stored in an internal memory of a processor or encrypted on an external storage medium as long as they are needed to write and read the memory on their random address unique. Verfahren nach Anspruch 3 dadurch gekennzeichnet, dass die zufallsbestimmte Adressentransformation Anti- und/oder Äquivalenz-Verknüpfungen oder Anti- und/oder Äquivalenz-Verknüpfungen und mindestens eine zufallsbestimmte Bit- oder Bit-Byte- oder Byte-Permutation ist, wobei die Anti- oder Äquivalenz-Verknüpfungen zwischen den Bits einer Zufallszahl oder mehrerer Zufallszahlen und den Bits der Adresse eines Adressteils oder mehrerer Adressteile ausgeführt werden.A method according to claim 3, characterized in that the random address transformation is anti and / or equivalent or anti and / or equivalent and at least one random bit or bit byte or byte permutation, the anti or Equivalence links between the bits of a random number or a plurality of random numbers and the bits of the address of an address part or more address parts are executed. Verfahren nach Anspruch 4 dadurch gekennzeichnet, – dass die Zuordnung einer Zufallszahl oder mehrerer Zufallszahlen zu einer Adresse adress- oder teiladressbereichsmäßig erfolgt bzw. erfolgen und – dass die Auswahl des Adressbereiches oder des Teiladressbereiches in Verbindung mit mindestens einem Vergleich eines Teiles einer Adresse mit mindestens einer als Adressbereichsgrenzwert oder Teiladressbereichsgrenzwert verwendeten Zufallszahl gesteuert wird.Method according to claim 4, characterized - That the assignment of a random number or multiple random numbers to an address address or Teiladressbereichsmäßig takes place or take place and - That the selection of the address range or the partial address range is controlled in conjunction with at least one comparison of a part of an address with at least one used as an address range limit or partial address range limit random number. Verfahren nach Anspruch 1 oder 2 dadurch gekennzeichnet, – dass die zufallsbestimmte Adressentransformation mindestens ein Adressenteil jedes Adressdatums des Speichers über eine Look-up-Tabelle in zufallsbestimmte Adressunikate oder mehr als ein Adressenteil jedes Adressdatums des Speichers über je eine Look-up-Tabelle in zufallsbestimmte Adressunikate abbildet, – dass die Zuordnung eines Adressteils zu einer Look-up-Tabelle adress- oder teiladressbereichsmäßig erfolgt, wobei die Auswahl des Adressbereiches oder Teiladressbereiches in Verbindung mit mindestens einem Vergleich eines Teiles einer Adresse mit mindestens einer als Adressbereichsgrenzwert oder Teiladressbereichsgrenzwert gebrauchten Zufallszahl gesteuert wird. – dass der Inhalt einer Look-up-Tabelle aus einer streng monotonen Zahlenfolge durch zufallsbestimmte Änderungen der Reihenfolge generiert wird, wobei die zufallsbestimmten Änderungen der Reihenfolge in Verbindung mit einem Zufallsgenerator ermittelt werden, – dass alle Inhalte der Look-up-Tabellen in einem Speicher eines Prozessors oder verschlüsselt auf einem externen Speichermedium solange gespeichert werden, wie sie zum Schreiben und Lesen des Speichers über ihre zufallsbestimmten Adressunikate benötigt werden.Method according to claim 1 or 2, characterized - That the random address transformation maps at least one address part of each address data of the memory via a look-up table into randomly determined address unique or more than one address part of each address data of the memory via a look-up table in random address uniqueness, - That the assignment of an address part to a look-up table address or Teiladressbereichsmäßig, wherein the selection of the address range or partial address range is controlled in conjunction with at least one comparison of a part of an address with at least one used as an address range limit or Teiladressbereichsgrenzwert random number. That the content of a look-up table is generated from a strictly monotonous sequence of numbers by randomly changing the order, whereby the random changes of the order are determined in connection with a random number generator, - That all contents of the look-up tables are stored in a memory of a processor or encrypted on an external storage medium as long as they are needed to write and read the memory about their random address unique. Verfahren nach Anspruch 2 dadurch gekennzeichnet, – dass vor dem Schreiben eines Datums in einen Speicher das Datum durch das Hinzufügen mindestens eines adressabhängigen fehlererkennenden Sicherheitscodes expandiert, anschließend Bit oder Byte oder Bit und Byte permutiert, mit mindestens einer einem Adressenteil der Adresse oder des Adressunikats zugeordneten Zufallszahl verschlüsselt und adressenabhängig gesplittet wird, – dass die Teildaten des gesplitteten Datums auf Speicherplätze gespeichert werden, die mit einem zufallsbestimmten Adressunikat oder mit mehr als einem zufallsbestimmten Adressunikat ausgewählt sind, – dass beim Lesen eines Datums aus einem Speicher Teildaten des gesplitteten Datums von einem mit einem zufallsbestimmten Adressunikat ausgewählten Speicherplatz oder von mehreren zufallsbestimmten Adressunikaten ausgewählten Speicherplätzen gelesen, die Teildaten des gesplitteten Datums adressenabhängig zusammengefügt, anschließend mit mindestens einer einem Adressteil der Adresse oder des Adressunikats zugeordneten Zufallszahl entschlüsselt, Bit oder Byte oder Bit und Byte repermutiert werden, – dass der adressabhängige fehlererkennende Sicherheitscode vom Datum getrennt und ausgewertet wird, bei Richtigkeit des Codes den Prozessor die gelesenen Daten zur Verfügung gestellt werden, – dass alle für die Verschlüsselungen und Entschlüsselungen der Daten oder für die Verschlüsselungen und Entschlüsselungen und Expansion der Daten verwendeten Zufallszahlen durch einen Zufallsgenerator erzeugt und in einem internen Speicher eines Prozessors oder verschlüsselt auf einem externen Speichermedium solange gespeichert werden, wie sie zum Schreiben und Lesen des Speichers über ihre zufallsbestimmten Adressunikate benötigt werden oder – dass vor dem Schreiben eines Datums in einen Speicher das Datum durch das Hinzufügen mindestens eines adressabhängigen fehlererkennenden Sicherheitscodes expandiert, anschließend fehlerkorrigierend codiert, Bit oder Byte oder Bit und Byte permutiert, mit mindestens einer einem Adressenteil der Adresse oder des Adressunikats zugeordneten Zufallszahl verschlüsselt und adressenabhängig gesplittet wird, – dass die Teildaten des gesplitteten Datums auf Speicherplätze gespeichert werden, die mit einem zufallsbestimmten Adressunikat oder mit mehr als einem zufallsbestimmten Adressunikat ausgewählt sind, – dass beim Lesen eines Datums aus einem Speicher Teildaten des gesplitteten Datums von einem mit einem zufallsbestimmten Adressunikat ausgewählten Speicherplatz oder von mehreren zufallsbestimmten Adressunikaten ausgewählten Speicherplätzen gelesen, die Teildaten des gesplitteten Datums adressenabhängig zusammengefügt, anschließend mit mindestens einer einem Adressenteil der Adresse oder des Adressunikats zugeordneten Zufallszahl entschlüsselt, Bit oder Byte oder Bit und Byte repermutiert, fehlerkorrigierend decodiert werden, – dass der adressabhängige fehlererkennende Sicherheitscode vom Datum getrennt und ausgewertet wird, bei Richtigkeit des Codes den Prozessor die gelesenen Daten zur Verfügung stellt werden und – dass alle für die Verschlüsselungen und Entschlüsselungen der Daten oder für die Verschlüsselungen und Entschlüsselungen und Expansion der Daten verwendeten Zufallszahlen durch einen Zufallsgenerator erzeugt und in einem internen Speicher eines Prozessors oder verschlüsselt auf einem externen Speichermedium solange gespeichert werden, wie sie zum Schreiben und Lesen des Speichers über ihre zufallsbestimmten Adressunikate benötigt werden.A method according to claim 2, characterized in that prior to the writing of a date to a memory, the date expands by the addition of at least one address-dependent error-detecting security code, then permuting bit or byte or bit and byte with at least one address part of the address or address unique Random number is encrypted and split by address, that the split date data is stored in memory locations that are selected with a random address set or with more than one random address unique, When reading a date from a memory, reading partial data of the split date from a memory location selected from a random address set or from several randomly selected address unique memory locations, merging the split data partial address, then associating it with at least one address part of the address or address unique Random number decrypts, bits or bytes or bits and bytes are repermutiert, - that the address-dependent error-detecting security code is separated from the date and evaluated, if the code is correct, the processor the read data are provided, - that all for the encryption and decryption of the data or random numbers used for the encryption and decryption and expansion of the data generated by a random number generator and in an internal memory of a processor or encrypted to a stored in the external storage medium as long as they are required for writing and reading the memory via their random address unicates; or that prior to writing a date into a memory, the data expands by adding at least one address-dependent error-detecting security code, then error-correcting coded, bit or Byte or bit and byte permutated, encrypted with at least one random number associated with an address portion of the address or address unique, and address-dependently split, - that the split date data is stored in memory locations selected with a random address unique or with more than one random address unique in the case of reading a date from a memory, part data of the split date from a memory location selected with a randomly determined address unique or from a plurality of randomly determined address unique data read selected memory locations, the partial data of the split date address-dependent merged, then decrypted with at least one address part of the address or the address unique random number, bit or byte or bit and byte repermutiert, error correcting decoded, - that the address-dependent error-detecting security code separated from the date and is evaluated, if the code is correct, the processor provides the read data, and - that all random numbers used for the encryption and decryption of the data or for the encryption and decryption and expansion of the data are generated by a random number generator and in an internal memory of a processor or stored in encrypted form on an external storage medium as long as they are needed to write and read the memory via their randomly determined address unique. Verfahren nach Anspruch 7 dadurch gekennzeichnet, – dass der adressabhängige fehlererkennende Sicherheitscode vor dem Schreiben eines Datums in einen Speicher durch Anti- und/oder Äquivalenz-Verknüpfungen generiert wird, wobei Bits des zu schreibenden Datums und Bits mindestens eines Adressteils der im Schreibvorgang angesprochenen Adresse antivalent und/oder äquivalent verknüpft werden, – dass die Auswertung des adressabhängigen fehlererkennenden Sicherheitscodes Anti- und/oder Äquivalenz-Verknüpfungen von Bits des gelesenen Datums und Bits des adressabhängigen fehlererkennenden Sicherheitscodes und ein Vergleich des Ergebnisses der Anti- und/oder Äquivalenz-Verknüpfungen mit dem beim Schreiben verwendeten gleichen Adressteil der im Lesevorgang angesprochenen Adresse enthält, wobei bei Ungleichheit ein Fehlerflag gesetzt wird, – dass das Setzen des Fehlerflags eine Fehlerbehandlungsroutine in einem Prozessor auslöst.Method according to claim 7, characterized The address-dependent error-detecting security code is generated prior to the writing of a date into a memory by anti-and / or equivalence links, whereby bits of the date and bit of at least one address part of the address addressed in the write operation are linked in an antivalent and / or equivalent manner, That the evaluation of the address-dependent error-detecting security code anti and / or equivalence links of bits of the read date and bits of the address-dependent error-detecting security code and a comparison of the result of the anti and / or equivalence links with the same address part used in the writing Contains addressed address, whereby in case of inequality an error flag is set, - Setting the error flag triggers an error handling routine in a processor. Verfahren nach den obigen Ansprüchen dadurch gekennzeichnet, – dass bei zufallsbestimmter Adressentransformation einer Adresse in ein zufallsbestimmtes Adressunikat oder zufallsbestimmtes expandiertes Adressunikat mit oder ohne Datumsexpansion mindestens ein weiterer Prozess oder eine Interrupt-Softwareroutine Zufallszahlen zu zufälligen Zeiten auf Adressen eines, für den Prozess bzw. für die Interrupt-Softwareroutine, festgelegten Adressbereichs eines Speichers schreibt oder ein Prozess oder eine Interrupt-Softwareroutine Daten von Speicherplätzen zufällig generierter Adressen liest oder Daten mehrerer Prozesse mischend schreibt und liest, oder – dass bei zufallsbestimmter Adressentransformation einer Adresse in zufallsbestimmte Adressunikate mit Adressenexpansion oder Adressenexpansion und Datenexpansion der prozessorseitige Schreibvorgang in mehrere Teilschreibvorgänge zerlegt wird, wobei die gesplitteten Daten aufeinanderfolgend auf Speicherplätzen zufallsbestimmter expandierter Adressunikate gespeichert werden, und – dass bei zufallsbestimmter Adressentransformation einer Adresse in zufallsbestimmte Adressunikate mit Adressenexpansion oder mit Adressenexpansion und Datenexpansion der prozessorseitige Lesevorgang in mehrere Teillesevorgänge zerlegt wird, wobei die gesplitteten Daten aufeinanderfolgend von Speicherplätzen zufallsbestimmter expandierter Adressunikate gelesen werden, oder – dass bei zufallsbestimmter Adressentransformation einer Adresse in zufallsbestimmte Adressunikate mit Adressenexpansion und Datenexpansion der prozessorseitige Schreibvorgang in mehrere Teilschreibvorgänge zerlegt wird, die gesplitteten Daten auf Speicherplätze zufallsbestimmter expandierter Adressunikate gespeichert werden, wobei zufallsbestimmt eine Zufallszahl zwischen den Teilschreibvorgängen der gesplitteten Daten auf ein Speicherplatz eines zufallsbestimmten expandierten Adressunikats geschrieben werden, und – dass bei zufallsbestimmter Adressentransformation einer Adresse in zufallsbestimmte Adressunikate mit Adressenexpansion und Datenexpansion der prozessorseitige Lesevorgang in mehrere Teillesevorgänge zerlegt wird, die gesplitteten Daten von Speicherplätzen zufallsbestimmter expandierter Adressunikate gelesen werden, wobei zufallsbestimmt zwischen den Teillesevorgängen der gesplitteten Daten von einem Speicherplatz eines zufallsbestimmten expandierten Adressunikats gelesen wird.Method according to the above claims, characterized in that - in the case of randomly determined address transformation of an address into a randomly determined address unique or randomly determined expanded address unique with or without date expansion, at least one further process or an interrupt software routine randomly enumerates at random addresses of, for the process or for the interrupt software routine writes a specified memory address range or a process or interrupt software routine reads data from randomly generated address locations or writes and reads data from multiple processes; Data expansion of the processor-side write operation is decomposed into a plurality of partial write operations, wherein the split data successively in memory locations randomly determined exp in random address transformations of an address into random address unicamines with address expansion or with address expansion and data expansion, the processor-side read operation is split into a plurality of partial readings, wherein the split data are successively read from memory locations of randomly-defined expanded address unique data, or that at random Address transformation of an address into random address unique with address expansion and data expansion of the processor-side write in several Partitioning writes the split data to locations of randomly-defined expanded address unique data, randomly writing a random number between the partial data write operations of a randomized expanded address unique, and random address address transforming to random address unique data with address expansion and data expansion the processor side read is decomposed into a plurality of sub-reads, the split data is read from locations of randomized expanded address unique, randomly read between the sub-runs of the split data from a location of a randomly-determined expanded address unique. Anordnung zum Schutz von Datengeheimnissen in Speichern dadurch gekennzeichnet, – dass ein Prozessor mit obigen Verfahrensschritten ausführendem Computerprogramm innerhalb eines Schaltkreises als Controller zur Ansteuerung des Speichers integriert oder über eine SPI-Schnittstelle mit einem Speicher verbunden ist, dessen Speicherplätze einzeln adressierbar sind, oder – dass eine elektronische Einheit die obigen Verfahrensschritte ausführt, wobei die elektronische Einheit zwischen Speicher und Speicherverwaltungseinheit oder MMU eines Prozessors oder Bus und Speicher angeordnet ist.Arrangement for the protection of data secrets in stores characterized in that - That a processor with the above process steps computer program is integrated within a circuit as a controller for driving the memory or connected via an SPI interface with a memory whose memory locations are individually addressable, or - That an electronic unit performs the above method steps, wherein the electronic unit between memory and memory management unit or MMU of a processor or bus and memory is arranged.
DE102012004780.0A 2012-03-02 2012-03-02 Method and arrangement for protecting data secrets in memory Expired - Fee Related DE102012004780B4 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102012004780.0A DE102012004780B4 (en) 2012-03-02 2012-03-02 Method and arrangement for protecting data secrets in memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102012004780.0A DE102012004780B4 (en) 2012-03-02 2012-03-02 Method and arrangement for protecting data secrets in memory

Publications (2)

Publication Number Publication Date
DE102012004780A1 true DE102012004780A1 (en) 2013-09-05
DE102012004780B4 DE102012004780B4 (en) 2018-02-08

Family

ID=48985001

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102012004780.0A Expired - Fee Related DE102012004780B4 (en) 2012-03-02 2012-03-02 Method and arrangement for protecting data secrets in memory

Country Status (1)

Country Link
DE (1) DE102012004780B4 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102013014587A1 (en) 2013-08-29 2015-03-05 Fachhochschule Schmalkalden Method for IT protection of security-relevant data and its processing

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060008084A1 (en) 2004-07-06 2006-01-12 Proton World International N.V. Ciphering by blocks of the content of a memory external to a processor
DE102008026697A1 (en) 2008-06-04 2009-12-10 Infineon Technologies Ag Data output encoding device e.g. safety dongle, for use in mobile telephone, has bus encoding mechanism for selectively encoding digital signals output by processor, and peripheral interface for outputting selectively encoded signals
DE102008054627A1 (en) 2008-12-15 2010-06-17 Robert Bosch Gmbh Control device with the method for manipulation protection computer program, computer program product
WO2011015510A1 (en) 2009-08-06 2011-02-10 Fachhochschule Schmalkalden Real-time capable quantum computer secure encoding of data of all types
US20110047375A1 (en) 2008-02-22 2011-02-24 Fachhochschule Schmalkalden Communication method for multisubscriber networks, which is protected from deception, eavesdropping and hacking
DE102008010792B4 (en) 2008-02-22 2011-06-30 Fachhochschule Schmalkalden, 98574 Procedures for unmanipulable and secure file and folder access

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4465901A (en) * 1979-06-04 1984-08-14 Best Robert M Crypto microprocessor that executes enciphered programs
EP0463210B1 (en) * 1990-06-27 1995-05-31 International Business Machines Corporation Method and apparatus for checking the address and contents of a memory array
EP1578053A1 (en) * 2004-03-18 2005-09-21 STMicroelectronics Limited Data obfuscation
US20060156191A1 (en) * 2005-01-07 2006-07-13 Steve Driediger Memory addressing error protection systems and methods
US8001374B2 (en) * 2005-12-16 2011-08-16 Lsi Corporation Memory encryption for digital video
JP2008299611A (en) * 2007-05-31 2008-12-11 Toshiba Corp Memory security device

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060008084A1 (en) 2004-07-06 2006-01-12 Proton World International N.V. Ciphering by blocks of the content of a memory external to a processor
US20110047375A1 (en) 2008-02-22 2011-02-24 Fachhochschule Schmalkalden Communication method for multisubscriber networks, which is protected from deception, eavesdropping and hacking
DE102008010792B4 (en) 2008-02-22 2011-06-30 Fachhochschule Schmalkalden, 98574 Procedures for unmanipulable and secure file and folder access
DE102008026697A1 (en) 2008-06-04 2009-12-10 Infineon Technologies Ag Data output encoding device e.g. safety dongle, for use in mobile telephone, has bus encoding mechanism for selectively encoding digital signals output by processor, and peripheral interface for outputting selectively encoded signals
DE102008054627A1 (en) 2008-12-15 2010-06-17 Robert Bosch Gmbh Control device with the method for manipulation protection computer program, computer program product
WO2011015510A1 (en) 2009-08-06 2011-02-10 Fachhochschule Schmalkalden Real-time capable quantum computer secure encoding of data of all types

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"Vorgang einer algorithmischen ablaufenden Informationsverarbeitung" angesehen wird./Stallings, W.: Operating Systems, Internals and Design Principles. ISBN 0-13-147954-7/

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102013014587A1 (en) 2013-08-29 2015-03-05 Fachhochschule Schmalkalden Method for IT protection of security-relevant data and its processing

Also Published As

Publication number Publication date
DE102012004780B4 (en) 2018-02-08

Similar Documents

Publication Publication Date Title
EP1668516B1 (en) Decrypting and encrypting during write accesses to a memory
EP1246043B1 (en) Method for transferring data over a data bus
DE69815599T2 (en) Method and device for protecting application data in secure memory areas
DE10196006B4 (en) Create a key hierarchy for use in an isolated execution environment
DE19782169C2 (en) Cryptographically protected paging subsystem
EP1668515B8 (en) Word-individual key generation
DE112008003855B4 (en) System and method for providing secure access to system memory
DE60217260T2 (en) Data processing and encryption unit
DE102009013384B4 (en) System and method for providing a secure application fragmentation environment
EP0965076B1 (en) Electronic data processing device and system
DE112017004609T5 (en) Multi-level memory integrity method and device
DE102014213539A1 (en) Device and method for memory address encryption
DE112010005842T5 (en) Scrambling an address and encrypting write data to store a memory device
WO2011054639A1 (en) Cryptographic hardware module or method for updating a cryptographic key
DE102008010789B4 (en) Method for the access and communication-related random encryption and decryption of data
DE102015113468A1 (en) DATA PROCESSING DEVICE AND METHOD FOR SECURING A DATA PROCESSING AGAINST ATTACKS
DE602004003226T2 (en) Table masking to withstand attacks by analyzing power consumption.
DE112006004173T5 (en) Protecting a programmable memory against unauthorized modification
WO2016165930A1 (en) Device and method for generating a key in a programmable hardware module
DE602004001732T2 (en) Data encryption in an electronic device with multiple symmetric processors
EP1721232A1 (en) Method for protecting confidential data
EP3387636B1 (en) Cryptographic algorithm having a key-dependent masked computing step (sbox call)
DE102012004780B4 (en) Method and arrangement for protecting data secrets in memory
DE102004018874B4 (en) Method and device for determining a result
DE69934707T2 (en) COUNTER-MEASUREMENT DEVICE IN AN ELECTRONIC COMPONENT TO CARRY OUT A CYCLO ALGORITHM WITH SECRETARY KEY

Legal Events

Date Code Title Description
R086 Non-binding declaration of licensing interest
R123 Application deemed withdrawn due to non-payment of filing fee
R409 Internal rectification of the legal status completed
R409 Internal rectification of the legal status completed
R012 Request for examination validly filed
R016 Response to examination communication
R016 Response to examination communication
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R084 Declaration of willingness to licence
R081 Change of applicant/patentee

Owner name: ROZEK, WERNER, PROF. DR.-ING. DIPL.-ING., DE

Free format text: FORMER OWNER: FACHHOCHSCHULE SCHMALKALDEN, 98574 SCHMALKALDEN, DE

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee