DE10324337A1 - Rechnersystem sowie zugehörige Speicherarchitektur und zugehöriges Verfahren zum Durchführen eines Sicherheitsprogramms - Google Patents

Rechnersystem sowie zugehörige Speicherarchitektur und zugehöriges Verfahren zum Durchführen eines Sicherheitsprogramms

Info

Publication number
DE10324337A1
DE10324337A1 DE10324337A DE10324337A DE10324337A1 DE 10324337 A1 DE10324337 A1 DE 10324337A1 DE 10324337 A DE10324337 A DE 10324337A DE 10324337 A DE10324337 A DE 10324337A DE 10324337 A1 DE10324337 A1 DE 10324337A1
Authority
DE
Germany
Prior art keywords
memory area
area
program
memory
security
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.)
Granted
Application number
DE10324337A
Other languages
English (en)
Other versions
DE10324337B4 (de
Inventor
Sung-Hyun Kim
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of DE10324337A1 publication Critical patent/DE10324337A1/de
Application granted granted Critical
Publication of DE10324337B4 publication Critical patent/DE10324337B4/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/067Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components
    • G06K19/07Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips
    • G06K19/073Special arrangements for circuits, e.g. for protecting identification code in memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1433Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a module or a part of a module
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/34User authentication involving the use of external additional devices, e.g. dongles or smart cards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/341Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/357Cards having a plurality of specified features
    • 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
    • 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

Landscapes

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

Abstract

Die Erfindung bezieht sich auf ein Rechnersystem sowie auf eine zugehörige Speicherarchitektur und ein zugehöriges Verfahren zum Durchführen eines Sicherheitsprogramms während der Ausführung eines Anwendungsprogramms. DOLLAR A Erfindungsgemäß umfasst das Rechnersystem einen ersten, einen zweiten und einen dritten Speicherbereich (6, 5, 4), wobei im ersten Speicherbereich (6) wenigstens ein allgemeines Anwendungsprogramm mit wenigstens einem Unterprogrammaufruf zum zweiten Speicherbereich (5) gespeichert ist, im zweiten Speicherbereich (5) wenigstens ein Unterprogrammaufruf zum dritten Speicherbereich (4) gespeichert ist und im dritten Speicherbereich (4) wenigstens ein Sicherheitsanwendungsprogramm gespeichert ist, das nur durch einen Unterprogrammaufruf aus dem zweiten Speicherbereich (5) aufrufbar ist, Mittel (2) zum Ausführen eines allgemeinen Anwendungsprogramms im ersten Speicherbereich (6) einschließlich des Unterprogrammaufrufs zum zweiten Speicherbereich (5) und Mittel (10), die den dritten Speicherbereich (4) nur nach Durchführung eines Unterprogrammaufrufs aus dem ersten Speicherbereich (6) zum zweiten Speicherbereich (5) freigeben. DOLLAR A Verwendung z. B. für intelligente Karten.

Description

  • Die Erfindung betrifft ein Rechnersystem sowie eine zugehörige Speicherarchitektur und ein zugehöriges Verfahren zum Durchführen eines Sicherheitsprogramms.
  • Sicherheitsanwendungen werden häufig bei Rechnersystemen verwendet. Die Sicherheitsanwendungen können zur Validierung von autorisierten Benutzern und/oder zum Verschlüsseln und Entschlüsseln von sensiblen Informationen benutzt werden.
  • Sicherheit ist vor allem für intelligente Karten (smart cards) wichtig. Wie einem Fachmann bekannt ist, ist eine intelligente Karte ein Rechnersystem auf einer elektronischen Karte, die prinzipiell die gleichen Abmessungen hat und aus der gleichen Materialqualität gefertigt ist wie eine Kreditkarte. Ein integrierter Schaltungschip (IC-Chip) ist in der intelligenten Karte enthalten. Der IC-Chip umfasst prinzipiell eine zentrale Prozeßeinheit (CPU), die einen Mikroprozessor, ein Chip-Betriebssystem (COS) und einen Speicher, wie beispielsweise einen elektrisch löschbaren programmierbaren Festwertspeicher (EEPROM) und/oder einen Festwertspeicher (ROM), umfassen kann. Deshalb kann eine intelligente Karte Informationen speichern und verarbeiten.
  • Weil der Prozessor und der Speicher in der intelligenten Karte enthalten sind, ist eine intelligente Karte insbesondere in der Lage, eine hohe Zuverlässigkeit und/oder Sicherheit zur Verfügung zu stellen und kann deshalb wie ein elektronischer Geldbeutel funktionieren. Intelligente Karten können in einem weiten Feld benutzt werden, beispielsweise in Finanzsystemen, zur Sicherheit von verteilten Prozessen und zur Informationssicherheit, bei der Fertigungsautomation, bei der Büroautomation, bei der medizinischen Behandlung, bei Regierungsprogrammen, beispielsweise im Sozialsystem, bei der mobilen Kommunikation, bei öffentlichen Telefonen, beim Kabelfernsehen, bei der Energie- und Gasversorgung und bei anderen Einrichtungen, bei der Ausbildung, als Kreditkarte, als Barzahlungskarte, als Prepaid-Karte, beim Home-Banking, usw. Eine intelligente Karte kann für eine einzelne Anwendung oder Dienstleistung benutzt werden, oder es können mehrere Anwendungen oder Dienstleistungen in der intelligenten Karte integriert sein.
  • Lese-/Schreib-/Löschvorgänge von auf der intelligenten Karte gespeicherten Daten und eine Kommunikation zwischen der intelligenten Karte und einem externen Gerät können von durch die physikalische Sicherheit der intelligenten Karte selbst und/oder durch Verwendung einer Verschlüsselung streng gesteuert und geschützt werden. Es wurden jedoch viele Techniken entwickelt, um diese Sicherheitsprozesse zu umgehen. Insbesondere wurden Techniken von Hackern entwickelt, die durch Umgehen von komplexen Verschlüsselungssystemen der intelligenten Karte versuchen, direkt auf die Sicherheitsinformationen auf der intelligenten Karte zuzugreifen, beispielsweise dadurch, dass bei der Ausführung eines Betriebssystems der intelligenten Karte ein Unterprogrammaufruf verwendet wird, der nachfolgend auch als "Sprungbefehl" bezeichnet wird. Dadurch kann beim Ablauf eines Betriebssystemprogramms während eines Sprungs in ein Sicherheitsprogramm und/oder zu einem Lade-/Speicherbefehl auf die Sicherheitsinformationen zugegriffen werden oder die Sicherheitsinformationen können verändert werden.
  • Es ist Aufgabe der Erfindung, ein Rechnersystem und eine zugehörige Speicherarchitektur anzugeben, mit dem im Rechnersystem gespeicherte Sicherheitsinformationen vergleichsweise zuverlässig geschützt werden können, sowie ein zugehöriges Verfahren zum Durchführen eines Sicherheitsprogramms anzugeben.
  • Die Erfindung löst diese Aufgabe durch ein Rechnersystem mit den Merkmalen des Patentanspruchs 1 sowie durch eine zugehörige Speicherarchitektur mit den Merkmalen des Patentanspruchs 15 und durch ein Verfahren zum Durchführen eines Sicherheitsprogramms mit den Merkmalen des Patentanspruchs 21.
  • Vorteilhafte Weiterbildungen der Erfindung sind in den abhängigen Ansprüchen angegeben.
  • Vorteilhafte, nachfolgend beschriebene Ausführungsformen der Erfindung sind in den Zeichnungen dargestellt. Es zeigen:
  • Fig. 1 ein Blockschaltbild eines Rechnersystems;
  • Fig. 2 einen Ausschnitt einer Architektur eines Programmspeichers aus Fig. 1;
  • Fig. 3 ein Blockschaltbild eines weiteren Rechnersystems; und
  • Fig. 4 einen Ausschnitt einer Architektur eines Programmspeichers aus Fig. 3.
  • Die vorliegende Erfindung wird nachfolgend im Zusammenhang mit den Blockschaltbildern und/oder den anderen Darstellungen von Verfahren und Vorrichtungen und/oder Rechnerprogrammen beschrieben. Es versteht sich, dass jeder Block oder Kombinationen von Blöcken in den Blockschaltbildern und/oder in den anderen Darstellungen durch einen Ablauf eines Rechnerprogramms realisiert werden kann. Solche Rechnerprogramminstruktionen können zur Ausführung einem normalen Rechner, einem speziellen Rechner und/oder anderen programmierbaren Datenverarbeitungssystemen zur Verfügung gestellt werden, um eine Vorrichtung zu bilden, die die Anweisungen, die von dem normalen Rechner, dem speziellen Rechner und/oder den anderen programmierbaren Datenverarbeitungssystemen ausgeführt werden, so umsetzt, dass Mittel gebildet werden, welche die von den Blockdiagrammen spezifizierten Funktionen umsetzen.
  • Diese Rechnerprogramminstruktionen können auch in einem rechnerlesbaren Speicher gespeichert sein, der einen Rechner oder ein anderes programmierbares Datenverarbeitungssystem dazu veranlasst, in einer bestimmten Weise zu arbeiten, so dass die im rechnerlesbaren Speicher gespeicherten Anweisungen ein Produkt formen, das die in den Blockdiagrammen spezifizierten Funktionen umsetzt.
  • Die Anweisungen des Rechnerprogramms können auch in einen Rechner oder ein anderes programmierbares Datenverarbeitungssystem geladen werden, um eine Folge von Programmschritten zu bilden, die von dem Rechner oder dem anderen programmierbaren Datenverarbeitungssystem ausgeführt werden können, um einen rechnerimplementierten Prozess derart zu bilden, dass die mit dem Rechner oder dem anderen programmierbaren Datenverarbeitungssystem ausgeführten Anweisungen Schritte zur Ausführung der in den Blockdiagrammen spezifizierten Funktionen bilden.
  • Außerdem wird angemerkt, dass bei alternativen Ausführungsmöglichkeiten die dargestellte Reihenfolge der Blöcke verändert sein kann. Beispielsweise können zwei Blöcke oder Funktionen, die nacheinander ausgeführt werden, auch gleichzeitig oder in einer umgekehrten Reihenfolge ausgeführt werden, wenn die betroffene auszuführende Funktion dies zulässt.
  • Die Fig. 1 und 3 zeigen Ausführungsbeispiele des erfindungsgemäßen Rechnersystems, das Teil eines Unternehmens, einer Anwendung eines persönlichen und/oder eines kommerziellen Rechnersystems sein kann. Insbesondere ist das erfindungsgemäße Rechnersystem für eine Anwendung als intelligente Karte zur Nutzung als elektronischer Geldbeutel oder zur elektronischen Identifizierung geeignet. Entsprechend werden die Ausführungsbeispiele der Fig. 1 und 3 nachfolgend im Zusammenhang mit intelligenten Karten beschrieben.
  • Die Fig. 2 und 4 zeigen jeweils eine Speicherarchitektur für ein erfindungsgemäßes Rechnersystem aus Fig. 1 bzw. 3. Diese Speicherarchitektur kann auch für jedes der oben genannten Rechnersysteme verwendet werden. Weil diese Speicherarchitektur besonders nützlich für eine Anwendung mit intelligenten Karten ist, wird sie nachfolgend beispielhaft in Verbindung mit intelligenten Karten beschrieben.
  • Wie aus Fig. 1 ersichtlich ist, umfasst ein erfindungsgemäßes Rechnersystem, wie beispielsweise eine intelligente Karte, eine Eingabe/Ausgabe-Schnittstelle (E/A-Schnittstelle) 1, einen Mikroprozessor oder einer zentrale Prozessoreinheit (CPU) 2, einen Programmspeicher 3, einen Datenspeicher 7 und eine Sicherheitsprogrammaktivierungseinheit 10. Der Programmspeicher 3 ist beispielsweise ein Nurlesespeicher (ROM), in den ein Kartenbetriebssystem (COS) für den Betrieb eines Chips der intelligenten Karte einprogrammiert ist. Die CPU 2 steuert interne Pfade, die benutzt werden, um auf alle Elemente des Chips zuzugreifen, wie auf den Datenspeicher 7, den Programmspeicher 3, einen nicht dargestellten Speicher mit direktem Zugriff (RAM) usw. Der Datenspeicher 7 umfasst einen Bereich für Sicherheitsdaten 8 und einen Bereich für allgemeine Daten 9. Der Bereich für Sicherheitsdaten 8 ist ein Bereich für Benutzerdaten, die von der CPU 2 und dem Kartenbetriebssystem vor einem externen Zugriff geschützt werden, und kann als elektrisch löschbarer programmierbarer ROM (EEPROM) ausgeführt sein, aus dem Daten elektrisch ausgelesen und in den Daten elektrisch geschrieben werden können. Der Bereich für Sicherheitsdaten 8 umfasst einen Datensatz und Funktionen, die in verschiedenen Anwendungen umgesetzt werden, in denen der Datensatz einen Vorgang, Daten des Kartenausgebers, Benutzerdaten usw. umfasst.
  • Wie aus Fig. 1 weiter ersichtlich ist, umfasst der Programmspeicher 3 einen allgemeinen Codebereich 6, der nachfolgend auch als Bereich für allgemeine Anwendungsprogramme oder erster Speicherbereich bezeichnet wird, einen Sicherheitscodebereich 4, der nachfolgend auch als Bereich für Sicherheitsanwendungsprogramme oder als dritter Speicherbereich bezeichnet wird, und einen Vektortabellenbereich 5, der nachfolgend auch als zweiter Speicherbereich bezeichnet wird. Der Vektortabellenbereich 5 besteht aus Aufrufen von Unterprogrammfunktionen, die auch als Sprungcodes bezeichnet werden, dies sind spezielle Codes, die nur in den Bereich der Sicherheitscodes 4 springen. Bei möglichen Ausführungsformen können diese Bereiche aufgeteilt sein, um sie an unterschiedlichen Positionen innerhalb eines physikalischen Speichers anzuordnen, auf Bereiche eines diskontinuierlichen Speichers verteilt sein und/oder in verschiedenen Speicherbausteinen implementiert sein.
  • Die Sicherheitsprogrammaktivierungseinheit 10 aktiviert oder sperrt ein Auswahlsignal, das auch als Chipauswahlsignal CS bezeichnet wird, um einen Zugriff auf den Sicherheitscodebereich 4 und auf den Sicherheitsdatenbereich 8, der nachfolgend auch als fünfter Speicherbereich bezeichnet wird, zu ermöglichen oder zu verhindern. Die Sicherheitsprogrammaktivierungseinheit 10 umfasst eine Adressendecoderlogikschaltung 11 und eine Zwischenspeicherlogikschaltung 12, die an die Adressendecoderlogikschaltung 11 angeschlossen ist.
  • Alle Speicherbereiche 4, 5, 6, 8 und 9 sind mit der CPU 2 über einen Adressbus 13 verbunden. Obwohl nicht dargestellt, wird für einen Datenaustausch zusätzlich ein Datenbus zur Verfügung gestellt. Der Adressbus kann auch als Datenbus benutzt werden. Die Adressendecoderlogikschaltung 11 der Sicherheitsprogrammaktivierungseinheit 10 ist mit dem Adressbus 13 verbunden, um eine zugehörige Adresse des Programmspeichers 3 zu decodieren, die auf den Adressbus gelegt wird, d. h. die Adresse eines aktuell ausgeführten Programmcodes, was auch als Programmzähler bezeichnet wird. Die Zwischenspeicherlogikschaltung 12 stellt ihr Ausgangssignal in Abhängigkeit von einem Ausgangssignal, d. h. von einem Setz- oder Rücksetzsignal, der Adressendecoderlogikschaltung 11, dem Sicherheitscodebereich 4 und dem Sicherheitsdatenbereich 8 zur Verfügung. Das Ausgangssignal der Zwischenspeicherlogikschaltung 12 wirkt als Chipauswahlsignal CS und wird zur Freigabe oder zum Sperren des Sicherheitscodebereichs 4 und des Sicherheitsdatenbereichs 8 benutzt.
  • Nachfolgend wird ein Sicherheitsprogrammbetrieb gemäß Ausführungsformen der Erfindung beschrieben. Bei diesen erfindungsgemäßen Ausführungsformen aktiviert die Sicherheitsprogrammaktivierungseinheit 10 den Sicherheitscodebereich 4 und den Sicherheitsdatenbereich 8 nur, wenn der Programmzähler auf einen bestimmten Wert wechselt, während ein Programm im Programmspeicher 3 ausgeführt wird.
  • Ein Nutzerbetriebsystemprogramm bzw. ein allgemeines Programm wird unter Steuerung durch die CPU 2 im Bereich 6 für allgemeine Codes ausgeführt. Da die Adresse, d. h. der Programmzähler, des ausgeführten Programmcodes kein Adressenwert des Vektortabellenbereichs 5 ist, aktiviert die Sicherheitsaktivierungseinheit 10 den Sicherheitscodebereich 4 und den Sicherheitsdatenbereich 8 nicht, d. h. die Bereiche sind gesperrt. Wenn durch fortlaufendes Ausführen des allgemeinen Programms der Programmzähler auf einen im Vektortabellenbereich 5 abgelegten Adresswert wechselt, decodiert die Adressendecoderlogikschaltung 11 der Sicherheitsprogrammaktivierungseinheit 10 den Programmzähler und erzeugt ein Setzsignal. Die Zwischenspeicherlogikschaltung 12 wird in Abhängigkeit von diesem Setzsignal gesetzt, so dass das Chipauswahlsignal CS zum Aktivieren des Sicherheitscodebereichs 4 und des Sicherheitsdatenbereichs 8 freigeschaltet wird. Weil hierbei der Vektortabellenbereich 5 aus den Codes besteht, die nur in den Sicherheitscodebereich 4 springen, wird das Programm im Sicherheitscodebereich 4 ausgeführt. Entsprechend können die Sicherheitsinformationen des Sicherheitsdatenbereichs 8 verarbeitet werden. Die beschriebene intelligente Karte kann zudem einen Verschlüsselungsprozessor 15 zum Steuern des Sicherheitsprogramms umfassen. Im dargestellten Ausführungsbeispiel wird der Verschlüsselungsprozessor 15 von der Sicherheitsprogrammaktivierungseinheit 10 aktiviert. Es versteht sich, dass die E/A-Schnittstelle 1, die CPU 2, die Sicherheitsprogrammaktivierungseinheit 10, der Verschlüsselungsprozessor 15 und/oder Unterkombinationen davon und/oder andere, nicht dargestellte Elemente ein Prozessorsystem für ein Rechnersystem und/oder Mittel für Rechnerverarbeitungsfunktionen zur Verfügung stellen können.
  • Nach dem Verarbeiten der Sicherheitsinformationen wird das Sicherheitsprogramm beendet. Wenn danach der Programmzähler erneut auf einen Wert wechselt, der einer Adresse im allgemeinen Codebereich 6 entspricht, decodiert die Adressendecoderlogikschaltung 11 der Sicherheitsprogrammaktivierungseinheit 10 den Adressenwert, um das Rücksetzsignal zu erzeugen. Dadurch wird die Zwischenspeicherlogikschaltung 12 zurückgesetzt, so dass das Chipauswahlsignal CS gesperrt wird. Daraus resultiert, dass der Sicherheitsdatenbereich 8 und der Sicherheitscodebereich 4 deaktiviert bzw. gesperrt werden und ein Zugriff nicht mehr möglich ist.
  • Fig. 2 zeigt einen Ausschnitt der Architektur des Programmspeichers 3 aus Fig. 1. Wie aus Fig. 2 ersichtlich ist, umfasst der Programmspeicher 3 der intelligenten Karte wie oben beschrieben den Bereich 6 für allgemeine Codes, den Vektortabellenbereich 5 und den Sicherheitscodebereich 4. Jeder dieser Bereiche hat einen bestimmten Adressenbereich. Beispielsweise hat der Bereich 6 für allgemeine Codes einen Adressenbereich im Programmspeicher 3 von 000000h (hexadezimal) bis 023FFFh und der Sicherheitscodebereich 4 hat einen Adressenbereich im Programmspeicher 3 von 024200h bis 027FFFh. Diese Speicheradressen und -umfänge sind als Beispiele dargestellt, um die vorliegende Erfindung zu erklären, und können verändert werden, um andere zusammenhängende und/oder nicht zusammenhängende Adressen zur Verfügung zu stellen.
  • Der Vektortabellenbereich 5 besteht im dargestellten Ausführungsbeispiel nur aus Codes, wie Funktionssprüngen oder Unterprogrammaufrufen, die nur in einen speziellen Teil des Sicherheitsbereichs 4 springen. Beispielhaft sind zwei Codes für Funktionssprünge Vector_E1:JMPF1 und Vector_E2:JMPF2 dargestellt. Der Sicherheitscodebereich 4 besteht nur aus Codes für Sicherheitsfunktionen, wie die Sicherheitsfunktionscodes F1 und F2, zu denen die Funktionssprünge Vector_E1:JMPF1 und Vector_E2:JMPF2 aus dem Vektortabellenbereich 5 springen bzw. die von den Funktionssprüngen Vector_E1:JMPF1 und Vector_E2:JMPF2 aufgerufen werden. Der allgemeine Codebereich 6umfasst allgemeine Codes zum Verarbeiten von allgemeinen Informationen und Vektorsprungcodes wie JMP Vector_E1 und JMP Vector_E2, um zu den Funktionssprüngen Vector_E1:JMPF1 und Vector E2:JMPF2 des Vektortabellenbereichs 5 zu springen. Die allgemeinen Codes umfassen beispielsweise drei Ladebefehle LD r0, r1, LD r2, r0 und LD r3, r2. Zusätzlich kann der Bereich 6 für allgemeine Codes einen Aufruf für einen Vektorsprungcode Call JMP Vector_E1 umfassen, der einen Vektorsprungcode, beispielsweise den Code JMP Vector_ E1, aufruft. Daraus resultiert, dass aus dem allgemeinen Codebereich 6 nur über einen Unterprogrammaufruf oder über einen Sprung aus einem Unterprogramm in den Sicherheitscodebereich 4 gewechselt werden kann.
  • Die CPU 2 aus Fig. 1 kann, wie allgemein bekannt ist, in eine nicht dargestellte Steuereinheit und einen Datenpfad oder eine nicht dargestellte Ausführungseinheit aufgeteilt sein. Die Steuereinheit kann einen Programmzähler und ein Befehlsregister umfassen. Der Programmzähler beinhaltet Programmspeicheradressen, um den nächsten auszuführenden Befehl aufzurufen, und das Befehlsregister ist ein Register, um den vom Programmzähler aufgerufenen Befehl zu laden. Der Pfad kann eine arithmetische Logikeinheit und einen Akkumulator umfassen. Zusätzlich kann die Steuereinheit ein Speicheradressenregister umfassen, das Programmspeicheradressen während eines Speicherzugriffs speichert. Der Datenpfad kann zudem ein Speicherpufferregister umfassen, das einen Speicher von einem internen Betrieb der CPU 2 entkoppelt.
  • Es wird nun angenommen, dass die CPU 2 initialisiert und die Steuereinheit der CPU 2 zurückgesetzt ist. Zu diesem Zeitpunkt ist der Programmzähler der Steuereinheit auch auf einen bestimmten Wert, beispielsweise "@" zurückgesetzt. Die Programmspeicheradresse zum Aufrufen des nächsten Befehls ist im Programmzähler gespeichert und wird ins Speicheradressenregister verschoben. Dann beginnt die Steuereinheit einen Speicherlesevorgang unter Verwendung des Adressbusses 13. Ein Befehlssatz wird aus dem Programmspeicher 3 über einen Befehlspfad ausgelesen und im Befehlsregister gespeichert. Sequentiell wird der im Befehlsregister gespeicherte Befehlssatz, beispielsweise der Ladebefehl LD r0, r1, analysiert und die im Datenspeicher für allgemeine Informationen, d. h. im Bereich 9, gespeicherten Daten werden ausgelesen. Die Daten aus dem Datenspeicher 9 werden im Speicherpufferregister abgelegt und in den Registern r0 und r1 gespeichert. Durch diesen Vorgang wird der Ladebefehl beendet. Abschließend wird der Programmspeicheradressenwert @ um 1 auf @ + 1 inkrementiert.
  • Der vom Programmzähler bestimmte Programmspeicheradressenwert @+1 wird in das Speicheradressenregister verschoben. Der Programmspeicherlesevorgang beginnt von neuem, so dass ein neuer Befehlssatz im Befehlsregister gespeichert wird. Dann wird der im Befehlsregister gespeicherte Befehl, beispielsweise LD r2, r0, analysiert und der im Datenspeicher 9 gespeicherte Wert wird in den Registern r2 und r0 gespeichert, um den Ladevorgang abzuschließen. Schließlich wird der Programmzähler erneut um 1 von @ + 1 auf @ + 2 erhöht. In der oben beschriebenen Weise wird das Programm fortlaufend ausgeführt und der Wert des Programmzählers wird ständig erhöht (von @ + 2 bis @ + n). Dann wird der Befehlssatz JMP Vector E1 aus dem Programmspeicher 3 abgerufen und im Befehlsregister geladen. Der im Befehlsregister gespeicherte Befehl JMP Vector E1 wird analysiert. Da der abgerufene Befehl ein Sprungbefehl ist, wird der Wert im Programmzähler durch einen Adresswert ersetzt, d. h. durch einen Adresswert aus dem Bereich 02400h bis 0241FFh aus dem Vektortabellenbereich 5 des Speicherbereichs, in dem der Vektor E1 gespeichert ist, beispielsweise wird ein in Fig. 2 als Vector E1 : 024000h bezeichneter Wert geladen. Der Adresswert des Vektortabellenbereichs 5 wird in das Speicheradressenregister verschoben und auf den Adressbus 13 gelegt. Die mit dem Adressbus 13 verbundene Adressendecoderlogikschaltung 11 der Sicherheitsprogrammaktivierungseinheit 10 decodiert den Adresswert 024000 h des Vektortabellenbereichs 5, um das Setzsignal zu erzeugen. Die Zwischenspeicherlogikschaltung 12 wird in Abhängigkeit vom Setzsignal gesetzt, so dass das Chipauswahlsignal CS für den Sicherheitscodebereich 4 und den Sicherheitsinformationsbereich 8 freigeschaltet bzw. entsichert wird, wodurch das Sicherheitsprogramm aktiviert wird.
  • Hierbei wird der Befehlssatz, beispielsweise der Funktionssprungcode JMP F1, der unter dem im Programmzähler gespeicherten Adresswert 024000h abgelegt ist und als Vector E1 bezeichnet wird, wieder im Befehlsregister gespeichert und von der Steuereinheit analysiert. Wie oben ausgeführt, bestehen alle Befehlssätze des Vektortabellenbereichs 5 nur aus Befehlssätzen, die in den Sicherheitscodebereich 4 springen. Entsprechend übernimmt der Programmzähler eine der Adressen aus dem Sicherheitscodebereich 4, beispielsweise die Adresse 024000h des Sicherheitsfunktionscodes F1 aus Fig. 2. Deshalb wird das Sicherheitsprogramm im Sicherheitscodebereich 4 ausgeführt. Anders ausgedrückt, es wird der Sicherheitsfunktionscode F1 ausgeführt. Es kann wünschenswert sein, dass der Sicherheitsfunktionscode F1 mit einem Sicherheitscode beginnt, der überprüft, ob ein Benutzer autorisiert ist oder nicht. Beispielsweise kann ein solcher Sicherheitscode eine RSA_Sign- Funktion sein. Der bekannte nachfolgende Ablauf kann beispielsweise innerhalb der Funktion ausgeführt werden:

    RSA(input, output)
    {check security condition,
    key load
    data load
    RSA Sign operation
    Store result
    Return}

  • Nach der Sicherstellung eines autorisierten Benutzers können die Sicherheitsinformationen des Sicherheitsdatenbereichs 8 bearbeitet werden. Nach Beendigung der Bearbeitung der Sicherheitsinformationen wechselt der Programmzähler durch einen Ergebniscode oder einen Rücksprungcode RET wieder auf einen Adresswert aus dem Bereich 6 der allgemeinen Codes. Steht dort beispielsweise ein Befehl LD r3, r2, dann wechselt der Programmzähler auf die Adresse 012000h aus dem allgemeinen Codebereich 6.
  • Wird die im Programmzähler gespeicherte Programmspeicheradresse 012000h über das Speicheradressenregister auf den Adressbus 13 gelegt, dann decodiert die Adressendecoderlogikschaltung 11 in der Sicherheitsprogrammaktivierungseinheit 10 wieder die Programmspeicheradresse, um das Rücksetzsignal zu erzeugen. Die Zwischenspeicherlogikschaltung wird in Abhängigkeit vom Rücksetzsignal zurückgesetzt, so dass das Chipauswahlsignal CS für den Sicherheitscodebereich 4 und den Sicherheitsdatenbereich 8 deaktiviert oder gesperrt wird. Daraus ergibt sich, dass auf das Sicherheitsprogramm nicht mehr zugegriffen werden kann. Dann wird der Befehlssatz LD r3, r2 geladen, der zur Programmspeicheradresse gehört, die den Programmzähler bestimmt, und der geladene Befehl wird analysiert und ausgeführt.
  • Das Programm wird im allgemeinen Codebereich 6 fortlaufend ausgeführt und der Befehl JMP Vector_E2 wird geladen, der zur Programmspeicheradresse 01FFFFh gehört und mit dem wieder in den Vektortabellenbereich 5 gesprungen wird. Da der geladene Befehl ein Sprungbefehl ist, wechselt der Programmzähler auf einen Adresswert des Vektortabellenbereichs 5, in dem der Code JMP Vector_E2 steht, und der Sicherheitscodebereich 4 und der Sicherheitsdatenbereich 8 werden wieder durch die Sicherheitsprogrammaktivierungseinheit 10 aktiviert bzw. freigeschaltet. Gleichzeitig veranlasst ein Ausführen des Sprungbefehls JMP F2 aus dem Vektortabellenbereich das Programm dazu, in den Sicherheitscodebereich 4 zu wechseln. Deshalb wird das Sicherheitsprogramm im Sicherheitscodebereich 4 ausgeführt und eine Sicherheitsfunktion F2 wird ausgeführt.
  • Wie oben beschrieben, wird bei der vorliegenden Ausführungsform der Erfindung das Sicherheitsprogramm nur durch einen vorbestimmten Pfad ausgeführt, d. h. durch einen Unterprogrammfunktionsaufruf oder durch einen Sprung in eine Unterprogrammfunktion. Anders ausgedrückt, der Vektorsprungcode JMP Vector_E1 wird im allgemeinen Codebereich 6 ausgeführt und deshalb springt das Programm zum Funktionssprungcode Vector_E1 des Vektortabellenbereichs 5. Dann wird der Code JMP F1 ausgeführt und schließlich springt das Programm in den Sicherheitscodebereich 4, so dass die Sicherheitsfunktion F1 ausgeführt wird. Hierbei decodiert die Sicherheitsprogrammaktivierungseinheit 10 den Inhalt des Programmzählers, um den Sicherheitscodebereich 4 und den Sicherheitsinformationsbereich 8 zu aktivieren, wenn der Sprungbefehl zum Springen in den Vektortabellenbereich 5 durch den Vektorsprungbefehl ausgeführt wird und der Programmzähler auf den Adresswert des Vektortabellenbereichs 5 wechselt, in dem der Vektorsprungcode gespeichert ist. Deshalb kann auf den Sicherheitscodebereich 4 und den Sicherheitsdatenbereich 8 nicht durch einen direkten Sprung oder Ladebefehl aus dem allgemeinen Codebereich zugegriffen werden.
  • Bei den erfindungsgemäßen Ausführungsformen wird das Chipauswahlsignal zum Aktivieren des Sicherheitsprogramms durch einen Unterprogrammfunktionsaufruf oder durch einen Sprung in eine Funktion eines Unterprogramms und durch einen Wert eines speziellen Programmzählers oder durch eine Adresse auf dem Adressbus 13 freigeschaltet. Entsprechend ist es auf Grundlage des Chipauswahlsignals möglich, verschiedene Ausführungsformen zu implementieren. Beispielsweise wird bei der oben beschriebenen Ausführungsform, wenn der Programmzähler oder der Adressbus auf eine Adresse aus dem Vektortabellenbereich 5 wechselt, das Chipauswahlsignal CS für den Sicherheitscodebereich 4 freigeschaltet. Dann kann, wenn der Wert des Programmzählers oder des Adressbusses durch einen Sprung in eine Unterprogrammfunktion auf einen Adresswert des Sicherheitscodebereichs 4 wechselt, das Chipauswahlsignal CS für den Sicherheitsdatenbereich 8 freigeschaltet werden.
  • Nachfolgend wird unter Bezugnahme auf Fig. 3 eine weitere Ausführungsform der Erfindung beschrieben. Für Elemente, die in Fig. 3 gleich sind wie in Fig. 2, werden die gleichen Bezugszeichen verwendet und auf eine nochmalige detaillierte Beschreibung dieser Elemente wird verzichtet. In Fig. 3 sind zum Datenaustausch zwischen der CPU 2 und den Speicherbaugruppen 4, 5, 6, 8 und 9 alle Speicherbereiche mit einem nicht dargestellten Datenbus verbunden. Zur Schnittstellenbildung zwischen der CPU 2 und den Speicherbaugruppen 4, 5, 6, 8 und 9 sind alle Speicherbereiche über die CPU 2 und den Adressbus verbunden. In Fig. 3 ist der Adressbus durch das Bezugszeichen A bezeichnet. Der allgemeine Codebereich 6 ist ein Bereich mit logischen Adressen von 00000h bis 0FEFFh und der Vektortabellenbereich 5 ist ein Bereich mit Adressen von 0FF00h bis 0FFFFh. Der Sicherheitscodebereich 4 ist ein Bereich mit einem Adressen von 10000h bis 1FFFFh. Der allgemeine Codebereich 6 und der Sicherheitscodebereich 5 werden dadurch getrennt, dass ihre höchstwertigen Adressbits komplementär zueinander sind, d. h. dass sie einen komplementären logischen Zustand zueinander haben.
  • Wie aus Fig. 3 ersichtlich ist, werden der allgemeine Datenbereich 9, der Sicherheitsdatenbereich 8, der allgemeine Codebereich 6 und der Sicherheitscodebereich 4 durch ein logisches Produkt von zwei Chipfreigabesignalen CS1 und CS2 aktiviert bzw. freigeschaltet oder deaktiviert bzw. gesperrt. Zusätzlich wird nur das Chipauswahlsignal CS2, d. h. nur das zweite Chipauswahlsignal, an den Sicherheitsdatenbereich 8 und an den Sicherheitscodebereich 4 angelegt und durch die Adressendecoderlogikschaltung 11 der Sicherheitsprogrammaktivierungseinheit 10 freigeschaltet oder gesperrt. Zudem wird unter den Codeadressen des ausgeführten Programms das höchstwertige Bit an den Sicherheitscodebereich 4 und invertiert an den allgemeinen Codebereich 6 angelegt und wirkt dadurch als anderes Chipauswahlsignal CS1, d. h. als erstes Chipauswahlsignal.
  • Speziell werden im dargestellten Ausführungsbeispiel die Chipauswahlsignale CS1 entsprechend dem höchstwertigen Bit (MSB) Adress Bit16 der Speicherprogrammadressen an den Sicherheitsdatenbereich 4 und an den allgemeinen Datenbereich 6 angelegt. In anderen Worten ausgedrückt, wird für den allgemeinen Codebereich 6 der logische Zustand der auf dem Adressbus A anliegenden Adresse invertiert und der invertierte logische Zustand wirkt als erstes Chipauswahlsignal CS1. Für den Sicherheitscodebereich 4 wirkt der logische Zustand des höchstwertigen Bits als erstes Chipauswahlsignal CS1. Das höchstwertige Bit mit einem Wert "0" ist ein logisch niedriger Zustand und das höchstwertige Bit mit einem Wert "1" ist ein logisch hoher Zustand. Das erste an den allgemeinen Datenbereich 9 und an den Sicherheitsdatenbereich 8 angelegte Chipauswahlsignal CS1 ist auf einen logischen Wert "1", d. h. auf einen logisch hohen Zustand, gesetzt. Zusätzlich ist das an den allgemeinen Datenbereich 9 und an den allgemeinen Codebereich 6 angelegte zweite Chipauswahlsignal CS2 ebenfalls auf einen logischen Wert "1", d. h. auf einen logisch hohen Zustand, gesetzt. Wenn eine Codeadresse, d. h. der Wert des Programmzählers, die auf dem Adressbus A liegt, einen Adresswert aus dem Vektortabellenbereich 5 annimmt, d. h. für das in Fig. 3 dargestellte Ausführungsbeispiel, dass das höchstwertige Bit Adress Bit16 der Speicheradresse den Wert "0" hat und die achten bis fünfzehnten Bits Adress Bit15 bis Adress Bit8 den Wert "1" haben, dann erzeugt die Adressendecoderlogikschaltung 11 der Sicherheitsprogrammaktivierungseinheit 10 das Setzsignal, so dass die Zwischenspeicherlogikschaltung 12 gesetzt wird. Dadurch werden die an den Sicherheitsdatenbereich 8 und an den Sicherheitscodebereich 4 angelegten zweiten Chipauswahlsignale CS2 freigeschaltet.
  • Speziell sei angenommen, dass das allgemeine Programm im allgemeinen Codebereich 6 gesteuert von der CPU 2 ausgeführt wird. Da der allgemeine Codebereich 6 einen logischen Adressenbereich von 00000h bis 0FFFFh umfasst, ist das höchstwertige Bit der Programmspeicheradresse auf einem logischen Wert "0". Entsprechend ist, weil der invertierte logische Wert "1" als Chipauswahlsignal CS1 arbeitet, das erste Chipauswahlsignal CS1 in einem freigeschalteten Zustand. Hierbei wird, weil das zweite Chipauswahlsignal CS2 des allgemeinen Codebereichs 6 in einem freigeschalteten Zustand ist, der allgemeine Codebereich 6 durch ein logisches Produkt der beiden Chipfreigabesignale CS1 und CS2 freigeschaltet.
  • Im Sicherheitscodebereich 4 jedoch wird das erste Chipfreigabesignal CS1 deaktiviert bzw. gesperrt, weil das als erstes Chipfreigabesignal CS1 wirkende höchstwertige Bit den logischen Wert "0" hat. Zusätzlich decodiert die Adressendecoderlogikschaltung 11 die Programmspeicheradresse, um das Rücksetzsignal zu erzeugen, weil die Programmspeicheradresse keinen Wert aus dem Vektortabellenbereich 5 hat. Die Zwischenspeicherlogikschaltung 12 wird in Abhängigkeit vom Rücksetzsignal zurückgesetzt, so dass das zweite Chipauswahlsignal CS2 deaktiviert bzw. gesperrt ist, das an den Sicherheitscodebereich 4 und an den Sicherheitsdatenbereich 8 angelegt ist. Daraus resultiert, dass der Sicherheitscodebereich 4 und der Sicherheitsdatenbereich 8 nicht aktiviert sind. Wenn das allgemeine Programm ausgeführt wird, sind der Sicherheitscodebereich 4 und der Sicherheitsdatenbereich 8 in einem deaktivierten Zustand, so dass nicht auf sie zugegriffen werden kann.
  • Wenn das allgemeine Programm ausgeführt wird und der Programmzähler durch einen Sprung in eine Unterprogrammfunktion oder durch einen Unterprogrammaufruf auf einen Adresswert aus dem Adressenbereich von 0FF00h bis 0FFFFh des Vektortabellenbereichs 5 wechselt, wird die korrespondierende Adresse auf den Adressbus A gelegt. Dadurch werden die zweiten Chipauswahlsignale CS2 des Sicherheitscodebereichs 4 und des Sicherheitsdatenbereichs 8 durch die Adressendecoderlogikschaltung 11 der Sicherheitsprogrammaktivierungseinheit 10 freigeschaltet. Hierbei wird, weil der Vektortabellenbereich 5 nur aus Sprungcodes besteht, die in den Vektortabellenbereich 5 oder in den Sicherheitscodebereich 4 springen, die Programmspeicheradresse auf eine Adresse des Sicherheitscodebereichs 4 geändert. Weil das höchstwertige Bit des Programmspeicheradressenwerts des Sicherheitscodebereichs 4 einen logischen Wert "1" hat, ist das an den Sicherheitscodebereich 4 angelegte Chipauswahlsignal CS1 in einem freigeschalteten Zustand. Jedoch wird im Falle des allgemeinen Codebereichs 6 das höchstwertige Bit invertiert und das an den allgemeinen Codebereich 6 angelegte Chipauswahlsignal CS1 ist in einem gesperrten Zustand. Daraus resultiert, dass ein Unterprogrammfunktionsaufruf durchgeführt wird und der allgemeine Codebereich 6 deaktiviert ist, wenn das Programm im Sicherheitscodebereich 4 ausgeführt wird.
  • Nachdem die Ausführung des Sicherheitsprogramms beendet ist, werden, wenn der Programmzähler wieder auf die Programmspeicheradresse wechselt, das zweite Chipauswahlsignal CS2, das an den Sicherheitscodebereich 4 und an den Sicherheitsdatenbereich 8 angelegt ist, und das erste Chipauswahlsignal CS1, das an den Sicherheitscodebereich 4 angelegt ist, gesperrt. Deshalb sind der Sicherheitscodebereich 4 und der Sicherheitsdatenbereich 8 deaktiviert, so dass nicht auf sie zugegriffen werden kann. Hierbei ist das zweite Chipauswahlsignal CS2, das an den allgemeinen Codebereich 6 angelegt ist, in einem freigeschalteten Zustand. Zusätzlich ist, weil das höchstwertige Bit der Programmspeicheradresse des allgemeinen Codebereichs 6 den logischen Wert "0" hat, das erste Chipauswahlsignal CS1, das an den allgemeinen Codebereich 6 angelegt ist, in einem freigeschalteten Zustand. Daraus resultiert, dass der allgemeine Codebereich 6 aktiviert ist, so dass das allgemeine Programm ausgeführt wird.
  • In manchen Ausführungsformen der Erfindung ist das zweite Chipauswahlsignal CS2, das an den Sicherheitsdatenbereich 8 angelegt ist, immer auf einem logisch hohen Zustand. Gemäß anderen Ausführungsformen der Erfindung kann jedoch das höchstwertige Bit der Programmspeicheradresse auf die gleiche Weise an den Sicherheitscodebereich 4 angelegt werden.
  • Zudem sind bei dem oben beschriebenen Ausführungsbeispiel die Chipauswahlsignale CS1 und CS2 für den allgemeinen Datenbereich immer in einem freigeschalteten Zustand. Jedoch kann das invertierte höchstwertige Bit der Programmspeicheradresse auf die gleiche Weise als erstes Chipauswahlsignal CS1 für den allgemeinen Datenbereich 9 angelegt werden wie für den allgemeinen Codebereich 6. In diesem Fall ist der allgemeine Datenbereich 9 nicht ständig in einem freigeschalteten Zustand und wird nur dann in den freigeschalteten Zustand überführt, wenn das allgemeine Programm ausgeführt wird.
  • In anderen möglichen erfindungsgemäßen Ausführungsbeispielen können die Chipauswahlsignale durch zwei oder mehr höchstwertige Bits der Programmspeicheradresse freigeschaltet oder gesperrt werden. Deshalb können verschiedene Anwendungsprogramme mit unterschiedlichen Sicherheitsstufen auf einem einzigen Chip installiert werden. Zudem kann der Sicherheitscodebereich, der eine Sicherheit für einen Sprung in den Vektortabellenbereich anstrebt, diversifiziert werden.
  • Fig. 4 zeigt einen Ausschnitt zur Erklärung des oben beschriebenen Ausführungsbeispiels des Programmspeichers 50 und eines zugehörigen Datenspeichers 60, wobei eine Mehrzahl von Anwendungsprogrammen im Programmspeicher 50 gespeichert ist.
  • Der Programmspeicher 50 umfasst einen Anwendungsprogramm A- Bereich 52, einen Anwendungsprogramm B-Bereich 56, einen Anwendungsprogramm C-Bereich 58 und einen Vektortabellenbereich 54. Die Anwendungsprogramme B und C sind Sicherheitsprogrammbereiche und ein Zugriff auf sie ist während einer Ausführung des Anwendungsprogramms A gesperrt. Der Datenspeicher 60 umfasst einen Datenbereich A62, der mit dem Anwendungsprogramm A korrespondiert, einen Datenbereich B64, der mit dem Anwendungsprogramm B korrespondiert, und einen Datenbereich C66, der mit dem Anwendungsprogramm C korrespondiert, und die Datenbereiche B und C64 und 66 sind Sicherheitsdatenbereiche.
  • Die Sprungcodes zu den Anwendungsprogrammen B und C56 und 58 sind im Vektortabellenbereich 54 gespeichert und der Vektortabellenbereich 54 hat einen Adressenbereich von AA bis BB. Beispielsweise ist, wie in Fig. 4 dargestellt ist, ein Sprungbefehl für einen Sprung zur Adresse CC im Anwendungsprogramm B-Bereich 56 in der Speicheradresse XX des Vektortabellenbereichs 54 vorhanden. Zusätzlich gibt es in einer Speicheradresse XX + N des Vektortabellenbereichs 54 einen Sprungbefehl, um zur Adresse DD im Anwendungsprogramm C-Bereich 58 zu springen.
  • Die jeweiligen Bereiche des Programmspeichers oder die jeweiligen Bereiche des Datenspeichers können geteilt werden, so dass sie physikalisch an unterschiedlichen Positionen in einem Speicher angeordnet sind, sie können verschachtelt sein und/oder sie können in verschiedenen Speicherbaugruppen implementiert sein.
  • Während das Anwendungsprogramm A, d. h. ein allgemeines Programm, im Anwendungsprogramm A-Bereich 52 durch die CPU ausgeführt wird, wird, wenn der Wert des Programmzählers auf die Adresse XX des Vektortabellenbereichs 54 wechselt, beispielsweise durch Ausführung eines Sprungbefehls zum Springen auf die Adresse XX, das Chipauswahlsignal CS1 freigeschaltet, so dass das Anwendungsprogramm B und der Datenbereich B 64 aktiviert werden. Auf die gleiche Weise wird, wenn der Wert des Programmzählers auf die Adresse XX + N des Vektortabellenbereichs 54 wechselt, beispielsweise durch Ausführen eines Sprungbefehls zum Springen auf die Adresse XX + N, das Chipauswahlsignal CS2 freigeschaltet, so dass das Anwendungsprogramm C und der Datenbereich C66 aktiviert werden. Deshalb kann ein direkter Zugriff vom Anwendungsprogramm A auf das Anwendungsprogramm B oder C verhindert werden.
  • Obwohl oben Ausführungen von intelligenten Karten beschrieben wurden, ist der Gegenstand der vorliegenden Erfindung nicht auf intelligente Karten beschränkt und kann bei verschiedenen Rechnersystemen zur Datenverarbeitung angewendet werden.
  • Erfindungsgemäße Ausführungen erlauben einem Sicherheitsprogramm einen Zugriff auf den Sicherheitscodebereich und den Sicherheitsdatenbereich nur, wenn der Wert des Programmzählers auf eine bestimmte Programmspeicheradresse durch den Aufruf einer Unterprogrammfunktion wechselt. Entsprechend kann das Sicherheitsprogramm vollständig vom allgemeinen Programm getrennt werden. In anderen Worten ausgedrückt, das allgemeine Programm kann nicht durch direkten Zugriff auf Sicherheitsinformationen ausgeführt werden. Dies ist nur möglich, wenn das Sicherheitsprogramm über einen vorbestimmten Pfad aktiviert wird.
  • Entsprechend können in manchen Ausführungsformen die Sicherheitsinformationen geschützt werden, da die Sicherheitsinformationen und die Sicherheitselemente völlig von den allgemeinen Anwendungsprogrammen getrennt werden können. Zudem können die Sicherheitsinformationen und die Sicherheitselemente auf dem gleichen Chip installiert werden, der Anwendungsprogramme mit unterschiedlichen Sicherheitsstufen umfasst, wobei die Sicherheitsinformationen und die Sicherheitselemente als Dienste-Provider agieren.

Claims (24)

1. Rechnersystem, gekennzeichnet durch
einen ersten, einen zweiten und einen dritten Speicherbereich (6, 5, 4), wobei im ersten Speicherbereich (6) wenigstens ein allgemeines Anwendungsprogramm mit wenigstens einem Unterprogrammaufruf zum zweiten Speicherbereich (5) gespeichert ist, im zweiten Speicherbereich (5) wenigstens ein Unterprogrammaufruf zum dritten Speicherbereich (4) gespeichert ist und im dritten Speicherbereich (4) wenigstens ein Sicherheitsanwendungsprogramm gespeichert ist, das nur durch einen Unterprogrammaufruf aus dem zweiten Speicherbereich (5) aufrufbar ist;
Mittel (2) zum Ausführen eines allgemeinen Anwendungsprogramms im ersten Speicherbereich (6) einschließlich eines Unterprogrammaufrufs zum zweiten Speicherbereich (5); und
Mittel (10), die den dritten Speicherbereich (4) nur nach Durchführung eines Unterprogrammaufrufs aus dem ersten Speicherbereich (6) zum zweiten Speicherbereich (5) freischalten.
2. Rechnersystem nach Anspruch 1, gekennzeichnet durch Mittel (10), die eine Freischaltung des dritten Speicherbereichs (4) verhindern, während ein allgemeines Anwendungsprogramm im ersten Speicherbereich (6) ausgeführt wird.
3. Rechnersystem nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass die Ausführungsmittel (2) Mittel (13) zum Übertragen einer Adresse eines Speicherplatzes umfassen, auf den zugegriffen werden soll, und die Freischaltemittel (10) Mittel zum Freischalten des dritten Speicherbereichs umfassen, wenn die Übertragungsmittel (13) eine Adresse eines Speicherplatzes im zweiten Speicherbereich (5) übertragen, und das Rechnersystem Mittel zum Sperren des dritten Speicherbereichs (4) umfasst, wenn die Übertragungsmittel (13) eine Adresse eines Speicherplatzes im ersten Speicherbereich (6) übertragen.
4. Rechnersystem nach einem der Ansprüche 1 bis 3, gekennzeichnet durch
einen vierten Speicherbereich (9), der Daten speichert, die durch das wenigstens eine allgemeine Anwendungsprogramm im ersten Speicherbereich (6) verarbeitet werden;
einen fünften Speicherbereich (8), der Daten speichert, die durch das wenigstens eine Sicherheitsanwendungsprogramm im dritten Speicherbereich (4) verarbeitet werden; und
Mittel, die den fünften Speicherbereich (8) nur nach Durchführung eines Unterprogrammaufrufs aus dem ersten Speicherbereich (6) zum zweiten Speicherbereich (5) freigeben.
5. Rechnersystem nach Anspruch 4, gekennzeichnet durch Mittel (10), die eine Freischaltung des fünften Speicherbereichs (8) verhindern, während ein allgemeines Anwendungsprogramm im ersten Speicherbereich (6) ausgeführt wird.
6. Rechnersystem nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, dass der erste, der zweite und der dritte Speicherbereich (6, 5, 4), die Ausführungsmittel (2) und die Freischaltemittel (10) in einer intelligenten Karte integriert sind.
7. Rechnersystem nach einem der Ansprüche 1 bis 6, gekennzeichnet durch Mittel (10), die den dritten Speicherbereich (4) freigeschaltet halten, während ein Sicherheitsanwendungsprogramm im dritten Speicherbereich (4) ausgeführt wird.
8. Rechnersystem nach Anspruch 7, gekennzeichnet durch Mittel (10), die den dritten Speicherbereich (8) bei einem Unterprogrammaufruf aus dem dritten Speicherbereich (4) zum ersten Speicherbereich (6) sperren.
9. Rechnersystem nach einem der Ansprüche 1 bis 8, dadurch gekennzeichnet, dass die Ausführungsmittel (2), die Freischaltemittel (10), die Sperrmittel (10) und/oder die Freischalthaltemittel (10) als Prozessorsystem ausgeführt sind und/oder die Übertragungsmittel (13) als Adressbus ausgeführt sind.
10. Rechnersystem nach Anspruch 9, gekennzeichnet durch eine Adressendecoderlogikschaltung (11), die so ausgeführt ist, dass sie ein Setzsignal in Abhängigkeit von einer Adresse erzeugt, die auf dem Adressbus (13) übertragen wird und sich im zweiten Speicherbereich (5) befindet, und durch einen Zwischenspeicher (12), der in Abhängigkeit vom Setzsignal ein Auswahlsignal (CS) für den dritten Speicherbereich aktiviert.
11. Rechnersystem nach Anspruch 10, dadurch gekennzeichnet, dass die Adressendecoderlogikschaltung (11) so ausgeführt ist, dass sie ein Rücksetzsignal in Abhängigkeit von einer Adresse erzeugt, die auf dem Adressbus (13) übertragen wird und die sich im ersten Speicherbereich (6) befindet, wobei der Zwischenspeicher (12) in Abhängigkeit vom Rücksetzsignal das Auswahlsignal (CS) für den dritten Speicherbereich deaktiviert.
12. Rechnersystem nach einem der Ansprüche 1 bis 11, dadurch gekennzeichnet, dass das wenigstens eine Sicherheitsanwendungsprogramm ein Benutzerauthentikationsprogramm umfasst.
13. Rechnersystem nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass ein höchstwertiges Adressbit des ersten Speicherbereichs (6) und des dritten Speicherbereichs (4) komplementär zueinander sind, wobei das höchstwertige Adressbit auf dem Adressbus (13) an den dritten Speicherbereich (4) angelegt wird und an den ersten Speicherbereich (6) invertiert angelegt wird, so dass der dritte Speicherbereich (4) durch eine Kombination des Auswahlsignals (CS) und des höchstwertigen Adressbits auf dem Adressbus aktiviert wird.
14. Rechnersystem nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass der erste Speicherbereich (6) ein allgemeiner Codebereich ist, der zweite Speicherbereich (5) ein Vektortabellenbereich ist und der dritte Speicherbereich (4) ein Sicherheitscodebereich ist.
15. Speicherarchitektur für ein Rechnersystem, gekennzeichnet durch einen ersten, zweiten und dritten Speicherbereich (6, 5, 4), wobei im ersten Speicherbereich (6) wenigstens ein allgemeines Anwendungsprogramm mit einer Mehrzahl von Unterprogrammaufrufen zum zweiten Speicherbereich (5) gespeichert ist, im zweiten Speicherbereich (5) nur eine Mehrzahl von Unterprogrammaufrufen zum dritten Speicherbereich (4) gespeichert ist und im dritten Speicherbereich (4) eine Mehrzahl von Sicherheitsanwendungsprogrammen gespeichert ist, die nur von Unterprogrammaufrufen aus dem zweiten Speicherbereich (5) aufrufbar sind.
16. Speicherarchitektur nach Anspruch 15, gekennzeichnet durch einen vierten Speicherbereich (9), in dem Daten gespeichert sind, die von dem wenigstens einen allgemeinen Anwendungsprogramm im ersten Speicherbereich (6) verarbeitet werden, und durch einen fünften Speicherbereich (8), in dem Daten gespeichert sind, die von den Sicherheitsanwendungsprogrammen im dritten Speicherbereich (4) verarbeitet werden.
17. Speicherarchitektur nach Anspruch 15 oder 16, dadurch gekennzeichnet, dass wenigstens eines der Sicherheitsanwendungsprogramme ein Benutzerauthentikationsprogramm umfasst.
18. Speicherarchitektur nach einem der Ansprüche 15 bis 17, dadurch gekennzeichnet, dass ein höchstwertiges Adressbit des ersten Speicherbereichs (6) und des dritten Speicherbereichs (4) komplementär zueinander sind.
19. Speicherarchitektur nach einem der Ansprüche 15 bis 18, dadurch gekennzeichnet, dass der erste, der zweite und der dritte Speicherbereich (6, 5, 4) in einer intelligenten Karte integriert sind.
20. Speicherarchitektur nach einem der Ansprüche 15 bis 19, dadurch gekennzeichnet, dass der erste Speicherbereich (6) ein allgemeiner Codebereich ist, der zweite Speicherbereich (5) ein Vektortabellenbereich ist und der dritte Speicherbereich (4) ein Sicherheitscodebereich ist.
21. Verfahren zum Durchführen eines Sicherheitsprogramms, während ein Anwendungsprogramm ausgeführt wird, gekennzeichnet durch folgende Schritte:
- Ausführen eines Anwendungsprogramms,
- Freischalten eines Sicherheitsprogramms nur dann, wenn ein Unterprogrammaufruf zu einem Vektortabellenbereich (5) ausgeführt wird, der nur wenigstens einen Unterprogrammaufruf zum Sicherheitsprogramm umfasst, und
- Ausführen des freigeschalteten Sicherheitsprogramms.
22. Verfahren nach Anspruch 21, dadurch gekennzeichnet, dass das Sicherheitsprogramm bei Ausführung eines Unterprogrammaufruf- Rücksprungs in das Anwendungsprogramm gesperrt wird.
23. Verfahren nach Anspruch 21 oder 22, dadurch gekennzeichnet, dass das Anwendungsprogramm, das Freischalten des Sicherheitsprogramms und das Sicherheitsprogramm in einer intelligenten Karte ausgeführt werden.
24. Verfahren nach einem der Ansprüche 21 bis 23, dadurch gekennzeichnet, dass Freischalten des Sicherheitsprogramms ein Aufrechterhalten des Freischaltezustands umfasst, während das Sicherheitsprogramm ausgeführt wird.
DE10324337A 2002-05-29 2003-05-27 Rechnersystem und zugehöriges Verfahren zum Durchführen eines Sicherheitsprogramms Expired - Lifetime DE10324337B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2002-0029877 2002-05-29
KR10-2002-0029877A KR100505106B1 (ko) 2002-05-29 2002-05-29 강화된 보안 기능을 갖춘 스마트 카드

Publications (2)

Publication Number Publication Date
DE10324337A1 true DE10324337A1 (de) 2003-12-24
DE10324337B4 DE10324337B4 (de) 2005-11-10

Family

ID=29578170

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10324337A Expired - Lifetime DE10324337B4 (de) 2002-05-29 2003-05-27 Rechnersystem und zugehöriges Verfahren zum Durchführen eines Sicherheitsprogramms

Country Status (6)

Country Link
US (1) US7353403B2 (de)
JP (1) JP2004005679A (de)
KR (1) KR100505106B1 (de)
CN (1) CN100547541C (de)
DE (1) DE10324337B4 (de)
FR (1) FR2840421B1 (de)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006004280A (ja) * 2004-06-18 2006-01-05 Toshiba Kyaria Kk マイクロコンピュータおよび電気機器
US8528102B2 (en) * 2006-10-06 2013-09-03 Broadcom Corporation Method and system for protection of customer secrets in a secure reprogrammable system
US20080263256A1 (en) * 2007-04-20 2008-10-23 Motorola, Inc. Logic Device with Write Protected Memory Management Unit Registers
FR2923634B1 (fr) * 2007-11-13 2010-06-18 Oberthur Card Syst Sa Carte a microprocesseur, telephone comprenant une telle carte et procede d'execution d'une commande dans une telle carte.
US8281154B2 (en) 2009-07-23 2012-10-02 International Business Machines Corporation Encrypting data in volatile memory
US8276188B2 (en) * 2009-12-03 2012-09-25 Condel International Technologies Inc. Systems and methods for managing storage devices
KR101009297B1 (ko) * 2010-05-14 2011-01-18 김진숙 비틀림 식별 라인이 형성되고 편직 방법으로 피복층을 형성한 엘리베이터 보정 체인 및 그 제조장치
KR101009296B1 (ko) * 2010-05-14 2011-01-18 김진숙 곡률반경을 조절 생산할 수 있는 엘리베이터 보정 체인의 제조방법 및 그 방법으로 제조된 엘리베이터 보정 체인
JP2012238273A (ja) * 2011-05-13 2012-12-06 Denso Corp Ram書込制御装置および不正アクセス防止プログラム
US20120265904A1 (en) * 2011-06-23 2012-10-18 Renesas Electronics Corporation Processor system
DE102012218363A1 (de) * 2012-10-09 2014-04-10 Continental Automotive Gmbh Verfahren zur Steuerung eines getrennten Ablaufs von verknüpften Programmblöcken und Steuergerät
JP2015026358A (ja) * 2013-06-20 2015-02-05 株式会社東芝 デバイス、ホスト装置、ホストシステム、及びメモリシステム
US9836318B2 (en) 2014-02-21 2017-12-05 Infineon Technologies Ag Safety hypervisor function
US9703948B2 (en) * 2014-03-28 2017-07-11 Intel Corporation Return-target restrictive return from procedure instructions, processors, methods, and systems
CA2884544A1 (en) * 2015-03-10 2016-09-10 Scs Card Technology Inc. Multi-application personal health record microprocessor card
FR3118219B1 (fr) * 2020-12-17 2024-03-15 Stmicroelectronics Grand Ouest Sas Procédé de protection d’un système, par exemple un microcontrôleur, et sytème correspondant

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5783850A (en) * 1980-11-12 1982-05-25 Mitsubishi Electric Corp Data processing device
US5027317A (en) * 1989-03-17 1991-06-25 Allen-Bradley Company, Inc. Method and circuit for limiting access to a RAM program memory
US5081675A (en) 1989-11-13 1992-01-14 Kitti Kittirutsunetorn System for protection of software in memory against unauthorized use
JP2677458B2 (ja) * 1991-01-25 1997-11-17 松下電器産業株式会社 システムコール実行装置
US5610981A (en) 1992-06-04 1997-03-11 Integrated Technologies Of America, Inc. Preboot protection for a data security system with anti-intrusion capability
FR2704341B1 (fr) * 1993-04-22 1995-06-02 Bull Cp8 Dispositif de protection des clés d'une carte à puce.
FR2711833B1 (fr) * 1993-10-28 1995-12-01 Sgs Thomson Microelectronics Circuit intégré contenant une mémoire protégée et système sécurisé utilisant ledit circuit intégré.
JP3483925B2 (ja) * 1994-01-11 2004-01-06 大日本印刷株式会社 Icカード
US5442704A (en) * 1994-01-14 1995-08-15 Bull Nh Information Systems Inc. Secure memory card with programmed controlled security access control
JP3221588B2 (ja) 1994-04-28 2001-10-22 日本電信電話株式会社 通信インタフェースモジュール及び通信制御方法
US5513337A (en) * 1994-05-25 1996-04-30 Intel Corporation System for protecting unauthorized memory accesses by comparing base memory address with mask bits and having attribute bits for identifying access operational mode and type
JPH0855204A (ja) * 1994-08-12 1996-02-27 Dainippon Printing Co Ltd Cpu付きicカード及びcpu付きicカードに於けるアクセス可能アドレス制限方法
JPH08272625A (ja) * 1995-03-29 1996-10-18 Toshiba Corp マルチプログラム実行制御装置及び方法
JPH0922385A (ja) * 1995-07-05 1997-01-21 Rohm Co Ltd データセキュリティ装置および方法
JPH0935018A (ja) * 1995-07-17 1997-02-07 Dainippon Printing Co Ltd 携帯可能情報記録媒体およびそのアクセス方法
DE19709975C2 (de) 1997-03-11 1999-04-22 Siemens Ag Mikrocomputer
US6220510B1 (en) * 1997-05-15 2001-04-24 Mondex International Limited Multi-application IC card with delegation feature
US6259124B1 (en) 1998-08-07 2001-07-10 Eastman Kodak Company Active pixel sensor with high fill factor blooming protection
US6609199B1 (en) * 1998-10-26 2003-08-19 Microsoft Corporation Method and apparatus for authenticating an open system application to a portable IC device
US6633984B2 (en) * 1999-01-22 2003-10-14 Sun Microsystems, Inc. Techniques for permitting access across a context barrier on a small footprint device using an entry point object
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
JP4226760B2 (ja) * 2000-05-08 2009-02-18 株式会社東芝 マイクロプロセッサ、これを用いたマルチタスク実行方法、およびマルチレッド実行方法
JP4033619B2 (ja) * 2000-05-26 2008-01-16 シャープ株式会社 サーバ装置
FR2811096A1 (fr) * 2000-06-28 2002-01-04 St Microelectronics Sa Microprocesseur securise comprenant un systeme d'attribution de droits a des librairies
JP2002149431A (ja) * 2000-11-07 2002-05-24 Nec Corp マイクロコンピュータ

Also Published As

Publication number Publication date
KR20030092264A (ko) 2003-12-06
KR100505106B1 (ko) 2005-07-29
DE10324337B4 (de) 2005-11-10
JP2004005679A (ja) 2004-01-08
US7353403B2 (en) 2008-04-01
CN100547541C (zh) 2009-10-07
FR2840421A1 (fr) 2003-12-05
CN1461992A (zh) 2003-12-17
US20030233565A1 (en) 2003-12-18
FR2840421B1 (fr) 2007-02-23

Similar Documents

Publication Publication Date Title
DE10324337B4 (de) Rechnersystem und zugehöriges Verfahren zum Durchführen eines Sicherheitsprogramms
EP0512542B1 (de) Datenschützende Mikroprozessorschaltung für tragbare Datenträger, beispielsweise Kreditkarten
DE69833902T2 (de) Integrierte Schaltung für Einbettung in Chipkarten, und Verfahren zur Herstellung von Chipkarten
EP0766211A2 (de) Multifunktionale Chipkarte
DE3432721C2 (de)
EP2795934B1 (de) Verfahren zur kommunikation mit einer applikation auf einem portablen datenträger sowie ein solcher portabler datenträger
DE10164422A1 (de) Verfahren und Anordnung zum Beschreiben von NV-Memories in einer Controller-Architektur sowie ein entsprechendes Computerprogrammprodukt und ein entsprechendes computerlesbares Speichermedium
EP0224639A1 (de) Verfahren zum Kontrollieren eines Speicherzugriffs auf einer Chipkarte und Anordnung zur Durchführung des Verfahrens
EP0935214B1 (de) Chipkarte mit integrierter Schaltung
DE69911174T2 (de) System und verfahren zur kontrolle des zugangs zu dem computercode in einer chipkarte
EP0276450A1 (de) Datenschutzschaltung zur Sperrung der Uebertragung von Signalen über einen Bus
EP0657820B1 (de) Verfahren zum Verhindern einer unberechtigten Datenänderung bei einer Vorrichtung mit einem nichtflüchtigen Speicher
DE602004011965T2 (de) Verfahren und schaltung zum identifizieren und/oder verifizieren von hardware und/oder software eines geräts und eines mit dem gerät arbeitenden datenträgers
DE69932630T2 (de) Verfahren und vorrichtung zur initialisierung eines anwendungsprogrammes einer chipkarte
DE10164419A1 (de) Verfahren und Anordnung zum Schutz von digitalen Schaltungsteilen
EP0890172B1 (de) Halbleiterspeichervorrichtung
DE60116658T2 (de) Datenträger mit zusatzvorrichtung
DE102010004446A1 (de) Verfahren zum Bereitstellen eines sicheren Zählers auf einem Endgerät
DE69909118T2 (de) Vorrichtung und verfahren zur sicherung einer integrierten schaltung
DE102005056357A1 (de) Multithreading-fähige virtuelle Maschine
EP0977160B1 (de) Verfahren und Datenverarbeitungsanordnung zum gesicherten Ausführen von Befehlen
DE60035915T2 (de) Einrichtung und Verfahren zur Prüfung eines nichtflüchtigen wiederprogrammierbaren Speichers
WO1998039743A2 (de) Verfahren zur durchführung von veränderungen in berechtigungsdatensätzen
DE102012025260A1 (de) Verfahren zum Betreiben eines portablen Datenträgers sowie ein solcher portabler Datenträger
DE102007041873A1 (de) Installieren eines Patch in einem Smartcard-Modul

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8364 No opposition during term of opposition
R071 Expiry of right