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 PDF

Info

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
Application number
DE102019215991.5A
Other languages
German (de)
Inventor
Klaus Schikorra
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.)
Continental Automotive GmbH
Original Assignee
Continental Automotive GmbH
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 Continental Automotive GmbH filed Critical Continental Automotive GmbH
Priority to DE102019215991.5A priority Critical patent/DE102019215991A1/en
Priority to PCT/EP2020/077947 priority patent/WO2021073944A1/en
Publication of DE102019215991A1 publication Critical patent/DE102019215991A1/en
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting 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/73Protecting 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3234Cryptographic 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.

Figure DE102019215991A1_0000
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.
Figure DE102019215991A1_0000

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.
The invention is described below with reference to the drawing. In the drawing shows
  • 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

1 zeigt ein exemplarisches Flussdiagramm des erfindungsgemäßen Verfahrens 100 zum manipulationssicheren Speichern von Daten in einem NAND-Flash Speicher. In Schritt 102 werden zunächst zu speichernde Daten in einem NAND-Flash Controller empfangen, bspw. von einem Mikroprozessor. Der NAND-Flash Controller ordnet in Schritt 104 die Daten in Seiten von Blöcken des NAND-Flash Speichers an. Anschließend verschlüsselt der NAND-Flash Controller in Schritt 108 jede der in den NAND-Flash Speicher zu programmierenden Seiten. Dazu bezieht der NAND-Flash Controller in Schritt 106 einen einzigartigen Schlüssel, der dem das Verfahren ausführenden System eindeutig zugeordnet ist, bspw. von einem TPM-Modul oder einem anderen zur Bereitstellung eines Schlüssels eingerichteten Modul. Das zur Bereitstellung eines Schlüssels eingerichtete Modul kann auch dazu eingerichtet sein, aus einzigartigen Kennungen von zu dem das Verfahren ausführenden System gehörenden Komponenten einen Schlüssel zu bestimmen, Schritt 106a, und dem NAND-Controller zuzuführen, Schritt 106b. Für die nun verschlüsselte Seite werden in Schritt 110 von den NAND-Flash Controller Fehlerkorrekturdaten berechnet, die zusammen mit der verschlüsselten Seite in Schritt 112 in den NAND-Flash Speicher programmiert werden. 1 shows an exemplary flow diagram of the method according to the invention 100 for tamper-proof storage of data in a NAND flash memory. In step 102 data to be saved are first received in a NAND flash controller, e.g. from a microprocessor. The NAND flash controller arranges in step 104 the data in pages of blocks of NAND flash memory. The NAND flash controller then encrypts in step 108 each of the NAND flash memory pages to be programmed. To do this, the NAND flash controller refers to step 106 a unique key that is uniquely assigned to the system executing the method, for example from a TPM module or another module set up to provide a key. The module set up to provide a key can also be set up to determine a key from unique identifiers of components belonging to the system executing the method, step 106a , and feed it to the NAND controller, step 106b . For the now encrypted page, step 110 error correction data is calculated by the NAND flash controller, which together with the encrypted page in step 112 programmed into the NAND flash memory.

2 zeigt ein exemplarisches Flussdiagramm des erfindungsgemäßen Verfahrens 200 zum Lesen von gemäß dem Verfahren 100 zum manipulationssicheren Speichern von Daten in einem NAND-Flash Speicher gespeicherten Daten. In Schritt 202 wird zunächst eine Seite aus dem NAND-Flash Speicher gelesen, und in Schritt 204 wird unter Verwendung der zugehörenden Fehlerkorrekturdaten eine ggf. nötige Fehlerkorrektur durchgeführt. Die nunmehr fehlerfreien Daten der Seite werden in Schritt 208 entschlüsselt. Dazu bezieht der NAND-Flash Controller in Schritt 206 den bei der Verschlüsselung verwendeten Schlüssel, bspw. von einem TPM-Modul oder einem anderen zur Bereitstellung eines Schlüssels eingerichteten Modul. Das zur Bereitstellung eines Schlüssels eingerichtete Modul kann bspw. einem Speicher umfassen oder zur Bestimmung (206a, 206b) eines Schlüssels aus einzigartigen Kennungen von zu dem das Verfahren ausführenden System gehörenden Komponenten und Weiterleitung des Schlüssels an den NAND-Controller eingerichtet sein. Die entschlüsselte Seite bzw. deren Daten werden in Schritt 210 in einem für wahlfreien Zugriff eingerichteten Speicher bereitgestellt, von wo eine andere Systemkomponente die Daten lesen kann, bspw. ein Mikroprozessor. 2 shows an exemplary flow diagram of the method according to the invention 200 for reading according to the method 100 for tamper-proof storage of data stored in a NAND flash memory. In step 202 a page is first read from the NAND flash memory, and in step 204 any necessary error correction is carried out using the associated error correction data. The now error-free data on the page are displayed in step 208 decrypted. To do this, the NAND flash controller refers to step 206 the key used for encryption, e.g. from a TPM module or another module set up to provide a key. The module set up to provide a key can, for example, comprise a memory or to determine ( 206a , 206b ) a key made up of unique identifiers of components belonging to the system executing the method and forwarding of the key to the NAND controller. The decrypted page or its data are in step 210 provided in a memory set up for random access, from where another system component can read the data, for example a microprocessor.

3 zeigt ein exemplarisches Blockschaltbild einer Schaltung 300 zur Ausführung des erfindungsgemäßen Verfahrens 100 sowie den Datenfluss beim manipulationssicheren Speichern von Daten. Ein Mikroprozessor 304 sendet zu speichernde Daten über eine erste Schnittstelle 306 an einen NAND-Controller 308. NAND-Controller 308 umfasst ein FTL-Modul 310, das die Übersetzung von logischen Adressen in physikalische Adressen ausführt und die zu speichernden Daten in Seiten bzw. Blöcken anordnet. Die Seiten oder Blöcke werden an ein Verschlüsselungsmodul 312 weitergeleitet, das die Seiten oder Blöcke mit einem einzigartigen, dem das Verfahren ausführenden System eindeutig zugeordneten Schlüssel verschlüsselt und an ein Fehlerkorrekturmodul 314 weiterleitet. Das Verschlüsselungsmodul 312 empfängt den Schlüssel zur Verschlüsselung von einem Schlüsselmodul 316. Das Schlüsselmodul 316 kann bspw. einen Schlüsselspeicher umfassen, oder dazu eingerichtet sein, einzigartige Kennungen ID von Komponenten des Systems auszulesen und auf Basis dieser einzigartigen Kennungen einen Schlüssel zu bestimmen. Das Schlüsselmodul 316 kann Teil des NAND-Flash Controllers sein oder eine separate Komponente. Nach der Fehlerkorrektur werden die verschlüsselten Seiten oder Blöcke zusammen mit den Fehlerkorrekturdaten von dem NAND-Flash Controller über eine zweite Schnittstelle 318 zur Programmierung in einen NAND-Flash Speicherbaustein 302 übertragen. 3 shows an exemplary block diagram of a circuit 300 for carrying out the method according to the invention 100 as well as the flow of data in tamper-proof storage of data. A microprocessor 304 sends data to be saved via a first interface 306 to a NAND controller 308 . NAND controller 308 includes an FTL module 310 which translates logical addresses into physical addresses and arranges the data to be saved in pages or blocks. The pages or blocks are sent to an encryption module 312 forwarded, which encrypts the pages or blocks with a unique, the system executing the method uniquely assigned key and to an error correction module 314 forwards. The encryption module 312 receives the key for encryption from a key module 316 . The key module 316 can, for example, comprise a key memory, or be set up to read out unique identifiers ID from components of the system and to determine a key on the basis of these unique identifiers. The key module 316 can be part of the NAND flash controller or a separate component. After the error correction, the encrypted pages or blocks are sent together with the error correction data from the NAND flash controller via a second interface 318 for programming in a NAND flash memory module 302 transfer.

4 zeigt ein exemplarisches Blockschaltbild der Schaltung 300 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. Das Blockschaltbild entspricht im Wesentlichen dem mit Bezug auf 3 beschriebenen Blockschaltbild, lediglich die Datenflüsse zwischen NAND-Flash Speicherbaustein 302, Fehlerkorrekturmodul 314, Verschlüsselungsmodul 312, FTL-Modul 310 und Mikroprozessor 304 verlaufen in entgegengesetzter Richtung, und Verschlüsselungsmodul 312 dient beim Lesen zum Entschlüsseln der Daten. Das Bereitstellen des Schlüssels für das Verschlüsselungsmodul 312 erfolgt in derselben Art wie bei der Verschlüsselung. 4th shows an exemplary block diagram of the circuit 300 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. The block diagram essentially corresponds to that with reference to FIG 3 described block diagram, only the data flows between NAND flash memory chip 302 , Error correction module 314 , Encryption module 312 , FTL module 310 and microprocessor 304 run in the opposite direction, and encryption module 312 is used to decrypt the data when reading. Providing the key for the encryption module 312 takes place in the same way as for encryption.

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)

Verfahren (100) zum manipulationssicheren Speichern von Daten in einem NAND-Flash Speicher, umfassend: - Empfangen (102) von zu speichernden Daten in einem NAND-Flash Controller, - Anordnen (104) der empfangenen Daten in Seiten von Blöcken des NAND-Flash Speichers, - individuelles Verschlüsseln (108) jeder in den NAND-Flash Speicher zu programmierenden Seite oder jedes Blocks, wobei die Verschlüsselung unter Verwendung eines einzigartigen Schlüssels erfolgt, der dem das Verfahren ausführenden System eindeutig zugeordnet ist, - Berechnen (110) von Fehlerkorrekturdaten für die verschlüsselte Seiten bzw. Blöcke, und - Programmieren (112) der verschlüsselten Seiten bzw. Blöcke und der Fehlerkorrekturdaten in den NAND-Flash Speicher.Method (100) for tamper-proof storage of data in a NAND flash memory, comprising: - Receiving (102) data to be saved in a NAND flash controller, - arranging (104) the received data in pages of blocks of the NAND flash memory, - individual encryption (108) of each page or each block to be programmed into the NAND flash memory, the encryption taking place using a unique key which is uniquely assigned to the system executing the method, - Calculating (110) error correction data for the encrypted pages or blocks, and - Programming (112) the encrypted pages or blocks and the error correction data in the NAND flash memory. Verfahren (100) nach Anspruch 1, wobei der Schlüssel in einem gesicherten Bereich des NAND-Controllers oder einem TPM-Modul des das Verfahren ausführenden Systems gespeichert ist, und wobei das Verfahren umfasst: - Auslesen (106) des Schlüssels aus dem TPM-Modul oder aus dem gesicherten Bereich des NAND-Controllers.Method (100) according to Claim 1 , wherein the key is stored in a secure area of the NAND controller or a TPM module of the system executing the method, and wherein the method comprises: - reading out (106) the key from the TPM module or from the secure area of the NAND Controllers. Verfahren (100) nach Anspruch 1 oder 2, wobei der Schlüssel eine Repräsentation einer einzigartigen Kennung von mindestens einer in einem das Verfahren ausführenden System enthaltenen Komponente enthält und wobei das Verfahren umfasst: - Bestimmen (106a) der Repräsentation anhand der einzigartigen Kennung der mindestens einen in dem das Verfahren ausführenden System enthaltenen Komponente, und - Zuführen (106b) der Repräsentation zu der Verschlüsselung als Schlüssel.Method (100) according to Claim 1 or 2 , wherein the key contains a representation of a unique identifier of at least one component contained in a system executing the method, and wherein the method comprises: - determining (106a) the representation on the basis of the unique identifier of the at least one component contained in the system executing the method, and - supplying (106b) the representation to the encryption as a key. Verfahren (200) zum Auslesen von nach dem Verfahren (100) eines der Ansprüche 1 bis 3 in einem NAND-Flash Speicher manipulationssicher gespeicherten Daten, umfassend: - Lesen (202) einer Seite oder eines Blocks aus dem NAND-Flash Speicher, - Prüfen und Korrigieren (204) von Lesefehlern unter Verwendung der zu der gelesenen Seite gehörigen Fehlerkorrekturdaten, - Auslesen (206) aus einem Speicher oder Bestimmen des dem System eindeutig zugeordneten, bei der Verschlüsselung verwendeten Schlüssels, - Entschlüsseln (208) der Seite, und - Zurverfügungstellen (210) der entschlüsselten Daten in einem für wahlfreien Zugriff eingerichteten Speicher.Method (200) for reading out according to method (100) one of the Claims 1 to 3 Data stored in a tamper-proof NAND flash memory, comprising: - reading (202) a page or a block from the NAND flash memory, - checking and correcting (204) read errors using the error correction data associated with the read page, - reading out (206) from a memory or determining the key uniquely assigned to the system and used in the encryption, decrypting (208) the page, and making the decrypted data available (210) in a memory set up for random access. Verfahren (200) nach Anspruch 4, wobei das Auslesen (206) des Schlüssels außerdem umfasst: - Entschlüsseln des ausgelesenen Schlüssels mit einem in einem TPM-Modul gespeicherten Schlüssel.Method (200) according to Claim 4 wherein the reading out (206) of the key further comprises: - decrypting the key read out with a key stored in a TPM module. Verfahren (200) nach Anspruch 4, wobei das Bestimmen (206) des Schlüssels umfasst: - Auslesen (206a) von einzigartigen Kennungen aus einer oder mehreren in einem das Verfahren ausführenden System enthaltenen Komponenten, - Kombinieren (206b) der ausgelesenen Kennungen in eine einzigartige, dem das Verfahren ausführenden System eindeutige zuordenbare Repräsentation.Method (200) according to Claim 4 wherein the determination (206) of the key comprises: - reading (206a) unique identifiers from one or more components contained in a system executing the method, - combining (206b) the read identifiers into a unique one that is unique to the system executing the method assignable representation. Schaltung (300) zum manipulationssicheren Speichern von Daten in einem NAND-Flash Speicherbaustein (302), umfassend einen Mikroprozessor (304), der über eine erste Schnittstelle (306) mit einem NAND-Controller (308) verbunden ist und diesem zu speichernde Daten überträgt, wobei der NAND-Flash Speicherbaustein (302) über eine zweite Schnittstelle (310) mit dem NAND-Controller (308) verbunden ist, wobei ein Schlüsselmodul (316) zur Bereitstellung eines Schlüssels an ein Verschlüsselungsmodul (312) vorgesehen ist, und wobei der NAND-Controller (308) dazu eingerichtet ist, zur Speicherung in dem NAND-Flash Speicherbaustein (302) bereitgestellte Daten in Seiten oder Blöcken des NAND-Flash Speichers anzuordnen, die Seiten oder Blöcke mit dem von dem Schlüsselmodul (316) bereitgestellten Schlüssel zu verschlüsseln, die verschlüsselten Seiten bzw. Blöcke einem Fehlerkorrekturmodul (314) zuzuführen und die Seiten bzw. Blöcke sowie die Fehlerkorrekturdaten über die zweite Schnittstelle (318) an den NAND-Flash Speicherbaustein (302) zur Programmierung zu übertragen.A circuit (300) for tamper-proof storage of data in a NAND flash memory module (302), comprising a microprocessor (304) which is connected to a NAND controller (308) via a first interface (306) and which transmits data to be stored , wherein the NAND flash memory chip (302) is connected to the NAND controller (308) via a second interface (310), wherein a key module (316) is provided for providing a key to an encryption module (312), and wherein the NAND controller (308) is set up to store data provided in the NAND flash memory chip (302) in pages or blocks of the NAND flash memory and to encrypt the pages or blocks with the key provided by the key module (316) to supply the encrypted pages or blocks to an error correction module (314) and to transmit the pages or blocks and the error correction data via the second interface (318) to transfer the NAND flash memory chip (302) for programming. Schaltung (300) nach Anspruch 7, wobei das Schlüsselmodul (316) zur Bereitstellung des Schlüssels dazu eingerichtet ist, aus einzigartigen Kennungen einer oder mehrerer in einem das Verfahren ausführenden System enthaltenen Komponenten einen einzigartigen, dem das Verfahren ausführenden System eindeutig zugeordneten Schlüssel zu bestimmen.Circuit (300) according to Claim 7 wherein the key module (316) for providing the key is set up to determine from unique identifiers of one or more components contained in a system executing the method a unique key which is uniquely assigned to the system executing the method. Schaltung (300) nach Anspruch 7, wobei das Schlüsselmodul (316) zur Bereitstellung des Schlüssels ein TPM-Modul umfasst, welches den Schlüssel abrufbar speichert oder den Schlüssel zur Speicherung außerhalb des TPM-Moduls verschlüsselt und einen außerhalb des TPM-Moduls gespeicherten Schlüssel zur Entschlüsselung einer aus dem NAND-Flash Speicherbaustein (302) ausgelesenen Seite entschlüsselt und bereitstellt.Circuit (300) according to Claim 7 , wherein the key module (316) for providing the key comprises a TPM module which stores the key in a retrievable manner or encrypts the key for storage outside the TPM module and a key stored outside the TPM module for decrypting one from the NAND flash Memory module (302) decrypts the read page and makes it available. Fahrzeug mit einem Steuergerät, das eine Schaltung (300) nach einem der Ansprüche 7-9 aufweist.Vehicle with a control unit that has a circuit (300) according to one of the Claims 7 - 9 having.
DE102019215991.5A 2019-10-17 2019-10-17 METHOD AND DEVICE FOR TAMPLIFICATION-PROOF STORAGE OF DATA IN NAND-FLASH MEMORY Ceased DE102019215991A1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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