WO2004070496A2 - Schaltung mit schutz vor manipulativen angriffen und verfahren - Google Patents

Schaltung mit schutz vor manipulativen angriffen und verfahren Download PDF

Info

Publication number
WO2004070496A2
WO2004070496A2 PCT/EP2004/000519 EP2004000519W WO2004070496A2 WO 2004070496 A2 WO2004070496 A2 WO 2004070496A2 EP 2004000519 W EP2004000519 W EP 2004000519W WO 2004070496 A2 WO2004070496 A2 WO 2004070496A2
Authority
WO
WIPO (PCT)
Prior art keywords
operation unit
state
register
circuit
unit
Prior art date
Application number
PCT/EP2004/000519
Other languages
English (en)
French (fr)
Other versions
WO2004070496A3 (de
Inventor
Jörg SCHEPERS
Original Assignee
Infineon Technologies Ag
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 Infineon Technologies Ag filed Critical Infineon Technologies Ag
Publication of WO2004070496A2 publication Critical patent/WO2004070496A2/de
Publication of WO2004070496A3 publication Critical patent/WO2004070496A3/de

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • 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
    • 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/77Protecting 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 in smart cards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms

Definitions

  • the present invention relates to the protection of circuits such as e.g. in chip cards, against manipulative attacks, e.g. DFA (differential fault analysis) attacks or attacks with the aim of disrupting the proper program flow of the circuit in order to circumvent safety queries or the like.
  • manipulative attacks e.g. DFA (differential fault analysis) attacks or attacks with the aim of disrupting the proper program flow of the circuit in order to circumvent safety queries or the like.
  • the correct operation of a microcontroller can be influenced by a large number of external faults.
  • external disturbances include charging the microcontroller with current pulses, exposing the microcontroller to light pulses, electromagnetic radiation or temperature changes or the like.
  • the influencing or manipulation of the microcontroller can result in the program execution being interrupted or disturbed in such a way that the programmed control flow of the program is bypassed, for example in order to avoid security queries or to modify control parameters.
  • the aim of such manipulations can also be to provoke the microcontroller or coprocessors thereof to malfunction, so that the same outputs an erroneous result. Based on such a faulty result, conclusions can be drawn, for example, about a secret key or other security-relevant data in accordance with a DFA attack.
  • sensors are provided that are sensitive to the physical influences, such as current pulses, light pulses or the like (see above). and then trigger a safety alarm. This procedure is disadvantageous in that it is sometimes very difficult to reliably record the influences.
  • the existing sensors define a final set of recognizable manipulations, which do not necessarily have to encompass all possible types of manipulation.
  • Another strategy is to recognize the faulty functioning of the circuit itself. For example, by calculating a function twice, such as a modulo calculation within the framework of an RSA algorithm, possible one after the other, by comparing the results of the two times and determining whether the results are identical, to conclude that the manipulation occurred, assuming that the manipulation was not deterministic, but rather leads to a random result. A comparison of the two results therefore allows the conclusion that there is no manipulation of the circuit and that the functional result is correct. Procedures of this type are disadvantageous because they double the execution time and the energy consumption due to the double execution of the function, which is particularly disadvantageous in particular in battery-free applications and in the area of contactless chip cards.
  • the object of the present invention is to provide a circuit and a method for controlling the same, so that the security of the circuit against manipulative attacks can be increased.
  • a circuit according to the invention comprises a first operation unit for performing an operation, the first operation unit changing its state in a first way when the operation is carried out, a second operation unit for performing the operation, the second operation unit changing its state in a second way when performing the operation changed, which differs from the first way, a monitoring device for examining the state of the first operation unit and the state of the second operation unit and for signaling an alarm if the state of the first operation unit and the state of the second operation unit are not in a predetermined relationship , and means for taking action in response to signaling the alarm.
  • the main idea of the present invention is that manipulative attacks can be detected more effectively or with a higher probability if circuit parts or operational units of a circuit are not simply duplicated, but that redundant circuit parts or operational units that carry out the same operation are subordinated to the same. but change their (result) state in a different way when performing the operation. By examining the states of both operating units, it is then possible to determine whether the two
  • the procedure according to the invention takes into account the fact that manipulative disturbances generally cause the modification of register contents or states of such operational units in a preferred direction, such as, for example, all bits of a register to state 0 or all Bits of a register on state 1. Due to the fact that both operating units change their state in different ways when the operation is carried out, the modifications or faults also have different effects and the manipulation can be recognized when the two states are compared.
  • the program counter of the processor that is to say the unit which manages the register which contains the next instruction address to be executed for the processor, by one to add another program counter, which in its additional register always contains a representation of the next instruction address to be executed in a bitwise inverted representation in the event of no manipulation.
  • the program counter update device and additional register update device of the two program counters work complementarily to one another, ie when a new address is loaded, as is the case, for example, in the case of a program jump, the program counter update device loads the new address into the program counter register, while the additional register with the inverted one new address is loaded.
  • the additional register update device decrements the register content of the additional register.
  • the bit values of the register contents of both registers always remain in such a relationship to each other that the register content of the additional register is an inverted representation of the program counter value in the program counter register. Elimination of this relationship indicates a manipulative attack, which, if successful, could lead to a disruption of the program control flow or a skipping of the processor, such as a CPU, and thus to the avoidance of certain security queries or the like.
  • Fig. 1 is a schematic block diagram of a circuit according to an embodiment of the present invention, in which in addition to the program counter
  • FIG. 2 is a schematic block diagram, which shows a realization of the program counter and the inverted program counter of the circuit of FIG. 1 in more detail according to an embodiment of the present invention.
  • FIG. 1 shows a CPU or central processing unit 10 which executes a program 14 stored in a memory 12.
  • the CPU 10 has an instruction decoder 16, a program counter 18, an additional register 20, a monitoring device 22, a measure device 24 and further functional units, which are generally provided with the reference symbol 26.
  • the arrangement shown in FIG. 1 is, for example, a controller of a chip card that is provided for secure communication with a terminal, such as an automated teller machine.
  • the program 14 is then, for example, a terminal application with subroutines for executing special ones
  • Operations during a transaction with the terminal such as the debiting / debiting of an amount of money on a credit stored on the chip card, the verification of a PIN (personal identification number) that a user has entered at the terminal, the verification of the authentication of the terminal or communication partner or the like.
  • PIN personal identification number
  • the command decoder 16 is connected to the memory 12 in order to receive the next command to be executed or the next instruction to be executed from the program 14.
  • the instructions to be executed can consist of several bytes and can be composed, for example, of operation code on the one hand and operands on the other hand, such as from jump instruction code and assigned jump address.
  • the instruction decoder 16 decodes the incoming instruction and instructs corresponding functional units 26 to execute the instruction.
  • the instructions in the program code 14 have a different number of bytes in accordance with their type of instruction or their repair code, which corresponds to one or one from an instruction set of the CPU.
  • the program counter value thus always points to the next instruction to be processed in the program code 14 between two successive instruction cycles of the CPU 10.
  • the program counter is used in the subsequent instruction cycle - value in the program counter 18, the memory 12 is read in order to read out the next instruction to be processed in the instruction decoder 16, in order to thus start the next execution phase.
  • the value of the program counter 18 is not output to the memory 12 without prior checking by the monitoring device 22 in order to use it to access the next instruction to be executed.
  • an inverted program counter 20 with an additional register (not shown in FIG. 1) is provided in the CPU 10.
  • the inverted program counter 20 contains in the additional register a redundant, inverted representation of the program counter value as it is stored in the register of the program counter 18.
  • the inverted representation can be a one's complement or a two's complement of the non-inverted representation.
  • the inverted program counter 20 is connected to the instruction decoder 16 to receive signals from the same regarding the update of the program counter value.
  • the outputs of the program counter 18 and of the inverted program counter 20 are connected to the monitoring device 22.
  • the monitoring device 22 can decide on the basis of a bit-wise comparison of the two values and checking whether the bits thereof are always different or complementary to one another, whether there is an external influence or a manipulative attack on the CPU 10 or not. If the program counter values in the program counter 18 and the value in the inverted program counter 20 are inverse to one another bit by bit, the monitoring device 22 passes on the program counter value of the program counter 18 to the memory 12. Otherwise, the monitoring device 22 signals the measure device 24 that the latter should take suitable measures to eliminate security risks that would result from a disturbance in the program control flow defined by the program 14.
  • the measure device 24 ensures, for example, that any further program execution of the current program is prevented, or in any case no output of a result, such as results after the execution of the program 14, is carried out, for example by switching off the CPU, Terminate the execution of the program 14 and continue with a basic state or a basic routine or the like.
  • the measure device is designed to cause an interrupt jump to an interrupt routine and / or to set an alarm bit that can be queried by an operating system.
  • FIG. 2 shows the program counter 18 and the additional inverted program counter 20 with dashed boxes. Both include a register 18a and an additional register 20a.
  • the program counter value which contains the next instruction address to be executed or the program counter value in normal binary representation is stored in the register 18a.
  • the inverted representation of the next instruction address to be executed is stored in register 20a.
  • Both program counter 18 and inverted program counter 20 have a change device 18b or 20b.
  • the change device 18b consequently acts as an incrementer.
  • the changer 20b contains the same increment signal from the instruction decoder 16, but acts as a decrementer 20b to decrement the value stored in the register 20a upon the increment signal.
  • both the program counter 18 and the inverted program counter 20 have an input 18c or 20c which is connected to the instruction decoder 16 in order to obtain a new value in the event of a jump instruction, to which the register content of the register is assigned 18b or 20a should be set.
  • the input 20c is not with the register 20a connected that the new value to be entered at input 20c is transferred directly to register 20a. Rather, an inverter 20d is connected between input 20c and register 20a, which inverts the value to be entered into register 20a bit by bit before it is entered.
  • instruction decoder 16 when instruction decoder 16 outputs a branch address to program counter 18, the branch address is received at program counter 18 at input 18c and entered directly into register 18a, while with inverted program counter 20, the branch address after receipt at that
  • Input 20c is first inverted and only then is entered in register 20a.
  • incrementer 18b decrementer 20b and inverter 20d consequently ensures that, during the entire operation of CPU 10, the register content of register 20a always reflects the inverted representation of the program counter value in register 18a, both in the case of linear program execution without Jumps and in the case of program jumps.
  • the outputs of the registers 18a and 20a are connected to the monitoring device 22, which can thus conclude a manipulative attack on the basis of a disturbance of this inverse relationship between the program counter value in the register 18a and an inverted representation in the register 20a.
  • External interference or influences from the monitoring device or test circuit 22 have been exemplary embodiments recorded at the beginning of each instruction cycle by checking whether the representations in the registers 18a and 20a are consistent or bitwise inverse to one another, in order to trigger an alarm if this was not the case.
  • the advantages of the circuit shown in FIGS. 1 and 2 are that it is easy to implement, does not take up a lot of space and can be well hidden in a design. It also provides protection against a variety of attacks, while reducing their effectiveness, i.e. the deviation of the functioning of the circuit from the nominal functioning, and not the trigger itself, i.e. the external physical influences of the circuit, which is often much more difficult.
  • the circuit of FIGS. 1 and 2 has the advantage that it is effective in the case of a larger number of attacks, namely also in those in which the disturbances generally involve the modification of register contents cause in a preferred direction, namely all bits in a logic low or a logic high state, because in such a case the relationship between the representation, inverted to non-inverted, would be lost.
  • FIGS. 1 and 2 related to the addition of an inverted program counter to a program counter, the change device for changing the register content in the inverted program counter being correspondingly redesigned compared to the change device in the program counter.
  • an operation unit for handling a program status bit such as a carry bit or a bit for access rights in a processor, could be supplemented by an operation unit that has a register that has an entry that is inverse to the program status bit register and that also has a change device , which always changes the register content exactly inversely, namely from 0 to 1 when the program status bit is changed from 1 to 0, and vice versa.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Storage Device Security (AREA)
  • Electrotherapy Devices (AREA)

Abstract

Eine erfindungsgemässe Schaltung umfasst eine erste Operationseinheit (18) zum Durchführen einer Operation, wobei die erste Operationseinheit bei Durchführung der Operation ihren Zustand auf eine erste Weise verändert, eine zweite Operationseinheit (20) zum Durchführen der Operation, wobei die zweite Operationseinheit bei Durchführung der Operation ihren Zustand auf eine zweite Weise verändert, die sich von der ersten Weise unterscheidet, eine Überwachungseinrichtung (22) zum Untersuchen des Zustands der ersten Operationseinheit (18) und des Zustands der zweiten Operationseinheit (20) und zum Signalisieren eines Alarms, wenn der Zustand der ersten Operationseinheit und der Zustand der zweiten Operationseinheit nicht in einer vorbestimmten Beziehung zueinander stehen, und eine Einrichtung (24) zum Ergreifen einer Massnahme ansprechend auf eine Signalisierung des Alarms hin. Die Verbesserung besteht darin, dass manipulative Angriffe effektiver oder mit höherer Wahrscheinlichkeit erfasst werden können.

Description

Beschreibung
Schaltung mit Schutz vor manipulativen Angriffen und Verfahren
Die vorliegende Erfindung bezieht sich auf den Schutz von Schaltungen, wie z.B. in Chipkarten, vor manipulativen Angriffen, wie z.B. DFA- (Differential Fault Analysis = Diffe- rentielle Fehleranalyse) Angriffen oder Angriffen mit dem Ziel, den ordnungsgemäßen Programmfluss der Schaltung zu stören, um Sicherheitsabfragen oder dergleichen zu umgehen.
Der ordnungsgemäße Betrieb eines MikroControllers kann durch eine Vielzahl externer Störungen beeinflusst werden. Beispie- le externer Störungen umfassen das Beschicken des Mikrocont- rollers mit Strompulsen, das Aussetzen des Mikrocontrollers gegenüber Lichtpulsen, elektromagnetischer Einstrahlung oder Temperaturänderungen oder dergleichen. Die Beeinflussung oder Manipulation des Mikrocontrollers kann dazu führen, dass die Programmausführung unterbrochen oder dahingehend gestört wird, dass der programmierte Kontrollfluss des Programms umgangen wird, um beispielsweise Sicherheitsabfragen zu umgehen oder Kontrollparameter zu modi izieren. Ziel solcher Manipulationen kann neben der Umgehung des programmierten Kontrollflusses auch darin bestehen, den Mikrocontroller oder Coprozessoren desselben zu einem fehlerhaften Betrieb zu provozieren, so dass derselbe ein fehlerhaftes Ergebnis ausgibt. Basierend auf einem solchen fehlerhaften Ergebnis können gemäß einem DFA-Angriff Rückschlüsse auf beispielswei- se einen geheimen Schlüssel oder andere sicherheitsrelevante Daten gezogen werden.
Heutzutage werden derartige externe Störungen zumeist über die Detektion bzw. Erfassen des auslösenden Effekts bzw. der externen Beeinflussung erkannt. Hierzu werden Sensoren vorgesehen, die sensitiv auf die physischen Beeinflussungen, wie Stromimpulse, Lichtpulse oder ähnliches (siehe oben) , reagie- ren und daraufhin einen Sicherheitsalarm auslösen. Diese Vorgehensweise ist darin nachteilhaft, dass es teilweise recht schwierig ist, die Erfassung der Beeinflussungen zuverlässig durchzuführen. Zudem definieren die vorhandenen Senso- ren eine abschließende Menge von erkennbaren Manipulationen, die nicht unbedingt alle möglichen Arten von Manipulationen umfassen muss.
Eine andere Strategie sieht vor, die fehlerhafte Funktions- weise der Schaltung an sich zu erkennen. So ist es beispielsweise durch zweimaliges Berechnen einer Funktion, wie z.B. einer Modulo-Berechnung im Rahmen eines RSA-Algorithmus, hintereinander möglich, durch Vergleich der sich bei den beiden Malen ergebenden Ergebnissen und Feststellen, ob die Ergebnisse identisch sind, auf eine Manipulation rückzuschließen, indem angenommen wird, dass eine Manipulation zu keinen deterministischen, sondern einem zufälligen Ergebnis führt. Ein Vergleich der beiden Ergebnisse lässt somit mit einer hohen Wahrscheinlichkeit für dessen Richtigkeit den Schluss zu, dass keine Manipulation der Schaltung vorliegt und das Funktionsergebnis richtig ist. Vorgehensweisen dieser Art sind nachteilhaft, da sie aufgrund der doppelten Durchführung der Funktion die Ausführungszeit und den Energieverbrauch verdoppeln, was insbesondere bei batterielosen Anwendungen und im Bereich von Kontaktloschipkarten von besonderem Nachteil ist.
Der Nachteil der längeren Verarbeitungszeit ließe sich durch Verdopplung der entsprechenden die Funktion durchführenden Einheiten ausräumen. Das Ergebnis solcher auf die gleiche Weise arbeitenden Funktionseinheiten könnte miteinander verglichen werden, um bei Identität das Fehlen manipulativer Angriffe anzunehmen. Der Nachteil des doppelten Energieverbrauchs bleibt jedoch erhalten und die hohe Geschwindig- keit wird mit einer verdoppelten Chipfläche erkauft, was insbesondere bei Massenprodukten, wie Chipkarten, zu enormen Kostennachteilen führt. Demgegenüber besteht die Aufgabe der vorliegenden Erfindung darin, eine Schaltung und ein Verfahren zur Steuerung derselben zu schaffen, so dass die Sicherheit der Schaltung vor manipulativen Angriffen erhöht werden kann.
Diese Aufgabe wird durch eine Schaltung gemäß Anspruch 1 und ein Verfahren gemäß Anspruch 10 gelöst.
Eine erfindungsgemäße Schaltung umfasst eine erste Operationseinheit zum Durchführen einer Operation, wobei die erste Operationseinheit bei Durchführung der Operation ihren Zustand auf eine erste Weise verändert, eine zweite Operationseinheit zum Durchführen der Operation, wobei die zweite Operationseinheit bei Durchführung der Operation ihren Zustand auf eine zweite Weise verändert, die sich von der ersten Weise unterscheidet, eine Überwachungseinrichtung zum Untersuchen des Zustands der ersten Operationseinheit und des Zustands der zweiten Operationseinheit und zum Signalisieren eines Alarms, wenn der Zustand der ersten Operationseinheit und der Zustand der zweiten Operationseinheit nicht in einer vorbestimmten Beziehung zueinander stehen, und eine Einrichtung zum Ergreifen einer Maßnahme ansprechend auf eine Signalisierung des Alarms hin.
Der Kerngedanke der vorliegenden Erfindung besteht darin, dass manipulative Angriffe effektiver oder mit höherer Wahrscheinlichkeit erfasst werden können, wenn Schaltungsteile bzw. Operationseinheiten einer Schaltung nicht einfach ver- doppelt werden, sondern dass denselben redundante Schaltungsteile bzw. Operationseinheiten nebengeordnet werden, die dieselbe Operation durchführen, aber bei Durchführung der Operation ihren (Ergebnis-) Zustand auf eine andere Weise ändern. Durch Untersuchung der Zustände beider Operationsein- heiten ist es dann möglich, festzustellen, ob die beiden
Zustände in einer vorbestimmten Beziehung zueinander stehen, und, falls dies nicht der Fall ist, hieraus auf einen manipu- lativen Angriff zu schließen. Im Vergleich zur reinen Verdopplung von Schaltungsteilen bzw. Operationseinheiten trägt die erfindungsgemäße Vorgehensweise dem Umstand Rechnung, dass manipulative Störungen im allgemeinen die Modifikation von Registerinhalten bzw. Zuständen von solchen Operationseinheiten in eine Vorzugsrichtung bewirken, wie z.B. alle Bits eines Registers auf den Zustand 0 oder alle Bits eines Registers auf den Zustand 1. Aufgrund der Tatsache, dass beide Operationseinheiten bei Durchführung der Operation ihren Zustand auf verschiedene Weise ändern, wirken sich somit auch die Modifikationen bzw. Störungen in verschiedener Weise aus und lassen beim Vergleich der beiden Zustände die Manipulation erkennen.
Gemäß einem speziellen Ausführungsbeispiel der vorliegenden Erfindung ist es zum Schutz gegen die Manipulation des Programmkontrollflusses in einem Prozessor vorgesehen, dem Programmzähler des Prozessors, also der Einheit, die das Register, welches die nächste auszuführende Instruktionsad- resse für den Prozessor enthält, verwaltet, um einen weiteren Programmzähler zu ergänzen, welcher in seinem Zusatzregister in dem Fall keiner Manipulation stets eine Darstellung der nächsten auszuführenden Instruktionsadresse in einer bitweise invertierten Darstellung enthält. Progra mzähleraktualisie- rungseinrichtung und Zusatzregisteraktualisierungseinrichtung der beiden Programmzähler arbeiten komplementär zueinander, d.h. beim Laden einer neuen Adresse, wie es beispielsweise bei einem Programmsprung der Fall ist, lädt die Programmzäh- leraktualisierungseinrichtung die neue Adresse in das Pro- grammzählerregister, während das Zusatzregister mit der invertierten neuen Adresse geladen wird. Auf ähnliche Weise dekrementiert die Zusatzregisteraktualisierungseinrichtung den Registerinhalt des Zusatzregisters, wenn der Programmzählerwert durch die Programmzähleraktualisierungseinrichtung inkrementiert wird. Auf diese Weise bleiben, keine Manipulation der Schaltung vorausgesetzt, die Bitwerte der Registerinhalte beider Register immer in einer derartigen Beziehung zueinander, dass der Registerinhalt des Zusatzregisters eine invertierte Darstellung des Programmzählerwerts in dem Programmzählerregister ist. Ein Wegfall dieser Beziehung deutet auf einen manipulativen Angriff hin, der bei Erfolg zu einer Störung des Programmkontrollflusses bzw. einem Verspringen des Prozessors, wie z.B. einer CPU, führen könnte, und damit zur Umgehung bestimmter Sicherheitsabfragen oder ähnliches.
Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf die beiliegenden Zeichnungen näher erläutert. Es zeigen:
Fig. 1 ein schematisches Blockdiagramm einer Schaltung gemäß einem Ausführungsbeispiel der vorliegenden Erfindung, bei dem neben dem Programmzähler einer
CPU ein weiterer Programmzähler mit invertierter Darstellung vorgesehen ist; und
Fig. 2 ein schematisches Blockdiagramm, das eine Realisie- rung des Programmzählers und des invertierten Programmzählers der Schaltung von Fig. 1 gemäß einem Ausführungsbeispiel der vorliegenden Erfindung detaillierter darstellt.
Zunächst wird darauf hingewiesen, dass gleiche Elemente in den Fig. 1 und 2 mit gleichen Bezugszeichen versehen sind und dass eine wiederholte Beschreibung der Elemente weggelassen wird.
Fig. 1 zeigt eine CPU bzw. zentrale Verarbeitungseinheit 10, die ein in einem Speicher 12 gespeichertes Programm 14 ausführt. Die CPU 10 weist einen Befehlsdecodierer 16, einen Programmzähler 18, ein Zusatzregister 20, eine Überwachungseinrichtung 22, eine Maßnahmeeinrichtung 24 und weitere Funktionseinheiten, die allgemein mit dem Bezugszeichen 26 versehen sind, auf. Die in Fig. 1 gezeigte Anordnung ist beispielsweise ein Controller einer Chipkarte, die zur sicheren Kommunikation mit einem Terminal, wie z.B. einem Bankautomaten, vorgesehen ist. Das Programm 14 ist dann beispielsweise eine Terminalap- plikation mit Unterprogrammen zur Durchführung spezieller
Vorgänge während einer Transaktion mit dem Terminal, wie z.B. der Auf/Abbuchung eines Geldbetrages auf ein auf der Chipkarte gespeichertes Guthaben, der Überprüfung einer PIN (persönlichen Identifikationsnummer) , die ein Benutzer am Terminal eingegeben hat, der Überprüfung der Authentifikation des Terminals bzw. Kommunikationspartners oder dergleichen.
Der Befehlsdecodierer 16 ist mit dem Speicher 12 verbunden, um den nächsten auszuführenden Befehl bzw. die nächste auszu- führende Instruktion aus dem Programm 14 zu erhalten. Die auszuführenden Instruktionen können aus mehreren Bytes bestehen und beispielsweise aus Operationscode einerseits und Operanden andererseits zusammengesetzt sein, wie z.B. aus Sprungbefehlscode und zugeordneter Sprungadresse. Der Be- fehlsdecodierer 16 decodiert die ankommende Instruktion und weist entsprechende Funktionseinheiten 26 an, die Instruktion auszuführen.
Die Instruktionen in dem Programmcode 14 weisen ihrer Be- fehlsart bzw. ihrem Reparationscode entsprechend, die bzw. der einer bzw. einem aus einem Befehlssatz der CPU entspricht, eine unterschiedliche Anzahl von Bytes auf. Der Befehlsdecodierer 16 signalisiert dem Programmzähler 18 (program counter = PC) , einen in dem selben gespeicherten und von demselben verwalteten Programmzählerwert um einen dieser Anzahl entsprechenden Wert zu inkrementieren. Der Programmzählerwert zeigt somit zwischen zwei aufeinanderfolgenden Befehlszyklen der CPU 10 immer auf die nächste zu verarbeitende Instruktion in dem Programmcode 14. Sobald also in einer Ausführungsphase bzw. einem Befehlszyklus der CPU 10 eine Instruktion ausgeführt worden ist, wird in dem darauffolgenden Befehlszyklus unter Verwendung des Programmzähler- werts in dem Programmzähler 18 auf den Speicher 12 zugegriffen, um die nächste zu verarbeitende Instruktion in den Befehlsdecodierer 16 auszulesen, um somit die nächste Ausführungsphase zu beginnen.
Um jedoch zu verhindern, dass durch externe Beeinflussungen, wie z.B. durch Strompulse, Lichtpulse, elektromagnetische Einstrahlung, Temperaturänderung oder dergleichen, mit einem manipulierten Programmzählerwert in dem Programmzähler 18 weitergearbeitet wird, und somit eventuell Programmteile des Programms 14 übersprungen werden, wie z.B. Sicherheitsabfragen, PIN-Abfragen oder dergleichen, wird der Wert des Programmzählers 18 nicht ohne eine vorherige Überprüfung durch die Überwachungseinrichtung 22 an den Speicher 12 ausgegeben, um mit demselben auf die nächsten auszuführende Instruktion zuzugreifen.
Um eine Manipulation des Programmzählerwerts in dem Programmzähler 18 erkennbar zu machen, ist in der CPU 10 ein inver- tierter Programmzähler 20 mit einem Zusatzregister (in Fig. 1 nicht gezeigt) vorgesehen. Der invertierte Programmzähler 20 enthält in dem Zusatzregister eine redundante, invertierte Darstellung des Programmzählerwerts, wie er in dem Register des Programmzählers 18 gespeichert ist. Die invertierte Darstellung kann ein Einer omplement oder ein Zweierkomplement der nicht invertierten Darstellung sein.
Ebenso wie der Programmzähler 18 ist der invertierte Programmzähler 20 mit dem Befehlsdecodierer 16 verbunden, um von demselben Signale bezüglich der Aktualisierung des Programmzählerwerts zu erhalten. Die Ausgänge des Programmzählers 18 sowie des invertierten Programmzählers 20 sind mit der Überwachungseinrichtung 22 verbunden.
Da bei Nichtvorliegen einer Manipulation Programmzählerwert im Programmzähler 18 und der Bitwert in dem invertierten Programmzähler 20 bitweise zueinander invertiert sein soll- ten, kann die Überwachungseinrichtung 22 auf der Grundlage eines bitweisen Vergleichs der beiden Werte und Überprüfung, ob die Bits derselben immer unterschiedlich bzw. komplementär zueinander sind, entscheiden, ob eine äußere Beeinflussung bzw. ein manipulativer Angriff auf die CPU 10 vorliegt oder nicht. Sind die Programmzählerwerte im Programmzähler 18 und der Wert in dem invertierten Programmzähler 20 zueinander bitweise invers, gibt die Überwachungseinrichtung 22 den Programmzählerwert des Programmzählers 18 an den Speicher 12 weiter. Andernfalls signalisiert die Überwachungseinrichtung 22 der Maßnahmeeinrichtung 24, dass dieselbe geeignete Maßnahmen treffen soll, um Sicherheitsrisiken auszuschalten, die sich durch Störung des durch das Programm 14 festgelegten Programmkontrollflusses ergäben.
Die Maßnahmeeinrichtung 24 sorgt auf das Alarmsignal der Überwachungseinrichtung 22 hin beispielsweise dafür, dass jedwede weitere Programmausführung des laufenden Programms unterbunden wird, oder jedenfalls jegliche Ausgabe eines Ergebnisses, wie es sich nach der Ausführung des Programms 14 ergibt, unterbleibt, beispielsweise durch Ausschalten der CPU, Beenden der Abarbeitung des Programms 14 und Fortsetzen bei einem Grundzustand oder einer Grundroutine dergleichen.
Alternativ oder zusätzlich ist die Maßnahmeeinrichtung ausgebildet, um einen Interrupt-Sprung zu einer Interrupt-Routine zu bewirken und/oder ein durch ein Betriebssystem abfragbares Alarmbit zu setzen.
Nachdem im vorhergehenden Bezug nehmend auf Fig. 1 der Aufbau der CPU 10 und die generelle Funktionsweise derselben im Zusammenhang mit dem Programmzähler 18 sowie der Zweck des zusätzlich vorgesehenen invertierten Programmzählers 20 beschrieben worden ist, wird im folgenden der genaue Aufbau des Programmzählers 18 und des zusätzlich vorgesehenen invertierten Programmzählers 20 beschrieben. Fig. 2 zeigt mit gestrichelten Kästchen den Programmzähler 18 und den zusätzlichen invertierten Programmzähler 20. Beide umfassen ein Register 18a bzw. ein Zusatzregister 20a. In dem Register 18a ist der Programmzählerwert gespeichert, der die nächste auszuführende Instruktionsadresse bzw. den Programmzählerwert in normaler binärer Darstellung enthält. In dem Register 20a ist die invertierte Darstellung der nächsten auszuführenden Instruktionsadresse gespeichert.
Sowohl Programmzähler 18 als auch invertierter Programmzähler 20 weisen eine Veränderungseinrichtung 18b bzw. 20b auf. Die Veränderungseinrichtung 18b des Programmzählers 18 inkremen¬ tiert auf ein Inkrementsignal von dem Befehlsdecodierer 16 hin den in dem Register 18a enthaltenen Programmzählerwert. Die Veränderungseinrichtung 18b fungiert folglich als Inkre- mentierer. Auf ähnliche Weise enthält die Veränderungseinrichtung 20b dasselbe Inkrementsignal von dem Befehlsdecodierer 16, fungiert jedoch als Dekrementierer 20b, um auf das Inkrementsignal hin den in dem Register 20a gespeicherten Wert zu dekrementieren. Auf diese Weise ist gewährleistet, dass auch bei Aktualisierung des Programmzählerwerts in dem Register 18a während linearer Abarbeitung des Programms 14 in dem Register 20a stets eine invertierte Darstellung des Programmzählerwerts erhalten bleibt, die sich von der Bitdar- Stellung des Programmzählerwerts in dem Register 18a dadurch unterscheidet, dass jedes Bit des Programmzählerwerts in dem Register 18a zu dem entsprechenden Bit in dem Register 20a invertiert ist.
Auf ähnliche Weise ist sowohl bei dem Programmzähler 18 als auch bei dem invertierten Programmzähler 20 ein Eingang 18c bzw. 20c vorgesehen, der mit dem Befehlsdecodierer 16 verbunden ist, um in dem Fall eines Sprungsbefehles einen neuen Wert zu erhalten, auf den der Registerinhalt des Registers 18b bzw. 20a eingestellt werden soll. Im Unterschied zu dem Programmzähler 18 ist jedoch bei dem invertierten Programmzähler 20 der Eingang 20c nicht derart mit dem Register 20a verbunden, dass der neu einzutragende, an dem Eingang 20c anliegende Wert direkt in das Register 20a übernommen wird. Vielmehr ist zwischen Eingang 20c und Register 20a ein Invertierer 20d geschaltet, welcher den in das Register 20a einzu- tragenden Wert vor seiner Eintragung bitweise invertiert.
Wenn folglich der Befehlsdecodierer 16 eine Sprungadresse an den Programmzähler 18 ausgibt, wird die Sprungadresse bei dem Programmzähler 18 an dem Eingang 18c empfangen und direkt in das Register 18a eingetragen, während bei dem invertierten Programmzähler 20 die Sprungadresse nach Empfang an dem
Eingang 20c zunächst invertiert und erst dann in das Register 20a eingetragen wird.
Durch Vorsehen von Inkrementierer 18b, Dekrementierer 20b und Invertierer 20d ist folglich sichergestellt, dass während des gesamten Betriebs der CPU 10 der Registerinhalt des Registers 20a stets die invertierte Darstellung des Programmzählerwerts in dem Register 18a widerspiegelt, und zwar sowohl in dem Fall der linearen Programmabarbeitung ohne Sprünge und in dem Fall von Programmsprüngen.
Die Manipulationen werden beim obigen Ausführungsbeispiel folglich dadurch erkennbar gemacht, dass Programmzähler und invertierter Programmzähler durch entsprechende verschiedene Steuerungsmechanismen, d.h. Dekrementierer und Inkrementierer, die auch Teil der CPU sein können, um nebenher auch noch andere Aufgaben zu erfüllen, die neuen Werte bestimmen.
Die Ausgänge der Register 18a und 20a sind mit der Überwa- chungseinrichtung 22 verbunden, die somit anhand einer Störung dieser inversen Beziehung zwischen Programmzählerwert in dem Register 18a und invertierter Darstellung in den Register 20a auf einen manipulativen Angriff schließen kann.
Bei dem Bezug nehmend auf die Fig. 1 und 2 beschriebenen
Ausführungsbeispiel wurden externe Störungen bzw. Beeinflussungen von der Überwachungseinrichtung bzw. Testschaltung 22 zu Beginn jedes Befehlszyklus erfasst, indem überprüft wurde, ob die Darstellungen in den Registern 18a und 20a konsistent bzw. bitweise invers zueinander sind, um, falls dies nicht der Fall war, einen Alarm auszulösen. Es ist jedoch ferner möglich, die Untersuchung durch die Überwachungseinrichtung nach der Befehlsdekodierung vor jeder Ausführungsphase durchzuführen, oder die Untersuchung nicht bei jedem Befehlszyklus auszuführen sondern nur an bestimmten, gegebenenfalls zufälligen, Zeitpunkten, was freilich von der erwünschten Sicher- heit vor Manipulationen abhängt.
Vorteile der in Fig. 1 und 2 gezeigten Schaltung bestehen jedenfalls darin, dass sie einfach zu implementieren ist, nicht viel Platz kostet und in einem Designentwurf gut ver- steckt werden kann. Sie bietet ferner Schutz vor einer Vielzahl von Angriffen, wobei sie deren Wirkung, d.h. die Abweichung der Funktionsweise der Schaltung von der Sollfunktionsweise, und nicht den Auslöser selbst, d.h. die äußeren physischen Beeinflussungen der Schaltung, erfasst, was oftmals wesentlich schwieriger ist.
Im Vergleich zu dem Vorsehen redundanter Schaltungsteile bzw. Programmzähler hat die Schaltung von Fig. 1 und 2 den Vorteil, dass sie bei einer größeren Anzahl von Angriffen wirk- sam ist, nämlich auch bei solchen, bei denen die Störungen im allgemeinen die Modifikation von Registerinhalten in eine Vorzugsrichtung bewirken, nämlich aller Bits in einem logisch niedrigen oder einem logisch hohen Zustand, denn in einem solchen Fall ginge die Beziehung zwischen den Darstellung, invertiert zu nicht-invertiert, verloren.
Das obige Ausführungsbeispiel von Fig. 1 und 2 bezog sich auf die Ergänzung eines Programmzählers um einen invertierten Programmzähler, wobei die Veränderungseinrichtung zur Verän- derung des Registerinhalts bei dem invertierten Programmzähler verglichen zu der Veränderungseinrichtung bei dem Programmzähler entsprechend umgestaltet wurde. Es ist jedoch ferner möglich, das gleiche Konzept auch auf andere Schaltungsteile einer Schaltung, eines Mikrocontrollers oder einer zentralen Verarbeitungseinheit oder dergleichen zu übertragen, bei denen konsistente Informationen in inversen Darstel- lungen durch unabhängige Schaltungsteile abgeleitet werden können. Beispielsweise könnte eine Operationseinheit zur Handhabung eines Programmstatusbits, wie z.B. eines Übertragsbits oder eines Bits für Zugriffsrechte in einem Prozessor, um eine Operationseinheit ergänzt werden, die ein Regis- ter aufweist, welches einen zu dem Programmstatusbitregister inversen Eintrag aufweist, und welches zudem eine Veränderungseinrichtung aufweist, die den Registerinhalt immer genau invers verändert, nämlich von 0 auf 1, wenn das Programmstatusbit von 1 auf 0 verändert wird, und umgekehrt.
Bezugszeichenliste
10 CPU
12 Speicher
14 Programm
16 Befehlsdecodierer
18 Programmzähler
18a Register
18b Inkrementierer
18c Eingang
20 invertierter Programmzähler
20a Register
20b Dekrementierer
20c Eingang
20d Invertierer
22 Überwachungseinrichtung
24 Maßnahmeeinrichtung
26 Funktionseinheiten

Claims

Patentansprüche
1. Schaltung mit
einer ersten Operationseinheit (18) zum Durchführen einer
Operation, wobei die erste Operationseinheit bei Durchführung der Operation ihren Zustand auf eine erste Weise verändert;
einer zweiten Operationseinheit (20) zum Durchführen der Operation, wobei die zweite Operationseinheit bei Durchführung der Operation ihren Zustand auf eine zweite Weise verändert, die sich von der ersten Weise unterscheidet;
einer Überwachungseinrichtung (22) zum Untersuchen des Zu- Stands der ersten Operationseinheit (18) und des Zustands der zweiten Operationseinheit (20) und zum Signalisieren eines Alarms, wenn der Zustand der ersten Operationseinheit und der Zustand der zweiten Operationseinheit nicht in einer vorbestimmten Beziehung zueinander stehen; und
einer Einrichtung (24) zum Ergreifen einer Maßnahme ansprechend auf eine Signalisierung des Alarms'.
2. Schaltung gemäß Anspruch 1, bei der die erste Operati- onseinheit (18) ein erstes Register (18a) und eine erste
Veränderungseinrichtung (18b) aufweist, und die zweite Operationseinheit (20) ein zweites Register (20a) und eine zweite Veränderungseinrichtung (20b) aufweist, wobei der Registerinhalt des ersten Registers (18a) den Zustand der ersten Opera- tionseinheit (18) und der Registerinhalt des zweiten Registers (20a) den Zustand der zweiten Operationseinheit (20) definiert, und wobei die erste Veränderungseinrichtung (18b) den Registerinhalt des ersten Registers (18a) abhängig von einem Signal auf die erste Weise und die zweite Veränderungs- einrichtung (20b) den Registerinhalt des zweiten Registers (20a) abhängig von demselben Signal auf die zweite Weise verändert .
3. Schaltung gemäß Anspruch 1 oder 2, bei der die erste Operationseinheit (18) und die zweite Operationseinheit (20) auf dasselbe Ereignis ansprechen, um die Operation durchzuführen, und derart ausgebildet sind, um bei Durchführung der Operation einen jeweiligen Bitwert zu ändern, der den jeweiligen Zustand derselben zumindest teilweise definiert, und zwischen aufeinanderfolgenden Operationsdurchführungen den jeweiligen geänderten Bitwert beizubehalten.
4. Schaltung gemäß Anspruch 3, bei der sich die erste Weise von der zweiten Weise derart unterscheidet, dass sich bei Durchführung der Operation der Bitwert der zweiten Operationseinheit (20) um einen Wert verringert, um den sich der Bitwert der ersten Operationseinheit (18) erhöht oder umgekehrt.
5. Schaltung gemäß Anspruch 3 oder 4, bei der die vorbestimmte Beziehung darin besteht, dass die Bitwerte der Opera- tionseinheiten (18, 20) invertiert zueinander sind, und die erste und die zweite Operationseinheit (18, 20) derart ausgebildet sind, dass nach Durchführung der Operation der Bitwert der ersten Operationseinheit (18) und der Bitwert der zweiten Operationseinheit (20) invertiert zueinander bleiben.
6. Schaltung nach Anspruch 5, bei der eine Biteinheit einer Operationseinheit ein Einerkomplement oder ein Zweierkomplement zu einer Biteinheit der anderen Operationseinheit ist.
7. Schaltung gemäß einem der Ansprüche 1 bis 5, bei der die erste oder die zweite Operationseinheit derart ausgebildet ist, dass ihr Zustand anderen Teilen der Schaltung zur Verfügung steht, während der Zustand der anderen Operationseinheit lediglich der Überwachungseinrichtung (22) zur Verfügung steht.
8. Schaltung gemäß einem der Ansprüche 1 bis 6, bei der die Schaltung ein Prozessor ist und die erste oder die zweite Operationseinheit einen Programmzähler oder ein Statusbitregister des Prozessors umfasst.
9. Schaltung gemäß einem der Ansprüche 1 bis 7, bei der die Maßnahme geeignet ist, um zu verhindern, dass der Prozessor eine laufende Programmausführung fortsetzt, dass der Prozessor einen Interrupt-Sprung zu einer Interrupt-Routine aus- führt und/oder dass der Prozessor ein durch ein Betriebssystem abfragbares Alarmbit setzt.
10. Schaltung gemäß einem der Ansprüche 1 bis 8, bei der die Überwachungseinrichtung (22) ausgebildet ist, um die Untersu- chung vor jedem Mal vorzunehmen, da der Rest der Schaltung den Zustand der ersten Operationseinheit oder der zweiten Operationseinheit verwendet.
11. Verfahren zum Steuern einer Schaltung mit einer ersten Operationseinheit zum Durchführen einer Operation, die bei
Durchführung der Operation ihren Zustand auf eine erste Weise verändert, und einer zweiten Operationseinheit zum Durchführen der Operation, die bei Durchführung der Operation ihren Zustand auf eine zweite Weise verändert, die sich von der ersten Weise unterscheidet, mit folgenden Schritten:
Durchführen der Operation mittels der ersten Operationseinheit;
Durchführen der Operation mittels der zweiten Operationseinheit;
nach den Schritten des Durchführens der Operation durch die erste und die zweite Operationseinheit, Untersuchen des Zustands der ersten Operationseinheit und des unterschiedlichen Zustands der zweiten Operationseinheit; Signalisieren eines Alarms, wenn der Zustand der ersten Operationseinheit und der Zustand der zweiten Operationseinheit nicht in einer vorbestimmten Beziehung zueinander stehen; und
Ergreifen einer Maßnahme ansprechend auf eine Signalisierung des Alarms.
PCT/EP2004/000519 2003-02-06 2004-01-22 Schaltung mit schutz vor manipulativen angriffen und verfahren WO2004070496A2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE10304900.2 2003-02-06
DE10304900A DE10304900A1 (de) 2003-02-06 2003-02-06 Schaltung mit Schutz vor manipulativen Angriffen und Verfahren

Publications (2)

Publication Number Publication Date
WO2004070496A2 true WO2004070496A2 (de) 2004-08-19
WO2004070496A3 WO2004070496A3 (de) 2004-11-04

Family

ID=32841608

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2004/000519 WO2004070496A2 (de) 2003-02-06 2004-01-22 Schaltung mit schutz vor manipulativen angriffen und verfahren

Country Status (2)

Country Link
DE (1) DE10304900A1 (de)
WO (1) WO2004070496A2 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117744075A (zh) * 2023-12-25 2024-03-22 国创芯科技(江苏)有限公司 一种芯片测试模式防护电路及防护方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102013227165A1 (de) * 2013-12-27 2015-07-16 Siemens Aktiengesellschaft Überwachungsvorrichtung zur Überwachung eines Schaltkreises

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5995628A (en) * 1997-04-07 1999-11-30 Motorola, Inc. Failsafe security system and method
DE19936918A1 (de) * 1998-09-30 2000-04-06 Philips Corp Intellectual Pty Verschlüsselungsverfahren zum Ausführen von kryptographischen Operationen
EP1115094A2 (de) * 2000-01-08 2001-07-11 Philips Corporate Intellectual Property GmbH Datenverarbeitungseinrichtung und Verfahren zu dessen Betrieb
DE10136335A1 (de) * 2001-07-26 2003-02-13 Infineon Technologies Ag Prozessor mit mehreren Rechenwerken

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5995628A (en) * 1997-04-07 1999-11-30 Motorola, Inc. Failsafe security system and method
DE19936918A1 (de) * 1998-09-30 2000-04-06 Philips Corp Intellectual Pty Verschlüsselungsverfahren zum Ausführen von kryptographischen Operationen
EP1115094A2 (de) * 2000-01-08 2001-07-11 Philips Corporate Intellectual Property GmbH Datenverarbeitungseinrichtung und Verfahren zu dessen Betrieb
DE10136335A1 (de) * 2001-07-26 2003-02-13 Infineon Technologies Ag Prozessor mit mehreren Rechenwerken

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117744075A (zh) * 2023-12-25 2024-03-22 国创芯科技(江苏)有限公司 一种芯片测试模式防护电路及防护方法

Also Published As

Publication number Publication date
DE10304900A1 (de) 2004-09-09
WO2004070496A3 (de) 2004-11-04

Similar Documents

Publication Publication Date Title
EP0951673B1 (de) Verfahren zur überwachung der vorgeschriebenen ausführung von softwareprogrammen
DE2629459C2 (de)
EP2188755A1 (de) Verfahren und vorrichtung zur sicherung eines programms gegen eine kontrollflussmanipulation und gegen einen fehlerhaften programmablauf
DE102006001872A1 (de) Vorrichtung und Verfahren zum Überprüfen einer Fehlererkennungsfunktionalität einer Datenverarbeitungseinrichtung
EP1611510B1 (de) Kontrollierte ausführung eines für eine virtuelle maschine vorgesehenen programms auf einem tragbaren datenträger
DE102009024179A1 (de) Schaltung mit einer Mehrzahl von Funktionsweisen
EP1496420B1 (de) Sicherheits-Datenverarbeitungseinheit sowie dazugehöriges Verfahren
DE69125881T2 (de) Verhinderung der Bestimmung der Ausführungszeit einer vorbestimmten Datenverarbeitungsroutine im Zusammenhang mit dem Auftreten eines zuvor beobachtbaren Ereignisses
EP1449084B1 (de) Kontrollierte programmausführung durch einen tragbaren datenträger
EP1262856B1 (de) Programmgesteuerte Einheit
DE102010003153B4 (de) Verarbeitungseinheit, Vorrichtung, die zwei Verarbeitungseinheiten aufweist, Verfahren zum Testen einer Verarbeitungseinheit und einer Vorrichtung, die zwei Verarbeitungseinheiten aufweist
EP1190319B1 (de) Sicherung eines rechnerkerns gegen äussere manipulationen
DE19626972A1 (de) Verfahren und Vorrichtung zur vorläufigen Freigabe für die Anwendung eines von einer elektronischen Kassette geschützten Programms
EP1664978B1 (de) Vorrichtung und verfahren zur sicheren ausführung eines programmes
DE102007056218A1 (de) Verfahren zur Behandlung von transienten Fehlern in Echtzeitsystemen, insbesondere in Steuergeräten von Kraftfahrzeugen
WO2004070496A2 (de) Schaltung mit schutz vor manipulativen angriffen und verfahren
WO2003043022A2 (de) Speichertest
EP2652665B1 (de) Portabler datenträger mit fehlbedienungszähler
DE102004016342B4 (de) Verfahren und Vorrichtung zum Erfassen eines manipulativen Angriffs auf eine elektrische Schaltung
DE102005060714B4 (de) Datenverarbeitungsvorrichtung, Speicherkarte, Verfahren zum Betreiben einer Datenverarbeitungsvorrichtung und Herstellungsverfahren für eine Datenverarbeitungsvorrichtung
EP1355269B1 (de) Datenverarbeitungsvorrichtung und Verfahren zum Betreiben eines Datenverarbeitungsmoduls
DE602004001293T2 (de) Programmintegritätsprüfung mittels Statistiken
DE10307797B4 (de) Vorrichtung und Verfahren zum Ermitteln einer Unregelmäßigkeit in einem Ablauf eines Nutzprogramms
DE10240088B4 (de) Datenverarbeitungsvorrichtung
DE102013108073A1 (de) Datenverarbeitungsanordnung und verfahren zur datenverarbeitung

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): BW GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
122 Ep: pct application non-entry in european phase