DE69833352T2 - Vorrichtung zur Verarbeitung von Bivektoren und Verschlüsselungssystem unter Verwendung desselben - Google Patents

Vorrichtung zur Verarbeitung von Bivektoren und Verschlüsselungssystem unter Verwendung desselben Download PDF

Info

Publication number
DE69833352T2
DE69833352T2 DE69833352T DE69833352T DE69833352T2 DE 69833352 T2 DE69833352 T2 DE 69833352T2 DE 69833352 T DE69833352 T DE 69833352T DE 69833352 T DE69833352 T DE 69833352T DE 69833352 T2 DE69833352 T2 DE 69833352T2
Authority
DE
Germany
Prior art keywords
bivector
integer
parameter
points
multiplying
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
DE69833352T
Other languages
English (en)
Other versions
DE69833352D1 (de
Inventor
Seigo Minato-ku Arita
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Publication of DE69833352D1 publication Critical patent/DE69833352D1/de
Application granted granted Critical
Publication of DE69833352T2 publication Critical patent/DE69833352T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/3013Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the discrete logarithm problem, e.g. ElGamal or Diffie-Hellman systems

Description

  • HINTERGRUND DER ERFINDUNG
  • GEBIET DER ERFINDUNG
  • Die Erfindung betrifft Verschlüsselungsverfahren zur Datensicherheit und insbesondere ein System zum Verteilen eines öffentlichen Schlüssels, damit Netzwerknutzer durch Verwendung eines öffentlichen Schlüssels einen geheimen Schlüssel teilen können, ein Verschlüsselungssystem für einen öffentlichen Schlüssel wie z.B. ein Verschlüsselungssystem vom El-Gamal-Typ, damit Netzwerknutzer durch die Verwendung eines öffentlichen Schlüssels eine gegenseitige geheime Kommunikation durchführen können, und ein Prüfsystem vom El-Gamal-Typ, das ein elektronisches Signatursystem ist, damit Netzwerknutzer eine Korrespondenz und/oder einen Sender prüfen können, und Vorrichtungen zum Berechnen eines Bivektors, die für solche Systeme verwendet werden sollen, wie z.B. eine Vorrichtung zum Multiplizieren eines Bivektors mit einer ganzen Zahl.
  • BESCHREIBUNG DES STANDES DER TECHNIK
  • Es sind verschiedene Verfahren bekannt, die zu einem Verschlüsselungssystem für einen öffentlichen Schlüssel gehören, wobei in einem offenen Netzwerk geheime Kommunikation ausgeführt wird, und die ihre Sicherheit auf die Schwierigkeit beim Lösen eines Problems eines diskreten Logarithmus in einem endlichen Feld GF(p) gründen.
  • Zum Beispiel gründen ein System zum Verteilen eines öffentlichen Schlüssels vom DH-Typ, vorgeschlagen von W. Diffie und M. Hellman, New directions in cryptography, IEEE, Trans. Inf. Theory, IT-22, 6, S. 644–654, und El-Gamal-Kryptographie und -Signatursysteme, vorgeschlagen von T. E. El-Gamal, A public key cryptosystem and a signature scheme based on discrete logarithm, Proc. Crypto 84, 1984, ihre Sicherheit auf der Tatsache, dass ein Problem eines diskreten Logarithmus in einem endlichen Feld GF(p) recht schwierig zu lösen ist.
  • Untenstehend ist das Problem eines diskreten Logarithmus in einem endlichen Feld GF(p) erläutert. Es wird nun angenommen, dass p eine Primzahl angibt und dass GF(p) eine ganze Zahl N, die gleich oder größer als 0, aber kleiner als p ist (N = 0, 1, 2, ..., p – 1), berechnet, wobei die Primzahl als Modul verwendet wird. Es wird außerdem angenommen, dass die folgende Gleichung gültig ist: Y = αXmodp(1 ≤ X ≤ p – 1)
  • In der Gleichung gibt α eine bestimmte feste primitive Wurzel von GF(p) an. Das heißt, dass Elemente von GF(p), 1, 2, ..., p – 1, die nicht 0 sind, in Form von αK wiedergegeben werden können, wobei K eine bestimmte Zahl wiedergibt. Unter diesen Annahmen wird X ein Logarithmus von Y in GF(p) genannt, wobei die Primzahl p als Basis dient.
  • Es ist einfach, Y auf Basis von X zu berechnen. Genauer gesagt, ist dafür nur die Durchführung einer Multiplikation mit der Zahl 2 × log2X erforderlich. Im Gegensatz dazu ist es recht schwierig, X auf Basis von Y zu berechnen, selbst wenn ein Algorithmus eingesetzt wird, der von den derzeit bekannten Algorithmen am besten ist. Der Umfang einer Berechnung zum Erhalten von X auf Basis von Y ist nahezu der gleiche wie der Umfang einer Berechnung zur Primfaktorzerlegung einer zusammengesetzten Zahl, die nahezu die gleiche Größe wie die der Primzahl p aufweist. Die Schwierigkeit beim Berechnen von X auf Basis von Y wird diskretes Logarithmusproblem genannt.
  • In Übereinstimmung mit dem oben erwähnten Verteilungssystem für einen öffentlichen Schlüssel vom DH-Typ können ein erster Nutzer A und ein zweiter Nutzer B einen gemeinsamen Schlüssel K teilen, der ein geheimes Datum ist, wobei der allgemeine Schlüssel K gegenüber anderen geheim gehalten wird, obwohl ein offenes Netzwerk verwendet wird. Dies basiert auf der Tatsache, dass das oben erwähnte diskrete Logarithmusproblem recht schwierig zu lösen ist.
  • Eine Primzahl p und eine primitive Wurzel α werden anderen im voraus als offene Daten mitgeteilt. Der erste Nutzer A wählt zufällig eine ganze Zahl XA im Bereich von 0 und (p – 1) aus, und die derart ausgewählte ganze Zahl XA wird geheim gehalten. Auf ähnliche Weise wählt der zweite Nutzer B zufällig eine ganze Zahl XB im Bereich von 0 und (p – 1) aus, und die derart ausgewählte ganze Zahl XB wird geheim gehalten. Der erste Nutzer A berechnet die folgende Gleichung: YA = αXAmodp(1 ≤ YA ≤ p – 1)("XA" bedeutet "XA". Das gleiche gilt untenstehend für "XB", "XU" etc.)
  • Dann sendet der erste Nutzer A ein Berechnungsergebnis YA an den zweiten Nutzer B. Auf ähnliche Weise berechnet der zweite Nutzer B die folgende Gleichung: YB = αXBmodp(1 ≤ YB ≤ p – 1)
  • Dann sendet der zweite Nutzer B ein Berechnungsergebnis YB an den ersten Nutzer A.
  • Nachdem die Berechnungsergebnisse YA und YB ausgetauscht wurden, berechnet der erste Nutzer A den gemeinsamen Schlüssel K wie folgt: K = YB XAmodp = (αXBmodp)XAmodp = αXAXBmodp(1 ≤ K ≤ p – 1)
  • Auf ähnliche Weise berechnet der zweite Nutzer B den gemeinsamen Schlüssel K wie folgt: K = YA XBmodp = (αXAmodp)XBmodp = αXAXBmodp(1 ≤ K ≤ p – 1)
  • Daher können die ersten und zweiten Nutzer A und B den gemeinsamen Schlüssel K (K = αXAXBmodp) geheim teilen.
  • Danach können die ersten und zweiten Nutzer A und B durch Verwendung des gemeinsamen Schlüssels K eine geheime Kommunikation untereinander führen. In dem oben erwähnten Verfahren befinden sich nur die Berechnungsergebnisse YA und YB auf dem offenen Netzwerk. Da es nötig währe, das diskrete Logarithmusproblem zu lösen, um die ganzen Zahlen XA und XB zu erhalten, die beide geheime Daten sind, kann eine dritte Partei den gemeinsamen Schlüssel K nicht kennen, vorausgesetzt, dass das diskrete Logarithmusproblem recht schwierig zu lösen ist.
  • Gemäß dem oben erwähnten El-Gamal-Verschlüsselungssystem ist es möglich, wie folgt eine geheime Kommunikation in einem offenen Netzwerk zu führen, basierend auf der Tatsache, dass das diskrete Logarithmusproblem recht schwierig zu lösen ist.
  • Eine Primzahl p und eine primitive Wurzel α werden anderen im voraus als offene Daten mitgeteilt. Jeder der Nutzer U wählt zufällig eine ganze Zahl XU aus, und die derart ausgewählte ganze Zahl XU wird geheim gehalten. Zusätzlich berechnet jeder der Nutzer U die folgende Gleichung: YU = αXUmodp(1 ≤ YU ≤ p – 1)
  • Dann sendet jeder der Nutzer U das Berechnungsergebnis YU als öffentlichen Schlüssel an andere Nutzer.
  • Hier wird angenommen, dass ein erster Nutzer A eine Korrespondenz M geheim an einen zweiten Nutzer B sendet. Als erstes erzeugt der erste Nutzer A durch Verwendung einer Zufallszahl K, die nur der ersten Nutzer A kennt, und eines öffentlichen Schlüssels YB des zweiten Nutzers B die folgenden Verschlüsselungen C1 und C2: C1 = αKmodp C2 = M × YB Kmodp
  • Dann sendet der erste Nutzer A die Verschlüsselungen C1 und C2 an den zweiten Nutzer B. Der zweite Nutzer B, der die Verschlüsselungen empfangen hat, kann die Korrespondenz M erhalten, indem er die folgende Gleichung durch Verwendung einer ganzen Zahl XB berechnet, die nur der zweite Nutzer B kennt: M = C1–XB × C2modp
  • In dem oben erwähnten El-Gamal-Verschlüsselungssystem befinden sich nur die Verschlüsselungen C1 und C2 auf dem offenen Netzwerk. Da es nötig wäre, das diskrete Logarithmusproblem zu lösen, um die Zufallszahl K und die Korrespondenz M zu erhalten, die beides geheime Daten sind, kann eine geheime Kommunikation stattfinden, vorausgesetzt, dass das diskrete Logarithmusproblem recht schwierig zu lösen ist.
  • In Übereinstimmung mit dem oben erwähnten El-Gamal-Signatursystem kann eine elektronische Signatur wie folgt erzielt werden, basierend auf der Tatsache, dass es recht schwierig ist, das diskrete Logarithmusproblem zu lösen.
  • Eine Primzahl P und eine primitive Wurzel α werden anderen als offene Daten im voraus mitgeteilt. Ein Bestätiger U wählt zufällig eine ganze Zahl XU als Signaturschlüssel aus, und die derart ausgewählte ganze Zahl XU wird geheim gehalten. Zusätzlich berechnet der Bestätiger U die folgende Gleichung: YU = αXUmodp(1 ≤ YU ≤ p – 1)
  • Dann legt der Bestätiger U anderen das Berechnungsergebnis YU als Prüfschlüssel offen.
  • Hier wird angenommen, dass ein Prüfer V eine Signatur prüft, die an einer Korrespondenz M des Bestätigers U vorgenommen wurde. Zuerst nimmt der Bestätiger U durch Verwendung einer Zufallszahl K, die nur der Bestätiger U kennt, und eines Signaturschlüssels XU des Bestätigers U selbst die folgenden Signaturen R und S vor: R = αKmodp S = (M – XU × R) × K–1modp
  • Dann sendet der Bestätiger U eine Korrespondenz M zusammen mit den Signaturen R und S an den Prüfer V. Der Prüfer V, der die Signaturen R und S empfangen hat, prüft durch Verwendung eines Prüfschlüssels Yu des Bestätigers U, ob die folgende Gleichung gültig ist: αM = YuR × RSmodp
  • Im oben erwähnten El-Gamal-Signatursystem befinden sich nur die Korrespondenz M und die Signaturen R und S auf dem offenen Netzwerk. Da es nötig wäre, das diskrete Logarithmusproblem zu lösen, um den Signaturschlüssel XU zu erhalten, der ein geheimes Datum ist, wäre es recht schwierig oder nahezu unmöglich, dass sich eine andere Person als der Bestätiger U als Bestätiger U ausgibt, und daher kann eine elektronische Signatur erzielt werden, vorausgesetzt, dass das diskrete Logarithmusproblem recht schwierig zu lösen ist.
  • Wie soweit erläutert, gründen die meisten der Verschlüsselungssysteme für öffentliche Schlüssel ihre Sicherheit auf der Tatsache, dass das diskrete Logarithmusproblem in einem endlichen Feld GF(p) schwierig zu lösen ist. Jüngste Entwicklungen eines Supercomputers und verschiedener arithmetischer Algorithmen machen es jedoch möglich, das diskrete Logarithmusproblem in einem endlichen Feld GF(p) mit relativ wenig Berechnung zu lösen.
  • Als Gegenmaßnahme dazu wird empfohlen, eine Primzahl p mit 1024 Bit einzusetzen, also mit einer Größenordnung von etwa 300 oder mehr Zehnerstellen. Es wäre jedoch notwendig, eine groß angelegte Schaltung zum Endlichfeldbetrieb vorzubereiten, um unter Verwendung einer Primzahl p mit 300 oder mehr Größenordnungen eine Operation an einem endlichen Feld GF(p) durchzuführen. Dies verhindert, dass verschiedene Verfahren in einem Verschlüsselungssystem für einen öffentlichen Schlüssel praktische Verwendung finden.
  • VOLCHECK E J: "Computing in the Jacobian of a Plane Algebraic Curve", SPRINGER-VERLAG, LECTURE NOTES IN COMPUTER SCIENCE; ALGORITHMIC NUMBER THEORY SYMPOSIUM, ANTS-I, 1994, Seiten 221–233 beschreibt einen Algorithmus zum Ausführen der Additionsoperation in Jacobi-Varietät einer ebenen algebraischen Kurve, die über ein algebraisches Zahlenfeld K mit willkürlichen Singularitäten definiert ist, wobei Singularitäten wiedergegeben werden, die analytische anstatt algebraische Mittel verwenden.
  • MING-DEH HUANG ET AL: "EFFICIENT ALGORITHMS FOR THE RIEMANN-ROCH PROBLEM AND FOR ADDITION IN THE JACOBIAN OF A CURVE", IEEE. COMP. SOC. PRESS, US, Vol. SYMP. 32, 1991, Seiten 678–687 beschreibt allgemein einen Algorithmus zur Addition auf der Jacobimatrix einer Kurve, wobei ein ebenes Modell der Kurve nur mit normalen mehrfachen Punkten gegeben ist.
  • KOBLITZ N: "HYPERELLIPTIC CRYPTOSYSTEMS" JOURNAL OF CRYPTOLOGY, SPRINGER VERLAG, NEW YORK, NY, US, Vol. 1, Nr. 3, 1989, beschreibt auf Seiten 139–150 einen Algorithmus zur Addition für Gruppen, die aus den Jacobimatrizen von hyperelliptischen Kurven erhalten werden, die über endliche Felder definiert sind, und seine Anwendung auf Verschlüsselungssysteme für einen öffentlichen Schlüssel.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Es ist die Aufgabe der vorliegenden Erfindung, eine Vorrichtung zum Ausführen eines Additionsschritts vorzusehen, die insbesondere für ein Verschlüsselungssystem und/oder für verschiedene andere Verfahren zum Erreichen eines Verschlüsselungssystems für einen öffentlichen Schlüssel in einem kleineren Maßstab verwendet werden soll.
  • Die Erfindung löst diese Aufgabe durch die Merkmale des Anspruchs 1. Bevorzugte Merkmale sind in den abhängigen Ansprüchen angegeben.
  • Wie erläutert, basieren die herkömmlichen Verschlüsselungssysteme für einen öffentlichen Schlüssel auf der Tatsache, dass es recht schwierig oder nahezu unmöglich ist, das diskrete Logarithmusproblem eines endlichen Felds zu lösen, genauer gesagt, das einer multiplikativen Gruppe eines endlichen Feldes. Ein Prinzip der vorliegenden Erfindung ist, dass die Jacobigruppe von algebraischen Kurven in einem endlichen Feld anstelle einer multiplikativen Gruppe in einem endlichen Feld eingesetzt wird.
  • Untenstehend wird die Jacobigruppe von algebraischen Kurven erläutert. Jegliche algebraische Kurve weist eine Charakteristik auf, die eine positive ganze Zahl, genannt ein Genus, umfasst. Es wird nun angenommen, dass eine Kurve A einen Genus G aufweist. Es ist nun möglich, eine Addition in einem Satz einer beliebigen G Anzahl von Punkten auf der Kurve A wie folgt zu definieren. Es sind die folgenden beiden Sätze Q1 und Q2 definiert, die jeweils aus der G Anzahl von Punkten auf der Kurve C bestehen: Q1 = {P11, P12, ..., P1G} Q2 = {P21, P22, ..., P2G}
  • Eine Kurve B ist als eine Kurve definiert, die unter den Kurven, die durch alle Punkten verlaufen, die zu den Sätzen Q1 und Q2 gehören, den kleinsten Grad aufweist. Die derart definierte Kurve B schneidet die Kurve A in einer anderen G Anzahl von Punkten sowie in Punkten, die zu den Sätzen Q1 oder Q2 gehören. Die andere G Anzahl an Punkten ist als H1, H2, ..., HG definiert. Hier ist eine Kurve C als Kurve mit dem kleinsten Grad unter den Kurven definiert, die durch alle G Anzahl von Punkten H1, H2, ..., HG verlaufen. Die derart definierte Kurve C schneidet die Kurve A in einer anderen G Anzahl von Punkten, R1, R2, ..., RG sowie in der G Anzahl von Punkten, H1, H2, ..., HG. Eine Addition der Sätze Q1 und Q2 ergibt Y = {R1, R2, ..., RG}.
  • Ein Satz einer beliebigen G Anzahl von Punkten auf der Kurve A, wobei eine Addition wie oben erwähnt definiert ist, wird Jacobigruppe der Kurve A in einem endlichen Feld GF(p) genannt. Eine Anzahl Elemente der Jacobigruppe, nämlich eine Anzahl Sätze, die jeweils aus einer beliebigen G Anzahl von Punkten auf der Kurve A besteht, ist ungefähr gleich PG. Eine arithmetisch detaillierte Erläuterung wird zum Beispiel von J. H. Silverman, The Arithmetic of Elliptic Curves, Springer-Verlag, 1986 gegeben.
  • Um verschiedene Verfahren zu schaffen, die zu einem Verschlüsselungssystem für einen öffentlichen Schlüssel gehören, die bezüglich Kryptographie ausreichende Stärke aufweisen, ist es nötig, eine Gruppe mit einer ausreichenden Zahl von Elementen zu verwenden, selbst wenn die multiplikative Gruppe in einem endlichen Feld oder die Jacobigruppe von algebraischen Kurven eingesetzt werden. Allgemein ist eine Anzahl von Elementen einer multiplikativen Gruppe in einem endlichen Feld GF(p) gleich (p – 1), wohingegen eine Anzahl von Elementen der Jacobigruppe von algebraischen Kurven, die in einem endlichen Feld GF(p) einen Genus G aufweisen, etwa gleich pG ist. Wenn die Jacobigruppe von algebraischen Kurven mit einem Genus G in einem endlichen Feld anstelle der multiplikativen Gruppe eines endlichen Feldes eingesetzt wird, wäre es dementsprechend möglich, eine Größenordnung von p in einem endlichen Feld GF(p) etwa 1/G kleiner als eine Größenordnung von p zu machen, die erhalten wird, wenn eine multiplikative Gruppe eines endlichen Feldes eingesetzt wird, vorausgesetzt, dass die Stärke bezüglich der Kryptographie auf dem gleichen Niveau gehalten wird, dass nämlich eine Anzahl von Elementen in Gruppen, die verwendet werden sollen, nahezu gleich bleibt.
  • Somit machen es gemäß der vorliegenden Erfindung verschiedene Verfahren eines Verschlüsselungssystems für einen öffentlichen Schlüssel möglich, ohne Verringerung der Stärke bezüglich Kryptographie ein kleineres endliches Feld einzusetzen, wodurch sichergestellt wird, dass durch eine kleinere Vorrichtung bei geringeren Kosten eine ausreichende Stärke bezüglich der Kryptographie erreicht werden kann.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist ein Blockdiagramm einer Vorrichtung zum Summieren von Bivektoren gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 2 ist ein Flussdiagramm der in 1 dargestellten Vorrichtung zum Summieren von Bivektoren.
  • 3 ist ein Blockdiagramm einer Einrichtung zum Konvertieren eines Punktsatzes, die in der in 1 dargestellten Vorrichtung zum Summieren von Bivektoren eingesetzt wird.
  • 4 ist ein Flussdiagramm der in 3 dargestellten Einrichtung zum Konvertieren eines Punktsatzes.
  • 5 stellt ein Datenformat eines Parameters dar, der eine Kurve definiert.
  • 6 ist ein Flussdiagramm einer Einrichtung zum Berechnen einer gemeinsamen Kurve.
  • 7 ist ein Flussdiagramm einer Einrichtung zum Berechnen eines Schnittpunktsatzes.
  • 8 ist ein Blockdiagramm einer Vorrichtung zum Verdoppeln eines Bivektors gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 9 ist ein Flussdiagramm der in 8 dargestellten Vorrichtung zum Verdoppeln eines Bivektors.
  • 10 ist ein Blockdiagramm einer Vorrichtung zum Multiplizieren eines Bivektors mit einer ganzen Zahl gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 11 ist ein Flussdiagramm der in 10 gezeigten Vorrichtung zum Multiplizieren eines Bivektors mit einer ganzen Zahl.
  • 12 ist ein Blockdiagramm eines System zum Verteilen eines öffentlichen Schlüssels gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 13 ist ein Blockdiagramm eines Beispiels eines Zentrums, dass teilweise das in 12 dargestellte System zum Verteilen eines öffentlichen Schlüssels bildet.
  • 14 ist ein Blockdiagramm eines Beispiels eines Nutzeranschlusses, der teilweise das in 12 dargestellte System zum Verteilen eines öffentlichen Schlüssels bildet.
  • 15 ist ein Flussdiagramm des in 12 dargestellten Systems zum Verteilen eines öffentlichen Schlüssels.
  • 16 ist ein Blockdiagramm eines Verschlüsselungssystems vom El-Gamal-Typ gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 17 ist ein Blockdiagramm eines Zentrums, das teilweise das in 16 dargestellte Verschlüsselungssystem vom El-Gamal-Typ bildet.
  • 18 ist ein Blockdiagramm eines Beispiels eines Nutzeranschlusses, der teilweise das in 16 dargestellte Verschlüsselungssystem vom El-Gamal-Typ bildet.
  • 19 ist ein Flussdiagramm des in 16 dargestellten Verschlüsselungssystems vom El-Gamal-Typ.
  • 20 ist ein Blockdiagramm eines Signatursystems vom El-Gamal-Typ gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 21 ist ein Blockdiagramm eines Beispiels eines Zentrums, das teilweise das in 20 dargestellte Verschlüsselungssystem vom El-Gamal-Typ bildet.
  • 22 ist ein Blockdiagramm eines Beispiels eines Bestätigungsanschlusses, der teilweise das in 20 dargestellte Verschlüsselungssystem vom El-Gamal-Typ bildet.
  • 23 ist ein Blockdiagramm eines Beispiels eines Prüfanschlusses, der teilweise das in 20 dargestellte Verschlüsselungssystem vom El-Gamal-Typ bildet.
  • 24 ist ein Flussdiagramm des in 20 dargestellten Signatursystems vom El-Gamal-Typ.
  • BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • In den bevorzugten Ausführungsformen gemäß der vorliegenden Erfindung wird die Jacobigruppe von algebraischen Kurven mit einem Genus G in einem endlichen Feld GF(p) anstelle einer multiplikativen Gruppe in einem endlichen Feld eingesetzt. Wie vorstehend erwähnt, besteht die Jacobigruppe von algebraischen Kurven mit einem Genus G in einem endlichen Feld GF(p) aus Punktsätzen {P1, P2, ..., PG}, die jeweils aus G Anzahl von Punkten auf einer Kurve bestehen, und wird als die folgende Reihe wiedergegeben, wobei Koordinatenwerte von Punkten angeordnet sind:
    [(x(P1), y(P1)), (x(P2), y(P2)), ..., (x(PG), y(PG))], wobei x(Pi) eine X-Achsenkoordinate eines Punktes Pi und y(Pi) eine Y-Achsenkoordinate eines Punktes Pi angibt.
  • Wenn ein Vektor, der eine Mehrzahl Elementpaare umfasst, die aus einem endlichen Feld ausgewählt sind, Bivektor genannt wird, kann somit jedes der Elemente in der Jacobigruppe mit einem Bivektor oder Bivektoren wiedergegeben werden. Ein Verschlüsselungssystem für einen öffentlichen Schlüssel gemäß der vorliegenden Erfindung umfasst eine Vorrichtung zum Berechnen eines Bivektors in einem endlichen Feld.
  • [Vorrichtung zum Summieren von Bivektoren]
  • Nachfolgend wird eine Vorrichtung zum Summieren von Bivektoren gemäß einer Ausführungsform der vorliegenden Erfindung erläutert.
  • Eine Vorrichtung zum Summieren von Bivektoren gemäß der Ausführungsform berechnet einen Bivektor X3 und gibt ihn aus, wenn Bivektoren X1 und X2, die jeweils eine Mehrzahl Elementpaare umfassen, die aus einem vorbestimmten endlichen Feld ausgewählt sind, Koordinatenwertreihen von Punkten in Punktsätzen Q1 und Q2 auf einer Kurve sein sollen, die mit einem Parameter A definiert ist, bzw. aus einer Koordinatenwertreihe von Punkten in einem Punktsatz Q3, der gleich einer Summe der Punktsätze Q1 und Q2 in der Jacobigruppe der mit dem Parameter A definierten Kurve ist, bestehen.
  • Diese Vorrichtung kann in einem Computer erreicht werden.
  • 1 ist ein Blockdiagramm der Vorrichtung zum Summieren von Bivektoren gemäß der Ausführungsform. 2 ist ein Flussdiagramm der in 1 dargestellten Vorrichtung zum Summieren von Bivektoren. 3 ist ein Blockdiagramm eines Beispiels einer Punktsatz-Konvertierungsvorrichtung. 4 ist ein Flussdiagramm der in 3 dargestellten Punktsatz-Konvertierungsvorrichtung.
  • Die in 1 dargestellte Vorrichtung zum Summieren von Bivektoren umfasst eine erste Einrichtung 11 zum Berechnen eines Vereinigungsmengensatzes, eine zweite Einrichtung 12 zum Konvertieren eines Punktsatzes, einen Speicher 13, eine vierte Einrichtung 14 zum Eingeben von Daten durch sie, eine fünfte Einrichtung 15 zum Ausgeben von Ergebnissen durch sie und eine zentrale Prozesseinheit (CPU) 16.
  • Die vierte Einrichtung 14 empfängt Bivektoren X1 und X2 und einen Parameter A, der eine Kurve definiert, und sendet sie an die CPU 16.
  • Der Speicher 13 umfasst eine erste Speicherdatei zum darin Speichern des Bivektors X1, eine zweite Speicherdatei zum darin Speichern des Bivektors X2, eine dritte Speicherdatei zum darin Speichern des Parameters A, eine vierten Speicherdatei zum darin Speichern eines Bivektors T1 und eine fünfte Speicherdatei zum darin Speichern eines Bivektors T2.
  • Die erste Einrichtung 11 zum Berechnen eines Vereinigungsmengensatzes empfängt den Bivektor X1 aus der ersten Speicherdatei, den Bivektor X2 aus der zweiten Speicherdatei und den Parameter A aus der dritten Speicherdatei und berechnet den Bivektor T1, der, wenn die Bivektoren X1 und X2 jeweils Koordinatenwertreihen von Punkten in Punktsätzen auf einer mit dem Parameter A definierten Kurve sein sollen, aus einer Koordinatenwertreihe von Punkten in einem Vereinigungsmengensatz der Punktsätze besteht, die durch X1 und X2 angegeben sind.
  • Die zweite Einrichtung 12 zum Konvertieren eines Punktsatzes empfängt den Bivektor T1 aus der vierten Speicherdatei und den Parameter A aus der dritten Speicherdatei und berechnet den Bivektor T2, der, wenn der Bivektor T1 eine Koordinatenwertreihe von Punkten auf einer mit dem Parameter A definierten Kurve sein soll, aus einer Koordinatenwertreihe von Punkten in dem Punktsatz besteht, der das Inverse des Punktsatzes wiedergibt, der in der Jacobigruppe der mit dem Parameter A definierten Kurve durch T1 angegeben ist.
  • Weiterhin empfängt die zweite Einrichtung 12 den Bivektor T2 aus der fünften Speicherdatei und den Parameter A aus der dritten Speicherdatei und berechnet einen Bivektor X3, der, wenn der Bivektor T2 die Koordinatenwertreihe von Punkten auf einer mit dem Parameter A definierten Kurve sein soll, aus der Koordinatenwertreihe von Punkten in dem Punktsatz besteht, der das Inverse des Punktsatzes wiedergibt, der in der Jacobigruppe der mit dem Parameter A definierten Kurve durch T2 angegeben ist.
  • Die fünfte Einrichtung 15 zum Ausgeben von Ergebnissen gibt den so berechneten Bivektor X3 aus.
  • Die zentrale Prozesseinheit 16 steuert die erste Einrichtung 11, die zweite Einrichtung 12, den Speicher 13, die vierte Einrichtung 14 und die fünfte Einrichtung 15.
  • Wie in 3 dargestellt, umfasst die zweite Einrichtung 12 zum Konvertieren eines Punktsatzes eine erste Einrichtung 21 zum Berechnen einer gemeinsamen Kurve, eine zweite Einrichtung 22 zum Berechnen eines Schnittpunktsatzes, eine dritte Einrichtung 23 zum Berechnen eines Differenzsatzes, einen Speicher 24, eine fünfte Einrichtung 25 zum Ausgeben von Signalen durch sie, eine sechste Einrichtung 26 zum Ausgeben von Berechnungsergebnissen durch sie und eine zentrale Prozesseinheit (CPU) 27.
  • Die fünfte Einrichtung 25 empfängt den Bivektor T1 und den Parameter A zum Definieren einer Kurve und sendet sie an die zentrale Prozesseinheit 27.
  • Der Speicher 24 umfasst eine erste Speicherdatei zum Speichern des Bivektors T1, der durch die fünfte Einrichtung 25 eingegeben wird, eine zweite Speicherdatei zum Speichern des Parameters A, der durch die fünfte Einrichtung 25 eingegeben wird, eine dritte Speicherdatei zum darin Speichern eines berechneten Parameters B und eine vierte Speicherdatei zum darin Speichern eines berechneten Bivektors S1.
  • Die erste Einrichtung 21 zum Berechnen einer gemeinsamen Kurve empfängt den Bivektor T1 aus der ersten Speicherdatei und den Parameter A aus der zweiten Speicherdatei und berechnet einen Parameter B einer Kurve, die, wenn der Bivektor T1 eine Koordinatenwertreihe von Punkten auf einer mit dem Parameter A definierten Kurve sein soll, durch alle zu den Punktsätzen gehörenden Punkte verläuft.
  • Die zweite Einrichtung 22 zum Berechnen eines Schnittpunktsatzes empfängt den Parameter B aus der dritten Speicherdatei und den Parameter A aus der zweiten Speicherdatei und berechnet einen Bivektor S1, der aus der Koordinatenwertreihe von Punkten in einem Schnittpunkt zwischen einer mit dem Parameter A und einer mit dem Parameter B definierten Kurve besteht.
  • Die dritte Einrichtung 23 zum Berechnen eines Differenzsatzes empfängt den Bivektor T1 aus der ersten Speicherdatei und den Bivektor S1 aus der vierten Speicherdatei und berechnet einen Bivektor T2, der, wenn die Bivektoren T1 bzw. S2 Koordinatenwertreihen von Punkten aus einer mit dem Parameter A definierten Kurve sein sollen, aus einer Koordinatenwertreihe von Punkten in einem Punktsatz besteht, der durch Subtrahieren eines Punktsatzes, der durch den Bivektor T1 angegeben wird, von einem Punktsatz, der durch den Bivektor S1 angegeben wird, erhalten wird.
  • Die sechste Einrichtung 26 gibt den derart berechneten Bivektor T2 aus.
  • Die zentrale Prozesseinheit 27 steuert die erste Einrichtung 21, die zweite Einrichtung 22, die dritte Einrichtung 23, den Speicher 24, die fünfte Einrichtung 25 und die sechste Einrichtung 26.
  • Die zentrale Prozesseinheit 16, die vierte Einrichtung 14, die fünfte Einrichtung 15 und der Speicher 13, die alle in 1 dargestellt sind, können auch als zentrale Prozesseinheit 27, fünfte Einrichtung 25, sechste Einrichtung 26 bzw. Speicher 24 dienen. Zusätzlich können der Bivektor T1 und der Parameter A, die beide in dem in 1 dargestellten Speicher 13 gespeichert sind, eingesetzt werden, ohne dass der Bivektor T1 und der Parameter A eingesetzt werden, die durch die in 3 dargestellte fünfte Einrichtung eingegeben wurden.
  • Nachfolgend wird der Betrieb der in 1 und 3 dargestellten Vorrichtung zum Summieren von Bivektoren erläutert. Hier wird angenommen, dass eine Kurve eingesetzt wird, die durch die Gleichung y3 = x4 + 1 auf einem endlichen Feld GF(17) definiert ist.
  • Es wird angenommen, das die vierte Einrichtung 14 in der in 1 dargestellten Vorrichtung zum Summieren von Bivektoren zwei Bivektoren X1 und X2 auf einem endlichen Feld GF(17), das eine Größenordnungszahl von 17 aufweist, und einen Parameter A, der die Kurve y3 = F(x) = x4 + 1 auf dem endlichen Feld GF(17) definiert, empfängt. Das Datenformat des Parameters A ist wie in 5 gezeigt. Die Bivektoren X1 und X2 und der Parameter A werden wie folgt wiedergegeben:
    X1 = ((0, 1), (1, 8), (2, 0))
    X2 = ((3, 10), (4, 8), (5, 10))
    A = (3, 4, –1, 0, 0, 0, 0, 0, 0, 0, 0, 1, –1)
  • Die zentrale Prozesseinheit 16 speichert die Bivektoren X1 und X2 und den von der vierten Einrichtung 14 gesendeten Parameter A zeitweise im Speicher 13. Dann empfängt die zentrale Prozesseinheit 16 die Bivektoren X1 und X2 aus der ersten bzw. zweiten Speicherdatei und sendet sie an die erste Einrichtung 11 zum Berechnen eines Vereinigungsmengensatzes.
  • Die erste Einrichtung 11 zum Berechnen eines Vereinigungsmengensatzes betrachtet die Bivektoren X1 bzw. X2 als Koordinatenwertreihen von Punkten auf der Kurve und berechnet einen Vereinigungsmengensatz von ihnen. Das heißt, dass die erste Einrichtung 11 den Bivektor X1 als Satz betrachtet, der aus drei Punkten (0, 1), (1, 8) und (2, 0) besteht, und den Bivektor X2 als Satz, der aus drei Punkten (3, 10), (4, 8) und (5, 10) besteht, und einen Vereinigungsmengensatz der Bivektoren X1 und X2 berechnet, um dadurch einen Satz {(0, 1), (1, 8), (2, 0), (3, 10), (4, 8), (5, 10)} zu erhalten. Dann gibt die erste Einrichtung 11 den Bivektor T1 aus, der zu dem derart erhaltenen Satz gehört, nämlich den Bivektor T1, der mit ((0, 1), (1, 8), (2, 0), (3, 10), (4, 8), (5, 10)) wiedergegeben wird.
  • Dann speichert die zentrale Prozesseinheit 16 den von der ersten Einrichtung T1 gesendeten Bivektor T1 zeitweise im Speicher 13.
  • Dann empfängt die zentrale Prozesseinheit 16 den Bivektor T1 aus der vierten Speicherdatei und den Parameter A aus der dritten Speicherdatei und sendet sie an die zweite Einrichtung 12 zum Konvertieren eines Punktsatzes. Die zweite Einrichtung 12 führt eine Operation wie folgt durch, um dadurch den Bivektor T2 auszugeben, der, wenn der Bivektor T1 eine Koordinatenwertreihe von Punkte auf einer mit dem Parameter A definierten Kurve sein soll, aus der Koordinatenwertreihe von Punkten in einem Punktsatz besteht, der das Inverse des Punktsatzes angibt, der durch T1 in der Jacobigruppe der mit dem Parameter A definierten Kurve angegeben wird.
  • Mit Bezug auf 3 wird nachfolgend eine Operation erläutert, die von der zweiten Einrichtung 12 zum Konvertieren eines Punktsatzes durchgeführt wird.
  • In der Punktsatz-Konvertierungseinrichtung 12 empfängt die fünfte Einrichtung 25 den Bivektor T1 und den Parameter A und sendet sie an die zentrale Prozesseinheit 27. Dann speichert die zentrale Prozesseinheit 27 den Bivektor T1 und den Parameter A zeitweise im Speicher 24. Wenn das Berechnungsergebnis, das von der ersten Einrichtung 11 zum Berechnen eines Vereinigungsmengensatzes erzielt wird, im Speicher 13 gespeichert wird, kann das Berechnungsergebnis ausgelesen werden.
  • Dann empfängt die zentrale Prozesseinheit 27 den Bivektor T1 aus der vierten Speicherdatei und den Parameter A aus der dritten Speicherdatei und sendet sie an die erste Einrichtung 21 zum Berechnen einer gemeinsamen Kurve. Die erste Einrichtung 21 führt wie folgt eine Operation durch, um dadurch den Parameter B, der eine Kurve definiert, die durch alle Punkte verläuft, die zu einem Punktsatz gehören, der durch den Bivektor T1 wiedergegeben wird, sowie einen Verdopplungsgrad in der Form des in 5 dargestellte Datenformats auszugeben.
  • Die von der ersten Einrichtung 21 zum Berechnen einer gemeinsamen Kurve durchgeführte Operation wird nachfolgend mit Bezug auf 6 erläutert.
  • In Schritt 61 liest die erste Einrichtung 21 zuerst den Grad, 3, von y und den Grad, 4, von x aus dem Parameter A = (3, 4, –1, 0, 0, 0, 0, 0, 0, 0, 0, 1, –1) aus, der in sie eingegeben wurde. Angenommen, dass i eine ganze Zahl angibt, die gleich oder größer als 0 ist, und j eine ganze Zahl im Bereich von 0 bis 2 angibt, beide eingeschlossen, bestimmt die erste Einrichtung 21 dann die Gewichtung von 3i + 4j für ein Monom xiyj, das aus unbestimmten Elementen x und y besteht.
  • Dann berechnet die Einrichtung zum Berechnen einer gemeinsamen Kurve in Schritt 62 eine Zahl von Elementen eines Punktsatzes {(0, 1), (1, 8), (2, 0), (3, 10), (4, 8), (5, 10)}, der durch den Bivektor T1 wiedergegeben wird. Als Ergebnis wird 6 als die Anzahl von Elementen erhalten. Dann werden sieben Elemente (6 + 1 = 7), die die minimalen Gewichtungen aufweisen, aus dem oben erwähnten Monom xiyj ausgewählt (i ≥ 0, 0 ≤ j ≤ 2). Als Ergebnis werden sieben Elemente erhalten (1, x, y, x2, xy, y2, x3). Dann wird durch die Verwendung von unbestimmten Koeffizienten (a, b, c, d, e, f, g) des derart ausgewählten Monoms (1, x, y, x2, xy, y2, x3) eine Linearkombination (a + bx + cy + dx2 + exy + fy2 + gx3) aufgestellt.
  • Dann führt die erste Einrichtung 21 zum Berechnen einer gemeinsamen Kurve Koordinatenwerte von Punkten, die in dem Punktsatz {(0, 1), (1, 8), (2, 0), (3, 10), (4, 8), (5, 10)} enthalten sind, der durch den Bivektor T1 wiedergegeben wird, in die oben erwähnte Linearkombination (a + bx + cy + dx2 + exy + fy2 + gx3) ein, um dadurch in Schritt 63 das folgende lineare Gleichungssystem zu erhalten. a + c + f = 0 a + b + 8c + d + 8e + 13f + g = 0 a + 2b + 4d + 8g = 0 a + 3b + 10c + 9d + 13e + 15f + 10g = 0 a + 4b + 8c + 16d + 15e + 13f + 13g = 0 a + 5b + 10c + 8d + 16e + 15f + 6g = 0
  • Dann löst die erste Einrichtung 21 zum Berechnen einer gemeinsamen Kurve in Schritt 64 das oben erwähnte lineare Gleichungssystem, um dadurch die oben erwähnten unbestimmten Koeffizienten wie folgt zu bestimmen:
    a = 8, b = 4, c = 14, d = 4, e = 16, f = 12, g = 13
  • Dann setzt die erste Einrichtung zum Berechnen einer gemeinsamen Kurve die Grade (2, 3) von x und y an den Kopf der derart bestimmen unbestimmten Koeffizienten (8, 4, 14, 4, 16, 12, 13), um dadurch den Parameter B = (2, 3, 8, 4, 14, 4, 16, 12, 13) zu erhalten, und gibt den Parameter B aus.
  • Dann speichert die zentrale Prozesseinheit 27 in 3 den von der ersten Einrichtung 21 gesendeten Parameter B zeitweise als Ausgabe im Speicher 24. Dann empfängt die zentrale Prozesseinheit 27 den Parameter B aus der dritten Speicherdatei und den Parameter A aus der zweiten Speicherdatei und sendet sie an die zweite Einrichtung 22 zum Berechnen eines Schnittpunktsatzes.
  • Die zweite Einrichtung 22 führt die folgende Operation aus, um dadurch den Bivektor T2 auszugeben, der aus der Koordinatenwertreihe von Punkten in einem Schnittpunkt zwischen einer mit dem Parameter A definierten Kurve und einer mit dem Parameter B definierten Kurve besteht.
  • Die von der zweiten Einrichtung 22 zum Berechnen eines Schnittpunktsatzes durchgeführte Operation wird nachfolgend mit Bezug auf 7 erläutert.
  • In Schritt 71 stellt die zweite Einrichtung 22 basierend auf dem ihr eingegebenen Parameter A = (3, 4, –1, 0, 0, 0, 0, 0, 0, 0, 0, 1, –1) eine Gleichung f (x, y) = y3 – x4 – 1 = 0 auf, die eine Kurve definiert, und stellt basierend auf dem ihr eingegebenen Parameter B = (2, 3, 8, 4, 14, 4, 16, 12, 13) weiterhin eine Gleichung g (x, y) = 8 + 4x + 14y + 4x2 + 16xy + 12y2 + 13x2 = 0 auf, die eine Kurve definiert. Dann wird eine resultierende Gleichung von f (x, y) und g (x, y) bezogen auf y durch Entwickeln der folgenden Determinante berechnet:
  • Figure 00170001
  • Als Ergebnis wird ein Polynom s(x) = 16x + 2x2 + 13x3 + 13x4 + 10x5 + 2x6 + 8x8 + 4x9 erhalten. Eine resultierende Gleichung ist zum Beispiel in "Introduction to Algebraic Geometry" von Van der Werden, Springer-Verlag, Tokyo, genau beschrieben.
  • Dann erhält die zweite Einrichtung 22 zum Berechnen eines Schnittpunktsatzes in Schritt 72 Lösungen von s(x) = 0. Die Lösungen sind nämlich x1 = 0, x2 = 13, x3 = 5, x4 = 4, x5 = 3, x6 = 2, x7 = 1, x8 = α1 und x9 = α2. Hier sind α1 und α2 Lösungen einer quadratischen irreduziblen Gleichung 16 + 13x + x2 = 0.
  • In Schritt 73 berechnet die zweite Einrichtung 22 dann eine größere gemeinsame Gleichung ti(y) unter f(xi, y) und g(xi, y) für alle erhaltenen Lösungen xi, um dadurch alle Lösungen y = yi,1, ..., yi,mi einer Gleichung ti(y) = 0 zu erhalten.
  • Das heißt, dass (16 + y) durch Berechnen einer größeren gemeinsamen Gleichung unter f(0, y) und g(0, y) erhalten wird, weil x1 gleich null ist (x1 = 0), wenn i gleich 1 ist (i = 1). Durch Lösen von 16 + y = 0 wird dann y1,1 = 1 erhalten.
  • Auf ähnliche Weise wird (9 + y) durch Berechnen einer größeren gemeinsamen Gleichung unter f(13, y) und g(13, y) erhalten, weil x2 gleich 13 ist (x2 = 13), wenn i gleich 2 ist (i = 2). Dann wird y2,1 = 8 durch Lösen von 9 + y = 0 erhalten.
  • Weil x3 gleich 5 ist (x3 = 5), wenn i gleich 3 ist (i = 3), wird (7 + y) durch Berechnen einer größeren gemeinsamen Gleichung unter f(5, y) und g(5, y) erhalten. Dann wird y3,1 = 10 durch Lösen von 7 + y = 0 erhalten.
  • Weil x4 gleich 4 ist (x4 = 4), wenn i gleich 4 ist (i = 4), wird (9 + y) durch Berechnen einer größeren gemeinsamen Gleichung unter f(4, y) und g(4, y) erhalten. Dann wird y4,1 = 8 durch Lösen von 9 + y = 0 erhalten.
  • Weil x5 gleich 3 ist (x5 = 3), wenn i gleich 5 ist (i = 5), wird (7 + y) durch Berechnen einer größeren gemeinsamen Gleichung unter f(3, y) und g(3, y) erhalten. Dann wird y5,1 = 10 durch Lösen von 7 + y = 0 erhalten.
  • Weil x6 gleich 2 ist (x6 = 2), wenn i gleich 6 ist (i = 6), wird y durch Berechnen einer größeren gemeinsamen Gleichung unter f(2, y) und g(2, y) erhalten. Dann wird y6,1 = 0 durch Lösen von y = 0 erhalten.
  • Weil x7 gleich 1 ist (x7 = 1), wenn i gleich 7 ist (i = 7), wird (9 + y) durch Berechnen einer größeren gemeinsamen Gleichung unter f(1, y) und g(1, y) erhalten. Dann wird y7,1 = 8 durch Lösen von 9 + y = 0 erhalten.
  • Weil x8 gleich α1 ist (x8 = α1), wenn i gleich 8 ist (i = 8), wird (8 + 8α1 + y) durch Berechnen einer größeren gemeinsamen Gleichung unter f(α1, y) und g(α1, y) erhalten. Dann wird y8,1 = 9 + 9α1 durch Lösen von 8 + 8α1 + y = 0 erhalten.
  • Weil x9 gleich α2 ist (x9 = α2), wenn i gleich 9 ist (i = 9), wird (8 + 8α2 + y) durch Berechnen einer größeren gemeinsamen Gleichung unter f(α2, y) und g(α2, y) erhalten. Dann wird y9,1 = 9 + 9α2 durch Lösen von 8 + 8α2 + y = 0 erhalten.
  • Dann gibt die zweite Einrichtung 22 zum Berechnen eines Schnittpunktsatzes in Schritt 74 den Bivektor S1 = ((0, 1), (13, 8), (5, 10), (4, 8), (3, 10), (2, 0), (1, 8), (α1, 9 + 9α1), (α2, 9 + 9α2)) aus, der aus einer Koordinatenwertreihe von Punkten in einem Punktsatz {(xi, yi, j), 1 ≤ i ≤ n, 1 ≤ j ≤ mi} besteht.
  • Mit Bezug auf 3 speichert die zentrale Prozesseinheit 27 dann den von der zweiten Einrichtung 22 gesendeten Bivektor S1 zeitweise in dem Speicher 24. Dann empfängt die zentrale Prozesseinheit 27 den Bivektor T1 aus der ersten Speicherdatei und den Bivektor S1 aus der vierten Speicherdatei und sendet sie an die dritte Einrichtung 23 zum Berechnen eines Differenzsatzes.
  • Die dritte Einrichtung 23 zum Berechnen eines Differenzsatzes subtrahiert einen durch den Bivektor T1 wiedergegebenen Punktsatz {(0, 1), (1, 8), (2, 0), (3, 10), (4, 8), (5, 10)} von einem durch den Bivektor S1 wiedergegebenen Punktsatz {(0, 1), (13, 8), (5, 10), (4, 8), (3, 10), (2, 0), (1, 8), (α1, 9 + 9α1), (α2, 9 + 9α2)}, um dadurch einen Differenzsatz {(13, 8), (α1, 9 + 9α1), (α2, 9 + 9α2)} zu bilden, und gibt dann einen Bivektor T2 = ((13, 8), (α1, 9 + 9α1), (α2, 9 + 9α2)) aus, der aus einer Koordinatenwertreihe von Punkten in dem derart erhaltenen Differenzsatz besteht.
  • Dann gibt die zentrale Prozesseinheit 27 den derart erhaltenen Bivektor T2 an die sechste Einrichtung 26 aus.
  • Mit Bezug auf 1 speichert die zentrale Prozesseinheit 16 dann den von der zweiten Einrichtung 12 gesendeten Bivektor T2 zeitweise in dem Speicher 13. Dann empfängt die zentrale Prozesseinheit 16 den Bivektor T2 aus der fünften Speicherdatei und den Parameter A aus der dritten Speicherdatei und sendet sie wieder an die zweite Einrichtung 12 zum Konvertieren eines Punktsatzes.
  • Die zweite Einrichtung 12 führt auf die gleiche Weise wie vorstehend erwähnt eine Operation durch, um dadurch den Bivektor X3 = ((1, 8), (β1, 14 + 8β1), (β2, 14 + 8β2)) zu erhalten, der, wenn der Bivektor T2 die Koordinatenwertreihe von Punkten auf einer mit dem Parameter A definierten Kurve sein soll, aus der Koordinatenwertreihe von Punkten in einem Punktsatz besteht, der das Inverse des Punktsatzes angibt, der in der Jacobigruppe der mit dem Parameter A definierten Kurve durch T2 angegeben ist. In dem Bivektor X3 sind β1 und β2 Lösungen einer quadratischen irreduziblen Gleichung 14 + 10x + x2 = 0.
  • Dann sendet die zentrale Prozesseinheit 16 den derart berechneten Bivektor X3 an die fünfte Einrichtung 15.
  • [Vorrichtung zum Verdoppeln eines Bivektors]
  • Nachfolgend wird eine Ausführungsform der Vorrichtung zum Verdoppeln eines Bivektors gemäß der vorliegenden Erfindung beschrieben.
  • Die Vorrichtung zum Verdoppeln eines Bivektors gemäß der Ausführungsform berechnet einen Bivektor Y, der, wenn ein Bivektor X die Koordinatenwertreihe von Punkten in einem Punktsatz Q auf einer mit einem Parameter A definierten Kurve sein soll, aus der Koordinatenwertreihe von Punkten in einem Punktsatz R besteht, der gleich einem verdoppelten Q in der Jacobigruppe der mit dem Parameter A definierten Kurve ist, und gibt ihn aus. Diese Vorrichtung kann in einem Computer erreicht werden.
  • 8 ist ein Blockdiagramm der Vorrichtung zum Verdoppeln eines Bivektors gemäß der vorliegenden Ausführungsform. 9 ist ein Flussdiagramm, dass die durch die Vorrichtung zum Verdoppeln eines Bivektors durchgeführte Operation darstellt.
  • Wie in 8 dargestellt, umfasst die Vorrichtung zum Verdoppeln eines Bivektors gemäß der Ausführungsform eine Vorrichtung 31 zum Summieren von Bivektoren, einen Speicher 32, eine Eingabeeinrichtung 33, eine Ausgabeeinrichtung 34 und eine zentrale Prozesseinheit 35.
  • Die Vorrichtung 31 zum Summieren von Bivektoren ist die gleiche wie die in 1 dargestellte Vorrichtung zum Summieren von Bivektoren. Der Speicher 32 umfasst eine erste Speicherdatei zum darin Speichern eines Bivektors X, eine zweite Speicherdatei zum darin Speichern eines Bivektors Xa und eine dritte Speicherdatei zum darin Speichern des Parameters A.
  • Man beachte, dass die zentrale Prozesseinheit 16, die vierte Einrichtung 14 zum Eingeben von Daten durch sie, die fünfte Einrichtung 15 zum Ausgeben von Ergebnissen durch sie und der Speicher 13 in der Vorrichtung zum Summieren von Bivektoren, die in 1 dargestellt sind, als zentrale Prozesseinheit 35, Eingabeeinrichtung 33, Ausgabeeinrichtung 34 bzw. Speicher 32 verwendet werden können.
  • Nachfolgend wird die Operation der Vorrichtung zum Verdoppeln eines Bivektors gemäß der Ausführungsform mit Bezug auf 8 erläutert. In der Vorrichtung zum Verdoppeln eines Bivektors, die in 8 dargestellt ist, wird angenommen, dass der Vorrichtung durch die Eingabeeinrichtung 33 ein Bivektor X = ((0, 1), (1, 8), (2, 0)) auf einem endlichen Feld GF(17) und ein Parameter A = (3, 4, –1, 0, 0, 0, 0, 0, 0, 0, 0, 1, –1), der eine Kurve y3 = F(x) = x4 + 1 auf dem endlichen Feld GF(17) definiert, eingegeben werden. Das Datenformat des Parameters A ist in 5 gezeigt.
  • Die zentrale Prozesseinheit 35 speichert den Bivektor X, den Bivektor Xa, der eine Kopie des Bivektors X ist, und den Parameter A zeitweise in dem Speicher 32.
  • Dann empfängt die zentrale Prozesseinheit 35 den Bivektor X aus der ersten Speicherdatei, den Bivektor Xa aus der zweiten Speicherdatei und den Parameter A aus der dritten Speicherdatei und sendet sie an die Vorrichtung 31 zum Summieren von Bivektoren, um dadurch einen Bivektor X2 = ((7, 11), (11, γ1), (11, γ2)) zu erhalten, wobei γ1 und γ2 Lösungen einer quadratischen irreduziblen Gleichung x2 + 11x + 2 = 0 sind.
  • Dann sendet die zentrale Prozesseinheit 35 den derart erhaltenen Bivektor X2 an die Ausgabeeinrichtung 34.
  • [Vorrichtung zum Multiplizieren eines Bivektors mit einer ganzen Zahl]
  • Nachfolgend wird eine Vorrichtung zum Multiplizieren eines Bivektors mit einer ganzen Zahl gemäß einer Ausführungsform der vorliegenden Erfindung erläutert.
  • Die Vorrichtung zum Multiplizieren eines Bivektors mit einer ganzen Zahl berechnet einen Bivektor Z, der, wenn ein Bivektor X, der eine Mehrzahl Elementpaare umfasst, die aus einem vorbestimmten endlichen Feld ausgewählt werden, die Koordinatenwertreihe von Punkten in einem Punktsatz Q auf einer mit einem Parameter A definierten Kurve sein soll, aus der Koordinatenwertreihe von Punkten in einem Punktsatz R besteht, der gleich dem Punktsatz Q ist, multipliziert mit einer ganzen Zahl N in der Jacobigruppe der mit dem Parameter A definierten Kurve. Diese Vorrichtung kann in einem Computer erreicht werden.
  • 10 stellt eine Vorrichtung zum Multiplizieren eines Bivektors mit einer ganzen Zahl gemäß einer Ausführungsform der vorliegenden Erfindung dar. 11 ist ein Flussdiagramm einer Operation, die durch die Vorrichtung zum Multiplizieren eines Bivektors mit einer ganzen Zahl ausgeführt wird.
  • Die Vorrichtung zum Multiplizieren eines Bivektors mit einer ganzen Zahl umfasst gemäß der Ausführungsform eine erste Vorrichtung 41 zum Summieren von Bivektoren, eine zweite Vorrichtung 42 zum Verdoppeln eines Bivektors, einen Speicher 43, eine Eingabeeinrichtung 44, eine Ausgabeeinrichtung 45 und eine zentrale Prozesseinheit 46.
  • Die erste Vorrichtung 41 zum Summieren von Bivektoren ist die gleiche wie die in 1 dargestellte Vorrichtung. Die zweite Vorrichtung 42 zum Verdoppeln eines Bivektors ist die gleiche wie die in 8 dargestellte Vorrichtung. Der Speicher 43 umfasst eine erste Speicherdatei zum darin Speichern einer ganzen Zahl N, eine zweite Speicherdatei zum darin Speichern eines Bivektors X, eine dritte Speicherdatei zum darin Speichern eines Bivektors Y, eine vierte Speicherdatei zum darin Speichern eines Bivektors Z, eine fünfte Speicherdatei zum darin Speichern eines Parameters A und eine sechste Speicherdatei zum darin Speichern einer ganzen Zahl R.
  • Man beachte, dass die zentrale Prozesseinheit 16, die vierte Einrichtung 14, die fünfte Einrichtung 15 und der Speicher 13 in der in 1 dargestellten Vorrichtung zum Summieren von Bivektoren auch als zentrale Prozesseinheit 46, Eingabeeinrichtung 44, Ausgabeeinrichtung 45 bzw. Speicher 43 dienen können.
  • Nachfolgend wird die Operation der Vorrichtung zum Multiplizieren eines Bivektors mit einer ganzen Zahl mit Bezug auf 10 und 11 erläutert.
  • Die Eingabeeinrichtung 44 empfängt eine ganze Zahl N, einen Bivektor X und einen Parameter A, der eine Kurve definiert, und sendet sie an die zentrale Prozesseinheit 46. Die zentrale Prozesseinheit 46 speichert in Schritt 1101 in 11 die ganze Zahl N in der ersten Speicherdatei, den Bivektor X in der zweiten Speicherdatei und den Parameter A in der fünften Speicherdatei des Speichers 43.
  • Dann wird in Schritt 1102 in 11 ein leerer Bivektor Z in der vierten Speicherdatei als Anfangswert gespeichert, und ein Bivektor Y, der eine Kopie des Bivektors X ist, wird in der dritten Speicherdatei des Speichers gespeichert.
  • Dann empfängt die zentrale Prozesseinheit 46 die ganze Zahl N aus der ersten Speicherdatei und teilt die ganze Zahl N durch 2, um dadurch einen Rest R zu erhalten. In Schritt 1103 in 11 erneuert die zentrale Prozesseinheit 46 die sechste Speicherdatei mit dem derart erhaltenen Rest R, der als neues R verwendet wird. Gleichzeitig empfängt die zentrale Prozesseinheit 46 die ganze Zahl N aus der ersten Speicherdatei und berechnet einen Quotienten, der erhalten wird, wenn die ganze Zahl N durch 2 dividiert wird. Die zentrale Prozesseinheit 46 erneuert die erste Speicherdatei mit dem derart erhaltenen Quotienten, der als neues N verwendet wird.
  • Dann empfängt die zentrale Prozesseinheit 46 in Schritt 1104 den Rest R aus der sechsten Speicherdatei und bestimmt, ob der Rest R gleich 1 ist oder nicht.
  • Wenn in Schritt 1104 bestimmt wird, dass der Rest R gleich 1 ist, empfängt die zentrale Prozesseinheit 46 den Bivektor Y aus der dritten Speicherdatei, den Bivektor Z aus der vierten Speicherdatei und den Parameter A aus der fünften Speicherdatei und sendet die Bivektoren Y und Z und den Parameter A an die erste Vorrichtung zum Summieren von Bivektoren, um dadurch die Summe der Bivektoren Y und Z zu berechnen. Dann erneuert die zentrale Prozesseinheit 46 in Schritt 1105 die vierten Speicherdatei mit der so erhaltenen Summe der Bivektoren Y und Z, die als neuer Bivektor Z verwendet wird.
  • Wenn in Schritt 1104 bestimmt wird, dass der Rest ungleich 1 ist, empfängt die zentrale Prozesseinheit 46 die ganze Zahl N aus der ersten Speicherdatei und beurteilt dann in Schritt 1106, ob die ganze Zahl N größer als 0 ist oder nicht.
  • Wenn in Schritt 1106 geurteilt wird, dass der Rest R größer als 0 ist, empfängt die zentrale Prozesseinheit 46 den Bivektor Y aus der dritten Speicherdatei und den Parameter A aus der fünften Speicherdatei und sendet den Bivektor Y und den Parameter A an die zweite Vorrichtung 42 zum Verdoppeln eines Bivektors, um dadurch den Bivektor Y zu verdoppeln. Dann erneuert die zentrale Prozesseinheit 46 in Schritt 1108 die dritte Speicherdatei, wobei der derart erhaltene verdoppelte Bivektor Y als neuer Bivektor Y verwendet wird. Danach kehrt das Verfahren zu Schritt 1103 zurück.
  • Wenn in Schritt 1106 geurteilt wird, dass die ganze Zahl N gleich null ist, empfängt die zentrale Prozesseinheit 46 den Bivektor Z aus der vierten Speicherdatei und gibt den Bivektor Z in Schritt 1107 durch die Ausgabeeinrichtung 45 aus. Die Operation der Vorrichtung zum Multiplizieren eines Bivektors mit einer ganzen Zahl ist beendet.
  • Mit Bezug auf 10 und 11 wird eine Vorrichtung zum Multiplizieren eines Bivektors mit einer ganzen Zahl gemäß der Ausführungsform erläutert.
  • In der Vorrichtung zum Multiplizieren eines Bivektors mit einer ganzen Zahl, die in 10 dargestellt ist, wird angenommen, dass der Vorrichtung in Schritt 1101 durch die Eingabeeinrichtung 44 ein Bivektor X = ((0, 1), (1, 8), (2, 0)) auf einem endlichen Feld GF(17), ein Parameter A = (3, 4, –1, 0, 0, 0, 0, 0, 0, 0, 0, 1, –1), der eine Kurve y3 = F(x) = x4 + 1 auf dem endlichen Feld GF(17) definiert, und eine ganze Zahl N = 5 eingegeben werden. Das Datenformat des Parameters A ist wie in 5 gezeigt.
  • In Schritt 1102 speichert die zentrale Prozesseinheit 46 den Bivektor X, den Bivektor Y, der eine Kopie des Bivektors X ist, den leeren Bivektor Z, den Parameter A und die ganze Zahl N zeitweise im Speicher 43.
  • Dann empfängt die zentrale Prozesseinheit 46 die ganze Zahl N aus der ersten Speicherdatei, dividiert die ganze Zahl N = 5 durch 2, um dadurch einen Rest R = 1 zu erhalten, und speichert den derart erhaltenen Rest R zeitweise in der sechsten Speicherdatei. Darüber hinaus empfängt die zentrale Prozesseinheit 46 die ganze Zahl N aus der ersten Speicherdatei, berechnet einen Quotienten 2, der erhalten wird, wenn die ganze Zahl N = 5 durch 2 dividiert wird, und speichert den derart erhaltenen Quotienten in Schritt 1103 zeitweise in der ersten Speicherdatei.
  • Dann empfängt die zentrale Prozesseinheit 46 den Rest R aus der sechsten Speicherdatei, und dann empfängt die zentrale Prozesseinheit 46, weil der Rest R gleich 1 ist, wie in Schritt 1104 bestimmt wurde, den Bivektor Y aus der dritten Speicherdatei, den Bivektor Z aus der vierten Speicherdatei und den Parameter A aus der fünften Speicherdatei, und sendet die Bivektoren Y und Z und den Parameter A an die erste Vorrichtung 41 zum Summieren von Bivektoren, um dadurch einen Bivektor {(0, 1), (1, 8), (2, 0)} als Ausgabe von der ersten Vorrichtung 41 zu haben. Dann speichert die zentrale Prozesseinheit 46 in Schritt 1105 den so erhaltenen Bivektor {(0, 1), (1, 8), (2, 0)} zeitweise in der vierten Speicherdatei.
  • Dann empfängt die zentrale Prozesseinheit 46 die ganze Zahl N aus der ersten Speicherdatei, und dann empfängt die zentrale Prozesseinheit 46, weil die ganze Zahl N = 2 größer als 0 ist, wie in Schritt 1106 bestimmt wurde, den Bivektor Y aus der dritten Speicherdatei und den Parameter A aus der fünften Speicherdatei und sendet die Bivektoren Y und Z und den Parameter A an die zweite Vorrichtung 42 zum Verdoppeln eines Bivektors, um dadurch einen Bivektor {(7, 11), (11, α1), (11, α2)} als Ausgabe von der zweiten Vorrichtung 42 zu haben. Dann speichert die zentrale Prozesseinheit 46 in Schritt 1108 den derart erhaltenen Bivektor {(7, 11), (11, α1), (11, α2)} zeitweise in der dritten Speicherdatei. Hier sind α1 und α2 Lösungen einer quadratischen irreduziblen Gleichung x2 + 11x + 2 = 0.
  • Dann empfängt die zentrale Prozesseinheit 46 die ganze Zahl N aus der ersten Speicherdatei, dividiert die ganze Zahl N = 2 durch 2, um dadurch einen Rest R = 0 zu erhalten, und speichert den derart erhaltenen Rest R zeitweise in der sechsten Speicherdatei. Darüber hinaus empfängt die zentrale Prozesseinheit 46 die ganze Zahl N aus der ersten Speicherdatei, berechnet einen Quotienten 1, der erhalten wird, indem die ganze Zahl N = 2 durch 2 dividiert wird, und speichert den derart erhaltenen Quotienten in Schritt 1103 zeitweise in der ersten Speicherdatei.
  • Dann empfängt die zentrale Prozesseinheit 46 die ganze Zahl R aus der sechsten Speicherdatei und bestätigt in Schritt 1106, dass die ganze Zahl R nicht gleich 1 ist.
  • Dann empfängt die zentrale Prozesseinheit 46 die ganze Zahl N aus der ersten Speicherdatei, und dann empfängt die zentrale Prozesseinheit 46, weil die ganze Zahl N = 1 größer als 0 ist, wie in Schritt 1106 bestimmt wurde, den Bivektor Y aus der dritten Speicherdatei und den Parameter A aus der fünften Speicherdatei und sendet den Bivektor Y und den Parameter A an die zweite Vorrichtung 42 zum Verdoppeln eines Bivektors, um dadurch Bivektoren ((β1, 16 + 3β1 + 7β1 2), (β2, 16 + 3β2 + 7β2 2), (β3, 16 + 3β3 + 7β3 2)) als Ausgabe aus der zweiten Vorrichtung 42 zu haben. Dann speichert die zentrale Prozesseinheit 46 in Schritt 1108 die so erhaltenen Bivektoren ((β1, 16 + 3β1 + 7β1 2), (β2, 16 + 3β2 + 7β2 2), (β3, 16 + 3β3 + 7β3 2)) zeitweise in der dritten Speicherdatei. Hier sind β1, β2 und β3 Lösungen einer irreduziblen Gleichung dritten Grades x3 + 14x2 + 6x + 8 = 0.
  • Dann empfängt die zentrale Prozesseinheit 46 die ganze Zahl N aus der ersten Speicherdatei. Da die ganze Zahl N gleich 1 ist, dividiert die zentrale Prozesseinheit 46 die ganze Zahl N = 1 durch 2, um dadurch einen Rest R = 1 zu erhalten, und speichert den derart berechneten Rest R = 1 zeitweise in der sechsten Speicherdatei. Darüber hinaus empfängt die zentrale Prozesseinheit 46 die ganze Zahl N aus der ersten Speicherdatei, dividiert die ganze Zahl N = 1 durch 2, um dadurch einen Quotienten = zu erhalten, und speichert den derart berechneten Quotienten dann in Schritt 1103 in der ersten Speicherdatei.
  • Dann empfängt die zentrale Prozesseinheit 46 die ganze Zahl R aus der sechsten Speicherdatei, und dann empfängt die zentrale Prozesseinheit 46, weil die ganze Zahl R = 1 ist, wie in Schritt 1104 bestimmt wurde, den Bivektor Y aus der dritten Speicherdatei, den Bivektor Z aus der vierten Speicherdatei und den Parameter A aus der fünften Speicherdatei und sendet die Bivektoren Y und Z und den Parameter A an die erste Vorrichtung 41 zum Summieren von Bivektoren, um dadurch Bivektoren ((γ1, 13 + 2γ1 + 5γ1 2), (γ2, 13 + 2γ2 + 5γ2 2), (γ3, 13 + 2γ3 + 5γ3 2)) als Ausgabe von der erstem Vorrichtung 41 zu haben. Dann speichert die zentrale Prozesseinheit 46 in Schritt 1105 die derart erhaltenen Bivektoren ((γ1, 13 + 2γ1 + 5γ1 2), (γ2, 13 + 2γ2 + 5γ2 2), (γ3, 13 + 2γ3 + 5γ3 2)) zeitweise in der vierten Speicherdatei. Hier sind γ1, γ2 und γ3 Lösungen einer irreduziblen Gleichung dritten Grades x3 + 8x2 + 7x + 9 = 0.
  • Dann empfängt die zentrale Prozesseinheit 46 die ganze Zahl N aus der ersten Speicherdatei. Da die ganze Zahl N gleich 0 ist, wie in Schritt 1106 bestimmt wurde, empfängt die zentrale Prozesseinheit 46 den Bivektor Z aus der vierten Speicherdatei und gibt den Bivektor Z in Schritt 1008 durch die Ausgabeeinrichtung 45 aus.
  • [System zum Verteilen eines öffentlichen Schlüssels]
  • Nachfolgend wird ein System zum Verteilen eines öffentlichen Schlüssels gemäß einer Ausführungsform der vorliegenden Erfindung mit Bezug auf 12 bis 15 erläutert, wobei 12 ein Blockdiagramm ist, das das System zum Verteilen eines öffentlichen Schlüssels darstellt, in dem die Vorrichtung zum Multiplizieren eines Bivektors mit einer ganzen Zahl eingesetzt wird, 13 ein Beispiel eines Zentrums in dem in 12 dargestellten System zum Verteilen eines öffentlichen Schlüssels darstellt, 14 ein Beispiel eines Nutzeranschlusses in dem in 12 dargestellten System zum Verteilen eines öffentlichen Schlüssels darstellt und 15 ein Flussdiagramm der Operation ist, die von dem System zum Verteilen eines öffentlichen Schlüssels durchgeführt wird, in dem die Vorrichtung zum Multiplizieren eines Bivektors mit einer ganzen Zahl eingesetzt wird.
  • Das System zum Verteilen eines öffentlichen Schlüssels gemäß der Ausführungsform umfasst ein einzelnes Zentrum und eine Mehrzahl Nutzeranschlüsse, wie in 12 dargestellt, und führt die in 15 dargestellten Schritte aus.
  • In dem System zum Verteilen eines öffentlichen Schlüssels gemäß der Ausführungsform teilt das Zentrum in Schritt 151 allen Nutzeranschlüssen im voraus einen Parameter A zum Definieren einer Kurve und einen Bivektor Q mit.
  • Ein erster Nutzeranschluss U wählt zufällig eine ganze Zahl Nu aus und hält sie geheim. Auf ähnliche Weise wählt ein zweiter Nutzeranschluss V eine ganze Zahl Nv aus und hält sie geheim.
  • Dann gibt der erste Nutzeranschluss U in Schritt 152 die ganze Zahl Nu, die selbst ein geheimes Datum ist, sowie den Bivektor Q und den Parameter A, die beide offene Daten sind, in die Vorrichtung zum Multiplizieren eines Bivektors mit einer ganzen Zahl ein und sendet einen resultierenden Bivektor Qu = Nu × Q an den zweiten Nutzeranschluss V. Auf ähnliche Weise gibt der zweite Nutzeranschluss V in Schritt 152 die ganze Zahl Nv, die selbst ein geheimes Datum ist, sowie den Bivektor Q und den Parameter A, die beide offene Daten sind, in die Vorrichtung zum Multiplizieren eines Bivektors mit einer ganzen Zahl ein und sendet einen resultierenden Bivektor Qv = Nv × Q an den ersten Nutzeranschluss U.
  • Dann gibt der erste Nutzeranschluss U in Schritt 153 den Bivektor Qv, der vom zweiten Nutzeranschluss V gesendet wurde, die ganze Zahl Nu, die selbst ein geheimes Datum ist, und den Parameter A, der ein offenes Datum ist, in die Vorrichtung zum Multiplizieren eines Bivektors mit einer ganzen Zahl ein und hält einen resultierenden Bivektor K = Nu × Qv = Nu × Nv × Q als gemeinsamen Schlüssel K. Auf ähnliche Weise gibt der zweite Nutzeranschluss V in Schritt 153 den Bivektor Qu, der vom ersten Nutzeranschluss U gesendet wurde, die ganze Zahl Nv, die selbst ein geheimes Datum ist, und den Parameter A, der ein offenes Datum ist, in die Vorrichtung zum Multiplizieren eines Bivektors mit einer ganzen Zahl ein und hält einen resultierenden Bivektor K = Nv × Qu = Nv × Nu × Q als gemeinsamen Schlüssel K.
  • Daher können die ersten und zweiten Nutzeranschlüsse U und V in Schritt 154 durch die Verwendung des gemeinsamen Schlüssels K eine geheime Kommunikation unter einander durchführen.
  • Nachfolgend wird ein Beispiels des Zentrums und des Nutzeranschlusses in dem System zum Verteilen eines öffentlichen Schlüssels erläutert.
  • Wie in 13 dargestellt, umfasst das Zentrum 80 ein erstes Mittel 81 zum Empfangen einer Anforderung, einen Bivektor und einen Parameter zu senden, und ein zweites Mittel 82 zum Offenbaren eines Bivektors und eines Parameters. Wenn das Zentrum 80 von einem Nutzeranschluss durch das erste Mittel 81 eine Anforderung empfängt, den Bivektor Q und den Parameter A zu senden, offenbart das Zentrum 80 dem Nutzeranschluss den angeforderten Bivektor Q und den Parameter A durch das zweite Mittel 82.
  • 14 stellt ein Beispiel des Nutzeranschlusses U 90 dar. Der Nutzeranschluss U 90 umfasst ein erstes Mittel 91 zum Anfordern, einen Bivektor und einen Parameter zu senden, ein zweites Mittel 92 zum Empfangen eines Bivektors und eines Parameters, ein drittes Mittel 93 zum Auswählen einer ganzen Zahl, eine Vorrichtung 94 zum Multiplizieren eines Bivektors mit einer ganzen Zahl, ein fünftes Mittel 95 zum Ausgeben eines Bivektors Qu, ein sechstes Mittel 96 zum Empfangen eines Bivektors Qv, ein siebtes Mittel 97 zum Speichern eines geheimen Schlüssels darin und ein achtes Mittel 98 zum Ausführen einer geheimen Kommunikation.
  • Das erste Mittel 91 fordert das Zentrum auf, den Bivektor Q und den Parameter zu senden, die beide offenbart wurden.
  • Das zweite Mittel 92 empfängt und hält den Bivektor Q und den Parameter A, die von dem Zentrum gemäß der durch das erste Mittel 91 an das Zentrum gesendeten Anforderung gesendet wurde, und sendet den derart empfangenen Bivektor Q und Parameter A an die Vorrichtung 94 zum Multiplizieren eines Bivektors mit einer ganzen Zahl.
  • Das dritte Mittel 93 wählt zufällig eine ganze Zahl Nu aus, hält sie geheim und sendet die derart ausgewählte ganze Zahl Nu an die Vorrichtung 94 zum Multiplizieren eines Bivektors mit einer ganzen Zahl.
  • Die Vorrichtung 94 zum Multiplizieren eines Bivektors mit einer ganzen Zahl empfängt den Bivektor Q und den Parameter A, die beide von dem Zentrum offenbart wurden, von dem zweiten Mittel 92, empfängt die ganze Zahl Nu von dem dritten Mittel 93, berechnet den Bivektor Qu (Qu = Nu × Q) durch Multiplizieren des Bivektors Q mit der ganzen Zahl Nu und gibt den derart berechneten Bivektor Qu an das fünfte Mittel 95 aus.
  • Das fünfte Mittel 95 sendet den von der Vorrichtung 94 berechneten Bivektor Qu an einen Nutzeranschluss V. Das sechste Mittel 96 empfängt den von dem Nutzeranschluss V gesendeten Bivektor Qv und sendet den derart empfangenen Bivektor Qv an die Vorrichtung 94.
  • Die Vorrichtung 94 zum Multiplizieren eines Bivektors mit einer ganzen Zahl empfängt den von dem Nutzeranschluss V gesendeten Bivektor Qv, die im dritten Mittel 93 als geheimes Datum gespeicherte ganze Zahl Nu und den im zweiten Mittel 92 gespeicherten Parameter A, berechnet einen Bivektor K durch Multiplizieren des Bivektors Qv mit der ganzen Zahl Nu und sendet den derart berechneten Bivektor K an das siebte Mittel 97.
  • Das siebte Mittel 97 speichert den von der Vorrichtung 94 berechneten Bivektor K darin als geheimen Schlüssel.
  • Der Nutzeranschluss U 90 kann durch die Verwendung des in dem achten Mittel 98 gespeicherten Bivektors K als geheimer Schlüssel eine geheime Kommunikation mit dem Nutzeranschluss V ausführen.
  • Nachfolgend wird das System zum Verteilen eines öffentlichen Schlüssels gemäß einer detaillierteren Ausführungsform erläutert.
  • Zuerst offenbart das Zentrum in Schritt 151 den Parameter A = (3, 4, –1, 0, 0, 0, 0, 0, 0, 0, 0, 1, –1), der eine Kurve auf einem endlichen Feld GF(17) definiert, und den Bivektor Q ((0, 1), (1, 8) (2, 0)) auf dem endlichen Feld GF(17). Da die mit dem Parameter A definierte Kurve einen Genus von 3 aufweist, kann die vorliegende Ausführungsform nahezu die gleiche Sicherheit wie die Sicherheit aufweisen, die in einem Fall erhalten wird, in dem in einem herkömmlichen Verfahren zum Verteilen eines öffentlichen Schlüssels vom DH-Typ eine Primzahl von 173 = 4913 eingesetzt wird.
  • Dann berechnen die Nutzeranschlüsse in Schritt 152 Bivektoren und verteilen sie. Das heißt, dass die Nutzeranschlüsse U und V das Zentrum 90 auffordern, durch das erste Mittel 91 einen Bivektor und einen Parameter zu senden, und als Ergebnis durch das zweite Mittel 92 den Bivektor Q und den Parameter A erhalten, die beide offenbart wurden. Der Nutzeranschluss U wählt durch das dritte Mittel 93 zufällig die ganze Zahl Nu = 3 aus und hält sie. Auf ähnliche Weise wählt der Nutzeranschluss V durch das dritte Mittel 93 zufällig die ganze Zahl Nv = 5 aus und hält sie.
  • Dann sendet der Nutzeranschluss U die ganze Zahl Nu, die selbst ein geheimes Datum ist, sowie den Bivektor Q und den Parameter A, die beide offene Daten sind, an die Vorrichtung 94 zum Multiplizieren eines Bivektors mit einer ganzen Zahl und sendet einen von der Vorrichtung 94 ausgegebenen resultierenden Bivektor Qu = ((0, 1), (α1, 12 + 3α1), (α2, 12 + 3α2)) durch das fünfte Mittel 95 an den Nutzeranschluss V. Hier sind α1 und α2 Lösungen einer quadratischen irreduziblen Gleichung x2 + 6x + 6 = 0. Auf ähnliche Weise sendet der Nutzeranschluss V die ganze Zahl Nv, die selbst ein geheimes Datum ist, sowie den Bivektor Q und den Parameter A, die beide offene Daten sind, an die Vorrichtung 94 zum Multiplizieren eines Bivektors mit einer ganzen Zahl und sendet einen von der Vorrichtung 94 ausgegebenen resultierenden Bivektor Qv = ((γ1, 13 + 2γ1 + 5γ1 2), (γ2, 13 + 2γ2 + 5γ2 2), (γ3, 13 + 2γ3 + 5γ3 2)) durch das fünfte Mittel 95 an den Nutzeranschluss U. Hier sind γ1, γ2 und γ3 Lösungen einer irreduziblen Gleichung dritten Grades x3 + 8x2 + 7x + 9 = 0.
  • Dann wird in Schritt 153 der gemeinsame Schlüssel erzeugt. Das heißt, dass der Nutzeranschluss U durch das sechste Mittel 96 den Bivektor Qv von dem Nutzeranschluss V empfängt und den derart empfangenen Bivektor Qv, die ganze Zahl Nu, die in dem dritten Mittel 93 selbst als geheimes Datum gespeichert ist, und den Parameter A, der in dem zweiten Mittel 92 als offenes Datum gespeichert ist, an die Vorrichtung 94 zum Multiplizieren eines Bivektors mit einer ganzen Zahl sendet, um dadurch einen von der Vorrichtung 94 ausgegebenen resultierenden Bivektor K = ((11, 11), (10, 11), (2, 0)) als gemeinsamen Schlüssel K zu erhalten. Der so erhaltene gemeinsame Schlüssel K wird in dem siebten Mittel 97 gespeichert. Auf ähnliche Weise empfängt der Nutzeranschluss V den Bivektor Qu von dem Nutzeranschluss U und sendet den so empfangenen Bivektor Qu, die ganze Zahl Nu, die selbst ein geheimes Datum ist, und den in dem zweiten Mittel 92 als offenes Datum gespeicherten Parameter A an die Vorrichtung 94 zum Multiplizieren eines Bivektors mit einer ganzen Zahl, um dadurch einen von der Vorrichtung 94 ausgegebenen resultierenden Bivektor K = ((11, 11), (10, 11), (2, 0)) als gemeinsamen Schlüssel K zu erhalten.
  • Daher können die Nutzeranschlüsse U und V durch das achte Mittel 98 durch Verwendung des gemeinsamen Schlüssels K unter einander eine geheime Kommunikation durchführen.
  • Der Bivektor Q und der Parameter A, die beide offene Daten sind, können durch eine faire dritte Partei, zum Beispiel wie in 12 dargestellt, verwaltet werden.
  • [Verschlüsselungssystem vom El-Gamal-Typ]
  • Nachfolgend wird mit Bezug auf 16 bis 19 ein Verschlüsselungssystem vom El-Gamal-Typ gemäß einer Ausführungsform der vorliegenden Erfindung erläutert, wobei 16 ein Blockdiagramm ist, dass das Verschlüsselungssystem vom El-Gamal-Typ darstellt, in dem die Vorrichtung zum Multiplizieren eines Bivektors mit einer ganzen Zahl eingesetzt wird, 17 ein Beispiel eines Zentrum in dem in 16 dargestellten Verschlüsselungssystem vom El-Gamal-Typ ist, 18 ein Beispiel eines Nutzeranschlusses in dem in 16 dargestellten Verschlüsselungssystem vom El-Gamal-Typ darstellt und 19 ein Flussdiagramm einer Operation ist, die von dem Verschlüsselungssystem vom El-Gamal-Typ durchgeführt wird, in dem die Vorrichtung zum Multiplizieren eines Bivektors mit einer ganzen Zahl eingesetzt wird.
  • Das Verschlüsselungssystem vom El-Gamal-Typ gemäß der Ausführungsform umfasst ein einzelnes Zentrum und eine Mehrzahl Nutzeranschlüsse, die einen Senderanschluss und einen Empfängeranschluss umfassen, wie in 16 dargestellt, und führt die in 19 dargestellten Schritte aus.
  • In dem Verschlüsselungssystem vom El-Gamal-Typ gemäß der Ausführungsform teilt das Zentrum in Schritt 191 allen Nutzeranschlüssen im voraus einen Parameter A zum Definieren einer Kurve und einen Bivektor Q mit.
  • Jeder der Nutzeranschlüsse U wählt in Schritt 192 zufällig eine ganze Zahl Nu aus und hält sie geheim. Dann gibt jeder der Nutzeranschlüsse U die ganze Zahl Nu, die selbst ein geheimes Datum ist, sowie den Bivektor Q und den Parameter A, die beide offene Daten sind, in die Vorrichtung zum Multiplizieren eines Bivektors mit einer ganzen Zahl ein, um dadurch in Schritt 193 Qu = Nu × Q zu berechnen, und teilt in Schritt 194 den anderen Nutzeranschlüssen den Bivektor Qu = Nu × Q als öffentlichen Schlüssel mit.
  • Wenn eine Korrespondenz gesendet werden soll, verschlüsselt der Nutzeranschluss U die Korrespondenz in Schritt 195 gemäß einer vorbestimmten Regel durch die Verwendung der Vorrichtung zum Multiplizieren eines Bivektors mit einer ganzen Zahl basierend auf einer beliebigen ganzen Zahl Nu und dem öffentlichen Schlüssel Qv des Nutzeranschlusses V, an den die Korrespondenz gesendet werden soll.
  • Der Nutzeranschluss V, der die verschlüsselte Korrespondenz empfangen hat, entschlüsselt die Korrespondenz in Schritt 196 gemäß einer vorbestimmten Regel durch die Verwendung der Vorrichtung zum Multiplizieren eines Bivektors mit einer ganzen Zahl basierend auf der ganzen Zahl Nv, die geheim gehalten wird.
  • Nachfolgend wird ein Beispiel des Zentrums und des Nutzeranschlusses in dem El-Gamal-Verschlüsselungssystem erläutert.
  • Wie in 17 dargestellt, umfasst das Zentrum 100 ein erstes Mittel 101 zum Empfangen einer Anforderung, einen Bivektor, einen Parameter und einen öffentlichen Schlüssel zu offenbaren, ein zweites Mittel 102 zum Offenbaren eines Bivektors, eines Parameters und eines öffentlichen Schlüssels und ein drittes Mittel 103 zum Empfangen eines öffentlichen Schlüssels.
  • Das dritte Mittel 103 empfängt einen öffentlichen Schlüssel, der von jedem der Nutzeranschlüsse offenbart wird. Wenn das Zentrum 100 von einem Nutzeranschluss durch das erste Mittel 101 eine Anforderung empfängt, den Bivektor Q, den Parameter A und den öffentlichen Schlüssel Qu zu senden, offenbart das Zentrum 100 dem Nutzeranschluss, der eine Anforderung stellt, durch das zweite Mittel 102 den Bivektor Q, den Parameter A und den öffentlichen Schlüssel Qu, der in dem zweiten Mittel 102 gespeichert ist.
  • 18 stellt ein Beispiel des Nutzeranschlusses 110 dar. Der Nutzeranschluss 110 umfasst ein erstes Mittel 111 zum Anfordern, einen Bivektor, einen Parameter und einen öffentlichen Schlüssel zu senden, ein zweites Mittel 112 zum Empfangen eines Bivektors, eines Parameters und eines öffentlichen Schlüssels, ein drittes Mittel 113 zum Auswählen einer ganzen Zahl, eine Vorrichtung 114 zum Multiplizieren eines Bivektors mit einer ganzen Zahl, ein fünftes Mittel 115 zum Senden eines öffentlichen Schlüssels, eine Vorrichtung 116 zum Auswählen einer Zufallszahl, ein siebtes Mittel 177 zum Senden einer Verschlüsselung C1, ein achtes Mittel 118 zum Senden einer Verschlüsselung C2, ein neuntes Mittel 119 zur Entschlüsselung, ein zehntes Mittel 120 zum Empfangen einer Verschlüsselung C1 und ein elftes Mittel 121 zum Empfangen einer Verschlüsselung C2.
  • Das erste Mittel 111 fordert das Zentrum auf, den Bivektor Q, den Parameter und den öffentlichen Schlüssel Qv anderer Nutzeranschlüsse zu senden, die alle offenbart wurden.
  • Das zweite Mittel 112 empfängt gemäß der Anforderung, die durch das erste Mittel 111 an das Zentrum gesendet wurde, den Bivektor Q, den Parameter A und den öffentlichen Schlüssel Qv, die offenbart wurden, von dem Zentrum, hält sie und sendet sie an die Vorrichtung 114 zum Multiplizieren eines Bivektors mit einer ganzen Zahl.
  • Das dritte Mittel 113 wählt zufällig eine ganze Zahl Nu aus, hält sie geheim und sendet die derart ausgewählte ganze Zahl Nu an die Vorrichtung 114 zum Multiplizieren eines Bivektors mit einer ganzen Zahl.
  • Die Vorrichtung 114 zum Multiplizieren eines Bivektors mit einer ganzen Zahl empfängt den Bivektor Q und den Parameter A, die beide von dem Zentrum offenbart wurden, von dem zweiten Mittel 112, empfängt die ganze Zahl Nu von dem dritten Mittel 113, berechnet den Bivektor Qu (Qu = Nu × Q) durch Multiplizieren des Bivektors Q mit der ganzen Zahl Nu und gibt den derart berechneten Bivektor Qu an das fünfte Mittel 115 aus.
  • Das fünfte Mittel 115 sendet den Bivektor Qu an das Zentrum 100, um ihn als öffentlichen Schlüssel zu offenbaren.
  • Das sechste Mittel 116 wählt eine Zufallszahl Ru aus, hält sie geheim und sendet die derart ausgewählte Zufallszahl Ru an die Vorrichtung 114 zum Multiplizieren eines Bivektors mit einer ganzen Zahl.
  • Die Vorrichtung 114 zum Multiplizieren eines Bivektors mit einer ganzen Zahl empfängt den Bivektor Q und den Parameter A, die beide in dem zweiten Mittel 112 gespeichert sind, und die ganze Zahl Ru, die als geheimes Datum in dem sechsten Mittel 116 gespeichert ist, berechnet durch Multiplizieren des Bivektors Q mit der ganzen Zahl Ru einen Bivektor C1 und speichert den derart berechneten Bivektor C1 als eine Verschlüsselung C1 in einem Speicher 122. Die Vorrichtung 114 zum Multiplizieren eines Bivektors mit einer ganzen Zahl empfängt weiterhin den Bivektor Qv andere Nutzeranschlüsse und den Parameter A, die beide in dem zweiten Mittel 112 gespeichert sind, und die in dem sechsten Mittel 116 gespeicherte ganze Zahl Ru, berechnet durch Multiplizieren des Bivektors Q mit der ganzen Zahl Ru einen Bivektor T1 und sendet den derart berechneten Bivektor T1 an das achte Mittel 118.
  • Das achte Mittel 118 berechnet eine Summe t1 von ersten Elementen in jeder der Gruppen, die in dem Bivektor T1 enthalten sind, und addiert eine Korrespondenz M zu der Summe t1, um dadurch eine Verschlüsselung C2 zu erzeugen.
  • Danach werden die Verschlüsselungen C1 und C2 durch das siebte und achte Mittel 117 und 118 an andere Nutzeranschlüsse gesendet.
  • Der Nutzeranschluss als Empfänger empfängt und hält die Verschlüsselungen C1 und C2, die von dem Sender-Nutzeranschluss gesendet werden, durch das zehnte und elfte Mittel 120 und 121.
  • Die Vorrichtung 114 zum Multiplizieren eines Bivektors mit einer ganzen Zahl empfängt die von dem Sender-Nutzeranschluss gesendete und in dem zehnten Mittel 120 gespeicherte Verschlüsselung C1, die in dem dritten Mittel 113 als geheimes Datum gespeicherte ganze Zahl Nv und den in dem zweiten Mittel 112 gespeicherten Parameter A, berechnet durch Multiplizieren des Bivektors C1 mit der ganzen Zahl Nv einen Bivektor T2 und sendet den derart berechneten Bivektor T2 an das Entschlüsselungsmittel 119.
  • Das Entschlüsselungsmittel 119 empfängt die von dem Sender-Nutzeranschluss gesendete und in dem elften Mittel 121 gespeicherte Verschlüsselung C2 und den von der Vorrichtung 114 zum Multiplizieren eines Bivektors mit einer ganzen Zahl berechneten Bivektor T2, berechnet eine Summe t2 von ersten Elementen in jeder der in dem Bivektor T2 enthaltenen Gruppen und subtrahiert die derart berechnete Summe t2 von der Verschlüsselung C2, um dadurch die Korrespondenz M zu entschlüsseln.
  • Nachfolgend wird das Verschlüsselungssystem vom El-Gamal-Typ gemäß einer detaillierteren Ausführungsform erläutert.
  • Als erstes offenbart das Zentrum in Schritt 191 den Parameter A = (3, 4, –1, 0, 0, 0, 0, 0, 0, 0, 0, 1, –1), der eine Kurve auf einem endlichen Feld GF(17) definiert, und den Bivektor Q ((0, 1), (1, 8), (2, 0)), der auf dem endlichen Feld GF(17) existiert. Da die mit dem Parameter A definierte Kurve einen Genus von 3 aufweist, kann die vorliegende Ausführungsform nahezu die gleiche Sicherheit aufweisen wie die Sicherheit, die in einem Fall erhalten wird, in dem in einem herkömmlichen Verschlüsselungssystem vom El-Gamal-Typ eine Primzahl von 173 = 4913 eingesetzt wird.
  • Dann wählt jeder der Nutzeranschlüsse in Schritt 192 eine ganze Zahl als geheimen Schlüssel aus. Das heißt, dass zum Beispiel ein Nutzeranschluss U durch das dritte Mittel 113 zufällig die ganzen Zahl Nu = 3 auswählt und die ganze Zahl Nu geheim hält. Auf ähnliche Weise wählt der Nutzeranschluss V durch das dritte Mittel 113 zufällig die ganze Zahl Nv = 5 aus und hält die ganze Zahl Nv geheim.
  • Dann berechnet jeder der Nutzeranschlüsse in Schritt 193 einen öffentlichen Schlüssel. Das heißt, dass der Nutzeranschluss U zum Beispiel das Zentrum 100 auffordert, den Bivektor Q und den Parameter A durch erste Mittel 111 an ihn zu senden, und durch das zweite Mittel 112 den Bivektor Q und den Parameter A empfängt, die beide offenbart wurden. Dann sendet der Nutzeranschluss U die ganze Zahl Nu, die selbst ein geheimes Datum ist, sowie den Bivektor Q und den Parameter A, die beide offene Daten sind, an die Vorrichtung 114 zum Multiplizieren eines Bivektors mit einer ganzen Zahl und erhält einen resultierenden Bivektor Qu = ((0, 1), (α1, 12 + 3α1), (α2, 12 + 3α2)), der von der Vorrichtung 114 ausgegeben wird, als öffentlichen Schlüssel. Hier sind α1 und α2 Lösungen einer quadratischen irreduziblen Gleichung x2 + 6x + 6 = 0.
  • Auf ähnliche Weise sendet der Nutzeranschluss V die ganze Zahl Nv, die selbst ein geheimes Datum ist, sowie den Bivektor Q und den Parameter A, die beide offene Daten sind, an die Vorrichtung 114 zum Multiplizieren eines Bivektors mit einer ganzen Zahl und erhält einen resultierenden Bivektor Qv = ((γ1, 13 + 2γ1 + 5γ1 2), (γ2, 13 + 2γ2 + 5γ2 2), (γ3, 13 + 2γ3 + 5γ3 2)), der von der Vorrichtung 114 ausgegeben wird, als öffentlichen Schlüssel. Hier sind γ1, γ2 und γ3 Lösungen einer irreduziblen Gleichung dritten Grades x3 + 8x2 + 7x + 9 = 0.
  • Dann offenbart jeder der Nutzeranschlüsse in Schritt 194 seinen öffentlichen Schlüssel. Zum Beispiel offenbaren die Nutzeranschlüsse U und V die öffentlichen Schlüssel Qu und Qv, indem sie sie durch das fünfte Mittel 115 an das Zentrum 100 senden.
  • Dann verschlüsselt ein Sender eine Korrespondenz und sendet die derart verschlüsselte Korrespondenz dann in Schritt 195 an einen Empfänger. Zum Beispiel verschlüsselt ein Nutzeranschluss U eine Korrespondenz M = 11 und sendet die verschlüsselte Korrespondenz an einen Nutzeranschluss V wie folgt.
  • Zuerst stellt der Nutzeranschluss U durch das sechste Mittel 116 eine Zufallszahl Ru = 8 auf. Dann gibt der Nutzeranschluss U die Zufallszahl Ru, die in dem sechsten Mittel 116 gespeichert und nur dem Nutzeranschluss U bekannt ist, sowie den Bivektor Q und den Parameter A, die beide in dem zweiten Mittel 112 gespeichert sind, in die Vorrichtung 114 zum Multiplizieren eines Bivektors mit einer ganzen Zahl ein und speichert einen resultierenden Bivektor C1 = ((3, 10), (ε1, 9 + 3ε1), (ε2, 9 + 3ε2)), der von der Vorrichtung 114 ausgegeben wird, als Verschlüsselung C1 in dem siebten Mittel 117. Hier sind ε1 und ε2 Lösungen einer quadratischen irreduziblen Gleichung x2 + 7x + 2 = 0.
  • Dann fordert der Nutzeranschluss U das Zentrum 100 durch das erste Mittel 111 auf, einen öffentlichen Schlüssel des Nutzeranschlusses V zu senden, und erhält als Folge den öffentlichen Schlüssel Qv durch das zweite Mittel 112. Dann gibt der Nutzeranschluss U der Vorrichtung 114 zum Multiplizieren eines Bivektors mit einer ganzen Zahl die Zufallszahl Ru, die in dem sechsten Mittel 116 als geheimes Datum des Nutzeranschluss U gespeichert ist, den öffentlichen Schlüssel Qv des Nutzeranschlusses V, der in dem zweiten Mittel 112 als offenes Datum gespeichert ist, und den Parameter A ein und berechnet einen Bivektor T1.
  • Das achte Mittel 118 berechnet eine Gesamtsumme t1 = δ1 + δ2 + δ3 = 10 von ersten Elementen in jeder der Gruppen, die in dem Bivektor T1 = ((δ1, 4 + 3δ1 + 14δ1 2), (δ2, 4 + 3δ2 + 14δ2 2), (δ3, 4 + 3δ3 + 14δ3 2) enthalten sind, der von der Vorrichtung 114 zum Multiplizieren eines Bivektors mit einer ganzen Zahl berechnet wird, und addiert eine Korrespondenz M zu der Gesamtsumme t1, um dadurch eine Verschlüsselung C2 = M + t1 = 11 + 10 = 4 (mod 17) zu erhalten. Hier sind δ1, δ2 und δ3 Lösungen einer irreduziblen Gleichung dritten Grades x3 + 7x2 + 7 = 0.
  • Dann sendet der Nutzeranschluss U die Verschlüsselungen C1 und C2 an den Nutzeranschluss V.
  • Dann entschlüsselt der Nutzeranschluss V oder Empfänger in Schritt 196 die verschlüsselte Korrespondenz. Das heißt, dass der Nutzeranschluss V die Verschlüsselungen C1 und C2 durch das zehnte und elfte Mittel 120 und 121 von dem Nutzeranschluss U empfängt und sie hält. Der Nutzeranschluss V gibt in die Vorrichtung 114 zum Multiplizieren eines Bivektors mit einer ganzen Zahl die in dem zehnten Mittel 120 gespeicherte Verschlüsselung C1, den in dem dritten Mittel 113 als geheimes Datum gespeicherten geheimen Schlüssel Nv und den in dem zweiten Mittel 112 als offenes Datum gespeicherten Parameter A ein, um dadurch einen Bivektor T2 zu berechnen.
  • Das Verschlüsselungsmittel 119 berechnet eine Gesamtsumme t2 = δ1 + δ2 + δ3 = 10 von ersten Elementen in jeder der Gruppen, die in dem Bivektor T2 = ((δ1, 4 + 3δ1 + 14δ1 2), (δ2, 4 + 3δ2 + 14δ2 2), (δ3, 4 + 3δ3 + 14δ3 2)) enthalten sind, der von der Vorrichtung 114 zum Multiplizieren eines Bivektors mit einer ganzen Zahl berechnet wird, und subtrahiert die Gesamtsumme t2 von der Verschlüsselung C2, um dadurch die Korrespondenz M = C2 – t2 = 4 – 10 = 11 (mod 17) zu verschlüsseln. Hier sind δ1, δ2 und δ3 Lösungen einer irreduziblen Gleichung dritten Grades x3 + 7x2 + 7 = 0.
  • Der Bivektor Q, der Parameter A und die öffentlichen Schlüssel Qu und Qv, die alle offene Daten sind, können von einer neutralen dritten Partei verwaltet werden, wie zum Beispiel in 16 dargestellt.
  • [Signatursystem vom El-Gamal-Typ]
  • Nachfolgend wird ein Signatursystem vom El-Gamal-Typ gemäß einer Ausführungsform mit Bezug auf 20 bis 24 erläutert, wobei 20 ein Blockdiagramm ist, das das Signatursystem vom El-Gamal-Typ darstellt, in dem die Vorrichtung zum Multiplizieren eines Bivektors mit einer ganzen Zahl eingesetzt wird, 21 ein Beispiel eines Zentrums in dem in 20 dargestellten Signatursystem vom El-Gamal-Typ darstellt, 22 ein Beispiel eines Bestätigungsanschlusses in dem in 20 dargestellten Signatursystem vom El-Gamal-Typ darstellt, 23 ein Beispiel eines Prüfanschlusses in dem in 20 dargestellten Signatursystem vom El-Gamal-Typ darstellt und 24 ein Flussdiagramm einer Operation ist, die von dem Signatursystem vom El-Gamal-Typ ausgeführt wird, in dem die Vorrichtung zum Multiplizieren eines Bivektors mit einer ganzen Zahl eingesetzt wird.
  • Das Signatursystem vom El-Gamal-Typ gemäß der Ausführungsform umfasst ein einzelnes Zentrum, einen Bestätigungsanschluss und einen Prüfanschluss, wie in 20 dargestellt, und fuhrt die in 24 dargestellten Schritte aus.
  • In dem Signatursystem vom El-Gamal-Typ gemäß der Ausführungsform teilt das Zentrum allen Nutzeranschlüssen im voraus in Schritt 241 einen Parameter A zum Definieren einer Kurve und einen Bivektor Q mit.
  • Der Bestätigungsanschluss U wählt in Schritt 242 zufällig eine ganze Zahl Nu als Signaturschlüssel aus und hält ihn geheim. Dann gibt der Bestätigungsanschluss U einer Vorrichtung zum Multiplizieren eines Bivektors mit einer ganzen Zahl die ganze Zahl Nu, die selbst ein geheimes Datum ist, sowie den Bivektor Q und den Parameter A, die beide offene Daten sind, ein, um dadurch Qu = Nu × Q zu berechnen, und teilt in Schritt 243 den anderen Nutzeranschlüssen den Bivektor Qu = Nu × Q als Prüfschlüssel mit.
  • Dann erstellt der Bestätigungsanschluss U in Schritt 244 gemäß einer vorbestimmten Regel durch die Vorrichtung zum Multiplizieren eines Bivektors mit einer ganzen Zahl basierend auf einer beliebigen ganzen Zahl und dem Signaturschlüssel Nu einen Signaturtext für eine Korrespondenz M und sendet den Signaturtext und die Korrespondenz M danach in Schritt 245 an den Prüfanschluss V.
  • Der Prüfanschluss V prüft in Schritt 246 die Korrespondenz M gemäß einer vorbestimmten Regel durch die Vorrichtung zum Multiplizieren eines Bivektors mit einer ganzen Zahl basierend auf dem Signaturtext und dem Prüfschlüssel Qu des Nutzeranschlusses U.
  • Nachfolgend werden Beispiele des Zentrums, des Bestätigungsanschlusses und des Prüfanschlusses in dem Signatursystem vom El-Gamal-Typ erläutert.
  • Wie in 21 dargestellt, umfasst das Zentrum 160 ein erstes Mittel 161 zum Empfangen einer Anforderung, einen Bivektor, einen Parameter und einen Prüfschlüssel zu senden, eines zweites Mittel 162 zum Offenbaren eines Bivektors, eines Parameters und eines Prüfschlüssels, und ein drittes Mittel 163 zum Empfangen eines Prüfschlüssels. Das dritte Mittel 163 empfängt einen offenbarten Schlüssel von einem Prüfanschluss. Wenn das Zentrum 160 durch das erste Mittel 161 von einem Bestätigungs- oder Prüfanschluss eine Anforderung empfängt, einen Bivektor Q, einen Parameter A und einen Prüfschlüssel Qu an einen Bestätigungs- oder Prüfanschluss zu senden, sendet das Zentrum 160 den Bivektor Q, den Parameter A und den Prüfschlüssel Qu, die in dem zweiten Mittel gespeichert sind, an den Anschluss, der die Anforderung stellt.
  • 22 stellt ein Beispiel eines Bestätigungsanschlusses dar. Der dargestellte Bestätigungsanschluss 170 umfasst ein erstes Mittel 171 zum Senden einer Anforderung, einen Bivektor und einen Parameter zu senden, ein zweiten Mittel 172 zum Empfangen eines Bivektors und eines Parameters, ein drittes Mittel 173 zum Erzeugen einer ganzen Zahl, eine Vorrichtung 174 zum Multiplizieren eines Bivektors mit einer ganzen Zahl, ein fünftes Mittel 175 zum Senden eines Prüfschlüssels, eine Vorrichtung 176 zum Erzeugen einer Zufallszahl, ein siebtes Mittel 177 zum Senden eines Signaturtextes R, ein achtes Mittel 178 zum Senden eines Signaturtextes S und ein neuntes Mittel 179 zum Senden einer Korrespondenz M.
  • Das erste Mittel 171 fordert das Zentrum 160 auf, einen Bivektor Q und einen Parameter A an es zu senden, die beide offenbart wurden.
  • Das zweite Mittel 172 empfängt und hält den Bivektor Q und den Parameter A, die von dem Zentrum 160 gemäß einer Anforderung gesendet wurden, die durch das erste Mittel 171 an das Zentrum 160 gesendet wurde, und sendet sie an die Vorrichtung 174 zum Multiplizieren eines Bivektors mit einer ganzen Zahl.
  • Das dritte Mittel 173 wählt zufällig eine ganze Zahl Nu aus, hält die derart ausgewählte ganze Zahl Nu als Signaturschlüssel geheim und gibt den Signaturschlüssel Nu in die Vorrichtung 174 zum Multiplizieren eines Bivektors mit einer ganzen Zahl ein.
  • Die Vorrichtung 174 zum Multiplizieren eines Bivektors mit einer ganzen Zahl empfängt den Bivektor Q und den Parameter A, die beide von dem Zentrum 160 offenbart wurden, von dem zweiten Mittel 172 und den Signaturschlüssel Nu von dem dritten Mittel 173, berechnet einen Bivektor Qu (Qu = Q × Nu) durch Multiplizieren des Bivektors Q durch die ganze Zahl Nu und sendet den derart berechneten Bivektor Qu an das fünfte Mittel 175.
  • Das fünfte Mittel 175 sendet den Bivektor Qu an das Zentrum 160, um ihn als Prüfschlüssel zu offenbaren.
  • Die Vorrichtung 176 zum Erzeugen einer Zufallszahl erzeugt eine Zufallszahl K, hält sie geheim und sendet die so erzeugte Zufallszahl K an die Vorrichtung 174 zum Multiplizieren eines Bivektors mit einer ganzen Zahl.
  • Die Vorrichtung 174 zum Multiplizieren eines Bivektors mit einer ganzen Zahl empfängt den Bivektor Q und den Parameter A, die beide in dem zweiten Mittel 172 gespeichert sind, und die in dem sechsten Mittel 176 als geheimes Datum gespeicherte ganze Zahl K, berechnet durch Multiplizieren des Bivektors Q mit der ganzen Zahl K einen Bivektor R (R = Q × K) als Signaturtext und speichert den so berechneten Bivektor R als Signaturtext sowohl im siebten als auch im achten Mittel 177 und 178.
  • Das achte Mittel 178 empfängt den Bivektor R (R = Q × K) von der Vorrichtung 174, die Zufallszahl K von der Vorrichtung 176, die ganze Zahl Nu von dem dritten Mittel 173 und die Korrespondenz M von dem neunten Mittel 179 und berechnet den Signaturtext S = (M – Nu × x(R))K–1 mod O(Q) als zweiten Signaturtext. Hier gibt x(R) die Gesamtsumme der ersten Elemente in jeder der in dem Bivektor R enthaltenen Gruppen an, und O(Q) gibt eine Größenordnungszahl des Bivektors Q an.
  • Das neunte Mittel 179 hält die Korrespondenz M und sendet die Korrespondenz M an das achte Mittel 178.
  • Dann werden die Signaturtexte R und S und die Korrespondenz M durch das siebte, achte bzw. neunte Mittel an den Prüfanschluss gesendet.
  • 23 stellt ein Beispiel eines Prüfanschlusses dar. Der dargestellte Prüfanschluss 180 umfasst ein erstes Mittel 181 zum Senden einer Anforderung, einen Bivektor, einen Parameter und einen Prüfschlüssel zu senden, ein zweites Mittel 182 zum Empfangen eines Bivektors, eines Parameters und eines Prüfschlüssels, eine Vorrichtung 183 zum Multiplizieren eines Bivektors mit einer ganzen Zahl, eine Vorrichtung 184 zum Summieren von Bivektoren, ein fünfte Mittel 185 zum Empfangen eines Signaturtextes R, ein sechstes Mittel 186 zum Empfangen eines Signaturtextes S, ein siebtes Mittel 187 zum Empfangen einer Korrespondenz M, ein erstes Speichermittel 188 zum darin Speichern eines Bivektors T1, ein zweites Speichermittel 189 zum darin Speichern eines Bivektors T2, ein drittes Speichermittel 190 zum darin Speichern eines Bivektors T3, ein viertes Speichermittel 191 zum darin Speichern eines Bivektors T4 und ein Prüfmittel 192 zum Ausführen einer Prüfung.
  • Das erste Mittel 181 fordert das Zentrum 160 auf, ihm einen Bivektor Q, einen Parameter A und einen Prüfschlüssel zu senden, die alle offenbart wurden.
  • Das zweite Mittel 182 empfängt und hält den Bivektor Q, den Parameter A und den Prüfschlüssel Qu, der von dem Zentrum 160 gemäß einer durch das erste Mittel 181 an das Zentrum 160 gesendeten Anforderung gesendet wird, und sendet sie der Vorrichtung 183 zum Multiplizieren eines Bivektors mit einer ganzen Zahl.
  • Die Vorrichtung 183 zum Multiplizieren eines Bivektors mit einer ganzen Zahl empfängt den Bivektor Q und den Parameter A, die beide von dem Zentrum 160 offenbart wurden, durch das zweite Mittel 182 und die Korrespondenz M von dem siebten Mittel 187, berechnet den Bivektor T1 (T1 = Q × M) durch Multiplizieren des Bivektors Q mit der Korrespondenz M und sendet den derart berechneten Bivektor T1 an das achte Mittel 188, um ihn darin zu speichern.
  • Die Vorrichtung 183 zum Multiplizieren eines Bivektors mit einer ganzen Zahl empfängt die Summe x(R) der ersten Elemente in jeder der in dem Bivektor R enthaltenen Gruppen von dem fünften Mittel 185 und den Prüfschlüssel Qu und den Parameter A, die beide von dem Zentrum 160 offenbart wurden, von dem zweiten Mittel 182, berechnet den Bivektor T2 = x(R) × Qu durch Multiplizieren der Summe x(R) mit dem Prüfschlüssel Qu und sendet den derart berechneten Bivektor T2 an das zweite Speichermittel 189, um ihn darin zu speichern.
  • Die Vorrichtung 183 zum Multiplizieren eines Bivektors mit einer ganzen Zahl empfängt den Bivektor R von dem fünften Mittel 185, den Signaturtext S von dem sechsten Mittel 186 und den Parameter A, die von dem Zentrum 160 offenbart wurden, von dem zweiten Mittel 182, berechnet den Bivektor T3 = S × R durch Multiplizieren des Bivektors R mit dem Signaturtext S und sendet den so berechneten Bivektor T3 an das dritte Speichermittel 190, um ihn darin zu speichern.
  • Die Vorrichtung 184 zum Summieren von Bivektoren empfängt den Bivektor T2 von dem zweiten Speichermittel 189, den Bivektor T3 von dem dritten Speichermittel 190 und den Parameter A von dem zweiten Mittel 182, berechnet den Bivektor T4 (T4 = T2 + T3) durch Summieren der Bivektoren T2 und T3 und sendet den so berechneten Bivektor T4 an das vierte Speichermittel 191, um ihn darin zu speichern.
  • Das Prüfmittel 192 bestätigt, ob der in dem ersten Speichermittel 188 gespeicherte Bivektor T1 identisch mit dem in dem vierten Speichermittel 191 gespeicherten Bivektor T4 ist, um dadurch zu prüfen, ob die Korrespondenz M durch den Bestätigungsanschluss U durchgeführt wird.
  • Nachfolgend wird das Signatursystem vom El-Gamal-Typ gemäß einer detaillierten Ausführungsform erläutert.
  • Zuerst offenbart das Zentrum 160 in Schritt 241 den Parameter A = (3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, –1), der eine Kurve auf einem endlichen Feld GF(17) definiert, und den Bivektor Q ((0, 1), (1, 8), (2, 0)), der auf dem endlichen Feld GF(17) existiert. Da die mit dem Parameter A definierte Kurve einen Genus von 3 aufweist, kann die vorliegende Ausführungsform nahezu die gleiche Sicherheit aufweisen wie die Sicherheit, die in einem Fall erhalten wird, in dem in einem herkömmlichen Signatursystem vom El-Gamal-Typ eine Primzahl von 173 = 4913 eingesetzt wird.
  • Dann wählt ein Bestätiger in Schritt 242 eine ganze Zahl als Signaturschlüssel aus. Zum Beispiel wählt ein Bestätigungsanschluss U durch das dritte Mittel 173 zufällig die ganze Zahl Nu = 3 als Signaturschlüssel aus und hält die ganze Zahl Nu als Signaturschlüssel geheim.
  • Dann berechnet der Bestätiger in Schritt 243 einen Prüfschlüssel und offenbart ihn. Das heißt, dass der Bestätigungsanschluss U zum Beispiel das Zentrum 160 auffordert, den Bivektor Q und den Parameter A durch das erste Mittel 171 an ihn zu senden, und den Bivektor Q und den Parameter A, die beide offenbart wurden, durch das zweite Mittel 172 empfängt. Dann sendet der Bestätigungsanschluss U die ganze Zahl Nu, die selbst ein geheimes Datum ist, und den Bivektor Q und den Parameter A, die beide offene Daten sind, an die Vorrichtung 174 zum Multiplizieren eines Bivektors mit einer ganzen Zahl, erhält einen resultierenden Bivektor Qu = ((0, 1), (α1, 12 + 3α1), (α2, 12 + 3α2)), der von der Vorrichtung 144 ausgegeben wird, als Prüfschlüssel und speichert den so erhaltenen Bivektor Qu als Prüfschlüssel in dem fünften Mittel 175. Hier sind α1 und α2 Lösungen einer quadratischen irreduziblen Gleichung x2 + 6x + 6 = 0.
  • Das fünfte Mittel 175 sendet den Bivektor oder Prüfschlüssel Qu zum Offenbaren an das Zentrum 160.
  • Dann erstellt der Bestätigungsanschluss U in Schritt 244 Signaturtexte R und S für die Korrespondenz M. Zum Beispiel erstellt der Bestätigungsanschluss U die Signaturtexte R und S für eine Korrespondenz M = 11 wie folgt.
  • Zuerst legt der Bestätigungsanschluss U durch das sechste Mittel 176 eine Zufallszahl K = 7 fest. Dann gibt der Bestätigungsanschluss U die in dem sechsten Mittel 176 als geheimes Datum gespeicherte Zufallszahl K, den Bivektor Q und den Parameter A, die beide als offene Daten in dem zweiten Mittel 172 gespeichert sind, in die Vorrichtung 174 zum Multiplizieren eines Bivektors mit einer ganzen Zahl ein, um dadurch durch Multiplizieren des Bivektors Q mit der Zufallszahl K einen Bivektor R = Q × K zu berechnen, und sendet den resultierenden Bivektor R ((3, 7), (ε1, 9 + 3ε1), (ε2, 9 + 3ε2)), der von der Vorrichtung 114 ausgegeben wird, als Signaturtext R sowohl an das siebte Mittel 117 als auch an das achte Mittel 118. Hier sind ε1 und ε2 Lösungen einer quadratischen irreduziblen Gleichung x2 + 7x + 2 = 0.
  • Dann sendet der Bestätigungsanschluss U den Signaturtext R = Q × K von der Vorrichtung 174 zum Multiplizieren eines Bivektors mit einer ganzen Zahl, die Zufallszahl K von der Vorrichtung 176 zum Erzeugen einer Zufallszahl, die ganze Zahl Nu von dem dritten Mittel 173 und die Korrespondenz M von dem neunten Mittel 179 an das achte Mittel 178, um dadurch S = (M – Nu × x(R))K–1 mod O(Q) als zweiten Signaturtext zu erhalten. Hier bezeichnet x(R) eine Gesamtsumme von ersten Elementen in jeder der in dem Bivektor R enthaltenen Gruppen, und O(Q) gibt eine Größenordnungszahl des Bivektors Q an.
  • In der vorliegenden Ausführungsform wird der Signaturtext S wie folgt berechnet, da x(R) und O(Q) folgende Werte aufweisen: x(R) = 1 + ε1 + ε2 = 1 + (–9) = 9 (mod 17) O(Q) = 306 S = (11 – 3 × 9)7–1 mod 306 = –16 × 175 mod 306 = 206 (mod 306)
  • Dann sendet der Bestätigungsanschluss U in Schritt 245 die Signaturtexte R und S und die Korrespondenz M durch die siebten, achten und neunten Mittel 177, 178 bzw. 179 an den Prüfanschluss V.
  • Dann prüft der Prüfanschluss V in Schritt 246, ob eine Gleichung M × Q = x(R) × Qu + S × R gültig ist oder nicht.
  • Das heißt, dass der Prüfanschluss V das Zentrum 160 durch das erste Mittel 181 auffordert, den Bivektor Q und den Parameter A zu übertragen, und als Ergebnis den Bivektor Q und den Parameter A durch das zweite Mittel 182 erhält. Dann gibt der Prüfanschluss V die durch das siebte Mittel 187 empfangene Korrespondenz M sowie den Bivektor Q und den Parameter A, die beide als offene Daten durch das zweite Mittel 182 empfangen werden, in die Vorrichtung 183 zum Multiplizieren eines Bivektors mit einer ganzen Zahl ein, um dadurch durch Multiplizieren des Bivektors Q mit der Korrespondenz M einen Bivektor T1 = M × Q zu berechnen. Der Prüfanschluss V speichert den resultierenden Bivektor T1 = ((η1, 13 + 15η1 + 13η1 2), (η2, 13 + 15η2 + 13η2 2), (η3, 13 + 15η3 + 13η3 2)) in dem ersten Speichermittel 188. Hier sind η1, η2 und η3 Lösungen einer irreduziblen Gleichung dritten Grades x3 + 8x + 1 = 0.
  • Der Prüfanschluss V fordert das Zentrum 160 durch das erste Mittel 181 weiterhin auf, den Prüfschlüssel Qu des Bestätigungsanschlusses U zu senden, und erhält als Ergebnis den Prüfschlüssel Qu durch das zweite Mittel 182. Dann gibt der Prüfanschluss V die durch das fünfte Mittel 185 empfangene Gesamtsumme x(R) = 9 von ersten Elementen in jeder der in dem Bivektor R enthaltenen Gruppen sowie den Prüfschlüssel Qu des Bestätigungsanschlusses U und den Parameter A, die beide durch das zweite Mittel 182 als offene Daten empfangen werden, in die Vorrichtung 183 zum Multiplizieren eines Bivektors mit einer ganzen Zahl ein, um dadurch einen Bivektor T2 = x(R) × Qu zu berechnen, indem die Gesamtsumme x(R) mit dem Prüfschlüssel Qu multipliziert wird. Der Prüfanschluss V speichert den resultierenden Bivektor T2 = ((2, 0), (θ1, 4 + 16θ1), (θ2, 4 + 16θ2), (θ3, 4 + 16θ3)) in dem zweiten Speichermittel 189. Hier sind θ1, θ2 und θ3 Lösungen einer quadratischen irreduziblen Gleichung x2 + 7x + 2 = 0.
  • Der Prüfanschluss V gibt weiterhin die Signaturtexte S und R, die von dem fünften und sechsten Mittel 185 bzw. 186 empfangen wurden, sowie den durch das zweite Mittel 182 als offenes Datum empfangenen Parameter A in die Vorrichtung 183 zum Multiplizieren eines Bivektors mit einer ganzen Zahl ein, um dadurch den Bivektor T3 = R × S zu berechnen, indem der Signaturtext S mit dem Signaturtext R multipliziert wird. Der Prüfanschluss V speichert den resultierenden Bivektor T3 = ((ι1, 12 + 6ι1 + 15ι1 2), (ι2, 12 + 6ι2 + 15ι2 2), (ι3, 12 + 6ι3 + 15ι3 2)) in dem dritten Speichermittel 190. Hier sind ι1, ι2 und ι3 Lösungen einer irreduziblen Gleichung dritten Grades x3 + 10x2 + 15x + 12 = 0.
  • Der Prüfanschluss V gibt weiterhin die Bivektoren T2 und T3 aus dem zweiten und dritten Speichermittel 189 bzw. 190 und den Parameter A, der ein offenes Datum ist, aus dem zweiten Mittel 182 in die Vorrichtung 184 zum Summieren von Bivektoren ein, um dadurch durch Summieren von T1 bis T2 (T4 = T1 + T2) den Bivektor T4 zu berechnen. Der Prüfanschluss V speichert den resultierenden Bivektor T4 = ((η1, 13 + 15η1 + 13η1 2), (η2, 13 + 15η2 + 13η2 2), (η3, 13 + 15η3 + 13η3 2)) in dem vierten Speichermittel 191.
  • Der Prüfanschluss V gibt die Bivektoren T1 und T4 aus dem ersten und vierten Speichermittel 188 bzw. 191 in das Prüfmittel 192 ein, um dadurch zu bestätigen, ob der Bivektor T1 identisch mit dem Bivektor T4 ist. Wenn sie miteinander identisch sind, prüft der Prüfanschluss V, dass die Korrespondenz M von dem Bestätigungsanschluss U erstellt wurde.
  • Der Bivektor Q, der Parameter A und der Prüfschlüssel Qu, die alle offene Daten sind, können von einer neutralen dritten Partei verwaltet werden, wie z.B. in 20 dargestellt.
  • Nachfolgend wird eine Ausführungsform eines Aufzeichnungsmediums erläutert, das darin ein Programm zum Schaffen der oben erwähnten Vorrichtung zum Summieren von Bivektoren, einer Vorrichtung zum Multiplizieren eines Bivektors mit einer ganzen Zahl, eines Systems zum Verschlüsseln eines öffentlichen Schlüssels, in dem die Vorrichtung zum Multiplizieren eines Bivektors mit einer ganzen Zahl eingesetzt wird, eines Verschlüsselungssystems vom El-Gamal-Typ oder eines Signatursystems vom El-Gamal-Typ speichert.
  • Ein Aufzeichnungsmedium, das ein Programm zum Schaffen der oben erwähnten Vorrichtung zum Summieren von Bivektoren, einer Vorrichtung zum Multiplizieren eines Bivektors mit einer ganzen Zahl, eines Systems zum Verschlüsseln eines öffentlichen Schlüssels, in dem die Vorrichtung zum Multiplizieren eines Bivektors mit einer ganzen Zahl eingesetzt wird, eines Verschlüsselungssystems vom El-Gamal-Typ oder eines Signatursystems vom El-Gamal-Typ speichert, kann erreicht werden, indem Funktionen der oben erwähnten Vorrichtungen und Systeme mit einer Programmiersprache programmiert werden, die von einem Computer lesbar ist, und indem das Programm auf einem Aufzeichnungsmedium wie z.B. einer CD-ROM, einer Magnetdiskette, einem Magnetband oder einem beliebigen anderen geeigneten Mittel zum darin Speichern eines Programms aufgezeichnet wird.
  • Als Aufzeichnungsmedium kann eine Festplatte eingesetzt werden, mit der ein Server ausgerüstet ist. Es ist auch möglich, das Aufzeichnungsmedium gemäß der vorliegenden Erfindung zu schaffen, indem das oben erwähnte Computerprogramm auf einem Aufzeichnungsmedium wie oben erwähnt gespeichert wird und das Computerprogramm von anderen Computern durch ein Netzwerk gelesen wird.
  • Gemäß dem herkömmlichen System zum Verschlüsseln eines öffentlichen Schlüssels, das zum Ausführen einer geheimen Kommunikation in einem offenen Netzwerk verwendet werden soll, war es nötig, eine Primzahl mit einer Größenordnung von etwa 300 zu verwenden. Im Gegensatz dazu ermöglicht es die vorliegende Erfindung, eine Primzahl mit einer kleineren Größenordnung zu verwenden. Wenn zum Beispiel eine Kurve mit einem Genus von 3 ausgewählt wird, kann eine Primzahl mit einer Größenordnung von 100 verwendet werden. Damit stellt die vorliegende Erfindung Vorrichtungen oder Systeme zum Verschlüsseln eines öffentlichen Schlüssels bereit, die in ihren Abmessungen kleiner sind, aber bezüglich der Kryptographie eine ausreichende Stärke aufweisen.

Claims (12)

  1. Vorrichtung zum Ausführen des Additionsschritts in der Jacobigruppe einer ebenen algebraischen Kurve, die über ein vorbestimmtes endliches Feld definiert ist, wobei die algebraische Kurve einen Genus G aufweist, wobei der Additionsschritt unter zwei Sätzen Q1 und Q2 von beliebigen G Punkten auf der algebraischen Kurve definiert ist, wobei die Vorrichtung umfasst: Mittel (14) zum Eingeben eines Parameters A zum Definieren der algebraischen Kurve und zum Eingeben von Bivektoren X1 und X2, die die Punktsätze Q1 bzw. Q2 wiedergeben; Mittel (13) zum Speichern des Bivektors X1 darin, Mittel (13) zum Speichern des Bivektors X2 darin, und Mittel (13) zum Speichern des Parameters A darin, gekennzeichnet durch Mittel (11) zum Berechnen eines Bivektors T1, wobei der Bivektor T1 einen ersten Punktsatz wiedergibt, der aus der Vereinigung von Q1 und Q2 hervorgeht; Mittel (21) zum Berechnen eines Parameters B, der eine bestimmte Kurve festlegt, die durch alle Punkte verläuft, die zum ersten Punktsatz gehören; Mittel (22) zum Berechnen eines Bivektors S1, der einen zweiten Punktsatz wiedergibt, der durch den Schnittpunkt zwischen den durch die Parameter A bzw. B definierten algebraischen Kurven definiert ist; Mittel (23) zum Berechnen eines Bivektors T2, der einen dritten Punktsatz wiedergibt, der durch Subtrahieren des ersten Punktsatzes vom zweiten Punktsatz erhalten wird; Mittel (21) zum Berechnen eines Parameters C, der eine bestimmte Kurve festlegt, die durch alle Punkte des dritten Punktsatzes verläuft; Mittel (22) zum Berechnen eines Bivektors S2, der einen vierten Punktsatz wiedergibt, der durch den Schnittpunkt zwischen den durch die Parameter A bzw. C definierten algebraischen Kurven definiert ist; Mittel (23) zum Berechnen eines Bivektors X3, der einen Punktsatz Q3 wiedergibt, der durch Subtrahieren des dritten Punktsatzes vom vierten Punktsatz erhalten wird; Mittel (26) zum Ausgeben des Bivektors X3 als Ergebnis des Additionsschritts.
  2. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, dass Parameter B eine Kurve bestimmt, die als von Kurven, die durch alle zum ersten Punktsatz gehörenden Punkte verlaufen, den kleinsten Grad aufweisende definiert ist.
  3. Vorrichtung nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass Parameter C eine Kurve bestimmt, die als von Kurven, die durch alle zum dritten Punktsatz gehörenden Punkte verlaufen, den kleinsten Grad aufweisende definiert ist.
  4. Vorrichtung zum Verdoppeln eines Bivektors umfassend eine Mehrzahl Elementpaare, die aus einem vorbestimmten endlichen Feld ausgewählt sind, wobei die Vorrichtung umfasst: a) Mittel (33) zum Eingeben eines Bivektors X und eines Parameters A, um dadurch eine Kurve zu definieren; b) erste Speichermittel (32), um darin den Bivektor X zu speichern; c) zweite Speichermittel (32), um einen Bivektor Xa zu speichern, der eine Kopie des Bivektors X ist; und d) dritte Speichermittel (32), um darin den Parameter A zu speichern, gekennzeichnet durch e) eine Bivektoraddiereinrichtung (31) nach einem der Ansprüche 1 bis 3, um den Bivektor X aus dem ersten Speichermittel (32), den Bivektor Xa aus dem zweiten Speichermittel (32) und den Parameter A aus dem dritten Speichermittel (32) auszulesen und den Bivektor X zum Bivektor Xa zu addieren, um dadurch eine Summe 2X zu erhalten; und f) Mittel (34) zum Ausgeben des von der Bivektoraddiereinrichtung erhaltenen Bivektors 2X.
  5. Vorrichtung zum Multiplizieren eines Bivektors mit einer ganzen Zahl, wobei der Bivektor eine Mehrzahl Elementpaare umfasst, die aus einem vorbestimmten endlichen Feld ausgewählt sind, wobei die Vorrichtung umfasst: a) Mittel (44), um dadurch eine ganze Zahl N, einen Bivektor X und einen Parameter A zum Definieren einer Kurve einzugeben; b) erste Speichermittel (43), um die ganze Zahl N darin zu speichern; c) zweite Speichermittel (43), um den Bivektor X darin zu speichern; d) dritte Speichermittel (43), um einen Bivektor Y zu speichern, der eine Kopie des Bivektors X ist; e) vierte Speichermittel (43), um darin einen Bivektor Z zu speichern; f) fünfte Speichermittel (43), um darin den Parameter A zu speichern; und g) sechste Speichermittel (43), um darin eine ganze Zahl R zu speichern, gekennzeichnet durch h) eine Bivektoraddiereinrichtung (41) nach einem der Ansprüche 1 bis 3 zum Summieren von Bivektoren; i) eine Bivektorverdopplungseinrichtung (42) zum Verdoppeln eines Bivektors; j) Mittel (46) zum Auslesen der ganzen Zahl N aus dem ersten Speichermittel (43), Berechnen eines Rests R, der erhalten wird, wenn die ganze Zahl N durch 2 geteilt wird, und Speichern des so erhaltenen R im sechsten Speichermittel (43); k) Mittel (46) zum Auslesen der ganzen Zahl N aus dem ersten Speichermittel (43), Berechnen eines Quotienten durch Teilen der ganzen Zahl N durch 2 und Speichern des so erhaltenen Quotienten im ersten Speichermittel (43) als erneuerte ganze Zahl N; l) Mittel (46) zum Auslesen der ganzen Zahl R aus dem sechsten Speichermittel (43), wenn die ganze Zahl R gleich 1 ist, Auslesen des Bivektors Y aus dem dritten Speichermittel (43), des Bivektors Z aus dem vierten Speichermittel (43) und des Parameters A aus dem fünften Speichermittel (43), Eingeben der Bivektoren Y und Z und des Parameters A in die Bivektoraddiereinrichtung (41), Berechnen der Summe der Bivektoren Y und Z und Speichern der so berechneten Summe im vierten Speichermittel (43), und m) Mittel (46) zum Auslesen der ganzen Zahl N aus dem ersten Speichermittel (43), wenn die so ausgelesene ganze Zahl N größer als 0 ist, Auslesen des Bivektors Y aus dem dritten Speichermittel (43) und des Parameters A aus dem fünften Speichermittel (43), Eingeben des Bivektors Y und des Parameters A in die Bivektorverdopplungseinrichtung (42), Verdoppeln des Bivektors Y und Speichern des so verdoppelten Bivektors Y im dritten Speichermittel (43), und wenn die ganze Zahl N gleich 0 ist, Auslesen des Bivektors Z aus dem vierten Speichermittel (43).
  6. System zum Verteilen eines öffentlichen Schlüssels, umfassend Mittel zum Informieren aller Benutzer im Voraus über einen Parameter A, der eine Kurve definiert, und einen Bivektor Q, der eine Mehrzahl Elementpaare umfasst, die aus einem vorbestimmten endlichen Feld ausgewählt sind, Mittel zum zufälligen Auswählen einer ganzen Zahl Nu in einem Benutzeranschluss U und Geheimhalten der so ausgewählten ganzen Zahl Nu, Mittel zum zufälligen Auswählen einer ganzen Zahl Nv in einem Benutzeranschluss V und Geheimhalten der so ausgewählten ganzen Zahl Nv, Mittel im Benutzeranschluss U zum Senden eines Bivektors Qu (Qu = Nu × Q) an den Benutzeranschluss V, wobei der Bivektor Qu durch Multiplizieren des Bivektors Q mit der ganzen Zahl Nu durch die Verwendung der ganzen Zahl Nu, des Bivektors Q und des Parameters A erhalten wird, Mittel im Benutzeranschluss V zum Senden eines Bivektors Qv (Qv = Nv × Q) an den Benutzeranschluss U, wobei der Bivektor Qv durch Multiplizieren des Bivektors Q mit der ganzen Zahl Nv durch die Verwendung der ganzen Zahl Nv, des Bivektors Q und des Parameters A erhalten wird, Mittel im Benutzeranschluss U zum Multiplizieren des Bivektors Qv mit der ganzen Zahl Nu durch die Verwendung des Bivektors Qv, der vom Benutzeranschluss V gesendet wurde, der ganzen Zahl Nu und des Parameters A, um dadurch einen Bivektor K (K = Nu × Qv = Nu × Nv × Q) als gemeinsamen Schlüssel K zu erhalten, und Mittel im Benutzeranschluss V zum Multiplizieren des Bivektors Qu mit der ganzen Zahl Nv durch die Verwendung des Bivektors Qu, der vom Benutzeranschluss U gesendet wurde, der ganzen Zahl Nv und des Parameters A, um dadurch einen Bivektor K (K = Nv × Qu = Nv × Nu × Q) als gemeinsamen Schlüssel K zu erhalten, dadurch gekennzeichnet, das jede Multiplikation eines Bivektors mit einer ganzen Zahl durch eine Vorrichtung nach Anspruch 5 durchgeführt wird.
  7. System zum Verteilen eines öffentlichen Schlüssels, umfassend eine Zentrale und eine Mehrzahl Benutzeranschlüsse, wobei die Zentrale (80) umfasst: a) Mittel (81) zum Empfangen einer Anforderung nach einem Parameter A, der eine Kurve definiert, und einem Bivektor Q, der eine Mehrzahl Elementpaare umfasst, die aus einem vorbestimmten endlichen Feld ausgewählt sind; und b) Mittel (82), um den Bivektor Q und den Parameter A einem Benutzeranschluss zu bekanntzugeben, der eine Anforderung stellt, wobei der Benutzeranschluss (90) umfasst: a) erste Mittel (91), um die Zentrale (80) aufzufordern, den Bivektor Q und den Parameter A zu senden, die beide offengelegt sind; b) zweite Mittel, um den Bivektor Q und den Parameter A zu empfangen und zu halten und sie an eine Einrichtung zum Multiplizieren eines Bivektors mit einer ganzen Zahl zu senden; c) dritte Mittel (93), um eine ganze Zahl Nu zufällig auszuwählen, die so ausgewählte ganze Zahl Nu geheimzuhalten und die ganze Zahl Nu an eine Einrichtung zum Multiplizieren eines Bivektors mit einer ganzen Zahl zu senden; d) eine Einrichtung (94) nach Anspruch 5, um einen Bivektor mit einer ganzen Zahl zu multiplizieren, den Bivektor Q und den Parameter A vom zweiten Mittel (92) zu empfangen, die ganze Zahl Nu vom dritten Mittel (93) zu empfangen und durch Multiplizieren des Bivektors Q mit der ganzen Zahl Nu einen Bivektor Qu zu berechnen; e) vierte Mittel (95) zum Senden des Bivektors Qu an andere Benutzeranschlüsse; f) fünfte Mittel (96), um einen von anderen Benutzeranschlüssen gesendeten Bivektor Qv zu empfangen und den Bivektor Qv an die Einrichtung (94) zu senden; wobei die Einrichtung (94) den von den anderen Benutzeranschlüssen gesendeten Bivektor Qv, die im dritten Mittel (93) gespeicherte ganze Zahl Nu und den im zweiten Mittel (92) gehaltenen Parameter A empfängt und den Bivektor Qv mit der ganzen Zahl Nu multipliziert, um dadurch eine Bivektor K zu erhalten, und g) sechste Mittel (97) zum Speichern des Bivektors K als geheimen Schlüssel.
  8. Verschlüsselungssystem vom El-Gamal-Typ, umfassend Mittel zum Informieren aller Benutzer im voraus über einen Parameter A, der eine Kurve definiert, und einen Bivektor Q, der eine Mehrzahl Elementpaare umfasst, die aus einem vorbestimmten endlichen Feld ausgewählt sind, Mittel zum zufälligen Auswählen einer ganzen Zahl Nu in einem Benutzeranschluss U und Geheimhalten der so ausgewählten ganzen Zahl Nu, Mittel im Benutzeranschluss U zum Senden eines Bivektors Qu (Qu = Nu × Q an andere Benutzer als öffentlicher Schlüssel, wobei der Bivektor Qu durch eine Vorrichtung nach Anspruch 5 durch Multiplizieren des Bivektors Q mit der ganzen Zahl Nu durch die Verwendung der ganzen Zahl Nu, des Bivektors Q und des Parameters A erhalten wird, Mittel im Benutzeranschluss U zum Verschlüsseln eines Textes durch die Verwendung der ganzen Zahl Nu und eines öffentlichen Schlüssels Qv eines Benutzeranschlusses V, an die der Benutzeranschluss U den Text zu senden beabsichtigt, und Mittel im Benutzeranschluss V, um den so verschlüsselten Text zu empfangen und den verschlüsselten Text durch die Verwendung einer ganzen Zahl Nv, die der Benutzeranschluss V geheimhält, zu entschlüsseln.
  9. Verschlüsselungssystem vom El-Gamal-Typ, umfassend eine Zentrale und eine Mehrzahl Benutzeranschlüsse, wobei die Zentrale (100) umfasst: a) erste Mittel (101) zum Empfangen von öffentlichen Schlüsseln, die von den Benutzeranschlüssen bekanntgegeben sind; b) zweite Mittel (102) zum Empfangen einer Anforderung, einen Parameter A, der eine Kurve definiert, einen Bivektor Q, der eine Mehrzahl von aus einem vorbestimmten endlichen Feld ausgewählten Elementpaaren umfasst, und einen öffentlichen Schlüssel Qu an einen Benutzeranschluss zu senden; und c) dritte Mittel (103) zum Bekanntgeben des Bivektors Q, des Parameters A und des öffentlichen Schlüssels Qu an den Benutzeranschluss, der die Anforderung stellt, wenn das zweite Mittel (102) die Anforderung empfängt, wobei der Benutzeranschluss als Sender umfasst: a) vierte Mittel (111), um die Zentrale aufzufordern, den Bivektor Q, den Parameter A und die öffentlichen Schlüssel Qv anderer Benutzeranschlüsse zu senden; b) fünfte Mittel (112), um den Bivektor Q, den Parameter A und den öffentlichen Schlüssel Qv, die von der Zentrale (100) bekanntgegeben wurden, in Übereinstimmung mit einer Anforderung vom vierten Mittel (111) zu empfangen und zu halten und sie an eine später erwähnte erste Einrichtung (114) zum Multiplizieren eines Bivektors mit einer ganzen Zahl zu senden; c) sechste Mittel (113), um eine ganze Zahl Nu zufällig auszuwählen, die so ausgewählte ganze Zahl Nu geheimzuhalten und die ganze Zahl Nu an die erste Einrichtung (114) zu senden, um einen Bivektor mit einer ganzen Zahl zu multiplizieren; d) die erste Einrichtung (114) nach Anspruch 5, die vorgesehen ist, um einen Bivektor mit einer ganzen Zahl zu multiplizieren, den Bivektor Q und den Parameter A vom zweiten Mittel (102) zu empfangen, die ganze Zahl Nu vom sechsten Mittel (113) zu empfangen und einen Bivektor Qu durch Multiplizieren des Bivektors Q mit der ganzen Zahl Nu zu berechnen; e) siebte Mittel (115), um den Bivektor Qu von der ersten Einrichtung (114) zu empfangen und den Bivektor Qu zur Bekanntgabe als öffentlicher Schlüssel an die Zentrale (100) zu senden; f) eine zweite Einrichtung (116), um eine Zufallszahl Ru auszuwählen und die so ausgewählte Zufallszahl Ru geheimzuhalten und die Zufallszahl Ru an die erste Einrichtung (114) zu senden; wobei die erste Einrichtung (114) den vom zweiten Mittel (102) gesendeten Bivektor Q, den Parameter A und die in der zweiten Einrichtung (116) gespeicherte Zufallszahl Ru empfängt und den Bivektor Q mit der Zufallszahl Ru multipliziert, um dadurch einen Bivektor C1 als Verschlüsselung zu erhalten, und die so erstellte Verschlüsselung im ersten Speichermittel (117) speichert, wobei die erste Einrichtung (114) den im zweiten Speichermitel (102) gespeicherten öffentlichen Schlüssel Qv anderer Benutzeranschlüsse, den Parameter A und die in der zweiten Einrichtung (116) gespeicherte Zufallszahl Ru empfängt und den Bivektor Qv mit der Zufallszahl Ru multipliziert, um dadurch einen Bivektor T1 zu erhalten und den so erstellten Bivektor T1 an das achte Mittel (118) sendet, g) achte Mittel (118) zum Berechnen einer Summe t1 der ersten Elemente in jeder der im Bivektor T1 enthaltenen Gruppen und Erstellen einer Verschlüsselung C2, zu der eine Nachricht M addiert wird; und h) neunte Mittel (117) zum Kooperieren mit dem achten Mittel (118), um die Verschlüsselungen C1 und C2 an andere Benutzeranschlüsse zu senden, wobei der Benutzeranschluss als Empfänger umfasst: a) zehnte Mittel (120, 121) zum Empfangen und Halten der von den Benutzeranschlüssen als Sender gesendeten Verschlüsselungen C1 und C2; wobei die erste Einrichtung (114) die Verschlüsselung C1, eine im sechsten Mittel (113) gehaltene ganze Zahl Nv und den Parameter A empfängt und durch Multiplizieren des Bivektors C1 mit der ganzen Zahl Nv einen Bivektor T2 berechnet, und b) elfte Mittel (119), um die Verschlüsselung C2 und den Bivektors T2 zu empfangen, eine Summe t2 der ersten Elemente in jeder der Gruppen, die im Bivektor T2 enthalten sind, zu empfangen und die Nachricht M durch Subtrahieren der Summe t2 von der Verschlüsselung C2 zu entschlüsseln.
  10. Signatursystem vom El-Gamal-Typ, umfassend Mittel zum Informieren aller Benutzer im Voraus über einen Parameter A, der eine Kurve definiert, und einen Bivektor Q, der eine Mehrzahl von aus einem vorbestimmten endlichen Feld ausgewählten Elementpaaren umfasst, Mittel zum zufälligen Auswählen einer ganzen Zahl Nu als Signaturschlüssel in einem Bestätigungsanschluss U (170) und Geheimhalten der so ausgewählten ganzen Zahl Nu, Mittel im Bestätigungsanschluss U (170) zum Bekanntgeben eines Bivektors Qu (Qu = Nu × Q) als Prüfschlüssel, wobei der Bivektor Qu durch Multiplizieren des Bivektors Q mit der ganzen Zahl Nu durch eine Vorrichtung nach Anspruch 5 erhalten wird, Mittel im Bestätigungsanschluss U (170) zum Erstellen eines Signaturtextes für eine Nachricht M durch die Verwendung einer beliebigen ganzen Zahl und des Signaturschlüssels Nu und Senden des Signaturtextes an einen Prüfanschluss V zusammen mit der Nachricht M und Mittel im Prüfanschluss V (180) zum Prüfen der Nachricht M durch die Verwendung des Signaturtextes und des Prüfschlüssels Qu des Bestätigungsanschlusses U (170).
  11. Signatursystem vom El-Gamal-Typ, umfassend eine Zentrale (160) und eine Mehrzahl Bestätigungsanschlüsse (170) und Prüfanschlüsse (180), wobei die Zentrale umfasst: a) erste Mittel (161) zum Empfangen von Prüfschlüsseln, die von den Bestätigungsanschlüssen bekanntgegeben werden; b) zweite Mittel (163) zum Empfangen einer Anforderung von einem der Bestätigungs- und Prüfanschlüsse (170, 180), einen Bivektors Q umfassend eine Mehrzahl Elementpaare, die aus einem vorbestimmten endlichen Feld ausgewählt wurden, einen Parameter A, der eine Kurve definiert, und einen Prüfschlüssel Qu zu senden; und c) dritte Mittel (162) zum Bekanntgegeben des Bivektors Q, des Parameters A und des Prüfschlüssels Qu an einen der Bestätigungs- und Prüfanschlüsse (170, 180), der die Anforderung stellt, wenn das zweite Mittel (163) die Anforderung empfängt, wobei der Bestätigungsanschluss (170) umfasst: a) vierte Mittel (171) zum Auffordern der Zentrale (160), den Bivektor Q und den Parameter A zu senden; b) fünfte Mittel (172) zum Empfangen und Halten des Bivektors Q und des Parameters A, die von der Zentrale (160) in Übereinstimmung mit einer Anforderung vom vierten Mittel (171) bekanntgegeben wurden, und Senden derselben an eine erste Einrichtung (174) zum Multiplizieren eines Bivektors mit einer ganzen Zahl; c) sechste Mittel (173) zum zufälligen Auswählen einer ganzen Zahl Nu, Geheimhalten der so ausgewählten ganzen Zahl Nu als Signaturschlüssel und Senden des Signaturschlüssels Nu an die erste Einrichtung (174) zum Multiplizieren eines Bivektors mit einer ganzen Zahl; d) wobei die erste Einrichtung (174) nach Anspruch 5 zum Multiplizieren eines Bivektors mit einer ganzen Zahl, zum Empfangen des Bivektors Q und des Parameters A vom zweiten Mittel (163), zum Empfangen des Signaturschlüssels Nu vom sechsten Mittel (173) und zum Berechnen eines Bivektors Qu durch Multiplizieren des Bivektors Q mit der ganzen Zahl Nu vorgesehen ist; e) siebte Mittel (175) zum Empfangen des Bivektors Qu von der ersten Einrichtung (174) und Senden des Bivektors Qu an die Zentrale (160) zur Bekanntgabe als Prüfschlüssel; f) eine zweite Einrichtung (176) zum Auswählen einer Zufallszahl K, zum Geheimhalten der so ausgewählten Zufallszahl K und zum Senden der Zufallszahl K an die erste Einrichtung (174); wobei die erste Einrichtung (174) die den vom zweiten Mittel (163) gesendeten Bivektor Q und den Parameter A und die in der zweiten Einrichtung (176) gespeicherte Zufallszahl K empfängt, den Bivektor Q mit der Zufallszahl K multipliziert, um dadurch einen Bivektor R als signierten Text zu erhalten und den signierten Text R im achten Mittel (177) speichert; und g) neunte Mittel (178) zum Empfangen einer Nachricht M, des signierten Textes R (R = k × Q) von der ersten Einrichtung (174), der Zufallszahl K von der zweiten Einrichtung (176) und des Signaturschlüssels Nu vom sechsten Mittel (173) und zum Berechnen von S (S = (M – Nu × x(R))K–1 mod O(Q), wobei x(R) eine Summe der ersten Elemente in jeder der Gruppen angibt, die in einem Bivektor R enthalten sind, und O(Q) einen Grad des Bivektors Q als signierter Text angibt; wobei der signierte Text R, der signierte Text S und die Nachricht M von den achten, zehnten und neunten Mitteln (177, 178, 179) an den Prüfanschluss gesendet werden, wobei der Prüfanschluss (180) umfasst: a) elfte Mittel (181) zum Auffordern der Zentrale (160), den Bivektor Q, den Parameter A und den Prüfschlüssel zu senden, die alle bekanntgemacht wurden; b) zwölfte Mittel (182) zum Empfangen und Halten des Bivektors Q, des Parameters A und des Prüfschlüssels Qu und zum Senden derselben an eine dritte Einrichtung (183) zum Multiplizieren eines Bivektors mit einer ganzen Zahl; c) eine dritte Einrichtung (183) zum Multiplizieren eines Bivektors mit einer ganzen Zahl, wobei die dritte Einrichtung (183) den Bivektor Q, den Parameter A und die Nachricht M empfängt, zum Berechnen von M × Q durch Multiplizieren des Bivektors Q mit M, um dadurch einen Bivektor T1 als Ergebnis zu erhalten und zum Speichern des so berechneten Bivektors T1 im ersten Speichermittel (188), wobei die dritte Einrichtung (183) eine Summe x(R) der ersten Elemente in jeder der im Bivektor R enthaltenen Gruppen empfängt, die vom achten Mittel (177) empfangen wurden, den Prüfschlüssel Qu und den Parameter A vom zwölften Mittel (182) empfängt, x(R) × Qu berechnet, um dadurch einen Bivektor T2 als Ergebnis zu erhalten und den so berechneten Bivektor T2 im zweiten Speichermittel (189) speichert, wobei die dritte Einrichtung (183) den Bivektor R, den signierten Text S und den Parameter A empfängt, S × R durch Multiplizieren des Bivektors R mit S berechnet, um dadurch einen Bivektor R3 als Ergebnis zu erhalten und den Bivektor T3 im dritten Speichermittel (190) speichert; d) eine vierte Einrichtung (184) zum Summieren von Bivektoren, wobei die vierte Einrichtung (184) die Bivektoren T2 und T3 und den Parameter A empfängt, (T2 + T3) berechnet, um dadurch einen Bivektor T4 als Ergebnis zu erhalten und den so berechneten Bivektor T4 im vierten Speichermittel (191) speichert; und e) Prüfmittel (192) zum Bestätigen, ob der im ersten Speichermittel (188) gespeicherte Bivektor T1 mit dem im vierten Speichermittel (191) gespeicherten Bivektor T4 identisch ist, um dadurch zu prüfen, ob die Nachricht M durch den Bestätigungsanschluss U (170) erstellt wird.
  12. Computerlesbares Aufzeichnungsmedium, das darin ein Programm zum Bilden des in einem der Ansprüche 6 bis 11 definierten Systems und/oder zum Veranlassen, dass ein Computer als eine in einem der Ansprüche 1 bis 5 definierte Vorrichtung wirkt, speichert.
DE69833352T 1997-08-28 1998-08-27 Vorrichtung zur Verarbeitung von Bivektoren und Verschlüsselungssystem unter Verwendung desselben Expired - Lifetime DE69833352T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP23252897 1997-08-28
JP23252897A JP3292107B2 (ja) 1997-08-28 1997-08-28 2重ベクトル加算装置、2重ベクトル2倍装置及び2重ベクトル整数倍装置

Publications (2)

Publication Number Publication Date
DE69833352D1 DE69833352D1 (de) 2006-04-13
DE69833352T2 true DE69833352T2 (de) 2006-10-12

Family

ID=16940758

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69833352T Expired - Lifetime DE69833352T2 (de) 1997-08-28 1998-08-27 Vorrichtung zur Verarbeitung von Bivektoren und Verschlüsselungssystem unter Verwendung desselben

Country Status (5)

Country Link
US (1) US6560336B1 (de)
EP (1) EP0899907B1 (de)
JP (1) JP3292107B2 (de)
CA (1) CA2246421C (de)
DE (1) DE69833352T2 (de)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3551853B2 (ja) * 1999-08-27 2004-08-11 日本電気株式会社 αYa+βXb+1=0という形の定義方程式をもつ代数曲線暗号における安全なパラメータの生成装置、生成方法、および記録媒体
US7093137B1 (en) * 1999-09-30 2006-08-15 Casio Computer Co., Ltd. Database management apparatus and encrypting/decrypting system
US7240204B1 (en) * 2000-03-31 2007-07-03 State Of Oregon Acting By And Through The State Board Of Higher Education On Behalf Of Oregon State University Scalable and unified multiplication methods and apparatus
US20020136401A1 (en) * 2000-07-25 2002-09-26 Jeffrey Hoffstein Digital signature and authentication method and apparatus
JP2005515659A (ja) 2001-12-07 2005-05-26 エヌティーアールユー・クリプトシステムズ・インコーポレーテッド ディジタル署名、認証方法及び装置
JP3925298B2 (ja) 2002-05-14 2007-06-06 日本電気株式会社 タイムシフト再生時間制御方法および情報再生装置
JP4304937B2 (ja) * 2002-08-21 2009-07-29 日本電気株式会社 ヤコビ群要素加算装置
US7499552B2 (en) * 2006-01-11 2009-03-03 International Business Machines Corporation Cipher method and system for verifying a decryption of an encrypted user data key
US7885406B2 (en) * 2006-10-10 2011-02-08 Microsoft Corporation Computing endomorphism rings of Abelian surfaces over finite fields
US20080273695A1 (en) * 2007-05-02 2008-11-06 Al-Gahtani Theeb A Method for elliptic curve scalar multiplication using parameterized projective coordinates
US8102998B2 (en) * 2007-05-02 2012-01-24 King Fahd University Of Petroleum And Minerals Method for elliptic curve scalar multiplication using parameterized projective coordinates
US8401179B2 (en) * 2008-01-18 2013-03-19 Mitsubishi Electric Corporation Encryption parameter setting apparatus, key generation apparatus, cryptographic system, program, encryption parameter setting method, and key generation method
US8520841B2 (en) * 2008-05-22 2013-08-27 Microsoft Corporation Algorithms for generating parameters for genus 2 hyperelliptic curve cryptography
US10148285B1 (en) 2012-07-25 2018-12-04 Erich Schmitt Abstraction and de-abstraction of a digital data stream
US10795858B1 (en) 2014-02-18 2020-10-06 Erich Schmitt Universal abstraction and de-abstraction of a digital data stream
US20220094532A1 (en) * 2020-07-01 2022-03-24 X-Logos, LLC Methods and systems for homomorphic data representation and concealment powered by clifford geometric algebra
US11764943B2 (en) 2020-08-10 2023-09-19 Algemetric, Inc. Methods and systems for somewhat homomorphic encryption and key updates based on geometric algebra for distributed ledger/blockchain technology
WO2022061184A2 (en) 2020-09-17 2022-03-24 X-Logos, LLC Methods and systems for encrypting rational numbers and adding randomness to rsa cryptosystems using p-adic numbers

Also Published As

Publication number Publication date
EP0899907B1 (de) 2006-02-01
CA2246421C (en) 2002-02-26
JPH1173105A (ja) 1999-03-16
CA2246421A1 (en) 1999-02-28
DE69833352D1 (de) 2006-04-13
JP3292107B2 (ja) 2002-06-17
US6560336B1 (en) 2003-05-06
EP0899907A3 (de) 2001-12-12
EP0899907A2 (de) 1999-03-03

Similar Documents

Publication Publication Date Title
DE69833352T2 (de) Vorrichtung zur Verarbeitung von Bivektoren und Verschlüsselungssystem unter Verwendung desselben
DE60313704T2 (de) Verfahren und Vorrichtung zur Erzeugung eines Geheimschlüssels
DE60026468T2 (de) Digitales Zertifikat mit Berechtigungsdaten
DE69935469T2 (de) Verfahren zur schnellen Ausführung einer Entschlüsselung oder einer Authentifizierung
DE69534192T2 (de) Verfahren zur gemeinsamen Nutzung einer geheimen Information, zur Erzeugung einer digitalen Unterschrift und zur Ausführung einer Beglaubigung in einem Kommunikationssystem mit mehreren Informationsverarbeitungseinrichtungen und Kommunikationssystem zur Anwendung dieses Verfahrens
DE19804054B4 (de) System zur Verifizierung von Datenkarten
Damgård et al. New convertible undeniable signature schemes
DE69434422T2 (de) Verfahren und Anordnung zur Verschlüsselung/Entschlüsselung auf der Basis des Montgomery-Verfahrens unter Verwendung von effizienter modularer Multiplikation
DE60114833T2 (de) Überprüfbare, geheime mischung von verschlüsselten daten wie z. b. elgamal-verschlüsselte daten für gesicherte mehrinstanzwahlen
EP0472714B1 (de) Verfahren zur authentifizierung eines eine datenstation benutzenden anwenders
DE69829967T2 (de) Verfahren und vorrichtung zur schnellen elliptischen verschlüsselung mit unmittelbarer einbettung
DE69737097T2 (de) Kryptographisches verfahren und vorrichtung mit öffentlichem schlüssel
DE60006041T2 (de) Verfahren zur überprüfung der benützung von öffentlichen schlüsseln welche von einem geladenen system generiert werden
EP1125395B1 (de) Verfahren und anordnung zur authentifikation von einer ersten instanz und einer zweiten instanz
DE69935455T2 (de) Kryptographisches verfahren unter verwendung eines öffentlichen und eines privaten schlüssels
DE60026868T2 (de) Ein einfaches implementierungsverfahren für kryptographische primitiva mittels elementar-register-operationen
DE60031304T2 (de) Verfahren zur authentifizierung von softwarebenutzern
DE102013215970A1 (de) Einzigartiger Code in einer Nachricht für eine Signaturerzeugung in einem asymetrischen Kryptographiegerät
EP0383985A1 (de) Verfahren zur Identifikation von Teilnehmern sowie zur Generierung und Verifikation von elektronischen Unterschriften in einem Datenaustauschsystem
JPH0863533A (ja) 部分的に互換性のある準同形を使用する保安電子投票の方法および装置
DE69838258T2 (de) Public-Key-Datenübertragungssysteme
EP1298834B1 (de) Verfahren und Vorrichtung zum Verschlüsseln und Entschlüsseln von Daten
DE102012206341A1 (de) Gemeinsame Verschlüsselung von Daten
DE60109805T2 (de) Verfahren und system zur benützung eines ungesicherten krypto-beschleunigers
DE112009000154T5 (de) Änderung der Darstellung eines Punktes auf einer elliptischen Kurve

Legal Events

Date Code Title Description
8364 No opposition during term of opposition