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 programmwoerterInfo
- 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
Links
- PWPJGUXAGUPAHP-UHFFFAOYSA-N lufenuron Chemical compound C1=C(Cl)C(OC(F)(F)C(C(F)(F)F)F)=CC(Cl)=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F PWPJGUXAGUPAHP-UHFFFAOYSA-N 0.000 title 1
- 238000012545 processing Methods 0.000 claims description 12
- 230000000694 effects Effects 0.000 claims description 5
- 238000001514 detection method Methods 0.000 claims description 2
- 241000607479 Yersinia pestis Species 0.000 claims 1
- 238000000034 method Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 2
- 241000512613 Liasis Species 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3802—Instruction prefetching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/14—Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address 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
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)
- • n »β » Ο«O · β » « β a α ·PHN 10.3^4 >9 21-4-1983PATENTANSPRÜ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 übereinstimmtPHN 10.344 ?6 £' 21-4-1983»4und 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 einen9 · * 9 β · « 4 β 1PHN 10.32^ J^vJ 21-4-1983Adresseingang 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-1983bindung 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 oder16. Datenverarbeitungssystem mit einer Speichereinheit nach einem der Ansprüche 10, 11, 12 oder 13·
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)
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)
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)
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 |
-
1982
- 1982-05-06 NL NL8201847A patent/NL8201847A/nl not_active Application Discontinuation
-
1983
- 1983-04-29 GB GB08311764A patent/GB2119978B/en not_active Expired
- 1983-05-03 SE SE8302511A patent/SE461689B/sv not_active IP Right Cessation
- 1983-05-03 DE DE19833315992 patent/DE3315992A1/de not_active Ceased
- 1983-05-03 IT IT20918/83A patent/IT1170134B/it active
- 1983-05-04 US US06/491,512 patent/US4584665A/en not_active Expired - Fee Related
- 1983-05-04 FR FR8307446A patent/FR2526560B1/fr not_active Expired
- 1983-05-05 AT AT0165583A patent/AT389772B/de not_active IP Right Cessation
- 1983-05-05 CA CA000427536A patent/CA1201813A/en not_active Expired
- 1983-05-06 JP JP58079226A patent/JPS58208849A/ja active Granted
Non-Patent Citations (1)
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)
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) | "pufferspeicherorganisation" | |
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 |