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
Links
- 230000015654 memory Effects 0.000 claims description 26
- 238000006467 substitution reaction Methods 0.000 description 8
- 238000003860 storage Methods 0.000 description 5
- 238000000034 method Methods 0.000 description 4
- 230000003936 working memory Effects 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 101150087426 Gnal gene Proteins 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001681 protective effect Effects 0.000 description 2
- 101100421142 Mus musculus Selenon gene Proteins 0.000 description 1
- 235000010678 Paulownia tomentosa Nutrition 0.000 description 1
- 240000002834 Paulownia tomentosa Species 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- NQLVQOSNDJXLKG-UHFFFAOYSA-N prosulfocarb Chemical compound CCCN(CCC)C(=O)SCC1=CC=CC=C1 NQLVQOSNDJXLKG-UHFFFAOYSA-N 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000010408 sweeping Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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/72—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
- G06F21/123—Restricting 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.
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)
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)
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)
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 |
-
1984
- 1984-09-06 DE DE19843432721 patent/DE3432721A1/de active Granted
Cited By (3)
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 |