DE60210416T2 - Speicherkarte - Google Patents

Speicherkarte Download PDF

Info

Publication number
DE60210416T2
DE60210416T2 DE60210416T DE60210416T DE60210416T2 DE 60210416 T2 DE60210416 T2 DE 60210416T2 DE 60210416 T DE60210416 T DE 60210416T DE 60210416 T DE60210416 T DE 60210416T DE 60210416 T2 DE60210416 T2 DE 60210416T2
Authority
DE
Germany
Prior art keywords
program
memory
volatile memory
data
variables
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.)
Expired - Lifetime
Application number
DE60210416T
Other languages
English (en)
Other versions
DE60210416D1 (de
Inventor
Tetsuro Kadoma-shi Yoshimoto
Takayuki Yao-shi Tanaka
Miki Toyonaka-shi Mizushima
Ryouichi Takatsuki-shi Sugita
Takafumi Kikuchi
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Application granted granted Critical
Publication of DE60210416D1 publication Critical patent/DE60210416D1/de
Publication of DE60210416T2 publication Critical patent/DE60210416T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1008Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1433Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a module or a part of a module
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/067Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components
    • G06K19/07Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/355Personalisation of cards for use
    • G06Q20/3552Downloading or loading of personalisation data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Business, Economics & Management (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Accounting & Taxation (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)
  • Credit Cards Or The Like (AREA)
  • Read Only Memory (AREA)

Description

  • ALLGEMEINER STAND DER TECHNIK
  • Die vorliegende Erfindung betrifft eine Speicherkarte und insbesondere eine Speicherkarte, auf die Programmdaten heruntergeladen und in einem nichtflüchtigen Speicher gespeichert werden.
  • Speicherkarten werden zum Lesen/Schreiben von Informationen mit digitalen Vorrichtungen, wie beispielsweise Digitalkameras, PDAs, tragbaren Audio-Vorrichtungen, Handys und Arbeitsplatzrechnern verwendet. Zwei Typen von Chips, die ein Flash-Speicher und ein Controller sind, sind auf einer Speicherkarte angebracht. Für Flash-Speicher, die auf Speicherkarten angebracht sind, wurde in letzter Zeit die Kapazität in dem Ausmaß erhöht, dass sie in der Lage sein werden, große Datenmengen zu speichern. Zum gegenwärtigen Zeitpunkt können Speicherkarten jedoch nur Daten mit digitalen Vorrichtungen austauschen. In einigen IC-Karten können Anwendungsprogramme heruntergeladen und ausgeführt werden. Die Kapazität ihres nichtflüchtigen Speichers zum Speichern von Programmen ist jedoch viel kleiner als die Kapazität von Flash-Speichern, die auf Speicherkarten angebracht sind.
  • KURZDARSTELLUNG DER ERFINDUNG
  • Es ist eine Aufgabe der vorliegenden Erfindung, eine Speicherkarte bereitzustellen, deren Schaltungsumfang reduziert werden kann.
  • Eine Speicherkarte gemäß der vorliegenden Erfindung wird in Anspruch 1 definiert. Sie umfasst einen ersten nichtflüchtigen Speicher, einen zweiten nichtflüchtigen Speicher und einen Trennungsabschnitt, welcher die auf die Speicherkarte heruntergeladenen Programmdaten-Datentypen voneinander trennt. Der erste nichtflüchtige Speicher weist eine vorgegebene Löscheinheit auf, welche die kleinste Datenmenge ist, die mit einen Löschvorgang gelöscht werden kann. Der zweite nichtflüchtige Speicher weist eine weitere Löscheinheit auf, welche die kleinste Datenmenge ist, die mit einem Löschvorgang gelöscht werden kann und die größer ist als die Löscheinheit des ersten nichtflüchtigen Speichers. Der Trennungsabschnitt trennt wenigstens den Teil der Programmdaten, die auf die Speicherkarte heruntergeladenen wurden, deren Überschreiben durch das Programm möglich ist, und speichert den getrennten Teil in dem ersten nichtflüchtigen Speicher und speichert den restlichen Teil in dem zweiten nichtflüchtigen Speicher.
  • Gemäß dieser Speicherkarte werden beim Ausführen des heruntergeladenen Programms die Programmdaten nur in dem ersten nichtflüchtigen Speicher überschrieben und nicht in dem zweiten nichtflüchtigen Speicher überschrieben. Somit ist durch das Überschreiben von Variablen, die durch das Programm der Variablen, (d.h. Variablen, welche die gleichen für das Programm sind), oder Ähnlichem in dem ersten nichtflüchtigen Speicher überschrieben werden können, die erforderliche Puffergröße kleiner, als wenn der Prozess an denjenigen Variablen durchgeführt würde, welche die gleichen für das Programm sind und nicht von dem Programm der Variablen, (d.h. Variablen, welche die gleichen für alle Objekte der Klasse sind), in dem zweiten nichtflüchtigen Speicher überschrieben werden können, der eine große Löscheinheit aufweist, und die Schaltung kann in ihrem Umfang verkleinert werden.
  • Des Weiteren ist die Größe der Daten, die zum Überschreiben temporär gepuffert werden, in dem ersten nichtflüchtigen Speicher kleiner als in dem zweiten nichtflüchtigen Speicher. Demzufolge kann die Pufferzeit zum Überschreiben kürzer gehalten werden, als wenn der Überschreibprozess in dem zweiten nichtflüchtigen Speicher durchgeführt würde, und die zum Überschreiben erforderliche Zeitdauer kann verkürzt werden.
  • Außerdem wird die Datensicherheit verbessert, weil die heruntergeladenen Programmdaten getrennt und in dem ersten nichtflüchtigen Speicher und in dem zweiten nichtflüchtigen Speicher gespeichert werden.
  • HAMANN U: "Chip cards – the application revolution" ELECTRON DEVICES MEETING, 1997. TECHNICAL DIGEST., INTERNATIONAL WASHINGTON, DC, USA, 7.–10. Dez. 1997, NEW YORK, NY, IEEE, US, 7. Dezember 1997 (12.7.1997), Seite 15–22, XP010265446 ISBN: 0-7803-4100-7 betrifft allgemein eine Übersicht über den aktuellen Stand der Chipkarten-Technologie und ihre Anwendung zusammen mit Prognosen, wie sich diese entwickeln könnten. Insbesondere werden gegenwärtige und geplante Aktivi täten der Halbleitersparte der Siemens-Gruppe in Verbindung mit ihrer Zusammenarbeit mit Sun Microsystems in Bezug auf die Erstellung einer optimalen Hardware-Lösung für Java-Chipkarten ausführlich dargelegt.
  • WO 00/46666 beschreibt ein Befehls-Set in Verbindung mit den generierten Operationscodes und einer Befehlsspezifikation, das geeignet ist für die Ausführung von Java-Programmen auf Vorrichtungen mit eingeschränkten Ressourcen, wie beispielsweise einer Smart Card.
  • US-A-5 491 827 betrifft die Bereitstellung eines tragbaren digitalen Systems, dessen Inhalt geschützt werden kann, wenn er aus dem tragbaren digitalen System entfernt wird, das heißt, eine sichere Anwendungskarte für die gemeinsame Nutzung von Anwendungsdaten und Prozeduren durch eine Vielzahl von Mikroprozessoren.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist ein Blockschaltbild, das die gesamte Konfiguration des Speicherkartensystems gemäß einer Ausführungsform der vorliegenden Erfindung zeigt.
  • 2 und 3 sind schematische Darstellungen, um den Prozess des Speicherns von Programmdaten zu beschreiben, die von einer digitalen Vorrichtung auf der Speicherkarte heruntergeladen werden.
  • 4 zeigt die Programmdaten, die in dem Flash-Speicher und dem EEPROM gespeichert sind.
  • 5A bis 5C sind schematische Darstellungen, um die Prozedur zu beschreiben, von der das Programm ausgeführt wird.
  • AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNG
  • Im Folgenden werden hierin Ausführungsformen der vorliegenden Erfindung ausführlich unter Bezugnahme auf die Zeichnungen beschrieben. Identischen oder entsprechenden Teilen in den Zeichnungen werden identische Bezugszeichen zugewiesen und doppelte Beschreibungen davon unterlassen.
  • Gesamtkonfiguration des Speicherkartensystems
  • 1 ist ein Blockschaltbild, das die Gesamtkonfiguration des Speicherkartensystems gemäß einer Ausführungsform der vorliegenden Erfindung zeigt. In dem in 1 gezeigten System wird eine Speicherkarte 1 in einen (nicht gezeigten) Schlitz einer digitalen Vorrichtung 2 eingeschoben, (wie beispielsweise einer Digitalkamera, eines PDA, einer tragbaren Audio-Vorrichtung, eines Handys oder eines Einzelplatzrechners), und Programmdaten werden von der digitalen Vorrichtung 2 auf die Speicherkarte 1 heruntergeladen. Das heruntergeladene Programm wird in der Speicherkarte 1 ausgeführt.
  • Digitale Vorrichtung 2
  • Die digitale Vorrichtung 2 kompiliert einen in JavaTM geschriebenen Quellcode, der eine objektorientierte Programmiersprache ist, in Bytecodes und überträgt sie zu der Speicherkarte 1.
  • Speicherkarte 1
  • Die Speicherkarte 1 enthält einen Controller-Chip 100 und einen Flash-Speicher-Chip 200.
  • Der Controller-Chip 100 enthält die Schnittstellen 110, 140 und 180, eine CPU 120, eine virtuelle Maschine 130, einen EEPROM 150, die Puffer-RAMs 145 und 160 und einen Verschlüsselungsabschnitt 170.
  • Die Schnittstelle 110 ist eine Schnittstelle zwischen der digitalen Vorrichtung 2 und dem Controller-Chip 100 und überträgt Klassen-Dateien (Bytecodes), die von der digitalen Vorrichtung 2 heruntergeladen worden sind, zu der virtuellen Maschine 130.
  • Die virtuelle Maschine 130 trennt statische Variablen von den Klassen-Dateien, die von der Schnittstelle 110 übergeben werden, und leitet sie zu der Schnittstelle 140 weiter und leitet den Rest (Applet-Codes und statische endgültige Variablen) an den Puffer-RAM 160 weiter. Die virtuelle Maschine 130 übersetzt auch die Programmdaten (Bytecodes), die aus dem EEPROM 150 und dem Flash-Speicher-Chip 200 ausgelesen worden sind, über ein Übersetzungssystem in ein Format, das von der CPU 120 ausgeführt werden kann.
  • Die CPU 120 führt das von der virtuellen Maschine 130 übersetzte Programm aus. Die CPU 120 steuert auch den Betrieb des Controller-Chips 100.
  • Die Schnittstelle 140 ist eine Schnittstelle zwischen der virtuellen Maschine 130 und der CPU 120 auf der einen und dem EEPROM 150 und dem Puffer-RAM 145 auf der anderen Seite. Die Schnittstelle 140 überträgt statische Variablen von der virtuellen Maschine 130 zu dem EEPROM über den Puffer-RAM 145.
  • Der Puffer-RAM 145 puffert Daten, die an den EEPROM 150 übertragen werden sollen, und die Datenausgabe von dem EEPROM 150. Der Puffer-RAM 145 puffert temporär auch Daten, die in dem EEPROM 150 gespeichert sind, wenn diese Daten überschrieben werden.
  • Der EEPROM 150 speichert statische Variablen von der Schnittstelle 140. Der EEPROM 150 ist ein nichtflüchtiger Speicher, in dem Daten in Worteinheiten gelöscht werden.
  • Der Puffer-RAM 160 speichert temporär die Applet-Codes und die statischen endgültigen Variablen von der virtuellen Maschine 130. Der Puffer-RAM 160 speichert temporär auch Programmdaten, die aus dem Flash-Speicher 200 ausgelesen und von dem Verschlüsselungsabschnitt 170 entschlüsselt worden sind.
  • Der Verschlüsselungsabschnitt 170 verschlüsselt Programmdaten, (Applet-Codes und statische endgültige Variablen), die in dem Puffer-RAM 160 gespeichert sind und leitet sie an die Schnittstelle 180 weiter. Der Verschlüsselungsabschnitt 170 entschlüsselt auch Programmdaten, die aus dem Flash-Speicher-Chip 200 ausgelesen worden sind.
  • Die Schnittstelle 180 ist eine Schnittstelle zwischen dem Controller-Chip 100 und dem Flash-Speicher-Chip 200 und überträgt Programmdaten, (Applet-Codes und statische endgültige Variablen), die von dem Verschlüsselungsabschnitt 170 verschlüsselt worden sind, an den Flash-Speicher-Chip 200. Die Schnittstelle 180 überträgt auch Programmdaten, die aus dem Flash-Speicher-Chip 200 ausgelesen worden sind, an den Verschlüsselungsabschnitt 170.
  • Der Flash-Speicher-Chip 200 speichert verschlüsselte Programmdaten, (Applet-Codes und statische endgültige Variablen), von der Schnittstelle 180. Der Flash-Speicher-Chip 200 ist ein nichtflüchtiger Speicher, in dem Daten in Einheiten von Blöcken oder Chips gelöscht werden. Das heißt, die in dem Flash-Speicher-Chip 200 gelöschte Einheit ist größer als die Einheit, die in dem EEPROM gelöscht wird.
  • Herunterladen des Programms
  • Programmdaten werden von der digitalen Vorrichtung 2 auf die Speicherkarte 1 in dem in 1 gezeigten Speicherkartensystem wie folgt heruntergeladen.
  • Hier werden Programmdaten mit einem Quellcode wie dem in 2 gezeigten heruntergeladen. Der in 2 gezeigte Quellcode ist ein Anwendungsprogramm für die Verwendung der Speicherkarte 1 als eine Punktekarte und ist in JavaTM geschrieben. Das Programm fügt verschiedene Punktanrechnungsquoten (point return rates) (die auch als "kangenritu" bezeichnet werden können), für jeden Artikel (Nahrung, Kleidung, Elektronik) hinzu, der gekauft wird. Der Punkte-Saldo wird für jeden gekauften Artikel aufgezeichnet. Da der Punkte-Saldo jedes Mal aktualisiert wird, wenn ein Artikel gekauft wird, wird er zur statischen Variablen erklärt. Andererseits bleibt die Punktanrechnungsquote ab dem ursprünglich eingestellten Wert unverändert, so dass sie zur statischen endgültigen Variablen erhoben wird.
  • Der in JavaTM geschriebene Quellcode wird in Bytecodes kompiliert und von der digitalen Vorrichtung auf die Speicherkarte 1 heruntergeladen. Bytecodes (Klassen-Dateien), die auf die Speicherkarte 1 heruntergeladen werden, werden von der virtuellen Maschine 130 in einen Teil mit statischer Variablen und einen Teil mit Applet-Code und statischer endgültiger Variablen getrennt. Der Teil mit Applet-Code und statischer endgülti ger Variablen wird in dem Flash-Speicher 200 gespeichert, und der Teil mit statischer Variablen wird im EPROM 150 gespeichert. Daher wird der Teil, der überschrieben werden kann, (der Teil mit statischer Variablen), in dem EEPROM 150 gespeichert, und der Teil, der nicht überschrieben werden kann, (der Teil mit Applet-Code und statischer endgültiger Variablen), wird in dem Flash-Speicher 200 gespeichert, nachdem er am Verschlüsselungsabschnitt 170 verschlüsselt worden ist. Es sollte beachtet werden, dass eine IC-Karte, auf die ein Anwendungsprogramm heruntergeladen werden und auf ihr ausgeführt werden kann, alle heruntergeladenen Bytecodes (Klassendateien) in ihrem internen EEPROM gespeichert werden, ohne getrennt zu werden, wie in 2 gezeigt.
  • Als Nächstes wird der Trennungsprozess, der durch die virtuelle Maschine 130 ausgeführt wird, ausführlicher unter Bezugnahme auf 3 beschrieben.
  • Klassendateien, die von der digitalen Vorrichtung 2 auf die Speicherkarte 1 heruntergeladen werden, umfassen einen Teil mit Applet-Code (Methode), eine statische endgültige Variable und eine statische Variable. Das Header-1-Byte des Teils mit Applet-Code ist 0 × 01, das Header-1-Byte der statischen endgültigen Variablen ist 0 × 002, und das Header-1-Byte der statischen Variablen ist 0 × 03. Daher können Klassendateien, die von der digitalen Vorrichtung 2 kompiliert worden sind, als der Teil mit Applet-Code, die statische endgültige Variable und die statische Variable durch Bestimmen des Header-1-Bytes identifiziert werden. Dieses wird durch einen Adressenanalyse-Abschnitt 131 in der virtuellen Maschine 130 ermittelt.
  • Ein Speicherabschnitt 132 speichert Programmdaten in dem Flash-Speicher 200 oder dem EEPROM 150 in Übereinstimmung mit dem Ergebnis, das von dem Adressenanalyse-Abschnitt 131 ermittelt worden ist. Wenn ermittelt worden ist, dass das Header-1-Byte 0 × 01 ist, werden die Programmdaten (Teil mit Applet-Code) in dem Flash-Speicher 200 gespeichert. Wenn ermittelt wird, dass das Header-1-Byte 0 × 02 ist, werden die Programmdaten (statische endgültige Variable) in dem Flash-Speicher 200 gespeichert, (nachdem sie von dem Verschlüsselungsabschnitt 170 verschlüsselt worden sind). Wenn ermittelt wird, dass das Header-1-Byte 0 × 03 ist, werden die Programmdaten (statische Variable) in dem EEPROM 150 gespeichert.
  • Das Ergebnis des oben genannten Prozesses ist, dass Applet-Codes und statische endgültige Variablen in dem Flash-Speicher 200 gespeichert werden und statische Variablen in dem EEPROM 150 gespeichert werden, wie in 4 gezeigt.
  • Ausführen des heruntergeladenen Programms
  • Als Nächstes wird das Programm getrennt und in dem Flash-Speicher 200 gespeichert, und der EEPROM 150 wird wie im Folgenden beschrieben ausgeführt. Der hier ausgeführte Prozess wird durch den Quellcode in 5A gezeigt und wird im Folgenden unter Bezugnahme auf 5B und 5C beschrieben.
  • Wenn der Kaufpreis (Wert) und der Index (i) zeigen, dass die Artikelklassifizierung in die CPU 120 eingegeben worden ist, ruft die virtuelle Maschine 130 den "Befehl" ab, der in dem Teil mit Applet-Code (addPoint) in dem Flash-Speicher 200 gespeichert ist, und der Übersetzungsabschnitt übersetzt ihn durch ein Übersetzungssystem in ein Format, das von der CPU 120 ausgeführt werden kann. Der übersetzte Befehl wird von der CPU 120 ausgeführt, um die folgenden Prozessschritte durchzuführen.
  • Schritt ST51
    • baload ... Die i-ten Daten der kangenritu-Anordnung (kangenritu[i]) auf dem Flash-Speicher 200 werden erhalten (X).
  • Schritt ST52
    • mul... Der Wert und der kangenritu[i]) werden multipliziert.
  • Schritt ST53
    • baload ... Die i-ten Daten der Punkte-Anordnung (point[i]) auf dem EEPROM 150 werden erhalten (Y).
  • Schritt ST54
    • add ... Das Ergebnis des Multiplikationsprozesses in Schritt ST52 und der in Schritt ST53 erhaltene point[i] werden addiert.
  • Schritt ST55
    • bastore ... Das Ergebnis des Additionsprozesses in Schritt ST54 wird in point[i] auf dem EEPROM 150 (Z) gespeichert. Das heißt, die Daten von point[i] werden überschrieben.
  • Auswirkung
  • Bei den gegenwärtigen Technologien ist die Speicherkapazität eines EEPROM viel kleiner als diejenige eines Flash-Speichers, so dass große Programme in einem Flash-Speicher gespeichert werden sollten.
  • Normalerweise werden kleine Datenmengen, (wie beispielsweise Variablen), in dem Programm überschrieben, wenn ein Programm ausgeführt wird. Wenn ein in einem Flash-Speicher gespeichertes Programm ausgeführt wird, werden Daten in der Löscheinheit des Flash-Speichers überschrieben. Allerdings ist die Löscheinheit eines Flash-Speichers jedoch beträchtlich größer als die Löscheinheit eines EEPROM, so dass das Ausführen eines Programms, das in einem Flash-Speicher gespeichert ist, einen massiven Pufferspeicher für beispielsweise das Überschreiben von Variablen erfordert.
  • Zum Beispiel ist für einen NAND-Flash-Speicher mit:
    Speicherkapazität: 512 Mbit
    Programmeinheit: 512 Bytes = 1 Seite
    Löscheinheit: 32 Seiten
    Ein Puffer-RAM von 16 kByte erforderlich.
  • Bei dem Speicherkartensystem gemäß einer Ausführungsform der vorliegenden Erfindung wird der Teil der Programmdaten (Klassendateien), die von der digitalen Vorrichtung 2 auf die Speicherkarte 1 heruntergeladen werden und überschrieben werden können (statische Variablen), auf dem EEPROM 150 gespeichert, und der Teil, der nicht überschrieben werden kann (Applet-Code und statische endgültige Variablen) wird auf dem Flash-Speicher 200 gespeichert. Demzufolge erfolgt das Überschreiben von Daten während des Programms nicht in dem Flash-Speicher 200, sondern wird nur in dem EEPROM 150 durchgeführt. Daher wird das Überschreiben von Variablen oder Ähnlichem in dem EEPROM 150 durchgeführt, der eine kleine Löscheinheit besitzt, so dass die Kapazität des Pufferspeichers (Puffer-RAM 145), die zum Überschreiben erforderlich ist, kleiner sein kann, als wenn das Überschreiben in dem Flash-Speicher 200 durchgeführt würde, der eine große Löscheinheit besitzt, und der Schaltungsumfang kann reduziert werden. Des Weiteren ist die Größe der Daten, die zum Überschreiben temporär gepuffert werden, in dem EEPROM 150 kleiner als in dem Flash-Speicher 200, und daher kann die Pufferzeit für das Überschreiben kürzer gehalten werden, als wenn der Überschreibungsprozess in dem Flash-Speicher 200 durchgeführt würde, und die für das Überschreiben erforderliche Zeitdauer kann verkürzt werden.
  • Außerdem wird die Datensicherheit verbessert, weil die auf die Speicherkarte 1 heruntergeladenen Programmdaten getrennt und auf dem Flash-Speicher 200 und dem EEPROM 150 gespeichert werden. Die in dem Flash-Speicher-Chip 200 gespeicherten Programmdaten werden durch den Verschlüsselungsabschnitt 170 verschlüsselt, so dass die Sicherheit noch weiter erhöht wird.
  • Ein Verschlüsselungs-/Entschlüsselungs-Prozess ist nicht erforderlich, um auf die Programmdaten zuzugreifen, die auf dem EEPROM 150 gespeichert sind, so dass die Verarbeitungszeiten verbessert werden können.
  • Es sollte beachtet werden, dass, obwohl hier die statischen Variablen auf dem EEPROM 150 gespeichert wurden, und der Applet-Code und die statischen endgültigen Variablen auf dem Flash-Speicher 200 gespeichert wurden, es ebenfalls möglich ist, die statischen Variablen und die statischen endgültigen Variablen auf dem EEPROM 150 zu speichern und den Applet-Code auf dem Flash-Speicher 200 zu speichern.
  • Des Weiteren können, wenn das Auslesen von Daten aus dem Flash-Speicher 200 und deren Entschlüsseln mit dem Verschlüsselungsabschnitt 170 länger dauert als die Zeit, die zum Auslesen der Daten aus dem EEPROM 150 erforderlich ist, Teile, auf die im Flash-Speicher 200 häufig zugegriffen wird, unter der Steuerung der CPU 120 in den EEPROM 150 geschrieben werden.
  • Es ist auch möglich, den Puffer-RAM 145 und den Puffer-RAM 160 als einen gemeinsamen RAM zu konfigurieren, der als der Puffer-RAM für den EEPROM 150 betrieben werden kann, wenn der EEPROM 150 arbeitet, und der als der Puffer-RAM für den Flash-Speicher 200 betrieben werden kann, wenn der Flash-Speicher 200 arbeitet.
  • Dementsprechend kann der Schaltungsbereich, der für den RAM erforderlich ist, reduziert werden, und die Schaltung kann verkleinert werden.
  • Die in dieser Anmeldung offenbarten Ausführungsformen sind in jeder Hinsicht als veranschaulichend und als nicht einschränkend zu betrachten. Der Umfang der Erfindung wird durch die Ansprüche im Anhang und nicht durch die vorhergehende Beschreibung angegeben.

Claims (6)

  1. Speicherkarte, auf die Programmdaten heruntergeladen und in einem nichtflüchtigen Speicher gespeichert werden; gekennzeichnet durch einen ersten nichtflüchtigen Speicher (150), der eine vorgegebene Löscheinheit hat, die die kleinste Menge an Daten ist, die mit einen Löschvorgang gelöscht werden kann; einen zweiten nichtflüchtigen Speicher (200), der eine andere Löscheinheit hat, die die kleinste Menge an Daten ist, die mit einem Löschvorgang gelöscht werden kann und die größer ist als die Löscheinheit des ersten nichtflüchtigen Speichers (150); und einen Abscheideabschnitt (130), der die auf die Speicherkarte heruntergeladenen Datentypen von Programmdaten abscheidet, wenigstens einen Teil der heruntergeladenen Programmdaten abscheidet, die durch das Programm überschrieben werden können, und den abgeschiedenen Teil in dem ersten nichtflüchtigen Speicher (150) speichert und einen verbleibenden Teil in dem zweiten nichtflüchtigen Speicher (200) speichert.
  2. Speicherkarte nach Anspruch 1, wobei die Programmdaten Funktionen und Variablen enthalten und der Abscheideabschnitt (130) so eingerichtet ist, dass er die Funktionen in dem zweiten nichtflüchtigen Speicher (200) speichert, Variablen, die durch das Pro gramm überschrieben werden können, in dem ersten nichtflüchtigen Speicher (150) speichert und Variablen, die durch das Programm nicht verändert werden und durch das Programm nicht überschrieben werden können, in dem zweiten nichtflüchtigen Speicher (200) speichert.
  3. Speicherkarte nach Anspruch 1, wobei die Programmdaten eine Klasse sind, die in einer objektorientierten Programmiersprache geschrieben ist, und der Abscheideabschnitt (130) so eingerichtet ist, dass er Variablen der Klasse in dem ersten nichtflüchtigen Speicher (15C) speichert und ein Verfahren der Klasse in dem zweiten nichtflüchtigen Speicher (200) speichert.
  4. Speicherkarte nach Anspruch 1, wobei die Programmdaten eine Klasse sind, die in einer objektorientierten Programmiersprache geschrieben ist, und der Abscheideabschnitt (130) so eingerichtet ist, dass er Variablen der Klasse, die durch das Programm überschrieben werden können, in dem ersten nichtflüchtigen Speicher (150) speichert und Variablen der Klasse, die für alle Objekte der Klasse die gleichen sind und durch das Programm nicht überschrieben werden können, sowie ein Verfahren der Klasse in dem zweiten nichtflüchtigen Speicher (200) speichert.
  5. Speicherkarte nach Anspruch 1, die des Weiteren einen Verschlüsselungsabschnitt (170) zum Verschlüsseln des in dem zweiten nichtflüchtigen Speichers (200) zu speichernden verbleibenden Teils umfasst, und wobei der erste nichtflüchtige Speicher (150), der Abscheideabschnitt (130) und der Verschlüsselungsabschnitt (170) auf ein und demselben Chip ausgebildet sind.
  6. Speicherkarte nach Anspruch 1, wobei der erste nichtflüchtige Speicher ein EEPROM (150) ist und der zweite nichtflüchtige Speicher ein Flash-Speicher (200) ist.
DE60210416T 2002-02-28 2002-07-05 Speicherkarte Expired - Lifetime DE60210416T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2002053099 2002-02-28
JP2002053099 2002-02-28

Publications (2)

Publication Number Publication Date
DE60210416D1 DE60210416D1 (de) 2006-05-18
DE60210416T2 true DE60210416T2 (de) 2006-09-07

Family

ID=27750907

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60210416T Expired - Lifetime DE60210416T2 (de) 2002-02-28 2002-07-05 Speicherkarte

Country Status (6)

Country Link
US (1) US6772955B2 (de)
EP (1) EP1355268B1 (de)
KR (1) KR100900627B1 (de)
CN (1) CN1221923C (de)
DE (1) DE60210416T2 (de)
TW (1) TWI231917B (de)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2815801B1 (fr) * 2000-10-20 2004-10-29 Trusted Logic Protocole de transmission d'une pluralite de flux logiques d'echange multiple de couples de commande/reponse sur un canal physique unique d'echange entre maitre et esclave et systeme de suivi et de controle d'execution d'appliquettes
JP2002229861A (ja) * 2001-02-07 2002-08-16 Hitachi Ltd 著作権保護機能つき記録装置
US7059533B2 (en) * 2002-05-08 2006-06-13 Koninklijke Philips Electronics N.V. Authentication using a read-once memory
ATE373852T1 (de) 2003-01-31 2007-10-15 Matsushita Electric Ind Co Ltd Halbleiterspeicherkarte und programm zu ihrer steuerung
US7752380B2 (en) * 2003-07-31 2010-07-06 Sandisk Il Ltd SDRAM memory device with an embedded NAND flash controller
FR2862407B1 (fr) * 2003-11-14 2006-02-17 Iteon Systeme de communication protocolaire entre une carte a puce et un terminal et son procede de communication.
US7975926B2 (en) 2003-12-26 2011-07-12 Semiconductor Energy Laboratory Co., Ltd. Paper money, coin, valuable instrument, certificates, tag, label, card, packing containers, documents, respectively installed with integrated circuit
JP2005322109A (ja) 2004-05-11 2005-11-17 Renesas Technology Corp Icカードモジュール
US7877539B2 (en) * 2005-02-16 2011-01-25 Sandisk Corporation Direct data file storage in flash memories
US20060184718A1 (en) * 2005-02-16 2006-08-17 Sinclair Alan W Direct file data programming and deletion in flash memories
US9104315B2 (en) 2005-02-04 2015-08-11 Sandisk Technologies Inc. Systems and methods for a mass data storage system having a file-based interface to a host and a non-file-based interface to secondary storage
US20060184719A1 (en) 2005-02-16 2006-08-17 Sinclair Alan W Direct data file storage implementation techniques in flash memories
US7480766B2 (en) * 2005-08-03 2009-01-20 Sandisk Corporation Interfacing systems operating through a logical address space and on a direct data file basis
US7669003B2 (en) * 2005-08-03 2010-02-23 Sandisk Corporation Reprogrammable non-volatile memory systems with indexing of directly stored data files
US7558906B2 (en) 2005-08-03 2009-07-07 Sandisk Corporation Methods of managing blocks in nonvolatile memory
US7409489B2 (en) * 2005-08-03 2008-08-05 Sandisk Corporation Scheduling of reclaim operations in non-volatile memory
US7949845B2 (en) * 2005-08-03 2011-05-24 Sandisk Corporation Indexing of file data in reprogrammable non-volatile memories that directly store data files
US7552271B2 (en) 2005-08-03 2009-06-23 Sandisk Corporation Nonvolatile memory with block management
US7814262B2 (en) * 2005-10-13 2010-10-12 Sandisk Corporation Memory system storing transformed units of data in fixed sized storage blocks
US7529905B2 (en) * 2005-10-13 2009-05-05 Sandisk Corporation Method of storing transformed units of data in a memory system having fixed sized storage blocks
FR2893436B1 (fr) * 2005-11-15 2008-02-15 Oberthur Card Syst Sa Securisation entre des composants electroniques d'une entite electronique securisee portable
US7877540B2 (en) * 2005-12-13 2011-01-25 Sandisk Corporation Logically-addressed file storage methods
US7793068B2 (en) 2005-12-21 2010-09-07 Sandisk Corporation Dual mode access for non-volatile storage devices
US7769978B2 (en) 2005-12-21 2010-08-03 Sandisk Corporation Method and system for accessing non-volatile storage devices
US7747837B2 (en) 2005-12-21 2010-06-29 Sandisk Corporation Method and system for accessing non-volatile storage devices
EP1855453A1 (de) * 2006-05-11 2007-11-14 Axalto SA Verwaltung des Stromverbrauchs einer Chipkarte in einem mobilen Endgerät
US20070288752A1 (en) * 2006-06-08 2007-12-13 Weng Chong Chan Secure removable memory element for mobile electronic device
US7725614B2 (en) * 2006-08-08 2010-05-25 Sandisk Corporation Portable mass storage device with virtual machine activation
US20080126705A1 (en) * 2006-08-08 2008-05-29 Fabrice Jogand-Coulomb Methods Used In A Portable Mass Storage Device With Virtual Machine Activation
WO2008021682A2 (en) 2006-08-08 2008-02-21 Sandisk Corporation Portable mass storage with virtual machine activation
US7966355B2 (en) * 2007-02-13 2011-06-21 Modu Ltd. Interface for extending functionality of memory cards
CN102063384B (zh) * 2009-11-13 2013-07-03 恒宝股份有限公司 一种java卡利用缓存对编程只读存储器进行读写操作的方法
KR101975027B1 (ko) 2012-05-04 2019-05-03 삼성전자주식회사 시스템 온 칩, 이의 동작 방법, 이를 포함하는 장치들
US10108409B2 (en) 2014-01-03 2018-10-23 Visa International Service Association Systems and methods for updatable applets
EP3252651A1 (de) 2016-05-30 2017-12-06 Samsung Electronics Co., Ltd Rechnersystem mit einem on-the-fly-verschlüsseler und betriebsverfahren dafür
US10754579B2 (en) * 2017-09-25 2020-08-25 Silicon Laboratories Inc. Reliable non-volatile memory programming interface and method therefor

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63244133A (ja) 1987-03-30 1988-10-11 Canon Inc 制御プログラムの格納方式
JPH0259937A (ja) * 1988-08-26 1990-02-28 Hitachi Maxell Ltd Icカード
JPH05120501A (ja) * 1991-10-24 1993-05-18 Mitsubishi Electric Corp Icカード及びicカード製造方法
US5504701A (en) 1993-09-30 1996-04-02 Toppan Printing Co., Ltd. Memory card
US5491827A (en) * 1994-01-14 1996-02-13 Bull Hn Information Systems Inc. Secure application card for sharing application data and procedures among a plurality of microprocessors
US5809558A (en) * 1994-09-29 1998-09-15 Intel Corporation Method and data storage system for storing data in blocks without file reallocation before erasure
DE19536169A1 (de) 1995-09-29 1997-04-03 Ibm Multifunktionale Chipkarte
US5923884A (en) * 1996-08-30 1999-07-13 Gemplus S.C.A. System and method for loading applications onto a smart card
PT932865E (pt) * 1996-10-25 2002-12-31 Schlumberger Systems & Service Utilizacao de linguagem de programacao de nivel elevado com um microcontrolador
US6488211B1 (en) * 1997-05-15 2002-12-03 Mondex International Limited System and method for flexibly loading in IC card
KR19990019426A (ko) * 1997-08-29 1999-03-15 윤종용 플래쉬 메모리를 내장한 제어장치의 프로그램 관리방법
EP0914001A1 (de) * 1997-10-28 1999-05-06 CANAL+ Société Anonyme Fernladen von Anwendungen in einen Decoder
US6338435B1 (en) * 1999-01-15 2002-01-15 Todd Carper Smart card patch manager
US7200842B1 (en) * 1999-02-02 2007-04-03 Sun Microsystems, Inc. Object-oriented instruction set for resource-constrained devices

Also Published As

Publication number Publication date
CN1441384A (zh) 2003-09-10
TWI231917B (en) 2005-05-01
EP1355268B1 (de) 2006-04-05
KR100900627B1 (ko) 2009-06-02
EP1355268A2 (de) 2003-10-22
US20030160102A1 (en) 2003-08-28
US6772955B2 (en) 2004-08-10
EP1355268A3 (de) 2003-11-05
CN1221923C (zh) 2005-10-05
KR20030071461A (ko) 2003-09-03
DE60210416D1 (de) 2006-05-18

Similar Documents

Publication Publication Date Title
DE60210416T2 (de) Speicherkarte
DE69817333T2 (de) Verfahren und Vorrichtung zum Laden von Befehlskodes in einen Speicher und zum Verbinden dieser Befehlskodes
DE19522527A1 (de) Verfahren zur Vereinfachung der Kommunikation mit Chipkarten
EP1883906B1 (de) Tragbarer datenträger mit sicherer datenverarbeitung
EP0766211A2 (de) Multifunktionale Chipkarte
DE60308990T2 (de) Schutz eines gerätes gegen unerwünschte verwendung in einem sicheren umfeld
DE102009041176B4 (de) Compiler-System und Verfahren zum Kompilieren eines Quellencodes zu einem verschlüsselten Maschinensprachcode
DE19803218A1 (de) Informationsspeichermedium und zugehöriges Schutzverfahren
DE19626337C2 (de) Verarbeitung langer Nachrichten in einer Prozessorkarte
DE19633466A1 (de) Nachinitialisierung von Chipkarten
DE602004004079T2 (de) Befehl zur berechnung eines sicherheits-nachricht-authentifizierungskodes
DE10324337B4 (de) Rechnersystem und zugehöriges Verfahren zum Durchführen eines Sicherheitsprogramms
DE602004010458T2 (de) Halbleiterspeicherkarte und rechnerlesbares programm
DE60013518T2 (de) Versicherte Personalisierung von Chipkarten
DE60224937T2 (de) Verfahren und anordnung zum verknüpfen von verwandelten appletdateien
DE4234194A1 (de) System und verfahren zur speichersegmentierung fuer einen mikroprozessor
EP1449091B1 (de) Verfahren zum synchronisieren eines speichers mit dem hauptspeicher einer rechenanlage
DE10218795A1 (de) Verfahren zum Herstellen eines elektronischen Sicherheitsmoduls
EP0461456B1 (de) Datensichereitssystem für eine EDV-Einrichtung
DE19932149A1 (de) System zur Ausführung von Transaktionen
DE10218835B4 (de) Verfahren zum Herstellen einer Chipkarte und Chipkarte
DE102004011488B4 (de) Schutz von Software gegen Angriffe
WO1998041880A2 (de) Integrierte schaltung und verfahren zum testen der integrierten schaltung
EP1559111A1 (de) Verfahren zum betreiben einer speicheranordnung
EP1927870B1 (de) Tragbarer Datenträger

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: PANASONIC CORP., KADOMA, OSAKA, JP