DE3526130C2 - - Google Patents

Info

Publication number
DE3526130C2
DE3526130C2 DE19853526130 DE3526130A DE3526130C2 DE 3526130 C2 DE3526130 C2 DE 3526130C2 DE 19853526130 DE19853526130 DE 19853526130 DE 3526130 A DE3526130 A DE 3526130A DE 3526130 C2 DE3526130 C2 DE 3526130C2
Authority
DE
Grant status
Grant
Patent type
Prior art keywords
program
address
read
protection device
memory
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.)
Expired
Application number
DE19853526130
Other languages
German (de)
Other versions
DE3526130A1 (en )
Inventor
Klaus 6760 Rockenhausen De Lang
Jochen Prof. 6750 Kaiserslautern De Beister
Joerg 6901 Wiesenbach De Weber
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.)
Lang Klaus Dipl-Ing 6750 Kaiserslautern De
Original Assignee
Lang Klaus Dipl-Ing 6750 Kaiserslautern De
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
Grant date

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/123Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/125Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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

Description

Die Erfindung betrifft einen digitalen Programmschutzbaustein zur Verhinderung der Nutzung von Programmen in Festwertspei chern auf nicht dafür vorgesehenen Digitalrechnern gemäß dem Oberbegriff des Anspruchs 1. Durch den Programmschutzbaustein wird nicht das Kopieren des Inhalts der Speicherbausteine verhindert, sondern die Nutzung kopierter Programme auf fremd den Rechnern. The invention relates to a digital program protection element in preventing the use of programs in Festwertspei manuals on non-dedicated digital computers according to the preamble of claim 1. The program protection module copying the contents of the memory chips is not prevented, but the use of copied programs on foreign computers.

Derzeit verfügbare Schutzmaßnahmen gegen unbefugte Nutzung von Programmen in Festwertspeichern stellen meist eine Kombi nation programmtechnischer und elektronischer Maßnahmen dar (Elsom, S.: Software Protection: A Review of Technics. Computer Fraud and Security Bulletin, 1983, H 12, S. 1-4). Currently available protective measures against unauthorized use of programs in read-only memories usually provide a combination nation program of technical and electronic measures (Elsom, S .: Software Protection: A Review of Technics Computer Fraud and Security Bulletin, 1983, H 12, pp 1-4. ).

Häufig wird ein Schlüsselwort, das in der Rechnerhardware fest verdrahtet ist, mit einem im Programmspeicher stehenden oder im Programm zu berechnenden Schlüssel verglichen. Frequently, a keyword that is hard-wired in the computer hardware, compared with a property in the program memory or program to be calculated key. Damit wird aber kein ausreichender Schutz gewährleistet, da nur die Stelle im Programm gefunden werden muß, an der der Schlüs sel abgefragt wird. But that no adequate protection is ensured since only the body must be found in the program where the Keyring sel is queried. Durch Disassemblieren des Programms fin det man die kritischen Programmstellen meist sehr schnell. By disassembling the fin det program to the critical points in the program usually very fast. Hat man die Schlüsselabfrage erst einmal unschädlich gemacht, läßt sich das Programm beliebig oft kopieren und in Geräten mit anderem Schlüssel oder ganz ohne Schlüssel einsetzen. If you have made the key query once harmless, the program can be copied any number of times and used with devices with other key or no key.

Bei einem Schutzprinzip von INTEL (Heinrich, P.: Die ge schützte Software. Elektronik 1985, H. 5, S. 55-57) befindet sich eine Schlüsselschaltung in speziellen Programmspeicher bausteinen. In a protection principle of INTEL (Heinrich, P .: The ge protected software. Electronics, 1985, H. 5, pp 55-57) is a key building blocks in circuit specific program memory. Die Schlüssel zweier solcher Bausteine müssen vom Prozessor gelesen und an den jeweils anderen Baustein übergeben werden. The keys of two such blocks must be read by the processor and transmitted to the respective other module. Nach erfolgreicher Übergabeprozedur wer den die Programmdaten in beiden Bausteinen frei zugänglich, so daß die gespeicherten Programme nicht mehr gegen unbefug tes Kopieren z. Following the successful transfer procedure who the program data in both blocks freely accessible, so that the stored programs to stop against for unauthorized copying tes z. B. mittels Emulator geschützt sind und mangels weiterer Schutzmechanismen nach dem Auslesen leicht für andere Rechner nutzbar gemacht werden können. B. are protected by means of emulator and can easily be made available to other computer absence of further protections after the readout.

Bei anderen Ansätzen werden spezielle Schutzschaltungen in Speicherbausteine oder in Prozessoren integriert, die Mani pulationen der Adressen oder der Daten ermöglichen. Other approaches special protection circuits in memory chips or processors are integrated, which Mani populations of addresses or the data allow. In v. In v. Puttkammer, E: Ein Vergleich verschiedener Möglichkeiten zum Schutz eines Programms gegen direktes Kopieren (Angewandte Informatik, 1982, H. 4, S. 225-229) und der Offenlegungs schrift DE 33 15 992 A1 sind Möglichkeiten beschrieben, wie geeignete Zusatzinformationen im Programmspeicher zur Über prüfung des regulären Programmablaufs herangezogen werden können. Puttkamer, E: A comparison of different ways to protect a program against direct copying (Applied computer science, 1982, H. 4, pp 225-229) and the Disclosure specification DE 33 15 992 A1 describes the options as appropriate additional information in the program memory can be used on test of the regular program execution. In der Offenlegungsschrift DE 34 15 209 A1 wird eine Methode dargestellt, wie der Prozessor zur Ausgabe von Adres sen gebracht wird, die nicht mit den korrekten Speicheradressen übereinstimmen, bei normalem Programmablauf aber von der Schutzeinheit in die korrekten Adressen umgesetzt werden. In the published patent application DE 34 15 209 A1 a method is shown how the processor is brought to issue Adres sen, which do not coincide with the correct memory address, but are reacted at normal program sequence of the protection unit in the correct addresses. Wesentlicher Nachteil dieser Verfahren ist, daß speziell zugeschnittene Speicherbausteine entwickelt werden müssen, die die Schutzeinheit mit enthalten, da die Verbindungen zwi schen Schutzeinheit und Speicherbaustein nicht zugänglich sein dürfen. The main disadvantage of this method is that specially tailored memory modules must be developed that, since the connections interim rule protection unit and memory module may not be accessible to the protective unit included. Eine andere Lösung (EP 00 97 621 A1) sieht vor, die Daten in Programmspeicher zu verschlüsseln und sie über eine Entschlüsselungseinheit während der Pro grammabwicklung wieder auszulesen. Another solution (EP 00 97 621 A1) proposes to encrypt the data in program memory and program settlement again read a decryption unit during the Pro. Das in der Patentanmeldung EP 00 97 621 A1 beschriebene Verfahren hat allerdings den Nachteil, daß die Verbindung zwischen Prozessor und Ent schlüsseler nicht zugänglich sein darf, da sonst der Spei cherinhalt nicht zugänglich sein darf, da sonst der Spei cherinhalt bei entfernten oder inaktiviertem Prozessor leicht über den Entschlüsseler auszulesen wäre. However, the method described in Patent Application EP 00 97 621 A1 has the disadvantage that the connection between the processor and Ent not, may decryptor be accessible otherwise cheri halt the SpeI must not be accessible, because otherwise the SpeI cheri stop at remote or inactivated processor easily would be read out via the descrambler. Die Entschlüssel lungseinheit sollte also in den Prozessor integriert werden. Decryption, development unit should therefore be integrated into the processor.

Es gibt weitere Mechanismen zum Schutz von Programmen, die auf Disketten stehen (z. B. PROLOK (Software Protection Systems. Firmenschrift. Vault Corporation, 1983), (Everett, D.: PADLOCK: Solution to Software Protection ? Computer Fraud and Security Bulletin, 1983, H. 12, S. 5-7). Diese sind aber unbrauchbar oder zu aufwendig, als daß sie als Schutz für Programme in Festwertspeichern einzusetzen wären. There are other mechanisms for the protection of programs that are on diskettes (eg PROLOK (Software Protection Systems company publication Vault Corporation, 1983), (Everett, D .: padlock:... Solution to Computer Software Protection Fraud and Security Bulletin? , 1983, H. 12, S. 5-7). These are useless or too expensive, but that they would use as protection for programs in read-only memories.

Nachteile der aufgeführten Mechanismen liegen in ihrer teil weise nur zeitlich begrenzten Wirkung oder darin, daß beson dere Speicher- oder Prozessorbausteine notwendig sind, um die Schutzschaltungen unterzubringen, was die Wirtschaftlichkeit sehr in Frage stellt. Disadvantages of the mechanisms listed are in their partially only temporary effect, or that special particular memory or processor modules are necessary to accommodate the protection circuits, the efficiency is very much in question.

Der Erfindung liegt die Aufgabe zugrunde, einen Programm schutzbaustein zu schaffen, der von den Speicherbausteinen mit dem Programm und vom Prozessor getrennt ist, ihn so zu betreiben, daß das Programm dauerhaft geschützt ist, und ihn derart zu gestalten, daß dem Versuch, die Arbeitsweise des Bausteins auszulesen, entgegengewirkt wird. The invention has for its object to provide a program protection module, which is separate from the memory devices with the program and the processor, to operate it so that the program is permanently protected, and to make it such that an attempt to the operation of read out of the block, is counteracted.

Diese Aufgabe wird erfindungsgemäß durch die im Anspruch 1 angegebenen Merkmale gelöst. This object is achieved by the features indicated in claim 1. Weitere Ausgestaltungen sind in den Unteransprüchen ge kennzeichnet. Further refinements are marked ge in the dependent claims.

Der digitale Programmschutzbaustein hat den Vorteil, daß die Software nicht um Schlüsselabfragen oder ähnliche, dem Schutz dienende Mechanismen ergänzt werden muß und daß er in einer einzigen integrierten Schaltung außerhalb der Programmspei cherbausteine untergebracht werden kann. The digital program protection module has the advantage that the software must be updated not to key queries or the like, serving the protection mechanisms, and that it can be accommodated in a single integrated circuit outside the Programmspei cherbausteine. Er schützt die Pro grammdaten zu jeder Zeit und ist zusammen mit Standard speicherbausteinen verwendbar. It protects the Pro program data at any time and can be used along with standard memory building blocks. Der Inhalt der Speicherbau steine bleibt zwar beliebig kopierbar, das Programm kann aber ohne den Programmschutzbaustein, der nicht kopierbar ist, nicht laufen. Although the contents of the storage building stones remain arbitrarily copied, but the program can not run without the program protection module which can not be copied. Werden zur Realisierung des Programmschutzbau steins programmierbare Logikbausteine verwendet, kommt man auch bei kleinen Stückzahlen zu sehr kostengünstigen Lösun gen. Die Wirtschaftlichkeit läßt sich weiter dadurch erhöhen, daß in den Bausteinen Teile der Digitalrechnerschaltung, z. Be for realizing the Programmschutzbau steins programmable logic devices used in coming to even small quantities at very low cost Lösun. The efficiency can be further increased by the fact that the blocks in parts of the digital computing circuit such. B. die Chip-Select-Dekodierung, mit aufgenommen werden. B. are added with Chip Select decoding. Da die Kosten des Programmschutzbausteins im ungünstigen Fall wenige Prozent des Programmpreises betragen, sind die Ein sparungen durch den Schutz des Programms sicher wesentlich größer als die Aufwendungen für den Programmschutzbaustein. As the cost of the program protection device in the worst case amount to a few percent of the program price, the A are savings by protecting the program certainly much greater than the cost of the program protection device.

Ein weiterer Vorteil der Verwendung des Programmschutzbau steins ist der erzielte Know-How-Schutz. Another advantage of using the Programmschutzbau steins is the achieved know-how protection. Da das Programm als Ganzes kaum zugänglich ist, sind auch die im Programm ent haltenen Algorithmen gegen unbefugte Nutzung geschützt. Because the program is difficult to access as a whole, the ent preserved in the program algorithms against unauthorized use are protected.

Ein Ausführungsbeispiel der Erfindung ist in der Zeichnung dargestellt und wird anschließend näher beschrieben. An embodiment of the invention is illustrated in the drawings and will be described in more detail. Es zeigt It shows

Fig. 1 Innerer Aufbau des Programmschutzbausteins, Fig. 1 Inner structure of the program protection chip,

Fig. 2 Rechnerkonfiguration mit Programmschutzbaustein, Fig. 2 computer program configuration with protection module,

Fig. 3 Prinzip der Adreßabbildung von logischen auf physi sche Speicheradressen. Fig. 3 shows a schematic of the address mapping of logical to physi cal memory addresses.

Kernstück der Erfindung ist die absichtlich hergestellte Nichtübereinstimmung zwischen den vom Prozessor ausgegebenen Programmadressen und den zugehörigen physischen Speicher adressen. The core of the invention, the non-coincidence intentionally produced between the output from the processor program addresses and the corresponding physical memory addresses. Hierzu wird der Inhalt der Festwertspeicher verwür felt, so daß die Programmanweisung nicht mehr in der Rei henfolge im Speicher stehen, in der sie bei der Programmaus führung gelesen wird. For this purpose, the contents of the read-only memory verwür felt, so that the program statement not henfolge in Rei will be in memory in which it is read in the Program mouse management. Die vom Prozessor ausgegebenen Adressen sind demnach nicht direkt verwendbar, sondern müssen erst in Speicheradressen umgerechnet werden. The addresses issued by the processor, therefore it can not be directly used, must first be converted into memory addresses. Hierzu dient der Pro grammschutzbaustein, der passend vom Programm mitgeliefert werden muß und zwischen Prozessor und Programmspeicher zu schalten ist ( Fig. 2). For this purpose, the program is Pro protection module, which must be appropriately supplied by the program and to switch between the processor and program memory is (Fig. 2). Verschiedene Programme werden unter schiedlich verwürfelt und können deshalb nur mit ebenfalls unterschiedlichen Schlüsselbausteinen entschlüsselt werden. Various programs are scrambled differently and therefore can be decrypted only with likewise different key blocks.

Um einem Auslesen der im Baustein abgelegten Abbildungsvor schrift entgegenzuwirken, wird sie während des Programm laufs geändert. To counteract a readout of the data stored in the block Abbildungsvor writing, it is changed during program execution. Hierzu wird das Programm in Abschnitte mit unterschiedlicher Adreßabbildung unterteilt, die in ver schiedenen Bereichen des Speichers abelegt sind. For this purpose, the program is divided into sections with different address map that are abelegt ver in different areas of the memory. Die Adreß bereiche, unter denen die Programmteile vom Prozessor aus angesprochen werden, sollten sich möglichst weit überlappen ( Fig. 3). The address areas in which the program parts to be addressed from the processor, should as far as possible overlap (Fig. 3). Beim Übergang von einem Programmteil zum nächsten muß von der bisherigen auf die zum neuen Abschnitt passende Abbildungsvorschrift umgeschaltet werden. In the transition from one program to the next part is to be switched from the previous to the right to new section mapping rule. Ähnlich wie bei der Verwendung von Speicherverwaltungsbausteinen (MMU) fin det der Prozessor jetzt unter den gleichen logischen Adres sen wie vorher ein völlig anderes Programmstück. Similar to the use of memory management blocks (MMU) fin det the processor now under the same logical Adres sen as before a completely different program piece. Folglich fände ein Angreifer, der allein die Ein- und Ausgänge des Schlüsselbausteins beobachtet, keine eindeutige Abbildungs vorschrift. Consequently, would find an attacker who observed only the inputs and outputs of key intermediate, regulations no clear imaging.

Wenn zudem die Zeitpunkte des Umschaltens von einer Abbil dungsvorschrift auf die nächste verschleiert werden, ist es kaum möglich, die Funktion des Schlüsselbausteins voll ständig zu erfassen, ihn zu ersetzen oder ganz zu eliminie ren. Die Abbildung der Programmadressen auf die Speicher adressen wird vom Adreßabbildungsschaltnetz ( 2 ) geleistet. In addition, when the times of switching from one Abbil dung regulations are veiled to the next, it is hardly possible to grasp the function of the key intermediate in full constantly, replace it or completely ren to Eliminations. The picture of the program addresses to the memory addresses is from Adreßabbildungsschaltnetz (2) performed. Um die Umschaltzeitpunkte zu verbergen, wird das Umschalten abhängig gemacht vom Erkennen einer vorgegebenen Trigger adresse oder -adreßfolge, die nicht eigens zu diesem Zweck ins Programm aufgenommen wird, sondern schon für den normalen Ablauf notwendig ist. To hide the changeover, switching is made dependent on the detection of a predetermined trigger address or -adreßfolge that is not included in the program for this purpose, but it is already necessary for the normal functioning. Dadurch entstehen im Programm keine auffälligen Stellen. This means that no conspicuous places in the program. Voraussetzung dafür ist, daß der Schlüsselbaustein auf das Programm oder eine Familie von Programmen zugeschnitten ist. The prerequisite is that the key element is tailored to the program or a family of programs. Die Umschaltung der Abbildung wird vom Schaltwerk ( 1 ) vorgenommen. The switching of the image is performed by the switching mechanism (1).

Die variable Adreßabbildung als Schutzmaßnahme ist aber nur sinnvoll, wenn der Schlüsselbaustein selbst vor unbefugtem Kopieren und Manipulieren sicher ist und nicht durch einen anderen Baustein ersetzt werden kann. but the variable address mapping as a protective measure is useful only when the key block is safe even from unauthorized copying and manipulation and can not be replaced by another block. Bauelemente zur Rea lisierung von Schlüsselbausteinen sind z. Components for Rea capitalization of key building blocks are for. B. Gate-Arrays, Voll-Kunden-ICs, aber auch schon PAL-Bausteine. As gate arrays, full customer ICs, but even PAL devices. Gate-Arrays und Vollkunden-ICs lassen sich nur unter hohem Kostenaufwand von einem Halbleiterhersteller kopieren. Gate arrays and full customer ICs can be copied only at great expense from a semiconductor manufacturer. PAL-Bausteine be sitzen eine letzte Sicherung; PAL devices be sitting a final backup; brennt man sie durch, kann der Baustein auch mit Hilfe eines Programmiergeräts weder aus gelesen noch kopiert werden. to burn through, the block can be read from or copied with the help of a programmer either. Alle genannten Bausteinarten können die komplette Schaltung nach Fig. 1 aufnehmen. All mentioned types of blocks can record the complete circuit of FIG. 1.

Die Ausgänge des Adreßabbildungsnetzes werden über ein bau steininternes, getaktetes Register geführt, damit man die Abbildungsvorschrift nicht einfach bei abgeklemmtem Taktsi gnal und konstantem Schaltwerkzustand statisch auslesen kann ( 3 ). The outputs of the Adreßabbildungsnetzes are combined into one building stone internal, clocked register, so you can not beat the mapping rule to read static gnal and constant derailleur state disconnected, Taktsi (3). Wenn aber zu Ausleseversuchen ein Takt benötigt wird, führt dies wegen der Zustandsänderungen im Schalt werk mit großer Wahrscheinlichkeit zu einer unbeabsich tigten Umschaltung der Adreßabbildung, was wiederum die Ergebnisse unbrauchbar macht. And when these selection tests, a clock is required, this will result because of the changes of state in the switch factory likely to uninten saturated switching the address map, which in turn makes the results useless.

Um ein lineares Auslesen des Speichers von der Prozessorseite her durch den eingebauten und funktionierenden Schlüsselbau stein zu vereiteln, erkennt dies das Schaltwerk ( 1 ) und schaltet die Adreßabbildung so um, daß nichts Sinnvolles oder nur Bruchstücke aus dem Speicher zu lesen sind. A linear reading the memory to defeat of the processor side stone by the built-in and operational key building, is recognized by the switching mechanism (1) and switches the address map that way, that nothing meaningful or only fragments from the memory to be read. Das uner laubte Auslesen wird beispielsweise daran erkannt, daß ein Lesezyklus zu lange dauert oder daß zu viele Operanden lesezyklen aufeinander folgen. The uner laubte reading, for example, recognized by the fact that a read cycle takes too long or too many operands read cycles follow one another. Eine sinnvolle Adreßabbildung wird außerdem erst freigegeben, wenn nach jedem Rücksetzvor gang ein korrekter Programmstart erkannt wurde. A useful address mapping will also be released only if a correct transition program start was detected after each Rücksetzvor.

Die Abbildung durch Mitprotokollieren des Programmlaufs herauszufinden ist an sich schon sehr aufwendig, wird aber durch die bereits beschriebene Umschaltung der Adreßabbil dung weiter erschwert. The figure through parallel logging program run out in itself is very complicated, but is further complicated by the already described switching of Adreßabbil dung.

Beim Schreiben des Programms müssen die unterschiedlich zu verwürfelnden Programmteile als getrennte Module geschrieben, übersetzt und gebunden werden. When writing the program, the different scrambled program elements must be written, compiled and linked as separate modules. Wo die Grenze zwischen den Teilen liegt, ist völlig unerheblich. Where the boundary between the parts is, is completely irrelevant. Beim Binden sollte da rauf geachtet werden, daß sich die logischen Adreßbereiche der Programmteile möglichst viel überlappen. Upon binding should be taken up there, that the logical address areas of the program parts overlap as much as possible.

Nach dem Binden der Programmteile sind noch die Programm adressen in die Speicheradressen unzurechnen, bevor das Pro gramm in Festwertspeicher programmiert wird. After binding the parts of the program, the program still addresses unzurechnen in the memory addresses before the pro gram is programmed into read-only memory. Diese Umrechnung ist leicht mit Hilfe eines Rechnerprogramms zu bewerkstelli gen. This conversion is easy to gen bewerkstelli using a computer program.

Claims (4)

  1. 1. Digitaler Programmschutzbaustein zur Verhinderung der Nut zung von Programmen in Festwertspeichern auf nicht darür vor gesehenen Digitalrechnern, bestehend aus einem Schaltwerk für Ausleseschutz und Abbildungsumschaltung ( 1 ), das erlaubte und unerlaubte Zugriffe auf den Programmspeicher unterscheidet und Signale ( 7 ) zur Auswahl einer Adreßabbildung erzeugt, die an ein Adreßabbildungsschaltnetz ( 2 ) geleitet werden, welches in Abhängigkeit von den Werten der Signale ( 7 ) zur Auswahl einer Adreßabbildung Werte von Adreßvariablen ( 4 ) zu neuen Werten von Adreßvariablen ( 8 ) umkodiert, dadurch gekennzeichnet, daß das Schaltwerk ( 1 ), das aus einem Zustandsspeicher ( 1 a) und aus einem Überführungsschaltnetz ( 1 ) besteht, zeitlich aufeinan derfolgende Signalkombinationen von Adreß- ( 4 ) und Steuer variablen ( 5 ), die vom Prozessor des Digitalrechners ausgege ben wurden, auf ihre Zulässigkeit hin prüft und zu den Signa len ( 7 ) verarbeitet, durch die bei unzulä 1. Digital program protection device for preventing the groove does not wetting of programs in read-only memories to darür before seen digital computers, consisting of a switching device for read-out protection and Figure switch (1), discriminates the allowed and unauthorized access to the program memory and signals (7) for selecting an address map produced which to a Adreßabbildungsschaltnetz (2) are conducted, which recodes in dependence on the values of the signals (7) for selecting an address map values of address variable (4) to new values of address variables (8), characterized in that the switching mechanism ( 1), which consists of a state memory (1 a) and (a transfer switching network 1), time aufeinan derfolgende signal combinations of address (4) and control variable (5), the ausgege by the processor of the digital computer were ben, the legitimacy of the checks and the Signa len (7) processed by the at are inadequate ssigen Folgen von Kombinationen eine unbrauchbare Adreßabbildung ausgewählt wird, bei zulässigen Folgen dagegen die gewählte Adreßabbil dung erhalten bleibt oder beim Erkennen festgelegter, zulässi ger Folgen von Signalkombinationen, die abhängig vom Programm fluß auftreten, umschaltet auf eine andere, für den weiteren Programmablauf notwendige Adreßabbildung, wobei das Adreßab bildungsschaltnetz ( 2 ) so aufgebaut ist, daß mit jeder Adreß abbildung ein anderer Teil des Programmspeichers für den Prozessor zugänglich wird, der Prozessor aber zur Adressierung des freigegebenen Bereichs immer Adressen aus dem gleichen Adreßbereich verwendet, so daß er je nach eingechalteter Abbildung unter den gleichen ausgegebenen Adressen andere Speicherinhalte vorfindet, und die neuen Adreßvariablen ( 8 ) in einem flankengetakteten Register ( 3 ) gepuffert werden, wobei das Einspeichern in das Register ( 3 ) mit demselben Taktsignal ( 9 ) erfolgt, das auch den Zustandsspeicher ( 1 a) lar consequences of combinations of an unusable address mapping is selected in valid sequences, however, the selected Adreßabbil remains dung or when detecting specified, admissible ger sequences of signal combinations that occur depending on the program flow, switch to another, necessary for the further program execution address mapping, wherein the Adreßab constructed formation switching network (2) so that with each address mapping another part of the program memory for the processor is available, but the processor always addresses from the same address space used for addressing of the shared area, so that it depending on eingechalteter Figure under the same output addresses finds other memory contents, and the new address variable (8) in an edge-clocked register (3) are buffered, wherein the storing occurs in the register (3) with the same clock signal (9), which is also the state memory (1 a ) des Schalt werks ( 1 ) taktet und mit den Speicheradreßvariablen ( 6 ) am Regi sterausgang der Programmspeicher angesteuert wird. the switching mechanism (1) and clocked with the Speicheradreßvariablen (6) at the regi sterausgang the program memory is driven.
  2. 2. Digitaler Programmschutzbaustein nach Anspruch 1, dadurch gekennzeichnet, daß Si gnalfolgen bei den Adreß- ( 4 ) und Steuervariablen ( 5 ) als unzu lässig erkannt werden, wenn ein Speicherlesezyklus zu lange dauert. 2. Digital program protection device according to claim 1, characterized in that Si gnalfolgen at the address (4) and control variables (5) as are recognized inadmissible when a memory read cycle takes too long.
  3. 3. Digitaler Programmschutzbaustein nach Anspruch 1, dadurch gekennzeichnet, daß Si gnalfolgen bei den Adreß- ( 4 ) und Steuervariablen ( 5 ) als unzulässig erkannt werden, wenn zuviele Operandenlesezyklen aufeinanderfolgen. 3. Digital program protection device according to claim 1, characterized in that Si gnalfolgen at the address (4) and control variables (5) are detected as invalid if too many consecutive operand read cycles.
  4. 4. Digitaler Programmschutzbaustein nach Anspruch 1, dadurch gekennzeichnet, daß Si gnalfolgen bei den Adreß- ( 4 ) und Steuervariablen ( 5 ) als unzu lässig erkannt werden, wenn nach dem Rücksetzen des Rechners nicht eine vorgegebne Folge von Signalkombinationen der Adreß- ( 4 ) und Steuervariablen ( 5 ) durchlaufen wird. 4. Digital program protection device according to claim 1, characterized in that Si gnalfolgen at the address (4) and control variables (5) are detected as inadmissible unless a vorgegebne sequence of signal combinations of the address after the reset of the computer (4) and control variables (5) is passed through.
DE19853526130 1985-07-22 1985-07-22 Expired DE3526130C2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE19853526130 DE3526130C2 (en) 1985-07-22 1985-07-22

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE19853526130 DE3526130C2 (en) 1985-07-22 1985-07-22

Publications (2)

Publication Number Publication Date
DE3526130A1 true DE3526130A1 (en) 1987-01-29
DE3526130C2 true DE3526130C2 (en) 1988-12-29

Family

ID=6276400

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19853526130 Expired DE3526130C2 (en) 1985-07-22 1985-07-22

Country Status (1)

Country Link
DE (1) DE3526130C2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19634712A1 (en) * 1996-06-14 1997-12-18 Erland Dr Wittkoetter Apparatus and method for transmitting protected and displaying electronically published documents

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0520775B2 (en) * 1987-11-13 1993-03-22 Tokyo Shibaura Electric Co

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL8201847A (en) * 1982-05-06 1983-12-01 Philips Nv A device for protecting against unauthorized reading of program words to be memorized in a memory.
JPS59501128A (en) * 1982-06-21 1984-06-28
DE3415209A1 (en) * 1983-04-29 1984-10-31 Philips Nv Memory unit having a memory and a protection unit

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19634712A1 (en) * 1996-06-14 1997-12-18 Erland Dr Wittkoetter Apparatus and method for transmitting protected and displaying electronically published documents
DE19634712C2 (en) * 1996-06-14 1998-04-23 Erland Dr Wittkoetter Apparatus and method for transmitting protected and displaying electronically published documents

Also Published As

Publication number Publication date Type
DE3526130A1 (en) 1987-01-29 application

Similar Documents

Publication Publication Date Title
US3576544A (en) Storage protection system
US3328768A (en) Storage protection systems
US5802541A (en) Method and apparatus in a data processing system for using chip selects to perform a memory management function
US4593353A (en) Software protection method and apparatus
US5408626A (en) One clock address pipelining in segmentation unit
US3264615A (en) Memory protection system
US5131091A (en) Memory card including copy protection
US5297277A (en) Apparatus for monitoring data transfers of an oemi channel interface
EP0084441A2 (en) Method and apparatus for the protection of proprietary computer software
US3594732A (en) General purpose digital computer
US4332009A (en) Memory protection system
US4698617A (en) ROM Protection scheme
EP0121853A2 (en) Data processing system having public encryption and private decryption keys
US4325116A (en) Parallel storage access by multiprocessors
US6397301B1 (en) Preventing access to secure area of a cache
EP0114522A2 (en) ROM protection device
US4791565A (en) Apparatus for controlling the use of computer software
US20050081101A1 (en) Implementation-efficient multiple-counter value hardware performance counter
US5530752A (en) Systems and methods for protecting software from unlicensed copying and use
US4525777A (en) Split-cycle cache system with SCU controlled cache clearing during cache store access period
US4764959A (en) Single-chip microcomputer with encryptable function on program memory
US4199810A (en) Radiation hardened register file
US4523271A (en) Software protection method and apparatus
US5675645A (en) Method and apparatus for securing executable programs against copying
US5301231A (en) User defined function facility

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee