DE60022770T2 - Gegenmassnahme in einem elektronischen baustein zur ausführung eines kryptoalgorithmus mit öffentlichem schlüssel vom rsa-typ - Google Patents

Gegenmassnahme in einem elektronischen baustein zur ausführung eines kryptoalgorithmus mit öffentlichem schlüssel vom rsa-typ Download PDF

Info

Publication number
DE60022770T2
DE60022770T2 DE60022770T DE60022770T DE60022770T2 DE 60022770 T2 DE60022770 T2 DE 60022770T2 DE 60022770 T DE60022770 T DE 60022770T DE 60022770 T DE60022770 T DE 60022770T DE 60022770 T2 DE60022770 T2 DE 60022770T2
Authority
DE
Germany
Prior art keywords
mod
calculation
modulo
integers
algorithm
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
DE60022770T
Other languages
English (en)
Other versions
DE60022770D1 (de
Inventor
Jean-Sebastien Coron
Pascal Paillier
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.)
Gemplus SA
Original Assignee
Gemplus SA
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 Gemplus SA filed Critical Gemplus SA
Application granted granted Critical
Publication of DE60022770D1 publication Critical patent/DE60022770D1/de
Publication of DE60022770T2 publication Critical patent/DE60022770T2/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/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)

Description

  • Die vorliegende Erfindung betrifft ein Gegenmaßnahmen-Verfahren in einer einen Chiffrierungsalgorithmus mit öffentlichem Schlüssel vom Typ RSA umsetzenden elektronischen Komponente.
  • Im klassischen Modell der Kryptographie mit geheimem Schlüssel müssen zwei Personen, die über einen nicht gesicherten Kanal miteinander kommunizieren möchten, sich vorab über einen geheimen Chiffrierungsschlüssel K einigen. Die Chiffrierungsfunktion und die Dechiffrierungsfunktion benutzen dabei denselben Schlüssel K. Der Nachteil des Chiffrierungssystems mit geheimem Schlüssel besteht darin, dass das System die vorherige Übermittlung des Schlüssels K zwischen den beiden Personen über einen gesicherten Kanal erfordert, bevor irgendeine chiffrierte Meldung durch den nicht gesicherten Kanal verschickt werden kann. In der Praxis ist es im Allgemeinen schwierig, einen absolut gesicherten Kommunikationskanal zu finden, vor allem, wenn die die beiden Personen trennende Entfernung groß ist. Unter gesichertem Kanal versteht man einen Kanal, bei dem die Kenntnis oder die Modifikation der Informationen, die den genannten Kanal passieren, unmöglich ist. Ein derartiger gesicherter Kanal kann durch ein die beiden, sich im Besitz der zwei genannten Personen befindenden Terminals verbindendes Kabel realisiert werden.
  • Das Kryptographiekonzept mit öffentlichem Schlüssel wurde 1976 von Whitfield DIFFIE und Martin HELLMAN erfunden. Die Kryptographie mit öffentlichem Schlüssel erlaubt die Lösung des Problems der Weitergabe der Schlüssel durch einen nicht gesicherten Kanal. Das Prinzip der Kryptographie mit öffentlichem Schlüssel besteht im Einsatz eines Schlüsselpaares, eines öffentlichen Chiffrierungsschlüssels und eines privaten Dechiffrierungsschlüssels. Es muss rechnerisch unmöglich sein, ausgehend von dem öffentlichen Chiffrierungsschlüssel den privaten Dechiffrierungsschlüssel zu finden. Eine Person A, die eine Information an eine Person B übermitteln möchte, benutzt den öffentlichen Chiffrierungsschlüssel der Person B. Nur die Person B besitzt den ihrem öffentlichen Schlüssel zugeordneten privaten Schlüssel. Nur die Person B ist daher zum Dechiffrieren der Meldung in der Lage, die ihr zugeschickt wird.
  • Ein weiterer Vorteil der Kryptographie mit öffentlichem Schlüssel gegenüber der Kryptographie mit geheimem Schlüssel besteht darin, dass die Kryptographie mit öffentlichem Schlüssel die Authentifizierung durch Einsatz der elektronischen Unterschrift erlaubt.
  • Die erste Realisierung eines Chiffrierungsschemas mit öffentlichem Schlüssel wurde 1977 durch Rivest, Shamir und Adleman ausgearbeitet, die das Chiffrierungssystem RSA erfunden haben. Die Sicherheit von RSA beruht auf der Schwierigkeit, eine große Zahl zu fakturieren, die das Produkt von zwei Primzahlen ist. Seitdem wurden zahlreiche Chiffrierungssysteme mit öffentlichem Schlüssel vorgeschlagen, deren Sicherheit auf unterschiedlichen kalkulatorischen Problemen beruht: (diese Liste erhebt keinen Anspruch auf Vollständigkeit).
    • – „Rucksack" von Merckle-Hellman:
    • Dieses Chiffrierungssystem beruht auf der Schwierigkeit des Problems der Summe der Teilsysteme;
    • – McEliece:
    • Dieses Chiffrierungssystem basiert auf der Theorie der Algebracodes. Es basiert auf dem Problem der Kodierung von linearen Codes;
    • – ElGamal:
    • Dieses Chiffrierungssystem basiert auf der Schwierigkeit des diskreten Logarithmus in einem fertigen Körper;
    • – elliptische Kurven:
    • Das Chiffrierungssystem mit elliptischer Kurve besteht aus einer Modifikation von vorhandenen kryp tographischen Systemen zur Anwendung auf den Bereich von elliptischen Kurven. Der Vorteil der Chiffrierungssysteme mit elliptischen Kurven besteht darin, dass sie eine kleinere Schlüsselgröße erfordern als bei den anderen Chiffrierungssystemen.
  • Das Chiffrierungssystem RSA ist das am häufigsten eingesetzte Chiffrierungssystem mit öffentlichem Schlüssel. Es kann als Chiffrierungsverfahren oder als Unterschriftsverfahren verwendet werden. Das Chiffrierungssystem RSA wird in Chipkarten bei einigen Anwendungen derselben eingesetzt. Die möglichen Anwendungen von RSA auf einer Chipkarte sind der Zugriff auf Datenbanken, Bankenanwendungen, entfernte Zahlungsanwendungen, wie zum Beispiel Pay-TV, die Ausgabe von Benzin oder die Zahlung von Autobahnmaud.
  • Das Prinzip des Chiffrierungssystems RSA funktioniert folgendermaßen. Es kann in drei unterschiedliche Teile aufgeteilt werden, und zwar:
    • 1) die Erzeugung des Schlüsselpaares RSA
    • 2) Die Chiffrierung einer klaren Meldung in eine chiffrierte Meldung und
    • 3) Die Dechiffrierung einer chiffrierten Meldung in eine klare Meldung.
  • Der erste Teil ist die Erzeugung des Schlüssels RSA. Jeder Nutzer erstellt einen öffentlichen Schlüssel RSA und einen entsprechenden privaten Schlüssel gemäß dem folgenden Verfahren in 5 Stufen:
    • 1) Erzeugen von zwei unterschiedlichen Primzahlen p und q derselben Größe
    • 2) Berechnung von n = pq und ⌋ = (p – 1)(q – 1)
    • 3) Zufällige Auswahl einer ganzen Zahl e, 1 < e < ⌋, wie zum Beispiel pgcd (e, ⌋) = 1
    • 4) Berechnung der einzigen ganzen Zahl d, 1 < d < ⌋, wie zum Beispiel e*d = 1 mod ⌋.
    • 5) Der öffentliche Schlüssel ist (n, e); der private Schlüssel ist d oder (d, p, q).
  • Die ganzen Zahlen e und d werden jeweils als Chiffrierungsexponent und Dechiffrierungsexponent bezeichnet. Die ganze Zahl n wird als Modul bezeichnet.
  • Der zweite Teil der Generation mit Schlüssel RSA besteht in der Chiffrierung einer mit m bezeichneten klaren Meldung mittels eines Algorithmus mit 1 < m < n in eine mit c bezeichnete chiffrierte Meldung wie folgt:
    Berechnung von c = m^e mod n.
  • Der dritte Teil der Erzeugung des Schlüssels RSA besteht in der den privaten Dechiffrierungsexponenten p einsetzenden Dechiffrierung mittels eines Algorithmus. Der Dechiffrierungsalgorithmus einer mit c bezeichneten chiffrierten Meldung mit 1 < c < n in eine mit m bezeichnete klare Meldung erfolgt wie folgt:
    Berechnung von m = c^d mod n.
  • Der zuvor beschriebene Dechiffrierungsalgorithmus RSA kann durch zwei unterschiedliche Methoden erfolgen. Diese beiden Methoden sind: Dechiffrierung mit CRT und Dechiffrierung ohne CRT. CRT ist ein Akronym für Chinese Remainder Therorem. Der Vorteil des Dechiffrierungsalgorithmus mit CRT besteht darin, dass er theoretisch 4 Mal schneller ist als der Dechiffrierungsalgorithmus ohne CRT.
  • Der Dechiffrierungsalgorithmus ohne CRT besteht in der Berechnung von m = c^d mod n wie zuvor beschrieben.
  • Der Dechiffrierungsalgorithmus mit CRT besteht in den 4 folgenden Stufen:
    • 1) Berechnung von cp = c modulo p und cq = c modulo q
    • 2) Berechnung von dp = d modulo p – 1 und dq = d modulo q – 1
    • 3) Berechnung von mp = cp^dp modulo p und mq = cq^dq modulo q
    • 4) Berechnung von m = mp*q* (q^(–1) mod p) + mq*p* (p^(–1) mod q)
  • Zur Realisierung der in den zuvor beschriebenen Berechnungsverfahren notwendigen modularen Exponentierungen gibt es mehrere Algorithmen:
    • – Den als „square and multiply" bezeichneten Algorithmus;
    • – Den Algorithmus mit Additionsketten;
    • – Den Algorithmus mit Fenster;
    • – Den Algorithmus mit unterschriebener Darstellung,
  • Diese Liste erhebt keinen Anspruch auf Vollständigkeit. Der einfachste und am häufigsten eingesetzte Algorithmus ist der Algorithmus „square and multiply". Der Algorithmus „square and multiply" übernimmt am Eingang eine Zahl c, einen Exponenten d und ein Modul n. Der Exponent d wird mit d = (d(t)), d(t – 1), d(0)) bezeichnet, wobei (d(t), d(t – 1) ist, wobei d (0)) die binäre Darstellung von d ist, wobei d (t) das Bit mit hohem Bitgewicht ist und d(0) das Bit mit niedrigem Bitgewicht. Die Darstellung der Zahl fünf als binäre Zahl ist aufgrund der Tatsache, dass 5 = 1*2^2 + 0*2^1 + 1*2^0 ist, zum Beispiel 101. Die Primzahl 1 ist das Bit mit hohem Gewicht und die letzte Primzahl 1 das Bit mit niedrigem Gewicht. Der Algorithmus dreht am Ausgang die Zahl m = c^d mod n um.
  • Der Algorithmus „square and multiply" umfasst die folgenden 3 Stufen:
    • 1) Initialisierung einer ganzen Variablen A mit dem Wert c;
    • 2) Für i, das von t – 1 bis 0 reicht, erfolgt:
    • 2a) Ersatz von A durch A*A mod n;
    • 2b) Wenn d(i) = 1, Ersatz von A durch A*c mod n;
    • 3) Rückkehr in die obige Stufe 1.
  • Im Fall der Dechiffrierung RSA ohne CRT erfolgt die Dechiffrierung wie zuvor beschrieben unter Einsatz des Algorithmus „square and multiply". In diesem Fall nimmt der Algorithmus „square and multiply" dann am Eingang die chiffrierte Meldung c, das Modul n und den Dechiffrierungsexponenten d auf.
  • In dem Fall der Dechiffrierung RSA mit CRT erfolgt die Dechiffrierung wie zuvor beschrieben unter zweimaligem Einsatz des Algorithmus „square and multiply" für die Ausführung der Stufe 3) des Dechiffrierungsalgorithmus mit CRT. Das erste Mal nimmt der Algorithmus am Eingang die ganzen Zahl cp, das Modul p und den Exponenten dp auf. Das zweite Mal nimmt der Algorithmus am Eingang die ganze Zahl cq, das Modul q und den Exponenten dq auf.
  • Es ist möglich, diese Operationen im Innern einer Chipkarte durchzuführen, wobei die genannten Operatio nen durch den Mikroprozessor der Chipkarte durchgeführt werden. Es hat sich gezeigt, dass die Implementierung eines Chiffrierungsalgorithmus mit öffentlichem Schlüssel vom Typ RSA auf der Chipkarte für aus einer Differentialanalyse des das Wiederfinden des privaten Dechiffrierungsschlüssels erlaubenden Stromverbrauchs bestehenden Angriffe empfindlich ist. Diese Angriffe werden als DPA-Angriffe bezeichnet, das Akronym für Differential Power Analysis. Das Prinzip dieser DPA-Angriffe beruht auf der Tatsache, dass der Stromverbrauch des ausführenden Mikroprozessors je nach der behandelten Angabe variiert.
  • Wenn eine Anweisung eine Angabe behandelt, von der ein Bit konstant ist, wobei der Wert der anderen Bits variieren kann, zeigt insbesondere die Analyse des mit der Anweisung verbundenen Stromverbrauchs, dass der durchschnittliche Verbrauch der Anweisung nicht derselbe ist, je nachdem, ob das besondere Bit den Wert 0 oder 1 übernimmt. Der Angriff vom Typ DPA erlaubt daher den Erhalt von zusätzlichen Informationen zu den vom Mikroprozessor der Karte behandelten intermediären Daten bei der Ausführung eines kryptographischen Algorithmus. Diese zusätzlichen Informationen können in bestimmten Fällen die Aufdeckung der privaten Parameter des Dechiffrierungsalgorithmus erlauben, was das kryptographische System unsicher macht.
  • In der Folge dieser Patentschrift werden zwei DPA-Angriffstypen auf dem Dechiffrierungsalgorithmus RSA beschrieben. Der erste beschriebene DPA-Angriff betrifft den Dechiffrierungsalgorithmus RSA ohne CRT. Der zweite beschriebene Angriff betrifft den Dechiffrierungsalgorithmus RSA mit CRT. Diese beiden Angriffe erlauben die Aufdeckung des privaten Dechiffrierungsexponenten d. Sie gefährden daher beträchtlich die Sicherheit der Implementierung von RSA auf einer Chipkarte.
  • Der erste DPA-Angriff betrifft den Dechiffrierungsalgorithmus RSA ohne CRT. Der Angriff erlaubt die direkte Aufdeckung des geheimen Exponenten d, der auch als privater Schlüssel bezeichnet wird.
  • Die erste Stufe des Angriffs ist das Registrieren des der Ausführung des zuvor beschriebenen Algorithmus „square and multiply" entsprechenden Stromverbrauchs für N chiffrierte unterschiedliche Meldungen c(1), ..., c(N).
  • Für die Klarheit der Beschreibung des Angriffs wird mit der Beschreibung einer den Erhalt des Wertes des Bits d(t – 1) des privaten Schlüssels d oder (d(t), d(t – 1), d(0)) erlaubenden Methode, der binären Darstellung von d, wobei d(t) das Bit mit hohem Gewicht ist und d(0) das Bit mit geringem Gewicht, begonnen. Anschließend wird ein Algorithmus beschrieben, der das Wiederfinden des Wertes von d erlaubt.
  • Man fasst die Meldungen c(1) bis c(N) gemäß dem Wert des Bits mit geringem Gewicht von c^4 mod n zusammen, wobei c eine der Meldungen c(1) bis c(N) bezeichnet. Die erste Gruppe wird durch Meldungen c gebildet, so dass das Bit mit geringem Gewicht von c^4 mod n gleich 1 ist.
  • Die zweite Gruppe wird von den Meldungen c gebildet, so dass das genannte Bi gleich 0 ist. Man berech net den Durchschnitt des jeder dieser beiden Gruppen entsprechenden Stromverbrauchs und berechnet die Abweichungskurve zwischen diesen beiden Durchschnitten.
  • Wenn das Bit d(t – 1) von d gleich 0 ist, dann berechnet und speichert der zuvor beschriebene Exponentialalgorithmus den Wert c^4 mod n. Das bedeutet, dass der Mikroprozessor der Karte bei der Ausführung des Algorithmus in einer Chipkarte effektiv c^4 mod n berechnen wird. In diesem Fall ist das letzte Bit der vom Mikroprozessor bearbeiteten Angabe in einer Gruppe von Meldungen immer gleich 1 und in der anderen Gruppe von Meldungen ist das letzte Bit der behandelten Angabe immer gleich 0. Der Durchschnitt des jeder Gruppe entsprechenden Stromverbrauchs ist daher unterschiedlich. In der Abweichungskurve erscheint daher zwischen den beiden Durchschnitten eine Differentialspitze des Stromverbrauchs.
  • Wenn das Bit d(t – 1) von d im Gegenteil gleich 1 ist, berechnet der zuvor beschriebene Exponentialalgorithmus nicht den Wert von c^4 mod n. Bei der Ausführung des Algorithmus durch die Chipkarte behandelt der Mikroprozessor daher niemals die Angabe c^4 mod n. Es erscheint daher keine Differentialspitze des Verbrauchs.
  • Diese Methode erlaubt daher die Bestimmung des Wertes des Bits d(t – 1) von d.
  • Der in dem folgenden Absatz beschriebene Algorithmus ist eine Verallgemeinerung des vorherigen Algorithmus. Er erlaubt die Bestimmung des Wertes des privaten Schlüssels d:
    Der Algorithmus nimmt am Eingang N Meldungen c(1) bis c(N) und das Modul RSA n auf und schickt am Ausgang eine ganze Zahl h zurück. Die Stufen des obigen Algorithmus lauten daher wie folgt:
    • 1) 1 in die Variable h setzen,
    • 2) Für i, das von t – 1 bis 1 reicht, die folgenden Stufen ausführen:
    • 2)1) Die Meldungen c(1) bis c(N) gemäß des Wertes des letzten Bits von c^(4*h) mod n in zwei Gruppen einordnen;
    • 2)2) Den Durchschnitt des Stromverbrauchs für jede der 2 Gruppen berechnen;
    • 2)3) Die Abweichung zwischen den beiden Durchschnitten berechnen;
    • 2)4) Wenn die Abweichung eine Differenzialspitze des Verbrauchs ergibt, h = h*2 berechnen; Ansonsten h = h*2 + 1 ausführen.
  • Das Ergebnis des Algorithmus ist in der Variablen h enthalten.
  • Der vorherige Algorithmus liefert eine ganze Zahl h, wie zum Beispiel d = 2*h oder d = 2*h + 1. Um den Wert von d zu erhalten, braucht man anschließend nur die beiden möglichen Hypothesen zu testen, die d = 2*h und d = 2*h + 1 sind. Der Angriff vom beschriebenen Typ DPA erlaubt daher das Wiederfinden des privaten Schlüssels d, wenn der Dechiffrierungsalgorithmus RSA ohne CRT durchgeführt wird.
  • Der zweite mögliche DPA-Angriff auf den Dechiffrierungsalgorithmus RSA betrifft die Anwendung des Dechiffrierungsalgorithmus mit CRT wie zuvor beschrieben.
  • Der beschriebene Angriff erfolgt mit gewählter Meldung und bezieht sich ausschließlich auf die modulare Reduktionsoperation (Stufe 1) in der Beschreibung des Dechiffrierungsalgorithmus mit CRT.
  • Der Angriff besteht darin, ordnungsgemäß ausgewählte Meldungen an die Karte zu schicken. Die Größe der binären Darstellung von p ist eine ganze Zahl k. Man hat also 2^(k – 1) < p < 2^k. Dann unterscheidet man zwei Fälle:
    Im ersten Fall hat man 2^(k – 1) + 2^(k – 2) < p < 2^k.
    Im zweiten Fall hat man 2^(k – 1) < p < 2^(k – 1) + 2^(k – 2).
  • Das Verfahren besteht darin, eine erste Gruppe A von Meldungen c, wie zum Beispiel c < 2^(k – 1) von der Karte dechiffrieren zu lassen. Die modulare Reduktion von c modulo P ergibt daher genau die ganze Zahl c als Ergebnis. Auch lässt man von der Karte eine zweite Gruppe B von Meldungen c dechiffrieren, wie zum Beispiel 2^k < c < 2^k + 2^(k – 2) im ersten Fall und 2^(k – 1) + 2^(k – 2) < c < 2^k im zweiten Fall. In beiden Fällen ergibt die modulare Reduktion von c modulo P c-p. Die Karte wird also im Anschluss die Angabe c-p behandeln. Durch Analyse der Abweichung des Verbrauchs zwischen den Meldungen der Gruppe A, für die das Ergebnis c ist, und den Meldungen der Gruppe B, für die das Ergebnis c-p ist, ist die Kenntnis jeder den Erhalt von p erlaubenden notwendigen Information durch Vergleich möglich.
  • In diesem Absatz wird die den Erhalt des Bits mit geringem Gewicht von p erlaubende Methode erläutert. Die Methode zum Erhalt der anderen Bits von p ist ähn lich. Die Meldungen der Gruppe A werden in zwei Kategorien eingestuft: eine Gruppe von Meldungen A0, für die das letzte Bit der Meldungen gleich 0 ist und eine Gruppe von Meldungen A1, für die das letzte Bit gleich 1 ist. Dieselbe Operation wird für die Gruppe B realisiert, wobei die Gruppe B0 und die Gruppe B1 erhalten werden. Wenn das Bit von niedrigem Gewicht von p gleich 1 ist, weist die Abweichung des Verbrauchs zwischen der Gruppe A0 und B0 eine Differentialspitze des Verbrauchs auf, denn in der Gruppe A0 ist das letzte Bit des Ergebnisses gleich 0 und in der Gruppe B0 ist das letzte Bit des Ergebnisses gleich 1. Wenn das Bit mit niedrigem Gewicht von p gleich 0 ist, weist die Abweichung des durchschnittlichen Verbrauchs zwischen den Gruppen keine Spitzen auf. Durch diese Methode kann man das Bit mit niedrigem Gewicht von p bestimmen. Durch eine ähnliche Methode kann man nacheinander die Bits von p bestimmen.
  • Das erfindungsgemäße Verfahren besteht aus der Erarbeitung von zwei die Abwehr von 2 zuvor beschriebenen Arten von DPA-Angriffen (Angriff mit CRT und Angriff ohne CRT) erlaubenden Gegenmaßnahmen. Das Verfahren der ersten Gegenmaßnahme besteht in der Durchführung der Berechnungen modulo p*r und q*t, wobei r und t zufällige Zahlen sind. Das Verfahren der ersten Gegenmaßnahme besteht in einer Verbesserung eines bereits vorhandenen, im von der Firma Cryptography Research gestellten Patentantrag WO 99/35782 vorgestellten Verfahrens. In diesem Patentantrag wird eine die Abwehr von den Angriffen vom Typ DPA bei der Dechiffrierungsoperation RSA erlaubende Methode beschrieben. Der Nachteil dieser Methode besteht darin, dass sie die Umsetzung von Divisionen von ganzen Zahlen erfordert, welche im Innern eines tragbaren Gegenstandes vom Typ Chipkarte schwer zu realisieren sind. Das Verfahren der ersten Gegenmaßnahme umfasst ausschließlich die Additions- und Multiplikationsoperationen. Die zweite Gegenmaßnahme besteht darin, die den Satz des Chinesischen Restes oder CRT einsetzende Rekombination zufällig zu machen.
  • Das Verfahren der ersten Gegenmaßnahme besteht in der Verwendung eines zufälligen Berechnungsmoduls bei jeder neuen Ausführung des Dechiffrierungsalgorithmus mit CRT. Es besteht in der Durchführung der Berechnungen modulo p*r und q*t, in dem r und t zufällige Zahlen sind.
  • Dieses Verfahren nimmt am Eingang eine Meldung c, einen Dechiffrierungsexponenten d und einen Sicherheitsparameter s auf und umfasst die acht folgenden Stufen:
    • 1) Ermitteln von drei zufälligen, zwischen o und 2^s inbegriffenen Zahlen r, t und u;
    • 2) Berechnung von p' = p*r und q' = q*t;
    • 3) Ersatz von c durch c + u*n
    • 4) Berechnung von cp = c modulo p' und cq = c modulo q';
    • 5) Berechnung von dp = d' modulo p – 1 und dq = d' modulo q – 1;
    • 6) Berechnung von mp' = cp^dp modulo p' und mq' = cq^dq modulo q';
    • 7) Berechnung von m = ((mq – mp) * (p^(–1)) mod q) mod q') * p + mp
    • 8) Ersatz von m durch m mod n.
  • Das Verfahren der ersten Gegenmaßnahme umfasst zwei Varianten, die die Aktualisierung der ganzen Zahlen r und t betreffen. Die erste Variante besteht darin, dass gemäß dem zuvor beschriebenen Verfahren ein neues Paar ganzer Zahlen r und t bei jeder neuen Ausführung des Dechiffrierungsalgorithmus berechnet wird. Die zweite Variante besteht darin, dass ein Zähler bei jeder neuen Ausführung des Dechiffrierungsalgorithmus inkrementiert wird. Wenn dieser Zähler einen festen Wert T erreicht, wird gemäß dem zuvor beschriebenen Verfahren ein neues Paar ganzer Zahlen r und t berechnet und der Zähler wird wieder auf 0 gesetzt. In der Praxis kann T = 16 annehmen.
  • Das Verfahren der ersten Gegenmaßnahme umfasst eine dritte Variante, die sinnvoll ist, wenn die Größe der Operationen auf den ganzen Zahlen begrenzt ist. Diese dritte Variante umfasst die folgenden Stufen:
    • 1) Ermittlung von vier zufälligen, zwischen o und 2^s inbegriffenen Zahlen r, t, u und v;
    • 2) Berechnung von p' = p*r und q' = q*t;
    • 3) Berechnung von cp = c modulo p' und cq = c modulo q';
    • 4) Ersatz von cp durch cp + u*p und Ersatz von cq durch cq + v*q.
    • 5) Berechnung von dp = d' modulo p – 1 und dq = d' modulo q – 1;
    • 6) Berechnung von mp' = cp^dp modulo p' und mq' = cq^dq modulo q';
    • 7) Berechnung von m = (((mq – mp) * (p^(–1) mod q) mod q') * p mod n) + mp mod n
    • 8) Ersatz von m durch m mod n.
  • Das Verfahren der ersten Gegenmaßnahme umfasst eine vierte, die Erhöhung der Sicherheit der Operationen erlaubende Variante. In dieser vierten Variante wird ein Teil der Dechiffrierung modulo p und modulo q unter Einsatz des Satzes des Chinesischen Restes realisiert, und ein Teil der Dechiffrierung wird modulo n realisiert. Der Sinn dieser vierten Variante besteht darin, darauf hinzuwirken, dass der Angreifer den Ausgang der den Satz des Chinesischen Restes einsetzenden Rekombination nicht kennt. Diese vierte Variante umfasst die folgenden Stufen:
    • 1) Ermittlung von drei zufälligen, zwischen o und 2^s inbegriffenen Zahlen r, t und u;
    • 2) Berechnung von p' = p*r und q' = q*t;
    • 3) Ersatz von c durch c + u*n
    • 4) Berechnung von cp = c modulo p' und cq = c modulo q';
    • 5) Berechnung von dp = d' modulo p – 1 und dq = d' modulo q – 1;
    • 6) Berechnung von dp' = (dp – 1)/2 und dq' = (dq – 1)/2.
    • 7) Berechnung von mp' = cp^dp' modulo p' und mq' = cq^dq' modulo q';
    • 8) Berechnung m = ((mq – mp) + (p^(–1) mod q) mod q') *p + mp
    • 9) Ersatz von m durch m^2*c mod n.
  • Somit kann der Angreifer, da er den der Stufe 7 entsprechenden Ausgang der den Satz des Chinesischen Restes einsetzenden Rekombination nicht kennt, einen DPA-Angriff auf die den Satz des Chinesischen Restes verwendenden Rekombination nicht ausführen.
  • Die zweite Gegenmaßnahme besteht darin, die den Satz des Chinesischen Restes einsetzende Rekombination zufällig zu machen. Das zufällige Merkmal stammt aus dem Einsatz von zufälligen Berechnungsmodulen. Diese Gegenmaßnahme besteht im Ersatz der Stufen 7 und 8 des Verfahrens der ersten Gegenmaßnahme durch die folgenden Stufen. Mit k wird die Länge (in Bits) der ganzen Zahl p' bezeichnet.
    • a) Auswahl von 2 zufälligen ganzen Zahlen (a0, b0), wie zum Beispiel b0 = a0 – 1, wobei die ganzen Zahlen a0 und b0 die Größe von k Bits haben.
    • b) Berechnung der ganzen Zahl C = (mq – mp) (p^(–1) mod q) mod q'.
    • c) Berechnung (c mod a0) = (C*p + cp) mod a0 und (c mod b0) = (C*p + cp) mod b0.
    • d) Berechnung von 2 zufälligen ganzen Zahlen (a1, b1), wie zum Beispiel b1 = a1 – 1, wobei die ganzen Zahlen a1 und b1 die Größe k Bits haben.
    • e) Berechnung von C = ((c mod b0) – (c mod a0)) mod b0
    • f) Berechnung von (c mod q1) = ((C*a0 + (c mod ao) mod a1 und (c mod b1) = (C*ao + (c mod a0) mod b1
    • g) Wiederholung der Stufen 5 und 6 für ein neues Paar (a2, b2) mit b2 = a2 – 1, wobei die ganzen Zahlen a2 und b2 die Größe k Bits haben. Die ganzen Zahlen (a0, b0) und (a1, b1) werden jeweils durch die ganzen Zahlen (a1, b1) und (a2, b2) ersetzt.
    • h) Die Stufe 7 wird k Mal wiederholt, wobei k ein ganzer Parameter ist.
    • i) Die Stufe g wird bei dem Paar ganzer Zahlen (a, b) = (2^k, 2^k – 1) wiederholt.
    • j) Berechnung der durch c1 = c mod 2^k definierten ganzen Zahl und Berechnung der durch ch = ((c mod 2^k – 1) – (c mod 2^k)) mod 2^k – 1 definierten ganzen Zahl.
    • k) Berechnung der Unterschrift c = ch*2^k + c1.
  • Die Anwendung der beiden vorherigen Gegenmaßnamen erlaubt den Schutz des Dechiffrierungsalgorithmus auf der Chipkarte vor Angriffen vom Typ DPA. Die beiden vorgestellten Gegenmaßnahmen sind darüber hinaus untereinander kompatibel: Es ist möglich, eine oder zwei der beschriebenen Gegenmaßnahmen sowie die 4 Varianten der ersten Gegenmaßnahme auf den Dechiffrierungsalgorithmus RSA anzuwenden.

Claims (6)

  1. Vom elektronischen Mikroprozessor im Zusammenhang mit einem Terminal umgesetzten Gegenmaßnahmen-Verfahren, die es erlaubt, Informationen bezüglich geheimer Daten durch den Stromverbrauch des die Anweisungen eines Programms ausführenden Mikroprozessors nicht offen zu legen, das in der Nutzung eines zufälligen Berechnungsmoduls bei jeder neuen Ausführung eines den Satz des Chinesischen Restes oder CRT einsetzenden Dechiffrierungsalgorithmus RSA besteht, wobei das genannte Verfahren in der Ausführung der Berechnungen moduluo p*r und q*t besteht, wobei r und t zufällige Zahlen sind, wobei das genannte Verfahren am Eingang eine Meldung c, einen Dechiffrierungsexponenten d und einen Sicherheitsparameter s aufnimmt, dadurch gekennzeichnet, dass es die folgenden acht Stufen umfasst: 1) Ermittlung von drei zufälligen, zwischen 0 und 2^s inbegriffenen Zahlen r, t, und u; 2) Berechnung von p' = p*r und q' = q*t, wobei p und q zwei unterschiedliche Primzahlen derselben Größe sind; 3) Ersatz von c durch c + u*n 4) Berechnung von cp = c modulo p' und cq = c modulo q'; 5) Berechnung von dp = d' modulo p – 1 und dq = d' modulo q – 1; 6) Berechnung von mp' = cp^dp modulo p' und mq' = cq^dq modulo q'; 7) Berechnung von m = ((mq – mp)) * (p^(–1) mod q) mod q')*p + mp 8) Ersatz von m durch m mod n.
  2. Gegenmaßnahmen gemäß Anspruch 1, dadurch gekennzeichnet, das ein Zähler T des Anfangswertes 0 bei jeder neuen Ausführung des Algorithmus inkrementiert wird, wobei die ganzen Zahlen r und t denselben Wert beibehalten, solange der Zähler T einen festgelegten Wert L nicht erreicht hat, wobei dann ein neues Paar ganzer Zahlen r und t bestimmt wird, wenn diese Grenze erreicht wird.
  3. Gegenmaßnahmen-Verfahren gemäß Anspruch 1, das den Schutz der den Satz des Chinesischen Restes oder CRT einsetzende Dechiffrierung erlaubt, wobei das genannte Verfahren dadurch gekennzeichnet ist, dass die durch die Gleichung: m = c^d mod n formulierte Dechiffrierungsberechnung zunächst modulo p und modulo q erfolgt, dass das Ergebnis der Berechnung modulo p und modulo q anschließend durch Verwendung des Satzes des Chinesischen Restes oder CRT zusammengestellt wird und dass die Berechnung modulo dem öffentlichen Modul n fortgeführt wird.
  4. Gegenmaßnahmen-Verfahren gemäß Anspruch 3, dadurch gekennzeichnet, dass die genannte Chiffrierungsberechnung die folgenden neun Stufen umfasst: 1) Ermittlung von drei zufälligen, zwischen o und 2^s inbegriffenen Zahlen r, t und u; 2) Berechnung von p' = p*r und q' = q*t; 3) Ersatz von c durch c + u*n 4) Berechnung von cp = c modulo p' und cq = c modulo q'; 5) Berechnung von dp = d' modulo p – 1 und dq = d' modulo q – 1; 6) Berechnung von dp' = (dp – 1)/2 und dq' = (dq – 1)/2. 7) Berechnung von mp' = cp^dp' modulo p' und mq' = cq^dq' modulo q'; 8) Berechnung von m = ((mq – mp) * (p^(–1) mod q) mod q') *p + mp 9) Ersatz von m durch m^2*c mod n.
  5. Gegenmaßnahmen-Verfahren gemäß Anspruch 1, das darin besteht, den Berechnungsmodus bei jeder neuen Ausführung des den Satz des Chinesischen Restes benutzenden Dechiffrierungsalgorithmus zufällig zu machen, wobei das genannte Gegenmaßnahmen-Verfahren im Ersatz der Stufen 7 und 8 des Verfahrens durch die folgenden Stufen besteht, wobei die Größe (in Bits) der ganzen Zahl p' mit k bezeichnet wird: a) Auswahl von 2 zufälligen ganzen Zahlen (a0, b0), wie zum Beispiel b0 = a0 – 1, wobei die ganzen Zahlen a0 und b0 die Größe von k Bits haben. b) Berechnung der ganzen Zahl C = (mq – mp) (p^(–1) mod q) mod q'. c)Berechnung von (c mod a0) = (C*p + cp) mod a0 und (c mod b0) = (C*p + cp) mod b0. d) Berechnung von 2 zufälligen ganzen Zahlen (a1, b1), wie zum Beispiel b1 = a1 – 1, wobei die ganzen Zahlen a1 und b1 die Größe k Bits haben. e) Berechnung von C = ((c mod b0) – (c mod a0)) mod b0 f) Berechnung von (c mod q1) = ((C*a0 + (c mod ao) mod a1 und (c mod b1) = (C*ao + (c mod a0) mod b1 g) Wiederholung der Stufen 5 und 6 für ein neues Paar (a2, b2) mit b2 = a2 – 1, wobei die ganzen Zahlen a2 und b2 die Größe k Bits haben, wobei die ganzen Zahlen (a0, b0) und (a1, b1) jeweils durch die ganzen Zahlen (a1, b1) und (a2, b2) ersetzt werden. h) Die Stufe 7 wird k Mal wiederholt, wobei k ein ganzer Parameter ist. i) Die Stufe 7 wird bei dem Paar ganzer Zahlen (a, b) = (2^k, 2^k – 1) wiederholt. j) Berechnung der ganzen Zahl c1 = c mod 2^k und Berechnung der ganzen Zahl ch = ((c mod 2^k – 1) – (c mod 2^k)) mod 2^k – 1 k) Berechnung der Unterschrift c = ch*2^k + c1.
  6. Chipkarte mit einem Mikroprozessor, wobei der genannte Mikroprozessor Mittel umfasst, um die Stufen des in den Ansprüchen 1 bis 6 definierten Verfahrens umzusetzen.
DE60022770T 1999-10-14 2000-10-13 Gegenmassnahme in einem elektronischen baustein zur ausführung eines kryptoalgorithmus mit öffentlichem schlüssel vom rsa-typ Expired - Lifetime DE60022770T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR9912991A FR2799851B1 (fr) 1999-10-14 1999-10-14 Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique de type rsa
FR9912991 1999-10-14
PCT/FR2000/002880 WO2001028153A1 (fr) 1999-10-14 2000-10-13 Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique de type rsa

Publications (2)

Publication Number Publication Date
DE60022770D1 DE60022770D1 (de) 2005-10-27
DE60022770T2 true DE60022770T2 (de) 2006-06-29

Family

ID=9551073

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60022770T Expired - Lifetime DE60022770T2 (de) 1999-10-14 2000-10-13 Gegenmassnahme in einem elektronischen baustein zur ausführung eines kryptoalgorithmus mit öffentlichem schlüssel vom rsa-typ

Country Status (9)

Country Link
US (1) US7123717B1 (de)
EP (1) EP1224765B1 (de)
CN (1) CN100403674C (de)
AU (1) AU1031501A (de)
DE (1) DE60022770T2 (de)
ES (1) ES2250203T3 (de)
FR (1) FR2799851B1 (de)
MX (1) MXPA02003656A (de)
WO (1) WO2001028153A1 (de)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10061697A1 (de) * 2000-12-12 2002-06-27 Infineon Technologies Ag Verfahren und Vorrichtung zum Ermitteln eines Schlüsselpaars und zum Erzeugen von RSA-Schlüsseln
FR2824209B1 (fr) * 2001-04-30 2003-08-29 St Microelectronics Sa Brouillage d'un calcul mettant en oeuvre une fonction modulaire
FR2844891A1 (fr) * 2002-09-20 2004-03-26 St Microelectronics Sa Masquage de donnees decomposees dans un systeme de residus
IES20040777A2 (en) * 2004-11-22 2006-04-19 Pendula Ltd Protection of electronic data
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
FR2895609A1 (fr) 2005-12-26 2007-06-29 Gemplus Sa Procede cryptographique comprenant une exponentiation modulaire securisee contre les attaques a canaux caches, cryptoprocesseur pour la mise en oeuvre du procede et carte a puce associee
US7991162B2 (en) * 2007-09-14 2011-08-02 University Of Ottawa Accelerating scalar multiplication on elliptic curve cryptosystems over prime fields
CN103684763A (zh) * 2012-09-19 2014-03-26 北京握奇数据系统有限公司 基于rsa算法的数据加密方法、装置及智能卡
CN103441843B (zh) * 2013-07-26 2016-09-21 北京华大信安科技有限公司 Rsa算法私钥元素获取方法及获取装置
CN103580869B (zh) * 2013-11-06 2016-09-21 北京华大信安科技有限公司 一种crt-rsa签名方法及装置
CN104125061A (zh) * 2014-08-12 2014-10-29 昆腾微电子股份有限公司 使用rsa加密算法的电子部件中的防攻击方法
US10855467B2 (en) * 2017-05-17 2020-12-01 Noblis, Inc. Detecting vulnerable encryption keys in network communication systems

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE299631T1 (de) * 1993-11-30 2005-07-15 Canon Kk Verfahren und anordnung zur verschlüsselung/entschlüsselung auf der basis des montgomery-verfahrens unter verwendung von effizienter modularer multiplikation
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
JP3525209B2 (ja) * 1996-04-05 2004-05-10 株式会社 沖マイクロデザイン べき乗剰余演算回路及びべき乗剰余演算システム及びべき乗剰余演算のための演算方法
US5991415A (en) * 1997-05-12 1999-11-23 Yeda Research And Development Co. Ltd. At The Weizmann Institute Of Science Method and apparatus for protecting public key schemes from timing and fault attacks
DE69840959D1 (de) * 1997-12-17 2009-08-20 Nippon Telegraph & Telephone Verschlüsselungs- und Entschlüsselungsvorrichtungen für Kryptosysteme mit öffentlichem Schlüssel und Aufzeichnungsmedium mit darauf gespeicherten zugehörigen Verarbeitungsprogrammen.
DE69834431T3 (de) * 1998-01-02 2009-09-10 Cryptography Research Inc., San Francisco Leckresistentes kryptographisches verfahren und vorrichtung
CA2267721C (en) * 1998-03-26 2002-07-30 Nippon Telegraph And Telephone Corporation Scheme for fast realization of encryption, decryption and authentication
JP4317607B2 (ja) * 1998-12-14 2009-08-19 株式会社日立製作所 情報処理装置、耐タンパ処理装置
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
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

Also Published As

Publication number Publication date
MXPA02003656A (es) 2002-10-23
EP1224765A1 (de) 2002-07-24
ES2250203T3 (es) 2006-04-16
WO2001028153A1 (fr) 2001-04-19
US7123717B1 (en) 2006-10-17
CN1411644A (zh) 2003-04-16
CN100403674C (zh) 2008-07-16
FR2799851B1 (fr) 2002-01-25
DE60022770D1 (de) 2005-10-27
EP1224765B1 (de) 2005-09-21
AU1031501A (en) 2001-04-23
FR2799851A1 (fr) 2001-04-20

Similar Documents

Publication Publication Date Title
DE2843583C2 (de) Verfahren für den zugriffsicheren Nachrichtenverkehr über einen ungesicherten Nachrichtenübertragungskanal
DE69828787T2 (de) Verbessertes verfahren und vorrichtung zum schutz eines verschlüsselungsverfahrens mit öffentlichem schlüssel gegen angriffe mit zeitmessung und fehlereinspeisung
DE60200496T2 (de) Verfahren und Vorrichtung zur Ausführung eines effizienten mittels Kennwort authentifizierten Schlüsselaustauschs
DE60125710T2 (de) Manipulationssichere Methode zur modularen Multiplikation
DE602004013206T2 (de) Verfahren und diesbezügliche einrichtung zur hardwareorientierten umsetzung zwischen arithmetik- und boolscher zufallsmaskierung
EP1891512B1 (de) Bestimmung einer modularen inversen
DE60022770T2 (de) Gegenmassnahme in einem elektronischen baustein zur ausführung eines kryptoalgorithmus mit öffentlichem schlüssel vom rsa-typ
EP2901611B1 (de) Seitenkanalgeschützte maskierung
CH694601A5 (de) Verfahren zur Verifizierung der Echtheit von ausgetauschten Nachrichten.
DE69935455T2 (de) Kryptographisches verfahren unter verwendung eines öffentlichen und eines privaten schlüssels
DE602004006628T2 (de) Verfahren zur gesicherten ausführung eines rsa kryptographischen algorithmus, sowie diesbezüglicher baustein.
DE10024325B4 (de) Kryptographisches Verfahren und kryptographische Vorrichtung
DE10143728A1 (de) Vorrichtung und Verfahren zum Berechnen eines Ergebnisses einer modularen Exponentiation
DE60204955T2 (de) Gegenmassnahmen in einem elektronischen baustein zur ausführung eines krypto-algorithmus mit auf elliptischen kurven basierendem öffentlichen schlüssel
DE69735290T2 (de) Verfahren zur unsymmetrischen kryptographischen kommunikation und zugehöriger tragbarer gegenstand
DE10304451B3 (de) Modulare Exponentiation mit randomisiertem Exponenten
DE60117813T2 (de) Verfahren und Vorrichtung zur Speicherung und wiedergewinnung eones Privaten Kryptoschlüssels
WO2021156005A1 (de) Schlüsselgenerierung und pace mit sicherung gegen seitenkanalangriffe
DE60210331T2 (de) Kryptographisches verfahren unter der benutzung öffentlicher schlüssel basierend auf den gruppen der zöpfe
DE60100992T2 (de) Verfahren zur modularen potenzierung in einem elekronischen baustein, der einen kryptographischen algorithmus mit öffentlichem schlüssel durchführt
DE10328860A1 (de) Vorrichtung und Verfahren zum Verschlüsseln von Daten
WO2003034268A2 (de) Verfahren und vorrichtung zum absichern einer exponentiations-berechnung mittels dem chinesischen restsatz (crt)
EP1506473B1 (de) Ausspähungsgeschützte modulare inversion
EP2128754B1 (de) Sichere sliding window exponentiation
DE10162496B4 (de) Verfahren und Vorrichtung zum Absichern einer Berechnung in einem kryptographischen Algorithmus

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
R082 Change of representative

Ref document number: 1224765

Country of ref document: EP

Representative=s name: HOFFMANN - EITLE, DE