DD297883A5 - Schaltungsanordnung zum softwareschutz in hochintegrierten speicherschaltkreisen - Google Patents

Schaltungsanordnung zum softwareschutz in hochintegrierten speicherschaltkreisen Download PDF

Info

Publication number
DD297883A5
DD297883A5 DD29855186A DD29855186A DD297883A5 DD 297883 A5 DD297883 A5 DD 297883A5 DD 29855186 A DD29855186 A DD 29855186A DD 29855186 A DD29855186 A DD 29855186A DD 297883 A5 DD297883 A5 DD 297883A5
Authority
DD
German Democratic Republic
Prior art keywords
memory
circuit
comparator
address
output
Prior art date
Application number
DD29855186A
Other languages
English (en)
Inventor
Holger Haberla
Original Assignee
Veb Mikroelektronik "Karl Marx",De
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 Veb Mikroelektronik "Karl Marx",De filed Critical Veb Mikroelektronik "Karl Marx",De
Priority to DD29855186A priority Critical patent/DD297883A5/de
Publication of DD297883A5 publication Critical patent/DD297883A5/de

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

Die Erfindung betrifft eine Schaltungsanordnung zum Softwareschutz in hochintegrierten Speicherschaltkreisen, bei denen die einprogrammierte hochwertige oder geheimzuhaltende Software vor nichtautorisiertem Zugriff bzw. einfachem Kopieren geschuetzt werden soll. Die Aufgabe wird dadurch geloest, dasz der Nutzerbereichspeicher und ein Steuerwortspeicher mit einem ersten Komparator verbunden sind, der bei unbedingten Sprungbefehlen mit Adreszangabe ein Aktivierungssignal an einen zweiten Komparator liefert, der den Inhalt des Nutzerbereichspeicher mit dem Inhalt eines Speichers, der den reellen Adreszraum des Schaltkreises beschreibt, vergleicht, und dasz erster Komparator bei unbedingten Sprungbefehlen ohne Adreszangabe und der Ausgang des zweiten Komparator sowie der Ausgang einer Power-On-Reset-Schaltung ein Signal an ein NOR liefern, welches ein Ladesignal fuer einen programmierbaren Zaehler liefert. Die schaltkreisinternen Adreszsignale sind mit einem dritten Komparator, der auszerdem mit einem Adreszsperrbereichspeicher verbunden ist, einer Schaltungsanordnung, die eine gewisse Adreszwertkorrektur vornimmt, und einer Schaltungsanordnung, die einen internen Takt erzeugt, verbunden. Die korrigierten Adreszsignale stehen am Eingang eines programmierbaren Zaehlers und eines vierten Komparators, der auszerdem mit dem Ausgang des programmierbaren Zaehler verbunden ist, zur Verfuegung. Der Ausgang des dritten und des vierten Komparators sind an ein programmierbares UND angeschlossen, welches bei Auftreten eines Fehlers ein nachgeschaltetes Flipflop setzt, wodurch die Ausgangstreiber in einen hochohmigen Zustand versetzt werden. Die Schaltungsanordnung, die einen internen Takt erzeugt, ist mit den programmierbaren Zaehler, der Power-On-Reset-Schaltung, dem Speicher fuer den reellen Adreszraum und dem ersten Komparator verbunden. Anwendungsgebiet der Erfindung sind solche hochintegrierten Nur-Lese-Speicher, programmierbare Nur-Lese-Speicher und loeschbare programmierbare Nur-Lese-Speicher, bei denen die einprogrammierte Software geschuetzt werden soll.{Adreszwertkorrektur; programmierbarer Zaehler; Steuerwortspeicher; Adreszsperrbereichspeicher; reeller Adreszraum; programmierbares UND; Komparator; Flipflop; Power-On-Reset-Schaltung; hochwertige bzw. geheimzuhaltende Software; unbedingter Sprungbefehl}

Description

-2- 297 883 Charakteristik der bekannten technischen Lösungen
Mit der Einführung hochintegrierter Speicherschaltkreise besteht die Möglichkeit, Applikations- und Systemsoftware, die bisher nur auf Floppy-Disks abgespeichert wurden, auch in EPROM's oder ROM's zu speichern. Vorteile sind did schnellere Zugriffszeit und höhere Zuverlässigkeit. Mit steigender Komplexität und Leistungsfähigkeit dor Mikrocomputersysteme steigt auch der Aufwand der Softwareentwicklung, so daß heute die Kosten für Software einen entscheidenden Anteil an den Ossamtkosten eines Mikrocomputers haben. Damit besteht Bedarf an Sicherung dieser Software vor nichtautorisierter Duplizierung. Transportable Software, wie z.B. die auf Floppy-Disks gespeicherte, kann leicht auf jedem Computersystem, das über Plattenlaufwerke verfügt, kopiert werden. Bei in EPROM's oder ROM's gespeicherter Software ist die relative Sicherheit des nichtautorisierten Kopierens höher. Die Schaltkreise sind im System eingebunden und erfordern mindestens einen PROM-Programmierer zum Duplizieren.
Bekannt ist nach US 4446475 (H 01 L 27/04) eine Anordnung, die den Zugriff auf einen bestimmten Teil eines integrierten Speichers verhindert. Dazu werden Bondinseln mittels Verbindungsleitungen, die durch den Ritzgraben führen, mit dem zu schützenden Speicherbereich verbunden. Dieser Speicherbereich kann während des Wafertests beschrieben werden. Beim Vereinzeln der Schaltkreise werden die von den Bondinseln zu dem zu schützenden Speicherbereich führenden Vorbindungsleitungen zerstört, so daß kein Zugriff mehr zu diesen Daten möglich ist. Nachteilig ist dabei, daß von außen überhaupt kein Zugriff zu diesen Daten möglich ist.
Bekannt ist nach OS 2536498 (G 11 C 29/00) eine Schaltung zur Sicherung der in einem Informationsspeicher aufbewahrten Informationswörter gegen Zugriff durch Unbefugte mit einem verschlüsselnden Netzwerk, indem dem jeweiligen, dem Informationsspeicher zuzuleitendem Informationswort unter Mitwirkung eines Adreßwortes Paritätsprüfbits zugeordnet werden. Dazu wird von einer geeigneten Quelle ein Sicherungscode gebildet, der an der Paritätsbitbildung und -prüfung teilnimmt. Dem verschlüsselnden Netzwerk ist eine Sicherungsschreibsteuerung nachgeschaltet, diese vergleicht den Sicherungscode und den Adreßwert für das neu einzuspeisende Informationswort. Das Gesamtsystem ist sehr aufwendig, es ist eine zusätzliche Paritätsprüfschaltung erforderlich, und außerdem ist diese Schaltungsanordnung nur für RAM's geeignet. Weiterhin ist nach Intel Application Note AP-152 ein sogenannter Keyed Access EPROM (KEPROM) bekannt, der einen Datenschutzmechanismus zur Erhöhung der Softwaresicherheit vor unbefugtem Lesen enthält. Zugriff zu einem KEPROM erhält man erst nach einer Initialisierungssequenz, die als Authentication Handshake bezeichnet wird. Bei diesem Handshake kommunizieren zwei KEPROM miteinander entsprechend einem Verifikationsprotokoll. Der Authentication Handshake enthält eine Reihe von Bytetransfers zwischen den KEPROM's. Am Anfang erzeugt ein KEPROM eine Zufallszahl, die der andere Schaltkreis empfängt. Diese Zufallszahl wird in jedem KEPROM in einer Encrvptionschaltung mit einer Schlüsselzahl entspreciiend einer geheimen logischen Kombination verknüpft. Diese verschlüsselten Zahlen werden dann von dem KEPROM verglichen, der die Zufallszahl erzeugt hat. Ist derVergleich positiv, vertauschen beide KEPROM's die Rollen und wiederholen die Initialisierungssequenz. Erst wenn dieser zweite Authentication Handshake positiv verlaufen ist, öffnen beide KEPROM ihren Inhalt, der dann von jedem Systemnutzer gelesen werden kann. Dieses Verfahren ist auch in Systemen einsetzbar, in denen mehr als zwei KEPROM's verwendet werden, wobei dann ein KEPROM als Schlüsselmanager (KEY MANAGER) benutzt wird. Nachteilig ist bei diesem Verfahren, daß mindestens zwei Speicherschaltkreise (KEPROM) benötigt werden und daß nach dem Öffnen der Schaltkreise jeder Nutzer des Systems diese lesen kann.
Ziel der Erfindung
Ziel der Erfindung ist eine Schaltungsanordnung für hochintegrierte Speicherschaltkreise, bei denen die einprogrammierte hochwertige oder geheimzuhaltende Software vor nichtautorisiertem Zugriff bzw. einfachem Kopieren geschützt wird.
Darlegung des Wesens der Erfindung
Aufgabe der Erfindung ist es, für hochintegrierte nichtflüchtige Speicherschellkreise mit hochwertiger bzw. geheimzuhaltender einprogrammierter Software eine Schaltungsanordnung zu schaffen, die diese Software vor nichtautorisiertem Zugriff bzw. einfachem Kopieren schützt. Die Aufgabe wird erfindungsgemäß durch eine auf dem Speicherschaltkreis zusätzlich integrierte Schaltungsanordnung gelöst, indem der Ausgang der normalen Speichermatrix mit dem Nutzerbereich mit einem Komparator verbunden ist, der den Inhalt des Nutzerbereichspeichers ständig mit dem Inhalt eines Speichers vergleicht, welcher bestimmte Steuerworte enthält, und daß der Ausgang der normalen Speichermatrix mit dem Nutzerbereich mit dem Komparator verbunden ist, der den Inhalt des Nutzerbereichspeichers mit dem Inhalt eines Speichers vergleicht, welcher den reellen Adreßraum des gesamten Schaltkreises beschreibt, wobei letzterer Komparator nur dann aktiviert wird, wenn der Komparator, der den Inhalt des Nutzerbereichspeichers mit dem Inhalt das Steuerwortspeichers vergleicht, Identität anzeigt, wozu beide Komparatoren miteinander verbunden sind. Die Ausgänge der Adreßeingangsstufen sind neben der Speichermatrix mit dem Nutzerbereich mit einer Schaltungsanordnung, die einen schaltkreisinternen Takt erzeugt, mit einer Schaltungsanordnung, die eine bestimmte Adreßwertkorrektur durchführt, und mit einem Komparator, der die Adressen mit den Inhalt eines Speichers vergleicht, welcher bestimmte Adreßsperrbereiche definiert, verbunden. Der Ausgang der Schaltungsanordnung, die die Adreßwertkorrektur durchführt, ist mit dem Eingang eines programmierbaren Zählers und einem Komparator verbunden, welcher die korrigierten Adreßsignale mit dem Ausgang des programmierbaren Zählers vergleicht. Der Ausgang des Komparators, der die Adressen mit dem Inhalt des Adreßsperrbereichspeichers vergleicht, und der Ausgang des Komparators, der die korrigierten Adreßsignale mit dem Ausgang des programmierbaren Zählers vergleicht, sind mit einer programmierbaren UND-Verknüpfung verbunden.
Der Ausgang dieser programmierbaren UND-Verknüpfung liefert ein Fehlersignal an den Setzeingang eines Flipflop. Der Ausgang des Flipflop ist mit den Datenausgangstreibern verbunden und schaltet diese bei Auftreten eines Fehlers in einen hochohmigen Zustand. Der Reseteingang des Flipflop liegt auf einem festen Bezugspotential und wird dadurch nicht aktiv. Eine Power-On-Reset-Schaltung ist mit dem schaltkreisinternen Takt verbunden und liefert für den Zeitraum von einem Takt nach Zuführen der Betriebsspannung des Schaltkreises ein Signal an eine ODER-Schaltung. Der Ausgang das Komparator, der den Inhalt des Nutzerbereichspeichers mit dem Inhalt des Speichers für den reellen Adreßraum vergleicht, ist ebenfalls mit der ODER-Schaltung verbunden. Ein weiterer Ausgang des Komparators, der den Inhalt des Nutzerbereichspeichers mit dem Inhalt des Steuerwortspeichers vergleicht, liefert einen Takt nach Übereinstimmung von bestimmten, vorher definierten Steuerwörtern und den Datenwörtern aus dem Nutzerbereichspeicher ebenfalls ein Signal an die ODER-Schaltung. Der Ausgang der ODER-Schaltung ist mit dam Ladeeingang des programmierbaren Zählers verbunden. Die Schaltungsanordnung, die den schaltkreisinternen Takt erzeugt, ist mit dem Zähleingang des programmierbaren Zählers, dem Speicher für den reellen Adreßraum und dem Komparator, der den Inhalt des Nutzerbereichspeichers mit dem Inhalt des Steuerwortspeichers vergleicht, verbunden.
Im Normalbetriebsmode verhält sich der Schaltkreis wie ein normaler nichtflüchtiger SpeicherschaC kreis, da die programmierbare UND-Verknüpfung nicht programmiert ist und damit kein Fehlersignal an den Setzeingang des nachfolgenden Flipflop gelangen kann.
Der Schaltkreis läßt sich im Falle eines Nur-Lese-Speichers in üblicherweise Lesen, im Falle eines programmierbaren Nur-Lese-Speichers in üblicher Weise Schreiben und Lesen und im Falle eines löschbaren programmierbaren Nur-Lese-Speichers in üblicher Weise Schreiben, Lesen und Löschen.
Die Programmierung des Schaltkreises in einen Zustand mit Softwareschutz erfolgt bei einem Nur-Lese-Speicher gleichzeitig mit der Programmierung des Speichers mit dem Nutzerbereich in einem technologischen Schritt bei der Herstellung des Schaltkreises und bei programmierbaren und löschbaren programmierbaren Nur-Lese-Speichers in zwei Programmierteilschritten. Im ersten ι'rogrammierteilschritt wird die Speichermatrix mit Nutzerbereich in üblicher Weise programmiert, im zweiten Programmierteilschritt werden der Steuerwortspeicher, der Speicher für den reellen Adreßraum, der Adreßsperrbereichspeicher, die programmierbare UND-Verknüpfung, die Schaltungsanordnung, die einen schaltkreisinternen Takt erzeugt, und die Schaltungsanordnung, die eine bestimmte Adreßwertkorrektur durchführt, programmiert. Um den zweiten Programmierteilschritt durchführen zu können, wird der Schaltkreis in einem Spezialprogrammiermode geschaltet, indem an ein Pin des Schaltkreises, welches im Spezialprogrammiermode keine Bedeutung hat, eine Spannung, die größer als die übliche Eingangsspannung an diesem Pin ist, angelegt wird. Im Spezialprogrammiermode wird die Speichermatrix mit dem Nutzerbereich abgeschaltet und die Adreßsignale werden den im Spezia'programmiermode zu programmierenden Speichern und Schaltungsanordnungen zugeordnet.
In den Steuerwortspeicher werden in einen bestimmten Adreßraum unbedingte Sprungbefehle ohne Adreßangabe, in einen zweiten Adreßraum unbedingte Sprungbefehle mit Adreßangabe einprogrammiert. Sind diese unbedingten Sprungbefehle mit den Daten des Nutzerbereichspeichers identisch, liefert der angeschlossene Komparator im ersten Fall ein Signal an die ODER-Schaltung und im zweiten Fall ein Aktivierungssignal für den Komparator, der den Inhalt des Nutzerbereichspeichers mit dem Inhalt eines Speichers vergleicht, welcher den reellen Adreßraum des gesamten Schaltkreises beschreibt. In den reellen Adreßraumspeicher werden die unterste und die oberste Adresse des Schaltkreises, die er im realen Einsatzfall zugeordnet bekommen hat, einprogrammiert. In den Adreßsperrbereichspeicher werden die jeweils oberen und unteren Adreßbereiche des Schaltkreises einprogrammiert, für die der Softwareschutz ausgeklammert werden soll. Die Schaltungsanordnung, die einen schaltkreisinternen Takt erzeugt, wird so programmiert, daß der Takt der niederwertigsten Adresse des Schaltkreises im realen Einsatzfall entspricht. Die Schaltungsanordnung, die eine bestimmte Adreßwertkorrektur durchführt, wird so programmiert, daß eine Zuordnung der Adreßeingänge zu dem Adreßwert im realen Einsatzfall erfolgt. Als letztes wird im zweiten Programmierteilschritt die programmierbare UND-Verknüpfung programmiert in der Art, daß bei Vorhandensein von Adreßsperrboreichen das Fehlersignal am Ausgang der programmierbaren UND-Verknüpfung eine logische UND-Verknüpfung des Ausganges des Komparators, der die korrigierten Adreßsignale mit dem programmierbaren Zähler vergleicht, und des Komparators, der die Adressen mit dem Inhalt des Adreßsperrbereichspeichers vergleicht, darstellt und daß bei NichtVorhandensein von Adreßsperrbereichen das Fehlersignal aus dem Ausgangssignal des Komparators gewonnen wird, der die korrigierten Adreßsignale mit dem programmierbaren Zähler vergleicht.
Das Lesen eines Schaltkreises, der in einem Zustand mit Softwareschvitz versetzt worden ist, kann nur noch in der Art erfolgen, daß das in Nutzerbereichspeicher abgelegte Softwareprogramm stur abgearbeitet wird, wie das im normalen Einsatzfall des Speicherschaltkreises in einem Mikroprozessorsystem der Fall ist. Nach Anlegen der Betriebsspannung an den Schaltkreis liefert die Power-On-Reset-Schaltung für den Zeitraum von einem Takt ein Signal an das NOR, so daß dieses ein Ladesignal an den programmierbaren Zähler gibt, worauf der programmierbare Zähler mit den korrigierten Adreßsignalen geladen wird, weshalb der Komparator, der die korrigierten Adreßsignale mit dem Ausgang des programmierbaren Zählers vergleicht, kein Signal an das programmmierbare UND liefert.
Gleichzeitig liefert der Komparator, der die Adressen mit dem Inhalt des Adreßsperrbereichspeicher vergleicht, dann ein Signal an das programmierbare UND, wenn die Adressen nicht innerhalb der Adreßsperrbereiche liegen. Auf Grund der logischen UND-Verknüpfung liefert das programmierbare UND kein Fehlersignal an das nachgeschaltete Flipflop. Ebenfalls gleichzeitig werden die Inhalte von Nutzerbereichspeicher und Steuerwortspeicher in einem Komparator verglichen. Bei Übereinstimmung des Datenwortes aus dem Nutzerbereichspeicher mit Steuerwörtern einer ersten Art, die einen unbedingten Sprungbefehl ohne Adreßangabe darstellen, liefert der Komparator ein Signal an das NOR, so daß der programmierbare Zähler mit dem nächsten neuen korrigierten Adreßwert geladen wird. Bei Übereinstimmung des Datenwortes aus dem Nutzerbereichspeicher mit Steuerwörtern einer zweiten Art, die einen unbedingten Sprungbefehl mit nachfolgender Adreßangabe darstellen, liefert der Komparator ein Aktivierungssignal für die Zeitdauer von zwei Takten an den Komparator, der den Inhalt des Nutzerbereichspeicher mit dem Speicher, der den reellen Adreßraum beschreibt, vergleicht, wobei dieser Komparator für den Fall, daß die Sprungadresse innerhalb des reellen Adreßraumes des Schaltkreises liegt, ein Signal an das NOR liefert, so daß der programmierbare Zähler mit der neuen, im Adreßwert korrigierten Sprungadresse yeladen wird.
Das Kopieren eines Speicherschaltkreises erfolgt im allgemeinen in speziellen Programmiergeräten. Es kann davon ausgegangen werden, daß diese Kopiergeräte eine andere Adreßwertzuordnung besitzen, als der zu kopierende Speicherschaltkreis im realen Einsatzfall hat, dann liefert der Komparator, der den korrigierten Adreßwert mit dem programmierbaren Zähler vergleicht, ein Signal an das programmierbare UND, da zwar nach Zuschalten der Betriebsspannung an den Schaltkreis der programmierbare Zähler dem Komparator denselben Wert liefert wie die Schaltungsanordnung, die eine bestimmte Adreßwertkorrektur durchführt, jedoch nach Anlegen des zweiten Adreßwertes an den Schaltkreis für den Fall, daß die niederwertigsten Adressen von Kopiergerät und realem Einsatzfall nicht übereinstimmen, der programmierbare Zähler nicht aufwärtszählt, bzw. für den Fall, daß zwar die niederwertigsten Adressen übereinstimmen, der programmierbare Zähler anders aufwärtszählt, womit die Ausgangswerte des programmierbaren Zählers und die korrigierten Adreßwerte nicht übereinstimmen. Das programmierbare UND liefert dann ein Setzsignal an das Flipflop, so daß die Datenausgänge in einen hochohmigen Zustand versetzt werden.
Ausführungsbeispiel
Die Erfindung soll nachstehend an einem Ausführungsbeispiel näher erläutert werden. In den zugehörigen Zeichnungen zeigen
Fig. 1: eine erfindungsgemäße Schaltungsanordnung zum Softwareschutz eines Speicherschaltkreises Fig. 2: einen Ausschnitt aus einem Softwareprogramm zur Verdeutlichung der Wirkung unbedingter Sprünge.
Die Schaltungsanordnung zum Softwareschutz eines Speicherschaltkreises nach Fig. 1 besteht aus Adreßeingängen 1, die an Adreßeingangsstufen 3 angeschlossen sind, und Datenausgängen 2, welche an Datenausgangstreibern 19 angeschlossen sind. Die Adreßeingangsstufen 3 sind mit dem Nutzerbereichspeicher 4, einer Schaltungsanordnung 12, die einen Schaltkreisinternen Takt cp erzeugt, einer Schaltungsanordnung 11, die eine bestimmte Adreßwertkorrektur vornimmt, und einem Komparator 10, der diese Adreßsignale mit dem Inhalt eines Adreßsperrbereichsspeicher 7 vergleicht, verbunden. Der Nutzerbereichspeicher 4 ist mit den Datenausgangstreibern 19, einem Komparator 8, der den Inhalt eines Steuerwortspeicher 5 mit den ausgewählten Daten aus dem Nutzerbereichspeicher 4 vergleicht, und einem Komparator 9, der den Inhalt eines Speichers 6, der den reellen Adreßraum des Schaltkreises beschreibt, mit den ausgewählten Daten aus dem Nutzerbereichspeicher 4 in dem Fall vergleicht, wenn der Komparator 8 Identität von Daten aus dem Nutzerbereichspeicher 4 und Steuerwörtern, die einem unbedingten Sprungbefehl mit nachfolgender Adreßangabe darstellen, festgestellt hat. Der Komparator 8 liefert dann für die Zeitdauer von zwei Takten nach Feststellen der Identität ein Aktivierungssignal an den Komparator 9. Die Schaltungsanordnung 11, die eine bestimmte Adreßwertkorrektur durchführt, ist mit einem programmierbaren Zähler 14 und einem Komparator 13, welcher diese korrigierten Adreßsignale mit den Ausgangsdaten des programmierbaren Zählers 14 vergleicht, verbunden. Der Ausgang dieses Komparators 13 und des Komparators 10, der die Adreßsignalo mit dem Inhalt eines Speichers 7, der bestimmte Adreßsperrbereiche definiert, vergleicht, sind an ein programmierbares UND 10 angeschlossen, welches mit dem Setzeingang eines Flipflop 18 verbunden ist. Das Flipflop 18 ist mit Datenausgangstreiber 19 verbunden und schaltet diese bei Auftreten eines Fehlersignals in einem hochohmigen Zustand. Der Ausgang einer Power-On-Reset-Schaltung 15, der Ausgang des Komparators 9, der den Inhalt eines Speichers 6, der den reellen Adreßraum des Schaltkreises beschreibt, mit den ausgewählten Daten aus dem Nutzerbereichspeicher 4 vergleicht, und der Ausgang des Komparator 8, der die ausgewählten Daten aus dem Nutzerbereichspeicher 4 mit Steuerwörtern aus dem Steuerwortspeicher 5, die einen unbedingten Sprungbefehl ohne Adreßangabe darstellen, vergleicht, sind an ein NOR 16 angeschlossen, das dem programmierbaren Zähler 14 ein Ladesignal LOAD liefert. Die Schaltungsanordnung 12, die einen schaltkreisinternen Takt cp erzeugt, ist mit dem Zähleingang des programmierbaren Zähler 14, der Power-On-Reset-Schaltung 15, dem Speicher 6 für den reellen Adreßraum und dem Komparator 8, der rfie Daten aus dem Nutzerbereichspeicher 4 mit den Daten des Steuerwortspeicher 5 vergleicht, verbunden. Die Power-On-Reset-Schaltung 15 liefert für den Zeitraum von einem Takt nach Zuschalten der Betriebsspannung des Schaltkreises ein Signal POR an das NOR 16, so daß der programmierbare Zähler 14 mit dem korrigierten Adreßwert geladen wird. Der Schaltkreis wird im Falle eines Nur-Lese-Speichers in einem technologischen Verfahrensschritt bei der Herstellung des Schaltkreises zusammen mit dem Nutzerbereichspeicher 4 so programmiert, daß der Softwareschutz gewährleistet wird. Bei einem EPROM zum Beispiel, erfolgt die Programmierung dagegen in zwei Programmierteilschritten. Im ersten Prcgrammierteilschritt wird der EPROM in üblicher Weise programmiert, womit das Softwareprogramm im Nutzerbereichspeicher 4 zur Verfugung steht. Wird der Schaltkreis in einen Spezialprogrammiermode gebracht, indem an ein Pin des Schaltkreises, welches im Spezialprogrammiermode keine Bedeutung hat, eine Spannung, die größer als die übliche Eingangsspannung an diesem Pin ist, angelegt wird, werden der Nutzerbereichspeicher 4 abgeschaltet und die Adreßsignale den zu programmierenden Steuerwortspeicher 5, dem Speicher 6 für den reellen Adreßraum, dem Adreßsperrbereichspeicher 7, dem programmierbaren UND 17, der Schaltungsanordnung 11, die eine bestimmte Adreßwertkorrektur durchführt, und der Schaltungsanordnung 12, die einen schaltkreisinternen Takt cp erzeugt, zugeordnet. Damit kann in diesbm zweiten Programmierteilschritt die Schaltungsanordnung zum Softwareschutz aktiviert werden. Fig. 2 zeigt einen Ausschnitt aus einem Softwareprogramm zur Verdeutlichung der Wirkung unbedingter Sprünge.

Claims (3)

1. Schaltungsanordnung zum Softwareschutz in hochintegrierten Schaltkreisen, dadurch gekennzeichnet, daß der Ausgang der Speichermatrix mit dem Nutzerbereich (4) und ein Speicher (5), welcher bestimmte Steuerwörter enthält, mit einem Komparator (8) verbunden sind, und daß der Ausgang der Speichermatrix mit dem Nutzerbereich (4) und ein Speicher (6), der den reellen Adreßraum des Schaltkreises beschreibt, mit einem Komparator (9) verbunden sind, wobei dieser Komparator (9) nur dann aktiv ist, wenn der Komparator (8), der die Inhalte von Nutzerbereichspeicher (4) und Steuerwortspeicher (5) vergleicht, für bestimmte Steuerwörter Identität anzeigt, und daß die Ausgänge der Adreßeingangsstufen (3) und ein Speicher (7), der bestimmte Adreßsperrbereiche definiert, mit einem Komparator (10) verbunden sind, und daß die Ausgänge der Adreßeingangsstufen (3) mit einer Schaltungsanordnung (11), die eine bestimmte Adreßwertkorrektur durchführt, verbunden sind, wobei der Ausgang dieser Schaltungsanordnung (11) mit dem Eingang eines programmierbaren Zählers (14) und einem Komparator (13), welcher außerdem mit dem Ausgang des Programmierbaren Zählers (14) verbunden ist, und daß der Ausgang dieses Komparators (13) und der Ausgang des Komparators (10), der den Inhalt des Adreßsperrbereichspeichers (7) mit den Ausgängen der Adreßeingangsstufen (3) vergleicht, mit den Eingängen eines programmierbaren UND (17) verbunden sind, welcher für den Fall einer verbotenen Leseoperation ein Fehlersignal an den Setzeingang des nachgeschalteten Flipflop (18) liefert, worauf dieses Flipflop (18) alle Datenausgangstreiber (19) in einen hochohmigen Zustand bringt, und daß der Ausgang des Komparators (8), der den Inhalt des Nutzerbereichspeichers (4) mit dem Inhalt des Steuerwortspeichers (5) vergleicht, für bestimmte Steuerwörter ein Signal an den Eingang eines NOR (16) liefert, welches des weiteren von dem Komparator (9), der den Inhalt dos Nutzerbereichspeichers (4) mit dem Speicher (6), der den reellen Adreßraum des Schaltkreises bestimmt, vergleicht, und einer Power-On-Reset-Schaltung (15) angesteuert wird, und der Ausgang dieses NOR (16) ein Ladesignal für den programmierbaren Zähler (14) zur Verfügung stellt, und daß die Ausgänge der Adreßeingangsstufen (3) mit einer Schaltungsanordnung (12), die einen schaitkreisintemen Takt erzeugt, verbunden sind und wobei dieses Taktsignal den programmierbaren Zähler (14), die Power-On-Reset-Schaltung (15), den Speicher (6), der den reellen Adreßraum des Schaltkreises beschreibt, und den Komparator (8), der den Inhalt des Nutzerbereichspeicher (4) mit dem Inhalt des Steuerwortspeicher (5) vergleicht, ansteuert.
2. Schaltungsanordnung zum Softwareschutz in hochintegrierten Speicherschaltkreisen nach Punkt 1, dadurch gekennzeichnet, daß der schaltkreisinterne Takt aus dem niederwertigsten Bit der von der Schaltungsanordnung (11), die eine gewisse Adreßwertkorrekiur durchführt, gelieferten Ausgangssignale abgeleitet wird.
3. Schaltungsanordnung zum Softwareschutz in hochintegrierten Speicherschaltkreisen nach Punkt 1, dadurch gekennzeichnet, daß die Programmierung des Steuerwortspeichers (5), des Speichers (6), der den reellen Adreßraum beschreibt, des Speichers (7), der bestimmte Adreßsperrbereiche angibt, des programmierbaren UND (17), der Schaltungsanordnung (12), die einen schaltkreisinternen Takt erzeugt, und der Schaltungsanordnung (11), die eine gewisse Adreßwertkorrektur durchführt, im Falle eines Nur-Lese-Speichers gleichzeitig mit der Programmierung des Nutzerbereichspeichers (4) in einem technologischen Schritt bei der Herstellung des Schaltkreises erfolgt, und im Falle von programmierbaren Speichern und löschbaren programmierbaren Speichern in einem zweiten Programmierteilschritt erfolgt, wozu der Schaltkreis in einen Spezialprogrammiermode geschaltet wird, indem an ein Pin des Schaltkreises, welches im Spezialprogrammiermode keine Bedeutung hat, eine Spannung, die größer als die übliche Eingangsspannung an diesem Pin ist, angelegt wird, wobei in diesem Spezialprogrammiermode der Nutzerbereichspeicher (4) abgeschaltet wird und die Adreßsignale den zu programmierbaren Speichern und Schaltungsanordnungen zugeordnet werden.
Hierzu 2 Seiten Zeichnungen
Anwendungsgebiet der Erfindung
Die Erfindung betrifft eine Schaltungsanordnung, die in hochintegrierten Speicherschaltkreisen Anwendung findet, bei denen die einprogrammierte hochwertige oder geheimzuhaltende Software vor nichtautorisiertem Zugriff bzw. einfachem Kopieren und damit Duplizieren geschützt werden soll.
DD29855186A 1986-12-22 1986-12-22 Schaltungsanordnung zum softwareschutz in hochintegrierten speicherschaltkreisen DD297883A5 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DD29855186A DD297883A5 (de) 1986-12-22 1986-12-22 Schaltungsanordnung zum softwareschutz in hochintegrierten speicherschaltkreisen

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DD29855186A DD297883A5 (de) 1986-12-22 1986-12-22 Schaltungsanordnung zum softwareschutz in hochintegrierten speicherschaltkreisen

Publications (1)

Publication Number Publication Date
DD297883A5 true DD297883A5 (de) 1992-01-23

Family

ID=5585765

Family Applications (1)

Application Number Title Priority Date Filing Date
DD29855186A DD297883A5 (de) 1986-12-22 1986-12-22 Schaltungsanordnung zum softwareschutz in hochintegrierten speicherschaltkreisen

Country Status (1)

Country Link
DD (1) DD297883A5 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102004014644A1 (de) * 2004-03-25 2005-10-13 Atmel Germany Gmbh Integrierter Schaltkreis

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102004014644A1 (de) * 2004-03-25 2005-10-13 Atmel Germany Gmbh Integrierter Schaltkreis

Similar Documents

Publication Publication Date Title
DE2758152A1 (de) Speicherschutzanordnung
EP0128362B1 (de) Schaltungsanordnung mit einem Speicher und einer Zugriffskontrolleinheit
EP0766211A2 (de) Multifunktionale Chipkarte
DE2225841C3 (de) Verfahren und Anordnung zur systematischen Fehlerprüfung eines monolithischen Halbleiterspeichers
DE10338032B4 (de) Prozessor mit elektronischen Sicherungen zum Speichern von Geheimdaten
DE2151472A1 (de) Mikroprogrammspeicher fuer Elektronenrechner
EP0500973B1 (de) EEPROM und Verfahren zum Ändern einer Initialisierungsroutine im EEPROM
DE60222891T2 (de) Nichtflüchtige Speichervorrichtung und Selbstreparatur-Verfahren
EP1262856B1 (de) Programmgesteuerte Einheit
WO2000068794A1 (de) Verfahren zum gesicherten schreiben eines zeigers für einen ringspeicher
EP0280035B1 (de) Verfahren zum Sichern von Programmen und zur Integritätskontrolle gesicherter Programme
DE10330057A1 (de) Neueinschreibsperrverfahren zum Bestimmen von Neueinschreibfreigabe/Sperre basierend auf dem Ergebnis einer Majoritätsentscheidung
DE2810421A1 (de) Speicherschutzeinrichtung
EP1661069B1 (de) Prozessorschaltung und verfahren zum zuordnen eines logikchips zu einem speicherchip
WO2019242969A1 (de) Kryptografiemodul und betriebsverfahren hierfür
EP0813723A1 (de) Chipkarte mit geschütztem betriebssystem
EP1022659B1 (de) Schaltungsanordnung zur elektonischen Datenverarbeitung
DE4315732C1 (de) Verfahren zum authentischen Booten und Testen der Integrität von Software auf PC-Architekturen
WO2004114131A1 (de) Verfahren zum nachladen einer software in den bootsektor eines programmierbaren lesespeicher
EP1248200A1 (de) Verriegelungsschaltung zur Verhinderung eines unzulässigen Zugriffs auf die Speichereinrichtung eines Prozessors
DE10218795A1 (de) Verfahren zum Herstellen eines elektronischen Sicherheitsmoduls
DD297883A5 (de) Schaltungsanordnung zum softwareschutz in hochintegrierten speicherschaltkreisen
DE19612439C2 (de) Halbleiterspeichervorrichtung
DE10218835A1 (de) Verfahren zum Herstellen eines elektronischen Sicherheitsmoduls
DE60035915T2 (de) Einrichtung und Verfahren zur Prüfung eines nichtflüchtigen wiederprogrammierbaren Speichers

Legal Events

Date Code Title Description
ENJ Ceased due to non-payment of renewal fee
WEVS Restitution into prior status
RPI Change in the person, name or address of the patentee (searches according to art. 11 and 12 extension act)
ENJ Ceased due to non-payment of renewal fee