-
Die vorliegende Erfindung betrifft
eine Mikroschaltung, umfassend eine Schnittstellenschaltung zur
Erfassung von Befehlen niedriger Stufe, die in Form von elektrischen
Signalen oder Kombinationen von elektrischen Signalen, die an elektrische
Kontakte angelegt werden, empfangen werden.
-
Die vorliegende Erfindung betrifft
insbesondere eine Mikroschaltung mit verkabelter Logik für eine Speicherkarte,
die dazu vorgesehen ist, Befehle niedriger Stufe gemäß der Norm
ISO 7618-2 zu empfangen.
-
Einleitend ist anzuführen, dass
der ursprüngliche
Begriff „Chipkarte" zwei große Kategorien
von Karten bezeichnet, die sich auf Ebene der Technologie unterscheiden:
einerseits die Karten mit Mikroprozessor, wie die Bankkarten, andererseits
die sogenannten Karten „mit
Speicher", beispielsweise
die Telefonkarte, die Wertkarten, .... Im Unterschied zu den Karten
mit Mikroprozessor verfügen
die Speicherkarten nur über
eine Mikroschaltung mit verkabelter Logik, die geringere Möglichkeiten
als ein Mikroprozessor hinsichtlich der Einsatzflexibilität, der Datenverarbeitungskapazität, der Programmierfähigkeit,
... bietet. Die Mikroschaltungen der Speicherkarten haben hingegen
der Vorteil, dass sie eine einfachere Struktur und geringere Selbstkosten
aufweisen, so dass sie in den letzten Jahren Gegenstand zahlreicher
Studien waren, die zu wesentlichen Verbesserungen ihrer Funktionen
mit verkabelter Logik, insbesondere ihrer Sicherheitsfunktionen,
führten. Solche
Verbesserungen sind insbesondere in den Patentanmeldungen WO 97/14119
und 97/14120 im Namen der Anmelderin beschrieben. So kann heute eine
Mikroschaltung mit verkabelter Logik einer Speicherkarte mit einer
leistungsfähigen
kryptographischen Schaltung und Mitteln zur Überprüfung der Gültigkeit eines geheimen Benutzercodes
(oder „PIN"-Code) ausgestattet
werden, wie eine Mikroschaltung einer Bankkarte.
-
Die Verbreitung von verbesserten
Speicherkarten scheitert allerdings an der Tatsache, dass derzeit
der Bestand an in Betrieb befindlichen Speicherkartenlesern im Wesentlichen
aus Lesern zusammengesetzt ist, die mit einer relativ mangelhaften Kommunikationsschnittstelle
versehen sind, die der Norm ISO 7816-2 entspricht. Diese Norm, die
für die Speicherkarten
spezifisch ist, definiert nämlich
eine begrenzte Anzahl von elektrischen Befehlen, die an die Speicherkarten über ihre
Kontaktflächen
angelegt werden können.
Diese sogenannten Befehle niedriger Stufe sind beispielsweise:
- – WRITE0:
Schreiben eines Bits gleich 0 an eine Adresse des Speichers, die
durch einen Adresszeiger spezifiziert wird,
- – INCRADD:
Inkrementieren des Adresszeigers des Speichers um eine Einheit,
- – RSTADD:
Rücksetzen
des Adresszeigers auf 0, usw...
-
Diese Befehle werden in codierter
Form mit Hilfe der herkömmlichen
Signale zur Rücksetzung auf
Null RST (Reset) und der Uhrzeitsignale und CLK (Clock) gesendet.
Zur Darstellung zeigt 1 die elektrische
Codierung nach der Norm ISO 7816-2 der drei Befehle niedriger Stufe,
die oben als Beispiele angeführt
sind. Der Befehl WRITE0 wird durch einen Impuls des Signals RST,
gefolgt von einem Uhrzeitimpuls CLK codiert, der Befehl INCRADD
wird durch einen Uhrzeitimpuls CLK codiert, und der Befehl RSTADD
wird durch einen Uhrzeitimpuls CLK codiert, der gleichzeitig mit
einem Impuls des Signals RST gesendet wird.
-
Diese verschiedenen durch die Norm
ISO 7816-2 vorgesehenen Befehle weisen den Nachteil auf, dass sie
nur elementare Operationen des Schreibens, Löschens oder Lesens im Speicher
einer Mikroschaltung ermöglichen.
Es ist kein Befehl hoher Stufe vorgesehen, um komplexere Operationen durchzuführen. Um
solche Operationen durchzuführen,
ist es im Stand der Technik üblich,
einen Folgeschalter mit verkabelter Logik vorzusehen, der diese Operationen
zu einem genauen Zeitpunkt seiner Folgesteuerung auslöst, der
durch die Anzahl von Schlägen
der Uhr CLK, die seit der letzten Rücksetzung auf Null empfangen
wurde, bestimmt wird. Beispielsweise erfolgt ein Authentifizierungsverfahren
einer Speicherkarte folgendermaßen:
- – mit
Hilfe von Befehlen niedriger Stufe wird ein Zufallsdatum oder ALEA
in dem Speicher der Mikroschaltung beispielsweise beim Schlag N
der Uhr aufgezeichnet,
- – auf
Basis dieses Schlags der Uhr N + 1 sendet ein Folgeschalter mit
verkabelter Logik das Datum ALEA in eine kryptographische Schaltung
und erzeugt im Rhythmus der Uhr einen Authentifizierungscode CA
und zeichnet gleichzeitig diesen Code im Speicher auf,
- – mit
Hilfe von Befehlen niedriger Stufe wird der in dem Speicher der
Mikroschaltung aufgezeichnete Authentifizierungscode CA gelesen
und davon die Authentizität
der Karte abgeleitet.
-
Diese Ausführungsmethode komplexer Operationen
mit Hilfe eines Folgeschalters, bei der der Speicher für die Übertragung
der Nutzdaten (beispielsweise ALEA und CA) als Briefkasten verwendet wird,
der dank der Befehle niedriger Stufe zugänglich ist, führt zur
Herstellung von Mikroschaltungen, deren Funktion vorbestimmt und
feststehend ist, und die Befehle hoher Stufe, die jederzeit ausführbar sind,
nicht empfangen können.
-
Die durch die Schnittstelle ISO 7816-2
gebotenen begrenzten Möglichkeiten
stellen auch ein Hindernis für
die Herstellung einer universalen Mikroschaltung mit zwei Betriebsarten
mit oder ohne Kontakt dar, deren allgemeine Architektur in der Patentanmeldung
PCT/FR97/01230 im Namen der Anmelderin beschrieben ist. Eine solche
Mikroschaltung ermöglicht
es, Speicherkarten herzustellen, die sowohl von Kartenlesern ohne
Kontakt als auch von herkömmlichen
Kartenlesern mit Kontakt gelesen werden können. Bei der kontaktlosen
Betriebsart empfängt
oder sendet die Mikroschaltung Binärdaten durch induktive Kopplung
und kann in codierter Form alle Befehlstypen hoher Stufe empfangen.
Im Kontaktmodus hingegen kann die Mikroschaltung nur mit Hilfe der
Analogbefehle niedriger Stufe nach der Norm ISO 7816-2 gesteuert
werden. Diese Ungleichheit von Befehlen führt dazu, dass unterschiedliche Mittel
für die
Ausführung
einer selben Operation in jeder der Betriebsarten, vorgesehen werden,
und dieser Mikroschaltungstyp weist eine große Komplexität und hohe
Selbstkosten auf.
-
Die vorliegende Erfindung soll diese
verschiedenen Nachteile vermeiden.
-
Insbesondere besteht ein erstes Ziel
der Erfindung darin, eine Mikroschaltung mit verkabelter Logik vorzusehen,
die mit Hilfe von Befehlen hoher Stufe gesteuert werden kann und
gleichzeitig mit einer Kommunikationsschnittstelle niedriger Stufe,
beispielsweise einer Schnittstelle des Typs ISO 7816-2, kompatibel
ist.
-
Ein weiteres, vom ersten unabhängiges Ziel der
vorliegenden Erfindung besteht darin, eine Mikroschaltung mit zwei
Betriebsarten mit oder ohne Kontakt vorzusehen, die dieselbe Funktionsflexibilität im Kontaktmodus
wie im kontaktlosen Modus bietet und gleichzeitig eine einfache
Struktur und geringe Kosten aufweist.
-
Diese Ziele werden durch Einsatz
einer Mikroschaltung nach Anspruch 1 und eines Verfahrens nach Anspruch
12 erreicht.
-
Diese Gegenstände, Merkmale und Vorteile der
vorliegenden Erfindung sowie weitere gehen im Detail aus der nachfolgenden
Beschreibung des erfindungsgemäßen Verfahrens
und einer Mikroschaltung mit zwei Betriebsarten, die dieses Verfahren
einsetzt, unter Bezugnahme auf die beiliegenden Figuren hervor,
wobei
-
die vorher beschriebene 1 die elektrische Codierung
von Befehlen niedriger Stufe nach der Norm ISO 7816-2 darstellt,
-
2 in
Form von Blöcken
das elektrische Schema einer Mirkoschaltung mit zwei Betriebsarten gemäß der Erfindung
darstellt, und
-
3 eine
besondere Ausführungsart
gewisser Elemente der Mikroschaltung der 2 darstellt.
-
Beschreibung der Erfindung
-
2 stellt
das elektrische Schema einer Mikroschaltung 40 mit verkabelter
Logik gemäß der Erfindung
da, die dazu bestimmt ist, auf einer Kunststoffkarte montiert zu
werden, und eine Speicherkarte zu bilden. Die Mikroschaltung 40 ist
von dem in der Patentanmeldung PCT/FR97/01230 beschriebenen Typ
und weist zwei Betriebsarten, mit oder ohne Kontakt, auf. Die Mikroschaltung 40 umfasst
somit einem Teil 10, der für die Steuerung einer Kommunikation im
Kontaktmodus spezifisch ist, einen Teil 20, der für die Steuerung
einer Kommunikation im kontaktlosen Modus spezifisch ist, und einen
Teil 30, der beiden Betriebsarten gemein ist.
-
Erfindungsgemäß weist die Mikroschaltung 40 drei
unterschiedliche Merkmale auf, die in der Folge im Detail beschrieben
sind:
- 1) der Teil 10 des Kontaktmodus
verfügt über einen
digitalen Kommunikationskanal und ist gleichzeitig mit der Norm
ISO 7816-2 kompatibel,
- 2) dieser digitale Kommunikationskanal wird verwendet, um an
die Mikroschaltung im Kontaktmodus binär codierte Befehle hoher Stufe
zu senden,
- 3) der gemeinsame Teil 30 bearbeitet unterschiedslos
Befehle hoher Stufe, die im Kontaktmodus empfangen werden, und Befehle
niedriger Stufe, die im kontaktlosen Modus empfangen werden.
-
Es wird zuerst die Struktur des Teils 10 beschrieben,
der für
die Betriebsart im Kontaktmodus spezifisch ist.
-
1/ Für die Betriebsart im Kontaktmodus
spezifischer Teil
-
Der Teil 10 umfasst herkömmlicherweise
einen Kontakt RST, um ein Rücksetzungssignal
RST zu empfangen, einen Kontakt CLK, um ein äußeres Zeitsignal CLK zu empfangen,
einen Kontakt IO, um Eingangs-/Ausgangsdaten zu empfangen, einen Massekontakt
GND und einen Kontakt VCC, um eine Versorgungsspannung VCC der Mikroschaltung 40 zu
empfangen, wenn diese im Kontaktmodus funktioniert, wobei diese
verschiedenen Kontakte durch die Norm ISO 7816-2 vorgesehen sind.
Der Teil 10 umfasst auch herkömmlicherweise eine Schnittstellenschaltung 11,
die dieser Norm entspricht, beispielsweise die Schaltung SLE4403,
die von der Firma SIEMENS vertrieben wird. Die Schnittstellenschaltung 11 ist
an die Kontakte RST, CLK, IO angeschlossen und derart angeordnet,
dass sie die Befehle niedriger Stufe LC1, LC2, LC3, LC4 ..., die
an die Mikroschaltung 40 angelegt werden, erfasst. Die
Schaltung 11 umfasst eine Vielzahl von Ausgängen OUT1, OUT2,
OUT3, OUT4 ..., wobei jeder Ausgang einem Befehl niedriger Stufe
LC1, LC2, LC3, LC4 ... zugeordnet ist und einen Spannungsimpuls
an einen Ausgang OUTi liefert, wenn der entsprechende Befehl LCi
erfasst wird.
-
Erfindungsgemäß umfasst der Teil 10 auch einen
Umsetzer 12, der an mindestens zwei Ausgänge der
Schaltung 11, hier die Ausgänge OUT1, OUT2, angeschlossen
ist und einen digitalen Ausgang DATA umfasst. Dieser Umsetzer 12 ist
derart angeordnet, dass er mindestens zwei Befehle niedriger Stufe,
hier LC1, LC2, die von der Schnittstellenschaltung 11 empfangen
werden, in Binärdaten
konvertiert, die für
die Übertragung
der Binärwerte
0 und 1 verwendet werden. So liefert der Umsetzer 12 an seinem
Ausgang DATA ein Bit gleich 0, wenn der Befehl LC1 erfasst wird
(wobei ein Spannungsimpuls von dem Ausgang OUT1 gesendet wird),
und liefert ein Bit gleich 1, wenn der Befehl LC2 erfasst wird (wobei
ein Spannungsimpuls von dem Ausgang OUT2 gesendet wird). Zur Vereinfachung
wird die innere Struktur des Umsetzers 12, dessen Ausführung mit
Hilfe von logischen Türen
und Kippschaltungen in der Reichweite des Fachmannes liegt, nicht
beschrieben.
-
Wenn somit die Mikroschaltung 40 eine
Folge von Befehlen niedriger Stufe LC1, LC2 empfängt, liefert der Ausgang DATA
des Umsetzers 12 eine Folge oder Kette von Bits DTin1.
Beispielsweise die folgende Befehlsabfolge:
LC1, LC2, LC2,
LC1, LC1, LC2, LC1, LC2,
wird in eine Bitkette gleich:
0
1 1 0 0 1 0 1
konvertiert.
-
Mit anderen Worten werden die Befehle niedriger
Stufe LC1, LC2, die für
die Übertragung
von Binärdaten
an die Mikroschaltung 40 ausgewählt wurden, von ihrer primären Funktion
angelenkt. Diese Befehle erzeugen keinerlei Wirkung auf der Mikroschaltung
und werden nicht ausgeführt.
-
So ermöglicht es das Anlegen einer
ununterbrochenen Folge von Befehlen niedriger Stufe LC1, LC2 an
die Mikroschaltung, vorzugsweise einen digitalen Kommunikationskanal
zu erzeugen. Nach einem weiteren Aspekt der Erfindung wird dieser
Kommunikationskanal verwendet, um an die Mikroschaltung Befehle
hoher Stufe zu übertragen,
die binär
codiert sind und später
als Beispiele angeführt
sind.
-
Überdies
erfolgt das Senden von Binärdaten DTout1
durch den Teil 10 auf herkömmliche Weise, indem diese
Daten an den Kontakt IO in Synchronisation mit dem äußeren Zeitsignal
CLK angelegt werden, wobei diese Operation mit Hilfe der Schnittstellenschaltung 11 durchgeführt wird,
die die Synchronisation der Datenübertragung mit der Uhrzeit
CLK sicher stellt.
-
Schließlich umfasst der Teil 10 einen
Generator 13 eines. inneren Zeitsignals H1, das dem Betriebsmodus
mit Kontakt eigen ist und eine höhere Frequenz
als das äußere Zeitsignal
CLK aufweist. Der Generator 13 wird durch ein Signal OUT
aktiviert, das von dem Umsetzer 12 zu dem Zeitpunkt geliefert wird,
zu dem dieser ein Datum an seinem Ausgang DATA entsendet, und wird
durch ein Signal OFF deaktiviert, das von der Bearbeitungseinheit 31,
die später
beschrieben ist, geliefert wird.
-
2/ Für die kontaktlose Betriebsart
spezifischer Teil
-
Der Teil 20, der für die kontaktlose
Betriebsart spezifisch ist, ist selbst herkömmlich und wird nur kurz als
Beispiel beschrieben. Der Teil 20 umfasst eine kontaktlose
Kommunikationsschnittstelle, die eine Antennenspule L und eine Kapazität C umfasst, wobei
die Einheit eine Resonanzantennenschaltung LC mit einer Eigenfrequenz
Fp bildet. Der Teil 20 umfasst überdies eine Demodulations-Decodierungs-Schaltung 21,
eine Codierungs-Modulations-Schaltung 22, eine Schaltung 23,
die das innere Zeitsignal H2 des kon taktlosen Modus liefert, und eine
Gleichrichterbrücke 24 mit
Dioden, wobei diese verschiedenen Schaltungen an die Klemmen der
Antennenschaltung LC angeschlossen sind.
-
Bei Vorhandensein eines oszillierenden
Magnetfeldes mit der Frequenz Fp, das beispielsweise von der Spule
eines kontaktlosen Kartenlesers (nicht dargestellt) gesendet wird,
liefert die Spule L eine induzierte Wechselspannung Vac. Diese Spannung Vac
wird von der Gleichrichterbrücke 24 in
eine Gleichspannung VDD umgewandelt, die die Versorgung der Mikroschaltung 40 in
der kontaktlosen Betriebsart sicherstellt. Der Empfang von Binärdaten DTin2
wird durch die Schaltung 21 sichergestellt, die die Spannung
Vac demoduliert und diese Binärdaten DTin2
liefert. Das Senden von Binärdaten
DTout2 wird von der Schaltung 22 sichergestellt, die die
Last der Spule L in Abhängigkeit
von diesen Daten nach einer vorbestimmten Codierung moduliert. Diese Lastmodulation
zeigt sich durch induktive Kopplung an der Spule des Kartenlesers,
der davon nun die Daten DTout2 ableiten kann, die an ihn gesendet werden.
Schließlich
wird das Zeitsignal H2 des kontaktlosen Modus herkömmlicherweise
aus der Spannung Vac durch die Schaltung 23 beispielsweise durch
Frequenzteilung entnommen, wobei seine Frequenz im Allgemeinen ein
Untervielfaches der Frequenz Fp ist.
-
Wie bereits angeführt, sind diese verschiedenen
Schaltungen dem Fachmann gut bekannt und werden nicht im Detail
beschrieben. Ferner können das
Senden und Empfangen von Binärdaten
durch den Teil 20 auf anderen Techniken als der Amplitudenmodulation
der Spannung Vac und der Modulation der Last der Spule L beruhen,
beispielsweise der Modulation FSK, der Übertragung von Infrarotsignalen
mit Hilfe von optoelektronischen Bestandteilen usw.
-
3/ Teil, der beiden Betriebsarten
gemein ist
-
Der Teil 30, der im Wesentlichen
digital ist, umfasst eine Bearbeitungseinheit 31, einen
Datenspeicher 32, einen Eingangspuffer 33 und
einen Ausgangspuffer 34, die hier jeweils eine Kapazität von acht
Bit aufweisen. Der Speicher 32 umfasst einen Adresseingang
INADD, eine parallele Eingangs-/Ausgangsschnittstelle IODT, und
wird von Signalen WR (Schreiben) und RD (Lesen) gesteuert, die von
der Bearbeitungseinheit 31 geliefert werden. Der Puffer 33 ist
ein Schieberegister, umfassend einen seriellen Eingang und einen
parallelen Ausgang, und der Puffer 34 ist ein Schieberegister,
umfassend einen parallelen Eingang und einen seriellen Ausgang.
Ein Umsetzer SW1 mit zwei Positionen ermöglicht es, an den Eingang des
Puffers 33 Binärdaten DTin1
anzulegen, die von dem Umsetzer 12 des Teils 10 geliefert
werden, oder Binärdaten
DTin2, die von der Demodulations-Decodierungs-Schaltung 21 des Teils 20 geliefert
werden. Der parallele Ausgang des Puffers 33 ist an einen
inneren Bus 35, hier von acht Bit, angeschlossen. Der Bus 35 ist
an einen Eingang IN und einen Ausgang OUT der Bearbeitungseinheit 31,
an den Eingang INADD und an die Schnittstelle IODT des Speichers 32 sowie
an den parallelen Eingang des Puffers 34 angeschlossen.
Der Ausgang des Puffers 34 liefert Daten DTOUt, die an
die Schnittstellenschaltung 11 des Teils 10 oder
an die Codierungs-Modulations-Schaltung 22 des Teils 20 mit
Hilfe eines Umsetzers SW2 mit zwei Positionen angelegt werden können.
-
Die Bearbeitungseinheit 31 ist
eine Zustandsmaschine mit begrenzter Zustandszahl von an sich bekanntem
Typ, deren Herstellung in der Reichweite des Fachmannes liegt und
die derart angeordnet ist, dass sie Befehle hoher Stufe, die binär codiert sind,
decodiert und ausführt.
Die Bearbeitungseinheit 31 umfasst verschiedene herkömmliche
Schaltungen, die für
die Ausführung
dieser Befehle hoher Stufe erforderlich sind, beispielsweise eine
Schaltung zur Decodierung der Befehle, eine kryptographische Schaltung
mit verkabelter Logik und eine Schaltung zur Kontrolle der digitalen
Unterschriften. Die Aktivierung der Bearbeitungseinheit 31 wird
durch eines der beiden Zeitsignale H1 oder H2, die oben beschrieben sind,
sichergestellt, welches in Abhängigkeit
von der Betriebsart der Mikroschaltung mit Hilfe eines Umsetzers
mit zwei Positionen SW3 gewählt
wird.
-
4/ Funktion und Vorteile
der Mikroschaltung
-
Die Daten DTin1 oder DTin2, die in
serieller Form empfangen werden, werden in den Eingangspuffer 33 des
Teils 30 eingeleitet, und der Inhalt des Puffers 33 wird
parallel dazu auf den Bus 35 alle acht empfangenen Bits
in Form eines Binärwortes
BWin1 entleert. Erfindungsgemäß ist dieses
Binärwort
BWini ein Befehl hoher Stufe oder ein Element einer komplexeren
Steuerung, beispielsweise:
- – ein Operationscode CODEop
für eine
auszuführende
Operation, der an den Eingang IN der Bearbeitungseinheit 31 anzulegen
ist,
- – eine
Adresse ADD, die an den Eingang INADD des Speichers 32 anzulegen
ist,
- – ein
Datum WDATA, das in dem Speicher 32 über die Schnittstelle IODT
anzulegen ist.
- – ein
Zufallsdatum ALEA, auf dessen Basis die Mikroschaltung 40 einen
Authentifizierungscode CA erzeugen soll,
- – eine
Meldungsunterschrift CRC, die es ermöglicht, die Übertragungsfehler
usw. zu erfassen.
-
Die Befehle hoher Stufe, die Operationscodes
CODEop, die Daten des Typs ALEA oder CRC werden von der Bearbeitungseinheit 31 gelesen
und bearbeitet. Die anderen aufzuzeichnenden Daten, wie Adressen
ADD oder Daten WDATA, werden direkt an den Speicher 32 unter
der Kontrolle der Einheit 31 angelegt.
-
Überdies
werden die Daten DTout1, DTout2, die an einen Kartenleser zu senden
sind, parallel in Form von Binärworten
BWouti an den Eingang des Ausgangspuffers 34 angelegt und
Bit für
Bit von dem Ausgang des Puffers 34 geliefert. Diese Daten
können
beispielsweise umfassen:
- – einen Code INF, der von der
Bearbeitungseinheit 31 geliefert wird,
- – einen
Authentifizierungscode CA, der von der Einheit 31 geliefert
wird,
- – ein
Datum RDATA, das in dem Speicher 32 gelesen wird,
- – ein
Datum WDATA, das in den Speicher 32 geschrieben, zur Bestätigung zurückgesendet
wird, usw.
-
Diese Daten DTout werden an die Schaltung 11 des
Teils 10 oder an die Codier-Modulations-Schaltung 22 des
Teils 20 je nach der Position des Umsetzers SW2 gesendet.
-
So empfängt die Mikroschaltung 40 vorzugsweise
Befehle hoher Stufe mit demselben Format und derselben Codierung,
unabhängig
von ihrer Betriebsart. Dieser Vorteil wird durch die Möglichkeit,
Binärdaten
im Kontaktmodus zu empfangen, und durch die Tatsache erzielt, dass
die Mikroschaltung nur eine einzige Bearbeitungsschaltung 31 für beide
Betriebsarten umfasst. Dieses Merkmal vereinfacht wesentlich die
Struktur der Mikroschaltung und ermöglicht es, dieselbe Funktionsflexibilität im Kontaktmodus wie
im kontaktlosen Modus zu erhalten.
-
5/ Beispiel für Befehle
hoher Stufe, die an die Mikroschaltung gesendet werden
-
Zur Darstellung sind nachstehend
einige Beispiele für
Befehle hoher Stufe angeführt,
die an die Mikroschaltung 40 gesendet werden können. Diese Befehle
sind in Felder von acht Bit unterteilt, die sich in der Mikroschaltung 40 in Form
von Binärworten BWini
befinden, die von dem Puffer 33 an den Bus 35 geliefert
werden. Das erste Feld CODEop enthält den Code der auszuführenden
Operation, und die anderen Felder enthalten ergänzende Daten und/oder Unterschriftdaten.
-
Befehl READ (Lesen des
Speichers 32):
-
CODEread ADD CRC1 CRC2
-
Dieser Befehl umfasst den Operationscode CODEread,
eine Leseadresse ADD und zwei Unterschriftoktetts CRC1, CRC2, die
gemeinsam eine Unterschrift über
16 Bit bilden.
-
Befehl WRITE (Schreiben
in den Speicher 32):
-
CODEwrite ADD W1 W2 W3 W4 CRC1 CRC2
-
Dieser Befehl umfasst den Operationscode CODEwrite,
eine Schreibadresse ADD, ein Datum zu 32 Bit, das in den Speicher
zu schreiben ist und sich in vier Oktetts W1 bis W4 aufgliedert,
und zwei Unterschriftoktetts CRC1, CRC2.
-
Befehl AUTHENTIFICATE
(Authentifizierungsbefehl)
-
CODEauth ALEA1 ALEA2 ALEA3 ALEA4
-
Dieser Autehtifizierungsbefehl der
Mikroschaltung umfasst den Code der Operation CODEauth und ein Zufallsdatum
von 32 Bit, das sich aus vier Oktetts ALEA1 bis ALEA4 zusammensetzt.
-
Wie bereits angeführt, erfolgt das Senden der
Antworten der Mikroschaltung 40 im Kontaktmodus auf konventionellere
Weise mit Hilfe des Kontakts IO und in Synchronisation mit der äußeren Uhrzeit
CLK gemäß der Norm
ISO 7816-2. Das Format der Antworten kann für beide Betriebsarten vereinheitlicht
werden und ist beispielsweise folgendes:
INF XDATA CRC
-
Das Feld INF kann ein unveränderliches
Datum sein, das beiden Meldungen gemein ist, oder ein veränderliches
Datum, das es ermöglicht,
Rückmeldungen
zu codieren. Das Feld XDATA enthält
eine zu übertragende
Information, beispielsweise ein Datum RDATA oder WDATA, einen Authentifizierungscode CA,
usw. Schließlich
ist das Überprüfungsfeld
CRC optional und kann bei Bestätigungsmeldungen
nützlich
sein, mit denen die Mikroschaltung 40 die Ausführung einer
Operation bestätigt,
die ein hohes Kontroll- und Sicherheitsniveau erfordert.
-
6/ Senden der Befehle
hoher Stufe im Kontaktmodus von einem Kartenleser herkömmlichen
Typs
-
Im vorhergehenden wurde der Einsatz
des erfindungsgemäßen Verfahrens
von Seiten der Mikroschaltung 40 beschrieben, das es ermöglicht,
Binärdaten
mit Hilfe von Befehlen niedriger Stufe zu empfangen. Der Einsatz
der Erfindung setzt übrigens voraus,
dass auf der Seite eines Kartenlesers die Möglichkeit besteht, auf einfache
Weise die Befehle niedriger Stufe LC1, LC2 zu senden, die die Binärdaten befördern. Hier
beruht die vorliegende Erfindung auf der Tatsache, dass herkömmlicherweise
die Speicherkartenleser mit Hilfe von standardisierten Makrobefehlen
programmiert werden können,
die die Arbeit der Programmierer erleichtern. Diese Makrobefehle
werden automatisch von den Kartenlesern in eine Folge von Befehlen
niedriger Stufe zergliedert.
-
Insbesondere besteht der Grundgedanke der
Erfindung darin, an die Mikroschaltung 40 die Oktetts BWini
eines Befehls hoher Stufe mit Hilfe des herkömmlichen Makrobefehls:
WRITE
(„Oktett"h, „Adresse"h)
zu senden,
der bedeutet: „das
spezifizierte Oktett (hexadezimal) an die spezifizierte Adresse
(ebenfalls hexadezimal) schreiben, wobei jedes zu sendende Oktett
BWini in dem Feld „Oktett" angeordnet wird. Dieser
Makrobefehl wird von den Kartenlesern in eine Folge von Befehlen
niedriger Stufe WRITE0 (Schreiben eines Bits 0) und INCRADD (Inkrementieren
eines Adresszeigers), die bereits im Oberbegriff beschrieben wurden,
zergliedert, wobei der Befehl WRITE0 gesendet wird, wenn eine 0
in einen Speicher zu schreiben ist, und der Befehl INCRADD gesendet
wird, wenn 1 in diesen zu schreiben ist (das Schreiben eines Bits
von 1 in einen Streicher einer Speicherkarte erfolgt nämlich in
der Praxis durch eine einfache Inkrementierung der Adresse mit Hilfe
des Befehls niedriger Stufe INCRADD, wobei alle Speicherpunkte bei
der Inbetriebnahme der Karte auf 1 gesetzt werden).
-
Falls der Makrobefehl WRITE verwendet wird,
wie soeben dargelegt wurde, sind die Befehle niedriger Stufe LC1
und LC2, die digitale Daten befördern,
nun WRITE0 und INCRADD.
-
In der Praxis schlägt die vorliegende
Erfindung vor, jedes hexadezimal ausgedrückte Binärwort BWini mit Hilfe des folgenden
Makrobefehls zu senden:
WRITE(Bwini, 00h)
in dem das Feld „Adresse" immer auf Null steht.
Indem auf diese Weise vorgegangen wird, wird vermieden, dass der
Kartenleser vor der Befehlsabfolge WRITE0 (Schreiben einer 0) und
INCRADD (Schreiben einer 1) eine Folge von Vorbefehlen INCRADD sendet,
die einen Adresszeiger an die in dem Befehl spezifizierte Adresse
führen
soll. So wird beispielsweise das Wort:
BWini = 0 1 1 0 0 1
0 1 (d. h. 65 h in Hexadezimalschreibweise)
mit Hilfe des Makrobefehls:
WRITE
(65h, 00h)
gesendet.
-
Dieser Makrobefehl ruft in einem
Speicherkartenleser das Senden der Folge von Befehlen niedriger
Stufe hervor:
RSTADD, WRITE0, INCRADD, INCRADD, WRITE0, WRITE0,
INCRADD, WRITE0, INCRADD
-
Da der Befehl RSTAAD (Rücksetzung
auf 0 des Adresszeigers) von dem Umsetzer 12 nicht als ein
Binärwert
erkannt wird, wird diese Befehlsabfolge selbst durch den Umsetzer 12 in
eine Kette von Bits gleich:
0 1 1 0 0 1 0 1
umgewandelt.
-
Schließlich ist auf sehr vorteilhafte
Weise am Ausgang DATA des Umsetzers 12 das Binärwort BWini
zu finden, das in dem Makrobefehl angeordnet ist.
-
Überdies
kann der Empfang von Daten des Typs INF, XDATA und CRC von einem
Kartenleser dank des herkömmlichen
Markobefehls:
READ (Nh, 00h)
erhalten werden, in dem N,
hexadezimal ausgedrückt,
die Anzahl von Bits ist, die erwartungsgemäß von der Mikroschaltung 40 erhalten
wird, wobei das Adressfeld aus dem oben erwähnten Grund immer auf Null
gesetzt ist. Natürlich wird
dieser Makrobefehl nicht als ein Befehl von der Mikroschaltung 40 wahrgenommen.
Dieser Makrobefehl erzeugt einfach das Senden von N äußeren Uhrzeitschlägen CLK.
In der erfindungsgemäßen Mikroschaltung 40 weiß die Bearbeitungseinheit 31,
dass sie Daten entsenden muss (beispielsweise weil sie vorher einen
Befehl hoher Stufe READ oder AUTHENTICATE erhalten hat), und erwartet
das Uhrzeitsignal CLK. Wenn der erste Uhrzeitschlag CLK empfangen
wird, sendet die Einheit 31 diese Daten Bit für Bit an
den Kontakt IO, mit Hilfe der Schnittstellenschaltung 11 in
Synchronisation mit der Uhrzeit CLK entsprechend der Norm ISO 7816-2.
-
7/ Einsetzen eines Trennbits
in die an die Mikroschaltung gesendeten Befehle hoher Stufe
-
Im vorhergehenden war zu sehen, dass
die Befehle hoher Stufe, die an die Mirkoschaltung 40 gesendet
werden, mehrere Felder CODEop, ALEA, Wi, .... umfassen, die sich
in Form einer Bitkette am Ausgang DATA des Umsetzers 12 und
dann in Form von Binärworten
BWini am inneren Bus 35 befinden, wobei die Größe der Felder
an die Kapazität
des Eingangspuffers 33, hier acht Bit, angepasst ist. In
der Praxis ist es somit erforderlich, ein Mittel vorzusehen, um
die Entladung des Puffers 33 am Bus 35 immer dann auszulösen, wenn
er voll ist. Ein Zählen
der von den Ausgängen
OUT1, OUT2 der Schnittstellenschaltung 11 gelieferten Impulse
ist möglich,
stellt sich aber als eine mittelmäßige Lösung heraus, die zu Synchronisationsfehlern
führen
kann. Die vorliegende Erfindung schlägt eine vorteilhaftere Methode vor,
die darin besteht:
- 1) ein Trennbit BS oder „Start"-Bit am Eingang des Puffers 33 vor
der Ankunft der für
einen Befehl signifikanten Bits einzusetzen,
- 2) das Bit BS in dem Puffer 33 bei jedem Einsetzen
eines signifikanten Bits auszubreiten,
- 3) den Puffer 33 zu entladen, wenn das Bit BS am anderen
Ende des Puffers 33 erscheint.
-
Um diese Methode einzusetzen, ist
es überdies
vorteilhaft, das Trennbit BS mit Hilfe des Befehls niedriger Stufe
RSTADD zu erzeugen. Oben war nämlich
zu sehen, dass die Ausführung
des Makrobefehls WRITE (BWini, 00h), in dem das Feld „Adresse" auf Null steht,
immer mit dem Senden des Befehls RSTADD beginnt, der einen Adresszeiger
auf Null rücksetzen
soll.
-
3 stellt
eine Ausführungsart
des Umsetzers 12 und des Eingangspuffers 33 dar,
die die soeben beschriebene Methode einsetzen. Der Umsetzer 12 ist
nun an drei Ausgänge
OUT1, OUT2, OUT3 der Schaltung 11 angeschlossen, die durch
die Befehle niedriger Stufe WRITE0, INCRADD bzw. RSTADD aktiviert
werden. Der Puffer 12 umfasst neun Speicherzellen CEL1
bis CEL9 in Kaskade, wobei der Ausgang DATA des Umsetzers 12 an
den Eingang der ersten Zelle CEL1 angeschlossen ist. Das Schieben
der Bits der Zellen CELi zu den Zellen höheren Ranges CELi+1 wird durch
ein Signal SHIFT ausgelöst,
das vom Umsetzer 12 geliefert wird. Überdies wird der Inhalt der
Zellen CEL1 bis CEL8 an den Bus 35 entladen, wenn ein Signal
LATCH, das von dem Ausgang der neunten Zelle CEL9 geliefert wird,
auf 0 übergeht.
Nach der Entladung werden alle Zellen CEL1 bis CEL9 automatisch
auf 1 gesetzt. Der Umsetzer 12 liefert ein Bit gleich 0
an seinem Ausgang DATA, wenn einer der Befehle WRITE0 und RSTADD von
der Schnittstellenschaltung 11 empfangen wird (Ausgang
OUT1 oder OUT3 aktiviert), und liefert ein Bit gleich 1, wenn das
Signal INCRADD empfangen wird (Ausgang OUT2 aktiviert). Nachdem
ein Bit geliefert wurde, liefert der Umsetzer 12 das Schiebesignal
SHIFT, so dass das gelieferte Bit in die erste Zelle CEL1 geladen
wird und die anderen in dem Puffer 33 enthaltenen Bits
um einen Rang verschoben werden.
-
Da die verschiedenen Felder eines
Befehls hoher Stufe an die Mikroschaltung 40 mit Hilfe
des Makrobefehls WRITE (Bwini, 00h) gesendet werden, findet vor
der Übertragung
jedes Wortes BWini das Senden des Befehls niedriger Stufe RSTADD
statt, wie oben erklärt.
Dieser Befehl RSTADD führt
zum Senden eines Trennbits BS gleich 0 an den Ausgang DATA des Umsetzers 12,
so dass die vorher beschriebenen Befehle hoher Stufe nun folgendes
Aussehen haben:
READ:
0 CODEread 0 ADD 0 CRC1 0 CRC2
WRITE:
0
CODEwrite 0 ADD 0 W1 0 W2 0 W3 0 W4 0 CRC1 0 CRC2
AUTHENTICATE:
0
CODEauth 0 ALEA1 0 ALEA2 0 ALEA3 0 ALEA4
-
So ist das erste Bit, das in den
Puffer 33 nach einem Entladen des Puffers an den Bus 35 eingesetzt
wird, das Trennbit BS, das gleich 0 ist. Zu diesem Zeitpunkt sind
alle Zellen, inklusive der Zelle CEL9, gleich 1. Nach neun Verschiebungen,
die durch das Signal SHIFT ausgelöst wurden, befindet sich das
Bit BS am Ausgang der Zelle CEL9, so das das Entladesignal LATCH
auf 0 übergeht.
So ermöglicht
es erfindungsgemäß das Einsetzen
des Trennbits BS in die von dem Umsetzer 12 gelieferte
Binärkette,
automatisch den Puffer 33 an den Bus 35 zu entladen
und überdies
eine gute Synchronisation zwischen der Mikroschaltung 40 und
einem Speicherkartenleser sicher zu stellen.
-
8/ Varianten und Anwendungen
der Erfindung
-
Es versteht sich, dass die Aspekte
der vorliegenden Erfindung zur Übertragung
von Binärdaten mit
Hilfe einer Schnittstelle ISO 7816-2 sowohl für die Mikroschaltungen mit:
zwei Betriebsarten, als auch für
die Mikroschaltungen, die nur im Kontaktmodus funktionieren, anwendbar
sind. So ermöglicht
die vorliegende Erfindung nicht nur die Herstellung einer Mikroschaltung
mit zwei Betriebsarten von einfacher, vernünftiger Ausführung, die
eine große
Verwendungsflexibilität
aufweist, sondern auch einer Mikroschaltung nur mit Kontakt, die
auch eine große
Verwendungsflexibilität
durch ihre Fähigkeit,
Befehle hoher Stufe zu empfangen, bietet. Überdies ist es im Rahmen der
vorliegenden Erfindung, analog die Lehre, die soeben für genormte
Schnittstellen niedriger Stufe, die sich von der Schnittstelle ISO
7816-2 unterscheiden, gegeben wurde, für Speicherkarten anzuwenden.
Die Erfindung ist somit für
jeden Typ von Mikroschaltung anwendbar, die auf einem tragbaren Träger montiert
ist und über
eine von einer Norm vorgeschriebene Schnittstelle niedriger Stufe
gesteuert wird.
-
Ebenfalls ist es für den Fachmann
deutlich, dass gewisse Merkmale der Erfindung, wie die Tatsache,
dass eine Umwandlung seriell/parallel der empfangenen Daten vorgenommen
wird, für
den Einsatz der Erfindung nicht unbedingt notwendig sind. Es ist beispielsweise
möglich,
eine Mikroschaltung herzustellen, die einen Speicher mit serieller
Eingangs-/Ausgangsschnittstelle umfasst. Ganz allgemein können somit
verschiedene Architekturen von dem Fachmann bekannten Schaltungen
in einer erfindungsgemäßen Mikroschaltung
eingesetzt werden.
-
Schließlich ist anzumerken, dass
in der Praxis die Schnittstellenschaltung 11 und der Umsetzer 12 gemäß der Erfindung
zu einer einzigen Schaltung vereint sein können, deren Funktion darin
besteht, Signale oder Kombinationen von empfangenen Signalen zu
erfassen und die entsprechenden Binärwerte zu liefern.