CH666972A5 - Verfahren und einrichtung zur verschluesselten datenuebertragung in datenverarbeitungsanlagen. - Google Patents

Verfahren und einrichtung zur verschluesselten datenuebertragung in datenverarbeitungsanlagen. Download PDF

Info

Publication number
CH666972A5
CH666972A5 CH317384A CH317384A CH666972A5 CH 666972 A5 CH666972 A5 CH 666972A5 CH 317384 A CH317384 A CH 317384A CH 317384 A CH317384 A CH 317384A CH 666972 A5 CH666972 A5 CH 666972A5
Authority
CH
Switzerland
Prior art keywords
command
command decoder
instruction
decoder
microprocessor chip
Prior art date
Application number
CH317384A
Other languages
English (en)
Inventor
Ruediger Hahn
Henry Kunz
Original Assignee
Software Protect 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 Software Protect Ltd filed Critical Software Protect Ltd
Priority to CH317384A priority Critical patent/CH666972A5/de
Priority to DE19853512341 priority patent/DE3512341A1/de
Publication of CH666972A5 publication Critical patent/CH666972A5/de

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields

Landscapes

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

Description

BESCHREIBUNG
Die Erfindung betrifft ein Verfahren und eine Einrichtung zur verschlüsselten Datenübertragung in Datenverarbeitungsanlagen, gemäss dem Oberbegriff von Patentanspruch 1 bzw. 6.
Die zum Betreiben von Datenverarbeitungsanlagen erforderlichen Betriebsprogramme sowie auch Anwenderprogramme stellen einen erheblichen materiellen Wert dar, der denjenigen der Anlage selbst nicht selten bei weitem übertrifft. Es ist hinlänglich bekannt, dass derartige Programme immer wieder unberechtigterweise kopiert werden, wodurch den Programmherstellern beträchtliche materielle Schäden entstehen. Es ist daher nicht verwunderlich, dass die Programmhersteller Verfahren zum Schutz ihrer Werke anwenden, um das unberechtigte Kopieren von berechtigt in den Verkehr gebrachten Programmen zu unterbinden. Erschwerend wirkt sich die Notwendigkeit aus, von jedem erworbenen Programm Sicherheitskopien anfertigen zu müssen, um gegen Beschädigungen des Programmträgers oder gegen Fehlmanipulationen geschützt zu sein. Ausserdem hat es sich erwiesen, dass bisher keines der bekannten Schutzverfahren absolute Gewähr gegen Raubkopien bieten kann, da der relativ hohe Marktpreis guter Programme zu erheblichen Anstrengungen auf der Seite von «Knack»-Spezialisten ermuntert. Es sind sogar Programme zum Überwinden von Kopier-schutz-Massnahmen auf dem Markt erhältlich.
Es ist Aufgabe der vorliegenden Erfindung, ein Verfahren und eine Einrichtung der eingangs definierten Art dahingehend weiterzuentwickeln, dass durch gesteuertes Eingreifen in den Ablauf der Befehlsdecodierung eine Möglichkeit zur Verschlüsselung von Programmen durch den Programmhersteller geschaffen wird, wobei die Entschlüsselung nur über einen durch den Programmhersteller selbst zu definierenden Code möglich sein soll.
Diese Aufgabe wird erfindungsgemäss durch die in den Patentansprüchen 1 und 6 definierten Merkmale gelöst.
Damit wird erreicht, dass vom Programmhersteller verschlüsselte Programme nur mit Hilfe eines durch den Programmhersteller selbst definierten Schlüssels innerhalb der Zentraleinheit des Rechners entschlüsselt werden können. Nur ein mit den «richtigen» Befehlsmustern ausgestatteter Prozessor kann die geschützten Programme oder Programmteile verarbeiten. Durch eine dynamische und nicht mehr statische Gestaltung der Befehlsdecodierung, also durch eine von entsprechenden Signalen gesteuerte Beeinflussung der Befehlsdecodierung, wird das Aufdecken eines Programmschutzes entscheidend erschwert, so dass ohne subtile Kenntnisse der angewendeten Verschlüsselungsart ein unberechtigtes Auslesen und Kopieren solcher Programme nicht mehr möglich ist. Die berechtigte Benutzung der Programme wird dagegen durch die beanspruchten Massnahmen ermöglicht, ohne dass der Benützer irgendwelche Einschränkungen im Ablauf gegenüber dem Standard-Prozessor in Kauf nehmen müsste.
Im folgenden wird die Erfindung anhand bevorzugter Ausführungsbeispiele mit Hilfe der Zeichnungen näher erläutert. Es zeigen:
Fig. 1 die prinzipielle Organisation eines Prozessors unter Einschluss eines ersten Ausführungsbeispiels der Erfindung, Fig. 2 ein zweites Ausführungsbeispiel der Erfindung, Fig. 3 ein drittes Ausführungsbeispiel und Fig. 4 ein weiteres Ausführungsbeispiel.
Gemäss der Darstellung nach Fig. 1 enthält ein handelsüblicher Prozessor drei Bustypen, über welche er mit seiner Peripherie kommuniziert: einen Datenbus 1, einen Adressbus 2 und einen Steuerbus 3. Mittels des Adressbus 2, welcher unidirektio-nal ausgebildet ist, bestimmt der Prozessor den zu aktivierenden Teil der Peripherie. Der Datenbus 1, welcher bidirektional ausgebildet ist, ermöglicht den Austausch von Daten. Dabei liefert der Steuerbus 3 die notwendigen Steuerinformationen, z.B. Signale zur Festlegung der Richtung des beabsichtigten Datenflusses.
Zur elektrisch einwandfreien Ankopplung und Anpassung an die Gegebenheiten der Peripherie ist in der Datenbusleitung eine Treiberschaltung 4 vorgesehen, welche den äusseren Datenbus 1 mit einem internen Datenbus 5 verkoppelt. Dabei dient der interne Datenbus 5 unter anderem dem folgenden Informationsaustausch:
vom äusseren Datenbus 1 zu internen Arbeitsregistern 6 und umgekehrt,
vom äusseren Datenbus 1 bzw. von den internen Arbeitsregistern 6 zu einer arithmetischen und logischen Recheneinheit (ALU) 7 und zurück,
vom äusseren Datenbus 1 zu einem internen Instruktionsregister 8.
Im Instruktionsregister 8 werden Operationscodes abgelegt, die dann einem Instruktionsdecoder 9 zugeführt werden. Dieser liefert schliesslich die notwendigen Informationen an eine Ablaufsteuerung 10.
Der Programmablauf in einem derartigen Prozessor besteht im Abarbeiten einer vorgegebenen Sequenz von Befehlen. Dabei besteht jeder Befehl aus einem Operationscode und, sofern vorhanden, einem oder mehreren Operanden.
5
10
15
20
25
30
35
40
45
50
55
60
65
Aus der Interpretation des Operationscodes im Instruktionsdecoder 9 folgt für jeden Befehl:
wie viele Operanden eingelesen werden müssen,
wo die Operanden abgelegt werden sollen und wie sie interpretiert werden müssen,
welche Operation durchzuführen ist.
Diese Art der Befehlsdecodierung ist gemäss dem Stand der Technik durch die Hersteller der Prozessoren fest vorgegeben.
Die grundsätzliche Idee der vorliegenden Erfindung, die im folgenden anhand weiterer Ausführungsbeispiele noch näher erläutert wird, liegt demgegenüber im Durchbrechen der fest vorgegebenen Befehlsdecodierung. Stattdessen wird dem Programmhersteller eine Möglichkeit geboten, auf die Art der Befehlsdecodierung selbst Einfluss zu nehmen. Im Beispiel nach Fig. 1 kann dies durch programmierbare Beeinflussung der Befehlsdecodierung im Instruktionsdecoder 9 geschehen. Es kann aber auch durch dem Prozessorhersteller vorbehaltene Auslegung separater Schaltungsteile geschehen; und zwar auf einem Chip oder in einer Hybridschaltung, wie dies später noch erläutert wird. Bei beiden Lösungen kann nur ein mit Mitteln zu «richtigen» Decodierung ausgestatteter Prozessor die geschützten Programme oder Programmteile verarbeiten.
In einem Ausführungsbeispiel, das anhand von Fig. 2 erläutert wird, ist gegenüber dem Beispiel nach Fig. 1 der programmierbare Instruktionsdecoder 9 auf einen Bereich ausserhalb des eigentlichen Prozessors verlegt.
Im einzelnen sind bei einer externen Instruktionsdecodie-rung gemäss Fig. 2 der Ausgang 20 des Prozessor-internen Instruktionsregisters und der Eingang 22 der Ablaufsteuerung 23 aus dem Prozessor herausgeführt und mit einem externen Speicherelement 24 verbunden, welches als Instruktionsdecoder dient. Zum Schutz vor unbefugtem Auslesen können der umrandete Rumpfprozessor und der Speicher 24 auf einer Hybridschaltung integriert sein.
Grundsätzlich sind zur Realisierung der Erfindung gemäss dem heutigen Stand der Halbleitertechnik beispielsweise folgende Wege möglich:
Maskenprogrammierung,
einmalige Programmierung im Feld, z.B. nach dem «fusible link»-Verfahren,
Feldprogrammierung mit Löschmöglichkeit durch Ultraviolettstrahlung (EPROM),
666 972
Feldprogrammierung mit elektrischer Löschmöglichkeit (EEPROM),
Realisation als flüchtiger Speicher (RAM), der eine Pufferbatterie zur Erhaltung der Muster zur Befehlsdecodierung erfordert.
In Abwandlung des zuvor beschriebenen Ausführungsbeispiels, welches eine programmierbare Instruktionsdecodierung vollständig ausserhalb des Prozessors vorsieht, ist in dem Ausführungsbeispiel nach Fig. 3 ein üblicher Instruktionsdecoder 32 auf dem Prozessor-Chip selbst angeordnet. Ein externer Speicher 35 in Form eines PROM, EPROM, EEPROM oder RAM nimmt eine Zuordnungstabelle auf, mit welcher die Individualisierung des Instruktionsdecoders erreicht wird. Der Speicher 35 ist mit dem Ausgang 33 des auf dem Prozessor-Chip angeordneten Instruktionsregisters 34 sowie mit dem Eingang 31 des Instruktionsdecoders 32 verbunden.
Gemäss einem weiteren Ausführungsbeispiel, welches anhand von Fig. 4 erläutert wird, ist entweder für jede Adresse im Adressraum oder für Gruppen von Adressen eine andere Instruktionsdecodierung wirksam. Zu diesem Zweck ist der Adressbus 40 innerhalb des Prozessors dem Instruktionsdecoder 41 zugeführt.
In Abwandlung dieses Beispiels und in Anlehnung an das Beispiel nach Fig. 3 kann eine adressabhängige Instruktionsdecodierung auch mit Hilfe des extern angeordneten Speichers 35 gemäss Fig. 3 erreicht werden. Der Adressbus wird dann ausserhalb des Prozessor-Chips über Leitung 36 mit diesem Speicher verbunden.
In einer Kombination der Ausführungsbeispiele nach den Figuren 2 und 4 ist der Adressbus auf den ausserhalb des Prozessors angeordneten Instruktionsdecoder 24 geführt.
In einer weiteren Abwandlung der bisher beschriebenen Ausführungsbeispiele kann die im Speicher 35 aktivierte Tabelle für Prozessoren, welche Instruktionen mit mehreren Wörtern verarbeiten, vom gerade verarbeiteten Wort (Byte) abhängig gemacht werden.
Da die meisten Prozessoren die verfügbare Menge von Operationen nicht vollständig ausnutzen, lässt sich z.B. die im Prozessor-internen Speicher eingespeicherte Zuordnungstabelle derart auslegen, dass ungleiche Operationscodes gleiche Operationen zur Folge haben. Damit ergibt sich eine zusätzliche Erschwerung gegenüber Versuchen, die Zuordnungstabelle für die Operationscodes zu knacken.
3
5
10
15
20
25
30
35
40
V
2 Blätter Zeichnungen

Claims (11)

  1. 666 972
    2
    PATENTANSPRÜCHE
    1. Verfahren zur verschlüsselten Datenübertragung in Datenverarbeitungsanlagen mit Mikroprozessoren, deren interne Organisation über Daten-, Adress- und Steuerbusleitungen erfolgt und in deren Zentraleinheit Instruktionen aus einem Befehlsregister in einem Befehlsdecoder decodiert werden, dadurch gekennzeichnet, dass die Befehlsdecodierung variiert wird.
  2. 2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass in einem Befehlsdecodierer einprogrammierte Befehlsdeco-diermuster vom abzuarbeitenden Programm alternativ angesprochen werden.
  3. 3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass jedes der Befehlsdecodiermuster einer bestimmten Adressgruppe zugeordnet wird.
  4. 4. Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass die Auswahl des Befehlsdecodiermusters davon abhängig gemacht wird, welches Wort innerhalb eines Operationscodes gerade verarbeitet wird.
  5. 5. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass ungleiche verschlüsselte Operationscodes gleiche Operationen zur Folge haben.
  6. 6. Einrichtung zur Durchführung des Verfahrens nach Anspruch 1, dadurch gekennzeichnet, dass der Befehlsdecoder Speicherelemente aufweist und dass er programmierbar ausgebildet ist.
  7. 7. Einrichtung nach Anspruch 6, dadurch gekennzeichnet, dass der programmierbare Befehlsdecoder in einem Mikroprozessor-Chip integriert ist.
  8. 8. Einrichtung nach Anspruch 6, dadurch gekennzeichnet, dass der Befehlsdecoder mindestens teilweise ausserhalb des Prozessor-Chips angeordnet ist.
  9. 9. Einrichtung nach Anspruch 8, dadurch gekennzeichnet, dass mindestens ein dem Befehlsdecoder (32) zugeordneter Speicher (35, 24) ausserhalb des Mikroprozessor-Chips angeordnet ist.
  10. 10. Einrichtung nach Anspruch 8, dadurch gekennzeichnet, dass der gesamte Befehlsdecoder (24) ausserhalb des Mikroprozessor-Chips angeordnet ist.
  11. 11. Einrichtung nach Anspruch 8, dadurch gekennzeichnet, dass die ausserhalb des Mikroprozessor-Chips angeordneten Bauteile mit diesem in einer Hybridschaltung verbunden sind.
CH317384A 1984-07-02 1984-07-02 Verfahren und einrichtung zur verschluesselten datenuebertragung in datenverarbeitungsanlagen. CH666972A5 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CH317384A CH666972A5 (de) 1984-07-02 1984-07-02 Verfahren und einrichtung zur verschluesselten datenuebertragung in datenverarbeitungsanlagen.
DE19853512341 DE3512341A1 (de) 1984-07-02 1985-04-04 Verfahren und einrichtung zur verschluesselten datenuebertragung in datenverarbeitungsanlagen

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CH317384A CH666972A5 (de) 1984-07-02 1984-07-02 Verfahren und einrichtung zur verschluesselten datenuebertragung in datenverarbeitungsanlagen.

Publications (1)

Publication Number Publication Date
CH666972A5 true CH666972A5 (de) 1988-08-31

Family

ID=4250197

Family Applications (1)

Application Number Title Priority Date Filing Date
CH317384A CH666972A5 (de) 1984-07-02 1984-07-02 Verfahren und einrichtung zur verschluesselten datenuebertragung in datenverarbeitungsanlagen.

Country Status (2)

Country Link
CH (1) CH666972A5 (de)
DE (1) DE3512341A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5058164A (en) * 1990-05-03 1991-10-15 National Semiconductor Corp. Encryption of streams of addressed information to be used for program code protection
US6675298B1 (en) * 1999-08-18 2004-01-06 Sun Microsystems, Inc. Execution of instructions using op code lengths longer than standard op code lengths to encode data

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1147823A (en) * 1978-07-24 1983-06-07 Robert M. Best Crypto microprocessor for executing enciphered programs
FR2523745B1 (fr) * 1982-03-18 1987-06-26 Bull Sa Procede et dispositif de protection d'un logiciel livre par un fournisseur a un utilisateur
EP0097621A1 (de) * 1982-06-21 1984-01-04 SPL Software Protect AG Verfahren zur Verschleierung digitaler Information und Vorrichtung zur Durchführung des Verfahrens

Also Published As

Publication number Publication date
DE3512341A1 (de) 1986-01-23

Similar Documents

Publication Publication Date Title
EP0011685B1 (de) Programmierbare Speicherschutzeinrichtung für Mikroprozessorsysteme und Schaltungsanordnung mit einer derartigen Einrichtung
EP0049322B1 (de) Auslesesicherung bei Einchip-Mikroprozessoren
EP0512542B1 (de) Datenschützende Mikroprozessorschaltung für tragbare Datenträger, beispielsweise Kreditkarten
EP0155399A2 (de) Schutzanordnung zur Verhinderung der unerlaubten Ausführung eines Programms
DE19536169A1 (de) Multifunktionale Chipkarte
DE2810168A1 (de) Verfahren zum sichern eines computerprogramms gegenueber entnahme bzw. wiedergabe durch einen benutzer sowie vorrichtung zur durchfuehrung des verfahrens
DE3432721C2 (de)
EP1326256A2 (de) Verfahren und Anordnung zur Programmierung und Verifizierung von EEPROM-Pages sowie ein entsprechendes Computerprogrammprodukt und ein entsprechendes computerlesbares Speichermedium
DE10324337B4 (de) Rechnersystem und zugehöriges Verfahren zum Durchführen eines Sicherheitsprogramms
EP0276450A1 (de) Datenschutzschaltung zur Sperrung der Uebertragung von Signalen über einen Bus
DE102006035610B4 (de) Speicherzugriffssteuerung und Verfahren zur Speicherzugriffssteuerung
EP1611517B1 (de) Programmgesteuerte einheit
EP0657820B1 (de) Verfahren zum Verhindern einer unberechtigten Datenänderung bei einer Vorrichtung mit einem nichtflüchtigen Speicher
EP1338970B1 (de) Verfahren und Anordnung zur Zugriffssteuerung auf EEPROMs sowie ein entsprechendes Computerprogrammprodukt und ein entsprechendes computerlesbares Speichermedium
WO2004090730A2 (de) Programmgesteuerte einheit
CH666972A5 (de) Verfahren und einrichtung zur verschluesselten datenuebertragung in datenverarbeitungsanlagen.
DE3410497A1 (de) Rechneranordnung
DE2747304A1 (de) Einrichtung zur mikrobefehlssteuerung
EP1022659A2 (de) Schaltungsanordnung zur elektonischen Datenverarbeitung
WO1984000225A1 (en) Method for scrambling digital information and device for implementing such method
EP0890172B1 (de) Halbleiterspeichervorrichtung
DE60116658T2 (de) Datenträger mit zusatzvorrichtung
DE10315638A1 (de) Programmgesteuerte Einheit
DE102008051073A1 (de) Vorrichtung und Verfahren zum Remanipulieren von Anweisungen
DE112005002314T5 (de) Mechanismus zum Erzeugen eingeschränkter und uneingeschränkter Ausführungsumgebungen

Legal Events

Date Code Title Description
PL Patent ceased