DE10124139A1 - Verfahren und Vorrichtung zur Sicherung der Datenübertragung zwischen einem Zentralprozessor und einem Speicher - Google Patents
Verfahren und Vorrichtung zur Sicherung der Datenübertragung zwischen einem Zentralprozessor und einem SpeicherInfo
- Publication number
- DE10124139A1 DE10124139A1 DE10124139A DE10124139A DE10124139A1 DE 10124139 A1 DE10124139 A1 DE 10124139A1 DE 10124139 A DE10124139 A DE 10124139A DE 10124139 A DE10124139 A DE 10124139A DE 10124139 A1 DE10124139 A1 DE 10124139A1
- Authority
- DE
- Germany
- Prior art keywords
- key
- memory
- addresses
- key2
- key1
- 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.)
- Withdrawn
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
Abstract
Die Erfindung betrifft ein Verfahren zur zweistufigen Verwürfelung der Adressen (LogAdr), mit denen ein Zentralprozessor (10) auf einen Speicher (13) zugreift. Eine erste Verschlüsselungslogik (11) wendet dabei einen fest vorgegebenen, unveränderbaren Schlüssel (KEY1) an, während eine zweite Verschlüsselungslogik (12) einen veränderbaren, im Speicher (13) abgelegten zweiten Schlüssel (KEY2) anwendet. Die in der Initialisierungsphase des Zentralprozessors (10) eingelesenen Konfigurationsdaten sind vorzugsweise in einem speziellen Konfigurationsbereich abgelegt, auf den über einen Bypass (15) unter Umgehung der zweiten Verschlüsselungslogik (12) zugegriffen wird. Die Aktivierung des Bypasses erfolgt durch eine Bypass-Logik (14), welche die in erster Stufe verschlüsselten Adressen (Cipher1) mit während der Initialisierungsphase abgespeicherten Werten (SecRowCipher1, SecRowCipher2) vergleicht.
Description
Die Erfindung betrifft ein Verfahren zur Sicherung der Datenübertragung zwischen einem
Zentralprozessor und einem Speicher, wobei die vom Zentralprozessor ausgegebenen logischen
Adressen mit einem ersten, unveränderlich gespeicherten Schlüssel codiert werden. Ferner
betrifft die Erfindung eine Datenverarbeitungseinheit enthaltend einen Zentralprozessor, der
mit einem Speicher über Adreßleitungen sowie Datenleitungen verbunden ist, sowie eine in
den Adreßleitungen angeordnete erste Verschlüsselungslogik, welche die vom Zentralprozessor
ausgegebenen logischen Adressen mit einem ersten, unveränderlich gespeicherten Schlüssel
codiert.
Die Verbindung eines Zentralprozessors mit einem Speicher ist in fast allen Datenver
arbeitungssystemen vorhanden. Um die im Speicher enthaltenen Daten dabei vor einem
Mißbrauch zu schützen, ist es bekannt, sie dort verschlüsselt abzuspeichern. Ein dynamisches
Verfahren zur Verschlüsselung der in einem Speicher abgelegten Daten ist beispielsweise in
der US 5,987,572 beschrieben. Bei diesem Verfahren werden die Daten mit einem
veränderlichen Schlüssel codiert, was jedoch einen erheblichen Rechenaufwand bedeutet.
Daneben sind Verschlüsselungsverfahren insbesondere für Smartcards bekannt. Smartcards
finden zunehmend in der Form von Scheckkarten, Geldkarten, Ausweiskarten oder
dergleichen als Träger von sicherheitsrelevanten Daten Anwendung und haben einen
nicht-flüchtigen Speicher, dessen Inhalt auch nach Abschalten des Prozessors bzw. ohne
externe Stromversorgung erhalten bleibt. Bei den bekannten Verschlüsselungsverfahren für
Smartcards werden die Adressen des Speichers mit einem in der Hardware verdrahteten oder
fest in ROM-Speichern abgelegten Schlüssel "verwürfelt". Dies bedeutet, daß die vom Zentralprozessor
ausgegebene beziehungsweise verwendete logische Adresse eines Datums vermöge
des Schlüssels bijektiv auf eine andere Adresse abgebildet wird, unter welcher sich dann das
Datum physikalisch im Speicher befindet. Dieses Verfahren ist zwar verhältnismäßig einfach,
es hat jedoch den Nachteil, daß eine einmal analysierte und entschlüsselte Verwürfelung auf
alle Systeme des gleichen Typs beziehungsweise mit demselben ROM-Code übertragbar ist.
Eine einzige mißbräuchliche Entschlüsselung gefährdet demnach die Sicherheit einer Vielzahl
von Smartcards. Weiterhin ist es nachteilig, daß für ein Unbrauchbarmachen des
Speicherinhaltes der gesamte Inhalt gelöscht werden muß, da sich Daten im Speicher stets an
derselben (verwürfelten) Adresse wiederfinden lassen.
Vor diesem Hintergrund war es Aufgabe der vorliegenden Erfindung, ein Verfahren sowie eine
Datenverarbeitungseinheit bereitzustellen, welche einen größeren Schutz der Daten in dem
einem Zentralprozessor zugeordneten Speicher bieten.
Diese Aufgabe wird durch ein Verfahren mit den Merkmalen des Anspruchs 1 sowie eine
Datenverarbeitungseinheit mit den Merkmalen des Anspruchs 7 gelöst. Vorteilhafte
Ausgestaltungen sind in den Unteransprüchen enthalten.
Das Verfahren dient der Sicherung der Datenübertragung zwischen einem Zentralprozessor
und einem Speicher und verhindert insbesondere, daß die im Speicher enthaltenen Daten
mißbräuchlich ausgelesen und verwendet werden können. Bei dem Verfahren werden die vom
Zentralprozessor verwendeten und ausgegebenen logischen Adressen von Daten mit einem
ersten, unveränderlich gespeicherten Schlüssel codiert. Die Speicherung dieses ersten Schlüssels
kann zum Beispiel in einer Hardwareverdrahtung oder in ROM-Speichern (einschließlich
EPROM, EEPROM etc.) geschehen. Das Verfahren ist weiterhin dadurch gekennzeichnet,
daß zumindest ein Teil der mit dem ersten Schlüssel codierten Adressen ein zweites Mal mit
einem zweiten, veränderbar gespeicherten Schlüssel codiert wird.
Die zweite Verschlüsselung der Adressen mit einem veränderbaren Schlüssel hat den Vorteil,
daß für jedes derartige Datenverarbeitungssystem durch Vorgabe eines individuellen zweiten
Schlüssels eine individuelle Verschlüsselung der Daten erreicht werden kann. Selbst wenn
daher bei einem mißbräuchlichen Angriff die erste Verschlüsselungsstufe beziehungsweise der
erste Schlüssel entziffert werden sollten, wären hiermit nicht die Daten von allen gleichen
Systemen mit demselben ersten Schlüssel decodierbar, da diese jeweils mit einem anderen
zweiten Schlüssel verwürfelt werden. Das Verfahren bietet somit eine erheblich größere
Sicherheit für die im Speicher abgelegten Daten.
Darüber hinaus hat das Verfahren auch den Vorteil, daß der Inhalt des Speichers durch ein
Verändern oder Überschreiben des veränderbaren zweiten Schlüssels unbrauchbar gemacht
werden kann. Dies ist möglich, ohne daß hierzu der gesamte Speicher zu löschen oder mit
Zufallszahlen zu überschreiben wäre.
Gemäß einer Weiterbildung des Verfahrens wird der Speicher logisch in einen
Konfigurationsbereich und einen Nutzdatenbereich unterteilt, wobei der Zugriff auf den
Konfigurationsbereich nur mit dem ersten Schlüssel codiert wird, während der Zugriff auf den
Nutzdatenbereich zusätzlich mit dem zweiten Schlüssel codiert wird. Wie der Name des
"Konfigurationsbereiches" bereits andeutet, werden hierin vorzugsweise für die Konfiguration
des Datenverarbeitungssystems beziehungsweise des Zentralprozessors relevante Daten
gespeichert. Auf diese Weise kann der Prozessor somit ohne Kenntnis beziehungsweise ohne
Anwendung des zweiten Schlüssels zugreifen. Dies ist insbesondere bei einer Initialisierung des
Zentralprozessors vorteilhaft, da dann die Konfigurationsdaten stets an derselben, vom zweiten
Schlüssel unabhängigen Stelle gefunden werden.
Bei einem wie beschrieben unterteilten Speicher wird der zweite Schlüssel vorzugsweise im
Konfigurationsbereich gespeichert. Er kann dann bei der Initialisierung des Zentralprozessors
aus diesem Bereich ausgelesen und nachfolgend für die zweite Codierung verwendet werden.
Dabei braucht für die Speicherung des zweiten Schlüssels kein zusätzlicher Speicher
bereitgestellt zu werden, was insbesondere bei Smartcards vorteilhaft ist.
Gemäß einer Weiterbildung des Verfahrens werden diejenigen logischen Adressen, welche bei
einer aufeinanderfolgenden Codierung mit zunächst dem ersten und dann dem zweiten
Schlüssel Werte annehmen, die den nur mit dem ersten Schlüssel codierten Adressen des
Konfigurationsbereiches entsprechen, vor einem Zugriff auf den Speicher ein weiteres Mal mit
dem zweiten Schlüssel codiert. Dieses Vorgehen hat folgenden Hintergrund: Da bei der
Abbildung des Konfigurationsbereiches in den Speicher nur der erste Schlüssel angewendet
wird, kollidiert dieser Bereich im Speicher mit Adressen, die nach Codierung mit sowohl dem
ersten als auch dem zweiten Schlüssel an dieselbe Stelle abgebildet werden. Um diese Kollision
und damit einen Datenverlust zu verhindern, wird auf die zuletzt genannten Adressen ein
zweites Mal der zweite Schlüssel angewendet, wodurch diese Adressen an diejenigen freien
Plätze weitergeleitet werden, die der Konfigurationsbereich bei Anwendung einer ersten und
zweiten Verschlüsselung angenommen hätte.
Vorzugsweise sind die Codierungen mit dem ersten beziehungsweise dem zweiten Schlüssel
so definiert, daß bei zweifacher Anwendung der ersten Codierung beziehungsweise bei
zweifacher Anwendung der zweiten Codierung sich gerade die identische Abbildung ergibt.
Jede Codierungsfunktion stellt somit zugleich ihre eigene Inverse dar.
Nach einer anderen Weiterbildung des Verfahrens werden der zweite Schlüssel und/oder
Größen, an denen nur mit dem ersten Schlüssel zu kodierende Adressen erkannt werden
können, während der Initialisierung des Zentralprozessors gelesen beziehungsweise berechnet.
Die Initialisierungsphase des Zentralprozessors kann somit bei allen in ihrer Hardware und
den fest gespeicherten Konfigurationen gleichen Systemen identisch ablaufen, wobei jedoch
während der Initialisierungsphase bei jedem System individuelle Daten erzeugt und
gespeichert werden, welche nachfolgend für eine individuelle Verschlüsselung sorgen.
Die Erfindung betrifft weiterhin eine Datenverarbeitungseinheit enthaltend einen Zentral
prozessor, der mit einem Speicher über Adreßleitungen sowie Datenleitungen verbunden ist.
Ferner enthält die Datenverarbeitungseinheit eine in den Adreßleitungen angeordnete erste
Verschlüsselungslogik, welche die vom Zentralprozessor ausgegebenen logischen Adressen mit
einem ersten, unveränderlich gespeicherten Schlüssel codiert. Die Datenverarbeitungseinheit
ist dadurch gekennzeichnet, daß sie eine in den Adreßleitungen angeordnete zweite Ver
schlüsselungslogik enthält, welche die mit dem ersten Schlüssel codierten Adressen zumindest
teilweise ein zweites Mal mit einem zweiten, veränderbar gespeicherten Schlüssel codiert. Bei
einer derartigen Datenverarbeitungseinheit kann es sich insbesondere um eine sogenannte
Smartcard handeln.
Die Datenverarbeitungseinheit hat den Vorteil, daß sie abhängig vom zweiten Schlüssel eine
individuelle Verschlüsselung beziehungsweise Verwürfelung der Daten im Speicher erlaubt.
Die mißbräuchliche Entschlüsselung der ersten Verschlüsselungslogik mit dem ersten Schlüssel
liefert somit nicht automatisch den Zugriff auf die Daten sämtlicher gleichartiger Daten
verarbeitungseinheiten. Vielmehr müßte für einen solchen Zugriff erst bei jeder Daten
verarbeitungseinheit der zweite Schlüssel verschafft werden.
Die Datenverarbeitungseinheit ist ferner vorzugsweise so ausgestaltet beziehungsweise
eingerichtet, daß mit ihr ein Verfahren der oben erläuterten Art durchgeführt werden kann.
Insbesondere kann die Datenverarbeitungseinheit eine Bypass-Logik enthalten, welche die von
der ersten Verschlüsselungslogik erzeugten und/oder verwendeten (logischen) Adressen als
Eingabe erhält und eine Umgehung ("Bypass") der zweiten Verschlüsselungslogik aktiviert,
wenn diese Adressen vorgegebenen Werten entsprechen. Mit Hilfe der Bypass-Logik kann
somit selektiv eine Abschaltung der zweiten Verschlüsselung erfolgen. Dies ist insbesondere
bei Verwendung eines oben erläuterten Konfigurationsbereiches sinnvoll, welcher nur mit der
ersten Verschlüsselungslogik verschlüsselt werden soll.
Im Folgenden wird die Erfindung mit Hilfe der Figuren beispielhaft erläutert. Es zeigt:
Fig. 1 schematisch die Komponenten einer erfindungsgemäßen Datenverarbeitungseinheit;
Fig. 2 schematisch die Abbildungen von Adressen durch verschiedene Verschlüsselungsstufen.
Fig. 1 zeigt die wesentlichen Komponenten einer Datenverarbeitungseinheit 100 mit einem
Zentralprozessor 10 und einem damit verbundenen Speichermodul 13. Bei der Einheit kann
es sich insbesondere um eine Smartcard 100 handeln, wobei der Speicher 13 ein
nichtflüchtiger Speicher ist, in welchem aus Kostengründen sowohl Programm-Code und
Daten als auch speziell zu sichernde Kontrolldaten und Konfigurationsparameter abgelegt
werden.
Um den Inhalt des Speichers 13 vor einer physikalischen Analyse zu schützen, ist es bekannt,
die von dem Zentralprozessor 10 verwendeten und auf die Adreßleitung gelegten logischen
Adressen LogAdr über eine erste Verschlüsselungslogik 11 zu codieren. Dabei werden die
logischen Adressen LogAdr vermöge eines in der Hardware verdrahteten oder in einem ROM-
Speicher abgelegten Schlüssel KEY1 mit einer bijektiven Abbildung C1 zu Adressen "Cipher1"
transformiert. Die über die Datenleitung 19 übertragenen Daten beziehungsweise die
Adressen werden somit vor ihrem Ablegen im Speicher 13 "verwürfelt".
Da die bekannten Systeme mit nur einer Verschlüsselungslogik 11, die einen feststehenden
Schlüssel KEY1 verwendet, keinen individuellen Schutz der Daten im Speicher 13 bieten,
wird erfindungsgemäß eine zweite Verschlüsselungslogik 12 in die Adreßleitung zwischen der
ersten Verschlüsselungslogik 11 und dem Speicher 13 angeordnet. Die zweite Verschlüsse
lungslogik 12 verwendet für ihre bijektive Transformation C2 einen zweiten Schlüssel KEY2.
Dieser ist im Gegensatz zum ersten Schlüssel KEY1 nicht fest vorgegeben, sondern
veränderbar im Speicher 13 abgelegt. Der Wert dieses zweiten Schlüssels KEY2 wird während
der Initialisierung über die Datenleitung 19 aus dem Speicher 13 eingelesen.
Die sequentielle Anwendung der ersten Verschlüsselung C1 und der zweiten
Verschlüsselung C2 gewährleistet somit eine Verwürfelung der Adressen LogAdr zu
physikalischen Speicheradressen PhyAdr im Speicher 13, die für jede Smartcard 100
individuell über den zweiten Schlüssel KEY2 vorgegeben werden kann.
Während der Initialisierungsphase des Zentralprozessors 10 wird die zweite
Verschlüsselungslogik 12 vorzugsweise ausgeschaltet, damit die Konfigurationsdaten des
Zentralprozessors stets an denselben, durch die erste Verschlüsselungslogik 11 und den ersten
Schlüssel KEY1 vorgegebenen Stellen des Speichers 13 gefunden werden. Eine solche "feste"
Lage des Konfigurationsbereiches ermöglicht es zudem, den zweiten Schlüssel KEY2 erst
während der Initialisierung aus dem Speicher 13 auszulesen, so daß er anschließend für die
Verschlüsselungslogik 12 zur Verfügung steht.
Um den Zugriff auf den Konfigurationsbereich im Speichermodul 13 unter Umgehung der
zweiten Verschlüsselungslogik 12 durchführen zu können, enthält die Datenverarbeitungs
einheit 100 einen Bypass 15, welcher die zweite Verschlüsselungslogik 12 umgeht, sowie eine
Bypass-Logik 14, welche den Bypass 15 selektiv ein- oder ausschalten kann. Die Bypass-
Logik 14 erhält über eine Leitung 16 an ihrem Eingang die aktuelle, mit der ersten Ver
schlüsselungslogik 11 verschlüsselte Adresse Cipher1. Dieser Wert wird mit den zwei
abgespeicherten Werten SecRowCipher1 sowie SecRowCipher2 verglichen. Sofern Cipher1
einem der beiden gespeicherten Werte gleich ist, aktiviert die Bypass-Logik 14 den Bypass 15,
so daß der Zugriff auf den Speicher 13 unter Umgehung der zweiten Verschlüsselungslogik 12
erfolgt.
Die beiden oben genannten gespeicherten Adressen SecRowCipher1 und SecRowCipher2
werden während der Initialisierung des Zentralprozessors 10 über die
Verbindungsleitungen 17 und 18 gespeichert. Die Initialisierung verläuft dabei im Einzelnen
wie folgt ab:
Zunächst speichert die zweite Verschlüsselungslogik 12 während der Initialisierung den aus dem Konfigurationsbereich des Speichers 13 ausgelesenen zweiten Schlüssel KEY2 in einem lokalen Speicher. Dabei ist während der gesamten Initialisierungsphase der Bypass 15 aktiviert, so daß der Zugriff auf den Speicher 13 allein über die erste Verschlüsselungslogik 11 mit den Adressen PhyAdr = Cipher1 erfolgt. Gegen Ende der Initialisierungsphase speichert die zweite Verschlüsselungslogik 12 dann sowohl die mit dem ersten Schlüssel KEY1 erzeugte Cipher1 Adresse des Konfigurationsbereiches nach SecRowCipher1 als auch die zusätzlich mit dem zweiten Schlüssel KEY2 erzeugte Cipher2 Adresse des Konfigurationsbereiches nach SecRowCipher2. Dies geschieht unter weiterhin aktiviertem Bypass 15.
Zunächst speichert die zweite Verschlüsselungslogik 12 während der Initialisierung den aus dem Konfigurationsbereich des Speichers 13 ausgelesenen zweiten Schlüssel KEY2 in einem lokalen Speicher. Dabei ist während der gesamten Initialisierungsphase der Bypass 15 aktiviert, so daß der Zugriff auf den Speicher 13 allein über die erste Verschlüsselungslogik 11 mit den Adressen PhyAdr = Cipher1 erfolgt. Gegen Ende der Initialisierungsphase speichert die zweite Verschlüsselungslogik 12 dann sowohl die mit dem ersten Schlüssel KEY1 erzeugte Cipher1 Adresse des Konfigurationsbereiches nach SecRowCipher1 als auch die zusätzlich mit dem zweiten Schlüssel KEY2 erzeugte Cipher2 Adresse des Konfigurationsbereiches nach SecRowCipher2. Dies geschieht unter weiterhin aktiviertem Bypass 15.
Nach Beendigung der Initialisierungsphase wird der Bypass 15 dann generell deaktiviert, um
grundsätzlich beide Verwürfelungen C1 und C2 auf die Speicheradressen LogAdr
anzuwenden.
Nur wenn die Bypass-Logik 14 an ihrem Eingang als Cipher1 Adresse eine der beiden
während der Initialisierungsphase gespeicherten Adressen SecRowCipher1 oder
SecRowCipher2 erkennt, aktiviert sie für diesen Zugriff den Bypass 15, so daß die zweite Ver
schlüsselungslogik 12 umgangen wird. Dadurch bleiben die Adressen des
Konfigurationsbereiches von der zweiten Verwürfelung C2 unberührt.
In Fig. 2 sind die in einem Datenverarbeitungssystem 100 nach Fig. 1 stattfindenden
Verwürfelungen beziehungsweise Abbildungen der Adressen schematisch dargestellt.
Die logischen Adressen LogAdr werden zunächst von der ersten Verschlüsselungslogik 11
jeweils mit der Abbildung C1 in eine Adresse Cipher1 umgewandelt. Durch Anwendung der
zweiten Verschlüsselungslogik 12 mit der Abbildung C2 wird dann aus jeder dieser Adressen
Cipher1 eine zweifach verschlüsselte Adresse Cipher2 erzeugt, die auf einen physikalischen
Speicherort PhyAdr des Speichers zeigt.
Würden die Abbildungen C1 und C2 auf alle logischen Adressen LogAdr hintereinander
angewandt, so würde sich insgesamt eine bijektive Verwürfelung dieser Adressen in den
Adressraum PhyAdr des Speichers ergeben.
Aus den oben erläuterten Gründen ist es jedoch erwünscht, im logischen Adressraum einen
Konfigurationsbereich K vorzusehen, welcher nur mit der ersten Verwürfelung C1 auf einen
Bereich K' im Speicher abgebildet wird. Dies wird in der Datenverarbeitungseinheit 100 nach
Fig. 1 dadurch erreicht, daß die Bypass-Logik 14 für eine Umgehung der zweiten Ver
schlüsselungslogik 12 sorgt, wenn sie an ihrem Eingang die mit C1 verschlüsselte Adresse des
Konfigurationsbereichs, d. h. SecRowCipher1, erkennt.
Der Bereich K' des Speichers, in welchen der Konfigurationsbereich K durch alleinige
Anwendung der ersten Verschlüsselung C1 abgebildet wird, würde normalerweise durch die
sequentielle Anwendung der ersten Verschlüsselung C1 und der zweiten Verschlüsselung C2
von einem anderen Bereich X des logischen Adreßraumes LogAdr belegt. Um diese Kollision
zu verhindern, wird der genannte Bereich X in den freien Bereich K" = X" des Speichers
abgebildet, in welchem der Konfigurationsbereich K bei sequentieller Anwendung der ersten
Verschlüsselung C1 und der zweiten Verschlüsselung C2 läge. Das geschieht, indem der
Bereich X des logischen Adreßraumes durch die ersten Verschlüsselung C1 und eine zweifache
Anwendung der zweiten Verschlüsselung (C2)2 abgebildet wird.
Die erläuterte Verschiebung des Bereichs X vereinfacht sich dann erheblich, wenn die zweite
Verschlüsselung C2 ihre eigene Inverse ist, so daß sie bei doppelter Anwendung die Identität
ergibt. In diesem Falle kann auf die doppelte Anwendung der zweiten Verschlüsselung (C2)2
verzichtet werden, und der Bereich X ist - ebenso wie der Konfigurationsbereich K - lediglich
mit der ersten Verschlüsselung C1 in den Speicher abzubilden. Die Bypass-Logik 14 der
Datenverarbeitungseinheit 100 aus Fig. 1 erkennt diese Situation daran, daß an ihrem
Eingang die Adresse SecRowCipher2 anliegt, welche der Adresse des Konfigurations
bereiches K" im Speicher entspricht, die sich bei Anwendung der ersten Verschlüsselung C1
und der zweiten Verschlüsselung C2 auf den Konfigurationsbereich K ergibt.
Das mit Hilfe der Figuren beispielhaft dargestellte Verfahren hat den Vorteil, daß die
Verwürfelung der Benutzerdaten jederzeit, zum Beispiel bei der Personalisierung des
Speichers 13 beim Kunden, durch Programmieren des zweiten Schlüssels KEY2 im
Konfigurationsbereich geändert und damit individuell vergeben werden kann. Dies erhöht den
Aufwand der mißbräuchlichen Ausforschung erheblich, da jedes System eine individuelle
Verwürfelung aufweist, die nicht auf andere Systeme übertragbar ist. Außerdem führt jede
Manipulation am Konfigurationsbereich des Speichers 13, die den zweiten Schlüssel KEY2
verändert, zu einer sofortigen Veränderung der Verwürfelung des Nutzdatenbereichs und
damit zu einem Unbrauchbarmachen der Nutzerdaten, welche mit einer
Speicherinitialisierung mit Zufallsdaten vergleichbar ist. Dieser zusätzliche Verwürfelungs
mechanismus für den Nutzdatenbereich beeinträchtigt den sicheren Zugriff auf den
Konfigurationsbereich des Speichers 13 während der Initialisierungsphase jedoch nicht.
100
Datenverarbeitungseinheit
10
Zentralprozessor
11
erste Verschlüsselungslogik
12
zweite Verschlüsselungslogik
13
Speicher
14
Bypass-Logik
15
Bypass
16
Leitung
17
,
18
Initialisierungsleitung
19
Datenleitung
LogAdr logische Adresse
Cipher1 einmal verschlüsselte Adresse
Cipher2 zweifach verschlüsselte Adresse
KEY1, KEY2 Schlüssel
PhyAdr physikalische Adresse
K Konfigurationsbereich
C1 erste Verwürfelungsabbildung
C2 zweite Verwürfelungsabbildung
LogAdr logische Adresse
Cipher1 einmal verschlüsselte Adresse
Cipher2 zweifach verschlüsselte Adresse
KEY1, KEY2 Schlüssel
PhyAdr physikalische Adresse
K Konfigurationsbereich
C1 erste Verwürfelungsabbildung
C2 zweite Verwürfelungsabbildung
Claims (9)
1. Verfahren zur Sicherung der Datenübertragung zwischen einem Zentral
prozessor (10) und einem Speicher (13), wobei die vom Zentralprozessor ausgegebenen
logischen Adressen (LogAdr) mit einem ersten, unveränderlich gespeicherten
Schlüssel (KEY1) codiert werden,
dadurch gekennzeichnet, daß zumindest ein Teil der so codierten Adressen ein zweites Mal
mit einem zweiten, veränderbar gespeicherten Schlüssel (KEY2) codiert wird.
2. Verfahren nach Anspruch 1,
dadurch gekennzeichnet, daß der Speicher (13) logisch in einen Konfigurationsbereich (K)
und einen Nutzdatenbereich unterteilt ist, wobei der Zugriff auf den Konfigurations
bereich nur mit dem ersten Schlüssel (KEY1) codiert wird, während der Zugriff auf den
Nutzdatenbereich zusätzlich mit dem zweiten Schlüssel (KEY2) codiert wird.
3. Verfahren nach Anspruch 2,
dadurch gekennzeichnet, daß der zweite Schlüssel (KEY2) im Konfigurationsbereich (K)
gespeichert ist.
4. Verfahren nach mindestens einem der Ansprüche 1 bis 3,
dadurch gekennzeichnet, daß diejenigen logischen Adressen (X), welche bei sequentieller
Codierung (C1, C2) mit dem ersten und dem zweiten Schlüssel (KEY1, KEY2) Werte
annehmen, die den nur mit dem ersten Schlüssel (KEY1) codierten (C1) Adressen des
Konfigurationsbereiches (K) entsprechen, vor einem Zugriff auf den Speicher (18) ein
weiteres Mal mit dem zweiten Schlüssel (KEY2) codiert (C2) werden.
5. Verfahren nach mindestens einem der Ansprüche 1 bis 4,
dadurch gekennzeichnet, daß die Codierung (C1, C2) mit dem ersten und/oder mit dem
zweiten Schlüssel (KEY1, KEY2) bei zweifacher Anwendung die Identität ergibt.
6. Verfahren nach mindestens einem der Ansprüche 1 bis 5,
dadurch gekennzeichnet, daß der zweite Schlüssel (KEY2) und/oder Größen
(SecRowCipher1, SecRowCipher2), an denen nur mit dem ersten Schlüssel (KEY1) zu
kodierende Adressen erkannt werden können, während der Initialisierung des Zentral
prozessor (10) gelesen beziehungsweise berechnet werden.
7. Datenverarbeitungseinheit (100), enthaltend einen Zentralprozessor (10), der mit
einem Speicher (13) über Adreßleitungen sowie Datenleitungen (19) verbunden ist, sowie
eine in den Adreßleitungen angeordnete erste Verschlüsselungslogik (11), welche die vom
Zentralprozessor ausgegebenen logischen Adressen mit einem ersten, unveränderlich
gespeicherten Schlüssel (KEY1) codiert,
dadurch gekennzeichnet, daß sie eine in den Adreßleitungen angeordnete zweite Ver
schlüsselungslogik (12) enthält, welche die mit dem ersten Schlüssel (KEY1) codierten
Adressen zumindest teilweise ein zweites Mal mit einem zweiten, veränderbar gespeicher
ten Schlüssel (KEY2) codiert.
8. Datenverarbeitungseinheit nach Anspruch 7,
dadurch gekennzeichnet, daß sie so eingerichtet ist, daß sie ein Verfahren nach mindestens
einem der Ansprüche 1 bis 6 durchführen kann.
9. Datenverarbeitungseinheit nach Anspruch 7 oder 8,
dadurch gekennzeichnet, daß sie eine Bypass-Logik (14) enthält, welche die von der ersten
Verschlüsselungslogik (11) erzeugten und/oder verwendeten Adressen (Cipher1) als
Eingabe erhält, und welche eine Umgehung (15) der zweiten Verschlüsselungslogik (12)
aktiviert, wenn die genannten Adressen vorgegebenen Werten (SecRowCipher1,
SecRowCipher2) entsprechen.
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE10124139A DE10124139A1 (de) | 2001-05-17 | 2001-05-17 | Verfahren und Vorrichtung zur Sicherung der Datenübertragung zwischen einem Zentralprozessor und einem Speicher |
PCT/IB2002/001690 WO2002093387A2 (en) | 2001-05-17 | 2002-05-15 | Method and device for protecting data transmission between a central processor and a memory |
EP02727912A EP1393187A2 (de) | 2001-05-17 | 2002-05-15 | Verfahren und vorrichtung zum schutz der datenübertragung zwischen einem zentralprozessor und einem speicher |
JP2002589995A JP2004525470A (ja) | 2001-05-17 | 2002-05-15 | 中央処理装置とメモリとの間でのデータ送信を保護する方法及び装置 |
CN02801718.8A CN1251091C (zh) | 2001-05-17 | 2002-05-15 | 保护中央处理器和存储器之间数据传输的方法和装置 |
US10/477,984 US20040128458A1 (en) | 2001-05-17 | 2002-05-15 | Method and device for protecting data transmission between a central processor and a memory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE10124139A DE10124139A1 (de) | 2001-05-17 | 2001-05-17 | Verfahren und Vorrichtung zur Sicherung der Datenübertragung zwischen einem Zentralprozessor und einem Speicher |
Publications (1)
Publication Number | Publication Date |
---|---|
DE10124139A1 true DE10124139A1 (de) | 2002-11-21 |
Family
ID=7685199
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE10124139A Withdrawn DE10124139A1 (de) | 2001-05-17 | 2001-05-17 | Verfahren und Vorrichtung zur Sicherung der Datenübertragung zwischen einem Zentralprozessor und einem Speicher |
Country Status (6)
Country | Link |
---|---|
US (1) | US20040128458A1 (de) |
EP (1) | EP1393187A2 (de) |
JP (1) | JP2004525470A (de) |
CN (1) | CN1251091C (de) |
DE (1) | DE10124139A1 (de) |
WO (1) | WO2002093387A2 (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102005051577A1 (de) * | 2005-10-21 | 2007-05-03 | Engel Technologieberatung, Entwicklung/Verkauf Von Soft- Und Hardware Kg | Verfahren zur Verschlüsselung bzw. Entschlüsselung von Datenpaketen eines Datenstroms sowie Signalfolge und Datenverarbeitungssystem zur Ausführung des Verfahrens |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10318730A1 (de) * | 2003-04-25 | 2004-11-11 | Conti Temic Microelectronic Gmbh | Verfahren zum Betreiben einer Datenverarbeitungseinheit sowie Datenverarbeitungssystem zur Durchführung des Verfahrens |
JP4630643B2 (ja) * | 2004-11-18 | 2011-02-09 | 株式会社メガチップス | 半導体メモリおよび半導体メモリのテスト方法 |
EP1768028A1 (de) * | 2005-09-22 | 2007-03-28 | STMicroelectronics (Research & Development) Limited | Peripherieadressierung in einer integrierten Schaltung |
US8473754B2 (en) | 2006-02-22 | 2013-06-25 | Virginia Tech Intellectual Properties, Inc. | Hardware-facilitated secure software execution environment |
DE102007021256A1 (de) * | 2007-05-07 | 2008-11-13 | Giesecke & Devrient Gmbh | Verfahren zum Speichern von Anwendungsdaten in einen Datenträger mit einem verschlüsselnden Speicher-Controller |
JP5571883B2 (ja) * | 2007-06-18 | 2014-08-13 | 軒▲ソン▼科技有限公司 | デジタル情報の保護方法、装置およびコンピュータによるアクセス可能な記録媒体 |
CN101577086B (zh) * | 2008-05-09 | 2012-01-04 | 联阳半导体股份有限公司 | 串联电路的自动寻址方法及串接数量的自动检测方法 |
EP2151763A1 (de) * | 2008-07-28 | 2010-02-10 | Nagravision S.A. | Verfahren und Verfahren zur Verschleierung virtueller oder physischer Speicherabbildung |
US8375225B1 (en) | 2009-12-11 | 2013-02-12 | Western Digital Technologies, Inc. | Memory protection |
US20150363333A1 (en) * | 2014-06-16 | 2015-12-17 | Texas Instruments Incorporated | High performance autonomous hardware engine for inline cryptographic processing |
KR102208072B1 (ko) | 2014-09-01 | 2021-01-27 | 삼성전자주식회사 | 데이터 처리 시스템 |
US10346318B2 (en) * | 2016-09-13 | 2019-07-09 | Intel Corporation | Multi-stage memory integrity method and apparatus |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US892826A (en) | 1907-12-27 | 1908-07-07 | Ira L Graham | Reinforced concrete post. |
US4120030A (en) * | 1977-03-11 | 1978-10-10 | Kearney & Trecker Corporation | Computer software security system |
US4465901A (en) * | 1979-06-04 | 1984-08-14 | Best Robert M | Crypto microprocessor that executes enciphered programs |
US4525599A (en) * | 1982-05-21 | 1985-06-25 | General Computer Corporation | Software protection methods and apparatus |
US4558176A (en) * | 1982-09-20 | 1985-12-10 | Arnold Mark G | Computer systems to inhibit unauthorized copying, unauthorized usage, and automated cracking of protected software |
US4573119A (en) * | 1983-07-11 | 1986-02-25 | Westheimer Thomas O | Computer software protection system |
US4698617A (en) * | 1984-05-22 | 1987-10-06 | American Microsystems, Inc. | ROM Protection scheme |
GB8507427D0 (en) | 1985-03-21 | 1985-05-01 | Robertson J A | Prevention of soft & hardware copying |
US4716546A (en) * | 1986-07-30 | 1987-12-29 | International Business Machines Corporation | Memory organization for vertical and horizontal vectors in a raster scan display system |
US5095525A (en) | 1989-06-26 | 1992-03-10 | Rockwell International Corporation | Memory transformation apparatus and method |
US5214704A (en) * | 1989-10-04 | 1993-05-25 | Teledyne Industries, Inc. | Nonlinear dynamic substitution devices and methods for block substitutions |
US5081675A (en) * | 1989-11-13 | 1992-01-14 | Kitti Kittirutsunetorn | System for protection of software in memory against unauthorized use |
WO2004077300A1 (ja) * | 1992-01-22 | 2004-09-10 | Yoshimasa Kadooka | Icメモリカード及びそのデータ保護方法 |
US6094703A (en) * | 1995-02-21 | 2000-07-25 | Micron Technology, Inc. | Synchronous SRAM having pipelined memory access enable for a burst of addresses |
US5892826A (en) * | 1996-01-30 | 1999-04-06 | Motorola, Inc. | Data processor with flexible data encryption |
JPH09312099A (ja) * | 1996-05-21 | 1997-12-02 | Toshiba Microelectron Corp | 半導体記憶装置及びそのアクセス方法 |
KR100201396B1 (ko) * | 1996-07-20 | 1999-06-15 | 구본준 | 이피롬의 비화코드 해독 방지회로 |
US5848159A (en) * | 1996-12-09 | 1998-12-08 | Tandem Computers, Incorporated | Public key cryptographic apparatus and method |
US5987572A (en) | 1997-09-29 | 1999-11-16 | Intel Corporation | Method and apparatus employing a dynamic encryption interface between a processor and a memory |
US5943283A (en) * | 1997-12-05 | 1999-08-24 | Invox Technology | Address scrambling in a semiconductor memory |
US6449476B1 (en) * | 1999-03-12 | 2002-09-10 | Qualcomm Incorporated | System and method for independently downloading features into a set of storage locations in a wireless communication device |
JP3389186B2 (ja) * | 1999-04-27 | 2003-03-24 | 松下電器産業株式会社 | 半導体メモリカード及び読み出し装置 |
US7005733B2 (en) * | 1999-12-30 | 2006-02-28 | Koemmerling Oliver | Anti tamper encapsulation for an integrated circuit |
JP4028798B2 (ja) * | 2000-06-02 | 2007-12-26 | 株式会社ルネサステクノロジ | 不揮発性半導体記憶装置および情報配信システムにおける情報管理方法 |
-
2001
- 2001-05-17 DE DE10124139A patent/DE10124139A1/de not_active Withdrawn
-
2002
- 2002-05-15 JP JP2002589995A patent/JP2004525470A/ja active Pending
- 2002-05-15 US US10/477,984 patent/US20040128458A1/en not_active Abandoned
- 2002-05-15 CN CN02801718.8A patent/CN1251091C/zh not_active Expired - Fee Related
- 2002-05-15 WO PCT/IB2002/001690 patent/WO2002093387A2/en active Application Filing
- 2002-05-15 EP EP02727912A patent/EP1393187A2/de not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102005051577A1 (de) * | 2005-10-21 | 2007-05-03 | Engel Technologieberatung, Entwicklung/Verkauf Von Soft- Und Hardware Kg | Verfahren zur Verschlüsselung bzw. Entschlüsselung von Datenpaketen eines Datenstroms sowie Signalfolge und Datenverarbeitungssystem zur Ausführung des Verfahrens |
DE102005051577B4 (de) * | 2005-10-21 | 2008-04-30 | Engel Solutions Ag | Verfahren zur Verschlüsselung bzw. Entschlüsselung von Datenpaketen eines Datenstroms sowie Signalfolge und Datenverarbeitungssystem zur Ausführung des Verfahrens |
Also Published As
Publication number | Publication date |
---|---|
US20040128458A1 (en) | 2004-07-01 |
WO2002093387A2 (en) | 2002-11-21 |
CN1251091C (zh) | 2006-04-12 |
WO2002093387A3 (en) | 2003-01-30 |
CN1471671A (zh) | 2004-01-28 |
JP2004525470A (ja) | 2004-08-19 |
EP1393187A2 (de) | 2004-03-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69730712T2 (de) | Kommunikationssystem mit gesicherter, unabhängiger verwaltung mehrerer anwendungen pro gebraucherkarte, gebraucherkarte und verwaltungsverfahren dafür | |
DE2837201C2 (de) | ||
DE19536169A1 (de) | Multifunktionale Chipkarte | |
DE10124139A1 (de) | Verfahren und Vorrichtung zur Sicherung der Datenübertragung zwischen einem Zentralprozessor und einem Speicher | |
DE19633466C2 (de) | Nachinitialisierung von Chipkarten | |
DE10115118A1 (de) | Verfahren zur Übertragung von Daten über einen Datenbus | |
EP0558132A2 (de) | Anordnung zum Datenaustausch | |
EP1065598A1 (de) | Verfahren zum Zugriff auf einen Speicher und Speichereinrichtung hierfür | |
DE60116195T2 (de) | Vorrichtung und Verfahren zur Verschleierung von Eingangsparametern | |
EP1196902B1 (de) | Verfahren zum betreiben eines zur ausführung von nachladbaren funktionsprogrammen ausgebildeten datenträgers | |
DE10324337B4 (de) | Rechnersystem und zugehöriges Verfahren zum Durchführen eines Sicherheitsprogramms | |
EP0811204A1 (de) | Verarbeitung langer nachrichten in einer prozessorkarte | |
EP1073019A2 (de) | Verfahren und Vorrichtung zur Übertragung von Daten auf SmartCards | |
DE60013518T2 (de) | Versicherte Personalisierung von Chipkarten | |
EP1661069A2 (de) | Prozessorschaltung und verfahren zum zuordnen eines logikchips zu einem speicherchip | |
EP1658575B1 (de) | Datenübertragungssystem und verfahren zum betreiben eines datenübertragungssystems | |
DE60114299T2 (de) | Verfahren und Vorrichtung zum Übersetzen von IP Telekommunikationsnetzwerkadressen mit einem gesteuerten undichten Speicher | |
WO2005043804A1 (de) | Verfahren und vorrichtung zur ver- und entschlüsselung | |
DE69934707T2 (de) | Gegenmassnahmenvorrichtung in einem elektronischen bauteil um einen krypto-algorithmus mit geheimschlüssel durchzuführen | |
DE19709975C2 (de) | Mikrocomputer | |
DE60033654T2 (de) | Verfahren zur sicherung von softwareanwendungen mit hilfe einer einheit zur verarbeitung und speicherung geheimer daten und system dafür | |
EP0732657B1 (de) | Verfahren und Vorrichtung zum Verschlüsseln und Entschlüsseln von Information | |
DE10344636A1 (de) | Datenabhängige Ver/Entschlüsselung | |
DE10235381A1 (de) | Verfahren zum Überspielen wenigstens eines Datensatzes aus einer externen Datenquelle in eine Recheneinheit, sowie Recheneinheit | |
DE102005033473A1 (de) | Speicheranordnung und Verfahren zum Betrieb einer Speicheranordnung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8127 | New person/name/address of the applicant |
Owner name: PHILIPS INTELLECTUAL PROPERTY & STANDARDS GMBH, 20 |
|
8139 | Disposal/non-payment of the annual fee |