DE2810168A1 - Verfahren zum sichern eines computerprogramms gegenueber entnahme bzw. wiedergabe durch einen benutzer sowie vorrichtung zur durchfuehrung des verfahrens - Google Patents
Verfahren zum sichern eines computerprogramms gegenueber entnahme bzw. wiedergabe durch einen benutzer sowie vorrichtung zur durchfuehrung des verfahrensInfo
- Publication number
- DE2810168A1 DE2810168A1 DE19782810168 DE2810168A DE2810168A1 DE 2810168 A1 DE2810168 A1 DE 2810168A1 DE 19782810168 DE19782810168 DE 19782810168 DE 2810168 A DE2810168 A DE 2810168A DE 2810168 A1 DE2810168 A1 DE 2810168A1
- Authority
- DE
- Germany
- Prior art keywords
- memory
- data
- signals
- instruction
- program
- 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.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 title claims description 11
- 238000004590 computer program Methods 0.000 title claims description 6
- 230000015654 memory Effects 0.000 claims description 67
- 239000004020 conductor Substances 0.000 claims description 19
- 239000004065 semiconductor Substances 0.000 claims description 13
- 238000013500 data storage Methods 0.000 claims description 8
- 230000006870 function Effects 0.000 description 6
- 239000000463 material Substances 0.000 description 5
- 238000005538 encapsulation Methods 0.000 description 4
- 238000012423 maintenance Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 239000008393 encapsulating agent Substances 0.000 description 1
- LUDNNDQHVOGYMB-UHFFFAOYSA-N hexadec-2-ynal Chemical compound CCCCCCCCCCCCCC#CC=O LUDNNDQHVOGYMB-UHFFFAOYSA-N 0.000 description 1
- 230000001343 mnemonic effect Effects 0.000 description 1
- 230000036651 mood Effects 0.000 description 1
- 210000000056 organ Anatomy 0.000 description 1
Classifications
-
- 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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1408—Protection against unauthorised use of memory or access to memory by using cryptography
-
- 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/121—Restricting unauthorised execution of programs
- G06F21/123—Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
-
- 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/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
Description
ΡΑΤΕΝΤΑΓ-ΥΠΤ:
DR. E. WIEGAND DIPL-ING. W. NIEMANN 2810 I O Ö
DR. M. KÖHLER DIPL-ING. C GERNHARDT MÖNCHEN DIPL.-IWC'. J, GLMZEES Hamburg
KONIGSTRASSE 28
2000 HAMBURG 50, 21 «März 1978
TELEFON: 381233 TELEGRAMME: KARPATENT TELEX: 212979 KARP D
W. 43093/78 20/ja.
Kearney & Trecker Corporation West Allis, Wisconsin (V. St.A.)
Verfahren zum Sichern eines Computerprogramms gegenüber Entnahme bzw. Wiedergabe durch einen
Benutzer sowie Vorrichtung zur Durchführung des Verfahrens.
Die Erfindung bezieht sich auf ein Verfahren und eine Vorrichtung zur Sicherung von Computer-Software, und ist insbesondere
darauf gerichtet, den Benutzer eines Computerprogramms daran zu hindern, das Programm zu reproduzieren,ohne dabei die normale
Benutzung des Programms im Computer für den vorgesehenen Zweck zu verhindern oder zu stören und ohne die normalen Wartungsarbeiten
für den Computer zu stören oder zu verhindern.
Für eine gegebene Computerfunktion besteht eine große Zahl spezieller Programme, welche eingeschrieben werden können, um
diese Punktion durchzuführen, und diese Programme, obgleich sie letztendlich die gleiche Funktion durchführen, können sich
im großen Maße in der Zahl der erforderlichen Stufen bzw. Schritte,
809838/0737
hinsichtlich der Speicherkapazität, die erforderlich ist, um
das Programm zu speichern, hinsichtlich der Zeit, die erforderlich ist, um das Programm zu durchlaufen, hinsichtlich der
Verträglichkeit des Programmes mit anderen auf dem gleichen Computer oder in dem gleichen Datenverarbeitungssystem verwendeten
Programmen, hinsichtlich der Anpassungsfähigkeit des Programms für andere Anwendungszwecke und der Zahl der erforderlichen
Arbeitszeit des Programmierers, die erforderlich ist, um das Programm zu schreiben, unterscheiden. Diese Unterschiede
sind beim Arbeiten mit Computern sehr bedeutsam und können einen wesentlichen Unterschied in den Kosten des Computerarbeit
svorganges verursachen, da die Computerzeit, die
Computerspexcherkapazität und die Kenntnis bzw. Arbeitszeit der Programmierer alle relativ teuer sind.
Die Kostenvorteile, die ein bestimmtes Programm dem Benutzer des Computers bietet, schlagen sich für gewöhnlich
im Preis nieder, den der Programmierer bzw. Entwickler für das Programm fordert, da jedoch dieser Preis für gewöhnlich auf der
Benutzung des Programms für den vorgesehenen Zweck bzw. die vorgesehene Computerfunktion basiert und nicht den Programmierer
bzw. dessen Tätigkeit kompensiert oder berücksichtigt, falls das Programm reproduziert wird und durch den Benutzer für andere
Computerfunktionen modifiziert wird. Falls der Preis des Programmes hoch genug angesetzt wird, um die Programmierertätigkeit
für alle möglichen Modifikationen des Programms zu berücksichtigen, wäre dies für diejenigen Benutzer unfair, welche das Programm lediglich
für den vorgesehenen Zweck benutzen, wodurch auch irgendwelche Kostenvorteile des Programms im Wettbewerb mit anderen Programmierern
verloren gehen können oder sogar das Programm aus dem Markt werfen könnte.
809838/0737
281ΰ
Obgleich ein Programmierer einen Copyright- bzw. Urheberschutz erhalten und einsetzen kann, um eine nichtautorisierte
Reproduktion seiner Programme zu verhindern oder um Entschädigungen oder Schadensersatz für nichtautorisierte Reproduktionen
zu fordern, ist für Computerprogramme von Hause aus durch die gegenwärtigen Gesetze kein Patentschutz gegeben, um den Benutzer
des Programms daran zu hindern, das gleiche Basisprogramm/mic11^611 an^
Modifikationen für andere Zwecke zu verwenden oder am Verkauf derartiger modifizierter Programme im Wettbewerb mit dem Programmierer
zu verkaufen. Dementsprechend besteht eine Notwendigkeit für ein Sicherheitssystem für Computer-Software, welches
einen Computerprogrammbenutzer daran hindert, das Programm zu
reproduzieren, ohne die normale Benutzung des Programms zu verhindern, nämlich um es für den vorgesehenen Zweck und die
vorgesehene Funktion einzusetzen, und ohne die normalen Betriebsvorgänge bzw. Wartungsarbeiten in dem das Programm benutzenden
Computer zu stören bzw. diese zu behindern.
Es sind verschiedene Verfahren und Vorrichtungen zur Chiffrierung und Dechiffrierung digitaler Daten zu Sicherheitszwecken
bekannt (US-PS 3 868 631, US-PS 3 958 081, US-PS 2 981 794, US-PS 3 950 6l6). Jedoch sind die in den vorgenannten
Patentschriften geschilderten kryptographischen Systeme vorgesehen, um digitale Daten bei der Übertragung von einem
Punkt zu einem anderen Punkt gegenüber dem Abhören durch einen Außenstehenden zu schützen, und diese Systeme schützen die
Daten nicht davor, daß sie durch den zugelassenen Benutzer der Vorrichtung am empfangsseitigen Ende der Datenübertragungsverbindung
reproduziert werden. Dementsprechend können die bekannten kryptographischen Systeme nicht das der Erfindung
zugrunde liegende Problem lösen.
909338/0731
Gemäß der Erfindung wird das oben angerissene Problem
dadurch gelöst, daß Datenadressenteile der Programminstruktionen gemäß einem vorgeschriebenen ZifTernschlüssel bzw.
Chiffrierschlüssel verschlüsselt werden, die Daten in einem
separaten Datenspeicher an Adressen gespeichert werden, die
in dem originalen, nicht verschlüsselten Programm spezifiziert worden sind, die Instruktionen mit den verschlüsselten Datenäüressen in einem Instruktionsspeicher an Adressen gespeichert werden, welche dem Originalprogrammablauf entsprechen, so daß die Programmstufen in ihrer ursprünglichen Folge ausgelesen werden können, ein Entschlüsselen dem Schlüssel bzw. dem Chiffrierschlüssel entsprechend in Serie mit den Adresseneingangsleitern des Datenspeichers arbeitet, und daß eine Einrichtung vorgesehen ist, um den Benutzer daran zu hindern, den verschlüsselten ,Teil des Entschlüsselers zu untersuchen oder den Entschlüsseier in solch einer Art und Weise elektrisch abzufragen, um auf diese Art und Weise den Chiffrierschlüssel zu bestimmen.
dadurch gelöst, daß Datenadressenteile der Programminstruktionen gemäß einem vorgeschriebenen ZifTernschlüssel bzw.
Chiffrierschlüssel verschlüsselt werden, die Daten in einem
separaten Datenspeicher an Adressen gespeichert werden, die
in dem originalen, nicht verschlüsselten Programm spezifiziert worden sind, die Instruktionen mit den verschlüsselten Datenäüressen in einem Instruktionsspeicher an Adressen gespeichert werden, welche dem Originalprogrammablauf entsprechen, so daß die Programmstufen in ihrer ursprünglichen Folge ausgelesen werden können, ein Entschlüsselen dem Schlüssel bzw. dem Chiffrierschlüssel entsprechend in Serie mit den Adresseneingangsleitern des Datenspeichers arbeitet, und daß eine Einrichtung vorgesehen ist, um den Benutzer daran zu hindern, den verschlüsselten ,Teil des Entschlüsselers zu untersuchen oder den Entschlüsseier in solch einer Art und Weise elektrisch abzufragen, um auf diese Art und Weise den Chiffrierschlüssel zu bestimmen.
Die Erfindung wird nachstehend anhand der Zeichnung beispielsweise
erläutert.
Fig. 1 zeigt ein Blockdiagramm einer bevorzugten Ausführungsform einer Vorrichtung gemäß der Erfindung.
Fig. 2 zeigt ein Flußdiagramm eines einfachen Verschlüsselungsprogramms,
welches im Zusammenhang mit der Vorrichtung der Fig. 1 verwendet werden kann.
Fig. 3 ist ein Blockdiagramm eines Teiles eines Halbleiterdatenspeichers
.
Fig. 4 ist eine Draufsicht eines Entschlüsselers für das
nach Fig. 2 verschlüsselte Programm.
809838/0737
28 1 ü
— 5f —
In Fig. 1 ist eine bevorzugte Ausführungsform der Vorrichtung
gemäß eier Erfindung gezeigt, welche separate Instruktionsspeicher
und Datenspeicher aufweist,um zu ermöglichen,
uaiä die Datenadressen verschlüsselt werden, ohne daß die Profjramafolge
verschlüsselt wird. In dem besonderen Beispiel ist sowohl ein Instruktionsspeicher lü als auch ein Datenspeicher
12 als Speicher mit wahlweisen Zugriff ausgebilet (RAK), obwohl in anderen Beispielen der Vorrichtung gemäß der Erfindung
entweder ein oder beide Speicher sog. ROM-Speicher oder programmierbare PROM-Speicher sei:: können (read-only bzw.
prgrammable read-only-memories).
Der Instruktionsspeicher 10 empfängt Adresseneingänge von einem Programmzähler 14, welcher durch Impulse von einer
konventionellen zentralen Datenverarbeitungseinheit 16 schrittweise weitergeschaltet wird und er legt seine Instruktionsausgangsworte
an die zentrale Datenverarbeitungseinheit 16 an. Von den normalen Programminstruktionen mit den nicht
verschlüsselten Datenadressen werden lediglich diejenigen Datenadressenteile in Übereinstimmung mit einem Chiffrierscnlüssel
durch einen Assembler 18 (Compiler) verschlüsselt, wobei der Verschlüssler nachfolgend beschrieben wird. Die
Programminstruktionen werden mit den verschlüsselten Datenadressenteilen in den Instruktionsspeicher 10 in der üblichen
Art und Weise an Adressenstellen eingeschrieben, welche der Programmfolge entsprechen, wobei die Daten in den Datenspeicher
12 an den ursprünglichen nicht verschlüsselten Adressen zu diesem Zweck eingeschrieben werden. Ein Beispiel für einen
typischen Abschnitt nichtverschlüsselter Programminstruktionen ist in der nachfolgenden Tabelle I unter Verwendung von Interaata-Modell
70-Instruktionen wiedergegeben.
809838/0737
Instruktionsspeicher-
Ü1Ü0 0102
0104 0100
GlOS GlCA GiOC
GlOE
01.10 GI12
0114
Jf- | 28 1 ü i-3 |
Mnemonic Kc^er.tar | |
TABELLE T | LH Rl., DAl1Al 1-iden d. Registers K'r.l mit den In halten d. Daten stelle DATAl |
Instruktion | AH ?■!, DATA2 Hinzufügen d. Inhalte der Daten stelle DATA2 zum Register Nr. 1 |
4blO 0100* |
-JLHI Rl, ic Vergleichen Re gister Nr. 1 bis 16 |
4A10 0200* |
Übereinstimmen Verzweigen zur Stelle Überein stimmung (MATCH) |
C510 0010 |
|
4230 1000 |
|
4010
0101*
0101*
4300
200
200
im Instruktionsspeicher, falls Gleichheit
. f 1 η 1 j ο.-. ν r.
ausgefünrt
Speichern ei. Registers r.'r. 1 in
den Datenspeicher an der Stelle SAVE
Verzweiger, zur
Stelle DGN1E im Instrukitonsspeicher
Diese Instruktionen bezeichnen Datenspeicheradressen.
809838/0737
28 T
In diesem speziellen Beispiel werden lie -ceiinersteilen
und die Speicherinstruktionen in cierr. Hexadezinalcode ausgedrückt,
obgleich auch andere O^des für dieser, ur.i andere
Anwendungszwecke verwendet werden kennen. Vier hexadezimale
Ziffern (16 binäre bits) werden verwendet, u~ jede oceieherotelle
oder jede Datenadresse zu spezifizieren und vier hexadezimale
Ziffern werden verwendet, u~. jeie Instruktion auszudrücken.
Die in der Tabelle I gezeigten Instruktionen dienen Zu:.·! Addieren zwei an spezifizierten Adressen Lt. speicher 12
angeordneten Zahlen, zum vergleichen des Resultats der Addition mit einer vorbestimmten Kenstante,welche im Instruktionsspeicher 10 gespeichert ist, u.~i zum Verzweigen, falls die
verglichenen Zahlen einander gleich sind bzw. zur; Speichern
des Resultates im Datenspeicher 12, falls diese ungleich sind.
Es sind zwei Stufen für jede Instruktion verge^eben, wobei
die erste Stufe (z.B. die Instruktionsspeicherstelle 0100) ausdrückt, was zu tun ist, und die zweite Stufe (z.B. die Instrukticnsspeicherstelle
0102) die Adresse der betreffenden Daten in der Instruktion ausdrückt oder die Daten selbst ausdrückt,
falls derartige Daten im Instruktionsspeicher 10 gespeichert sind. Die an der Instruktionsspeicherstelle 0100 gespeicherte
Instruktion 4819 bedeutet, das Laden in das Register 1 (zentrale
Datenverarbeitungseinheit 16 in Fig. 1) mit den Inhalten der Datenstellen, welche in der nächsten Instruktionsspeicherstelle
01J2 gespeichert sind. Auf diese Art und Weise stellt die in der' Instruktionsspeicherstelle 0102 gespeicherte -ahl eine
Datenadresse dar, was auch für die in den Instrukticnsspeicherstellen
0106 und 0112 gespeicherten Zahlen gilt. Dies sind die einzigen Teile des Programms, welche verschlüsselt werden.
809838/0737
ηη
Die nächste Instruktion?, welche durch die Zahlen ausgecrücKt
wird, welche in den Instruktsspeicherstellen 010^ und
'•JZ.'~L gespeichert sind, bedeutet, daß die Inhalte der Datenspeieherstelle
0200 zum Register Nr. 1 hinzuaddiert werden. Aazh dieser Instruktion folgt die durch die Zahlen in den
Jnctruktionsspeicherstellen 010c und 0.-0A gespeicherten Zahlen
.';U£{;earjciite Information, nämlich die Inhalte das Registers
Ar. 1 mit der Konstanten 0010 zu vergleichen. Kaη beachte,
zbi'j die Konstante 0010, welche an der Instruktion-sspeichercitile
ülCA gespeichert ist, keine Datenadresse ist, was auch für aie Zahlen gilt, welche in den Instruktionsspeicher-Ett-llen
0102, 0106 und 0112 gespeichert sind. Lediglich die L-htt-naaressen werden in dieser Ausführungsform gemäß der Erfiridung
verschlüsselt.
!sie Tabelle II zeigt die Programminstruktionen der Tabelle
I, wobei dei JJatenadressenteile von diesen Instruktionen gemäß aer Erfindung mit Hilfe eines relativ einfachen Chiffrierocrilüssels
verschlüsselt werden, wobei die 10 bits der Stellen geringster Bedeutung der Datenadressenzahl um ein bit im Uhrzeigersinn
rotiert bzw. verschoben werden, d.h. die bits Nr.2 Lis Xr. 10 werden jeweils um 1 bit nach rechts und das bit Nr.
wiru durch das bit Nr. 1 ersetzt.
BAD ORIGINAL
281Q168
Instruktionsspeicher | Instruktion | Mneraomic | Kommentar |
stelle | |||
0100 | 4810 | LH Rl, DATAl | Hier gelten die |
0102 | 0080 i | gleichen Kommen | |
0104 | 4A10 | AH Rl, DATA2 | tare wie in Ta |
0106 | 0100 + | belle I | |
0108 | C510 | CLHI Rl, 16 | |
01OA | 0010 | ||
01OC | 4230 | Übereinstimmen | |
01OE | 1000 | ||
0110 | 4010 | STH Rl, SAVE | |
0112 | 0280 r | ||
011Ί | 4300 | B ausgeführt | |
0116 | 2000 |
i Diese Datenspeicheradressen sind durch Rotieren der 10 bits
der niedrigsten Stellen um einen bit im Uhrzeigersinn verschlüsselt worden.
809838/0737
Das Programm mit den verschlüsselten Datenadressenteilen, wie es als Beispiel durch die Instruktionen nach Tabelle II
dargestellt ist, wird in den Instruktionsspeicher 10 eingeschrieben, jedoch werden die Daten, welche im Datenspeicher
eingechrieben sind, an den ursprünglichen unverschlüsselten Datenadressen, wie in Tabelle I gezeigt, eingeschrieben. Daher
wird, um das Programm richtig auszuführen bzw. richtig funktionieren zu lassen, der unverschlüsselte Datenadressenausgang
des Instruktionssspeichers 10 durch einen Entschlüsseier 20 (Fig. 1) entschlüsselt, wobei der Entschlüsseier 20 in Reihe
mit den Adresseneingangsleitern 22 des Datenspeichers 12 geschaltet ist. Um zu verhindern, daß der Benutzer des Computers
den Entschlüsseier 20 untersucht oder elektrisch abfragt, um dessen Chiffrierschlüssel festzustellen bzw. zu ermitteln,
ist dieser vorzugsweise mit dem Datenspeicher 12 integriert und mit diesem verkapselt, um eine Inspektion oder einen elektrischen
Zugriff zu den Datenadresseneingangsleitungen 22, wie nachfolgend beschrieben werden wird, zu verhindern.
Fig. 2 zeigt ein Flußdiagramm eines Programms zum Verschlüsseln der Datenadressenteile der Instruktionssignale
in Übereinstimmung mit dem oben wiedergegebenen einfachen Chiffrierschlüssel. Die in den Tabellen I und II aufgelisteten
Instruktionen sind Teile eines Interdata-Modell-70-Instruktionssatzes,
welche ebenfalls kurzformatige Instruktionen, sofortige Formatinstruktionen, Verzweigungsinstruktionen und
Verschiebungs-Erehungsinstruktionen enthalten, wobei keine dieser Instruktionen Datenadressen enthält. Die Instruktionen,
welche Datenadressen beinhalten, werden durch einen Eliminationsvorgang ausgewählt, welcher an den Programmstufen 24-34 (Fig.2)
durchgeführt werden. Die Kurzformatinstruktionen werden an der Stufe 26 eliminiert, die Sofortformatinstruktionen werden an
der Stufe 28 eliminiert, die Verzweigungsinstruktionen an der
Stufe 30 und die Verschiebungs-Drehungsinstruktionen werden
an der Stufe 32 eliminiert. Alle Instruktionen, welche verbleiben, haben Datenadressenteile, welche in .Übereinstimmung
mit dem oben angegebenen Chiffrierschlüssel in der Stufe 36
de3 Programms verschlüsselt werden. Dieses einfache Verschlüsselungsprogramm kann an irgendeinem zweckmäßigen Punkt bzw.
einer solchen Stelle in einem normalen Assembler oder Compiler-Programm eingefügt werden.
Der Entschlüsseier für den oben angegebenen Chiffrierschlüssel ist in Fig. 4 gezeigt. Dieser besteht aus 10 Leitern
38 bis 56, welche zwischen 10 Zingangsanschlüsse I., bis I..«
und 10 Ausgangsanschlüsse 0. bis 0_.Q in solcher Weise zwischengeschaltet
werden, um die oben aufgeführte Drehung der 10 Stellen mit der geringsten Bedeutung der Datenadresse um einen
bit in Gegenuhrzeigersinn zurückzudrehen. Die Leitungen 38 bis 56 sind in Reihe mit den entsprechenden Adresseneingangsleitern
22 des Datenspeichers 12 gekoppelt und mit diesem integriert und verkapselt, wie dies nachfolgend beschrieben wird, um
irgendjemanden an der Untersuchung oder Abfragung der Leiter 38
bis 56 zu hindern, um den Chiffrierschlüssel zu ermitteln oder
um die Leiter 38 bis 56 in solcher Art und Weise elektrisch
abzufragen, um den Chiffrierschlüssel zu bestimmen.
Fig. 3 zeigt einen speziellen Datenspeicher 12S bei welchem
ein Halbleiter RAM-Speicher aus einer Mehrzahl von Halbleiterspeichereinheiten 58 besteht, welche jeweils einen Halbleiterchip
59 enthält, auf welchem eine Halbleiterspeicheranordnung mit IO23 separaten bits ausgebildet ist. Es sind 10 Adresseneingangsleiter
für jede Speichereinheit 58 und zusätzlich ein Lese- und Schreibeingang, ein Dateneingang und ein Datenausgang
zusammen mit Spannungs- und Erdungseingängen, welche in der Zeichnungjnicht gezeigt sind, vorgesehen. Die Speichereinheiten
58 sind in einer Mehrzahl von Reihen zusammengeschaltet, wobei jede Reihe N-Speichereinheiten 58 enthält, wobei N die Anzahl
803338/Q717
der bits in den binären Worten ist, welche im Speicher gespeichert
sind. Die Ädresseneingangsleiter jeder Speichereinheit
58 in der gleichen Reihe sind parallel geschaltet, was auch für die Lese und Schreibeingänge gil't.
Um Informationen in den Speieher einzuschreiben, wird
die gewünschte Speichereinheitszeile durch konventionelle Auswahlstromkreise 60 ausgewählt, welche auf die sechs bits
der Datenspeicheradressenzahlen, die in den Tabellen I und II gezeigt sind, ansprechen. Dieser Teil der Datenspeicheradresse
wird nicht verschlüsselt. Die in ihrer Bedeutsamkeit letzten 10 bits, welche verschlüsselt werden, werden an die Adresseneingänge
aller Speichereinheiten 58 in der ausgewählten
Speicherreihe angelegt. Die Daten, welche in jede Speichereinheit 58 einzuschreiben sind, werden an den entsprechenden
Dateneingang angelegt. Der gemeinsame Schreibeingang wird dann erregt, um die Informationen in die ausgewählten Speichereinheiten58
an der adressierten Speicherstelle einzuschreiben. Um Informationen vom Speicher auszulesen, wird die gewünschte
Speicherstelle adressiert, so wie dies oben beschreiben worden ist, und der gemeinsame Leseeingang wird erregt.
In den oben beschriebenen Halbleiterspeicher ist der in Fig. 4 gezeigte Entschlüsseier vorzugsweise in die Leiter
an dem Halbleiterchip 59 jeder Speichereinheit 58 eingeschlossen und mit einem Material verkapselt, welches undurchsichtig
ist, um eine Inspektion der Leiter an dem Halbleiterchip zu verhindern, wobei das Material stark genug ist, um
sicherzustellen, daß die Mikroskopischen Leiter an dem Chip 59 in solchem Maße zerstört werden oder getrennt werden,
daß eine Erkennung nicht möglich ist, falls das Verkapselungsmaterial
unter dem Einfluß einer Kraft vom Chip 59 entfernt liird.
009838/073?
Wenn der Chip 59 entkapselt wird, ist es unmöglich, die
sich auf ihm befindlichen Leiter zu untersuchen, um den Chiffrierschlüssel zu ermitteln, und es ist unmöglich, den Entschlüsseler
in solch einer Art und Weise elektrisch abzufragen,
um den Chiffrierschlüssel zu ermitteln. Falls ein Versuch gemacht wird, das Verkapselungsmaterial zu entfernen, um die
verschlüsselten Leiter freizulegen, würden die verschlüsselten Leiter, welche in ihrer Dicke mikroskopische Abmessungen haben,
in einem solchen Maß zerstört bzw. auseinandergebogen werden,
daß eine Erkennung ausgeschlossen ist, wenn das Verkapselungsmaterial entfernt wird. Dementsprechend verhindert die Kombination
der Ausbildung des Entschlüsselers auf dem Halbleiterchip 59' und die Verkapselung des Chips 59 irgendeine Person
darin, den Chiffrierschlüssel zu ermitteln, indem der Entschlüsseier untersucht wird oder elektrisch abgefragt wird.
Der Entschlüsseier kann elektrisch nicht abgefragt werden, um den Chiffrierschlüssel zu ermitteln, weil, obgleich die Eingangsleiter
des Entschlüsselers zur Verfugung stehen zwecks Abfragung der Ausgangsleiter des Entschlüsselers, unter
dem Verkapselungsmaterial verborgen sind und einem Zugriff nicht zugänglich sind, um die Abfragung vollständig durchzuführen.
Obwohl der oben beschriebene Schlüssel relativ einfach ist, dient er dem Zweck, das Programm zu verbergen bzw. nicht
zugänglich zu machen, welches im Instruktionsspeicher 10 gespeichert ist und er dient weiterhin dazu, zu verhindern,
das irgendeiner das Programm mit den in den Speichern 10 und 12 zur Verfügung stehenden Informationen zu reproduzieren.
Falls beispielsweise die an den Stellen 0100 und 0102 im Instruktionsspeicher ausgedrückten Informationen ausgelesen
werden und in Übereinstimmung mit den sachdienlichen Instruktionssatz interpretiert werden, werden sie "Laden des Registers
Nr. 1 mit den Inhalten der Datenstelle 0080"anzeigen.
/η-
Dies ist jedoch unrichtig und irreführend, weil die Datenadresse
0080 verschlüsselt worden ist und in Wirklichkeit die Datenstelle 0100 bedeutet. Alle Datenadressen im Instruktionsspeicher
werden in entsprechender W-e'ise verschlüsselt
und daher ist die Information im Instruktionsspeicher 10 zu Zwecken der Wiedergabe des Orgignalprogramms
ohne Kenntnis des Verschlüsseier-Chiffrierschlüssels nutzlos. Das Programm kann jedoch auf dem Computer durchlaufen,
ohne das irgendwelche Probleme auftreten, v/eil alle Datenadressen
an den Adresseneingängen des Datenspeichers 12 durch den sich auf ihnen befindlichen Entschlüsslern entschlüsselt
werden. Außerdem können normale Wartungsoperationen an dem Computer durchgeführt werden, da die Instruktionen, welche
dem passenden Instruktionssatz und der Programmfolge entsprechen, nicht verschlüsselt sind.
Obwohl ein einfacher Schlüssel verwendet wird bei der Beschreibung des vorangehenden Beispiels, können kompliziertere
Chiffrierüchlüssel verwendet werden, welche binäre Deeodiermatrizen
als Entschlüsseier aufweisen, da Decodiermatrizen auf
Halbleiterchips zusammen mit Halbleiterspeichern ausgebildet werden können. Auch andere Verfahren können eingesetzt werden,
um den Entschlüsseier daran zu hindern, daß er untersucht wird oder elektrisch abgefragt wird, um auf diese Art und Weise
den Chiffrierschlüssel zu erfahren.
$09838/0737
e e rs e ite
Claims (1)
- PatentansprücheMu Verfahren zum Sichern eines Computerprograinms, gegenüber Entnahme bzw. Wiedergabe durch einen Benutzer ,«bei welchem das Programm in einem ersten und einem zweiten Speicher gespeichert worden ist, und bei welchem eine Folge von Instruktionssignalen in dem ersten Speicher Programminstruktionen zur Durchführung bezeichneter Computeroperationen darstellen, und einige Instruktionssignale Datenadressenteile haben, welche die Adressen darstellen, an welchen Datensignale, welche zu der entsprechenden Operation gehören, in dem zweiten Speicher gespaichert sind, gekennzeichnet durch Speicher (A) der Datensignale in dem zweiten Speicher an Stellen, die durch die Datenadressenteile der Instruktionssignale spezifiziert sind, durch Verschlüsseln (B) der Datenadressenteile der Instruktionssignale in Übereinstimmung mit einem vorbestimmten Chiffrierschiüssel bevor die Instruktionssignale in dem ersten Speicher gespeichert werden, durch Speichern (C) der Instruktionssignale unter Einschluß der verschlüsselten Datenadressenteile dieser Signale in dem ersten Speichers durch Herauslesen (D) der Instruktionssignale aus dem ersten Speicher, durch Entschlüsseln (E) jedes verschlüsselten Datenadressenteiles der Instruktionssignale j die aus dem ersten Speicher vor den vor den entsprechenden Datensignalen herausgelesen werden, welche ihrer seits aus dem zweiten Speicher herausgelesen werden«, durch Lesen (P) der Datensignale, welche durch die entschlüsselten Datenadressenteile der Instruktionssignale aus dem zweiten Speicher spezifiziert sind, und durch Ausführen (G) der Programminstruktionen, welche durch die Instruktionssignale und die Datensignale dargestellt sind.2. Verfahren nach Anspruch I3 dadurch gekennzeichnet, da/i jeder verschlüsselte Datenadressenteil eines Instruktionssignales entschlüsselt wird, während er aus dein ersten Speicher herausgelesen wird.3. Vorrichtung zur Durchführung des Verfahrens nach Anspruch 1, κι it einer Einrichtung zum Erzeugen einer Folge von Instruktionssignalen, welche Programminstruktionen zwecks Durchführung bezeichneter Computerarbeitsvorgänge darstellen, wobei einige Instruktionssignale Datenadressenteile aufweisen, welche diejenigen Adressen darstellen, an welchen Daten, welche mit den entsprechenden Vorgängen in Beziehung stehen, gespeichert sind, wobei die Instruktionssignale in den Speicher gespeichert sind, gekennzeichnet durch einen Datenspeicher in der ersten Speichereinrichtung, welcher Adresseneingangsleiter und Datenausgangsleiter aufweist, durch einen Speicher zum Speichern der Datenspeicherdatensignale, welche Quantitäten darstellen, welche zu den Programminstruktionen an den Adressen in Beziehung stehen, welche in den Datenadressenteilen der Instruktionssignale spezifiziert sind, durch einen Verschlüsseier zürn Verschlüsseln der Datenadressenteile der Instruktionssignale in Übereinstimmung mit einem Chiffrierschlüssel, durch einen Instrukticmsspeicher in der Speichereinrichtung, durch eine Einrichtung zum Speichern der Instruktionssignale unter Einschluß derjenigen, welche verschlüsselte Datenadressenteile in dem Instruktionsspeicher an Stellen aufweisen, welche der Programmfolge entsprechen, durch eine Einrichtung zum Herauslesen der Instruktionssignale aus dem Instruktionsspeicher in Übereinstimmung mit der Programmfolge und zum Ausführei der Instruktionen, welche durch die Instruktionssignale dargestellt sind, durch einen in Reihe mit den Datenspei heradressenleitern geschalteten Entschlüsseier, welcher in Übereinstimmung mit dem Chiffrierschlüssel betätigbar ist, um irgendwelche verschlüsselten Datenadreesensignale zu entschlüsseln, welche an seinen Eingang angelegt werden, und um die809838/073728101 dB- 47 -entschlüsselten Datenadressensignale an die Datenspeichereinrichtung anzulegen, durch eine Einrichtung zum Anlegen der entschlüsselten aus dem Instruktionsspeicrier herausgelesenen Datenadressensignale an den Eingang des Entschlüsselers, und durch eine Einrichtung zum Herauslesen der Daten aus dem Datenspeicher an den unverschlüsselten Adressen in Übereinstimmung mit den Programminstruktionen zur Verwendung bei den entsprechenden Coraputervorg&ngen.H. Vorrichtung nach Anspruch 3, gekennzeichnet durch eine Einrichtung zur Verhinderung, daß irgendwer die verschlüsselten Teile des Entschlüsseier '· untersucht, um den Chiffrierschlüssel su ermitteln und/oder den Entschlüsseier in solch einer Art und Weise elektrisch abfragt, um den Chiffrierschlüssel zu bestimmen.5. Vorrichtung nach einem der Ansprüche 3 oder ks dadurch gekennzeichnet, daß die Speichereinrichtung eine Mehrzahl von Halbleiterspeichereinheiten, welche jeweils einen Halbleiterspeicherchip enthalten, welcher Adresseneingangsleiter und Datenausgangsleiter aufweist, und weiterhin eine Mehrzahl von Entschlüsseiern aufweist, welche jeweils in Reihe mit den Datenspeicheradressenleitern eines entsprechenden Speicherchips geschaltet sind, wobei jeder Entschlüsseier in Übereinstimmung mit deni Chiffrierschlüssel betätigbar ist, um die verschlüsselten Datenadressensignale zu entschlüsseln, welche an den Eingang angelegt sind, und um die unverschlüsselten Datenadressensignale an den entsprechenden Speicherchip anzulegen.6. Vorrichtung nach Anspruch 5, dadurch gekennzeichnet, daß jeder Entschlüsseier an dem entsprechenden Speicherchip befestigt und zusammen mit diesem verkapselt ist.809838/0737
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US05/776,702 US4120030A (en) | 1977-03-11 | 1977-03-11 | Computer software security system |
Publications (1)
Publication Number | Publication Date |
---|---|
DE2810168A1 true DE2810168A1 (de) | 1978-09-21 |
Family
ID=25108144
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19782810168 Withdrawn DE2810168A1 (de) | 1977-03-11 | 1978-03-09 | Verfahren zum sichern eines computerprogramms gegenueber entnahme bzw. wiedergabe durch einen benutzer sowie vorrichtung zur durchfuehrung des verfahrens |
Country Status (10)
Country | Link |
---|---|
US (1) | US4120030A (de) |
JP (1) | JPS53113442A (de) |
AU (1) | AU500368B1 (de) |
BR (1) | BR7801484A (de) |
DE (1) | DE2810168A1 (de) |
FR (1) | FR2383482A1 (de) |
GB (1) | GB1601627A (de) |
NL (1) | NL7802670A (de) |
NO (1) | NO780767L (de) |
SE (1) | SE7802587L (de) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE2923738A1 (de) * | 1979-06-12 | 1980-12-18 | Joepgen Hans Georg | Vorkehrungen gegen die unbefugte entfernung urheberrechtlicher vermerke aus programmen in hoeheren programmiersprachen wie basic und focal |
DE3335387A1 (de) * | 1983-09-29 | 1985-04-11 | Siemens Ag | Verfahren zur verhinderung des ablaufs eines programms auf fuer den ablauf dieses programms nicht zugelassenen rechnern |
AT390148B (de) * | 1985-08-22 | 1990-03-26 | Novomatic Automatenindustrie U | Anordnung zum entschluesseln von befehlen |
Families Citing this family (127)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4168396A (en) * | 1977-10-31 | 1979-09-18 | Best Robert M | Microprocessor for executing enciphered programs |
US4278837A (en) * | 1977-10-31 | 1981-07-14 | Best Robert M | Crypto microprocessor for executing enciphered programs |
US4227253A (en) * | 1977-12-05 | 1980-10-07 | International Business Machines Corporation | Cryptographic communication security for multiple domain networks |
US4238854A (en) * | 1977-12-05 | 1980-12-09 | International Business Machines Corporation | Cryptographic file security for single domain networks |
US4386234A (en) * | 1977-12-05 | 1983-05-31 | International Business Machines Corp. | Cryptographic communication and file security using terminals |
US4238853A (en) * | 1977-12-05 | 1980-12-09 | International Business Machines Corporation | Cryptographic communication security for single domain networks |
US4259720A (en) * | 1978-01-09 | 1981-03-31 | Interbank Card Association | Security system for electronic funds transfer system |
US4408203A (en) * | 1978-01-09 | 1983-10-04 | Mastercard International, Inc. | Security system for electronic funds transfer system |
US4352952A (en) * | 1978-06-12 | 1982-10-05 | Motorola Inc. | Data security module |
CA1147823A (en) * | 1978-07-24 | 1983-06-07 | Robert M. Best | Crypto microprocessor for executing enciphered programs |
US4246638A (en) * | 1978-09-14 | 1981-01-20 | Thomas William J | Method and apparatus for controlling usage of a programmable computing machine |
US4249180A (en) * | 1978-09-20 | 1981-02-03 | Northern Telecom Limited | Past dependent microcomputer cipher apparatus |
US4281216A (en) * | 1979-04-02 | 1981-07-28 | Motorola Inc. | Key management for encryption/decryption systems |
US4465901A (en) * | 1979-06-04 | 1984-08-14 | Best Robert M | Crypto microprocessor that executes enciphered programs |
US4306289A (en) * | 1980-02-04 | 1981-12-15 | Western Electric Company, Inc. | Digital computer having code conversion apparatus for an encrypted program |
US4506325A (en) * | 1980-03-24 | 1985-03-19 | Sperry Corporation | Reflexive utilization of descriptors to reconstitute computer instructions which are Huffman-like encoded |
US4513174A (en) * | 1981-03-19 | 1985-04-23 | Standard Microsystems Corporation | Software security method using partial fabrication of proprietary control word decoders and microinstruction memories |
US4408093A (en) * | 1981-06-05 | 1983-10-04 | Itt Industries, Inc. | Cryptographic encoder-decoder |
US4433207A (en) * | 1981-09-10 | 1984-02-21 | Best Robert M | Cryptographic decoder for computer programs |
US4471163A (en) * | 1981-10-05 | 1984-09-11 | Donald Thomas C | Software protection system |
US4670857A (en) * | 1981-10-26 | 1987-06-02 | Rackman Michael I | Cartridge-controlled system whose use is limited to authorized cartridges |
US4593353A (en) * | 1981-10-26 | 1986-06-03 | Telecommunications Associates, Inc. | Software protection method and apparatus |
US4965825A (en) | 1981-11-03 | 1990-10-23 | The Personalized Mass Media Corporation | Signal processing apparatus and methods |
US7831204B1 (en) | 1981-11-03 | 2010-11-09 | Personalized Media Communications, Llc | Signal processing apparatus and methods |
USRE47642E1 (en) | 1981-11-03 | 2019-10-08 | Personalized Media Communications LLC | Signal processing apparatus and methods |
US4442486A (en) * | 1981-11-25 | 1984-04-10 | U.S. Philips Corporation | Protected programmable apparatus |
JPS58116571A (ja) * | 1981-12-29 | 1983-07-11 | 富士通株式会社 | マイクロコンピユ−タに於ける命令暗号化方式及びその実施に使用されるマイクロコンピユ−タ |
FR2523745B1 (fr) * | 1982-03-18 | 1987-06-26 | Bull Sa | Procede et dispositif de protection d'un logiciel livre par un fournisseur a un utilisateur |
US4649510A (en) * | 1982-04-30 | 1987-03-10 | Schmidt Walter E | Methods and apparatus for the protection and control of computer programs |
US4525599A (en) * | 1982-05-21 | 1985-06-25 | General Computer Corporation | Software protection methods and apparatus |
US4462076A (en) * | 1982-06-04 | 1984-07-24 | Smith Engineering | Video game cartridge recognition and security system |
JPS59501128A (ja) * | 1982-06-21 | 1984-06-28 | エス・ピ−・エル・ソフトウエア・プロテクト・ア−・ゲ− | デジタル情報コ−ド化方法および装置 |
US4523271A (en) * | 1982-06-22 | 1985-06-11 | Levien Raphael L | Software protection method and apparatus |
US4521853A (en) * | 1982-06-30 | 1985-06-04 | Texas Instruments Incorporated | Secure microprocessor/microcomputer with secured memory |
US4603381A (en) * | 1982-06-30 | 1986-07-29 | Texas Instruments Incorporated | Use of implant process for programming ROM type processor for encryption |
US4558176A (en) * | 1982-09-20 | 1985-12-10 | Arnold Mark G | Computer systems to inhibit unauthorized copying, unauthorized usage, and automated cracking of protected software |
US4562305A (en) * | 1982-12-22 | 1985-12-31 | International Business Machines Corporation | Software cryptographic apparatus and method |
DE3415209A1 (de) * | 1983-04-29 | 1984-10-31 | N.V. Philips' Gloeilampenfabrieken, Eindhoven | Speichereinheit mit einem speicher und einer schutzeinheit |
US4573119A (en) * | 1983-07-11 | 1986-02-25 | Westheimer Thomas O | Computer software protection system |
US4550350A (en) * | 1983-07-19 | 1985-10-29 | Software Distribution Newtork, Inc. | Secure copy method and device for stored programs |
FR2553541B1 (fr) * | 1983-10-17 | 1992-02-28 | Inst Nat Rech Inf Automat | Dispositif et procede pour le stockage rapide et stable d'informations |
GB2149944A (en) * | 1983-11-14 | 1985-06-19 | Softnet Inc | Software distribution |
US4716586A (en) * | 1983-12-07 | 1987-12-29 | American Microsystems, Inc. | State sequence dependent read only memory |
US4633388A (en) * | 1984-01-18 | 1986-12-30 | Siemens Corporate Research & Support, Inc. | On-chip microprocessor instruction decoder having hardware for selectively bypassing on-chip circuitry used to decipher encrypted instruction codes |
FR2566938B1 (fr) * | 1984-06-29 | 1989-08-18 | Texas Instruments France | Memoire permettant de transformer un flot de mots de donnees en un autre flot de mots de donnees |
US4747139A (en) * | 1984-08-27 | 1988-05-24 | Taaffe James L | Software security method and systems |
GB2165377A (en) * | 1984-09-19 | 1986-04-09 | Itt Ind Ltd | A computer element |
US4860128A (en) * | 1985-04-24 | 1989-08-22 | Nintendo Co., Ltd. | Recordable data device having identification symbols formed thereon and cooperating data processing system having registering symbols |
US4688169A (en) * | 1985-05-30 | 1987-08-18 | Joshi Bhagirath S | Computer software security system |
CA1270339A (en) * | 1985-06-24 | 1990-06-12 | Katsuya Nakagawa | System for determining a truth of software in an information processing apparatus |
JPH074449B2 (ja) * | 1985-10-04 | 1995-01-25 | 任天堂株式会社 | ゲ−ム機用カ−トリツジとそれを用いるゲ−ム機 |
USRE34161E (en) * | 1985-10-04 | 1993-01-12 | Nintendo Company Limited | Memory cartridge and information processor unit using such cartridge |
US4864494A (en) * | 1986-03-21 | 1989-09-05 | Computerized Data Ssytems For Mfg., Inc. | Software usage authorization system with key for decrypting/re-encrypting/re-transmitting moving target security codes from protected software |
US5226136A (en) * | 1986-05-06 | 1993-07-06 | Nintendo Company Limited | Memory cartridge bank selecting apparatus |
JPS62260244A (ja) * | 1986-05-06 | 1987-11-12 | Nintendo Co Ltd | メモリカ−トリツジ |
GB8619989D0 (en) * | 1986-08-16 | 1986-09-24 | Modray Ltd | Controlling length of time |
US4977594A (en) * | 1986-10-14 | 1990-12-11 | Electronic Publishing Resources, Inc. | Database usage metering and protection system and method |
US5050213A (en) * | 1986-10-14 | 1991-09-17 | Electronic Publishing Resources, Inc. | Database usage metering and protection system and method |
US4817140A (en) * | 1986-11-05 | 1989-03-28 | International Business Machines Corp. | Software protection system using a single-key cryptosystem, a hardware-based authorization system and a secure coprocessor |
US5109413A (en) * | 1986-11-05 | 1992-04-28 | International Business Machines Corporation | Manipulating rights-to-execute in connection with a software copy protection mechanism |
CA1330596C (en) * | 1986-11-19 | 1994-07-05 | Yoshiaki Nakanishi | Memory cartridge and data processing apparatus |
US5224160A (en) * | 1987-02-23 | 1993-06-29 | Siemens Nixdorf Informationssysteme Ag | Process for securing and for checking the integrity of the secured programs |
JP2710316B2 (ja) * | 1987-08-26 | 1998-02-10 | 任天堂株式会社 | パスワード作成装置およびパスワード作成装置を用いたゲーム機 |
US5007082A (en) * | 1988-08-03 | 1991-04-09 | Kelly Services, Inc. | Computer software encryption apparatus |
US4926476A (en) * | 1989-02-03 | 1990-05-15 | Motorola, Inc. | Method and apparatus for secure execution of untrusted software |
WO1990013865A1 (en) * | 1989-04-28 | 1990-11-15 | Softel, Inc. | Method and apparatus for remotely controlling and monitoring the use of computer software |
CA2053261A1 (en) * | 1989-04-28 | 1990-10-29 | Gary D. Hornbuckle | Method and apparatus for remotely controlling and monitoring the use of computer software |
US5081675A (en) * | 1989-11-13 | 1992-01-14 | Kitti Kittirutsunetorn | System for protection of software in memory against unauthorized use |
GB2248702B (en) * | 1990-10-11 | 1994-11-02 | Viserge Limited | Data-processing apparatus |
DE4120398A1 (de) * | 1991-06-20 | 1993-01-07 | Standard Elektrik Lorenz Ag | Datenverarbeitungsanlage |
US5416840A (en) * | 1993-07-06 | 1995-05-16 | Phoenix Technologies, Ltd. | Software catalog encoding method and system |
FR2719680B1 (fr) * | 1994-05-05 | 1996-07-12 | Gemplus Card Int | Procédé de sécurisation des accès aux cartes amovibles pour ordinateur. |
US5530751A (en) * | 1994-06-30 | 1996-06-25 | Hewlett-Packard Company | Embedded hidden identification codes in digital objects |
US5559884A (en) * | 1994-06-30 | 1996-09-24 | Microsoft Corporation | Method and system for generating and auditing a signature for a computer program |
US7124302B2 (en) | 1995-02-13 | 2006-10-17 | Intertrust Technologies Corp. | Systems and methods for secure transaction management and electronic rights protection |
US7165174B1 (en) | 1995-02-13 | 2007-01-16 | Intertrust Technologies Corp. | Trusted infrastructure support systems, methods and techniques for secure electronic commerce transaction and rights management |
US5892900A (en) * | 1996-08-30 | 1999-04-06 | Intertrust Technologies Corp. | Systems and methods for secure transaction management and electronic rights protection |
US6658568B1 (en) | 1995-02-13 | 2003-12-02 | Intertrust Technologies Corporation | Trusted infrastructure support system, methods and techniques for secure electronic commerce transaction and rights management |
US7143290B1 (en) | 1995-02-13 | 2006-11-28 | Intertrust Technologies Corporation | Trusted and secure techniques, systems and methods for item delivery and execution |
US8639625B1 (en) | 1995-02-13 | 2014-01-28 | Intertrust Technologies Corporation | Systems and methods for secure transaction management and electronic rights protection |
US6948070B1 (en) | 1995-02-13 | 2005-09-20 | Intertrust Technologies Corporation | Systems and methods for secure transaction management and electronic rights protection |
US7069451B1 (en) | 1995-02-13 | 2006-06-27 | Intertrust Technologies Corp. | Systems and methods for secure transaction management and electronic rights protection |
US7133845B1 (en) | 1995-02-13 | 2006-11-07 | Intertrust Technologies Corp. | System and methods for secure transaction management and electronic rights protection |
US7133846B1 (en) | 1995-02-13 | 2006-11-07 | Intertrust Technologies Corp. | Digital certificate support system, methods and techniques for secure electronic commerce transaction and rights management |
EP1643340B1 (de) * | 1995-02-13 | 2013-08-14 | Intertrust Technologies Corp. | Sicheres Transaktionsmanagement |
US6157721A (en) | 1996-08-12 | 2000-12-05 | Intertrust Technologies Corp. | Systems and methods using cryptography to protect secure computing environments |
US5943422A (en) | 1996-08-12 | 1999-08-24 | Intertrust Technologies Corp. | Steganographic techniques for securely delivering electronic digital rights management control information over insecure communication channels |
US7095854B1 (en) | 1995-02-13 | 2006-08-22 | Intertrust Technologies Corp. | Systems and methods for secure transaction management and electronic rights protection |
US6190257B1 (en) | 1995-11-22 | 2001-02-20 | Nintendo Co., Ltd. | Systems and method for providing security in a video game system |
US6071191A (en) * | 1995-11-22 | 2000-06-06 | Nintendo Co., Ltd. | Systems and methods for providing security in a video game system |
JP2000503154A (ja) | 1996-01-11 | 2000-03-14 | エムアールジェイ インコーポレイテッド | デジタル所有権のアクセスと分配を制御するためのシステム |
US5892826A (en) * | 1996-01-30 | 1999-04-06 | Motorola, Inc. | Data processor with flexible data encryption |
US20010011253A1 (en) * | 1998-08-04 | 2001-08-02 | Christopher D. Coley | Automated system for management of licensed software |
US5745570A (en) * | 1996-04-15 | 1998-04-28 | International Business Machines Corporation | Object-oriented programming environment that provides object encapsulation via encryption |
US6049609A (en) * | 1997-08-06 | 2000-04-11 | Intel Corporation | Cell array providing non-persistent secret storage through a mutation cycle |
US6052780A (en) * | 1996-09-12 | 2000-04-18 | Open Security Solutions, Llc | Computer system and process for accessing an encrypted and self-decrypting digital information product while restricting access to decrypted digital information |
GB2321728B (en) * | 1997-01-30 | 2001-12-19 | Motorola Inc | Apparatus and method for accessing secured data stored in a portable data carrier |
US7062500B1 (en) | 1997-02-25 | 2006-06-13 | Intertrust Technologies Corp. | Techniques for defining, using and manipulating rights management data structures |
US5920861A (en) * | 1997-02-25 | 1999-07-06 | Intertrust Technologies Corp. | Techniques for defining using and manipulating rights management data structures |
JPH10301772A (ja) * | 1997-04-30 | 1998-11-13 | Sony Corp | 情報処理装置および情報処理方法、並びに記録媒体 |
US6381740B1 (en) | 1997-09-16 | 2002-04-30 | Microsoft Corporation | Method and system for incrementally improving a program layout |
US6112181A (en) * | 1997-11-06 | 2000-08-29 | Intertrust Technologies Corporation | Systems and methods for matching, selecting, narrowcasting, and/or classifying based on rights management and/or other information |
US7092914B1 (en) | 1997-11-06 | 2006-08-15 | Intertrust Technologies Corporation | Methods for matching, selecting, narrowcasting, and/or classifying based on rights management and/or other information |
US7233948B1 (en) | 1998-03-16 | 2007-06-19 | Intertrust Technologies Corp. | Methods and apparatus for persistent control and protection of content |
US6957341B2 (en) * | 1998-05-14 | 2005-10-18 | Purdue Research Foundation | Method and system for secure computational outsourcing and disguise |
FI981232A (fi) * | 1998-06-01 | 1999-12-02 | Nokia Mobile Phones Ltd | Menetelmä sulautetun järjestelmän ohjelmiston suojaamiseksi ja sulautettu järjestelmä |
US6473861B1 (en) | 1998-12-03 | 2002-10-29 | Joseph Forte | Magnetic optical encryption/decryption disk drive arrangement |
US7243236B1 (en) | 1999-07-29 | 2007-07-10 | Intertrust Technologies Corp. | Systems and methods for using cryptography to protect secure and insecure computing environments |
US7430670B1 (en) | 1999-07-29 | 2008-09-30 | Intertrust Technologies Corp. | Software self-defense systems and methods |
US7757097B2 (en) * | 1999-09-03 | 2010-07-13 | Purdue Research Foundation | Method and system for tamperproofing software |
US7287166B1 (en) | 1999-09-03 | 2007-10-23 | Purdue Research Foundation | Guards for application in software tamperproofing |
GB9930145D0 (en) * | 1999-12-22 | 2000-02-09 | Kean Thomas A | Method and apparatus for secure configuration of a field programmable gate array |
US20070288765A1 (en) * | 1999-12-22 | 2007-12-13 | Kean Thomas A | Method and Apparatus for Secure Configuration of a Field Programmable Gate Array |
US7240218B2 (en) * | 2000-02-08 | 2007-07-03 | Algotronix, Ltd. | Method of using a mask programmed key to securely configure a field programmable gate array |
US6792528B1 (en) * | 2000-05-17 | 2004-09-14 | Chien-Tzu Hou | Method and apparatus for securing data contents of a non-volatile memory device |
CN100538587C (zh) * | 2000-07-18 | 2009-09-09 | 辛普雷克斯梅杰有限公司 | 数字数据保护设备 |
US7512986B2 (en) | 2001-03-28 | 2009-03-31 | Nds Limited | Digital rights management system and method |
DE10124139A1 (de) * | 2001-05-17 | 2002-11-21 | Philips Corp Intellectual Pty | Verfahren und Vorrichtung zur Sicherung der Datenübertragung zwischen einem Zentralprozessor und einem Speicher |
GB0114317D0 (en) * | 2001-06-13 | 2001-08-01 | Kean Thomas A | Method of protecting intellectual property cores on field programmable gate array |
US8510571B1 (en) | 2003-03-24 | 2013-08-13 | Hoi Chang | System and method for inserting security mechanisms into a software program |
DE10318730A1 (de) * | 2003-04-25 | 2004-11-11 | Conti Temic Microelectronic Gmbh | Verfahren zum Betreiben einer Datenverarbeitungseinheit sowie Datenverarbeitungssystem zur Durchführung des Verfahrens |
TWI222598B (en) * | 2003-07-09 | 2004-10-21 | Sunplus Technology Co Ltd | Device and method protecting data by scrambling address lines |
JP4930028B2 (ja) * | 2006-12-13 | 2012-05-09 | ソニー株式会社 | 情報処理装置、情報処理方法、プログラム |
US8769296B2 (en) * | 2009-10-19 | 2014-07-01 | Uniloc Luxembourg, S.A. | Software signature tracking |
ITCR20090044A1 (it) * | 2009-12-17 | 2011-06-18 | Alessandro Landi | Procedimento per la gestione sicura di dati sensibili da mantenere segreti in un intervallo di tempo prefissato. |
US10200345B2 (en) | 2013-10-29 | 2019-02-05 | Uniloc 2017 Llc | Electronic mail sender verification |
US11240022B1 (en) * | 2019-04-11 | 2022-02-01 | Wells Fargo Bank, N.A. | Passive encryption rotation keys |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3609697A (en) * | 1968-10-21 | 1971-09-28 | Ibm | Program security device |
US3662343A (en) * | 1970-07-29 | 1972-05-09 | Docutel Corp | Credit card automatic currency dispenser |
US3798359A (en) * | 1971-06-30 | 1974-03-19 | Ibm | Block cipher cryptographic system |
US3798605A (en) * | 1971-06-30 | 1974-03-19 | Ibm | Centralized verification system |
GB1414126A (en) * | 1971-11-22 | 1975-11-19 | Key Tronic Ltd | Secutity for computer systems |
US3943492A (en) * | 1972-08-17 | 1976-03-09 | Oak Industries Inc. | Plural storage system |
US4010451A (en) * | 1972-10-03 | 1977-03-01 | National Research Development Corporation | Data structure processor |
GB1481849A (en) * | 1973-08-02 | 1977-08-03 | Nippon Telegraph & Telephone | Digital code transmission systems |
FR111574A (de) * | 1973-12-13 | 1900-01-01 | ||
US3920894A (en) * | 1974-03-11 | 1975-11-18 | Bell Telephone Labor Inc | Pseudo-random parallel word generator |
US3909802A (en) * | 1974-04-08 | 1975-09-30 | Honeywell Inf Systems | Diagnostic maintenance and test apparatus |
GB1472885A (en) * | 1974-05-01 | 1977-05-11 | Int Computers Ltd | Digital code conversion arrangements |
US3978454A (en) * | 1974-06-20 | 1976-08-31 | Westinghouse Electric Corporation | System and method for programmable sequence control |
JPS5721799B2 (de) * | 1975-02-01 | 1982-05-10 | ||
US3962539A (en) * | 1975-02-24 | 1976-06-08 | International Business Machines Corporation | Product block cipher system for data security |
US3958081A (en) * | 1975-02-24 | 1976-05-18 | International Business Machines Corporation | Block cipher system for data security |
US4056809A (en) * | 1975-04-30 | 1977-11-01 | Data Flo Corporation | Fast table lookup apparatus for reading memory |
US4056711A (en) * | 1975-10-24 | 1977-11-01 | William Paul Lamar | Method and apparatus for programming microprocessors |
US4064554A (en) * | 1976-08-16 | 1977-12-20 | Texas Instruments Incorporated | Microcomputer with code conversion |
-
1977
- 1977-03-11 US US05/776,702 patent/US4120030A/en not_active Expired - Lifetime
-
1978
- 1978-03-02 AU AU33748/78A patent/AU500368B1/en not_active Expired
- 1978-03-06 NO NO780767A patent/NO780767L/no unknown
- 1978-03-07 SE SE7802587A patent/SE7802587L/xx unknown
- 1978-03-08 FR FR7806636A patent/FR2383482A1/fr active Granted
- 1978-03-09 DE DE19782810168 patent/DE2810168A1/de not_active Withdrawn
- 1978-03-10 BR BR787801484A patent/BR7801484A/pt unknown
- 1978-03-10 JP JP2758078A patent/JPS53113442A/ja active Granted
- 1978-03-10 NL NL7802670A patent/NL7802670A/xx not_active Application Discontinuation
- 1978-03-10 GB GB9534/78A patent/GB1601627A/en not_active Expired
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE2923738A1 (de) * | 1979-06-12 | 1980-12-18 | Joepgen Hans Georg | Vorkehrungen gegen die unbefugte entfernung urheberrechtlicher vermerke aus programmen in hoeheren programmiersprachen wie basic und focal |
DE3335387A1 (de) * | 1983-09-29 | 1985-04-11 | Siemens Ag | Verfahren zur verhinderung des ablaufs eines programms auf fuer den ablauf dieses programms nicht zugelassenen rechnern |
AT390148B (de) * | 1985-08-22 | 1990-03-26 | Novomatic Automatenindustrie U | Anordnung zum entschluesseln von befehlen |
Also Published As
Publication number | Publication date |
---|---|
JPS5653779B2 (de) | 1981-12-21 |
SE7802587L (sv) | 1978-09-12 |
FR2383482B1 (de) | 1981-09-04 |
BR7801484A (pt) | 1979-02-13 |
FR2383482A1 (fr) | 1978-10-06 |
US4120030A (en) | 1978-10-10 |
NL7802670A (nl) | 1978-09-13 |
GB1601627A (en) | 1981-11-04 |
AU500368B1 (en) | 1979-05-17 |
NO780767L (no) | 1978-09-12 |
JPS53113442A (en) | 1978-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2810168A1 (de) | Verfahren zum sichern eines computerprogramms gegenueber entnahme bzw. wiedergabe durch einen benutzer sowie vorrichtung zur durchfuehrung des verfahrens | |
EP3274825B1 (de) | Verfahren und ausführungsumgebung zum gesicherten ausführen von programmbefehlen | |
DE19782169C2 (de) | Kryptographisch geschütztes Seitenwechsel-Subsystem | |
DE69824251T2 (de) | Entschlüsselungsvorrichtung | |
DE3700663A1 (de) | System fuer integrierte schaltungen tragende karten | |
DE60302844T2 (de) | Halbleitervorrichtung mit Verschlüsselung, Halbleitervorrichtung mit externer Schnittstelle, und Inhaltswiedergabeverfahren | |
EP1099197B1 (de) | Vorrichtung zum liefern von ausgangsdaten als reaktion auf eingangsdaten und verfahren zum überprüfen der authentizität und verfahren zum verschlüsselten übertragen von informationen | |
DE112007003231B4 (de) | Programmierbare Anzeigevorrichtung und Steuersystem | |
EP0766211A2 (de) | Multifunktionale Chipkarte | |
DE102009041176B9 (de) | Compiler-System und Verfahren zum Kompilieren eines Quellencodes zu einem verschlüsselten Maschinensprachcode | |
EP1246043A2 (de) | Verfahren zur Übertragung von Daten über einen Datenbus | |
EP1248198A2 (de) | Programmgesteuerte Einheit mit Emulations-Einheiten | |
DE2248296A1 (de) | Programmsteuereinrichtung | |
EP0981115B1 (de) | Verfahren zur Ausführung eines Verschlüsselungsprogramms zur Verschlüsselung von Daten in einem mikroprozessorgestützten, tragbaren Datenträger | |
DE102018123835A1 (de) | Dezentralisiertes System zur Erstellung von Softwareinformationen und Verfahren hierfür | |
EP0280035B1 (de) | Verfahren zum Sichern von Programmen und zur Integritätskontrolle gesicherter Programme | |
DE19626972A1 (de) | Verfahren und Vorrichtung zur vorläufigen Freigabe für die Anwendung eines von einer elektronischen Kassette geschützten Programms | |
EP0127809B1 (de) | Schaltungsanordnung mit einem Speicher und einer Zugriffskontrolleinheit | |
DE102006035610B4 (de) | Speicherzugriffssteuerung und Verfahren zur Speicherzugriffssteuerung | |
DE69916795T2 (de) | Verfahren zur speicherung und zum betrieb von informationseinheiten in einem sicherheitsmodul, und zugehöriges sicherheitsmodul | |
EP0813723A1 (de) | Chipkarte mit geschütztem betriebssystem | |
DE102010009458A1 (de) | Hardware-Einrichtung | |
DE2906789A1 (de) | Speicherpruefsystem | |
DE10256587A1 (de) | Datenverarbeitungseinrichtung, insbesondere elektronisches Speicherbauteil, und hierauf bezogenes Verschlüsselungsverfahren | |
DE2349253A1 (de) | Programmgesteuerte rechenanlage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OAP | Request for examination filed | ||
OF | Willingness to grant licences before publication of examined application | ||
8130 | Withdrawal |