CH666972A5 - Verfahren und einrichtung zur verschluesselten datenuebertragung in datenverarbeitungsanlagen. - Google Patents
Verfahren und einrichtung zur verschluesselten datenuebertragung in datenverarbeitungsanlagen. Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1408—Protection against unauthorised use of memory or access to memory by using cryptography
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction 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)
- 666 9722PATENTANSPRÜCHE1. 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. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass in einem Befehlsdecodierer einprogrammierte Befehlsdeco-diermuster vom abzuarbeitenden Programm alternativ angesprochen werden.
- 3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass jedes der Befehlsdecodiermuster einer bestimmten Adressgruppe zugeordnet wird.
- 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. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass ungleiche verschlüsselte Operationscodes gleiche Operationen zur Folge haben.
- 6. Einrichtung zur Durchführung des Verfahrens nach Anspruch 1, dadurch gekennzeichnet, dass der Befehlsdecoder Speicherelemente aufweist und dass er programmierbar ausgebildet ist.
- 7. Einrichtung nach Anspruch 6, dadurch gekennzeichnet, dass der programmierbare Befehlsdecoder in einem Mikroprozessor-Chip integriert ist.
- 8. Einrichtung nach Anspruch 6, dadurch gekennzeichnet, dass der Befehlsdecoder mindestens teilweise ausserhalb des Prozessor-Chips angeordnet ist.
- 9. Einrichtung nach Anspruch 8, dadurch gekennzeichnet, dass mindestens ein dem Befehlsdecoder (32) zugeordneter Speicher (35, 24) ausserhalb des Mikroprozessor-Chips angeordnet ist.
- 10. Einrichtung nach Anspruch 8, dadurch gekennzeichnet, dass der gesamte Befehlsdecoder (24) ausserhalb des Mikroprozessor-Chips angeordnet ist.
- 11. Einrichtung nach Anspruch 8, dadurch gekennzeichnet, dass die ausserhalb des Mikroprozessor-Chips angeordneten Bauteile mit diesem in einer Hybridschaltung verbunden sind.
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)
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)
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 |
-
1984
- 1984-07-02 CH CH317384A patent/CH666972A5/de not_active IP Right Cessation
-
1985
- 1985-04-04 DE DE19853512341 patent/DE3512341A1/de not_active Ceased
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 |