DE102012004780B4 - Method and arrangement for protecting data secrets in memory - Google Patents

Method and arrangement for protecting data secrets in memory Download PDF

Info

Publication number
DE102012004780B4
DE102012004780B4 DE102012004780.0A DE102012004780A DE102012004780B4 DE 102012004780 B4 DE102012004780 B4 DE 102012004780B4 DE 102012004780 A DE102012004780 A DE 102012004780A DE 102012004780 B4 DE102012004780 B4 DE 102012004780B4
Authority
DE
Germany
Prior art keywords
address
memory
data
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.)
Expired - Fee Related
Application number
DE102012004780.0A
Other languages
German (de)
Other versions
DE102012004780A1 (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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

Verfahren zum Schutz von Datengeheimnissen in Speicher, indem die Auswahl einer Speicherzelle mit einem als Unikat verwendeten und auf die Speicherzelle bezogenen Adressdatum erfolgt, – wobei vor oder bei einer Adressierung eines Speichers eine zufallsbestimmte Adressentransformation ausgeführt wird, die das als Unikat verwendete Adressdatum zufallsbestimmt in mindestens ein neues, den Speicher adressierendes Adressunikat abbildet, – wobei die zufallsbestimmte Adressentransformation mindestens ein und denselben Adressenteil jedes Adressdatums des Speichers mit einer Zufallszahl und mindestens einen anderen Adressenteil jedes Adressdatums des Speichers mit mindestens einer weiteren Zufallszahl so verändert, dass jedes Adressdatum für die Adressierung eines Speichers ein zufallsbestimmtes, den Speicher adressierendes Adressunikat ist, und – die für die Adressentransformation 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, den Speicher adressierenden Adressunikate benötigt werden, und – 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, – wobei die Zuordnung einer Zufallszahl oder mehrerer Zufallszahlen zu einer Adresse adress- oder teiladressbereichsmäßig erfolgt und – 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, – wobei 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 referring to the memory cell, wherein a randomly determined address transformation is carried out before or during addressing of a memory which randomly determines the datum datum used as a unique datum in at least a new memory addressing address unique image maps, - wherein the random address transformation at least one and the same address portion of each address data of the memory random number and at least one other address portion of each address data of the memory with at least one further random number changed so that each address data for addressing a Memory is a random address memory address addressing memory, and the random numbers used for the address transformation are generated by a random number generator and stored in an internal memory of a proc essors or encrypted on an external storage medium as long as they are needed to write and read the memory via their randomly determined memory addressing address unique, and - the random address transformation anti and / or equivalence links or anti and / or equivalence Links and at least one random bit or bit byte or byte permutation, wherein 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, - the assignment of a random number or a plurality of random numbers to an address takes place adress- or Teiladressbereichsmäßig and - the selection of the address range or the partial address range in connection with at least one comparison of a part of an address with at least one as an address range limit or Teiladressbereichsgr the random number used is encrypted, wherein the data written to a memory is encrypted with at least one address-dependent selected random number.

Description

Die vorliegende Erfindung betrifft ein Verfahren und eine Anordnung zum Schutz von Datengeheimnissen in Speicher.The present invention relates to a method and an arrangement for protecting data secrets in memory.

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. 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. 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. Der Stand der Technik schützt Daten durch Verschlüsselung. So werden in US 2011/0 047 375 A1 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. Die Entwicklung von Mikrocomputerprogrammen und die von ihnen verarbeiteten Dateien sind oft teuer und zeitraubend. Will man diese Entwicklung vermarkten, so ist es dem Entwickler wichtig, dass ihre Programmprodukte und somit ihre Investitionen vor Raubkopierern geschützt sind. Druckschrift US 4 565 901 A schützt vor Raubkopieren durch ein Verfahren, das Mikroprozessor und Programm so mit einander verbindet, das Mikroprozessor und Programm nicht austauschbar sind. Das wird dadurch erreicht, dass jedes Programm anders verschlüsselt wird und nur vom autorisierten Mikroprozessor entschlüsselt und ausgeführt werden kann, wenn es in dem Mikroprozessor geladen ist. Ein kryptographischer Mikrocontroller, der ein verschlüsseltes Programm ausführt, entschlüsselt während des Lesens der verschlüsselten Anweisung und führt sie aus. Als Datenschlüssel dient die zufallsverwürfelte Speicheradresse. Druckschrift US 8 001 374 B2 offenbart eine Speicherverschlüsselung für digitales Video. Es wird ein Verfahren zum Schutz von Daten zwischen einer Schaltung und einem Speicher angegeben. Als Datenschlüssel dienen DES-verschlüsselte Adressen. DE 690 19 822 T2 beschreibt ein Verfahren zur Prüfung der Adresse und des Inhalts einer Speicheranordnung, wenn Daten in die Anordnung geschrieben oder aus der Anordnung gelesen werden. Durch XOR-Verknüpfung von Adressbitdaten mit Paritätsbitdaten von Daten kann auf das Adressbitprüfzeichen verzichtet werden, weil nur bei fehlerfreier richtiger Adresse sich die richtigen Prüfbitdaten von den Daten ergeben. Die Druckschrift US 2008/0 301 467 A1 offenbart ein Speicher-Sicherheitsgerät für eine Halbleitervorrichtung oder für ein Computersystem. Es beinhaltet eine Schreib- und Lese-Adressenverschlüsselung mit einer ersten Zufallszahl und eine Datenverschlüsselung mit der ersten Zufallszahl oder einer zweiten Zufallszahl. Druckschrift US 2007/0 121 943 A1 offenbart eine Daten-Verschleierung, wobei die Verschleierung durch bitweiser XOR-Verknüpfung eines Datenteils und einer Maske erfolgt. Zur Erzeugung einer Maske wird die Speicheradresse von dem Datenteil verwendet, die in ein Attributregister geschrieben wird, wobei das Attributen-Bit-Feld zur Erzeugung der Maske herangezogen wird. US 2006/0 156 191 A1 beschreibt Speicher-Adressierung-Fehlerschutzsysteme und Methoden. Zum Schutz werden die Daten mit kombinierten Daten und Adress-Schutzinformation versehen und im Speicher gespeichert.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. 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. 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. The prior art protects data by encryption. So be in US 2011/0 047 375 A1 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. The development of microcomputer programs and the files they process are often expensive and time consuming. If you want to market this development, it is important to the developer that their program products and thus their investments are protected against piracy. pamphlet US 4 565 901 A protects against piracy by a process that connects the microprocessor and program so that the microprocessor and program are not interchangeable. This is accomplished by encrypting each program differently and decrypting and executing only the authorized microprocessor when loaded into the microprocessor. A cryptographic microcontroller executing an encrypted program decrypts and executes while reading the encrypted instruction. The data key is the randomly scrambled memory address. pamphlet US 8 001 374 B2 discloses a memory encryption for digital video. A method of protecting data between a circuit and a memory is disclosed. The data keys are DES-encrypted addresses. DE 690 19 822 T2 describes a method for examining the address and content of a memory device when data is written to or read from the device. By XORing of address bit data with parity bit data of data can be dispensed with the Adressbitprüfzeichen, because only with error-free correct address, the correct Prüfbitdaten result from the data. The publication US 2008/0 301 467 A1 discloses a memory security device for a semiconductor device or for a computer system. It includes a write and read address encryption with a first random number and a data encryption with the first random number or a second random number. pamphlet US 2007/0121243 A1 discloses a data obfuscation, wherein the obfuscation is done by bitwise XORing a data part and a mask. To generate a mask, the memory address is used by the data part written in an attribute register, the attribute bit field being used to generate the mask. US 2006/0156191 A1 describes memory addressing error protection systems and methods. For protection, the data is provided with combined data and address protection information and stored in memory.

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. 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 WO 2011/015 510 A1 offenbarten Verfahren möglich. 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. Die Anwendung des in WO 2011/015 510 A1 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. 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. 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. Auch das in US 2006/0 008 084 A1 offenbarte Verfahren schützt die Daten durch datenblockbezogene Verschlüsselung. Die zuletzt genannten Verfahren haben den Nachteil, dass Daten eines Programmcodes oder eines Prozesses im Speicher zusammenhängende Speicherbereiche belegen. 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. 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. 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 WO 2011/015 510 A1 disclosed method possible. 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. The application of in WO 2011/015 510 A1 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. 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 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. Also in US 2006/0 008 084 A1 The disclosed method protects the data by block-based encryption. The last-mentioned methods have the disadvantage that data of a program code or a process in the memory occupy contiguous memory areas. The process term used in this document stands for a process in computer science, which is considered to be the "process of an algorithmic processing of information". / 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 contiguous logical address space and is largely contiguous in the 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 vorteilhaft 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.
Compared to the prior art, the protection of data secrets advantageously 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.

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.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 forms 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 in a random manner Address unique. 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 in a memory, the date is expanded by adding at least one address-dependent error-detecting security code, then permuting bits or bytes or bytes and bytes, encrypted with at least one random number assigned to an address portion of the address or the address unique, 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 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 connected to 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. 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.- 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.

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.

  • – 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.
  • – 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.
  • – 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.
  • – 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.
  • – 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.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.
  • - 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.
  • - 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.
  • 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 an address range specified for the process or for the interrupt software routine Memory or a process or an interrupt software routine reads data from memory locations of randomly generated addresses or data of several processes are mixed written and read.
  • As an alternative to the preceding painting, random address transformation of an address becomes random address unique With address expansion or with address expansion and data expansion, the processor-side write operation is split into a plurality of partial write operations, wherein the split data is stored sequentially 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.
  • 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.

Die Aufgabe der Erfindung wird 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.The object of the invention 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 Erfindung beim Schreibvorgang eines Datums in einen Speicher 1 : A block diagram of a first embodiment of 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 Datenbehandlung beim Schreibvorgang eines Datums in einen Speicher 4 : an embodiment of a data module 300 for characterizing data handling when writing a date to a memory

5: eine Ausführungsart eines Moduls 310 zur Charakterisierung der Generierung eines adressabhängigen fehlererkennenden Sicherheitscodes 5 : an embodiment of a module 310 for characterizing the generation 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 beim Lesevorgang eines Datums aus einem Speicher 7 : the block diagram of the first embodiment in the reading operation of a date from a memory

8: das Modul 300 zur Charakterisierung der Datenbehandlung beim Lesevorgang eines Datums aus einem Speicher 8th : the module 300 for characterizing the data handling when reading a date from a memory

9: eine Ausführungsart des Adressexpansionsmoduls 201 zur Charakterisierung der Adressenexpansion 9 : an embodiment of the address expansion module 201 for characterizing the address expansion

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 Erfindung beim Schreibvorgang eines Datums in einen Speicher 13 : A block diagram of a second embodiment of the invention in the writing operation of a date in a memory

14: ein drittes Ausführungsbeispiel der Erfindung 14 : a third embodiment of the invention

15: eine Gegenüberstellung einer Adressierungsart der Erfindung zum Stand der Technik 15 : A comparison of an addressing mode of the invention to the prior art

16: Ein weiteres Ausführungsbeispiels der Erfindung 16 : Another embodiment of the invention

In dem Blockbild, 1, sind dargestellt, eine 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. 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. 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.In the block picture, 1 , are presented, an 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. 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. 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. 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.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. 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. 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üpfungsoperation 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. Der Index p hängt davon ab, wie die Adressenexpansion und die zufallsbestimmte Datenabspeicherung im Speicher 401 ausgeführt werden. P ist gleich zwei, wenn das verschlüsselte permutierte expandierte Datum in zwei Teildaten gesplittet wird. P ist gleich drei, wenn das verschlüsselte permutierte expandierte Datum 24 Bit breit ist und der Datensplitter in Byte-Teildaten splittet.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 bits or bytes or bit bytes permuted. The error-correcting coding used is a standard error-correcting code. 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. The join operation is an anti or equivalent operation or an anti and equivalent operation. 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 (splits) the encrypted permuted expanded date into sub-data and sequentially stores each sub-data in the memory locations associated with the random address unique ADR1i, ..., ADRpi are selected. The index p depends on how the address expansion and the random data storage in the memory 401 be executed. P is equal to two if the encrypted permuted expanded date is split into two sub-data. 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 , Assignment tables or assignment 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. 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.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 , 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 Erfindung 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. 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.In 7 the block diagram of the first embodiment of the invention is shown in the reading operation of a date from a memory. 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. 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 Adressenexpansion eine Ausführungsart des Adressexpansionsmodul 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. Das Adressexpansionsmodul 201 ermöglicht mehrere Ad ressexpansionsvarianten. 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. Eine andere Adressexpansionsvariante 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. 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. 9 shows an embodiment of the address expansion module for characterizing the address expansion 201 , 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. The address expansion module 201 allows several adsorption 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. Another Adressxpansionsvariante 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 Adressunikat 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. 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 for controlling the partial write and partial reads, the place of insertion of the additional partial write and partial readings is dependent on the Random comparison results ZVEj described. About a counter 201/12 the address data control signal ADS1 is derived. The counter 201/12 is an up-counter that counts from zero to p at the beginning of a processor-side write or read, then resets 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. Für das Einfügen schaltet der Datenumschalter 381 mit dem Umschaltzufallsdatum uZD auf den Ausgang eines Zufallszahlen-Daten-FIFO 370 um. 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. 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 Erfindung ist in 13 dargestellt. Das Blockbild der 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. 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.A second embodiment of the invention is in 13 shown. The block diagram of the arrangement 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 process, 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. 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 Erfindung. Die dort dargestellte Anordnung 100 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 invention. The arrangement shown there 100 differs from the arrangement in 1 only by the fact that the memory 400 within 100. The memory 400 serves in this case as a program code and / or data memory.

In 15 ist beispielhaft die Lösung der Erfindung 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 Lösung der Erfindung 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 exemplified the solution of the invention compared to 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 of 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 Erfindung dargestellt. Gezeigt sind die 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 zufallsbestimmt verschlüsselt. Die Symbolik _P1 und _P2 in den Angaben der Schreib- und Lesezyklen kennzeichnen die aktiven Prozesse 1 und 2. 16 another embodiment of the invention is shown. Shown are the 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. Except for the op code, all data is randomly encrypted. 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 Erfindung besitzt gegenüber dem Stand der Technik folgende Vorteile:

  • – ONE-TIME-PAD gesicherter Schutz der Datengeheimisse durch 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 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 schließ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 Teilschreibvorgängen der gesplitteten Datenteile verhindert auch beim Beobachten der Schreibvorgänge 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. Etablierte Speicherverwaltungsmechanismen hinzufügbar.
  • – Real-World-Attacken wie Zeitangriffe, Stromanalysen, Auswertung elektromagnetischer Felder, Speicherauslesen durch Antasten von Leitungen oder durch Mikroskopie, Tampering sind letztendlich unterbunden.
The invention has the following advantages over the prior art:
  • - ONE-TIME-PAD secured protection of data secrets by 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 memory locations of a memory with adequate storage capacity (assignment of separate data parts by a third party in the store ultimately not possible.)
  • - ONE-TIME-PAD secured protection against data manipulation by mixing 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 storage separately to 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 operation 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 storage management mechanisms added.
  • - 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.

Claims (7)

Verfahren zum Schutz von Datengeheimnissen in Speicher, indem die Auswahl einer Speicherzelle mit einem als Unikat verwendeten und auf die Speicherzelle bezogenen Adressdatum erfolgt, – wobei vor oder bei einer Adressierung eines Speichers eine zufallsbestimmte Adressentransformation ausgeführt wird, die das als Unikat verwendete Adressdatum zufallsbestimmt in mindestens ein neues, den Speicher adressierendes Adressunikat abbildet, – wobei die zufallsbestimmte Adressentransformation mindestens ein und denselben Adressenteil jedes Adressdatums des Speichers mit einer Zufallszahl und mindestens einen anderen Adressenteil jedes Adressdatums des Speichers mit mindestens einer weiteren Zufallszahl so verändert, dass jedes Adressdatum für die Adressierung eines Speichers ein zufallsbestimmtes, den Speicher adressierendes Adressunikat ist, und – die für die Adressentransformation 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, den Speicher adressierenden Adressunikate benötigt werden, und – 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, – wobei die Zuordnung einer Zufallszahl oder mehrerer Zufallszahlen zu einer Adresse adress- oder teiladressbereichsmäßig erfolgt und – 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, – wobei 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 referring to the memory cell, Wherein a randomly determined address transformation is carried out before or during addressing of a memory, which randomly maps the address data used as unique to at least one new address unique to the memory, - wherein the random address transformation transforms 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 address datum of the memory with at least one further random number such that each address datum for addressing a memory is a randomly determined address unique to the memory , and The random numbers used for the address transformation are 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 required for writing and reading the memory via their randomly determined address unique memory addresses, and The random address transformation is 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 or equivalence links between the bits of a Random number or multiple random numbers and the bits of the address of an address part or more address parts are executed, - wherein the allocation of a random number or a plurality of random numbers to an address is address or Teiladressbereichsmäßig and The selection of the address range or of the partial address range 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 value or partial address range limit value is controlled, - wherein the data that is written to a memory, encrypted with at least one address-dependent selected random number. Verfahren nach Anspruch 1, bei dem – 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, den Speicher adressierende Adressunikate abbildet, – 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, – 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, – 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, den Speicher adressierenden Adressunikate benötigt werden.The method of claim 1, wherein - the random address transformation transforms at least one address portion of each address datum of the memory via a look-up table into randomly determined unique addresses or more than one address portion of each datum of the memory via a respective look-up table into the memory Addressing address unique maps, - 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 address range limit or Teiladressbereichsgrenzwert random number - the content of a look-up table is generated from a strictly monotonous sequence of numbers by randomly changing the order, the randomly determined changes in order in conjunction with a random number generator, - 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 used to write and read the memory of their random memory addressing address unique are needed. Verfahren nach Anspruch 1, bei dem die zufallsbestimmte Adressentransformation einer Adresse in zufallsbestimmte, den Speicher adressierende Adressunikate mit einer Adressenexpansion oder in zufallsbestimmte, den Speicher adressierende Adressunikate mit einer Adressen- und Datenexpansion verbunden ist, wobei bei zufallsbestimmter Adressentransformation einer Adresse in zufallsbestimmte, den Speicher adressierende Adressunikate mit Datenexpansion dem Datum ein adressabhängiger fehlererkennender Sicherheitscode hinzugefügt wird oder ein adressabhängiger fehlererkennender Sicherheitscode und eine Zufallszahl hinzugefügt werden.The method of claim 1, wherein the random address transformation of an address into random memory addressing address unique is associated with address expansion or random address memory addressing address unique with address and data expansion, wherein upon random address transformation of an address into random memory Addressing address unique data expanders are added to the date an address-dependent error-detecting security code or an address-dependent error-detecting security code and a random number are added. Verfahren nach Anspruch 3, bei dem – 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, – 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, – 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, – 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, – 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, den Speicher adressierenden Adressunikate benötigt werden oder – 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, – 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, – 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, – 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 – 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, den Speicher adressierenden Adressunikate benötigt werden.The method of claim 3, wherein Before writing a date to a memory, expanding the data by adding at least one address-dependent error-detecting security code, then permuting bits or bytes or bits and bytes, encrypting at least one random number associated with an address portion of the address or address unique, and splitting addresses, The partial data of the split date are stored in memory locations which are selected with a randomly determined address unique or with more than one randomly determined address unique, When reading a datum from a memory, reading partial data of the split datum from a memory location selected with a randomly determined address unique or from a plurality of randomly selected address unique datums, associating the datum of the split datum address-dependent, then with at least one random number associated with an address portion of the address or the address unique decoded, bit or byte or bit and byte are repermutated, The address-dependent error-detecting security code is separated from the date and evaluated, if the code is correct, the processor is provided the read data, 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 stored in an internal memory of a processor or encrypted on an external storage medium as long as they are used to write and read the memory are needed via their randomly determined address unique addresses that address the memory - Before writing a date in a memory, the date expands by the addition of at least one address-dependent error-detecting security code, then error-correcting encoded, bit or byte or permuted bits and bytes, encrypted with at least one random number associated with an address portion of the address or the address unique and address-dependently split becomes, The partial data of the split date are stored in memory locations which are selected with a randomly determined address unique or with more than one randomly determined address unique, When reading a datum from a memory, reading partial data of the split datum from a memory location selected with a randomly determined address unique or from a plurality of randomly selected address unique datums, associating the datum of the split datum address dependent, then with at least one random number associated with an address portion of the address or the address unique decoded, bit or byte or bit and byte repermutiert, error correcting decoded, - the address-dependent error-detecting security code is separated from the date and evaluated, if the code is correct the processor will provide the read data and 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 stored in an internal memory of a processor or encrypted on an external storage medium as long as they are used to write and read the memory via their randomly determined, the memory addressing address unique. Verfahren nach Anspruch 4, bei dem – 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, – 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, – das Setzen des Fehlerflags eine Fehlerbehandlungsroutine in einem Prozessor auslöst.The method of claim 4, wherein - the address-dependent error-detecting security code before writing a date in a memory by anti and / or equivalence links is generated, wherein bits of the data to be written and bits of at least one address portion of the address addressed in the write operation and antival / or equivalently linked, - 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 that in writing contains the same address part of the address addressed in the read operation, wherein in case of inequality an error flag is set, - Setting the error flag triggers an error handling routine in a processor. Verfahren nach Anspruch 1 oder 2 oder 3 oder 5, bei dem – bei zufallsbestimmter Adressentransformation einer Adresse in ein zufallsbestimmtes, den Speicher adressierendes 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 – 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 – 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 – 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 – bei zufallsbestimmter Adressentransformation einer Adresse in zufallsbestimmte, den Speicher adressierende 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.A method according to claim 1 or 2 or 3 or 5, wherein At least one further process or an interrupt software routine random numbers at random times to addresses one of, for the process or for the interrupt software routine, in the case of randomly determined address transformation of an address into a random memory-addressing address unique or randomly-defined expanded address unique writes or reads data from memory locations of randomly generated addresses, or writes and reads data from multiple processes, or In the case of random address transformation of an address into random address unique with address expansion or address expansion and data expansion, splitting the processor-side write operation into a plurality of partial write operations, wherein the split data are sequentially stored in memory locations of randomly-defined expanded address unique data, and In the event 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 data, In the case of random address transformation of an address into random address uniqueness with address expansion and data expansion, splitting the processor-side write into a plurality of partial writes, the split data being stored in locations of randomly-defined expanded address unique randomly a random number between the partial writes of the split data to a randomly-determined expanded address unique memory location be written, and In case of random address transformation of an address into random memory addressing address uniques with address expansion and data expansion decomposing the processor side read operation into a plurality of partial reads, the split data are read from memory locations of randomly determined address unique randomly determined between the partial readings of the split data from a randomly determined memory location expanded address unique. Anordnung zum Durchführen des Verfahrens nach Anspruch 1 oder 3 oder 6, bei der – 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 – 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 carrying out the method according to claim 1 or 3 or 6, in which A processor having the above-described computer program execution is integrated within a circuit as a controller for controlling the memory or is connected via an SPI interface to a memory whose memory locations are individually addressable, or - An electronic unit performs the above method steps, wherein the electronic unit between the 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 DE102012004780A1 (en) 2013-09-05
DE102012004780B4 true 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)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102013014587B4 (en) 2013-08-29 2017-10-19 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
US4465901A (en) * 1979-06-04 1984-08-14 Best Robert M Crypto microprocessor that executes enciphered programs
DE69019822T2 (en) * 1990-06-27 1995-12-14 Ibm Method and device for checking the content and address of a memory device.
US20060156191A1 (en) * 2005-01-07 2006-07-13 Steve Driediger Memory addressing error protection systems and methods
US20070121943A1 (en) * 2004-03-18 2007-05-31 Stmicroelectronics Limited Data obfuscation
US20080301467A1 (en) * 2007-05-31 2008-12-04 Kabushiki Kaisha Toshiba Memory Security Device
US8001374B2 (en) * 2005-12-16 2011-08-16 Lsi Corporation Memory encryption for digital video

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1615369A1 (en) 2004-07-06 2006-01-11 Proton World International N.V. Block encryption of the content of a memory external to a processor
DE102008010792B4 (en) 2008-02-22 2011-06-30 Fachhochschule Schmalkalden, 98574 Procedures for unmanipulable and secure file and folder access
DE102008010794B3 (en) 2008-02-22 2009-10-29 Fachhochschule Schmalkalden Method for unmanipulable, tap-proof and non-hackable P2P communication in multi-subscriber networks
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
DE102009036386A1 (en) 2009-08-06 2011-02-10 Fachhochschule Schmalkalden Real-time capable quantum computer-safe encryption of data of all kinds

Patent Citations (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
DE69019822T2 (en) * 1990-06-27 1995-12-14 Ibm Method and device for checking the content and address of a memory device.
US20070121943A1 (en) * 2004-03-18 2007-05-31 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
US20080301467A1 (en) * 2007-05-31 2008-12-04 Kabushiki Kaisha Toshiba Memory Security Device

Also Published As

Publication number Publication date
DE102012004780A1 (en) 2013-09-05

Similar Documents

Publication Publication Date Title
DE60124845T2 (en) Microprocessor with program and data protection function in a multitasking environment
EP1668516B1 (en) Decrypting and encrypting during write accesses to a memory
DE10196006B4 (en) Create a key hierarchy for use in an isolated execution environment
DE69815599T2 (en) Method and device for protecting application data in secure memory areas
DE60302844T2 (en) Semiconductor device with encryption, semiconductor device with external interface, and content reproduction method
DE60217260T2 (en) Data processing and encryption unit
DE102009041176B9 (en) A compiler system and method for compiling a source code into an encrypted machine language code
EP2462717B1 (en) Real-time capable quantum computer secure encoding of data of all types
DE112004002259B4 (en) Access to private data about the status of a data processing machine from a publicly accessible storage
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
DE602004005025T2 (en) INSTRUCTIONS FOR PROCESSING A CLOSED MESSAGE
DE112009004491T5 (en) System and method for securely storing data in an electronic device
WO2011054639A1 (en) Cryptographic hardware module or method for updating a cryptographic key
DE10254396A1 (en) Device and method for encrypting data
DE102008010789B4 (en) Method for the access and communication-related random encryption and decryption of data
DE112008003855T5 (en) System and method for providing secure access to system memory
DE102014208855A1 (en) Method for carrying out communication between control units
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.
DE602004001732T2 (en) Data encryption in an electronic device with multiple symmetric processors
DE112006004173T5 (en) Protecting a programmable memory against unauthorized modification
DE102015201298A1 (en) Method for the cryptographic processing of data
EP1721232A1 (en) Method for protecting confidential data

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