AT389772B - Datenverarbeitungsanordnung mit einem programmspeicher und einer schutzeinheit - Google Patents

Datenverarbeitungsanordnung mit einem programmspeicher und einer schutzeinheit Download PDF

Info

Publication number
AT389772B
AT389772B AT0165583A AT165583A AT389772B AT 389772 B AT389772 B AT 389772B AT 0165583 A AT0165583 A AT 0165583A AT 165583 A AT165583 A AT 165583A AT 389772 B AT389772 B AT 389772B
Authority
AT
Austria
Prior art keywords
program
memory
input
unit
word
Prior art date
Application number
AT0165583A
Other languages
English (en)
Other versions
ATA165583A (de
Original Assignee
Philips 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 Nv filed Critical Philips Nv
Publication of ATA165583A publication Critical patent/ATA165583A/de
Application granted granted Critical
Publication of AT389772B publication Critical patent/AT389772B/de

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 or 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Storage Device Security (AREA)

Description

Nr. 389772
Die Erfindung betrifft eine Datenverarbeitungsanordnung mit einem Programmspeicher, der ein Programmwortfeld aufweist, in dem Programmwörter gespeichert sind, und der über einen Adreßeingang mit einem Adreßausgang einer Datentprozessoreinheit zum Adressieren der Programmwörter in einer von dieser Datenprozessoreinheit bestimmten Reihenfolge bei einer Verarbeitungsoperation verbunden ist, und mit einer mit einem Ausgang des Programmspeichers verbundenen Schutzeinheit zum Schützen der Programmwörter vor unbefugtem Lesen.
Zur Steuerung einer Datenprozessoreinheit enthalten Datenverarbeitungsanordnungen einen Speicher, beispielsweise einen ROM oder einen PROM, in dem in Form von Programmwörtem Computerprogramme und sonstige Informationen, kurz Software, zum Durchführen von Datenprozessorvorgänge n gespeichert sind. Das Erstellen dieser Software ist eine vorwiegend Zeit und Geld kostende Aufgabe. Es ist daher von Bedeutung, daß diese Software nicht ohne weiteres unbefugt kopiert werden kann.
Es sind bereits einige Techniken bekannt, um den Inhalt des Speichers oder der Software vor unbefugtem Lesen zu schützen. So ist die Verwendung von Codewörtem oder von "Zugangsschlüsseln" sowie die Verwendung sog. Schutzinstruktionen bekannt, wodurch der Zugriff zu den im Speicher geschriebenen Programmwörtem verhindert wird. Eine derartige Technik ist zum Beispiel in der Veröffentlichung "Computer program protection" von E. J. Lengyel und D. H. Olson, IBM TDB Vol. 14, No. 11, April 1972, S. 3531, beschrieben.
Ein Nachteil der bekannten Techniken besteht darin, daß der Mißerfolg eines Versuchs zum Kopieren der Software aus dem Speicher ziemlich rasch bemerkbar ist. Ein kluger unbefugter Leser findet dabei meist eine Methode zum Außeikraftsetzen des Schutzes, wodurch er dann unbefugt lesen und kopieren kann.
Der Erfindung liegt die Aufgabe zugrunde, eine Datenverarbeitungsanordnung der eingangs angegebenen Art vorzusehen, bei der ein unbefugtes Lesen des Speicherinhalts zum Abgeben völlig unbrauchbarer Information an den unbefugten Leser führt, ohne daß dieser während des Kopierversuchs etwas davon bemerkt.
Die erfindungsgemäße Datenverarbeitungsanordnung der eingangs erwähnten Art ist dadurch gekennzeichnet, daß der Programmspeicher ein Zusatzfeld aufweist, in dem für jedes Programmwort ein zugehöriges Zusatzinformationssegment gespeichert ist, das simultan mit dem zugehörigen Programmwort adressierbar ist und zumindest ein durch die Reihenfolge bestimmtes nächstes Programmwort zum zugehörigen Programmwort anzeigt, und daß die Schutzeinheit eine Störwortdatenquelle, die ausgangsseitig mit einem Eingang einer steuerbaren SchaReinheit verbunden ist, die einen weiteren, mit einem Programmwörterausgang des Programmspeichers verbundenen Eingang sowie einen Steuereingang aufweist, sowie eine Vergleichs- und Quittungseinheit enthält, von der ein Signalausgang mit dem Steuereingang der Schalteinheit und ein Eingang mit einem Datenausgang des Zusatzfeldes sowie ein anderer Eingang mit dem Adreßausgang bzw. mit dem Datenausgang des Programmspeichers verbunden ist, wobei die Schutzeinheit einen mit dem einen Eingang der Vergleichs- und Quittungseinheit verbundenen Hilfsspeicher zum Speichern des zugehörigen Zusatzinformationssegmentes beim Auslesen eines Programmwortes aus dem Programmspeicher und einen mit diesem Hilfsspeicher und dem anderen Eingang der Vergleichs- und Quittungseinheit verbundenen Komparator zum Vergleichen der diesem anderen Eingang zugeführten Adresse bzw. zumindest eines Teiles eines nächsten auszulesenden Programmwortes mit einer aufgrund des im Hilfsspeicher gespeicherten Zusatzinformationssegmentes erzeugten Adresse bzw. einem derartigen Programmwortteil, wobei ein das Vergleichsergebnis anzeigendes Signal des Komparators an den Signalausgang der Vergleichs- und Quittungseinheit gelegt ist, wobei die Schalteinheit zumindest zwei durch dieses das Vergleichergebnis anzeigende Signal steuerbare Schaltstellungen aufweist, und in der einen Schaltstellung, bei Übereinstimmung der verglichenen Adressen bzw. Programmwortteile, das dem weiteren Eingang der Schalteinheit zugeführte Programmwort und in der anderen Schaltstellung das dem einen Eingang der Schalteinheit zugeführte Störwort durchschaltbar ist. Mit einer derartigen Ausbildung wird der vorstehenden Zielsetzung in vorteilhafter Weise entsprochen, wozu noch folgendes ergänzt werden kann:
Die Programmwörter sind in einer bestimmten Reihenfolge im Programmspeicher geordnet. Die Reihenfolge, in der die Programmwörter von der Datenprozessoreinheit bei der Verarbeitung des Programms herangezogen werden, ist jedoch anders als diese vorbestimmte Reihenfolge, in der die Programmwörter in den Speicher geschrieben wurden. So ist es normal, daß unter der Steuerung der Datenprozessoreinheit beispielsweise auf ein Unterprogramm gesprungen wird. Nur der Verfasser des Programms und die Datenprozessoreinheit kennt die Reihenfolge, mit der die Programmwörter eingelesen werden, um das Programm durchzuführen. Ein unbefugter Leser kennt jedoch diese Reihenfolge nicht und zieht die Programmwörter aus dem Programmspeicher heran, indem er beispielsweise diese Programmwörter eins nach dem anderen in der Reihenfolge der Speicherung ausliest. Wenn nun die vorbestimmte Reihenfolge vom Datenprozessor nicht eingehalten wird, wird zumindest für eines der aus dem Programmspeicher auszugebenden Programmwörter der Programmwörterausgang blockiert und das auszugebende Programmwort durch ein Störwort aus der Störwortdatenquelle ersetzt Dieses Störwort ist zum Verarbeiten des Programms völlig unbrauchbar. Der unbefugte Leser bemerkt jedoch davon beim Kopieren nichts, da am Ausgang der Anordnung wie normal Programmwörter ausgegeben werden. Wenn er dann das kopierte Programm verwendet, wird er aber feststellen, daß das kopierte Programm unbrauchbar ist.
Es ist vorteilhaft, wenn der Hilfsspeicher der Vergleichs- und Quittungseinheit ein eigenes Register und eine mit einem Adreßeingang an den Ausgang dieses Registers zum Speichern von Adressen bzw. Programmwörtem -2-
Nr. 389772 angeschlossene Speichertabelle enthält, wobei das Register mit einem Dateneingang an den einen Eingang der Vergleichs- und Quittungseinheit angeschlossen und über einen Befehlseingang mit einem Ausgang der Datenprozessoieinheit verbunden ist, wobei die Zusatzinformationssegmente je eine Adresse für die verschiedenen Speicherstellen in der Speichertabelle angeben. Durch die Verwendung einer derartigen Speichertabelle, in der Adressen von Programmwörtem oder Programmwörter selbst eingeschrieben sind, ist es möglich, den angegebenen Vergleichs- und Quittierungsvorgang durchzuführen, ohne daß dadurch viel Speicherplatz zum Schreiben der Zusatzinformationssegmente belegt wird.
Eine weitere bevorzugte Ausführungsform der erfindungsgemäßen Anordnung ist dadurch gekennzeichnet, daß die zu schützenden Programmwörter in zwei Gruppen eingeteilt sind, wobei in der einen Gruppe jedem Programmwort ein exklusives Zusatzinformationssegment und in der anderen Gruppe jedem Programmwort ein nicht-exklusives Zusatzinformationssegment zugeordnet ist, und daß die Vergleichs- und Quittungseinheit mit einem das nicht-exklusive Zusatzinformationssegment eines Programmwortes der anderen Gruppe erkennenden Decoder versehen ist und bei Decodierung eines solchen nicht-exklusiven Zusatzinformationssegmentes ein die Übereinstimmung beim Vergleich anzeigendes Signal an den Signalausgang der Vergleichs- und Quittungseinheit gelegt ist. Das Hinzufügen eines exklusiven Zusatzinformationssegments zu jedem Programmwort bedeutet die Belegung vieler Speicherplätze und erhöht den Wirkungsgrad der vorliegenden Datenverarbeitungsanordnung zum Schützen gegen unbefugtes Lesen nur in geringem Maße. Hierzu genügt es, nur eine erste Gruppe von Programmwörtem mit einem exklusiven Zusatzinformationssegment zu versehen und den Programmwörtem, die dieser Gruppe nicht zugeordnet sind, ein nicht-exklusives Zusatzinformationssegment hinzuzufügen; beispielsweise haben alle Programmwörter der zweiten Gruppe das gleiche Zusatzinformationssegment. Durch diese Einrichtung in eine erste und eine zweite Gruppe wird nur ein geringer Teil des verfügbaren Speicherplatzes durch die Zusatzinformationssegmente belegt
Es ist vorteilhaft, wenn die Störwortdatenquelle durch einen Zusatzgenerator gebildet ist. 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 Im Hinblick auf einen einfachen, preiswerten Aufbau ist es andererseits aber auch günstig, wenn die Störwortdatenquelle durch ein Register gebildet ist.
Von besonderem Vorteil ist es schließlich, wenn der Speicher und die Schutzeinheit gemeinsam in einem Chip integriert, sind. Diese gemeinsame Integration von Schutzeinheit und Speicher ist insofern von ganz wesentlicher Bedeutung, als damit sichergestellt wird, daß eine unbefugte Person nicht die Schutzeinheit abkoppeln kann, wie dies bei einer Ausbildung mit diskreten Schaltungskomponenten unter Umständen denkbar wäre, und es wir auf besonders einfache und wirkungsvolle Weise eine zusätzliche Sicherheit im Hinblick auf den gewünschten Schutz gegen unbefugtes Lesen erzielt.
Die Erfindung wird nachstehend anhand von in der Zeichnung dargestellten Ausführungsbeispielen noch weiter erläutert; Es zeigen: Fig. la eine einfache Ausführungsform einer erfindungsgemäßen Datenverarbeitungsanordnung, Fig. lb einige Signalmusterdiagramme zum Erläutern der Wirkungsweise einer solchen Datenverarbeitungsanordnung, und die Fig. 2 und 3 zwei weitere Ausführungsformen der erfindungsgemäßen Datenverafbeitungsanordnung.
In einem Datenverarbeitungssystem wird eine Datenprozessoreinheit zum programmmäßigen Verarbeiten von Daten benutzt. Dieses Programm ist in der Form von Programmwörtem, wie z. B. Instruktionen, Daten usw., in einem Speicher, dem Programmspeicher, geschrieben. Dieser Programmspeicher 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 diesem Programmspeicher eingeschrieben. Bei der Durchführung des Programms liest die Datenprozessoreinheit die Programmwörter in einer Reihenfolge ein, die vom Inhalt und von der Art des Programms sowie den zu verarbeitenden Daten bestimmt wird. Diese Reihenfolge weicht von der Reihenfolge ab, in der die Programmwörter in den Programmspeicher eingeschrieben sind. Das bedeutet, daß unter der Steuerung der Datenprozessoreinheit im Programm, wie in den Programmspeicher eingeschrieben, gesprungen wird. Ein unbefugter Leser kennt nicht die Reihenfolge, in der die Programmwörter bei der Durchführung des Programms von der Datenprozessoreinheit aus dem Programmspeicher ausgelesen werden. Wenn ein unbefugter Leser das Programm aus dem Programmspeicher lesen möchte, wird er dies durch Heranziehen der Programm Wörter in einer Reihenfolge machen, die von der Reihenfolge der Datenprozessoreinheit abweicht.
Die Erfindung nutzt jetzt die Tatsache aus, daß der unbefugte Leser die vom Datenprozessor angegebene Reihenfolge nicht einhält, um die unbefugte Handlung zu stören.
Nachstehend wird die Erfindung anhand einiger Ausführungsformen beschrieben, wobei jeweils eine Instruktion (Wort) als Programmwort gewählt ist. Selbstverständlich ist die Erfindung auf analoge Weise für Datenwörter oder für jede ander Art von Programmwörtem wirksam.
In Fig. la ist eine einfache Ausführungsform einer Datenverarbeitungsanordnung (20) mit einer Schutzeinheit zum Schützen vor unbefugtem Lesen dargestellt. Die Datenverarbeitungsanordnung (20) enthält einen als Programmspeicher dienenden Speicher (1), beispielsweise einen ROM, von den ein Adreßeingang mit einer Breite von beispielsweise 11 Bits mit einem System-Adreßbus (2) verbunden ist. Ein Programmwörterausgang dieses Speichers (1) ist über einen Datenbus (9) von beispielsweise 8 Bits mit einem -3-
Nr. 389772 ersten Eingang (A) einer steuerbaren Schalteinheit (7) verbunden. Ein weiterer Datenausgang des Speichers (1) ist über einen weiteren Datenbus (13) mit einem ersten Eingang einer Vergleichs- und Quittungseinheit (21) verbunden. Ein zweiter Eingang dieser Vergleichs- und Quittungseinheit (21) ist an eine Anzahl von Leitungen, beispielsweise vier Leitungen, des Adreßbusses (2) angeschlossen.
Ein zweiter Eingang (B) der Schalteinheit (7) ist mit einem Ausgang einer Störwortdatenquelle (8) verbunden. Die Schalteinheit hat weiters einen Steuereingang (5), der an einen Ausgang der Vergleichs- und Quittungseinheit (21) angeschlossen ist. Eine Leitung (11) führt das sog. CS-Signal (chip select), das einem Cis-Eingang des Speichers (1) und einem dritten Eingang der Vergleichs- und Quittungseinheit (21) zugeführt wird. Diese Vergleichs- und Quittungseinheit (21) enthält einen Komparator (3), dessen Eingänge mit den erwähnten drei Eingängen der Vergleichs- und Quittungseinheit (21) verbunden sind. Der an den Datenbus (13) angeschlossene Eingang der Vergleichs- und Quittungseinheit (21) ist dabei noch an einen Eingang einer logischen ODER-Anordnung (4) gelegt Die Vergleichs- und Quittungseinheit (21) enthält weiters ein logisches UND-Gatter (5), dessen Ausgang mit dem Takteingang eines Flipflops (6) verbunden ist. Das CS-Signal am dritten Eingang der Vergleichs- und Quittungseinheit (21) wird weiters in einer Umkehrstufe (10) invertiert und dann einem ersten Eingang des logischen UND-Gatters (5) zugeführt. Ein zweiter Eingang des logischen UND-Gatters (5) ist über eine Leitung (12) an einen Ausgang des Komparators (3) angeschlossen, und ein dritter Eingang des logischen UND-Gatters (5) ist mit einem Ausgang der logischen ODER-Anordnung (4) verbunden. Ein Ausgang des Flipflops (6) ist an den Ausgang der Vergleichs- und Quittungseinheit (21) gelegt.
Im Speicher (1) ist ein Zusatzfeld (14) belegt; beispielsweise sind Zusatzinformationssegmente von vier Bits neben jeder Instruktion (programmiert) gespeichert, und diese Zusatzinformationssegmente beziehen sich jeweils auf eine folgende Instruktion, die eine angeschlossene Datenprozessoreinheit (15) bei der Durchführung des Programms abgreift.
In der gewählten Ausführungsform sind in diesem Zusatzfeld (14) bei einer Instruktionsfolge jeweils die bedeutsamsten Bits der Adresse einer nächsten, von der Datenprozessoreinheit (15) heranzuziehenden Instruktion als Zusatzinformationssegment eingeschrieben. Es ist weiters möglich, bei jeder einzelnen Instruktion jeweils die bedeutsamsten Adreßbits einer nächsten, von der Datenprozessoreinheit (15) heranzuziehenden Instruktion als Zusatzinformationssegemente zu verwenden, aber dies bedeutet die Belegung von verhältnismäßig viel Speicherplatz und verbessert den Wirkungsgrad beim Schützen gegen unbefugtes Lesen nur in geringem Maße, wie weiter unten noch 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 Zusatzinformationssegment gewählt werden. Bei den übrigen, nicht zur genannten Folge gehörenden Instruktionen enthalten die Zusatzinformationssegmente einen festen Wert; beispielsweise haben alle Bits für das Zusatzinformationssegment den Wert Null, und jede Instruktion wirkt dabei als "Folgeinstruktion". Es werden also gleichsam die Programmwörter in zwei Gruppen eingeteilt, d. h. eine erste Gruppe, bei der jedes Programmwort ein exklusives Zusatzinformationssegment besitzt, und eine zweite Gruppe, bei der dies nicht der Fall ist Es ist nicht unbedingt notwendig, daß sich das Zusatzinformationssegment auf die nächste Instruktion bezieht. Das Zusatzinformationssegment darf sich auch auf eine weitere, von der Datenprozessoreinheit heranzuziehende Instruktion beziehen, aber dann sind weitere Bauelemente erforderlich, wie beispiesweise Zähler, wodurch die Anordnung teurer und komplizierter wird.
Wenn nunmehr eine erste Instruktion (also ein erstes Programmwort) von der Datenprozessoreinheit (15) im Speicher (1) adressiert wird, wird das zu dieser Instruktion gehörende Zusatzinformationssegment mitadressiert. Beim Adressieren des Speichers (1) ist das CS-Signal auf einem niedrigen Pegel, wie in Fig. lb dargestellt ist. Zufolge der Adressierung des Speichers (1) durch die Datenprozessoreinheit (15) werden die haangezogene erste Instruktion und das zugeordnete Zusatzinformationssegment dem ersten (Bus (9)) bzw. dem zweiten Datenausgang (Bus (13)) des Speichers (1) zugeführt (Datensignal (DAT) hoch, Fig. lb).
Das zu dieser ersten Instruktion gehörende Zusatzinformationssegment gelangt über den weiteren Datenbus (13) zum Komparator (3) und wird dort beispielsweise in einem Hilfspeicher in Form eines Eigenregisters des Komparators (3) gespeichert. Da das Eigenregister auf die Vorderflanke des CS-Signals anspricht, erfolgt diese Speicherung beim Übergang vom niedrigen auf den hohen Pegel des CS-Signals. Wenn jetzt die Datenprozessoreinheit (15) eine zweite Instruktion aus 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 Adreßbits der Adresse der zweiten Instruktion, wie sie dem zweiten Eingang des Komparators (3) (über den Adreßbus (2)) zugeführt werden, mit dem Zusatzinformationssegement im Eigenregister des Komparators (3) verglichen.
Das Ergebnis der Vergleichsoperation ist positiv, wenn der Speicher (1) in der richtigen Reihenfolge, wie vom Programm der Datenprozessoreinheit (15) angegeben, adressiert wird, also warn die Adresse der zweiten Instruktion hinsichtlich da bedeutsamsten Bits gleich den noch im Eigenregister vorhandenen bedeutsamsten Bits da Adresse da nächsten Instruktion ist
Das Ergebnis der Vergleichsoperation ist negativ, wenn der Speicher (1) in einer anderen Reihenfolge adressiert wird, beispielsweise wenn der Inhalt des Speichas kopiert wird und Instruktionen nicht in der vom Programm der Datenprozessoreinheit (15) bestimmten Reihenfolge herangezogen werden. In diesem Fall unterscheidet sich nämlich die Adresse der zweiten Instruktion von der Adresse da nächsten Instruktion. -4-
Nr. 389772
Das Ergebnis der Vergleichsoperation liegt in invertierter Form an einem Ausgang (EQ) des Komparators (3) an und gelangt über die Leitung (12) zum zweiten Eingang des logischen ÜND-Gatters (5). Dem ersten Eingang des logischen UND-Gatters (5) wird das CS-Signal zur Synchronisation mit dem Auslesen von Instruktionen aus dem Speicher (1) zugeführt.
Die logische ODER-Anordnung (4) hat eine besondere Funktion, die nachstehend näher erläutert wird. Wie bereits erwähnt wurde, sind nicht alle Instruktionen mit einem exklusiven Zusatzinformationssegment versehen, sondern es gibt Instruktionen im Speicher (1), bei denen alle Bits für das Zusatzinformationssegment den Wert Null besitzen (zweite Gruppe). Wenn nun das Zusatzinformationssegment bei einer Instruktion ausschließlich aus Nullen besteht, läuft die Vergleichs- und Quittungsoperation etwas anders ab. Diese Nullen gelangen stets zum Komparator (3), wenn eine Instruktion mit Nullen als Zusatzinformationssegment von der Datenprozessoreinheit (15) herangezogen wird. Das Ergebnis der Vergleichsoperation kann dann negativ sein, wenn Nullen zugeführt werden. Zum Unterdrücken dieses negativen Ergebnisses dient jetzt die logische ODER-Anordnung (4). Diese logische ODER-Anordnung (4) führt eine logische ODER-Operation an den Bits des Zusatzinformationssegments aus. Das bedeutet, daß das Ergebnis an einem Ausgang der logischen ODER-Anordnung (4) den Wert einer logischen "1" annimmt, wenn zumindest eines der Bits des Zusatzinformationssegments sich von Null unterscheidet, und daß der Wert logisch "0" am Ausgang der logischen ODER-Anordnung (4) erscheint, wenn alle Bits des Zusatzinformationssegments 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)), muß es erst beim Heranziehen der nächsten Instruktion abgegeben werden. Das Ergebnis der logischen ODER-Operation wird dazu in der logischen ODER-Anordnung (4) gespeichert, 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 das Zusatzinformationssegment enthielt nicht ausschließlich Nullen; 3. Das Ergebnis der Vergleichsoperation ist nicht zutreffend, da das Zusatzinformationssegment ausschließlich Nullen enthält;
Diese drei Fälle werden nunmehr einzeln beschrieben. 1. Fall: Das Ergebnis der Vergleichsoperation ist positiv. In diesem Fall liegt auf der Leitung (12) am zweiten Eingang des logischen UND-Gatters (5) der Wert EQ = "0" an und an den Ausgang der logischen ODER-Anordnung (4) gelangt der Wert OR = "1", der dem dritten Eingang des logischen UND-Gatters (5) zugeführt wird. Dem ersten Eingang des logischen UND-Gatters (5) wird beim Auslesen einer Instruktion aus dem Speicher (1) der Wert CS = "1” zugeführt. Da Εξ? = "0", OR = "Γ und (ST = T ist, tritt am Ausgang des logischen UND-Gatters (5) der Wert logisch "0" auf, der dem Takteingang des Flipflops (6) zugeführt wird. Diese logische "0" sorgt dafür, daß das Flipflop (6), beispielsweise vom Typ (D), nicht umschaltet (das Flipflop (6) ist derart eingestellt, das es nach dem Anschalten der Speisespannung zurückgestellt ist, d. h. Q = 0), wodurch am Ausgang (Q) des Flipflops (6) auch ein logischer "0"-Wert liegt, der dem Steuereingang (S) der Schalteinheit (7) zugeführt wird. Diese Schalteinheit (7) liefert an ihrem Ausgang (F) ein Signal mit dem Wert F = A.S + B.S. Dies bedeutet, daß, wenn dem Steuereingang (S) der Wat logisch "0" (S = "0") zugeführt wird (also S = "1"), die Schalteinheit die aus dem Speicher (1) ausgelesene, dem Eingang (A) zugeführte Instruktion abgibt (F=A.1). Infolgedessen wird also bei positivem Ergebnis der Vergleichsoperation die richtige Instruktion dem Dateneingang der Datenprozessoreinheit (15) oder einem anderen Benutzer zugeführt. 2. Fall: Das Ergebnis der Vergleichsoperation ist negativ und das Zusatzinformationssegment enthielt nicht ausschließlich Nullen. Das bedeutet, daß die Signale EQ = "Γ, OR = T und CS = ”1" den Eingängen des logischen UND-Gatters (5) zugeführt werden. Dadurch tritt am Ausgang dieses logischen UND-Gatters (5) eine logische T auf. Dieser logische Τ'-Wert schaltet jetzt das Flipflop (6) um, wodurch der Wert Q = "1" am Ausgang (Q) des Flipflops (6) dem Steuereingang (S) der Schalteinheit (7) zugeführt wird. Die Schalteinheit erzeugt daher am Ausgang (F) das Signal F = B.l. Das bedeutet, daß Information, d. h. ein Störwort aus der Störwortdatenquelle (8) statt der verlangten Instruktion (dem verlangten Programmwort) aus dem Speicher (1) abgegeben wird. Auf diese Weise bekommt der unbefugte Leser unbrauchbare Information aus der Störwortdatenquelle (8). 3. Fall: Das Ergebnis der Vergleichsoperation ist nicht zutreffend, da das Zusatzinformationssegment ausschließlich Nullen enthielt.
Das bedeutet, daß die Signale E<3= "Γ, OR = "0" und CS = Ύ den Eingängen des logischen UND-Gatters (5) zugeführt werden. Dadurch tritt am Ausgang dieses logischen UND-Gatters (5) der Wert logisch n0n auf, mit dem wieder die gleiche Situation, wie beim ersten Fall erhalten wird. Hierdurch wird erreicht, daß es nicht notwendig ist, bei jeder Instruktion ein exklusives Zusatzinformationssegment einzufügen, wodurch der von den Zusatzinformationssegmenten eingenommene Speicherplatz beschränkt bleiben kann. Für die Störwortdatenquelle (8) sind mehrere Ausführungen möglich, beispielsweise mit einem Register, einem Zufallsgenerator, einem vom Speicher (1) verschiedenen Speicher, oder einfach einer Verbindung mit Erde. Diese Störwortdatenquelle (8) erzeugt am zweiten Eingang (B) der Schalteinheit (7) Störwortdaten, die zum Durchführen des Programms ungeeignet sind. Der Ersatz der Instruktionen (Programmwörter) aus dem -5-
Nr. 389772
Speicher (1) durch Störwortdaten aus der Störwortdatenquelle (8) sorgt dafür, daß das kopierte Programm unbrauchbar wird. Vorzugsweise erzeugt die Störwortdatenquelle (8) nicht ein und dasselbe feste Störwort am Eingang (B) der Schalteinheit, da dies schnell erkennbar wäre. Indem im gegebenen Fall stets andere Störwörter dem Ausgang (F) der Schalteinheit (7) zugeführt werden, wenn der Eingang (B) durchgeschaltet wird, läßt sich schwer feststellen, ob die erzeugte Information aus dem Speicher (1) oder aus der Störwortdatenquelle (8) herrührt.
Die Wirkungsweise der Anordnung nach Fig. la wird nachstehend mit einem Beispiel gemäß der nachstehenden Tabelle I erläutert, in welcher ein Teil des Inhalts des Speichers (1) angegeben ist.
Tabelle I
Zusatzinformationssegment
Adresse (Zusatzfeld 14) Instruktion/Datenwort 000000 000 Setze a, b, c, d, e, = 0 000001 000 a = a+l 000010 001 gehe nach 001000 000011 000 liesp 000100 000 zeige pan 000101 000 gehe in b ein, speichere b 000110 000 gehe nach 000001 000111 000 c = c+l 001000 001 gehe nach 001010, wenn größer als 1 001010 000 zeige b an 001011 000 b = b-l 001111 010 gehe nach 010001, wenn b keiner als 5 010000 001 gehe nach 001010 010001 000 d=a+b 010101 000 e=a+c
Angenommen sei, daß 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 000010) adressiert wird, wird das von den bedeutsamsten Adreßbits gebildete Zusatzinformationssegment 001 (im Zusatzfeld (14) des Speichers (1) gespeichert) herangezogen und im Register des Komparators (3) gespeichert. Da das Zusatzinformationsegment ein Bit mit dem Wert 1 enthält, wird der Wert 1 am Ausgang des ODER-Gatters (4) gespeichert.
Beim Heranziehen der vierten Instruktion (Adresse 000011) vergleicht der Komparator (3) die bedeutsamsten Bits der Speicheradresse, d. h. 000, mit dem Zusatzinforamtionssegment, d. h. 001, seinem Register. Das Ergebnis dieses Vergleichs ist negativ (0). Dieses Vergleichsergebnis wird am Ausgang des Komparators (3) invertiert (0 (invertiert) = 1). Am Eingang des UND-Gatters (5) liegen nun die Werte 1,1,1 (Komparator (3), ODER-Gatter (4), (CS(zweimal invertiert)) an. Der Ausgang des UND-Gatters (5) hat jetzt einen Wert 1, der das Flipflop (6) umschaltet, wodurch dieses wiederum die Schalteinheit (7) so ansteuert, daß der Eingang (B) ausgewählt und durchgeschaltet wird, d. h. Information aus der Störwortdatenquelle (8) und nicht die Information "Lies p" aus dem Speicher (1) gelangt zum Ausgang (F). Der unbefugte Kopierer wird das nicht feststellen, weil Information ausgegeben wird. Beim Auslesen der fünften Instruktion (Adresse 000100) hat der Vergleich zwischen dem Zusatzinformationssegment (000), das der vierten Instruktion zugeführt wurde, und den bedeutsamsten Bits der zugeführten Adresse (000) ein positives Ergebnis, d. h. invertierter Ausgang des Komparators = 0, Ausgang des ODER-Gatters (4) = 0 (oder Operation auf 000) und CS (zweimal invertiert) = 1. Der Ausgang des UND-Gatters (5) hat den Wert 0, wodurch das Hipflop (6) zurückgestellt wird, so daß das Signal am Eingang (A) von der Schalteinheit (7) durchgeschaltet wird. Eine falsche Instruktion ist also zwischen zwei richtigen Programminstruktionen eingeführt
Wenn das Auslesen der Programmwörter durch den Datenprozessor bei einer normalen Durchführung des Programms erfolgt, hätte die dritte Instruktion (gehe nach 001000) ausgeführt werden müssen. In diesem Fall wäre die von der nächsten Instruktion nach diese "gehe nach"- Instruktion dem Adreßeingang des Speichers zugeführte Adresse 001000 gewesen, d. h. mit den bedeutsamsten Bits 001, die in diesem Fall gleich dem Zusatzinformationssegment (001) sind, das der dritten Instruktion zugeführt wurde, und es wäre also ein positives Ergebnis des Komparators (3) erhalten worden (Ausgang 0).
Der Ausgang des ODER-Gatters (4) für ein Zusatzinformationssegment 001 wäre dann gleich 1, und die dem Eingang des UND-Gatters (5) zugeführten Signale 0,1,1, würden zu einem Ausgang gleich 0 führen, wodurch der Eingang (A) der Schalteinheit (7) durchgeschaltet werden würde.
Bezüglich der bei der Adresse 001000 (gehe nach 001010, wenn größer als 1) gespeicherten Instruktion sei angenommen, daß das Programm kopiert wird. Beim Heranziehen dieser Instruktion wird das -6-
Nr. 389772
Zusatzinfoimationssegment 001 im Register des Komparators (3) gespeichert. Beim Heranziehen der an der nächsten Adresse (001001) gespeicherten Instruktion hat der Vergleich ein positives Ergebnis (001-Zusatzinformationssegment = 001 bedeutsamste Adreßbits), 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 "gebe nach"-Bedingung nicht erfüllt wird.
Hinsichtlich der bei der Adresse 001001 (gehe nach 000011) gespeicherten Instruktion sei wieder angenommen, daß 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 (4) ergibt sich ein Signal mit dem Wert 0 (das Zusatzinformationssegment ist 000). Also sind die am Eingang des UND-Gatters (5) zugeführten Signale 1, 0, 1, wobei ein Ausgangssignal mit dem Wert 0 erhalten wird, weshalb Piogrammwörter (vom Eingang (A)) an den Ausgang (F) der Schalteinheit (7) gelangen. Um dies zu vermeiden, kann die Anordnung nach Fig. 2 eingesetzt werden, in der ein Vergleich auf Basis der ganzen Adresse anstatt der bedeutsamsten Bits erfolgt. Wenn die Sprunginstruktionen jedoch bei Adressen gespeichert werden, deren bedeutsamste Bits sich von 000 unterscheiden, wird der Kopiervorgang auf wirksame Weise von einer Anordnung nach Fig. la gestört Dies ist für die Instruktionen bei den Adressen 001111 und 010000 veranschaulicht
In Fig. 2 ist eine gegenüber Fig. 1 etwas modifizierte Ausführungsform der Anordnung dargestellt, die nachfolgend der Einfachheit halber nur hinsichtlich ihrer Unterschiede zu Fig. 1 näher erläutert werden soll. In der Vergleichs- und Quittungseinheit (21) ist der erste Eingang mit einem Eingang eines Registers (16) verbunden. Ein Ausgang dieses Registers (16) ist mit einen Eingang einer Speichertabelle (17) verbunden, deren Ausgar mit dem einen Eingang des Komparators (3') verbunden ist Da diese Ausführungsform ein Register und eine Speichertabelle aufweist, enthält der Komparator (3‘) selbst kein Eigenregister, wie in der Ausführungsform nach Fig. la beschrieben wurde. Dem anderen Eingang des Komparators (3') werden alle Adreßbits des Adreßignals zugeführt, das dem Adreßeingang des Speichers (1) - über den Bus (2) - zugeführt wird.
Beim Auslesen einer ersten Instruktion (d. h. eines ersten Programmwortes) aus dem Speicher (1) durch die Datenprozessoreinheit (15) wird das dieser ersten Instruktion zugeordnete Zusatzinformationssegment in das Register (16) übertragen und dort gespeichert (Vorderflanke des CS-Signals). Dieses Zusatzinformationssegment enthält in dieser Ausführungsform eine Adresse einer Speicherstelle in der Speichertabelle (17). Beim Auslesen einer zweiten Instruktion aus dem Speicher (1) wird unter der Steuerung der Rückflanke des CS-Signals auf der Leitung (11) mit dem der ersten Instruktion zugeordneten und im Register (16) gespeicherten Zusatzinformationssegment die Speichertabelle (17) adressiert. An der adressierten Speicherstelle in der Speichertabelle (17) ist die Adresse der folgenden Instruktion gespeichert, die in der Reihenfolge, wie sie von der Datenprozessoreinheit (15) beim Abarbeiten 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 da zweiten Instruktion verglichen. Die Wirkungsweise der Anordnung nach Fig. 2 ist im weiteren dann völlig analog jener, wie anhand der Fig. la beschrieben wurde.
Der Vorteil der Verwendung des Registers (16) und der Speichertabelle (17) liegt darin, daß jetzt die Vergleichsoperation an der vollständigen Adresse statt an einem Tefl dieser Adresse durchführbar ist, ohne daß viel Platz des Speichers (1) zum Speichern der Zusatzinformationssegmente erforderlich ist Denn wenn für jedes Programmwort beispielsweise ein Platz von 4 Bits zum Speichern eines Zusatzinformationssegments im Speicher (1) belegt wird, ist es möglich, eine wirksame Vagleichsoperation (d. h. eine Vergleichsoperation, bei der das Zusatzinformationssegment nicht für jedes Bit den Wert Null besitzt) an 15 vollständigen Adressen (24 -1 = 16 -1 = 15,0000 nicht mitgerechnet) durchzuführen. Beim Einschreiben der vollständigen Adresse als Zusatzinformationssegment in den Speicher (1) würden 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 außerdem zuverlässiga als eine Vergleichsoperation an nur einem Teil der Adresse, da dabei alle Bits geprüft waden.
In Fig. 3 ist schließlich eine Ausführungsform dargestellt, bei der die Vergleichs- und Quittungsoperation am Programmwort durchgeführt wird. Auch hier haben der Fig. la entsprechende Elemente die gleichen Bezugsziffem, und es waden nur die Unterschiede zur Ausführungsform nach Fig. la näher erläutert
Der erste Datenausgang des Speichers (1) ist gemäß Fig. 3 über den ersten Datenbus (9) einerseits mit den ersten Eingang (A) der Schalteinheit (7) und andererseits mit dem zweiten Eingang der Vergleichs- und Quittungseinheit (21) vabunden.
In dieser Ausführungsform enthält das jeweilige Zusatzinfoimationssegment jetzt einige Bits, beispielsweise die bedeutsamsten Bits, eines nächsten von der Datenprozessoreinheit (15) haanziehenden Programmworts. Bei einer Vergleichsoperation wird nunmehr im Komparator (3) dieses Zusatzinfoimationssegment mit einem zweiten herangezogenen Programmwort verglichen. Erneut lassen sich dabei drei Fälle für das Ergebnis der Vergleichsoperation gemäß der Beschreibung anhand da Fig. la unterscheiden.
Selbstverständlich wäre auch die Ausführungsform gemäß Fig. 2, bei der die Vergleichs- und Quittungseinheit (21) das Regista (16) und die Speichertabelle (17) enhält, so verwendbar, daß die Vergleichsund Quittungsoperation am Programmwort durchgeführt wird.
Teile des Speichers, die wahlfrei zugreifbar sein müssen, wie beispeisweise Indextabellen oder bestimmte -7-

Claims (6)

  1. Nr. 389772 Datenwörter, sind zu schützen, indem beispielsweise folgendes Gültigkeitskriterium aufgestellt gemacht wird: Anfangsadresse Indextabelle < nächste Adresse < letzte Adresse der Indextabelle. Jedoch kann der Schutz dieser Teile möglicherweise unterbleiben, denn ein unbefugter Leser weiß nicht, welcher Teil des Speichers geschützt ist, auch weil der Unterschied zwischen Korrekturinformation und Marmation aus der Störwortdatenquelle nicht erkennbar ist. Die vollständige Anordnung (20) ist integrierbar. Eine integrierte Ausführung ist vorteilhafter als eine Ausführung mit diskreten Komponenten, denn in der letztgenannten Ausführung besteht die Möglichkeit, daß ein kluger unbefugter Leser die Schalteinheit (7) im Zustand F = A.1 sparen kann. Die vorliegende Anordnung mit der Schutzeinheit für in einem Speicher zu schreibende Programmwörter wird insbesondere bei Datenverarbeitungssystemen angewandt, die in verhältnismäßig großem Umfang verkauft werden, wie z. B. Videospiele. PATENTANSPRÜCHE 1. Datenverarbeitungsanordnung mit einem Programmspeicher, der ein Programmwortfeld aufweist, in dem Programmwörter gespeichert sind, und der über einen Adreßeingang mit einem Adreßausgang einer Datenprozessoreinheit zum Adressieren der Programmwörter in einer von dieser Datenprozessoreinheit bestimmten Reihenfolge bei einer Verarbeitungsoperation verbunden ist, und mit einer mit einem Ausgang des Programmspeichers verbundenen Schutzeinheit zum Schützen der Programmwörter vor unbefugtem Lesen, dadurch gekennzeichnet, daß der Programmspeicher ein Zusatzfeld (14) aufweist, in dem für jedes Programmwort ein zugehöriges Zusatzinformationssegment gespeichert ist, das simultan mit dem zugehörigen Programmwort adressierbar ist und zumindest ein durch die Reihenfolge bestimmtes nächstes Programmwat zum zugehörigen Programmwort anzeigt, und daß die Schutzeinheit eine Störwortdatenquelle (8), die ausgangsseitig mit einem Eingang (B) einer steuerbaren Schalteinheit (7) verbunden ist, die einen weiteren, mit einem Programmwörterausgang des Programmspeichers verbundenen Eingang (A) sowie einen Steuereingang (S) aufweist, sowie eine Vergleichs- und Quittungseinheit (21) enthält, von der ein Signalausgang mit dem Steuereingang (S) der Schalteinheit (7) und ein Eingang mit einem Datenausgang des Zusatzfeldes (14) sowie ein anderer Eingang mit dem Adreßausgang bzw. mit dem Datenausgang des Programmspeichers verbunden ist, wobei die Schutzeinheit einen mit dem einen Eingang der Vergleichs- und Quittungseinheit (21) verbundenen Hilfsspeicher (3; 16,17) zum Speichern des zugehörigen Zusatzinformationssegmentes beim Auslesen eines Programmwortes aus dem Programmspeicher (1) und einen mit diesem Hilfsspeicher (3; 16,17) und dem anderen Eingang der Vergleichs- und Quittungseinheit (21) verbundenen Komparator (3,3’) zum Vergleichen der diesem anderen Eingang zugeführten Adresse bzw. zumindest eines Teiles eines nächsten auszulesenden Programmwortes mit einer aufgrund des im Hilfsspeicher gespeicherten Zusatzinformationssegmentes erzeugten Adresse bzw. einem derartigen Programmwortteil, wobei ein das Vergleichsergebnis anzeigendes Signal des Komparators an den Signalausgang der Vergleichs- und Quittungseinheit (21) gelegt ist, wobei die Schalteinheil (7) zumindest zwei durch dieses das Vergleichergebnis anzeigende Signal steuerbare Schaltstellungen aufweist, und in der einen Schaltstellung, bei Übereinstimmung der verglichenen Adressen bzw. Programmwortteile, das dem weiteren Eingang (A) der Schalteinheit (7) zugeführte Programmwort und in der anderen Schaltstellung das dem einen Eingang (B) der Schalteinheit (7) zugeführte Störwort durchschaltbar ist.
  2. 2. Datenverarbeitungsanordnung nach Anspruch 1, dadurch gekennzeichnet, daß der Hilfsspeicher der Vergleichs- und Quittungseinheit (21) ein eigenes Register (16) und eine mit einem Adreßeingang an den Ausgang dieses Registers zum Speichern von Adressen bzw. Programmwörtem angeschlossene Speichertabcllc (17) enthält, wobei das Register (16) mit einem Dateneingang an den einen Eingang der Vergleichs- und Quittungseinheit (21) angeschlossen und über einen Befehlseingang mit einem Ausgang der Datenprozessoreinheit (15) verbunden ist, wobei die Zusatzinformationssegmente je eine Adresse für die verschiedenen Speicherstellen in der Speichertabelle (17) angeben.
  3. 3. Datenverarbeitungsanordnung nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß die zu schützenden Programmwörter in zwei Gruppen eingeteilt sind, wobei in der einen Gruppe jedem Programmwort ein exklusives Zusatzinformationssegment und in der anderen Gruppe jedem Programmwort ein nicht-exklusives Zusatzinformationssegment zugeordnet ist, und daß die Vergleichs- und Quittungseinheit (21) mit einem das nicht-exklusive Zusatzinformationssegment eines Programmwortes der anderen Gruppe erkennenden Decoder (4) versehen ist und bei Decodierung eines solchen nicht-exklusiven Zusatzinformationssegmentes ein die Übereinstimmung beim Vergleich anzeigendes Signal an den Signalausgang der Vergleichs- und Quittungseinheit (21) gelegt ist. -8- Nr. 389772
  4. 4. Datenverarbeitungsanordnung nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß die Störwortdatenquelle (8) durch einen Zusatzgenerator gebildet ist.
  5. 5. Datenverarbeitungsanordnung nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß die 5 Störwortdatenquelle (8) durch ein Register gebildet ist.
  6. 6. Datenverarbeitungsanordnung nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, daß der Speicher und die Schutzeinheit gemeinsam in einem Chip integriert sind. 10 Hiezu 3 Blatt Zeichnungen 15 -9-
AT0165583A 1982-05-06 1983-05-05 Datenverarbeitungsanordnung mit einem programmspeicher und einer schutzeinheit AT389772B (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 (2)

Publication Number Publication Date
ATA165583A ATA165583A (de) 1989-06-15
AT389772B true AT389772B (de) 1990-01-25

Family

ID=19839688

Family Applications (1)

Application Number Title Priority Date Filing Date
AT0165583A AT389772B (de) 1982-05-06 1983-05-05 Datenverarbeitungsanordnung mit einem programmspeicher und einer schutzeinheit

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)

Families Citing this family (32)

* 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
DE3526130A1 (de) * 1985-07-22 1987-01-29 Lang Klaus Dipl Ing Digitaler programmschutzbaustein
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 マイクロコントローラ
DE4103173C5 (de) * 1991-02-02 2017-07-20 SIA Soft Activation Vorrichtung zum Schutz gegen unautorisierte Benutzung von Software
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
EP0898747B1 (de) * 1996-11-15 2008-01-09 Nxp B.V. Schutzverfahren gegen ein eeprom-gerichtetes-eindringen in ein mobiles kommunikationsgerät mit einem prozessor und ein gerät mit einem solchen schutzmechanismus
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 株式会社東芝 データ処理装置
US8181255B2 (en) 2004-06-22 2012-05-15 Nds Limited Digital rights management system
WO2005125072A2 (en) * 2004-06-22 2005-12-29 Nds Limited Digital rights management system
CN101681282A (zh) 2006-12-06 2010-03-24 弗森多系统公司(dba弗森-艾奥) 用于共享的、前端、分布式raid的装置、系统和方法
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
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

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

Also Published As

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

Similar Documents

Publication Publication Date Title
AT389772B (de) Datenverarbeitungsanordnung mit einem programmspeicher und einer schutzeinheit
DE2755897C2 (de)
DE2458065C2 (de) Datenverarbeitungsanlage
DE2515696C2 (de) Datenverarbeitungssystem
DE3128740C2 (de)
DE2416609C2 (de) Datenverarbeitungsanlage mit einer zentralen Verarbeitungseinheit und Multiprogrammierung mit mehreren Programmunterbrechungs-Prioritätsstufen
DE3131341A1 (de) "pufferspeicherorganisation"
DE2714805A1 (de) Datenverarbeitungssystem
DE2646162B2 (de) Schaltungsanordnung zum Ersetzen fehlerhafter Informationen in Speicherplätzen eines nicht veränderbaren Speichers
DE2750721A1 (de) Ein/ausgabe-system
DE2659662C3 (de) Prioritätsstufengesteuerte Unterbrechungseinrichtung
DE2806024A1 (de) Speichersystem mit fehlerfeststell- und korrekturmoeglichkeit
DE2928488A1 (de) Speicher-subsystem
DE2612139A1 (de) Ein/ausgang-steuerungssystem
DE2523414A1 (de) Hierarchische speicheranordnung
DE1499200B2 (de) Datenverarbeitungsanlage mit vorranggesteuerter programm unterbrechung
DE3015992A1 (de) Programmierbare logische anordnung
DE2657848A1 (de) Steuereinheit fuer ein datenverarbeitungssystem
DE1549522B1 (de) Datenverarbeitungsanlage mit simultanverarbeitung mehrerer programme mittels mehrerer rechner
DE2612083A1 (de) Verfahren und vorrichtung zur ein/ausgang-datenverarbeitung
DE3128729A1 (de) Halbleiter-speichersystem
DE2421130C2 (de)
DE3121742C2 (de) Mikroprogramm-Steuereinrichtung
DE2856680A1 (de) Befehlspuffer fuer ein datenverarbeitungssystem
DE2801518A1 (de) Datenverarbeitungssystem mit speicher-schutzeinrichtung

Legal Events

Date Code Title Description
RER Ceased as to paragraph 5 lit. 3 law introducing patent treaties