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 verfahrens

Info

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
Application number
DE19782810168
Other languages
English (en)
Inventor
Richard Johnstone
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kearney and Trecker Corp
Original Assignee
Kearney and Trecker Corp
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 Kearney and Trecker Corp filed Critical Kearney and Trecker Corp
Publication of DE2810168A1 publication Critical patent/DE2810168A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting 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/72Protecting 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • 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/121Restricting unauthorised execution of programs
    • G06F21/123Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting 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
BANK: DEUTSCHE BANK AG, HAMBURG (BU 20070000),KONTO NR. 65/18823 · POSTSCHECK: HAMBURG 142840-205
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.
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*
4300
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
TABELLE II Verschlüsselte Prograniminstruktionen
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)

  1. Patentansprüche
    Mu 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 die
    809838/0737
    28101 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
DE19782810168 1977-03-11 1978-03-09 Verfahren zum sichern eines computerprogramms gegenueber entnahme bzw. wiedergabe durch einen benutzer sowie vorrichtung zur durchfuehrung des verfahrens Withdrawn DE2810168A1 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (3)

* Cited by examiner, † Cited by third party
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