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 PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07F—COIN-FREED OR LIKE APPARATUS
- G07F7/00—Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
- G07F7/08—Mechanisms 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/10—Mechanisms 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/1008—Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods 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/72—Methods 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/723—Modular exponentiation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/34—Payment 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/341—Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, 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/409—Device specific authentication in transaction processing
- G06Q20/4097—Device specific authentication in transaction processing using mutual authentication between devices and transaction partners
- G06Q20/40975—Device specific authentication in transaction processing using mutual authentication between devices and transaction partners using encryption therefor
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07F—COIN-FREED OR LIKE APPARATUS
- G07F7/00—Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
- G07F7/08—Mechanisms 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/0806—Details of the card
- G07F7/0813—Specific details related to card security
- G07F7/082—Features insuring the integrity of the data on or in the card
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/003—Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public 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/302—Public 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/72—Indexing scheme relating to groups G06F7/72 - G06F7/729
- G06F2207/7219—Countermeasures against side channel or fault attacks
- G06F2207/7271—Fault 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
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:
Das in
Der öffentliche Schlüssel
Das in
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
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
Im vorliegenden Ausführungsbeispiel
liegt der private Schlüssel
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
Beim Verfahrensaufruf wird ein Zeiger
auf den privaten Schlüssel
Um einen derartigen kryptographischen
Angriff zu verhindern, ist bei dem Verfahren von
Das Verfahren beginnt in Schritt
30 mit der Teilprüfung,
ob der im privaten Schlüssel
Im nun folgenden Berechnungsmodul
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
Ein zweites Berechnungsmodul
n dem das Verfahren abschließenden Berechnungsschritt
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.
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
In Schritt 54 erfolgt nun – analog
zu Schritt 34 in
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
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
Das in
In einem zweiten Berechnungsblock
Ein dritter Berechnungsblock
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
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äß
Claims (15)
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)
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 |
-
2002
- 2002-10-31 DE DE10250810A patent/DE10250810A1/en not_active Withdrawn
Patent Citations (7)
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)
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 |