DE102017010430A1 - Method of preserving flash memory by sequential occupancy by disposable code modules - Google Patents
Method of preserving flash memory by sequential occupancy by disposable code modules Download PDFInfo
- Publication number
- DE102017010430A1 DE102017010430A1 DE102017010430.1A DE102017010430A DE102017010430A1 DE 102017010430 A1 DE102017010430 A1 DE 102017010430A1 DE 102017010430 A DE102017010430 A DE 102017010430A DE 102017010430 A1 DE102017010430 A1 DE 102017010430A1
- Authority
- DE
- Germany
- Prior art keywords
- memory unit
- module
- code modules
- preserving
- use code
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
Abstract
Offenbart werden hierin Aspekte, die auf die effektive Personalisierung von Smartcards gerichtet sind, wobei die Flashspeicher-Nutzung optimiert wird, einschließlich insbesondere der Regenerierung von Flashspeicherbereich, der durch redundanten Code belegt ist, insbesondere durch sequenzielles Überschreiben von Einzelverwendungscode-Modulen, die an der Personalisierung dieser Smartcards beteiligt sind. Des Weiteren sind die Offenbarungen hierin ferner auf einen kundenspezifischen Bootloader und ein Kartenpersonalisierungswerkzeug zum Ermöglichen des vorgeschlagenen Verfahrens gerichtet.Disclosed herein are aspects directed to the effective personalization of smart cards, optimizing flash memory usage, including, in particular, the regeneration of flash memory space occupied by redundant code, in particular, by sequentially overriding single-use code modules involved in personalization These smart cards are involved. Further, the disclosures herein are further directed to a custom boot loader and card personalization tool for facilitating the proposed method.
Description
Gebiet der ErfindungField of the invention
Die vorliegende Erfindung betrifft allgemein Protokolle zum Zugreifen, Adressieren und Zuweisen von nichtflüchtigen Speicherblöcken, und insbesondere Verbesserungen darin, die auf die Erhöhung der Verfügbarkeit von Freiraum und der Lebensdauer in den nichtflüchtigen Speicherblöcken gerichtet sind.The present invention relates generally to protocols for accessing, addressing, and allocating nonvolatile memory blocks, and more particularly to improvements therein that are directed to increasing the availability of free space and lifetime in the nonvolatile memory blocks.
Insbesondere ist die vorliegende Erfindung ein Verfahren, das darauf gerichtet ist, die oben erwähnten Absichten für einen in eingebetteten Systemen, insbesondere Smartcards, enthaltenen Flashspeicher zu erreichen, indem die Belegung durch Einmalcode-Module darin sequenziell erfolgt.In particular, the present invention is a method aimed at achieving the above-mentioned intentions for flash memory included in embedded systems, especially smart cards, by sequentially occupying it by single-code modules therein.
Hintergrund der ErfindungBackground of the invention
Nichtflüchtige Speichersysteme, insbesondere Flashspeichersysteme, haben aufgrund ihres niedrigen Stromverbrauchs, ihrer kleinen Größe, ihren niedrigen Kosten, geringen Wärmeerzeugung und hohen Stabilität immens an Beliebtheit gewonnen. Heutzutage werden auf Flashspeichern basierende Systeme meistens entweder in einem entfernbaren Formfaktor, einschließlich Speicherkarten oder Flashlaufwerke, die in Host-System/en wie etwa Personalcomputer, Kameras, und so weiter betreibbar aufgenommen werden können, oder alternativ in einem eingebetteten Formfaktor innerhalb von Systemen integriert, die Smartcards, SIMs enthalten, die ihre eigenen Verarbeitungsumgebungen aufweisen, aber als solche in größeren Host-Systemen, einschließlich Geldautomaten, Smartphones, Anwesenheitsendgeräte etc. aufgenommen werden, bereitgestellt.Non-volatile memory systems, especially flash memory systems, have become immensely popular due to their low power consumption, small size, low cost, low heat generation and high stability. Today, flash memory based systems are usually integrated either in a removable form factor, including memory cards or flash drives, which can be operably incorporated into host systems such as personal computers, cameras, and so forth, or alternatively in an embedded form factor within systems. include smart cards, SIMs that have their own processing environments, but as such are included in larger host systems, including ATMs, smart phones, home terminals, etc.
Wenn Daten in den nichtflüchtigen Speicher geschrieben werden, ordnet der Host unabhängig vom Einsatzformfaktor Sektoren, Clustern oder anderen Dateneinheiten innerhalb eines kontinuierlichen virtuellen Adressraums des Speichersystems typischerweise eindeutige logische Adressen zu. Eine allgemein innerhalb des Speichersystems befindliche Steuerung übersetzt von dem Host empfangene logische Adressen in physische Adressen innerhalb der Speicheranordnung, in der die Daten tatsächlich gespeichert werden, und verfolgt dann diese Adressübersetzungen für eine spätere Abfrage. Vordefinierte Zyklusdauer und einseitig gerichtete Schreibverlaufscharakteristik bei Flashspeichersystemen werden als einschränkend für wiederholte Iterationen des zuvor beschriebenen Schreibprozesses betrachtet. Deshalb braucht das Fachgebiet einen Weg, der einfach und kostengünstig ist, aber bei der Verlängerung der Lebensspanne von eingebauten Flashspeichern und deshalb der Nutzungsdauer von Systemen, welche die Flashspeicher integrieren, hilft.When data is written to nonvolatile memory, regardless of the insert factor, the host typically allocates unique logical addresses to sectors, clusters, or other data units within a continuous virtual address space of the memory system. A controller generally located within the memory system translates logical addresses received from the host into physical addresses within the memory array in which the data is actually stored, and then tracks those address translations for later retrieval. Predefined cycle time and unidirectional write history in flash memory systems are considered to be limiting for repeated iterations of the previously described write process. Therefore, the art needs a way that is simple and inexpensive, but helps to extend the lifespan of built-in flash memory and therefore the useful life of systems that integrate the flash memory.
Der Lebenszyklus von Systemen, die diese Flashspeicher integrieren, wird durch die programmierte(n) Anwendung(en) und deren Betriebsfrequenz, welche seitens des für das System verantwortlichen Benutzers verursacht wird, definiert. Im unmittelbaren Geltungsbereich der vorliegenden Erfindung wird der Lebenszyklus von Smartcards als viele Zustände umfassend betrachtet, einschließlich: a) Registrierung bei einem Smartcard-Verwaltungssystem, b) Personalisierung zur Ausgabe an eine Person, c) Inbetriebsetzen zur Verwendung, d) Ausführung des auf der Smartcard programmierten Betriebs, e) Hinzufügen von nachfolgenden Anwendungen, die auf der Smartcard ausgeführt werden sollen, f) Blockieren oder Löschen der Smartcard aus dem Verwaltungssystem und g) Wiederherstellung zur Verwendung, um nur einige zu nennen.The lifecycle of systems integrating these flash memories is defined by the programmed application (s) and their operating frequency, which is caused by the user responsible for the system. Within the immediate scope of the present invention, the life cycle of smart cards is considered to include many conditions including: a) registration with a smart card management system, b) personalization for delivery to a person, c) commissioning for use, d) execution of the smart card programmed operation, e) adding subsequent applications to be executed on the smart card, f) blocking or deleting the smart card from the management system, and g) recovery for use, to name but a few.
Die meisten Übergänge zwischen den oben erwähnten Zuständen im Lebenszyklus von Smartcards enthalten unveränderlich eine oder mehrere Schreiboperationen im eingebauten nichtflüchtigen Speicher, welche die Schreib-Zählung und damit die Annäherung an die Gebrauchsdauer der Speichereinheit voranschreiten lassen. Begrenzungen von Speicherraumbeschränkungen und verfügbarer Flashspeicherdichte sind Haupthindernisse bei der Erweiterung der Kapazität der Flashspeichersysteme. Es wäre deshalb wünschenswert, die Residenz von Daten auf Flashspeicherblöcken zu minimieren, um deshalb einen großen Teil davon zum Empfangen von weiteren Daten über nachfolgende Auslösch-/Schreiboperationen freizugeben und in der Folge auch die ungleichmäßige Abnutzung der Speicherblöcke durch Reduzieren der Abhängigkeit von spezifischen Speicheradressen für wiederholte Auslösch-Schreib-Zyklen zu reduzieren.Most transitions between the above-mentioned states in the life cycle of smart cards invariably contain one or more write operations in the built-in nonvolatile memory which allow the write count to proceed and thus approach the useful life of the memory device. Limitations of memory space limitations and available flash memory density are major obstacles to expanding the capacity of flash memory systems. It would therefore be desirable to minimize the residence of data on flash memory blocks, therefore, to release much of it for receiving further data on subsequent flush / write operations, and consequently also the uneven wear of the memory blocks by reducing the dependency on specific memory addresses to reduce repeated erase-write cycles.
Unter den oben erwähnten Lebenszykluszuständen bezieht sich die Personalisierung auf das elektronische On-Chip-Laden von Anwendungscodes, Benutzerdaten und kryptographischen Schlüsseln und ist ein anfänglicher Herstellungsprozess, wodurch allgemeine serienmäßig hergestellte Smartcards in individuell eingerichtete Karten umgewandelt werden, die in einer oder mehreren programmierten Anwendungen verwendet werden können.Among the above-mentioned lifecycle conditions, personalization refers to on-chip electronic loading of application codes, user data, and cryptographic keys, and is an initial manufacturing process whereby general mass-produced smart cards are transformed into custom cards used in one or more programmed applications can be.
Heutzutage verwendete Personalisierungsprotokolle erfordern das Laden von vielen funktionellen Modulen oder Applets in vorbezeichnete Bereiche innerhalb des Flashspeichers der allgemeinen serienmäßig hergestellten Karten. Es gibt gewisse Module, die einen einzigen Verwendungsfall haben und nach dem Zeitpunkt der Personalisierung der Zielkarte überflüssig werden. Das Laden von solchen Daten an bestimmten dafür vorgesehenen Adressen blockiert den Flashspeicher im gleichem Maß und erhöht deshalb die Belegung der Flashspeichereinheit. Es wäre deshalb wünschenswert, dass eine solche Datenresidenz optimiert wird, damit eine großer Teil von Flashspeicherbereichen frei bleiben kann, zusätzlich dazu, dass diejenigen die verwendet wurden, wiederhergestellt werden, um dadurch die Verfügbarkeit von eingebauten Flashspeichern und zusätzlich die Nutzungsdauer von Systemen, die solche Flashspeicher integrieren, zu verbessern.Personalization protocols used today require the loading of many functional modules or applets into predesignated areas within flash memory of the general mass-produced cards. There are certain modules that have a single use case and after the time of personalization of the Destination card become redundant. The loading of such data at certain designated addresses blocks the flash memory to the same extent and therefore increases the occupancy of the flash memory unit. It would therefore be desirable to optimize such a data resident so that a large portion of flash memory areas can be left free, in addition to restoring those used, thereby increasing the availability of built-in flash memory and, in addition, the useful life of systems such as these Integrate flash memory, improve.
Im Stand der Technik werden einige wenige Versuche zur Lösung der oben erwähnten Betrachtungen erwähnt. Zum Beispiel offenbart
Ein anderes Beispiel, die
Der Stand der Technik zeigt in dem oben dargestellten Ausmaß keine einzige wirksame Lösung auf, die alle zuvor erwähnten Betrachtungen angeht, wodurch eine akute Erfindungsnotwendigkeit für die vorliegenden Erfinder gewahrt wurde, die als Ergebnis ihrer gezielten Forschung mit neuartigen Lösungen zum endgültigen Erfüllen der Anforderungen des Fachgebiets aufwarten. Die nachfolgenden Offenbarungen ermöglichen ein besseres Verstehen der Gegenstände, Vorteile, Merkmale, Eigenschaften und Beziehungen der vorliegenden Erfindung.The prior art, to the extent presented above, does not show a single effective solution to all of the aforementioned considerations, thus preserving an acute invention need for the present inventors as a result of their targeted research with novel solutions to finally meet the needs of the art come up. The following disclosures provide a better understanding of the objects, advantages, features, characteristics, and relationships of the present invention.
Aufgaben der vorliegenden ErfindungObjects of the present invention
Die vorliegende Erfindung wird dadurch identifiziert, dass sie mindestens alle größeren Mängel, die im vorstehenden Abschnitt besprochen wurden, angeht, durch effektives Angehen der unten angegeben Aufgaben. DarinThe present invention is identified by addressing at least all of the major deficiencies discussed in the preceding paragraph by effectively addressing the objects set forth below. therein
ist es eine primäre Aufgabe, ein Verfahren zum Optimieren der Nutzbarkeit eines Flashspeichers, oder zur anderweitigen Vermeidung von dessen Verschwendung, in eingebetteten Systemen, insbesondere Smartcards bereitzustellen.It is a primary object to provide a method for optimizing the usability of a flash memory, or otherwise avoiding its waste, in embedded systems, especially smart cards.
ist es eine weitere Aufgabe, neben der/den oben erwähnten Aufgabe(n), dass das so bereitgestellte Verfahren insbesondere das Problem von redundanten Daten angeht, die sich in eingebetteten Systemen innerhalb des Flashspeichers befinden.It is a further object, in addition to the above-mentioned object (s), that the method thus provided specifically addresses the problem of redundant data residing in embedded systems within the flash memory.
ist es eine weitere Aufgabe, neben der/den oben erwähnten Aufgabe(n), dass das so bereitgestellte Verfahren implementiert werden kann ohne dass Modifikationen, oder wenn überhaupt nur minimale Modifikationen, an vorhandenen eingebetteten Systemen, insbesondere Smartcards, erforderlich sind.It is a further object, in addition to the above-mentioned object (s), that the method thus provided may be implemented without requiring modifications, or even minimal modifications, to existing embedded systems, particularly smart cards.
ist es eine weitere Aufgabe, neben der/den oben erwähnten Aufgabe(n), dass das so bereitgestellte Verfahren kostengünstig zu implementieren ist und keine speziellen Fachkenntnisse oder Kenntnisse von Seiten des Benutzers erfordert, der für das eingebettete System, insbesondere für eine mit dem Verfahren ausgestattete Smartcard verantwortlich ist.It is a further object, in addition to the above-mentioned object (s), that the method thus provided is inexpensive to implement and does not require any special expertise or knowledge on the part of the user for the embedded system, in particular for one with the method equipped smart card is responsible.
ist es eine weitere Aufgabe, neben der/den oben erwähnten Aufgabe(n), dass das so bereitgestellte Verfahren dazu verwendet werden kann, ein Initialisierungswerkzeug für die effektive Personalisierung von eingebetteten Systemen, insbesondere Smartcards einzuführen, wahrend die Flashspeicher-Nutzung optimiert wird.It is a further object, in addition to the above-mentioned object (s), that the method thus provided can be used to introduce an initialization tool for the effective personalization of embedded systems, particularly smart cards, while optimizing flash memory usage.
Diese und andere Aufgaben und ihre Erreichung werden für den Leser mit den folgenden ausführlichen Offenbarungen und den angefügten unabhängigen Ansprüchen 1 und 11 ersichtlich. Andere Komponenten, Merkmale und die Art und Weise ihrer Implementierung sind in den abhängigen Ansprüchen umrissen.These and other objects, and their attainment, will become apparent to those skilled in the art having the following detailed disclosures and appended independent claims 1 and 11, respectively. Other components, features, and the manner of their implementation are outlined in the dependent claims.
Kurzfassung der vorliegenden Erfindung Summary of the present invention
Gemäß der vorliegenden Erfindung wie derzeit vorgesehen wird hiermit ein Verfahren zum Bewahren von Flashspeicher durch sequenzielle Belegung durch Einzelverwendungscode-Module bereitgestellt. Beim Implementieren des Verfahrens während des Herstellungsprozesses für Smartcards werden Einzelverwendungscode-Module, die als sich gegenseitig ausschließend identifiziert sind, gemäß der Logik für ihre Ausführung zur Personalisierung sequenziell geladen, wodurch eine Flashspeicherplatzverschwendung, die sich ansonsten aus dem Laden von jedem der Einzelverwendungscode-Module in separaten Bereichen innerhalb des Flashspeichers ergibt, vermieden wird. Dieses Verfahren führt einen individuell eingerichteten Bootloader und ein darauf basierendes Kartenpersonalisierungswerkzeug zur effektiven Personalisierung von Smartcards, während die Flashspeicher-Nutzung optimiert wird, ein.According to the present invention as presently provided, there is provided a method for retaining flash memory by sequential occupancy by single use code modules. In implementing the method during the smart card manufacturing process, single use code modules that are identified as being mutually exclusive are sequentially loaded according to the logic for their execution for personalization, thereby resulting in a flash memory waste that would otherwise result from loading each of the single use code modules separate areas within the flash memory is avoided. This method introduces an individualized bootloader and card personalization tool based thereon for the effective personalization of smart cards while optimizing flash memory usage.
Figurenlistelist of figures
Die obengenannten und weitere Aspekte, Merkmale und Vorteile von mehreren Ausführungsformen der vorliegenden Erfindung werden aus dem nachfolgend bereitgestellten Abschnitt der detaillierten Beschreibung besser ersichtlich, der in Verbindung mit den folgenden Zeichnungen dargestellt wird. Darin zeigen:
-
1 ein Blockdiagramm zur schematischen Veranschaulichung der Methodik zum Regenerieren von Flashspeicher, der durch Einmal-Codes belegt ist, im Wesentlichen gemäß der hierin dargelegten Offenbarungen.
-
1 a block diagram to schematically illustrate the methodology for regenerating flash memory, which is occupied by one-time codes, substantially in accordance with the disclosures set forth herein.
In der/den obengenannten Zeichnung/en wurden, wo immer möglich, durchgehend dieselben Ziffern zur Bezeichnung derselben oder ähnlichen Komponenten oder Indexe wie folgt verwendet:
- 001 -
- Proprietärer Bootloader
- 002 -
- Schritt zum Herunterladen des Betriebssystems (OS, engl. Operating System)
- 003 -
- Modul für die Funktionalität CreDe
- 004 -
- Betriebssystem
- 005 -
- Freiraum innerhalb des Flashspeichers der Smartcard
- 006 -
- Schritt zum Herunterladen üblicher Personalisierungsdateien unter Verwendung von CreDe
- 007 -
- Dateisystem, das dedizierte Dateien und/oder Elementardateien umfasst
- 008 -
- Schritt zum Ermöglichen des Herunterladens eines Mastereinrichtungspatch
- 009 -
- Befehl zum Herunterladen eines Mastereinrichtungspatch
- 010 -
- Modul für Mastereinrichtungspatchfunktionalität
- 011 -
- Schritt zur Herstellung von mehreren Karten
- 001 -
- Proprietary bootloader
- 002 -
- Step to download the operating system (OS).
- 003 -
- Module for the functionality CreDe
- 004 -
- operating system
- 005 -
- Free space within the flash memory of the smart card
- 006 -
- Step to download common personalization files using CreDe
- 007 -
- File system that includes dedicated files and / or elementary files
- 008 -
- Step to allow the download of a master device patch
- 009 -
- Command to download a master setup patch
- 010 -
- Module for master device patch functionality
- 011 -
- Step to make several cards
Eine Bezugnahme auf bestimmte Beispiele und Implementierungen geschieht nur zu veranschaulichenden Zwecken und soll den Schutzbereich der Erfindung oder der Ansprüche nicht beschränken. Obgleich eine Nummerierung in der detaillierten Beschreibung und in den Ansprüchen eingeführt wurde, um einen Bezug auf spezifische Komponenten bezüglich solcher Referenzen, die in anderen Abschnitten dieser Spezifikation gemacht werden, abzugrenzen, werden nicht alle Komponenten in jeder Zeichnung gezeigt oder mit einer Nummer versehen, um eine Verschleierung der vorgeschlagenen Erfindung zu vermeiden.Reference to particular examples and implementations is for illustrative purposes only and is not intended to limit the scope of the invention or the claims. Although numbering has been introduced in the detailed description and claims to delineate reference to specific components with respect to such references made in other sections of this specification, not all components in each drawing are shown or numbered to be specific to avoid obscuring the proposed invention.
Die Aufmerksamkeit des Lesers soll nun auf die folgende detaillierte Beschreibung gelenkt werden, die eine bevorzugte Ausführungsform der vorliegenden Erfindung und andere Art und Weisen, in denen die Prinzipien der Erfindung genutzt werden können, beschreibt, ohne vom Wesen der hierin beanspruchten Erfindung abzuweichen.The reader's attention will now be directed to the following detailed description, which describes a preferred embodiment of the present invention and other ways in which the principles of the invention may be utilized without departing from the spirit of the invention claimed herein.
Detaillierte BeschreibungDetailed description
Im Prinzip ist der allgemeine Zweck der vorliegenden Erfindung, Unfähigkeiten und Mängel, die bekannten Systemen innewohnen, die den Stand der Technik umfassen, zu bewerten und neue Systeme zu entwickeln, die alle verfügbaren Vorteile der bekannten Technik und keine ihrer Nachteile einbinden.In principle, the general purpose of the present invention is to evaluate inabilities and shortcomings inherent in known systems, including the prior art, and to develop new systems incorporating all available advantages of the known technique, and none of its disadvantages.
Vor der nachfolgenden detaillierten Beschreibung der Erfindung kann es vorteilhaft sein, Definitionen von überall in dieser Patentschrift verwendeten gewissen Wörtern oder Ausdrücken darzulegen: Die Begriffe „enthalten“ und „umfassen“ sowie deren Ableitungen bedeuten einschließen, ohne darauf beschränkt zu sein; der Begriff „oder“ ist einschließend und bedeutet und/oder; die Ausdrücke „zugeordnet“ und „irgendetwas zugeordnet“, sowie deren Ableitungen können enthalten, innerhalb von etwas enthalten, miteinander verbunden, mit, beinhalten, in etwas beinhaltet sein, zu oder mit etwas verbinden, zu oder mit etwas koppeln, kommunizieren können mit, kooperieren mit, verzahnen, nebeneinander stellen, in der Nähe sein von, gebunden sein an oder mit, aufweisen, eine Eigenschaft aufweisen oder dergleichen bedeuten; und der Begriff „OS“ bezieht sich auf Betriebssystem oder allgemein auf irgendein auf die Smartcard herunterzulandendes Softwareprogramm; „ASIC“ bezieht sich auf eine anwendungsspezifische Schaltung; „FPGA“ bezieht sich auf eine feldprogrammierbare Gatteranordnung; „CrDe“ bezieht sich auf Create- und Delete(zu Deutsch: Erstelle und Lösche)-Funktionalitäten; „MD“ bezieht sich auf eine Mastereinrichtung; „CRC“ bezieht sich auf eine zyklische Redundanzprüfung; „APDU“ bezieht sich auf eine Anwendungsprotokolldateneinheit.Before the following detailed description of the invention, it may be advantageous to set forth definitions of certain words or phrases used throughout this specification: including, but not limited to, the terms "including,""including," and their derivatives. the term "or" is inclusive and means and / or; the expressions "mapped" and "associated with anything", as well as their derivatives may be contained within, linked to, contained in, contained in, linked to or connected to, linked to or linked to, able to communicate with, cooperate with, dovetail, side by side, close to, bound to, having, having a property or the like; and the term "OS" refers to operating system or generally any software program to be downloaded to the smart card; "ASIC" refers to an application specific circuit; "FPGA" refers to a field programmable gate array; "CrDe" refers to Create and Delete functionalities; "MD" refers to a master device; "CRC" refers to a cyclic redundancy check; "APDU" refers to an application log data unit.
Entsprechend wird ein Ansatz zum Reduzieren der Gesamtbelegung von Speicherblöcken innerhalb der Flashspeichereinheit, um diese frei und verfügbar für eine weitere Verwendung während des Lebenszyklus der betreffenden Smartcard zu machen, vorgeschlagen, dessen Ermöglichung anhand gewisser nicht einschränkender Ausführungsformen besprochen wird, von denen einige unten anhand gewisser Beispiele erklärt werden, die allgemein die Art und Weise veranschaulichen, wie Prinzipien der vorliegenden Erfindung genutzt werden können.Accordingly, one approach to reducing the overall occupancy of memory blocks within the flash memory device to make it free and available for further use during the life cycle of the particular smart card is proposed, the eligibility of which will be discussed in terms of certain non-limiting embodiments, some of which are set forth below Examples that generally illustrate the manner in which principles of the present invention may be used are explained.
Wie im vorstehenden Teil dieses Dokuments erwähnt, erfordern heutzutage verwendete Protokolle für die Personalisierung von Smartcards das Laden von vielen funktionellen Einzelverwendungscode-Modulen oder Applets auf vorbezeichnete bestimmte Bereiche innerhalb des Flashspeichers der allgemeinen serienmäßig hergestellten Karten. Die vorliegenden Erfinder betrachten dieses Merkmal als eine angehbare Nische, da diese Einzelverwendungscode-Module nur einmal erforderlich sind und nach der Personalisierung redundant sind. Deshalb stellt ihr belegter Flashspeicher eine regenerierbare Ressource und die Art und Weise, wie derselbe für den Herstellungsprozessablauf regeneriert wird, bildet das Wesen der hierin beanspruchten Erfindung.As mentioned in the previous part of this document, smart card personalization protocols used today require the loading of many functional single use code modules or applets onto predesignated particular areas within the flash memory of the general mass-produced cards. The present inventors consider this feature to be a susceptible niche because these single use code modules are required only once and are redundant after personalization. Therefore, their occupied flash memory is a regenerable resource and the way it is regenerated for the manufacturing process flow forms the essence of the invention claimed herein.
Zu Beginn schlagen die vorliegenden Erfinder einen Ansatz vor, um Einzelverwendungscode-Module, insbesondere CrDe -und MD-Funktionalitäten, die sich bekanntermaßen gegenseitig ausschließen, gemäß der logischen Sequenz ihrer programmierten Ausführung während des Personalisierungsprozesses sequenziell zu überschreiben. Insofern wird CrDe verwendet, um die Dateien auf dem Dateisystem zu erstellen und zu löschen, und die MD-Funktionalität wird zum Lesen der Flashinhalte oder des Abbilds des Flash als Herstellungsdateiformat, zum Beispiel eine .mot-Datei, verwendet. Sowohl CrDe als auch MD sind nur zum Zeitpunkt der Herstellung und nicht später während des Nutzungsdauer der Smartcard erforderlich.Initially, the present inventors propose an approach to sequentially overwrite single use code modules, in particular CrDe and MD functionalities that are known to be mutually exclusive, according to the logical sequence of their programmed execution during the personalization process. As such, CrDe is used to create and delete the files on the file system, and the MD functionality is used to read the flash contents or the image of the flash as a production file format, such as a .mot file. Both CrDe and MD are required only at the time of manufacture and not later during the life of the smart card.
Basierend auf dem im vorhergehenden Absatz erwähnten Ansatz und wie insbesondere in
Unter fortlaufendem Bezug auf die begleitende
Ferner ist mit fortlaufendem Bezug auf die begleitende
Gemäß einem ersten Aspekt der vorliegenden Erfindung ist der proprietäre Bootloader (
- a) Auslöschen einzelner oder mehrerer Sektoren des Flashspeichers auf der Smartcard. Das Befehlsformat dieses Befehls weist N zusätzliche Datenbytes auf, unter denen höchstwertige X-Bytes die Adresse angeben, aus der der Flash ausgelöscht werden sollte; wohingegen die zwei wertniedrigsten Bytes die Anzahl von Seiten angeben, die ausgelöscht werden muss; die Werte von N und X können je nach Verwendungsfall bestimmt werden.
- b) Initialisieren/Schreiben spezifischer Inhalte auf den Flashspeicher. Das APDU-Format dieses Befehls weist N zusätzliche Datenbytes auf, unter denen höchstwertige X-Bytes die Adresse angeben, ab der der Flash beschrieben werden muss, während der Rest der wertniedrigeren Bytes die auf den Flash zu schreibenden eigentlichen Datenbytes darstellen;
- c) Verifizieren des Inhalts des beschriebenen Flash durch Validieren eines zuvor gelieferten CRC gegenüber eines intern durch die Karte berechneten. Das APDU-Befehlsformat für diesen Befehl weist N zusätzliche Datenbytes auf, unter denen die höchstwertigen X-Bytes der Daten die Adresse angeben, von denen aus die CRC-Berechnung erfolgen sollte. Die nächsten vier hochwertigen Bytes stellen dann die Anzahl von Bytes dar, auf denen die CRC-Berechnung erfolgen sollte. Die restlichen (N-X) Bytes der Daten stellen den erwarteten Wert der CRC dar, der durch das externe Werkzeug berechnet wird. Derselbe Wert wird mit dem berechneten Wert der CRC verglichen. Auf Basis dieses Vergleichs wird die positive oder negative Antwort des Verifikationsbefehls gegeben; und
- d) Übergabe der Ausführungssteuerung vom Bootloader an das OS. Aufgrund dieses Befehls wird die erste Seite des Flash aktualisiert.
- a) Deleting one or more sectors of flash memory on the smart card. The instruction format of this instruction has N additional data bytes, among which most significant X bytes indicate the address from which the flash should be erased; whereas the two least significant bytes indicate the number of pages that must be extinguished; the values of N and X can be determined according to the case of use.
- b) initializing / writing specific content to flash memory. The APDU format of this instruction has N extra data bytes, where most significant X bytes indicate the address from which the flash must be written, while the remainder of the lower order bytes represent the actual data bytes to be written to the flash;
- c) verifying the content of the described flash by validating a previously supplied CRC against an internally calculated by the card. The APDU instruction format for this instruction has N additional data bytes, among which the most significant X bytes of the data indicate the address from which the CRC calculation should be made. The next four high-order bytes then represent the number of bytes on which the CRC calculation should occur. The remaining (NX) bytes of the data represent the expected value of the CRC calculated by the external tool. The same value is compared with the calculated value of the CRC. Based on this comparison, the positive or negative answer of the verification order is given; and
- d) Transfer of the execution control from the boot loader to the OS. This command updates the first page of the Flash.
Gemäß einem zweiten Aspekt der vorliegenden Erfindung ist das OS (
- a) Erstellen von für die Personalisierung der Smartcards notwendigen Dateien;
- b) Löschung von für die Personalisierung der Smartcards notwendigen Dateien;
- c) Auslöschen einzelner oder mehrerer Sektoren des Flashspeichers auf der Smartcard. Das APDU-Format dieses Befehls weist N zusätzliche Datenbytes auf, unter denen höchstwertige X-Bytes die Adresse angeben, aus der der Flash gelöscht werden sollte; wohingegen die wertniedrigsten verbliebenen (N-X)-Bytes die Anzahl von Seiten angeben, die ausgelöscht werden müssen;
- d) Initialisieren/Schreiben spezifischer Inhalte auf den Flashspeicher. Das APDU-Format dieses Befehls weist N zusätzliche Datenbytes auf, unter denen höchstwertige X-Bytes die Adresse angeben, ab der der Flash beschrieben werden muss, während der Rest der wertniedrigeren Bytes die auf den Flash zu schreibenden eigentlichen Datenbytes darstellen;
- e) Verifizieren des Inhalts des beschriebenen Flash durch Validieren eines gelieferten CRC gegenüber einem intern durch die Karte berechneten. Das APDU-Befehlsformat für diesen Befehl weist N zusätzliche Datenbytes auf, unter denen die höchstwertigen X-Bytes der Daten die Adresse angeben, von denen aus die CRC-Berechnung erfolgen sollte. Die restlichen Bytes der Daten stellen den erwarteten Wert der CRC dar, der durch das externe Werkzeug berechnet wird. Derselbe Wert wird mit dem berechneten Wert der CRC verglichen. Basierend auf diesem Vergleich wird die positive oder negative Antwort des Verifikationsbefehls gegeben;
- f) Schutz der Herunterladefunktionalität des OS. Eine erfolgreiche Authentifizierung unter Verwendung dieses Befehls ist auf die Ermöglichung der Befehle bei Punkt c) bis e) in diesem Absatz gerichtet; und
- g) Auslesen der Flashinhalte von der Karte. Dies ist ein optionaler Befehl, der der MD-Funktionalität als steckbares Modul dient.
- a) creating files necessary for the personalization of the smart cards;
- b) deletion of files necessary for the personalization of the smart cards;
- c) erase one or more sectors of the flash memory on the smart card. The APDU format of this instruction has N extra data bytes, among which most significant X bytes indicate the address from which the flash should be deleted; whereas the least significant (NX) bytes indicate the number of pages that must be erased;
- d) initializing / writing specific content to flash memory. The APDU format of this instruction has N extra data bytes, where most significant X bytes indicate the address from which the flash must be written, while the remainder of the lower order bytes represent the actual data bytes to be written to the flash;
- e) verifying the content of the described flash by validating a supplied CRC against an internally calculated by the card. The APDU instruction format for this instruction has N additional data bytes, among which the most significant X bytes of the data indicate the address from which the CRC calculation should be made. The remaining bytes of the data represent the expected value of the CRC calculated by the external tool. The same value is compared with the calculated value of the CRC. Based on this comparison, the positive or negative answer of the verification order is given;
- f) Protection of the download functionality of the OS. Successful authentication using this command is directed to enabling the commands at points c) through e) in this paragraph; and
- g) reading the flash contents from the card. This is an optional command that serves the MD functionality as a pluggable module.
Gemäß einem weiteren Aspekt der vorliegenden Erfindung sind der proprietäre Bootloader (
Gemäß einem weiteren Aspekt der vorliegenden Erfindung geht dem Schritt (
Durch Schritt (
Gemäß einem weiteren Aspekt der vorliegenden Erfindung wird der Schritt (
Gemäß einem weiteren Aspekt der vorliegenden Erfindung wird der Schritt (
Aus dem Vorstehenden sollte es sich verstehen, dass es effektiv zwei zu regenerierende Flashbereiche gibt, die durch Belegungen des CrDe-Moduls (
Wie leicht zu verstehen ist, wird das hierin vorgeschlagene Verfahren durch ein Konsortium von Werkzeugen / computerimplementierten Routinen ermöglicht, die dazu programmiert sind, die Schritte (
Obgleich
Die vorliegende Erfindung wurde in einem beispielhaften Aufbau unter Verwendung eines Hardwaremoduls praktisch verwirklicht, und darin wurde identifiziert, dass sie die folgenden Vorteile gegenüber dem Stand der Technik aufweist:
- a) Regenerierung von Flashspeicher, der entweder von CrDe- oder MD-Einmalcode-Modulen oder von beiden oder von keinem davon belegt ist;
- b) Kontrolle über unbeabsichtigte Löschung des Bootloaders; und
- c) Darstellung von Protokollen für die Herstellung von einzelnen und mehreren Karten, wodurch eine größere Flexibilität beim Herstellungsverfahrens erlaubt wird.
- a) regeneration of flash memory occupied by either CrDe or MD one-time-code modules, or both, or none;
- b) control over unintentional deletion of the boot loader; and
- c) Presentation of single and multi-card production protocols, allowing greater flexibility in the manufacturing process.
Bei der Interpretation dieses Dokuments können, um die Beschreibung zu vereinfachen, verschiedene Funktionen und Operationen oder ausführbare Routinen für dieselben als durch Softwarecode durchgeführt oder veranlasst beschrieben werden. Der Fachmann wird jedoch erkennen, dass mit solchen Ausdrücken gemeint ist, dass Funktionen aus der Ausführung des Codes/der Instruktionen oder der Routinen durch einen Prozessor, wie etwa ein Mikroprozessor, resultieren. Es sollte sich verstehen, dass die Funktionen und Operationen oder ausführbare Routinen zur Implementierung dieser Ausführungsformen als Teil eines Betriebssystems oder einer spezifischen Anwendung, Komponente, eines Programms, Objekts, Moduls oder einer Instruktionssequenz implementiert werden können.In interpreting this document, to simplify the description, various functions and operations or routines thereof may be described as being performed or prompted by software code. However, those skilled in the art will recognize that by such terms is meant functions resulting from the execution of the code (s) or routines by a processor, such as a microprocessor. It should be understood that the functions and operations or executable routines for implementing these embodiments may be implemented as part of an operating system or specific application, component, program, object, module, or instruction sequence.
Des Weiteren können die hierin angeführten Ausführungsformen oder weitere Varianten davon unter Verwendung festverdrahteter Beschaltung, wie etwa ASIC oder FPGA ohne Software-Befehle, oder in Kombination mit Software-Befehlen implementiert werden. Somit sind die hierin offenbarten Techniken weder auf irgendeine spezifische Kombination von Hardwarebeschaltung und Software, noch auf irgendeine bestimmte Quelle für die durch das Datenverarbeitungssystem ausgeführten Instruktionen beschränkt.Further, the embodiments set forth herein, or other variants thereof, may be implemented using hardwired circuitry, such as ASIC or FPGA without software instructions, or in combination with software instructions. Thus, the techniques disclosed herein are not limited to any specific combination of hardware circuitry and software any particular source for the instructions executed by the data processing system.
Wahrend einige hierin offenbarten Ausführungsformen in voll funktionsfähigen Computern und Computersystemen implementiert werden können, können verschiedene Ausführungsformen als Rechenprodukt in einer Vielfalt von Formen verteilt werden und können unabhängig vom jeweiligen Maschinentyp oder von den jeweiligen computerlesbaren Medien, die zum eigentlichen Verteilen verwendet werden, angewendet zu werden.While some embodiments disclosed herein may be implemented in full-featured computers and computer systems, various embodiments may be distributed as computing product in a variety of forms and may be applied regardless of the type of machine or computer-readable media used for actual distribution ,
Wie weiter zu erkennen ist, beziehen sich die vorstehenden Offenbarungen auf spezifische beispielhafte Ausführungsformen, die in veranschaulichendem Sinn und nicht einschränkendem Sinn betrachtet werden sollen. Dennoch ist die vorliegende Erfindung zu verschiedenen anderen Ausführungsformen und Veränderungen in der Lage, wie es dem Fachmann ersichtlich sein kann, ohne dass dabei vom Wesen der vorliegenden Erfindung abgewichen wird. Demgemäß ist es offensichtlich, dass verschiedene Modifizierungen daran vorgenommen werden können, ohne dass vom breiteren Wesen und Schutzbereich der Ausführungsformen, wie in den beigefügten Ansprüchen dargelegt, abgewichen wird.As will be further appreciated, the foregoing disclosures pertain to specific exemplary embodiments which are to be considered in an illustrative and nonlimiting sense. However, the present invention is capable of various other embodiments and variations, as will be apparent to those skilled in the art, without departing from the spirit of the present invention. Accordingly, it will be apparent that various modifications may be made therein without departing from the broader spirit and scope of the embodiments as set forth in the appended claims.
ZITATE ENTHALTEN IN DER BESCHREIBUNG QUOTES INCLUDE IN THE DESCRIPTION
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.This list of the documents listed by the applicant has been generated automatically and is included solely for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions.
Zitierte PatentliteraturCited patent literature
- CN 102760075 A [0003]CN 102760075 A [0003]
- US 7272086 [0010]US 7272086 [0010]
- US 20140229025 [0011]US 20140229025 [0011]
Claims (13)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102017010430.1A DE102017010430B4 (en) | 2017-11-10 | 2017-11-10 | Method of conserving flash memory by sequentially occupying one-time code modules |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102017010430.1A DE102017010430B4 (en) | 2017-11-10 | 2017-11-10 | Method of conserving flash memory by sequentially occupying one-time code modules |
Publications (2)
Publication Number | Publication Date |
---|---|
DE102017010430A1 true DE102017010430A1 (en) | 2019-05-16 |
DE102017010430B4 DE102017010430B4 (en) | 2022-10-27 |
Family
ID=66335565
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102017010430.1A Active DE102017010430B4 (en) | 2017-11-10 | 2017-11-10 | Method of conserving flash memory by sequentially occupying one-time code modules |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE102017010430B4 (en) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7272086B2 (en) | 2003-03-24 | 2007-09-18 | Samsung Electronics Co., Ltd. | Method of overwriting data in write-once information storage medium and data recording and/or reproducing apparatus for write-once information storage medium |
CN102760075A (en) | 2012-06-01 | 2012-10-31 | 大唐微电子技术有限公司 | Method and system for realizing application configuration of intelligent card |
US20140229025A1 (en) | 2003-12-23 | 2014-08-14 | Rain Bird Corporation | Code replacement for irrigation controllers |
-
2017
- 2017-11-10 DE DE102017010430.1A patent/DE102017010430B4/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7272086B2 (en) | 2003-03-24 | 2007-09-18 | Samsung Electronics Co., Ltd. | Method of overwriting data in write-once information storage medium and data recording and/or reproducing apparatus for write-once information storage medium |
US20140229025A1 (en) | 2003-12-23 | 2014-08-14 | Rain Bird Corporation | Code replacement for irrigation controllers |
CN102760075A (en) | 2012-06-01 | 2012-10-31 | 大唐微电子技术有限公司 | Method and system for realizing application configuration of intelligent card |
Also Published As
Publication number | Publication date |
---|---|
DE102017010430B4 (en) | 2022-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE102008057219B4 (en) | Method of operating a solid state storage system, solid state storage system and computer system | |
DE102019116520A1 (en) | DATA STORAGE SYSTEMS AND METHODS FOR IMPROVED DATA REDIRECTION BASED ON READ LEVEL VOLTAGES RELATED TO ERROR RECOVERY | |
CN102163133B (en) | Method and apparatus for using a one-time or few-time programmable memory with a host device designed for erasable/rewriteable memory | |
DE102006052173B4 (en) | Write protection method and apparatus for at least one random access memory device | |
DE202010017644U1 (en) | Hybrid storage device | |
DE102005022019A1 (en) | Secure processing of data | |
DE102015209502A1 (en) | Mark programming in nonvolatile memories | |
EP3224756B1 (en) | Method for installing software on a chip card by means of an installation machine | |
WO2012062233A1 (en) | Method for deallocating memory areas no longer needed on non-volatile memory media | |
EP2948894B1 (en) | Method for securely erasing a non-volatile semiconductor mass memory, computer system, and computer program product | |
DE102017010430B4 (en) | Method of conserving flash memory by sequentially occupying one-time code modules | |
DE60019364T2 (en) | Memory defragmentation in smart cards | |
DE112020003107T5 (en) | SECURITY OF EMBEDDED DEVICES THROUGH A DEVICE LIFECYCLE WITH A DEVICE IDENTIFICATION | |
EP2210210B1 (en) | Method for loading initialization and/or personalization data onto a portable data carrier | |
WO2013143911A2 (en) | Method for encrypting data on a storage medium | |
DE102006013759B4 (en) | Method and computing unit for operating a memory device | |
DE102018003595A1 (en) | BOOTLOADER INDEPENDENT METHOD OF RECOVERING NON-VOLATILE MEMORY IN SMARTCARD | |
DE102006035039A1 (en) | Data processing system for e.g. smart card, has two memory mediums connected with processor via two respective buses, where user and management data are stored in respective mediums and management data are utilized for managing user data | |
DE102009048240A1 (en) | Portable data carrier with additional functionality | |
DE102015114721A1 (en) | Method, device and system for data processing | |
EP3271825B1 (en) | Method for storing user data in a document | |
DE102008035095A1 (en) | Method and device for detecting changes to data | |
WO2007110307A1 (en) | Method and computation unit for operating a memory device | |
DE102014222625A1 (en) | Chip card, chip card system and method for accessing a chip card | |
DE102006034375A1 (en) | Personalization of portable data carriers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R012 | Request for examination validly filed | ||
R016 | Response to examination communication | ||
R018 | Grant decision by examination section/examining division | ||
R020 | Patent grant now final | ||
R081 | Change of applicant/patentee |
Owner name: GIESECKE+DEVRIENT EPAYMENTS GMBH, DE Free format text: FORMER OWNER: GIESECKE+DEVRIENT MOBILE SECURITY GMBH, 81677 MUENCHEN, DE |