DE102004061312B4 - Vorrichtung und Verfahren zum Detektieren eines potentiellen Angriffs auf eine kryptographische Berechnung - Google Patents

Vorrichtung und Verfahren zum Detektieren eines potentiellen Angriffs auf eine kryptographische Berechnung Download PDF

Info

Publication number
DE102004061312B4
DE102004061312B4 DE102004061312A DE102004061312A DE102004061312B4 DE 102004061312 B4 DE102004061312 B4 DE 102004061312B4 DE 102004061312 A DE102004061312 A DE 102004061312A DE 102004061312 A DE102004061312 A DE 102004061312A DE 102004061312 B4 DE102004061312 B4 DE 102004061312B4
Authority
DE
Germany
Prior art keywords
parameter
masked
masking
result
calculation
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.)
Active
Application number
DE102004061312A
Other languages
English (en)
Other versions
DE102004061312A1 (de
Inventor
Wieland Dr. Fischer
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.)
Infineon Technologies AG
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
Priority to DE102004061312A priority Critical patent/DE102004061312B4/de
Priority to US11/313,241 priority patent/US7801298B2/en
Publication of DE102004061312A1 publication Critical patent/DE102004061312A1/de
Application granted granted Critical
Publication of DE102004061312B4 publication Critical patent/DE102004061312B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • 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
    • H04L9/004Countermeasures against attacks on cryptographic mechanisms for fault attacks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking or blinding
    • H04L2209/046Masking or blinding of operations, operands or results of the operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

Vorrichtung zum Detektieren eines potentiellen Angriffs auf eine kryptographische Berechnung, die eine Berechnung mit wenigstens einem Parameter durchführt, mit folgenden Merkmalen:
einer ersten Einrichtung (101) zum Bereitstellen von einem gemäß einem ersten Maskierungsalgorithmus maskierten Parameter;
einer ersten Einrichtung (103) zum Durchführen der Berechnung mit dem maskierten Parameter, um ein maskiertes Ergebnis der Berechnung zu erhalten;
einer Einrichtung (105) zum Ummaskieren des maskierten Ergebnisses, die ausgebildet ist, um das maskierte Ergebnis so zu verarbeiten, dass ein ummaskiertes Ergebnis erhalten wird, das gemäß einem zweiten Maskierungsalgorithmus maskiert ist;
einer zweiten Einrichtung (109) zum Bereitstellen von einem gemäß dem ersten Maskierungsalgorithmus maskierten Parameter;
einer zweiten Einrichtung (111) zum Durchführen der Berechnung mit dem bereitgestellten maskierten Parameter, um ein zweites maskiertes Ergebnis zu erhalten; und
einer Einrichtung (107) zum Untersuchen des ummaskierten Ergebnisses und des zweiten maskierten Ergebnisses, um den potentiellen Angriff zu detektieren.

Description

  • Die vorliegende Erfindung bezieht sich auf Detektion von kryptographischen Angriffen auf kryptographische Berechnungseinheiten, und insbesondere auf Detektion von einer Beeinflussung der kryptographischen Einheiten von außen im Rahmen des kryptographischen Angriffs.
  • Zwei der bekanntesten Angriffsszenarien auf Sicherheitsbausteine (Security-Bausteine) sind die differentielle Leistungsanalyse (differential power analysis, DPA) und Fehlerangriffe (fault attacks, FA). Jede Art dieser Bausteine muss in der Lage sein, diese Angriffe abzuwehren.
  • Bei einem DPA-Angriff wird auf der Basis einer Messung einer Leistung, die von einem kryptographischen Baustein während einer kryptographischen Berechnung mit vorbestimmten Angriffsparametern verbraucht wird, eine Information abgeleitet, die beispielsweise zu einer Offenlegung eines durch die kryptographische Berechnung verwendeten privaten Schlüssels führt.
  • Um einen DPA-Angriff zu vereiteln, können unterschiedliche Zeitverzögerungen implementiert werden, um die von einem DPA-Angriff ausgenutzten Verarbeitungsmuster so zu verändern, dass die zu einer Offenlegung des privaten Schlüssels notwendigen charakteristischen Merkmale in dem Leistungsverlauf nicht auftreten.
  • Eine andere Möglichkeit besteht darin, die kryptographischen Daten zu maskieren, wobei die kryptographischen Daten mit beispielsweise Maskierungszahlen derart verknüpft werden, dass eine Leistungsanalyse nicht zu dem gewünschten Erfolg führt.
  • Bei den Fehlerattacken handelt es sich hingegen um kryptographische Angriffe, bei denen beispielsweise durch eine äußere Einwirkung auf einen kryptographischen Chip Fehler in der kryptographischen Berechnung herbeigeführt werden, die zu einer Offenlegung des privaten Schlüssels führen können.
  • Fehlerattacken können beispielsweise mit Sensorik und spezieller Software abgewehrt werden. Ersteres löst das Problem jedoch nur symptomatisch, da eine Einwirkung, nicht jedoch die Wirkung erkannt wird. Letzteres ist nur gut in speziellen Situationen möglich, beispielsweise bei einer RSA-Berechnung, aber schlecht bei der allgemeinen Ausführung vom Code in der CPU.
  • DPA-Attacken können beispielsweise durch Erzeugung eines ausgeglichenen Stromprofils, z.B. durch Dual-Rail with Precharge in FullCustom, durch Erzeugung durch Strom- bzw. Zeitlichem Rauschen oder durch Randomisierung der verarbeiteten Daten abgewehrt werden. Letzteres ist wiederum nur in speziellen Situationen durch die Software möglich, beispielsweise für die RSA-Berechnung. Ersteres fordert hingegen ein sehr aufwändiges Design, so dass ein Semi-Custom Design noch nicht möglich ist, und garantiert nicht notwendigerweise einen Erfolg. Rauschen als Maskierungsparameter kann eine DPA-Analyse erschweren, macht sie jedoch nicht unmöglich.
  • Die US 2001/0053220 A1 zeigt ein Verfahren und Vorrichtungen zum Verbessern von DES- und anderen kryptographischen Protokollen gegen externe Abhörattacken durch Reduktion der Menge (und des Signal-Zu-Rauschverhältnisses) von Nutzinformationen, welche während der Verarbeitung entweichen können. Eine verbesserte DES-Implementation des sicheren vorgeschlagenen Ansatzes verwendet stattdessen zwei 56-Bit lange Schlüssel (K1 und K2) und zwei 64-Bit lange unverschlüsselte Nachrichten (M1 und M2), wobei jeder mit einer Permutation (z. B. K1P, K2P und M1P, M2P) verbunden ist, so dass K1P {K1} XOR K2P {K2} gleich dem „Standard" DES-Schlüssel K ist und M1P {M1} XOR M2P {M2} gleich der „Standard"-Nachricht ist.
  • Die Veröffentlichung „On Boolean and Arithmetic Masking against Differential Power Analysis", verfasst von Coron, J.-S. und Goubin, L. veröffentlicht in „Cryptographic Hardware and Embedded Systems" – CHES 2000, vol. 1965 of Lecture Notes in Computer Science, Springer Verlag, 2000, Seiten 231–237, offenbart, dass seit der Ankündigung der „Differential Power Analysis" – DPA durch Paul Kocher et al. einige Gegenmaßnahmen vorgeschlagen wurden, um Softwareimplementationen von kryptographischen Algorithmen zu schützen. In einem Versuch zum Reduzieren des resultierenden Speicher- und Ausführungszeit-Überhangs hat kürzlich Thomas Messerges ein allgemeines Verfahren vorgeschlagen, das alle Zwischendaten maskiert. In dieser Maskierung wird ein Verfahren verwendet, um zwischen einer logischen Maskierung und einer arithmetischen Maskierung zu wechseln. Die oben bezeichnete Veröffentlichung zeigt jedoch, dass der Algorithmus „Boolean to Arithmetic", der von T. Messerges vorgeschlagen wurde, nicht ausreichend ist, um eine DPA zu verhindern.
  • Es ist die Aufgabe der vorliegenden Erfindung, ein sichereres kryptographisches Abwehrkonzept zu schaffen.
  • Diese Aufgabe wird durch eine Vorrichtung gemäß Anspruch 1 oder durch ein kryptographisches System gemäß Anspruch 23 oder durch ein Verfahren gemäß Anspruch 24 oder durch ein Verfahren gemäß Anspruch 25 oder durch ein Computerprogramm gemäß Anspruch 26 gelöst.
  • Der vorliegenden Erfindung liegt die Erkenntnis zugrunde, dass der DPA-Angriff vereitelt und der FA-Angriff detektiert werden kann, wenn kryptographische Daten, bevor sie kryptographisch verarbeitet werden, mit Hilfe von unterschiedlichen Maskierungsparametern maskiert werden (DPA-Abwehr) wobei ein maskiertes Ergebnis der Berechnung der maskierten Daten weiterverarbeitet wird, um einen Fehlerangriff zu detektieren, der beispielsweise während der kryptographischen Berechnung stattgefunden hat.
  • Erfindungsgemäß wird das Design einer DPA- und FA-resistenten ALU ermöglicht, was sogar dann gewährleistet werden kann, wenn als Designmethodik Semi-Custom Design, z.B. Asynchron-Design benutzt wird.
  • Erfindungsgemäß liegen alle zusätzlichen Delays außerhalb des Datenpfades – zumindest ist es möglich, eine solche Anordnung hiermit zu realisieren, da beispielsweise das oben erwähnte maskierte Ergebnis bzw. das in Kopie außerhalb des Hauptdatenpfades verarbeitet werden kann.
  • Viele Attacken, die auf die ALU wirken, werden an der Stelle detektiert, an der sie relevant sind. Die Ursache bei einem Angriff, wie z.B. Strahlung oder Spike, ist nämlich uninteressant, solange sie keine Wirkung entfaltet. Dies bedeutet, dass ein Arbeitsbereich des Chips nicht künstlich eingeschränkt werden muss. Darüber hinaus kann unter Verwendung des erfindungsgemäßen Ansatzes ein stabileres Design realisiert werden.
  • Da gemäß der vorliegenden Erfindung die Fehlerattacke stets unter Verwendung von maskierten Daten bzw. Ergebnissen detektiert wird, wird hierzu beispielsweise eine Klartextnachricht als Eingangsdaten nicht benötigt. Dadurch wird kein zusätzliches kryptographisches Risiko herbeigeführt.
  • Die Erfindung schafft ferner ein Konzept, mit dem gleichzeitig DPA-Angriffe abgewehrt und Fehlerangriffe detektiert werden können.
  • Weitere Ausführungsbeispiele werden anhand der beiliegenden Zeichnungen erläutert. Es zeigen:
  • 1 ein Blockdiagramm einer Vorrichtung zum Detektieren eines potentiellen Angriffs gemäß einem Ausführungsbeispiel;
  • 2 ein Blockdiagramm einer Vorrichtung zum Detektieren eines potentiellen Angriffs gemäß einem weiteren Ausführungsbeispiel; und
  • 3 ein Blockdiagramm einer Vorrichtung zum Detektieren eines potentiellen Angriffs gemäß einem weiteren Ausführungsbeispiel.
  • 1 zeigt eine Vorrichtung zum Detektieren eines potentiellen Angriffs auf eine kryptographische Berechnung, die eine Berechnung mit wenigstens einem Parameter durchführt, mit einer ersten Einrichtung 101 zum Bereitstellen von einem gemäß einem ersten Maskierungsalgorithmus maskierten Parameter, einer ersten Einrichtung 103 zum Durchführen der Berechnung mit dem maskierten Parameter, um ein maskiertes Ergebnis der Berechnung zu erhalten, einer Einrichtung 105 zum Ummaskieren des maskierten Ergebnisses, die ausgebildet ist, um das maskierte Ergebnis so zu verarbeiten, dass ein ummaskiertes Ergebnis erhalten wird, das gemäß einem zweiten Maskierungsalgorithmus maskiert ist, einer zweiten Einrichtung 109 zum Bereitstellen von einem gemäß dem ersten Maskierungsalgorithmus maskierten Parameter, einer zweiten Einrichtung 111 zum Durchführen der Berechnung mit dem bereitgestellten maskierten Parameter, um ein zweites maskiertes Ergebnis zu erhalten, und einer Einrichtung 107 zum Untersuchen des ummaskierten Ergebnisses und des zweiten maskierten Ergebnisses, um den potentiellen Angriff zu detektieren.
  • Die Berechnung kann beispielsweise eine Negation eines Parameters umfassen. Darüber hinaus kann die Berechnung eine Berechnungsverknüpfung umfassen, beispielsweise wenn ein Parameter (z.B. eine Zahl) mit einem weiteren Parameter (z.B. einer Zahl) verknüpft wird.
  • Die erste Einrichtung 101 zum Bereitstellen ist beispielsweise ausgebildet, um einen Parameter mit einem ersten Maskierungsparameter unter Verwendung des ersten Maskierungsalgorithmus zu maskieren, um den maskierten Parameter bereitzustellen.
  • Die in 1 dargestellte Vorrichtung kann ausgebildet sein, um einen potentiellen Angriff auf eine kryptographische Berechnung, die eine Berechnungsverknüpfung eines ersten Parameters mit einem zweiten Parameter durchführt, zu detektieren. Die Vorrichtung umfasst die erste Einrichtung 101 zum Bereitstellen von einem gemäß einem ersten Maskierungsalgorithmus maskierten ersten und zweiten Parameter. Die erste Einrichtung 101 zum Bereitstellen weist Ausgänge auf, die mit Eingängen der ersten Einrichtung 103 zum Durchführen der Berechnung verbunden sind. In dem in 1 dargestellten Ausführungsbeispiel umfasst die erste Einrichtung 101 zum Be reitstellen zwei Ausgänge, über die jeweils der maskierte erste und zweite Parameter ausgegeben werden.
  • Die erste Einrichtung 103 zum Durchführen der Berechnung umfasst einen Ausgang, der mit der Einrichtung 105 zum Ummaskieren verbunden ist. Die Einrichtung zum Ummaskieren weist einen Ausgang auf, der mit einem Eingang der Einrichtung zum Untersuchen verbunden ist.
  • Die in 1 dargestellte Vorrichtung umfasst ferner die zweite Einrichtung 109 zum Bereitstellen von einem gemäß dem ersten Maskierungsalgorithmus maskiertem ersten und zweiten Parameter, um einen bereitgestellten maskierten ersten und zweiten Parameter zu erhalten. Die zweite Einrichtung 109 zum Bereitstellen weist Ausgänge auf, die mit Eingängen der zweiten Einrichtung 111 zum Durchführen der Berechnung verbunden sind. Die zweite Einrichtung 111 zum Durchführen der Berechnung weist einen Ausgang auf, der mit einem weiteren Eingang der Einrichtung 107 zum Untersuchen verbunden ist.
  • Die erste Einrichtung 101 ist ausgebildet, um einen gemäß einem ersten Maskierungsalgorithmus maskierten ersten und zweiten Parameter bereitzustellen. Die erste Einrichtung 103 ist ausgebildet, um den maskierten ersten und zweiten Parameter zu empfangen, und um die Berechnungsverknüpfung mit dem maskierten ersten und zweiten Parameter durchzuführen, um ein erstes maskiertes Ergebnis der Berechnung zu erhalten.
  • Die zweite Einrichtung 109 ist ausgebildet, um den gemäß dem ersten Maskierungsalgorithmus maskierten ersten und zweiten Parameter bereitzustellen. Der bereitgestellte maskierte erste Parameter und der bereitgestellte maskierte zweite Parameter werden der zweiten Einrichtung 111 zur Verfügung gestellt, die ausgebildet ist, um mit dem bereitgestellten maskierten ersten und zweiten Parameter die Berechnungsverknüpfung durchzuführen, um ein zweites maskiertes Ergebnis zu erhalten.
  • Das zweite maskierte Ergebnis wird an die Einrichtung 107 zum Untersuchen geliefert.
  • Das erste maskierte Ergebnis der Berechnung wird an die Einrichtung 105 zum Ummaskieren geliefert, die ausgebildet ist, um das erste maskierte Ergebnis so zu verarbeiten, dass ein ummaskiertes Ergebnis erhalten wird, das gemäß einem zweiten Maskierungsalgorithmus maskiert ist. Das ummaskierte Ergebnis wird an die Einrichtung 107 zum Untersuchen geliefert. Die Einrichtung 107 zum Untersuchen ist ausgebildet, um das ummaskierte Ergebnis und um das zweite maskierte Ergebnis zu untersuchen, um den Angriff zu detektieren.
  • Die erste Einrichtung 103 und die zweite Einrichtung 111 zum Durchführen der Berechnung können voneinander getrennt sein. Gemäß einem weiteren Aspekt können die erste und die zweite Einrichtung zum Durchführen der Berechnung jedoch von einer Einrichtung umfasst sein, die ausgebildet ist, um die Berechnungsverknüpfung des maskierten ersten und zweiten Parameters, die von der ersten Einrichtung 101 bereitgestellt werden, als auch um die Berechnungsverknüpfung des bereitgestellten maskierten ersten und zweiten Parameters, die von der zweiten Einrichtung 109 zum Bereitstellen bereitgestellt werden, durchzuführen.
  • Gemäß einem weiteren Aspekt ist die erste Einrichtung 101 zum Bereitstellen ausgebildet, um einen ersten Parameter mit einem ersten Maskierungsparameter unter Verwendung des ersten Maskierungsalgorithmus zu maskieren, um den maskierten ersten Parameter bereitzustellen, und um einen zweiten Parameter mit einem zweiten Maskierungsparameter unter Verwendung des ersten Maskierungsalgorithmus zu maskieren, um den maskierten zweiten Parameter bereitzustellen. Bei dem ersten und zweiten Maskierungsparameter kann es sich beispielsweise um Zufallszahlen handeln.
  • Der erste Maskierungsalgorithmus kann beispielsweise eine erste Maskierungsverknüpfung umfassen. In diesem Fall kann die erste Einrichtung 101 zum Bereitstellen ausgebildet sein, um die erste Maskierungsverknüpfung durchzuführen, um den ersten Parameter mit dem ersten Maskierungsparameter zu verknüpfen, und um den zweiten Parameter mit dem zweiten Maskierungsparameter zu verknüpfen, wo bei der ersten Maskierungsverknüpfung und der Berechnungsverknüpfung dieselbe Verknüpfungsart zugrunde liegt.
  • Bei der Verknüpfungsart kann es sich beispielsweise um eine arithmetische Verknüpfungsart handeln, die beispielsweise die folgenden arithmetischen Operationen umfasst: Addition, Subtraktion, Multiplikation und Division. In diesem Fall handelt es sich bei der Berechnungsverknüpfung und bei der ersten Maskierungsverknüpfung um arithmetische Verknüpfungen, beispielsweise um Additionen. Die erste Maskierungsverknüpfung und die Berechnungsverknüpfung können gleiche Verknüpfungsoperation umfassen. Gemäß einem weiteren Aspekt ist es jedoch denkbar, dass die erste Maskierungsverknüpfung und die Berechnungsverknüpfung unterschiedliche arithmetische Operationen aufweisen können. So kann beispielsweise die erste Maskierungsverknüpfung eine Subtraktion umfassen, während die Berechnungsverknüpfung eine Addition umfasst.
  • Bei der Verknüpfungsart kann es sich jedoch um eine Boolsche Verknüpfungsart, d.h. um eine logische Verknüpfungsart handeln. In diesem Fall handelt es sich bei der ersten Maskierungsverknüpfung und bei der Berechnungsverknüpfung um eine logische Verknüpfung, die die folgenden logischen Operationen umfassen kann: „oder" (or), „nicht-oder" (nor), „exklusiv-oder" (xor), „und" (and), sowie „nicht-und" (nand). Die von der Berechnungsverknüpfung und von der ersten Maskierungsverknüpfung umfassten logischen Operationen können gleich oder unterschiedlich sein. Umfasst die erste Masierungsverknüpfung beispielsweise ein „exklusiv-oder" (xor) oder ein „exklusiv- nicht-oder" (xnor), so kann die Berechnungsverknüpfung beispielsweise ein „und" bzw. ein „nicht-und" umfassen.
  • In Abhängigkeit von der Berechnung (der Berechnungsverknüpfung) zugrunde liegenden Verknüpfungsart können die erste Einrichtung 103 zum Durchführen der Berechnung als auch die zweite Einrichtung 111 zum Durchführen der Berechnung ausgebildet sein, entweder eine arithmetische oder eine logische Verknüpfung durchzuführen. In Abhängigkeit von der von der ersten Einrichtung 103 zum Durchführen der Berechnung durchgeführten Verknüpfungsart, kann die erste Einrichtung 101 zum Bereitstellen ausgebildet sein, um entweder eine arithmetische oder eine logische Verknüpfung durchzuführen. Mit anderen Worten ausgedrückt, ist die erste Einrichtung 101 zum Bereitstellen ausgebildet, um die Parameter arithmetisch zu maskieren (arithmetische Maske), wenn die erste Einrichtung 103 zum Durchführen der Berechnung ausgebildet ist, um eine arithmetische Verknüpfung durchzuführen. Analog kann die erste Einrichtung 101 zum Bereitstellen ausgebildet sein, um die Parameter mit Hilfe einer logischen Verknüpfung zu maskieren (logische Maske), wenn die erste Einrichtung 103 ausgebildet ist, um eine logische Verknüpfung durchzuführen.
  • Beispielsweise ist die erste Einrichtung 101 zum Bereitstellen ausgebildet, um den ersten Parameter und den ersten Maskierungsparameter zu addieren, und um den zweiten Parameter und den zweiten Maskierungsparameter zu addieren, um eine logische Maske zu erzeugen.
  • Gemäß einem weiteren Aspekt kann die erste Einrichtung 101 zum Bereitstellen ausgebildet sein, um den ersten Parameter mit dem ersten Maskierungsparameter und um den zweiten Parameter mit dem zweiten Maskierungsparameter durch eine logische Verknüpfung zu verknüpfen, beispielsweise durch eine „exklusiv-oder"-Verknüpfung oder durch eine „exklusiv-nicht-oder"-Verknüpfung zu verknüpfen. In dem Fall kann die erste Einrichtung 103 zum Durchführen ausgebildet sein, um den mas kierten ersten Parameter mit dem maskierten zweiten Parameter durch eine „und"- oder durch eine „nicht-und"-Verknüpfung zu verknüpfen, um das erste maskierte Ergebnis zu erhalten, das eine logische Maske aufweist.
  • Die von der ersten Einrichtung 103 zum Durchführen der Berechnung durchgeführte Berechnung kann beispielsweise eine Berechnung sein, die innerhalb der kryptographischen Berechnung durchgeführt wird. Die Maskierung dient dazu, um beispielsweise einen erfolgreichen DPA-Angriff zu verhindern. Dies geschieht durch Maskierung des ersten und des zweiten Parameters unter Verwendung des ersten Maskierungsalgorithmus. Das von der ersten Einrichtung 103 zum Durchführen der Berechnung ausgegebene Ergebnis kann beispielsweise abgezweigt werden, um im Rahmen der weiteren kryptographischen Berechnung verwendet zu werden. Die übrigen in 1 dargestellten Einrichtungen können z.B. dazu verwendet werden, um einen Fehlerangriff zu detektieren.
  • Die zweite Einrichtung 109 zum Bereitstellen ist ausgebildet, um den ersten Parameter mit einem dritten Maskierungsparameter und Verwendung des zweiten Maskierungsalgorithmus zu maskieren, um einen maskierten ersten Zwischenparameter zu erhalten, und um den ersten Parameter mit einem vierten Maskierungsparameter unter Verwendung des zweiten Maskierungsalgorithmus zu maskieren, um einen maskierten zweiten Zwischenparameter zu erhalten.
  • Bevorzugt unterscheidet sich der zweite Maskierungsalgorithmus von dem ersten Maskierungsalgorithmus derart, dass eine Manipulation der Daten auf jeden Fall detektierbar ist. Umfasst der zweite Maskierungsalgorithmus beispielsweise eine zweite Maskierungsverknüpfung, so unterscheiden sich die erste Maskierungsverknüpfung, die von dem ersten Maskierungsalgorithmus verwendet wird, und die zweite Maskierungsverknüpfung, die von dem zweiten Maskierungsalgorithmus verwendet wird, beispielsweise in der Verknüpfungsart. Falls die erste Maskierungsverknüpfung beispielsweise eine arithmetische Verknüpfung umfasst, so umfasst die zweite Maskierungsverknüpfung beispielsweise eine logische Verknüpfung und umgekehrt. Somit kann gewährleistet werden, dass selbst bei einem erfolgreichen Angriff auf die arithmetische Maskierungsverknüpfung der Angriff auf der Basis der logischen Verknüpfung detektiert werden kann oder umgekehrt.
  • Mit anderen Worten, die zweite Maskierungsverknüpfung ist eine logische Verknüpfung, wenn die erste Maskierungsverknüpfung eine arithmetische Verknüpfung ist. Entsprechend ist die zweite Maskierungsverknüpfung eine arithmetische Verknüpfung, wenn die erste Maskierungsverknüpfung eine logische Verknüpfung ist.
  • Beispielsweise umfasst die zweite Maskierungsverknüpfung eine „exklusiv-oder" oder eine „exklusiv-nicht-oder"-Verknüpfung, wenn die erste Maskierungsverknüpfung eine Addition oder eine Subtraktion umfasst. Entsprechend umfasst die zweite Maskierungsverknüpfung beispielsweise eine Addition oder eine Subtraktion, wenn die erste Maskierungsverknüpfung eine „exklusiv-nicht-oder"-Verknüpfung oder eine „exklusiv-oder"-Verknüpfung umfasst.
  • Mit anderen Worten ausgedrückt, werden der erste und der zweite Parameter unter Verwendung des zweiten Maskierungsalgorithmus maskiert, um beispielsweise eine logische Maske zu erzeugen, wenn der erste Maskierungsalgorithmus eine arithmetische Maske erzeugt, oder um beispielsweise eine arithmetische Maske zu erzeugen, wenn der erstes Maskierungsalgorithmus eine logische Maske erzeugt.
  • Gemäß einem weiteren Ausführungsbeispiel kann die zweite Einrichtung 109 zum Bereitstellen einer Einrichtung zum Ummaskieren umfassen, die ausgebildet ist, um den maskierten ersten Zwischenparameter umzumaskieren, um den bereitgestellten maskierten ersten Parameter zu erhalten, und um den maskier ten zweiten Zwischenparameter umzumaskieren, um den bereitgestellten maskierten zweiten Parameter zu erhalten.
  • Die Einrichtung zur Ummaskierung, die von der zweiten Einrichtung zum Bereitstellen umfasst ist, kann beispielsweise ausgebildet sein, um eine logische Maske durch eine arithmetische Maske zu ersetzen.
  • Beispielsweise ist die eine Richtung zum Ummaskieren, die von der zweiten Einrichtung 109 zum Bereitstellen umfasst ist, ausgebildet, um die maskierten ersten Parameter unter Verwendung eines weiteren Maskierungsparameters, der sich von dem dritten Maskierungsparameter unterscheiden, umzumaskieren, um den bereitgestellten maskierten ersten Parameter zu erhalten, und um den maskierten zweiten Zwischenparameter unter Verwendung eines weiteren Maskierungsparameters, der sich von dem vierten Maskierungsparameter unterscheidet, umzumaskieren, um den bereitgestellten maskierten zweiten Parameter zu erhalten.
  • Mit anderen Worten ausgedrückt ist die Einrichtung zum Ummaskieren ausgebildet, um das Ergebnis der Berechnung unter Verwendung von neuen Maskierungsparametern, die noch nicht verwendet worden sind, umzumaskieren, um beispielsweise eine logische Maske durch eine arithmetische zu ersetzen.
  • Gemäß einem weiteren Aspekt kann die Einrichtung zum Ummaskieren ausgebildet sein, um den ersten maskierten Zwischenparameter und um den maskierten zweiten Zwischenparameter unter Verwendung von weiteren Maskierungsparametern so umzumaskieren, dass der bereitgestellte maskierte erste Parameter und der bereitgestellte maskierte zweite Parameter jeweils eine arithmetische Verknüpfung mit einem weiteren Maskierungsparameter darstellen, wenn die zweite Einrichtung 111 zum Durchführen der Berechnung ausgebildet ist, um eine arithmetische Verknüpfung durchzuführen, oder so umzumaskieren, dass der bereitgestellte maskierte erste Parameter und der bereitge stellte maskierte zweite Parameter jeweils eine logische Verknüpfung mit einem weiteren Maskierungsparameter darstellen, wenn die zweite Einrichtung 111 zum Durchführen der Berechnung ausgebildet ist, um eine logische Verknüpfung darzustellen. Die Einrichtung 105 zum Ummaskieren weist beispielsweise dieselben Eigenschaften auf.
  • Die Einrichtung 105 zum Ummaskieren kann ausgebildet sein, um das maskierte Ergebnis unter Verwendung eines weiteren Maskierungsparameters, der sich von dem ersten und dem zweiten Maskierungsparameter unterscheidet, so umzumaskieren, dass das ummaskierte Ergebnis eine arithmetische Verknüpfung des ersten Parameters, des zweiten Parameters und des weiteren Maskierungsparameters darstellt, wenn die Einrichtung 103 zum Durchführen der Berechnung ausgebildet ist, um eine logische Verknüpfung durchzuführen, oder so umzumaskieren, dass das ummaskierte Ergebnis eine logische Verknüpfung des ersten Parameters, des zweiten Parameters und des weiteren Maskierungsparameters darstellt, wenn die Einrichtung 103 zum Durchführen der Berechnung ausgebildet ist, um eine arithmetische Verknüpfung durchzuführen.
  • Die Einrichtung 107 zum Untersuchen ist beispielsweise ausgebildet, um das erste maskierte Ergebnis, das von der Einrichtung 105 zum Ummaskieren geliefert wird unter Berücksichtigung des ersten Maskierungsalgorithmus zu demaskieren, um eine erste Verknüpfung des ersten und des zweiten Parameters zu erhalten, um das zweite Maskierungsergebnis, das von der zweiten Einrichtung 111 zum Durchführen der Berechnung geliefert wird, unter Berücksichtigung des zweiten Maskierungsalgorithmus zu demaskieren, um eine zweite Verknüpfung des ersten und des zweiten Parameters zu erhalten, und um die erste Verknüpfung mit der zweiten Verknüpfung zu vergleichen, um im Falle eines Unterschieds zwischen der ersten Verknüpfung und der zweiten Verknüpfung einen Angriff zu detektieren.
  • Beispielsweise handelt es sich bei der ersten Verknüpfung und bei der zweiten Verknüpfung um gleiche Verknüpfungen (Berechnungsverknüpfungen), also beispielsweise um eine Addition oder um eine „exklusiv-oder"-Verknüpfung, wobei die jeweilige Verknüpfung jeweils auf der Basis einer unterschiedlichen Berechnung unter Verwendung von unterschiedlichen Verknüpfungen und Maskierungen zustande gekommen sind. Bei der Demaskierung wird beispielsweise eine resultierende Maske entfernt, die sich ergibt, wenn beispielsweise zwei maskierte Parameter miteinander verknüpft werden. Handelt es sich bei der Verknüpfung beispielsweise um eine arithmetische Verknüpfung, so kann die gemeinsame Maskierung durch eine Subtraktion entfernt werden, um die jeweilige Verknüpfung zu erhalten.
  • Bei dem Vergleich kann die Einrichtung 107 zum Untersuchen beispielsweise eine Subtraktion zwischen der ersten und der zweiten Verknüpfung bilden, um einen Unterschied zu erfassen.
  • Die erfindungsgemäße Vorrichtung wird bevorzugt mit Hilfe von Rechenwerken und Registern implementiert. So kann beispielsweise die erste Einrichtung 101 zum Bereitstellen ein erstes Register zum Bereitstellen des maskierten ersten Parameters ein zweites Register zum Bereitstellen des maskierten zweiten Parameters umfassen. In diesem Falle kann die Einrichtung 103 zum Durchführen der Berechnung ausgebildet sein, um einen ersten Registerinhalt des ersten Registers und um einen zweiten Registerinhalt des zweiten Registers auszulesen, und um den ersten Registerinhalt mit dem zweiten Registerinhalt zu verknüpfen, um das erste maskierte Ergebnis zu erhalten, und um das erste maskierte Ergebnis in ein Zwischenregister abzulegen.
  • Die Einrichtung 105 zum Ummaskieren ist beispielsweise ausgebildet, um einen Inhalt des Zwischenregisters zu verarbeiten und beispielsweise zu verändern, so dass die Einrichtung 107 zum Untersuchen einen Inhalt des Zwischenregisters auslesen kann, um den Angriff zu detektieren.
  • Analog kann die zweite Einrichtung 109 zum Bereitstellen ausgebildet sein, um den bereitgestellten maskierten ersten Parameter in ein drittes Register abzulegen, und um den bereitgestellten maskierten zweiten Parameter in ein viertes Register abzulegen. Die zweite Einrichtung 111 zum Durchführen der Berechnung kann dann beispielsweise ausgebildet sein, um einen Registerinhalt des dritten Registers und um einen Registerinhalt des vierten Registers auszulesen, und um das zweite maskierte Ergebnis in ein weiteres Ergebnisregister abzulegen, so dass die Einrichtung 107 zum Untersuchen das zweite maskierte Ergebnis aus dem weiteren Ergebnisregister auslesen kann.
  • Wie es bereits erwähnt worden ist, kann die Berechnung eine Operation innerhalb einer kryptographischen Berechnung sein. In diesem Fall kann es sich bei den Parametern, beispielsweise bei dem ersten oder bei dem zweiten Parameter oder bei dem ersten maskierten Ergebnis um Klartextdaten, um Verschlüsselungsdaten, um Signaturdaten oder um Schlüsseldaten handeln.
  • Generell bei den von der Vorrichtung durchgeführten Berechnungsverknüpfungen kann es sich, im Falle von Verknüpfungen arithmetischer Art, um Additionen, Subtraktionen, Divisionen und Multiplikationen handeln. Analog kann es sich bei den Verknüpfungen logischer Art um eine „xor"-, „or"-, „xnor"-, „nor"- „and"- oder „nand"-Verknüpfung handeln.
  • 2 zeigt ein Blockdiagramm einer Vorrichtung zum Detektieren eines potentiellen Angriffs gemäß einem weiteren Ausführungsbeispiel der Erfindung.
  • Die Vorrichtung umfasst eine Einrichtung 201 zum Bereitstellen von einem gemäß einem ersten Maskierungsalgorithmus maskierten ersten Parameter b + y' und einem zweiten Parameter a + x'. Bei den Zahlen x' und y' handelt es sich um einen ersten und um einen zweiten Maskierungsparameter.
  • Die Einrichtung 201 zum Bereitstellen umfasst zwei getrennte Register, in denen der maskierte erste und zweite Parameter abgelegt sind.
  • Eine mit der Einrichtung 201 zum Bereitstellen verbundene Einrichtung 203 zum Durchführen der Berechnung ist ausgebildet, um den maskierten ersten und zweiten Parameter miteinander zu verknüpfen, beispielsweise unter Verwendung einer arithmetischen Additionsoperation, um ein erstes maskiertes Ergebnis der Berechnung zu erhalten, wobei das Ergebnis für eine weitere kryptographische Berechnung bereitgestellt werden kann.
  • Die Vorrichtung umfasst ferner eine Einrichtung 205 zum Ummaskieren, die ausgebildet ist, um die arithmetische Maskierung durch eine logische Maskierung zu ersetzen.
  • Die Vorrichtung umfasst ferner eine zweite Einrichtung 207 zum Bereitstellen eines bereitgestellten maskierten ersten Parameters b xor y'' und eines bereitgestellten maskierten zweiten Parameters a xor x''. Wie es in 2 angedeutet ist, umfasst die zweite Einrichtung 207 zum Bereitstellen zwei Register, in die die bereitgestellten maskierten Parameter abgelegt werden können.
  • Die zweite Einrichtung 207 zum Bereitstellen umfasst ferner eine Einrichtung 209 zum Ummaskieren, die ausgebildet ist, um eine logische Maskierung durch eine arithmetische Maskierung zu ersetzen.
  • Ein Ausgang der Einrichtung 209 zum Ummaskieren ist mit einer Einrichtung 211 zum Durchführen der Berechnung verbunden. Die Einrichtung 211 zum Durchführen der Berechnung ist bevorzugt ausgebildet, um dieselbe Verknüpfungsart durchzuführen, die von der Einrichtung 203 zum Durchführen der Berechnung durchgeführt wird.
  • Die Vorrichtung umfasst ferner ein Ergebnisregister 213, das mit einem Ausgang der Einrichtung 205 zum Ummaskieren gekoppelt ist, wobei in dem Register 213 das ummaskierte Ergebnis c xor z'' abgelegt ist.
  • Die Vorrichtung umfasst ferner ein weiteres Ergebnisregister 215, das mit einem Ausgang der Einrichtung 211 zum Durchführen der Berechnung gekoppelt ist.
  • Die Vorrichtung umfasst ferner eine Einrichtung 217 zum Untersuchen des ersten ummaskierten Ergebnisses und des zweiten maskierten Ergebnisses, das in dem weiteren Ergebnisregister abgelegt ist, um den potentiellen Angriff zu detektieren. Wurde ein Angriff detektiert, so ist die Einrichtung 217 zum Untersuchen ausgebildet, um ein Alarmsignal auszugeben.
  • 3 zeigt ein weiteres Ausführungsbeispiel einer Vorrichtung zum Detektieren eines potentiellen Angriffs. Die Vorrichtung umfasst eine erste Einrichtung 301 zum Bereitstellen, die mit einer Einrichtung 303 zum Durchführen der Berechnung gekoppelt ist. Wie es in 3 gezeigt ist, ist die Einrichtung 303 zum Durchführen der Berechnung ausgebildet, um eine „und"-Verknüpfung („and") durchzuführen. Hierzu können die Maskierungsparameter x'' und y'' verwendet werden.
  • Die erste Einrichtung 303 zum Durchführen der Berechnung ist mit einer Einrichtung 305 zum Ummaskieren gekoppelt, wobei die Einrichtung 305 zum Ummaskieren ausgebildet ist, um eine logische Maske durch eine arithmetische Maske zu ersetzen. Die Einrichtung 305 zum Ummaskieren weist einen Ausgang auf, mit dem ein Ergebnisregister 307 gekoppelt ist.
  • Die Vorrichtung umfasst ferner eine zweite Einrichtung 309 zum Bereitstellen, die neben den Ergebnisregistern, in denen die bereitgestellten maskierten Paramter b + y' und a + x' abgelegt sind, eine Einrichtung 311 zum Ummaskieren aufweist. Die Einrichtung 311 zum Ummaskieren ist ausgebildet, um die arithmetische Maske durch eine logische Maske zu ersetzen, wobei weitere Maskierungsparameter verwendet werden.
  • Die Einrichtung 311 zum Ummaskieren ist mit einer zweiten Einrichtung 313 zum Durchführen der Berechnung gekoppelt. Die Einrichtung 313 zum Durchführen der Berechnung weist einen Ausgang auf, der mit einem weiteren Ergebnisregister 309 gekoppelt ist. Die Vorrichtung umfasst ferner eine Einrichtung 311 zum Untersuchen, die mit den Eingängen der Ergebnisregister gekoppelt ist.
  • Im Folgenden wird das erfindungsgemäße Konzept am Beispiel einer Addition von zwei Zahlen a und b, um c = a + b zu erhalten unter Bezugnahme auf 1, erläutert.
  • Beide Daten sind maskiert, und zwar jeweils mit einer arithmetischen Maske x', y' und einer logischen Maske x'', y''.
  • Das Ergebnis wird maskiert sein mit den entsprechenden Masken z' und z''. In der Rechnung wird Redundanz vorhanden sein, die zur Fehlererkennung herangezogen werden kann.
  • Wegen c + x' + y' = (a + x') + (b + y') benutzt man die arithmetisch maskierten Daten und addiert sie einfach, so dass das Ergebnis automatisch mit z' = x' + y' maskiert ist. Dieses Ergebnis ist genau nach der Zeit vorhanden, die man auch für eine gewöhnliche Addition benötigt. Sie könnte, wenn benötigt, sofort weiterverarbeitet werden (z.B. Sprungadresse). Bevor das Datum abgespeichert wird, wird es allerdings ummaskiert, so dass es eine logische Maske erhält. Infolgedessen wird dann das Ergebnis auf der „logischen Seite" abgelegt.
  • Andererseits werden die logisch maskierten Daten (a xor x'') und (b xor y') erst ummaskiert, so dass arithmetische Daten erhalten werden (z.B. a + x1' und b + y1', mit neuen Masken), erst dann werden sie addiert – wieder mit einem normalen Addierer. In der Write-back-Stufe wird das Ergebnis in die a rithmetische Seite zurückgeschrieben. Die beiden Ergebnisse repräsentieren dasselbe mathematische Datum. Man kann also nun überprüfen, ob bei der Ausführung der Rechnung ein Fehler passiert ist.
  • Durch dieses Vorgehen wird folgendes gewährleistet:
    • – das Ergebnis selbst ist nach minimaler Ausführungszeit vorhanden;
    • – durch die alternierende Ausführung der beiden Schritte „Ummaskieren" und „Addieren" ist ein Multiplexen der HW möglich;
    • – die Fehlererkennung ist aus dem kritischen Pfad herausgenommen (es reicht ja aus, wenn ein Fehler einige Takte später erkannt wird);
    • – auch wenn im Vergleich zu einer konventionellen Architektur die doppelte Registeranzahl benötigt wird (aber nur für interne Register!) ist die HW (HW = Hardware) für den Fehlercheck weniger aufwändig, als für z.B. Hamming-Code-Checker;
    • – die gesamte Rechnung läuft voll randomisiert ab!
  • Im Unterschied hierzu wird in dem in 3 dargestellten Ausführungsbeispiel eine Ver-Undung zweiter Daten (a AND b) durchgeführt.
  • Gemäß einem weiteren Aspekt liefert die folgende Erfindung ein kryptographisches System mit einem Rechenwerk zum Durchführen einer kryptographischen Berechnung und einem Ergebnisregister zum Bereitstellen eines Ergebnisses der kryptographischen Berechnung, wobei die kryptographische Berechnung eine Berechnungsverknüpfung zweier maskierter Parameter und eine kryptographische Operation unter Verwendung eines maskierten Ergebnisses der Berechnung umfasst, und wobei das kryptographische System die obenstehend beschriebene Vorrich tung, wobei die erste Einrichtung zum Durchführen der Berechnung ausgebildet ist, um das maskierte Ergebnis durch die Berechnungsverknüpfung des maskierten ersten Parameters mit dem maskierten zweiten Parameter zu liefern, eine Einrichtung zum Durchführen der kryptographischen Operation unter Verwendung des maskierten Ergebnisses, um das Ergebnis zu erhalten, wobei das Rechenwerk ausgebildet ist, um das Ergebnis in das Ergebnisregister abzulegen, und wobei die Vorrichtung zum Detektieren ausgebildet ist, um einen potentiellen Angriff während der kryptographischen Berechnung zu detektieren, und wobei das Rechenwerk ausgebildet ist, um das Ergebnisregister im Fall eines detektierten Angriffs so anzusteuern, dass ein Registerinhalt des Ergebnisregisters nicht weitergegeben wird. Beispielsweise wird der Inhalt des Registers gelöscht.
  • Abhängig von den Gegebenheiten können die erfindungsgemäßen Verfahren in Hardware oder in Software implementiert werden. Die Implementation kann auf einem digitalen Speichermedium, insbesondere einer Diskette oder einer CD mit elektronisch auslesbaren Steuersignalen folgen, die so mit einem programmierbaren Computersystem zusammenwirken können, dass das entsprechende Verfahren ausgeführt wird. Allgemein besteht die Erfindung somit in einem Computer-Programmprodukt mit auf einem maschinenlesbaren Träger gespeicherten Programmcode zur Durchführung des erfindungsgemäßen Verfahrens, wenn das Computer-Programmprodukt auf einem Rechner abläuft. Mit anderen Worten ausgedrückt kann die Erfindung somit als ein Computerprogramm mit einem Programmcode zur Durchführung des erfindungsgemäßen Verfahrens realisiert werden, wenn das Computerprogramm auf einem Computer abläuft.
  • 101
    Erste Einrichtung zum Bereitstellen
    103
    Erste Einrichtung zum Durchführen der Berechnung
    105
    Einrichtung zum Ummaskieren
    107
    Einrichtung zum Untersuchen
    109
    Zweite Einrichtung zum Bereitstellen
    111
    Zweite Einrichtung zum Durchführen der Berechnungsverknüpfung
    201
    Erste Einrichtung zum Bereitstellen
    203
    Erste Einrichtung zum Durchführen der Berechnungsverknüpfung
    205
    Einrichtung zum Ummaskieren
    207
    Zweite Einrichtung zum Bereitstellen
    209
    Einrichtung zum Ummaskieren
    211
    Zweite Einrichtung zum Durchführen der Berechnungsverknüpfung
    213
    Ergebnisregister
    215
    Weiteres Ergebnisregister
    217
    Einrichtung zum Untersuchen
    301
    Erste Einrichtung zum Bereitstellen
    303
    Erste Einrichtung zum Durchführen der Berechnungsverknüpfung
    305
    Einrichtung zum Ummaskieren
    307
    Ergebnisregister
    309
    Weiteres Ergebnisregister
    310
    Zweite Einrichtung zum Bereitstellen
    311
    Einrichtung zum Ummaskieren
    313
    Zweite Einrichtung zum Durchführen der Berechnungsverknüpfung

Claims (26)

  1. Vorrichtung zum Detektieren eines potentiellen Angriffs auf eine kryptographische Berechnung, die eine Berechnung mit wenigstens einem Parameter durchführt, mit folgenden Merkmalen: einer ersten Einrichtung (101) zum Bereitstellen von einem gemäß einem ersten Maskierungsalgorithmus maskierten Parameter; einer ersten Einrichtung (103) zum Durchführen der Berechnung mit dem maskierten Parameter, um ein maskiertes Ergebnis der Berechnung zu erhalten; einer Einrichtung (105) zum Ummaskieren des maskierten Ergebnisses, die ausgebildet ist, um das maskierte Ergebnis so zu verarbeiten, dass ein ummaskiertes Ergebnis erhalten wird, das gemäß einem zweiten Maskierungsalgorithmus maskiert ist; einer zweiten Einrichtung (109) zum Bereitstellen von einem gemäß dem ersten Maskierungsalgorithmus maskierten Parameter; einer zweiten Einrichtung (111) zum Durchführen der Berechnung mit dem bereitgestellten maskierten Parameter, um ein zweites maskiertes Ergebnis zu erhalten; und einer Einrichtung (107) zum Untersuchen des ummaskierten Ergebnisses und des zweiten maskierten Ergebnisses, um den potentiellen Angriff zu detektieren.
  2. Vorrichtung gemäß Anspruch 1, wobei die erste Einrichtung (101) zum Bereitstellen ausgebildet ist, um einen Parameter mit einem ersten Maskierungsparameter unter Verwendung des ersten Maskierungsalgorithmus zu maskieren, um den maskierten Parameter bereitzustellen.
  3. Vorrichtung gemäß Anspruch 1 oder 2, wobei kryptographische Berechnung eine Berechnungsverknüpfung eines ersten und eines zweiten Parameters durchführt, wobei die erste Einrichtung (101) zum Bereitstellen ausgebildet ist, um einen gemäß dem ersten Maskierungsalgorithmus maskierten ersten und zweiten Parameter bereitzustellen, wobei die erste Einrichtung (103) zum Durchführen der Berechnung ausgebildet ist, um die Berechnungsverknüpfung mit dem maskierten ersten und zweiten Parameter durchzuführen, um das maskierte Ergebnis der Berechnung zu erhalten, wobei die zweite Einrichtung (109) zum Bereitstellen ausgebildet ist, um einen gemäß dem ersten Maskierungsalgorithmus maskierten ersten und zweiten Parameter bereitzustellen, wobei die zweite Einrichtung (109) zum Durchführen der Berechnung ausgebildet ist, um die Berechnungsverknüpfung mit dem bereitgestellten ersten und zweiten Parameter durchzuführen, um das zweite maskierte Ergebnis zu erhalten.
  4. Vorrichtung gemäß Anspruch 3, wobei die erste Einrichtung (101) zum Bereitstellen ausgebildet ist, um einen ersten Parameter mit einem ersten Maskierungsparameter unter Verwendung des ersten Maskierungsalgorithmus zu maskieren, um den maskierten ersten Parameter bereitzustellen, und um einen zweiten Parameter mit einem zweiten Maskierungsparameter unter Verwendung des ersten Maskierungsalgorithmus zu maskieren, um den maskierten zweiten Parameter bereitzustellen.
  5. Vorrichtung gemäß Anspruch 3 oder 4, wobei der erste Maskierungsalgorithmus eine erste Maskierungsverknüpfung um fasst, wobei die erste Einrichtung (101) zum Bereitstellen ausgebildet ist, um die erste Maskierungsverknüpfung durchzuführen, um den ersten Parameter mit dem ersten Maskierungsparameter zu verknüpfen, und um den zweiten Parameter mit dem zweiten Maskierungsparameter zu verknüpfen, wobei der ersten Maskierungsverknüpfung und der Berechnungsverknüpfung dieselbe Verknüpfungsart zugrunde liegt.
  6. Vorrichtung gemäß Anspruch 5, wobei die Verknüpfungsart eine arithmetische Verknüpfungsart oder eine logische Verknüpfungsart ist.
  7. Vorrichtung gemäß einem der Ansprüche 3 bis 6, wobei die erste Einrichtung (101) zum Bereitstellen ausgebildet ist, um den ersten Parameter mit dem ersten Maskierungsparameter arithmetisch zu verknüpfen, um den zweiten Maskierungsparameter mit dem zweiten Parameter arithmetisch zu verknüpfen, wobei die erste Einrichtung (103) zum Durchführen der Berechnung ausgebildet ist, um den maskierten ersten Parameter mit dem maskierten zweiten Parameter arithmetisch zu verknüpfen, um das erste maskierte Ergebnis zu erhalten.
  8. Vorrichtung gemäß Anspruch 7, wobei die erste Einrichtung (101) zum Bereitstellen ausgebildet ist, um den ersten Parameter und den ersten Maskierungsparameter zu addieren, und um den zweiten Parameter und den zweiten Maskierungsparameter zu addieren.
  9. Vorrichtung gemäß einem der Ansprüche 3 bis 8, wobei die erste Einrichtung (101) zum Bereitstellen ausgebildet ist, um den ersten Parameter mit dem ersten Maskierungsparameter logisch zu verknüpfen, um den zweiten Parameter mit dem zweiten Maskierungsparameter logisch zu verknüpfen, wobei die erste Einrichtung (103) zum Durchführen der Berechnung ausgebildet ist, um den maskierten ersten Parameter mit dem maskierten zweiten Parameter logisch zu verknüpfen, um das erste maskierte Ergebnis zu erhalten.
  10. Vorrichtung gemäß Anspruch 9, wobei die erste Einrichtung (101) zum Bereitstellen ausgebildet ist, um den ersten Parameter mit dem ersten Maskierungsparameter und um den zweiten Parameter mit dem zweiten Maskierungsparameter durch eine „exklusiv-oder"-Verknüpfung oder durch eine „exklusiv-nicht-oder"-Verknüpfung zu verknüpfen, und wobei die ersten Einrichtung (103) zum Durchführen der Berechnung ausgebildet ist, um den maskierten ersten Parameter mit dem maskierten zweiten Parameter durch eine „und" oder durch eine „nicht-und"-Verknüpfung zu verknüpfen, um das erste maskierte Ergebnis zu erhalten.
  11. Vorrichtung gemäß einem der Ansprüche 3 bis 10, wobei die zweite Einrichtung (109) zum Bereitstellen ausgebildet ist, um den ersten Parameter mit einem dritten Maskierungsparameter unter Verwendung des zweiten Maskierungsalgorithmus zu maskieren, um einen maskierten ersten Zwischenparameter zu erhalten, und um den zweiten Parameter mit einem vierten Maskierungsparameter unter Verwendung des zweiten Maskierungsalgorithmus zu maskieren, um einen maskierten zweiten Zwischenparameter zu erhalten.
  12. Vorrichtung gemäß Anspruch 11, wobei der erste Maskierungsalgorithmus eine erste Maskierungsverknüpfung umfasst, wobei die erste Einrichtung (101) zum Bereitstellen ausgebildet ist, um die erste Maskierungsverknüpfung durchzuführen, um den ersten Parameter mit dem ersten Maskierungsparameter zu verknüpfen, und wobei der zweite Maskierungsalgorithmus eine zweite Maskierungsverknüpfung umfasst, wobei die zweite Einrichtung (109) zum Bereitstellen ausgebildet ist, um die zweite Maskierungsverknüpfung durchzuführen, um den ersten Parameter mit dem dritten Maskierungsparameter zu verknüpfen, und um den zweiten Parameter mit dem vierten Maskierungsparameter zu verknüpfen, wobei die zweite Maskierungsverknüpfung eine logische Verknüpfung ist, wenn die erste Maskierungsverknüpfung eine arithmetische Verknüpfung ist, und wobei die zweite Maskierungsverknüpfung eine arithmetische Verknüpfung ist, wenn die erste Maskierungsverknüpfung eine logische Verknüpfung ist.
  13. Vorrichtung gemäß Anspruch 12, wobei die zweite Maskierungsverknüpfung eine „exklusiv-oder"- oder eine „exklusiv-nicht-oder"-Verknüpfung umfasst, wenn die erste Maskierungsverknüpfung eine Addition oder eine Subtraktion umfasst, oder wobei die zweite Maskierungsverknüpfung eine Addition oder eine Subtraktion umfasst, wenn die erste Maskierungsverknüpfung eine „exklusiv-oder"- oder eine „exklusiv-nicht-oder"-Verknüpfung umfasst.
  14. Vorrichtung gemäß einem der Ansprüche 11 bis 13, wobei die zweite Einrichtung (109) zum Bereitstellen einer Einrichtung zum Ummaskieren umfasst, wobei die Einrichtung zum Ummaskieren ausgebildet ist, um den maskierten ersten Zwischenparameter umzumaskieren, um den bereitgestellten maskierten ersten Parameter zu erhalten, und um den maskierten zweiten Zwischenparameter umzumaskieren, um den bereitgestellten maskierten zweiten Parameter zu erhalten.
  15. Vorrichtung gemäß Anspruch 14, wobei die Einrichtung zum Ummaskieren, die von der zweiten Einrichtung (109) zum Bereitstellen umfasst ist, ausgebildet ist, um den maskierten ersten Zwischenparameter unter Verwendung eines weiteren Maskierungsparameters, der sich von dem dritten Maskierungsparameter unterscheidet, umzumaskieren, um den bereitgestellten maskierten ersten Parameter zu erhalten, und um den maskierten zweiten Zwischenparameter unter Verwendung eines weiteren Maskierungsparameters, der sich von dem vierten Maskierungsparameter unterscheidet, umzumaskieren, um den bereitgestellten maskierten zweiten Parameter zu erhalten.
  16. Vorrichtung gemäß einem der Ansprüche 13 bis 15, wobei die Einrichtung (105) zum Ummaskieren ausgebildet ist, um den maskierten ersten Zwischenparameter und um den maskierten zweiten Zwischenparameter unter Verwendung von weiteren Maskierungsparametern so umzumaskieren, dass der bereitgestellte maskierte erste Parameter und der bereitgestellte maskierte zweite Parameter jeweils eine arithmetische Verknüpfung mit einem weiteren Maskierungsparameter darstellen, wenn die zweite Einrichtung (111) zum Durchführen der Berechnung ausgebildet ist, um eine arithmetische Verknüpfung durchzuführen, oder so umzumaskieren, dass der bereitgestellte maskierte erste Parameter und der bereitgestellte maskierte zweite Parameter jeweils eine logische Verknüpfung mit einem weiteren Markierungsparameter darstellen, wenn die zweite Einrichtung (111) zum Durchführen der Berechnung ausgebildet ist, um eine logische Verknüpfung durchzuführen.
  17. Vorrichtung gemäß einem der Ansprüche 3 bis 16, wobei die Einrichtung (105) zum Ummaskieren ausgebildet ist, um das erste maskierte Ergebnis unter Verwendung eines weiteren Maskierungsparameters so umzumaskieren, dass das ummaskierte Er gebnis eine arithmetische Verknüpfung des ersten Parameters, des zweiten Parameters und des weiteren Maskierungsparameters darstellt, wenn die erste Einrichtung (103) zum Durchführen der Berechnung ausgebildet ist, um eine logische Verknüpfung durchzuführen, oder so umzumaskieren, dass das ummaskierte Ergebnis eine logische Verknüpfung des ersten Parameters, des zweiten Parameters und des weiteren Maskierungsparameters darstellt, wenn die erste Einrichtung zum Durchführen der Berechnung ausgebildet ist, um eine arithmetische Verknüpfung durchzuführen.
  18. Vorrichtung gemäß einem der Ansprüche 1 bis 17, wobei die Einrichtung (107) zum Untersuchen ausgebildet ist, um das erste maskierte Ergebnis unter Berücksichtigung des ersten Maskierungsalgorithmus zu demaskieren, um eine erste Verknüpfung des ersten und des zweiten Parameters zu erhalten, und um das zweite maskierte Ergebnis unter Berücksichtigung des zweiten Maskierungsalgorithmus zu demaskieren, um eine zweite Verknüpfung des ersten und des zweiten Parameters zu erhalten, und um die erste Verknüpfung mit der zweiten Verknüpfung zu vergleichen, um im Falle eines Unterschiedes zwischen der ersten Verknüpfung und der zweiten Verknüpfung einen Angriff zu detektieren.
  19. Vorrichtung gemäß Anspruch 18, wobei die erste Einrichtung (101) zum Bereitstellen ein erstes Register zum Bereitstellen des maskierten ersten Parameters und ein zweites Register zum Bereitstellen des maskierten zweiten Parameters umfasst, und wobei die erste Einrichtung (103) zum Durchführen der Berechnung ausgebildet ist, um einen ersten Registerinhalt des ersten Registers und um einen zweiten Registerinhalt des zweiten Registers auszulesen, und um den ersten Registerinhalt mit dem zweiten Registerinhalt zu verknüpfen, um das erste maskierte Ergebnis zu erhalten, und um das erste maskierte Ergebnis in ein Zwischenregister abzulegen, wobei die Einrichtung (105) zum Ummaskieren ausgebildet ist, um einen Inhalt des Zwischenregisters zu verarbeiten, und wobei die Einrichtung (107) zum Untersuchen ausgebildet ist, um einen Inhalt des Zwischenregisters auszulesen.
  20. Vorrichtung gemäß einem der Ansprüche 1 bis 19, wobei die zweite Einrichtung (109) zum Bereitstellen ausgebildet ist, um den bereitgestellten maskierten ersten Parameter in ein drittes Register abzulegen, und um den bereitgestellten maskierten zweiten Parameter in ein viertes Register abzulegen, wobei die zweite Einrichtung (111) zum Durchführen der Berechnung ausgebildet ist, um einen Registerinhalt des dritten Registers und um einen Registerinhalt des vierten Registers auszulesen, und um das zweite maskierte Ergebnis in ein weiteres Ergebnisregister abzulegen, wobei die Einrichtung (107) zum Untersuchen ausgebildet ist, um das zweite maskierte Ergebnis aus dem weiteren Ergebnisregister auszulesen.
  21. Vorrichtung gemäß einem der Ansprüche 1 bis 20, bei der die Berechnung eine Operation innerhalb einer kryptographischen Berechnung ist, und der erste oder der zweite Parameter oder das erste maskierte Ergebnis Klartextdaten, Verschlüsselungsdaten, Signaturdaten oder Schlüsseldaten sind.
  22. Vorrichtung gemäß einem der Ansprüche 1 bis 21, bei dem die Berechnung eine logische Verknüpfung ist, die eine „exklusiv-oder"-, eine „exklusiv-nicht-oder"-, eine oder-, eine „nicht-oder"-, eine und- oder eine „nicht-und"-Verknüpfung umfasst, oder bei dem die Berechnung eine arithmetische Verknüpfung ist, die eine Addition, eine Subtraktion, eine Division oder eine Multiplikation umfasst.
  23. Kryptographisches System mit einem Rechenwerk zum Durchführen einer kryptographischen Berechnung und einem Ergebnisregister zum Bereitstellen eines Ergebnisses der kryptographischen Berechnung, wobei die kryptographische Berechnung eine Berechnung mit wenigstens einem Parameter und eine kryptographische Operation unter Verwendung eines maskierten Ergebnisses der Berechnung umfasst, und wobei das kryptographische System folgende Merkmale umfasst: die Vorrichtung gemäß einem der Ansprüche 1 bis 22, wobei die erste Einrichtung zum Durchführen der Berechnung ausgebildet ist, um das maskierte Ergebnis durch die Berechnung mit dem maskierten Parameter zu liefern; einer Einrichtung zum Durchführen der kryptographischen Operation unter Verwendung des maskierten Ergebnisses; wobei das Rechenwerk ausgebildet ist, um ein Ergebnis der weiteren kryptographischen Berechnung in das Ergebnisregister abzulegen, und wobei die Vorrichtung gemäß einem der Ansprüche 1 bis 22 ausgebildet ist, um einen potentiellen Angriff während der kryptographischen Berechnung zu detektieren; und wobei das Rechenwerk ausgebildet ist, das Ergebnisregister im Fall eines detektierten Angriffs so anzusteuern, dass ein Registerinhalt des Ergebnisregisters nicht ausgegeben wird.
  24. Verfahren zum Detektieren eines potentiellen Angriffs auf eine kryptographische Berechnung, die eine Berechnung mit wenigstens einem Parameter durchführt, mit folgenden Schritten: Bereitstellen von einem gemäß einem ersten Maskierungsalgorithmus maskierten Parameter; Durchführen der Berechnung mit dem maskierten Parameter, um ein erstes maskiertes Ergebnis der Berechnung zu erhalten; Ummaskieren des ersten maskierten Ergebnisses, um ein ummaskiertes Ergebnis zu erhalten, das gemäß einem zweiten Maskierungsalgorithmus maskiert ist; Bereitstellen von einem gemäß dem ersten Maskierungsalgorithmus maskierten Parameter; Durchführen der Berechnung mit dem bereitgestellten maskierten Parameter, um ein zweites maskiertes Ergebnis zu erhalten; und Untersuchen des ummaskierten Ergebnisses und des zweiten maskierten Ergebnisses, um den Angriff zu detektieren.
  25. Verfahren zum Durchführen einer kryptographischen Operation unter Verwendung eines Rechenwerkes und eines Ergebnisregisters, in dem ein Ergebnis der kryptographischen Berechnung bereitgestellt wird, wobei die kryptographische Berechnung eine Berechnung mit wenigstens einem Parameter und eine kryptographische Operation unter Verwendung eines maskierten Ergebnisses der Berechnung umfasst, wobei das Verfahren folgende Schritte umfasst: Bereitstellen von einem gemäß einem ersten Maskierungsalgorithmus maskierten Parameter; Durchführen der Berechnung mit dem maskierten Parameter, wobei das maskierte Ergebnis durch die Berechnung mit dem maskierten Parameter erhalten wird; Durchführen der kryptographischen Operation unter Verwendung des maskierten Ergebnisses; Ablegen eines Ergebnisses der kryptographischen Operation in ein Ergebnisregister; Ummaskieren des maskierten Ergebnisses, um ein ummaskiertes Ergebnis zu erhalten, das gemäß einem zweiten Maskierungsalgorithmus maskiert ist; Bereitstellen von einem gemäß dem ersten Maskierungsalgorithmus maskierten Parameter; Durchführen der Berechnung mit dem bereitgestellten maskierten Parameter, um ein zweites maskiertes Ergebnis zu erhalten; Untersuchen des ummaskierten Ergebnisses und des zweiten maskierten Ergebnisses, um einen potentiellen Angriff zu detektieren; und Ansteuern des Ergebnisregisters von dem Rechenwerk so, dass im Fall eines detektierten Angriffs ein Registerinhalt des Ergebnisregisters nicht ausgegeben wird.
  26. Computer-Programm zum Durchführen zumindest eines der Verfahren gemäß einem der Ansprüche 24 oder 25, wenn das Computer-Programm auf einem Computer abläuft.
DE102004061312A 2004-12-20 2004-12-20 Vorrichtung und Verfahren zum Detektieren eines potentiellen Angriffs auf eine kryptographische Berechnung Active DE102004061312B4 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102004061312A DE102004061312B4 (de) 2004-12-20 2004-12-20 Vorrichtung und Verfahren zum Detektieren eines potentiellen Angriffs auf eine kryptographische Berechnung
US11/313,241 US7801298B2 (en) 2004-12-20 2005-12-20 Apparatus and method for detecting a potential attack on a cryptographic calculation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102004061312A DE102004061312B4 (de) 2004-12-20 2004-12-20 Vorrichtung und Verfahren zum Detektieren eines potentiellen Angriffs auf eine kryptographische Berechnung

Publications (2)

Publication Number Publication Date
DE102004061312A1 DE102004061312A1 (de) 2006-06-29
DE102004061312B4 true DE102004061312B4 (de) 2007-10-25

Family

ID=36580243

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102004061312A Active DE102004061312B4 (de) 2004-12-20 2004-12-20 Vorrichtung und Verfahren zum Detektieren eines potentiellen Angriffs auf eine kryptographische Berechnung

Country Status (2)

Country Link
US (1) US7801298B2 (de)
DE (1) DE102004061312B4 (de)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102004061312B4 (de) * 2004-12-20 2007-10-25 Infineon Technologies Ag Vorrichtung und Verfahren zum Detektieren eines potentiellen Angriffs auf eine kryptographische Berechnung
WO2009043139A1 (en) * 2007-10-01 2009-04-09 Research In Motion Limited Substitution table masking for cryptographic processes
US20120124669A1 (en) * 2010-11-12 2012-05-17 International Business Machines Corporation Hindering Side-Channel Attacks in Integrated Circuits
EP2629447A1 (de) * 2012-02-17 2013-08-21 Gemalto SA Verfahren und Vorrichtung zum Schutz einer elektronischen Vorrichtung gegen Fehlerangriff(e)
TWI517655B (zh) * 2013-05-23 2016-01-11 晨星半導體股份有限公司 密碼裝置以及密鑰保護方法
DE102013227165A1 (de) 2013-12-27 2015-07-16 Siemens Aktiengesellschaft Überwachungsvorrichtung zur Überwachung eines Schaltkreises
US9654111B1 (en) * 2014-11-12 2017-05-16 Maxim Integrated Products, Inc. Systems and methods for protecting data using reconfigurable logic paths
US9531384B1 (en) * 2014-12-01 2016-12-27 University Of South Florida Adiabatic dynamic differential logic for differential power analysis resistant secure integrated circuits
CN106027221B (zh) * 2015-09-29 2019-04-19 深圳华视微电子有限公司 抵抗高阶差分功耗分析攻击的数据处理***
CN107547194A (zh) * 2016-06-28 2018-01-05 埃沙尔公司 免受侧信道分析的保护方法和设备
DE102017002153A1 (de) * 2017-03-06 2018-09-06 Giesecke+Devrient Mobile Security Gmbh Übergang von einer booleschen Maskierung zu einer arithmetischen Maskierung
DE102018107114A1 (de) * 2018-03-26 2019-09-26 Infineon Technologies Ag Seitenkanalgehärtete Operation

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010053220A1 (en) * 1998-06-03 2001-12-20 Cryptography Research, Inc. Cryptographic computation using masking to prevent differential power analysis and other attacks

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5452358A (en) * 1994-02-08 1995-09-19 Apple Computer, Inc. Method and apparatus for improving the security of an electronic codebook encryption scheme utilizing a data dependent encryption function
US5796836A (en) * 1995-04-17 1998-08-18 Secure Computing Corporation Scalable key agile cryptography
FR2779018B1 (fr) * 1998-05-22 2000-08-18 Activcard Terminal et systeme pour la mise en oeuvre de transactions electroniques securisees
JP3739959B2 (ja) * 1999-03-23 2006-01-25 株式会社リコー デジタル音響信号符号化装置、デジタル音響信号符号化方法及びデジタル音響信号符号化プログラムを記録した媒体
US6295606B1 (en) * 1999-07-26 2001-09-25 Motorola, Inc. Method and apparatus for preventing information leakage attacks on a microelectronic assembly
US20020114451A1 (en) * 2000-07-06 2002-08-22 Richard Satterfield Variable width block cipher
FR2820914A1 (fr) * 2001-02-15 2002-08-16 Bull Cp8 Procede de securisation d'un ensemble electronique mettant en oeuvre en algorithme cryptographique utilisant des operations booleennes et des operations arithmetiques, et systeme embarque correspondant
FR2828608B1 (fr) * 2001-08-10 2004-03-05 Gemplus Card Int Procede securise de realisation d'une operation d'exponentiation modulaire
US7142670B2 (en) * 2001-08-14 2006-11-28 International Business Machines Corporation Space-efficient, side-channel attack resistant table lookups
DE10341096A1 (de) * 2003-09-05 2005-03-31 Giesecke & Devrient Gmbh Übergang zwischen maskierten Repräsentationen eines Wertes bei kryptographischen Berechnungen
DE102004061312B4 (de) * 2004-12-20 2007-10-25 Infineon Technologies Ag Vorrichtung und Verfahren zum Detektieren eines potentiellen Angriffs auf eine kryptographische Berechnung

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010053220A1 (en) * 1998-06-03 2001-12-20 Cryptography Research, Inc. Cryptographic computation using masking to prevent differential power analysis and other attacks

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CORON, J.-S.; GOUBIN, L.: On Boolean and Arithme- tic Masking against Differential Power Analysis. Cryptographics Hardware and Embedded Systems-CHES 2000, Vol. 1965 of Lecture Notes in Computer Science, Springer Verlag, 2000, S. 231-238
CORON, J.-S.; GOUBIN, L.: On Boolean and Arithmetic Masking against Differential Power Analysis. Cryptographics Hardware and Embedded Systems-CHES 2000, Vol. 1965 of Lecture Notes in Computer Science, Springer Verlag, 2000, S. 231-238 *

Also Published As

Publication number Publication date
DE102004061312A1 (de) 2006-06-29
US7801298B2 (en) 2010-09-21
US20060159257A1 (en) 2006-07-20

Similar Documents

Publication Publication Date Title
DE102007063755B4 (de) Fehlererkennungsschaltung und zugehöriges Betriebsverfahren und Computerprogrammprodukt
DE602004013206T2 (de) Verfahren und diesbezügliche einrichtung zur hardwareorientierten umsetzung zwischen arithmetik- und boolscher zufallsmaskierung
DE60217260T2 (de) Datenverarbeitungs- und Verschlüsselungseinheit
DE102006004557A1 (de) Kryptografische Logikschaltung und Kryptografieverfahren
DE60223337T3 (de) Verfahren zur gesicherten verschlüsselung und baustein zur ausführung eines solchen verschlüsselungsverfahrens
DE102004061312B4 (de) Vorrichtung und Verfahren zum Detektieren eines potentiellen Angriffs auf eine kryptographische Berechnung
EP3593483B1 (de) Übergang von einer booleschen maskierung zu einer arithmetischen maskierung
DE102008051447B4 (de) Verfahren und Vorrichtung zum Schützen einer RSA-Berechnung an einer Ausgabe mit Hilfe des chinesischen Restsatzes
DE10304451B3 (de) Modulare Exponentiation mit randomisiertem Exponenten
DE102007026977B4 (de) Kryptographisches System und zugehöriges Betriebsverfahren und Computerprogrammprodukt
EP1540880B1 (de) Geschützte kryptographische berechnung
EP2191408A1 (de) Verfahren und vorrichtung zum codieren von datenworten
EP1442391B1 (de) Verfahren und vorrichtung zum absichern einer berechnung in einem kryptographischen algorithmus
EP1454260B1 (de) Verfahren und vorrichtung zum absichern einer exponentiations-berechnung mittels dem chinesischen restsatz (crt)
EP1596527B1 (de) Übergang von einer booleschen Maskierung zu einer arithmetischen Maskierung
EP3804209B1 (de) Verfahren mit safe-error-abwehrmassnahme
EP1046142A1 (de) Datenverarbeitungseinrichtung und verfahren zu dessen betrieb zum verhindern einer differentiellen stromverbrauchanalyse
EP1046131B1 (de) Datenverarbeitungseinrichtung und verfahren zu dessen betrieb zum verhindern einer differentiellen stromverbrauchanalyse
DE102004043480B3 (de) Vorrichtung und Verfahren zum Erkennen einer Störung einer kryptographischen Einheit vorzugsweise des AES-Algorithmus
DE10162496C5 (de) Verfahren und Vorrichtung zum Absichern einer Berechnung in einem kryptographischen Algorithmus
DE102023106166B3 (de) Sicherheits-controller und verfahren zur durchführung einer auswahlfunktion
EP3371733A1 (de) Verschlüsseln des speicherinhalts eines speichers in einem eingebetteten system
DE102004001659B4 (de) Vorrichtung und Verfahren zum Konvertieren einer ersten Nachricht in eine zweite Nachricht
DE102005058275B4 (de) Verfahren und Vorrichtung zum Überprüfen einer sicheren Übermittlung eines bereitgestellten Dokumentes an ein Datenschutzmodul sowie Verfahren und Vorrichtung zum sicheren Überprüfen einer Authentizität eines empfangenen geschützten Dokumentes
EP1760929B1 (de) Geschütztes kryptographisches Verfahren

Legal Events

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