DE102012004780A1 - Method for protecting data confidentiality in memory e.g. static RAM for processor of computer system, involves encrypting data written in memory using selected address-dependent random number - Google Patents
Method for protecting data confidentiality in memory e.g. static RAM for processor of computer system, involves encrypting data written in memory using selected address-dependent random number Download PDFInfo
- Publication number
- DE102012004780A1 DE102012004780A1 DE201210004780 DE102012004780A DE102012004780A1 DE 102012004780 A1 DE102012004780 A1 DE 102012004780A1 DE 201210004780 DE201210004780 DE 201210004780 DE 102012004780 A DE102012004780 A DE 102012004780A DE 102012004780 A1 DE102012004780 A1 DE 102012004780A1
- Authority
- DE
- Germany
- Prior art keywords
- address
- data
- memory
- random
- unique
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000015654 memory Effects 0.000 title claims abstract description 136
- 238000000034 method Methods 0.000 title claims abstract description 53
- 230000001419 dependent effect Effects 0.000 title claims abstract description 37
- 230000003068 static effect Effects 0.000 title 1
- 230000009466 transformation Effects 0.000 claims abstract description 35
- 230000008569 process Effects 0.000 claims description 27
- 238000004590 computer program Methods 0.000 claims description 4
- 238000011156 evaluation Methods 0.000 claims description 4
- 238000000844 transformation Methods 0.000 claims description 4
- 238000000638 solvent extraction Methods 0.000 claims description 2
- 230000001131 transforming effect Effects 0.000 claims 1
- 238000013507 mapping Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 5
- 238000003780 insertion Methods 0.000 description 5
- 230000037431 insertion Effects 0.000 description 5
- 238000007726 management method Methods 0.000 description 5
- TVZRAEYQIKYCPH-UHFFFAOYSA-N 3-(trimethylsilyl)propane-1-sulfonic acid Chemical compound C[Si](C)(C)CCCS(O)(=O)=O TVZRAEYQIKYCPH-UHFFFAOYSA-N 0.000 description 4
- 238000010422 painting Methods 0.000 description 3
- 241001136792 Alle Species 0.000 description 2
- 101100434459 Arabidopsis thaliana ADS1 gene Proteins 0.000 description 2
- 101100388296 Arabidopsis thaliana DTX51 gene Proteins 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 210000002023 somite Anatomy 0.000 description 2
- BUHVIAUBTBOHAG-FOYDDCNASA-N (2r,3r,4s,5r)-2-[6-[[2-(3,5-dimethoxyphenyl)-2-(2-methylphenyl)ethyl]amino]purin-9-yl]-5-(hydroxymethyl)oxolane-3,4-diol Chemical compound COC1=CC(OC)=CC(C(CNC=2C=3N=CN(C=3N=CN=2)[C@H]2[C@@H]([C@H](O)[C@@H](CO)O2)O)C=2C(=CC=CC=2)C)=C1 BUHVIAUBTBOHAG-FOYDDCNASA-N 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- REYFJDPCWQRWAA-UHFFFAOYSA-N antazoline Chemical compound N=1CCNC=1CN(C=1C=CC=CC=1)CC1=CC=CC=C1 REYFJDPCWQRWAA-UHFFFAOYSA-N 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000005672 electromagnetic field Effects 0.000 description 1
- 238000000386 microscopy Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1408—Protection against unauthorised use of memory or access to memory by using cryptography
Abstract
Description
Die vorliegende Erfindung betrifft ein Verfahren und eine Anordnung zum Schutz von Datengeheimnissen in Speicher, die vorrangig in unmittelbarer Umgebung eines Prozessors oder mehreren Prozessoren sich befinden.The present invention relates to a method and an arrangement for the protection of data secrets in memory, which are located primarily in the immediate vicinity of a processor or multiple processors.
Stand der Technik und Hintergrund der ErfindungPrior art and background of the invention
Der Schutz von Datengeheimnissen und der Schutz vor Datenmanipulationen zählen bei Fremdnutzung von Computern bzw. Computersystemen zu den relevantesten IT-Sicherheitszielen. Besonders bei Cloud Computing, in denen Entwicklungsaufgaben in der Cloud realisiert werden, müssen die obig aufgeführten Schutzarten vom Frontend- bis einschließlich Backend-Computer gewährleistet sein.The protection of data secrets and the protection against data manipulation are among the most relevant IT security goals when computers or computer systems are used by others. Especially in cloud computing, where development tasks are implemented in the cloud, the protection types listed above must be guaranteed from the front-end to the back-end computer.
Auch bei der computerisierten Verwaltung von Fremddaten verschiedener Aktiengesellschaften bei einem Provider müssen die Daten auf Grund rechtlicher Vorgaben so verwaltet werden, dass kein unbefugter Dritter Kenntnis über firmeninterne Daten erlangt.Even with the computerized management of third-party data of various public limited companies with a provider, the data must be managed on the basis of legal requirements so that no unauthorized third party acquires knowledge about company-internal data.
Programmcodedaten stellen ein hohes Wirtschaftsgut dar. Der Schutz der Datengeheimnisse dieser Daten in der unmittelbaren Umgebung eines Prozessors ist ein besonderes Anliegen des Urhebers der Programmcodedaten, um den Knowhow-Schutz und den Schutz von Algorithmen sowie Initialisierungsparameter zu gewährleisten.Program code data is a high value asset. Protecting the data secrets of this data in the immediate vicinity of a processor is a particular concern of the originator of the program code data in order to ensure the know-how protection and the protection of algorithms as well as initialization parameters.
Der Stand der Technik schützt Daten durch Verschlüsselung. So werden in
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
Alle diese Verfahren haben den Nachteil, dass bei Kenntnis des Speicherortes der verschlüsselten Daten z. B. einer Datei, die Daten in Bezug auf die Datengesamtheit bekannt sind. Ein Hacker kann mittels Brute-Force-Attacke versuchen das Datengeheimnis zu erfahren.All of these methods have the disadvantage that with knowledge of the storage location of the encrypted data z. A file that has data related to the population of data. A hacker can use Brute Force Attack to try to learn the data secret.
Die Anwendung des in
Zum Schutz von Datengeheimnissen in unsichere Speicher in unmittelbarer Umgebung eines Prozessors werden in
In
Auch das in
Die zuletzt genannten Verfahren haben den Nachteil, dass Daten eines Programmcodes oder eines Prozesses im Speicher zusammenhängende Speicherbereiche belegen.The last-mentioned methods have the disadvantage that data of a program code or a process in the memory occupy contiguous memory areas.
Der in dieser Schrift verwendete Prozessbegriff steht für einen Prozess in der Informatik, der für den
Aufgabe und Ziele der ErfindungObject and objectives of the invention
Die Aufgabe der Erfindung besteht darin, ein Verfahren und eine Anordnung zu schaffen, die den Schutz von Datengeheimnissen in Speichern sichern. Dabei soll mit dem Schutz der Datengeheimnisse gleichzeitig ein Schutz vor Datenmanipulation gegeben sein. Weiterhin soll der Schutz von Datengeheimnissen in einem Speicher auch gegenüber von Berechtigten gewährleistet sein.The object of the invention is to provide a method and an arrangement which ensure the protection of data secrets in memories. At the same time, the protection of data secrets should provide protection against data manipulation. Furthermore, the protection of data secrets in a memory should also be guaranteed against authorized persons.
Offenbarung der ErfindungDisclosure of the invention
Gegenüber dem Stand der Technik erfolgt erfindungsgemäß der Schutz von Datengeheimnissen in Speichern mit folgenden Merkmalen:
- – Zufallsbestimmte Adressentransformation vor oder bei einer Adressierung eines Speichers, wobei die als Unikat verwendete Adresse eines Speichers in ein zufallsbestimmtes Adressunikat oder in mehrere zufallsbestimmte Adressunikate abgebildet wird und die Daten, die in einen Speicher geschrieben werden, mit mindestens einer adressabhängig ausgewählten Zufallszahl verschlüsselt werden.
- – Zufallsbestimmte Adressentransformation einer Adresse eines Speichers in ein zufallsbestimmtes Adressunikat ohne oder mit Datenexpansion oder in zufallsbestimmte Adressunikate mit Adressenexpansion oder in zufallsbestimmte Adressunikate mit Adressen- und Datenexpansion, wobei bei zufallsbestimmter Adressentransformation einer Adresse in ein zufallsbestimmtes Adressunikat oder in zufallsbestimmte Adressunikate mit Datumsexpansion dem Datum einen adressabhängigen fehlererkennenden Sicherheitscode oder einen adressabhängigen fehlererkennenden Sicherheitscode und eine Zufallszahl hinzugefügt wird.
- – Alle für die Adressentransformationen, für die Verschlüsselungen und Entschlüsselungen der Daten verwendeten Zufallszahlen oder für die Adressentransformationen, für die Verschlüsselungen und Entschlüsselungen der Daten und Datenexpansion verwendeten Zufallszahlen werden durch einen Zufallsgenerator erzeugt und in einem internen Speicher eines Prozessors oder verschlüsselt auf einem externen Speichermedium solange gespeichert, wie sie zum Schreiben und Lesen des Speichers über ihre zufallsbestimmten Adressunikate benötigt werden.
- – Zufallsbestimmte Adressentransformation, bei der mindestens ein und derselbe Adressteil jedes Adressdatums des Speichers mit mindestens einer Zufallszahl oder bei der mindestens ein und derselbe Adressteil jedes Adressdatums des Speichers mit einer Zufallszahl und mindestens ein anderer Adressteil jedes Adressdatums des Speichers mit mindestens einer weiteren Zufallszahl so verändert wird oder werden, dass jedes Adressdatum für die Adressierung eines Speichers ein zufallsbestimmtes Adressunikat ist. Die zufallsbestimmte Adressentransformationen sind vorzugsweise Anti- und/oder Äquivalenz-Verknüpfungen oder Anti- und/oder Äquivalenz-Verknüpfungen und mindestens eine zufallsbestimmte Bit- oder Bit-Byte- oder Byte-Permutation, wobei die Anti- und/oder Äquivalenz-Verknüpfungen zwischen den Bits einer Zufallszahl oder mehrerer Zufallszahlen und den Bits der Adresse eines Adressteils oder mehrerer Adressteile ausgeführt werden. Die Zuordnung einer Zufallszahl oder die Zuordnungen mehrerer Zufallszahlen zu einer Adresse erfolgt bzw. erfolgen adress- oder teiladressbereichsmäßig. Die Auswahl des Adressbereiches oder Teiladressbereiches wird in Verbindung mit mindestens einem Vergleich eines Teiles einer Adresse mit mindestens einer als Adressbereichsgrenzwert oder Teiladressbereichsgrenzwert verwendeten Zufallszahl gesteuert.
- – Alternativ zum vorangehenden Anstrich bildet die zufallsbestimmte Adressentransformation mindestens ein Adressteil jedes Adressdatums des Speichers über eine Look-up-Tabelle in ein zufallsbestimmtes Adressunikat oder mehr als ein Adressteil jedes Adressdatums des Speichers über je eine Look-up-Tabelle in zufallsbestimmte Adressunikate ab. Die Zuordnung eines Adressteils zu einer Look-up-Tabelle erfolgt adress- oder teiladressbereichsmäßig, wobei die Auswahl des Adressbereiches oder Teiladressbereiches in Verbindung mit mindestens einem Vergleich eines Teiles einer Adresse mit mindestens einer als Adressbereichsgrenzwert oder Teiladressbereichsgrenzwert gebrauchten Zufallszahl gesteuert wird. Der Inhalt einer Look-up-Tabelle wird aus einer streng monotonen Zahlenfolge durch zufallsbestimmte Änderungen der Reihenfolge generiert, wobei die zufallsbestimmten Änderungen der Reihenfolge in Verbindung mit einem Zufallsgenerator ermittelt werden. Alle Inhalte der Look-up-Tabellen werden in einem Speicher eines Prozessors solange gespeichert, wie sie zum Schreiben und Lesen des Speichers über ihre zufallsbestimmten Adressunikate benötigt werden.
- Random address transformation before or during addressing of a memory, where the unique address of a memory is mapped into a random address set or several random address unique and the data written to a memory is encrypted with at least one address-selected random number.
- Random address transformation of an address of a memory into a random address uniqueness with or without data expansion or random address unicom with address expansion or in random address unicampted with address and data expansion, wherein in case of random address transformation of an address into a random address unique or Random Adressunikate with date expansion the date one address-dependent error-detecting security code or an address-dependent error-detecting security code and a random number is added.
- All random numbers used for the address transformations, for the encryption and decryption of the data or for the address transformations, random numbers used for the encryption and decryption of the data and data expansion are generated by a random generator and in an internal memory of a processor or encrypted on an external storage medium stored as they are needed to write and read the memory about their random address unique.
- Random address transformation in which at least one and the same address part of each address datum of the memory with at least one random number or at least one and the same address part of each address datum of the memory with a random number and at least one other address part of each datum of the memory with at least one further random number change in this way It will be or become that each address datum for addressing a memory is a randomly-determined address unique. The random address transforms are preferably anti and / or equivalence links or anti and / or equivalence links and at least one random bit or bit byte or byte permutation, the anti and / or equivalence links between the Bits of a random number or a plurality of random numbers and the bits of the address of an address part or a plurality of address parts. The allocation of a random number or the assignments of several random numbers to an address takes place or takes place address or Teiladressbereichsmäßig. The selection of the address range or partial address range is controlled in conjunction with at least one comparison of a portion of an address with at least one random number used as the address range limit or sub address range limit.
- As an alternative to the preceding painting, the randomly determined address transformation maps at least one address part of each address datum of the memory via a look-up table into a randomly determined address unique or more than one address part of each address datum of the memory via a look-up table into random address unique datums. The assignment of an address part to a look-up table takes place at the address or in the partial address range, wherein the selection of the address range or partial address range is controlled in conjunction with at least one comparison of a part of an address with at least one random number used as an address range limit or partial address range limit value. The content of a look-up table is generated from a strictly monotonic sequence of numbers by randomly changing the order, determining the random order changes associated with a random number generator. All contents of the look-up tables are stored in a memory of a processor as long as they are needed to write and read the memory via their randomly determined address unique.
Merkmale einer DatenbehandlungCharacteristics of a data treatment
- – Vor dem Schreiben eines Datums in einen Speicher wird das Datum durch das Hinzufügen mindestens eines adressabhängigen fehlererkennenden Sicherheitscodes expandiert, anschließend Bit oder Byte oder Bit und Byte permutiert, mit mindestens einer einem Adressteil der Adresse oder des Adressunikats zugeordneten Zufallszahl verschlüsselt und adressenabhängig gesplittet. Die Teildaten des gesplitteten Datums werden auf Speicherplätze gespeichert, die mit einem zufallsbestimmten Adressunikat oder mit mehr als einem zufallsbestimmten Adressunikat ausgewählt sind.- Before writing a date to a memory, the date is expanded by adding at least one address-dependent error-detecting security code, then Bit or byte or bit and byte permutes, with at least one random number assigned to an address part of the address or the address unique, encrypted in an encrypted manner and address-dependently split. The partial data of the split date is stored in memory locations selected with a random address set or with more than one random address unique.
- – Beim Lesen eines Datums aus einem Speicher werden Teildaten des gesplitteten Datums von einem mit einem zufallsbestimmten Adressunikat ausgewählten Speicherplatz oder von mehreren zufallsbestimmten Adressunikaten ausgewählten Speicherplätzen gelesen, die Teildaten des gesplitteten Datums adressenabhängig zusammengefügt, anschließend mit mindestens einer einem Adressteil der Adresse oder des Adressunikats zugeordneten Zufallszahl entschlüsselt, Bit oder Byte oder Bit und Byte repermutiert. Der adressabhängige fehlererkennende Sicherheitscode wird vom Datum getrennt und ausgewertet. Bei Richtigkeit des Codes werden die gelesenen Daten den Prozessor zur Verfügung gestellt.When reading a date from a memory, partial data of the split date is read from a memory location selected with a random address unique or selected from a plurality of randomly selected address unique, the partial data of the split date address-related, then associated with at least one address part of the address or the address unique Random number decrypted, bit or byte or bit and byte repermutated. The address-dependent error-detecting security code is separated from the date and evaluated. If the code is correct, the read data is made available to the processor.
Merkmale einer alternativen DatenbehandlungFeatures of an alternative data handling
- – Vor dem Schreiben eines Datums in einen Speicher wird das Datum durch das Hinzufügen mindestens eines adressabhängigen fehlererkennenden Sicherheitscodes expandiert, anschließend fehlerkorrigierend codiert, Bit oder Byte oder Bit und Byte permutiert, mit mindestens einer einem Adressteil der Adresse oder des Adressunikats zugeordneten Zufallszahl verschlüsselt und adressenabhängig gesplittet. Die Teildaten des gesplitteten Datums werden auf Speicherplätze gespeichert, die mit einem zufallsbestimmten Adressunikat oder mit mehr als einem zufallsbestimmten Adressunikat ausgewählt sind. Beim Lesen eines Datums aus einem Speicher werden Teildaten des gesplitteten Datums von einem mit einem zufallsbestimmten Adressunikat ausgewählten Speicherplatz oder von mehreren zufallsbestimmten Adressunikaten ausgewählten Speicherplätzen gelesen, die Teildaten des gesplitteten Datums adressenabhängig zusammengefügt, anschließend mit mindestens einer einem Adressteil der Adresse oder des Adressunikats zugeordneten Zufallszahl entschlüsselt, Bit oder Byte oder Bit und Byte repermutiert und fehlerkorrigierend decodiert. Der adressabhängige fehlererkennende Sicherheitscode wird vom Datum getrennt und ausgewertet. Bei Richtigkeit des Codes werden die gelesenen Daten den Prozessor zur Verfügung gestellt.- Prior to writing a date in a memory, the date is expanded by the addition of at least one address-dependent error-detecting security code, then error-correcting encoded, bit or byte or bit and byte permutated, encrypted with at least one random number associated with an address portion of the address or the address unique and address dependent split. The partial data of the split date is stored in memory locations selected with a random address set or with more than one random address unique. When reading a date from a memory, partial data of the split date is read from a memory location selected by a random address unique or selected from a plurality of random address unique entries, the partial data of the split date is address-dependent, then associated with at least one random number associated with an address portion of the address or address unique decoded, bit or byte or bit and byte repermutiert and error correcting decoded. The address-dependent error-detecting security code is separated from the date and evaluated. If the code is correct, the read data is made available to the processor.
- – Der adressabhängige fehlererkennende Sicherheitscode wird vor dem Schreiben eines Datums in einem Speicher durch Anti- und/oder Äquivalenz-Verknüpfungen generiert, wobei Bits des zu schreibenden Datums und Bits mindestens eines Adressteils der im Schreibvorgang angesprochenen Adresse anti- und/oder äquivalent verknüpft werden.- The address-dependent error-detecting security code is generated prior to writing a date in a memory by anti and / or equivalence links, whereby bits of the date and bits to be written at least one address portion of the address addressed in the write operation are anti-and / or equivalent linked.
- – Die Auswertung des adressabhängigen fehlererkennenden Sicherheitscodes enthält Anti- und/oder Äquivalenz-Verknüpfungen von Bits des gelesenen Datums und Bits des adressabhängigen fehlererkennenden Sicherheitscodes und ein Vergleich des Ergebnisses der Anti- und/oder Äquivalenz-Verknüpfungen mit dem beim Schreiben verwendeten gleichen Adressteil der im Lesevorgang angesprochenen Adresse, wobei bei Ungleichheit ein Fehlerflag gesetzt wird. Das Setzen des Fehlerflags löst eine Fehlerbehandlungsroutine in einem Prozessor aus.- The evaluation of the address-dependent error-detecting security code contains anti and / or equivalence links of bits of the read date and bits of the address-dependent error-detecting security code and a comparison of the result of the anti and / or equivalence links with the same address part of the used in writing Address addressed address, in case of inequality an error flag is set. Setting the error flag triggers an error handling routine in a processor.
- – Bei zufallsbestimmter Adressentransformation einer Adresse in ein zufallsbestimmtes Adressunikat oder zufallsbestimmtes expandiertes Adressunikat mit oder ohne Datumsexpansion schreibt mindestens ein weiterer Prozess oder eine Interrupt-Softwareroutine Zufallszahlen zu zufälligen Zeiten auf Adressen eines, für den Prozess bzw. für die Interrupt-Softwareroutine, festgelegten Adressbereichs eines Speichers oder ein Prozess oder eine Interrupt-Softwareroutine liest Daten von Speicherplätzen zufällig generierter Adressen oder es werden Daten mehrerer Prozesse mischend geschrieben und gelesen.- In the case of random address transformation of an address into a random address unique or random expanded address unique, with or without date expansion, at least one other process or interrupt software routine writes random numbers at random times to addresses of a memory address range specified for the process or interrupt software routine or a process or interrupt software routine reads data from memory locations of randomly generated addresses, or data from multiple processes is mixed written and read.
- – Alternativ zum vorangehenden Anstrich wird bei zufallsbestimmter Adressentransformation einer Adresse in zufallsbestimmte Adressunikate mit Adressenexpansion oder mit Adressenexpansion und Datenexpansion der prozessorseitige Schreibvorgang in mehrere Teilschreibvorgänge zerlegt, wobei die gesplitteten Daten aufeinanderfolgend auf Speicherplätzen zufallsbestimmter expandierter Adressunikate gespeichert werden. Bei zufallsbestimmter Adressentransformation einer Adresse in zufallsbestimmte Adressunikate mit Adressenexpansion oder mit Adressenexpansion und Datenexpansion wird der prozessorseitige Lesevorgang in mehrere Teillesevorgänge zerlegt, wobei die gesplitteten Daten aufeinanderfolgend von Speicherplätzen zufallsbestimmter expandierter Adressunikate gelesen werden.As an alternative to the preceding painting, random address transformation of an address into random address unicamines with address expansion or with address expansion and data expansion splits the processor-side write operation into a plurality of partial write operations, wherein the split data is sequentially stored in memory locations of randomly-defined expanded address unique data. In the case of random address transformation of an address into random address unicamines with address expansion or with address expansion and data expansion, the processor-side read operation is split into a plurality of partial readings, wherein the split data are successively read from memory locations of randomly-defined expanded address unique items.
- – Alternativ zu den zwei vorangestellten Anstrichen wird bei zufallsbestimmter Adressentransformation einer Adresse in zufallsbestimmte Adressunikate mit Adressenexpansion und Datenexpansion der prozessorseitige Schreibvorgang in mehrere Teilschreibvorgänge zerlegt, die gesplitteten Daten werden gespeichert auf Speicherplätze zufallsbestimmter expandierter Adressunikate, wobei zufallsbestimmt eine Zufallszahl zwischen den Teilschreibvorgängen der gesplitteten Daten auf ein Speicherplatz eines zufallsbestimmten expandierten Adressunikats geschrieben werden. Bei zufallsbestimmter Adressentransformation einer Adresse in zufallsbestimmte Adressunikate mit Adressenexpansion und Datenexpansion wird der prozessorseitige Lesevorgang in mehrere Teillesevorgänge zerlegt. Die gesplitteten Daten werden von Speicherplätzen zufallsbestimmter expandierter Adressunikate gelesen, wobei zufallsbestimmt zwischen den Teillesevorgängen der gesplitteten Daten von einem Speicherplatz eines zufallsbestimmten expandierten Adressunikats gelesen wird.As an alternative to the two preceding coats, random address transformation of an address into random address unicodes with address expansion and data expansion splits the processor-side write into multiple partial writes, the split data is stored in random randomized address unique locations, randomly randomizing between the partial writes of the split data a storage location of a randomly determined expanded address unique will be written. In a random address transformation of an address in random address unique with address expansion and data expansion, the processor-side read operation is decomposed into several partial reads. The split data is read from locations of randomly-defined expanded address unique items, randomly read between the partial counts of the split data from a randomly-selected expanded address unique location.
Merkmale der Anordnung zum Schutz von Datengeheimnissen in SpeichernFeatures of the device for protecting data secrets in memories
- – Prozessor mit obigen Verfahrensschritten ausführendem Computerprogramm ist innerhalb eines Schaltkreises als Controller zur Ansteuerung des Speichers integriert oder über eine SPI-Schnittstelle mit einem Speicher verbunden, dessen Speicherplätze einzeln adressierbar sind.- Processor executing the above method steps computer program is integrated within a circuit as a controller for driving the memory or connected via an SPI interface to a memory whose memory locations are individually addressable.
- – Alternativ zum vorangehenden Anstrich führt eine elektronische Einheit die obigen Verfahrensschritte aus, wobei die elektronische Einheit zwischen Speicher und Speicherverwaltungseinheit oder MMU eines Prozessors oder Bus und Speicher angeordnet ist.As an alternative to the preceding painting, an electronic unit carries out the above method steps, the electronic unit being arranged between memory and memory management unit or MMU of a processor or bus and memory.
Das mit den Merkmalen zum Schutz der Datengeheimnisse gleichzeitig der Schutz vor Datenmanipulationen gewährleistet wird.That with the features to protect the data secrets at the same time the protection against data manipulation is guaranteed.
Erfindungsgemäß wird die Aufgabe durch die in den Ansprüchen dargestellte Lehre gelöst. Im Folgenden wird die Erfindung beispielhaft und detailliert anhand der
Im Einzelnen zeigen:In detail show:
In dem Blockbild,
Der Speicher
Der Speicher
In
In
Die Funktionsweise des Adressteiltransformationsmoduls
Eine beispielhafte Ausführungsart eines Datenmoduls
Die Permutation wird mit dem zufallsbestimmten Permutationssteuerdatum PSD gesteuert. Nach der Permutation des expandierten Datums erfolgt im Datenverschlüsselungsmodul
Der Index p hängt davon ab, wie die Adressenexpansion und die zufallsbestimmte Datenabspeicherung im Speicher
P ist gleich drei, wenn das verschlüsselte permutierte expandierte Datum 24 Bit breit ist und der Datensplitter in Byte-Teildaten splittet.P equals three if the encrypted permuted expanded date is 24 bits wide and the data splitter splits into byte sub data.
Das Random-Steuermodul
Das vom Random-Steuermodul
In
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
Bestandteile des Adressexpansionsmoduls
Das Adressexpansionsmodul
Eine andere Ad ressexpansionsvariante realisiert die Adressexpansion zum Einfügen eines zusätzlichen Teilschreibvorganges zum Schreiben einer Zufallszahl auf einen Speicherplatz, dessen Adresse sich aus einer mit dem zufallsbestimmten Adressunikat zADRki verschlüsselten und aus
Das Umschalten des Umschalters
Eine beispielhafte Ausführungsart des Adressexpansionssteuer-Moduls
In einem Steuermodul
Für das Einfügen schaltet der Datenumschalter
Die Erweiterung des Datenmoduls
Ein zweites Ausführungsbeispiel der erfindungsgemäßen Lösung ist in
Das Datenmodul
In
Vorteile der ErfindungAdvantages of the invention
Die erfindungsgemäße Lösung besitzt gegenüber dem Stand der Technik folgende Vorteile:
- – ONE-TIME-PAD gesicherter Schutz der Datengeheimisse durch erfindungsgemäße Expansion eines Datums mit adressabhängigen fehlererkennenden Sicherheitscode, Bit oder Byte oder Bit und Byte-Permutation, bitweiser Zufallsverschlüsselung und mit anschließender datenaufgeteilter Speicherung auf getrennte zufallsbestimmte Speicherplätze eines Speichers mit angemessener Speicherkapazität (Zuordnung getrennter Datenteile durch einen Dritten im Speicher letztlich nicht möglich.)
- – ONE-TIME-PAD gesicherter Schutz vor Datenmanipulation durch erfindungsgemäßes Mischen von Bits und Bytes des adressabhängigen fehlererkennenden Sicherheitscode und den Bits oder Bytes des zu speichernden Datums mit anschließender Zufallsverschlüsselung und getrenntes Speichern auf zufallsbestimmte Adressplätze des Speichers (Zuordnung der Bit zum Datum und zum adressenabhängigen fehlererkennenden Fehlercode durch einen Dritten scließlich nicht möglich.)
- – Mischen von verschiedenen Speicherschreib- und Speicherlesevorgängen unterbindet das Zuordnen eines Datums zum Prozess.
- – Zufallsbestimmtes Abspeichern von Zufallszahlen in einem begrenzten Adressbereich auf Speicherplätze zufallsbestimmter Adressunikate erschweren das Aufspüren von verschlüsselten permutierten expandierten Datenteilen.
- – Einfügen eines zufallsbestimmten Teilschreibvorgangs zum Schreiben einer Zufallszahl in der Reihenfolge von Teilschreibvorgangen der gesplitteten Datenteile verhindert auch beim Beobachten der Schreibvorgange die Zuordnung zum Datum.
- – Mischen von verschlüsselten, permutierten expandierten Programmcodedaten mit sonstigen anders verschlüsselten, permutierten, expandierten Daten schützt Programmcode vor Maschinencode-Rückübersetzung.
- – Programmparameter, Nutzerschlüssel u. a. m., die in den Daten des Programmcodes enthalten sind, können somit geschützt werden.
- – Sicherheitsrelevante Daten wie Passwörter, Zertifikate und anderes mehr können somit abgesichert werden.
- – Keine neuen Speicherverwaltungsmechanismen erforderlich. Etablierten Speicherverwaltungsmechanismen zufügbar.
- – Real-World-Attacken wie Zeitangriffe, Stromanalysen, Auswertung elektromagnetischer Felder, Speicherauslesen durch Antasten von Leitungen oder durch Mikroskopie, Tampering sind letztendlich unterbunden.
- Secure protection of the data secrets by ONE-TIME-PAD invention expansion of a date with address-dependent error-detecting security code, bit or byte or bit and byte permutation, bitwise random encryption and subsequent data-separated storage on separate random Storage locations of a storage with adequate storage capacity (assignment of separate data parts by a third party in the storage ultimately not possible.)
- - ONE-TIME-PAD secured protection against data manipulation by mixing according to the invention bits and bytes of the address-dependent error-detecting security code and the bits or bytes of the data to be stored with subsequent random encryption and separate storage on random address locations of the memory (assignment of the bit to the date and the address-dependent error-detecting error code by a third party finally not possible.)
- - Mixing different memory write and memory reads prevents the assignment of a datum to the process.
- Randomly storing random numbers in a limited address range on storage locations of randomly determined address items makes the detection of encrypted permuted expanded data items difficult.
- - Inserting a random partial write to write a random number in the order of partial write operations of the split data parts also prevents the assignment to the date when observing the write operations.
- - Mixing encrypted, permuted expanded program code data with other differently encrypted, permuted, expanded data protects program code from machine code back translation.
- - Program parameters, user keys, etc., which are contained in the data of the program code, can thus be protected.
- - Security-relevant data such as passwords, certificates and more can thus be secured.
- - No new storage management mechanisms required. Established memory management mechanisms available.
- - Real-world attacks such as time attacks, power analysis, evaluation of electromagnetic fields, memory readings by probing lines or by microscopy, tampering are ultimately prevented.
Der in den beiden ersten Anstrichen aufgeführte ONE-TIME-PAD-Schutz bezieht sich auf die Betrachtung des gesamten Datenmassivs im kompletten Speicher.The ONE-TIME PAD protection listed in the first two coats refers to the consideration of the entire data mass in the entire memory.
ZITATE ENTHALTEN IN DER BESCHREIBUNG QUOTES INCLUDE IN THE DESCRIPTION
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.This list of the documents listed by the applicant has been generated automatically and is included solely for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions.
Zitierte PatentliteraturCited patent literature
- US 020110047375 A1 [0005] US 020110047375 A1 [0005]
- DE 102008010792 B4 [0006] DE 102008010792 B4 [0006]
- WO 002011015510 A1 [0007, 0009] WO 002011015510 A1 [0007, 0009]
- DE 102008026697 A1 [0010] DE 102008026697 A1 [0010]
- DE 102008054627 A1 [0011] DE 102008054627 A1 [0011]
- US 2006/0008084 [0012] US 2006/0008084 [0012]
Zitierte Nicht-PatentliteraturCited non-patent literature
- „Vorgang einer algorithmischen ablaufenden Informationsverarbeitung” angesehen wird./Stallings, W.: Operating Systems, Internals and Design Principles. ISBN 0-13-147954-7/ [0014] "Process of algorithmic information processing in progress." / Stallings, W .: Operating Systems, Internals and Design Principles. ISBN 0-13-147954-7 / [0014]
Claims (10)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102012004780.0A DE102012004780B4 (en) | 2012-03-02 | 2012-03-02 | Method and arrangement for protecting data secrets in memory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102012004780.0A DE102012004780B4 (en) | 2012-03-02 | 2012-03-02 | Method and arrangement for protecting data secrets in memory |
Publications (2)
Publication Number | Publication Date |
---|---|
DE102012004780A1 true DE102012004780A1 (en) | 2013-09-05 |
DE102012004780B4 DE102012004780B4 (en) | 2018-02-08 |
Family
ID=48985001
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102012004780.0A Expired - Fee Related DE102012004780B4 (en) | 2012-03-02 | 2012-03-02 | Method and arrangement for protecting data secrets in memory |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE102012004780B4 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102013014587A1 (en) | 2013-08-29 | 2015-03-05 | Fachhochschule Schmalkalden | Method for IT protection of security-relevant data and its processing |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060008084A1 (en) | 2004-07-06 | 2006-01-12 | Proton World International N.V. | Ciphering by blocks of the content of a memory external to a processor |
DE102008026697A1 (en) | 2008-06-04 | 2009-12-10 | Infineon Technologies Ag | Data output encoding device e.g. safety dongle, for use in mobile telephone, has bus encoding mechanism for selectively encoding digital signals output by processor, and peripheral interface for outputting selectively encoded signals |
DE102008054627A1 (en) | 2008-12-15 | 2010-06-17 | Robert Bosch Gmbh | Control device with the method for manipulation protection computer program, computer program product |
WO2011015510A1 (en) | 2009-08-06 | 2011-02-10 | Fachhochschule Schmalkalden | Real-time capable quantum computer secure encoding of data of all types |
US20110047375A1 (en) | 2008-02-22 | 2011-02-24 | Fachhochschule Schmalkalden | Communication method for multisubscriber networks, which is protected from deception, eavesdropping and hacking |
DE102008010792B4 (en) | 2008-02-22 | 2011-06-30 | Fachhochschule Schmalkalden, 98574 | Procedures for unmanipulable and secure file and folder access |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4465901A (en) * | 1979-06-04 | 1984-08-14 | Best Robert M | Crypto microprocessor that executes enciphered programs |
EP0463210B1 (en) * | 1990-06-27 | 1995-05-31 | International Business Machines Corporation | Method and apparatus for checking the address and contents of a memory array |
EP1578053A1 (en) * | 2004-03-18 | 2005-09-21 | STMicroelectronics Limited | Data obfuscation |
US20060156191A1 (en) * | 2005-01-07 | 2006-07-13 | Steve Driediger | Memory addressing error protection systems and methods |
US8001374B2 (en) * | 2005-12-16 | 2011-08-16 | Lsi Corporation | Memory encryption for digital video |
JP2008299611A (en) * | 2007-05-31 | 2008-12-11 | Toshiba Corp | Memory security device |
-
2012
- 2012-03-02 DE DE102012004780.0A patent/DE102012004780B4/en not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060008084A1 (en) | 2004-07-06 | 2006-01-12 | Proton World International N.V. | Ciphering by blocks of the content of a memory external to a processor |
US20110047375A1 (en) | 2008-02-22 | 2011-02-24 | Fachhochschule Schmalkalden | Communication method for multisubscriber networks, which is protected from deception, eavesdropping and hacking |
DE102008010792B4 (en) | 2008-02-22 | 2011-06-30 | Fachhochschule Schmalkalden, 98574 | Procedures for unmanipulable and secure file and folder access |
DE102008026697A1 (en) | 2008-06-04 | 2009-12-10 | Infineon Technologies Ag | Data output encoding device e.g. safety dongle, for use in mobile telephone, has bus encoding mechanism for selectively encoding digital signals output by processor, and peripheral interface for outputting selectively encoded signals |
DE102008054627A1 (en) | 2008-12-15 | 2010-06-17 | Robert Bosch Gmbh | Control device with the method for manipulation protection computer program, computer program product |
WO2011015510A1 (en) | 2009-08-06 | 2011-02-10 | Fachhochschule Schmalkalden | Real-time capable quantum computer secure encoding of data of all types |
Non-Patent Citations (1)
Title |
---|
"Vorgang einer algorithmischen ablaufenden Informationsverarbeitung" angesehen wird./Stallings, W.: Operating Systems, Internals and Design Principles. ISBN 0-13-147954-7/ |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102013014587A1 (en) | 2013-08-29 | 2015-03-05 | Fachhochschule Schmalkalden | Method for IT protection of security-relevant data and its processing |
Also Published As
Publication number | Publication date |
---|---|
DE102012004780B4 (en) | 2018-02-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1668516B1 (en) | Decrypting and encrypting during write accesses to a memory | |
EP1246043B1 (en) | Method for transferring data over a data bus | |
DE69815599T2 (en) | Method and device for protecting application data in secure memory areas | |
DE10196006B4 (en) | Create a key hierarchy for use in an isolated execution environment | |
DE19782169C2 (en) | Cryptographically protected paging subsystem | |
EP1668515B8 (en) | Word-individual key generation | |
DE112008003855B4 (en) | System and method for providing secure access to system memory | |
DE60217260T2 (en) | Data processing and encryption unit | |
DE102009013384B4 (en) | System and method for providing a secure application fragmentation environment | |
EP0965076B1 (en) | Electronic data processing device and system | |
DE112017004609T5 (en) | Multi-level memory integrity method and device | |
DE102014213539A1 (en) | Device and method for memory address encryption | |
DE112010005842T5 (en) | Scrambling an address and encrypting write data to store a memory device | |
WO2011054639A1 (en) | Cryptographic hardware module or method for updating a cryptographic key | |
DE102008010789B4 (en) | Method for the access and communication-related random encryption and decryption of data | |
DE102015113468A1 (en) | DATA PROCESSING DEVICE AND METHOD FOR SECURING A DATA PROCESSING AGAINST ATTACKS | |
DE602004003226T2 (en) | Table masking to withstand attacks by analyzing power consumption. | |
DE112006004173T5 (en) | Protecting a programmable memory against unauthorized modification | |
WO2016165930A1 (en) | Device and method for generating a key in a programmable hardware module | |
DE602004001732T2 (en) | Data encryption in an electronic device with multiple symmetric processors | |
EP1721232A1 (en) | Method for protecting confidential data | |
EP3387636B1 (en) | Cryptographic algorithm having a key-dependent masked computing step (sbox call) | |
DE102012004780B4 (en) | Method and arrangement for protecting data secrets in memory | |
DE102004018874B4 (en) | Method and device for determining a result | |
DE69934707T2 (en) | COUNTER-MEASUREMENT DEVICE IN AN ELECTRONIC COMPONENT TO CARRY OUT A CYCLO ALGORITHM WITH SECRETARY KEY |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R086 | Non-binding declaration of licensing interest | ||
R123 | Application deemed withdrawn due to non-payment of filing fee | ||
R409 | Internal rectification of the legal status completed | ||
R409 | Internal rectification of the legal status completed | ||
R012 | Request for examination validly filed | ||
R016 | Response to examination communication | ||
R016 | Response to examination communication | ||
R016 | Response to examination communication | ||
R016 | Response to examination communication | ||
R018 | Grant decision by examination section/examining division | ||
R020 | Patent grant now final | ||
R084 | Declaration of willingness to licence | ||
R081 | Change of applicant/patentee |
Owner name: ROZEK, WERNER, PROF. DR.-ING. DIPL.-ING., DE Free format text: FORMER OWNER: FACHHOCHSCHULE SCHMALKALDEN, 98574 SCHMALKALDEN, DE |
|
R119 | Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee |