DE69125881T2 - Verhinderung der Bestimmung der Ausführungszeit einer vorbestimmten Datenverarbeitungsroutine im Zusammenhang mit dem Auftreten eines zuvor beobachtbaren Ereignisses - Google Patents

Verhinderung der Bestimmung der Ausführungszeit einer vorbestimmten Datenverarbeitungsroutine im Zusammenhang mit dem Auftreten eines zuvor beobachtbaren Ereignisses

Info

Publication number
DE69125881T2
DE69125881T2 DE69125881T DE69125881T DE69125881T2 DE 69125881 T2 DE69125881 T2 DE 69125881T2 DE 69125881 T DE69125881 T DE 69125881T DE 69125881 T DE69125881 T DE 69125881T DE 69125881 T2 DE69125881 T2 DE 69125881T2
Authority
DE
Germany
Prior art keywords
routine
routines
predetermined
data processing
duration
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 - Fee Related
Application number
DE69125881T
Other languages
English (en)
Other versions
DE69125881D1 (de
Inventor
Steven Edward Anderson
James Neil Esserman
Roy Allen Griffin Iii
Steven Raney Hart
Ron D Katznelson
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.)
Arris Technology Inc
Original Assignee
General Instrument 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 General Instrument Corp filed Critical General Instrument Corp
Publication of DE69125881D1 publication Critical patent/DE69125881D1/de
Application granted granted Critical
Publication of DE69125881T2 publication Critical patent/DE69125881T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related 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
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/04Digital computers in general; Data processing equipment in general programmed simultaneously with the introduction of data to be processed, e.g. on the same record carrier
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/75Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
    • G06F21/755Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation with measures against power attack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/341Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/0806Details of the card
    • G07F7/0813Specific details related to card security
    • G07F7/082Features insuring the integrity of the data on or in the card
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2123Dummy operation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Accounting & Taxation (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)
  • Selective Calling Equipment (AREA)
  • Fire Alarms (AREA)
  • Branch Pipes, Bends, And The Like (AREA)
  • Burglar Alarm Systems (AREA)
  • Retry When Errors Occur (AREA)

Description

  • Die vorliegende Erfindung betrifft allgemein die Datenverarbeitung und ist insbesondere auf das Verhindern der Gefährdung von geschützten Datenverarbeitungsroutinen durch eine als "Taktangriff" bekannte Prozedur gerichtet.
  • Ein Taktangriff ist eine Prozedur, durch die ein Angreifer Zugriff auf sichere Daten oder auf einen Code, der in einer vorbestimmten Datenverarbeitungsroutine, die in einem sicheren Datenprozessor, wie z.B. einem sicheren Mikroprozessor, ausgeführt wird, verwendet wird, erlangt, indem die Ausführungszeit der vorbestimmten Datenverarbeitungsroutine im Verhältnis zum Auftreten eines von außen beobachtbaren, der vorbestimmten Routine vorausgehenden Ereignisses bestimmt wird, um eine Synchronisation mit einer intern erzeugten Anweisung für die vorbestimmte Routine zu ermöglichen, und dann extern der Taktzyklus für einen Zyklus der Anweisung geändert wird, um einen sehr kurzen Taktzyklus zu schaffen, der die Anweisung in einer wiederholbaren Weise ändert, wodurch die sicheren Daten und/oder der sichere Code extern zugänglich werden.
  • Ein "von außen beobachtbares Ereignis" ist definiert als irgendeine interne Zustandsänderung, die sich extern manifestiert, z.B., jedoch nicht ausschließlich, eine Spannungs- oder Stromänderung an irgendeinem Anschluß oder einer Kombination von Anschlüssen, der bzw. die mit einer internen Prozessoroperation in Beziehung steht oder durch eine solche Prozessoroperation beeinflußt wird.
  • Die EP-A-0 157 303 beschreibt das Verhindern der Aufdeckung eines Algorithmus eines spezifischen Programms durch die entsprechenden Verfahren einer Begrenzung der Anzahl der Läufe des spezifischen Programms, eines Einfügens einer Verzögerungszeit vor jeder Ausführung des spezifischen Programms und eines Laufs mindestens eines anderen Programms zwischen Ausführungen des spezifischen Programms.
  • Die EP-A-0 145 405 beschreibt das Verhindern der Aufdeckung eines Sicherheitscodes durch Einführen einer relativ langen Verzögerung nach einem nicht erfolgreichen Versuch, den korrekten Code einzugeben, um eine Aufdeckung durch wiederholte Versuche zu verhindern.
  • Wie in Anspruch 1 definiert, verhindert die vorliegende Erfindung solche Taktangriffe durch Bereitstellen eines Verfahrens, mit dem verhindert werden kann, daß die Ausführungszeit einer vorbestimmten Datenverarbeitungsroutine, die in eine von einem Datenverarbeitungssystem ausgeführte Makro-Datenverarbeitungsroutine eingebettet ist, im Verhältnis zum Auftreten eines von außen beobachtbaren, der Ausführung der vorbestimmten Routine vorausgehenden Ereignisses bestimmt wird. Das Verfahren weist folgende Schritte auf: (a) Bereitstellen eines Signals mit einem Zufallsinhalt während jeder Makro- Datenverarbeitungsroutine und (b) zufälliges Verändern der Zeitdauer zwischen einem Auftreten des von außen beobachtbaren Ereignisses und der Ausführung der vorbestimmten Routine während jeder Makro-Datenverarbeitungsroutine in Reaktion auf das Signal mit Zufallsinhalt.
  • Die "Zeitdauer" ist bestimmt durch die Anzahl der Datenverarbeitungstakt zyklen.
  • Der Ausdruck "zufällig" wird so definiert, daß er sowohl "pseudozufällig" als auch "tatsächlich zufällig" umfaßt.
  • In einer Ausführungsform der Erfindung weist der Schritt (b) die folgenden Schritte auf: (c) Durchführen einer oder mehrerer Zwischen-Datenverarbeitungsroutinen zwischen dem Auftreten des von außen beobachtbaren Ereignisses und der Ausführung der vorbestimmten Routine und (d) zufälliges Verändern der Dauer der Zwischenroutinen. In dieser Ausführungsform der Erfindung weisen die Schritte (c) und (d) vorzugsweise den folgenden Schritt auf: (e) zufälliges Zusammenfügen von m Zwischenroutinen für die Ausführung aus einer Gruppe von n gespeicherten Routinen mit verschiedenen Zeitdauern, wobei m und n ganze Zahlen sind und n größer ist als m. Vorzugsweise weist der Schritt (e) entweder den Schritt (f) zufälliges Zugreifen auf die m Zwischenroutinen von einem sicheren Speicher oder die Schritte (g) zufälliges Zugreifen auf Zeiger für die m Zwischenroutinen von einem sicheren Speicher, und (h) Zugreifen auf die m Zwischenroutinen von einem Speicher in Reaktion auf die Zeiger.
  • In einer weiteren Ausführungsform der vorliegenden Erfindung weist der Schritt (b) folgende Schritte auf: (c) Durchführen einer oder mehrerer Zwischen-Datenverarbeitungsroutinen zwischen dem Auftreten des von außen beobachtbaren Ereignisses und der Ausführung der vorbestimmten Routine, wobei die Zwischenroutinen eine Datenverarbeitungsroutine enthalten, die für die Ausführung der Makro-Datenverarbeitungsroutine wesentlich ist, und (d) zufälliges Verändern der Dauer der Zwischenroutinen.
  • In einer anderen Ausführungsform der vorliegenden Erfindung weist der Schritt (b) den folgenden Schritt auf: (c) zufälliges Verändern der Zeitdauer in Reaktion auf dynamisch verarbeitete Daten, die sich nicht zur gleichen Zeit im Verhältnis zum jeweiligen Auftreten des von außen beobachtbaren Ereignisses wiederholen.
  • In noch einer anderen Ausführungsform der vorliegenden Erfindung weist der Schritt (b) folgenden Schritt (c) auf: zufälliges Verändern der Dauer in Reaktion auf eine Kombination dynamisch verarbeiteter Daten, die sich nicht zur gleichen Zeit im Verhältnis zum jeweiligen Auftreten des von außen beobachtbaren Ereignisses wiederholen, und in einem sicheren Speicher gespeicherter Daten.
  • In einer noch anderen Ausführungsform der vorliegenden Erfindung weist der Schritt (b) die Schritte (c) Durchführen einer oder mehrerer Zwischen-Datenverarbeitungsroutinen zwischen dem Auftreten des von außen beobachtbaren Ereignisses und der Ausführung der vorbestimmten Routine und (d) zufälliges Verändern der Dauer der Zwischenroutinen auf.
  • In allen Ausführungsformen der vorliegenden Erfindung weist das Verfahren vorzugsweise folgende Schritte auf: (e) Überwachen der Zwischenroutinen zum Erfassen, ob auf die Zwischenroutinen eingewirkt wird, und (f) Verhindern der Ausführung der vorbestimmten Routine in Reaktion auf das Erfassen, daß auf die Zwischenroutinen eingewirkt wird.
  • Wie in Anspruch 18 definiert, liefert die vorliegende Erfindung ein Datenverarbeitungssystem mit einer Einrichtung zum Ausführen einer Makro-Datenverarbeitungsroutine, die eine kleinere vorbestimmte Datenverarbeitungsroutine aufweist, bei der ein von außen beobachtbares Ereignis der Ausführung der vorbestimmten Routine vorausgeht, einer Einrichtung zum Liefern eines Signals mit zufälligem Inhalt während jeder Makro- Datenverarbeitungsroutine, und einer Einrichtung zum zufälligen Verändern der Dauer zwischen dem Auftreten des von außen beobachtbaren Ereignisses und der Ausführung der vorbestimmten Routine während jeder Makro-Datenverarbeitungsroutine in-Reaktion auf das Signal mit zufälligem Inhalt, wodurch verhindert wird, daß die Ausführungszeit im Verhältnis zum Auftreten des von außen beobachtbaren Ereignisses bestimmt werden kann.
  • Die Erfindung wird nun anhand von Beispielen mit Bezug auf die Zeichnungen beschrieben.
  • Fig. 1 ist ein Diagramm einer bevorzugten Ausführungsform des erfindungsgemäßen Datenverarbeitungsverfahrens und des erfindungsgemäßen Datenverarbeitungssystems.
  • Fig. 2 ist ein Ablaufdiagramm einer bevorzugten Ausführungsform einer in dem Verfahren und dem System von Fig. 1 implementierten Zwischenroutine.
  • Fig. 3 ist ein Ablaufdiagramm einer in der Zwischenroutine von Fig. 2 implementierten EINWIRKUNG ERFAßT-Routine.
  • Fig. 4 ist ein Diagramm einer anderen bevorzugten Ausführungsform des erfindungsgemäßen Datenverarbeitungsverfahrens und des erfindungsgemäßen Datenverarbeitungssystems.
  • Fig. 5 ist ein Ablaufdiagramm einer alternativen bevorzugten Ausführungsform einer Zwischenroutine.
  • Die bevorzugten Ausführungsformen der vorliegenden Erfindung sind in einem sicheren Mikroprozessor implementiert, der einen sicheren Speicher, einen unsicheren Speicher und eine sichere zentrale Verarbeitungseinheit (CPU) aufweist. Beide Speicher können sowohl einen Speicher mit wahlfreiem Zugriff (RAM) als auch einen Nur-Lese-Speicher (ROM) aufweisen. Der Ausdruck "sicher" bedeutet, daß von außen kein Zugriff möglich ist.
  • Die folgenden Ausführungen beziehen sich auf Fig. 1. In einer bevorzugten Ausführungsform der vorliegenden Erfindung führt eine CPU 10 eine Gruppe von Datenverarbeitungsroutinen ROUTINE N-1, ABZWEIGUNG, ROUTINE N, EINWIRKUNG ERFASSEN UND ROUTINE N+1 (entsprechend gekennzeichnet durch die Bezugszeichen 11, 12, 14, 15, 16) in Reaktion auf von einem ROM 18 zugeführte Anweisungen (Code) aus. Weiterhin führt sie ein Labyrinth von Zwischenroutinen ZWISCHENROUTINE 1, ZWISCHENROUTINE 2, ZWISCHENROUTINE m (entsprechend gekennzeichnet durch die Bezugszeichen 20, 21, 22), das in Reaktion auf von einem sicheren RAM 24 zugeführte -Anweisungen zusammengestellt wird,aus.
  • Die Routinen ROUTINE N-1, ROUTINE N, ROUTINE N+1 sind wesentliche sequentielle Unterroutinen einer sich wiederholenden Makro-Datenverarbeitungsroutine und folgen dem Auftreten eines von außen beobachtbaren Ereignisses während jeder Sequenz der Makroroutine. Um zu verhindern, daß eine vorbestimmte geschützte Routine ROUTINE N mit einem von außen beobachtbaren Ereignis, das sich wiederholend der geschützten Routine ROUTINE N vorangeht, synchronisiert wird, bewirkt die ABZWEIGUNG-Routine 12, daß die CPU 10 zum Labyrinth der m Zwischenroutinen ZWISCHENROUTINE 1, ZWISCHENROUTINE 2, ..., ZWISCHENROUTINE m abzweigt. Die Gesamtdauer der m Zwischenroutinen ist eine zufällige Variable. Die m Zwischenroutinen haben unterschiedliche Dauern.
  • Um sicherzustellen, daß die Abzweigung in das Labyrinth von Zwischenroutinen genommen wird, ist eine in bezug auf die Makroroutine kritische Unterroutine in das Labyrinth eingebettet. Wenn diese Unterroutine nicht ausgeführt wird, ist die ausgeführte übergeordnete Gesamtroutine ungültig. Die kritische Unterroutine wird eingebettet, indem die Anweisungen derart aufgebrochen werden, daß die Anweisung für die vorbestimmte geschützte Routine ROUTINE N sich nicht sequentiell hinter der ihr vorausgehenden Anweisung befindet. Statt dessen sichert die ABZWEIGUNG-Routine 12 die Adresse der Anweisung für die vorbestimmte geschützte Routine ROUTINE N an einem sicheren Speicherplatz, auf den nicht zugegriffen werden kann, solange die Ausführung des Labyrinths von Zwischenroutinen 20, 21, 22 nicht beendet ist. Nachdem die Adresse der Anweisung für die vorbestimmte geschützte Routine ROUTINE N gespeichert worden ist, führt die CPU 10 die erste Zwischenroutine ZWISCHENROUTINE 1 aus.
  • In der im ROM 18 gespeicherten Anweisungssequenz ist die auf die Anweisung für die ABZWEIGUNG-ROUTINE 12 folgende Anweisung eine EINWIRKUNG ERFAßT-Routine 13. Bei normalem Betrieb wird die EINWIRKUNG ERFAßT-Routine 13 niemals ausgeführt werden, da die CPU 10 immer zum Labyrinth der Zwischenroutinen abzweigt. Wenn jedoch ein Angreifer versucht, die ABZWEIGUNG-Routine 12 zu umgehen, wird die EINWIRKUNG ERFAßT-Routine 13 ausgeführt werden, um auf diese Weise den Einwirkungsversuch des Angreifers zu erfassen.
  • Der Zweck der Ausführung der Zwischenroutinen besteht darin, eine Verzögerung variabler Dauer zwischen ROUTINE N-1 und ROUTINE N zu erzeugen. Jede Zwischenroutine ist eine Zählschleifenroutine, wie sie in Fig. 2 dargestellt ist, wobei die Routine beendet wird, wenn eine Anzahl von Taktzyklen gezählt wurde. Im folgenden wird auf Fig. 2 Bezug genommen. Die Zählschleifenroutine enthält die Unterroutinen 25, 26, 27, 28, 29 und 30. Nach einer START-Unterroutine 25 wird eine Anzahl von zu zählenden Taktzyklen D während einer LADE VERZÖGERUNG D IN R- Unterroutine 27 in ein CPU 10-Register geladen.
  • Die Anzahl der Taktzyklen D ist eine vom sicheren RAM 24 abgeruf ene Zufallszahl. Die zufälligen Taktzykluszahlen werden in den verschiedenen Teilen des sicheren RAM 24, von denen die Anweisungen für die verschiedenen Zwischenroutinen abgerufen werden, bereitgestellt. Die zufälligen Taktzykluszahlen können im RAM 24 in Reaktion auf ein physikalisch (tatsächlich) zufälliges Phänomen, wie z.B. eine rauschbehaftete Diode, oder in Reaktion auf eine Pseudozufallsvorrichtung, wie z.B. einen Pseudozufallszahlengenerator, bereitgestellt werden.
  • Die R> 0?-Unterroutine 28 bestimmt, ob der in dem Register enthaltene Wert größer als null ist. Falls JA, wird der Wert in dem Register in Übereinstimmung mit einer DEKREMENTIERE R-Unterroutine 29 dekrementiert, bis der Wert in dem Register gleich null ist, woraufhin eine AUSGANG-Unterroutine 30 ausgeführt wird.
  • Die LADE VERZÖGERUNG D IN R-Unterroutine 27 wird zu verschiedenen Zeiten in den verschiedenen Zwischenroutinen ausgeführt, so daß ein Angreifer die Anweisung nicht dahingehend ändern kann, daß sie in jeder Zwischenroutine während des gleichen Taktzyklus ausgeführt wird, um so für jede Zwischenroutine nach dem Bestimmen, daß die LADE VERZÖGERUNG D IN R- Unterroutine 27 zu einer gegebenen Zeit einer der Zwischenroutinen ausgeführt wird, eine bekannte Verzögerung zu erzeugen.
  • Während jeder Zwischenroutine ist die LADEVERZÖGERUNG D IN R-Unterroutine 27 die i-te Unterroutine. Die EINWIRKUNG ERFAS- SEN-Unterroutine 26 wird einige Male vor der LADE VERZÖGERUNG D IN R-Unterroutine 27 der entsprechenden Zwischenroutine wiederholt. Die EINWIRKUNG ERFASSEN-Unterroutine 26 wird auch einige Male nach der LADE VERZÖGERUNG D IN R-Unterroutine 27 wiederholt, bis eine vorbestimmte Anzahl P von Unterroutinen ausgeführt wurde.
  • Jede EINWRIKUNG ERFASSEN-Unterroutine 26 ist eine vorbestimmte Falle zum Beobachten der Zwischenroutinen, um zu erfassen, ob auf die Zwischenroutinen eingewirkt wird. Sie verhindert die Ausführung der geschützten Routine ROUTINE N, wenn bemerkt wird, daß auf die Zwischenroutine eingewirkt wird.
  • Ein Einwirken wird erfaßt, indem erfaßt wird, ob eine Veränderung von Anweisungen in diesen vorbestimmten Fallen erfolgt. Im folgenden wird auf Fig. 3 Bezug genommen. Die EIN- WIRKUNG ERFASSEN-Unterroutine 26 enthält folgende Unterroutinen, die entsprechend durch die Bezugszeichen 33, 34, 35, 36, 37, 38, 39 und 40 gekennzeichnet sind: START, LADE KONSTANTE C INS RE- GISTER R, C=R?, INKREMENTIERE EINWIRKUNGSERFASSUNGSZÄHLER, ZAR- LERSTAND> T?, VERHINDERN, DEKREMENTIERE EINWIRKUNGSERFASSUNGSZÄHLER, UND AUSGANG.
  • Nach einer START-Unterroutine 33 wird eine Konstante C während einer LADE KONSTANTE C INS REGISTER R-Unterroutine 34 in ein CPU 10-Register geladen.
  • Die C=R?-Unterroutine 35 zeigt an, ob es einen für einen Angreifer typischen Versuch gab, eine während der Zwischenroutine auszuführende Anweisung zu ändern, oder ob es einen solchen Versuch nicht gab. Für einen Versuch eines Angreifers ist es typisch, die Anweisung zu ändern, die die Verzögerungsdaueranweisung für diese Zwischenroutine lädt, so daß eine bekannte Verzögerung für diese Zwischenroutine eingerichtet wird. Selbst wenn jedoch der Angreifer in der Lage ist, richtig zu erraten, wo die Verzögerungsdaueranweisung in der Unterroutinensequenz der ausgeführten Zwischenroutine lokalisiert ist, wird die vom Angreifer versuchte Veränderung der Verzögerungsladungsanweisung für diese Zwischenroutine zur Folge haben, daß während der EINWIRKUNG ERFASSEN-Unterroutine 26, die ausgeführt wird, wenn solch ein Änderungsversuch auftritt, ein anderer Wert als die Konstante C in das Register eingetragen wird, woraufhin der Wert R im Register während der C=R?-Unterroutine 35 nicht gleich der Konstanten C ist. Auf diese Weise wird, wenn C nicht gleich R ist, eine Einwirkung erfaßt und ein in der CPU 19 implementierter Einwirkungserfassungszähler während einer INKREMENTIERE EINWIRKUNGSERFASSUNGSZÄHLER-Unterroutine 36 inkrementiert.
  • Der Zählerstand in dem Einwirkungserfassungszähler wird während einer ZÄHLERSTAND > T?-Unterroutine 37 mit einem Schwellwert T verglichen. Sobald dieser Schwellwert T überschritten wird, erfolgt die Ausführung einer VERHINDERN-Unterroutine 38, um die Ausführung der vorbestimmten geschützten Routine ROUTINE N zu verhindern.
  • Die Unterroutine VERHINDERN 38 kann auf mehrere verschiedene Weisen implementiert werden. Z.B. kann geheime Information gelöscht oder das Labyrinth der Zwischenroutinen so geändert werden, daß ein Herauskommen nicht möglich ist. In jeder Implementation läuft der CPU 10-Betrieb in eine unendliche Schleife, so daß der Angreifer keine Information über die Identität des Taktzyklus, bei dem die Einwirkung erfolgte, erhalten kann.
  • Damit jedoch eine nur scheinbare Einwirkung oder Störsignale nicht einen Eintritt in die VERHINDERN-Routine 38 bewirken, dekrementiert eine DEKREMENTIERE EINWIRKUNGSERFASSUNGS- ZAHLER-Unterroutine 39 den Einwirkungserfassungszähler für jede EINWIRKUNG ERFASSEN-Unterroutine 26, bei der es kein Anzeichen für ein Einwirken gibt, bei der also C gleich R ist. Der Wert, um den der Einwirkungserfassungszähler während der DEKREMENTIERE EINWIRKUNGSERFASSUNGSZÄHLER-Unterroutine 39 dekrementiert wird, ist kleiner oder gleich dem Wert, um den der Einwirkungserfassungszähler während der INKREMENTIERE EINWIR- KUNGSERFASSUNGSZÄHLER-Unterroutine 36 inkrementiert wird.
  • Für jede EINWIRKUNG ERFASSEN-Unterroutine 26, in welcher der Wert C während der ZAHLERSTAND > T?-Unterroutine 37 gleich dem Wert R ist, wird die EINWIRKUNG ERFASSEN-Unterroutine 26 mit einer AUSGANG-Unterroutine 40 abgeschlossen.
  • In einer alternativen Ausführungsform wird der Einwirkungserfassungszähler nicht benutzt, und die VERHINDERN-Unterroutine 38 wird immer dann angesteuert, wenn eine Einwirkung dadurch angezeigt wird, daß während der C=R?-Unterroutine 35 der Wert R im Register nicht gleich der Konstante C ist, wie es mittels der gestrichelten Linie in Fig. 3 dargestellt ist. Bei dieser alternativen Ausführungsform wird die AUSGANG-Unterroutine 40 immer dann angesteuert, wenn dadurch, daß während der C=R?-Unterroutine 35 der Wert R im Register gleich der Konstante C ist, keine Einwirkung angezeigt wird, so wie es durch eine andere gestrichelte Linie in Fig. 3 dargestellt ist.
  • Die Zwischenroutinen sollten Anweisungen mit parallelen Taktzyklen haben. Die meisten Mikroprozessoren beenden die Ausführung einer Anweisung, wenn ein Reset-Interrupt auftritt. Wenn die Anweisung für die LADE VERZÖGERUNG D IN R-Unterroutine 27, die die Größe der Verzögerung in einer Zwischenroutine angibt, und die Anweisung für die EINWIRKUNG ERFASSEN-Unterroutine 26 nicht exakt die gleiche Zykluslänge haben, kann die LADE VERZÖGERUNG D IN R-Unterroutine 27 durch Erzeugen einer Reihe von Reset-Interrupts und Beobachten, wann jeder Reset- Interrupt verarbeitet wird, von der EINWIRKUNG ERFASSEN-Unterroutine 26 unterschieden werden.
  • Nach der Beendigung der Ausführung des Labyrinths von Zwischenroutinen führt die CPU 10 nach einem Zugriff auf die von der CPU 10 während der Ausführung der ABZWEIGUNG-Routine 12 gespeicherten Adresse der Anweisung der geschützten Routine ROUTINE N die geschützte Routine ROUTINE N aus.
  • Eine EINWIRKUNG ERFASSEN-Routine 15 wird nach der Ausführung der vorbestimmten geschützten Routine ROUTINE N ausgeführt, um einen Angreifer daran zu hindern, mittels einer Technik auf die vorbestimmte geschützte Routine ROUTINE N zuzugreifen, die darin besteht, daß versucht wird, auf die vorbestimmte geschützte Routine ROUTINE N während einer Zeit zuzugreifen, die nach dem Auftreten des von außen beobachtbaren Ereignisses beginnt, und von ausreichender Dauer ist, um die maximal mögliche Gesamtdauer aller Zwischenroutinen und die Dauer der vorbestimmten geschützten Routine ROUTINE N zu umfassen, und dann in jedem aufeinanderfolgenden Zyklus der Makro-Verarbeitungsroutine solch ein Versuch jeweils einen Taktzyklus früher unternommen wird, bis die vorbestimmte geschützte Routine ROUTINE N erreicht ist. Ein solcher Angriff würde damit enden, daß die Einwirkung durch die EINWIRKUNG ERFASSEN-Routine 15 erfaßt und eine VERHINDERN-Routine ausgeführt wird, bevor solche Adresse erreicht werden könnte.
  • Nach der Ausführung der EINWIRKUNG ERFASSEN-Routine 15 führt die CPU die ROUTINE N+1 aus.
  • Im folgenden wird auf Fig. 4 Bezug genommen. In einer anderen bevorzugten Ausführungsform der vorliegenden Erfindung, die weniger sichere RAM-Kapazität benötigt als die bevorzugte Ausführungsform von Fig. 1, führt eine CPU 44 eine Gruppe von Datenverarbeitungsroutinen ROUTINE N-1, ABZWEIGUNG, VERBINDE DIE ZWISCHENROUTINEN UND FÜHRE SIE AUS, ROUTINE N UND ROUTINE N+1 (die entsprechend mit den Bezugszeichen 46, 47, 48, 49, 50 versehen sind) in Reaktion auf von einem ROM 51 erhaltene Anweisungen (Code) aus. Die Routinen ROUTINE N-1, ROUTINE N, ROUTINE N+1 sind wesentliche sequentielle Unterroutinen einer sich wiederholenden Makro-Datenverarbeitungsroutine und folgen dem Auftreten eines von außen beobachtbaren Ereignisses während jeder Sequenz der Makroroutine. Um eine Synchronisation der Routine ROUTINE N mit einem der Routine ROUTINE N wiederholt vorausgehenden, von außen beobachtbaren Ereignis zu verhindern, bewirkt die ABZWEIGUNG-Routine, daß die CPU 44 in ein Layrinth von m Zwischenroutinen abzweigt, das aus einer Gruppe von n im ROM 51 gespeicherten Zwischenroutinen ZWISCHENROUTINE 1, ZWISCHENROUTINE 2, ..., ZWISCHENROUTINE n, die entsprechend mit den Bezugszeichen 54, 55, 56 versehen sind, besteht. Die m Zwischenroutinen werden in Reaktion auf von einem sicheren RAM 60 erhaltene Zeiger 58 aus der Gruppe von Zwischenroutinen ausgewählt. m und n sind ganze Zahlen, wobei n größer ist als m. Es existieren nm mögliche Labyrinthe von Zwischenroutinen. Die n Zwischenroutinen haben unterschiedliche Dauern, und die Auswahl und Anordnung der m Zwischenroutinen, die zur Ausführung während der gegebenen Datenverarbeitungssequenz -zusammengefügt werden, wird von einer Sequenz zur nächsten zufällig variiert, um die Gesamtdauer der Zwischenroutinen zu einer Zufallsvariablen zu machen. Die Werte der verschiedenen Dauern der Zwischenroutinen sind so verteilt, daß eine große Anzahl der nm möglichen Labyrinthe von Zwischenroutinen eine unterschiedliche Gesamtdauer hat.
  • Nach der Ausführung der Routine ROUTINE N-1 bewirkt die ABZWEIGUNG-Routine 47, daß die CPU 44 zur VERBINDE DIE ZWISCHENROUTINEN UND FÜHRE SIE AUS-Routine 48 abzweigt. Die VERBINDE DIE ZWISCHENROUTINEN UND FUHRE SIE AUS-Routine 48 enthält folgende Unterroutinen: HOLE DEN ERSTEN ZEIGER, FÜHRE DIE DURCH DEN ZEIGER IDENTIFIZIERTE ZWISCHENROUTINE AUS, M ZEIGER GEHOLT? und HOLE DEN NÄCHSTEN ZEIGER. Diese Unterroutinen sind entsprechend durch Bezugszeichen 62, 63, 64, 65 gekennzeichnet.
  • Die Zeiger enthalten einen ZEIGER FÜR DIE ZWISCHENROUTINE 1, einen ZEIGER FÜR DIE ZWISCHENROUTINE 2, ..., und einen ZEIGER FÜR DIE ZWISCHENROUTINE m (entsprechend gekennzeichnet durch Bezugszeichen 67, 68, 69). Die Zeiger 67, 68, 69 sind fixiert, aber die Auswahl und Aneinanderreihung der während einer gegebenen Datenverarbeitungssequenz gelieferten m Zeiger wird von einem Makro-Datenverarbeitungszyklus zum nächsten zufällig variiert, um die Gesamtdauer der Zwischenroutinen zu einer Zufallsvariablen zu machen. Die Auswahl und die Reihenfolge der m Zeiger wird während jedes Makro-Datenverarbeitungszyklus in Reaktion auf ein von einem physikalischen (tatsächlichen) Zufallsphänomen, wie z.B. einer rauschbehafteten Diode, gelieferten Signals oder in Reaktion auf eine Pseudozufallsvorrichtung, wie z.B. einen Pseudozufallszahlengenerator, geliefert.
  • Während der ersten HOLE DEN ERSTEN ZEIGER-Routine 62 holt die CPU 44 den ZEIGER FÜR DIE ZWISCHENROUTINE 1 aus dem RAM 60 und benutzt diesen Zeiger, um auf die Anweisung für die ZWISCHENROUTINE 1 im ROM 51 zuzugreifen.
  • Während der FÜHRE DIE VOM ZEIGER ANGEZEIGTE ZWISCHENROUTINE AUS-Routine 63 führt die CPU 44 die Routine 52 aus dem ROM 51 aus, auf die der Zeiger 58 weist.
  • Nach jeder Ausführung der FÜHRE DIE VOM ZEIGER ANGEZEIGTE ZWISCHENROUTINE AUS-Routine 63 führt die CPU 44 die m ZEIGER GEHOLT?-Routine 64 aus. Wenn noch nicht m Zeiger aus dem RAM 60 geholt worden sind, führt die CPU 44 die HOLE DEN NÄCHSTEN ZEIGER-Routine 65 aus, um einen anderen Zeiger 58 aus dem RAM 60 zu holen. Dann führt sie die FÜHRE DIE VOM ZEIGER ANGEZEIGTE ZWISCHENROUTINE AUS-Routine 63 unter Verwendung der Zwischenroutine 52, auf die der neue geholte Zeiger 58 zeigt, aus.
  • Sobald die m ZEIGER GEHOLT?-Routine 64 angibt, daß m Zeiger 58 aus dem RAM 60 geholt worden sind, führt die CPU 44 die vorbestimmte geschützte Routine ROUTINE N aus.
  • Jede Zwischenroutine 52 ist eine Zählschleifenroutine, wie sie oben mit Bezug auf Fig. 2 beschrieben wurde.
  • Die bevorzugte Ausführungsform von Fig. 4 kann auch EINWIRKUNG ERFASSEN-Routinen enthalten, wie z.B. die oben mit Bezug auf die Fig. 1, 2 und 3 beschriebenen EINWIRKUNG ERFASSEN- Routinen 15 und 26. Sie kann auch eine EINWIRKUNG ERFAßT-Routine enthalten, wie z.B. die oben mit Bezug auf Fig. 1 beschriebene EINWIRKUNG ERFAßT-Routine 13.
  • Fig. 5 illustriert eine alternative bevorzugte Ausführungsform einer Zwischenroutine. In dieser Zwischenroutine wird die Dauer zwischen dem von außen beobachtbaren Ereignis und der vorbestimmten geschützten Routine in Reaktion auf dynamisch verarbeitete Daten, die sich nicht ständig zur gleichen Zeit in bezug auf jedes Auftreten des von außen beobachtbaren Ereignisses wiederholen, und in Reaktion auf in einem sicheren Speicher gespeicherte Daten zufällig variiert.
  • Die Zwischenroutine von Fig. 5 weist eine allgemein sich wiederholende kritische Routine der Makro-Datenverarbeitungsroutine auf. In dieser Ausführungsform ist die kritische Routine das Bewegen von Quelldaten an einen Bestimmungsort. Die Quelldaten sind Daten, die während der übergeordneten Gesamt-Datenverarbeitungsroutine dynamisch verarbeitet werden. Die Zwischenroutine von Fig. 5 wird zwischen jedem Auftreten eines von außen beobachtbaren Ereignisses und der Ausführung der vorbestimmten geschützten Routine ausgeführt.
  • Die Zwischenroutine von Fig. 5 enthält die folgenden Unterroutinen: START, INITIALISIERUNG, i-TES BIT VON X = 1?, SETZE DAS i-TE BIT VON Y AUF 1, INKREMENTIERE i, i > WORTGRÖßE DER QUELLDATEN?, BESTIMMUNGSDATEN = Y QUELLDATEN, SCHREIBE NEUE SICHERE DATEN, UND AUSGANG (entsprechend gekennzeichnet durch Bezugszeichen 72, 73, 74, 75, 76, 77, 78, 79, 80). Die Zwischenroutine von Fig. 5 enthält auch EINWIRKUNG ERFASSEN-Unterroutinen (nicht dargestellt), wie z.B. die obenbeschriebene EINWIRKUNG ERFASSEN-Unterroutine 26, die sowohl der INITIALISIERUNG-Unterroutine 73 als auch der SCHREIBE NEUE SICHERE DATEN-Unterroutine 79 sowohl vorausgehen als auch folgen. Die Anweisungen für die Zwischenroutine von Fig. 5 sind in derselben Weise, wie es in Fig. 1 gezeigt wurde, in einem ROM gespeichert und werden entsprechend von einer CPU ausgeführt.
  • Nach der START-Unterroutine 72 führt die CPU die INITIA- LISIERUNG-Unterroutine 73 aus, während der in ein Register X das Ergebnis einer EXKLUSIV ODER Verknüpfung zwischen den dynamischen QUELLDATEN und von einem sicheren RAM erhaltenen SICHEREN DATEN geschrieben, ein Register Y auf null gesetzt und ein Zähler i auf null gesetzt wird. Die Adresse des Bestimmungsortes der Quelldaten wird ebenfalls während der Initialisierung- Unterroutine 73 gespeichert.
  • Als nächstes führt die CPU die i-TES BIT VON X = 1? -Unterroutine 74 aus, in der bestimmt wird, ob das i-te Bit im Register X ein EINS-Bit ist. Jedesmal, wenn diese Unterroutine 74 ausgeführt wird, wird diese Bestimmung mit Bezug auf eine unterschiedliche Bit-Position i des Registers X vorgenommen, wobei mit der niedrigstwertigen Bit-Position begonnen wird.
  • Immer dann, wenn das i-te Bit im Register Y ein EINS-Bit ist, wird die SETZE DAS i-TE BIT VON X AUF 1-Unterroutine 75 ausgeführt, um das i-te Bit des Registers Y auf EINS zu setzen. Die INKREMENTIERE i-Unterroutine 76 wird dann ausgeführt, um das Register i um eine Zähleinheit zu inkrementieren.
  • Immer, wenn das i-te Bit des Registers Y ein NULL-Bit ist, wird die INKREMENTIERE i-Unterroutine 76 ausgeführt, um das Register i um eine Zähleinheit zu inkrementieren.
  • Die i > WORTGRÖßE DER QUELLDATEN?-Unterroutine bestimmt, ob die i-TE BIT VON X = 1?-Unterroutine 74 für alle i-Bit-Positionen des Registers X ausgeführt wurde. Falls nicht, wird die Unterroutine 74 wiederholt.
  • Wenn die i-TE BIT VON X = 1?-Unterroutine 74 für alle i- Bit-Positionen des Registers X ausgeführt wurde, führt die CPU die BESTIMMUNGSDATEN = Y SICHERE DATEN-Unterroutine 78 aus, in der der Inhalt des Registers Y mittels einer EXKLUSIV ODER Verknüpfung mit den vom RAM erhaltenen sicheren Daten verknüpft wird, um die Bestimmungsdaten zu erhalten, die an die in der Anweisung für die Zwischenroutine von Fig. 5 angegebene Adresse bewegt werden.
  • Versucht ein Angreifer auf die Zwischenroutine von Fig. 5 einzuwirken und die Gesamtdauer der Zwischenroutine zu einem bekannten Wert zu machen, würde dies notwendigerweise den Inhalt der Bestimmungsdaten ändern und damit eine exakte Ausführung der Makro-Datenverarbeitung verhindern. Wenn die Quelldaten nicht korrekt ihrer Bestimmung zugeführt werden, wird der Rest der Makro-Datenverarbeitungsroutine unter Benutzung unkorrekter Daten ausgeführt werden und keine korrekten Ergebnisse liefern.
  • Die Gesamtdauer der Zwischenroutine von Fig. 5 ist von der Anzahl der während der INITIALISIERUNG-Unterroutine 73 in das Register X geladenen EINS-Bits abhängig, da die SETZE DAS i-TE BIT VON X AUF 1-Unterroutine 75 nur ausgeführt wird, wenn das i- te Bit des Registers X gleich EINS ist. So ist der Variationsbereich der Dauer der Zwischenroutine von Fig. 5 die Anzahl der Taktzyklen, die für die Unterroutine 75 erforderlich sind, multipliziert mit der Anzahl der Bit-Positionen im Register X. Da die Anzahl der Male, die die Unterroutine 75 ausgeführt wird, vom Inhalt der dynamisch verarbeiteten Quelldaten und der sicheren Daten im RAM abhängt, ist die Gesamtdauer der Zwischenroutine von Fig. 5 eine für den Beobachter unbekannte zufällige Variable.
  • Der zufällige Charakter der Gesamtdauer der Zwischenroutine von Fig. 5 wird ferner durch die Ausführung der SCHREIBE NEUE SICHERE DATEN-Unterroutine 78 gefestigt, welche die sicheren Daten im RAM, auf die während der INITIALISIERUNG-Unterroutine 73 zugegriffen wird, ändert, so daß jedesmal, wenn die Zwischenroutine von Fig. 5 ausgeführt wird, die sicheren Daten unterschiedlich sein können. Die sicheren Daten können im RAM in Reaktion auf ein von einem physikalisch (tatsächlich) zufälligen Phänomen, wie z.B. einer rauschbehafteten Diode, erzeugtes Signal oder in Reaktion auf eine Pseudozufallsvorrichtung, wie z.B. einen Pseudozufallszahlengenerator, bereitgestellt werden.
  • Die Zwischenroutine von Fig. 5 muß in Kombination mit anderen Zwischenroutinen ausgeführt werden und kann immer dann in eine Makro-Datenverarbeitungsroutine eingebettet werden, wenn kritische Daten aus einer Position (Quelle) in eine andere Position (Bestimmungsort) bewegt werden müssen.
  • Das erfindungsgemäße Verfahren und das erfindungsgemäße System sind auch dazu geeignet, zu verhindern, daß die Ausführungszeit einer vorbestimmten Datenverarbeitungsroutine, die nicht in einer sich wiederholenden Makro-Datenverarbeitungsroutine enthalten ist, in bezug auf das Auftreten eines von außen beobachtbaren Ereignisses, das der Ausführung der vorbestimmten Routine vorangeht, bestimmt werden kann.
  • Das erfindungsgemäße Verfahren und das erfindungsgemäße System sind teilweise zur Implementation in einem Mikroprozessor, der eine Entschlüsselung von verschlüsselten Informationssignalen mittels eines im Besitz eines Teilnehmers in einem Teilnehmer - Kommunikationsnetzwerk befindlichen Entschlüsslers steuert, geeignet.

Claims (34)

1. Verfahren, mit dem verhindert werden kann, daß die Ausführungszeit einer vorbestimmten Datenverarbeitungsroutine, die in eine von einem Datenverarbeitungssystem ausgeführte Makro- Datenverarbeitungsroutine eingebettet ist, im Verhältnis zum Auftreten eines von außen beobachtbaren, der Ausführung der vorbestimmten Routine vorausgehenden Ereignisses, bestimmt wird, mit den folgenden Schritten:
(a) Bereitstellen eines Signals mit einem Zufallsinhalt während jeder Makro-Datenverarbeitungsroutine und
(b) zufälliges Verändern der Zeitdauer zwischen einem Auftreten des von außen beobachtbaren Ereignisses und der Ausführung der vorbestimmten Routine während jeder Makro- Datenverarbeitungsroutine in Reaktion auf das Signal mit Zufallsinhalt.
2. Verfahren nach Anspruch 11 bei dem der Schritt (b) die folgenden Schritte aufweist:
(c) Durchführen einer oder mehrerer Zwischen-Datenverarbeitungsroutinen (20, 21, 22, 52) zwischen dem Auftreten des von außen beobachtbaren Ereignisses und der Ausführung der vorbestimmten Routine (14, 49); und
(d) zufälliges Verändern der Dauer der Zwischenroutinen.
3. Verfahren nach Anspruch 2, bei dem die Schritte (c) und (d) den folgenden Schritt aufweisen:
(e) zufälliges Zusammenfügen (48) von m Zwischenroutinen für die Ausführung aus einer Gruppe von n gespeicherten Routinen (52) mit verschiedenen Zeitdauern, wobei m und n ganze Zahlen sind und n größer ist als m.
4. Verfahren nach Anspruch 3, bei dem der Schritt (e) den folgenden Schritt aufweist:
(f) zufälliges Zugreifen auf die m Zwischenroutinen (52) von einem sicheren Speicher (51).
5. Verfahren nach Anspruch 3, bei dem der Schritt (e) die folgenden Schritte aufweist:
(f) zufälliges Zugreifen auf Zeiger (58) für die m Zwischenroutinen (52) von einem sicheren Speicher (60) und
(g) Zugreifen auf die m Zwischenroutinen von einem Speicher (51) in Reaktion auf die Zeiger.
6. Verfahren nach Anspruch 2, bei dem der Schritt (d) den folgenden Schritt aufweist:
(e) Liefern und Ausführen eines Befehls während jeder Zwischenroutine (20, 21, 22, 52), der sich auf die Verzögerung für die entsprechende Zwischenroutine während eines verschiedenen Taktzyklus der verschiedenen Zwischenroutine auswirkt.
7. Verfahren nach Anspruch 6, das weiter die folgenden Schritte aufweist:
(f) Überwachen (26) von Unterroutinen der Zwischenroutinen vor und nach einer Unterroutine der Zwischenroutine, in der der Befehl über die Dauer der Verzögerung gegeben wird, um zu erfassen, ob ein Versuch zum Andern der Zwischenroutinen unternommen wurde, und
(g) Verhindern (38) der Ausführung der vorbestimmten Routine auf das Erfassen eines solchen Versuchs zum Ändern der Zwischenroutinen.
8. Verfahren nach Anspruch 2, das weiter die folgenden Schritte aufweist:
(e) Überwachen (26) der Zwischenroutinen zum Erfassen, ob auf die Zwischenroutinen eingewirkt wird, und
(f) Verhindern (38) der Ausführung der vorbestimmten Routine in Reaktion auf das Erfassen, daß auf die Zwischenroutinen eingewirkt wird.
9. Verfahren nach Anspruch 8, bei dem der Schritt (f) weiter die folgenden Schritte aufweist:
(g) Zählen (36) von Anlässen, bei denen ein Einwirken auf die Zwischenroutinen versucht wurde, und
(h) Verhindern (38) der Ausführung der vorbestimmten Routine in Reaktion darauf, daß die Zählung einen vorbestimmten Schwellenwert überschreitet.
10. Verfahren nach Anspruch 9, bei dem der Schritt (f) weiter den folgenden Schritt aufweist:
(i) Dekrementieren (39) der Zählung in Reaktion darauf, daß die Zwischenroutine ausgeführt wird, ohne daß ein Einwirken auf die Zwischenroutinen erfaßt wurde.
11. Verfahren nach Anspruch 8, bei dem die Schritte (c) und (e) in Reaktion auf Befehle gleicher Dauer ausgeführt werden.
12. Verfahren nach Anspruch 2, das weiter die folgenden Schritte aufweist:
(e) Überwachen (15) der vorbestimmten Datenverarbeitungsroutine (14) nach der Ausführung der vorbestimmten Routine zum Erfassen, ob ein Angreifer versucht, auf die vorbestimmte Routine zuzugreifen, indem er die Technik gebraucht, bei der ein solches Zugreifen zu einer Zeit versucht wird, die nach dem Auftreten eines von außen beobachtbaren Ereignisses einer Dauer beginnt, die zum Umfassen der größtmöglichen Gesamtdauer aller Zwischenroutinen und der Dauer der vorbestimmten Routine lang genug ist, und dann nach jedem aufeinanderfolgenden Zyklus der vorbestimmten Datenverarbeitungsroutine ein solcher Versuch um einen Taktzyklus früher unternommen wird, bis auf die vorbestimmten Routine (ROUTINE N) zugegriffen wird, und
(f) Verhindern (38) der Ausführung der vorbestimmten Routine auf das Entdecken des Versuchs.
13. Verfahren nach Anspruch 2, bei dem die Zwischenroutinen eine Datenverarbeitungsroutine aufweisen, die zum Ausführen der Makro-Datenverarbeitungsroutine unverzichtbar ist.
14. Verfahren nach Anspruch 1, bei dem der Schritt (b) den folgenden Schritt aufweist:
(c) zufälliges Verändern der Zeitdauer in Reaktion auf dynamisch verarbeitete Daten, die sich nicht zur gleichen Zeit im Verhältnis zum jeweiligen Auftreten des von außen beobachtbaren Ereignisses wiederholen.
15. Verfahren nach Anspruch 14, bei dem der Schritt (c) den folgenden Schritt aufweist:
(d) Ausführen einer unverzichtbaren Unterroutine der vorbestimmten Datenverarbeitungsroutine unter Verwendung der dynamisch verarbeiteten Daten, wobei die Zeitdauer der unverzichtbaren Unterroutine vom Inhalt der dynamisch verarbeiteten Daten abhängt.
16. Verfahren nach Anspruch 15, bei dem die unverzichtbare Unterroutine den folgenden Schritt aufweist:
(e) Übertragen der dynamisch verarbeiteten Daten von einer Quelle zu einem Ziel.
17. Verfahren nach Anspruch 1, bei dem der Schritt (b) den folgenden Schritt aufweist:
(c) zufälliges Verändern der Dauer in Reaktion auf eine Kombination dynamisch verarbeiteter Daten, die sich nicht zur gleichen Zeit im Verhältnis zum jeweiligen Auftreten des von außen beobachtbaren Ereignisses wiederholen, und in einem sicheren Speicher gespeicherter Daten.
18. Datenverarbeitungssystem mit
einer Einrichtung zum Ausführung einer Makro-Datenverarbeitungsroutine, die eine kleinere vorbestimmte Datenverarbeitungsroutine aufweist, bei der ein von außen beobachtbares Ereignis der Ausführung der vorbestimmten Routine vorausgeht;
einer Einrichtung zum Liefern eines Signals mit zufälligem Inhalt während jeder Makro-Datenverarbeitungsroutine, und
einer Einrichtung zum zufälligen Verändern der Dauer zwischen dem Auftreten des von außen beobachtbaren Ereignisses und der Ausführung der vorbestimmten Routine während jeder Marko-Datenverarbeitungsroutine in Reaktion auf das Signal mit zufälligem Inhalt, wodurch verhindert wird, daß die Ausführungszeit im Verhältnis zum Auftreten des von außen beobachtbaren Ereignisses bestimmt werden kann.
19. System nach Anspruch 18, bei dem die Einrichtung zum Verändern der Dauer die folgenden Elemente aufweist:
eine Einrichtung (10, 44, 48) zum Ausführen einer oder mehrerer Datenverarbeitungsroutinen (20, 21, 22, 52) zwischen dem Auftreten des von außen beobachtbaren Ereignisses -und der Ausführung der vorbestimmten Routine (14, 49), und
eine Einrichtung (10, 44) zum zufälligen Verändern der Dauer der Zwischenroutinen.
20. System nach Anspruch 19, bei dem die Einrichtung zum Verändern der Dauer folgendes aufweist:
Einrichtungen (44, 48) zum zufälligen Zusammenfügen von m Zwischenroutinen für die Ausführung aus einer Gruppe von n gespeicherten Routinen (52) mit verschiedenen Zeitdauern, wobei m und n ganze Zahlen sind und n größer ist als m.
21. System nach Anspruch 20, bei dem die Einrichtung zum Zusammenfügen folgendes aufweist:
eine Einrichtung zum zufälligen Zugreifen auf die m Zwischenroutinen (52) von einem sicheren Speicher (51).
22. System nach Anspruch 20, bei dem die Einrichtung zum Zusammenfügen folgendes aufweist:
Einrichtungen (44, 48) zum zufälligen Zugreifen auf Zeiger (58) für die m Zwischenroutinen (52) von einem sicheren Speicher (60) und
Einrichtungen (44, 48) zum Zugreifen auf die m Zwischenroutinen von einem Speicher (51) in Reaktion auf die Zeiger.
23. System nach Anspruch 19, bei dem die Einrichtung zum Verändern der Dauer folgendes aufweist:
Einrichtungen (18, 51) zum Liefern und Ausführen eines Befehls während jeder Zwischenroutine (20, 21, 22, 52), der sich auf die Verzögerung für die entsprechende Zwischenroutine während eines verschiedenen Taktzyklus der verschiedenen Zwischenroutine auswirkt.
24. System nach Anspruch 23, das weiter folgendes aufweist:
Einrichtungen (10, 26, 44) zum Überwachen von Unterroutinen der Zwischenroutinen vor und nach einer Unterroutine der Zwischenroutine, in der der Befehl über die Dauer der Verzögerung gegeben wird, um zu erfassen, ob ein Versuch zum Ändern der Zwischenroutinen unternommen wurde, und
Einrichtungen (10, 38, 44) zum Verhindern der Ausführung der vorbestimmten Routine auf das Erfassen eines solchen Versuchs zum Ändern der Zwischenroutinen.
25. System nach Anspruch 19, das weiter folgendes aufweist: Einrichtungen (10, 26, 44) zum Überwachen der Zwischenroutinen zum Erfassen, ob auf die Zwischenroutinen eingewirkt wird, und
Einrichtungen (10, 38, 44) zum Verhindern der Ausführung der vorbestimmten Routine in Reaktion auf das Erfassen, daß auf die Zwischenroutinen eingewirkt wird.
26. System nach Anspruch 25, bei dem die Einrichtung zum Verhindern folgendes aufweist:
Einrichtungen (10, 36, 44) zum Zählen (36) von Anlässen, bei denen ein Einwirken auf die Zwischenroutinen versucht wurde, und
Einrichtungen (10, 38, 44) zum Verhindern (38) der Ausführung der vorbestimmten Routine in Reaktion darauf, daß die Zählung einen vorbestimmten Schwellenwert überschreitet.
27. System nach Anspruch 26, bei dem die Einrichtung zum Verhindern weiter folgendes aufweist:
Einrichtungen (10, 39, 44) zum Dekrementieren der Zählung in Reaktion darauf, daß die Zwischenroutine ausgeführt wird, ohne daß ein Einwirken auf die Zwischenroutinen erfaßt wurde.
28. System nach Anspruch 25, bei dem die Einrichtung zum Ausführen (10, 44) und die Einrichtung zum Überwachen (10, 36, 44) auf Befehle gleicher Dauer ansprechen.
29. System nach Anspruch 19, das weiter folgendes aufweist:
Einrichtungen (10, 15, 44) zum Überwachen der vorbestimmten Datenverarbeitungsroutine (14) nach der Ausführung der vorbestimmten Routine zum Erfassen, ob ein Angreifer versucht, auf die vorbestimmte Routine zuzugreifen, indem er die Technik gebraucht, bei der ein solches Zugreifen zu einer Zeit versucht wird, die nach dem Auftreten eines von außen beobachtbaren Ereignisses einer Dauer beginnt, die zum Umfassen der größtmöglichen Gesamtdauer aller Zwischenroutinen und der Dauer der vorbestimmten Routine lang genug ist, und dann nach jedem aufeinanderfolgenden Zyklus der vorbestimmten Datenverarbeitungsroutine ein solcher Versuch um einen Taktzyklus früher unternommen wird, bis auf die vorbestimmten Routine (ROUTINE N) zugegriffen wird, und
Einrichtungen (10, 38, 44) zum Verhindern der Ausführung der vorbestimmten Routine auf das Entdecken des Versuchs.
30. System nach Anspruch 19, bei dem die Zwischenroutinen eine Datenverarbeitungsroutine aufweisen, die zur Ausführung der Makro-Datenverarbeitungsroutine unverzichtbar ist.
31. System nach Anspruch 18, bei dem die Einrichtung zum Verändern der Dauer folgendes aufweist:
Einrichtungen (10, 44) zum zufälligen Verändern der Zeitdauer in Reaktion auf dynamisch verarbeitete Daten, die sich nicht zur gleichen Zeit im Verhältnis zum jeweiligen Auftreten des von außen beobachtbaren Ereignisses wiederholen.
32. System nach Anspruch 31, bei dem die Einrichtung zum Verändern der Dauer folgendes aufweist:
Einrichtungen (10, 44) zum Ausführen einer unverzichtbaren Unterroutine der vorbestimmten Datenverarbeitungsroutine unter Verwendung der dynamisch verarbeiteten Daten, wobei die Zeitdauer der unverzichtbaren Unterroutine vom Inhalt der dynamisch verarbeiteten Daten abhängt.
33. System nach Anspruch 32, bei dem die Einrichtung zum Ausführen der unverzichtbaren Unterroutine folgendes aufweist:
Einrichtung (10, 44) zum Übertragen der dynamisch verarbeiteten Daten von einer Quelle zu einem Ziel.
34. System nach Anspruch 18, bei dem die Einrichtung zum Verändern der Dauer folgendes aufweist:
Einrichtungen (10, 44) zum zufälligen Verändern der Dauer in Reaktion auf eine Kombination dynamisch verarbeiteter Daten, die sich nicht zur gleichen Zeit im Verhältnis zum jeweiligen Auftreten des von außen beobachtbaren Ereignisses wiederholen, und in einem sicheren Speicher gespeicherter Daten.
DE69125881T 1990-03-20 1991-03-11 Verhinderung der Bestimmung der Ausführungszeit einer vorbestimmten Datenverarbeitungsroutine im Zusammenhang mit dem Auftreten eines zuvor beobachtbaren Ereignisses Expired - Fee Related DE69125881T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US49701290A 1990-03-20 1990-03-20

Publications (2)

Publication Number Publication Date
DE69125881D1 DE69125881D1 (de) 1997-06-05
DE69125881T2 true DE69125881T2 (de) 1997-08-14

Family

ID=23975105

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69125881T Expired - Fee Related DE69125881T2 (de) 1990-03-20 1991-03-11 Verhinderung der Bestimmung der Ausführungszeit einer vorbestimmten Datenverarbeitungsroutine im Zusammenhang mit dem Auftreten eines zuvor beobachtbaren Ereignisses

Country Status (11)

Country Link
EP (1) EP0448262B1 (de)
JP (1) JP3611867B2 (de)
KR (1) KR100216937B1 (de)
AT (1) ATE152530T1 (de)
AU (1) AU637677B2 (de)
CA (1) CA2037857C (de)
DE (1) DE69125881T2 (de)
DK (1) DK0448262T3 (de)
ES (1) ES2100207T3 (de)
GR (1) GR3023851T3 (de)
IE (1) IE74155B1 (de)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2745924B1 (fr) * 1996-03-07 1998-12-11 Bull Cp8 Circuit integre perfectionne et procede d'utilisation d'un tel circuit integre
FR2765361B1 (fr) * 1997-06-26 2001-09-21 Bull Cp8 Microprocesseur ou microcalculateur imprevisible
ES2660057T3 (es) * 1998-05-18 2018-03-20 Giesecke + Devrient Mobile Security Gmbh Soporte de almacenamiento de datos de acceso protegido
KR100672097B1 (ko) 1998-07-31 2007-01-19 코닌클리즈케 필립스 일렉트로닉스 엔.브이. 데이터 처리 장치 및 데이터 처리 장치용 회로
DE19837808A1 (de) * 1998-08-20 2000-02-24 Orga Kartensysteme Gmbh Verfahren zur Ausführung eines Verschlüsselungsprogramms zur Verschlüsselung von Daten in einem mikroprozessorgestützten, tragbaren Datenträger
FR2784763B1 (fr) * 1998-10-16 2001-10-19 Gemplus Card Int Composant electronique et procede pour masquer l'execution d'instructions ou la manipulation de donnees
JP2000165375A (ja) * 1998-11-30 2000-06-16 Hitachi Ltd 情報処理装置、icカード
US6408075B1 (en) 1998-11-30 2002-06-18 Hitachi, Ltd. Information processing equipment and IC card
JP4317607B2 (ja) 1998-12-14 2009-08-19 株式会社日立製作所 情報処理装置、耐タンパ処理装置
FR2787900B1 (fr) * 1998-12-28 2001-02-09 Bull Cp8 Circuit integre intelligent
FR2790347B1 (fr) * 1999-02-25 2001-10-05 St Microelectronics Sa Procede de securisation d'un enchainement d'operations realisees par un circuit electronique dans le cadre de l'execution d'un algorithme
JP2001118042A (ja) * 1999-10-19 2001-04-27 Hitachi Ltd カード監視方法
FR2849232B1 (fr) * 2002-12-24 2005-02-25 Trusted Logic Procede pour la securisation des systemes informatiques incorporant un module d'interpretation de code
US20040162993A1 (en) * 2003-02-13 2004-08-19 Yannick Teglia Antifraud method of an algorithm executed by an integrated circuit
DE10307797B4 (de) * 2003-02-24 2010-11-11 Infineon Technologies Ag Vorrichtung und Verfahren zum Ermitteln einer Unregelmäßigkeit in einem Ablauf eines Nutzprogramms
IL171963A0 (en) 2005-11-14 2006-04-10 Nds Ltd Secure read-write storage device
WO2017183099A1 (ja) 2016-04-19 2017-10-26 三菱電機株式会社 中継装置
FR3075430B1 (fr) * 2017-12-20 2020-08-07 Oberthur Technologies Procede de traitement de donnees et dispositif electronique associe

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4494114B1 (en) * 1983-12-05 1996-10-15 Int Electronic Tech Security arrangement for and method of rendering microprocessor-controlled electronic equipment inoperative after occurrence of disabling event
JPS60207957A (ja) * 1984-03-31 1985-10-19 Toshiba Corp デ−タ保護方式

Also Published As

Publication number Publication date
EP0448262A3 (en) 1992-09-30
EP0448262B1 (de) 1997-05-02
AU637677B2 (en) 1993-06-03
CA2037857C (en) 2001-01-16
DE69125881D1 (de) 1997-06-05
CA2037857A1 (en) 1991-09-21
JP3611867B2 (ja) 2005-01-19
IE74155B1 (en) 1997-07-02
KR910017304A (ko) 1991-11-05
ES2100207T3 (es) 1997-06-16
JPH04223530A (ja) 1992-08-13
EP0448262A2 (de) 1991-09-25
KR100216937B1 (ko) 1999-09-01
IE910851A1 (en) 1991-09-25
DK0448262T3 (da) 1997-10-27
ATE152530T1 (de) 1997-05-15
AU7291591A (en) 1991-09-26
GR3023851T3 (en) 1997-09-30

Similar Documents

Publication Publication Date Title
DE69125881T2 (de) Verhinderung der Bestimmung der Ausführungszeit einer vorbestimmten Datenverarbeitungsroutine im Zusammenhang mit dem Auftreten eines zuvor beobachtbaren Ereignisses
DE60001393T2 (de) Verfahren zur überwachung des programmablaufs
DE69717028T2 (de) Verbesserte integrierte schaltung und verfahren zur verwendung dieser schaltung
DE2615861C3 (de) Schaltungsanordnung zur Prüfung von Programmen
DE4302495C2 (de) Einrichtung und Verfahren zum Bestimmen der Länge eines Befehls in einem sequentiellen Befehlsstrom
DE2946081A1 (de) Anordnung zur ueberwachung der funktion eines programmierbaren elektronischen schaltkreises
EP0155399A2 (de) Schutzanordnung zur Verhinderung der unerlaubten Ausführung eines Programms
DE2801518A1 (de) Datenverarbeitungssystem mit speicher-schutzeinrichtung
DE69114328T2 (de) Überwachung von Mikroprozessoren.
EP1262856B1 (de) Programmgesteuerte Einheit
DE69501035T2 (de) Verfahren zur Erhöhung der Sicherheit eines integrierten Schaltkreises
DE69130750T2 (de) Mikrokomputer, der ROM-Datenschutzfunktion hat
DE69701806T2 (de) Verfahren zur leistungsregelung eines anwenderprogramms in einem digitalrechner
DE3700800C2 (de) Einrichtung zur Erzeugung eines Unterbrechungspunktes in einem Mikroprozessor
DE2246863C3 (de) Einrichtung zur Protokollierung des Programmablaufs in einer Datenverarbeitungsanlage
DE19626972A1 (de) Verfahren und Vorrichtung zur vorläufigen Freigabe für die Anwendung eines von einer elektronischen Kassette geschützten Programms
DE60105550T2 (de) Verfahren zum schutz gegen den diebstahl eines geheimkodes auf einer chipkarte fur mehrfachanwendungen, und chipkarten zur durchführung dieses verfahrens
DE69022773T2 (de) Datenverarbeitungsgerät.
DE10248488A1 (de) Fehlzündungserfassungsvorrichtung für einen Verbrennungsmotor
DE2943903A1 (de) Rechnersystem
DE602004001293T2 (de) Programmintegritätsprüfung mittels Statistiken
DE69804733T2 (de) Zeitintervallgeber mit Zeitzähler, Register und Koinzidenzdetektorschaltung sowie Verfahren zur Steuerung eines Schaltungsausgangs unter Einsatz eines derartigen Zeitintervallgebers
DE2756033A1 (de) Verfahren und einrichtung zur diagnose von stoerungen von rechenmaschinen
DE19548903A1 (de) Verfahren zur Durchführung eines Geheimcodevergleiches bei einem mikroprozessorgestützten tragbaren Datenträger
DE1958747C3 (de) Einrichtung zur mikroprogrammgesteuerten Fehlerprüfung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee