DE3043582A1 - Read only memory stored program protection - draws data from two memories via an XOR-gate and scrambles it to prevent unauthorised copying - Google Patents

Read only memory stored program protection - draws data from two memories via an XOR-gate and scrambles it to prevent unauthorised copying

Info

Publication number
DE3043582A1
DE3043582A1 DE19803043582 DE3043582A DE3043582A1 DE 3043582 A1 DE3043582 A1 DE 3043582A1 DE 19803043582 DE19803043582 DE 19803043582 DE 3043582 A DE3043582 A DE 3043582A DE 3043582 A1 DE3043582 A1 DE 3043582A1
Authority
DE
Germany
Prior art keywords
memory
read
gate
memories
data
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
DE19803043582
Other languages
German (de)
Inventor
Ewald von Prof. Dr. 6750 Kaiserslautern Puttkamer
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.)
Puttkamer ewald Von profdr
Original Assignee
Puttkamer ewald Von profdr
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 Puttkamer ewald Von profdr filed Critical Puttkamer ewald Von profdr
Priority to DE19803043582 priority Critical patent/DE3043582A1/en
Publication of DE3043582A1 publication Critical patent/DE3043582A1/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/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/79Protecting 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 semiconductor storage media, e.g. directly-addressable memories

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

A security system for a data processing system has circuitry to prevent copying of programmes stored in memory. The system has a read only memory as a programme store together with an auxiliary memory, asynchronous switching circuitry, a register and a comparator. Output of both memories are finally combined using an exclusive OR gate. In operation the input address bits access both memories. The auxiliary memory high order bits control the asynchronous circuitry with a comparison process determining which values are transmitted. By mixing the contents of the memories the programme is not capable of interpretation by unauthorised personnel.

Description

Ein Verfahren zum Schutz eines Programms in einem A method of protecting a program in one

Nurlesespeicher gegen direktes Kopieren Beschreibung des Verfahrens Die Erfindung betrifft den Schutz eines Programms in einem Nurlesespeicher gegen unbefugtes Kopieren. Read-only memory against direct copying Description of the procedure The invention relates to the protection of a program in a read-only memory against unauthorized copying.

Da bislang das Kopieren eines Programmes so einfach ist, wird der Preis eines Programmes speziell auf dem Kleincomputermarkt im wesentlichem gegeben durch den Preis des Trägermediums. An dieser Stelle greift die Erfindung an.Since copying a program has so far been so easy, the The price of a program especially given on the small computer market is essentially given by the price of the carrier medium. This is where the invention comes into play.

Durch einen Zusatzspeicher, ein Register und ein asynchrone6 Schaltwerk zu einem Nurlesespeicher kann erzwungen werden, daß der Nurlesespeicher in einer vorgegebenen Folge von Adressen ausgelesen werden muß. Der Versuch, den Speicher linear auszulesen (normaler Kopiervorgang) führt in einen Zustand, bei dem die ausgelesenen Daten gegenüber der korrekten Version verwürfelt sind. Die Zusammenfassung von Nurlesespeicher, Zusatzspeicher, Register und asynchronem Schaltwerk in einer integrierten Schaltung macht Schaltwerk, Register und Zusatzspeicher von außen her unzugänglich und damit ein Umgehen der Sicherung mühsam.With an additional memory, a register and an asynchronous6 switching mechanism to a read-only memory can be forced that the read-only memory in a predetermined sequence of addresses must be read out. Trying to save the memory linear readout (normal copying process) leads to a state in which the read out Data are scrambled compared to the correct version. The summary of read-only memory, Additional memory, register and asynchronous switching mechanism in one integrated circuit makes the switchgear, register and additional memory inaccessible from the outside and therefore inaccessible Bypassing the fuse is cumbersome.

Die gegen Kopieren zu schützenden Informationen sind Programme mit ihren konstanten Werten. Eine CPU kann die Programme problemlos durchlaufen. Ein Kopieren des Inhalts des Nurlesespeichers dagegen ist nur möglich auf dem Umwege über einen Disassembler und einen Menschen, der Programme analysiert, und damit kopieren kann. Ein Programm allein kann das nicht lösen (HOR 80).The information to be protected against copying are programs with their constant values. A CPU can run through the programs without any problems. A Copying the contents of the read-only memory, on the other hand, is only possible indirectly about a disassembler and a person who analyzes programs, and with that can copy. A program alone cannot solve this (HOR 80).

Interner Aufbau von Schaltwerken, Register und Zusatzspeicher Dem Nurlesespeicher, der das zu schützende Programm enthält, ist ein Zusatzspeicher zugeordnet. Er wird von den höherwertigen Adressbits des Nurlesespeichers angesprochen. Jedem Segment von 2**m worten des Nurlesespeichers ist ein Wort des Zusatzspeichers zugeordnet.Internal structure of switching mechanisms, registers and additional memory Dem Read-only memory, which contains the program to be protected, is additional memory assigned. It is addressed by the more significant address bits of the read-only memory. Each segment of 2 ** m words of the read-only memory is one word of the additional memory assigned.

Durch Informationen aus dem Zusatzspeicher wird ein internes asynchrones Schaltwerk beeinflußt. Abb.l zeigt das Zustandsdiagramm.An internal asynchronous Rear derailleur affected. Fig.l shows the state diagram.

Das Schaltwerk hat drei Zustände: A: Neutralzustand B: Fallenzustand C: Überbrückungszustand Das Schaltwerk wird durch zwei Bits des Zusatzspeichers und das Ergebnis eines Vergleichs zwischen Daten des Zusatzspeichers und dem Inhalt eines Registers gesteuert: : Bei Auftreten von a = 1 geht das Werk aus dem Neutralzustand in den Uberbrückungszustand über.The rear derailleur has three states: A: neutral state B: trap state C: Override state The switching mechanism is controlled by two bits of the additional memory and the result of a comparison between data of the auxiliary memory and the content controlled by a register:: When a = 1 occurs, the plant goes out of the neutral state into the bypass state.

: Tritt im Überbrückungszustand b = 1 auf und ist der Vergleich negativ, schaltet das Werk in den Fallenzustand, in dem es permanent bis zum Abschalten der Betriebsspannung bleibt. : If b = 1 occurs in the bridged state and the comparison is negative, switches the movement into the trap state, in which it is permanent until the Operating voltage remains.

Beim Einschalten der Betriebsspannung wird zunächst der Neutralzustand angenommen. In diesem Zustand werden die Ausgangsdaten verwürfelt, solange der Vergleich negativ ist. Im Fallenzustand wird die Zuordnung von Adresse zu Inhalt des Nurlesespeichers permanent verwürfelt. Das Steuersignal für die Verwürflung ist S = A + B + b Dienen zwei Bits eines Wortes im Zusatzspeicher zur Erzeugung der Eingangsignale des asynchronen Schaltwerks, so werden die restlichen Bits eines Wortes, im folgenden Z genannt, zur eigendlichen Sicherung benutzt: Im Überbrückungszustand werden mit a = 1 diese Bits in einem Register R gespeichert. Damit erhält der Speicher ein zusätzliches Gedächtnis. Wird b = 1, so wird der Registerinhalt mit den Bits Z in einem Vergleicher verglichen, und wenn Z = R, geschieht nichts. Ist dagegen Z » R, werden die Ausgangsdaten verwürfelt. im Fallenzustand wird der Vergleich permanent gemacht und verwürfelt i.A die Daten des Nurlesespeichers.When the operating voltage is switched on, the neutral state is first accepted. In this state, the output data are scrambled for as long as the comparison is made is negative. In the trap state, the assignment of address to content of the read-only memory permanently scrambled. The control signal for scrambling is S = A + B + b Serve two bits of a word in the additional memory for generating the input signals of the asynchronous Switching mechanism, then the remaining bits of a word, in the following called Z, used for intrinsic security: In the bridged state with a = 1 these Bits are stored in a register R. This gives the memory an additional one Memory. If b = 1, the contents of the register with bits Z are used in a comparator compared, and if Z = R nothing happens. If, on the other hand, Z »R, the output data scrambled. in the case of the trap, the comparison is made permanently and scrambled generally the data of the read-only memory.

Der eigentliche Schutz des Programms besteht in dieser Vergleichsanordnung, denn beim Abschalten und Wiedereinschalten der Betriebsspannung wird zwar der Fallenzustand verlassen, das Register ist dann aber auf Mull gesetzt, und mit b = 1 wird i. A. Z 1 0 sein und damit werden die Daten des Nurlesespeichers verwürfelt. Die Sicherungsinformation Z sind Zufallszahlen, die durch kein systematisches Verfahren vom Kopierer reproduziert werden können.The actual protection of the program consists in this comparison arrangement, because when the operating voltage is switched off and switched on again, the trap state occurs left, but the register is then set to Mull, and with b = 1 i. A. Z 1 0 and thus the data of the read-only memory are scrambled. The backup information Z are random numbers that are not reproduced by the copier by any systematic process can be.

Die Verwürfelung kann angreifen an den Daten oder der Adresse , die an den Nurlesespeicher intern gelegt wird. Um die Geschwindigkeit hoch zu halten, wird an den Daten angegriffen, wie in Abb. 2 gezeigt: Der Ausgang des Nurlesespeichers wird über Exklusiv-Oder Gatter mit R und Z verrechnet. Ist R = Z oder S = 0 geschieht nichts.The scrambling can attack the data or the address that is placed internally on the read-only memory. To keep the speed high is attacked on the data, as shown in Fig. 2: The output of the read-only memory is offset with R and Z via exclusive-or gates. If R = Z or S = 0 happens nothing.

Ein spezielles Ladeprogramm erzeugt aus einem vorgelegten Assemblerprogramm den absoluten Binärcode des Nurlesespeichers und die Information für den Zusatzspeicher. Das Prinzip des Schutzes zeigt Abb. 3. Es werde eine "if-then-else" Konstruktion betrachtet, die als Graph vereinfacht ist: Knoten sind bedingte Sprünge im Programm, Sprünge sind gestrichelte Pfeile, lineare Codestücke sind durch gezogene Linien.A special loading program generates from a submitted assembler program the absolute binary code of the read-only memory and the information for the additional memory. The principle of protection is shown in Fig. 3. Let there be an "if-then-else" construction which is simplified as a graph: nodes are conditional jumps in the program, Jumps are dashed arrows, linear pieces of code are shown by solid lines.

Dieser Aufschreibung von Code ist eine Segmenteinteilung überlagert. In einem Segment vor der Abfrage ist a = 1 und Z = ZO gesetzt. (Ubergang in den Überbrükkungszustand) In einem Segment im "then"-Zweig ist a = 1 und Z beliebig gesetzt.A segment division is superimposed on this writing of code. In a segment before the query, a = 1 and Z = ZO is set. (Transition to the Bridging state) In a segment in the "then" branch, a = 1 and Z is arbitrary set.

Damit wird in R dieser Wert Z gespeichert, wenn der "then"-Zweig durchlaufen wird. Im "else"-Zweig ist ein Segment mit b = 1, Z = ZO besetzt.This means that this value Z is stored in R when the "then" branch is passed through will. In the "else" branch there is a segment with b = 1, Z = ZO.

Wird das Programm von der CPU durchlaufen, so wird entweder der "then"-Zweig durchlaufen ohne den "else"-Zweig zu berühren oder umgekehrt.If the program is run by the CPU, either the "then" branch run through without touching the "else" branch or vice versa.

Beim linearen Kopieren wird aber erst im "then"-Zweig das Segment mit a = 1 und Z berührt, so daß dieses Z in R gespeichert wird, und im "else"-Zweig anschließend durch b = 1 der Fallenzustand erreicht, da ZO 4 R ist.With linear copying, however, the segment is only created in the "then" branch with a = 1 and Z touched so that this Z is stored in R, and in the "else" branch then the trap state is reached by b = 1, since ZO 4 is R.

Dann werden nur noch unsinnige Daten ausgelesen werden.Then only nonsensical data will be read out.

So wird ein Kopierer genötigt, ein Erkennungsprogramm laufen zu lassen, das die "if-then-else" Konstruktion erkennt: einen Disassembler/Tracer. Der zusätzliche Aufwand, der für die Sicherung betrieben werden muß, hängt von der Wortlänge des Speichers und der gewählten Segmentlänge ab. Bei einem byteorientier ten Speicher und einer Segmentlänge von 16 Byte ist der Mehraufwand rund 6 %, wenn man die Wortlänge des Zusatzspeichers mit 8 Bit ansetzt (2 Bit zur Steuerung des Schaltwerks, 6 Sicherungsbits).So a copier is forced to run a recognition program, that recognizes the "if-then-else" construction: a disassembler / tracer. The additional The effort that must be made for the backup depends on the word length of the And the selected segment length. With a byte-oriented memory and a segment length of 16 bytes, the overhead is around 6% when you consider the word length of the additional memory with 8 bits (2 bits for controlling the switching mechanism, 6 safety bits).

Die wesentlichen Punkte des Verfahrens sind: a.) Die Verwendung von Zufallszahlen zum Schutz der Programmdaten beim Ansprechen der Sicherung.The main points of the procedure are: a.) The use of Random numbers to protect the program data when the fuse is triggered.

b. ) Die Verwendung der gleichen Zufallszahlen zum Aufbau des Sicherung"mediinismus, womit jede gesicherte Stelle im Programm individuell gesichert wird.b. ) The use of the same random numbers to build up the fuse "mediinismus, with which each secured position in the program is secured individually.

c.) Der Vergleich einer Zufallszahl aus einem Zusatzspeicher rit einer früher in ein Register eingeschriebenen Zufallszahl und Steuerung der Verwürflung durch diesen Vergleich.c.) The comparison of a random number from an additional memory rit a random number previously written in a register and scrambling control through this comparison.

d.) Verwendung eines asynchronen Schaltwerks mit drei Zuständen, gesteuert durch den Vergleicher und zwei Bits des Zusatzspeichers.d.) Use of an asynchronous switching mechanism with three states, controlled by the comparator and two bits of the additional memory.

Literatur: HOR 80: R. N. Horspool, N. Marovac An approach to the problem of detranslation of computer programs The Computer Journal, 23, 233, (1980)Literature: HOR 80: R. N. Horspool, N. Marovac An approach to the problem of detranslation of computer programs The Computer Journal, 23, 233, (1980)

Claims (4)

Patentansprüche: Nurlesespeicher für Programme und Daten eines Rechners, dadurch gekennzeichnet, daß mit Hilfe eines Zusatzspeichers und einer zusätzlichen Schaltung auf dem Chip des Nurlesespeichers eine Sicherung aufgebaut wird, mit der ein direktes Kopieren des Inhalts des Nurlesespeichers verhindert wird.Claims: read-only memory for programs and data of a computer, characterized in that with the help of an additional memory and an additional Circuit on the chip of the read-only memory a fuse is built with the direct copying of the contents of the read-only memory is prevented. 2. Nurlesespeicher nach Anspruch 1, dadurch gekennzeichnet, daß der Zusatzspeicher als Sicherungsinformation Zufallszahlen enthält, die sowohl den Sicherungsmechanismus aufbauen als auch die Programmdaten beim Ansprechen der Sicherung durch Verwürfelung schützen.2. Read-only memory according to claim 1, characterized in that the Additional memory as backup information contains random numbers that both the backup mechanism as well as the program data when the fuse is addressed by scrambling protection. 3. Nurlesespeicher nach Anspruch 1, dadurch gekennzeichnet, daß die Sicherung an den Ausgangsdaten des Nurlesespeichers angreift und diese ggf. durch Bildung eines "exklusiven Oder" mit den Zufallszahlen nach Anspruch 2 verwürfelt.3. Read-only memory according to claim 1, characterized in that the Backup attacks the output data of the read-only memory and this if necessary through Formation of an "exclusive or" with the random numbers according to claim 2 scrambled. 4. Nurlesespeicher nach Anspruch 1, dadurch gekennzeichnet, daß das Ansprechen der Sicherung u. a.4. Read-only memory according to claim 1, characterized in that the Responding to the fuse, among other things. gesteuert wird vom Vergleich einer Zufallszahl aus dem Zusatzspeicher mit einer früher in ein Register eingeschriebenen Zufallszahl. is controlled by comparing a random number from the additional memory with a random number previously written into a register.
DE19803043582 1980-11-19 1980-11-19 Read only memory stored program protection - draws data from two memories via an XOR-gate and scrambles it to prevent unauthorised copying Withdrawn DE3043582A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE19803043582 DE3043582A1 (en) 1980-11-19 1980-11-19 Read only memory stored program protection - draws data from two memories via an XOR-gate and scrambles it to prevent unauthorised copying

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE19803043582 DE3043582A1 (en) 1980-11-19 1980-11-19 Read only memory stored program protection - draws data from two memories via an XOR-gate and scrambles it to prevent unauthorised copying

Publications (1)

Publication Number Publication Date
DE3043582A1 true DE3043582A1 (en) 1982-09-30

Family

ID=6117107

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19803043582 Withdrawn DE3043582A1 (en) 1980-11-19 1980-11-19 Read only memory stored program protection - draws data from two memories via an XOR-gate and scrambles it to prevent unauthorised copying

Country Status (1)

Country Link
DE (1) DE3043582A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3335387A1 (en) * 1983-09-29 1985-04-11 Siemens Ag METHOD FOR PREVENTING THE RUN OF A PROGRAM ON COMPUTERS NOT APPROVED FOR THE RUN OF THIS PROGRAM
CN1293485C (en) * 2003-07-23 2007-01-03 凌阳科技股份有限公司 Processor unit and method for protecting data by data block confounding processing

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3335387A1 (en) * 1983-09-29 1985-04-11 Siemens Ag METHOD FOR PREVENTING THE RUN OF A PROGRAM ON COMPUTERS NOT APPROVED FOR THE RUN OF THIS PROGRAM
CN1293485C (en) * 2003-07-23 2007-01-03 凌阳科技股份有限公司 Processor unit and method for protecting data by data block confounding processing

Similar Documents

Publication Publication Date Title
DE2364408C3 (en) Circuit arrangement for addressing the memory locations of a memory consisting of several chips
DE1499203B1 (en) Circuit arrangement for memory protection in data processing systems with simultaneous operation
DE2142634C3 (en) Associative memory
DE68907518T2 (en) Content-addressed storage arrangement.
DE3128740C2 (en)
EP0155399A2 (en) Protection circuit for the prevention of non-authorised execution of a programme
DE1246289B (en) Condition register for a program-controlled data processing system
DE2758152A1 (en) MEMORY PROTECTION ARRANGEMENT
DE2117936A1 (en) Microprogram-controlled central unit of an electronic data processing system
DE2151472A1 (en) Microprogram memory for electronic computers
DE1909090C3 (en) Protection device for the main memory of a computer system
DE2810421A1 (en) MEMORY PROTECTION DEVICE
DE1524773B2 (en) Addressing system for storage devices
DE3043582A1 (en) Read only memory stored program protection - draws data from two memories via an XOR-gate and scrambles it to prevent unauthorised copying
DE3333894C2 (en)
DE3853482T2 (en) DEVICE FOR PROTECTING MEMORY ZONES OF AN ELECTRONIC SYSTEM WITH A MICROPROCESSOR.
DE68924479T2 (en) Device to determine if data is lost during a move operation.
EP0025855B1 (en) Computer control unit device for controlling coerced operations
DE1937259B2 (en) SELF-CHECKING FAULT DETECTION CIRCUIT
DE2457275C3 (en) Arrangement for monitoring the addressing of a microprogram memory
EP0494329B1 (en) Circuit device to map the logical address space of a processing unit onto the physical address space of a memory
DE1549446A1 (en) Digital computer
DE2000608A1 (en) Circuit arrangement for a message processing system, in particular for a message switching system
EP0011136A1 (en) Integrity protection circuitry for read-/write control storage
DE3526130C2 (en)

Legal Events

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