[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

DE3321910A1 - DEVICE AND METHOD FOR PROTECTING SOFTWARE - Google Patents

DEVICE AND METHOD FOR PROTECTING SOFTWARE

Info

Publication number
DE3321910A1
DE3321910A1 DE19833321910 DE3321910A DE3321910A1 DE 3321910 A1 DE3321910 A1 DE 3321910A1 DE 19833321910 DE19833321910 DE 19833321910 DE 3321910 A DE3321910 A DE 3321910A DE 3321910 A1 DE3321910 A1 DE 3321910A1
Authority
DE
Germany
Prior art keywords
program
memory
decryption
key
encrypted
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
DE19833321910
Other languages
German (de)
Inventor
David B Everett
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Open Computer Security Ltd Brighton East Sussex
Original Assignee
OPEN COMPUTER SERVICES Ltd
OPEN COMPUTER SERVICES Ltd
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 OPEN COMPUTER SERVICES Ltd, OPEN COMPUTER SERVICES Ltd filed Critical OPEN COMPUTER SERVICES Ltd
Publication of DE3321910A1 publication Critical patent/DE3321910A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution
    • H04L2209/605Copy protection

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Description

Beschreibungdescription

Die Erfindung bezieht sich auf eine Vorrichtung und ein Verfahren zum Verhindern einer unbefugten Vervielfältigung von oder eines unbefugten Zugangs zu Computer-Software. Die Erfindung ist in erster Linie auf den Schutz von Programmen für den industriellen und geschäftlichen Gebrauch gerichtet.The invention relates to an apparatus and a method for preventing an unauthorized person Reproduction of or unauthorized access to computer software. The invention is in the first place Line aimed at the protection of programs for industrial and business use.

Die zunehmende Verwendung von Mikroprozessoren in Anlagen für Industrie und Handel hat nicht nur Auswirkungen auf die Konstruktion von Hardware, sondern auch auf die Verteilung und Speicherung von Software-Paketen. Das Problem, Software gegen "Piraterie" zu schützen, ist insbesondere wichtig im Hinblick auf den steigenden Anteil relativ kleiner Systeme mit beispielsweise zwei oder drei Monitoren und der damit verbundenen Möglichkeit einer unbefugten Vervielfältigung. Während für einen Software-Hersteller Vorteile in der Kompatibilität von Systemen wichtig sind, schränkt "Piraterie" entweder in aggressiver Weise oder durch mehr passive Vereinigungen die Einnahmen ernstlich ein, welche der Hersteller zu erzielen hofft.The increasing use of microprocessors in plants for industry and trade has not only been Effects on the design of hardware, but also on the distribution and storage of Software packages. The problem of protecting software against "piracy" is particularly important in view of the increasing proportion of relatively small systems with, for example, two or three Monitors and the associated possibility of unauthorized reproduction. While for a software manufacturer advantages in compatibility of systems are important, "piracy" either aggressively or brutally restricts it more passive associations seriously generate the revenue that the manufacturer hopes to generate.

In dem Bemühen, Vervielfältigungshandlungen einzuschränken, wurde bislang das Problem des Software-Schutzes mit zwei grundsätzlichen Methoden angegangen. Die erste Methode beruht darauf, das Kopieren der Daten von Platten in der AusführungIn an effort to limit acts of reproduction, So far, the problem of software protection has been approached using two basic methods. The first method relies on copying the data from disks in the execution

1/ - 11 -1 / - 11 -

schwierig zu machen, was jedoch für den Benutzer den Nachteil hat, daß er nicht in der Lage ist, Reservekopien seines Programms anzufertigen. Die zweite Methode beruht darauf, eine Reihe von Änderungen der Computer-Hardware vorzunehmen, so daß die Software nur dann richtig ausgeführt wird, wenn von der Hardware die geeignete Antwort erhalten wird. Dies kann im einfachsten Falle ein Register sein, das von dem System zur Bestätigung eines eindeutigen Codes ausgelesen wird; in komplizierteren Fällen können diese Hardwareänderunger, einen Satz von Befehlen umfassen, welche aktuell i igen im Kopiervorgang definieren. Während beide Methoden den gutgläubigen geschäftlichen Anwender abzuschrecken vermögen, wären sie nicht in der Lage, die Nachfolge gezielterer Anstrengungen zu verhindern. difficult to do, but this has the disadvantage for the user that he is not able to To make reserve copies of his program. The second method relies on a number of Make changes to the computer hardware so that the software will only run properly when the appropriate response is received from the hardware. In the simplest case, this can be a register be read by the unique code confirmation system; in more complicated ones Cases, these hardware changes may include a set of instructions that are currently in effect Define in the copy process. While both methods discourage the bona fide business user would be able to prevent more targeted efforts from being succeeded.

Die Aufgabe der Erfindung besteht darin, eine Vorrichtung und ein Verfahren zum weitgehenden Verhindern der unbefugten Vervielfältigung von gespeicherten Computerprogrammen anzugegeben, ohne dabei einen authorisierten Benutzer daran zu hindern, Reservekopien für eigene Zwecke anzufertigen.The object of the invention is to provide a device and a method for extensive prevention the unauthorized reproduction of stored computer programs, without to prevent an authorized user from making reserve copies for his own purposes.

Eine erste Lösung dieser Aufgabe besteht darin, eine Computerdatenverarbeitungsvorrichtung, welche einen Speicher und eine Zentralverarbeitungseinheit zur Ausführung eines in dem Speicher gespeicherten Programms umfaßt, in der.Weise auszubilden, daß die Zentralverarbeitungseinheit mit einer Entschlüsselungseinrichtung verbunden istA first solution to this problem is to provide a computer data processing device which a memory and a central processing unit for executing one stored in the memory Program in such a way that the central processing unit is to be trained with a decryption device is connected

1/2 - 12 -1/2 - 12 -

und daß die Entschlüsselungseinrichtung und die Zentralverarbeitungseinheit oder ein Teil derselben einen gegen unbefugten Zugang gesicherten Modul enthalten.and that the decryption device and the central processing unit or a part thereof contain a module secured against unauthorized access.

Bei einer Ausführungsform dieser Lösung, die auf "LQ Mikrocomputer anwendbar ist, umfaßt der gegen unbefugten Zugang gesicherte Modul «ine integrierte oder gekapselte Einheit, welche einen Mikroprozessor und eine Entschlüsselungsschaltung gemeinsam enthält, wobei letzterer speziell zum Entschlüsseln von Datensignalen ausgebildet ist, welche auf spezielle Weise verschlüsselt sind. Der gegen unbefugten Zugang gesicherte Modul ist mit dem Speicher in derselben Weise verbunden, wie ein Mikroprozessor mit dem Speicher in einem Standard-Mikrocomputer verbunden ist und kann so ausgelegt werden, daß er als Direkteinschub im Austausch gegen den Mikroprozessor-IC des Standard-Mikrocomputers verwendet werden kann, falls der Mikrocomputer zur Ausführung verschlüsselter Programme verwendet werden soll.In one embodiment of this solution, which is applicable to "LQ" microcomputers, the against unauthorized access secured module «ine integrated or encapsulated unit which shares a microprocessor and a decryption circuit contains, the latter being specially designed for decrypting data signals which are based on are encrypted in a special way. The module secured against unauthorized access is with the memory connected in the same way as a microprocessor is connected to memory in a standard microcomputer is and can be designed so that it can be used as a direct plug-in unit in exchange for the microprocessor IC of the standard microcomputer can be used if the microcomputer is to run encrypted programs should be used.

Indem die Zentralverarbeitungseinheit und die Entschlüsselungsschaltung in einem gegen unbefugten Zugang gesicherten Modul zusammengebracht werden und der Benutzer mit einem verschlüsselten Prograiran versehen wird, läßt sich das Programm in dem Computer ausführen, ohne daß das entschlüsselte Programm in dem Speicher oder auf zugänglichen elektrischen Leitern auftritt. Es läßt sich daher kontruktiv ermöglichen, daß das entschlüsselte Programm nur innerhalb des gegen unbefugten ZugangBy the central processing unit and the decryption circuit be brought together in a module secured against unauthorized access and the user with an encrypted program is provided, the program can be executed in the computer without the decrypted Program occurs in the memory or on accessible electrical conductors. It can therefore constructively allow the decrypted program only within the against unauthorized access

2/3 - 13 -2/3 - 13 -

gesicherten Moduls vorhanden ist, wo es für Kopierzwecke nicht zugänglich ist.secured module is present where it is not accessible for copying purposes.

Bei einer zweiten Lösung der erfindungsgemäßen Aufgabe umfaßt ein Gerät zum Verhindern einer unbefugten Vervielfältigung von oder eines unbefugtenIn a second solution to the problem according to the invention includes apparatus for preventing unauthorized copying by or by unauthorized persons

^q Zugriffs zu Coitiputerprogrammen einen gegen unbefugten Zugang gesicherten Modul, welcher gegen eine Zentralverarbeitungseinheit in einem Computer ausgetauscht wird und eine Prozessoreinheit, eine Entschlüsselungsschaltung, einen Datenbus und einen Adressbus zum Anschluß an eine externe Speichereinheit im Computer unfaßt.^ q Access to coitiputer programs against unauthorized persons Access secured module which is exchanged for a central processing unit in a computer and a processor unit, a decryption circuit, a data bus and an address bus for connection to an external storage unit in the computer.

Bei einer dritten Lösung der erfindungsgemäßen Aufgabe weist ein Verfahren zum Verhindern einer unbefugten Vervielfältigung oder eines unbefugten Zugangs zu Computerprogrammen in einem zur Ausführung solcher Programme bestimmten Computer folgende Verfahrensschritte auf: In einem Speicher des Computers wird ein Programm in verschlüsselter Form . gespeichert, und das Programm wird durch Eingabe von Einzelbefehlen ( Befehl für Befehl ) in einen gegen unbefugten Zugang gesicherten Modul ausgeführt, wobei der Modul eine Zentralverarbeitungseinheit und eine Entschlüsselungsschaltung umfaßt.In a third solution to the problem according to the invention has a method for preventing unauthorized copying or unauthorized access on computer programs in a computer designed to run such programs Process steps on: In a memory of the computer a program is in encrypted form . and the program is saved by entering individual commands (command by command) into a Executed module secured against unauthorized access, the module being a central processing unit and a decryption circuit.

Bei einer bevorzugten Ausführungsform der Erfindung enthält der gegen unbefugten Zugang gesicherte .Modul einen Mikroprozessor-Chip und eine RAM-Speicher-Map { die Abkürzung RAM bedeutet Speicher mit wahlfreiem Zugriff während der Ausdruck "Map"In a preferred embodiment of the invention contains the secured against unauthorized access .Modul a microprocessor chip and a RAM memory map {the abbreviation RAM means random access memory while the expression "map"

3/4 - 14 -3/4 - 14 -

eine Darstellung bzw. Abbildung der Speicherplatz-a representation or mapping of the storage space

- verteilung bezeichnet ). Die geschützte Software ο - called distribution). The protected software ο

wird dem Benutzer verschlüsselt unter Verwendung des DES-Algorithmus geliefert, wobei der der Software vorangestellte Schlüssel für den DES-Algorithmus seinerseits in verschlüsselter Form unter Verdung des öffentlichen RSA-Schlüsselsystems vorliegt. Der öffentliche Schlüssel ist für das spezielle, im Computer des Benutzers enthaltene, gegen unbefugten Zugang gesicherte Modul eindeutig definiert. ( Eine Erläuterung der Verschlüsselung und Entschlüsselung unter Verwendung des DES-Algorithmus bis delivered to the user in encrypted form using the DES algorithm, with that of the software Preceding key for the DES algorithm in turn in encrypted form under Verdung of the RSA public key system. The public key is for the special, The module contained in the user's computer and secured against unauthorized access is clearly defined. (An explanation of encryption and decryption using the DES algorithm b

findet sich in der Veröffentlichung Nr. 46 der Federal Information Processing Standards ( FIPS ) vom Januar 1977 mit der Bezeichnung "Data Encryption Standard" = Daten-Verschlüsselungs-Norm.can be found in Federal Information Processing Standards (FIPS) Publication No. 46 from January 1977 with the designation "Data Encryption Standard" = data encryption standard.

Das öffentliche RSA-Schlüsselsystem ist in dem Auf satz "A method for Obtaining Digital Signatures and Public Key Cryptosystems" von Rivest, Shamir und Adleman, veröffentlicht in "Communications of the Association for Computing Machinery, Februar 1978The RSA public key system is in the essay "A method for Obtaining Digital Signatures and Public Key Cryptosystems" by Rivest, Shamir and Adleman, published in Communications of the Association for Computing Machinery, February 1978

nc- beschrieben. ) Im Betrieb wird der DES-Schlüssel nc- described. ) During operation, the DES key

in das gegen unbefugten Zugang gesicherte Modul geladen und entschlüsselt. Der entschlüsselte Schlüssel wird dann in dem DES-Algorithmus verwendet, um eine lokale Speicher-Map im RAM-Speicherloaded into the module secured against unauthorized access and decrypted. The decrypted Key is then used in the DES algorithm to map a local memory in RAM

OQ zu erzeugen, welcher zumindest einem Teil eines Speichers außerhalb des Moduls entspricht. Wenn ein verschlüsseltes Programm dem Modul von einem externen Speicher zugeführt wird, wird jeder Operationscode mit dem zugeordneten Code in derOQ to generate at least part of a Memory outside the module. If an encrypted program is assigned to the module of is fed to an external memory, each opcode is stored with the associated code in the

qc Speichermap gemäß einer Exklusiv—Oder-Operationqc Storage map according to an exclusive-or operation

4/ - 15 -4 / - 15 -

- 15 -- 15 -

logisch verknüpft, um den Operationscode vor dessen c Eingabe in dem Mikroprozessor-Chip zu entschlüsseln. Der gegen unbefugten Zugang gesicherte Modul läßt sich so ausbilden, daß er ein ankommendes verschlüsseltes Programm erkennt und die vorstehend erwähnte Entschlüsselungsoperation wirksam macht oder , j-. alternativ hierzu die Exklusiv-Oder-Operation umgeht , falls das ankommende Programm nicht als verschlüsselt erkannt wird.logically linked in order to decrypt the operation code before it is entered into the microprocessor chip. The module secured against unauthorized access can be designed in such a way that it receives an incoming encrypted Program recognizes and makes the above-mentioned decryption operation effective or , j-. alternatively, bypasses the exclusive-or operation if the incoming program is not recognized as encrypted.

Die Erfindung wird nachstehend anhand von Ausführe rungsbeispielen näher erläutert. Es zeigt:The invention will be carried out below on the basis of examples explained in more detail. It shows:

Fig. 1 ein vereinfachtes Blockschaltbild einerFig. 1 is a simplified block diagram of a

Vorrichtung gemäß einer Lösung der erfindungsgemäßen Aufgabe;Device according to a solution to the object of the invention;

Fig. 2 ein Blockschaltbild eines gegen unbefugtenFig. 2 is a block diagram of an against unauthorized

Zugang gesicherten Moduls;Secure module access;

Fig. 3 ein elektrisches Schaltbild eines Teils des gegen unbefugten Zugang gesicherten3 shows an electrical circuit diagram of part of the secured against unauthorized access

Moduls, und zwar einen Mikroprozessor, Speichereinrichtungen, eine Kombinierschaltung und Signalschaltvorrichtungen;Module, namely a microprocessor, memory devices, a combination circuit and signal switching devices;

Fig. 4 ein elektrisches Schaltbild einer Speicher-Selektionsschaltung innerhalb des gegen unbefugten Zugang gesicherten Moduls, undFig. 4 is an electrical circuit diagram of a memory selection circuit within the module secured against unauthorized access, and

Fig. 5 ein elektrisches Schaltbild einer Ent-Schlüsselungs-Selektionslogikschaltung. Fig. 5 is an electrical circuit diagram of a decryption selection logic circuit.

4/5 - 16 -4/5 - 16 -

In Fig. 1 ist ein erfindungsgemäßes System in vereinfachter Form dargestellt, welches einen gegen unbefugten Zugang gesicherten Modul ( Einheit ) 1 mit einer Zentralverarbeitungseinheit 2 ( nachfolgend auch mit CPU abgekürzt )( im betrachteten Beispielsfall ein Mikroprozessor ) und eine Entschlüsselungseinrichtung 3 aufweist. Der gegen unbefugten Zugang gesicherte Modul 1 ersetzt die Zentralverarbeitungseinheit eines herkömmlichen Computers und ist in gleicher Weise wie eine übliche Zentralverarbeitungseinheit mit einem Systemspeicher 4 verbunden, welcher Programm-Operationscodes und Daten zu und von der Zentralverarbeitungseinheit überträgt.In Fig. 1, a system according to the invention is simplified Shown form, which is a secured against unauthorized access module (unit) 1 with a central processing unit 2 (hereinafter also abbreviated to CPU) (in the example under consideration, a microprocessor ) and a decryption device 3. The module 1, which is secured against unauthorized access replaces the central processing unit of a conventional computer and is in the same way as a conventional central processing unit connected to a system memory 4, which program operation codes and transmit data to and from the central processing unit.

Im betrachteten Beispielsfall ist eine feste Speicherung von Programmen und Daten mittels eines Plattenspeichers 5 vorgesehen. Im Betriebszustand des Systems werden ein verschlüsseltes Programm und Daten von dem Plattenspeicher 5 in den Speicher 4 geladen und anschließend per Einzelbefehl ( Befehl für Befehl ) der Entschlüsselungschaltung 3 und der CPU 2 zugeführt. Vorzugsweise werden nur die Operationscodes verschlüsselt, da hierdurch das Programm relativ sicher gegen eine Kryptanalyse ( Verschlüsseelungsanalyse ) gemacht werden kann.In the example under consideration, programs and data are permanently stored by means of a disk storage device 5 provided. When the system is in operation, an encrypted program and data are stored on the disk memory 5 loaded into the memory 4 and then by individual command (command by command) of the decryption circuit 3 and the CPU 2 supplied. Only the operation codes are preferably encrypted, since This made the program relatively secure against a cryptanalysis (encryption analysis) can be.

Der gegen unbefugten Zugang gesicherte Modul 1 ist in Fig. 2 detaillierter dargestellt. Der Modul 1 ist über einen Datenbus 10 und einen Adressbus 12 mit dem Systemspeicher verbunden. Die auf dem Datenbus 10 vom Systemspeicher zum Modul 1 übertragenen Signale gelangen über eine Schalteinrichtung 14 entweder durchThe module 1 secured against unauthorized access is shown in more detail in FIG. Module 1 is over a data bus 10 and an address bus 12 connected to the system memory. The on the data bus 10 from The signals transmitted to the system memory to the module 1 either pass through a switching device 14

5/6 - 17 -5/6 - 17 -

- 17 -- 17 -

eine Exklusiv-Oder(XOR)-Kombinierstufe 16 oder durch eine Umgehungsleitung 18 zu der Mikroprozessor-CPU,
wobei diese Signalwegeauswahl seitens der Schalteinrichtung 14 in Abhängigkeit von Signalen aus einer Selektions-Logikschaltung 20 erfolgt. Die XOR-Stufe ist ferner mit einem internen RAM-Speicher 22 verbun-
an exclusive-or (XOR) -combination stage 16 or through a bypass line 18 to the microprocessor CPU,
This signal path selection by the switching device 14 takes place as a function of signals from a selection logic circuit 20. The XOR stage is also connected to an internal RAM memory 22.

2Q den, dessen Zweck nachstehend erläutert werden soll. Damit werden die der XOR-Stufe 16 zugeführten Signale auf dem Datenbus 10 in einer Exklusiv-Oder-Operation mit Signalen aus dem internen RAM-Speicher 22 kombiniert; die hieraus resultierenden Signale gelangen2Q den, the purpose of which will be explained below. The signals fed to the XOR stage 16 are thus on the data bus 10 in an exclusive-OR operation combined with signals from internal RAM memory 22; the resulting signals arrive

^g dann über einen internen Datenbus 24 zu der CPU. Den Dateneingängen der CPU können ferner Signale aus einer dritten Quelle über die Schalteinrichtung 14 zugeführt werden, wobei es sich bei dieser Quelle um einen internen PROM-Speicher 26 handelt, der ein Programm^ g then via an internal data bus 24 to the CPU. The Data inputs of the CPU can also be supplied with signals from a third source via the switching device 14 be, it is in this source is an internal PROM memory 26, which is a program

öder Programme zur Steuerung von Entschlüsselungs-Operationen enthält ( PROM ist die Abkürzung für
einen programmierbaren Nurlesespeicher ). Der PROM-Speicher 26, der interne RAM-Speicher 22 und der externe Speicher 4 sind über den gemeinsamen Adressbus 12 mit der CPU 2 verbunden. Die Funktion dieser Bauelemente ergibt sich aus der nachfolgenden Beschreibung des Entschlüsselungsprozesses.
or which contains programs for controlling decryption operations (PROM is the abbreviation for
a programmable read-only memory). The PROM memory 26, the internal RAM memory 22 and the external memory 4 are connected to the CPU 2 via the common address bus 12. The function of these components results from the following description of the decryption process.

Das bevorzugte Entschlüsselungsverfahren, das auf die dem Benutzer gelieferten Programme seitens des Softwareherstellers angewandt wird, ist das in der eingangs erwähnten Datenverschlüsselungsnorm, abgekürzt DES
( Data Encryption Standard ) beschriebene Verfahren. Bei diesem Verfahren wird derselbe Algorithmus
( der sogenannte DES-Algorithmus ) sowohl zum Ver-
The preferred decryption method that is applied to the programs supplied to the user by the software manufacturer is that in the data encryption standard mentioned at the beginning, abbreviated DES
(Data Encryption Standard). This procedure uses the same algorithm
(the so-called DES algorithm) both for

6/7 - 18 -6/7 - 18 -

- 18 -- 18 -

schlüsseln als auch zum Entschlüsseln der Nachricht verwendet. Der Algorthmus ist zwar allgemein bekannt, doch hängt eine erfolgreiche Entschlüsselung ( Dechiffrierung ) von der Kenntnis eines Schlüssels ( des DES-Schlüssels ) ab, der in dem Algorithmus zum Verschlüsseln der Nachricht verwendet wurde. Bei dem n betrachteten System werden die Programm-Operationscodes von dem Software-Hersteller oder -handler unter Verwendung des DES-Algorithmus und eines speziellen DES-Schlüssels verschlüsselt. Um den DES-Schlüssel auf sichere Weise dem Benutzer zu übergeben, wird er ,- in verschlüsselter Form unter Verwendung eines zweiten Verschlüsselungsprozesses dem Programm vorangestellt. Dieser zweite Verschlüsselungsprozess wird nach dem RSA-Verfahren durchgeführt, das ebenfalls in der Beschreibungseinleitung erwähnt wurde.encrypt as well as used to decrypt the message. Although the algorithm is well known, successful decryption (decryption) depends on knowledge of a key (the DES key) that was used in the algorithm to encrypt the message. In the case of the n system under consideration, the program operation codes are encrypted by the software manufacturer or handler using the DES algorithm and a special DES key. In order to transfer the DES key to the user in a secure manner, it is placed in front of the program in encrypted form using a second encryption process. This second encryption process is carried out according to the RSA method, which was also mentioned in the introduction to the description.

Bei dem RSA-Verfahren wird die Nachricht ( im vorliegenden Falle der DES-Schlüssel ) mittels einer mathematischen Operation unter Verwendung eines öffentlichen Verschlüsselungs-Schlüssels verschlüsselt, welcherWith the RSA method, the message (in the present case the DES key) is sent by means of a mathematical Operation encrypted using a public encryption key, which

2g dem Empfänger zugeordnet ist, d.h., der DES-Schlüssel wird unter Verwendung des öffentlichen Schlüssels des Benutzers verschlüsselt. Die Entschlüsselung ist nur mit Hilfe eines privaten Entschlüsselungs-Schlüssels durchführbar, welcher sich nicht von dem öffentlichen2g is assigned to the recipient, i.e. the DES key is encrypted using the user's public key. The decryption is just feasible with the help of a private decryption key, which is not different from the public

QQ Schlüssel ableiten läßt. Der private Schlüssel wird in dem gegen unbefugten Zugang gesicherten Modul gespeichert, und zwar in einem zweiten internen RAM-Speicher 32, der mittels einer kleinen Batterie versorgt wird. QQ key can be derived. The private key is stored in the module secured against unauthorized access, specifically in a second internal RAM memory 32 which is supplied by a small battery.

7/8 - 19 -7/8 - 19 -

- 19 -- 19 -

Wenn ein verschlüsseltes Programm in den gegen unbelt fugten Zugang gesicherten Modul ( Fig. 2 ) eingegeben wird, wird zuerst der DES-Schlüssel durch die CPU 2 entschlüsselt, welche nach Maßgabe eines in dem PROM-Speicher 26 gespeicherten RSA-Entschlüsselungsprogramms arbeitet. Die weitere Ausführung des ver-,Q - schlüsselten (Haupt)Programms wird dann verzögert, wobei in der Zwischenzeit der DES-Schlüssel in dem DES-Algorithmus verwendet wird, um eine lokale Speicher-Map in dem RAM-Speicher 22 unter der Steuerung eines weiteren, in dem PROM-Speicher 26 gespeicherten Prong gramms zu erzeugen. Nach Abschluß dieser Operation läuft das DES-verschlüsselte Programm weiter, wobei jeder Operationscode einer Exklusiv-Oder-Operation unterzogen wird, bei der er mit einem gemappten Code aus einem Speicherplatz im RAM-Speicher 26 kombiniert wird, welcher dem Speicherplatz des Operationscode im Systemspeicher 4 ( Fig. 1 ) zugeordnet ist. Das Ergebnis der Exklusiv-Oder-Operation ist ein entschlüsselter Operationscode, welcher über die Schalteinrichtung 14 zu dem Befehlsregister der CPU 2 gelangt. Zu beachten ist, daß zu keiner Zeit der entschlüsselte Operationscode außerhalb des gegen unbefugten Zugang gesicherten Moduls 1 auftaucht. Falls der Benutzer den Wunsch nach einer Reservekopie des Programms hat, ist es das verschlüsselte Programm, das vervielfältigt wird.When an encrypted program is entered in the module (Fig. 2) secured against unauthorized access is, the DES key is first decrypted by the CPU 2, which according to one in the PROM memory 26 stored RSA decryption program is working. The further execution of the encrypted, Q-encrypted (main) program is then delayed, in the meantime the DES key is used in the DES algorithm to create a local memory map in the RAM memory 22 under the control of another stored in the PROM memory 26 Prong grams. After completing this operation the DES-encrypted program continues, with each operation code being an exclusive-or operation is subjected, in which it is combined with a mapped code from a memory location in the RAM memory 26 which is assigned to the memory location of the operation code in the system memory 4 (FIG. 1). That The result of the exclusive-or operation is a decrypted operation code, which is transmitted via the switching device 14 reaches the command register of CPU 2. It should be noted that at no time does the decrypted Operation code appears outside of the module 1 secured against unauthorized access. If the user desires to have a backup copy of the program, it is the encrypted program that duplicates will.

Bei dem vorstehend erläuterten Entschlüsselungsprozess wird die DES-Norm in der Schlüssel(Chiffre)-Rückkopplungsbetriebsart verwendet, um eine Wiederholung des Speichermusters aus der Speicher-Map zu vermeiden.In the decryption process explained above, the DES standard is set in the key (cipher) feedback mode used to avoid repeating the memory pattern from the memory map.

8/ - 20 -8 / - 20 -

Durch Erzeugen der Speicher-Map bevor das Programm laufen gelassen wird erfolgt die Durchführung derBy creating the memory map before the program is run, the

Entschlüsselung in zwei Stufen, von denen die erste Stufe nicht zeitkritisch ist und die zweite Stufe ( die Exklusiv-Oder-Operationen ) vergleichsweise einfach ist und in Echtzeit in Übereinstimmung mit .Q der normalen Taktgeschwindigkeit der CPU verwirklicht werden kann. : Decryption in two stages, of which the first stage is not time-critical and the second stage (the exclusive-or operations) is comparatively simple and can be implemented in real time in accordance with the normal clock speed of the CPU. :

In den Figuren 3, 4 und 5 sind elektrische Schaltbilder eines gegen unbefugten Zugang gesichertenIn the figures 3, 4 and 5 electrical circuit diagrams of a secured against unauthorized access

, p- Moduls gemäß der Erfindung dargestellt. Die dargestellte Schaltung enthält eine Reihe von IC-Chips, wobei dies nicht zwingend erforderlich ist; vielmehr läßt sich auch eine Schaltung mit gleichen Funktionen in Form eines oder zweier pflichtenheftskonstruierten,, p module according to the invention. The one shown Circuit contains a number of IC chips, although this is not required; much more a circuit with the same functions can also be created in the form of one or two specifications,

2Q großflächenintegrierten (LSI)-Chip ausbilden, um bei Massenfertigung die Kosten for die IC-Einheiten zu verringern.2Q large area integrated (LSI) chip to to reduce the cost of the IC units in the case of mass production.

Die dargestellte Schaltung ist so ausgelegt, daß sie als versiegelter Behälter innerhalb eines vorhandenen oder eine neuen Computers im Austausch gegen einen Z80-Mikroprozessor angebracht werden kann ( Z80 ist die Bezeichnung für einen Mikroprozessortyp ). Der Modul ist für einen später erfolgenden Umbau QQ geeignet und hat hierzu einen 40-Wege-Frontstecker ( Fig. 3 ) zum Anschluß an den genormten 4 0-Wege-Mikroprozessorsockel .The circuit shown is designed to be used as a sealed container within an existing one or a new computer can be installed in exchange for a Z80 microprocessor (Z80 is the name for a type of microprocessor). The module is for a later conversion QQ and has a 40-way front connector for this purpose (Fig. 3) for connection to the standardized 4 0-way microprocessor socket .

In dem Blockschaltbild gemäß Fig. 2 ist eine Reihe untergeordneter Schaltungsmerkmale nicht veranschau-In the block diagram according to FIG. 2, a number of subordinate circuit features are not illustrated.

8/9 - 21 -8/9 - 21 -

— 21 —- 21 -

licht, wozu die Schaffung von Speicherplatz in dem zweiten internen RAM-Speicher 32 zurVerwendung während der Ausführung der RSA- und DES-Algorithmen sowie eine Decodierschaltung 34 ( Fig. 5 ) zum Umgehen der Entschlüsselungsschaltung beim Zugriff auf Teile eines externen Speichers mit CP/M-Betriebssystemzeigern zählen.light, including the creation of storage space in the second internal RAM memory 32 for use during execution of the RSA and DES algorithms and a decoder circuit 34 (Fig. 5) for bypassing the decryption circuit when accessing parts of an external memory with CP / M operating system pointers counting.

Wie zunächst aus Fig. 3 ersichtlich ist, umfaßt der dargestellte Schaltungsteil virtuell die gesamten, den Schaltungsblöcken in Fig. 2 zugeordneten Schaltkreise mit Ausnahme von im wesentlichen der Selektionslogikschaltung 20. Der 4 0-Wege-Frontstecker 30 führt dem System den Datenbus 10, den Adressbus 12 und die Z80-Interrupt- und Steuerleitungen zu.As can be seen first from Fig. 3, the circuit part shown includes virtually the entire, the Circuitry associated with circuit blocks in Fig. 2 with the exception of essentially the selection logic circuit 20. The 4 0-way front connector 30 leads the system to the data bus 10, the address bus 12 and the Z80 interrupt and control lines too.

Die auf dem extenen Datenbus 10 an dem gegen unbefugten Zugang gesicherten Modul ankommenden Signale werden dort zu einem internen Datenbus 38 übertragen, und zwar entweder direkt über einen Sender/Empfänger 40 oder indirekt über ein paralleles Paar von Exklusiv-Oder-Kombiniereinrichtungen 4 2 und 44 sowie einen 3-poligen Pufferschalter 46. Die Übertragung über die Exklusiv-Oder-Gatter 42 und 44 erfolgt in Abhängigkeit davon, ob der Eingang D am Puffer 46 wirksam ist. Dies ist dann der Fall, wenn das ankommende Signal ein verschlüsselter Operationscode während der Ausführung des Hauptprogramms ist. Zu anderen Zeiten während der Ausführung des Hauptprogramms verkehren die Signale frei zwischen dem externen Datenbus 10 und dem internen Datenbus 38 über den Sender/Empfänger 40 in Abhängigkeit von der Wirksamkeit eines Eingangs C,The ones on the external data bus 10 against unauthorized persons Access-secured module incoming signals are transmitted there to an internal data bus 38, and either directly via a transmitter / receiver 40 or indirectly via a parallel pair of exclusive-or-combining devices 4 2 and 44 as well as a 3-pole buffer switch 46. The transmission via the Exclusive-OR gates 42 and 44 take place as a function of whether input D at buffer 46 is effective is. This is the case if the incoming signal is an encrypted opcode during the Execution of the main program is. Operate at other times during the execution of the main program the signals freely between the external data bus 10 and the internal data bus 38 via the transmitter / receiver 40 depending on the effectiveness of an input C,

9/10 - 22 -9/10 - 22 -

Vor der Entschlüsselung eines ankommenden Hauptprogramms ist es erforderlich, den ankommenden DES-Schlüssel zu entschlüsseln und die DES-Speicher-Map in dem ersten internen RAM-Speicher 22 zu erzeugen. Die Programme für diese Operationen sind in dem PROM-Speicher 26 gespeichert. Damit führt anfänglich dieBefore decoding an incoming main program it is necessary to decrypt the incoming DES key and the DES memory map in the first internal RAM memory 22. The programs for these operations are in the PROM memory 26 saved. So initially the

IQ CPU 2 interne Programme in Verbindung mit dem PROM-Speicher 26 und dem zweiten RAM-Speicher 32 aus, ohne Zugriff zu dem externen Speicher zu nehmen. Während dieser Operation werden derprivate RSA-Schlüssel in dem RAM-Speicher 32 freigegeben (entriegelt) und der DES-Schlüssel entschlüsselt. Der DES-Schlüssel wird dann mit dem in dem PROM-Speicher gespeicherten DES-Algorithmus zum Erzeugen der DES-Speicher-Map in dem ersten RAM-Speicher 22 über den Puffer 48 verwendet. IQ CPU 2 from internal programs in connection with the PROM memory 26 and the second RAM memory 32 without access to the external memory. During this operation, the RSA private keys in the RAM memory 32 are released (unlocked) and the DES key is decrypted. The DES key is then used with the DES algorithm stored in the PROM memory to generate the DES memory map in the first RAM memory 22 via the buffer 48.

Sobald die Speicher-Map aufgebaut ist, kann das Hauptprograrnm in der CPU 2 laufen, wobei die Inhalte der Speicher-Map mit den ankommenden Operationscodes in den Gattern 42 und 44 nach einer Exklusiv-Oder-Operation verknüpft werden.As soon as the memory map is set up, the main program can be used run in the CPU 2, the contents of the memory map with the incoming operation codes in the gates 42 and 44 are linked after an exclusive-or operation.

Der Verkehr der Signale auf den Datenbussen wird von der Schaltung nach Fign. 4 und 5 gesteuert. Fig. 4 zeigt eine 1-aus-4-Selektionseinrichtung 49 zum Selektieren und Steuern der Speicher-Chips 26, 32 und 22 in Abhängigkeit vom Zustand der Adressleitungen A12 und Al 3 ( interne RAM/PROM-Wahl ), von einem Operationscode-Detektionssignal einer Operationscode-Detektionsschaltung ( Fig. 5 ) und von einem Schreibsignal WR der CPU 2.The traffic of the signals on the data buses is controlled by the circuit according to FIGS. 4 and 5 controlled. Fig. 4 shows a 1-out-of-4 selection device 49 for selecting and controlling the memory chips 26, 32 and 22 depending on the state of the address lines A12 and A1 3 (internal RAM / PROM selection), of one Operation code detection signal from an operation code detection circuit (Fig. 5) and from a write signal WR of the CPU 2.

10/11 - 23 -10/11 - 23 -

:·.·: 3321310: ·. · : 3321310

- 23 -- 23 -

Die in Fig. 5 dargestellte Selektionslogikschaltung umfaßt ein Feld von FlipFlops 50 bis 56, welche die Erzeugung von Interruptsignalen INTR und INTR steuern, die von der CPU 2 zugeführt werden, wenn ein ankommendes verschlüsseltes Programm signalisiert wird. Die Erzeugung der Interruptsignale bewirkt, daß die CPU 2 in die interne Programmschleife zur Erzeugung der Speicher-Map eintritt. Im betrachteten Beispielsfall sei angenommen, daß einemverschlüsselten Programm ein Wiederstart-Befehl vorangestellt ist, der von einem UND-Gatter 58 detektiert wird. Indessen kann jedes.The selection logic circuit shown in FIG. 5 comprises an array of flip-flops 50 to 56 which control the generation of interrupt signals INTR and INTR which are supplied by the CPU 2 when an incoming encrypted program is signaled. The generation of the interrupt signals causes the CPU 2 to enter the internal program loop for generating the memory map. In the example under consideration, it is assumed that an encrypted program is preceded by a restart command which is detected by an AND gate 58. However, everyone can.

geeignete Erkennungssignal in Verbindung mit einer Einrichtung zum Erkennen desselben verwendet werden.suitable detection signal can be used in conjunction with a device for detecting the same.

Das Vorhandensein eines Operationscode auf dem Datenbus wird von der CPU 2 den ODER-Gattern 60 und 6 2 signalisiert, welche den Ausgang B ( der an die Selektionseinrichtung 4 9 in Fig. 4 angeschlossen ist ) sowie den Ausgang D ( welcher mit dem Puffer 46 in Fig. 3 verbunden ist ) wirksam machen, um die Entschlüsselungsoperation zu selektieren. The presence of an operation code on the data bus is signaled by the CPU 2 to the OR gates 60 and 6 2, which the output B (which is connected to the selection device 4 9 in Fig. 4) and the Enable output D (which is connected to buffer 46 in Figure 3) to select the decryption operation.

Der Preset-Eingang des FlipFlop 56 ist mit den Mikroprozessor-Ausgängen HÄLT und BUSÄCK zur Sicherheit gegen eine mögliche Überschneidung mit der CPU 2 bei deren Versuch, die entschlüsselten Signale auszulesen, gekoppelt.The preset input of the flip-flop 56 is connected to the microprocessor outputs HOLD and BUSÄCK for safety against a possible overlap with the CPU 2 when it tries to read out the decrypted signals, coupled.

Die Adress-Decodierschaltung 34 detektiert den Zugriff zu Adressen in dem dem CP/M-Betriebssystem zugeordneten Speicher und erzeugt eine Ausgangs-CPM zum Umgehen der Entschlüsselungsschaltung.The address decoding circuit 34 detects the access to addresses in the memory allocated to the CP / M operating system and creates an output CPM to bypass the decryption circuit.

11/1211/12

■if-■ if-

LeerseiteBlank page

Claims (22)

33213103321310 OPEN COMPUTER SERVICES LIMITED Cavendish Street Brighton, East SussexOPEN COMPUTER SERVICES LIMITED Cavendish Street Brighton, East Sussex BN2 1 RN, England K 20 34BN2 1 RN, England K 20 34 Vorrichtung und Verfahren zum Schützen von SoftwareDevice and method for protecting software PatentansprücheClaims (^ ') Computerdatenverarbeitungsvorrichtung, mit einem Speicher und einer Zentralverarbeitungseinheit zum Ausführen eines in dem Speicher gespeicherten verschlüsselten Programms, dadurch gekennzeichnet , daß die Zentralverarbeitungs- einheit mit einer Entschlüsselungseinrichtung verbunden ist und daß die Entschlüsselungseinrichtung und zumindest ein Teil der Zentralverarbeitungseinrichtung einen gegen unbefugten Zugang gesicherten Modul enthalten. (^ ') Computer data processing device, with a memory and a central processing unit for executing an encrypted program stored in the memory, characterized in that the central processing unit is connected to a decryption device and that the decryption device and at least part of the central processing device are secured against unauthorized access Module included. 2. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß als Zentralverarbeitungseinheit ein Mikroprozessor vorgesehen ist.2. Apparatus according to claim 1, characterized in that the central processing unit a microprocessor is provided. 13/ - 2 -13 / - 2 - 3. Gerät zum Verhindern einer unbefugten Verviel-,-fältigung von oder eines unbefugten Zugangs zu3. Device to prevent unauthorized copying, copying of or unauthorized access to Computerprogrammen, gekennzeichnet durchComputer programs, characterized by einen gegen unbefugten Zugang gesichertenone secured against unauthorized access ,Q Modul, welcher zumindest Teil einer Verar-, Q module, which is at least part of a processing beitungs(Prozessor)einheit ist;processing (processor) unit is; - eine Entschlüsselungsschaltung, und- a decryption circuit, and ,c - Daten- und Adressbusse zum Anschluß an einen ο, c - data and address buses for connection to an ο externen Speicher.external storage. 4. Gerät nach Anspruch 3, dadurch gekennzeichnet, daß das gegen unbefugten Zugang gesicherte Modul4. Apparatus according to claim 3, characterized in that the module secured against unauthorized access 2Q so ausgebildet ist, daß es verschlüsselte Befehle eines dem Modul über den Datenbus zugeführten Programms ausführt.2Q is designed to use encrypted commands executes a program supplied to the module via the data bus. 5. Computerdatenverarbeitungsvorrichtung zum Ausführen eines verschlüsselten Computerprogramms, gekennzeichnet durch folgende Merkmale: 5. Computer data processing apparatus for execution an encrypted computer program, characterized by the following features: - Ein Programmspeicher zum Speichern des ver-3Q schlüsselten Programms und eines Entschlüsselungs-Schlüssels; - A program memory for storing the ver-3Q encrypted program and a decryption key; - eine Zentralverarbeitungseinheit zum Ausführen des Programms;a central processing unit for executing the program; 13/ - 3 -13 / - 3 - eine Entschlüsselungsschaltung;a decryption circuit; ein Datenbus, welcher den Programmspeicher mit der Entschlüsselungsschaltung koppelt, unda data bus which couples the program memory to the decryption circuit, and ein Adressbus, welcher die Zentralverarbeitungseinheit mit dem Programmspeicher koppelt,an address bus, which couples the central processing unit with the program memory, wobei die Entschlüsselungsschaltung und zumindest ein Teil der Zentralverarbeitungseinheit einen Teil eines gegen unbefugten Zugang gesichertenwherein the decryption circuit and at least a part of the central processing unit one Part of a secured against unauthorized access Moduls bilden, und wobei ferner die Entschlüsse-15 Form module, and furthermore the resolutions-15 lungseinheit einen ersten Entschlüsselungsspeicherprocessing unit a first decryption memory zum Speichern eines Entschlüsselungsalgorithmus sowie einen zweiten Entschlüsselungsspeicher zum Speichern einer entschlüsselten Kopie des Programms aufweist.
20
for storing a decryption algorithm and a second decryption memory for storing a decrypted copy of the program.
20th
6. Vorrichtung nach Anspruch 5, dadurch gekennzeichnet, daß die entschlüsselte Kopie eine Darstellung bzw. Abbildung der Speicherplatzverteilung6. Apparatus according to claim 5, characterized in that the decrypted copy is a representation or mapping of the storage space distribution ( Speichermap ) ist, welche Elemente enthält, die 25(Storage map) is which contains elements that 25 den Programmspeicherplätzen im Programmspeicherthe program memory locations in the program memory entsprechen, und daß die Vorrichtung eine Kombiniereinrichtung umfaßt, die mit einem Eingang mit dem Datenbus beziehungsweise dem zweiten Ent- n schlüsselungsspeicher gekoppelt ist sowie mit einem Ausgang mit der Zentralverarbeitungseinheit gekoppelt ist.correspond, and that the apparatus comprises a combining means having an input coupled to the data bus n or the second decryption memory coupled and coupled with an output to the central processing unit. 7. Vorrichtung nach Anspruch 6, dadurch gekennzeich-7. Apparatus according to claim 6, characterized o_ net, daß die Entschlüsselungsschaltung ferner ob o _ net that the decryption circuit also whether 13/14 - 4 -13/14 - 4 - -A--A- eine mit dem Datenbus gekoppelte Schalteinrichtung aufweist, welche Signale von dem Programmspeicher zu der Zentralverarbeitungseinheit unter Umgehung der Kombiniereinrichtung leitet.has a switching device coupled to the data bus, which signals from the program memory to the central processing unit bypassing the combiner. 8. Vorrichtung nach Anspruch 7, dadurch gekennzeich-2Q net, daß die Schalteinrichtung einen mit dem Ausgang der Zentralverarbeitungseinheit gekoppelten Steuereingang aufweist, um Signale nur dann durch die Kombiniereinrichtung zu leiten, wenn die Signale einen Programmbefehl darstellen.8. Apparatus according to claim 7, characterized in-2Q net that the switching device is coupled to the output of the central processing unit Has control input to only pass signals through the combining device when the signals represent a program command. 9. Vorrichtung nach Anspruch 5, dadurch gekennzeichnet, daß der erste Entschlüsselungsspeicher ein Nurlesespeicher ( ROM-Speicher ) ist, in welchem ein Entschlüsselungsprogramm zur Erzeugung der entschlüsselten Kopie des verschlüsselten Programms unter Verwendung des Entschlüsselungs-Schlüssels und des Entschlüsselungsalgorithmus gespeichert ist.9. Apparatus according to claim 5, characterized in that the first decryption memory is a Read-only memory (ROM) is in which a decryption program is used to generate the decrypted copy of the encrypted program using the decryption key and the decryption algorithm is stored. 10. Vorrichtung nach Anspruch 6. dadurch gekennzeichnet, daß die Kombiniereinrichtung im Betriebszustand Signale auf dem Datenbus mit Elementen der Speichermap mittels einer reversiblen Logikoperation kombiniert.10. Apparatus according to claim 6, characterized in that the combining device in the operating state Signals on the data bus with elements of the memory map by means of a reversible logic operation combined. 11. Vorrichtung nach Anspruch 10, dadurch gekennzeichnet, daß die reversible Logikoperation eine Exklusiv-Oder-Operation ist.11. The device according to claim 10, characterized in that the reversible logic operation is a Exclusive-or operation is. 14/15 - 5 -14/15 - 5 - • · · I• · · I 12. Vorrichtung nach Anspruch 5, gekennzeichnet durch eine Einrichtung zum Entschlüsseln des Entschlüsselungs-Schlüssels falls letzterer selbst in verschlüsselter Form im Programmspeicher vorliegt, wobei die Entschlüsselungsschaltung eine Einrichtung zum Speichern eines privaten Hilfs-Entschlüsselungs-Schlüssels, ferner eine Einrichtung zum Erkennen eines öffentlichen Hilfs-Entschlüsselungs-Schlüssels in ankommenden Signalen,der mit dem privaten Hilfs-Entschlüsselungs-Schlüssel in einer mathematischen Beziehung steht, und schließlich eine Einrichtung zum Entschlüsseln des verschlüsselten Entschlüsselungs-Schlüssels vor der Erzeugung der entschlüsselten Programmkopie enthält.12. The device according to claim 5, characterized by means for decrypting the Decryption key if the latter is itself in encrypted form in the program memory is present, wherein the decryption circuit includes means for storing a private auxiliary decryption key, furthermore a device for recognizing an auxiliary public decryption key in incoming signals, which with the private auxiliary decryption key in a mathematical relationship stands, and finally a device for decrypting the encrypted Contains decryption key before the generation of the decrypted program copy. 13. Vorrichtung nach Anspruch 12, gekennzeichnet durch eine derartige Ausbildung, daß sie das Programm unter Verwendung der DES-Datenverschlüsselungs-Norm entschlüsselt und daß sie den DES-Entschlüsselungs-Schlüssel unter Ver-Wendung des RSA-Systems für öffentliche Schlüssel entschlüsselt.13. The apparatus according to claim 12, characterized by such a design that it Program using the DES data encryption standard decrypted and that they are using the DES decryption key of the RSA public key system. 14. Vorrichtung nach Anspruch 5, gekennzeichnet durch eine solche Ausbildung der Entschlüsselungsschaltung, daß sie das verschlüsselte Programm derart entschlüsselt, daß das Programm in Echtzeit laufen kann, wobei jeder Programmbefehl entschlüsselt und der Zentralverarbeitungseinrichtung zur Ausführung zugeführt wird.14. The device according to claim 5, characterized by such a design of the decryption circuit, that it decrypts the encrypted program in such a way that the program can run in real time, with each program instruction is decrypted and fed to the central processing device for execution. 15/16 - 6 -15/16 - 6 - 15. Verfahren zum Verhindern einer unbefugten Vervielfältigung von oder eines unbefugten Zugangs zu Computerprogrammen in einem zur Ausführung solcher Programme bestimmten Computer, gekennzeichnet durch folgende Verfahrensschritte :15. Procedures to prevent unauthorized reproduction of or unauthorized access to computer programs in one for execution computers specific to such programs, characterized by the following process steps : In einem Speicher des Computers wird eirfIn a memory of the computer eirf Programm in verschlüsselter Form gespeichert, undProgram saved in encrypted form, and - das Programm wird durch Eingabe von Befehlen innerhalb des Programms in einen gegen unbefugten Zugang gesicherten Modul ausgeführt, wobei der Modul zumindest einen Teil einer Zentralverarbeitungseinheit und ein Entschlüsselungsgercit umfaßt.- the program is converted into a counter by entering commands within the program run unauthorized access secured module, the module at least a part a central processing unit and a decryption device. 16. Verfahren zum Verhindern einer unbefugten Vervielfältigung von oder eines unbefugten Zugangs zu Computerprogrammen in einem zur Ausführung solcher Programme bestimmten Computer,16. Process to prevent unauthorized reproduction of or unauthorized access to Computer programs in a computer designed to run such programs, gekennzeichnet durch folgende Verfahrensschritte :characterized by the following process steps: - In dem Computer wird ein gegen unbefugten Zugang gesicherter Modul vorgesehen, welcher- A module secured against unauthorized access is provided in the computer, which eine Zentralverarbeitungseinheit oder zumindest einen Teil einer Zentralverarbeitungseinheit sowie eine Entschlüsselungsschaltung mit einem ersten Entschlüsselungsspeicher enthält; 35a central processing unit or at least a part of a central processing unit and a decryption circuit having a first decryption memory; 35 16/ - 7 -16 / - 7 - - ein Programm wird unter Verwendung eines Verschlüsselungs-Schlüssels verschlüsselt;- a program is made using an encryption key encrypted; das verschlüsselte Programm und der Schlüssel werden in einem Speicher des Computers gespeichert, wobei dieser Speicher außerhalb des gegen unbefugten Zugang gesicherten Modulsthe encrypted program and the key are stored in a memory of the computer, this memory outside of the module secured against unauthorized access ist;is; der Schlüssel und das verschlüsselte Programm werden von dem externen Speicher dem gegen unbefugten Zugang gesicherten Modul zugeführt,the key and the encrypted program are stored in the external memory against unauthorized persons Access secured module supplied, woraus in dem ersten Entschlüsselungsspeicher eine entschlüsselte Kopie des Programms unter Verwendung des Schlüssels erzeugt wird;from which a decrypted copy of the program is stored in the first decryption memory Using the key is generated; - das verschlüsselte Programm wird dem gegen unbefugten Zugang gesicherten Modul zugeführt, um das Programm zu entschlüsseln, und- the encrypted program is protected against unauthorized persons Access secured module fed to decrypt the program, and das entschlüsselte Programm wird in der Zentral-Verarbeitungseinheit in Echtzeit ausgeführt,the decrypted program is in the central processing unit executed in real time, wobei die das entschlüsselte Programm wiedergebenden elektrischen Signale auf elektrische Bauelemente innerhalb des gegen unbefugten Zugang gesicherten Moduls beschränkt sind.wherein the electrical signals reproducing the decrypted program are applied to electrical components are restricted within the module secured against unauthorized access. 17. Verfahren nach Anspruch 16, dadurch gekennzeichnet, daß die entschlüsselte Programmkopie eine Entschlüsselungsspeicher-Map im ersten Entschlüsselungsspeicher unfaßt und daß das verschlüsselte17. The method according to claim 16, characterized in that the decrypted program copy a Decryption memory map in the first decryption memory and that the encrypted 16/17 - 8 -16/17 - 8 - Programm mit der Speicher-Map kombiniert wird, wo-C bei Inkremente des verschlüsselten Programms sequentiell der Kombiniereinrichtung zugeführt werden und jedes einzelne Inkrement vor dem Kombinieren des nächsten Inkrementes kombiniert und ausgeführt wird.Program is combined with the memory map, where-C for increments of the encrypted program are sequentially fed to the combining device and each individual increment before the Combining the next increment is combined and executed. 18. Verfahren nach Anspruch 17, dadurch gekennzeichnet, daß der Verschlüsselungs-Schritt die Verschlüsselung nur der Befehle oder der Operationscodes des Programms unter Beibehaltung der Daten 18. The method according to claim 17, characterized in that that the encryption step encrypts only the commands or the operation codes of the program while retaining the data _ .. und Operanden als Klartext umfaßt, daß die Aus-ο _ .. and operands as plain text includes that the from-ο führung des Programms die Feststellung umfaßt, welche der dem gegen unbefugten Zugang gesicherten Modul zugeführten Signale Programmbefehle sind, und daß eine Einrichtung zum Kombinieren ankommender „„ Signale mit der Speicher-Map nur dann wirksam gemacht wird, wenn die ankommenden Signale als Programmbefehle wiedergebende Signale festgestellt werden.running the program includes determining which the signals supplied to the module secured against unauthorized access are program commands, and that means for combining incoming "" signals with the memory map only then enabled is detected when the incoming signals are detected as signals reproducing program commands will. „p. "P. 19. Verfahren nach Anspruch 16, gekennzeichnet durch folgende weitere Verfahrensschritte:19. The method according to claim 16, characterized by the following further procedural steps: Der Schlüssel wird vor der Speicherung des verschlüsselten Programms und des Schlüssels ver-OQ schlüsselt, undThe key is ver-OQ before the encrypted program and the key are stored keys, and - der Schlüssel wird in dem gegen unbefugten Zugang gesicherten Modul vor der Erzeugung der entschlüsselten Programmkopie entschlüsselt.- The key is decrypted in the module secured against unauthorized access before the generation Program copy decrypted. 17/18 - 9 -17/18 - 9 - — Q —- Q - 20. Verfahren nach Anspruch 19, dadurch gekennzeichnet, daß die Verschlüsselung des Schlüssels unter Verwendung eines öffentlichen Schlüsselsystems, eines in dem extenen Speicher gespeicherten hilfsweisen öffentlichen Schlüssels und eines dem öffentlichen Schlüssel zugeordneten hilfsweisen privaten20. The method according to claim 19, characterized in that the encryption of the key using a public key system, an auxiliary stored in the external memory public key and an auxiliary private assigned to the public key IQ Schlüssels erfolgt, welch letzterer in einem zweiten Entschlüsselungsspeicher innerhalb des gegen unbefugten Zugang gesicherten Moduls gespeichert ist und zur Entschlüsselung des erstgenannten Schlüssels dient. IQ key takes place, which latter is stored in a second decryption memory within the module secured against unauthorized access and is used to decrypt the first-mentioned key. 21. Verfahren nach Anspruch 20, dadurch gekennzeichnet, daß das Programm unter Verwendung des DES-Algorithmus verschlüsselt wird und daß der Schlüssel zur Erzeugung der entschlüsselten Programmkopie selber unter Verwendung des öffentlichen RSA-Schlüsselsystems verschlüsselt wird.21. The method according to claim 20, characterized in that the program using the DES algorithm is encrypted and that the key for generating the decrypted program copy itself is encrypted using the RSA public key system. 22. Verfahren nach Anspruch 21, dadurch gekennzeichnet, daß der Verschlüsselungsschritt die Verwendung;des DES-Algorithmus in der Schlüssel (Chiffre)-Rückikopplungsbetriebsart umfaßt. [ 22. The method according to claim 21, characterized in that the step of encrypting comprises using the DES algorithm in the key (cipher) feedback mode. [ 18/18 /
DE19833321910 1982-06-16 1983-06-16 DEVICE AND METHOD FOR PROTECTING SOFTWARE Withdrawn DE3321910A1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB08217456A GB2122777A (en) 1982-06-16 1982-06-16 Software protection apparatus and method

Publications (1)

Publication Number Publication Date
DE3321910A1 true DE3321910A1 (en) 1984-03-01

Family

ID=10531086

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19833321910 Withdrawn DE3321910A1 (en) 1982-06-16 1983-06-16 DEVICE AND METHOD FOR PROTECTING SOFTWARE

Country Status (4)

Country Link
JP (1) JPS5947646A (en)
DE (1) DE3321910A1 (en)
FR (1) FR2529000A1 (en)
GB (1) GB2122777A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3432721A1 (en) * 1984-09-06 1986-03-06 Ruediger Hahn Data-protecting standard microprocessor
AT390148B (en) * 1985-08-22 1990-03-26 Novomatic Automatenindustrie U ARRANGEMENT FOR DECRYLING COMMANDS

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0121853A3 (en) * 1983-04-04 1988-01-13 BURROUGHS CORPORATION (a Delaware corporation) Data processing system having public encryption and private decryption keys
US4550350A (en) * 1983-07-19 1985-10-29 Software Distribution Newtork, Inc. Secure copy method and device for stored programs
GB2149944A (en) * 1983-11-14 1985-06-19 Softnet Inc Software distribution
GB2158622A (en) * 1983-12-21 1985-11-13 Goran Anders Henrik Hemdal Computer controlled systems
EP0171456A1 (en) * 1984-08-17 1986-02-19 Thomas O. Westheimer Computer software protection system
GB2165377A (en) * 1984-09-19 1986-04-09 Itt Ind Ltd A computer element
EP0184023A1 (en) * 1984-11-13 1986-06-11 Software Protect Ltd. Method and apparatus for the protection against unauthorized operation of protected programmes in a microcomputer
GB2204970A (en) * 1987-05-19 1988-11-23 Gen Electric Co Plc Data storage system
GB2205667B (en) * 1987-06-12 1991-11-06 Ncr Co Method of controlling the operation of security modules
FR2644261B1 (en) * 1989-03-09 1994-06-10 Vernois Goulven DEVICE FOR TRANSFERRING DECODING CODING OF COMPUTER FILES
WO1990010908A1 (en) * 1989-03-09 1990-09-20 Vernois Goulven Data processing device for the security of copyrights
FR2666160B2 (en) * 1990-08-21 1994-08-12 Vernois Goulven DEVICE FOR ANTICIPATING THE NEEDS OF A DECODING MODULE AND ORGANIZING FILES AND PROGRAMS WITH A VIEW TO THIS ANTICIPATION.
JP4153653B2 (en) 2000-10-31 2008-09-24 株式会社東芝 Microprocessor and data protection method
TWI222609B (en) * 2001-07-25 2004-10-21 Matsushita Electric Ind Co Ltd A method of producing a decrypting apparatus having a cryptographic device and cryptographic information, a system for providing such device and information, and the decrypting apparatus produced by the production method
US9177145B2 (en) * 2009-03-24 2015-11-03 Sophos Limited Modified file tracking on virtual machines
US10642970B2 (en) * 2017-12-12 2020-05-05 John Almeida Virus immune computer system and method
CN117892265B (en) * 2024-03-15 2024-05-31 沈阳市蔚然科技有限公司 Digital media copyright protection method and system for intelligent terminal

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4262329A (en) * 1978-03-27 1981-04-14 Computation Planning, Inc. Security system for data processing
CA1147823A (en) * 1978-07-24 1983-06-07 Robert M. Best Crypto microprocessor for executing enciphered programs
US4306289A (en) * 1980-02-04 1981-12-15 Western Electric Company, Inc. Digital computer having code conversion apparatus for an encrypted program

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3432721A1 (en) * 1984-09-06 1986-03-06 Ruediger Hahn Data-protecting standard microprocessor
AT390148B (en) * 1985-08-22 1990-03-26 Novomatic Automatenindustrie U ARRANGEMENT FOR DECRYLING COMMANDS

Also Published As

Publication number Publication date
FR2529000A1 (en) 1983-12-23
JPS5947646A (en) 1984-03-17
GB2122777A (en) 1984-01-18

Similar Documents

Publication Publication Date Title
DE3321910A1 (en) DEVICE AND METHOD FOR PROTECTING SOFTWARE
DE60006041T2 (en) METHOD FOR VERIFYING THE USE OF PUBLIC KEYS GENERATED BY A LOADED SYSTEM
DE69724946T2 (en) Program rental system and method for renting programs
EP0283432B1 (en) Method and apparatus for protecting secret elements in a cryptographic devices network with open key management
DE19827659B4 (en) System and method for storing data and protecting the data against unauthorized access
DE69021936T2 (en) Method and system for data transmission.
DE19532617C2 (en) Method and device for sealing computer data
DE102008006759B4 (en) Processor assembly and method of operating the processor assembly without reducing overall security
WO2013083375A1 (en) Device and method for decrypting data
DE102006046456A1 (en) Circuit arrangement for controlling access to cryptographic function of cryptographic unit, has cryptographic unit for providing cryptographic function and access control interface examines access requirement of application computer program
DE112005001654B4 (en) Method for transmitting direct-proof private keys to devices by means of a distribution CD
DE102014208855A1 (en) Method for carrying out communication between control units
WO2011054639A1 (en) Cryptographic hardware module or method for updating a cryptographic key
DE112005001666T5 (en) A method for providing private direct proof keys in signed groups to devices using a distribution CD
DE102014208838A1 (en) Method for operating a control device
EP0280035B1 (en) Method for the programme securing and for integrity checking of a secured programme
DE102016210788B4 (en) Component for processing data worthy of protection and method for implementing a security function for protecting data worthy of protection in such a component
DE60100363T2 (en) SEQUENCE NUMBERING MECHANISM FOR SECURING EXECUTION INTEGRITY OF INTERDEPENDENT SMART CARD APPLICATIONS
EP3556047B1 (en) Programmable hardware security module and method on a programmable hardware security module
DE102015201298A1 (en) Method for the cryptographic processing of data
DE60307719T2 (en) Exchange data using public-key encryption
DE102006000930A1 (en) Memory device, memory devices, methods for moving data from a first memory device to a second memory device and computer program elements
DE69019593T2 (en) Safe handling of keys using control vectors with reusable monitoring.
WO1998026537A1 (en) Method for electronically protected storage of data in a data bank
EP1482453A2 (en) Method of loading data in a memory device

Legal Events

Date Code Title Description
8127 New person/name/address of the applicant

Owner name: OPEN COMPUTER SECURITY LTD., BRIGHTON, EAST SUSSEX

8128 New person/name/address of the agent

Representative=s name: KLUNKER, H., DIPL.-ING. DR.RER.NAT. SCHMITT-NILSON

8139 Disposal/non-payment of the annual fee