DE102008051447B9 - Verfahren und Vorrichtung zum Schützen einer RSA-Berechnung an einer Ausgabe mit Hilfe des chinesischen Restsatzes - Google Patents

Verfahren und Vorrichtung zum Schützen einer RSA-Berechnung an einer Ausgabe mit Hilfe des chinesischen Restsatzes Download PDF

Info

Publication number
DE102008051447B9
DE102008051447B9 DE102008051447.0A DE102008051447A DE102008051447B9 DE 102008051447 B9 DE102008051447 B9 DE 102008051447B9 DE 102008051447 A DE102008051447 A DE 102008051447A DE 102008051447 B9 DE102008051447 B9 DE 102008051447B9
Authority
DE
Germany
Prior art keywords
input
value
modified
denotes
parameter
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
DE102008051447.0A
Other languages
English (en)
Other versions
DE102008051447A1 (de
DE102008051447B4 (de
Inventor
Wieland 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
Publication of DE102008051447A1 publication Critical patent/DE102008051447A1/de
Application granted granted Critical
Publication of DE102008051447B4 publication Critical patent/DE102008051447B4/de
Publication of DE102008051447B9 publication Critical patent/DE102008051447B9/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
    • 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/08Randomization, e.g. dummy operations or using noise
    • 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/26Testing cryptographic entity, e.g. testing integrity of encryption key or encryption algorithm

Abstract

Vorrichtung (30) zum Schützen einer RSA-Berechnung einer Ausgabe basierend auf Eingabewerten, die zwei Eingabeprimzahlen und eine Eingangsmeldung aufweisen, mit Hilfe des chinesischen Restsatzes, wobei die Vorrichtung folgende Merkmale aufweist: eine erste Bestimmungsvorrichtung (31), die angepasst ist, um einen ersten Sicherheitsparameter (t) basierend auf den beiden Eingabeprimzahlen (p, q) zu bestimmen; eine Rechenvorrichtung (32), die angepasst ist, um einen Steuerwert (σ) basierend auf dem ersten Sicherheitsparameter (t) und den Eingabewerten (p, q, M) zu berechnen; eine Berechnungsvorrichtung (33), die angepasst ist, um modifizierte Eingabewerte basierend auf den Eingabewerten (p, q) und dem ersten Sicherheitsparameter (t) zu berechnen; eine Ausführungsvorrichtung (34), die angepasst ist, um die RSA-Berechnung basierend auf den modifizierten Eingabewerten auszuführen, um eine einzelne, modifizierte Ausgabe (S^ ) zu erhalten; und eine zweite Bestimmungsvorrichtung (35), die angepasst ist, um zu bestimmen, ob die einzelne, modifizierte Ausgabe (S^ ) in einer vorbestimmten Beziehung zu dem Steuerwert (σ) ist, und eine Gegenmaßnahme in dem Fall anzuwenden, dass die vorbestimmte Beziehung nicht erfüllt ist.

Description

  • Die vorliegende Erfindung bezieht sich auf Kryptographie und insbesondere auf ein Verfahren und eine Vorrichtung zum Schützen einer RSA-Berechnung einer Ausgabe basierend auf Eingabewerten mit Hilfe des chinesischen Restsatzes (CRT; CRT = Chinese remainder theorem).
  • Modulare Exponentiation ist eine der Kernberechnungen für verschiedene kryptographische Algorithmen. Ein Beispiel eines verbreiteten kryptographischen Algorithmus ist das RSA-Kryptosystem.
  • N = p·q sei das Produkt aus zwei großen Eingabeprimzahlen p und q. Es sei ferner ein öffentlicher Exponent e (public exponent e) teilerfremd zu φ(N) = (p – 1)(q – 1), wobei φ(.) die Eulersche Phi-Funktion (totient function) bezeichnet. Dadurch ist die Totient (Eulersche Phi-Funktion) φ(.) einer positiven ganzen Zahl n definiert als die Anzahl von positiven ganzen Zahlen kleiner oder gleich n, die teilerfremd zu n sind. Ein entsprechender geheimer Exponent zu dem öffentlichen Exponenten e ist d = e–1 mod φ(N). Für das RSA-Kryptosystem ist die Ausgabe oder eine Signatur an einer Eingangsmeldung M gegeben durch S = M'd mod N, (1) wobei M' = μ(M) für eine deterministische Padding-Funktion μ. Die Gültigkeit der Ausgabe S kann dann öffentlich verifiziert werden, durch Prüfen, ob Se = μ(M)(mod N), unter Verwendung des öffentlichen Exponenten e.
  • Die meisten Implementierungen des verbreitet verwendeten RSA-Kryptosystems basieren auf dem chinesischen Restsatz, da dieser das Verhalten sowohl bei Laufzeit als auch Speicheranforderung bedeutend verbessert. In dem CRT-Modus des RSA-Kryptosystems sind die geheimen Parameter dp = d mod (p – 1), dq = d mod (q – 1) und qinv = q–1 mod p. Die Ausgabe S wird dann berechnet als S = CRT(Sp, Sg) = Sq + q[qinv(Sp – Sq) mod p], (2) wobei
    Figure DE102008051447B9_0002
  • Leider sind CRT-basierte Implementierungen der RSA-Kryptosysteme auch als anfälliger gegenüber Fehlerangriffen bekannt. Ein einzelner Fehler bei einer RSA-Exponentiation kann die zwei geheimen Eingangs-Primfaktoren p, q durch eine gcd-Berechnung preisgeben (gcd = greatest common divisor = größter gemeinsamer Teiler). Differentialfehlerattacken gegen das RSA-Kryptosystem mit CRT haben sich zu einem der wichtigsten Angriffsszenarios (nicht ausschließlich) gegen RSA entwickelt, seit der Veröffentlichung von Boneh u. a., „On the Importance of Checking Cryptographic Protocols for Faults (Extended Abstract), Eurocrypt 1997, Seiten 37 bis 51. Viele Fehlerattacken wurden in der Zwischenzeit beschrieben. Gegenmaßnahmen gegen die Fehlerattacken sind vielfältig so wie auch die Fehlerattacken selbst. Die erste und beste bekannte Gegenmaßnahme ist in der US 5,991,415 beschrieben. Diese Fachveröffentlichung schlägt das Verwenden einer kleinen Zufallszahl r vor und das Berechnen der zwei Halb-Exponentiationen Sp und Sq der Gleichungen (3) auf redundante Weise, d. h. Sp* = M'd mod rp Sq* = M'd mod rq, (4) und die Ausgabe S = CRT(Sp*, Sq*) mod N zurückzugeben im Fall von Sp* = Sq*(mod r) und ansonsten einen Fehler oder eine Gegenmaßnahme.
  • Die meisten der heutigen Gegenmaßnahmen arbeiten auf dem Prinzip, das in der US 5,991,415 beschrieben ist. Eine Redundanz wird in die RSA-Berechnung eingebracht, die am Ende der Berechnung geprüft wird, und basierend auf dem Erfolg der Tests wird die (korrekte) Signatur ausgegeben oder die falsche Signatur wird unterdrückt.
  • Eine andere Alternative ist eine Fehlerprüfung auf Basis eines Eins- oder Null-Vergleichs und, in dem Fall einer Ungleichheit, das Kombinieren der Vergleichszahl mit einer Signatur, derart, dass die Signatur im Fall eines Fehlers auf solche Weise verändert oder beeinflusst wird, dass ein Angreifer keine Folgerungen aus dem geheimen Schlüssel ziehen kann. In diesem Fall kann eine dedizierte Fehlerausgabe vermieden werden, da eine doppelt gestörte Signatur ausgegeben wird.
  • In diesem Fall ist ein Angreifer in der Lage, auch die Prüfung zu stören, er könnte in der Lage sein, die Fehlerausgabe oder die Beeinflussung der Signatur zu unterdrücken. Aus diesem Grund müssen auch die fehlerenthüllenden Teile der Algorithmen geschützt werden. Dies ist nicht immer eine einfache Aufgabe, da es nicht möglich ist, jede mögliche Fehlerattacke (Fehlerangriff) zu kennen (die in Zukunft verwendet wird). Aufgrund der diversen Fehlerattacken wurden zusätzliche Fehlerprüfungen zu den Algorithmen hinzugefügt. Jede dieser Fehlerprüfungen ist ein potentielles Ziel für einen Angriff und muss vorsichtig geschützt werden. Aus diesem Grund könnte ein RSA-Kryptosystem immer komplexer in Bezug auf eine Sicherheitsbewertung werden, da sichergestellt werden muss, dass die Fehlerprüfungen die gesamte Berechnung nahtlos abdecken.
  • Somit wäre es wünschenswert, die gesamte kritische Berechnung eines RSA-CRT-Kryptosystems unter Verwendung von so wenig Fehlerprüfungen wie möglich zu sichern.
  • Die WO 2006/103 149 A1 offenbart das Erzeugen von zwei zufälligen Ganzzahlen r1, r2, die verwendet werden, um zwei Wertepaare zu bilden, wobei jedes Wertepaar einen Testwert umfasst. Ferner wird ein Wert für eine endgültige Signatur erzeugt, indem Werte der zwei Wertepaare unter Verwendung des chinesischen Restsatzes (CRT) kombiniert werden. Ferner werden zwei weitere Werte unter Verwendung einer Vergleichsfunktion zwischen dem Wert für die Signatur und einem ersten Wert der Wertepaare und zwischen dem Wert für die schließliche Signatur und einem zweiten Wert der Wertepaare gebildet. Hierauf wird ein Resultat erzeugt, das eine Funktion dieser zwei weiteren Werte ist. Die abschließende Signatur wird abhängig von dem Ergebnis der Funktion ausgegeben, wobei dann, wenn die Funktion 1 ergeben hat, das abschließende Ergebnis richtig ist und ansonsten falsch ist.
  • Es ist die Aufgabe der vorliegenden Erfindung, eine Vorrichtung zum Schützen einer RSA-Berechnung, ein Verfahren zum Schützen einer RSA-Berechnung und ein Computerprogramm mit verbesserten Charakteristika zu schaffen.
  • Diese Aufgabe wird durch eine Vorrichtung gemäß Anspruch 1, 12 und 17, ein Verfahren gemäß Anspruch 18 und ein Computerprogramm gemäß Anspruch 25 gelöst.
  • Ausführungsbeispiele der vorliegenden Erfindung schaffen eine Vorrichtung zum Schützen einer RSA-Berechnung einer Ausgabe basierend auf Eingabewerten mit Hilfe des chinesischen Restsatzes, wobei die Vorrichtung folgende Merkmale aufweist: eine erste Bestimmungsvorrichtung, die angepasst ist, um einen ersten Sicherheitsparameter basierend auf den Eingabewerten zu bestimmen, eine Rechenvorrichtung, die angepasst ist, um einen Steuerwert basierend auf dem ersten Sicherheitsparameter und den Eingabewerten zu berechnen, eine Berechnungsvorrichtung, die angepasst ist, um modifizierte Eingabeparameter basierend auf den Eingabewerten und dem ersten Sicherheitsparameter zu berechnen, eine Ausführungsvorrichtung, die angepasst ist, um die RSA-Berechnung basierend auf den modifizierten Eingabewerten auszuführen, um eine einzelne, modifizierte Ausgabe zu erhalten, und eine zweite Bestimmungsvorrichtung, die angepasst ist, um zu bestimmen, ob die einzelne, modifizierte Ausgabe in einer vorbestimmten Beziehung zu dem Steuerwert ist, und eine Gegenmaßnahme in dem Fall anzuwenden, dass die vorbestimmte Beziehung nicht erfüllt ist.
  • Weitere Ausführungsbeispiele der vorliegenden Erfindung schaffen eine Vorrichtung zum Schützen einer RSA-Berechnung einer Ausgangsmeldung basierend auf einer Eingangsmeldung und einem ersten und einem zweiten Eingabewert mit Hilfe des chinesischen Restsatzes, wobei die Vorrichtung folgende Merkmale aufweist: ein erstes Register für den ersten Eingabewert, ein zweites Register für den zweiten Eingabewert, ein drittes Register für die Eingangsmeldung, ein viertes Register für einen ersten Sicherheitsparameter, ein fünftes Register für einen Steuerwert, wobei ein Registerinhalt des vierten Registers basierend auf Registerinhalten des ersten und zweiten Registers bestimmt wird, wobei der fünfte Registerinhalt basierend auf dem Registerinhalt des ersten, des zweiten, des dritten und des vierten Registers bestimmt wird, und wobei die Vorrichtung eine Verarbeitungsteileinheit aufweist, die konfiguriert ist, um eine einzelne modifizierte Ausgangsmeldung zu berechnen, basierend auf modifizierten Registerinhalten des ersten und zweiten Registers, und um zu bestimmen, ob die einzelne modifizierte Ausgangsmeldung in einer vorbestimmten Beziehung zu dem Registerinhalt des fünften Registers ist, und eine Gegenmaßnahme in dem Fall anzuwenden, dass die vorbestimmte Beziehung nicht erfüllt ist.
  • Weitere Ausführungsbeispiele der vorliegenden Erfindung schaffen ein Verfahren zum Schützen einer RSA-Berechnung einer Ausgabe basierend auf Eingabewerten mit Hilfe des chinesischen Restsatzes, wobei das Verfahren folgende Schritte aufweist: Bestimmen eines ersten Sicherheitsparameters basierend auf den Eingabewerten, Berechnen eines Steuerwerts basierend auf dem ersten Sicherheitsparameter und den Eingabewerten, Berechnen modifizierter Eingabeparameter basierend auf den Eingabewerten und dem ersten Sicherheitsparameter, Ausführen der RSA-Berechnung basierend auf den modifizierten Eingabewerten, um eine einzelne modifizierte Ausgabe zu erhalten, und Bestimmen, ob die einzelne modifizierte Ausgabe in einer vorbestimmten Beziehung zu dem Steuerwert ist, und Anwenden einer Gegenmaßnahme in dem Fall, dass die vorbestimmte Beziehung nicht erfüllt ist.
  • Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf die beiliegenden Zeichnungen näher erläutert. Es zeigen:
  • 1 ein Flussdiagramm eines Verfahrens zum Schützen einer RSA-Berechnung mit Hilfe des chinesischen Restsatzes gemäß einem Ausführungsbeispiel der vorliegenden Erfindung;
  • 2 ein detaillierteres Flussdiagramm eines Verfahrens zum Schützen einer RSA-Berechnung mit Hilfe des chinesischen Restsatzes gemäß einem Ausführungsbeispiel der vorliegenden Erfindung; und
  • 3 ein Blockdiagramm einer Vorrichtung zum Ausführen eines Verfahrens gemäß 1 oder 2.
  • Im Hinblick auf die nachfolgende Beschreibung sollte darauf hingewiesen werden, dass in den unterschiedlichen Ausführungsbeispielen gleich arbeitende Funktionselemente dieselben Bezugszeichen aufweisen und somit die Beschreibungen dieser Funktionselemente in den unterschiedlichen Ausführungsbeispielen austauschbar sind, die nachfolgend dargestellt werden.
  • 1 zeigt ein Flussdiagramm eines Verfahrens zum Schützen einer RSA-Berechnung einer Ausgabe S basierend auf Eingabewerten p, q, d und M mit Hilfe des chinesischen Restsatzes.
  • Aus den Eingabewerten p, q und d können weitere Werte dp = d mod (p – 1), dq = d mod (q – 1) und qinv = q–1 mod p hergeleitet werden.
  • Bei einem ersten Schritt S1 wird ein erster Sicherheitsparameter t basierend auf den Eingabewerten p und q bestimmt. Bei einem zweiten Schritt S2 wird ein Steuerwert (Kontrollwert, control value) σ basierend auf dem ersten Sicherheitsparameter t und den Eingabewerten p, q und M berechnet. Bei einem dritten Schritt S3 werden modifizierte Eingabeparameter p ^, q ^, q ~, q ~inv basierend auf den Eingabewerten p, q und dem ersten Sicherheitsparameter t berechnet. Bei einem vierten Schritt S4 wird die RSA-Berechnung mit CRT basierend auf den modifizierten Eingabewerten p ^, q ^, q ~, q ~inv ausgeführt, um eine einzelne modifizierte Ausgabe S ^ zu erhalten. Bei einem weiteren Schritt S5 wird bestimmt, ob die einzelne modifizierte Ausgabe S ^ in einer vorbestimmten Beziehung zu dem Steuerwert σ steht. Eine Gegenmaßnahme wird in dem Fall angewendet, dass die vorbestimmte Beziehung nicht erfüllt ist.
  • Dadurch könnte die Gegenmaßnahme z. B. das Unterdrücken der Berechnung und Ausgabe der Ausgabe oder Ausgangssignatur S sein, die von der einzelnen modifizierten Ausgabe S ^ stammt. Alternativ könnte die Ausgangssignatur S in jedem Fall berechnet werden und als eine Gegenmaßnahme, in dem Fall, dass die vorbestimmte Beziehung nicht erfüllt ist, weiter infiziert oder verfälscht werden.
  • Gemäß Ausführungsbeispielen der vorliegenden Erfindung umfasst der Schritt S5 einen Teilschritt zum Extrahieren der Ausgangssignatur S basierend auf der einzelnen modifizierten Ausgangssignatur S ^ und den Eingabewerten p, q.
  • Nachdem ein Überblick über das erfindungsgemäße Verfahren schematisch Bezug nehmend auf 1 gegeben wurde, sollen Ausführungsbeispiele der Einzelschritte S1 bis S5 nachfolgend detaillierter erklärt werden.
  • Bei Schritt S1 wird der erste Sicherheitsparameter t als eine Zufallsprimzahl mit einer Wortlänge von z. B. 32 Bits ausgewählt. Dadurch muss der erste Sicherheitsparameter t bestimmte Eigenschaften aufweisen, insbesondere, dass die modulare multiplikative Inverse qinv der Eingabeprimzahl q modulo der Eingabeprimzahl p modular reduziert (bzw. reduziert im Rahmen einer Modulo-Operation) um den Sicherheitsparameter t nicht gleich 0 ist, und dass die modulare Reduktion eines Produkts der modularen multiplikativen Inversen qinv der Eingabeprimzahl q und der Eingabeprimzahl q im Hinblick auf den Modul t nicht gleich 1 ist, d. h. qinv mod t ≠ 0 und (5) ζt = qinv·q mod t ≠ 1. (6)
  • Genauer gesagt muss ζt außerhalb des Intervalls zwischen 0 und 1 sein, d. h. ζt ∉ {0, 1}.
  • Gemäß einem Ausführungsbeispiel der vorliegenden Erfindung wird bei Schritt S1 ein Kandidat für den ersten Sicherheitsparameter t ausgewählt, um Gleichungen (5) und (6) zu erfüllen, und dann wird die Eigenschaft ζt ∉ {0, 1} geprüft. Wenn sie nicht erfüllt ist, wird ein neuer erster Sicherheitsparameter t verwendet. Es wird darauf hingewiesen, dass die Eingabeprimzahl q und ihre modulare Inverse qinv geheime und annähernd zufällige Parameter sind. Ein Angreifer kann nicht erzwingen, dass diese bestimmte Werte aufweisen, oder wenn er das könnte, könnte man sagen, dass ein solcher Angriff keinen Sinn macht, da dies der Wert ist, den er extrahieren möchte. Somit ist die Wahrscheinlichkeit, dass die Bedingung ζt ∉ {0, 1} nicht erfüllt ist, ungefähr 2/t, und es wird praktisch nie passieren, dass zwei oder mehr Werte für t weggeworfen werden.
  • Bei Schritt S1 ist es ferner wichtig, dass φ(t – 1) so groß wie möglich ist. Dieser Wert ist in direktem Bezug zu der Fehlererfassungswahrscheinlichkeit. Da (t – 1) eine gerade Ganzzahl ist, φ(t – 1) ≤ (t – 1)/2, und die Gleichheit gilt wenn, und nur wenn t = 2g + 1, wobei g eine ungerade Primzahl ist. Somit wird gemäß Ausführungsbeispielen der vorliegenden Erfindung der erste Sicherheitsparameter t derart bestimmt, dass die Eulersche Phi-Funktion des ersten Sicherheitsparameters minus Eins größer ist als (t – 1)/3, d. h. φ(t – 1) > (t – 1)/3.
  • Während Schritt S1 oder in einem nachfolgenden Schritt kann ein zweiter Sicherheitsparameter u erzeugt werden. Dadurch ist der zweite Sicherheitsparameter u größer oder gleich 0 und ist kleiner als der erste Sicherheitsparameter t, d. h. u ∈ [0, t[, derart, dass der größte gemeinsame Teiler des zweiten Sicherheitsparameters u und des Produkts des ersten Sicherheitsparameters t und der Eingabeprimzahl p gleich 1 ist, d. h. gcd(u, t·p) = 1.
  • Nachdem Schritt S1 ausgeführt wurde, kann der erste Sicherheitsparameter t zusammen mit den Eingabewerten p, q, dp, dq, qinv und M verwendet werden, um den Steuerwert σ bei dem zweiten Schritt S2 zu berechnen. Dadurch kann der Steuerwert σ basierend auf der nachfolgenden Gleichung berechnet werden: σ = [σq(1 – ζt) + σpζt] mod t, (7) wobei σq eine modulare Reduktion eines Werts abhängig von der Eingangsmeldung M und der Eingabeprimzahl q im Hinblick auf einen Modul bezeichnet, der der erste Sicherheitsparameter t ist. Gemäß einem Ausführungsbeispiel der vorliegenden Erfindung kann σq folgendermaßen berechnet werden
    Figure DE102008051447B9_0003
  • Bei Gleichung (7) bezeichnet σp eine modulare Reduktion eines Werts abhängig von der Eingangsmeldung und der Eingabeprimzahl p im Hinblick auf einen Modul, der der erste Sicherheitsparameter t ist. Gemäß einem Ausführungsbeispiel der vorliegenden Erfindung kann σp wie folgt berechnet werden
    Figure DE102008051447B9_0004
  • Nach dem Ausführen der Berechnung des Steuerwerts σ bei dem zweiten Schritt S2 können die modifizierten Eingabewerte p ^, q ^, q ~, q ~inv bei Schritt S3 bestimmt werden.
  • Hier wird ein modifizierter Eingabeparameter p ^ aus einem Produkt des Eingabeparameters p und des ersten Sicherheitsparameters t berechnet, d. h. p ^ = p·t. Ein weiterer modifizierter Eingabeparameter q ^ wird aus einem Produkt des Eingabeparameters q und des ersten Sicherheitsparameters t berechnet, d. h. q ^ = q·t. Ein wiederum weiterer modifizierter Eingabeparameter q ~ wird aus einem Produkt des Eingabeparameters q und des zweiten Sicherheitsparameters u berechnet, was z. B. bei Schritt S1 bestimmt wurde, d. h. q ~ = q·u. Gemäß einem Ausführungsbeispiel der vorliegenden Erfindung wird bei Schritt S3 ebenfalls eine modifizierte modulare Inverse q ~inv basierend auf einer modularen Reduktion eines Produkts der Inversen u–1 des zweiten Sicherheitsparameters u und des zweiten Eingabeparameters q im Hinblick auf den Modul bestimmt, der der Eingabeparameter p ist, d. h. q ~inv = u–1·q mod p .
  • Der zweite Sicherheitsparameter u könnte natürlich auch bei Schritt S3 anstelle von Schritt S1 berechnet werden. Ferner könnte die Reihenfolge der Ausführung der Schritte S2 und S3 umgekehrt werden, gemäß unterschiedlichen Ausführungsbeispielen der vorliegenden Erfindung. Es ist jedoch vorteilhaft, den Steuerwert σ so früh wie möglich zu berechnen.
  • Nach der Ausführung von Schritt S3, der zu den modifizierten Eingabeparametern p ^, q ^, q ~ and q ~inv führt, wird eine RSA-Berechnung mit CRT bei Schritt S4 verwendet, um eine einzelne modifizierte Ausgabe oder Ausgangssignatur S ^ zu erzeugen, basierend auf S ^ = Sq + [(Sp – Sq)·q ~inv mod p ^]·q ~ (10) wobei Sq einen Wert bezeichnet, der durch eine modulare Reduktion eines Werts erhalten wird, der von der Eingangsmeldung M abhängt, im Hinblick auf einen Modul, der durch den modifizierten Eingabeparameter q ^ bestimmt wird, und wobei Sp einen Wert bezeichnet, der durch eine modulare Reduktion eines Werts abhängig von der Eingangsmeldung M erhalten wird, im Hinblick auf einen Modul, der durch den modifizierten Eingabeparameter p ^ bestimmt wird. Gemäß Ausführungsbeispielen der vorliegenden Erfindung können Sp, Sq bestimmt werden, basierend auf
    Figure DE102008051447B9_0005
  • Es wird darauf hingewiesen, dass es sehr wichtig ist, nicht q ^ anstelle von q ~ bei Gleichung (10) zu verwenden. Da q ^ = q·t, würde es jegliche Informationen über einen Fehler in der großen Klammer zerstören.
  • Nach dem Bestimmen der einzelnen modifizierten Ausgabe S ^ bei Schritt S4 kann die einzelne modifizierte Ausgabe S ^ verwendet werden, um zu bestimmen, ob der erste Sicherheitsparameter t in einer vorbestimmten Beziehung zu dem Steuerwert σ bei Schritt S5 ist. Oder anders ausgedrückt kann ferner bestimmt werden, ob die einzelne modifizierte Ausgabe S ^ in einer vordefinierten Beziehung zu dem Steuerwert σ steht, unter Verwendung des ersten Sicherheitsparameters t. Dazu wird eine modulare Reduktion der einzelnen modifizierten Ausgabe S ^ im Hinblick auf einen Modul, der durch den ersten Sicherheitsparameter t bestimmt wird, berechnet. Dann wird geprüft, ob das Ergebnis der modularen Reduktion gleich dem Steuerwert σ ist, d. h. es wird geprüft, ob S ^ mod t = σ. Wenn dies der Fall ist, kann die Ausgabe oder die Ausgangssignatur S aus der einzelnen modifizierten Ausgabe basierend auf der folgenden Beziehung extrahiert werden: S = S ^ mod (p·q). (12)
  • In dem Fall, dass S ^ mod t nicht gleich σ ist, d. h. S ^ mod t ≠ σ, kann eine oben erwähnte Gegenmaßnahme angewendet werden.
  • Bei Schritt S5 wird eine Fehlererfassung basierend auf einem Entscheidungstest ausgeführt. Der Entscheidungstest, d. h. der Vergleich von (S ^ mod t) mit σ, kann z. B. geschützt werden durch mehrmaliges Ausführen dieses Entscheidungstests. Dies kann ausgeführt werden entweder durch sequentielles oder paralleles Ausführen des Entscheidungstests von S5. Dadurch kann eine Umgehung der Fehlererfassung durch Induzieren eines Zufallsfehlers in einem Statusregister des Entscheidungstests vermieden werden.
  • Es wird darauf hingewiesen, dass die gesamte kritische RSA-CRT-Berechnung von Schritt S4 durch eine einzelne Fehlerprüfung bei Schritt S5 geschützt wird. Dies bedeutet, dass nur der Entscheidungstest geschützt werden muss und keine Implementierungs-Sicherheitslöcher auftreten.
  • Um die RSA-CRT-Berechnung noch effizienter zu schützen, auch gegen eine Differenzleistungsanalyse (DPA; DPA = differential power analysis), können mehrere algorithmische Modifikationen eingeführt werden, so dass die kryptographischen Operationen an Daten auftreten, die sich auf tatsächliche Werte durch eine gewisse mathematische Beziehung beziehen, die die kryptographischen Operationen überlebt. Aus diesem Grund können mehr als die oben erwähnten zwei Sicherheitsparameter t, u verwendet werden. Ausführungsbeispiele der vorliegenden Erfindung können ferner weitere ungeradzahlige Randomisierungsparameter r1 bis r4 verwenden.
  • Eine detaillierte Beschreibung des Verfahrens zum Schützen der RSA-CRT-Berechnung unter Verwendung der Sicherheitsparameter t, u und der Randomisierungsparameter r1 bis r4 wird nachfolgend detailliert Bezug nehmend auf 2 beschrieben.
  • Gemäß Ausführungsbeispielen der vorliegenden Erfindung werden die Sicherheitsparameter t, u und die Randomisierungsparameter r1 bis r4 basierend auf dem Eingabeparameter q (und qinv) bei dem ersten Schritt S1 bestimmt.
  • Gemäß Ausführungsbeispielen müssen die folgenden Kriterien für die Sicherheitsparameter t, u und die Randomisierungsparameter r1 bis r4 erfüllt sein.
  • Der erste Sicherheitsparameter t für die gesamte CRT-Berechnung wird derart erzeugt, dass t ∈ [216, 264[\F4 teilerfremd ist, dass φ(t – 1) groß ist, wobei qinv mod t ≠ 0 und ζt = qinv·q mod t ≠ 1. Wie vorangehend erwähnt wurde, muss der erste Sicherheitsparameter t bestimmte Eigenschaften aufweisen, insbesondere die Tatsache, dass qinv mod t ≠ 0 und qinv·q mod t ≠ 1. Die tatsächliche Eigenschaft ist, dass ζt ∉ {0, 1}, wobei ζt ≔ qinv·q mod t. Somit wird bei S1 ein Kandidat für den ersten Sicherheitsparameter t ausgewählt, dann wird die Eigenschaft ζt ∉ {0, 1} geprüft. Wenn sie nicht erfüllt ist, wird ein neuer erster Sicherheitsparameter t verwendet. Es wird darauf hingewiesen, dass q und qinv geheime und annähernd zufällige Parameter sind. Ein Angreifer kann nicht erzwingen, dass dieselben einen bestimmten Wert aufweisen. Oder, wenn er es könnte, könnte man sagen, dass ein solcher Angriff keinen Sinn macht, da dies der Wert ist, den er extrahieren möchte. Somit ist die Wahrscheinlichkeit, dass die Bedingung nicht erfüllt ist, ungefähr 2/t, und es wird praktisch nie passieren, dass zwei oder mehr Werte für t weggeworfen werden.
  • Eine andere wichtige Eigenschaft für t ist, dass φ(t – 1) so groß wie möglich ist. Dieser Wert bezieht sich direkt auf die Fehlererfassungswahrscheinlichkeit. Da (t – 1) eine gerade Ganzzahl ist, φ(t – 1) ≤ (t – 1)/2, und Gleichheit gilt wenn und nur wenn t = 2·g + 1, wobei g eine ungerade Primzahl ist.
  • Die Randomisierungsparameter r1 und r2 für die Eingabeparameter p und q sowie r3 und r4 für die Exponenten dp und dq werden derart erzeugt, dass z. B. r1 ∈ [216, 2β[ ∩ [0, (t – 1)/2[, wobei r1 ungerade ist, r2 ∈ [216, 2β[ ∩ [0, (t – 1)/2[, wobei r2 ungerade ist, r3 ∈ [216, 2γ[ ∩ [0, (t – 1)/2[, wobei r3 ungerade ist, und r4 ∈ (216, 2γ[ ∩ [0, (t – 1)/2[, wobei r4 ungerade ist. Gemäß Ausführungsbeispielen der vorliegenden Erfindung sind die Zahlen β, γ größer als 16 gewählt. Die Tatsache, dass die Randomisierungsparameter r1, r2, r3, r4 als ungerade gewählt sind, erspart einen Faktor 2 bei der Fehlererfassungswahrscheinlichkeit. Ferner gilt, gcd(r1, t – 1) = 1(i = 1, 2, 3, 4).
  • Ferner wird der zweite Sicherheitsparameter u bei Schritt S1 erzeugt, derart, dass u ∈ [0, t[ mit gcd(u, r1·t·p) = 1, z. B. u = t – r1. Da u die spezielle Eigenschaft gcd(u, r1·t·p) = 1 aufweisen sollte, kann der Wert u: = t – r1 dafür verwendet werden. Die Eigenschaft ist für diesen speziellen Wert erfüllt, da gcd(u, p) = 1, da p eine Primzahl größer als u ist, gcd(u, t) = gcd(t – r1, t) = gcd(r1, t) = 1, da t eine Primzahl größer als r1 ist, und gcd(u, r1) = gcd(t – r1, r1) = gcd(t, r1) = 1, da t eine Primzahl größer als r1 ist.
  • Gemäß einem Ausführungsbeispiel der vorliegenden Erfindung sind die Eingaben für den zweiten Schritt S2 die Eingabewerte p ∈ [0,22048 + 64[, q ∈ [0,22048 + 64[, M ∈ [0, N[ (N = pq) und die Werte dp ∈ [0, φ(p)[, dp ∈ [0, φ(q)[, qinv = q–1 mod p, r1, r2, r3, r4, t, die alle von den Eingabewerten p, q hergeleitet werden können.
  • Um den Steuerwert σ bei Schritt S2 zu berechnen, müssen alle Eingangsdaten der RSA-Routine modulo t oder (t – 1) (im Fall von Exponentenparametern) reduziert werden, d. h. pt ≔ p mod t (13) pt – 1 ≔ p mod (t – 1) (14) qt ≔ q mod t (15) qt – 1 ≔ q mod (t – 1) (16) dpt – 1 ≔ dp mod (t – 1) (17) dqt – 1 ≔ dq mod (t – 1) (18) qinv, t ≔ qinv mod t (19) ζt ≔ qinv, t·qt mod t (20) Mt ≔ M mod t (21)
  • Es wird darauf hingewiesen, dass nach der Reduktion die Parameter nur minimale (und keine nützlichen) Informationen über die Geheimnisse enthalten, so dass diese Berechnungen möglicherweise nicht volle Sorgfalt für Sicherheit für die Implementierungen erfordern.
  • Ferner wird eine Korrektur von Mt bei Schritt S2 ausgeführt, da in dem Fall von (Mt = 0) oder (Mt = 1) oder (Mt = t – 1) die Berechnung des Steuerwerts σ keine oder nicht viele Informationen über einen Fehler bei der Hauptberechnung ergibt. Da M durch einen Angreifer ausgewählt werden kann, ist es besser, eine Korrektur an der Meldung M auszuführen, als nur einen anderen ersten Sicherheitsparameter t auszuwählen. Zum Beispiel könnte ein Angreifer das Produkt aller ersten Sicherheitsparameter t auswählen, die auf dem Chip gespeichert sind. Somit wird Mt mit einer Iterationsschleife modifiziert, gemäß ω ≔ 0 während (Mt ∈ {0, 1, t – 1} ⋁ ω = 0) tue Mt ≔ (Mt + (qt·pt)) mod t ω ≔ ω + 1 Ende
  • Während der Modifikation von Mt wird ein neuer Parameter ω bewertet. Dieser Parameter ω ist wichtig für den Schritt S3 und muss zu demselben geliefert werden.
  • Modifizierte Exponentenparameter für die modifizierte Eingangsmeldung Mt können berechnet werden basierend auf δp ≔ dpt – 1 + r3r1(pt – 1 – 1) mod (t – 1) (22) δp ≔ dqt – 1 + r4r2(qt – 1 – 1) mod (t – 1) (23)
  • Dann kann der Steuerwert σ basierend auf der „kleinen” CRT-Berechnung gemäß Gleichung (7) berechnet werden, wobei hier σq eine modulare Reduktion der modifizierten Eingangsmeldung Mt hoch δq im Hinblick auf einen Modul bezeichnet, der der erste Sicherheitsparameter t ist, gemäß
    Figure DE102008051447B9_0006
  • Ferner bezeichnet σp hier eine modulare Reduktion der modifizierten Eingangsmeldung Mt hoch δp im Hinblick auf einen Modul, der der erste Sicherheitsparameter t ist, gemäß
    Figure DE102008051447B9_0007
  • Somit, wie bereits Bezug nehmend auf 1 beschrieben wurde, wird der Steuerwert σ für die gesamte RSA-CRT-Berechnung bei dem zweiten Schritt S2 bestimmt. Im Vergleich zu dem Ausführungsbeispiel, das Bezug nehmend auf 1 beschrieben wurde, sind hier die Randomisierungsparameter r1 bis r4 zusätzlich bei der Bestimmung des Steuerwerts σ beteiligt.
  • Nach dem Ausführen der Berechnung der Steuerwerte σ und ω bei dem zweiten Schritt S2 können die modifizierten Eingabewerte p ^, q ^, q ~, q ~inv bei Schritt S3 bestimmt werden, basierend auf den Eingaben p ∈ [0,22048 + 64[, q ∈ [0,22048 + 64[, dp ∈ [0, φ(p)[, dq ∈ [0, φ(q)[, qinv = q–1 mod p, M ∈ [0, N[, r1, r2, r3, r4, t, u, ω.
  • Die Modifikation der Eingabewerte für die RSA-CRT-Berechnung von Schritt S4 beginnt mit der Randomisierung der geheimsten Parameter p und q. Es muss auf die Implementierung dieses Teilschritts von Schritt S3 geachtet werden. p' ≔ r1·p, (26) q' ≔ r2·q. (27)
  • Der nächste Teilschritt von S3 ist die Berechnung des Öffentlicher-Schlüssel-Elements N basierend auf N ≔ p·q. (28)
  • Der Parameter ω, der bei Schritt S2 erhalten wurde, ist an der Modifikation der Meldung M beteiligt, gemaß M' ≔ M + N·ω. (29)
  • Dann müssen die Exponenten randomisiert werden. Dies wird folgendermaßen ausgeführt: p ^ = p'·t, (30) q ^ = q'·t, (31) d ~p ≔ dp + r3[p ^ – t·r1), (32) d ~q ≔ dq + r4(q ^ – t·r2), (33)
  • Da q nicht direkt bei dem nachfolgenden Schritt S4 verwendet wird, sondern mit u randomisiert wird, wird auch der Wert qinv bei Schritt S3 modifiziert. Der verwandte Teilschritt umfasst eine Inversion, aber da eine der Zahlen (nämlich u) sehr klein ist, ist die Berechnung basierend auf q ~ ≔ q·u, (34) uinv ≔ u–1 mod p ^, (35) q ~inv ≔ uinv·qinv mod p ^, (36) nicht zu zeitaufwendig.
  • Nach der Ausführung von Schritt S3, der zu den modifizierten Eingabeparametern p ^, q ^, q ~ and q ~inv führt, wird die RSA-Berechnung mit CRT bei Schritt S4 verwendet, um eine einzelne modifizierte Ausgabe oder Ausgangssignatur S ^ ∈ [0, N·2β + 2r[ basierend auf den modifizierten Eingaben (p ^, q ^, d ~p, d ~q, q ~inv, q ~, M') basierend auf Gleichung (10) zu erzeugen, wobei Sq einen Wert bezeichnet, der durch eine modulare Reduktion eines Werts erhalten wird, der von der Eingangsmeldung M abhängig ist, im Hinblick auf einen Modul, der durch den modifizierten Eingabeparameter q ^ bestimmt wird, und wobei Sp einen Wert bezeichnet, der durch eine modulare Reduktion eines Werts erhalten wird, der von der Eingangsmeldung M abhängt, im Hinblick auf einen Modul, der durch den modifizierten Eingabeparameter p ^ bestimmt wird. Gemäß Ausführungsbeispielen der vorliegenden Erfindung können Sp, Sq bestimmt werden, basierend auf
    Figure DE102008051447B9_0008
  • Die einzelne, modifizierte Ausgabe S ^, die bei Schritt S4 erzeugt wird, liefert, reduziert bzw. gekürzt bzw. verkleinert um Modulo N, das Ergebnis und, reduziert um Modulo t, den Steuerwert σ – falls kein Fehlerangriff stattgefunden hat.
  • Schritt S4 ist annähernd eine normale RSA-CRT-Berechnung mit der einzigen Ausnahme, dass der Modul q ~, der bei der zweiten Exponentiation verwendet wird, nicht der Parameter ist, der bei der Garner-Formel als der Primfaktor auf der rechten Seite verwendet wird. Es wird darauf hingewiesen, dass die einzelne modifizierte Ausgabe S ^ bei Schritt S4 nicht reduziert wird, weder im Hinblick auf N noch auf N·t. Dafür besteht kein Bedarf, da die Reduktion bei Schritt S5 stattfindet.
  • Bei Schritt S5 wird eine Fehlererfassung basierend auf einem Entscheidungstest ausgeführt, wie oben beschrieben wurde.
  • Im Hinblick auf die Sicherheit, die durch Ausführungsbeispiele der vorliegenden Erfindung bereitgestellt wird, muss erwähnt werden, dass eine DPA (differential power analysis; Differenz-Leistungsanalyse) an einem Punkt möglich ist, wo unbekannte (aber feste) Werte mit bekannten (oder sogar bestimmbaren) Werten zusammenkommen. Bekannte und geheime Werte kommen bei Schritt S4 zusammen. Da bei Schritt S3 alle geheimen Werte randomisiert werden, können bei Schritt S4 nicht alle geheimen Werte (sogar die Zwischenwerte) durch einen Angreifer geschätzt werden. Somit ist keine DPA (erster Ordnung) möglich.
  • Für eine DFA (differential fault analysis; Differenz-Fehleranalyse) wurde eine sorgfältige Analyse und Simulation mit dem Ergebnis ausgeführt, dass alle Fehler mit einer Wahrscheinlichkeit erfasst werden können, die von dem ersten Sicherheitsparameter t abhängt:
    • – Die Gesamtwahrscheinlichkeit, dass eine erfolgreiche Fehlerinduktion nicht erfasst wird, ist ≤ 2 / t
    • – Die Wahrscheinlichkeit des schlimmsten Falls, dass eine erfolgreiche Fehlerinduktion nicht erfasst wird, ist ≤ 4 / t
  • Die einzige Fehlerinduktion, die nicht erfasst werden kann, ist eine durch ein fehlerhaftes N oder S ^, d. h. nur Fehler, die bei Schritt S5 induziert werden. Aber diese sind nicht fatal, da sie keine geheimen Informationen mehr umfassen. Anmerkung: Wenn die Berechnungen bei Schritt S1 bis S4 fehlerfrei ausgeführt wurden, dann könnte Schritt S5 eine öffentliche Operation sein.
  • Eine SPA (simple power analysis; einfache Leistungsanalyse) kann nicht durch Ausführungsbeispiele der vorliegenden Erfindung abgedeckt werden. Wichtig ist die Implementierung der (insbesondere) zwei Exponentiationen bei Schritt S4.
  • Es ist wesentlich, dass die Eingabevariablen nach der Berechnung geprüft werden müssen, da z. B. eine Änderung bei dem Eingabewert dp nicht intrinsisch erfasst werden kann. Eine Alternative wäre das zusätzliche Berechnen und Weitergeben der Parameter pt, pt – 1, qt, qt – 1, dpt – 1, dqt – 1, qinv, t an die Funktion. Natürlich muss der Anrufer dafür den Sicherheitswert t kennen.
  • Um Ausführungsbeispiele des erfindungsgemäßen Verfahrens auszuführen, das vorangehend beschrieben wurde, liefert ein Ausführungsbeispiel der vorliegenden Erfindung eine Vorrichtung 30 zum Schützen einer RSA-CRT-Berechnung einer Ausgabe S basierend auf den Eingabewerten p, q, M. Ein Ausführungsbeispiel der Vorrichtung 30 ist in 3 gezeigt.
  • Die Vorrichtung 30 weist eine erste Bestimmungsvorrichtung 31 zum Bestimmen des ersten Sicherheitsparameters t basierend auf den Eingabewerten p, q auf. Die Vorrichtung 30 weist ferner eine Rechenvorrichtung 32 zum Berechnen des Steuerwerts σ basierend auf dem ersten Sicherheitsparameter t und den Eingabewerten p, q und M auf. Eine Einrichtung 33 zum Berechnen modifizierter Eingabeparameter p ^, q ^, q ~ and q ~inv basierend auf den Eingabewerten p, q und dem ersten Sicherheitsparameter t ist ebenfalls vorgesehen. Die Vorrichtung 30 weist ferner eine Ausführungsvorrichtung 34 zum Ausführen der RSA-CRT-Berechnung basierend auf den modifizierten Eingabewerten p ^, q ^, q ~ and q ~inv auf, um die einzelne modifizierte Ausgabe S ^ zu erhalten. Die einzelne modifizierte Ausgabe S ^ ist mit der zweiten Bestimmungsvorrichtung 35 zum Bestimmen gekoppelt, ob der erste Sicherheitsparameter t in einer vordefinierten Beziehung zu dem Steuerwert σ ist, und zum Anwenden einer Gegenmaßnahme in dem Fall, dass die vorbestimmte Beziehung nicht erfüllt ist.
  • Gemäß Ausführungsbeispielen der vorliegenden Erfindung weist die Vorrichtung 30 ein erstes Register 36 für die Eingabeprimzahl p, ein zweites Register 37 für die Eingabeprimzahl q, ein drittes Register 38 für die Eingangsmeldung M, ein viertes Register 39 für den ersten Sicherheitsparameter t und ein fünftes Register 40 für den Steuerwert σ auf.
  • Der Registerinhalt des vierten Registers 39 wird durch die erste Bestimmungsvorrichtung 31 bestimmt, die eine Verarbeitungsteileinheit einer Verarbeitungsvorrichtung sein könnte, basierend auf der ersten und der zweiten Eingabeprimzahl p, q. Gemäß Ausführungsbeispielen der vorliegenden Erfindung erzeugt die Verarbeitungsteileinheit 31 ferner den zweiten Sicherheitsparameter u, für den auch ein Register vorgesehen ist.
  • Der Registerinhalt des fünften Registers wird berechnet durch die Berechnungsvorrichtung 33, die auch eine Verarbeitungsteileinheit einer Verarbeitungsvorrichtung sein könnte, basierend auf den Eingabewerten p, q, M und dem ersten Sicherheitsparameter t.
  • Die Ausführungsvorrichtung 34, die eine Verarbeitungsteileinheit einer Verarbeitungsvorrichtung sein könnte, berechnet die einzelne, modifizierte Ausgangsmeldung S ^ basierend auf modifizierten Registerinhalten des ersten und zweiten Registers 36, 37 und die Inhalte der Register in Bezug auf den ersten und zweiten Sicherheitsparameter t. Dadurch werden die Registerinhalte des ersten und zweiten Registers 36, 37 in der Verarbeitungsteileinheit 33 modifiziert.
  • Die zweite Bestimmungsvorrichtung 35, die eine Verarbeitungsteileinheit der Verarbeitungsvorrichtung sein könnte, hat Zugriff auf die einzelne, modifizierte Ausgangsmeldung S ^, das erste, zweite, vierte und fünfte Register 36, 37, 39, 40 und weist eine Ausgabe für die Ausgangsmeldung S auf, berechnet basierend auf der einzelnen, modifizierten Ausgangsmeldung S ^ und dem Registerinhalt für das erste und zweite Register 36, 37 in dem Fall einer positiven Steueroperation. Eine Fehlermeldung wird im Fall einer negativen Steueroperation der einzelnen, modifizierten Ausgangsmeldung S ^ ausgegeben. Dadurch basiert die Steueroperation auf dem Entscheidungstest, der oben Bezug nehmend auf Schritt S5 beschrieben wurde.
  • Es wird aus den vorangehend beschriebenen Ausführungsbeispielen offensichtlich, dass die Berechnungen, die bei den Schritten S1 bis S3 und Schritt S5 benötigt werden, einfache Berechnungen sind, die jedoch in einer Krypto-Recheneinheit vorliegen, wie z. B. ein Multiplikationsalgorithmus oder ein Algorithmus zum Ausführen einer modularen Reduktion.
  • Gemäß Ausführungsbeispielen der vorliegenden Erfindung ist die Vorrichtung 30 somit als ein seitenkanalangriffssicherer Hardwareblock konfiguriert und wird bei kryptographischen Anwendungen verwendet. Die Vorrichtung 30 ist daher zum Erzeugen z. B. von einer Signatur für ein asymmetrisches, kryptographisches Schema angepasst.
  • Somit ist die vorliegende Erfindung aufgrund ihrer Flexibilität, Sicherheit und ihres Verhaltens insbesondere geeignet für kryptographische Algorithmen und für kryptographische Coprozessoren, auf denen eine sichere und effiziente Implementierung des RSA-CRT-Algorithmus, der zum Signieren sowie zur Verschlüsselung geeignet ist, üblicherweise mittels einer Schaltung implementiert ist.
  • Abhängig von den Umständen kann das erfindungsgemäße Verfahren in Hardware oder in Software implementiert sein. Die Implementierung kann auf einem digitalen Speichermedium ausgeführt werden, insbesondere einer Platte, CD oder DVD mit elektronisch lesbaren Steuersignalen, die mit einem programmierbaren Computersystem so zusammenarbeiten können, dass das Verfahren ausgeführt wird. Im Allgemeinen besteht die Erfindung somit aus einem Computerprogrammprodukt mit einem Programmcode, der auf einem maschinenlesbaren Träger gespeichert ist, zum Ausführen des erfindungsgemäßen Verfahrens, wenn das Computerprogrammprodukt auf einem Computer läuft. Anders ausgedrückt kann die Erfindung somit als ein Computerprogramm mit einem Programmcode zum Ausführen des Verfahrens realisiert sein, wenn das Computerprogramm auf einem Computer läuft.
  • Während diese Erfindung im Hinblick auf verschiedene bevorzugte Ausführungsbeispiele beschrieben wurde, gibt es Änderungen, Permutationen und Entsprechungen, die in den Schutzbereich dieser Erfindung fallen. Es sollte ferner erwähnt werden, dass es viele alternative Möglichkeiten zum Implementieren der Verfahren und Zusammensetzungen der vorliegenden Erfindung gibt. Es ist daher beabsichtigt, dass die nachfolgend angehängten Ansprüche derart interpretiert werden, dass sie alle solchen Änderungen, Permutationen und Entsprechungen umfassen, wie sie in das wahre Wesen und den Schutzbereich der vorliegenden Erfindung fallen.

Claims (25)

  1. Vorrichtung (30) zum Schützen einer RSA-Berechnung einer Ausgabe basierend auf Eingabewerten, die zwei Eingabeprimzahlen und eine Eingangsmeldung aufweisen, mit Hilfe des chinesischen Restsatzes, wobei die Vorrichtung folgende Merkmale aufweist: eine erste Bestimmungsvorrichtung (31), die angepasst ist, um einen ersten Sicherheitsparameter (t) basierend auf den beiden Eingabeprimzahlen (p, q) zu bestimmen; eine Rechenvorrichtung (32), die angepasst ist, um einen Steuerwert (σ) basierend auf dem ersten Sicherheitsparameter (t) und den Eingabewerten (p, q, M) zu berechnen; eine Berechnungsvorrichtung (33), die angepasst ist, um modifizierte Eingabewerte basierend auf den Eingabewerten (p, q) und dem ersten Sicherheitsparameter (t) zu berechnen; eine Ausführungsvorrichtung (34), die angepasst ist, um die RSA-Berechnung basierend auf den modifizierten Eingabewerten auszuführen, um eine einzelne, modifizierte Ausgabe (S ^) zu erhalten; und eine zweite Bestimmungsvorrichtung (35), die angepasst ist, um zu bestimmen, ob die einzelne, modifizierte Ausgabe (S ^) in einer vorbestimmten Beziehung zu dem Steuerwert (σ) ist, und eine Gegenmaßnahme in dem Fall anzuwenden, dass die vorbestimmte Beziehung nicht erfüllt ist.
  2. Vorrichtung gemäß Anspruch 1, wobei die Vorrichtung ferner eine Extraktionsvorrichtung aufweist, die angepasst ist, um die Ausgabe basierend auf der einzelnen, modifizierten Ausgabe (S ^) und den Eingabewerten (p, q) zu extrahieren.
  3. Vorrichtung gemäß Anspruch 1 oder 2, bei der die erste Bestimmungsvorrichtung (31) ferner angepasst ist, um den ersten Sicherheitsparameter (t) derart zu bestimmen, dass die modulare, multiplikative Inverse (qinv) einer ersten Eingabeprimzahl (q) modulo einer zweiten Eingabeprimzahl (p) modular reduziert um den ersten Sicherheitsparameter (t) nicht gleich Null ist und derart, dass eine modulare Reduktion eines Produkts der ersten Eingabeprimzahl und ihrer modularen, multiplikativen Inversen (qinv) modulo der zweiten Eingabeprimzahl im Hinblick auf einen Modul, der der erste Sicherheitsparameter (t) ist, nicht gleich Eins ist.
  4. Vorrichtung gemäß einem der Ansprüche 1 bis 3, bei der die erste Bestimmungsvorrichtung (31) ferner angepasst ist, um einen zweiten Sicherheitsparameter zu bestimmen, der größer oder gleich Null ist und kleiner als der erste Sicherheitsparameter ist, derart, dass der größte gemeinsame Teiler des zweiten Sicherheitsparameters und eines Produkts des ersten Sicherheitsparameters und einer zweiten Eingabeprimzahl gleich Eins ist.
  5. Vorrichtung gemäß einem der Ansprüche 1 bis 4, bei der die erste Bestimmungsvorrichtung (31) ferner angepasst ist, um vier ungerade Randomisierungsparameter zu bestimmen, die in dem Intervall [216, 2γ[ ⋂ [0, (t – 1)/2[ liegen, wobei γ eine Zahl bezeichnet, die größer als 16 ist, und t den ersten Sicherheitsparameter bezeichnet.
  6. Vorrichtung gemäß einem der Ansprüche 1 bis 5, bei der die Rechenvorrichtung (32) ferner angepasst ist, um den Steuerwert basierend auf der nachfolgenden Gleichung zu berechnen: σ = [σq(1 – ζt) + σp·ζt] mod t wobei σq eine modulare Reduktion eines Werts bezeichnet, der von der Eingangsmeldung und einem ersten Eingabewert und einem Modul abhängig ist, der der erste Sicherheitsparameter ist, σp eine modulare Reduktion eines Werts bezeichnet, der von der Eingangsmeldung und einem zweiten Eingabewert und einem Modul abhängig ist, der der erste Sicherheitsparameter ist, und wobei ζt eine modulare Reduktion eines Produkts eines Werts, der von der modularen Inversen des ersten Eingabewerts abhängig ist, und eines Werts, der von dem ersten Eingabewert abhängig ist, im Hinblick auf einen Modul, der der erste Sicherheitsparameter ist, bezeichnet.
  7. Vorrichtung gemäß einem der Ansprüche 1 bis 6, bei der die Rechenvorrichtung (32) ferner angepasst ist, um den Steuerwert zu bestimmen, basierend auf
    Figure DE102008051447B9_0009
    wobei σ den Steuerwert bezeichnet, M eine Eingangsmeldung bezeichnet, dq einen Wert bezeichnet, der größer oder gleich 0 ist und kleiner ist als die Eulersche Phi-Funktion eines ersten Eingabewerts, dp einen Wert bezeichnet, der größer oder gleich 0 ist und kleiner ist als die Eulersche Phi-Funktion eines zweiten Eingabewerts, q und p den ersten bzw. zweiten Eingabewert bezeichnen, qinv die modulare Inverse des ersten Eingabewerts bezeichnet und t den ersten Sicherheitsparameter bezeichnet.
  8. Vorrichtung gemäß einem der Ansprüche 1 bis 7, bei der die Berechnungsvorrichtung ferner angepasst ist, um einen ersten modifizierten Eingabewert aus einem Produkt eines ersten Eingabewerts und des ersten Sicherheitsparameters, einen modifizierten zweiten Eingabewert aus einem Produkt eines zweiten Eingabewerts und des ersten Sicherheitsparameters, einen zweiten modifizierten ersten Eingabewert aus einem Produkt des ersten Eingabewerts und des zweiten Sicherheitsparameters zu berechnen, und eine modifizierte, modulare Inverse des ersten Eingabewerts aus einer modularen Reduktion eines Produkts der Inversen des zweiten Sicherheitsparameters und des ersten Eingabewerts im Hinblick auf einen Modul zu berechnen, der die zweite Eingabeprimzahl ist.
  9. Vorrichtung gemäß Anspruch 8, bei der die Ausführungsvorrichtung (34) ferner angepasst ist, um eine einzelne modifizierte Ausgabe zu erhalten, basierend auf S ^ = Sq + [(Sp – Sq)·q ~inv mod p ^]·q ~, wobei S ^ die einzelne, modifizierte Ausgabe bezeichnet, Sq einen Wert bezeichnet, der durch eine modulare Reduktion eines Werts, der von einer Eingangsmeldung abhängig ist, im Hinblick auf einen Modul erhalten wird, der durch den ersten modifizierten Eingabewert bestimmt wird, Sp einen Wert bezeichnet, der durch eine modulare Reduktion eines Werts, der von der Eingangsmeldung abhängig ist, im Hinblick auf einen Modul erhalten wird, der durch den zweiten modifizierten Eingabewert bestimmt wird, q ~inv die modifizierte, modulare Inverse des ersten Eingabewerts bezeichnet, q ~ den zweiten, modifizierten ersten Eingabewert bezeichnet und p ^ den modifizierten zweiten Eingabewert bezeichnet.
  10. Vorrichtung gemäß einem der Ansprüche 1 bis 9, bei der die erste Bestimmungsvorrichtung (31) ferner angepasst ist, um eine modulare Reduktion der einzelnen modifizierten Ausgabe im Hinblick auf einen Modul zu berechnen, der durch den ersten Sicherheitsparameter bestimmt wird, und zu prüfen, ob das Ergebnis dieser modularen Reduktion gleich dem Steuerwert ist.
  11. Vorrichtung gemäß einem der Ansprüche 2 bis 10, bei der die Extraktionsvorrichtung ferner angepasst ist, um die Ausgabe zu extrahieren, basierend auf S = S ^ mod (p·q), wobei S die Ausgabe ist, S ^ die einzelne, modifizierte Ausgabe ist, q der erste Eingabewert ist und p der zweite Eingabewert ist.
  12. Vorrichtung zum Schützen einer RSA-Berechnung einer Ausgabe basierend auf Eingabewerten, die eine erste und zweite Eingabeprimzahl und eine Eingangsmeldung aufweisen, mit Hilfe des chinesischen Restsatzes, wobei die Vorrichtung folgende Merkmale aufweist: eine erste Bestimmungsvorrichtung, die angepasst ist, um einen ersten Sicherheitsparameter t derart zu bestimmen, dass die modulare multiplikative Inverse der ersten Eingabeprimzahl modulo der zweiten Eingabeprimzahl modular reduziert um den ersten Sicherheitsparameter nicht gleich Null ist und derart, dass eine modulare Reduktion eines Produkts der ersten Eingabeprimzahl und ihrer modularen, multiplikativen Inversen modulo der zweiten Eingabeprimzahl im Hinblick auf einen Modul, der der erste Sicherheitsparameter ist, nicht gleich Eins ist; eine zweite Bestimmungsvorrichtung, die angepasst ist, um einen zweiten Sicherheitsparameter derart zu bestimmen, dass der zweite Sicherheitsparameter größer oder gleich Null und kleiner als der erste Sicherheitsparameter ist, derart, dass der größte gemeinsame Teiler des zweiten Sicherheitsparameters und eines Produkts des ersten Sicherheitsparameters und der zweiten Eingabeprimzahl gleich Eins ist; eine Rechenvorrichtung, die angepasst ist, um einen Steuerwert zu berechnen, basierend auf σ = [σq(1 – ζt) + σp·ζt] mod t wobei σq eine modulare Reduktion eines Werts bezeichnet, der von der Eingangsmeldung und der ersten Eingabeprimzahl im Hinblick auf einen Modul abhängig ist, der der erste Sicherheitsparameter ist, σp eine modulare Reduktion eines Werts bezeichnet, der von der Eingangsmeldung und der zweiten Eingabeprimzahl im Hinblick auf einen Modul abhängig ist, der der erste Sicherheitsparameter ist, und wobei ζt eine modulare Reduktion eines Produkts eines Werts, der von der modularen Inversen der ersten Eingabeprimzahl abhängig ist, und eines Werts, der von der ersten Eingabeprimzahl abhängig ist, im Hinblick auf einen Modul, der der erste Sicherheitsparameter ist, bezeichnet; eine Berechnungsvorrichtung für einen modifizierten Eingabewert, die angepasst ist, um eine erste modifizierte erste Eingabeprimzahl aus einem Produkt der ersten Eingabeprimzahl und des ersten Sicherheitsparameters zu berechnen, eine modifizierte zweite Eingabeprimzahl p ^ aus einem Produkt der zweiten Eingabeprimzahl und des ersten Sicherheitsparameters, eine zweite modifizierte erste Eingabeprimzahl q ~ aus einem Produkt der ersten Eingabeprimzahl und des zweiten Sicherheitsparameters zu berechnen, und eine modifizierte modulare Inverse q ~inv der ersten Eingabeprimzahl aus einer modularen Reduktion eines Produkts der Inversen des zweiten Sicherheitsparameters und der ersten Eingabeprimzahl im Hinblick auf einen Modul zu berechnen, der die zweite Eingabeprimzahl ist; eine Ausführungsvorrichtung, die angepasst ist, um die RSA-CRT-Berechnung basierend auf den modifizierten Eingabewerten auszuführen, um eine einzelne, modifizierte Ausgabe zu erhalten, basierend auf S ^ = Sq + [(Sp – Sq)·q ~inv mod p ^]·q ~, wobei S ^ die einzelne, modifizierte Ausgabe bezeichnet, Sq einen Wert bezeichnet, der durch eine modulare Reduktion eines Werts, der von der Eingangsmeldung abhängig ist, im Hinblick auf einen Modul erhalten wird, der durch die erste modifizierte Eingabeprimzahl bestimmt wird, Sp einen Wert bezeichnet, der durch eine modulare Reduktion eines Werts, der von der Eingangsmeldung abhängig ist, im Hinblick auf einen Modul erhalten wird, der durch die zweite modifizierte Eingabeprimzahl bestimmt wird; und eine Bestimmungsvorrichtung, die angepasst ist, um zu bestimmen, ob die einzelne modifizierte Ausgabe in einer vorbestimmten Beziehung zu dem Steuerwert ist, und eine Gegenmaßnahme in dem Fall auszuüben, dass die vorbestimmte Beziehung nicht erfüllt ist.
  13. Vorrichtung gemäß Anspruch 12, wobei die Vorrichtung ferner eine Extraktionsvorrichtung aufweist, die angepasst ist, um die Ausgabe basierend auf S = S ^ mod (p·q), zu extrahieren, wobei S die Ausgabe ist, S ^ die einzelne, modifizierte Ausgabe ist, q die erste Eingabeprimzahl ist und p die zweite Eingabeprimzahl ist.
  14. Vorrichtung gemäß Anspruch 12 oder 13, bei der die erste Bestimmungsvorrichtung ferner angepasst ist, um vier ungerade Randomisierungsparameter zu bestimmen, die in dem Intervall [216, 2γ[ ∩ [0, (t – 1)/2[ liegen, wobei γ eine Zahl größer als 16 bezeichnet und t den ersten Sicherheitsparameter bezeichnet.
  15. Vorrichtung gemäß einem der Ansprüche 12 bis 14, bei der die Rechenvorrichtung ferner angepasst ist, um den Steuerwert zu bestimmen, basierend auf
    Figure DE102008051447B9_0010
    wobei σ den Steuerwert bezeichnet, M eine Eingangsmeldung bezeichnet, dq einen Wert bezeichnet, der größer oder gleich 0 ist und kleiner ist als die Eulersche Phi-Funktion eines ersten Eingabewerts, dp einen Wert bezeichnet, der größer oder gleich 0 ist und kleiner ist als die Eulersche Phi-Funktion eines zweiten Eingabewerts, q und p den ersten bzw. zweiten Eingabewert bezeichnen, qinv die modulare Inverse des ersten Eingabewerts bezeichnet und t den ersten Sicherheitsparameter bezeichnet.
  16. Vorrichtung gemäß einem der Ansprüche 12 bis 15, bei der die zweite Bestimmungsvorrichtung ferner angepasst ist, um eine modulare Reduktion der einzelnen modifizierten Ausgabe im Hinblick auf einen Modul zu berechnen, der durch den ersten Sicherheitsparameter bestimmt wird, und zu prüfen, ob das Ergebnis dieser modularen Reduktion gleich dem Steuerwert ist.
  17. Vorrichtung zum Schützen einer RSA-Berechnung einer Ausgangsmeldung basierend auf einer Eingangsmeldung und einem ersten und einem zweiten Eingabewert mit Hilfe des chinesischen Restsatzes, wobei die Vorrichtung folgende Merkmale aufweist: ein erstes Register (36) für den ersten Eingabewert; ein zweites Register (37) für den zweiten Eingabewert; ein drittes Register (38) für die Eingangsmeldung; ein viertes Register (39) für einen ersten Sicherheitsparameter; ein fünftes Register (40) für einen Steuerwert; wobei ein Registerinhalt des vierten Registers basierend auf Registerinhalten des ersten und zweiten Registers bestimmt wird, wobei der fünfte Registerinhalt basierend auf dem Registerinhalt des ersten, des zweiten, des dritten und des vierten Registers bestimmt wird, und wobei die Vorrichtung Folgendes aufweist: eine Verarbeitungsteileinheit, die konfiguriert ist, um eine einzelne modifizierte Ausgangsmeldung zu berechnen, basierend auf modifizierten Registerinhalten des ersten und zweiten Registers, und um zu bestimmen, ob die einzelne modifizierte Ausgangsmeldung in einer vorbestimmten Beziehung zu dem Registerinhalt des fünften Registers ist, und eine Gegenmaßnahme in dem Fall anzuwenden, dass die vorbestimmte Beziehung nicht erfüllt ist.
  18. Verfahren zum Schützen einer RSA-Berechnung einer Ausgabe basierend auf Eingabewerten, die zwei Eingabeprimzahlen und eine Eingangsmeldung aufweisen, mit Hilfe des chinesischen Restsatzes, wobei das Verfahren folgende Schritte aufweist: Bestimmen eines ersten Sicherheitsparameters basierend auf einer ersten Eingabeprimzahl; Berechnen eines Steuerwerts basierend auf dem ersten Sicherheitsparameter und den Eingabewerten; Berechnen modifizierter Eingabewerte basierend auf den zwei Eingabeprimzahlen und dem ersten Sicherheitsparameter; Ausführen der RSA-Berechnung basierend auf den modifizierten Eingabewerten, um eine einzelne modifizierte Ausgabe zu erhalten; und Bestimmen, ob die einzelne modifizierte Ausgabe in einer vorbestimmten Beziehung zu dem Steuerwert ist, und Anwenden einer Gegenmaßnahme in dem Fall, dass die vorbestimmte Beziehung nicht erfüllt ist.
  19. Verfahren gemäß Anspruch 18, bei dem das Bestimmen des ersten Sicherheitsparameters derart ausgeführt wird, dass die modulare multiplikative Inverse einer ersten Eingabeprimzahl modulo einer zweiten Eingabeprimzahl modular reduziert um den ersten Sicherheitsparameter nicht gleich Null ist und derart, dass eine modulare Reduktion eines Produkts der ersten Eingabeprimzahl und ihrer modularen, multiplikativen Inversen modulo einer zweiten Eingabeprimzahl im Hinblick auf einen Modul, der der erste Sicherheitsparameter ist, nicht gleich Eins ist.
  20. Verfahren gemäß Anspruch 18 oder 19, bei dem das Bestimmen des ersten Sicherheitsparameters t das Bestimmen eines zweiten Sicherheitsparameters aufweist, der größer oder gleich Null und kleiner als der erste Sicherheitsparameter ist, derart, dass der größte gemeinsame Teiler des zweiten Sicherheitsparameters und eines Produkts des ersten Sicherheitsparameters und einer zweiten Eingabeprimzahl gleich Eins ist.
  21. Verfahren gemäß einem der Ansprüche 18 bis 20, bei dem das Berechnen des Steuerwerts auf der folgenden Gleichung basiert: σ = [σq(1 – ζt) + σp·ζt] mod t wobei σq eine modulare Reduktion eines Werts bezeichnet, der von der Eingangsmeldung und einem ersten Eingabewert und einem Modul abhängig ist, der der erste Sicherheitsparameter ist, σp eine modulare Reduktion eines Werts bezeichnet, der von der Eingangsmeldung und einem zweiten Eingabewert und einem Modul abhängig ist, der der erste Sicherheitsparameter ist, und wobei ζt eine modulare Reduktion eines Produkts eines Werts, der von der modularen Inversen des ersten Eingabewerts abhängig ist, und eines Werts, der von dem ersten Eingabewert abhängig ist, im Hinblick auf einen Modul, der der erste Sicherheitsparameter ist, bezeichnet.
  22. Verfahren gemäß einem der Ansprüche 18 bis 21, bei dem das Berechnen des Steuerwerts basiert auf
    Figure DE102008051447B9_0011
    wobei σ den Steuerwert bezeichnet, M eine Eingangsmeldung bezeichnet, dq einen Wert bezeichnet, der größer oder gleich 0 ist und kleiner ist als die Eulersche Phi-Funktion eines ersten Eingabewerts, dp einen Wert bezeichnet, der größer oder gleich 0 ist und kleiner ist als die Eulersche Phi-Funktion eines zweiten Eingabewerts, q und p den ersten bzw. zweiten Eingabewert bezeichnen, qinv die modulare Inverse des ersten Eingabewerts bezeichnet und t den ersten Sicherheitsparameter bezeichnet.
  23. Verfahren gemäß einem der Ansprüche 18 bis 22, bei dem das Berechnen der modifizierten Eingabewerts das Berechnen eines ersten modifizierten ersten Eingabewerts aus einem Produkt eines ersten Eingabewerts und des ersten Sicherheitsparameters, eines modifizierten zweiten Eingabewerts aus einem Produkt eines zweiten Eingabewerts und des ersten Sicherheitsparameters, eines zweiten modifizierten ersten Eingabewerts aus einem Produkt des ersten Eingabewerts und des zweiten Sicherheitsparameters und das Berechnen einer modifizierten, modularen Inversen des ersten Eingabewerts aus einer modularen Reduktion eines Produkts der Inversen des zweiten Sicherheitsparameters und des ersten Eingabewerts im Hinblick auf einen Modul aufweist, der die zweite Eingabeprimzahl ist.
  24. Verfahren gemäß einem der Ansprüche 18 bis 23, bei dem das Ausführen der RSA-Berechnung basiert auf S ^ = Sq + [(Sp – Sq)·q ~inv mod p ^]·q ~, wobei S ^ die einzelne, modifizierte Ausgabe bezeichnet, Sq einen Wert bezeichnet, der durch eine modulare Reduktion eines Werts, der von einer Eingangsmeldung abhängig ist, im Hinblick auf einen Modul erhalten wird, der durch den ersten modifizierten Eingabewert bestimmt wird, Sp einen Wert bezeichnet, der durch eine modulare Reduktion eines Werts, der von der Eingangsmeldung abhängig ist, im Hinblick auf einen Modul erhalten wird, der durch den zweiten modifizierten Eingabewert bestimmt wird, wobei p ^ eine modifizierte erste Eingabeprimzahl ist, wobei q ~ eine modifizierte zweite Eingabeprimzahl ist, und wobei q ~inv eine modifizierte modulare Inverse der ersten Eingabeprimzahl ist.
  25. Computerprogramm zum Ausführen des Verfahrens gemäß Anspruch 18, wenn das Computerprogramm auf einem Computer und/oder oder einer Mikrosteuerung ausgeführt wird.
DE102008051447.0A 2007-10-25 2008-10-13 Verfahren und Vorrichtung zum Schützen einer RSA-Berechnung an einer Ausgabe mit Hilfe des chinesischen Restsatzes Active DE102008051447B9 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/924,095 US7907724B2 (en) 2007-10-25 2007-10-25 Method and apparatus for protecting an RSA calculation on an output by means of the chinese remainder theorem
US11/924,095 2007-10-25

Publications (3)

Publication Number Publication Date
DE102008051447A1 DE102008051447A1 (de) 2009-04-30
DE102008051447B4 DE102008051447B4 (de) 2013-08-01
DE102008051447B9 true DE102008051447B9 (de) 2014-02-20

Family

ID=40490480

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102008051447.0A Active DE102008051447B9 (de) 2007-10-25 2008-10-13 Verfahren und Vorrichtung zum Schützen einer RSA-Berechnung an einer Ausgabe mit Hilfe des chinesischen Restsatzes

Country Status (2)

Country Link
US (1) US7907724B2 (de)
DE (1) DE102008051447B9 (de)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2858496B1 (fr) * 2003-07-31 2005-09-30 Gemplus Card Int Procede pour la mise en oeuvre securisee d'un algorithme de cryptographie de type rsa et composant correspondant
FR2935503A1 (fr) * 2008-08-28 2010-03-05 St Microelectronics Rousset Protection d'un algorithme de chiffrement
CA2752750A1 (en) * 2009-02-27 2010-09-02 Certicom Corp. System and method for performing exponentiation in a cryptographic system
FR2995429B1 (fr) * 2012-09-10 2015-04-10 Oberthur Technologies Procede de test de la securite d'un dispositif electronique vis-a-vis d'une attaque, et dispositif electronique mettant en oeuvre des contre-mesures
EP2779519A1 (de) * 2013-03-11 2014-09-17 Thomson Licensing Verfahren und Vorrichtung zur fehlerbeständigen Potenzierung in kryptografischen Systemen
WO2018217535A1 (en) * 2017-05-26 2018-11-29 Microchip Technology Incorporated System, method, and apparatus for obfuscating device operations
FR3088452B1 (fr) * 2018-11-08 2023-01-06 Idemia France Procede de verification d'integrite d'une paire de cles cryptographiques et dispositif cryptographique
WO2021069075A1 (en) 2019-10-10 2021-04-15 Adips Spolka Z Ograniczona Odpowiedzialnoscia Encrypting and decrypting unit for rsa cryptographic system, resistant to faults injection

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006103149A1 (fr) * 2005-03-31 2006-10-05 Gemplus Procede et dispositif cryptographique permettant de proteger les logiques de cles publiques contre les attaques par faute

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE183315T1 (de) * 1991-09-05 1999-08-15 Canon Kk Verfahren und gerät zum verschlüsseln und entschlüsseln von kommunikationsdaten
US5991415A (en) * 1997-05-12 1999-11-23 Yeda Research And Development Co. Ltd. At The Weizmann Institute Of Science Method and apparatus for protecting public key schemes from timing and fault attacks
AU2002340566A1 (en) 2001-10-17 2003-04-28 Infineon Technologies Ag Method and device for guaranteeing a calculation in a cryptographic algorithm
EP1454260B1 (de) 2001-10-17 2005-06-01 Infineon Technologies AG Verfahren und vorrichtung zum absichern einer exponentiations-berechnung mittels dem chinesischen restsatz (crt)

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006103149A1 (fr) * 2005-03-31 2006-10-05 Gemplus Procede et dispositif cryptographique permettant de proteger les logiques de cles publiques contre les attaques par faute

Also Published As

Publication number Publication date
US7907724B2 (en) 2011-03-15
DE102008051447A1 (de) 2009-04-30
US20090110187A1 (en) 2009-04-30
DE102008051447B4 (de) 2013-08-01

Similar Documents

Publication Publication Date Title
DE69828787T2 (de) Verbessertes verfahren und vorrichtung zum schutz eines verschlüsselungsverfahrens mit öffentlichem schlüssel gegen angriffe mit zeitmessung und fehlereinspeisung
DE102008051447B9 (de) Verfahren und Vorrichtung zum Schützen einer RSA-Berechnung an einer Ausgabe mit Hilfe des chinesischen Restsatzes
DE112008000668B4 (de) Kryptografisches Verfahren und System
DE102006022960B4 (de) Verfahren zum Verschlüsseln von Eingabedaten, kryptographisches System und Computerprogrammprodukt
EP1262037B1 (de) Tragbarer datenträger mit zugriffsschutz durch schlüsselteilung
DE102005037598A1 (de) Verfahren und System zur Sicherung von Daten
EP3593483B1 (de) Übergang von einer booleschen maskierung zu einer arithmetischen maskierung
DE102010001289B4 (de) Vorrichtung zum Berechnen eines Ergebnisses einer Skalarmultiplikation
EP1891512B1 (de) Bestimmung einer modularen inversen
DE112009000154T5 (de) Änderung der Darstellung eines Punktes auf einer elliptischen Kurve
DE602004006628T2 (de) Verfahren zur gesicherten ausführung eines rsa kryptographischen algorithmus, sowie diesbezüglicher baustein.
EP1540880B1 (de) Geschützte kryptographische berechnung
DE112009000152T5 (de) Modulare Reduktion unter Verwendung einer speziellen Form des Modulo
DE112018002723B4 (de) System, verfahren und vorrichtung zur verschleierung von vorrichtungsoperationen
WO2004070497A2 (de) Modulare exponentiation mit randomisierten exponenten
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)
DE10042234C2 (de) Verfahren und Vorrichtung zum Durchführen einer modularen Exponentiation in einem kryptographischen Prozessor
DE10162496C5 (de) Verfahren und Vorrichtung zum Absichern einer Berechnung in einem kryptographischen Algorithmus
DE102019008199B3 (de) Gegen Seitenkanalangriffe geschützte Exponentiation, Primzahltest und RSA Schlüsselgenerierung
WO2007006649A1 (de) Verfahren zur seitenkanalangriffsresistenten vervielfachung
EP2128754B1 (de) Sichere sliding window exponentiation
EP1760929B1 (de) Geschütztes kryptographisches Verfahren
DE102004001659A1 (de) Vorrichtung und Verfahren zum Konvertieren einer ersten Nachricht in eine zweite Nachricht
DE10250810A1 (de) Geschützte kryptographische Berechnung

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final

Effective date: 20131105

R082 Change of representative