DE69828787T2 - Verbessertes verfahren und vorrichtung zum schutz eines verschlüsselungsverfahrens mit öffentlichem schlüssel gegen angriffe mit zeitmessung und fehlereinspeisung - Google Patents
Verbessertes verfahren und vorrichtung zum schutz eines verschlüsselungsverfahrens mit öffentlichem schlüssel gegen angriffe mit zeitmessung und fehlereinspeisung Download PDFInfo
- Publication number
- DE69828787T2 DE69828787T2 DE69828787T DE69828787T DE69828787T2 DE 69828787 T2 DE69828787 T2 DE 69828787T2 DE 69828787 T DE69828787 T DE 69828787T DE 69828787 T DE69828787 T DE 69828787T DE 69828787 T2 DE69828787 T2 DE 69828787T2
- Authority
- DE
- Germany
- Prior art keywords
- mod
- processing
- phi
- attacks
- public key
- 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.)
- Expired - Lifetime
Links
Classifications
-
- 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
- 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
-
- 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/004—Countermeasures against attacks on cryptographic mechanisms for fault attacks
-
- 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/005—Countermeasures against attacks on cryptographic mechanisms for timing attacks
-
- 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/7223—Randomisation as countermeasure against side channel attacks
- G06F2207/7233—Masking, e.g. (A**e)+r mod n
- G06F2207/7247—Modulo masking, e.g. A**e mod (n*r)
-
- 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/7223—Randomisation as countermeasure against side channel attacks
- G06F2207/7257—Random modification not requiring correction
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/08—Randomization, e.g. dummy operations or using noise
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Credit Cards Or The Like (AREA)
Description
- GEBIET DER ERFINDUNG
- Die vorliegende Erfindung betrifft Techniken, Verfahren und ein Gerät zum Durchführen von zahlentheoretischen öffentlichen Schlüsselschemata (einschließlich Verschlüsselungsschemata, Signaturschemata, Identifikationsschemata, Schlüsselmanagementschemata, etc.), die gegen Timing- und Fehlerangriffe resistent sind.
- HINTERGRUND DER ERFINDUNG
- 1. Einführung
- Der einfachste Angriff auf ein gegebenes Kryptosystem ist es, gründlich nach dem Schlüssel zu suchen. Es gibt viele Varianten dieses Angriffs (bekannter Chiffretext, bekannter Klartext, gewählter Klartext, etc.), aber sie sind alle auf eine Prozedur begründet, die die Schlüssel nacheinander ausprobiert, bis man auf den richtigen Schlüssel trifft. Wenn der Schlüssel aus n zufälligen Bits besteht, ist die erwartete Laufzeit dieser Prozedur 2^(n – 1). Dieser Angriff kann leicht durch Verwenden eines ausreichend großen n (z.B. n > 100) vereitelt werden.
- Um Kryptosysteme mit großen Schlüsseln anzugreifen, versuchen Kryptoanalysten, mathematische oder statistische Schwächen zu finden, die die Größe des Suchraumes (vorzugsweise auf 1) reduzieren. Obwohl viele Techniken und Ergebnisse aus nationalen Sicherheitsgründen klassifiziert sind, ist es sicher, anzunehmen, dass es zunehmend schwierig ist, solche Schwächen in modernen Schemata zu finden, die von erfahrenen Kryptographen gestaltet und auf Hochgeschwindigkeitsmikroprozessoren implementiert wurden.
- Um starke Kryptosysteme erfolgreich anzugreifen, müssen Kryptoanalysten indirekte Techniken verwenden. Dies erfolgt am besten, wenn der Kryptoanalyst entweder in unmittelbarer physischer Nähe zu der kryptographischen Vorrichtung ist oder sie unter seiner vollständigen Kontrolle hat. Es wird von der krytographischen Vorrichtung angenommen, dass sie eine Blackbox ist, die einen bekannten Algorithmus und einen unbekannten Schlüssel enthält. Der Kryptoanalyst kann nicht diese Box öffnen und ihren Schlüssel lesen, aber er kann ihr Verhalten unter verschiedenen Umständen beobachten.
- Eines der am besten bekannten Beispiele eines solchen indirekten Angriffs ist TEMPEST, welches versucht, den Schlüssel durch Analysieren von elektromagnetischer Strahlung abzuleiten, die von der Blackbox während der Berechnung des Chiffretextes ausgeht. Techniken zum Anwenden und Verhindern solcher Angriffe wurden seit mehr als 50 Jahren umfassend studiert, und heutzutage ist dies ein gut verstandenes Problem.
- Zwei leistungsstarke indirekte Angriffe wurde jüngst entdeckt und veröffentlicht: Im Dezember 1995, P. Kocher, "Cryptanalysis of Diffie-Hellman, RSA, DSS, and Other Systems Using Timing Attacks", technical report, 12/7/95, beschrieb einen Timing-Angriff und im September 1996, D. Boneh, R. A. Demillo und R. J. Lipton, "On the Importance of Checking Computations", technical report, 9/25/96 (eine ausführliche Version erscheint in den Proceedings of Eurocrypt 97, Mai 1997) beschrieb einen Fehlerangriff. Beide Angriffe wurden ursprünglich gestaltet für und sind am erfolgreichsten gegen öffentliche Schlüsselschemata basierend auf zahlentheoretischen Prinzipien, wie RSA, aber sie wurden später auch auf klassische Kryptosysteme ausgedehnt (z.B. durch E. Biham und A. Shamir, "A New Cryptanalytic Attack on DES", technical report, 10/18/96. Eine ausführliche Version erscheint in den Proceedings of Crypto 97, August 1997).
- Solche Angriffe sind insbesondere nützlich, wenn das Schema auf einer Chipkarte implementiert ist, die von einer Bank, einem Computernetzwerk, einem Mobiltelefonbetreiber oder einem Zahl-TV-Sender an ihre/seine Kunden verteilt wird. Hacker haben üblicherweise nicht die finanziellen und technischen Mittel, die erforderlich sind, um die Inhalte der Schlüsselregister innerhalb der Chipkarte zu lesen, aber sie haben vollständige Kontrolle über die Eingabe/Ausgabe-, Takt-, die Rückstellungs- und Leistungsanschlüsse der Chipkarte. Sie können sorgfältig die Dauer der verschiedenen Operationen, wie viel Leistung sie verbrauchen, was passiert, wenn die Rechnung unterbrochen oder unter unnormalen Betriebsbedingungen ausgeführt wird, etc. messen. Da die Texts in der Privatsphäre der Wohnung des Kunden ausgeführt werden, kann der Kartenhersteller sie nicht verhindern oder selbst von ihrer Existenz Kenntnis erlangen.
- 2. Timing-Angriffe
- Timing-Angriffe basieren auf der Annahme, dass einige der Basisoperationen, die während der kryptographischen Berechnung ausgeführt werden, einen nicht konstanten Zeitbetrag erfordern, der von den tatsächlichen Werten abhängt, auf die eingewirkt wird. Dies impliziert, dass einige Informationen über diese unbekannten Zwischenwerte durch Messen der Länge der kryptographischen Berechnung frei werden. Wenn diese Zwischenwerte von bekannten Klartextbits und unbekannten Schlüsselbits mit einem bekannten kryptographischen Algorithmus berechnet werden, kann der Angreifer versuchen, die frei gewordenen Zwischenwerte zu verwenden, um den Schlüssel abzuleiten.
- Die Hauptschwierigkeit beim Ausführen dieses Angriffs ist, dass der Angreifer nur den Gesamtzeitbetrag kennt, der zum Ausführen der kryptographischen Berechnung erforderlich ist, aber nicht das Timing von individuellen Berechnungsschritten. Kocher's Hauptbeitrag ist beim Entwickeln einer effizienten Technik zum Handhaben dieser Schwierigkeit in vielen Fällen von praktischem Interesse.
- Um konkret zu sein, beschreiben wir Kocher's Angriff auf das RSA-Kryptosystem. Von der Blackbox wird angenommen, dass sie einen öffentlich bekannten Modulus n und einen geheimen Exponenten d enthält. Bei einer gegebenen Eingangszahl x führt die Box die modulare Exponentiation x^d(mod n) durch Verwenden der Standard-Quadrat-und-Multipliziertechnik aus. Bei dieser Beschreibung ist das Symbol "^" eine Exponentiation und ist das Symbol "_" ein Index. Das Ergebnis (das die Dekryption des Chiffretextes x, die Signatur der Mitteilung x oder die Antwort auf eine zufällige Identifikationsaufgabe x in Abhängigkeit von der Anwendung sein kann) wird ausgesendet, sobald es erzeugt wurde, und somit kann der Angreifer die Gesamtanzahl von Taktzyklen messen, die von allen den modularen Multiplikationen eingenommen wurden.
- Standardimplementierungen von modularen Multiplikationen erfordern einen nicht konstanten Zeitbetrag, da sie Multiplikationsschritte, die führende Nullen enthalten, und Reduktionsschritte, wenn das Ergebnis kleiner als der Modulus ist, überspringen. Der Angreifer wählt eine große Anzahl von zufälligen Eingaben x und misst die tatsächliche Timing-Verteilung T_0 der modularen Exponentiationsoperation, die von der Blackbox ausgeführt wird. Er misst dann für jedes x (durch Computersimulation unter Verwendung seiner Kenntnis darüber, wie das Schema implementiert ist) das genaue Timing einer anfänglichen Nur-Quadrat-Operation und separat das genaue Timing einer anfänglichen Quadrat-und-Multiplizieroperation. Das Ergebnis ist ein Paar von Timing-Verteilungen T_1 und T_2, die nicht identisch sind. Alle die kryptographischen Berechnungen, die in der Blackbox ausgeführt werden, verwenden denselben Exponenten d, und sein erstes Bit bestimmt, welche der zwei berechneten Verteilungen T_1 und T_2 der Anfangsteil des experimentell berechneten T_0 ist. Von dem Timing der verbleibenden Schritte der Berechnungen kann angenommen werden, dass es eine zufällige Variable R ist, die normalverteilt und unkorreliert mit entweder T_1 oder T_2 ist. Da T_0 entweder T_1 + R oder T_2 + R ist, kann der Angreifer entscheiden, welcher Fall wahrscheinlicher ist, durch Herausfinden, welche der zwei Verteilungen T_0-T_1 und T_0-T_2 eine geringere Varianz hat.
- Nach dem Finden des ersten Bits des geheimen Exponenten d kennt der Angreifer die tatsächlichen Eingaben zum zweiten Berechnungsschritt, und somit kann er dieselbe Technik anwenden (mit genau modifizierten experimentiellen und simulierten Timing-Verteilungen T_0, T_1 und T_2), um das zweite Bit von d zu finden. Durch Wiederholen dieser Prozedur ungefähr 1000 mal, kann er alle die Bits von d berechnen und somit das RSA-Schema knacken.
- Ein ähnlicher Timing-Angriff kann durch ein krypthographisches Schema angewandt werden, bei welchem die Blackbox alle ihre Eingaben x_1, x_2, ... auf dasselbe d Modulo mit geheimer Leistung desselben bekannten n anhebt (das entweder eine Primzahl oder eine zusammengesetzte Zahl sein kann). Zum Beispiel einigen sich bei einer der Varianten des Diffie-Hellman-Schlüsselverteilungsschemas alle die Anwender auf einen Primzahlmodulus n und auf einen Generator g der multiplikativen Gruppe Z^*_n.
- Jeder Anwender wählt einen zufälligen geheimen Exponenten d und berechnet y = g^d(mod n) als seinen öffentlichen Schlüssel. Um einen gemeinsamen geheimen Schlüssel mit einem anderen Anwender einzurichten, schickt der erste Anwender seinen öffentlichen Schlüssel y = g^d(mod n) und empfängt einen ähnlich berechneten öffentlichen Schlüssel x = g^e(mod n) von dem anderen Anwender. Ihr gemeinsamer kryptographischer Schlüssel ist z = g^(d*e)(mod n), den der erste Anwender durch Evaluieren von x^d(mod n) berechnet. Wenn der erste Anwender mit einigen Parteien kommuniziert, hebt er einige bekannte Werte x_1, x_2, ... auf dasselbe d Modulo mit geheimer Leistung desselben bekannten Modulus n. Durch Messen des Timings von ausreichend vielen solchen Berechnungen kann der Angreifer d bestimmen und somit alle die kryptographischen Schlüssel z_1, z_2, ... finden, die von jenem Anwender eingesetzt werden.
- Der Timing-Angriff muss modifiziert werden, wenn die Berechnung von x^d(mod n) für einen zusammengesetzten Modulus n = p*q durch Berechnen von x^d(mod p), x^d(mod q) und Kombinieren der Ergebnisse durch das Chinesen-Rest-Theorem (CRT) ausgeführt wird.
- Dies ist eine übliche Weise, die Berechnung ungefähr 4 mal schneller zu machen, wenn die Faktorisierung von n bekannt ist. Das Problem für den Angreifer ist, dass er die geheimen Faktoren p und q des öffentlichen Modulus n nicht kennt und somit die Timing-Verteilungen T_1 und T_2 nicht simulieren kann. Kocher's Lösung ist, sich auf den ersten Schritt der CRT-Berechnung zu konzentrieren, in welcher die Eingabe x Modulo p reduziert wird. Wenn x kleiner als p ist, ist keine modulare Reduktion erforderlich, und somit ist die Berechnung deutlich schneller, als wenn x größer als oder gleich zu p ist. Der Angreifer präsentiert somit der Blackbox eine große Anzahl von Eingaben x, die sehr nahe aneinander liegen, und verwendet die mittlere Zeit von solchen Berechnungen, um zu entscheiden, ob diese x über oder unter p sind. Eine Entscheidungsprozedur für diese Frage kann wiederholt verwendet werden, um den genauen Wert p durch binäre Suche zu finden.
- Kurz nach der Entdeckung dieses Angriffs versuchten Forscher, Implementierungen zu entwickeln, die immun dagegen sind. Die einfachste Idee ist, sicher zu stellen, dass alle die kryptographischen Operationen genau denselben Zeitbetrag einnehmen, ungeachtet der Werte der Klartexte und Schlüssel. Jedoch ist es überraschenderweise aus den folgenden Gründen schwierig, dies zu erzielen:
- (a) In vielen Fällen will der Implementierer denselben Algorithmus als Software auf verschiedenen (und vielleicht unbekannten) Maschinen betreiben. Eine Implementierung, die auf einem Mikroprozessor zeitkonstant ist, kann auf einem anderen Mikroprozessor oder selbst auf einer verbesserten Version desselben Mikroprozessors zeitvariabel sein.
- (b) Auf einer Multitasking-Maschine kann die Laufzeit von der Menge an freiem Speicher, der Cache-Trefferrate, der Anzahl von externen Interrupts, etc. abhängen. Dies kann eine zeitkonstante Implementierung unter einem Satz von Umständen in eine zeitvariable Implementierung unter einem anderen Satz von Umständen ändern.
- (c) Wenn der Implementierer versucht, einen Echtzeittakt zu verwenden, um alle die Berechnungen zu zwingen, denselben Zeitbetrag einzunehmen, muss er alle von ihnen auf ihre ungünstigsten Fälle abbremsen. Da er nicht jegliche eingabenunabhängige Optimierungstechnik verwenden kann, ist es für die Implementierung wahrscheinlich, unakzeptabel langsam zu sein.
- Die beste Schutztechnik, die soweit gegen Kocher's Timing-Angriff auf modulare Exponentiation vorgeschlagen wurde, ist es, jede Eingabe x durch eine modifizierte Version y = x*r(mod n) zu ersetzen, wobei r eine geheime Zufallszahl zwischen 1 und n – 1 ist. Um x^d(mod n) zu berechnen, berechnet das Programm y^d(mod n) und r^d(mod n) und verwendet dann die multiplikative Eigenschaft von mudularer Exponentiation, um x^d(mod n) als y^d/r^d(mod n) zu berechnen. Da sowohl y als auch r unbekannt ist, kann der Angreifer diese Berechnungen nicht simulieren, um die nachfolgenden Bits von d bei der Nicht-CRT-Berechnung zu finden, und kann nicht eine binäre Suche in der CRT-Version der Berechnung ausführen. Unglücklicherweise verdoppelt diese Randomisierungstechnik die erwartete Laufzeit der Berechnung.
- 3. Fehlerangriffe
- Fehlerangriffe versuchen, Fehler in die kryptographische Berechnung einzuführen und den Schlüssel durch Analysieren der mathematischen und statistischen Eigenschaften der irrtümlicherweise berechneten Ergebnisse zu identifizieren. Unter den vielen Techniken, die soweit zum Einführen solcher Fehler vorgeschlagen wurden, sind die Verwendung von Ionisierungsstrahlung, unüblichen Betriebstemperaturen, Leistungs- und Taktstörungen und laserbasierende Chipmikrobehandlungen. Einige der Angriffe sind differential (d.h., sie führen sowohl eine richtige als auch eine irrtümliche Berechnung mit derselben Eingabe aus und analysieren ihre Differenzen), während andere Angriffe nur die irrtümlichen Ergebnisse verwenden.
- Der originale Fehlerangriff auf öffentliche Schlüssel-Kryptosysteme wurde in Boneh, Demillo und Lipton beschrieben und erforderte mehrere kryptographische Berechnungen. Wir beschreiben nun eine verbesserte Version dieses Angriffs, beruhend auf Arjen Lenstra, was eine einzige fehlerhafte Berechnung erfordert. Wir nehmen an, dass die Blackbox das RSA-Schema verwendet, um eine gegebene Mitteilung x zu signieren. Die Berechnung von x^d(mod n) wird mit dem CRT-Verfahren durch zuerst Reduzieren von x Modulo p und q, um x_1 und x_2 zu erhalten, dann Berechnen von y_1 = x_1^d(mod p) und y_2 = x_2^d(mod q) und schließlich Kombinieren von y_1 und y_2 ausgeführt, um die Signatur y(mod n) mit dem CRT-Verfahren zu erhalten. Wir nehmen an, dass ein einzelner Fehler zu einer zufälligen Zeit während dieser Berechnung durch Anwenden eines milden physikalischen Drucks auf die Blackbox eingeführt wird. Ohne Verlust der Allgemeinheit können wir annehmen, dass der Fehler während der Berechnung von x_1^d(mod p) eingeführt wurde und somit, statt das korrekte y_1 zu erhalten, die Box ein irrtümliches y'_1 berechnete. Wenn y'_1 und y_2 durch das CRT-Verfahren kombiniert werden, berechnet die Box eine unrichtige Signatur y', die dem Angreifer bereitgestellt wird.
- Die Hauptbeobachtung ist, dass der Angreifer den Signaturverifikationsexponenten e kennt, für welchen y^e = x(mod n). Aufgrund des Fehlers ist y'^e-x Nicht-Null mod p, aber Null mod q, und ist somit ein Mehrfaches von q, welches nicht ein Mehrfaches von n ist. Der Angreifer kann somit n durch Berechnen des größten gemeinsamen Divisors von y'^e-x(mod n) und n faktorisieren, was eine leichte Berechnung ist.
- Um kryptographische Schemata gegen Fehlerangriffe zu schützen, schlugen Boneh, Demillo und Lipton vor, dass jede Berechnung zweimal ausgeführt werden sollte (vorzugsweise durch verschiedene Algorithmen). Wenn jegliche Diskrepanz zwischen den zwei Ergebnissen gefunden wird, sollte die Box überhaupt nichts ausgeben. Dies stellt einen starken Schutz vor zufälligen Fehlern bereit (für welche es unwahrscheinlich ist, die zwei Berechnungen in einer identischen Weise zu beeinträchtigen), verlangsamt aber die Berechnung um einen Faktor 2. Eine solche Verlangsamung ist teilweise in Chipkartenimplementierungen von öffentliche Schlüsselschemata bemerkbar, die in erster Linie ziemlich langsam sind.
- Von Kocher P C: "TIMING ATTACKS ON IMPLEMENTATIONS OF DIFFIE-HELLMANN, RSA, DSS, UND OTHER SYSTEMS" ADVANCES IN CRYPTOLOGIY – CRYPTO '96, 16TH. ANNUAL INTERNATIONAL CRYPTOLOGY CONFERENCE SANTA BARBARA, AUG. 18–22, 1996, PROCEEDINGS, NR. KONF. 16, 18. August 1996, Seiten 104–113, XP000626590 KOBLITZ N (ED) BERLIN (DE), ist ein Verfahren zum Implementieren von öffentlichen Schlüsselschemata bekannt, enthaltend die Nicht-CRT-Form der modularen Exponentiationsoperation x^d(mod n), einschließlich Addieren einer geheimen ganzen Zahl i mal phi(n), wobei phi Euler's Totientenfunktion von dem Modulus n ist. Wenn ein weiteres Maskieren erforderlich ist, kann ein zufälliges Mehrfaches von phi(n) zu dem Exponenten vor jeder modularen Exponentiation addiert werden.
- ÜBERBLICK ÜBER DIE ERFINDUNG
- Die vorliegende Erfindung betrifft ein Verfahren und Gerät zum Bereitstellen von Schutztechniken für öffentliche Schlüsselschemata, die einen starken Schutz gegen die beschriebenen Timing- und Fehlerangriffe bereitstellen, ohne die doppelte Verlangsamung zu verschulden, die durch die früher bekannten Schutztechniken erforderlich war.
- Die erste Technik ist gestaltet, um Nicht-CRT-Implementierungen von öffentlichen Schlüsselschemata gegen Timing-Angriffe zu schützen. Sie ist bei dem RSA-Kryptosystem, SRA-Digitalsignaturschema, Diffie-Hellman-Schlüsselverteilungsschema und jeglichem anderen zahlentheoretischen Schema anwendbar, bei welchem die Blackbox eine bekannte Eingabe x auf einen festen geheimen Exponenten d Modulo ein öffentliches n anhebt, dessen Faktorisierung der Blackbox bekannt ist.
- Die zweite Technik ist gestaltet, um CRT-basierende Implementierungen von öffentlichen Schlüsselschemata vor sowohl Timing- als auch Fehlerangriffen zu schützen. Das Hauptproblem ist, wie die Richtigkeit der Berechnungen von x_1^d(mod p) und x_2^d(mod q), ohne sie ein zweites Mal zu wiederholen, zu verifizieren ist (oder jeden Schritt separat zu verifizieren, was wiederum die Laufzeit verdoppelt). Die Erfindung schafft eine neue effizientere Fehlerdetektionstechnik für solche zahlentheoretischen Berechnungen.
- KURZE BESCHREIBUNG DER FIGUREN
- Die
1 zeigt schematisch das Verfahren und Gerät der Erfindung, wie es für eine erste Technik zutrifft, gestaltet, um Nicht-CRT-Implementierungen eines öffentlichen Schlüsselschemas gegen Timing-Angriffe zu schützen. - Die
2 zeigt schematisch das Verfahren und Gerät der Erfindung, wie es für eine zweite Technik zutrifft, gestaltet, um CRT-basierende Implementierungen eines öffentlichen Schlüsselschemas gegen sowohl Timing- als auch Fehlerangriffe zu schützen. - GENAUE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSBEISPIELE
- Unter Bezugnahme nun auf die Zeichnungen werden bevorzugte Ausführungsbeispiele nun im Detail beschrieben. Da öffentliche Schlüsselschemata und Computerhardware- und -softwareimplementierung Fachleuten gut bekannt sind, wird keinen Beschreibung derselben für ein vollständiges, präzises und exaktes Verständnis der vorliegenden Erfindung für erforderlich gehalten.
- Wir beschreiben nun zwei neue Schutztechniken für öffentliche Schlüsselschemata, die einen starken Schutz gegen die beschriebenen Timing- und Fehlerangriffe bereitstellen, ohne die doppelte Verlangsamung zu verursachen, die durch die früher bekannten Schutztechniken erforderlich gemacht wurden.
- Die erste Technik, die in der
1 gezeigt ist, ist gestaltet, um Nicht-CRT-Implementierungen von öffentlichen Schlüsselschemata gegen Timing-Angriffe zu schützen. Sie ist anwendbar bei dem RSA-Kryptosystem, RSA-Digitalsignaturschema, dem Diffie-Hellman-Schlüsselverteilungsschema und jeglichem anderen zahlentheoretischen Schema, bei welchem die Blackbox10 eine bekannte Eingabe x auf einen fixen geheimen Exponenten d Modulo einem öffentlichen n anhebt, dessen Faktorisierung der Blackbox bekannt ist. - Die Hauptbeobachtung ist, dass für jedes n eine Zahl t = phi(n) existiert, Kasten
12 , so dass für jegliches x zwischen 1 und n, welches relativ zu n prim ist, x^t = 1(mod n). Dieses phi wird Euler's Totientenfunktion genannt: Wenn n eine Primzahl ist, phi(n) = n – 1, und wenn n = p*q, phi(n) = (p – 1)*(q – 1). Die Implementierung kann somit die Berechnung von x^d(mod n) durch die Berechnung von x^(d + i*t)(mod n) für jegliche ganze Zahl i ersetzen, ohne die berechneten Ergebnisse zu ändern, da
x^(d + it) = (x^d)*(x^t)^i = (x^d)*1^i = x^d(mod n), Kasten14 . - Diese Gleichheit kann als wahr gezeigt werden, selbst wenn x nicht relativ prim zu n ist, jedoch ist es in der Praxis unwahrscheinlich, dass dieser Fall auftaucht. Zu beachten ist auch, dass jegliches integrale Mehrfache von GCD((p – 1), (q – 1)) phi(n) bei unserer Wahl von t ersetzen kann.
- Die vorgeschlagene Schutztechnik für öffentliche Schlüsselschemata basierend auf der modularen Exponentiationsoperation ist, ein neues geheimes i bei jeder Berechnung zu wählen und die Berechnung von x^d(mod n) durch die Berechnung von x^(d + i*t)(mod n) zu ersetzen, wobei t der vorberechnete Wert von phi(n) ist. Da die Bits von diesen (d + i*t) für die verschiedenen i verschieden sind, verwendet jede Exponentiation eine unterschiedliche Sequenz von Quadrat-und-Multiplizierschritten, und somit kann der Angreifer nicht Kocher's Timing-Angriff verwenden, um die Timing-Verteilung von mehereren Exponentiationen zu analysieren, selbst wenn alle von ihnen die d-te Leistung ihrer Eingaben berechnet.
- Die Effizienz dieser Technik basiert auf der Tatsache, dass t immer kleiner ist als n und das randomisierende Element i als eine relativ kleine Zahl gewählt werden kann. Wenn n und b 1024-Bit-Zahlen sind und i eine zufällige 32-Bit-Zahl ist (was die gegenwärtig empfohlenen Größen sind), ist d + i*t eine 1056-Bit-Zahl. Der Prozess des Anhebens der Eingabe x auf die 1056-Bit-Leistung d + i*t erfordert nur 3% mehr Quadrat-und-Multiplizieroperationen als der Prozess des Anhebens von x auf die ursprüngliche 1024-Bit-Leistung d. Dies ist viel besser als die Alternative Randomisiertechnik, die früher beschrieben wurde, was die Laufzeit verdoppelt.
- Die zweite Technik, die in der
2 gezeigt ist, ist gestaltet, um CRT-basierende Implementierungen von öffentlichen Schlüsselschemata vor sowohl Timing- als auch Fehlerangriffen zu schützen. Das Hauptproblem ist, wie die Richtigkeit der Berechnungen von x_1^d(mod p) und x_2^d(mod q) zu verifizieren ist, ohne sie ein zweites Mal zu wiederholen (oder jeden Schritt separat zu verifizieren, was wiederum die Laufzeit verdoppelt). Wir beschreiben nun eine neue Fehlerdetektionstechnik für solche zahlentheoretischen Berechnungen, die viel effizienter ist. - Bei jeder Berechnung wählt die Blackbox
20 eine neue zufällige ganze Zahl j (die empfohlene Größe von j ist ebenfalls 32-Bit), Kasten22 . Statt x_1 = x(mod p) und x_2 = x(mod q) gefolgt von y_1 = x_1^d(mod p) und y_2 = x_2^d(mod q) zu berechnen, berechnet der Kasten v_1 = x(mod j*p), v_2 = x(mod j*q), d_1 = d(mod phi(j*p)), und d_2 = d(mod phi(j*q)), Kasten24 , gefolgt von w_1 = v_1^d_1(mod j*p) und w_2 = v_2^d_2(mod j*q), Kasten26 . - Die Hauptbeobachtung ist, dass es von w_1 und w_2 einfach ist, y_1 und y_2 durch weitere Reduktionen (nämlich y_1 = w_1(mod p) und y_2 = w_2(mod q), Kasten
28 , zu erhalten, und es somit leicht ist, das Endergebnis y durch das Chinesen-Rest-Theorem zu berechnen, Kasten30 . Jedoch können wir auch den Wert von x^d(mod j) auf zwei verschiedene Weisen erhalten: Wie w_1(mod j) und wie w_2(mod j), Kasten32 . Wir können nun die Gleichheit von diesen zwei Werten (die erhalten wurden von den zwei Hälften der Berechnung und gemischt mit dem Erlangen von y_1, y_2 in einer sehr strengen Weise), Kasten34 , als einen Test der Korrektheit verwenden: Bei einer fehlerlosen Berechnung werden die zwei Werte immer dieselben sein, während bei einer fehlerhaften Berechnung (mit zufälligen Fehlern) die Möglichkeit, dass die zwei Werte dieselben sein werden, ungefähr 1/(2^32) sein wird, siehe Entscheidungskasten36 , worin ein Abbruch für eine fehlerhafte Berechnung befohlen ist. Diese Fehlerdetektionstechnik ist somit ausreichend für jegliche Anwendung, bei welcher die Gesamtanzahl von modularen Exponentiationen signifikant kleiner als 2^32 (über 4 Milliarden) ist. - Die Gesamtzeitkomplexität dieser Implementierung ist um wenige Prozent höher als die Zeitkomplexität von Standardimplementierungen, da die Exponentiationen Modulo 512 + 32 = 544 Bit Moduli j*p und j*q statt 512 Bit Moduli p und q ausgeführt werden. Jedoch ist dies wesentlich schneller, als jede Exponentiation ein zweites Mal zu wiederholen, um ihre Korrektheit zu verifizieren.
- Ein zusätzlicher Vorteil dieser Randomisierungstechnik ist, dass sie auch einen Schutz vor Timing-Angriffen zu keinen extra Kosten bereitstellt. Kocher's Originalangriff auf CRT-basierende Implementierungen konzentriert sich auf die initiale modulare Reduktion (mod p) und verwendet eine binäre Suche, um zunehmend genaue Annäherungen von p von mehrfachen Berechnungen zu finden.
- Durch Verwenden unserer vorgeschlagenen Technik verwendet jede Berechnung einen unterschiedlichen Modulus j*p bei ihrem anfänglichen Reduktionsschritt, und somit kann der Angreifer sein Wissen des Modulus durch Analysieren einer großen Anzahl von Exponentiationen nicht verfeinern.
- Es gibt viele Optimierungen und Variationen dieser Technik, die für einen Fachmann offensichtlich sein sollten. Zum Beispiel ist es möglich, zusätzliche Beschränkungen (wie Primalität) nach Wahl des kleinen Multiplizierers j aufzuerlegen, was es etwas weniger wahrscheinlich macht, dass fehlerhafte Berechnungen undetektiert bleiben. Eine andere Modifikation der Technik ist es, jede Hälfte der Berechnung durch ein separates Neuberechnungsmodulo eines unterschiedlichen kleinen Modulus zu testen, statt durch Vergleichen der zwei Ergebnismodulo eines bekannten kleinen Modulus. Genauer kann die Implementierung zwei kleine Zahlen j_1 und j_2 wählen und dann die folgenden Werte berechnen:
v_1 = x(mod j_1*), v_2 = x(mod j_2*q), v_3 = x(mod j_1), v_4 = x(mod j_2);
d_1 = d(mod phi(j_1 *p)), d_2 = d(mod phi(j_2*q)), d_3 = d(mod phi(j_1)), d_4 = d(mod phi(j_2);
w_1 = v_1^d_1(mod j_1*p), w_2 = v_2^d_2(mod j_2*P), w_3 = v_3^d_3(mod j_1), w_4 = v_4^d_4(mod j_2). - Um die Richtigkeit der Berechnung zu prüfen, verifiziert die Blackbox jenes w_1 = w_3(mod j_1) und w_2 = w_4(mod j_2). Die einzigen teueren Operationen sind die Berechnung von w_1 und w_2, da die kleinen Exponentiationen bei der Berechnung von w_3 und w_4 sehr effizient sind. Diese Neuberechnungstechnik ist langsamer als die ursprüngliche Vergleichstechnik, kann aber geringfügig mehr beständig gegen bestimmte Typen von nicht zufälligen Fehlern sein.
- Obwohl die Erfindung bezüglich bestimmten Ausführungsbeispielen davon beschrieben wurde, wird es von einem Fachmann begrüßt, dass Variationen und Modifikationen durchgeführt werden können, ohne vom Umfang der Erfindung abzuweichen.
- BIBLIOGRAPHIE
-
- 1. E. Biham und A. Shamir, "A New Cryptanalytic Attack on DES", technical report, 10/18/96. Eine ausführliche Version erscheint in den Proceedings of Crypto 97, August 1997.
- 2. D. Boneh, R. A. Demillo und R. J. Lipton, "On the Importance of Checking Computations", technical report, 9/25/96. Eine ausführliche Version erscheint in den Proceedings of Eurocrypt 97, Mai 1997.
- 3. P. Kocher, "Cryptanalysis of Diffie-Hellman, RSA, DSS, and Other Systems Using Timing Attacks", technical report, 12/7/95.
Claims (16)
- Verfahren zum Implementieren öffentlicher Schlüsselschemata, die die CRT-Form der modularen Exponentiationsoperation x^d(mod n) enthalten, wobei n = p*q, zu dem Zweck, um sie gegen Timing- und Fehlerangriffe resistenter zu machen, dadurch gekennzeichnet, dass die Schritte enthalten sind: a. Auswählen einer geheimen ganzen Zahl j; b. Verarbeiten von v_1 = x(mod j*p), v_2 = x(mod j*q), d_1 = d(mod phi(j*p)), d_2 = d(mod phi(j*q)), w_1 = v_1^d_1(mod j*p), und w_2 = v_2^d_2(mod j*q); c. Abbrechen der Verarbeitung, wenn w_1 und w_2 nicht gleich Modulo j sind; d. andernfalls Verarbeiten von y_1 = w_1(mod p), y_2 = w_2(mod q), und ihr Kombinieren durch das Chinese Remainder Theorem, um das Ergebnis von x^d(mod n) zu erhalten.
- Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass j als eine Primzahl ausgewählt ist.
- Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass j als eine Zufallszahl in dem Bereich von [0, (2^k) – 1] für ein k ausgewählt ist.
- Verfahren nach Anspruch 3, dadurch gekennzeichnet, dass k = 32.
- Verfahren zum Implementieren öffentlicher Schlüsselschemata, die die CRT-Form der modularen Exponentiationsoperation x^d(mod n) enthalten, wobei n = p*q, zu dem Zweck, um sie gegen Timing- und Fehlerangriffe resistenter zu machen, dadurch gekennzeichnet, dass die Schritte enthalten sind: a. Auswählen von zwei geheimen ganzen Zahlen j_1 and j_2; b. Verarbeiten von v_1 = x(mod j_1*p), v_2 = x(mod j_2*q), d_1 = d(mod phi(j_1*p)), d_2 = d(mod phi(j_2*q)), w_1 = v_1^d_1(mod j_1*p), und w_2 = v_2^d_2(mod j_2*q); c. Verarbeiten von v_3 = x(mod j_1), v_4 = x(mod j_2), d_3 = d(mod j_1), d_4 = d(mod j_2), w_3 = v_3^d_3(mod j_1), und w_4 = v_4^d_4(mod j_2); d. Abbrechen der Verarbeitung, wenn w_3 nicht gleich w_1 modulo j_1 ist, oder wenn w_4 nicht gleich w_2 modulo j_2 ist; e. andernfalls Verarbeiten von y_1 = w_1(mod p), y_2 = w_2(mod q), und ihr Kombinieren durch das Chinese Remainder Theorem, um das Ergebnis von x^d(mod n) zu erhalten.
- Verfahren nach Anspruch 5, dadurch gekennzeichnet, dass j_1 und j_2 Primzahlen sind.
- Verfahren nach Anspruch 5, dadurch gekennzeichnet, dass j_1 und j_2 als Zufallszahlen in dem Bereich [0, (2^k) – 1] für ein k ausgewählt sind.
- Verfahren nach Anspruch 7, dadurch gekennzeichnet, dass k = 32.
- Vorrichtung zum Implementieren von öffentlichen Schlüsselschemata, die die CRT-Form der modularen Exponentiationsoperation x^d(mod n) enthalten, wobei n = p*q, zu dem Zweck, um sie gegen Timing- und Fehlerangriffe resistenter zu machen, dadurch gekennzeichnet, dass enthalten sind: a. Einrichtungen zum Auswählen einer geheimen ganzen Zahl j; b. Einrichtungen zum Verarbeiten von v_1 = x(mod j*p), v_2 = x(mod j*q), d_1 = d(mod phi(j*p)), d_2 = d(mod phi(j*q)), w_1 = v_1^d_1(mod j*p), und w_2 = v_2^d_2(mod j*q); c. Einrichtungen zum Abbrechen der Verarbeitung, wenn w_1 und w_2 nicht gleich Modulo j sind; d. Einrichtungen zum andernfalls Verarbeiten von y_1 = w_1(mod p), y_2 = w_2(mod q), und ihr Kombinieren durch das Chinese Remainder Theorem, um das Ergebnis von x^d(mod n) zu erhalten.
- Vorrichtung nach Anspruch 9, dadurch gekennzeichnet, dass j als eine Primzahl ausgewählt ist.
- Vorrichtung nach Anspruch 9, dadurch gekennzeichnet, dass j als eine Zufallszahl in dem Bereich [0, (2^k) – 1] für ein k ausgewählt ist.
- Vorrichtung nach Anspruch 11, dadurch gekennzeichnet, dass k = 32.
- Vorrichtung zum Implementieren von öffentlichen Schlüsselschemata, die die CRT-Form der modularen Exponentiationsoperation x^d(mod n) enthalten, wobei n = p*q, zu dem Zweck, um sie gegen Timing- und Fehlerangriffe resistenter zu machen, dadurch gekennzeichnet, dass enthalten sind: a. Einrichtungen zum Auswählen von zwei geheimen ganzen Zahlen j_1 and j_2; b. Einrichtungen zum Verarbeiten von v_1 = x(mod j_1*p), v_2 = x(mod j_2*q), d_1 = d(mod phi(j_1*p)), d_2 = d(mod phi(j_2*q)), w_1 = v_1^d_1(mod j_1*p), und w_2 = v_2^d_2(mod j_2*q); c. Einrichtungen zum Verarbeiten von v_3 = x(mod j_1), v_4 = x(mod j_2), d_3 = d(mod j_1), d_4 = d(mod j_2), w_3 = v_3^d_3(mod j_1), und w_4 = v_4^d_4(mod j_2); d. Einrichtungen zum Abbrechen der Verarbeitung, wenn w_3 nicht gleich w_1 modulo j_1 ist, oder wenn w_4 nicht gleich w_2 modulo j_2 ist; e. Einrichtungen zum andernfalls Verarbeiten von y_1 = w_1(mod p), y_2 = w_2(mod q), and ihr Kombinieren durch das Chinese Remainder Theorem, um das Ergebnis von x^d(mod n) zu erhalten.
- Vorrichtung nach Anspruch 13, dadurch gekennzeichnet, dass j_1 und j_2 Primzahlen sind.
- Vorrichtung nach Anspruch 13, dadurch gekennzeichnet, dass j_1 und j_2 als Zufallszahlen in dem Bereich [0, (2^k) – 1] für ein k ausgewählt sind.
- Vorrichtung nach Anspruch 15, dadurch gekennzeichnet, dass k = 32.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/854,464 US5991415A (en) | 1997-05-12 | 1997-05-12 | Method and apparatus for protecting public key schemes from timing and fault attacks |
US854464 | 1997-05-12 | ||
PCT/US1998/009593 WO1998052319A1 (en) | 1997-05-12 | 1998-05-12 | Improved method and apparatus for protecting public key schemes from timing and fault attacks |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69828787D1 DE69828787D1 (de) | 2005-03-03 |
DE69828787T2 true DE69828787T2 (de) | 2006-04-06 |
Family
ID=25318766
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69828787T Expired - Lifetime DE69828787T2 (de) | 1997-05-12 | 1998-05-12 | Verbessertes verfahren und vorrichtung zum schutz eines verschlüsselungsverfahrens mit öffentlichem schlüssel gegen angriffe mit zeitmessung und fehlereinspeisung |
Country Status (8)
Country | Link |
---|---|
US (1) | US5991415A (de) |
EP (1) | EP0986873B1 (de) |
AU (1) | AU7568598A (de) |
CA (1) | CA2288837C (de) |
DE (1) | DE69828787T2 (de) |
ES (1) | ES2236903T3 (de) |
IL (1) | IL132816A (de) |
WO (1) | WO1998052319A1 (de) |
Families Citing this family (106)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6965673B1 (en) * | 1997-09-19 | 2005-11-15 | Telcordia Technologies, Inc. | Method of using transient faults to verify the security of a cryptosystem |
EP0924895B1 (de) * | 1997-12-17 | 2009-07-08 | Nippon Telegraph and Telephone Corporation | Verschlüsselungs- und Entschlüsselungsvorrichtungen für Kryptosysteme mit öffentlichem Schlüssel und Aufzeichnungsmedium mit darauf gespeicherten zugehörigen Verarbeitungsprogrammen. |
AU2557399A (en) * | 1998-01-02 | 1999-07-26 | Cryptography Research, Inc. | Leak-resistant cryptographic method and apparatus |
US7587044B2 (en) | 1998-01-02 | 2009-09-08 | Cryptography Research, Inc. | Differential power analysis method and apparatus |
DE19811175A1 (de) * | 1998-03-14 | 1999-09-16 | Philips Patentverwaltung | Verfahren und Anordnung zur Abwehr kryptoanalytischer Untersuchungen |
FR2776445A1 (fr) * | 1998-03-17 | 1999-09-24 | Schlumberger Ind Sa | Procede de securisation de donnees mettant en oeuvre un algorithme cryptographique |
US6214372B1 (en) | 1998-05-04 | 2001-04-10 | Con Lin Co., Inc. | Method of using isomer enriched conjugated linoleic acid compositions |
ES2660057T3 (es) | 1998-05-18 | 2018-03-20 | Giesecke + Devrient Mobile Security Gmbh | Soporte de almacenamiento de datos de acceso protegido |
US6144740A (en) * | 1998-05-20 | 2000-11-07 | Network Security Technology Co. | Method for designing public key cryptosystems against fault-based attacks with an implementation |
US20030118190A1 (en) * | 1998-05-29 | 2003-06-26 | Siemens Aktiengesellschaft | Method and apparatus for processing data where a part of the current supplied is supplied to an auxiliary circuit |
EP1090480B1 (de) | 1998-06-03 | 2019-01-09 | Cryptography Research, Inc. | Verbesserungen zu des und anderen kryptographischen verfahren mit leckminimisierung für chipkarten und andere kryptosysteme |
AU5458199A (en) * | 1998-07-02 | 2000-01-24 | Cryptography Research, Inc. | Leak-resistant cryptographic indexed key update |
CA2243761C (en) * | 1998-07-21 | 2009-10-06 | Certicom Corp. | Timing attack resistant cryptographic system |
US7599491B2 (en) | 1999-01-11 | 2009-10-06 | Certicom Corp. | Method for strengthening the implementation of ECDSA against power analysis |
US7092523B2 (en) | 1999-01-11 | 2006-08-15 | Certicom Corp. | Method and apparatus for minimizing differential power attacks on processors |
CA2258338C (en) * | 1999-01-11 | 2009-02-24 | Certicom Corp. | Method and apparatus for minimizing differential power attacks on processors |
CA2259089C (en) * | 1999-01-15 | 2013-03-12 | Robert J. Lambert | Method and apparatus for masking cryptographic operations |
FR2789535B1 (fr) * | 1999-02-04 | 2001-09-28 | Bull Cp8 | Procede de securisation d'un ensemble electronique de cryptographie a cle secrete contre les attaques par analyse physique |
FR2792141B1 (fr) * | 1999-04-09 | 2001-06-15 | Bull Cp8 | Procede de securisation d'un ou plusieurs ensembles electroniques mettant en oeuvre un meme algorithme cryptographique avec cle secrete, une utilisation du procede et l'ensemble electronique |
US6298135B1 (en) * | 1999-04-29 | 2001-10-02 | Motorola, Inc. | Method of preventing power analysis attacks on microelectronic assemblies |
DE19921633A1 (de) * | 1999-05-10 | 2000-11-16 | Deutsche Telekom Ag | Verfahren zur Implementierung kryptographischer Algorithmen |
US6804782B1 (en) * | 1999-06-11 | 2004-10-12 | General Instrument Corporation | Countermeasure to power attack and timing attack on cryptographic operations |
NL1012581C2 (nl) * | 1999-07-13 | 2001-01-16 | Koninkl Kpn Nv | Werkwijze voor het beschermen van een draagbare kaart. |
FR2799851B1 (fr) * | 1999-10-14 | 2002-01-25 | Gemplus Card Int | Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique de type rsa |
FR2800478B1 (fr) | 1999-10-28 | 2001-11-30 | Bull Cp8 | Procede de securisation d'un ensemble electronique de cryptographie a base d'exponentiation modulaire contre les attaques par analyse physique |
US6724894B1 (en) | 1999-11-05 | 2004-04-20 | Pitney Bowes Inc. | Cryptographic device having reduced vulnerability to side-channel attack and method of operating same |
DE19963407A1 (de) | 1999-12-28 | 2001-07-12 | Giesecke & Devrient Gmbh | Tragbarer Datenträger mit Zugriffsschutz durch Nachrichtenverfremdung |
DE19963408A1 (de) * | 1999-12-28 | 2001-08-30 | Giesecke & Devrient Gmbh | Tragbarer Datenträger mit Zugriffsschutz durch Schlüsselteilung |
DE10024325B4 (de) * | 2000-05-17 | 2005-12-15 | Giesecke & Devrient Gmbh | Kryptographisches Verfahren und kryptographische Vorrichtung |
FR2810178B1 (fr) * | 2000-06-13 | 2004-10-29 | Gemplus Card Int | Procede de calcul cryptographique comportant une routine d'exponentiation modulaire |
DE10042234C2 (de) * | 2000-08-28 | 2002-06-20 | Infineon Technologies Ag | Verfahren und Vorrichtung zum Durchführen einer modularen Exponentiation in einem kryptographischen Prozessor |
KR100396740B1 (ko) * | 2000-10-17 | 2003-09-02 | 학교법인 한국정보통신학원 | 계산적 디피-헬만 가정에 기반하는 안전성 증명 가능한공개키 암호화 방법 |
FR2818772A1 (fr) * | 2000-12-21 | 2002-06-28 | Bull Cp8 | Procede de securisation d'un operateur logique ou mathematique implante dans un module electronique a microprocesseur, ainsi que le module electronique et le systeme embarque associes |
FR2819663B1 (fr) * | 2001-01-18 | 2003-04-11 | Gemplus Card Int | Dispositif et procede d'execution d'un algorithme cryptographique |
FR2824209B1 (fr) * | 2001-04-30 | 2003-08-29 | St Microelectronics Sa | Brouillage d'un calcul mettant en oeuvre une fonction modulaire |
FR2828608B1 (fr) * | 2001-08-10 | 2004-03-05 | Gemplus Card Int | Procede securise de realisation d'une operation d'exponentiation modulaire |
DE10143728B4 (de) * | 2001-09-06 | 2004-09-02 | Infineon Technologies Ag | Vorrichtung und Verfahren zum Berechnen eines Ergebnisses einer modularen Exponentiation |
FR2829335A1 (fr) * | 2001-09-06 | 2003-03-07 | St Microelectronics Sa | Procede de brouillage d'un calcul a quantite secrete |
WO2003024104A1 (en) * | 2001-09-13 | 2003-03-20 | Nds Limited | Hacking prevention system |
FR2830146B1 (fr) * | 2001-09-24 | 2003-10-31 | Gemplus Card Int | Procede de mise en oeuvre, dans un composant electronique, d'un algorithme de cryptographie et composant correspondant |
WO2003034649A2 (de) * | 2001-10-17 | 2003-04-24 | Infineon Technologies Ag | Verfahren und vorrichtung zum absichern einer berechnung in einem kryptographischen algorithmus |
DE10162584A1 (de) * | 2001-10-17 | 2003-05-08 | Infineon Technologies Ag | Verfahren und Vorrichtung zum Absichern einer Exponentiations-Berechnung mittels dem chinesischen Restsatz (CRT) |
WO2003034268A2 (de) * | 2001-10-17 | 2003-04-24 | Infineon Technologies Ag | Verfahren und vorrichtung zum absichern einer exponentiations-berechnung mittels dem chinesischen restsatz (crt) |
GB0126317D0 (en) * | 2001-11-02 | 2002-01-02 | Comodo Res Lab Ltd | Improvements in and relating to cryptographic methods and apparatus in which an exponentiation is used |
AU2002226515A1 (en) * | 2001-12-28 | 2003-09-04 | Gemplus | Method for detection of attacks on cryptographic algorithms by trial and error |
KR100431286B1 (ko) * | 2002-01-14 | 2004-05-12 | 한국정보보호진흥원 | 중국인 나머지 정리(crt) 기반의 오류 공격에 대응하는 방법 및 그 장치 |
JP2003241659A (ja) * | 2002-02-22 | 2003-08-29 | Hitachi Ltd | 情報処理方法 |
KR100431047B1 (ko) * | 2002-02-26 | 2004-05-12 | 주홍정보통신주식회사 | Crt에 기초한 rsa 공개키 암호화 방식을 이용한디지털 서명방법 및 그 장치 |
FR2838262B1 (fr) | 2002-04-08 | 2004-07-30 | Oberthur Card Syst Sa | Procede de securisation d'une electronique a acces crypte |
FR2840083A1 (fr) * | 2002-05-24 | 2003-11-28 | St Microelectronics Sa | Test d'un algorithme execute par un circuit integre |
DE10250810A1 (de) * | 2002-09-11 | 2004-03-25 | Giesecke & Devrient Gmbh | Geschützte kryptographische Berechnung |
CN1682484B (zh) * | 2002-09-11 | 2012-03-21 | 德国捷德有限公司 | 受保护的密码计算 |
FR2844891A1 (fr) * | 2002-09-20 | 2004-03-26 | St Microelectronics Sa | Masquage de donnees decomposees dans un systeme de residus |
DE10304451B3 (de) * | 2003-02-04 | 2004-09-02 | Infineon Technologies Ag | Modulare Exponentiation mit randomisiertem Exponenten |
GB2399904B (en) * | 2003-03-28 | 2005-08-17 | Sharp Kk | Side channel attack prevention in data processing apparatus |
US6880752B2 (en) * | 2003-04-16 | 2005-04-19 | George V. Tarnovsky | System for testing, verifying legitimacy of smart card in-situ and for storing data therein |
DE10328860B4 (de) * | 2003-06-26 | 2008-08-07 | Infineon Technologies Ag | Vorrichtung und Verfahren zum Verschlüsseln von Daten |
FR2858496B1 (fr) * | 2003-07-31 | 2005-09-30 | Gemplus Card Int | Procede pour la mise en oeuvre securisee d'un algorithme de cryptographie de type rsa et composant correspondant |
WO2005048008A2 (en) | 2003-11-16 | 2005-05-26 | M-Systems Flash Disk Pioneers Ltd. | Enhanced natural montgomery exponent masking |
US7590880B1 (en) * | 2004-09-13 | 2009-09-15 | National Semiconductor Corporation | Circuitry and method for detecting and protecting against over-clocking attacks |
US7477741B1 (en) | 2004-10-01 | 2009-01-13 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Analysis resistant cipher method and apparatus |
JP5068176B2 (ja) | 2005-01-18 | 2012-11-07 | サーティコム コーポレーション | デジタル署名と公開鍵の促進された検証 |
US8467535B2 (en) | 2005-01-18 | 2013-06-18 | Certicom Corp. | Accelerated verification of digital signatures and public keys |
US7620187B1 (en) | 2005-03-30 | 2009-11-17 | Rockwell Collins, Inc. | Method and apparatus for ad hoc cryptographic key transfer |
FR2884004B1 (fr) * | 2005-03-30 | 2007-06-29 | Oberthur Card Syst Sa | Procede de traitement de donnees impliquant une exponentiation modulaire et un dispositif associe |
FR2884088B1 (fr) * | 2005-03-31 | 2007-06-22 | Gemplus Sa | Procede et dispositif cryptographique permettant de proteger les logiques de cles publiques contre les attaques par faute |
US7729459B1 (en) | 2005-03-31 | 2010-06-01 | National Semiconductor Corporation | System and method for providing a robust ultra low power serial interface with digital clock and data recovery circuit for power management systems |
FR2887351A1 (fr) * | 2005-06-16 | 2006-12-22 | St Microelectronics Sa | Protection d'un calcul d'exponentiation modulaire effectue par un circuit integre |
EP1920324A1 (de) * | 2005-08-19 | 2008-05-14 | Nxp B.V. | Schaltungsanordnung und verfahren zur durchführung eines inversionsablaufs in einer kryptografischen berechnung |
KR20080035004A (ko) * | 2005-08-19 | 2008-04-22 | 엔엑스피 비 브이 | 회로 구조체, 마이크로컨트롤러, 데이터 처리 장치, 암호화 계산 수행 방법 및 프로그램을 구비하는 컴퓨터 판독가능한 매체 |
US7822207B2 (en) * | 2006-12-22 | 2010-10-26 | Atmel Rousset S.A.S. | Key protection mechanism |
US8280041B2 (en) * | 2007-03-12 | 2012-10-02 | Inside Secure | Chinese remainder theorem-based computation method for cryptosystems |
WO2008114310A1 (ja) * | 2007-03-16 | 2008-09-25 | Fujitsu Limited | Fault攻撃対策機能を備えた組み込み装置 |
US7936871B2 (en) * | 2007-06-28 | 2011-05-03 | Samsung Electronics Co., Ltd. | Altering the size of windows in public key cryptographic computations |
US7974409B2 (en) * | 2007-06-28 | 2011-07-05 | Samsung Electronics Co., Ltd. | Changing the order of public key cryptographic computations |
FR2919739B1 (fr) | 2007-08-03 | 2009-12-04 | Oberthur Card Syst Sa | Procede de traitement de donnees protege contre les attaques par generation de fautes et dispositif associe |
US8670557B2 (en) | 2007-09-10 | 2014-03-11 | Spansion Llc | Cryptographic system with modular randomization of exponentiation |
US8139763B2 (en) | 2007-10-10 | 2012-03-20 | Spansion Llc | Randomized RSA-based cryptographic exponentiation resistant to side channel and fault attacks |
US7907724B2 (en) | 2007-10-25 | 2011-03-15 | Infineon Technologies Ag | Method and apparatus for protecting an RSA calculation on an output by means of the chinese remainder theorem |
US8774400B2 (en) | 2008-01-03 | 2014-07-08 | Spansion Llc | Method for protecting data against differntial fault analysis involved in rivest, shamir, and adleman cryptography using the chinese remainder theorem |
KR100953715B1 (ko) | 2008-01-22 | 2010-04-19 | 고려대학교 산학협력단 | Crt-rsa 모듈라 지수승 알고리즘을 이용한 디지털서명 방법, 그 장치 및 이를 기록한 컴퓨터 판독가능 저장매체 |
FR2926652B1 (fr) * | 2008-01-23 | 2010-06-18 | Inside Contactless | Procede et dispositifs de contre-mesure pour cryptographie asymetrique a schema de signature |
US7958354B1 (en) | 2008-02-14 | 2011-06-07 | Rockwell Collins, Inc. | High-order knowledge sharing system to distribute secret data |
WO2009136361A1 (en) * | 2008-05-07 | 2009-11-12 | Koninklijke Philips Electronics N.V. | Exponent obfuscation |
US7522723B1 (en) * | 2008-05-29 | 2009-04-21 | Cheman Shaik | Password self encryption method and system and encryption by keys generated from personal secret information |
EP2154604A1 (de) | 2008-08-06 | 2010-02-17 | Gemalto SA | Gegenmassname zum Schutz von auf Potenzierung basierender Kryptographie |
EP2222013A1 (de) | 2009-02-19 | 2010-08-25 | Thomson Licensing | Verfahren und Vorrichtung zur Bekämpfung von Fehlerangriffen |
EP2228715A1 (de) * | 2009-03-13 | 2010-09-15 | Thomson Licensing | Fehlerbeständige Berechnungen auf elliptischen Kurven |
CN102725737B (zh) * | 2009-12-04 | 2016-04-20 | 密码研究公司 | 可验证防泄漏的加密和解密 |
WO2012086076A1 (ja) * | 2010-12-24 | 2012-06-28 | 三菱電機株式会社 | 署名生成装置及び署名生成方法及び記録媒体 |
US8817974B2 (en) * | 2011-05-11 | 2014-08-26 | Nxp B.V. | Finite field cryptographic arithmetic resistant to fault attacks |
EP2535804A1 (de) | 2011-06-17 | 2012-12-19 | Thomson Licensing | Fehlerbeständiger Potenzierungsalgorithmus |
FR2977953A1 (fr) * | 2011-07-13 | 2013-01-18 | St Microelectronics Rousset | Protection d'un calcul d'exponentiation modulaire par addition d'une quantite aleatoire |
DE102011115082A1 (de) | 2011-09-19 | 2013-03-21 | Giesecke & Devrient Gmbh | Gegen Ausspähung schützbarer geheimer RSA Verschlüsselungsexponent |
US8745376B2 (en) | 2011-10-14 | 2014-06-03 | Certicom Corp. | Verifying implicit certificates and digital signatures |
US8635467B2 (en) | 2011-10-27 | 2014-01-21 | Certicom Corp. | Integrated circuit with logic circuitry and multiple concealing circuits |
US8334705B1 (en) | 2011-10-27 | 2012-12-18 | Certicom Corp. | Analog circuitry to conceal activity of logic circuitry |
US8861718B2 (en) * | 2012-02-10 | 2014-10-14 | Electronics And Telecommunications Research Institute | Method of preventing fault-injection attacks on Chinese Remainder Theorem-Rivest Shamir Adleman cryptographic operations and recording medium for storing program implementing the same |
EP2667539A1 (de) * | 2012-05-21 | 2013-11-27 | Koninklijke Philips N.V. | Verfahren und Vorrichtung zur gemeinsamen Schlüsselnutzung und System zu deren Konfiguration |
CN103051454A (zh) * | 2012-12-19 | 2013-04-17 | 天地融科技股份有限公司 | 电子设备及其密码验证方法 |
US9087192B2 (en) | 2013-09-10 | 2015-07-21 | Infineon Technologies Ag | Electronic circuit and method for monitoring a data processing |
KR102180029B1 (ko) | 2014-02-03 | 2020-11-17 | 삼성전자 주식회사 | Crt-rsa 암호화 방법 및 장치와 이를 기록한 컴퓨터 판독가능 저장매체 |
EP3188401B1 (de) | 2015-12-29 | 2019-12-18 | Secure-IC SAS | Verfahren und system zum schutz einer kryptografischen operation |
EP3242202A1 (de) | 2016-05-04 | 2017-11-08 | Gemalto Sa | Gegenmassnahme bei sicheren fehlerangriffen durch fehlerinjektionen auf kryptografischen potenzierungsalgorithmen |
TW201810989A (zh) * | 2016-05-18 | 2018-03-16 | 納格維遜股份有限公司 | 用以保護密碼指數的方法及系統 |
EP3503459B1 (de) | 2017-12-22 | 2021-04-21 | Secure-IC SAS | Vorrichtung und verfahren zum schutz der ausführung einer kryptographischen operation |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5504817A (en) * | 1994-05-09 | 1996-04-02 | Yeda Research And Development Co. Ltd. At The Weizmann Institute Of Science | Method and apparatus for memory efficient variants of public key encryption and identification schemes for smart card applications |
US5764766A (en) * | 1996-06-11 | 1998-06-09 | Digital Equipment Corporation | System and method for generation of one-time encryption keys for data communications and a computer program product for implementing the same |
-
1997
- 1997-05-12 US US08/854,464 patent/US5991415A/en not_active Expired - Lifetime
-
1998
- 1998-05-12 CA CA002288837A patent/CA2288837C/en not_active Expired - Fee Related
- 1998-05-12 IL IL13281698A patent/IL132816A/xx not_active IP Right Cessation
- 1998-05-12 AU AU75685/98A patent/AU7568598A/en not_active Abandoned
- 1998-05-12 ES ES98923379T patent/ES2236903T3/es not_active Expired - Lifetime
- 1998-05-12 WO PCT/US1998/009593 patent/WO1998052319A1/en active IP Right Grant
- 1998-05-12 DE DE69828787T patent/DE69828787T2/de not_active Expired - Lifetime
- 1998-05-12 EP EP98923379A patent/EP0986873B1/de not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
AU7568598A (en) | 1998-12-08 |
US5991415A (en) | 1999-11-23 |
EP0986873A1 (de) | 2000-03-22 |
CA2288837C (en) | 2008-11-18 |
WO1998052319A1 (en) | 1998-11-19 |
IL132816A (en) | 2003-05-29 |
DE69828787D1 (de) | 2005-03-03 |
ES2236903T3 (es) | 2005-07-16 |
CA2288837A1 (en) | 1998-11-19 |
EP0986873B1 (de) | 2005-01-26 |
IL132816A0 (en) | 2001-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69828787T2 (de) | Verbessertes verfahren und vorrichtung zum schutz eines verschlüsselungsverfahrens mit öffentlichem schlüssel gegen angriffe mit zeitmessung und fehlereinspeisung | |
DE69917592T2 (de) | Gegen stromverbrauchsignaturanfall beständige kryptographie | |
DE102006022960B4 (de) | Verfahren zum Verschlüsseln von Eingabedaten, kryptographisches System und Computerprogrammprodukt | |
DE2843583C2 (de) | Verfahren für den zugriffsicheren Nachrichtenverkehr über einen ungesicherten Nachrichtenübertragungskanal | |
DE69930334T2 (de) | IC-Karte ausgerüstet mit einer Verarbeitungsanlage für Elliptische-Kurven-Verschlüsselung | |
DE60031304T3 (de) | Verfahren zur authentifizierung von softwarebenutzern | |
EP1891512B1 (de) | Bestimmung einer modularen inversen | |
DE102008051447B9 (de) | Verfahren und Vorrichtung zum Schützen einer RSA-Berechnung an einer Ausgabe mit Hilfe des chinesischen Restsatzes | |
DE602004006628T2 (de) | Verfahren zur gesicherten ausführung eines rsa kryptographischen algorithmus, sowie diesbezüglicher baustein. | |
DE10024325B4 (de) | Kryptographisches Verfahren und kryptographische Vorrichtung | |
EP1540880B1 (de) | Geschützte kryptographische berechnung | |
DE60117813T2 (de) | Verfahren und Vorrichtung zur Speicherung und wiedergewinnung eones Privaten Kryptoschlüssels | |
DE60022770T2 (de) | Gegenmassnahme in einem elektronischen baustein zur ausführung eines kryptoalgorithmus mit öffentlichem schlüssel vom rsa-typ | |
EP1442391B1 (de) | Verfahren und vorrichtung zum absichern einer berechnung in einem kryptographischen algorithmus | |
DE60218421T2 (de) | Verfahren und Vorrichtung zur Erzeugung von Digitalsignaturen | |
WO2003034268A2 (de) | Verfahren und vorrichtung zum absichern einer exponentiations-berechnung mittels dem chinesischen restsatz (crt) | |
DE10042234C2 (de) | Verfahren und Vorrichtung zum Durchführen einer modularen Exponentiation in einem kryptographischen Prozessor | |
DE60221863T2 (de) | Verfahren zur implementierung eines kryptographischen algorithmus zum finden des öffentlichen exponenten in einer elektronischen komponente | |
DE102019008199B3 (de) | Gegen Seitenkanalangriffe geschützte Exponentiation, Primzahltest und RSA Schlüsselgenerierung | |
DE69333121T2 (de) | Verfahren zur Ausführung von kryptographischen und/oder fehlerkorrigierenden Protokollen auf dem Gebiet der Zahlentheorie | |
EP1504337B1 (de) | Berechnung des modularen inversen eines wertes | |
DE10162496C5 (de) | Verfahren und Vorrichtung zum Absichern einer Berechnung in einem kryptographischen Algorithmus | |
EP2128754B1 (de) | Sichere sliding window exponentiation | |
WO2007006649A1 (de) | Verfahren zur seitenkanalangriffsresistenten vervielfachung | |
EP1518165B1 (de) | Berechnung eines vielfachen eines gruppenelements für kryptographische zwecke |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8328 | Change in the person/name/address of the agent |
Representative=s name: SEEGER SEEGER LINDNER PARTNERSCHAFT PATENTANWAELTE |