DE60223775T2 - Vorrichtung zum Konvertieren einer elliptischen Kurve - Google Patents

Vorrichtung zum Konvertieren einer elliptischen Kurve Download PDF

Info

Publication number
DE60223775T2
DE60223775T2 DE60223775T DE60223775T DE60223775T2 DE 60223775 T2 DE60223775 T2 DE 60223775T2 DE 60223775 T DE60223775 T DE 60223775T DE 60223775 T DE60223775 T DE 60223775T DE 60223775 T2 DE60223775 T2 DE 60223775T2
Authority
DE
Germany
Prior art keywords
elliptic curve
elliptic
curve
equation
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60223775T
Other languages
English (en)
Other versions
DE60223775D1 (de
Inventor
Yuichi Osaka-shi Futa
Motoji Hirakata-shi Ohmori
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.)
Panasonic Corp
Original Assignee
Matsushita Electric Industrial 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Publication of DE60223775D1 publication Critical patent/DE60223775D1/de
Application granted granted Critical
Publication of DE60223775T2 publication Critical patent/DE60223775T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

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

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)
  • Image Generation (AREA)
  • Image Processing (AREA)

Description

  • HINTERGRUND DER ERFINDUNG
  • 1. Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft die Verschlüsselungstechnologie als Informationssicherheitstechnologie und insbesondere die Geheimkommunikationstechnologie, die Digitalsignaturtechnologie und die Technologie der gemeinsamen Verwendung von Schlüsseln unter Verwendung einer elliptischen Kurve.
  • 2. Beschreibung des Standes der Technik
  • 1. Verschlüsselung mit öffentlichen Schlüsseln
  • In letzter Zeit hat die Datenübertragung aufgrund der Computer-Technologie und der Kommunikationstechnologie weite Verbreitung gefunden, und bei dieser Datenübertragung wird ein Geheimkommunikationsmodus oder ein Digitalsignaturmodus verwendet. Hierbei ist der Geheimkommunikationsmodus ein Modus zum Kommunizieren, ohne den Kommunikationsinhalt an eine andere Person als den festgelegten Kommunikationsteilnehmer preiszugeben. Und der Digitalsignaturmodus ist ein Modus, der dem anderen Kommunikationsteilnehmer die Richtigkeit des Kommunikationsinhalts zeigt und die Identität des Absenders bestätigt.
  • Bei diesem Geheimkommunikationsmodus oder Digitalsignaturmodus wird ein Verschlüsselungsmodus verwendet, der als Verschlüsselung mit öffentlichen Schlüsseln bezeichnet wird. Die Verschlüsselung mit öffentlichen Schlüsseln ist ein Modus zum einfachen Verwalten von Verschlüsselungschlüsseln, die für jeden der anderen Kommunikationsteilnehmer unterschiedlich sind, wenn die anderen Kommunikationsteilnehmer zahlreich sind, und sie ist eine unentbehrliche grundlegende Technologie zum Kommunizieren mit den zahlreichen anderen Kommunikationsteilnehmern. Bei der Geheimkommunikation unter Verwendung der Verschlüsselung mit öffentlichen Schlüsseln sind der Verschlüsselungschlüssel und der Entschlüsselungsschlüssel unterschiedlich, und der Entschlüsselungsschlüssel ist geheim, während der Verschlüsselungschlüssel öffentlich ist.
  • Als Grundlage der Sicherheit bei dieser Verschlüsselung mit öffentlichen Schlüsseln wird das Diskreter-Logarithmus-Problem verwendet. Typisch für das Diskreter-Logarithmus-Problem sind das, was in einem finiten Feld definiert ist, und das, was auf einer elliptischen Kurve definiert ist. Das Diskreter-Logarithmus-Problem wird in „A Course in Number Theory and Cryptography" („Ein Kurs in Zahlentheorie und Kryptographie") von Neal Koblitz, Springer-Verlag, 1987, näher beschrieben.
  • 2. Das Diskreter-Logarithmus-Problem auf einer elliptischen Kurve
  • Nachstehend wird das Diskreter-Logarithmus-Problem auf einer elliptischen Kurve beschrieben. Das Diskreter-Logarithmus-Problem auf einer elliptischen Kurve ist eine elliptische Kurve, die E (GF(p)) in einem finiten Feld GF(p) definiert, und wenn die elliptische Kurve E durch eine große Primzahl teilbar ist, ist das in der elliptischen Kurve enthaltene Element G ein Basispunkt. In diesem Fall geht es darum, eine Ganzzahl x zu ermitteln, wenn diese Ganzzahl x, die Y = x*G (Gleichung 1) für ein in der elliptischen Kurve enthaltenes gegebenes Element Y erfüllt, vorhanden ist.
  • Hier ist p eine Primzahl, und GF(p) ist ein finites Feld, das p Elemente hat. In dieser Patentbeschreibung gibt das Symbol * eine Berechnung zum mehrfachen Addieren eines in der elliptischen Kurve enthaltenen Elements an (x*G), wie die nachstehende Gleichung zeigt, was bedeutet, dass das Element G x-mal addiert wird: x*G = G + G + G + ... + G
  • Der Grund dafür, dass das Diskreter-Logarithmus-Problem zu einer Prämisse für die Sicherheit der Verschlüsselung mit öffentlichen Schlüsseln wird, ist, dass das vorgenannte Problem für das finite Feld, das zahlreiche Elemente hat, extrem schwierig ist.
  • 3. ElGamal-Signatur, die das Diskreter-Logarithmus-Problem auf der elliptischen Kurve verwendet
  • Nachstehend wird der Digitalsignaturmodus mit der ElGamal-Signatur, die das Diskreter-Logarithmus-Problem auf der elliptischen Kurve verwendet, anhand von 1 erläutert. Diese Figur ist ein Folgediagramm, das das Verfahren des Digitalsignaturmodus mit der vorgenannten ElGamal-Signatur zeigt. Ein Teilnehmer A 11, ein Verwaltungszentrum 12 und ein Teilnehmer B 13 sind durch ein Netzwerk verbunden. Nehmen wir an, dass p eine Primzahl ist und E eine elliptische Kurve ist, die in einem finiten Feld GF(p) definiert ist. G sei ein Basispunkt von E, und q sei die Ordnung von E. Mit anderen Worten, q ist die kleinste positive Ganzzahl, die q*G = 0 (Gleichung 2) erfüllt.
  • Der Punkt (∞,∞), bei dem die x-Koordinate und die y-Koordinate ∞ sind, wird als unendlicher Punkt bezeichnet und durch 0 dargestellt. Wenn die elliptische Kurve als Gruppe angesehen wird, führt diese 0 eine „Nullelement"-Funktion aus.
  • (1) Erzeugung von öffentlichen Schlüsseln mit dem Verwaltungszentrum 12
  • Das Verwaltungszentrum 12 erzeugt einen öffentlichen Schlüssel YA des Teilnehmers A 11 unter Verwendung eines vorher mitgeteilten geheimen Schlüssels xA des Teilnehmers A 11 nach Gleichung 3 (Schritt S141–S142): YA = xA*G (3).
  • Anschließend veröffentlicht das Verwaltungszentrum 12 die Primzahl p, die elliptische Kurve E und den Basispunkt G als Systemparameter und teilt einem anderen Teilnehmer B 13 den öffentlichen Schlüssel YA des Teilnehmers A 11 mit (Schritt S143–S144).
  • (2) Erzeugung der Signatur durch den Teilnehmer A 11
  • Der Teilnehmer A 11 erzeugt eine Zufallszahl k (Schritt S145). Dann berechnet der Teilnehmer A 11 R1 = (rx,ry) = k*G (Gleichung 4) (Schritt S146) und berechnet s aus s·k = m + rx·xA (mod q) (Gleichung 5). Hier ist m eine Nachricht, die der Teilnehmer A 11 an den Teilnehmer B 13 sendet. Außerdem sendet der Teilnehmer A 11 das erhaltene (R1,s) als Signatur mit der Nachricht m an den Teilnehmer B 13 (Schritt S148).
  • (3) Verifikation der Signatur durch den Teilnehmer B 13
  • Der Teilnehmer B 13 bestätigt die Identität des Teilnehmers A 11 durch Beurteilen, ob s*R1 = m*G + rx*YA (Gleichung 6) erfüllt wird oder nicht (Schritt S149). Das ist klar, da s*R1 = {((m + rx·xA)/k)·k}*G = (m + rx·xA)*G = m*G + (rx·XA)*G = m*G + rx*YA (Gleichung 7)erfüllt wird.
  • 4. Addition von Punkten auf der elliptischen Kurve und Rechenumfang bei Doppelmultiplikation
  • Bei der Erzeugung des öffentlichen Schlüssels, der Erzeugung der Signatur und der Verifikation der Signatur in dem Digitalsignaturmodus mit der vorgenannten ElGamal-Signatur, die das Diskreter-Logarithmus-Problem auf der elliptischen Kurve verwendet, wird jeweils die Berechnung der Skalarmultiplikation von Punkten auf der elliptischen Kurve durchgeführt. Beispielsweise sind „xA*G" in Gleichung 3, „k*G" in Gleichung 4 und „s*R1", „m*G" und „rx*YA" in Gleichung 6 die Berechnungen für die Skalarmultiplikation der Punkte auf der elliptischen Kurve.
  • Die Berechnungsformel der elliptischen Kurve wird näher erläutert in „Efficient Elliptic Curve Exponentiation" („Effiziente Potenzierung bei elliptischen Kurven") von Miyaji, Ono und Cohen, in: „Advances in Cryptology" („Fortschritte in der Kryptologie"), Proceedings of ICICS, 1997, Lecture Notes in Computer Science, 1997, Springer-Verlag, S. 282–290.
  • Nachstehend wird die Berechnungsformel für die elliptische Kurve erläutert. Die Gleichung der elliptischen Kurve sei y2 = x3 + a·x + b, die Koordinaten eines gegebenen Punkts P seien (x1,y1), und die Koordinaten eines gegebenen Punkts Q seien (x2,y2). Die Koordinaten eines durch R = P + Q definierten Punkts seien hier (x3,y3).
  • Wenn P ≠ R, wird R = P + Q zur Additionsberechnung. Die Formeln für die Addition lauten wie folgt: x3 = {(y2 – y2)/(x2 – x1)}2 – x1 – x2 y3 = {(y2 – y1)/(x2 – x1)}(x1 – x3) – y1
  • Wenn P = Q, wird R = P + Q = P + P = 2·P erfüllt, und R = P + Q wird zur Doppelmultiplikation. Die Koordinaten eines durch R = P + Q definierten Punkts seien hier (x3,y3).
  • Wenn P ≠ R, wird R = P + Q zur Additionsberechnung. Die Formeln für die Doppelmultiplikation lauten wie folgt: x3 = {(3x1 2 + a)/2y1}2 – 2x1 y3 = {(3x1 2 + a)/2y1)(x1 – x3) – y1
  • Die vorgenannte Berechnung ist eine Berechnung in dem finiten Feld, in dem die elliptische Kurve definiert ist. Wenn, wie vorstehend dargelegt, bei zweigliedrigen Koordinaten oder affinen Koordinaten, also den Koordinaten, die bisher genannt worden sind, die Additionsberechnung durchgeführt wird, erfordert jede einzelne Addition auf der elliptischen Kurve eine Kehrzahl-Berechnung. In der Regel erfordert eine Kehrzahl-Berechnung etwa den 10-fachen Rechenumfang einer Multiplikation in einem finiten Feld.
  • Um den Rechenumfang zu verringern, werden dreigliedrige Koordinaten verwendet, die als Projektionskoordinaten bezeichnet werden. Projektionskoordinaten sind Koordinaten mit drei Termen X, Y, Z. Für die Koordinate (X,Y,Z) und die Koordinate (X',Y',Z') gibt es eine gegebene Anzahl n, und es gelten die Beziehungen X' = nX, Y' = nY, Z' = nZ und (X,Y,Z) = (X',Y',Z'). Eine affine Koordinate (x,y) und eine Projektionskoordinate (X,Y,Z) entsprechen einander in folgender Beziehung: (x,y) → (x,y,1) (X,Y,Z) → (X/Y,Y/Z) (wenn Z ≠ 0).
  • Hier wird das Symbol → in der folgenden Bedeutung verwendet: Wenn ein gegebenes Element einer Menge S1 einem Element einer Menge S2 entspricht, wird die Beziehung durch S1 → S2 angegeben.
  • Nachstehend erfolgen alle Berechnungen der elliptischen Kurve in den Projektionskoordinaten. Nun werden die Additionsformeln und die Doppelmultiplikationsformeln für die Projektionskoordinaten erläutert. Diese Formeln stimmen natürlich mit den Additionsformeln und den Doppelmultiplikationsformeln bei den affinen Koordinaten überein. Die Skalarmultiplikationsberechnung wird durch wiederholte Additions- und Doppelmultiplikationsberechnung auf der elliptischen Kurve realisiert. Bei diesen Skalarmultiplikationsberechnungen hängt der Rechenumfang für die Addition nicht von den Parametern der elliptischen Kurve ab, aber der Rechenumfang für die Doppelmultiplikation hängt von den Parametern der elliptischen Kurve ab.
  • Nehmen wir hier an, dass p eine Primzahl mit 160 Bit ist und die elliptische Kurve E die Kurve y2 = x3 + ax + b ist, und wenn die Elemente P, Q auf der elliptischen Kurve mit P = (X1,Y1,Z1) und Q = (X2,Y2,Z2) angegeben werden, wird R = (X3,Y3,Z3) = P + Q wie folgt erhalten: (I) Wenn P ≠ Q ist:
  • In diesem Fall ist es eine Additionsberechnung.
  • Schritt 1-1: Berechnung eines Zwischenwerts
  • Es werden folgende Gleichungen berechnet: U1 = X1·Z2 2 (Gleichung 8) U2 = X2·Z1 2 (Gleichung 9) S1 = Y1·Z2 3 (Gleichung 10) S2 = Y2·Z1 3 (Gleichung 11) H = U2 – U1 (Gleichung 12) r = S2 – S1 (Gleichung 13)
  • Schritt 1-2: Berechnung von R = (X3,Y3,Z3)
  • Es werden folgende Gleichungen berechnet: X3 = –H3 – 2·U1·H2 + r2 (Gleichung 14) Y3 = –S1 – H3 + r(U1·H2 – X3) (Gleichung 15) Z3 = Z1·Z2·H (Gleichung 16)(II) Wenn P = Q ist (also R = 2P):
  • In diesem Fall ist es eine Doppelmultiplikationsberechnung.
  • Schritt 2-1: Berechnung eines Zwischenwerts
  • Es werden folgende Gleichungen berechnet: S = 4·X1·Y1 2 (Gleichung 17) M = 3·X1 2 + a·Z1 4 (Gleichung 18) T = –2·S + M2 (Gleichung 19
  • Schritt 2-2: Berechnung von R = (X3,Y3,Z3)
  • Es werden folgende Gleichungen berechnet: X3 = T (Gleichung 20) Y3 = –8·Y1 4 + M(S – T) (Gleichung 21) Z3 = 2·Y1·Z1 (Gleichung 22)
  • Nachstehend wird der Rechenumfang für die Addition und die Doppelmultiplikation der elliptischen Kurve erläutert. Hier wird der Rechenumfang für eine Multiplikation mit 1 Mul angegeben, und der Rechenumfang für eine Parabelmultiplikation wird mit 1 Sq angegeben. Bei einem normalen Mikroprozessor ist 1 Sq ≈ 0,8 Mul.
  • Bei den vorstehenden Beispielen wird der Rechenumfang für die Addition auf der elliptischen Kurve für P ≠ Q durch Zählen der Anzahl der Multiplikationen und der Parabelmultiplikationen in den Gleichungen 8–16 ermittelt und beträgt 12 Mul + 4 Sq. Das geht daraus hervor, dass der Rechenumfang für die Addition in den Gleichungen 8, 9, 10, 11, 14, 15 und 16 1 Mul + 1 Sq, 1 Mul + 1 Sq, 2 Mul, 2 Mul, 2 Mul + 2 Sq, 2 Mul bzw. 2 Mul beträgt.
  • Bei den vorstehenden Beispielen wird der Rechenumfang für die Doppelmultiplikation auf der elliptischen Kurve für P = Q durch Zählen der Anzahl der Multiplikationen und der Parabelmultiplikationen in den Gleichungen 17–22 ermittelt und beträgt 4 Mul + 6 Sq. Das geht daraus hervor, dass der Rechenumfang für die Parabelmultiplikation in den Gleichungen 17, 18, 19, 21 und 22 1 Mul + 1 Sq, 1 Mul + 3 Sq, 1 Sq, 1 Mul + 1 Sq bzw. 1 Mul beträgt.
  • Da bei dem vorstehenden Zählen der Anzahl beispielsweise in Gleichung 14 H3 in H3 = H2·H aufgegliedert werden kann, ist der Rechenumfang für H3 wahrscheinlich 1 Mul + 1 Sq, und da in Gleichung 18 Z1 4 in Z1 4 = (Z1 2)2 aufgegliedert werden kann, ist der Rechenumfang für Z1 4 wahrscheinlich 2 Sq.
  • Da für Gleichung 14 H2 in dem vorstehenden Prozess des Berechnens von H3 berechnet wird, wird der Rechenumfang für H2 nicht noch einmal ermittelt. Beim Zählen der Anzahl von Multiplikationen wird nicht die Anzahl von Multiplikationen gezählt, die durch Multiplizieren eines bestimmten Werts mit einem kleinen Wert durchgeführt werden. Das hat folgenden Grund. Die hier erwähnten niedrigen Werte sind in den Gleichungen 8–22 die niedrigen Festwerte, die Gegenstände der Multiplikation sind, und sind insbesondere Werte wie 2, 3, 4, 8 und so weiter. Diese Werte können durch einen Binärwert aus maximal 4 Bit angegeben werden. Die anderen Variablen haben normalerweise einen Wert von 160 Bit.
  • Im Allgemeinen wird in einem Mikroprozessor eine Multiplikation eines Multiplikanden mit einem Multiplikator durch Wiederholung der Verschiebung des Multiplikanden und der Addition durchgeführt. Mit anderen Worten, für jedes Bit des durch einen Binärwert dargestellten Multiplikators wird, wenn dieses Bit 1 ist, durch Verschiebung des Multiplikanden eine Bit-Zeichenkette erhalten, damit das durch einen Binärwert dargestellte niedrigstwertige Bit des Multiplikanden mit der Position übereinstimmt, an der sich dieses Bit befindet. Für alle Bits des Multiplikators werden alle Bits des mindestens einen Bits der auf diese Weise erhaltenen Zeichenkette addiert.
  • Beispielsweise bei der Multiplikation eines Multiplikanden von 160 Bit und eines Multiplikators von 160 Bit wird der Multiplikand von 160 Bit 160-mal verschoben, es werden 160 Bit-Zeichenketten erhalten, und die erhaltenen 160 Bit-Zeichenketten werden addiert. Hingegen wird bei der Multiplikation eines Multiplikanden von 160 Bit und eines Multiplikators von 4 Bit der Multiplikand von 160 Bit 4-mal verschoben, es werden 4 Bit-Zeichenketten erhalten, und die erhaltenen 4 Bit-Zeichenketten werden addiert.
  • Da die Multiplikation in der vorstehenden Weise durchgeführt wird, wird, wenn eine Multiplikation durch Multiplizieren eines bestimmten Werts mit einem niedrigen Wert durchgeführt wird, die Anzahl der vorgenannten Wiederholungen klein. Dadurch kann der Rechenumfang als gering eingestuft werden, und er wird daher nicht als Anzahl der Multiplikationen gezählt. Wie vorstehend dargelegt, enthält bei Durchführung der Doppelmultiplikation der elliptischen Kurve Gleichung 18 den Parameter a der elliptischen Kurve. Wenn für diesen Parameter a beispielsweise ein kleiner Wert gewählt wird, kann der Rechenumfang für die Doppelmultiplikation auf der elliptischen Kurve um 1 Mul verringert werden und wird 3 Mul + 6 Sq. Bei der Addition ändert sich der Rechenumfang auch dann nicht, wenn der Parameter der elliptischen Kurve geändert wird.
  • 5. Auswahl einer elliptischen Kurve, die für die Verschlüsselung geeignet ist
  • Nachstehend wird das Verfahren zum Auswählen einer für die Verschlüsselung geeigneten elliptischen Kurve beschrieben. Einzelheiten siehe „IEEE P1363 Working Draft" („Arbeitsentwurf IEEE P1363"), herausgegeben vom IEEE am 06.02.1997. Eine für die Verschlüsselung geeignete elliptische Kurve wird durch Wiederholen der nachstehenden Schritte erhalten.
  • Schritt 1: Es werden beliebige Parameter a und b in dem finiten Feld GF(p) ausgewählt. Hier erfüllen a und b Gleichung 23, und p ist eine Primzahl: 4·a3 + 27·b2 ≠ 0 (mod p) Gleichung 23
  • Nehmen wir, die elliptische Kurve E ist y2 = x3 + a·x + b, wobei die gewählten Parameter a und b verwendet werden.
  • Schritt 2: Um zu beurteilen, ob es sich um eine elliptische Kurve handelt, die für die Verschlüsselung geeignet ist, wird die Anzahl der Elemente der elliptischen Kurve E, #E(GF(p)), errechnet, und wenn #E(GF(p)) durch eine große Primzahl teilbar ist (Bedingung 1) und #E(GF(p)) – (p + 1) ≠ 0, –1 (Bedingung 2) ist, wird die elliptische Kurve E gewählt.
  • Wenn, wie vorstehend dargelegt, als Parameter a der elliptischen Kurve ein niedriger Festwert gewählt wird, besteht auch dann, wenn der Rechenumfang für die Skalarmultiplikationsberechnung der elliptischen Kurve verringert wird, das Problem, dass es schwierig ist, eine sichere elliptische Kurve, die für die Verschlüsselung geeignet ist, durch vorheriges Festlegen des Parameters auszuwählen.
  • Umgekehrt ist es unter Verwendung des vorstehend beschriebenen Auswahlverfahrens für das Auswählen einer sicheren elliptischen Kurve, die für die Verschlüsselung geeignet ist, nicht immer möglich, einen niedrigen Wert als Parameter a der elliptischen Kurve auszuwählen, und daher besteht das Problem, dass der Rechenumfang nicht verringert werden kann. Somit gibt es beim Auswählen einer sicheren elliptischen Kurve, die für die Verschlüsselung geeignet ist, und beim Verringern des Rechenumfangs bei der elliptischen Kurve Probleme, die zueinander widersprüchlich und antagonistisch sind.
  • 6. Herkömmliche Elliptische-Kurven-Konvertierungsvorrichtung
  • Um die vorgenannten Probleme zu lösen, wird in dem japanischen Patent Nr. 3050313 mit dem Titel „An Elliptic Curve Converting Device, and Device and System for Utilization" („Elliptische-Kurven-Konvertierungsvorrichtung und Vorrichtung und System zur Nutzung") die nachstehend beschriebene Elliptische-Kurven-Konvertierungsvorrichtung beschrieben. Diese herkömmliche Elliptische-Kurven-Konvertierungsvorrichtung ist eine Vorrichtung, die eine eingegebene beliebige elliptische Kurve E mit der Gleichung y2 = x3 + ax + b, ohne ihre Ordnung zu ändern, in eine elliptische Kurve E mit der Gleichung y2 = x3 + ax + b mit einem niedrigen Koeffizienten a (a = –3 und dergleichen) konvertiert. Mit anderen Worten, unter Aufrechterhaltung der Sicherheit wird eine elliptische Kurve erzeugt, die den Rechenumfang weiter verringern kann.
  • Diese Vorrichtung konvertiert eine eingegebene elliptische Kurve in eine isomorphe elliptische Kurve.
  • Wie 2 zeigt, weist die Elliptische-Kurven-Konvertierungsvorrichtung eine Parameterempfangseinheit 110, eine Konvertierungskoeffizienten-Ermittlungseinheit 120, eine Konvertierte-Elliptische-Kurven-Berechnungseinheit 130 und eine Parametersendeeinheit 140 auf.
  • Die Parameterempfangseinheit 110 empfängt von externen Vorrichtungen Parameter a und b, ein Element G auf der elliptischen Kurve und eine Primzahl p. Hier ist p eine Primzahl von 160 Bit.
  • Die externen Vorrichtungen sind unter anderem eine Verschlüsselungsvorrichtung, die eine Verschlüsselung mit öffentlichen Schlüsseln verwendet, eine Entschlüsselungsvorrichtung, eine Digitalsignatur-Vorrichtung, eine Digitalsignatur-Verifikationsvorrichtung, eine Gemeinsame-Schlüsselverwendungs-Vorrichtung und dergleichen. Die externen Vorrichtungen verwenden das Diskreter-Logarithmus-Problem auf der elliptischen Kurve als Prämisse für die Sicherheit der Verschlüsselung mit öffentlichen Schlüsseln und haben die elliptische Kurve. Hier wird die elliptische Kurve E, die beliebig in dem finiten Feld GF(p) erzeugt wird, durch y2 = x3 + ax + b angegeben, und das Element G ist ein beliebiger Punkt auf der elliptischen Kurve und wird durch G = (x0,y0) angegeben.
  • Die Konvertierungskoeffizienten-Ermittlungseinheit 120 hat eine Funktion T(i). Wenn i = 0, 1, 2, 3, 4 ist, hat die Funktion T(i) den Wert –3, 1, –1, 2 bzw. –2. Und wenn i = 5, 6, 7, 8, 9, 10, 11 ... ist, hat die Funktion T(i) den Wert 3, 4, –4, 5, –5, 6, –6, ...
  • Die Konvertierungskoeffizienten-Ermittlungseinheit 120 berechnet einen Konvertierungskoeffizienten t, der mit i = 0 beginnt, erhöht den Wert von i nacheinander, erfüllt die folgenden Gleichungen: –231 + 1 ≤ T(i) ≤ 231 – 1 (Gleichung 24)und T(i) = t4·a (mod p) (Gleichung 25)und ist ein Element in dem finiten Feld GF(p).
  • Hier gibt Gleichung 24 an, dass T(i) einen Wert annimmt, der kleiner als 32 Bit ist. Und wenn i = 0 ist, hat die Funktion T(i) den Wert –3, und die Konvertierungskoeffizienten-Ermittlungseinheit 120 referenziert den Wert der Funktion T(i) beginnend ab i = 0 und addiert die Werte von i nacheinander, und daher wird zu Beginn der Wert –3 referenziert.
  • Außerdem hat die Funktion T(i) außer dem Wert –3 bei i = 0 aufeinanderfolgende Werte von einem niedrigen Absolutwert zu einem hohen Absolutwert, und daher kann die Funktion T(i) der Reihe nach von einem niedrigen Absolutwert ausgehend referenziert werden.
  • Die Konvertierte-Elliptische-Kurven-Berechnungseinheit 130 berechnet Parameter a' und b' einer konvertierten elliptischen Kurve Et mit der Gleichung y'2 = x'3 + a'·x' + b', die in dem finiten Feld GF(p) erzeugt wird, jeweils wie folgt: a' = a·t4 (Gleichung 26) b' = b·t6 (Gleichung 27).
  • Außerdem berechnet die Konvertierte-Elliptische-Kurven-Berechnungseinheit 130 ein dem Element G entsprechendes Element Gt = (xt 0, yt 0) auf der konvertierten elliptischen Kurve Et wie folgt: xt 0 = t2·x0 (Gleichung 28) yt 0 = t3·y0 (Gleichung 29).
  • Ein beliebiger Punkt auf der elliptischen Kurve E wird in einen Punkt auf der konvertierten elliptischen Kurve Et konvertiert, der von den Parametern a' und b' definiert wird, die in der vorstehenden Weise erzeugt werden.
  • Die Parametersendeeinheit 140 sendet die berechneten Parameter a' und b' auf der konvertierten elliptischen Kurve Et und ein Element Gt (xt 0, yt 0) an die externen Vorrichtungen.
  • Eine solche herkömmliche Elliptische-Kurven-Konvertierungsvorrichtung funktioniert wie folgt.
  • Die Parameterempfangseinheit 110 empfängt die Primzahl p, die Parameter a und b (Schritt S151) und das Element G auf der elliptischen Kurve (Schritt S152) von den externen Vorrichtungen. Dann berechnet die Konvertierungskoeffizienten-Ermittlungseinheit 120 einen Konvertierungskoeffizienten (Schritt S153), die Konvertierte-Elliptische-Kurven-Berechnungseinheit 130 berechnet die Parameter a' und b' auf der konvertierten elliptischen Kurve Et, die in dem finiten Feld GF(p) erzeugt wird, und das dem Element G entsprechende Element Gt = (xt 0, yt 0) auf der konvertierten elliptischen Kurve (Schritt S154), und die Parametersendeeinheit 140 sendet die berechneten Parameter a' und b' und das Element Gt (xt 0, yt 0) (Schritt S155).
  • Nachstehend wird die Funktionsweise der Konvertierungskoeffizienten-Ermittlungseinheit 120 näher beschrieben.
  • Die Konvertierungskoeffizienten-Ermittlungseinheit 120 legt für i den Wert 0 fest (Schritt S161). Dann entscheidet die Konvertierungskoeffizienten-Ermittlungseinheit 120 für die Funktion T(i), ob –231 + 1 ≤ T(i) ≤ 231 – 1 erfüllt wird oder nicht. Wenn die Gleichung nicht erfüllt wird (Schritt S162), beendet die Konvertierungskoeffizienten-Ermittlungseinheit 120 die Operationen. Wenn die Gleichung erfüllt wird (Schritt S162), berechnet die Konvertierungskoeffizienten-Ermittlungseinheit 120 einen Koeffizienten t, der T(i) = t4·a (mod p)ist (Schritt S163), entscheidet, ob der berechnete Koeffizient t ein Element in dem finiten Feld GF(p) ist oder nicht, und wenn er ein Element in dem finiten Feld GF(p) ist (Schritt S164), beendet die Konvertierungskoeffizienten-Ermittlungseinheit 120 die Operationen. Wenn er kein Element in dem finiten Feld GF(p) ist (Schritt S164), addiert die Konvertierungskoeffizienten-Ermittlungseinheit 120 1 zu i (Schritt S165) und führt die Steuerung wieder zum Schritt S162 zurück.
  • Nachstehend wird die Funktionsweise der Konvertierte-Elliptische-Kurven-Berechnungseinheit 130 beschrieben.
  • Die Konvertierte-Elliptische-Kurven-Berechnungseinheit 130 berechnet einen Parameter a' = a·t4 der in dem finiten Feld GF(p) erzeugten konvertierten elliptischen Kurve (Schritt S171) und einen Parameter b' = b·t6 (Schritt S172). Außerdem berechnet die Konvertierte-Elliptische-Kurven-Berechnungseinheit 130 das dem Element G entsprechende Element Gt mit xt0 = t2·x0 (Schritt S173) und yt0 = t3·y0 (Schritt S174).
  • Diese herkömmliche Elliptische-Kurven-Konvertierungsvorrichtung konvertiert eine eingegebene elliptische Kurve in eine isomorphe elliptische Kurve. Wenn im Schritt S164 T(i) = –3 ist, kann eine elliptische Kurve nur dann in eine elliptische Kurve mit der Gleichung y2 = x3 – 3x + b konvertiert werden, wenn t in Gleichung 23 ein Element von GF(p) ist.
  • Damit hier –3 = a·t4 ist, muss die vierte Wurzel von –3/a in GF(p) liegen. Da bei einem beliebigen x die Wahrscheinlichkeit, dass die Quadratwurzel von x in GF(p) liegt, 1/2 ist, ist die Wahrscheinlichkeit, dass die vierte Wurzel vorhanden ist, die Wahrscheinlichkeit, dass eine Quadratwurzel der Quadratwurzel vorhanden ist, und daher gilt: 1/2·1/2 = 1/4. Daher ist die Wahrscheinlichkeit, dass das vorgenannte t ein Element von GF(p) ist, mit 1/4 niedrig, und daher ist es nicht immer möglich, eine Konvertierung in eine elliptische Kurve mit der Gleichung y2 = x3 – 3x + b durchzuführen.
  • 7. Elliptische Montgomery-Kurve
  • Gegenstand der vorstehenden Elliptische-Kurven-Konvertierungsvorrichtung sind nur die elliptischen Kurven mit der Gleichung y2 = x3 + a·x + b. Eine elliptische Kurve dieser Art wird als elliptische Weierstraß-Kurve bezeichnet.
  • Im Gegensatz dazu wird eine elliptische Kurve mit der Gleichung B·y2 = x3 + A·x2 + x als elliptische Montgomery-Kurve bezeichnet. Bekanntlich sind bei dieser elliptischen Kurve die Addition und die Doppelmultiplikation von Punkten schnell, und der Rechenumfang beträgt 4 Mul + 2 Sq bzw. 3 Mul + 2 Sq. Wie vorstehend unter Punkt 5 erwähnt wurde, beträgt der Rechenumfang für die Addition und die Doppelmultiplikation der elliptischen Weierstraß-Kurve 12 Mul + 4 Sq bzw. 4 Mul + 6 Sq. Somit ist die elliptische Montgomery-Kurve bei der Addition und der Doppelmultiplikation der Punkte schneller. Die elliptische Montgomery-Kurve wird näher beschrieben in „Speeding the Pollard and Elliptic Curve Methods of Factorization" („Erhöhung der Geschwindigkeit des Pollard-Verfahrens und des Elliptische-Kurven-Verfahrens für die Zerlegung in Faktoren"), von P. L. Montgomery, Math. of Corp. 48, 1987, S. 243–264.
  • Bei einem Verfahren zum Erzeugen einer sicheren elliptischen Kurve kann eine sichere elliptische Kurve dadurch erzeugt werden, dass die Ordnungsberechnung durchgeführt wird und entschieden wird, ob die elliptische Kurve sicher ist oder nicht. Bei der Ordnungsberechnung ist hier die verwendete elliptische Kurve ebenfalls eine Weierstraß-Kurve. Somit ist die mit diesem Verfahren erzeugte elliptische Kurve auf die Weierstraß-Kurve begrenzt.
  • Bei einem ähnlichen Konzept der herkömmlichen Elliptische-Kurven-Konvertierungsvorrichtung ist es vorstellbar, eine elliptische Weierstraß-Kurve unter Verwendung des Isomorphismus der elliptischen Kurve in eine elliptische Montgomery-Kurve zu konvertieren. Wie beim Ermitteln einer elliptischen Kurve, die a = –3 in der herkömmlichen Elliptische-Kurven-Konvertierungsvorrichtung erfüllt, ist hier die Konvertierung nicht immer möglich. Mit anderen Worten, es gibt elliptische Weierstraß-Kurven, die nicht in elliptische Montgomery-Kurven konvertiert werden können. Wie vorstehend dargelegt, beträgt bei Verwendung des Isomorphismus laut dem Fachbericht „On the Calculation Method of the Elliptic Curve Encryption Arithmetic" („Zum Berechnungsverfahren für die Arithmetik der Verschlüsselung mit elliptischen Kurven"), von T. Izu, SCIS 1999, S. 275–280, die Wahrscheinlichkeit, dass elliptische Weierstraß-Kurven in elliptische Montgomery-Kurven konvertiert werden können, etwa 19/48, und daher besteht das Problem, dass eine Konvertierung in elliptische Montgomery-Kurven nicht immer möglich ist.
  • Wie vorstehend dargelegt, kann die herkömmliche Elliptische-Kurven-Konvertierungsvorrichtung eine eingegebene beliebige elliptische Kurve unter Aufrechterhaltung der Sicherheit in die elliptische Kurve y2 = x3 – 3x + b (elliptische Weierstraß-Kurve) konvertieren, aber es besteht das Problem, dass die Konvertierung nicht immer möglich ist. Außerdem besteht das Problem, dass die Konvertierung von der elliptischen Weierstraß-Kurve in die elliptische Montgomery-Kurve nicht immer möglich ist.
  • Die internationale Patentanmeldung WO 00/14924 beschreibt ein Elliptische-Kurven-Kryptosystem, bei dem jeder Teilnehmer seine eigene Kurve auswählt und verifiziert, dass die elliptische Kurve ausreichend sicher ist. Die Bestimmung, ob eine elliptische Kurve ausreichend sicher ist, erfolgt durch Zählen der Anzahl von Punkten auf der Kurve und durch Sicherstellen, dass diese Anzahl durch eine Primzahl mit mindestens einer festgelegten Länge teilbar ist. Zum Berechnen der Ordnung der elliptischen Kurve wird ein modulares Polynom verwendet.
  • KURZE DARSTELLUNG DER ERFINDUNG
  • Ziel dieser Erfindung ist es, eine Elliptische-Kurven-Konvertierungsvorrichtung und dergleichen bereitzustellen, die eine beliebige elliptische Kurve in eine elliptische Kurve y2 = x3 – 3x + b konvertieren kann, die den Rechenumfang unter Aufrechterhaltung der Sicherheit und mit einer extrem hohen Wahrscheinlichkeit weiter verringert.
  • Ein weiteres Ziel dieser Erfindung ist es, eine Elliptische-Kurven-Konvertierungsvorrichtung und dergleichen bereitzustellen, die eine beliebige elliptische Weierstraß-Kurve in eine elliptische Montgomery-Kurve konvertieren kann, die den Rechenumfang unter Aufrechterhaltung der Sicherheit und mit einer extrem hohen Wahrscheinlichkeit weiter verringert.
  • Um die vorgenannten Ziele zu erreichen, ist die erfindungsgemäße Elliptische-Kurven-Konvertierungsvorrichtung eine Elliptische-Kurven-Konvertierungsvorrichtung, die in den beigefügten Ansprüchen definiert ist.
  • Hier kann eine Sucheinheit die Suche nach einer elliptischen Kurve wiederholen, die eine Geschwindigkeitserhöhungsbedingung erfüllt, wenn eine Beurteilungseinheit entscheidet, dass keine elliptische Kurve ermittelt wird, die die Geschwindigkeitserhöhungsbedingung erfüllt.
  • Beispielsweise kann die Sucheinheit die Suche einer elliptischen Kurve, die die Geschwindigkeitserhöhungsbedingung erfüllt, wiederholen, wenn die Beurteilungseinheit entscheidet, dass keine elliptische Kurve ermittelt wird, die die Geschwindigkeitserhöhungsbedingung erfüllt; die Sucheinheit kann eine provisorische elliptische Kurve identifizieren, die als elliptische Kurve in Frage kommt, die die Geschwindigkeitserhöhungsbedingung erfüllt, die den Rechenumfang der Arithmetik der elliptischen Kurve in einer Gruppe von elliptischen Kurven mit einer Grad-L1-Isogenie verringert, die eine Gruppe von elliptischen Kurven ist, die die gleiche Ordnung wie die erste elliptische Kurve haben und in einer bestimmten Beziehung zu der ersten elliptischen Kurve stehen; die Beurteilungseinheit kann entscheiden, ob die von der Sucheinheit identifizierte provisorische elliptische Kurve die Geschwindigkeitserhöhungsbedingung erfüllt oder nicht; und die Sucheinheit kann in dem Fall, dass die Beurteilungseinheit entscheidet, dass die provisorische elliptische Kurve die Geschwindigkeitserhöhungsbedingung nicht erfüllt, die provisorische elliptische Kurve zu einer neuen ersten elliptischen Kurve machen und die elliptische Kurve ermitteln, die die Geschwindigkeitserhöhungsbedingung erfüllt, die den Rechenumfang der Arithmetik der elliptischen Kurve in einer Gruppe von elliptischen Kurven mit einer Grad-L1-Isogenie verringert, die eine Gruppe von elliptischen Kurven ist, die die gleiche Ordnung wird die erste elliptische Kurve haben und in einer bestimmten Beziehung zu der ersten elliptischen Kurve stehen.
  • Außerdem kann in der Gleichung y2 = x3 + a·x + b die Geschwindigkeitserhöhungsbedingung „a = –3" sein, oder die elliptische Kurve kann eine elliptische Montgomery-Kurve sein.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Diese und weitere Ziele, Vorzüge und Merkmale der Erfindung dürften aus der nachstehenden Beschreibung in Verbindung mit den beigefügten Zeichnungen hervorgehen, die spezielle Ausführungsformen der Erfindung zeigen. In den Zeichnungen sind:
  • 1 ein Folgediagramm, das das Verfahren des Digitalsignaturmodus mit der ElGamal-Signatur zeigt;
  • 2 ein Blockdiagramm, das die herkömmliche Elliptische-Kurven-Konvertierungsvorrichtung zeigt;
  • 3 ein Funktionsblockdiagramm, das den Aufbau einer Elliptische-Kurven-Konvertierungsvorrichtung nach einer ersten Ausführungsform der vorliegenden Erfindung zeigt;
  • 4 ein Ablaufdiagramm, das die Operationen der Elliptische-Kurven-Konvertierungsvorrichtung zeigt;
  • 5 die erste Hälfte eines Ablaufdiagramms, das das detaillierte Verfahren der Verarbeitung mit einer Elliptische-Kurven-Erzeugungseinheit zeigt (Schritt S201 in 4);
  • 6 die zweite Hälfte des Ablaufdiagramms, das das detaillierte Verfahren der Verarbeitung mit einer Elliptische-Kurven-Erzeugungseinheit zeigt (Schritt S201 in 4);
  • 7 ein Funktionsblockdiagramm, das den Aufbau einer Elliptische-Kurven-Konvertierungsvorrichtung nach einer zweiten Ausführungsform der vorliegenden Erfindung zeigt;
  • 8 ein Ablaufdiagramm, das die Operationen der Elliptische-Kurven-Konvertierungsvorrichtung zeigt;
  • 9 die erste Hälfte eines Ablaufdiagramms, das das detaillierte Verfahren der Verarbeitung mit einer Elliptische-Kurven-Erzeugungseinheit zeigt (Schritt S401 in 8);
  • 10 die zweite Hälfte des Ablaufdiagramms, das das detaillierte Verfahren der Verarbeitung mit einer Elliptische-Kurven-Erzeugungseinheit zeigt (Schritt S401 in 8);
  • 11A eine Darstellung, die das Ermittlungsverfahren für eine elliptische Kurve mit der herkömmlichen Elliptische-Kurven-Konvertierungsvorrichtung zeigt;
  • 11B eine Darstellung, die das Ermittlungsverfahren für eine elliptische Kurve mit der Elliptische-Kurven-Konvertierungsvorrichtung nach der ersten Ausführungsform der vorliegenden Erfindung zeigt;
  • 11C eine Darstellung, die das Ermittlungsverfahren für eine elliptische Kurve mit der Elliptische-Kurven-Konvertierungsvorrichtung nach der zweiten Ausführungsform der vorliegenden Erfindung zeigt; und
  • 12 ein Folgediagramm eines Kommunikationssystems, das ein Anwendungsbeispiel für eine erfindungsgemäße Elliptische-Kurven-Konvertierungsvorrichtung zeigt.
  • BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • Erste Ausführungsform
  • Nachstehend wird eine Elliptische-Kurven-Konvertierungsvorrichtung 200 nach der ersten Ausführungsform der vorliegenden Erfindung erläutert.
  • 3 ist ein Funktionsblockdiagramm, das den Aufbau der Elliptische-Kurven-Konvertierungsvorrichtung nach der ersten Ausführungsform der vorliegenden Erfindung zeigt. Die Elliptische-Kurven-Konvertierungsvorrichtung 200 ist eine Vorrichtung, die mit einem Programm realisiert wird, das auf einem Computer oder einer elektrischen Schaltung, wie etwa einem LSI und dergleichen, abgearbeitet wird und funktionell eine Elliptische-Kurven Erzeugungseinheit 210, eine Elliptische-Kurven-Bedingungs-Beurteilungseinheit 220 und eine Elliptische-Kurven-Ausgabeeinheit 230 aufweist. Die Elliptische-Kurven-Konvertierungsvorrichtung 200 gibt Parameter p, a und b einer elliptischen Kurve El mit der Gleichung y2 = x3 + a·x + b in einem finiten Feld GF(p) und die Ordnung mEI der elliptischen Kurve El ein und gibt einen Parameter b' der isogenen elliptischen Kurve EO mit der Gleichung y2 = x3 – 3·x + b' aus. Der Begriff „isogen" wird später erläutert. Hier gibt x·y das Produkt aus x und y an.
  • Die Elliptische-Kurven-Erzeugungseinheit 210 empfängt eine eingegebene beliebige elliptische Kurve, erzeugt eine isogene elliptische Kurve der eingegebenen elliptischen Kurve und gibt die erzeugte elliptische Kurve an die Elliptische-Kurven-Bedingungs-Beurteilungseinheit 220 und die Elliptische-Kurven-Ausgabeeinheit 230 aus. Insbesondere gibt die Elliptische-Kurven-Erzeugungseinheit 210 die Parameter p, a und b der elliptischen Kurve El mit der Gleichung y2 = x3 + a·x + b in dem finiten Feld GF(p) und die Ordnung mEl der elliptischen Kurve El ein, wählt eine isogene elliptische Kurve El2 mit der Gleichung y2 = x3 + a2·x + b2 und gibt Parameter a2 und b2 an die Elliptische-Kurven-Bedingungs-Beurteilungseinheit 220 und die Elliptische-Kurven-Ausgabeeinheit 230 aus.
  • Die Elliptische-Kurven-Bedingungs-Beurteilungseinheit 220 entscheidet, ob die von der Elliptische-Kurven-Erzeugungseinheit 210 ausgegebene elliptische Kurve dem Koeffizienten a2 = –3 entspricht oder nicht, und wenn die elliptische Kurve nicht dem Koeffizienten a2 = –3 entspricht, lässt sie durch entsprechende Mitteilung an die Elliptische-Kurven-Erzeugungseinheit 210 die Elliptische-Kurven-Erzeugungseinheit 210 eine ähnliche Verarbeitung (Erzeugung einer neuen elliptischen Kurve) mit der gerade ausgegebenen elliptischen Kurve als neu eingegebene elliptische Kurve wiederholen. Wenn hingegen die elliptische Kurve dem Koeffizienten a2 = –3 entspricht, teilt die Elliptische-Kurven-Bedingungs-Beurteilungseinheit 220 dies der Elliptische-Kurven-Ausgabeeinheit 230 entsprechend mit.
  • Wenn die Elliptische-Kurven-Ausgabeeinheit 230 eine Mitteilung von der Elliptische-Kurven-Bedingungs-Beurteilungseinheit 220 empfängt, dass die Bedingungen erfüllt sind, gibt sie die von der Elliptische-Kurven-Erzeugungseinheit 210 ausgegebene elliptische Kurve nach außen aus. Insbesondere gibt die Elliptische-Kurven-Ausgabeeinheit 230 den von der Elliptische-Kurven-Erzeugungseinheit 210 empfangenen Parameter b2 der elliptischen Kurve El2 als Parameter b' der letzten elliptischen Kurve EO mit der Gleichung y2 = x3 – 3·x + b' nach außen aus.
  • Nachstehend werden die Operationen der in der vorstehenden Weise gestalteten Elliptische-Kurven-Konvertierungsvorrichtung 200 nach der vorliegenden Ausführungsform beschrieben.
  • 4 ist ein Ablaufdiagramm, das die Operationen der Elliptische-Kurven-Konvertierungsvorrichtung 200 zeigt. Die Elliptische-Kurven-Erzeugungseinheit 210 empfängt die eingegebene beliebige elliptische Kurve (Schritt S200), erzeugt eine zu der eingegebenen elliptischen Kurve isogene elliptische Kurve (Schritt S201) und gibt die erzeugte elliptische Kurve an die Elliptische-Kurven-Bedingungs-Beurteilungseinheit 220 und die Elliptische-Kurven-Ausgabeeinheit 230 aus. Die Elliptische-Kurven-Bedingungs-Beurteilungseinheit 220 entscheidet, ob die von der Elliptische-Kurven-Erzeugungseinheit 210 ausgegebene elliptische Kurve dem Koeffizienten a2 = –3 entspricht oder nicht (Schritt S202).
  • Wenn als Ergebnis der Entscheidung die elliptische Kurve nicht dem Koeffizienten a2 = –3 entspricht („Nein” im Schritt S202), teilt die Elliptische-Kurven-Bedingungs-Beurteilungseinheit 220 dies der Elliptische-Kurven-Erzeugungseinheit 210 entsprechend mit. Die Elliptische-Kurven-Erzeugungseinheit 210, die die Mitteilung empfangen hat, wiederholt die Erzeugung einer anderen elliptischen Kurve, die zu der gerade erzeugten elliptischen Kurve isogen ist, als der einzugebenden elliptischen Kurve (Schritt S201–S202).
  • Wenn hingegen als Ergebnis der Entscheidung die elliptische Kurve dem Koeffizienten a2 = –3 entspricht („Ja” im Schritt S202), teilt die Elliptische-Kurven-Bedingungs-Beurteilungseinheit 220 dies der Elliptische-Kurven-Ausgabeeinheit 230 entsprechend mit, die dann den von der Elliptische-Kurven-Erzeugungseinheit 210 ausgegebenen Parameter b2 der elliptischen Kurve El2 als Parameter b' nach außen ausgibt (Schritt S203).
  • Die 5 und 6 sind Ablaufdiagramme, die das detaillierte Verfahren der Verarbeitung durch die Elliptische-Kurven-Erzeugungseinheit 210 zeigen (Schritt S201 in 4).
  • Die Elliptische-Kurven-Erzeugungseinheit 210 erzeugt aus der eingegebenen elliptischen Kurve El mit der Gleichung y2 = x3 + a·x + b mit dem nachstehenden Verfahren eine isogene elliptische Kurve El2 mit der Gleichung y2 = x3 + a2·x + b2:
  • Schritt S301: Ermitteln der j-Invarianten jEl der elliptischen Kurve El mittels der folgenden Gleichung: jEl = 1728·(4·a3 + 27·b2)/(4·a3)
  • Schritt S302: Setzen des Anfangswerts (2) auf eine Primzahl L.
  • Schritt S303: Auslesen eines modularen Polynoms ΦL(X,Y), das der Primzahl L entspricht.
  • Schritt S304: Lösen von ΦL(jEl,Y) = 0 mit Y als undefinierte variable Zahl in dem finiten Feld GF(p).
  • Schritt S305 (S305a, S305b): Wenn es nicht zwei oder mehr Lösungen für die Primzahl L gibt, Festlegen der nächstgrößeren Primzahl und Zurückgehen zum Schritt S303. Festlegen eines Werts für die Primzahl L, der aus der Folge von Primzahlen gewählt wird, die vorher in der Reihenfolge von einer kleinen Zahl zu einer großen Zahl gespeichert werden (2, 3, 5, 7, ...).
  • Schritt S306: Eine der vorgenannten Lösungen auswählen und mit S bezeichnen.
  • Schritt S307: Lösen von ΦL(X,S) = 0 mit X als undefinierte variable Zahl in dem finiten Feld GF(p).
  • Schritt S308: Von den vorgenannten Lösungen eine Lösung auswählen, die nicht gleich jEl ist, und mit jEl2 bezeichnen.
  • Schritt S309: Entscheiden, ob (1 – 1728/jEl2) in dem Modul p ein quadratischer Rest ist oder nicht. Wenn es ein quadratischer Rest ist, zum Schritt S310 weitergehen. Andernfalls zum Schritt S312 weitergehen.
  • Schritt 310: Quadratwurzel von (1 – 1728/jEl2) in GF(p) ermitteln und mit R bezeichnen.
  • Schritt S311: a2 mit –3 ansetzen, und b2 mit 2·R ansetzen. Zum Schritt S313 weitergehen.
  • Schritt S312: a2 und b2 mit den folgenden Gleichungen ermitteln: a2 = 3·jEl2/(1728 – jEl2) b2 = 2·jEl2/(1728 – jEl2)
  • Schritt S313: Den Punkt ermitteln, der GF(p) auf der elliptischen Kurve y2 = x3 + a2·x + b2 als Koordinaten hat, und mit PEl2 bezeichnen.
  • Schritt S314 (S314a, S314b): Entscheiden, ob mEl*PEl2 = 0 ist. Hier ist 0 das Nullelement von El2, und mEl*PEl2 ist ein Punkt, der das mEl-fache von PEl2 ist. Wenn die Gleichung erfüllt wird, a2 und b2 ausgeben und beenden. Andernfalls zum Schritt S315 weitergehen.
  • Schritt S315 (S315a, S315b): Ein Element des quadratischen Nichtrests in dem Modul p auswählen und mit c bezeichnen. Verdrillung y2 = x3 + a2'·x + b2' der elliptischen Kurve y2 = x3 + a2·x + b2 mit den folgenden Gleichungen ermitteln (die Verdrillung wird später beschrieben): a2' = C2·a2 b2' = c3·b2
  • Schritt S316: a2' und b2' als a2 und b2 ausgeben und beenden.
  • Wenn die Elliptische-Kurven-Erzeugungseinheit 210 die Mitteilung, dass a2 ≠ 3 ist, von der Elliptische-Kurven-Bedingungs-Beurteilungseinheit 220 empfangen hat, führt sie nochmals eine ähnliche Verarbeitung (Schritt S301–S316) mit der gerade erzeugten elliptischen Kurve El2 als der neu eingegebenen elliptischen Kurve El durch (Schritt S320).
  • Nachstehend wird die Bedeutung der Verarbeitung in der Elliptische-Kurven-Erzeugungseinheit 210 und der Elliptische-Kurven-Bedingungs-Beurteilungseinheit 220 der vorliegenden Elliptische-Kurven-Konvertierungsvorrichtung 200 zusammen mit grundlegenden mathematischen Begriffen erläutert. Außerdem sind die nachstehenden Begriffe in dem Fachbuch „The Arithmetic of Elliptic Curves" („Die Arithmetik elliptischer Kurven") von J. H. Silverman, GTM106, Springer-Verlag, 1986, näher beschrieben.
  • Ordnung der elliptischen Kurve
  • Wenn man annimmt, dass ein Punkt auf der elliptischen Kurve E in dem finiten Feld F (X,Y) ist und die Koordinaten von X und Y zu F gehören, so wird der Punkt als rationaler Punkt F bezeichnet. Die Menge, in der das Nullelement 0 der Gruppe der elliptischen Kurven zu allen rationalen Punkten F addiert wird, lautet E(F). Bekanntlich bildet E(F) Gruppen für die Addition der elliptischen Kurven. Die Anzahl von Elementen von E(F) wird als Ordnung der elliptischen Kurve bezeichnet. Die aktuelle Sicherheit der Verschlüsselung mit elliptischen Kurven hängt von der Ordnung der verwendeten elliptischen Kurve ab. Und zwar haben die elliptischen Kurven, die das gleiche finite Feld F und die gleiche Ordnung haben, auch die gleiche Sicherheit.
  • Isomorphismus einer elliptischen Kurve
  • Wenn die Gruppe E(F) der elliptischen Kurve E und die Gruppe E'(F) der elliptischen Kurve E' Homomorphismen sind und einander entsprechen, so werden die elliptischen Kurven E und E' als Isomorphismen bezeichnet. Man kann sagen, dass die elliptischen Kurven E und E' Isomorphismen sind, da für E mit der Gleichung y2 = x3 + a·x + b die elliptische Kurve E' mit der Gleichung y2 = x3 + c4·a·x + c6, die durch ein Element c des finiten Felds F gegeben ist, (x,Y) → (cx,cy) ist.
  • Isogenie einer elliptischen Kurve
  • Die elliptische Kurve E'', die die gleiche Ordnung wie die elliptische Kurve E mit der Gleichung y2 = x3 + a·x + b hat, wird als zu E isogene elliptische Kurve bezeichnet. Und wenn die Ordnung der elliptischen Kurve E gleich der der elliptischen Kurve E'' ist, werden die elliptischen Kurven E und E'' als isogen bezeichnet. Das vorgenannte Fachbuch erläutert zwar die Isogenie, aber sie wird besonders in dem Fachbuch „Isogeny Cycles and the Schoof-Elkies-Atkin Algorithm" („Isogeniezyklen und der Schoof-Elkies-Atkin-Algorithmus") von J.-M. Couveignes, L. Dewaghe und F. Morain, Research Report LIX/RR/96/03, Ecole Polytechnique-LIX, 1996, näher beschrieben.
  • Isogene Transformation und modulares Polynom
  • Zwischen den isogenen elliptischen Kurven erfolgt eine isogene Transformation. Wenn bei der isogenen Transformation Φ mit E → E'' die Anzahl von Punkten auf E, die sich durch die vorstehende Transformation zu dem Nullelement 0'' von E'' bewegen, L ist, so wird Φ als Transformation mit einer Grad-L-Isogenie bezeichnet und die elliptischen Kurven E und E'' werden als Grad-L-Isogenien bezeichnet. Zum Ermitteln der elliptischen Kurve, die eine Grad-L-Isogenie der elliptischen Kurve E ist, kann ein modulares Polynom verwendet werden. Das modulare Polynom ist ein Polynom mit zwei Varianten, das nur von L abhängig ist. In den Schritten S304–S308 der Elliptische-Kurven-Erzeugungseinheit 210 der Elliptische-Kurven-Konvertierungsvorrichtung 200 wird eine elliptische Kurve ermittelt, die eine Grad-L-Isogenie der elliptischen Kurve El ist. Das modulare Polynom und wie ein modulares Polynom ermittelt wird, sind insbesondere in dem Fachbuch „Calcul du nombre de points sur une courbe elliptique dans un corps fini: aspects algorithmiques" von F. Morain, in: J. Theor. Nombres, Bordeaux, 7, 1995, S. 255–282, und dem Fachbuch „Counting Points an Elliptic Curves an Finite Fields" („Zählen von Punkten auf elliptischen Kurven in finiten Feldern") von R. Schoof, in: J. Theor. Nombres, Bordeaux, 7, 1995, S. 219–254, näher beschrieben.
  • j-Invariante der elliptischen Kurve
  • Ein Parameter der elliptischen Kurve ist die j-Invariante. Die j-Invariante der elliptischen Kurve E mit der Gleichung y2 = x3 + a·x + b wird durch die folgende Gleichung gegeben: j = 1728·4·a3/(4·a3 + 27·xb2)
  • Die j-Invariante der elliptischen Kurve E ist gleich der der elliptischen Kurve, die deren Isomorphismus ist.
  • Verdrillung der elliptischen Kurve
  • Wenn im Gegensatz zu dem Vorstehenden die j-Invarianten der elliptischen Kurven E und E' gleich sind, sind E und E' isomorph oder E' ist eine Verdrillung von E. Die elliptische Kurve Et mit der Gleichung y2 = x3 + a·c2·x + b·c3, die durch das Element c in dem finiten Feld F gegeben ist, wird als Verdrillung der elliptischen Kurve E mit der Gleichung y2 = x3 + a·x + b bezeichnet. Wie vorstehend dargelegt, sind die j-Invarianten von E und Et gleich. Im Allgemeinen sind die Ordnung von E und die der Verdrillung von E verschieden.
  • In den Schritten S304–S308 der Elliptische-Kurven-Erzeugungseinheit 210 wird eine elliptische Kurve El2 ermittelt, die eine Grad-L-Isogenie ist, aber da die elliptische Kurve von der j-Invarianten aus ermittelt wird, ist es wahrscheinlich, dass die Verdrillung der ermittelten elliptischen Kurve El, die die Grad-L-Isogenie ist, ermittelt wird. Um im Schritt S314 zu entscheiden, ob die gesuchte elliptische Kurve El, die eine Grad-L-Isogenie ist, ermittelt wird oder nicht, wird geprüft, ob die Ordnung der eingegebenen elliptischen Kurve El gleich der der ermittelten elliptischen Kurve El2 ist. Wenn entschieden wird, dass die Ordnungen nicht gleich sind, wird die Verdrillung von y2 = x3 + a2·x + b2 berechnet.
  • Wie aus der vorstehenden Darlegung ersichtlich ist, hängt die Sicherheit der Verschlüsselung mit elliptischen Kurven von der Ordnung ab. Da die vorliegende Elliptische-Kurven-Konvertierungsvorrichtung 200 die eingegebene elliptische Kurve in die isogene elliptische Kurve, also die elliptische Kurve, deren Ordnung gleich ist, konvertiert, kann behauptet werden, dass die Elliptische-Kurven-Konvertierungsvorrichtung 200 eine Konvertierung durchführt, die als sicher gilt.
  • Die herkömmliche Elliptische-Kurven-Konvertierungsvorrichtung gemäß dem vorgenannten japanischen Patent Nr. 3050313 kann die eingegebene elliptische Kurve in die elliptische Kurve, die a = –3 erfüllt, nur mit einer Wahrscheinlichkeit von 1/4 konvertieren, während die Elliptische-Kurven-Konvertierungsvorrichtung 200 nach der ersten Ausführungsform die isogenen elliptischen Kurven, also extrem viele elliptische Kurven, deren Ordnungen gleich sind, als ihr Ziel ermittelt, und wenn es daher unter den elliptischen Kurven, deren Ordnungen gleich sind, elliptische Kurven mit a = –3 gibt, können diese stets konvertiert werden.
  • Wie vorstehend dargelegt, kann von der Elliptische-Kurven-Konvertierungsvorrichtung nach der ersten Ausführungsform eine beliebige elliptische Kurve in eine elliptische Kurve mit a = –3 unter Aufrechterhaltung der Sicherheit und weiterer Verringerung des Rechenumfangs mit extrem hoher Wahrscheinlichkeit konvertiert werden.
  • Zweite Ausführungsform
  • Nachstehend wird eine Elliptische-Kurven-Konvertierungsvorrichtung 400 nach der zweiten Ausführungsform der vorliegenden Erfindung erläutert.
  • 7 ist ein Funktionsblockdiagramm, das den Aufbau der Elliptische-Kurven-Konvertierungsvorrichtung 400 nach der zweiten Ausführungsform zeigt. Die Elliptische-Kurven-Konvertierungsvorrichtung 400 ist eine Vorrichtung, die mit einem Programm realisiert wird, das auf einem Computer oder einer elektrischen Schaltung, wie etwa einem LSI und dergleichen, abgearbeitet wird und funktionell eine Elliptische-Kurven-Erzeugungseinheit 410, eine Elliptische-Kurven-Bedingungs-Beurteilungseinheit 420 und eine Elliptische-Kurven-Ausgabeeinheit 430 aufweist. Die Elliptische-Kurven-Konvertierungsvorrichtung 400 gibt Parameter p, a und b einer elliptischen Weierstraß-Kurve El mit der Gleichung y2 = x3 + a·x + b in einem finiten Feld GF(p) und die Ordnung mEl der elliptischen Kurve El ein und gibt Parameter A' und B' einer zu der elliptischen Kurve El in GF(p) isogenen elliptischen Montgomery-Kurve EO mit der Gleichung B'·y2 = x3 + A'·x2 + x aus.
  • Die Elliptische-Kurven-Erzeugungseinheit 410 empfängt eine eingegebene beliebige elliptische Weierstraß-Kurve, ermittelt gegebenenfalls die zu der elliptischen Weierstraß-Kurve isogene elliptische Montgomery-Kurve, erzeugt eine elliptische Kurve und gibt die erzeugte elliptische Kurve an die Elliptische-Kurven-Bedingungs-Beurteilungseinheit 420 und die Elliptische-Kurven-Ausgabeeinheit 430 aus. Insbesondere gibt die Elliptische-Kurven-Erzeugungseinheit 410 die Parameter p, a und b der elliptischen Weierstraß-Kurve El mit der Gleichung y2 = x3 + a·x + b und die Ordnung mEl der elliptischen Kurve El ein, ermittelt die elliptische Montgomery-Kurve El2 mit der Gleichung B2·y2 = x3 + A2·x2 + x, gibt A2 und B2 der elliptischen Kurve aus, wenn eine solche ermittelt wird, und gibt „Falsch" aus, wenn keine ermittelt wird.
  • Die Elliptische-Kurven-Bedingungs-Beurteilungseinheit 420 entscheidet, ob der von der Elliptische-Kurven-Erzeugungseinheit 410 ausgegebene Wert ein Parameter einer elliptischen Kurve oder „Falsch" ist, und wenn er „Falsch" ist, lässt sie durch entsprechende Mitteilung an die Elliptische-Kurven-Erzeugungseinheit 410 die Elliptische-Kurven-Erzeugungseinheit 410 wieder eine andere isogene elliptische Montgomery-Kurve erzeugen. Wenn hingegen der Wert nicht „Falsch" ist, teilt die Elliptische-Kurven-Bedingungs-Beurteilungseinheit 420 dies der Elliptische-Kurven-Ausgabeeinheit 430 entsprechend mit.
  • Wenn die Elliptische-Kurven-Ausgabeeinheit 430 eine Mitteilung von der Elliptische-Kurven-Bedingungs-Beurteilungseinheit 420 empfängt, dass der von der Elliptische-Kurven-Erzeugungseinheit 410 ausgegebene Wert nicht „Falsch" ist, gibt sie die von der Elliptische-Kurven-Erzeugungseinheit 410 ausgegebenen Parameter A2 und B2 der elliptischen Kurve El2 mit der Gleichung B2·y2 = x3 + A2·x2 + x als A' und B' nach außen aus.
  • Nachstehend werden die Operationen der in der vorstehenden Weise gestalteten Elliptische-Kurven-Konvertierungsvorrichtung 400 nach der vorliegenden Ausführungsform beschrieben.
  • 8 ist ein Ablaufdiagramm, das die Operationen der Elliptische-Kurven-Konvertierungsvorrichtung 400 zeigt. Zu Beginn empfängt die Elliptische-Kurven-Erzeugungseinheit 410 die eingegebene elliptische Weierstraß-Kurve (Schritt 400), ermittelt die zu der elliptischen Weierstraß-Kurve isogene elliptische Montgomery-Kurve (Schritt S401) und gibt die elliptische Kurve (die Parameter A2 und B2), wenn sie eine solche ermittelt, und das Ergebnis („Falsch"), wenn sie keine ermittelt, an die Elliptische-Kurven-Bedingungs-Beurteilungseinheit 420 und die Elliptische-Kurven-Ausgabeeinheit 430 aus. Die Elliptische-Kurven-Bedingungs-Beurteilungseinheit 420 entscheidet, ob eine elliptische Montgomery-Kurve ermittelt wird oder nicht, also, ob die Ausgabe der Elliptische-Kurven-Erzeugungseinheit 410 „Falsch" ist oder nicht (Schritt S402), und wenn keine ermittelt wird, also bei „Falsch” („Nein” im Schritt S402), teilt sie dies der Elliptische-Kurven-Erzeugungseinheit 410 entsprechend mit.
  • Die Elliptische-Kurven-Erzeugungseinheit 410, die die Mitteilung empfängt, wiederholt die Ermittlung einer anderen elliptischen Montgomery-Kurve, die zu der eingegebenen elliptischen Weierstraß-Kurve isogen ist (S401–S402). Von nun an versucht die Elliptische-Kurven-Erzeugungseinheit 410, eine andere elliptische Montgomery-Kurve, die zu der eingegebenen elliptischen Weierstraß-Kurve isogen ist, unter Verwendung einer Transformation mit einem anderen Grad von Isogenie (eine Transformation mit einer Grad-L-Isogenie) zu erzeugen.
  • Wenn hingegen die Ermittlung mit der Elliptische-Kurven-Konvertierungsvorrichtung 400 erfolgreich war („Ja” im Schritt S402), teilt die Elliptische-Kurven-Bedingungs-Beurteilungseinheit 420 dies der Elliptische-Kurven-Ausgabeeinheit 430 entsprechend mit. Dann gibt die Elliptische-Kurven-Ausgabeeinheit 430, die die Mitteilung empfängt, die Parameter A2 und B2 der von der Elliptische-Kurven-Erzeugungseinheit 410 ausgegebenen elliptischen Montgomery-Kurve El2 als A' und B' aus (Schritt S403).
  • Die 9 und 10 sind Ablaufdiagramme, die das detaillierte Verfahren der Verarbeitung der Elliptische-Kurven-Erzeugungseinheit zeigen (Schritt S401 in 8).
  • Die Elliptische-Kurven-Erzeugungseinheit 410 ermittelt mit dem nachstehenden Verfahren anhand der Parametern a und b der eingegebenen elliptischen Kurve El mit der Gleichung y2 = x3 + a·x + b und der Ordnung mEl der elliptischen Kurve El die isogene elliptische Montgomery-Kurve El2 mit der Gleichung B2·y2 = x3 + A2·x2 + x und gibt bei erfolgreicher Ermittlung die Koeffizienten A2 und B2 und bei nicht erfolgreicher Ermittlung „Falsch" aus.
  • Schritt S501: Ermitteln der j-Invarianten jEl der elliptischen Kurve El mittels der folgenden Gleichung: jEl = 1728·(4·a3 + 27·b2)/(4·a3)
  • Schritt S502: Setzen des Anfangswerts (2) auf eine Primzahl L.
  • Schritt S503: Auslesen eines modularen Polynoms ΦL(X,Y), das der Primzahl L entspricht.
  • Schritt S504: Lösen von ΦL(jEl,Y) = 0 mit Y als undefinierte variable Zahl in dem finiten Feld GF(p).
  • Schritt S505 (S505a, S505b): Wenn es nicht zwei oder mehr Lösungen für die Primzahl L gibt, Festlegen der nächstgrößeren Primzahl und Zurückgehen zum Schritt S503. Festlegen eines Werts für die Primzahl L, der aus der Folge von Primzahlen gewählt wird, die vorher in der Reihenfolge von einer kleinen Zahl zu einer großen Zahl gespeichert werden (2, 3, 5, 7, ...).
  • Schritt S506: Eine der vorgenannten Lösungen auswählen und mit S bezeichnen.
  • Schritt S507: Lösen von ΦL(X,S) = 0 mit X als undefinierte variable Zahl in dem finiten Feld GF(p).
  • Schritt S508: Von den vorgenannten Lösungen eine Lösung auswählen, die nicht gleich jEl ist, und mit jEl2 bezeichnen.
  • Schritt S509: Folgende Gleichung in dem infiniten Feld GF(p) lösen: X6 – 9·X4 + 27·(1 – jEl2/1728) + 27·(4·jEl2/1728 – 1) = 0.
  • Schritt 510 (Schritt S510a, S510b): Wenn es eine oder mehrere Lösungen für die vorgenannte Gleichung gibt, mit einer Lösung als A2 zum Schritt S511 weitergehen. Andernfalls zum Schritt S512 weitergehen.
  • Schritt S511: B2 mit 1 ansetzen. Zum Schritt S513 weitergehen.
  • Schritt S512: „Falsch" ausgeben und beenden.
  • Schritt S513: Den Punkt auf der elliptischen Kurve y2 = x3 + A2·x2 + x ermitteln, der GF(p) als Koordinaten hat, und ihn mit PEl2 bezeichnen.
  • Schritt S514 (S514a, S514b): Entscheiden, ob mEl*PEl2 = 0 ist oder nicht. Hier ist 0 das Nullelement von El2. Wenn die Gleichung erfüllt wird, A2 und B2 ausgeben und beenden. Andernfalls zum Schritt S515 weitergehen.
  • Schritt S515 (S515a, S515b): Ein Element, das ein quadratischer Nichtrest in dem Modul p ist, auswählen und mit c bezeichnen. Verdrillung B2'·y2 = x3 + A2'·x2 + x der elliptischen Kurve y2 = x3 + A2·x2 + x aus den folgenden Gleichungen ermitteln: A2' = A2 B2' = C3
  • Schritt S516: A2' und B2' als A2 und B2 ausgeben und beenden.
  • Wenn die Elliptische-Kurven-Erzeugungseinheit 410 die Mitteilung, dass die Ausgabe der Elliptische-Kurven-Erzeugungseinheit 410 „Falsch" ist, von der Elliptische-Kurven-Bedingungs-Beurteilungseinheit 420 empfängt, legt sie die nächstgrößte Primzahl der in der Nähe befindlichen Primzahlen L als Primzahl L fest (Schritt S505b) und wiederholt dann die vorstehende Verarbeitung ab S503.
  • Da, wie gerade dargelegt, die Elliptische-Kurven-Konvertierungsvorrichtung 400 die eingegebene elliptische Kurve in eine isogene elliptische Kurve, also eine elliptische Kurve, deren Ordnung gleich ist, konvertiert, kann behauptet werden, dass die Elliptische-Kurven-Konvertierungsvorrichtung 400 eine Konvertierung durchführt, die als sicher gilt.
  • Nachstehend wird das Konvertierungsverfahren beim Konvertieren der eingegebenen elliptischen Weierstraß-Kurve in die isomorphe elliptische Montgomery-Kurve, das auf dem gleichen Konzept wie die herkömmliche Elliptische-Kurven-Konvertierungsvorrichtung gemäß dem vorgenannten Patent Nr. 3050313 beruht, mit dem Konvertierungsverfahren nach der vorliegenden Ausführungsform verglichen. Die herkömmliche Elliptische-Kurven-Konvertierungsvorrichtung kann eine eingegebene elliptische Kurve nur mit einer Wahrscheinlichkeit von 19/48 in die elliptische Kurve konvertieren. Hingegen konvertiert die Elliptische-Kurven-Konvertierungsvorrichtung 400 eine eingegebene elliptische Kurve in eine isogene elliptische Kurve, also eine elliptische Kurve, deren Ordnung gleich ist, und wenn es daher unter den elliptischen Kurven, deren Ordnungen gleich sind, elliptische Montgomery-Kurven gibt, können diese stets konvertiert werden.
  • Somit kann mit der Elliptische-Kurven-Konvertierungsvorrichtung nach der vorliegenden Ausführungsform eine beliebige elliptische Weierstraß-Kurve in eine elliptische Montgomery-Kurve unter Aufrechterhaltung der Sicherheit und bei weiterer Verringerung des Rechenumfangs mit extrem hoher Wahrscheinlichkeit konvertiert werden.
  • Nachstehend erfolgt die Erläuterung durch Gegenüberstellen des grundlegenden Algorithmus der vorliegenden Erfindung, den die erste und die zweite Ausführungsform gemeinsam haben, und desjenigen der herkömmlichen Elliptische-Kurven-Konvertierungsvorrichtung gemäß dem vorgenannten Patent Nr. 3050313. 11A ist eine Darstellung, die das Ermittlungsverfahren für eine elliptische Kurve mit der herkömmlichen Elliptische-Kurven-Konvertierungsvorrichtung zeigt; 11B ist eine Darstellung, die das Ermittlungsverfahren für eine elliptische Kurve mit der Elliptische-Kurven- Konvertierungsvorrichtung 200 nach der ersten Ausführungsform der vorliegenden Erfindung zeigt; und 11C ist eine Darstellung, die das Ermittlungsverfahren für eine elliptische Kurve mit der Elliptische-Kurven-Konvertierungsvorrichtung 400 nach der zweiten Ausführungsform der vorliegenden Erfindung zeigt. In diesen Figuren verkörpert ein außen befindlicher großer Rahmen 500 die Menge von elliptischen Kurven, die zu der elliptischen Kurve isogen ist, die in die Elliptische-Kurven-Konvertierungsvorrichtung eingegeben wird; der schwarze Punkt stellt die in die Elliptische-Kurven-Konvertierungsvorrichtung eingegebene elliptische Kurve dar; ein Rahmen 502 verkörpert die Menge von elliptischen Kurven, die zu einer elliptischen Kurve 501 isomorph ist; und Rahmen 510512 und 520522 verkörpern Mengen, die eine Grad-L-Isogenie-Beziehung zu der in den 11B und 11C gezeigten eingegebenen elliptischen Kurve 501 haben.
  • Wie in 11A gezeigt, ermittelt die herkömmliche Elliptische-Kurven-Konvertierungsvorrichtung die elliptischen Kurven, die eine bestimmte Bedingung (a2 = –3) erfüllen, aus der Gruppe der elliptischen Kurven 502, die zu der eingegebenen elliptischen Kurve 501 isomorph sind. Hingegen ermittelt die Elliptische-Kurven-Konvertierungsvorrichtung 200 nach der ersten Ausführungsform der vorliegenden Erfindung, wie in 11B gezeigt, aus der Gruppe von elliptischen Kurven 510, die eine Grad-L1-Isogenie zu der eingegebenen elliptischen Kurve 501 haben, die elliptische Kurve, die die Geschwindigkeitserhöhungsbedingung, also a2 = –3, erfüllt, für die Berechnung. Wenn sie keine ermitteln kann, sucht die Elliptische-Kurven-Konvertierungsvorrichtung 200 in der Gruppe von elliptischen Kurven 511, die außerdem eine Grad-L1-Isogenie zu der Gruppe von elliptischen Kurven 510 mit einer Grad-L1-Isogenie haben (also die Gruppe von elliptischen Kurven, die zu der elliptischen Kurve 501 mit einem Grad L1 2 isogen sind), und wiederholt die Ermittlung in dem Bereich der isogenen elliptischen Kurven.
  • Da im Unterschied zu der herkömmlichen Elliptische-Kurven-Konvertierungsvorrichtung, die die Gruppe von elliptischen Ziel-Kurven, die zu dem nahen Bereich der Isomorphismen gehören, als ihr Ziel durchsucht, die Elliptische-Kurven-Konvertierungsvorrichtung 200 nach der ersten Ausführungsform die Gruppe von elliptischen Ziel-Kurven, die zu einem größeren Bereich von Isogenien gehören, als ihr Ziel durchsucht, kann sie die elliptischen Ziel-Kurven mit einer Wahrscheinlichkeit von 100% ermitteln und erzeugen, solange die elliptischen Ziel-Kurven in der Gruppe der isogenen elliptischen Kurven sind.
  • Die elliptische Kurve 510 wird durch Durchführen einer Transformation mit einer Grad-L-Isogenie zu der eingegebenen elliptischen Kurve 501 erzeugt. Die elliptische Kurve 511, die durch erneutes Durchführen der Transformation mit einer Grad-L-Isogenie zu der elliptischen Kurve 510 erzeugt wird, wird gleich der Durchführung der Transformation mit einer Grad-L1 2-Isogenie zu der ursprünglichen elliptischen Kurve 501.
  • Wie in 11C gezeigt, ermittelt die Elliptische-Kurven-Konvertierungsvorrichtung 400 nach der zweiten Ausführungsform der vorliegenden Erfindung die elliptische Kurve, die die Geschwindigkeitserhöhungsbedingung erfüllt, also die Montgomery-Kurve, aus der Gruppe von elliptischen Kurven 520, die zu der eingegebenen elliptischen Kurve 501 eine Grad-L1-Isogenie haben. Wenn sie dabei keine ermitteln kann, ermittelt die Elliptische-Kurven-Konvertierungsvorrichtung 400 die eingegebene elliptische Kurve 501 aus der Gruppe von isogenen elliptischen Kurven des Grads 12 und wiederholt die Suche in dem Bereich der Gruppe von isogenen elliptischen Kurven 500.
  • Da im Unterschied zu der herkömmlichen Elliptische-Kurven-Konvertierungsvorrichtung, die die Gruppe von elliptischen Ziel-Kurven, die zu dem nahen Bereich der Isomorphismen gehören, als ihr Ziel durchsucht, die Elliptische-Kurven-Konvertierungsvorrichtung 400 nach der zweiten Ausführungsform die Gruppe von elliptischen Ziel-Kurven, die zu einem größeren Isogenie-Bereich gehören, als ihr Ziel durchsucht, kann sie die elliptischen Ziel-Kurven mit einer Wahrscheinlichkeit von 100% ermitteln und erzeugen, solange die elliptischen Ziel-Kurven in der Gruppe der isogenen elliptischen Kurven sind.
  • Die erfindungsgemäße Elliptische-Kurven-Konvertierungsvorrichtung ist bisher anhand der beiden Ausführungsformen erläutert worden, aber die vorliegende Erfindung ist natürlich nicht auf diese Ausführungsformen beschränkt.
  • Beispielsweise wird bei der zweiten Ausführungsform die in 11C gezeigte isogene Transformation verwendet, aber es kann auch die in 11B gezeigte isogene Transformation verwendet werden. Mit anderen Worten, die Suche wird nicht mit der bereits erzeugten elliptischen Kurve als neu eingegebene elliptische Kurve wiederholt, sondern die Suche kann durch Wiederholen einer Transformation mit einer anderen Isogenie zu der zuerst eingegebenen elliptischen Kurve erfolgen.
  • Außerdem kann die Bedingung für die Entscheidung, die in den Schritten S305 und S505 von den Elliptische-Kurven-Erzeugungseinheiten 210 und 410 getroffen wird, „Die Anzahl der Lösungen ist zwei" lauten. Dabei kann in den Schritten S305 und S505 der Wert von L festgelegt werden, nachdem in den Schritten S305a bzw. S505a entschieden worden ist, dass die Anzahl von Lösungen zwei ist. Mit anderen Worten, da in den Schritten S305a und S505a gewährleistet ist, dass jetzt die Transformation mit der Grad-L-Isogenie wiederholt werden kann, wenn entschieden wird, dass die Anzahl von Lösungen zwei oder größer ist, kann die Transformation mit der Grad-L-Isogenie mit dem gleichen Grad (L) wiederholt werden, wie in 11B gezeigt.
  • Außerdem kann die vorliegende Erfindung in einer Elliptische-Kurven-Verwendungsvorrichtung verwendet werden, die die elliptische Kurve verwendet, die mit der vorstehend beschriebenen Elliptische-Kurven-Konvertierungsvorrichtung erhalten wird. Spezielle Beispiele für die Elliptische-Kurven-Verwendungsvorrichtung sind ein Verschlüsselte- Kommunikations-System, das aus einer Verschlüsselungsvorrichtung und einer Entschlüsselungsvorrichtung besteht; ein Digitalsignatur-System, das aus einer Digitalsignatur-Vorrichtung und einer Digitalsignatur-Verifikationsvorrichtung besteht; ein Gemeinsame-Schlüsselverwendungs-System, bei dem zwei Vorrichtungen versuchen, einen geheimen Schlüssel gemeinsam zu verwenden, indem sie die Authentizität des anderen Teilnehmers gegenseitig verifizieren; und dergleichen.
  • Beispielsweise erzeugt wie bei dem in 12 gezeigten Anwendungsbeispiel der vorliegenden Erfindung ein Verwaltungszentrum C, das mit der erfindungsgemäßen Elliptische-Kurven-Konvertierungsvorrichtung ausgestattet ist, eine elliptische Kurve (beispielsweise eine elliptische Kurve mit a2 = –3), die in dem Verschlüsselte-Kommunikations-System verwendet wird und für Teilnehmer A1–An bereitgestellt wird, oder es erzeugt eine elliptische Kurve (beispielsweise eine elliptische Montgomery-Kurve), die in dem Digitalsignatur-System verwendet wird und für Teilnehmer B1–Bn bereitgestellt wird.
  • Um die Sicherheit zu gewährleisten, beispielsweise wenn ein bestimmter Zeitraum vorüber ist, kann das Verwaltungszentrum C eine neue elliptische Kurve unter Verwendung der erfindungsgemäßen Elliptische-Kurven-Konvertierungsvorrichtung erzeugen, die neue elliptische Kurve für die Teilnehmer A1–An und B1–Bn bereitstellen und die in dem Verschlüsselte-Kommunikations-System und dem Digitalsignatur-System verwendete elliptische Kurve aktualisieren. Außerdem können die Vorrichtungen der Teilnehmer A1–An der Elliptische-Kurven-Konvertierungsvorrichtung des Verwaltungszentrums C die bisher verwendeten Parameter (p, a, b, mEl) mitteilen, und das Verwaltungszentrum C kann die Parameter eingeben, eine neue elliptische Kurve erzeugen und die neue elliptische Kurve an die Teilnehmer A1–An zurücksenden. Dann haben die Vorrichtungen der Teilnehmer A1–An eine verschlüsselte Kommunikation unter Verwendung der neuen elliptischen Kurve, die die Elliptische-Kurven-Konvertierungsvorrichtung des Verwaltungszentrums C zurücksendet. Dadurch wird ein Verschlüsselungssystem mit einer hohen Sicherheit realisiert, bei dem die elliptische Kurve als Grundlage für die Verschlüsselung dynamisch aktualisiert wird.
  • Außerdem kann die vorliegende Erfindung eine Elliptische-Kurven-Erzeugungsvorrichtung sein, die mit der vorstehend beschriebenen Elliptische-Kurven-Konvertierungsvorrichtung versehen ist und Parameter einer sicheren elliptischen Kurve erzeugt. Beispielsweise kann durch Schaffung einer Eingabeparameter-Erzeugungseinheit, die eine Gruppe von Eingabeparametern für die Elliptische-Kurven-Konvertierungsvorrichtung nach der vorstehenden Ausführungsform nach einem bestimmten Verfahren erzeugt, mehrere Gruppen von Eingabeparametern im Voraus hält und die mehreren Gruppen nacheinander an die Elliptische-Kurven-Konvertierungsvorrichtung ausgibt, eine Elliptische-Kurven-Erzeugungsvorrichtung realisiert werden, die aus der Eingabeparameter-Erzeugungseinheit und der Elliptische-Kurven-Konvertierungsvorrichtung besteht.
  • Hier wird unterstellt, dass bei der Elliptische-Kurven-Konvertierungsvorrichtung die elliptische Kurve die Bedingung a = –3 erfüllen muss oder eine elliptische Montgomery-Kurve sein muss, aber es reichen alle Bedingungen aus, die diese Bedingungen erfüllen können, mit anderen Worten, alle Geschwindigkeitserhöhungsbedingungen, die den Rechenumfang der Arithmetik auf der elliptischen Kurve verringern.
  • Wenn bei der Elliptische-Kurven-Konvertierungsvorrichtung nach den vorstehenden Ausführungsformen die Elliptische-Kurven-Bedingungs-Beurteilungseinheit entscheidet, dass eine bestimmte Bedingung der elliptischen Kurve nicht erfüllt wird, wird die Verarbeitung der Elliptische-Kurven-Erzeugungseinheit wiederholt, aber es ist auch möglich, dass keine wiederholte Verarbeitung wie diese erfolgt und nichts ausgegeben wird. Außerdem kann die Verarbeitung innerhalb einer Grenze bis zu einer bestimmten Häufigkeit wiederholt werden. Dadurch können die elliptischen Kurven in einem begrenzten Zeitraum konvertiert werden.
  • Die vorliegende Erfindung kann auch als Elliptische-Kurven-Konvertierungsverfahren mit den typischen Komponenten, die die Elliptische-Kurven-Konvertierungsvorrichtung aufweist, als Schritten realisiert werden.
  • Wie vorstehend dargelegt, kann eine eingegebene elliptische Weierstraß-Kurve in eine elliptische Kurve konvertiert werden, die a = –3 erfüllt oder eine elliptische Montgomery-Kurve ist, solange es unter den elliptischen Kurven, die zu der eingegebenen elliptischen Weierstraß-Kurve isogen sind, eine elliptische Kurve gibt, die a = –3 erfüllt oder eine elliptische Montgomery-Kurve ist. Dadurch wird es leichter, eine elliptische Kurve zu erzeugen, deren Rechenumfang ohne Sicherheitsverlust weiter verringert wird. Eine elliptische Kurve wie diese ist für ein Verschlüsselte-Kommunikations-System, ein Digitalsignatur-System oder ein Gemeinsame-Schlüsselverwendungs-System geeignet, die die elliptische Kurve verwenden, und ist besonders für ein System, das mehrere elliptische Kurven auswählt, und für ein System geeignet, das die elliptische Kurve dynamisch ändert. Daher ist ihr praktischer Wert als grundlegende Technologie für elektronische Regelungen und Geheimkommunikation, die eine hohe Sicherheit erfordern, und für den Schutz von digitalen literarischen Arbeiten extrem hoch.

Claims (4)

  1. Elliptische-Kurven-Konvertierungsvorrichtung (200), die eine erste elliptische Kurve, die in einem finiten Feld F definiert ist, in eine in dem finiten Feld F definierte zweite elliptische Kurve konvertiert, mit: einer Elliptische-Kurven-Erzeugungseinheit (210), die so konfiguriert ist, dass sie eine elliptische Kurve sucht, die zu der ersten elliptischen Kurve isogen ist und eine Geschwindigkeitserhöhungsbedingung erfüllt, die den Berechnungsumfang für die Arithmetik an der elliptischen Kurve bei einer Verschlüsselungsoperation verringert, und dass sie eine in Frage kommende isogene elliptische Kurve des Grads L ausgibt; einer Beurteilungseinheit (220), die so konfiguriert ist, dass sie beurteilt, ob die von der Elliptische-Kurven-Erzeugungseinheit (210) ausgegebene elliptische Kurve die Geschwindigkeitserhöhungsbedingung erfüllt oder nicht; und einer Ausgabe-Einheit (230), die so konfiguriert ist, dass sie in dem Fall, dass die Beurteilungseinheit (220) beurteilt, dass die in Frage kommende elliptische Kurve die Geschwindigkeitserhöhungsbedingung erfüllt, eine elliptische Kurve als die zweite elliptische Kurve ausgibt, wobei die Elliptische-Kurven-Erzeugungseinheit Folgendes aufweist: eine j-Invarianten-Berechnungseinheit, die so konfiguriert ist, dass sie j-Invarianten von elliptischen Kurven berechnet; eine Primzahlen-Erzeugungseinheit, die so konfiguriert ist, dass sie Primzahlen L erzeugt; eine Polynom-Erzeugungseinheit, die so konfiguriert ist, dass sie modulare Polynome Φ(X, Y) erzeugt, die aus den erzeugten Primzahlen L berechnet werden können; eine Gleichungserzeugungseinheit, die so konfiguriert ist, dass sie eine Gleichung aus einem erzeugten modularen Polynom Φ(X, Y) und einer j-Invarianten erzeugt; eine Gleichungslösungs-Berechnungseinheit, die so konfiguriert ist, dass sie eine Lösung einer in dem finiten Feld F definierten erzeugten Gleichung berechnet; eine Lösungsbeurteilungseinheit, die so konfiguriert ist, dass sie beurteilt, ob die Anzahl der berechneten Lösungen die Bedingung erfüllt, größer als oder gleich zwei zu sein; und eine Steuereinheit zum Steuern der Primzahlen-Erzeugungseinheit so, dass sie eine Primzahl erzeugt, zum Steuern der Polynom-Erzeugungseinheit so, dass sie ein entsprechendes Polynom erzeugt, zum Steuern der Gleichungserzeugungseinheit so, dass sie eine entsprechende Gleichung erzeugt, zum Steuern der Gleichungslösungs-Berechnungseinheit so, dass sie eine entsprechende Lösung berechnet, und zum Steuern der Lösungsbeurteilungseinheit so, dass sie die Anzahl von Lösungen beurteilt, dadurch gekennzeichnet, dass die Primzahlen-Erzeugungseinheit so konfiguriert ist, dass sie Primzahlen von einer kleinen Primzahl aus iterativ erzeugt, bis die Lösungsbeurteilungseinheit beurteilt, dass es mindestens zwei Lösungen (L = L1) gibt, und dass die in Frage kommende elliptische Kurve von einer dieser Lösungen abgeleitet wird.
  2. Elliptische-Kurven-Konvertierungsvorrichtung nach Anspruch 1, dadurch gekennzeichnet, dass die Elliptische-Kurven-Erzeugungseinheit weiterhin so konfiguriert ist, dass sie in dem Fall, dass die Beurteilungseinheit beurteilt, dass die elliptische Kurve, die die Geschwindigkeitserhöhungsbedingung erfüllt, nicht gefunden worden ist, die Suche der elliptischen Kurve wiederholt.
  3. Elliptische-Kurven-Konvertierungsvorrichtung nach Anspruch 1, dadurch gekennzeichnet, dass in der Gleichung y2 = x3 + a·x + b die Geschwindigkeitserhöhungsbedingung „a = –3" ist.
  4. Elliptische-Kurven-Konvertierungsvorrichtung nach Anspruch 1, dadurch gekennzeichnet, dass die Geschwindigkeitserhöhungsbedingung darin besteht, dass die elliptische Kurve eine elliptische Montgomery-Kurve ist.
DE60223775T 2001-10-25 2002-10-25 Vorrichtung zum Konvertieren einer elliptischen Kurve Expired - Lifetime DE60223775T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2001327337 2001-10-25
JP2001327337 2001-10-25

Publications (2)

Publication Number Publication Date
DE60223775D1 DE60223775D1 (de) 2008-01-10
DE60223775T2 true DE60223775T2 (de) 2008-10-30

Family

ID=19143583

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60223775T Expired - Lifetime DE60223775T2 (de) 2001-10-25 2002-10-25 Vorrichtung zum Konvertieren einer elliptischen Kurve

Country Status (3)

Country Link
US (1) US7209555B2 (de)
EP (1) EP1306749B1 (de)
DE (1) DE60223775T2 (de)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7499544B2 (en) * 2003-11-03 2009-03-03 Microsoft Corporation Use of isogenies for design of cryptosystems
US7702098B2 (en) * 2005-03-15 2010-04-20 Microsoft Corporation Elliptic curve point octupling for weighted projective coordinates
US7680268B2 (en) 2005-03-15 2010-03-16 Microsoft Corporation Elliptic curve point octupling using single instruction multiple data processing
US7617397B2 (en) * 2005-04-29 2009-11-10 Microsoft Corporation Systems and methods for generation and validation of isogeny-based signatures
US8180047B2 (en) * 2006-01-13 2012-05-15 Microsoft Corporation Trapdoor pairings
JP2008203548A (ja) * 2007-02-20 2008-09-04 Oki Electric Ind Co Ltd 二次双曲線群を使用する鍵生成方法、復号方法、署名検証方法、鍵ストリーム生成方法および装置。
US7986779B2 (en) * 2007-06-30 2011-07-26 Intel Corporation Efficient elliptic-curve cryptography based on primality of the order of the ECC-group
US8005210B2 (en) * 2007-06-30 2011-08-23 Intel Corporation Modulus scaling for elliptic-curve cryptography
US7978846B2 (en) * 2007-06-30 2011-07-12 Intel Corporation Scale-invariant barrett reduction for elliptic-curve cyrptography
CN101911582B (zh) * 2008-01-18 2012-09-05 三菱电机株式会社 密码参数设定装置、密钥生成装置、密码系统、密码参数设定方法和密钥生成方法
EP2085878A1 (de) * 2008-02-01 2009-08-05 Thomson Licensing Vorrichtung und Verfahren zur Berechnung einer Punktmultiplikation auf einer elliptischen Kurve
US8250367B2 (en) * 2008-09-30 2012-08-21 Microsoft Corporation Cryptographic applications of efficiently evaluating large degree isogenies
US8731187B2 (en) * 2010-12-21 2014-05-20 Microsoft Corporation Computing genus-2 curves using general isogenies
RU2541938C1 (ru) * 2013-11-20 2015-02-20 федеральное государственное автономное образовательное учреждение высшего образования "Санкт-Петербургский государственный политехнический университет" (ФГАОУ ВО "СПбПУ") Способ шифрования с защитой от квантовых атак на основе циклов функций вебера
WO2015160839A1 (en) * 2014-04-17 2015-10-22 Hrl Laboratories, Llc A method for secure and resilient distributed generation of elliptic curve digital signature algorithm (ecdsa) based digital signatures with proactive security
US10068070B2 (en) * 2015-05-05 2018-09-04 Nxp B.V. White-box elliptic curve point multiplication
CN106549770B (zh) * 2017-01-13 2019-07-12 武汉理工大学 Sm2数字签名生成方法及系统
CN106656512B (zh) * 2017-01-17 2019-07-09 武汉理工大学 支持门限密码的sm2数字签名生成方法及系统
EP3707855A1 (de) 2017-11-09 2020-09-16 Nchain Holdings Limited System zur sicherung eines verifizierungsschlüssels vor änderung und zur verifizierung der gültigkeit eines korrektheitsnachweises
KR20200096248A (ko) 2017-12-13 2020-08-11 엔체인 홀딩스 리미티드 암호 자료를 안전하게 공유하기 위한 시스템 및 방법
US11611430B2 (en) * 2019-04-15 2023-03-21 Axell Corporation Arithmetic apparatus, arithmetic system and arithmetic method
CN110213057B (zh) * 2019-05-23 2021-01-08 武汉理工大学 具有乘积r参数的SM9数字签名协同生成方法及系统
CN110166256B (zh) * 2019-06-17 2020-10-02 武汉理工大学 具有乘积r参数的SM9数字签名多方协同生成方法及系统

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5497423A (en) 1993-06-18 1996-03-05 Matsushita Electric Industrial Co., Ltd. Method of implementing elliptic curve cryptosystems in digital signatures or verification and privacy communication
US6088453A (en) * 1997-01-27 2000-07-11 Kabushiki Kaisha Toshiba Scheme for computing Montgomery division and Montgomery inverse realizing fast implementation
US6782100B1 (en) * 1997-01-29 2004-08-24 Certicom Corp. Accelerated finite field operations on an elliptic curve
CN1280726A (zh) * 1997-12-05 2001-01-17 保密信息技术公司 优化椭圆曲线密码计算的变换方法
US6212277B1 (en) * 1998-03-05 2001-04-03 Matsushita Electric Industrial Co., Ltd. Elliptic curve transformation device, utilization device and utilization system
JP3050313B2 (ja) 1998-03-05 2000-06-12 松下電器産業株式会社 楕円曲線変換装置、利用装置及び利用システム
AU6243899A (en) 1998-09-08 2000-03-27 Citibank, N.A. Elliptic curve cryptosystems for low memory devices
US20020057796A1 (en) * 1998-12-24 2002-05-16 Lambert Robert J. Method for accelerating cryptographic operations on elliptic curves
CA2257008C (en) * 1998-12-24 2007-12-11 Certicom Corp. A method for accelerating cryptographic operations on elliptic curves
EP1215642A4 (de) 1999-09-08 2004-05-26 Hitachi Ltd Methode und anordnung zur generation elliptischer kurven, elliptisches verschlüsselungssystem, und aufnahme-medium

Also Published As

Publication number Publication date
US7209555B2 (en) 2007-04-24
US20030081771A1 (en) 2003-05-01
DE60223775D1 (de) 2008-01-10
EP1306749A2 (de) 2003-05-02
EP1306749A3 (de) 2005-09-14
EP1306749B1 (de) 2007-11-28

Similar Documents

Publication Publication Date Title
DE60223775T2 (de) Vorrichtung zum Konvertieren einer elliptischen Kurve
DE69917592T2 (de) Gegen stromverbrauchsignaturanfall beständige kryptographie
DE69826963T2 (de) Gerät für die modulare Inversion zur Sicherung von Information
DE69534603T2 (de) Verschlüsselungssystem für elliptische kurve
DE60005284T2 (de) Berechnungsverfahren für kryptographie mittels elliptischer kurven
DE60125710T2 (de) Manipulationssichere Methode zur modularen Multiplikation
EP1922837B1 (de) Verfahren zum sicheren ver- oder entschlüsseln einer nachricht
DE19829643C2 (de) Verfahren und Vorrichtung zur Block-Verifikation mehrerer digitaler Signaturen und Speichermedium, auf dem das Verfahren gespeichert ist
DE102010001289B4 (de) Vorrichtung zum Berechnen eines Ergebnisses einer Skalarmultiplikation
EP1999884A1 (de) Verfahren zum sicheren ermitteln von daten
DE102014203497A1 (de) Maskiertes nichtlinear rückgekoppeltes Schieberegister
DE112007001319T5 (de) Multiplizieren zweier Zahlen
DE60109805T2 (de) Verfahren und system zur benützung eines ungesicherten krypto-beschleunigers
DE69924912T2 (de) Verschlüsselungsverfahren und Vorrichtung unter Verwendung einer elliptischen Kurve
DE102005041102A1 (de) Verfahren zur Skalarmultiplikation von Punkten auf einer elliptischen Kurve
DE60311507T2 (de) Verfahren zur elliptische-kurven-verschlüsselung
DE60204955T2 (de) Gegenmassnahmen in einem elektronischen baustein zur ausführung eines krypto-algorithmus mit auf elliptischen kurven basierendem öffentlichen schlüssel
DE10024325B4 (de) Kryptographisches Verfahren und kryptographische Vorrichtung
DE10357661B4 (de) Modularer Montgomery-Multiplizierer und zugehöriges Multiplikationsverfahren
DE69735290T2 (de) Verfahren zur unsymmetrischen kryptographischen kommunikation und zugehöriger tragbarer gegenstand
EP1370933B1 (de) Verfahren und vorrichtung zum modularen multiplizieren
DE60022770T2 (de) Gegenmassnahme in einem elektronischen baustein zur ausführung eines kryptoalgorithmus mit öffentlichem schlüssel vom rsa-typ
DE10341096A1 (de) Übergang zwischen maskierten Repräsentationen eines Wertes bei kryptographischen Berechnungen
DE10161137B4 (de) Verfahren und System zum kryptographischen Bearbeiten von Daten
WO2012065730A1 (de) Verfahren zur langzahldivision oder modulare reduktion

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: PANASONIC CORP., KADOMA, OSAKA, JP