DE69602984T2 - Verfahren zum Schützen nichtflüchtiger Speicherbereiche - Google Patents

Verfahren zum Schützen nichtflüchtiger Speicherbereiche

Info

Publication number
DE69602984T2
DE69602984T2 DE69602984T DE69602984T DE69602984T2 DE 69602984 T2 DE69602984 T2 DE 69602984T2 DE 69602984 T DE69602984 T DE 69602984T DE 69602984 T DE69602984 T DE 69602984T DE 69602984 T2 DE69602984 T2 DE 69602984T2
Authority
DE
Germany
Prior art keywords
address
protected area
memory
register
volatile register
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 - Fee Related
Application number
DE69602984T
Other languages
English (en)
Other versions
DE69602984D1 (de
Inventor
Francois Tailliet
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.)
STMicroelectronics SA
Original Assignee
STMicroelectronics SA
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 STMicroelectronics SA filed Critical STMicroelectronics SA
Publication of DE69602984D1 publication Critical patent/DE69602984D1/de
Application granted granted Critical
Publication of DE69602984T2 publication Critical patent/DE69602984T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/20Address safety or protection circuits, i.e. arrangements for preventing unauthorized or accidental access

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Read Only Memory (AREA)

Description

  • Die Erfindung betrifft nicht-flüchtige, elektrisch löschbare und beschreibbare elektronische Speicher (EEPROM), insbesondere, aber nicht ausschließlich, solche, die für Chipkarten gedacht sind.
  • Bei vielen Anwendungen von elektronischen Schaltkreisen mit nicht-flüchtigen Speichern möchte man den Zugriff auf bestimmte Gebiete im Speicher verhindern, ohne gleich den Zugang auf andere Gebiete zu untersagen.
  • Ein typischer Anwendungsfall, auf den man sich in der gesamten folgenden Beschreibung bezieht, ist der Fall eines Schaltkreises einer Chipkarte: der Schaltkreis wird durch eine erste Person hergestellt, nämlich durch den Hersteller; er wird durch einen Kunden für eine gegebene Anwendung gekauft, bei welcher der Schaltkreis in eine Chipkarte eingegliedert wird; diese Karte wird durch den Kunden einem Nutzer für Anwendungen wie die Bereitstellung von Gütern oder Diensten, Zugangskontrolle etc. zur Verfügung gestellt. Die Arbeitsprogramme und gewisse Daten werden durch den Kunden definiert und abgespeichert oder modifiziert, und zwar ausschließlich unter seiner Kontrolle. Sie dürfen nicht durch den Nutzer modifiziert werden können, sei es gewollt oder ungewollt. Andere Daten des Speichers müssen jedoch für den Nutzer zugänglich und modifizierbar bleiben.
  • Es ist daher vorgesehen, daß die EEPROM-Speicher in einem geschützten Modus arbeiten können: ein Teil des Speichers ist geschützt; der andere ist frei zugänglich. Im folgenden ist ausschließlich die Rede vom Schreibschutz (Verbot, den Inhalt der geschützten Zone zu verändern), aber die Erfindung ist auf einen Leseschutz (Verbot, den geschützten Bereich zu le sen) oder gleichzeitig auf Lese- und Schreibschutz übertragbar.
  • Der Schreibschutz ermöglichst es, eine durch den Nutzer in betrügerischer Absicht vorgenommene Modifizierung von Daten oder eine zufällige Modifizierung durch parasitäre Signale in der Schaltung (z. B. bei einer Sequenz zum Wiedereinschalten des Schaltkreises) oder durch Fehler oder Instabilitäten der Arbeitsprogramme zu verhindern, wenn ein interner oder externer Mikroprozessor der Karte den Speicher kontrolliert, z. B. wie in WO-A-9415320 dargelegt.
  • Der Hersteller des Speicherschaltkreises weiß a priori nicht, welche Dimension des Speichers geschützt werden muß und welche Dimension für den Nutzer freigelassen werden soll. Tatsächlich hängen die jeweiligen Dimensionen von der Anwendung ab. Es ist der Kunde des Schaltkreises und nicht der Hersteller oder letztendliche Nutzer, der dieses definiert. Jedoch ist es wünschenswert, daß ein einziger Typ von Schaltkreis unabhängig von der vom Kunden beabsichtigten Anwendung hergestellt werden kann. Wenn dies nicht der Fall ist, muß der Hersteller unterschiedliche Fabrikationsreihen vorsehen, selbst wenn die Schaltkreise in allen Punkten bis auf diese Frage in bezug auf die Dimension des geschützten Bereiches identisch sind.
  • Man sieht daher Mittel vor, die zur Disposition des Kunden stehen, um zu definieren, welches der Teil des Speichers ist, der geschützt werden muß. Der Kunde kann dadurch nach Abspeichern von zu schützenden Informationen in einem Teil des Speichers den Schutz dieses Teils implementieren.
  • Beim Stand der Technik wurde vorgeschlagen, dafür einen speziell kodierten Befehl für den Mikroprozessor vorzusehen, der den Speicherschaltkreis steuert, wie es z. B. in EP-A- 0 326 053 erläutert wird. Dieser Befehl erlaubt es, in einem nicht-flüchtigen Register außerhalb des eigentlichen Speichers eine Information abzulegen, die präzise angibt, welches der geschützte Bereich des Speichers ist und welches der nicht geschützte Bereich ist. Bisweilen ist diese Information teils in einem nicht-flüchtigen Register und teils fest verdrahtet abgespeichert: z. B. sind die niedrigen Werte einer Adresse des Anfangs des geschützten Bereiches in dem Register abgelegt, und die hohen Werte dieser Adresse sind abgespeichert, indem ein oder zwei Stifte außerhalb des integrierten Schaltkreises auf Vcc oder Masse je nach abzulegenden Bits gelegt werden. Diese Lösungen haben sich als wenig komfortabel für den Kunden herausgestellt.
  • Ebenfalls wurde vorgeschlagen, bei dem Fall, bei dem kein spezieller Befehl für den Mikroprozessor zur Verfügung steht, den geschützten Bereich durch eine Folge von Befehlen zu definieren, deren Kombination normalerweise unmöglich oder sehr unwahrscheinlich ist. Auf diese Art ist es sehr wenig wahrscheinlich, daß sich eine Sequenz zur Definition des geschützten Bereiches zufällig oder auch in betrügerischer Absicht erzeugen läßt. Jedoch ist es nicht unmöglich, und auf jeden Fall ist die Umsetzung für den Kunden, der den geschützten Bereich definieren will, wenig komfortabel.
  • Ein Ziel der Erfindung ist es, dem Kunden komfortablere Mittel zur Verfügung zu stellen, um eine gewünschte Aufteilung des Speichers in einen geschützten Bereich und einen nicht geschützten Bereich vornehmen zu können.
  • Erfindungsgemäß wird ein Verfahren zum Aufteilen eines Speichers in einen geschützten Bereich und einen nicht geschützten Bereich in einem integrierten Speicherschaltkreis mit Mitteln, um einen Zugriff auf Adressen des Speichers zu verhindern oder freizugeben, je nachdem ob sie in dem geschütz ten Bereich oder in dem nicht geschützten Bereich liegen, wobei der geschützte Bereich durch zwei Endadressen des Bereiches definiert ist, von denen eine vorgegeben ist und die andere wählbar ist, vorgeschlagen, wobei dieses Verfahren die folgenden Operationen umfaßt:
  • a) Schreiben in dem Speicher unter aufeinanderfolgenden Adressen in dem gewünschten geschützten Bereich,
  • c) Ausführen einer letzten Schreiboperation bei der vorgegebenen Adresse, die ein Ende des geschützten Bereiches darstellt,
  • dadurch gekennzeichnet, daß
  • zwischen dem Schritt a) und c) der Schritt
  • b) ausgeführt wird, der darin besteht, automatisch in ein flüchtiges Register ursprünglich den Wert der ersten Adresse, bei der man schreibt, einzuschreiben; rund daß nach Schritt c) der Schritt
  • d) durchgeführt wird, der darin besteht, automatisch in ein nicht-flüchtiges Register die Adresse in dem flüchtigen Register zu übertragen, wenn die Schreiboperation bei der vorgegebenen Adresse erfolgt, wobei der geschützte Bereich zwischen der in dem nicht-flüchtigen Register befindlichen Adresse und der vorgegebenen Adresse liegt.
  • Die in dem flüchtigen Speicher enthaltene Adresse kann wie weiter unten erläutert wird während des ganzen Verfahrens stabil sein oder sich aber zwischen den Operationen b und c verändern.
  • Mit anderen Worten, anstatt daß der Kunde gezwungen wird, ein spezielles Verfahren zur Definition des geschützten Bereiches einzurichten, bevor oder nachdem die sensiblen Informationen in diesem Bereich abgelegt worden sind, begnügt man sich damit, in dem Speicher die sensiblen, zu schützenden Informationen zu schreiben, und es ist ganz einfach die Reihenfolge von Schreibadressen, die definiert, was exakt der geschützte Bereich ist. Es gibt keinen speziellen Befehl zum Schutz des Bereiches; lediglich normale Befehle zum Schreiben in dem Speicher werden betroffen. Dies ist besonders komfortabel für den Kunden.
  • Man kann daher die Erfindung auch auf die folgende Art definieren: ein Verfahren zum Aufteilen eines Speichers in einen geschützten Bereich mit einer vorher nicht festgelegten Dimension, der sensible Informationen enthält, und einen nicht geschützten Bereich in einem integrierten Schaltkreis mit Mitteln, um den Zugriff auf den Speicher in dem geschützten Bereich einzuschränken, dadurch gekennzeichnet, daß ein Ende des geschützten Bereiches vor der Operation des Aufteils vorgegeben ist, wobei das andere Ende unbestimmt bleibt, daß die Operation des Aufteilens darin besteht, die sensiblen Informationen unter den Adressen des gewünschten geschützten Bereiches zu schreiben, wobei die letzte Operation des Schreibens bei der Adresse des vorgegebenen Endes erfolgt, und daß diese letzte Operation des Schreibens automatisch das Abspeichern einer speziellen Adresse in einem nicht-flüchtigen Register auslöst, definiert anhand von Adressen, unter denen man die sensiblen Informationen geschrieben hat, wobei diese spezielle Adresse das andere Ende des geschützten Bereiches definiert.
  • Mehrere Ausführungsformen sind möglich und dienen zur Erläuterung der Erfindung; Einzelheiten von Beispielen werden im folgenden erläutert.
  • Das einfachste Beispiel ist das folgende: die letzte vorgegebene Adresse ist die letzte Adresse ADF des Speichers. Der Kunde möchte einen geschützten Bereich zwischen einer Ausgangsadresse ADP und der Endadresse ADF. Dazu schreibt er die zu schützenden Informationen in diese Zone, und die einzigen Einschränkungen, die er dabei berücksichtigen muß, sind die folgenden: Anfangen mit der Adresse ADP und Enden mit der Adresse ADF. Das ist nichts anderes als zu schreiben, indem man mit der Adresse ADP beginnt, wobei provisorisch die Adresse ADP in dem Schaltkreis abgespeichert wird. Und Schreiben unter der Adresse ADF bedeutet nichts anderes, als daß automatisch ein Verfahren ausgelöst wird, unsichtbar für den Kunden, bei dem definitiv die Adresse ADP in einem nichtflüchtigen Register abgelegt wird, wodurch die Aufteilung des Speichers definiert wird.
  • Ein anderes Beispiel, bei dem eine Schaltung zum Umsetzen benötigt wird, die etwas komplexer ist, kann unmittelbar folgend hier gegeben werden, um die Allgemeingültigkeit der Erfindung zu illustrieren: der geschützte Bereich ist der Bereich zwischen einerseits der kleinsten vom Kunden im Verlauf der Programmierung in dem geschützten Bereich verwendeten Adresse und andererseits der Endadresse des Speichers. In diesem Fall wird zwischen den Schritten b und c, die oben definiert wurden, der rekursive Schritt b1 eingefügt, der darin besteht, bei jedem Schreiben den Inhalt des flüchtigen Registers zu verändern, um dort den kleinsten der zwei folgenden Werte abzulegen: Adresse im Verlauf des Schreibens und Adresse in dem Register. In dem Moment, wo in der letzten Adresse ADF des Speichers (oder jeder anderen vorgegebenen Adresse) geschrieben wird, stellt der Inhalt des flüchtigen Registers, automatisch in das nicht-flüchtige Register übertragen, die kleinste der Adressen dar, unter der im Verlauf der Operation geschrieben wurde. Zu diesem Zeitpunkt ist der geschützte Bereich einzig durch die Schreiboperationen in diesem Bereich definiert.
  • Somit ist der Kern der Erfindung ein automatisches Verfahren zur Definition der Aufteilung in geschützten Bereich und nicht geschützten Bereich, wobei einzig das Schreiben von zu schützenden Informationen ein Ende des geschützten Bereiches definiert, wobei das andere Ende vorher definiert ist und vorgegeben ist.
  • Dieses Verfahren setzt lediglich voraus, daß eines der Enden des geschützten Bereiches vorgegeben ist, d. h. daß die Konfiguration des Schaltkreises im Moment der Aufteilungsoperation es erlaubt, den Empfang eines Schreibbefehls bei dieser Adresse zuzulassen, um die automatische Aufteilung auszulösen.
  • Außer auf das Verfahren zum Aufteilen, das oben definiert worden ist, strebt die vorliegenden Patentanmeldung außerdem den Schutz eines Speicherschaltkreises an, der Mittel umfaßt, die zum Durchführen dieses Verfahrens geeignet sind.
  • Es, wird daher ein integrierter Speicherschaltkreis mit Mitteln, um den Zugriff auf einen geschützten Bereich des Speichers zu beschränken, wobei diese Mittel auf ein nichtflüchtiges Register zurückgreifen, das eine Adresse des Endes des geschützten Bereiches enthält, vorgeschlagen, der dadurch gekennzeichnet ist, daß der Schaltkreis Mittel zum Definieren einer gewünschten Aufteilung des Speichers in diesem geschützten Bereich und einen nicht geschützten Bereich umfaßt, wobei diese Mittel einen Sequenzierer enthalten, der automatisch durch eine Schreiboperation bei einer vorgegebenen Adresse des Speichers nach Schreiboperationen von sensiblen Informationen bei einer Folge von anderen Adressen des gewünschten geschützten Bereiches aktiviert wird, um in dem nicht-flüchtigen Register eine spezielle Adresse, die ausgehend von den Adressen der Reihe automatisch in dem Schaltkreis definiert ist, abzuspeichern.
  • Weitere Merkmale und Vorteile der Erfindung ergeben sich aus der folgenden Beschreibung von Einzelheiten, bei der Bezug genommen wird auf die beigefügten Zeichnungen, bei denen:
  • Fig. 1 eine Konfiguration von Speicherbereichen darstellt;
  • Fig. 2 einen integrierten Schaltkreis für das Umsetzen der Erfindung zeigt;
  • Fig. 3 eine weitere Ausführungsform des Schaltkreises zeigt.
  • Im folgenden wird die Erfindung anhand eines speziellen Beispiels eines EEPROM-Speichers mit 16 kB beschrieben, wobei wenigstens die erste Hälfte des Speichers frei zugänglich bleibt und ein Teil der zweiten Hälfte geschützt werden kann, wenn der Schutzmodus aktiviert ist, wobei die Dimension des geschützten Teils definiert ist durch den Kunden, wenn er die sensiblen Informationen in diesen Teil schreibt. Der Schutz ist ein üblicher Schreibschutz.
  • Der Speicher ist in Seiten mit 16 Worten à 8 Bits unterteilt (Fig. 1), und der geschützte Bereich kann mit einer Auflösung von einer Seite und nicht einem Wort definiert werden. Aber man kann offensichtlich auch eine Auflösung von einem Wort vorsehen, wenn man dies wünscht. Das Interessante an der Auflösung einer Seite ist es, die Zahl der Adreßbits zu reduzieren, die gespeichert werden müssen, um die Enden des geschützten Bereiches zu definieren. Hier wird die Adresse einer Seite durch 7 Bits definiert. Die Adresse eines Wortes wird durch vier zusätzliche Bits niedrigen Gewichts definiert.
  • In diesem Beispiel befindet sich der geschützte Bereich notwendigerweise in der zweiten Hälfte des Speichers; folglich ist das Bit mit hohem Gewicht der Endadresse des geschützten Bereiches fest und muß nicht abgespeichert werde. Sechs Bits bleiben notwendig, um eine Endadresse des geschätzten Bereichs zu definieren. Im folgenden geht man davon aus, daß als Endadresse des geschützten Bereiches eine Seitenadresse verwendet wird, die lediglich aus sechs Bits zusammengesetzt ist, die unbedingt notwendig sind, um diese Adresse mit der gewünschten Auflösung zu definieren. Aber es versteht sich von selbst, daß andere Aufteilungen möglich sind.
  • Erfindungsgemäß ist eines der Enden des geschützten Bereiches vorgegeben.
  • Das andere Ende des geschützten Bereiches wird direkt und automatisch durch den Prozeß des Schreibens von sensiblen Informationen in dem Speicher definiert.
  • Der Kunde beschränkt sich also darauf, die sensiblen Informationen in dem geschützten Bereich zu schreiben. Der Bereich wird effektiv am Ende dieses Schreibens von sensiblen Informationen geschützt, wie im folgenden erläutert wird.
  • Erste Ausführungsform:
  • In dem einfachsten Beispiel ist das vorgegebene Ende das Ende des Speichers selbst; seine Adresse ist die des letzten Wortes der letzten Seite ADF des Speichers oder die der letzten Seite, wenn der Speicher seitenweise programmierbar ist, oder die letzte Adresse des Wortes ADFM, wenn der Speicher wortweise programmierbar ist.
  • Der Kunde wählt die Adresse der Seite ADP, von der ausgehend die sensiblen Informationen geschützt werden müssen. Der geschützte Bereich ist also der Bereich zwischen der Seitenadresse ADP und dem Ende des Speichers, d. h. der Adresse der Seite ADF.
  • Der Schaltkreis ist mit den folgenden Einschränkungen für den Kunden organisiert (Fig. 2): er muß die sensiblen Informatio nen in den Speicher mm schreiben, indem er notwendigerweise mit einem Wort bei der Adresse ADP beim Beginn des Bereichs anfängt, da dies die erste geschriebene Adresse ist, die automatisch den Anfang des geschützten Bereiches festlegt. Er schreibt im folgenden alle sensiblen Informationen. Er endet mit dem Schreiben des Wortes mit der Adresse ADF. Es ist dieses letzte Schreiben, das das definitive Abspeichern der Adresse ADP in einem nicht-flüchtigen Register auslöst, der im folgenden als permanente Referenz verwendet wird, wodurch die Grenzen des geschützten Bereiches angezeigt werden, um den Zugriff auf diesen Bereich zu kontrollieren und den Zugriff auf den Rest des Speichers zuzulassen.
  • Die Mittel zum Aufteilen des Bereiches zwischen geschütztem Bereich und nicht geschütztem Bereich umfassen ein flüchtiges Register RV, in welchem die erste Adresse der von dem Kunden geschriebenen Seite abgelegt wird. Dies ist die Adresse ADP (6 Bits der Adresse der Seite bei einer Wortadresse, die 11 Bits umfassen kann). Diese Adresse bleibt in dem Register RV, während der Kunde fortfährt, die sensiblen Informationen zu schreiben.
  • Der Schreibbefehl WRITE, der durch den Speicher empfangen wurde, dient dazu, die Adresse ADP in das Register RV zu schreiben. Das Register RV empfängt zu diesem Zweck die Adreßbits der Seite der laufenden Adresse AD, die an dem Speicher mm anliegen. Aber damit der Inhalt des Registers RV nicht bei Schreiboperationen modifiziert wird, die folgen, sorgt man dafür, daß das Signal zur Steuerung des Schreibens in das Register RV, das das Signal WRITE selbst sein kann, nach dem ersten Schreiben inhibiert wird. Dieses Inhibieren kann mittels einer monostabilen Kippstufe FW, die am Anfang inaktiv ist (Ausgang auf Null) und die unmittelbar nach dem ersten Schreibbefehl kippt (Ausgang auf 1), erfolgen; ein UND-Gatter 8 empfängt den Ausgang der Kippstufe FW und inhi biert jede spätere Modifizierung des Inhalts des Registers RV.
  • Die abgespeicherte Adresse in dem Register RV ist daher die Adresse ADP, wenn der Kunde dem normalen Verfahren folgt.
  • Der Kunden fährt im folgenden mit dem Schreiben von sensiblen Informationen unter den Adressen des gewünschten geschützten Bereiches fort, d. h. zwischen der Adresse ADP und der Adresse der Seite ADF (Programmierung seitenweise) oder ADFM (Programmierung wortweise). Die Erwähnung von der Wortadresse ADFM im folgenden gilt, wenn der Speicher wortweise programmierbar ist.
  • Der Kunde beendet das Schreiben bei der Adresse ADF oder ADFM. Die Mittel zum Aufteilen umfassen Mittel zum Erfassen des Schreibens bei der Adresse ADF oder ADFM. Dieses Erfassen aktiviert einen Sequenzierer SEQ1, der in einem nichtflüchtigen Register RNV die Adresse ADP definitiv ablegt, die provisorisch in dem Register RV abgelegt worden war. Dieses kann wie schematisch in Fig. 2 dargestellt mit Hilfe eines UND- Gatters 10 erfolgen, das die Adresse ADF oder ADFM empfängt, wie auch die laufende Adresse AD (Seite oder Wort), die durch den Speicher empfangen wurde, und das außerdem das Signal WRITE empfängt. Wenn ein Schreiben bei der Adresse ADF (oder ADFM) erfolgt, wird das Gatter 10 geöffnet, und es aktiviert den Sequenzierer SEQ1. Jedoch findet diese Aktivierung nur statt, wenn die Operation des Aufteilens des Speichers nicht schon stattgefunden hat. Ein nicht-flüchtiges Register RNVA, das als ein zusätzliches Feld des Registers RNV vorgesehen sein kann, enthält ein nicht-flüchtiges Flag FL, das anfangs auf Null gesetzt ist, das anzeigt, daß das Verfahren zum Aufteilen noch nicht stattgefunden hat. Wenn dieses Flag aktiviert ist, wird der Sequenzierer SEQ1 inhibiert, was anschaulich gemacht wird mit einem UND-Gatter 12, das den invertier ten Ausgang des Registers RNVA und den Ausgang des Gatters 10 empfängt.
  • Der Sequenzierer SEQ1 aktiviert das nicht-flüchtige Flag FL des Registers RNVA und überträgt den Inhalt des flüchtigen Registers RV in das nicht-flüchtige Register RNV (sechs Bits der Adresse der Seite der zweiten Hälfte des Speichers).
  • Die Aufteilung ist ab jetzt festgelegt.
  • Wenn der Kunde sich geirrt hat oder ein Test läuft oder wenn es andere Gründe dafür gibt, so kann die Aktivierung des Sequenzierers SEQ1 verhindert werden, indem nicht die Adresse ADF (oder ADFM) geschrieben wird und die Versorgung des Schaltkreises unterbrochen wird, wodurch der Schaltkreis in seinen ursprünglichen Zustand zurückversetzt wird, als ob man gar nicht versucht hätte, den Speicher in Bereiche aufzuteilen. Die Operation kann dann von vorne beginnen.
  • Wenn man aber die Adresse ADF (oder ADFM) schreibt, so erfolgt die Aufteilung definitiv, wobei das Flag FL definitiv auf 1 gesetzt wird.
  • In dem Fall eines Mikroprozessorschaltkreises kann die Gesamtheit von notwendigen Schaltkreisen für die Aufteilung in Form einer Folge von Befehlen realisiert werden, die durch diesen Mikroprozessor ausgeführt werden, um die erste Adresse in das Register RV zu schreiben, das Schreiben bei der Adresse ADF oder ADFM zu erkennen, den Inhalt des flüchtigen Speichers RV zu lesen, diesen Inhalt in das Register RNV zu schreiben und das Flag FL in dem Feld RNVA auf 1 zu setzen. Diese Folge von Befehlen kann auch ohne Mikroprozessor in Form eines fest verdrahteten Steuerschaltkreises nach Art von Vorrichtungen im Stand der Technik realisiert werden.
  • Nach erfolgter Aufteilung kann der Schaltkreis im geschützten Modus arbeiten: jede empfangene Adresse AD wird mit der Adresse ADP in einem Komparator COMP verglichen. Wenn die Adresse kleiner ist (nicht geschützter Bereich), wird ein Signal zur Freigabe des Schreibens WE an den Speicher mm (über die Gatter 14 und 16) zum Ausführen eines Schreibzyklus ausgegeben. Wenn aber die Adresse größer als ADP ist, so liegt sie zwischen den Adressen der Seite ADP und ADF, und ein Logikgatter 18 ermöglicht es, das Signal WE zu inhibieren. Dieses Inhibieren findet jedoch nur statt, wenn die Aufteilung vorher erfolgt ist, was durch das Flag RNVA zum Aktivieren der Aufteilung kontrolliert wird: das Gatter 18 empfängt den Inhalt FL des Registers RNVA; solange der Inhalt auf Null bleibt, besteht die Freigabe zum Schreiben für alle Adressen des Speichers weiter.
  • Es versteht sich, daß die Adresse ADF (oder ADFM), die das zweite Ende des geschützten Bereiches definiert und die vorgegeben ist, sich sehr wohl von der Endadresse des Speichers unterscheiden kann. Dies kann irgendeine vorgegebene Adresse ADQ (Adresse der Seite für eine seitenweise Programmierung) oder ADQM (Adresse eines Wortes für eine wortweise Programmierung) sein. Aber es ist nötig, daß der Programmierer, der die sensiblen Informationen in den geschützten Bereich schreibt, weiß, daß sobald er in dieser speziellen Adresse schreibt die Aufteilung als abgeschlossen angesehen wird, der Sequenzierer SEQ1 aktiviert wird und der geschützte Bereich zwischen dieser speziellen Adresse und der Adresse in dem flüchtigen Register RV im Moment der Aktivierung festgeschrieben ist. Der Programmierer muß dies daher beim Schreiben von sensiblen Informationen berücksichtigen, wobei die Hauptregel darin besteht, daß er zuletzt unter der vorgegebenen Adresse schreibt, die die Aktivierung der Aufteilung auslöst. Die Modifizierung, die daraus in dem Schaltkreis resultiert, besteht darin, daß der Komparator COMP prüft, ob die laufende Adresse zwischen ADP und ADQ liegt, um das Signal zum Schreiben WE zu inhibieren.
  • Es versteht sich außerdem, daß der geschützte Bereich natürlich nicht nach der ersten geschriebenen Adresse ADP und der vorgegebenen Adresse ADQ liegen kann, sondern vor der Adresse ADP und nach einer vorgegebenen Adresse, die man ADQ' nennen kann. Der Kunde muß ausgehend von der Adresse ADP programmieren, und die Aufteilung ist erfolgt, wenn er die Adresse ADQ' (oder ADQ'M) programmiert hat. Es muß damit der Komparator COMP den Zugriff auf den Speicher inhibieren, wenn die laufende Adresse zwischen ADQ' und ADP liegt.
  • Zweite Ausführungsform:
  • Um andere Verwendungen der Erfindung zu zeigen, wird hier mit Bezug auf Fig. 3 eine andere Art dargestellt, um eine bequeme Definition der Anordnung des geschützten Bereiches zu erhalten, und dieses Mal ohne das Schreiben von sensiblen Informationen bei einer speziellen Adresse anzufangen, die ein Ende des geschützten Bereiches definiert.
  • Der Kunde schreibt die sensiblen Informationen in den geschützten Bereich, den er auswählt. Er schreibt, indem er irgendwo anfängt und indem einfach das Programmieren der speziellen Adresse ADQ (oder ADQM) vermieden wird, die die Aktivierung der Aufteilung auslöst. Dabei kann die Adresse ADQ oder ADQM eine Endadresse des Speichers oder eine Anfangsadresse des Speichers oder jede andere vorher gewählte Adresse sein.
  • Das Schema in Fig. 2 muß modifiziert werden, um in dem richtigen Register bei jedem Schreiben im Speicher das Überschreiben zu ermöglichen. Fig. 3 zeigt das modifizierte Schema.
  • Die Adresse der Seite, die jedesmal in dem flüchtigen Register RV überschrieben werden soll, ist die kleinste von zwei folgenden Werten: die laufende Adresse der Seite und die Adresse der Seite, die bereits in dem Register RV enthalten ist. Anders gesagt, wenn man bei einer größeren Adresse als der Adresse, die in dem Register enthalten ist, schreibt, läßt man diesen Wert in dem Register RV; wenn man bei einer kleineren Adresse schreibt, so schreibt man in das Register RV den Wert der neuen Adresse der Seite. Am Ende enthält das Register RV den kleinsten Wert der Adresse der Seite ADmin, die verwendet wurde durch den Programmierer, um die sensiblen Informationen abzuspeichern. Der Inhalt des Registers RV wird in dem Moment des Schreibens des letzten Wortes bei der Adresse ADQM automatisch in das Register RNV übertragen. Die Aufteilung wird aktiviert, und der geschützte Bereich wird zwischen der Adresse ADmin und der vorgegebenen Adresse ADQ angeordnet. Die Länge des geschützten Bereiches wird automatisch an die Länge des notwendigen Bereiches für die Abspeicherung von sensiblen Informationen angepaßt. Der Kunde braucht nicht dafür zu sorgen, daß die Programmierung mit der kleinsten Adresse, die nötig ist, beginnt.
  • Fig. 3 zeigt einen zusätzlichen Komparator COMP1, der die laufende Adresse der Seite (6 Bits von AD) und den Inhalt des Registers RV während des Schreibens von sensiblen Informationen empfängt und der definiert, ob der Inhalt des Registers modifiziert werden muß, insoweit als er durch eine kleinere Adresse ersetzt werden muß. Eine monostabile Kippstufe kann diesen Komparator bei dem ersten Vergleich inhibieren, wenn das Register ursprünglich auf Null ist, da eine erste Adresse in dem Register gespeichert sein muß, bevor mit dem Vergleichen begonnen wird. Als Alternative kann die Anordnung so erfolgen, daß das Register ursprünglich auf einen maximalen Wert (größer 1) gesetzt wird, wenn der Schaltkreis mit Span nung versorgt wird, d. h. vor dem ersten Schreiben; dieses ist dargestellt durch einen Befehl SET an das Register RV, der beim Beginn der Spannungsversorgung des Schaltkreises ausgelöst wird.
  • Im übrigen arbeitet der Schaltkreis wie es mit Bezug auf Fig. 2 beschrieben wurde. Die erwähnten Varianten gegenüber Fig. 2 sind auf Fig. 3 übertragbar: die vorgegebene Adresse, die man als letztes programmiert, um die Aktivierung der Aufteilung auszulösen, kann eine Adresse ADQ oder ADQM sein, die sich irgendwie von der letzten Adresse ADF oder ADFM des Speichers unterscheidet; andererseits kann das Register RV jedesmal mit dem größten und nicht dem kleinsten von zwei Werten zwischen dem Wert, der bereits in dem Register enthalten ist, und dem laufenden Adreßwert aufgefüllt werden; in diesem Fall wird das Register RV durch den Befehl SET anfangs auf Null anstatt auf 1 gesetzt; die vorgegebene Adresse ADQ' oder ADQ'M ist die Anfangsadresse des geschützten Bereichs und nicht die Endadresse, aber es ist immer diese vorgegebene Adresse, bei der die letzte Schreiboperation erfolgen muß und die die Aufteilung aktiviert.
  • Die Schaltkreise in den Fig. 2 und 3 sind als schematische Beispiele gegeben, um die Funktion der Erfindung erläutern zu können. Ihre praktische Realisierung kann davon weit abweichen. Zum Beispiel können die Register RNV und RNVA Worte einer Erweiterung des Speichers mm sein, Worte, die geschrieben und gelesen werden können dank Adressen, die sich von denen unterscheiden, die den für den Nutzen zugänglichen Speicherbereich definieren. In diesem Fall versteht es sich, daß die durch die Elemente und einfachen Verbindungen in den Fig. 2 und 3 dargestellten Funktionen in der Praxis mit komplexeren Sequenzierern realisiert werden. So versteht es sich auch, daß jede Schreiboperation in dem Speicher mm das vorherige Lesen des Flags FL des Registers RNVA und ein Lesen des In halts des Registers RNV beinhaltet. Diese Inhalte werden verwendet, um festzulegen, ob der Zugriff zum Schreiben freigegeben ist; dies ist sehr schematisch in den Fig. 2 und 3 durch einfache Logikgatter und Komparatoren dargestellt, die mit den Registern RNV und RNVA verbunden sind.
  • In allem Vorangehenden wurde davon ausgegangen, daß nur ein möglicher Wert für die vorgegebene Adresse ADF oder ADQ (ADFM oder ADQM) in einem vorgegebenen Schaltkreis möglich ist. Man kann sich jedoch auch vorstellen, daß der Wert ADQ oder ADQM durch den Nutzer selbst vor der oben definierten Operation der Aufteilung definiert werden kann. Diese Definition kann durch Programmierung oder durch jedes andere Mittel erfolgen. Dies bedeutet jedoch eine zusätzliche Einschränkung für den Kunden. Man kann z. B. vorsehen, daß das erste Schreiben bei irgendeiner Adresse des Speichers die vorgegebene Adresse ADQ definiert und daß es das zweite Schreiben ist, das als erstes Schreiben im Sinne dessen, was oben beschrieben worden ist, verstanden wird. Die Schaltkreise nach den Fig. 2 und 3 können leicht in Abhängigkeit von dieser zusätzlichen Einschränkung angepaßt werden.

Claims (7)

1. Verfahren zum Aufteilen eines Speichers in einen geschützten Bereich und einen nicht geschützten Bereich in einem integrierten Speicherschaltkreis (mm) mit Mitteln, um einen Zugriff auf Adressen (AD) des Speichers (mm) zu verhindern oder freizugeben (COMP), je nachdem ob sie in dem geschützten Bereich oder in dem nicht geschützten Bereich liegen, wobei der geschützte Bereich durch zwei Endadressen des Bereiches definiert ist, von denen eine vorgegeben ist (ADFM, ADQM) und die andere wählbar ist (ADP), wobei dieses Verfahren die folgenden Operationen umfaßt:
a) Schreiben in dem Speicher unter aufeinanderfolgenden Adressen in dem gewünschten geschützten Bereich,
c) Ausführen einer letzten Schreiboperation bei der vorgegebenen Adresse, die ein Ende des geschützten Bereiches darstellt,
dadurch gekennzeichnet, daß
zwischen dem Schritt a) und c) der Schritt
b) ausgeführt wird, der darin besteht, automatisch in ein flüchtiges Register (RV) ursprünglich den Wert der ersten Adresse, bei der man schreibt, einzuschreiben; und daß nach Schritt c) der Schritt
d) durchgeführt wird, der darin besteht, automatisch in ein nicht-flüchtiges Register (RNV) die Adresse in dem flüchtigen Register (RV) zu übertragen, wenn die Schreiboperation bei der vorgegebenen Adresse erfolgt, wobei der geschützte Bereich zwischen der in dem nichtflüchtigen Register befindlichen Adresse und der vorgegebenen Adresse liegt.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß zwischen Schritt b) und c) der rekursive Schritt b1) ausgeführt wird, der darin besteht, bei jedem Schreiben den Inhalt des flüchtigen Speichers (RV) zu modifizieren, um dort den kleinsten oder größten von zwei folgenden Werten anzuordnen: Adresse im Verlauf des Schreibens und Adresse, die in dem flüchtigen Register (RV) enthalten ist.
3. Integrierter Speicherschaltkreis mit Mitteln (COMP, RNV) um den Zugriff auf einen geschützten Bereich des Speichers (mm) zu beschränken, wobei diese Mittel auf ein nicht- flüchtiges Register (RNV) zurückgreifen, das eine Adresse (ADP) des Endes des geschützten Bereiches enthält, dadurch gekennzeichnet, daß der Schaltkreis Mittel zum Definieren einer gewünschten Aufteilung des Speichers in diesem geschützten Bereich und einen nicht geschützten Bereich umfaßt, wobei diese Mittel einen Sequenzierer (SEQ1) enthalten, der automatisch durch eine Schreiboperation bei einer vorgegebenen Adresse (ADFM, ADQM) des Speichers nach Schreiboperationen von sensiblen Informationen bei einer Folge von anderen Adresse des gewünschten geschützten Bereiches aktiviert wird, wobei der Sequenzierer dazu geeignet ist, in dem nicht-flüchtigen Register (RNV) eine spezielle Adresse (ADP), die ausgehend von den Adressen der Reihe definiert ist, abzuspeichern, wobei die spezielle Adresse der ersten Adresse der Reihe entspricht und vorher in einem flüchtigen Register (RV) abgelegt worden ist.
4. Integrierter Schaltkreis nach Anspruch 3, dadurch gekennzeichnet, daß er Mittel (FW, RV) umfaßt, um in ein flüchtiges Register die erste Adresse zu speichern, bei der eine sensible Information geschrieben wird, wobei der Sequenzierer außerdem Mittel umfaßt, um den Inhalt des flüchtigen Registers in das nicht-flüchtige Register zu übertragen.
5. Schaltkreis nach Anspruch 4, dadurch gekennzeichnet, daß er Mittel umfaßt, um bei jeder Schreiboperation einer sensiblen Information den Inhalt des flüchtigen Registers durch den Wert der laufenden Schreibadresse zu ersetzen, wenn dieser Wert kleiner als der Wert in dem Register ist.
6. Schaltkreis nach Anspruch 4, dadurch gekennzeichnet, daß er Mittel umfaßt, um bei jeder Schreiboperation einer sensiblen Information den Inhalt des flüchtigen Registers durch den Wert der laufenden Schreibadresse zu ersetzen, wenn dieser Wert größer als der Wert in dem flüchtigen Register ist.
7. Schaltkreis nach einem der Ansprüche 3 bis 6, dadurch gekennzeichnet, daß er eine nicht-flüchtige Registerzelle (RNVA) umfaßt, die durch den Sequenzierer programmiert ist, um ein nicht-flüchtiges Flag zu enthalten, das anzeigt, daß die Aufteilung des Speichers in einen geschützten Bereich und einen nicht geschützten Bereich momentan vorgenommen wird, und Mittel, die das Inhibieren von Schreiben in den geschützten Bereich ermöglichen, wenn das Flag aktiviert ist.
DE69602984T 1995-03-31 1996-03-06 Verfahren zum Schützen nichtflüchtiger Speicherbereiche Expired - Fee Related DE69602984T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR9503863A FR2732487B1 (fr) 1995-03-31 1995-03-31 Procede de protection de zones de memoires non volatiles

Publications (2)

Publication Number Publication Date
DE69602984D1 DE69602984D1 (de) 1999-07-29
DE69602984T2 true DE69602984T2 (de) 1999-10-14

Family

ID=9477658

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69602984T Expired - Fee Related DE69602984T2 (de) 1995-03-31 1996-03-06 Verfahren zum Schützen nichtflüchtiger Speicherbereiche

Country Status (5)

Country Link
US (1) US5812446A (de)
EP (1) EP0735489B1 (de)
JP (1) JP2727527B2 (de)
DE (1) DE69602984T2 (de)
FR (1) FR2732487B1 (de)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4572604A (en) * 1982-08-25 1986-02-25 Elfab Corp. Printed circuit board finger connector
FR2757654B1 (fr) * 1996-12-24 1999-02-05 Sgs Thomson Microelectronics Memoire avec zones protegees en lecture
FR2770327B1 (fr) * 1997-10-24 2000-01-14 Sgs Thomson Microelectronics Memoire non volatile programmable et effacable electriquement comprenant une zone protegeable en lecture et/ou en ecriture et systeme electronique l'incorporant
US6295640B1 (en) * 1998-05-08 2001-09-25 Apple Computer, Inc. Method and apparatus for distinguishing reference values from non-reference values in a runtime environment
JP3389186B2 (ja) 1999-04-27 2003-03-24 松下電器産業株式会社 半導体メモリカード及び読み出し装置
JP2002015584A (ja) * 2000-06-29 2002-01-18 Sanyo Electric Co Ltd 不揮発性メモリのリードプロテクト回路
US7539828B2 (en) * 2000-08-08 2009-05-26 Faronics Corporation Method and system for automatically preserving persistent storage
US6711701B1 (en) * 2000-08-25 2004-03-23 Micron Technology, Inc. Write and erase protection in a synchronous memory
US7134006B2 (en) * 2003-06-03 2006-11-07 Gateway Inc. Method and system for changing software access level within or outside a host protected area
JP2005108273A (ja) * 2003-09-26 2005-04-21 Toshiba Corp 不揮発性半導体記憶装置
EP1578051B1 (de) * 2004-03-18 2008-10-29 STMicroelectronics (Research & Development) Limited Vorrichtung mit einer Schlüsselauswahleniheit und ein Mechanismus zur Aktualisierung der Schüssel für die verschlüsselung/Entschlüsselung von daten die in einen Speicher geschrieben/gelesen werden.
US7483313B2 (en) * 2007-01-31 2009-01-27 Dell Products, Lp Dual ported memory with selective read and write protection
JP2010198071A (ja) * 2009-02-23 2010-09-09 Sony Corp メモリ装置
BRPI1008874A2 (pt) * 2009-02-23 2016-03-15 Sony Corp dispositivo de memória
US8319738B2 (en) * 2009-03-03 2012-11-27 Ncr Corporation Touchscreen module

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE68926718T2 (de) * 1988-01-28 1997-02-20 Nat Semiconductor Corp Datensicherungsverfahren für einen programmierbaren Speicher
US5493665A (en) * 1992-12-21 1996-02-20 Base 10 Systems, Inc. Portable memory device and method of securing the integrity of stored data therein utilizing a starting address and a stored memory cycle number
US5559992A (en) * 1993-01-11 1996-09-24 Ascom Autelca Ag Apparatus and method for protecting data in a memory address range
US5363334A (en) * 1993-04-10 1994-11-08 Microchip Technology Incorporated Write protection security for memory device
US5592641A (en) * 1993-06-30 1997-01-07 Intel Corporation Method and device for selectively locking write access to blocks in a memory array using write protect inputs and block enabled status

Also Published As

Publication number Publication date
JP2727527B2 (ja) 1998-03-11
US5812446A (en) 1998-09-22
DE69602984D1 (de) 1999-07-29
EP0735489B1 (de) 1999-06-23
JPH08286976A (ja) 1996-11-01
FR2732487B1 (fr) 1997-05-30
EP0735489A1 (de) 1996-10-02
FR2732487A1 (fr) 1996-10-04

Similar Documents

Publication Publication Date Title
EP0207320B1 (de) Integrierte Schaltung und Verfahren zum Sichern von geheimen Codedaten
DE2954731C2 (de) Monolithischer Mikroprozessor
DE69602984T2 (de) Verfahren zum Schützen nichtflüchtiger Speicherbereiche
DE2837201C2 (de)
DE2512935C2 (de) Datenaustauschsystem
DE3889390T2 (de) Schreibe-Schutzmechanismus für nichtflüchtigen Speicher.
EP0512542B1 (de) Datenschützende Mikroprozessorschaltung für tragbare Datenträger, beispielsweise Kreditkarten
DE68925960T2 (de) Datenverarbeitungsanlage mit einem nichtflüchtigen und elektrisch löschbaren und umprogrammierbaren Speicher
EP0128362B1 (de) Schaltungsanordnung mit einem Speicher und einer Zugriffskontrolleinheit
EP0129054A1 (de) Schaltungsanordnung mit einem Datenspeicher und einer Ansteuereinheit zum Auslesen, Schreiben und Löschen des Speichers
DE10308545A1 (de) Verfahren und Vorrichtung zum Aktualisieren eines verteilten Programms
EP1183690B1 (de) Speicheranordnung mit adressverwürfelung
EP1358558B1 (de) Mikroprozessorschaltung für datenträger und verfahren zum organisieren des zugriffs auf in einem speicher abgelegten daten
EP0224639B1 (de) Verfahren zum Kontrollieren eines Speicherzugriffs auf einer Chipkarte und Anordnung zur Durchführung des Verfahrens
EP0500973B1 (de) EEPROM und Verfahren zum Ändern einer Initialisierungsroutine im EEPROM
DE69129829T2 (de) Mikrocomputer mit Zugriff zu einem externen Speicher mit geringster Wartezeit
EP0935214B1 (de) Chipkarte mit integrierter Schaltung
EP0123177B1 (de) Verfahren zum Betreiben eines als nichtflüchtigen Schreib-Lese-Speichers ausgebildeten Anwendungsspeichers und Anordnung zur Durchführung des Verfahrens
EP1352318B1 (de) Mikroprozessorschaltung für tragbare datenträger
EP0085117A1 (de) Schaltungsanordnung zur Sicherung von Daten in volatilen Schreib-Lese-Speichern (RAM)
DE69835282T2 (de) Schaltungsanordnung zur Spannungsüberwachung und Speicherkarte mit einer solchen Schaltung
EP1248200A1 (de) Verriegelungsschaltung zur Verhinderung eines unzulässigen Zugriffs auf die Speichereinrichtung eines Prozessors
DE68926158T2 (de) Einchip-Mikrorechner mit EPROM
DE4042161C2 (de)
DE4302553A1 (en) High security binary counting method for chip card - offsetting final state of binary number w.r.t. sequence such that contents of counter never represents number smaller than previous value

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee