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 PDF

Info

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
Application number
DE69828787T
Other languages
English (en)
Other versions
DE69828787D1 (de
Inventor
Adi Shamir
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yeda Research and Development Co Ltd
Original Assignee
Yeda Research and Development Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yeda Research and Development Co Ltd filed Critical Yeda Research and Development Co Ltd
Application granted granted Critical
Publication of DE69828787D1 publication Critical patent/DE69828787D1/de
Publication of DE69828787T2 publication Critical patent/DE69828787T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/723Modular exponentiation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/004Countermeasures against attacks on cryptographic mechanisms for fault attacks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/005Countermeasures against attacks on cryptographic mechanisms for timing attacks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • G06F2207/7223Randomisation as countermeasure against side channel attacks
    • G06F2207/7233Masking, e.g. (A**e)+r mod n
    • G06F2207/7247Modulo masking, e.g. A**e mod (n*r)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • G06F2207/7223Randomisation as countermeasure against side channel attacks
    • G06F2207/7257Random modification not requiring correction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • G06F2207/7271Fault verification, e.g. comparing two values which should be the same, unless a computational fault occurred
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, e.g. dummy operations or using noise

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 Blackbox 10 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), Kasten 14.
  • 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), Kasten 22. 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)), Kasten 24, gefolgt von w_1 = v_1^d_1(mod j*p) und w_2 = v_2^d_2(mod j*q), Kasten 26.
  • 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, Kasten 30. 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), Kasten 32. 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), Kasten 34, 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 Entscheidungskasten 36, 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)

  1. 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.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass j als eine Primzahl ausgewählt ist.
  3. 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.
  4. Verfahren nach Anspruch 3, dadurch gekennzeichnet, dass k = 32.
  5. 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.
  6. Verfahren nach Anspruch 5, dadurch gekennzeichnet, dass j_1 und j_2 Primzahlen sind.
  7. 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.
  8. Verfahren nach Anspruch 7, dadurch gekennzeichnet, dass k = 32.
  9. 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.
  10. Vorrichtung nach Anspruch 9, dadurch gekennzeichnet, dass j als eine Primzahl ausgewählt ist.
  11. 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.
  12. Vorrichtung nach Anspruch 11, dadurch gekennzeichnet, dass k = 32.
  13. 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.
  14. Vorrichtung nach Anspruch 13, dadurch gekennzeichnet, dass j_1 und j_2 Primzahlen sind.
  15. 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.
  16. Vorrichtung nach Anspruch 15, dadurch gekennzeichnet, dass k = 32.
DE69828787T 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 Expired - Lifetime DE69828787T2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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