-
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 d
p = d mod (p – 1), d
q = d mod (q – 1) und q
inv = q
–1 mod p. Die Ausgabe S wird dann berechnet als
S = CRT(Sp, Sg) = Sq + q[qinv(Sp – Sq) mod p], (2) wobei
-
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 S
p und S
q der Gleichungen (3) auf redundante Weise, d. h.
Sp* = M'd mod rp
Sq* = M'd mod rq, (4) und die Ausgabe S = CRT(S
p*, S
q*) mod N zurückzugeben im Fall von S
p* = S
q*(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, d
p, d
q, q
inv 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
-
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
-
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 S
q 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 S
p 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 S
p, S
q bestimmt werden, basierend auf
-
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 M
t hoch δ
q im Hinblick auf einen Modul bezeichnet, der der erste Sicherheitsparameter t ist, gemäß
-
Ferner bezeichnet σ
p hier eine modulare Reduktion der modifizierten Eingangsmeldung M
t hoch δ
p im Hinblick auf einen Modul, der der erste Sicherheitsparameter t ist, gemäß
-
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 S
q 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 S
p 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 S
p, S
q bestimmt werden, basierend auf
-
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.