DE69817333T2 - Verfahren und Vorrichtung zum Laden von Befehlskodes in einen Speicher und zum Verbinden dieser Befehlskodes - Google Patents

Verfahren und Vorrichtung zum Laden von Befehlskodes in einen Speicher und zum Verbinden dieser Befehlskodes Download PDF

Info

Publication number
DE69817333T2
DE69817333T2 DE69817333T DE69817333T DE69817333T2 DE 69817333 T2 DE69817333 T2 DE 69817333T2 DE 69817333 T DE69817333 T DE 69817333T DE 69817333 T DE69817333 T DE 69817333T DE 69817333 T2 DE69817333 T2 DE 69817333T2
Authority
DE
Germany
Prior art keywords
address
loading
information
memory
code
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
DE69817333T
Other languages
English (en)
Other versions
DE69817333D1 (de
Inventor
Michael Baentsch
Frank Höring
Peter Buhler
Marcus Oestreicher
Thomas Eirich
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE69817333D1 publication Critical patent/DE69817333D1/de
Application granted granted Critical
Publication of DE69817333T2 publication Critical patent/DE69817333T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1008Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/341Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/355Personalisation of cards for use
    • G06Q20/3552Downloading or loading of personalisation data
    • 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

Landscapes

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

Description

  • Die vorliegende Erfindung befasst sich mit einem Verfahren und einer Vorrichtung zum Laden von Befehlskodes in einen Speicher und zum Verbinden der genannten Befehlskodes. Im Besonderen befasst sich die vorliegende Erfindung mit einem kombinierten Verfahren zum Laden und Verbinden in einer Umgebung mit beschränkten Ressourcen, wie beispielsweise einer SmartCard, im Besonderen einer SmartCard mit einer Java-Umgebung, wie beispielsweise einer JavaCard.
  • Technischer Bereich und Hintergrund der Erfindung
  • Beim Laden und Verbinden von rechnerabhängigem, größeneffizientem Kode zur Ausführung in einer beliebigen Umgebung zur Ausführung von Kodes mit beschränkten Resscurcen ist es in allen Einstellungen, in denen nur Teile des gesamten ausführbaren Objektkodes während des Kompilierens vorhanden sind, notwendig, einen letzten Schritt zum Verschieben oder zum Verbinden auszuführen, bei dem bis dahin ungelöste Referenzen zu externen Symbolen, beispielsweise Funktionen, Variablen oder Klassen, ersetzt werden durch tatsächliche Adressen, die nur im partiellen Ausführungskontext gültig sind. Die Verbindungsinformationen werden separat vom Kode im System festgehalten, wobei dieser Ansatz zur Kode-Entwicklung und -Installation im Allgemeinen in PCs, Workstations oder in Cross-Development-Umgebungen für eingebettete Systeme verwendet wird.
  • In Umgebungen, in denen die Ressourcen Rechnerzeit, Kommunikationsbandbreite und Übergangsspeicher (RAM) rar sind, ist das Schreiben in einen dauerhaften Speicher aufwändiger als das Schreiben in einen temporären Speicher, und wo letztlich keine Überlegungen zur Integrität der Kommunikationsinfrastruktur angestellt werden können, ergeben sich weitere Probleme. Es müssen insbesondere zeiteffiziente Wege gefunden werden, um die Kode- und Verbindungsinformationen auf eine sichere Art in die Laufzeitumgebung zu laden, so dass die Vertraulichkeit und die Integrität der geladenen Daten sichergestellt sind.
  • Die erste Einstellung, der diese Überlegungen gelten, sind SmartCards, die aktualisiert werden müssen, nachdem sie an Kunden ausgegeben wurden. Vor allem bei Multifunktionskarten oder JavaCards ist eine Lösung dieses Problems notwendig. Daher wird der Begriff ,JavaCard' in den folgenden Abschnitten verwendet, umfasst aber nicht alle oben beschriebenen Umgebungen.
  • Das erste Problem ist die gesamte benötige Zeit zum Laden von Kode- und Verbindungsinformationen in die SmartCard, zum Ausführen von kryptografischer Entschlüsselung sowie von Integritätsprüfungen an der SmartCard über die geladenen Daten und letztlich zum Ausführen der Verschiebung des neu geladenen Kodes, um ihn zur Ausführung vorzubereiten. Das zweite größere Problem ist der Umfang an temporären Daten, die zur Ausführung der oben genannten Operationen erforderlich sind.
  • Die Europäische Patentanmeldung EP0383518 A1 legt eine Methode zum Verschieben von Programmkode nach dem Herunterladen auf eine IC-Karte offen, wobei ein Systemprogramm bei der Ausführung des Herunterladens eine Verschiebung oder Differenz zwischen der führenden Adresse des eingegebenen Programms und der führenden Adresse des Speicherbereichs des Speichers zu jeder der Operandenadressen oder absoluten Adressen der bedingten oder unbedingten JMP-Anweisungen, eine GO TO-Anweisung, eine CALL-Anweisung und eine BRANCH-Anweisung hinzufügt, die in das Programm mit einer bestimmten Datenlange eingefügt sind. Das Systemprogramm generiert somit ein heruntergeladenes Programm und speichert dies in dem Speicherbereich des Speichers bei der führenden Adresse des Speicherbereichs sowie in weiteren Adressen.
  • In konventionellen Systemen umfassen die Verschiebungsinformationen eine feste Information und eine Adress-Info. Die feste Information verweist auf den Adressplatz nach einem Befehlskode, der über eine Adresse als Parameter verfügt, der beim Verbinden bestimmt werden muss. Die Adressinformationen enthalten eine Verschiebung und in dem Fall, dass der Verschiebungstyp zeigt, dass sich die Adresse in einem Paket befindet, das sich von dem Paket unterscheidet, in dem der Adressparameter-Befehlskode liegt, bezeichnet eine Paket-ID, auch „AID" genannt, eine Startadresse und somit ein Paket, dessen Startadresse verwendet werden soll. In dem Falle, dass es sich bei dem Paket, in dem sich die Adresse befindet, um das gleiche Paket handelt, in dem auch der Adressparameter-Befehlskode liegt, ist die Startadresse bereits als Startadresse für dieses Paket bekannt. Die Adresse wird dann als Startadresse plus der Verschiebung festgelegt.
  • Unter Berücksichtigung der Besonderheiten und Begrenzungen von SmartCards werden die folgenden grundlegenden Schritte ausgeführt, um einen neuen ausführbaren Kode in eine JavaCard zu laden:
    • – Empfang des Kodes in einem RAM und Übermittlung des Kodes an einen dauerhaften Speicher, beispielsweise einen EEPROM.
    • – Empfang der Verbindungsinformationen (feste Informationen und Verschiebungstabellen) im RAM und deren Übermittlung an einen dauerhaften Speicher.
    • – Optionale Ausführung von Entschlüsselung und kryptografischen Integritätsprüfungen, im Allgemeinen bekannt als MACing, von Kode- und Verbindungsinformationen
    • – Bewertung der Verbindungsinformationen und für jeden Verschiebungseintrag Festlegung der festen Adresse und entsprechend dem Verschiebungstyp Berechnung der tatsächlichen Referenzadresse und Schreiben dieser Referenz in die entsprechende feste Adresse im dauerhaften Speicher.
    • – Entfernen der Verbindungsinformationen aus dem dauerhaften Speicher, um Platz für weiteren, zukünftig zu ladenden Kode zu schaffen.
  • Dieser Ansatz hat jedoch den Nachteil, dass beim Ausführen der kryptografischen Operationen nach dem Laden aller Daten, eine ungeeignete Anzahl an Speicherkopieroperationen ausgeführt werden muss und diese Operationen können ausschließlich im RAM effizient ausgeführt werden. Durch das Platzieren von Verbindungsinformationen in einem dauerhaften Speicher, hauptsächlich aus Gründen einer einfacheren Entschlüsselung und MACing, müssen große Einbußen in der Leistung in Kauf genommen werden, da diese Daten auf jeden Fall hinterher gelöscht werden müssen, was wiederum eine umfangreiche Schreiboperation im dauerhaften Speicher erforderlich macht.
  • Durch Ausführen der Verschiebung, nachdem der komplette Kode in den dauerhaften Speicher geladen wurde, muss ein weiterer Leistungsverlust hingenommen werden, da das Schreiben einzelner Bytes in einen dauerhaften Speicher ebenso viel Zeit in Anspruch nimmt wie das Schreiben mehrerer Bytes, sogar einer ganzen Seite.
  • Ziel und Vorteile der vorliegenden Erfindung
  • Ein Ziel der vorliegenden Erfindung nach den Ansprüchen 1 und 8 ist die Bereitstellung eines Verfahrens und einer Vorrichtung zum Laden von Befehlskodes in einen Speicher und zum Verbinden der genannten Befehlskodes, was weniger Schreibzyklen in Anspruch nimmt als bei einem Speicher mit einer relativ langen Zugriffszeit. Dies bringt der, Vorteil mit sich, dass das Ergebnis einer komplett geladenen und verbundenen Befehlskode-Sequenz schneller erreicht werden kann und dass die Lebenszeit des Geräts verlängert werden kann, da aufgrund einer begrenzten Neubeschreibbarkeit die Anzahl an Schreibzugriffen auf den gleichen Speicher ebenfalls begrenzt ist. Das Ergebnis wird noch verbessert, indem der Effekt ausgenutzt wird, dass ein Schreibzyklus in ein EEPROM für ein Byte genauso viel Zeit in Anspruch nimmt wie es ein Schreibzyklus für mehrere Bytes tut, beispielsweise eine EEPROM Seite, also 64 Bytes. Während der konventionellen Verbindungsprozedur benötigt jeder Verbindungsschritt für jede Adresse einen Schreibzugriff auf den Speicher, was im Hinblick auf die oben beschriebene Tatsache einen Verlust von Zugriffszeit bedeutet. Die Erfindung nutzt in einem höheren Grad die Schreibmöglichkeiten eines jeden Schreibzyklus. Hinzu kommt, dass eine Entschlüsselung unter Verwendung eines Ziffernstroms und/oder einer Integritätsprüfung auch ohne vorheriges Schreiben in EEPROM ausgeführt werden kann.
  • Die oben genannten Ziele werden durch ein Verfahren nach Anspruch 1 sowie durch eine Vorrichtung nach Anspruch 10 erreicht.
  • Weiterhin wird der Umfang an Daten verringert, die für ein Verbinden erforderlich sind. Der an die Ausführungsumgebung zu sendende Umfang an Daten ist kleiner, verglichen mit einem Format, in dem Kode- und Verschiebungsinformationen nicht miteinander verzahnt, sondern strikt voneinander getrennt werden. In einer Einstellung, in der zuerst die Kode- und anschließend die Verschiebungsinformationen gesendet werden, ist es notwendig, zu jedem Verschiebungseintrag die Informationen darüber hinzuzufügen, für welche Kode-Adresse die entsprechende Verschiebung gültig ist. Diese so genannte feste Information wird vollkommen überflüssig durch das in der vorliegenden Erfindung beschriebene Verfahren. Das Ergebnis ist eine erhebliche Verringerung im Umfang der an die Ausführungsumgebung gesendeten Daten, was wiederum zu einer Verringerung der Gesamtzeit führt, die zur Ausführung des Heraufladens notwendig ist, vor allem, wenn die Geschwindigkeit der Kommunikation mit der Ausführungsumgebung gering ist.
  • Unterscheidungsinformationen, die eine Unterscheidung zwischen den Befehlskodes und den Verschiebungsinformationen ermöglichen, vereinfachen den Zugriff auf die Verschiebungsinformationen. Die Verwendung von Kodelängeninformationen, die vor jedem Kodesatz mit dem Adressparameter-Befehlskode geladen werden, ist vorteilhaft, da Informationen umgehend verfügbar sind, um die Verschiebungsinformationen auszumachen. Weiterhin können die Kodelängeninformationen während des Verbindungsprozesses gelöscht beziehungsweise überschrieben werden, wodurch Speicherplatz eingespart wird.
  • Das Lokalisieren des relativen Adress-Abstands am Adressplatz während des Ladeschritts spart Speicherplatz, da der Adressplatz sowieso als ein reservierter Platz geladen wird und nur mit wichtigem Inhalt ausgefüllt wird, wie beispielsweise Nullwerte, die den gleichen Platz einnehmen wie der Adressplatz mit dem Abstandwert.
  • Es bietet einen Vorteil, wenn in dem Fall, dass die zu bestimmende Adresse in einem Paket lokalisiert wird, das sich vom Paket mit dem Adressparameter-Befehlscode unterscheidet, die Startadresse von einer direkt adressierbaren Startadressenliste abgeleitet wird, da dann die relativ langen AIDs nur einmal gespeichert werden und auf weniger Platz einnehmende Adressen reduziert werden.
  • Speicherplatz wird gespart, wenn die Verschiebungsinformationen und die Unterscheidungsinformationen nach dem Verbindungsschritt, der unter Verwendung der genannten Verschiebungsinformationen vorgenommen wird, überschrieben werden, indem die nachfolgenden Befehlskodes verschoben werden.
  • Der erste Speicher, in den die Befehlskodes geladen werden und in dem die Verbindung stattfindet, verfügt vorzugsweise über eine kurze Schreibzugriffszeit, wie beispielsweise ein RAM, der eine schnelle Prozedur zum Laden und Verbinden bereitstellt. Wenn danach die Befehlskodes in einen zweiten Speicher mit einer längeren Schreibzugriffszeit, wie beispielsweise einem EEPROM geschrieben werden, wird der normalerweise größere Platz im EEPROM genutzt, um den gesamten verbundenen Code zu speichern, und die erhöhte Schreibzugriffzeit ist dann nicht mehr von Nachteil, da die Verbindung und die anschließende Entschlüsselung sowie die Integritätsprüfung bereits ausgeführt wurden.
  • Zusammenfassung der Erfindung
  • Eine Vorrichtung und ein Verfahren zum Laden von Kode über ein einfaches Protokoll in eine Umgebung mit beschränkten Ressourcen, eine Prüfung der Integrität unter Verwendung von kryptografischen Methoden und ein Verschieben des Kodes zur Umwandlung in eine Form, die zur sofortigen Ausführung geeignet ist, werden bereitgestellt. Das dargestellte Verfahren verringert den Umfang an Operationen sowohl zur Entschlüsselung als auch zum Schreiben in den Speicher, was zur Sicherstellung einer sicheren Übermittlung sowie zur Installation von Kode erforderlich ist.
  • Das grundlegende Prinzip besteht darin, die Verschiebungsinformationen direkt im Kode selbst zu verteilen und die beiden Komponenten nicht klar voneinander zu trennen. Zusätzlich kann das dargestellte Ladeformat effizient durch Mittel zur kryptografischen Verschlüsselung sowie zum Integritätsschutz gesichert werden, welche auch in Ausführungsumgebungen mit extrem beschränkten Ressourcen noch geprüft werden können.
  • Die Verwendung einer Ziffer, die während der Entschlüsselung und MACing nur von einigen wenigen Informationsbytes abhängt, die von der Verarbeitung zuvor entschlüsselter Daten stammen, und niemals von Informationen abhängt, die nur weiter vorn im verschlüsselten Datenstrom vorhanden sind, ermöglicht die stückweise Entschlüsselung, die mit der Integritätsprüfung und dem Verbinden kombiniert werden kann.
  • Die vorliegende Erfindung verwendet dieses Prinzip, um umgehend mit den Verbindungsinformationen arbeiten zu können, solange sie sich noch im RAM befinden und somit erst in einen dauerhaften Speicher übermittelt werden, wenn der Kode verbunden ist. Dies ist auch auf sichere Art möglich, sobald eine Datenstromziffer, wie sie oben beschrieben wurde, verwendet wird.
  • Dergestalt ineinander verschlungene Kode- und Verbindungsinformationen, die eine umgehede Verschiebung im RAM ermöglichen, führen dazu, dass nur komplett verschobene Kodesegmente in den dauerhaften Speicher, das heißt in EEPROM, geschrieben werden müssen und dass ein nachfolgendes Schreiben einzelner Bytes an den festen Adressen vollständig umgangen werden kann.
  • Die vorgeschlagene Lösung umfasst also das Ineinandergreifen von Kode- und Verbindungsinformationen im Datenstrom.
  • Der Speicher wird in unveränderbaren Speicher (beispielsweise ROM), in dauerhaften Speicher (beispielsweise EEPROM) und in Übergangsspeicher (beispielsweise RAM) unterteilt. Nur in die beiden letztgenannten Speicher kann von einem Programm mit Zugriff zum Speicher geschrieben werden. Das Schreiben in den dauerhaften Speicher ist sehr viel aufwändiger als das Ändern von Daten im Übergangsspeicher. Das Schreiben mehrerer Bytes, beispielsweise Seiten, in den dauerhaften Speicher ist ebenso aufwändig wie das Schreiben einzelner Bytes. Kryptografische Operationen erfordern einen Übergangsspeicher. Bei dem Übergangsspeicher handelt es sich um eine rare Ressource, die von allen Anwendungskomponenten angefragt wird, die im System mit beschränkten Ressourcen ausgeführt werden.
  • Beschreibung der Zeichnungen
  • Beispiele für die vorliegende Erfindung werden in den Zeichnungen dargestellt und die Erfindung wird im Folgenden anhand dieser Beispiele detailliert beschrieben.
  • 1 zeigt ein Beispiel für eine Befehlskodesequenz in einem EEPROM entsprechend dem Stand der Technik;
  • 2 zeigt eine Ladesequenz einer Befehlssequenz, verwoben mit Verbindungsinformationen;
  • 3 zeigt eine Anordnung mit einer virtuellen Maschine (VM), einem RAM und einem EEPROM.
  • Alle Figuren dienen dem besseren Verständnis und werden nicht in ihren realen Abmessungen gezeigt noch stehen die gezeigten Abmessungen in einem realistischen Größenverhältnis zueinander.
  • Detaillierte Beschreibung der vorliegenden Erfindung
  • Im Folgenden werden die verschiedenen Ausführungsbeispiele der vorliegenden Erfindung beschrieben.
  • In 1 wird ein EEPROM 50 dargestellt, in dem ein erstes Paket P1 zwischen den Adressen „50" und „90" gespeichert ist. Das Paket verfügt über ein AID „xtra, das bei einer Adresse „60" gespeichert ist. Das erste Paket P1 wurde bereits vollständig verschoben.
  • Ein zweites Paket P2 zwischen den Adressen 100 und 800 umfasst einen ersten Befehlskode 31 bei einer Adresse 500, wobei es sich bei dem Befehlskode 31 um eine Aufrufkode handelt, gefolgt von einem Parameter, der beim Laden gleich Null ist. Das zweite Paket P2 umfasst einen zweiten Befehlskode 33 bei einer Adresse 600, wobei es sich bei diesem Befehlskode 33 um einen Aufrufkode handelt, gefolgt von einem Parameter, welcher beim Laden ebenfalls gleich Null ist.
  • In den EEPROM 50 wird weiterhin eine Verschiebungstabelle 4 geladen, die Verschiebungsinformationen in Form zweier Verschiebungseinträge 42, 44 umfasst. Der erste Verschiebungseintrag 42 umfasst eine erste feste Information, die auf den Adressplatz 501 zeigt, wo die Adresse als Parameter für den ersten Befehlscode 31 anzuordnen ist. Der Eintrag umfasst weiterhin eine Kennung für Verschiebungstypen, die hier mit ars für „anonymous-relocation-selfdirectea" abgekürzt wird. Dieser Kennung folgt der relative Adress-Abstand, der hier 40 beträgt. Der zweite Verschiebungseintrag umfasst eine zweite feste Information, die auf den Adressplatz 601 zeigt, an den die Adresse als Parameter für den zweiten Befehlskode 33 zu setzen ist. Er umfasst weiterhin eine Kennung für Verschiebungstypen, die hier mit „symb" für symbolic relocation abgekürzt wird. Der Kennung folgt ein relativer Adress-Abstand, der hier 20 beträgt und durch eine Anwendungs-ID mit „xtra" bezeichnet wird.
  • Eine Paketliste 29 umfasst eine Liste aller bereits verbundenen Pakete, in diesem Fall für das erste Paket P1 einen Eintrag, der besagt, dass die Startadresse dieses Pakets „50" lautet.
  • Nach Stand der Technik werden auf einer SmartCard mit Ausnahme der Anwendungs-ID-Tabelle 29 alle die oben genannten Informationen zuerst in einen RAM und von dort in einen EEPROM geladen. Dies wird aufgrund der Tatsache ausgeführt, dass der RAM auf einer SmartCard sehr viel kleiner ist als der EEPROM. Zum Verbinden werden die gesamten Informationen benötigt, was zu der Notwendigkeit führt, dass alle Informationen gleichzeitig zur Verfügung stehen müssen. Dies kann nur mithilfe eines EEPROM garantiert werden.
  • Im Falle eines verschlüsselten Kodes folgt eine Entschlüsselungsoperation. Zu diesem Zweck wird der Kode stückweise zurück in den RAM geladen, wo eine Entschlüsselung ausgeführt wird, und der entschlüsselte Kode wird anschließend wieder zurück in den EEPROM geladen. Im Falle einer ausgeführten Integritätsprüfung wird der Kode zu einem anderen Zeitpunkt stückweise in den RAM geladen und die Integritätsprüfung wird ausgeführt, was zu einem Integritätsprüfungsvektor führt, der angibt, ob der Kode die Prüfung bestanden hat oder nicht.
  • Dann folgt die Verbindungsprozedur, die erneut nur im RAM ausgeführt werden kann. Also wird ein Teil der Verschiebungstabelle 47 in den RAM gelesen und die Verbindungsprozedur wird gestartet.
  • Die Verbindungsprozedur durchsucht die Verschiebungstabelle 47 und beginnt mit dem ersten Verschiebungseintrag 42. Der Eintrag wird verarbeitet auf der Grundlage, dass der Verschiebungstyp selbstgeleitet ist, da es sich bei der Startadresse um die Startadresse des zweiten Pakets P2 handelt, das heißt das derzeit geladene Paket, beispielsweise „100" wird zugrundegelegt. Zu dieser Startadresse wird die im ersten Verschiebungseintrag 42 gegebene Verschiebung „40" hinzugefügt, so dass sich daraus eine definitiv festgelegte Adresse „140" ergibt. Dieser Wert wird als die festgelegte Adresse im Adressplatz 501 des ersten Befehlskodes 31 eingegeben.
  • Dann wird der nächste Verschiebungseintrag verarbeitet, und unter Berücksichtigung der Tatsache, dass der Verschiebungstyp hier symbolisch ist, wird die Startadresse abgleitet, nachdem alle Einträge in der Paketliste 29 nacheinander geprüft wurden und jedes Paket nach seinem darin gespeicherten AID adressiert wird; im Falle einer Übereinstimmung der AIDs wird die so identifizierte Paketstartadresse als die Startadresse zur Festlegung der Adresse für den zweiten Befehlskode 33 ausgewählt. Da das erste Paket P1 über die AID „xtra" verfügt, wird es als das richtige Paket erkannt.
  • Diese Operation hat hier die Startadresse „50" zum Ergebnis. Zu dieser Startadresse wird die Verschiebung „20" aus dem zweiten Verschiebungseintrag 44 hinzugefügt, so dass sich letztlich eine definitiv festgelegte Adresse „70" im ersten Paket P1 ergibt. Dieser Wert wird als die festgelegte Adresse im Adressplatz des zweiten Befehlscodes 33 eingegeben, da der Adressplatz, auf den der zweite Verschiebungseintrag 44 zeigt, die 601 ist.
  • Dabei wird die Verbindungsprozedur beendet und die Verschiebungstabelle 47 sowie die Paketliste 29 werden nicht länger benötigt.
  • Die oben beschriebene Prozedur weist mehrere Nachteile auf. Die große Anzahl an Schreibzyklen in den und aus dem EEPPROM auf der einen Seite ist zeitaufwändig, da EEPROMs über längere Zugriffszeiten verfügen als RAMs und auf der anderen Seite wird die Lebenszeit eines Systems verkürzt, da die Anzahl der Schreibzyklen von EEPROMs beschränkt ist.
  • In 2 werden die Ladesequenz von Befehlskodes sowie Verschiebungsinformationen, auch Ladedatei genannt, dargestellt. Zuerst wird eine Anwendungs-ID-Liste 27 übermittelt, der eine Anwendungs-ID-Listenlängeninformation 28, kurz naidid, vorangeht. Die Anwendungs-ID-Liste 27 verfugt über drei Einträge, eine erste ID der Anwendungs-ID aid1id, eine zweite ID der Anwendungs-ID aid2id und eine dritte ID der Anwendungs-ID aid3id.
  • Anschließend folgt eine erste Unterscheidungsinformation 37 in Form einer Kodelängeninformation c11. Ein inkrementierender Befehlskode „inc" mit einem Parameter a folgt, vor dem ersten Adressparameter-Befehlskode 31 „call" mit einem Parameter os. Dann folgt bereits die erste Verschiebungsinformation 35, die zum ersten Befehlskode 31 gehört.
  • Anschließend folgt eine zweite Unterscheidungsinformation 38 in Form einer Kodelängeninformation c12. Ein dekrementierender Befehlskode „dec" mit einem Parameter a folgt, vor dem zweiten Adressparameter-Befehlskode 33 „call" mit einem Parameter os. Dann folgt bereits die zweite Verschiebungsinformation 36, die zum zweiten Befehlskode 33 gehört.
  • Zusätzlich zur Ladedatei können so genannte Ladedatei-Metainformationen, wie beispielsweise Kodelänge, Entschlüsselungsschlüssel, MAC-Schlüssel und so weiter geladen werden.
  • Somit existiert die Verschiebungsinformationenliste 47 nicht mehr als separater Block, sondern wurde aufgespaltet und mit der Befehlskodesequenz verwoben. Die Tatsache, dass die Verschiebungsinformationen 35, 36 direkt nach ihrem Befehlskode 31, 33 geladen wurden, macht die Adressinformationen zusammen mit der Verbindungsprozedur nach Stand der Technik überflüssig, welche zum Zeigen auf den Adressplatz erforderlich waren. Der zugeordnete Adressplatz wird hier automatisch erkannt, aufgrund des festen räumlichen Verhältnisses zwischen dem Platz für die Verschiebungsinformationen 35, 36 und dem Platz des Befehlskodes 31, 33. Es werden somit bei jedem Verschiebungsschritt zwei Bytes eingespart, was den Umfang der gesamten Bytes verringert, die zwischen den Speichern geladen und übermittelt werden müssen.
  • Da die Adressplätze hinter den Befehlskodes 31, 33 in der Ladeprozedur nicht mit Nullwerten gefüllt werden, sondern die Werte der relativen Adress-Abstände os enthalten, werden erneut zwei Bytes pro Verschiebungsinformation 35, 36 eingespart. Das System muss lediglich wissen, dass der relative Adress-Abstabd os am zugeordneten Adressplatz und nicht hinter den Verschiebungsinformationen 35, 36 zu finden ist. Der selbstgeleitete Verschiebungstyp wird somit auf einen Verschiebungsbefehl 35 mit einem Byte reduziert.
  • Die Unterscheidungsinformationen 37, 38 werden verwendet, um eine Unterscheidung zwischen den Befehlskodes 30, 31, 32, 33 und den Verschiebungsinformationen 35, 36 zu ermöglichen. So kann erkannt werden, bei welchem Teil des Kodes es sich um die Verschiebungsinformationen 35, 36 handelt und wie dieser Teil entsprechend zu verarbeiten ist.
  • Das Verweben der Verschiebungsinformationen 35, 36 mit der Befehlskodesequenz wird nun verwendet, um die Adresse direkt nach dem Laden zu verschieben. Die Verfügbarkeit der Verschiebungsinformationen 35, 36 bereits vor dem Laden der gesamten Ladesequenz macht ein sofortiges Verschieben möglich.
  • Der Begriff Sofortig bezeichnet hier die Tatsache, dass das RAM 51 entweder gefüllt ist oder dass das Ende der Kodesequenz erreicht wurde. Vor dem Verschieben kann eine mögliche Entschlüsselungs- und/oder Integritätsprüfung für den Fall vorgenommen werden, dass der Kode in verschlüsselter Form geladen wurde und/oder eine Integritätsprüfung gefordert oder gewünscht wird. Eine solche Entschlüsselung kann mithilfe einer Datenstromziffer vorgenommen werden, die den Teil des Kodes ausmacht, der den RAM 51 erfüllt, ohne von Informationen abzuhängen, die nur in nachfolgendem Kode zur Verfügung stehen.
  • Die Verschiebung wird gestartet, was bedeutet, dass der erste Kode 31 mit der festgelegten Adresse verknüpft wird, wonach die entsprechende Verschiebungsinformation 35 überflüssig geworden ist und überschrieben werden kann. Dies kann durch Verschieben des nachfolgenden Kodes um die richtige Anzahl an Bytes nach oben stattfinden. Danach können wiederum die Kodelängeninformationen genutzt werden, was Platz im EEPROM 50 einspart.
  • Anwendungs-IDs, definiert nach ISO 7816 und normalerweise verwendet in Implementierungen nach Stand der Technik zum Laden und Verbinden von neuem Kode auf einer JavaCard, sind relativ lang, das heißt zwischen 5 und 15 Bytes lang. Die ID- Liste Anwendungs-ID 27 stellt einen Mechanismus bereit, der den erforderlichen Umfang sowohl an Datenspeicherr während der Verbindungszeit als auch an übermittelten Daten während des Ladestatus verringert.
  • Um diese Einsparungen zu ermöglichen, wird als erste Stufe im, Ladeprozess die Anzahl an AIDs, die mit dem folgenden Kode zu verknüpfen sind, an die Anordnung, beispielsweise eine SmartCard übermittelt. Nun kann die SmartCard (vorübergehenden) Datenspeicher für die gleiche Anzahl an Adressen zuteilen, wie AIDS angegeben wurden.
  • Dieser Datenspeicher wird nach und nach mit den Startadressen der verschiedenen Pakete gefüllt, die von den genannten AIDs identifiziert wurden, welche nacheinander an die SmartCard übermittelt wurden. Die Laufzeitumgebung bietet daher eine Methode zum Suchen nach den Startadressen der Pakete mit der AIDs, wie sie von der SmartCard empfangen wurden. Die daraus resultierenden Startadressen werden dann in die Tabelle AID-ID 27 eingegeben. Insgesamt werden die AIDs nur einmal an die SmartCard gesendet, in einer vordefinierten Reihenfolge, die dann in der anschließend erstellten Tabelle AID-ID 27 wiedergegeben wird. Dies vereinfacht die Verwendung nur kurzer (1 Byte langer) AID-IDs, im Gegensatz zu den langen AIDs mit einer Länge von 5 bis 15 Bytes in jeder symbolischen Verknüpfungsinformation, die sich in dem nachfolgend gesendeten Kode und den Verschiebungsinformationen befindet.
  • Da die Entschlüsselung, Integritätsprüfung und Verknüpfung stückweise erfolgen kann, das heißt nur für einen Teil des geladenen Kodes, für jeden Teil aufeinander folgend, können alle Operationen umgehend nach dem Laden des entsprechenden Teils in den RAM 51 und dem anschließenden Laden des entschlüsselten, integritätsgeprüften und verknüpften Kodes in den EEPROM ausgeführt werden.
  • Der verringerte Umfang des RAM 51 hat demzufolge weniger große Auswirkungen auf den Prozess des Ladens und Verbindens.
  • Weiterhin kann ein Prozess zum Auffüllen eingeführt werden, das heißt ein Prozess zum Füllen von leerem Platz im RAM 51 mit Nullwerten, um nur vollständige Informationen einschließlich des Adressparameter-Befehlskodes 31, 33 mit den dazugehörigen Verschiebungsinformationen 35, 36 zu verarbeiten. Somit kann es vermieden werden, dass ein Zwischenspeichern von Befehlskodes erforderlich wird, deren Verschiebungsinformationen nicht mehr in den RAM 51 passen. Wenn sich nach dem Schritt des Ladens, mit dem der RAM 51 aufgefüllt wird, keine Verschiebungsinformationen mehr im RAM 51 befinden, ist kein Verbinden mehr nötig und der Inhalt des RAM 51 kann direkt an den EEPROM 50 übermittelt werden.
  • In 3 wird eine Anordnung dargestellt, die eine Umgebung mit beschränkten Ressourcen zeigt, wie sie vor allem auf SmartCards zu finden ist. Die Beschränkung zeigt sich vor allem in der Größe des RAM 51 und EEPROM 50, aber auch in geringer Rechnerleistung, die Auswirkungen hat auf die Kryptographie, zu geringen Busweiten führt, ausschlaggebend ist für die Geschwindigkeit der Interkommunikation, kleine Taktzyklen nach sich zieht, was wiederum zu einer geringen Geschwindigkeit bei der Kommunikation zwischen den einzelnen Komponenten sowie zu einer geringen Verarbeitungsgeschwindigkeit führt, und so weiter.
  • Ein Mikroprozessor μP 1 betreibt einen virtuellen Rechner 10, der wiederum mit einem ersten Speicher 51 verbunden ist, bei dem es sich um einen Speicher mit einer kurzen Schreibzugriffszeit handelt, hier ein RAM, sowie mit einem zweiten Speicher 50 verbunden ist, der im Verhältnis über eine längere Schreibzugriffszeit verfügt, hier ein EEPROM.
  • Der RAM 51 ist weiterhin verbunden mit einem Coprozessor cμP 2 sowie mit einer Protokollverarbeitungseinheit (Protocol Handling Unit) PHU 15, die den APDU-Verkehr regelt, der die gezeigte Anordnung, wie sie sich auf einer SmartCard befinden könnte, erreicht und wieder verläßt.
  • Über die PHU 15 wird Kode in den RAM 51 geladen. Dieser Kode umfasst die Befehlskodesequenz und die Verschiebungsinformationen 35, 36. Nach Stand der Technik wird die gesamte Kodesequenz für ein Applet über den RAM 51 in den EEPROM 50 geladen. Nur dann, abgesehen von Entschlüsselungs- und/oder Integritätsprüfung, wird die Verbindungsprozedur ausgeführt. Der RAM 51 ist kleiner als der EEPROM 50, so dass die Kodesequenz nur stückweise an den EEPROM 50 übertragen werden kann, wobei jedes dieser Stücke in den RAM 51 passt. Mit dem hier beschriebenen neuen Verfahren wird jedes Stück vollständig verbunden, bevor es in den EEPROM 50 geladen wird. Mit der Überschreibfunktion wird sogar noch weniger Platz im EEPROM 50 verwendet, was dessen Lebenszeit noch weiter verlängert. Das Kodeladen zwischen den Speichern 50, 51 sollte über ein Transaktions-Subsystem stattfinden, um die Integrität des EEPROM 50 im Falle von Fehlern während des Ladens, Verbindens und der Installation von neuem Kode auf der SmartCard sicher zu stellen. Die Entschlüsselung und Integritätsprüfung wird vorzugsweise durch den Coprozessor cμP 2 vorgenommen, während das Laden und Verbinden vorzugsweise durch den Mikroprozessor μP 1 vorgenommen wird.
  • Anstelle von Aufruf-Befehlskodes können auch beliebige andere Adressparameter-Befehlskodes verwendet werden. Andere Parameter wie die Nummern der Adressen dienen lediglich als Beispiele und können verändert werden, ohne dass von der Zielsetzung der vorliegenden Erfindung entsprechend den angehängten Ansprüchen abgewichen wird.

Claims (13)

  1. Ein Verfahren zum Laden von Befehlskodes (30, 31, 32, 33) in einen ersten Speicher (51) sowie zum Verbinden der genannten Befehlskodes (30, 31, 32, 33), wobei mindestens ein Befehlskode (31, 33) als Parameter über eine Adresse verfügt, die während eines Schritts zum Laden nicht festgelegt wurde und wobei für den genannten Adressparameter-Befehlskode (31, 33) eine Verschiebungsinformation (42, 44, 35, 36) geladen wird, die während eines Schritts zum Verbinden bewirkt, dass die genannte Adresse unter Verwendung einer Startadresse (xtra, aid1id, aid2id, aid3id) sowie eines relativen Adress-Abstands (os) festgelegt wird und wobei die genannte festgelegte Adresse an den genannten Adressplatz gestellt wird, dadurch gekennzeichnet, dass während des genannten Ladeschritts, direkt nach dem Laden jedes einzelnen Adressparameter-Befehlskodes (31, 33) mit seinem Adressplatz die genannten Verschiebungsinformationen (42, 44, 35, 36) geladen werden und die genannte Adresse im genannten Schritt zum Verbinden festgelegt wird.
  2. Ein Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass Unterscheidungsinformationen (37, 38) geladen werden, die eine Unterscheidung zwischen den Befehlskodes (30, 31, 32, 33) und den Verschiebungsinformationen (42, 44, 35, 36) ermöglichen.
  3. Ein Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass die Unterscheidungsinformationen (37, 38) Kodelängeninformationen (c11, c12) umfassen, die vor jedem der Adressparameter-Befehlskodes (31, 33) geladen werden.
  4. Ein Verfahren nach den Ansprüchen 1 bis 3, dadurch gekennzeichnet, dass während dem Schritt zum Laden der relative Adress-Abstand (os) am Adressplatz lokalisiert wird.
  5. Ein Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, dass in dem Falle, dass sich die zu bestimmende Adresse in einem Paket (P1) befindet, das sich von dem Paket (P2) unterscheidet, in dem sich der Adressparameter-Befehlskode (31, 33) befindet, die Startadresse (xtra, aid1id, aid2id, aid3id) von einer direkt adressierbaren Startadressenliste (27) abgeleitet wird.
  6. Ein Verfahren nach Anspruch 5, dadurch gekennzeichnet, dass die Startadressenliste (27) durch Laden von Nennern für die Startadressen (xtra, aid1id, aid2id, aid3id) sowie durch Ausführen unter Verwendung einer Tabelle eines nachfolgenden Durchsuchungsschritts, der zu den genannten Startadressen (xtra, aid1id, aid2id, aid3id) führt und durch Ersetzen der genannten Nenner durch die Startadressen (xtra, aid2id, aid2id, aid3id) erstellt wird.
  7. Ein Verfahren nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, dass die Verschiebungsinformationen (35, 36) und die folgenden Unterscheidungsinformationen (37, 38) nach dem Schritt zum Verbinden unter Verwendung der genannten Verschiebungsinformationen (35, 36) überschrieben werden, indem die nachfolgenden Befehlskodes (30, 31, 32, 33) verschoben werden.
  8. Ein Verfahren nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, dass der erste Speicher (51), in den die Befehlskodes (30, 31, 32, 33) geladen werden und in dem das Verbinden ausgeführt wird, über eine kurze Schreibzugriffszeit verfügt, wie beispielsweise ein RAM und dass danach die Befehlskodes (30, 31, 32, 33) in einen zweiten Speicher (50) mit einer längeren Schreibzugriffszeit geschrieben werden, beispielsweise ein EEPROM.
  9. Ein Verfahren nach einem der Ansprüche 1 bis 8, dadurch gekennzeichnet, dass die Befehlskodes (30, 31, 32, 33) in einer verschlüsselten Form und/oder mit einer Information zu einer Integritätsprüfung geladen werden und dass die genannten Befehlskodes (30, 31, 32, 33) im genannten ersten Speicher (51) mit kurzer Schreibzugriffszeit entschlüsselt und/oder auf ihre Integrität geprüft werden.
  10. Eine Vorrichtung mit einem ersten Speicher (51) mit Mitteln zum Laden in den genannten ersten Speicher (51) von Befehlskodes (30, 31, 32, 33), die über Mittel zum Verbinden des genannten Befehlskodes (30, 31, 32, 33) verfügt, wobei mindestens einer der Befehlskodes (31, 33) über eine Adresse als Parameter verfügt, die während des Ladens nicht festgelegt wird und wobei der genannte Adressparameter-Befehlskode (31, 33) dieser einen Adressplatz zugeordnet hat und wobei für diesen genannten Adressparameter-Befehlskode (31, 33) mit dem genannten Mittel zum Laden eine Verschiebungsinformation (42, 44, 35, 36) geladen werden kann, und während des Verbindens bewirkt werden kann, dass die genannte Adresse festgelegt wird, unter Verwendung einer Startadresse (xtra, aid1id, aid2id, aid3id) und eines relativen Adress-Abstands (os) und wobei die genannte festgelegte Adresse an den genannten Adressplatz gestellt werden kann, dadurch gekennzeichnet, dass während des Ladens, direkt nach dem Laden jedes einzelnen Adressparameter-Befehlskodes (31, 33) mit seinem Adressplatz, die genannten Verschiebungsinformationen (42, 44, 35, 36) geladen und die genannte Adresse während des Verbindens festgelegt wird.
  11. Eine Vorrichtung nach Anspruch 10, dadurch gekennzeichnet, dass der erste Speicher (51), in den die Befehlskodes (30, 31, 32, 33) geladen werden können und in dem das verbinden ausgeführt werden kann, über eine kurze Schreibzugriffszeit verfügt, beispielsweise ein RAM, und dass ddie genannte Vorrichtung weiterhin einen zweiten Speicher (50) umfasst, in den danach die Befehlskodes (30, 31, 32, 33) geschrieben werden können, wobei der zweite Speicher über eine längere Schreibzugriffszeit verfügt, beispielsweise ein EEPROM.
  12. Eine Vorrichtung nach einem der Ansprüche 10 oder 11, dadurch gekennzeichnet, dass sie ein Mittel zum Entschlüsseln umfasst, um die Befehlskodes (30, 31, 32, 33) zu entschlüsseln, die in verschlüsselter Form geladen wurden und/oder dass sie eine Integritätsprüfung umfasst, um die Integrität von mindestens einem der genannten Befehlskodes (30, 31, 32, 33) zu prüfen, die mit den Informationen zur Integritätsprüfung geladen wurden.
  13. Eine Vorrichtung nach einem der Ansprüche 10 bis 12 und/oder zum Ausführen eines Verfahrens nach einem der Ansprüche 1 bis 9, dadurch gekennzeichnet, dass sie eine SmartCard, im Besonderen eine JavaCard oder einen elektronischen Kreislauf dafür aufweist.
DE69817333T 1998-06-05 1998-06-05 Verfahren und Vorrichtung zum Laden von Befehlskodes in einen Speicher und zum Verbinden dieser Befehlskodes Expired - Lifetime DE69817333T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP98110359A EP0964370B1 (de) 1998-06-05 1998-06-05 Verfahren und Vorrichtung zum Laden von Befehlskodes in einen Speicher und zum Verbinden dieser Befehlskodes

Publications (2)

Publication Number Publication Date
DE69817333D1 DE69817333D1 (de) 2003-09-25
DE69817333T2 true DE69817333T2 (de) 2004-06-09

Family

ID=8232077

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69817333T Expired - Lifetime DE69817333T2 (de) 1998-06-05 1998-06-05 Verfahren und Vorrichtung zum Laden von Befehlskodes in einen Speicher und zum Verbinden dieser Befehlskodes

Country Status (3)

Country Link
US (1) US6496910B1 (de)
EP (1) EP0964370B1 (de)
DE (1) DE69817333T2 (de)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6880155B2 (en) * 1999-02-02 2005-04-12 Sun Microsystems, Inc. Token-based linking
GB2358491A (en) * 1999-09-03 2001-07-25 Sgs Thomson Microelectronics A relocation format for linking
GB9920916D0 (en) 1999-09-03 1999-11-10 Sgs Thomson Microelectronics A relocation format for linking
JP4042280B2 (ja) * 1999-12-21 2008-02-06 富士ゼロックス株式会社 実行プログラムの生成方法及び実行プログラム生成装置、実行プログラムの実行方法、並びに、コンピュータ可読プログラム記憶媒体
AU2001243365A1 (en) * 2000-03-02 2001-09-12 Alarity Corporation System and method for process protection
US20020138748A1 (en) * 2001-03-21 2002-09-26 Hung Andy C. Code checksums for relocatable code
US6779732B2 (en) 2001-08-31 2004-08-24 Schulumberger Malco, Inc. Method and apparatus for linking converted applet files
EP1308695A1 (de) * 2001-11-06 2003-05-07 Matsushita Electric Industrial Co., Ltd. Fahrzeugmontierte Anzeigevorrichtung
US7131121B2 (en) * 2001-11-14 2006-10-31 Axalto, Inc. Method and apparatus for linking converted applet files without relocation annotations
NL1019876C2 (nl) * 2002-01-31 2003-08-04 Chess Embedded Technology B V Systeem en werkwijze voor het laden van een programmacode in een inrichting alsmede een werkwijze voor het voeden van een programmacode aan een inrichting.
US20030161472A1 (en) * 2002-02-27 2003-08-28 Tong Chi Hung Server-assisted public-key cryptographic method
FR2839792B1 (fr) * 2002-05-15 2004-08-20 Gemplus Card Int Procede de chargement d'une applet dans un objet electronique portatif
FR2846770B1 (fr) * 2002-11-04 2005-01-28 Oberthur Card Syst Sa Carte a microcircuit comportant des moyens de publication de ses objets informatiques
DE10320062A1 (de) * 2003-05-06 2004-12-16 Giesecke & Devrient Gmbh Speicherverwaltung bei einem tragbaren Datenträger
US7389375B2 (en) * 2004-07-30 2008-06-17 International Business Machines Corporation System, method and storage medium for a multi-mode memory buffer device
US7539800B2 (en) * 2004-07-30 2009-05-26 International Business Machines Corporation System, method and storage medium for providing segment level sparing
US7224595B2 (en) 2004-07-30 2007-05-29 International Business Machines Corporation 276-Pin buffered memory module with enhanced fault tolerance
US7296129B2 (en) * 2004-07-30 2007-11-13 International Business Machines Corporation System, method and storage medium for providing a serialized memory interface with a bus repeater
US7305574B2 (en) * 2004-10-29 2007-12-04 International Business Machines Corporation System, method and storage medium for bus calibration in a memory subsystem
US7512762B2 (en) 2004-10-29 2009-03-31 International Business Machines Corporation System, method and storage medium for a memory subsystem with positional read data latency
US7441060B2 (en) 2004-10-29 2008-10-21 International Business Machines Corporation System, method and storage medium for providing a service interface to a memory system
US7395476B2 (en) 2004-10-29 2008-07-01 International Business Machines Corporation System, method and storage medium for providing a high speed test interface to a memory subsystem
US7331010B2 (en) 2004-10-29 2008-02-12 International Business Machines Corporation System, method and storage medium for providing fault detection and correction in a memory subsystem
US7356737B2 (en) 2004-10-29 2008-04-08 International Business Machines Corporation System, method and storage medium for testing a memory module
US7299313B2 (en) 2004-10-29 2007-11-20 International Business Machines Corporation System, method and storage medium for a memory subsystem command interface
US7277988B2 (en) * 2004-10-29 2007-10-02 International Business Machines Corporation System, method and storage medium for providing data caching and data compression in a memory subsystem
EP1724677A1 (de) * 2005-05-19 2006-11-22 Axalto SA System und Verfahren zur Speicherverwaltung in tragbarem Gerät
EP1943607B1 (de) * 2005-10-17 2015-04-01 Nytell Software LLC Verschlüsselung eines computerausführbaren Abbilds
US7478259B2 (en) 2005-10-31 2009-01-13 International Business Machines Corporation System, method and storage medium for deriving clocks in a memory system
US7685392B2 (en) 2005-11-28 2010-03-23 International Business Machines Corporation Providing indeterminate read data latency in a memory system
US7873953B1 (en) * 2006-01-20 2011-01-18 Altera Corporation High-level language code sequence optimization for implementing programmable chip designs
US7669086B2 (en) 2006-08-02 2010-02-23 International Business Machines Corporation Systems and methods for providing collision detection in a memory system
US7477522B2 (en) 2006-10-23 2009-01-13 International Business Machines Corporation High density high reliability memory module with a fault tolerant address and command bus
US7870459B2 (en) 2006-10-23 2011-01-11 International Business Machines Corporation High density high reliability memory module with power gating and a fault tolerant address and command bus
US7721140B2 (en) 2007-01-02 2010-05-18 International Business Machines Corporation Systems and methods for improving serviceability of a memory system
JP2014116753A (ja) * 2012-12-07 2014-06-26 Mega Chips Corp データ処理装置及び制御プログラム並びにデータ処理装置の動作方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4829169A (en) * 1985-07-01 1989-05-09 Toppan Moore Company, Inc. IC card having state marker for record access
JPH02214994A (ja) * 1989-02-15 1990-08-27 Hitachi Maxell Ltd Icカード
DE69334149T2 (de) * 1992-04-02 2008-02-14 Kabushiki Kaisha Toshiba, Kawasaki Speicherkarte
US5835743A (en) * 1994-06-30 1998-11-10 Sun Microsystems, Inc. Application binary interface and method of interfacing binary application program to digital computer
US5991399A (en) * 1997-12-18 1999-11-23 Intel Corporation Method for securely distributing a conditional use private key to a trusted entity on a remote system
US6029000A (en) * 1997-12-22 2000-02-22 Texas Instruments Incorporated Mobile communication system with cross compiler and cross linker

Also Published As

Publication number Publication date
DE69817333D1 (de) 2003-09-25
EP0964370A1 (de) 1999-12-15
US6496910B1 (en) 2002-12-17
EP0964370B1 (de) 2003-08-20

Similar Documents

Publication Publication Date Title
DE69817333T2 (de) Verfahren und Vorrichtung zum Laden von Befehlskodes in einen Speicher und zum Verbinden dieser Befehlskodes
DE69100005T2 (de) Verfahren zum anwenderprogrammladen in einem speicherkartenleser mit mikroprozessor sowie system zur durchfuehrung dieses verfahrens.
DE69123629T2 (de) Maschinenarchitektur für skalaren Verbundbefehlssatz
DE3151745C2 (de)
DE68928848T2 (de) Multi-Prozessor-Rechnersystem mit prozessunabhängiger Adressierung von Kommunikationsregistern
DE2846495C2 (de) Zentraleinheit
DE69818103T2 (de) Anrufmechanismus für statisch und dynamisch verknüpfte funktionen in einer objektorientierten steuerung unter verwendung von heterogenen entwicklungsumgebungen
DE3638572C2 (de)
DE2417795C2 (de) Datenverarbeitungsanlage
DE69932964T2 (de) Verfahren, System und Rechnerprogrammprodukt zur Initialisierung einer Datenstruktur beim ersten Gebrauch
DE3743639A1 (de) Ic-karte und system zur ueberpruefung ihrer funktionstuechtigkeit
DE3688232T2 (de) Datenverarbeitungssystem.
CH650600A5 (de) Zentralprozessoreinheit einer datenverarbeitungsanlage mit operationscode-erweiterungsregister.
DE3741850A1 (de) Ausfuehrungseinheit fuer einen i/o-prozessor
DE3043653A1 (de) Datenverarbeitungsanlage
EP1721248A2 (de) Verfahren und datenverarbeitungsgerät zur aktualisierung von rechnerprogrammen per datenübertragung
DE69807412T2 (de) Prozessorarchitekturschema und Befehlssatz zur Maximierung verfügbarer Opcodes und zum Einsetzen verschiedener Adressierungsmodi
DE69503010T2 (de) Mikroprozessor zur Ausführung von Befehlen,von denen ein Teil des Operandfelds als Operationscode zu gebrauchen ist
DE60013518T2 (de) Versicherte Personalisierung von Chipkarten
DE2906685A1 (de) Instruktionsdecodierer
DE2557787C2 (de) Vorausladeeinrichtung zum mikroprogrammierten und verdeckten Bereitstellen von Maschinenbefehlen unterschiedlichen Formats in einem Prozessor eines datenverarbeitenden Systems
EP1278120A1 (de) Controller und Verfahren zum Ansteuern einer zentralen Verarbeitungseinheit für eine Speicheradressierung
EP1892639B1 (de) Sichere Programmcodeausführung
DE69933841T2 (de) Chipkarte und Datenaktualisierungsverfahren für eine Chipkarte
EP1543411B1 (de) Prozessor mit expliziter angabe über zu sichernde informationen bei unterprogrammsprüngen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)
8328 Change in the person/name/address of the agent

Representative=s name: DUSCHER, R., DIPL.-PHYS. DR.RER.NAT., PAT.-ANW., 7