DE102019215991A1 - METHOD AND DEVICE FOR TAMPLIFICATION-PROOF STORAGE OF DATA IN NAND-FLASH MEMORY - Google Patents
METHOD AND DEVICE FOR TAMPLIFICATION-PROOF STORAGE OF DATA IN NAND-FLASH MEMORY Download PDFInfo
- Publication number
- DE102019215991A1 DE102019215991A1 DE102019215991.5A DE102019215991A DE102019215991A1 DE 102019215991 A1 DE102019215991 A1 DE 102019215991A1 DE 102019215991 A DE102019215991 A DE 102019215991A DE 102019215991 A1 DE102019215991 A1 DE 102019215991A1
- Authority
- DE
- Germany
- Prior art keywords
- key
- nand flash
- flash memory
- data
- module
- 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.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6209—Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/73—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by creating or determining hardware identification, e.g. serial numbers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/79—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3234—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
Ein Verfahren (100) zum manipulationssicheren Speichern von Daten in einem NAND-Flash Speicher umfasst das Empfangen (102) von zu speichernden Daten in einem NAND-Flash Controller und das Anordnen (104) der empfangenen Daten in Seiten von Blöcken des NAND-Flash Speichers. Jede in den NAND-Flash Speicher zu programmierende Seite oder jeder Block wird individuell verschlüsselt (108), wobei die Verschlüsselung unter Verwendung eines einzigartigen Schlüssels erfolgt, der dem das Verfahren ausführenden System eindeutig zugeordnet ist. Für die verschlüsselte Seiten bzw. Blöcke werden Fehlerkorrekturdaten berechnet (110), die zusammen mit den verschlüsselten Seiten bzw. Blöcke in den NAND-Flash Speicher programmiert werden. A method (100) for tamper-proof storage of data in a NAND flash memory comprises receiving (102) data to be stored in a NAND flash controller and arranging (104) the received data in pages of blocks of the NAND flash memory . Each page or each block to be programmed into the NAND flash memory is individually encrypted (108), the encryption taking place using a unique key which is uniquely assigned to the system executing the method. Error correction data are calculated for the encrypted pages or blocks (110) and are programmed into the NAND flash memory together with the encrypted pages or blocks.
Description
FELDFIELD
Die Erfindung betrifft die Speicherung von Daten in NAND-Flash Speichern, insbesondere die manipulationssichere, verschlüsselte Speicherung von Daten.The invention relates to the storage of data in NAND flash memories, in particular the tamper-proof, encrypted storage of data.
HINTERGRUNDBACKGROUND
In vielen Bereichen der Industrie werden heute Steuergeräte eingesetzt, in denen in einem nichtflüchtigen Speicher Daten abgelegt sind, bspw.In many areas of industry today, control devices are used in which data is stored in a non-volatile memory, e.g.
Computerprogramminstruktionen und Parameter für den Betrieb des Steuergerätes.Computer program instructions and parameters for the operation of the control device.
Die Computerprogramminstruktionen und die Parameter können eine große Menge an Daten darstellen, die in einem mechanisch robusten und elektrisch zuverlässigen Speicher gespeichert werden müssen. Hierzu bieten sich Flash-Speicher an, die als NOR und als NAND-Flash zur Verfügung stehen. Die Bezeichnung NOR bzw. NAND bezieht sich auf die innere Struktur der Speicherzellen. Die Adressierung von NOR- und NAND-Flash Speicher für Schreib- und Lesezugriffe unterscheidet sich in einigen Aspekten voneinander, woraus sich voneinander abweichende Systemstrukturen ergeben. So sind bspw. bei NOR-Flash Speicherzellen über Datenleitungen parallel geschaltet, so dass ein direkter wahlfreier Lesezugriff erfolgen kann, weshalb Programmspeicher von Mikrocontrollern, in denen Basisfunktionen für den Betrieb gespeichert sind, häufig aus NOR-Flash Speichern aufgebaut ist; weitere Software kann dann von einem anderen Speicher nachgeladen werden. NAND-Speicher benötigen zur Speicherung eines Bits eine deutlich geringere Fläche auf einem Siliziumchip als NOR-Speicher; sie werden daher in kostensensitiven Anwendungen bevorzugt verwendet, bei denen große Datenmengen gespeichert werden müssen. Außerdem stehen NAND-Flash Speicher mit größeren Speicherkapazitäten als NOR-Flash Speicher zur Verfügung. Es ist daher nicht unüblich, weitere Software für den Betrieb sowie Betriebsparameter und -daten in einem NAND-Flash Speicher zu speichern.The computer program instructions and parameters can represent a large amount of data that must be stored in a mechanically robust and electrically reliable memory. Flash memories that are available as NOR and NAND flash are available for this purpose. The designation NOR or NAND refers to the internal structure of the memory cells. The addressing of NOR and NAND flash memories for read and write access differs from one another in some aspects, which results in different system structures. For example, in NOR flash memory cells are connected in parallel via data lines so that direct, random read access can take place, which is why program memories of microcontrollers, in which basic functions for operation are stored, are often made up of NOR flash memories; further software can then be reloaded from another memory. NAND memories require a significantly smaller area on a silicon chip to store a bit than NOR memories; they are therefore preferred in cost-sensitive applications where large amounts of data have to be stored. In addition, NAND flash memories are available with larger storage capacities than NOR flash memories. It is therefore not uncommon to store additional software for operation as well as operating parameters and data in a NAND flash memory.
Bei NAND-Flash Speicher sind Speicherzellen in größeren Gruppen in einer Reihenschaltung angeordnet, die sich eine Datenleitung teilen. Ein wahlfreier Lese- oder Schreibzugriff innerhalb einer Gruppe ist dadurch nicht möglich, vielmehr muss immer eine ganze Gruppe gelesen werden. Entsprechend weist NAND-Flash Speicher anstelle einer für den direkten Zugriff durch Mikroprozessoren eingerichteten Speicherschnittstelle eine Schnittstelle zu einem für die Adressierung von NAND-Flash Speichern eingerichteten Controller auf. Eine häufig verwendete Schnittstelle ist von der Open NAND Flash Interface (ONFI) Workgroup spezifiziert worden. Der Controller nimmt zu speichernde Daten bzw. Anfragen betreffend zu lesende Daten entgegen und führt den eigentlichen Schreib- bzw. Lesevorgang durch.In NAND flash memories, memory cells are arranged in larger groups in a series circuit that share a data line. This means that random read or write access within a group is not possible; rather, an entire group must always be read. Accordingly, instead of a memory interface set up for direct access by microprocessors, NAND flash memory has an interface to a controller set up for addressing NAND flash memories. A frequently used interface has been specified by the Open NAND Flash Interface (ONFI) workgroup. The controller accepts data to be saved or queries regarding data to be read and carries out the actual writing or reading process.
Die Speicherbereiche von NAND-Flash Speicher sind in Blöcke und Seiten (Pages) aufgeteilt, wobei ein Block mehrere Pages umfasst. Daten können nur seitenweise gelesen werden, d.h. ein Lesezugriff erfordert es, die gesamte Seite in einen Speicher zu laden, der dann den Lesezugriff auf einzelne Speicherzellen ermöglicht. Entsprechend können Daten nur seitenweise geschrieben bzw. programmiert werden. Eine Löschung von Daten kann nur Blockweise erfolgen. Wenn eine Seite gelöscht werden soll, dann wird in der Regel keine echte Löschoperation ausgeführt, sondern die Daten werden zunächst einmal als gelöscht markiert. Die Koordination der Lese-, Schreib- und Löschzugriffe erfolgt in dem Controller, der auch das sogenannte Wear Leveling, die Übersetzung zwischen logischen und physischen Adressen, das Management defekter Blöcke, Fehlerkorrektur etc. übernimmt.The memory areas of NAND flash memory are divided into blocks and pages, with a block comprising several pages. Data can only be read page by page, i.e. a read access requires the entire page to be loaded into a memory, which then enables read access to individual memory cells. Accordingly, data can only be written or programmed page by page. Data can only be deleted in blocks. When a page is to be deleted, no real delete operation is usually carried out, but the data is first marked as deleted. The coordination of the read, write and delete access takes place in the controller, which also takes on the so-called wear leveling, the translation between logical and physical addresses, the management of defective blocks, error correction, etc.
Sowohl die Computerprogramminstruktionen als auch die Parameter eines Steuergerätes können als geistiges Eigentum geschützt sein. Außerdem können die Steuergeräte aus rechtlichen Gründen oder aus Sicherheitsgründen für den Betrieb nur mit einer bestimmten Kombination von Software und Parametern zugelassen sein, so dass eine Manipulation ausgeschlossen werden muss.Both the computer program instructions and the parameters of a control device can be protected as intellectual property. In addition, for legal reasons or for security reasons, the control devices can only be approved for operation with a certain combination of software and parameters, so that manipulation must be ruled out.
Es ist daher eine Aufgabe der vorliegenden Erfindung, eine Schaltung und ein Verfahren anzugeben, die eine verbesserte Sicherheit von in NAND-Flash Speicher gespeicherten Daten von Steuergeräten gegen unberechtigtes Auslesen und Manipulation bieten.It is therefore an object of the present invention to specify a circuit and a method which offer improved security of data stored in NAND flash memories by control devices against unauthorized reading and manipulation.
ZUSAMMENFASSUNGSUMMARY
Diese Aufgabe wird durch das in Anspruch 1 angegebene Verfahren und die in Anspruch 7 angegebene Schaltung gelöst. Ausgestaltungen und Weiterentwicklungen des Verfahrens bzw. der Schaltung sind in den jeweiligen abhängigen Ansprüchen angegeben.This object is achieved by the method specified in claim 1 and the circuit specified in claim 7. Refinements and further developments of the method and the circuit are specified in the respective dependent claims.
Im Kontext dieser Beschreibung wird der Begriff „manipulationssicher“ u.a. auch dafür verwendet, dass Daten möglicherweise zwar mit anderen Daten überschrieben werden können, aber das das Verfahren implementierenden System diese dann nicht mehr nutzen kann und entweder nicht mehr funktioniert oder erkennt, dass eine Manipulation vorliegt und eine entsprechende Fehlerreaktion auslöst.In the context of this description, the term “tamper-proof” is used, among other things, for the fact that data can possibly be overwritten with other data, but the system implementing the method can then no longer use them and either no longer works or recognizes that a manipulation has occurred and triggers a corresponding error reaction.
Nach einem ersten Aspekt der Erfindung umfasst ein erfindungsgemäßes Verfahren zum manipulationssicheren Speichern von Daten in einem NAND-Flash Speicher das Empfangen von zu speichernden Daten in einem NAND-Flash Controller.According to a first aspect of the invention, a method according to the invention for tamper-proof storage of data in a NAND flash memory comprises receiving data to be stored in a NAND flash controller.
Der NAND-Flash Controller ist in bekannter Weise dazu eingerichtet, logische Zugriffe auf in dem NAND-Flash Speicher gespeicherte Daten auf die physikalischen Speicherorte zu übertragen. Dieser Vorgang wird auch als „Mapping“ bezeichnet. Je nach erforderlicher Anwendung gibt es verschiedene Mapping-Ansätze, bei denen die Daten in einem Zwischenspeicher, bspw. einem Speicher mit wahlfreiem Schreib- und Lesezugriff, entsprechend der physikalischen Struktur des NAND-Flash Speichers angeordnet werden, bevor sie in den NAND-Flash Speicherbaustein geschrieben werden oder nachdem sie daraus ausgelesen wurden.The NAND flash controller is set up in a known manner to transfer logical accesses to data stored in the NAND flash memory to the physical storage locations. This process is also known as "mapping". Depending on the required application, there are different mapping approaches in which the data is arranged in a buffer, e.g. a memory with random read and write access, according to the physical structure of the NAND flash memory, before it is stored in the NAND flash memory module written or after they have been read from it.
Das „block-based mapping“ wandelt logische Blöcke in physikalische Blöcke um. Die Seiten innerhalb der Blöcke werden eins zu eins zwischen Host und NAND-Flash Speicher abgebildet.The "block-based mapping" converts logical blocks into physical blocks. The pages within the blocks are mapped one-to-one between the host and the NAND flash memory.
Beim „page-based mapping“ werden logische Seiten auf physikalische Seiten im NAND-Flash Speicher abgebildet, wobei die Blocknummern einen Teil der Seitenadresse bilden. Eine logische Seite kann auf jeder beliebigen Seite innerhalb eines beliebigen Blocks abgelegt werden.With "page-based mapping", logical pages are mapped to physical pages in the NAND flash memory, with the block numbers forming part of the page address. A logical page can be placed on any page within any block.
Der dritte Mapping Ansatz ist das „sub-page-based mapping“. Dabei werden logische Einheiten, die kleiner als eine Seite sind, gebildet und dann auf physikalische Einheiten abgebildet. Die Problematik bei diesem Verfahren liegt darin, dass die kleinste Schreibeinheit eine Seite ist, weshalb der Controller diese Einheiten in eine Seite zusammenfasst.The third mapping approach is "sub-page-based mapping". Logical units that are smaller than one page are formed and then mapped onto physical units. The problem with this method is that the smallest writing unit is a page, which is why the controller combines these units into one page.
Die für die Übersetzung zwischen logischen Zugriffen von der Host-Seite auf physikalische Adressen des NAND-Flash Speichers genutzte Logik wird auch als Flash Translation Layer (FTL) bezeichnet.The logic used for the translation between logical accesses from the host side to physical addresses of the NAND flash memory is also referred to as the flash translation layer (FTL).
Das erfindungsgemäße Verfahren umfasst entsprechend das Anordnen der empfangenen, zu speichernden Daten in Seiten von Blöcken des NAND-Flash Speichers. Die Größe der Seiten und der Blöcke ist durch den verwendeten NAND-Flash Speicher vorgegeben und kann variieren. Bei Datenmengen, die größer als der in einer Seite oder in einem Block verfügbare Speicherplatz sind, erfolgt in dem FTL eine entsprechende Aufteilung auf mehrere Seiten bzw. Blöcke. Das erfindungsgemäße Verfahren umfasst außerdem das individuelle Verschlüsseln jeder in den NAND-Flash Speicher zu programmierenden Seite oder jedes Blocks mit einem einzigartigen Schlüssel, der dem das Verfahren ausführenden System eindeutig zugeordnet ist. Dabei ist die Verschlüsselung einzelner Seiten oder Blöcke für die Nutzbarkeit der seitenweise bzw. blockweise gelesenen Speicherinhalte von Bedeutung.The method according to the invention accordingly comprises arranging the received data to be stored in pages of blocks of the NAND flash memory. The size of the pages and blocks is determined by the NAND flash memory used and can vary. In the case of data volumes that are greater than the storage space available in a page or in a block, the FTL is divided accordingly over several pages or blocks. The method according to the invention also includes the individual encryption of each page or block to be programmed into the NAND flash memory with a unique key which is uniquely assigned to the system executing the method. The encryption of individual pages or blocks is important for the usability of the memory contents read page by page or block by block.
Ferner umfasst das Verfahren das Berechnen von Fehlerkorrekturdaten für die verschlüsselten Seiten oder Blöcke, und das Programmieren der verschlüsselten Seiten oder Blöcke und der Fehlerkorrekturdaten in den NAND-Flash Speicher. Das Berechnen der Fehlerkorrekturdaten kann bspw. das Erzeugen von Bose-Chaudhuri-Hocquenghem-Codes (BCH-Code) umfassen, was mit unterschiedlichen in dem NAND-Controller gespeicherten Parametern erfolgen kann.The method further comprises calculating error correction data for the encrypted pages or blocks, and programming the encrypted pages or blocks and the error correction data into the NAND flash memory. The calculation of the error correction data can include, for example, the generation of Bose-Chaudhuri-Hocquenghem codes (BCH code), which can be done with different parameters stored in the NAND controller.
Bei Ausgestaltungen des Verfahrens erzeugt die Verschlüsselung Daten mit einer identischen Größe, d.h. die Datenmenge wird durch die Verschlüsselung nicht vergrößert. Ein solches Verschlüsselungsverfahren ist bspw. als AES bekannt. Wenn eine Verschlüsselung genutzt wird, die die Datenmenge vergrößert kann dies bei der Aufteilung der Daten auf Seiten und Blöcke im FTL entsprechend berücksichtigt werden.In embodiments of the method, the encryption generates data with an identical size, i.e. the amount of data is not increased by the encryption. Such an encryption method is known, for example, as AES. If encryption is used that increases the amount of data, this can be taken into account when dividing the data into pages and blocks in the FTL.
Bei Ausgestaltungen des Verfahrens ist der Schlüssel in einem gesicherten Bereich des NAND-Controllers oder einem TPM-Modul des das Verfahren ausführenden Systems gespeichert. Das Verfahren umfasst entsprechend das Auslesen des Schlüssels aus dem TPM-Modul oder aus dem gesicherten Bereich des NAND-Controllers vor dem Verschlüsseln oder dem Entschlüsseln.In embodiments of the method, the key is stored in a secure area of the NAND controller or a TPM module of the system executing the method. The method accordingly includes reading out the key from the TPM module or from the secured area of the NAND controller before encryption or decryption.
Die eindeutige Zuordnung des Schlüssels zu dem das Verfahren ausführenden System kann umfassen, dass der Schlüssel eine Repräsentation einer einzigartigen Kennung einer oder mehrerer in dem das Verfahren ausführenden System enthaltenen Komponenten enthält oder ausschließlich daraus besteht.The unique assignment of the key to the system executing the method can include that the key contains or consists exclusively of a representation of a unique identifier of one or more components contained in the system executing the method.
Die einzigartige Kennung einer Komponente kann bspw. eine eindeutige und einzigartige Identifikationsnummer sein, welche über eine Schnittstelle auslesbar ist. Solche Identifikationsnummern sind bspw. in NAND-Flash Speicherbausteinen, in NAND-Controllern, Mikroprozessoren oder TPM-Modulen vorhanden. Die Repräsentation kann durch Anwendung einer Funktion auf die Identifikationsnummern erhalten sein, bspw. durch Anwendung einer Streuwertfunktion (Hash), wobei die Identifikationsnummern zuvor auf geeignete Weise zusammengefasst worden sein können. Im einfachsten Fall kann das durch einfaches Aneinanderhängen oder Aneinanderreihen erfolgen. Die Auswahl der für das Erhalten der Repräsentation zu verwendenden Identifikationsnummern sowie die Reihenfolge, in der die Identifikationsnummern zum Erzeugen der Repräsentation bzw. zur Zusammenfassung anzuordnen sind ist zweckmäßigerweise festgelegt.The unique identifier of a component can be, for example, a clear and unique identification number that can be read out via an interface. Such identification numbers are available, for example, in NAND flash memory modules, in NAND controllers, microprocessors or TPM modules. The representation can be obtained by applying a function to the identification numbers, for example by applying a hash function, it being possible for the identification numbers to have been suitably combined beforehand. In the simplest case, this can be done by simply hanging them together or lining them up. The selection of the identification numbers to be used for obtaining the representation and the order in which the identification numbers are used to generate the Representation or to be arranged for summary is expediently specified.
Das Verfahren kann entsprechend das Bestimmen der Repräsentation anhand der einzigartigen Kennung der mindestens einen in dem das Verfahren ausführenden System enthaltenen Komponente und das Zuführen der Repräsentation zu der Verschlüsselung als Schlüssel umfassen.The method can accordingly include determining the representation on the basis of the unique identifier of the at least one component contained in the system executing the method and supplying the representation to the encryption as a key.
Wenn der Schlüssel ausschließlich aus der Repräsentation der einzigartigen Kennung von Systemkomponenten besteht ist eine lokale Speicherung des Schlüssels nicht erforderlich, er kann vielmehr zur Laufzeit jederzeit bestimmt werden, wenn Daten entschlüsselt werden müssen. Wenn in einem solchen System eine Komponente entfernt oder ausgetauscht wird, deren einzigartige Kennung zur Erzeugung des Schlüssels verwendet wurde, kann der verschlüsselte Inhalt nicht mehr gelesen werden. Ein Austausch bspw. des NAND-Flash Speichers gegen einen anderen Baustein mit einer auf anderen Kennungen basierenden Verschlüsselung führt dazu, dass ein das Verfahren ausführendes System nicht mehr funktioniert. Auch eine Umprogrammierung des Speicherinhalts unter Umgehung des Systems, ohne den unter Verwendung der Kennungen der Systemkomponenten erzeugten Schlüssel zu nutzen, würde dazu führen, dass das System nicht mehr funktioniert.If the key consists exclusively of the representation of the unique identifier of system components, local storage of the key is not required; rather, it can be determined at runtime at any time if data has to be decrypted. In such a system, if a component whose unique identifier was used to generate the key is removed or replaced, the encrypted content can no longer be read. If, for example, the NAND flash memory is exchanged for another component with an encryption based on other identifiers, a system carrying out the method will no longer work. Reprogramming the memory content by bypassing the system without using the key generated using the identifiers of the system components would also result in the system no longer functioning.
Bei einer Ausgestaltung des Verfahrens, bei dem das das Verfahren ausführende System ein TPM-Modul aufweist, können zusätzlich zu Kennungen von Systemkomponenten Informationen in den Schlüssel einfließen, die in dem TPM-Modul einzigartig vorliegen. Die Daten können dann nur unter Verwendung desselben TPM-Moduls wieder entschlüsselt werden. TPM-Module sind gegen Manipulation und Angriffe besonders geschützt und können so die Sicherheit der Daten weiter erhöhen.In one embodiment of the method in which the system executing the method has a TPM module, information that is unique in the TPM module can flow into the key in addition to identifiers of system components. The data can then only be decrypted again using the same TPM module. TPM modules are particularly protected against manipulation and attacks and can thus further increase the security of the data.
Bei einer anderen Ausgestaltung des Verfahrens, bei dem das das Verfahren ausführende System ein TPM-Modul aufweist, können außerhalb des TPM-Moduls, bspw. in einem unverschlüsselten Bereich des NAND-Flash Speichers oder einem dafür vorgesehenen Speicherbereich des NAND-Flash Controllers gespeicherte Schlüssel durch einen in dem TPM-Modul gespeicherten Schlüssel verschlüsselt werden. Vor der Benutzung muss der Schlüssel erst von dem TPM-Modul entschlüsselt werden, wobei der dazu nötige Schlüssel von dem TPM-Modul auch ausgelesen werden kann, so dass eine Entschlüsselung auch auf anderen Systemen erfolgen kann.In another embodiment of the method, in which the system executing the method has a TPM module, keys stored outside the TPM module, for example in an unencrypted area of the NAND flash memory or a storage area of the NAND flash controller provided for this purpose be encrypted by a key stored in the TPM module. Before it can be used, the key must first be decrypted by the TPM module, and the key required for this can also be read out by the TPM module so that decryption can also take place on other systems.
Ein erfindungsgemäßes Verfahren zum Auslesen der erfindungsgemäß manipulationssicher gespeicherten Daten aus dem NAND-Flash Speicher umfasst das Lesen einer Seite aus dem NAND-Speicher, ggf. unter Anwendung der beim Schreiben erzeugten Fehlerkorrekturdaten, und das Entschlüsseln der gelesenen und ggf. fehlerkorrigierten Seite. Dazu kann der Schlüssel aus einem Speicher ausgelesen oder zur Laufzeit aus einzigartigen Kennungen von Komponenten des das Verfahren ausführenden Systems bestimmt werden. Die entschlüsselten Daten werden in einem für wahlfreien Zugriff eingerichteten Speicher zur Verfügung gestellt und können von dort zur weiteren Nutzung ausgelesen werden.A method according to the invention for reading out the data stored in a tamper-proof manner according to the invention from the NAND flash memory includes reading a page from the NAND memory, possibly using the error correction data generated during writing, and decrypting the read and possibly error-corrected page. For this purpose, the key can be read from a memory or determined at runtime from unique identifiers of components of the system executing the method. The decrypted data is made available in a memory set up for random access and can be read from there for further use.
Bei einer Ausgestaltung ist der Schlüssel mit einem in einem TPM-Modul gespeicherten Schlüssel verschlüsselt. Entsprechend kann das Verfahren das Entschlüsseln des Schlüssels umfassen.In one embodiment, the key is encrypted with a key stored in a TPM module. Correspondingly, the method can include decrypting the key.
FigurenlisteFigure list
Im Folgenden wird die Erfindung mit Bezug auf die Zeichnung beschrieben. In der Zeichnung zeigt
-
1 ein exemplarisches Flussdiagramm des erfindungsgemäßen Verfahrens zum manipulationssicheren Speichern von Daten in einem NAND-Flash Speicher, -
2 ein exemplarisches Flussdiagramm des erfindungsgemäßen Verfahrens zum Lesen von gemäß dem Verfahren zum manipulationssicheren Speichern von Daten in einem NAND-Flash Speicher gespeicherten Daten, -
3 ein exemplarisches Blockschaltbild einer Schaltung zur Ausführung des erfindungsgemäßen Verfahrens sowie den Datenfluss beim manipulationssicheren Speichern von Daten in einem NAND-Flash Speicher, und -
4 ein exemplarisches Blockschaltbild der Schaltung zur Ausführung des erfindungsgemäßen Verfahrens sowie den Datenfluss beim Lesen von gemäß dem Verfahren zum manipulationssicheren Speichern von Daten in einem NAND-Flash Speicher gespeicherten Daten.
-
1 an exemplary flow chart of the method according to the invention for tamper-proof storage of data in a NAND flash memory, -
2 an exemplary flowchart of the method according to the invention for reading data stored in accordance with the method for tamper-proof storage of data in a NAND flash memory, -
3 an exemplary block diagram of a circuit for carrying out the method according to the invention and the data flow in the tamper-proof storage of data in a NAND flash memory, and -
4th an exemplary block diagram of the circuit for carrying out the method according to the invention and the data flow when reading data stored in a NAND flash memory according to the method for tamper-proof storage of data.
In den Figuren sind gleiche oder ähnliche Elemente mit identischen Bezugszeichen referenziert.Identical or similar elements are referenced with identical reference symbols in the figures.
BESCHREIBUNG VON AUSFÜHRUNGSBEISPIELENDESCRIPTION OF EXEMPLARY EMBODIMENTS
BezugszeichenlisteList of reference symbols
- 100100
- SpeicherverfahrenStorage method
- 102102
- EmpfangenReceive
- 104104
- AnordnenArrange
- 106106
- AuslesenReading out
- 106a106a
- BestimmenDetermine
- 106b106b
- ZuführenRespectively
- 108108
- VerschlüsselnEncrypt
- 110110
- BerechnenTo calculate
- 112112
- ProgrammierenProgram
- 200200
- LeseverfahrenReading process
- 202202
- LesenRead
- 204204
- Prüfen & KorrigierenCheck & correct
- 206206
- Schlüssel auslesenRead out the key
- 206a206a
- Kennungen auslesenRead out identifiers
- 206b206b
- Kennungen kombinierenCombine identifiers
- 208208
- EntschlüsselnDecrypt
- 210210
- ZurverfügungstellenMake available
- 300300
- Schaltungcircuit
- 302302
- NAND-Flash SpeicherbausteinNAND flash memory module
- 304304
- Mikroprozessormicroprocessor
- 306306
- erste Schnittstellefirst interface
- 308308
- NAND-ControllerNAND controller
- 310310
- FTL-ModulFTL module
- 312312
- VerschlüsselungsmodulEncryption module
- 314314
- FehlerkorrekturmodulError correction module
- 316316
- SchlüsselmodulKey module
- 318318
- zweite Schnittstellesecond interface
Claims (10)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102019215991.5A DE102019215991A1 (en) | 2019-10-17 | 2019-10-17 | METHOD AND DEVICE FOR TAMPLIFICATION-PROOF STORAGE OF DATA IN NAND-FLASH MEMORY |
PCT/EP2020/077947 WO2021073944A1 (en) | 2019-10-17 | 2020-10-06 | Method and device for storing data in a nand flash storage device in a secure manner against manipulation |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102019215991.5A DE102019215991A1 (en) | 2019-10-17 | 2019-10-17 | METHOD AND DEVICE FOR TAMPLIFICATION-PROOF STORAGE OF DATA IN NAND-FLASH MEMORY |
Publications (1)
Publication Number | Publication Date |
---|---|
DE102019215991A1 true DE102019215991A1 (en) | 2021-04-22 |
Family
ID=72752919
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102019215991.5A Ceased DE102019215991A1 (en) | 2019-10-17 | 2019-10-17 | METHOD AND DEVICE FOR TAMPLIFICATION-PROOF STORAGE OF DATA IN NAND-FLASH MEMORY |
Country Status (2)
Country | Link |
---|---|
DE (1) | DE102019215991A1 (en) |
WO (1) | WO2021073944A1 (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080114994A1 (en) * | 2006-11-14 | 2008-05-15 | Sree Mambakkam Iyer | Method and system to provide security implementation for storage devices |
EP3046024B1 (en) * | 2015-01-15 | 2019-07-03 | Siemens Aktiengesellschaft | Method of operating a system on chip comprising a bootable processor |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2706862A1 (en) * | 2007-11-26 | 2009-06-04 | Koolspan, Inc. | System for and method of auto-registration with cryptographic modules |
CN102103559B (en) * | 2009-12-18 | 2014-06-18 | 上海华虹集成电路有限责任公司 | Multi-channel NANDflash controller with AES and ECC |
US10192062B2 (en) * | 2014-06-20 | 2019-01-29 | Cypress Semiconductor Corporation | Encryption for XIP and MMIO external memories |
-
2019
- 2019-10-17 DE DE102019215991.5A patent/DE102019215991A1/en not_active Ceased
-
2020
- 2020-10-06 WO PCT/EP2020/077947 patent/WO2021073944A1/en active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080114994A1 (en) * | 2006-11-14 | 2008-05-15 | Sree Mambakkam Iyer | Method and system to provide security implementation for storage devices |
EP3046024B1 (en) * | 2015-01-15 | 2019-07-03 | Siemens Aktiengesellschaft | Method of operating a system on chip comprising a bootable processor |
Also Published As
Publication number | Publication date |
---|---|
WO2021073944A1 (en) | 2021-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE102009013384B4 (en) | System and method for providing a secure application fragmentation environment | |
DE10254396A1 (en) | Device and method for encrypting data | |
EP1883906B1 (en) | Portable data carrier featuring secure data processing | |
DE10338032B4 (en) | Processor with electronic backups to store secret data | |
DE112021000648T5 (en) | STORAGE DEVICE RESISTANT TO CYBER ATTACKS AND MALFUNCTIONS | |
DE102018114266A1 (en) | NON-VOLATILE MEMORY DEVICE WITH SAFE READING | |
DE102015010906A1 (en) | A method and apparatus for generating content vacancy over garbage data when changing encryption parameters | |
DE102013112195A1 (en) | A memory controller that changes part data in a memory device, and a method of changing part data thereof | |
DE102015113414A1 (en) | Error correction using WOM codes | |
DE102005061367A1 (en) | IC chip card and method for detecting data manipulation | |
DE112020005502T5 (en) | DYNAMIC OVER-PROVISION ALLOCATION FOR DEDICATED BLOCKS | |
DE112020001061T5 (en) | ENCRYPTED GEAR PROGRAMMING | |
EP1661069B1 (en) | Processor circuit and method for allocating a logic chip to a memory chip | |
DE102019110440A1 (en) | Replay protection for storage based on key refresh | |
EP3378006B1 (en) | Method for loading of a secure memory image of a microcontroler and arrangement with a microcontroller | |
DE102019215991A1 (en) | METHOD AND DEVICE FOR TAMPLIFICATION-PROOF STORAGE OF DATA IN NAND-FLASH MEMORY | |
EP2394232B1 (en) | Device and method for preventing unauthorized use and/or manipulation of software | |
EP1636700A1 (en) | Method for booting up a software in the boot sector of a programmable read-only memory | |
EP2948894B1 (en) | Method for securely erasing a non-volatile semiconductor mass memory, computer system, and computer program product | |
EP1614012A1 (en) | Method for checking the data integrity of software in control appliances | |
DE60216106T2 (en) | PROTECTED READING OF COMPUTER COMMANDS IN A DATA PROCESSING SYSTEM | |
DE102009055390B4 (en) | Apparatus and method for writing data to be stored into a predetermined memory area | |
DE102013108073A1 (en) | DATA PROCESSING ARRANGEMENT AND METHOD FOR DATA PROCESSING | |
DE102022212074A1 (en) | STORAGE SYSTEM AND METHOD FOR OPERATING SAME | |
DE102022129335A1 (en) | Data integrity validation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R012 | Request for examination validly filed | ||
R016 | Response to examination communication | ||
R002 | Refusal decision in examination/registration proceedings | ||
R003 | Refusal decision now final |