DE69811254T2 - Sicherer speicher mit multiplen sicherheitsebenen - Google Patents

Sicherer speicher mit multiplen sicherheitsebenen

Info

Publication number
DE69811254T2
DE69811254T2 DE69811254T DE69811254T DE69811254T2 DE 69811254 T2 DE69811254 T2 DE 69811254T2 DE 69811254 T DE69811254 T DE 69811254T DE 69811254 T DE69811254 T DE 69811254T DE 69811254 T2 DE69811254 T2 DE 69811254T2
Authority
DE
Germany
Prior art keywords
memory
access
zone
code
security code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69811254T
Other languages
English (en)
Other versions
DE69811254D1 (de
Inventor
F. Baran
Jean-Pierre Benhammou
L. Terry
D. Tonge
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.)
Atmel Corp
Original Assignee
Atmel Corp
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 Atmel Corp filed Critical Atmel Corp
Application granted granted Critical
Publication of DE69811254D1 publication Critical patent/DE69811254D1/de
Publication of DE69811254T2 publication Critical patent/DE69811254T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1008Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/341Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/357Cards having a plurality of specified features
    • G06Q20/3576Multiple memory zones on card
    • G06Q20/35765Access rights to memory zones

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Accounting & Taxation (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Storage Device Security (AREA)
  • Credit Cards Or The Like (AREA)
  • Inorganic Insulating Materials (AREA)
  • Cold Air Circulating Systems And Constructional Details In Refrigerators (AREA)
  • Warehouses Or Storage Devices (AREA)

Description

    HINTERGRUND DER ERFINDUNG 1. Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft einen sicheren Speicher gemäß dem Kennzeichen von Anspruch 1. Ein derartiger sicherer Speicher ist aus GUEULLE P: "LES E2PROM SERIE SECURISEES" ELECTRONIQUE RADIO PLANS, FR, SPE, PARIS, Nr. 548, 1. Juli. 1993, S. 23-28, XP000377636 ISSN: 1144-5742 bekannt.
  • 2. Stand der Technik
  • Plastikkarten zur Bezahlung gibt es seit den 1950-er Jahren mit der Einführung der Diner's Club-Karte. Ihre geradezu explosionsartige Verbreitung seit damals kann nur als phänomenal bezeichnet werden. Heutzutage werden jährlich Millionen Karten von verschiedenen Organisationen ausgegeben, so dass ihre Verwendung sowohl zur Bezahlung als auch zur Aufzeichnung von Informationen nun nahezu universal ist.
  • Ursprünglich waren diese Karten geprägt und hatten eine Unterschriftszeile, die als Vergleich dienen konnte, um die Sicherheit zu gewährleisten. Wie man sich jedoch leicht vorstellen kann, war dies kein Hindernis für Betrug und Missbrauch. Die erste wesentliche Sicherheitsverbesserung war das Hinzufügen eines Magnetstreifens auf der Rückseite der geprägten Karte. Plastikkarten mit einem Magnetstreifen sind wahrscheinlich die am weitesten verbreitete Form der derzeit verfügbaren Zahl- und Informationskarten. Der durch den Magnetstreifen bereitgestellte Speicherplatz erlaubte außerdem die Aufzeichnung viel größerer Informationsmengen als auf der Vorderseite einer Plastikkarte eingeprägt werden konnten. Obwohl diese Karten einen gewissen Schutz bieten, ist es für eine Person mit Zugang zu einem geeigneten Lese-/Schreibgerät nicht allzu schwierig, die auf einem Magnetstreifen gespeicherten Daten zu lesen, zu löschen und zu überschreiben. Dementsprechend sind sie für die Speicherung vertraulicher Daten oder für die Spei cherung eines Wertes, der anstelle von Geld verwendet werden kann, alles andere als geeignet.
  • Als Antwort auf diese Einschränkungen wurde eine Plastikkarte mit einem sicheren Speicher entwickelt. Solche Karten sind in der Branche als "intelligente Karten" bekannt. Der Speicherbereich des sicheren Speichers ist häufig in Speicherblöcke unterteilt. Die Aufgabe, einen Speicher sicher zu machen, besteht darin, diese Blöcke gegen unberechtigten Zugriff und unbefugte Manipulationen zu schützen. Die Sicherheit wird typischerweise durch eine Kombination aus Hardware und Software bereitgestellt. Mit einem sicheren Speicher ist es möglich, vertrauliche Daten einzuschreiben, die nicht gelesen oder gelöscht werden können, und das Schreiben von Daten zu verhindern, indem Lesen, Schreiben und Löschen durch die Kombination aus Hardware und Software gesteuert werden, die von bestimmten Bedingungen abhängen, die vor der Durchführung dieser Operationen vorliegen müssen.
  • Ein Beispiel einer "intelligenten Karte" mit einem sicheren Speicher, die weit verbreitet ist, ist die Telefonspeicherkarte. Diese Karten sind vorausbezahlt, und der im Speicher elektronisch gespeicherte Wert wird während der Verwendung um den entsprechenden Betrag verringert. Um Missbrauch zu verhindern, muss der Benutzer natürlich daran gehindert werden, die Karte zu manipulieren, um den gespeicherten Betrag zu erhöhen. Handelte es sich um eine Karte mit Magnetstreifen, ließe sich das Überschreiben der Karte mit einem neuen Wert auf einfache Weise bewerkstelligen.
  • Ein im Stand der Technik bekannter Weg, das unbefugte Manipulieren eines sicheren Speichers zur Erhöhung eines gespeicherten Betrags oder Wertes ist die Bereitstellung eines sicheren Codes, der nur dem Ausgeber der Karte bekannt ist. Ein systematischer Angriff mit dem Ziel, den sicheren Code zu ermitteln, wird durch einen Versuchszähler vereitelt, der die weitere Verwendung der Karte verhindert, wenn die Anzahl der Versuche, einen gültigen sicheren Code zu präsentieren, eine vor gegebene Anzahl überschreitet. Wird ein gültiger sicherer Code präsentiert, bevor der Versuchszähler seinen Grenzwert erreicht, wird der Versuchszähler auf null zurückgesetzt. Jeder dieser Blöcke ist außerdem durch einen Löschcode geschützt, der präsentiert werden muss, bevor der Speicherblock gelöscht werden kann. Leider sind diese Löschcodes gegen einen systematischen Angriff anfällig.
  • Eine andere Möglichkeit, eine unbefugte Manipulation von Telefonspeicherkarten zu unterbinden, bestand darin, das Löschen einer Speicherzelle praktisch unmöglich zu machen, nachdem Daten in sie geschrieben worden sind. Bei diesem Kartentyp wird typischerweise eine Sicherung zum Durchbrennen gebracht, was die Löschfunktion des Speichers deaktiviert. Da die Verringerung des Wertes bzw. Betrags auf der Karte durch Schreiben in den Speicher geschieht, kann folglich der zusätzliche Betrag oder Wert nicht durch Löschen in den Speicher eingefügt werden. Obwohl dies eine ziemlich zuverlässige Methode zur Verhinderung von Manipulationen ist, ist sie nicht überzeugend, da die Karte nach dem Aufbrauchen des Betrags nicht mehr durch Hinzufügen eines weiteren Betrags, weiterverwendet, werden kann.
  • Es ist deshalb eine Aufgabe der vorliegenden Erfindung, zusätzliche Sicherheit für Speicher bereitzustellen, die in Geräten integriert sind, die einen sicheren Speicherverlangen, wie beispielsweise eine intelligente Karte.
  • Außerdem ist es eine weitere Aufgabe der vorliegenden Erfindung, Sicherheit für Speicher bereitzustellen, die in Geräten mit sicherem Speicher wie intelligente Karten integriert sind, wodurch die wiederholte Weiterverwendung der Karte in der üblichen Weise nicht verhindert wird.
  • KURZBESCHREIBUNG DER ERFINDUNG
  • Gemäß der vorliegenden Erfindung weist ein sicherer Speicher Folgendes auf: eine Sicherheitszone einer ersten Ebene mit einem Zugriffscode, der den Zugriff auf diesen sicheren Speicher steuert, bevor eine seitens des Ausgebers vorgesehene Sicherung durchbrennt; einen Zähler der versuchten Sicherheitscodeeingaben, der den Zugriff auf den sicheren Speicher verhindert, wenn eine vorgegebene Anzahl. Versuche, dem Zugriffscode zu entsprechen, vorgenommen worden ist, bevor der Zähler der versuchten Sicherheitscodeeingaben rückgesetzt wird; eine Mehrzahl Anwendungszonen, dadurch gekennzeichnet, dass jede Zone dieser Mehrzahl Anwendungszonen Folgendes aufweist: eine Speicherzone; eine Anwendungssicherheitszone mit einem Anwendungszonen-Zugriffscode, der den Zugriff auf die Speicherzone steuert, nachdem eine seitens des Ausgebers vorgesehene Sicherung durchgebrannt ist; einen Zähler der versuchten Eingaben des Anwendungszonen-Sicherheitscodes, der den Zugriff auf die Anwendungszone verhindert, wenn eine vorgegebene Anzahl Versuche, dem Anwendungszonen-Zugriffscode zu entsprechen, vorgenommen worden ist, bevor der Zähler der versuchten Eingaben des Anwendungszonen-Sicherheitscodes rückgesetzt wird; eine Löschtastenpartition mit einem Löschtastencode, der den Löschzugriff auf die Speicherzone steuert, nachdem eine seitens des Ausgebers vorgesehene Sicherung durchgebrannt ist; und einen Zähler der Löschtastenversuche, der den Löschzugriff auf die Anwendungszone verhindert, wenn eine vorgegebene Anzahl Versuche, dem Löschtastencode zu entsprechen vorgenommen worden ist, bevor der Zähler der Löschtastenversuche rückgesetzt wird.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Fig. 1 zeigt, in Form eines Blockdiagramms eine allgemeine Architektur eines sicheren Speichers gemäß der vorliegenden Erfindung.
  • Fig. 2 zeigt eine Speichertabelle eines EEPROM's, der gemäß der vorliegenden Erfindung unterteilt ist.
  • Fig. 3 zeigt ein Impulsdiagramm eines Sicherheitscodevergleichs und einer Validierung gemäß der vorliegenden Erfindung.
  • Fig. 4A zeigt ein Impulsdiagramm einer Rücksetzoperation, die zur Anwendung in der vorliegenden Erfindung geeignet ist.
  • Fig. 4B zeigt ein Impulsdiagramm einer Leseoperation, die zur Anwendung in der vorliegenden Erfindung geeignet ist.
  • Fig. 4C zeigt ein Impulsdiagramm einer Vergleichsoperation, die zur Anwendung in der vorliegenden Erfindung geeignet ist.
  • Fig. 4D zeigt ein Impulsdiagramm eine Lösch-/Schreiboperation, die zur Anwendung in der vorliegenden Erfindung geeignet ist.
  • Fig. 5 zeigt ein schematisches Diagramm einer Schaltung zur Steuerung des Adressplatzes im EEPROM, die zur Anwendung in der vorliegenden Erfindung geeignet ist,
  • Fig. 6 zeigt ein schematisches Diagramm einer Schaltung zum Vergleichen eines Sicherheitscodes, die zur Anwendung in der vorliegenden Erfindung geeignet ist.
  • Fig. 7 zeigt ein schematisches Diagramm einer Schaltung zur Verifizierung des Schreibens von null, die zur Anwendung in der vorliegenden Erfindung geeignet ist.
  • Fig. 8 zeigt ein schematisches Diagramm einer Schaltung zum Setzen eines Sicherheitsflags, die zur Anwendung in der vorliegenden Erfindung geeignet ist.
  • Fig. 9 zeigt eine Tabelle mit Zugriffsbedingungen zur Personalisierung des sicheren Speichers, bevor eine Sicherung auf logisch '0' gesetzt wird, gemäß der vorliegenden Erfindung.
  • Fig. 10 zeigt ein schematisches Diagramm einer Schaltung zum Setzen der Rn- und Pn-Flags, die zur Anwendung in der vorliegenden Erfindung geeignet ist.
  • Fig. 11 zeigt eine Tabelle mit Zugriffsbedingungen zur Personalisierung des sicheren Speichers, nachdem eine Sicherung auf logisch '0' gesetzt wird, gemäß der vorliegenden Erfindung.
  • Fig. 12A zeigt, ein schematisches Diagramm einer Schaltung zum Erzeugen eines Lesefreigabesignals gemäß der vorliegenden Erfindung.
  • Fig. 12B zeigt ein schematisches Diagramm einer Schaltung zum Erzeugen eines Schreibsteuersignals für die Sicherung und eines Schreibsteuersignals gemäß der vorliegenden Erfindung.
  • Fig. 12C zeigt ein schematisches Diagramm einer Schaltung zum Erzeugen eines Löschsteuersignals gemäß der vorliegenden Erfindung.
  • Fig. 13 zeigt ein schematisches Diagramm einer Schaltung zum Erzeugen eines Schreibfreigabesignals für die Sicherung, eines Schreib- sowie eines Löschfreigabesignals gemäß der vorliegenden Erfindung.
  • DETAILLIERTE BESCHREIBUNG EINER BEVORZUGTEN AUSFÜHRUNGSFORM
  • Dem Durchschnittsfach wird klar sein, dass die folgende Beschreibung der vorliegenden Erfindung nur beispielhaft und in keiner Weise einschränkend ist. Andere Ausführungsformen der Erfindung werden sich den Fachleuten daraus erschließen.
  • Typischerweise sind mindestens drei Personengruppen an der Handhabung eines in einer intelligenten Karte integrierten Speichers beteiligt. Die erste sind die Hersteller des sicheren Speichers. Die, zweite sind die Hersteller der Karte, die den sicheren Speicher in die Karten integrieren und die intelligente Karten dann an die Endbenutzer verteilen. (Häufig sind Kartenhersteller und Kartenausgeber oder -distributoren verschiedene Personengruppen). Die dritte sind Benutzer des sicheren Speichers, die das Produkt vom Ausgeber oder Distributor erhalten haben. Gemäß der vorliegenden Erfindung wird eine höhere Sicherheit als sie im Stand der Technik bekannt ist, erreicht, um die unberechtigte Verwendung des sicheren Speichers durch die Endbenutzer oder solche Personen, die nicht an der Handhabung des sicheren Speichers beteiligt sind, zu verhindern.
  • In Fig. 1 zeigt ein Blockdiagramm der verallgemeinerten Architektur eines sicheren Speichers 10 gemäß der Erfindung. Im sicheren Speicher 10 befinden sich Blöcke für Rücksetzen bei Spannung Ein 12, einen Adressdecodierer 14, eine Sicherkeitslogik 16 und einen EEPROM-Speicher 18. Der sichere Speicher 10 hat acht Stifte, nämlich VDD, VSS, RST, CLK, PGM, FUS und I/O, die mit den verschiedenen Blöcken im sicheren Speicher wie gezeigt verbunden sind. Wie nachstehend beschrieben ist der EEPROM-Speicher 18 unterteilt, und ein berechtigter Zugriff auf die verschiedenen Partitionen zur Durchführung der Ope rationen READ (Lesen), WRITE (Schreiben), COMPARE (Vergleichen) und ERASE (Löschen) wird durch die gemäß der vorliegenden Erfindung bereitgestellte Sicherheit gesteuert.
  • Bei der Verhinderung eines unberechtigten Zugriffs auf den EEPROM-Speicher 18 ist auf zwei mögliche Fälle des unberechtigten Zugriffs einzugehen. Der erste Fall ergibt sich aufgrund der Übergabe des sicheren Speichers 10 vom Hersteller desselben an den Ausgeber des sicheren Speichers 10. Um die unberechtigte Verwendung des sicheren Speichers 10 durch Personen, die den sicheren Speicher 10 nach dem Ausgeber in ihren Besitz bringen könnten, zu verhindern, muss ein vom Hersteller festgelegter und dem Ausgeber mitgeteilter Sicherheitscode vom Ausgeber verwendet werden, um Zugriff auf den sicheren Speicher zu erlangen. Gemäß der vorliegenden Erfindung soll die bereitgestellte Sicherheit die unberechtigte Verwendung durch andere Personen als der Endbenutzer verhindern und andere Personen als den Ausgeber daran hindern, den Speicher unbefugt zu manipulieren oder in einer vom Ausgeber nicht zugelassenen Weise zu verwenden.
  • Nunmehr sei auf Fig. 2 verwiesen, in der eine Speichertabelle 20 die verschiedenen Speicherpartitionen des EEPROM-Speichers 18 zeigt. In der Speichertabelle 20 ist die Adresse im EEPROM- Speicher 18 jeder Speicherpartition zusammen mit der Anzahl Bits für die Speicherpartitionen angegeben. So findet sich beispielsweise die Partition mit der Bezeichnung Hersteller- Zone (Fabrication Zone), die später erläutert wird, bei Adressen 0 bis 15 in der Speichertabelle 20 und hat 16 Bits. Die Bits im EEPROM-Speicher 18 sind als 8-Bit-Wörter in Gruppen zusammengefasst. Die Speichertabelle 20 des EEPROM-Speichers 18 ist in vier Abschnitte 22, 24, 26 und 28 unterteilt worden, um jede Speicherpartition leichter verständlich darstellen zu können.
  • Abschnitt, 22 der Speichertabelle 20 enthält Partitionen für Hersteller und Ausgeber. Die Partitionen in Abschnitt 22 sind die Herstellerzone, die Ausgeberzone, der Sicherheitscode, der Zähler der versuchten Sicherheitscodeeingaben und die codegeschützte Zone. Der Endbenutzer kann ebenfalls auf die codegeschützte Zone zugreifen.
  • Die Herstellerzone und die Ausgeberzone enthalten jeweils Informationen, die den Hersteller bzw. den Ausgeber betreffen. Die Herstellerzone wird vom Hersteller des sicheren Speichers programmiert und kann nicht geändert werden. Der Zugriff auf die Ausgeberzone wird durch ein Sicherheitscodeflag gesteuert, das gesetzt wird, wenn ein gültiger Sicherheitscode vom sicheren Speicher 10 erkannt wird.
  • Die Partition für den Sicherheitscode enthält den Sicherheitscode, dem der Ausgeber entsprechen muss, um auf den EEPROM- Speicher 18 zugreifen zu können und dadurch verschiedene Partitionen des EEPROM-Speichers 18 zu personalisieren. Der Sicherheitscode dient als Sicherheit für den Transport zwischen dem Hersteller und dem Ausgeber und, was nachstehend ausführlicher erläutert wird, verhindert der Sicherheitscode nach der Personalisierung des EEPROM-Speichers 18 durch den Ausgeber den unberechtigten Zugriff auf die Anwendungszonen des EEPROM- Speichers 18. In dieser Eigenschaft ist der Sicherheitscode eine globale Zugriffskontrolle für den gesamten EEPROM-Speicher 18.
  • Der Zähler der versuchten Sicherheitscodeeingaben zählt die Anzahl der Eingabeversuche eines Sicherheitscodes. Der sichere Speicher 10 wird gesperrt, wenn der Zähler der versuchten Sicherheitscodeeingaben acht nicht gültige Eingaben eines Sicherheitscodes gezählt hat. Die codegeschützte Zone ist eine Partition, die als Notizblock verwendet werden kann, in dem ein READ-Zugriff zulässig ist und. WRITE/ERASE-Operationen durch das Sicherheitscodeflag gesteuert werden.
  • Der Abschnitt 24 der Speichertabelle 20 enthält vier Anwendungszonen, die Partitionen sowohl für die Sicherheit als auch die Speicherung enthalten. Jede der vier in der Speichertabelle 20 dargestellten Anwendungszonen enthält eine Partition für einen Sicherheitscode, einen Zähler der versuchten Sicherheitscodeeingaben, eine Löschtaste, einen Zähler der Löschtastenversuche und eine Speicherzone. Sobald der gesamten EEPROM- Speicher 18 vom Ausgeber personalisiert worden ist, steuern die Partitionen für den Sicherheitscode und den Zähler der versuchten Sicherheitscodeeingaben in jeder der Anwendungszonen den Lese- und Schreibzugriff, zusammen mit anderen Sicherheitsmaßnahmen auf ihre zugehörige Speicherzone, und die Partitionen für die Löschtaste und den Zähler der Löschtastenversuche in jeder Anwendungszone steuern den Löschzugriff zusammen mit anderen Sicherheitsmaßnahmen auf ihre zugehörige Speicherzone. Für den Durchschnittsfachmann dürfte klar sein, dass das Schreiben nach einem EEPROM der Prozess ist, bei dem eine logische '0' in einem EEPROM-Speicherbit eingetragen wird, und Löschen der Prozess, bei dem eine logische '1' in einem EEPROM-Speicherbit eingetragen wird.
  • Abschnitt 26 ist eine Speichertestzone und dient zur Prüfung aller Operationen des sicheren Speichers 10 ohne die Notwendigkeit eines Sicherheitszugriffs.
  • Abschnitt 28 ist eine Partition für eine Sicherung. Sobald der sichere Speicher 10 vom Ausgeber personalisiert worden ist, wird die Sicherungspartition 28 zum "Durchbrennen" gebracht, indem sie ständig auf logisch '0' gesetzt bleibt.
  • Wie oben erwähnt wird ein vom Hersteller festgelegter Sicherheitscode bei der Übergabe des sicheren Speichers 10 vom Hersteller an den Ausgeber dem Ausgeber durch den Hersteller mitgeteilt. Damit der Ausgeber zur Personalisierung des sicheren Speichers für den Benutzer auf den sicheren Speicher zugreifen kann, muss der Ausgeber den vom Hersteller mitgeteilten Sicherheitscode zum Vergleich mit dem vom Hersteller des sicheren Speichers 10 in der Sicherheitscodepartition 22 der Speichertabelle 20 programmierten Sicherheitscode eingehen. Damit der Ausgeber Zugriff auf den EEPROM-Speicher 18 erlangt, muss der vom Ausgeber eingegebene Sicherheitscode exakt mit dem vom Hersteller programmierten Sicherheitscode übereinstimmen.
  • Um einen systematischen Angriff auf den sicheren Speicher 10 durch eine unberechtigte Person zu verhindern, wird jeder Zugriffsversuch auf den sicheren Speicher 10 durch Eingabe eines mit dem vom Hersteller programmierten Sicherheitscode zu vergleichenden Sicherheitscodes durch den Zähler der versuchten Sicherheitscodeeingaben in Abschnitt 22 gezählt. Bei acht erfolglosen Versuchen, einen Sicherheitscode gleich dem programmierten Sicherheitscode einzugeben, ist die Möglichkeit, das Sicherheitsflag zu setzen nicht mehr gegeben. Bei jeder Übereinstimmung eines eingegebenen Sicherheitscodes mit dem programmierten Sicherheitscode wird der Zähler der versuchten Sicherheitscodeingaben auf null rückgesetzt.
  • Nunmehr sei auf Fig. 3 verwiesen, die das Impulsdiagramm 30 für den erfolgreichen Vergleich des Sicherheitscodes und das Setzen des Sicherheitsflags darstellt. Im Impulsdiagramm 30 werden die Operationen RESET (Rücksetzen), READ, COMPARE, WRITE und ERASE durchgeführt. Die Impulsdiagramme für die Operationen RESET, READ, COMPARE und ERASE/WRITE sind in Fig. 4A bis 4D dargestellt.
  • Wie im Impulsdiagramm 30 dargestellt wird zum Vergleichen eines Sicherheitscodes mit dem vom Hersteller programmierten Sicherheitscode zuerst ein Reset-Signal an den RST-(Reset) Stift des sicheren Speichers 10 angelegt. Im RESET-Betrieb wird der Adresszahler im Adressdecodierer 14 auf null rückgesetzt, und das erste Bit des EEPROM-Speichers 18 liegt am I/O-Stift nach der abfallenden Flanke des Reset-Signals vor. Danach wird der Adress Zähler durch ein an den CLK-(clock- Takt)Stift angelegtes Signal hochgezählt, während das an den PGM-(program/erase-Programmieren/Löschen) Stift des sicheren Speichers 10 auf "Low" gehalten wird, bis die Adresse der Sicherheitscodepartition erreicht ist. Dies ist die READ-Operation.
  • Der Adresszähler für den EEPROM-Speicher 18 wird durch die Adresszählsteuerschaltung 40 gemäß Fig. 5 gesteuert. Zwei Signale, CLKT und R, werden von der Adresszählsteuerschaltung 40 erzeugt, um einen mehrstufigen Zähler zu steuern, der zur Generierung der gewünschten Adresse des EEPROM-Speichers 18 dient. Das Signal CLKR ist ein internes Taktsignal, das zum Hochzahlen des Adresszählers dient, während das Signal R ein internes Signal zum Rücksetzen des Adresszählers auf null ist.
  • Die Adresszählsteuerschältung 40 hat folgende Eingangssignale: PGMERASEFUNC, WRT, CLK, RST, FLGRST und CPUB. In der Adresszählsteuerschältung sind die Signale PGMERASEFUNC und WRT beide mit den Eingängen eines NOR-Gatters 42 verbunden. Der Ausgang des NOR-Gatters 42 und das Signal CLK sind mit den Eingängen eines AND-Gatters 44 verbunden. Der Ausgang des AND- Gatters 44 und das Signal RST sind mit den Eingängen eines NOR-Gatters 46 verbunden und der Ausgang des NOR-Gatters 46 wird durch die Inverter 48 und 50 geführt, um das Signal CLKR zu bilden. Die Signale CLK und FLGRST sind mit den Eingängen eines AND-Gatters 52 verbunden. Der Ausgang das AND-Gatters 52 und das Signal CPUB sind mit den Eingängen eines NOR-Gatters. 54 verbunden, von dem ein Ausgang mit dem von der negativen Flanke angesteuerten Löscheingang eines D-Flipflops 56 verbunden ist. Das Signal RST ist außerdem über einen Inverter 58 mit dem Takteingang eines D-Flipflops 56 verbunden. Der Dateneingang des D-Flipflops 56 wird durch, einen mit Vss verbundenen Inverter 60 auf HIGH gehalten. Der Datenausgang des D- Flipflops 56 und das Signal CPUB sind mit den Eingängen eines NOR-Gatters 62 verbunden und der Ausgang des NOR-Gatters 62 wird durch einen Inverter 64 geführt, um das Signal R zu bilden.
  • Das Signal PGMERASEFUNC wird intern von einer, später zu beschreibenden Schaltung erzeugt. Es wird erzeugt, um den Adresszähler im Wartezustand zu halten, indem das Signal CLK nicht durch das AND-Gatter 42 geführt wird, wenn es umschaltet, wenn ein Lösch- oder Schreibzyklus durchgeführt wird wie bei Betrachtung der Adresszählsteuerschältung 40 ersichtlich wird. Das Signal RST wird extern erzeugt, um den Adress Zähler auf null rückzusetzen. Geht das Signal RST von HIGH nach LOW, wird das D-Flipflop 56 getaktet, und der Datenausgang des D- Flipflops 56 geht auf HIGH. Als Ergebnis geht das Signal R auf HIGH und der Adresszähler wird auf null rückgesetzt. Das, Signal FLGRST setzt das Signal R nach dem Rücksetzen des Adresszählers auf null, wodurch das Signal R nach HIGH ging, auf LOW zurück. Das Signal FLGRST wird durch den Adresszähler erzeugt, wenn die Adresse im EEPROM-Speicher 18 null ist, wenn entweder der EEPROM-Speicher 18 rückgesetzt ist oder der Adresszähler zu null übergelaufen ist. Das Signal CPUB wird erzeugt, wenn der sichere Speicher 10 angeschaltet wird.
  • Der Ausgang des Adresszählers wird in einen Steuerwort-Identifizierer eingespeist, der zur Erzeugung von Steuerwortsignalen dient, die angeben, ob bestimmte Adressen im EEPROM-Speicher 18 erreicht worden sind. Der Steuerwort-Identifizierer erzeugt außerdem ein Signal für das erste Bit, das zweite Bit und das achte (letzte) Bit jedes Wortes im EEPROM-Speicher 18. Wie nachstehend ausführlicher beschrieben wird, werden die vom Steuerwort-Identifizierer erzeugten Signale von der Sicherheitslogik zur Bestimmung, auf welche Partition im EEPROM- Speicher 18 zugegriffen wird, sowie zur. Bestimmung, ob das erste, zweite oder letzte Bit eines Wortes ebenfalls adressiert wird, verwendet.
  • Danach erfolgt ein bitweiser Vergleich des programmierten Sicherheitscodes mit dem dem I/O-Stift präsentierten Sicherheitscode, wenn das Taktsignal die Adresse des programmierten Sicherheitscodes hochzählt. Der Vergleich wird von der in Fig. 6 dargestellten Bitvergleichsschaltung 70 durchgeführt. In der Bitvergleichsschaltung 70 werden die von einem Leseverstärker in der SAOUT-Leitung aus dem EEPROM 18 bitweise ausgelesenen Daten von einem XNOR-Gatter 72 mit dem auf der I/O-Leitung eingegebenen Sicherheitscode verglichen, während er durch das D-Flipflop 74 getaktet wird. Bei der COMPARE-Operation wird der Adresszähler an der abfallenden Flanke des Taktsignals hochgezählt, und die Eingangsdaten werden an der ansteigenden Flanke des Taktsignals zwischengespeichert. Der Vergleich erfolgt an der nächsten abfallenden Flanke des Taktsignals.
  • Ein Vergleich erfolgt in dem Zeitpunkt, in dem das D-Flipflop 82 getaktet wird. Während der Vergleich durchgeführt wird, muss das Signal CMPBIT auf HIGH bleiben, um eine Übereinstimmung anzuzeigen. Damit CMPBIT auf HIGH liegen kann, müssen beide Eingänge des NAND-Gatters 80 auf HIGH sein; geht einer der Eingänge nach LOW, bleibt das Signal CMPBIT auf LOW. Da einer der Eingänge des NAND-Gatters 80 mit dem Ausgang des OR- Gatters 78 verbunden ist, muss der Ausgang des OR-Gatters 78 auf HIGH bleiben, damit das Signal CMPBIT auf HIGH bleibt. Die Eingänge des OR-Gatters 78 sind der Ausgang des Vergleichs aus dem XNOR-Gatter 72 und dem Signal SC WORD, das durch den Inverter 76 geführt wurde. Befindet sich der Adresszähler in der den Sicherheitscode enthaltenden Partition, liegt, das Signal SC WORD auf HIGH und als Ergebnis kann der Ausgang des OR- Gatters 78 durch das Signal SC WORD nicht auf HIGH gebracht werden, während sich der Adresszähler in der Partition für den Sicherheitscode befindet. Statt dessen ist der Ausgang des XNOR-Gatters 72 HIGH, um einen Ausgang HIGH vom OR-Gatters 78· bereitzustellen, damit das Signal CMPBIT auf HIGH bleibt, wenn die zu vergleichenden Bits identisch sind. Geht während des Vergleichs der Ausgang des OR-Gatters 78 nach LOW, geht das Signal CMPBIT nach LOW und bleibt auf LOW. Es ist zu beachten, dass bei Abschalten der Spannung während des Vergleichs die Operation COMPARE abgebrochen wird, weil das D-Flipflop vom Signal CPUB rückgesetzt wird. Ein Signal FLGRST setzt das D- Flipflop 82 zurück, wodurch eine weitere COMPARE-(Vergleichen)Operation möglich wird.
  • Bei Übereinstimmung des programmierten Sicherheitscodes mit dem eingegebenen Sicherheitscode ist eine Validierungsoperation durchzuführen. Bei der Validierungsoperation wird der Zähler der versuchten Sicherheitscodeeingaben hochgezählt und eine READ-Operation durchgeführt, bis im Zähler der versuchten Sicherheitscodeeingaben eine logische '1' gefunden wird. Während einer READ-Operation wird der Adresszähler hochgezählt. Wird bei der READ-Operation der Adresszähler hochgezählt, liegt das erste Bit am I/O nach der abfallenden Flanke des Taktsignals an. Es ist darauf hinzuweisen, dass ein Zähler der versuchten Sicherheitscodeeingaben mit ausschließlich logisch "1-en" bedeutet, dass kein erfolgloser Übereinstimmungsversuch unternommen wurde, seit der Zähler der versuchten Sicherheitscodeeingaben rückgesetzt worden war. An der Adresse, in der die logische '1' gefunden wird, erfolgt dann eine WRITE-Operation, um eine logische '0' an dieser Adresse einzutragen.
  • Die Schaltung 90 zur Verifizierung des Schreibens von null ist in Fig. 7 dargestellt. Die Eingangssignale zur Schaltung 90 zur Verifizierung des Schreibens von null sind CPUB, CLK, PGM und SAOUT. Das Signal CPUB ist über einen Inverter 92 mit einem Eingang eines AND-Gatters 94 und dem Löscheingang "C" eines D-Flipflops 100 verbunden. Das Signal CLK ist mit dem Eingang eines ersten NAND-Gatters 96, einem zweiten NAND-Gatters 98, dem Takteingang eines D-Flipflops 100 und einem dritten NAND-Gatter 102 verbunden. Das Signal PGM ist mit dem Takteingang eines D-Flipflops 104 und über einen Inverter 106 mit dem Dateneingang des D-Flipflops 100 und einem Eingang des dritten NAND-Gatters 102 verbunden. Der Datenausgang des D- Flipflops 100 ist außerdem mit einem Eingang des dritten NAND- Gatters 102 verbunden. Der Ausgang, des dritten NAND-Gatters 102 ist mit einem Eingang des AND-Gatters 94 verbunden. Das Signal SAOUT ist mit dem Dateneingang des D-Flipflops 104 verbunden. Ein anderer Eingang des ersten NAND-Gatters 96 ist über einen Inverter 108 mit dem Datenausgang des D-Flipflops 104 verbunden. Der Ausgang des ersten NAND-Gatters 96 ist mit einem Eingang eines AND-Gatters 110 verbunden, während der andere Eingang des AND-Gatters 110 mit dem Ausgang des AND- Gatters 94 verbunden ist. Der Ausgang des AND-Gatters 94 ist außerdem mit dem von der negativen Flanke angesteuerten Löscheingang 'C' des D-Flipflops 112 und einem Eingang des NAND- Gatters 98 verbunden. Der Datenausgang des D-Flipflops 104 ist außerdem mit dem NAND-Gatter 98 verbunden und der invertierte Ausgang des D-Flipflops 104 ist mit dem. Takteingang des D- Flipflops 112 verbunden. Vss ist über einen Inverter 114 mit dem Dateneingang des D-Flipflops 112 verbunden, und der Datenausgang des D-Flipflops 112 bildet nach Durchlaufen der Inver ter 116 und 118 den Ausgang der Schaltung 90 zur Verifizierung des Schreibens von null.
  • Anhand von Fig. 7 soll nunmehr die Validierungsoperation beschrieben werden. Wird eine logische '1' nach einer COMPARE- Operation wie oben erläutert aus dem Zähler der versuchten Sicherheitscodeeingaben ausgelesen, sollte das Signal SAOUT eine logische '1' sein. Geht das Signal PGM nach HIGH, um ein WRITE '0' nach der Adresse im Zähler der versuchten Sicherheitscodeeingaben zu starten, von der die logische '1' ausgelesen wurde, sollte eine logische '1' am Ausgang 'Q' des D- Fiipflops 104 zwischengespeichert werden. Zu diesem Zeitpunkt liegt das Signal WROVEN auf LOW. Falls ein WRITE '0' eingetreten ist, wird das Signal SAOUT an der nächsten ansteigenden Flanke von PGM zwischengespeichert.
  • Danach wird eine ERASE-(Löschen)Operation im Zähler der versuchten Sicherheitscodeeingaben durchgeführt. Dies resultiert in einer logischen '1', die am Ausgang des D-Flipflops 112 an der ansteigenden Flanke des Takteingangs des D-Flipflops 112 zwischengespeichert wird. Es ist hier darauf aufmerksam zu machen, dass bei einer WRITE-Operation nur ein einzige Bit geändert wird, während bei einer ERASE-Operation das gesamte Byte geändert wird. Dann erfolgt eine READ-Operation, um anzugeben, dass das Sicherheitscodeflag gesetzt worden ist, da ein Löschen des Zählers der versuchten Sicherheitscodeeingaben zugelassen worden war. Eine logische '1' gibt an, dass das Sicherheitscodeflag gesetzt worden ist, weil ein Löschen des Zählers der versuchten Sicherheitscodeeingaben eingetreten ist. Eine logische '0' gibt an, dass das Sicherheitscodeflag nicht gesetzt worden ist, weil kein Löschen des Zählers der versuchten Sicherheitscodeeingaben eingetreten ist. D-Flipflop 100, NAND-Gatter 102 und NAND-Gatter 94 stellen sicher, dass das Signal WROVEN zwangsweise auf logisch '0' gebracht wird, wenn die Spannungsversorgung rückgesetzt oder die Adresse hochgezählt wird.
  • Nach einem erfolgreichen COMPARE und der Durchführung einer WRITE-Operation wird das Sicherheitscodeflag von der in Figur. 8 dargestellten Schaltung 120 zum Setzen des Sicherheitscodeflag gesetzt. Die Eingänge zur Schaltung 120 zum Setzen des Sicherheitscodeflag sind ENABLE, CPUB, WROVEN, ACWORD und CMPBIT und der Ausgang ist SV. Das Signal ENABLE ist über einen Inverter 122 mit einem Eingang eines NOR-Gatters 124 sowie einem Eingang eines NAND-Gatters 126 verbunden. Mit den beiden anderen Eingängen des NAND-Gatters 126 sind die Signale ACWORD und CMPBIT verbunden. Das Signal CPUB ist mit einem, anderen Eingang des. NOR-Gatters 124 verbunden und der Ausgang des NOR- Gatters 124 ist mit dem von der negativen Flanke angesteuerten Löscheingang 'C' eines D-Flipflop 128 verbunden. Das Signal WROVEN ist mit dem Takteingang des D-Flipflops 128 verbunden. Der Dateneingang des D-Flipflops 128 ist mit dem Ausgang eines NAND-Gatters. 130 verbunden, dessen erster Eingang mit dem Ausgang des NAND-Gatters 126 und dessen zweiter Eingang über einen Inverter 132 mit dem Datenausgang des D-Flipflops 128 verbunden ist.
  • Unter der Voraussetzung, dass der Eingang CMPBIT zum NAND-Gatter 126 nach dem Sicherheitscodevergleich immer noch auf HIGH liegt, wenn WROVEN ansteigt, speichert das D-Flipflop 128 ein auf HIGH liegendes Ausgangssignal SV. (Unter der Voraussetzung, dass ENABLE und ACWORD ebenfalls auf HIGH liegen), bleibt SV auf HIGH, so lang der sichere Speicher 10 mit Spannung versorgt wird, und ENABLE liegt auf HIGH, da die logische '1' an SV durch einen Inverter zum NAND-Gatter 130 geführt wird, um eine logische '0' in das NAND-Gatter 130 einzugeben. Der Eingang zum D-Flipflop 128 bleibt wegen dieser Rückführung auf HIGH.
  • Sobald das Sicherheitscodeflag gesetzt worden ist, hat der Ausgeber des sicheren Speichers 10 Zugriff, um die Anwendungszonen für den Endbenutzer zu personalisieren. Nach der Personalisierung der gewünschten Abschnitte des sicheren Speichers 10, auf die der Ausgeber zugreifen kann, wird der Wert in der Sicherung in Abschnitt 28 auf eine logische '0' gesetzt. In Tabelle 1 von Fig. 9 sind die Zugriffsbedingungen für die Personalisierung des sicheren Speichers 10 vor dem Setzen der Sicherung auf logisch '0' dargestellt. Zur Personalisierung des sicheren Speichers 10 schreibt oder löscht der Ausgeber die gewünschten Daten in den bzw. aus dem sicheren Speicher 10 wie durch die Zugriffsbedingungen zugelassen. In Tabelle 1 stellt der Code SV das Sicherheitscodeflag dar, das sofern gesetzt eine logische '1' ist, der. Code Rn ist ein Leseflag für die Anwendungszonen, wobei n = 1, 2, 3 oder 4 die vier Anwendungszonen bezeichnen, und 'X' kennzeichnet ein "gleichgültig".
  • Als erstes Beispiel sind in der Partition für den Zähler der versuchten Sicherheitscodeeingaben (SCAC) bei SV = 0, d. h. bei nicht gesetztem Sicherheitscodeflag, nur der Lese- und Schreibzugriff zugelassen, und wenn SV = 1, d. h. das Codeflag ist gesetzt, sind der Lese-, Schreib- und Löschzugriff zugelassen. Als zweites Beispiel ist in der Partition für die erste Speicherzone (SMZ1) bei SV = 0 und R1 = 0 kein Zugriff zugelassen, bei SV = 0 und R1 = 1 ist der Lesezugriff zugelassen und bei SV = 1 sind der Lese-, Schreib- und Löschzugriff zugelassen. Bei der bevorzugten Ausführungsform wird das Rn-Flag durch den Wert im zweiten Bit in jedem der vier Speicherzonen gesetzt. Das Rn-Flag bleibt gesetzt, bis die Spannungsversorgung des sicheren Speichers deaktiviert wird, obwohl das zweite Bit in der betreffenden Speicherzone durch eine nachfolgende Operation auf eine logische '0' gesetzt werden kann.
  • In Fig. 10 ist eine Schaltung 140 zum Setzen des P- und R-Flag dargestellt. Die Schaltung 140 zum Setzen des P- und R-Flag setzt auch ein später zu beschreibendes Pn-Flag. Die Schaltung 140 zum Setzen des P- und R-Flag hat die Eingangssignale CPUB, CLKB, BITO, SAOUT, WORD und BIT1. Das Signal CPUB ist mit einem Reseteingang 'R' der D-Flipflops. 142 und 144 verbunden. Das Signal CLKB ist mit dem Takteingang der D-Flipflops 142, und 144 verbunden. Das Signal CLKB ist mit dem Takteingang der D-Flipflops 142 und. 144 verbunden. Die Signale SAOUT und WORD sind mit dem ersten und zweiten Eingang der AND-Gatter 146 und 148 verbunden und die Signale BIT0 und BIT1 sind mit dem ersten Eingängen der AND-Gatter 146 bzw. 148 verbunden. Die Ausgänge der AND-Gatter 146 und 148 sind mit einem ersten Eingang der NOR-Gatter 150 bzw. 152 verbunden. Die Ausgänge der NOR- Gatter 150 und 152 sind mit den Dateneingängen der D-Flipflops 142 bzw. 144 verbunden. Die Datenausgänge der D-Flipflops 142 und 144 werden zu den zweiten Eingängen der NOR-Gatter 150 bzw. 152 zurückgeführt und bilden außerdem die Pn- und Rn- Flags.
  • Bei Betrieb der Schaltung 140 zum Setzen des P- und R-Flag werden die Signale BIT0, BIT1 und WORD von der Steuerwort- Identifiziererschaltung gesetzt. Beim Setzen, eines bestimmten Rn-Flag befindet sich die Adresse in der Partition des Speichers, aus der das Rn-Flag auszulosen ist, das Signal WORD und BIT1 dieses Wortes liegen auf HIGH und falls der Wert des auf der SAOUT-Leitung ausgelesenen BIT1 ebenfalls HIGH ist, wird das Rn-Flag gesetzt. Das Rn-Flag bleibt so lang gesetzt, bis die Spannungsversorgung des sicheren Speichers durch das Signal CPUB deaktiviert wird. Dies gilt, obwohl das zweite Bit in der betreffenden Speicherzone durch eine nachfolgende Operation auf eine logische. '0' gesetzt werden kann, wodurch der Ausgang des AND-Gatters 148 auf eine logische '0' erzwungen wird, da der Ausgang des D-Fiipflops 144 durch die Rückführung durch das OR-Gatter 152 den Ausgang des OR-Gatters 152 auf einer logischen '1' hält. Die Operation des Setzens des Pn- Flag ist ähnlich der des Setzens des Rn-Flag, mit der Ausnahme, dass das Signal BIT0 anstelle des Signals BIT1 verwendet wird.
  • Der Durchschnittfachmann kann aus Fig. 9 problemlos erkennen, welche Flags gesetzt werden müssen, um in den bzw. aus den Partitionen des sicheren Speichers 10 Daten zu lesen, zu schreiben, zu löschen oder zu vergleichen. Lesen, Schreiben, Löschen und Vergleichen von Daten im sicheren Speicher 10 erfolgen durch Anlegen der geeigneten Signalfolge an die Stifte des sicheren Speichers 10 entsprechend der Lehre der Impulsdiagramme in Fig. 4A bis 4D.
  • Um beispielsweise nach einer. Partition für den Sicherheitscode in der ersten Anwendungszone zu schreiben, wird die Adresse des EEPROM-Speichers 10 zuerst auf null rückgesetzt, indem eine RESET-Operation vorgenommen wird. Dem Durchschnittsfachmann dürfte klar sein, dass eine RESET-Operation durch Anlegen von Signalen an die Stifte des sicheren Speichers in der durch das Impulsdiagramm für die RESET-Operation gemäß Fig. 4A vorgeschriebenen Reihenfolge durchgeführt werden kann. Danach wird eine READ-Operation durchgeführt, bis die Adresse im, Adresszähler auf die erste Adresse zur Partition für den Sicherheitscode in der ersten Anwendungszone hochgezählt worden ist. Schließlich wird eine WRITE-Operation durchgeführt, um die gewünschten Daten nach der Adresse des Sicherheitscodes in der ersten Anwendungszone zu schreiben. Wie oben ausgeführt, wird die Sicherungs-Partition dauerhaft auf logisch '0' gesetzt, um den Status einer durchgebrannten Sicherung zu emulieren, sobald der Ausgeber die Personalisierung des sicheren Speichers 10 für den Endbenutzer abgeschlossen hat.
  • Nach dem Durchbrennen der Sicherung wird der Zugriff auf den sicheren Speicher gemäß den in Tabelle 2 von Fig. 11 vorgeschriebenen Bedingungen bestimmt. In Tabelle 2 finden sich drei weitere Codes, die in Tabelle 1 von Fig. 9 nicht vorhanden sind. Diese Codes sind Sn, Pn und En. Der Code Sn repräsentiert ein Sicherheitscodeflag für die vier Anwendungszonen, wobei n = 1, 2, 3 oder 4 den vier Anwendungszonen entsprechen.
  • Ist das Sicherheitscodeflag für eine bestimmte Anwendungszone gesetzt, ist der Code Sn eine logische '1'. Zum Setzen des Sn- Flag in einer bestimmten Anwendungszone muss ein sicherer Code, der dem in der Partition für den sicheren Code gespeicherten Sicherheitscode entspricht, eingegeben werden. Die Vergleichs- und Validierungsoperationen werden auf die gleiche Weise wie oben für den in der Partition für den sicheren Code von Abschnitt 22 gefundenen Sicherheitscode durchgeführt. Der einzige Unterschied ist, dass der Vergleich - wie leicht nachvollziehbar ist - an der Adresse der Partition für den sicheren Code beginnt, die zur gewählten Anwendungszone gehört.
  • Der Code Pn ist ein Schreibflag für jede der vier Anwendungszonen. Bei der bevorzugten Ausführungsform wird das Pn-Flag durch den Wert im ersten Bit in jeder der vier Anwendungszonen gesetzt. Das gesetzte Pn-Flag ist eine logische '1'. Das Pn- Flag bleibt so lang gesetzt, bis die Spannungsversorgung des sicheren Speichers deaktiviert wird, obwohl das erste Bit in der betreffenden Speicherzone durch eine nachfolgende Operation auf eine logische '0' gesetzt werden kann. Das Setzen des Pn-Flag erfolgt wie in Zusammenhang mit Fig. 10 beschrieben.
  • Der Code En stellt ein Löschcodeflag für die vier Anwendungszonen dar. Ist das Löschcodeflag für eine bestimmte Anwendungszone gesetzt, ist der En-Code eine logische '1'. Um das En-Flag in einer bestimmten Anwendungszone zu setzen, muss ein Löschcode, der dem in der Löschtastenpartition der betreffenden Anwendungszone gespeicherten Löschcode entspricht, eingegeben werden. Die Vergleichs- und Validierungsoperationen werden wie oben für den in der Sicherheitscodepartition von Abschnitt 22 gefundenen Sicherheitscode durchgeführt. Der einzige Unterschied ist, dass der Vergleich - wie leicht nachvollziehbar ist - an der Adresse der Löschtastenpartition beginnt, die zur gewählten Anwendungszone gehört.
  • Damit der Endbenutzer Zugriff auf die verschiedenen Partitionen des EEPROM 18 zum Lesen, Schreiben, Löschen und Vergleichen erlangt, müssen die korrekten Kombinationen der SV-, Sn-, Pn-, Rn- und En-Flags gesetzt werden. Als Beispiele werden die erforderlichen Kombinationen der SV-, Sn-, Pn-, Rn- und En- Flags, die zum Lesen, Schreiben, Löschen und Vergleichen in einer der Speicherzonen gesetzt werden müssen, erläutert.
  • Für die Speicherzonen lässt sich der durch verschiedene Kombinationen von Flags gegebene Zugriff gut verständlich machen, indem die verschiedenen Kombinationen von Flags in drei Grup pen eingeteilt werden. In der ersten Gruppe ist Sn = 0, und der einzige zulässige Zugriff auf die Speicherzone ist ein READ-Operation, die stattfinden kann, wenn Rn = 1. In der zweiten ist SV = 1, Sn = 1 und Pb = 0. Bei diesem Satz Flags hängt der Zugriff auf die Speicherzone vom En-Flag ab. Ist En = 0, ist nur eine READ-Operation zulässig. Ist dagegen En = 1, sind READ- und ERASE-Operationen zulässig. In der dritten Gruppe ist SV = 1, Sn = 1, und Pn = 1. Bei diesem Satz Flags hängt der Zugriff auf die Speicherzone vom En-Flag ab. Ist En = 0, sind READ- und WRITE-Operationen zulässig. Ist dagegen En = 1, sind READ-, WRITE- und ERASE-Operationen zulässig.
  • Dementsprechend sollten folgende Hinweise beachtet werden. Erstens liegt der einzige Fall, in dem READ aus der Speicherzone nicht zulässig ist, dann vor, wenn sowohl Sn = 0 als auch Rn = 0. Zweitens liegt der einzige Fall, in dem WRITE zulässig ist, dann vor, wenn SV = 1, Sn = 1 und Pn = 1. Drittens liegt der einzige Fall, in dem ERASE zulässig ist, dann vor, wenn SV = 1, Sn = 1 und En = 1.
  • Das Schaltschema der kombinatorischen Logik zum Erzeugen der Freigabesignale an den EEPROM 18, so dass READ, WRITE oder ERASE der Daten im EEPROM 18 durchgeführt werden können, und der Freigabesignale zum Durchbrennen der Sicherungen für die Personalisierung wie oben beschrieben ist in Fig. 12A-12C dargestellt. Der Durchschnittsfachmann wird aus Fig. 12A-12C unschwer erkennen, dass die Flags wie zuvor beschrieben gesetzt werden müssen, um die gewünschten Freigabeausgangssignale von Fig. 12A-12C zu erhalten. So wird beispielsweise gemäß Fig. 12A eine Lesefreigabesignal erzeugt, das auf HIGH liegt, wenn das Signal PGMERASEFUNC auf LOW liegt, das Signal MEM auf HIGH liegt und die Flags für eine gewählte Partition, auf die zugegriffen werden soll, ebenfalls HIGH sind. Um die Offenbarung nicht zu kompliziert zu machen, werden die oben beschriebenen Flags nicht ein weiteres Mal behandelt.
  • Fig. 12B und 12C erzeugen die Steuersignale Schreiben (WRT CTRL), Schreiben nach der Sicherung (FZ WRT CTRL) und Löschen CLR CTRL) aus den wie oben beschrieben gesetzten Flags. Die Signale WRT CTLR, FZ WRT CTRL und CLR CTRL werden dann in eine in Fig. 13 dargestellte Schreib- und Löschsteuerschaltung eingespeist, die die Signale WRTEN, CLREN und WRT erzeugt, die vom EEPROM 18 zum Schreiben und Löschen von Daten verwendet werden, sowie das Freigabesignal FZ WRT EN zur Steuerung der Programmiersignale für die Sicherungen. Dem Durchschnittsfachmann wird die Funktionsweise der in Fig. 12A-12C und 13 dargestellten Schaltungen zur Erzeugung der Freigabesignale zum Lesen, Schreiben, Löschen und Programmieren der Sicherung gemäß den oben beschriebenen Flags klar sein.

Claims (1)

1. Sicherer Speicher (20) mit:
einer Sicherheitszone (22) einer ersten Ebene mit einem Zugriffscode (SC), der den Zugriff auf diesen sicheren Speicher (20) steuert, bevor eine seitens des Ausgebers vorgesehene Sicherung (28) durchbrennt;
einem Zähler der versuchten Sicherheitscodeeingaben (SCAC), der den Zugriff auf den sicheren Speicher (20) verhindert, wenn eine vorgegebene Anzahl Versuche, dem Zugriffscode zu entsprechen, vorgenommen worden ist, bevor der Zähler der versuchten Sicherheitscodeeingaben (SCAC) rückgesetzt wird;
einer Mehrzahl Anwendungszonen (1, 2, 3, 4), dadurch gekennzeichnet, dass jede Zone dieser Mehrzahl Anwendungszonen Folgendes aufweist:
eine Speicherzone (SMZ1, ..., SMZ4);
eine Anwendungssicherheitszone (SC1, ..., SC4) mit einem Anwendungszonen-Zugriffscode, der den Zugriff auf die Speicherzone steuert, nachdem eine seitens des Ausgebers vorgesehene Sicherung durchgebrannt ist;
einen Zähler der versuchten Eingaben des Anwendungszonen- Sicherheitscodes (S1AC, ..., S4AC), der den Zugriff auf die Anwendungszone verhindert, wenn eine vorgegebene Anzahl Versuche, dem Anwendungszonen-Zugriffscode zu entsprechen, vorgenommen worden ist, bevor der Zähler der versuchten Eingaben des Anwendungszonen-Sicherheitscodes rückgesetzt wird;
eine Löschtastenpartition (EZ1, ..., EZ4) mit einem Löschtastencode, der den Löschzugriff auf die Speicherzone steuert, nachdem eines seitens des Ausgebers vorgesehene Sicherung durchgebrannt ist; und
einen Zähler der Löschtastenversuche (E1AC, ..., E4AC), der den Löschzugriff auf die Anwendungszone verhindert, wenn eine vorgegebene Anzahl Versuche, dem Löschtastencode zu entsprechen vorgenommen worden ist, bevor der Zähler der Löschtastenversuche rückgesetzt wird.
DE69811254T 1997-10-03 1998-09-23 Sicherer speicher mit multiplen sicherheitsebenen Expired - Lifetime DE69811254T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/943,510 US5991519A (en) 1997-10-03 1997-10-03 Secure memory having multiple security levels
PCT/US1998/019944 WO1999018504A1 (en) 1997-10-03 1998-09-23 Secure memory having multiple security levels

Publications (2)

Publication Number Publication Date
DE69811254D1 DE69811254D1 (de) 2003-03-13
DE69811254T2 true DE69811254T2 (de) 2003-09-25

Family

ID=25479792

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69811254T Expired - Lifetime DE69811254T2 (de) 1997-10-03 1998-09-23 Sicherer speicher mit multiplen sicherheitsebenen

Country Status (12)

Country Link
US (1) US5991519A (de)
EP (1) EP1019817B1 (de)
JP (1) JP2001519561A (de)
KR (1) KR100544243B1 (de)
CN (1) CN1218249C (de)
AU (1) AU9505698A (de)
CA (1) CA2303348A1 (de)
DE (1) DE69811254T2 (de)
HK (1) HK1031001A1 (de)
NO (1) NO319811B1 (de)
RU (1) RU2214008C2 (de)
WO (1) WO1999018504A1 (de)

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10361802B1 (en) 1999-02-01 2019-07-23 Blanding Hovenweep, Llc Adaptive pattern recognition based control system and method
US6012049A (en) * 1998-02-04 2000-01-04 Citicorp Development Center, Inc. System for performing financial transactions using a smartcard
EP1113387A3 (de) * 1999-12-31 2001-11-21 SCHLUMBERGER Systèmes Chipkarte mit einem nichtflüchtigen Speicher mit neuer Zuordnung
NZ518169A (en) * 2000-02-21 2003-01-31 Trek 2000 Int Ltd Portable data storage device connectable to a computer serial bus using non-volatile solid state memory device
US7350204B2 (en) * 2000-07-24 2008-03-25 Microsoft Corporation Policies for secure software execution
US7702785B2 (en) * 2001-01-31 2010-04-20 International Business Machines Corporation Methods, systems and computer program products for selectively allowing users of a multi-user system access to network resources
US7181017B1 (en) 2001-03-23 2007-02-20 David Felsher System and method for secure three-party communications
CA2350029A1 (en) * 2001-06-08 2002-12-08 Cloakware Corporation Sustainable digital watermarking via tamper-resistant software
GB2376540B (en) * 2001-06-12 2005-05-04 Hewlett Packard Co Upgrade of licensed capacity on computer entity
US7243853B1 (en) * 2001-12-04 2007-07-17 Visa U.S.A. Inc. Method and system for facilitating memory and application management on a secured token
DE10162307A1 (de) * 2001-12-19 2003-07-03 Philips Intellectual Property Verfahren und Anordnung zur Herstellung von maskenprogrammierten ROMs unter Verwendung einer mehrere Systeme umfassenden Maske sowie ein entsprechendes Computerprogrammprodukt und ein entsprechendes computerlesbares Speichermedium
DE10218795B4 (de) * 2002-04-22 2009-03-19 Deutscher Sparkassen Verlag Gmbh Verfahren zum Herstellen eines elektronischen Sicherheitsmoduls
JP3979195B2 (ja) 2002-06-25 2007-09-19 ソニー株式会社 情報記憶装置、およびメモリアクセス制御方法、並びにコンピュータ・プログラム
US7444682B2 (en) * 2002-07-03 2008-10-28 Macronix International Co., Ltd. Security memory device and method for making same
US7395435B2 (en) * 2002-09-20 2008-07-01 Atmel Corporation Secure memory device for smart cards
US20040139021A1 (en) 2002-10-07 2004-07-15 Visa International Service Association Method and system for facilitating data access and management on a secure token
US20040128528A1 (en) * 2002-12-31 2004-07-01 Poisner David I. Trusted real time clock
US9818136B1 (en) 2003-02-05 2017-11-14 Steven M. Hoffberg System and method for determining contingent relevance
JP4682498B2 (ja) 2003-04-09 2011-05-11 ソニー株式会社 通信装置及び通信装置のメモリ管理方法
US20050005105A1 (en) * 2003-06-24 2005-01-06 Brown Larry Cecil Remote access control feature for limiting access to configuration file components
US20050257016A1 (en) * 2004-05-17 2005-11-17 Brian Boles Digital signal controller secure memory partitioning
JP4717381B2 (ja) 2004-06-11 2011-07-06 株式会社エヌ・ティ・ティ・ドコモ 移動機、及び、アクセス制御方法
US20070011723A1 (en) * 2005-07-07 2007-01-11 Ching-Yun Chao Method for maintaining application compatibility within an application isolation policy
US8447975B2 (en) * 2005-07-07 2013-05-21 International Business Machines Corporation Workstation application server programming protection via classloader policy based visibility control
US7395964B2 (en) * 2005-09-06 2008-07-08 International Business Machines Corporation Secure voting system
JP4361894B2 (ja) * 2005-09-15 2009-11-11 株式会社エヌ・ティ・ティ・ドコモ 外部メモリ管理装置、及び外部メモリ管理方法
US8874477B2 (en) 2005-10-04 2014-10-28 Steven Mark Hoffberg Multifactorial optimization system and method
KR100652017B1 (ko) * 2005-12-08 2006-12-01 한국전자통신연구원 물리보안공격에 대한 닥시스 케이블 모뎀의 보안 방법
US8997255B2 (en) 2006-07-31 2015-03-31 Inside Secure Verifying data integrity in a data storage device
US8301890B2 (en) * 2006-08-10 2012-10-30 Inside Secure Software execution randomization
US7613907B2 (en) * 2006-08-11 2009-11-03 Atmel Corporation Embedded software camouflage against code reverse engineering
US7984301B2 (en) * 2006-08-17 2011-07-19 Inside Contactless S.A. Bi-processor architecture for secure systems
US8352752B2 (en) * 2006-09-01 2013-01-08 Inside Secure Detecting radiation-based attacks
US7554865B2 (en) * 2006-09-21 2009-06-30 Atmel Corporation Randomizing current consumption in memory devices
US7882365B2 (en) * 2006-12-22 2011-02-01 Spansion Llc Systems and methods for distinguishing between actual data and erased/blank memory with regard to encrypted data
US10348681B2 (en) * 2007-01-24 2019-07-09 International Business Machines Corporation Centralized secure offload of security services for distributed security enforcement points
US8423789B1 (en) 2007-05-22 2013-04-16 Marvell International Ltd. Key generation techniques
WO2009018483A1 (en) * 2007-07-31 2009-02-05 Viasat, Inc. Input output access controller
US8510560B1 (en) 2008-08-20 2013-08-13 Marvell International Ltd. Efficient key establishment for wireless networks
US8296555B2 (en) 2008-09-18 2012-10-23 Marvell World Trade Ltd. Preloader
US8645716B1 (en) * 2010-10-08 2014-02-04 Marvell International Ltd. Method and apparatus for overwriting an encryption key of a media drive
US9436629B2 (en) 2011-11-15 2016-09-06 Marvell World Trade Ltd. Dynamic boot image streaming
US9575768B1 (en) 2013-01-08 2017-02-21 Marvell International Ltd. Loading boot code from multiple memories
US9736801B1 (en) 2013-05-20 2017-08-15 Marvell International Ltd. Methods and apparatus for synchronizing devices in a wireless data communication system
US9521635B1 (en) 2013-05-21 2016-12-13 Marvell International Ltd. Methods and apparatus for selecting a device to perform shared functionality in a deterministic and fair manner in a wireless data communication system
EP3028145A1 (de) 2013-07-31 2016-06-08 Marvell World Trade Ltd. Parallelisierung von startoperationen
US11809610B2 (en) * 2014-06-16 2023-11-07 Texas Instruments Incorporated Hardware protection of inline cryptographic processor
DE102015223335A1 (de) * 2015-11-25 2017-06-01 Robert Bosch Gmbh Verfahren zum Betreiben eines Mikrocontrollers
US20170262180A1 (en) * 2016-03-08 2017-09-14 Burlywood, LLC Integrated control of write-once data storage devices
WO2017168228A1 (en) 2016-03-08 2017-10-05 Marvell World Trade Ltd. Methods and apparatus for secure device authentication
US11050569B2 (en) * 2019-08-14 2021-06-29 Macronix International Co., Ltd. Security memory scheme

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3318083A1 (de) * 1983-05-18 1984-11-22 Siemens AG, 1000 Berlin und 8000 München Schaltungsanordnung mit einem speicher und einer zugriffskontrolleinheit
JPH0734215B2 (ja) * 1985-02-27 1995-04-12 株式会社日立製作所 Icカ−ド
FR2626095B1 (fr) * 1988-01-20 1991-08-30 Sgs Thomson Microelectronics Systeme de securite pour proteger des zones de programmation d'une carte a puce
FR2673476B1 (fr) * 1991-01-18 1996-04-12 Gemplus Card Int Procede securise de chargement de plusieurs applications dans une carte a memoire a microprocesseur.
US5508691A (en) * 1992-06-22 1996-04-16 Lynx Systems, Inc. Self-contained electronic lock with changeable master and slave codes
IL111151A (en) * 1994-10-03 1998-09-24 News Datacom Ltd Secure access systems
US5606315A (en) * 1994-12-12 1997-02-25 Delco Electronics Corp. Security method for protecting electronically stored data
US5699514A (en) * 1995-12-26 1997-12-16 Lucent Technologies Inc. Access control system with lockout

Also Published As

Publication number Publication date
KR100544243B1 (ko) 2006-01-23
CN1276891A (zh) 2000-12-13
NO20001665L (no) 2000-03-30
NO319811B1 (no) 2005-09-19
EP1019817B1 (de) 2003-02-05
DE69811254D1 (de) 2003-03-13
HK1031001A1 (en) 2001-05-25
US5991519A (en) 1999-11-23
WO1999018504A1 (en) 1999-04-15
CA2303348A1 (en) 1999-04-15
EP1019817A1 (de) 2000-07-19
RU2214008C2 (ru) 2003-10-10
CN1218249C (zh) 2005-09-07
NO20001665D0 (no) 2000-03-30
KR20010030883A (ko) 2001-04-16
EP1019817A4 (de) 2001-01-03
AU9505698A (en) 1999-04-27
JP2001519561A (ja) 2001-10-23

Similar Documents

Publication Publication Date Title
DE69811254T2 (de) Sicherer speicher mit multiplen sicherheitsebenen
DE69012692T2 (de) Karte mit festverdrahteter Mikroschaltung und Verfahren zur Durchführung einer Transaktion zwischen einer solchen Karte und einem Endgerät.
DE69615736T2 (de) Speicherkarte und Vorrichtung zum Betrieb einer solchen Karte
EP0128362B1 (de) Schaltungsanordnung mit einem Speicher und einer Zugriffskontrolleinheit
DE3782328T2 (de) Chipkarte mit externer programmiermoeglichkeit und verfahren zu ihrer herstellung.
DE2837201C2 (de)
DE3041109C2 (de)
DE2621271C2 (de) Tragbarer Datenträger
DE2621269C2 (de) Datenaustauschsystem mit wenigstens einer Datenträgeranordnung
DE69100003T2 (de) Sicherheitsverriegelung fuer integrierten schaltkreis.
EP0129054A1 (de) Schaltungsanordnung mit einem Datenspeicher und einer Ansteuereinheit zum Auslesen, Schreiben und Löschen des Speichers
DE69316516T2 (de) Gesichertes Chipkartensystem mit wiederverwendbarer Prototypkarte
DE10162306A1 (de) Verfahren und Anordnung zur Verifikation von NV-Fuses sowie ein entsprechendes Computerprogrammprodukt und ein entsprechendes computerlesbares Speichermedium
DE102009033961A1 (de) Emulation eines einmal programmierbaren Speichers
DE69602984T2 (de) Verfahren zum Schützen nichtflüchtiger Speicherbereiche
DE69835282T2 (de) Schaltungsanordnung zur Spannungsüberwachung und Speicherkarte mit einer solchen Schaltung
DE3025044C2 (de)
EP1338970B1 (de) Verfahren und Anordnung zur Zugriffssteuerung auf EEPROMs sowie ein entsprechendes Computerprogrammprodukt und ein entsprechendes computerlesbares Speichermedium
EP1022659A2 (de) Schaltungsanordnung zur elektonischen Datenverarbeitung
DE2858819C2 (de) Tragbarer Informationsträger für die Speicherung und Verarbeitung von Informationen
DE10336225B3 (de) Zustandskennzeichen (Flag) für einen bezüglich Löschen und Schreiben asymmetrischen Speicher
DE60035915T2 (de) Einrichtung und Verfahren zur Prüfung eines nichtflüchtigen wiederprogrammierbaren Speichers
DE19859579A1 (de) Chipkarte als vorzugsweise gesicherter Quittungsbeleg
DE3051266C2 (de) Verfahren zum Aufzeichnen einer Zugriffsinformation oder einer Fehlerinformation in einem Informationsträger
DE69901318T2 (de) Verfahren und gerät zur überprüfung des betriebszyklus eines tragbaren gegenstandes, insbesondere einer chipkarte

Legal Events

Date Code Title Description
8364 No opposition during term of opposition