DE102010001289B4 - Vorrichtung zum Berechnen eines Ergebnisses einer Skalarmultiplikation - Google Patents

Vorrichtung zum Berechnen eines Ergebnisses einer Skalarmultiplikation Download PDF

Info

Publication number
DE102010001289B4
DE102010001289B4 DE102010001289.0A DE102010001289A DE102010001289B4 DE 102010001289 B4 DE102010001289 B4 DE 102010001289B4 DE 102010001289 A DE102010001289 A DE 102010001289A DE 102010001289 B4 DE102010001289 B4 DE 102010001289B4
Authority
DE
Germany
Prior art keywords
point
result
scalar multiplication
auxiliary
processor
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.)
Active
Application number
DE102010001289.0A
Other languages
English (en)
Other versions
DE102010001289A1 (de
Inventor
Wieland Fischer
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.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
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 Infineon Technologies AG filed Critical Infineon Technologies AG
Publication of DE102010001289A1 publication Critical patent/DE102010001289A1/de
Application granted granted Critical
Publication of DE102010001289B4 publication Critical patent/DE102010001289B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
    • 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/724Finite field arithmetic
    • G06F7/725Finite field arithmetic over elliptic curves
    • 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/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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • 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
    • 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
    • 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/04Masking or blinding
    • H04L2209/046Masking or blinding of operations, operands or results of the operations
    • 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)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Algebra (AREA)
  • Complex Calculations (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

Vorrichtung (100) zum Berechnen eines Ergebnisses einer Skalarmultiplikation einer Referenzzahl mit einem Referenzpunkt auf einer elliptischen Kurve, wobei die Vorrichtung (100) folgende Merkmale aufweist:einen Punktselektor (110), der dahin gehend konfiguriert ist, einen Hilfspunkt (112) auf der elliptischen Kurve zufällig oder pseudozufällig zu wählen; undeinen Prozessor (120), der dahin gehend konfiguriert ist, das Ergebnis der Skalarmultiplikation mit einem Double-and-always-add-Prozess unter Verwendung des Hilfspunkts und eines Zwischenpunkts zu berechnen; wobei der Prozessor (120) ferner dahin gehend konfiguriert ist, das Ergebnis der Skalarmultiplikation ohne Verwendung einer Dummy-Operation zu berechnen und wobei der Prozessor (120) ferner dahin gehend konfiguriert ist, das Ergebnis der Skalarmultiplikation zu berechnen, indem der Zwischenpunkt um den Hilfspunkt korrigiert wird oder indem der Hilfspunkt von dem Zwischenpunkt subtrahiert wird.

Description

  • Ausführungsbeispiele der Erfindung beziehen sich auf eine Vorrichtung oder ein Verfahren zum Berechnen eines Ergebnisses einer Skalarmultiplikation einer Referenzzahl mit einem Referenzpunkt auf einer elliptischen Kurve.
  • Die Verwendung elliptischer Kurven ersetzt immer mehr das RSA-Verfahren (Rivest-Shamir-Adleman-Verfahren) bei Kryptographiesystemen mit öffentlichem Schlüssel (Public-Key-Kryptographiesysteme). Die Kryptographie für elliptische Kurven wurde von V. Miller in „Victor S. Miller. Use of Elliptic Curves in Cryptography. In Hugh C. Williams, Herausgeber, CRYPTO, Band 218 der Lecture Notes in Computer Science, Seiten 417 - 426. Springer, 1985“ und N. Koblitz in „Neil Koblitz. Elliptic Curve Cryptosystems. Mathematics of Computation, 48: 203 - 209, 1987“ vorgeschlagen.
  • Einführende Literatur über elliptische Kurven und deren Kryptographie sind beispielsweise die Lehrbücher „Henri Cohen und Gerhard Frey, Herausgeber. Handbook of Elliptic and Hyperelliptic curve Cryptography. Chapman & Hall/CRC, 2006.“ und „Ian Blake, Gadiel Seroussi und Nigel Smart. Advances in Elliptic Curve Cryptography (London Mathematical Society Lecture Note Series). Cambridge University Press, New York, NY, USA, 2005.“. Ein guter kurzer Übersichtsartikel ist beispielsweise „Alfred Menezes und Scott A. Vanstone. Elliptic Curve Cryptosystems and Their Implementations. J. Cryptology, 6(4): 229 - 224, 1993“. Da elliptische Kurven bereits im 19. Jahrhundert und früher von Mathematikern studiert wurden, ist die allgemeine Literatur zu diesem Thema unüberschaubar, aber meistens nur von Mathematikern lesbar.
  • Die Druckschrift mit dem Titel „Resistance against Differential Power Analysis for Elliptic Curve Cryptosystems“ erläutert, dass eine elliptische Kurve zur Kryptographie genutzt werden kann. Hierzu kann eine Skalarmultiplikation in einer Gruppe von Punkten der elliptischen Kurve durchgeführt werden. Die Druckschrift US 2008/0144812 A beschreibt ein System sowie ein Verfahren zum Durchführen einer iterativen Skalarmultiplikation, die gegen einen Adress-Bit-Angriff geschützt ist.
  • Während bei RSA der entscheidende Schritt zum Verschlüsseln und Entschlüsseln oder zum Erzeugen einer Signatur und Verifizieren einer Signatur die Exponentiation md mod N einer Nachricht („message“) m modulo einer großen Anzahl N ist, die das Produkt zweier großer und geheimer Primzahlen ist, ist der entscheidende Prozess der Elliptische-Kurven-Kryptographie die Skalarmultiplikation einer Zahl mit einem Punkt auf der Kurve.
  • Eine elliptische Kurve E: = E(F) über einem endlichen Feld F ist eine endliche kommutative (Abelsche) Gruppe. Die Elemente dieser Gruppe sind eine Lösung einer Gleichung dritten Grades in diesem Feld, beispielsweise: E ( F ) = { ( x ,  y ) FxF : y 2 = x 3 + ax + b } { 0 }
    Figure DE102010001289B4_0001
    oder, allgemeiner, E ( F ) = { ( x ,  y ) FxF : y 2 + dxy + ey = x3 + ax2 + cx + b } { 0 }
    Figure DE102010001289B4_0002
    wobei a, b, c, d, e Elemente von F sind, die gewisse Eigenschaften erfüllen müssen. Ferner wird ein künstlicher Punkt O hinzugefügt. Auf dieser Menge ist eine Addition definiert, was bedeutet, dass zwei Punkte P, Q aus E(F) addiert (und auch subtrahiert) werden können, so dass ein neuer Punkt R = P + Q auf dieser Kurve entsteht.
  • Es gelten die folgenden Gesetze:
    1. 1. Assoziativität: (P + Q) + R = P + (Q + R).
    2. 2. Existenz eines Identitätselements: O + P = P.
    3. 3. Existenz der inversen Elemente (-P) zu P, so dass (-P) + P = O.
    4. 4. Kommutativität: P + Q = Q + P.
  • Diese Gesetzmäßigkeiten machen die elliptische Kurve zu einer Abelschen Gruppe. Auf solch einer Gruppe ist automatisch eine Skalarmultiplikation kP definiert durch: kP = P + P + + P ( k mal )
    Figure DE102010001289B4_0003
    wobei keine Ganzzahl aus Z ist und P ein Punkt auf der Kurve ist. Diese Skalarmultiplikation ist die zentrale Operation bei der Elliptische-Kurven-Kryptographie. Meist ist der Skalar k eines der Geheimnisse.
  • Deshalb muss die Skalarmultiplikation auf sichere Weise implementiert werden, so dass die Möglichkeit, den Skalar k beispielsweise anhand von Seitenkanalangriffen wie SPA oder DPA, anhand von Fehlerangriffen (fault attacks) oder Sicher-Fehler-Angriffen (safe-error attacks) herauszufinden, so gering wie möglich ist.
  • Seitenkanalangriffe sind beispielsweise Angriffe auf Implementierungen von Kryptosystemen, die Beobachtungen von Zeitgebungen, Leistungsverbrauch oder elektromagnetischer Strahlung verwenden, um geheime Information zu erhalten, die ursprünglich sicher gespeichert sein soll. Bei der einfachen Leistungsanalyse (SPA - simple power analysis) beobachtet ein Angreifer direkt den Leistungsverbrauch einer Vorrichtung. Beispielsweise variiert die durch die Vorrichtung verbrauchte Menge an Leistung in Abhängigkeit von den bearbeiteten Daten und den Anweisungen, die während verschiedener Teile einer Ausführung eines Algorithmus durchgeführt werden.
  • Differentielle Leistungsanalyse (DPA - differential power analysis) nutzt charakteristisches Verhalten aus (z. B. Leistungsverbrauchsverhalten von Transistoren und Logikgattern). DPA verwendet ein Angriffsmodell und eine statistische Analyse, um versteckte Informationen aus einer großen Anzahl von Leistungshinweisen, die während einer gesteuerten kryptographischen Berechnung erhalten werden, zu extrahieren. Die Verwendung statistischer Methoden in einer gesteuerten DPA-Umgebung ermöglicht ein Identifizieren geringer Unterschiede im Leistungsverbrauch, die beispielsweise dazu verwendet werden können, spezifische Informationen, z. B. die einzelnen Bits in einem geheimen Schlüssel, wiederzugewinnen.
  • Fehlerangriffe sind beispielsweise rechentechnische Sicher-Fehler-Angriffe (C-Sicher-Fehler-Angriffe) oder Speicher-Sicher-Fehler-Angriffe (M-Sicher-Fehler-Angriffe). Der rechentechnische Sicher-Fehler-Angriff kann entwickelt werden, indem ein beliebiger vorübergehender zufälliger Rechenfehler in der Arithmetik-Logik-Einheit (ALE) bewirkt wird. Ein Speicher-Sicher-Fehler-Angriff muss einen vorübergehenden Speicherfehler in einem Register oder in einem Speicherplatz bewirken.
  • Eine sichere Implementierung dieser Skalarmultiplikation bei Kryptosystemen wie z. B. Smartcards, PCs oder anderen Sicherheitsprodukten ist von hoher Bedeutung. Dies umfasst einen Schutz vor beispielsweise Seitenkanalangriffen wie SPA (einfache Leistungsanalyse) und DPA (differentielle Leistungsanalyse), Fehlerangriffen und Sicher-Fehler-Angriffen.
  • Beispielsweise ist ein einfaches Verfahren zum Implementieren einer Skalarmultiplikation dP das sogenannte Double-and-Add-Verfahren:
    Figure DE102010001289B4_0004
    Figure DE102010001289B4_0005
  • Dies ist die bekannteste Methode. Ungünstigerweise ist sie nicht sicher vor SPA und DPA, denn die Verdopplung wird normalerweise mit anderen Formeln berechnet als die Addition zweier Punkte auf der Kurve. Diese beiden Prozesse können üblicherweise durch den Stromverlauf beobachtet werden, und somit kann der geheime Schlüssel ohne weiteres ermittelt werden.
  • Deshalb wird oft ein Double-and-always-add-Verfahren vorgeschlagen:
    Figure DE102010001289B4_0006
    Figure DE102010001289B4_0007
  • Hiermit ist der Stromverlauf ausgeglichen, und solch ein Angriff ist nicht mehr möglich. Andererseits öffnet diese Implementierung Tür und Tor für Sicher-Fehler-Angriffe (siehe beispielsweise „Sung-Ming Yen und Marc Joye. Checking Before Output May Not Be Enough Against Fault-Based Cryptoanalysis. IEEE Trans. Computers, 49(9): 967 - 90, 2000“). Da der zweite Zweig der falls/anderenfalls-Anweisung unterbrochen werden kann, ohne dass sich der Output ändert, kann ein Angreifer daraus Informationen über den geheimen Skalar extrahieren.
  • Beide Methoden weisen außerdem den Nachteil auf, dass sie, wenn sie naiv implementiert werden, nicht sicher gegen DPA und andere Fehlerangriffe sind.
  • Eine andere Methode, das SPA-Problem in den Griff zu bekommen, ist die Montgomery-Leiter:
    Figure DE102010001289B4_0008
    Figure DE102010001289B4_0009
  • Hier besteht auch jede Runde aus einer Addition und einer Verdopplung und ist somit SPA-sicher. Das DPA-Problem besteht weiterhin. Diese Methode kann die Addition schneller berechnen als andere Algorithmen, die gezeigt sind bei „Wieland Fischer, Christophe Giraud, Erik Woodward Knudsen und Jean-Pierre Seifert. Parallel scalar multiplication on general elliptic curves over Fp hedged against Non-Differential Side-Channel Attacks. IACR, Cryptology ePrint Archive, (007), Januar 2007. Verfügbar bei http://eprint.iacr.org/2002/007“ „Tetsuya Izu und Tsuyoshi Takagi. A Fast Parallel Elliptic Curve Multiplication Resistant against Side Channel Attacks. In David Naccache und Pascal Paillier, Herausgeber Public Key Cryptography, Band 2.274 der Lecture Notes in Computer Science, Seiten 280 - 296. Springer, 2002.“ und „Marc Joye und Sung.Ming Yen. The Montgomery Powering Ladder. In Burton S. Kaliski Jr., C etin Kaya Ko c und Christof Paar, Herausgeber. Cryptographic Hardware and Embedded Systems - CHES 2002, 4th International Workshop, Redwood Shores, CA, USA, 13. - 15. August 2002, Revised Paper, Band 2.523 der Lecture Notes in Computer Science. Springer, 2003., Seiten 291 - 302.“.
  • Die Aufgabe der vorliegenden Erfindung besteht darin, Vorrichtungen, ein Kryptosystem sowie ein Verfahren mit verbesserten Charakteristika zu liefern.
  • Die Aufgabe wird durch die Merkmale der unabhängigen Ansprüche gelöst. Weiterbildungen finden sich in den abhängigen Ansprüchen.
  • Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nun unter Bezugnahme auf die beiliegenden Zeichnungen näher erläutert. Es zeigen:
    • 1 ein Blockdiagramm einer Vorrichtung zum Berechnen eines Ergebnisses einer Skalarmultiplikation einer Referenzzahl mit einem Referenzpunkt auf einer elliptischen Kurve;
    • 2 ein Blockdiagramm eines Kryptosystems;
    • 3 ein Flussdiagramm eines Verfahrens zum Berechnen eines Ergebnisses einer Skalarmultiplikation einer Referenzzahl mit einem Referenzpunkt auf einer elliptischen Kurve; und
    • 4 ein Flussdiagramm eines Verfahrens zum Berechnen eines Ergebnisses einer Skalarmultiplikation einer Referenzzahl mit einem Referenzpunkt auf einer elliptischen Kurve.
  • 1 zeigt ein Blockdiagramm einer Vorrichtung 100 zum Berechnen eines Ergebnisses einer Skalarmultiplikation einer Referenzzahl mit einem Referenzpunkt auf einer elliptischen Kurve gemäß einem Ausführungsbeispiel der Erfindung. Die Vorrichtung 100 umfasst einen Punktselektor 110, der mit einem Prozessor 120 verbunden ist.
  • Der Punktselektor 110 ist dahin gehend konfiguriert, einen Hilfspunkt 112 auf der elliptischen Kurve zufällig oder pseudozufällig zu wählen.
  • Der Prozessor 120 ist dahin gehend konfiguriert, das Ergebnis der Skalarmultiplikation mit einem Double-and-always-add-Verfahrens unter Verwendung des Hilfspunkts 112 zu berechnen.
  • Der Hilfspunkt 112 kann unabhängig von dem Referenzpunkt gewählt werden oder kann auf der Basis einer auf den Referenzpunkt angewandten Mischfunktion gewählt werden. Eine Mischfunktion des Referenzpunkts kann beispielsweise eine stochastische Funktion sein, die eine Zufallszahl auf der Basis des Referenzpunkts erzeugt. Der Hilfspunkt 112 kann auf der Zufallszahl beruhen. Alternativ dazu kann die Mischfunktion eine deterministische Funktion des Referenzpunkts unter Verwendung einer Zufalls- oder Pseudozufallszahl sein.
  • Durch Berechnen des Ergebnisses der Skalarmultiplikation mit einem Double-and-always-add-Prozess unter Verwendung des Hilfspunkts 112 kann die Berechnung durch den Hilfspunkt maskiert sein. Ein Maskieren der Berechnung des Ergebnisses der Skalarmultiplikation und ein Verwenden eines Double-and-always-add-Verfahrens kann zu einer SPA-, DPA- und Sicher-Fehler-Angriff-resistenten Implementierung der Berechnung des Ergebnisses der Skalarmultiplikation führen.
  • Der Prozessor 120 kann dahin gehend konfiguriert sein, ein Ergebnis einer Addition des Hilfspunkts 112 mit sich selbst und der Subtraktion des Hilfspunkts 112 von einem Zwischenpunkt oder einer Addition des negativen Hilfspunkts und des Zwischenpunkts zu berechnen. Ein Subtrahieren des Hilfspunkts oder ein Addieren des negativen Hilfspunkts liefert dasselbe Ergebnis, jedoch kann die Implementierung unterschiedlich sein.
  • Falls der Prozessor 120 ferner dahin gehend konfiguriert ist, das Ergebnis der Skalarmultiplikation ohne Verwendung von Dummy-Anweisungen (dummy instructions) zu berechnen, kann die Berechnung des Ergebnisses vor Sicher-Fehler-Angriffen geschützt sein. Dummy-Anweisungen beziehen sich beispielsweise auf Anweisungen, die auf einem geheimen Parameter der Skalarmultiplikation (z. B. der Referenzzahl) beruhen und das Ergebnis der Skalarmultiplikation nicht beeinflussen.
  • Das Berechnen des Ergebnisses der Skalarmultiplikation kann gegen Sicher-Fehler-Angriffe immun sein. In diesem Fall bedeutet immun, dass die Multiplikation so gut wie möglich geschützt ist. Eine 100%ige Immunität kann wahrscheinlich niemals erreicht werden.
  • Ferner kann der Prozessor 120 dahin gehend konfiguriert sein, eine Schleife bzw. Loop auszuführen. Die Schleife kann N mal ausgeführt werden, wobei N eine Anzahl von Bits ist, aus denen die Referenzzahl bei einer binären Darstellung besteht. Falls beispielsweise die Referenzzahl gleich 9 ist, wäre die binäre Darstellung der Referenzzahl 1001, und die Anzahl von Bits, aus denen die Referenzzahl besteht, wäre gleich 4. Alternativ dazu kann die Anzahl von Bits, aus denen die Referenzzahl besteht, durch die relevanten Bits der Referenzzahl definiert sein. Wenn die Referenzzahl beispielsweise gleich 9 ist, wäre die binäre Darstellung der Referenzzahl 1001, die Referenzzahl kann jedoch durch 8 Bits (z. B. aufgrund einer Registergröße) und somit 00001001 dargestellt werden. Dann sind die führenden Nullen eventuell nicht Bestandteil der relevanten Bits. Außerdem können manche Bits während eines Vorprozesses verarbeitet werden, und deshalb kann die Anzahl von Bits, aus denen die Referenzzahl besteht, gleich der Anzahl von nicht vorverarbeiteten Bits sein. Wenn die Referenzzahl bei einer binären Darstellung beispielsweise 1001 wäre und das erste Bit während eines Vorprozesses verarbeitet wird, wäre die Anzahl von Bits, aus denen die Referenzzahl besteht, gleich 3. Ein Beispiel kann darin bestehen, den Zwischenpunkt mit einem Punkt zu initialisieren, der andernfalls durch ein erstmaliges Ausführen der Schleife erhalten wird.
  • Außerdem kann der Prozessor 120 dahin gehend konfiguriert sein, einen aktuellen Zwischenpunkt in Abhängigkeit von einem Wert eines Bits der Referenzzahl zu berechnen. Falls beispielsweise der Wert eines Bits der Referenzzahl gleich 1 ist, wird der Referenzpunkt addiert, und der Hilfspunkt wird von dem Zwischenpunkt subtrahiert, um den aktuellen Zwischenpunkt zu erhalten. Andernfalls, falls der Wert des Bits der Referenzzahl gleich 0 ist, wird lediglich der Hilfspunkt 112 von dem Zwischenpunkt subtrahiert, um den aktuellen Zwischenpunkt zu erhalten.
  • Ferner kann der Prozessor 120 dahin gehend konfiguriert sein, den aktuellen Zwischenpunkt während einer Ausführung der Schleife zu berechnen. Der berechnete Zwischenpunkt kann auf dem Hilfspunkt 112 beruhen. Mit anderen Worten kann der Zwischenpunkt durch den Hilfspunkt 112 maskiert sein.
  • Bei manchen Ausführungsbeispielen gemäß der Erfindung können alle während der Ausführung der Schleife berechneten Zwischenpunkte auf dem Hilfspunkt 112 beruhen. Mit anderen Worten kann die gesamte Ausführung der Schleife durch den Hilfspunkt 112 maskiert sein.
  • Außerdem kann der Prozessor 120 dahin gehend konfiguriert sein, einen Zwischenpunkt gleich dem Hilfspunkt zu setzen oder zu initialisieren.
  • Der Prozessor 120 kann das Ergebnis der Skalarmultiplikation auf der Basis des Zwischenpunkts berechnen. Mit anderen Worten kann während der Berechnung ein Zwischenpunkt berechnet werden, der gleich dem maskierten Ergebnis der Skalarmultiplikation ist. Auf der Basis dieses maskierten Ergebnisses kann das Ergebnis der Skalarmultiplikation ermittelt werden. Auf diese Weise kann die gesamte Berechnung durch den Hilfspunkt 112 maskiert sein, bis das Ergebnis anhand des maskierten Ergebnisses indirekt zur Verfügung steht.
  • Manche Ausführungsbeispiele gemäß der Erfindung beziehen sich auf eine Vorrichtung zum Berechnen eines Ergebnisses einer Skalarmultiplikation einer Referenzzahl mit einem Referenzpunkt auf einer elliptischen Kurve, die eine Einrichtung zum zufälligen oder pseudozufälligen Wählen eines Hilfspunkts und eine Einrichtung zum Berechnen des Ergebnisses der Skalarmultiplikation mit einem Double-and-always-add-Prozess unter Verwendung des Hilfspunkts umfasst.
  • Die Einrichtung zum Wählen des Hilfspunkts kann dem oben erwähnten Punktselektor entsprechen und kann beispielsweise ein Prozessor, eine CPU (central processing unit, Zentralverarbeitungseinheit) eines Computers, eine ALE (Arithmetik-Logik-Einheit), ein Kryptoprozessor, eine fest verdrahtete Schaltung oder ein Softwareprogramm, das durch eine CPU (Zentralverarbeitungseinheit) eines Computers, eine ALE (Arithmetik-Logik-Einheit) oder einen Kryptoprozessor eines Kryptosystems ausgeführt werden soll, sein.
  • Die Einrichtung zum Berechnen des Ergebnisses der Skalarmultiplikation kann dem oben erwähnten Prozessor entsprechen und kann die CPU (central processing unit, Zentralverarbeitungseinheit) eines Computers, eine ALE (Arithmetik-Logik-Einheit), ein Kryptoprozessor, eine fest verdrahtete Schaltung oder ein Softwareprogramm, das durch eine CPU (Zentralverarbeitungseinheit) eines Computers, eine ALE (Arithmetik-Logik-Einheit) oder einen Kryptoprozessor eines Kryptosystems ausgeführt werden soll, sein.
  • Die Einrichtung zum Wählen des Hilfspunkts und die Einrichtung zum Berechnen des Ergebnisses der Skalarmultiplikation können beide ein Softwareprogramm sein, das durch dieselbe CPU (Zentralverarbeitungseinheit) eines Computers, ALE (Arithmetik-Logik-Einheit) oder denselben Kryptoprozessor eines Kryptosystems ausgeführt werden soll.
  • 2 zeigt ein Blockdiagramm eines Kryptosystems 200 mit einer Vorrichtung zum Berechnen eines Ergebnisses einer Skalarmultiplikation einer Referenzzahl mit einem Referenzpunkt auf einer elliptischen Kurve gemäß einem Ausführungsbeispiel der Erfindung. Das Kryptosystem 200 umfasst den Punktselektor 110, den Prozessor 120, einen Speicher 220, eine Eingabe/Ausgabe-Schnittstelle 230 und einen Zufallszahlengenerator 240.
  • Das Kryptosystem 200 kann beispielsweise in einer Smartcard 210, einer Chipkarte oder einem Computer implementiert sein.
  • Der Speicher 220 ist mit dem Prozessor 120 verbunden und dahin gehend konfiguriert, beispielsweise die Referenzzahl, den Referenzpunkt auf der elliptischen Kurve, die elliptische Kurve selbst oder Parameter der elliptischen Kurve, den Hilfspunkt und/oder den Zwischenpunkt zu speichern.
  • Die Eingabe/Ausgabe-Schnittstelle 230 ist mit dem Prozessor 120 verbunden und dahin gehend konfiguriert, Ausgabedaten 232 nach außen zu liefern und Eingabedaten 232 von außen an den Prozessor 120 zu liefern.
  • Außerdem kann ein Zufallszahlengenerator 240 mit dem Punktselektor 110 verbunden sein. Der Zufallszahlengenerator 240 kann eine Zufallszahl beispielsweise unabhängig von dem Referenzpunkt liefern. Der Zufallszahlengenerator 240 kann ein echter Zufallszahlengenerator sein, der die Zufallszahl beispielsweise auf der Basis einer Eigenschaft einer Phasenregelschleife (PLL - phase locked loop) oder eines Busverkehrs in dem Kryptosystem bestimmt, oder er kann ein Pseudozufallszahlengenerator wie beispielsweise ein lineares oder nicht-lineares Rückkopplungsschieberegister sein. Der Punktselektor 110 kann den Hilfspunkt auf der Basis der Zufallszahl wählen.
  • 3 zeigt ein Flussdiagramm eines Verfahrens 300 zum Berechnen des Ergebnisses einer Skalarmultiplikation einer Referenzzahl mit einem Referenzpunkt auf einer elliptischen Kurve gemäß einem Ausführungsbeispiel der Erfindung. Das Verfahren 300 umfasst ein zufälliges oder pseudozufälliges Wählen 310 eines Hilfspunkts auf der elliptischen Kurve und ein Berechnen 320 des Ergebnisses der Skalarmultiplikation mit einem Double-and-always-add-Prozess unter Verwendung des Hilfspunkts.
  • 4 zeigt ein Flussdiagramm eines Verfahrens 400 zum Berechnen des Ergebnisses einer Skalarmultiplikation einer Referenzzahl mit einem Referenzpunkt auf einer elliptischen Kurve gemäß einem Ausführungsbeispiel der Erfindung.
  • Als erstes wird der Hilfspunkt B wie oben beschrieben gewählt (bei Bezugszeichen 310 gezeigt), und ein Zwischenpunkt Q wird gleich dem Hilfspunkt gesetzt (bei Bezugszeichen 410 gezeigt).
  • Dann wird ein Zähler i gleich der Anzahl von Bits gesetzt, aus denen die Bezugszahl bei einer binären Darstellung besteht (bei Bezugszeichen 420 gezeigt).
  • In der Schleife wird zunächst der Zähler i um 1 verringert (bei Bezugszeichen 430 gezeigt), worauf ein Verdoppeln 440 des Zwischenpunkts folgt.
  • Der nächste Schritt hängt von dem Wert eines aktuellen Bits di der Referenzzahl ab (bei Bezugszeichen 450 gezeigt). Ein aktuelles Bit ist dasjenige Bit der Referenzzahl, das dem aktuellen Wert des Zählers i zugeordnet ist. Falls beispielsweise die binäre Darstellung der Referenzzahl 1000 ist und die Schleife ausgeführt wird, bis der Zähler i gleich 0 ist, dann entspricht das Bit mit dem Wert 1 einem aktuellen Zähler, der gleich 3 ist.
  • Falls der Wert des aktuellen Bits d, der Referenzzahl gleich 1 ist, so ist der Zwischenpunkt gleich dem Zwischenpunkt plus dem Referenzpunkt minus den Hilfspunkt (Q = Q + (P - B), bei Bezugszeichen 460 gezeigt). Andernfalls, falls der Wert des aktuellen Bits di der Referenzzahl gleich 0 ist, so ist der Zwischenpunkt auf den Zwischenpunkt minus den Hilfspunkt gesetzt (Q = Q + (- B), bei Bezugszeichen 470 gezeigt).
  • Hiernach wird die Schleife erneut ausgeführt, falls der Zähler i größer ist als 0 (bei Bezugszeichen 480 gezeigt). Andernfalls, falls der Zähler i gleich 0 ist, wird das Ergebnis der Skalarmultiplikation berechnet, indem der Hilfspunkt von dem Zwischenpunkt subtrahiert wird (Q = Q + (-B), bei Bezugszeichen 490 gezeigt).
  • Der Algorithmus des gezeigten Verfahrens 400 kann auch auf folgende Weise dargestellt werden:
    Figure DE102010001289B4_0010
    Figure DE102010001289B4_0011
  • Bei diesem Beispiel ist d die binäre Darstellung der Referenzzahl, wobei Bitzahlen für das niedrigstwertige Bit mit 0 und für das höchstwertige Bit mit der höchsten Zahl beginnen. Ferner stellt P den Referenzpunkt dar, B den Hilfspunkt, Q den Zwischenpunkt und i den Zähler. D, gibt eine Zahl an, die gleich einem Wert ist, der durch Bits der Referenzzahl dargestellt wird, wobei Di mit den (n - i) höchstwertigen Bits beginnt. Falls beispielsweise die Referenzzahl bei der binären Darstellung 1010 ist, wäre D3 gleich 1, D2 wäre bei der binären Darstellung gleich 10 und bei der dezimalen Darstellung 2, D1 wäre bei der binären Darstellung gleich 101 und bei der dezimalen Darstellung 5, und D0 wäre bei der binären Darstellung gleich 1010 und bei der dezimalen Darstellung 10.
  • Wie bei diesem Beispiel gezeigt ist, ist die gesamte Berechnung mit dem Hilfspunkt maskiert. Erst wenn das Endergebnis der Skalarmultiplikation mit dem letzten Schritt 490 berechnet wird, wird die Maskierung beseitigt.
  • Während der Berechnung kann ein Zwischenpunkt mit einem neuen Zwischenpunkt überschrieben werden, alternativ dazu können mehrere verschiedene Zwischenpunkte verwendet werden.
  • Das beschriebene Verfahren kann auch als „Blended-double-and-always-add“-Verfahren bezeichnet werden.
  • Manche Ausführungsbeispiele gemäß der Erfindung beziehen sich auf ein Verfahren, das die Tatsache nutzt, dass das additive Inverse eines Punktes auf einer elliptischen Kurve trivial berechnet werden kann bzw. eine Subtraktion zweier Punkte des gleichen Aufwands bedarf wie eine Addition.
  • Das beschriebene Verfahren kann es ermöglichen, eine Skalarmultiplikation auszuführen, wobei alle Zwischenwerte/Zwischenpunkte randomisiert werden (aufgrund der auf dem Hilfspunkt beruhenden Berechnung). Deshalb ist das Verfahren prinzipiell DPA-resistent. Weiterhin hat es einen gleichmäßigen Ablauf „double and always add“, der eine SPA-Sicherheit liefert. Außerdem ist ein „Sicher-Fehler-Angriff“ nicht mehr möglich, da es keine Dummy-Anweisung gibt.
  • Bei manchen Ausführungsbeispielen gemäß der Erfindung kann eine DPA-Sicherheit hergestellt werden, indem mit einem randomisierten Skalar berechnet wird oder indem in sogenannten projektiven Koordinaten berechnet wird. Diese können problemlos randomisiert werden.
  • Manche Ausführungsbeispiele gemäß der Erfindung beziehen sich auf eine Implementierung einer Skalarmultiplikation an einem einer Vorrichtung wie beispielsweise einer Chipkarte, einer Smartcard, einem Computer oder einem anderen Kryptosystem mit einem Verfahren, das so effektiv ist wie möglich. Da diese Chips ferner als sichere Einheiten entworfen sind, sollte die Skalarmultiplikation vor vielen verschiedenen Seitenkanalangriffen wie z. B. SPA und DPA, Fehlerangriffen und Sicher-Fehler-Angriffen geschützt sein.
  • Manche weiteren Ausführungsbeispiele gemäß der Erfindung beziehen sich auf ein Double-and-add-Verfahren, bei dem ein Zwischenwert immer durch einen zufällig gewählten Punkt maskiert wird, der sich auf derselben Kurve befindet: D i * P + B ,  mit D i = ( d n 1 d i + 1  d i ) 2 .
    Figure DE102010001289B4_0012
  • Ein Aspekt besteht darin, dass während jeder Ausführung der Schleife auf jedes Verdoppeln ein Additionsschritt folgt. Aufgrund des Verdoppelns wird der folgende Wert erhalten: 2 * D i * P + 2 * B .
    Figure DE102010001289B4_0013
  • Schließlich sollte jedoch der folgende Wert erhalten werden: ( 2 * D i + b ) * P + B ,  mit D i 1 = 2 * D i + b ,
    Figure DE102010001289B4_0014
    wobei B der Wert des zugeordneten Bits der Referenzzahl ist. Deshalb muss entweder -B (minus den Hilfspunkt) oder P - B (der Referenzpunkt minus den Hilfspunkt) addiert werden. Somit besteht keine Notwendigkeit einer Dummy-Addition, und die Methode ist sicher vor Sicher-Fehler-Angriffen.
  • Manche Ausführungsbeispiele gemäß der Erfindung beziehen sich auf eine Skalarmultiplikation auf elliptischen Kurven mit additiver Blendung, wobei die Skalarmultiplikation vor SPA-, DPA- und Sicher-Fehler-Angriffen geschützt ist.
  • Im Allgemeinen können Punkte auf der elliptischen Kurve, beispielsweise der Referenzpunkt, der Hilfspunkt und der Zwischenpunkt, während der Berechnung durch ihre Koordinaten (z. B. kartesische Koordinaten oder projektive Koordinaten) dargestellt werden. Auch kann es möglich sein, einen Punkt auf der elliptischen Kurve während der Berechnung durch lediglich eine der Koordinaten (z. B. lediglich die x-Koordinate des Punktes) darzustellen.
  • Bei der vorliegenden Anmeldung werden dieselben Bezugszeichen teilweise für Objekte und Funktionseinheiten, die dieselben oder ähnliche Funktionseigenschaften aufweisen, verwendet.
  • Obwohl sich manche Ansprüche lediglich auf einen anderen Anspruch beziehen, kann auch eine Kombination mit weiteren Ansprüchen möglich sein.
  • Insbesondere wird darauf hingewiesen, dass das erfindungsgemäße Schema je nach den Bedingungen auch in Software implementiert sein kann. Die Implementierung kann auf einem digitalen Speichermedium erfolgen, insbesondere einer Floppy-Disk oder einer CD mit elektronisch lesbaren Steuersignalen, das bzw. die in der Lage ist, mit einem programmierbaren Computersystem zusammenzuarbeiten, so dass die entsprechende Methode ausgeführt wird. Allgemein besteht die Erfindung somit auch in einem Computerprogrammprodukt mit einem auf einem maschinenlesbaren Träger gespeicherten Programmcode zum Ausführen des erfindungsgemäßen Verfahrens, wenn das Computerprogrammprodukt auf einem Computer ausgeführt wird. Anders ausgedrückt kann die Erfindung somit auch als Computerprogramm mit einem Programmcode zum Ausführen des Verfahrens verwirklicht sein, wenn das Computerprogrammprodukt auf einem Computer ausgeführt wird.
  • Manche Ausführungsbeispiele gemäß der Erfindung beziehen sich auf ein Verfahren zum Berechnen eines Ergebnisses einer Skalarmultiplikation einer Referenzzahl mit einem Referenzpunkt auf einer elliptischen Kurve. Das Verfahren umfasst ein zufälliges oder pseudozufälliges Wählen eines Hilfspunkts auf der elliptischen Kurve, wobei der Hilfspunkt unabhängig von dem Referenzpunkt gewählt ist; ein Setzen eines Zwischenpunkts gleich dem Hilfspunkt; ein Ausführen einer Schleife, wobei die Schleife N mal ausgeführt wird, wobei N eine Anzahl von Bits ist, aus denen die Referenzzahl bei einer binären Darstellung besteht; und ein Berechnen des Ergebnisses der Skalarmultiplikation auf der Basis einer Substraktion des Hilfspunkts von dem Zwischenpunkt oder einer Addition des negativen Hilfspunkts und des Zwischenpunkts. Ein Ausführen der Schleife umfasst ein Berechnen eines Ergebnisses einer Addition des Zwischenpunktes mit sich selbst; und ein Berechnen eines aktuellen Zwischenpunkts in Abhängigkeit von einem Wert eines aktuellen Bits der Referenzzahl, wobei die Referenzzahl binär dargestellt wird, wobei der aktuelle Zwischenpunkt gleich dem Zwischenpunkt plus dem Referenzpunkt minus den Hilfspunkt ist, falls der Wert des aktuellen Bits gleich 1 ist, oder wobei der aktuelle Zwischenpunkt gleich dem Zwischenpunkt minus den Hilfspunkt ist, falls der Wert des aktuellen Bits gleich 0 ist.

Claims (20)

  1. Vorrichtung (100) zum Berechnen eines Ergebnisses einer Skalarmultiplikation einer Referenzzahl mit einem Referenzpunkt auf einer elliptischen Kurve, wobei die Vorrichtung (100) folgende Merkmale aufweist: einen Punktselektor (110), der dahin gehend konfiguriert ist, einen Hilfspunkt (112) auf der elliptischen Kurve zufällig oder pseudozufällig zu wählen; und einen Prozessor (120), der dahin gehend konfiguriert ist, das Ergebnis der Skalarmultiplikation mit einem Double-and-always-add-Prozess unter Verwendung des Hilfspunkts und eines Zwischenpunkts zu berechnen; wobei der Prozessor (120) ferner dahin gehend konfiguriert ist, das Ergebnis der Skalarmultiplikation ohne Verwendung einer Dummy-Operation zu berechnen und wobei der Prozessor (120) ferner dahin gehend konfiguriert ist, das Ergebnis der Skalarmultiplikation zu berechnen, indem der Zwischenpunkt um den Hilfspunkt korrigiert wird oder indem der Hilfspunkt von dem Zwischenpunkt subtrahiert wird.
  2. Vorrichtung (100) gemäß Anspruch 1, bei der der Punktselektor (110) dahin gehend konfiguriert ist, den Hilfspunkt unabhängig von dem Referenzpunkt zu wählen, oder bei der der Hilfspunkt auf der Basis einer auf den Referenzpunkt angewendeten Mischfunktion gewählt wird.
  3. Vorrichtung (100) gemäß Anspruch 1 oder 2, bei der der Prozessor (120) dahin gehend konfiguriert ist, das Ergebnis der Skalarmultiplikation auf eine Weise zu berechnen, die gegen Sicher-Fehler-Angriffe immun ist.
  4. Vorrichtung (100) gemäß einem der Ansprüche 1 bis 3, bei der der Prozessor (120) dahin gehend konfiguriert ist, das Ergebnis der Skalarmultiplikation auf der Basis einer Schleife zu berechnen, die pro Ausführung basierend auf einem Zwischenpunkt arbeitet, und dahin gehend konfiguriert ist, vor einer ersten Ausführung der Schleife den Zwischenpunkt gleich dem Hilfspunkt zu setzen, wobei die Schleife N mal ausgeführt wird, wobei N eine Anzahl von Bits ist, aus denen die Referenzzahl bei einer binären Darstellung besteht.
  5. Vorrichtung (100) gemäß Anspruch 4, bei der der Prozessor (120) dahin gehend konfiguriert ist, das Ergebnis einer Addition des Zwischenpunkts mit sich selbst zu berechnen, wobei die Addition des Zwischenpunkts mit sich selbst ein Teil der Schleife ist.
  6. Vorrichtung (100) gemäß Anspruch 4 oder 5, bei der der Prozessor (120) dahin gehend konfiguriert ist, das Ergebnis einer Subtraktion des Hilfspunkts von dem Zwischenpunkt zu berechnen, wobei die Subtraktion ein Teil der Schleife ist, oder bei der Prozessor (120) dahin gehend konfiguriert ist, das Ergebnis einer Addition des negativen Hilfspunkts und des Zwischenpunkts zu berechnen, wobei die Addition ein Teil der Schleife ist.
  7. Vorrichtung (100) gemäß Anspruch 6, bei der der Prozessor (120) dahin gehend konfiguriert ist, das Ergebnis der Skalarmultiplikation auf der Basis der Addition des Hilfspunkts mit sich selbst und der Subtraktion des Hilfspunkts von dem Zwischenpunkt oder auf der Basis der Addition des Hilfspunkts mit sich selbst und der Addition des negativen Hilfspunkts und des Zwischenpunkts zu berechnen.
  8. Vorrichtung (100) gemäß einem der Ansprüche 4 bis 7, bei der der Prozessor (120) dahin gehend konfiguriert ist, einen aktuellen Zwischenpunkt in Abhängigkeit von einem Wert eines Bits der Referenzzahl zu berechnen, wobei die Referenzzahl in einer binären Form dargestellt wird.
  9. Vorrichtung (100) gemäß einem der Ansprüche 4 bis 8, bei der der Prozessor (120) dahin gehend konfiguriert ist, einen aktuellen Zwischenpunkt während des Ausführens der Schleife zu berechnen, wobei der aktuelle Zwischenpunkt auf dem Hilfspunkt beruht.
  10. Vorrichtung (100) gemäß Anspruch 9, bei der alle Zwischenpunkte, die während des Ausführens der Schleife berechnet werden, auf dem Hilfspunkt beruhen.
  11. Vorrichtung (100) gemäß einem der Ansprüche 4 bis 10, bei der der Prozessor (120) dahin gehend konfiguriert ist, das Ergebnis der Skalarmultiplikation auf der Basis des Zwischenpunkts zu berechnen.
  12. Vorrichtung (100) gemäß einem der Ansprüche 1 bis 11, die ferner folgende Merkmale aufweist: einen Speicher (220), der mit dem Prozessor (120) gekoppelt und dahin gehend konfiguriert ist, die Referenzzahl, den Referenzpunkt auf der elliptischen Kurve, die elliptische Kurve selbst oder Parameter der elliptischen Kurve und/oder den Hilfspunkt zu speichern; und einen Zufallszahlengenerator (240), der mit dem Punktselektor (110) gekoppelt und dahin gehend konfiguriert ist, eine Zufallszahl zu liefern, wobei die Zufallszahl seitens des Punktselektors (110) dazu verwendet wird, den Hilfspunkt (112) auf der elliptischen Kurve zu wählen.
  13. Vorrichtung (100) gemäß einem der Ansprüche 4 bis 12, die ferner folgende Merkmale aufweist: einen Speicher (220), der mit dem Prozessor (120) gekoppelt und dahin gehend konfiguriert ist, die Referenzzahl, den Referenzpunkt auf der elliptischen Kurve, die elliptische Kurve selbst oder Parameter der elliptischen Kurve, den Hilfspunkt und/oder den Zwischenpunkt zu speichern; und einen Zufallszahlengenerator (240), der mit dem Punktselektor (110) gekoppelt und dahin gehend konfiguriert ist, eine Zufallszahl zu liefern, wobei die Zufallszahl seitens des Punktselektors (110) dazu verwendet wird, den Hilfspunkt (112) auf der elliptischen Kurve zu wählen.
  14. Vorrichtung (100) zum Berechnen eines Ergebnisses einer Skalarmultiplikation einer Referenzzahl mit einem Referenzpunkt auf einer elliptischen Kurve, die folgende Merkmale aufweist: eine Einrichtung zum zufälligen oder pseudozufälligen Wählen eines Hilfspunkts (112) auf der elliptischen Kurve; und eine Einrichtung zum Berechnen des Ergebnisses der Skalarmultiplikation mit einem Double-and-always-add-Prozess unter Verwendung des Hilfspunkts und eines Zwischenpunkts; wobei das Ergebnis der Skalarmultiplikation ohne Verwendung einer Dummy-Operation berechnet wird; und wobei der Prozessor (120) ferner dahin gehend konfiguriert ist, das Ergebnis der Skalarmultiplikation zu berechnen, indem der Zwischenpunkt um den Hilfspunkt korrigiert wird oder indem der Hilfspunkt von dem Zwischenpunkt subtrahiert wird.
  15. Vorrichtung (100) zum Berechnen eines Ergebnisses einer Skalarmultiplikation einer Referenzzahl mit einem Referenzpunkt auf einer elliptischen Kurve, die folgende Merkmale aufweist: einen Punktselektor (110), der dahin gehend konfiguriert ist, einen zufälligen oder pseudozufälligen Hilfspunkt (112) auf der elliptischen Kurve zu wählen, wobei der Hilfspunkt unabhängig von dem Referenzpunkt gewählt wird; und einen Prozessor (120), der dahin gehend konfiguriert ist, einen Zwischenpunkt gleich dem Hilfspunkt (112) zu setzen, und der dahin gehend konfiguriert ist, eine Schleife auszuführen, wobei die Schleife N mal ausgeführt wird, wobei N eine Anzahl von Bits ist, aus denen die Referenzzahl bei einer binären Darstellung besteht, und wobei der Prozessor dahin gehend konfiguriert ist, das Ergebnis der Skalarmultiplikation auf der Basis einer Subtraktion des Hilfspunkts von dem Zwischenpunkt oder einer Addition des negativen Hilfspunkts und des Zwischenpunkts zu berechnen; wobei der Prozessor (120) ferner dahin gehend konfiguriert ist, das Ergebnis der Skalarmultiplikation ohne Verwendung einer Dummy-Operation zu berechnen.
  16. Vorrichtung (100) gemäß einem der Ansprüche 1 bis 15, bei der der Prozessor (120) dahin gehend konfiguriert ist, das Ergebnis der Skalarmultiplikation auf der Basis des folgenden Algorithmus zu berechnen:
    Figure DE102010001289B4_0015
    wobei Q ein Zwischenpunkt ist, B der Hilfspunkt ist, i ein Zähler ist, di ein Wert eines aktuellen Bits der Referenzzahl ist und P der Referenzpunkt ist; wobei der Prozessor (120) ferner dahin gehend konfiguriert ist, das Ergebnis der Skalarmultiplikation ohne Verwendung einer Dummy-Operation zu berechnen.
  17. Kryptosystem (200), das die Vorrichtung (100) gemäß einem der Ansprüche 1 bis 16 umfasst.
  18. Kryptosystem (200) gemäß Anspruch 17, wobei das Kryptosystem eine Smartcard ist.
  19. Verfahren (300, 400) zum Berechnen eines Ergebnisses einer Skalarmultiplikation einer Referenzzahl mit einem Referenzpunkt auf einer elliptischen Kurve, das folgende Schritte umfasst: zufälliges oder pseudozufälliges Wählen eines Hilfspunkts (112) auf der elliptischen Kurve; und Berechnen (320) des Ergebnisses der Skalarmultiplikation mit einem Double-and-always-add-Prozess unter Verwendung des Hilfspunkts und eines Zwischenpunkts; wobei das Ergebnis der Skalarmultiplikation ohne Verwendung einer Dummy-Operation berechnet wird und wobei das Ergebnis der Skalarmultiplikation berechnet wird, indem der Zwischenpunkt um den Hilfspunkt korrigiert wird oder indem der Hilfspunkt von dem Zwischenpunkt subtrahiert wird.
  20. Computerprogramm mit einem Programmcode zum Durchführen des Verfahrens zum Berechnen eines Ergebnisses einer Skalarmultiplikation einer Referenzzahl mit einem Referenzpunkt auf einer elliptischen Kurve, wobei das Verfahren folgende Schritte umfasst: zufälliges oder pseudozufälliges Wählen eines Hilfspunkts (112) auf der elliptischen Kurve; und Berechnen (320) des Ergebnisses der Skalarmultiplikation mit einem Double-and-always-add-Prozess unter Verwendung des Hilfspunkts und eines Zwischenpunkts; wobei das Ergebnis der Skalarmultiplikation ohne Verwendung einer Dummy-Operation berechnet wird und wobei das Ergebnis der Skalarmultiplikation berechnet wird, indem der Zwischenpunkt um den Hilfspunkt korrigiert wird oder indem der Hilfspunkt von dem Zwischenpunkt subtrahiert wird.
DE102010001289.0A 2009-02-05 2010-01-27 Vorrichtung zum Berechnen eines Ergebnisses einer Skalarmultiplikation Active DE102010001289B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/366,222 2009-02-05
US12/366,222 US8542820B2 (en) 2009-02-05 2009-02-05 Apparatus for calculating a result of a scalar multiplication

Publications (2)

Publication Number Publication Date
DE102010001289A1 DE102010001289A1 (de) 2010-08-19
DE102010001289B4 true DE102010001289B4 (de) 2024-03-14

Family

ID=42338893

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102010001289.0A Active DE102010001289B4 (de) 2009-02-05 2010-01-27 Vorrichtung zum Berechnen eines Ergebnisses einer Skalarmultiplikation

Country Status (3)

Country Link
US (2) US8542820B2 (de)
DE (1) DE102010001289B4 (de)
FR (1) FR2941798B1 (de)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101439804B1 (ko) * 2010-12-27 2014-09-11 미쓰비시덴키 가부시키가이샤 연산 장치, 연산 장치의 타원 스칼라 곱셈 방법, 타원 스칼라 곱셈 프로그램이 기록된 컴퓨터 판독 가능한 기록 매체, 연산 장치의 잉여 연산 방법 및 잉여 연산 프로그램이 기록된 컴퓨터 판독 가능한 기록 매체
FR3016987B1 (fr) * 2014-01-29 2017-07-21 Morpho Echelle de montgomery desequilibree
WO2016034912A1 (en) 2014-09-05 2016-03-10 Umm Al-Qura University Method and apparatus for scalar multiplication secure against differential power attacks
US9590805B1 (en) * 2014-12-23 2017-03-07 EMC IP Holding Company LLC Ladder-based cryptographic techniques using pre-computed points
FR3033965B1 (fr) 2015-03-18 2018-12-07 Maxim Integrated Products, Inc. Systèmes et procédés de commande de dispositifs de cryptage sur courbe elliptique sécurisés
US9531531B2 (en) 2015-05-06 2016-12-27 Qualcomm Incorporated Methods and devices for fixed execution flow multiplier recoding and scalar multiplication
FR3055444B1 (fr) * 2016-08-23 2022-02-04 Maxim Integrated Products Dispositif et procedes de commande de dispositif de cryptage sur courbe elliptique securises
US10270598B2 (en) * 2016-08-26 2019-04-23 Intel Corporation Secure elliptic curve cryptography instructions
US11146397B2 (en) * 2017-10-31 2021-10-12 Micro Focus Llc Encoding abelian variety-based ciphertext with metadata
CN112422288B (zh) * 2020-10-26 2023-06-27 中国科学院大学 一种抗能量分析攻击的基于sm2算法的两方协同签名方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080025500A1 (en) 2005-01-24 2008-01-31 Fujitsu Limited Cryptographic device having tamper resistance to power analysis attack
US20080144812A1 (en) 2006-12-19 2008-06-19 Al-Gahtani Theeb A Method for performing iterative scalar multiplication which is protected against address bit attack

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3821631B2 (ja) * 2000-05-30 2006-09-13 株式会社日立製作所 楕円曲線暗号におけるスカラー倍計算方法及び装置、並びに記憶媒体
JP4067818B2 (ja) * 2001-12-10 2008-03-26 富士通株式会社 楕円曲線暗号装置、楕円曲線暗号プログラム及び楕円曲線暗号の演算方法
JP4034585B2 (ja) * 2002-01-28 2008-01-16 松下電器産業株式会社 楕円曲線演算装置及び楕円曲線演算方法
WO2004055756A1 (ja) * 2002-12-18 2004-07-01 Fujitsu Limited 秘密鍵を用いた耐タンパ楕円曲線暗号処理
JP4284320B2 (ja) * 2003-08-06 2009-06-24 富士通株式会社 楕円曲線暗号装置,楕円曲線暗号方法および楕円曲線暗号プログラム
DE602005015157D1 (de) * 2004-05-11 2009-08-13 St Microelectronics Sa Verzweigungsschutz in einem Programm
US7602907B2 (en) * 2005-07-01 2009-10-13 Microsoft Corporation Elliptic curve point multiplication
JP4513752B2 (ja) * 2006-01-16 2010-07-28 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
US7864951B2 (en) * 2006-07-10 2011-01-04 King Fahd University Of Petroleum And Minerals Scalar multiplication method with inherent countermeasures
KR20080012633A (ko) * 2006-08-04 2008-02-12 삼성전자주식회사 고속 몽고메리 전력 래더 알고리즘에서 사용되는 폴트 검출동작을 구현하기 위한 소수 유한 영역에서의 포인트 덧셈방법 및 덧셈 연산 장치
KR100867989B1 (ko) * 2006-12-06 2008-11-10 한국전자통신연구원 단순전력분석에 안전한 Left-to-Right방향으로 리코딩과 스칼라 곱셈을 동시에 수행하는 스칼라곱셈 방법
CA2593723C (en) * 2007-06-27 2016-04-19 Certicom Corp. Multi-dimensional montgomery ladders for elliptic curves
US7991154B2 (en) * 2008-05-14 2011-08-02 Univeristy of Castilla-La Mancha Exponentiation method using multibase number representation
US8369517B2 (en) * 2008-08-12 2013-02-05 Inside Secure Fast scalar multiplication for elliptic curve cryptosystems over prime fields
US9400636B2 (en) * 2011-02-11 2016-07-26 Infineon Technologies Ag Apparatus and method for calculating a result in a scalar multiplication

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080025500A1 (en) 2005-01-24 2008-01-31 Fujitsu Limited Cryptographic device having tamper resistance to power analysis attack
US20080144812A1 (en) 2006-12-19 2008-06-19 Al-Gahtani Theeb A Method for performing iterative scalar multiplication which is protected against address bit attack

Non-Patent Citations (7)

* Cited by examiner, † Cited by third party
Title
Alfred Menezes und Scott A. Vanstone. Elliptic Curve Cryptosystems and Their Implementations. J. Cryptology, 6(4): 229 - 224, 1993
CORON J. -S.: „Resistance against Differential Power Analysis for Elliptic Curve Cryptosystems", CHES'99, LNCS 1717, Springer-Verlag Berlin Heidelberg 1999, Seiten 292-302
Marc Joye und Sung.Ming Yen. The Montgomery Powering Ladder. In Burton S. Kaliski Jr., C etin Kaya Ko c und Christof Paar, Herausgeber. Cryptographic Hardware and Embedded Systems - CHES 2002, 4th International Workshop, Redwood Shores, CA, USA, 13. - 15. August 2002, Revised Paper, Band 2.523 der Lecture Notes in Computer Science. Springer, 2003., Seiten 291 - 302
N. Koblitz in „Neil Koblitz. Elliptic Curve Cryptosystems. Mathematics of Computation, 48: 203 - 209, 1987
Sung-Ming Yen und Marc Joye. Checking Before Output May Not Be Enough Against Fault-Based Cryptoanalysis. IEEE Trans. Computers, 49(9): 967 - 90, 2000
Tetsuya Izu und Tsuyoshi Takagi. A Fast Parallel Elliptic Curve Multiplication Resistant against Side Channel Attacks. In David Naccache und Pascal Paillier, Herausgeber Public Key Cryptography, Band 2.274 der Lecture Notes in Computer Science, Seiten 280 - 296. Springer, 2002
V. Miller in „Victor S. Miller. Use of Elliptic Curves in Cryptography. In Hugh C. Williams, Herausgeber, CRYPTO, Band 218 der Lecture Notes in Computer Science, Seiten 417 - 426. Springer, 1985

Also Published As

Publication number Publication date
FR2941798A1 (fr) 2010-08-06
US20100195821A1 (en) 2010-08-05
DE102010001289A1 (de) 2010-08-19
US8542820B2 (en) 2013-09-24
US8879726B2 (en) 2014-11-04
US20130346461A1 (en) 2013-12-26
FR2941798B1 (fr) 2016-07-22

Similar Documents

Publication Publication Date Title
DE102010001289B4 (de) Vorrichtung zum Berechnen eines Ergebnisses einer Skalarmultiplikation
DE102006022960B9 (de) Verfahren zum Verschlüsseln von Eingabedaten, kryptographisches System und Computerprogrammprodukt
DE102012202015B4 (de) Vorrichtung und Verfahren zum Schützen einer Referenzzahl gegen darauf gerichtete Differential Power Analyse-Angriffe und Template-Angriffe
DE69930334T2 (de) IC-Karte ausgerüstet mit einer Verarbeitungsanlage für Elliptische-Kurven-Verschlüsselung
DE69917592T2 (de) Gegen stromverbrauchsignaturanfall beständige kryptographie
DE60125710T2 (de) Manipulationssichere Methode zur modularen Multiplikation
DE112008000668T5 (de) Kryptografisches Verfahren und System
US6914986B2 (en) Countermeasure method in an electronic component using a public key cryptography algorithm on an elliptic curve
EP1922837B1 (de) Verfahren zum sicheren ver- oder entschlüsseln einer nachricht
DE102008051447B9 (de) Verfahren und Vorrichtung zum Schützen einer RSA-Berechnung an einer Ausgabe mit Hilfe des chinesischen Restsatzes
EP1891512A1 (de) Bestimmung einer modularen inversen
US7286666B1 (en) Countermeasure method in an electric component implementing an elliptical curve type public key cryptography algorithm
DE60204955T2 (de) Gegenmassnahmen in einem elektronischen baustein zur ausführung eines krypto-algorithmus mit auf elliptischen kurven basierendem öffentlichen schlüssel
DE102007054316A1 (de) Modulares Multiplikationsverfahren, modularer Multiplizierer und Kryptosystem
DE69924912T2 (de) Verschlüsselungsverfahren und Vorrichtung unter Verwendung einer elliptischen Kurve
WO2004070497A2 (de) Modulare exponentiation mit randomisierten exponenten
DE60217131T2 (de) Universelles berechnungsverfahren für punkte auf einer elliptischen kurve
KR100731575B1 (ko) 전력분석공격에 대응하는 암호화 방법
DE10161137A1 (de) Verfahren und System zum kryptographischen Bearbeiten von Daten
WO2003034649A2 (de) Verfahren und vorrichtung zum absichern einer berechnung in einem kryptographischen algorithmus
DE10161138B4 (de) Verfahren und Vorrichtung zum Ermitteln einer elliptischen Kurve, Verfahren und Vorrichtung zum Multiplizieren eines Punktes mit einem Skalar
DE102012210354B3 (de) Verfahren und Recheneinheit zur Erzeugung kryptographischer Daten
US20070121935A1 (en) Method for countermeasuring in an electronic component
DE102008050800B4 (de) Vorrichtung und Verfahren zum Bestimmen einer modularen multiplikativen Inversen
DE10162496B4 (de) Verfahren und Vorrichtung zum Absichern einer Berechnung in einem kryptographischen Algorithmus

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R130 Divisional application to

Ref document number: 102010064758

Country of ref document: DE