WO2021073944A1 - Method and device for storing data in a nand flash storage device in a secure manner against manipulation - Google Patents

Method and device for storing data in a nand flash storage device in a secure manner against manipulation Download PDF

Info

Publication number
WO2021073944A1
WO2021073944A1 PCT/EP2020/077947 EP2020077947W WO2021073944A1 WO 2021073944 A1 WO2021073944 A1 WO 2021073944A1 EP 2020077947 W EP2020077947 W EP 2020077947W WO 2021073944 A1 WO2021073944 A1 WO 2021073944A1
Authority
WO
WIPO (PCT)
Prior art keywords
key
nand flash
data
module
flash memory
Prior art date
Application number
PCT/EP2020/077947
Other languages
German (de)
French (fr)
Inventor
Klaus SCHIKORRA
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
Publication of WO2021073944A1 publication Critical patent/WO2021073944A1/en

Links

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

Definitions

  • the invention relates to the storage of data in NAND flash memories, in particular the tamper-proof, encrypted storage of data.
  • control devices are used in which data is stored in a non-volatile memory, e.g.
  • 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 write and read 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.
  • NAND flash memories are available with larger storage capacities than NOR flash memories. It is therefore not uncommon to find additional software for the To store operation as well as operating parameters and data in a NAND flash memory.
  • 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.
  • ONFI Open NAND Flash Interface
  • 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.
  • Both the computer program instructions and the parameters of a control device can be protected as intellectual property.
  • the control devices can only be approved for operation with a certain combination of software and parameters, so that manipulation must be ruled out. 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • page-based mapping 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.
  • 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.
  • the logic used for the translation between logical accesses from the Flost side to physical addresses of the NAND flash memory is also referred to as the Flash Translation Layer (FTL).
  • FTL Flash Translation Layer
  • 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.
  • 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), what with different parameters stored in the NAND controller can take place.
  • BCH code Bose-Chaudhuri-Hocquenghem codes
  • 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.
  • 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.
  • 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.
  • the unique identifier of a component can be, for example, a clear and unique identification number that can be read out via an interface.
  • 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 scatter value function (flash), 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 to be arranged for generating the representation or for the summary is expediently specified.
  • 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.
  • 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.
  • the encrypted content can no longer be read.
  • 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.
  • TPM module In an 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.
  • keys stored outside the TPM module for example in an unencrypted area of the NAND flash memory or a memory area of the NAND flash controller provided for this purpose be encrypted by a key stored in the TPM module.
  • the key Before use, the key must first be obtained from the TPM module can be decrypted, whereby the key required for this can also be read out by the TPM module, so that decryption can also take place on other systems.
  • 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.
  • 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.
  • the key is encrypted with a key stored in a TPM module.
  • the method can include decrypting the key.
  • FIG. 1 shows an exemplary flowchart of the method according to the invention for tamper-proof storage of data in a NAND flash memory
  • FIG. 3 shows an exemplary block diagram of a circuit for executing the method according to the invention and the data flow when data is stored in a tamper-proof manner in a NAND flash memory
  • FIG. 4 shows an exemplary block diagram of the circuit for executing the method according to the invention and the data flow when reading according to the Method for tamper-proof storage of data in a NAND flash memory.
  • FIG. 1 shows an exemplary flow diagram of the method 100 according to the invention for tamper-proof storage of data in a NAND flash memory.
  • step 102 data to be stored are first received in a NAND flash controller, for example from a microprocessor.
  • the NAND flash controller in step 104, arranges the data in pages of blocks of the NAND flash memory.
  • the NAND flash controller then encrypts each of the pages to be programmed into the NAND flash memory in step 108.
  • the NAND flash controller obtains a unique key which 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 to supply it to the NAND controller, step 106b.
  • error correction data are calculated by the NAND flash controller in step 110 and are programmed into the NAND flash memory together with the encrypted page in step 112.
  • FIG. 2 shows an exemplary flow diagram of the method 200 according to the invention for reading data stored according to the method 100 for tamper-proof storage of data in a NAND flash memory.
  • step 202 a page is first read from the NAND flash memory, and in step 204 any error correction that may be required is carried out using the associated error correction data.
  • the now error-free data on the page are decrypted in step 208.
  • the NAND flash controller in step 206, the key used for the encryption, for example 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 be set up to determine (206a, 206b) a key from unique identifiers of components belonging to the system executing the method and to forward the key to the NAND controller.
  • the decrypted page or its data are provided in step 210 in a memory set up for random access, from where another system component can read the data, for example a microprocessor.
  • FIG. 3 shows an exemplary block diagram of a circuit 300 for executing the method 100 according to the invention as well as the data flow in the case of tamper-proof storage of data.
  • a microprocessor 304 sends data to be stored via a first interface 306 to a NAND controller 308.
  • NAND controller 308 comprises an FTL module 310 which translates logical addresses into physical addresses and converts the data to be stored into pages or blocks arranges.
  • the pages or blocks are forwarded to an encryption module 312, which encrypts the pages or blocks with a unique key uniquely assigned to the system executing the method, and forwards them to an error correction module 314.
  • 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.
  • the encrypted pages or blocks are transmitted together with the error correction data from the NAND flash controller via a second interface 318 to a NAND flash memory module 302 for programming.
  • FIG. 4 shows an exemplary block diagram of the circuit 300 for executing 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 the block diagram described with reference to FIG.
  • encryption module 312 is used for decryption when reading of the data.
  • the key for the encryption module 312 is provided in the same way as for encryption.
  • 206a read out identifiers 206b combine identifiers 208 decrypt 210 make available

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

The invention relates to a method (100) for storing data in a NAND flash storage device in a secure manner against manipulation, having the steps of 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 storage device. Each of the pages to be programmed in the NAND flash storage device or each block is individually encrypted (108), wherein the encryption is carried out using a unique key which is uniquely assigned to the system carrying out the method. Error correction data, which is programmed together with the encrypted pages or blocks in the NAND flash storage device, is calculated (110) for the encrypted pages or blocks.

Description

Beschreibung description
VERFAHREN UND VORRICHTUNG ZUR MANIPULATIONSSICHEREN SPEICHERUNG VON DATEN IN NAND-FLASH SPEICHER METHOD AND DEVICE FOR TAMPLIFICATION-PROOF STORAGE OF DATA IN NAND-FLASH MEMORY
FELD FIELD
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.
HINTERGRUND BACKGROUND
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.
Computerprogramm Instruktionen und Parameter für den Betrieb des Steuergerätes. Computer program instructions and parameters for the operation of the control unit.
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 write and read 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 find additional software for the To store 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. 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. 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. 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.
ZUSAMMENFASSUNG SUMMARY
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. 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 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. 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 Flost-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 Flost 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), what with different parameters stored in the NAND controller can take place.
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 (Flash), 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. 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 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 scatter value function (flash), 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 to be arranged for generating the representation or for the summary is expediently specified. 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 System komponenten 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 an 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 memory area of the NAND flash controller provided for this purpose be encrypted by a key stored in the TPM module. Before use, the key must first be obtained from the TPM module can be decrypted, whereby 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.
KURZE BESCHREIBUNG DER ZEICHNUNG BRIEF DESCRIPTION OF THE DRAWING
Im Folgenden wird die Erfindung mit Bezug auf die Zeichnung beschrieben. In der Zeichnung zeigt The invention is described below with reference to the drawing. In the drawing shows
Fig. 1 ein exemplarisches Flussdiagramm des erfindungsgemäßen Verfahrens zum manipulationssicheren Speichern von Daten in einem NAND-Flash Speicher, Fig. 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, 1 shows an exemplary flowchart of the method according to the invention for tamper-proof storage of data in a NAND flash memory;
Fig. 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 Fig. 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. 3 shows an exemplary block diagram of a circuit for executing the method according to the invention and the data flow when data is stored in a tamper-proof manner in a NAND flash memory, and FIG. 4 shows an exemplary block diagram of the circuit for executing the method according to the invention and the data flow when reading according to the Method for tamper-proof storage of data in a NAND flash memory.
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ÜHRUNGSBEISPIELEN Figur 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. DESCRIPTION OF EXEMPLARY EMBODIMENTS FIG. 1 shows an exemplary flow diagram of the method 100 according to the invention for tamper-proof storage of data in a NAND flash memory. In step 102, data to be stored are first received in a NAND flash controller, for example from a microprocessor. The NAND flash controller, in step 104, arranges the data in pages of blocks of the NAND flash memory. The NAND flash controller then encrypts each of the pages to be programmed into the NAND flash memory in step 108. For this purpose, in step 106 the NAND flash controller obtains a unique key which 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 to supply it to the NAND controller, step 106b. For the now encrypted page, error correction data are calculated by the NAND flash controller in step 110 and are programmed into the NAND flash memory together with the encrypted page in step 112.
Figur 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 System kom ponente die Daten lesen kann, bspw. ein Mikroprozessor. FIG. 2 shows an exemplary flow diagram of the method 200 according to the invention for reading data stored according to the method 100 for tamper-proof storage of data in a NAND flash memory. In step 202, a page is first read from the NAND flash memory, and in step 204 any error correction that may be required is carried out using the associated error correction data. The now error-free data on the page are decrypted in step 208. The NAND flash controller, in step 206, the key used for the encryption, for example 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 be set up to determine (206a, 206b) a key from unique identifiers of components belonging to the system executing the method and to forward the key to the NAND controller. The decrypted page or its data are provided in step 210 in a memory set up for random access, from where another system component can read the data, for example a microprocessor.
Figur 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. Figur 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 Figur 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. FIG. 3 shows an exemplary block diagram of a circuit 300 for executing the method 100 according to the invention as well as the data flow in the case of tamper-proof storage of data. A microprocessor 304 sends data to be stored via a first interface 306 to a NAND controller 308. NAND controller 308 comprises an FTL module 310 which translates logical addresses into physical addresses and converts the data to be stored into pages or blocks arranges. The pages or blocks are forwarded to an encryption module 312, which encrypts the pages or blocks with a unique key uniquely assigned to the system executing the method, and forwards them to an error correction module 314. 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 transmitted together with the error correction data from the NAND flash controller via a second interface 318 to a NAND flash memory module 302 for programming. FIG. 4 shows an exemplary block diagram of the circuit 300 for executing 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 the block diagram described with reference to FIG. 3, only the data flows between NAND flash memory module 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 for decryption when reading of the data. The key for the encryption module 312 is provided in the same way as for encryption.
LISTE DER BEZUGSZEICHEN LIST OF REFERENCES
100 Speicherverfahren 300 Schaltung 102 Empfangen 302 NAND-Flash Speicherbaustein 104 Anordnen 304 Mikroprozessor 100 Storage method 300 Circuit 102 Receive 302 NAND flash memory module 104 Arrange 304 Microprocessor
106 Auslesen 306 erste Schnittstelle 106a Bestimmen 308 NAND-Controller 106b Zuführen 310 FTL-Modul 108 Verschlüsseln 312 Verschlüsselungsmodul 110 Berechnen 314 Fehlerkorrekturmodul 106 Read out 306 First interface 106a Determine 308 NAND controller 106b Feed 310 FTL module 108 Encrypt 312 Encryption module 110 Compute 314 Error correction module
112 Programmieren 316 Schlüsselmodul 200 Leseverfahren 318 zweite Schnittstelle 202 Lesen 112 programming 316 key module 200 reading method 318 second interface 202 reading
204 Prüfen & Korrigieren 206 Schlüssel auslesen 204 Check & Correct 206 Read out key
206a Kennungen auslesen 206b Kennungen kombinieren 208 Entschlüsseln 210 Zurverfügungstellen 206a read out identifiers 206b combine identifiers 208 decrypt 210 make available

Claims

Patentansprüche Claims
1. Verfahren (100) zum manipulationssicheren Speichern von Daten in einem NAND-Flash Speicher, umfassend: 1. A method (100) for tamper-proof storage of data in a NAND flash memory, comprising:
- Empfangen (102) von zu speichernden Daten in einem NAND-Flash Controller,- Receiving (102) data to be saved in a NAND flash controller,
- Anordnen (104) der empfangenen Daten in Seiten von Blöcken des NAND-Flash Speichers, - arranging (104) the received data in pages of blocks of the NAND flash memory,
- 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, - 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,
- Berechnen (110) von Fehlerkorrekturdaten für die verschlüsselte Seiten bzw. Blöcke, und - Calculating (110) error correction data for the encrypted pages or blocks, and
- Programmieren (112) der verschlüsselten Seiten bzw. Blöcke und der Fehlerkorrekturdaten in den NAND-Flash Speicher. - Programming (112) the encrypted pages or blocks and the error correction data in the NAND flash memory.
2. 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: 2. The 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:
- Auslesen (106) des Schlüssels aus dem TPM-Modul oder aus dem gesicherten Bereich des NAND-Controllers. - Reading (106) the key from the TPM module or from the secured area of the NAND controller.
3. 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: 3. The 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:
- Bestimmen (106a) der Repräsentation anhand der einzigartigen Kennung der mindestens einen in dem das Verfahren ausführenden System enthaltenen Komponente, und - 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
- Zuführen (106b) der Repräsentation zu der Verschlüsselung als Schlüssel. - supplying (106b) the representation to the encryption as a key.
4. 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: 4. The method (200) for reading out according to the method (100) one of claims 1 to 3 in a NAND flash memory tamper-proof stored data, comprising:
- Lesen (202) einer Seite oder eines Blocks aus dem NAND-Flash Speicher,- Reading (202) a page or a block from the NAND flash memory,
- Prüfen und Korrigieren (204) von Lesefehlern unter Verwendung der zu der gelesenen Seite gehörigen Fehlerkorrekturdaten, - Checking and correcting (204) read errors using the error correction data associated with the page read,
- Auslesen (206) aus einem Speicher oder Bestimmen des dem System eindeutig zugeordneten, bei der Verschlüsselung verwendeten Schlüssels, - Reading (206) from a memory or determining the key uniquely assigned to the system and used in the encryption,
- Entschlüsseln (208) der Seite, und - Decrypt (208) the page, and
- Zurverfügungstellen (210) der entschlüsselten Daten in einem für wahlfreien Zugriff eingerichteten Speicher. - making available (210) the decrypted data in a memory set up for random access.
5. Verfahren (200) nach Anspruch 4, wobei das Auslesen (206) des Schlüssels außerdem umfasst: 5. The method (200) of claim 4, wherein reading (206) the key further comprises:
- Entschlüsseln des ausgelesenen Schlüssels mit einem in einem TPM-Modul gespeicherten Schlüssel. - Decryption of the key read out with a key stored in a TPM module.
6. Verfahren (200) nach Anspruch 4, wobei das Bestimmen (206) des Schlüssels umfasst: The method (200) of claim 4, wherein determining (206) the key comprises:
- Auslesen (206a) von einzigartigen Kennungen aus einer oder mehreren in einem das Verfahren ausführenden System enthaltenen Komponenten, - Reading (206a) unique identifiers from one or more components contained in a system executing the method,
- Kombinieren (206b) der ausgelesenen Kennungen in eine einzigartige, dem das Verfahren ausführenden System eindeutige zuordenbare Repräsentation. - Combining (206b) the read-out identifiers into a unique representation that can be uniquely assigned to the system executing the method.
7. 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. 7. A circuit (300) for tamper-proof storage of data in a NAND flash memory module (302), comprising a microprocessor (304) which is connected via a first interface (306) to a NAND controller (308) and which is to be stored Transmits data, the NAND flash memory chip (302) being connected to the NAND controller (308) via a second interface (310), a key module (316) being 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 module (302) in pages or To arrange blocks of the NAND flash memory, to encrypt the pages or blocks with the key provided by the key module (316), to feed the encrypted pages or blocks to an error correction module (314) and to supply the pages or blocks and the error correction data via the second interface (318) to the NAND flash memory chip (302) for programming.
8. 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. 8. The circuit (300) according to claim 7, wherein the key module (316) for providing the key is set up to assign a unique key uniquely assigned to the system executing the method from unique identifiers to one or more components contained in a system executing the method determine.
9. 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. 9. The 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 one stored outside the TPM module Key for decrypting a page read from the NAND flash memory module (302) is decrypted and made available.
10. Fahrzeug mit einem Steuergerät, das eine Schaltung (300) nach einem der Ansprüche 7 - 9 aufweist. 10. Vehicle with a control unit which has a circuit (300) according to any one of claims 7-9.
PCT/EP2020/077947 2019-10-17 2020-10-06 Method and device for storing data in a nand flash storage device in a secure manner against manipulation WO2021073944A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102019215991.5 2019-10-17
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
WO2021073944A1 true WO2021073944A1 (en) 2021-04-22

Family

ID=72752919

Family Applications (1)

Application Number Title Priority Date Filing Date
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

Country Status (2)

Country Link
DE (1) DE102019215991A1 (en)
WO (1) WO2021073944A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009105139A1 (en) * 2007-11-26 2009-08-27 Koolspan, Inc. System for and method of cryptographic provisioning
CN102103559B (en) * 2009-12-18 2014-06-18 上海华虹集成电路有限责任公司 Multi-channel NANDflash controller with AES and ECC
US20180137294A1 (en) * 2014-06-20 2018-05-17 Cypress Semiconductor Corporation Encryption for xip and mmio external memories

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7876894B2 (en) * 2006-11-14 2011-01-25 Mcm Portfolio Llc 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

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009105139A1 (en) * 2007-11-26 2009-08-27 Koolspan, Inc. System for and method of cryptographic provisioning
CN102103559B (en) * 2009-12-18 2014-06-18 上海华虹集成电路有限责任公司 Multi-channel NANDflash controller with AES and ECC
US20180137294A1 (en) * 2014-06-20 2018-05-17 Cypress Semiconductor Corporation Encryption for xip and mmio external memories

Also Published As

Publication number Publication date
DE102019215991A1 (en) 2021-04-22

Similar Documents

Publication Publication Date Title
EP1883906B1 (en) Portable data carrier featuring secure data processing
DE102015113414B4 (en) Error correction using WOM codes
WO2004095238A1 (en) Method for guaranteeing the integrity and authenticity of flashware for control devices
DE19839680B4 (en) Method and device for modifying the memory contents of control units
DE102005061367A1 (en) IC chip card and method for detecting data manipulation
DE112020001061T5 (en) ENCRYPTED GEAR PROGRAMMING
EP1661069B1 (en) Processor circuit and method for allocating a logic chip to a memory chip
DE19931184A1 (en) Altering controller memory contents involves writing new data that is worthy of security into different memory area before transferring to original memory area contg. replaced data
EP1611517B1 (en) Program-controlled unit
EP3378006B1 (en) Method for loading of a secure memory image of a microcontroler and arrangement with a microcontroller
DE102018213615A1 (en) Cryptography module and operating method therefor
WO2021073944A1 (en) Method and device for storing data in a nand flash storage device in a secure manner against manipulation
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
EP2394232B1 (en) Device and method for preventing unauthorized use and/or manipulation of software
EP1032871B1 (en) Process and device for loading data for basic system routines of a data processing system
EP1611515B1 (en) Program-controlled unit
DE102005060901A1 (en) A method of detecting a supply interruption in a data store and restoring the data store
DE10324507A1 (en) Method for loading data into a storage device
EP1559111A1 (en) Method for operating a memory arrangement
DE102010006876B4 (en) Method and device for coding data
WO2008037314A1 (en) Method and apparatus for producing and supplying configuration data for or to a programmable, integrated logic circuit
DE10215626B4 (en) Procedure for changing encryption algorithms for protected software or protected data
DE102022212074A1 (en) STORAGE SYSTEM AND METHOD FOR OPERATING SAME

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20786534

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20786534

Country of ref document: EP

Kind code of ref document: A1