DE3390018T1 - Verfahren und Vorrichtung zum Schutz von Software - Google Patents
Verfahren und Vorrichtung zum Schutz von SoftwareInfo
- Publication number
- DE3390018T1 DE3390018T1 DE19833390018 DE3390018T DE3390018T1 DE 3390018 T1 DE3390018 T1 DE 3390018T1 DE 19833390018 DE19833390018 DE 19833390018 DE 3390018 T DE3390018 T DE 3390018T DE 3390018 T1 DE3390018 T1 DE 3390018T1
- Authority
- DE
- Germany
- Prior art keywords
- encryption
- program
- address
- decryption
- operating mode
- 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 18
- 230000015654 memory Effects 0.000 claims description 34
- 238000001514 detection method Methods 0.000 claims description 20
- 230000004044 response Effects 0.000 claims description 9
- 230000006870 function Effects 0.000 claims description 7
- 238000012806 monitoring device Methods 0.000 claims description 2
- 238000004590 computer program Methods 0.000 claims 1
- 229940036310 program Drugs 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 8
- 230000001681 protective effect Effects 0.000 description 5
- 101100521334 Mus musculus Prom1 gene Proteins 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 2
- 239000004020 conductor Substances 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- 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]
-
- 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/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/80—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in storage media based on magnetic or optical technology, e.g. disks with sectors
-
- 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/82—Protecting input, output or interconnection devices
- G06F21/85—Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Storage Device Security (AREA)
Description
EUROPEANPATENTATTORNEYS 2^ DIPL.-CHEM.DR.E.FRE.HERR VON PECHMANN
DR.-ING. DIETER BEHRENS DIPL.-ING.; DIPL.-WIRTSCH.-iNG. RUPERT GOETZ
P 33 90 018.3 D-8000 MÜNCHEN
U-57 950°mP mPany SCHWEIGERSTRASSE 2
telefon: (089) 66 20 51 telegramm: protectpatent
TELEX: J 24 070
Die Erfindung bezieht sich allgemein auf ein Verfahren und eine Vorrichtung, mit denen das unautorisierte Kopieren von
Computer-Software verhindert werden kann. Insbesondere bezieht sich die Erfindung auf das Verhindern von unautorisiertem
Kopieren von audio-visuellen Anzeigeinformationen elektronischer Video-Spiele, die in einem ROM gespeichert sind
(sogenannte ROM-residente Daten).
Typischerweise werden elektronische Systeme, bei denen ein Mikroprozessor verwendet wird, mit Bauteilen mit geringer
oder mittlerer Integration und Standard-Mikroprozessoren ausgeführt. Derartige Systeme können einfach dadurch dupliziert
werden, daß das Muster der gedruckten Schaltung kopiert und dann auf der kopierten Schaltungsplattine die gleichen Standardbauteile
wie beim ursprünglichen System installiert werden. Programmierte ROM können leicht unter Verwendung wenig
aufwendiger EPROM-Einrichtungen dupliziert werden. Für den Fachmann sei hur angemerkt, daß derartige Kopiervorgänge für
das System und das Programm lediglich die einfachsten "umgekehrten
Ingenieur-Vorgänge" umfaßt. In der Industrie für münzbetätigte Video-Spiele sind derartige Kopiervorgänge sehr
häufig geworden. Zusätzliche Spiele führen zu einem sehr großen ökonomischen Verlust für den ursprünglichen Spielerfinder
Und die autorisierten"Hersteller sowie zu einem sehr starken
und unnötigen Anwachsen der Rechtsstreitigkeiten bei der Bekämpfung
der unautorisierten Reproduktionen von Spielen mit Urheberrecht.
3390013
Kopieren der oben genannten Art kann dadurch erschwert werden, daß eine oder mehrere integrierte Schutzschaltungen des
Typs verwendet werden, der nicht leicht dupliziert oder in Umkehrrichtung berarbeitet werden kann. Ein möglicher Kopierer
ist nicht einfach in der Lage, die richtige Ersetzung für derartige Schutzschaltungen zu finden. Die einfallsreichen
Kopierer sind jedoch ohne weiteres in der Lage, die Schutzbauteile
durch funktionsäquivalente Bauteile dadurch zu ersetzen, daß sie das Mikroprozessorprogramm untersuchen und/
oder die Schutz-Hardware mit einem Mikroprozessor-Emulator zur Bestimmung dessen Qualitätsdaten studieren.
Ein wesentlicher Schritt bei allen unautorisierten Kopierversuchen
ist die Fähigkeit, das Mikroprozessor-Programm entweder dadurch zu duplizieren, daß das Programm durch die Verwendung
eines Mikroprozessor-Emulators schrittweise zur Ausführung gebracht wird ("gedumpt" wird), oder daß direkt die
im ROM gespeicherte Software dupliziert wird. Beide Alternativen sind vergleichsweise einfache Vorgänge bei bekannten
elektronischen Video-Spielen.
Es ist die Hauptaufgabe der Erfindung, unautorisiertes Kopieren von Computer-Software Informationen zu verhindern und
derartigem Kopieren damit in der Praxis vorzubeugen. Diese Aufgabe wird dadurch gelöst, daß die in dem Speicher gespeicherten
Programminformationen verschlüsselt werden und zwischen den Speicher und den Zentralprozessor eine Verschlüsselungs/Entschlüsselungsschaltung
derart geschaltet wird, daß jeder Versuch das verschlüsselte Programm unter Verwendung
eines Mikroprozessor-Emulators (Mikroprozessor-Entwicklungssystems) oder dgl. zu dumpen sofort erfaßt und wirksam verhindert
wird.
— 2 —
-Lh- Während
üblicher Systemvorgänge greift der Zentralprozessor
typischerweise auf das ROM-Programm in nichtsequentieller co Weise aufgrund von Sprüngen, Verzweigungen, Unterprogramm-CD
Aufrufen, Interrupts und dgl. in dem Softwareprogramm zu. S? Nicht jede Adresse in dem ROM-Speicher wird typischerweise
ro bei einem bestimmten Programm verwendet. Anders ausgedrückt,
sind nicht an jeder Adresse in dem ROM notwendigerweise gültige Daten gespeichert.
Wenn andererseits versucht wird, die Computer-Software unter Verwendung eines Mikroprozessor-Emulators zu kopieren, wird
normalerweise auf den ROM-Speicher sequentiell und im allgemeinen auf jede Adresse zugegriffen. In jedem Falle ist es
für den Emulator sogar bei iterativen Versuchen praktisch unmöglich, auf die verschiedenen Speicheradressen in der gleichen
Weise wie die Programm-Software zuzugreifen.
Entsprechend dem erfindungsgemäßen Verfahren und der erfindungsgemäßen
Vorrichtung ist das System so eingerichtet, daß es einen Zustand erkennt, der im Folgenden als "Sperrzustand"
definiert wird. Zu Zwecken der vorliegenden Erfindung wird ein "Sperrzustand" als ein ungültiges Programmereignis in dem
Sinne definiert, daß ein derartiges Ereignis bei einer gewöhnlichen und korrekten Ausführung der Computer-Software
nicht auftritt. Ein derartiges ungültiges bzw. unzulässiges Ereignis kann beispielsweise dann auftreten, wenn der Emulator
auf eine nicht in dem Programm verwendete Adresse zugreift oder wenn der Emulator auf eine oder mehrere Adressen
zugreift, die nicht zu den in dem Programm benannten gehören. Das erfindungsgemäße Verfahren und die erfindungsgemäße
Schaltung ist so eingerichtet, daß sie ein ungültiges bzw. unzulässiges Programmereignis erkennt und das System in den
gesperrten Betriebszustand überführt. Das System liefert anschließend dem Zentralprozessor lediglich ungültige bzw. unkorrekte
Daten.
Folglich ist die vorliegende Erfindung gemäß einem Aspekt auf
ein Verfahren zum Verhindern von unautorisiertem Kopieren von Computer-Software gerichtet, das folgende Schritte aufweist:
°O (a) digitale Programminformationsdaten werden an bestimmten
CD Adressen eines Speichers in verschlüsselter Form gemäß einem
E? ersten vorgegebenen Algorithmus gespeichert, CO (b) ein Computer- bzw. Mikroprozessor wird so ausgebildet,
daß er bestimmte Funktionen lediglich ansprechend auf entschlüsselte Programminformationen ausführt, die in dem Speicher
gespeichert sind,
(c) die Adreß- und Datenleitungen des Prozessors werden mit dem Speicher über eine Verschlüsselungs/Entschlüsselungseinrichtung
verbunden, die in einem ersten Betriebszustand selektiv so betätigbar ist, daß sie die Programminformationen
entsprechend dem ersten vorgegebenen Algorithmus verschlüsselt bzw. entschlüsselt,
(d) mindestens die Adreß- oder Datenleitungen werden überwacht, um gesperrte Adreßinformationen zu erkennen,
Ce) die Verschlüsselungs/Entschlüsselungseinrichtung wird von dem ersten Betriebszustand auf einen zweiten Betriebszustand
umgeschaltet, wenn ein gesperrter Zustand von der überwachungseinrichtung
erkannt wird.
Ein weiterer Gesichtspunkt der Erfindung ist auf ein Computer-System
gerichtet, das einen Zentralprozessor zur Durchführung bestimmter Funktionen ansprechend auf digitale Programminformationen
aufweist, die in einem Speicher in verschlüsselter Form gespeichert sind, wobei der Zentralprozessor
und der Speicher durch Adreß- und Datenleitungen verbunden sind. Insbesondere ist die vorliegende Erfindung in ihrer
auf eine Vorrichtung gerichteten Form auf eine Verbesserung der Verschlüsselungs/Entschlüsselungseinrichtung gerichtet,
die zwischen den Zentralprozessor und den Speicher geschaltet ist, und die selektiv so betätigbar ist, daß sie in einem ersten
Betriebszustand die Programminformationen entsprechend
einem ersten vorgegebenen Algorithmus verschlüsselt bzw. entschlüsselt und in einem zweiten Betriebszustand die Ver-
Schlüsse lung bzw. Entschlüsselung "der' Programm in format ionen
entsprechend dem ersten vorgegebenen Algorithmus verhindert.
Eine Erfassungseinrichtung ist zum überwachen mindestens der
Adrel?.- oder der Datenleitungen vorgesehen, um ein unzulässi-CD
ges Programmereignis in Form eines "gesperrten Zustandes" zu zr erkennen. Eine Schalteinrichtung führt die Verschlüsselungs/
CO Entschlüsselungseinrichtung vom ersten Betriebszustand in den
CO
zweiten Betriebszustand ansprechend auf die Erfassung eines unzulässigen Programmereignisses über.
Weitere Gesichtspunkte der Erfindung werden für den Fachmann im Folgenden anhand einer Beschreibung von Ausführungsbeispielen
der Erfindung offenbart.
Die Merkmale der Erfindung, von denen angenommen wird, daß sie neu sind, sind insbesondere in den beigefügten Ansprüchen
gekennzeichnet. Die Erfindung zusammen mit ihren Aufgaben und Vorteilen kann am besten unter Bezugnahme auf die folgende
Beschreibung in Verbindung mit der beigefügten Zeichnung verstanden werden, in der gleiche Bezugszeichen jeweils gleiche
Elemente in den Figuren bedeuten, und in der zeigen:
Fig. 1 ein Blockschaltbild eines Computer-Systems mit einer
Software-Schutzschaltung gemäß der Erfindung, die zwischen den Zentralprozessor und den Programmspeicher
geschaltet ist,
Fig. 2 ein Funktions-Blockdiagramm der in Fig. 1 gezeigten Schutzschaltung,
Fig. 3 schematisch den Schaltplan eines bevorzugten Ausführungsbeispiels
der Schutzschaltung für gesperrte Adressen gemäß Fig. 2, und
Fig. 4 ein Blockschaltbild des Verschlüsselungs-Schaltungs-
teil des Blockschaltbildes gemäß Fig.2
Detaillierte Beschreibung eines bevorzugten Ausführungsbeispiels
Fig.1 zeigt ein Blockschaltbild eines Computerteils 10 eines
Software-gesteuerten Systems, beispielsweise eines münzbetätigten elektronischen Videospiels. Der Computer weist einen
herkömlichen Mikroprozessor 12 sowie verschiedene bekannte Speichereinrichtungen 14 zum Speichern digitaler Programminformationen
auf.
Erfindungsgemäß ist der Mikroprozessor 12 mit dem Programmspeicher
124 über eine Schutzschaltung verbunden, die als Block 16 dargestellt ist. Wie noch erläutert werden wird,
verschlüsselt die Schutzschaltung 16 die Adreßinformation für den Programmspeicher und entschlüsselt die aus dem Programmspeicher
ausgelesenen Daten. Hierzu wird über Adreßleitungen 18 die nicht verschlüsselte Adresse vom Mikroprozessor
12 in die Schutzschaltung 16 eingegeben. Adreßleitungen 20 für verschlüsselte Adressen verbinden die Schutzschaltung
16 mit dem Programmspeicher 14. In gleicher Weise verbinden Datenleitungen 22 für verschlüsselte Daten den
Programmspeicher 14 mit der Schutzschaltung 16, während Datenleitungen 24 für entschlüsselte Daten den Ausgangsanschluß
der Schaltung 16 mit dem Mikroprozessor 12 verbinden. Die Adreß- und Datenleitungen 26 und 28 verbinden die Adreß-
und Datenleitungen 18 bzw. 24 mit anderen Systemkomponenten, , wie Eingabe/Ausgabeeinrichtungen, einem RAM-Speicher (Schreib-Lese-Speicher)
oder weiteren ROM-Speichern. Der restliche Teil des Systems ist nicht im einzelnen dargestellt, da sein
Aufbau für die Erfindung nicht von Bedeutung ist. Ferner versteht es sich von selbst, daß die Art, wie der dargestellte
Computer mit verschiedenen Software-gesteuerten Systemen, wie münzbetätigten Videospielen verbunden ist, dem Stand der
Technik entspricht.
■ g- ■
Wie man sieht, weist die Schutzschaltung 16 eine Verschlüsse]
ungs/Entschlüsselungseinrichtung auf, die zwischen den
OO Zentralprozessor 12 und die Speichereinrichtung 14 geschaltet (3 ist und selektiv in einer ersten Betriebsart die Programmin-
(~> formation entsprechend einem vorgegebenen ersten Algorithmus
CD ver- bzw. entschlüsselt. Somit ist die Programminformation in der Speichereinrichtung 14 verschlüsselt gespeichert. Wenn
der Verschlüsselungsalgorithmus nicht bekannt ist, ergibt ein direktes Kopieren des Programmspeichers 14,wie es mit bekannten
elektronischen Einrichtungen ausführbar ist, lediglich nutzlose Daten. Das alleinige Verschlüsseln der in dem Programmspeicher
14 gespeicherten Daten erschwert jedoch in der Praxis nicht ein Kopieren, wenn das entschlüsselte Programm
aus dem System unter Verwendung eines sogenannten Mikroprozessoremulators anstelle des Mikroprozessors 12 ausgelesen
werden kann, oder wenn der Aufbau der Schutzschaltung "rückwärts" erfaßt werden kann. Zur Vermeidung der ersten Möglichkeit
ist als ein Merkmal der Erfindung vorgesehen, daß der Verschlüsselungs/Entschlüsselungs-Teil der Schutzschaltung
in einen zweiten Betriebszustand überführbar ist, der das Verschlüsseln und das Entschlüsseln der Programminformation
entsprechend einem ersten vorgegebenen Algorithmus verhindert. Um wirksam die zweite Möglichkeit auszuschließen, besteht
die Schutzschaltung 16 vorzugsweise aus einer integrierten Logikarray-Schaltung. Es ist extrem schwierig und
aufwendig, ein Schaltungsnetzwerk mit dem in Rede stehenden komplexen Aufbau "rückwärts" zu untersuchen. Natürlich liegen
im Bereich des fachmännischen Handelns auch andere Alternativen,
anstelle der integrierten Schaltungen andere Elemente zu verwenden, um eine "Rückwärtsuntersuchungen"
schwierig, wenn nicht praktisch unmöglich zu gestalten.
Zur Erläuterung des Aufbaus und der Funktion eines bevorzugten Ausführungsbeispiels der Schutzschaltung 16 soll im Folgenden
auf Fig. 2 Bezug genommen werden, die ein Blockdiagram der verschiedenen Bauteile der Schaltung 16 zeigt. Ins-
besonderr weist die Schaltung 16 eine Verschlüsselungs- bzw.
Verzeichnungsschaltung 30 mit einer Anzahl von Eingangsanschlüssen entsprechend der Zahl der Adreß- und Datenleitungen
18 bzw. 22 und einer Anzahl von Ausgangsanschlüssen ent-O sprechend der Zahl der Adreß- und Datenleitungen 20 bzw. 24
E? auf. Wie im einzelnen beschrieben werden wird, ist die ge- CO zeigte Verschlüsselungsschaltung 30 selektiv entsprechend
einem von zwei unterschiedlichen Verschlüsselungs/Entschlüsselungs-Algorithmen
in Abhängigkeit vom Binärzustand eines Eingangssignals der Schaltung 30 auf einer Verschlüsselungs-Wählleitung
betreibbar. Ein erster vorgegebener Algorithmus entsprechend der ersten Betriebsart wird während des normalen
Betriebes verwendet, um in geeigneter Weise die Programminformation in dem Speicher 14 zu verschlüsseln bzw. zu entschlüsseln.
Der andere Algorithmus, der der zweiten Betriebsart entspricht, wird verwendet, wenn die Verschlüsselungs-Wählleitung
beispielsweise durch ein binäres Eingangssignal auf der Leitung 32 aktiviert wird. In diesem Falle entsprechen
die an den Mikroprozessor abgegeben Daten nicht der im Speicher 14 gespeicherten verschlüsselten Programmfunktion
und das System funktioniert falsch.
Die Verschlüsselungsschaltung 30 wird von ihrer ersten bzw. normalen Betriebsart in die zweite, unbrauchbare Betriebsart
durch einer Erfassungseinrichtung 34 und eine Schalteinrichtung 36 umgeschaltet, die in Serie zwischen die Adreßleitüngen
18 und die Vershlüsselungs-Wählleitungen geschaltet sind. Die Erfassungseinrichtung 34 überwacht mindenstens die Adreß-
oder die Datenleitungen, in dem gezeigten Fall die Adreßleitungen 18 über den Eingangsanschluß 38, um ein unerlaubtes
Programmereignis, d.h. einen gesperrten Zustand zu erfassen. Das Ausgangssignal der Erfassungseinrichtung 34 wird über einen
Leiter 40 und einen in Serie geschalteten Inverter 42 an den einen Eingangsanschluß der Schalteinrichtung 36 angelegt,
die beispielsweise bei dem gezeigten Ausführungsbeispiel eine herkömliche binäre Flipflopschaltung sein kann. Die Schalteinrichtung
36 schaltet die Verschlüsselungsschaltung 30 von de-
ren erster Betriebsart auf deren zweite Betriebsart urn, wenn der Inverter 42 ein Eingangssignal mit niedrigem Pegel (Nullsignal) an den Flipflop 36 anlegt. Dieses Ereignis tritt bei
^ dem vorliegenden Ausführungsbeispiel dann und nur dann auf, O wenn ein gesperrter Zustand in Form einer gesperrten Adresse
(T) von der Erfassungseinrichtung 34 erfaßt wird.
Da die Schalteinrichtung 36 bistabil ist, verbleibt die Verschlüsselungsschaltung
in ihrer zweiten Betriebsart, bis sie rückgesetzt wird. Hierzu ist eine Rücksetzerfaßungseinrichrichtung
44 vorgesehen, die bei diesem Ausführungsbeispiel in gleicher Weise mit den Adreßleitungen 18 über einen Eingangsanschluß
46 verbunden ist. Das Erkennen eines bestimmten Rücksetzsignals auf der Adressleitung 18 führt dazu, daß ein
Rücksetzsignal an einen Lösch- bzw. Rücksetzeingang 48 der Schalteinrichtung 36 über einen Inverter 50 angelegt wird, um
so die Verschlüsselungsschaltung in ihre ersten Betriebszustand rückzusetzen. Die Rücksetzschaltung 44 kann einen ähnlichen
Aufbau und eine ähnliche Arbeitsweise wie die Erfassungsschaltung 3M für gesperrte Adressen haben mit der Ausnahme,
daß sie lediglich auf ein Eingangssignal anspricht.
Im folgenden soll auf Fig.3 Bezug genommen werden, die ein
Ausführungsbeispiel der Erfassungseinrichtung aus Fig.2 im einzelnen zeigt. Zur Vereinfachung soll angenommen werden,
daß die Erfassung für 4 Adreßleitungen 18 ausgeführt wird. In der Zeichnung sind diese 4 Leitungen mit A0-A3 bezeichnet.
Die Zahl der überwachten Leitungen ist jedoch Sache des Konstrukteurs. Jede der drei Leitungen ist selektiv mit den Eingängen
dreier UND-Glieder 52, 54 und 56 verbunden. Die Ausgangsanschlüsse der einzelnen UND-Glieder sind mit den Eingangsanschlüssen
eines NAND-Gliedes 58 verbunden, dessen Ausgangsanschluß mit der Leitung 40 verbunden ist. Insbesondere
ist die Adreßleitung AO direkt mit den UND-Gliedern 52 und 56 und über einen Inverter 60 mit dem UND-Glied 54
verbunden. Die Adressleitung A1 ist direkt mit den UND-Gliedern 54 und 56 und über einen Inverter 64 mit dem UND-Glied
- 09 -
56 verbunden. Die Adressleitung A2 ist direkt mit den UND- . Gliedern 52 und 54 und über einen Inverter 64 mit dem UND-Glied
56 verbunden- Letztlich ist die Adreßleitung A3 direkt mit dem UND-Glied 54 und über einen Inverter 66 mit den
O UND-Gliedern 52 und 56 verbunden. Bei dem gezeigten Ausfüh-O5
rungsbeispiel tritt am Ausgang 40 immer dann ein Signal mit ^ hohem Pegel bzw. ein Binärzustand "Ein"-Signal auf, wenn
CO
eine der drei folgenden Adressen auf den Adreßleitungen A0-A3 erscheint: 0101, 1110, und 0011.
Wenn eine der drei obengenannten Adressen auf den Adreßleitungen A0-A3 erscheint, wird ein Sperrsignal in Form eines
binären "Nullsignals" an den Eingangsanschluß der Schalteinrichtung 36 angelegt, wodurch die Verschlüsselungs-Wählleitung
aktiviert wird. Bei allen anderen von dem Mikroprozessor angegebenen Adressen bleibt das Signal am Ausgangsanschluß
40 der Erfassungsschaltung 31* im nichtaktivierten, d.h. normalen
Zustand.
Im Folgenden soll auf Fig. 5 Bezug genommen werden, in der ein Blockschaltbild der Verschlüsselungs/Entschlüsselungsschaltung
30 dargestellt ist. Insbesondere sind bei dem gezeigten Ausführungsbeispiel zwischen die Adreßleitungen 18
und 20 zwei Codier-Netzwerke mit PROM's geschaltet, die durch die Blöcke 54 und 56 dargestellt werden. Die Netzwerke
54 und 56 sind mit parallelen Leitungen 18A,18B bzw. 2OA und 2OB der Eingabe- und Ausgabe-Adreßleitungen 18 und 20 verbunden.
In gleicher Weise sind bei dem gezeigten Ausführungsbeispiel parallel zwischen die Datenleitungen 22 und 24 zwei Decodiernetzwerke
58 bzw. 60 mit PROM's geschaltet, die mit paralellen Leitungen 22A, 22B bzw. 24A und 24B der Eingabe- und Ausgabe-Datenleitungen
22 bzw. 24 verbunden sind. Natürlich ist es auch möglich, die Verschlüsselungs/Entschlüsselungs-Netzwerke
lediglich mit den Adressen- oder den Datenleitungen anstelle mit beiden Leitungen zu verbinden.
- 10 -
Die beiden Codier-Netzwerke 54 und 56 sind alternativ und selektiv
ansprechend aus ein binäres Eingangssignal auf der Verschlüsselungsleitung
betreibbar. Hierzu wird die Verschlüsselungsleitung 32 über einen Inverter 62 mit einem Steuerein-CD
gang des Netzwerks 56 und direkt mit einem Steuereingang des *z? Netzwerks 54 über einen Leiter 66 verbunden. Die Steuerein-CO
gange der Netzwerke 58 und 60 sind entsprechend mit Leitern
66 bzw. 64 verbunden, so daß die Netzwerke 54 und 58 sowie
und 60 immer übereinstimmend in Betrieb bzw. außer Betrieb gesetzt werden.
Die verschiedenen Codier/Decodier-Netzwerke können einen gleichen Grundaufbau haben, es ist jedoch auch möglich, sie
mit unterschiedlichen vorgegebenen Algoritrhmen zu betrieben.
Beispielsweise kann der Verschlüsselungs/Entschlüsselungs-Algorithmus
einfach darin bestehen, daß zwei Adressleitungen vertauscht sind; er kann auch wesentlich komplexer darin bestehen,
daß mit einem PROM eine "1 zu 1"-Zuordnung implementiert ist, wie dies schematisch in Fig. 4 dargestellt ist.
Ferner können auch mehr als zwei Algorithmen in der Verschlüsselungsschaltung verwendet werden, so daß in der Verschlüsselungsschaltung
jeder Adreßstelle mehr als zwei Datenwerte entsprechen. Eine weitere Alternative ist es, während eines
normalen Schaltungsbetriebs zwischen Verschlüsselungsalgorithmen zu springen. Das Umschalten zwischen den Algorithmen
kann in einer bestimmten, zeitbezogenen Weise hinsichtlich der Mikroprozessoruhr erfolgen. Somit besteht im allgemeinen
Fall der erste Algorithmus aus komplexen Unteralgorithmen. Nach fachmännsichem Handeln ist dabei eine große Zahl von
Möglichkeiten für die Implementierung der Codier/Decodier-Netzwerke 54, 56, 58 und 60 möglich.
Die Erfassungs- und Rücksetzschaltung, die vorstehend erläutert worden sind, können in vielen Alternativen entsprechend
der Lehre dieser Erfindung aufgebaut werden. Der versuchte Zugriff auf eine einzige, normalerweise unbenutzte
- 11 -
• 43·.;; : ■.: :
Adressteile kann alleine bereits die Erfassungsschaltung betätigen;
daneben können hierzu auch beträchtliche Abweichungen von der normalen Programm-Betriebsweise verwendet werden.
Beispielsweise kann die Erfassungseinrichtung lediglich an-
*— ■ .
O sprechend auf den Zugriff oder den Nichtzugriff auf eine
£=? Folge von Adressen den Betrieb "sperren"; ferner kann das
CO Auslösen eines "Sperrvorgangs" entweder von Adreßkombinatio-
nen oder von deren Permutationen abhängen. Nach dem Stand der Technik ist es offensichtlich, daß eine große Zahl von
Möglichkeiten gegeben ist, unter Berücksichtigung von kaufmännischen und sicherheitstechnischen Aspekten die Erfassungsund
die Rücksetzschaltung zu realisieren.
Beim Betrieb kann der Mikroprozessor 12 mit dem Speicher 14 über die Schutzschaltung 16 in Verbindung treten, wobei der
normale Systembetrieb erfolgt, solange das Programm abläuft, um auf Adreßstellen und/oder Rücksprungdaten zuzugreifen,
wie dies durch den normalen Programmbetrieb vorgeschrieben ist. Die verschlüsselte Form der Daten in dem Programmspeicher
schützt gegen das direkte Kopieren von Pogramminformationen, wenn nicht der Kopierende die Funktionsweise der
Schutzschaltung 16 "rückwärts" entschlüsselt. Wie bereits erläutert worden ist, ist es vergleichsweise einfach, die
Schutzschaltung 16 zu entwerfen und einzubauen. Es ist jedoch sehr schwierig, wenn nicht unmöglich, die Funktion "rückwärts
herauszubekommen".
- 12 -
Eine momentane Abweichung von dem normalen Betrieb"des Mikroprozessors,
die von der Erfassungseinrichtung 34 erfaßt
wird, sperrt die Schalteinrichtung 36, so daß die Verschlüs- ^ selungs-Wählleitung 32 angesteuert wird. Ein Steuersignal auf
O der Leitung 32 schaltet die Verschlüsselungs/Entschlüsselungs
S? schaltung 30 von ihrer ersten Betriebsart in ihre zweite Beco
triebsart um. In diesem Falle gelangen zu dem Mikroprozessor
lediglich unbrauchbare Daten. Eine Abweichung von dem Normalbetrieb
des Mikroprozessors ist unvermeidlich, wenn der Prozesor 12 durch einen Emulator ersetzt wird, um das in dem
Speicher 14 gespeichert Programm zu "dumpen" oder zu lesen.
Die Schutzschaltung 16 wird in ihren ersten Betriebszustand lediglich durch ein bestimmt codiertes Eingangssignal auf dem
Adressbus 18 rückgesetzt. Damit führt jeder erkannte Kopierversuch des Programms dazu, daß das System in einer falschen
Betriebsart ohne Rückkehr zur richtigen Betriebsart vebleibt; dies verhindert wirksam das Entschlüsseln des Programmspeichers.
Das System verbleibt in seiner ersten Betriebsart, solange keine Abweichung vom normalen Programmablauf festgestellt
wird.
Vorstehend ist die Erfindung anhand eines Ausführungsbeispiels beschrieben worden. Andere Realisierung sind jederzeit
möglich, ohne den erfindungsgemäßen Grundgedanken zu ver
lassen. Das vorstehend beschriebene Ausführungsbeispiel ist in keinster Weise einschränkend; auch ist die Erfindung nicht
auf Details beschränkt. Die Realisierung kann vielmehr im Bereich der Ansprüche erfolgen.
- 13 -
Claims (1)
- Patentansprüche1. Verfahren zum Verhindern von unauthorisiertem Kopieren vonComputer-Software,gekennzeichnet durch die folgenden Schritte:(a) digitale Programminformationen werden an bestimmten Adressen einer Speichereinrichtung in verschlüsselter Form gemäß einem ersten Algorithmus gespeichert,(b) ein Computerprozessor führt vorgegebene Funktionen lediglich ansprechend auf entschlüsselte Programminformationen entsprechend dem Speicherinhalt aus,(c) die Adreß- und die Datenleitungen des Computerprozessor werden mit der Speichereinrichtung über eine Verschlüsselungs-Entschlüsselungs-Einrichtung verbunden, die selektiv in einer ersten Betriebsart zum Verschlüsseln und Entschlüsseln der Programminformationen gemäß einem ersten vorgegebenen Algorithmus und in einer zweiten Betriebsart zum Verhindern der Verschlüsselung/Entschlüsselung der Programminformationen gemäß dem ersten vorgegebenen Algorithmus betreibbar ist,(d) mindestens die Adreß- oder die Datenleitungen werden zur Erfassung gesperrter Adreßinformationen überwacht, und(e) die Verschlüsselungs/Entschlüsselungs-Einrichtung wird von der ersten Betriebsart auf die zweite Betriebsart umgeschaltet, wenn eine gesperrte Adreßinformation von der Überwachungseinrichtung erfaßt wird.2. Verfahren nach Anspruch 1,dadurch gekennzei chnet , daß die zweite Be-OO triebsart einen zweiten vorgegebenen Algorithmus umfaßt.^ 3- Verfahren nach Anspruch 1,CO dadurch gekennzeichnet, daß als gesperrteAdressen bestimmte Adressen ausgewählt werden, auf die während des normalen Betriebs des Computersprogramms nicht zugegriffen wird.4. Verfahren nach Anspruch 1,dadurch gekennzeichnet , daß als gesperrte Adresse eine Folge von Programmadressen ausgewählt wird, auf die während des normalen Programmablaufs nicht in Folge zugegriffen wird.5. Verfahren nach Anspruch 1,dadurch gekennzeichnet, daß mindestens ein ungültiges Programmereignis als gesperrte Adresse ausgewählt wird.6. Verfahren nach Anspruch 1,dadurch gekennzeichnet , daß die Verbindung des Computerprozessors mit der Speichereinrichtung über mindestens zwei parallele Codier/Decodier-Schaltungen erfolgt, von denen mindestens eine Schaltung zu einem Zeitpunkt betreibbar ist, und von denen lediglich eine Schaltung gemäß dem ersten vorgegebenen Algorithmus betreibbar ist.7- Verfahren nach Anspruch 1, ■ dadurch gekennzeichnet, daß in einem weiteren Schritt die Verschlüsselungs/Entschlüsselungseinrichtung ansprechend auf ein bestimmtes Rücksetzsignal rückgesetzt wird.8. Verfahren nach Anspruch 1,— 2 —Λ.dadurch ' gekennzeichnet , daß in dem Schaltschritt die Verschlüsselungs/Entschlüsselungseinrichtung in der zweiten Betriebsart ansprechend auf die momentane °Ο Erfassung einer gesperrten Adresse verriegelt wird.° 9. Computiersystem mit einem Zentralprozessor zuni Durchführen CO vorgegebener Funktionen entsprechend einer digitalen Pro-gramminformation, die in verschlüsselter Form in einer Speichereinrichtung gespeichert ist, und der mit der Speichereinrichtung über Adreß- und Datenleitungen in Verbindung steht,dadurch gekennzeichnet , daß (a) eine Verschlüsselungs/Entschlüsselungseinrichtung zwiden Zentralprozessor und die Speichereinrichtung geschaltet ist, die selektiv in einer ersten Betriebsart zum Verschlüsseln und Entschlüsseln von Programminformationen entsprechend einem ersten vorgegebene Algorithmus und in einer zweiten Betriebsart zur Verhinderung des Verschlüsseins und Entschlüsseins der Programminformationen entsprechend dem ersten vorgegebenen Algorithmus betreibbar ist, (b.) eine Erfassungseinrichtung, die mindestens die Adreß- oder Datenleitungen zur Erfassung eines ungültigen Programmereignisses erfaßt, und(c) eine Schalteinrichtung, die die Verschlüsselungs/Entschlüsselungs-Einrichtung aus der ersten Betriebsart in die zweite Betriebsart ansprechend auf die Erfassung eines ungültigen Programmereignisses überführt.10. Computersystem nach Anspruch 9,dadurch gekennzeichnet , daß die Verschlüsselungs/Entschlüsselungseinrichtung parallele Codier/ Decodierschaltkreise aufweist, die jeweils die Programminformation ansprechend auf den ersten und den zweiten vorgegebenen Algorithmus verschlüsseln bzw. entschlüsseln.11. Computersystem nach Anspruch 10,dadurch gekennzeichnet , daß die Erfassungs-einrichtung eine Schaltung aufweist, die ein Ausgangssignal ansprechend auf ein ungültiges Programmereignis abgibt.12. Computersystem nach Anspruch 11,O dadurch gekennzeichnet , daß die Schaltein-^ richtung eine Schaltung aufweist, die die Verschlüsselungs/°° Entschlüsselungs-Einrichtung in der zweiten Betriebsart an-sprechend auf die momentane Erfassung eines ungültigen Programmereignisses hält.13- Computersystem nach Anspruch 12, gekennzeichnet durch eine Rücksetzeinrichtung, die die Verschlüsselungs/Entschlüsselungs-Einrichtung in die ersten Betriebsart rücksetzt.14. Computersystem nach Anspruch 9,dadurch gekennzeichnet , daß die Verschlüsselungs/Entschlüsselungseinrichtung ein Logikarray aufweist.15. Verfahren zum Verhindern von unauthorisiertem Kopieren von in ROM gespeicherten audiovisuellen Anzeigeinformationen für ein elektronisches Videospiel,
gekennzeichnet durch die folgenden Schritte:(a) die audiovisuellen Anzeigeinformationen des elektronischen Videospiels werden in einem ROM-Speicher digital in einer verschlüsselten Form gespeichert,(b) ein Mikroprozessor, ein Anzeigemonitor und ein Tonsystem, die eine audiovisuelle Anzeige für das Spiel entsprechend der verschlüsselt in dem Speicher gespeicherten Programminformation erzeugen, werden bereitgestellt,(c) der Mikroprozessor wird mit dem ROM-Speicher über eine Verschlüsselungs/Entschlüsselungs-Einrichtung verbunden, die selektiv in einer ersten Betriebsart zum Verschlüseln und Entschlüsseln von audiovisuellen Programminformationen entsprechend einem ersten vorgegebenen Algorithmus zur Darstellung des Spiels in einem entschlüsselten audiovisuellen Format und in einer zweiten Betriebsart zum Verhindern der-M-Verschlüsselung/Entschlüsselung der Anzeigeinformationen
entsprechend dem ersten vorgegebenen Algorithmus betreibbar ist,(d) die digitalen zwischen dem Mikroprozessor und dem ΚΟΜΟ Speicher ausgetauschten Programminformationen werden zur
(J5 Identifizierung eines ungültigen Programmereignisses über- <^> wacht,
OO(e) die Verschlüsselungs/Entschlüsselungs-Einrichtung wird von der ersten Betriebsart in die zweite Betriebsart umgeschaltet, wenn ein ungültiges Programmereignis festgestellt wird, so daß hierdurch das Kopieren der verschlüsselten audiovisuellen Programminformation, die in dem ROM-Speicher gespeichert ist, verhindert wird.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US06/380,771 US4525599A (en) | 1982-05-21 | 1982-05-21 | Software protection methods and apparatus |
Publications (1)
Publication Number | Publication Date |
---|---|
DE3390018T1 true DE3390018T1 (de) | 1985-05-30 |
Family
ID=23502378
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19833390018 Withdrawn DE3390018T1 (de) | 1982-05-21 | 1983-05-23 | Verfahren und Vorrichtung zum Schutz von Software |
Country Status (5)
Country | Link |
---|---|
US (1) | US4525599A (de) |
EP (1) | EP0112367A1 (de) |
DE (1) | DE3390018T1 (de) |
GB (1) | GB2129986A (de) |
WO (1) | WO1983004356A1 (de) |
Families Citing this family (159)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3686910A (en) * | 1968-03-20 | 1972-08-29 | Western Electric Co | Methods of and apparatus for hydrostatic forming |
US4757468A (en) * | 1982-09-22 | 1988-07-12 | Intel Corporation | Authenticated read-only memory |
EP0137995B1 (de) * | 1983-10-14 | 1990-10-17 | Kabushiki Kaisha Toshiba | Einchip Mikrocomputer mit verschlüsselbarer Funktion des Programmspeichers |
US4716586A (en) * | 1983-12-07 | 1987-12-29 | American Microsystems, Inc. | State sequence dependent read only memory |
GB2158622A (en) * | 1983-12-21 | 1985-11-13 | Goran Anders Henrik Hemdal | Computer controlled systems |
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 |
US4847902A (en) * | 1984-02-10 | 1989-07-11 | Prime Computer, Inc. | Digital computer system for executing encrypted programs |
US4646234A (en) * | 1984-02-29 | 1987-02-24 | Brigham Young University | Anti-piracy system using separate storage and alternate execution of selected proprietary and public portions of computer programs |
DE3671119D1 (de) * | 1985-07-03 | 1990-06-13 | Siemens Ag | Integrierte schaltung und verfahren zum sichern von geheimen codedaten. |
AT390148B (de) * | 1985-08-22 | 1990-03-26 | Novomatic Automatenindustrie U | Anordnung zum entschluesseln von befehlen |
US4719566A (en) * | 1985-10-23 | 1988-01-12 | International Business Machines Corporation | Method for entrapping unauthorized computer access |
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 |
US5014234A (en) * | 1986-08-25 | 1991-05-07 | Ncr Corporation | System with software usage timer and counter for allowing limited use but preventing continued unauthorized use of protected software |
US5146575A (en) * | 1986-11-05 | 1992-09-08 | International Business Machines Corp. | Implementing privilege on microprocessor systems for use in software asset protection |
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 |
AU1967488A (en) * | 1987-06-03 | 1989-01-04 | Personal Cad Systems, Inc. | Security system having selective software program locks utilizing removable pla keys to allow hardware security lock updates |
US4999806A (en) * | 1987-09-04 | 1991-03-12 | Fred Chernow | Software distribution system |
US4914697A (en) * | 1988-02-01 | 1990-04-03 | Motorola, Inc. | Cryptographic method and apparatus with electronically redefinable algorithm |
JPH0752388B2 (ja) * | 1988-08-03 | 1995-06-05 | 三菱電機株式会社 | Icメモリカード |
GB2222899B (en) * | 1988-08-31 | 1993-04-14 | Anthony Morris Rose | Securing a computer against undesired write operations or from a mass storage device |
US5095525A (en) * | 1989-06-26 | 1992-03-10 | Rockwell International Corporation | Memory transformation apparatus and method |
US5022077A (en) * | 1989-08-25 | 1991-06-04 | International Business Machines Corp. | Apparatus and method for preventing unauthorized access to BIOS in a personal computer system |
GB9012949D0 (en) * | 1989-08-25 | 1990-08-01 | Ibm | An apparatus and method for loading bios from a diskette in a personal computer system |
US5136713A (en) * | 1989-08-25 | 1992-08-04 | International Business Machines Corporation | Apparatus and method for decreasing the memory requirements for bios in a personal computer system |
US5210875A (en) * | 1989-08-25 | 1993-05-11 | International Business Machines Corporation | Initial bios load for a personal computer system |
US5081675A (en) * | 1989-11-13 | 1992-01-14 | Kitti Kittirutsunetorn | System for protection of software in memory against unauthorized use |
US5463778A (en) * | 1989-11-16 | 1995-10-31 | Texas Instruments Incorporated | User controlled trap handler |
US5230052A (en) * | 1990-10-01 | 1993-07-20 | International Business Machines Corp. | Apparatus and method for loading bios into a computer system from a remote storage location |
GB2248702B (en) * | 1990-10-11 | 1994-11-02 | Viserge Limited | Data-processing apparatus |
DE4115152C2 (de) * | 1991-05-08 | 2003-04-24 | Gao Ges Automation Org | Kartenförmiger Datenträger mit einer datenschützenden Mikroprozessorschaltung |
US5251909A (en) * | 1991-05-28 | 1993-10-12 | Reed Michael J | Secured high throughput data channel for public broadcast system |
US5610981A (en) * | 1992-06-04 | 1997-03-11 | Integrated Technologies Of America, Inc. | Preboot protection for a data security system with anti-intrusion capability |
JP2953267B2 (ja) * | 1992-10-13 | 1999-09-27 | コナミ株式会社 | 画像作成装置における外部メモリ制御装置 |
US5530752A (en) * | 1994-02-22 | 1996-06-25 | Convex Computer Corporation | Systems and methods for protecting software from unlicensed copying and use |
JPH07295893A (ja) * | 1994-04-28 | 1995-11-10 | Nec Corp | マイクロプロセッサのメモリ情報読込装置及び読込方法 |
US5881287A (en) * | 1994-08-12 | 1999-03-09 | Mast; Michael B. | Method and apparatus for copy protection of images in a computer system |
US5592609A (en) * | 1994-10-31 | 1997-01-07 | Nintendo Co., Ltd. | Video game/videographics program fabricating system and method with unit based program processing |
US5680533A (en) * | 1994-10-31 | 1997-10-21 | Nintendo Co., Ltd. | Videographics program/video game fabricating system and method |
US6115036A (en) * | 1994-10-31 | 2000-09-05 | Nintendo Co., Ltd. | Video game/videographics program editing apparatus with program halt and data transfer features |
US5680534A (en) * | 1994-10-31 | 1997-10-21 | Nintendo Co., Ltd. | Video game/videographics program fabricating system and method with superimpose control |
US5599231A (en) * | 1994-10-31 | 1997-02-04 | Nintendo Co., Ltd. | Security systems and methods for a videographics and authentication game/program fabricating device |
US7095854B1 (en) | 1995-02-13 | 2006-08-22 | 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 |
US7133845B1 (en) | 1995-02-13 | 2006-11-07 | Intertrust Technologies Corp. | System 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 |
EP1431864B2 (de) * | 1995-02-13 | 2012-08-22 | Intertrust Technologies Corporation | Systeme und Verfahren zur gesicherten Transaktionsverwaltung und elektronischem Rechtsschutz |
US7124302B2 (en) | 1995-02-13 | 2006-10-17 | Intertrust Technologies Corp. | Systems and methods for secure transaction management and electronic rights protection |
US5892900A (en) | 1996-08-30 | 1999-04-06 | Intertrust Technologies Corp. | Systems and methods for secure transaction management and electronic rights protection |
US6157721A (en) | 1996-08-12 | 2000-12-05 | Intertrust Technologies Corp. | Systems and methods using cryptography to protect secure computing environments |
US7069451B1 (en) | 1995-02-13 | 2006-06-27 | Intertrust Technologies Corp. | Systems 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 |
US6948070B1 (en) | 1995-02-13 | 2005-09-20 | Intertrust Technologies Corporation | Systems and methods for secure transaction management and electronic rights protection |
US7143290B1 (en) | 1995-02-13 | 2006-11-28 | Intertrust Technologies Corporation | Trusted and secure techniques, systems and methods for item delivery and execution |
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 |
US5643086A (en) | 1995-06-29 | 1997-07-01 | Silicon Gaming, Inc. | Electronic casino gaming apparatus with improved play capacity, authentication and security |
USRE39369E1 (en) | 1995-06-29 | 2006-10-31 | Igt | Electronic casino gaming system with improved play capacity, authentication and security |
US7063615B2 (en) * | 1995-06-29 | 2006-06-20 | Igt | Electronic gaming apparatus with authentication |
KR100254029B1 (ko) * | 1995-10-09 | 2000-04-15 | 모리시타 요이찌 | 데이터 전송장치 및 데이터전송방법 |
US6088452A (en) * | 1996-03-07 | 2000-07-11 | Northern Telecom Limited | Encoding technique for software and hardware |
DE69729495T2 (de) * | 1996-03-08 | 2004-10-28 | Matsushita Electric Industrial Co., Ltd., Kadoma | Bildinformationsverarbeitungssystem und Mikroprozessor für die geschützte Reproduktion von audiovisuellen Daten |
US5754647A (en) * | 1996-03-27 | 1998-05-19 | United Microelectronics Corporation | Software protection apparatus and the method of protection utilizing read-write memory means having inconsistent input and output data |
US5784459A (en) * | 1996-08-15 | 1998-07-21 | International Business Machines Corporation | Method and apparatus for secure, remote swapping of memory resident active entities |
US20050021477A1 (en) * | 1997-01-29 | 2005-01-27 | Ganapathy Krishnan | Method and system for securely incorporating electronic information into an online purchasing application |
US7062500B1 (en) | 1997-02-25 | 2006-06-13 | Intertrust Technologies Corp. | Techniques for defining, using and manipulating rights management data structures |
JP3277139B2 (ja) * | 1997-03-13 | 2002-04-22 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 入力ビット列暗号化装置及び方法 |
US6272637B1 (en) * | 1997-04-14 | 2001-08-07 | Dallas Semiconductor Corporation | Systems and methods for protecting access to encrypted information |
US20020025852A1 (en) * | 2000-09-29 | 2002-02-28 | Alcorn Allan E. | Gaming apparatus with portrait-mode display |
US6237137B1 (en) * | 1997-10-15 | 2001-05-22 | Dell Usa, L.P. | Method and system for preventing unauthorized access to a computer program |
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 |
JPH11176091A (ja) * | 1997-12-15 | 1999-07-02 | Hitachi Ltd | ディジタル情報入出力装置、受信装置、記録装置、および再生装置 |
US6473861B1 (en) * | 1998-12-03 | 2002-10-29 | Joseph Forte | Magnetic optical encryption/decryption disk drive arrangement |
US6408387B1 (en) * | 1999-01-22 | 2002-06-18 | Intel Corporation | Preventing unauthorized updates to a non-volatile memory |
US6681212B1 (en) | 1999-04-23 | 2004-01-20 | Nianning Zeng | Internet-based automated system and a method for software copyright protection and sales |
US7430670B1 (en) | 1999-07-29 | 2008-09-30 | Intertrust Technologies Corp. | Software self-defense systems and methods |
US20070288765A1 (en) * | 1999-12-22 | 2007-12-13 | Kean Thomas A | Method and Apparatus for Secure Configuration of a Field Programmable Gate Array |
GB9930145D0 (en) * | 1999-12-22 | 2000-02-09 | Kean Thomas A | Method and apparatus for secure configuration of a field programmable gate array |
US20010034838A1 (en) * | 2000-01-14 | 2001-10-25 | Motoshi Ito | Control program, device including the control program, method for creating the control program, and method for operating the control program |
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 |
US7043641B1 (en) * | 2000-03-08 | 2006-05-09 | Igt | Encryption in a secure computerized gaming system |
CA2402389A1 (en) * | 2000-03-08 | 2002-09-19 | Shuffle Master, Inc. | Computerized gaming system, method and apparatus |
US7988559B2 (en) | 2001-03-08 | 2011-08-02 | Igt | Computerized gaming system, method and apparatus |
US6990387B1 (en) * | 2000-05-18 | 2006-01-24 | Intel Corporation | Test system for identification and sorting of integrated circuit devices |
JP4683442B2 (ja) * | 2000-07-13 | 2011-05-18 | 富士通フロンテック株式会社 | 処理装置および集積回路 |
ATE357026T1 (de) * | 2000-07-18 | 2007-04-15 | Simplex Major Sdn Bhd | Vorrichtung zum schutz digitaler daten |
US7051211B1 (en) | 2000-08-21 | 2006-05-23 | International Business Machines Corporation | Secure software distribution and installation |
GB2384593B (en) * | 2000-08-21 | 2004-12-01 | Int Game Tech | A method of operating a gaming system and gaming device |
US7350083B2 (en) | 2000-12-29 | 2008-03-25 | Intel Corporation | Integrated circuit chip having firmware and hardware security primitive device(s) |
CN102024347A (zh) * | 2001-01-09 | 2011-04-20 | 托普科德公司 | 用于编码竞赛的系统和方法 |
US20020095382A1 (en) * | 2001-01-10 | 2002-07-18 | Hiroki Taoka | Content decryption device |
US7203841B2 (en) * | 2001-03-08 | 2007-04-10 | Igt | Encryption in a secure computerized gaming system |
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 |
US7162036B2 (en) | 2001-08-06 | 2007-01-09 | Igt | Digital identification of unique game characteristics |
US6685567B2 (en) * | 2001-08-08 | 2004-02-03 | Igt | Process verification |
DE10142537A1 (de) * | 2001-08-30 | 2003-03-20 | Adp Gauselmann Gmbh | Verfahren zur Aktivierung einer in einem Gehäuse angeordneten Steuereinheit, die gegen ein Ausspähen von Daten geschützt ist |
CA2460046C (en) | 2001-09-10 | 2014-06-10 | Igt | Method for developing gaming programs compatible with a computerized gaming operating system and apparatus |
US7853803B2 (en) | 2001-09-28 | 2010-12-14 | Verizon Corporate Services Group Inc. | System and method for thwarting buffer overflow attacks using encrypted process pointers |
US8708828B2 (en) | 2001-09-28 | 2014-04-29 | Igt | Pluggable modular gaming modifiers and configuration templates for gaming environments |
US6902481B2 (en) | 2001-09-28 | 2005-06-07 | Igt | Decoupling of the graphical presentation of a game from the presentation logic |
US7931533B2 (en) * | 2001-09-28 | 2011-04-26 | Igt | Game development architecture that decouples the game logic from the graphics logics |
WO2003045519A1 (en) * | 2001-11-26 | 2003-06-05 | Igt | Pass-through live validation device and method |
US20030120938A1 (en) * | 2001-11-27 | 2003-06-26 | Miki Mullor | Method of securing software against reverse engineering |
US7130911B2 (en) * | 2002-02-11 | 2006-10-31 | Intel Corporation | Method for monitoring unauthorized access to data stored in memory buffers |
US8776042B2 (en) * | 2002-04-08 | 2014-07-08 | Topcoder, Inc. | Systems and methods for software support |
US20060248504A1 (en) * | 2002-04-08 | 2006-11-02 | Hughes John M | Systems and methods for software development |
US7778866B2 (en) * | 2002-04-08 | 2010-08-17 | Topcoder, Inc. | Systems and methods for software development |
US7770143B2 (en) * | 2006-01-20 | 2010-08-03 | Hughes John M | System and method for design development |
US7292990B2 (en) * | 2002-04-08 | 2007-11-06 | Topcoder, Inc. | System and method for software development |
US6962530B2 (en) | 2002-04-25 | 2005-11-08 | Igt | Authentication in a secure computerized gaming system |
US20040015709A1 (en) * | 2002-07-18 | 2004-01-22 | Bei-Chuan Chen | Software delivery device and method for providing software copy protection |
KR100474526B1 (ko) * | 2002-07-19 | 2005-03-10 | 매그나칩 반도체 유한회사 | 외부 프로그램 코드를 보호할 수 있는 컨트롤 시스템 |
US7926113B1 (en) | 2003-06-09 | 2011-04-12 | Tenable Network Security, Inc. | System and method for managing network vulnerability analysis systems |
US7533370B2 (en) * | 2003-10-28 | 2009-05-12 | Exent Technologies, Ltd. | Security features in on-line and off-line delivery of applications |
US7802095B2 (en) * | 2004-02-03 | 2010-09-21 | Music Public Broadcasting, Inc. | Method and system for preventing unauthorized recording of media content on a Macintosh operating system |
US7761918B2 (en) * | 2004-04-13 | 2010-07-20 | Tenable Network Security, Inc. | System and method for scanning a network |
US7770027B2 (en) * | 2004-11-15 | 2010-08-03 | Nintendo Co., Ltd. | Semiconductor memory device |
JP4119881B2 (ja) * | 2004-11-15 | 2008-07-16 | 株式会社メガチップス | 半導体メモリ装置 |
JP4630643B2 (ja) * | 2004-11-18 | 2011-02-09 | 株式会社メガチップス | 半導体メモリおよび半導体メモリのテスト方法 |
US20060136746A1 (en) * | 2004-12-18 | 2006-06-22 | Al-Khateeb Osama O M | Security system for preventing unauthorized copying of digital data |
EP1889163A1 (de) * | 2005-05-27 | 2008-02-20 | Delphi Technologies, Inc. | System und verfahren zur umgehung der ausführung eines algorithmus |
US7865423B2 (en) * | 2005-08-16 | 2011-01-04 | Bridgetech Capital, Inc. | Systems and methods for providing investment opportunities |
US9313027B2 (en) * | 2005-12-29 | 2016-04-12 | Proton World International N.V. | Protection of a calculation performed by an integrated circuit |
US20070220479A1 (en) * | 2006-03-14 | 2007-09-20 | Hughes John M | Systems and methods for software development |
FR2898704B1 (fr) * | 2006-03-14 | 2008-06-06 | Proton World Internatinal Nv | Protection d'un programme contre un deroutement |
US20070250378A1 (en) * | 2006-04-24 | 2007-10-25 | Hughes John M | Systems and methods for conducting production competitions |
US10783458B2 (en) * | 2006-05-01 | 2020-09-22 | Topcoder, Inc. | Systems and methods for screening submissions in production competitions |
US20080052146A1 (en) * | 2006-05-01 | 2008-02-28 | David Messinger | Project management system |
US20080167960A1 (en) * | 2007-01-08 | 2008-07-10 | Topcoder, Inc. | System and Method for Collective Response Aggregation |
US20080196000A1 (en) * | 2007-02-14 | 2008-08-14 | Fernandez-Lvern Javier | System and method for software development |
US20080222055A1 (en) * | 2007-03-07 | 2008-09-11 | Hughes John M | System and Method for Creating Musical Works |
US8073792B2 (en) * | 2007-03-13 | 2011-12-06 | Topcoder, Inc. | System and method for content development |
WO2009062033A1 (en) * | 2007-11-09 | 2009-05-14 | Topcoder, Inc. | System and method for software development |
WO2009089447A1 (en) * | 2008-01-11 | 2009-07-16 | Topcoder, Inc. | System and method for conducting competitions |
US20100119068A1 (en) * | 2008-11-11 | 2010-05-13 | Harris Scott C | Digital File Anti pirating |
US8438270B2 (en) * | 2010-01-26 | 2013-05-07 | Tenable Network Security, Inc. | System and method for correlating network identities and addresses |
US8302198B2 (en) | 2010-01-28 | 2012-10-30 | Tenable Network Security, Inc. | System and method for enabling remote registry service security audits |
US8707440B2 (en) * | 2010-03-22 | 2014-04-22 | Tenable Network Security, Inc. | System and method for passively identifying encrypted and interactive network sessions |
US8549650B2 (en) | 2010-05-06 | 2013-10-01 | Tenable Network Security, Inc. | System and method for three-dimensional visualization of vulnerability and asset data |
US9298918B2 (en) | 2011-11-30 | 2016-03-29 | Elwha Llc | Taint injection and tracking |
US9443085B2 (en) | 2011-07-19 | 2016-09-13 | Elwha Llc | Intrusion detection using taint accumulation |
US8930714B2 (en) * | 2011-07-19 | 2015-01-06 | Elwha Llc | Encrypted memory |
US9098608B2 (en) | 2011-10-28 | 2015-08-04 | Elwha Llc | Processor configured to allocate resources using an entitlement vector |
US9558034B2 (en) | 2011-07-19 | 2017-01-31 | Elwha Llc | Entitlement vector for managing resource allocation |
US9798873B2 (en) | 2011-08-04 | 2017-10-24 | Elwha Llc | Processor operable to ensure code integrity |
US9465657B2 (en) | 2011-07-19 | 2016-10-11 | Elwha Llc | Entitlement vector for library usage in managing resource allocation and scheduling based on usage and priority |
US9170843B2 (en) | 2011-09-24 | 2015-10-27 | Elwha Llc | Data handling apparatus adapted for scheduling operations according to resource allocation based on entitlement |
US8955111B2 (en) | 2011-09-24 | 2015-02-10 | Elwha Llc | Instruction set adapted for security risk monitoring |
US9471373B2 (en) | 2011-09-24 | 2016-10-18 | Elwha Llc | Entitlement vector for library usage in managing resource allocation and scheduling based on usage and priority |
US9460290B2 (en) | 2011-07-19 | 2016-10-04 | Elwha Llc | Conditional security response using taint vector monitoring |
US9575903B2 (en) | 2011-08-04 | 2017-02-21 | Elwha Llc | Security perimeter |
US8813085B2 (en) | 2011-07-19 | 2014-08-19 | Elwha Llc | Scheduling threads based on priority utilizing entitlement vectors, weight and usage level |
US9367707B2 (en) | 2012-02-23 | 2016-06-14 | Tenable Network Security, Inc. | System and method for using file hashes to track data leakage and document propagation in a network |
US8627097B2 (en) | 2012-03-27 | 2014-01-07 | Igt | System and method enabling parallel processing of hash functions using authentication checkpoint hashes |
US9043920B2 (en) | 2012-06-27 | 2015-05-26 | Tenable Network Security, Inc. | System and method for identifying exploitable weak points in a network |
US9088606B2 (en) | 2012-07-05 | 2015-07-21 | Tenable Network Security, Inc. | System and method for strategic anti-malware monitoring |
US9467464B2 (en) | 2013-03-15 | 2016-10-11 | Tenable Network Security, Inc. | System and method for correlating log data to discover network vulnerabilities and assets |
CN103838995B (zh) * | 2014-03-19 | 2018-04-27 | 北京深思数盾科技股份有限公司 | 可自定义设置的信息安全设备 |
US9904485B2 (en) * | 2016-03-31 | 2018-02-27 | Intel Corporation | Secure memory controller |
FR3069935A1 (fr) * | 2017-08-01 | 2019-02-08 | Maxim Integrated Products, Inc. | Dispositifs et procedes de protection de propriete intellectuelle de logiciel pour des plates-formes integrees |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US399449A (en) * | 1889-03-12 | Handle for umbrellas | ||
US3996449A (en) * | 1975-08-25 | 1976-12-07 | International Business Machines Corporation | Operating system authenticator |
GB1561482A (en) * | 1976-11-18 | 1980-02-20 | Ibm | Protection of data processing system against unauthorised programmes |
US4120030A (en) * | 1977-03-11 | 1978-10-10 | Kearney & Trecker Corporation | Computer software security system |
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 |
US4246638A (en) * | 1978-09-14 | 1981-01-20 | Thomas William J | Method and apparatus for controlling usage of a programmable computing machine |
US4319079A (en) * | 1979-09-13 | 1982-03-09 | Best Robert M | Crypto microprocessor using block cipher |
US4306289A (en) * | 1980-02-04 | 1981-12-15 | Western Electric Company, Inc. | Digital computer having code conversion apparatus for an encrypted program |
US4446519A (en) * | 1981-05-26 | 1984-05-01 | Corban International, Ltd. | Method and apparatus for providing security for computer software |
-
1982
- 1982-05-21 US US06/380,771 patent/US4525599A/en not_active Expired - Lifetime
-
1983
- 1983-05-23 GB GB08401229A patent/GB2129986A/en not_active Withdrawn
- 1983-05-23 EP EP83902161A patent/EP0112367A1/de not_active Withdrawn
- 1983-05-23 WO PCT/US1983/000786 patent/WO1983004356A1/en not_active Application Discontinuation
- 1983-05-23 DE DE19833390018 patent/DE3390018T1/de not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
GB8401229D0 (en) | 1984-02-22 |
EP0112367A1 (de) | 1984-07-04 |
WO1983004356A1 (en) | 1983-12-08 |
US4525599A (en) | 1985-06-25 |
GB2129986A (en) | 1984-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3390018T1 (de) | Verfahren und Vorrichtung zum Schutz von Software | |
DE69527773T2 (de) | Schaltungsanordnung zur Überwachung der Benutzung von Funktionen in einem integrierten Schaltungkreis | |
DE69729557T2 (de) | Verfahren und gerät zum softwarezugriff auf eine mikroprozessorseriennummer | |
EP0049322B1 (de) | Auslesesicherung bei Einchip-Mikroprozessoren | |
DE2758152A1 (de) | Speicherschutzanordnung | |
EP0965076A1 (de) | Elektronische datenverarbeitungseinrichtung und -system | |
DE2359776A1 (de) | Speichermodul zur verwendung in verbindung mit einer datenverarbeitungseinheit | |
DE2225841C3 (de) | Verfahren und Anordnung zur systematischen Fehlerprüfung eines monolithischen Halbleiterspeichers | |
EP0522332A1 (de) | Rechner für den Leitstand einer Maschine, insbesondere eine Druckmaschine | |
DE4139197A1 (de) | Halbleiter-speichereinheit | |
DE2721599A1 (de) | Verfahren und geraet zur verhinderung der ausgabe von fehlerhaften daten in digitalen datenverarbeitungseinrichtungen | |
EP1999521B1 (de) | Feldgerät | |
EP0280035B1 (de) | Verfahren zum Sichern von Programmen und zur Integritätskontrolle gesicherter Programme | |
DE2810421C2 (de) | Speicherschutzeinrichtung | |
EP0276450A1 (de) | Datenschutzschaltung zur Sperrung der Uebertragung von Signalen über einen Bus | |
EP0428528B1 (de) | Einrichtung zum schutz von daten | |
WO2009034019A1 (de) | Verfahren und vorrichtung zum codieren von datenworten | |
WO2001013330A1 (de) | Integrierter schaltkreis und schaltungsanordnung zur stromversorgung eines integrierten schaltkreises | |
DE3606383C1 (de) | Sicherungseinrichtung mit Sicherungsschluessel fuer Personal- und Arbeitsplatzcomputer | |
WO2006021178A2 (de) | Verfahren und sicherheitssystem zur sicheren und eindeutigen kodierung eines sicherheitsmoduls | |
DE60312159T2 (de) | Übertragung von sicherheitsrelevanten Daten zwischen zwei Speichern | |
EP0567492B1 (de) | Verfahren und anordnung zur überwachung von rechnermanipulationen | |
DE4103173C2 (de) | Vorrichtung zum Schutz gegen unautorisierte Benutzung von Software | |
EP0339115A1 (de) | Verfahren zur Sicherung eines auf einem Speichermedium gespeicherten Programms | |
DD295477A5 (de) | Verfahren und vorrichtung zur uebertragung von informationen mittels elektromagnetischer wellen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8139 | Disposal/non-payment of the annual fee |