DE60005284T2 - Berechnungsverfahren für kryptographie mittels elliptischer kurven - Google Patents

Berechnungsverfahren für kryptographie mittels elliptischer kurven Download PDF

Info

Publication number
DE60005284T2
DE60005284T2 DE60005284T DE60005284T DE60005284T2 DE 60005284 T2 DE60005284 T2 DE 60005284T2 DE 60005284 T DE60005284 T DE 60005284T DE 60005284 T DE60005284 T DE 60005284T DE 60005284 T2 DE60005284 T2 DE 60005284T2
Authority
DE
Germany
Prior art keywords
value
point
division
elliptic curve
add
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
DE60005284T
Other languages
English (en)
Other versions
DE60005284D1 (de
Inventor
Erik Knudsen
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.)
Idemia France SAS
Original Assignee
Oberthur Card Systems SA France
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 Oberthur Card Systems SA France filed Critical Oberthur Card Systems SA France
Publication of DE60005284D1 publication Critical patent/DE60005284D1/de
Application granted granted Critical
Publication of DE60005284T2 publication Critical patent/DE60005284T2/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

Description

  • Die Erfindung bezieht sich auf ein Kryptogaphieverfahren, das zwischen zwei Einheiten eingesetzt wird, die Informationen über einen nicht gesicherten Kommunikationskanal, beispielsweise über ein Kabel- oder Funknetz austauschen, und es erlaubt, die Vertraulichkeit und die Integrität bzw. Unversehrtheit bzw. Vollständigkeit von Informationstransfers zwischen diesen zwei Einheiten sicherzustellen. Die Erfindung bezieht sich genauer auf eine Perfektionierung an Kryptographiesystemen, die Berechnungen über eine elliptische Kurve einsetzen. Die Perfektionierung erlaubt es hauptsächlich, die Berechnungszeit zu reduzieren.
  • Es ist ein Kryptographieprotokoll bekannt, welches insbesondere verwendet wird, um einen Austausch von Sicherheitsschlüsseln bzw. gesicherten Schlüsseln zwischen zwei Einheiten zu realisieren. Es ist unter der Bezeichnung "Echange de Clefs de Diffie-Hellmann" oder "ECDH" (Austausch von Schlüsseln nach Diffie-Hellmann) bekannt. Sein Einsatz erfordert die Verwendung von einer Gruppe im mathematischen Sinn des Terms bzw. Ausdrucks. Eine elliptische Kurve der Art: y2 + xy = x3 + ax2 + βkann eine in einem derartigen Verfahren verwendbare Gruppe ausbilden bzw. darstellen.
  • Es ist bekannt, daß, wenn P = (x, y) in der elliptischen Kurve E enthalten ist, ein "Produkt" oder eine "skalare Multiplikation" des Punkts P von E mit einer ganzen Zahl m definiert werden kann. Diese Operation ist wie folgt definiert: [m] P = P + P + p .... + P (m mal)
  • Es ist bekannt, daß in einem Algorithmus der Art bzw. des Typs "ECDH", die Multiplikation mit 2 eines aus einer derartigen elliptischen Kurve gewählten Punkts P verwendet wird. Diese Operation nennt sich "Verdoppelung des Punkts" und wird in einem iterativen bzw. wiederholenden Verfahren einer Verdoppelung-und-Addition eingeschrieben. Eine derartige Multiplikation mit 2 erfordert Zeit.
  • Der langsamste Teil des Protokolls eines Austauschens von Schlüsseln von Diffie-Hellmann (ECDH) ist die Multiplikation eines im voraus nicht bekannten Punkts der Kurve mit einem aleatorischen bzw. stochastischen Skalar. Es werden hier nur die auf einem Körper mit der Charakteristik 2 definierten Kurven berücksichtigt; das ist eine für die Implementierungen verteilte bzw. verstreute Auswahl, da die Addition in einem derartigen Körper der Operation "exklusives ODER bzw. Antivalenz" entspricht.
  • Es ist bekannt, daß die Multiplikation mit einem Skalar für die definierten Kurven auf einem Körper mit geringer Kardinalzahl durch die Verwendung eines Frobenius-Morphismus beschleunigt werden kann. Es können die Kurven derart ausgewählt werden, daß keiner der bekannten Ansätze sich auf sie bezieht. Es ist jedoch eindeutig bevorzugt, wenigstens im Prinzipplan die Kurve auswählen zu können, welche in einer Klasse von so allgemeinen Kurven wie möglich verwendet werden sollen. Die in der Erfindung beschriebene Methode bezieht sich in ihrer schnellsten Version auf die Hälfte von elliptischen Kurven. Darüber hinaus ist diese Hälfte aus einem kryptographischen Gesichtspunkt die beste. Bevor das Prinzip des Verfahrens bzw. der Methode erläutert bzw. bekanntgegeben wird, wird auf die Basiskonzepte Bezug genommen.
  • Für ein einfaches Illustrieren wird die elliptische Kurve (E) genommen, die geometrisch definiert in der Gesamtheit R der reellen Zahlen durch die Gleichung y2 + y = x3 – x2 darstellbar ist, welche in 1 gezeigt ist, wo eine horizontale Linie eine ganze Zahl m darstellt, eine vertikale Linie eine ganze Zahl n darstellt und jeder Schnitt dieser horizontalen und vertikalen Linien das Paar von ganzzahligen Koordinaten von (m, n) darstellt.
  • (E) tritt durch eine finite bzw. endliche Zahl von Punkten mit ganzzahligen Koordinaten hindurch und jede Sekante an (E) ergibt einen derartigen Schnittpunkt (E) an 2 Punkten, die gegebenenfalls zusammenfallen (Fall der Tangenten an die Kurve).
  • Die Additionsoperation bzw. der Additionsvorgang zwischen zwei beliebigen dieser Punkte A und B ist auf die folgende Weise definiert: es sei B1 der Punkt, wo die Gerade (AB) (E) schneidet; die Senkrechte auf B1 schneidet (E) in C = A + B.
  • In dem speziellen Fall, wo (AB') die Tangente an (E) ist, ist C' die gesuchte Summe.
  • Der Punkt 0, "Schnitt von allen Senkrechten", ist Punkt im Unendlichen von (E) genannt und ist das neutrale Element der so definierten Addition, worauf, wenn die geometrische Konstruktion der Additionsdefinition angewandt wird, erhalten wird: A + 0 = 0 + A = A.
  • Die Verdoppelung von A, notiert als [2]A und definiert als: A + A, ist somit der Punkt B', wobei die Gerade (Ax) eine Tangente in A an (E) ist.
  • Indem an dem Punkt B' die Konstruktion der Addition von A angewandt wird, wird der Punkt [3]A erhalten, und so weiter: dies ist die Definition des Produkts [n]A eines Punkts mit einer ganzen Zahl.
  • Die vorliegende Erfindung betrifft tatsächlich eine Familie von elliptischen Kurven, die geometrisch nicht darstellbar sind, jedoch wie folgt definiert sind:
    Es sei n eine gegebene ganze Zahl,
    Figure 00040001
    der Körper aus 2n Elementen und
    Figure 00040002
    ihr algebraischer Abschluß. Es sei 0 der Punkt im Unendlichen. Es wird eine elliptische nicht-supersinguläre Kurve E, die auf
    Figure 00040001
    definiert ist, die Gesamtheit genannt:
    Figure 00040003
  • Die Elemente von E sind üblicherweise "Punkte" genannt. Es ist gut bekannt, daß E mit einer Abel'schen Gruppenstruktur versehen sein kann, indem der Punkt im Unendlichen als neutrales Element genommen wird. Im Folgenden wird die finite Untergruppe der rationalen Punkte von E berücksichtigt, die definiert ist durch:
    Figure 00050001
  • Wenn N die Gesamtheit der natürlichen ganzen Zahlen für alle m ∊ N ist, dann ist in E die Anwendung einer "Multiplikation mit m" definiert durch:
    Figure 00050002
  • Es ist E[m] als der Kern dieser Anwendung festgehalten bzw. notiert. Die Punkte der Gruppe E[m] sind die Punkte der m-Torsion von E genannt. Die Struktur der Gruppe der Punkte der m-Torsion ist gut bekannt.
  • Indem man sich auf den Fall beschränkt, wo m eine Potenz von 2 ist, erhält man:
    Figure 00050003
    worin Z die Gesamtheit der relativen ganzen Zahlen ist.
  • Da
    Figure 00050004
    eine finite Untergruppe von E ist, existiert daß k' ≥ 1, so daß E[2k] in
    Figure 00050005
    enthalten ist, wenn und nur wenn k ≤ k' ist. Wenn man sich auf die elliptischen Kurven E beschränkt, für welche k' = 1, ist die Struktur von
    Figure 00050005
    :
    Figure 00050006
    worin G eine Gruppe ungerader Ordnung ist und T2 den einzigen Punkt mit der Ordnung 2 von E bezeichnet. Es wird ge sagt, daß eine derartige Kurve eine minimale 2-Torsion besitzt.
  • Es wird nun das Ziel der vorliegenden Erfindung erläutert. Die Multiplikation mit zwei ist nicht injektiv, wenn sie auf E oder
    Figure 00050005
    definiert ist, da sie als Kern: E[2] = {0, T2} aufweist.
  • Wenn man sich daher auf das Gebiet einer Definition der Multiplikation mit 2 an einer Untergruppe mit ungerader Ordnung G ⊂
    Figure 00050005
    reduziert, wird die Multiplikation mit 2 bijektiv.
  • Es resultiert daraus, daß die Multiplikation mit 2 auf dieser Untergruppe eine inverse Anwendung ermöglicht, welche Division durch 2 genannt wird:
    Figure 00060001
  • Es wird [1/2] P der Punkt von G genannt, an welchem die Anwendung einer Verdoppelung dem Punkt P entspricht.
  • Für alle k ≥ 1 wird geschrieben:
    Figure 00060002
  • Um k Zusammensetzungen der Anwendung einer Division durch 2 mit sich selbst darzustellen.
  • Die Erfindung bezieht sich daher in allgemeiner Weise auf ein Kryptographieverfahren, das zwischen zwei Einheiten eingesetzt wird, die Informationen über einen nicht gesicherten Kommunikationskanal austauschen, der Art, daß es wenigstens eine Funktionsphase umfaßt ist, die aus einem Multiplizieren eines Punkts ungerader Ordnung einer nicht super-singulären, elliptischen Kurve in affine Koordination mit einer ganzen Zahl besteht, dadurch gekennzeichnet, daß eine derartige Funktionsphase Additionen und Divisionen durch zwei von Punkten dieser elliptischen Kurve umfaßt; wo die Addition von Punkten eine bekannte Operation ist und die Division durch zwei von einem Punkt P als der einzige Punkt D ungerader Ordnung, wie [2]D = P, definiert wird, wobei ein derartiger Punkt
    Figure 00070001
    und die Operation bzw. der Vorgang der Division durch 2:
    Figure 00070002
    notiert wird.
  • Die Anwendung der Division durch 2 ist für die skalare Mul-tiplikation eines Punkts einer elliptischen Kurve aus folgendem Grund interessant: wenn man in affinen Koordinaten arbeitet, ist es möglich, alle Multiplikationen des Punkts mit 2 einer skalaren Multiplikation durch Divisionen des Punkts durch 2 zu ersetzen.
  • Die Division durch 2 eines Punkts ist bedeutend schneller zu berechnen als seine Multiplikation mit 2. Von einem kryptographischen Standpunkt ist es gut, unter der größten Anzahl von möglichen Kurven eine Auswahl zu haben, und es ist Brauch, eine Kurve zu verwenden, für welche die 2-Torsion von
    Figure 00050005
    minimal oder isomorph mit Z/4Z ist.
  • Für einen gegebenen
    Figure 00040001
    -Körper bilden die elliptischen Kurven der minimalen 2-Torsion exakt die Hälfte der Gesamtheit der elliptischen Kurven aus, die auf
    Figure 00040001
    definiert sind.
  • Die beschriebe Methode bzw. das beschriebene Verfahren bezieht sich deshalb, obwohl es nicht vollständig allgemein ist, in seiner schnellsten Version auf einen guten Teil der in der Kryptographie interessanten Kurven. Sie ist immer in dem Fall anwendbar, wo die Elemente des Körpers auf einer normalen Basis dargestellt sind. In dem Fall einer polynominalen Basis ist der erforderliche Speicherraum in der Ordnung von 0(n2)-Bits.
  • Bestimmte Beispiele sind unten unter Bezugnahme auf die beiliegenden Zeichnungen angegeben, in welchen:
  • 1 ein Diagramm ist, das eine sehr spezielle, jedoch geometrisch darstellbare, elliptische Kurve illustriert, die die elementaren Operationen, die im Rahmen der Erfindung durchgeführt werden, erläutern kann, wobei diese Operationen bzw. Vorgänge oben erklärt wurden;
  • die 2 ein Schema ist, welches die Informationsaustauschvorgänge in Übereinstimmung mit der Erfindung zwischen zwei Einheiten illustriert;
  • die 3 bis 6 Flußdiagramme sind, die bestimmte Anwendungen in Übereinstimmung mit der Erfindung erläutern; und
  • die 7 ein Blockschema eines anderen Informationsaustauschsystem zwischen zwei Einheiten A und B ist, welches fähig ist, ein Kryptographieverfahren gemäß der Erfindung zum Einsatz zu bringen.
  • Es wird gezeigt, wie [1/2] P ∊ G ausgehend von P ∊ G berechnet wird. Nachfolgend wird gezeigt, wie die Verdoppelungen der Punkte durch die Divisionen durch 2 ersetzt werden, um eine Multiplikation mit einem Skalar auszuführen.
  • Es wird eine übliche affine Darstellung eines Punkts: P = (x, y) und die Darstellung: (x, λp) mit λP = x + y / x verwendet.
  • Man folgert aus der zweiten Darstellung y = x (x + λp), welche nur eine Multiplikation verwendet.
  • Indem so vorgegangen wird, werden zum Multiplizieren eines Punkts mit einem Skalar die Multiplikationen beim Berechnen der Zwischenergebnisse mit Hilfe der Darstellung (x, λp) ökonomisiert und es wird nur die Koordinate der affinen Darstellung am Ende der Berechnung bestimmt.
  • Die Division durch zwei eines Punkts P erhält man auf die folgende Weise:
    Es sei [1/2]P ausgehend von P zu berechnen. Es werden dafür die zwei Punkte von E berücksichtigt: P = (x, y) = (x, x (x + λp))und Q = (u, v) = (u, u (u + λQ))so wie: [2]Q = P.
  • Die bekannten Multiplikationsformeln mit 2 ergeben λQ = u + v/u (1) x = λ Q2 + λ Q + α (2) y = (x + u) λ Q + x + v (3)
  • Indem (1) mit u multipliziert wird und der so erhaltene Wert von v in (3) eingegeben wird, wird dieses System: v = u (u + λQ)
    λ Q2 + λ 4 = α + x
    y = (x + u) λ Q + x + u2 + u λ Q = u2 + x(λ Q + 1)oder, da y = x (x + λp): λ Q2 + λ Q= α + x (i) u2 = (x (λ Q + 1) + y = (λ Q + λP + x + 1) (ii) v = u (u + λ Q) (iii)
  • Ausgehend von P = (x, y) = (x, x (x + λP)) in affinen Koordinaten oder in der Darstellung (x, λP) bestimmt dieses Gleichungssystem die zwei Punkte:
    Figure 00100001
    welche P durch Multiplikation mit 2 ergeben. Die folgende Eigenschaft erlaubt es sie zu unterscheiden.
  • Es sei E eine elliptische Kurve mit minimaler 2-Torsion und P ∊
    Figure 00050005
    = G × {0, T2} das eine ihrer Elemente ungerader Ordnung.
  • Es sei Q ∊ {[1/2]P, [1/2]P + T2} und Q1 der eine der zwei Punkte von E, wie [2]Q1 = Q.
  • Es gibt die notwendige und ausreichende Bedingung:
    Figure 00100002
  • Es wird daraus der Schluß gezogen, daß es möglich ist zu testen, wenn Q = [1/2] P, indem die Formeln (i), (ii) und (iii) auf Q angewandt werden und indem verifiziert wird, ob der eine der erhaltenen Punkte zu
    Figure 00050005
    gehört.
  • Dieses Verfahren kann auf eine willkürliche, elliptische Kurve
    Figure 00050005
    = G × E[2k] ausgeweitet werden. Dafür werden k mal die Formeln (i), (ii) und (iii) angewandt: das 1-ste Mal auf Q, um Q1 zu erhalten, wie [2]Q1 = Q; das i-te Mal auf Qi-1, um einen Punkt Qi zu erhalten, wie [2]Qi = Qi-1. Der resultierende Punkt Qk wird von der Form
    Figure 00110001
    +
    Figure 00110002
    sein, wenn und nur wenn Q = [1/2]P + T2 ist, liegt er in der Form
    Figure 00110003
    +
    Figure 00110004
    mit 0 ≤ i ≤ k sein, wenn und nur wenn Q = [1/2]P. Man erhält somit die notwendige und ausreichende Bedingung:
    Figure 00110005
  • Dieses Verfahren ist natürlich lange, wenn k groß ist.
  • Die Beziehung (a) zeigt, daß man dies wissen kann, wenn Q = [1/2]P oder Q = [1/2]P + T2, indem betrachtet bzw. beachtet wird, daß die Koordinaten von Q1 zu
    Figure 00040001
    oder zu einem übergeordneten Körper von
    Figure 00040001
    gehören. Da Q1 durch die Gleichungen (i), (ii) und (iii) bestimmt ist, müssen die bei der Lösung dieser Gleichungen verwendeten Operationen studiert werden, welche nicht körperintern sind, sondern ihr Ergebnis in einem übergeordneten Körper von
    Figure 00040001
    aufweisen. Der einzige mögliche Fall ist jener der Lösung der Gleichung 2-ter Ordnung (i): man muß auch eine Quadratwurzel berechnen, um die 1. Koordinate von Q1 zu berechnen, jedoch in der Charakteristik 2 ist die Quadratwurzel eine körperinterne Operation. Man erhält daher:
    Figure 00120001
  • Diese notwendige und ausreichende Bedingung wird auch geschrieben, da die Quadratwurzel körperintern ist:
    Figure 00120002
  • Die vorhergehende Relation bzw. Beziehung erlaubt es, den unten erwähnten Algorithmus in dem Fall zu optimieren, wo die Berechnungszeit der Quadratwurzel nicht negierbar ist.
  • Für P ∊ G sind 2 Lösungen von (i) λ[1/2]p und λ[1/2]p + 1 und man deduziert aus (ii), daß die 1. Koordinaten der zugehörigen Punkte u und (u + √x) sind. Es ist somit möglich, einen Algorithmus abzuleiten, welcher es erlaubt, [1/2]P in folgender Weise zu berechnen:
    Wenn
    Figure 00120003
    ein finiter bzw. endlicher Körper von 2n Elementen ist, ist
    Figure 00050005
    die Untergruppe einer elliptischen Kurve E, die durch:
    Figure 00120004
    definiert ist, und E[2k] ist die Gesamtheit der Punkte P dieser elliptischen Kurve, wie P, 2 k mal zu sich selbst addiert ergibt das neutrale Element 0 mit k ganzzahlig größer oder gleich 1, während ein Punkt P = (x, y) dieser elliptischen Kurve durch die Division durch zwei den Punkt
    Figure 00130001
    = (uo,vo) der elliptischen Kurve ergibt, der erhalten wird, indem die folgenden durch das Flußdiagramm der 3 dargestellten Operationen ausgeführt werden:
    • – es wird ein erster Wert λo gesucht, wie λo 2 + λo = α + x
    • – es wird ein zweiter Wert uo 2 berechnet, wie uo 2 = x (λo + 1) + y
    • – wenn k 1 beträgt, wird gesucht, ob die Gleichung λ2 + λ = α2 + uo2 Lösungen in
      Figure 00040001
      besitzt,
    • – im zustimmenden bzw. bejahenden Fall wird die Division durch zwei durch:
      Figure 00130002
      im negativen bzw. verneinenden Fall wird x zu dem zweiten Wert uo 2 hinzugefügt und 1 zu dem ersten Wert λo hinzugefügt, um die Division durch zwei wie in der vorhergehenden Operation auszuführen;
    • – wenn k größer als 1 ist, wird eine iterative Berechnung durchgeführt, bestehend aus: Suchen eines Werts λi, wie λi 2 + λi = α + ui-1 anschließend Berechnen des Werts u2 i, wie u2 i = ui-1i + λi-1 + ui-1 + 1) indem i ausgehend von i=1 inkrementiert wird, bis der Wert uk-1 2 erhalten wird
    • – es wird gesucht, ob die Gleichung λ2 + λ = α2 + u2 k-1 in
      Figure 00130003
      Lösungen besitzt
    • – im bejahenden Fall wird die Division durch zwei berechnet mit:
      Figure 00140001
    • – im negativen Fall wird x zu dem zweiten Wert uo 2 hinzugefügt und 1 zu dem ersten Wert λo hinzugefügt, um die Division durch zwei wie in der vorhergehenden Operation zu berechnen.
  • Wenn man versucht, den Punkt
    Figure 00140002
    = (uo, vo) der elliptischen Kurve durch (uo, λo) mit λo = u0 + vo /u0 dazustellen, stimmt nun der Algorithmus mit dem Flußdiagramm von 4 überein, worin:
    • – ein erster Wert λo gesucht wird, wie λo 2 + λo = α + x
    • – ein zweiter uo berechnet wird, wie uo 2 = x(λo + 1) + y,
    • – wenn k 1 beträgt, gesucht wird, ob die Gleichung λ2 0 + λ0 = α2 + u2 o in
      Figure 00040001
      Lösungen besitzt,
    • – im bestätigenden Fall die Division durch zwei berechnet wird aus:
      Figure 00140003
      im negativen Fall x zu dem zweiten Wert u2 o hinzugefügt wird und 1 zu dem ersten Wert λo hinzugefügt wird, um die Division durch zwei wie in der vorhergehenden Operation durchzuführen;
    • – wenn k größer als 1 ist, eine iterative Berechnung durchgeführt wird bestehend aus: Suchen eines Werts λi, wie λi 2 + λi = α + ui-1 anschließend Berechnen des Werts ui 2, wie ui 2 = ui-1i + λi-1 + ui-1 +1) indem i ausgehend von i = 1 erhöht wird, bis der Wert u2 k-i erhalten wird
    • – gesucht wird, ob die Gleichung λ2 + λ = α2 + u2 k-1 in
      Figure 00040001
      Lösungen besitzt
    • – im bestätigenden Fall die Division durch zwei berechnet wird aus:
      Figure 00150001
    • – im negativen Fall x zu dem zweiten Wert uo 2 hinzugefügt wird und 1 zu dem ersten λo hinzugefügt wird, um die Division durch zwei wie in der vorhergehenden Operation durchzuführen.
  • Wenn man versucht, den Punkt P = (x, y) durch (x, λP) darzustellen, indem λp = x+y/x festgelegt wird, welches durch die Division durch zwei den Punkt
    Figure 00150002
    = (uo, vo) der elliptischen Kurve ergibt, stimmt der Algorithmus mit dem Flußdiagramm von 5 überein, worin:
    • – ein erster Wert λo gesucht wird, wie λo 2 + λo = α + x
    • – ein zweiter Wert uo berechnet wird, wie uo 2 = x(λo + λp + x + 1)
    • – wenn k 1 beträgt, gesucht wird, ob die Gleichung λ2 + λ = α2 + uo 2 in
      Figure 00040001
      Lösungen besitzt,
    • – im bestätigenden Fall die Berechnung durch zwei berechnet wird aus:
      Figure 00160001
    • – im negativen Fall x zu dem zweiten Wert uo hinzugefügt wird und 1 zu dem ersten Wert λo hinzugefügt wird, um die Division durch zwei wie in der vorhergehenden Operation auszuführen;
    • – wenn k viel größer als 1 ist, eine iterative Berechnung durchgeführt wird, bestehend aus: Suchen eines Werts λi, wie λi 2 + λi = α + ui-1 anschließend Berechnen des Wert ui 2, wie ui 2 = ui-1i + λi-1 + ui-1 +1) indem i ausgehend von i = 1 inkrementiert bzw. erhöht wird, bis der Wert u2 k-1 erhalten wird
    • – gesucht wird, ob die Gleichung λ2 + λ = α2 + u2 k-1 in
      Figure 00040001
      Lösungen besitzt
    • – im bestätigenden Fall die Division durch zwei berechnet wird aus:
      Figure 00160002
      und
      Figure 00170001
    • im negativen Fall x zu dem zweiten Wert uo 2 hinzugefügt wird und 1 zu dem ersten Wert λo hinzugefügt wird, um die Division durch zwei wie in der vorigen Operation durchzuführen.
  • Wenn ausgewält wird, den Punkt P = (x, y) durch (x, λp) mit λp = x + y/x darzustellen, der durch die Division durch zwei den Punkt
    Figure 00170002
    = (uo, vo) der elliptischen Kurve ergibt, die durch (uo, λo) mit λo = uo + v0/u0 dargestellt ist, stimmt schließlich der Algorithmus mit dem Flußdiagramm der 6 überein, worin:
    • – ein erster Wert λo wie λo + λo = α + x gesucht wird,
    • – ein zweiter Wert uo 2, wie uo 2 = x (λo + λp + x + 1) berechnet wird,
    • – wenn k 1 beträgt, gesucht wird, ob die Gleichung λ2 + λ = α2 + uo 2 in
      Figure 00040001
      Lösungen besitzt,
    • – im bestätigenden Fall die Division durch zwei berechnet wird aus:
      Figure 00170003
    • – im negativen Fall x zu dem zweiten Wert uo hinzugefügt wird und 1 zu dem ersten Wert λo hinzugefügt wird, um die Division durch zwei wie in der vorhergehenden Operation zu berechnen;
    • – wenn k viel größer 1 ist, eine iterative Berechnung durchgeführt wird bestehend aus: Suchen eines Werts λi, wie + λi = α + ui-1 danach Berechnen des Werts ui Z, wie ui2 = ui-1i + λi-1 + ui-i + 1) indem i ausgehend von i=1 erhöht wird, bis der Wert u2 k-1 erhalten wird
    • – gesucht wird, ob die Gleichung λ2 + λ = α2 + u2 k-1 in
      Figure 00040001
      Lösungen besitzt,
    • – im bejahenden Fall die Division durch zwei berechnet wird aus:
      Figure 00180001
    • – im negativen Fall x zu dem zweiten Wert uo 2 hinzugefügt wird und 1 zu dem ersten Wert λo hinzugefügt wird, um die Division durch zwei wie in der vorhergehenden Operation zu berechnen.
  • Es wird nun beschrieben, wie der Test, die Auflösung der Gleichung zweiten Grades und die Berechnung der Quadratwurzel in dem Algorithmus der Division eines Punkts durch 2 schnell durchgeführt wird. Es werden die zwei Fälle mit normaler Basis und Polynombasis berücksichtigt.
  • Die Ergebnisse auf normaler bzw. Normalbasis sind bekannt. Man kann
    Figure 00040001
    als vektoriellen Raum mit n Dimensionen auf F2 betrachten. In einer Normalbasis ist ein Element des Körpers dargestellt durch:
    Figure 00180002
    worin β ∊
    Figure 00040001
    so gewählt ist, daß:
    Figure 00190001
    eine Basis
    Figure 00040001
    ist. In einer Normalbasis berechnet sich die Quadrat-wurzel durch eine kreisförmige Linksverschiebung und das Erheben zum Quadrat durch eine kreisförmige Rechtsverschiebung. Die entsprechenden Zeiten einer Berechnung sind vernachlässigbar.
  • Wenn die Gleichung zweiten Grades: λ2 + λ = x ihre Lösungen in
    Figure 00040001
    hat, ist eine Lösung somit gegeben durch:
    Figure 00190002
  • Die Zeit einer Berechnung von λ ist vernachlässigbar gegenüber der Zeit einer Berechnung einer Multiplikation oder einer Inversion in dem Körper. Da die Zeit der Berechnung einer Lösung der Gleichung zweiter Ordnung vernachlässigbar ist, kann man den Test auf folgende Weise durchführen: Berechnen eines Kandidaten λ ausgehend von x und Testen, ob λ2 + λ = x. Wenn dies nicht der Fall ist, hat die Gleichung keine Lösung in
    Figure 00190003
  • Auf Polynombasis verwendet man die Darstellung:
    Figure 00190004
    Die Quadratwurzel von x kann berechnet werden, indem das Element √T gespeichert wird, wenn man anmerkt, daß:
    in einem Körper der Charakteristik 2 die Quadratwurzel ein Morphismus des Körpers
    Figure 00190005
    ist.
  • Indem in x die geraden und ungeraden Potenzen von T neu gruppiert werden und die Quadratwurzel gezogen wird, ergibt sich:
    Figure 00200001
    so genügt es für eine Berechnung einer Quadratwurzel zwei Vektoren um die Hälfte zu "reduzieren" und nachfolgend eine Multiplikation eines vorberechneten Werts mit einem Element einer Länge n/2 durchzuführen. Deshalb ist die Zeit einer Berechnung einer Quadratwurzel auf einer Polynombasis äquivalent der Hälfte der Zeit einer Berechnung für eine Multiplikation in dem Körper.
  • Für den Test und die Lösung der Gleichung zweiten Grades wird
    Figure 00040001
    als ein vektorieller Raum mit n Dimensionen über F2 betrachtet. Die durch:
    Figure 00200002
    definierte Anwendung F ist somit ein linearer Operator des Kerns {0, 1}.
  • Für ein gegebenes x hat die Gleichung λ2 + λ = x ihre Lösungen in
    Figure 00040001
    , wenn und nur wenn der Vektor x in dem Bild von F ist. Im (F) ist ein Unterraum von
    Figure 00040001
    mit n – 1 Dimensionen. Für eine gegebene Basis von
    Figure 00040001
    und das entsprechende skalare bzw. Skalarprodukt existiert ein einziger nicht trivialer Vektor, der auf alle Vektoren von Im(F) orthogonal ist. Es sei w dieser Vektor. Man erhält:
    Figure 00210001
  • So kann die Ausführung des Tests durchgeführt werden, indem die Komponenten von x zu den Komponenten von w gleich 1 entsprechend hinzugezählt werden. Die Zeit für eine Ausführung dieses Tests ist vernachlässigbar.
  • Für die Lösung der Gleichung 2-ten Grades: F(λ) = λ2 + λ = x auf einer Polynombasis wird ein einfaches und direktes Verfahren vorgeschlagen, das die Speicherung einer Matrix von n × n umfaßt. Dafür wird ein linearer Operator G gesucht, wie:
    Figure 00210002
  • Es sei γ ∊
    Figure 00040001
    ein Vektor, wie γ
    Figure 00210003
    Im(F), und G definiert durch:
    Figure 00210004
  • Wenn x =
    Figure 00210005
    xiF(Ti) ∊ Im(F) gegeben ist, ist somit G (x) eine Lösung der Gleichung 2-ten Grads. Eine Implementierung besteht im Vorabberechnen der Matrix die G darstellt, in bzw. auf der Basis {1,T,........,Tn-1}. In der Charakteristik von 2 reduziert sich die Multiplikation einer Matrix mit einem Vektor auf die Addition der Spalten der Matrix zu den entsprechenden einer Komponente des Vektors gleich 1. Es folgt, daß diese Methode der Lösung einer Gleichung 2-ter Ordnung im Mittel n/2 Additionen im Körper
    Figure 00040001
    verbraucht.
  • Es wird nachfolgend die Anwendung der auf die skalare Mul-tiplikation angewandten Prinzipien beschrieben.
  • Es sei P ∊
    Figure 00050005
    ein Punkt ungerader r-ter Ordnung, c eine ganze aleatorische Zahl und m der Gesamtteil von log2 (r). Es wird das Produkt [c]P eines Punkts mit einem Skalar berechnet wird, indem die Anwendung einer Division eines Punkts durch 2 verwendet wird.
  • Es zeigt sich, daß:
    Für jede ganze Zahl c existiert eine rationale Zahl der Form:
    Figure 00220001
    wie
    Figure 00220002
  • Es sei <P> die zyklische Gruppe, die durch P generiert ist. Wenn ein ringförmiger Isomorphismus vorliegt:
    Figure 00220003
    kann man die skalare Multiplikation berechnen mit:
    Figure 00220004
    indem die Divisionen durch 2 und die Additionen verwendet werden. Der gut bekannte Algorithmus der Verdoppelung-Addition kann für diese Berechnungen verwendet werden. Es genügt dafür, in dem Algorithmus die Verdoppelungen durch die Divisionen durch 2 zu ersetzen. Man muß log2 (r) Divisionen durch 2 und im Mittel 1/2 log2 (r) Additionen ausführen. Es existieren Verbesserungen an dem Algorithmus der Verdoppelung-Addition, welche im Mittel nur 1/3 log2 (r) Additionen erfordern.
  • Als Folge wird eine vorher genannte skalare Multiplikation, die eine Division durch zwei verwendet, wie sie oben definiert wurde, durch die folgenden Operationen erhalten:
    • – wenn dieser Skalar der Multiplikation mit S bezeichnet wird, werden m+1 Werte So ... Sm ∊ {0,1} gewählt, um S zu definieren durch:
      Figure 00230001
    • – indem r von der zuvor ausgeführten, ungerader Ordnung ist und m ist die einzige ganze Zahl zwischen log2(r) – 1 und log2 (r) ist,
    • – berechnet man die skalare Multiplikation [S]P eines Punkts P dieser elliptischen Kurve mit dem Skalar S durch Anwendung eines Algorithmus, der aus einer Bestimmung der Folge von Punkten (Qm+1 Qm. . ., Qi. . ., Qo) dieser elliptischen Kurve E besteht, wie:
      Figure 00230002
    • – wobei die Berechnung des letzten Punkts Qo dieser Folge das Resultat [S]P der skalaren Multiplikation ergibt.
  • Um den ursprünglichen Punkt P zu einem Zwischenergebnis Q =
    Figure 00240001
    hinzuzuzählen, wird der folgende Algorithmus verwendet, welcher ein traditioneller Algorithmus ist, der nur geringfügig modifiziert ist:
    Eingabe: P = (x, y) in affinen Koordinaten und Q = (u, u(u + λQ)), dargestellt durch (u, λQ)
    Ausgabe: P + Q = (s, t) in affinen Koordinaten
  • Algorithmus
    Figure 00240002
  • Dieser Algorithmus verwendet 1 Inversion, 3 Multiplikationen und 1 Quadratwurzel.
  • Der erhaltene Zeitgewinn, indem die Operationen einer Multiplikation mit 2 durch Divisionen durch 2 ersetzt werden, ist bedeutend. In affinen Koordinaten erfordern sowohl die Multiplikation mit 2 als auch die Addition beide: eine Inversion, zwei Multiplikationen und eine Quadratwurzel. Wenn der Skalar der Multiplikation mit einem Skalar durch einen Vektor von Bits einer Länge m und mit k Komponenten, die nicht Null sind, dargestellt ist, erfordern die Operationen für die skalare Multiplikation:
    Figure 00250001
  • So werden, indem die Division durch 2 verwendet wird, m Inversionen, m-k Multiplikationen und m Quadrate zum Preis von m Lösungen 2-ter Ordnung, m Quadratwurzeln und m Tests ökonomisiert bzw. eingetauscht.
  • Auf Polynombasis kann man eine Zeitverbesserung einer Durchführung nahe 50 % erhalten.
  • Auf Normalbasis wird die Berechnungszeit der Quadratwurzel des Test und der Lösung der Gleichung 2-ter Ordnung als gegenüber der Berechnungszeit einer Multiplikation oder einer Inversion als negierbar abgeschätzt. Indem unter anderen angenommen wird, daß die Berechnungszeit einer Inversion gleich der Berechnungszeit von 3 Multiplikationen ist, gelangt man zu einer Verbesserung der Ausführungszeit von 55 %.
  • 2 illustriert schematisch eine mögliche Anwendung der oben beschriebenen Algorithmen, die zwischen zwei Einheiten A und B angewandt werden, die Informationen über einen nicht gesicherten Kommunikationskanal austauschen. Dieser Kommunikationskanal kann hier aus einfachen elektrischen Verbindungen, die zwischen den zwei Einheiten zum Zeitpunkt einer Transaktion bzw. Übertragung eingerichtet sind, bestehen. Er kann auch ein Telekommunikationsnetz, ein Funk netz und/oder optisches Netz umfassen. Im gegenwärtigen Fall ist die Einheit A eine Mikrochipkarte und die Einheit B ist ein Server. Sobald die beiden Einheiten miteinander über den Kommunikationskanal in Beziehung bzw. Verbindung gebracht wurden, werden diese Einheiten ein Konstruktionsprotokoll eines gemeinsamen Schlüssels anwenden.
  • Um dies auszuführen:
    • – besitzt die Einheit A einen geheimen bzw. Geheimschlüssel a
    • – besitzt die Einheit B einen Geheimschlüssel b.
  • Sie können einen ihnen allein bekannten Geheimschlüssel x, ausgehend von einem öffentlichen Schlüssel, der aus einem Punkt P ungerader Ordnung r einer elliptischen Kurve E besteht, die gewählt ist und nicht supersingulär ist, erarbeiten.
  • Das eingesetzte bzw. angewandte Protokoll ist von der Diffie-Hellman-Art, indem die "Multiplikationen mit zwei", welche üblicherweise Verdoppelungen des Punkts durch die genannte Operation genannt werden, als "Division durch zwei" gemäß der hier oben beschriebenen Erfindung ersetzt werden.
  • Um dies durchzuführen, ist der Algorithmus der Folgende:
    • – die erste Einheit (beispielsweise A) berechnet die skalare Multiplikation [a)P und schickt den resultierenden Punkt an die zweite Einheit,
    • – die zweite Einheit (B) berechnet die skalare Multiplikation [b]P und schickt den resultierenden Punkt an die erste Einheit,
    • – die zwei Einheiten berechnen jeweils einen gemeinsamen Punkt (C) = (x, y) der elliptischen Kurve (E), indem sie jeweils skalare Multiplikationen [a] ([b]P) und [b] ([a]P) durchführen, die beide gleich [a.b]P sind,
    • – die zwei Einheiten wählen als gemeinsamen Schlüssel die Koordinate x des gemeinsamen Punkts (C), der durch die skalare Multiplikation [a.b]P erhalten ist, wobei wenigstens die vorhergehenden skalaren Multiplikationen, und vorzugsweise sämtliche, mit Hilfe der zuvor definierten Divisionen durch zwei ausgeführt werden.
  • Als bedeutend präziseres Beispiel stellt die 7 einen Server B dar, der mit einem Kommunikationsnetz 1 über ein Kommunikations-Interface 2 beispielsweise in der Art eines Modems verbunden ist. In analoger Weise ist eine Berechnungsstation 3 mit dem Netz 1 durch ein Kommunikations-Interface 4 verbunden. Die Station 3 ist mit einem Lesegerät für die Mikrochip karte 5 ausgestattet, in welchen die Karte mit einem Mikroschaltkeis bzw. -chip A eingesetzt ist.
  • Der Aktivspeicher 6 des Servers B enthält ein Programm 7 das fähig ist, kryptographische Berechnungen auf elliptischen Kurven, und insbesondere das Produkt eines Punkts mit einem Skalar und die Division eines Punkts durch 2 auszuführen.
  • Die Karte A umfaßt eine Zentraleinheit 11, einen Aktivspeicher, der "RAM" 8 genannt wird, einen Festspeicher, der "ROM" 9 genannt wird, und einen wiederbeschreibbaren Speicher, der "EEPROM" 10 genannt wird. Einer der Speicher 9 oder 10 enthält ein Programm 12, das fähig ist, kryptographische Berechnungen an elliptischen Kurven, und insbesondere das Produkt eines Punkts mit einem Skalar und die Division eines Punkts durch 2 auszuführen.
  • Die zwei Programme 7 und 12 besitzen einen gemeinsamen Bezug, der aus ein und derselben elliptischen Kurve (E) und ein und demselben Punkt P = (x0, y0) von (E) besteht bzw. gebildet ist.
  • Wenn A es wünscht, parallel zu B einen gemeinsamen Geheimschlüssel zu konstruieren, um einen Dialog mit B zu sichern, wählt es einen Skalar a aus und sendet an B das Produkt Q = [a] P = (x1, y1). In Antwort auf diese Sendung wählt B einen Skalar b und retourniert das Produkt R = [b]P = (x2, Y2) an A.
  • A berechnet somit das Produkt [a] R = [ab] P = (x, y) , während B das Produkt [b] Q = [ab] P = (x, y) berechnet, und A und B nehmen x als gemeinsamen Geheimschlüssel an.
  • Diese Operationen können in der nachfolgenden Tabelle dargestellt werden. Jene, die in dem Server B ausgeführt werden, sind in der rechten Spalte angeführt, während jene, welche auf der Karte A ausgeführt werden, in der linken Spalte angeführt sind, wobei die horizontalen Pfeile den Informationstransfer über das Netz 1 symbolisieren.
  • Figure 00280001
  • Eine andere mögliche Anwendung, die die Erfindung ins Spiel bringt, ist fähig, zwischen den zwei Einheiten A und B der 7 eingesetzt zu werden. Es handelt sich um ein Signaturprotokoll einer Nachricht M, die zwischen A und B über den nicht gesicherten Kanal, d.h. das Netz 1, übertragen wird. Der Zweck dieses Protokolls, das in seinen großen Zügen bekannt ist, ist es, die Sicherheit einzubringen, daß die durch eine der Einheiten erhaltene Nachricht gut durch jene abgesandt wurde, mit welcher diese korrespondiert.
  • Um dies auszuführen, besitzt die absendende Einheit (beispielsweise A) zwei permanente bzw. Permanentschlüssel, einen geheimen a und einen öffentlichen Q = [a]P, worin P ein Punkt einer elliptischen Kurve (E) ist, wobei P und (E) bekannt und durch A und B vereinbart sind. Ein anderer öffentlicher Schlüssel besteht aus dem Punkt P ungerader Ordnung r der gewählten elliptischen Kurve E, die nicht supersingulär ist. Die ins Spiel gebrachten Operationen implizieren Divisionen durch zwei in dem oben definierten Sinn.
  • Gemäß einem möglichen Beispiel:
    • – konstruiert die erste Einheit (A), welche das Paar von Permanentschlüsseln besitzt, ein Paar von einzigartigen Schlüsseln zur Verwendung, wobei der eine (g) beliebig gewählt wird und der andere [g]P aus einer skalaren Multiplikation des Schlüssels (g) resultiert, der beliebig bzw. willkürlich durch den öffentlichen Punkt P der elliptischen Kurve gewählt wurde, wobei die Koordinaten dieses Schlüssels ([g] P) mit (x, y) mit 2 ≤ g ≤ r – 2 notiert sind,
    • – konvertiert die erste Einheit (A) das Polynom x des Schlüssels mit einzigartiger Verwendung [g]P = (x, y) in eine ganze Zahl i, deren binärer Wert durch die Sequenz der binären Koeffizienten des Polynoms x dargestellt ist,
    • – berechnet die erste Einheit (A) eine Signatur bzw. eine Unterschrift (c, d) der Nachricht (M) in der folgenden Weise: c = i Modulo r d = g–1 (M + ac) Modulo r,
    • – die genannte erste Einheit sendet die Nachricht (M) und die Signatur (c, d) an die zweite Einheit; bei Empfang
    • – verifiziert die zweite Einheit (B), ob die Elemente dieser Signatur (c, d) jeweils dem Intervall[1, r-1] angehören,
    • – im negativen Fall wird die Signatur als nicht gültig erklärt und gestoppt
    • – im bejahenden Fall berechnet die zweite Einheit (B) drei Parameter: h = d–1 Modulo r h1 = Mh Modulo r h2 = ch Modulo r
    • – die genannte zweite Einheit berechnet einen Punkt T der elliptischen Kurve durch die Summe der skalaren Multiplikationen der Punkte P und Q durch die zwei letzteren genannten Parameter: T = [h1] P + [h2] Qwenn der resultierende Punkt T ein neutrales Element ist, erklärt die zweite Einheit die Signatur als nicht gültig und stoppt. Wenn nicht, indem der Punkt T mit den Koordinaten x' und y' berücksichtigt wird: T = (x', y'),
    • – wandelt die zweite Einheit (B) das Polynom x' dieses Punkts in eine ganze Zahl i' um, deren binärer Wert durch die Sequenz der binären Koeffizienten des Polynoms x' dargestellt ist,
    • - berechnet die zweite Einheit (B) c' = i' Modulo r, und
    • – verifiziert, daß c' = c, um die Signatur als gültig zu erklären bzw. zu validisieren oder als ungültig zu erklären in dem entgegengesetzten Fall, wobei wenigstens eine vorgenannte skalare Multiplikationsoperation und vorzugsweise sämtliche mit Hilfe der zuvor definierten Divisionen durch zwei ausgeführt werden.
  • Diese Operationen können durch die nachfolgende Tabelle dargestellt werden, wo die Operationen, die durch den Server B ausgeführt werden, in der rechten Spalte dargestellt sind, während die Operationen, die durch die Karte A ausgeführt werden, in der linken Spalte angezeigt sind, wobei der Pfeil zwischen den zwei Spalten die Informationstransfers über bzw. durch das Netz 1 symbolisieren.
  • Figure 00320001

Claims (10)

  1. Kryptografieverfahren, das zwischen zwei Einheiten, die Informationen über einen nicht gesicherten Kommunikationskanal austauschen, eingesetzt wird, der Art, daß es wenigstens eine Funktionsphase umfaßt, die aus einem Multiplizieren eines Punkts ungerader Ordnung einer nicht super-singulären, elliptischen Kurve in affine Koordinaten mit einer ganzen Zahl besteht, dadurch gekennzeichnet, daß mit dem Ziel einer Durchführung des Informationsaustausches über den nicht gesicherten Kommunikationskanal eine derartige Funktionsphase Additionen und Divisionen durch zwei von Punkten dieser elliptischen Kurve umfaßt, wo die Addition von Punkten eine bekannte Operation ist und die Division durch zwei von einem Punkt P als der einzige Punkt D ungerader Ordnung, wie [2]D = P, definiert wird, wobei ein derartiger Punkt
    Figure 00330001
    und die Operation der Division durch 2:
    Figure 00330002
    notiert wird.
  2. Verfahren nach Anspruch 1, wo
    Figure 00050005
    ein endlicher Körper mit 2n Elementen ist,
    Figure 00040001
    einer elliptischen Kurve E ist, die definiert ist durch:
    Figure 00330003
    und E[2k] die Gesamtheit der Punkte P dieser elliptischen Kurve ist, wie P, addiert 2k mal zu sich selbst, das neutrale Element O ergibt, mit ganzzahligem k größer oder gleich 1, dadurch gekennzeichnet, daß ein Punkt P = (x, y) dieser elliptischen Kurve durch diese Division durch zwei den Punkt
    Figure 00340001
    = (u0, v0) dieser elliptischen Kurve gibt, der erhalten wird, indem die folgenden Operationen ausgeführt werden: man sucht einen ersten Wert λ0, wie λ0 2 + λ0 = α + x man berechnet einen zweiten Wert uo 2, wie uo 2 = x (λo + 1) + y wenn k 1 beträgt, sucht man, ob die Gleichung λ2 + λ = α2 + u2 0 Lösungen in
    Figure 00040001
    besitzt, im bejahenden Fall berechnet man die Division durch zwei aus:
    Figure 00340002
    im verneinenden Fall fügt man x zu dem zweiten Wert u0 2 hinzu und man fügt 1 zu dem ersten Wert λ0 hinzu, um die Division durch zwei wie in der vorherigen Operation zu berechnen; wenn k größer als 1 ist, führt man eine iterative Berechnung durch, bestehend aus: Suchen eines Wertes λi, wie λi 2 + λi = α + ui-1 anschließend Berechnen des Werts u2 i, wie u2 i = ui-1i + λi-1 + ui-1 + 1) indem i ausgehend von i = 1 inkrementiert wird, bis der Wert u2 k-1, erhalten wird; man sucht, ob die Gleichung λ2 + λ = α2 + u2 k-1 Lösungen in
    Figure 00040001
    besitzt; bejahendenfalls berechnet man die Division durch zwei aus:
    Figure 00340003
    verneinendenfalls fügt man x zu dem zweiten Wert u0 2 hinzu und man fügt 1 zu dem ersten Wert λ0 hinzu, um die Division durch zwei wie in der vorherigen Operation zu berechnen.
  3. Verfahren nach Anspruch 1, wo:
    Figure 00350001
    ein endlicher Körper von 2n Elementen ist,
    Figure 00050005
    die Untergruppe einer elliptischen Kurve E ist, die definiert ist durch:
    Figure 00350002
    und E[2k] die Gesamtheit der Punkte P dieser elliptischen Kurve ist, wie P, 2k mal zu sich selbst addiert, das neutrale Element O ergibt, mit ganzzahligem k größer oder gleich 1, dadurch gekennzeichnet, daß ein Punkt P = (x, y) dieser elliptischen Kurve durch diese Division durch zwei den Punkt
    Figure 00350003
    = (u0, λ0) mit λ0 = u0 + v0/u0 ergibt, welcher erhalten wird, indem die folgenden Operationen durchgeführt werden: man sucht einen ersten Wert λ0, wie λ0 2 + λ0 = α + x man berechnet einen zweiten Wert u0 2 , wie: u0 2 = X(λ0 + 1) + ywenn k 1 beträgt, sucht man, ob die Gleichung λ2 + λ = α2 + u0 2 in
    Figure 00040001
    Lösungen besitzt, im bejahenden Fall berechnet man diese Division durch zwei aus:
    Figure 00350004
    im negativen Fall fügt man x zu dem zweiten Wert u0 2 hinzu und fügt 1 zu dem ersten Wert λ0 hinzu, um die Division durch zwei wie in der vorherigen Operation zu berechnen; wenn k größer als 1 ist, führt man eine iterative Berechnung durch, bestehend aus: Suchen eines Wertes λi, wie λi 2 + λi = α + ui-1 dann Berechnen des Werts u2 i, wie u2 i = ui-1i + λi-1 + ui-1 + 1) indem i ausgehend von i = 1 inkrementiert wird, bis der Wert u2 k-1 erhalten wird; man sucht, ob die Gleichung λ2 + λ = α2 + u2 k-1 in
    Figure 00040001
    Lösungen besitzt; im bejahenden Fall berechnet man die Division durch zwei aus:
    Figure 00360001
    im negativen Fall fügt man x zu dem zweiten Wert u0 2 hinzu und fügt 1 zu dem ersten Wert λ0 hinzu, um diese Division durch zwei wie in der vorherigen Operation zu berechnen.
  4. Verfahren nach Anspruch 1, wo:
    Figure 00040001
    ein endlicher Körper von 2n Elementen ist,
    Figure 00050005
    die Untergruppe einer elliptischen Kurve E ist, definiert durch:
    Figure 00360002
    und E[2k] die Gesamtheit der Punkte P dieser elliptischen Kurve ist, wie P, 2k mal zu sich selbst addiert, das neutrale Element O ergibt, mit ganzzahligem k größer oder gleich 1, dadurch gekennzeichnet, daß ein Punkt P = (x, y) dieser elliptischen Kurve, der durch (x, λP) dargestellt wird, mit λP = x + y/x, bei dieser Division durch zwei den Punkt
    Figure 00360003
    = (uo, vo) dieser elliptischen Kurve gibt, der durch Ausführen der folgenden Operationen erhalten wird: man sucht einen ersten Wert λ0, wie λ0 2 + λ0 = α + x man berechnet einen zweiten Wert u0 2, wie: u0 = x (λ0 + λP + x + 1) wenn k 1 beträgt, sucht man, ob die Gleichung λ2 + λ = α2 + u0 2 Lösungen in
    Figure 00040001
    besitzt, im bejahenden Fall berechnet man diese Division durch zwei aus:
    Figure 00360004
    im negativen Fall fügt man x zu diesem zweiten Wert u0 2 hinzu und man fügt 1 zu dem ersten Wert λ0 hinzu, um diese Division durch zwei wie in dem vorherigen Verfahren zu berechnen; wenn k größer 1 ist, führt man eine iterative Berechnung durch, bestehend aus: Suchen eines Wertes λi, wie λi 2 + λi = α + uj-1 anschließend Berechnen des Werts u2 i, wie u2 i = ui-1i + λi-1 + ui-1 + 1) indem i ausgehend von i = 1 inkrementiert wird, bis der Wert u2 k-1 erhalten wird; man sucht, ob die Gleichung λ2 + λ = α2 + u2 k-1 in
    Figure 00040001
    Lösungen besitzt, im bejahenden Fall berechnet man diese Division durch zwei aus:
    Figure 00370001
    im negativen Fall fügt man x zu dem zweiten Wert u0 2 hinzu und man fügt 1 zu dem ersten Wert λ0 hinzu, um diese Division durch zwei wie in der vorherigen Operation auszuführen.
  5. Verfahren nach Anspruch 1, wo:
    Figure 00040001
    ein endlicher Körper von 2n Elementen ist,
    Figure 00370002
    eine Untergruppe einer elliptischen Kurve E ist, definiert durch:
    Figure 00370003
    und E[2k] die Gesamtheit der Punkte P dieser elliptischen Kurve ist, wie P, 2k mal zu sich selbst addiert, das neutrale Element 0 ergibt, mit ganzzahligem k größer gleich 1, dadurch gekennzeichnet, daß ein Punkt P = (x, y) dieser elliptischen Kurve, der durch (x, λR) dargestellt ist, mit λp = x + y/x, bei dieser Division durch zwei den Punkt
    Figure 00370004
    = (u0, v0) dieser elliptischen Kurve gibt, dargestellt durch (u0, λ0), mit λ0 = u0 + v0/u0, der erhalten wird, indem die folgenden Operationen durchgeführt werden: man sucht einen ersten Wert λ0, wie λ0 2 + λ0 = α + x man berechnet einen zweiten Wert u0 2, wie u0 2 = x (λ0 + λp + x + 1) wenn k 1 beträgt, sucht man, ob die Gleichung λ2 + λ = α2 + uo 2 in
    Figure 00040001
    Lösungen besitzt, im bejahenden Fall berechnet man diese Division durch zwei aus.
    Figure 00380001
    im verneinenden Fall fügt man x zu diesem zweiten Wert u0 2 hinzu und man fügt 1 zu dem ersten Wert λ0 hinzu, um diese Division durch zwei wie in der vorherigen Operation durchzuführen; wenn k größer 1 ist, führt man eine iterative Berechnung durch, bestehend aus: Suchen eines Wertes λi, wie λi 2 + λi = α + ui-1 anschließend Berechnen des Werts u2 i, wie u2 i = ui-1i + λi-1 + ui-1 + 1) indem i ausgehend von i = 1 inkrementiert wird, bis der Wert u2 k-1 erhalten wird; man sucht, ob die Gleichung λ2 + λ = α2 + u2 k-1 in
    Figure 00040001
    Lösungen besitzt; im bejahenden Fall berechnet man diese Division durch zwei aus:
    Figure 00380002
    im negativen Fall fügt man x zu dem zweiten Wert u0 2 hinzu und man fügt 1 zu dem ersten Wert λ0 hinzu, um diese Division durch zwei wie in der vorherigen Operation auszuführen.
  6. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß es sich um ein Konstruktionsprotokoll eines gemeinsamen Schlüssels ausgehend von zwei Geheimschlüsseln, die jeweils zwei der vorgenannten Einheiten angehören, und eines öffentlichen Schlüssels handelt, der durch einen Punkt P ungerader Ordnung r einer gewählten und nicht super-singulären, elliptischen Kurve E gebildet wird,
  7. Verfahren nach Anspruch 6, dadurch gekennzeichnet, daß, indem in an sich bekannter Weise a und b Geheimschlüssel einer ersten bzw. zweiten Einheit sind, – die erste Einheit die skalare Multiplikation [a]P berechnet und den resultierenden Punkt der zweiten Einheit übermittelt, – die zweite Einheit die skalare Multiplikation [b]P berechnet und den resultierenden Punkt der ersten Einheit übermittelt, – die zwei Einheiten jeweils einen gemeinsamen Punkt C = (x, y) dieser elliptischen Kurve E berechnen, indem sie jeweils skalare Multiplikationen [a]([b]P) und [b]([a]P) durchführen, welche beide gleich [a.b]P sind, – die zwei Einheiten als gemeinsamen Schlüssel die Koordinate (x) des gemeinsamen Punkts C, der durch die skalare Multiplikation [a.b]P erhalten wurde, auswählen, wobei wenigstens eine der vorhergehenden, skalaren Multiplikationen und vorzugsweise sämtliche mit Hilfe von vordefinierten Divisionen durch zwei ausgeführt werden.
  8. Verfahren nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, daß es sich um ein Signaturprotokoll zwischen zwei Einheiten, ausgehend von einem Paar Permanentschlüsseln handelt, die einer der Einheiten angehören, einem geheimen (a) und dem anderen öffentlichen (Q), die aus der skalaren Multiplikation des Geheimschlüssels (a) mit einem anderen öffentlichen Schlüssel resultiert, der aus einem Punkt (F') ungerader Ordnung r einer gewählten und nicht super-singulären, elliptischen Kurve E besteht.
  9. Vertagen nach Anspruch 8, gekennzeichnet durch die folgenden Operationen – die erste Einheit (A), die das Paar Permanentschlüssel besitzt, konstruiert ein Paar Schlüssel für eine einzige Verwendung, wobei einer (g) willkürlich gewählt wird und der andere [g]P aus einer skalaren Multiplikation dieses willkürlich gewählten Schlüssels (g) mit dem öffentlichen Punkt P dieser elliptischen Kurve resultiert, wobei die Koordinaten dieses Schlüssels ([g]P) als (x, y) mit 2 ≤ g ≤ r-2 notier bzw. bezeichnet sind, – die erste Einheit (A) das Polynom x dieses Schlüssels mit einziger Verwendung [g]P = (x, y) in eine ganze Zahl i umwandelt, deren binärer Wert durch die Sequenz von binären Koeffizienten des Polynoms x dargestellt wird, – die erste Einheit (A) eine Signatur (c, d) der Nachricht (M) der folgenden Weise berechnet: c = i Modulo r d = g–1 (M + ac) Modulo r, – die erste Einheit diese Nachricht (M) und diese Signatur (c, d) an die zweite Einheit sendet; beim Empfang – die zweite Einheit (B) verifiziert, ob die Elemente der Signatur (c, d) jeweils dem Intervall [1, r-1] angehören, - im negativen Fall erklärt sie die Signatur als nicht gültig und stoppt, – im zustimmenden Fall berechnet die zweite Einheit (B) drei Parameter: h = d–1 Modulo r h1 = Mh Modulo r h2 = ch Modulo r – die zweite Einheit berechnet einen Punkt T dieser elliptischen Kurve durch die Summe der skalaren Multiplikationen der Punkte P und Q durch die letzten zwei genannten Parameter: T = [h1]P + [h2]Qwenn der resultierende Punkt T das neutrale Element ist, erklärt die zweite Einheit die Signatur als nicht gültig und stoppt, falls nicht, unter Berücksichtigung des Punkts der Koordinaten x' und y': T = (x', y'), – die zweite Einheit (B) wandelt das Polynom x' dieses Punktes in eine ganze Zahl i' um, deren binärer Wert durch die Sequenz der binären Koeffizienten des Polynoms x' dargestellt ist, - die zweite Einheit (B) berechnet c' = i' Modulo r und – verifiziert, daß c' = c, um die Signatur gültig oder in dem entgegengesetzten Fall ungültig zu erklären, wobei wenigstens eine der vorgenannten, skalaren Multiplikationen, und vorzugsweise sämtliche, mit Hilfe von vordefinierten Divisionen durch zwei ausgeführt wurden.
  10. Verfahren nach Anspruch 7 oder 9, dadurch gekennzeichnet, daß eine vorgenannte, skalare Multiplikation, die die Divisionen durch zwei verwendet, durch die folgenden Operationen erhalten wird: – wenn der Skalar der Multiplikation als S bezeichnet wird, wählt man m + 1 Werte S0 ... Sm ∊ {0,1}, um S zu definieren durch:
    Figure 00410001
    wobei r von vorgenannter, ungerader Ordnung ist, und m die einzige ganze Zahl zwischen log2(r) – 1 und log2(r) ist, – man berechnet die skalare Multiplikation [S]P eines Punktes P der elliptischen Kurve mit dem Skalar S durch Anwendung eines Algorithmus, bestehend im Bestimmen der Folge von Punkten (Qm+1, Qm..., Qi... Q0) dieser elliptischen Kurve E wie:
    Figure 00410002
    wobei die Berechnung des letzten Punktes Q0 der Folge das Resultat [S]P der skalaren Multiplikation ergibt.
DE60005284T 1999-07-09 2000-07-07 Berechnungsverfahren für kryptographie mittels elliptischer kurven Expired - Lifetime DE60005284T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR9908949 1999-07-09
FR9908949A FR2796177B1 (fr) 1999-07-09 1999-07-09 Procede de cryptographie mis en oeuvre entre deux entites echangeant des informations
PCT/FR2000/001979 WO2001004742A1 (fr) 1999-07-09 2000-07-07 Procede de calcul pour la cryptographie a courbe elliptique

Publications (2)

Publication Number Publication Date
DE60005284D1 DE60005284D1 (de) 2003-10-23
DE60005284T2 true DE60005284T2 (de) 2004-07-01

Family

ID=9547945

Family Applications (2)

Application Number Title Priority Date Filing Date
DE60005284T Expired - Lifetime DE60005284T2 (de) 1999-07-09 2000-07-07 Berechnungsverfahren für kryptographie mittels elliptischer kurven
DE1110140T Pending DE1110140T1 (de) 1999-07-09 2000-07-07 Berechnungsverfahren für kryptographie mittels elliptischer kurven

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE1110140T Pending DE1110140T1 (de) 1999-07-09 2000-07-07 Berechnungsverfahren für kryptographie mittels elliptischer kurven

Country Status (8)

Country Link
US (1) US7079650B1 (de)
EP (1) EP1110140B1 (de)
JP (1) JP4704640B2 (de)
CA (1) CA2342737C (de)
DE (2) DE60005284T2 (de)
ES (1) ES2159274T3 (de)
FR (1) FR2796177B1 (de)
WO (1) WO2001004742A1 (de)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1261498A (zh) * 1997-05-21 2000-07-26 E·S·P·通讯股份有限公司 呼叫者产生记费的“仅由呼叫者”启动的双向无线通信的系统、方法和装置
US7200225B1 (en) 1999-11-12 2007-04-03 Richard Schroeppel Elliptic curve point ambiguity resolution apparatus and method
EP1451967A1 (de) * 2001-12-07 2004-09-01 NTRU Cryptosystems, Inc. Verfahren und vorrichtung zur erzeugung von digitalsignaturen und zur authentifizierung
US7769167B2 (en) 2003-07-25 2010-08-03 Microsoft Corporation Weil and Tate pairing techniques using parabolas
US7298839B2 (en) * 2003-07-25 2007-11-20 Microsoft Corporation Squared Weil and Tate pairing techniques for use with elliptic curves
US7440569B2 (en) * 2003-07-28 2008-10-21 Microsoft Corporation Tate pairing techniques for use with hyperelliptic curves
KR100530372B1 (ko) * 2003-12-20 2005-11-22 삼성전자주식회사 사이드채널 공격을 방지할 수 있는 타원곡선 암호화 방법
US7483533B2 (en) * 2004-08-05 2009-01-27 King Fahd University Of Petroleum Elliptic polynomial cryptography with multi x-coordinates embedding
US7483534B2 (en) * 2004-08-05 2009-01-27 King Fahd University Of Petroleum Elliptic polynomial cryptography with multi y-coordinates embedding
US7742596B2 (en) * 2004-08-24 2010-06-22 General Dynamics C4 Systems, Inc. Reliable elliptic curve cryptography computation
JP4752313B2 (ja) 2004-09-30 2011-08-17 ソニー株式会社 暗号処理演算方法、および暗号処理装置、並びにコンピュータ・プログラム
US20070229350A1 (en) * 2005-02-01 2007-10-04 Scalisi Joseph F Apparatus and Method for Providing Location Information on Individuals and Objects using Tracking Devices
US7598855B2 (en) 2005-02-01 2009-10-06 Location Based Technologies, Inc. Apparatus and method for locating individuals and objects using tracking devices
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
DE102006002891B4 (de) * 2006-01-20 2009-06-04 Siemens Ag Verfahren, Vorrichtung und System zum Verifizieren von auf einer elliptischen Kurve ermittelten Punkten
KR20080012633A (ko) * 2006-08-04 2008-02-12 삼성전자주식회사 고속 몽고메리 전력 래더 알고리즘에서 사용되는 폴트 검출동작을 구현하기 위한 소수 유한 영역에서의 포인트 덧셈방법 및 덧셈 연산 장치
US8497774B2 (en) 2007-04-05 2013-07-30 Location Based Technologies Inc. Apparatus and method for adjusting refresh rate of location coordinates of a tracking device
US8774827B2 (en) 2007-04-05 2014-07-08 Location Based Technologies, Inc. Apparatus and method for generating position fix of a tracking device in accordance with a subscriber service usage profile to conserve tracking device power
US8224355B2 (en) 2007-11-06 2012-07-17 Location Based Technologies Inc. System and method for improved communication bandwidth utilization when monitoring location information
US8244468B2 (en) * 2007-11-06 2012-08-14 Location Based Technology Inc. System and method for creating and managing a personalized web interface for monitoring location information on individuals and objects using tracking devices
US9111189B2 (en) * 2007-10-31 2015-08-18 Location Based Technologies, Inc. Apparatus and method for manufacturing an electronic package
US8102256B2 (en) 2008-01-06 2012-01-24 Location Based Technologies Inc. Apparatus and method for determining location and tracking coordinates of a tracking device
US8654974B2 (en) 2007-10-18 2014-02-18 Location Based Technologies, Inc. Apparatus and method to provide secure communication over an insecure communication channel for location information using tracking devices
US20170207918A1 (en) * 2009-06-16 2017-07-20 Morpho Cryptography on an elliptical curve
US20140314229A1 (en) * 2011-12-09 2014-10-23 Morpho Cryptography on a simplified elliptical curve
US8548160B2 (en) * 2010-01-13 2013-10-01 Microsoft Corporation Determination of pairings on a curve using aggregated inversions
US8731187B2 (en) * 2010-12-21 2014-05-20 Microsoft Corporation Computing genus-2 curves using general isogenies
US10148285B1 (en) 2012-07-25 2018-12-04 Erich Schmitt Abstraction and de-abstraction of a digital data stream
CN103124213B (zh) * 2013-03-05 2015-09-16 丁勇 基于椭圆曲线密码的传感器网络密钥管理方法
US10795858B1 (en) 2014-02-18 2020-10-06 Erich Schmitt Universal abstraction and de-abstraction of a digital data stream
CA2984390A1 (en) * 2016-11-07 2018-05-07 Infosec Global Inc. Elliptic curve isogeny-based cryptographic scheme
US11157240B2 (en) * 2019-02-15 2021-10-26 International Business Machines Corporation Perform cryptographic computation scalar multiply instruction
CN111106937A (zh) * 2019-12-31 2020-05-05 深圳职业技术学院 一种基于随机素数的双通道交换的超奇异椭圆曲线算法的密钥交换方法
WO2021225578A1 (en) 2020-05-04 2021-11-11 Pqsecure Technologies, Llc An efficient hardware architecture for highly secure isogeny-based cryptosystems

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU3073595A (en) * 1994-07-29 1996-03-04 Certicom Corp. Elliptic curve encryption systems
US6490352B1 (en) * 1999-03-05 2002-12-03 Richard Schroeppel Cryptographic elliptic curve apparatus and method
JP3639153B2 (ja) * 1999-08-16 2005-04-20 日本電信電話株式会社 逐次拡大を用いた楕円曲線演算装置及びプログラム記録媒体
US20020055962A1 (en) * 1999-11-12 2002-05-09 Richard Schroeppel Automatically solving equations in finite fields
US7031468B2 (en) * 2000-08-29 2006-04-18 Ntru Cryptosystems, Inc. Speed enhanced cryptographic method and apparatus
CA2439736C (en) * 2002-09-03 2013-05-21 Certicom Corp. Method and apparatus for performing validation of elliptic curve public keys

Also Published As

Publication number Publication date
CA2342737C (fr) 2004-06-01
ES2159274T1 (es) 2001-10-01
DE60005284D1 (de) 2003-10-23
EP1110140A1 (de) 2001-06-27
FR2796177A1 (fr) 2001-01-12
CA2342737A1 (fr) 2001-01-18
WO2001004742A1 (fr) 2001-01-18
DE1110140T1 (de) 2002-02-21
US7079650B1 (en) 2006-07-18
EP1110140B1 (de) 2003-09-17
ES2159274T3 (es) 2004-05-16
FR2796177B1 (fr) 2001-10-12
JP2003504695A (ja) 2003-02-04
JP4704640B2 (ja) 2011-06-15

Similar Documents

Publication Publication Date Title
DE60005284T2 (de) Berechnungsverfahren für kryptographie mittels elliptischer kurven
DE69917592T2 (de) Gegen stromverbrauchsignaturanfall beständige kryptographie
DE69534603T2 (de) Verschlüsselungssystem für elliptische kurve
DE69826963T2 (de) Gerät für die modulare Inversion zur Sicherung von Information
DE60119620T2 (de) Verfahren zur Skalarmultiplikation auf einer elliptischen Kurve und entsprechende Vorrichtung
DE60314584T2 (de) Maskierung von in einem Restklassensystem zerlegten bzw. faktorisierten Daten
DE60031304T3 (de) Verfahren zur authentifizierung von softwarebenutzern
DE69920875T2 (de) Vorrichtung und Verfahren zum Berechnen einer digitalen Unterschrift
DE60223775T2 (de) Vorrichtung zum Konvertieren einer elliptischen Kurve
DE112007001319T5 (de) Multiplizieren zweier Zahlen
DE69838258T2 (de) Public-Key-Datenübertragungssysteme
DE112009000154T5 (de) Änderung der Darstellung eines Punktes auf einer elliptischen Kurve
WO2007025796A1 (de) Verfahren zur skalarmultiplikation von punkten auf einer elliptischen kurve
DE69735290T2 (de) Verfahren zur unsymmetrischen kryptographischen kommunikation und zugehöriger tragbarer gegenstand
EP1664979B1 (de) Übergang zwischen maskierten repräsentationen eines wertes bei kryptographischen berechnungen
DE10357661B4 (de) Modularer Montgomery-Multiplizierer und zugehöriges Multiplikationsverfahren
DE102006002891B4 (de) Verfahren, Vorrichtung und System zum Verifizieren von auf einer elliptischen Kurve ermittelten Punkten
EP2641241B1 (de) Verfahren zur langzahldivision oder modulare reduktion
DE60117813T2 (de) Verfahren und Vorrichtung zur Speicherung und wiedergewinnung eones Privaten Kryptoschlüssels
EP1370933B1 (de) Verfahren und vorrichtung zum modularen multiplizieren
EP1342153B1 (de) Verfahren und vorrichtung zum erzeugen einer pseudozufallsfolge mittels diskretem logarithmus
DE60022840T2 (de) Verfahren zum sichern einer oder mehrerer elektronischer baugruppen, unter zuhilfenahme eines privatschlüssel-krypto-algorithmus, sowie elektronische baugruppe
DE10161137A1 (de) Verfahren und System zum kryptographischen Bearbeiten von Daten
DE60210331T2 (de) Kryptographisches verfahren unter der benutzung öffentlicher schlüssel basierend auf den gruppen der zöpfe
EP1515226B1 (de) Modulare Multiplikation

Legal Events

Date Code Title Description
8364 No opposition during term of opposition