DE60100992T2 - Verfahren zur modularen potenzierung in einem elekronischen baustein, der einen kryptographischen algorithmus mit öffentlichem schlüssel durchführt - Google Patents

Verfahren zur modularen potenzierung in einem elekronischen baustein, der einen kryptographischen algorithmus mit öffentlichem schlüssel durchführt Download PDF

Info

Publication number
DE60100992T2
DE60100992T2 DE60100992T DE60100992T DE60100992T2 DE 60100992 T2 DE60100992 T2 DE 60100992T2 DE 60100992 T DE60100992 T DE 60100992T DE 60100992 T DE60100992 T DE 60100992T DE 60100992 T2 DE60100992 T2 DE 60100992T2
Authority
DE
Germany
Prior art keywords
bit
bits
size
stages
carried out
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
DE60100992T
Other languages
English (en)
Other versions
DE60100992D1 (de
Inventor
Olivier Benoit
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 DE60100992D1 publication Critical patent/DE60100992D1/de
Publication of DE60100992T2 publication Critical patent/DE60100992T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/723Modular exponentiation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • 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/7261Uniform execution, e.g. avoiding jumps, or using formulae with the same power profile

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)
  • Lock And Its Accessories (AREA)
  • Complex Calculations (AREA)

Description

  • Die vorliegende Erfindung betrifft ein Anti-SPA (aus dem Englischen „Simple Power Attack") Berechnungsverfahren einer modularen Exponentierung in einer einen Chiffrierungsalgorithmus mit öffentlichem Schlüssel um- setzenden elektronischen Komponente.
  • Derartige Angriffe werden in den Veröffentlichungen von Kocher P. et al. unter dem. Titel „Differential Power Analysis" Lecture Notes in Computer Science; Band 1666, DE, Berlin, Springer, 1999, Seiten 388-397, XP000863414 ISBN: 3-540-66347-9 und von Messerges T. S. et al., unter dem Titel „Power Analysis Attacks of Modular Exponentiation in Smartcards" Cryptographic Hardware and Embedded Systems, First International Workshop, CHE'99, Worcester,. MA; USA, 12.-13. August 1999, Proceedings (Lecture Notes in Computer Science Volume 1717), Seiten 144-157, XP000952221 1999, Berlin, Deutschland, Springer Verlag, Deutschland ISBN:3-540-66646-X beschrieben.
  • Die Merkmale kryptographischer Algorithmen mit öffentlichem Schlüssel sind bekannt: durchgeführte Berechnungen, verwendete Parameter. Die einzige Unbekannte ist der im Speicherprogramm enthaltene private Schlüssel. Die ganze Sicherheit dieser kryptographischen Algorithmen hängt von diesem in der Karte enthaltenen privaten und der Außenwelt dieser Karte unbekannten Schlüssel ab. Dieser private Schlüssel kann nicht einzig und allein durch die Kenntnis der am Eingang angewendeten Meldung und der chiffrierten, als Rückantwort gelieferten Meldung oder der Kenntnis des öffentlichen Schlüssels erschlossen werden.
  • Es ist jedoch vorgekommen, dass auf dem Verbrauch von Strom oder einer Analyse des Stromverbrauchs basierende Angriffe von außen auftreten, wenn der Mikroprozessor einer Karte dabei ist, den kryptographischen Algorithmus zur Unterzeichnung einer Meldung, zum Dechiffrieren einer Meldung abwickelt, was es Dritten mit unlauteren Absichten ermöglicht, den in dieser Karte enthaltenen privaten Schlüssel herauszufinden. Diese Angriffe werden SPA-Angriffe genannt, nach dem angelsächsischen Akronym für Single Power Analysis.
  • Das Prinzip dieser SPA-Angriffe beruht auf der Tatsache, dass der Stromverbrauch des die Anweisungen ausführenden Mikroprozessors je nach den manipulierten Daten variiert.
  • Insbesondere, wenn eine vom Mikroprozessor ausgeführte Anweisung eine Manipulation von Daten von Bit zu Bit erfordert, gibt es zwei unterschiedliche Stromprofile, je nachdem, ob dieses Bit eine Wertigkeit von „1" oder „0" hat. Wenn der Mikroprozessor ein „0" manipuliert, besteht typischerweise in diesem Ausführungsmoment eine erste Amplitude des verbrauchten Stroms, und wenn der Mikroprozessor eine „1" manipuliert, besteht eine zweite, von der ersten unterschiedliche Amplitude des verbrauchten Stroms.
  • Somit nutzt der SPA-Angriff die Unterschiedlichkeit des Verbrauchsprofils des Stroms in der Karte während der Ausführung einer Anweisung gemäß dem Wert des manipulierten Bits. In vereinfachter Weise besteht die Durchführung eines SPA-Angriffs in der Identifizierung einer oder mehrerer besonderer Perioden der die Ausführung einer die Daten Bit für Bit manipulierenden Anweisung umfassenden Abwicklung des Algorithmus und in der Unterscheidung zweier unterschiedlicher Verbrauchsprofile für Strom, wobei eines der Manipulation eines Bits gleich „0" und die andere einem Bit gleich „1" entspricht. Die Analyse erfolgt auf einer Kurve oder eventuell auf n Kurven derselben Abwicklung des Algorithmus, dessen Mittelwert zur Geräuschunterdrückung gebildet wurde.
  • Die modulare Exponentierung wird durch die folgende mathematische Formel definiert: R = XY mod N,in der:
    Y ein Exponent ist, der eine Größe von k Bits hat;
    N ein Modulus ist, der eine Größe von k' Bits hat.
  • X eine bekannte Variable ist, die eine Größe von k" Bits hat;
    R das Ergebnis der modularen Exponentierungsoperation ist und eine Größe von k' Bits hat.
  • Man kann die klassischen, bekannten und nachstehend beschriebenen Algorithmen A oder B verwenden.
  • Der für die Berechnung der oben genannten mathematischen Formel verwendete klassische Algorithmus A lautet wie folgt:
    • – Man initialisiert R mit 1 : R = 1;
    • – Man durchläuft die binäre Darstellung von Y des Bits mit mit Y(k-1) bezeichneter hoher Wertigkeit zum Bit mit niedriger Wertigkeit Y(0); bei jedem Bit Y(i) – wobei i von (k-1) bis 0 variiert – führt man die zusätzliche Operation R = R2 durch.
  • Wenn das Bit Y(i) gleich 1 ist, wird eine zusätzliche Stufe ausgeführt, die aus folgender Operation besteht: R = R·X.
  • Wenn Y zum Beispiel gleich 5 ist, ist seine binäre Darstellung: 101;
    Wenn man den obigen Algorithmus anwendet:
    • – führt man für das erste Bit [Y(2) = 1] R = R2 durch, gefolgt von der Operation: R·X = X, ergibt das Ergebnis R = X;
    • – führt man für das zweite Bit [Y(1) = 0] die Opera tion R = R2 aus, ergibt das Ergebnis R = X2;
    • – führt man für das dritte Bit [Y (0) = 1] die Operation R = (R2)2 aus, gefolgt von der Operation R = R·X, ergibt das Ergebnis R = (X2)2 = X5. Zur Erinnerung – man nimmt das vorherige R immer wieder auf.
  • Selbstverständlich werden alle für das Beispiel Y gleich 5 beschriebenen mathematischen Operationen Modu-lo N durchgeführt, was die Arbeit mit einem Register r einer Größe von k' Bits erlaubt.
  • Der für die Berechnung der oben genannten mathematischen Formel benutzte klassische Algorithmus B lautet wie folgt:
    • – Man initialisiert R mit 1 und Z mit X: R = 1 und Z = X, wobei Z eine Variable ist:
    • – Man durchläuft die binäre Darstellung von Y des Bits von niedriger Wertigkeit Y(0) zum Bit mit hoher Wertigkeit Y(k-1); Für jedes Bit Y(i) – wobei i von 0 bis (k-1) variiert – führt man die zusätzliche Operation: Z = Z2 durch, unabhängig von i größer als 0; Wenn das Bit Y(i) gleich 1 ist, wird eine zusätzliche Stufe durchgeführt, die aus der Operation : R = R·Z besteht.
  • Wenn Y zum Beispiel gleich 5 ist, ist seine binäre Darstellung 101.
  • Wenn man den obigen Algorithmus anwendet:
    • – Erhält man für das erste Bit Y(0) = 1; führt man die Operation Z2 nicht durch (denn i = 0) und führt die Operation: R = R·Z = X durch.
    • – Erhält man für das zweite Bi [Y(1)] = 0 , führt man die Operation Z2 = X2 durch; ist R unverändert, denn Y(1) = 0;
    • – Erhält man für das dritte Bit [Y(2) = 1], führt man die Operation: Z = Z2 = X4 durch, und da Y(2) gleich 1 ist, führt man ebenfalls die Operation R = R·Z durch und erhält damit X5.
  • Zur Erinnerung nimmt man das vorherige R und das vorherige Z immer wieder auf.
  • Selbstverständlich werden alle für das Beispiel Y gleich 5 beschriebenen mathematischen Operationen Modulo N durchgeführt, was die Arbeit mit den Registern r und z einer Größe von k' Bits zulässt.
  • Dennoch wird dieser Algorithmus B selten in einer elektronischen Komponente vom Typ Chipkarte benutzt, denn er erfordert mehr Speicherplatz (zusätzliches Register z einer Größe von k' Bits).
  • Es ist festzustellen, dass man auf den oben erklärten klassischen Algorithmen A und B in Abhängigkeit von jedem Bit von Y eine Operation durchführt, wenn das Bit gleich 0 ist und zwei Operationen, wenn das Bit gleich 1 ist. Diese Algorithmen A und B werden für den RSA genutzt. Zu Erinnerung: Das Chiffrierungssystem RSA ist das am häufigsten genutzte Chiffrierungssystem mit öffentlichem Schlüssel. Es kann als Chiffrierungsverfahren oder als Unterschriftsverfahren eingesetzt werden. Das Chiffrierungssystem RSA wird in Chipkarten für bestimmte Anwendungen derselben verwendet. Die auf einer Chipkarte möglichen RSA-Anwendungen sind der Zugang zu Datenbanken, zu Bankenanwendungen, zu Telezahlungsanwendungen, wie zum Beispiel Pay-TV, die Ausgabe von Benzin oder die Zahlung der Autobahnmaud. Diese Liste von Anwendungen erhebt selbstverständlich keinen Anspruch auf Vollständigkeit.
  • Das Prinzip des RSA-Chiffrierungssystems ist folgendes. Es kann in drei unterschiedliche Teile unterteilt werden, und zwar:
    • 1) Die Erzeugung des RSA-Schlüsselpaares;
    • 2) Die Chiffrierung einer unchiffrierten Nachricht in einer chiffrierte Nachricht und
    • 3) Die Dechiffrierung einer chiffrierten Nachricht in eine unchiffrierte Nachricht.
  • Eine RSA-Chiffrierungsnachricht besteht darin, dass man eine Zahl c chiffriert, die gleich einer durch die Operation: C = Me mod N dargestellten Nachricht Me mod N ist, in der e der öffentliche Chiffrierungsexponent ist und N der Modulus.
  • Eine RSA-Dechiffrierungsoperation besteht darin, dass man eine Nachricht M' berechnet, die gleich M ist, wenn man genau und richtig dechiffriert, und durch die Operation M' = Cd mod Ndargestellt wird, in der d der private Dechiffrierungsexponent ist und N der Modulus.
  • Es ist festzustellen, dass der RSA direkt eine modulare Exponentierungsoperation ist.
  • Es stellt sich heraus, dass d ein geheimes, da privates Element ist; es ist daher festzustellen, dass d äquivalent zu Y des klassischen Algorithmus A oder B ist, der zu Beginn der Beschreibung beschrieben wurde. Dennoch können diese für den RSA verwendeten Algorithmen durch einfaches Studium des Stromverbrauchs der die Erfindung umsetzenden elektronischen Komponente angegriffen werden.
  • Wenn man nämlich berücksichtigt, dass die Unterschrift S einer „Quadratoperation" (operation square) genannten und mit der Referenz S(SQU) bezeichneten Operation R2 für den Algorithmus A und Z2 für den Algorith mus B, von der Unterschrift S der „Multiplikationsoperation" (operation multiply) genannten und mit der Referenz S (MUL) bezeichneten Operation R·X für den Algorithmus A und Z·R für den Algorithmus B unterschiedlich ist, dann besteht der Stromverbrauch bei der zuvor beschriebenen Ausführung des Algorithmus A oder B aus einer Folge von direkt von Y abhängigen Unterschriften S (SQU) und S (MUL).
  • Im Fall des Algorithmus A hat man bei Y gleich 5 zum Beispiel die folgende Folge von Unterschriften:
    [S(SQU), S(MUL)], [S(SQU)], [S(SQU), S(MUL)], wobei die Unterschriftenfolge [S(SQU)] gefolgt von (S(MUL)] einem Bit von gleich 1 und die Unterschrift (S(SQU)] gefolgt von der Unterschrift [S(SQU)] einem Bit von gleich 0 entspricht.
  • Wenn man die Unterscheidung zwischen S(SQU) und S(MUL) vornehmen kann, kann man durch einfaches Betrachten des Stromverbrauchs den gesamten Wert Y herausfinden. Wenn man diesen Angriff auf den oben beschriebenen RSA anwendet, findet man Y = d, das der private Dechiffrierungsexponent ist, der per Definition geheim bleiben muss, was daher sehr störend ist.
  • Die vorliegende Erfindung erlaubt die Behebung dieses bedeutenden Nachteils.
  • Um jedoch die erfinderische Tätigkeit der Erfindung deutlich hervorzuheben, ist es sinnvoll, ein Weiterbildungsbeispiel der wenn auch fehlerhaften Algorithmen A und B zu beschreiben.
  • Im klassischen Algorithmus A oder B geht man davon aus, dass die Komponente, die die Erfindung umsetzt, über eine optimierte, mit SQU bezeichnete, „Square" (Quadrat) genannte Operation verfügt, die R2 effizienter ausrechnet als die mit MUL bezeichnete Operation „Multiply" (Multiplizieren).
  • Die erste Parade gegen den Angriff besteht in der anschließlichen Verwendung der Operation MUL. In diesem Fall bleibt nur noch die Unterschrift der Operation „Multiply" bestehen, was die Unterscheidung irgendeiner, die Zurückrechnung des Wertes Y erlaubenden Information nicht mehr zulässt. Genauer gesagt hat die mathematische Operation „Multiply" zwei Operanden V und W und wird durch folgende Formel definiert: MUL (V, W) = V·W.
  • Theoretisch schützt man sich, doch in der Praxis wird die Operation MUL (V, V) oder die Operation MUL (V, W) eingesetzt; es besteht also immer noch ein Unterschied beim Stromverbrauch, da die Operanden unterschiedlich sind. Es handelt sich nicht um eine zuverlässige Lösung.
  • Die vorliegende Erfindung besteht aus einem Berechnungsverfahren einer modularen Exponentierung gemäß Definition in den unabhängigen Ansprüchen 1 und 2, das die Verhinderung des oben soeben erwähnten Nachteils ermöglicht.
  • Man verwendet zwei Register R1 und R2 und einen Indikator I, der gleich Null ist, wobei „0" bedeutet, dass sich das Ergebnis im Register R1 befindet, oder das gleich eins ist, wobei „1" bedeutet, dass sich das Ergebnis im Register R2 befindet; dadurch wird die Anzeige erlaubt, in welchem Register sich das richtige Ergebnis befindet.
  • Der Algorithmus der Erfindung, der den Algorithmus A wieder aufnimmt, besteht in der Ausführung durch die folgenden Initialisierungsstufen a und b und die Berechnungsstufen c, d, e und f, die k-mal ausgeführt werden, wobei k die Größe Y hat, wobei die Stufen nachstehend beschrieben werden:
    • a) Man initialisiert R1 = 1
    • b) Man initialisiert I = 0; für jedes Bit Y(i) der binären Darstellung von Y führt man die vier folgenden Stufen c, d, e, und f von „0" bis „k-1" durch; man durchläuft die binäre Darstellung von Y des Bits hoher Gewichtung Y(k-1) zum Bit niedriger Gewichtung Y(0);
    • c) Wenn I = 0, führt man die Operation R2 = (R1)2 durch; Wenn I = 1, führt man die Operation R1 = (R2)2 durch;
    • d) Man vervollständigt I, das heißt, es ändert den Wert, jedoch nur, von „0" zu „1" oder von „1" zu „0"
    • e) Man wiederholt die Testoperation auf I: Wenn I = 0, führt man die Operation R2 = R1·X durch; Wenn I = 1, führt man die Operation R1 = R2·X durch;
    • f) Wenn Y(i) gleich 1 ist, dann vervollständigt man I: wenn Y(i) gleich 0 ist, dann behält man I unverändert bei.
  • Somit führt man unabhängig vom Wert Y immer eine SQU-Operation und eine MUL-Operation durch. In der Stufe d verfügt man daher über eine der beiden folgenden Unterschriften: S(R2 = SQU (R1)) oder S(R1 = SQU (R2)).
  • In der Stufe f verfügt man ebenfalls über eine der beiden folgenden Unterschriften: S(R1 = MUL (R2, X)) oder S (R2 = MUL (R1, X)).
  • Die Unterschriften der Stufe c sind äquivalent, denn sie verwenden dieselben Operanden und führen dieselbe Operation (SQU) durch.
  • Die Unterschriften der Stufe e sind äquivalent, denn sie verwenden dieselben Operanden und führen dieselbe Operation (MUL) durch.
  • Infolgedessen ist es nicht mehr möglich, den Wert Y zurückzurechnen, der eine Folge von Operationen (SQU) und (MUL) ist. Die Anwendung der vorliegenden Erfindung lässt die Berechnung einer modularen Exponentiation auf gesicherte Weise in einer einen Algorithmus mit einem einen modularen Exponentierungsalgorithmus erfordernden öffentlichen Schlüssel umsetzenden elektronischen Komponente zu.
  • Der Algorithmus der vorliegenden Erfindung, die den klassischen Algorithmus B wieder aufnimmt, besteht in der Ausführung durch die folgenden Initialisierungsstufen a und b und der folgenden Berechnungsstufen c, d und e, die k-mal ausgeführt werden, wobei k die Größe Y hat.
    • a) Man initialisiert R1 = 1 und Z = X;
    • b) Man initialisiert I = 0;
  • Für jedes Bit von Y(i) der, binären Darstellung von Y führt man die drei Stufen c, d und e durch, wobei i von „0" bis „k-1" variiert; man durchläuft die binäre Darstellung von Y des Bits niedriger Wertigkeit Y(0) zum Bit hoher Wertigkeit Y(k-1),
    • c) Man führt die Operation: Z: = Z2 durch;
    • d) Wenn I = 0, führt man die Operation: R2: = R1·Z durch; Wenn I = 1, führt man die Operation: R1 = R2·Z durch;
    • e) Wenn Y(i) = 0, dann behält man I unverändert bei und wenn Y(i) = 1, dann vervollständigt man I.
  • Somit führt man unabhängig vom Wert Y immer eine Operation SQU und eine Operation MUL durch. In der Stufe c verfügt man daher über die folgende Unterschrift: S(SQU).
  • In der Stufe d verfügt man über eine der beiden folgenden Unterschriften: S(R1 = MUL (R2, Z) oder S(R2 = MUL (R1, Z)). Die Unterschriften der Stufe d sind äqui valent, denn sie verwenden dieselben Operanden und führen dieselbe Operation (MUL) durch.
  • Infolgedessen ist es nicht mehr möglich, den Wert Y zurückzurechnen, der eine Operationsfolge (SQU) und (MUL) ist. Die Anwendung der vorliegenden Erfindung erlaubt die Berechnung einer modularen Exponentierung auf gesicherte Weise in einer einen Algorithmus mit einem einen modularen Exponentierungsalgorithmus erfordernden öffentlichem Schlüssel umsetzenden elektronischen Komponente.
  • Wie im erfindungsgemäßen Beispiel verwendet man den DAS, der eine Variante des Algorithmus der Unterschriften von Schnorr und ElGamal ist.
  • Zur Unterzeichnung der Stufen m werden die folgenden Stufen realisiert:
    • 1) Erzeugung einer zufälligen Anzahl K;
    • 2) Berechnung von r = (gkmodp) modq wobei g, p et q ganze, öffentliche, der Außenwelt außerhalb der Chipkarte bekannte Zahlen sind;
    • 3) Berechnung von s = (K–1 (H(m) + x·r)) modq, wobei H() die Zerlegungsfunktion und x ein privater Schlüsse ist.
  • Das Paar (r, s) entspricht der Unterschrift der Nachricht m.
  • Es ist festzustellen, dass K geheim ist.
  • Die Stufe 2 besteht teilweise aus einer modularen Exponentierung: r' = gKmdp und r = r' modq.
  • Wenn die modulare Exponentierung mit dem klassischen Algorithmus A oder B wie zuvor beschrieben durchgeführt wird, lässt ein SPA-Angriff das Zurückrechnen des Wertes k zu. In Kenntnis von k kann der Angreifer, da s, m und r bekannt sind, den geheimen Schlüssel x berechnen. Damit hat er den Schlüssel der Unterschrift herausgefunden, und das System ist geknackt. Es ist daher vorzuziehen, die vorliegende Erfindung oder ihre Ausführungsvariante zur Durchführung der modularen Exponentierung der Stufe 2 des vorliegenden Beispiels einzusetzen.
  • Da die Berechnungsmethode des Algorithmus in der vorliegenden Erfindung das Zurückrechnen von k durch Studium des Stromverbrauchs nicht zulässt, kann der Angreifer somit nicht den Wert des privaten Schlüssels x zurückrechnen.

Claims (5)

  1. In einem elektronischen Kryptographiegerät mit öffentlichem Schlüssel implementiertes Berechnungsverfahren einer modularen, durch die folgende mathematische Formel definierte Exponentierung: R = XY mod N,wobei Y ein eine Größe von k Bits darstellender Exponent ist, N ein eine Größe von k' Bits darstellender Modulus ist, X eine die Größe k " Bits darstellende bekannte Variable ist; wobei R das Ergebnis der modularen Exponentierungsoperation ist und eine Größe von k' Bits aufweist und mit Registern R1 und R2 und einem Indikator I, der anzeigt, ob sich das Ergebnis im Register R1 oder R2 befindet, wobei das genannte Verfahren dadurch gekennzeichnet ist, dass es die folgenden Ausführungsstufen mit. den als Initialisierungsstufen bezeichneten. Stufen a und b und den als Berechnungsstufen bezeichneten Stufen c, d, und e aufweist: a) man initialisiert R1 = 1 und Z = X; b) man initialisiert I = 0; für jedes Bit von Y(i) der binären Darstellen Y führt man die drei Stufen c, d, und e durch, wobei i von „0" bis „k-1" variiert; man durchläuft also die bi näre Darstellung von Y des Bits mit geringer Wertigkeit Y(0) zum Bit mit hoher Wertigkeit Y (k-1); c) man führt die Operation: T: = Z2 durch; d) Wenn I = 0, führt man die Operation: R2: = R1·Z durch; Wenn I = 1, führt man die Operation: R1 = R2·Z durch; e) wenn Y(i) = 0, belässt man I unverändert, und wenn Y(i) = 1, vervollständigt man I.
  2. In einem elektronischen Kryptographiegerät mit öffentlichem Schlüssel implementiertes Berechnungsverfahren einer modularen, durch die folgende mathematische Formel definierte Exponentierung: R = XY mod N,wobei Y ein eine Größe von k Bits darstellender Exponent ist; wobei N ein eine Größe von k' Bits darstellender Modulus ist, wobei X eine eine Größe von k" Bits darstellende bekannte Variable ist; wobei R das Ergebnis der modularen, Exponentierungsoperation mit einer Größe von k' Bits ist und mit Registern R1 und R2 und einem Indikator I, der angibt, ob sich das Ergebnis im Register R1 oder R2 befindet, wobei das genannte Verfahren dadurch gekennzeichnet ist, dass er die folgenden Ausführungsstufen mit den als Initialisierungsstufen bezeichneten Stufen a und B und den als Berechnungsstufen bezeichneten Stufen c, d, e, und aufweist: a) Man initialisiert R1 = 1; b) Man initialisiert I = 0; Für jedes Bit Y(i) der binären Darstellung von Y führt man die vier folgenden Stufen c, d, e und f aus, wobei i von „0" bis „k-1" variiert, man durchläuft die binäre Darstellung von Y des Bits hoher Wertigkeit Y(k-1) zum Bit niedriger Wertigkeit Y(0); c) Wenn I = 0, führt man die Operation R2 = (R1)2 durch; Wenn I = 1, führt man die Operation R1 = (R2)2 durch; d) In beiden Fällen der Stufe c vervollständigt man I, das heißt, es ändert den Wert, jedoch nur von „0" zu „1" oder von „1" zu „0". e) Man wiederholt die Testoperation für I: Wenn I = 0, führt man die Operation R2 = R1·X aus; Wenn I = 1, führt man die Operation R1 = R2·X aus; f) Wenn Y(i) gleich 1 ist, dann vervollständigt man I; wenn Y(i) gleich 0 ist, bleibt I unverändert.
  3. Elektronische Komponente, dadurch gekennzeichnet, dass sie einen beliebigen Anspruch von 1 bis 2 umsetzt.
  4. Elektronische Komponente gemäß Anspruch 3, dadurch gekennzeichnet, dass sie ein tragbarer elektronischer Gegenstand vom Typ Chipkarte ist.
  5. Elektronisches Terminal, dadurch gekennzeichnet, dass es einen beliebigen Anspruch von 1 bis 2 umsetzt.
DE60100992T 2000-01-26 2001-01-18 Verfahren zur modularen potenzierung in einem elekronischen baustein, der einen kryptographischen algorithmus mit öffentlichem schlüssel durchführt Expired - Lifetime DE60100992T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR0001333 2000-01-26
FR0001333A FR2804225B1 (fr) 2000-01-26 2000-01-26 Algorithme d'exponentiation modulaire dans un composant electrique mettant en oeuvre un algorithme de chiffrement a cle publique
PCT/FR2001/000166 WO2001055838A2 (fr) 2000-01-26 2001-01-18 Algorithme d'exponentation modulaire dans un composant electronique mettant en oeuvre un algorithme de chiffrement a cle publique

Publications (2)

Publication Number Publication Date
DE60100992D1 DE60100992D1 (de) 2003-11-20
DE60100992T2 true DE60100992T2 (de) 2004-11-11

Family

ID=8846598

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60100992T Expired - Lifetime DE60100992T2 (de) 2000-01-26 2001-01-18 Verfahren zur modularen potenzierung in einem elekronischen baustein, der einen kryptographischen algorithmus mit öffentlichem schlüssel durchführt

Country Status (9)

Country Link
US (1) US7174016B2 (de)
EP (1) EP1254408B1 (de)
JP (1) JP3878853B2 (de)
CN (1) CN1397035A (de)
AU (1) AU2001235547A1 (de)
DE (1) DE60100992T2 (de)
FR (1) FR2804225B1 (de)
MX (1) MXPA02006801A (de)
WO (1) WO2001055838A2 (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
TW586086B (en) * 2002-12-27 2004-05-01 Ind Tech Res Inst Method and apparatus for protecting public key schemes from timing, power and fault attacks
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
FR2887351A1 (fr) * 2005-06-16 2006-12-22 St Microelectronics Sa Protection d'un calcul d'exponentiation modulaire effectue par un circuit integre
FR2972064B1 (fr) * 2011-02-25 2013-03-15 Inside Secure Procede de cryptographie comprenant une operation d'exponentiation
EP2793123A1 (de) * 2013-04-16 2014-10-22 Gemalto SA Verfahren zur sicheren Ausführung einer modularen Exponentiation
CN103441843B (zh) * 2013-07-26 2016-09-21 北京华大信安科技有限公司 Rsa算法私钥元素获取方法及获取装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6064740A (en) * 1997-11-12 2000-05-16 Curiger; Andreas Method and apparatus for masking modulo exponentiation calculations in an integrated circuit
EP1084548B1 (de) * 1998-06-03 2008-12-17 Cryptography Research Inc. Gesicherte moduläre potenzierung mit leckminimierung für chipkarten und andere kryptosysteme

Also Published As

Publication number Publication date
WO2001055838A3 (fr) 2001-12-20
US7174016B2 (en) 2007-02-06
FR2804225A1 (fr) 2001-07-27
MXPA02006801A (es) 2002-10-23
US20030053621A1 (en) 2003-03-20
WO2001055838A2 (fr) 2001-08-02
JP2003521010A (ja) 2003-07-08
AU2001235547A1 (en) 2001-08-07
CN1397035A (zh) 2003-02-12
DE60100992D1 (de) 2003-11-20
FR2804225B1 (fr) 2002-05-03
EP1254408A2 (de) 2002-11-06
JP3878853B2 (ja) 2007-02-07
EP1254408B1 (de) 2003-10-15

Similar Documents

Publication Publication Date Title
DE60217260T2 (de) Datenverarbeitungs- und Verschlüsselungseinheit
Goubin et al. DES and differential power analysis the “Duplication” method
Messerges Power analysis attacks and countermeasures for cryptographic algorithms
US10431123B2 (en) Method for testing and hardening software applications
EP2742643B1 (de) Vorrichtung und verfahren zum entschlüsseln von daten
DE69936856T2 (de) Ausgewogene kryptographische rechenmethode und apparat zur schlupfminimierung in smartcards und anderen kryptosystemen
DE602004013206T2 (de) Verfahren und diesbezügliche einrichtung zur hardwareorientierten umsetzung zwischen arithmetik- und boolscher zufallsmaskierung
KR100805286B1 (ko) 정보처리장치 정보처리방법 및 카드부재
US8559625B2 (en) Elliptic curve point transformations
DE112008000668T5 (de) Kryptografisches Verfahren und System
WO2001059728A1 (de) Verfahren und anordnung zur gegenseitigen authentifizierung zweier datenverarbeitungseinheiten
DE102005024609A1 (de) Bestimmung einer modularen Inversen
EP2118739A1 (de) Reduktion von seiten-kanal-informationen durch interagierende krypto-blocks
DE602004006628T2 (de) Verfahren zur gesicherten ausführung eines rsa kryptographischen algorithmus, sowie diesbezüglicher baustein.
Kundu et al. Higher-order masked saber
DE112009000152B4 (de) Verfahren zur Datenübertragung über einen Datenkanal mit einem Elliptische-Kurven-Kryptographieverfahren und Vorrichtung hierfür
DE60100992T2 (de) Verfahren zur modularen potenzierung in einem elekronischen baustein, der einen kryptographischen algorithmus mit öffentlichem schlüssel durchführt
DE10304451B3 (de) Modulare Exponentiation mit randomisiertem Exponenten
US7123717B1 (en) Countermeasure method in an electronic component which uses an RSA-type public key cryptographic algorithm
DE102006013975B4 (de) Kryptographievorrichtung und -verfahren mit Skalarmultiplikation
EP1540880A1 (de) Geschützte kryptographische berechnung
US8065735B2 (en) Method of securing a calculation of an exponentiation or a multiplication by a scalar in an electronic device
DE10328860B4 (de) Vorrichtung und Verfahren zum Verschlüsseln von Daten
US7215769B2 (en) Non-autonomous dynamical orbit cryptography
DE69928684T2 (de) Gegenmassnahmenvorrichtung in einem elktronischen bauteil um einen krypto-algorithmus mit geheimschlüssel durch zu führen

Legal Events

Date Code Title Description
8332 No legal effect for de
8370 Indication related to discontinuation of the patent is to be deleted
8364 No opposition during term of opposition