DE69930334T2 - IC-Karte ausgerüstet mit einer Verarbeitungsanlage für Elliptische-Kurven-Verschlüsselung - Google Patents

IC-Karte ausgerüstet mit einer Verarbeitungsanlage für Elliptische-Kurven-Verschlüsselung Download PDF

Info

Publication number
DE69930334T2
DE69930334T2 DE69930334T DE69930334T DE69930334T2 DE 69930334 T2 DE69930334 T2 DE 69930334T2 DE 69930334 T DE69930334 T DE 69930334T DE 69930334 T DE69930334 T DE 69930334T DE 69930334 T2 DE69930334 T2 DE 69930334T2
Authority
DE
Germany
Prior art keywords
mod
arithmetic
residual class
elliptic curve
multiplication
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE69930334T
Other languages
English (en)
Other versions
DE69930334D1 (de
Inventor
Seiji Miyazaki
Kazuo Takaragi
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of DE69930334D1 publication Critical patent/DE69930334D1/de
Application granted granted Critical
Publication of DE69930334T2 publication Critical patent/DE69930334T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/724Finite field arithmetic
    • G06F7/725Finite field arithmetic over elliptic curves
    • 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/728Methods 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 using Montgomery reduction

Landscapes

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

Description

  • HINTERGRUND DER ERFINDUNG
  • Die vorliegende Erfindung bezieht sich generell auf eine zur Verarbeitung von Verschlüsselungsdaten oder -Informationen geeignete IC-Karte (integrated circuit card). Genauer betrifft die Erfindung ein Verfahren, das in der Lage ist, bei hoher Geschwindigkeit Verschlüsselungsverarbeitung mittels elliptischer Kurven in einer Verschlüsselungsverarbeitung auszuführen, in der zur Ausführung eines Hochgeschwindigkeitsalgorithmus für eine Restklassenmultiplikationsarithmetik (Multiplikation in der Menge der ganzen Zahlen) ausgelegte Hardware benutzt wird, sowie ein Gerät wie eine IC-Karte, in der das oben erwähnte Verfahren benutzt wird.
  • Um zu einem besseren Verständnis der vorliegenden Erfindung zu gelangen, wird zunächst deren technischer Hintergrund recht detailliert beschrieben. Als Verschlüsselungsschema für ein Kryptosystem mit öffentlichen Schlüsseln ist das RSA-Verschlüsselungsschema bekannt, das von Rivest, Shamir und Adleman 1978 erfunden wurde. Das der RSA-Verschlüsselung zugrunde liegende fundamentale Prinzip wird im Folgenden betrachtet.
  • Fundamentales Prinzip der RSA-Verschlüsselung
  • Wenn man jeweils einen geheimen Schlüssel als (d, n), einen öffentlichen Schlüssel als (e, n), einen Klartext als M und einen Code als c darstellt, dann werden die Verschlüsselung und die Entschlüsselung jeweils durch die unten angeführten Berechnungsformeln dargestellt. Verschlüsselung: C ≡ Me (mod n), und Entschlüsselung: M ≡ Cd (mod n).
  • In den obigen Ausdrücken ist n durch p·q gegeben, wobei p und q jeweils große Primzahlen darstellen, die die Bedingungen λ(n) = LCM {(p – 1), (q – 1)} (wobei LCM das kleinste gemeinsame Vielfache darstellt), GCD {e, λ(n)} = 1 (wobei GCD den größten gemeinsamen Teiler darstellt) und d = e–1 mod λ(n) erfüllen.
  • Die Sicherheit der RSA-Verschlüsselung wird durch die Tatsache gewährleistet, dass es sehr schwierig ist, n in Primfaktoren zu faktorisieren. In Verbindung damit wird es empfohlen, große ganze Zahlen der Größenordnung von 1024 Bits als die Parameter wie e, d, n, M und so weiter einzusetzen. In diesem Fall muss die modulare Multiplikation in der Menge der ganzen Zahlen (im Folgenden auch als Restklassenmultiplikationsarithmetik bezeichnet) im Durchschnitt 1534,5-mal für eine einzelne Verarbeitung gemäß der Verschlüsselungsformel C ≡ Me (mod n) durchgeführt werden, wenn ein Binäroperationsverfahren wie im Detail beschrieben in D. E. Knuth: "SEMINUMERICRL ALGORITHMS ARITHMETIC", The Art of Computer Programming, Band 2, Addison-Wesley, 1969, angewendet wird.
  • Außerdem, als ein weiteres zu den Kryptosystemen mit öffentlichen Schlüsseln gehöriges Verschlüsselungsschema, sollte die von Koblitz und Miller unabhängig voneinander 1985 vorgeschlagene Verschlüsselungsverarbeitung mittels elliptischer Kurven erwähnt werden. Das dieser Verschlüsselung mittels elliptischer Kurven zugrunde liegende fundamentale Prinzip wird im Folgenden betrachtet.
  • Prinzip der Verschlüsselung mittels elliptischer Kurven
  • Bezeichnet man die Ordnung eines endlichen Körpers mit einer Primzahl p, während man mit a und b die Parameter, die die elliptische Kurve bestimmen, bezeichnet, so wird eine Menge, die eine Menge von Punkten, die die durch den unten angeführten Ausdruck gegebenen Bedingungen erfüllen können, enthält und die mit einem virtuellen Punkt im Unendlichen versehen ist, als die elliptische Kurve Ep verstanden. Zur Erleichterung der Darstellung wird angenommen, dass die betroffene elliptische Kurve Ep auf dem affinen Koordinatensystem dargestellt werden kann. Ep: y2 ≡ x3 + ax + b (mod p)
  • Addition von zwei Punkten P1 und P2 auf der elliptischen Kurve, d. h. P3 = P1 + P2 (wobei Pi = (xi, yi)), kann wie folgt definiert werden:
  • Der Fall P1 ≠ P2
  • In diesem Fall wird die verwendete Arithmetik im Folgenden als elliptische Additionsarithmetik bezeichnet.
  • Die elliptische Additionsarithmetik enthält nullmal durchgeführte Addition, sechsmal durchgeführte Subtraktion, zweimal durchgeführte Multiplikation und einmal durchgeführte Division, in folgender Weise: λ = (y2 – y1)/(x2 – x1), x3 = λ2 – x1 – x2,und y3 = λ(x1 – x3) – y1
  • Der Fall P1 = P2
  • In diesem Fall wird die Arithmetik im Folgenden als die elliptische Mal-Zwei-Multiplikationsarithmetik bezeichnet.
  • Die elliptische Mal-Zwei-Multiplikationsarithmetik enthält einmal durchgeführte Addition, dreimal durchgeführte Subtraktion, dreimal durchgeführte Multiplikation und einmal durchgeführte Division, in folgender Weise: λ = (3 × 12 + a)/2y1, x3 = λ2 – 2 × 1und y3 = λ(x1 – x3) – y1
  • An dieser Stelle sollte erwähnt werden, dass alle oben erwähnten arithmetischen Operationen in einem Restklassensystem modulo p durchgeführt werden.
  • Die Sicherheit der oben beschriebenen Verschlüsselung mittels elliptischer Kurven basiert auf der Tatsache, dass, wenn ein durch Multiplikation eines Punktes A auf der elliptischen Kurve mit x (d. h. der durch x-maliges Addieren von "A" erhaltene Punkt) durch B(= x·A) dargestellt wird, dass es äußerst schwierig ist, den Wert von x basierend auf den Werten der Punkte A und B, wenn sie bekannt sind, zu finden. Dieses Merkmal ist bekannt als das diskrete Logarithmusproblem elliptischer Kurven. Um die Sicherheit zu gewährleisten, die der der vorher beschriebenen 1024-Bit-RSA-Verschlüsselung vergleichbar ist, wird empfohlen, dass jeder der Parameter p, a, x i, y i, usw. eine ganze Zahl der Größenordnung von 160 Bits ist.
  • Die arithmetische Operation zur Bestimmung des Punktes (k·P), die der Multiplikation eines Punktes P mit k entspricht und eine der fundamentalen arithmetischen Operationen für die Verschlüsselung mittels elliptischer Kurven ist, kann durch Berechnung gemäß der oben erwähnten Addition auf der elliptischen Kurve (elliptische Kurven-Addition) realisiert werden. In Verbindung damit wird bemerkt, dass die modulare Division in der Menge der ganzen Zahlen (im Folgenden auch als Restklassendivisionsarithmetik bezeichnet) durchgeführt werden muss, um λ zu bestimmen. Die Restklassendivisionsarithmetik (d. h. die modulare Division in der Menge der ganzen Zahlen) kann im Allgemeinen erledigt werden, indem ein Algorithmus wie ein erweiterter euklidischer Algorithmus oder ein ähnlicher verwendet werden, die jedoch eine große Menge an Rechenzeit erfordern. Unter diesen Umständen wird weitgehend das Verfahren oder Schema zum Umsetzen der Arithmetik auf der elliptischen Kurve verwendet, bei dem ein Punkt in einem zweidimensionalen affinen Koordinatensystem in einen Punkt in einem dreidimensionalen Koordinatensystem transformiert wird, ohne auf die Restklassendivisionsarithmetikverarbeitung zurückzugreifen. Für weitere Einzelheiten über dieses Schema sei auf D. V. Chudnovsky und G. V. Chudnovsky: "SEQUENCES OF NUMBERS GENERATED BY ADDITION IN FORMAL GROUPS AND NEW PRIMALITY AND FACTORIZATION TESTS", Advances in Applied Mathematics, Band 7, S. 385-434, 1986, verwiesen. Mittels eines Beispiels, bei dem die Additionsarithmetik auf der elliptischen Kurve Ep in dem zweidimensionalen affinen Koordinatensystem in Additionsarithmetik in dem dreidimensionalen projektiven Koordinatensystem transformiert wird, sodass die durch x ≡ X/Z2 (mod p) und y ≡ Y/Z3 (mod p) gegebenen Bedingungen erfüllt werden können, ist die Additionsarithmetik wie folgt definiert:
    Die elliptische Additionsarithmetik enthält zweimal durchgeführte Addition, fünfmal durchgeführte Subtraktion, sechzehnmal durchgeführte Multiplikation und nullmal durchgeführte Division, in folgender Weise: X3 = R2 – TW2, 2Y3 = VR – MW3 und Z3 = Z1Z2W,wobei W = X1Z2 2 – X2Z1 2, R = Y1Z2 3 – Y2Z1 3, T = X1Z2 2 + X2Z1 2, M = Y1Z2 3 – Y2Z1 3 und V = TW2 – 2X3.
  • Die elliptische Mal-Zwei-Multiplikationsarithmetik enthält einmal durchgeführte Addition, dreimal durchgeführte Subtraktion, zehnmal durchgeführte Multiplikation und nullmal durchgeführte Division, in folgender Weise: X3 = M2 – 2S, Y3 = M(S – X3) – Tund Z3 = 2Y1Z1, wobei M = 3X1 2 + aZ1 4, S = 4X1Y1 2 und T = 8Y1 4.
  • An dieser Stelle sollte erwähnt werden, dass alle oben erwähnten arithmetischen Operationen in einem Restklassensystem modulo p durchgeführt werden.
  • Als ein weiteres Beispiel der Koordinatentransformationsverfahren kann eine Koordinatentransformation in ein dreidimensionales homogenes Koordinatensystem erwähnt werden, sodass die durch die folgenden Ausdrücke gegebenen Bedingungen erfüllt werden können. x ≡ X/Z (mod p)und y ≡ Y/Z (mod p)
  • An dieser Stelle sollte jedoch angemerkt werden, dass die Restklassendivisionsarithmetik (d. h. Division in der Menge der ganzen Zahlen) bei der Rücktransformation vom dreidimensionalen Koordinatensystem ins zweidimensionale Koordinatensystem einmal ausgeführt werden muss.
  • Unter der Annahme, dass beispielsweise eine 160-Bit-Verschlüsselung in eine in dem dreidimensionalen projektiven oder abbildenden Koordinatensystem transformiert wird und dass die k·P-Arithmetik mittels des hier zuvor erwähnten binären Operationsschemas realisiert wird, wird die Restklassenmultiplikationsarithmetik im Durchschnitt 2862-mal durchgeführt werden müssen.
  • Wie nun durch die vorangegangene Beschreibung ersichtlich geworden ist, wird im Verschlüsselungsschema mit öffentlichen Schlüsseln wie dem RSA-Verschlüsselungsverfahren und dem Verschlüsselungsverfahren mittels elliptischer Kurven eine große Menge von Restklassenmultiplikationsarithmetikverarbeitungen (d. h. modulare Multiplikationen in der Menge der ganzen Zah len) als fundamentale Arithmetikoperation benötigt. Unter diesen Umständen wurden Verfahren oder Schemata zur Beschleunigung der Restklassenmultiplikationsarithmetik durch Verwendung eines Hochgeschwindigkeitsalgorithmus für die Restklassenmultiplikationsarithmetik entwickelt und vorgeschlagen, um dadurch die Verschlüsselungsverarbeitung als Ganzes zu beschleunigen.
  • Im RSA-Verschlüsselungsschema insbesondere sind die arithmetischen Operationen dafür zu einem großen Teil Restklassenmultiplikationsarithmetik. Deshalb wurde dort zur Ausführung des Hochgeschwindigkeitsalgorithmus für die Restklassenmultiplikationsarithmetik entworfene Hardware umgesetzt. Des Weiteren wurde die zur Ausführung der RSA-Verschlüsselungsverarbeitung bei einer hohen Geschwindigkeit fähige IC-Karte umgesetzt, indem solche Hardware eingesetzt wurde, dass die Auflagen der IC-Karten-Standards ISO7816 erfüllt werden.
  • Überblicksartikel über im Handel erhältliche Chipkarten mit kryptografischen Funktionen gibt es in B. Struif: "The Use Of Chipcards For Electronic Signatures And Encryption", Annual Conference on Computer Technology, Systems and Applications (Compeuro) US, Washington, IEEE Comp, Soc. Press, vol. conf. 3, 8. Mai 1989, S. 4-155 bis 158; E. Hess: "Public-Key Cryptosystems Based On Elliptic Curves – An Evolutionary Approach" in Cryptography and Coding, Proceedings of the Sixth IMA International Conference Cirencester, UK, Dezember 1997, veröffentlicht vom Springer-Verlag, Berlin, Deutschland; und D. Naccache et al.: "Cryptographic Smart Cards", veröffentlicht in IEEE Micro 16 (3): 14 bis 25, 1996. In Anbetracht der zuvor erwähnten Umstände benutzen fast alle diese Chipkarten RSA-Verschlüsselung. Lediglich die zwei zuletzt erwähnten Dokumente berichten auch über eine Implementierung einer Verschlüsselung mittels elliptischer Kurven auf einer Chipkarte. Es werden jedoch keine Details dieser Implementierung angegeben. Das zuletzt erwähnte Dokument erklärt auch verschiedene Algorith men zur Beschleunigung der Restklassenmultiplikation, einschließlich des auch in EP-A-0 801 345 beschriebenen Montgomery-Algorithmus. Eine weitere RSA-Implementierung unter Berücksichtigung von schnellen Modulo-Operationen wird in H. Sedlak et al.: "An RSA Cryptography Processor", Microprocessing and Microprogramming, Band 18, Nr. 1/05, Amsterdam 1986, S. 583 bis 590, beschrieben.
  • Versuche, den rechnerischen Overhead für Kryptografie mittels elliptischer Kurven durch Auswahl von gewissen Klassen elliptischer Kurven sowie von elliptischen Kurven, die über aus bestimmten Klassen von Zahlen gebildeten endlichen Körpern definiert sind, welche die Ausführung von Modulo-Arithmetik ausschließlich mittels Shifts und Additionen ermöglichen, wodurch der Bedarf für eine Division zum Zweck einer Modulo-Operation eliminiert wird, zu begrenzen, werden beschrieben in A. Miyaji: "Elliptic Curves Suitable For Cryptosystems" IEICE Transactions on Fundamentals of Electronics, Communications and Computer Sciences, Institute of Electronics Information and Communication Engineering, Tokio, Japan, Band E77-A, Nr. 1, 1994, S. 98 bis 104, sowie in US 5,463,690 . Das zuletzt erwähnte Dokument beschreibt auch eine Implementierung einer inversionslosen Montgomery-Parametrisierung einer elliptischen Kurve. B. Schneier: "Applied Cryptography, Second Edition", New York 1996, schlägt die Benutzung von Fermat's Satz αβ–1 = 1(mod β), wobei die positive ganze Zahl α relativ prim zu einer Primzahl β ist, um die multiplikative inverse Arithmetik in Multiplikationsarithmetik in kryptografischen Algorithmen aufzulösen.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Im Falle des Verschlüsselungsschemas mittels elliptischer Kurven wird Vier-Regeln-Restklassenarithmetik als fundamentale arithmetische Operationen benötigt. Innerhalb der Vier-Regeln-Restklassenarithmetik benötigt die Restklassendivisionsarith metik eine große Menge an Verarbeitungszeit, was ein ernstes Problem für den Ansatz zur Beschleunigung der Verschlüsselungsverarbeitung mittels elliptischer Kurven darstellt, Ein Verfahren oder Schema zur Verringerung der Anzahl von Restklassendivisionsarithmetikvorgängen muss in eingeklammerter Weise in der Verschlüsselungsverarbeitung mittels elliptischer Kurven ausgeführt werden, und ein Schema zur Beschleunigung der Restklassendivisionsarithmetik wurde bereits vorgeschlagen in J. Niiho: "APPLICATION OF MONTGOMERY ARITHMETICS TO ELLIPTIC CURVE ENCRYPTION", SCIS, 1997 (The 1997 Symposium on Cryptography and Information Security). Es sei jedoch bemerkt, dass der Versuch der Anwendung der in der obigen Literatur beschriebenen Verfahren auf Geräte wie die gemäß der Standards ISO7816 vorgegebenen IC-Karte in Anbetracht des momentanen Zustands der Halbleitertechnologie unvermeidlicherweise beschränkt sein wird. Deshalb wird viel Zeit für die arithmetische Operation der multiplikativen Inversen in der Restklassendivisionsarithmetik gebraucht werden, wodurch es schwierig wird, die Verarbeitungsgeschwindigkeit zu erhöhen.
  • Es ist daher eine Aufgabe der Erfindung, eine IC-Karte für die Verschlüsselungsverarbeitung mittels elliptischer Kurven sowie ein Verfahren für die Verschlüsselungsverarbeitung mittels elliptischer Kurven auf einer IC-Karte mit zur Erreichung der Verschlüsselungsverarbeitung bei hoher Geschwindigkeit ausgelegter Hardware zur Verfügung zu stellen.
  • Diese Aufgabe wird durch eine IC-Karte wie in Patentanspruch 1 vorgegeben und ein Verfahren wie in Patentanspruch 6 vorgegeben gelöst. Die abhängigen Patentansprüche betreffen bevorzugte Ausführungsbeispiele der Erfindung. Patentanspruch 7 betrifft ein auf einem Speichermedium gespeichertes Programm zur Ausführung des Verfahrens nach Patentanspruch 6.
  • Ein Ausführungsbeispiel der vorliegenden Erfindung stellt ein Verfahren zur Verfügung, das in der Lage ist, bei einer hohen Geschwindigkeit die Digitalsignaturverarbeitung auf einer IC-Karte auszuführen, in der zur Ausführung eines Hochgeschwindigkeitsalgorithmus für die Restklassenmultiplikationsarithmetik (d. h. modulare Multiplikation in der Menge der ganzen Zahlen) entworfene Hardware benutzt wird.
  • Ein weiteres Ausführungsbeispiel der Erfindung stellt eine IC-Karte zur Verfügung, in der das soeben erwähnte Verfahren benutzt wird.
  • Die Ausführungsbeispiele der vorliegenden Erfindung sind dazu fähig, die Arithmetik der multiplikativen Inversen in der Restklassendivisionsarithmetik (d. h. modulare Division in der Menge der ganzen Zahlen) in der Verschlüsselungsverarbeitung mittels elliptischer Kurven zu beschleunigen.
  • Gemäß einem Aspekt der vorliegenden Erfindung enthält eine IC-Karte Hardware zur Ausführung eines Hochgeschwindigkeitsalgorithmus für die Restklassenmultiplikationsarithmetik (im Folgenden wird die Hardware als Restklassenmultiplikator oder Mehrlängen-Arithmetikeinrichtung bezeichnet), und es wird ein Verschlüsselungsverarbeitungsverfahren mittels elliptischer Kurven zur Verfügung gestellt, bei dem in der Verschlüsselungsverarbeitung mittels elliptischer Kurven auftretende arithmetische Operationen weitgehend durch Restklassenmultiplikationsarithmetik (d. h. modulare Multiplikation in der Menge der ganzen Zahlen) umgesetzt werden, sodass der Restklassenmultiplikator effektiv ausgenutzt werden kann.
  • Genauer sind die Restklassenarithmetik, die auf die Erzeugung der für die Verschlüsselungsverarbeitung mittels elliptischer Kurven erforderlichen Zufallszahlen folgend durchgeführt wird, und die Restklassenarithmetik, die bei der Verarbeitung der Signaturerzeugung auftritt, so strukturiert, dass sie mittels des Restklassenmultiplikators ausgeführt werden können. Außerdem wird die Restklassendivisionsarithmetik (d. h. modulare Division in der Menge der ganzen Zahlen), die bei der Additi onsarithmetik der elliptischen Kurve auftritt, um die effektive Ausnutzung des Restklassenmultiplikators für die Arithmetik der elliptischen Kurve zu ermöglichen, in die Restklassenmultiplikationsarithmetik übertragen, indem Punkte auf einer elliptischen Kurve im zweidimensionalen affinen Koordinatensystem in solche in einem dreidimensionalen Koordinatensystem transformiert werden, wobei die Restklassenmultiplikationsarithmetik durch Benutzung des Restklassenmultiplikators ausgeführt wird.
  • Um die Arithmetik der multiplikativen Inversen zu beschleunigen, wird nicht nur die Arithmetik der multiplikativen Inversen, die bei der Koordinatensystemtransformation vom dreidimensionalen Koordinatensystem ins zweidimensionale affine Koordinatensystem erforderlich ist, sondern auch die beim Erzeugen der Signaturdaten durch Verwendung der Restklassenmultiplikationsarithmetik (d. h. modulare Multiplikation in der Menge der ganzen Zahlen) umgesetzt. Die Arithmetik der multiplikativen Inversen für das Restklassensystem wird gewöhnlicherweise durch Verwendung eines Algorithmus wie des erweiterten euklidischen Algorithmus umgesetzt. Wenn jedoch der Modulus zur Restklasse oder zum Rest eine Primzahl ist, kann die Arithmetik der multiplikativen Inversen umgesetzt werden, indem lediglich die Restklassenmultiplikationsarithmetik benutzt wird, ohne dass auf einen solchen Algorithmus wie den erweiterten euklidischen Algorithmus zurückgegriffen werden muss. Dies wird unten beleuchtet.
  • Nach dem Satz von Fermat kann die durch den unten angeführten Ausdruck gegebene Aussage gültigerweise auf eine positive ganze Zahl α angewendet werden, die relativ prim zu einer Primzahl β ist: αβ–1 ≡ 1 (mod β).
  • Nach diesem Satz kann die Arithmetik der multiplikativen Inversen "α–1 mod β" wie folgt ausgedrückt werden: α–1 = αβ–2 (mod β).
  • Die Werte der Ordnung p eines endlichen Körpers und der Ordnung n eines Basispunktes werden jeweils durch Primzahlen hohen Werts dargestellt, sodass die oben erwähnte Bedingung zur Erfüllung von Fermat's Satz, d. h. die Bedingung, dass die Primzahl β und die positive ganze Zahl α relativ prim sind, immer eingehalten werden kann. Danach ist der Wert oder die Größe α–1 mod β gleich der Größe αβ–2 mod β. Unter der Annahme, zum Beispiel, dass die Restklassenmultiplikationsarithmetik mittels Verwendung des Binäroperationsverfahrens durchgeführt wird, kann der Wert der multiplikativen Inversen, d. h. α–1 mod β, deshalb bestimmt werden, indem die Restklassenmultiplikationsarithmetik ((|β – 2| – 1) × 3/2)-mal ausgeführt wird, wobei |β – 2| die Bitanzahl von (β – 2) darstellt. Durch Verwendung des oben erwähnten Verfahrens ist es ebenfalls möglich, die Programmgröße oder -skala zu verringern, da keine Notwendigkeit besteht, Algorithmen wie den euklidischen Algorithmus oder ähnliche als Programm(e) vorzubereiten.
  • In einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung werden die Parameter, die sehr oft in den arithmetischen Operationen benutzt werden und zuvor mit einem Personal-Computer oder ähnlichem berechnet werden können, vorher bestimmt, um als Teil der Systeminformationen in einer IC-Karte eingebautem wiederbeschreibbaren nicht-flüchtigen Speicher gespeichert zu werden. Daher kann die Rechenkomplexität der arithmetischen Verarbeitung verringert werden. In diesem Zusammenhang können als die zuvor in dem wiederbeschreibbaren nicht-flüchtigen Speicher als Systeminformationen zu speichernden Daten die Ordnung p eines endlichen Körpers, aus der Transformation eines Parameters a der elliptischen Kurve her vorgehende Werte "aR mod p", ein Punkt (X, Y, Z), der durch Transformieren der zweidimensionalen affinen Koordinaten (x, y) eines Punktes P (Basispunkt) auf der elliptischen Kurve in Koordinaten in einem dreidimensionalen projektiven Koordinatensystem, dessen Koordinaten dann in eine für eine Restklassenmultiplikationsarithmetikeinheit geeignete Form transformiert werden, erhalten werden kann, eine Ordnung n des Basispunktes, einen geheimen Schlüssel d, Werte "2R mod p", "3R mod p", "4R mod p", "8R mod p" und "2–1R mod p", die jeweils aus der Transformation von Konstanten, die in der Arithmetik der elliptischen Kurve eingesetzt werden, hervorgehen, und Werte "R mod p", "R mod n", "R2 mod p" und "R2 mod n", die in der Restklassenmultiplikationsarithmetik eingesetzt werden, erwähnt werden. In der obigen Beschreibung stellt R eine positive ganze Zahl dar, die der Bedingung R = 2|p| genügt, wobei |p| die Bitanzahl der Ordnung p des endlichen Körpers darstellt.
  • Nach noch einem weiteren Ausführungsbeispiel der vorliegenden Erfindung wird eine IC-Karte zur Verfügung gestellt, bei der den ganzzahligen Vielfachen des Basispunktes entsprechende Punkte in einem wiederbeschreibbaren nicht-flüchtigen Speicher, der in die IC-Karte eingebaut ist, in Form von Tabellen daraufhin gespeichert werden, dass der rechnerische Overhead verringert wird, indem die Anzahl der in der Additionsarithmetik der elliptischen Kurve auftretenden Verarbeitungsschritte verringert wird. In diesem Zusammenhang sollte erwähnt werden, dass der rechnerische Overhead reduziert werden kann, wenn die Anzahl der Tabellen steigt, Allerdings wird dann die im wiederbeschreibbaren nicht-flüchtigen Speicher zu speichernde Datenmenge (d. h. Datengröße) entsprechend steigen. Dementsprechend legt die Erfindung ebenfalls nahe, dass durch Potenzierung der Basispunkte mit 4 erhaltene Punkte im Speicher in der Form von Tabellen gespeichert werden. In diesem Fall ist die Anzahl der als Tabellen gespeicherten Punkte, d. h. die Anzahl der Tabellen, durch |p|/2 gegeben, wobei |p| die Bitanzahl der Ordnung p des endlichen Körpers darstellt. Die tabellierten Werte werden in Koordinaten in einem dreidimensionalen projektiven Koordinatensystem transformiert und dann in durch Pi (Xi, Yi, Zi) gegebene Punkte transformiert, die sich für die vom Restklassenmultiplikator ausgeführte Arithmetik eignen. Im gerade eben erwähnten Ausdruck stellt i eine ganze Zahl dar, die der Bedingung 0 ≤ i < |p|/2 genügt.
  • In dem Fall, in dem eine große Speicherkapazität verfügbar ist, können die aus der Potenzierung der Basispunkte mit zwei hervorgehenden Punkte als Tabellen gespeichert werden. In diesem Fall können die Arithmetikoperationen auf der elliptischen Kurve nur mit der elliptischen Additionsarithmetik aufgebaut werden, wodurch die Anzahl der erforderlichen Verarbeitungsschritte reduziert werden kann.
  • Im Allgemeinen, wenn die Werte der aus 2n (wobei n eine natürliche Zahl darstellt) der Basispunkte hervorgehenden Punkte als Tabellen gespeichert werden, wird die Anzahl der Tabellen durch |p|/n gegeben, wobei |p| die Bitanzahl der Ordnung p des endlichen Körpers darstellt. In praktischen Anwendungen kann die Anzahl der Tabellen durch Berücksichtigung der Rechenleistung einer CPU und der Kapazität eines für das Speichern der Tabellen vorgesehenen Speichers bestimmt werden.
  • Andere Gegenstände, Merkmale und Vorteile der vorliegenden Erfindung werden in der folgenden detaillierten Beschreibung der Ausführungsbeispiele in Verbindung mit den begleitenden Zeichnungen ersichtlich werden.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Im Laufe der folgenden Beschreibung wird auf die Zeichnungen verwiesen, in denen:
  • 1 ein schematisches Blockdiagramm ist, das eine allgemeine Anordnung eines Geräts zeigt, bei dem die vorliegende Erfindung angewendet werden kann;
  • 2 ein Flussdiagramm zur Illustration einer Signaturerzeugungsprozedur ist, die auf dem Verschlüsselungsverfahren mittels elliptischer Kurven nach einem Ausführungsbeispiel der Erfindung basiert;
  • 3 ein Flussdiagramm zur detaillierten Illustration einer Abfolge von Verarbeitungsschritten in dem in 2 gezeigten Schritt 203 ist;
  • 4 ein Flussdiagramm zur detaillierten Illustration einer elliptischen Additionsarithmetik in der in 3 gezeigten Verarbeitungsprozedur ist;
  • 5 ein Flussdiagramm zur detaillierten Illustration der elliptischen Mit-Zwei-Multiplikationsarithmetik in der in 3 gezeigten Verarbeitungsprozedur ist;
  • 6 ein Flussdiagramm zur detaillierten Illustration einer Abfolge von Verarbeitungsschritten in dem in 2 gezeigten Schritt 204 ist; und
  • 7 ein Flussdiagramm zur detaillierten Illustration einer Abfolge von Verarbeitungsschritten in dem in 2 gezeigten Schritt 205 ist.
  • BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSBEISPIELE
  • Die vorliegende Erfindung wird nun im Detail unter Verweis auf die Zeichnungen in Zusammenhang mit dem beschrieben werden, was zuvor als bevorzugtes oder typisches Ausführungsbeispiel angesehen wurde. In der folgenden Beschreibung bezeichnen gleiche Referenzzeichen in den verschiedenen Ansichten gleiche oder ähnliche Teile.
  • 1 ist ein schematisches Blockdiagramm, das eine allgemeine Anordnung eines Digitalsignatursystems zeigt, das unter Verwendung eines Mikrocomputers wie zum Beispiel eines Mikrocomputers vom Typ des von Hitachi, Ltd., im Handel erhältlichen H8/3111-Modells in eine IC-Karte eingefügt ist und in dem Additionsarithmetik auf der elliptischen Kurve in einem endlichen Körper eingesetzt wird, Unter Bezug auf 1 enthält die generell durch Referenznummer 101 bezeichnete IC-Karte eine CPU (Central Processing Unit) 102, einen ROM-Speicher (Read-Only Memory) 103, der zum Speichern der bei der Ausführung der vorliegenden Erfindung benötigten Operationsanweisungen vorgesehen ist, einen EEPROM-Speicher (Electrically Erasable and Programmable Read-Only Memory) 104, der als ein wiederbeschreibbarer nicht-flüchtiger Speicher zum Speichern von Systeminformationen und Daten wie den Ordnungen der endlichen Körper, Parametern der elliptischen Kurve und ähnlichen dient, einen I/O-Port (Input/Output) 105 zum Steuern von Ein- und Ausgabe von und zur IC-Karte 101, einen RAM-Speicher (Random Access Memory) 106, einen Restklassenmultiplikator 107, der zur Ausführung oder Durchführung der Restklassenmultiplikationsarithmetik (modulare Multiplikation in einer Menge ganzer Zahlen) fähig ist, einen Stromversorgungsanschluss (Vcc) 110, einen Erdungsanschluss (Vss) 111, einen Uhranschluss (CLK) 112, einen Zurücksetzungsanschluss (RES) 113 und einen I/O-Anschluss (Input/Output), (I/O) 114. Die einzelnen Anschlüsse der IC-Karte 101 sind mit den in der IC-Karte 101 eingefügten relevanten Komponenten elektrisch verbunden. Der oben erwähnte Restklassenmultiplikator 107, der zur Durchführung der Restklassenmultiplikationsarithmetik ausgelegt ist, kann durch einen Co-Prozessor des oben erwähnten Hitachi-Mikrocomputermodells H8/3111 gebildet werden. Selbstverständlich können auch andere äquivalente Co-Prozessoren an dieser Stelle eingesetzt werden.
  • Der oben erwähnte Restklassenmultiplikator 107 umfasst einen CPU/Restklassenmultiplikator-geteilten RAM-Speicher 109, der sowohl vom Restklassenmultiplikator 107 als auch von der CPU 102 gemeinsam benutzt werden kann, wobei der RAM-Speicher 109 mindestens drei Datenregister CDA, CDB und CDN enthält. Vom Restklassenmultiplikator 107 durchgeführte arithmetische Operationen werden mit jeweils in den Datenregistern CDA, CDB und CDN gespeicherten Eingabedaten ausgeführt. In diesem Fall wird das Ergebnis der vom Restklassenmultiplikator 107 ausgeführten arithmetischen Operation im Datenregister CDA durch Überschreiben von dessen Wert gespeichert. In diesem Zusammenhang sollte jedoch angemerkt werden, dass die Werte der Datenregister CDB und CDN nach der arithmetischen Operation unverändert bleiben. Ferner sollte erwähnt werden, dass der Restklassenmultiplikator 107 so ausgelegt ist, dass er zur Ausführung oder Durchführung einer jeden der drei Arten von unten erwähnten arithmetischen Operationen auf ein die Operationsart bezeichnendes Kommando fähig ist.
  • Und zwar:
    • CDA ← (CDA·CDB)R–1 mod (CDN) (im Folgenden als Restklassenarithmetik 1 bezeichnet),
    • CDA ← (CDA2) R–1 mod (CDN) (im Folgenden als Restklassenarithmetik 2 bezeichnet) und
    • CDA ← (CDA) R–1 mod (CDN) (im Folgenden als Restklassenarithmetik 3 bezeichnet).
  • Die einzelnen in der IC-Karte 101 enthaltenen Elemente oder Komponenten, so wie sie vorher erwähnt wurden, sind mittels eines Bus 108 miteinander verbunden.
  • Außerdem kann, wenn die Ordnung eines endlichen Körpers durch eine Primzahl p dargestellt wird, die elliptische Kurve Ep, die bei der Ausführung der vorliegenden Erfindung eingesetzt wird, durch eine Menge dargestellt werden, die einer Menge von Punkten, die den unten angeführten Ausdruck für die Parameter (a, b) erfüllt, die die elliptische Kurve bestimmen, entspricht und der ein virtueller Punkt im Unendlichen hinzugefügt ist. Der Einfachheit halber wird angenommen, dass die betreffende elliptische Kurve Ep im affinen Koordinatensystem dargestellt ist. Ep: y2 ≡ x3 + ax + b (mod p)
  • Außerdem wird der Basispunkt als P(x, y) dargestellt, wobei seine Ordnung durch eine Primzahl n dargestellt wird.
  • (1) Speicherung der Systeminformationen
  • Im EEPROM-Speicher 104 sind gespeichert die Ordnung p eines endlichen Körpers, der aus einer Transformation des Parameters a der elliptischen Kurve hervorgehende Wert "aR mod p", der Punkte Pi(Xi, Yi, Zi) (wobei i eine ganze Zahl darstellt, die der Bedingung 0 ≤ i < |p|/2 genügt, wobei |p| die Bitanzahl einer Ordnung p eines endlichen Körpers darstellt), die durch Transformieren der zweidimensionalen affinen Koordinaten (x, y) eines Punktes P (Basispunkt) der elliptischen Kurve in Koordinaten in einem dreidimensionalen projektiven Koordinatensystem, dessen Koordinaten dann transformiert werden, um sich für die Restklassenmultiplikationsarithmetikeinheit zu eignen, erhalten werden können, die Ordnung n des Basispunktes, einen geheimen Schlüssel d, aus der Transformation von Konstanten jeweils hervorgehende Werte "2R mod p", "3R mod p", "4R mod p", "8R mod p" und "2–1R mod p", die in der Arithmetik der elliptischen Kurve eingesetzt werden, sowie in der Restklassenmultiplikationsarithmetik benutzte Werte "R mod p", "R mod n", "R2 mod p" und "R2 mod n". In der obigen Aussage stellt R eine positive ganze Zahl dar, die den Bedingungen R > p und R > n genügt, z.b. eine kleinste positive ganze Zahl, die eine Bitlänge gleich dem größeren von |p| + 1 oder |n| + 1 hat. Die Speicherung der Systeminformationen wird ausgeführt, bevor die unten beschriebenen Verschlüsselungsverarbeitungsschritte ausge führt werden. Nebenbei gesagt nimmt in den obigen Aussagen R einen numerischen Wert an, der als Konstante gegeben ist, und repräsentiert einen Parameter, der in Abhängigkeit von der arithmetischen Leistung zum Beispiel des Go-Prozessors, der eine Mehrlängen-Arithmetikeinheit bildet oder als solche dient, bestimmt wird,
  • (2) Erzeugung von digitalen Signaturen
  • 2 bis 7 sind Flussdiagramme zur Illustration einer Verarbeitungsprozedur zur Erzeugung einer digitalen Signatur, die von der Verarbeitungseinheit für Verschlüsselung mittels elliptischer Kurven gemäß dem momentanen Ausführungsbeispiel der vorliegenden Erfindung durchgeführt wird. Zunächst wird die Signaturerzeugungsprozedur unter Bezug auf 2 allgemein beschrieben.
  • In den Flussdiagrammen, auf die in der folgenden Beschreibung Bezug genommen wird, wird angenommen, dass die CPU 102 das in ROM-Speicher 103 gespeicherte Programm ausführt, während sie den Restklassenmultiplikator 107 die relevante Verarbeitung unter Benutzung der in dem RAM-Speicher 106 und dem EEPROM-Speicher 104 gespeicherten Daten ausführen lässt, wenn es erforderlich ist.
  • Schritt 201: Verarbeitungsprozedur wird gestartet.
  • Schritt 202: Eine Zufallszahl k wird erzeugt, wobei die erzeugte Zufallszahl k im Datenregister CDA, das im Restklassenmultiplikator 107 enthalten ist, gespeichert wird, während der im EEPROM-Speicher 104 gespeicherte Wert "R mod n" ins gleichermaßen im Restklassenmultiplikator 107 enthaltene Datenregister CDB gesetzt oder platziert wird, um dadurch dem Restklassenmultiplikator 107 die Ausführung der zuvor definierten Restklassenarithmetik 1 zu erlauben. Das zu diesem Zeitpunkt im Datenregister CDA gespeicherte Ergebnis der Ausführung wird als die aufdatierte oder erneuerte Zufallszahl k bestimmt.
  • Schritt 203: Die im Schritt 202 erzeugte Zufallszahl k, die Systeminformationen p, der Wert "aR mod p" und die im EEPROM-Speicher 104 gespeicherten Punktkoordinatendaten P(X, Y, Z) werden eingegeben, um die Berechnung k·P auszuführen, d. h. die Multiplikation des Basispunktes P auf der elliptischen Kurve mit der Zufallszahl k. Diese Berechnung kann bewältigt werden, indem elliptische Additionsarithmetik im endlichen Körper im dreidimensionalen projektiven Koordinatensystem durchgeführt wird, d. h. skalare Multiplikationsarithmetik mittels der CPU 102. In diesem Fall kann die bei der elliptischen Additionsarithmetik auftretende Restklassenmultiplikationsarithmetik ausgeführt werden, indem der Restklassenmultiplikator 107 benutzt wird, der durch den Co-Prozessor gebildet wird, wie zuvor erwähnt wurde.
  • Schritt 204: Die Punktkoordinatendaten (X, Y, Z), d. h. das Ergebnis der Ausführung im Schritt 203, repräsentieren, wie zuvor erwähnt wurde, einen Punkt im dreidimensionalen projektiven Koordinatensystem. Demgemäß müssen die Punktkoordinatendaten (X, Y, Z) in Punktkoordinaten (x, y) im zweidimensionalen affinen Koordinatensystem transformiert werden. Die arithmetische Operation für diese Koordinatentransformation kann als x ≡ X/Z2 (mod p) dargestellt werden. An dieser Stelle kann jedoch die durch x ≡ XZp –3 (mod p) gegebene arithmetische Operation ausgeführt werden, weil die Formel x ≡ X·Zp–3 (mod p) im Hinblick auf Fermat's Satz gilt. Deshalb wird mit Hilfe des Restklassenmultiplikators 107 die Restklassenmultiplikationsarithmetik (d. h. x ≡ XZp–3 (mod p)) anstelle der Restklassendivisionsarithmetik ausgeführt, Auf diese Weise kann dadurch, dass anstelle der Formel x ≡ X/Z2 mod p) die Formel x ≡ XZp–3 (mod p) benutzt wird, die Koordinatentransformation nur mit der Restklassenmultiplikationsarithmetik umgesetzt werden, ohne dass die Restklassendivisionsarithmetik gebraucht wird.
  • Schritt 205: Mit der im Schritt 202 erzeugten Zufallszahl k, dem Hash-Wert H(M) für die über den I/O-Port 105 vom I/O-Terminal (I/O) 114 eingegebene Nachricht M, dem im EEPROM-Speicher 104 gespeicherten geheimen Schlüssel d, der Ordnung n des Basispunktes und dem Wert oder der Größe "x mod p", die im Schritt 204 berechnet wurde, können die unten angeführten arithmetischen Operationen ausgeführt werden.
  • Zur Erzeugung der Signatur r: r ≡ x (mod n) sowie
    zur Erzeugung der Signatur s: s ≡ k–1·(H(M) + d·r)(mod n).
  • Die arithmetische Operation zur Erzeugung der Signatur s in den oben angeführten arithmetischen Operationen benötigen die multiplikative Inversenarithmetik. Diese multiplikative Inversenarithmetik kann umgesetzt werden, indem die durch "k–1 mod n" gegebene Restklassendivisionsarithmetik durch die Restklassenmultiplikationsarithmetik "kn–2 mod n" wie im Falle der Verarbeitung im Schritt 204 ersetzt wird. Wie man schnell erkennt, kann man die Restklassenmultiplikationsarithmetik "kn–2 mod n" mit dem Restklassenmultiplikator 107 umsetzen. Das Ergebnis dieser arithmetischen Operation stellt eine Signatur (r, s) dar, die als digitale Signatur für die Nachricht M über den I/O-Port 105 vom I/O-Terminal (I/O) 114 ausgegeben wird.
  • Schritt 206: Die Verarbeitung wird beendet.
  • Als Nächstes wendet sich die Beschreibung einer Verarbeitungsprozedur zur Erzeugung der digitalen Signatur gemäß dem momentanen Ausführungsbeispiel der Erfindung unter Bezug auf 3 bis 7 zu.
  • 3 ist ein Flussdiagramm zur detaillierten Illustration der in 2 gezeigten Verarbeitung in Schritt 203. Im Folgenden werden die Verarbeitungsschritte in den einzelnen in 3 gezeigten Schritten beschrieben.
  • Schritt 301: Die Verarbeitungsprozedur wird gestartet, Schritt 302: Ein Bitstring k = (ki, ki–1, ..., k1, k0)2 der in Schritt 202 erzeugten Zufallszahl k wird bestimmt, indem Bits der Binärnotation jeweils auf Zweiergruppenbasis kombiniert werden, und der Bitstring wird beginnend von der Seite des am wenigsten signifikanten Bits geprüft. Wenn ki = "11", dann wird "01" zum Bitstring ki+1, der signifikanter als ki ist, hinzuaddiert. Auf diese Weise wird der Bitstring bis hin zum signifikantesten Bit neu geschrieben. Wenn der ursprüngliche Bitstring zum Belspiel durch "10", "11", "10", "11" dargestellt wird, wird der Bitstring nach der Transformation daher "01", "11", "00", "11", "11" sein. Diese Transformation wird bis zum signifikantesten Bit hin durchgeführt. Der resultierende Bitstring wird dargestellt durch
    k = (kl, kl–1, ..., k1, k0)2, wobei kl ≠ (00).
  • Der erhaltene Wert von l wird als Variable i (im Folgenden als Schleifenzähler bezeichnet) als die Anzahl von Malen (l + 1) gesetzt, die die Restklassenmultiplikationsarithmetik zu wiederholen ist.
  • Schritt 303: Auf der Grundlage eines Punktes Pi(Xi, Yi, Zi), der für die Restklassenmultiplikationsarithmetik nach der dreidimensionalen Koordinatentransformation des Basispunktes, d. h. eines Tabellenwerts, auf der elliptischen Kurve, die im EEPROM-Speicher 104 gespeichert war, transformiert wurde, wie zuvor beschrieben wurde, wird ein Anfangswert im RAM-Speicher 106 gespeichert, um die Zufallszahl ki für den Punkt Pi neu zu schreiben.
  • Schritt 304: Der Schleifenzählerwert i wird um Eins verringert.
  • Schritt 305: Eine Entscheidung über den Schleifenzählerwert i wird getroffen. Wenn der Schleifenzählerwert i kleiner als 0 (Null) ist, dann geht die Verarbeitung zu Schritt 307 und sonst zu Schritt 306.
  • Schritt 306 Wenn der Wert der Zufallszahl ki "00" ist, dann wird bei Schritt 304 fortgeschritten. Wenn der Wert der Zufallszahl ki "01" ist, dann wird die elliptische Additionsarithmetik zur Addition des Tabellenwerts Pi durchgeführt, worauf bei Schritt 304 weitergemacht wird. Wenn der Wert der Zufallszahl ki "10" ist, dann wird die elliptische Mal-Zwei-Multiplikationsarithmetik durch Multiplizieren des Tabellenwerts Pi mit 2 durchgeführt und anschließend die elliptische Additionsarithmetik zum Addieren des Ergebnisses der elliptischen Mal-Zwei-Multiplikationsarithmetik durchgeführt, worauf bei Schritt 304 weitergemacht wird. Auf der anderen Seite, wenn der Wert der Zufallszahl ki "11" ist, dann wird für den Y-Koordinatenwert des Tabellenwerts Pi die additive Inverse für die arithmetische Operation zum Modulus p bestimmt, um die Y-Koordinate des Tabellenwerts Pi erneuernd zu ersetzen, und die elliptische Additionsarithmetik wird für das Addieren des relevanten Punktes durchgeführt, worauf bei Schritt 304 weitergemacht wird.
  • Schritt 307: Die Verarbeitung wird beendet.
  • 4 ist ein Flussdiagramm zur detaillierten Illustration der elliptischen Additionsarithmetik in der zuvor unter Bezug auf 3 beschriebenen Verarbeitungsprozedur. Im Folgenden werden die Verarbeitungsinhalte in den einzelnen in 4 gezeigten Schritten beschrieben werden.
  • Schritt 401: Die Verarbeitungsprozedur wird gestartet. In diesem Zusammenhang sollte erwähnt werden, dass die Restklassenmultiplikationsarithmetik zum Modulus p (d. h. modulo p) durchgeführt wird, da p im Register CDN des Restklassenmultiplikators 107 im Schritt 303 gespeichert wird.
  • Schritt 402: Die zuvor definierte Restklassenarithmetik 2 wird mittels des Restklassenmultiplikators 107 ausgeführt.
  • Schritt 403: Die zuvor definierte Restklassenarithmetik 1 wird mittels des Restklassenmultiplikators 107 ausgeführt.
  • Schritt 404: Die Restklassenarithmetik 2 wird mittels des Restklassenmultiplikators 107 ausgeführt.
  • Schritt 405: Die Restklassenarithmetik 1 wird mittels des Restklassenmultiplikators 107 ausgeführt.
  • Schritt 406: Die CPU 102 führt die Restklassensubtraktionsarithmetik (d. h. modulare Subtraktion in der Menge der ganzen Zahlen) durch, um dadurch einen Zwischenwert W herzuleiten.
  • Schritt 407: Die CPU 102 führt die Restklassenadditionsarithmetik durch, um dadurch einen Zwischenwert T herzuleiten.
  • Schritt 408: Die Restklassenarithmetik 1 wird mittels des Restklassenmultiplikators 107 ausgeführt.
  • Schritt 409: Die Restklassenarithmetik 1 wird mittels des Restklassenmultiplikators 107 ausgeführt.
  • Schritt 410: Die Restklassenarithmetik 1 wird mittels des Restklassenmultiplikators 107 ausgeführt.
  • Schritt 411: Die Restklassenarithmetik 1 wird mittels des Restklassenmultiplikators 107 ausgeführt.
  • Schritt 412: Die CPU 102 führt die Restklassensubtraktionsarithmetik (d. h. modulare Subtraktion in der Menge der ganzen Zahlen) durch, um dadurch einen Zwischenwert R herzuleiten,
  • Schritt 413: Die CPU 102 führt die Restklassenadditionsarithmetik (d. h. modulare Addition in der Menge der ganzen Zahlen) durch, um dadurch einen Zwischenwert M herzuleiten.
  • Schritt 414: Die Restklassenarithmetik 1 wird mittels des Restklassenmultiplikators 107 ausgeführt.
  • Schritt 415: Die Restklassenarithmetik 1 wird mittels des Restklassenmultiplikators 107 ausgeführt, wodurch die Z-Koordinate eines nach der elliptischen Additionsarithmetik bestimmten Punktes erhalten werden kann.
  • Schritt 416: Die Restklassenarithmetik 2 wird mittels des Restklassenmultiplikators 107 ausgeführt.
  • Schritt 417: Die Restklassenarithmetik 2 wird mittels des Restklassenmultiplikators 107 ausgeführt,
  • Schritt 418: Die Restklassenarithmetik 1 wird mittels des Restklassenmultiplikators 107 ausgeführt.
  • Schritt 419: Die CPU 102 führt die Restklassensubtraktionsarithmetik durch, wodurch die X-Koordinate eines nach der elliptischen Additionsarithmetik bestimmten Punktes erhalten werden kann.
  • Schritt 420: Die CPU 102 führt die Restklassensubtraktionsarithmetik durch, um einen Zwischenwert V herzuleiten.
  • Schritt 421: Die Restklassenarithmetik 1 wird mittels des Restklassenmultiplikators 107 ausgeführt.
  • Schritt 422: Die Restklassenarithmetik 1 wird mittels des Restklassenmultiplikators 107 ausgeführt.
  • Schritt 423: Die Restklassenarithmetik 1 wird mittels des Restklassenmultiplikators 107 ausgeführt.
  • Schritt 424: Die CPU 102 führt die Restklassensubtraktionsarithmetik durch, um dadurch einen Zwischenwert Y herzuleiten.
  • Schritt 425: Der Zwischenwert Y und der im EEPROM-Speicher 104 gespeicherte Wert "2–1R mod p" werden in den Restklassenmulti plikator 107 eingegeben, um die Restklassenarithmetik 1 umzusetzen, wodurch die Y-Koordinate des nach der elliptischen Additionsarithmetik bestimmten Punktes erhalten werden kann.
  • Schritt 426: Die Verarbeitung wird beendet.
  • 5 illustriert in einem Flussdiagramm detailliert die elliptische Mal-Zwei-Multiplikationsarithmetik in der zuvor unter Bezug auf 3 beschriebenen Verarbeitungsprozedur. Im Folgenden werden die Verarbeitungsschritte in den einzelnen in 5 gezeigten Schritten beschrieben werden.
  • Schritt 501: Die Verarbeitungsprozedur wird gestartet. In diesem Zusammenhang sollte erwähnt werden, dass Restklassenmultiplikationsarithmetik zum Modulus p (oder modulo p) durchgeführt wird, da p in Schritt 303 ins Register CDN des Restklassenmultiplikators 107 platziert wurde.
  • Schritt 502: Die zuvor definierte Restklassenarithmetik 2 wird mittels des Restklassenmultiplikators 107 ausgeführt.
  • Schritt 503: Die Restklassenarithmetik 2 wird mittels des Restklassenmultiplikators 107 ausgeführt.
  • Schritt 504: Die Restklassenarithmetik 2 wird mittels des Restklassenmultiplikators 107 ausgeführt.
  • Schritt 505: Die ebenfalls hier zuvor definierte Restklassenarithmetik 1 wird mittels des Restklassenmultiplikators 107 ausgeführt.
  • Schritt 506: Der im EEPROM-Speicher 104 gespeicherte Wert "3R mod p" und der im Schritt 502 bestimmte Wert "X1 2R mod p" werden in den Restklassenmultiplikator 107 eingegeben, um dadurch die Restklassenarithmetik 1 auszuführen.
  • Schritt 507: Die CPU 102 führt die Restklassenadditionsarithmetik durch, um dadurch den Zwischenwert M herzuleiten.
  • Schritt 508: Die Restklassenarithmetik 2 wird ausgeführt mittels des Restklassenmultiplikators 107.
  • Schritt 509: Die Restklassenarithmetik 1 wird mittels des Restklassenmultiplikators 107 ausgeführt.
  • Schritt 510: Der im EEPROM-Speicher 104 gespeicherte Wert "4R mod p" und der im Schritt 509 bestimmte Wert "X1Y1 2R mod p" werden in den Restklassenmultiplikator 107 eingegeben, um dadurch die Restklassenarithmetik 1 auszuführen, wodurch ein Zwischenwert S bestimmt wird.
  • Schritt 511: Die Restklassenarithmetik 2 wird mittels des Restklassenmultiplikators 107 ausgeführt.
  • Schritt 512: Der im EEPROM-Speicher 104 gespeicherte Wert "8R mod p" und der im Schritt 511 bestimmte Wert "Y1 4R mod p" werden in den Restklassenmultiplikator 107 eingegeben, um dadurch die Restklassenarithmetik 1 durchzuführen, wodurch der Zwischenwert T erhalten werden kann.
  • Schritt 513: Die Restklassenarithmetik 1 wird mittels des Restklassenmultiplikators 107 ausgeführt.
  • Schritt 514: Der im EEPROM-Speicher 104 gespeicherte Wert "2R mod p" und der im Schritt 513 bestimmte Wert "Y1Z1R mod p" werden in den Restklassenmultiplikator 107 eingegeben, um dadurch die Restklassenarithmetik 1 auszuführen, wodurch die Z-Koordinate des nach der elliptischen Mal-Zwei-Multiplikationsarithmetik bestimmten Punktes erhalten werden kann.
  • Schritt 515: Die Restklassenarithmetik 2 wird mittels des Restklassenmultiplikators 107 ausgeführt.
  • Schritt 516: Der im EEPROM-Speicher 104 gespeicherte Wert "2R mod p" und der Zwischenwert S werden in den Restklassenmulti plikators 107 eingegeben, um dadurch die Restklassenarithmetik 1 auszuführen.
  • Schritt 517: Die CPU 102 führt die Restklassensubtraktionsarithmetik durch, um dadurch die X-Koordinate des nach der elliptischen Mal-Zwei-Multiplikationsarithmetik bestimmten Punktes herzuleiten.
  • Schritt 518: Die Restklassenarithmetik 1 wird mittels des Restklassenmultiplikators 107 ausgeführt.
  • Schritt 519: Die CPU 102 führt die Restklassensubtraktionsarithmetik durch, um dadurch die Y-Koordinate des nach der elliptischen Mal-Zwei-Multiplikationsarithmetik bestimmten Punktes herzuleiten.
  • Schritt 520: Die Verarbeitung wird beendet.
  • 6 ist ein Flussdiagramm zur detaillierten Illustration der Verarbeitung in dem in 2 gezeigten Schritt 204. Im Folgenden werden die Verarbeitungsschritte in den einzelnen in 6 gezeigten Schritten der Reihe nach beschrieben werden.
  • Schritt 601: Die Verarbeitungsprozedur wird gestartet.
  • Schritt 602: Auf der Grundlage der im EEPROM-Speicher 104 gespeicherten Ordnung p des endlichen Körpers wird die Berechnung zur Bestimmung von (p – 3) durchgeführt. In diesem Fall wird in der Binärnotation von (p – 3), die durch
    (P – 3) = (jl, jl–1, ..., jl, j0)2 gegeben ist, wobei jl = 1,
    der Wert von l im Schleifenzähler i als die Information gespeichert, die die Anzahl der Male, die die Restklassenmultiplikationsarithmetik zu wiederholen ist, angibt.
  • Schritt 603: Die Z-Koordinate des durch die arithmetische Operation im Schritt 203 bestimmten Punktes wird in den im Restklassenmultiplikator 107 enthaltenen Datenregistern CDA und CDB gespeichert. Auf der anderen Seite wird der Wert von p durchgängig im Datenregister CDN des Restklassenmultiplikators 107 gespeichert, denn der im Schritt 303 im Datenregister CDN gespeicherte Wert von p wird unverändert gehalten.
  • Schritt 604: Der Schleifenzählerwert i wird um Eins verringert.
  • Schritt 605: Eine Entscheidung über den Schleifenzählerwert i wird getroffen, Wenn der Schleifenzählerwert i kleiner als 0 (Null) ist, dann geht die Verarbeitung zum Schritt 609 und sonst zum Schritt 606.
  • Schritt 606: Die zuvor definierte Restklassenarithmetik 2 wird mittels des Restklassenmultiplikators 107 ausgeführt.
  • Schritt 607: Eine Entscheidung über den Wert ji für den Schleifenzählerwert i von (p – 3) wird getroffen. Außer wenn der Wert ji gleich 1 (Eins) ist, wird bei Schritt 604 weitergemacht. Andererseits geht die Verarbeitung zum Schritt 608.
  • Schritt 608: Die Restklassenarithmetik 1 wird mittels des Restklassenmultiplikators 107 ausgeführt, worauf bei Schritt 604 weitergemacht wird.
  • Schritt 609: Die X-Koordinate des durch die arithmetische Operation im Schritt 203 bestimmten Punktes wird in den im Restklassenmultiplikator 107 enthaltenen Datenregister CDB gespeichert. Zu diesem Zeitpunkt wird der Wert "Zp–3R mod p" im Datenregister CDA gespeichert.
  • Schritt 610: Die Restklassenarithmetik 1 wird mittels des Restklassenmultiplikators 107 ausgeführt. Als Ergebnis davon wird im Datenregister CDA der Wert "XZp–3R mod p" gespeichert, d. h. der durch "xR ≡ XZ–2R (mod p)" gegebene Wert, aus der Transformation der X-Koordinate des nach der Ausführung des Schrittes 203 erhaltenen zweidimensionalen affinen Koordinatensystems in einen Operationsbereich des Restklassenmultiplikators resultiert.
  • Schritt 611: Die Restklassenarithmetik 3 wird mittels des Restklassenmultiplikators 107 ausgeführt. Als Ergebnis davon wird im Datenregister CDA der Wert "XZ–2 mod p" gespeichert, d. h. der Wert der durch "x ≡ XZ–2 (mod p)" gegebenen X-Koordinate des zweidimensionalen affinen Koordinatensystems, das nach der Ausführung des Schrittes 203 erhalten wurde. In den oben beschriebenen Schritten 604 bis 608 wird 1/Z2 in die multiplikative Inverse Z–2 transformiert, um 1/Z2 für die Operation zur Bestimmung von X/Z2 zu bestimmen, worauf der Wert von X/Z2 durch den Restklassenmultiplikator 107 bestimmt wird.
  • Schritt 612: Die Verarbeitung wird nun beendet.
  • Wie aus dem Vorhergehenden klar wird, wird in dem durch die vorliegende Erfindung gelehrten Schema beziehungsweise System die Funktion der Mehrlängen-Restklassenmultiplikationsarithmetik des Restklassenmultiplikators 107 genutzt, Daher wird es nicht notwendig, die Mehrlängen-Restklassenmultiplikationsarithmetik mittels der CPU 102 durchzuführen. Demzufolge kann die Anzahl der arithmetischen Verarbeitungsschritte vermindert werden, was wiederum bedeutet, dass die Verarbeitungsgeschwindigkeit erhöht werden kann.
  • 7 ist ein Flussdiagramm zur detaillierten Illustration der Verarbeitung in dem in 2 gezeigten Schritt 205. Im Folgenden werden die Inhalte der Verarbeitungsschritte in den einzelnen in 7 gezeigten Schritten beschrieben werden.
  • Schritt 701: Die Verarbeitungsprozedur wird gestartet.
  • Schritt 702: Der Wert "x mod p" der X-Koordinate von k·P, berechnet in Schritt 204, wird im Datenregister CDA des Restklassenmultiplikators 107 gespeichert.
  • Schritt 703: Der im EEPROM-Speicher 104 gespeicherte Wert "R mod n" wird im Datenregister CDB des Restklassenmultiplikators 107 platziert. Im Übrigen stellt R einen inhärent zum Co- Prozessor gehörenden Wert dar und n stellt die Ordnung des Basispunktes P auf der elliptischen Kurve dar.
  • Schritt 704: Die Ordnung n des im EEPROM-Speicher 104 gespeicherten Basispunktes wird ins Datenregister CDN des Restklassenmultiplikators 107 platziert.
  • Schritt 705: Die zuvor definierte Restklassenarithmetik 1 wird mittels des Restklassenmultiplikators (Co-Prozessors) 107 ausgeführt. Dieses Ergebnis wird im Datenregister CDA gehalten, wo der Wert "x mod n" gespeichert wird, der die durch "r ≡ x (mod n)" gegebene Signatur darstellt. Darauf folgend geht die Verarbeitung zu den Schritten 706 bis 713, um die Signatur s zu bestimmen.
  • Schritt 706: Der im EEPROM-Speicher 104 gespeicherte Wert "R2 mod n" wird ins Datenregister CDB des Restklassenmultiplikators 107 platziert.
  • Schritt 707: Die zuvor definierte Restklassenarithmetik 1 wird mittels des Restklassenmultiplikators 107 ausgeführt. Als Ergebnis davon wird der Wert "rR mod n" bestimmt, um im Datenregister CDA gespeichert zu werden.
  • Schritt 708: Der im EEPROM-Speicher 104 gespeicherte geheime Schlüssel d wird ins Datenregister CDB des Restklassenmultiplikators 107 auf die Aktivierung der IC-Karte durch einen Signierenden hin platziert.
  • Schritt 709: Die Restklassenarithmetik 1 wird mittels des Restklassenmultiplikators 107 auf die Aktivierung der IC-Karte durch den Signierenden hin ausgeführt. Als Ergebnis davon wird der Wert "d·r mod n" bestimmt, um im Datenregister CDA gespeichert zu werden.
  • Schritt 710: Eine Summe des Hash-Werts H(M) für die Nachricht M und der im zuvor beschriebenen Schritt 709 bestimmte Wert "d·r mod n" werden bestimmt, worauf der Wert "(H(M) + d·r) mod n" im RAM-Speicher 106 gespeichert wird.
  • Schritt 711: Die multiplikative Inverse "k–1R mod n" wird mittels des Restklassenmultiplikators 107 durch die durch "kn–2R mod n" gegebene Restklassenmultiplikationsarithmetik berechnet. Bezüglich der Berechnungsmethode dafür sollte auf die Verarbeitungsroutine aus den Schritten 601 bis einschließlich 609 verwiesen werden. Die obige Berechnung bringt einen Wert "k–1R mod n" hervor, der in dem im Restklassenmultiplikator 107 enthaltenen Datenregister CDA gespeichert wird.
  • Schritt 712: Der in Schritt 710 im RAM-Speicher 106 gespeicherte Wert "(H(M) + d·r) mod n" wird ins Datenregister CDB des Restklassenmultiplikators 107 platziert.
  • Schritt 713: Die zuvor definierte Restklassenarithmetik 1 wird mittels des Restklassenmultiplikators 107 ausgeführt, Als Ergebnis davon kann der Wert "k–1·(H(M) + d·r) mod n" bestimmt werden, um im Datenregister CDA gespeichert zu werden, worauf dieser Wert als Signatur s ≡ k–1·(H(M) + d·r) (mod n) ausgegeben wird.
  • Schritt 714: Die Verarbeitung wird beendet.
  • Um die Effekte die mit der vorliegenden Erfindung erreicht werden können, zu bestätigen, wurde ein Programm gemäß der oben beschriebenen Verarbeitungsprozedur in Verbindung mit dem illustrierten Ausführungsbeispiel der Erfindung vorbereitet, und die Ausführungszeit wurde gemessen, wobei die Operationsuhr der CPU auf 5 MHz gesetzt wurde.
  • Genauer gesagt wurde die k·P-Operation auf der elliptischen Kurve von Schlüssellänge 160-Bit im dreidimensionalen projektiven Koordinatensystem durchgeführt, indem 80 Referenztabellen benutzt wurden, die jeweils einen Wert eines Punktes anzeigen, der Mit-Vier-Potenzierung eines Basispunktes ent spricht. Außerdem wurde die multiplikative Inverse auf der Grundlage der Kombination von Fermat's Satz und des Binäroperationsverfahrens umgesetzt. Zur Ausführung wurde ein Emulator vom Typ Hitachi Mikrocomputermodell Nr. H8/3111 für eine IC-Karte, die einen Co-Prozessor für Mehrlängen-Restklassenmultiplikationsarithmetik enthält, eingesetzt, wobei Assembler als Programmiersprache benutzt wurde. Das Ergebnis des Experiments zeigt, dass die Zeit für die Signaturerzeugung (d. h. die Zeit, die für die Ausführung der Schritte 201 bis einschließlich 206 gebraucht wird) über das 160-Bit-Schlüssellängen-Verschlüsselungsverfahren mittels elliptischer Kurven 0,308 sek/Signatur beträgt.
  • Wie durch die vorhergehende Beschreibung klar wird, werden die Restklassenmultiplikationsarithmetik und die Restklassendivisionsarithmetik mittels des Restklassenmultiplikators durchgeführt, wobei die Restklassenadditionsarithmetik und die Restklassensubtraktionsarithmetik mit der CPU ausgeführt werden, während die zuvor bestimmten und in einem Speicher gespeicherten Werte hinzugezogen werden. Deshalb kann die Verschlüsselungsverarbeitung mittels elliptischer Kurve gemäß der vorliegenden Erfindung mit einer sehr hohen Geschwindigkeit ausgeführt werden.
  • Obwohl in der vorhergehenden Beschreibung besonders auf die Verarbeitung zur Erzeugung von digitalen Signaturen eingegangen wurde, ist die vorliegende Erfindung keineswegs auf die Verarbeitung zur Erzeugung digitaler Signaturen beschränkt. Selbstverständlich kann die Lehre der vorliegenden Erfindung genauso auf die Verarbeitung zur Verifizierung von Signaturen und zur Erzeugung von Chiffren mit erhöhter Verarbeitungsgeschwindigkeit angewendet werden.
  • Außerdem ist die vorliegende Erfindung keineswegs auf die IC-Karte beschränkt. Die Lehre der vorliegenden Erfindung kann genauso auf ein Gerät angewendet werden, das eine CPU von be grenzter Verarbeitungskapazität und einen Multiplikator enthält. Demgemäß sollte der hier benutzte Ausdruck "IC-Karte" so verstanden werden, dass er das soeben erwähnte Gerät beinhaltet. Die Lehre der vorliegenden Erfindung kann beispielsweise auf einen Mikrocontroller angewendet werden, der zur Ausführung von Authentifizierungsverarbeitung entworfen wurde, IEEE 1394 LSI für Verschlüsselungsverarbeitung. Solche Anwendungen werden erwähnt in NIKKEI ELECTRONICS, Nr. 732, 14. Dezember 1998, S. 27 bis 28.
  • Obwohl beschrieben wurde, dass als wiederbeschreibbarer nichtflüchtiger Speicher 104 der EEPROM-Speicher eingesetzt wird, ist die vorliegende Erfindung keineswegs darauf beschränkt. Der in diesem Bereich bekannte Flash-Speicher kann genauso als der wiederbeschreibbare nicht-flüchtige Speicher eingesetzt werden. Daneben kann der ROM-Speicher 103 mittels eines Flash-Speichers implementiert werden. Zusätzlich kann das Arithmetikmodul für die multiplikative Inverse, in dem der in 1 gezeigte Restklassenmultiplikator 107 eingesetzt ist, als eine einzelne zusammengefasste Einheit oder als eine Kombination von Komponenten in der Form von Software wie einem Speichermedium, das vom Prozessor gelesen werden kann, oder in der Form von Hardware implementiert werden. Das Arithmetikmodul für die multiplikative Inverse stellt unabhängig von Anwendungen für allgemeine Zwecke oder für bestimmte Zwecke eine große Bandbreite von Anwendungen sicher.
  • Wie nun der vorhergehenden Beschreibung entnommen werden kann, kann gemäß der vorliegenden Erfindung die auf der elliptischen Kurve basierende Verarbeitung zur Erzeugung digitaler Signaturen effizient umgesetzt werden, indem die Restklassenmultiplikationsarithmetik effektiv ausgenutzt wird. Deshalb hat die vorliegende Erfindung ein Verfahren und ein Gerät zur Verfügung gestellt, mit denen sich die Verarbeitung zur Erzeugung digitaler Signaturen mit einer hohen Geschwindigkeit in einem mit einem Restklassenmultiplikator ausgestatteten Gerät ausführen lässt.
  • Im Hinblick auf die obige technische Lehre sind viele Modifikationen und Variationen der vorliegenden Erfindung möglich. Es ist daher selbstverständlich, dass die Erfindung innerhalb des Bereichs der beiliegenden Patentansprüche anders als zuvor spezifisch beschrieben umgesetzt werden kann.

Claims (7)

  1. IC-Karte, aufweisend: eine Nachrichtenempfangseinrichtung zum Empfang einer Nachricht (M) von einem Eingangs-/Ausgangsanschluß (114) über eine Eingangs-/Ausgangsverbindung, eine Verarbeitungseinrichtung (102104; 106109) zur Verschlüsselung mit einem öffentlichen Schlüssel, um an der Nachricht (M) eine Verschlüsselung mittels einer elliptischen Kurve vorzunehmen, und eine Ausgabeeinrichtung zur Ausgabe des Ergebnisses der von der Verarbeitungseinrichtung zur Verschlüsselung mit einem öffentlichen Schlüssel durchgeführten Verarbeitung über die Eingangs-/Ausgangsverbindung (105) an den Eingangs-/Ausgangsanschluß (114), wobei die Verarbeitungseinrichtung zur Verschlüsselung mit einem öffentlichen Schlüssel folgendes aufweist: eine Mehrlängen-Arithmetikeinrichtung zur Berechnung von Mehrlängen-Restmultiplikationsarithmetik-Werten "ABR–1 mod n", "A2R–1 mod n" und "AR–1 mod n", wobei A und B Eingangsvariablen und/oder Zwischenwerte darstellen, die entsprechenderweise in einem ersten (CDA) und einem zweiten (CDB) Register gespeichert sind, n eine Eingangsvariable und R eine konstante positive ganze Zahl ist, wobei die Mehrlängen-Restmultiplikationsarithmetik-Werte numerische Werte in einer arithmetischen Zwischenverarbeitung sind, gekennzeichnet durch: eine Arithmetikeinrichtung für die multiplikative Inverse zum Berechnen von "k–1 mod n" für eine positive ganze Zahl k, die zu einer Primzahl n relativ prim ist, indem mit Hilfe der Mehrlängen-Arithmetikeinrichtung eine Restmultiplikations-Arithmetikoperation gemäß "k(n–2) mod n" durchgeführt wird, und einen wiederbeschreibbaren nichtflüchtigen Speicher (104), um mindestens einen der durch "2R mod p", "3R mod p", "4R mod p", "8R mod p", "2–1R mod p", "aR mod p", "R mod p", "R2 mod p", "R mod n" und "R2 mod n" gegebenen numerischen Werte vorab zu speichern, wobei R die Bedingung R > p, R > n für die Ordnung (p) des endlichen Körpers erfüllt, wenn die elliptische Kurve (Ep) auf dem endlichen Körper durch "y2 = x3 + ax + b (mod p)" gegeben ist, wobei die Mehrlängen-Arithmetikeinrichtung zur Bezugnahme auf die vorab gespeicherten numerischen Werte eingerichtet ist.
  2. IC-Karte nach Anspruch 1, wobei die Mehrlängen-Arithmetikeinrichtung von einem Co-Prozessor gebildet ist und die Konstante R ein in Abhängigkeit von der Arithmetikleistung des Co-Prozessors bestimmter Parameter ist.
  3. IC-Karte nach Anspruch 1, weiterhin aufweisend: einen wiederbeschreibbaren nichtflüchtigen Speicher (104), um Werte von Punkten entsprechend positiven ganzzahligen Vielfachen eines Basispunkts (P) auf der elliptischen Kurve zu speichern, wobei die Mehrlängen-Arithmetikeinrichtung auf die Werte der Punkte zugreifen kann.
  4. IC-Karte nach Anspruch 1, wobei die Verarbeitungseinrichtung zur Verschlüsselung mit einem öffentlichen Schlüssel außerdem folgendes aufweist: eine erste Einrichtung zur Berechnung von "kR mod n" unter Speicherung ihres Ergebnisses im ersten (CDA) und im zweiten (CDB) Register, eine zweite Einrichtung, um den Wert des ersten Registers zu quadrieren und mit R–1 zu multiplizieren, wobei ihr Ergebnis zu Modulo n im ersten Register gespeichert wird, eine dritte Einrichtung, um den Wert des ersten Registers und den des zweiten Registers zu multiplizieren und den Multiplikationswert mit R–1 zu multiplizieren, wobei ihr Ergebnis zu Modulo n im ersten Register gespeichert wird, und eine vierte Einrichtung, um durch Wiederholung der von der ersten und der zweiten Einrichtung durchgeführten Verarbeitungen "k(n–2) mod n" zu bestimmen.
  5. IC-Karte nach Anspruch 1, wobei die IC-Karte zur Erzeugung einer digitalen Signatur durch Ausführung einer Verschlüsselung mittels einer elliptischen Kurve eingerichtet ist und die Verarbeitungseinrichtung zur Verschlüsselung mit einem öffentlichen Schlüssel außerdem folgendes aufweist eine erste Einrichtung, um eine Zufallszahl Modulo n zu erzeugen, wobei n eine Ordnung darstellt, eine zweite Einrichtung für eine skalare Multiplikations- oder Additionsarithmetik, um einen einem bekannten Punkt auf einer elliptischen Kurve multipliziert mit k entsprechenden Punkt zu berechnen, und eine dritte Einrichtung, um unter Eingabe des Punkts k·P auf der elliptischen Kurve einen Wert "r = x mod n" zu bestimmen und dann unter Verwendung des bestimmten Werts r einen Wert s zu bestimmen, wobei die Werte r und s Teile einer digitalen Signatur darstellen, so daß die digital Signatur erzeugt wird.
  6. Verschlüsselungsverfahren für eine IC-Karte, mit folgenden Schritten: Empfangen einer Nachricht (M) von einem Eingangs-/Rusgangsanschluß (114) über eine Eingangs-/Ausgangsverbindung (105), Vornehmen einer Verschlüsselungsverarbeitung mittels einer elliptischen Kurve an der Nachricht (M), und Ausgeben des Ergebnisses der Verschlüsselungsverarbeitung mittels der elliptischen Kurve über die Eingangs-/Ausgangsverbindung (105) an den Eingangs-/Ausgangsanschluß (114), wobei die Verschlüsselungsverarbeitung mittels der elliptischen Kurve folgende Schritte enthält: Ausführen von Arithmetik für Multiplikation und multiplikative Inverse auf einer endlichen Gruppe unter Verwendung einer Mehrlängen-Arithmetikeinrichtung zur Berechnung von Mehrlängen-Restmultiplikationsarithmetik-Werten "ABR–1 mod n", "A2R–1 mod n" und "AR–1 mod n", wobei A und B Eingangsvariablen und/oder Zwischenwerte sind, die entsprechenderweise in einem ersten (CDA) und einem zweiten (CDB) Register gespeichert sind, n eine Eingangsvariable und R eine konstante positive ganze Zahl sind, wobei die Mehrlängen-Restmultiplikationsarithmetik-Werte numerische Werte in einer arithmetischen Zwischenverarbeitung sind, sowie unter Verwendung einer Arithmetikeinrichtung für die multiplikative Inverse zur Berechnung der arithmetischen multiplikativen Inversen "k–1 mod n" für eine positive ganze Zahl k, die zu einer Primzahl n relativ prim ist, indem mit Hilfe der Mehrlängen-Arithmetikeinrichtung eine durch "k(n–2) mod n" dargestellte Restmultiplikations-Arithmetikoperation ausgeführt wird, wobei die Mehrlängen-Arithmetikeinrichtung auf mindestens einen der durch "2R mod p", "3R mod p", "4R mod p", "8R mod p", "2–1R mod p", "aR mod p", "R mod p", "R2 mod p", "R mod n" und "R2 mod n" gegebenen numerischen Werte Bezug nimmt, der vorab in einem wiederbeschreibbaren nichtflüchtigen Speicher (104) gespeichert ist, wobei R die Bedingung R > p, R > n für die Ordnung (p) eines endlichen Körpers erfüllt, wenn die elliptische Kurve (Ep) auf dem endlichen Körper durch "y2 = x3 + ax + b (mod p)" gegeben ist.
  7. Auf einem Aufzeichnungsmedium gespeichertes Programm zur Ausführung eines Verschlüsselungsprozesses für eine IC-Karte, mit Befehlsschritten zur Ausführung eines Verfahrens nach Anspruch 6.
DE69930334T 1998-01-28 1999-01-26 IC-Karte ausgerüstet mit einer Verarbeitungsanlage für Elliptische-Kurven-Verschlüsselung Expired - Fee Related DE69930334T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP1537698 1998-01-28
JP1537698 1998-01-28

Publications (2)

Publication Number Publication Date
DE69930334D1 DE69930334D1 (de) 2006-05-11
DE69930334T2 true DE69930334T2 (de) 2006-11-09

Family

ID=11887066

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69930334T Expired - Fee Related DE69930334T2 (de) 1998-01-28 1999-01-26 IC-Karte ausgerüstet mit einer Verarbeitungsanlage für Elliptische-Kurven-Verschlüsselung

Country Status (3)

Country Link
US (2) US6466668B1 (de)
EP (1) EP0933695B1 (de)
DE (1) DE69930334T2 (de)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6466668B1 (en) * 1998-01-28 2002-10-15 Hitachi, Ltd. IC card equipped with elliptical curve encryption processing facility
FR2791496B1 (fr) * 1999-03-26 2001-10-19 Gemplus Card Int Procedes de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de crytographie a cle publique de type courbe elliptique
FR2801751B1 (fr) * 1999-11-30 2002-01-18 St Microelectronics Sa Composant electronique de securite
US7103769B1 (en) * 2000-03-03 2006-09-05 Koninklijke Philips Electronics N.V. IEEE 1394 link layer chip with “5C” authentication and key exchange accelerator
JP2001339383A (ja) * 2000-05-29 2001-12-07 Hitachi Ltd 認証通信用半導体装置
JP2002149396A (ja) * 2000-11-07 2002-05-24 Hitachi Ltd データプロセッサ、半導体集積回路及びcpu
FR2820905B1 (fr) 2001-02-09 2005-02-18 Gemplus Card Int Dispositif et procede de traitement de valeurs numeriques, notamment sous forme non-adjacente
US6763366B2 (en) * 2001-05-17 2004-07-13 Matsushita Electric Industrial Co., Ltd. Method for calculating arithmetic inverse over finite fields for use in cryptography
US7372960B2 (en) * 2001-12-31 2008-05-13 Certicom Corp. Method and apparatus for performing finite field calculations
JP4034585B2 (ja) * 2002-01-28 2008-01-16 松下電器産業株式会社 楕円曲線演算装置及び楕円曲線演算方法
JP2005141160A (ja) * 2003-11-10 2005-06-02 Japan Science & Technology Agency セキュア・プロセッサ
FR2862454A1 (fr) * 2003-11-18 2005-05-20 Atmel Corp Methode de reduction modulaire aleatoire et equipement associe
US7961874B2 (en) * 2004-03-03 2011-06-14 King Fahd University Of Petroleum & Minerals XZ-elliptic curve cryptography with secret key embedding
US7961873B2 (en) * 2004-03-03 2011-06-14 King Fahd University Of Petroleum And Minerals Password protocols using XZ-elliptic curve cryptography
US7702105B1 (en) * 2004-04-23 2010-04-20 Oracle America, Inc. Accelerating elliptic curve point multiplication through batched inversions
FR2880149B1 (fr) * 2004-12-23 2007-03-30 Oberthur Card Syst Sa Procede de traitement de donnees et dispositif associe
US7607019B2 (en) * 2005-02-03 2009-10-20 Apple Inc. Small memory footprint fast elliptic encryption
US8467535B2 (en) * 2005-01-18 2013-06-18 Certicom Corp. Accelerated verification of digital signatures and public keys
JP5068176B2 (ja) * 2005-01-18 2012-11-07 サーティコム コーポレーション デジタル署名と公開鍵の促進された検証
JP5147412B2 (ja) 2005-01-21 2013-02-20 サーティコム コーポレーション 楕円曲線乱数生成
EP1865481A1 (de) * 2005-03-31 2007-12-12 Matsushita Electric Industrial Co., Ltd. Datenverschlüsselungseinrichtung und datenverschlüsselungsverfahren
FR2885711B1 (fr) * 2005-05-12 2007-07-06 Atmel Corp Procede et materiel modulaire et aleatoire pour la reduction polynomiale
CA2542556C (en) 2005-06-03 2014-09-16 Tata Consultancy Services Limited An authentication system executing an elliptic curve digital signature cryptographic process
US7587047B2 (en) * 2005-06-22 2009-09-08 Apple Inc. Chaos generator for accumulation of stream entropy
EP1946205B1 (de) 2005-10-18 2010-04-14 Telecom Italia S.p.A. Verfahren zur skalarmultiplikation in gruppen elliptischer kurven über primkörpern für nebenkanal-attacken-beständige kryptosysteme
WO2007048430A1 (en) * 2005-10-28 2007-05-03 Telecom Italia S.P.A. A method for scalar multiplication in elliptic curve groups over binary polynomial fields for side-channel attack-resistant cryptosystems
DE102006014353B4 (de) * 2006-03-28 2007-11-22 Siemens Ag Verfahren zum sicheren Ermitteln von Daten
RU2471300C2 (ru) * 2007-02-27 2012-12-27 Томсон Лайсенсинг Способ и устройство генерации сжатого rsa модуля
US8372744B2 (en) * 2007-04-20 2013-02-12 International Business Machines Corporation Fabricating a contact rhodium structure by electroplating and electroplating composition
CN101072099B (zh) * 2007-06-22 2010-06-16 苏盛辉 一种基于非均匀超递增序列的公钥加密方法
US7991162B2 (en) * 2007-09-14 2011-08-02 University Of Ottawa Accelerating scalar multiplication on elliptic curve cryptosystems over prime fields
GB2473981B (en) * 2009-03-25 2012-02-22 Caitin Inc Thermodynamic cycle for cooling a working fluid
IT1401937B1 (it) * 2010-09-16 2013-08-28 St Microelectronics Srl Metodo di generazione di una firma digitale
JP5849962B2 (ja) * 2010-10-29 2016-02-03 日本電気株式会社 署名処理装置
US20120140921A1 (en) * 2010-12-01 2012-06-07 King Fahd University Of Petroleum And Minerals Rsa-analogous xz-elliptic curve cryptography system and method
US9385871B2 (en) 2011-05-23 2016-07-05 Samsung Electronics Co., Ltd Method and apparatus for authenticating a non-volatile memory device
US8745376B2 (en) 2011-10-14 2014-06-03 Certicom Corp. Verifying implicit certificates and digital signatures
US9590805B1 (en) * 2014-12-23 2017-03-07 EMC IP Holding Company LLC Ladder-based cryptographic techniques using pre-computed points

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5271061A (en) * 1991-09-17 1993-12-14 Next Computer, Inc. Method and apparatus for public key exchange in a cryptographic system
AU677269B2 (en) * 1992-12-22 1997-04-17 Telstra Corporation Limited A cryptographic method
WO1996004602A1 (en) * 1994-07-29 1996-02-15 Certicom Corp. Elliptic curve encryption systems
FR2726668B1 (fr) * 1994-11-08 1997-01-10 Sgs Thomson Microelectronics Procede de mise en oeuvre de reduction modulaire selon la methode de montgomery
FR2743645B1 (fr) * 1996-01-15 1998-02-27 Sgs Thomson Microelectronics Dispositif ameliorant la vitesse de traitement d'un coprocesseur d'arithmetique modulaire
FR2743907B1 (fr) * 1996-01-18 1998-02-27 Sgs Thomson Microelectronics Procede de production d'un parametre de correction d'erreur associe a la mise en oeuvre d'operation modulaire selon la methode de montgomery
JP3525209B2 (ja) 1996-04-05 2004-05-10 株式会社 沖マイクロデザイン べき乗剰余演算回路及びべき乗剰余演算システム及びべき乗剰余演算のための演算方法
US5999626A (en) * 1996-04-16 1999-12-07 Certicom Corp. Digital signatures on a smartcard
US5793659A (en) * 1996-10-15 1998-08-11 United Microelectronics Corporation Method of modular reduction and modular reduction circuit
US6088453A (en) * 1997-01-27 2000-07-11 Kabushiki Kaisha Toshiba Scheme for computing Montgomery division and Montgomery inverse realizing fast implementation
US6038581A (en) * 1997-01-29 2000-03-14 Nippon Telegraph And Telephone Corporation Scheme for arithmetic operations in finite field and group operations over elliptic curves realizing improved computational speed
GB2321741B (en) * 1997-02-03 2000-10-04 Certicom Corp Data card verification system
US6466668B1 (en) * 1998-01-28 2002-10-15 Hitachi, Ltd. IC card equipped with elliptical curve encryption processing facility
FR2774783B1 (fr) * 1998-02-09 2000-04-14 Sgs Thomson Microelectronics Procede de mise en oeuvre d'une operation modulaire elementaire selon la methode de montgomery

Also Published As

Publication number Publication date
EP0933695A3 (de) 2001-12-12
EP0933695B1 (de) 2006-03-15
DE69930334D1 (de) 2006-05-11
EP0933695A2 (de) 1999-08-04
US20030021410A1 (en) 2003-01-30
US6714648B2 (en) 2004-03-30
US6466668B1 (en) 2002-10-15

Similar Documents

Publication Publication Date Title
DE69930334T2 (de) IC-Karte ausgerüstet mit einer Verarbeitungsanlage für Elliptische-Kurven-Verschlüsselung
DE69917592T2 (de) Gegen stromverbrauchsignaturanfall beständige kryptographie
DE112008000668B4 (de) Kryptografisches Verfahren und System
DE60121066T2 (de) Angriffsresistente kryptographische Verfahren und Vorrichtung
DE69828150T2 (de) Vom Rechenaufwand her effizientes modulares Multiplikationsverfahren und Gerät
DE60125710T2 (de) Manipulationssichere Methode zur modularen Multiplikation
DE69826963T2 (de) Gerät für die modulare Inversion zur Sicherung von Information
EP1922837B1 (de) Verfahren zum sicheren ver- oder entschlüsseln einer nachricht
EP1891512B1 (de) Bestimmung einer modularen inversen
DE102010001289B4 (de) Vorrichtung zum Berechnen eines Ergebnisses einer Skalarmultiplikation
DE102020102453A1 (de) Integrierte Schaltung zum modularen Multiplizieren von zwei ganzen Zahlen für ein kryptographisches Verfahren und Verfahren zur kryptographischen Verarbeitung von Daten basierend auf modularer Multiplikation
DE10024325B4 (de) Kryptographisches Verfahren und kryptographische Vorrichtung
DE69837036T2 (de) Verfahren und vorrichtung zur ausführung einer entschlüsselung mittels einer standardisierten modularen potenzierung zum vereiteln eines zeitangriffs
DE60117813T2 (de) Verfahren und Vorrichtung zur Speicherung und wiedergewinnung eones Privaten Kryptoschlüssels
DE69924912T2 (de) Verschlüsselungsverfahren und Vorrichtung unter Verwendung einer elliptischen Kurve
DE10141460A1 (de) Potenzrestberechnungseinheit unter Verwendung eines Montgomery-Algorithmus
DE60217131T2 (de) Universelles berechnungsverfahren für punkte auf einer elliptischen kurve
DE10219158B4 (de) Vorrichtung und Verfahren zum Berechnen eines Ergebnisses einer modularen Multiplikation
EP2641241B1 (de) Verfahren zur langzahldivision oder modulare reduktion
DE60022770T2 (de) Gegenmassnahme in einem elektronischen baustein zur ausführung eines kryptoalgorithmus mit öffentlichem schlüssel vom rsa-typ
DE10151129B4 (de) Verfahren und Vorrichtung zum Berechnen eines Ergebnisses einer Exponentiation in einer Kryptographieschaltung
EP1478999B1 (de) Vorrichtung und verfahren zum umrechnen eines terms
DE10042234C2 (de) Verfahren und Vorrichtung zum Durchführen einer modularen Exponentiation in einem kryptographischen Prozessor
DE102008050800B4 (de) Vorrichtung und Verfahren zum Bestimmen einer modularen multiplikativen Inversen
EP2128754B1 (de) Sichere sliding window exponentiation

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee