PatentDe  


Dokumentenidentifikation DE10127181A1 19.12.2002
Titel Sicherheitsmodul, Verfahren zum Konfigurieren desselben und Verfahren und Vorrichtung zum Herstellen desselben
Anmelder Infineon Technologies AG, 81669 München, DE
Erfinder Gammel, Berndt, Dr., 81737 München, DE;
Sedlak, Holger, Dipl.-Ing., 85658 Egmating, DE;
May, Christian, Dr., 81677 München, DE;
Zaig, Dietmar, Dipl.-Inf., 83607 Holzkirchen, DE
Vertreter Schoppe, Zimmermann, Stöckeler & Zinkler, 81479 München
DE-Anmeldedatum 05.06.2001
DE-Aktenzeichen 10127181
Offenlegungstag 19.12.2002
Veröffentlichungstag im Patentblatt 19.12.2002
IPC-Hauptklasse G06F 12/14
Zusammenfassung Ein erfindungsgemäßes Verfahren zum Herstellen von Sicherheitsmodulen mit einer virtuellen Speicheradressierung, bei der logische Adressen mittels einer Abbildungsvorschrift (30) auf eindeutige Weise auf physikalische Adressen abgebildet werden, umfaßt das Bereitstellen eines ersten Sicherheitsmoduls mit einer ersten Abbildungsvorschrift sowie das Bereitstellen eines zweiten Sicherheitsmoduls mit einer zweiten Abbildungsvorschrift, wobei sich die erste Abbildungsvorschrift von der zweiten Abbildungsvorschrift unterscheidet. Es wird die Eigenschaft der virtuellen Speicheradressierung, nämlich der Invarianz des Programmadreßraumes von dem tatsächlichen physikalischen Adreßraum bzw. von der Abbildungsvorschrift (30) des Programmadreßraumes in den physikalischen Adreßraum, dadurch ausgenutzt, daß bei ansonsten gleichartigen Sicherheitsmodulen die gespeicherten Informationen, wie z. B. ein Applikationscode oder Applikationsdaten, in einem Vergleich zwischen zwei verschiedenen Sicherheitsmodulen und/oder in einem Vergleich eines Sicherheitsmoduls zu zwei verschiedenen Zeitpunkten in unterschiedlichen physikalischen Adressen gespeichert sind, wodurch die Sicherheit des Sicherheitsmoduls gegen Angriffe erhöht ist.

Beschreibung[de]

Die vorliegende Erfindung bezieht sich auf Sicherheitsmodule, wie z. B. Chipkarten, Smartcards, TPMs (Trusted Platform Module = Sicherheitsplattformmodul), usw., und insbesondere auf eine Sicherung der auf dem Sicherheitsmodul gespeicherten Informationen, wie z. B. eines Applikationscodes, einer Kunden- ID, eines Guthabens, usw., gegen Angriffe von außen.

Mit der zunehmenden Verbreitung von bargeldlosem Zahlungsverkehr und der zunehmenden informationstechnischen Vernetzung bis in die einzelnen Haushalte, wie z. B. bei Pay-TV-Anwendungen, wächst der Bedarf nach Kryptographiealgorithmen, um digitale Signaturen, Authentifikationen und Verschlüsselungsaufgaben durchführen zu können. Bekannte Kryptographiealgorithmen umfassen asymmetrische Verschlüsselungsalgorithmen, wie z. B. den RSA-Algorithmus, symmetrische Verschlüsselungsverfahren, wie z. B. das DES-Verfahren, und auf elliptischen Kurven basierende Verfahren.

Um die durch die Kryptographiealgorithmen vorgeschriebenen Berechnungen im Alltag einerseits in akzeptabler Geschwindigkeit und andererseits für den Benutzer so bequem wie möglich durchführen zu können, werden Chipkarten, wie z. B. Smartcards oder Signaturkarten, eingesetzt, welche zur Implementierung des Kryptographiealgorithmus einen eigens vorgesehenen Kryptographieprozessor umfassen. Je nach Applikation bzw. Anwendung muß der Kryptographieprozessor in der Lage sein, Authentifikationen, Signaturen, Zertifizierungen und Ver- bzw. Entschlüsselungen nach verschiedenen Kryptographiealgorithmen vorzunehmen. Neben der Implementierung der Kryptographiealgorithmen befinden sich auf der Chipkarte gespeicherte, chipkartenspezifische Informationen, wie z. B. ein geheimer Schlüssel, in dem Fall einer Kreditkarte beispielsweise die Kreditkartennummer, die Kontonummer und das Guthaben und in dem Fall einer Pay-TV-Smart Card eine Smartcard-ID, eine Kunden-ID und sonstige kundenspezifische Informationen. Dem Benutzer einer Chipkarte wird es durch die Chipkarte ermöglicht, auf einfache und effektive Weise bestimmte Transaktionen, wie z. B. eine Abbuchung, an extra vorgesehenen Terminals oder sonstigen Endgeräten, wie z. B. Pay-TV-Decodern, vorzunehmen. Hierbei sorgen die auf der Chipkarte implementierten Kryptographiealgorithmen für einen Schutz des Chipkartenverkehrs gegen kriminelle Übergriffe.

Um die Chipkarten/Terminal-Systeme gegen kriminelle Übergriffe zu schützen, werden zwischen Terminal und Chipkarte spezielle Protokolle verwendet, die beispielsweise eine gegenseitige Authentifikation und Ver- und Entschlüsselungen umfassen, die die in dem Kryptographieprozessor implementierten Kryptographiealgorithmen verwenden. Das Protokoll hängt wiederum von der speziellen Applikation, wie z. B. der Kontoabbuchung, des elektronischen Ausweises, usw., ab. Bei Multiapplikationschipkarten, die mehrere Applikationen unterstützen, ist die Chipkarte zur Durchführung mehrerer Protokolle anwendbar. Die Protokolle umfassen einen auf der Chipkarte gespeicherten Code, der von dem auf der Chipkarte befindlichen Kryptographieprozessor ausgeführt wird, um unter Ansteuerung der in dem Kryptographieprozessor enthaltenen Kryptocoprozessoren applikationsspezifische Kryptographiealgorithmen beispielsweise zur Authentifikation, Signatur, Ver- und Entschlüsselung durchzuführen, und um spezielle applikationsspezifische Funktionen zu realisieren, wie z. B. das Auf- oder Abbuchen eines auf der Chipkarte befindlichen Guthabens in dem Fall einer Debitanwendung oder das Ausgeben chipkartenspezifischer Informationen, wie z. B. die Kontonummer oder dergleichen, an das Terminal während einer Kommunikation zwischen denselben.

Ein Problem bei herkömmlichen Chipkarten besteht darin, daß sich bei denselben die zum Einsatz kommenden Algorithmen und der Code für die applikationsspezifischen und möglicherweise geheimen Funktionen teils in Form einer festen Verdrahtung und teils in gespeicherter Form fest auf der Chipkarte befinden und somit einem Ausspähen von potentiellen Angreifern ausgeliefert sind. Das Ausspähen von in Chipkarten implementieren Kryptographiealgorithmen durch einen Angreifer umfaßt beispielsweise das chemische Abtragen der Faltungsstruktur des Kryptographieprozessors und das optische Analysieren der freigelegten Halbleiterstrukturen. Gelingt es einem Angreifer anhand der sich in seinem Besitz befindlichen Chipkarte an den in derselben implementierten Kryptographiealgorithmus zu gelangen, so wird es dem Angreifer aufgrund der Kenntnis des Kryptographiealgorithmus und damit durch die Ausführbarkeit desselben ermöglicht, bestimmte Attacken auf die Chipkarte auszuüben, um geheime Daten, wie z. B. den geheimen Schlüssel oder sonstige sicherheitskritische Daten der Chipkarte zu gewinnen. Angriffe auf die auf der Chipkarte gespeicherten Informationen umfassen beispielsweise das gezielte Verändern der Speicherinhalte einzelner Bitpositionen des auf der Chipkarte befindlichen Speichers, um beispielsweise "zufällig" das auf der Chipkarte befindliche Guthaben zu erhöhen. Gelingt es einem Angreifer beispielsweise an den Applikationscode zu gelangen, so haben die weiteren Attacken eine weitaus größere Aussicht auf Erfolg, und folglich ist die Sicherheitskette des Chipkartenverkehrs gefährdet.

Eine Chipkarte mit erhöhter Sicherheit gegen Fremdattacken stellt gerade in Hinblick auf das hohe Marktpotential und die hohen Stückzahlen, in denen Chipkarten gefertigt werden, eine hohe Attraktivität für Chipkartenhersteller dar.

Die Aufgabe der vorliegenden Erfindung besteht darin, ein Sicherheitsmodul und ein Verfahren und eine Vorrichtung zum Herstellen desselben und ein Verfahren zum Konfigurieren desselben zu schaffen, so daß die Sicherheit des Sicherheitsmoduls gegen Angriffe erhöht ist.

Diese Aufgabe wird durch ein Sicherheitsmodul gemäß Anspruch 13 und ein Verfahren gemäß Anspruch 1 oder 27 und eine Vorrichtung gemäß Anspruch 26 gelöst.

Der vorliegenden Erfindung liegt die Erkenntnis zugrunde, daß die Sicherheit eines Sicherheitsmoduls gegen Fremdattacken durch die Verwendung von Sicherheitsmodulen mit einer virtuellen Speicheradressierung gesteigert werden kann, da durch die virtuelle Speicheradressierung eine Trennung des logischen Adreßraums, d. h. des für den Programmablauf relevanten Adreßraums, von dem physikalischen Adreßraum, d. h. dem Adreßraum, in dem die Befehle und Daten physikalisch gespeichert sind, geliefert wird, so daß die Abspeicherung der Daten in zerhackter Form stattfinden kann. Zusätzlich kann aufgrund der virtuellen Speicheradressierung trotz der zerhackten physikalischen Speicherung der Daten der Entwurf der Applikationsprogramme und eines sonstigen Codes für das Sicherheitsmodul unabhängig von der tatsächlichen physikalischen Speicherung des Codes und der applikationsspezifischen Daten durchgeführt werden kann.

Gemäß der vorliegenden Erfindung wird diese Eigenschaft der virtuellen Speicheradressierung, nämlich der Invarianz des Programmadreßraumes von dem tatsächlichen physikalischen Adreßraum bzw. von der Abbildungsvorschrift des Programmadreßraumes in den physikalischen Adreßraum, dadurch ausgenutzt, daß bei ansonsten gleichartigen Sicherheitsmodulen die gespeicherten Informationen, wie z. B. ein Applikationscode oder Applikationsdaten, in einem Vergleich zwischen zwei verschiedenen Sicherheitsmodulen und/oder in einem Vergleich eines Sicherheitsmoduls zu zwei verschiedenen Zeitpunkten in unterschiedlichen physikalischen Adressen gespeichert sind. Dies wird gemäß der vorliegenden Erfindung dadurch erreicht, daß die Abbildungsvorschrift zur eindeutigen Abbildung der logischen Adressen auf physikalische Adressen zwischen verschiedenen Sicherheitsmodulen unterschiedlich eingerichtet wird, und/oder dadurch erreicht, daß die Abbildungsvorschrift eines einzelnen Sicherheitsmoduls bei dem Eintritt vorbestimmter Ereignisse, wie z. B. des Erfassens eines Angriffs durch bestimmte Sicherheitsüberwachungen, durch eine entsprechende Einrichtung auf dem Sicherheitsmodul geändert wird. Aufgrund der Invarianz des Programmadreßraumes können alle auf dem Prozessor des Sicherheitsmoduls lauffähigen Programme bis auf die veränderte physikalische Speicherung unverändert bestehen bleiben.

Im Ergebnis wird es einem Angreifer bereits durch die virtuelle Speicheradressierung praktisch unmöglich gemacht, aus der Position einer Dateneinheit in beispielsweise dem gespeicherten Programmcode einer Applikation auf dessen physikalische Adresse zu schließen, da durch die virtuelle Speicheradressierung der in dem logischen Adreßraum linear angeordnete Programmcode auf zerhackte Weise bzw. die Fragmente desselben auf scheinbar ungeordnete Weise in dem physikalischen Adreßraum bzw. dem physikalischen Speicher abgelegt sind. Da gemäß der vorliegenden Erfindung vorgesehen ist, daß sich die Abbildungsvorschriften zwischen zwei unterschiedlichen Speichermodulen und/oder bei einem einzigen Speichermodul die Abbildungsvorschrift vor und nach einem vorbestimmten Ereignis unterscheiden, kann ein potentieller Angreifer, der sich in Besitz des Speichermoduls befindet, selbst dann, wenn er trotz zerhackter Speicherung des Programmcodes an denselben in linearer Form und damit an die Abbildungsvorschrift gelangt, diese Kenntnis nicht auf andere Sicherheitsmodule und/oder dasselbe Sicherheitsmodul zu einem anderen Zeitpunkt anwenden. Auf diese Weise bleibt die Sicherheit des Sicherheitsmodulverkehrs größtenteils ungefährdet, da entweder nur ein einziges oder eine begrenzte Anzahl von Sicherheitsmodulen dauerhaft und/oder ein einzelnes Sicherheitsmodul bis zu dem nächsten Eintritt des vorbestimmten Ereignisses betroffen ist. Für einen Sicherheitsmodulhersteller, der ein solches Sicherheitsmodul herstellt, bietet sich ein Produkt mit einer erhöhten Sicherheitsstufe und damit einer erhöhten Marktakzeptanz.

Gemäß einem Ausführungsbeispiel ist das Sicherheitsmodul eine Chipkarte, die mehrere Applikationen unterstützt, wobei jeder Applikation ein unterschiedlicher Bereich von logischen Adressen zugeordnet ist. Die logischen Adressen des logischen Adreßraumes, der für den Programmablauf der jeweiligen Applikation maßgeblich ist, werden mittels einer Abbildungsvorschrift auf eindeutige Weise auf physikalische Adressen eines physikalischen Adreßraumes, in denen die Informationen, wie z. B. der Programmcode der Applikation selbst, physikalisch gespeichert sind, abgebildet. Die Abbildungsvorschrift besteht entweder aus einer Übersetzungsnachschlagtabelle, die auf der Chipkarte gespeichert ist, oder einem Algorithmus, der logische Adressen auf deterministische Weise auf physikalische Adressen abbildet und beispielsweise durch ein Hardwaremodul auf der Chipkarte implementiert ist.

Die Abbildungsvorschrift kann die logischen Adressen auf die physikalischen Adressen basierend auf einer beliebigen Granularität abbilden. Anstatt einer wortweisen Abbildungsvorschrift, die einzelne logische Adressen auf physikalische Adressen abbildet, kann eine page- bzw. seitenweise Abbildungsvorschrift vorgesehen sein, die beispielsweise Seitenstartadressen auf Seitenabschnittsstartadressen abbildet. Hierbei ist der logische Adreßraum in nicht überlappende logische Seiten (pages) und der physikalische Adreßraum in nicht überlappende Seitenabschnitte (page frames) unterteilt, wobei jeder Seite eine logische Seitenadresse, wie z. B. eine Startadresse, und jedem Seitenabschnitt eine physikalische Seitenabschnittadresse zugeordnet ist. Die Abbildungsvorschrift bildet Seitenadressen auf Seitenabschnittadressen ab. Eine vorteilhafte Seitengröße, die einerseits den Verwaltungs- und Speicheraufwand einer Übersetzungsnachschlagtabelle für eine seitenweise Abbildungsvorschrift gering und andererseits ein möglichst effektives und granulares Zerhacken bzw. Scrambling der gespeicherten Daten der Chipkarte ergibt, beträgt beispielsweise zwischen 32 und 128 Bytes, wie z. B. 64 Bytes.

Chipkarten, der vorhergehend beschriebenen Art bieten zusätzlich zu den erfindungsgemäßen Sicherheitsvorteilen den Vorteil, daß der Chipkartenhersteller mehrere Applikationen durch die Chipkarte unterstützen kann, ohne daß es notwendig ist, daß die Applikationen aus einer Hand hergestellt werden muß. Vielmehr stellt der Chipkartenhersteller die Möglichkeit bereit, daß der Großkunde den logischen Adreßraum in die Bereiche für die jeweiligen Applikationen unterteilt und spezifiziert, welche logischen Adressen eines jeweiligen Applikationsbereichs sich auf welchen Speichertyp beziehen, so daß die Erstellung und das Laden des Applikationscodes auf die Chipkarte dem Großkunden des Chipkartenherstellers überlassen ist, wobei durch das erfindungsgemäße Verändern der Abbildungsvorschriften zwischen entweder verschiedenen Chipkarten und/oder durch Änderung der Abbildungsvorschrift einer Chipkarte auf das Eintreten eines vorbestimmten Ereignisses hin, wie z. B. die Kommunikation mit einem Terminal oder die Verletzung bestimmter Sicherheitskriterien, die Sicherheit der Chipkarte gewährleistet bleibt.

Weitere Weiterbildungen der vorliegenden Erfindung gehen aus den beiliegenden Ansprüchen hervor. Hinsichtlich der Verfahrens- und Vorrichtungsunteransprüche wird darauf hingewiesen, daß dieselben technische Merkmale definieren, die für sowohl ein erfindungsgemäßes Verfahren als auch eine erfindungsgemäße Vorrichtung bzw. ein erfindungsgemäßes Sicherheitsmodul möglich sind.

Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend bezugnehmend auf die beiliegenden Zeichnungen näher erläutert. Es zeigen:

Fig. 1 eine schematische Darstellung einer Abbildungsvorschrift von einem logischen Adreßraum in einen physikalischen Adreßraum, anhand der die zerhackte Speicherung der auf einer Chipkarte gespeicherten Daten veranschaulicht wird;

Fig. 2 ein Flußdiagramm, das die Schritte zum Herstellen einer Chipkarte gemäß einem Ausführungsbeispiel der vorliegenden Erfindung zeigt;

Fig. 3 ein Flußdiagramm, das die Schritte zum Konfigurieren einer Chipkarte gemäß einem Ausführungsbeispiel der vorliegenden Erfindung zeigt;

Fig. 4 eine schematische Darstellung der Unterteilung eines logischen Adreßraumes in applikationsspezifische Teile und der Abbildung des logischen Adreßraumes in einen physikalischen Adreßraum bei einer Multiapplikationschipkarte gemäß einem Ausführungsbeispiel der vorliegenden Erfindung; und

Fig. 5 ein Blockdiagramm einer Schaltung für eine Chipkarte gemäß einem Ausführungsbeispiel der vorliegenden Erfindung.

Es wird darauf hingewiesen, daß, obwohl die vorliegende Erfindung im folgenden bezugnehmend auf Fig. 1 bis 5 exemplarisch anhand einer Chipkarte erläutert wird, die vorliegende Erfindung auf Sicherheitsmodule jeglicher Art anwendbar ist, wie z. B. auf Smartcards, Telefonkarten, TPMs usw.

Anhand von Fig. 1 wird zunächst die durch die Verwendung der virtuellen Speicheradressierung eintretende Zerhackung der auf einer Chipkarte gespeicherten Daten erläutert. Bezüglich näherer Details der virtuellen Speicheradressierung in Hinblick auf Chipkarten wird auf den Artikel Stephan Ondrusch, "Protected Virtual Memory - 32-Bit-Power ohne angezogene Handbremse", 10. GMD-SmartCard-Workshop, Darmstadt, 9. Feb. 2000, verwiesen, der hiermit unter Bezugnahme aufgenommen wird.

Bei 10 und 20 sind in Fig. 1 durch jeweils eine sechszeilige Spalte der logische Adreßraum bzw. der physikalische Adreßraum einer Chipkarte (nicht gezeigt) gezeigt. Der logische Adreßraum 10 legt denjenigen Adreßraum fest, der für den Ablauf der auf der Chipkarte laufenden Programme und zu deren Programmierung maßgeblich ist, und ist in sechs gleichgroße und überlappungsfreie Teile 10a, 10b, 10c, 10d, 10e und 10f unterteilt. Auf gleiche Weise ist der physikalische Adreßraum, in dem die chipkartenspezifischen Daten einschließlich der Applikationsprogramme der Chipkarte physikalisch gespeichert sind, in sechs gleichgroße und überlappungsfreie Teile 20a, 20b, 20c, 20d, 20e und 20f unterteilt (eine Zeile pro Adreßraumteil).

In dem logischen Adreßraum 10 sind chipkartenspezifische Informationen, wie z. B. ein Applikationscode, kundenspezifische Informationen, wie z. B. eine Kunden-ID, eine Smartcard-ID in dem Fall einer Pay-TV-Smartcard, oder eine Kontonummer, eine Kreditkartennummer und das dazugehörige Guthaben in dem Fall einer Kreditkarte, oder ein geheimer Schlüssel, in der korrekten Reihenfolge angeordnet. Lediglich zur Veranschaulichung enthält in Fig. 1 der erste Teil des logischen Adreßraums die Informationen A, der zweite Teil 10b die Informationen B und die restlichen logischen Adreßraumteile 10c-10f die Informationen C, D, E und F. Die korrekte Reihenfolge definiert sich in dem Fall eines Applikationscodes beispielsweise durch die Befehlsreihenfolge des Codes. In dem Fall anderer chipkartenspezifischer Informationen kann die korrekte Reihenfolge durch die Wertigkeit der Bits festgelegt sein.

Durch eine Abbildungsvorschrift 30, die durch mehrere Pfeile dargestellt ist, werden die logischen Adreßraumteile 10a-10f auf jeweils einen Teil 20a-20f des physikalischen Adreßraums 20 abgebildet. Jeder Pfeil fußt an einem Teil 10a-10f des logischen Adreßraumes 10 und zeigt auf denjenigen Teil 20a-20f des physikalischen Adreßraumes 20, auf den der jeweilige Teil des logischen Adreßraumes 10 abgebildet wird. Wie es zu sehen ist, wird durch die Abbildungsvorschrift 30 bewirkt, daß die chipkartenspezifischen Informationen, d. h. A B C D E F, in dem physikalischen Speicher (nicht gezeigt) der Chipkarte in veränderter Reihenfolge, d. h. C B F A E D, abgespeichert sind. Hierdurch wird es einem potentiellen Angreifer, der sich im Besitz der Chipkarte befindet, erschwert, aus dem Speicherinhalt des physikalischen Speichers der Chipkarte auf die zugrunde liegenden chipkartenspezifischen Informationen rückzuschließen.

Bei 40 ist in Fig. 1 eine Zuordnungstabelle bzw. eine Übersetzungsnachschlagtabelle gezeigt, die die Zuordnung bzw. die Abbildungsvorschrift 30 der logischen Adreßraumteile 10a-10f auf die physikalischen Adreßraumteile 20a-20f definiert. In der linken Spalte der Tabelle 40 sind die logischen Adressen für die Teile 10a und 10f des logischen Adreßraumes der Reihe nach exemplarisch aufgelistet, d. h. 1, 2, 3, 4, 5, 6. In der rechten Spalte der Tabelle 40 ist in jeder Zeile für die jeweilige logische Adresse die dazugehörige physikalische Adresse des Teils 20a-20f des physikalischen Adreßraumes aufgelistet, auf die der logische Adreßraumteil 10a-10f der jeweiligen logischen Adresse durch die Abbildungsvorschrift 30 abgebildet wird. Folglich kann die Abbildungsvorschrift 30 ferner als eine Abbildungsvorschrift angesehen werden, die logische Adressen auf physikalische Adressen abbildet. In dem vorliegenden Fall wird die logische Adresse 1 auf die physikalische Adresse 4, die logische Adresse 2 auf die physikalische Adresse 2, usw. abgebildet.

Bei Realisierung einer virtuellen Adressierung bei einer Chipkarte kann beispielsweise die Tabelle 40 auf einer ROM- Maske eingebrannt oder in einem Speicher, wie z. B. einem nicht-flüchtigem Speicher, wie z. B. einem EEPROM oder einem Flash-Speicher, gespeichert sein, um für einen Nachschlagzugriff zur Verfügung zu stehen. Wie es aus der vorhergehenden Beschreibung deutlich geworden ist, ist zur Speicherung bzw. Verwaltung der Übersetzungsnachschlagtabelle 40 ein Adreßtupel pro verwendeter logischer Adresse 10a-10f und somit der Speicherplatz für diese Tupel erforderlich, d. h. die Bitlänge einer logischen Adresse und einer physikalischen Adresse pro Adreßtupel. Obwohl folglich die logischen Adreßraumteile 10a-10f bzw. die physikalischen Adreßraumteile 20a-20f jegliche Größe aufweisen können, wie z. B. ein Bit, ein Byte, ein Wort, ist es vorzuziehen, die Größe der Teile 10a-10f bzw. 20a-20f größer einzustellen. Andererseits ergeben zu große Adreßraumteile 10a-10f bzw. 20a-20f eine Zerhackung mit einer geringeren Granularität, d. h. eine geringere Durchmischung bzw. große zusammenhängende Teile, die nicht zerhackt sind. In dem Fall eines Programmcodes beispielsweise bleiben bei einer zu großen Größe der Adreßraumteile erhebliche Programmteile bei Abspeicherung in dem physikalischen Adreßraum in ihrer korrekten Reihenfolge bestehen. Gemäß einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung wird deshalb eine seitenweise Abbildungsvorschrift 30 bevorzugt, bei der die logischen Adreßraumteile 10a-10f bzw. Seiten und die physikalischen Adreßraumteile 20a-20f bzw. Seitenabschnitte eine Größe von 64 Bytes aufweisen. Diese Seitengröße stellt einen Kompromiß aus einem möglichst geringen Speicheraufwand zur Speicherung einer Übersetzungsnachschlagtabelle und einer möglichst "mikrogranularen" Zerhackung dar.

Eine weitere Möglichkeit zur Realisierung der virtuellen Adressierung bei einer Chipkarte besteht darin, einen Algorithmus auf der Chipkarte zu implementieren, der auf deterministische Weise logische Adressen auf physikalische Adressen abbildet. Da hierbei lediglich die Implementierung eines Algorithmus und nicht die Speicherung einer Übersetzungsnachschlagtabelle erforderlich ist, spielt hierbei die Größe der Adreßraumteile 10a-10f bzw. 20a-20f für den Implementierungsaufwand eine geringere Rolle, so daß eine byteweise Adressierungsvorschrift ebenfalls auf einfache Weise realisiert werden kann.

Ein Beispiel für einen Algorithmus ist beispielsweise einer, bei dem die logischen Adressen aus den physikalischen abgeleitet werden, indem die Reihenfolge aufeinanderfolgender Gruppen von je drei aufeinanderfolgenden physikalischen Adressen invertiert wird. Hierdurch würden die Teile 10a und 10f des logischen Adreßraumes 10 von Fig. 1 auf die physikalischen Adressen 3, 2, 1, 6, 5, 4 abgebildet werden. Zur Realisierung dieses Algorithmus bei einer Chipkarte kann ein Adreßverschlüsselungsmodul in Hardware auf der Chipkarte implementiert sein, wobei jedoch eine softwaremäßige Implementierung des Algorithmus möglich ist. Bei jedem Schreib-, Lese- oder Ausführ-Vorgang aus einem auf der Chipkarte laufendem Applikationsprogramm auf eine logische Wort-Adresse wird diese Adresse durch den bijektiven Hardwarde-Verschlüsselungsmodul auf eine physikalische Adresse abgebildet. Angenommen, daß die in Fig. 1 dargestellten Adreßraumteile 10a-10f bzw. 20a-20f Wortgröße aufweisen, werden bei Datenzugriffen über Wortgrenzen hinweg die beiden benachbarten logischen Wörter auf getrennte Weise ausgelesen, wie z. B. in dem Fall der logischen Adresse 3 und 4, die in dem Fall von Fig. 1 auf die physikalischen Adressen 1 und 6 abgebildet werden, aus denen letztendlich die eigentlich zu lesende Information, d. h. CD, berechnet wird.

In dem Fall eines Algorithmus zur Definition einer Abbildungsvorschrift kann ein solcher Adreßverschlüsselungsalgorithmus optional durch eine Zuweisung von Werten auf spezielle Verschlüsselungsregister parametrierbar sein. Bei dem vorhergehenden Beispiel bildet n einen möglichen Parameter, dem beispielsweise zufällige Werte zugewiesen werden können.

Wie es im vorhergehenden bezugnehmend auf Fig. 1 beschrieben worden ist, wird es einem potentiellen Angreifer durch die virtuelle Adressierung nahezu unmöglich gemacht, die gespeicherten Informationen einer Chipkarte, die sich in seinem Besitz befindet, in der korrekten Reihenfolge zu rekonstruieren. Gemäß der vorliegenden Erfindung wird die Sicherheit gegen kriminelle Angriffe jedoch dadurch zusätzlich enorm verbessert, daß bei der Chipkartenherstellung die Abbildungsvorschrift von Chipkarte zu Chipkarte bzw. von Los zu Los bzw. von Charge zu Charge gewechselt wird, oder die Chipkarte selbst eine Einrichtung aufweist, die die Abbildungsvorschrift von Zeit zu Zeit, wie z. B. bei Auftreten eines vorbestimmten Ereignisses, wie z. B. der Kommunikation zwischen der Chipkarte und einem Terminal, verändert. Auf diese Weise wird verhindert, daß selbst dann, wenn der Angreifer eine Attacke erfolgreich ausgeführt und in Kenntnis des Speicherinhalts der Chipkarte in der korrekten Reihenfolge und somit in Kenntnis der Abbildungsvorschrift gelangt ist, derselbe dieses Wissen auf andere Chipkarten übertragen und anwenden kann. Nur in dem Fall, daß die andere Chipkarte zufällig dieselbe Abbildungsvorschrift wie die erfolgreich attackierte Chipkarte aufweist, d. h. aus dem selben Los stammt oder zufällig die Abbildungsvorschrift auf die gleiche geändert hat, kann der Angreifer seine Kenntnis der Abbildungsvorschrift erfolgreich anwenden. In dem Fall einer Chipkarte mit selbständiger Abbildungsvorschriftänderung kann der Angreifer seine Kenntnis der Abbildungsvorschrift darüber hinaus lediglich bis zu dem Eintreten eines vorbestimmten Ereignisses, wie z. B. dem Abbuchen eines auf der Chipkarte gespeicherten Guthabens, anwenden, da daraufhin die Abbildungsvorschrift der Chipkarte gewechselt wird.

Bezugnehmend auf Fig. 2 wird ein Ausführungsbeispiel der vorliegenden Erfindung beschrieben, bei dem die Abbildungsvorschrift während der Herstellung einer Chipkarte, und zwar zwischen unterschiedlichen Chipkarten, geändert wird. Zunächst wird in einem Schritt 50 eine erste Chipkarte mit einer ersten Abbildungsvorschrift bereit gestellt, woraufhin in einem Schritt 60 eine zweite Chipkarte mit einer zweiten Abbildungsvorschrift hergestellt wird, die sich von der ersten Abbildungsvorschrift unterscheidet. Ein potentieller Angreifer, der sich in dem Besitz der ersten Chipkarte befindet, und Kenntnis von der ersten Abbildungsvorschrift erlangt kann folglich diese Kenntnis nicht für einen Angriff auf die zweite Chipkarte verwenden. Der Wechsel der Abbildungsvorschrift während der Herstellung kann chipkartenweise oder los- bzw. chargenweise erfolgen. Bei der Herstellung der Chipkarten Herstellung kann das Versehen der Chipkarten mit einer Abbildungsvorschrift das Speichern einer Adreßübersetzungsnachschlagtabelle in einem nicht-flüchtigen Speicher, das Einbrennen einer Adreßübersetzungsnachschlagtabelle in eine Rom- Maske oder das Implementieren eines Abbildungsalgorithmus entweder softwaremäßig durch Laden eines entsprechenden Algorithmusprogrammes in einen nicht-flüchtigen Speicher oder hardwaremäßig durch Änderung des Schaltungsentwurfs und Layouts der Chipkarte bzw. durch Auswahl des Schaltungsentwurfs und Layouts aus einer geeigneten Bibliothek umfassen.

Bezugnehmend auf Fig. 3 wird ein Ausführungsbeispiel der vorliegenden Erfindung beschrieben, bei dem die Abbildungsvorschrift einer einzelnen Chipkarte auch nach der Herstellung verändert wird, wenn sich dieselbe in Benutzung befindet. Bei einem solchen Verfahren zum Konfigurieren einer Chipkarte wird in einem Schritt 70 die bestehende Abbildungsvorschrift der Chipkarte ansprechend auf das Eintreten eines vorbestimmten Ereignisses auf eine Abbildungsvorschrift geändert, die sich von der bestehenden Abbildungsvorschrift unterscheidet. Das vorbestimmte Ereignis kann beispielsweise das Erfassen einer Kommunikation zwischen der Chipkarte und einem Terminal, das Überschreiten bestimmter Grenzwerte, was auf einen unsachgemäßen Umgang und damit einen möglichen Angriff auf die Chipkarte hinweist, sowie das Ablaufen einer vorbestimmten Zeitperiode, wie z. B. einen Tag, aufweisen. Auf diese Weise wird eine intermittierende, wie z. B. tägliche, Änderung der Abbildungsvorschrift der Chipkarte sichergestellt, so daß ein Angreifer, der in Kenntnis einer augenblicklichen Abbildungsvorschrift der Chipkarte gelangt ist, diese Kenntnis nach dem nächsten Eintreten des vorbestimmten Ereignisses nicht mehr auf diese Chipkarte anwenden kann. Bei einer Änderung der Abbildungsvorschrift nur in dem Fall des Bespielens der Chipkarte mit einer neuen Applikation kann ein Umkopieren der gespeicherten Daten entfallen, da diese durch die neue Applikation hinfällig werden. Andernfalls erfolgt ein Umkopieren der gespeicherten chipkartenspezifischen Informationen von den ursprünglichen physikalischen Adreßpositionen zu den durch die neue Abbildungsvorschrift angezeigten Positionen. In dem Fall, das das eingetretene Ereignis der Beginn einer Terminal/Chipkarten-Kommunikation ist, kann die neue Abbildungsvorschrift auch von dem Terminal aus auf die Chipkarte geladen werden, indem aus einer Mehrzahl von in dem Terminal in Form einer Tabelle oder eines Algorithmus gespeicherten Abbildungsvorschriften zufällig eine ausgewählt oder dieselbe auf zufällige Weise neu erstellt wird und dieselbe auf die Chipkarte geladen wird.

Nachdem im vorhergehenden die vorliegenden Erfindung sowie ihre Vorteile eher allgemein beschrieben worden sind, werden im folgenden bezugnehmend auf die Fig. 4 und 5 spezielle Ausführungsbeispiele der vorliegenden Erfindung beschrieben.

Anhand von Fig. 4 wird zunächst ein Ausführungsbeispiel einer Multiapplikationschipkarte beschrieben, die mehrere Applikationen unterstützt. Insbesondere wird anhand von Fig. 2 die vorteilhafte Trennung des logischen Adreßraumes, der für die Applikationsprogramme maßgeblich ist, von dem physikalischen Adreßraum, in dem der Applikationscode bzw. die chipkartenspezifischen Informationen tatsächlich gespeichert sind, erläutert, die sich durch die virtuelle Speicheradressierung ergibt.

Fig. 4 zeigt bei 100 schematisch den einer Multiapplikationschipkarte zugewiesenen linearen logischen Adreßraum. Der logische Adreßraum 100 ist exemplarisch in drei gleich große Teile 100a, 100b und 100c unterteilt, von denen jeder einer der Applikationen zugeordnet ist, die die Multiapplikationschipkarte unterstützt. Die Applikationen umfassen beispielsweise eine Kreditkarten-, Telephonkarten-, Handysmartcard-, Pay-TV-Anwendung oder dergleichen. Rechts neben dem schematisch dargestellten logischen Adreßraum 100 ist bei 110 in, wie es durch gestrichelte Linien dargestellt ist, herausvergrößerter Form der Teil 100b des logischen Adreßraums 100 dargestellt. Wie es zu sehen ist, sind den logischen Adressen innerhalb des Teiles 100b des logischen Adreßraumes 100 verschiedene Speicherarten zugewiesen, in diesem Fall einem RAM, einem ROM, einem EEPROM und anderen Peripheriekomponenten auf der Chipkarte. Die Zuweisung wird von dem Chipkartenhersteller vorgenommen und in einer Spezifikation der Multiapplikationschipkarte dem Applikationscodeentwickler mitgeteilt, der im Auftrag eines Großkunden des Chipkartenhersteller den Applikationscode für die jeweilige Applikation erstellt. Folglich ist der Teil 100b des logischen Adreßraumes 100 in einen Teil 110a mit logischen Adressen bezüglich des RAM, in einen Teil 110b für den ROM, einen Teil 110c für den EEPROM und einen Teil 110d für die Peripheriekomponenten unterteilt. Die logischen Adressen in dem Teil 110d dienen dem Applikationscode beispielsweise zur Adressierung von Registern der jeweiligen Peripheriekomponenten. Solche Peripheriekomponenten umfassen beispielsweise einen UART (universal asynchronous receiver transmitter = universeller asynchroner Senderempfänger), Kryptocoprozessoren, wie z. B. einen Coprozessor für modulare oder arithmetische Berechnungen, ein Hash-Modul oder dergleichen, und eine Energieverwaltung, welche über geeignete Register, denen physikalische Adressen zugeordnet sind, angesprochen werden können.

Bei 120 ist in Fig. 2 in, wie es durch gestrichelte Linien gezeigt ist, herausvergrößerter Form der Teil 110c des logischen Adreßraumes 100 gezeigt, dessen logische Adressen sich auf den EEPROM der Multiapplikationschipkarte beziehen. Die Multiapplikationschipkarte von Fig. 2 verwendet eine seitenweise Abbildungsvorschrift von logischen Adressen auf physikalische Adressen, wie sie im vorhergehenden bezugnehmend auf Fig. 1 beschrieben worden ist. Lediglich zur Vereinfachung der Darstellung umfaßt der Teil 110c lediglich sechs logische Seiten 120a, 120b, 120c, 120d, 120e und 120f. In den Seiten 120a-120d ist der Applikationsprogrammcode gespeichert, während die Seiten 120e und 120f beispielsweise für applikationsspezifische Daten verwendet werden, wobei durch den Applikationscodeentwickler jedoch auch eine andere Aufteilung des Teiles 110c des logischen Adreßraumes vorgesehen sein kann.

Nachdem der Applikationscodeentwickler den Applikationscode unter Verwendung der von dem Chipkartenhersteller vorgegebenen Spezifikationen, wie z. B. der Unterteilung des Teiles 100b in Speicherart-spezifische Teile 110a-110d, entwickelt hat, wird dieser Applikationscode gemäß dem in Fig. 2 gezeigten Ausführungsbeispiel auf Chipkarten mit unterschiedlichen Abbildungsvorschriften geladen. In Fig. 4 ist exemplarisch eine mögliche Abbildungsvorschrift schematisch durch Pfeile 130 in den Teil 140 des physikalischen Adreßraumes gezeigt, der die physikalischen Adressen des EEPROM der Chipkarte enthält. Wie es in Fig. 4 zu sehen ist, werden die Seiten 120a-120f durch die exemplarische Abbildungsvorschrift 130 auf die Seitenabschnitten 140a, 140b, 140c, 140e und 140f auf abgebildet, wo die Informationen in zerhackter Form physikalisch und gemäß einem weiteren Ausführungsbeispiel in kryptographisch verschlüsselter Form gespeichert sind. Wie es im vorhergehenden beschrieben wurde, wird es einem Angreifer, der in Besitz der Multiapplikationschipkarte mit dieser Abbildungsvorschrift 130 gelangt, bereits durch diese zerhackte Speicherung praktisch unmöglich gemacht, aus den zerhackten Speicherinformationen, die in dem EEPROM enthalten sind, den Programmcode und die Daten 120e-120f, die in den Seitenabschnitten 140a-140f physikalisch gespeichert sind, zu rekonstruieren. Da jedoch die Chipkarten Chipkarten- oder Losweise mit einer unterschiedlichen Abbildungsvorschrift zur virtuellen Speicheradressierung versehen werden, wird es dem Angreifer auch dann, wenn derselbe die Abbildungsvorschrift einer speziellen Multiapplikationschipkarte eroiert hat, unmöglich gemacht, diese Kenntnis auf eine andere Chipkarte desselben Typs anzuwenden. Bei einem speziellen Ausführungsbeispiel wird nach einem Layoutentwurf für die Multiapplikationschipkarten zunächst eine Übersetzungsnachschlagtabelle zur Definition der Abbildungsvorschrift, wie es im vorhergehenden beschrieben wurde, auf eine ROM-Maske der Multiapplikationschipkarte gebrannt, wonach auf die derart mit einer speziellen Abbildungsvorschrift versehene Chipkarte die Applikationsdaten geladen werden. Bei einem anderen Ausführungsbeispiel werden baugleiche Chipkarten verwendet, auf denen hardwaremäßig ein Algorithmus zum Abbilden von logischen Adressen auf physikalische Adressen in einem Adreßverschlüsselungsmodul implementiert ist. In diesem Fall werden lediglich speziellen Parameterregistern des Adreßverschlüsselungsmoduls auf zufällige Weise unterschiedliche Werte zugewiesen, um die durch das Adreßverschlüsselungsmodul implementierte Abbildungsvorschrift von Chipkarte zu Chipkarte bzw. von Los zu Los zu ändern. Bei einem anderen Ausführungsbeispiel sind die Layout-Entwürfe verschiedener Multiapplikationschipkarten selbst untereinander unterschiedlich, wobei sich dieselben untereinander um die Abbildungsvorschrift unterscheiden. Für jede Chipkarte wird beispielsweise auf zufällige Weise einer einer Mehrzahl von Layout-Entwürfen ausgewählt. Auf die derart hergestellten Chipkarten werden daraufhin die applikationsspezifischen Daten geladen.

Ein großer Vorteil ergibt sich erfindungsgemäß daraus, daß die Änderung der Abbildungsvorschrift 130 keine Auswirkungen auf die Entwicklung des Applikationscodes hat, die innerhalb des logischen Adreßraumes 100 erfolgt. Folglich kann die Abbildungsvorschrift für zwei Chipkarten unterschiedlich gewählt werden, ohne den Programmcode der Applikation ändern zu müssen.

Bezugnehmend auf Fig. 5 wird im folgenden ein Ausführungsbeispiel für eine Chipkarte beschrieben, bei der die Abbildungsvorschrift der Chipkarte teilweise durch eine Zustandsmaschine, die auf einen gespeicherten Adreßbaum mittels Zeigern zugreift, und teilweise nachträglich durch ein auf der Chipkarte laufendes Betriebssystem durch eine Übersetzungsnachschlagtabelle definiert wird. Ferner umfaßt die in Fig. 3 gezeigte Chipkarte eine Einrichtung zum Ändern der Abbildung, so daß im Unterschied zu dem bezugnehmend auf Fig. 2 beschriebenen Ausführungsbeispiel, bei der lediglich eine Off- Card-Adreßvorschriftsänderung bzw. -erzeugung vorgesehen ist, ebenfalls eine On-Card-Adreßabbildungsänderung möglich ist.

Die Chipkarte von Fig. 3 umfaßt eine CPU 200, einen Logisch/Physikalisch-Wandler 210 sowie Peripheriekomponenten, die einen ROM 220, einen RAM 230, einen EEPROM 240 und exemplarisch drei weitere Peripheriekomponenten PK1 250, PK2 260 und PK3 270 umfassen. Die CPU 200 ist über einen Bus 280 mit dem Logisch/Physikalisch-Wandler 210 verbunden, der wiederum mit den Peripheriekomponenten 220-270 über einen Bus 290 verbunden ist. Ferner umfaßt die Chipkarte einen in einem Cache befindlichen TLB (TLB = translation look aside buffer = Übersetzungsvorgriffpuffer) 300, eine Zustandsmaschine 310, einen Adreßbaumspeicher 320, der beispielsweise ein EEPROM oder ein Flash-Speicher ist, sowie eine Einrichtung zum Ändern der Abb. 330. Sowohl die Zustandsmaschine 310 als auch der TLB 300 sind mit dem Wandler 210 verbunden. Die Zustandsmaschine 310 ist darüber hinaus mit dem TLB 300 und dem Adreßbaumspeicher 320 verbunden. Die Einrichtung zum Ändern der Abb. 330 ist sowohl mit dem Bus 290 als auch dem Adreßbaumspeicher 320 verbunden.

Nachdem im vorhergehenden der Aufbau der Chipkarte von Fig. 3 beschrieben worden ist, wird im folgenden die Funktionsweise derselben beschrieben. Die CPU, die das Betriebssystem der Chipkarte, das beispielsweise in dem ROM 220 gespeichert ist, sowie die von der Chipkarte unterstützten Applikationen, die beispielsweise in dem EEPROM 240 gespeichert sind, ausführt, greift auf die Peripheriekomponenten über Transaktionen, wie z. B. einen Lese-, Schreib- oder Ausführ-Vorgang, anhand logischer Adressen zu, wobei die CPU 200 die Transaktionen auf dem Bus 280 ausgibt. Der Logisch/Physikalisch-Wandler 210 wandelt jede logische Adresse in eine physikalische Adresse um und gibt die Transaktionen mit physikalischen Adressen auf dem Bus 290 aus.

Um die physikalische Adresse zu einer logischen Adresse zu ermitteln, greift der Wandler anhand eines Teils der logischen Adresse, der die logische Seite angibt, der die logische Adresse zugehört, zunächst auf den TLB 300 zu, in dem eine vorbestimmte Anzahl von logischen Seitenstartadressen zusammen mit deren zugeordneten physikalischen Seitenabschnittsstartadressen in einer Übersetzungsnachschlagtabelle enthalten sind, wobei Ersetzungen alter Adreßtupel durch neue beispielsweise nach dem FIFO- oder dem LRU-Verfahren durchgeführt werden. Falls der Wandler 210 in der Nachschlagtabelle in dem TLB einen entsprechenden Eintrag für die logische Adresse findet, gibt der Wandler dieselbe auf dem Bus 290 aus. Der TLB 300 bzw. die Nachschlagtabelle in demselben wird entweder durch das Betriebssystem oder die Zustandsmaschine 310 aufgefüllt, wie es im folgenden beschrieben werden wird.

Falls der Wandler 210 keinen entsprechenden Eintrag in dem TLB 300 findet, gibt der Wandler 210 die logische Adresse an die Zustandsmaschine 310 aus. Die Zustandsmaschine ist in der Lage, eine vordefinierte, virtuelle Filestruktur zu lesen, die den logischen Adressen zugrunde liegt. Die logischen Adressen sind in verschiedene Bitbereiche untergliedert, die verschiedenen Ebenen einer Baumstruktur zugeordnet sind. In dem Adreßbaumspeicher 320 sind dieser Baumstruktur zugehörige Listen mit physikalischen Adressen gespeichert. Der Bitbereich einer obersten Ebene der logischen Adresse gibt den Listeneintrag in der Liste der obersten Ebene in dem Adreßbaumspeicher 320 an. In diesem Listeneintrag der Liste der obersten Ebene ist wiederum ein Verweis bzw. Zeiger auf eine Liste der nächsten Ebene gespeichert, wobei ein Bitbereich der logischen Adresse, der sich auf die nächste Ebene bezieht, den entsprechenden Listeneintrag dieser Liste angibt. In diesem Listeneintrag steht wiederum ein Verweis auf eine Liste der nächstunteren Ebene der Baumstruktur. Die unterste Ebene wird durch die physikalischen Adressen gebildet, die den jeweiligen logischen Adressen zugeordnet sind. Nachdem die Zustandsmaschine 310 die Baumstruktur in dem Adreßbaumspeicher 320 durchlaufen hat, gibt die Zustandsmaschine bei Vorfinden eines entsprechenden Eintrags das Tupel aus der logischen Adresse und der zugeordneten physikalischen Adresse an den TLB 300 aus, um dasselbe gegebenenfalls unter Ersetzung eines älteren Tupels in den TLB 300 einzutragen. Der Wandler 210 gibt hierauf die physikalische Adresse auf dem Bus 290 aus.

Es wird darauf hingewiesen, daß durch das Vorsehen der Zustandsmaschine 310 in Verbindung mit dem in dem Adreßbaumspeicher 320 gespeicherten Informationen auch das Betriebssystem selbst in dem logischen Adreßraum ablaufen kann. Die CPU 200 benötigt lediglich eine Startadresse. Bei einer Initialisierung, wie z. B. bei Eintreten der Chipkarte in Kommunikation mit einem Terminal, wird der zunächst leere TLB 300 während des Hochfahrens des Betriebssystems ständig durch die Zustandsmaschine 310 aufgefüllt. Damit das Betriebssystem ebenfalls durch die im vorhergehenden beschriebene Seitenverschlüsselung geschützt ist, muß lediglich zumindest ein Boot- Strap-Teil desselben nach einem Rücksetzen der CPU 200 durch die Zustandsmaschine 310 für die virtuellen Filestruktur automatisch geladen werden. Das Betriebssystem läuft deshalb nicht in einem physikalischen Modus sondern wie die Applikationsprogramme auch in einem virtuellen Modus, was die Sicherheit der Chipkarte weiterhin erhöht und zudem dem Chipkartenhersteller ein Produkt liefert, daß den Kunden eine kundenspezifischere Anpassung ermöglicht.

Die in dem Adreßbaumspeicher 320 gespeicherten Daten können ähnlich zu dem bezugnehmend auf Fig. 2 und 4 beschriebenen Ausführungsbeispiel bereits bei Herstellung unterschiedlich vorgesehen werden, um Chipkarten mit unterschiedlichen Abbildungsvorschriften zu erhalten. Durch die Einrichtung 330 zum Ändern der Abbildung ist die Chipkarte von Fig. 3 jedoch ferner zu einer Änderung der Abbildungsvorschrift ähnlich zu dem Ausführungsbeispiel von Fig. 3 in der Lage, nachdem die Chipkarte in Gebrauch ist. In dem vorliegenden Ausführungsbeispiel spricht die Einrichtung 330 auf Befehle von der CPU 200 an, die über den Bus 280 und 290 übertragen werden. Die Einrichtung 330 umfaßt beispielsweise einen Zufallsgenerator zum Erzeugen von Zufallszahlen, um auf zufällige Weise eine neue Abbildungsvorschrift zu erstellen, oder eine Mehrzahl von Algorithmenschaltungen zum Implementieren verschiedener Abbildungsvorschriften, wobei dieselben jedoch auch softwaremäßig implementiert sein kann. Weitere Teile zum Ändern der Abbildung sind entweder softwaremäßig oder hardwaremäßig implementiert und können beispielsweise auf einen speziellen Instruktionssatz der CPU 200 zurückgreifen, der spezielle Befehle zum Lesen und Schreiben bezüglich physikalischer Adressen unterstützt. Durch diesen Instruktionssatz kann die Einrichtung 330 den Speicherinhalt des Adreßbaumspeichers 320 auf geeignete Weise verändern, um die Abbildungsvorschrift der Chipkarte zu ändern. Bei einem anderen Ausführungsbeispiel wird die Änderung der Abbildungsvorschrift anstatt durch eine gesonderte Einrichtung 330 durch das Betriebssystem selbst durchgeführt, indem dasselbe auf den Instruktionssatz der CPU 200 zurückgreift. Das Betriebssystem trägt bei einem anderen Ausführungsbeispiel in ein spezielles Register eine physikalische Seitenadresse ein, so daß beim Schreiben bzw. Lesen auf eine diesem Register zugeordnete logische Seitenadresse auf die in dem Register eingetragene physikalische Seite zugegriffen wird. Die Änderung der Abbildungsvorschrift findet beispielsweise bei jedem erneuten Eintreten einer Kommunikation zwischen der Chipkarte und einem Terminal statt.

Falls die Einrichtung 300 den Speicherinhalt des Adreßbaumspeichers 320 ändert, um die Abbildungsvorschrift der Chipkarte zu ändern, weist die Einrichtung 300 gleichzeitig ein Umkopieren der entsprechenden Seitenabschnitte bzw. Register, die den physikalischen Adressen zugeordnet sind, an. Hierbei wird der Speicherinhalt derjeniger physikalischen Adressen, auf die die logischen Adressen durch die ursprüngliche Abbildungsvorschrift der Chipkarte abgebildet wurden, zu denjenigen kopiert, auf die die logischen Adressen durch die neue Abbildungsvorschrift abgebildet werden. Durch diese Maßnahme wird gewährleistet, daß die CPU beim Zugreifen auf die Peripheriekomponenten 220-270 mittels der logischen Adressen auf die korrekten Daten zugreift. Der Schritt des Umkopierens kann jedoch unterbleiben, falls die Änderung der Abbildungsvorschrift lediglich einen Teil des logischen Adreßraumes betrifft, der, wie es bezugnehmend auf Fig. 2 beschrieben worden ist, eine Applikation zugeordnet ist, die gerade neu auf die Chipkarte geladen wird. In diesem Fall sind die bestehenden Daten in den Seitenabschnitten, die den physikalischen Adressen zugeordnet sind, auf die die logischen Adressen ursprünglich abgebildet wurden, nicht mehr von Bedeutung, so daß das Umkopieren unterbleiben kann.

Bezugnehmend auf die Fig. 2 und 3 wird darauf hingewiesen, daß die dargestellten Schritte der erfindungsgemäßen Verfahren bei einer erfindungsgemäßen Vorrichtung bzw. einem erfindungsgemäßen Sicherheitsmodul durch entsprechende Einrichtungen implementiert sein können, die diese Schritte aufweisen. Die Einrichtungen zum Bereitstellen der Sicherheitsmodule mit unterschiedlichen Abbildungsvorschriften können beispielsweise Layout-, Entwicklungs-, Bibliothekenbereitstellungs- und Simulationswerkzeuge, Halbleiterherstellungsgeräte, Lese/Schreib-Schnittstellenvorrichtungen, ROM-Masken- Herstellungsgeräte und/oder Zufallsgeneratoren sowie geeignete Softwareprogramme zur Steuerung oder Abbildungsvorschriftenauswahl und -erzeugung umfassen, sind aber nicht auf dieselben beschränkt. Die Einrichtung zum Ändern der Abbildungsvorschriften eines Sicherheitsmoduls auf das Eintreten eines vorbestimmten Ereignisses hin kann beispielsweise einen Zufallsgenerator, Software zur Abbildungsvorschriftenauswahl oder -erzeugung, softwaremäßig oder hardwaremäßig implementierte Abbildungsalgorithmen und/oder Parameterregister umfassen, sind aber nicht darauf begrenzt. Die Erfassung des Eintretens vorbestimmter Ereignisse kann durch Zeitgeber, Spannungs- und Stromschwellenwertkomparatoren und/oder Sicherheitsmodul/Terminal-Kommunikationserfassungselemente durchgeführt werden. Bezugszeichenliste 10 logischer Adressraum

10a-10f Teile des logischen Adressraumes

20 physikalischer Adressraum

20a-20f Teile des physikalischen Adressraumes

30 Abbildungsvorschrift

40 Nachschlagtabelle

100 logischer Adressraum

100a-100c Teile des logischen Adressraumes

110 Teil des logischen Adressraumes der zweiten Applikation

110a RAM-zugewiesener Teil

110b ROM-zugewiesener Teil

110c EEPROM-zugewiesener Teilabsatz

110d Peripheriekomponente-zugewiesender Teil

120 EEPROM-zugewiesener Teilabsatz

120a-120f -

130 Abbildungsvorschrift

140a-140f Seitenabschnitte

200 DPU

210 Logisch/Physikalisch-Wandler

220 ROM

230 RAM

240 EEPROM

250 PK1

260 PK2

270 PK3

280 Bus

290 Bus

300 TLB

310 Zustandsmaschine

320 Einrichtung zum Ändern der Abbildungsvorschrift

330 Adressbaumspeicher


Anspruch[de]
  1. 1. Verfahren zum Herstellen von Sicherheitsmodulen mit einer virtuellen Speicheradressierung, bei der logische Adressen mittels einer Abbildungsvorschrift auf eindeutige Weise auf physikalische Adressen abgebildet werden, mit folgenden Schritten:

    Bereitstellen (50) eines ersten Sicherheitsmoduls mit einer ersten Abbildungsvorschrift; und

    Bereitstellen (60) eines zweiten Sicherheitsmoduls mit einer zweiten Abbildungsvorschrift,

    wobei sich die erste Abbildungsvorschrift von der zweiten Abbildungsvorschrift unterscheidet.
  2. 2. Verfahren gemäß Anspruch 1, bei dem die Schritte des Bereitstellens (50, 60) das zufällige Erstellen der ersten beziehungsweise zweiten Abbildungsvorschrift aufweisen.
  3. 3. Verfahren gemäß Anspruch 1, bei dem die Schritte des Bereitstellens (50, 60) das Auswählen der ersten beziehungsweise zweiten Abbildungsvorschrift aus einer Vielzahl von unterschiedlichen Abbildungsvorschriften aufweisen.
  4. 4. Verfahren gemäß einem der Ansprüche 1 bis 3, bei dem die Schritte des Bereitstellens (50, 60) das Laden der ersten beziehungsweise zweiten Abbildungsvorschrift in einen nicht- flüchtigen Speicher des ersten beziehungsweise zweiten Sicherheitsmoduls aufweisen.
  5. 5. Verfahren gemäß einem der Ansprüche 1 bis 3, bei dem die Schritte des Bereitstellens (50, 60) das Brennen der ersten beziehungsweise zweiten Abbildungsvorschrift auf eine ROM- Maske des ersten beziehungsweise zweiten Sicherheitsmoduls aufweisen.
  6. 6. Verfahren gemäß einem der Ansprüche 1 bis 5, bei dem die erste und die zweite Abbildungsvorschrift Übersetzungsnachschlagtabellen (40) mit einer Mehrzahl von Einträgen umfassen, wobei jeder Eintrag eine logische Adresse und eine physikalische Adresse aufweist, auf die die logische Adresse abgebildet ist.
  7. 7. Verfahren gemäß einem der Ansprüche 1 bis 5, bei dem die erste und die zweite Abbildungsvorschrift Algorithmen zum Berechnen der physikalischen Adressen aus den logischen Adressen aufweisen.
  8. 8. Verfahren gemäß Anspruch 7, bei dem die Algorithmen hardwaremäßig implementiert sind und sich voneinander unterscheiden.
  9. 9. Verfahren gemäß Anspruch 7, bei dem die Algorithmen identisch und durch zumindest einen Parameter konfigurierbar sind, wobei die Schritte des Bereitstellens (50, 60) das Konfigurieren des Algorithmus durch Laden von unterschiedlichen Parametern auf das erste beziehungsweise zweite Sicherheitsmodul aufweisen.
  10. 10. Verfahren gemäß einem der Ansprüche 1 bis 9, bei dem die erste und die zweite Abbildungsvorschrift seitenweise Abbildungsvorschriften (130) sind, die nicht überlappende logische Seiten (120a, 120b, 120c, 120d, 120e, 120f) auf nicht überlappende physikalische Seitenabschnitte (140a, 140b, 140c, 140d, 140e, 140f) abbildet, wobei jede logische Adresse eine Seitenadresse einer logischen Seite und jede physikalische Adresse eine Seitenabschnittsadresse eines physikalischen Seitenabschnitts ist, und wobei die Seitengröße gleich der Seitenabschnittsgröße ist.
  11. 11. Verfahren gemäß Anspruch 10, bei dem die Seitengröße zwischen 32 und 128 Bytes beträgt.
  12. 12. Verfahren gemäß einem der Ansprüche 1 bis 11, bei dem das Sicherheitsmodul eine Chipkarte ist, die mehrere Applikationen unterstützt, wobei jeder Applikation unterschiedliche logische Adressen zugeordnet sind.
  13. 13. Sicherheitsmodul mit einer virtuellen Speicheradressierung, bei der logische Adressen mittels einer ersten Abbildungsvorschrift auf eindeutige Weise auf physikalische Adressen abgebildet werden, mit folgendem Merkmal:

    einer Einrichtung (70) zum Ändern der ersten Abbildungsvorschrift in eine zweite Abbildungsvorschrift ansprechend auf das Eintreten eines vorbestimmten Ereignissen,

    wobei sich die erste Abbildungsvorschrift von der zweiten Abbildungsvorschrift unterscheidet.
  14. 14. Sicherheitsmodul gemäß Anspruch 13, das ferner folgendes Merkmal aufweist: eine Einrichtung zum Kopieren des Speicherinhalts derjeniger physikalischen Adressen, auf die die logischen Adressen durch die erste Abbildungsvorschrift abgebildet werden, zu denjenigen physikalischen Adressen, auf die die logischen Adressen durch die zweite Abbildungsvorschrift abgebildet werden.
  15. 15. Sicherheitsmodul gemäß Anspruch 13 oder 14, bei dem das vorbestimmte Ereignis das Eintreten der Chipkarte in Kommunikation mit einem Terminal, das Ablaufen einer vorbestimmten Zeitperiode oder das Erfassen der Verletzung vorbestimmter Sicherheitsbedingungen aufweist.
  16. 16. Sicherheitsmodul gemäß einem der Ansprüche 13 bis 15, bei dem die Einrichtung zum Ändern (70) einen Zufallszahlengenerator umfaßt.
  17. 17. Sicherheitsmodul gemäß einem der Ansprüche 13 bis 15, das ferner folgende Merkmale aufweist: eine Einrichtung zum Empfangen der zweiten Abbildungsvorschrift von einem Terminal.
  18. 18. Sicherheitsmodul gemäß einem der Ansprüche 13 bis 17, bei dem die erste und die zweite Abbildungsvorschrift in einem nicht-flüchtigen Speicher des Sicherheitsmoduls gespeichert sind.
  19. 19. Sicherheitsmodul gemäß einem der Ansprüche 13 bis 18, bei dem die erste und die zweite Abbildungsvorschrift Übersetzungsnachschlagtabellen mit einer Mehrzahl von Einträgen umfassen, wobei jeder Eintrag eine logische Adresse und eine physikalische Adresse aufweist, auf die die logische Adresse abgebildet ist.
  20. 20. Sicherheitsmodul gemäß einem der Ansprüche 13 bis 19, bei dem die erste und die zweite Abbildungsvorschrift Algorithmen zum Berechnen der physikalischen Adressen aus den logischen Adressen aufweisen.
  21. 21. Verfahren gemäß Anspruch 20, bei dem die Algorithmen hardwaremäßig implementiert sind und sich voneinander unterscheiden.
  22. 22. Verfahren gemäß Anspruch 20, bei dem die Algorithmen identisch und durch zumindest einen Parameter konfigurierbar sind, wobei die Einrichtung zum Ändern (70) eine Einrichtung zum Laden von unterschiedlichen Parametern auf dem Sicherheitsmodul aufweist.
  23. 23. Verfahren gemäß einem der Ansprüche 13 bis 22, bei dem die erste und die zweite Abbildungsvorschrift seitenweise Abbildungsvorschriften (130) sind, die nicht überlappende logische Seiten (120a, 120b, 120c, 120d, 120e, 120f) auf nicht überlappende physikalische Seitenabschnitte (140a, 140b, 140c, 140d, 140e, 140f) abbildet, wobei jede logische Adresse eine Seitenadresse einer logischen Seite und jede physikalische Adresse eine Seitenabschnittsadresse eines physikalischen Seitenabschnitts ist, und wobei die Seitengröße gleich der Seitenabschnittsgröße ist.
  24. 24. Sicherheitsmodul gemäß Anspruch 23, bei dem die Seitengröße zwischen 32 und 128 Bytes beträgt.
  25. 25. Sicherheitsmodul gemäß einem der Ansprüche 13 bis 24, bei dem das Sicherheitsmodul eine Chipkarte ist, die mehrere Applikationen unterstützt, wobei jeder Applikation unterschiedliche logische Adressen zugeordnet sind.
  26. 26. Vorrichtung zum Herstellen von Sicherheitsmodulen mit einer virtuellen Speicheradressierung, bei der logische Adressen mittels einer Abbildungsvorschrift auf eindeutige Weise auf physikalische Adressen abgebildet werden, mit folgendem Merkmal:

    einer Einrichtung zum Bereitstellen eines ersten Sicherheitsmoduls mit einer ersten Abbildungsvorschrift und eines zweiten Sicherheitsmoduls mit einer zweiten Abbildungsvorschrift,

    wobei sich die erste Abbildungsvorschrift von der zweiten Abbildungsvorschrift unterscheidet.
  27. 27. Verfahren zum Konfigurieren eines Sicherheitsmoduls mit einer virtuellen Speicheradressierung, bei der logische Adressen mittels einer ersten Abbildungsvorschrift auf eindeutige Weise auf physikalische Adressen abgebildet werden, mit folgendem Schritt:

    Ändern der ersten Abbildungsvorschrift in eine zweite Abbildungsvorschrift ansprechend auf das Eintreten eines vorbestimmten Ereignisses,

    wobei sich die erste Abbildungsvorschrift von der zweiten Abbildungsvorschrift unterscheidet.






IPC
A Täglicher Lebensbedarf
B Arbeitsverfahren; Transportieren
C Chemie; Hüttenwesen
D Textilien; Papier
E Bauwesen; Erdbohren; Bergbau
F Maschinenbau; Beleuchtung; Heizung; Waffen; Sprengen
G Physik
H Elektrotechnik

Anmelder
Datum

Patentrecherche

Patent Zeichnungen (PDF)

Copyright © 2008 Patent-De Alle Rechte vorbehalten. eMail: info@patent-de.com