DE102014000328A1 - Method for securing a functional process in a microprocessor system - Google Patents
Method for securing a functional process in a microprocessor system Download PDFInfo
- Publication number
- DE102014000328A1 DE102014000328A1 DE102014000328.0A DE102014000328A DE102014000328A1 DE 102014000328 A1 DE102014000328 A1 DE 102014000328A1 DE 102014000328 A DE102014000328 A DE 102014000328A DE 102014000328 A1 DE102014000328 A1 DE 102014000328A1
- Authority
- DE
- Germany
- Prior art keywords
- output data
- microprocessor
- crypto
- calculation
- backup process
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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/75—Protecting 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/755—Protecting 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Hardware Redundancy (AREA)
Abstract
Die Erfindung betrifft ein Verfahren zur Absicherung eines Funktionsprozesses in einem Mikroprozessorsystem mit einem Mikroprozessor und zumindest einem Krypto-Koprozessor, bei dem auf dem Mikroprozessor ein Funktionsprozess zur Abarbeitung einer vorbestimmten Aufgabe durchgeführt wird (14), gleichzeitig mit dem Funktionsprozess auf zumindest einem Krypto-Koprozessor ein Sicherungsprozess durchgeführt wird (12), bei dem mit festen Eingangsdaten eine Berechnung mit bekannten Soll-Ausgangsdaten durchgeführt wird, die von dem Sicherungsprozess als Ergebnis tatsächlich erhaltenen Ist-Ausgangsdaten mit den Soll-Ausgangsdaten verglichen werden (16), und im Fall, dass die Ist-Ausgangsdaten und die Soll-Ausgangsdaten nicht übereinstimmen, auf unzureichende Sicherheit bei der Durchführung des Funktionsprozesses geschlossen und eine Fehlerroutine abgearbeitet wird (20).The invention relates to a method for securing a functional process in a microprocessor system with a microprocessor and at least one crypto-coprocessor, in which a functional process for executing a predetermined task is performed on the microprocessor (14), simultaneously with the functional process on at least one crypto-co-processor a backup process is performed (12) in which a calculation with known target output data is performed with fixed input data, the actual output data actually obtained by the backup process being compared with the target output data (16), and in case the actual output data and the target output data do not match, inadequate safety in the execution of the functional process is closed and an error routine is executed (20).
Description
Die Erfindung betrifft ein Verfahren zur Absicherung eines Funktionsprozesses in einem Mikroprozessorsystem, das einen Mikroprozessor und zumindest einen Krypto-Koprozessor aufweist. Die Erfindung betrifft auch ein Mikroprozessorsystem mit einem derartigen, darin implementierten Verfahren, sowie einen Datenträger mit einem solchen Mikroprozessorsystem.The invention relates to a method for securing a functional process in a microprocessor system comprising a microprocessor and at least one crypto co-processor. The invention also relates to a microprocessor system with such a method implemented therein and to a data carrier having such a microprocessor system.
Die differentielle Fehleranalyse (nachfolgend als DFA, differential fault analysis, bezeichnet) stellt ein seit einiger Zeit bekanntes Verfahren dar, mit dem sich beispielsweise der geheime Schlüssel einer kryptographischen Berechnung ermitteln lässt. Dabei wird während einer kryptographischen Berechnung ein sogenannter DFA-Angriff auf den Mikroprozessor vorgenommen, indem beispielsweise eine Spannungsspitze oder ein Lichtblitz an den Mikroprozessor angelegt wird. Da Mikroprozessoren durch elektromagnetische Störungen in ihrer Funktion beeinträchtigt werden können, ist es möglich, durch einen solchen DFA-Angriff Fehler in der Berechnung des Mikroprozessors zu induzieren, aus denen sich der geheime Schlüssel ermitteln lässt.The differential error analysis (referred to below as DFA, differential fault analysis) represents a method that has been known for some time, with which, for example, the secret key of a cryptographic calculation can be determined. During a cryptographic calculation, a so-called DFA attack on the microprocessor is carried out by, for example, applying a voltage spike or a flash of light to the microprocessor. Since microprocessors can be impaired in their function by electromagnetic interference, it is possible to induce errors in the calculation of the microprocessor by means of such a DFA attack, from which the secret key can be determined.
Auch über das Gebiet der kryptographischen Berechnungen hinaus kann ein DFA-Angriff auf ein Mikroprozessorsystem dazu führen, dass der Mikroprozessor bei der Abarbeitung eines Funktionsprozesses ausnutzbare Fehler macht. Dabei wird jeder in dem Mikroprozessor durchgeführte Prozess, der eine gewünschte abzuarbeitende Aufgabe erfüllt, beispielsweise ein Lesekommando ausführt oder eine Berechnung durchführt, im Rahmen dieser Beschreibung als Funktionsprozesses bezeichnet. Erfolgt beispielsweise während der Berechnung einer Speicheradresse für einen Speicherzugriff ein DFA-Angriff auf den Mikroprozessor, so kann es vorkommen, dass auf Grund des DFA-Angriffs eine falsche Speicheradresse berechnet wird und ein Zugriff auf eigentlich gesperrte Speicherbereiche erzwungen wird.Even beyond the field of cryptographic computations, a DFA attack on a microprocessor system can cause the microprocessor to exploit exploitable errors in the execution of a functional process. In this case, each process performed in the microprocessor which fulfills a desired task to be performed, for example executes a read command or carries out a calculation, is referred to as a function process in the context of this description. For example, if a DFA attack on the microprocessor occurs during the calculation of a memory address for a memory access, it may happen that an incorrect memory address is calculated due to the DFA attack and an access to actually locked memory areas is forced.
Die bisher bekannten, in Hardware und Software implementierten Gegenmaßnahmen können DFA-Angriffe auf Chipkarten und deren Betriebssysteme nicht vollständig erkennen und abwehren. Insbesondere die Lichtdetektoren der Hardware haben sich meist als nur schwach wirksam erwiesen.The hitherto known countermeasures implemented in hardware and software can not completely detect and fend off DFA attacks on chip cards and their operating systems. In particular, the light detectors of the hardware have mostly proven to be only weakly effective.
In Software eingebaute Gegenmaßnahmen zur Erkennung von DFA-Angriffen kosten in der Regel viel Performance und/oder Speicherplatz und erfordern hohen Entwicklungsaufwand, so dass ein flächendeckender Einsatz dieser Gegenmaßnahmen bisher oft nicht möglich ist.Software built-in countermeasures to detect DFA attacks usually cost a lot of performance and / or disk space and require a lot of development effort, so widespread use of these countermeasures is often not possible.
Ein Beispiel einer in Software realisierten Sicherungsmaßnahme ist in der Druckschrift
Ausgehend davon liegt der Erfindung die Aufgabe zugrunde, ein Verfahren der eingangs genannten Art anzugeben, das die Nachteile des Stands der Technik vermeidet. Insbesondere soll das Verfahren einfach zu implementieren sein, möglichst global wirken, wenig Speicherplatz benötigen und einen möglich geringen Einfluss auf die Performance des Mikroprozessorsystems haben.Based on this, the present invention seeks to provide a method of the type mentioned, which avoids the disadvantages of the prior art. In particular, the method should be easy to implement, act as globally as possible, require little storage space and have a possibly small influence on the performance of the microprocessor system.
Diese Aufgabe wird durch die Merkmale der unabhängigen Ansprüche gelöst. Weiterbildungen der Erfindung sind Gegenstand der Unteransprüche.This object is solved by the features of the independent claims. Further developments of the invention are the subject of the dependent claims.
Bei dem erfindungsgemäßen Verfahren zur Absicherung eines Funktionsprozesses wird von einem Mikroprozessorsystem mit einem Mikroprozessor und zumindest einem Krypto-Koprozessor ausgegangen. Dabei
- – wird auf dem Mikroprozessor ein Funktionsprozess zur Abarbeitung einer vorbestimmten Aufgabe durchgeführt,
- – wird gleichzeitig mit dem Funktionsprozess auf zumindest einem Krypto-Koprozessor ein Sicherungsprozess durchgeführt, bei dem mit festen Eingangsdaten eine Berechnung mit bekannten Soll-Ausgangsdaten durchgeführt wird,
- – werden die von dem Sicherungsprozess als Ergebnis tatsächlich erhaltenen Ist-Ausgangsdaten mit den Soll-Ausgangsdaten verglichen, und
- – wird im Fall, dass die Ist-Ausgangsdaten und die Soll-Ausgangsdaten nicht übereinstimmen, auf unzureichende Sicherheit bei der Durchführung des Funktionsprozesses geschlossen und eine Fehlerroutine abgearbeitet oder zumindest veranlasst.
- A functional process is carried out on the microprocessor for the execution of a predetermined task,
- A securing process is carried out simultaneously with the functional process on at least one crypto coprocessor, in which a calculation with known nominal output data is carried out with fixed input data,
- The actual output data actually obtained by the backup process as a result are compared with the target output data, and
- - Is in the case that the actual output data and the target output data do not match, concluded inadequate security in the performance of the functional process and executed a fault routine, or at least arranged.
Prinzipiell werden bei dem Sicherungsprozess (und auch bei dem Funktionsprozess) Eingangsdaten zu Ausgangsdaten verarbeitet. Da der Sicherungsprozess eine vorbestimmte Berechnung mit festen Eingangsdaten durchführt, ist das bei fehlerfreier Berechnung erhaltene Ergebnis vorab bekannt. Erfolgt nun während der Abarbeitung des Funktionsprozesses ein Angriff, beispielsweise ein DFA-Angriff auf den Mikroprozessor, besteht eine gewisse Wahrscheinlichkeit, dass dieser Angriff auch den Sicherungsprozess des Krypto-Koprozessors beeinflusst und dort zu einer fehlerhaften Berechnung und damit zu abweichenden Ist-Ausgangsdaten führt. Der Sicherungsprozess hat somit die Funktion eines DFA-Angriffs-Sensors für den Funktionsprozess. Wie nachfolgend genauer erläutert, kann so mit vergleichsweise geringem Aufwand die Erkennungsquote von DFA-Angriffen auf den Mikroprozessor erhöht werden.In principle, in the backup process (and also during the functional process), input data is processed into output data. Since the backup process performs a predetermined calculation with fixed input data, the result obtained in error-free calculation is known in advance. If an attack occurs during the execution of the functional process, for example a DFA attack on the microprocessor, there is a certain probability that this attack will also affect the security process of the crypto co-processor influenced and leads there to a faulty calculation and thus to deviating actual output data. The backup process thus has the function of a DFA attack sensor for the functional process. As explained in more detail below, the detection rate of DFA attacks on the microprocessor can thus be increased with comparatively little effort.
Um die Performanceeinbußen durch den Sicherungsprozess gering zu halten, wird der Krypto-Koprozessor, auf dem der Sicherungsprozess durchgeführt wird, vorteilhaft mit einer geringeren Taktfrequenz als der Mikroprozessor betrieben. Bevorzugt wird der Krypto-Koprozessor mit einer um einen Faktor 2 oder mehr, weiter bevorzugt mit einer um einen Faktor 5 oder mehr, besonders bevorzugt um einen Faktor von ungefähr 10 oder mehr betrieben. Typischerweise wird der Krypto-Koprozessor mit einer derart geringeren Taktfrequenz betrieben, so dass durch eine einzige Durchführung des Sicherungsprozesses auf dem Krypto-Koprozessors typischerweise einige tausend Taktzyklen des Mikroprozessors abgedeckt werden.In order to minimize performance losses due to the backup process, the crypto co-processor on which the backup process is performed is advantageously operated at a lower clock frequency than the microprocessor. Preferably, the crypto-coprocessor is operated by a factor of 2 or more, more preferably by a factor of 5 or more, more preferably by a factor of about 10 or more. Typically, the crypto-coprocessor operates at such a slower clock frequency that typically a few thousand clock cycles of the microprocessor are covered by a single execution of the backup process on the crypto co-processor.
In einer vorteilhaften Gestaltung ist weiter vorgesehen, dass der Krypto-Koprozessor mit einer zufallsgesteuerten variablen Taktfrequenz betrieben wird, wodurch gezielt eine zusätzliche Variation in der Stromsignatur des Mikroprozessorsystems erzeugt werden kann.In an advantageous embodiment, it is further provided that the crypto-coprocessor is operated with a randomly controlled variable clock frequency, whereby specifically an additional variation in the current signature of the microprocessor system can be generated.
Nach Beendigung des Sicherungsprozesses wird mit Vorteil ein weiterer Sicherungsprozess gestartet. Dieser weitere Sicherungsprozess kann dieselbe Berechnung mit denselben Eingangsdaten erneut durchführen, oder kann auch eine andere vorbestimmte Berechnung mit anderen, festen Eingangsdaten durchführen, wie weiter unten genauer beschrieben. Vorteilhaft wird solange jeweils ein weiterer Sicherungsprozess gestartet, bis der Funktionsprozess endet und der Krypto-Koprozessor angehalten wird. Auf diese Weise ist der Funktionsprozess während seiner gesamten Ablaufdauer abgesichert.Upon completion of the backup process, another backup process is advantageously started. This further save process may re-execute the same calculation with the same input data, or may also perform another predetermined calculation with other fixed input data, as described in more detail below. Advantageously, each time another backup process is started until the functional process ends and the crypto-co-processor is stopped. In this way, the functional process is safeguarded throughout its duration.
In einer vorteilhaften Weiterbildung der Erfindung wird eine Gruppe von Berechnungen mit jeweils festen Eingangsdaten und bekannten Soll-Ausgangsdaten vorgegeben, und es wird in jedem Sicherungsprozess eine Berechnung aus dieser Gruppe durchgeführt. Die Auswahl der in einem Sicherungsprozess durchzuführenden Berechnung kann dabei nach einem vorbestimmten Schema oder zufällig erfolgen. Die Berechnungen und/oder die Eingangsdaten können teilweise gleich oder alle verschieden sein. Weiter können die Berechnungen auch mit unterschiedlichen Operandenlängen und/oder mit unterschiedlichen Rechenverfahren durchgeführt werden.In an advantageous development of the invention, a set of calculations is specified, each with fixed input data and known desired output data, and a calculation from this group is performed in each backup process. The selection of the calculation to be carried out in a security process can take place according to a predetermined scheme or at random. The calculations and / or the input data may be partly the same or all different. Furthermore, the calculations can also be carried out with different operand lengths and / or with different calculation methods.
Die festen Eingangsdaten und die Soll-Ausgangsdaten können wahlweise zu Beginn des Sicherungsprozesses in den Krypto-Koprozessor geladen werden, insbesondere in dem Krypto-Koprozessor zugeordnete Register. In manchen Ausgestaltungen, beispielsweise wenn durch den Sicherungsprozess bestimmte Speicherbereiche gesichert werden sollen, bietet es sich jedoch an, dass die festen Eingangsdaten und/oder die Soll-Ausgangsdaten von dem Krypto-Koprozessor aus einem oder mehreren vorbestimmten Speicherbereichen gelesen werden. Vorteilhaft ist dabei eine Gruppe von Eingangsdaten und Soll-Ausgangsdaten vorgesehen, die über mehrere Speicherbereiche verteilt und abwechselnd verwendet werden, um die Abdeckung zu erhöhen.The fixed input data and the desired output data may optionally be loaded into the crypto co-processor at the beginning of the backup process, in particular registers associated with the crypto co-processor. However, in some embodiments, for example, when certain memory areas are to be backed up by the backup process, it is recommended that the fixed input data and / or the target output data be read by the crypto co-processor from one or more predetermined memory areas. Advantageously, a group of input data and desired output data is provided, which are distributed over a plurality of memory areas and used alternately in order to increase the coverage.
Gemäß einer vorteilhaften Weiterbildung der Erfindung werden zusätzlich eine oder mehrere weitere Sicherungsmaßnahme(n) gegen einen DFA-Angriff auf den Funktionsprozesses durchgeführt. Die weiteren Sicherungsmaßnahmen können in Hardware und/oder Software realisiert sein.According to an advantageous development of the invention, one or more additional safety measure (s) are additionally performed against a DFA attack on the functional process. The further security measures can be implemented in hardware and / or software.
Bevorzugt wird der Funktionsprozess in der Fehlerroutine angehalten und der Mikroprozessor in einen gesicherten Zustand gebracht.Preferably, the functional process is stopped in the error routine and brought the microprocessor in a secure state.
Weist das Mikroprozessorsystem mehr als einen Krypto-Koprozessor auf, so kann der den Sicherungsprozess durchführende Koprozessor wechseln. Benötigt beispielsweise ein bestimmter Funktionsprozess einen ersten Krypto-Koprozessor, etwa zur Ausführung einer RSA-Verschlüsselung, so wird der Sicherungsprozess zur Absicherung dieses Funktionsprozesses auf einem zweiten Krypto-Koprozessor ausgeführt. Ein nachfolgender Sicherungsprozess für einen weiteren Funktionsprozess kann dagegen wieder auf dem ersten Krypto-Koprozessor ausgeführt werden.If the microprocessor system has more than one crypto coprocessor, then the coprocessor performing the backup process can change. For example, if a particular functional process requires a first crypto co-processor, such as to perform RSA encryption, the backup process to secure that functional process is performed on a second crypto-co-processor. A subsequent backup process for another functional process, however, can be performed again on the first crypto-co-processor.
Die Erfindung enthält auch ein Mikroprozessorsystem mit einem Mikroprozessor und zumindest einem Krypto-Koprozessor, mit einem darin implementierten Verfahren der oben beschriebenen Art. Die Erfindung enthält weiter einen Datenträger, insbesondere eine Chipkarte oder ein Chipmodul, mit einem darin eingerichteten Mikroprozessorsystem der beschriebenen Art.The invention also includes a microprocessor system having a microprocessor and at least one crypto-coprocessor, with a method of the type described above. The invention further includes a data carrier, in particular a chip card or a chip module, having a microprocessor system of the type described therein.
Nachfolgend wird die Erfindung anhand von Ausführungsbeispielen unter Bezugnahme auf die Figur näher erläutert.
Die Erfindung wird am Beispiel einer Chipkarte (Smart-Card) erläutert, deren Chipkartencontroller durch ein Mikroprozessorsystem mit einem Mikroprozessor und zumindest einem Krypto-Koprozessor gebildet ist.The invention will be explained using the example of a smart card, the smart card controller by a microprocessor system with a Microprocessor and at least one crypto-co-processor is formed.
Um die optische Lokalisierung der einzelnen Komponenten des Mikroprozessorsystems zu erschweren, sind große Teile der Logik, darunter insbesondere der Mikroprozessor, Busse, Register, MMU/MPU und die Koprozessoren, in einer sogenannten Glue Logic untergebracht. In dieser Glue Logic sind die einzelnen Strukturelemente, insbesondere die Gatter und Leitungen der Komponenten des Mikroprozessorsystems, nicht als nach Funktionalität räumlich getrennte Blöcke angelegt, sondern sind vielmehr stark durchmischt angeordnet. Eine solche Anordnung erschwert die Lokalisierung einer bestimmten Komponente innerhalb der Glue Logic und bewirkt, dass selbst ein lokaler Angriff auf eine bestimmte Komponente, beispielsweise mit einem fokussierten Laserstrahl, in aller Regel auch weitere Komponenten erfasst und beeinflusst. Die Strukturbreite in modernen Chipkartenkontrollern liegt nämlich bei nur einigen 10 nm, während ein für einen DFA-Angriff genutzter Laserstrahl einen Strahldurchmesser von einigen Mikrometern aufweist und daher in der Regel neben der angegriffenen Komponente auch Transistoren oder Gatter anderen Komponenten erfasst.To complicate the optical localization of the individual components of the microprocessor system, large parts of the logic, including in particular the microprocessor, buses, registers, MMU / MPU and the coprocessors, are housed in a so-called glue logic. In this logic logic, the individual structural elements, in particular the gates and lines of the components of the microprocessor system, are not arranged as blocks spatially separated according to functionality, but are rather strongly mixed. Such an arrangement complicates the localization of a particular component within the glue logic and causes even a local attack on a particular component, for example, with a focused laser beam, usually also detected and influenced other components. The structure width in modern chip card controllers is in fact only a few 10 nm, while a laser beam used for a DFA attack has a beam diameter of a few micrometers and therefore, in addition to the attacked component, transistors or gates usually also detect other components.
Ausgehend von dieser Beobachtung werden bei dem in
Konkret werden im Ausführungsbeispiel der Figur in einem Initialisierungsschritt
Die Eingangsdaten X und die Soll-Ausgangsdaten Ysoll werden in den Krypto-Koprozessor geladen und der Sicherungsprozess wird gestartet (Schritt
Im Sicherungsprozess führt der Krypto-Koprozessor nun die vorbestimmte Berechnung mit den Eingangsdaten X durch und erhält dabei tatsächliche Ist-Ausgangsdaten Yist ← f(X).In the backup process, the crypto co-processor now performs the predetermined calculation with the input data X and thereby obtains actual actual output data Y is ← f (X).
Am Ende der Berechnung löst der Krypto-Koprozessor einen Interrupt aus, in dessen Service Routine die Ist-Ausgangsdaten Yist mit den Soll-Ausgangsdaten Ysoll verglichen werden (Schritt
Stimmen die Ist-Ausgangsdaten Yist nicht mit den Soll-Ausgangsdaten Ysoll überein, so wird vermutet, dass die Abweichung auf einen Angriffsversuch auf den Mikroprozessor zurückgeht und dass die Sicherheit des Funktionsprozesses nicht gewährleistet ist. Es wird ein Fehlerbehandlungsschritt
Sofern bis zum Ende des Funktionsprozesses keine Abweichungen im Sicherungsprozess aufgetreten sind, wird davon ausgegangen, dass der Funktionsprozess sicher durchgeführt werden konnte. Im Schritt
Neben der hier beschriebenen Absicherung können zusätzliche weitere Sicherungsmaßnahmen gegen einen DFA-Angriff auf den Funktionsprozesses ergriffen werden. So kann etwa vorgesehen sein, beispielsweise einen Kryptoalgorithmus zweimal ablaufen zu lassen, die Ergebnisse zu vergleichen und im Fall übereinstimmender Ergebniswerte auf das Fehlen eines Angriffs zu schließen und das Ergebnis zu akzeptieren, während die Ergebnisse im Fall fehlender Übereinstimmung verworfen werden. Da die bekannten Sicherungsmaßnahmen keine vollständige Sicherheit bieten, besteht selbst wenn die weiteren Sicherungsmaßnahmen keinen Angriff erkannt haben, eine gewisse Wahrscheinlichkeit dafür, dass durch einen Angriff die Berechnung des oben beschriebenen Sicherungsprozess gestört wird und sich ein abweichendes Ist-Ergebnis Yist ergibt. Durch den Sicherungsprozess wird somit die Erkennungsquote von DFA-Angriffen weiter erhöht.In addition to the protection described here, additional additional safeguards against a DFA attack on the functional process can be taken. For example, it may be provided, for example, to run a crypto-algorithm twice, to compare the results and, in the case of matching result values, to conclude the absence of an attack and to accept the result while discarding the results in the event of mismatch. Since the known security measures do not provide complete security, even if the further security measures have not detected an attack, there is a certain probability that the calculation of the security process described above is disturbed by an attack and a different actual result Y ist . The backup process further increases the detection rate of DFA attacks.
Ein besonderer Vorteil des beschriebenen Absicherungsverfahrens besteht darin, dass der Funktionsprozess weitgehend unverändert bleiben kann. Es ist lediglich erforderlich, zu Beginn des Funktionsprozesses die Eingangsdaten X in den Krypto-Koprozessor zu laden und den Krypto-Koprozessor am Ende des Funktionsprozesses anzuhalten. Die Soll-Ausgangsdaten Ysoll können dabei ebenfalls in den Krypto-Koprozessor geladen werden oder in einem externen Speicherbereich abgelegt sein. Die Implementierung des Sicherungsprozesses ist daher einfach und kann für alle Funktionsprozesse, die auf diese Weise abgesichert werden sollen, gleich sein. Dadurch ergibt sich auch ein geringer zusätzlicher Speicherbedarf für die erfindungsgemäße Absicherung. A particular advantage of the described hedging method is that the functional process can remain largely unchanged. It is only necessary to load the input data X into the crypto co-processor at the beginning of the functional process and to stop the crypto co-processor at the end of the functional process. The desired output data Y soll can also be loaded into the crypto co-processor or stored in an external memory area. The implementation of the backup process is therefore simple and can be the same for all functional processes that should be secured in this way. This also results in a small additional memory requirement for the inventive fuse.
Ein weiterer Vorteil besteht in den geringen Performanceeinbußen durch den Sicherungsprozess. Zwar entstehen während des Ablaufs des Funktionsprozesses durch den Sicherungsprozess ausgelöste Interrupts, deren Laufzeit kann aber kurz gehalten werden, da in der Regel nur ein Vergleich von Soll- und Ist-Ausgangsdaten und ein Neustart des Sicherungsprozesses erforderlich ist. Dabei können sich Eingangsdaten X und gegebenenfalls die Soll-Ausgangsdaten Ysoll sogar noch in den Registern des Krypto-Koprozessors befinden.Another advantage is the low performance losses due to the backup process. It is true that interrupts triggered by the backup process occur during the execution of the function process, but their runtime can be kept short, because usually only a comparison of setpoint and actual output data and a restart of the backup process is required. In this case, input data X and possibly also the desired output data Y soll may even be located in the registers of the crypto co-processor.
Die Performanceeinbußen können zudem dadurch minimiert werden, dass der Krypto-Koprozessor bei der Abarbeitung des Sicherungsprozesses mit einer möglichst geringen Taktfrequenz betrieben wird. Eine einzige Berechnung im Krypto-Koprozessor kann so mehrere tausend Taktzyklen des Mikroprozessors abdecken. Zudem kann für den Sicherungsprozess eine lang andauernde Rechenoperation festgelegt werden, beispielsweise eine Modulo-Rechnung mit großer Operandenlänge von beispielsweise 1024 Bit, 2048 Bit oder mehr.The performance losses can also be minimized by operating the crypto-coprocessor with the lowest possible clock frequency during execution of the backup process. A single calculation in the crypto co-processor can thus cover several thousand clock cycles of the microprocessor. In addition, a long-lasting arithmetic operation can be defined for the backup process, for example a modulo calculation with a large operand length of, for example, 1024 bits, 2048 bits or more.
Ein weiterer Vorteil der beschriebenen Absicherung besteht darin, dass durch den parallel laufenden Sicherungsprozess und die Interrupts die Stromsignatur des Funktionsprozesses verändert wird, was einerseits den Schutz gegen SPA-/DPA-Angriffe (SPA = Simple Power Analysis, DPA = Differential Power Analysis) erhöht und andererseits auch das Triggern von DFA-Angriffen auf Charakteristika der Stromsignatur des Mikroprozessorsystems erschwert.A further advantage of the described protection is that the current signature of the functional process is changed by the parallel running backup process and the interrupts, which on the one hand increases the protection against SPA / DPA attacks (SPA = DPA attacks) and, on the other hand, also complicates the triggering of DFA attacks on characteristics of the current signature of the microprocessor system.
Um eine besonders große Variation der Stromsignatur zu erzeugen, kann auch eine Gruppe von Berechnungen f1, f2, ... fn mit jeweils festen Eingangsdaten X1, X2, ... Xn und bekannten Soll-Ausgangsdaten Y1,soll, Y2,soll, ... Yn,soll vorgegeben werden, wobei
Eine weitere Möglichkeit zur gezielten Erzeugung zusätzlicher Variation in der Stromsignatur besteht darin, den Krypto-Koprozessor mit einer zufallsgesteuerten, variablen Taktfrequenz zu betreiben.Another possibility for the targeted generation of additional variation in the current signature is to operate the crypto-co-processor with a randomly controlled, variable clock frequency.
Das beschriebene Absicherungsverfahren schützt gegen Angriffe auf Glue Logic Bereiche, da durch einen Angriff die Berechnung im hier beschriebenen Sicherungsprozess gestört wird und sich in der Regel ein vom Soll-Ergebnis Ysoll abweichendes Ist-Ergebnis Yist ergibt.The described protection method protects against attacks on glue logic areas, since an attack interferes with the calculation in the backup process described here and generally results in an actual result Y ist deviating from the target result Y soll .
Das Absicherungsverfahren ist allerdings auch bei Mikroprozessorsystemen ohne Glue Logic, also mit optisch streng getrennten Funktionsblöcken oft wirkungsvoll, da ein Lichtangriff zu Spannungseinbrüchen oder Spannungsspitzen führen kann, die sich auch auf entfernte Schaltungsteile auswirken und daher ebenfalls ein abweichendes Ergebnis bei der Berechnung des Sicherungsprozesses erzeugen können. Darüber hinaus gibt es neben Lichtangriffen auch andere, ohnehin global wirkende DFA-Angriffsverfahren, wie etwa Spannungsglitches, die stets auch auf entfernte Schaltungsteile wirken.However, the protection method is often effective even in microprocessor systems without glue logic, so with optically strictly separated function blocks, as a light attack can lead to voltage drops or voltage spikes, which also affect remote circuit parts and therefore can also produce a different result in the calculation of the backup process , In addition to light attacks, there are also other, anyway global, DFA attack methods, such as voltage glitches, which always act on remote circuit components.
Weiter können mit dem beschriebenen Absicherungsverfahren nicht nur Angriff auf Logikbereiche, sondern auch Angriffe auf Speicherbereiche erkannt werden, sofern die Eingangsdaten und/oder die Soll-Ausgangsdaten über diese Bereiche verteilt sind. Hierzu werden die Eingangsdaten und die Soll-Ausgangsdaten vorteilhaft nicht einmalig am Beginn des Funktionsprozesses in die Register des Krypto-Koprozessors geladen, sondern werden nur über Zeiger referenziert. Der Krypto-Koprozessor liest dann zu Beginn oder während der vorbestimmten Berechnung die Eingangsdaten bzw. die Soll-Ausgangsdaten direkt aus den referenzierten Speicherbereichen. Auch hier bietet es sich an, eine Gruppe von mehreren Eingangsdaten und Soll-Ausgangsdaten vorzusehen, die über mehrere Speicherbereiche verteilt und abwechselnd verwendet werden, um die Abdeckung zu erhöhen.Furthermore, with the described safeguarding method, not only attacks on logic areas but also attacks on memory areas can be detected, provided that the input data and / or the desired output data are distributed over these areas. For this purpose, the input data and the desired output data are advantageously not loaded once in the registers of the crypto co-processor at the beginning of the functional process, but are only referenced via pointers. The crypto co-processor then reads the input data or the desired output data directly from the referenced memory areas at the beginning or during the predetermined calculation. Again, it is useful to provide a set of multiple input data and target output data that are spread across multiple memory areas and used alternately to increase coverage.
ZITATE ENTHALTEN IN DER BESCHREIBUNG QUOTES INCLUDE IN THE DESCRIPTION
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.This list of the documents listed by the applicant has been generated automatically and is included solely for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions.
Zitierte PatentliteraturCited patent literature
- EP 1569118 B1 [0006] EP 1569118 B1 [0006]
Claims (11)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102014000328.0A DE102014000328A1 (en) | 2014-01-14 | 2014-01-14 | Method for securing a functional process in a microprocessor system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102014000328.0A DE102014000328A1 (en) | 2014-01-14 | 2014-01-14 | Method for securing a functional process in a microprocessor system |
Publications (1)
Publication Number | Publication Date |
---|---|
DE102014000328A1 true DE102014000328A1 (en) | 2015-07-16 |
Family
ID=53484671
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102014000328.0A Withdrawn DE102014000328A1 (en) | 2014-01-14 | 2014-01-14 | Method for securing a functional process in a microprocessor system |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE102014000328A1 (en) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1569118B1 (en) | 2004-02-24 | 2008-10-22 | Giesecke & Devrient GmbH | Method for safe calculation of results in a microprocessor system |
-
2014
- 2014-01-14 DE DE102014000328.0A patent/DE102014000328A1/en not_active Withdrawn
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1569118B1 (en) | 2004-02-24 | 2008-10-22 | Giesecke & Devrient GmbH | Method for safe calculation of results in a microprocessor system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1611510B1 (en) | Controlled execution of a program used for a virtual machine on a portable data carrier | |
DE102014112865A1 (en) | Electronic circuit and method for monitoring data processing | |
DE60128646T2 (en) | Method and device for protection against unauthorized use of an integrated circuit | |
DE102014214792A1 (en) | Apparatus and method for accessing an encrypted storage section | |
DE102016210788A1 (en) | Component for processing a worthy of protection date and method for implementing a security function to protect a worthy of protection date in such a component | |
EP1272984B1 (en) | Portable data carrier with protection against side channel attacks | |
DE102014204835A1 (en) | Method for monitoring a computing unit | |
DE102015209120A1 (en) | Computing device and operating method for this | |
DE602005003258T2 (en) | Control of the execution of an algorithm by an integrated circuit | |
WO2005024605A1 (en) | Device and method for the reliable execution of a program | |
DE102014000328A1 (en) | Method for securing a functional process in a microprocessor system | |
DE102005042790B4 (en) | Integrated circuit arrangement and method for operating such | |
EP2545483A1 (en) | Protection against access violation during the execution of an operating sequence in a portable data carrier | |
DE10164419A1 (en) | Method and arrangement for protecting digital circuit parts | |
EP3804209B1 (en) | Method having safe-error defensive measure | |
DE102012015158A1 (en) | Protected against spying protected cryptographic calculation | |
DE10307797B4 (en) | Device and method for determining an irregularity in a sequence of a utility | |
EP3371733B1 (en) | Encrypting the memory content of a memory in an embedded system | |
DE102004016342B4 (en) | Detection device for detecting manipulative attacks on electrical circuits, especially for chip card use, wherein the characteristic current over a specified time period is recorded and compared with a stored characteristic curve | |
DE102023106166B3 (en) | SAFETY CONTROLLER AND METHOD FOR PERFORMING A SELECTION FUNCTION | |
DE102011107104B4 (en) | Portable security module and method for its operation to defend against an attack in real time using pattern recognition | |
EP2318974B1 (en) | Method for operating a transaction-based flow controller | |
EP1760929B1 (en) | Protected cryptographic method | |
DE102015222968A1 (en) | Operating method for an electronic device and electronic device | |
DE102015203319A1 (en) | Circuitry and method for command current protection |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R012 | Request for examination validly filed | ||
R081 | Change of applicant/patentee |
Owner name: GIESECKE+DEVRIENT MOBILE SECURITY GMBH, DE Free format text: FORMER OWNER: GIESECKE & DEVRIENT GMBH, 81677 MUENCHEN, DE |
|
R120 | Application withdrawn or ip right abandoned |