DE3432721C2 - - Google Patents

Info

Publication number
DE3432721C2
DE3432721C2 DE19843432721 DE3432721A DE3432721C2 DE 3432721 C2 DE3432721 C2 DE 3432721C2 DE 19843432721 DE19843432721 DE 19843432721 DE 3432721 A DE3432721 A DE 3432721A DE 3432721 C2 DE3432721 C2 DE 3432721C2
Authority
DE
Germany
Prior art keywords
key
circuit
microprocessor
data
encrypted
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
DE19843432721
Other languages
English (en)
Other versions
DE3432721A1 (de
Inventor
Ruediger 8000 Muenchen De Hahn
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to DE19843432721 priority Critical patent/DE3432721A1/de
Publication of DE3432721A1 publication Critical patent/DE3432721A1/de
Application granted granted Critical
Publication of DE3432721C2 publication Critical patent/DE3432721C2/de
Granted 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/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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 ; Digital rights management [DRM]
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Storage Device Security (AREA)

Description

Die Erfindung bezieht sich auf eine datenschützende Mikro­ prozessorschaltung gemäß dem Oberbegriff des Patentanspru­ ches 1.
Die Einführung und weltweite Akzeptanz einiger weniger Standard-Mikroprozessoren für jeweils definierte Lei­ stungsanforderungen resultiert aus der gleichen Interes­ senlage von Herstellern und Abnehmern. Durch die Massen­ fertigung, ermöglicht durch einen breiten Einsatzbereich, sind günstige Preise möglich bei Standardisierung der Hardware und Anwendungsmodifikationen in der Software. Ebenso sind Standardisierungen in der Know-How-Vorberei­ tung und der Modulbereitstellung von Software für wieder­ kehrende Aufgabenstellungen bis hin zu Software-Bibliothe­ ken möglich.
Eine solche Standardisierung hat jedoch Nachteile: Die Entwicklungskosten verlagern sich immer mehr von der Hardware zur Software, die vielfach nicht ausreichend ge­ schützt ist, so daß mit Kauf eines Gerätes mit einem Standard-Mikroprozessor das spezielle Know How weiterge­ geben wird und gegebenenfalls kopiert werden kann. Der Aufwand für die Entwicklung kundenspezifischer Software ist sehr hoch und erfordert in der Regel mehrere hundert­ tausend Mark. Die Know How-Verbreitung beim Einsatz weni­ ger Standard-Mikroprozessoren vergrößert den Personen­ kreis ständig, der in Mikroprozessor-gesteuerten Geräten unerwünschte Manipulationen vornehmen kann. Außerdem sind Lizenzproduktionen, speziell im Ausland, aufgrund der be­ nötigten standardisierten Bauelemente nicht kontrollier­ bar. In jüngster Zeit wurden zur Vermeidung dieser Nach­ teile verschiedene Problemlösungen vorgeschlagen, so z. B. der Zugang zur Software über ein persönliches Paßwort, Vorsehen von internen Monitorprogrammen, die gegebenen­ falls programmierbar sind oder andere Maßnahmen zur Indi­ vidualisierung der Hardware. Diese Vorschläge sind je­ doch in der Regel nicht ausreichend, die Software zu schützen. In einigen Fällen werden sogar die eingangs ge­ schilderten Vorteile des Standard-Mikroprozessors aufge­ hoben.
Es wäre wünschenswert, einen Standard-Mikroprozessor mit Hilfe von internen Schlüsseln und interner Dechiffrierlo­ gik zu modifizieren, um so dem jeweiligen Anwender zu er­ lauben, Programme und hilfsweise auch Daten seines assemb­ liert bzw. compiliert vorliegenden Programmes bzw. auch der Daten im Originalspeichermedium dem Mikroprozessor verschlüsselt anzubieten und dadurch Kopieren der Hardware und Software bzw. eine Manipulation in Mikroprozessor- Schaltungen unmöglich zu machen. Die physikalischen und geometrischen Eigenschaften des Original-Mikroprozessors sollten weitestgehend erhalten bleiben. Ebenso sollte das erworbene Entwicklungs-Know-How mit dem entsprechenden Original-Mikroprozessor nutzbar bleiben. Die dem Original- Mikroprozessor einprägbaren Schlüssel individualisieren dabei die Hardware und Software, wobei alle Standardisie­ rungsmerkmale der Hardware-Schaltungen bzw. der Software- Module beibehalten werden. Eine mit einem solchen daten­ schützenden Mikroprozessor geschützte Schaltung ist in der Original-Hardware ablauffähig, wobei der Original-Mikro­ prozessor durch den datenschützenden Mikroprozessor und das originale Anwenderprogramm bzw. die Anwenderdaten durch die verschlüsselte Entsprechung substituiert werden.
Aus der EP 00 97 621 A1 ist eine daten­ schützende Mikroprozessorschaltung der in Rede stehenden Art bekannt. Zum Schutz von Anwenderprogrammen wird ein modifizierter Standard-Mikroprozessor verwendet, dem eine Dechiffrierschaltung zur Entschlüsselung der verschlüsselt angebotenen Daten hinzugefügt ist. Die Dechiffrierschal­ tung weist einen Schlüsselspeicher für die verschlüsselt angebotenen Daten auf, der mehrere Schlüssel für die De­ chiffrierung enthält und der für die verschlüsselt angebo­ tenen Daten selektiv zur Entschlüsselung aktivierbar ist. Die Dechiffrierschaltung ist in den Datenbus zwischen Spei­ cher und Mikroprozessor geschaltet, wobei die Ver- und Ent­ schlüsselung so erfolgt, daß die Positionen der einzelnen Datenleitungen zwischen Speicher und Mikroprozessor plan­ mäßig vertauscht werden. Diese Vertauschung erfolgt demnach nach Art eines anwählbaren Kreuzschienenvertei­ lers. Durch die Vertauschung der Positionen der einzelnen Bits innerhalb eines Bytes erscheinen sowohl in dem ver­ schlüsselten als auch in dem entschlüsselten Datenwort im­ mer die gleiche Anzahl von EINSEN und NULLEN. Außerdem mel­ det der Mikroprozessor über den Adreßbus dem Programm- und Arbeitsspeicher Rückinformationen, so z. B. Zwischener­ gebnisse bei sogenannten JUMP-Befehlen. Aus dem anschlie­ ßend verschlüsselt aus dem Programm- und Arbeitsspeicher ausgesendeten Daten können Rückschlüsse auf die tatsächli­ chen Daten und damit auch auf die Verschlüsselungsmethode gezogen werden. Trotz mehrerer Verschlüsselungsmöglichkei­ ten, die adreßabhängig angeboten werden, erhält ein Fach­ mann, der die Mikroprozessorschaltung hinsichtlich der Software kopieren will, eine Vielzahl von Informationen, die die Entschlüsselung erleichtern.
Aus der EP 00 08 033 B1 ist eine Mikropro­ zessorschaltung bekannt, der im wesentlichen sämtliche Daten aus einem externen Arbeitsspeicher verschlüsselt an­ geboten werden. Diese Mikroprozessorschaltung verwendet je­ doch keinen Standard-Mikroprozessor, sondern eine Sonderan­ fertigung. Bei dieser Mikroprozessorschaltung wird je nach dem Anwenderprogramm ein zugeordneter Schlüssel in die Mikroprozessorschaltung geladen. Dieser Schlüssel wird nur während der Abarbeitung des Programmes in den Mikroprozes­ sor eingespeist und nach Abarbeitung des Programms aus der Mikroprozessorschaltung herausgebracht. Dementsprechend kann bei dieser Mikroprozessorschaltung mit verschiedenen Schlüsseln gearbeitet werden, die jeweils auf das Anwender­ programm abgestellt sind. Die Modifizierung der einzelnen Schlüssel erfolgt z. B. abhängig von der Adresse.
Diese bekannte Mikroprozessorschaltung arbeitet nach glei­ chen Verfahren wie das Chiffrieren von Programmen. Ein ge­ wisser Datenschutz wird durch die zeitliche Verzögerung zwischen Ein- und Ausgabe der Programmteile erreicht. Die bearbeiteten und entschlüsselten Programmteile werden bei dieser bekannten Mikroprozessorschaltung in einer Queue- Serie gespeichert und aus dieser seriell abgerufen.
Aus der DE-OS 33 21 910 ist eine Mikroprozessorschaltung zum Schutz von Anwenderprogrammen beschrieben, die aus einem Standard-Mikroprozessor und einer Dechiffrierschal­ tung zur Entschlüsselung der verschlüsselt angebotenen Da­ ten besteht. In der Dechiffrierschaltung ist ein Schlüssel­ speicher vorgesehen, der durch die verschlüsselt angebote­ nen Daten selbst, insbesondere die Befehlsabrufdaten, selektiv zur Entschlüsselung aktivierbar ist. Gemäß diesem Vorschlag werden bevorzugt nur die Befehls- oder Opera­ tionssignale, die sogenanten op-codes, verschlüsselt, da hierdurch das Programm relativ sicher gegen eine Verschlüs­ selungsanalyse gemacht werden kann. Innerhalb eines Pro­ grammablaufs werden zwar nur wenige Programmteile verschlüsselt, jedoch sind die unverschlüsselt behandelten Programmteile ohne Kenntnis der wenigen verschlüsselten Operationsteile für eine Entschlüsselungsanalyse wert­ los. Allerdings kann aus gewissen Folgen oder Wiederholun­ gen unverschlüsselter Daten auf zugehörige Befehlsdaten rückgeschlossen werden, so daß zumindest ein Teileinstieg in das verschlüsselte Programm möglich ist. Bei der bekann­ ten Mikroprozessorschaltung wird daher angestrebt, den Schlüssel für das Anwenderprogramm selbst zu verschlüs­ seln, z. B. durch Privatschlüssel. Anhand dieser Privat­ schlüssel wird in der Mikroprozessorschaltung in einem Ar­ beitsspeicher eine Speichertabelle aufgebaut, in der dann die extern verschlüsselten Operationscodes entschlüsselt vorliegen. Durch eine Ansteuerschaltung werden lediglich bei Vorliegen von derartigen Operationscodes die verschlüs­ selt angebotenen Daten entschlüsselt und im Mikroprozessor bearbeitet. Trotz der mehreren Schlüssel sind jedoch die Verschlüsselungsmöglichkeit auch bei dieser Mikroprozessor­ schaltung begrenzt.
Der Erfindung liegt die Aufgabe zugrunde, eine Mikroprozes­ sorschaltung der in Rede stehenden Art anzugeben, wobei zum Schutz von Anwenderprogrammen die Verschlüsselungsmög­ lichkeiten bei gleichzeitig geringerem Speicherbedarf er­ höht werden sollen und das Zeitverhalten des verwendeten Mikroprozessors unverändert bleibt.
Diese Aufgabe ist gemäß der Erfindung durch die im kenn­ zeichnenden Teil des Patentanspruches 1 angegebenen Merkma­ le gelöst.
Demgemäß sind bei einer Mikroprozessorschaltung gemäß der Erfindung ebenfalls in einem Schlüsselspeicher mehrere Schlüssel für die Dechiffrierung enthalten, wobei jedoch eine Ansteuerschaltung vorgesehen ist, die selber als Vor­ schlüsselschaltung ausgebildet ist. Diese Vorschlüssel­ schaltung wird durch Befehlsabrufsignale, die sogenannten op-code-fetches des Mikroprozessors aktiviert. Außerdem sind der Vorschlüsselschaltung neben dem Befehlsabrufsi­ gnal weitere, nicht mit den verschlüsselt angebotenen Daten übereinstimmende Daten zuführbar, die in der Vorschlüssel­ schaltung miteinander kombinierbar sind. Entsprechend der Kombination wird dann in dem Schlüsselspeicher ein defi­ nierter Schlüssel angewählt.
Diese Kombination eines Schlüsselspeichers mit einer selbst als Vorschlüsselschaltung ausgebildeten Ansteuer­ schaltung ermöglicht eine Vielzahl von Kombinationen der Ver- und Entschlüsselung, und dieses bei relativ geringem Speicherbedarf. Die auf diese Weise möglichen zahlreichen Schlüssel brauchen selbst nicht sämtlich gespeichert zu werden, sondern ergeben sich durch die Kombination aus Schlüssel und Vorschlüssel. Zur Anwahl eines bestimmten Vorschlüssels kann z. B. ein Zähler vorgesehen sein, dem ent­ sprechend interne oder externe Daten zuführbar sind. Eben­ so können zur Bildung des Vorschlüssels weitere Mikropro­ zessor-interne Daten vorgesehen sein, z. B. Datenwörter wie Adressen selbst. Ebenso ist eine externe Ansteuerung des Vorschlüssels möglich.
Vorzugsweise werden nur die op-codes der Befehle, die mit dem Befehlsabrufsignal bereitgestellt werden, nach einem freien Substitutionscode verschlüsselt und entsprechend de­ chiffriert. Die übrigen Daten können dann unverschlüsselt vorliegen. Die Anzahl der möglichen Verschlüsselungen er­ gibt sich durch eine Permutation der Speicherplätze des Mikroprozessors, bei herkömmlichen Mikroprozessoren mit 256 Speicherplätzen demnach 256!. Der freie Substitutions­ code wird vorzugsweise so gewählt, daß die Eingangs- und Ausgangsdaten der Dechiffrierschaltung nicht die gleiche Anzahl von EINSEN und NULLEN in den Datenwörtern aufwei­ sen. Aufgrund der angegebenen Kombination des Schlüssel­ speichers mit einer Vorschlüsselschaltung als Ansteuer­ schaltung brauchen nicht sämtliche Substitutionstabellen der verwendeten Schlüssel in der Dechiffrierschaltung zur Verfügung gestellt werden. Vielmehr ist es möglich, aus den Substitutionstabellen entsprechende Bereiche auszuwäh­ len, wobei trotz der gleichen Anzahl von verwendeten Schlüsseln die Speicherkapazität und damit auch die Hard­ ware-Ausführung der Dechiffrierschaltung verkleinert wer­ den kann.
Eine Mikroprozessorschaltung gemäß der Erfindung kann in Hybridtechnik ausgeführt werden. Eine solche Ausbildung hat den Vorteil, daß die Schaltung auch gegen sogenannte harte Angriffe gesichert werden kann, bei denen versucht wird, den mechanischen Aufbau der Mikroprozessorschaltung direkt zu kopieren.
Die Schlüssel können jedoch auch direkt in das Mikropro­ gramm des Mikroprozessors eingeschrieben werden, so daß ein monolithischer Chip geschaffen wird, der praktisch nicht kopierbar ist. Auch wenn dann z. B. das verschlüssel­ te Programm aus dem Programmspeicher kopiert wird, ist es nicht möglich, dieses Programm mit einem herkömmlichen Mikroprozessor zu betreiben.
Eine Mikroprozessorschaltung gemäß der Erfindung ist dem­ nach durch Individualisierung der Hardware und Verschlüs­ seln der Software wirksam geschützt.
Außerdem bleibt auch das Zeitverhalten der Mikroprozessor­ schaltung unverändert gegenüber demjenigen eines herkömmli­ chen Standard-Mikroprozessors, so daß Standard-Mikroprozes­ soren in Datenverarbeitungsanlagen ohne weiteres gegen Mikroprozessorschaltungen gemäß der Erfindung ausgetauscht werden können.
Weitere Ausgestaltungen der Erfindung gehen aus den Unter­ ansprüchen hervor. Die Erfindung ist in zwei Ausführungs­ beispielen anhand der Zeichnung näher erläutert. In der Zeichnung stellt dar
Fig. 1 ein Blockschaltbild einer Mikroprozessorschaltung gemäß der Erfindung in Hybridtechnik;
Fig. 2 ein Blockschaltbild einer Mikroprozessorschaltung gemäß der Erfindung in monolithischem Aufbau.
Eine Mikroprozessorschaltung 1 weist als Kernstück einen Standard-Mikroprozessor 2 auf, z. B. einen Mikroprozessor Z 80, der über einen internen Datenbus 3-i, einen externen Datenbus 3-a, beides 8-Bit-Datenleitungen, ferner über einen Adreßbus 4 und Steuerleitungen 5 mit Daten arbei­ tet. Die Mikroprozessorschaltung 1 arbeitet mit einem externen Programm- und Arbeitsspeicher 6, der aus einem Festwertspeicher ROM, in dem die Programmdaten enthalten sind, und einem Arbeitsspeicher RAM zur Speicherung von Zwischenergebnissen und dergleichen zusammengesetzt ist, sowie mit weiteren Peripheriebauelementen 7 zusammen. Externer und interner Datenbus 3-a bzw. 3-i sind über einen ansteuerbaren Schlüsselspeicher 8 miteinander verkop­ pelt. Für den Schlüsselspeicher ist ein hier noch intern gestrichelt gezeichneter Bypass 3-b vorgesehen, der die Daten auf dem Datenbus 1 : 1 durchläßt, sofern der Schlüssel­ speicher nicht angesteuert ist, und dieses auch im reinen Lese- und Schreibbetrieb zum Mikroprozessor und vom Mikro­ prozessor weg tut.
Der Schlüsselspeicher, der auch als Logikschaltung aufge­ baut sein kann, wird durch das op-code-fetch-Signal akti­ viert, das ein Signal der Steuerleitungen ist bzw. aus den Signalen der Steuerleitungen entwickelt werden kann. Die­ ses op-code-fetch-Signal zeigt an, daß der Mikroprozessor 2 einen Operationsbefehl anfordert, z. B. JUMP, ADDIEREN, etc. . . .
Für den Schlüsselspeicher 8 ist eine Ansteuerschaltung 9 vorgesehen, die als Vorschlüsselschaltung ausgebildet ist. In dem Programmspeicher ROM sind die den op-code-fetch-Signalen zugeordneten Operationsbefehle für den Mikroprozessor ver­ schlüsselt abgelegt. Zur Darstellung der Operationsbefehle werden meist hexadezimale Zahlen (Hex-Zahlen) aus dem 16 "Ziffern" 0, 1, 2, . . ., 9, A, B, . . ., F verwendet, so daß ein Byte durch zwei Hexziffern angegeben wird. Die Hexzahl F 2 entspricht der Bitfolge 11110010. Die Befehlsta­ belle eines 8-Bit-Mikroprozessors beinhaltet demnach maxi­ mal 16 × 16 = 256 Bytes, in Hexschreibweise die Bytes 00, 01, . . ., FF, sofern der Mikroprozessor auf 1-Byte-Opera­ tionsbefehle beschränkt ist. Sind Mehr-Byte-Operationsbe­ fehle vorgesehen, die durch op-code-fetch-Signale repräsentiert werden, multipliziert sich die Anzahl der zur Verfügung stehenden Befehle in der Befehlstabelle entsprechend. Jede Be­ fehlstabelle kann zur Verschlüsselung entsprechend der Kom­ binationsrechnung in eine andere permutierte Befehlstabelle überführt werden. Eine derartige Permutation ist z. B. die, daß die Hexziffern 0 bis 7 durch die Hexziffern 8-F und die Hexziffern 8-F durch die Hexziffern 0-7 ersetzt werden. Insgesamt sind hier bei jeder Befehlstabelle 256! Permutationen möglich. Jeder dieser Permutationen ist eine Befehlstabelle zugeordnet, die eine bestimmte Schlüsselnum­ mer erhalten kann. Der verwendete Schlüssel dient zur Ver­ schlüsselung der durch op-code-fetch-Signale repräsentierten Operationsbefehle des Anwenderprogramms. Die Ansteuer­ schaltung 9 sorgt dafür, daß bei Abruf der einzelnen ver­ schlüsselten Operationsbefehle diese für den Mikroprozes­ sor entschlüsselt werden. Die Entschlüsselung erfolgt nur dann, wenn das Befehlsabrufsignal (op-code-fetch) anliegt.
Bei der Schlüsselsteuerung durch das op-code-fetch-Signal alleine kann nur einer der 256! Schlüssel für den gesamten Adreß­ raum des Anwenderprogramms wirken, wenn nicht nach jedem op-code-fetch-Signal auf einen anderen Schlüssel umgeschaltet wird. Die Anzahl der verwendeten Schlüssel kann jedoch durch verschiedene zusätzliche Kriterien vervielfacht wer­ den. Hierzu ist die Ansteuer- bzw. Vorschlüsselschaltung 9 vorgesehen. Die Ansteuerschaltung 9 wird durch das op- code-fetch-Signal über eine von dem Steuerbus 5 abzweigende Steuerschaltung 10 aktiviert und aktiviert dann ihrerseits den Schlüsselspeicher 8. Ein weiterer Steuereingang der An­ steuerschaltung 9 ist mit dem Ausgang eines n-stelligen Zählers 11 verbunden, dessen Eingang ebenfalls von der op- code-fetch-Leitung 10 beaufschlagt wird. Diese Zuführung des op-code-fetch-Signals zusätzlich über den n-stelligen Zähler 11 ermöglicht die Umschaltung des verwendeten Schlüssels bei Mehr-Byte-Operationsbefehlen. Ein weiterer Steuerein­ gang der Ansteuerschaltung 9 ist mit einer Abzweigung 12 von dem Adreßbus 4 verbunden. Der Ansteuerschaltung wird die jeweils anliegende Adresse bzw. ein Teil dieser Adres­ se über diese Abzweigung 12 zugeführt. Außerdem wird einem weiteren Steuereingang der Ansteuerschaltung 9 über eine Abzweigung 13 von dem internen Datenbus 3-i das gerade an­ hängige Datenwort bzw. ein Teil dieses Datenwortes zuge­ führt. Die Leitung 13 kann noch - in Fig. 1 gestrichelt dargestellt - mit dem Eingang des Zählers 11 verbunden wer­ den, um gegebenenfalls eine Schlüsselumschaltung in Abhän­ gigkeit weiterer Daten, wie befehlsergänzenen Daten, Ta­ bellendaten usw. zu ermöglichen. Außerdem kann über einen zusätzlichen externen Ausgang 14 noch ein externes Krite­ rium einem weiteren Steuereingang der Ansteuerschaltung 9 zugeführt werden. Die der Ansteuerschaltung 9 zugeführten Steuersignale werden bei Anliegen eines op-code-fetch-Signals an der Leitung 10 miteinander verknüpft. Durch diese Verknüp­ fung wird der jeweilige Schlüssel bestimmt, der für die Entschlüsselung des Programmoperationsbefehls notwendig ist.
Es ist nicht notwendig, im Schlüsselspeicher 8 sämtliche durch diese Verknüpfung möglichen permutierten Befehls­ substitutionstabellen zur Verfügung zu stellen. Durch Zu­ führung eines Teiles der Operationsbefehle über die Daten­ abzweigung 13 zur Ansteuerschaltung 9 brauchen nur Teilbe­ reiche der verwendbaren Schlüssel im Schlüsselspeicher 8 vorgesehen werden. Die Anzahl der tatsächlich verwendeten Schlüssel bleibt hierbei gleich, hingegen ist eine Schlüs­ seloptimierung möglich. Schlüsselspeicher 8 und Ansteuer­ schaltung 9 bilden gemeinsam die Dechiffrierschaltung.
Die Ver- und Entschlüsselung erfolgt entsprechend der Hard­ ware des Original-Mikroprozessors nach folgenden Kriterien:
  • a) Op-code eines Befehles, d. h. derjenige Befehlsteil, der den Befehl definiert und der mit einem Befehlsabrufsi­ gnal, dem sogenannten op-code-fetch abgerufen wird;
  • b) Datenanteil eines Befehls;
  • c) Datenanteil eines Programmes, z. B. die Tabellen;
  • d) Datenverarbeitungsbereiche eines Programmes, die im Be­ reich des Arbeitsspeichers RAM abgelegt sind.
Die Schlüssel/Vorschlüssel-Dechiffrierschaltung erkennt diese Kriterien und bearbeitet die Daten separat mit zuge­ ordneten individuellen Schlüsseln, z. B. den Schlüsseln A, B, C bzw. D.
Um die Anzahl der verfügbaren Schlüssel multiplikativ zu erhöhen, stehen weiter folgende Kriterien des Anwenderpro­ grammes zur Verfügung:
  • 1. Das Datenwort selbst;
  • 2. die Adresse, auf welcher das Datenwort appliziert wird;
  • 3. die Ordnungszahl des Datenwortes bei Mehrfachzugriffen zusammenhängender Daten;
  • 4. extern zugeführte individuelle Hard- oder Software-Kri­ terien.
Auf diese Weise werden z. B. die Schlüssel A-1, A-2, . . ., A-n, B-1, B-2, . . ., B-n, . . ., D-n definiert. Hiermit sind viele eindeutigen Kriterien zuzuordnende Schlüssel möglich. Vorzugsweise werden nur die op-codes der Befehle, die mit dem op-code-fetch abgerufen werden, nach einem freien Substitutionscode verschlüsselt und entsprechend de­ chiffriert. Die übrigen Daten können unverschlüsselt vor­ liegen. Zur Verschlüsselung und Entschlüsselung werden die oben angegebenen Kriterien herangezogen.
Die Vorschlüssel/Schlüsseltechnik, die an den obengenann­ ten Kriterien ausgerichtet ist, erlaubt eine Optimierung der zusätzlich im Mikroprozessor benötigten Hardware.
Werden z. B. zwei Adreßleitungen A 0 und A 1 als Schlüssel­ multiplikator im obigen Sinne verwendet, so wären dadurch jeweils vier Schlüssel angesprochen. Der angesprochene Schlüssel ist durch die Ordinalzahlen 1 bis 4 der Adres­ senstellen des angebotenen verschlüsselten Datums fixiert. Wird zusätzlich das Kriterium: Ordinalzahl der Stellen des Datenwortes verwendet, wobei ein Zweistufenzähler mit vier Stellen untergestellt ist, ergeben sich bereits 16 ver­ schiedene Schlüsselmöglichkeiten.
Es kann nun der Schlüsselbedarf optimiert werden, indem beispielsweise nur vier Schlüssel X 1 bis X 4 eingegeben werden. Dabei beeinflußt das zweite Kriterium (Ordinalzahl des Datenwortes) die stringent zugeordnete Ordinalzahl des ersten Kriteriums, d. h. der Adresse. Im vorliegenden Beispiel ergeben sich für die vier durch Adreßzuordnung eindeutig fixierten Schlüssel X 1 bis X 4 durch Verwendung des zusätzlichen Kriteriums Ordinalzahl des Datenwortes 4! = 24 Ordnungsschemata für die Schlüsselfolge, d. h. die Schlüsselfolgen X 1-X 2-X 3-X 4; X 2-X 4-X 3-X 1; . . . usw. Die eindeutige Zuordnung der Schlüsselfolge durch das Adreßkriterium wird damit aufgehoben. Wenn ansonsten durch die Multiplikation der zur Verfügung stehenden Schlüssel entsprechend der Kriterien Adreßabhängigkeit und Datenwortabhängigkeit 16 Schlüssel zumindest teilweise tabellarisch gespeichert werden müßten, so brauchen durch die Aufhebung der eindeutigen Zuordnung nur vier Schlüs­ sel wiederum zumindest nur teilweise zur Verfügung ge­ stellt zu werden. Der Hardware-Bedarf von 12 Zusatzschlüs­ seln ist durch Wegfall der eindeutigen Zuordnungsmöglich­ keiten kryptografisch kompensiert.
Es gibt ferner eine einfache Möglichkeit, bei Verwendung von Substitutionstabellen als Schlüssel diese unregelmä­ ßig zu gestalten: Mikroprozessoren nutzen nämlich im all­ gemeinen nicht den gesamten zur Verfügung stehenden Raum des Mikroprozessors für Operationsbefehle, so daß von vor­ neherein einige Komponenten leer sind. Außerdem werden in vielen Programmen nicht alle durch den Mikroprozessor möglichen Operationsbefehle ausgenutzt. Diese nicht ge­ nutzten Kombinationen innerhalb des Mikroprozessors bzw. des Anwenderprogrammes können als Löcher bezeichnet wer­ den. Derartige Löcher können innerhalb der Substitutions­ tabelle mehrfach belegt werden. Dem verwendeten Schlüs­ sel liegt dann keine echte Permutation sämtlicher Opera­ tionsbefehle zugrunde, sondern eine Permutation mit Mehr­ fachbelegungen, wodurch die Entschlüsselung weiterhin er­ schwert wird.
Damit ist der jeweils angesprochene Schlüssel nach dem individuellen Anwenderprogramm optimierbar.
In Fig. 2 ist ein Blockschaltdiagramm für eine nach dem gleichen Prinzip arbeitende, jedoch monolithisch aufgebau­ te Schaltung dargestellt, die eine Standard-Mikroprozessor­ zelle 1′ verwendet. Der Mikroprozessor 1′ kommuniziert über einen externen Datenbus 3′-a, einen Adreßbus 4′ und einen Steuerbus 5′ mit seiner Peripherie. Über den unidi­ rektionalen Adreßbus 4′ bestimmt der Mikroprozessor den zu aktivierenden Teil der Peripherie. Über den bidirektio­ nalen externen Datenbus 3′-a werden Daten ausgetauscht. Da­ bei liefert der Steuerbus 5′ die notwendigen Steuerinforma­ tionen, z. B. die Richtung des beabsichtigten Datenflußes.
Der externe Datenbus 3′-a ist über ein Datenbus-Interface 21 mit dem internen Datenbus 3′-i verbunden. Der interne Datenbus 3′-i dient zum Informationsaustausch zwischen dem Datenbus-Interface und einem Arbeitsregister-Array 22 in beiden Richtungen, ferner zum Informationsaustausch zwi­ schen diesem Arbeitsregister-Array 22 und einer internen Rechen- und Logikschaltung (ALU) 23 sowie zum Informations­ austausch zwischen externen Datenbus 3′-a und einem inter­ nen Befehlsregister 24. Der Ausgang des Befehlsregisters 24 ist mit einem Befehlsdecodierer 25 verbunden, der seine Informationen an eine Ablaufsteuerung 26 der zentralen Pro­ zessoreinheit (CPU) liefert.
Der Schlüsselspeicher bzw. die Schlüssellogik 8′ ist im in­ ternen Datenbus 3′-i vorgesehen. Angesteuert wird der Schlüsselspeicher 8′ von einer internen Ansteuerschaltung 9′, die als Steuergrößen für die Schlüsselumschaltung vom Adreßbus 4′ über eine Abzweigung 12′, von einem Zähler 11′ für den op-code-fetch, über einen externen zusätzlichen Anschluß 14′ und eine Datenleitungsabzweigung 13′ Eingangs­ signale erhält, die bei Vorliegen eines von der CPU-Ablauf­ steuerung 26 über eine Leitung 10′ abgezweigten op-code- fetch-Signales aktiviert wird und dann ihrerseits den Schlüsselspeicher 8′ einschaltet.
Die Arbeitsweise dieses Mikroprozessors bei der Dechiffrie­ rung der verschlüsselt angebotenen Programmdaten ist iden­ tisch wie bei dem obigen Ausführungsbeispiel, so daß sich eine nähere Erläuterung erübrigt.
Als Variante der in Fig. 2 gezeigten Version kann das Be­ fehlsregister 24 selbst als Schlüsselspeicher ausgeführt werden.

Claims (7)

1. Datenschützende Mikroprozessorschaltung zum Schutz eines in einem externen Speicher verschlüsselt vorlie­ genden Anwenderprogrammes, mit einem Standard-Mikropro­ zessor und einer Dechiffrierschaltung zur Entschlüsse­ lung der verschlüsselt angebotenen Daten, wobei die De­ chiffrierschaltung einen Schlüsselspeicher für die ver­ schlüsselt angebotenen Daten aufweist, der mehrere Schlüssel für die Dechiffrierung enthält, und der für die verschlüsselt angebotenen Daten selektiv zur Ent­ schlüsselung aktivierbar ist, dadurch gekennzeichnet, daß eine Ansteuerschaltung (9) für den Schlüsselspei­ cher (8) vorgesehen ist, die als Vorschlüsselschaltung ausgebildet ist, daß die Vorschlüsselschaltung (9) durch ein Befehlsabrufsignal (op-code-fetch) des Mikro­ prozessors aktiviert wird, daß der Vorschlüsselschal­ tung (9) neben dem Befehlsabrufsignal weitere, nicht mit den verschlüsselt angebotenen Daten übereinstimmen­ de Daten zuführbar sind, die in der Vorschlüsselschal­ tung (9) miteinander kombinierbar sind, und daß entspre­ chend der Kombination ein definierter Schlüssel in dem Schlüsselspeicher (8) angewählt wird.
2. Mikroprozessorschaltung nach Anspruch 1, dadurch gekenn­ zeichnet, daß die Vorschlüsselschaltung (9) eingangssei­ tig mit einem Zähler (11) verbunden ist, dem zur Bil­ dung des Vorschlüssels vorgesehene Daten zuführbar sind.
3. Mikroprozessorschaltung nach Anspruch 2, dadurch gekenn­ zeichnet, daß der Eingang des Zählers (11) zusätzlich über eine Abzweigung (13) mit Leitungen eines internen Datenbus (3-i) der Mikroprozessorschaltung (l) verbun­ den ist.
4. Mikroprozessorschaltung nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die Vorschlüssel­ schaltung (9) über eine Abzweigung (12) zumindest mit Teilen eines internen Adreßbus (4) verbunden ist.
5. Mikroprozessorschaltung nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die Vorschlüssel­ schaltung (9) über eine Abzweigung (13) zumindest mit einem Teil eines internen Datenbus (3-i) verbunden ist.
6. Mikroprozessorschaltung nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die Vorschlüssel­ schaltung (9) einen externen Steuereingang (14) aufweist.
7. Mikroprozessorschaltung nach Anspruch 1, dadurch gekennzeichnet, daß der Schlüsselspeicher (8) Schlüssel lediglich für die während des Befehlsabrufsignals angeforderten Opera­ tionsbefehlsteile aufweist.
DE19843432721 1984-09-06 1984-09-06 Datenschuetzender standard-mikroprozessor Granted DE3432721A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE19843432721 DE3432721A1 (de) 1984-09-06 1984-09-06 Datenschuetzender standard-mikroprozessor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE19843432721 DE3432721A1 (de) 1984-09-06 1984-09-06 Datenschuetzender standard-mikroprozessor

Publications (2)

Publication Number Publication Date
DE3432721A1 DE3432721A1 (de) 1986-03-06
DE3432721C2 true DE3432721C2 (de) 1988-09-22

Family

ID=6244755

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19843432721 Granted DE3432721A1 (de) 1984-09-06 1984-09-06 Datenschuetzender standard-mikroprozessor

Country Status (1)

Country Link
DE (1) DE3432721A1 (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4419634A1 (de) * 1994-06-04 1995-12-07 Esd Vermoegensverwaltungsgesel Entschlüsselungseinrichtung von digitalen Informationen und Verfahren zur Durchführung der Ver- und Entschlüsselung dieser
DE19605554A1 (de) * 1996-02-15 1997-08-21 Daimler Benz Ag Einrichtung zum Prüfen von Funktionselementen fahrzeugelektrischer Anlagen

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3633297A1 (de) * 1986-09-30 1988-03-31 Siemens Ag Hochwirksamer schutz von software gegen unerlaubtes oder missbraeuchliches benutzen auf anderen als auf dem oder den mit schutz ausgelieferten rechnersystem oder rechnersystemen
DE4034444A1 (de) * 1990-10-30 1992-05-14 Ant Nachrichtentech Datenschuetzender arbeitsplatzrechner
DE4420967C2 (de) * 1994-06-16 2000-02-10 Esd Vermoegensverwaltungsgesel Entschlüsselungseinrichtung von digitalen Informationen und Verfahren zur Durchführung der Ver- und Entschlüsselung dieser mit Hilfe der Entschlüsselungseinrichtung
EA000034B1 (ru) * 1997-07-18 1998-02-26 Аладин Ноледж Системс Лтд Защитное устройство для предотвращения несанкционированного использования программного продукта на компьютере
US7539876B2 (en) 2003-04-18 2009-05-26 Via Technologies, Inc. Apparatus and method for generating a cryptographic key schedule in a microprocessor
US7925891B2 (en) 2003-04-18 2011-04-12 Via Technologies, Inc. Apparatus and method for employing cryptographic functions to generate a message digest
US7536560B2 (en) 2003-04-18 2009-05-19 Via Technologies, Inc. Microprocessor apparatus and method for providing configurable cryptographic key size
US7502943B2 (en) 2003-04-18 2009-03-10 Via Technologies, Inc. Microprocessor apparatus and method for providing configurable cryptographic block cipher round results
US7529367B2 (en) 2003-04-18 2009-05-05 Via Technologies, Inc. Apparatus and method for performing transparent cipher feedback mode cryptographic functions
US7844053B2 (en) 2003-04-18 2010-11-30 Ip-First, Llc Microprocessor apparatus and method for performing block cipher cryptographic functions
US8060755B2 (en) 2003-04-18 2011-11-15 Via Technologies, Inc Apparatus and method for providing user-generated key schedule in a microprocessor cryptographic engine
US7900055B2 (en) 2003-04-18 2011-03-01 Via Technologies, Inc. Microprocessor apparatus and method for employing configurable block cipher cryptographic algorithms
US7519833B2 (en) 2003-04-18 2009-04-14 Via Technologies, Inc. Microprocessor apparatus and method for enabling configurable data block size in a cryptographic engine
US7392400B2 (en) 2003-04-18 2008-06-24 Via Technologies, Inc. Microprocessor apparatus and method for optimizing block cipher cryptographic functions
US7529368B2 (en) 2003-04-18 2009-05-05 Via Technologies, Inc. Apparatus and method for performing transparent output feedback mode cryptographic functions
US7321910B2 (en) 2003-04-18 2008-01-22 Ip-First, Llc Microprocessor apparatus and method for performing block cipher cryptographic functions
US7532722B2 (en) 2003-04-18 2009-05-12 Ip-First, Llc Apparatus and method for performing transparent block cipher cryptographic functions
US7542566B2 (en) 2003-04-18 2009-06-02 Ip-First, Llc Apparatus and method for performing transparent cipher block chaining mode cryptographic functions

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
GB2122777A (en) * 1982-06-16 1984-01-18 Open Computer Services Limited Software protection apparatus and method
WO1984000225A1 (en) * 1982-06-21 1984-01-19 Daniel Muessli Method for scrambling digital information and device for implementing such method

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4419634A1 (de) * 1994-06-04 1995-12-07 Esd Vermoegensverwaltungsgesel Entschlüsselungseinrichtung von digitalen Informationen und Verfahren zur Durchführung der Ver- und Entschlüsselung dieser
DE19605554A1 (de) * 1996-02-15 1997-08-21 Daimler Benz Ag Einrichtung zum Prüfen von Funktionselementen fahrzeugelektrischer Anlagen
DE19605554C2 (de) * 1996-02-15 2000-08-17 Daimler Chrysler Ag Einrichtung zum Prüfen von Funktionselementen fahrzeugelektrischer Anlagen

Also Published As

Publication number Publication date
DE3432721A1 (de) 1986-03-06

Similar Documents

Publication Publication Date Title
DE3432721C2 (de)
EP0155399A2 (de) Schutzanordnung zur Verhinderung der unerlaubten Ausführung eines Programms
DE69729557T2 (de) Verfahren und gerät zum softwarezugriff auf eine mikroprozessorseriennummer
EP0449265B1 (de) Zufallszahlengenerator
EP0986872B1 (de) Vorrichtung zur durchführung eines blockchiffrierverfahrens
DE19536169A1 (de) Multifunktionale Chipkarte
DE2457312A1 (de) Datenbehandlungseinrichtung mit einem feldwaehler
WO2005036406A1 (de) Entschlüsselung bzw. verschlüsselung bei schreibzugriffen auf einen speicher
EP0512542A2 (de) Datenschützende Mikroprozessorschaltung für tragbare Datenträger, beispielsweise Kreditkarten
DE1499203B1 (de) Schaltungsanordnung zum Speicherschutz bei Datenverarbeitungsanlagen mit Simultanbetrieb
DE102007052656A1 (de) Digital-Verschlüsselungs-Hardware-Beschleuniger
DE10324337B4 (de) Rechnersystem und zugehöriges Verfahren zum Durchführen eines Sicherheitsprogramms
DE2951040C2 (de)
EP0276450A1 (de) Datenschutzschaltung zur Sperrung der Uebertragung von Signalen über einen Bus
DE10232348A1 (de) Integrierte Halbleiterschaltung mit interner Busdatenübertragung und zugehöriges Datenübertragungsverfahren
DE2747304C3 (de) Einrichtung zur Mikrobefehlssteuerung
DE19901829A1 (de) Schaltungsanordnung zur elektronischen Datenverarbeitung
DE4026569A1 (de) Zentraleinheit
DE2365778A1 (de) Rechner
DE1955797A1 (de) Verfahren zur Steuerung der Verarbeitung von Eingabedaten und Datenverarbeitungsanlage hierfuer
EP0184023A1 (de) Verfahren und Einrichtung zum Schutz vor unberechtigtem Betrieb geschützter Programme in einem Mikrocomputer
EP0561457A2 (de) Mikroprozessor zur Verarbeitung von Eingabe/Ausgabedaten
DE2730796A1 (de) Speichereinrichtung
DE3000107C2 (de)
DE3335387A1 (de) Verfahren zur verhinderung des ablaufs eines programms auf fuer den ablauf dieses programms nicht zugelassenen rechnern

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