DE602004010458T2 - Halbleiterspeicherkarte und rechnerlesbares programm - Google Patents

Halbleiterspeicherkarte und rechnerlesbares programm Download PDF

Info

Publication number
DE602004010458T2
DE602004010458T2 DE602004010458T DE602004010458T DE602004010458T2 DE 602004010458 T2 DE602004010458 T2 DE 602004010458T2 DE 602004010458 T DE602004010458 T DE 602004010458T DE 602004010458 T DE602004010458 T DE 602004010458T DE 602004010458 T2 DE602004010458 T2 DE 602004010458T2
Authority
DE
Germany
Prior art keywords
file
memory card
event
semiconductor memory
unit
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
DE602004010458T
Other languages
English (en)
Other versions
DE602004010458D1 (de
Inventor
Futoshi Kadoma-shi NAKABE
Shinji Kadoma-shi KAWANO
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
Publication of DE602004010458D1 publication Critical patent/DE602004010458D1/de
Application granted granted Critical
Publication of DE602004010458T2 publication Critical patent/DE602004010458T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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
    • G06K19/073Special arrangements for circuits, e.g. for protecting identification code in memory
    • 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/77Protecting 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 in smart cards
    • 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
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2143Clearing memory, e.g. to prevent the data from being stolen

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Mathematical Physics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)
  • Saccharide Compounds (AREA)
  • Credit Cards Or The Like (AREA)

Description

  • TECHNISCHES GEBIET
  • Die vorliegende Erfindung betrifft eine Halbleiter-Speicherkarte, die Daten in Dateien speichern kann, und insbesondere betrifft die vorliegende Erfindung ein Verfahren zum Löschen von Dateien.
  • Hintergrund der Technik
  • Halbleiter-Speicherkarten, wie beispielsweise eine IC-Karte (Integrated-Circuit-Karte) und eine SD-Speicherkarte (Secure Digital Memory Card – Sichere digitale Speicherkarte) wurden versuchsweise in verschiedenen Industrien eingeführt, angefangen von den Massenmedien einschließlich den Rundfunk- und Verlagsindustrien bis zu finanziellen Einrichtungen sowie Regierungs- und lokal agierenden Organisationen. Die Halbleiter-Speicherkarten haben in diesen Industriezweigen aufgrund ihrer enormen Vorteile für Begeisterung gesorgt. In einer Halbleiter-Speicherkarte werden Daten in einer Schichtenstruktur verwaltet, die eine physikalische Schicht, eine Dateisystemschicht, und eine Anwendungsschicht aufweist. Dementsprechend kann ein Benutzer eine Datei auf einer Halbleiter-Speicherkarte erstellen und die erstellte Datei mit derselben Vorgehensweise wie die zum Löschen einer auf einem Computer gespeicherten Datei löschen.
  • Das Löschen einer Datei auf einer herkömmlichen Halbleiter-Speicherkarte umfasst lediglich das Überschreiben von Verwaltungsinformationen, die eine Dateizuordnungstabelle (FAT – file allocation table), die die Verbindungsbeziehungen zwischen Dateifragmenten und einem Dateieintrag anzeigt, enthalten. Der Grund dafür wird im Folgenden genannt. Wenn Verwaltungsinformationen für eine Datei überschrieben werden, gehen die Positionen der Fragmente, die ein Dateiobjekt auf einer Halbleiter-Speicherkarte bilden, verloren, und die Verbindungsbeziehungen zwischen den Fragmenten, die mit Unterbrechung auf einer Halbleiter-Speicherkarte positioniert sind, werden zerstört. Dadurch wird das Lesen der Dateien unmöglich.
  • Die Datenverwaltung durch ein Dateisystem auf einer herkömmlichen Halbleiter-Speicherkarte wird in der japanischen Offenlegungsschrift Nr. 2001-188701 , in dem USamerikanischen Patent Nr. 5.479.638 und in dem Japanischen Patent Nr. 3389186 beschrieben.
  • Das Dokument US 6507911 offenbart ein Speichersystem, bei dem in Reaktion auf einen Löschbefehl zusätzlich zum Markieren einer Datei als gelöschte Datei in einer Dateizuordnungstabelle die Datei auch physisch gelöscht wird, um die Wiederherstellung von Dateidaten zu verhindern.
  • In Übereinstimmung mit dem voranstehend beschriebenen Verfahren zum Löschen von Dateien werden eine Dateizuordnungstabelle FAT (file allocation table) und ein Dateieintrag überschrieben. Das Dateiobjekt einer gelöschten Datei sowie Fragmente, die das Dateiobjekt bilden, bleiben jedoch immer noch mit Unterbrechung auf einer Halbleiter-Speicherkarte vorhanden. Wenn solch eine gelöschte Datei Daten enthält, die sich auf Geldtransaktionen beziehen, besteht die Gefahr, dass Bankkontonummern und Bankkartennummern aus einzelnen Fragmenten ausgelesen werden.
  • Darüber hinaus kann ein Dritter eine gelöschte Datei wiederherstellen, indem die unterbrochenen Fragmente auf einer Halbleiter-Speicherkarte verfolgt werden, um die Inhalte der Datei zu erhalten, die hätten gelöscht werden müssen.
  • Es besteht jedoch ein Grund dafür, dass das Löschen von Dateien lediglich das Überschreiben von Verwaltungsinformationen, wie beispielsweise eine Dateizuordnungstabelle FAT und ein Dateieintrag umfasst. Der Grund besteht in der Verarbeitungszeit, die für das Überschreiben erforderlich ist. In Übereinstimmung mit einer versuchsweisen Berechnung dauert es 2 Millisekunden, um 512 Bates zu überschreiben, es dauert 4 Sekunden, um 1 Megabyte zu überschreiben, und es dauert 40 Sekunden, um 10 Megabytes zu überschreiben. Dies ist ein Anzeichen dafür, dass eine gewisse Zeit erforderlich ist, um einen vollständigen Löschvorgang durchzuführen, das heißt, um ein Dateiobjekt einer Datei so zu überschreiben, dass das Lesen der Datei absolut unmöglich wird. Darüber hinaus stellt ein solcher vollständiger Löschvorgang ein Problem dahingehend dar, dass Daten, die die Positionen von Fragmenten, die eine gelöschte Datei bilden, gespeichert werden sollten. Wenn Daten, die Positionen anzeigen, ebenso wie die Fragmente, in einem nicht flüchtigen Speicher gespeichert werden, kann ein Dritter die Positionen der Fragmente möglicherweise lesen, bevor ein vollständiger Löschvorgang abgeschlossen ist. Dementsprechend werden die Informationen über eine Datei, die gelöscht werden soll, nicht ausreichend geschützt, während ein vollständiger Löschvorgang durchgeführt wird.
  • Offenbarung der Erfindung
  • Es ist eine Aufgabe der vorliegenden Erfindung, eine Halbleiter-Speicherkarte bereitzustellen, die in der Lage ist, ein Dateiobjekt einer Datei, die gelöscht werden soll, von dem Zeitpunkt an, wenn das Löschen der Datei angewiesen wird, bis zu dem Zeitpunkt, wenn die Datei vollständig gelöscht ist, zu schützen.
  • Die Aufgabe kann durch eine Halbleiter-Speicherkarte erfüllt werden, die einen nicht flüchtigen Speicher, der eine Datei speichert, die durch ein Objekt und Verwaltungsinformationen gebildet wird, und ein manipulationsgeschütztes Modul, das eine Verarbeitungseinheit und einen internen Speicher enthält, umfasst. Die Verarbeitungseinheit enthält eine Löscheinheit, die so betrieben werden kann, dass sie, wenn ein Lösch-Ereignis für die Datei generiert wird, 1. eine Positionstabelle in dem internen Speicher in dem manipulationsgeschützten Modul erzeugt, und 2. die Verwaltungsinformationen überschreibt, wobei die Positionstabelle eine Position des Objektes anzeigt und von der Löscheinheit herangezogen wird, wenn die Löscheinheit das Objekt überschreibt.
  • Ein Dateiobjekt einer Datei wird unter Heranziehen einer Positionstabelle, die in einem Speicher in einem manipulationsgeschützten Modul gespeichert wird, überschrieben. Dementsprechend können die Informationen hinsichtlich der Fragmente ausreichend von dem Zeitpunkt an geschützt werden, zu dem ein Lösch-Ereignis generiert wird, bis zu dem Zeitpunkt, zu dem die Datei vollständig gelöscht wird.
  • Ein Dateiobjekt wird unter Heranziehen einer Positionstabelle in einer Leerlaufzeit, nachdem das Lösch-Ereignis generiert wird, überschrieben. Auf diese Weise wird ein Verarbeitungsaufwand des Überschreibens eines Dateiobjektes so aufgeteilt, dass der Vorgang in einer Vielzahl von Einheiten einer Leerlaufzeit durchgeführt wird. Aufgrund dieser Aufteilung ist die Halbleiter-Speicherkarte in der Lage, zu einem früheren Zeit- Punkt in einen Standby-Zustand zurückzukehren, wodurch das Überschreiben eines Dateiobjektes abgeschlossen werden kann, ohne dass ein Benutzer das Gefühl hat, dass das Löschen der Datei eine lange Zeit in Anspruch nimmt.
  • Zusätzlich dazu wird dem Überschreiben der Datei-Verwaltungsinformationen, wodurch die Verbindungsbeziehungen zwischen den Fragmenten, die eine Datei bilden, unterbrochen werden, Vorrang gegenüber dem Überschreiben eines Dateiobjektes eingeräumt. Da die Überschreibungsvorgänge in der voranstehend beschriebenen Reihenfolge durchgeführt werden, wird eine umgekehrte Analyse der Fragmente mit dem Fortschreiten der Zeit immer schwieriger.
  • Hierbei führt die Verarbeitungseinheit (1.) eine Operation durch, die einem Befehl entspricht, der durch eine Vorrichtung ausgegeben wird, mit der die Halbleiter-Speicherkarte verbunden ist, und (2.) enthält die Verarbeitungseinheit darüber hinaus eine Analyseeinheit, die so betrieben werden kann, dass sie den Befehl, der durch die Vorrichtung ausgegeben wird, analysiert und ein Ereignis generiert, das einem Ergebnis der Analyse entspricht. Darüber hinaus enthält die Löscheinheit eine Haupt-Löscheinheit, die so betrieben werden kann, dass sie, wenn das Lösch-Ereignis generiert wird, die Positionstabelle erzeugt und die Verwaltungsinformationen überschreibt, und eine Unter-Löscheinheit, die so betrieben werden kann, dass sie, wenn ein anderes Ereignis als das Lösch-Ereignis generiert wird, das Objekt unter Heranziehen der erzeugten Positionstabelle überschreibt.
  • Hierbei umfasst die Halbleiter-Speicherkarte darüber hinaus eine Zeitsteuereinheit, die so betrieben werden kann, dass sie beginnt, eine Zeit zu messen, wenn das Lösch-Ereignis generiert wird. Die Haupt-Löscheinheit überschreibt einen Teil des Objektes zusätzlich zu den Verwaltungsinformationen so lange, bis die Zeitsteuereinheit einen Timeout anweist, und die Unter-Löscheinheit überschreibt einen verbleibenden Teil des Objektes, der durch die Haupt-Löscheinheit nicht überschrieben worden ist. Auf diese Weise wird ein Überschreibungsvorgang in Reaktion auf eine Anweisung zum Löschen einer Datei so lange fortgesetzt, bis ein Timeout angewiesen wird. Wenn dementsprechend ein Timeout-Zeitraum auf Basis von beispielsweise einem Zeitraum angepasst wird, der für einen Überschreibungsvorgang für einen nicht flüchtigen Speicher erforderlich ist, kann eine Wartezeit für einen Benutzer optimiert werden.
  • Hierbei speichert der interne Speicher einen Verschlüsselungsschlüssel, mit dem das Objekt verschlüsselt worden ist, und wenn das Lösch-Ereignis generiert wird, überschreibt die Haupt-Löscheinheit den Verschlüsselungsschlüssel, bevor sie die Verwaltungsinformationen der Datei überschreibt. Dem Überschreiben des Verschlüsselungsschlüssels wird Vorrang gegenüber dem Überschreiben eines Dateiobjektes eingeräumt. Auf diese Weise wird es unmöglich, die Datei zu entschlüsseln. Da die Überschreibungsvorgänge in der voranstehend beschriebenen Reihenfolge durchgeführt werden, wird mit dem Fortschreiten der Zeit die umgekehrte Analyse der Fragmente immer schwieriger.
  • Hierbei wird die Halbleiter-Speicherkarte mit Hilfe von entweder einer Kontakt- oder kontaktlosen Stromversorgung von einer Vorrichtung betrieben, jedoch führt die Verarbeitungseinheit das Überschreiben nur dann durch, wenn die Halbleiter-Speicherkarte mit Hilfe der Kontakt-Stromversorgung von der Vorrichtung betrieben wird. Als Ergebnis wird während der kontaktlosen Stromversorgung das Überschreiben eines Dateiobjektes nicht durchgeführt. Dadurch kann eine stabile Betriebsweise erzielt werden.
  • Kurze Beschreibung der Zeichnungen
  • 1 illustriert eine Umgebung, in der eine SDeX-Speicherkarte 400 verwendet wird.
  • 2 zeigt eine interne Struktur einer Halbleiter-Speicherkarte in Übereinstimmung mit der vorliegenden Erfindung.
  • 3 zeigt eine Hardware-Struktur eines manipulationsgeschützten Moduls TRM 1 (tamper-resistant module), (das in 2 dargestellt ist).
  • 4 zeigt eine Software-Struktur eines Abschnittes, der durch einen Masken-ROM 6 und eine zentrale Rechnereinheit CPU 7 (die beide in 3 dargestellt sind) in dem TRM 1 gebildet ist.
  • 5 zeigt ein logisches Format eines externen Flash-Speichers 2 und eines internen elektrisch löschbaren programmieren Lesespeichers EEPROM 3 (beide in 3 dargestellt).
  • 6 zeigt eine interne Struktur eines erweiterten Bereiches für eine EC-Client-Anwendung 22, einen Authentifizierungs-Bereich 23, und einen Nicht-Authentifizierungs-Bereich 24 (dargestellt in 5).
  • 7 zeigt eine Struktur einer Partition.
  • 8a zeigt eine Struktur einer Doppel-Dateizuordnungstabelle FAT, 8b zeigt eine Struktur eines Eintrages eines Hauptinhaltsverzeichnisses, und 8c zeigt eine Struktur eines Benutzerbereiches.
  • 9 zeigt, dass eine Datei mit dem Namen EOB001.SE1 in fünf Fragmente in Übereinstimmung mit der Größe eines Clusters unterteilt wird, und dass die Fragmente jeweils in den Clustern 003, 004, 005, 00A und 00C gespeichert werden.
  • 10 zeigt Beispiele eines Eintrages eines Hauptinhaltsverzeichnisses und einer Dateizuordnungstabelle FAT für eine Datei mit dem Namen „EOB001.SE1", die unterteilt wird, um in einer Vielzahl von Clustern gespeichert zu werden.
  • 11 zeigt eine Struktur einer Anwendungsschnittstelle API (application interface) 10 (die in 4 dargestellt ist).
  • 12a zeigt, wie ein Schreibvorgang durch den Lese-/Schreib-Handler 14 an einer Datei durchgeführt wird, und 12b zeigt, wie ein Lesevorgang durch den Lese-/Schreib-Handler 14 an einer Datei durchgeführt wird.
  • 13 illustriert eine interne Struktur der Anwendungsschnittstelle API 10 mit einem Hauptaugenmerk auf den Charakteristiken eines Lösch-Handlers 16 (der in 11 dargestellt ist).
  • 14 zeigt ein Beispiel einer Löschoperations-Verwaltungstabelle.
  • 15 ist ein Ablaufplan, der eine Vorgehensweise eines Ereignisanalyse-Handlers 11 illustriert (dargestellt in 11).
  • 16 ist ein Ablaufplan, der eine Vorgehensweise eines Nicht-Befehls-Ausführungs-Handlers 12 (dargestellt in 11) illustriert.
  • 17 ist ein Ablaufplan, der eine Vorgehensweise des Lese-/Schreib-Handlers 14 illustriert.
  • 18 ist ein Ablaufplan, der eine Vorgehensweise eines Lösch-Handlers 16 (dargestellt in 11) illustriert.
  • 19 ist ein Ablaufplan, der eine Vorgehensweise einer Subroutine zum Löschen auf Null (Null-Clear-Subroutine) illustriert.
  • 20 illustriert einen Vorgang des Lösch-Handlers 16, wenn ein Lösch-Ereignis für eine Datei generiert wird, die wie in 10 beschrieben gespeichert ist.
  • 21 illustriert eine Überschreibungsoperation durch den Nicht-Befehls-Ausführungs-Handler 12 und den Lösch-Handler 16.
  • 22 zeigt ein Beispiel einer Löschoperations-Verwaltungstabelle, die sich auf eine zweite Ausführungsform bezieht.
  • 23 zeigt eine Vorgehensweise einer Subroutine zum Löschen auf Null, die sich auf die zweite Ausführungsform bezieht.
  • 24 ist ein Ablaufplan, der eine Vorgehensweise einer rückwärts gerichteten Operation des Löschens auf Null illustriert.
  • 25 zeigt eine Struktur eines Speichermoduls, das sich auf eine vierte Ausführungsform bezieht.
  • 26 vergleicht die Leistung eines Flash-Speichers mit der eines FeRAM.
  • 27 illustriert einen FeRAM, der häufig aktualisierte Daten, wie beispielsweise einen Dateieintrag, eine Dateizuordnungstabelle FAT, und eine Löschoperations-Verwaltungstabelle speichert.
  • 28 zeigt eine Struktur des Speichers 3 in dem TRM 1, der sich auf eine fünfte Ausführungsform bezieht.
  • Beste Art und Weise des Ausführens der Erfindung
  • Im Folgenden werden Ausführungsformen einer Halbleiter-Speicherkarte der vorliegenden Erfindung beschrieben. Eine Halbleiter-Speicherkarte, die sich auf eine erste Ausführungsform bezieht, ist eine SDeX-Speicherkarte, die ein eingebautes manipulationsgeschütztes Modul einer IC-Karte aufweist. Eine SDeX-Speicherkarte wird, ähnlich wie bei einer SD-Speicherkarte, als ein Speichermedium für eine tragbare SD-Vorrichtung verwendet und weist ein eingebautes manipulationsgeschütztes Modul einer IC-Karte auf. Zusätzlich dazu kann die SDeX-Speicherkarte 400, die sich auf die erste Ausführungsform bezieht (in 1) mit einer externen Vorrichtung sowohl im Kontakt- als auch im kontaktlosen Kommunikationsmodus kommunizieren.
  • Zuallererst wird beschrieben, wie die Halbleiter-Speicherkarte in Übereinstimmung mit der vorliegenden Erfindung (SDeX-Speicherkarte 400) verwendet wird. Die SDeX-Speicherkarte 400 wird mit einer tragbaren SD-Vorrichtung, wie beispielsweise Mobiltelefonen verbunden und wird in einer Umgebung verwendet, die in 1 dargestellt ist. 1 illustriert eine Umgebung, in der die SDeX-Speicherkarte 400 verwendet wird.
  • Die Umgebung, die in 1 dargestellt ist, enthält einen EC- (Electronic Commerce) Server 100, eine Karten-Lese-/Schreibeinrichtung 200, eine Funkbasisstation 210 und eine tragbare SD-Vorrichtung 300.
  • Der EC-Server 100 stellt über die Karten-Lese-/Schreibeinrichtung 200, die Funkbasisstation 210 und ein Netzwerk der SDeX-Speicherkarte 400 einen EC-Dienst zur Verfügung. Es werden mehrere EC-Anwendungsprogramme auf dem EC-Server 100 betrieben, und jedes der Anwendungsprogramme stellt der SDeX-Speicherkarte 400 einen einzigartigen EC-Dienst zur Verfügung. Die EC-Anwendungen, die auf dem EC-Server 100 laufen, sind Server-Anwendungen, und jede von ihnen stellt einen anderen EC-Dienst zur Verfügung. In 1 werden EC-Serveranwendungen für n Arten von EC-Dienstens kurz jeweils als S_APL1, 2, 3,... n ausgedrückt. Hierbei gibt es n Arten von Serveranwendungen. Der EC-Server 100 stellt einen EC-Dienst zur Verfügung, indem über das Netzwerk, die Karten-Lese-/Schreibeinrichtung 200 und die Funkbasisstation 210 ein EC-Befehl an die SDeX-Speicherkarte 400 ausgegeben wird.
  • Die Karten-Lese-/Schreibeinrichtung 200 ist beispielsweise eine Vorrichtung, die in Geldausgabeautomaten von Kreditkartenunternehmen und Finanzeinrichtungen oder in Registrierkassen in Geschäften enthalten ist. Die Karten-Lese-/Schreibeinrichtung 200 führt der SDeX-Speicherkarte 400 Strom zu und führt eine kontaktlose Eingabe/Ausgabe mit der SDeX-Speicherkarte 400 durch. Über die Karten-Lese-/Schreibeinrichtung 200 empfängt die SDeX-Speicherkarte 400 die EC-Dienste, die durch den EC-Server bereitgestellt werden.
  • Die Funk-Basisstation 210 ist auf Gebäuden und Telegraphenmasten angeordnet. Die Funkbasisstation 210 führt eine Dateneingabe-/Datenausgabe mit der tragbaren SD-Vorrichtung 300 eines Mobiltelefontyps über die Luft durch. Die Funkbasisstation 210 ist mit dem Netzwerk verbunden. Über die Funkbasisstation 210 empfängt die tragbare SD-Vorrichtung 300 auch EC-Dienste, die durch den EC-Server 100 bereitgestellt werden.
  • Die tragbare SD-Vorrichtung 300 erlangt Zugriff auf die SDeX-Speicherkarte 400 auf eine solche Weise, dass die SDeX-Speicherkarte 400 mit der tragbaren SD-Vorrichtung 300 verbunden ist. Browsersoftware oder Ähnliches wird in der tragbaren SD-Vorrichtung 300 so installiert, dass ein Benutzer über eine Benutzerschnittstelle des Browsers Zugriff auf ein Dateisystem (im Folgenden als ein FS [file system] bezeichnet) der SDeX-Speicherkarte 400 erlangt. Solch ein Zugriff auf ein Dateisystem wird auf solch eine Weise durchgeführt, dass die tragbare SD-Vorrichtung 300 einen SD-Befehl, der durch eine SD-Speicherkarte definiert wird, an die SDeX-Speicherkarte 400 ausgibt und eine Antwort auf den Befehl von der SDeX-Speicherkarte 400 empfängt. Wenn die tragbare SD-Vorrichtung 300 die SDeX-Speicherkarte bootet, wird die SDeX-Speicherkarte 400 so in der tragbaren SD-Vorrichtung 300 integriert, dass sie als eine IC-Karte funktioniert. Hierbei wird eine Wendelantenne in der Rückfläche der tragbaren SD-Vorrichtung 300 eingesetzt. Wenn die tragbare SD-Vorrichtung 300 als eine IC-Karte funktioniert, führt die Wendelantenne Strom von der Karten-Lese-/Schreibeinrichtung 200 zu der SDeX-Speicherkarte 400 zu. Zusätzlich dazu tauscht die tragbare SD-Vorrichtung 300 Befehle/Antworten zu/von der SDeX-Speicherkarte 400 und Befehle/Antworten von/zu dem EC-Server 100 aus. Genauer gesagt bedeutet dies, dass die tragbare SD-Vorrichtung 300 einen EC-Befehl von dem EC-Server 100 einbindet, um einen erweiterten SD-Befehl zu der SDeX-Speicherkarte 400 zu generieren. Darüber hinaus erhält die tragbare SD-Vorrichtung 300 eine EC-Antwort von einer SD-Antwort von der SDeX-Speicherkarte 400 und gibt die EC-Antwort an den EC-Server 100 aus. Wenn die tragbare SD-Vorrichtung 300 die SDeX-Speicherkarte 400 so bootet, dass sie als eine IC-Karte fungiert, befinden sie sich in einem „EC-Modus". Wenn die tragbare SD-Vorrichtung 300 die SDeX-Speicherkarte 400 als ein Speichermedium verwendet, befinden sie sich im „SD-Modus".
  • Wenn sich die SDeX-Speicherkarte 400 in dem SD-Modus befindet, wird sie als eine SD-Speicherkarte verwendet. In dem SD-Modus ist die tragbare SD-Vorrichtung 300 die Host-Vorrichtung der SDeX-Speicherkarte 400. Die SDeX-Speicherkarte 400 wird zum Speichern von Audio- und Videodaten, die in diesem Fall von den Verteilungsservern auf die tragbare SD-Vorrichtung 300 heruntergeladen werden, verwendet. Dementsprechend kann die Host-Vorrichtung die Audio- und Videodaten abspielen, die auf der SDeX-Speicherkarte 400 gespeichert sind.
  • In dem EC-Modus wird die SDeX-Speicherkarte 400 als eine IC-Karte verwendet. Die SDeX-Speicherkarte 400 wird in dem EC-Modus auch mit der tragbaren SD-Vorrichtung verbunden. Die Host-Vorrichtung der SDeX-Speicherkarte 400 ist jedoch nicht die tragbare SD-Vorrichtung 300, sondern der EC-Server 100 in dem Netzwerk. Die SDeX-Speicherkarte 400 kommuniziert mit Hilfe der tragbaren SD-Vorrichtung 300, mit der die SDeX-Speicherkarte 400 zusammen mit der Karten-Lese-/Schreibeinrichtung 200 und der Funkbasisstation 210 verbunden ist, mit dem EC-Server 100. Auf diese Weise werden Geldtransaktionen zwischen der SDeX-Speicherkarte 400 und dem EC-Server 100 ausgeführt.
  • Da die SDeX-Speicherkarte 400, die sich auf die vorliegende Ausführungsform bezieht, eine Funktion als IC-Karte hat, gewährt sie, zusätzlich zu der Funktion des Speicherns von übertragenen Audio- und Videodaten eine größere Benutzerfreundlichkeit für den Benutzer.
  • Hierbei erlangt in Übereinstimmung mit 1 in dem EC-Modus die SDeX-Speicherkarte 400 Zugriff auf den EC-Server 100 über die Karten-/Lese-/Schreibeinrichtung 200. Alternativ dazu kann die SDeX-Speicherkarte 400 auch auf solch eine Weise Zugriff auf den EC-Server 100 erlangen, dass die tragbare SD-Vorrichtung 300 über die Funkstation 210 und über das Netzwerk Zugriff auf den EC-Server 100 erlangt.
  • Der folgende Teil beschreibt, wie die Halbleiter-Speicherkarte in Übereinstimmung mit der vorliegenden Erfindung hergestellt wird. Die Halbleiter-Speicherkarte in Übereinstimmung mit der vorliegenden Erfindung besitzt die interne Struktur, die in den 2 und 3 dargestellt ist und kann industriell hergestellt werden.
  • Wie dies in 2 dargestellt ist, sind in Übereinstimmung mit der vorliegenden Erfindung ein Steckverbinder, ein manipulationsgeschützter Modulchip (TRM – tamper resistant module) 1 und ein Flash-Speicher-Chip 2 mit einer Kapazität von genauso viel wie 256 Megabytes auf der Halbleiter-Speicherkarte montiert.
  • Es gibt mehrere Definitionen, wie vor Manipulation geschützt werden kann. Die allgemeinen Definitionen eines Schutzes vor Manipulation sind jedoch anscheinend die folgenden:
    • (1) Selbst wenn ein TRM- (manipulationsgeschützter) Chip physisch geöffnet wird, kann seine interne Struktur nicht erfasst werden.
    • (2) Selbst wenn eine elektromagnetische Welle auf einen TRM-Chip gestrahlt wird, kann seine interne Struktur nicht erfasst werden.
    • (3) Es besteht eine nicht lineare Beziehung zwischen der Länge der Dateneingabe in einen TRM-Chip und einer Verarbeitungszeit für die Daten.
    • (4) Ausgabedaten werden nicht über Umkehroperationen auf Basis eines Fehlers der Eingabedaten erhalten.
  • Aufgrund dieser vier Charakteristiken ist das manipulationsgeschützte Modul (TRM) 1 gegenüber verschiedenen Arten von Umkehroperationen resistent. Der folgende Teil beschreibt Hardwareelemente in dem TRM 1.
  • 3 zeigt die Hardwarestruktur in dem TRM 1. Wie dies in 3 dargestellt ist, sind ein interner elektrisch löschbarer programmierbarer Lesespeicher EEPROM 3, eine externe Speichersteuereinheit 4, ein Host-Schnittstellenmodul (HIM – host interface module) 5, ein Masken-ROM 6, eine zentrale Rechnereinheit CPU 7 auf dem TRM 1 montiert, um ein Mikrocomputersystem zu bilden.
  • Der interne EEPROM 3 ist ein lesbarer und beschreibbarer interner Speicher. Das Mikrocomputersystem, das als das TRM 1 montiert ist, weist hohe Herstellungskosten pro Einheitsbereich auf. Der interne EEPROM 3 in dem TRM 1 hat eine Speicherkapazität von 32 Kilobytes. Der Flash-Speicher, der in 2 dargestellt ist, wird im folgenden Verlauf der Beschreibung mitunter als externer Speicher bezeichnet, um ihn von dem internen EEPROM 3 zu unterscheiden.
  • Die externe Speichersteuereinheit 4 ist eine Schaltung, die ausschließlich für den Zugriff auf den externen Flash-Speicher 2 verwendet wird. Der Zugriff auf den externen Flash-Speicher 2 wird auf Basis eines SD-Befehls, der durch die tragbare SD-Vorrichtung 300 ausgegeben wird, durchgeführt.
  • Das Host-Schnittstellenmodul HIM 5 klassifiziert die von der tragbaren SD-Vorrichtung 300 ausgegebenen SD-Befehle in Bezug auf ihre Befehlsnummern. Die SD-Befehlsnummern werden von 1 bis m durchnummeriert, oder erhalten erweiterte Nummern von (m + 1) oder mehr. Wenn die SD-Befehlsnummer eines SD-Befehls innerhalb des Bereiches von 1 und m fällt, gibt das Host-Schnittstellenmodul HIM 5 den SD-Befehl an die externe Speichersteuereinheit 4 aus. Wenn die SD-Befehlsnummer eines SD-Befehls (m + 1) oder mehr ist, erhält das Host-Schnittstellenmodul HIM 5 einen EC-Befehl, der in einen erweiterten SD-Befehl eingebunden war und gibt den EC-Befehl an die zentrale Rechnereinheit CPU 7 aus.
  • Der Masken-ROM 6 speichert vorab eine virtuelle Java-Maschine und ein Anwendungsprogramm. Wenn die SDeX-Speicherkarte 400 die tragbare SD-Vorrichtung 300 bootet, beginnt das Booten an einer vorgegebenen Adresse in dem Masken-ROM 6. Auf diese Weise wird die tragbare SD-Vorrichtung 300 so aktiviert, dass sie sich im EC-Modus befindet.
  • Die CPU 7 führt ein Programm aus, das auf dem Masken-ROM 6 gespeichert ist.
  • 4 zeigt eine Softwarestruktur eines Abschnittes, der durch den Masken-ROM 6 und die CPU 7 in dem manipulationsgeschützten Modul TRM 1 gebildet ist (in 3 dargestellt). Ein Abschnitt, der durch eine gepunktete Linie wk1 umschrieben ist, ist ein Modul, das einer IC-Karte entspricht. Der Rest des TRM 1 ist ein Modul, das einer SD-Speicherkarte entspricht.
  • Der Abschnitt des TRM 1, der einer SD-Speicherkarte entspricht, enthält die externe Speichersteuereinheit 4 und das Host-Schnittstellenmodul HIM 5. Das Host-Schnittstellenmodul HIM 5 besitzt nicht nur die Funktion als SD-Speicherkarte sondern auch die Funktion als ein erster Kontakt zwischen dem Modul, das der SD-Speicherkarte entspricht, und dem Modul, das der IC-Karte entspricht.
  • Das mit einer IC-Karte kompatible Modul weist eine Schichtenstruktur auf. In der Schichtenstruktur befindet sich der interne EEPROM 3 in der unteren Schicht (physikalische Schicht). Eine Anwendungsschnittstelle (API) 10 befindet sich in einer Schicht direkt über der Schicht, in der sich der interne EEPROM 3 befindet. Die virtuelle Java-Maschine 9 befindet sich in einer Schicht direkt über der Schicht, in der die Anwendungsschnittstelle (API) 10 vorhanden ist. Eine EC-Client-Anwendung 8 ist in der oberen Schicht angeordnet. Hierbei sollte beachtet werden, dass die externe Speichersteuereinheit 4 in dem Abschnitt, der mit der SD-Speicherkarte kompatibel ist, in einer physikalischen Schicht auf ähnliche Weise wie der interne EEPROM 3 angeordnet ist.
  • Der folgende Tei beschreibt die Softwarestruktur, die in 4 dargestellt ist (die EC-Client-Anwendung 8, die virtuelle Java-Maschine 9 und die Anwendungsschnittstelle API 10).
  • Die EC-Client-Anwendung 8 ist eine Art einer EC-Anwendung, die in Java geschrieben ist, und sie erlangt Zugriff auf den EC-Server 100 auf Basis einer Anweisung durch einen Benutzer. Da eine Vielzahl von Arten von EC-Serveranwendungen, die jeweils unterschiedlichen EC-Diensten entsprechen, auf dem EC-Server 100 arbeiten, arbeitet eine Vielzahl von Arten von EC-Client-Anwendungen, die jeweils unterschiedlichen EC-Diensten entsprechen, auf der SDeX-Speicherkarte 400. In 4 wird dargestellt, dass die EC-Client-Anwendungen C_APL1, 2, 3 ... n jeweils den EC-Serveranwendungen auf dem EC-Server 100 (S_APL 1, 2, 3 ... n) entsprechen. Die EC-Client-Anwendung 8 sendet/empfängt Befehle an/von die/den EC-Serveranwendungen auf dem EC-Server 100 über die Karten-Lese-/Schreibeinrichtung 200, die Funkbasisstation 210 und das Netzwerk, um verschiedene Arten von EC-Diensten zu erhalten. Wenn ein EC-Befehl, der von einer EC-Serveranwendung empfangen wird, ein Befehl zum Schreiben von Daten ist, gibt die EC-Client-Anwendung 8 den EC-Befehl über die virtuelle Java-Maschine 9 an die Anwendungsschnittstelle API 10 aus.
  • Zusätzlich dazu erlangt die EC-Client-Anwendung 8 Zugriff auf den externen Flash-Speicher 2 und den internen EEPROM 3 auf Basis einer Anweisung durch einen Benutzer in dem EC-Modus. Der Zugriff umfasst einen Dateizugriff, wie beispielsweise das Erstellen einer Datei und das Durchführen von Lese- und Schreiboperationen an der Datei.
  • Die virtuelle Java-Maschine 9 (JavaCard VM (eingetragenes Warenzeichen)) wandelt Java-Sprache, in der die EC-Client-Anwendung 8 geschrieben ist, in native Codes der zentralen Rechnereinheit CPU 7 um, und veranlasst die CPU 7 dazu, die EC-Client-Anwendung 8 auszuführen.
  • Die Anwendungsschnittstelle API 10 liest von dem externen Flash-Speicher 2 und dem internen EEPROM 3 und schreibt auf den externen Flash-Speicher 2 und auf den internen EEPROM 3 auf Basis eines Befehls, der durch die EC-Client-Anwendung 8 ausgegeben wird. In dem voranstehenden Teil der Beschreibung wurde die Softwarestruktur der SDeX-Speicherkarte 400 beschrieben.
  • Im folgenden Teil wird das logische Format des externen Flash-Speichers 2 und des internen EEPROM 3 beschrieben. 5 zeigt das logische Format des externen Flash-Speichers 2 und des internen EEPROM 3. Der externe Flash-Speicher 2 und der interne EEPROM 3 haben zwei Speicherbereiche, das heißt, sm 1 und sm 2. Auf den Speicherbereich sm 1 kann von der zentralen Rechnereinheit CPU 7 in dem TRM 1 zugegriffen werden, und der Speicherbereich sm 1 kann aus einem Bereich für die EC-Client-Anwendung 21 und einem erweiterten Bereich für die EC-Client-Anwendung 22 gebildet sein. Auf den Speicherbereich sm 2 kann von der tragbaren SD-Vorrichtung 300 aus zugegriffen werden, ohne die CPU 7 in dem TRM 1 durchlaufen zu müssen. Der Speicherbereich sm 2 ist durch einen Authentifizierungs-Bereich 23 und einen Nicht-Authentifizierungs-Bereich 24 gebildet. Der Authentifizierungs-Bereich 23 und ein Nicht-Authentifizierungs-Bereich 24 sind Speicherbereiche einer SD-Speicherkarte, und sie werden in dem Japanischen Patent Nr. 3389186 erklärt.
  • 6 zeigt die Struktur des erweiterten Bereichs für die EC-Client-Anwendung 22, den Authentifizierungs-Bereich 23, den Nicht-Authentifizierungs-Bereich 24, die eine Dateisystemstruktur in Übereinstimmung mit ISO/IEC 9293 aufweisen. Die Dateisystemstruktur in Übereinstimmung mit ISO/IEC 9293 dient lediglich als ein Beispiel und wurde lediglich zum Zwecke eines leichteren Verständnisses ausgewählt. Der erweiterte Bereich für die EC-Client-Anwendung 22, der Authentifizierungsbereich 23 und der Nicht-Authentifizierungsbereich 24 können auch eine andere Dateisystemstruktur, wie beispielsweise das Universal Disk Format (UDF) aufweisen. Allgemein formuliert, können eine Dateisystemstruktur, bei der eine Länge eines Fragmentes veränderbar ist und eine Anfangsadresse und eine Datenlänge in Eintragsinformationen angezeigt werden, verwendet werden.
  • Der erweiterte Bereich für die EC-Client-Anwendung 22 ist durch einen Bereich 22a auf dem internen EEPROM 3 und einem sicheren Flash-Bereich 22b auf dem externen Flash-Speicher 2 gebildet. Der sichere Flash-Bereich 22b hat 1, 2, 3 ... n Partitionen, das heißt, Dateisystembereiche. Im Gegensatz dazu enthält der Bereich 22a in dem internen EEPROM 3 ein Master Boot Record und Bezugstabellen für die Partitionen (Partitions-Tabellen 1, 2, 3 ... n).
  • Die Partitionen in dem erweiterten Bereich für die Client-Anwendung 22, der Authentifizierungs-Bereich 23 und der Nicht-Authentifizierungs-Bereich 24 besitzen dieselbe interne Struktur. 7 zeigt solch eine Struktur einer Partition.
  • Eine Partition enthält einen Partition-Bootsektor, eine doppelte Dateizuordnungstabelle (FAT), einen Hauptinhaltsverzeichnis-Eintrag und einen Benutzerbereich.
  • Der Partition-Bootsektor ist eine Tabelle, die Informationen hinsichtlich der Partition anzeigt.
  • Die doppelte Dateizuordnungstabelle FAT enthält zwei Dateizuordnungstabellen FAT in Übereinstimmung mit ISO/IEC 9293. Jede Dateizuordnungstabelle enthält eine Vielzahl von FAT-Einträgen in einer Eins-zu-Eins-Entsprechung mit Clustern. Jeder FAT-Eintrag zeigt an, ob ein entsprechendes Cluster verwendet wird oder nicht. Wenn ein entsprechendes Cluster nicht verwendet wird, wird der Wert eines FAT-Eintrages auf „0" eingestellt. Wenn ein entsprechendes Cluster verwendet wird, wird der Wert eines FAT-Eintrages auf den Wert einer Cluster-Nummer eingestellt, die die Verbindungsbeziehungen zwischen den Clustern anzeigt, das heißt, ein nächstes Cluster, das nach dem entsprechenden Cluster zu lesen ist. Eine gepunktete Linie ff1 in 8A zeigt eine Vielzahl von FAT-Einträgen 002, 003, 004, 005 ..., die in einer FAT enthalten sind, an. Die Nummer, die einem jeden FAT-Eintrag zugewiesen wird (002, 003, 004, 005 ...) zeigt ein entsprechendes Cluster an, das heißt, eine Cluster-Nummer eines Clusters, das einem FAT-Eintrag entspricht.
  • Der Hauptinhaltsverzeichnis-Eintrag enthält eine Vielzahl von Dateieinträgen in einem Hauptinhaltsverzeichnis, von denen jedes einer Datei entspricht. Jeder Dateieintrag enthält Einträge wie „FILENAME" („DATEINAME"), der einen Namen einer Datei anzeigt, „FILE EXTENSION" („DATEIERWEITERUNG"), der eine Dateierweiterung der Datei anzeigt, „FIRST CLUSTER NUMBER" („ERSTE CLUSTER-NUMMER"), der ein Cluster anzeigt, das einen Anfang der Datei speichert, „FILE ATTRIBUTE" („DATEIEIGEN-SCHAFT"), der eine Eigenschaft der Datei anzeigt, „TIME OF STORING” „ZEITPUNKT DES SPEICHERNS"), der einen Zeitpunkt anzeigt, zu dem die Datei gespeichert wird, „DATE OF STORING" („DATUM DES SPEICHERNS"), der ein Datum anzeigt, an dem die Datei gespeichert wird, „FILE LENGTH" („DATEILÄNGE"), der die Datenlänge der Datei anzeigt.
  • In dem Benutzerbereich wird eine Datei gespeichert, und die kleinste Einheit ist ein Cluster. Eine gepunktete Linie ff2 in 8c zeigt eine Vielzahl von Clustern 002, 003, 004, 005, ... in dem Benutzerbereich an. Die Nummern in 8c (002, 003, 004, 005, 006, 007, 008, ...) sind dreistellige hexadezimale Cluster-Nummern, die den Zweck verfolgen, ein jedes Cluster zu identifizieren. Da der Zugriff auf den Datenbereich in Einheiten eines Clusters als kleinste Einheit durchgeführt wird, wird eine Position in dem Datenbereich durch die Cluster-Nummern angezeigt.
  • Hierbei wird im folgenden Teil beschrieben, wie eine Datei mit dem Namen EOB001.SE1 ist einem Hauptinhaltsverzeichnis gespeichert wird, das heißt, es wird ein exemplarisches Verfahren zum Speichern einer Datei in Bezug auf 9 beschrieben. Hierbei ist die Bezeichnung „EOB" von „EOB001.SE1" eine Kurzform für ein EC-Objekt, und die Bezeichnung „SE" ist eine Erweiterung, die nach „Secure EC" (sichere EC) benannt ist. Da, wie dies voranstehend erwähnt worden ist, die kleinste Einheit, auf die in dem Datenbereich zugegriffen werden kann, ein Cluster ist, muss die Datei EOB001.SE1 in dem Datenbereich in der kleinsten Einheit eines Clusters gespeichert werden. Die Datei EOB001.SE1 wird zuerst in Fragmente unterteilt, die jeweils eine Größe eines Clusters aufweisen, und jedes Fragment wird in ein Cluster geschrieben. 9 zeigt, dass die Datei EOB001.SE1 in fünf Fragmente in Übereinstimmung mit einer Clustergröße unterteilt wird, und dass die Fragmente jeweils in den Clustern 003, 004, 005, 00A und 00C gespeichert werden.
  • Wenn die Datei EOB001.SE1 in Fragmente unterteilt wird, wie dies voranstehend beschrieben wurde, müssen ein Verzeichniseintrag und eine Dateizuordnungstabelle FAT so eingestellt werden, wie dies in 10 dargestellt ist.
  • 10 zeigt als ein Beispiel einen Verzeichniseintrag und eine Dateizuordnungstabelle, wenn die Datei EOB001.SE1 separat in einer Vielzahl von Clustern gespeichert wird. In Übereinstimmung mit 10 zeigt, da ein Anfang der Datei EOB001.SE1 in einem Cluster 003 gespeichert wird, der Eintrag „FIRST CLUSTER NUMBER" („ERSTE CLUSTER-NUMMER") in einem Hauptinhaltsverzeichnis die Bezeichnung 003 an, das heißt, die Cluster-Nummer des Clusters, das den Anfang speichert. Anhand von 10 kann gesehen werden, dass zwei aufeinanderfolgende Fragmente der Datei EOB001.SE1 jeweils in den Clustern 004 und 005 gespeichert werden. Das Cluster 003, das den Anfang der Datei EOB001.SE1 speichert, entspricht einem FAT-Eintrag 003 (004). Hierbei zeigt der FAT-Eintrag 003 die Bezeichnung 004 an, die das Cluster 004, das den sich dem Anfang anschließenden Bereich speichert, an. Zusätzlich dazu entsprechen die Cluster 004 und 005, die die zwei Fragmente, die auf den Anfang folgen, speichern, den FAT-Einträgen 004(005) und 005(00A). Diese FAT-Einträge zeigen 005 und 00A an, die die Cluster 005 und 00A, die die sich anschließenden Fragmente speichern, anzeigen.
  • Wenn Cluster-Nummern in FAT-Einträgen in Übereinstimmung mit den Pfeilen fk1, fk2, fk3, fk4 und fk5 verfolgt werden, können sämtliche der Fragmente, die die Datei EOB001.SE1 bilden, gelesen werden. Anhand der voranstehenden Beschreibung kann gesehen werden, dass die kleinste Einheit, auf die durch den Benutzerbereich der SDeX-Speicherkarte 400 zugegriffen werden kann, ein Cluster ist, und dass Cluster FAT-Einträgen in einer Eins-zu-Eins-Entsprechung entsprechen. Ein FAT-Eintrag, der einem Cluster entspricht, das ein Ende einer EOB-Datei speichert (Cluster 00C in 9) zeigt die Bezeichnung „FFF" an, die anzeigt, dass ein entsprechendes Cluster das letzte Fragment der Datei speichert.
  • Der folgende Teil beschreibt die Struktur der Anwendungsschnittstelle API 10. Hierbei ist der Begriff „Ereignis" ein generischer Begriff, der eine Eingabe in die Anwendungsschnittstelle API 10, beispielsweise einen EC-Befehl, das Auftreten einer Hardwareunterbrechung und die Eingabe von Kommunikationsdaten repräsentiert. Die Anwendungsschnittstelle API 10 ist durch Programme gebildet, die in Reaktion auf ein Ereignis, das innerhalb und außerhalb der API 10 auftritt, startet. Solch ein Programm wird als ein „Ereignis-Handler" bezeichnet und ist in 11 dargestellt, die die Struktur der Anwendungsschnittstelle API 10 zeigt. Wie dies in 11 dargestellt ist, enthält die Anwendungsschnittstelle API 10 Ereignis-Handler, wie beispielsweise einen Ereignisanalyse-Handler 11, einen Nicht-Befehls-Ausführungs-Handler 12, einen Zeitsteuereinheit-Handler 13, einen Lese-/Schreib-Handler 14, eine Verschlüsselungsschlüssel-Tabelle 15 und einen Lösch-Handler 16.
  • Der Ereignisanalyse-Handler 11 analysiert Ereignisse, die innerhalb und außerhalb der Anwendungsschnittstelle API 10 auftreten, und generiert ein API-internes Ereignis in Übereinstimmung mit dem Ergebnis der Analyse. Eine der häufigsten Ereignisse, die außerhalb der Anwendungsschnittstelle API 10 auftreten, ist ein EC-Befehl, der durch die EC-Client-Anwendung 8 ausgegeben wird. Der Ereignisanalyse-Handler 11 ana lysiert die Inhalte von EC-Befehlen. Wenn ein EC-Befehl Lese- und Schreiboperationen an einer Datei anzeigt, erzeugt der Ereignisanalyse-Handler 11 interne Ereignisse eines Datei-Lese-/Schreibereignisses und ein Befehlsstart-Ereignis. Wenn ein EC-Befehl ein Löschen einer Datei einzeigt, erzeugt der Ereignisanalyse-Handler 11 interne Ereignisse eines Datei-Löschereignisses und ein Befehlsstart-Ereignis. Die Generierung dieser internen Ereignisse veranlasst jeweils einen Ereignis-Handler für Lese- und Schreiboperationen an einer Datei oder einen Ereignis-Handler zum Löschen einer Datei dazu, zu arbeiten.
  • Die API-internen Ereignisse umfassen ein Ereignis, das anzeigt, dass eine Vorgehensweise durch einen Ereignis-Handler abgeschlossen worden ist (ein Abschluss-Ereignis). Wenn ein Ereignis-Handler, der einen EC-Befehl ausführt, ein Abschluss-Ereignis generiert, gibt der Ereignisanalyse-Handler 11 eine EC-Antwort an die EC-Client-Anwendung 8 aus, die den EC-Befehl ausgegeben hat.
  • Der Nicht-Befehls-Ausführungs-Handler 12 arbeitet dann, wenn keiner der anderen Ereignis-Handler in der Anwendungsschnittstelle API 10 einen Befehl ausführt. Der Antriebszeitraum für den Nicht-Befehls-Ausführungs-Handler 12 und die Antriebszeiträume für die anderen Ereignis-Handler, die EC-Befehle ausführen, schließen sich gegenseitig aus. Dies bedeutet, dass der Nicht-Befehls-Ausführungs-Handler 12 dann arbeitet, wenn kein anderer Ereignis-Handler arbeitet.
  • Der Zeitsteuereinheit-Handler 13 startet das Messen einer Zeit, wenn ein Befehlsstart-Ereignis generiert wird und weist ein Timeout an, wenn die gemessene Zeit einem vorgegebenen Zeitraum entspricht. Der Ereignisanalyse-Handler 11 überwacht, ob der Zeitsteuereinheit-Handler 13 ein Timeout anweist, um in der Lage zu sein, eine lange Operation zwangsweise zu beenden. Solch ein zwangsweises Anhalten wird durch ein Anhalte-Ereignis durch den Ereignisanalyse-Handler 11 erzielt.
  • Der Lese-/Schreib-Handler 14 liest aus/schreibt in einer/eine Datei in dem externen Flash-Speicher 2 und in dem internen EEPROM 3, wenn ein Lese-/Schreib-Ereignis generiert wird. 12a zeigt, wie eine Schreiboperation in eine Datei durch den Lese-/Schreib-Handler 14 durchgeführt wird.
  • Eine Schreiboperation in eine Datei wird auf die folgende Weise durchgeführt. Der Lese-/Schreib-Handler 14 empfängt den Namen einer Datei, in die Daten geschrieben werden sollen und die Daten, die geschrieben werden sollen, von der EC-Client-Anwendung 8 (C_APL 1, 2, 3 ... n) (siehe 12a(1) und (2)). Zusätzlich dazu wird ein Verschlüsselungsschlüssel, der der Datei zugewiesen wird, in die Daten geschrieben werden sollen, durch den Lese-/Schreib-Handler 14 von der Verschlüsselungsschlüssel-Tabelle 15 erhalten (3). Anschließend werden die Daten, die von der EC-Client-Anwendung 8 (C_APL 1, 2, 3 ... n) empfangen werden, mit dem Verschlüsselungsschlüssel, der von der Verschlüsselungsschlüssel-Tabelle 15 erhalten wird (4), so verschlüsselt, dass sie in die Datei geschrieben werden können (5). 12b zeigt, wie eine Leseoperation in eine Datei durch den Lese-/Schreib-Handler 14 durchgeführt wird.
  • Eine Leseoperation in eine Datei wird auf die folgende Weise durchgeführt. Der Lese-/Schreib-Handler 14 empfängt den Namen einer Datei, die von der EC-Client-Anwendung 8 (C_APL 1, 2, 3 ... n) gelesen werden soll. Nachdem die verschlüsselten Daten von dem externen Flash-Speicher 2 gelesen sind (12b(1)), wird ein Verschlüsselungsschlüssel, der der zu lesenden Datei zugewiesen ist, von der Verschlüsselungsschlüssel-Tabelle 15 erhalten (2). Anschließend werden die gelesenen Daten mit dem erhaltenen Verschlüsselungsschlüssel entschlüsselt (3), so dass sie zu der EC-Client-Anwendung 8 (C_APL 1, 2, 3 ... n) weitergeleitet werden können ((4) und (5)).
  • Die Verschlüsselungsschlüsseltabelle 15 zeigt die Eins-zu-Eins-Entsprechung zwischen den Verschlüsselungsschlüsseln für Dateien und Dateinamen an. Ein Verschlüsslungsschlüssel wird durch den Lese-/Schreib-Handler 14 generiert und in der Verschlüsselungsschlüssel-Tabelle 15 registriert, wenn die EC-Client-Anwendung 8 eine Datei erstellt. Registrierte Verschlüsselungsschlüssel in der Verschlüsselungsschlüssel-Tabelle 15 werden herangezogen, wenn eine Datei geöffnet wird und Lese- und Schreiboperationen an einer Datei durchgeführt werden.
  • Der Lösch-Handler 16 arbeitet dann, wenn ein Lösch-Ereignis generiert wird. Wenn ein Lösch-Ereignis generiert wird, werden ein Dateieintrag, eine Dateizuordnungstabelle FAT und ein Dateiobjekt, die eine Datei bilden, durch den Lösch-Handler 16 mit Null-Codes überschrieben, nachdem eine Löschoperations-Verwaltungstabelle erstellt wird.
  • Ein Löschen einer Datei in der vorliegenden Ausführungsform zeigt sowohl das Überschreiben eines Verschlüsselungsschlüssels, eines Dateieintrages und einer Dateizuordnungstabelle FAT für eine Datei als auch das Überschreiben für ein Dateiobjekt der Datei an. Hierbei zeigt das Überschreiben das Überschreiben mit Null-Codes (zum Löschen auf Null) oder auf eine spezielle Weise an. Der Lösch-Handler 16 räumt dem vorherigen Überschreiben Vorrang ein. Da das letztere Überschreiben eine enorme Verarbeitungszeit erfordert, kann es durch andere Ereignis-Handler durchgeführt werden. Jedoch wird in Übereinstimmung mit der vorliegenden Erfindung das Überschreiben eines Dateiobjektes für eine Datei, das eine enorme Verarbeitungszeit erfordert, vertraulich und separat in einer Vielzahl von Leerlaufzeiten durchgeführt.
  • 13 zeigt die interne Struktur der Anwendungsschnittstelle API 10 mit einem Hauptaugenmerk auf der voranstehend beschriebenen Charakteristik der vorliegenden Erfindung. Wie dies durch einen Pfeil cw 1 in 13 dargestellt ist, wird, wenn ein Lösch-Ereignis generiert wird, eine Löschoperations-Verwaltungstabelle durch den Lösch-Handler 16 erstellt und anschließend in den Speicher in dem manipulationsgeschützten Modul TRM 1 geschrieben. Eine Löschoperations-Verwaltungstabelle zeigt, wie das Überschreiben durchgeführt werden sollte. Solch eine Löschoperations-Verwaltungstabelle wird vor dem Überschreiben eines Dateieintrages und einer Dateizuordnungstabelle FAT erstellt, um andere Ereignis-Handler über das Vorhandensein von Fragmenten, die auf Null gelöscht werden sollen, zu informieren und wie viele Daten einer Datei auf Null gelöscht worden sind. Wenn eine Löschoperations-Verwaltungstabelle erstellt worden ist, überschreiben der Nicht-Befehls-Ausführungs-Handler 12, der Lese-/Schreib-Handler 14 und der Lösch-Handler 16 X (Einheitslänge) Bytes eines Fragments (wie dies durch die Pfeile nc1 und 2 dargestellt ist) in Bezug auf die Löschoperations-Verwaltungstabelle. Anschließend wird die Löschoperations-Verwaltungstabelle aktualisiert. Wie dies durch die Pfeile nc1 und 2 dargestellt wird, können Dateien, die sowohl in dem externen Flash-Speicher 2 als auch in dem internen EEPROM 3 gespeichert sind, in der vorliegenden Ausführungsform auf Null gelöscht werden. Hierbei wird jedoch lediglich eine Operation des Löschens auf Null einer Datei, die in dem externen Flash-Speicher 2 gespeichert ist, beschrieben, um eine komplizierte Erklärung zu vermeiden. Eine Operation des Löschens auf Null kann in der vorliegenden Ausführungsform sowohl, wenn ein Dateiobjekt für eine Datei fragmentiert ist als auch nicht fragmentiert ist, durchgeführt werden. In diesem Fall wird jedoch lediglich eine Operation des Löschens auf Null für den Fall beschrieben, in dem ein Dateiobjekt für eine Datei fragmentiert ist, um eine umständliche Beschreibung zu umgehen. (Aus diesem Grund wird in dem folgenden Teil der Beschreibung der Begriff „ein Dateiobjekt" gleichbedeutend mit dem Begriff „Fragmente" ausgetauscht.)
  • 14 zeigt als ein Beispiel eine Löschoperations-Verwaltungstabelle. Eine Löschoperations-Verwaltungstabelle ist aus einer Vielzahl von Datensätzen in einer Eins-zu-Eins-Entsprechung mit Fragmenten gebildet. Jeder Datensatz besitzt vier Einträge: „VALID FLAG" („GÜLTIGES FLAG"), der anzeigt, ob ein entsprechendes Fragment gelöscht wird oder vollständig gelöscht worden ist; „START ADR" („ANFANGS ADR"), der eine Anfangsadresse des Fragmentes anzeigt; „CLEARED ADR" („GELÖSCHTE ADR"), der eine gelöschte Adresse anzeigt, die anzeigt, wie viele Daten des Fragmentes auf Null gelöscht worden sind, wenn eine Löschoperation an dem Fragment bis zur Hälfte durchgeführt worden ist; und „END ADR" („END ADR"), der eine Endadresse des Fragmentes anzeigt. Der Lösch-Handler 16 stellt die Werte von START ADR und END ADR auf Basis der Adressen ein, die in der voranstehend erwähnten Dateizuordnungstabelle FAT oder dem Dateieintrag vermerkt sind.
  • Der Ereignisanalyse-Handler 11, der Nicht-Befehls-Ausführungs-Handler 12, der Lese-/Schreib-Handler 14 und der Lösch-Handler 16 in der Anwendungsschnittstelle API 10 werden durch Schreibprogramme generiert, die Vorgehensweisen in Computersprache durchführen, die in den 15, 16, 17, 18 und 19 dargestellt sind. Die 15, 16, 17 und 18 sind Ablaufpläne, die jeweils die Vorgehensweisen des Ereignisanalyse-Handlers 11, des Nicht-Befehls-Ausführungs-Handlers 12 und des Lese-/Schreib-Handlers 14 und des Lösch-Handlers 16 illustrieren. 19 ist ein Ablaufplan, der eine Vorgehensweise einer Operation des Löschens auf Null illustriert. Eine Operation des Löschens auf Null zeigt das Überschreiben von X Bytes von Fragmenten mit Null-Codes an. Da die Operation des Löschens auf Null durch den Nicht-Befehls-Ausführungs-Handler 12, den Lese-/Schreib-Handler 14 und den Lösch-Handler 16 durchgeführt wird, wird eine Operation des Löschens auf Null als eine Subroutine erachtet.
  • 15 ist ein Ablaufplan, der eine Vorgehensweise des Ereignisanalyse-Handlers 11 darstellt.
  • Die Schritte S101 bis S103 in 15 bilden eine „Schleifenprozedur" zum Scannen eines Ereignisses. Diese Schleifenprozedur überprüft, ob ein externes Ereignis auftritt (Schritt S101), ob Operationen durch den Lese-/Schreib-Handler 14 und den Lösch-Handler 16 abgeschlossen worden sind (Schritt S102) und ob die Vorgehensweise des Zeitsteuereinheit-Handlers 13 abgeschlossen worden ist (Schritt S103).
  • Eine Vorgehensweise der Schritte von S104 bis S109 ist durchzuführen, wenn das Auftreten eines externen Ereignisses in dem Schritt S101 erfasst wird.
  • In dem Schritt S104 wird eine Ereignisanalyse durchgeführt, um festzustellen, ob es sich bei einem externen Ereignis um einen EC-Befehl handelt oder nicht, und wenn die Feststellung eine bejahende ist, werden die Inhalte des EC-Befehls analysiert. Wenn es sich bei einem externen Ereignis um einem EC-Befehl handelt, der Lese- und Schreiboperationen in einer Datei in dem externen Flash-Speicher 2 anweist, das heißt, ein Lese-/Schreib-Befehl, werden eine Lese-/Schreib-Ereignis und ein Befehlsstart-Ereignis generiert (der Schritt S106). Anschließend kehrt die Vorgehensweise des Ereignisanalyse-Handlers 11 zurück zu der Schleifenprozedur der Schritte S101 bis S103.
  • Wenn es sich bei dem externen Ereignis um einen EC-Befehl handelt, der ein Löschen einer Datei auf dem externen Flash-Speicher 2 anweist, das heißt ein Löschbefehl, werden ein Lösch-Ereignis und ein Befehlsstart-Ereignis generiert (Schritt S108). Anschließend kehrt die Vorgehensweise des Ereignisanalyse-Handlers 11 zurück zu der Schleifenprozedur der Schritte S101 bis S103.
  • Wenn ein anderes als die voranstehend beschriebenen externen Ereignisse auftritt, wird eine Operation entsprechend dem Ereignis durchgeführt (Schritt S109). Anschließend kehrt die Vorgehensweise des Ereignisanalyse-Handlers 11 zurück zu der Schleifenprozedur der Schritte S101 bis S103.
  • Die Schritte S110 und S111 werden durchgeführt, wenn die Vorgehensweise durch den Lese-/Schreib-Handler 14 und den Lösch-Handler 16 abgeschlossen worden sind. In diesen Schritten wird eine EC-Antwort an die EC-Client-Anwendung 8 ausgegeben, die einen Befehl ausgegeben hat, und es wird ein Befehlsende-Ereignis in der Anwendungsschnittstelle API 10 generiert.
  • Der Schritt S112 wird durchgeführt, wenn der Zeitsteuereinheit-Handler 13 ein Timeout anweist. In diesem Ereignis wird ein Anhalte-Ereignis generiert.
  • 16 ist ein Ablaufplan, der eine Vorgehensweise des Nicht-Befehls-Ausführungs-Handlers 12 illustriert. Die Schritte S1 und S2 bilden eine Schleifenprozedur, in der überprüft wird, ob ein Befehlsstart-Ereignis generiert wird (Schritt S1) und ob eine Löschoperations-Verwaltungstabelle vorhanden ist (Schritt S2). In Schritt S2 wird in jedem Zyklus der Schritte S1 und S2 festgestellt, ob eine Löschoperations-Verwaltungstabelle vorhanden ist oder nicht. Wenn eine Löschoperations-Verwaltungstabelle vorhanden ist, wird eine Subroutine des Löschens auf Null aufgerufen (Schritt S4). Hierbei wird das Überschreiben von Fragmenten durch den Nicht-Befehls-Ausführungs-Handler 12 in einer Leerlaufzeit durchgeführt, während der keine anderen Ereignis-Handler arbeiten. Dementsprechend wird, selbst wenn es aufgrund der Eigenschaft einer Halbleiter-Speicherkarte eine lange Zeit dauert, eine Datei zu überschreiben, der Benutzer durch die Länge nicht gestört.
  • 17 ist ein Ablaufplan, der eine Vorgehensweise des Lese-/Schreib-Handlers 14 illustriert. Ein Verschlüsselungsschlüssel, der einer Datei entspricht, für die Lese- und Schreiboperationen durchgeführt werden sollen, wird in Schritt S20 von der Verschlüsselungsschlüssel-Tabelle 15 erhalten. In Schritt S21 wird festgestellt, ob eine Schreiboperation durchgeführt werden soll oder nicht. Wenn eine Schreiboperation durchgeführt wird, werden Daten von der EC-Client-Abwendung 8 mit dem in Schritt S20 erhaltenen Verschlüsselungsschlüssel verschlüsselt (Schritt S22), und die verschlüsselten Daten werden in den sicheren Flash-Speicher 2 geschrieben (Schritt S23).
  • Im Gegensatz dazu werden, wenn das Feststellen in Schritt S21 anzeigt, dass eine Leseoperation durchgeführt werden soll, verschlüsselte Daten, die durch die EC-Client-Anwendung 8 erfordert werden, von dem sicheren Flash-Speicher 2 gelesen (Schritt S24). Die verschlüsselten Daten, die von dem sicheren Flash-Speicher 2 gelesen wurden, werden anschließend unter Verwendung des in Schritt S20 erhaltenen Verschlüsselungsschlüssels entschlüsselt und an die EC-Client-Anwendung 8 weitergeleitet (Schritt S25).
  • In Schritt S26 wird festgestellt, ob eine Löschoperations-Verwaltungstabelle vorhanden ist oder nicht. Wenn keine Löschoperations-Verwaltungstabelle vorhanden ist, ist die Vorgehensweise abgeschlossen. Wenn eine Löschoperations-Verwaltungstabelle jedoch vorhanden ist, wird in Schritt S27 eine Operation des Löschens auf Null durchgeführt.
  • 18 ist ein Ablaufplan, der eine Vorgehensweise des Lösch-Handlers 16 illustriert. Zuerst werden in Schritt S11 Datensätze in Eins-zu-Eins-Entsprechung mit Dateifragmenten generiert. Die Werte der Einträge START ADR und END ADR in jedem Datensatz werden in Schritt S12 auf die Werte der Start- und Endadressen eines entsprechenden Dateifragmentes eingestellt. In Schritt S13 wird der Wert des Eintrages VALID FLAG in jedem Datensatz auf dem Wert „1" eingestellt, wodurch angezeigt wird, dass ein entsprechendes Fragment gelöscht wird. In Schritt S14 wird der Wert des Eintrages CLEARED ADR in jedem Datensatz auf den Wert der Startadresse eines entsprechenden Dateifragmentes eingestellt.
  • Unter einer Vielzahl von Verschlüsselungsschlüsseln in der Verschlüsselungsschlüssel-Tabelle 15 wird in Schritt S15 ein Verschlüsselungsschlüssel, der einer Datei, die gelöscht werden soll, entspricht, gelöscht. Durch dieses Löschen des Verschlüsselungsschlüssels wird es unmöglich, die Datei zu entschlüsseln.
  • Nachdem ein Dateieintrag in Schritt S16 auf Null gelöscht worden ist, wird in Schritt S17 festgestellt, ob ein Anhalte-Ereignis generiert wird oder nicht. Die Vorgehensweise des Lösch-Handlers 16 wird beendet, wenn ein Anhalte-Ereignis generiert wird.
  • Wenn kein Anhalte-Ereignis generiert wird, wird in Schritt S18 eine Dateizuordnungstabelle FAT auf Null gelöscht. Da in dieser Phase ein Dateieintrag und eine Dateizuordnungstabelle FAT auf Null gelöscht worden sind, haben Fragmente, die ein Dateiobjekt einer Datei bilden, die Verbindungsbeziehungen dazwischen verloren und sind voneinander getrennt worden.
  • Daran anschließend wird in Schritt S19 festgestellt, ob ein Anhalte-Ereignis generiert wird. Wenn ein Anhalte-Ereignis generiert wird, wird die Vorgehensweise des Lösch- Handlers 16 beendet. Wenn kein Anhalte-Ereignis generiert wird, werden in Schritt S20 Fragmente einer Datei auf Null gelöscht.
  • Anschließend wird die Vorgehensweise der Schritte S19 bis S20 wiederholt. Auf diese Weise wird das Überschreiben von Fragmenten durch den Lösch-Handler 16 so lange fortgesetzt, bis die Zeitsteuereinheit ein Timeout anweist.
  • 19 ist ein Ablaufplan, der eine Vorgehensweise einer Subroutine zum Löschen auf Null illustriert. Der erste Datensatz von den Datensätzen, die einen Wert des Eintrages VALID FLAG aufweisen, der auf den Wert „1" eingestellt wird, wird in Schritt S3 als ein Datensatz s ausgewählt. Es wird festgestellt, ob eine Datenlänge von einer gelöschten Adresse zu einer Endadresse länger oder kürzer ist als eine Einheitslänge X, um einen Schritt zu bestimmen, der nach Schritt S31 durchzuführen ist. Diese Feststellung wird in Schritt S32 getroffen. Dies bedeutet, dass festgestellt wird, ob eine Adresse, die durch Addieren der Einheitslänge X des Überschreibens auf die gelöschte Adresse erhalten wird, kürzer ist als die Endadresse des Datensatzes s. Wenn die Feststellung bejahend ist, werden im Anschluss die Schritte S33 bis S35 durchgeführt. In diesen Schritten wird die externe Speichersteuereinheit 4 angewiesen, die Daten mit X Bytes beginnend mit der gelöschten Adresse in einem entsprechenden Fragment zu überschreiben (Schritt S33). Wenn das Überschreiben durch die externe Speichersteuereinheit 4 abgeschlossen ist (Schritt S24) wird die gelöschte Adresse auf (die gelöschte Adresse plus X) aktualisiert (Schritt S35).
  • Wenn eine Datenlänge von der gelöschten Adresse bis zur Endadresse länger ist als die Einheitslänge X, werden die Schritte S36 bis S39 durchgeführt, um den Überhang an Datenlänge anzugehen. In Übereinstimmung mit diesen Schritten wird die Einheitslänge X so umgewandelt, dass sie einem Wert entspricht, der durch Subtrahieren der gelöschten Adresse von der Endadresse (Schritt S36) erhalten wird, entspricht. Anschließend wird eine Anweisung an die externe Speichersteuereinheit 4 erteilt, dass Daten mit X Bytes beginnend mit der gelöschten Adresse mit Null-Codes zu überschreiben sind (Schritt S37). Wenn das Überschreiben abgeschlossen ist, wird der Wert des Eintrages VALID FLAG des Datensatzes s auf den Wert „0" eingestellt (Schritt S39). In Schritt S40 wird festgestellt, ob der Wert des Eintrages VALID FLAG in allen der Datensätze auf den Wert „0" eingestellt ist. Wenn die Feststellung bejahend ist, geht die Vorgehensweise in Schritt S42 über, wodurch eine Löschoperations-Verwaltungstabelle gelöscht wird.
  • Hierbei werden die Operationen durch den Nicht-Befehls-Ausführungs-Handler 12, den Lese-/Schreib-Handler 14 und den Lösch-Handler 16 zum Löschen einer Datei, deren Namen EOB001.SE1 ist und die in einem Hauptinhaltsverzeichnis gespeichert ist, als ein Beispiel in Bezug auf die 20 und 21 beschrieben. 20 illustriert einen Eintrag in ein Hauptinhaltsverzeichnis und eine Dateizuordnungstabelle FAT für die Datei nach einer Operation durch den Lösch-Handler 16 in Reaktion auf ein Lösch-Ereignis an der Datei, die wie in 10 beschrieben gespeichert ist. Wenn ein Lösch-Ereignis für die Datei „EOB001.SE1" generiert wird, wird eine Löschoperations-Verwaltungstabelle der Datei erstellt, und die Einträge FILE NAME, FILE EXTENSION und FIRST CLUSTER NUMBER des Dateieintrages für die Datei und die Einträge in der Dateizuordnungstabelle FAT, 003, 004, 005 00A und 00C werden mit Null-Codes überschrieben. Nach diesem Überschreiben durch den Lösch-Handler 16 startet eine Operation durch den Nicht-Befehls-Ausführungs-Handler 12.
  • 21 illustriert den Eintrag in dem Hauptinhaltsverzeichnis und die Dateizuordnungstabelle FAT nach dem Überschreiben durch den Nicht-Befehls-Ausführungs-Handler 12 und den Lösch-Handler 16. Wenn die Löschoperations-Verwaltungstabelle für die Fragmente der Datei durch den Lösch-Handler 16 erstellt worden ist, sind die Cluster 003, 004, 005, 00A und 00C, die die Fragmente speichern, mit Null-Codes überschrieben worden.
  • Wenn, wie dies voranstehend beschrieben worden ist, ein EC-Befehl, der durch die EC-Client-Anwendung 8 ausgegeben wird, das Löschen einer Datei anweist, wird eine Operation des Löschens auf Null kontinuierlich so lange durch den Lösch-Handler 16 durchgeführt, bis der Zeitsteuereinheit-Handler 133 ein Timeout anweist. Die Operation des Lösch-Handlers 16 wird in Übereinstimmung mit dem Auftreten des Timeouts beendet. Dementsprechend kann ein Zeitraum beginnend mit dem Ausgeben eines EC-Befehls durch die EC-Client-Anwendung 8 bis zu dem Ausgeben einer EC-Antwort durch den Ereignisanalyse-Handler 11 verkürzt werden. Dadurch kann ein Verarbeitungszeit, die für das Verarbeiten eines EC-Befehls erforderlich ist, verkürzt werden, und dadurch wird ein Benutzer der EC-Client-Anwendung 8 nicht frustriert.
  • Der Verarbeitungsaufwand für das Überschreiben der Datei, die bisher noch nicht auf Null gelöscht worden ist, wird so aufgeteilt, dass er durch andere Ereignis-Handler als der Lösch-Handler 16, so wie beispielsweise durch den Nicht-Befehls-Ausführungs-Handler 12 und den Lese-/Schreib-Handler 14 in einer Vielzahl von Leerlaufzeiten durchgeführt wird. Dementsprechend kann das Überschreiben eines Dateiobjektes abgeschlossen werden, ohne dass dabei dem Benutzer eine lange Löschprozedur lästig wird, obgleich eine Operation des Überschreibens in dem EEPROM 3 eine lange Zeit erfordert und jedes Fragment Daten einer enormen Größenordnung aufweist.
  • Zusätzlich dazu wird ein Verschlüsselungsschlüssel, der für das Lesen einer verschlüsselten Datei von entscheidender Wichtigkeit ist, an allererster Stelle auf Null gelöscht. Aus diesem Grund wird, selbst wenn ein Benutzer die SDeX-Speicherkarte 400 gewaltsam aus der tragbaren SD-Vorrichtung 300 inmitten der Vorgehensweise des Löschens durch den Lösch-Handler 16 entnimmt, die verschlüsselte Datei immer noch ausreichend geschützt.
  • (Zweite Ausführungsform)
  • In Übereinstimmung mit der ersten Ausführungsform wird das Überschreiben eines Fragmentes mit Null-Codes von einer Anfangsadresse an in Richtung einer Endadresse des Fragmentes, das heißt, in einer Vorwärtsrichtung, durchgeführt. In Übereinstimmung mit einer zweiten Ausführungsform wird das Überschreiben nicht nur in eine Vorwärtsrichtung sondern auch auf verschiedene Arten und Weisen durchgeführt.
  • 22 zeigt ein Beispiel einer Löschoperations-Verwaltungstabelle in Bezug auf die zweite Ausführungsform. Wie dies in 22 dargestellt ist, besitzt ein Datensatz der Tabelle zusätzlich einen Eintrag CLEAR METHOD („LÖSCHVERFAHREN").
  • In dem Eintrag CLEAR METHOD wird ein Verfahren von FORWARD (VORWÄRTS), BACKWARD (RÜCKWÄRTS), EVEN/ODD (GERADE/UNGERADE) und ODD/EVEN (UNGERADE/GERADE) eingestellt. Wenn der Eintrag CLEAR METHOD (LÖSCHVERFAHREN) auf FORWARD eingestellt wird, wird das Überschreiben eines Fragmentes mit Null-Codes ordnungsgemäß beginnend an einer gelöschten Adresse in Richtung einer Endadresse, so wie in der ersten Ausführungsform, durchgeführt. Wenn der Ein trag CLEAR METHOD auf BACKWARD eingestellt wird, wird das Überschreiben beginnend an einer gelöschten Adresse in Richtung einer Anfangsadresse durchgeführt.
  • Wenn der Eintrag CLEAR METHOD auf EVEN/ODD eingestellt wird, werden zuerst die Daten an geradzahligen Adressen auf Null gelöscht und anschließend die Daten an den ungeradzahligen Adressen beginnend mit einer gelöschten Adresse in Richtung einer Endadresse auf Null gelöscht.
  • Wenn der Eintrag CLEAR METHOD auf ODD/EVEN eingestellt wird, werden zuerst die Daten an ungeradzahligen Adressen auf Null gelöscht und anschließend die Daten an den geradzahligen Adressen beginnend mit einer gelöschten Adresse in Richtung einer Endadresse auf Null gelöscht.
  • Ein Löschverfahren für Fragmente kann auf Rotationsbasis durch den Lösch-Handler 16 ausgewählt werden. Genauer gesagt, kann eine Operation des Löschens auf Null in Vorwärtsrichtung für das erste Fragment ausgewählt werden, eine Operation des Löschens auf Null in Rückwärtsrichtung kann für das zweite Fragment ausgewählt werden, eine Operation des Löschens auf Null in Gerade-/Ungerade-Reihenfolge kann für das dritte Fragment und eine Operation des Löschens auf Null in Ungerade-/Gerade-Reihenfolge kann jeweils für das fünfte und die darauffolgenden Fragmente ausgewählt werden.
  • Alternativ dazu kann ein Löschverfahren für Fragmente auch auf Zufallsbasis ausgewählt werden. Im Einzelnen bedeutet dies, dass Zufallszahlen von 1 bis 4 durch den Lösch-Handler 16 generiert werden, und dass eine Operation des Löschens auf Null in einem Löschverfahren, das durch eine der Zahlen angezeigt wird, durchgeführt wird.
  • Darüber hinaus kann ein Lösch-Verfahren in Übereinstimmung mit einem Parameter, der durch die EC-Client-Anwendung empfangen wird, bestimmt werden.
  • 23 zeigt eine Vorgehensweise einer Subroutine des Löschens auf Null in Bezug auf die zweite Ausführungsform. Der erste Datensatz von Datensätzen, bei denen ein Wert des Eintrages VALID FLAG auf „1" eingestellt wird, wird in Schritt S31 als ein Datensatz s ausgewählt. Der Eintrag CLEAR METHOD des Datensatzes s wird in Schritt S51 herangezogen. Wenn der Eintrag CLEAR METHOD auf FORWARD eingestellt wird, wird in Schritt S50 eine Operation des Löschens auf Null in der gleichen Vorgehensweise wie in den Schritten S32 bis S40, die in dem Ablaufplan von 19 dargestellt ist, durchgeführt.
  • Wenn der Eintrag CLEAR METHOD auf BACKWARD eingestellt wird (Schritt S53), wird eine Operation des Löschens auf Null in der Vorgehensweise, die in dem Ablaufplan von 24 beschrieben ist, durchgeführt.
  • Wenn der Eintrag CLEAR METHOD auf EVEN/ODD eingestellt wird (Schritt S54), werden die Daten an geradzahligen Adressen nach einer gelöschten Adresse in derselben Vorgehensweise wie die Schritte S32 bis S40 des Ablaufplans von 19 auf Null gelöscht (Schritt S55). Wenn die Daten an geradzahligen Adressen vollständig auf Null gelöscht worden sind (Schritt S56), werden die Daten an den ungeradzahligen Adressen nach der gelöschten Adresse in Schritt S57 in derselben Vorgehensweise wie in den Schritten S32 bis S40 in dem in 19 dargestellten Ablaufplan auf Null gelöscht.
  • Wenn der Eintrag CLEAR METHOD auf ODD/EVEN eingestellt wird (Schritt S58), werden die Daten an den ungeradzahligen Adressen nach der gelöschten Adresse in der gleichen Vorgehensweise als wie in den Schritten S32 bis S40 in dem in 19 dargestellten Ablaufplan auf Null gelöscht (Schritt S57). Wenn die Daten an den ungeradzahligen Adressen vollständig gelöscht worden sind (Schritt S59), werden die Daten an den geradzahligen Adressen nach der gelöschten Adresse in derselben Vorgehensweise wie in den Schritten S32 bis S40 des in 19 dargestellten Ablaufplans auf Null gelöscht.
  • 24 ist ein Ablaufplan, der eine Vorgehensweise einer Operation des Löschens auf Null in Rückwärtsrichtung illustriert. Wenn ein Vergleich mit der in 19 beschriebenen Subroutine des Löschens auf Null durchgeführt wird, wird eine Beziehung zwischen der Anfangsadresse und einer Endadresse in der Operation des Löschens auf Null in Rückwärtsrichtung umgekehrt. In Schritt S61 wird festgestellt, ob eine Adresse, die durch Subtrahieren der Überschreibungseinheitslänge X von einer gelöschten Adresse erhalten wird, länger ist als eine Anfangsadresse eines Datensatzes s. Wenn die Feststellung bejahend ausfällt, wird die externe Speichersteuereinheit 4 Schritt S62 angewiesen, die Daten von X Bytes von einer Adresse (der gelöschten Adresse-X) eines Fragmentes in zu überschreiben. Wenn das Überschreiben durch die externe Speichersteuereinheit 4 abgeschlossen ist (Schritt S63), wird die gelöschte Adresse in Schritt S64 auf die Adresse (die gelöschte Adresse-X) aktualisiert.
  • Wenn eine Adresse (die gelöschte Adresse – die Überschreibungseinheitslänge X) kürzer ist als eine Anfangsadresse des Datensatzes s, wird die Einheitslänge X so umgewandelt, dass sie einem Wert entspricht, der durch Subtrahieren der Anfangsadresse von der gelöschten Adresse (Schritt S65) erhalten wird. Anschließend wird in Schritt S66 die externe Speichersteuereinheit 4 angewiesen, die Daten von X Bytes beginnend mit der Start-Adresse mit Null-Codes zu überschreiben. Wenn das Überschreiben abgeschlossen ist (Schritt S67), wird der Wert des Eintrages VALID FLAG des Datensatzes s auf „0" eingestellt (Schritt S68). In Schritt S69 wird festgestellt, ob der Wert des Eintrages VALID FLAG in sämtlichen Datensätzen auf „0" eingestellt ist. Wenn die Feststellung bejahend ausfällt, wird die Löschoperations-Verwaltungstabelle in Schritt S70 gelöscht.
  • Wie dies voranstehend beschrieben worden ist, kann in der zweiten Ausführungsform einem jeden Fragment ein anderes Löschverfahren zugewiesen werden. Daraus folgt, dass verschiedene Arten von Löschverfahren kombiniert werden, so dass ein Entweichen von Inhalten von Fragmenten, die gelöscht werden sollen, verhindert werden kann.
  • (Dritte Ausführungsform)
  • In Übereinstimmung mit einer dritten Ausführungsform wird das Überschreiben mit Null-Codes, das in der ersten Ausführungsform beschrieben worden ist, dann begrenzt, wenn eine Halbleiter-Speicherkarte eine Stromversorgung von der Karten-Schreib-/Leseeinrichtung 200 empfängt. Wenn die SDeX-Speicherkarte 400 über die Karten-Schreib-/Leseeinrichtung 200 Zugriff auf den EC-Server 100 erlangt, empfängt die SDeX-Speicherkarte 400 eine Stromversorgung über eine Wendelantenne in der Rückfläche der tragbaren SD-Vorrichtung 300, wie dies in der ersten Ausführungsform be schrieben worden ist. Da die Funkwellen-Stromversorgung instabil und gering ist, sollte eine unnötige Belastung der SDeX-Speicherkarte 400 vorzugsweise vermieden werden.
  • In Übereinstimmung mit der dritten Ausführungsform werden die folgenden Operationen durch die tragbare SD-Vorrichtung 300 und den Lösch-Handler 16 durchgeführt.
  • Wenn die tragbare SD-Vorrichtung 300 auf die Karten-Schreib-/Leseeinrichtung 200 zugreift, gibt sie einen erweiterten SD-Befehl aus, um der SDeX-Speicherkarte 400 mitzuteilen, dass sie kontaktlose Stromversorgung empfängt. Wenn im Gegensatz dazu die tragbare SD-Vorrichtung 300 den Zugriff auf die Karten-Schreib-/Leseeinrichtung 200 unterbricht, gibt sie einen erweiterten SD-Befehl aus, um der SDeX-Speicherkarte 400 mitzuteilen, dass die kontaktlose Stromversorgung gestoppt worden ist. Ob die tragbare SD-Vorrichtung 300 auf die Karten-Schreib-/Leseeinrichtung 200 zugreift oder den Zugriff auf sie unterbricht, wird anhand dessen bestimmt, ob die tragbare SD-Vorrichtung 300 einen Sendeaufruf-(Polling) Befehl von der Karten-Schreib-/Leseeinrichtung 200 empfängt.
  • Wenn ein erweiterter SD-Befehl zum Mitteilen des Vorhandenseins der kontaktlosen Stromversorgung von der tragbaren SD-Vorrichtung empfangen wird, begibt sich der Lösch-Handler 16 in einen Modus der kontaktlosen Stromversorgung. Wenn sich der Lösch-Handler 16 in diesem Modus befindet, werden eine Sicherheitskopie eines Dateieintrages und eine Dateizuordnungstabelle FAT generiert, und es werden lediglich ein Dateieintrag und eine Dateizuordnungstabelle FAT in Übereinstimmung mit einem Lösch-Ereignis überschrieben. Dies bedeutet, dass lediglich eine Sicherheitskopie eines Dateieintrages und eine Dateizuordnungstabelle FAT generiert werden, und dass keine Löschoperations-Verwaltungstabelle erstellt wird. Dementsprechend wird keine Operation des Löschens auf Null durch andere Ereignis-Handler durchgeführt.
  • Wenn danach ein erweiterter SD-Befehl zum Mitteilen, dass eine kontaktlose Stromversorgung gestoppt worden ist, durch die tragbare SD-Vorrichtung 300 ausgegeben wird, tritt der Lösch-Handler 16 aus dem Modus der kontaktlosen Stromversorgung, und es wird auf Basis der Sicherheitskopie des Dateieintrages und einer Dateizuordnungstabelle FAT eine Löschoperations-Verwaltungstabelle erstellt. Aufgrund des Generierens der Löschoperations-Verwaltungstabelle wird eine Operation des Löschens auf Null durch Ereignis-Handler, die andere sind als der Lösch-Handler 16, gestartet.
  • In Übereinstimmung mit der dritten Ausführungsform wird eine Operation des Löschens auf Null an einem Dateiobjekt nicht durchgeführt, wenn die SDeX-Speicherkarte 400 durch Stromversorgung von der Karten-Schreib-/Leseeinrichtung 200 betrieben wird, wie dies voranstehend beschrieben worden ist. Dementsprechend wird der SDeX-Speicherkarte 400 keine unnötige Belastung auferlegt. Dadurch wird eine stabile Funktionsweise der SDeX-Speicherkarte 400 realisiert.
  • (Vierte Ausführungsform)
  • In der ersten, der zweiten und der dritten Ausführungsform sind der Speicher 3 in dem manipulationsgeschützten Modul TRM 1 und der externe Flash-Speicher 2 jeweils durch einen EEPROM und einen Flash-Speicher gebildet. In Übereinstimmung mit einer vierten Ausführungsform sind der Speicher 3 in dem manipulationsgeschützten Modul TRM 1 und der externe Speicher 2 jedoch durch zwei Speichermodule gebildet. 25 illustriert die Struktur eines jeden des internen Speichers 3 und des externen Speichers 2 in Bezug auf die vierte Ausführungsform. Wie dies in 25 dargestellt ist, sind ein EEPROM 3a und ein Flash-Speicher 2a Hauptspeichermodule und jeweils die gleichen wie der EEPROM 3 und der Flash-Speicher 2 in der ersten bis sechsten Ausführungsform. Zusätzlich zu diesen Hauptspeichermodulen, werden Hilfsspeichermodule 2b und 3b jeweils für den externen Speicher 2 und den internen Speicher 3 in der vierten Ausführungsform bereitgestellt. Diese Hilfsspeichermodule 2b und 3b sind Ferro Electric Random Access Memories (FeRAMs), und ihre Leistung weicht signifikant von der eines Flash-Speichers ab. 26 vergleicht die Leistung eines Flash-Speichers mit der Leistung eines FeRAM. In Übereinstimmung mit 26 ist ein Flash-Speicher kostengünstig und für das Speichern von Daten mit einer großen Kapazität (in der Figur durch O dargestellt) geeignet. Die Einheit des Schreibens von Daten ist jedoch ein Block (durch
    Figure 00330001
    1 dargestellt). Hierbei nimmt die Größe eines solchen Blockes zu, wenn die Kapazität eines Flash-Speichers ansteigt. Dementsprechend bedeutet das Schreiben von Daten einer kleinen Größenordnung einen großen Verlust an Kapazität. Zusätzlich dazu ist die Zeit, die für das Schreiben erforderlich ist, lang (10.000 ns), und die Anzahl von möglichen Schreiboperationen ist klein (1.000.000). Darüber hinaus wird das Schreiben von Daten nur dann durchgeführt, nachdem die Daten, die gespeichert worden sind, einmalig gelöscht werden, wodurch die Schreibleistung instabil gemacht wird (durch
    Figure 00340001
    2 dargestellt).
  • Im Gegensatz dazu ist, obgleich ein FeRAM teuer ist und für das Speichern von Daten einer großen Kapazität (dargestellt durch Δ) nicht geeignet ist, die Einheit des Schreibens von Daten ein Byte, und eine Zeit, die für das Schreiben erforderlich ist, ist kurz (30 bis 100 ns). Zusätzlich dazu ist die Anzahl von Schreiboperationen groß.
  • Unter Anbetracht eines solchen Unterschiedes bei der Leistung kann, wenn ein FeRAM als ein Hilfsspeichermodul zum Speichern eines Dateieintrages, einer Dateizuordnungstabelle FAT und Ähnlichem, die oft aktualisiert werden, verwendet wird, eine Schreibleistung des Flash-Speichers 2a kompensiert werden. 27 zeigt einen FeRAM, der häufig aktualisierte Daten, wie beispielsweise einen Dateieintrag, eine Dateizuordnungstabelle FAT und eine Löschoperations-Verwaltungstabelle speichert.
  • In Übereinstimmung mit der vierten Ausführungsform wird ein FeRAM als ein Hilfsspeichermodul zum Speichern von häufig aktualisierten Daten einer kleinen Größenordnung wie beispielsweise eines Dateieintrages und einer Dateizuordnungstabelle FAT verwendet. Dadurch kann eine Operation des erneuten Schreibens mit Hochgeschwindigkeit an einem Dateieintrag und einer Dateizuordnungstabelle FAT erzielt werden.
  • Ein FeRAM hat eine Eigenschaft des destruktiven Auslesens (durch
    Figure 00340002
    4 angezeigt). Dies bedeutet, dass, wenn einmal die gespeicherten Daten ausgelesen sind, die Inhalte der gespeicherten Daten von einem Speichermedium gelöscht werden. Diese Eigenschaft wird bevorzugt, um eine gründliche Geheimhaltung sicherzustellen. In Übereinstimmung mit dieser Eigenschaft erfordert jedoch jedes Auslesen von Daten das Schreiben der Daten ein wiederholtes Mal, wodurch die letztendliche Anzahl von Malen erhöht wird, mit denen Daten geschrieben werden. Es sollte bevorzugt ein magnetoresistiver RAM verwendet werden, um die Eigenschaft des destruktiven Auslesens zu verhindern.
  • (Fünfte Ausführungsform)
  • In der vierten Ausführungsform wird ein FeRAM als ein Hilfsspeichermodul verwendet. In einer fünften Ausführungsform wird jedoch nur ein FeRAM für den Speicher 3 in dem manipulationsgeschützten Modul TRM 1 verwendet. 28 zeigt eine interne Struktur des internen Speichers 3 in Bezug auf die fünfte Ausführungsform. Hierbei weist der Speicher 3 in dem TRM 1 eine kleine Größe auf. Dementsprechend steigen die Herstellungskosten für den Speicher 3 nicht dramatisch an, selbst wenn ein FeRAM für den internen Speicher 3 verwendet wird. In der fünften Ausführungsform ist der Speicher 3 in dem manipulationsgeschützten Modul TRM 1 durch lediglich einen FeRAM gebildet, es sollte jedoch beachtet werden, dass er auch durch lediglich einen MRAM (magnetoresistiver RAM) gebildet sein kann.
  • (Sechste Ausführungsform)
  • In Übereinstimmung mit einer sechsten Ausführungsform werden die Verwaltungsinformationen für eine Datei mit einem Schlüssel verschlüsselt, der sich von einem Verschlüsselungsschlüssel für ein Dateiobjekt der Datei unterscheidet. Solch ein Verschlüsselungsschlüssel für Dateiverwaltungsinformationen wird in dem Speicher 3 in dem manipulationsgeschützten Modul TRM 1 gespeichert. Wenn ein Löschen einer Datei angewiesen wird, wird das Überschreiben eines Verschlüsselungsschlüssels für die Dateiverwaltungsinformationen durch den Lösch-Handler 16 vor dem Überschreiben eines Verschlüsselungsschlüssels für ein Dateiobjekt zusätzlich zu der Vorgehensweise durchgeführt, die in der ersten Ausführungsform beschrieben worden ist.
  • Die Verwaltungsinformationen für eine Datei werden mit anderen Verschlüsselungsschlüsseln verschlüsselt. Wenn dementsprechend das Löschen einer Datei angewiesen wird, kann das Lesen der Datei sofort trotz der Größe der Verwaltungsinformationen unmöglich gemacht werden.
  • (Modifizierungsbeispiele)
  • Die voranstehend angeführte Beschreibung erwähnt nicht alle Ausführungsformen der vorliegenden Erfindung. Die vorliegende Erfindung kann durch Ausführungsformen realisiert werden, die die folgenden Modifizierungen (A) bis (E) umfassen. Dennoch um fassen die folgenden Modifizierungen nicht die Ausführungsformen der Erfindungen, die in den Ansprüchen offenbart sind, wenn diese auf Basis der Beschreibung der beigefügten Figuren sowie öffentlich bekannter Technologie zum Zeitpunkt der Anwendung durch Personen mit der gewöhnlichen Erfahrung auf dem Gebiet der Technik antizipiert werden können.
    • (A) Als ein Beispiel wird eine EC-Client-Anwendung genommen, die vorliegende Erfindung kann jedoch auch auf andere Anwendungen angewendet werden. So kann die vorliegende Erfindung beispielsweise auf Serveranwendungen auf einer Servervorrichtung angewendet werden, die durch die Verkehrsindustrie beispielsweise Eisenbahngesellschaften, Fluggesellschaften, Busunternehmen und Expresslieferunternehmen und entsprechende Client-Anwendungen angewendet werden. Dementsprechend kann die SDeX-Speicherkarte 400 an Zugfahrkarten-Schranken und für die Vorgehensweise des Anbordgehens verwendet werden.
    • Alternativ dazu kann die vorliegende Erfindung auf Serveranwendungen einer Servervorrichtung, die sich im Besitz von Regierungs- und lokalen Organisationen befindet sowie auf entsprechende Client-Anwendungen angewendet werden. Auf diese Weise kann die SDeX-Speicherkarte 400 für Einwohnermeldescheine, verschiedene Arten von Nachweisen und Einträgen verwendet werden.
    • (B) Die Informationsverarbeitung durch Programme, die in den 15 bis 19, 23, 24 illustriert ist, wird physisch mit Hilfe von Hardwareressourcen, wie beispielsweise einer zentralen Rechnereinheit CPU und einem EEPROM realisiert. Dies bedeutet, dass eine physische Einheit, die durch Kombinieren von Programm- und Hardwareressourcen erhalten wird, Informationsverarbeitung durchführt, um einen bestimmten Zweck zu erzielen. Auf diese Weise kann die SDeX-Speicherkarte 400, die in jeder der ersten bis sechsten Ausführungsform beschrieben wird, realisiert werden.
    • Die Informationsverarbeitung durch Programme wird physisch mit Hilfe von Hardwareressourcen realisiert. Dementsprechend können die Programme, deren Vorgehensweisen in den voranstehend beschriebenen Figuren dargestellt sind, als Produkte von technischen Ideen unter Anwendung von Naturgesetzen erachtet werden, und die Programme selbst können als eine Erfindung erachtet werden. Dementsprechend offen baren die 15 bis 19, 23 und 24 Ausführungsformen der Programme in Übereinstimmung mit der vorliegenden Erfindung.
    • Die erste bis sechste Ausführungsform beschreiben die Ausführungsformen des Anwendens der Programme in Übereinstimmung mit der vorliegenden Erfindung, wobei die Programme in der SDeX-Speicherkarte 400 integriert sind. Die Programme, die in der ersten bis sechsten Ausführungsform illustriert sind, können für die Verwendung jedoch auch von der SDeX-Speicherkarte getrennt verwendet werden. Hierbei umfasst das Anwenden der Programme selbst die Handlungen von (1) dem Erzeugen des Programms, (2) dem Zuweisen der Programme kostenlos oder mit Gewinn, dem (3) Leasen der Programme, (4) dem Importieren der Programme, (5) dem Bereitstellen der Programme für die Öffentlichkeit über Zwei-Wege-Kommunikationsleitungen und (6) dem Anbieten von Zuweisen oder Leasen der Programme an öffentliche Benutzer durch Werben für die Programme im Schaufenster und über die Verteilung von Broschüren und Katalogen.
    • Ein typisches Beispiel der Handlung des Bereitstellens der Programme über Zwei-Wege-Kommunikationsleitungen (5) ist der Dienst zum Herunterladen von Programmen, wodurch ein Dienstanbieter die Programme so an einen Benutzer sendet, dass dieser Benutzer die Programme verwenden kann, sowie der Application Service Provider (ASP) Dienst, wodurch die Funktionen der Programme den Benutzern über elektronische Kommunikationsleitungen bereitgestellt werden, die Programme selbst jedoch durch de Dienstanbieter einbehalten werden.
    • (C) Eine zeitlich Abfolge einer Vorgehensweise, wie beispielsweise die Reihenfolge der Schritte in jedem der folgenden Ablaufpläne in den 15 bis 19, 23 und 24 wird als ein fundamentaler Gegenstand zum Spezifizieren einer Erfindung erachtet. Dementsprechend offenbart die Vorgehensweise, die in einem jeden der voranstehend erwähnten Ablaufpläne offenbart wird, wie ein Steuerverfahren angewendet wird. Dementsprechend zeigen diese Ablaufpläne Ausführungsformen für die Verwendung der Steuerverfahren in Übereinstimmung mit der vorliegenden Erfindung. Wenn die Schritte in jedem Ablaufplan in der beschriebenen zeitlichen Reihenfolge durchgeführt werden, um das ursprüngliche Ziel sowie Effekte der vorliegenden Erfindung zu erreichen, sind die Vorgehensweisen in diesen Ablaufplänen zweifelsohne Ausführungsformen der formen der Steuerverfahren für die Halbleiter-Speicherkarte in Übereinstimmung mit der vorliegenden Erfindung
    • (D) In der ersten bis sechsten Ausführungsform wird ein EEPROM für die nicht flüchtigen Speicher sowohl innerhalb als auch außerhalb des manipulationsgeschützten Moduls TRM 1 verwendet. Der interne und der externe Speicher kann jedoch auch ein anderer nicht flüchtiger Speicher wie beispielsweise ein FeRAM sein.
    • (E) Als ein Beispiel wird ein Mobiltelefon-Typ für die tragbare SD-Vorrichtung 300 verwendet. Die tragbare SD-Vorrichtung kann jedoch auch ein Audio-Unterhaltungselektronikgerät, eine Set-Top-Box (STB) oder ein Mobiltelefon sein.
  • Die in den Ansprüchen der vorliegenden Erfindung definierten Erfindungen erweitern oder verallgemeinern die voranstehend beschriebenen Ausführungsformen sowie ihre Modifizierungen. Der Grad der Erweiterung und der Verallgemeinerung basiert auf dem Stand der Technik auf dem Gebiet der verwandten Technik zum Zeitpunkt der Anmeldung.
  • Industrielle Anwendbarkeit
  • Die Halbleiter-Speicherkarte in Übereinstimmung mit der vorliegenden Erfindung stellt einen hohen Schutz für gelöschte Dateien bereit, und ist dementsprechend ideal für das Speichern von vertraulichen Daten geeignet. Dementsprechend kann die Halbleiter-Speicherkarte in Übereinstimmung mit der vorliegenden Erfindung in verschiedenen Bereichen der industrialisierten Welt, wie beispielsweise auf einem Gebiet der Unterhaltungselektronikgeräte verwendet werden.
  • 1
    TRM
    2
    ein externer EEPROM
    3
    ein interner EEPROM
    4
    eine externe Speichersteuereinheit
    5
    ein HIM
    6
    eine Masken-ROM
    7
    eine zentrale Rechnereinheit CPU
    8
    eine Client-Anwendung
    9
    eine virtuelle Maschine
    10
    eine Anwendungsschnittstelle API
    11
    ein Ereignisanalyse-Handler
    12
    ein Nicht-Befehls-Ausführungs-Handler
    13
    ein Zeitsteuereinheit-Handler
    14
    ein Lese-/Schreib-Handler
    15
    ein Lösch-Handler
    21
    ein Bereich für ein Anwendungsprogramm
    22
    ein sicherer Bereich
    23
    ein Authentifizierungs-Bereich
    24
    ein Nicht-Authentifizierungs-Bereich
    100
    ein EC-Server
    200
    eine Karten-Schreib-/Leseeinrichtung
    210
    eine Funkbasisstation
    300
    eine tragbare Vorrichtung

Claims (17)

  1. Halbleiter-Speicherkarte, die umfasst: einen nicht flüchtigen Speicher, der eine Datei speichert, die durch ein Objekt und Verwaltungsinformationen gebildet wird; und ein manipulationsgeschütztes Modul, das eine Verarbeitungseinheit und einen internen Speicher enthält, wobei die Verarbeitungseinheit enthält: eine Löscheinheit, die so betrieben werden kann, dass sie, wenn ein Lösch-Ereignis für die Datei generiert wird, 1. eine Positionstabelle in dem internen Speicher in dem manipulationsgeschützten Modul erzeugt, und 2. die Verwaltungsinformationen überschreibt, wobei die Positionstabelle eine Position des Objektes anzeigt und von der Löscheinheit herangezogen wird, wenn die Löscheinheit das Objekt überschreibt.
  2. Halbleiter-Speicherkarte nach Anspruch 1, wobei die Verarbeitungseinheit 1. einen Vorgang durchgeführt, der einem Befehl entspricht, der durch eine Vorrichtung erteilt wird, mit der die Halbleiter-Speicherkarte verbunden wird, und 2. des Weiteren eine Analyseeinheit enthält, die so betrieben werden kann, dass sie den Befehl analysiert, der durch die Vorrichtung ausgegeben wird, und ein Ereignis generiert, das einem Ergebnis der Analyse entspricht, die Löscheinheit enthält: eine Haupt-Löscheinheit, die so betrieben werden kann, dass sie, wenn das Lösch-Ereignis generiert wird, die Positionstabelle erzeugt und die Verwaltungsinformationen überschreibt; und eine Unter-Löscheinheit, die so betrieben werden kann, dass sie, wenn ein anderes Ereignis als das Löschereignis generiert wird, das Objekt unter Bezugnahme auf die erzeugte Positionstabelle überschreibt.
  3. Halbleiter-Speicherkarte nach Anspruch 2, die des Weiteren umfasst: eine Zeitsteuereinheit, die so betrieben werden kann, dass sie beginnt, eine Zeit zu messen, wenn das Lösch-Ereignis erzeugt wird, wobei die Haupt-Löscheinheit einen Teil des Objektes zusätzlich zu den Verwaltungsinformationen überschreibt, bis die Zeitsteuereinheit einen Timeout anweist, und die Unter-Löscheinheit einen verbleibenden Teil des Objektes überschreibt, der durch die Haupt-Löscheinheit nicht überschrieben worden ist.
  4. Halbleiter-Speicherkarte nach Anspruch 3, wobei die Positionstabelle 1. eine bereinigte Adresse, die anzeigt, wie viel von dem Objekt überschrieben worden ist, und 2. ein Verfahren zum Überschreiben des Objektes zeigt, das aus einer Vielzahl von Überschreibverfahren ausgewählt wird, und die Unter-Löscheinheit das Objekt gemäß dem in der Positionstabelle gezeigten Verfahren zum Überschreiben überschreibt und die bereinigte Adresse, die in der Positionstabelle gezeigt wird, immer dann erneuert, wenn die Unter-Löscheinheit einen vorgegebenen Abschnitt des Objektes überschreibt.
  5. Halbleiter-Speicherkarte nach Anspruch 2, wobei das Lösch-Ereignis durch die Analyseeinheit generiert wird, wenn die Vorrichtung, mit der die Halbleiter-Speicherkarte verbunden ist, einen Befehl zum Löschen der Datei erteilt, und das andere Ereignis ein Befehlsende-Ereignis ist, das durch die Analyseeinheit generiert wird, wenn die Verarbeitungseinheit die dem Befehl entsprechende Operation abschließt.
  6. Halbleiter-Speicherkarte nach Anspruch 5, wobei die Haupt-Löscheinheit ein Lösch-Handler ist, der in Reaktion auf die Generierung des Lösch-Ereignisses zu arbeiten beginnt; und die Unter-Löscheinheit ein Nicht-Befehl-Ausführungs-Handler ist, der in Reaktion auf die Generierung des Befehlsende-Ereignisses zu arbeiten beginnt.
  7. Halbleiter-Speicherkarte nach Anspruch 2, wobei das Lösch-Ereignis durch die Analyseeinheit generiert wird, wenn die Vorrichtung, mit der die Halbleiter-Speicherkarte verbunden ist, einen Befehl zum Löschen der Datei erteilt, und das andere Ereignis ein Leseereignis oder ein Schreibereignis ist, wobei das Leseereignis durch die Analyseeinheit generiert wird, wenn die Vorrichtung einen Befehl zum Lesen einer anderen Datei in der Halbleiter-Speicherkarte erteilt, und das Schreibereignis durch die Analyseeinheit generiert wird, wenn die Vorrichtung einen Befehl zum Schreiben in die andere Datei in der Halbleiter-Speicherkarte erteilt.
  8. Halbleiter-Speicherkarte nach Anspruch 7, wobei die Haupt-Löscheinheit ein Lösch-Handler ist, der in Reaktion auf die Generierung des Lösch-Ereignisses zu arbeiten beginnt, und die Unter-Löscheinheit in einem Lese-/Schreib-Handler enthalten ist, der in Reaktion auf die Generierung des Lese-Ereignisses oder des Schreib-Ereignisses zu arbeiten beginnt.
  9. Halbleiter-Speicherkarte nach Anspruch 2, wobei der interne Speicher einen Verschlüsselungsschlüssel speichert, mit dem das Objekt verschlüsselt worden ist, und wenn das Lösch-Ereignis generiert wird, die Haupt-Löscheinheit den Verschlüsselungsschlüssel überschreibt, bevor sie die Verwaltungsinformationen der Datei überschreibt.
  10. Halbleiter-Speicherkarte nach Anspruch 9, wobei die Verwaltungsinformationen der Datei mit einem Verschlüsselungsschlüssel verschlüsselt worden sind, der sich von dem Verschlüsselungsschlüssel für das Objekt unterscheidet, wobei der Verschlüsselungsschlüssel für die Verwaltungsinformationen in dem internen Speicher gespeichert ist, und wenn das Lösch-Ereignis generiert wird, die Haupt-Löscheinheit den Verschlüsselungsschlüssel für die Verwaltungsinformationen überschreibt, bevor sie den Verschlüsselungsschlüssel für das Objekt überschreibt.
  11. Halbleiter-Speicherkarte nach Anspruch 9, wobei das Objekt der Datei in Fragmente unterteilt ist, und die Positionstabelle 1. eine Anfangsadresse jedes der Fragmente, die das Objekt bilden, und 2. ein Flag zeigt, das als "AUS" gesetzt ist, wenn nicht jedes der Fragmente vollständig überschrieben worden ist, und als "AN" gesetzt ist, wenn das Fragment vollständig überschrieben worden ist.
  12. Halbleiter-Speicherkarte nach Anspruch 1, die mittels einer Kontakt- oder kontaktlosen Stromversorgung von einer Vorrichtung arbeitet, wobei die Verarbeitungseinheit das Überschreiben nur durchführt, wenn die Halbleiter-Speicherkarte mittels der Kontakt-Stromversorgung von der Vorrichtung arbeitet.
  13. Halbleiter-Speicherkarte nach Anspruch 1, wobei der nicht flüchtige Speicher durch ein erstes Speichermodul und ein zweites Speichermodul gebildet wird, eine Einheit zum Schreiben für das zweite Speichermodul kleiner ist als eine Einheit zum Schreiben für das erste Speichermodul, und die Verwaltungsinformationen in dem zweiten Speichermodul gespeichert werden.
  14. Halbleiter-Speicherkarte nach Anspruch 13, wobei das zweite Speichermodul ein FeRAM-Speicher oder ein MRAM-Speicher ist.
  15. Halbleiter-Speicherkarte nach Anspruch 1, wobei der interne Speicher durch ein erstes Speichermodul und ein zweites Speichermodul gebildet wird, eine Einheit zum Schreiben für das zweite Speichermodul kleiner ist als eine Einheit zum Schreiben für das erste Speichermodul, und die Positionstabelle in dem zweiten Speichermodul gespeichert ist.
  16. Halbleiter-Speicherkarte nach Anspruch 15, wobei das Speichermodul ein FeRAM-Speicher oder ein MRAM-Speicher ist.
  17. Steuerprogramm, das durch eine CPU in einem manipulationsgeschützten Modul ausgeführt wird, das in einer Halbleiter-Speicherkarte enthalten ist, wobei das manipulationsgeschützte Modul auch einen internen Speicher enthält und die Halbleiter-Speicherkarte auch einen nicht-flüchtigen Speicher zum Speichern einer Datei enthält, die durch ein Objekt und Verwaltungsinformationen gebildet wird, wobei wenn ein Löschereignis für die Datei erzeugt wird, das Steuerprogramm 1. eine Positionstabelle in dem internen Speicher in dem manipulationsgeschützten Modul erzeugt, und 2. die Verwaltungsinformationen überschreibt, und die Positionstabelle eine Position des Objektes anzeigt und durch das Steuerprogramm herangezogen wird, wenn das Steuerprogramm das Objekt überschreibt.
DE602004010458T 2003-02-04 2004-02-04 Halbleiterspeicherkarte und rechnerlesbares programm Expired - Lifetime DE602004010458T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2003027683 2003-02-04
JP2003027683 2003-02-04
PCT/JP2004/001144 WO2004070728A1 (en) 2003-02-04 2004-02-04 Semiconductor memory card and computer readable program

Publications (2)

Publication Number Publication Date
DE602004010458D1 DE602004010458D1 (de) 2008-01-17
DE602004010458T2 true DE602004010458T2 (de) 2008-04-30

Family

ID=32844181

Family Applications (1)

Application Number Title Priority Date Filing Date
DE602004010458T Expired - Lifetime DE602004010458T2 (de) 2003-02-04 2004-02-04 Halbleiterspeicherkarte und rechnerlesbares programm

Country Status (10)

Country Link
US (1) US7303135B2 (de)
EP (1) EP1493157B1 (de)
KR (1) KR20050103448A (de)
CN (1) CN100472644C (de)
AT (1) ATE380381T1 (de)
BR (1) BRPI0405222A (de)
CA (1) CA2481852A1 (de)
DE (1) DE602004010458T2 (de)
MX (1) MXPA04012286A (de)
WO (1) WO2004070728A1 (de)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0511919D0 (en) * 2005-06-11 2005-07-20 Ibm Device permitting partial disabling of information retrievability on worm media
US7725614B2 (en) * 2006-08-08 2010-05-25 Sandisk Corporation Portable mass storage device with virtual machine activation
EP2049991A2 (de) * 2006-08-08 2009-04-22 Sandisk Corporation Tragbarer massenspeicher mit virtueller maschinenaktivierung
JP4483891B2 (ja) * 2007-04-02 2010-06-16 フェリカネットワークス株式会社 情報処理端末、データ移動方法、およびプログラム
US8694776B2 (en) * 2007-12-21 2014-04-08 Spansion Llc Authenticated memory and controller slave
US9069940B2 (en) 2010-09-23 2015-06-30 Seagate Technology Llc Secure host authentication using symmetric key cryptography
KR20130025223A (ko) * 2011-09-01 2013-03-11 삼성전자주식회사 메모리를 관리하는 방법 및 이를 수행하는 화상형성장치
US8826459B2 (en) * 2011-11-29 2014-09-02 Jason Swist Systems and methods of automatic multimedia transfer and playback
US8621644B2 (en) 2011-12-29 2013-12-31 Elwha Llc System and method for protecting data stored on a removable data storage device
CN104268184B (zh) * 2014-09-16 2017-11-21 青岛海信移动通信技术股份有限公司 一种移动终端中的文件删除方法和终端
KR101605156B1 (ko) 2014-12-11 2016-03-21 네이버비즈니스플랫폼 주식회사 파일 안전 삭제 기능 제공 장치, 방법 및 컴퓨터 프로그램
IT201700057287A1 (it) * 2017-05-26 2018-11-26 St Microelectronics Srl Procedimento per gestire schede a circuito integrato, scheda ed apparecchiatura corrispondenti
US11487908B2 (en) * 2019-08-16 2022-11-01 Macronix International Co., Ltd. Secure memory

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63253493A (ja) * 1987-04-09 1988-10-20 Mitsubishi Electric Corp 情報記録システム
US5479638A (en) * 1993-03-26 1995-12-26 Cirrus Logic, Inc. Flash memory mass storage architecture incorporation wear leveling technique
US5434919A (en) * 1994-01-11 1995-07-18 Chaum; David Compact endorsement signature systems
DE19633648A1 (de) * 1996-08-21 1998-02-26 Grundig Ag Verfahren und Schaltungsanordnung zur Speicherung von Diktaten bei einem digitalen Diktiergerät
US6507911B1 (en) * 1998-07-22 2003-01-14 Entrust Technologies Limited System and method for securely deleting plaintext data
JP3389186B2 (ja) 1999-04-27 2003-03-24 松下電器産業株式会社 半導体メモリカード及び読み出し装置
JP4423711B2 (ja) * 1999-08-05 2010-03-03 ソニー株式会社 半導体記憶装置及び半導体記憶装置の動作設定方法
RU2257609C2 (ru) 1999-10-21 2005-07-27 Мацусита Электрик Индастриал Ко., Лтд. Устройство доступа к полупроводниковой карте памяти, компьютерно-считываемый носитель записи, способ инициализации и полупроводниковая карта памяти
DE60121212T2 (de) * 2000-11-20 2006-11-09 Matsushita Electric Industrial Co., Ltd., Kadoma Kontaktlose lese-/schreibvorrichtung, informationsübermittlungssystem damit und verwaltungssystem damit
US7097107B1 (en) * 2003-04-09 2006-08-29 Mobile-Mind, Inc. Pseudo-random number sequence file for an integrated circuit card

Also Published As

Publication number Publication date
KR20050103448A (ko) 2005-10-31
US20050226072A1 (en) 2005-10-13
WO2004070728A1 (en) 2004-08-19
CA2481852A1 (en) 2004-08-19
BRPI0405222A (pt) 2005-03-15
EP1493157A1 (de) 2005-01-05
ATE380381T1 (de) 2007-12-15
CN100472644C (zh) 2009-03-25
CN1698130A (zh) 2005-11-16
EP1493157B1 (de) 2007-12-05
US7303135B2 (en) 2007-12-04
DE602004010458D1 (de) 2008-01-17
MXPA04012286A (es) 2005-02-25

Similar Documents

Publication Publication Date Title
DE602004009039T2 (de) Halbleiterspeicherkarte und programm zu ihrer steuerung
DE60021465T2 (de) Sicherheitsverwaltungssystem, Datenverteilungsvorrichtung und tragbares Terminalgerät
DE69320900T3 (de) IC-Karte mit hierarchischer Dateienstruktur
DE69814406T2 (de) Tragbare elektronische vorrichtung für systeme zur gesicherten kommunikation und verfahren zur initialisierung der parameter
DE68919483T2 (de) Chipkarten.
DE69127560T2 (de) Gegenseitiges Erkennungssystem
DE69531082T2 (de) Verfahren und Vorrichtung mit einem Verschlüsselungskopfteil, die es ermöglicht, Software zu erproben
DE60033066T2 (de) Halbleiterspeicherkarte und Datenlesevorrichtung
DE60224060T2 (de) Verwendung von daten gespeichert in einem lese-zerstörenden speicher
DE69835879T2 (de) Multifunktionschipkarte mit delegierungsmerkmal
DE3700663C2 (de)
DE602004010458T2 (de) Halbleiterspeicherkarte und rechnerlesbares programm
DE69021935T2 (de) Verfahren zum Überprüfen der Integrität eines Programms oder von Daten und Einrichtung zur Durchführung dieses Verfahrens.
DE69531077T2 (de) Verfahren und Vorrichtung mit Benutzereinwirkung der Art Erproben-und-Kaufen, die es ermöglicht, Software zu erproben
DE3811378C3 (de) Informationsaufzeichnungssystem
DE68915186T2 (de) Tragbarer elektronischer Apparat.
DE60122612T2 (de) Authentifizierungsvorrichtung sowie Benutzer-Authentifizierungssystem und - verfahren
DE69400549T2 (de) IC-Karten-Übertragungssystem
DE102006007084B4 (de) System zum Liefern von Programmen zu einer von einem Nutzer bedienbaren Vorrichtung
DE19803218A1 (de) Informationsspeichermedium und zugehöriges Schutzverfahren
DE19839847A1 (de) Speichern von Datenobjekten im Speicher einer Chipkarte
DE102004057805A1 (de) Speichervorrichtung mit einem Fingerabdrucksensor sowie Verfahren zum Schützen von Daten in einer solchen Speichervorrichtung
WO1997001147A2 (de) Verfahren zur vereinfachung der kommunikation mit chipkarten
EP0811204B1 (de) Verarbeitung langer nachrichten in einer chipkarte
DE69801679T2 (de) Gesichertes speicherverwaltungsverfahren

Legal Events

Date Code Title Description
8381 Inventor (new situation)

Inventor name: KAWANO, SHINJI, KADOMA-SHI, OSAKA, JP

Inventor name: NAKABE, FUTOSHI, KADOMA-SHI, OSAKA, JP

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