DE3315992A1 - Anordnung zum schuetzen vor unbefugtem lesen in einem speicher zu schreibender programmwoerter - Google Patents

Anordnung zum schuetzen vor unbefugtem lesen in einem speicher zu schreibender programmwoerter

Info

Publication number
DE3315992A1
DE3315992A1 DE19833315992 DE3315992A DE3315992A1 DE 3315992 A1 DE3315992 A1 DE 3315992A1 DE 19833315992 DE19833315992 DE 19833315992 DE 3315992 A DE3315992 A DE 3315992A DE 3315992 A1 DE3315992 A1 DE 3315992A1
Authority
DE
Germany
Prior art keywords
memory
unit
program
input
output
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.)
Ceased
Application number
DE19833315992
Other languages
English (en)
Inventor
Hendrik 5621 Eindhoven Vrielink
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.)
Koninklijke Philips NV
Original Assignee
Philips Gloeilampenfabrieken NV
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 Philips Gloeilampenfabrieken NV filed Critical Philips Gloeilampenfabrieken NV
Publication of DE3315992A1 publication Critical patent/DE3315992A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3802Instruction prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address

Description

a a e · β <* ·
PHN 10.344 Y £ ' 21-4-1983
"Anordnung zum Schützen vor unbefugtern Lesen in einem Speicher zu schreibender Programmwörter".
Die Erfindung betrifft ein Anordnung zum Schützen vor unbefugtem Lesen in einem Speicher, insbesondere in einem Programmspeicher, gespeicherter Programmwörter, welcher Speicher ein Teil einer Speichereinheit ist, welche Anordnung weiter eine Datenprozessoreinheit enthält, deren einer Adressausgang mit einem Adresseingang des Speichers zum Adressieren der Programmwörter bei einer Verarbeitungsoperation in einer von der Datenprozessoreinheit bestimmten Reihenfolge verbunden ist.
Anordnung, die eine Datenprozessoreinheit steuert, enthalten einen Speicher, beispielsweise einen ROM oder einen PROM, in dem in Form von Programmwörtern Computerprogramme und sonstige Informationen, kurz Software, zum Durchführen von Datenprozessorvorgängen gespeichert ist.
Das Zusammenstellen dieser Software ist eine vorwiegend Zeit und Geld kostende Aufgabe. Es ist daher wichtig, dass diese Software nicht ohne weiteres von einem unbefugten Leser kopiiert werden kann.
Es sind bereits einige Verfahren bekannt, bei denen der Inhalt des Speichers oder der Software vor unbefugtem Lesen geschützt wird. So ist die Verwendung von Codewörtern oder von "Zugangsschlüsseln" sowie die Verwendung sog. Schutzinstruktionen bekannt, wodurch der Zugriff zu den im Speicher geschriebenen Programmwörtern verhindert wird. Ein derartiges Verfahren ist zum Beispiel in der Veröffentlichung "Computer program protection" von E.J. Lenfvyel und D.H. Olson beschrieben, welche Veröffentlichung in IBM TDB Vol. 14, No. 11, April 1972, S. 3531 aufgenommen ist.
Ein Nachteil der bekannten Verfahren besteht darin, dass der Misserfolg eines Versuchs zum Kopiieren der Software aus dem Speicher ziemlich rasch bemerkbar ist. Ein kluger unbefugter Leser findet dabei meist eine
PHN 10.344 /ζ. 21-4-1983
Methode zum Entaktivieren des Schutzverfahrens, wodurch er diese unbefugte Handlung später noch durchführen kann.
Der Erfindung liegt die Aufgabe zugrunde, eine Anordnung zu verwirklichen, bei der unbefugtes Lesen des Speicherinhalts zum Abgeben völlig unbrauchbarer Information an den unbefugten Leser führt, ohne dass letztgenannter etwas während des Kopierversuchs davon bemerkt.
Diese Aufgabe wird mit einer erfindungsgemässen Anordnung dadurch gelöst, dass die Speicheranordnung eine Auswahleinheit, eine Quittungseinheit und eine Datenquelle ausserhalb des Speichers zum Abgeben zumindest eines Störworts enthält, das eine störende Wirkung beim Einfügen in die genannten Programmwörter hat, wobei ein erster' Eingang der Auswahleinheit mit einem ersten Ausgang des Speichers und ein zweiter Eingang mit dem Ausgang der Datenquelle verbunden sind, wobei jedem im Speicher geschriebenen: Prograrfirrn.'ort eine Zusatzinformation hinzugefügt ist, wobei ein zweiter Ausgang des Speichers mit einem ersten Eingang der Quittungseinheit zum Zuführen der Zusatzinformation verbunden ist, wobei ein zweiter Eingang der Quittungseinheit mit einem Anschluss des Speichers zum Zuführen von Prügramminformation verbunden ist, welche Quittungseinheit mit ersten Mitteln versehen ist, die bei einer Leseoperation für ein erstes Programmwort aus dem Speicher die Zusatzinformation speichert, die ein von der genannten Reihenfolge bestimmtes Folgeprogrammwort nach dem ersten Programmwort anzeigt, welche Quittungseinheit mit zweiten Mitteln versehen ist, die bei einer Leseoperation für ein zweites Programmwort aus dem Speicher und unter der Steuerung der gespeicherten Zusatzinformation die Übereinstimmung der Programminformation des zti lesenden zweiten Programmworts mit der Pro- ^rainiiiinf orrna tion des von der Zusatzinformation angezeigten Folgc;pro,";rarnmwor ts quittiert und bei Übereinstimmung der Quittung ein erstes Signal erzeugt und bei Nichtübereinstimmung der Quittung ein zweites Signal erzeugt, wobei die Auswahleinheit mit einem Steuereingang zum Empfangen des ersten und des zweiten Signals versehen ist, der unter
PHN 10.3^4 Sf 3-, 21-4-1983
der Steuerung des ersten Signals ein Programmwort aus dem Speicher einem Ausgang zuführt und unter der Steuerung des z\yre±ten Signals die Ausgabe zumindest eines Programmworts aus dem Speicher blockiert und durch ein aus der Datenquelle herrührendes Störungswort am Ausgang ersetzt. Die Programmwörter sind in einer vorbestimmten Reihenfolge im Speicher geordnet. Die Reihenfolge jedoch, in der die Programmwörter von der Datenprozessorexnhext bei der Verarbeitung des Programms herangezogen werden, ist anders als die vorbestimmte Reihenfolge, in der die Prügrammwörter in den Speicher geschrieben sind. So ist es normal, dass unter der Steuerung der Datenprozessorexnhext beispielsweise nach ein Unterprogramm gesprungen wird. Nur der Verfasser des Programms und die Datenprozessorexnhext kennt die Reihenfolge, mit der die Prugrammwörter in den Speicher eingelesen werden, um das Programm durchzuführen. Jedoch der unbefugte Leser kennt diese Reihenfolge nicht und zieht die Programmwörter aus dem Speicher heran, indem er beispielsweise diese Wörter eins nach dem anderen in der Reihenfolge der Speicherung heranzieht. Wenn nunmehr die vorbestimmte Reihenfolge vom Datenprozessor nicht eingehalten wird, wird zumindest für eines der auszugebenden Programmwörter aus dem Speicher der ersten Speicheraus gang blockiert und das auszugebende Programmwort durch ein Störungswort aus der Datenquelle ersetzt. Dieses von der Datenquelle ausgegebene Störungswort ist zum Verarbeiten des Programms völlig unbrauchbar. Der unbefugte Leser bemerkt davon beim Kopieren nichts, da am Ausgang der Anordnung wie normal Programmwörter ausgegeben werden. Jedoch wenn er sein kopiertes Programm verwenden wird, bemerkt er, dass das kopierte Programm unbrauchbar ist.
Eine erste bevorzugte Ausführungsform einer erfindungsgemässen Anordnung ist dadurch gekennzeichnet, dass der Anschluss des Speichers einen Adresseingang des Speichers enthält und die Prograrnminformation zumindest einen Teil der Adresse des Prof;rnmmworts enthält. Die genannte Quittung ist aiii" liasis einiger Bits der Adresse des von der Datenprozessorexnhext adressierten Programm-
PHN 10.3^4 Jy g 21-4-1983
worts einfach realisierbar.
Es ist vorteilhaft, wenn die ersten Mittel der Quittungseinheit ein Eigenregister und eine Speichertabelle enthalten, welches Eigenregister mit einem ersten Eingang an den ersten Eingang der Quittungseinheit und ein Ausgang der Datenprozessoreinheit an einen zweiten Eingang des Eigenregisters zum Empfangen eines Steuersignals für eine Leseoperation angeschlossen ist, welches Eigenregister mit einem Ausgang an einen Adresseingang der Speichertabelle zum Speichern von Programmwortadressen angeschlossen ist, wobei die Zusatzinformation eine Adresse für eine Stelle in der Speichertabelle enthält. Durch die Verwendung einer derartigen Speichertabelle, in der Adressen von Programmwörtern eingeschrieben sind, ist es möglich, die Quittung an allen Bits des Adressworts durchzuführen, ohne dass dadurch viel Raum im Speicher zum Schreiben der Zusatzinformation belegt wird.
Eine zweite bevorzugte Ausführungsform einer erfindungsgemässen Anordnung ist dadurch gekennzeichnet, dass der Anschluss des Speichers einen Datenausgang des Speichers und die Programminformation zumindest einen Teil des Programmworts enthält. Neben der Quittung auf Basis von Adresswörtern ist es weiter möglich, auf Basis der Progratnmwörter selbst zu quittieren.
Eine weitere bevorzugte Ausführungsform einer erfindungsgemässen Anordnung ist dadurch gekennzeichnet, dass die zu schützenden Programmwörter in zwei verschiedene Gruppen eingeteilt sind, wobei bei einer ersten Gruppe jedem Prograrnmwort eine exklusive Zusatzinformation und bei einer zweiten Gruppe jedem Programmwort eine nicht exklusive Zusatzinformation hinzugefügt ist, wobei die Quittungseinheit mit Erkennungsmitteln ausgerüstet ist, die Zusatzinformation der zweiten Gruppe erkennen und unter der Steuerung einer Zusatzinformation der zweiten Gruppe die Vergleichseinheit entaktivieren und ein erstes Signal erzeugen. Das Hinzufügen einer exklusiven Zusatzinformation zu jedem Programmwort bedeutet die Belegung einer grossen Speicherraunniieniye und erhöht den Wirkungs-
• O « O · O
PHN 10.3'^ /0 21-4-1983
grad der Anordnung zum unbefugten Lesen nur in geringem Masse. Hierzu genügt es, nur einer erste Gruppe von Programmwörtern mit einer exklusiven Zusatzinformation zu versehen und den Programmwörtern, die dieser Gruppe nicht zugeordnet sind, eine nicht exklusive Zusatzinformation hinzuzufügen, beispielsweise haben alle Programmwörter der zweiten Gruppe die gleiche Zusatzinformation. Durch diesen Unterschied in ersten und zweiten Gruppen wird nur eine geringe Menge des verfügbaren Speicherraums durch die Zusatzinformation belegt.
Es ist vorteilhaft, dass die Datenquelle einen Zufallsgenerator enthält. Durch die Verwendung eines Zufallsgenerators ist es möglich, stets verschiedene unbrauchbare Programmwörter zu erzeugen, wenn ein unbefugter Leser den Speicherinhalt zu kopieren versucht.
Nachstehend werden an Hand der Zeichnung Ausführungsbeispiele der Erfindung näher erläutert. Es zeigen
Fig. 1a eine einfache Ausführungsform einer
erfindungsgemässen Anordnung zum Schützen gegen unbefugtes Lesen, in der die Quittung auf Basis des Adressignals erfolgt,
Fig. Ib einige Wellenmusterdiagramme zum Erläutern der Wirkung einer erfindungsgemässen Anordnung, Fig. 2 eine andere Ausführungsform einer erfindungsgemässen Anordnung,
Fig. 3 eine weitere Ausführungsform einer erfindungsgemässen Anordnung, in der die Quittung nunmehr auf Basis des Programmworts erfolgt»
In einem Datenverarbeitungssystem wird eine Datenprozessoreinheit zum programmässigen Verarbeiten von Daten benutzt. Dieses Programm ist in der Form von Programmwörtern, wie z.B. Instruktionen, Daten usw. in einem Speicher, auch mit Programmspeicher bezeichnet, geschrieben. Dieser Speicher ist meist ein Totspeicher, beispielsweise ein ROM oder sonst ein PROM, EAROM oder ein anderer IC-Speicher (integrated circuit). Die Programmwörter eines Programms sind in einer bestimmten Reihenfolge in den Speicher eingeschrieben. Bei der Durchführung des Pro-
PHN 10.344 /^ /ΊΟ- 21-4-1983
gramrns liest die Datenprozessorciiiheit die Prograinmwörter in den Speicher in einer Reihenfolge, die der Inhalt und die Art des Programms sowie die zu verarbeitenden Daten bestimmen. Letztgenannte Reihenfolge weicht von der Reihenfolge ab, in der die Programmwörter in den Speicher eingeschrieben sind. Das bedeutet, dass unter der Steuerung der Datenprozessoreinheit im Programm, wie in den Speicher eingeschrieben, gesprungen wird, die sog. Sprünge. Ein unbefugter Leser kennt nicht die Reihenfolge, in der die Datenwörter bei der Durchführung des Programms von der Datenprozessoreinheit aus dem Speicher herangezogen werden. Wenn ein unbefugter Leser das Programm aus dem Speicher lesen möchte, wird er dies durch Heranziehen der Programmwörter in einer Reihenfolge machen, die von der Reihenfolge der Datenprozessoreinheit abweicht.
Die Erfindung nutzt jetzt die Tatsache aus, dass der unbefugte Leser die vom Datenprozessor angegebene Reihenfolge nicht einhält, um die unbefugte Handlung zu stören.
Nachstehend wird die Erfindung an Hand einiger Ausführungsformen beschrieben, wobei jeweils eine Instruktion (Wort) als Programmwort gewählt ist. Es wird klar sein, dass die Erfindung auf analoge Weise für Datenwörter oder für jede andere Art von Programmwort arbeitet.
In Fig. 1a ist eine einfache Ausführungsform einer Anordnung zum Schützen vor unbefugtem Lesen nach der Erfindung dargestellt. Die Speicheranordnung 20 enthält einen Speicher 1, beispielsweise einen ROM, dessen einer Adresseingang mit einer Breite beispielsweise von 11 Bits mit einem Adressbus 2 des Systems verbunden ist. Ein erster Datenausgang des Speichers 1 ist über einen ersten Datenbus 9 beispieisweise von 8 Bits mit einem ersten Eingang einer Auswahleinheit 7 verbunden. Ein zweiter Datenausgang· des Speichers 1 ist über einen zweiten Datenbus 13 mit einem ersten Eingang einer Quittungseinheit 21 verbunden. Ein zweiter Eingang der Quittungseinheit 21 ist an eine Anzahl von Leitungen, beispielsweise 4 des Adressbusses 2 nii/vesclilowsen. Ein zweiter Eingang der
PHN 10.344 jf A1* 21-4-1983
Auswahleinheit 7 ist mit einem Ausgang einer Datenquelle 8 verbunden. Die Auswahleinheit verfügt weiter noch über einen Steuereingang S, der an einen Ausgang der Quittungseinheit 21 angeschlossen ist. Eine Leitung 11 ist ein Träger des CS-Signals (chip select), das einem CS-Eingang des Speichers 1 und einem dritten Eingang der Quittungseinheit 21 zugeführt wird. Diese Quittungseinheit enthält eine Vergleichseinheit 3» deren erster bzw. zweiter und dritter Eingang mit dem ersten bzw. zweiten und dritten Eingang der Quittungseinheit verbunden sind. Der erste Eingang der Quittungseinheit ist noch mit einem ersten Eingang einer logischen ODER-Anordnung 4 verbunden. Die Quittungseinheit 21 enthält weiter ein logisches UND-Gatter 5j dessen einer Ausgang mit einem Takteingang eines Flipflops 6 verbunden ist. Das CS-Signal zum dritten Eingang der Quittungseinheit 21 wird weiter über die Umkehrstufe 10 invertiert und einem ersten Eingang des logischen UND-Gatters 5 zugeführt. Ein zweiter Eingang des logischen UND-Gatters 5 ist über eine Leitung 12 mit einem Ausgang der Vergleichseinheit 3 und ein dritter Eingang des logischen UND-Gatters 5 mit einem Ausgang der logischen ODER-Anordnung 4 verbunden. Ein Ausgang des Flipflops 6 ist an den Ausgang der Quittungseinheit angeschlossen.
Im Speicher 1 ist nunmehr Raum 14 belegt, beispielsweise 4 Bits zum Speichern von Zusatzinformation neben jeder Instruktion, welche Zusatzinformation sich auf eine folgende Instruktion bezieht, die eine angeschlossene Datenprozessoreinheit 15 bei der Durchführung des Programms abgreift.
In der gewählten Ausführungsform werden in diesen Raum i4 bei einer Instruktionsfolge jeweils die bedeutsamsten Bits der Adresse einer nächsten, von der Datenprozessoreinheit heranzuziehenden Instruktion als Zusatzinformation eingeschrieben. Es ist weiter möglich, bei jeder Instruktion jeweils die bedeutsamsten Adressbits einer nächsten, von der Datenprozessoreinheit heranzuziehenden Instruktion als Zusatzinformation zu verwenden, aber dies bedeutet die Belegung einer grossen Speicherraummenge und
* * w v WvWVW tt« VV
PHN 10.344 a/rf. 21-4-1983
verbessert den Wirkungsgrad der Anordnung zum Schützen vor unbefugtem Lesen nur in geringem Masse, wie weiter in der Beschreibung näher erläutert wird
Statt der bedeutsamsten Bits können selbstverständlich auch die unbedeutsamsten Bits oder kann eine andere Kombination von Bits aus der Adresse der nächsten Instruktion als Zusatzinformation gewählt werden. Bei den übrigen, nicht zur genannten Folge gehörenden Instruktionen enthält die Zusatzinformation einen festen Wert, beispielsweise haben alle Bits für die Zusatzinformation den Wert Null und jede Instruktion wirkt dabei als Folgeinstruktion. Man kann also gleichsam die Programmwörter in zwei Gruppen einteilen, d.h. eine erste Gruppe, bei der jedes Programmwort eine exklusive Zusatzinformation besitzt, und eine z\veite Gruppe, bei der dies nicht der Fall ist. Es ist nicht unbedingt notwendig, dass die Zusatzinformation sich auf die nächste Instruktion bezieht. Die Zusatzinformation darf sich auch auf eine weitere, von der Datenprozessoreinheit heranzuziehende Instruktion beziehen, aber dabei sind mehrere Elemente bei der Anordnung erforderlich, wie beispielsweise ein Zähler, wodurch die Anordnung teuerer und komplizierter wird.
Wenn nunmehr eine erste Instruktion von der Datenprozessoreinheit 15 im Speicher 1 adressiert wird, wird die zu dieser Instruktion gehörende Zusatzinformation mitadressiert. Beim Adressieren des Speichers 1 ist das CS-Signal auf einem niedrigen Pegel, wie in Fig- 1b dargestellt. Durch die Adressierung des Speichers von der Datenprozessoreinheit 15 werden die herangezogene erste Instruktion und die zugeordnete Zusatzinformation dem ersten bzw. dem zweiten Datenausgang des Speicher 1 zugeführt (Datensignal (DAT) hoch, Fig. 1b).
Die zu dieser ersten Instruktion gehörende Zusatzinformation gelangt über den zweiten Datenbus 13 zum Komparator 3 und wird dort beispielsweise in einem Eigenregister des Komparators gespeichert. Da das Eigenregister auf der Vorderflanke des CS-Signals anspricht, erfolgt diese Speicherung beim Übergang vorn niedrigen auf den
PHN 10.344 y^ Λ2>, 21-4-1983
hohen Pegel des CS-Signals. Wenn Jetzt die Datenprozessoreinheit eine zweite Instruktion ans dem Speicher 1 heranzieht, führt der Komparator 3 eine Vergleichsoperation aus. Diese Vergleichsoperation erfolgt unter der Steuerung der Rückflanke des CS-Signals und dabei werden in dieser Ausführungsform die bedeutsamsten Adressbits der Adresse der zweiten Instruktion, wie sie dem zweiten Eingang des Komparators zugeführt werden, mit der Zusatzinformation im Eigenregister des !Comparators verglichen.
Das Ergebnis der Vergleichsoperation ist positiv, wenn der Speicher 1 in der richtigen Reihenfolge, wie vom Programm der Datenprozessoreinheit angegeben, adressiert wird, also wenn die Adresse der zweiten Instruktion hinsichtlich der bedeutsamsten Bits gleich den noch im Eigenregister vorhandenen bedeutsamsten Bits der Adresse der nächsten Instruktion ist.
Das Ergebnis der Vergleichsoperation ist negativ, wenn der Speicher 1 in einer fehlerhaften Reihenfolge adressiert wird, beispielsweise wenn der Inhalt des Speichers kopiert wird und die Instruktionen nicht in der vom Programm der Datenprozessoreinheit bestimmten Reihenfolge herangezogen werden. In diesem Fall unterscheidet sich nämlich die Adresse der zweiten Instruktion von der Adresse der nächsten Instruktion.
Das Ergebnis der Vergleichsoperation wird in invertierter Form an einem Ausgang EQ des !Comparators 3 verfügbar und gelangt über die Leitung 12 zum zweiten Eingang des logischen UND-Gatters 5· Dem ersten Eingang des logischen UND-Gatters 5 wird das CS-Signal zur Verwirklichung einer Synchronisation mit dem Heranziehen von Instruktionen aus dem Speicher zugeführt.
Die logische ODER-Anordnung 4 hat eine besondere Funktion, die nachstehend näher erläutert wird. Wie bereits in der Beschreibung erwähnt wurde, sind nicht alle Instruktionen mit einer exklusiven Zusatzinformation versehen, sondern es gibt in dieser Ausführungsform Instruktionen im Speicher 1, bei denen alle Bits für die Zusatzinformation den Wert Null besitzen (zweite Gruppe). Wenn
■ V · IS β ti V .F
PPIN 10.3^4 ic/ /<£ 21-4-1983
nunmehr die Zusatzinformation bei einer Instruktion ausschliesslich aus Nullen besteht, nimmt die Quittungsoperation eine nndere Form an. Diese Nullen gelangen jedoch stets zum Komparator 3» wenn eine Instruktion mit Nullen als Zusatzinformation von der Prozessoreinheit herangezogen wird. Es wird klar sein, dass das Ergebnis der Vergleichsoperation negativ sein kann, wenn Nullen zugeführt werden. Zum Unterdrücken dieses negativen Ergebnisses dient jetzt die logische ODER-Anordnung 4. Diese logische ODER-Anordnung führt eine logische ODER-Operation an den Bits der Zusatzinformation aus. Das bedeutet, dass das Ergebnis an einem Ausgang der logischen ODER-Anordnung 4 den Wert logische "1" annimmt, wenn zumindest eines der Bits der Zusatzinformation sich von Null unterscheidet, und dass der Wert logisch "Ü" dem Ausgang der logiscgen ODER-Anordnung zugeführt wird, wenn alle Bits der Zusatzinformation den Wert Null besitzen. Da das Ergebnis am Ausgang der logischen ODER-Anordnung 4 nur für die nächste Instruktion wichtig ist (Vergleichsoperation im Komparator 3)j muss es erst beim Heranziehen der nächsten Instruktion abgegeben werden. Das Ergebnis der logischen ODER-Operation wird dazu in der logischen ODER-Anordnung 4 aufbewahrt, beispielsweise durch das Setzen eines Flipflops. Es lassen sich drei Fälle unterscheiden:
1. Das Ergebnis der Vergleichsoperation ist positiv;
2. Das Ergebnis der Vergleichsoperation ist negativ und die Zusatzinformation enthielt nicht ausschliesslich Nullen;
3. Das Ergebnis der Vergleichsoperation ist nicht zutreffend dadurch, dass die Zusatzinformation ausschliesslich Nullen enthielt.
Diese drei Fällen werden nunmehr einzeln beschrieben.
1. Das Ergebnis der Vergleichsoperation ist positiv. In diesem Fall ist auf der Leitung 12 am zweiten Eingang des logischen UND-Gatters 5 der Wert EQ = "O" gegeben, am Ausgang der logischen ODER-Anordnung 4 gelangt der Wert OR = "I", der einem dritten Eingang des logischen
PHN 10.344 -μΚ /fC' 21-4-1983
UND-Gatters 5 zugeführt wird. Einem ersten Eingang des logischen UND-Gatters 5 wird beim Heranziehen einer Instruktion aus dem Speicher 1 der Wert CS = "1" zugeführt. Da EQ = "0", OR = "12 und ÖS = "1" ist, gelangt an einen Ausgang des logischen UND-Gatters 5 ein Wert logische "0", der einem Takteingang des Flipflops 6 zugeführt wird. Diese logische "0" sorgt dafür, dass der Flipflop 6, beispielsweise vom Typ D, nicht umschaltet (der Flipflop ist derart eingestellt, dass nach dem Einschalten der Speisung dieser Flipflop zurückgestellt ist und zwar Q = θ), wodurch einem Ausgang Q des Flipflops 6 auch ein logischer "O"-Wert zugeführt und einem Eingang S der Auswahleinheit 7 zugeführt wird. Diese Auswahleinheit 7 liefert zu einem Ausgang F ein Signal mit dem Wert F = A.S + B.S. Dies bedeutet, dass, wenn dem Eingang S der Wert logisch "0" (S = "0") zugeführt wird (also 's = "1"), die Auswahleinheit die aus dem Speicher 1 herangezogene Instruktion abgibt (F = A.1). Denn diese Instruktion wird über den ersten Datenbus 9 seinem Eingang A der Auswahleinheit 7 zugeführt. Infolgedessen wird also bei positivem Ergebnis der Vergleichsoperation die richtige Instruktion einem Dateneingang der Datenprozessorexnheit 15 oder einem anderen Benutzer zugeführt.
2. Das Ergebnis der Vergleichsoperation ist negativ und die Zusatzinformation enthielt nicht ausschliesslich Nullen. Das bedeutet, dass EQ = "1", OR = "1" und CS = "1" den Eingängen des logischen UND-Gatters 5 zugeführt wird. Dadurch gelangt an einen Ausgang dieses logischen UND-Gatters 5 ein Wert logisch "1". Dieser logische "1"-Wert schaltet jetzt den Flipflop 6 um, wodurch der Wert Q= "1" dem Ausgang Q des Flipflops 6 und dem Eingang S der Auswahleinheit 7 zugeführt wird. Diese Auswahleinheit erzeugt am Ausgang F das Signal F = B.1. Das bedeutet, dass Information aus der Datenquelle 8 einem Benutzer statt der erbetenen Instruktion aus dem Speicher 1 abgegeben wird. Auf diese Weise bekommt der unbefugte Leser unbrauchbare Information aus der Datenquelle 8.
3. Das Ergebnis der Vergleichsoperation ist nicht
PHN 10.3^4 y^ /}ζ>* 21-4-1983
zutreffend dadurch, dass die Zusatzinformation ausschliesslich Nullen enthielt. Das bedeutet, dass EQ = "1", OR = "0" und CS = "1" den Eingängen des logischen UND-Gatters 5 zugeführt wird. Dadurch gelangt an einen Ausgang dieses logischen UND-Gatters 5 ein Wert logisch "0", mit dem wieder die gleiche Situation auftritt, wie beim ersten Fall beschrieben wurde. Hierdruch ist erreicht, dass es nicht notwendig ist, bei jeder Instruktion eine exklusive Zusatzinformation einzufügen, wodurch der von der Zusatzinformation eingenommene Raum einigermassen beschränkt bleiben kann.
Für die Datenquelle 8 sind mehrere Ausführungsformen möglich, beispielsweise ein Register, ein Zufallsgenerator, ein Speicher (zwar abweichend vom Speicher 1) oder einfach eine Verbindung nach Erde. Diese Datenquelle erzeugt am zweiten Eingang der Auswahleinheit 7 Stördaten, die zum Durchführen des Programms ungeeignet sind. Der Ersatz der Instruktionen aus dem Speicher 1 durch Stördaten aus der Datenquelle 8 sorgt dafür, dass das kopierte Programm unbrauchbar geworden ist. Vorzugsweise erzeugt die Datenquelle 8 nicht ein und dasselbe feste Störwort am Eingang B der Auswahleinheit. Letzteres wäre nämlich schnell erkennbar von einem möglichen unbefugten Leser. Indem stets andere Störwörter dem Ausgang F der Auswahleinheit 7 zugeführt werden, wenn der Eingang B ausgewählt ist, lässt sich schwer feststellen, ob die erzeugte Information aus dem Speicher 1 oder aus der Datenquelle 8 herrührt. Die Wirkung einer Anordnung nach Fig. 1a wird nachstehend mit einem Beispiel aus der nachstehenden Tabelle I erläutex^t, in welchem Beispiel ein Teil des Inhalts des Speichers 1 gegeben ist.
PHN 10.3^4 U-" /Jl, 21-4-1983
Tabelle I
Adresse Zusatzinformation (i4) Instruktion/Datenwort
000000 000 Setze a, b, c, d, e =
000001 000 a = a+1
000010 001 gehe nach 001000
000011 000 lies ρ
000100 000 zeige ρ an
000101 000 gehe in b ein, speichere b 000110 000 gehe nach 000001
0001 1 1 000 c = c+1
001000 001 gehe nach 001010, wenn
grosser als
001001 000 gehe nach 000011 001010 000 zeige b an
00101 1 000 b = b-1
001111 010 gehe nach 010001, wenn
b kleiner als
010000 001 gehe nach 001010
010001 000 d = a+b 010101 000 e = a+c
Angenommen sei,- dass das Programm durch sequentielles Lesen der aufeinanderfolgenden Instruktionen kopiert wird (beispielsweise durch Inkrementieren eines Zählers). Es entstehen keine Probleme beim Lesen der ersten und der zweiten Instruktion (Adressen 000000 und 000001), weil der unbefugte Leser die vom Datenprozessor bestimmte Reihenfolge einhält. Wenn die dritte Instruktion (Adresse OOOOIO) adressiert wird, wird die von den bedeutsamsten Adressbits gebildete Zusatzinformation 001 (im Teil 14 des Speichers 1 geschrieben) herangezogen und in das Register des Komparators 3 gespeichert. Da die Zusatzinformation ein Bit mit dem Wert 1 enthält, wird der Wert 1 am Ausgang des ODER-Gatters k gespeichert.
Beim Heranziehen der vierten Instruktion (Adresse OOOOII) vergleicht der Komparator die bedeutsamsten Bits der Adresse zum Speicher, d.h. 000, mit der Zusatzinformation, d.h. 001, in seinem Register. Das Ergebnis dieses Vergleichs ist negativ (θ). Dieses Vergleichsergebnis
PHN 10.344 y<~ Stf· 21-4-1983
ft *
wird am Ausgang des Komparators 3 invertiert (θ (invertiert) = 1). Am Eingang des UND-Gatters 5 stehen nunmehr die Werte 1, 1, 1 (Komparator 3, ODER-Gatter 4, (CS(zweimal invertiert)) zur Verfügung. Der Ausgang des UND-Gatters 5 hat jetzt einen Wert 1, der den Flipflop 6 umschaltet, wodurch dieser wieder den Eingang B des Wählers 7 wählt, d.h. Information aus der Datenquelle 8 und nicht die Information "Lies p" aus dem Speicher 1. Der unbefugte Kopierer wird dies nicht feststellen, weil Information ausig gegeben wird. Durch Heranziehen der fünften Instruktion (Adresse 000100) hat der Vergleich zwischen der Zusatzinformation (OOO), die der vierten Instruktion zugefügt wurde, und den bedeutsamsten Bits der zugeführten Adresse (OOO) ein positives Ergebnis, d.h. invertierter Ausgang des Komparators = 0, Ausgang des ODER-Gatters 4=0 (oder Operation auf OOO) und CS (zweimal invertiert = i). Der Ausgang des UND-Gatters 5 hat den Wert 0, wodurch der Flipflop 6 zurückgestellt wird, so dass der Eingang A des Wählers erneut gewählt wird. Eine falsche Instruktion ist also zwischen zwei richtigen Programminstruktionen eingeführt.
Wenn das Heranziehen vom Datenprozessor bei einer normajen Durchführung des Programms erfolgt, hätte die dritte Instruktion (gehe nach 001OOO) ausgeführt werden müssen. In diesem Fall wäre die von der nächsten Instruktion nach diese "gehe nach"-Instruktion dem Adresseingang des Speichers zugeführte Adresse 001000 gewesen, d.h. mit den bedeutsamsten Bits 001, die in diesem Fall gleich der Zusatzinformation (OOI) sind, die der dritten Instruktion zugefügt wurde, und ergibt also ein positives Ergebnis des Komparators 3 (Ausgang θ). Der Ausgang des ODER-Gatters 4 für eine Zusatzinformation 001 ist gleich 1. Also sind die dem Eingang des UND-Gatters 5 zugeführten Signale 0, 1, 1, liefern einen Ausgang gleich 0 und wählen damit den Eingang A der Auswahleinheit 7·
In Anbetracht der an der Adresse 001000 (gehe nach 001010, wenn grosser als 1) gespeicherte Instruktion sein angenommen, dass das Programm kopiert wird. Beim
t *m ο·
PHN 10.344 V5^ ήΰ< 21-4-1983
• ·
Heranziehen dieser Instruktion wird die Zusatzinformation 001 im Register des Kornparators 3 gespeichert. Beim Heranziehen der an der nächsten Adresse (OOIOOI) gespeicherte Instruktion hat der Vergleich ein positives Ergebnis (OOI Zusatzinformation = 001 bedeutsamste Adressbits), auch dann, wenn das Programm kopiert wird. Dies ist deshalb notwendig, weil sonst der normale Betrieb des Programms vom Datenprozessor gestört werden würde, wenn die "gehe nach"-Bedingung nicht erfüllt wird.
In Anbetracht der an der Adresse 001001 (gehe nach OOOOII) gespeicherten Instruktion sei wieder angenommen, dass das Programm kopiert wird. Durch das Lesen der an der Adresse 001010 gespeicherten Instruktion ist das Vergleichsergebnis negativ (0(invertiert) = 1), weil 001 ungleich 000 ist. Am Ausgang des ODER-Gatters h gelangt ein Signal mit dem Wert 0 (Zusatzinformation ist OOO). Also sind die dem Eingang des UND-Gatters 5 zugeführte Signale 1,0, 1, wobei ein Ausgangssignal mit dem Wert 0 abgegeben wird und also gute Daten an den Ausgang der Auswahleinheit 7 gelangen. Dieses Problem wird durch die Anordnung nach Fig. 2 gelöst, in der ein Vergleich besser an der ganzen Adresse als an den bedeutsamsten Bits erfolgen kann. Wenn die Sprunginstruktionen an Adressen gespeichert werden, deren bedeutsamste Bits sich von 000 unterscheiden, wird die Kopierungsoperation auf wirksame Weise von einer Anordnung nach Fig. 1a gestört. Dies ist für die Instruktionen an den Adressen 001111 und 010000 veranschaulicht.
In Fig. 2 ist eine andere Ausführungsform einer erfxndungsgemassen Anordnung dargestellt. Die entsprechenden Elemente in Fig. 1a führen die gleichen Bezugsziffern. Da diese Ausführungsform der Ausführungsform nach Fig. 1a stark ähnelt, werden nur die Differenzpunkte erläutert. In der Quittungseinheit 21 ist der erste Eingang mit einem Eingang eines ersten Registers 16 verbunden. Ein Ausgang dieses ersten Registers 16 ist mit einem Eingang einer Speichertabelle 17 verbunden, deren einer Ausgang mit einem ersten Ein^-an;? des Kompnrntors '3' verbunden ist. Da diese
PHN 10-344 /^ 20' 21-4-1983
Ausführungsform ein erstes Register und eine Speichertabeile enthält, enthält der Komparator 3' kein Eigenregister, wie in der Ausführungsf orrn nach Fig. 1a beschrieben wurde. Dem zweiten Eingang des !Comparators 31 werden alle Adressbits des Adressignals zugeführt, das dem Adresseingang des Speichers 1 zugeführt wird.
Beim Heranziehen einer ersten Instruktion aus dem Speicher 1 von der Prozessoreinheit 15 wird die dieser ersten Inst^ktion zugeordnete Zusatzinformation auf das erste Register 16 übertragen und dort gespeichert (Vorderflanke CS -Signal). Diese Zusatzinformation enthält in dieser Ausführungsform eine Adresse einer Speicherstelle in der Speichertabelle 17. Beim Heranziehen einer zweiten Instruktion aus dem Speicher 1 wird unter der Steuerung der Rückflanke des CS-Signals auf der Leitung 11 mit der der ersten Instruktion zugeordneten und im ersten Register 16 gespeicherten Zusatzinformation die Speichertabelle adressiert. An der adressierten Speicherstelle in der Speichertabelle 17 ist die Adresse der folgenden Instruktion gespeichert, die in der Reihenfolge, wie sie von der Datenprozessorexnhext bei der Behandlung ihres Programms herangezogen wird, der ersten Instruktion folgt. Die an der adressierten Speicherstelle in der Speichertabelle 17 gespeicherte Adresse wird dabei dem Komparator 3' zugeführt und dort mit der Adresse der zweiten Instruktion verglichen. Die Wirkung der Speicheranordnung nach Fig. 2 verläuft weiter völlig analog der Beschreibung nach Fig. 1a.
Der Vorteil der Verwendung eines ersten Registers und einer Speichertabelle befindet sich darin, dass jetzt die Vergleichsoperation an der vollständigen Adresse statt an einem Teil dieser Adresse durchführbar ist, ohne dass viel Raum des Speichers 1 zum Speichern der Zusatzinformation erforderlich ist. Denn wenn je Instruktionswort beispielsweise 4 Bits zum Speichern von Zusatzinformation im Speicher 1 belegt wird, ist es möglich, eine wirksame Vergleichsoperation (d.h. eine Vergleichsoperation, bei der die Zusatzinformation nicht für jedes Bit dieser Zusatzinformation den Wert Null besitzt) an 15 vollständi-
«Ο 1 θ · · ί
PHN 10. 3^^ XT 21' 21-4-1983
gen Adressen (2 -1=16-1=15, 0000 nicht mitgerechnet) durchzuführen. Beim Einschreiben der vollständigen Adresse als Zusatzinformation in den Speicher wurden zum Erhalten des gleichen Ergebnisses beispielsweise 11 Bits benötigt, während mit dieser Ausführungsform vier Bits ausreichen. Eine Vergleichsoperation an der ganzen Adresse ist ausserdem zuverlässiger als eine Vergleichsoperation an nur einem Teil der Adresse, da dabei alle Bits geprüft werden.
^ In Fig. 3 ist eine Ausführungsform einer erfin-
dungsgemässen Anordnung dargestellt, bei der die Quittungsoperation am Instruktionswort durchgeführt wird. Erneut führen entsprechende Elemente in Fig. 1a die gleichen Bezugsziffern und es werden nur die Unterschiedspunkte
1^ näher erläutert.
Der erste Datenausgang des Speichers 1 ist über den ersten Datenbus 9 einerseits mit dem ersten (a) Eingang der Auswahleinheit 7 und zum anderen mit dem zweiten Eingang der Quittungseinheit 21 verbunden.
2" In dieser Ausführungsform enthält die Zusatzinformation jetzt einige Bits, beispielsweise die bedeutsamsten eines nächsten von der Prozessoreinheit heranziehenden Instruktionsworts. Bei einer Vergleichsoperation wird nunmehr im Komparator- 3 diese Zusatzinformation mit
" einem zweiten herangezogenen Instruktionswort verglichen. Erneut lassen sich dabei drei Fälle für das Ergebnis der Vergleichsoperation gemäss der Beschreibung an Hand der Fig. 1a unterscheiden.
Es ist klar, dass auch eine Ausführungsform gemäss der Beschreibung an Hand der Fig. 2, bei der die Quittungseinheit noch ein erstes Register und eine Speichertabelle enthält, für eine Speicheranordnung nach der Erfindung verwendbar ist, wobei die Quittungsoperation am Instruktionswort durchgeführt wird.
Teile des Speichers, die wahlfrei zugreifbar sein müssen, wie beispielsweise Indextabellen oder bestimmte Datenwörter, sind zu schützen, indem beispielsweise folgendes Gültigkeitskriterium geltend gemacht wird:
PHN 10-3^4 ^ 22- 21-4-1983
Anfangsadresse Indextabelle iy nächste Adresse ^. letzte Adresse der Indextabelle. Jedoch kann der Schutz dieser Teile möglicherweise unterbleiben. Denn ein unbefugter Leser weiss nicht, welcher Teil des Speichers geschützt ist, auch weil der Unterschied zwischen Korrekturinformation und Information der Datenquelle 8 nicht unterscheidbar ist.
Die vollständige Speicheranordnung 20 ist integrierbar. Eine integrierte Ausführung ist vorteilhafter als eine Ausführung mit diskreten Kompoiaenten, denn in der letztgenannten Ausführung besteht die Möglichkeit, dass ein kluger unbefugter Leser die Auswahleinheit J in einem Stand F = A.1 sperren kann.
Eine Anordnung zum Schützen vor unbefugtem Lesen in einem Speicher zu schreibender Programmwörter gemäss der Beschreibung wird insbesondere bei Datenverarbeitungssystemen angewandt, die in verhältnismässig grossem Umfang verkauft werden. Gedacht wird dabei z.B. an Videospiele.

Claims (1)

  1. • n »β » Ο«
    O · β » « β a α ·
    PHN 10.3^4 >9 21-4-1983
    PATENTANSPRÜCHE:
    Anordnung zum Schützen vor unbefugtem Lesen in einem Speicher, insbesondere in einem Programmspeicher, geschriebener Programinwörter, welcher Speicher ein Teil einer Speichereinheit ist, welche Anordnung weiter eine Datenprozessoreinheit enthält, deren einer Adressausgang mit einem Adresseingang des Speichers zum Adressieren der Programmwörter in einer von der Datenprozessoreinheit bestimmten Reihenfolge bei einer Verarbeitungsoperation verbunden ist, dadurch gekennzeichnet, dass die Speichereinheit eine Auswahleinheit, eine Quittungseinheit und eine Datenquelle ausserhalb des Speichers zum Erzeugen zumindest eines Störworts enthält, das eine störende Wirkung beim Einfügen von Programmwörtern hat, welche Auswahleinheit mit einem ersten Eingang an einen ersten Ausgang des Speichers und mit einem zweiten Eingang an den Ausgang der Datenquelle angeschlossen ist, wobei jedem im Speicher geschriebenen Programmwort eine Zusatzinformation zugefügt ist, wobei ein zweiter Ausgang des Speichers mit einem ersten Eingang der Quittungseinheit zum Erzeugen der Zusatzinformation verbunden ist, wobei ein zweiter Eingang der Quittungseinheit mit einem Anschluss des Speichers zum Zuführen von Programminformation verbunden ist, welche Quittungseinheit mit ersten Mitteln versehen ist, die bei einer Leseoperation für ein erstes Programmwort aus dem Speicher die Zusatzinformation speichert, die ein von der Reihenfolge bestimmtes Folgeprogrammwort zum ersten Programmwort anzeigt, welche Quittungseinheit mit zweiten Mitteln versehen ist, die bei einer Leseoperation für ein zweites Programmwort aus dem Speicher und unter der Steuerung der gespeicherten Zusatzinformation feststellt, ob die Programminformation des zu lesenden zweiten Programmworts mit der Progranuninformation des von der Zusatzinformation angezeigten Folgeprogrammworts übereinstimmt
    PHN 10.344 ?6 £' 21-4-1983
    »4
    und bei Übereinstimmung der Feststellung ein erstes Signal und bei Nichtübereinstimmung der Feststellung ein zweites Signal erzeugt, wobei die Auswahleinheit mit einem Steuereingang zum Empfangen des ersten und des zweiten Signals versehen ist, der unter der Steuerung des ersten Signals ein Programmwort aus dem Speicher einem Ausgang zuführt und unter der Steuerung des zweiten Signals die Ausgabe zumindest eines Programmworts aus dem Speicher blockiert und durch ein aus der Datenquelle herrührendes Störwort am Ausgang ersetzt.
    2. Anordnung nach Anspruch 1, dadurch gekennzeichnet, dass der Anschluss des Speichers einen Adresseingang des Speichers und die Programminformation zumindest einen Teil der Adresse des Programmworts enthält.
    3· Anordnung nach Anspruch 2, dadurch gekennzeichnet,, dass die ersten Mittel der Quittungseinheit ein Eigenregister und eine Speichertabelle enthalten, welches Eigenregister mit einem ersten Eingang an den ersten Eingang der Quittungseinheit und ein Ausgang der Datenprozessoreinheit an einen zweiten Eingang des Eigenregisters zum Empfangen eines Steuersignals für eine Leseoperation angeschlossen ist, welches Eigenregister mit einem Ausgang an einen Adresseingang der Speichertabelle zum Speichern von Programmwortadressen angeschlossen ist, wobei die Zusatzinformation eine Adresse für eine Stelle in der Speichertabelle enthält.
    4. Anordnung nach Anspruch 1, dadurch gekennzeichnet, dass der Anschluss des Speichers einen Datenausgang des Speichers und die Programminformation zumindest einen Teil des Programmworts enthält.
    5. Anordnung nach Anspruch 4, dadurch gekennzeichnet, dass die ersten Mittel der Quittungseinheit ein Eigenregister und eine Speichertabelle enthalten, welches Eigenregister mit einem ersten Eingang an den ersten Eingang der Quittungseinheit und ein Ausgang der Datenprozessoreinheit an einen zweiten Eingang des Eigenregisters zum Empfangen eines Steuersignals für eine Leseoperation angeschlossen ist, welches Eigenregister mit einem Ausgang an einen
    9 · * 9 β · « 4 β 1
    PHN 10.32^ J^vJ 21-4-1983
    Adresseingang der Speichertabelle zum Speichern von Prograrrmwörtern angeschlossen ist, wobei die Zusatzinformation eine Adresse für eine Stelle in der Speichertabelle enthält.
    ο. Anordnung nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass die zweiten Mittel der Quittungseinheit einen Komparator enthalten.
    7· Anordnung nach Anspruch 6, dadurch gekennzeichnet, dass die zu schützenden Programmwörter in zwei verschiedene Gruppen eingeteilt sind, wobei bei einer ersten Gruppe jedem Programmwort eine exklusive Zusatzinformation und bei einer zweiten Gruppe jedem Programmwort eine nicht exklusive Zusatzinformation zugefügt ist, wobei die Quittungseinheit mit Erkennungsmitteln versehen ist, die Zusarzinformation der zweiten Gruppe erkennen und unter der Steuerung einer Zusatzinformation der zweiten Gruppe den Komparator entaktivieren und ein erstes Signal erzeugen. 8. Anordnung nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass die Datenquelle einen Zusatzgenerator enthält.
    9- Anordnung nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, dass die Datenquelle ein Register enthält.
    10. Speicherinheit zur Verwendung in einer Anordnung nach einem oder mehreren der vorangehenden Ansprüche, dadurch gekennzeichnet, dass die Speichereinheit einen Speicher, eine Auswahleinheit, eine Quittungseinheit und eine Datenquelle ausserhalb des Speichers enthält, wobei ein erster Ausgang bzw. ein zweiter Ausgang des Speichers mit einem ersten Eingang der Auswahleinheit bzw. einem ersten Eingang der Quittungseinheit verbunden ist, wobei ein Ausgang der Quittungseinheit mit einem Steuereingang der Auswahleinheit verbunden und ein zweiter Eingang der Ausxvahleinheit an einen Ausgang der Datenquelle angeschlossen ist.
    11. Speichereinheit nach Anspruch 10, dadurch gekennzeichnet, dass die Quittungseinheit mit einem Komparator ausgerüstet ist, der einen Eingang besitzt, der eine Ver-
    PHN 10.344 Jpg ty 21-3-1983
    bindung mit dem ersten Eingang der Quittungseinheit herstellt.
    12. Speichereinheit nach Anspruch 10 oder 11, dadurch gekennzeichnet, dass der Speicher ein Pestwertspeicher ist.
    13. Speichereinheit nach Anspruch 10, 11 oder 12, dadurch gekennzeichnet, dass die Speichereinheit gemäss der Technik der integrierten Schaltungen hergestellt ist. 14. Videospiel mit einer Speichereinheit nach einem oder mehreren der Ansprüche 10, 11, 12 oder 13·
    15. Speicher zum Einschreiben von Programmwörtern zur Verwendung in einer Speichereinheit nach einem der Ansprüche 10, 11, 12 oder
    16. Datenverarbeitungssystem mit einer Speichereinheit nach einem der Ansprüche 10, 11, 12 oder 13·
DE19833315992 1982-05-06 1983-05-03 Anordnung zum schuetzen vor unbefugtem lesen in einem speicher zu schreibender programmwoerter Ceased DE3315992A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
NL8201847A NL8201847A (nl) 1982-05-06 1982-05-06 Inrichting voor het beschermen tegen onbevoegd uitlezen van in een geheugen te memoriseren programmawoorden.

Publications (1)

Publication Number Publication Date
DE3315992A1 true DE3315992A1 (de) 1983-11-10

Family

ID=19839688

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19833315992 Ceased DE3315992A1 (de) 1982-05-06 1983-05-03 Anordnung zum schuetzen vor unbefugtem lesen in einem speicher zu schreibender programmwoerter

Country Status (10)

Country Link
US (1) US4584665A (de)
JP (1) JPS58208849A (de)
AT (1) AT389772B (de)
CA (1) CA1201813A (de)
DE (1) DE3315992A1 (de)
FR (1) FR2526560B1 (de)
GB (1) GB2119978B (de)
IT (1) IT1170134B (de)
NL (1) NL8201847A (de)
SE (1) SE461689B (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3526130A1 (de) * 1985-07-22 1987-01-29 Lang Klaus Dipl Ing Digitaler programmschutzbaustein
DE4103173A1 (de) * 1991-02-02 1992-08-13 Wulf Harder Vorrichtung zum schutz gegen unautorisierte benutzung von software

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3415209A1 (de) * 1983-04-29 1984-10-31 N.V. Philips' Gloeilampenfabrieken, Eindhoven Speichereinheit mit einem speicher und einer schutzeinheit
JPS6068441A (ja) * 1983-09-22 1985-04-19 Fujitsu Ltd ワンチツプ・マイクロ・コンピユ−タ
US4646234A (en) * 1984-02-29 1987-02-24 Brigham Young University Anti-piracy system using separate storage and alternate execution of selected proprietary and public portions of computer programs
EP0175487A3 (de) * 1984-08-23 1989-03-08 Btg International Limited Softwaresicherungsvorrichtung
FR2599525B1 (fr) * 1986-06-02 1988-07-29 Dassault Electronique Unite a clavier de securite, en particulier pour la composition d'un code confidentiel
JPH01129328A (ja) * 1987-11-13 1989-05-22 Toshiba Corp コピー防止装置
US4975878A (en) * 1988-01-28 1990-12-04 National Semiconductor Programmable memory data protection scheme
JPH01116847U (de) * 1988-01-30 1989-08-07
US5014191A (en) * 1988-05-02 1991-05-07 Padgaonkar Ajay J Security for digital signal processor program memory
JPH01296361A (ja) * 1988-05-25 1989-11-29 Mitsubishi Electric Corp メモリカード
JP2820938B2 (ja) * 1988-07-21 1998-11-05 任天堂株式会社 外部メモリとそれを用いる情報処理装置
JPH02202642A (ja) * 1989-02-01 1990-08-10 Toshiba Corp プログラム動作監視装置
US5099516A (en) * 1989-06-12 1992-03-24 Dell Corporate Services Corporation Digital computer code word identification system
GB8919301D0 (en) * 1989-08-24 1989-10-11 Jonas Wayne A "electronic memory"
US5263158A (en) * 1990-02-15 1993-11-16 International Business Machines Corporation Method and system for variable authority level user access control in a distributed data processing system having multiple resource manager
JPH03276337A (ja) * 1990-03-27 1991-12-06 Toshiba Corp マイクロコントローラ
DE4115152C2 (de) * 1991-05-08 2003-04-24 Gao Ges Automation Org Kartenförmiger Datenträger mit einer datenschützenden Mikroprozessorschaltung
US5860099A (en) * 1993-05-12 1999-01-12 Usar Systems, Inc. Stored program system with protected memory and secure signature extraction
US5463748A (en) 1993-06-30 1995-10-31 Intel Corporation Instruction buffer for aligning instruction sets using boundary detection
IL110181A (en) * 1994-06-30 1998-02-08 Softchip Israel Ltd Install microprocessor and peripherals
US5682474A (en) * 1996-04-09 1997-10-28 United Microelectronics Corp. Method of dynamic protection and its apparatus
DE69738450T2 (de) * 1996-11-15 2009-01-08 Nxp B.V. Verfahren und Vorrichtung zur zeitlichen Nachführung eines Signals
EP1118924B1 (de) * 2000-01-19 2016-07-20 Infineon Technologies AG Verfahren zum betrieb einer mikroprozessoranordnung und mikroprozessoranordnung
FR2815738B1 (fr) * 2000-10-25 2003-03-21 Dolphin Integration Sa Controle d'acces a une memoire integree avec un microprocesseur
JP3977592B2 (ja) * 2000-12-28 2007-09-19 株式会社東芝 データ処理装置
WO2005125072A2 (en) * 2004-06-22 2005-12-29 Nds Limited Digital rights management system
US8181255B2 (en) 2004-06-22 2012-05-15 Nds Limited Digital rights management system
US8151082B2 (en) * 2007-12-06 2012-04-03 Fusion-Io, Inc. Apparatus, system, and method for converting a storage request into an append data storage command
US8161353B2 (en) * 2007-12-06 2012-04-17 Fusion-Io, Inc. Apparatus, system, and method for validating that a correct data segment is read from a data storage device
US8495292B2 (en) 2006-12-06 2013-07-23 Fusion-Io, Inc. Apparatus, system, and method for an in-server storage area network

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1414126A (en) * 1971-11-22 1975-11-19 Key Tronic Ltd Secutity for computer systems
US3996449A (en) * 1975-08-25 1976-12-07 International Business Machines Corporation Operating system authenticator
GB1561482A (en) * 1976-11-18 1980-02-20 Ibm Protection of data processing system against unauthorised programmes
FR2392447A1 (fr) * 1977-05-26 1978-12-22 Cii Honeywell Bull Systeme de traitement d'informations protegeant le secret d'informations confidentielles
FR2471004B1 (fr) * 1979-11-30 1985-09-13 Dassault Electronique Installation et dispositif de controle de l'acces a une memoire electronique
US4446519A (en) * 1981-05-26 1984-05-01 Corban International, Ltd. Method and apparatus for providing security for computer software

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
v. Puttkamer E., Ein Vergleich verschiedener Möglichkeiten zum Schutz eines Programmes gegen direktes Kopieren, in: Angewandte Informatik 4/82, S. 225-229 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3526130A1 (de) * 1985-07-22 1987-01-29 Lang Klaus Dipl Ing Digitaler programmschutzbaustein
DE4103173A1 (de) * 1991-02-02 1992-08-13 Wulf Harder Vorrichtung zum schutz gegen unautorisierte benutzung von software
DE4103173C4 (de) * 1991-02-02 2017-03-16 SIA Soft Activation Vorrichtung zum Schutz gegen unautorisierte Benutzung von Software
DE4103173C5 (de) * 1991-02-02 2017-07-20 SIA Soft Activation Vorrichtung zum Schutz gegen unautorisierte Benutzung von Software

Also Published As

Publication number Publication date
SE8302511D0 (sv) 1983-05-03
US4584665A (en) 1986-04-22
IT1170134B (it) 1987-06-03
NL8201847A (nl) 1983-12-01
FR2526560A1 (fr) 1983-11-10
SE461689B (sv) 1990-03-12
JPH0317133B2 (de) 1991-03-07
CA1201813A (en) 1986-03-11
GB2119978A (en) 1983-11-23
GB8311764D0 (en) 1983-06-02
JPS58208849A (ja) 1983-12-05
ATA165583A (de) 1989-06-15
GB2119978B (en) 1986-01-22
FR2526560B1 (fr) 1987-07-31
SE8302511L (sv) 1983-11-07
IT8320918A0 (it) 1983-05-03
AT389772B (de) 1990-01-25

Similar Documents

Publication Publication Date Title
DE3315992A1 (de) Anordnung zum schuetzen vor unbefugtem lesen in einem speicher zu schreibender programmwoerter
DE3131341A1 (de) &#34;pufferspeicherorganisation&#34;
DE2523414C3 (de) Hierarchische Speicheranordnung mit mehr als zwei Speicherstufen
DE3128740C2 (de)
DE2414311C2 (de) Speicherschutzeinrichtung
DE2755897A1 (de) Ein/ausgabe-system
DE2750721A1 (de) Ein/ausgabe-system
DE2806045A1 (de) Dv-system mit pufferspeicher
DE2806024A1 (de) Speichersystem mit fehlerfeststell- und korrekturmoeglichkeit
DE2400161A1 (de) Datenverarbeitungssystem und in diesem enthaltenes speichersystem
CH627580A5 (de) Austauschanordnung zur bereitstellung von austauschadressen fuer den betrieb eines pufferspeichers in einer speicherhierarchie.
DE2506117A1 (de) Vorrichtung zur bildung einer absoluten adresse fuer den zugriff zu einem speicher eines elektronischen rechners
DE4324521C2 (de) Vorrichtung zum Bestimmen einer Speicherkonfiguration von einem oder mehreren Paaren von Speichermodulen
EP0010186B1 (de) Vorrichtung zum Bearbeiten bezeichneter Hinweise
EP1183690B1 (de) Speicheranordnung mit adressverwürfelung
DE3128729A1 (de) Halbleiter-speichersystem
DE2547488A1 (de) Mikroprogrammierte datenverarbeitungsanlage
DE3911721C2 (de)
DE2912073A1 (de) Stapelspeicheranordnung zur kurzzeitigen speicherung von informationen bei nichtabsetzbarkeit dieser informationen in einem datenverarbeitungssystem
DE3116385C2 (de) Mikroprogramm-Steuerung
DE2324063B2 (de) Pufferspeichereinrichtung
DE3333894A1 (de) Speichermanagementeinheit
DE3149926A1 (de) Programmierbare vergleichsschaltung
DE2947115A1 (de) Loeschanordnung fuer einen cache- speicher eines prozessors in einem multiprozessorsystem
DE2853165A1 (de) Anordnung zur auswahl einer speicherelementgruppe aus einer vielzahl von speicherelementgruppen in einer cachespeichereinheit

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8125 Change of the main classification

Ipc: G06F 12/14

8131 Rejection