DE10250810A1 - Cryptographic computation method for running protected computation in smart cards produces a code with two or more code parameters - Google Patents

Cryptographic computation method for running protected computation in smart cards produces a code with two or more code parameters Download PDF

Info

Publication number
DE10250810A1
DE10250810A1 DE10250810A DE10250810A DE10250810A1 DE 10250810 A1 DE10250810 A1 DE 10250810A1 DE 10250810 A DE10250810 A DE 10250810A DE 10250810 A DE10250810 A DE 10250810A DE 10250810 A1 DE10250810 A1 DE 10250810A1
Authority
DE
Germany
Prior art keywords
key
pinv
calculation
parameters
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE10250810A
Other languages
German (de)
Inventor
Markus Dr. Bockes
Helmut Dr. Kahl
Hermann Dr. Drexler
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.)
Giesecke and Devrient GmbH
Original Assignee
Giesecke and Devrient GmbH
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 Giesecke and Devrient GmbH filed Critical Giesecke and Devrient GmbH
Priority to DE10250810A priority Critical patent/DE10250810A1/en
Priority to AU2003271594A priority patent/AU2003271594A1/en
Priority to DE50302617T priority patent/DE50302617D1/en
Priority to AT03753399T priority patent/ATE320125T1/en
Priority to US10/527,570 priority patent/US7983414B2/en
Priority to EP03753399A priority patent/EP1540880B1/en
Priority to PCT/EP2003/010015 priority patent/WO2004032411A1/en
Priority to CN03821623XA priority patent/CN1682484B/en
Publication of DE10250810A1 publication Critical patent/DE10250810A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1008Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/723Modular exponentiation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/341Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/409Device specific authentication in transaction processing
    • G06Q20/4097Device specific authentication in transaction processing using mutual authentication between devices and transaction partners
    • G06Q20/40975Device specific authentication in transaction processing using mutual authentication between devices and transaction partners using encryption therefor
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/0806Details of the card
    • G07F7/0813Specific details related to card security
    • G07F7/082Features insuring the integrity of the data on or in the card
    • 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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • G06F2207/7271Fault verification, e.g. comparing two values which should be the same, unless a computational fault occurred

Landscapes

  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Business, Economics & Management (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Accounting & Taxation (AREA)
  • Pure & Applied Mathematics (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Signal Processing (AREA)
  • Finance (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Storage Device Security (AREA)

Abstract

A code (12) is invoked with code parameters (p,q,pinv,sp,dp,sq,dq). Integrity checks (30,34,40) are run on the code in order to prevent a cryptographic attack, in which conclusions about second code parameters are drawn through tampering with first code parameters. The integrity checks determine whether the value of one code parameter remains in a repeatedly interrupted range of reliable values. Independent claims are also included for the following: (a) A computer program product with program commands to make a processor run the method of the present invention; (b) and for a portable carrier like a chip card or chip module set up to run the method of the present invention.

Description

Die Erfindung betrifft allgemein das technische Gebiet der Kryptographie und spezieller eine Vorgehensweise zum verbesserten Schutz einer kryptographischen 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 ausgestaltet sein können.The invention relates generally the technical field of cryptography and more specifically a procedure to better protect a cryptographic calculation against Attacks. In particular, the invention is intended for use in portable data carriers, e.g. as smart cards in different designs or can be configured as chip modules.

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. Gemäß dem RSA-Verfahren wird ein öffentlicher Schlüssel zur Verschlüsselung oder Signaturverifikation und ein geheimer privater Schlüssel zur Entschlüsselung oder Signaturerzeugung eingesetzt. Die Sicherheit des RSA-Verfahrens 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 bestimmen. 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.For the exchange of encrypted and / or signed data is e.g. in U.S. Patent 4,405,829 RSA method well known. According to the RSA procedure becomes a public key to encoding or signature verification and a secret private key to decryption or signature generation used. The security of the RSA process is based on the fact that currently none efficient way is known to get the prime factors p and q of a large number n with n = pq to determine. While the so-called modulus n is published as part of the public key will have to the values p and q are kept secret.

Die zur Ausführung des RSA-Verfahrens erforderlichen Berechnungsvorgänge sind relativ aufwendig. So müssen z.B. bei der Entschlüsselung oder Signaturerzeugung die zu verarbeitenden Daten mit Parametern des privaten 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 eingesetzt, 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.The ones required to perform the RSA procedure calculation processes are relatively expensive. So must e.g. when decrypting or Signature generation the data to be processed with parameters of the private key be potentiated. Especially for portable data carriers with their limited Computing power is therefore often a Implementation of the RSA procedure for decryption or signature generation used that the Chinese remainder class sentence (CRT = Chinese remainder theorem) and therefore also referred to as the RSA-CRT method becomes. By using the RSA-CRT method, the required computational effort approximately reduced by a factor of 4.

Das RSA-CRT-Verfahren sieht vor, statt einer aufwendigen Potenzberechnung zwei erheblich einfachere Potenzierungen durchzuführen, deren Ergebnisse 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 Primfaktor q ein.The RSA-CRT procedure provides instead of a complex power calculation, two considerably simpler ones Carry out exponentiations, the results of which then relate to the decrypted data or the generated Signature can be combined. In the first of these calculations goes only the secret prime factor p, and goes into the second calculation only the secret prime factor q.

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 Gesamtberechnung ein Vielfaches desjenigen Primfaktors p, q ableiten, dessen Berechnungszweig 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 durchgeführte Entschlüsselung oder Signaturerzeugung, sondern alle unter Verwendung des privaten Schlüssels ausgeführten kryptographischen Operationen kompromittiert werden.Attack scenarios have been proposed where exactly one of the two mentioned RSA-CRT calculation branches disturbed e.g. by targeted exposure to heat or radiation or by electric impulse. If this succeeds, the result of the Overall calculation derive a multiple of that prime factor p, q whose Calculation branch not disturbed has been. In other words, the attack described Conclusions on pull the private key. This has potentially catastrophic consequences because not only that just performed decryption or signature generation, but all using private key executed cryptographic operations are compromised.

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 beschrieben. 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 Angriffsmöglichkeiten, denen mit dem aus dem US-Patent 5,991,415 bekannten Verfahren nicht entgegengetreten werden kann.The attack just mentioned is known under the names "fault attack" or "Bellcore attack" and e.g. in column 4 of U.S. Patent 5,991,415. Also in the US patent 5,991,415 a method is disclosed in which to protect against it while an additional attack to the cryptographic calculation Factor j is included in the calculation. However, there are, as follows will continue to be shown that the methods not known from US Pat. No. 5,991,415 can be.

Besonders kritisch ist die genannte Angriffsmöglichkeit dann, wenn die kryptographische Berechnung von einem Prozessor eines tragbaren Datenträgers, beispielsweise einer Chipkarte (smart card) oder eines Chipmoduls, ausgeführt wird. Ein erster Grund dafür ist, daß solche tragbaren Datenträ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öglichkeiten zum Beeinflussen der Berechnung und zum Ausspähen der Berechnungsergebnisse hat.The above is particularly critical of attack then when the cryptographic calculation by a processor of a portable data carrier, for example a smart card or a chip module, accomplished becomes. A first reason for that is that such portable disk often for safety-critical applications are used, e.g. in connection with financial transactions, access control or the signature of legally binding documents. Second, there are portable ones disk, while the cryptographic calculation is carried out, typically in Possession of the attacker so that all of them possibilities to influence the calculation and to spy on the calculation results.

Die Erfindung hat die Aufgabe, eine Technik zum besonders guten Schutz kryptographischer Berechnungen gegen Angriffe bereitzustellen. Insbesondere sollen solche Angriffe verhindert werden, die auf ähnlichen Prinzipien wie der oben beschriebene "Bellcore attack" beruhen. In bevorzugten Ausgestaltungen soll der erfindungsgemäße Schutz vorteilhaft mit anderen Schutzverfahren zusammenwirken.The invention has the task of a Technology for particularly good protection of cryptographic calculations against attacks. Such attacks are particularly intended be prevented on similar Principles like the "Bellcore attack" described above are based. In preferred configurations protection according to the invention interact advantageously with other protection methods.

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 einen tragbaren Datenträger gemäß Anspruch 15. Die abhängigen Ansprüche definieren bevorzugte Ausgestaltungen der Erfindung. Die Aufzählungsreihenfolge der Verfahrensschritte in den Ansprüchen soll nicht als Einschränkung des Schutzbereichs aufgefaßt werden; es sind vielmehr Ausgestaltungen 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.According to the invention, this task is complete or partially solved through a process to protect To run a cryptographic calculation with the features of the claim 1, a method for determining a key for a cryptographic calculation having the features of claim 12, a computer program product according to claim 14 and a portable disk according to claim 15. The dependent Define claims preferred embodiments of the invention. The enumeration order the procedural steps in the claims are not intended to limit the Protected area understood become; Rather, embodiments of the invention are provided in which these process steps in whole or in part in others Sequence or in whole or in part in parallel or in whole or in part be interleaved.

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.The invention is based on the basic knowledge that an attack similar to the "bellcore attack" described above does not only result from a disturbance in the calculation processes during the cryptogra phic calculation is possible, but also in that the cryptographic calculation is supplied with incorrect parameters. This can be done, for example, by passing an incorrect pointer address to the calculation routine or by changing the content of memory fields in which key parameters are contained from the outside. The inventors have recognized that the result of a cryptographic calculation that is supplied with such falsified parameters can possibly be used to draw conclusions about key parameters to be kept secret.

Erfindungsgemäß ist vorgesehen, zum Schutz gegen einen solchen Angriff eine Integritätsüberprüfung des für die kryptographische Berechnung herangezogenen Schlüssels auszuführen. Durch diese Maßnahme kann der Angriff erkannt und abgewehrt werden, indem z.B. die kryptographische Berechnung ohne Ausgabe eines Ergebnisses abgebrochen wird. Die Integritä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.According to the invention, protection is provided against such an attack, an integrity check of the one used for the cryptographic calculation key perform. By this measure the attack can be recognized and warded off by e.g. the cryptographic Calculation is canceled without output of a result. The Integrity check can a manipulation of the key parameters usually do not rule out with absolute certainty; she however, should be one for practical purposes, adequate protection against the attack mentioned Offer. This implies that a simple value range monitoring (range check) with a fixed lower limit and a fixed upper limit Limit not as an integrity check in the Would be considered within the meaning of the present invention.

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 Ausgestaltungen 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.The integrity check is preferably designed in such a way that manipulation, in which a monitored key parameter is falsified in a random manner, with a probability bordering on certainty, for example with a probability greater than 1-10 -3 or greater than 1-10 -6 or greater than 1 - 10 –9 , is recognized. While the integrity check in some configurations only includes individual, particularly critical key parameters, it is preferably provided to monitor all parameters of a key to be kept secret. Different test methods can be carried out for individual parameters or parameter groups in the course of the integrity check.

Die zur Integritätsüberprüfung eingesetzten Verfahren haben jeweils das Ziel, eine Verfälschung des überwachten Schlüsselparameters oder der überwachten Schlüsselparameter zu erkennen. In einer bevorzugten Ausgestaltung 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üfsummenberechnungen der Fall ist.The procedures used to verify integrity each have the goal of falsifying the monitored Parameters key or the monitored key parameters to recognize. In a preferred embodiment, the integrity check in the Result determines whether there is a key parameter within a permissible, multiple interrupted range of values. This type of examination is usually then before if the key parameter when generating the key that actually for the cryptographic calculation required value and an additional, redundant fuse value was calculated, e.g. for checksum calculations the case is.

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 vorbestimmten Beziehung zueinander stehen. Die Integritätsüberprüfung kann eine multiplikative Operation beinhalten, worunter in der Wortwahl des vorliegenden Dokuments eine Multiplikation, eine Division, eine Potenzierung, eine Modulo-Berechnung und eine Teilbarkeitsprüfung zu verstehen sind.While some or all key parameters can be provided individually will check preferably determined during the integrity check, whether at least two key parameters have a predetermined relationship to one another. The integrity check can involve a multiplicative operation, including in the choice of words a multiplication, a division, a Potentiation, a modulo calculation and a divisibility check are understand.

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 Berechnung benötigten Wertes mit dem Sicherungswert gewonnen. Der Sicherungswert kann Bestandteil des Schlüssels oder fest vorgegeben sein.It is preferably checked whether a key parameters or a value derived therefrom by a hedging value is divisible. In this case, the key parameter is key generation preferably by multiplying the actually for the cryptographic Calculation needed Value with the security value. The security value can Part of the key or be fixed.

Das erfindungsgemäße Verfahren ist für alle kryptographischen Berechnungen 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 Erfindung für die Sicherung der Entschlüsselung oder Signaturerzeugung bei einem RSA-Verfahren, vorzugsweise bei einem RSA-CRT-Verfahren, vorgesehen. 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.The method according to the invention is for all cryptographic Suitable calculations in which a cryptographic attack by Adulteration at least of a first key parameter Conclusions on at least one second key parameter allows. In particular, the invention is for securing the decryption or signature generation in an RSA process, preferably in an RSA-CRT method. In these cases, the integrity check affects the RSA private key. It is expected that appropriate ways to attack for further cryptographic calculations can be found, which then also in the manner according to the invention can be secured.

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-Verschleierungsverfahren kombinieren, wie es aus der internationalen Offenlegungsschrift WO 01/48974 A1 bekannt ist. In weiteren vorteilhaften Ausgestaltungen werden – alternativ oder zusätzlich zu der gerade genannten Exponentenverschleierung – die Primfaktoren des RSA-Verfahrens mit einem Verschleierungsparameter multipliziert, so daß das Berechnungsergebnis mittels einer Gleichheitsüberprüfung modulo des Verschleierungsparameters auf seine Korrektheit überprüft werden kann.In preferred configurations determined during the integrity check, whether an exponent used in an exponentiation operation is smooth is divisible by a security value. These embodiments The invention can be used particularly advantageously with an exponent concealment method combine as it is from the international patent application WO 01/48974 A1 is known. In further advantageous configurations become - alternatively or additionally to the exponent concealment just mentioned - the prime factors multiplied by an obfuscation parameter in the RSA process, so that Calculation result by means of an equality check modulo of the obfuscation parameter be checked for correctness can.

Das erfindungsgemäße Computerprogrammprodukt weist Programmbefehle 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 Verfahrens gespeichert ist. Das Computerprogrammprodukt kann jedoch auch ein nicht-körperliches Medium sein, beispielsweise ein über ein Computernetzwerk übermitteltes Signal. Das Computerprogrammprodukt kann insbesondere zur Verwendung im Zusammenhang mit der Herstellung und/oder Initialisierung und/oder Personalisierung von Chipkarten oder sonstigen Datenträgern vorgesehen sein.The computer program product according to the invention has program instructions in order to implement the method according to the invention. Such a computer program product can be a physical medium, for example a semiconductor memory or a floppy disk or a CD-ROM, on which a program for executing a method according to the invention is stored. However, the computer program product can also be a non-body Lich medium, for example a signal transmitted over a computer network. The computer program product can be provided in particular for use in connection with the production and / or initialization and / or personalization of chip cards or other data carriers.

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.In preferred configurations the computer program product and / or the portable data carrier Characteristics developed, the above and / or in the dependent method claims correspond to the mentioned characteristics.

Weitere Merkmale, Vorteile und Aufgaben der Erfindung gehen aus der folgenden genauen Beschreibung mehrerer Ausführungsbeispiele und Ausführungsalternativen hervor. Es wird auf die schematischen Zeichnungen verwiesen, in denen zeigen:Other characteristics, advantages and tasks of Invention will emerge from the following detailed description of several embodiments and execution alternatives out. Reference is made to the schematic drawings in show them:

1 ein beispielhaftes Flußdiagramm eines Verfahrens zur Schlüsselberechnung mit Darstellung eines öffentlichen und eines privaten Schlüssels, 1 1 shows an exemplary flowchart of a method for key calculation with representation of a public and a private key,

2 ein beispielhaftes Flußdiagramm eines kryptographischen Berechnungsverfahrens, 2 an exemplary flow diagram of a cryptographic calculation method,

3 ein beispielhaftes Flußdiagramm eines Ausschnitts des Verfahrens von 2 in einer abgewandelten Ausgestaltung, und 3 an exemplary flow chart of a portion of the method of 2 in a modified form, and

4 ein beispielhaftes Flußdiagramm eines weiteren Ausführungsbeispiels des kryptographischen Berechnungsverfahrens. 4 an exemplary flow chart of another embodiment of the cryptographic calculation method.

Das in 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 Datenträger übertragen. Alternativ ist es auch möglich, daß das Verfahren von 1 durch den Datenträger selbst ausgeführt wird, um das Schlüsselpaar zu bestimmen.This in 1 The procedure shown is used to calculate a public key 10 and a private key 12 which are designed for use in an RSA process. The dashed arrows indicate which key parameter is generated by which process step. In connection with the use of the key pair 10 . 12 With portable data carriers (eg chip cards), the method can be carried out in a secure environment, for example during the initialization or personalization of the data carrier. The externally calculated key pair is then transferred to the data carrier as part of the initialization or personalization data. Alternatively, it is also possible that the method of 1 by the disk itself to determine the key pair.

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-Exponenten dp, dq auf.The public key 10 has a modulus n and a public exponent e as key parameters. The private key 12 is intended for RSA calculations using the Chinese residual class theorem, which are also referred to here as RSA-CRT calculations (CRT = Chinese remainder theorem). The private key is the key parameter 12 a first and a second prime factor p, q, a CRT coefficient pinv, a first and a second fuse value sp, sq as well as a secured first and a secured second CRT exponent dp, dq.

Das in 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 – 1)·(q – 1) ist. Da im vorliegenden Ausführungsbeispiel der private Schlüssel 12 auf RSA-CRT-Berechnungen zugeschnitten ist, wird in Schritt 20 das modulare Inverse von p modulo q berechnet und als CRT-Koeffizient pinv in den privaten Schlüssel 12 aufgenommen.This in 1 The method shown begins in a known manner in step 14 with the random selection of two prime numbers with a length of, for example, 1024 or 2048 bits each, which are the first and second prime factors p, q in the private key 12 get saved. In the subsequent step 16, the modulus n of the public key 10 calculated as the product of the two prime factors p, q. The public exponent e is determined in step 18 as a random number that is prime to the value (p - 1) · (q - 1). Since in the present exemplary embodiment the private key 12 is tailored to RSA-CRT calculations, the modular inverse of p modulo q is calculated in step 20 and as the CRT coefficient pinv in the private key 12 added.

In Schritt 22 wird der Wert d als modulares Inverses des öffentlichen Exponenten e modulo (p – 1)·(q – 1) berechnet. In RSA-Verfahren, die den Chinesischen 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 Multiplikation 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.In step 22, the value d is calculated as the modular inverse of the public exponent e modulo (p-1) · (q-1). In RSA processes that do not use the Chinese residual class theorem, d as the private exponent would be the main component of the private key. In known RSA-CRT methods, the two CRT exponents d mod (p - 1) and d mod (q - 1) would be used instead of d. In the present exemplary embodiment, the private key contains 12 on the other hand, values derived from the above-mentioned CRT exponents d mod (p - 1) and d mod (q - 1) by an additional safety measure. This security measure is, for example, the multiplication with one security value each. Manipulation of the saved values can then be determined by a divisibility check. In alternative embodiments, other security measures are provided, for example creating a checksum or the multiple transfer of at least the important transfer parameters.

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.In step 24, two random numbers with a length of, for example, 64 bits (8 bytes) are generated as security values sp, sq. The secured first CRT exponent dp is calculated in step 26 according to dp: = (d mod (p - 1)) · sp. Correspondingly, the secured second CRT exponent dq is determined in step 28 by the calculation dq: = (d mod (q-1)) · sq. The values mentioned are all used as parameters of the private key 12 stored. This is the determination of a private key that is protected against manipulation 12 completed.

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 CardTM 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 Datenstruktur weist Felder DP1 und DQ1 für die ungesicherten CRT-Exponenten 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 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 Datenstruktur abgelegt werden.In the present exemplary embodiment, the private key is located 12 essentially in the form of a data structure RSAPrivateCRTKey according to the conventions of the Java Card application programming interface. These conventions are currently available in the document "Java Card TM 2.1.1 Application Programming Interface", Revision 1.0, May 18, 2000, issued by Sun Microsystems, Inc., USA, at http://java.sun.com/ products / javacard / javacard21.html. The data structure provided there has fields DP1 and DQ1 for the unsecured CRT exponents d mod (p - 1) and d mod (q - 1). To the private key 12 According to the present exemplary embodiment, to accommodate such a data structure, the present exemplary embodiment provides that the values sp and dp are stored together in the field DP1 of the RSAPrivateCRTKey, and that the values sq and dq are accordingly stored together in the field DQ1. In 1 this is indicated by dotted lines. In execution variants, the values sq and dq can also be stored in other fields of the RSAPrivateCRTKey or outside of this data structure.

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-Koeffizient 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 einsetzbar.The exemplary embodiments described here deviate slightly from the above-mentioned Java card specification, in the present case the modular inverse of p modulo q as CRT coefficient pinv in the private key 12 is included. In contrast, according to the Java Card specification, a CRT coefficient PQ is used, which is the modular inverse of q modulo p. Modifications to the methods described here are provided in which the CRT coefficient PQ is part of the private key in accordance with the Java Card specification 12 is. The ideas according to the invention can also be used for such configurations without significant changes.

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, insbesondere 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. 2 shows a first embodiment of a secured RSA-CRT method, which is used for decryption or signature generation. The method is intended to be carried out by a processor of a portable data carrier, in particular a chip card (smart card) or a chip module. For this purpose, the method is implemented in the form of program instructions for this processor, which are stored in a ROM or EEPROM of the data carrier. The private key required for decryption or signature generation 12 is also stored in the EEPROM of the data carrier.

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 ausgefü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 kompromittiert.When the procedure is called, a pointer to the private key is displayed 12 passed to the called decryption or signature generation routine. The inventors have recognized that a cryptographic attack can be carried out by using individual parameters of the private key 12 manipulated before decryption or signature creation begins. This can be done, for example, through targeted action on the private key 12 contain EEPROM or by passing an incorrect address to the RSA-CRT routine. Such an attack would have the extremely disadvantageous consequence that the calculation result - z. B. the decrypted data or the generated signature - draw conclusions about the values of the secret key parameters. This would be the key pair 10 . 12 compromised for all previous and future calculations.

Um einen derartigen kryptographischen Angriff zu verhindern, ist bei dem Verfahren von 2 eine Integritätsüberprüfung des privaten Schlüssels 12 vorgesehen, die eine Folge von mehreren Teilprüfungen beinhaltet. In 2 ist durch die gestrichelten Pfeile angedeutet, welche Schlüsselparameter in die jeweiligen Teilprüfungen eingehen.In order to prevent such a cryptographic attack, the method of 2 a private key integrity check 12 provided that includes a sequence of several partial exams. In 2 the dashed arrows indicate which key parameters are included in the respective partial tests.

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 darstellt. 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 Fehleraussprung, und das Verfahren wird abgebrochen. Ist die Überprüfung erfolgreich, so kann davon ausgegangen werden, daß die Schlüsselparameter p, q und pinv nicht manipuliert worden sind, und das Verfahren wird fortgesetzt.The process begins in step 30 with the partial check whether the in the private key 12 contained CRT coefficient pinv actually represents the modular inverse of the first prime factor p modulo of the second prime factor q. In other words, it is checked whether the predetermined relationship p · pinv = 1 mod q is fulfilled. If this is not the case, an error jump occurs and the process is terminated. If the check is successful, it can be assumed that the key parameters p, q and pinv have not been manipulated and the process is continued.

Im nun folgenden Berechnungsmodul 32 wird als Ergebnis des ersten der beiden CRT-Berechnungszweige ein erster Hilfswert y1 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ß.In the following calculation module 32 a first auxiliary value y1 is determined as a result of the first of the two CRT calculation branches. The data to be decrypted or signed, the first prime factor p and the first CRT exponent d mod p - 1 are included in this calculation, the latter value not being directly available, but from the secured first CRT exponent dp and the first security value sp must be derived.

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 Sicherungswert sp teilbar ist, erfolgt wiederum ein Fehleraussprung und Verfahrens abbruch. Wenn dagegen die Division ohne Rest aufgeht, kann mit an Sicherheit 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 zusä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 gezieltes Einschreiben neuer Werte in einzelne EEPROM-Zellen des Datenträgers bewerkstelligen könnte.To check whether one of the two values sp, dp has been manipulated, a divisibility check is first carried out in step 34. If the secured first CRT exponent dp is not smooth through the If the first fuse value sp is divisible, an error jump occurs again and process termination. If, on the other hand, the division merges without remainder, can be accepted with almost certain probability be that at least no accidental falsification one of the two key parameters sp and dp has taken place. This divisibility check represents only a minor one additional Computational effort because the backup value sp is only a relatively low one bit length having. A deliberate manipulation of the two parameters sp and dp with knowledge of the proposed security mechanism could by the method described here is of course not discovered; but it is present unimaginable how an attacker could do such a targeted enrollment manage new values in individual EEPROM cells of the data carrier could.

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 y1 gemäß y1 := (x mod p)^(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 1 -, gilt dp/sp = d mod (p – 1) und somit y1 = (x mod p)^(d mod (p – 1)). Dies ist das gewünschte Ergebnis des ersten CRT-Berechnungszweigs.If the integrity check with regard to the parameters sp and dp was successful in step 34, the actual calculation of the first auxiliary value y1 according to y1: = (x mod p) ^ (dp / sp) is carried out in step 36. With regard to the exponent dp / sp, the division result already calculated in step 34 can of course generally be used. Since the backup method in the present exemplary embodiment simply consisted of a multiplication by the first backup value sp - see step 26 in 1 -, dp / sp = d mod (p - 1) and therefore y1 = (x mod p) ^ (d mod (p - 1)). this is that desired result of the first CRT calculation branch.

Ein zweites Berechnungsmodul 38 entspricht dem zweiten CRT-Berechnungszweig. 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.A second calculation module 38 corresponds to the second CRT calculation branch. The procedure is the same as in the first calculation module 32 from, however, the second prime factor q, the second security value sq and the secured second CRT exponent dq are used. In step 40 the integrity check with regard to the key parameters sq and dq follows, and in step 42 the second auxiliary value y2 is calculated according to the formula y2: = (x mod q) ^ (dq / sq).

n dem das Verfahren abschließenden Berechnungsschritt 44 wird das Gesamtergebnis y, also die entschlüsselten Daten oder die berechnete Signatur, auf an sich bekannte Weise durch Kombination der beiden CRT-Hilfswerte y1 und y2 bestimmt. Die hier durchgeführte Berechnung läßt sich formelmäßig als y := (((y2 – y1)·pinv) mod q)·p + y1 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.n the calculation step concluding the method 44 the overall result y, that is to say the decrypted data or the calculated signature, is determined in a manner known per se by combining the two CRT auxiliary values y1 and y2. The calculation performed here can be expressed as y: = (((y2 - y1) · pinv) mod q) · p + y1. Different evaluation sequences can of course be selected for the calculation steps carried out by the processor of the data carrier. In general, different variants of the RSA-CRT calculations of steps 36, 42 and 44 are known from the literature, which differ in particular in the way in which intermediate results are reduced to the respective modulo ranges. The inventive idea of the integrity check and the multiplicative securing of the CRT exponents dp and dq proposed in the present exemplary embodiment can be combined with all of these variants.

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 abgespeicherte 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.The integrity check according to the present invention is aimed particularly against a cryptographic attack, the time before the RSA calculations - at the latest during the parameter transfer to the RSA routine - is executed. The exam when passing parameters can also be done in a simple manner by in addition to the transfer parameters also related redundant information, for example in the form of checksums is saved, and after the parameter transfer a saved one checksum with a new over the handed over Parameters calculated checksum is compared. Alternatively, at least important transfer parameters handed over several times and after handover on identity checked become.

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 Potenzierungsoperation 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.There are other types of attacks known to be spying on of the individual calculation steps to draw conclusions about key parameters to be kept secret to enable. In particular, the exponent formation in steps 36 and 42 is exposed to such attacks because in common implementations of Exponentiation operation the processor activity during the calculation process depends significantly on the bit sequence of the exponent. This processor activity can be caused by Measurement of power consumption (SPA = simple power analysis or DPA = differential power analysis) or other signals such as electrical field strengths spied become.

Zum Schutz gegen derartige Angriffe ist in der internationalen Patentveröffentlichung WO 01/48974 A1 vorgeschlagen worden, den Exponenten mit Rest durch eine Zufallszahl zu teilen und statt einer einzigen Potenzierungsoperation drei getrennte Potenzierungen vorzunehmen, wobei als Exponenten 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 vollständig in das vorliegende Dokument aufgenommen wird.To protect against such attacks is in the international patent publication WO 01/48974 A1 been suggested to exponent with remainder by a random number to share and three separate exponentiations instead of a single exponentiation operation undertake as the exponent the integer quotient, the Random number and the remainder determined during the division become. This method is described in detail in the cited patent publication described, the content of which is hereby fully included in this document is recorded.

Es ist ein besonderer Vorteil des Sicherungsverfahrens gemäß der vorliegenden Erfindung, daß sich dieses leicht mit dem auch als "exponent blinding" bezeichneten Verschleierungsverfahren gemäß der WO 01/48974 A1 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.It is a particular advantage of the Security procedure according to the present Invention that itself this easily with the also called "exponent blinding " Veiling process according to WO 01/48974 A1 can be combined, whereby especially those for the disguise procedure anyway required division also for the security procedure according to the present Can use invention. The inventive method can be implemented with very little additional effort.

3 zeigt die Verfahrensschritte eines Berechnungsmoduls 32', das gegenüber dem Berechnungsmodul 32 von 2 so abgewandelt ist, daß es zusätzlich die aus der WO 01/48974 A1 an sich bekannte Technik der Exponenten-Verschleierung anwendet. Hierzu wird zunächst in Schritt 46 eine Zufallszahl 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 dp1 und r·sp sowie den Rest dp2 aufzuteilen; es gilt dp = dp1·r·sp + dp2. Im Gegensatz zu dem aus WO 01/48974 A1 bekannten Verfahren wird in Schritt 48 also als Divisor nicht die Zufallszahl r, sondern der Wert r·sp verwendet. 3 shows the process steps of a calculation module 32 ' that compared to the calculation module 32 of 2 is modified in such a way that it additionally uses the technique of exponent concealment known from WO 01/48974 A1. For this purpose, a random number r with a length of, for example, 64 bits (8 bytes) is first selected in step 46. In step 48, a division with the remainder is carried out in order to divide the saved CRT exponent dp into the factors dp1 and rsp and the remainder dp2; dp = dp1rsp + dp2. In contrast to the method known from WO 01/48974 A1, it is not the random number r but the value r · sp that is used as the divisor in step 48.

In den Schritten 50 und 52 werden nun die ersten beiden Potenzierungsoperationen vorgenommen, indem der Basiswert x mod p zunächst mit der Zufallszahl r und das so erhaltene Zwischenergebnis y11 dann mit dem ganzzahligen Quotienten dp1 potenziert werden. Für das Ergebnis y12 gilt somit y12 = ((x mod p)^r)^dp1 = (x mod p)^(r·dp1). 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 steps 50 and 52, the first two potentiation operations are now carried out, in that the base value x mod p is first potentiated with the random number r and the intermediate result y11 thus obtained is then potentiated with the integer quotient dp1. For the result y12, y12 = ((x mod p) ^ r) ^ dp1 = (x mod p) ^ (rdp1). The security value sp was not included in steps 50 and 52, since the multiplication used to secure the CRT exponent dp is already in connection with the division 48 was undone.

In Schritt 54 erfolgt nun – analog zu Schritt 34 in 2 – eine Teilbarkeitsprüfung, um die Integrität der Schlüsselparameter sp und dp sicherzustellen. Im Gegensatz zu Schritt 34 in 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 gleichwertig. Der durch die Ausführung von Schritt 54 entstehende Berechnungsaufwand ist jedoch wegen des erheblich kürzeren Dividenden dp2 erheblich geringer als bei der Berechnung von Schritt 34 in 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 A1 den einzigen zusätzlichen Rechenaufwand dar.In step 54 - in analogy to step 34 in FIG 2 - a divisibility check to ensure the integrity of the key parameters sp and dp. In contrast to step 34 in 2 however, it is not the secured CRT exponent dp, but the division remainder dp2 that is divided by sp. Since dp2 differs from dp only by a multiple of r · sp - and thus by a multiple of sp -, the two checks are equivalent. The one through the However, due to the considerably shorter dividend dp2, the execution of calculation step 54 is considerably less than when calculating step 34 in 2 , In addition, the integer division result dp2 / sp is required in the following step 56. The division and divisibility check in step 54 represents the only additional computational effort compared to the known method according to WO 01/48974 A1.

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 y1 des Berechnungsmoduls 32' wird in Schritt 58 das Produkt y12·y13 bestimmt. Dieses Ergebnis ist identisch mit dem ersten Hilfswert y1 gemäß Schritt 36 von 2, weil gilt: y1 = y12·y13 = ((x mod p)^(r·dp1))·((x mod p)^(dp2/sp)) = (x mod p)^((r·dp1)+(dp2/sp)) = (x mod p)^(dp/sp) If dp2 is not a smooth multiple of sp, the method is terminated in step 54 with an error exit. Otherwise, a further intermediate value y13 is calculated in step 56 according to y13: = (x mod p) ^ (dp2 / sp). As a result y1 of the calculation module 32 ' the product y12 · y13 is determined in step 58. This result is identical to the first auxiliary value y1 according to step 36 of FIG 2 because: y1 = y12y13 = ((x mod p) ^ (rdp1)) ((x mod p) ^ (dp2 / sp)) = (x mod p) ^ ((rdp1) + (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 2 gezeigten Schritt 30. Darauf folgen als erster CRT-Berechnungszweig die Schritte des Berechnungsmoduls 32' gemäß 3, um den ersten Hilfswert y1 zu ermitteln. Zur Berechnung des zweiten Hilfswerts y2 wird ebenfalls das in 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 y1 und y2 wie in Schritt 44 von 2 berechnet.The entire RSA-CRT method in the particularly protected embodiment variant described here begins with an integrity check of the parameters p, q and pinv by the in 2 Step 30 shown. This is followed by the steps of the calculation module as the first CRT calculation branch 32 ' according to 3 to determine the first auxiliary value y1. To calculate the second auxiliary value y2, the in 3 shown methods used, of course, the key parameters p, sp and dp are replaced by q, sq and dq. The random number r can either be from the first run of the calculation module 32 ' be adopted or redetermined. The final result y is finally obtained by a combination of the two auxiliary values y1 and y2 as in step 44 of 2 calculated.

Das in 4 gezeigte Verfahren sieht einen zusätzlichen Überprüfungsschritt vor, in dem ein weiterer Verschleierungsparameter j herangezogen wird. Ein erster Berechnungsblock 60 entspricht ungefähr Schritt 30 in 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 fortgesetzt; andernfalls erfolgt ein Fehleraussprung.This in 4 The method shown provides an additional checking step in which a further obfuscation parameter j is used. A first calculation block 60 corresponds approximately to step 30 in 2 , In step 62, the obfuscation parameter j is selected as a random prime number with a length of, for example, 32 bits (4 bytes). The prime factors p and q are multiplied by the obfuscation parameter j in steps 64 and 66 to obtain obscured prime factors p 'and q', respectively. A test is performed in step 68 to check the integrity of the key parameters p, q and pinv. If p '· pinv = j mod q' holds, the process continues; otherwise an error jump occurs.

In einem zweiten Berechnungsblock 70 wird ein erster Hilfswert y1 gemäß der Formel y1 := (x^(dp/sp)) mod p' bestimmt. Der erste Hilfswert y1 entspricht im wesentlichen dem ersten Hilfswert der Ausführungsbeispiele von 2 und 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 2 oder wie im Berechnungsmodul 32' von 3. In beiden Fällen wird eine Teilbarkeitsprüfung durchgeführt, um die Integrität der Schlüsselparameter sp und dp sicherzustellen.In a second calculation block 70 a first auxiliary value y1 is determined according to the formula y1: = (x ^ (dp / sp)) mod p '. The first auxiliary value y1 essentially corresponds to the first auxiliary value of the exemplary embodiments of 2 and 3 , whereby however p 'instead of p is used for the modulo calculation. In detail, the calculation is carried out in different versions either as in the calculation module 32 of 2 or as in the calculation module 32 ' of 3 , In both cases, a divisibility check is carried out to ensure the integrity of the key parameters sp and dp.

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 2 oder analog der Darstellung von 3 ausgestaltet sein. Durch einen Teilbarkeitstest im dritten Berechnungsblock 72 wird die Integrität der Schlüsselparameter sq und dq überprüft.A third calculation block 72 corresponds to the second calculation block 70 with the difference that instead of dp, sp and p 'the values dq, sq and q' are used to calculate a second auxiliary value y2. Again, the third calculation block 72 either like the calculation module 38 in 2 or analogous to the representation of 3 be designed. Through a divisibility test in the third calculation block 72 the integrity of the key parameters sq and dq is checked.

Schritt 74 betrifft die Berechnung eines Zwischenergebnisses y' vermöge der Formel y' := [((y2 – y1)·pinv) mod q']·p + y1. Dies entspricht ungefähr Schritt 44 in 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 – (x^(dp/sp)) mod j)·pinv·p + (x^(dp/sp)) mod j ] mod j Step 74 relates to the calculation of an intermediate result y 'using the formula y': = [((y2 - y1) · pinv) mod q '] · p + y1. This corresponds approximately to step 44 in 2 , In step 76 there is a further test which relates the previous calculations to one another and detects faulty calculation processes. It is checked whether the following equality relationship modulo j applies: y 'mod j = [((x ^ (dq / sq)) mod j - (x ^ (dp / sp)) mod j) pinvp + (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äß 4 ein nochmals verbesserter Schutz gegen kryptographische Angriffe erreicht.If this equation is not met, the error is aborted. Otherwise, the method is completed in step 78 with the calculation of the end result y according to y: = y 'mod n, where n is the modulus with n = p * q. By further checking the course of the calculation in step 76, the method according to FIG 4 Protection against cryptographic attacks has been further improved.

Claims (15)

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.Method for the secure execution of a cryptographic calculation, in which a key ( 12 ) with at least two key parameters (p, q, pinv, sp, dp, sq, dq), characterized in that an integrity check ( 30 . 34 . 40 . 54 ) of the key ( 12 ) is carried out in order to prevent a cryptographic attack in which, by falsifying at least one first key parameter (p, q, pinv, sp, dp, sq, dq), conclusions about at least one second key parameter (p, q, pinv, sp, dp, sq, dq). 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.Method according to claim 1, characterized in that during the integrity check ( 30 . 34 . 40 . 54 ) it is determined whether the value of at least one key parameter (p, q, pinv, sp, dp, sq, dq) is in a range of permissible values that is interrupted several times. Verfahren nach Anspruch 1 oder Anspruch 2, dadurch gekennzeichnet, daß bei der Integritätsüberprüfung (30, 34, 40, 54) ermittelt wird, ob mindestens zwei Schlüsselparameter (p, q, pinv, sp, dp, sq, dq) in einer vorbestimmten Beziehung zueinander stehen.Method according to claim 1 or claim 2, characterized in that during the integrity check ( 30 . 34 . 40 . 54 ) it is determined whether at least two key parameters (p, q, pinv, sp, dp, sq, dq) are in a predetermined relationship to one another. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß die Integritätsüberprüfung (30, 34, 40, 54) eine multiplikative Operation, insbesondere eine Teilbarkeitsprüfung, beinhaltet.Method according to one of claims 1 to 3, characterized in that the integrity check ( 30 . 34 . 40 . 54 ) includes a multiplicative operation, in particular a divisibility check. Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, 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) unterscheidet, glatt durch den Sicherungswert (sp, sq) teilbar ist.Method according to one of claims 1 to 4, characterized in that during the integrity check ( 30 . 34 . 40 . 54 ) it is checked whether a key parameter (p, q, pinv, sp, dp, sq, dq) or a value that differs from the key parameter (p, q, pinv, sp, dp, sq, dq) by a multiple of one Fuse value (sp, sq) differs, is evenly divisible by the fuse value (sp, sq). 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üfumme verglichen wird.Method according to one of claims 1 to 5, characterized in that that at the integrity check one with the key parameters (p, q, pinv, sp, dp, sq, dq) stored checksum with one after the transfer the key parameter (p, q, pinv, sp, dp, sq, dq) newly calculated checksum is compared. 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.Method according to one of claims 1 to 6, characterized in that that for exam of integrity important transfer parameters handed over several times and after handover on identity checked become. Verfahren nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, daß die kryptographische Berechnung eine Entschlüsselung oder Signaturerzeugung bei einem RSA-Verfahren, insbesondere einem RSA-CRT-Verfahren, ist.Method according to one of claims 1 to 7, characterized in that that the cryptographic calculation a decryption or signature generation with an RSA method, in particular an RSA-CRT method. Verfahren nach Anspruch 8, dadurch gekennzeichnet, daß bei der kryptographischen Berechnung mindestens eine Potenzierungsoperation durchgeführt wird, und daß bei der Integritätsprüfung (30, 34, 40, 54) geprüft wird, ob der bei der Potenzierungsoperation verwendete Exponent glatt durch einen Sicherungswert (sp, sq) teilbar ist.Method according to Claim 8, characterized in that at least one exponentiation operation is carried out in the cryptographic calculation, and in that in the integrity check ( 30 . 34 . 40 . 54 ) it is checked whether the exponent used in the exponentiation operation is evenly divisible by a saving value (sp, sq). Verfahren nach Anspruch 9, dadurch gekennzeichnet, daß bei der kryptographischen Berechnung ein Exponenten-Verschleierungsverfahren zum Ausspähungsschutz angewendet wird.A method according to claim 9, characterized in that at an exponent obfuscation method in the cryptographic calculation for spying protection is applied. Verfahren nach einem der Ansprüche 8 bis 10, dadurch gekennzeichnet, daß die Primfaktoren (p, q) des RSA-Verfahrens mit einem Verschleierungsparameter (j) multipliziert werden, und daß die Fehlerfreiheit des Berechnungsverlaufs durch eine Gleichheitsüberprüfung modulo des Verschleierungsparameters (j) überprüft wird.Method according to one of claims 8 to 10, characterized in that that the Prime factors (p, q) of the RSA method with a concealment parameter (j) are multiplied, and that the accuracy of the calculation history through an equality check modulo of the obfuscation parameter (j) is checked. Verfahren zum Bestimmen eines Schlüssels für eine kryptographische 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.Method for determining a key for a cryptographic Calculation with at least two key parameters (p, q, pinv, sp, dp, sq, dq) which is for use in a method according to a of claims 1 to 9 is provided. 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.A method according to claim 12, characterized in that at least a key parameter (p, q, pinv, sp, dp, sq, dq) by multiplying one for the cryptographic Calculation needed Value with a backup value (sp, sq) is obtained. Computerprogrammprodukt, das Programmbefehle aufweist, um einen Prozessor zu veranlassen, ein Verfahren mit den Merkmalen eines der Ansprüche 1 bis 13 auszuführen.Computer program product having program instructions, to induce a processor, a method with the features one of the claims Execute 1 to 13. 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.Portable data carrier, in particular chip card or chip module that is used for execution of a method with the features of one of claims 1 to 13 is set up.
DE10250810A 2002-09-11 2002-10-31 Cryptographic computation method for running protected computation in smart cards produces a code with two or more code parameters Withdrawn DE10250810A1 (en)

Priority Applications (8)

Application Number Priority Date Filing Date Title
DE10250810A DE10250810A1 (en) 2002-09-11 2002-10-31 Cryptographic computation method for running protected computation in smart cards produces a code with two or more code parameters
AU2003271594A AU2003271594A1 (en) 2002-09-11 2003-09-09 Protected cryptographic calculation
DE50302617T DE50302617D1 (en) 2002-09-11 2003-09-09 PROTECTED CRYPTOGRAPHIC CALCULATION
AT03753399T ATE320125T1 (en) 2002-09-11 2003-09-09 PROTECTED CRYPTOGRAPHIC CALCULATION
US10/527,570 US7983414B2 (en) 2002-09-11 2003-09-09 Protected cryptographic calculation
EP03753399A EP1540880B1 (en) 2002-09-11 2003-09-09 Protected cryptographic calculation
PCT/EP2003/010015 WO2004032411A1 (en) 2002-09-11 2003-09-09 Protected cryptographic calculation
CN03821623XA CN1682484B (en) 2002-09-11 2003-09-09 Protected cryptographic calculation

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE10242061.0 2002-09-11
DE10242061 2002-09-11
DE10250810A DE10250810A1 (en) 2002-09-11 2002-10-31 Cryptographic computation method for running protected computation in smart cards produces a code with two or more code parameters

Publications (1)

Publication Number Publication Date
DE10250810A1 true DE10250810A1 (en) 2004-03-25

Family

ID=31895801

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10250810A Withdrawn DE10250810A1 (en) 2002-09-11 2002-10-31 Cryptographic computation method for running protected computation in smart cards produces a code with two or more code parameters

Country Status (1)

Country Link
DE (1) DE10250810A1 (en)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4924514A (en) * 1988-08-26 1990-05-08 International Business Machines Corporation Personal identification number processing using control vectors
GB2270446A (en) * 1992-09-04 1994-03-09 Ibm Uk Establishing a common cryptographic key at two cryptographic sites
DE68926005T2 (en) * 1988-08-11 1996-10-17 Ibm Secure key management using control vectors
EP0798892A2 (en) * 1996-03-29 1997-10-01 International Business Machines Corporation Creation and distribution of digital documents
US5675649A (en) * 1995-11-30 1997-10-07 Electronic Data Systems Corporation Process for cryptographic key generation and safekeeping
WO1998037525A1 (en) * 1997-02-19 1998-08-27 Gemplus S.C.A. Method for protecting a parent security key for authenticating user cards
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

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE68926005T2 (en) * 1988-08-11 1996-10-17 Ibm Secure key management using control vectors
US4924514A (en) * 1988-08-26 1990-05-08 International Business Machines Corporation Personal identification number processing using control vectors
GB2270446A (en) * 1992-09-04 1994-03-09 Ibm Uk Establishing a common cryptographic key at two cryptographic sites
US5675649A (en) * 1995-11-30 1997-10-07 Electronic Data Systems Corporation Process for cryptographic key generation and safekeeping
EP0798892A2 (en) * 1996-03-29 1997-10-01 International Business Machines Corporation Creation and distribution of digital documents
WO1998037525A1 (en) * 1997-02-19 1998-08-27 Gemplus S.C.A. Method for protecting a parent security key for authenticating user cards
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

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
ATENIESE,Giuseppe,et.al.: New Multiparty Authentication Services and Key Agreement Protocols. In: IEEE Journal on Selected Areas in Communications, Vol.18,No.4,April 2000, S.628-639 *
ATENIESE,Giuseppe,et.al.: New Multiparty Authentication Services and Key Agreement Protocols. In: IEEE Journal on Selected Areas in Communications, Vol.18,No.4,April 2000, S.628-639;
FUNG,W.,u.a.: Protection of keys against modification attack. In: Proceedings 2001. In: IEEE Symposium on Security and Privary, 2001, S.26-36 *
FUNG,W.,u.a.: Protection of keys against modification attack. In: Proceedings 2001. In: IEEE Symposium on Security and Privary, 2001, S.26-36;

Similar Documents

Publication Publication Date Title
DE69828787T2 (en) IMPROVED METHOD AND DEVICE FOR PROTECTING A PUBLIC KEY ENCRYPTION PROCEDURE AGAINST ATTACK AND TIME ATTRUSION ATTACKS
EP1262037A1 (en) Portable data carrier provided with access protection by dividing up codes
DE602005001351T2 (en) Distributed management of a certificate withdrawal list
EP1540880B1 (en) Protected cryptographic calculation
DE112007003061T5 (en) Mechanism for protecting a key
EP1891512B1 (en) Determination of a modular inverse
DE102005037598A1 (en) Method and system for backing up data
DE602004006628T2 (en) METHOD FOR THE SECURED EXECUTION OF AN RSA CRYPTOGRAPHIC ALGORITHM, AND COMPONENT ITEM.
DE112009000152T5 (en) Modular reduction using a special form of modulo
EP1442391B1 (en) Method and device for guaranteeing a calculation in a cryptographic algorithm
EP1454260B1 (en) Method and device for securing an exponentiation calculation by means of the chinese remainder theorem (crt)
DE102010010851A1 (en) Spying protection when executing an operation sequence in a portable data carrier
DE10250810A1 (en) Cryptographic computation method for running protected computation in smart cards produces a code with two or more code parameters
DE10328860A1 (en) Device and method for encrypting data
DE10042234C2 (en) Method and device for performing a modular exponentiation in a cryptographic processor
EP1596527B1 (en) Switching from boolean to arithmetic masking
DE102012015158A1 (en) Protected against spying protected cryptographic calculation
EP1760929B1 (en) Protected cryptographic method
EP1506473B1 (en) Modular inversion that is protected against espionage
DE10162496C5 (en) Method and device for securing a calculation in a cryptographic algorithm
DE10326057B4 (en) Anti-aliasing method for testing a natural number for primality
DE102021101697B3 (en) DATA PROCESSING DEVICE AND METHOD FOR PROCESSING SECRET DATA
DE102019003673B3 (en) Side channel safe implementation
DE60307981T2 (en) METHOD FOR GENERATING AND VERIFYING DIGITAL SIGNATURES
EP0944202A2 (en) Method and apparatus for thwarting a cryptographic attack

Legal Events

Date Code Title Description
OM8 Search report available as to paragraph 43 lit. 1 sentence 1 patent law
8139 Disposal/non-payment of the annual fee