DE102006011208A1 - Verfahren und Vorrichtung für die Kryptographie - Google Patents

Verfahren und Vorrichtung für die Kryptographie Download PDF

Info

Publication number
DE102006011208A1
DE102006011208A1 DE102006011208A DE102006011208A DE102006011208A1 DE 102006011208 A1 DE102006011208 A1 DE 102006011208A1 DE 102006011208 A DE102006011208 A DE 102006011208A DE 102006011208 A DE102006011208 A DE 102006011208A DE 102006011208 A1 DE102006011208 A1 DE 102006011208A1
Authority
DE
Germany
Prior art keywords
point
elliptic curve
input point
input
binary
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.)
Withdrawn
Application number
DE102006011208A
Other languages
English (en)
Inventor
Ihor Suwon Vasyltsov
Yoo-jin Yongin Baek
Hee-Kwan Suwon Son
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of DE102006011208A1 publication Critical patent/DE102006011208A1/de
Withdrawn 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/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
    • 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/34Encoding or coding, e.g. Huffman coding or error correction

Abstract

Angegeben sind beispielhafte Ausgestaltungen eines kryptographischen Verfahrens und einer entsprechenden Vorrichtung. Das kryptographische Verfahren und die Vorrichtung können in Weierstrass- und Hesseschen Formen implementiert werden, wobei für die Produktdarstellungen affine, gewöhnliche projektive, projektive Jacobi- und projektive Lopez-Dahab-Darstellungen verwendet werden. Das kryptographische Verfahren und die Vorrichtung können den Verlust vertraulicher Informationen verhindern, indem Fehler in einem Basispunkt aufgrund bestimmter Angriffe, Fehler in Definitionsfeldern und Fehler in Parametern einer elliptischen Kurve vor dem Ausgeben endgültiger kryptographischer Ergebnisse überprüft werden.

Description

  • Prioritätsanspruch
  • Es wird die Priorität der koreanischen Patentanmeldung Nr. 10-2005-0018429 beansprucht, die am 5. März 2005 beim Koreanischen Patentamt eingereicht wurde und deren Offenbarung hiermit durch Bezugnahme in ihrer Gesamtheit in die vorliegende Anmeldung aufgenommen wird.
  • Hintergrund der Erfindung
  • Gebiet der Erfindung
  • Beispielhafte Ausgestaltungen der vorliegenden Erfindung betreffen allgemein kryptographische Verfahren und Vorrichtungen.
  • Um Probleme fortschrittlicher vertraulicher Datenkommunikation zu lösen, sind kryptographische Systeme auf der Grundlage gut bekannter Kryptoalgorithmen verwendet worden. Kryptoalgorithmen mit Algorithmen unter Verwendung öffentlicher Schlüssel, wie Rivest-Shamir-Adleman (RSA) und Elliptic-Curve-Cryptography (ECC), und Algorithmen unter Verwendung symmetrischer Schlüssel, wie der Data-Encryption-Standard (DES) und der Advanced-Encryption-Standard (AES), sind weitläufig bekannt.
  • Allerdings wurden zusätzlich zu Hardware-orientierten Kryptosystemen neuartige Kryptoanalyseverfahren, wie Side-Channel-Analysis (SCA) entwickelt. Mehrere verschiedene Angriffstechniken sind möglich, einschließlich Zeitablaufanalyse, Leistungsanalyse, elektromagnetischer Analyse und Different-Faults-Analysis (DFA). Diese Techniken können Kryptosysteme erfolgreich angreifen und geheime Schlüssel in kürzerer Zeit und mit geringerem Aufwand erhalten.
  • Folglich ist die Entwicklung von Gegenmaßnahmen gegen die Kryptoanalyseverfahren, wie SCA, von Bedeutung. Eine starke und gefährliche SCA-Technik ist die DFA. Weil jedoch die ECC eine relativ neue Form der Kryptographie ist, gibt es wenig Informationen und Techniken gegen Angriffe mittels der DFA.
  • 1 ist ein Blockschaltbild einer herkömmlichen Kryptographievorrichtung 100. Bezug nehmend auf 1 kann die Kryptographievorrichtung 100 eine Skalarmultiplikationseinheit 110 und eine Vergleichs- und Ausgabeeinheit 120 beinhalten. Die Skalarmultiplikationseinheit 110 kann parallele ECC-Operationseinheiten 112 und 113 beinhalten. Jede der ECC-Operationseinheiten 112 und 113 kann einen verschlüsselten Ausgabepunkt erzeugen, indem sie gemäß einem ECC-Algorithmus eine Skalarmultiplikationsoperation an einem Eingabepunkt P und einem geheimen Schlüssel durchführt. Die Vergleichs- und Ausgabeeinheit 120 kann prüfen, ob die Ausgabepunkte, die durch die ECC-Operationseinheiten 112 und 113 erzeugt wurden, identisch sind. Wenn die Ausgabepunkte identisch sind, kann die Vergleichs- und Ausgabeeinheit 120 einen beliebigen der Ausgabepunkte Q an eine Nachverarbeitungseinheit übertragen. Wenn jedoch die Ausgabepunkte nicht identisch sind, überträgt die Vergleichs- und Ausgabeeinheit 120 den Ausgabepunkt Q nicht. Somit können dann, wenn während der Skalarmultiplikationsoperation für die Verschlüsselung ein Fehler aufgetreten ist, die verschlüsselten Ausgabepunkte, die durch die ECC-Operationseinheiten 112 und 113 erzeugt wurden, voneinander verschieden sein, sodass die verschlüsselten Ausgabepunkte nicht zu der Nachverarbei tungseinheit übertragen werden, um einen Verlust von vertraulichen Informationen zu vermeiden.
  • Um ein Kryptosystem, wie eine Smartcard, welches die Kryptographieeinrichtung 100 aufweist, zu gefährden, kann ein Kryptoanalytiker (Angreifer) einen Fehler (Leistungsstörimpuls, elektromagnetische oder optische Einwirkung) während der Berechnung einer skalaren Multiplikation generieren, dieselben verschlüsselten Ausgabepunkte erzeugen, wie sie durch die parallelen ECC-Operationseinheiten 112 und 113 erzeugt werden, und kann die fehlerhaften Ausgabepunkte analysieren und in den Besitz eines durch das Kryptosystem verwendeten geheimen Schlüssels gelangen. Allgemein kann ein Angreifer vorübergehende oder dauerhafte Fehler erzeugen. Beispielsweise können die vorübergehenden Fehler während einer Parameterübertragung erzeugt werden, und die dauerhaften Fehler können an jedem beliebigen Ort von Systemparametern erzeugt werden. Für verschiedene Punktdarstellungen anhand einer elliptischen Kurve (EC) können drei Arten von Fehlern während der Berechnung hervorgerufen werden, wie Fehler des Basispunkts P, Fehler in Definitionsfeldern des Punkts P und Fehler in EC-Parametern. Die wesentlichen Nachteile der Gegenmaßnahmen herkömmlicher Art, wie sie in 1 dargestellt sind, liegen in einer Leistungsverschlechterung und hohen Berechnungskosten, welche sie praktisch nutzlos machen.
  • Zusammenfassung der Erfindung
  • In einer beispielhaften Ausgestaltung der vorliegenden Erfindung beinhaltet ein kryptographisches Verfahren ein Bereitstellen von Bereichsparametern einer elliptischen Kurve (EC), eines binären Prüfcodes (BCC), eines Eingabepunkts und eines geheimen Schlüssels, ein Bestimmen, ob ein auf der Grundlage der Bereichsparameter einer elliptischen Kurve berechneter Wert gleich dem binären Prüfcode ist, ein Bestimmen, ob der Ein gabepunkt auf einer elliptischen Kurve existiert, die durch die Bereichsparameter einer elliptischen Kurve definiert ist, ein Erzeugen eines verschlüsselten Ausgabepunkts, indem eine skalare Multiplikation an dem Eingabepunkt und dem geheimen Schlüssel unter Verwendung der Bereichsparameter einer elliptischen Kurve durchgeführt wird, ein Bestimmen, ob der verschlüsselte Ausgabepunkt auf der elliptischen Kurve liegt, die durch die Bereichsparameter einer elliptischen Kurve definiert ist, und ein Ausgeben des verschlüsselten Ausgabepunkts, wenn der auf Grundlage der Bereichsparameter einer elliptischen Kurve berechnete Wert gleich dem binären Prüfcode ist und wenn der Eingabepunkt und der verschlüsselte Ausgabepunkt auf der elliptischen Kurve existieren, und kein Ausgeben des verschlüsselten Ausgabepunkts, wenn der auf Grundlage der Bereichsparameter einer elliptischen Kurve berechnete Wert nicht gleich dem binären Prüfcode ist oder wenn der Eingabepunkt oder der verschlüsselte Ausgabepunkt nicht auf der elliptischen Kurve existieren.
  • In einer weiteren Ausgestaltung der vorliegenden Erfindung beinhaltet ein kryptographisches Verfahren: Bereitstellen von Bereichsparametern einer elliptischen Kurve (EC), eines binären Prüfcodes (BCC), eines Eingabepunkts und eines geheimen Schlüssels, Erzeugen eines zweiten Eingabepunkts unter Verwendung der Bereichsparameter einer elliptischen Kurve und des binären Prüfcodes, Erzeugen eines verschlüsselten Ausgabepunkts, indem eine skalare Multiplikation des zweiten Eingabepunkts und des geheimen Schlüssels unter Verwendung der Bereichsparameter einer elliptischen Kurve durchgeführt wird, Erzeugen eines ersten Informationssignals, um anzuzeigen, ob der erste Eingabepunkt gleich dem aus den Bereichsparametern einer elliptischen Kurve und dem binären Prüfcode erneut geschätzten zweiten Eingabepunkt ist, Erzeugen eines zweiten Informationssignals, um anzuzeigen, ob der verschlüsselte Ausgabepunkt auf einer elliptischen Kurve (EC) existiert, die durch die Bereichsparameter einer elliptischen Kurve definiert ist, und Durchführen einer XOR-Operation an dem ersten Informationssignal, dem zweiten Informationssignal und dem verschlüsselten Ausgabepunkt.
  • In einer weiteren beispielhaften Ausgestaltung der vorliegenden Erfindung ist weiterhin eine Kryptographievorrichtung angegeben, aufweisend: eine Skalarmultiplikationseinheit, die dazu ausgebildet ist, einen Eingabepunkt und einen geheimen Schlüssel zu empfangen und einen verschlüsselten Ausgabepunkt zu erzeugen, indem sie eine skalare Multiplikation unter Verwendung von Bereichsparametern einer elliptischen Kurve (EC) durchführt, einen Bereichsprüfer, der dazu ausgebildet ist zu prüfen, ob ein auf Grundlage der Bereichsparameter einer elliptischen Kurve berechneter Wert gleich einem binären Prüfcode (BCC) ist, und einen Punktprüfer, der dazu ausgebildet ist zu bestimmen, ob der Eingabepunkt und der verschlüsselte Ausgabepunkt auf einer elliptischen Kurve (EC) existieren, die durch die Bereichsparameter einer elliptischen Kurve definiert ist, wobei, wenn der auf Grundlage der Bereichsparameter einer elliptischen Kurve berechnete Wert gleich dem binären Prüfcode ist und wenn der Eingabepunkt und der verschlüsselte Ausgabepunkt auf der elliptischen Kurve existieren, der verschlüsselte Ausgabepunkt ausgegeben wird, und wobei dann, wenn der auf Grundlage der Bereichsparameter einer elliptischen Kurve berechnete Wert nicht gleich dem binären Prüfcode ist oder wenn der Eingabepunkt oder der verschlüsselte Ausgabepunkt nicht auf der elliptischen Kurve existieren, der verschlüsselte Ausgabepunkt nicht ausgegeben wird.
  • Gemäß einer weiteren Ausgestaltung der vorliegenden Erfindung beinhaltet eine Kryptographievorrichtung einen Eingabepunkt-Berechnungsschaltkreis, der zum Bestimmen eines zweiten Eingabepunkts unter Verwendung von Bereichsparametern einer elliptischen Kurve (EC) und eines binären Prüfcodes (BCC) ausgebildet ist, der eine Funktion eines ersten Eingabepunkts ist, einen Skalarmultiplikation-Berechnungsschaltkreis, der zum Empfangen des zweiten Eingabepunkts und eines geheimen Schlüs sels und zum Erzeugen eines verschlüsselten Ausgabepunkts durch Ausführen einer skalaren Multiplikation unter Verwendung der Bereichsparameter einer elliptischen Kurve ausgebildet ist, einen Bereichsprüfschaltkreis, der zum Erzeugen eines ersten Informationssignals ausgebildet ist, das anzeigt, ob der erste Eingabepunkt gleich dem aus den EC-Bereichsparametern und dem binären Prüfcode geschätzten zweiten Eingabepunkt ist, und einen Ausgangsschaltkreis, der ein zweites Informationssignal erzeugt, das anzeigt, ob der verschlüsselte Ausgabepunkt auf der elliptischen Kurve definierten (EC) existiert, und der eine XOR-Operation an dem ersten Informationssignal, dem zweiten Informationssignal und dem verschlüsselten Ausgabepunkt durchführt.
  • Kurze Beschreibung der Zeichnungen
  • Die vorliegende Erfindung wird deutlicher durch die Beschreibung detaillierter beispielhafter Ausgestaltungen unter Bezugnahme auf die beigefügten Zeichnungen. Es zeigt:
  • 1 ein Blockschaltbild zur Darstellung einer herkömmlichen Kryptographievorrichtung;
  • 2 eine Hierarchie einer Skalarmultiplikationsoperation;
  • 3 ein Flussdiagramm zur Darstellung eines kryptographischen Verfahrens gemäß einer beispielhaften Ausgestaltung der vorliegenden Erfindung;
  • 4 ein Blockschaltbild einer Kryptographievorrichtung, die das Kryptographieverfahren der 3 gemäß einer beispielhaften Ausgestaltung der vorliegenden Erfindung implementiert;
  • 5 ein Blockschaltbild einer Kryptographievorrichtung, die das kryptographische Verfahren der 3 gemäß einer weiteren beispielhaften Ausgestaltung der vorliegenden Erfindung implementiert;
  • 6 einen Bereichsprüfer gemäß einer beispielhaften Ausgestaltung der vorliegenden Erfindung;
  • 7 einen Punktprüfer gemäß einer beispielhaften Ausgestaltung der vorliegenden Erfindung;
  • 8 ein detailliertes Blockschaltbild eines Punktprüfers in affinen Weierstrass(WA)-Koordinaten in GF(p) gemäß einer beispielhaften Ausgestaltung der vorliegenden Erfindung;
  • 9 ein detailliertes Blockschaltbild eines Punktprüfers in gewöhnlichen projektiven Weierstrass (WP)-Koordinaten in GF(p) gemäß einer beispielhaften Ausgestaltung der vorliegenden Erfindung;
  • 10 ein detailliertes Blockschaltbild eines Punktprüfers in projektiven Weierstrass-Jacobi (WJ)-Koordinaten in GF(p) gemäß einer beispielhaften Ausgestaltung der vorliegenden Erfindung;
  • 11 ein detailliertes Blockschaltbild eines Punktprüfers in projektiven Weierstrass-Lopez-Dahab (WL)-Koordinaten in GF(p) gemäß einer beispielhaften Ausgestaltung der vorliegenden Erfindung;
  • 12 ein detailliertes Blockschaltbild eines Punktprüfers in affinen Weierstrass (WA)-Koordinaten in GF(2n) gemäß einer beispielhaften Ausgestaltung der vorliegenden Erfindung;
  • 13 ein detailliertes Blockschaltbild eines Punktprüfers in gewöhnlichen projektiven Weierstrass (WP)-Koordinaten in GF(2n) gemäß einer beispielhaften Ausgestaltung der vorliegenden Erfindung;
  • 14 ein detailliertes Blockschaltbild eines Punktprüfers in projektiven Weierstrass-Jacobi (WJ)-Koordinaten in GF(2n) gemäß einer beispielhaften Ausgestaltung der vorliegenden Erfindung;
  • 15 ein detailliertes Blockschaltbild eines Punktprüfers in projektiven Weierstrass-Lopez-Dahab (WL)-Koordinaten in GF(2n) gemäß einer beispielhaften Ausgestaltung der vorliegenden Erfindung;
  • 16 ein detailliertes Blockschaltbild eines Punktprüfers in affinen Hesseschen (HA)-Koordinaten gemäß einer beispielhaften Ausgestaltung der vorliegenden Erfindung;
  • 17 ein detailliertes Blockschaltbild eines Punktprüfers in gewöhnlichen projektiven Hesseschen (HP)-Koordinaten gemäß einer beispielhaften Ausgestaltung der vorliegenden Erfindung; und
  • 18 ein Flussdiagramm zur Darstellung eines kryptographischen Verfahrens gemäß einer weiteren exemplarischen Ausgestaltung der vorliegenden Erfindung.
  • Detaillierte Beschreibung beispielhafter Ausgestaltungen der Erfindung
  • Im Folgenden werden beispielhafte Ausgestaltungen der vorliegenden Erfindung unter Bezugnahme auf die beigefügten Zeichnungen beschrieben. Dieselben Bezugszeichen werden benutzt, um gleiche Elemente zu bezeichnen.
  • Eine elliptische Kurve E ist eine Gruppe von Punkten (x, y), welche die elliptische Kurvengleichung (Gleichung 1) in der affinen Weierstrass-Form erfüllen: E : y2 + a1xy + a3y = X3 + a2x2 + a4x + a6 (1)
  • Für Kryptographieanwendungen kann die elliptische Kurve auf einem unteilbaren finiten Feld GF(p) oder einem binären finiten Feld GF(2n) benutzt werden. Vorliegend bezeichnet GF() ein Galois-Feld, wobei ein unteilbares finites Feld ein Feld mit einer Primzahl von Elementen und ein binäres finites Feld ein Feld mit 2n Elementen ist.
  • Wenn p eine ungerade Primzahl ist, dann existiert ein eindeutiges Feld GF(p) mit p Elementen. Für diesen Fall eines unteilbaren finiten Feldes besitzt die Gleichung 1 die Form
    Figure 00090001
  • Für n ≥ 1 existiert ein ausgezeichnetes Feld GF(2n) mit 2n Elementen. Für diesen Fall eines binären finiten Feldes ist die Gleichung 1
    Figure 00100001
  • Die elliptischen Kurven können die Punktadditionsoperation besitzen, und unter speziellen Umständen kann im Folgenden die Punktverdopplungsoperation auftreten. Um den Ergebnispunkt R = P + Q = (x3, y3) aus zwei Punkten P = (x1,y1) und Q = (x2, y2) zu erhalten, ist eine nächstes-finites-Feld-Operation (Gleichung 4) in GF(p) erforderlich:
    Figure 00100002
  • Wenn es sich um die Punktverdopplungsoperation (P = Q) handelt, kann die nächstes-finites-Feld-Operation (Gleichung 5) in GF(p) durchgeführt werden:
    Figure 00100003
  • Gleichungen 4 und 5 können für den Fall des binären finiten Feldes GF(2n) den Gleichungen 6 und 7 entsprechen.
  • Figure 00110001
  • Die Hauptoperation in der ECC kann eine skalare Punktmultiplikation sein, die das Berechnen von Q = k·P = P + P + ... + P (k mal) beinhaltet, wobei k ein geheimer Schlüssel ist. Wie in der in 2 dargestellten Hierarchie gezeigt ist, kann die skalare Punktmultiplikation auf den Punktoperationen basieren, welche wiederum auf den finites-Feld-Operationen ff_mul (Multiplikation im finiten Feld), ff_add (Addition im finiten Feld) und ff_sqr (Quadrierung im finiten Feld) basieren. Eine verwandte Operation kann der diskrete Logarithmus sein, der das Berechnen von k aus P und Q = k·P beinhaltet.
  • Es gibt unterschiedliche mögliche Darstellungen des Punktes (Ort) auf der elliptischen Kurve neben der affinen Darstellung (die in den obigen Gleichungen verwendet wurde), beispielsweise die gewöhnliche projektive, projektive Jacobi- und projektive Lopez-Dahab-Darstellung. Jede dieser Darstellungen hat Vorteile, beispielsweise bessere Leistungsfähigkeit, Widerstandsfähigkeit gegen bestimmte Arten von Angriffen und/oder eine mögliche einfache Ausbildung des Systems.
  • In gewöhnlichen projektiven (WP)-Koordinaten in GF(p) kann Gleichung 1 als Gleichung 8 geschrieben werden. Das Verhältnis zwischen Gleichungen 1 und 8 kann gemäß Gleichung 9 dargestellt werden. Y2Z = X3 + aXZ2 + bZ3, (8)
    Figure 00120001
  • In projektiven Jacobi (WJ)-Koordinaten in GF(p) kann Gleichung 1 als Gleichung 10 geschrieben werden. Das Verhältnis zwischen Gleichungen 1 und 10 kann gemäß Gleichung 11 dargestellt werden. Y2 = X3 + aXZ4 + bZ6, (10)
    Figure 00120002
  • In projektiven Lopez-Dahab-Koordinaten in GF(p) kann Gleichung 1 als Gleichung 12 geschrieben werden. Das Verhältnis zwischen Gleichungen 1 und 12 kann gemäß Gleichung 13 dargestellt werden. Y2 = X3Z + aXZ3 + bZ4 (12)
    Figure 00120003
  • In gewöhnlichen projektiven Koordinaten GF(2n) kann Gleichung 1 als Gleichung 14 geschrieben werden. Das Verhältnis zwischen Gleichungen 1 und 14 kann gemäß Gleichung 15 dargestellt werden. Y2Z + XYZ = X3 + aX2Z + bZ3 (14)
    Figure 00130001
  • In projektiven Jacobi-Koordinaten in GF(2n) kann Gleichung 1 als Gleichung 16 geschrieben werden. Das Verhältnis zwischen Gleichungen 1 und 16 kann als Gleichung 17 dargestellt werden. Y2 + XYZ = X3 + aX2Z2 + bZ6 (16)
    Figure 00130002
  • In projektiven Lopez-Dahab-Koordinaten in GF(2n) kann Gleichung 1 als Gleichung 18 geschrieben werden. Das Verhältnis zwischen Gleichungen 1 und 18 kann als Gleichung 19 dargestellt werden. Y2 + XYZ = X3Z + aX2Z2 + bZ4 (18)
    Figure 00140001
  • Die Weierstrass-Form der Darstellung von elliptischen Kurven ist die in der kryptographischen Anwendung zumeist verwendete Form, jedoch wurde in letzter Zeit die Hessesche Form, die sich durch die Möglichkeit der Parallelisierung als auch durch Vorteile bei SCA-resistenten Implementierungen auszeichnet, ebenfalls eingesetzt. In den affinen Hesseschen Koordinaten kann Gleichung 1 als Gleichung 20 geschrieben werden. Das Verhältnis zwischen der Weierstrass-Form und der Hesseschen Form kann als Gleichung 21 dargestellt werden. Um von Gleichung 1 nach Gleichung 21 und zurück zu gelangen, finden die in Gleichung 22 beschriebenen Regeln Anwendung. E : u3 + ν3 + 1 = Duν, D ∊ K, D3 ≠ 1 (20)
    Figure 00140002
  • In den gewöhnlichen projektiven Hesseschen Koordinaten kann Gleichung 1 als Gleichung 23 geschrieben werden. Das Verhältnis zwi schen affinen und gewöhnlichen projektiven Koordinaten in der Hesseschen Form ist ähnlich wie bei der Weierstrass-Form, was in Gleichung 24 dargestellt ist. U3 + V3 + W3 = DUVW, D ∊ K, D3 ≠ 1 (23)
    Figure 00150001
  • Ein Angreifer kann während einer Skalarmultiplikationsberechnung einen Fehler (Leistungsstörimpulse, elektromagnetische oder optische Einwirkung) erzeugen, die fehlerhaften Ausgangsdaten analysieren und einen durch ein System verwendeten geheimen Schlüssel erhalten. Für unterschiedliche EC-Punktdarstellungen sind drei Arten von Fehlern zu berücksichtigen, die während des Berechnungsprozesses hervorgerufen werden können, wie Fehler des Basispunkts, Fehler in Definitionsfeldern und Fehler in EC-Parametern.
  • Im Folgenden werden Gegenmaßnahmen zum Verhindern eines Verlusts von vertraulichen Informationen für vorübergehende oder dauerhafte Fehler beschrieben, die in Form von DFA-Angriff-Fehlern existieren können.
  • Um die drei Arten von DFA-Angriffen und Kombinationen derartiger Angriffe abzuwehren, können vier grundlegende Prüfoperationen durchgeführt werden, nämlich ein Prüfen von EC-Bereichsparametern an einem Eingang (vor der Skalarmultiplikationsoperation), Prüfen eines Eingabepunkts P an dem Eingang, Prüfen der EC-Bereichsparameter bei der Ausgabe (nach der Skalarmultiplikationsoperation) und Prüfen eines verschlüs selten Ausgabepunkts Q = k·P bei der Ausgabe. Eine beispielhafte Ausgestaltung wird detaillierter unter Bezugnahme auf 3 beschrieben.
  • 3 ist ein Flussdiagramm zur Darstellung einer Skalarmultiplikationsoperation zum Verschlüsseln eines Eingabepunkts P gemäß einer beispielhaften Ausgestaltung der vorliegenden Erfindung. Bezug nehmend auf 3 kann eine Skalarmultiplikationseinheit (420 in 4) EC-Bereichsparameter und einen binären Prüfcode (BCC) von einem geschützten nicht-flüchtigen Speicher (440 in 4) in Schritt S11 empfangen. Vorliegend können a, b, p die Bereichsparameter in dem Fall GF(p) sein, und a, b, n können die Bereichsparameter in dem Fall GF(2n) sein. Im Schritt S12 kann ein Bereichsprüfer (430 in 4) prüfen, ob ein Wert a ⊕ b ⊕ p|n, der unter Verwendung der EC-Bereichsparameter berechnet wurde, gleich dem BCC ist. Wenn der unter Verwendung der EC-Bereichsparameter berechnete Wert a ⊕ b ⊕ p|n gleich dem BCC ist, kann der Ablauf im nächsten Verfahrensschritt fortgesetzt werden, wenn sie jedoch nicht gleich sind, kann ein Alarmsignal in Schritt S27 ausgesendet werden, und alle kritischen Informationen, z. B. alte Daten in der Skalarmultiplikationsoperation, können in Schritt S28 aus einem öffentlichen Speicher gelöscht werden.
  • Um die Bereichsparameter in Schritt S12 zu prüfen, kann eine XOR (exklusives ODER)-Einrichtung verwendet werden, die in 6 dargestellt ist. Vorliegend kann der BCC durch Gleichung 25 definiert und in dem nicht-flüchtigen Speicher (440 in 4) gespeichert sein. BCC = a ⊕ b ⊕ p|n (25)
  • Wenn der BCC gleich dem Wert a ⊕ b ⊕ p|n ist, der unter Verwendung der EC-Bereichsparameter berechnet wurde, ist der durch eine XOR-Operation gemäß Gleichung 26 geprüfte Wert gleich Null. a ⊕ b ⊕ p|n ⊕ BCC = 0 (26)
  • Für die in dem geschützten nicht-flüchtigen Speicher (440 in 4) gespeicherten Bereichsparameter kann ein Angreifer nur zufällige Fehler induzieren, sodass die Möglichkeit eines Hervorrufens derjenigen Fehler, die zum Analysieren aller BCC-Werte und anderer Bereichsparameter a, b, p|n erforderlich sind, vernachlässigbar sein kann.
  • Die Skalarmultiplikationseinheit (420 in 4) kann den Eingabepunkt P in Schritt S13 von außen empfangen. Falls erforderlich, kann der Eingabepunkt P gemäß Gleichungen 8 bis 24 in Schritt S14 und S15 in eine erforderliche Punktdarstellung umgewandelt werden, z. B. WA – affine Weierstrass, WP – gewöhnliche projektive Weierstrass, WJ – projektive Weierstrass-Jacobi, WL – projektive Weierstrass-Lopez-Dahab, HA – affine Hessesche oder HP – gewöhnliche projektive Hessesche Punktdarstellung. Die Umwandlung kann durch einen Punktdarstellungsumwandler (410 in 4) durchgeführt werden.
  • Ein Punktprüfer (460 in 4) kann in Schritt S16 prüfen, ob der Eingabepunkt P auf einer EC existiert, die durch die Bereichsparameter definiert ist. Wenn hierbei der Eingabepunkt P auf der EC existiert, kann das Verfahren mit dem nächsten Schritt fortgesetzt werden, und wenn der Eingabepunkt P nicht existiert, kann in Schritt S27 ein Alarmsignal ausgesendet werden, und alle kritischen Informationen werden in Schritt S28 aus dem öffentlichen Speicher gelöscht.
  • Die Skalarmultiplikationseinheit (420 in 4) kann einen geheimen Schlüssel k in Schritt S17 empfangen und in Schritt S18 einen verschlüsselten Ausgabepunkt Q = k·P erzeugen, indem sie die Skalarmultiplikation an dem Eingabepunkt P und dem geheimen Schlüssel k unter Verwendung der EC-Bereichsparameter vornimmt. Wenn der Eingabepunkt P in Schritt S15 in eine andere Punktdarstellung umgewandelt wurde, kann ein entsprechender verschlüsselter Ausgabepunkt Q = k·P aus dem punktkonvertierten Eingabepunkt erzeugt werden.
  • Das Prüfen der EC-Bereichsparameter und des verschlüsselten Ausgabepunkts Q = k·P bei der Ausgabe können in derselben Weise durchgeführt werden.
  • Der Bereichsprüfer (430 in 4) kann die EC-Bereichsparameter in Schritt S19 empfangen, und in Schritt S20 kann der Bereichsprüfer 430 prüfen, ob ein Wert a ⊕ b ⊕ p|n, der unter Verwendung der EC-Bereichsparameter berechnet wurde, gleich dem BCC ist, wobei in derselben Weise wie in Schritt S12 vorgegangen wird. Wenn der Wert a ⊕ b ⊕ p|n gleich dem BCC ist, kann das Verfahren mit dem nächsten Schritt fortgesetzt werden, wenn jedoch die Werte nicht gleich sind, kann in Schritt S27 ein Alarmsignal ausgesendet werden, und alle kritischen Informationen, z. B. alle Daten in der Skalarmultiplikationsoperation, können in Schritt S28 aus dem öffentlichen Speicher gelöscht werden. Hierbei kann, wie in Schritt S15, der verschlüsselte Ausgabepunkt Q = k·P durch den Punktdarstellungsumwandler (410 in 4) gemäß Gleichungen 8 bis 24 in den Schritten S21 und S22 in eine andere Punktdarstellung umgewandelt werden, falls erforderlich.
  • Der Punktprüfer (460 in 4) kann in Schritt S23 prüfen, ob der verschlüsselte Ausgabepunkt Q = k·P auf der durch die Bereichsparameter definierten EC existiert. Wenn hierbei der verschlüsselte Ausgabepunkt Q = k·P auf der EC existiert, kann das Verfahren mit dem nächsten Schritt fortgesetzt werden, wenn er jedoch nicht existiert, kann in Schritt S27 ein Alarmsignal ausgesendet werden, und alle kritischen Informationen können in Schritt S28 aus dem öffentlichen Speicher gelöscht werden. Falls dies erforderlich ist, kann der verschlüsselte Ausgabepunkt Q = k·P wieder durch den Punktdarstellungsumwandler (410 in 4) gemäß Gleichungen 8 bis 24 in Schritt S24 und S25 in eine andere Punktdarstellung umgewandelt werden. Gemäß den Schritten S11 bis S25 kann, wenn der Wert a ⊕ b ⊕ p|n, der unter Verwendung der EC-Bereichsparameter berechnet wurde, gleich dem BCC ist und wenn der Eingabepunkt P und der verschlüsselte Ausgabepunkt Q = k·P auf der EC existiert, der verschlüsselte Ausgabepunkt Q = k·P in Schritt S26 an eine Nachverarbeitungseinheit auf einer übergeordneten Ebene ausgegeben werden.
  • 4 ist ein Blockschaltbild einer kryptographischen Vorrichtung 400, welche das kryptographische Verfahren aus 3 gemäß einer beispielhaften Ausgestaltung der vorliegenden Erfindung implementiert. Bezug nehmend auf 4 kann die kryptographische Vorrichtung 400 den Punktdarstellungsumwandler 410, die Skalarmultiplikationseinheit 420, den Bereichsprüfer 430, den geschützten nicht-flüchtigen Speicher 440, eine grundlegende Feldoperationshardware 450, den Punktprüfer 460 und eine Steuereinheit 470 aufweisen.
  • Die Steuereinheit 470 kann das gesamte System steuern, um das kryptographische Verfahren der 3 zu implementieren. Der geschützte nicht-flüchtige Speicher 440 kann die EC-Bereichsparameter, den BCC und den geheimen Schlüssel k nach Maßgabe der Steuereinheit 470 speichern und bereit stellen (Schritt S11, S17 und S19 in 3).
  • Die Skalarmultiplikationseinheit 420 kann den Eingabepunkt P und den geheimen Schlüssel k empfangen und den verschlüsselten Ausgabepunkt Q = k·P erzeugen, indem sie die skalare Multiplikation unter Verwendung der Bereichsparameter a, b, p|n durchführt (Schritt S18 in 3). Die grundlegende Feldoperationshardware 450 kann eine XOR-Einheit, einen Multiplizierer ff_M, einen Addierer ff_A und einen Subtrahierer ff_S enthalten, welche für die skalare Multiplikation benutzt werden können, die durch die Skalarmultiplikationseinheit 420 durchgeführt wird.
  • Der Bereichsprüfer 430 kann prüfen, ob der Wert a ⊕ b ⊕ p|n, der unter Verwendung der EC-Bereichsparameter berechnet wurde, gleich dem BCC ist (Schritte S12 und S20 in 3). Der Bereichsprüfer 430 kann das oben genannte Ergebnis vor und nach der Erzeugung des verschlüsselten Ausgabepunkts Q = k·P prüfen und kann bestimmen, ob das Ergebnis gleich Null ist, wie in Gleichung 26 dargestellt, wobei eine XOR-Einheit zum Einsatz kommt.
  • Der Punktprüfer 460 kann überprüfen, ob der Eingabepunkt P und der verschlüsselte Ausgabepunkt Q = k·P auf der EC existieren (Schritte S16 und S23 in 3).
  • Der Punktdarstellungsumwandler 410 kann den Eingabepunkt P in eine andere Punktdarstellung (WA, WP, WJ, WL, HA oder HP) umwandeln (S15, S22 und S25 in 3). Wenn hierbei der Eingabepunkt P in eine andere Punktdarstellung umgewandelt wird, kann die Skalarmultiplikations einheit 420 den verschlüsselten Ausgabepunkt Q = k·P aus dem punktkonvertierten Eingabepunkt erzeugen (Schritt S18 in 3)
  • In gleicher Weise kann gemäß den Schritten S11 bis S25 in 3, wenn der Wert a ⊕ b ⊕ p|n, der unter Verwendung der EC-Bereichsparameter berechnet wurde, gleich dem BCC ist und wenn der Eingabepunkt P und der verschlüsselte Ausgabepunkt Q = k·P auf der EC existieren, die Kryptographievorrichtung 400 in 4 den verschlüsselten Ausgabepunkt Q = k·P an die Nachverarbeitungseinheit auf der übergeordneten Ebene ausgeben (S26 in 3).
  • 5 ist ein Blockschaltbild einer Kryptographievorrichtung 500, welche das kryptographische Verfahren der 3 gemäß einer weiteren beispielhaften Ausgestaltung der Erfindung implementiert. Die Kryptographievorrichtung 500 kann eine vergleichbare Konfiguration aufweisen und vergleichbare Operationen durchführen wie die Skalarmultiplikationseinheit 420, der Bereichsprüfer 430, der geschützte nicht-flüchtige Speicher 440, die grundlegende Feldoperationshardware 450 und die Steuereinheit 470 in 4. Außerdem kann die Kryptographievorrichtung 500 für maximale Leistungen im Betrieb einen ersten Punktdarstellungsumwandler 411, einen zweiten Punktdarstellungsumwandler 412 und einen dritten Punktdarstellungsumwandler 413 anstelle des einen Punktdarstellungsumwandlers 410 in 4 enthalten. Die Kryptographievorrichtung 500 kann darüber hinaus einen ersten Punktprüfer 461 und einen zweiten Punktprüfer 462 zusätzlich zu dem einen Punktprüfer 460 der 4 beinhalten.
  • Anders als der Punktdarstellungsumwandler 410 in 4, bei dem in jedem der Schritte S15, S22 und S25 ein gemeinsamer Eingabepunkt in eine andere Punktdarstellung (WA, WP, WJ, WL, HA oder HP) umgewandelt werden kann, können der erste Punktdarstellungsumwandler 411, der zweite Punktdarstellungsumwandler 412 und der dritte Punktdarstellungsumwandler 413 in den Schritten S15, S22 und S25 eingegebene Punkte jeweils in andere Punktdarstellungen (WA, WP, WJ, WL, HA oder HP) umwandeln.
  • Genauer gesagt, kann der Punktdarstellungsumwandler 410 in 4 den Eingabepunkt P in S15 in eine andere Punktdarstellung umwandeln, kann den verschlüsselten Ausgabepunkt Q = k·P, der durch die Skalarmultiplikationseinheit 420 erzeugt wurde, in Schritt S22 in eine andere Punktdarstellung umwandeln und kann weiterhin den verschlüsselten Ausgabepunkt Q = k·P in Schritt S25 in eine andere Punktdarstellung umwandeln, nachdem überprüft wurde, ob der verschlüsselte Ausgabepunkt Q = k·P auf der EC existiert. Allerdings kann der erste Punktdarstellungsumwandler 411 in 5 den Eingabepunkt P in Schritt S15 in eine andere Punktdarstellung umwandeln, der zweite Punktdarstellungsumwandler 412 kann den verschlüsselten Ausgabepunkt Q = k·P, der durch die Skalarmultiplikationseinheit 420 erzeugt wurde, in S22 der 3 in eine andere Punktdarstellung umwandeln, und der dritte Punktdarstellungsumwandler 413 kann ebenfalls den verschlüsselten Ausgabepunkt Q = k·P in eine andere Punktdarstellung in S25 umwandeln, nachdem überprüft wurde, ob der verschlüsselte Ausgabepunkt Q = k·P auf der EC existiert.
  • Weiterhin kann der erste Punktprüfer 461 im Gegensatz zu dem Punktprüfer 460 der 4, welcher in den Schritten S16 und S23 prüft, ob der Eingabepunkt P und der verschlüsselte Ausgabepunkt Q = k·P auf der EC existieren, in Schritt S16 prüfen, ob der Eingabepunkt P auf der EC existiert, und der zweite Punktprüfer 462 prüft in Schritt S23, ob der verschlüsselte Ausgabepunkt Q = k·P auf der EC existiert.
  • Ein Angreifer hat noch eine weitere DFA-Angriffsmöglichkeit PA, die durch Gleichung 27 definiert ist. Hierin gibt PSM die Wahrscheinlichkeit an, mit der durch den Angreifer angeforderte Fehler in der Skalarmultiplikationsoperation induziert werden, und PC gibt die Wahrscheinlichkeit an, mit der durch den oder die Punktprüfer angeforderte Fehler induziert werden: PA = PSM·PC. (27)
  • Um die Größe PC in Gleichung 27 zu verringern, ist in 7 eine beispielhafte Ausgestaltung der vorliegenden Erfindung in Form einer Punktprüfeinrichtung 700 dargestellt, die im Zuge der Verfahrensschritte S16 und S23 eingesetzt werden kann. Bezug nehmend auf 7 kann die Punktprüfeinrichtung 700 einen Punktprüfer 720 aufweisen, der eine Mehrzahl von ungeradzahligen Einheits-Punktprüfelementen und eine XOR-Einheit 720 aufweist, und kann weiterhin einen optionalen Punktdarstellungsumwandler 710 beinhalten, der dieselbe Anzahl von Einheits-Punktdarstellung-Umwandlungselementen wie die Einheits-Punktprüfelemente besitzt.
  • Vergleichbar dem Punktprüfer 460 in 4 und den Punktprüfern 461 und 462 in 5 kann jedes der in dem Punktprüfer 720 enthaltenen Einheits-Punktprüfelemente prüfen, ob der Eingabepunkt P auf der EC existiert. Die XOR-Einheit 730 kann ein Ergebnis ausgeben, das durch Ausführen einer XOR-Operation an Ausgaben der Einheits-Punktprüfelemente 720 erhalten wird. Gemäß der Eigenschaft der XOR-Operation kann bevorzugt sein, dass die Anzahl von Einheits-Punktprüfelementen, die in dem Punktprüfer 720 enthalten sind, eine ungerade Zahl ist. Die Anzahl der optional einsetzbaren Einheits-Punktdarstellung-Umwandlungselemente, die in dem Punktdarstellungsumwandler 710 enthalten sind, entsprechen anzahlmäßig genau (1:1) der Anzahl von Einheits-Punktprüfelementen in dem Punktprüfer 720. Jedes Einheits-Punktdarstellung-Umwandlungselement kann den Eingabepunkt in eine andere Punktdarstellung umwandeln und kann die umgewandelte Punktdarstellung an jedes relevante Einheits-Punktprüfelement ausgeben.
  • Die gesamte DFA-Angriffswahrscheinlichkeit PA kann abnehmen, wie in Gleichung 28 definiert. Hierbei gibt PC die Wahrscheinlichkeit an, mit der Fehler in jedem der Einheits-Punktprüfelemente 720 induziert werden, und t gibt die Anzahl von Einheits-Punktprüfelementen 720 an.
  • Figure 00240001
  • Detaillierte Schaltkreise der Punktprüfer 460 in 4 oder 461 und 462 in 5 werden nachfolgend beschrieben.
  • 8 ist ein detailliertes Blockschaltbild eines Punktprüfers 800 in affinen Weierstrass (WA)-Koordinanten in GF(p). Der Punktprüfer 800 kann Gleichung 2 überprüfen, um zu prüfen, ob ein Eingabepunkt auf einer EC existiert. Dies bedeutet, dass der Punktprüfer 800 die Ausdrücke „x3 + ax + b" und „y2" der Gleichung 2 prüfen kann, indem er drei Multiplikationen und zwei Additionen vornimmt, dass er eine XOR-Operation an den berechneten Werten durchführen kann und dass er das Ergebnis 0/!0 der XOR-Operation ausgeben kann. Hierbei kann (x, y) der Eingabepunkt sein, und a und b können relevante EC-Parameter sein.
  • 9 ist ein detailliertes Blockschaltbild eines Punktprüfers 900 in gewöhnlichen projektiven Weierstrass (WP)-Koordinaten in GF(p). Der Punktprüfer 900 kann Gleichung 8 überprüfen, um zu prüfen, ob ein Einga bepunkt auf einer EC existiert. Dies bedeutet, dass der Punktprüfer 900 die Ausdrücke „X3 + aXZ2 + bZ3" und „Y2Z" der Gleichung 8 prüfen kann, indem er acht Multiplikationen und zwei Additionen durchführt, dass er eine XOR-Operation an den berechneten Werten durchführen kann und dass er das Ergebnis 0/!0 der XOR-Operation ausgeben kann. Hierbei kann (X, Y, Z) der Eingabepunkt sein, und a und b können relevante EC-Parameter sein.
  • 10 ist ein detailliertes Blockschaltbild eines Punktprüfers 1000 in projektiven Weierstrass-Jacobi (WJ)-Koordinaten in GF(p). Der Punktprüfer 1000 kann Gleichung 10 überprüfen, um zu prüfen, ob ein Eingabepunkt auf einer EC existiert. Dies bedeutet, dass der Punktprüfer 1000 die Ausdrücke „X3 + aXZ4 + bZ6" und „Y2" in Gleichung 10 prüfen kann, indem er acht Multiplikationen und zwei Additionen durchführt, dass er eine XOR-Operation an den berechneten Werten durchführen kann und dass er das Ergebnis 0/!0 der XOR-Operation ausgeben kann. Hierbei kann (X, Y, Z) der Eingabepunkt sein, und a und b können relevante EC-Parameter sein.
  • 11 ist ein detailliertes Blockschaltbild eines Punktprüfers 1100 in projektiven Weierstrass-Lopez-Dahab (WL)-Koordinaten in GF(p). Der Punktprüfer 1100 kann Gleichung 12 überprüfen, um zu prüfen, ob ein Eingabepunkt auf einer EC existiert. Dies bedeutet, dass der Punktprüfer 1100 die Ausdrücke „X3Z + aXZ3 + bZ4" und „Y2" in Gleichung 12 prüfen kann, indem er acht Multiplikationen und zwei Additionen durchführt, dass er das Ergebnis 0/!0 der XOR-Operation ausgeben kann. Hierbei kann (X, Y, Z) der Eingabepunkt sein, und a und b können relevante EC-Parameter sein.
  • 12 ist ein detailliertes Blockschaltbild eines Punktprüfers 1200 in affinen Weierstrass (WA)-Koordinaten in GF(2n). Der Punktprüfer 1200 kann Gleichung 3 überprüfen, um zu prüfen, ob ein Eingabepunkt auf einer EC existiert. Dies bedeutet, dass der Punktprüfer 1200 die Ausdrücke „x3 + ax2 + b" und „y2 + xy" in Gleichung 3 prüfen kann, indem er drei Multiplikationen und drei Additionen durchführt, dass er eine XOR-Operation an den berechneten Werten durchführen kann und dass er das Ergebnis 0/!0 der XOR-Operation ausgeben kann. Hierbei kann (x, y) der Eingabepunkt sein, und a und b können relevante EC-Parameter sein.
  • 13 ist ein detailliertes Blockschaltbild des Punktprüfers in gewöhnlichen projektiven Weierstrass (WP)-Koordinaten in GF(2n). Der Punktprüfer 1300 kann Gleichung 14 überprüfen, um zu prüfen, ob ein Eingabepunkt auf einer EC existiert. Dies bedeutet, dass der Punktprüfer 1300 die Ausdrücke „X3Z + aX2Z + bZ3" und „Y2Z + XYZ" in Gleichung 14 prüfen kann, indem er acht Multiplikationen und drei Additionen durchführt, dass er eine XOR-Operation an den berechneten Werten durchführen kann und dass er das Ergebnis 0/!0 der XOR-Operation ausgeben kann. Hierbei kann (X, Y, Z) der Eingabepunkt sein, und a und b können relevante EC-Parameter sein.
  • 14 ist ein detailliertes Blockschaltbild eines Punktprüfers 1400 in projektiven Weierstrass-Jacobi (WJ)-Koordinaten in GF(2n). Der Punktprüfer 1400 kann Gleichung 16 überprüfen, um zu prüfen, ob ein Eingabepunkt auf einer EC existiert. Dies bedeutet, dass der Punktprüfer 1400 die Ausdrücke „X3 + aX2Z2 + bZ6" und „Y2 + XYZ" in Gleichung 16 überprüfen kann, indem er neun Multiplikationen und drei Additionen ausführt, dass er eine XOR-Operation an den berechneten Werten durchführen kann und dass er das Ergebnis 0/!0 der XOR-Operation ausgeben kann. Hierbei kann (X, Y, Z) der Eingabepunkt sein, und a und b können relevante EC-Parameter sein.
  • 15 ist ein detailliertes Blockschaltbild des Punktprüfers in projektiven Weierstrass-Lopez-Dahab (WL)-Koordinaten in GF(2n). Der Punktprüfer 1500 kann Gleichung 18 überprüfen, um zu prüfen, ob ein Eingabepunkt auf einer EC existiert. Dies bedeutet, dass der Punktprüfer 1500 die Ausdrücke „X3Z + aX2Z2 + bZ4" und „Y2 + XYZ" in Gleichung 18 prüfen kann, indem er neun Multiplikationen und drei Additionen durchführt, dass er eine XOR-Operation an den berechneten Werten durchführen kann und dass er das Ergebnis 0/!0 der XOR-Operation ausgeben kann. Hierbei kann (X, Y, Z) der Eingabepunkt sein, und a und b können relevante EC-Parameter sein.
  • 16 ist ein detailliertes Blockschaltbild eines Punktprüfers 1600 in affinen Hesseschen (HA)-Koordinaten. Der Punktprüfer 1600 kann Gleichung 20 überprüfen, um zu prüfen, ob ein Eingabepunkt auf einer EC existiert. Dies bedeutet, dass der Punktprüfer 1600 die Ausdrücke „u3 + ν3 + 1" und „Duν" in Gleichung 20 prüfen kann, indem er sechs Multiplikationen und zwei Additionen ausführt, dass er eine XOR-Operation an den berechneten Werten durchführen kann, und dass er das Ergebnis 0/!0 der XOR-Operation ausgeben kann. Hierbei können u und v Funktionen des Eingabepunkts (x, y) und von D sein, und D kann ein EC-Parameter sein.
  • 17 ist ein detailliertes Blockschaltbild eines Punktprüfers 1700 in gewöhnlichen projektiven Hesseschen (HP)-Koordinaten. Der Punktprüfer 1700 kann Gleichung 23 überprüfen, um zu prüfen, ob ein Eingabepunkt auf einer EC existiert. Dies bedeutet, dass der Punktprüfer 1700 die Ausdrücke „U3 + V3 + W3" und „DUVW "prüfen kann, indem er neun Multiplikationen und zwei Additionen durchführt, dass er eine XOR- Operation an den berechneten Werten durchführen kann, und dass er das Ergebnis 0/!0 der XOR-Operation ausgeben kann. Hierbei können U, V und W Funktionen des Eingabepunkts (x, y) und von D sein, und D kann ein EC-Parameter sein.
  • Eine weitere beispielhafte Ausgestaltung eines kryptographischen Verfahrens, die in 18 dargestellt ist, kann vorgeschlagen werden, um Verzweigungsfehlern abzuhelfen, die entstehen können, wenn ein System in Abhängigkeit davon betrieben wird, ob durch den Bereichsprüfer 430 und den Punktprüfer 460, in denen die Bestimmungsoperationen S12, S16, S20 und S23 in 3 durchgeführt werden, jeweils ermittelte Ergebnisse gleich 0 oder gleich !0 (ungleich Null) sind.
  • Bezug nehmend auf 18 kann ein Skalarmultiplikation-Berechnungsschaltkreis EC-Bereichsparameter und BCC von einem geschützten nicht-flüchtigen Speicher in Schritt S51 empfangen. Hierbei können a, b, p die Bereichsparameter in dem Fall GF(p) und a, b, n die Bereichsparameter in dem Fall GF(2n) sein. In Schritt S52 kann ein Eingangspunkt-Berechnungsschaltkreis einen Eingangspunkt unter Verwendung der EC-Bereichsparameter und des BCC schätzen, um die EC-Bereichsparameter zu prüfen.
  • Der BCC kann als eine Funktion des Eingabepunkts P definiert sein, wie in Gleichung 29 gezeigt, und kann in dem geschützten nichtflüchtigen Speicher gespeichert sein. Hierbei kann BCC den binären Prüfcode angeben, P kann den Eingabepunkt angeben, und a, b, p|n kann die EC-Bereichsparameter angeben, wobei a, b, p auf den Fall GF(p) und a, b, n auf den Fall GF(2n) angewendet werden können. BCC = P ⊕ a ⊕ b ⊕ p|n (29)
  • Dementsprechend kann der Eingabepunkt-Berechnungsschaltkreis einen Eingabepunkt durch Berechnen von Gleichung 30 schätzen, und wenn keine Fehler an dem BCC und den EC-Bereichsparametern vorliegen, kann der geschätzte Eingabepunkt P', der gemäß Gleichung 30 berechnet wurde, gleich dem Eingabepunkt P sein, der von dem geschützten nichtflüchtigen Speicher empfangen wurde. P = a ⊕ b ⊕ p|n ⊕ BCC (30)
  • Falls erforderlich kann der Eingabepunkt P', der im Schritt S52 geschätzt wurde, gemäß Gleichungen 8 bis 24 in Schritt S53 und S54 in eine andere Punktdarstellung umgewandelt werden, z. B. WA – affine Weierstrass, WP – gewöhnliche projektive Weierstrass, WJ – projektive Weierstrass-Jacobi, WL – projektive Weierstrass-Lopez-Dahab, HA – affine Hessesche oder HP – gewöhnliche projektive Hessesche Punktdarstellung. Diese Operation kann durch einen Punktdarstellung-Umwandlungsschaltkreis ausgeführt werden.
  • Der Skalarmultiplikation-Berechnungsschaltkreis kann einen geheimen Schlüssel k von dem geschützten nicht-flüchtigen Speicher in Schritt S55 empfangen und kann einen verschlüsselten Ausgabepunkt Q = k·P' durch Ausführen der Skalarmultiplikation des geschätzten Eingabepunkts P' und des geheimen Schlüssels k unter Verwendung der EC-Bereichsparameter in Schritt S56 bestimmen. Wenn der geschätzte Eingabepunkt P' in Schritt S54 in eine andere Punktdarstellung umgewandelt wurde, kann ein relevanter verschlüsselter Ausgabepunkt Q = k·P aus dem punktkonvertierten Eingabepunkt erzeugt werden.
  • Ein Prüfen der EC-Bereichsparameter und des verschlüsselten Ausgabepunkts Q = k·P bei der Ausgabe (nach der Skalarmultiplikation) kann in vergleichbarer Weise durchgeführt werden.
  • Ein Bereichsprüfschaltkreis kann den zu verschlüsselnden Eingabepunkt P, die EC-Bereichsparameter und den BCC von dem geschützten nicht-flüchtigen Speicher in Schritt S57 empfangen und kann ein erstes Informationssignal T erzeugen, welches angibt, ob der empfangene geschützte nicht-flüchtige Speicher gleich dem Eingabepunkt P' ist, der in Schritt S58 aus den EC-Bereichsparametern und dem BCC erneut geschätzt wurde. Das erste Informationssignal T kann in Gleichung 31 definiert sein und kann durch eine XOR-Operation erzeugt werden. T = P ⊕ a ⊕ b ⊕ p|n ⊕ BCC (31)
  • Hierbei ist es wie in Schritt S54 möglich, dass der verschlüsselte Ausgabepunkt Q = k·P' durch den Punktdarstellung-Umwandlungsschaltkreis gemäß Gleichungen 8 bis 24 in Schritt S59 und S60 in eine andere Punktdarstellung umgewandelt wird.
  • Ein Ausgabeschaltkreis kann in den Schritten S61 und S62 prüfen, ob der verschlüsselte Ausgabepunkt Q = k·P' auf der durch die EC-Bereichsparameter definierten EC existiert. Der Ausgabeschaltkreis kann ein zweites Informationssignal ⨍ erzeugen, welches angibt, ob der verschlüsselte Ausgabepunkt Q = k·P' gemäß jeder der Funktionsdefinitionen, die in Tabelle 1 gezeigt sind, auf der EC existiert, wobei die Punktdarstellungen auf den oben angegebenen Gleichungen basieren können. [Tabelle 1]
    Figure 00310001
    x = x ⊕ T ⊕ ⨍ (x, y, z|1, a, b, p|n) (32) y = y ⊕ T ⊕ ⨍ (x, y, z|1, a, b, p|n) (33)
  • Der Ausgabeschaltkreis kann in Gleichungen 32 und 33 definierte XOR-Operationen durchführen, wobei das erste Informationssignal T, das zweite Informationssignal ⨍ und der verschlüsselte Ausgabepunkt Q(x, y) verwendet wird, und kann deren Ergebnisse ausgeben. Entsprechend den Verfahrensschritten S51 bis S64 können die Ergebnisse der Gleichungen 32 und 33 gleich dem Ausgabepunkt Q(x, y) sein, wenn keine Fehler auftreten und der verschlüsselte Ausgabepunkt Q(x, y) auf der EC existiert. Anderenfalls können die Ergebnisse der Gleichungen 32 und 33 in Schritt S65 in nicht vorhersagbare fehlerhafte Werte verändert werden.
  • Nach den Berechnungen der Gleichungen 32 und 33 können die Ergebnisse, soweit erforderlich, in Verfahrensschritten S63 und S64 in eine andere Punktdarstellung gemäß den Gleichungen 8 bis 24 umgewandelt werden.
  • Der nicht fehlerbehaftete verschlüsselte Ausgabepunkt Q = k·P' kann an eine Nachverarbeitungseinheit einer höheren Ebene in Schritt S65 ausgegeben werden.
  • Wie vorstehend beschrieben, kann ein Kryptographieverfahren und eine entsprechende Vorrichtung gemäß beispielhaften Ausgestaltungen der vorliegenden Erfindung in Weierstrass-Formen und Hesseschen Formen implementiert werden und kann eine effiziente DFA-Gegenmaßnahme auf der Grundlage von verschiedenen Punktdarstellungen in der ECC sein. Für die Punktdarstellungen können affine, gewöhnliche projektive, projektive Jacobi- und projektive Lopez-Dahab-Darstellungen verwendet werden.
  • Wie oben beschrieben, können ein kryptographisches Verfahren und eine entsprechende Vorrichtung gemäß beispielhaften Ausgestaltungen der vorliegenden Erfindung verhindern, dass vertrauliche Informationen aufgrund von Prüffehlern nach DFA-Angriffen in einem Basispunkt, Fehlern in Definitionsfeldern und Fehlern in EC-Parametern auftreten, bevor endgültige kryptographische Ergebnisse ausgegeben werden. Dementsprechend kann es für das kryptographische Verfahren und die entsprechende Vorrichtung vorteilhaft sein, in kryptographischen Systemen eingesetzt zu werden, die eine Angriffsfestigkeit bezüglich DFA, SCA, Zeitablaufanalyse, Leistungsanalyse und elektromagnetischer Analyse sowie eine schnelle Betriebsgeschwindigkeiten erfordern.
  • Die beispielhaften Ausgestaltungen der vorliegenden Erfindung können in Form eines Computerprogramms geschrieben und in Allzweck-Digitalrechnern implementiert werden, welche die Programme unter Verwendung eines computerlesbaren Aufzeichnungsmediums ausführen. Beispiele für das computerlesbare Aufzeichnungsmedium beinhalten magnetische Speichermedien (z. B. ROM, Floppy Disks, Festplatten, usw.), optische Aufzeichnungsmedien (z. B. CD-ROMs, DVDs, usw.) und Speicher medien in Form von Trägerwellen (z. B. Übertragung durch das Internet). Das computerlesbare Aufzeichnungsmedium kann auch über in einem Netz verbundene Computersysteme verteilt werden, sodass der computerlesbare Code in verteilter Weise gespeichert und ausgeführt wird.
  • Obwohl die vorliegende Erfindung speziell unter Bezugnahme auf exemplarische Ausgestaltungen derselben gezeigt und beschrieben wurde, versteht der Fachmann, dass vielfältige Veränderungen hinsichtlich der Form und der Details vorgenommen werden können, ohne den Bereich der vorliegenden Erfindung zu verlassen. Die vorstehend beschriebenen beispielhaften Ausgestaltungen sollten nur als beschreibend und nicht als beschränkend angesehen werden.

Claims (39)

  1. Kryptographisches Verfahren, beinhaltend: Bereitstellen von Bereichsparametern einer elliptischen Kurve (EC), eines binären Prüfcodes (BCC), eines Eingabepunkts und eines geheimen Schlüssels; Bestimmen, ob ein auf der Grundlage der Bereichsparameter einer elliptischen Kurve berechneter Wert gleich dem binären Prüfcode ist; Bestimmen, ob der Eingabepunkt auf einer elliptischen Kurve existiert, die durch die Bereichsparameter einer elliptischen Kurve definiert ist; Erzeugen eines verschlüsselten Ausgabepunkts, indem eine skalare Multiplikation an dem Eingabepunkt und dem geheimen Schlüssel unter Verwendung der Bereichsparameter einer elliptischen Kurve durchgeführt wird; Bestimmen, ob der verschlüsselte Ausgabepunkt auf der elliptischen Kurve liegt, die durch die Bereichsparameter einer elliptischen Kurve definiert ist; und Ausgeben des verschlüsselten Ausgabepunkts, wenn der auf Grundlage der Bereichsparameter einer elliptischen Kurve berechnete Wert gleich dem binären Prüfcode ist und wenn der Eingabepunkt und der verschlüsselte Ausgabepunkt auf der elliptischen Kurve existieren, und kein Ausgeben des verschlüsselten Ausgabepunkts, wenn der auf Grundlage der Bereichsparameter einer elliptischen Kurve berechnete Wert nicht gleich dem binären Prüfcode ist oder wenn der Eingabepunkt oder der verschlüsselte Ausgabepunkt nicht auf der elliptischen Kurve existieren.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass das Bestimmen, ob der auf Grundlage der Bereichsparameter einer ellipti schen Kurve berechnete Wert gleich dem binären Prüfcode ist, nach dem Erzeugen des verschlüsselten Ausgabepunkts durchgeführt wird.
  3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass das Bestimmen, ob der auf Grundlage der Bereichsparameter einer elliptischen Kurve berechnete Wert gleich dem binären Prüfcode ist, mittels einer Gleichung „a ⊕ b ⊕ p|n ⊕ BCC" unter Verwendung einer XOR-Operation durchgeführt wird, wobei a, b, p|n die Bereichsparameter einer elliptischen Kurve bezeichnet, wobei a, b, p im Falle eines unteilbaren finiten Feldes [GF(p)) angewendet werden und wobei a, b, n im Falle eines binären finiten Feldes [GF(2n)) angewendet werden.
  4. Verfahren nach einem der vorhergehenden Ansprüche, gekennzeichnet durch ein Umwandeln des Eingabepunkts in eine andere Punktdarstellung und ein Erzeugen des verschlüsselten Ausgabepunkts ausgehend von dem punktkonvertierten Eingabepunkt.
  5. Verfahren nach einem der vorhergehenden Ansprüche, gekennzeichnet durch ein Umwandeln des verschlüsselten Ausgabepunkts in eine andere Punktdarstellung.
  6. Verfahren nach einem der vorhergehenden Ansprüche, gekennzeichnet durch die Schritte: Bestimmen der Existenz des Eingabepunkts auf der elliptischen Kurve durch Berechnen von „x3 + ax + b" und "y2", um zu bestimmen, ob y2 = x3 + ax + b in affinen Weierstrass (WA)-Koordinaten in einem unteilbaren finiten Feld [GF(p)) erfüllt ist; und Durchführen einer XOR-Operation mit den berechneten Werten, wobei (x, y) der Eingabepunkt ist und wobei a und b die Bereichsparameter einer elliptischen Kurve sind.
  7. Verfahren nach einem der vorhergehenden Ansprüche, gekennzeichnet durch die Schritte: Bestimmen der Existenz des Eingabepunkts auf der elliptischen Kurve durch Berechnen von „X3 + aXZ2 + bZ3" und „Y2Z ", um zu bestimmen, ob Y2Z = X3 + aXZ2 + bZ3 in gewöhnlichen projektiven Weierstrass (WP)-Koordinaten in einem unteilbaren finiten Feld GF(p) erfüllt ist; und Durchführen einer XOR-Operation mit den berechneten Werten, wobei (X, Y, Z) der Eingabepunkt ist und wobei a und b die Bereichsparameter einer elliptischen Kurve sind.
  8. Verfahren nach einem der vorhergehenden Ansprüche, gekennzeichnet durch die Schritte: Bestimmen der Existenz des Eingabepunkts auf der elliptischen Kurve durch Berechnen von „X3 + aXZ4 + bZ6" und "Y2", um zu bestimmen, ob Y2Z = x3 + aXZ2 + bZ3 in projektiven Weierstrass-Jacobi (WJ)-Koordinaten in einem unteilbaren finiten Feld GF(p) erfüllt ist; und Durchführen einer XOR-Operation mit den berechneten Werten, wobei (X, Y, Z) der Eingabepunkt ist und wobei a und b die Bereichsparameter einer elliptischen Kurve sind.
  9. Verfahren nach einem der vorhergehenden Ansprüche, gekennzeichnet durch die Schritte: Bestimmen der Existenz des Eingabepunkts auf der elliptischen Kurve durch Berechnen von „X3Z + aXZ3 + bZ4" und "Y2 ", um zu bestimmen, ob Y2 = X3Z + aXZ3 + bZ4 in projektiven Weierstrass-Lopez-Dahab (WL)-Koordinaten in einem unteilbaren finiten Feld GF(p) erfüllt ist; und Durchführen einer XOR-Operation mit den berechneten Werten, wobei (X, Y, Z) der Eingabepunkt ist und wobei a und b die Bereichsparameter einer elliptischen Kurve sind.
  10. Verfahren nach einem der vorhergehenden Ansprüche, gekennzeichnet durch die Schritte: Bestimmen der Existenz des Eingabepunkts auf der elliptischen Kurve durch Berechnen von „x3 + ax2 + b" und „y2 + xy", um zu bestimmen, ob y2 + xy = x3 + ax2 + b in affinen Weierstrass (WA)-Koordinaten in einem binären finiten Feld [GF(2n)] erfüllt ist; und Durchführen einer XOR-Operation mit den berechneten Werten, wobei (x, y) der Eingabepunkt ist und wobei a und b die Bereichsparameter einer elliptischen Kurve sind.
  11. Verfahren nach einem der vorhergehenden Ansprüche, gekennzeichnet durch die Schritte: Bestimmen der Existenz des Eingabepunkts auf der elliptischen Kurve durch Berechnen von „X3Z + aX2Z + bZ3" und „Y2Z + XYZ", um zu bestimmen, ob Y2Z + XYZ = X3Z + aX2Z + bZ3 in gewöhnlichen projektiven Weierstrass (WP)-Koordinaten in einem binären finiten Feld [GF(2n)] erfüllt ist; und Durchführen einer XOR-Operation mit den berechneten Werten, wobei (X, Y, Z) der Eingabepunkt ist und wobei a und b die Bereichsparameter einer elliptischen Kurve sind.
  12. Verfahren nach einem der vorhergehenden Ansprüche, gekennzeichnet durch die Schritte: Bestimmen der Existenz des Eingabepunkts auf der elliptischen Kurve durch Berechnen von „X3 + aX2Z2 + bZ6" und „Y2 + XYZ", um zu bestimmen, ob Y2 + XYZ = X3 + aX2Z2 + bZ6 in projektiven Weierstrass-Jacobi (WJ)-Koordinaten in einem binären finiten Feld [GF(2n)] erfüllt ist; und Durchführen einer XOR-Operation mit den berechneten Werten, wobei (X, Y, Z) der Eingabepunkt ist und wobei a und b die Bereichsparameter einer elliptischen Kurve sind.
  13. Verfahren nach einem der vorhergehenden Ansprüche, gekennzeichnet durch die Schritte: Bestimmen der Existenz des Eingabepunkts auf der elliptischen Kurve durch Berechnen von „X3Z + aX2Z2 + bZ4" und „Y2 + XYZ", um zu bestimmen, ob Y2 + XYZ = X3Z + aX2Z2 + bZ4 in projektiven Weierstrass-Lopez-Dahab (WL)-Koordinaten in einem binären finiten Feld [GF(2n)] erfüllt ist; und Durchführen einer XOR-Operation mit den berechneten Werten, wobei (X, Y, Z) der Eingabepunkt ist und wobei a und b die Bereichsparameter einer elliptischen Kurve sind.
  14. Verfahren nach einem der vorhergehenden Ansprüche, gekennzeichnet durch die Schritte: Bestimmen der Existenz des Eingabepunkts auf der elliptischen Kurve durch Berechnen von „u3 + ν3 + 1" und „Duν", um zu überprüfen, ob u3 + ν3 + 1 = Duν in affinen Hesseschen (HA)-Koordinaten erfüllt ist; und Durchführen einer XOR-Operation mit den berechneten Werten, wobei u und ν Funktionen des Eingabepunkts (x, y) und von D sind und wobei D der Bereichsparameter einer elliptischen Kurve ist.
  15. Verfahren nach einem der vorhergehenden Ansprüche, gekennzeichnet durch die Schritte: Bestimmen der Existenz des Eingabepunkts auf der elliptischen Kurve durch Berechnen von „U3 + V3 + W3 und „DUVW ", um zu überprüfen, ob U3 + V3 + W3 = DUVW in gewöhnlichen projektiven Hesseschen (HP)-Koordinaten erfüllt ist; und Durchführen einer XOR-Operation mit den berechneten Werten, wobei U, V und W Funktionen des Eingabepunkts (x, y) und von D sind und wobei D der Bereichsparameter einer elliptischen Kurve ist.
  16. Kryptographisches Verfahren, gekennzeichnet durch die Schritte: Bereitstellen von Bereichsparametern einer elliptischen Kurve (EC), eines binären Prüfcodes (BCC), eines ersten Eingabepunkts und eines geheimen Schlüssels; Erzeugen eines zweiten Eingabepunkts unter Verwendung der Bereichsparameter einer elliptischen Kurve und des binären Prüfcodes; Erzeugen eines verschlüsselten Ausgabepunkts, indem eine skalare Multiplikation des zweiten Eingabepunkts und des geheimen Schlüssels unter Verwendung der Bereichsparameter einer elliptischen Kurve durchgeführt wird; Erzeugen eines ersten Informationssignals, um anzuzeigen, ob der erste Eingabepunkt gleich dem aus den Bereichsparametern einer elliptischen Kurve und dem binären Prüfcode erneut geschätzten zweiten Eingabepunkt ist; Erzeugen eines zweiten Informationssignals, um anzuzeigen, ob der verschlüsselte Ausgabepunkt auf einer elliptischen Kurve (EC) existiert, die durch die Bereichsparameter einer elliptischen Kurve definiert ist; und Durchführen einer XOR-Operation an dem ersten Informationssignal, dem zweiten Informationssignal und dem verschlüsselten Ausgabepunkt.
  17. Verfahren nach Anspruch 16, dadurch gekennzeichnet, dass der binäre Prüfcode durch BCC = P ⊕ a ⊕ b ⊕ p|n definiert ist, wobei P den ersten Eingabepunkt und a, b, p|n die Bereichsparameter einer elliptischen Kurve bezeichnen, wobei a, b, p im Falle eines unteilbaren finiten Feldes [GF(p)] und a, b, n im Falle eines binären finiten Feldes [GF(2n)] angewendet wird.
  18. Verfahren nach Anspruch 16 oder 17, gekennzeichnet durch die Schritte: Umwandeln des zweiten Eingabepunkts in eine andere Punktdarstellung und Erzeugen des verschlüsselten Ausgabepunkts aus einem punktkonvertierten zweiten Eingabepunkt.
  19. Verfahren nach einem der Ansprüche 16 bis 18, dadurch gekennzeichnet, dass der erste Eingabepunkt in eine andere Punktdarstellung umgewandelt wird.
  20. Verfahren nach einem der Ansprüche 16 bis 19, dadurch gekennzeichnet, dass das Ergebnis der XOR-Operation in eine andere Punktdarstellung umgewandelt wird.
  21. Kryptographievorrichtung, aufweisend: eine Skalarmultiplikationseinheit, die dazu ausgebildet ist, einen Eingabepunkt und einen geheimen Schlüssel zu empfangen und einen verschlüsselten Ausgabepunkt zu erzeugen, indem sie eine skalare Multiplikation unter Verwendung von Bereichsparametern einer elliptischen Kurve (EC) durchführt; einen Bereichsprüfer, der dazu ausgebildet ist zu prüfen, ob ein auf Grundlage der Bereichsparameter einer elliptischen Kurve berechneter Wert gleich einem binären Prüfcode (BCC) ist; und einen Punktprüfer, der dazu ausgebildet ist zu bestimmen, ob der Eingabepunkt und der verschlüsselte Ausgabepunkt auf einer elliptischen Kurve (EC) existieren, die durch die Bereichsparameter einer elliptischen Kurve definiert ist, wobei, wenn der auf Grundlage der Bereichsparameter einer elliptischen Kurve berechnete Wert gleich dem binären Prüfcode ist und wenn der Eingabepunkt und der verschlüsselte Ausgabepunkt auf der elliptischen Kurve existieren, der verschlüsselte Ausgabepunkt ausgegeben wird, und wobei dann, wenn der auf Grundlage der Bereichsparameter einer elliptischen Kurve berechnete Wert nicht gleich dem binären Prüfcode ist oder wenn der Eingabepunkt oder der verschlüsselte Ausgabepunkt nicht auf der elliptischen Kurve existieren, der verschlüsselte Ausgabepunkt nicht ausgegeben wird.
  22. Vorrichtung nach Anspruch 21, dadurch gekennzeichnet, dass der Bereichsprüfer dazu ausgebildet ist, vor und/oder nach dem Erzeugen des verschlüsselten Ausgabepunkts zu überprüfen, ob der auf Grundlage der Bereichsparameter einer elliptischen Kurve berechnete Wert gleich dem binären Prüfcode ist.
  23. Vorrichtung nach Anspruch 21 oder 22, dadurch gekennzeichnet, dass der Punktprüfer beinhaltet: einen ersten Punktprüfer, der zum Prüfen des Eingabepunkts ausgebildet ist; und einen zweiten Punktprüfer, der zum Prüfen des verschlüsselten Ausgabepunkts ausgebildet ist.
  24. Vorrichtung nach einem der Ansprüche 21 bis 23, gekennzeichnet durch einen nicht-flüchtigen Speicher, der zum Speichern und Bereitstellen der Bereichsparameter einer elliptischen Kurve, des binären Prüfcodes und des geheimen Schlüssels ausgebildet ist.
  25. Vorrichtung nach einem der Ansprüche 21 bis 24, gekennzeichnet durch einen ersten Punktdarstellungsumwandler, der zum Umwandeln des Eingabepunkts in eine andere Punktdarstellung ausgebildet ist, wobei die Skalarmultiplikationseinheit den verschlüsselten Ausgabepunkt aus dem punktkonvertierten Eingabepunkt erzeugt.
  26. Vorrichtung nach Anspruch 25, dadurch gekennzeichnet, dass der erste Punktdarstellungsumwandler dazu ausgebildet ist, den von der Skalarmultiplikationseinheit erzeugten verschlüsselten Ausgabepunkt in eine andere Punktdarstellung umzuwandeln.
  27. Vorrichtung nach Anspruch 25 oder 26, gekennzeichnet durch einen zweiten Punktdarstellungsumwandler, der zum Umwandeln des von der Skalarmultiplikationseinheit erzeugten verschlüsselten Ausgabepunkts in eine andere Punktdarstellung ausgebildet ist.
  28. Vorrichtung nach Anspruch 26 oder 27, dadurch gekennzeichnet, dass der Punktprüfer beinhaltet: einen ersten Punktprüfer, der zum Prüfen des Eingabepunkts ausgebildet ist; und einen zweiten Punktprüfer, der zum Prüfen des verschlüsselten Ausgabepunkts ausgebildet ist.
  29. Vorrichtung nach Anspruch 28, dadurch gekennzeichnet, dass der erste Punktdarstellungsumwandler dazu ausgebildet ist, den verschlüsselten Ausgabepunkt in eine andere Punktdarstellung umzuwandeln, nachdem die Prüfung des zweiten Punktprüfers durchgeführt wurde.
  30. Vorrichtung nach Anspruch 23, gekennzeichnet durch einen dritten Punktdarstellungsumwandler, der dazu ausgebildet ist, den verschlüsselten Ausgabepunkt in eine andere Punktdarstellung umzuwandeln, nachdem die Prüfung des zweiten Punktprüfers durchgeführt wurde.
  31. Vorrichtung nach einem der Ansprüche 21 bis 30, dadurch gekennzeichnet, dass der Bereichsprüfer eine Beziehung a ⊕ b ⊕ p|n ⊕ BCC unter Verwendung einer XOR-Operation prüft, wobei a, b, p|n die Bereichsparameter einer elliptischen Kurve bezeichnet, wobei a, b, p im Falle eines unteilbaren finiten Feldes [GF(p)] angewendet werden und wobei a, b, n im Falle eines binären finiten Feldes [GF(2n)] angewendet werden.
  32. Vorrichtung nach Anspruch 31, dadurch gekennzeichnet, dass der Punktprüfer eine Mehrzahl von Einheits-Punktprüfelementen aufweist und dass eine Anzahl der Mehrzahl von Einheits-Punktprüfelementen ungerade ist.
  33. Vorrichtung nach Anspruch 32, gekennzeichnet durch eine Mehrzahl von Punktdarstellung-Umwandlungselementen, deren Anzahl der Anzahl von Einheits-Punktprüfelementen entspricht und die dazu ausgebildet sind, den Eingabepunkt in andere Punktdarstellungen umzuwandeln und die umgewandelten Punktdarstellungen an die Mehrzahl von Einheits-Punktprüfelementen auszugeben.
  34. Kryptographievorrichtung, aufweisend: einen Eingabepunkt-Berechnungsschaltkreis, der zum Erzeugen eines zweiten Eingabepunkts unter Verwendung von Bereichsparametern einer elliptischen Kurve (EC) und eines binären Prüfcodes (BCC) ausgebildet ist, der eine Funktion eines ersten Eingabepunkts ist; einen Skalarmultiplikation-Berechnungsschaltkreis, der zum Empfangen des zweiten Eingabepunkts und eines geheimen Schlüssels und zum Erzeugen eines verschlüsselten Ausgabepunkts durch Ausführen einer skalaren Multiplikation unter Verwendung der Bereichsparameter einer elliptischen Kurve ausgebildet ist; einen Bereichsprüfschaltkreis, der zum Erzeugen eines ersten Informationssignals ausgebildet ist, das anzeigt, ob der erste Eingabepunkt gleich dem aus den Bereichsparametern einer elliptischen Kurve und dem binären Prüfcode geschätzten zweiten Eingabepunkt ist; und einen Ausgangsschaltkreis, der ein zweites Informationssignal erzeugt, das anzeigt, ob der verschlüsselte Ausgabepunkt auf einer durch die Bereichsparameter einer elliptischen Kurve definierten elliptischen Kurve (EC) existiert, und der eine XOR-Operation an dem ersten Informationssignal, dem zweiten Informationssignal und dem verschlüsselten Ausgabepunkt durchführt.
  35. Vorrichtung nach Anspruch 34, dadurch gekennzeichnet, dass der binäre Prüfcode durch BCC = P ⊕ a ⊕ b ⊕ p|n definiert ist, wobei P den ersten Eingabepunkt und a, b, p|n die Bereichsparameter einer elliptischen Kurve bezeichnen, wobei a, b, p im Falle eines unteilbaren finiten Feldes [GF(p)] und a, b, n im Falle eines binären finiten Feldes [GF(2n)] angewendet wird.
  36. Vorrichtung nach Anspruch 34 oder 35, gekennzeichnet durch einen nicht-flüchtigen Speicher, der zum Speichern und Bereitstellen des ers ten Eingabepunkts, der Bereichsparameter einer elliptischen Kurve, des binären Prüfcodes und des geheimen Schlüssels ausgebildet ist.
  37. Vorrichtung nach einem der Ansprüche 34 bis 36, gekennzeichnet durch einen Punktdarstellung-Umwandlungsschaltkreis, der zum Umwandeln des zweiten Eingabepunkts in eine andere Punktdarstellung ausgebildet ist, wobei der Skalarmultiplikation-Berechnungsschaltkreis den verschlüsselten Ausgabepunkt aus dem punktkonvertierten zweiten Eingabepunkt erzeugt.
  38. Vorrichtung nach Anspruch 37, dadurch gekennzeichnet, dass der Punktdarstellung-Umwandlungsschaltkreis zum Umwandeln des ersten Eingabepunkts in eine andere Punktdarstellung ausgebildet ist.
  39. Vorrichtung nach Anspruch 37 oder 38, dadurch gekennzeichnet, dass der Punktdarstellung-Umwandlungsschaltkreis zum Umwandeln des Ergebnisses der XOR-Berechnung in eine andere Punktdarstellung ausgebildet ist.
DE102006011208A 2005-03-05 2006-03-02 Verfahren und Vorrichtung für die Kryptographie Withdrawn DE102006011208A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020050018429A KR100817048B1 (ko) 2005-03-05 2005-03-05 여러 가지 포인트 표현을 기반으로 한 ecc에서 dfa대책을 위한 암호화 방법 및 장치
KR10-2005-0018429 2005-03-05

Publications (1)

Publication Number Publication Date
DE102006011208A1 true DE102006011208A1 (de) 2006-11-09

Family

ID=37111613

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102006011208A Withdrawn DE102006011208A1 (de) 2005-03-05 2006-03-02 Verfahren und Vorrichtung für die Kryptographie

Country Status (3)

Country Link
US (1) US20060274894A1 (de)
KR (1) KR100817048B1 (de)
DE (1) DE102006011208A1 (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2828779B1 (fr) * 2001-08-17 2004-01-16 Gemplus Card Int Procede de calcul universel applique a des points d'une courbe elliptique
JP5300374B2 (ja) * 2008-08-25 2013-09-25 株式会社東芝 表現変換装置、演算装置、表現変換方法及びプログラム
US20100150340A1 (en) * 2008-12-02 2010-06-17 Electronics And Telecommunications Research Institute Device and method for elliptic curve cryptosystem
JP5323196B2 (ja) * 2009-09-18 2013-10-23 株式会社東芝 演算装置、方法およびプログラム
FR3005186B1 (fr) * 2013-04-30 2017-03-10 Oberthur Technologies Projet de validation d'un parametre cryptographique, et dispositif correspondant

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE128297T1 (de) * 1991-03-14 1995-10-15 Omnisec Ag Verschlüsselungssystem mit öffentlichem schlüssel unter verwendung elliptischer kurven über ringe.
WO1996004602A1 (en) * 1994-07-29 1996-02-15 Certicom Corp. Elliptic curve encryption systems
GB9713138D0 (en) 1997-06-20 1997-08-27 Certicom Corp Accelerated finite field operations on an elliptic curve
US6108419A (en) * 1998-01-27 2000-08-22 Motorola, Inc. Differential fault analysis hardening apparatus and evaluation method
JP3796993B2 (ja) 1998-12-22 2006-07-12 株式会社日立製作所 楕円曲線暗号実行方法及び装置並びに記録媒体
US6611597B1 (en) * 1999-01-25 2003-08-26 Matsushita Electric Industrial Co., Ltd. Method and device for constructing elliptic curves
KR20010035704A (ko) * 1999-10-01 2001-05-07 구자홍 타원곡선 포인트의 고속 스칼라 승법을 위한 프로세스 및 방법
KR20030078350A (ko) * 2002-03-29 2003-10-08 박근수 타원 곡선 암호에서 단위원의 n-제곱근 함수를 이용한프로베니우스 전개 방법
FR2838262B1 (fr) 2002-04-08 2004-07-30 Oberthur Card Syst Sa Procede de securisation d'une electronique a acces crypte
US7257709B2 (en) * 2002-09-03 2007-08-14 Certicom Corp. Method and apparatus for performing validation of elliptic curve public keys
US7388957B2 (en) * 2003-01-28 2008-06-17 Matsushita Electric Industrial Co., Ltd. Elliptic curve exponentiation apparatus that can counter differential fault attack, and information security apparatus

Also Published As

Publication number Publication date
KR100817048B1 (ko) 2008-03-26
KR20060097309A (ko) 2006-09-14
US20060274894A1 (en) 2006-12-07

Similar Documents

Publication Publication Date Title
US5712913A (en) Limited-traceability systems
DE102006022960B9 (de) Verfahren zum Verschlüsseln von Eingabedaten, kryptographisches System und Computerprogrammprodukt
EP0218305B1 (de) Blindsignatursysteme mit unvorhergesehenen Signaturen
Yuan et al. Proofs of retrievability with public verifiability and constant communication cost in cloud
Huang et al. Efficient secure two-party computation using symmetric cut-and-choose
EP0384475B1 (de) Verfahren zur Identifikation von Teilnehmern sowie zur Generierung und Verifikation von elektronischen Unterschriften in einem Datenaustauschsystem
DE102012206341B4 (de) Gemeinsame Verschlüsselung von Daten
Fazio et al. Homomorphic secret sharing from paillier encryption
DE102005037598A1 (de) Verfahren und System zur Sicherung von Daten
CH711133A2 (de) Protokoll zur Signaturerzeugung.
DE102006011208A1 (de) Verfahren und Vorrichtung für die Kryptographie
DE69924912T2 (de) Verschlüsselungsverfahren und Vorrichtung unter Verwendung einer elliptischen Kurve
DE69333257T2 (de) Anlage für Signalschaltung und -verarbeitung
DE102006013975A1 (de) Kryptographievorrichtung und -verfahren mit Skalarmultiplikation
DE602004010942T2 (de) Potenzierung auf einer elliptischen Kurve die einen differentiellen Fehlerangriff abwehren kann
CH708240A2 (de) Signaturprotokoll und Gerät zu dessen Umsetzung.
DE60037619T2 (de) Vorrichtung zum Lösen eines Gleichungssystems in einem endlichen Körper und Vorrichtung zum Invertieren von Elementen eines Erweiterungskörpers
US6320966B1 (en) Cryptographic methods for demonstrating satisfiable formulas from propositional logic
DE10161137A1 (de) Verfahren und System zum kryptographischen Bearbeiten von Daten
He et al. Cryptanalysis and improvement of a block cipher based on multiple chaotic systems
US7551737B2 (en) Cryptographic keys using random numbers instead of random primes
Deng et al. Cuproof: a novel range proof with constant size
Ahmed et al. Image Encryption Using Development of Chaotic Logistic Map Based on Feedback Stream Cipher
Naor Evaluation may be easier than generation
Zhang et al. The Relationship Between Idealized Models Under Computationally Bounded Adversaries

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8139 Disposal/non-payment of the annual fee