DE69603160T2 - Integrierte schaltung für smart-card - Google Patents

Integrierte schaltung für smart-card

Info

Publication number
DE69603160T2
DE69603160T2 DE69603160T DE69603160T DE69603160T2 DE 69603160 T2 DE69603160 T2 DE 69603160T2 DE 69603160 T DE69603160 T DE 69603160T DE 69603160 T DE69603160 T DE 69603160T DE 69603160 T2 DE69603160 T2 DE 69603160T2
Authority
DE
Germany
Prior art keywords
memory
instruction
instructions
commands
processor device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE69603160T
Other languages
English (en)
Other versions
DE69603160D1 (de
Inventor
David Chaum
Niels Ferguson
Martin Kelly
Wolfgang Mayerwieser
William Orme
Reinhard Posch
Marius Schilder
Volker Schindler
Christopher Shelton
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
INST ANGEWANDTE INFORMATIONSVE
GEN INFORMATION SYSTEMS Ltd
DIGICASH BV
Original Assignee
INST ANGEWANDTE INFORMATIONSVE
GEN INFORMATION SYSTEMS Ltd
DIGICASH BV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by INST ANGEWANDTE INFORMATIONSVE, GEN INFORMATION SYSTEMS Ltd, DIGICASH BV filed Critical INST ANGEWANDTE INFORMATIONSVE
Application granted granted Critical
Publication of DE69603160D1 publication Critical patent/DE69603160D1/de
Publication of DE69603160T2 publication Critical patent/DE69603160T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1008Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/067Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components
    • G06K19/07Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips
    • G06K19/073Special arrangements for circuits, e.g. for protecting identification code in memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/341Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/357Cards having a plurality of specified features
    • G06Q20/3576Multiple memory zones on card

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Accounting & Taxation (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Description

  • Die vorliegende Erfindung betrifft eine integrierte Schaltung (IC) in Ein-Chip-Bauweise mit einer Prozessoreinrichtung zur Verarbeitung von Befehlen.
  • Einleitung
  • Tragbare Datenträgereinheiten mit einem nichtflüchtigen Speicher zur Speicherung von gesicherten Daten sind bekannt. Sie sind hinsichtlich Größe und Anordnung weitgehend ähnlich konventionellen Kreditkarten und folgen einem mittlerweile entwickelten internationalen Standard. Zusätzlich zu der nichtflüchtigen Datenspeicherung können derartige Karten auch die Fähigkeit zur Verarbeitung von Daten haben. In einer solchen Ausgestaltung werden sie gemeinhin als "intelligente Chip-Karten (smart cards)" bezeichnet.
  • Die auf intelligenten Chip-Karten gespeicherten Daten können ganz unterschiedlichen Objekten entsprechen. Diese Karten sind insbesondere als Speichermittel für Geldbeträge verbreitet, wobei die Daten auf den Karten Währungsbeträgen entsprechen und insoweit konventionelle Banknoten und Münzen ersetzen. Geldtransaktionen unter Benutzung dieser Karten werden mit Hilfe geeigneter Terminals durchgeführt, die beispielsweise neben konventionellen Registrierkassen vorhanden sein können. Eine Transaktion schließt ein, daß der Datenwert auf der Karte vermindert und entsprechend, mittels des Terminals, ein Datenwert an einem entfernten Ort erhöht wird. Die Karten können Datenwerte speichern, die einer bestimmten Geldmenge entsprechen. Es können auch Transaktionen durchge führt werden, bei denen ein Geldbetrag auf der Karte erhöht und gleichzeitig ein Geldbetrag an einem entfernten Ort vermindert wird. Dadurch wird der Geldwert der Karte erhöht.
  • In der europäischen Patentanmeldung 0356257 ist eine IC- Karte beschrieben, die einen Prozessor, einen ersten Speicher zur Speicherung eines Systemprogramms und einen zweiten Speicher zur Speicherung eines Anwendungsprogramms enthält. Zur Speicherung von durch den Prozessor verarbeiteten Daten ist ein dritter Speicher vorgesehen, und es ist eine Eingabe/Ausgabe-Einheit vorhanden, um die Eingabe- und Ausgabe-Operationen hinsichtlich Programmen und Daten zu ermöglichen. Weiterhin ist ein Programmstopp-Abschnitt vorgesehen, um die Ausführung des Programms durch den Prozessor bei einer vorbestimmten Adresse zu unterbrechen. Durch einen Datenausgabe-Abschnitt wird entweder der Inhalt eines Registers des Prozessors oder der Inhalt eines Adressbereichs von mindestens einem des ersten, zweiten oder dritten Speichers an die Eingabe/Ausgabe-Einheit übertragen und die Programmausführung durch den Prozessor angehalten.
  • Es ist auch Hardware verfügbar, mittels der Geldbeträge unmittelbar von einer Karte auf die andere übertragen werden. Solche Geldtransaktionen erfordern es, einen Datenwert auf der einen Karte zu vermindern, während auf der mit dieser verbundenen Karte ein entsprechender Anstieg des Datenwerts stattfindet. Demzufolge entsprechen die auf beiden Karten gespeicherten Daten nach der Transaktion einem Transfer einer bestimmten Geldmenge von einer Karte auf die andere.
  • Demzufolge kann eine Vielfalt finanzieller Transaktionen mittels intelligenter Chip-Karten durchgeführt werden, wobei eine entsprechende Vielfalt von Terminal-Hardware bei den unterschiedlichen Handelsgeschäften und Finanzdienstleistern verwendet wird. Um das Risiko elektronischer Fälschungen oder anderer mißbräuchlicher Benutzung zu vermeiden, ist es entscheidend, daß bei derartigen Transaktionen ein extrem hoher Sicherheitsstandard eingehalten wird.
  • Eine Hochsicherheits-IC-Karte ist in der europäischen Patentanmeldung 0636998 beschrieben. Die IC-Karte hat einen ROM (Nur-Lese-Speicher) zur Speicherung von Operationsbefehlen und einen wiederbeschreibbaren Speicher zur Speicherung einer Mehrzahl von Steuerbefehlen. Eine Auswahleinheit selektiert Operationsbefehle, die in dem ROM gespeichert sind, und einen der Steuerbefehle, die in dem wiederbeschreibbaren Speicher gespeichert sind. Zur Steuerung der IC-Karte gemäß den ausgewählten Steuerbefehlen ist eine Steuereinheit vorgesehen. Die Karte ermöglicht einen hohen Grad an Sicherheit, so daß sie zur Speicherung vertraulicher Befehle verwendet werden kann. Die Karte kann in einer Form realisiert werden, die ohne Neuschreiben der Daten in dem ROM an unterschiedliche Anwendungssysteme, die für die Karte verwendet werden, adaptiert werden kann. Dadurch ist sie sehr vielfältig einsetzbar.
  • Aus dem Erfordernis eines hohen Sicherheitsstandards ergibt sich eine Beschränkung hinsichtlich der Funktionalität intelligenter Chip-Karten. Um eine Benutzungszulassung durch Finanzinstitute oder zuständige staatliche Einrichtungen zu erhalten, muß man zeigen können, daß die Operationen der intelligenten Chip-Karte einer Reihe von etablierten Hochsicherheits-Protokollen entsprechen. Die Funktionen einer solchen Chip-Karte werden deswegen zum Zeitpunkt der Herstellung endgültig festgelegt, um eine weitgehende Akzeptanz zur Benutzung auf dem sensitiven Gebiet finanzieller Transaktionen zu erreichen. Es ist daher bei vorbekannten Chip-Kartensystemen notwendig, die funktionalen Anforderungen an eine bestimmte intelligente Chip-Karte exakt vorherzubestimmen, bevor sie hergestellt und in den Handel gebracht wird.
  • Zu diesen Funktions-Erfordernissen gehört die Definition eines Hochsicherheits-Protokolls. Es wurde festgestellt, daß es möglich ist, mindestens eines der derzeit etablierten Hochsicherheits-Protokolle zu entschlüsseln, sofern weltweit ein ausreichend organisierter Bestand an Computer-Ressourcen zur Verfügung steht. Infolge des exponentiellen Anstiegs der Verfügbarkeit von Computerleistung wird es immer schwieriger, einen bestimmten Satz an Sicherheitsprotokollen zu definieren, die über einen gewissen Zeitraum nicht entschlüsselt werden können. Es gilt daher als akzeptierte Tatsache, daß ein etabliertes Sicherheitsprotokoll früher oder später entschlüsselt wird, insbesondere, da es unmöglich ist, die künftige technologische Entwicklung mit Sicherheit vorherzusagen, nicht einmal für einen Zeitraum von wenigen Jahren.
  • In Anbetracht dieser Schwierigkeiten ist es bei den existierenden Chip-Karten möglich, daß eine ganze Struktur von Finanztransaktionen durch eine einzige nicht vorhersehbare Änderung der einem entschlossenen "Hacker" zur Verfügung stehenden Computerleistung unterminiert wird.
  • Um die Wahrscheinlichkeit eines solchen Geschehens zu vermindern, werden Sicherheitsprotokolle ständig überprüft und weiterentwickelt. Wenn die Möglichkeit besteht, die Sicherheitsprotokolle immer dann, wenn es notwendig ist, zu updaten, können Finanzinstitutionen und andere sicherheitsbewußte Einrichtungen stets einen Schritt wei ter sein als diejenigen, die ihre Informationen stehlen wollen. Zumindest kann der bei der Entdeckung eines derartigen Falls entstehende Schaden minimiert werden.
  • Bei den existierenden hochsicheren intelligenten Chip- Karten besteht ein Risiko, wenn es möglich ist, nach ihrer Herstellung Befehle auf die Karten zu übertragen. Das folgt aus der Tatsache, daß die Befehle die vollständige Funktionalität der Karte definieren. Es ist deshalb nicht sicher möglich, die Übertragung von illegalen Befehlen auf die intelligente Chip-Karte zu verhindern. Sie kann dann in unzulässiger Weise benutzt werden, um über die legitime Zugangsberechtigung des Benutzers hinaus Zugang zu Geldbeträgen oder Informationen zu erlangen. Infolge dieses Sachverhalts ist es bei den vorbekannten Chip- Karten notwendig, die im Umlauf befindlichen Karten zu vernichten und durch neue zu ersetzen, wenn eine Bank die Forderung stellt, daß das Sicherheitsprotokoll der Karte geändert werden soll.
  • Intelligente Chip-Karten können sehr nützliche Computerfähigkeiten aufweisen, die zusätzlich zu rein finanziellen Transaktionen auch für andere Zwecke verwendet werden können. Solche Anwendungen sind beispielsweise die Benutzung der Karten für Vergnügungszwecke wie beispielsweise für Computerspiele. Es sind Systeme entwickelt worden, bei denen Karten in Verbindung mit einem elektronischen Spielgerät verwendet werden, um das Spiel aus der Karte zu übertragen, wobei es möglich ist, die Spielergebnisse von Benutzern in der Karte sicher zu speichern. Weiterhin ist es in Anbetracht des in gebräuchlichen Karten mittlerweile erreichten Grads an Prozessorleistung möglich, daß von der Karte Befehle eines anderen Geräts ausgeführt werden, wodurch die Funktion der Karte erheblich erweitert wird.
  • Auf dieser Basis bestünde die Möglichkeit, Karten herzustellen, die sich für in der Zukunft entwickelte neue Anwendungen eignen, weil die gesamte Funktionalität einer bestimmten Anwendung aus neuen Befehlen, die von einer externen Anwendung übertragen werden (third party instructions), besteht. Dabei könnte die Karte eine neue Computer-Plattform bilden und den Entwicklern die Möglichkeit geben, neue Anwendungen zu entwickeln, ohne daß eine Modifikation feststehender Befehle der Chip-Karte notwendig wird. Bei den bisher vorhandenen intelligenten Chip-Karten ist es jedoch nicht möglich, ausführbare Befehle von einer externen Quelle, möglicherweise in einer interaktiven Operation, zu übernehmen, jedenfalls - wegen der Anforderungen an ein hochsicheres Protokoll - soweit die Karten für finanzielle und andere sichere Transaktionen verwendet werden.
  • Zusammenfassung der Erfindung
  • Entsprechend einem ersten Aspekt der vorliegenden Erfindung wird eine integrierte Schaltung in Ein-Chip-Bauweise mit einer Prozessoreinrichtung bereitgestellt, die zur Verarbeitung von aus einer Speichereinrichtung übertragenen Befehlen ausgebildet ist, wobei die Speichereinrichtung einen ersten Befehlsspeicherbereich und einen zweiten Befehlsspeicherbereich aufweist, Befehle selektiv von den Befehlsspeicherbereichen an die Prozessoreinrichtung übertragen werden und die Schaltung dadurch gekennzeichnet ist, daß sie Aktivierungsmittel aufweist, die derartig ausgebildet sind, daß die Prozessoreinrichtung zur Übernahme von privilegierten Befehlen aktiviert wird, wenn die Befehle aus dem ersten Befehlsspeicherbereich übertragen werden, und daß die Prozessoreinrichtung für die Übernahme der privilegierten Befehle desaktiviert wird, wenn diese Befehle aus dem zweiten Befehlsspeicherbereich übermittelt werden.
  • In einer bevorzugten Ausführungsform ist der Chip Bestandteil einer Chipkarte. Dabei kann der zweite Befehlsspeicherbereich so konfiguriert werden, daß er Befehle von einem Chipkarten-Terminal übernehmen kann.
  • Vorzugsweise ist eine Seitenspeicher-Adressierungseinrichtung vorgesehen, die so eingerichtet ist, daß sie Adressen an einen Befehlsspeicherbereich überträgt, wobei die Seitenspeicher-Adressierungseinrichtung nur durch geschützte Befehle, die aus dem ersten Befehlsspeicherbereich übertragen werden, geändert werden kann.
  • In einer bevorzugten Ausführungsform hat die Schaltung eine Mehrzahl von Prozessoreinrichtungen, wobei der erste Befehlsspeicherbereich eine Multiplexeinrichtung umfaßt, die eine Ziel-Prozessoreinrichtung für Befehle auswählt. Eine erste Ziel-Prozessoreinrichtung kann so eingerichtet sein, daß sie von dem ersten Befehlsspeicherbereich mit einer ersten Befehlsflußrate Befehle übernimmt und decodiert, und eine zweite Ziel-Prozessoreinrichtung kann so eingerichtet sein, daß sie von dem ersten Befehlsspeicherbereich mit einer zweiten Befehlsflußrate Befehle übernimmt und decodiert.
  • Entsprechend einem zweiten Aspekt der vorliegenden Erfindung wird ein Verfahren zur Verarbeitung von Befehlen, die aus einer Speichereinrichtung gelesen werden, vorgeschlagen, wobei die Speichereinrichtung einen ersten Befehlsspeicherbereich und einen zweiten Befehlsspeicherbereich umfaßt. Befehle werden selektiv aus den Befehlsspeicherbereichen an die erste Ziel-Prozessoreinrichtung übertragen. Aktivierungsmittel aktivieren die Ansprech barkeit der Prozessoreinrichtung auf privilegierte Befehle, wenn diese Befehle aus dem ersten Befehlsspeicherbereich kommen. Die Aktivierungsmittel desaktivieren die Ansprechbarkeit der Prozessoreinrichtung auf privilegierte Befehle, wenn die Befehle aus dem zweiten Befehlsspeicherbereich kommen.
  • In einer bevorzugten Ausführungsform ist die Prozessoreinrichtung eine kryptographische Prozessoreinrichtung.
  • Beschreibung der Zeichnungen
  • Fig. 1 zeigt ein Chipkarten-Terminal, eine Kommunikationsverbindung und einen Großrechner;
  • Fig. 2 zeigt ein tragbares Chipkarten-Transaktionsgerät mit zwei Chipkarten;
  • Fig. 3 zeigt eine Chipkarte des in Fig. 2 dargestellten Typs, die mit dem in Fig. 1 dargestellten Chipkarten-Terminal kompatibel ist;
  • Fig. 4 zeigt eine bekannte Ausführung eines Chips in einer konventionellen Chipkarte mit einem Befehlsspeicherbereich und einer CPU;
  • Fig. 5 zeigt Befehlsfolgen, die in dem in Fig. 4 gezeigten Befehlsspeicherbereich gespeichert sind;
  • Fig. 6 zeigt die Abfolge des Holens und Decodierens eines Befehls, wie sie von der in Fig. 4 gezeigten CPU ausgeführt wird;
  • Fig. 7A zeigt eine verbesserte Ausführung eines Chips in einer Chipkarte mit einem privilegierten Befehlsspeicher, einem nicht-flüchtigen Befehlsspeicher und einer CPU, die einen selektiven Befehlsdecoder besitzt;
  • Fig. 7B zeigt Details der Anschlüsse des in Fig. 7A gezeigten selektiven Befehlsdecoders;
  • Fig. 8 zeigt Inhalte des privilegierten Befehlsspeichers und des nicht-flüchtigen Befehlsspeichers, die in Fig. 7A gezeigt sind;
  • Fig. 9A zeigt den Zyklus des Holens und Decodierens eines Befehls, wie er durch die Hardware der in Fig. 7A gezeigten CPU ausgeführt wird, einschließlich des Aufrufens einer Prozedur zur Behandlung von Ausnahmen;
  • Fig. 9B zeigt Details der in Fig. 9A gezeigten Prozedur zur Behandlung von Ausnahmen;
  • Fig. 10A listet geschützte Befehle auf, über deren Ausführung von dem in Fig. 7A gezeigten selektiven Befehlsdecoder entschieden wird;
  • Fig. 10B listet ungeschützte Befehle auf, über deren Ausführung von dem in Fig. 7A gezeigten selektiven Befehlsdecoder entschieden wird;
  • Fig. 10C listet weitere ungeschützte Befehle auf, über deren Ausführung von dem in Fig. 7A gezeigten selektiven Befehlsdecoder entschieden wird;
  • Fig. 11 zeigt eine bevorzugte Ausführungsform der Erfindung, einschließlich einer Verschlüsselungs- Logik-Einheit, die durch einen Mikrocode-Bus an einen privilegierten Befehlsspeicher angeschlossen ist;
  • Fig. 12 zeigt eine Multiplex-Einrichtung, um Befehle aus dem in Fig. 11 gezeigten privilegierten Befehlsspeicher an den Mikrocode-Bus zu übertragen;
  • Fig. 13A zeigt die zeitliche Neuordnung eines 32-bit Mikrocodes, der von der in Fig. 11 gezeigten Verschlüsselungs-Logik-Einheit übertragen wird, mit individuellen Befehls-Bytes;
  • Fig. 13B zeigt Decodierprotokolle für die in Fig. 13A gezeigten Bytes mit einem 5 Bit breiten Befehlswort;
  • Fig. 13C zeigt die Decodierungslogik des 5 Bit breiten Befehlswortes, das in Fig. 13B gezeigt ist; und
  • Fig. 14 zeigt eine Taktschaltung, die dafür eingerichtet ist, ein hochfrequentes Taktsignal für die in Fig. 11 gezeigte Verschlüsselungs-Logik- Einheit zu erzeugen.
  • Die bevorzugte Ausführungsform
  • Die Erfindung wird nun beispielhaft unter Bezug auf die oben erwähnten beigefügten Zeichnungen beschrieben.
  • Ein Terminal, das Transaktionen mit Chipkarten erlaubt, ist in Fig. 1 dargestellt. Das Terminal 101 umfaßt einen Schlitz 102 zur Aufnahme der Chipkarte und eine visuelle Anzeigeeinheit 103, um dem Benutzer der Chipkarte Auswahlmöglichkeiten und Bedienungsanweisungen zu geben. Der Benutzer der Chipkarte reagiert auf Auswahlmöglichkeiten und Anweisungen, indem er Tasten 104 drückt, die angebracht sind, damit der Benutzer numerische und funktionale Daten eingeben kann. Ein Geldschacht 105 ist für den Fall vorhanden, daß der Benutzer Geld, das durch auf der Chipkarte gespeicherte Daten repräsentiert wird, in konventionelles Bargeld umsetzen möchte.
  • Das Chipkarten-Terminal 105 kommuniziert mit einem großen Computer 107 über die Kommunikationverbindung 106. Der Computer 107 verfügt in Form von Festplatten 108 über eine große Speicherkapazität. Ein Computer-Terminal 109 ermöglicht es einem Operator des Computers, den Zugang, der den Chipkarten-Benutzern über das Chipkarten-Terminal of fensteht, zu kontrollieren. Wenn z. B. eine Chipkarte gestohlen wird, kann ein Computer-Operator den Computer 107 anweisen, vom Konto des Eigentümers keinen weiteren Geldtransfer mehr auf die Karte zuzulassen.
  • Chipkarten können benutzt werden, um unter Benutzung einer geeigneten Geräteausstattung, wie sie in Fig. 1 dargestellt ist, Daten, die Geldbeträgen entsprechen, auszutauschen. Eine andere Möglichkeit besteht darin, ein kleineres Terminal neben einer Supermarkt-Kasse aufzustellen, so daß eine Chipkarte anstelle von Bargeld verwendet werden kann. Wenn Waren bezahlt werden, wird somit der auf der Chipkarte gespeicherte Geldbetrag verringert. Das in Fig. 1 gezeigte Terminal kann benutzt werden, um Geld vom Konto des Benutzers auf die Chipkarte zu übertragen. Auf diese Weise können Geldbeträge von derselben Chipkarte abgebucht und wieder auf diese nachgeladen werden, was für den Benutzer sehr bequem ist.
  • Geld kann direkt von einer Chipkarte auf eine andere übertragen werden, indem die in Fig. 2 gezeigte tragbare Datenaustauschvorrichtung verwendet wird. Die tragbare, in der Hand zu haltende Datenaustauschvorrichtung ist darauf eingerichtet, eine erste Chipkarte 201 und eine zweite Chipkarte 202 aufzunehmen. Das Gerät besitzt eine Tastatur 203 sowie eine Anzeige 204 und stellt eine Benutzerschnittstelle dar, die es Benutzern von Chipkarten erlaubt, ihre Karten in das Gerät einzuschieben und einem bestimmten finanziellen Betrag entsprechende Daten zu spezifizieren, die zwischen den Chipkarten ausgetauscht werden sollen, einschließlich der Angabe der Richtung des Austausches. Darüber hinaus kann die Vorrichtung auch von beiden an der Transaktion beteiligten Parteien benutzt werden, um ihre persönliche Identifikationsnummer einzugeben, was erforderlich sein kann, um die Befugnis zu ei ner Transaktion zwischen den Karten 201 und 202 zu bekommen.
  • Es gibt auch Geräte, die Transaktionen dieser Art über Netzwerke durchführen und einen sofortigen Austausch von Guthaben ohne physischen Transfer von Geldscheinen oder Münzen usw. ermöglichen. Netzwerke können unsicher sein, so wie z. B. das Internet. Jedoch können geeignete Verschlüsselungstechniken, wie z. B. die elektronische Unterschrift mittels Kryptosystemen mit öffentlichen Schlüsseln (public key signature authentication) angewendet werden, um dennoch den sicheren Geldtransfer zu erleichtern.
  • Die Struktur der in Fig. 2 gezeigten Chipkarte 201 ist in Fig. 3 im Detail dargestellt. Die Chipkarte 201 hat physikalische Abmessungen, die denjenigen einer konventionellen Kreditkarte im wesentlichen ähnlich sind. Die Karte ist relativ biegsam. Die Schaltungen im Inneren der Karte sind so konstruiert, daß sie bis zu mäßig starken Verbiegungen elastisch bleiben.
  • Die Karte 201 weist Kommunikationsanschlüsse 302 auf, die Kommunikation mit externen Geräten erlauben. Insbesondere umfassen diese Anschlüsse einen Anschluß zum Aufnehmen einer Spannungsversorgung von 2,7 bis 5,5 Volt, einen Masseanschluß, einen Taktanschluß und einen Reset- Anschluß. Diese Kommunikationsanschlüsse 302 bestehen aus flachen, goldbeschichteten Metallflächen, die in Übereinstimmung mit einem internationalen Standard für Chipkarten hergestellt sind. Daher können Karten austauschbar sein und den Datentransfer in Übereinstimmung mit etablierten Übertragungsprotokollen ermöglichen.
  • Die Kommunikationsanschlüsse 302 sind an ihrer Rückseite mit dem Chip, der in das Chipkartensubstrat eingebettet ist, elektrisch leitend fest verbunden. Nur die Kommunikationsanschlüsse 302 sind auf der Oberfläche der Chipkarte sichtbar, während der Rest der Oberfläche typischerweise für die Identifizierung des Karteneigentümers und ein Firmenlogo verwendet wird.
  • Die Chipkarte ist so konstruiert, daß eine gewisse Biegung zulässig ist, ohne daß die Schaltung beschädigt wird. Durch die Verwendung eines einzigen Silizium-Chips, auf dem die gesamte Schaltung aufgebracht ist, wird ein bedeutender Funktionsumfang auf eine kleine Fläche konzentriert. Dies trägt zur physischen Widerstandsfähigkeit der Chipkarte bei. Es ist wichtig, daß die für den Chip benötigte Siliziumfläche minimiert wird, um die Herstellungskosten zu senken und um die Wahrscheinlichkeit eines Ausfalls des Chips im Alltagsgebrauch zu verringern, welche in Beziehung zu der Fläche der Siliziumschaltung steht.
  • Ein Blockschaltbild einer bekannten Schaltung, die auf der Chipkarte integriert ist, zeigt Fig. 4. Eine Zentraleinheit (CPU) 401 ist mit den Kommunikationsanschlüssen 302 der Chipkarte verbunden. Die CPU 401 ist außerdem mit drei Speicherbereichen verbunden. Der Befehlsspeicher 402 enthält permanente, nicht veränderbare Datenmuster in Form eines Nur-Lese-Speichers (ROM). Diese Datenmuster sind in Gruppen von 8 Bit, die ein Byte bilden, angeordnet.
  • Wenn die Chipkarte in Funktion ist, überträgt die CPU 401 über einen Adreßbus 405 automatisch eine Folge von Speicheradressen an den Befehlsspeicher 402. In einer typischen Chipkarte verkörpert der Adreßbus zwölf individuel le Bits, die die Adressierung von 4096 verschiedenen Speicherplätzen ermöglichen. Im Gegenzug überträgt der Befehlsspeicher 402 ein Byte aus jedem sequentiell adressierten Speicherplatz zurück zur CPU 401, wo sie von einem Befehlsdecoder 409 als Befehle decodiert werden. Der Befehlsdecoder koordiniert Operationen innerhalb der CPU 401, so daß Nutz-Berechnungen zwischen Registern 407 und einer Arithmetik-Logik-Einheit (ALU) 408 ausgeführt werden können. Der Befehlsdecoder 409 kann außerdem die Reihenfolge der Adressen, die an den Befehlsspeicher übertragen werden, abändern, und erlaubt somit einen Sprung zu einer anderen Befehlsfolge, die dort enthalten ist. Der Sprung kann durch das Ergebnis einer Berechnung, die von der Arithmetik-Logik-Einheit ausgeführt wird, bedingt sein.
  • Um mit Datenmengen arbeiten zu können, die größer sind als die maximale Speicherkapazität der Register 407, kann der Adreßbus 405 auch Adressen an einen nichtflüchtigen Datenspeicher 403 und an einen flüchtigen Datenspeicher 404 übertragen. Der nichtflüchtige Datenspeicher 403 wird in einer Technologie hergestellt, die als elektrisch lösch- und programmierbarer Nur-Lese-Speicher (EEPROM) bekannt ist. Hierbei wird in bekannter Weise eine Speicherzelle durch Injektion heißer Elektronen bzw. durch Fowler-Norheim-Tunnelung gesetzt oder zurückgesetzt. Es kann einige Millisekunden in Anspruch nehmen, Daten abzuändern, die im nichtflüchtigen Speicherbereich 403 gespeichert sind, während das Lesen eines Datenbytes in typischerweise weniger als 250 Nanosekunden erreicht werden kann. Andere Technologien für nichtflüchtige Speicher können benutzt werden, z. B. ferroelektrische Speicher für wahlfreien Zugriff (FRAM).
  • Der nichtflüchtige Speicher 403 wird benutzt, um veränderbare Kundendaten zu speichern, wie z. B. die Höhe des Geldbetrages, der auf der Karte gespeichert ist, und um kundenspezifische Daten zu speichern, wie z. B. die Kontonummer des Kunden. Diese beiden Arten von Information können verschlüsselt sein, wobei bei jeder Transaktion ein Paar von Entschlüsselungs-Schlüsseln in dem nichtflüchtigen Speicher 403 gespeichert sein müssen, die entweder manuell oder elektronisch von einer externen Quelle übertragen wurden.
  • Der flüchtige Datenspeicher 404 ist als Matrix von Zellen eines Speichers mit wahlfreiem Zugriff (RAM) hergestellt. Er behält seinen Inhalt nur, solange die Chipkarte mit Spannung versorgt wird, und verliert seinen Inhalt daher, wenn die Chipkarte aus dem Transaktionsschlitz 102 herausgenommen wird. Ein Speicherplatz im flüchtigen Datenspeicher 404 kann mit hoher Geschwindigkeit, in typischerweise weniger als 250 Nanosekunden, beschrieben oder ausgelesen werden. Dieser Speicherbereich wird benutzt, um Zwischenergebnisse von komplexen Berechnungen zu speichern, z. B. diejenigen, die während der Datenverschlüsselung und -entschlüsselung ermittelt werden.
  • Die Daten, die von dem nichtflüchtigen Speicher 403 oder von dem flüchtigen Speicher 404 auf den Datenbus 406 übertragen werden, werden von dem Befehlsdecoder 409 nicht als Befehle interpretiert, sondern in eines der Register 407 übertragen. Danach können mit diesen Daten Berechnungen vorgenommen und die Ergebnisse an einen der Datenspeicher 403 oder 404 zurückgegeben werden, indem eine geeignete Adresse auf den Adreßbus 405 gesetzt wird, während ein Schreibsignal an den entsprechenden Speicherbereich übertragen wird, und indem die Daten für diejenige Zeitspanne auf den Datenbus 406 übertragen werden, die der Speicher für einen Schreibzyklus benötigt. Die Dauer des Schreibzyklus kann bei dem nichtflüchtigen Datenspeicher 403 fünf Millisekunden, bei dem flüchtigen Datenspeicher 404 einige hundert Nanosekunden betragen.
  • Eine Darstellung von Befehlen, die der Befehlsspeicher 402 enthält, ist in Fig. 5 gezeigt. Ein Betriebssystem enthält eine Anzahl von Unterprogrammen, wie z. B. Multiplikation und Division, und möglicherweise bestimme Arten von Verschlüsselungsalgorithmen, wie z. B. den DES- Schlüssel (Data Encryption Standard). Eine externe Anwendung (third party application) 503, die ebenfalls im gleichen Befehlsspeicher 402 gespeichert ist, wendet die Unterprogramme an, die von dem Betriebssystem 502 zur Verfügung gestellt werden. Das Betriebssystem sendet außerdem Befehle an Mittel zur seriellen Kommunikation 504, die es ermöglichen, über Chipkarten-Terminals 302 Informationen in die Außenwelt und aus der Außenwelt zu übertragen.
  • Die Grundoperationen, die von dem Befehlsdecoder 409 in einer Chipkarte ausgeführt werden, sind in dem Flußdiagramm in Fig. 6 dargestellt. In dem Schritt 601 wird ein Befehl aus dem Befehlsspeicher 402 geholt, indem eine geeignete Adresse auf den Adreßbus 405 übertragen wird und dann Daten von dem Datenbus 406 an den Befehlsdecoder 409 transferiert werden. In dem Schritt 602 wird der Befehl decodiert. Dies beinhaltet typischerweise den Zugriff auf einen kleinen Nur-Lese-Speicher in dem Befehlsdecoder, der eine große Zahl von Ausgangs-Datenleitungen hat, die dann über ein Pipeline-Register die Kontrolle der verschiedenen elektronischen Komponenten, die zu der CPU gehören, ermöglichen.
  • In dem Schritt 603 wird der decodierte Befehl, der an das Pipeline-Register in dem Befehlsdecoder übertragen wurde, aktiv an den Rest der CPU-Schaltung übertragen, wodurch der Befehl ausgeführt wird. In dem Schritt 604 wird die Adresse des nächsten Befehls im Befehlsspeicher errechnet, und zwar normalerweise dadurch, daß zu dem vorhergehenden Wert Eins addiert wird. Danach werden die Vorgänge 601 bis 604 unbeschränkt oft wiederholt, so daß Befehlsfolgen ausgeführt werden können.
  • Zu beachten ist, daß die Befehle ungeachtet der Reihenfolge und deshalb auch ungeachtet der Funktion, zu der sie gehören, decodiert werden. In dieser wichtigen Hinsicht kann die CPU 401 nicht zwischen den Befehlsfolgen, die von verschiedenen Quellen her übertragen werden, unterscheiden, z. B. zwischen externen Anwendungen 503 und solchen Befehlen, die Teile des Betriebssystems 502 sind. Deshalb ist es theoretisch möglich, Befehle zu schreiben, die die Operationen von bekannten externen Anwendungen simulieren, die aber abgeändert sind, z. B. um den Geldwert, der in der Karte gespeichert ist, verbotenerweise zu erhöhen.
  • Da Geld auf einem Chip durch ein elektrisches Ladungsmuster repräsentiert wird, hat der Betrag, der gestohlen werden könnte, keine physische Grenze. Bei dieser Art von Diebstahl würde der Geldwert der Karte erhöht, während der Betrag auf einem Bankkonto der gleiche bleibt. Aus diesem Grund kann der Diebstahl unbemerkt bleiben. Es gibt mehrere bekannte Techniken, um sicherzustellen, daß es sehr schwierig ist, solche unbefugten Eingriffe erfolgreich durchzuführen, z. B. durch umfassenden Gebrauch von elektronischen Unterschriften mittels Kryptosystemen mit öffentlichem Schlüssel. Der einzig sichere Weg, solchen Betrug zu verhindern, besteht jedoch darin, eins Ab änderung der im Befehlsspeicher 402 gespeicherten Befehle unmöglich zu machen.
  • Ein anderes Problem entsteht, wenn sich mehrere Anwendungen den gleichen Chipkarten-Befehlsspeicher teilen. Dann ist eine Zugriffsberechtigung (Zertifizierung) erforderlich, um sicherzustellen, daß Befehle aus verschiedenen Anwendungen keine Form des unbefugten Zugriffs versuchen. Diese Zertifizierung ist extrem schwierig und schließt daher praktisch den Einsatz flexibel herunterladbarer Befehle nach der Herstellung der Karte aus.
  • Aus diesem Grund sind in Chips bekannter Chipkarten, auf denen vielfältige Anwendungen für sichere finanzielle Transaktionen gespeichert sind, die Befehle ausschließlich im Nur-Lese-Speicher gespeichert. Daher ist es zum Zeitpunkt der Distribution der Karten gesichert, daß die Anwendungsbefehle kompatibel sind und sich nicht gegenseitig stören. Dies bedeutet jedoch eine Einschränkung des Funktionsumfanges der Karte, der somit vollständig definiert sein muß, bevor die Karte zur Benutzung ausgegeben wird. Falls eine Bank oder eine Finanzinstitution ein Update der auf ihren Chipkarten eingesetzten Sicherheitsprozeduren wünschen sollte, müssen vorhandene Karten ersetzt werden, was beachtliche Kosten nach sich zieht.
  • Eine verbesserte Speicherstruktur für eine intelligente Chip-Karte ist in Fig. 7A dargestellt. Befehle können von einem privilegierten Befehlsspeicher 702, der ein Nur- Lese-Speicher(ROM)-Speicherbereich ist, oder von einem nichtflüchtigen Befehlsspeicher 703, der ein elektrisch löschbarer und programmierbarer Nur-Lese-Speicher (EEPROM) ist, übertragen werden.
  • Ein Seitenregister 715 definiert die oberen (most significant) 8 Bit der an den privilegierten Befehlsspeicher 702 übertragenen Adresse, und ein Offset-Register 716 definiert die unteren (least significant) 8 Bit der an den privilegierten Befehlsspeicher 702 übertragenen Adresse.
  • Im normalen Betrieb inkrementiert das Offset-Register 716 oder das Offset-Register 718 automatisch jedesmal, wenn ein Befehl geholt worden ist. Der Adressbus 709 ist daher nur erforderlich, um den Inhalt des Seitenregisters 715 oder des Offset-Registers 716 zu definieren, wenn ein Sprung zu einem anderen Befehlssatz erforderlich ist.
  • Der privilegierte Befehlsspeicher 702 ist ein Nur-Lese- Speicherbereich, dessen Inhalte definiert werden, bevor die Karte hergestellt und vertrieben wird. Der Inhalt des nichtflüchtigen Befehlsspeichers 703 kann nach der Distribution der Karte geändert werden. Beispielsweise können während einer interaktiven Betriebsphase mit dem in Fig. 1 dargestellten Terminal 101 Befehle geupdatet werden, wobei von dem entfernt lokalisierten großen Computer 107 neue Befehle übertragen werden. Die in Fig. 7A dargestellte zentrale Prozessoreinheit 701 enthält einen selektiven Befehlsdekoder 710. Die zentrale Prozessoreinheit 701 verfügt über eine Anzahl möglicher Befehle, die als Befehlssatz bezeichnet werden. Der selektive Befehlsdecoder 710 läßt die Ausführung des vollen Befehlssatzes nur aus dem privilegierten Befehlsspeicher 702 zu. Bestimmte Befehle, insbesondere diejenigen, die die Seitenregister 715, 717, 719 oder 721 modifizieren oder lesen, können nicht benutzt werden, wenn sie von dem nichtflüchtigen Befehlsspeicher 703 übertragen werden. Die in Fig. 7A gezeigte zentrale Prozessoreinheit 701 ist in Fig. 7B detaillierter dargestellt. Eine Befehlsherkunft- Steuereinheit 751 wählt den Befehlsspeicher aus, von dem die Befehlsfolge geholt wird. Eine Steuerleitung 752 steuert eine Schaltung zur Auswahl von Befehlen von dem privilegierten Befehlsspeicher 702, und eine zweite Steuerleitung 753 kontrolliert eine Schaltung zur Auswahl von Befehlen von dem nichtflüchtigen Befehlsspeicher 703. Die Steuerleitung 752 zur Auswahl des privilegierten Befehlsspeichers 702 ist auch an den selektiven Befehlsdecoder 710 angeschlossen. Eine darin enthaltene Auswahlschaltung ermöglicht den Zugriff auf den vollständigen Befehlssatz der zentralen Prozessoreinheit 701, wenn die Steuerleitung 752 aktiviert ist.
  • Fig. 8 ist eine Darstellung der in den beiden Befehlsspeicherbereichen 702 und 703 von Fig. 7A gespeichert en Befehle. Betriebssystem-Befehle 801 und Befehle zur seriellen Kommunikation 802 sind in dem ROM des privilegierten Befehlsspeichers 702 gespeichert. Nur diese Befehle haben vollen Zugriff zu dem Befehlssatz und folglich die Fähigkeit, den Inhalt eines der Seitenregister 715, 717, 719 und 721 zu ändern. Externe Anwendungen (third party applications) 803 und 804, die beispielsweise durch einen Transfer an dem Terminal 101 empfangen worden sein können, haben nicht den Zugriff auf den vollen Befehlssatz, weil sie in dem nichtflüchtigen Speicher 703 gespeichert werden.
  • Dadurch, daß eine Änderung des Seitenregisters oder ein Sprung zu einem Befehl in einem anderen Speicherbereich mittels einer externen Anwendung unmöglich ist, können die privilegierten Befehle kontrollieren, welche Typen von Operationen von externen Anwendungen ausgeführt werden. Wenn beispielsweise eine externe Anwendung 803 in einem/einer mit einem bestimmten Seitenregisterwert indizierten Teil bzw. Seite des nichtflüchtigen Befehlsspeichers 703 gespeichert ist, kann sie nicht direkt einen Befehl einer externen Anwendung 804 lesen bzw. zu diesem springen, der in einer anderen Seite des nichtflüchtigen Befehlsspeichers 703 gespeichert ist. Außerdem können die in Fig. 7A dargestellten Seitenregister 719 und 721 nicht direkt von einer externen Anwendung modifiziert werden.
  • Demzufolge ist eine externe Anwendung darauf beschränkt, auf Daten oder Befehle auf einer bestimmten Seite des Speichers zuzugreifen. Wenn eine Anwendung legitimiert ist, auf Speicherinhalte zuzugreifen, die sich auf einer anderen Seite als der, auf der die Anwendung lokalisiert ist, befinden, so kann dies möglich sein, jedoch nur nach einem Entscheidungsprozeß mittels einer Subroutine zur Behandlung von Ausnahmen, die automatisch aus dem Speicher für privilegierte Instruktionen 702 immer dann ausgeführt wird, wenn ein Versuch gemacht wird, aus dem nichtflüchtigen Befehlsspeicher 703 heraus einen privilegierten Befehl zu benutzen.
  • Die beim Holen von Befehlen von der Hardware der zentralen Prozessoreinheit 701 ausgeführten Operationen sind als Flußdiagramm in Fig. 9A summarisch dargestellt. In dem Schritt 901 wird ein Befehl aus einem der Befehlsspeicherbereiche 702 oder 703 geholt. In dem Schritt 902 wird eine Abfrage gemacht, ob der geholte Befehl aus dem privilegierten Befehlsspeicher 702 stammt. Dieser Abfrageschritt wird hardwaremäßig dadurch ausgeführt, daß die Decoderschaltung mittels der Steuerleitung 752, wie in Fig. 7B dargestellt, angesteuert wird. Falls der Befehl aus dem privilegierten Befehlsspeicher 702 kommt, verzweigt der Ablauf zu dem Schritt 905. Danach wird der Befehl decodiert und in dem Schritt 906 ausgeführt. In dem Schritt 907 wird die nächste Adresse erzeugt, wobei es sich um eine Hardwareoperation handelt, die entweder in dem Offset- und Seitenregister des betreffenden Befehls speicherbereichs oder statt dessen, wenn ein Sprung ausgeführt werden soll, in Verbindung mit einer anderen Schaltung des Chips ausgeführt wird.
  • Bei dem Schritt 903 ist es bekannt, daß der gerade zu verarbeitende Befehl aus dem nichtflüchtigen Befehlsspeicher 703 übertragen wurde. Deswegen erfolgt, wiederum mittels einer Hardware-Schaltung, eine Abfrage, ob der Befehl geschützt ist oder nicht. Wenn der Befehl nicht geschützt ist, erfolgt eine Verzweigung zu dem Schritt 905. Andernfalls wird der Schritt 904 durchgeführt, aufgrund dessen eine spezielle Sequenz von Teilschritten gemäß der Hardware und übertragener Befehle abläuft, die hier insgesamt als Ausnahme-Subroutine bezeichnet wird.
  • Wenn folglich eine Anwendung versucht, ein Seitenregister mittels eines geschützten Befehls zu ändern, bewirkt die zentrale Prozessoreinheit 701 automatisch einen Sprung zu einer Befehlsfolge zur Behandlung von Ausnahmen, die in dem privilegierten Befehlsspeicher 702 gespeichert ist. Eine solche Befehlsfolge ist in Fig. 9B summarisch da rgestellt. Bei dem Schritt 921 erfolgt eine Abfrage, ob die externe Anwendung autorisiert ist, auf den angeforderten Speicherbereich zuzugreifen. Diese Frage schließt typischerweise eine Folge von bedingten Befehlen ein, die unter Berücksichtigung einer Serie von Vergleichen zwischen Daten durchgeführt wird, die in einem der Datenspeicher 704 oder 705 gespeichert sind. Dabei sollte klar sein, daß die Daten für diese Vergleiche zumindest zum Teil auf Seiten gespeichert sein sollten, zu denen die externe Anwendung keinen Zugriff hat, um dadurch jeden nichtgenehmigten Zugriff zu verhindern.
  • Wenn der Befehl autorisiert ist, führt das Betriebssystem den Befehl selbst mittels des Schritts 923 aus, und da nach wird die Steuerung an das externe Anwendungsprogramm zurückgegeben. Andernfalls genehmigt die Subroutine zur Behandlung von Ausnahmen die Anforderung nicht. Dies ist ein Zeichen, daß entweder eine Fehler-Bedingung vorliegt oder ein absichtlicher Versuch, in den Speicherbereich einzudringen, dessen Zugang beschränkt ist. In dem Schritt 922 kann der Chip zurückgesetzt werden, oder es wird eine andere Notprozedur ausgeführt, wie beispielsweise das Löschen sämtlicher nichtverschlüsselter Daten in dem flüchtigen Speicherbereich 705.
  • Der von der zentralen Prozessoreinheit 701 ausführbare Befehlssatz ist in den Fig. 10A, 10B und 10C dargestellt. Geschützte Befehle, die nur aus dem privilegierten Befehlspeicher 702 ausführbar sind, sind in Fig. 10A aufgelistet. Hierzu gehört der Befehl RST, Reset, durch den der Chip zurückgesetzt wird. Wenn dieser Befehl als Teil einer Subroutine zur Behandlung von Ausnahmen durchgeführt wird, hat er, wie anhand von Fig. 9A dargestellt wurde, den Effekt, Befehle einer externen Anwendung zu desaktivieren und somit Hardware-Schaltungen in einen Zustand zu überführen, der normalerweise nur beim Verbinden der intelligenten Chip-Karte mit einer Stromversorgung auftritt. Die danach zuerst geholten und ausgeführten Befehle sind diejenigen, die in dem privilegierten Befehlsspeicher 702 mit der Adresse Null beginnen.
  • Zu den geschützten Befehlen gehören weiterhin Befehle zum Schreiben oder Lesen von Seitenregistern. SETPG MS ermöglicht es, den Inhalt des Seitenregisters 717 zu definieren. In der für Mnemoniks üblichen Terminologie steht MS für Modulraum (module space), d. h. den nichtflüchtigen Speicherbereich 703, in dem externe Anwendungen, oder "Module", gespeichert werden. Ein privilegierter Befehlsspeicher 702, in dem das Betriebssystem oder Interface- Befehle gespeichert werden, wird als binärer Interface- Raum (Binary Interface Space) bezeichnet. Weitere geschützte Befehle sind u. a. diejenigen, die der zentralen Prozessoreinheit das Schreiben in den nichtflüchtigen Befehlspeicher 703 ermöglichen, der in der Mnemoniks-Terminologie als Modulraum bezeichnet wird. Demzufolge kann nur das Betriebssystem Anwendungen laden. Es ist auch in der Lage, sie zu löschen, wenn sie nicht mehr gewünscht werden, um dadurch Platz für ein Update oder eine andere externe Anwendung zu schaffen.
  • Nicht geschützte Befehle sind in den Fig. 10B und 100 aufgelistet. Hierzu gehören Befehle, die zu binären Berechnungen, beispielsweise zum Addieren oder Subtrahieren in einem Addierwerk und dergleichen erforderlich sind, sowie Befehle, die bestimmte Offset-Register modifizieren.
  • Die Erfindung verhindert nicht nur unerwünschte Störungen durch externe Anwendungen, sondern auch nichtgenehmigte Eingriffe einer externen Anwendung in eine andere externe Anwendung. Infolgedessen stellt die Erfindung einen sicheren Mechanismus für die Unterstützung mehrerer Anwendungen durch die Hardware zur Verfügung. Dadurch wird auch die Entwicklung externer Anwendungen vereinfacht: Es ist nicht mehr notwendig, daß jede Anwendung darauf vertraut, daß jede andere Anwendung sich hinsichtlich sicherheitsrelevanter Daten korrekt verhält. Vielmehr ist es nur notwendig, auf den Hardware-Schutzmechanismus zu vertrauen, der mit vielfachen Tests überprüft wurde und für viele künftige Varianten eine Basis bilden kann.
  • Obwohl bei der bevorzugten Ausführungsform externe Anwendungen in einem nichtflüchtigen Speicher gespeichert sind, werden auf Basis der Erfindung ähnliche Vorteile erreicht, wenn ein flüchtiger Speicher verwendet wird, beispielsweise wenn mehrere Anwendungen in einer einzigen Sitzung geladen werden.
  • In der bevorzugten Ausführungsform enthält die Chipkarte eine weitere Schaltung, die das primäre Ziel hat, die Effizienz und die Geschwindigkeit der Ver- und Entschlüsselung zu verbessern. Ferner erfolgt die Implementierung der CPU, der Speicher und der Logik zur Erstellung des Befehlsfolge gemäß der Methodik, die als Computer mit eingeschränktem Befehlssatz (reduced instruction set computer, RISC) bekannt ist. Merkmale der bevorzugten Ausführungsform zeigt Fig. 11. Der Hauptunterschied zwischen dieser und der in Fig. 7A gezeigten Einrichtung besteht in der Hinzunahme einer Verschlüsselungs-Logik-Einheit (cryptographic locic unit, CLU) 1101.
  • Zusätzlich zu der Verschlüsselungs-Logik-Einheit 1101 sind weitere Seiten- und Offset-Register 1104, 1105, 1106, 1107, 1108 und 1109 vorgesehen, um bestimmte Arten von Speicheroperationen zu beschleunigen. Das Seiten- und Offset-Registerpaar 1104 und 1105 dient zur schnellen Kontext-Umschaltung (context switching) auf Subroutinen, die aus dem privilegierten Befehlsspeicher 702 heraus ausgeführt werden. Wenn eine Subroutine aufgerufen wird, dann wird aus dem Subroutine-Adressenregister-Paar 1104 und 1105 heraus eine neue Befehlsspeicheradresse erzeugt, während die Adresse zum Rücksprung aus der Subroutine in dem ursprünglichen Adressenregister-Paar 715 und 716 aufbewahrt wird. Ein entsprechendes Registerpaar 1106 und 1107 dient zur schnellen Kontext-Umschaltung (context switching) für Daten, wenn eine Subroutine aufgerufen wird. Wenn daher eine Subroutine aus dem privilegierten Befehlsspeicher aufgerufen wird, unterliegen sowohl Befehle als auch Daten einer sofortigen Änderung des Kon textes, die beim Rücksprung von den Subroutine-Befehlen wieder rückgängig gemacht werden kann.
  • Der flüchtige Datenspeicher 705 enthält außerdem ein weiteres Adreßregister-Paar 1108 und 1109. Dieses erleichtert schnelle Transfers von Datenblöcken zwischen Speicherstellen innerhalb des gleichen Bereiches des flüchtigen Speichers 705. Dies ist der einzige Speicherbereich mit so schnellen Schreibzyklus-Zeiten, daß sich die Implementierung des zusätzlichen Adreßregister-Paares lohnt.
  • Befehle aus dem privilegierten Befehlsspeicher 702 oder aus dem nichtflüchtigen Befehlsspeicher 703 können über einen Befehlsbus 1111 an die CPU 701 übertragen werden. Daten aus dem nichtflüchtigen Datenspeicher 704 oder aus dem flüchtigen Datenspeicher 705 werden über einen separaten Datenbus 1110 an die CPU 701 übertragen. Dieser Aufbau ermöglicht es, daß ein Befehlhol-Zyklus gleichzeitig mit einem Datenlese- oder Datenschreibzyklus ausgeführt wird, wodurch die Operationen beschleunigt werden. Dieser Aufbau wird allgemein als Harvard-Architektur bezeichnet.
  • Die vier Speicher 702, 703, 704 und 705 können alle einen Lesevorgang innerhalb von 50 Nanosekunden ausführen. Ein 128-Bit-Cache wird verwendet, um sicherzustellen, daß diese Zugriffsgeschwindigkeit über die meiste Zeit aufrechterhalten werden kann. Wenn ein Lesevorgang aus einer Speicherstelle angefordert wird, die momentan nicht im Cache gespeichert ist, wird automatisch ein Wartezyklus eingefügt.
  • Der flüchtige Datenspeicher 705 ist außerdem in der Lage, einen Schreibvorgang auszuführen. Die CPU führt Befehle in einem einzigen Taktzyklus aus, wobei der Taktzyklus eine kleinste Periodendauer von 50 Nanosekunden hat. Also können die CPU und die Speicher gleichzeitig bei eine r Befehlsflußrate von 20 Millionen Befehlen pro Sekunde (MIPS) arbeiten.
  • Kryptosysteme mit öffentlichem Schlüssel werden bei finanziellen Transaktionen in großem Umfang verwendet, und man kann erwarten, daß sie auch bei Chipkarten in großem Umfang eingesetzt werden. Eine Schwierigkeit bei den Kryptosystemen mit öffentlichem Schlüssel, wie z. B. RSA, ist die Notwendigkeit, lange Multiplikationen mit hohen ganzzahligen Zahlen von 256, 512 oder mehr Binärstellen durchzuführen. Selbst bei Verwendung einer CPU, die mit 20 Millionen Befehlen pro Sekunde arbeitet, können hochsichere Kryptosysteme mit öffentlichem Schlüssel mehrere Sekunden benötigen, um eine einzige verschlüsselte Transaktion auszuführen. Eine typische finanzielle Transaktion kann die Übertragung von zehn vollständig verschlüsselten Nachrichten erfordern, was bei Anwendung der bestehenden Technologie theoretisch mehr als eine Minute Verarbeitungszeit in Anspruch nimmt. Dies stellt ein Haupthindernis für die weitverbreitete Akzeptanz von Chipkarten dar. Wenn z. B. eine Chipkarte zum Bezahlen eines Fahrscheines für ein öffentliches Verkehrsmittel, z. B. für einen Bus, benutzt werden soll, dann kann eine Unterbrechung von jeweils deutlich mehr als zehn Sekunden pro Person in einer langen Schlange als unakzeptabel betrachtet werden.
  • Die Forschung im Bereich Kryptotechnik geht immer schneller voran. Dies liegt einerseits an der wachsenden Nachfrage nach elektronischem Geld und andererseits an der verfügbaren Rechenleistung, die dazu benutzt werden kann, Verschlüsselungscodes zu "knacken". Die vorgeschlagenen Kryptosysteme, mit denen das für eine verbreitete Akzep tanz von Chipkarten als Ersatz für gedruckte Währung verlangte Sicherheitsniveau erreicht wird, erfordern jedoch eine Rechenleistung, die mit billigen Standard-Microcontroller-Architekturen, wie z. B. 8051, 6805 oder ähnlichen Geräten nicht zur Verfügung steht. Für eine effektive Auslegung einer Chipkarte wird die Fähigkeit, Verschlüsselungen und Entschlüsselungen mit öffentlichem Schlüssel gemäß Protokollen wie RSA, DSS und CAFE innerhalb vernünftiger Zeit durchzuführen, als unbedingt notwendig erachtet.
  • Die Verschlüsselungs-Logik-Einheit 1101, die in Fig. 11 gezeigt ist, wird benutzt, um die Ausführung von Transaktionen mit Kryptosystemen mit öffentlichem Schlüssel zu beschleunigen. Sie kann Binärzahlen von bis zu 640 Bit multiplizieren. Wenn eine solche Vorrichtung auf einer akzeptabel kleinen Siliziumfläche integriert werden soll, sind jedoch verschiedene technische Schwierigkeiten zu überwinden. Das erste Hauptproblem ist die Geschwindigkeit. Komponenten der Verschlüsselungs-Logik-Einheit 1101 können bei einer Befehlsflußrate von 60 Millionen Befehlen pro Sekunde betrieben werden. Es ist jedoch eine beachtliche technische Herausforderung, Befehle schnell genug an die Verschlüsselungs-Logik-Einheit zu übertragen, um sie in die Lage zu versetzen, bei jedem Taktzyklus einen neuen Befehl auszuführen.
  • Auf dem Chip ist kein Platz für einen eigenen Speicherbereich, der Befehle für die Verschlüsselungs-Logik-Einheit 1101 speichert und an sie überträgt, vorhanden. Der privilegierte Befehlsspeicher 702 hat eine Zugriffszeit von 50 Nanosekunden, was dreimal so schnell ist wie die Befehlsflußrate. In Fig. 11 überträgt ein 32 Bit breiter Mikrocode-Bus mit der maximalen Speicherleserate von 20 Millionen Lesezyklen pro Sekunde Befehle von dem privile gierten Befehlsspeicher an die Verschlüsselungs-Logik- Einheit 1101. Während Befehle von dem privilegierten Befehlsspeicher an den Mikrocode-Bus übertragen werden, können nicht gleichzeitig Befehle an die CPU übertragen werden. Daher ist es möglich, zur Abarbeitung der Befehle notwendige Hardware-Komponenten mehrfach zu verwenden und dadurch die erforderliche Siliziumfläche zu verringern.
  • Verbindungen von dem privilegierten Befehlsspeicher 702 zu dem Mikrocode-Bus 1102 sind in Fig. 11 gezeigt und in Fig. 12 im Einzelnen dargestellt. Seiten-Bit und Offset- Bit, entweder aus den Registern 715 und 716 oder aus den Registern 1104 und 1105, können als ein 16-Bit-Wort 1201 angesehen werden, das individuelle Adreßleitungen ansteuert, die mit A0 bis A15 gekennzeichnet sind. Die oberen (most significant) 12 dieser 16 Bit, A4 bis A15, werden als Adresse an den privilegierten Befehlsspeicher 702 übertragen, der aus 512 Speicherplätzen besteht, von denen jeder 128 Datenbits hat. Nur 9 der Adreßleitungen, A4 bis A12, werden benötigt, um auf die 512 Speicherplätze zuzugreifen, so daß A13 bis A15 nicht angeschlossen sind. Spätere Ausführungen können leicht so konfiguriert we rden, daß sie mehr Speicherkapazität erfassen, indem einfach diese unbenutzten Adreßleitungen mit einem größeren Nur-Lese-Speicherarray verbunden werden.
  • Die Daten aus jedem Speicherplatz in dem privilegierten Befehlsspeicher werden in vier Teilmengen von 32-Bit- Datenwörtern aufgeteilt, die unter Bildung einer Art von Cache in einen vierkanaligen Multiplexer 1202 eingespeist werden. Entsprechend der Ansteuerung durch die Adreßleitungen A3 und A2, die an den Multiplexer 1202 angeschlossen sind, wird eines dieser vier Worte als dessen Ausgabe ausgewählt. Auf diese Weise kann ein 32-Bit-Datenwort mit einer Zugriffszeit von 50 Nanosekunden ausgewählt werden, wenn es innerhalb der 128-Bit-Ausgabe des Speicherarrays bereits vorhanden war. Wenn dies nicht der Fall ist, fügt eine Schaltung der Speicherverwaltungs-Logik automatisch einen Wartezyklus in den Befehl-Hol-Zyklus ein, so daß ein anderes 128-Bit-Wort geholt werden kann, das das gewünschte 32-Bit-Wort enthält.
  • Wenn die Verschlüsselungs-Logik-Einheit 1101 in Betrieb ist, kann dieses 32-Bit-Datenwort direkt auf den Mikrocode-Bus 1102 übertragen werden. Andernfalls wird beim Holen von Befehlen für die CPU 701 die 32-Bit-Ausgabe des Multiplexers 1202 in Form ein Paares von 16-Bit-Worten unter Steuerung durch die Adreßleitung A1 an einen weiteren Multiplexer 1203 übertragen. Die gewählte 16-Bit- Ausgabe aus dem Multiplexer 1203 wird weiter in ein Paar von Acht-Bit-Worten oder Bytes unterteilt, die an einen dritten Multiplexer 1204 übertragen werden. Die Ausgabe des Multiplexers 1204 wird durch die unterste (least significant) Adreßleitung A0 ausgewählt und überträgt Befehlsdaten mit einer Rate von 20 Millionen Befehlen pro Sekunde byteweise an den Befehlsbus 1111. Die oberen (most significant) acht Bit der 16-Bit-Ausgabe des zweiten Multiplexers 1203 stehen außerdem zur Verfügung, um Daten auf den Datenbus 1110 zu übertragen. Diese Verbindung ist in Fig. 11 aus Gründen der Übersichtlichkeit nicht gezeigt. Zweck dieser Anordnung ist es, sicherzustellen, daß bestimme Mehrbyte-Befehle, in denen z. B. ein unmittelbarer Datenwert als Teil des Befehls spezifiziert ist, ebenfalls bei der maximalen Befehlsflußrate von 20 Millionen Befehlen pro Sekunde ausgeführt werden können.
  • Befehle an die Verschlüsselungs-Logik-Einheit 1101 werden also als 32-Bit-Worte übertragen. Die Behandlung dieser Worte ist in Fig. 13A, Fig. 13B und Fig. 13C detailliert dargestellt. Wie in Fig. 13A dargestellt ist, besteht der 32-Bit-Microcode aus vier Bytes. Diese vier Bytes können sich mit einer Rate von 20 Millionen pro Sekunde ändern. Dies ist nur ein Drittel der Befehlsflußrate der Verschlüsselungs-Logik-Einheit 1101. Daher wird jedes Byte als Befehl betrachtet, und die Bytes werden nacheinander mit der höheren Befehlsflußrate von 60 MIPS ausgewählt.
  • Jedes Byte enthält, wie in Fig. 13B dargestellt ist, zwei Teile. Die acht Bit definieren normalerweise eine Operation der Verschlüsselungs-Logik-Einheit 1101. Drei Bit können dazu verwendet werden, einen zweidimensionalen Hardware-Schleifenzähler zu definieren. Dabei wird, wenn die Drei-Bit-Kombination den Binärwert 101 hat, der Wert in den restlichen fünf Bit dazu benutzt, den Zählerstand der äußeren Schleife eines zweidimensionalen Hardware- Schleifenzählers zu definieren. Wenn die drei Bit den Wert 111 haben, definieren die anderen fünf Bit den Zählerstand der inneren Schleife des zweidimensionalen Schleifenzählers. Andere Kombinationen der drei Bit ermöglichen es, alle acht Bit zur Definition eines bestimmten Operationbefehls für die Verschlüsselungs-Logik- Einheit 1101 zu verwenden.
  • Auf diese Weise wird eine zweidimensionale Schleifenstruktur zur Verfügung gestellt. Eine innere Schleife kann Befehle enthalten, die n mal ausgeführt werden sollen, und eine äußere Schleife kann Befehlsgruppen, einschließlich Befehlen aus der inneren Schleife, enthalten, die m mal ausgeführt werden sollen. Somit werden die Befehle der inneren Schleife insgesamt n·m mal ausgeführt.
  • Die Bedeutung der Schleifenbildung wird verständlich, wenn man die Befehlsflußrate betrachtet. Wenn Bytes mit einer Rate von 60 Millionen pro Sekunde aus dem Speicher geholt werden, könnte die Länge einer Mikrocode-Sequenz leicht wertvollen Speicherplatz verbrauchen. Durch zweidimensionale Schleifenbildung wird Speicherplatz eingespart, indem die Befehlsredundanz reduziert wird.
  • Die Verschlüsselungs-Logik-Einheit 1101 enthält eine Anzahl von komplexen Schaltungselementen, von denen jedes zur Kontrolle seines Betriebszustandes durch ein elektrisches Signal kontrolliert werden muß. Die acht Bit, die eine kryptographische Operation definieren, werden daher in der in Fig. 13C dargestellten Weise decodiert. Ein Nur-Lese-Speicher 1331 mit 64 Speicherplätzen enthält in jedem seiner Speicherplätze 60 Datenbits. Dadurch können 64 mögliche Kombinationen von 60 Steuerleitungen festgelegt werden. Auf diese Weise werden alle 60 Steuerleitungen der Verschlüsselungs-Logik-Einheit 1101 mit einer Rate von 60 Millionen pro Sekunde geupdated.
  • Es wird nochmals auf die in Fig. 11 gezeigte Anordnung Bezug genommen. Wie dort dargestellt ist, weist die Verschlüsselungs-Logik-Einheit 1101 einen eigenen 16-Bit-Bus 1103 für kryptographische Daten auf, über den Daten von dem nichtflüchtigen Speicher 705 übertragen werden können. Eine Multiplex-Einrichtung, die analog zu der in Fig. 12 gezeigten ausgebildet ist, wird verwendet, um einen Hochgeschwindigkeits-Zugriff auf den andernfalls relativ langsamen flüchtigen Datenspeicher 705 zu gewährleisten. Der Hauptunterschied besteht darin, daß die Multiplex-Einrichtung hier bidirektional ist, während Befehle nie von der Verschlüsselungs-Logik-Einheit 1101 in den privilegierten Befehlsspeicher 702 geschrieben werden.
  • Befehle werden von dem privilegierten Befehlsspeicher 702 an die CPU 701 oder die Verschlüsselungs-Logik-Einheit 1101 übertragen. Nachdem eine Versorgungsspannung angelegt oder ein Reset durchgeführt wurde, wird sofort der erste Befehl aus dem privilegierten Befehlsspeicher 702 ausgeführt. Wenn es notwendig ist, Daten unter Verwendung der Verschlüsselungs-Logik-Einheit 1101 zu verarbeiten, wird ein spezieller Befehl, der als Mnemonic-Befehl SPAS bekannt ist, an die CPU 701 gesendet, durch die dann Schaltungsteile so koordiniert werden, daß Befehle direkt an die Verschlüsselungs-Logik-Einheit 1101 übertragen werden können: Befehle, die auf den SPAS-Befehl folgen, werden decodiert wie in Fig. 13A, 13B und 13C dargestellt ist. Einer der Befehle, der an die Verschlüsselungs- Logik-Einheit 1101 übertragen werden kann, bedeutet ein Ende der kryptographischen Befehlsfolge. Die Verschlüsselungs-Logik-Einheit 1101 steuert dann eine Interrupt- Steuerleitung an, wodurch die Kontrolle wieder an die CPU 701 übergeben wird. Anschließend werden Befehle dort hin übertragen und dort dekodiert.
  • Die Verschlüsselungs-Logik-Einheit 1101 ist so ausgelegt, daß Zwischenergebnisse ihre Gültigkeit nicht verlieren, wenn sie für mehr als die Abklingzeit eines der dynamischen Speicherelemente abgelegt werden, obwohl Datenmanipulation unter Verwendung von Registern mit dynamischen Speicherelementen stattfindet. Die Abklingzeit liegt in der Größenordnung von einer oder zwei Millisekunden. Darüber hinaus schließen die in der Verschlüsselungs-Logik- Einheit 1101 enthaltenen Register adressenlose Schieberegister ein, wodurch die Anzahl der Steuerleitungen, die für die Definition einer Operation notwendig sind, reduziert wird. Adressenlose Register erleichtern den Hochgeschwindigkeitsbetrieb, weil sie weniger Siliziumfläche beanspruchen. Entsprechend den Erfordernissen verschiedener Datenverschlüsselungs-Prozeduren können die adressenlosen Register mehrdimensionale Bit-Transfers ausführen. Die Schieberegister in der Verschlüsselungs-Logik-Einheit überlappen und überschneiden sich also mit den verarbei tenden Registern, um mehrdimensionale Hochleistungs- Pipeline-Verarbeitung bewältigen zu können. Diese Methode erlaubt bitorientierte Verarbeitung, während der allgemeine Betrieb auf einer Wortbasis stattfindet.
  • Das Verfahren zur Übertragung von Befehlen an die Verschlüsselungs-Logik-Einheit ist sehr vielseitig, da bestimmte Berechnungen, die sie ausführt, in mehrere diskrete logische Schritte aufgeteilt werden, die als Befehle in dem privilegierten Befehlsspeicher 702 festgelegt sind. Falls es also notwendig sein sollte, einen verbesserten Funktionsumfang festzulegen, können andere Befehle bereitgestellt werden, anstatt die Verschlüsselungs- Logik-Einheit neu auszulegen.
  • Bekanntlich ist es sehr wünschenswert, die für die Implementierung einer bestimmten Schaltung notwendige Siliziumfläche so klein wie möglich zu halten. Mit größeren Chips wird eine geringere Ausbeute bei der Fertigung erzielt, so daß sich die Kosten überproportional erhöhen. Darüber hinaus sind größere Chips, die in Chipkarten verwendet werden, anfälliger für ein Versagen im Alltagsgebrauch.
  • Ein Problem beim Betrieb der Verschlüsselungs-Logik- Einheit unter einer so hohen Befehlsflußrate ergibt sich dadurch, daß ein Hochgeschwindigkeits-Oszillator benötigt wird. Typischerweise werden Taktsignale mit Frequenzen in der Größenordnung von drei MHz auf die Chipkarte übertragen. Die Übertragung eines 60 MHz-Signales über ein Chipkarten-Terminal ist wegen der Qualitätsabnahme eines solches Hochfrequenz-Taktsignal in einem Anschlußdraht von nur wenigen Zentimetern Länge nicht möglich. Ein Quarzkristall ist zu groß für die beschränkten räumlichen Ge gebenheiten, die von international anerkannten Chipkarten-Standards vorgegeben sind, und wäre außerdem teuer.
  • Eine Lösung wird in Fig. 14 gezeigt. Ein lokaler Oszillator 1401 auf dem Chip schwingt innerhalb eines bekannten Frequenzbereiches und kann durch ein analoges Korrektursignal so eingestellt werden, daß er mit 60 MHz schwingt. Das Ausgangssignal des lokalen Oszillators 1401 wird an einen Zähler 1402 mit einem Mehrbit-Ausgang übertragen, der bei jedem Zyklus des lokalen Oszillators inkrementiert. Ein externes Taktsignal von drei MHz wird über ein Takt-Terminal 1405 auf den Chip der Chipkarte übertragen. Dieses Signal wird an einen Teiler 1404 übertragen, der eine Ausgangsfrequenz erzeugt, von der die Frequenz des externen Taktsignals ein ganzzahliges Vielfaches ist.
  • Der Frequenzausgang des Teilers 1404 und der Zählerstand des Zählers werden an eine Synchronisationslogik 1403 übertragen. Die Synchronisationslogik 1403 tastet den Ausgang des Zählers 1402 einmal pro Taktzyklus, der von dem Teiler 1404 übertragen wird, ab. Das abgetastete Muster wird dann an die CPU 701 übertragen, die gemäß bekannter Eigenschaften der Schaltung einen Faktor zur Frequenzkorrektur berechnet. Der Faktor zur Frequenzkorrektur wird an einen internen Schalter (latch) 1407 übertragen, dessen Ausgang an einen Digital-Analog-Wandler 1406 übertragen wird. Der Digital-Analog-Wandler 1406 ist nicht aufwendig, da die Einschwingzeit seines Ausgangs nicht kurz zu sein braucht. Das Ausgangssignal des Digital-Analog-Wandlers 1406 wird an den lokalen Oszillator 1401 übertragen, der dann mit einer Frequenz oszilliert, die wesentlich näher bei 60 MHz liegt. Weitere Iterationen dieses Schleifenprozesses können ausgeführt werden, um eine höhere Genauigkeit zu erreichen oder um einer Temperaturdrift entgegenzuwirken, falls die Karte über einen längeren Zeitraum hinweg unter Stromversorgung steht. Der 60 MHz-Takt wird durch drei geteilt, um ein 20 MHz-Taktsignal für andere Schaltungen als die Verschlüsselungs-Logik-Einheit 1101 bereitzustellen. Es sollte beachtet werden, daß die Übertragung des Wertes, der an den Digital-Analog-Wandler 1406 übertragen wird, durch einen Befehl erfolgt, der nur aus dem privilegierten Befehlsspeicher 702 ausgeführt werden kann.
  • Um Leistung zu sparen, kann die CPU 701 ein Eingabe- Ausgabe-Register (I/O-Register) auf dem Chip so steuern, daß das 60 MHz-Taktsignal keine Schaltungen in der Verschlüsselungs-Logik-Einheit 1101 takten kann.
  • Eine weitere Komponente ist eine Rauschquelle. Diese ist in Fig. 11 aus Gründen der Klarheit nicht dargestellt. Verschiedene kryptographische Prozeduren profitieren von Impf-Algorithmen (seeding algorithms) mit einem echten Zufallswert, im Gegensatz zu einem digital mit Schieberegistern und Gattern (Gates) erzeugten Pseudo-Zufallswert. Deshalb wird in einer bevorzugten Ausführung eine physische Rauschquelle auf dem gleichen Chip-Plättchen integriert, auf dem auch der Rest der bereits beschriebenen Schaltungen untergebracht ist.
  • Die Erfindung stellt verbesserte Sicherheit für viele Anwendungen von Chipkarten bereit, bei gleichzeitig hoher Verarbeitungsleistung auf einer relativ kleinen Siliziumfläche. Eine solche Einrichtung hat einen breiten Anwendungsbereich. Dieser schließt ein: Sicheren Zugriff auf Informationen über ein unsicheres Netzwerk, wie z. B. das Internet, ohne Sicherheitsschlüssel Dritten zugänglich zu machen. Punkt-zu-Punkt-Verschlüsselung (point to point encryption) von verbaler Kommunikation, Faxbotschaften oder Modem-Tönen. Datensicherung auf Wechselplattenlaufwerken.

Claims (10)

1. Integrierte Schaltung in Ein-Chip-Bauweise, enthaltend eine Prozessoreinrichtung (701), die zur Verarbeitung von aus einer Speichereinrichtung (702, 703) übertragenen Befehlen ausgebildet ist, wobei
die Speichereinrichtung einen ersten Befehlsspeicherbereich (702) und einen zweiten Befehlsspeicherbereich (703) aufweist und
Befehle selektiv von den Befehlsspeicherbereichen an die Prozessoreinrichtung (701) übertragen werden,
dadurch gekennzeichnet, daß sie Aktivierungsmittel aufweist, die derartig ausgebildet sind, daß
die Prozessoreinrichtung (701) zur Übernahme von privilegierten Befehlen aktiviert wird, wenn diese Befehle aus dem ersten Befehlsspeicherbereich (702) übertragen werden und
die Prozessoreinrichtung zur Übernahme der privilegierten Befehle desaktiviert wird, wenn diese Befehle aus dem zweiten Befehlsspeicherbereich (703) übertragen werden.
2. Integrierte Schaltung nach Anspruch 1, bei welcher der Chip Bestandteil einer Chipkarte ist und der zweite Befehlsspeicherbereich (703) derartig konfigurierbar ist, daß er Befehle von einem Chipkarten- Terminal übernimmt.
3. Integrierte Schaltung nach Anspruch 1, enthaltend eine Seitenspeicher-Adressierungseinrichtung (715 bis 721), die zur Übermittlung von Adressen an die Befehlsspeicherbereiche (702, 703) ausgebildet ist, wobei die Seitenspeicher-Adressierungseinrichtung nur durch privilegierte Befehle, die von dem ersten Be fehlsspeicherbereich (702) übermittelt werden, änderbar ist.
4. Integrierte Schaltung nach Anspruch 1, enthaltend eine Mehrzahl von Prozessoreinrichtungen (701, 1101), wobei der erste Befehlsspeicherbereich (702) eine Multiplexeinrichtung (1201, 1203) aufweist, die dazu ausgebildet ist, eine Ziel-Prozessoreinrichtung (701, 1101) für Befehle auszuwählen.
5. Integrierte Schaltung nach Anspruch 4, bei welcher eine erste Ziel-Prozessoreinrichtung (701) dazu ausgebildet ist, Befehle von dem ersten Befehlsspeicherbereich (702) mit einer ersten Befehlsflußrate zu übernehmen und zu dekodieren und eine zweite Ziel- Prozessoreinrichtung (1101) dazu ausgebildet ist, um Befehle aus dem ersten Befehlsspeicherbereich (702) mit einer zweiten Befehlsflußrate zu übernehmen und zu dekodieren.
6. Verfahren zur Bearbeitung von aus einer Speichereinrichtung (702, 703) ausgelesenen Befehlen, bei welchem
die Speichereinrichtung (702, 703) einen ersten Befehlsspeicherbereich (702) und einen zweiten Befehlsspeicherbereich (703) aufweist,
Befehle selektiv von den Befehlsspeicherbereichen an eine erste Prozessoreinrichtung (701) übertragen werden,
Aktivierungsmittel die Prozessoreinrichtung (701) zur Übernahme von privilegierten Befehlen aus dem ersten Befehlsspeicherbereich (702) aktivieren und
die Aktivierungsmittel die Prozessoreinrichtung zur Übernahme der privilegierten Befehle desaktivieren, wenn die Befehle aus dem zweiten Befehlsspeicherbereich (703) übermittelt werden.
7. Verfahren nach Anspruch 6, bei welchem Speicherbereiche in adressierbare Seiten aufgeteilt sind und die Auswahl der Seiten nur aufgrund von Befehlen aus dem ersten Befehlsspeicherbereich (702) gesteuert wird.
8. Verfahren nach Anspruch 6 oder 7, bei welchem die erste Prozessoreinrichtung (701) so ausgebildet ist, daß sie eine Quelle von Befehlen selektiert und privilegierte Befehle nicht ausgeführt werden.
9. Verfahren nach Anspruch 8, bei welchem privilegierte Befehle selektiv aufgrund eines von einer Dekodierungseinrichtung (710) erzeugten Steuersignals von der Ausführung ausgeschlossen werden.
10. Verfahren nach einem der Ansprüche 6 bis 9, bei welchem eine zweite Prozessoreinrichtung (1101) verwendet wird, die eine kryptographische Prozessoreinrichtung ist.
DE69603160T 1995-02-14 1996-02-12 Integrierte schaltung für smart-card Expired - Fee Related DE69603160T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GBGB9502864.3A GB9502864D0 (en) 1995-02-14 1995-02-14 Cryptographic reduced instruction set processor
PCT/GB1996/000295 WO1996025720A2 (en) 1995-02-14 1996-02-12 Integrated circuit

Publications (2)

Publication Number Publication Date
DE69603160D1 DE69603160D1 (de) 1999-08-12
DE69603160T2 true DE69603160T2 (de) 2000-01-27

Family

ID=10769574

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69603160T Expired - Fee Related DE69603160T2 (de) 1995-02-14 1996-02-12 Integrierte schaltung für smart-card

Country Status (6)

Country Link
US (1) US6035380A (de)
EP (1) EP0809832B1 (de)
AU (1) AU4668396A (de)
DE (1) DE69603160T2 (de)
GB (1) GB9502864D0 (de)
WO (1) WO1996025720A2 (de)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9502864D0 (en) * 1995-02-14 1995-04-05 Digicash Bv Cryptographic reduced instruction set processor
US6945457B1 (en) 1996-05-10 2005-09-20 Transaction Holdings Ltd. L.L.C. Automated transaction machine
AP9901547A0 (en) * 1996-11-18 1999-06-30 Mci Worldwide Inc A communication system architecture.
US6683870B1 (en) 1997-02-10 2004-01-27 Mci Communications Corporation Method and system for multicasting call notifications
FR2759795B1 (fr) * 1997-02-14 1999-05-07 Francois Charles Oberthur Fidu Procede de stockage de donnees dans une memoire reinscriptible de carte a puce
US6736325B1 (en) * 1998-01-22 2004-05-18 Mondex International Limited Codelets
US6357665B1 (en) * 1998-01-22 2002-03-19 Mondex International Limited Configuration of IC card
EP1112638A4 (de) 1998-06-25 2002-11-04 Mci Worldcom Inc Verfahren und system zum multicasting von anrufbenachrichtigungen
GB2344184A (en) * 1998-11-26 2000-05-31 Ericsson Telefon Ab L M Testing integrated circuits
US6427202B1 (en) * 1999-05-04 2002-07-30 Microchip Technology Incorporated Microcontroller with configurable instruction set
JP4083925B2 (ja) * 1999-06-24 2008-04-30 株式会社日立製作所 情報処理装置、カード部材および情報処理システム
JP2001297202A (ja) * 2000-04-11 2001-10-26 Hitachi Ltd ディジタル情報販売方法及びディジタル情報販売装置
EP1193627A1 (de) * 2000-06-28 2002-04-03 Hitachi, Ltd. Verfahren und System zum Austauschen von Wertpunkten zwischen IC-Karten
DE10108107A1 (de) * 2001-02-21 2002-08-29 Philips Corp Intellectual Pty Schaltungsanordnung sowie Verfahren zum Erkennen einer Zugriffsverletzung bei einer Mikrokontrolleranordnung
DE10136335B4 (de) * 2001-07-26 2007-03-22 Infineon Technologies Ag Prozessor mit mehreren Rechenwerken
US7418344B2 (en) * 2001-08-02 2008-08-26 Sandisk Corporation Removable computer with mass storage
DE10152458A1 (de) * 2001-10-24 2003-05-22 Giesecke & Devrient Gmbh Programmausführung bei einer Chipkarte
AUPR965801A0 (en) * 2001-12-20 2002-01-24 Canon Information Systems Research Australia Pty Ltd A user interface for accessing files in a smart card file system
US7900054B2 (en) * 2002-03-25 2011-03-01 Intel Corporation Security protocols for processor-based systems
US7069442B2 (en) 2002-03-29 2006-06-27 Intel Corporation System and method for execution of a secured environment initialization instruction
US20030222152A1 (en) * 2002-05-28 2003-12-04 Boley George E.S. Pre-paid debit & credit card
US7962741B1 (en) * 2002-09-12 2011-06-14 Juniper Networks, Inc. Systems and methods for processing packets for encryption and decryption
US7380114B2 (en) * 2002-11-15 2008-05-27 Broadcom Corporation Integrated circuit with DMA module for loading portions of code to a code memory for execution by a host processor that controls a video decoder
US7478248B2 (en) * 2002-11-27 2009-01-13 M-Systems Flash Disk Pioneers, Ltd. Apparatus and method for securing data on a portable storage device
EP1695527A1 (de) * 2003-12-18 2006-08-30 Telefonaktiebolaget LM Ericsson (publ) Wechselbares modul für zusätzliche funktionalität
US7360130B2 (en) * 2004-05-24 2008-04-15 Jed Margolin Memory with integrated programmable controller
US7562179B2 (en) 2004-07-30 2009-07-14 Intel Corporation Maintaining processor resources during architectural events
KR100608913B1 (ko) * 2004-11-10 2006-08-09 한국전자통신연구원 직교주파수분할다중(ofdm) 송신기에서의 인터리빙장치 및 방법
KR101506337B1 (ko) * 2008-03-07 2015-03-26 삼성전자주식회사 스마트 카드 시스템 및 그 구동 방법
US8695087B2 (en) * 2008-04-04 2014-04-08 Sandisk Il Ltd. Access control for a memory device
FR2977694A1 (fr) 2011-07-08 2013-01-11 St Microelectronics Rousset Microprocesseur protege contre un debordement de pile
US9256472B2 (en) 2012-07-10 2016-02-09 Sears Brands, Llc System and method for economical migration of legacy applications from mainframe and distributed platforms

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62204345A (ja) * 1986-03-05 1987-09-09 Oki Electric Ind Co Ltd マイクロコンピユ−タ
FR2604809B1 (fr) * 1986-10-07 1988-12-02 Thomson Csf Carte de controle permettant d'engendrer des codes secrets de grande longueur
US4983816A (en) * 1988-02-24 1991-01-08 Kabushiki Kaisha Toshiba Portable electronic device
JPH0259937A (ja) * 1988-08-26 1990-02-28 Hitachi Maxell Ltd Icカード
US5081675A (en) * 1989-11-13 1992-01-14 Kitti Kittirutsunetorn System for protection of software in memory against unauthorized use
JPH04141794A (ja) * 1990-10-03 1992-05-15 Mitsubishi Electric Corp Icカード
FR2667714A1 (fr) * 1990-10-09 1992-04-10 Gemplus Card Int Procede pour repartir la memoire d'un circuit integre entre plusieurs applications.
JP3251579B2 (ja) * 1990-11-29 2002-01-28 株式会社東芝 携帯可能電子装置
JPH06274397A (ja) * 1993-03-24 1994-09-30 Toshiba Corp ファイル管理方式
JPH0744672A (ja) * 1993-07-28 1995-02-14 Oki Electric Ind Co Ltd Icカード及びicカードシステム
GB9502864D0 (en) * 1995-02-14 1995-04-05 Digicash Bv Cryptographic reduced instruction set processor

Also Published As

Publication number Publication date
WO1996025720A2 (en) 1996-08-22
DE69603160D1 (de) 1999-08-12
AU4668396A (en) 1996-09-04
US6035380A (en) 2000-03-07
WO1996025720A3 (en) 1996-09-26
GB9502864D0 (en) 1995-04-05
EP0809832B1 (de) 1999-07-07
EP0809832A2 (de) 1997-12-03

Similar Documents

Publication Publication Date Title
DE69603160T2 (de) Integrierte schaltung für smart-card
DE69012692T3 (de) Karte mit festverdrahteter Mikroschaltung und Verfahren zur Durchführung einer Transaktion zwischen einer solchen Karte und einem Endgerät.
DE69836633T2 (de) Datentransportschlüsselsatz für chipkarten
EP1360644B1 (de) Sicherheitsmodul mit flüchtigem speicher zur speicherung eines algorithmuscodes
DE69834180T2 (de) Schlüsseltransformationseinheit für eine chipkarte
DE69325072T2 (de) Gesicherte Speicherkarte
DE60224060T2 (de) Verwendung von daten gespeichert in einem lese-zerstörenden speicher
DE69529103T2 (de) Verfahren zum Handhaben der Sicherheit einer Speicherkarte, und Speicherkarte und geeignete Transaktionsvorrichtung
DE10196006B4 (de) Erzeugen einer Schlüsselhierarchie zur Verwendung in einer isolierten Ausführungsumgebung
DE69635868T2 (de) Verfahren und vorrichtung zum kryptographisch gesteuerten betrieb eines zusatzgeräts
DE69531077T2 (de) Verfahren und Vorrichtung mit Benutzereinwirkung der Art Erproben-und-Kaufen, die es ermöglicht, Software zu erproben
DE69833594T2 (de) Gesicherter Prozessor mit externem Speicher unter Verwendung von Block-Chaining und Wiederherstellung der Blockreihenfolge
DE69823649T2 (de) Multi-anwendungs ic-kartensystem
DE69531082T2 (de) Verfahren und Vorrichtung mit einem Verschlüsselungskopfteil, die es ermöglicht, Software zu erproben
DE69204696T2 (de) Rechteaustausch-Verfahren zwischen Mikroprozessorkarten.
DE69527773T2 (de) Schaltungsanordnung zur Überwachung der Benutzung von Funktionen in einem integrierten Schaltungkreis
DE69900169T2 (de) Kreditkartensystem und verfahren
DE69814406T2 (de) Tragbare elektronische vorrichtung für systeme zur gesicherten kommunikation und verfahren zur initialisierung der parameter
DE112009002502T5 (de) Multilayer inhalte-schützender Mikrocontoller
DE3751047T2 (de) Softwareschutzsystem einschliesslich eines Einschlüsselkryptosystems, eines auf Hardware beruhenden Genehmigungssystems und eines geschützten Zusatzprozessors.
EP0970447B1 (de) Netzwerkunterstütztes chipkarten-transaktionsverfahren
DE60005311T2 (de) Verfahren und vorrichtung zur minimalisierung differentieller stromverbrauchsangriffe
DE10200288A1 (de) Eine Vorrichtung zur Ausführung von Anwendungen, die sichere Transaktionen und/oder Zugangskontrolle zu werthaltigen Inhalten und/oder Dienstleistungen umfassen, und Verfahren zum Schutz einer solchen Vorrichtung
DE69725663T2 (de) Abrechnungsverfahren und System
DE69904446T2 (de) Speicherkarte

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee