DE60037342T2 - Verfahren und system für kommunizierende geräte, und vorrichtungen dafür, mit geschützter datenübertragung - Google Patents

Verfahren und system für kommunizierende geräte, und vorrichtungen dafür, mit geschützter datenübertragung Download PDF

Info

Publication number
DE60037342T2
DE60037342T2 DE60037342T DE60037342T DE60037342T2 DE 60037342 T2 DE60037342 T2 DE 60037342T2 DE 60037342 T DE60037342 T DE 60037342T DE 60037342 T DE60037342 T DE 60037342T DE 60037342 T2 DE60037342 T2 DE 60037342T2
Authority
DE
Germany
Prior art keywords
program
additional data
communication primitive
processor
data
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
DE60037342T
Other languages
English (en)
Other versions
DE60037342D1 (de
Inventor
Eduard Karel De Jong
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.)
Belle Gate Investments BV
Original Assignee
Belle Gate Investments BV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Belle Gate Investments BV filed Critical Belle Gate Investments BV
Application granted granted Critical
Publication of DE60037342D1 publication Critical patent/DE60037342D1/de
Publication of DE60037342T2 publication Critical patent/DE60037342T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B5/00Near-field transmission systems, e.g. inductive loop type
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1008Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • 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
    • 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/0806Details of the card
    • G07F7/0813Specific details related to card security
    • G07F7/082Features insuring the integrity of the data on or in the card
    • 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/0806Details of the card
    • G07F7/0833Card having specific functional components
    • G07F7/084Additional components relating to data transfer and storing, e.g. error detection, self-diagnosis

Description

  • Gebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich auf ein Verfahren zur Kommunikation zwischen einem ersten Gerät und einem zweiten Gerät. Die Erfindung ist insbesondere anwendbar auf dem Gebiet der Smart Cards, welche mit Endgeräten kommunizieren.
  • Stand der Technik
  • Kommunikationen zwischen Smart Cards und Endgeräten (Terminals) werden üblicherweise eingesetzt, um eines aus einer Mehrzahl sicherer Protokolle durchzuführen, welche erforderlich sind für einen durch die Smart Cards bereitzustellenden Service.
  • Insbesondere wenn eine kontaktlose Smart Card verwendet wird, kann sich ein Problem aus dem fluktuierenden Versorgungsstrom vom Endgerät zu der Smart Card aufgrund der Bewegung der Smart Card durch ein Energie bereitstellendes elektromagnetisches Feld ergeben. Diese Energiefluktuationen können derart stark und schnell sein, dass die Smart Card die Energieversorgung verlieren kann, bevor alle Kommunikationsschritte, die von einem Protokoll gefordert werden, durchgeführt worden sind. Was erforderlich ist, ist ein Mechanismus zur Fortsetzung eines Protokolls nach einem vollständigen oder teilweisen Verlust der Energie, und im Allgemeinen eine Sicherstellung der Integrität der Smart Card-Daten, die bei der Durchführung des Protokolls verwendet werden. Aufgrund der Risiken von Energiefluktuationen müssen üblicherweise alle Kommunikationsschritte, die von einem Protokoll für eine kontaktlose Smart Card gefordert werden, innerhalb von 150 ms durchgeführt werden. Es besteht daher ein Bedarf daran, die Zeitperiode, welche für das Protokoll zur Verfügung steht, zu erhöhen, ohne zusätzliche Risiken hinsichtlich Kommunikationsfehlern zu erzeugen.
  • WO-A-89/02140 (Eglise et al.) offenbart einen Mechanismus dagegen, dass eine Datenträgervorrichtung, wie eine Karte oder eine Chipkarte, aus einem Endgerät entfernt wird, bevor eine Transaktion beendet ist. Die Datenträgervorrichtung speichert einen Kreditwert, welcher unter der Kontrolle einer Maschine während des Ablaufs eines Services verringert wird. Ein derartiger Service kann ein Telefongespräch oder die Bereitstellung von Elektrizität sein. Das Problem, welches von diesem Dokument des Standes der Technik gelöst werden soll, besteht darin, sicherzustellen, dass es einem Benutzer der Datenträgervorrichtung ermöglicht ist, diese Vorrichtung zu jeder Zeit von dem Endgerät zu entfernen, ohne wichtige Kreditdaten zu verlieren, was geschehen könnte, wenn der Benutzer die Vorrichtung vor der Beendigung einer Transaktion aus dem Endgerät entfernt. Ein vergleichbarer Verlust relevanter Kreditdaten könnte auftreten, wenn die Energieversorgung vorübergehend zusammenbricht.
  • Um dieses Problem zu lösen, speichert die Datenträgervorrichtung nach Eglise et al. jedes Mal, wenn ein Datenkommunikationsschritt mit der Maschine durchgeführt wird, zusätzliche Informationen, welche einen Hinweis auf den betreffenden Datenkommunikationsschritt geben. Zu diesem Zweck schlagen Eglise et al. vor, zwei „Flags" und drei Parameter zu verwenden. Die Werte der Flags ändern sich entsprechend der durchgeführten Schritte, wohingegen die Parameterwerte sich entsprechend des gespeicherten Kreditwertes und dessen Aktualisierungen während aufeinander folgender Operationen ändern. Immer wenn die Datenträgervorrichtung zu früh von der Maschine entfernt wird oder wenn die Energieversorgung zusammenbricht, stellen die Werte der Flags und der Parameter, welche in dem nicht-flüchtigen Speicher der Datenträgervorrichtung gespeichert sind, einen einzigartigen Indikator des letzten durchgeführten Kommunikationsschrittes dar. Somit kann, wenn die Kommunikationen zwischen der Maschine und der Datenträgervorrichtung wieder aufgenommen werden, die vorhergehende Transaktion immer noch erfolgreich zu Ende geführt werden.
  • US-A-4,877,945 (Fujisaki) offenbart eine IC-Karte, welche mit einer Funktion zum Ausschließen fehlerhafter Speicherung ausgestattet ist. Die IC-Karte ist eingerichtet, um mit einem Endgerät zu kommunizieren. Zu Beginn der Kommunikation sendet das Endgerät ein Start-Kommando, wohingegen es am Ende der Kommunikation ein Ende-Kommando an die IC-Karte schickt. Nach Erhalt des Startkommandos überprüft die IC-Karte, ob ein Gültigkeits-Flag, welches in einer Tabelle in seinem EEPROM-Speicher gespeichert ist, entweder einen gültigen Status oder einen ungültigen Status indiziert. Ein ungültiger Status indiziert, dass die letzte Kommunikationsprozedur zwischen der IC-Karte und einem Endgerät nicht korrekt beendet worden ist, wohingegen ein gültiger Status darauf hinweist, dass die letzte Kommunikationsprozedur korrekt beendet worden ist.
  • Wenn die IC-Karte nach Erhalt eines Startkommandos erkennt, dass ihr Gültigkeits-Flag gültig ist, beginnt sie die Kommunikationsprozedur mit dem Endgerät, nachdem der Status des Gültigkeits-Flags auf „ungültig" geändert worden ist. Sie führt die Kommunikationsprozedur mit dem Endgerät durch und ändert, nach Erhalt des Endkommandos von dem Terminal, das Gültigkeits-Flag auf „gültig". Wenn jedoch die Kommunikationsprozedur vor Beendigung unterbrochen wird, verbleibt das Gültigkeits-Flag ungültig, was darauf hinweist, dass sein Dateninhalt ungültig ist.
  • Wenn nach Erhalt eines Startkommandos die IC-Karte erkennt, dass ihr Gültigkeits-Flag ungültig ist, informiert sie das Endgerät darüber, und es wird keine Kommunikation durchgeführt. Somit kann keine Kommunikationsprozedur durchgeführt werden, wenn eine IC-Karte ungültige Daten beinhaltet.
  • Um eine IC-Karte mit ungültigen Daten wieder zu verwenden, offenbart Fujisaki einen Korrekturmechanismus, welcher das Senden eines Endkommandos an die IC-Karte beinhaltet, wodurch die IC-Karte veranlasst wird, ihr Gültigkeits-Flag auf „gültig" zu ändern.
  • US-A-5,635,695 (Feiken) offenbart einen ähnlichen Mechanismus gegen eine Unterbrechung der Kommunikation zwischen einer IC-Karte und einem Endgerät. Feiken verwendet ebenfalls ein Gültigkeits-Flag, um auf der Karte zu indizieren, ob eine Transaktion korrekt beendet worden ist oder nicht, Darüber hinaus offenbart Feiken einen Mechanismus zur korrekten Beendigung eines unvollendeten Bilanzprozesses, nach welchem nicht nur das Gültigkeits-Flag wieder auf seinen gültigen Status gesetzt wird, sondern nach welchem auch der Dateninhalt der Karte den korrekten Wert aufweist.
  • WO 99/35791 offenbart ein Kommunikationssystem, welches für Kommunikationen zwischen zwei oder mehr Vorrichtungen eingerichtet ist. Die Kommunikationen basieren auf einem Transfer von Paketen. Sequenznummern werden zu den Paketen hinzugefügt. Die Sequenznummern werden in Antwort-Nachrichten von einer Vorrichtung zu einer anderen verwendet, um einen sicheren Erhalt von Paketen zu bestätigen.
  • Zusammenfassung der Erfindung
  • Eine Aufgabe der vorliegenden Erfindung besteht darin, die Zuverlässigkeit von Kommunikationen zwischen zwei Kommunikationsgeräten zu erhöhen, indem eines oder mehrere dieser Geräte gegen Fehler geschützt werden, zum Beispiel aufgrund einer Unterbrechung der Energieversorgung. Derartige Kommunikationsgeräte können eine Smart Card und ein Endgerät (Terminal) sein, können jedoch alternativ auch von jeder bekannten Art sein, zum Beispiel Computer, die miteinander über ein Netzwerk kommunizieren.
  • Um diese Aufgabe zu lösen, beansprucht die vorliegende Erfindung in einer ersten Ausführungsform ein Verfahren zur Kommunikation zwischen mindestens einem ersten Gerät und einem zweiten Gerät;
    wobei das erste Gerät einen ersten Prozessor, erste Speichermittel und erste Eingabe/Ausgabe-Mittel umfasst, wobei die ersten Speichermittel und die ersten Eingabe/Ausgabe-Mittel mit dem ersten Prozessor verbunden sind;
    wobei das zweite Gerät einen zweiten Prozessor, zweite Speichermittel und zweite Eingabe/Ausgabe-Mittel umfasst, wobei die zweiten Speichermittel und die zweiten Eingabe/Ausgabe-Mittel mit dem zweiten Prozessor verbunden sind;
    wobei das Verfahren mindestens die folgenden Schritte umfasst, die von dem ersten Prozessor ausgeführt werden:
    • a. Ausführen eines ersten Programmschrittes in Übereinstimmung mit einem vorgegebenen ersten Programm;
    • b. Erstellen von ersten Zustandsdaten, welche sich auf das erste Programm beziehen, nach Ausführung des ersten Programmschritts, wobei die ersten Zustandsdaten in den ersten Speichermitteln gespeichert sind und alle Daten einschließen, die für das erste Programm erforderlich sind, um fortzufahren, wenn Instruktionen von dem zweiten Prozessor empfangen worden sind;
    • c. Übermitteln eines ersten Kommunikationsprimitivs, in Übereinstimmung mit dem ersten Programm, wobei das erste Kommunikationsprimitiv erste zusätzliche Daten einschließt, die eine erste vorgegebene Beziehung zu den ersten Zustandsdaten aufweisen; gefolgt von den folgenden Schritten mittels des zweiten Prozessors:
    • d. Empfangen des ersten Kommunikationsprimitivs;
    • e. Extrahieren der ersten zusätzlichen Daten aus dem ersten Kommunikationsprimitiv und Speichern der ersten zusätzlichen Daten in den zweiten Speichermitteln;
    • f. Ausführen eines zweiten Programmschritts in Übereinstimmung mit einem zweiten Programm;
    • g. Lesen der ersten zusätzlichen Daten von dem zweiten Speicher;
    • h. Übermitteln eines zweiten Kommunikationsprimitivs an das erste Gerät, in Übereinstimmung mit dem zweiten Programm, wobei das zweite Kommunikationspri mitiv zweite zusätzliche Daten einschließt, die eine zweite vorgegebene Beziehung mit den ersten zusätzlichen Daten aufweisen; gefolgt von den folgenden Schritten, die von dem ersten Prozessor ausgeführt werden:
    • i. Empfangen des zweiten Kommunikationsprimitivs;
    • j. Extrahieren der zweiten zusätzlichen Daten aus dem zweiten Kommunikationsprimitiv und Ableiten der ersten zusätzlichen Daten aus den zweiten zusätzlichen Daten;
    • k. Überprüfen, ob die abgeleiteten ersten zusätzlichen Daten die erste vorgegebene Beziehung zu den ersten Zustandsdaten aufweisen; falls dies nicht der Fall ist, entweder Abbrechen des ersten Programms oder Starten eines Wiederherstellungsprozesses; falls dies der Fall ist, Fortfahren mit:
    • l. Ausführen eines dritten Programmschritts in Übereinstimmung mit dem ersten Programm.
  • Somit wird der Schutz gegen eine Fehlfunktion eines Geräts, beispielsweise aufgrund eines Energieverlusts, erreicht durch Anreicherung der gewöhnlichen Kommunikation zwischen den Geräten mit zusätzlichen Daten, welche im Wesentlichen dem zu schützenden Gerät gehören. Das zu schützende Gerät kommuniziert über das andere Gerät mit sich selbst, indem es die zusätzlichen Daten, die sich auf seinen eigenen inneren Zustand beziehen, transmittiert.
  • Der Zustand eines Gerätes umfasst alle Daten, welche erforderlich sind, dass ein Programm, welches auf dem Gerät abläuft, mit dem nächsten Programmschritt (1) in dem Programm fortfahren kann, nachdem es eine Antwort von dem anderen Gerät erhalten hat. Einige der Zustandsdaten können als „beständige Zustandsdaten" bezeichnet werden, d. h. als Daten, welche von dem Gerät für eine Zeitdauer gespeichert werden sollen, die sich möglicherweise über das Ende des Protokolls hinaus erstreckt, z. B. unter Verwendung eines nicht-flüchtigen Speichers, wie beispielsweise eines EEPROMs. Darüber hinaus existieren „flüchtige Zustandsdaten", welche sich auf optionale nächste Programmschritte in dem Programm, welches auf dem Gerät abläuft, beziehen. Welche Option gewählt wird, kann von den Instruktionen abhängen, welche von dem anderen Gerät empfangen werden. Das Programm erfordert die Abspeicherung dieser Zustandsdaten, um in der Lage zu sein, das Programm an seinem korrekten Punkt fortzusetzen, nachdem es Instruktionen von dem anderen Gerät erhalten hat. Üblicherweise sind die Zustandsdaten in einem flüchtigen Speicher gespeichert. Somit können diese Zustandsdaten nach einer Unterbrechung der Energieversorgung verloren gehen. Eine Unterbrechung der Energieversorgung kann insbesondere auftreten, wenn kontaktlose Smart Cards eingesetzt werden.
  • Das zweite Gerät extrahiert, nachdem es ein Kommunikationsprimitiv des ersten Geräts erhalten hat, die ersten zusätzlichen Daten aus dem Kommunikationsprimitiv und speichert sie in seinem eigenen Speicher. Nachdem ein nächster Programmschritt in seinem eigenen Programm ausgeführt worden ist, fügt das zweite Gerät zweite zusätzliche Daten zu einem Kommunikationsprimitiv hinzu, welches an das erste Gerät transmittiert werden soll. Die zweiten zusätzlichen Daten weisen eine vorgegebene Beziehung zu den ersten zusätzlichen Daten auf. Das erste Gerät wird die zweiten zusätzlichen Daten, welche von dem zweiten Gerät übermittelt wurden, in der nächsten Nachricht empfangen.
  • Die Beziehung zwischen den zweiten und ersten zusätzlichen Daten kann einfach sein: Sie können einander gleichen. Dann kann das erste Gerät die ersten zusätzlichen Daten unverändert von dem zweiten Gerät empfangen. Vorteilhaft für eine effiziente Nutzung der Kommunikationsbandbreite können jedoch die ersten zusätzlichen Daten oder Teile davon, in einer weiteren Ausführungsform, von dem zweiten Gerät zusätzlich als Eingabemedium für den in Schritt f. beschriebenen Prozessschritt eingesetzt werden. Darüber hinaus kann das zweite Gerät, zusätzlich zu einem Abspeichern der ersten zusätzlichen Daten, die ersten zusätzlichen Daten selbst verarbeiten, vorausgesetzt, dass diese Verarbeitung in verarbeiteten zweiten zusätzlichen Daten resultiert, die an das erste Gerät in dem zweiten Kommunikationsprimitiv übermittelt werden, für welches die erste Beziehung zu den ersten Zustandsdaten in dem ersten Gerät verifiziert werden kann, beispielsweise indem zunächst die Verarbeitung, welche in dem zweiten Gerät an den zusätzlichen Daten vorgenommen wurde, rückgängig gemacht wird. Die Modifikation der ersten zusätzlichen Daten kann auf diese Weise zusätzliche Informationen von dem zweiten Gerät an das erste Gerät übermitteln, was möglicherweise auch in einer effizienteren Nutzung der Kommunikationsbandbreite resultiert.
  • Die zusätzlichen Daten werden von dem ersten Gerät eingesetzt, um zu überprüfen, ob das auf ihm ablaufende Programm in einem korrekten Zustand wartet. Dies erfolgt durch Überprüfung, ob die empfangenen zusätzlichen Daten die vorgegebene Beziehung mit den Zustandsdaten aufweisen. Die Zustandsdaten können selbst in einem nicht-flüchtigen Teil des Speichers des ersten Gerätes gespeichert sein und werden somit sogar nach einem Ausfall der Energieversorgung vorhanden sein. Alternativ kann der nicht-flüchtige Teil des Speichers Daten speichern, von welchen diese Zustandsdaten abgeleitet werden können, wie unten erläutert werden wird.
  • Vorzugsweise umfasst das Verfahren in dieser ersten Ausführungsform die folgenden Schritte nach l:
    • m. Erstellen von zweiten Zustandsdaten, die sich auf das erste Programm beziehen, nachdem der dritte Programmschritt ausgeführt wurde;
    • n. Übermitteln eines dritten Kommunikationsprimitivs an das zweite Gerät, in Übereinstimmung mit dem ersten Programm, wobei das dritte Kommunikationsprimitiv dritte zusätzliche Daten umfasst, welche eine dritte vorgegebene Beziehung zu sowohl den ersten als auch den zweiten Zustandsdaten aufweisen.
  • In dieser letzteren Ausführungsform umfasst das dritte Kommunikationsprimitiv nicht nur zusätzliche Daten, die eine vorgegebene Beziehung zu den zweiten Zustandsdaten aufweisen, sondern auch zu den ersten Zustandsdaten. Durch das Bereitstellen jeglicher zusätzlicher Daten mit Daten, welche eine vorgegebene Beziehung zu allen vorhergehenden Zustandsdaten aller vorhergehenden Programmschritte in dem Programm in dem zu schützenden Gerät aufweisen, wird das Gerät in der Lage sein, das gesamte Programm nach einem Fehler in der Energieversorgung wiederherzustellen.
  • Dieselbe Art von Schutz kann mit dem zweiten Gerät erzielt werden. Daher bezieht sich die Erfindung in einer zweiten Ausführungsform auch auf ein Verfahren zur Kommunikation zwischen mindestens einem ersten Gerät und einem zweiten Gerät;
    wobei das erste Gerät einen ersten Prozessor, erste Speichermittel und erste Eingabe/Ausgabe-Mittel umfasst, wobei die ersten Speichermittel und die ersten Eingabe/Ausgabe-Mittel mit dem ersten Prozessor verbunden sind;
    wobei das zweite Gerät einen zweiten Prozessor, zweite Speichermittel und zweite Eingabe/Ausgabe-Mittel umfasst, wobei die zweiten Speichermittel und die zweiten Eingabe/Ausgabe-Mittel mit dem zweiten Prozessor verbunden sind;
    wobei das Verfahren mindestens die folgenden Schritte umfasst, welche von dem ersten Prozessor ausgeführt werden:
    • a. Ausführen eines ersten Programmschritts in Übereinstimmung mit einem vorgegebenen ersten Programm;
    • b. Erstellen von ersten Zustandsdaten, welche sich auf das erste Programm beziehen, nachdem der erste Programmschritt ausgeführt wurde, wobei die ersten Zustandsdaten in den ersten Speichermitteln (4) gespeichert sind und alle Daten umfassen, welche für das erste Programm erforderlich sind, um fortzufahren, nachdem Instruktionen von dem zweiten Prozessor empfangen worden sind;
    • c. Übermitteln eines ersten Kommunikationsprimitivs, in Übereinstimmung mit dem ersten Programm, wobei das erste Kommunikationsprimitiv erste zusätzliche Daten umfasst, welche eine erste vorgegebene Beziehung zu den ersten Zustandsdaten aufweisen; gefolgt von den folgenden Schritten mittels des zweiten Prozessors:
    • d. Empfangen des ersten Kommunikationsprimitivs;
    • e. Extrahieren der ersten zusätzlichen Daten aus dem ersten Kommunikationsprimitiv und Speichern der ersten zusätzlichen Daten in den zweiten Speichermitteln;
    • f. Ausführen eines zweiten Programmschritts in Übereinstimmung mit einem zweiten Programm und Erstellen von zweiten Zustandsdaten, welche sich auf das zweite Programm beziehen, nachdem der zweite Programmschritt ausgeführt wurde;
    • g. Lesen der ersten zusätzlichen Daten aus dem zweiten Speicher;
    • h. Übermitteln eines zweiten Kommunikationsprimitivs an das erste Gerät, in Übereinstimmung mit dem zweiten Programm, wobei das zweite Kommunikationsprimitiv zweite zusätzliche Daten umfasst, welche eine zweite vorgegebene Beziehung zu den ersten zusätzlichen Daten aufweisen, und dritte zusätzliche Daten, welche eine vorgegebene Beziehung zu den zweiten Zustandsdaten aufweisen; gefolgt von den folgenden Schritten, welche von dem ersten Prozessor ausgeführt werden:
    • i. Empfangen des zweiten Kommunikationsprimitivs;
    • j. Extrahieren der zweiten und dritten zusätzlichen Daten aus dem zweiten Kommunikationsprimitiv, Speichern der dritten zusätzlichen Daten in den ersten Speichermitteln und Ableiten der ersten zusätzlichen Daten aus den zweiten zusätzlichen Daten;
    • k. Überprüfen, ob die abgeleiteten ersten zusätzlichen Daten die erste vorgegebene Beziehung zu den ersten Zustandsdaten aufweisen; falls dies nicht der Fall ist, entweder Abbrechen des ersten Programms oder Starten eines Wiederherstellungsprozesses; falls dies der Fall ist, Fortfahren mit:
    • l. Ausführen eines dritten Programmschritts, in Übereinstimmung mit dem ersten Programm, und Erstellen von dritten Zustandsdaten, welche sich auf das erste Programm beziehen, nachdem der dritte Programmschritt ausgeführt wurde;
    • m. Lesen der dritten zusätzlichen Daten aus den ersten Speichermitteln;
    • n. Übermitteln eines dritten Kommunikationsprimitivs an das zweite Gerät, in Übereinstimmung mit dem ersten Programm, wobei das dritte Kommunikationsprimitiv vierte zusätzliche Daten einschließt, welche eine vierte vorgegebene Beziehung zu den dritten zusätzlichen Daten aufweisen, und fünfte zusätzliche Daten, welche eine fünfte vorgegebene Beziehung zu den dritten Zustandsdaten aufweisen; gefolgt von den folgenden Schritten, welche von dem zweiten Prozessor ausgeführt werden:
    • o. Empfangen des dritten Kommunikationsprimitivs;
    • p. Extrahieren der vierten und fünften zusätzlichen Daten aus dem dritten Kommunikationsprimitiv, Speichern der fünften zusätzlichen Daten in den zweiten Speichermitteln und Ableiten der dritten zusätzlichen Daten aus den vierten zusätzlichen Daten;
    • q. Überprüfen, ob die abgeleiteten dritten zusätzlichen Daten die dritte vorgegebene Beziehung zu den zweiten Zustandsdaten aufweisen; falls dies nicht der Fall ist, entweder Abbrechen des zweiten Programms oder Starten eines Wiederherstellungsprozesses; falls dies der Fall ist, Fortfahren mit:
    • r. Ausführen eines vierten Programmschritts in Übereinstimmung mit dem zweiten Programm.
  • Die vorliegende Erfindung bezieht sich auch auf ein verteiltes Verarbeiten, in dem Sinne, dass sie nicht beschränkt ist auf Kommunikationen zwischen zwei Geräten. Sie bezieht sich auch auf Situationen, in welchen ein Prozessor Kommunikationsprimitive an einen gemeinsamen Datenspeicher oder Datenübermittlungsmittel übermittelt, wie beispielsweise einen zentralen Speicher, welcher dieses Kommunikationsprimitiv speichert. Ein Gerät aus einer Vielzahl anderer Geräte kann dieses Kommunikationsprimitiv aus dem zentralen Speicher lesen. Natürlich muss, nachdem das Kommunikationsprimitiv aus dem zentralen Speicher gelesen worden ist, ein Mechanismus existieren, um andere Geräte darüber zu informieren, dass das Kommunikationsprimitiv gelesen und verarbeitet worden ist. Dies kann dadurch erfolgen, dass das Kommunikationsprimitiv aus dem zentralen Speicher entfernt wird, nachdem es gelesen wurde. Alternativ kann jedoch das Kommunikationsprimitiv in dem zentralen Speicher gespeichert bleiben. Dann kann ein Indikator zu dem Kom munikationsprimitiv in dem zentralen Speicher hinzugefügt werden, um andere Geräte darüber zu informieren, dass das Kommunikationsprimitiv von einem Gerät gelesen worden ist und nicht von einem anderen Gerät verarbeitet werden muss.
  • Die Beziehung zwischen den zusätzlichen Daten und den Zustandsdaten kann darauf basieren, dass eines oder mehrere der folgenden Verfahren verwendet werden, entweder allein oder in Kombination: Anwenden eines Verschlüsselungsverfahrens, Anwenden einer kyptographischen Hash-Funktion, und Anwenden einer Verschlüsselung mit Einmal-Pad-Funktion.
  • Um das Verfahren in Übereinstimmung mit der ersten Ausführungsform der vorliegenden Erfindung auszuführen, bezieht sich die Erfindung auch auf ein System, wie es in dem unabhängigen Anspruch 10 beansprucht wird.
  • Um ein Verfahren in Übereinstimmung mit der zweiten Ausführungsform der vorliegenden Erfindung auszuführen, bezieht sich die vorliegende Erfindung auch auf ein System, wie es in dem unabhängigen Anspruch 11 beansprucht wird.
  • Die vorliegende Erfindung bezieht sich auch auf Geräte, welche eingerichtet sind, um miteinander zu kommunizieren, um das erfindungsgemäße Verfahren auszuführen. Daher bezieht sich die Erfindung auch auf ein Gerät, welches einen Prozessor, Speichermittel und Eingabe/Ausgabe-Mittel umfasst, wobei die Speichermittel und Eingabe/Ausgabe-Mittel mit dem Prozessor verbunden sind;
    wobei der Prozessor eingerichtet ist, um mindestens die folgenden Schritte auszuführen:
    • a. Ausführen eines ersten Programmschritts, in Übereinstimmung mit einem vorgegebenen Programm;
    • b. Erstellen von ersten Zustandsdaten, welche sich auf das Programm beziehen, nachdem der erste Programmschritt ausgeführt wurde, wobei die ersten Zustandsdaten in den ersten Speichermitteln (4) gespeichert sind und alle Daten umfassen, welche für das erste Programm erforderlich sind, um fortzufahren, nachdem Instruktionen von dem zweiten Prozessor empfangen worden sind;
    • c. Übermitteln eines ersten Kommunikationsprimitivs, in Übereinstimmung mit dem Programm, wobei das erste Kommunikationsprimitiv erste zusätzliche Daten umfasst, welche eine vorgegebene Beziehung zu den ersten Zustandsdaten aufweisen;
    • d. Empfangen des ersten Kommunikationsprimitivs von einem anderen Gerät;
    • e. Extrahieren zweiter zusätzlicher Daten aus dem zweiten Kommunikationsprimitiv und Ableiten der ersten zusätzlichen Daten aus den zweiten zusätzlichen Daten;
    • f. Überprüfen, ob die abgeleiteten ersten zusätzlichen Daten eine vorgegebene Beziehung zu den Zustandsdaten aufweisen; falls dies nicht der Fall ist, entweder Abbrechen des Programms oder Starten eines Wiederherstellungsprozesses; falls dies der Fall ist, Fortfahren mit:
    • g. Ausführen eines zweiten Programmschritts, in Übereinstimmung mit dem Programm.
  • Ein derartiges Gerät kann eine Smart Card sein.
  • Vorzugsweise ist der Prozessor eingerichtet, um nach einer Unterbrechung und Wiederherstellung der Energieversorgung an dem Prozessor die folgenden Schritte auszuführen:
    Empfangen mindestens eines Kommunikationsprimitivs von entweder dem anderen Gerät oder einem zentralen Speicher, wobei das Kommunikationsprimitiv eine vorgegebene Beziehung zu letzten Zustandsdaten aufweist, die in Übereinstimmung mit einem letzten Programmschritt erstellt wurden, der von dem ersten Programm ausgeführt worden ist;
    Wiederaufnehmen des ersten Programms mit einem weiteren Programmschritt, welcher auf den letzten Programmschritt folgt.
  • Die vorliegende Erfindung bezieht sich auch auf ein Gerät, welches ein Terminal ist, das eingerichtet ist, um mit einer Smart Card zu kommunizieren, welches einen Prozessor umfasst, Speichermittel und Eingabe/Ausgabe-Mittel, wobei die Speichermittel und Eingabe/Ausgabe-Mittel mit dem Prozessor verbunden sind;
    wobei der Prozessor eingerichtet ist, um die folgenden Schritte auszuführen:
    • a. Empfangen eines ersten Kommunikationsprimitivs von einem anderen Gerät;
    • b. Erkennen, dass das erste Kommunikationsprimitiv zusätzliche Daten umfasst, welche eine erste vorgegebene Beziehung zu Zustandsdaten aufweisen, die sich auf ein erstes Programm beziehen, welches auf einem anderen Gerät abläuft, wobei die ersten Zustandsdaten alle Daten umfassen, die für das erste Programm erforderlich sind, um fortzufahren, nachdem Instruktionen von dem Prozessor empfangen worden sind;
    • c. Extrahieren der zusätzlichen Daten aus dem ersten Kommunikationsprimitiv und Speichern der zusätzlichen Daten in den Speichermitteln;
    • d. Ausführen eines Programmschritts, in Übereinstimmung mit dem zweiten Programm;
    • e. Lesen der ersten zusätzlichen Daten aus dem Speicher;
    • f. Übermitteln eines zweiten Kommunikationsprimitivs an das andere Gerät, in Übereinstimmung mit dem zweiten Programm, wobei das zweite Kommunikationsprimitiv zweite zusätzliche Daten umfasst, welche eine zweite vorgegebene Beziehung zu den ersten zusätzlichen Daten aufweisen.
  • Die vorliegende Erfindung wird verdeutlicht unter Bezugnahme auf einige Zeichnungen, welche lediglich Verdeutlichungszwecken dienen sollen. Die vorliegende Erfindung ist in ihrem Umfang lediglich durch die angehängten Ansprüche beschränkt.
  • 1 zeigt eine schematische Darstellung eines Terminals und einer kontaktlosen Smart Card, welche angeordnet sind, um miteinander gemäß dem Stand der Technik zu kommunizieren;
  • 2 zeigt drei Geräte, welche in der Lage sind, miteinander über ein Kommunikationsnetzwerk zu kommunizieren, um die weitere Ausführungsform der vorliegenden Erfindung zu verdeutlichen;
  • 3a und 3b zeigen ein Flussdiagramm des erfindungsgemäßen Verfahrens in Übereinstimmung mit einem ersten Ausführungsbeispiel;
  • 4 zeigt einen Mechanismus, um Zustandsdaten zu erzeugen.
  • 1 zeigt eine Smart Card 2, welche mit einem Mikroprozessor 6 ausgestattet ist, der mit einem Speicher 4 und einer Spule 8 verbunden ist.
  • Die Spule 8 dient der kontaktlosen Kommunikation mit einem anderen Gerät, wie beispielsweise einem Terminal 10, mittels elektromagnetischer Energie, wie es Fachleuten bekannt ist. Vorzugsweise wird auch die für den Betrieb des Mikroprozessors 6 erforderliche Energie über die Spule 8 von dem anderen Gerät bereitgestellt, zum Beispiel dem Terminal 10. Wie dies erfolgt, ist Fachleuten ebenfalls bekannt und bedarf keiner weiteren Erläuterung hier. Natürlich kann die Spule 8 ersetzt werden durch irgendeine andere Art von Schnittstellenmitteln oder Eingabe/Ausgabe-Mitteln, welche aus dem Stand der Technik bekannt sind. Die Spule 8 kann beispielsweise ersetzt werden durch elektrisch leitfähi ge Anschlusskontakte, mittels derer ein elektrischer Kontakt mit dem Terminal 10 hergestellt werden kann.
  • Der Speicher 4 ist als einzelner Block dargestellt. Der Speicher 4 wird jedoch normalerweise einen RAM (Random Access Memory, Schreib-Lese-Speicher), ROM (Read Only Memory, Festwertspeicher) und ein EEPROM (Electrically Erasable Programmable Read Only Memory, elektrisch löschbarer programmierbarer Festwertspeicher) umfassen. Diese Arten von Speichern sind Fachleuten bekannt. Falls nötig, können andere Speicherarten zu der Smart Card 2 hinzugefügt werden. Das EEPROM wird von dem Mikroprozessor eingesetzt werden, um Informationen auf der Karte 2 selbst in einer nicht-flüchtigen Art zu speichern, d. h. sie verbleiben selbst nach einem Ausfall der Energieversorgung in dem EEPROM gespeichert.
  • Das Terminal 10 umfasst eine Spule 14. Die Spule 14 wird von dem Terminal 10 eingesetzt, um mit der Smart Card 2 über die Spule 8 der Smart Card 2 zu kommunizieren. Sowohl die Energie als auch Daten werden über die Spule 14 an die Smart Card 2 übermittelt, wie es Fachleuten bekannt ist. Natürlich muss, wenn die Smart Card 2 eine andere Art von Eingabe/Ausgabe-Mitteln als die Spule 8 hat, das Terminal 10 mit einer geeigneten anderen Art von Eingabe/Ausgabe-Mitteln ausgestattet sein. Daher kann die Spule 14 ersetzt werden durch eine beliebige andere Art von Eingabe/Ausgabe-Mitteln, wie sie aus dem Stand der Technik bekannt ist, z. B. Verbinder zum Herstellen eines elektrisch leitenden Kontaktes.
  • Der Prozessor 16 des Terminals 10 ist mit einem Speicher 18, einem Display 22 und einer Tastatur 20 verbunden. Das Display 22 kann von einer beliebigen aus dem Stand der Technik bekannten Art sein, zum Beispiel ein Monitor oder ein LCD-Display. Die Tastatur 20 kann ersetzt werden durch eine beliebige andere Art von Eingabemitteln, um es einem Benutzer zu ermöglichen, relevante Daten einzugeben, wie beispielsweise einen Touch Screen oder eine beliebigen andere Art von Eingabemitteln, wie sie aus dem Stand der Technik bekannt sind. Die Tastatur 20 oder gleichwertige Mittel und das Display 22 können fehlen.
  • Vorzugsweise kann der Prozessor 16 mit anderen, entfernt angeordneten Prozessoren (nicht dargestellt) verbunden sein über eine Kommunikationslinie 17. Dann können die entfernt angeordneten (remote) Prozessoren/der entfernt angeordnete Prozessor einen Teil des Kommunikationsprotokolls mit der Smart Card 2 ausführen. Dies ist beispielsweise nötig, wenn die Transaktion zwischen dem Terminal 10 und der Smart Card 2 sich auf ei nen Abbuchungsprozess oder eine Kredittransaktion bezieht, bezüglich eines Kontos, das auf einem entfernt angeordneten Gerät verwaltet wird.
  • Der Speicher 18 wurde als einzelner Block dargestellt. In der Praxis wird dieser Speicher 18 jedoch verschiedene Arten von Speichern umfassen, einschließlich möglicherweise einem oder mehreren der folgenden Speicherarten: RAM, ROM, EEPROM und Festplatte. Wie in der Smart Card 2, speichern die nicht-flüchtigen Speicherarten ausführbare Programme und andere Daten, die für die beabsichtigten Funktionen des Geräts erforderlich sind. Typischerweise dient mindestens ein Teil des Arbeitsspeichers und des nichtflüchtigen Speichertyps der ausschließlichen Benutzung durch das Gerät, während dieses Programme ausführt.
  • Üblicherweise erfolgt die Kommunikation zwischen dem Terminal 10 und der Smart Card 2 nicht permanent oder festgelegt und kann (re-)initialisiert werden zu jedem gewünschten Zeitpunkt. Eine derartige Situation ist typisch für Kommunikationen zwischen Smart Cards und Terminals. Jedoch können derartige Kommunikationen auch in einer Client-Server-Beziehung auftreten, zwischen Computer, die miteinander über ein Datennetzwerk, wie beispielsweise dem Internet, kommunizieren. Daher ist die vorliegende Erfindung nicht auf Smart Cards und Terminals zur Kommunikation mit Smart Cards beschränkt, sondern ist auch anwendbar auf andere Geräte, die eingerichtet sind, um miteinander zu kommunizieren. Datenkommunikationen zwischen Geräten erfolgen typischerweise als ein Austausch von Dateneinheiten, welche üblicherweise als „Pakete", „Nachrichten" oder „Kommunikationsprimitive" bezeichnet werden. Daher ist, im Zusammenhang der vorliegenden Erfindung, ein Kommunikationsprimitiv eine beliebige Art von Nachricht, welche beispielsweise Instruktionen, Aussagen und/oder Daten einschließt. Ein derartiges Kommunikationsprimitiv umfasst einen Kopf (Header) und eine Nutzlast (Payload), wie es Fachleuten bekannt ist.
  • Die vorliegende Erfindung ist auch anwendbar auf drei oder mehr Geräte, welche eingerichtet sind, um miteinander über ein Kommunikationsnetzwerk zu kommunizieren. 2 zeigt schematisch eine derartige Situation. Die Geräte 2 und 10 können sich auf dieselben Arten von Geräten wie in 1 beschrieben beziehen.
  • Gerät 26 ist eingerichtet, um mit anderen Geräten zu kommunizieren, und umfasst mindestens einen Prozessor 30, der mit einer Schnittstelle 28 und einem Speicher 32 verbunden ist. Die Schnittstelle 28 funktioniert als das Eingabe/Ausgabe-Mittel zwischen dem Prozessor 30 und einem Kommunikationsnetzwerk 24. Das Kommunikationsnetzwerk 24 kann beispielsweise ein PSTN (Public Switched Telephone Network, öffentlich geschaltetes Telefonnetzwerk) oder eine beliebige andere Art von Kommunikationsnetzwerk sein, entweder WAN (Wide Area Network, Weitverkehrsnetz) oder LAN (Local Area Network, lokales Netzwerk), oder eine andere Art. Es kann auch das Internet sein. Die Schnittstelle 28 kann von beliebiger Art sein, wie sie den Fachleuten bekannt ist.
  • Der Speicher 32 wurde als einzelner Block dargestellt. In der Praxis wird der Speicher 32 ein RAM, ROM, EEPROM oder eine beliebige andere Art von Speicher umfassen, entweder allein oder in Kombination, wie es Fachleuten bekannt ist. Sie können in einer oder mehreren physikalischen Einheiten realisiert sein.
  • Wie unten erläutert werden wird, kann zur Implementierung einer speziellen Ausführungsform der vorliegenden Erfindung ein zentraler Speicher 34 vorliegen, welcher für jedes der Geräte 2, 10, 26 über das Netzwerk 24 zum Speichern und Extrahieren von Daten zugänglich ist. Der zentrale Speicher 34 kann mit Intelligenz (nicht dargestellt) ausgestattet sein, um Speicher-, Lese- und Lösch-Vorgänge auszuführen, wie es Fachleuten bekannt ist. Somit kann der zentrale Speicher 34 Teil eines gemeinsamen (shared) Datenspeichers oder von Datenübertragungsmitteln sein.
  • Das Netzwerk 24, welches die Geräte 2, 10, 26 verbindet, kann öffentlich zugänglich sein, in dem Sinn, dass viele Geräte gleichzeitig das Netzwerk nutzen können, unter Verwendung einer beliebigen bekannten Netzwerk-Zuordnungs-Prozedur, um eine Kommunikation in einer pseudo-privaten Weise durchzuführen. Ein Teilen des Netzwerks ermöglicht eine Teilung der Datenkommunikation zwischen beliebigen der anderen Geräte, welche mit dem Netzwerk verbunden sind. Daher existiert, wenn ein gemeinsames Netzwerk verwendet wird, die Privatsphäre der kommunizierten Daten sowie des Kommunikationsschemas nicht tatsächlich. Dann muss, falls dies erforderlich ist, die Privatsphäre der Nutzer der Geräte bereitgestellt werden mittels anderer Mittel, was oft eine Verschlüsselung einschließt. Andererseits ermöglicht die Teilung der Datenkommunikation zwischen beliebigen der Geräte, welche mit dem gemeinsamen Netzwerk verbunden sind, dass die Kommunikation zwischen diesen Geräten, welche mit den Medien verbunden sind, tatsächlich durch eine Anzahl physikalisch unterschiedlicher Geräte durchgeführt wird, welche für den Zweck einer speziellen Kommunikation als ein einziges „logisches" Gerät zusammenarbeiten.
  • Ein Gerät oder in gleicher Weise eine Sammlung von zusammenarbeitenden Geräten nehmen an der Kommunikation entweder in der Rolle eines Initiators, im Allgemeinen als der „Klient” bezeichnet, oder in der Rolle eines Antwortenden, im Allgemeinen als der „Server" bezeichnet, teil. Folglich wird eine spezielle Sequenz von Nachrichten zwischen dem Klienten und dem Server ausgetauscht, um einen „Service" bereitzustellen, welcher von dem Server an den Klienten geliefert wird. In der in 1 gezeigten Anordnung ist das Terminal 10 der Klient, wohingegen die Smart Card 2 der Server ist.
  • Das System kommunizierender Geräte kann auch Geräte einschließen, welche als getrennte Prozesse realisiert sind, oder Kontrollpfade, auf einem einzelnen Computer, welcher über einen gemeinsamen Speicher kommuniziert.
  • Die Datenkommunikation zwischen derartigen Geräten beliebiger Art und Struktur wird üblicherweise auf eine geordnete Art durchgeführt, mit einer Sequenz von Nachrichten, welche zwischen den Geräten ausgetauscht werden, beginnend mit einer anfänglichen Nachricht von dem Klienten. Für den Zweck der Kommunikation sind die Nachrichten oder Kommunikationsprimitive identifizierbar durch den empfangenden Teilnehmer, wie dies in der geordneten Sequenz von Nachrichten geeignet ist.
  • Jede Nachricht oder jedes Kommunikationsprimitiv, welche empfangen werden, übermitteln Informationen, welche für das empfangende Gerät erforderlich sind, um einen einzelnen Schritt hin zum Ziel der Kommunikationssequenz fortzuschreiten. Zu diesem Zweck implementiert das empfangende Gerät in irgendeiner Weise Funktionen, welche üblicherweise als „Zustandsmaschine" bekannt sind, um zu erkennen, dass das empfangene Kommunikationsprimitiv in die Sequenz passt, und, wenn dies zweckdienlich ist, um die Daten in dem Kommunikationsprimitiv weiter zu interpretieren. Die Zustandsmaschine umfasst im Allgemeinen ausführbare Befehle und beschreibende Daten, welche in dem Speicher des Gerätes gespeichert sind, welche in Kombination beschreiben:
    • (1) welche Nachricht zu erwarten ist;
    • (2) die Art, auf welche beliebige Daten, die in der Nachricht enthalten sind, verarbeitet werden sollen; und
    • (3) welche Nachricht als Antwort gesendet werden soll.
  • Insbesondere kann der Arbeitsspeicher des empfangenden Gerätes derartige beschreibende Daten umfassen, welche sofort aktualisiert werden können, bevor eine Nachricht in ihrer Gesamtheit an das andere Gerät gesendet worden ist, um den Fortschritt widerzuspiegeln, welcher in der geordneten Sequenz der Nachrichten erzielt worden ist. Der Arbeitsspeicher des empfangenden Geräts kann auch die Resultate der Verarbeitung der empfangenen Nachrichtendaten umfassen, zum Beispiel ein Modifizieren oder Abspeichern beliebiger Daten, welche in den Nachrichten empfangen worden sind. Derartige beschreibende Daten in dem Arbeitsspeicher werden üblicherweise als „Zustandsdaten" oder kurz „Zustand" bezeichnet.
  • Alle logischen Geräte 2, 10, 26, die in Übereinstimmung mit der vorliegenden Erfindung mittels eines geordneten Austausches von Kommunikationsprimitiven kommunizieren, halten jeweils in den Speichern 4, 18, 32 Daten aufrecht, welche den Zustand der Kommunikation definieren.
  • Die Zustandsdaten werden üblicherweise in flüchtigem Speicher gespeichert. Daher ist es nach einem Ausfall der Energieversorgung nicht sicher, dass die Zustandsdaten in dem flüchtigen Speicher immer noch gültig sind. Sie können teilweise oder vollständig verloren gegangen sein. Um zu bestätigen, dass die Zustandsdaten in dem Arbeitsspeicher immer noch gültig sind, nachdem das Gerät ein nächstes Kommunikationsprimitiv des anderen Gerätes empfangen hat, schlägt die vorliegende Erfindung ein spezielles Verfahren vor, welches im Folgenden erläutert werden wird. Es sei darauf hingewiesen, dass das Verfahren auch gegen teilweisen oder vollständigen Verlust von Zustandsdaten aufgrund von anderen Ursachen als einem Ausfall der Energieversorgung schützt.
  • In Übereinstimmung mit der vorliegenden Erfindung umfasst in dem beschriebenen System und dem Verfahren mindestens eines der Kommunikationsgeräte zusätzliche Daten in mindestens einem der Kommunikationsprimitive, welches es an das andere Gerät sendet. Diese zusätzlichen Daten repräsentieren den inneren Zustand, wie er allgemein beschrieben wird, durch die Daten, die in seinem Arbeitsspeicher abgespeichert sind. Dies wird weiter verdeutlicht unter Bezugnahme auf die 3a und 3b. In den 3a und 3b wird ein Kommunikationsverfahren zwischen zwei Geräten gemäß der Erfindung verdeutlicht, d. h. einem Gerät A (dem Server, beispielsweise einer Smart Card 2) und einem Gerät B (dem Klienten, beispielsweise dem Terminal 10).
  • Gerät A ist typischerweise ein Server, welcher Zustandsdaten aufrechterhalten muss, die sich auf die empfangenen Nachrichten beziehen, und auf die Daten, welche diese Nachrichten enthalten. Insbesondere kann jeder Sicherheitsstatus, wie beispielsweise eine Authentifizierung oder ein temporär eingerichteter Verschlüsselungs-Schlüssel, welche von dem Klienten im Laufe des derzeitigen Austauschs von Kommunikationsprimitiven erhalten wurden, Teil der Server-Zustandsdaten sein.
  • Gerät B ist typischerweise ein Klient und umfasst typischerweise spezielle Verarbeitungs-Instruktionen, um ein derartiges Kommunikationsprimitiv zu handhaben, welches derartige zusätzliche Daten umfasst. Insbesondere wird der Klient, als Teil der Verarbeitung des empfangenen Kommunikationsprimitivs, die zusätzlichen Daten aus dem Kommunikationsprimitiv extrahieren, wie im Folgenden erläutert werden wird.
  • Der Kommunikationsprozess startet, indem Gerät B eine Kommunikationsanfrage an Gerät A schickt, um ein vorgegebenes Protokoll mit dem Gerät A auszuführen (Schritt 200).
  • In Schritt 100 empfängt Gerät A die Kommunikationsanfrage von Gerät B und startet die Kommunikation.
  • Der nächste Schritt, Schritt 102, dient dazu, einen ersten Programmschritt auszuführen, in Übereinstimmung mit einem vorgegebenen Programm, in Antwort auf die Kommunikationsanfrage, die von dem Gerät B empfangen wurde.
  • Nach Ausführung des ersten Programmschritts speichert Gerät A in seinem Arbeitsspeicher Zustandsdaten, welche sich auf den Punkt in dem Programm beziehen, an dem das Programm warten muss auf weitere Daten und/oder Instruktionen des Geräts B, oder Daten, aus welchen die Zustandsdaten abgeleitet werden können, Schritt 104.
  • In Schritt 106 sendet Gerät A, um die geeignete Eingabe von Gerät B zu empfangen, ein Kommunikationsprimitiv, einschließend zusätzliche Daten, welche eine vorgegebene Beziehung zu seinen eigenen Zustandsdaten aufweisen, an Gerät B.
  • In Schritt 202 empfängt Gerät B die Nachricht von Gerät A.
  • In Schritt 204 überprüft Gerät B, ob die empfangene Nachricht Prozess-Ende-Instruktionen umfasst. Ist dies der Fall, so springt Gerät B zum Ende seines Programms (Schritt 218). Ist dies nicht der Fall, so schreitet Gerät B mit Schritt 206 fort, in welchem Gerät B die zusätzlichen Daten hinsichtlich der Zustandsdaten des Gerätes A aus der empfangenen Nachricht extrahiert.
  • In Schritt 208 speichert Gerät B diese zusätzlichen Daten in seinem Speicher 18, vorzugsweise ohne diese zusätzlichen Daten zu verarbeiten.
  • In Schritt 210 führt Gerät B einen nächsten Programmschritt aus, in Übereinstimmung mit seinem eigenen Programm.
  • In Schritt 212 speichert Gerät B Zustandsdaten, welche sich auf seinen eigenen Prozess beziehen, in seinem Speicher 18.
  • In Schritt 214 liest Gerät B die zusätzlichen Daten, welche sich auf die Zustandsdaten des Gerätes A beziehen, welche in dem Speicher 18 in Schritt 208 gespeichert wurden, aus dem Speicher 18 aus.
  • In Schritt 216 sendet Gerät B ein Kommunikationsprimitiv, welches mindestens diese letzteren zusätzlichen Daten umfasst, an Gerät A. Dieses Kommunikationsprimitiv kann weiterhin Instruktionen umfassen, welche von dem Gerät A ausgeführt werden sollen.
  • In Schritt 217 überprüft Gerät B, ob sein Prozess sein Ende erreicht hat. Ist dies der Fall, so springt es zu Schritt 218 (Ende). Ist dies nicht der Fall, so springt es zurück zu Schritt 202 und wartet auf weitere Nachrichten von Gerät A.
  • In Schritt 108 empfangt Gerät A das Kommunikationsprimitiv von Gerät B.
  • In Schritt 110 extrahiert das Gerät A die zusätzlichen Daten, welche sich auf die Zustandsdaten des Gerätes A beziehen, aus dem empfangenen Kommunikationsprimitiv.
  • In Schritt 112 überprüft Gerät A, ob die extrahierten zusätzlichen Daten korrekt sind. Dies kann auf verschiedene Weisen erfolgen. Beispielsweise kann Gerät A, wenn es seine letzten gültigen Zustandsdaten in dem Speicher abgespeichert hat, einfach die extrahierten zusätzlichen Daten mit diesen gespeicherten Daten vergleichen, um zu überprüfen, ob diese gleich sind. Alternativ kann das Gerät A auch Daten abgespeichert haben, aus welchen die letzten gültigen Zustandsdaten auf eindeutige Weise abgeleitet werden können. Ein Beispiel wird unten aufgeführt, unter Bezugnahme auf 4. Dann muss das Gerät A die letzten gültigen Zustandsdaten zunächst aus diesen gespeicherten Daten ableiten, wonach ein Vergleich mit den extrahierten zusätzlichen Daten durchgeführt werden kann.
  • Wenn die Überprüfung positiv verläuft, wird es Gerät A erlaubt, das laufende Programm fortzusetzen. Dann schreitet es fort mit Schritt 120, über den Schritt 114. Wenn jedoch festgestellt wird, dass der Überprüfungsschritt 112 kein positives Resultat ergibt, so ist irgendwo ein Fehler aufgetreten. Ein derartiger Fehler kann durch verschiedene Umstände entstehen. Beispielsweise kann ein Fehler in der Energieversorgung für Gerät A aufgetreten sein, was in einem teilweisen oder vollständigen Verlust der Zustandsdaten resultiert, welche in dem Speicher 8 gespeichert sind. Ein anderer Grund kann darin liegen, dass die empfangenen zusätzlichen Daten versehentlich oder absichtlich verändert worden sind. Unabhängig von dem Grund dafür, dass der überprüfte Prozess negativ ist, kann das Programm in Gerät A nicht einfach mit dem Ablauf fortfahren. Nun können zwei verschiedene Schritte durchgeführt werden. Entweder führt Gerät A, nachdem es möglicherweise Gerät B mittels einer Warnnachricht darüber informiert hat, dass ein Fehler aufgetreten ist (Schritt 116), einen Wiederherstellungsprozess aus (Schritt 118), oder es springt zum Ende seines Programms (in 3b nicht gezeigt).
  • Der Wiederherstellungsprozess (Schritt 118) ist möglich, wenn die zusätzlichen Daten, welche von dem Gerät B empfangen worden sind, genügend und verlässliche Informationen für das Gerät A umfassen, um daraus alle notwendigen Zustandsdaten abzuleiten, um sein Programm an dem Punkt fortzusetzen, an welchem der letzte Programmschritt ausgeführt wurde, bevor auf weitere Eingaben von Gerät B gewartet wurde. Nach einem korrekten Wiederherstellungsprozess, was in Schritt 119 überprüft wird, kann das Programm mit Schritt 120 fortfahren. Wenn die Wiederherstellung nicht erfolgreich war, kann eine dementsprechende Nachricht erzeugt werden und an Gerät B übermittelt werden (Schritt 121), und das Programm endet (Schritt 126).
  • In Schritt 120 führt Gerät A einen nächsten Programmschritt aus, in Übereinstimmung mit seinem eigenen Programm.
  • In Schritt 122 speichert Gerät A wiederum, nachdem es den nächsten Programmschritt ausgeführt hat, die derzeit gültigen Zustandsdaten in seinem Speicher 8, oder Daten, aus welchen die Zustandsdaten abgeleitet werden können.
  • Wenn, wie in Schritt 124 angedeutet, festgestellt wird, dass das Programm beendet werden kann, geht es zu Schritt 126. Andernfalls wird das Programm mit Schritt 106 fortgesetzt, um einen neuen Zyklus zu starten, in Übereinstimmung mit der vorliegenden Erfindung. Nach Schritt 126 kann das Programm mit Schritt 100 fortfahren.
  • Während des Wiederherstellungsschritts 118 wird das Gerät A überprüfen, ob die empfangenen zusätzlichen Daten von Gerät B verbunden sind mit einem Zustand an einem Punkt in seinem Programm, an welchem es sich nun befinden könnte, wenn kein Fehler aufgetreten wäre, oder ob dies nicht der Fall ist. In den meisten Fällen wird dies lediglich möglich sein, wenn das Gerät A einige relevante Daten in seinem nicht-flüchtigen Speicherteil gespeichert hat, welche immer noch vorhanden sind nach dem Ausfall der Energieversorgung. Diese relevanten Daten in dem nicht-flüchtigen Speicherteil müssen nicht umfangreich sein. Die meisten der Daten können in dem flüchtigen Speicherteil des Speichers 8 gespeichert sein und können zurückerhalten werden von Gerät B im nächsten Kommunikationsprimitiv, zum Beispiel enthalten in den zusätzlichen Daten.
  • Der Wiederherstellungsprozess kann leicht umgesetzt werden, wenn das Gerät A die zusätzlichen Daten zu irgendeiner Zeit generiert, derart, dass sie eine vorgegebene Beziehung nicht nur zu den letzten Zustandsdaten in dem laufenden Programm aufweisen, sondern auch zu allen vorhergehenden Zustandsdaten. Dann ist es einfacher für das Gerät A, zu bestimmen, welche Programmschritte in dem Programm bereits ausgeführt worden sind, und somit, welche Zustände in der Vergangenheit schon erreicht worden sind.
  • Die Erfindung ist nicht beschränkt auf die Erzeugung derartiger zusätzlicher Daten mit einer vorgegebenen Beziehung zu den Zustandsdaten in Gerät A. Sie ist auch anwendbar auf Gerät B. Somit kann auch Gerät B mit der Option ausgestattet sein, zusätzliche Daten, die sich auf die Zustandsdaten des laufenden Programms auf Gerät B beziehen, zu generieren. Derartige zusätzliche Daten, die von Gerät B erzeugt werden, werden an das Gerät A mit dem nächsten Kommunikationsprimitiv übermittelt und werden von Gerät A aus jedem Kommunikationsprimitiv extrahiert. Nachdem jegliche Instruktionen ausgeführt worden sind, wird Gerät A weitere zusätzliche Daten einfügen, welche eine vorgegebene Beziehung zu (z. B. können diese gleich sein mit) den zusätzlichen Daten haben, die von Gerät B empfangen werden, in ein nächstes Kommunikationsprimitiv einfügen, welches an Gerät B übermittelt werden soll. Dann hat Gerät B denselben Grad an Schutz wie Gerät A.
  • Sowohl für Gerät A als auch für Gerät B weisen die zusätzlichen Daten, so wie sie erzeugt worden sind, eine vorgegebene Beziehung zu allen vorhergehenden Zustandsdaten innerhalb der jeweiligen Geräte A und B auf.
  • In der Erläuterung der 3a und 3b, wie sie oben gegeben wurde, war eine einfache Beziehung zwischen den zusätzlichen Daten, die von Gerät B empfangen wurden und später an Gerät A zurückübermittelt wurden, angenommen worden: Sie können einander gleich sein. Dann empfangt Gerät A die zusätzlichen Daten unverändert vom Gerät B. Vorteilhaft für eine effiziente Nutzung der Kommunikationsbandbreite können die zusätzlichen Daten oder Teile davon in einer weiteren Ausführungsform auch von Gerät B als Eingabemedium für den Verarbeitungsschritt, der in Schritt 210 beschrieben wurde, ge nutzt werden. Darüber hinaus kann Gerät B, zusätzlich zu einem Abspeichern der empfangenen zusätzlichen Daten, die empfangenen zusätzlichen Daten selbst verarbeiten, vorausgesetzt, dass dieses Verarbeiten in verarbeiteten neuen zusätzlichen Daten resultiert, die an das Gerät A übermittelt werden, für welche die Beziehung zu den Zustandsdaten in Gerät A durch Gerät A verifiziert werden kann, z. B. indem zunächst die Verarbeitung der zusätzlichen Daten, die in Gerät B erfolgt ist, rückgängig gemacht wird. Diese Modifikation der zusätzlichen Daten kann auf diese Weise überschüssige Informationen von dem zweiten Gerät an das erste Gerät übermitteln, was möglicherweise auch in einer effizienteren Nutzung der Kommunikationsbandbreite resultiert.
  • Die vorliegende Erfindung ist auch anwendbar auf eine verteilte Umgebung, wie sie in 2 dargestellt ist. Dann kann das Gerät A beispielsweise eine Smart Card 2 sein. Anstelle einer direkten Kommunikation aller Kommunikationsprimitive an ein Gerät B kann Gerät A jedoch tatsächlich auch seine Kommunikationsprimitive zunächst an einen zentralen Speicher 34 übermitteln. Zwei oder mehr Geräte 10, 26 sind angeordnet, um, zu Zeiten, wenn diesen Arbeitszeit zur Verfügung steht, auf dem zentralen Speicher 34 zu überprüfen, ob der zentrale Speicher 34 ein zu verarbeitendes Kommunikationsprimitiv umfasst oder nicht. Eine Option besteht darin, dass ein derartiges Gerät 10, 26 ein vorliegendes Kommunikationsprimitiv aus dem zentralen Speicher 34 ausliest und das Kommunikationsprimitiv anschließend aus dem zentralen Speicher 34 entfernt. Somit kann es vermieden werden, dass ein anderes Gerät ebenfalls das Kommunikationsprimitiv aus dem zentralen Speicher 34 liest, um es zu verarbeiten.
  • Eine andere Option besteht darin, dass das Gerät, welches ein derartiges Kommunikationsprimitiv, das in dem zentralen Speicher 34 vorliegt, gelesen hat, einen Identifikator, wie beispielsweise ein Flag, zu dem Kommunikationsprimitiv in dem zentralen Speicher 34 hinzufügt, welcher anzeigt, dass das Kommunikationsprimitiv schon von einem der Geräte 10, 26 gelesen worden ist und nicht mehr von einem anderen Gerät verarbeitet werden muss. Dann wird der zentrale Speicher 34 alle Kommunikationsprimitive während eines Protokolls sammeln. Wenn diese Kommunikationsprimitive sich alle auf einzelne Zustandsdaten des Programms, das in Gerät 2 ausgeführt worden ist, beziehen, so kann das Gerät 2 nach einem Ausfall der Energieversorgung oder einer anderen Fehlfunktion alle Kommunikationsprimitive aus dem zentralen Speicher 34 einsammeln, um den unterbrochenen Prozess wiederherzustellen. Natürlich ist es in der Ausführungsform, in welcher jedes Kommunikationsprimitiv alle relevanten Daten von allen vorhergehenden Zustandsdaten des Prozesses in dem Gerät 2 umfasst, nicht erforderlich, alle nachfolgenden Kom munikationsprimitive abzuspeichern, sondern lediglich das letzte Kommunikationsprimitiv im Speicher zu behalten.
  • Manchmal kann nach einer Unterbrechung der Energieversorgung und einer Wiederherstellung das Gerät 2 einfach Gerät 10 auffordern, das letzte Kommunikationsprimitiv noch einmal zu übermitteln, und Gerät 2 kann in der Lage sein, den Ablauf seines Programms wieder aufzunehmen.
  • Vorzugsweise umfasst das Kommunikationsprimitiv Identifikationsdaten zum Identifizieren, dass die Kommunikationsprimitive zusätzliche Daten umfassen, welche sich auf Zustandsdaten in einem der Geräte 2, 10, 26 beziehen.
  • Wie unten erläutert werden wird, kann die Beziehung zwischen den zusätzlichen Daten und den Zustandsdaten darauf basieren, dass eine Verschlüsselungstechnologie, kryptographische Hash-Funktionen (Einmal-Funktionen) und Verschlüsselung mit einem Einmal-Pad verwendet werden.
  • Die einfachste Beziehung zwischen den zusätzlichen Daten und den Zustandsdaten ist eine Eins-zu-eins-Beziehung, d. h. die zusätzlichen Daten entsprechen den Zustandsdaten, welche nach dem letztem Programmschritt, der von dem Programm ausgeführt worden ist, gültig sind. Jedoch sind in den meisten Fällen die Zustandsdaten vertraulich und dürfen nur dem betroffenen Gerät bekannt sein. Dann dürfen die zusätzlichen Daten die Zustandsdaten nicht an die Umgebung preisgeben, und ein Schutz gegen eine Aufdeckung dieser Zustandsdaten muss vorgesehen sein.
  • Eine Option zum Schutz der Zustandsdaten besteht darin, diese mit einem Verschlüsselungs-Schlüssel zu verschlüsseln, welcher nur dem Gerät bekannt ist, welches sich auf die Zustandsdaten bezieht. Der verschlüsselte Zustand wird dann als die zusätzlichen Daten in dem Kommunikationsprimitiv an das andere Gerät (oder an den zentralen Speicher 34) übermittelt. Das Gerät speichert die Zustandsdaten (oder andere Daten, aus welchen die Zustandsdaten direkt abgeleitet werden können) in seinem Arbeitsspeicher. Nachdem das nächste Kommunikationsprimitiv des anderen Gerätes empfangen worden ist, überprüft das Gerät, ob die zusätzlichen Daten, welche von dem anderen Gerät empfangen worden sind, gleich der verschlüsselten Form der Zustandsdaten sind. Zu diesem Zweck entschlüsselt es die empfangenen zusätzlichen Daten und vergleicht die entschlüsselten zusätzlichen Daten mit den gespeicherten Zustandsdaten. Alternativ kann es auch seine gespeicherten Zustandsdaten verschlüsseln und das Resultat mit den empfangenen zusätzlichen Daten vergleichen.
  • Sowohl in Fällen, in welchen die zusätzlichen Daten die Zustandsdaten selbst umfassen, als auch in Fällen, in welchen sie verschlüsselte Zustandsdaten umfassen, kann eine Verwendung eines kryptographischen Hash (Einmal-Funktion) die Sicherheit weiter erhöhen. Ein derartiger kryptographischer Hash wird von dem Gerät generiert, welches den Zustandsdaten zugeordnet ist, vorzugsweise unter Verwendung eines kryptographischen Schlüssels, welcher vorzugsweise lediglich dem Gerät bekannt ist, in einer Weise, wie sie Fachleuten bekannt ist. Ein derartiger Hash wird zu den zusätzlichen Daten hinzugefügt und verändert diese nicht. Der Hash hat jedoch eine vorgegebene Beziehung zu dem Inhalt der zusätzlichen Daten. Daher wird, wenn der Inhalt der zusätzlichen Daten versehentlich oder mit Absicht verändert worden ist, dies direkt erkannt werden, indem die Beziehung zwischen dem Hash und dem Inhalt der veränderten zusätzlichen Daten überprüft wird. Indem ein derartiger Hash verwendet wird, kann das Gerät, nachdem es die zurückgekehrten zusätzlichen Daten mit dem Hash empfangen hat, nicht nur die Gültigkeit der zurückgekehrten zusätzlichen Daten überprüfen, sondern kann diese auch verwenden, um die Zustandsdaten daraus abzuleiten, wenn sein eigener Zustand teilweise oder vollständig verloren gegangen ist. Ein derartig abgeleiteter Zustand kann genutzt werden, um ein Programm wieder aufzunehmen, welches zum Beispiel aufgrund eines Fehlers in der Energieversorgung unterbrochen worden ist.
  • Vorteilhafterweise wird der kryptographische Schlüssel, welcher entweder als Verschlüsselungs-Schlüssel oder als Hash-Schlüssel eingesetzt wird, abgeleitet aus einem Zufalls- oder Pseudo-Zufalls-Wert, welcher beispielsweise erzeugt wird, wenn das Gerät sein erstes Kommunikationsprimitiv empfängt. Dieser (Pseudo-)Zufalls-Wert kann eine Beziehung zu dem Inhalt des empfangenen Kommunikationsprimitivs aufweisen. Das Gerät speichert diesen (Pseudo-)Zufalls-Wert in seinem nicht-flüchtigen Speicherteil, bevor ein Antwort-Kommunikationsprimitiv an das andere Gerät gesendet wird.
  • Der (Pseudo-)Zufalls-Wert kann eingesetzt werden als Wert, aus welchem Zustandsdaten abgeleitet werden können. Alternativ kann er verwendet werden als kryptographischer Schlüssel, entweder für den Verschlüsselungsprozess oder für den Hash-Prozess oder beide. Darüber hinaus verändert sich, in einer weiteren Ausführungsform, der kryptographische Schlüssel jedes Mal, wenn eine Verschlüsselung oder ein Hash-Prozess eingesetzt wird, was die Sicherheit weiter fördert. Natürlich muss dann, jedes Mal, wenn ein neuer kryptographischer Schlüssel verwendet wird, sein Wert in dem nicht-flüchtigen Teil des Speichers gespeichert werden. Jedes beliebige Verfahren der Generierung aufeinander folgender kryptographischer Schlüssel kann eingesetzt werden. Beispielsweise kann ein neuer Schlüssel erzeugt werden durch eine Kombination zwischen einem existierenden Schlüssel und irgendeinem Inhalt eines empfangenen Kommunikationsprimitivs, oder indem zwei frühere Schlüssel in einer spezifischen Weise kombiniert werden. Die Verwendung von Einmal-(Hash-)Funktionen kann jedoch vorteilhaft eingesetzt werden, wie unten näher erläutert wird, unter Bezugnahme auf 4.
  • 4 zeigt ein Flussdiagramm der Verwendung einer (Pseudo-)Zufalls-Zahl, welche eingesetzt wird, um Zustandsdaten abzuleiten, nachdem eine Antwortnachricht empfangen worden ist. Nach dem Start, Schritt 300, generiert das betroffene Gerät in Schritt 302 die (Pseudo-)Zufalls-Zahl, welche in dem nicht-flüchtigen Speicher gespeichert werden kann. Dies kann auf eine beliebige Weise erfolgen, welche Fachleuten bekannt ist. Das Gerät wendet eine Einmal-Funktion n-mal auf diese Zufallszahl an, Schritte 304(l) bis 304(n), wobei n einen vorgegebenen Wert größer 0 aufweist. Beispielsweise kann anfänglich n = 10 sein. Die Verwendung von Einmal-Funktionen ist im Stand der Technik bekannt und bedarf keiner weiteren Erläuterung hier.
  • Das Resultat des Schritts 304(n) wird als zusätzliche Daten in der nächsten Nachricht von dem Gerät an ein anderes Gerät (oder an den Speicher 34) übermittelt, Schritt 306. In Schritt 308 wartet das Gerät auf eine Antwortnachricht.
  • Nachdem eine derartige Antwortnachricht empfangen worden ist, extrahiert das Gerät die zusätzlichen Daten aus der Antwortnachricht, Schritt 310. In Schritten 312 bis 320 wendet das Gerät die Einmal-Funktion auf die Zufallszahl an, welche in dem nicht-flüchtigen Speicher gespeichert ist, so oft, bis das erhaltene Resultat den extrahierten zusätzlichen Daten entspricht. Wenn keine Fehler aufgetreten sind, so wird dies beim ersten Mal n-mal sein. Dann weiß das Programm, dass der letzte Programmschritt, der ausgeführt worden ist, sich auf den ersten möglichen Zustand bezog, und das Programm wird fortgesetzt mit der Zustandszahl 1, Schritt 324. Wenn, nachdem die Einmal-Funktion n-mal auf die Zufallszahl angewandt worden ist, immer noch keine Übereinstimmung erreicht worden ist, ist ein Fehler aufgetreten, und das Programm wird fortgesetzt mit einer Fehlerroutine, Schritt 322.
  • Dann wird, um den nächsten Schritt vorzubereiten, 1 von n abgezogen, Schritt 326, und der Prozess wird mit Schritt 304(l) fortgesetzt. In einer bevorzugten Ausführungsform wird das Resultat dieses Schritts jedoch dadurch erhalten, dass der erforderliche Wert aufgegriffen wird, während die Iteration in Schritt 318 durchgeführt wird, wie es Fachleuten be kannt ist. Somit erfolgt für jeden nächsten Zustand in dem Programm die Anwendung der Einmal-Funktion auf die Zufallszahl um 1 weniger als in dem vorhergehenden Schritt. Da eine Einmal-Funktion eingesetzt wird, stellt dies sicher, dass ein anderes Gerät niemals in der Lage sein wird, die nächsten zusätzlichen Daten, welche sich auf den nächsten Zustand beziehen, abzuleiten: Vorausgesetzt, andere Geräte kennen nicht die (Pseudo-)Zufalls-Zahl, welche in Schritt 302 durch die fundamentale Eigenschaft kryptographischer Einmal-Funktionen erzeugt worden ist, ist es nicht möglich, die von dem Gerät durchgeführte Berechnung umzukehren und auf diese Weise Daten für den nächsten Zustand vorherzusagen.
  • 4 bezieht sich auf eine Situation, in welcher die gespeicherte Zufallszahl und die Einmal-Funktion eingesetzt werden, um die korrekte Zahl des letzten erreichten Zustands in dem Programm abzuleiten. Ein ähnliches oder identisches Schema kann jedoch eingesetzt werden, um einen Schlüssel zu erzeugen, welcher in einem Verschlüsselungsprozess oder einem Hash-Prozess eingesetzt werden soll.
  • In einem Hash-Prozess wird beispielsweise das Resultat von Schritt 304(n) nicht direkt als zusätzliche Daten in der nächsten Nachricht gesendet, sondern dieses Resultat wird als ein Schlüssel eingesetzt, um einen authentifizierenden Hash über alle Zustandsdaten, die in der nächsten Nachricht übermittelt werden sollen, zu berechnen. Dies kann vorteilhafterweise erfolgen, wenn die Zustandsdaten mehr Informationen umfassen als lediglich eine Zahl des betroffenen Zustandes. Dann wird, nachdem die nächste Antwortnachricht empfangen worden ist und nachdem die zusätzlichen Daten aus der nächsten Antwortnachricht extrahiert worden sind, der Hash verwendet, um die Korrektheit der zurückgekehrten Zustandsdaten zu überprüfen. Dieser überprüfte Zustand wird eingesetzt, um das Programm fortzusetzen. Wiederum kann die Anzahl, wie oft die Einmal-Funktion auf die gespeicherte Zufallszahl angewandt wird, um bei einem in der Hash-Funktion einzusetzenden Schlüssel anzulangen, für jeden nächsten zu übermittelnden Zustand um 1 reduziert werden. Der in jedem Übermittlungsschritt eingesetzte Schlüssel kann in einem nicht-flüchtigen Speicherteil des Speichers gespeichert werden, es ist jedoch nicht erforderlich, den Schlüssel abzuspeichern, da er aus der gespeicherten Zufallszahl und der verwendeten Einmal-Funktion abgeleitet werden kann.
  • In einem Verschlüsselungsverfahren wird das Resultat des Schritts 304(n) nicht direkt als zusätzliche Daten in der nächsten Nachricht gesendet, sondern dieses Resultat wird verwendet als Schlüssel, um alle Zustandsdaten, die in der nächsten Nachricht übermittelt werden sollen, zu verschlüsseln. Dies kann vorteilhafterweise erfolgen, wenn die Zustandsdaten nicht an externe Geräte weitergegeben werden dürfen. Dann werden, nachdem die nächste Antwortnachricht empfangen worden ist und nachdem die zusätzlichen Daten aus der nächsten Antwortnachricht extrahiert worden sind, die zusätzlichen Daten entschlüsselt, um die Zustandsdaten zu erhalten. Die verschlüsselten Zustandsdaten werden eingesetzt, um das Programm fortzusetzen. Wiederum kann die Anzahl, wie oft die Einmal-Funktion auf die gespeicherte Zufallszahl angewandt wird, um bei einem für den Verschlüsselungsprozess anzuwendenden Schlüssel anzulangen, um 1 reduziert werden für jeden nächsten zu übermittelnden Zustand. Der verwendete Schlüssel in jedem Übermittlungsschritt kann in einem nicht-flüchtigen Teil des Speichers gespeichert werden, es ist jedoch nicht erforderlich, den Schlüssel zu speichern, da er abgeleitet werden kann aus der gespeicherten Zufallszahl und der verwendeten Einmal-Funktion, und, vorzugsweise, aus dem derzeitigen Wert von n, welcher den derzeitigen Zustand identifiziert und welcher möglicherweise in den zusätzlichen Daten enthalten ist.
  • Die Schlüssel, welche auf eine Weise erzeugt worden sind, wie sie unter Bezugnahme auf 4 erläutert wurde, können auch eingesetzt werden in einem Verfahren, in welchem sowohl ein Hash als auch eine Verschlüsselung eingesetzt werden.
  • In den angehängten Ansprüchen wird der Begriff „Beziehung" eingesetzt, um anzudeuten, dass zusätzliche Daten sich auf interne Zustandsdaten beziehen. Wie oben erläutert, deutet der Begriff „Beziehung" an, dass die zusätzlichen Daten abgeleitet werden aus den internen Zustandsdaten. Die Beziehung kann zum Beispiel basieren auf einer Gleichheit, oder auf einer Verwendung einer Verschlüsselungstechnologie, kryptographischen Hash-Funktionen und Verschlüsselung mit einem Einmal-Pad.

Claims (23)

  1. Verfahren zur Kommunikation zwischen mindestens einem ersten Gerät (2) und einem zweiten Gerät (10; 26); wobei das erste Gerät (2) einen ersten Prozessor (6), erste Speichermittel (4) und erste Eingabe/Ausgabe-Mittel (8) umfasst, wobei die ersten Speichermittel (4) und die ersten Eingabe/Ausgabe-Mittel (8) mit dem ersten Prozessor (6) verbunden sind; wobei das zweite Gerät (10; 26) einen zweiten Prozessor (16; 30), zweite Speichermittel (18; 32) und zweite Eingabe/Ausgabe-Mittel (14; 28) umfasst, wobei die zweiten Speichermittel (18; 32) und die zweiten Eingabe/Ausgabe-Mittel (14; 28) mit dem zweiten Prozessor (16; 30) verbunden sind; wobei das Verfahren mindestens die folgenden Schritte umfasst, die von dem ersten Prozessor (6) ausgeführt werden: a. Ausführen eines ersten Programmschritts in Übereinstimmung mit einem vorgegebenen ersten Programm; b. Erstellen von ersten Zustandsdaten, welche sich auf das erste Programm beziehen, nach Ausführung des ersten Programmschritts, wobei die ersten Zustandsdaten in den ersten Speichermitteln (4) gespeichert sind und alle Daten einschließen, die für das erste Programm erforderlich sind, um fortzufahren, wenn Instruktionen von dem zweiten Prozessor (16; 30) empfangen worden sind; c. Übermitteln eines ersten Kommunikationsprimitivs, in Übereinstimmung mit dem ersten Programm, wobei das erste Kommunikationsprimitiv erste zusätzliche Daten einschließt, die eine erste vorgegebene Beziehung zu den ersten Zustandsdaten aufweisen; gefolgt von den folgenden Schritten mittels des zweiten Prozessors (16; 30): d. Empfangen des ersten Kommunikationsprimitivs; e. Extrahieren der ersten zusätzlichen Daten aus dem ersten Kommunikationsprimitiv und Speichern der ersten zusätzlichen Daten in den zweiten Speichermitteln (18; 32); f. Ausführen eines zweiten Programmschritts in Übereinstimmung mit einem zweiten Programm; g. Lesen der ersten zusätzlichen Daten von dem zweiten Speicher; h. Übermitteln eines zweiten Kommunikationsprimitivs an das erste Gerät (2), in Übereinstimmung mit dem zweiten Programm, wobei das zweite Kommunikationsprimitiv zweite zusätzliche Daten einschließt, die eine zweite vorgegebene Beziehung zu den ersten zusätzlichen Daten aufweisen; gefolgt von den folgenden Schritten, die von dem ersten Prozessor (6) ausgeführt werden: i. Empfangen des zweiten Kommunikationsprimitivs; j. Extrahieren der zweiten zusätzlichen Daten aus dem zweiten Kommunikationsprimitiv und Ableiten der ersten zusätzlichen Daten aus den zweiten zusätzlichen Daten; k. Überprüfen, ob die abgeleiteten ersten zusätzlichen Daten die erste vorgegebene Beziehung zu den ersten Zustandsdaten aufweisen; falls dies nicht der Fall ist, entweder Abbrechen des ersten Programms oder Starten eines Wiederherstellungsprozesses; falls dies der Fall ist, Fortfahren mit: l. Ausführen eines dritten Programmschritts in Übereinstimmung mit dem ersten Programm.
  2. Verfahren gemäß Anspruch 1, umfassend die folgenden Schritte nach Schritt l: m. Erstellen von zweiten Zustandsdaten, die sich auf das erste Programm beziehen, nachdem der dritte Programmschritt ausgeführt wurde; n. Übermitteln eines dritten Kommunikationsprimitivs an das zweite Gerät (10; 26), in Übereinstimmung mit dem ersten Programm, wobei das dritte Kommunikationsprimitiv dritte zusätzliche Daten umfasst, welche eine dritte vorgegebene Beziehung zu sowohl den ersten als auch den zweiten Zustandsdaten aufweisen.
  3. Verfahren zur Kommunikation zwischen mindestens einem ersten Gerät (2) und einem zweiten Gerät (10; 26); wobei das erste Gerät (2) einen ersten Prozessor (6), erste Speichermittel (4) und erste Eingabe/Ausgabe-Mittel (8) umfasst, wobei die ersten Speichermittel (4) und die ersten Eingabe/Ausgabe-Mittel (8) mit dem ersten Prozessor (6) verbunden sind; wobei das zweite Gerät (10; 26) einen zweiten Prozessor (16; 30), zweite Speichermittel (18; 32) und zweite Eingabe/Ausgabe-Mittel (14; 28) umfasst, wobei die zweiten Speichermittel (18; 32) und die zweiten Eingabe/Ausgabe-Mittel (14; 28) mit dem zweiten Prozessor (16; 30) verbunden sind; wobei das Verfahren mindestens die folgenden Schritte umfasst, welche von dem ersten Prozessor (6) ausgeführt werden: a. Ausführen eines ersten Programmschritts in Übereinstimmung mit einem vorgegebenen ersten Programm; b. Erstellen von ersten Zustandsdaten, welche sich auf das erste Programm beziehen, nachdem der erste Programmschritt ausgeführt wurde, wobei die ersten Zustandsdaten in den ersten Speichermitteln (4) gespeichert sind und alle Daten umfassen, welche für das erste Programm erforderlich sind, um fortzufahren, nachdem Instruktionen von dem zweiten Prozessor (16; 30) empfangen worden sind; c. Übermitteln eines ersten Kommunikationsprimitivs, in Übereinstimmung mit dem ersten Programm, wobei das erste Kommunikationsprimitiv erste zusätzliche Daten umfasst, welche eine erste vorgegebene Beziehung zu den ersten Zustandsdaten aufweisen; gefolgt von den folgenden Schritten mittels des zweiten Prozessors (16; 30): d. Empfangen des ersten Kommunikationsprimitivs; e. Extrahieren der ersten zusätzlichen Daten aus dem ersten Kommunikationsprimitiv und Speichern der ersten zusätzlichen Daten in den zweiten Speichermitteln (18; 32); f. Ausführen eines zweiten Programmschritts in Übereinstimmung mit einem zweiten Programm und Erstellen von zweiten Zustandsdaten, welche sich auf das zweite Programm beziehen, nachdem der zweite Programmschritt ausgeführt wurde; g. Lesen der ersten zusätzlichen Daten aus dem zweiten Speicher; h. Übermitteln eines zweiten Kommunikationsprimitivs an das erste Gerät (2), in Übereinstimmung mit dem zweiten Programm, wobei das zweite Kommunikationsprimitiv zweite zusätzliche Daten umfasst, welche eine zweite vorgegebene Beziehung zu den ersten zusätzlichen Daten aufweisen und dritte zusätzliche Daten, welche eine dritte vorgegebene Beziehung zu den zweiten Zustandsdaten aufweisen; gefolgt von den folgenden Schritten, welche von dem ersten Prozessor (6) ausgeführt werden: i. Empfangen des zweiten Kommunikationsprimitivs; j. Extrahieren der zweiten und dritten zusätzlichen Daten aus dem zweiten Kommunikationsprimitiv, Speichern der dritten zusätzlichen Daten in den ersten Speichermitteln (4) und Ableiten der ersten zusätzlichen Daten aus den zweiten zusätzlichen Daten; k. Überprüfen, ob die abgeleiteten ersten zusätzlichen Daten die erste vorgegebene Beziehung zu den ersten Zustandsdaten aufweisen; falls dies nicht der Fall ist, entweder Abbrechen des ersten Programms oder Starten eines Wiederherstellungsprozesses; falls dies der Fall ist, Fortfahren mit: l. Ausführen eines dritten Programmschritts, in Übereinstimmung mit dem ersten Programm, und Erstellung von dritten Zustandsdaten, welche sich auf das erste Programm beziehen, nachdem der dritte Programmschritt ausgeführt wurde; m. Lesen der dritten zusätzlichen Daten aus den ersten Speichermitteln (4); n. Übermitteln eines dritten Kommunikationsprimitivs an das zweite Gerät (10; 26), in Übereinstimmung mit dem ersten Programm, wobei das dritte Kommunikationsprimitiv vierte zusätzliche Daten einschließt, welche eine vierte vorgegebene Beziehung zu den dritten zusätzlichen Daten aufweisen und fünfte zusätzliche Daten, welche eine fünfte vorgegebene Beziehung zu den dritten Zustandsdaten aufweisen; gefolgt von den folgenden Schritten, welche von dem zweiten Prozessor (16; 30) ausgeführt werden: o. Empfangen des dritten Kommunikationsprimitivs; p. Extrahieren der vierten und fünften zusätzlichen Daten aus dem dritten Kommunikationsprimitiv; Speichern der fünften zusätzlichen Daten in den zweiten Speichermitteln (18; 32) und Ableiten der dritten zusätzlichen Daten aus den vierten zusätzlichen Daten; q. Überprüfen, ob die abgeleiteten dritten zusätzlichen Daten die dritte vorgegebene Beziehung zu den zweiten Zustandsdaten aufweisen; falls dies nicht der Fall ist, entweder Abbrechen des zwei ten Programms oder Starten eines Wiederherstellungsprozesses; falls dies der Fall ist, Fortfahren mit: r. Ausführen eines vierten Programmschritts in Übereinstimmung mit dem zweiten Programm.
  4. Verfahren gemäß Anspruch 3, wobei Schritt n die folgenden Merkmale aufweist: n. Übermitteln eines dritten Kommunikationsprimitivs an das zweite Gerät (10; 26), in Übereinstimmung mit dem ersten Programm, wobei das dritte Kommunikationsprimitiv die vierten zusätzlichen Daten aufweist und fünfte zusätzliche Daten, welche eine fünfte vorgegebene Beziehung zu sowohl den ersten als auch den dritten Zustandsdaten aufweisen.
  5. Verfahren gemäß einem der vorhergehenden Ansprüche, wobei der Schritt c die folgenden Teilschritte umfasst: c1. Übermitteln eines ersten Kommunikationsprimitivs, welches zusätzliche Daten umfasst, die eine erste vorgegebene Beziehung zu den ersten Zustandsdaten aufweisen, in Übereinstimmung mit dem ersten Programm, an einen zentralen Speicher (34); c2. Speichern des ersten Kommunikationsprimitivs in dem zentralen Speicher (34); und wobei Schritt d die folgenden Teilschritte umfasst: d1. Überprüfen, ob der zentrale Speicher (34) das erste Kommunikationsprimitiv gespeichert hat; falls dies nicht der Fall ist, Wiederholen von Schritt d1; falls dies der Fall ist, Fortfahren mit Schritt d2; d2. Lesen des ersten Kommunikationsprimitivs aus dem zentralen Speicher (34); d3. Entfernen des ersten Kommunikationsprimitivs aus dem zentralen Speicher (34).
  6. Verfahren gemäß einem der Ansprüche 1 bis 4, wobei der Schritt c die folgenden Teilschritte umfasst: c1. Übermitteln eines ersten Kommunikationsprimitivs, welches zusätzliche Daten umfasst, die eine erste vorgegebene Beziehung zu den ersten Zustandsdaten aufweisen, in Übereinstimmung mit dem ersten Programm, an einen zentralen Speicher (34); c2. Speichern des ersten Kommunikationsprimitivs in dem zentralen Speicher (34); und wobei Schritt d die folgenden Teilschritte umfasst: d1. Überprüfen, ob der zentrale Speicher (34) das erste Kommunikationsprimitiv gespeichert hat; falls dies nicht der Fall ist, Wiederholen von Schritt d1; falls dies der Fall ist, Fortfahren mit Schritt d2; d2. Lesen des ersten Kommunikationsprimitivs aus dem zentralen Speicher (34); d3. Hinzufügen eines Hinweises zu dem ersten Kommunikationsprimitiv in dem zentralen Speicher (34), dass das erste Kommunikationsprimitiv von dem zweiten Gerät (10; 26) gelesen worden ist.
  7. Verfahren gemäß einem der vorhergehenden Ansprüche, wobei mindestens das erste und das zweite Kommunikationsprimitiv Identifikationsdaten umfassen, um zu identifizieren, dass das erste und das zweite Kommunikationsprimitiv die ersten zusätzlichen Daten umfassen.
  8. Verfahren gemäß einem der vorhergehenden Ansprüche, wobei die erste Beziehung basiert auf einer Verwendung von einer oder mehrerer der folgenden Verfahren, entweder einzeln oder in Kombination: Anwenden eines ersten Verschlüsselungsverfahrens, Anwenden einer ersten kryptographischen Hashfunktion, und Anwenden einer zweiten Verschlüsselung mit Einmal-Pad-Funktion.
  9. Verfahren gemäß einem der vorhergehenden Ansprüche, wobei die erste Beziehung basiert auf einer Verwendung einer oder mehrerer der folgenden Verfahren, entweder allein oder in Kombination: Anwenden eines zweiten Verschlüsselungsverfahrens, Anwenden einer zweiten kryptographischen Hashfunktion, und Anwenden einer zweiten Verschlüsselung mit Einmal-Pad-Funktion.
  10. System, umfassend mindestens ein erstes Gerät (2) und ein zweites Gerät (10; 26); wobei das erste Gerät (2) einen ersten Prozessor (6), erste Speichermittel (4) und erste Eingabe/Ausgabe-Mittel (8) umfasst, wobei die ersten Speichermittel (4) und die ersten Eingabe/Ausgabe-Mittel (8) mit dem ersten Prozessor (6) verbunden sind; wobei das zweite Gerät (10; 26) einen zweiten Prozessor (16; 30), zweite Speichermittel (18; 32) und zweite Eingabe/Ausgabe-Mittel (14; 28) umfasst, wobei die zweiten Speichermittel (18; 32) und die zweiten Eingabe/Ausgabe-Mittel (14; 28) mit dem zweiten Prozessor (16; 30) verbunden sind; wobei der erste Prozessor (6) eingerichtet ist, um mindestens die folgenden Schritte auszuführen: a. Ausführen eines ersten Programmschritts in Übereinstimmung mit einem vorgegebenen ersten Programm; b. Erstellen von ersten Zustandsdaten, welche sich auf das erste Programm beziehen, nachdem der erste Programmschritt ausgeführt wurde, wobei die ersten Zustandsdaten in den ersten Speichermitteln (4) gespeichert sind und alle Daten umfassen, welche für das erste Programm erforderlich sind, um fortzufahren, nachdem Instruktionen von dem zweiten Prozessor (16; 30) empfangen worden sind; c. Übermitteln eines ersten Kommunikationsprimitivs, in Übereinstimmung mit dem ersten Programm, wobei das erste Kommunikationsprimitiv erste zusätzliche Daten umfasst, welche eine erste vorgegebene Beziehung zu den ersten Zustandsdaten aufweisen; wobei der zweite Prozessor (16; 30) eingerichtet ist, um die folgenden Schritte auszuführen, nachdem der erste Prozessor (6) die Schritte a bis c ausgeführt hat: d. Empfangen des ersten Kommunikationsprimitivs; e. Extrahieren der ersten zusätzlichen Daten aus dem ersten Kommunikationsprimitiv und Speichern der ersten zusätzlichen Daten in den zweiten Speichermitteln (18, 32); f. Ausführen eines zweiten Programmschritts, in Übereinstimmung mit einem zweiten Programm; g. Lesen der ersten zusätzlichen Daten aus dem zweiten Speicher; h. Übermitteln eines zweiten Kommunikationsprimitivs an das erste Gerät (2), in Übereinstimmung mit dem zweiten Programm, wobei das zweite Kommunikationsprimitiv zweite zusätzliche Daten umfasst, die eine zweite vorgegebene Beziehung zu den ersten zusätzlichen Daten aufweisen; wobei der erste Prozessor (6) auch eingerichtet ist, um die folgenden Schritte auszuführen, nachdem der zweite Prozessor (16; 30) die Schritte d bis h ausgeführt hat: i. Empfangen des zweiten Kommunikationsprimitivs; j. Extrahieren der zweiten zusätzlichen Daten aus dem zweiten Kommunikationsprimitiv und Ableiten der ersten zusätzlichen Daten aus den zweiten zusätzlichen Daten; k. Überprüfen, ob die abgeleiteten ersten zusätzlichen Daten die erste vorgegebene Beziehung zu den ersten Zustandsdaten aufweisen; falls dies nicht der Fall ist, entweder Abbrechen des ersten Programms oder Starten eines Wiederherstellungsprozesses; falls dies der Fall ist, Fortfahren mit: l. Ausführen eines dritten Programmschritts, in Übereinstimmung mit dem ersten Programm.
  11. System, umfassend mindestens ein erstes Gerät (2) und ein zweites Gerät (10; 26); wobei das erste Gerät (2) einen ersten Prozessor (6), erste Speichermittel (4) und erste Eingabe/Ausgabe-Mittel (8) umfasst, wobei die ersten Speichermittel (4) und die ersten Eingabe/Ausgabe-Mittel (8) mit dem ersten Prozessor (6) verbunden sind; wobei das zweite Gerät (10; 26) einen zweiten Prozessor (16; 30), zweite Speichermittel (18; 32) und zweite Eingabe/Ausgabe-Mittel (14; 28), umfasst, wobei die zweiten Speichermittel (18; 32) und die zweiten Eingabe/Ausgabe-Mittel (14; 28) mit dem zweiten Prozessor (16; 30) verbunden sind; wobei der erste Prozessor (6) eingerichtet ist, um mindestens die folgenden Schritte auszuführen: a. Ausführen eines ersten Programmschritts, in Übereinstimmung mit einem vorgegebenen ersten Programm; b. Erstellen von ersten Zustandsdaten, welche sich auf das erste Programm beziehen, nachdem der erste Programmschritt ausgeführt wurde, wobei die ersten Zustandsdaten in den ersten Speichermitteln (4) gespeichert sind und alle Daten umfassen, welche für das erste Programm erforderlich sind, um fortzufahren, nachdem Instruktionen von dem zweiten Prozessor (16; 30) empfangen worden sind; c. Übermitteln eines ersten Kommunikationsprimitivs, in Übereinstimmung mit dem ersten Programm, wobei das erste Kommunikationsprimitiv erste zusätzliche Daten einschließt, die eine erste vorgegebene Beziehung zu den ersten Zustandsdaten aufweisen; wobei der zweite Prozessor (16; 30) eingerichtet ist, um die folgenden Schritte auszuführen, nachdem der erste Prozessor (6) die Schritte a bis c ausgeführt hat: d. Empfangen des ersten Kommunikationsprimitivs; e. Extrahieren der ersten zusätzlichen Daten aus dem ersten Kommunikationsprimitiv und Speichern der ersten zusätzlichen Daten in den zweiten Speichermitteln (18; 32); f. Ausführen eines zweiten Programmschritts, in Übereinstimmung mit einem zweiten Programm und Erstellen von zweiten Zustandsdaten, welche sich auf das zweite Programm beziehen, nachdem der zweite Programmschritt ausgeführt worden ist; g. Lesen der ersten zusätzlichen Daten aus dem zweiten Speicher; h. Übermitteln eines zweiten Kommunikationsprimitivs an das erste Gerät (2), in Übereinstimmung mit dem zweiten Programm, wobei das erste Kommunikationsprimitiv zweite zusätzliche Daten umfasst, die eine zweite vorgegebene Beziehung zu den ersten zusätzlichen Daten aufweisen, und dritte zusätzliche Daten, welche eine dritte vorgegebene Beziehung zu den zweiten Zustandsdaten aufweisen; wobei der erste Prozessor (6) weiterhin eingerichtet ist, um die folgenden Schritte auszuführen, nachdem der zweite Prozessor (16; 30) die Schritte d bis h ausgeführt hat. i. Empfangen des zweiten Kommunikationsprimitivs; j. Extrahieren der zweiten und dritten zusätzlichen Daten aus dem zweiten Kommunikationsprimitiv, Speichern der dritten zusätzlichen Daten in den ersten Speichermitteln (4) und Ableiten der ersten zusätzlichen Daten aus den zweiten zusätzlichen Daten; k. Überprüfen, ob die abgeleiteten ersten zusätzlichen Daten eine erste vorgegebene Beziehung zu den ersten Zustandsdaten aufweisen; falls dies nicht der Fall ist, entweder Abbrechen des ersten Programms oder Starten eines Wiederherstellungsprozesses; falls dies der Fall ist, Fortfahren mit: l. Ausführen eines dritten Programmschritts, in Übereinstimmung mit dem ersten Programm, und Erstellen von dritten Zustandsdaten, welche sich auf das erste Programm beziehen, nachdem der dritte Programmschritt ausgeführt worden ist; m. Lesen der dritten zusätzlichen Daten aus den ersten Speichermitteln (4); n. Übermitteln eines dritten Kommunikationsprimitivs an das zweite Gerät (10; 26), in Übereinstimmung mit dem ersten Programm, wobei das dritte Kommunikationsprimitiv vierte zusätzliche Daten umfasst, die eine vierte vorgegebene Beziehung zu den dritten zusätzlichen Daten aufweisen, und fünfte zusätzliche Daten, welche eine fünfte vorgegebene Beziehung zu den dritten Zustandsdaten aufweisen; wobei der zweite Prozessor (16; 30) weiterhin eingerichtet ist, um die folgenden Schritte auszuführen, nachdem der erste Prozessor (6) die Schritte i bis n ausgeführt hat: o. Empfangen des dritten Kommunikationsprimitivs; p. Extrahieren der vierten und fünften zusätzlichen Daten aus dem dritten Kommunikationsprimitiv, Speichern der fünften zusätzlichen Daten in den zweiten Speichermitteln (18; 32) und Ableiten der dritten zusätzlichen Daten aus den vierten zusätzlichen Daten; q. Überprüfen, ob die abgeleiteten dritten zusätzlichen Daten eine dritte vorgegebene Beziehung zu den zweiten Zustandsdaten aufweisen; falls dies nicht der Fall ist, entweder Abbrechen des zweiten Programms oder Starten eines Wiederherstellungsprozesses; falls dies der Fall ist, Fortfahren mit: r. Ausführen eines vierten Programmschritts, in Übereinstimmung mit dem zweiten Programm.
  12. Gerät, umfassend einen Prozessor (6), Speichermittel (4) und Eingabe/Ausgabe-Mittel (8), wobei die Speichermittel (4) und die Eingabe/Ausgabe-Mittel (8) mit dem Prozessor (6) verbunden sind; wobei der Prozessor (6) eingerichtet ist, um mindestens die folgenden Schritte auszuführen: a. Ausführen eines ersten Programmschritts, in Übereinstimmung mit einem vorgegebenen Programm; b. Erstellen von ersten Zustandsdaten, welche sich auf das Programm beziehen, nachdem der erste Programmschritt ausgeführt worden ist, wobei die ersten Zustandsdaten in den ersten Speichermitteln (4) gespeichert sind und alle Daten umfassen, welche für das erste Programm erforderlich sind, um fortzufahren, nachdem Instruktionen von dem zweiten Prozessor (16; 30) empfangen worden sind; c. Übermitteln eines ersten Kommunikationsprimitivs, in Übereinstimmung mit dem ersten Programm, wobei das erste Kommunikationsprimitiv erste zusätzliche Daten umfasst, welche eine vorgegebene Beziehung zu den ersten Zustandsdaten aufweisen; d. Empfangen eines zweiten Kommunikationsprimitivs von einem anderen Gerät; e. Extrahieren von zweiten zusätzlichen Daten aus dem zweiten Kommunikationsprimitiv und Ableiten der ersten zusätzlichen Daten aus den zweiten zusätzlichen Daten; f. Überprüfen, ob die abgeleiteten ersten zusätzlichen Daten die vorgegebene Beziehung zu den Zustandsdaten aufweisen; falls dies nicht der Fall ist, entweder Abbrechen des Programms oder Starten eines Wiederherstellungsprozesses; falls dies der Fall ist, Fortfahren mit: g. Ausführen eines zweiten Programmschritts, in Übereinstimmung mit dem Programm.
  13. Gerät gemäß Anspruch 12, wobei der Prozessor (6) eingerichtet ist, um nach Schritt g die folgenden Schritte auszuführen: h. Erstellen von zweiten Zustandsdaten, welche sich auf das Programm beziehen, nachdem der zweite Programmschritt ausgeführt worden ist; i. Übermitteln eines dritten Kommunikationsprimitivs an das zweite Gerät (10; 26), in Übereinstimmung mit dem Programm, wobei das dritte Kommunikationsprimitiv dritte zusätzliche Daten umfasst, welche eine dritte vorgegebene Beziehung zu sowohl den ersten als auch den zweiten Zustandsdaten aufweisen.
  14. Gerät gemäß Anspruch 12 oder 13, wobei das Gerät eine Smart Card ist.
  15. Gerät gemäß einem der Ansprüche 12 bis 14, wobei der Prozessor (6) eingerichtet ist, um nach einer Unterbrechung und Wiederherstellung der Energieversorgung des Prozessors (6) die folgenden Schritte auszuführen: Empfangen mindestens eines Kommunikationsprimitivs von entweder dem anderen Gerät oder einem zentralen Speicher (34), wobei das Kommunikationsprimitiv eine vorgegebene Beziehung zu letzten Zustandsdaten aufweist, die in Übereinstimmung mit einem letzten Programmschritt erstellt wurden, der von dem ersten Programm ausgeführt worden ist; Wiederaufnehmen der Ausführung des ersten Programms mit einem weiteren Programmschritt, welcher auf diesen letzten Programmschritt folgt.
  16. Computerprogrammprodukt, umfassend Computer-ausführbare Instruktionen zur Ausführung durch eine Computervorrichtung, die einen Prozessor (6), Speichermittel (4) und Eingabe/Ausgabe-Mittel (8) umfasst, wobei die Speichermittel (4) und die Eingabe/Ausgabe-Mittel (8) mit dem Prozessor (6) verbunden sind, wobei das Computerprogrammprodukt es dem Prozessor (6) ermöglicht, mindestens die folgenden Schritte auszuführen: a. Ausführen eines ersten Programmschritts, in Übereinstimmung mit dem Programm; b. Erstellen von ersten Zustandsdaten, welche sich auf das Programm beziehen, nachdem der erste Programmschritt ausgeführt worden ist, wobei die ersten Zustandsdaten in den ersten Speichermitteln (4) gespeichert sind und alle Daten einschließen, welche für das erste Programm erforderlich sind, um fortzufahren, nachdem Instruktionen von dem zweiten Prozessor (16; 30) empfangen worden sind; c. Übermitteln eines ersten Kommunikationsprimitivs, in Übereinstimmung mit dem Programm, wobei das erste Kommunikationsprimitiv erste zusätzliche Daten umfasst, welche eine vorgegebene Beziehung zu den ersten Zustandsdaten aufweisen; d. Empfangen eines zweiten Kommunikationsprimitivs von einem anderen Gerät; e. Extrahieren der zweiten zusätzlichen Daten aus dem zweiten Kommunikationsprimitiv und Ableiten der ersten zusätzlichen Daten aus den zweiten zusätzlichen Daten; f. Überprüfen, ob die abgeleiteten ersten zusätzlichen Daten eine vorgegebene Beziehung zu den Zustandsdaten aufweisen; falls dies nicht der Fall ist, entweder Abbrechen des Programms oder Starten eines Wiederherstellungsprozesses; falls dies der Fall ist, Fortfahren mit: g. Ausführen eines zweiten Programmschritts, in Übereinstimmung mit dem Programm.
  17. Computer-lesbares Medium, ausgestattet mit einem Computerprogrammprodukt gemäß Anspruch 16.
  18. Gerät (10; 26), umfassend einen Prozessor (16; 30), Speichermittel (18; 32) und Eingabe/Ausgabe-Mittel (14; 28) wobei die Speichermittel (18; 32) und die Eingabe/Ausgabe-Mittel (14; 28) mit dem Prozessor (16; 30) verbunden sind; wobei der Prozessor (16; 30) eingerichtet ist, um die folgenden Schritte auszuführen: a. Empfangen eines ersten Kommunikationsprimitivs von einem anderen Gerät (2); b. Erkennen, dass das erste Kommunikationsprimitiv zusätzliche Daten umfasst, welche eine erste vorgegebene Beziehung zu Zustandsdaten aufweisen, die sich auf ein erstes Programm beziehen, welches auf dem anderen Gerät (2) abläuft, wobei die Zustandsdaten alle Daten umfassen, die für das erste Programm erforderlich sind, um fortzufahren, nachdem Instruktionen von dem Prozessor (16; 30) empfangen worden sind; c. Extrahieren der zusätzlichen Daten aus dem ersten Kommunikationsprimitiv und Speichern der zusätzlichen Daten in den Speichermitteln (18; 32); d. Ausführen eines Programmschritts, in Übereinstimmung mit einem zweiten Programm; e. Lesen der ersten zusätzlichen Daten aus dem Speicher; f. Übermitteln eines zweiten Kommunikationsprimitivs an das andere Gerät (2), in Übereinstimmung mit dem zweiten Programm, wobei das zweite Kommunikationsprimitiv zweite zusätzliche Daten umfasst, welche eine zweite vorgegebene Beziehung zu den ersten zusätzlichen Daten aufweisen.
  19. Gerät gemäß Anspruch 18, wobei das Gerät ein Terminal ist, welches eingerichtet ist, mit einer Smart Card zu kommunizieren.
  20. Gerät gemäß Anspruch 18 oder 19, wobei der Prozessor (16; 30) eingerichtet ist, um die folgenden Teilschritte in Schritt a auszuführen: a1. Überprüfen, ob ein zentraler Speicher (34) das erste Kommunikationsprimitiv gespeichert hat; falls dies nicht der Fall ist, Wiederholen von Schritt a1; falls dies der Fall ist, Fortfahren mit Schritt a2; a2. Lesen des ersten Kommunikationsprimitivs aus dem zentralen Speicher (34); a3. Entfernen des ersten Kommunikationsprimitivs aus dem zentralen Speicher (34).
  21. Gerät gemäß Anspruch 18 oder 19, wobei der Prozessor (16; 30) eingerichtet ist, um die folgenden Teilschritte in Schritt a auszuführen. a1. Überprüfen, ob ein zentraler Speicher (34) das erste Kommunikationsprimitiv gespeichert hat; falls dies nicht der Fall ist, Wiederholen von Schritt a1; falls dies der Fall ist, Fortfahren mit Schritt a2; a2. Lesen des ersten Kommunikationsprimitivs aus dem zentralen Speicher (34); a3. Hinzufügen eines Hinweises zu dem ersten Kommunikationsprimitiv in dem zentralen Speicher (34), dass das erste Kommunikationsprimitiv von dem Gerät (10; 26) gelesen worden ist.
  22. Computerprogrammprodukt, umfassend Computer-ausführbare Instruktionen zur Ausführung durch eine Computervorrichtung (10; 26), die einen Prozessor (16; 30), Speichermittel (18; 32) und Eingabe/Ausgabe-Mittel (14; 28) umfasst, wobei die Speichermittel (18; 32) und die Eingabe/Ausgabe-Mittel (14; 28) mit dem Prozessor (16; 30) verbunden sind, wobei das Computerprogrammprodukt es dem Prozessor (6) ermöglicht, mindestens die folgenden Schritte auszuführen: a. Empfangen eines ersten Kommunikationsprimitivs von einem anderen Gerät (2); b. Erkennen, dass das erste Kommunikationsprimitiv zusätzliche Daten umfasst, die eine vorgegebene erste Beziehung zu Zustandsdaten aufweisen, die sich auf ein erstes Programm beziehen, welches auf dem anderen Gerät (2) abläuft, wobei die Zustandsdaten alle Daten umfassen, die für das erste Programm erforderlich sind, um fortzufahren, nachdem Instruktionen von dem Prozessor (16; 30) empfangen worden sind; c. Extrahieren der zusätzlichen Daten aus dem ersten Kommunikationsprimitiv und Speichern der zusätzlichen Daten in den Speichermitteln (18; 32); d. Ausführen eines ersten Programmschritts, in Übereinstimmung mit dem Programm; e. Lesen der ersten zusätzlichen Daten aus dem Speicher; f. Übermitteln eines zweiten Kommunikationsprimitivs an das andere Gerät (2), in Übereinstimmung mit dem Programm, wobei das zweite Kommunikationsprimitiv die zweiten zusätzlichen Daten umfasst, die eine zweite vorgegebene Beziehung zu den ersten zusätzlichen Daten aufweisen.
  23. Computer-lesbares Medium, welches ausgestattet ist mit einem Computerprogrammprodukt gemäß Anspruch 22.
DE60037342T 2000-07-20 2000-07-20 Verfahren und system für kommunizierende geräte, und vorrichtungen dafür, mit geschützter datenübertragung Expired - Lifetime DE60037342T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/NL2000/000510 WO2002009046A1 (en) 2000-07-20 2000-07-20 Method and system of communicating devices, and devices therefor, with protected data transfer

Publications (2)

Publication Number Publication Date
DE60037342D1 DE60037342D1 (de) 2008-01-17
DE60037342T2 true DE60037342T2 (de) 2008-11-27

Family

ID=19760701

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60037342T Expired - Lifetime DE60037342T2 (de) 2000-07-20 2000-07-20 Verfahren und system für kommunizierende geräte, und vorrichtungen dafür, mit geschützter datenübertragung

Country Status (10)

Country Link
US (1) US7828218B1 (de)
EP (1) EP1301909B1 (de)
JP (1) JP2004505354A (de)
KR (1) KR100716039B1 (de)
CN (1) CN1191556C (de)
AT (1) ATE380376T1 (de)
AU (2) AU2000261898B2 (de)
CA (1) CA2416844A1 (de)
DE (1) DE60037342T2 (de)
WO (1) WO2002009046A1 (de)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7043493B2 (en) 2001-09-17 2006-05-09 Fujitsu Limited Hierarchical file system and anti-tearing algorithm for a limited-resource computer such as a smart card
US9137212B2 (en) 2006-12-04 2015-09-15 Oracle America, Inc. Communication method and apparatus using changing destination and return destination ID's
KR20090074393A (ko) * 2008-01-02 2009-07-07 삼성전자주식회사 데이터 수신 방법 및 장치
KR101383573B1 (ko) * 2008-08-01 2014-04-09 삼성전자주식회사 화상형성장치 및 그의 웹 정보 제공방법
EP2270758B1 (de) * 2009-06-30 2013-11-27 Kabushiki Kaisha Toshiba Tragbare elektronische Vorrichtung, Verarbeitungsvorrichtung für die tragbare elektronische Vorrichtung und Datenverarbeitungsverfahren in einer tragbare elektronischen Vorrichtung
US8321481B2 (en) 2010-05-13 2012-11-27 Assa Abloy Ab Method for incremental anti-tear garbage collection
TW201237630A (en) * 2011-03-01 2012-09-16 Wistron Corp Method and computer system for processing data in a memory
CN104657303B (zh) * 2014-10-13 2018-01-09 江苏瑞微电子有限公司 单总线数据通信方法
US10838739B2 (en) 2018-04-19 2020-11-17 Circle Media Labs Inc. Network-connected computing devices and methods for executing operating programs in RAM memory

Family Cites Families (111)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE425704B (sv) 1981-03-18 1982-10-25 Loefberg Bo Databerare
US4425642A (en) 1982-01-08 1984-01-10 Applied Spectrum Technologies, Inc. Simultaneous transmission of two information signals within a band-limited communications channel
JPS61177585A (ja) 1985-02-04 1986-08-09 Toshiba Corp 携帯用電子装置密封体
CN85100700A (zh) 1985-04-01 1987-01-31 陆伯祥 计算机莫尔条纹证件及其识别系统
US4694396A (en) 1985-05-06 1987-09-15 Computer X, Inc. Method of inter-process communication in a distributed data processing system
US4757495A (en) 1986-03-05 1988-07-12 Telebit Corporation Speech and data multiplexor optimized for use over impaired and bandwidth restricted analog channels
US4874935A (en) 1986-03-10 1989-10-17 Data Card Coprporation Smart card apparatus and method of programming same
FR2600441B1 (fr) 1986-06-18 1990-09-21 France Etat Unite de gestion de memoire
JPH087720B2 (ja) 1986-09-16 1996-01-29 富士通株式会社 複数サービス用icカードの領域アクセス方法
JPS63120391A (ja) 1986-11-10 1988-05-24 Hitachi Ltd Icカ−ド
JP2514954B2 (ja) 1987-03-13 1996-07-10 三菱電機株式会社 Icカ−ド
GB8720332D0 (en) 1987-08-28 1987-10-07 Mars Inc Data carrying devices
US4953160A (en) 1988-02-24 1990-08-28 Integrated Network Corporation Digital data over voice communication
US5283885A (en) 1988-09-09 1994-02-01 Werner Hollerbauer Storage module including a refresh device for storing start and stop refresh addresses
US5057997A (en) 1989-02-13 1991-10-15 International Business Machines Corp. Interruption systems for externally changing a context of program execution of a programmed processor
JPH0390977A (ja) 1989-09-01 1991-04-16 Toyo Ink Mfg Co Ltd 情報識別方法
JPH04141886A (ja) 1990-10-01 1992-05-15 Nec Corp マイクロコンピュータ
US5204663A (en) 1990-05-21 1993-04-20 Applied Systems Institute, Inc. Smart card access control system
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.
US5365576A (en) 1991-02-27 1994-11-15 Ricos Co., Ltd. Data and speech transmission device
US5148546A (en) 1991-04-22 1992-09-15 Blodgett Greg A Method and system for minimizing power demands on portable computers and the like by refreshing selected dram cells
US5204897A (en) 1991-06-28 1993-04-20 Digital Equipment Corporation Management interface for license management system
DE4126213C2 (de) 1991-08-08 2000-06-15 Deutsche Telekom Ag Chipkarte für mehrere Diensteanbieter
FR2683357A1 (fr) 1991-10-30 1993-05-07 Philips Composants Microcircuit pour carte a puce a memoire programmable protegee.
US5177768A (en) 1991-11-22 1993-01-05 Bell Communications Research, Inc. Spread-time code division multiple access technique with arbitrary spectral shaping
US5721788A (en) 1992-07-31 1998-02-24 Corbis Corporation Method and system for digital image signatures
JPH06119393A (ja) 1992-08-20 1994-04-28 Ricoh Co Ltd 電子ファイル装置
DE4242247C2 (de) 1992-12-15 1998-05-14 Orga Kartensysteme Gmbh Ausweiskarte mit optischem Datenträger
FR2703800B1 (fr) 1993-04-06 1995-05-24 Bull Cp8 Procédé de signature d'un fichier informatique, et dispositif pour la mise en Óoeuvre.
US5446901A (en) 1993-06-30 1995-08-29 Digital Equipment Corporation Fault tolerant distributed garbage collection system and method for collecting network objects
US5469559A (en) 1993-07-06 1995-11-21 Dell Usa, L.P. Method and apparatus for refreshing a selected portion of a dynamic random access memory
US5534372A (en) 1993-07-28 1996-07-09 Konica Corporation IC card having image information
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
US5517645A (en) 1993-11-05 1996-05-14 Microsoft Corporation Method and system for interfacing components via aggregate components formed by aggregating the components each with an instance of a component manager
US6546112B1 (en) 1993-11-18 2003-04-08 Digimarc Corporation Security document with steganographically-encoded authentication data
US6345104B1 (en) 1994-03-17 2002-02-05 Digimarc Corporation Digital watermarks and methods for security documents
US5832119C1 (en) 1993-11-18 2002-03-05 Digimarc Corp Methods for controlling systems using control signals embedded in empirical data
US5481715A (en) 1993-12-15 1996-01-02 Sun Microsystems, Inc. Method and apparatus for delegated communications in a computer system using trusted deputies
ATE152539T1 (de) 1994-02-08 1997-05-15 Belle Gate Invest Bv Datenauswechselsystem mit tragbaren datenverarbeitungseinheiten
FR2717931B1 (fr) 1994-03-23 1996-05-31 Gemplus Card Int Système de vérification d'identité.
US5450490A (en) 1994-03-31 1995-09-12 The Arbitron Company Apparatus and methods for including codes in audio signals and decoding
US5404377A (en) 1994-04-08 1995-04-04 Moses; Donald W. Simultaneous transmission of data and audio signals by means of perceptual coding
JPH07336460A (ja) 1994-06-03 1995-12-22 Hitachi Ltd データ通信装置
US5568641A (en) 1995-01-18 1996-10-22 Hewlett-Packard Company Powerfail durable flash EEPROM upgrade
US5930363A (en) 1995-03-17 1999-07-27 Transmo Limited Card charging systems
US5636695A (en) 1995-03-22 1997-06-10 Watson, Jr.; Curtis G. Gripping device for a horseshoe
US5594227A (en) 1995-03-28 1997-01-14 Microsoft Corporation System and method for protecting unauthorized access to data contents
AU5121296A (en) 1995-04-07 1996-10-23 Sofmap Future Design Co., Ltd. Data processing system and method, and computer program arch itecture
CA2173695A1 (en) 1995-04-14 1996-10-15 Panagiotis Kougiouris Method and system for providing interoperability among processes written to execute on different operating systems
SG73580A1 (en) 1995-05-12 2000-06-20 Macrovision Corp Video media security and tracking system
US5805899A (en) 1995-07-06 1998-09-08 Sun Microsystems, Inc. Method and apparatus for internal versioning of objects using a mapfile
US6385645B1 (en) 1995-08-04 2002-05-07 Belle Gate Investments B.V. Data exchange system comprising portable data processing units
ES2153455T3 (es) 1995-08-04 2001-03-01 Belle Gate Invest B V Sistema de intercambio de datos que incluye unidades portatiles de procesamiento de datos.
US5768385A (en) 1995-08-29 1998-06-16 Microsoft Corporation Untraceable electronic cash
US5721781A (en) 1995-09-13 1998-02-24 Microsoft Corporation Authentication system and method for smart card transactions
DE19536169A1 (de) 1995-09-29 1997-04-03 Ibm Multifunktionale Chipkarte
DE19542910B4 (de) 1995-11-17 2005-01-05 Deutsche Telekom Ag Verfahren und Vorrichtung zum Schutz gespeicherter Daten
DE19600081C2 (de) 1996-01-03 1999-11-18 Ibm Sicherung der Datenintegrität bei Datenträgerkarten
FR2743910B1 (fr) 1996-01-19 1998-02-27 Solaic Sa Procede de mise en oeuvre d'un programme securise dans une carte a microprocesseur et carte a microprocesseur comportant un programme securise
JP4084428B2 (ja) 1996-02-02 2008-04-30 富士通株式会社 半導体記憶装置
US5905819A (en) 1996-02-05 1999-05-18 Eastman Kodak Company Method and apparatus for hiding one image or pattern within another
US5742756A (en) 1996-02-12 1998-04-21 Microsoft Corporation System and method of using smart cards to perform security-critical operations requiring user authorization
DE69711755T2 (de) 1996-05-02 2002-11-14 Texas Instruments Inc Verbesserungen in Bezug auf Sicherheitssysteme
KR100186412B1 (ko) 1996-05-07 1999-04-15 구자홍 메모리를 내장한 광 디스크
US5896393A (en) 1996-05-23 1999-04-20 Advanced Micro Devices, Inc. Simplified file management scheme for flash memory
US5781723A (en) 1996-06-03 1998-07-14 Microsoft Corporation System and method for self-identifying a portable information device to a computing unit
US5889868A (en) 1996-07-02 1999-03-30 The Dice Company Optimization methods for the insertion, protection, and detection of digital watermarks in digitized data
US5915027A (en) 1996-11-05 1999-06-22 Nec Research Institute Digital watermarking
US5884316A (en) 1996-11-19 1999-03-16 Microsoft Corporation Implicit session context system with object state cache
JP3145047B2 (ja) 1996-12-17 2001-03-12 松下電送システム株式会社 V.34ファクシミリ端末・制御チャネル・速度選択方法
DE69720938T2 (de) 1996-12-20 2004-03-04 Texas Instruments Inc., Dallas Verbesserungen in Bezug auf Sicherheitssysteme
FR2757661B1 (fr) 1996-12-24 1999-01-22 Gemplus Card Int Procede de transfert securise de donnees par un reseau de communication
US5790489A (en) 1997-01-21 1998-08-04 Dell Usa, L.P. Smart compact disk including a processor and a transmission element
US5862117A (en) 1997-03-12 1999-01-19 Em Microelectronic-Marin Sa Device, in particular a compact disc, comprising a data storage medium and an integrated circuit
EP0864996A3 (de) 1997-03-13 1999-09-15 Hitachi, Ltd. Tragbare elektronische Vorrichtung und Personenidentifizierungsverfahren
US6220510B1 (en) 1997-05-15 2001-04-24 Mondex International Limited Multi-application IC card with delegation feature
US6005940A (en) 1997-05-16 1999-12-21 Software Security, Inc. System for securely storing and reading encrypted data on a data medium using a transponder
JP4246812B2 (ja) 1997-06-12 2009-04-02 パナソニック株式会社 半導体回路及びその制御方法
KR19990012099A (ko) 1997-07-26 1999-02-25 윤종용 전자주민카드를 이용한 사용자 확인 방법
TW389900B (en) 1997-10-09 2000-05-11 Victor Company Of Japan Optical disces, producing methods and production apparatus of the optical discs
US5984186A (en) 1997-10-29 1999-11-16 Psc Inc. CCD-base bar code scanner
US6484946B2 (en) 1997-12-22 2002-11-26 Hitachi, Ltd. IC card information display device and IC card for use therewith
US6545981B1 (en) * 1998-01-07 2003-04-08 Compaq Computer Corporation System and method for implementing error detection and recovery in a system area network
US6104812A (en) 1998-01-12 2000-08-15 Juratrade, Limited Anti-counterfeiting method and apparatus using digital screening
US6311186B1 (en) 1998-02-20 2001-10-30 Priority Call Management, Inc. Telecommunications switching system utilizing a channelized database access mechanism
FR2776153B1 (fr) 1998-03-10 2000-07-28 Ordicam Rech Et Dev Procede pour l'identification securitaire d'une personne et dispositif portatif pour la mise en oeuvre du procede
US6241153B1 (en) 1998-03-17 2001-06-05 Cardxx, Inc. Method for making tamper-preventing, contact-type, smart cards
EP0944256A1 (de) 1998-03-19 1999-09-22 Hitachi Europe Limited Kopierschutzvorrichtung und -verfahren
US6128627A (en) 1998-04-15 2000-10-03 Inktomi Corporation Consistent data storage in an object cache
US6608911B2 (en) 2000-12-21 2003-08-19 Digimarc Corporation Digitally watermaking holograms for use with smart cards
US6282700B1 (en) 1998-05-21 2001-08-28 Hewlett Packard Company Mechanism for maintaining revisions of objects in flash memory
US6212633B1 (en) 1998-06-26 2001-04-03 Vlsi Technology, Inc. Secure data communication over a memory-mapped serial communications interface utilizing a distributed firewall
US6374355B1 (en) 1998-07-31 2002-04-16 Lucent Technologies Inc. Method for securing over-the-air communication in a wireless system
JP2000094874A (ja) 1998-09-22 2000-04-04 Canon Inc 電子部品内蔵カードとその製造方法
US6742712B1 (en) 1998-09-29 2004-06-01 Asa Systems, Inc. Information card and information card system
US6257486B1 (en) 1998-11-23 2001-07-10 Cardis Research & Development Ltd. Smart card pin system, card, and reader
US6321981B1 (en) 1998-12-22 2001-11-27 Eastman Kodak Company Method and apparatus for transaction card security utilizing embedded image data
US6480831B1 (en) 1998-12-24 2002-11-12 Pitney Bowes Inc. Method and apparatus for securely transmitting keys from a postage metering apparatus to a remote data center
US6480935B1 (en) 1999-01-15 2002-11-12 Todd Carper Smart card memory management system and method
US6311280B1 (en) 1999-02-22 2001-10-30 Nband Communications Low-power memory system with incorporated vector processing
US6349336B1 (en) 1999-04-26 2002-02-19 Hewlett-Packard Company Agent/proxy connection control across a firewall
US6535997B1 (en) 1999-05-19 2003-03-18 International Business Machines Corporation Data integrity in smartcard transactions
JP2001052143A (ja) 1999-08-09 2001-02-23 Mega Chips Corp 認証用記録媒体および認証システム
US6292874B1 (en) 1999-10-19 2001-09-18 Advanced Technology Materials, Inc. Memory management method and apparatus for partitioning homogeneous memory and restricting access of installed applications to predetermined memory ranges
JP2001126046A (ja) 1999-10-29 2001-05-11 Kyodo Printing Co Ltd Icカード、icカード認証システム、及びその認証方法
US6325285B1 (en) 1999-11-12 2001-12-04 At&T Corp. Smart card with integrated fingerprint reader
US6572025B1 (en) 2000-05-10 2003-06-03 Japan Gain The Summit Co., Ltd. Information code product, manufacturing device and method for manufacturing the same, information code reading device, authentication system, authentication terminal, authentication server, and authentication method
US6808118B2 (en) 2001-12-31 2004-10-26 Zebra Atlantek, Inc. Security code verification for identification cards
US7114032B2 (en) 2003-07-18 2006-09-26 International Business Machines Corporation Method and system for efficient fragment caching
US20050129334A1 (en) 2003-12-12 2005-06-16 Wilder Daniel V. Event photo retrieval system and method

Also Published As

Publication number Publication date
WO2002009046A1 (en) 2002-01-31
CN1191556C (zh) 2005-03-02
EP1301909A1 (de) 2003-04-16
AU6189800A (en) 2002-02-05
CA2416844A1 (en) 2002-01-31
AU2000261898B2 (en) 2006-12-14
ATE380376T1 (de) 2007-12-15
JP2004505354A (ja) 2004-02-19
DE60037342D1 (de) 2008-01-17
KR20030043913A (ko) 2003-06-02
EP1301909B1 (de) 2007-12-05
CN1454372A (zh) 2003-11-05
US7828218B1 (en) 2010-11-09
KR100716039B1 (ko) 2007-05-08

Similar Documents

Publication Publication Date Title
EP1360644B1 (de) Sicherheitsmodul mit flüchtigem speicher zur speicherung eines algorithmuscodes
DE102005054646B4 (de) Batterie und Originalbestätigungs-Anfrageeinrichtung
DE60315552T2 (de) IC-Karte und Methode zur Authentisierung in einem elektronischen Ticket-Verteiler-System
DE69814406T2 (de) Tragbare elektronische vorrichtung für systeme zur gesicherten kommunikation und verfahren zur initialisierung der parameter
DE112011100182B4 (de) Datensicherheitsvorrichtung, Rechenprogramm, Endgerät und System für Transaktionsprüfung
DE60006041T2 (de) Verfahren zur überprüfung der benützung von öffentlichen schlüsseln welche von einem geladenen system generiert werden
DE69935913T2 (de) Leckresistente aktualisierung eines indexierten kryptographischen schlüssels
DE69737083T2 (de) Verfahren und Vorrichtung zur Prüfung von Daten
DE602004012485T2 (de) Vorrichtung, Verfahren und Rechnerprogramm zur Verwaltung von digitalen Zertifikaten
DE3744841C2 (de)
DE602004002044T2 (de) Authentifizierungs-System- und Verfahren unter Verwendung von individualisierten und nicht-individualisierten Zertifikaten
DE60037342T2 (de) Verfahren und system für kommunizierende geräte, und vorrichtungen dafür, mit geschützter datenübertragung
DE3321910A1 (de) Vorrichtung und verfahren zum schuetzen von software
EP1073019A2 (de) Verfahren und Vorrichtung zur Übertragung von Daten auf SmartCards
DE69737806T2 (de) Datenverschlüsselungsverfahren
DE60100363T2 (de) Sequenznummerierungsmechanismus zur sicherung der ausführungsordnungs-integrietät von untereinander abhängigen smart-card anwendungen
EP3967546A1 (de) Betriebsverfahren für eine ladesäule
DE69629941T2 (de) Verfahren und einrichtung zur datenkommunikation
DE102018127529A1 (de) Elektronische Vorrichtung und Verfahren zum Signieren einer Nachricht
EP3963490B1 (de) Verfahren und vorrichtung zum übertragen eines boot-codes mit verbesserter datensicherheit
WO2006058828A2 (de) Verfahren zur personalisierung von chipkarten
EP3308278B1 (de) Verfahren zum aktualisieren von personalisierungsdaten
EP0977160B1 (de) Verfahren und Datenverarbeitungsanordnung zum gesicherten Ausführen von Befehlen
EP3742319B1 (de) Seitenkanalsichere implementierung
EP3367284A1 (de) Zugangskontrollvorrichtung und verfahren zur authentisierung einer zugangsberechtigung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition