DE69835879T2 - Multifunktionschipkarte mit delegierungsmerkmal - Google Patents

Multifunktionschipkarte mit delegierungsmerkmal Download PDF

Info

Publication number
DE69835879T2
DE69835879T2 DE69835879T DE69835879T DE69835879T2 DE 69835879 T2 DE69835879 T2 DE 69835879T2 DE 69835879 T DE69835879 T DE 69835879T DE 69835879 T DE69835879 T DE 69835879T DE 69835879 T2 DE69835879 T2 DE 69835879T2
Authority
DE
Germany
Prior art keywords
application
data
memory
volatile
memory segment
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 - Lifetime
Application number
DE69835879T
Other languages
English (en)
Other versions
DE69835879D1 (de
Inventor
Barrington David Brighton EVERETT
James Stuart Bracknell MILLER
David Anthony Tunbridge Wells PEACHAM
Stephens Ian Broughton SIMMONS
Philip Timothy Radlett RICHARDS
Charles John VINER
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.)
Mondex International Ltd
Original Assignee
Mondex International Ltd
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 Mondex International Ltd filed Critical Mondex International Ltd
Publication of DE69835879D1 publication Critical patent/DE69835879D1/de
Application granted granted Critical
Publication of DE69835879T2 publication Critical patent/DE69835879T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime 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/1016Devices or methods for securing the PIN and other transaction-data, e.g. by encryption
    • 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/0719Record 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 at least one of the integrated circuit chips comprising an arrangement for application selection, e.g. an acceleration sensor or a set of radio buttons
    • 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/08Payment architectures
    • G06Q20/10Payment architectures specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems
    • G06Q20/105Payment architectures specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems involving programming of a portable memory device, e.g. IC cards, "electronic purses"
    • 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/355Personalisation of cards for use
    • 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/355Personalisation of cards for use
    • G06Q20/3552Downloading or loading of personalisation data
    • 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
    • G06Q20/35765Access rights to memory zones
    • 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/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/409Device specific authentication in transaction processing
    • G06Q20/4097Device specific authentication in transaction processing using mutual authentication between devices and transaction partners
    • 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/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/409Device specific authentication in transaction processing
    • G06Q20/4097Device specific authentication in transaction processing using mutual authentication between devices and transaction partners
    • G06Q20/40975Device specific authentication in transaction processing using mutual authentication between devices and transaction partners using encryption therefor
    • 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

Description

  • HINTERGRUND DER ERFINDUNG
  • Chipkarten (Karten mit integrierter Schaltung) werden heute auf der Welt zunehmend für viele verschiedenen Zwecke verwendet. Eine Chipkarte (auch Smart-Karte genannt) hat gewöhnlich die Größe einer konventionellen Kreditkarte, die einen Computerchip enthält mit einem Mikroprozessor, einem Nur-Lese-Speicher (ROM), einem elektrisch löschbaren programmierbaren Nur-Lese-Speicher (EEPROM), einem RAM-Speicher (RAM), einem Eingabe/Ausgabemechanismus und anderen Schaltungsanordnungen zum Unterstützen des Betriebs des Mikroprozessors. Eine Chipkarte kann in ihrem Speicher eine einzelne Anwendung oder mehrere unabhängige Anwendungen enthalten. MULTOSTM ist ein Mehranwendungsbetriebssystem, das, unter anderen Plattformen, auf Chipkarten ausgeführt wird und das Ausführen mehrerer Anwendungen auf der Karte selbst ermöglicht. Mit dem in der Chipkarte befindlichen Mehranwendungsbetriebssystem kann ein Kartenbenutzer viele in der Karte gespeicherten Programme (zum Beispiel Kredit/Debit-, E-Money/Elektronische-Geldbörse- und/oder Bonusanwendungen), unabhängig von der Art des Terminals (d.h. Geldautomat (ATM), Telefon und/oder POS) ausführen, in das die Karte zur Benutzung gesteckt wird.
  • In eine konventionelle Chipkarte mit einzelner Anwendung, wie z.B. eine Telefonkarte oder eine E-Cash-Karte, wird eine einzige Anwendung geladen, und die Chipkarte führt nur diese eine Anwendung aus, wenn sie in ein Terminal eingeführt wird. Beispielsweise könnte eine Telefonkarte nur zum Bezahlen eines Telefonanrufs verwendet werden und nicht als Kredit/Debitkarte. Wenn ein Kartenbenutzer es wünscht, dass ihm ausgestellte Einzel-Anwendungs-Chipkarten eine Reihe verschiedener Anwendungsfunktionen durchführen sollten, wie z.B. sowohl eine Geldbörsen- als auch eine Kredit/Debitfunktion, müsste der Kartenbenutzer mehrere tatsächliche Karten mit sich führen, was ziemlich umständlich und unpraktisch wäre. Wenn ein Anwendungsentwickler oder Kartenbenutzer es wünschen sollte, dass zwei verschiedene Anwendungen in Wechselwirkung stehen oder miteinander Daten austauschen sollten, wie z.B. eine mit einer Bonusanwendung für treue Flugkunden in Wechselwirkung stehende Geldbörsenanwendung, wäre der Kartenbenutzer gezwungen, während der Transaktion mehrere Karten abwechselnd in das kartenaufnehmende Terminal zu stecken bzw. abzuziehen, was die Transaktion schwierig, langwierig und unpraktisch machen würde.
  • Aus diesem Grund ist es vorteilhaft, mehrere Anwendungen in derselben Chipkarte zu speichern. Beispielsweise kann ein Kartenbenutzer sowohl eine Geldbörsenanwendung als auch eine Kredit/Debitanwendung auf derselben Karte haben, so dass der Benutzer die für einen Kauf zu benutzende Zahlungsart (mit elektronischem Geld oder mit Kreditkarte) auswählen könnte. Eine Chipkarte könnte mit mehreren Anwendungen versehen werden, wenn ausreichend Speicher vorhanden ist und sich in der Karte ein Betriebssystem befindet, das mehrere Anwendungen unterstützen kann.
  • Die größere Flexibilität und Leistung des Speicherns mehrerer Anwendungen auf einer einzelnen Karte bringen neue zu bewältigende technische Herausforderungen hervor betreffend die Unverfälschtheit und Sicherheit der Informationen (einschließlich Anwendungscode und assoziierte Daten), die zwischen der einzelnen Karte und dem Anwendungsanbieter ausgetauscht werden, sowie innerhalb des gesamten Systems bei der Kommunikation von Informationen zwischen Anwendungen.
  • Beispielsweise ermöglicht das Vorhandensein von mehreren Anwendungen auf derselben Karte den Datenaustausch zwischen zwei Anwendungen, während eine der Anwendungen ausgeführt wird. Wie oben angegeben, muss während der Ausführung einer Elektronische-Geldbörse-Anwendung eventuell auf ein Bonusprogramm für treue Flugkunden zugegriffen werden. Wenn Daten auf nichtsichere Weise zwischen Anwendungen übersendet werden, ist es für Dritte, die die Transaktion überwachen, vielleicht möglich, den Inhalt der übertragenen Daten oder sogar andere mit einer oder beiden der Anwendungen assoziierten persönlichen Daten zu ermitteln. Es wäre daher vorteilhaft, eine Anwendungsarchitektur und Speicherorganisation bereitzustellen, die Daten einer Anwendung vor der Entdeckung durch Dritte schützt, wenn sie mit anderen auf der Chipkarte vorhandenen Anwendungen ausgetauscht werden.
  • Dementsprechend ist es eine Aufgabe von erfindungsgemäßen Ausgestaltungen, eine Anwendungsarchitektur und Speicherorganisation bereitzustellen, die die Dateninteraktion zwischen Anwendungen mit höherer Sicherheit ermöglicht und den Zugriff auf mehrere Anwendungen während der Durchführung eines gewünschten Tasks oder einer gewünschten Funktion zulässt.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Die vorliegende Erfindung sieht eine Application Abstract Machine (AAM) genannte Mehranwendungsarchitektur für eine Chipkarte und ein Verfahren zum Implementieren dieser Architektur vor. Die Verarbeitung mehrerer Anwendungen wird erreicht, indem für wenigstens eine Anwendung (die „erste Anwendung") ein Datenspeicherraum generiert wird, der wenigstens zwei Segmente aufweist, ein flüchtiges Speichersegment und ein nichtflüchtiges Speichersegment; Beginnen der Ausführung der Anweisungen der ersten Anwendung; Delegieren oder Wechseln der Ausführung von der ersten Anwendung an/auf die delegierte Anwendung und dadurch Speichern von Daten, die von der ersten Anwendung im mit der ersten Anwendung assoziierten logischen Datenspeicherraum erzeugt werden; Ausführen der Anweisungen der zweiten Anwendung; Abrufen der gespeicherten Daten und Abschließen der Ausführung der Anweisungen der ersten Anwendung mit diesen Daten.
  • Zusätzliche Delegierungsbefehle können von der zweiten Anwendung oder anderen nachfolgenden Anwendungen erteilt werden. Der delegierte Befehl wird von einer delegierten Anwendung auf die gleiche Weise wie ein von einem Terminal direkt erteilter Auswahlbefehl ausgelegt und daher führt jede Anwendung die Sicherheitsfunktionen auf der gleichen Ebene aus, als ob ein Terminal den Befehl erteilen würde.
  • Das flüchtige Speichersegment kann ferner in öffentliche („Public") und dynamische („Dynamic") Abschnitte getrennt werden. Daten können zwischen einer Mehrzahl von Anwendungen und/oder einem Terminal ausgetauscht werden, wenn sie in der öffentlichen Region des Datenspeichers gespeichert sind. Es ist möglich, die dynamische Speicherregion ausschließlich als temporären Arbeitsbereich für die spezifische Anwendung, die ausgeführt wird, zu verwenden.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Weitere Aufgaben, Merkmale und Vorteile der Erfindung gehen aus der folgenden, nur beispielhaft zu verstehenden, ausführlichen Beschreibung in Verbindung mit den Begleitfiguren hervor, die veranschaulichende Ausgestaltungen der Erfindung zeigen, wobei:
  • 1 ein Blockdiagramm ist, das das Datenspeicherraumsegment und assoziierte Register für eine die AAM-Organisation verwendende Chipkartenanwendung illustriert;
  • 2 ein Blockdiagramm ist, das den Codespeicher und die Datenspeicherräume für eine die AAM-Organisation verwendende Chipkartenanwendung illustriert;
  • 3 ein Flussdiagramm ist, das die Schritte der Durchführung einer Anforderung für eine Delegierungsfunktion von einer Anwendung an eine andere illustriert;
  • 4 ein Flussdiagramm ist, das die Schritte der Durchführung einer Rückdelegierungssteuerfunktion für eine Delegiertenanwendung an eine Delegatoranwendung illustriert;
  • 5 ein Flussdiagramm ist, das die Schritte der Durchführung einer Delegator-ID-Anfrage-Anforderung einer Delegierungsfunktion illustriert;
  • 6 ein Blockdiagramm des Chips einer Chipkarte ist, der erfindungsgemäß als Plattform verwendet werden kann; und
  • 7A, 7B und 7C mehrere Delegierungsaufrufe zwischen drei Anwendungen illustrieren.
  • In den Figuren werden, wenn nicht anders angegeben, durchgehend die gleichen Bezugsnummern und -zeichen zum Bezeichnen gleicher Merkmale, Elemente, Komponenten oder Teile der illustrierten Ausgestaltungen verwendet. Darüber hinaus wird die gegenständliche Erfindung nun zwar in Bezug auf die Figuren ausführlich beschrieben, dies erfolgt aber in Verbindung mit den veranschaulichenden Ausgestaltungen. Es ist vorgesehen, dass an den beschriebenen Ausgestaltungen Änderungen und Modifikationen vorgenommen werden können, ohne vom wahren Umfang und Sinn der gegenständlichen Erfindung gemäß der Definition in den angehängten Ansprüchen abzuweichen.
  • AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNG
  • Eine Ausgestaltung der vorliegenden Erfindung sieht ein Verfahren und eine Vorrichtung zum Verarbeiten einer Mehrzahl von Anwendungen mit in einer Chipkarte gespeicherten assoziierten Daten vor, auf die zugegriffen werden kann und die ausgeführt werden können. Eine in der Karte gespeicherte Anwendung kann von einem Terminal oder einem anderen Schnittstellengerät (IFD) oder einer anderen Anwendung ausgewählt werden. Jedem Anwendungsprogramm, das in der Chipkarte gespeichert ist, wird beim Ausführen ein vom Softwarecode des Programms (Anweisungen, die von einem auf der Chipkarte befindlichen Prozessor ausgeführt werden) organisierter Speicherraum und die assoziierten Daten alloziert, die die Anwendung speichert und während der Ausführung des Programms benutzt.
  • Zum Beispiel kann eine Mehranwendungskarte eine Geldbörsen-Anwendung oder eine E-Money-Anwendung und eine spezifische Treue-Anwendung wie eine Bonusanwendung für treue Flugkunden speichern. Jede Anwendung hat Softwarecode und assoziierte Daten zum Unterstützen der Ausführung dieses Softwarecodes. Jeder Anwendung wird beim Ausführen ein Speicherraum alloziert. In diesem Beispiel besteht eine Wechselwirkung zwischen den zwei in der Karte gespeicherten Anwendungen. Für jeden zum Tätigen eines Kaufs elektronisch ausgegebenen Dollar ist der Benutzer eventuell zu einer Vielflieger-Meile berechtigt, die von dem Vielflieger-Programm gespeichert und verarbeitet wird. Die Geldbörsen-Anwendung braucht sich des spezifischen in der Karte gespeicherten Treueprogramms nicht bewusst zu sein, sie kann stattdessen eine Anweisung zum Kommunizieren mit jedwedem in der Karte gespeicherten Treueprogramm enthalten. Das Treueprogramm erfordert Eingabedaten, die für den Betrag eines jeweiligen elektronischen Wertes repräsentativ sind, so dass es seine eigenen gespeicherten Daten von aktuellen Vielflieger-Meilen für den Benutzer der Karte aktualisieren kann.
  • Wenn zwei Anwendungen während derselben Transaktion miteinander kommunizieren müssen, wird eine Systemarchitektur zum Verarbeiten beider Anwendungen auf effiziente und sichere Weise benötigt. Ein Ansatz könnte ein Modell vom Windows-Typ sein, bei dem beide Anwendungen gleichzeitig laufen könnten. Gegenwärtig sind Chipkartenplattformen aber nicht leistungsstark genug zum effizienten gleichzeitigen Betreiben mehrerer Programme. Auch können übertragene Daten unerwünschtem Zugriff durch Dritte ausgesetzt sein. Zum Behandeln dieses Problems unterbrechen Ausgestaltungen gemäß der aktuellen Erfindung, die unten ausführlicher beschrieben werden, selektiv die Ausführung von Anwendungen auf sichere Weise. Dies lässt das Aufrechterhalten der Integrität der Daten der Anwendungen zu und erlaubt die beste Nutzung des verfügbaren Speicherplatzes in der Chipkarte.
  • Eine effiziente Architektur zum Verarbeiten mehrerer Anwendungen in einer Chipkarte ist als AAM-Architektur (AAM: Application Abstract Machine) bezeichnet und wird hierin beschrieben. Die AAM-Architektur gilt für jede beliebige Plattform, unabhängig von ihrer Hardware, und ermöglicht Entwicklern das Schreiben von Anwendungen zum Speichern in den Chipkarten, die über viele verschiedene Typen von Plattformen portabel sind (z.B. von verschiedenen Herstellern mit unterschiedlichen Prozessorkonfigurationen konstruierte Chipkarten), ohne dass Kenntnisse über die spezifische Hardware der Plattform benötigt werden.
  • Eine Application Abstract Machine (AAM), ein Begriff für die Speicherallozierung und Organisation für die von jeder Anwendung gespeicherten und benutzten Daten, wird für jede in der Chipkarte gespeicherte Anwendung erstellt, die vom Prozessor auf der Karte ausgeführt wird. Um Datenintegrität und -sicherheit zu gewährleisten, wenn Daten zwischen Anwendungen, die auf der Chipkarte ausgeführt werden, übertragen werden, darf jeweils nur eine Anwendung in der Chipkarte ausgeführt werden. Jede Anwendung hat einen Datenspeicherraum, der virtuell alloziert und auf die in den Chipkartenspeichern verfügbaren physikalischen Speicheradressen abgebildet wird. Daten werden dann zwischen zwei oder mehr Anwendungen innerhalb einer spezifischen Speicherstelle und auf eine Weise transferiert, die mit der Übertragung von Daten an ein externes Terminal oder eine externe Vorrichtung übereinstimmen, mit dem/der die Chipkarte in sicherer Wechselwirkung steht. Auf allgemeiner Ebene weist jeder für jede ausgeführte Anwendung generierte AAM-Raum zwei separate Adressbereiche auf, einen für den Programmcode selbst und einen für die Programmdaten, die von der Anwendung gespeichert und/oder verwendet werden. Der Programmdatenadressbereich ist effektiv in drei Segmente geteilt: ein statisches (Static-)Segment, ein dynamisches (Dynamic-)Segment und ein öffentliches (Public-)Segment, die in Verbindung mit 1 ausführlicher beschrieben werden. Wie oben angegeben, sind das statische, das dynamische und das öffentliche Segment logisch auf den physikalischen Speicher abgebildet; sie sind im Gegensatz zu physikalischen Speichersegmenten virtuelle Speichersegmente. Der AAM-Datenadressbereich wird vorzugsweise mit sieben verschiedenen Adressregistern und zwei Steuerregistern adressiert und verarbeitet.
  • 1 zeigt ein veranschaulichendes Diagramm einer Allozierung von logischem Datenraum 101, die für eine in Verbindung mit der vorliegenden Erfindung verwendete Anwendung erstellt wurde. Der AAM-Datenteil 101 weist einen statischen Datenraum „Static" 103, einen öffentlichen Datenraum „Public" 105 und einen dynamischen Datenraum „Dynamic" 107 auf. Auch eine Reihe von Adressregistern sind abgebildet: das Static-Basisadressregister 109, das Static-Top-Adressregister 111, das Public-Basisadressregister 113, das Public-Top-Adressregister 115, das Dynamic-Basisadressregister 117, das Dynamic-Top-Adressregister 121 und das lokale Basisadressregister 119, das als lokaler Stackrahmenzeiger im dynamischen Datenraum dient, wenn die Anwendung ausgeführt wird. Die Adressregister können physikalische Speicheradressen enthalten, sie enthalten aber vorzugsweise Offsetadressen für die diversen Datenadressbereiche, um hardwareunabhängig zu sein. Ein Beispiel für den gesamten Adressbereich ist 64 Kilobyte, obwohl die Größe im Verhältnis zur anwendbaren Plattform und zur verfügbaren Speichergröße variiert. Die Register können auch in Betracht kommende Zeiger sein oder sie können auch jeder beliebige andere konventionelle Adressiermechanismus sein.
  • Im allozierten AAM-Datenraum 101 ist der statische Teil des Speichers nichtflüchtig (wie EEPROM) und wird nicht gelöscht, nachdem die Stromzufuhr zur Chipkarte unterbrochen wird, der dynamische Raum ist flüchtig (wie RAM) und wird eventuell gelöscht, nachdem die Stromzufuhr zur Karte unterbrochen wird, und der öffentliche Raum ist ebenfalls flüchtig (wie RAM). Eine Chipkarte kann Strom von einem Terminal erhalten, nachdem sie in das Terminal eingesetzt worden ist. Eine Chipkarte kann zwar eine Batterie zum weiteren Versorgen von Speicher und Schaltungsanordnung mit etwas Strom enthalten, flüchtiger Speicher wird aber meist gelöscht, nachdem die Chipkarte von ihrer Stromquelle entfernt worden ist.
  • Der definierte AAM-Datenraum hat in jedem Segment Bytes, die zusammenhängend sind, so dass Anwendungen Zeiger- und Offsetarithmetik durchführen können. Wenn beispielsweise die Segmentadressen „1515" und „1516" oder ein anderes Paar sequentieller Zahlen beide gültig und innerhalb desselben Segments vorhanden sind, dann adressieren sie benachbarte Bytes. Deshalb können in Registern gespeicherte Offsetwerte die Stelle einer gewünschten Speicheradresse bestimmen. Die Segmentadresse des ersten Bytes des statischen Segments ist null, so dass die Segmentadresse einer bestimmten Stelle innerhalb der statischen Region gleich ihrem Offset ist.
  • Zeiger zu anderen spezifischen Regionen des statischen Datenbereichs können in den statischen Daten gespeichert werden, weil die statische Region nichtflüchtig ist. Wenn zum Beispiel der Name des Kartenbenutzers im statischen Speicher einer Kredit-/Debitanwendung gespeichert ist, weiß die Anwendung, dass der Name des Kartenbenutzers immer an der 5. Speicherstelle über dem Anfangspunkt für den statischen Speicherteil gespeichert ist. Die Speicherstelle kann als SB [5] oder das 5. Byte über dem unteren Ende des statischen Bereichs notiert sein. Da der statische Speicher nichtflüchtig ist, wird er nicht nach jeder Transaktion gelöscht und die Anwendung kennt immer seine Stelle relativ zu den Adressregistern der statischen Segmente.
  • Andererseits ist die Segmentadresse einer beliebigen Stelle im dynamischen und im öffentlichen Segment nicht immer gleich einem spezifischen Offset vom Anfang des jeweiligens Segments, weil der Inhalt jener Segmente sich für jede Operation ändert. Die vierte Stelle im dynamischen Segment ist für jede von der Anwendung durchgeführte Operation verschieden. Die Adresse einer Speicherstelle des dynamischen oder öffentlichen Segments ist vorzugsweise nur für die Dauer der Operation eines Befehl-Antwort-Paares fest. Weil Segmentadressen in Dynamic oder Public nicht fest sind, können Anweisungen der MULTOS Executable Language (MEL)TM (oder beliebige andere Programmanweisungen) Daten nicht ausschließlich mit Segmentadressen referenzieren. Stattdessen wird vorzugsweise eine mit Tag gekennzeichnete Adresse zum Identifizieren von Daten verwendet, die im Chipkartensystem aufgerufen, manipuliert, übertragen und/oder gespeichert werden sollen.
  • Eine mit Tag gekennzeichnete Adresse ist ein neunzehn Bit umfassender Wert, der aus einem Tag mit drei Bit (Adressregisternummer) und einem Offset mit sechzehn Bit besteht. Jedes der sieben Adressregister für den AAM-Datenraum enthält eine physikalische Segmentadresse. Zum Beispiel zeigen die Adressregister SB 109 und ST 111 auf die Grenzen des statischen Bereichs Static, die Adressregister PB 113 und PT 115 zeigen auf die Grenzen des öffentlichen Bereichs Public und die Adressregister DB 117 und DT 121 zeigen auf die Grenzen des dynamischen Bereichs Dynamic. Für jedes Segment zeigt das obere Register auf das Byte unmittelbar nach dem letzten gültigen Byte. Beispielsweise ist das letzte gültige Byte des statischen Bereichs ST[-1]. Register LB dient als Stackrahmenzeiger. Es zeigt auf eine Stelle im dynamischen Segment, um ein spezifisches Byte lokaler Daten für die Anwendung anzuzeigen, die aktuell ausgeführt wird.
  • In 1 enthält das allozierte statische Segment 103 die nichtflüchtigen Daten der Anwendung. Zu den statischen Daten zählen Daten, die mit jeder Anwendung für jede Transaktion assoziiert sind, wie der Name, die Kontonummer, der PIN-Wert und die Adresse des Kartenbenutzers. Statische Daten beinhalten auch variable Daten, die zur Verwendung in die Anwendung benutzenden zukünftigen Transaktionen gespeichert werden. Beispielsweise würden bei einer Geldbörsentransaktion die Daten des elektronischen Werts aus dem statischen Segment gelesen und später am Ende der Transaktion im statischen Segment gespeichert werden. Außerdem würden Transaktionsinformationsdaten oder verfügbare Kreditlimits im Fall einer Kredit-/Debitanwendung in den statischen Daten gespeichert werden.
  • Die statischen Daten werden unter Verwendung von Register SB (Static Base) und dem Register ST (Static Top) als Offsetregister adressiert. Diese Register enthalten den Offsetwert von einer physikalischen Adresse in einem Speicher auf der Chipkarte. Die einzelne Speicherstelle wird dann von diesen Ausgangspunkten wie SB[3] oder ST[-5] weiter versetzt. SB ist als null definiert und ST ist gleich der Größe der statischen Daten der Anwendung, die festgesetzt wird, wenn die Anwendung in die Chipkarte geladen wird. Das Mehranwendungsbetriebssystem stellt sicher, dass keine andere Anwendung die im statischen Segment einer jeweiligen Anwendung gespeicherten Daten lesen oder schreiben kann. Mithilfe von aktueller Technologie wird das statische Segment vorzugsweise auf einen EEPROM (elektrisch löschbarer programmierbarer Nur-Lese-Speicher) abgebildet, der nichtflüchtig ist.
  • Das dynamische Segment 107 enthält die flüchtigen oder temporären Daten der Anwendung. Zu den dynamischen Daten zählen Daten, die während der Ausführung einer Anwendung vorübergehend verwendet werden, wie z.B. in Rechnungen verwendete Zwischenwerte oder Arbeitsvariablen. Zum Beispiel kann eine Geldbörsenanwendung vorübergehend den Wert einer Transaktion speichern, um den Betrag des Werts in der Geldbörse zu verringern. Die temporären Daten werden weitgehend so verwendet, wie konventionelle Computerprogramme RAM zum Durchführen ihrer zugewiesenen Operationen verwenden. Das dynamische Segment ist vorzugsweise in zwei Teile geteilt, den Sitzungsdatenteil und den Stackdatenteil. Die Größe der Sitzungsdaten ist eine Konstante für jede Anwendung und wird ermittelt, wenn die Anwendung geladen wird. Der Stack enthält variable Daten, die für die jeweilige Transaktion, die durchgeführt wird, eindeutig sind. Der Stackdatenteil speichert Daten nach dem Last-in-First-out-Prinzip. Der Stack ist anfänglich leer, aber während der Ausführung der Anwendung dehnt er sich aus und schrumpft.
  • Die dynamischen Daten sind vom Register DB 117 bis zum Register DT 121 adressiert. Register LB 119 dient als lokaler Stackrahmenzeiger auf spezielle Speicherstellen im dynamischen Segment für Delegierungsbefehle oder Funktionsaufrufe. Register LB 119 wird zum Adressieren des obersten Rahmens verwendet, dem der Sitzungsdaten der aktuell ausgeführten Funktion. Register DT 121 dient als ein Adressenoffset für den Stackzeiger. Eine Dateneinheit von einem Byte am oberen Ende des Stacks ist als DT[-1] adressiert, das nächste Byte darunter ist mit DT[-2] adressiert und so weiter. Eine Push-Operation inkrementiert den relativen Wert von DT für jede Einheit auf im Stack und eine POP-Operation dekrementiert den relativen Wert von DT für jede Einheit im Stack. Beispielsweise befindet sich ein an DT[-5] befindliches Datenelement an DT[-6], nachdem eine zusätzliche Dateneinheit zum Stack hinzugefügt worden ist.
  • Wenn eine Anwendung ausgeführt wird, enthält das für diese Anwendung erstellte dynamische Segment auch die Sitzungsdaten der Anwendung, die beim Durchführen des/der zugewiesenen Task(s) oder Operation(en) verwendet werden. Das Mehranwendungsbetriebssystem stellt sicher, dass keine andere Anwendung die im dynamischen Segment einer jeweiligen Anwendung gespeicherten Daten lesen oder schreiben kann. Die Sitzungsdaten werden zu Beginn der Ausführung der Anwendung genullt. Stackdaten werden im Stack abgespeichert, wenn die Anwendung ein Task oder eine Operation an eine andere Anwendung delegiert.
  • Eine Delegierungsfunktion findet statt, wenn eine Anwendung eine andere Anwendung zum Verarbeiten eines Befehls auswählt, anstatt den Befehl selbst zu verarbeiten. Ein Beispiel für eine Delegierungsfunktion findet statt, wenn eine Delegatoranwendung einen Befehl erhält, den sie nicht erkennt oder für dessen Verarbeitung sie nicht programmiert ist. Die ausgewählte Anwendung sollte den Befehl nicht ablehnen und eine Fehlerantwort an das Schnittstellengerät (IFD) anlegen, sondern stattdessen den Befehl an den jeweiligen Empfänger oder die jeweilige delegierte Anwendung weiterleiten. Zum Durchführen einer Delegierung ruft der Delegator das Delegiertenprimitivum auf. Das Delegiertenprimitivum ist eine vom Mehranwendungsbetriebssystem erkannte Subroutine, die ausgeführt wird, wenn das Betriebssystem die Delegierungsanweisung interpretiert. Primitiva können als Teil des Betriebssystems selbst gespeichert werden, wobei sie beim Installieren des Betriebssystems als separate Routine geladen werden. Primitiva sind vorzugsweise in ausführbarer Sprache geschrieben, so dass sie schnell ausgeführt werden können, sie könnten aber auch in einer höheren Sprache geschrieben sein. Wenn ein Delegierungsbefehl ausgeführt wird, wird die Ausführung der delegierenden Anwendung angehalten und stattdessen die delegierte Anwendung ausgeführt. Die delegierte Anwendung generiert dann ihren eigenen Datenspeicherraum gemäß der AAM-Architektur. Die im öffentlichen Speicherraum der ersten Anwendung (im RAM gespeichert) gespeicherten Daten werden an den öffentlichen Speicherraum der zweiten Anwendung gesendet (der physikalisch der gleiche Speicher sein könnte, aber für jede Anwendung separat alloziert ist), so dass Daten zwischen den Anwendungen übertragen werden können. Der dynamische Speicherraum wird ebenfalls gemeinsam genutzt, obwohl Daten in einen Stack für den Delegator gespeichert werden und die anderen Teile initialisiert werden, bevor die delegierte Anwendung ausgeführt wird, weil die dynamischen Daten geheim sind.
  • In den meisten Fällen verarbeitet die delegierte Anwendung den Befehl genau so, als wäre der Befehl direkt von einem Schnittstellengerät gekommen. Wenn die delegierte Anwendung die Verarbeitung des Befehls abgeschlossen hat und eine Anwort in das allozierte öffentliche Speichersegment geschrieben hat, wird sie wie üblich beendet. Der Delegator nimmt dann die Ausführung an der Anweisungsadresse wieder auf, die der ausgeführten Anweisung folgt, die das Delegiertenprimitivum aufrief. Die bzw. auf die von der delegierten Anwendung generierte Antwort wird vom allozierten öffentlichen Speicherraum abgerufen oder zugegriffen. Die Delegatoranwendung kann wiederum einfach beendet werden, wodurch sie die Antwort zum Schnittstellengerät sendet, oder sie kann vor dem Beenden weiteres Verarbeiten durchführen.
  • Ein weiteres Beispiel einer Delegationsoperation tritt auf, wenn zwei Anwendungen Daten gemeinsam nutzen müssen. Wenn eine Anwendung A beim Verarbeiten eines Befehls B immer eine Dateneinheit N zurücksendet, dann kann eine andere Anwendung, die auch immer Dateneinheit N als Reaktion auf einen Befehl zurücksendet, die Funktion B an Anwendung A delegieren, um die Notwendigkeit für in der Chipkarte gespeicherte doppelte Codes zu verringern. Wenn beispielsweise eine PIN geprüft werden muss, bevor eine Anwendung ausgeführt wird, kann eine in der Karte gespeicherte Anwendung das „PIN-Funktion aufrufen" an eine PIN-Anwendung delegieren, die eine gespeicherte Universal-PIN für die Karte zurücksendet.
  • Vorzugsweise beginnt immer dann eine neue Sitzung, wenn das Schnittstellengerät (IFD), z.B. ein Terminal, eine Anwendung erfolgreich auswählt, selbst wenn die Anwendung schon vorher während der Transaktion ausgewählt wurde. Wenn ein Kartenbenutzer z.B. zu einem Terminal geht und zwanzig Dollar elektronisches Geld unter Verwendung einer Geldbörsenanwendung überweist, eine Kredit-/Debitanwendung mit dreißig Dollar belastet und dann wieder zehn Dollar unter Verwendung der Geldbörsenanwendung überweist, haben drei separate Sitzungen stattgefunden, obwohl während der gesamten Transaktion nur zwei Anwendungen benutzt wurden. Jedesmal, wenn eine Anwendung ein Task oder eine Funktion an eine andere Anwendung delegiert, behandelt die delegierte Anwendung die Delegierfunktion, als ob die Schnittstellengeräte die Anwendung zum Durchführen des Tasks oder der Funktion ausgewählt hätten. Das Durchführen einer Delegierungsfunktion wie unten beschrieben hat aber eine andere Wirkung auf Sitzungsdaten.
  • Die folgenden Beispiele helfen erläutern, wann die Sitzungsdaten initialisiert werden (d.h. gelöscht) und wann sie zur Verwendung in weiteren Operationen gespeichert werden. Wenn Anwendung A von einem Schnittstellengerät ausgewählt wird und vom Terminal Befehle X, Y und Z erhält, kann Anwendung A alle drei Befehle an Anwendung B delegieren. Beispielsweise können Delegierungen als Reaktion auf Delegierungsbefehle im Programmcode stattfinden. Bei beiden Anwendungen A und B werden die Sitzungs- und Stackdaten in ihren jeweiligen dynamischen Segmenten initialisiert (genullt), wenn sie Befehl X erhalten, aber der Stack wird nicht initialisiert, wenn sie die nachfolgenden Befehle Y und Z erhalten.
  • In einem zweiten Beispiel ist Anwendung A ausgewählt und erhält Befehle X, Y und Z vom Terminal. Anwendung A verarbeitet X selbst, delegiert aber Y und Z an Anwendung B. Die Sitzungs- und Stackdaten von Anwendung A werden initialisiert, wenn sie X erhält, aber nicht, wenn sie die nachfolgenden Befehle Y und Z erhält. Die Sitzungs- und Stackdaten von Anwendung B werden initialisiert, wenn sie Y erhält, aber nicht Z.
  • Ein Beispiel für die Verwendung von Sitzungsdaten ist das Unterstützen der Verwendung einer Sitzungs-PIN (PIN: persönliche Identifikationsnummer). Die Anwendung könnte einen Byte von Sitzungsdaten zum Unterstützen des PIN-Erhalt-Flag reservieren. Nach Erhalt des PIN-Prüfbefehls könnte die ausgewählte delegierte Anwendung das Flag wie folgt aktualisieren: wenn der PIN-Befehl erhalten wurde und die eingegebene PIN gleich der gespeicherten PIN ist, dann setzt sie die Sitzungsdaten DB[0] auf 1. Wenn nicht, prüft die Anwendung, ob das PIN-Flag bereits gesetzt ist, indem sie den Wert in DB[0] prüft. In beiden der obigen Fälle verarbeitet die Anwendung den Rest der Befehle in der Sitzung, weil die PIN verifiziert wurde. Wenn keiner der Fälle wahr ist, dann verarbeitet die Anwendung den Befehl nicht, weil die PIN nicht richtig ist. Die PIN-Prüffunktion könnte eine von der ausgewählten Anwendung an eine PIN-Prüfanwendung delegierte Funktion sein.
  • Das öffentliche Segment 105 wird für zwischen einem Schnittstellengerät und einer Anwendung übertragene Befehls- und Antwortdaten verwendet. Während eines Delegierungsbefehls enthält das öffentliche Segment die zwischen zwei Anwendungen übertragenen Daten, den Delegator (die die Delegierung einleitende Anwendung) und die delegierte Anwendung (die Anwendung, die die delegierte Funktion durchführt). Erforderlichenfalls kann eine Anwendung das öffentliche Segment auch als weiteren temporären Arbeitsspeicherbereich benutzen. Die öffentlichen Daten werden mit Offsets registriert, die im Register PB 113 als Startadresse bis Register PT 115 als Endadresse gespeichert werden. Register PB 113 und Register PT 115 sind für die Dauer eines vom Schnittstellengerät oder Delegator eingeleiteten Befehl-Antwort-Paares fest. Öffentliche Daten können in ein Terminal eingegebene oder von einem Terminal zugeführte Daten sein, wie ein Transaktionsbetrag, Verkäuferidentifikationsdaten, Terminalinformationen, Übertragungsformat oder sonstige Daten, die von einer auf der Chipkarte befindlichen Anwendung benötigt oder benutzt werden. Öffentliche Daten können auch Daten aufweisen, die an ein Schnittstellengerät oder eine andere Anwendung zu senden sind, wie z.B. ein elektronischer Dollarwert, Übertragungsformatdaten für Kartenbenutzerinformationen oder sonstige Daten, die vom Terminal oder einer anderen delegierten Anwendung benötigt oder verwendet werden.
  • Das Mehranwendungsbetriebssystem gewährleistet, dass die im öffentlichen Segment gespeicherten Daten nur der Anwendung bekannt bleiben, bis die Anwendung verlassen wird oder delegiert. Vorzugsweise werden die Daten im öffentlichen Segment dann anderen Entitäten wie folgt verfügbar gemacht: (1) wenn die Anwendung delegiert, wird das ganze öffentliche Segment für die delegierte Anwendung verfügbar; (2) wenn die Anwendung beendet wird und selbst von einer anderen delegiert wird, dann wird das ganze öffentliche Segment für den Delegator verfügbar; oder (3) wenn die Anwendung beendet wird und nicht selbst delegiert wird, dann wird ein Teil des öffentlichen Segments, der die E/A-Antwortparameter und -daten enthält, für das Schnittstellengerät verfügbar gemacht.
  • Eine Anwendung kann während der Ausführung der Anwendung geheime Daten in das öffentliche Speichersegment schreiben, die Anwendung muss aber sicherstellen, dass sie den geheimen Teil des öffentlichen Segments überschreibt, bevor sie delegiert oder beendet wird. Wenn die Anwendung abnormal endet (abstürzt), dann überschreibt das Betriebssystem auf der Chipkarte vorzugsweise automatisch alle Daten im öffentlichen Segment, so dass keine unerwünschten Entitäten Zugriff auf die geheimen Daten haben können. Wenn die MULTOS-Trägervorrichtung (MCD: MULTOS Carrier Device) rückgesetzt wird, überschreibt das Betriebssystem automatisch Daten im öffentlichen Segment, so dass keine geheimen Daten aufgedeckt werden. Ein Teil des öffentlichen Speichersegments wird auch als Kommunikationspuffer verwendet. Die E/A-Protokolldaten und -parameter werden vorzugsweise am oberen Ende des öffentlichen Speicherraums gespeichert. In einer weiteren bevorzugten Ausgestaltung sind die obersten siebzehn Bytes für das Kommunikationsprotokoll zwischen dem Schnittstellengerät und der Chipkartenanwendung reserviert. Es können aber auch zusätzliche oder weniger Bytes verwendet werden, je nach der/dem genutzten jeweiligen Anwendung und Betriebssystem.
  • Die zwischen den Speichersegmenten in 1 gezeigten Zwischenräume variieren je nach der/den spezifischen Anwendung und Befehlen, die verarbeitet werden. Zwischen den Speichersegmenten könnte es auch keinen Speicherraum geben, so dass die Speichersegmente zusammenhängend sind.
  • 2 zeigt eine erweiterte Darstellung der AAM-implementierten Architektur. Datenspeicherraum 201 weist die drei Segmente Static, Public und Dynamic auf, wie bereits beschrieben. Codespeicherraum 203 enthält die Programmanweisungen für eine in der Chipkarte gespeicherte Anwendung. Die Anwendungsanweisungen werden vorzugsweise in einer ausführbaren Form gespeichert, die vom residenten Betriebssystem interpretiert werden kann, sie können aber auch in maschinenausführbarer Form gespeichert werden. Anweisung 205 ist an einer Stelle im Codespeicherraum 203 gespeichert. Zusätzliche Anweisungen sind an anderen Stellen von Speicherraum 203 gespeichert. Zwei zusätzliche Register 207 und 209 werden in der AAM-Architektur verwendet. Ein Codezeiger-(CP)-Register 207 zeigt die jeweilige als nächstes auszuführende Codeanweisung an. In der Figur zeigt das Register, z.B. durch ein Offset oder einen Zeiger, an, dass Anweisung 205 als nächstes ausgeführt werden wird. Bedingungssteuerregister (CCR: Condition Control Register) 209 enthält acht Bit, von denen vier zur Verwendung durch die individuelle Anwendung sind und vier in Abhängigkeit von den Ergebnissen der Ausführung einer Anweisung gesetzt oder gelöscht werden. Diese Bedingungscodes können von bedingten Anweisungen wie Verzweigung, Aufruf oder Sprung verwendet werden. Die Bedingungscodes können ein Übertragbit, ein Überlaufbit, ein negatives Bit und ein Nullbit aufweisen.
  • Alle Adress- und Steuerregister werden vor dem Ausführen der ausgewählten oder delegierten Anwendung auf definierte Werte gesetzt. Die Werte werden entweder dann gesetzt, wenn die Anwendung erst in die Karte geladen wird und die Größe des Codes und der nichtflüchtigen Daten festgestellt werden kann, oder in dem Moment, wenn die Anwendung die Steuerung an die Anwendung übergibt. Wenn die Anwendung geladen ist, ist SB auf null gesetzt und ST ist gleich der Zahl von Bytes in der Static-Datenbank der Anwendung. Die anderen Adressregister werden initialisiert, wenn die Anwendung die Steuerung erhält. Zu Beginn der Ausführung der Anwendung wird CP 207 genullt und alle acht Bits in CCR 209 werden gelöscht.
  • Zwischen dem Schnittstellengerät und einer Anwendung ist ein Kommunikationsschnittstellenmechanismus vorhanden, der die Verwendung des öffentlichen Datensegments als Kommunikationspuffer für Befehl-Antwort-Parameter beinhaltet. Ein Befehl-Antwort-Parameter bedeutet, dass einer Anwendung ein durchzuführender Befehl erteilt wird und sie eine Antwort an die den Befehl ausstellende Entität sendet. Anwendungen stehen mit einem Schnittstellengerät (IFD) in Wechselwirkung, indem sie über die IFD-Anwendungsschnittstelle Befehle erhalten, sie verarbeiten und Antworten zurücksenden. Wenn eine Anwendung die Ausführung eines Befehls abgeschlossen hat, legt die Anwendung die Antwort an PB[0] beginnend in das öffentliche Segment, das vom Schnittstellengerät gelesen werden kann, und setzt die richtigen Schnittstellenparameter im reservierten öffentlichen Raum relativ zu PT[0].
  • Eine Anwendung kann zwar direkt von einem Schnittstellengerät aufgerufen werden und eine Antwort direkt an ein Schnittstellengerät zurücksenden, sie kann aber auch, falls angebracht, eine Anforderung an eine andere Anwendung delegieren. Die anschließend aufgerufene Anwendung verarbeitet dann den Befehl im Auftrag der ersten Anwendung. Die Delegierung kann direkt als Reaktion auf einen erhaltenen Befehl erfolgen, wobei der Delegator als Steuerung zum Delegieren von Befehlen oder Unterbefehlen an andere zutreffende Anwendungen agiert. Alternativ kann der delegierte Befehl in einen Anwendungscode eingebettet sein, der die Steuerung des Prozessors delegiert, wenn die erste Anwendung während ihrer Ausführung mit einer weiteren Anwendung in Wechselwirkung stehen muss, wie z.B. Aktualisieren von Vielfliegermeilen oder Verifizierung einer PIN.
  • 3 zeigt ein Ablaufdiagramm der Schritte, die ausgeführt werden, wenn eine Delegierungsanforderung ausgeführt wird. Schritt 301 setzt den delegator_application_ID (Delegator-ID) genannten Parameter, so dass er mit der selected_file.application_ID (ausgewählte ID) gleich ist. Die ausgewählte ID zeigt die aktuelle Anwendung an, die ausgewählt ist und die aktuell ausgeführt wird. Die Delegator-ID zeigt die Anwendung an, die eine Funktion an eine andere in der Chipkarte gespeicherte delegierte Anwendung delegiert. Schritt 303 fügt die Delegator-ID dann oben zum delegate_ID_stack (Delegierstack) hinzu (speichert sie). Die im Dynamic-Teil des allozierten Speichers referenzierten Daten werden gespeichert, so dass die aktuelle Anwendung ihre Ausführung abschließen kann, nachdem die delegierte Funktion abgeschlossen worden ist. Daten, die mit der delegierten Anwendung gemeinsam genutzt werden sollen, werden im Public-Teil des allozierten Speichers referenziert. Der delegierte Stack wird vorzugsweise außerhalb des AAM-Speicherraums einer Anwendung gespeichert und verfolgt, welche Anwendungen Funktionen delegiert haben. Jede Anwendung wird angehalten, wenn sie eine Funktion delegiert, damit der Delegierstack auf Last-In-First-Out-(LIFO-)Weise funktionieren kann, so dass, wenn eine Anzahl von Anwendungen auf Grund von Delegierungsanforderungen angehalten wurden, die richtige Anwendung in der richtigen Reihenfolge gestartet wird. Der Delegiertenstack behält so im Auge, welche Anwendung der letzte Delegator war, wenn mehrere geschichtete Delegierungsfunktionen durchgeführt werden. Der Delegierstack arbeitet zwar vorzugsweise nach dem LIFO-Verfahren, zutreffenderweise könnten aber auch andere Stacksysteme verwendet werden.
  • Schritt 305 setzt dann die ausgewählte ID auf den Wert delegate_request.delegate_application_id (Delegierungs-ID-Wert). Dieser Schritt wählt die Anwendung aus, die zum Durchführen der delegierten Funktion oder Funktionen aufgerufen werden wird. Die Identitäten der delegierten Anwendung können von der Delegatoranwendung spezifisch aufgerufen werden oder eine spezielle Funktion kann mit einer Anwendung in einer Lookup-Tabelle zusammengepasst werden. Zum Beispiel kann eine PIN-Abstimmungsoperation an verschiedene Anwendungen delegiert werden, je nachdem, welche Anwendungen auf der Karte vorhanden sind. Schritt 307 setzt dann den Anwendungsbefehlsparameter application_command auf den im Parameter delegate_request.application gespeicherten Wert. Dieser Schritt spezifiziert den an die Delegierungsanwendung zu delegierenden Befehl. Anwendungen haben meist die Fähigkeit, viele verschiedene Befehle zu verarbeiten. Alternativ könnte die gesamte Anwendung zum Durchführen von einer Funktion oder mehreren Funktionen ausgeführt werden. Die Delegatoranwendung kann wählen, welchen Befehl sie an eine andere Anwendung delegiert. Schritt 309 sendet dann den Anwendungsbefehl application_demand an das AAM-Betriebssystem zur Ausführung durch die Delegiertenanwendung. Die Delegatoranwendung wird dann angehalten (oder unterbrochen). Alle Daten, die zwischen Anwendungen übertragen werden müssen, werden über den öffentlichen Speicherraum transferiert.
  • 4 ist ein Ablaufdiagramm der Schritte zum Durchführen eines Befehls zur „Rückdelegierungssteuerung" durch die Delegiertenanwendung. Dieser Befehl wird vom Betriebssystem ausgeführt, wenn eine delegierte Anwendung ihre delegierte Funktion abgeschlossen hat. Schritt 401 erhält Anwendungsantworten application_responses aus dem öffentlichen Speicherraum der delegierten AAM. Die Antwortdaten werden in das öffentliche Speichersegment der Delegierten-AAM geleitet. Schritt 403 setzt dann die Antwortstatusvariable delegate_response.status auf eine Erfolgsbedingung. Das bedeutet, dass eine Delegierungsoperation erfolgreich abgeschlossen wurde. Schritt 405 setzt den Parameter delegate_response.application_responses auf die Anwendungsantwortwerte (application_responses), die im öffentlichen Segment der Delegiertenanwendung gespeichert waren.
  • Schritt 407 setzt den Parameter delegate_response.delegate_application_id auf selected_file.application_id (die Delegiertenanwendungs-ID). Schritt 409 holt die oberste delegate_application_id (i.e. liest die zuletzt im Stack gespeicherten Daten) von delegate_id_stack. Diese Information zeigt die Identität der Delegatoranwendung für den Befehl an, der gerade delegiert und von der delegierten Anwendung abgeschlossen wurde. Schritt 411 setzt den Wert select_file.application_id auf den Wert delegator_application_id. Das wählt die Delegatoranwendung aus, die vom Delegierten-ID-Stack als die aktuelle Anwendung identifiziert wurde, die wieder abzulaufen beginnen wird. Die dynamischen Daten für die Delegatoranwendung werden für die Delegatoranwendung aus ihrer gespeicherten Stelle abgerufen, so dass die Anwendung mit allen Daten intakt dort weiter ausgeführt werden kann, wo sie aufhörte, aber auch die Antwortinformation von der delegierten Funktion haben wird. In Schritt 413 werden die Delegierungsantwortdaten delegate_response zur weiteren Verarbeitung an die aktuelle Anwendung gesendet. Die Antwortdaten werden durch den öffentlichen Datenraum geleitet, der dieselbe physikalische RAM-Speicherstelle sein könnte, weil alle Anwendungen den physikalischen flüchtigen Speicherraum gemeinsam nutzen.
  • 5 zeigt ein Ablaufdiagramm der Schritte, die an Anfragen über eine Delegator-ID beteiligt sind, wenn eine delegierte Anwendung einen Delegierungsbefehl erhält. Die delegierte Anwendung muss eventuell die Identität des Delegators kennen, weil sie eventuell Operationen für verschiedene Delegatoranwendungen verschieden durchführt. Beispielsweise muss ein Treueprogramm einer Fluggesellschaft eventuell wissen, ob die Vielfliegerbonuszuteilung auf den tatsächlichen verarbeiteten Dollar-Beträgen oder einer Pauschalbetragszuteilung für eine andere Tätigkeit wie das Durchführen einer Rechnungsbezahlungsoperation basieren wird. Diese Information könnte als eine Variable an die delegierte Anwendung übertragen werden oder sie könnte mithilfe einer Anfrage ermittelt werden. Die Delegatoranfrageoperation könnte als ein Primitivum implementiert sein, wie bereits beschrieben.
  • Schritt 501 erhält die Aufforderung delegator_id_enq_request vom AAM-Betriebssystem. Die Aufforderung dient zum Feststellen der Identität des Delegators. Schritt 503 prüft, ob der Delegierten-ID-Stack delegate_id_stack leer ist. Wenn der Stack leer ist, dann haben keine Delegierungsoperationen stattgefunden und es wurden keine Anwendungen angehalten. Schritt 511 setzt daher den Zustandsparameter delegator_id_enq_response.status auf einen Fehleranzeiger. Schritt 513 setzt dann den Wert von delegator_is_enq_request.error_cause (Anforderung der Fehlerursache) auf einen Wert, der „keine Delegatoranwendung" andeutet. Es gibt keine Delegatoranwendung. Der Prozess fährt dann mit Schritt 509 fort.
  • Wenn der Delegierten-ID-Stack nicht leer ist, dann hat wenigstens eine Delegation stattgefunden. In diesem Fall setzt Schritt 505 den Zustandsparameter delegator_id_enq_response.status auf einen Wert, der „Erfolg" anzeigt. Schritt 507 setzt dann den Parameter delegator_id_enq_response.delegator_application_id auf den in delegate_id_stack.delegator_application_id gespeicherten Wert. Dies setzt die Anfrageantwort so, dass sie die oberste Delegatoranwendungskennung des Stacks anzeigt. Wie oben erläutert, zeigen die gespeicherten Daten am oberen Ende des Stacks die Delegatoranwendung an, die zuletzt eine Delegierungsfunktion aufgerufen hat. Schritt 509 sendet dann die Antwort auf die Delegator-ID-Anfrage delegator_id_enq_response an das AAM-Betriebssystem zurück, das die Information an die die Information anfordernde Anwendung oder IFD-Entität liefert.
  • 6 zeigt ein Beispiel für ein Blockdiagramm einer gedruckten Schaltung, die sich auf einem Chipkartenchip befindet, der in Verbindung mit der Erfindung verwendet werden kann. Der IC-Chip befindet sich auf einem Chip auf der Karte. Der IC-Chip weist vorzugsweise eine Zentraleinheit 601, einen RAM 603, einen EEPROM 605, einen ROM 607, einen Timer 609, Steuerlogik 611, Ein-/Ausgabeports 613 und eine Sicherheitsschaltungsanordnung 615 auf, die durch einen konventionellen Datenbus 617 oder ein anderes konventionelles Mittel miteinander verbunden sind.
  • Steuerlogik 611 in der Smart-Karte stellt ausreichendes Sequentialisieren und Schalten zum Abwickeln von Lese-Schreib-Zugang zum Kartenspeicher durch die Eingabe-/Ausgabeports 612 bereit. CPU 601 in Verbindung mit Steuerlogik 611 kann viele verschiedene Funktionen durchführen, darunter die Durchführung von Rechnungen, Zugriff auf Speicherstellen, Modifizieren von Speicherinhalten und Verwalten von Eingabe-/Ausgabeports. Einige Chipkarten können auch einen Coprozessor zum Abwickeln komplexer Rechenvorgänge wie kryptografischen Algorithmen aufweisen. Eingabe-/Ausgabeports 613 werden für die Kommunikation zwischen der Karte und einem Schnittstellengerät (IFD) verwendet, das Informationen zu und von der Karte überträgt. Timer 609 (der einen Taktimpuls erzeugt und/oder anlegt) steuert die Steuerlogik 611, die CPU 601 und andere ein Taktsignal benötigende Komponenten durch die Sequenz von Schritten an, die Funktionen wie Speicherzugang, Speicherlesen und/oder -schreiben, Verarbeiten und Datenkommunikation ausrichten. Sicherheitsschaltungsanordnung 615 (die fakultativ ist) weist vorzugsweise Schmelzsicherungen auf, die die Eingabe-/Ausgabeleitungen mit internen Schaltungsanordnungen verbinden, wie es zum Testen während der Herstellung erforderlich ist, die aber nach Beendigung der Prüfungen zerstört werden, um späteren Zugang zu verhindern. Der statische Speicherraum wird vorzugsweise auf Speicherstellen im EEPROM 605 abgebildet, der nichtflüchtig ist. Der dynamische Speicherraum wird vorzugsweise auf RAM 603 abgebildet, der ein flüchtiger Speicher mit Schnellzugriff ist. Der öffentliche Speicherraum wird vorzugsweise ebenfalls auf RAM 603 abgebildet, der ein flüchtiger Speicher ist. Die dynamischen Daten und die öffentlichen Daten werden in verschiedenen Teilen von RAM 603 gespeichert, wobei RAM als ein bevorzugter nichtflüchtiger Speicher identifiziert ist und EEPROM als ein bevorzugter flüchtiger Speicher identifiziert ist. Andere Speichertypen könnten ebenfalls mit denselben charakteristischen Eigenschaften verwendet werden.
  • 7A, 7B und 7C illustrieren ein Beispiel für eine Delegierungsfunktion, die durchgeführt wird, um mehrere Anwendungen in einer Chipkarte zu verarbeiten. 7A zeigt eine erste Anwendung, die ausgeführt wird, wie durch einen doppelt umzirkelten Kreis 701 bezeichnet wird. An einem Punkt während der Ausführung der ersten Anwendung wird eine Delegierungsfunktion 702 zum Delegieren einer Operation an die zweite Anwendung aufgerufen, die von Kreis 703 angezeigt wird. In 7A wird auch ein leerer Delegator-ID-Stack 705 gezeigt. Da der Stack leer ist, gibt es keine damit assoziierten Daten und er wird nur zu veranschaulichenden Zwecken gezeigt.
  • Das Mehranwendungsbetriebssystem erhält den Delegierungsbefehl und unterbricht die Ausführung der ersten Anwendung 701 und übergibt die Steuerung der integrierten Schaltung an Anwendung 703, wie in 7B gezeigt. Die Ausführung der zweiten Anwendung 703 ist mit einem doppelt umzirkelten Kreis dargestellt. Der Begriff „übergibt die Steuerung" bedeutet, dass der Mikroprozessor und andere Schaltungen auf der Karte die Anweisungen verarbeiten und Speicherraum für die Anwendung, die delegiert wird, allozieren werden. Wenn der Delegierungsbefehl verarbeitet ist, wird die Delegator-ID 707 dem Stack 705 am oberen Ende hinzugefügt. Der Delegator-ID-Stack wird auf LIFO-Weise betrieben. In 7B wird auch eine dritte auf der Karte befindliche Anwendung 709 gezeigt. An einem Punkt während der Ausführung der zweiten Anwendung wird eine Delegierungsfunktion 711 zum Delegieren der Operation an die dritte Anwendung aufgerufen.
  • Das Mehranwendungsbetriebssystem erhält den in 7B gezeigten Delegierungsbefehl 711, unterbricht die Ausführung der zweiten Anwendung 703 und übergibt die Steuerung der integrierten Schaltung an die dritte Anwendung 709, wie in 7C gezeigt. Wenn der Delegierungsbefehl verarbeitet ist, wird die Delegator-ID 713 der zweiten Anwendung dem oberen Ende des Delegator-ID-Stacks 705 hinzugefügt. Die Delegator-ID 707 der ersten Anwendung, deren Ausführung noch unterbrochen ist, wird in Übereinstimmung mit einer LIFO-Stackverwaltung im Stack nach unten geschoben. Wenn daher die dritte Anwendung ihre Ausführung beendet hat, wird die Delegator-ID am oberen Ende des Stacks vom Stack geholt und entfernt, um anzuzeigen, dass die Ausführung der zweiten Anwendung zuerst wiederaufzunehmen ist. Die Delegator-ID 707 von der ersten Anwendung ist dann zuoberst auf dem Stack, so dass, wenn die Ausführung der zweiten Anwendung beendet ist, die erste Anwendung ihre Ausführung wiederaufnimmt.
  • Zusätzliche Anwendungen können auf ähnliche Weise vom Delegator-ID-Stack verwaltet werden. Indem die Ausführung der Anwendungen unterbrochen wird, wenn ein Delegierungsbefehl verarbeitet wird, und die Delegationsreihenfolge im Auge behalten wird, können die Sicherheit und Integrität der Daten für jede einzelne Anwendung aufrecht erhalten werden, was wichtig ist, weil Chipkarten für Kartenbenutzer persönliche Daten für Anwendungen speichern, wie Kontonummern, Sozialversicherungsnummer, Adresse und andere Privatinformationen.

Claims (18)

  1. Chipkarte, die Folgendes umfasst: einen Mikroprozesor, einen mit dem genannten Mikroprozessor verbundenen flüchtigen Speicher; einen mit dem genannten Mikroprozessor verbundenen nichtflüchtigen Speicher und eine Mehrzahl von in dem genannten nichtflüchtigen Speicher gespeicherten Anwendungen, wobei der genannte Mikroprozessor beim Ausführen jeder genannten Anwendung für jede genannte laufende Anwendung einen assoziierten Datenspeicherraum alloziert, der wenigstens ein flüchtiges Speichersegment zum Referenzieren von temporären Daten und ein nichtflüchtiges Speichersegment zum Referenzieren statischer Daten umfasst; und wobei jedes genannte flüchtige Speichersegment in wenigstens zwei Regionen unterteilt ist, einschließlich einer öffentlichen Region und einer dynamischen Region, wobei jede genannte öffentliche Region zum Austauschen von Daten zwischen einer laufenden Anwendung und einer Schnittstelle und zum Austauschen von Daten zwischen Anwendungen verwendbar ist und wobei jede genannte dynamische Region nur von der spezifischen laufenden Anwendung gelesen oder beschrieben werden kann; und die ferner ein Mittel zum Delegieren der Leistung einer Funktion von einer ersten laufenden Anwendung an eine zweite laufende Anwendung umfasst, indem ein Delegierungsbefehl ausgeführt wird und Daten aus der öffentlichen Region der ersten Anwendung zur öffentlichen Region der zweiten Anwendung gesendet werden.
  2. Chipkarte nach Anspruch 1, bei der die genannte dynamische Region zum Referenzieren von temporären Daten verwendet wird, die während der Ausführung einer Anwendung genutzt werden.
  3. Chipkarte nach Anspruch 1, die ferner wenigstens ein mit dem genannten Mikroprozessor verbundenes Register umfasst, das zum Ermitteln der Ausgangsorte jedes der genannten Segmente verwendet wird.
  4. Chipkarte nach Anspruch 3, die ferner wenigstens ein mit dem genannten Mikroprozessor verbundenes Register umfasst, das zum Ermitteln der obersten Orte jedes der genannten Segmente verwendet wird.
  5. Chipkarte nach Anspruch 4, die ferner wenigstens ein mit dem genannten Mikroprozessor verbundenes Register umfasst, das als lokaler dynamischer Zeiger verwendet wird.
  6. Chipkarte nach Anspruch 1, bei der jede genannte Anwendung eine Mehrzahl von Programmanweisungen umfasst und bei der wenigstens eine der genannten Programmanweisungen, wenn sie ausgeführt wird, Zugriff auf den von dem genannten flüchtigen Speichersegment referenzierten Speicher verursacht.
  7. Chipkarte nach Anspruch 1, bei der das genannte flüchtige Speichersegment RAM referenziert und das genannte nichtflüchtige Speichersegment EEPROM referenziert.
  8. Chipkarte nach Anspruch 1, die ferner Mittel aufweist zum Speichern eines mit der genannten ersten Anwendung assoziierten Kennzeichners in einem Datenstapel.
  9. Chipkarte nach Anspruch 8, die ferner Mittel aufweist zum Abfragen des genannten mit der genannten ersten Anwendung assoziierten Kennzeichners.
  10. Chipkarte nach Anspruch 1, die ferner Mittel aufweist zum Delegieren der Leistung einer Funktion von der genannten zweiten Anwendung an eine dritte in der genannten Chipkarte gespeicherten Anwendung.
  11. Verfahren zum Verarbeiten einer Mehrzahl von in einem Speicher einer integrierten Schaltung gespeicherten-Anwendungen, das die folgenden Schritte umfasst: Auswählen einer ersten Anwendung zur Ausführung; Allozieren eines Datenraumes für die genannte erste Anwendung, der wenigstens zwei Speichersegmente aufweist, die ein erstes flüchtiges Speichersegment zum Referenzieren temporärer Daten und ein erstes nichtflüchtiges Speichersegment zum Referenzieren statischer Daten umfasst, wobei das genannte erste flüchtige Speichersegment eine öffentliche Region und eine dynamische Region aufweist, wobei die öffentliche Region zum Austauschen von Daten zwischen einer laufenden Anwendung und einer Schnittstelle und zum Austauschen von Daten zwischen Anwendungen benutzbar ist und die dynamische Region andere temporäre Daten referenziert, die nur von den Anwendungen gelesen oder geschrieben werden können; Ausführen der genannten ersten Anwendung; Unterbrechen der Ausführung der genannten ersten Anwendung durch Ausführen eines Delegierungsbefehls in der ersten Anwendung; Sichern von vom genannten ersten flüchtigen Speichersegment referenzierten Daten; Allozieren eines Datenraumes für eine zweite Anwendung, der wenigstens zwei Speichersegmente aufweist, die ein zweites flüchtiges Speichersegment zum Referenzieren temporärer Daten und ein zweites nichtflüchtiges Speichersegment zum Referenzieren statischer Daten umfasst, wobei das zweite flüchtige Speichersegment eine öffentliche Region und eine dynamische Region umfasst; Senden von Daten von der öffentlichen Region der ersten Anwendung zu der öffentlichen Region der zweiten Anwendung; Ausführen der genannten zweiten Anwendung; Nutzen der genannten gesicherten Daten vom genannten flüchtigen Speichersegment zum Ausführen der genannten ersten Anwendung und Vervollständigen der genannten Ausführung der genannten ersten Anwendung.
  12. Verfahren nach Anspruch 11, bei dem die Identität der genannten ersten Anwendung während des genannten Delegierungsschrittes in einem Datenstapel gespeichert wird.
  13. Verfahren nach Anspruch 12, bei dem auf die genannte Vervollständigung der genannten zweiten Anwendung folgend auf den genannten Datenstapel zugegriffen wird.
  14. Verfahren nach Anspruch 13, das ferner den Schritt des Abfragens der Identität der genannten ersten Anwendung durch Zugriff auf den genannten Delegatorstapel aufweist.
  15. Verfahren nach Anspruch 11, bei dem von der genannten dynamischen Region in dem genannten ersten flüchtigen Speicher referenzierte Daten während der Ausführung der genannten ersten Anwendung genutzt werden.
  16. Verfahren nach Anspruch 11, bei dem die von der dynamischen Region der zweiten Anwendung referenzierten genannten Daten während der Ausführung der genannten zweiten Anwendung genutzt werden.
  17. Verfahren nach Anspruch 11, das ferner den Schritt des Delegierens der Benutzung des genannten Mikroprozessors von der genannten zweiten Anwendung an die genannte dritte Anwendung, die in der genannten Chipkarte gespeichert wird, aufweist.
  18. Verfahren nach Anspruch 17, bei dem ein dritter Datenraum für die genannte dritte Anwendung alloziert wird, der ein flüchtiges Speichersegment zum Referenzieren von temporären Daten und ein nichtflüchtiges Speichersegment zum Referenzieren von statischen Daten aufweist, wobei das genannte flüchtige Segment der genannten dritten Anwendung einen öffentlichen und einen dynamischen Teil aufweist.
DE69835879T 1997-05-15 1998-05-14 Multifunktionschipkarte mit delegierungsmerkmal Expired - Lifetime DE69835879T2 (de)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US4651497P 1997-05-15 1997-05-15
US4654397P 1997-05-15 1997-05-15
US46543P 1997-05-15
US46514P 1997-05-15
US09/064,915 US6220510B1 (en) 1997-05-15 1998-04-23 Multi-application IC card with delegation feature
US64915 1998-04-23
PCT/GB1998/001390 WO1998052159A2 (en) 1997-05-15 1998-05-14 Multi-application ic card with delegation feature

Publications (2)

Publication Number Publication Date
DE69835879D1 DE69835879D1 (de) 2006-10-26
DE69835879T2 true DE69835879T2 (de) 2007-04-05

Family

ID=27366919

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69835879T Expired - Lifetime DE69835879T2 (de) 1997-05-15 1998-05-14 Multifunktionschipkarte mit delegierungsmerkmal

Country Status (6)

Country Link
US (1) US6220510B1 (de)
EP (1) EP0985202B1 (de)
JP (1) JP4181641B2 (de)
AU (1) AU7776898A (de)
DE (1) DE69835879T2 (de)
WO (1) WO1998052159A2 (de)

Families Citing this family (134)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
PT757336E (pt) 1995-08-04 2001-04-30 Belle Gate Invest B V Sistema de intercambio de dados que inclui unidades portateis de processamento de dados
US6385645B1 (en) * 1995-08-04 2002-05-07 Belle Gate Investments B.V. Data exchange system comprising portable data processing units
JP3366808B2 (ja) * 1996-07-18 2003-01-14 株式会社日立製作所 電子財布
EP0917119A3 (de) * 1997-11-12 2001-01-10 Citicorp Development Center, Inc. Verteilte netzwerkbasierte elektronische Geldbörse
CN1322430A (zh) 1998-09-29 2001-11-14 太阳微系统公司 在话音上的数据叠加
FR2784479B1 (fr) * 1998-10-09 2000-11-17 Bull Cp8 Protocole d'echange interne de donnees entre applications d'un objet portatif multi-applications et objet portatif multi-applications correspondant
JP3537680B2 (ja) * 1998-10-22 2004-06-14 富士通株式会社 プロトコル制御用集積回路
FR2785700B1 (fr) * 1998-11-10 2001-01-12 St Microelectronics Sa Procede de gestion d'un circuit electronique
DE19858840A1 (de) * 1998-12-19 2000-06-21 Orga Kartensysteme Gmbh Verfahren zum bidirektionalen Datentransfer zwischen einem Terminal und einer Chipkarte sowie Chipkarte
US6907608B1 (en) * 1999-01-22 2005-06-14 Sun Microsystems, Inc. Techniques for permitting access across a context barrier in a small footprint device using global data structures
US6922835B1 (en) 1999-01-22 2005-07-26 Sun Microsystems, Inc. Techniques for permitting access across a context barrier on a small footprint device using run time environment privileges
US7093122B1 (en) 1999-01-22 2006-08-15 Sun Microsystems, Inc. Techniques for permitting access across a context barrier in a small footprint device using shared object interfaces
US6633984B2 (en) * 1999-01-22 2003-10-14 Sun Microsystems, Inc. Techniques for permitting access across a context barrier on a small footprint device using an entry point object
US6823520B1 (en) 1999-01-22 2004-11-23 Sun Microsystems, Inc. Techniques for implementing security on a small footprint device using a context barrier
US8498898B1 (en) 1999-03-19 2013-07-30 Citicorp Development Center, Inc. System and method for point of use reward determination
US7127605B1 (en) * 1999-05-10 2006-10-24 Axalto, Inc. Secure sharing of application methods on a microcontroller
FI114434B (fi) 1999-05-11 2004-10-15 Nokia Corp Viestintälaitteet
WO2000076239A1 (en) * 1999-06-03 2000-12-14 Nokia Mobile Phones Limited An integrated circuit card for use in a communication terminal
ATE475139T1 (de) * 1999-06-10 2010-08-15 Belle Gate Invest B V Vorrichtung zum speichern unterschiedlicher versionen von datensätzen in getrennten datenbereichen und verfahren zur aktualisierung eines datensatzes in einem speicher
WO2001013293A1 (fr) * 1999-08-12 2001-02-22 Matsushita Electric Industrial Co., Ltd. Systeme de secours pour information electronique
US7124170B1 (en) 1999-08-20 2006-10-17 Intertrust Technologies Corp. Secure processing unit systems and methods
US7889052B2 (en) 2001-07-10 2011-02-15 Xatra Fund Mx, Llc Authorizing payment subsequent to RF transactions
US7239226B2 (en) 2001-07-10 2007-07-03 American Express Travel Related Services Company, Inc. System and method for payment using radio frequency identification in contact and contactless transactions
US7306158B2 (en) * 2001-07-10 2007-12-11 American Express Travel Related Services Company, Inc. Clear contactless card
ATE244422T1 (de) * 1999-10-12 2003-07-15 Autodesk Inc Geographische karten auf einem persönlichen digitalen assistenten (pda) und server
GB9925227D0 (en) 1999-10-25 1999-12-22 Internet Limited Data storage retrieval and access system
US6876991B1 (en) 1999-11-08 2005-04-05 Collaborative Decision Platforms, Llc. System, method and computer program product for a collaborative decision platform
AU1586500A (en) * 1999-12-06 2001-06-12 Sun Microsystems, Inc. Computer arrangement using non-refreshed dram
BR9917574A (pt) 1999-12-07 2002-08-06 Sun Microsystems Inc Meio legìvel por computador com microprocessador para controlar a leitura e computador disposto para se comunicar com tal meio
AU777437B2 (en) * 1999-12-07 2004-10-14 Sun Microsystems, Inc. Secure photo carrying identification device, as well as means and method for authenticating such an identification device
JP3590338B2 (ja) * 1999-12-13 2004-11-17 株式会社東芝 携帯可能電子装置
US8429041B2 (en) 2003-05-09 2013-04-23 American Express Travel Related Services Company, Inc. Systems and methods for managing account information lifecycles
US8543423B2 (en) * 2002-07-16 2013-09-24 American Express Travel Related Services Company, Inc. Method and apparatus for enrolling with multiple transaction environments
US7172112B2 (en) 2000-01-21 2007-02-06 American Express Travel Related Services Company, Inc. Public/private dual card system and method
AU2001243473A1 (en) 2000-03-07 2001-09-17 American Express Travel Related Services Company, Inc. System for facilitating a transaction
US6915277B1 (en) * 2000-05-10 2005-07-05 General Electric Capital Corporation Method for dual credit card system
ATE380376T1 (de) 2000-07-20 2007-12-15 Belle Gate Invest B V Verfahren und system für kommunizierende geräte, und vorrichtungen dafür, mit geschützter datenübertragung
FR2812419B1 (fr) * 2000-07-31 2003-01-17 Cit Alcatel Procede de securisation de l'acces a une carte utilisateur a microprocesseur
US20020065811A1 (en) * 2000-08-18 2002-05-30 International Business Machines Corporation Ensured access to static objects inside a dynamic token memory
US20020044655A1 (en) * 2000-10-18 2002-04-18 Applebaum David C. Information appliance and use of same in distributed productivity environments
US6824064B2 (en) * 2000-12-06 2004-11-30 Mobile-Mind, Inc. Concurrent communication with multiple applications on a smart card
EP1233382A1 (de) * 2001-02-20 2002-08-21 Ellypsis Concept S.A. Elektronische Vorrichtung
US20040015960A1 (en) * 2001-03-16 2004-01-22 Sanjay Wanchoo Method for loading and executing an application in an embedded environment
US7110986B1 (en) * 2001-04-23 2006-09-19 Diebold, Incorporated Automated banking machine system and method
US7650314B1 (en) 2001-05-25 2010-01-19 American Express Travel Related Services Company, Inc. System and method for securing a recurrent billing transaction
US7542942B2 (en) * 2001-07-10 2009-06-02 American Express Travel Related Services Company, Inc. System and method for securing sensitive information during completion of a transaction
JP2002366426A (ja) * 2001-06-11 2002-12-20 Mitsumi Electric Co Ltd プログラム実行装置およびプログラム実行方法
FR2826747B1 (fr) * 2001-07-02 2005-02-25 Gemplus Card Int Procede et dispositif de traitement de donnees pour la personnalisation d'une application sur un dispositif communicant portatif, par exemple une carte a puce
US7303120B2 (en) 2001-07-10 2007-12-04 American Express Travel Related Services Company, Inc. System for biometric security using a FOB
US7503480B2 (en) * 2001-07-10 2009-03-17 American Express Travel Related Services Company, Inc. Method and system for tracking user performance
US8001054B1 (en) 2001-07-10 2011-08-16 American Express Travel Related Services Company, Inc. System and method for generating an unpredictable number using a seeded algorithm
US8635131B1 (en) 2001-07-10 2014-01-21 American Express Travel Related Services Company, Inc. System and method for managing a transaction protocol
US7762457B2 (en) 2001-07-10 2010-07-27 American Express Travel Related Services Company, Inc. System and method for dynamic fob synchronization and personalization
US8960535B2 (en) * 2001-07-10 2015-02-24 Iii Holdings 1, Llc Method and system for resource management and evaluation
US7735725B1 (en) 2001-07-10 2010-06-15 Fred Bishop Processing an RF transaction using a routing number
US8284025B2 (en) 2001-07-10 2012-10-09 Xatra Fund Mx, Llc Method and system for auditory recognition biometrics on a FOB
US7925535B2 (en) 2001-07-10 2011-04-12 American Express Travel Related Services Company, Inc. System and method for securing RF transactions using a radio frequency identification device including a random number generator
US9024719B1 (en) 2001-07-10 2015-05-05 Xatra Fund Mx, Llc RF transaction system and method for storing user personal data
US8294552B2 (en) 2001-07-10 2012-10-23 Xatra Fund Mx, Llc Facial scan biometrics on a payment device
US20040236699A1 (en) 2001-07-10 2004-11-25 American Express Travel Related Services Company, Inc. Method and system for hand geometry recognition biometrics on a fob
US7996324B2 (en) * 2001-07-10 2011-08-09 American Express Travel Related Services Company, Inc. Systems and methods for managing multiple accounts on a RF transaction device using secondary identification indicia
US9031880B2 (en) 2001-07-10 2015-05-12 Iii Holdings 1, Llc Systems and methods for non-traditional payment using biometric data
US7249112B2 (en) 2002-07-09 2007-07-24 American Express Travel Related Services Company, Inc. System and method for assigning a funding source for a radio frequency identification device
US7668750B2 (en) 2001-07-10 2010-02-23 David S Bonalle Securing RF transactions using a transactions counter
US7360689B2 (en) 2001-07-10 2008-04-22 American Express Travel Related Services Company, Inc. Method and system for proffering multiple biometrics for use with a FOB
US7805378B2 (en) 2001-07-10 2010-09-28 American Express Travel Related Servicex Company, Inc. System and method for encoding information in magnetic stripe format for use in radio frequency identification transactions
US20060237528A1 (en) * 2001-07-10 2006-10-26 Fred Bishop Systems and methods for non-traditional payment
US8548927B2 (en) 2001-07-10 2013-10-01 Xatra Fund Mx, Llc Biometric registration for facilitating an RF transaction
US7429927B2 (en) * 2001-07-10 2008-09-30 American Express Travel Related Services Company, Inc. System and method for providing and RFID transaction device
US9454752B2 (en) 2001-07-10 2016-09-27 Chartoleaux Kg Limited Liability Company Reload protocol at a transaction processing entity
US7119659B2 (en) 2001-07-10 2006-10-10 American Express Travel Related Services Company, Inc. Systems and methods for providing a RF transaction device for use in a private label transaction
US7746215B1 (en) 2001-07-10 2010-06-29 Fred Bishop RF transactions using a wireless reader grid
EP1418538B1 (de) * 2001-08-03 2017-07-05 Dai Nippon Printing Co., Ltd. Multi-anwendungs-chipkarte
JP4393733B2 (ja) * 2001-11-27 2010-01-06 大日本印刷株式会社 携帯可能情報記録媒体
US7243853B1 (en) * 2001-12-04 2007-07-17 Visa U.S.A. Inc. Method and system for facilitating memory and application management on a secured token
US7165718B2 (en) * 2002-01-16 2007-01-23 Pathway Enterprises, Inc. Identification of an individual using a multiple purpose card
US6912633B2 (en) 2002-03-18 2005-06-28 Sun Microsystems, Inc. Enhanced memory management for portable devices
KR100505106B1 (ko) * 2002-05-29 2005-07-29 삼성전자주식회사 강화된 보안 기능을 갖춘 스마트 카드
US6669100B1 (en) * 2002-06-28 2003-12-30 Ncr Corporation Serviceable tamper resistant PIN entry apparatus
NO20023194D0 (no) * 2002-07-01 2002-07-01 Sospita As Fremgangsmåte og apparatur for eksekvering av programvareapplikasjoner i et multiprosessormiljö
US8010405B1 (en) 2002-07-26 2011-08-30 Visa Usa Inc. Multi-application smart card device software solution for smart cardholder reward selection and redemption
US8930270B2 (en) * 2002-07-30 2015-01-06 Aol Inc. Smart payment instrument selection
US6805287B2 (en) 2002-09-12 2004-10-19 American Express Travel Related Services Company, Inc. System and method for converting a stored value card to a credit card
US8626577B2 (en) 2002-09-13 2014-01-07 Visa U.S.A Network centric loyalty system
US20040148224A1 (en) * 2002-09-13 2004-07-29 Visa U.S.A. Method and apparatus for electronic support and delivery of multiple lottery and sweepstake programs, in substantially off-line environments
US9852437B2 (en) * 2002-09-13 2017-12-26 Visa U.S.A. Inc. Opt-in/opt-out in loyalty system
US7121456B2 (en) * 2002-09-13 2006-10-17 Visa U.S.A. Inc. Method and system for managing token image replacement
US8015060B2 (en) 2002-09-13 2011-09-06 Visa Usa, Inc. Method and system for managing limited use coupon and coupon prioritization
US20040139021A1 (en) * 2002-10-07 2004-07-15 Visa International Service Association Method and system for facilitating data access and management on a secure token
US20070055462A1 (en) * 2002-11-29 2007-03-08 Daniel Mulligan Circuit for use in a multifunction handheld device with wireless host interface
US7424588B2 (en) * 2002-11-29 2008-09-09 Sigmatel, Inc. Use of multiple overlays to import programs from external memory
US20040104707A1 (en) * 2002-11-29 2004-06-03 May Marcus W. Method and apparatus for efficient battery use by a handheld multiple function device
US20070052792A1 (en) * 2002-11-29 2007-03-08 Daniel Mulligan Circuit for use in cellular telephone with video functionality
US7130980B2 (en) * 2002-11-29 2006-10-31 Sigmatel, Inc. Use of a resource identifier to import a program from external memory for an overlay
US7827077B2 (en) 2003-05-02 2010-11-02 Visa U.S.A. Inc. Method and apparatus for management of electronic receipts on portable devices
JP2004341634A (ja) * 2003-05-13 2004-12-02 Ntt Docomo Inc 移動機、データ送受信方法、及びデータ送受信プログラム
JP4729839B2 (ja) * 2003-05-20 2011-07-20 株式会社日立製作所 Icカード
US9959544B2 (en) * 2003-05-22 2018-05-01 International Business Machines Corporation Updating an application on a smart card and displaying an advertisement
US7216211B2 (en) * 2003-05-22 2007-05-08 Intel Corporation Variable sized flash memory in PCI
CN100390817C (zh) * 2003-06-10 2008-05-28 大唐微电子技术有限公司 动态逻辑分区并控制访问权限的ic智能卡及其实现方法
ATE375553T1 (de) * 2003-06-24 2007-10-15 Research In Motion Ltd Erkennung von speichermangel und feinabschaltung
JP4597568B2 (ja) * 2003-07-15 2010-12-15 パナソニック株式会社 セキュアデバイス、情報処理端末、及び情報処理システム
US8554610B1 (en) 2003-08-29 2013-10-08 Visa U.S.A. Inc. Method and system for providing reward status
US7104446B2 (en) * 2003-09-03 2006-09-12 Visa U.S.A., Inc. Method, system and portable consumer device using wildcard values
US7051923B2 (en) * 2003-09-12 2006-05-30 Visa U.S.A., Inc. Method and system for providing interactive cardholder rewards image replacement
US8005763B2 (en) 2003-09-30 2011-08-23 Visa U.S.A. Inc. Method and system for providing a distributed adaptive rules based dynamic pricing system
US8407083B2 (en) 2003-09-30 2013-03-26 Visa U.S.A., Inc. Method and system for managing reward reversal after posting
US20050071226A1 (en) * 2003-09-30 2005-03-31 Visa U.S.A. Inc. Method and system for managing dynamic terms and conditions and user interaction
US7653602B2 (en) * 2003-11-06 2010-01-26 Visa U.S.A. Inc. Centralized electronic commerce card transactions
JP2007532984A (ja) * 2004-04-08 2007-11-15 松下電器産業株式会社 半導体メモリ
WO2006005773A1 (es) * 2004-06-09 2006-01-19 Microelectronica Española, S.A.U Método y dispositivo para la compartición de información entre parcelas de memoria de entornos de recursos limitados
US7318550B2 (en) 2004-07-01 2008-01-15 American Express Travel Related Services Company, Inc. Biometric safeguard method for use with a smartcard
EP1801698A1 (de) * 2004-08-10 2007-06-27 Microelectronica Española, S.A. Verarbeitungseinheit und verfahren zur speicherverwaltung in verarbeitungssystemen mit begrenzten betriebsmitteln
CN1321377C (zh) * 2005-06-16 2007-06-13 北京航空航天大学 智能卡存储环境的控制方法
US20070228156A1 (en) * 2006-03-28 2007-10-04 Household Corporation Interoperability facilitator
US7591419B2 (en) * 2006-03-28 2009-09-22 HSBC Card Services Inc. User selectable functionality facilitator
JP4702628B2 (ja) * 2006-07-27 2011-06-15 ソニー株式会社 電子機器、情報処理方法、およびプログラム
US7631810B2 (en) * 2006-12-19 2009-12-15 Vivotech, Inc. Systems, methods, and computer program products for supporting multiple applications and multiple instances of the same application on a wireless smart device
JP5156254B2 (ja) * 2007-04-17 2013-03-06 楽天株式会社 情報処理装置、情報処理方法、及び情報処理プログラム
US20100191652A1 (en) * 2009-01-23 2010-07-29 Eckert Daniel J Systems and methods for adding functionality to a uis for use at a point of interaction
US9230259B1 (en) 2009-03-20 2016-01-05 Jpmorgan Chase Bank, N.A. Systems and methods for mobile ordering and payment
US20110022662A1 (en) 2009-07-23 2011-01-27 International Business Machines Corporation Event triggered notifications for collaborative processes
TWI395947B (zh) * 2009-08-31 2013-05-11 Health & Life Co Ltd Instrument parameter setting card, parameter setting method and parameter setting device
CN102043039A (zh) * 2009-10-21 2011-05-04 合世生医科技股份有限公司 仪器参数的设定方法
EP2323111A1 (de) * 2009-10-22 2011-05-18 Gemalto SA Tragbares Authentifizierungsgerät mit Mehrzweckanwendungen
US20110145082A1 (en) 2009-12-16 2011-06-16 Ayman Hammad Merchant alerts incorporating receipt data
US8429048B2 (en) 2009-12-28 2013-04-23 Visa International Service Association System and method for processing payment transaction receipts
JP2011198298A (ja) * 2010-03-23 2011-10-06 Dainippon Printing Co Ltd Icカード及びコンピュータプログラム
WO2012049832A1 (ja) * 2010-10-12 2012-04-19 パナソニック株式会社 情報処理システム
US20120094600A1 (en) 2010-10-19 2012-04-19 Welch Allyn, Inc. Platform for patient monitoring
EP2715617A4 (de) * 2011-05-23 2014-11-26 Mastercard International Inc Combicard-transaktionsverfahren und -system mit einem mechanismus zur aktualisierung von anwendungsparametern
DE102011109318A1 (de) 2011-08-03 2013-02-07 Giesecke & Devrient Gmbh Mechanismus zur Kommunikation zwischen zwei Applikationen auf einem Sicherheitsmodul
KR102133251B1 (ko) * 2013-10-23 2020-07-21 삼성전자주식회사 애플리케이션 프로그램 보호 방법 및 장치
US20220004625A1 (en) * 2019-03-26 2022-01-06 Stmicroelectronics S.R.L. Embedded secure element

Family Cites Families (170)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4218582A (en) 1977-10-06 1980-08-19 The Board Of Trustees Of The Leland Stanford Junior University Public key cryptographic apparatus and method
US4405829A (en) 1977-12-14 1983-09-20 Massachusetts Institute Of Technology Cryptographic communications system and method
US4259720A (en) 1978-01-09 1981-03-31 Interbank Card Association Security system for electronic funds transfer system
US4408203A (en) 1978-01-09 1983-10-04 Mastercard International, Inc. Security system for electronic funds transfer system
US4214230A (en) 1978-01-19 1980-07-22 Rolf Blom Personal identification system
FR2455320B1 (fr) 1979-04-25 1986-01-24 Cii Honeywell Bull Dispositif de recyclage de supports d'enregistrement identifiables a l'aide de donnees d'identification et composes de memoires monolithiques non volatiles effacables
US4321672A (en) 1979-11-26 1982-03-23 Braun Edward L Financial data processing system
US4302810A (en) 1979-12-28 1981-11-24 International Business Machines Corporation Method and apparatus for secure message transmission for use in electronic funds transfer systems
US4305059A (en) 1980-01-03 1981-12-08 Benton William M Modular funds transfer system
FR2480539B1 (fr) 1980-04-09 1985-09-13 Cii Honeywell Bull Procede et systeme de transmission de messages signes
US4341951A (en) 1980-07-02 1982-07-27 Benton William M Electronic funds transfer and voucher issue system
FR2497617B1 (fr) 1981-01-07 1989-08-18 Transac Develop Transactions A Procede et dispositif de securite pour communication tripartie de donnees confidentielles
US4578530A (en) 1981-06-26 1986-03-25 Visa U.S.A., Inc. End-to-end encryption system and method of operation
US4423287A (en) 1981-06-26 1983-12-27 Visa U.S.A., Inc. End-to-end encryption system and method of operation
US4453074A (en) 1981-10-19 1984-06-05 American Express Company Protection system for intelligent cards
FR2536928B1 (fr) 1982-11-30 1989-10-06 France Etat Systeme pour chiffrer et dechiffrer des informations, du type utilisant un systeme de dechiffrement a cle publique
US4906828A (en) 1983-02-28 1990-03-06 Paperless Accounting, Inc. Electronic money purse and fund transfer system
US4536647A (en) 1983-07-15 1985-08-20 Atalla Corporation Pocket banking terminal, method and system
US4926480A (en) 1983-08-22 1990-05-15 David Chaum Card-computer moderated systems
US4759064A (en) 1985-10-07 1988-07-19 Chaum David L Blind unanticipated signature systems
US4759063A (en) 1983-08-22 1988-07-19 Chaum David L Blind signature systems
US4605820A (en) 1983-11-10 1986-08-12 Visa U.S.A. Inc. Key management system for on-line communication
SE442249B (sv) 1983-11-17 1985-12-09 Ericsson Telefon Ab L M Forfarande och anordning for verifiering av personidentifieringsnummer och kontroll av inlagd nummerserie i identifieringsmedia
US4745267A (en) 1983-12-28 1988-05-17 Fairview Partners Fraudulent card intercept system
JPS60160491A (ja) 1984-01-31 1985-08-22 Toshiba Corp Icカードとicカード発行装置
DE3579815D1 (de) 1984-02-09 1990-10-25 Toshiba Kawasaki Kk Terminal zur datenverarbeitung.
US4630201A (en) 1984-02-14 1986-12-16 International Security Note & Computer Corporation On-line and off-line transaction security system using a code generated from a transaction parameter and a random number
JPS60144154U (ja) 1984-03-07 1985-09-25 シャープ株式会社 携帯用電子計算機
JPS60207957A (ja) 1984-03-31 1985-10-19 Toshiba Corp デ−タ保護方式
US4736094A (en) 1984-04-03 1988-04-05 Omron Tateisi Electronics Co. Financial transaction processing system using an integrated circuit card device
US4709137A (en) 1984-04-16 1987-11-24 Omron Tateisi Electronics Co. IC card and financial transaction processing system using IC card
US4727243A (en) 1984-10-24 1988-02-23 Telenet Communications Corporation Financial transaction system
GB2168514A (en) 1984-12-12 1986-06-18 Ibm Security module
US4650978A (en) 1985-01-23 1987-03-17 Rmh Systems, Inc. Off line cash card system and method
JPS61177585A (ja) 1985-02-04 1986-08-09 Toshiba Corp 携帯用電子装置密封体
JPS61210488A (ja) 1985-03-14 1986-09-18 Toppan Moore Co Ltd Icカ−ド
JPS61264485A (ja) 1985-05-18 1986-11-22 Hitachi Maxell Ltd Icカ−ドのリ−ダ−・ライタ−
JPS61278989A (ja) 1985-06-04 1986-12-09 Toppan Moore Co Ltd Icカ−ドのリ−ダ・ライタ
JPH069067B2 (ja) 1985-07-16 1994-02-02 カシオ計算機株式会社 Icカ−ドシステム
JPH0818473B2 (ja) 1985-07-31 1996-02-28 トッパン・ムーア株式会社 機密水準を設定できるicカード
JPH0762862B2 (ja) 1985-09-17 1995-07-05 カシオ計算機株式会社 Icカ−ドシステムにおける認証方式
US4752677A (en) 1985-09-25 1988-06-21 Casio Computer Co., Ltd. Customer service system for use in IC card system
EP0218176B1 (de) 1985-10-07 1991-11-13 Kabushiki Kaisha Toshiba Tragbares elektronisches Gerät
US4778983A (en) 1985-10-12 1988-10-18 Sanden Corporation Automatic vending machine
US4669596A (en) 1985-10-22 1987-06-02 Debitek, Inc. Vending machine accessory permitting dual mode machine operation with either money or coded cards
JPS62105293A (ja) 1985-10-31 1987-05-15 Toshiba Corp 携帯可能記録媒体の読取・書込装置
FR2591008B1 (fr) 1985-11-30 1991-05-17 Toshiba Kk Dispositif electronique portatif
US4849614A (en) 1985-12-27 1989-07-18 Toppan Moore Company, Ltd. Composite IC card
FR2592510B1 (fr) 1985-12-31 1988-02-12 Bull Cp8 Procede et appareil pour certifier des services obtenus a l'aide d'un support portatif tel qu'une carte a memoire
JPS62179994A (ja) 1986-02-04 1987-08-07 カシオ計算機株式会社 電子カ−ド
US4874935A (en) 1986-03-10 1989-10-17 Data Card Coprporation Smart card apparatus and method of programming same
JPS62222363A (ja) 1986-03-25 1987-09-30 Omron Tateisi Electronics Co 自動取引処理装置
JPS62254265A (ja) 1986-04-28 1987-11-06 Hitachi Ltd 現金自動取引装置の制御方式
US4742215A (en) 1986-05-07 1988-05-03 Personal Computer Card Corporation IC card system
US4816653A (en) 1986-05-16 1989-03-28 American Telephone And Telegraph Company Security file system for a portable data carrier
US4816654A (en) 1986-05-16 1989-03-28 American Telephone And Telegraph Company Improved security system for a portable data carrier
JP2537199B2 (ja) 1986-06-20 1996-09-25 株式会社東芝 Icカ―ド
US4839792A (en) 1986-06-20 1989-06-13 Kabushiki Kaisha Toshiba Portable electronic apparatus with a device for determining data validity
US4748668A (en) 1986-07-09 1988-05-31 Yeda Research And Development Company Limited Method, apparatus and article for identification and signature
FR2601535B1 (fr) 1986-07-11 1988-10-21 Bull Cp8 Procede pour certifier l'authenticite d'une donnee echangee entre deux dispositifs connectes en local ou a distance par une ligne de transmission
FR2601795B1 (fr) 1986-07-17 1988-10-07 Bull Cp8 Procede pour diversifier une cle de base et pour authentifier une cle ainsi diversifiee comme ayant ete elaboree a partir d'une cle de base predeterminee, et systeme pour la mise en oeuvre
JPS6332658A (ja) 1986-07-28 1988-02-12 Casio Comput Co Ltd Icカ−ドシステム
JPH07104891B2 (ja) 1986-08-05 1995-11-13 沖電気工業株式会社 取引処理装置
US4802218A (en) 1986-11-26 1989-01-31 Wright Technologies, L.P. Automated transaction system
JPS6373388A (ja) 1986-09-16 1988-04-02 Fujitsu Ltd 複数サ−ビス用icカ−ドの領域獲得方式
JPH087720B2 (ja) 1986-09-16 1996-01-29 富士通株式会社 複数サービス用icカードの領域アクセス方法
DE3731736A1 (de) 1986-09-27 1988-04-07 Toshiba Kawasaki Kk Verarbeitungssystem fuer tragbare elektronische vorrichtung
JPS63120391A (ja) 1986-11-10 1988-05-24 Hitachi Ltd Icカ−ド
US4900904A (en) 1986-11-26 1990-02-13 Wright Technologies, L.P. Automated transaction system with insertable cards for downloading rate or program data
JPS63182795A (ja) 1987-01-20 1988-07-28 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン ポータブル・カードとその製造方法
US4969188A (en) 1987-02-17 1990-11-06 Gretag Aktiengesellschaft Process and apparatus for the protection of secret elements in a network of encrypting devices with open key management
US5162989A (en) 1987-02-20 1992-11-10 Oki Electric Industry Co., Ltd. Information rental system including processor equipped IC card having data erasing means
JPH0758500B2 (ja) 1987-02-20 1995-06-21 株式会社東芝 携帯可能電子装置
EP0281058B1 (de) 1987-03-04 1993-02-03 Siemens Nixdorf Informationssysteme Aktiengesellschaft Datenaustauschsystem
FR2611962B1 (fr) 1987-03-06 1989-06-09 Trt Telecom Radio Electr Systeme et procede pour cryptographie avec application
JPS63236186A (ja) 1987-03-24 1988-10-03 Mitsubishi Electric Corp カ−ド発行装置
US4949257A (en) 1987-04-28 1990-08-14 Zvi Orbach Automated merchandising system for computer software
US4797920A (en) 1987-05-01 1989-01-10 Mastercard International, Inc. Electronic funds transfer system with means for verifying a personal identification number without pre-established secret keys
GB2204973A (en) 1987-05-19 1988-11-23 Gen Electric Co Plc Data processing system
US4984270A (en) 1987-06-19 1991-01-08 The Exchange System Method and system for transmission of financial data
US4837422A (en) * 1987-09-08 1989-06-06 Juergen Dethloff Multi-user card system
JPH0161764U (de) 1987-10-09 1989-04-19
US4853961A (en) 1987-12-18 1989-08-01 Pitney Bowes Inc. Reliable document authentication system
FR2626095B1 (fr) 1988-01-20 1991-08-30 Sgs Thomson Microelectronics Systeme de securite pour proteger des zones de programmation d'une carte a puce
JP2623332B2 (ja) 1988-02-03 1997-06-25 日立マクセル株式会社 Icカード及びその動作プログラム書込み方法
US5214702A (en) 1988-02-12 1993-05-25 Fischer Addison M Public key/signature cryptosystem with enhanced digital signature certification
US5005200A (en) 1988-02-12 1991-04-02 Fischer Addison M Public key/signature cryptosystem with enhanced digital signature certification
US5012076A (en) 1988-03-02 1991-04-30 Hitachi, Ltd. Transaction method wherein transaction amount is compared with account balance before ID is entered
US4987593A (en) 1988-03-16 1991-01-22 David Chaum One-show blind signature systems
US4879747A (en) 1988-03-21 1989-11-07 Leighton Frank T Method and system for personal identification
US4995081A (en) 1988-03-21 1991-02-19 Leighton Frank T Method and system for personal identification using proofs of legitimacy
US4891503A (en) 1988-03-29 1990-01-02 Gascard, Inc. Distributed authorization system
JPH01259483A (ja) 1988-04-08 1989-10-17 Minolta Camera Co Ltd Icカード
CA1321649C (en) 1988-05-19 1993-08-24 Jeffrey R. Austin Method and system for authentication
US4961142A (en) 1988-06-29 1990-10-02 Mastercard International, Inc. Multi-issuer transaction device with individual identification verification plug-in application modules for each issuer
EP0355372B1 (de) 1988-07-20 1995-03-15 SPA Syspatronic AG Datenträger-gesteuertes Endgerät in einem Datenaustauschsystem
DE68927361T4 (de) 1988-08-12 1999-11-04 Hitachi Maxell Chipkarte und Verfahren zum Wiedereinschreiben ihres Programmes
JP2695855B2 (ja) 1988-08-26 1998-01-14 株式会社東芝 携帯可能電子装置
JPH0622030B2 (ja) 1988-10-03 1994-03-23 富士通株式会社 取引の正当性確認方式
US5016274A (en) 1988-11-08 1991-05-14 Silvio Micali On-line/off-line digital signing
JPH02170272A (ja) 1988-12-23 1990-07-02 Hitachi Maxell Ltd 秘密情報の照合方式
JPH02214994A (ja) 1989-02-15 1990-08-27 Hitachi Maxell Ltd Icカード
US5165043A (en) 1989-03-15 1992-11-17 Hitachi, Ltd. Memory card system and access method for memory card
US4977595A (en) 1989-04-03 1990-12-11 Nippon Telegraph And Telephone Corporation Method and apparatus for implementing electronic cash
US4996711A (en) 1989-06-21 1991-02-26 Chaum David L Selected-exponent signature systems
FR2650097B1 (fr) 1989-07-19 1992-12-31 Pailles Jean Claude Carte a microcircuit cable et procede de transaction entre une carte a microcircuit cable correspondante et un terminal
FR2651347A1 (fr) 1989-08-22 1991-03-01 Trt Telecom Radio Electr Procede de generation de nombre unique pour carte a microcircuit et application a la cooperation de la carte avec un systeme hote.
ZA907106B (en) 1989-10-06 1991-09-25 Net 1 Products Pty Ltd Funds transfer system
US5148481A (en) 1989-10-06 1992-09-15 International Business Machines Corporation Transaction system security method and apparatus
FR2653248B1 (fr) 1989-10-13 1991-12-20 Gemolus Card International Systeme de paiement ou de transfert d'information par carte a memoire electronique porte monnaie.
FR2653914A1 (fr) 1989-10-27 1991-05-03 Trt Telecom Radio Electr Systeme d'authentification d'une carte a microcircuit par un micro-ordinateur personnel, et procede pour sa mise en óoeuvre.
US5120939A (en) 1989-11-09 1992-06-09 At&T Bell Laboratories Databaseless security system
US4993068A (en) 1989-11-27 1991-02-12 Motorola, Inc. Unforgeable personal identification system
JPH03240127A (ja) 1990-02-17 1991-10-25 Hitachi Maxell Ltd プログラム制御システム
JPH03248249A (ja) 1990-02-27 1991-11-06 Mitsubishi Electric Corp Icメモリカード
JPH0424889A (ja) 1990-05-21 1992-01-28 Toshiba Corp 個人認証機能付きicカード
DE59004248D1 (de) 1990-07-20 1994-02-24 Siemens Nixdorf Inf Syst Verfahren zur Verhinderung unzulässiger Abweichungen vom Ablaufprotokoll einer Anwendung bei einem Datenaustauschsystem.
US5163098A (en) 1990-09-06 1992-11-10 Dahbura Abbud S System for preventing fraudulent use of credit card
FR2666671B1 (fr) 1990-09-12 1994-08-05 Gemplus Card Int Procede de gestion d'un programme d'application charge dans un support a microcircuit.
FR2667171B1 (fr) 1990-09-25 1994-08-26 Gemplus Card Int Support portable a micro-circuit facilement programmable et procede de programmation de ce micro-circuit.
FR2667417B1 (fr) 1990-10-02 1992-11-27 Gemplus Card Int Carte a microprocesseur concue pour recevoir des programmes multiples en memoire programmable.
US5131038A (en) 1990-11-07 1992-07-14 Motorola, Inc. Portable authentification system
JP3114991B2 (ja) 1990-11-30 2000-12-04 株式会社東芝 データ通信システム
FR2673476B1 (fr) 1991-01-18 1996-04-12 Gemplus Card Int Procede securise de chargement de plusieurs applications dans une carte a memoire a microprocesseur.
FR2671889A1 (fr) 1991-01-22 1992-07-24 Pailles Jean Claude Procede d'echange de droits entre cartes a microprocesseur.
DE4115152C2 (de) * 1991-05-08 2003-04-24 Gao Ges Automation Org Kartenförmiger Datenträger mit einer datenschützenden Mikroprozessorschaltung
US5224162A (en) 1991-06-14 1993-06-29 Nippon Telegraph And Telephone Corporation Electronic cash system
US5142578A (en) 1991-08-22 1992-08-25 International Business Machines Corporation Hybrid public key algorithm/data encryption algorithm key distribution method based on control vectors
US5201000A (en) 1991-09-27 1993-04-06 International Business Machines Corporation Method for generating public and private key pairs without using a passphrase
US5200999A (en) 1991-09-27 1993-04-06 International Business Machines Corporation Public key cryptosystem key management based on control vectors
JP3083187B2 (ja) 1991-09-30 2000-09-04 富士通株式会社 電子財布システムの鍵管理方式
DE69231118T2 (de) 1991-10-18 2000-12-14 Fujitsu Ltd Nachrichtenverteilungssystem mit schnurlosen nachrichtenübertragenden Unterstationen und nachrichtenempfängende Terminalendgeräte
FR2683357A1 (fr) 1991-10-30 1993-05-07 Philips Composants Microcircuit pour carte a puce a memoire programmable protegee.
US5164988A (en) 1991-10-31 1992-11-17 International Business Machines Corporation Method to establish and enforce a network cryptographic security policy in a public key cryptosystem
EP0722596A4 (de) 1991-11-12 1997-03-05 Security Domain Pty Ltd Verfahren und system zur gesicherten, dezentralisierten personifizierung von chipkarten
GB9126779D0 (en) 1991-12-17 1992-02-12 Int Computers Ltd Security mechanism for a computer system
FR2687816B1 (fr) 1992-02-24 1994-04-08 Gemplus Card International Procede de personnalisation d'une carte a puce.
JPH05250523A (ja) 1992-03-06 1993-09-28 Toshiba Corp 処理方式
JP2592856Y2 (ja) 1992-03-25 1999-03-31 株式会社東海理化電機製作所 可動コンタクトの取付構造
US5396558A (en) 1992-09-18 1995-03-07 Nippon Telegraph And Telephone Corporation Method and apparatus for settlement of accounts by IC cards
FR2697357B1 (fr) 1992-10-23 1994-12-23 Gemplus Card Int Procédé d'acquisition de logiciels et système informatique pour mettre en Óoeuvre le procédé.
WO1994010657A1 (en) 1992-10-26 1994-05-11 Intellect Australia Pty. Ltd. Host and user transaction system
US5371797A (en) 1993-01-19 1994-12-06 Bellsouth Corporation Secure electronic funds transfer from telephone or unsecured terminal
JPH06251206A (ja) 1993-02-26 1994-09-09 Fujitsu Ltd 複数の機能を発揮するカードの処理方式
US5420405A (en) 1993-02-26 1995-05-30 Chasek; Norman E. Secure, automated transaction system that supports an electronic currency operating in mixed debit & credit modes
JP3421378B2 (ja) 1993-03-23 2003-06-30 株式会社東芝 伝送制御方式
JPH0744672A (ja) 1993-07-28 1995-02-14 Oki Electric Ind Co Ltd Icカード及びicカードシステム
US5649118A (en) * 1993-08-27 1997-07-15 Lucent Technologies Inc. Smart card with multiple charge accounts and product item tables designating the account to debit
US5544246A (en) 1993-09-17 1996-08-06 At&T Corp. Smartcard adapted for a plurality of service providers and for remote installation of same
US5485520A (en) 1993-10-07 1996-01-16 Amtech Corporation Automatic real-time highway toll collection from moving vehicles
GB9320982D0 (en) 1993-10-12 1993-12-01 Ibm A data processing system
GB2284689B (en) 1993-12-07 1998-02-18 Inventec Corp Ic card back-up generating and programming device
DE69431306T2 (de) 1993-12-16 2003-05-15 Open Market Inc Datennetzgestütztes zahlungssystem und verfahren zum gebrauch eines derartigen systems
US5530232A (en) 1993-12-22 1996-06-25 Datamark Services, Inc. Multi-application data card
US5578808A (en) 1993-12-22 1996-11-26 Datamark Services, Inc. Data card that can be used for transactions involving separate card issuers
US5557516A (en) 1994-02-04 1996-09-17 Mastercard International System and method for conducting cashless transactions
EP0666550B1 (de) * 1994-02-08 1997-05-02 Belle Gate Investment B.V. Datenauswechselsystem mit tragbaren Datenverarbeitungseinheiten
US5511121A (en) 1994-02-23 1996-04-23 Bell Communications Research, Inc. Efficient electronic money
US5557742A (en) * 1994-03-07 1996-09-17 Haystack Labs, Inc. Method and system for detecting intrusion into and misuse of a data processing system
FR2720848B1 (fr) 1994-06-03 1996-07-26 Gemplus Card Int Procédé de conduite d'une transaction entre une carte à puce et un système d'information.
FR2725537B1 (fr) 1994-10-11 1996-11-22 Bull Cp8 Procede de chargement d'une zone memoire protegee d'un dispositif de traitement de l'information et dispositif associe
US5715314A (en) 1994-10-24 1998-02-03 Open Market, Inc. Network sales system
US5517011A (en) 1994-11-21 1996-05-14 Oki Electric Industry Co. Ltd. Slotless card reader
US5705798A (en) 1994-12-16 1998-01-06 Mastercard International Inc. System and method for processing a customized financial transaction card
US5546523A (en) 1995-04-13 1996-08-13 Gatto; James G. Electronic fund transfer system
US5692132A (en) 1995-06-07 1997-11-25 Mastercard International, Inc. System and method for conducting cashless transactions on a computer network
US5708780A (en) 1995-06-07 1998-01-13 Open Market, Inc. Internet server access control and monitoring systems
US5799314A (en) 1995-06-30 1998-08-25 Sun Microsystems, Inc. System and method of controlling mapping of data buffers for heterogenous programs in digital computer system
US5699528A (en) 1995-10-31 1997-12-16 Mastercard International, Inc. System and method for bill delivery and payment over a communications network
US5704046A (en) 1996-05-30 1997-12-30 Mastercard International Inc. System and method for conducting cashless transactions

Also Published As

Publication number Publication date
WO1998052159A3 (en) 1999-07-01
JP2001527674A (ja) 2001-12-25
AU7776898A (en) 1998-12-08
EP0985202A1 (de) 2000-03-15
WO1998052159A2 (en) 1998-11-19
EP0985202B1 (de) 2006-09-13
DE69835879D1 (de) 2006-10-26
JP4181641B2 (ja) 2008-11-19
US6220510B1 (en) 2001-04-24

Similar Documents

Publication Publication Date Title
DE69835879T2 (de) Multifunktionschipkarte mit delegierungsmerkmal
DE69823649T2 (de) Multi-anwendungs ic-kartensystem
DE69400549T3 (de) IC-Karten-Übertragungssystem
DE69833902T2 (de) Integrierte Schaltung für Einbettung in Chipkarten, und Verfahren zur Herstellung von Chipkarten
DE69630126T2 (de) Historische zustandinformation verwendendes entscheidungsprotokoll für zugriff auf ein geteiltes speichergebiet
DE3743639A1 (de) Ic-karte und system zur ueberpruefung ihrer funktionstuechtigkeit
DE19522527A1 (de) Verfahren zur Vereinfachung der Kommunikation mit Chipkarten
DE2902465A1 (de) Datenverarbeitungsanordnung
DE19755819C1 (de) Verteiltes Zahlungssystem und Verfahren für den bargeldlosen Zahlungsverkehr mittels einer Börsenchipkarte
DE60008092T2 (de) Verfahren zur befehlverwaltung in mehreren anwendungsdatenbeständen und chipkarte zur durchführung des verfahrens
DE3720427A1 (de) Tragbare elektronische vorrichtung
DE69932412T2 (de) Chipkartenkonfiguration
WO2003060721A2 (de) Verfahren und anordnung zum beschreiben von nv-memories in einer controller-architektur sowie ein entsprechendes computerprogrammprodukt und ein entsprechendes computerlesbares speichermedium
EP0811204A1 (de) Verarbeitung langer nachrichten in einer prozessorkarte
DE60104976T2 (de) Verfahren zur Bereitstellung von Dienstleistungen
DE602004010458T2 (de) Halbleiterspeicherkarte und rechnerlesbares programm
DE19954532A1 (de) Verfahren und System zur Speicherung von JAVA-Objekten in Vorrichtungen mit einer verringerten Unterstützung von höheren Programmierkonzepten
DE69634550T2 (de) Terminal mit Kartenleser und Verfahren zur Verarbeitung von mehreren Anwendungen mit diesem Terminal
EP1695207A2 (de) Java smart card chip mit für globale variablen reserviertem speicherbereich
DE4427039C2 (de) Verfahren zur Bestimmung des aktuellen Geldbetrages in einem Datenträger und System zur Durchführung des Verfahrens
DE69729622T2 (de) Verfahren und gerät zur evolution eines programmes in rom
EP1407348A2 (de) Verfahren zum ansteuern einer zentralen verarbeitungseinheit für eine adressierung bezüglich eines speichers und controller
WO2001001338A1 (de) Verfahren zur datenübertragung und zur speicherverwaltung sowie datenträger
DE19811646A1 (de) Multifunktions-Chipkarte
DE19928468C2 (de) Verfahren zum Einschreiben von Daten in den programmierbaren Festwertspeicher (EEPROM) eines mikroprozessorgestützten, tragbaren Datenträgers

Legal Events

Date Code Title Description
8364 No opposition during term of opposition