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 copyingInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/79—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in 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
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)
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)
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 |
-
1980
- 1980-11-19 DE DE19803043582 patent/DE3043582A1/en not_active Withdrawn
Cited By (2)
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 |