Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
PROTECTED CRYPTOGRAPHIC CALCULATION
Document Type and Number:
WIPO Patent Application WO/2004/032411
Kind Code:
A1
Abstract:
The invention relates to a method for carrying out a cryptographic calculation, whereby a key (12) with at least two key parameters (p, q, pinv, sp, dp, sq, dq) is used. An integrity check (30, 34, 40, 54) of the key (12) is carried out in order to prevent a cryptographic access, whereby conclusions about at least one second key parameter (p, q, pinv, sp, dp, sq, dq) can be drawn by means of falsifying at least one first key parameter (p, q, pinv, sp, dp, sq, dq). A further method serves for the determination of a key for a cryptographic calculation with at least two key parameters (p, q, pinv, sp, dp, sq, dq), provided for use in the first method. A computer programme product and a portable data support have corresponding features. The invention permits a particularly effective protection against attack for cryptographic calculations.

Inventors:
BOCKES MARKUS (DE)
DREXLER HERMANN (DE)
KAHL HELMUT (DE)
Application Number:
PCT/EP2003/010015
Publication Date:
April 15, 2004
Filing Date:
September 09, 2003
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
GIESECKE & DEVRIENT GMBH (DE)
BOCKES MARKUS (DE)
DREXLER HERMANN (DE)
KAHL HELMUT (DE)
International Classes:
G06F7/72; G07F7/10; H04L9/30; H04L9/32; H04L9/06; (IPC1-7): H04L9/30; H04L9/32; G06F7/72
Domestic Patent References:
WO2001061918A12001-08-23
Foreign References:
US5991415A1999-11-23
Other References:
BONEH D ET AL: "On the importance of checking cryptographic protocols for faults", 1997, ADVANCES IN CRYPTOLOGY- EUROCRYPT. INTERNATIONAL CONFERENCE ON THE THEORY AND APPLICATION OF CRYPTOGRAPHIC TECHNIQUES, SPRINGER VERLAG, DE, PAGE(S) 37-51, XP002202745
Attorney, Agent or Firm:
Dendorfer, Claus (Weinstrasse 8, München, DE)
Download PDF:
Claims:
Patentansprüche
1. Verfahren zum geschützten Ausführen einer kryptographischen Berechnung, bei der ein Schlüssel (12) mit mindestens zwei Schlüsselparametern (p, q, pinv, sp, dp, sq, dq) herangezogen wird, dadurch gekennzeichnet, daß eine Integritätsüberprüfung (30,34, 40,54) des Schlüssels (12) durchgeführt wird, um einen kryptographischen Angriff zu verhindern, bei dem durch eine Verfälschung mindestens eines ersten Schlüsselparameters (p, q, pinv, sp, dp, sq, dq) Rückschlüsse auf mindestens einen zweiten Schlüsselparameter (p, q, pinv, sp, dp, sq, dq) gezogen werden.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß bei der Integritätsüberprüfung (30,34, 40,54) ermittelt wird, ob sich der Wert mindestens eines Schlüsselparameters (p, q, pinv, sp, dp, sq, dq) in einem mehrfach unterbrochenen Bereich zulässiger Werte befindet.
3. Verfahren nach Anspruch 1 oder Anspruch 2, dadurch gekenn zeichnet, daß bei der Integritätsüberprüfung (30,34, 40, 54) ermit telt wird, ob mindestens zwei Schlüsselparameter (p, q, pinv, sp, dp, sq, dq) in einer vorbestimmten Beziehung zueinander stehen.
4. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekenn zeichnet, daß die Integritätsüberprüfung (30,34, 40,54) eine multiplikative Operation, insbesondere eine Teilbarkeitsprüfung, beinhaltet.
5. Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekenn zeichnet, daß bei der Integritätsprüfung (30,34, 40,54) geprüft wird, ob ein Schlüsselparameter (p, q, pinv, sp, dp, sq, dq) oder ein Wert, der sich von dem Schlüsselparameter (p, q, pinv, sp, dp, sq, dq) durch ein Vielfaches eines Sicherungswertes (sp, sq) unter scheidet, glatt durch den Sicherungswert (sp, sq) teilbar ist.
6. Verfahren nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, daß bei der Integritätsprüfung eine mit den Schlüsselparametern (p, q, pinv, sp, dp, sq, dq) abgespeicherte Prüfsumme mit einer nach der Übergabe der Schlüsselparameter (p, q, pinv, sp, dp, sq, dq) neu berechneten Prüsumme verglichen wird.
7. Verfahren nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, daß zur Prüfung der Integrität wichtige Übergabeparameter mehrfach übergeben und nach der Übergabe auf Identität geprüft werden.
8. Verfahren nach einem der Ansprüche 1 bis 7, dadurch gekenn zeichnet, daß die kryptographische Berechnung eine Entschlüsse lung oder Signaturerzeugung bei einem RSAVerfahren, insbe sondere einem RSACRTVerfahren, ist.
9. Verfahren nach Anspruch 8, dadurch gekennzeichnet, daß bei der kryptographischen Berechnung mindestens eine Potenzierungs operation durchgeführt wird, und daß bei der Integritätsprüfung (30,34, 40,54) geprüft wird, ob der bei der Potenzierungsopera tion verwendete Exponent glatt durch einen Sicherungswert (sp, sq) teilbar ist.
10. Verfahren nach Anspruch 9, dadurch gekennzeichnet, daß bei der kryptographischen Berechnung ein ExponentenVerschleierungs verfahren zum Ausspähungsschutz angewendet wird.
11. Verfahren nach einem der Ansprüche 8 bis 10, dadurch gekenn zeichnet, daß die Primfaktoren (p, q) des RSAVerfahrens mit einem Verschleierungsparameter (j) multipliziert werden, und daß die Fehlerfreiheit des Berechnungsverlaufs durch eine Gleich heitsüberprüfung modulo des Verschleierungsparameters (j) überprüft wird.
12. Verfahren zum Bestimmen eines Schlüssels für eine kryptographi sche Berechnung mit mindestens zwei Schlüsselparametern (p, q, pinv, sp, dp, sq, dq), der zur Verwendung in einem Verfahren nach einem der Ansprüche 1 bis 9 vorgesehen ist :.
13. Verfahren nach Anspruch 12, dadurch gekennzeichnet, daß mindestens ein Schlüsselparameter (p, q, pinv, sp, dp, sq, dq) durch eine Multiplikation eines für die kryptographischen Berechnung benötigten Wertes mit einem Sicherungswert (sp, sq) erhalten wird.
14. Computerprogrammprodukt, das Programmbefehle aufweist, um einen Prozessor zu veranlassen, ein Verfahren mit den Merkmalen eines der Ansprüche 1 bis 13 auszuführen.
15. Tragbarer Datenträger, insbesondere Chipkarte oder Chipmodul, der zur Ausführung eines Verfahrens mit den Merkmalen eines der Ansprüche 1 bis 13 eingerichtet ist.
Description:
Geschützte kryptographische Berechnung Die Erfindung betrifft allgemein das technische Gebiet der Kryptographie und spezieller eine Vorgehensweise zum verbesserten Schutz einer krypto- graphischen Berechnung gegen Angriffe. Insbesondere ist die Erfindung zum Einsatz in tragbaren Datenträgern vorgesehen, die z. B. als Chipkarten (smart cards) in unterschiedlichen Bauformen oder als Chipmodule ausge- staltet sein können.

Für den Austausch von verschlüsselten und/oder signierten Daten ist das z. B. im US-Patent 4,405, 829 beschriebene RSA-Verfahren gut bekannt. Ge- mäß dem RSA-Verfahren wird ein öffentlicher Schlüssel zur Verschlüsselung oder Signaturverifikation und ein geheimer privater Schlüssel zur Entschlüs- selung oder Signaturerzeugung eingesetzt. Die Sicherheit des RSA-Verfah- rens beruht auf der Tatsache, daß gegenwärtig kein effizienter Weg bekannt ist, um die Primfaktoren p und q einer großen Zahl n mit n = p q zu bestim- men. Während der sogenannte Modulus n als Teil des öffentlichen Schlüssels veröffentlicht wird, müssen die Werte p und q geheim gehalten werden.

Die zur Ausführung des RSA-Verfahrens erforderlichen Berechnungsvor- gänge sind relativ aufwendig. So müssen z. B. bei der Entschlüsselung oder Signaturerzeugung die zu verarbeitenden Daten mit Parametern des priva- ten Schlüssels potenziert werden. Insbesondere für tragbare Datenträger mit ihrer beschränkten Rechenleistung wird daher häufig eine Implementierung des RSA-Verfahrens zur Entschlüsselung oder Signaturerzeugung einge- setzt, die den Chinesischen Restklassensatz (CRT = Chinese remainder theorem) verwendet und daher auch als RSA-CRT-Verfahren bezeichnet wird. Durch Verwendung des RSA-CRT-Verfahrens wird der erforderliche Rechenaufwand. ungefähr um den Faktor 4 reduziert.

Das RSA-CRT-Verfahren sieht vor, statt einer aufwendigen Potenzberech- nung zwei erheblich einfachere Potenzierungen durchzuführen, deren Er- gebnisse dann zu den entschlüsselten Daten oder der erzeugten Signatur kombiniert werden. In die erste dieser Berechnungen geht nur der geheime Primfaktor p ein, und in die zweite Berechnung geht nur der geheime Prim- faktor q ein.

Es sind Angiffsszenarien vorgeschlagen worden, bei denen genau einer der beiden genannten RSA-CRT-Berechnungszweige gestört wird, z. B. durch gezielte Einwirkung von Wärme oder Strahlung oder durch elektrische Impulse. Wenn dies gelingt, läßt sich aus dem Ergebnis der Gesamtberech- nung ein Vielfaches desjenigen Primfaktors p, q ableiten, dessen Berech- nungszweig nicht gestört wurde. Mit anderen Worten lassen sich durch den beschriebenen Angriff Rückschlüsse auf den privaten Schlüssel ziehen. Dies hat potentiell katastrophale Konsequenzen, weil nicht nur die gerade durch- geführte Entschlüsselung oder Signaturerzeugung, sondern alle unter Ver- wendung des privaten Schlüssels ausgeführten kryptographischen Opera- tionen kompromittiert werden.

Der gerade erwähnte Angriff ist unter den Namen"fault attack"oder "Bellcore attack"bekannt und z. B. in Spalte 4 des US-Patents 5,991, 415 be- schrieben. Ebenfalls im US-Patent 5,991, 415 wird ein Verfahren offenbart, bei dem zum Schutz gegen diesen während der kryptographischen Berechnung erfolgenden Angriff ein zusätzlicher Faktor j in die Berechnung eingeht. Es bestehen jedoch, wie im folgenden gezeigt werden wird, weiterhin Angriffs- möglichkeiten, denen mit dem aus dem US-Patent 5,991, 415 bekannten Ver- fahren nicht entgegengetreten werden kann.

Besonders kritisch ist die genannte Angriffsmöglichkeit dann, wenn die kryptographische Berechnung von einem Prozessor eines tragbaren Daten- trägers, beispielsweise einer Chipkarte (smart card) oder eines Chipmoduls, ausgeführt wird. Ein erster Grund dafür ist, daß solche tragbaren Daten- träger oft für sicherheitskritische Anwendungen verwendet werden, z. B. im Zusammenhang mit Finanztransaktionen, der Zugangskontrolle oder der Signatur von rechtlich bindenden Dokumenten. Zweitens befinden sich tragbare Datenträger, während die kryptographische Berechnung ausgeführt wird, typischerweise im Besitz des Angreifers, so daß dieser alle Möglichkei- ten zum Beeinflussen der Berechnung und zum Ausspähen der Berech- nungsergebnisse hat.

Die Erfindung hat die Aufgabe, eine Technik zum besonders guten Schutz kryptographischer Berechnungen gegen Angriffe bereitzustellen. Insbeson- dere sollen solche Angriffe verhindert werden, die auf ähnlichen Prinzipien wie der oben beschriebene"Bellcore attack"beruhen. In bevorzugten Ausge- staltungen soll der erfindungsgemäße Schutz vorteilhaft mit anderen Schutz- verfahren zusammenwirken.

Erfindungsgemäß wird diese Aufgabe ganz oder zum Teil gelöst durch ein Verfahren zum geschützten Ausführen einer kryptographischen Berechnung mit den Merkmalen des Anspruchs 1, ein Verfahren zum Bestimmen eines Schlüssels für eine. kryptographische Berechnung mit den Merkmalen des Anspruchs 12, ein Computerprogrammprodukt gemäß Anspruch 14 und ei- nen tragbaren Datenträger gemäß Anspruch 15. Die abhängigen Ansprüche definieren bevorzugte Ausgestaltungen der Erfindung. Die Aufzählungsrei- henfolge der Verfahrensschritte in den Ansprüchen soll nicht als Einschrän- kung des Schutzbereichs aufgefaßt werden ; es sind vielmehr Ausgestaltun- gen der Erfindung vorgesehen, bei denen diese Verfahrensschritte ganz oder

teilweise in anderer Reihenfolge oder ganz oder teilweise parallel oder ganz oder teilweise ineinander verzahnt (interleaved) ausgeführt werden.

Die Erfindung geht von der grundlegenden Erkenntnis aus, daß ein Angriff ähnlich dem oben beschriebenen"Bellcore attack"nicht nur durch Störung der Berechnungsvorgänge während der kryptographischen Berechnung möglich ist, sondern auch dadurch, daß die kryptographische Berechnung mit fehlerhaften Parametern versorgt wird. Dies kann beispielsweise durch die Übergabe einer falschen Zeigeradresse an die Berechnungsroutine erfolgen, oder dadurch, daß der Inhalt von Speicherfeldern, in denen Schlüsselparameter enthalten sind, von außen geändert wird. Die Erfinder haben erkannt, daß aus dem Ergebnis einer kryptographischen Berechnung, die mit derartig verfälschten Parametern versorgt wird, möglicherweise Rückschlüsse auf geheimzuhaltende Schlüsselparameter gezogen werden können.

Erfindungsgemäß ist vorgesehen, zum Schutz gegen einen solchen Angriff eine Integritätsüberprüfung des für die kryptographische Berechnung heran- gezogenen Schlüssels auszuführen. Durch diese Maßnahme kann der An- griff erkannt und abgewehrt werden, indem z. B. die kryptographische Be- rechnung ohne Ausgabe eines Ergebnisses abgebrochen wird. Die Integri- tätsüberprüfung kann eine Manipulation der Schlüsselparameter in der Regel nicht mit absoluter Sicherheit ausschließen ; sie soll jedoch einen für praktische Zwecke ausreichenden Schutz gegen den genannten Angriff bieten. Dies impliziert, daß eine einfache Wertebereichsüberwachung (range check) mit einer festen unteren Grenze und einer festen oberen Grenze nicht als Integritätsprüfung im Sinne der vorliegenden Erfindung anzusehen wäre.

Vorzugsweise ist die Integritätsprüfung so gestaltet, daß eine Manipulation, bei der ein überwachter Schlüsselparameter in zufälliger Weise verfälscht wird, mit an Sicherheit grenzender Wahrscheinlichkeit, z. B. mit einer Wahrscheinlichkeit größer als 1-10-3 oder größer als 1-10-6 oder größer als 1-10-9, erkannt wird. Während die Integritätsüberprüfung in manchen Aus- gestaltungen nur einzelne, besonders kritische Schlüsselparameter umfaßt, ist vorzugsweise vorgesehen, sämtliche Parameter eines geheimzuhaltenden Schlüssels zu überwachen. Für einzelne Parameter oder Parametergruppen können hierbei im Zuge der Integritätsüberprüfung unterschiedliche Prü- fungsverfahren ausgeführt werden.

Die zur Integritätsüberprüfung eingesetzten Verfahren haben jeweils das Ziel, eine Verfälschung des überwachten Schlüsselparameters oder der über- wachten Schlüsselparameter zu erkennen. In einer bevorzugten Ausgestal- tung wird bei der Integritätsüberprüfung im Ergebnis ermittelt, ob sich ein Schlüsselparameter innerhalb eines zulässigen, mehrfach unterbrochenen Wertebereichs befindet. Diese Prüfungsart liegt in der Regel dann vor, wenn der Schlüsselparameter bei der Schlüsselerzeugung aus dem eigentlich für die kryptographische Berechnung benötigten Wert und einem zusätzlichen, an sich redundanten Sicherungswert berechnet wurde, wie dies z. B. bei Prüf- summenberechnungen der Fall ist.

Während es vorgesehen sein kann, manche oder alle Schlüsselparameter jeweils einzeln zu überprüfen, wird vorzugsweise bei der Integritätsüberprü- fung ermittelt, ob mindestens zwei Schlüsselparameter in einer vorbestimm- ten Beziehung zueinander stehen. Die Integritätsüberprüfung kann eine multiplikative Operation beinhalten, worunter in der Wortwahl des vorlie- genden Dokuments eine Multiplikation, eine Division, eine Potenzierung, eine Modulo-Berechnung und eine Teilbarkeitsprüfung zu verstehen sind.

Vorzugsweise wird überprüft, ob ein Schlüsselparameter oder ein davon abgeleiteter Wert glatt durch einen Sicherungswert teilbar ist. In diesem Fall wird der Schlüsselparameter bei der Schlüsselgenerierung vorzugsweise durch eine Multiplikation des eigentlich für die kryptographische Berech- nung benötigten Wertes mit dem Sicherungswert gewonnen. Der Siche- rungswert kann Bestandteil des Schlüssels oder fest vorgegeben sein.

Das erfindungsgemäße Verfahren ist für alle kryptographischen Berechnun- gen geeignet, bei denen ein kryptographischer Angriff durch Verfälschung mindestens eines ersten Schlüsselparameters Rückschlüsse auf mindestens einen zweiten Schlüsselparameter ermöglicht. Insbesondere ist die Erfin- dung für die Sicherung der Entschlüsselung oder Signaturerzeugung bei einem RSA-Verfahren, vorzugsweise bei einem RSA-CRT-Verfahren, vor- gesehen. In diesen Fällen betrifft die Integritätsüberprüfung den privaten RSA-Schlüssel. Es ist zu erwarten, daß entsprechende Angriffsmöglichkeiten für weitere kryptographische Berechnungen gefunden werden, die dann ebenfalls auf die erfindungsgemäße Weise gesichert werden können.

In bevorzugten Ausgestaltungen wird bei der Integritätsprüfung ermittelt, ob ein bei einer Potenzierungsoperation verwendeter Exponent glatt durch einen Sicherungswert teilbar ist. Diese Ausführungsformen der Erfindung lassen sich besonders vorteilhaft mit einem Exponenten-Verschleierungs- verfahren kombinieren, wie es aus der internationalen Offenlegungsschrift WO 01/48974 AI bekannt ist. In weiteren vorteilhaften Ausgestaltungen werden-alternativ oder zusätzlich zu der gerade genannten Exponenten- verschleierung-die Primfaktoren des RSA-Verfahrens mit einem Ver- schleierungsparameter multipliziert, so daß das Berechnungsergebnis mittels einer Gleichheitsüberprüfung modulo des Verschleierungsparameters auf seine Korrektheit überprüft werden kann.

Das erfindungsgemäße Computerprogrammprodukt weist Programm- befehle auf, um das erfindungsgemäße Verfahren zu implementieren. Ein derartiges Computerprogrammprodukt kann ein körperliches Medium sein, beispielsweise ein Halbleiterspeicher oder eine Diskette oder eine CD-ROM, auf dem ein Programm zur Ausführung eines erfindungsgemäßen Verfah- rens gespeichert ist. Das Computerprogrammprodukt kann jedoch auch ein nicht-körperliches Medium sein, beispielsweise ein über ein Computernetz- werk übermitteltes Signal. Das Computerprogrammprodukt kann insbeson- dere zur Verwendung im Zusammenhang mit der Herstellung und/oder Initialisierung und/oder Personalisierung von Chipkarten oder sonstigen Datenträgern vorgesehen sein.

In bevorzugten Ausgestaltungen sind das Computerprogrammprodukt und/oder der tragbare Datenträger mit Merkmalen weitergebildet, die den oben beschriebenen und/oder den in den abhängigen Verfahrensansprüchen genannten Merkmalen entsprechen.

Weitere Merkmale, Vorteile und Aufgaben der Erfindung gehen aus der fol- genden genauen Beschreibung mehrerer Ausführungsbeispiele und Ausfüh- rungsalternativen hervor. Es wird auf die schematischen Zeichnungen ver- wiesen, in denen zeigen : Fig. 1 ein beispielhaftes Flußdiagramm eines Verfahrens zur Schlüsselberech- nung mit Darstellung eines öffentlichen und eines privaten Schlüssels, Fig. 2 ein beispielhaftes Flußdiagramm eines kryptographischen Berech- nungsverfahrens,

Fig. 3 ein beispielhaftes Flußdiagramm eines Ausschnitts des Verfahrens von Fig. 2 in einer abgewandelten Ausgestaltung, und Fig. 4 ein beispielhaftes Flußdiagramm eines weiteren Ausführungsbeispiels des kryptographischen Berechnungsverfahrens.

Das in Fig. 1 dargestellte Verfahren dient zur Berechnung eines öffentlichen Schlüssels 10 und eines privaten Schlüssels 12, die zur Verwendung in einem RSA-Verfahren ausgestaltet sind. Die gestrichelten Pfeile geben jeweils an, welcher Schlüsselparameter durch welchen Verfahrensschritt erzeugt wird.

Im Zusammenhang mit einer Verwendung des Schlüsselpaares 10,12 durch tragbare Datenträger (z. B. Chipkarten) kann das Verfahren z. B. im Zuge der Initialisierung oder Personalisierung des Datenträgers in einer gesicherten Umgebung ausgeführt werden. Das extern berechnete Schlüsselpaar wird dann als Teil der Initialisierungs-oder Personalisierungsdaten in den Daten- träger übertragen. Alternativ ist es auch möglich, daß das Verfahren von Fig. 1 durch den Datenträger selbst ausgeführt wird, um das Schlüsselpaar zu bestimmen.

Der öffentliche Schlüssel 10 weist als Schlüsselparameter einen Modulus n und einen öffentlichen Exponenten e auf. Der private Schlüssel 12 ist für RSA-Berechnungen unter Verwendung des Chinesischen Restklassensatzes vorgesehen, die hier auch als RSA-CRT-Berechnungen (CRT = Chinese remainder theorem) bezeichnet werden. Als Schlüsselparameter weist der private Schlüssel 12 einen ersten und einen zweiten Primfaktor p, q, einen CRT-Koeffizienten pinv, einen ersten und einen zweiten Sicherungswert sp, sq sowie einen gesicherten ersten und einen gesicherten zweiten CRT-Expo- nenten dp, dq auf.

Das in Fig. 1 dargestellte Verfahren beginnt in an sich bekannter Weise in Schritt 14 mit der zufälligen Auswahl zweier Primzahlen mit einer Länge von z. B. je 1024 oder 2048 Bit, die als erster und zweiter Primfaktor p, q im privaten Schlüssel 12 gespeichert werden. Im darauffolgenden Schritt 16 wird der Modulus n des öffentlichen Schlüssels 10 als Produkt der beiden Primfaktoren p, q berechnet. Der öffentliche Exponent e wird in Schritt 18 als Zufallszahl bestimmt, die teilerfremd zum Wert (p-l). (q-l) ist. Da im vorlie- genden Ausführungsbeispiel der private Schlüssel 12 auf RSA-CRT-Berech- nungen zugeschnitten ist, wird in Schritt 20 das modulare Inverse von p modulo q berechnet und als CRT-Koefizient pinv in den privaten Schlüssel 12 aufgenommen.

In Schritt 22 wird der Wert d als modulares Inverses des öffentlichen Expo- nenten e modulo (p-l)- (q-l) berechnet. In RSA-Verfahren, die den Chinesi- schen Restklassensatz nicht einsetzen, wäre d als privater Exponent der Hauptbestandteil des privaten Schlüssels. In bekannten RSA-CRT-Verfahren würden statt d die beiden CRT-Exponenten d mod (p-1) und d mod (q-1) verwendet werden. Im vorliegenden Ausführungsbeispiel enthält der private Schlüssel 12 dagegen Werte, die aus den genannten CRT-Exponenten d mod (p-1) und d mod (q-1) durch eine zusätzliche Sicherungsmaßnahme abgeleitet sind. Diese Sicherungsmaßnahme ist hier beispielhaft die Multi- plikation mit je einem Sicherungswert. Eine Manipulation der gesicherten Werte kann dann durch eine Teilbarkeitsüberprüfung festgestellt werden. In Ausführungsalternativen sind andere Sicherungsmaßnahmen vorgesehen, z. B. eine Prüfsummenbildung oder die mehrfache Übergabe von zumindest den wichtigen Übergabeparametern.

Als Sicherungswerte sp, sq werden in Schritt 24 zwei Zufallszahlen mit einer Länge von beispielsweise je 64 Bit (8 Byte) erzeugt. Der gesicherte erste

CRT-Exponent dp wird in Schritt 26 gemäß dp : = (d mod (p-1)) sp berechnet. Entsprechend wird der gesicherte zweite CRT-Exponent dq in Schritt 28 durch die Berechnung dq : = (d mod (q-1)) sq bestimmt. Die genannten Werte werden sämtlich als Parameter des privaten Schlüssels 12 abgespeichert. Damit ist die Bestimmung eines gegen Manipulationen geschützten privaten Schlüssels 12 beendet.

Im vorliegenden Ausführungsbeispiel liegt der private Schlüssel 12 im wesentlichen in Form einer Datenstruktur RSAPrivateCRTKey gemäß den Konventionen der Java-Card-Anwendungsprogrammierungsschnittstelle vor. Diese Konventionen sind im Dokument"Java Card 2.1. 1 Application Programming Interface", Revision 1.0, 18. Mai 2000, herausgegeben von Sun Microsystems, Inc., USA, gegenwärtig verfügbar unter http ://java. sun. com/ products/javacard/javacard21. html, beschrieben. Die dort vorgesehene Da- tenstruktur weist Felder DP1 und DQ1 für die ungesicherten CRT-Exponen- ten d mod (p-1) und d mod (q-1) auf. Um den privaten Schlüssel 12 gemäß dem vorliegenden Ausführungsbeispiel in einer derartigen Datenstruktur unterzubringen, ist im vorliegenden Ausführungsbeispiel vorgesehen, daß die Werte sp und dp zusammen in dem Feld DP1 des RSAPrivateCRTKey gespeichert werden, und daß entsprechend die Werte sq und dq zusammen in dem Feld DQ1 gespeichert werden. In Fig. 1 ist dies durch gepunktete Linien angedeutet. In Ausführungsvarianten können die Werte sq und dq auch in anderen Feldern des RSAPrivateCRTKey oder außerhalb dieser Da- tenstruktur abgelegt werden.

Die hier beschriebenen Ausführungsbeispiele weichen insofern geringfügig von der oben genannten Java-Card-Spezifikation ab, als vorliegend das modulare Inverse von p modulo q als CRT-Koefizient pinv im privaten Schlüssel 12 enthalten ist. Gemäß der Java-Card-Spezifikation wird dagegen

ein CRT-Koeffizient PQ verwendet, der das modulare Inverse von q modulo p ist. Es sind Abwandlungen der hier beschriebenen Verfahren vorgesehen, bei denen der CRT-Koeffizient PQ entsprechend der Java-Card-Spezifikation Bestandteil des privaten Schlüssels 12 ist. Die erfindungsgemäßen Ideen sind auch für derartige Ausgestaltungen ohne wesentliche Veränderung einsetz- bar.

Fig. 2 zeigt eine erste Ausgestaltung eines gesicherten RSA-CRT-Verfahrens, das zur Entschlüsselung oder Signaturerzeugung dient. Das Verfahren ist dazu vorgesehen, von einem Prozessor eines tragbaren Datenträgers, insbe- sondere einer Chipkarte (smart card) oder eines Chipmoduls, ausgeführt zu werden. Das Verfahren ist dazu in Form von Programmbefehlen für diesen Prozessor implementiert, die in einem ROM oder EEPROM des Datenträgers gespeichert sind. Der zur Entschlüsselung oder Signaturerzeugung benötigte private Schlüssel 12 ist ebenfalls im EEPROM des Datenträgers gespeichert.

Beim Verfahrensaufruf wird ein Zeiger auf den privaten Schlüssel 12 an die aufgerufene Entschlüsselungs-oder Signaturerzeugungsroutine übergeben.

Die Erfinder haben erkannt, daß ein kryptographischer Angriff dadurch aus- geführt werden kann, daß einzelne Parameter des privaten Schlüssels 12 vor Beginn der Entschlüsselung oder Signaturerzeugung manipuliert werden.

Dies kann z. B. durch gezielte Einwirkung auf das den privaten Schlüssel 12 enthaltende EEPROM oder durch Übergabe einer fehlerhaften Adresse an die RSA-CRT-Routine geschehen. Ein derartiger Angriff hätte die äußerst nachteilige Konsequenz, daß sich aus dem Berechnungsergebnis-z. B. den entschlüsselten Daten oder der erzeugten Signatur-Rückschlüsse auf die Werte der geheimen Schlüsselparameter ziehen ließen. Dadurch wäre das Schlüsselpaar 10,12 für alle bisherigen und zukünftigen Berechnungen kom- promittiert.

Um einen derartigen kryptographischen Angriff zu verhindern, ist bei dem Verfahren von Fig. 2 eine Integritätsüberprüfung des privaten Schlüssels 12 vorgesehen, die eine Folge von mehreren Teilprüfungen beinhaltet. In Fig. 2 ist durch die gestrichelten Pfeile angedeutet, welche Schlüsselparameter in die jeweiligen Teilprüfungen eingehen.

Das Verfahren beginnt in Schritt 30 mit der Teilprüfung, ob der im privaten Schlüssel 12 enthaltene CRT-Koeffizient pinv tatsächlich das modulare Inverse zum ersten Primfaktor p modulo des zweiten Primfaktors q dar- stellt. Mit anderen Worten wird überprüft, ob die vorgegebene Beziehung p pinv = 1 mod q erfüllt ist. Ist dies nicht der Fall, so erfolgt ein Fehleraus- sprung, und das Verfahren wird abgebrochen. Ist die Überprüfung erfolg- reich, so kann davon ausgegangen werden, daß die Schlüsselparameter p, q und pinv nicht manipuliert worden sind, und das Verfahren wird fortgesetzt.

Im nun folgenden Berechnungsmodul 32 wird als Ergebnis des ersten der beiden CRT-Berechnungszweige ein erster Hilfswert yl bestimmt. In diese Berechnung gehen die zu entschlüsselnden oder zu signierenden Daten x, der erste Primfaktor p und der erste CRT-Exponent d mod p-1 ein, wobei der letztgenannte Wert nicht unmittelbar zur Verfügung steht, sondern aus dem gesicherten ersten CRT-Exponenten dp und dem ersten Sicherungswert sp abgeleitet werden muß.

Zur Überprüfung, ob einer der beiden Werte sp, dp manipuliert worden ist, wird zunächst in Schritt 34 eine Teilbarkeitsprüfung vorgenommen. Falls der gesicherte erste CRT-Exponent dp nicht glatt durch den ersten Sicherungs- wert sp teilbar ist, erfolgt wiederum ein Fehleraussprung und Verfahrens-

abbruch. Wenn dagegen die Division ohne Rest aufgeht, kann mit an Sicher- heit grenzender Wahrscheinlichkeit angenommen werden, daß zumindest keine zufällige Verfälschung eines der beiden Schlüsselparameter sp und dp stattgefunden hat. Diese Teilbarkeitsprüfung stellt nur einen geringen zu- sätzlichen Rechenaufwand dar, da der Sicherungswert sp nur eine relativ geringe Bitlänge aufweist. Eine gezielte Manipulation der beiden Parameter sp und dp unter Kenntnis des vorgesehenen Sicherungsmechanismus könnte durch das hier beschriebene Verfahren natürlich nicht entdeckt werden ; es ist aber gegenwärtig nicht vorstellbar, wie ein Angreifer ein derartiges ge- zieltes Einschreiben neuer Werte in einzelne EEPROM-Zellen des Daten- trägers bewerkstelligen könnte.

Wenn die Integritätsüberprüfung hinsichtlich der Parameter sp und dp in Schritt 34 erfolgreich war, wird in Schritt 36 die eigentliche Berechnung des ersten Hilfswerts yl gemäß yl : = (x mod p) II (dp/sp) ausgeführt. Hierbei kann hinsichtlich des Exponenten dp/sp natürlich in der Regel auf das bereits in Schritt 34 berechnete Divisionsergebnis zurückgegriffen werden.

Da das Sicherungsverfahren im vorliegenden Ausführungsbeispiel einfach aus einer Multiplikation mit dem ersten Sicherungswert sp bestand-siehe Schritt 26 in Fig. 1-, gilt dp/sp = d mod (p-1) und somit yl = (x mod p) ^ (d mod (p-1)). Dies ist das gewünschte Ergebnis des ersten CRT- Berechnungszweigs.

Ein zweites Berechnungsmodul 38 entspricht dem zweiten CRT-Berech- nungszweig. Das Verfahren läuft ebenso wie im ersten Berechnungsmodul 32 ab, wobei jedoch der zweite Primfaktor q, der zweite Sicherungswert sq und der gesicherte zweite CRT-Exponent dq herangezogen werden. In Schritt 40 folgt wiederum die Integritätsüberprüfung hinsichtlich der

Schlüsselparameter sq und dq, und in Schritt 42 wird der zweite Hilfswert y2 gemäß der Formel y2 : = (x mod q) (dq/sq) berechnet.

In dem das Verfahren abschließenden Berechnungsschritt 44 wird das Ge- samtergebnis y, also die entschlüsselten Daten oder die berechnete Signatur, auf an sich bekannte Weise durch Kombination der beiden CRT-Hilfswerte yl und y2 bestimmt. Die hier durchgeführte Berechnung läßt sich formel- mäßig als y : = (((y2-yl) pinv) mod q)-p + yl ausdrücken. Für die vom Prozessor des Datenträgers vorgenommenen Berechnungsschritte können natürlich unterschiedliche Auswertungsreihenfolgen gewählt werden.

Generell sind aus der Literatur unterschiedliche Varianten der RSA-CRT- Berechnungen der Schritte 36,42 und 44 bekannt, die sich insbesondere dahingehend unterscheiden, auf welche Weise Zwischenergebnisse auf die jeweiligen Modulo-Bereiche reduziert werden. Die erfindungsgemäße Idee der Integritätsüberprüfung und die im vorliegenden Ausführungsbeispiel vorgeschlagene multiplikative Sicherung der CRT-Exponenten dp und dq können mit allen diesen Varianten kombiniert werden.

Die Integritätsprüfung gemäß der vorliegenden Erfindung richtet sich insbesondere gegen einen kryptographischen Angriff, der zeitlich vor den RSA-Berechnungen-spätestens während der Parameterübergabe an die RSA-Routine-ausgeführt wird. Die Prüfung bei der Parameterübergabe kann in einfacher Weise auch erfolgen, indem neben den Übergabeparametern auch noch damit verbundene redundante Information, beispielsweise in Form von Prüfsummen abgespeichert ist, und nach der Parameterübergabe eine äbgespeicherte Prüfsumme mit einer neu über die übergebenen Parameter errechneten Prüfsumme verglichen wird. Alternativ können zumindest wichtige Übergabeparameter mehrfach übergeben und nach der Übergabe auf Identität geprüft werden.

Es sind weitere Angriffsverfahren bekannt, die auf eine Ausspähung der einzelnen Berechnungsschritte abzielen, um Rückschlüsse auf geheimzuhaltende Schlüsselparameter zu ermöglichen. Insbesondere die Exponentenbildung in den Schritten 36 und 42 ist solchen Angriffen ausgesetzt, weil bei üblichen Implementierungen der Potenzie- rungsoperation die Prozessoraktivität während des Berechnungsablaufs erheblich von der Bitfolge des Exponenten abhängt. Diese Prozessoraktivität kann durch Messung des Stromverbrauchs (SPA = simple power analysis oder DPA = differential power analysis) oder anderer Signale wie z. B. elektrischer Feldstärken ausgespäht werden.

Zum Schutz gegen derartige Angriffe ist in der internationalen Patenter- öffentlichung WO 01/48974 AI vorgeschlagen worden, den Exponenten mit Rest durch eine Zufallszahl zu teilen und statt einer einzigen Potenzierungs- operation drei getrennte Potenzierungen vorzunehmen, wobei als Exponen- ten der ganzzahlige Quotient, die Zufallszahl sowie der bei der Teilung ermittelte Rest verwendet werden. Dieses Verfahren ist im Detail in der genannten Patentveröffentlichung beschrieben, deren Inhalt hiermit voll- ständig in das vorliegende Dokument aufgenommen wird.

Es ist ein besonderer Vorteil des Sicherungsverfahrens gemäß der vorlie- genden Erfindung, daß sich dieses leicht mit dem auch als"exponent blinding"bezeichneten Verschleierungsverfahren gemäß der WO 01/48974 AI kombinieren-läßt, wobei sich insbesondere die für das Verschleierungsverfahren sowieso benötigte Division auch für das Sicherungsverfahren gemäß der vorliegenden Erfindung nutzen läßt. Das erfindungsgemäße Verfahren kann dadurch mit sehr geringem Mehraufwand implementiert werden.

Fig. 3 zeigt die Verfahrensschritte eines Berechnungsmoduls 32', das gegen- über dem Berechnungsmodul 32 von Fig. 2 so abgewandelt ist, daß es zu- sätzlich die aus der WO 01/48974 AI an sich bekannte Technik der Exponen- ten-Verschleierung anwendet. Hierzu wird zunächst in Schritt 46 eine Zu- fallszahl r mit einer Länge von beispielsweise 64 Bit (8 Byte) gewählt. In Schritt 48 wird eine Division mit Rest durchgeführt, um den gesicherten CRT-Exponenten dp in die Faktoren dpl und r-sp sowie den Rest dp2 aufzu- teilen ; es gilt dp = dpl-r-sp + dp2. Im Gegensatz zu dem aus WO 01/48974 AI bekannten Verfahren wird in Schritt 48 also als Divisor nicht die Zufallszahl r, sondern der Wert r-sp verwendet.

In den Schritten 50 und 52 werden nun die ersten beiden Potenzierungs- operationen vorgenommen, indem der Basiswert x mod p zunächst mit der Zufallszahl r und das so erhaltene Zwischenergebnis yll dann mit dem ganzzahligen Quotienten dpl potenziert werden. Für das Ergebnis y12 gilt somit y12 = ( (x mod p) Ar) ^dpl = (x mod p) ^ (r-dpl). Der Sicherungswert sp ist in die Schritte 50 und 52 nicht eingeflossen, da insoweit die zur Sicherung des CRT-Exponenten dp dienende Multiplikation bereits im Zusammenhang mit der Division 48 rückgängig gemacht wurde.

In Schritt 54 erfolgt nun-analog zu Schritt 34 in Fig. 2-eine Teilbarkeits- prüfung, um die Integrität der Schlüsselparameter sp und dp sicherzustellen.

Im Gegensatz zu Schritt 34 in Fig. 2 wird hierbei jedoch nicht der gesicherte CRT-Exponent dp, sondern der Divisionsrest dp2 durch sp geteilt. Da sich dp2 von dp nur durch ein Vielfaches von r-sp-und somit durch ein Vielfaches von sp-unterscheidet, sind die beiden Überprüfungen gleich- wertig. Der durch die Ausführung von Schritt 54 entstehende Berechnungs- aufwand ist jedoch wegen des erheblich kürzeren Dividenden dp2 erheblich

geringer als bei der Berechnung von Schritt 34 in Fig. 2. Überdies wird das ganzzahlige Divisionsergebnis dp2/sp im folgenden Schritt 56 benötigt. Die Division und Teilbarkeitsprüfung in Schritt 54 stellt im Vergleich zu dem bekannten Verfahren gemäß WO 01/48974 AI den einzigen zusätzlichen Rechenaufwand dar.

Falls dp2 kein glattes Vielfaches von sp ist, wird das Verfahren in Schritt 54 mit einem Fehleraussprung abgebrochen. Andernfalls wird in Schritt 56 ein weiterer Zwischenwert y13 gemäß y13 : = (x mod p) ^ (dp2/sp) berechnet. Als Ergebnis yl des Berechnungsmoduls 32'wird in Schritt 58 das Produkt yl2 yl3 bestimmt. Dieses Ergebnis ist identisch mit dem ersten Hilfswert yl gemäß Schritt 36 von Fig. 2, weil gilt : yl = y12. y13 ((x mod p) II (r#dp1))#((x mod p) ^ (dp2/sp)) = (x mod p) ((r dpl) + (dp2/sp)) = (x mod p) ^ (dp/sp) Das gesamte RSA-CRT-Verfahren in der hier beschriebenen, besonders geschützten Ausführungsvariante beginnt mit einer Integritätsüberprüfung der Parameter p, q und pinv durch den in Fig. 2 gezeigten Schritt 30. Darauf folgen als erster CRT-Berechnungszweig die Schritte des Berechnungs- moduls 32'gemäß Fig. 3, um den ersten Hilfswert yl zu ermitteln. Zur Berechnung des zweiten Hilfswerts y2 wird ebenfalls das in Fig. 3 gezeigte Verfahren eingesetzt, wobei natürlich die Schlüsselparameter p, sp und dp durch q, sq und dq ersetzt werden. Die Zufallszahl r kann entweder aus dem ersten Ablauf des Berechnungsmoduls 32'übernommen oder neu bestimmt werden. Das Endergebnis y wird schließlich durch eine Kombination der beiden Hilfswerte yl und y2 wie in Schritt 44 von Fig. 2 berechnet.

Das in Fig. 4 gezeigte Verfahren sieht einen zusätzlichen Überprüfungs- schritt vor, in dem ein weiterer Verschleierungsparameter j herangezogen wird. Ein erster Berechnungsblock 60 entspricht ungefähr Schritt 30 in Fig. 2.

In Schritt 62 wird der Verschleierungsparameter j als zufällige Primzahl mit einer Länge von beispielsweise 32 Bit (4 Byte) gewählt. Die Primfaktoren p und q werden in den Schritten 64 und 66 mit dem Verschleierungsparameter j multipliziert, um verschleierte Primfaktoren p'bzw. q'zu erhalten. In Schritt 68 erfolgt ein Test, um die Integrität der Schlüsselparameter p, q und pinv zu überprüfen. Falls p'-pinv = j mod q'gilt ; wird das Verfahren fortge- setzt ; andernfalls erfolgt ein Fehleraussprung.

In einem zweiten Berechnungsblock 70 wird ein erster Hilfswert yl gemäß der Formel yl : = (xA (dp/sp)) mod p'bestimmt. Der erste Hilfswert yl ent- spricht im wesentlichen dem ersten Hilfswert der Ausführungsbeispiele von Fig. 2 und Fig. 3, wobei jedoch p'statt p für die Modulo-Berechnung herangezogen wird. Im Detail erfolgt die Berechnung in unterschiedlichen Ausführungsvarianten entweder wie im Berechnungsmodul 32 von Fig. 2 oder wie im Berechnungsmodul 32'von Fig. 3. In beiden Fällen wird eine Teilbarkeitsprüfung durchgeführt, um die Integrität der Schlüsselparameter sp und dp sicherzustellen.

Ein dritter Berechnungsblock 72 entspricht dem zweiten Berechnungsblock 70 mit dem Unterschied, daß statt dp, sp und p'die Werte dq, sq und q' herangezogen werden, um einen zweiten Hilfswert y2 zu berechnen.

Wiederum kann der dritte Berechnungsblock 72 entweder wie das Berechnungsmodul 38 in Fig. 2 oder analog der Darstellung von Fig. 3 ausgestaltet sein. Durch einen Teilbarkeitstest im dritten Berechnungsblock 72 wird die Integrität der Schlüsselparameter sq und dq überprüft.

Schritt 74 betrifft die Berechnung eines Zwischenergebnisses y'vermöge der Formel y' : = [((y2-yl) pinv) mod q']-p + yl. Dies entspricht ungefähr Schritt 44 in Fig. 2. In Schritt 76 erfolgt ein weiterer Test, der die bisherigen Berechnungen miteinander in Beziehung setzt und gestörte Berechnungsabläufe erkennt. Es wird überprüft, ob die folgende Gleichheitsbeziehung modulo j gilt : y' mod j = [ ((x^(dq/sq)) mod j- (xt (dp/sp)) mod j) pinv p + (x^ (dp/sp)) mod j] mod j Falls diese Gleichung nicht erfüllt ist, erfolgt ein Fehlerabbruch. Andernfalls wird das Verfahren in Schritt 78 mit der Berechnung des Endergebnisses y gemäß y : = y'mod n abgeschlossen, wobei n der Modulus mit n = p q ist.

Durch die weitere Überprüfung des Berechnungsverlaufs in Schritt 76 wird bei dem Verfahren gemäß Fig. 4 ein nochmals verbesserter Schutz gegen kryptographische Angriffe erreicht.