DE3390018T1 - Verfahren und Vorrichtung zum Schutz von Software - Google Patents

Verfahren und Vorrichtung zum Schutz von Software

Info

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
Application number
DE19833390018
Other languages
English (en)
Inventor
Kevin G. Sudbury Mass. Curran
Steven Eric Wayland Mass. Golson
Christian S. Cambridge Mass. Rode
Original Assignee
General Computer Co., Cambridge, Mass.
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 General Computer Co., Cambridge, Mass. filed Critical General Computer Co., Cambridge, Mass.
Publication of DE3390018T1 publication Critical patent/DE3390018T1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network 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
    • 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]
    • 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/78Protecting 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/80Protecting 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
    • 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/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices

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
Verfahren und Vorrichtung zum Schutz von Software
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.
Beschreibung der Zeichnung
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)

  1. Patentansprüche
    1. Verfahren zum Verhindern von unauthorisiertem Kopieren von
    Computer-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 gesperrte
    Adressen 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.
DE19833390018 1982-05-21 1983-05-23 Verfahren und Vorrichtung zum Schutz von Software Withdrawn DE3390018T1 (de)

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)

* Cited by examiner, † Cited by third party
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
DE3483410D1 (de) * 1983-10-14 1990-11-22 Toshiba Kawasaki Kk Einchip mikrocomputer mit verschluesselbarer 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
EP0207320B1 (de) * 1985-07-03 1990-05-09 Siemens Aktiengesellschaft 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
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
US5146575A (en) * 1986-11-05 1992-09-08 International Business Machines Corp. Implementing privilege on microprocessor systems for use in software asset protection
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メモリカード
US5144660A (en) * 1988-08-31 1992-09-01 Rose Anthony M Securing a computer against undesired write operations to or read operations from a mass storage device
US5095525A (en) * 1989-06-26 1992-03-10 Rockwell International Corporation Memory transformation apparatus and method
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
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
US5210875A (en) * 1989-08-25 1993-05-11 International Business Machines Corporation Initial bios load for 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
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
US5680533A (en) * 1994-10-31 1997-10-21 Nintendo Co., Ltd. Videographics program/video game fabricating system and method
US5680534A (en) * 1994-10-31 1997-10-21 Nintendo Co., Ltd. Video game/videographics program fabricating system and method with superimpose control
US6115036A (en) * 1994-10-31 2000-09-05 Nintendo Co., Ltd. Video game/videographics program editing apparatus with program halt and data transfer features
US5592609A (en) * 1994-10-31 1997-01-07 Nintendo Co., Ltd. Video game/videographics program fabricating system and method with unit based program processing
US5599231A (en) * 1994-10-31 1997-02-04 Nintendo Co., Ltd. Security systems and methods for a videographics and authentication game/program fabricating device
US6157721A (en) 1996-08-12 2000-12-05 Intertrust Technologies Corp. Systems and methods using cryptography to protect secure computing environments
US7143290B1 (en) 1995-02-13 2006-11-28 Intertrust Technologies Corporation Trusted and secure techniques, systems and methods for item delivery and execution
US7095854B1 (en) 1995-02-13 2006-08-22 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
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
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
DE69637733D1 (de) 1995-02-13 2008-12-11 Intertrust Tech Corp Systeme und verfahren für ein sicheres übertragung
US7069451B1 (en) 1995-02-13 2006-06-27 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
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
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
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
US5643086A (en) 1995-06-29 1997-07-01 Silicon Gaming, Inc. Electronic casino gaming apparatus with improved play capacity, authentication and security
WO1997014249A1 (fr) * 1995-10-09 1997-04-17 Matsushita Electric Industrial Co., Ltd. Transmetteur de donnees, procede de transmission de donnees, recepteur de donnees, processeur d'informations et support d'enregistrement d'informations
US6088452A (en) * 1996-03-07 2000-07-11 Northern Telecom Limited Encoding technique for software and hardware
TW330999B (en) * 1996-03-08 1998-05-01 Matsushita Electric Ind Co Ltd Microprocessor suitable for reproducing AV data while protecting the AV data from illegal copy and image information processing system using the microprocessor
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
US7988559B2 (en) 2001-03-08 2011-08-02 Igt Computerized gaming system, method and apparatus
CA2402389A1 (en) * 2000-03-08 2002-09-19 Shuffle Master, Inc. Computerized gaming system, method and apparatus
US7043641B1 (en) 2000-03-08 2006-05-09 Igt Encryption in a secure computerized gaming system
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 富士通フロンテック株式会社 処理装置および集積回路
EP1366404B1 (de) * 2000-07-18 2007-03-14 Simplex Major SDN.BHD Vorrichtung zum schutz digitaler daten
AU2001285125B2 (en) * 2000-08-21 2004-08-26 Igt Method and apparatus for software authentication
US7051211B1 (en) 2000-08-21 2006-05-23 International Business Machines Corporation Secure software distribution and installation
US7350083B2 (en) 2000-12-29 2008-03-25 Intel Corporation Integrated circuit chip having firmware and hardware security primitive device(s)
WO2002056144A2 (en) * 2001-01-09 2002-07-18 Topcoder Inc Systems and methods for coding competitions
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
US7618317B2 (en) 2001-09-10 2009-11-17 Jackson Mark D 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
US7931533B2 (en) * 2001-09-28 2011-04-26 Igt Game development architecture that decouples the game logic from the graphics logics
US6902481B2 (en) 2001-09-28 2005-06-07 Igt Decoupling of the graphical presentation of a game from the presentation logic
US8708828B2 (en) 2001-09-28 2014-04-29 Igt Pluggable modular gaming modifiers and configuration templates for gaming environments
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
US7778866B2 (en) * 2002-04-08 2010-08-17 Topcoder, Inc. Systems and methods for software development
CN1679034A (zh) * 2002-04-08 2005-10-05 托普科德公司 用于对软件开发服务征求建议的系统以及方法
US20060248504A1 (en) * 2002-04-08 2006-11-02 Hughes John M Systems and methods for software development
US8776042B2 (en) * 2002-04-08 2014-07-08 Topcoder, Inc. Systems and methods for software support
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
JP4119881B2 (ja) * 2004-11-15 2008-07-16 株式会社メガチップス 半導体メモリ装置
US7770027B2 (en) * 2004-11-15 2010-08-03 Nintendo Co., Ltd. Semiconductor memory device
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
WO2006128148A1 (en) * 2005-05-27 2006-11-30 Delphi Technologies, Inc. System and method for bypassing execution of an algorithm
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
EP1999662A4 (de) * 2006-01-20 2010-10-13 Topcoder Inc System und verfahren für designentwicklung
FR2898704B1 (fr) * 2006-03-14 2008-06-06 Proton World Internatinal Nv Protection d'un programme contre un deroutement
US20070220479A1 (en) * 2006-03-14 2007-09-20 Hughes John M Systems and methods for software development
US20070250378A1 (en) * 2006-04-24 2007-10-25 Hughes John M Systems and methods for conducting production competitions
US20080052146A1 (en) * 2006-05-01 2008-02-28 David Messinger Project management system
US10783458B2 (en) * 2006-05-01 2020-09-22 Topcoder, Inc. Systems and methods for screening submissions in production competitions
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
US20090192849A1 (en) * 2007-11-09 2009-07-30 Hughes John M 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
US9575903B2 (en) 2011-08-04 2017-02-21 Elwha Llc Security perimeter
US9170843B2 (en) 2011-09-24 2015-10-27 Elwha Llc Data handling apparatus adapted for scheduling operations according to resource allocation based on entitlement
US9098608B2 (en) 2011-10-28 2015-08-04 Elwha Llc Processor configured to allocate resources using an entitlement vector
US9798873B2 (en) 2011-08-04 2017-10-24 Elwha Llc Processor operable to ensure code integrity
US9460290B2 (en) 2011-07-19 2016-10-04 Elwha Llc Conditional security response using taint vector monitoring
US9558034B2 (en) 2011-07-19 2017-01-31 Elwha Llc Entitlement vector for managing resource allocation
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
US8955111B2 (en) 2011-09-24 2015-02-10 Elwha Llc Instruction set adapted for security risk monitoring
US9443085B2 (en) 2011-07-19 2016-09-13 Elwha Llc Intrusion detection using taint accumulation
US9298918B2 (en) 2011-11-30 2016-03-29 Elwha Llc Taint injection and tracking
US8930714B2 (en) * 2011-07-19 2015-01-06 Elwha Llc Encrypted memory
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
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)

* Cited by examiner, † Cited by third party
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
US4278837A (en) * 1977-10-31 1981-07-14 Best Robert M Crypto microprocessor for executing enciphered programs
US4168396A (en) * 1977-10-31 1979-09-18 Best Robert M 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

Also Published As

Publication number Publication date
WO1983004356A1 (en) 1983-12-08
GB2129986A (en) 1984-05-23
US4525599A (en) 1985-06-25
GB8401229D0 (en) 1984-02-22
EP0112367A1 (de) 1984-07-04

Similar Documents

Publication Publication Date Title
DE3390018T1 (de) Verfahren und Vorrichtung zum Schutz von Software
DE3048365C2 (de)
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
DE2810421C2 (de) Speicherschutzeinrichtung
EP0280035B1 (de) Verfahren zum Sichern von Programmen und zur Integritätskontrolle gesicherter Programme
EP1999521B1 (de) Feldgerät
EP0276450A1 (de) Datenschutzschaltung zur Sperrung der Uebertragung von Signalen über einen Bus
WO2009034019A1 (de) Verfahren und vorrichtung zum codieren von datenworten
EP0428528B1 (de) Einrichtung zum schutz von daten
WO2006021178A2 (de) Verfahren und sicherheitssystem zur sicheren und eindeutigen kodierung eines sicherheitsmoduls
WO2001013330A1 (de) Integrierter schaltkreis und schaltungsanordnung zur stromversorgung eines integrierten schaltkreises
EP3345366B1 (de) Verfahren zum sicheren und effizienten zugriff auf verbindungsdaten
DE3606383C1 (de) Sicherungseinrichtung mit Sicherungsschluessel fuer Personal- und Arbeitsplatzcomputer
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

Legal Events

Date Code Title Description
8139 Disposal/non-payment of the annual fee