EP1410344A2 - Verfahren zum schützen eines rechners gegen manipulation von registerinhalten und rechner zum durchführen des verfahrens - Google Patents

Verfahren zum schützen eines rechners gegen manipulation von registerinhalten und rechner zum durchführen des verfahrens

Info

Publication number
EP1410344A2
EP1410344A2 EP02735339A EP02735339A EP1410344A2 EP 1410344 A2 EP1410344 A2 EP 1410344A2 EP 02735339 A EP02735339 A EP 02735339A EP 02735339 A EP02735339 A EP 02735339A EP 1410344 A2 EP1410344 A2 EP 1410344A2
Authority
EP
European Patent Office
Prior art keywords
register
protected
copy
computer
contents
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.)
Ceased
Application number
EP02735339A
Other languages
English (en)
French (fr)
Inventor
Werner Ness
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.)
Giesecke+Devrient GmbH
Original Assignee
Giesecke+Devrient GmbH
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 Giesecke+Devrient GmbH filed Critical Giesecke+Devrient GmbH
Publication of EP1410344A2 publication Critical patent/EP1410344A2/de
Ceased 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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

Definitions

  • the invention relates to a method for protecting a computer, in particular a microcontroller ( ⁇ C) or a microprocessor ( ⁇ P) against manipulation of register contents.
  • ⁇ C microcontroller
  • ⁇ P microprocessor
  • the invention also relates to a chip card which makes use of such a method or such a computer.
  • the present invention is intended to provide an alternative method for protecting a computer of the type mentioned at the outset.
  • the invention provides a method for protecting a computer against manipulation of register contents by the contents a copy is created for the register to be protected and the content of the register to be used is compared with its copy if necessary.
  • comparing on demand means, in particular, that each time a command is executed, the comparison is carried out to determine whether the content of the register to be protected has been tampered with in the period between the execution of a previous command and the pending command execution. This allows the comparison to be coupled in time with the increase in the command counter (program counter), the content of which determines the command sequence to be processed.
  • command counter program counter
  • the data can be modified by bitwise inverting.
  • the copy of the content of the register to be protected then takes the form of a one's complement of the content of the register to be protected. It is advantageous here that the comparison can be carried out, for example, by simply subtracting the copy from the content of the register to be protected. If they match, the subtraction results in zero.
  • a non-zero value means that the data in the register to be protected (or in the Kopit) is corrupted
  • the register to be protected and / or the register containing the copy is shielded.
  • shielding can be done, for example, by addressing the register in question indirectly.
  • a concealment of the physical relationships between the register to be protected and the register created for the copy is proposed.
  • Such obfuscation can take place, for example, in such a way that the register is created at a different location than the register to be protected within the semiconductor memory.
  • the creation of the register intended for the copy at a location within the semiconductor memory which is separate from the register to be protected can mean an actual spatial separation, but also a virtual or logical separation by modifying the address of the register holding the copy.
  • a hardware comparator is particularly preferred for the comparison of the contents of the register to be protected and of the register receiving the copy, alternatively a comparison using microcode. This type of comparison is particularly fast and only insignificantly delays the execution of the program. Comparators for comparing register contents bit by bit are known. As an alternative to this option, the register contents to be compared can also be checked for agreement by subtraction / addition. If the copy is an unmodified version of the contents of the register to be protected, normal subtraction takes place. If the result is different from zero, the central processing unit (CPU) of the computer is signaled that manipulation has taken place. Special program steps for handling this manipulation detection can then be processed. If an inverted version of the register 5 to be protected is stored in the register created for the copy, the subtraction can be achieved simply by adding the two register contents.
  • CPU central processing unit
  • the copy of the content of the register to be protected can also be manipulated only partially.
  • An eight bit long register can also be divided into two equally long sections of four bits each, in order to store the first part unmodified and the second part inverted as a copy. This particular type of modification is then taken into account in the comparison to be carried out.
  • the invention also provides a computer in the form of a microcontroller or microprocessor for performing the method described above.
  • This computer contains a first register memory set with at least one register to be protected, furthermore a second register memory set with at least one redundancy register, which contains the (possibly modified) copy of the register content to be protected, furthermore a comparator, which compares the register contents as needed to make dependent on the Result of comparison to initiate treatment by the central processing unit of the computer.
  • the invention also provides a chip card that is equipped with such a computer.
  • Figure 1 is a block diagram of a schematic computer with measures to protect against manipulation of the content of one or more registers; 2 shows a block diagram of a device for comparing the contents of registers to be protected and a redundancy register;
  • FIG. 3 shows a block diagram of an alternative embodiment with respect to FIG. 2;
  • Figure 4 is a block diagram of an alternative to Figure 2 embodiment of a circuit for comparing two register contents.
  • a computer is shown schematically in the form of a block diagram in FIG.
  • the invention specifically relates to a microcontroller ( ⁇ C) or a microprocessor ( ⁇ P), but is not limited to this.
  • ⁇ C microcontroller
  • ⁇ P microprocessor
  • a special application is the chip card, in the chip contents of certain registers are to be protected against manipulation.
  • a program to be processed is stored in a program memory 2 designed as a ROM.
  • An instruction to be executed is read out of the program memory 2 depending on the content of an instruction counter PC (program counter) 6.
  • the command read out is then in a buffer or command register 4.
  • the command counter 6 is part of a register set in a RAM 20.
  • the register set is denoted here by 14 and includes, in addition to the command counter 6, further registers R1, R2,... And a stack pointer SP.
  • the other registers apart from the command counter 6 are designated by the reference symbol 8 in FIG.
  • a second register set 12 with — in the present example, three — redundancy registers 10a, 10b and 10c.
  • these Dancing registers 10a, 10b and 10c store copies of the instruction counter of the register Rl (Rl 1 ) and the stack pointer (SP 1 ).
  • a controller 100 (CPU) is connected to the program memory 2, the RAM 20 5 and the command register 4 via control lines, it is also coupled to the RAM 20 via a bus connection, shown here schematically in the form of an ABUS, which is connected to the memory area for register set 14 is connected, and a BBUS connected to the storage area for register set 12. 10
  • FIG. 2 schematically shows a comparator arrangement for comparing the command counter PC in the register 6 to be protected with the command counter copy PC in the redundancy register 10a.
  • the two register contents are subtracted from a subtractor 22.
  • the result is at 15 agreement of the register contents to zero.
  • a value deviating therefrom signals that manipulation of one or the other register 6, 10a (or both registers) has taken place.
  • the copy PC in the redundancy register 10a 30 is an exact copy of PC. natively, the copy can also be stored in the form of a modified on of the content of the register to be protected.
  • FIG. 3 shows, as an example of such a modified copy, the filing of a bitwise inverted version of the content of the register R1.
  • the content of Rl is inverted bit by bit, here indicated schematically by an inverter 26, so that the bitwise inverted version of the register content of Rl 'is stored in the redundancy register 10b as a copy of Rl'.
  • the copy R1 'then corresponds to the one's complement of the content of R1. If the two contents of the register are added, the comparison result should be zero if they match, that is if the contents of the register have not been manipulated.
  • a register R1 denoted here by 30 is divided into two halves 30a and 30b of equal length, each with four bits, for example.
  • copy R ' the two contents halves of register 30 are taken over unchanged as partial copies, on the one hand, and inverted bit by bit on the other hand.
  • the content of the left half of the register 30a is copied unchanged into a redundancy register 32, namely into its left half 32a.
  • the content of the right half of the register 30b is loaded bit by bit inverted into the right half 32b of the redundancy register 32, here symbolized by an inverter 36.
  • the copy Rl 1 the contents of the register to be protected, therefore, is a partially identical and partially bitwise inverted Versio of the register to be protected content.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Business, Economics & Management (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Accounting & Taxation (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Storage Device Security (AREA)
  • Hardware Redundancy (AREA)
  • Retry When Errors Occur (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

Zum Schützen eines Rechners vor Manipulation von Registerinhalten werden für zu schützende Register (6;PC) Kopien in getrennten Redundanz-Registern (10a-10c) angelegt. Bei jeder Befehlsausführung erfolgt ein Vergleich des Inhalts des zu schützenden Registers mit dessen Kopie. Nur bei Übereinstimmung der Registerinhalte erfolgt die Ausführung des Befehls. Bei Nichtübereinstimmung der Registerinhalte wird dies als hinweis auf eine erfolgte Manipulation des Inhalts des zu schützenden Registers interpretiert, und es wird eine Fehlerbehandlung durchgeführt.

Description

Verfahren zum Schützen eines Rechners gegen Manipulation von Registerinhalten und Rechner zum Durchführen des Verfahrens
Die Erfindung betrifft ein Verfahren zum Schützen eines Rechners, insbesondere eines Mikrocontrollers (μC) oder eines Mikroprozessors (μP) gegen Manipulation von Registerinhalten. Außerdem betrifft die Erfindung eine Chipkarte, die von einem solchen Verfahren bzw. einem solchen Rechner Gebrauch macht.
Der Schutz von Teilen eines Rechners gegen Manipulation ist in vielen Anwendungsfällen für einen sinnvollen Einsatz eines Rechners unerläßlich, so zum Beispiel bei mit Rechnern ausgestatteten Chipkarten. Es ist bekannt, Register gegen eine Manipulation durch Datenverschlüsselung zu schützen.
Aus der DE 199 18 620 AI ist ein Verfahren zum Schützen eines Rechners vor Manipulation bekannt, bei dem jeweils nach Ausführung eines Programmbefehls durch eine zentrale Verarbeitungseinheit eine logische Verknüpfung verschiedener Registerinhalte durchgeführt wird, insbesondere eine XOR- Verknüpfung, das Ergebnis dieser Verknüpfung in einem Speicher abgelegt wird, um dann vor der Ausführung des nächsten Befehls die gleiche Verknüpfung für die Inhalte derselben Register durchzuführen und das dann erhaltene Verknüpfungsergebnis mit dem zuvor abgespeicherten Verknüpfungsergebnis zu vergleichen. Dieses Verfahren hat sich bewährt.
Durch die vorliegende Erfindung soll ein alternatives Verfahren zum Schützen eines Rechners der eingangs genannten Art angegeben werden.
Zu diesem Zweck schafft die Erfindung ein Verfahren zum Schützen eines Rechners gegen Manipulation von Registerinhalten, indem von dem Inhalt zu schützenden Registers eine Kopie angelegt wird und der Inhalt des ützenden Registers mit dessen Kopie bedarfsweise verglichen wird.
Bedarfsweises Vergleichen heißt zum Beispiel insbesondere, daß bei jeder Ausführung eines Befehls der Vergleich durchgeführt wird, um festzustellen, ob in der Zeitspanne zwischen der Ausführung eines vorausgehenden Befehls und der jetzt anstehenden Befehlsausführung eine Manipulation des Inhalts des zu schützenden Registers erfolgt ist. Damit läßt sich der Vergleich zeitlich koppeln mit der Erhöhung des Befehlszählers (programm counter), dessen Inhalt die abzuarbeitende Befehlsfolge festlegt.
Um zusätzliche Sicherheit zu erhalten, ist in einer bevorzugten Ausgestaltung der Erfindung vorgesehen, den Inhalt des zu schützenden Registers in modifizierter Form als Kopie abzulegen. Hierdurch wird vermieden, daß durch manipulatives Vergleichen von Registerinhalten bestimmte Register erkannt und damit der Schutz wirkungslos gemacht wird. Die Modifizierung läßt einen einfachen Vergleich des Inhalts des zu schützenden Registers mit der Kopie nicht ohne weiteres zu.
Das Modifizieren der Daten kann durch bitweises Invertieren geschehen. Hierdurch hat die Kopie des Inhalts des zu schützenden Registers dann die Form des Einer-Komplements des Inhalts des zu schützenden Registers. Vorteilhaft hierbei ist, daß der Vergleich zum Beispiel durch einfaches Subtrahieren der Kopie von dem Inhalt des zu schützenden Registers durchgeführt werden kann. Bei Übereinstimmung ergibt sich durch die Subtraktion der Wert Null. Ein von Null abweichender Wert bedeutet eine Verfälschung der Daten in dem zu schützenden Register (oder in der Kopit
In einer Ausgestaltung der Erfindung ist vorgesehen, daß das zu schützende Register und/ oder das die Kopie enthaltende Register abgeschirmt wird. solche Abschirmung kann zum Beispiel in der Weise geschehen, daß das betreffende Register indirekt adressiert wird.
Als besondere Ausgestaltung der Erfindung wird eine Verschleierung der physikalischen Zusammenhänge zwischen dem zu schützenden Register und dem für die Kopie angelegten Register vorgeschlagen. Eine solche Verschleierung kann zum Beispiel in der Weise geschehen, daß das Register an einer anderen Stelle als das zu schützende Register innerhalb des Halbleiterspeichers angelegt wird. Das Anlegen des für die Kopie vorgesehenen Registers an einer von dem zu schützenden Register getrennten Stelle innerhalb des Halbleiterspeichers kann eine tatsächliche räumliche Trennung bedeuten, aber auch eine virtuelle oder logische Trennung durch Modifizierung der Adresse des die Kopie aufnehmenden Registers.
Besonders bevorzugt wird für den Vergleich der Inhalt des zu schützenden Registers und des die Kopie aufnehmenden Registers ein Hardware- Vergleicher, alternativ ein Vergleich durch Mikro-Code. Diese Art des Vergleichs ist besonders schnell und verzögert den Ablauf bei der Programmverarbeitung nur unwesentlich. Vergleicher zum Vergleichen von Registerinhalten Bit für Bit sind bekannt. Alternativ zu dieser Möglichkeit können die zu vergleichenden Registerinhalte auch durch Subtraktion/ Addition auf Übereinstimmung geprüft werden. Ist die Kopie eine nicht modifizierte Version des Inhalts des zu schützenden Registers, sc erfolgt eine normale Subtraktion. Bei einem von Null verschiedenen Ergebt wird der zentralen Verarbeitungseinheit (CPU) des Rechners signalisiert, d, eine Manipulation stattgefunden hat. Es können dann besondere Programmschritte zur Behandlung dieser Manipulations-Erkennung abgearbeitet werden. n dem für die Kopie angelegten Register eine invertierte Version des 5 des zu schützenden Registers gespeichert, so läßt sich die Subtraktion einfach durch bloßes Addieren der beiden Registerinhalte realisieren.
In einer speziellen Ausgestaltung der Erfindung kann die Kopie des Inhalts des zu schützenden Registers auch nur teilweise manipuliert werden. Man kann ein acht Bit langes Register auch in zwei gleich lange Abschnitte von je vier Bits unterteilen, um den ersten Teil unmodifiziert und den zweiten Teil invertiert als Kopie abzulegen. Bei dem durchzuführenden Vergleich wird diese besondere Art der Modifikation dann berücksichtigt.
Die Erfindung schafft außerdem einen Rechner in Form eines Mikrocontrollers oder Mikroprozessors zum Durchführen des oben beschriebenen Verfahrens. Dieser Rechner enthält einen ersten Registerspeichersatz mit mindestens einem zu schützenden Register, weiterhin einen zweiten Registerspeichersatz mit mindestens einem Redundanz-Register, welches die (eventuell modifizierte) Kopie des zu schützenden Registerinhalts aufnimmt, weiterhin einen Vergleicher, der die Registerinhalte bedarfsweise vergleicht, um abhängig vom Vergleichsergebnis eine Behandlung durch die zentrale Verarbeitungseinheit des Rechners anzustoßen.
Schließlich schafft die Erfindung auch eine Chipkarte, die mit einem solchen Rechner ausgestattet ist.
Im folgenden werden Ausführungsbeispiele der Erfindung anhand der Zeichnung näher erläutert. Es zeigen:
Figur 1 ein Blockschaltbild eines schematisierten Rechners mit Maßnahmen zum Schutz vor Manipulation des Inhalts eines oder mehrerer Register; 2 ein Blockschaltbild einer Vorrichtung zum Vergleichen der Inhalte zu schützenden Registers und eines Redundanzregisters;
Figur 3 ein Blockschaltbild einer bezüglich Figur 2 alternativen Ausführungsform;
Figur 4 ein Blockschaltbild einer bezüglich Figur 2 alternativen Ausführungsform einer Schaltung zum Vergleichen zweier Registerinhalte.
In Figur 1 ist in Form eines Blockschaltbilds schematisiert ein Rechner dargestellt. Die Erfindung betrifft speziell einen Mikrocontroller (μC) oder einen Mikroprozessor (μP), ist jedoch nicht hierauf beschränkt. Ein spezieller Anwendungsfall ist die Chipkarte, in deren Chip Inhalte bestimmter Register vor Manipulation zu schützen sind.
Gemäß Figur 1 ist in einem als ROM ausgebildeten Programmspeicher 2 ein abzuarbeitendes Programm gespeichert. Ein auszuführender Befehl wird aus dem Programmspeicher 2 abhängig vom Inhalt eines Befehlszählers PC (programm counter) 6 ausgelesen. Der ausgelesene Befehl steht dann in einem Puffer oder Befehlsregister 4.
Der Befehlszähler 6 ist Teil eines Registersatzes in einem RAM 20. Der Registersatz ist hier mit 14 bezeichnet und umfaßt außer dem Befehlszähler 6 noch weitere Register Rl, R2, ... sowie ein Zeigerregister (stack pointer) SP. Die weiteren Register außer dem Befehlszähler 6 sind in Figur 1 mit dem Bezugszeichen 8 bezeichnet.
An einer logisch und/ oder räumlich von dem Registersatz 14 getrennten Stelle des RAM 20 befindet sich ein zweiter Registersatz 12 mit - im vorliegenden Beispiel drei - Redundanz-Registern 10a, 10b und 10c. In diesen tdanz-Registern 10a, 10b und 10c werden Kopien des Befehlszählers des Registers Rl (Rl1) und des Stack- Pointers (SP1) abgelegt.
Eine Steuerung 100 (CPU) steht mit dem Programmspeicher 2, dem RAM 20 5 und dem Befehlsregister 4 über Steuerleitungen in Verbindung, sie ist außerdem mit dem RAM 20 über eine Busverbindung gekoppelt, hier schematisch dargestellt in Form eines ABUS, der an den Speicherbereich für den Registersatz 14 angeschlossen ist, und einen BBUS, der an den Speicherbereich für den Registersatz 12 angeschlossen ist. 10
Figur 2 zeigt schematisch eine Vergleicheranordnung zum Vergleichen des Befehlszählers PC in dem zu schützenden Register 6 mit der Befehlszähler- Kopie PC in dem Redundanz-Register 10a. Die beiden Registerinhalte werden von einem Subtrahierer 22 subtrahiert. Das Ergebnis ist bei 15 Übereinstimmung der Registerinhalte Null. Ein davon abweichender Wert signalisiert, daß eine Manipulation des einen oder des anderen Registers 6, 10a (oder beider Register) stattgefunden hat.
Beim Betrieb des Rechners wird vor dem Auslesen eines Befehls aus dem 20. Programmspeicher 2 der Befehlszähler PC verglichen mit seiner zuvor in dem Redundanz-Register 10a abgelegten Kopie PC. Nur bei Übereinstimmung wird dann der Lesevorgang des Programmspeichers 2 durchgeführt oder der ausgelesene Befehl, der dann im Befehlsregister 4 steht, tatsächlich ausgeführt. Bei Nichtübereinstimmung von PC und PC 25 wird die Ausführung gesperrt, und es erfolgt eine hier nicht näher interessierende Fehlerroutine.
Bei der Ausführungsform des Vergleichers nach Figur 2 ist davon ausgegangen worden, daß die Kopie PC in dem Redundanz-Register 10a 30 eine exakte Kopie von PC ist. nativ kann man die Kopie aber auch in Form einer modifizierten on des Inhalts des zu schützenden Registers ablegen.
Figur 3 zeigt als Beispiel einer solchen modifizierten Kopie das Ablegen einer bitweise invertierten Version des Inhalts des Registers Rl. Nach jeder Befehlsausführung wird der Inhalt von Rl bitweise invertiert, hier schematisch durch einen Negator 26 angedeutet, so daß in dem Redundanz- Register 10b die bitweise invertierte Version des Registerinhalts von Rl als Kopie Rl' gespeichert ist. Durch das bitweise Invertieren entspricht die Kopie Rl' dann dem Einer-Komplement des Inhalts von Rl. Durch Addieren der beiden Registerinhalte müßte sich bei Übereinstimmung, das heißt bei nicht erfolgter Manipulation eines Registerinhalts, das Vergleichsergebnis Null ergeben.
Figur 4 zeigt eine noch weitere Abwandlung für die Ausbildung des
Vergleichers bzw. das Anlegen einer Kopie des Inhalts eines zu schützenden Registers, hier wiederum dargestellt anhand des Registers Rl. Nach Figur 4 ist ein hier mit 30 bezeichnetes Register Rl in zwei gleich lange Hälften 30a und 30b mit beispielsweise jeweils vier Bits aufgeteilt. Als Kopie R ' werden die beiden Inhalts-Hälften des Registers 30 einerseits unverändert als Teilkopie übernommen, andererseits bitweise invertiert. Der Inhalt der linken Registerhälf te 30a wird unverändert in ein Redundanz- Register 32, und zwar in dessen linke Hälfte 32a einkopiert. Der Inhalt der rechten Registerhälfte 30b wird bitweise invertiert in die rechte Hälfte 32b des Redundanz-Registers 32 geladen, hier durch einen Negator 36 symbolisiert. Die Kopie Rl1 des Inhalts des zu schützenden Registers ist demnach eine teilweise identische und teilweise bitweise invertierte Versio des zu schützenden Registerinhalts.
Zur Ausführung des Vergleichs mit Hilfe eines Subtrahier er s 40 werden die jeweils linken Hälften 30a und 32a der Register 30 und 32 subtrahiert, und er rechten Hälfte 30b des Registers 30 wird die mit Hilfe eines Negators aderum bitweise invertierte Version der Daten in der rechten Hälfte 32b des Registers 32 subtrahiert. Auch hier liegt Übereinstimmung, das heißt nicht erfolgte Manipulation des zu schützenden Registers nur dann vor, wenn das Berechnungs- oder Vergleichsergebnis das Resultat Null liefert.

Claims

Patentansprüche
1. Verfahren zum Schützen eines Rechners, insbesondere eines Mikrocontrollers (μC) oder Mikroprozessors (μP) gegen Manipulation von Registerinhalten, gekennzeichnet durch Anlegen einer Kopie (PC) eines zu schützenden Registers (PC) und bedarfsweises Vergleichen des Inhalts des zu schützenden Registers und dessen Kopie.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die Daten der Kopie gegenüber dem Inhalt des zu schützenden Registers modifiziert werden.
3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, daß das Modifizieren durch bitweises Invertieren der Daten erfolgt.
4. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß das zu schützende Register und/ oder das die Kopie enthaltende Register (lOa-lOc) abgeschirmt wird/ werden.
5. Verfahren nach Anspruch 4, dadurch gekennzeichnet, daß das
Abschirmen des Registers durch indirektes Adressieren des Registers erfolgt.
6. Verfahren nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, daß eine Verschleierung der physikalischen Zusammenhänge zwischen dem zu schützenden Register (6, 8) und dem die Kopie enthaltenden Register (10) vorgenommen wird.
7. Verfahren nach Anspruch 6, dadurch gekennzeichnet, daß die Verschleierung in der Weise erfolgt, daß das Register für die Kopie (PC) an einer von der Stelle des zu schützenden Registers (6, 8) virtuell oder räumlich getrennten Stelle angelegt wird.
8. Verfahren nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, daß der Vergleich der Inhalte des zu schützenden Registers und der Kopie (PC) a) mittels eines Hardware-Vergleichers (22, 24, 40), oder 5 b) durch Mikro-Code realisiert wird.
9. Verfahren nach einem der Ansprüche 1 bis 8, dadurch gekennzeichnet, daß der Vergleich durch bitweises Vergleichen der Daten vorgenommen ° wird.
10. Verfahren nach einem der Ansprüche 1 bis 8, dadurch gekennzeichnet, daß der Vergleich durch Subtraktion der Registerinhalte vorgenommen wird. 5
11. Rechner, insbesondere in Form eines Mikrocontrollers oder Mikroprozessors, zum Durchführen des Verfahrens nach einem der Ansprüche 1 bis 10, gekennzeichnet durch:
- einen ersten Registerspeichersatz (14) mit mindestens einem zu 0 schützenden Register (6, 8);
- einen zweiten Registerspeichersatz (12) mit mindestens einem Redundanz-Register (lOa-lOc) zur Aufnahme einer Kopie des Inhalts eines zu schützenden Registers, und
- einen Vergleicher (22, 24, 40), der die Inhalte des zu schützenden Registers 5 und des Redundanz-Registers bedarfsweise vergleicht.
12. Rechner nach Anspruch 11, dadurch gekennzeichnet, daß eine Steuerung (100) den Vergleicher so steuert, daß er den Vergleich bei jeder Befehlsausführung des Rechners ausführt. 0
13. Chipkarte mit einem Rechner nach Anspruch 11 oder 12.
EP02735339A 2001-05-10 2002-05-06 Verfahren zum schützen eines rechners gegen manipulation von registerinhalten und rechner zum durchführen des verfahrens Ceased EP1410344A2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE10122505 2001-05-10
DE10122505A DE10122505A1 (de) 2001-05-10 2001-05-10 Verfahren zum Schützen eines Rechners gegen Manipulation von Registerinhalten und Rechner zum Durchführen des Verfahrens
PCT/EP2002/004983 WO2002091168A2 (de) 2001-05-10 2002-05-06 Verfahren zum schützen eines rechners gegen manipulation von registerinhalten und rechner zum durchführen des verfahrens

Publications (1)

Publication Number Publication Date
EP1410344A2 true EP1410344A2 (de) 2004-04-21

Family

ID=7684144

Family Applications (1)

Application Number Title Priority Date Filing Date
EP02735339A Ceased EP1410344A2 (de) 2001-05-10 2002-05-06 Verfahren zum schützen eines rechners gegen manipulation von registerinhalten und rechner zum durchführen des verfahrens

Country Status (8)

Country Link
US (1) US7647495B2 (de)
EP (1) EP1410344A2 (de)
JP (1) JP4537003B2 (de)
CN (1) CN1294480C (de)
AU (1) AU2002310806A1 (de)
DE (1) DE10122505A1 (de)
RU (1) RU2310906C2 (de)
WO (1) WO2002091168A2 (de)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102004021088A1 (de) * 2004-04-29 2005-11-17 Giesecke & Devrient Gmbh Verfahren zum Schützen von Daten eines Datenträgers gegen DFA-Angriffe
DE102004037590B4 (de) * 2004-08-03 2006-06-14 Infineon Technologies Ag Integrierte Schaltung und Verfahren zum Betrieb einer solchen
TW200805065A (en) * 2006-01-17 2008-01-16 Nxp Bv Region protection unit, instruction set and method for protecting a memory region
KR100881025B1 (ko) * 2006-11-07 2009-02-05 삼성전자주식회사 보안 데이터를 관리하는 장치 및 그 방법
FR2910145A1 (fr) 2006-12-18 2008-06-20 St Microelectronics Sa Procede et dispositif pour securiser la lecture d'une memoire.
JP4588751B2 (ja) * 2007-11-13 2010-12-01 株式会社コナミデジタルエンタテインメント 記憶処理装置、記憶処理方法、ならびに、プログラム
US8549260B2 (en) * 2009-01-29 2013-10-01 Infineon Technologies Ag Apparatus for processing data and method for generating manipulated and re-manipulated configuration data for processor
EP2761478A4 (de) * 2011-09-29 2015-10-28 Intel Corp Bidirektionales kopieren von registerinhalten in shadow-register
US8826440B2 (en) * 2011-10-19 2014-09-02 Google Inc. Defensive techniques to increase computer security
CN103618523A (zh) * 2013-11-27 2014-03-05 中国航空工业集团公司第六三一研究所 一种基于离散量信号的双通道校验电路及方法
CN103853695B (zh) * 2013-12-10 2016-11-02 中国航空工业集团公司第六三一研究所 一种离散量的上电自检电路
EP2993605A1 (de) * 2014-09-02 2016-03-09 Gemalto Sa System und verfahren zum schutz einer vorrichtung vor angriffen auf verarbeitungsabläufe unter verwendung einer code-zeiger-ergänzung
JP7476140B2 (ja) * 2021-06-15 2024-04-30 株式会社東芝 情報処理装置、情報処理方法、およびプログラム
CN117744075A (zh) * 2023-12-25 2024-03-22 国创芯科技(江苏)有限公司 一种芯片测试模式防护电路及防护方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0733973A1 (de) * 1995-03-21 1996-09-25 STMicroelectronics S.A. Nachweiseinrichtung für die Übereinstimmung von Informationen in einem integrierten Schaltkreis

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3946366A (en) * 1973-01-26 1976-03-23 Sanders Associates, Inc. Addressing technique employing both direct and indirect register addressing
JPS6159543A (ja) * 1984-08-31 1986-03-27 Hitachi Ltd 情報処理装置
JPS63167934A (ja) * 1986-12-29 1988-07-12 Matsushita Electric Ind Co Ltd レジスタ動的割当方法
JPS6419401A (en) * 1987-07-15 1989-01-23 Toyota Motor Corp Electronic controller
JPH04209038A (ja) * 1990-11-30 1992-07-30 Nec Corp シングルチップ・マイクロコンピュータ
US5434970A (en) * 1991-02-14 1995-07-18 Cray Research, Inc. System for distributed multiprocessor communication
JP3178147B2 (ja) * 1993-03-01 2001-06-18 株式会社デンソー バックアップメモリを備えた電子制御装置
US5784577A (en) * 1996-08-05 1998-07-21 Xilinx Inc Automated control system for programming PLDs
US5838893A (en) * 1996-12-26 1998-11-17 Microsoft Corporation Method and system for remapping physical memory
DE19701166A1 (de) * 1997-01-15 1998-07-23 Siemens Ag Verfahren zur Überwachung der bestimmungsgemäßen Ausführung von Softwareprogrammen
US6282501B1 (en) * 1998-10-20 2001-08-28 Adaptec, Inc. Disk drive testing
EP1151374B1 (de) * 1999-01-28 2017-08-02 Advanced Silicon Technologies, LLC Ausführung von programmen für eine erste rechnerarchitektur auf einem rechner mit einer zweiten architektur
DE19918620A1 (de) * 1999-04-23 2000-10-26 Giesecke & Devrient Gmbh Sicherung eines Rechnerkerns gegen äußere Manipulationen
JP2000353144A (ja) * 1999-06-11 2000-12-19 Nec Ic Microcomput Syst Ltd レジスタ制御方法
JP2001022410A (ja) * 1999-07-08 2001-01-26 Koyo Seiko Co Ltd プログラマブルコントローラのためのプログラム作成方法、およびプログラム作成装置、ならびにプログラム作成プログラムを記録した記録媒体

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0733973A1 (de) * 1995-03-21 1996-09-25 STMicroelectronics S.A. Nachweiseinrichtung für die Übereinstimmung von Informationen in einem integrierten Schaltkreis

Also Published As

Publication number Publication date
RU2003134151A (ru) 2005-05-27
RU2310906C2 (ru) 2007-11-20
CN1294480C (zh) 2007-01-10
DE10122505A1 (de) 2002-11-14
CN1507609A (zh) 2004-06-23
JP4537003B2 (ja) 2010-09-01
AU2002310806A1 (en) 2002-11-18
WO2002091168A3 (de) 2003-12-31
US20040210737A1 (en) 2004-10-21
WO2002091168A2 (de) 2002-11-14
JP2004531819A (ja) 2004-10-14
US7647495B2 (en) 2010-01-12

Similar Documents

Publication Publication Date Title
EP0520228B1 (de) Datenverarbeitungsanlage mit Zugriffsschutz
WO2002091168A2 (de) Verfahren zum schützen eines rechners gegen manipulation von registerinhalten und rechner zum durchführen des verfahrens
DE69330489T2 (de) Vorrichtung zum Schutz von Software
DE3048365C2 (de)
DE3407642C2 (de)
DE69419450T2 (de) Vorrichtung und Verfahren zum Schutz der Schlüssel einer IC-Karte
DE69230778T2 (de) Dynamische Programmverknüpfung zwischen Programmadressbereichen im Nicht-Überwachungsmodus
DE4107019C2 (de) Verfahren und Vorrichtung zum computergesteuerten Überprüfen der Annehmbarkeit von Kennwörtern
DE69626530T2 (de) Schutz von software gegen benutzung ohne erlaubnis
DE68928673T2 (de) System und verfahren zum schutz der integrität von rechnerdaten und software
DE69021935T2 (de) Verfahren zum Überprüfen der Integrität eines Programms oder von Daten und Einrichtung zur Durchführung dieses Verfahrens.
DE60127310T2 (de) Vorrichtung zum schutz digitaler daten
EP0155399A2 (de) Schutzanordnung zur Verhinderung der unerlaubten Ausführung eines Programms
WO2014206695A1 (de) Datenspeichervorrichtung zum geschützten datenaustausch zwischen verschiedenen sicherheitszonen
DE602004004079T2 (de) Befehl zur berechnung eines sicherheits-nachricht-authentifizierungskodes
EP3576001A1 (de) Computerimplementiertes verfahren zum übergeben eines datenstrings von einer anwendung an eine datenschutzeinrichtung
DE69716722T2 (de) Verfahren und vorrichtung für den schutz von daten mit verwendung von verriegelungswerten in einem rechnersystem
DE2810421A1 (de) Speicherschutzeinrichtung
EP1439446A1 (de) Verfahren zum Erweitern eines Programms um eine Kopierschutzfunktion
DE102013108073A1 (de) Datenverarbeitungsanordnung und verfahren zur datenverarbeitung
EP2405317A1 (de) Verfahren zur sicheren Parametrierung eines Sicherheitsgeräts
DE4034444A1 (de) Datenschuetzender arbeitsplatzrechner
WO2005048103A1 (de) Sichere erfassung von eingabewerten
DE4103173C5 (de) Vorrichtung zum Schutz gegen unautorisierte Benutzung von Software
DE3779692T2 (de) Wahlweises rechnerzugriff-schutzsystem.

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

AK Designated contracting states

Kind code of ref document: A2

Designated state(s): AT BE CH CY DK ES FI FR GB GR IE IT LI LU MC NL PT SE TR

AX Request for extension of the european patent

Extension state: AL LT LV MK RO SI

17P Request for examination filed

Effective date: 20040630

17Q First examination report despatched

Effective date: 20070315

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION HAS BEEN REFUSED

18R Application refused

Effective date: 20091109