DE19829643A1 - Verfahren und Vorrichtung zur Block-Verifikation mehrerer digitaler Signaturen und Speichermedium, auf dem das Verfahren gespeichert ist - Google Patents

Verfahren und Vorrichtung zur Block-Verifikation mehrerer digitaler Signaturen und Speichermedium, auf dem das Verfahren gespeichert ist

Info

Publication number
DE19829643A1
DE19829643A1 DE19829643A DE19829643A DE19829643A1 DE 19829643 A1 DE19829643 A1 DE 19829643A1 DE 19829643 A DE19829643 A DE 19829643A DE 19829643 A DE19829643 A DE 19829643A DE 19829643 A1 DE19829643 A1 DE 19829643A1
Authority
DE
Germany
Prior art keywords
information
function
parameter
signer
following equation
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.)
Granted
Application number
DE19829643A
Other languages
English (en)
Other versions
DE19829643C2 (de
Inventor
Kazuo Ohta
Tatsuaki Okamoto
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Publication of DE19829643A1 publication Critical patent/DE19829643A1/de
Application granted granted Critical
Publication of DE19829643C2 publication Critical patent/DE19829643C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3218Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
    • H04L9/3221Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs interactive zero-knowledge proofs
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures

Description

Die vorliegende Erfindung betrifft ein Verfahren und eine Vorrichtung, die es einem Verifizierer ermöglichen, eine Block-Verifikation (Verifikation en-bloc) von Einzelsignaturen, Mehrfachsignatu­ ren oder Überlagerungssignaturen durchzuführen, die elektronisch von mehreren Unterzeichnern einem oder mehreren in elektronischer Form vorliegenden Dokumenten in einem System hinzugefügt wurden, das zur Entscheidungsfindung dient, indem das Dokument oder die Dokumente unter den Unterzeichnern umlaufen. Die Erfindung betrifft außerdem ein Speicher­ medium, auf dem das Verifikationsverfahren aufgezeichnet ist.
Ein typisches digitales Signaturschema verwendet das RSA-Verschlüsselungssystem (R.L. Rivest, et al., "A Method for Obtaining Digital Signatures and Public-Key Cryptosystems", Communica­ tions of the ACM, Band, 21, No. 2. Seiten 120-126 (1978)). Das RSA-Verschlüsselungssystem wird nachfolgend beschrieben.
Ein Unterzeichner A erzeugt einen Signaturschlüssel (d, N) und einen Verifikationsschlüssel (e, N), die die nachstehenden Bedingungen erfüllen
N = P × Q
e × d ∼ 1 (mod L), wobei L = LCM {(P-1), (Q-1)}.
Dann veröffentlicht der Unterzeichner A den Verifikationsschlüssel, während er den Signatur­ schlüssel geheim hält. LCM {a, b} drückt dabei das kleinste gemeinsame Vielfache der ganzen Zahlen a und b aus, wobei angenommen wird, daß P und Q zwei verschiedene große Primzahlen sind. Weiterhin steht a∼b (mod L) dafür, daß a-b ein Vielfaches von L ist.
Das RSA-Verschlüsselungssystem ist ein Verschlüsselungssystem, dessen Sicherheit auf der Schwierigkeit beruht, eine Zerlegung von N in Primzahlfaktoren durchzuführen, wenn N groß ist (dies wird später als das "Faktorzerlegungsproblem" bezeichnet). Es ist schwierig, die d-Kompo­ nente des geheimen Signaturschlüssels aus dem veröffentlichten Verifikationsschlüssel (e, N) zu errechnen.
Ein Verifizierer B hält den Verifikationsschlüssel (e, N) des Unterzeichners A in Verbindung mit dessen Identifikationsinformation (ID). Ein vertrauenswürdiges Zentrum bzw. eine vertrauens­ würdige Institution kann in machen Fällen solche Verifikationsschlüssel in der Form eines öffentlichen Informationsverwaltungsverzeichnisses halten.
Eine Signaturfunktion D und eine Verifikationsfunktion E sind wie folgt definiert:
D(m) = md mod N
E(y) = ye mod N.
Man kann zeigen, daß die folgende Gleichung für eine ganze Zahl m erfüllt ist, für die gilt O ≦ m < N:
E (D(m)) = m,
wobei a mod N den Rest der Division a durch N darstellt.
Das digitale Signaturschema unter Verwendung des RSA-Verschlüsselungssystems ist wie nachfolgend beschrieben. Der Unterzeichner A erzeugt f(m) unter Verwendung einer Einweg- Funktion f aus einem Dokument m, fügt dann unter Verwendung der geheimen Signaturfunktion D eine Signatur y = D(f(m)) hinzu und sendet die Kombination (ID, m, y) seiner Identifikationsin­ formation (ID), des Dokuments m und der Signatur y als unterzeichnete Nachricht an den Verifizierer B.
Der Verifizierer B holt die Information über den Verifikationsschlüssel (e, N) des Unterzeichners A von dem öffentlichen Informationsverwaltungsverzeichnis unter Verwendung der Identifikations­ information ID des Unterzeichners als Schlüssel, berechnet dann E(y) = ye mod N aus der y-Komponente der unterzeichneten Nachricht unter Verwendung des erhaltenen Verifikations­ schlüssels (e, N) und prüft ob E(y) mit f(m) übereinstimmt, welches mit Hilfe der Einweg- Funktion f von m abgeleitet wurde. Wenn E(y) = f(m), urteilt der Verifizierer B, daß der Sender der echte Unterzeichner A ist und die unterzeichnete Nachricht (ID, m, y) nicht verfälscht wurde, da ausschließlich der wahre Unterzeichner A die Signaturfunktion D(m) = md mod N, d. h. die vorgenannte d-Komponente kennt.
Die hier erwähnte Einweg-Funktion f ist eine Funktion, mit der f(x) leicht aus x errechnet werden kann, während es schwierig ist, x aus f(x) zu ermitteln. Die Einweg-Funktion f kann unter Verwendung eines traditionellen schnellen Verschlüsselungssystems erstellt werden, beispielsweise eines DES-Verschlüsselungssystem (Data Encryption Standard, Federal Informa­ tion Processing Standards Publication 46. 1977). Unter Verwendung schneller Komponenten wird die Zeit zur Errechnung der Funktion f so gut wie vernachlässigbar. Die nachfolgend erwähnte Einweg-Funktion ist eine solche, mit der ein Wert für ein x beliebiger Datenlänge errechnet werden kann.
Die ganze Zahl N zur Verwendung bei dem RSA-Verschlüsselungssystem umfaßt gewöhnlich eine Länge von 308 Dezimalstellen (1024 Bits) oder so. Die d-Komponente des Signaturschlüs­ sels ist ebenfalls etwa 1024 Bits lang. Es ist im Stand der Technik bekannt, daß ein Quadrier- und-Multiplizier-Algorithmus zur Berechnung der Signaturfunktion d verwendet wird. Die Berechnung einer ganzen Zahl mit 308 Stellen (einschließlich einer Molulo-N-Rechnung) muß im Mittel 1536mal durchgeführt werden, was dem Unterzeichner A zur Signaturerzeugung einen schweren Rechenaufwand auferlegt.
Der Quadrier-und-Multiplizier-Algorithmus zur Berechnung von xa mod N ist wie nachfolgend beschrieben.
Schritt S1: z = 1
Schritt S2: Die folgenden Schritte S2-1 und S2-2 werden wiederholt, bis ein numerischer Index ausgehend von 0 |a|-1 wird (wobei angenommen wird, daß |a| die Anzahl von Bits von a darstellt).
Schritt S2-1: z' = z2 mod N
Schritt S2-2: wenn ai = 1, erneuere z mit z = z'x mod N und kehre zum Schritt S2-1 zurück (ai ist der Wert, 0 oder 1, des i-ten Bits von a);
wenn ai = 0, kehre zu Schritt S2-1 zurück, ohne z zu erneuern.
Schritt S3: gib z aus.
Die Quadrier-und-Multiplizier-Algorithmus ist beispielsweise beschrieben in Douglas R. Stinson, "CRYPTOGRAPHY, Theory and Practice", CRC. Press p 127, 1995.
Mit dem Ziel der Lösung des Problems der zunehmenden Rechenbelastung für den Unterzeichner zur Signaturerzeugung, sind interaktive Prüfungen vorgeschlagen worden, für die das Fiat- Shamir-Schema und das Schnorr-Schema typische Beispiele sind (vgl. A. Fiat und A. Shamir, "How to prove yourself: practical solutions to identification and signature problems", Advances in Cryptology-Crypto 86. Springer-Verlag, Seiten 186-194; C. F Schnorr, "Efficient Identification and Signatures for smart Card", Advances in Cryptology-EUROCRYPT7 89 Springer-Verlag Seiten 235-251; und M. Tompa and H. Woll, "Random Self-Reducibility and Zero Knowledge Interactive Proofs of Possession of Information", Proceedings of the 28th IEEE Symposium on the Foundation of Computer Science, Seiten 472-482 (1987)).
Eine digitale Signatur mittels des Schnorr-Schemas wird nachfolgend beschrieben.
Eine vertrauenswürdige Institution veröffentlicht zwei große Primzahlen p und q, die in einer solchen Beziehung miteinander stehen, daß q ein Maß von p-1 darstellt. Die Institution veröf­ fentlicht außerdem eine ganze Zahl g ∈ (Z/pZ)* = {1, 2, . . ., p-1} mit dem Grad q.
Schritt S1: Der Unterzeichner A generiert eine Zufallszahl s ∈ (Z/qZ) = {0, 1, 2,. . ., q-1}, errechnet dann öffentliche Information I durch
I = gs mod p (1)
und veröffentlicht ein aus Identifikationsinformation (ID) und der Information I beste­ hendes Informationspaar.
Der Unterzeichner A durchläuft die folgende Prozedur, um dem Verifizierer B zu beweisen, daß das Dokument oder die Nachricht m wahr bzw. echt ist.
Schritt S2: Der Unterzeichner A generiert eine Zufallszahl r ∈ (Z/qZ) und berechnet
X = gr mod p (2)
Schritt S3: Der Unterzeichner A errechnet unter Verwendung der Einweg-Funktion f mittels der folgenden Gleichung eine ganze Zahl e ∈ (Z/qZ):
e = f (X, m) (3)
Schritt S4: Der Unterzeichner A erzeugt die Signatur y durch
y = r + er mod q (4)
und sendet {ID, m, X, y} als unterzeichnete Nachricht an den Verifizierer B.
Schritt S5: Der Verifizierer B errechnet unter Verwendung der Einweg-Funktion f die ganze Zahl e ∈ (Z/qZ) durch
e = f(X, m) (5)
Schritt S6: Der Verifizierer B prüft, ob die nachfolgende Gleichung erfüllt ist.
gy ∼ XIe (mod p) (6)
wobei I öffentliche Information entsprechend der Identifikationsinformation ID ist.
Aus der Art der Erzeugung der Signatur y ergibt sich gy ∼ gr (gs)e ∼ XIe (mod p); wenn somit Glei­ chung (6) erfüllt ist, erkennt der Verifizierer B das Dokument m als von dem Unterzeichner A ordnungsgemäß unterzeichnet an.
In den oben beschriebenen Schritten S2 bis S4 könnte die Signatur des Unterzeichners gefälscht werden, falls {ID, X, m, y} als eine unterzeichnete Nachricht gesendet wird, wenn die ganze Zahl e ∈ (Z/qZ), für die e = f(X, m) erfüllt ist, durch Berechnung von X ∈ (Z/pZ)* herausgefunden werden könnte, welches Gleichung (6) erfüllen, nachdem die ganzen Zahlen e ∈ (Z/qZ) und y ∈ (Z/qZ) geeignet gewählt wurden. Da die Wahrscheinlichkeit, mit der die Verifikationsgleichung e = f(m, X) erfüllt ist, jedoch 1/q ist, hängt der Komplexitätsgrad der mit der Fälschung der Signatur verbundenen Berechnung vom Wert q ab. In der folgenden Beschreibung wird die Anzahl von Bits der Primzahl p durch |p| dargestellt.
Bei dem Schnorr-Schema beinhaltet der Signaturerzeugungsprozeß beim Sender eine Multiplika­ tion (einschließlich Modulo-p-Rechnungen) von ganzen Zahlen mit |p| Bits mit einer durch­ schnittlichen Häufigkeit von 3/2|q|, eine einzelne Multiplikation (einschließlich Modulo-q- Rechnungen) von ganzen Zahlen mit |q| Bits sowie eine einzelne Addition (einschließlich Modulo-q-Rechnungen) der ganzen Zahlen mit |q| Bits.
Während bei dem Voranstehenden die unterzeichnete Nachricht {ID, X, m, y} ist, ist es auch möglich, e anstelle von X zu verwenden, um {ID, e, m, y} zu liefern. In diesem Fall erfolgt eine Prüfung daraufhin, ob die Relation e = f(X, m) erfüllt ist, und zwar durch Berechnung von X durch X = (gy)(Ie)-1 mod p. Wenn |e| < |X|, wird die Nachricht mit letzterem kürzer.
Man betrachte nun den Fall, daß mehrere Unterzeichner verschiedener Dokumente auf der Basis der überlagerten Signatur oder Überlagerungssignatur unterzeichnen. Ein typisches Beispiel der Verwendung des Überlagerungssignaturschemas ist folgendes. Eine Zertifikationsinstitution (Autorität) CA garantiert beispielsweise die Korrespondenz zwischen der öffentlichen Identifika­ tionsinformation ID und öffentlicher Information I des Unterzeichners durch eine digitale Signatur T = DCA (ID, I), die einem Dokument (ID, I) beigefügt ist, und sendet die Signatur T dem Unter­ zeichner. Der Unterzeichner generiert eine Signatur DID (m, T), für das aus dem Dokument in und der Signatur T bestehende Paar, und zwar unter Verwendung der Geheiminformation entspre­ chend der öffentlichen Information I, und sendet die Signatur DID (m, T) an den Verifizierer, wodurch dieser in die Lage versetzt wird, die Signatur DID (m, T) des Unterzeichners und die Signatur T der Zertifikationsinstitution CA zu verifizieren.
Bei dem Überlagerungssignaturschema ist es wichtig, die von dem Unterzeichner zur Signaturer­ zeugung zu verarbeitende Informationsmenge gering zu halten, die von dem Verifizierer zur Signaturverifikation zu verarbeitende Informationsmenge niedrig zu halten und eine Zunahme der Signaturkomponenten zu verhindern.
Bei dem von dem RSA-Verschlüsselungssystem Gebrauch machenden digitalen Signatursche­ mata, unterzeichnen jeweilige Unterzeichner i Dokumente mi in sequentieller Reihenfolge, um Information DL (mL, . . ., D2 (f(m2, D1(f(m1)))) . . .) zu schaffen, wodurch die Überlagerungssignatur­ funktion implementiert wird. In diesem Fall stellt der zur Signaturerzeugung erforderlich große Rechenumfang ein Problem dar.
Bei direkter Anwendung des Schnorr-Schemas auf das Überlagerungssignaturschema wird es für möglich gehalten, ein Verfahren des Anfügens von Information {ID, Xi, yi} zu Dokumenten (m1, . . ., mi-1, mi) für jeden Unterzeichner i einzusetzen. Die Xi-Komponente ist |p| Bits lang und die yi-Komponente |q| Bits lang. Wenn L Unterzeichner unterzeichnen, wird schließlich eine Informa­ tion mit (|p| + |q|) × L Bits an eine Nachricht angefügt, d. h. die Identifikationsinformation IB von L Unterzeichnern und Dokumente (m1, . . ., mL). Auch in diesem Fall führt die Vergrößerung der Signaturkomponente (X-Komponente, y-Komponente) zu einem Problem.
Als nächstes erfolgt eine Beschreibung des Mehrfachsignaturschemas, bei dem mehrere Unterzeichner ein Dokument in sequentieller Reihenfolge unterzeichnen. Mit dem digitalen Signaturschema unter Verwendung des RSA-Verschlüsselungssystems ist es möglich, das Mehrfachsignaturschema zu implementieren, wenn die mehreren Unterzeichner auf einer Signatur y einer Nachricht {ID, m, y} nacheinander unterzeichnen (d. h. DL . . . D1(f(m))). Auch bei diesem Schema stellt sich das Problem eines hohen Rechenaufwands zur Signaturerzeugung.
Bei direkter Anwendung des Schnorr-Schemas auf das Mehrfachsignaturschema wird es für machbar gehalten, ein Verfahren einzusetzen, bei dem Information {ID, X, y} einer Nachricht m für jeden Unterzeichner hinzugefügt wird. Die X-Komponente ist |p| Bits lang und die y-Kompo­ nente |q| Bits lang. Wenn L Unterzeichner die Nachricht in sequentieller Reihenfolge unterzeich­ nen, wird schließlich Information mit (|p| + |q|) × L Bits einer Nachricht hinzugefügt (der Identifi­ kationsinformation von L Unterzeichnern und dem Dokument m). Auch in diesem Fall bewirkt eine Zunahme der Signaturkomponente (X-Komponente, y-Komponente) ein Problem.
Bezüglich des Mehrfachsignaturschemas ist ein solches vorgeschlagen worden, das die Verringe­ rung sowohl der X- als auch der y-Komponente auf eine erlaubt, und zwar durch Akkumulieren der Werte der X- und der y-Komponenten für jeden Signaturerzeugungsprozeß (K. Ohta und T Okamoto, "A Digital Multi-Signature Scheine Based on the Fiat-Shamir Scheme", Advances in Cryptology-ASIACRYPT'91, Springer-Verlag, Seiten 139-148). Da dieses Schema jedoch zwei Durchläufe einer Zirkulation der Nachricht zu den Unterzeichnern beinhaltet, erfordert die Mehrfachsignatur durch L Unterzeichner (2L-1) Kommuniationsdurchläufe. Die Zunahme der Anzahl von Kommunikationen führt damit zu einem Problem.
Mit dem Mehrfachsignaturschema, das zwei Durchläufe der Zirkulation einer Nachricht zu Unterzeichnern beinhaltet, ist es unmöglich, das Überlagerungssignaturschema zu realisieren, bei dem die von den einzelnen Unterzeichnern jeweils zu unterzeichnenden Dokumente verschieden sind. Der Grund dafür besteht darin, daß, weil alle Dokumente, beispielsweise m1 und m2, im ersten Zirkulationsdurchlauf bestimmt werden müssen, die Signatur der Dokumente (m1, m2) nicht nach Erzeugung der Signatur des Dokuments m1 erzeugt werden kann.
Es ist ein Schema zur Modifizierung einer EIGamal-Signatur für die Mehrfachsignatur vorgeschla­ gen worden (Atsushi Shimbo, "Multi signature Schemes Based on the EIGamal Scheme", The 1994 Symposium on Cryptography and Information Security SCIS94-2C). Diese Literaturstelle beinhalt 99999 00070 552 001000280000000200012000285919988800040 0002019829643 00004 99880et jedoch nichts über die Überlagerungssignaturverwendung. Bei dem vorgeschlagenen modifizierten Schema ist es schwierig, die Schnorr-Signatur mit einem Zirkulationsdurchlauf zu realisieren, und die Sicherheit aller der vorgeschlagenen Schemata wurde nicht strikt bewertet (siehe "Conclusion" auf Seite 9 der Literaturstelle).
Bei einem das digitale Signaturschema verwendenden System tritt gelegentlich die Situation auf, wo mehrere Signaturen an einer Stelle zusammenkommen und verifiziert werden. Beispielsweise kommt elektronisches Geld zum Ausgabeinstitut zurück, wo seine Gültigkeit verifiziert wird. In einem solchen Fall erlaubt die Verwendung der interaktiven Prüfung eine wesentliche Verringe­ rung des zur Signaturerzeugung erforderlichen Rechenaufwands. Jedoch kann die zu verarbei­ tende Rechenmenge zur Signaturverifikation manchmal zunehmen. Beispielsweise beinhaltet das Schnorr-Schema eine Multiplikation von ganzen Zahlen mit |p| Bits (einschließlich Modulo-p- Rechnungen) mit einer durchschnittlichen Häufigkeit von 3/2|q|, während bei dem RSA-Schema, da e = 3 ohne Beeinträchtigung der Sicherheit erreichbar ist, die Anzahl von Multiplikationen von ganzen Zahlen mit |N| Bits (einschließlich Modulo-N-Rechnungen) lediglich zwei beträgt.
Es soll nun eine Block-Verifikation mehrerer Signaturen bei den oben erwähnten digitalen Signaturschemata beschrieben werden.
Da das von dem RSA-Verschlüsselungssystem Gebrauch machende digitale Signaturschema auf das Problem des hohen Rechenaufwands zur Signaturerzeugung stößt und für jeden Unterzeich­ ner einen anderen Modulowert Ni verwendet, wird es als unmöglich angesehen, Ni und Nj auf einmal zu verifizieren.
Wenn das Schnorr-Schema ohne Modifikationen verwendet wird, unterzeichnet der Unterzeich­ ner i eine Nachricht mi durch Hinzufügen der Information {IDi, Xi, yi}, wobei die Xi-Komponente |p| Bits lang ist und die yi-Komponente |q| Bits lang ist. In dem Fall, wo L Unterzeichner i jeweils ein anderes Dokument in unterzeichnen (mit 1 ≦ i ≦ L) und L unabhängige Verifikations­ gleichungen zum Verifizieren der L Signaturen verwendet werden, besteht der zu bearbeitende Rechenumfang für die Signaturverifikation in L Verifikationsdurchläufen.
Angesichts dessen ist ein Schema vorgeschlagen worden, welches die folgende eine Verifika­ tionsgleichung verwendet, indem der Wert der y-Komponente akkumuliert wird:
gy' = X1I1 eL . . . XLIL eL (mod p) (7)
wobei
(siehe beispielsweise Ohta and Okamoto, "Multi-Signature Schemes Using Fiat-Shamir Scheme", Spring National Convention of the Institute of Electronics, Information and Communication Engineers of Jaoan (1989), A-277 (1989), und Harada and Tatebayashi, "An efficient method for computing a general monomial and its application", Technical Report of Institute of Electronics, Information and Communication Engineers of Japan ISEC91-40 (1991).
Mit diesen Schemata kann jeder Unterzeichner die Signaturen anderer Unterzeichner fälschen, was zu Sicherheitsproblemen führt. Dieses Problem wird beispielsweise in Shimbo and Kawa­ mura, "Consideration on computing vector addition chain and its application", Technical Report of the Institute of Electronics. Information and Communication Engineers of Japan ISEC91-59 (1991) erörtert.
In der obigen Literaturstelle sind die Signaturerzeugung, die Signaturverifikation und Angriffe darauf in der Situation beschrieben, in der mehrere Unterzeichner ein Dokument unterzeichnen. Selbst wenn jedoch jeder Unterzeichner ein anderes Dokument unterzeichnet, ermöglicht die Verwendung der oben erwähnten Verifikationsgleichung die direkte Anwendung des Angriffs auf die mehreren Signaturen, was zu einem entsprechenden Sicherheitsproblem führt.
Eine erste Aufgabe der vorliegenden Erfindung besteht darin, ein Signaturverfahren und eine Vorrichtung zu schaffen, die eine Block-Verifikation einer Überlagerungssignatur, einer Mehr­ fachsignatur oder von Einzelsignaturen gestatten, welche von mehreren Unterzeichnern an demselben oder verschiedenen Dokumenten angebracht sind, sowie ein Speichermedium zu schaffen, auf dem das Signaturverfahren gespeichert ist.
Eine zweite Aufgabe der vorliegenden Erfindung ist es, ein sicheres Überlagerungssignaturverfah­ ren und eine dafür geeignete Vorrichtung zu schaffen, die eine Zunahme der Datenmenge für Signaturkomponenten in dem Fall verhindern, wo mehrere Unterzeichner jeweils ein anderes Dokument unterzeichnen und es erwünscht ist, die Reihenfolge der Unterzeichnung zu bestäti­ gen, sowie ein Speichermedium zu schaffen, auf dem das Überlagerungssignaturverfahren gespeichert ist.
Eine dritte Aufgabe der vorliegenden Erfindung ist es, ein sicheres Mehrfachsignaturverfahren und eine dazu geeignete Vorrichtung zu schaffen, die die Realisierung einer Mehrfachsignatur mittels lediglich eines Umlaufs einer Nachricht zu mehreren Unterzeichnern gestatten und eine Zunahme der Datenmenge für Signaturkomponenten verhindern, sowie ein Aufzeichnungsme­ dium zu schaffen, auf dem das Mehrfachsignaturverfahren gespeichert ist.
Eine vierte Aufgabe der vorliegenden Erfindung ist es, ein sicheres Signaturverfahren und eine dazu geeignete Vorrichtung zu schaffen, die eine Block-Verifikation und damit effiziente Verifikation von Signaturen erlauben, wenn mehrere Unterzeichner jeweils ein anderes Dokument unterzeichnen, sowie ein Aufzeichnungsmedium zu schaffen, auf dem das Signaturverfahren gespeichert ist.
Ein Signaturverifikationsverfahren gemäß einem ersten Aspekt der vorliegenden Erfindung umfaßt die Schritte:
Jeder Unterzeichner i:
  • (a) erzeugt eine erste Zufallszahl si als Geheiminformation, erzeugt dann Information Ii = (si, β) mit einer Funktion G2 unter Verwendung eines öffentlichen Parameters β und der ersten Zufallszahl si und veröffentlicht die Information Ii, zwei Einweg-Funktionen fi und hi und Identifi­ kationsinformation IDi, die von dem Unterzeichner i benutzt werden, als seine öffentliche Information {IDi, Ii, fi, hi};
  • (b) erzeugt eine zweite Zufallszahl ri, erzeugt dann Xi = Φ(ri, β) durch Einsetzen des Parameters β und der zweiten Zufallszahl ri in eine Funktion Φ und setzt die Information Xi enthaltende Information auf X'i;
  • (c) erzeugt
    ei = fi(X'i, m'i)
    di = hi(X'i, m'i)
    mit den Einweg-Funktionen fi und hi unter Verwendung von Dokumentinformation m'i, die ein zu unterzeichnendes Dokument mi enthält, und der Information X'i; und
  • (d) erzeugt für Information, die ei, di, si und ri enthält, eine Signatur
    yi = Sgi(ei, di, si, ri, y'i-1)
    mit einer Signaturfunktion Sgi, die unter Verwendung des Parameters β erzeugt wird, und gibt, wenn Information, die die Information IDi enthält, als Identifikationsinformation ID'i dargestellt wird, {ID'i, X'i, m'i, yi} einzeln oder über die anderen Unterzeichner an einen Verifizierer als letzte Bestimmung aus, wobei im Fall des einzelnen Aussendens y'i-1 eine leere Menge ist und im Fall des Aussendens über die anderen Unterzeichner y'i-1 so eingestellt wird, daß gilt y'i-1 = yi-1; und
    der Verifizierer:
  • (e) errechnet aus der öffentlichen Information {IDi, Ii, fi, hi} Information Ii, die der Identifikationsinformation IDi entspricht, welche in ID'i in der empfangenen Information {ID'i, X'i, m'i, yi} enthalten ist, und die Einwegfunktionen fi und hi, und berechnet ei und di unter Verwen­ dung der Einweg-Funktionen fi und hi und der empfangenen Informationen X'i und m'i;
  • (f) berechnet die Information Xi, die in der Information X'i enthalten ist, und berechnet
    Z' = V((Xi*di), (Ii*ei)|i = 1, . . ., L)
    mit einer Funktion V, die Berechnungen (Xi*di) von di und Xi sowie (Ii*ei) von ei und Ii enthält, für i = 1, . . ., L; und
  • (g) berechnet W = Γ(yi*β) mit einer Funktion Γ, die eine Berechnung (yi*β) von yi und β enthält, verifiziert dann die Gültigkeit der Signaturen durch Prüfung, ob W = Z', und entscheidet, falls beide Werte gleich sind, daß die Signaturen alle gültig sind.
Gemäß einem zweiten Aspekt der vorliegenden Erfindung wird der Wert der y-Komponente, bei der es sich um eine der Hauptsignaturkomponenten handelt, für jeden Signaturerzeugungsprozeß akkumuliert, um eine Zunahme der Datenmenge der Gesamtsignaturkomponente zu unterdrücken, wodurch ein Überlagerungssignaturschema aufgestellt wird, das bei dem Fiat- Shamir-Schema und dem Schnorr-Schema anwendbar ist. Obwohl es bekannt ist, daß die Expontentialkomponente bei der Verifikationsverarbeitung lediglich die e-Komponente ist, die als eine Expontentialkomponente von I verwendet wird, führt die vorliegende Erfindung die d- Komponente als zweite Exponentialkomponente für die Potenzierung von X neu ein und erzeugt unter Berücksichtigung der Reihenfolge der Unterzeichner die e- und die d-Komponente, wodurch eine Zunahme der Anzahl von Kommunikationen verhindert wird und gleichzeitig Sicherheit geboten wird.
Gemäß einem dritten Aspekt der vorliegenden Erfindung wird der Wert der y-Komponente, bei der es sich um eine der Hauptsignaturkomponenten handelt, für jeden Signaturerzeugungsprozeß akkumuliert, um eine Zunahme der Datenmenge der Gesamtsignaturkomponente zu unter­ drücken, wodurch ein Mehrfachsignaturschema erstellt wird, das auf das Fiat-Shamir-Schema und das Schnorr-Schema anwendbar ist. Während es bekannt ist, daß die Exponentialkompo­ nente in der Verifikationsverarbeitung lediglich die e-Komponente ist, die als Exponentialkompo­ nente von I verwendet wird, führt die vorliegende Erfindung neu die d-Komponente als eine zweite Exponentialkomponente für die Potenzierung von X ein, wodurch eine Zunahme der Anzahl von Kommunikationen verhindert wird, während gleichzeitig Sicherheit geboten wird.
Gemäß einem vierten Aspekt der vorliegenden Erfindung wird, während es bekannt ist, daß die Exponentialkomponente in der Verifikationsverarbeitung lediglich die e-Komponente ist, die als eine Exponentialkomponente von I verwendet wird, die d-Komponente neu als zweite Exponen­ tialkomponente für die Potenzierung von X eingeführt, wodurch ein Signaturschema erstellt wird, welches eine Block-Signaturverifikation ermöglicht, die auf das Fiat-Shamir-Schema und das Schnorr-Schema anwendbar ist. Gleichzeitig wird Sicherheit geboten, selbst wenn der Wert der y-Komponente, bei der es sich um eine der Hauptsignaturkomponenten handelt zum Zeitpunkt der Signaturverifikation akkumuliert wird und lediglich eine Verifikationsgleichung verwendet wird.
Ausführungsbeispiele der Erfindung werden nachfolgend anhand der Zeichnungen näher erläutert. Es zeigen:
Fig. 1A ein Blockdiagramm, das den Aufbau eines Systems darstellt, bei dem das Überlage­ rungs- oder das Mehrfachsignaturschema und die Block-Signaturverifikation dafür gemäß der vorliegenden Erfindung anwendbar sind,
Fig. 1B ein Blockdiagramm, das den Aufbau eines Systems darstellt, bei dem das Einzelsigna­ turschema und die Block-Signaturverifikation dafür gemäß der vorliegenden Erfindung anwendbar sind,
Fig. 2 ein Blockdiagramm, das den funktionalen, mit einer Verarbeitung zur anfänglichen Informationseinstellung in Zusammenhang stehenden Aufbau einer Zentralvorrichtung 100 in Fig. 1A oder 1B darstellt,
Fig. 3 ein Blockdiagramm, das den funktionalen, mit einem Prozeß für die Systemeinschrei­ bung in Zusammenhang stehenden Aufbau einer Unterzeichnervorrichtung in Fig. 1A zeigt,
Fig. 4 ein Diagramm, das eine Interaktionsfolge von Information mit überlagerten Signaturen zeigt,
Fig. 5 ein Blockdiagramm, das den funktionalen, mit einer Verarbeitung zur Signaturerzeu­ gung in Zusammenhang stehenden Aufbau einer Unterzeichnervorrichtung in Fig. 1A zeigt,
Fig. 6 ein Blockdiagramm, das den funktionalen, mit der Verarbeitung zur Signaturverifikation in Zusammenhang stehenden Aufbau der Verifizierervorrichtung 800 in Fig. 1A zeigt,
Fig. 7 ein Diagramm zeigt, das eine Interaktionsfolge von Information mit Mehrfachsignatu­ ren zeigt,
Fig. 8 ein Blockdiagramm, das den funktionalen, mit der Verarbeitung zur Signaturerzeugung in dem Mehrfachsignaturschema in Zusammenhang stehenden Aufbau der Unter­ zeichnervorrichtung in Fig. 1A zeigt,
Fig. 9 ein Blockdiagramm, das den funktionalen, mit der Verarbeitung zur Signaturverifikation in dem Mehrfachsignaturschema in Zusammenhang stehenden Aufbau der Verifizie­ rervorrichtung 800 in Fig. 1A zeigt,
Fig. 10 ein Blockdiagramm, das den funktionalen, mit der Verarbeitung ihrer Systemeinschrei­ bung in dem Einzelsignaturschema in Zusammenhang stehenden Aufbau einer Unter­ zeichnervorrichtung in Fig. 1B zeigt
Fig. 11 ein Diagramm, das eine Interaktionsfolge von Information in dem Einzelsignaturschema zeigt,
Fig. 12 ein Blockdiagramm, das den funktionalen, mit der Verarbeitung zur Signaturerzeugung in Zusammenhang stehenden Aufbau einer Unterzeichnervorrichtung in Fig. 1B zeigt,
Fig. 13 ein Blockdiagramm, das den funktionalen, mit der Verarbeitung zur Signaturverifikation in Zusammenhang stehenden Aufbau der Verifizierervorrichtung 800 in Fig. 1B zeigt,
Fig. 14 ein Blockdiagramm, das den funktionalen Aufbau der Zentralvorrichtung 100 in Fig. 1A zeigt der mit der Verarbeitung zur anfänglichen Informationseinstellung im Fall eines auf einer elliptischen Kurve beruhenden Verschlüsselungssystems in Zusammen­ hang steht,
Fig. 15 ein Blockdiagramm, das den funktionalen Block einer Unterzeichnervorrichtung in dem System von Fig. 1A zeigt der mit der Verarbeitung ihrer Systemeinschreibung unter Verwendung des auf einer elliptischen Kurve beruhenden Verschlüsselungssystems verbunden ist,
Fig. 16 ein Blockdiagramm, das den funktionalen Block einer Unterzeichnervorrichtung in dem System von Fig. 1A zeigt, der mit der Verarbeitung zur Signaturerzeugung in dem Überlagerungssignaturschema unter Verwendung des auf einer elliptischen Kurve beruhenden Verschlüsselungssystems verbunden ist,
Fig. 17 ein Blockdiagramm, das den funktionalen Block der Verifizierervorrichtung 800 in dem System von Fig. 1A zeigt, der mit der Verarbeitung zur Signaturverifikation in dem Überlagerungssignaturschema unter Verwendung des auf einer elliptischen Kurve beruhenden Verschlüsselungssystems verbunden ist,
Fig. 18 ein Blockdiagramm, das den Aufbau einer Unterzeichnervorrichtung in einem System von Fig. 1A für das Mehrfachsignaturschema unter Verwendung einer elliptischen Kurve darstellt,
Fig. 19 ein Blockdiagramm, das den Aufbau der Verifizierervorrichtung 800 in dem System von Fig. 1A für das Mehrfachsignaturschema unter Verwendung der elliptischen Kurve zeigt,
Fig. 20 ein Blockdiagramm, das den Aufbau einer Unterzeichnervorrichtung in einem System gemäß Fig. 1B für das Einzelsignaturschema unter Verwendung der elliptischen Kurve zeigt,
Fig. 21 ein Blockdiagramm, das den Aufbau der Verifizierervorrichtung 800 in dem System von Fig. 1B für das Einzelsignaturschema unter Verwendung der elliptischen Kurve zeigt,
Fig. 22 eine Tabelle, die die grundlegenden Berechnungsgleichungen bei der vorliegenden Erfindung im Vergleich mit jenen in dem RSA-Schema und dem Schnorr-Schema zur Bewertung der vorliegenden Erfindung zeigt, und
Fig. 23 eine Tabelle, die den erforderlichen Rechenaufwand bei der vorliegenden Erfindung im Vergleich mit jenen beim RSA-Schema und beim Schnorr-Schema zeigt.
Das Block-Signatursystem gemäß der vorliegenden Erfindung umfaßt eine Zentralvorrichtung 100 (nachfolgend auch einfach als Zentrale bezeichnet), L Unterzeichnervorrichtungen (nachfolgend auch einfach als Unterzeichner bezeichnet) 30 1, 30 2, . . ., 30 L, wobei L eine ganze Zahl gleich oder größer als 2 ist, und eine Verifizierervorrichtung 800 (nachfolgend auch einfach als Verifizierer bezeichnet). Die Unterzeichnervorrichtungen und die Verifizierervorrichtung sind jeweils über einen Kanal 400 garantierter Sicherheit mit der Zentralvorrichtung 100 verbunden. Die Unterzeichnervorrichtungen 30 1, 30 2, . . ., 30 L sind in einer Kette über Kanäle 500 nicht garantierter Sicherheit verbunden. Die L-te Unterzeichnervorrichtung 30 L ist mit der Verifizierer­ vorrichtung 800 über einen Kanal 700 nicht garantierter Sicherheit verbunden. In diesem System bringt der Unterzeichner 30 seine Signatur an einem Dokument m1 unter Verwendung einer Signaturfunktion Sg1 an, sendet dann das unterzeichnete Dokument als y1 = Sg1(m1) an den nächsten Unterzeichner 30 2, der seinerseits unter Verwendung einer Signaturfunktion Sg2 seine Signatur an einem Dokument m2 und der empfangenen Signaturinformation y1 anbringt und sie als Signaturinformation y2 = Sg2 (m1, y1) an den Unterzeichner 30 3 sendet. Diese Verarbeitung wiederholt sich für jeden nachfolgenden Unterzeichner. Der letzte Unterzeichner 30 L bringt seine Signatur an einem Dokument mL und der von ihm empfangenen Signaturinformation yL-1 unter Verwendung einer Signaturfunktion SgL an und sendet sie als Signaturinformation yL = SgL(mL, yL-1) an die Verifizierervorrichtung 800. Eine solche Signaturverarbeitung wird als Überlage­ rungssignaturschema bezeichnet.
Wenn bei diesem Beispiel lediglich das Dokument m1 des ersten Unterzeichners existiert, die Dokumente m2, . . ., mL der nachfolgenden Unterzeichner also nicht existieren, unterzeichnen die L Unterzeichner dasselbe Dokument m1 nacheinander. Dies wird als Mehrfachsignaturschema bezeichnet. In jedem Fall verifiziert der Verifizierer 800 gemäß der vorliegenden Erfindung die empfangene Signaturinformation yL en-bloc, d. h. alle auf einmal. Wenn alle Signaturen gültig sind, endet ihre Verifikation in einer Verarbeitungsrunde bzw. einem Verarbeitungsdurchlauf. Wenn jedoch irgend eine der Signaturen ungültig ist, wird eine Verarbeitung zur Ermittlung des nicht autorisierten Unterzeichners durchgeführt. Wenn beispielsweise die Anzahl involvierter Unterzeichner 2M ist, werden diese in eine erste und eine zweite Halbgruppe je bestehend aus 2M-1 Unterzeichnern unterteilt, und die Signaturen von 2M-1 Unterzeichnern einer Gruppe werden auf einmal, d. h. als Block verifiziert. Wenn eine ungültige Signatur gefunden wird, werden 2M-2 Signaturen der ersten oder der zweiten Halbgruppe auf einmal verifiziert. Wenn keine ungültige Signatur gefunden wird, werden die Signaturen der verbleibenden 2M-1 oder 2M-2 Unterzeichner der ersten oder der zweiten Halbgruppe auf einmal verifiziert, wonach der gleiche Vorgang wiederholt wird. Auf diese Weise kann die unautorisierte Signatur in M+1 Durchläufen einer Verifikationsverarbeitung ermittelt werden.
Bei einem anderen System zur Ausführung der vorliegenden Erfindung ist gemäß Darstellung in Fig. 1B eine Zentralvorrichtung 100 mit L Unterzeichnervorrichtungen 30 1, 30 2, . . ., 30 L und einer Verifizierervorrichtung 800 über Kanäle 400 garantierter Sicherheit verbunden, wie dies auch bei Fig. 1A der Fall ist. Die Unterzeichnervorrichtungen 30 1, 30 2, . . ., 30 L sind hier jedoch je direkt mit der Verifizierervorrichtung 800 über einen jeweiligen Kanal 500 nicht garantierter Sicherheit verbunden. Bei diesem System bringt jeder Unterzeichner seine Signatur unter Verwendung einer Signaturfunktion an einem jeweiligen Dokument an (der i-te Unterzeichner an dem Dokument m unter Verwendung einer Signaturfunktion Sgi) und sendet das unterzeichnete Dokument (im Fall des i-ten Unterzeichners als yi = Sgi (mi)) an den Verifizierer 800, der die empfangene Information (yi = Sgi (mi) für i = 1, . . ., L) en-bloc verifiziert.
Nachfolgend werden der i-te, der (i-1)-te, der (i+1)-te, etc. Unterzeichner entsprechend der Unterzeichnervorrichtung 30 i, 30 i-1, 30 i+1, etc. zur Vereinfachung als Unterzeichner i, Unter­ zeichner (i-1), Unterzeichner (i + 1) etc. bezeichnet. Dabei gilt im Rahmen dieser Beschreibung 1 ≦ i ≦ L, soweit nichts anderes ausgeführt ist.
Die Prinzipien der Verfahren zur Durchführung einer Block-Signaturverifikation von Signaturen mehrerer Unterzeichner bei den obigen beiden Systemen gemäß der vorliegenden Erfindung werden nachfolgend beschrieben.
Schritt S1: Die Zentrale 100 veröffentlicht (sendet an alle Unterzeichner und an den Verifizierer) öffentliche Parameterinformation enthaltend einen Parameter q für jeden Unterzeichner zur Erzeugung der Signaturfunktion Sgi und einen Parameter β = G1(q), der unter Ver­ wendung des Parameters q mit einer Funktion G1 erzeugt wird.
Schritt S2: Jeder Unterzeichner i erzeugt eine erste Zufallszahl si als Geheiminformation und behält sie in einem Speicher. Weiterhin erzeugt der Unterzeichner i Information Ii = G2(si, β) mit einer Funktion G2 unter Verwendung des öffentlichen Parameters β und der ersten Zufallszahl si und trägt die Information Ii, zwei Einweg-Funktionen fi und hi zur Verwendung durch den Unterzeichner i sowie seine Identifikationsinformation IDi als öffentliche Unterzeichnerinformation {IDi, Ii, fi, hi} bei der Zentrale 100 ein.
Schritt S3: Der Unterzeichner i erzeugt eine zweite Zufallszahl ri und setzt den Parameter β und die zweite Zufallszahl ri in eine Funktion Φ ein, wodurch Information Xi = Φ(ri, β) erzeugt wird. Information enthaltend die Information Xi wird als X'i eingestellt.
Schritt S4: Der Unterzeichner i verwendet Dokumentinformation m'i, die ein zu unterzeichnendes Dokument mi enthält, und die Information X'i zur Erzeugung mittels der beiden Einweg- Funktionen fi und hi von
ei = fi(X'i, m'i) (8)
di = hi(X'i, m'i) (9)
Schritt S5: Der Unterzeichner i erzeugt die folgende Signatur von Information enthaltend ei, di, si, ri und y'i-1 mit der Signaturfunktion Sgi
yi = Sgi(ei, di, si, ri, y'i-1), (10)
setzt dann die Identifikationsinformation IDi enthaltende Information als Identifikations­ information ID'i und sendet Information {ID'i, X'i, m'i, yi} einzeln oder über die anderen Unterzeichner an den Verifizierer 800 als die letzte Bestimmung. Wenn einzeln an den Verifizierer gesendet wird, ist y'i-1 eine leere Menge, während wenn über die anderen Unterzeichner gesendet wird, y'i-1 so eingestellt wird, daß y'i-1 = yi-1.
Schritt S6: Der Verifizierer 800 errechnet aus der öffentlichen Information {IDi, Ii, fi, hi} die Information Ii entsprechend der Identifikationsinformation IDi, die in ID'i in der empfan­ genen {ID'i, X'i, m'i, yi} enthalten ist, sowie die beiden Einweg-Funktionen fi und hi, und berechnet ei und di unter Verwendung der Einweg-Funktionen fi und hi und der empfangenen Informationen X'i und m'i gemäß Gleichungen (8) und (9). Weiterhin extrahiert der Verifizierer 800 Xi aus der empfangenen Information X'i und führt dann eine Berechnung di*Xi zwischen di und Xi sowie eine Berechnung ei*Ii zwischen ei und Ii aus und berechnet den folgenden Wert anhand der Ergebnisse der obigen Berechnungen unter Verwendung einer Funktion V:
Z' = V((Xi*di), (Ii*ei)|i = 1, . . ., L) (11).
Die mit dem Symbol * bezeichnete Rechenvorschrift kann eine Potenzierung, Multiplikation oder ähnliches sein.
Schritt S7: Der Verifizierer 800 setzt weiterhin das Rechenergebnis yi*β zwischen yi und β in eine Funktion Γ zur Errechnung von W = Γ (yi*β) ein und führt eine Signaturverifikation durch, indem geprüft wird, ob W = Z'. Wenn dies der Fall ist, entscheidet der Verifizie­ rer, daß alle Signaturen gültig sind.
Im Fall der Durchführung einer Block-Signaturverifikation mittels des oben beschriebenen Verfahrens bei dem Überlagerungs- oder dem Mehrfachsignatursystem von Fig. 1A wird die Information y'i-1 = yi-1 gesetzt und X'i, m'i und ID'i wie folgt eingestellt:
X'i = (X'i-1, Xi) (12)
m'i = (m'i-1, mi) (13)
ID'i = (ID'i, IDi-1) (14).
Der Unterzeichner i empfängt Information {ID'i-1, X'i-1, mi-1, yi-1} von dem vorhergehenden Unterzeichner (i-1), führt dann die Schritte S3 bis S5 aus und sendet Information (ID'i, X'i, m'i, yi} an den nächsten Unterzeichner (i + 1). Der letzte Unterzeichner führt die Schritte S3 bis S5 aus und sendet Information {ID'L, X'L, m'L, yL} an den Verifizierer 800.
Wenn man bei dem Voranstehenden m'1 = m1 = m und m2 = m3 = . . . = mL = "leere Menge" einstellt, d. h. m'2 = m'3 = . . . = m'L = m einstellt, erhält man die oben genannte Mehrfachsignatur.
Im Fall der Block-Verifikation von Signaturen bei dem Einzelsignatursystem von Fig. 1B dadurch, daß man den Prozeduren der oben erwähnten Schritte S1 bis S7 folgt, werden y'i-1 =leere Menge, X'i = Xi, m'i = mi und ID'i = IDi eingestellt, und der Unterzeichner i sendet die Information {IDi, Xi, mi, yi}, die mittels der Schritte S3, S4 und S5 erzeugt wird, direkt an den Verifizierer 800.
Wie oben in Verbindung mit Schritt S4 beschrieben, erzeugt gemäß der vorliegenden Erfindung jeder Unterzeichner zwei Informationen oder Komponenten ei und di unter Verwendung der beiden Einweg-Funktionen fi und hi und erzeugt die Information yi, die diese Komponenten enthält, während die Signaturverifikation unter Berücksichtigung dieser beiden Informationen ei und di durchgeführt wird. Somit kann die Verifikation auf der Basis einer Informationsumlauf­ runde nach Unterzeichnung durch die Unterzeichner 1 bis L durchgeführt werden. Weiterhin ist die Sicherheit garantiert. Im Gegensatz dazu, führt, da das oben beschriebene Signaturverifika­ tionsverfahren von Schnorr die Signatur y unter Verwendung der mittels einer Einweg-Funktion f errechneten e-Komponente und der Zufallszahlen r und s gemäß den Gleichungen (3) und (4) ableitet, die direkte Anwendung dieses Verfahrens auf das Überlagerungssignaturschema zu einer Vergrößerung der Informationsmenge {IDi, Xi, yi}, die von jedem Unterzeichner an den nächsten gesandt wird, wodurch unvermeidlich der von dem Verifizierer zur Signaturverifikation zu bewältigende Rechenaufwand erhöht wird.
Als nächstes folgt eine Beschreibung eines konkreten Verfahrens zur Ausführung des oben beschriebenen grundsätzlichen Block-Signaturverifikationsschemas bei den Systemen der Fig. 1A und 1B, sowie von Beispielen der einzelnen Unterzeichnungsvorrichtungen und der Verifizie­ rervorrichtung zur Verwendung in dem Schema.
Ausführungsbeispiel 1
Dieses Ausführungsbeispiel betrifft die Anwendung der Überlagerungssignatur und der Block- Signaturverifikation entsprechend den Prinzipien der vorliegenden Erfindung auf die Schnorr- Schemata in dem System von Fig. 1A. Die Idee der Verwendung einer zweiten Exponentialkom­ ponente, die hier erwähnt wird, ist auch in weitem Umfang anwendbar auf die Fiat-Shamir- Schemata und auf digitale Signaturschemata, die interaktive Prüfungen einschließlich der Fiat- Shamir-Schemata verwenden. Beispiele der interaktiven Prüfungen einschließlich Fiat-Shamir- Schemata oder von ähnlichen sind in der oben erwähnten Literaturstelle M. Tompa und H. Woll beschrieben.
Zum Zeitpunkt seiner Einschreibung im System erzeugt jede Unterzeichner i Geheiminformation si und öffentliche Information und trägt öffentliche Information (ID, I) in einem öffentlichen Informationsverwaltungsverzeichnis der Zentrale 100 ein. Die Zentrale 100 sendet die öffentliche Information nach Bedarf an die Unterzeichner (Unterzeichnervorrichtungen 30 1, . . ., 30 L) und den Verifizierer 800.
Als erstes soll die anfängliche Informationseinstellverarbeitung durch die Zentrale 100 zum Zeitpunkt des Systemstarts beschrieben werden (siehe Fig. 2). Diese Verarbeitung ist dazu vorgesehen, einen einzigartigen oder eindeutigen Wert {p, q, g} des Systems zu veröffentlichen.
(1-A) Anfängliche Informationseinstellverarbeitung (durch die Zentrale beim Systemstart)
Schritt S1: Die Zentrale 100 erzeugt mittels eines Primzahlgenerators 110 eine Primzahl p und mittels eines Dividierers 120 eine Primzahl q, die ein Maß von p-1 ist.
Schritt S2: Die Zentrale 100 erzeugt ein Grundelement α von (Z/pZ)* mittels eines Grundele­ mentgenerators 130 und eine Ganzzahl g eines Grads oder einer Ordnung q unter Ver­ wendung eines Modulo-Exponentiators 140 gemäß der folgenden Gleichung:
g = α(p-1)/q mod p (15)
Die rechte Seite der Gleichung (15) stellt die zuvor erwähnte Funktion G1 dar, während g auf der linken Seite β entspricht.
Schritt S3: Die öffentliche Information {p, q, g} wird an die Unterzeichnervorrichtungen 30 1, . . ., 30 L und an die Verifizierervorrichtung 800 über die sicheren Kanäle 400 gesandt.
(1-B) Verarbeitung beim Unterzeichner i für dessen Einschreibung im System
Als nächstes erfolgt eine Beschreibung der Verarbeitung, die der Unterzeichner i durchführt, wenn er sich im System einschreibt (siehe Fig. 3, die die Unterzeichnervorrichtung 30 i entspre­ chend dem Unterzeichner i zeigt). Im Speicher 33 jeder Unterzeichnervorrichtung 30 i ist die von der Zentrale 100 empfangene öffentliche Information {p, q, g} gespeichert.
Schritt S4: Der Unterzeichner i erzeugt die Zufallszahl si mittels eines Zufallsgenerators 31 und gibt sie in einen Modulo-Exponentiator 32 zusammen mit den öffentlichen Informatio­ nen g und p ein. Daraufhin wird die öffentliche Information Ii gemäß nachstehender Gleichung (16) berechnet:
Ii = gSi mod p (16).
Die rechte Seite von Gleichung (16) stellt die oben erwähnte Funktion G2dar.
Schritt S5: Der Unterzeichner i sendet die Identifikationsinformation IDi, die öffentliche Informa­ tion Ii und die Einweg-Funktionen fi und hi über den sichere Kanal 400 an die Zentrale 100, um sie als öffentliche Information {IDi, Ii, fi, hi} registrieren zu lassen. Der Unter­ zeichner i hält die Zufallszahl si als geheime Information in dem Speicher 33.
Die anderen Unterzeichner (1 bis (i-1) und (i+1) bis L) führen dieselbe Verarbeitung aus, wenn sie Teilnehmer des Systems werden. Die Zentrale 100 liefert die öffentliche Information {IDi, Ii, fi, hi} auf irgendeine Weise, beispielsweise in der Form eines öffentlichen Verzeichnisses oder einer öffentlichen Datei, an den Verifizierer 800.
Bei der folgenden Beschreibung wird die unterzeichnete Version des Dokuments m'i, die von dem Unterzeichner i geliefert wird, durch {ID'i, Xi, m'i, yi} identifiziert. Es erfolgt nun eine Beschrei­ bung des Falls, wo der Unterzeichner (i-1) die zu unterzeichnende Nachricht sendet und der Unterzeichner i seine Signatur an der Nachricht anbringt und die unterzeichnete Nachricht an den nächsten Unterzeichner (i+1) sendet. Wenn L Unterzeichner eine Überlagerungssignatur erzeugen, braucht lediglich i schrittweise um eins von 1 auf L erhöht zu werden und die folgende Prozedur wiederholt zu werden. In diesem Fall wird der Unterzeichner (L + 1) als der Verifizierer betrachtet, ID'0 = leere Menge, X'0 = leere Menge und y0 = 0.
(1-C) Verarbeitung beim Unterzeichner i zur Signaturerzeugung
Fig. 4 zeigt eine Interaktionsfolge einer Nachricht und Fig. 5 den funktionalen Aufbau der Unterzeichnervorrichtung 30 i. Wenn der Unterzeichner i eine Nachricht {ID'i-1, X'i-1, m'i-1, yi-1} von dem Unterzeichner (i-1) erhält, führt er die nachstehend beschriebene Signaturerzeugungs­ verarbeitung aus.
Schritt S6: Der Unterzeichner i erzeugt die Zufallszahl ri mittels eines Zufallsgenerators 310 und gibt sie zusammen mit den öffentlichen Informationen {p, g}, die im Speicher 33 ge­ speichert sind, in einen Modulo-Exponentiator 320 ein, der die Funktion Φ berechnet, und in welchem Xi gemäß Gleichung (17) berechnet wird:
Xi = Φ(ri, g) = gri mod p (17).
Schritt S7: Der Unterzeichner i verwendet einen fi-Funktionsrechner 330 und einen hi-Funktions­ rechner 340 zur Errechnung zweier Informationen ei bzw. di gemäß
ei = fi(X'i, m'i) (18)
di = hi(X'i, m'i) (19).
In diesem Fall gilt X'i = (X'i-1, Xi) oder m'i = (m'i-1, mi), wobei mi das vom dem Unter­ zeichner i zu unterzeichnende Dokument ist.
Schritt S8: Der Unterzeichner i gibt diese Informationen ei, di und die Zufallszahl ri in einen Modulo-Exponentiator 350 und dann in einen Modulo-Addierer 360 zusammen mit der öffentlichen Information q und der geheimen Information si ein, wodurch gemäß Glei­ chung (20) die Signatur erzeugt wird:
yi = (yi-1 + diri + eisi) mod q (20)
Die rechte Seite der Gleichung (20) stellt die Signaturfunktion Sgi in Gleichung (10) dar.
Schritt S9: Der Unterzeichner i setzt ID'i = (IDi-1, IDi) und sendet Information {ID'i, X'i, m'i, yi} an den nächsten Unterzeichner (i+1).
(1-D) Verarbeitung beim Verifizierer zur Signaturverifikation
Fig. 6 zeigt den funktionalen Aufbau der Verifizierervorrichtung 800. Wenn der Verifizierer die Nachricht {ID'L, X'L, m'L, yL} von dem Unterzeichner L (i = L) empfängt, verifiziert er die Gültigkeit der einzelnen Signaturen mittels der nachfolgend beschriebenen Verarbeitung.
Schritt S10: Die Einweg-Funktionen fi und hi, die in der öffentlichen Information {IDi, Ii, fi, hi} enthalten sind, welche von der Zentrale 100 geliefert wird, werden in Einweg-Funk­ tionsrechnern 810 bzw. 820 eingestellt. Die ersten i Komponenten der Information X'L werden zur Bildung von X'i verwendet, und die ersten i Komponenten der Information m'L werden zur Bildung von m'i verwendet. Die Informationen X'i und m'i, die auf diese Weise erhalten werden, werden in dem fi-Funktionsrechner 810 und dem hi-Funktions­ rechner 820 eingestellt, mit denen die Komponenten ei bzw. di durch die nachstehen­ den Gleichungen errechnet werden:
ei = fi (X'i, m'i) = fi (X1, X2, . . ., Xi, {m1, m2, . . ., mi}) (21)
di = hi (X'i, m'i) = hi (X1, X2, . . ., Xi, {m1, m2,. . ., mi}) (22).
Schritt S12: Die Information Ii wird aus der öffentlichen Information {IDi, Ti, fi, hi} abgeleitet, die von der Zentrale 100 geliefert wird, und außerdem wird die Information Xi aus der Information X'L abgeleitet. Diese Informationen Ii und Xi werden zusammen mit den Komponenten ei und di sowie der öffentlichen Information p in einen Multikomponen­ ten-Modulo-Exponentiator 830 eingegeben, in welchem gemäß nachstehender Glei­ chung Z' errechnet wird:
Z' = X1 d1 I1 e1 . . . XL dL IL eL mod p (23).
Die rechte Seite der Gleichung (23) entspricht der Funktion V((Xi*di), (Ii*ei)), auf die zuvor in Verbindung mit den Prinzipien der vorliegenden Erfindung verwiesen wurde.
Schritt S12: Die Information yL und die öffentlichen Informationen p und g, die in dem Speicher 88 gespeichert sind, werden in einen Modulo-Exponentiator 840 eingegeben, um mittels der nachstehenden Gleichung (24) W zu errechnen:
W = gyL L mod p (24).
Schritt S13: Z' und W werden in einen Komparator 850 eingegeben, wo sie miteinander verglichen werden um sicherzustellen, daß
W = Z' (25).
Wenn sie einander gleich sind, wird davon ausgegangen, daß die Dokumente (m1, . . ., mL) ordnungsgemäß jeweils durch die L autorisierten Unterzeichner unterzeichnet wurden.
(1-E) Verbesserter Quadrier-und-Multiplizier-Algorithmus für Mehrfachkomponenten
Nachstehend erfolgt eine Beschreibung eines verbesserten Quadrier-und-Multiplizier-Algorithmus für die Berechnung von Gleichung (23) durch den Multikomponenten-Modulo-Exponentiator 830, wie etwa eine Multikomponenten-Modulo-Potenzierung wie sie durch xayb mod N ausgedrückt ist.
Schritt 1: z = 1
Schritt 2: Die folgende Verarbeitung wird für den Index i = 0, 1, . . ., |a|-1 ausgeführt (wobei |a| die Anzahl von Bits von a repräsentiert).
Schritt 2-1: z = z2 mod N (26)
Schritt 2-2:
wenn (ai, bi) = (1, 0), z = zx mod N (27)
wenn (ai, bi) = (0, 1), z = zy mod N (28)
wenn (ai, bi) = (1, 1), z = z (xy) mod N (29)
wobei ai der Wert, 0 oder 1, eines i-ten Bits ist und dasselbe für bi gilt.
Schritt 3: z wird ausgegeben.
Durch Verwendung des obigen Algorithmus mit x = Xi, a = di, y = Ii , b = ei und N = p, ist es möglich Z1Z2 mod p zu erhalten (wobei Z1 = Xi di Ii ei mod p).
Berücksichtigt man den Weg zur Erzeugung von yL, gilt
gyL ∼ gyL-1 (grL )dL (gsL )eL ∼ gyL-1 XL dL IL eL ∼ . . . ∼ X1 d1 I1 e1 . . . XL dL IL eL (mod p) (30)
Wenn somit die Dokumente {m1, . . ., mL} den obigen Test durch den Komparator 850 bestehen, akzeptiert der Verifizierer 800 die Dokumente als von den L autorisierten oder gültigen Unter­ zeichnern ordnungsgemäß unterzeichnet.
Ein Verfahren zum Implementieren des Multikomponenten-Quadrier-und-Multiplizier-Algorithmus mit höherer Effizienz ist beispielsweise beschrieben in D. E. Knuth, "The Art of Computer Programming, Vol. 2, Seminumerical Algorithms", Addison-Wesley Publishing, (1981), P. 456, Exercises 27 und 35.
Gemäß dem in der voranstehenden Literaturstelle vorgeschlagenen Verfahren wird, wenn s als Speichereinheit zur Speicherung von Ergebnissen einer Vorberechnung in eine Tabelle eingestellt wird (s = 2 bei dem oben beschrieben Multikomponenten-Quadrier-und-Multiplizier-Algorithmus), die Anzahl von Multiplikationen (einschließlich Modulo-p-Rechnungen) wie folgt:
(2s-s-1) [(2L+1)/s] + [(2L+1)/s]|q|-1 + |q|-1
dabei ist unter [b/a] die kleinste ganze Zahl zu verstehen, die größer als b/a ist.
Es ist auch möglich, das System so auszugestalten, daß jeder Unterzeichner i vor Erzeugung seiner Signatur prüft, ob die von ihm empfangene Nachricht {ID'i-1 X'i-1 m'i-1, yi-1} von den vorhergehenden Unterzeichnern 1 bis (i-1) ordnungsgemäß unterzeichnet wurde. Wenn dies der Fall ist, fügt er seine Signatur der verifizierten Nachricht bei. In diesem Fall liefert die Zentrale 100 die öffentliche Information (IDi, Ii, fi, hi) für i = 1, . . ., (i-1) vorab an den Unterzeichner i, und die Verifikation kann in gleicher Weise wie in den Schritten S10 bis S13 bei dem Verifizierer 800 durchgeführt werden. In diesem Fall wird L in den Schritten S10 bis S13 durch (i-1) ersetzt.
Die Unterzeichnervorrichtungen und die Verifizierervorrichtungen führen die oben beschriebene Verarbeitung gewöhnlich mit Hilfe von Computern aus.
Wie zuvor erwähnt, ist die vorliegende Erfindung anwendbar nicht nur auf die Schnorr-Schemata, sondern auch auf die Fiat-Shamir-Schemata und auf digitale Signatur-Schemata, die interaktive Prüfungen einschließlich der Fiat-Shamir-Schemata verwenden. Demgemäß kann das Verfahren der vorliegenden Erfindung allgemein wie folgt zusammengefaßt werden:
Die Systemparameter, die veröffentlicht werden, sind p zur Angabe der Anzahl von Elementen der Gruppe, ein Element g der Gruppe, mit dem eine Gruppenberechnung beginnt, und eine positive ganze Zahl q derart, daß wenn das Element g q-mal berechnet wird, die Rechnung zu dem Element g zurückkehrt.
Der Unterzeichner i erzeugt die Zufallszahl si mittels des Zufallsgenerators im Moment seiner Einschreibung in das System und gibt die Zufallszahl si und die öffentlichen Informationen g und p in einen Gruppenrechner ein, in welchem das Element g si-mal gerechnet wird, um die öffentliche Information Ii zu berechnen; und
veröffentlicht die öffentliche Information Ii und die Einweg-Funktionen fi und hi zusam­ men mit der Identifikationsinformation IDi, behält jedoch die Zufallszahl si als geheime Informa­ tion.
Bei der Signaturerzeugungsverarbeitung nach Empfang der unterzeichneten Nachricht {ID'i-1, X'i-1, m'i-1, yi-1} vom Unterzeichner (i-1) auf der Basis der Nachricht mi-1, macht der Unterzeichner i folgendes:
er erzeugt die Zufallszahl ri unter Verwendung des Zufallsgenerators, gibt sie dann zusammen mit den öffentlichen Informationen p und g in den Gruppenrechner ein, um das Element g ri-mal zum Erhalt der Information Xi zu rechnen, und setzt X'i = (X'i-1, Xi) und m'i = (m'i, mi);
er berechnet die Komponenten ei und di durch
ei = fi(X'i, m'i)
di = hi(X'i, m'i)
unter Verwendung des fi-Funktionsrechners und des hi-Funktionsrechners; und
er gibt die Information ei, di und ri zusammen mit der öffentlichen Information q und der geheimen Information si in einen Exponentialkomponenten-Multiplizierer und einen Exponential­ komponenten-Addierer ein, worin yi mit der Signaturfunktion Sgi errechnet wird, und zwar durch
yi = (yi-1 + diri + eisi) mod q,
und er setzt dann ID'i = (ID'i-1 IDi) und sendet die Nachricht {ID'i, X'i, m'i, yi} an den nächsten Unterzeichner (i + 1).
Andererseits bildet der Verifizierer, wenn er die Nachricht {ID'L, X'L, m'L, yL} von dem Unterzeichner L empfängt, X'i aus den ersten i Komponenten der Information X'L und m'i aus den ersten i Komponenten der Information m'L und gibt diese Informationen X'i und m'i dann in den fi-Funktionsrechner und den hi-Funktionsrechner ein, worin
ei = fi(X'i, m'i)
di = hi(X'i, m'i)
berechnet werden, um für jedes i (1 ≦ i ≦ L) die Komponenten ei und di zu erhalten. Der Verifizie­ rer leitet dann die entsprechende öffentliche Information Ii aus der IDi-Komponente in der Information ID'L und die Information Xi aus der X'L-Komponente ab und gibt diese Informationen Ii und Xi sowie die oben erwähnten Komponenten ei und di und die öffentliche Information p in den Multikomponenten-Gruppenrechner ein, in welchem Z' durch sequentielles di-faches Rechnen von Xi und ei-faches Rechnen von Ti für die Werte i von 1 bis L erhalten wird;
er gibt yL und die öffentlichen Informationen p und g in den Gruppenrechner zur yL-fachen Berechnung von g ein, um dadurch W zu erhalten; und
er gibt Z' und W in den Komparator ein, um zu prüfen, ob W ∼ Z'.
Wenn die beiden übereinstimmen, erkennt der Verifizierer, daß das Dokument {m1, . . ., mL} von den L autorisierten Unterzeichnern ordnungsgemäß unterzeichnet wurde.
Auch bei diesem typischen Schema sind jede Unterzeichnervorrichtung, eine Benutzervorrichtung und ein Aufzeichnungs- oder Speichermedium in ähnlicher Weise aufgebaut.
Während bei dem Voranstehenden gilt ID'i = (ID'i-1 IDi), ist es auch möglich, die Einstellung so vorzusehen, daß ID'i =(ID'i-1, Ii). Dies erspart der Verifizierervorrichtung die Mühe der Suche nach der Identifikationsinformation IDi für die öffentliche Information Ii.
Ausführungsbeispiel 2
Wenn bei dem Überlagerungssignaturschema und der Block-Signaturverifikation dafür, die oben unter Bezugnahme auf die Fig. 2 bis 6 beschrieben wurden, das von dem (i=1)-ten Unterzeich­ ner entsprechend der Unterzeichnervorrichtung 30 1 zu unterzeichnende Dokument m1 auf in gesetzt wird und die Dokumente m2, . . ., mL in den Unterzeichnervorrichtungen 30 2 bis 30 L alle leer gemacht werden, werden die Unterzeichner 1 bis L das Dokument m auf Mehrfachsignatur­ basis unterzeichnen. Ein Ausführungsbeispiel dieses Falles wird nachfolgend beschrieben. Dabei geht die Beschreibung von der Verwendung des Schnorr-Schemas aus.
Der Systemaufbau bei diesem Ausführungsbeispiel ist der gleiche wie in Fig. 1A, und die Zentrale 100 ist ebenfalls identisch mit der in Fig. 2 gezeigten aufgebaut. Außerdem führt die Zentrale 100 dieselbe Verarbeitung wie bei dem ersten Ausführungsbeispiel aus und erzeugt öffentliche Information {p, q, g} mittels der anfänglichen Informationseinstellverarbeitung und liefert sie an die Unterzeichnervorrichtungen 30 1 bis 30 L sowie die Verifizierervorrichtung 800.
Die Verarbeitung für den Unterzeichner i zum Einschreiben in das System ist ebenso die gleiche wie im Fall des ersten Ausführungsbeispiels, weshalb auch die Unterzeichnervorrichtung 30 i gleich der in Fig. 3 gezeigten ist. Der Unterzeichner i erzeugt die öffentliche Information Ii mit dieser Verarbeitung und sendet sie sowie die Einweg-Funktionen fi und hi und die Identifikations­ information IDi über den sicheren Kommunikationskanal 400 an die Zentrale 100, damit diese Information dort als die öffentliche Information {IDi, Ii, fi, hi} registriert wird. Zugleich hält der Unterzeichner i si als geheime Information im Speicher 33.
Die anderen Unterzeichnervorrichtungen führen die gleiche Verarbeitung aus, wenn sie sich in das System einschreiben.
Bei diesem Ausführungsbeispiel wird die unterzeichnete Nachricht des Dokuments m, die von dem Unterzeichner i ausgegeben wird, durch {ID'i, X'i, m, yi} repräsentiert. Der Unterzeichner (i-1) sendet die zu unterzeichnende Nachricht, und der Unterzeichner i erzeugt seine Signatur der Nachricht und fügt sie dieser bei und sendet die unterzeichnete Nachricht an den nächsten Unterzeichner (i+1). Wenn L Unterzeichner nacheinander die Nachricht unterzeichnen, wird i schrittweise um eins von 1 auf L erhöht und die nachfolgende Prozedur wiederholt. Bei diesem Ausführungsbeispiel wird der Unterzeichner (L+1) als Verifizierer betrachtet. In diesem Fall gilt ID'0 = leere Menge, X'0 = leere Menge und y0 = 0.
(2-A) Verarbeitung beim Unterzeichner i zur Signaturerzeugung
Fig. 7 zeigt eine Interaktionsfolge einer Nachricht, und Fig. 8 zeigt den funktionalen Aufbau der Unterzeichnervorrichtung 30 i. Nach Empfang der Nachricht {ID'i-1, X'i-1, m, yi-1} von dem Unterzeichner (i-1) führt der Unterzeichners i die folgende Signaturerzeugungsverarbeitung aus. In dem Speicher 33 sind die öffentliche Information {p, q, g}, die von der Zentrale 100 erhalten wird, die geheime Zufallszahl si und die Identifikationsinformation IDi gespeichert.
Schritt S1: Der Unterzeichner i erzeugt die Zufallszahl r1 mit dem Zufallsgenerator 310 und gibt sie in den Modulo-Exponentiator 320 zusammen mit den öffentlichen Informationen p und g ein, so daß Xi unter Verwendung der Funktion Φ gemäß der nachstehenden Glei­ chung (31) berechnet wird:
Xi = Φ(ri, g) = gri mod p (31)
Schritt S2: Der Unterzeichner i verwendet den fi-Funktionsrechner 330 und den hi-Funktions­ rechner 340 zur Berechnung der beiden Informationen ei bzw. di mittels der nachste­ henden Gleichungen
ei = fi(X'i, m) (32)
di = hi(X'i, m) (33)
wobei X'i = (X'i-1, Xi).
Schritt S3: Der Unterzeichner i gibt diese Informationen ei, di und ri in den Modulo-Exponentiator 350 und dann in den Modulo-Addierer 360 zusammen mit der öffentlichen Information q und der geheimen Information si ein, um dadurch mit der Signaturfunktion Sgi yi wie folgt zu erzeugen:
yi = Sgi (ei, di, si, ri, yi-1) = (yi-1 + diri + eisi) mod q (34).
Schritt S4: Der Unterzeichner i setzt ID'i = (ID'i-1, IDi) und sendet die Nachricht {ID'i, X'i, m, yi} an den nächsten Unterzeichner (i+1).
(2-B) Verarbeitung beim Verifizierer zur Signaturverifikation
Fig. 9 zeigt den funktionalen Aufbau der Verifizierervorrichtung 800. Wenn der Verifizierer die Nachricht {ID'L, X'L, m, yL} von dem Unterzeichner L empfängt, verifiziert er die Gültigkeit jeder Signatur mittels der nachstehend beschriebenen Verarbeitung.
Schritt S5: Der Verifizierer 800 bildet X'i durch die ersten i Komponenten der Information X'L und gibt sie und das Dokument m in den fi-Funktionsrechner 810 und den hi-Funktionsrech­ ner 820 ein, worin die Komponenten ei bzw. di mittels der nachstehenden Gleichungen berechnet werden:
ei = fi(X'i, m) = fi (X1, . . ., Xi, m) (35)
di =hi(X'i, m)= hi (X1, . . ., Xi, m) (36)
Schritt S6: Der Verifizierer 800 leitet Information Ii von der IDi-Komponente in der Information ID'L ab und extrahiert die Xi-Komponente in der Information X'L und gibt diese Kompo­ nenten in den Multikomponenten-Modulo-Exponentiator 830 zusammen mit den Kom­ ponenten ei und di und der öffentlichen Information p ein, so daß Z' mit der Verifika­ tionsfunktion V gemäß nachstehender Gleichung berechnet wird:
Z' = V(Xi*di), (Ii*ei) | i = 1, . . ., L) = X1 d1 I1 e1 . . . XL dL IL eL mod p (37)
Schritt S7: Der Verifizierer 800 gibt die Information yL zusammen mit der öffentlichen Informa­ tion {p, g}, die im Speicher 88 gespeichert ist, in den Modulo-Exponentiator 840 ein, um W mit der Funktion Γ in folgender Weise zu berechnen:
W = Γ(yL*g) = gyL modp (38)
Schritt S8: Der Verifizierer 800 gibt Z' und W in einen Komparator 850 ein, wo sie miteinander verglichen werden um zu sehen, ob W = Z'.
Wenn diese Bedingung erfüllt ist, wird davon ausgegangen, daß das Dokument in von den L autorisierten Unterzeichnern ordnungsgemäß unterzeichnet wurde.
Ein verbesserter Quadrier-und-Multiplizier-Algorithmus zur Berechnung von xayb mod N in dem Multikomponenten-Modulo-Exponentiator kann der gleiche wie der zuvor in Verbindung mit dem ersten Ausführungsbeispiel beschriebene sein.
Unter Berücksichtigung des Weges der Erzeugung von yL gilt:
gyL ∼ gyL-1 (grL )dL (gsL )eL ∼ gyL-1 XL dL IL eL ∼ . . . ∼ X1 d1 I1 e1 . . . XL dL IL eL (mod p) (39).
Wenn somit das Dokument in den oben genannten Test durch den Komparator 850 besteht, akzeptiert die der Verifizierer 800 das Dokument in als ordnungsgemäß von den L autorisierten Unterzeichnern unterzeichnet.
Es ist auch möglich, das System so auszugestalten, daß der Unterzeichner i vor seiner Signa­ turerzeugung prüft, ob die empfangene Nachricht {ID'i-1, X'i-1, m, yi-1} von den vorhergehenden Unterzeichnern 1 bis (i-1) ordnungsgemäß unterzeichnet wurde, und, wenn dies der Fall ist, seine Signatur an der verifizierten Nachricht anbringt. In diesem Fall kann die Verifikation in gleicher Weise wie in den Schritten S10 bis S13 bei dem Verifizierer 800 ausgeführt werden. Dabei wird L in den Schritten S10 bis S13 durch (i-1) ersetzt.
Die Unterzeichnervorrichtungen und die Verifizierervorrichtung führen die oben beschriebene Verarbeitung in der Regel mit Hilfe von Computern aus.
Wie zuvor erwähnt, ist dieses zweite Ausführungsbeispiel nicht nur auf die Schnorr-Schemata anwendbar, sondern auch auf die Fiat-Shamir-Schemata und digitale Signaturschemata, die die interaktiven Prüfungen einschließlich der Fiat-Shamir-Schemata verwenden. Demgemäß kann das Verfahren gemäß der vorliegenden Erfindung allgemein wie folgt zusammengefaßt werden:
Die Systemparameter, die veröffentlicht werden, sind p zur Angabe der Anzahl von Elementen der Gruppe, ein Element g der Gruppe, mit dem eine Gruppenberechnung beginnt, und eine positive ganze Zahl q derart, daß, wenn das Element g q-mal berechnet wird, die Rechnung zu dem Element g zurückkehrt.
Der Unterzeichner i erzeugt die Zufallszahl si mittels des Zufallsgenerators bei seiner Einschreibung in das System und gibt die Zufallszahl si und die öffentlichen Informationen g und p in einen Gruppen­ rechner ein, in welchem das Element g si-mal gerechnet wird, um die öffentliche Information Ii zu berechnen; und
veröffentlicht die öffentliche Information Ii und die Einweg-Funktionen fi und hi zusam­ men mit der Identifikationsinformation IDi, behält jedoch die Zufallszahl si als geheime Informa­ tion.
Bei der Signaturerzeugungsverarbeitung nach Empfang der unterzeichneten Nachricht {ID'i-1 X'i-1, m, yi-1} von dem Unterzeichner (i-1) auf der Basis der Nachricht m, macht der Unterzeichner i folgendes:
er erzeugt die Zufallszahl r unter Verwendung des Zufallsgenerators, gibt sie dann zusammen mit den öffentlichen Informationen p und g in den Gruppenrechner ein, um das Element g ri-mal zum Erhalt der Information Xi zu rechnen, und setzt X'i = (X'i-1, Xi);
er berechnet die Komponenten ei und di durch
ei = fi(X'i, m)
di = hi(X'i, m)
unter Verwendung des fi-Funktionsrechners und des hi-Funktionsrechners; und
er gibt die Informationen ei, di und ri zusammen mit der öffentlichen Information q und der geheimen Information si in einen Exponentialkomponenten-Multiplizierer und Exponential­ komponenten-Addierer ein, worin yi mit der Signaturfunktion Sgi errechnet wird, und zwar durch
yi = Sgi(ei, di, si, ri, yi-1) = (yi-1 + diri + eisi) mod q,
und er setzt dann ID'i =(ID'i-1 , IDi) und sendet die Nachricht {ID'i, X'i, m, yi} an den nächsten Unterzeichner (i+1).
Andererseits bildet der Verifizierer 800, wenn er die Nachricht {ID'L, X'L, m, yL} von dem Unterzeichner L empfängt, X'i aus den ersten i Komponenten der Information X'L und gibt die Informationen X'i und in dann in den fi-Funktionsrechner und den hi-Funktionsrechner ein, worin
ei = fi(X'i, m)
di = hi(X'i, m)
berechnet werden, um für jedes i die Komponenten ei und di zu erhalten. Der Verifizierer leitet dann die entsprechende öffentliche Information Ii aus der IDi-Komponente in der Information ID'L und die Information Xi aus der X'L-Komponente ab und gibt diese Informationen Ii und Xi sowie die oben erwähnten Komponenten ei und di und die öffentliche Information p in den Multikompo­ nenten-Gruppenrechner ein, in welchem Z' durch sequentielles di-faches Rechnen von Xi und ei-faches Rechnen von Ti für die Werte i von 1 bis L erhalten wird;
er gibt yL und die öffentlichen Informationen p und g in den Gruppenrechner zur yL-fachen Berechnung von g ein, um dadurch W zu erhalten; und
er gibt Z' und W in den Komparator ein, um zu prüfen, ob W ∼ Z'.
Wenn die beiden übereinstimmen, erkennt der Verifizierer, daß das Dokument m von den L autorisierten Unterzeichnern ordnungsgemäß unterzeichnet wurde.
Auch bei diesem typischen Schema sind die einzelnen Unterzeichnervorrichtungen, eine Benut­ zervorrichtung und ein Aufzeichnungs- oder Speichermedium in ähnlicher Weise aufgebaut.
Während bei dem Voranstehenden gilt ID'i = (ID'i-1, IDi), ist es auch möglich, die Einstellung so vorzusehen, daß ID'i =(ID'i-1, Ii). Dies erspart dem Verifizierer die Mühe der Suche nach der Identifikationsinformation IDi für die öffentliche Information Ii.
Ausführungsbeispiel 3
Als nächstes wird in Verbindung mit dem Fall des Einsatzes des Schnorr-Schemas ein Ausfüh­ rungsbeispiel beschrieben, bei dem in dem System von Fig. 1B die Unterzeichner entsprechend den Unterzeichnervorrichtungen 30 1 bis 30 L einzeln ihre Signatur an jeweiligen Dokumenten m1 bis mL anbringen und sie an die Verifizierervorrichtung 800 liefern, damit die unterzeichneten Dokumente dort en-bloc verifiziert werden. Die Idee der Verwendung der zweiten Exponential­ komponente, die unten beschrieben wird, ist ebenso in weitem Umfang auf die Fiat-Shamir- Schemata und digitale Signaturschemata anwendbar, die diese enthaltende interaktive Prüfungen verwenden.
(3-A) Anfängliche Informationseinstellverarbeitung
Die Zentrale 100 stimmt in ihrer Ausgestaltung mit derjenigen von Fig. 2 hinsichtlich der anfänglichen Informationseinstellverarbeitung überein, bei der die Werte {p, q, g}, die für das System einzigartig sind, veröffentlicht werden, weshalb die folgende Verarbeitung auch die gleiche wie die im Fall von Fig. 2 ist:
Schritt S1: Die Zentrale 100 erzeugt die Primzahl p mittels des Primzahlgenerators 110 und die Primzahl q, die ein Maß für p-1 ist, mittels des Dividierers 120.
Schritt S2: Die Zentrale 100 erzeugt das Grundelement α von (Z/pZ)* mittels des Grundelement­ generators 130 und die ganze Zahl g der Ordnung bzw. des Grads q als den vorher erwähnten Parameter β durch die nachfolgende Berechnung unter Verwendung des Modulo-Exponentiators 140, der die Funktion G1 berechnet, die zuvor in Verbindung mit den Prinzipien der vorliegenden Erfindung beschrieben wurde:
β= g = G1(q) = α(p-1)/q mod p (40)
Schritt S3: Die öffentliche Information {p, q, g} wird an die Unterzeichnervorrichtungen 30 1, . . ., 30 L und die Verifizierervorrichtung 800 über die sicheren Kanäle 400 geschickt.
(3-B) Verarbeitung durch den Unterzeichner i im Moment des Anschließens an das System
Als nächstes erfolgt unter Bezugnahme auf Fig. 10 eine Beschreibung der Verarbeitung, die beim Unterzeichner i für sein Einschreiben bei dem System ausgeführt wird. Es wird angemerkt, daß in dem Speicher 33 die öffentliche Information {p, q, g} gespeichert ist, die von der Zentrale 100 empfangen wird.
Schritt S4: Der Unterzeichner i erzeugt eine Zufallszahl si mittels des Zufallsgenerators 31 und gibt sie sowie die öffentlichen Informationen g (= β) und p in den Modulo-Exponentiator 32 ein, der die Funktion G2(si, β) berechnet, auf die zuvor in Verbindung mit den Prinzi­ pien der Erfindung verwiesen wurde. Auf diese Weise wird zum Erhalt der öffentlichen Information Ii die folgende Berechnung ausgeführt:
Ii = G2(si, g) = gsi mod p (41)
Schritt S5: Der Unterzeichner i sendet die Identifikationsinformation IDi , die öffentliche Informa­ tion Ii und die Einwegfunktionen fi und hi über den sicheren Kanal 400 an die Zentrale 100, wo sie als öffentliche Information registriert werden. Zugleich behält der Unter­ zeichner i die Zufallszahl si als geheime Information im Speicher 33.
Bei den anderen Unterzeichnern wird dieselbe Verarbeitung ausgeführt, wenn sie sich bei dem System einschreiben.
In der folgenden Beschreibung wird das unterzeichnete Dokument mit {IDi, Xi, mi, yi} identifi­ ziert, und zwar in der Annahme, daß der Unterzeichner i das Dokument mi unterzeichnet.
(3-C) Verarbeitung beim Unterzeichner i zur Signaturerzeugung
Fig. 11 zeigt Interaktionsfolgen von Nachrichten, und Fig. 12 zeigt den funktionalen Aufbau der Unterzeichnervorrichtung 30 i.
Schritt S6: Der Unterzeichner i (Unterzeichnervorrichtung 30 i) erzeugt die Zufallszahl ri mittels des Zufallsgenerators 310 und gibt sie in den Modulo-Exponentiator 320 ein, der die Funktion Φ berechnet, und zwar zusammen mit den öffentlichen Informationen p und g. Xi wird auf folgende Weise errechnet:
Xi = Φ(ri,g) = gri mod p (42)
Schritt S7: Der Unterzeichner i verwendet den fi-Funktionsrechner 330 und den hi-Funktions­ rechner 340 zur Berechnung der beiden Informationen ei bzw. di aufgrund der nachste­ henden Gleichungen
ei = fi(Xi, mi) (43)
di = hi(Xi, mi) (44).
Schritt S8: Der Unterzeichner i gibt diese Informationen ei, di und ri in den Modulo-Exponentiator 350 und dann in den Modulo-Addierer 360 zusammen mit der öffentlichen Information q und der geheimen Information si ein, um mit der Signaturfunktion Sgi in nachstehen­ der Weise yi zu berechnen:
yi = Sgi(ei, di, si, ri, q) = (diri + eisi) mod q (45).
Schritt S9: Der Unterzeichner i sendet die Nachricht {IDi, Xi, mi, yi} an den Verifizierer 800.
(3-D) Prozeß beim Verifizierer zur Signaturverifikation
Fig. 13 zeigt den funktionalen Aufbau der Verifizierervorrichtung 800. In dem Speicher 88 ist die öffentliche Information {p, q, g} gespeichert, die von der Zentrale erhalten wird. Wenn er die L Nachrichten {IDi, Xi, mi, yi} von den L Unterzeichnern empfängt, führt der Verifizierer 800 die nachfolgende Verarbeitung aus, um die jeweiligen Signaturen en-bloc zu verifizieren.
Schritt S10: Der Verifizierer 800 gibt die Information Xi und das Dokument mi in den fi-Funk­ tionsrechner 810 und den hi-Funktionsrechner 820 ein, in denen die Komponenten ei bzw. di (1 ≦ i ≦ L) jeweils berechnet werden durch
ei = fi(Xi, mi))
di = hi(Xi, mi).
Schritt S11: Der Verifizierer 800 empfängt von der Zentrale 100 die öffentliche Information Ii entsprechend der Identifikationsinformation IDi und gibt die öffentliche Information Ii zusammen mit den Komponenten ei und di, die in oben beschriebener Weise erzeugt wurden, und der öffentlichen Information p in den Multikomponenten-Modulo-Exponen­ tiator 830 ein, wo Z' gemäß nachfolgender Gleichung (46) berechnet wird
Z' = V(Xi*di), (Ii*ei) | i = 1, . . ., L) = (X1 d1 I1 e1 . . . XL dL IL eL ) mod p (46).
Schritt S12: Der Verifizierer 800 gibt L Informationen yi (y1 bis yL) und die öffentliche Informa­ tion q in den Modulo-Addierer 840 ein, um auf folgende Weise einen akkumulierten Wert Y zu berechnen
Dann gibt der Verifizierer 800 Y und die öffentliche Information {p, q} in den Modulo- Exponentiator 845 ein, der die Funktion Γ(Y*g) berechnet. W wird auf folgende Weise berechnet
W = Γ(Y*g) = gy mod p (48).
Schritt S13: Z' und W werden einem Komparator 850 eingegeben, wo sie verglichen werden um festzustellen, ob W = Z'.
Wenn dies der Fall ist, wird davon ausgegangen, daß das Dokument in von dem jeweiligen der L autorisierten Unterzeichner ordnungsgemäß unterzeichnet wurde.
Eines der Verfahren der Quadrier-und-Multiplizier-Algorithmen zur Berechnung von xayb mod N in dem Multikomponenten-Modulo-Exponentiator 830 ist das gleiche wie das voranstehend beschriebene.
Unter Berücksichtigung der Art der Erzeugung des akkumulierten Werts Y gilt
gy ∼ gyL-1 (grL )dL (gsL )eL = gyL-1 XL dL IL eL ∼ . . . ∼ X1 d1 . . . XL dL I1 e1 . . . IL eL (mod p) (49).
Wenn somit die Dokumente mi den obigen Test mittels des Komparators 860 passieren, akzeptiert der Verifizierer 800 die Dokumente als von den L autorisierten oder gültigen Unter­ zeichnern ordnungsgemäß unterzeichnet.
Es erfolgt nun eine Beschreibung der Verarbeitung in dem Fall, wo W = Z' in Schritt S13 nicht erfüllt ist. Beispielsweise werden, wenn L = 100, die Nachrichten {IDi, Xi, mi, yi} in zwei Gruppen (L/2 = 50) unterteilt, und die Verarbeitung der Schritte S9 bis S13 wird für die Nachrich­ ten einer der beiden Gruppen ausgeführt um festzustellen, ob eine Fehlübereinstimmung zwischen ihnen gefunden wird. Wenn eine Fehlübereinstimmung gefunden wird, werden die Nachrichten dieser Gruppe weiter in zwei Untergruppen unterteilt. Wird keine Fehlübereinstim­ mung gefunden, werden die Nachrichten der anderen Gruppe in zwei Untergruppen unterteilt. Dann werden die Nachrichten einer der beiden Untergruppen der Verarbeitung der Schritte S9 bis S13 unterzogen. Durch Wiederholen dieser Verarbeitung ist der Verifizierer in der Lage, den Unterzeichner zu identifizieren, der das betroffene Dokument nicht ordnungsgemäß unterzeichnet hat.
Wie zuvor erwähnt, ist die vorliegende Erfindung nicht nur auf die Schnorr-Schemata, sondern auch auf die Fiat-Shamir-Schemata und digitale Signaturschemata anwendbar, die die interakti­ ven Prüfungen unter Einschluß der Fiat-Shamir-Schemata verwenden. Demgemäß kann das Verfahren der vorliegenden Erfindung allgemein wie folgt zusammengefaßt werden:
Die Systemparameter, die veröffentlicht werden, sind p zur Spezifizierung der Anzahl von Elementen in der Gruppe, ein Element g der Gruppe, mit der die Gruppenberechnung beginnt, und eine positive ganze Zahl q derart, daß, wenn das Element g q-mal berechnet wird, die Rechnung zum Element g zurückkehrt.
Der Unterzeichner i erzeugt die Zufallszahl si mittels des Zufallsgenerators zum Zeitpunkt des Einschreibens in das System und gibt die Zufallszahl si und die öffentlichen Informationen g und p in einen Gruppenrechner ein, wo das Element g si-mal berechnet wird, um die öffentliche Information Ii zu berechnen, und
veröffentlicht die öffentliche Information Ii die Funktionen fi und hi zusammen mit der Identifikationsinformation IDi, behält jedoch die Zufallszahl si als geheime Information.
Bei der Signaturerzeugungsverarbeitung führt der Unterzeichner i folgendes aus:
er erzeugt die Zufallszahl ri unter Verwendung des Zufallsgenerators und gibt sie dann zusammen mit den öffentlichen Informationen p und g in den Gruppenrechner ein, um das Element g ri-mal zu berechnen und die Information Xi zu erhalten;
er berechnet die Komponenten ei und di gemäß
ei = fi(Xi, mi)
di = hi(Xi, mi)
unter Verwendung des fi-Funktionsrechners und des hi-Funktionsrechners; und
er gibt die Informationen ei, di und ri zusammen mit der öffentlichen Information q und der geheimen Information si in einen Expontentialkomponenten-Multiplizierer und einen Expon­ tentialkomponenten-Addierer ein, um yi in folgender Weise zu berechnen
yi = (diri + eisi) mod q
und erhält auf diese Weise die Nachrichten {IDi, Xi, mi, yi} und sendet sie an den Verifizierer.
Wenn er die Nachrichten {IDi, Xi, mi, yi} (1 ≦ i ≦ L) von den L Unterzeichnern emp­ fängt, gibt der Verifizierer die Information Xi und die Nachricht mi in den fi-Funktionsrechner und den hi-Funktionsrechner ein, in denen
ei = fi(Xi, mi)
di = hi(Xi, mi)
berechnet werden, um die Komponenten ei und di für alle Werte von i zu erhalten. Der Verifizie­ rer leitet dann die öffentliche Information Ii aus der Identifikationsinformation IDi ab und gibt diese Informationen Ii und Xi sowie die oben erwähnten Komponenten ei und di und die öffentli­ che Information p in den Multikomponenten-Gruppenrechner ein, worin Z' durch di-maliges sequentielles Berechnen von Xi und ei-maliges Berechnen von Ti für die Werte i von 1 bis L erhalten wird.
Der Verifizierer gibt L Informationen y und die öffentliche Information p in den Expo­ nentialkomponenten-Addierer ein, um Y auf folgende Weise zu berechnen
und gibt dann Y und die öffentlichen Informationen p und g in einen Gruppenrechner ein, wo g zum Erhalt von W Y-mal berechnet wird.
Z' und W werden in den Komparator eingegeben um zu prüfen, ob W ∼ Z' und, wenn beide übereinstimmen erkennt der Verifizierer, daß die L Dokumente mi von den L autorisierten Unterzeichnern ordnungsgemäß unterzeichnet wurden.
Die Unterzeichnervorrichtungen und die Verifizierervorrichtung führen die Verarbeitung gewöhn­ lich mittels eines Computers aus.
Während bei den Ausführungsbeispielen 1 bis 3 die Verwendung von Zq als kommutative Gruppe des endlichen Feldes beschrieben wurde, das durch den Parameter q definiert ist, kann eine elliptische Kurve als die kommutative Gruppe verwendet werden. Dies löst das Problem der Zunahme der von dem Unterzeichner zur Signaturerzeugung zu verarbeitenden Rechenmenge. Das RSA-Verschlüsselungssystem gründet seine Sicherheit auf der Schwierigkeit des (eingangs erwähnten) Faktorzerlegungsproblems, während die Sicherheit des sogenannten Ellipsen- Verschlüsselungssystem auf einem diskreten Logarithmenproblem an einer elliptischen Kurve beruht, dessen Lösung für schwieriger gehalten wird als die des Faktorzerlegungsproblems.
Das Folgende ist eine Definition einer elliptischen Kurve auf dem endlichen Feld GF(q), das durch die Verwendung der Parameter a, b ∈ GF(g)(4a3 + 27b2 ≠ 0) gegeben ist:
Ea,b(GF(q)) = {(x, y) ∈ GF(q)2|y2 = x3 + ax + b} ∪ {0} (50)
worin GF(q) ein Definitionsfeld der elliptischen Kurve Ea,b(GF(q)) genannt wird und 0 einen unendlichen Punkt angibt.
Die Addition auf der elliptischen Kurve ist beispielsweise wie folgt:
Wenn man setzt
Pi = (xi, yi) ∈ Ea,b(GF(q)),
(wobei i = 1, 2), kann (x3, y3) = P1 + P2 wie folgt geschrieben werden:
  • (a) wenn P1 ≠ P2, und λ = (y2-y1)/(x2-x1) gesetzt wird,
    x3= λ2-(x1 + x2), y3= -y1 + λ (x1-x3) (51)
  • (b) wenn P1 = P2, wenn also (x3, y3) = 2P1, und λ = (3x1 2 + a)/(2y1) gesetzt wird,
    x3 = λ2-2x1, y3 = -y1 + λ (x1-x3) (52).
Die Gruppenberechnung auf der elliptischen Kurve ist beispielsweise beschrieben in D. R. Stinson, "CRYPTOGRAPHY Theory and Practice", CRC Press, Seiten 187-190, 1995, In der folgenden Beschreibung wird die Addition von P1 und P2 auf der elliptischen Kurve Ea,b (GF(q)) durch
(P1 + P2) über Ea,b(GF(q))
dargestellt.
Da die gegenwärtig bekannte Lösung des diskreten Logarithmenproblems auf der elliptischen Kurve weniger effizient und schwieriger als die Lösung des Faktorzerlegungsproblems ist, ist es möglich, den Parameter g des Definitionsfeldes der elliptischen Kurve klein zu machen und dementsprechend die beinhaltete Rechenkomplexität zu verringern. Konkret sagt man, daß dieselbe Sicherheit wie im Fall von |N| = 1024 durch |q| = 160 garantiert werden kann, wobei |p|, wie schon oben definiert, die Anzahl Bits der Primzahl p repräsentiert (siehe beispielsweise Bruce Schneicer, "APPLIED CRYPTOGRAPHY (Second Edition)", John Wiley & Sons. Inc.,. Seiten 480-481, 1996).
Das gewöhnliche diskrete Logarithmenproblem besteht darin, daß, wenn eine ganze Zahl g ∈ (Z/pZ)* = {1, 2, . . ., p-1}, wobei p eine große Primzahl ist und g die Ordnung q hat, als öffentliche Information geliefert wird, y ∈ Z/qZ zu berechnen ist, für das gy ∼ x (mod p) bezüglich einer ganzen Zahl x ∈ (Z/pZ)* erfüllt ist.
Andererseits besteht das diskrete Logarithmenproblem auf der elliptischen Kurve darin, daß, wenn das Definitionsfeld GF(q), die Parameter a und b der elliptischen Kurve und ein Punkt P ∈ Ea,b(GF(q)) einer Ordnung k auf der elliptischen Kurve als öffentliche Information geliefert werden, y ∈ Z/kZ zu berechnen ist, das yP ∼ X über Ea,b (GF(q)) bezüglich eines Punkts X auf der elliptischen Kurve erfüllt.
Der Punkt P wird Basispunkt genannt. yP ∼ X gibt an, daß der Basispunkt P, wenn er auf der elliptischen Kurve y-mal addiert wird, mit dem Punkt X ∈ Ea,b (GF(q)) zusammenfällt. Die y-fache Addition des Basispunkts P auf der elliptischen Ea,b (GF(q)) ist speziell durch yP über Ea,b GF(q)) repräsentiert, das zur Definition einer Gruppenrechnung auf der elliptischen Kurve verwendet wird.
Bei Verwendung der oben definierten Gruppenrechnung auf der elliptischen Kurve, könnten ein sogenanntes Diffie-Hellman-Key-Sharing-Schema, ein EIGamal-Verschlüsselungssystem und ein EIGamal-Signaturschema, die die Schwierigkeit des gewöhnlichen diskreten Logarithmenpro­ blems nutzen, alle zu Schemata modifiziert werden, die die Schwierigkeit des diskreten Logarithmus auf der elliptischen Kurve nutzen.
Die Schnorr- und die Fiat-Shamir-Schemata, die interaktive Prüfungen verwenden, könnten ebenfalls zu Schemata modifiziert werden, die die Schwierigkeit des diskreten Logarithmus auf der elliptischen Kurve nutzen. Eine Beschreibung erfolgt beispielsweise für eine digitale Signatur mittels des Schnorr-Schemas unter Einsatz der elliptischen Kurve.
Eine vertrauenswürdige Institution (vertrauenswürdige Zentrale) veröffentlicht den Parameter q des Definitionsfeldes GF(q), den Parameter a,b,GF(q) der elliptischen Kurve und den Basispunkt P ∈ Ea,b (GF)q)) einer Ordnung bzw. eines Grads k auf der elliptischen Kurve.
Schritt 1: Ein Unterzeichner A erzeugt eine Zufallszahl s ∈ (Z/kZ) und berechnet öffentliche Information I durch
I = sP über Ea,b (GF(q)) (53)
und veröffentlicht ein Paar aus Identifikationsinformationen (ID) und Information I.
Der Unterzeichner A durchläuft die folgende Prozedur, um einem Verifizierer B zu beweisen, daß ein Dokument m echt ist.
Schritt 2: Der Unterzeichner A erzeugt eine Zufallszahl r ∈ (Z/kZ) und berechnet
X = rP über Ea,b(GF(q)) (54).
Schritt 3: Der Unterzeichner A berechnet eine ganze Zahl e ∈ (Z/kZ) unter Verwendung einer Einweg-Funktion f durch
e = f(X, m) (55).
Schritt 4: Der Unterzeichner A erzeugt eine Signatur y durch
y = (r + es) mod k (56)
und sendet {ID, m, X, y} als eine unterzeichnete Nachricht an den Verifizierer B.
Schritt 5: Der Verifizierer B berechnet die ganze Zahl e ∈ (Z/kZ) unter Verwendung der Einweg- Funktion f durch
e = f(X, m).
Schritt 6: Der Verifizierer B prüft, ob
yP ∼ (X + eI) über Ea,b(GF(q)) (57)
erfüllt ist, wobei I öffentliche Information entsprechend der Identifikationsinformation ID ist.
Unter Berücksichtigung des Wegs zur Erzeugung von y gilt
yP ∼ (r + es) P ∼ rP + e (sP) ∼ (X + eI) über Ea,b (GF(q)) (58).
Wenn somit Gleichung (57) erfüllt ist, erkennt der Verifizierer B, daß das Dokument m von dem Unterzeichner A ordnungsgemäß unterzeichnet ist.
Bei dem Voranstehenden könnte die Signatur des Unterzeichners A gefälscht werden, falls {ID, X, m, y} als unterzeichnete Nachricht gesendet würde, wenn die ganze Zahl e ∈ (Z/kZ), für die e = f(X, m) gilt, durch Berechnung von X ∈ Ea,b(GF(q)) ermittelt werden könnte, welches die Verifikationsgleichung erfüllt, nachdem die ganzen Zahlen e ∈ (Z/kZ) und y ∈ (Z/kZ) geeignet gewählt wurden. Da die Wahrscheinlichkeit, daß die Verifikationsgleichung e = f(X, m) erfüllt ist, 1/k ist, hängt die Rechenkomplexität, die mit der Fälschung der Signatur verbunden ist, von dem Wert k ab.
Das elliptische Schnorr-Schema beinhaltet die Berechnung der Gleichungen (51) und (52) für eine n-fach-Punktberechnung (einschließlich Modulo-q-Rechnungen) auf der elliptischen Kurve in einer mittleren Häufigkeit von 3|q|/2, eine einzelne Multiplikation (einschließlich Modulo-k- Rechnungen) von |k| Bit Ganzzahlen und eine einzelne Addition (einschließlich Modulo-k- Rechnungen) der |k| Bit Ganzzahlen.
Das obige Verfahren mit der elliptischen Kurve wird nachfolgend in Anwendung auf die zuvor beschriebenen Ausführungsbeispiele 1 bis 3 beschrieben.
Das Ergebnis der Addition P3 (P1 + P2) auf der elliptischen Kurve wird durch die Gleichungen (51) und (52) unter Verwendung von x- und y-Koordinaten berechnet. Wie aus Gleichung (59) hervorgeht, die die elliptische Kurve definiert, ist, wenn die x-Koordinate einmal bestimmt ist, der Punkt auf der elliptischen Kurve eindeutig abhängig davon definiert, ob die y-Koordinate plus oder minus ist. Da die x-Koordinate der Wert des Definitionsfeldes GF(q) ist, muß hier darauf hingewiesen werden, daß der Punkt auf der elliptischen Kurve durch (|q| + 1) Bits repräsentiert werden kann.
Ausführungsbeispiel 4
Dieses Ausführungsbeispiel entspricht dem ersten Ausführungsbeispiel, das die Überlagerungs­ signatur und deren Block-Verifikation durchführt. Nachstehend erfolgt eine Beschreibung eines Ausführungsbeispiels, bei dem das Schnorr-Schema auf die Überlagerungssignatur und deren Block-Verifikation angewendet wird und welches das Verfahren der elliptischen Kurve einsetzt.
Die Idee der Verwendung einer zweiten Mehrfachkomponente, die unten beschrieben wird, kann in weitem Umfang auf die EIGamal-Signatur-Schemata und die digitalen Signatur-Schemata, die unter deren Einschluß die interaktiven Prüfungen verwenden, angewendet werden.
Die Systemkonfiguration, auf die dieses Ausführungsbeispiel angewendet wird, ist die gleiche wie die in Fig. 1A gezeigte. Deren Beschreibung soll hier daher nicht wiederholt werden.
(4-A) Anfängliche Informationseinstellverarbeitung
Nachfolgend wird unter Bezugnahme auf Fig. 14 die anfängliche Informationseinstellverarbeitung beschrieben, die ausgeführt wird, wenn die Zentrale 100 das System startet. Diese Verarbeitung ist dazu gedacht, einen Wert {q, a, b, P, k}, der für das System einzigartig ist, zu veröffentli­ chen.
Schritt S1: Die Zentrale 100 erzeugt die Primzahl q mittels des Primzahlgenerators 110 und a, b ∈ GF(q) mittels eines Parametergenerators 120.
Schritt S2: Die Zentrale 100 erzeugt einen Punkt P ∈ Ea,b(GF(q)) auf der elliptischen Kurve mittels eines Basispunktgenerators 130, und den Grad oder die Ordnung des Basispunkts mittels eines Ordnungsrechners 140. Die elliptische Kurve Ea,b (GF(q)) entspricht einem Wert der Funktion G1(q), auf die früher in Verbindung mit den Prinzipien der vorliegen­ den Erfindung bezug genommen wurde, und der Punkt P entspricht dem dabei erwähn­ ten β.
Schritt S3: Die öffentliche Information {g, a, b, P, k} wird an die Unterzeichner (Unterzeichnervorrichtungen 30 1, . . ., 30 L) und an den Verifizierer 800 über die sicheren Kommunikationskanäle 400 gesandt und in den Speichern 33 bzw. 88 gespeichert.
Der Ordnungs- oder Gradrechner 140 kann leicht beispielsweise unter Verwendung des Schoof- Algorithmus zur Berechnung der Ordnung oder des Grades der elliptischen Kurve Ea,b(GF(q)) (der Anzahl von Punkten auf der Kurve) implementiert werden, (siehe beispielsweise R. Schoof, "Elliptic Curves Over Finite Fields and the Computation of Square Roots Mod p", Math. Com., 44, Seiten 483-494, 1985).
(4-B) Verarbeitung beim Unterzeichner i für dessen Einschreiben in dem System
Unter Bezugnahme auf Fig. 15 wird nun die Verarbeitung beschrieben, die bei einem Unterzeich­ ner i durchgeführt wird, wenn er sich in dem System einschreibt.
Schritt S4: Der Unterzeichner i erzeugt die Zufallszahl si mittels des Zufallsgenerators 31 und gibt sie sowie die öffentliche Information {q, a, b, P} in einen n-fach-Punktrechner 32 ein, in welchem die öffentliche Information Ii mit der zuvor erwähnten Funktion G2 gemäß nachstehender Gleichung (59) berechnet wird
Ii = G2 (si, P) = siP über Ea,b (GF(q)) (59).
Schritt S5: Der Unterzeichner i sendet die Identifikationsinformation IDi , die öffentliche Informa­ tion Ii und die Einweg-Funktionen fi und hi über den sicheren Kommunikationskanal 400 an die Zentrale 100, damit diese als öffentliche Information {IDi, Ii, fi, hi} registriert werden. Der Unterzeichner i behält die Zufallszahl si als geheime Information in dem Speicher 33.
In der folgenden Beschreibung wird die unterzeichnete Version des Dokuments m'i, die von dem Unterzeichner i geliefert wird, durch {ID'i, X'i, yi} identifiziert. Die Interaktionsfolge der Nachricht ist die gleiche wie die im Fall von Fig. 4. Bei Empfang einer Nachricht {ID'i-1, X'i-1, m'i-1, yi-1} von dem Unterzeichner (i-1), führt der Unterzeichner i die Signaturerzeugungsverarbei­ tung durch, die nachstehend beschrieben wird. Die Konfiguration der Unterzeichnervorrichtung 30 i des Unterzeichners i ist in Fig. 16 dargestellt. Es erfolgt nun eine Beschreibung des Falles, wo der Unterzeichner (i-1) die zu unterzeichnende Nachricht sendet und der Unterzeichner i seine Signatur an der Nachricht anbringt und die unterzeichnete Nachricht an den nächsten Unter­ zeichner (i+1) sendet. Im Fall der überlagerten Signatur durch L Unterzeichner braucht lediglich i schrittweise um 1 von 1 bis L erhöht zu werden und die folgende Prozedur wiederholt zu werden. In diesem Fall wird der Unterzeichner (L+1) als der Verifizierer angesehen; ID'0 = leere Menge, X'0 = leere Menge und y0 = O.
(4-C) Verarbeitung beim Unterzeichner i zur Signaturerzeugung
Schritt S6: Der Unterzeichner i erzeugt die Zufallszahl ri mittels des Zufallsgenerators 310 und gibt sie in einen n-fach-Punktrechner 320 ein, der die Funktion Φ berechnet, und zwar zusammen mit der öffentlichen Information {q, a, b, P}, die aus dem Speicher 33 ausgelesen wird, wobei Xi durch die nachstehende Gleichung (60) berechnet wird:
Xi = Φ(ri, P) = riP über Ea,b (GF(q)) (60).
Schritt S7: Der Unterzeichner i verwendet den fi-Funktionsrechner 330 und den hi-Funktions­ rechner 340 zur Berechnung von ei bzw. di
ei = fi(X'i, m'i) (61)
di = hi(X'i, m'i) (62)
wobei
X'i = (X'i-1, Xi) (63)
m'i = (m'i-1, mi) (64).
Schritt S8: Der Unterzeichner i gibt ei, di und ri in den Modulo-Multiplizierer 350 und dann in den Modulo-Addierer 360 zusammen mit der öffentlichen Information k und der geheimen Information si ein, wobei die Signatur mit der Signaturfunktion Sgi berechnet wird durch
yi = Sgi(ei, di, si, ri, yi-1) = (yi-1 + diri + eisi) mod k (65).
Schritt S9: Der Unterzeichner i setzt ID'i = (ID'i-1, IDi), und sendet die Nachricht {ID'i, X'i, m'i, yi} an den nächsten Unterzeichner (i+1).
(4-D) Verarbeitung durch den Verifizierer zur Signaturverifikation
Fig. 17 zeigt den funktionalen Aufbau der Verifizierervorrichtung 800. Wenn der Verifizierer die Nachricht {ID'L , X'L, m'L, yL} vom Unterzeichner L erhält, verifiziert er die Gültigkeit der einzelnen Signaturen mittels der nachstehend beschriebenen Verarbeitung.
Schritt S10: Die ersten i Komponenten der Information X'L werden zur Bildung von X'i verwen­ det, und die ersten i Komponenten der Information m'L werden zur Bildung von m'i verwendet. Die Informationen X'i und m'i, die auf diese Weise erhalten werden, werden in den fi-Funktionsrechner 810 und den hi-Funktionsrechner 820 eingegeben, wo die Komponenten ei bzw. di (1 ≦ i ≦ L) berechnet werden durch
ei = fi(X'i, m'i)
di = hi(X'i, m'i).
Schritt S11: Die Information Ii wird von der IDi-Komponente in der Information ID'L abgeleitet, und die Information Xi wird ebenfalls von der Information X'L abgeleitet. Diese Informa­ tionen Ii und Xi werden zusammen mit den oben erwähnten Komponenten ei und di und der aus dem Speicher 88 ausgelesenen öffentlichen Information {q, a, b, P} in einen n-fach-Rechner 830 eingegeben, der die Funktion V berechnet, und mit dem Z' berechnet wird durch
Z' = V((Xi*di), (Ii*ei) | i = 1, . . ., L) = (d1X1 + . . . + dLXL + e1L1 + . . . eLIL) über Ea,b(GF(q)) (66)
wobei
ei = fi(X1, . . ., Xi, {m1, . . ., mi}) (67)
di = hi(X1, . . ., Xi, {m1, . . ., mi}) (68)
(1 ≦ i ≦ L)
Schritt S12: Die Information yL und die öffentliche Information {q, a, b, P} werden in den n-fach- Punktrechner 840 eingegeben, der eine Funktion Γ (yL*P) berechnet und damit W gemäß folgender Gleichung errechnet:
W = Γ(yL, P) = yLP über Ea,b (GF(q)) (69).
Schritt S13: Z' und W werden in den Komparator 850 eingegeben, wo sie verglichen werden, um sicherzugehen, daß W = Z'.
Wenn beide übereinstimmen, wird davon ausgegangen, daß die Dokumente (m1, . . ., mL) von den L autorisierten Unterzeichnern i jeweils ordnungsgemäß unterzeichnet wurden.
Ausführungsbeispiel 5
Dieses Ausführungsbeispiel entspricht dem zweiten Ausführungsbeispiel, welches die Mehrfach­ signatur und deren Block-Verifikation durchführt. Nachstehend erfolgt die Beschreibung eines Ausführungsbeispiels, bei dem das Schnorr-Schema auf die Mehrfachsignatur und deren Block- Verifikation angewendet wird, die das Verfahren der elliptischen Kurve einsetzen. Auch bei diesem Ausführungsbeispiel kann die Idee der Verwendung der zweiten Mehrfachkomponente in weitem Umfang auf die EIGammal-Signatur-Schemata und die digitalen Signatur-Schemata, die die interaktiven Prüfungen unter Einschluß derselben verwenden, angewendet werden.
Die Systemkonfiguration, auf die dieses Ausführungsbeispiel angewendet wird, ist dieselbe wie die in Fig. 1A gezeigte, und der Aufbau der Zentrale 100 ist der gleiche wie der in Fig. 14 gezeigte.
(5-A) Anfängliche Informationseinstellverarbeitung
Es erfolgt nachstehend unter Bezugnahme auf Fig. 14 eine Beschreibung der anfänglichen Informationseinstellverarbeitung in dem Moment, wenn die Zentrale 100 das System startet.
Schritt S1: Die Zentrale 100 erzeugt die Primzahl q mittels des Primzahlgenerators 110 und a, b, GF(q) mittels des Parametergenerators 120.
Schritt S2: Die Zentrale 100 erzeugt den Punkt P ∈ Ea,b(GF(q)) auf der elliptischen Kurve mittels des Basispunktgenerators 130, der eine Funktion G1(q) berechnet, und die Ordnung k des Basispunkts P mittels des Ordnungsrechners 140. Der Punkt P entspricht dem früher erwähnten Parameter β.
Schritt S3: Die öffentliche Information {q, a, b, P, k} wird an die Unterzeichnervorrichtungen 30 1, . . ., 30 L und die Verifizierervorrichtung 800 über die sicheren Kommunikationskanäle 400 gesendet und in deren Speichern 33 bzw. 88 gespeichert.
Wie schon früher erwähnt, kann der Ordnungsrechner 140 leicht unter Verwendung des Schoof- Algorithmus implementiert werden, der die Ordnung der elliptischen Kurve Ea,b (GF(q)) (d. h. die Anzahl von Punkten auf der Kurve) berechnet.
(5-B) Verarbeitung beim Unterzeichner i, wenn dieser sich in das System einschreibt
Als nächstes erfolgt unter Bezugnahme auf Fig. 18 eine Beschreibung der Verarbeitung, die beim Unterzeichner i ausgeführt wird, wenn er sich in das System einschreibt.
Schritt S4: Der Unterzeichner i erzeugt die Zufallszahl si mittels des Zufallsgenerators 310 und gibt sie sowie die öffentliche Information {q, a, b, P} in den n-fach-Punktrechner 320 ein, der eine Funktion G2(si, P) berechnet und in welchem die öffentliche Information Ii auf folgende Weise errechnet wird
Ii = G2(si, P) = siP über Ea,b (GF(q)) (70).
Schritt S5: Der Unterzeichner i sendet die Identifikationsinformation IDi, die öffentliche Informa­ tion Ii und die Einweg-Funktionen fi und hi über den sicheren Kommunikationskanal 400 an die Zentrale 100, um sie dort als öffentliche Information {IDi, Ii, fi, hi} registrieren zu lassen. Jeder Unterzeichner behält die jeweilige Zufallszahl si als geheime Informa­ tion.
In der nachfolgenden Beschreibung wird die unterzeichnete Version des Dokuments mi, die von dem Unterzeichner i geliefert wird, durch {I'i, X'i, mi, yi} identifiziert. Die Interaktionsfolge der Nachricht ist die gleiche wie im Fall von Fig. 7. Bei Empfang einer Nachricht {ID'i-1, X'i-1, m, yi-1} von dem Unterzeichner (i-1) führt der Unterzeichner i die nachstehend beschriebene Signatur­ erzeugungsverarbeitung durch. Die Konfiguration des Unterzeichners i (der Unterzeichnervorrich­ tung 30 i) ist in Fig. 18 gezeigt. Es erfolgt nun eine Beschreibung des Falles, wo der Unterzeich­ ner (i-1) die zu unterzeichnende Nachricht sendet und der Unterzeichner i seine Signatur an der Nachricht anbringt und die unterzeichnete Nachricht an den nächsten Unterzeichner (i+1) sendet. Wenn L Unterzeichner eine Mehrfachsignatur erzeugen, braucht lediglich i schrittweise um eins von 1 bis L erhöht zu werden und die folgende Prozedur wiederholt zu werden. In diesem Fall wird der Unterzeichner (i+1) als der Verifizierer betrachtet; ID'0 = leere Menge, X'0 = leere Menge und y0 = O.
(5-C) Verarbeitung beim Unterzeichner i zur Signaturerzeugung
Schritt S6: Der Unterzeichner i erzeugt die Zufallszahl ri mittels des Zufallsgenerators 310 und gibt sie in den n-fach-Punktrechner 320 ein, der die Funktion Φ berechnet, und zwar zusammen mit der öffentlichen Information {q, a, b, P}, die aus dem Speicher 33 ausgelesen wird, wodurch in nachstehender Weise Xi berechnet wird
Xi = Φ(ri, P) = riP über Ea,b(GF(q)) (71).
Schritt S7: Die Unterzeichner i berechnet ei und di unter Verwendung des fi-Funktionsrechners 330 bzw. des hi-Funktionsrechners 340 durch
ei = fi(X'i, m) (72)
di = hi(X'i, m) (73)
wobei X'i = (X'i-1, Xi).
Schritt S8: Der Unterzeichner i gibt ei, di, ri und yi-1 in den Modulo-Multiplizierer 350 und dann in den Modulo-Addierer 360 zusammen mit der öffentlichen Information k und der gehei­ men Information si ein, wodurch die Signatur mit der Signaturfunktion Sgi durch Glei­ chung (74) erzeugt wird:
yi = Sgi(ei, di, si, ri, yi-1) = (yi-1 + diri + eisi) mod k (74).
Schritt S9: Der Unterzeichner i setzt ID'i = (ID'i-1, IDi), und sendet die Nachricht {ID'i, X'i, m, yi} an den nächsten Unterzeichner (i+1).
(5-D) Verarbeitung beim Verifizierer zur Signaturverifikation
Fig. 19 zeigt den funktionalen Aufbau der Verifizierervorrichtung 800. Wen der Verifizierer die Nachricht {ID'L, X'L, m, yL} von dem Unterzeichner L empfängt, verifiziert er die Gültigkeit der einzelnen Signaturen mittels der nachfolgend beschriebenen Verarbeitung.
Schritt S10: Die ersten i Komponenten der Information X'L werden zur Bildung von X'i verwen­ det, das zusammen mit der Nachricht m in den fi-Funktionsrechner 810 und den hi-Funktionsrechner 820 eingegeben wird, worin die Komponenten ei bzw. di (1 ≦ i ≦ L) berechnet werden durch
ei = fi(X'i, m)
di = hi(X'i, m).
Schritt S11: Die Information Ii wird von der IDi-Komponente in der Information ID'L abgeleitet, und außerdem wird die Information Xi von der Information X'L abgeleitet. Diese Infor­ mationen Ii und Xi werden zusammen mit den oben erwähnten Komponenten ei und di sowie der öffentlichen Information {q, a, b, P, k}, die aus dem Speicher 88 ausgelesen wird, in den n-fach-Rechner 830 eingegeben, der die Funktion V berechnet, und von dem Z' errechnet wird durch
Z' = V((Xi*di), (Ii*ei) | i = 1, . . ., L) = (d1 X1 + . . . + dLXL + e1L1 + . . . + eLIL) über Ea,b(GF(q)) (75)
wobei
ei = fi(X1, . . ., Xi, m) (76)
di = hi(X1, . . ., Xi, m) (77)
(1 ≦ i ≦ L)
Schritt S12: Die Information yL und die öffentliche Information {q, a, b, P, k} werden in den n-fach-Punktrechner 840 eingegeben, der die Funktion Γ(yL*P) berechnet und dadurch W wie folgt errechnet:
W = Γ(yL, *P) = yLP über Ea,b(GF(q)) (78).
Schritt S13: Z' und W werden in den Komparator 850 eingegeben, wo sie miteinander vergli­ chen werden, um sicherzugehen, daß W = Z'.
Wenn beide übereinstimmen, wird davon ausgegangen, daß das Dokument in von den L autorisierten Unterzeichnern ordnungsgemäß unterzeichnet wurde.
Jede Vorrichtung kann so ausgebildet werden, daß sie ihre Funktionen durch Lesen, Übersetzen und Ausführen von Programmen unter Verwendung eines Computers durchführt. Bei jeder Unterzeichnervorrichtung kann ID'i = (ID'i-1, IDi) ersetzt werden durch ID'i = (ID'i-1, Ii). Dies erfordert die Speicherung der öffentlichen Information Ii in Speichermitteln und entlastet damit die Verifizierervorrichtung, die dann nicht mehr die Information Ii in der Identifikationsinformation IDi lokalisieren muß.
Ausführungsbeispiel 6
Dieses Ausführungsbeispiel entspricht dem dritten Ausführungsbeispiel, bei dem mehrere Unterzeichner einzeln ihre Signatur an einem jeweiligen Dokument anbringen und die Signaturen en-bloc verifiziert werden. Dieses Ausführungsbeispiel wird ebenfalls in Verbindung mit dem Fall der Anwendung des Schnorr-Schemas und des Einsatzes des Verfahrens der elliptischen Kurve beschrieben. Auch bei diesem Ausführungsbeispiel kann die Idee der Verwendung der zweiten Mehrfachkomponente in weitem Umfang auf die EIGamal-Signatur-Schemata und die digitalen Signatur-Schemata angewendet werden, die die interaktiven Prüfungen einsetzen, welche dieselben enthalten.
Die Systemkonfiguration, auf die dieses Ausführungsbeispiel angewendet wird, ist die gleiche wie die in Fig. 1B gezeigte, und die Konfiguration der Zentrale 100 ist die gleiche wie die in Fig. 14 gezeigte.
Bei der folgenden Beschreibung wird die unterzeichnete Nachricht durch {IDi, Xi, mi, yi} repräsentiert, und zwar unter der Annahme, daß der Unterzeichner i das Dokument mi unter­ zeichnet.
Die Interaktionsfolge der Nachricht ist die gleiche wie die in Fig. 11 gezeigte. Fig. 20 zeigt in Blockform die Unterzeichnervorrichtung 30 i.
(6-A) Verarbeitung beim Unterzeichner i zur Signaturerzeugung
Schritt S14: Der Unterzeichner i erzeugt die Zufallszahl ri mittels des Zufallsgenerators 310 und gibt sie zusammen mit der öffentlichen Information {q, a, b, P, k}, die aus dem Speicher 33 ausgelesen wird, in den n-fach-Punktrechner 320 ein, der die Funktion Φ berechnet, und in dem Xi berechnet wird durch
Xi = Φ(ri, P) = riP über Ea,b(GF(q)) (79).
Schritt S15: Der Unterzeichner i berechnet ei und di unter Verwendung des fi-Funktionsrechners 330 und des hi-Funktionsrechners 340 mittels
ei = fi(Xi, m) (80)
di = hi(Xi, m) (81).
Schritt S16: Der Unterzeichner i gibt ei, di und ri in den Modulo-Multiplizierer 350 und dann den Modulo-Addierer 360 zusammen mit der öffentlichen Information k und der geheimen Information si ein, wodurch die Signatur mit der Signaturfunktion Sgi erzeugt wird durch
yi = Sgi(ei, di, si, ri, k) = (diri + eisi) mod k (82).
Schritt S17: Der Unterzeichner i sendet die Nachricht {IDi, Xi, m, yi} an den Verifizierer 800.
(6-B) Verarbeitung beim Verifizierer zur Signaturverifikation
Fig. 21 zeigt in Blockform die Verifizierervorrichtung 800. Wenn der Verifizierer L Nachrichten {Ii, Xi, mi, yi} von den L Unterzeichnern empfängt verifiziert er die Gültigkeit der einzelnen Signaturen durch die nachstehende Verarbeitung.
Schritt S18: Der Verifizierer 800 gibt die Information Xi und die Nachricht in in den fi-Funktions­ rechner 810 und den hi-Funktionsrechner 820 ein, worin die Komponenten ei bzw. di (1 ≦ i ≦ L) errechnet werden durch
ei = fi(Xi, m)
di = hi(Xi, mi).
Schritt S19: Der Verifizierer 800 leitet die Information Ii von der IDi-Komponente und die Information Xi von der Information X'L ab und gibt sie zusammen mit den oben erwähn­ ten Komponenten ei und di sowie der öffentlichen Information {q, a, b, P, k}, die aus dem Speicher 88 ausgelesen wird, in den n-fach-Rechner 830 ein, der die Funktion V berechnet und in dem Z' errechnet wird durch
Z'= V((Xi*di), (Ii*ei) | i = 1, . . ., L) = (d1X1 + . . . + dLXL + e1L1 + . . . + eLIL) über Ea,b(GF(q)) (83)
wobei
ei = fi(X1, . . ., Xi, {m1, . . ., mi}) (84)
di = hi(X1, . . ., Xi, {m1, . . ., mi}) (85)
(1 ≦ i ≦ L)
Schritt S20: Der Verifizierer 800 gibt die L Informationen yi und die öffentliche Information k in den Modulo-Addierer 840 ein, in welchem ein akkumulierter Wert Y berechnet wird durch
und gibt diesen in den n-fach-Punktrechner 845 ein, der die Funktion Γ (Y*P) und so weiter berechnet und dadurch W in folgender Weise errechnet:
W = Γ(Y*P) = YP über Ea,b (GF(q)) (87).
Schritt S21: Z' und W werden in den Komparator 850 eingegeben, wo sie miteinander vergli­ chen werden um sicherzustellen, daß W = Z'.
Wenn beide miteinander übereinstimmen, wird davon ausgegangen, daß die L Doku­ mente mi jeweils ordnungsgemäß von den L autorisierten Unterzeichnern i unterzeichnet wurden.
Unter Berücksichtigung der Art der Erzeugung des akkumulierten Werts Y gilt
Y P ∼ (yL-1P) + {dL(rLP)} + {eL(sLP)} ∼ yLP + dLXL + eLIL = . . . ∼ (d1X1 + . . . + dLXL + e1I1 + . . . + eLIL) über Ea,b (GF(q)) (88).
Wenn also der obige Vergleichstest durch den Komparator 850 bestanden wird, akzeptiert der Verifizierer 800 die Dokumente in (i = 1, . . ., L) als durch L autorisierte Unterzeichner jeweils ordnungsgemäß unterzeichnet.
Bewertung der Ausführungsbeispiele
Es erfolgt nun eine Bewertung der vorliegenden Erfindung im Vergleich mit dem RSA-Schema und dem Schnorr-Schema hinsichtlich der Rechenkomplexität grundlegender Operationen, die in den Unterzeichnungs- und Verifikations-Prozeduren enthalten sind, sowie der Redundanz verwendeter Nachrichten und in anderer Hinsicht. Das zu bewertende System ist eines, welches die Mehrfachsignatur und deren Verifikation ausführt. Dementsprechend werden das zweite und das fünfte Ausführungsbeispiel der vorliegenden Erfindung bewertet.
Die Tabelle der Fig. 22 zeigt im Vergleich grundlegende Berechnungen für die Mehrfachsignatur und ihre Verifikation in dem RSA-Schema, dem Schnorr-Schema sowie dem zweiten und dem fünften Ausführungsbeispiel der Erfindung. Die Tabelle von Fig. 23 zeigt die Anzahl von in den Unterzeichnungs- und Verifikations-Prozeduren der jeweiligen Schemata enthaltenen Berechnun­ gen, wenn die Gleichungen in Fig. 22 verwendet werden. Fig. 23 zeigt außerdem die Redundanz von Nachrichten, die Anzahl von Kommunikationen, die zur Verifizierung aller Signaturen erforderlich sind und die Anzahl von Zirkulationsdurchläufen jeder Nachricht.
(1) Rechenumfang beim Unterzeichner
Bei den Operationen zum Zwecke der Unterzeichnung, die in der Tabelle von Fig. 22 gezeigt sind, sind die Berechnungen der Einweg-Funktionen f, fi und hi schneller als die Multiplikation und die n-fach-Punktrechnung. Daher wird der Rechenaufwand jeder Unterzeichnervorrichtung Im Hinblick auf die Anzahl von Modulo-N-Multiplikationen (einschließlich Modulo-N- oder -p- Rechnungen) und die Anzahl von Berechnungen verglichen, die für den n-fach-Punkt auf der elliptischen Kurve durchgeführt werden.
Gewöhnlich wird |N| =1024 und |q| =160 empfohlen. In diesem Fall ist, da die führenden Terme jeweils der ersten Berechnung entsprechen, die Verarbeitungsgeschwindigkeit bei dem zweiten und dem fünften Ausführungsbeispiel mehr als fünfmal so groß wie die im Fall unter Verwendung des RSA-Verschlüsselungssystems, wie in Fig. 23 gezeigt. Es wurde berichtet, daß die Berechnung des n-fach-Punkts auf der elliptischen Kurve, wie bei dem fünften Ausführungs­ beispiel, etwa zehnmal so schnell wie die Unterzeichnungsprozedur unter Verwendung des RSA- Verschlüsselungssystems ist (siehe beispielsweise http://www/certicom.com/html/eccqa.html).
(2) Rechenumfang beim Verifizierer
Bei den Berechnungen zur Signaturverifikation, die in Fig. 22 gezeigt sind, sind die Berechnungen der Einweg-Funktionen f, fi und hi schneller als die Multiplikation und die Berechnung des n-fach- Punkts auf der elliptischen Kurve. Daher wird der Verarbeitungsumfang beim Verifizierer im Hinblick auf die Anzahl von Potenzierungen (einschließlich Modulo-N- oder -p-Berechnungen) und die Anzahl von Berechnungen für den n-fach-Punkt auf der elliptischen Kurve verglichen. Wie in Fig. 23 gezeigt, ist die Rechenbelastung für die Signaturverifikation durch die vorliegende Erfindung die gleiche wie im Fall der Verwendung des RSA-Verschlüsselungssystems, aber im wesentlichen halb so groß wie diejenigen im Fall der Verwendung des Schnorr-Schemas.
(3) Nachrichtenredundanz
Bei jedem Multi-Signaturschema wird die ID-Information der Nachricht für jede einzelne Signatur (die ID'L-Komponenten) im Hinblick darauf hinzugefügt, daß der Unterzeichner deutlich wird. Im folgenden wird die Redundanz der Nachricht {ID', X, m, y} unter Verwendung der Anzahl von Bits jeweils der X- und der y-Komponente bewertet. Die Signaturkomponente (y-Komponente) bei Verwendung des RSA-Verschlüsselungssystems ist repräsentiert durch DL . . . D1 (f(m)). Die Ergebnisse sind in Fig. 23 gezeigt.
Bei dem Verfahren des zweiten und des fünften Ausführungsbeispiels der vorliegenden Erfindung ergibt sich L×|X| + |y| Bits. Die Anwendung des fünften Ausführungsbeispiels liefert |p| = |q| = |e| = 160 und |X| = |q| + 1; d. h. 161L + 160 Bits. Dies zeigt an, daß für den Fall von 2 ≦ L ≦ 6 das Verfahren des fünften Ausführungsbeispiels vorteilhaft ist.
(4) Anzahl von Kommunikationen und Anzahl von Zirkulationsdurchläufen
Wie zuvor in Verbindung mit dem Hintergrund der vorliegenden Erfindung erläutert, beinhalten die Multi-Signaturprozedur und die Verifikationsprozedur mit dem Schnorr-Schema zwei Zirkula­ tionsrunden oder Umläufe der Nachricht zu den Unterzeichnern. Daraus ergibt sich, daß die erforderliche Anzahl von Kommunikationen ebenfalls doppelt so groß wie die bei den anderen Schemata ist.
Was die Basis der Sicherheit des Signaturschemas und des Block-Verifikationsschemas gemäß der vorliegenden Erfindung angeht, schließt die Schwierigkeit des diskreten Logarithmusproblems durch das Modulo-p jede Erfolgsmöglichkeit zur Berechnung der geheimen Information si aus der öffentlichen Information {p, q, g, Ii} aus. Daß jede Unterzeichnervorrichtung nicht die Mehrfach­ signatur einschließlich der Signatur irgendeiner anderen Unterzeichnervorrichtung fälschen kann, kann garantiert werden durch Kombination der Verfahren der vorliegenden Erfindung mit der "Exakte Sicherheit"-Eigenschaft unter dem sogenannten "Random-Oracle-Modell", das Ergebnis der theoretischen Studien der Rechenkomplexität ist.
Hinsichtlich der "Exakte Sicherheit"-Eigenschaft wird beispielsweise verwiesen auf die Fundstelle M. Bellare and P. Rogaway, "Random Oracles are Practical: A Paradigm for Designing Efficient Protocols", Proc. of the First ACM Conference on Computer and Communications Security, Seiten 62-73, und K. Ohta and T. Okamoto, "The Exact Security of Multi-Signature Scheines", Technical Report of IEICE ISEC97-27.
Wie oben beschrieben, kann gemäß der vorliegenden Erfindung die Signaturerzeugungsverarbei­ tung mehr als fünfmal so schnell wie im Fall der Verwendung des RSA-Schemas ausgeführt werden. Die Signaturverifikationsverarbeitung stimmt in der Geschwindigkeit mit dem Fall der Verwendung des RSA-Schemas überein, kann jedoch doppelt so schnell gemacht werden wie im Fall der wiederholten Verwendung des Schnorr-Schemas. Wenn L gleich 6 oder kleiner ist, ist die Redundanz der Nachricht bei der vorliegenden Erfindung die gleiche wie im Fall der wiederholten Verwendung des Schnorr-Schemas und ist vorteilhafter als im Fall der Verwendung des RSA- Schemas.

Claims (70)

1. Verfahren, mit dem ein Verifizierer en-bloc digitale Signaturen verifiziert, die von einer Reihe von Unterzeichnern i, i = 1, 2, . . . L, wobei L eine ganze Zahl gleich oder größer als zwei ist, an einem in elektronischer Form vorliegenden Dokument m'i angebracht wurden, wobei Information enthaltend einen Parameter q für jeden der Unterzeichner i zur Erzeugung einer Signaturfunktion Sgi und einen Parameter β = G1(q), der mit einer Funktion G1 unter Verwendung des Parameters q erhalten wird, vorab veröffentlicht wird, umfassend die Schritte:
  • - jeder Unterzeichner i
    • (a) erzeugt eine erste Zufallszahl si als geheime Information, erzeugt dann Information Ii = G2(si, β) mit einer Funktion G2 unter Verwendung des öffentlichen Parameters β und der ersten Zufallszahl si und veröffentlicht die Information Ii sowie zwei Einweg-Funktionen fi und hi und Identifikationsinformation IDi, die von dem Unterzeichner i verwendet wird, als seine öffentliche Information {IDi, Ii, fi, hi};
    • (b) erzeugt eine zweite Zufallszahl ri, erzeugt dann Information Xi = Φ(ri, β), indem der Parameter β und die zweite Zufallszahl ri in eine Funktion Φ eingesetzt werden, und setzt Information, die die Information Xi enthält, auf X'i;
    • (c) erzeugt
      ei = fi(X'i, m'i)
      di = hi(X'i, m'i)
      mit den Einweg-Funktionen fi und hi unter Verwendung von Dokumentinformation m'i, die ein zu unterzeichnendes Dokument mi enthält, sowie der Information X'i; und
    • (d) erzeugt für Information enthaltend ei, di, si und ri eine Signatur
      yi = Sgi(ei, di, si, ri, yi-1)
      mit der Signaturfunktion Sgi, die unter Verwendung des Parameters q erzeugt wird, und sendet Information {ID'i, X'i, m'i, yi}, die die Identifikationsinformation IDi als Identifikationsinformation ID'i enthält, an den nächsten Unterzeichner (i+1) in der Reihe von Unterzeichnern i = 1 bis L, wobei der letzte Unterzeichner L die Information {ID'L, X'L, m'L, yL} an den Verifizierer als letzte Bestimmung sendet; und
  • - der Verifizierer
    • (e) berechnet, aus der öffentlichen Information {IDi, Ii, fi, hi}, Information Ii entspre­ chend der Identifikationsinformation IDi, die in der Information ID'i in der empfangenen Informa­ tion {ID'L, X'L, m'L, yL} enthalten ist, und die Einweg-Funktionen fi und hi und berechnet ei und di unter Verwendung der Einweg-Funktionen fi und hi sowie X'i und m'i in den empfangenen Informationen X'L und m'L;
    • (f) berechnet die Information Xi, die in der Information X'i enthalten ist, und berechnet
      Z' = V((Xi*di), (Ii*ei) | i = 1, . . ., L)
      mit einer Funktion V, enthaltend Berechnungen von (Xi*di) aus di und Xi und (Ii*ei) aus ei und Ii, für i = 1, . . . L; und
    • (g) berechnet W = Γ(yL*β) mit einer Funktion Γ, die eine Berechnung von (yL*β) von yL und β enthält, prüft dann ob W = Z' und entscheidet, falls beide Werte miteinander übereinstim­ men, daß die Signaturen alle gültig sind.
2. Verfahren, bei dem ein Verifizierer en-bloc digitale Signaturen verifiziert, die von Unterzeichnern i, i = 1, 2, . . . L, wobei L eine ganze Zahl gleich oder größer als zwei ist, an einem in elektronischer Form vorliegenden Dokument m'i angebracht wurden, wobei Information enthaltend einen Parameter q für jeden der Unterzeichner i zur Erzeugung einer Signaturfunktion Sgi und einen Parameter β = G1(q), der unter Verwendung des Parameters q mit einer Funktion G1 erhalten wird, vorab veröffentlicht wird, umfassend die Schritte:
  • - jeder Unterzeichner i
    • (a) erzeugt eine erste Zufallszahl si als geheime Information, erzeugt dann Information Ii = G2(si, β) mit einer Funktion G2 unter Verwendung des öffentlichen Parameters β und der ersten Zufallszahl si und veröffentlicht die Information Ii sowie zwei Einweg-Funktionen fi und hi und Identifikationsinformation IDi, die von dem Unterzeichner i verwendet wird, als seine öffentliche Information {IDi, Ii, fi, hi};
    • (b) erzeugt eine zweite Zufallszahl ri, erzeugt dann Information Xi = Φ(ri, β), indem der Parameter β und die zweite Zufallszahl ri in eine Funktion Φ eingesetzt werden, und setzt Information, die die Information Xi enthält, auf X'i;
    • (c) erzeugt
      ei = fi(X'i, m'i)
      di = hi(X'i, m'i)
      mit den Einweg-Funktionen fi und hi unter Verwendung von Dokumentinformation, die ein zu unterzeichnendes Dokument in enthält, sowie der Information X'i; und
    • (d) erzeugt für Information enthaltend ei, di, si und ri eine Signatur
      yi = Sgi(ei, di, si, ri)
      mit der Signaturfunktion Sgi, die unter Verwendung des Parameters q erzeugt wird, und sendet die Information {ID'i, X'i, m'i, yi}, die die Identifikationsinformation IDi als Identifikationsinforma­ tion ID'i enthält, an den Verifizierer als letzte Bestimmung; und
  • - der Verifizierer
    • (e) berechnet aus der öffentlichen Information {IDi, Ii, fi, hi} Information Ii entsprechend der Identifikationsinformation IDi, die in der Information ID'i in der empfangenen Information {ID'i, X'i, m'i, yi} enthalten ist, und die Einweg-Funktionen fi und hi und berechnet ei und di unter Verwendung der Einweg-Funktionen fi und hi und der empfangenen Informationen X'i und m'i;
    • (f) berechnet die Information Xi, die in der Information X'i enthalten ist, und berechnet
      Z' = V((Xi*di), (Ii*ei) | i = 1, . . ., L)
      mit einer Funktion V, die Berechnungen von (Xi*di) aus di und Xi sowie von (Ii*ei) aus ei und Ii enthält, für i = 1, . . ., L; und
    • (g) berechnet W = Γ(Y*β) mit einer Funktion Γ, die eine Berechnung von (Y*β) unter Verwendung von β und eines akkumulierten Wert Y von y1 bis yL enthält, prüft dann, ob W = Z' und entscheidet, wenn beide Werte miteinander übereinstimmen, daß die Signaturen alle gültig sind.
3. Verfahren nach Anspruch 1, bei dem:
X'i = (X'i-1, Xi),
m'i = (m'i-1, mi),
ID'i = (ID'i-1, IDi),
X'0 = leere Menge
m'0 = leere Menge
ID'0 = leere Menge
y0 = 0; und
der Unterzeichner i von dem Unterzeichner (i-1) {ID'i-1, X'i-1, m'i-1 yi-1} empfängt und die Schritte (b) bis (d) ausführt, und Information {ID'i, X'i, yi} an den Unterzeichner (i+1) sendet, während der letzte Unterzeichner L die Schritte (b) bis (d) mit von dem Unterzeichner (i-1) erhaltender Information durchläuft und Information {ID'L, X'L, m'L, yL} erzeugt und an den Verifizierer sendet.
4. Verfahren nach Anspruch 3, bei dem m'1 = m1 = m; m2 = m3 . . . = mL = leere Menge; und
der Unterzeichner i von dem Unterzeichner (i-1) Information {ID'i-1, X'i-1, m, yi-1{ empfängt und
die Schritte (b) bis (d) ausführt und Information {ID'i, X'i, m, yi} an den Unterzeichner (i+1) sendet, während der letzte Unterzeichner L die Schritte (b) bis (d) mit von dem Unterzeichner (i-1) erhaltener Information ausführt, Information {ID'L, X'L, m, yL} erzeugt und diese an den Verifizierer sendet.
5. Verfahren nach Anspruch 2, bei dem X'i = Xi, m'i = mi, und ID'i = IDi; und jeder Unter­ zeichner die Schritte (b) bis (d) ausführt und Information {IDi, Xi, mi, yi} erzeugt und einzeln an den Verifizierer sendet.
6. Verfahren nach Anspruch 3 oder 4, bei dem ID'i = (ID'i-1, IDi) ersetzt wird durch ID'i = (ID'i-1, Ii).
7. Verfahren nach Anspruch 3 oder 4, bei dem, wenn die Anzahl von Elementen einer Gruppe p ist, ein Element g der Gruppe, bei dem eine Gruppenrechnung beginnt, der Parameter β ist und eine ganze Zahl, mit der, wenn das Element g q-mal gruppenberechnet wird, die Berechnung zu g zurückkehrt, der Parameter q ist, und diese Parameter {p, q, g} als öffentliche Systeminformation veröffentlicht werden,
die Berechnung der Information Ii unter Verwendung der Funktion G2 (si, g) in Schritt (a) durch eine si-malige Gruppenberechnung des Parameters g unter Verwendung des Parameters p durchgeführt wird,
die Berechnung der Information Xi unter Verwendung der Funktion Φ im Schritt (b) durch ri-malige Gruppenberechnungen des Parameters g unter Verwendung des Parameters p durchgeführt wird,
der Schritt (f) ein Schritt zum Erhalt von Z' durch sequentielle Berechnung von Werten (Xi*di), erhalten durch di-malige Multikomponenten-Gruppenberechnungen von Xi, und Werten (Ii*ei), erhalten durch ei-malige Multikomponenten-Gruppenberechnungen von Ii, für jeden Unterzeichner i von 1 bis L ist, und
der Schritt (g) ein Schritt der Berechnung von W mittels y'L-maligen Berechnungen des Parameters g unter Verwendung der empfangenen Information yL und der öffentlichen Informa­ tionen p und q ist.
8. Verfahren nach Anspruch 7, ferner umfassend einen Schritt der Voraberzeugung von p und q, bei denen es sich um Primzahlen handelt, für die die Beziehung gilt 1 = p mod q, sowie des Erzeugens eines Grundelements α von (Z/pZ)*, und bei dem die Funktion G1 zur Berechnung des Parameters β = g durch die folgende Gleichung gegeben ist:
g = G1(q) = α(p-1)/q mod p;
die Funktion G2 (si, g) im Schritt (a) durch die folgende Gleichung gegeben ist:
Ii = G2(si, g) = gSi mod p,
die Funktion Φ in Schritt (b) durch die folgende Gleichung gegeben ist:
Xi = Φ(ri, g) = gri mod p,
die Signaturfunktion Sgi in Schritt (d) gegeben ist durch die folgende Gleichung unter Verwendung von ei, di, ri, si, q und yi-1:
yi = Sgi(ei, di, si, ri, yi-1) = (yi-1 + diri + eisi) mod q,
die Funktion V im Schritt (f) gegeben ist durch die folgende Gleichung:
Z' = V((Xi*di), (Ii*ei) | i = 1, . . ., L) = X1 d1 I1 e1 . . . XL dL IL eL mod p; und
die Funktion F in Schritt (g) gegeben ist durch die folgende Gleichung:
W = Γ(yL*g) = gyL mod p.
9. Verfahren nach Anspruch 5, bei dem, wenn die Anzahl von Elementen einer Gruppe p ist, ein Element g der Gruppe, bei dem eine Gruppenrechnung beginnt, der Parameter β ist und eine ganze Zahl mit der, wenn das Element g q-mal gruppenberechnet wird, die Berechnung zu g zurückkehrt, der Parameter q ist, und diese Parameter {p, q, g} als öffentliche Systeminformation veröffentlicht werden,
die Berechnung der Information Ii unter Verwendung der Funktion G2 (si, g) in Schritt (a) durch eine si-malige Gruppenberechnung des Parameters g unter Verwendung des Parameters p durchgeführt wird,
die Berechnung der Information Xi unter Verwendung der Funktion Φ im Schritt (b) durch ri-malige Gruppenberechnungen des Parameters g unter Verwendung des Parameters p durchgeführt wird,
der Schritt (f) ein Schritt zum Erhalt von Z' durch sequentielle Berechnung von Werten (Xi*di) erhalten durch di-malige Multikomponenten-Gruppenberechnungen von Xi und Werten (Ii*ei), erhalten durch ei-malige Multikomponenten-Gruppenberechnungen von Ii, für jeden Unterzeichner i von 1 bis L ist, und
der Schritt (g) ein Schritt der Berechnung eines akkumulierten Werts Y unter Verwen­ dung von L Informationen yi und der Erzeugung, als W, eines Werts (g*Y) ist, der erhalten wird durch Y-maliges Operieren oder Berechnen des Parameters g unter Verwendung von Y und den öffentlichen Informationen p und q.
10. Verfahren nach Anspruch 9 ferner umfassend einen Schritt der Voraberzeugung von p und q, bei denen es sich um Primzahlen handelt, für die die Beziehung gilt 1 = p mod q, sowie des Erzeugens eines Grundelements α von (Z/pZ)*, und bei dem die Funktion G1 zur Berechnung des Parameters β = g durch die folgende Gleichung gegeben ist:
g = G1(q) = α(p-1)/q mod p;
die Funktion G2(si, g) im Schritt (a) durch die folgende Gleichung gegeben ist:
Ii = G2(si, g) = gsi mod p,
die Funktion Φ in Schritt (b) durch die folgende Gleichung gegeben ist:
Xi = Φ(ri, g) = gri mod p,
die Signaturfunktion Sgi in Schritt (d) durch die folgende Gleichung unter Verwendung von ei, di, ri, si, und q gegeben ist:
yi = Sgi(ei, di, si, ri) = (diri + eisi) mod q,
die Funktion V im Schritt (f) gegeben ist durch die folgende Gleichung:
Z' = V((Xi*di), (Ii*ei) | i = 1, . . ., L) = X1 d1 I1 e1 . . . XL dL IL eL mod p; und
im Schritt (g) der akkumulierte Wert Y berechnet wird durch
und die Funktion Γ in Schritt (g) gegeben ist durch die folgende Gleichung:
W = Γ (Y*g) = gy mod p.
11. Verfahren nach Anspruch 3 oder 4, bei dem der Parameter q ein Parameter eines Definitionsfeldes GF(q) einer elliptischen Kurve Ea,b (GF(q)) ist, und, wenn ein Basispunkt einer Ordnung k auf der elliptischen Kurve durch den Parameter β repräsentiert ist und ein Parameter der elliptischen Kurve durch a, b ∈ GF(q), diese Parameter {q, a, b, P, k} als öffentliche Systemin­ formation veröffentlicht werden, und bei dem
die Berechnung der Information Ii unter Verwendung der Funktion G2 (si, P) im Schritt (a) durch si-malige Gruppenberechnungen des Parameters p ausgeführt wird,
die Berechnung der Information Xi unter Verwendung der Funktion Φ in Schritt (b) durch ri-malige Gruppenberechnungen des Parameters P ausgeführt wird,
der Schritt (f) ein Schritt zum Erhalt von Z' ist durch sequentielles Berechnen von Werten (Xi*di), erhalten durch di-malige Multikomponenten-Gruppenberechnungen von Xi, und Werten (Ii*ei), erhalten durch ei-malige Multikomponenten-Gruppenberechnungen von Ii, für jeden Unterzeichner i von 1 bis L, und
der Schritt (g) ein Schritt der Berechnung von W durch yL-malige Berechnungen des Parameters P auf der elliptischen Kurve unter Verwendung der empfangenen Information yL und der öffentlichen Information p ist.
12. Verfahren nach Anspruch 11, bei dem die Funktion G1 zur Berechnung des Parameters β = P gegeben ist durch folgende Gleichung:
G1(q) = P ∈ Ea,b(GF(q)),
die Funktion G2(si, P) in Schritt (a) gegeben ist durch die folgende Gleichung:
Ii = G2(si, P) = siP über Ea,b (GF(q));
die Funktion Φ in Schritt (b) gegeben ist durch die folgende Gleichung:
Xi = Φ(ri, P) = riP über Ea,b(GF(q));
die Signaturfunktion Sgi in Schritt (d) gegeben ist durch die folgende Gleichung unter Verwendung von ei, di, ei, si und yi-1:
yi = Sgi(ei, di, si, ri, yi-1) = (yi-1 + diri + eisi) mod k,
die Funktion V im Schritt (f) gegeben ist durch die folgende Gleichung:
Z' = V((Xi*di), (Ii*ei) | i = 1, . . ., L) = (d1X1 + . . . + dLXL + e1I1 + . . .+ eLIL) über Ea,b (GF(q)); und
die Funktion Γ im Schritt (g) gegeben ist durch die folgende Gleichung:
W = Γ(yL*P) = yLP über Ea,b(GF(q)).
13. Verfahren nach Anspruch 5, bei dem der Parameter q ein Parameter eines Defini­ tionsfeldes GF(q) einer elliptischen Kurve Ea,b(GF(q)) ist, und, wenn ein Basispunkt einer Ordnung k auf der elliptischen Kurve repräsentiert ist durch den Parameter β, ein Parameter der ellipti­ schen Kurve durch a, b ∈ GF(q), diese Parameter {q, a, b, P, k} als öffentliche Systeminformation veröffentlicht wird, und bei dem
die Berechnung der Information Ii unter Verwendung der Funktion G2(si, P) in Schritt (a) durchgeführt wird durch si-malige Gruppenberechnungen des Parameters p,
die Berechnung der Information Xi unter Verwendung der Funktion Φ in Schritt (b) durchgeführt wird durch ri-malige Gruppenberechnungen des Parameters P,
Schritt (f) ein Schritt ist zum Erhalt von Z' durch sequentielle Berechnung von Werten (Xi*di), erhalten durch di-malige Multikomponenten-Gruppenberechnungen von Xi, und Werten (Ii*ei), erhalten durch ei-malige Multikomponenten-Gruppenberechnungen von Ii, für jeden Unterzeichner i von 1 bis L, und
der Schritt (g) ein Schritt der Berechnung von W durch Y-malige Berechnungen des Parameters P auf der elliptischen Kurve unter Verwendung der empfangenen Information yL und der öffentlichen Information p ist.
14. Verfahren nach Anspruch 13, bei dem die Funktion G1 zur Berechnung des Parameters β = P gegeben ist durch folgende Gleichung:
G1(q) = P ∈ Ea,b(GF(q)),
die Funktion G2(si, P) in Schritt (a) gegeben ist durch die folgende Gleichung:
Ii = G2(si, P) = siP über Ea,b(GF(q));
die Funktion Φ in Schritt (b) gegeben ist durch die folgende Gleichung:
Xi = Φ(ri, P) = riP über Ea,b(GF(q)),
die Signaturfunktion Sgi in Schritt (d) gegeben ist durch die folgende Gleichung unter Verwendung von ei, di, ri und si:
yi = Sgi(ei, di, si, ri) = (diri + eisi) mod k,
die Funktion V in Schritt (f) gegeben ist durch die folgende Gleichung:
Z' = V((Xi*di), (Ii*ei) | i = 1, . . ., L) = (d1X1 + . . . + dLXL + e1I1 + . . . + eLIL) über Ea,b(GF(q)), und
die Funktion Γ in Schritt (g) gegeben ist durch die folgende Gleichung:
15. Unterzeichnervorrichtung für ein System, bei dem jeder einer Reihe von Unterzeich­ nern i = 1, . . ., L, wobei L eine ganze Zahl gleich oder größer als zwei ist, eine digitale Signatur an einem in elektronischer Form vorliegenden Dokument m'i anbringt und ein Verifizierer die digitalen Signaturen en-bloc verifiziert, wobei Information enthaltend einen Parameter q für jeden der Unterzeichner i zur Erzeugung einer Signaturfunktion Sgi und ein Parameter β = G1(q), der mit einer Funktion G1 unter Verwendung des Parameters q erhalten wird, vorab veröffentlicht werden, umfassend:
Speichermittel zur Speicherung der öffentlichen Parameter p und β des Systems, Identi­ fikationsinformation IDi des jeweiligen Unterzeichners i und einer ersten Zufallszahl si als seiner geheimen Information,
G2-Funktionsmittel zur Erzeugung von Information Ii = G2(si, β) mit einer Funktion G2 unter Verwendung des öffentlichen Parameters β und der ersten Zufallszahl si, wobei die Information Ii als öffentliche Information {IDi, Ii, fi, hi} des Unterzeichners zusammen mit einem Paar von Einweg-Funktionen fi und hi und Identifikationsinformation IDi, die von dem jeweiligen Unterzeichner verwendet wird, veröffentlicht wird,
Zufallsgeneratormittel zur Erzeugung einer zweiten Zufallszahl ri,
Φ-Funktionsmittel zum Einsetzen des Parameters β und der zweiten Zufallszahl ri in eine Funktion Φ zur Erzeugung von Information Xi = Φ(ri, β),
zwei Einweg-Funktionsmittel zur Erzeugung von
ei = fi(X'i, m'i)
di = hi(X'i, m'i)
mit den beiden Einweg-Funktionen fi und hi unter Verwendung von Dokumentinformation m'i enthaltend ein zu unterzeichnendes Dokument mi und Information X'i enthaltend die Information Xi,
Signaturfunktionsmittel zur Erzeugung, für Information enthaltend ei, di, si, ri und yi-1, einer Signatur
yi = Sgi(ei, di, si, ri, yi-1)
mit einer Signaturfunktion Sgi, die unter Verwendung des Parameters q erzeugt wird, und
Mittel zum Senden von Information {ID'i, X'i, m'i, yi}, als Information, welche Identifi­ kationsinformation IDi enthält, an den nächsten Unterzeichner (i+1) in der Reihe von Unterzeich­ nern i von 1 bis L, wobei der letzte Unterzeichner L die Information {ID'L, X'L, m'L, yL} an den Verifizierer als letzter Bestimmung sendet.
16. Unterzeichnervorrichtung für ein System, bei dem jeder von Unterzeichnern i = 1, . . ., L, wobei L eine ganze Zahl gleich oder größer als zwei ist, eine digitale Signatur an einem in elektronischer Form vorliegenden Dokument m'i anbringt und ein Verifizierer die digitalen Signaturen en-bloc verifiziert, wobei Information enthaltend einen Parameter q für jeden der Unterzeichner i zur Erzeugung einer Signaturfunktion Sgi und ein Parameter β = G1(q), der unter Verwendung des Parameters q mit einer Funktion G1 erhalten wird, im voraus veröffentlicht werden, umfassend:
Speichermittel zur Speicherung der öffentlichen Parameter q und β des Systems, von Identifikationsinformation IDi des jeweiligen Unterzeichners i und einer ersten Zufallszahl si als seiner geheimen Information,
G2-Funktionsmittel zur Erzeugung von Information Ii = G2(si, β) mit einer Funktion G2 unter Verwendung des öffentlichen Parameters β und der ersten Zufallszahl si, wobei die Information Ii zusammen mit einem Paar von Einweg-Funktionen fi und hi und Identifikationsin­ formation IDi, die der jeweilige Unterzeichner i benutzt, als öffentliche Information {IDi, Ii, fi, hi} des Unterzeichners veröffentlicht wird,
Zufallsgeneratormittel zur Erzeugung einer zweiten Zufallszahl ri, Φ-Funktionsmittel zum Einsetzen des Parameters β und der zweiten Zufallszahl ri in eine Funktion Φ zur Erzeugung von Information Xi = Φ(ri, β),
ein Paar von Einweg-Funktionsmitteln zur Erzeugung von
ei = fi(X'i, m'i)
di = hi(X'i, m'i)
mit dem Paar von Einweg-Funktionen fi und hi unter Verwendung der Dokumentinformation m'i enthaltend ein zu unterzeichnendes Dokument mi und Information X'i enthaltend Information Xi, Signaturfunktionsmittel zur Erzeugung, für Information enthaltend ei, di, si und ri, einer Signatur
yi = Sgi(ei, di, si, ri)
mit der Signaturfunktion Sgi, die unter Verwendung des Parameters q erzeugt wird, und
Mittel zum Senden von Information {ID'i, X'i, m'i, yi-1}, als die Identifikationsinformation IDi enthaltende Information an den Verifizierer.
17. Unterzeichnervorrichtung nach Anspruch 15, bei der
X'i = (X'i-1, Xi),
m'i = (m'i-1, mi),
ID'i = (ID'i-1, IDi),
X'0 = leere Menge
m'0 = leere Menge
ID'0=leere Menge
y0 = 0, und
bei Empfang von {ID'i-1, X'i-1, m'i-1, yi-1} von dem Unterzeichner (i-1) die Sendemittel Information {ID'i, X'i, m'i, yi} an den nächsten Unterzeichner (i+1) aussenden.
18. Unterzeichnervorrichtung nach Anspruch 17, bei der m'i = m1 = m, m2 = m3 . . . = m = leere Menge, die Unterzeichnervorrichtung des Unterzeichners i Information {ID'i-1, Xi-1, m'i-1, yi-1} von dem Unterzeichner (i-1) empfängt, und die Sendemittel Information {ID'i, X'i, m, yi} an den nächsten Unterzeichner (i+1) aussenden.
19. Unterzeichnervorrichtung nach Anspruch 16, bei der X'i = Xi, m'i = mi, und ID'i = IDi und die Sendemittel Information {IDi, Xi, mi, yi}, als die Information {ID'i, X'i, m'i yi}, erzeugen und an den Verifizierer aussenden.
20. Unterzeichnervorrichtung nach Anspruch 17 oder 18, bei der ID'i = ( ID'i-1, IDi) ersetzt wird durch ID'i = (ID'i-1 Ii).
21. Unterzeichnervorrichtung nach Anspruch 17 oder 18, bei der, wenn p die Anzahl von Elementen einer Gruppe repräsentiert, ein Element g der Gruppe, bei dem eine Gruppenbe­ rechnung beginnt, durch den Parameter p repräsentiert wird und eine ganze Zahl bei der, wenn das Element g q-mal gruppenberechnet wird, die Berechnung zu g zurückkehrt, durch den Parameter q repräsentiert wird und diese Parameter {p, q, g} als öffentliche Systeminformation veröffentlicht werden,
die G2-Funktionsmittel Mittel sind zur Berechnung der Information Ii durch Durchführen von si-maligen Gruppenberechnungen des Parameters g unter Verwendung des Parameters p, und
die ϕ-Funktionsmittel Mittel sind zur Berechnung der Information Xi durch Durchführung von ri-maligen Gruppenberechnungen des Parameters g unter Verwendung des Parameters p.
22. Unterzeichnervorrichtung nach Anspruch 21, bei der p und q Primzahlen sind, für die die Beziehung gilt 1 = p mod q und ein Grundelement von (Z/pZ)* durch α repräsentiert wird,
der Parameter β = g durch folgende Gleichung mit der Funktion G1 gegeben ist:
g = G1(q) = α(p-1)/q mod p,
die G2-Funktionsmittel Mittel sind zur Berechnung der Funktion G2 (si, g) durch die folgende Gleichung:
Ii = G2(si, g) = gsi mod p
die Φ-Funktionsmittel Mittel sind zur Berechnung der Funktion Φ durch die folgende Gleichung:
Xi = Φ(ri, g) = gri mod p, und
die Signaturfunktionsmittel Mittel sind zur Berechnung der Signaturfunktion Sgi durch die folgende Gleichung unter Verwendung von ei, di, ri, si, q und yi-1:
yi = Sgi(ei, di, si, ri, yi-1) = (yi-1 + diri + eisi) mod q.
23. Unterzeichnervorrichtung nach Anspruch 19, bei der, wenn p die Anzahl von Elementen einer Gruppe repräsentiert, ein Element g der Gruppe, bei dem eine Gruppenberech­ nung beginnt, durch den Parameter β repräsentiert wird und eine ganze Zahl bei der, wenn das Element g q-mal gruppenberechnet wird, die Berechnung zu g zurückkehrt, durch den Parameter q repräsentiert wird, diese Parameter {p, q, g} als öffentliche Systeminformation veröffentlicht werden,
die G2-Funktionsmittel Mittel sind zur Berechnung der Information Ii auf der Basis der Funktion G2(si, g), durch Durchführen von si-maligen Gruppenberechnungen des Parameters g unter Verwendung des Parameters p, und
die Φ-Funktionsmittel Mittel sind zur Berechnung der Information Xi auf der Basis der Funktion Φ durch Durchführen von ri-maligen Gruppenberechnungen des Parameters g unter Verwendung des Parameters p.
24. Unterzeichnervorrichtung nach Anspruch 23, bei der p und q Primzahlen sind, für die die Beziehung gilt 1 = p mod q und ein Grundelement von (Z/pZ)* durch α repräsentiert wird,
die G1-Funktionsmittel zur Berechnung der Parameters β = g Mittel sind zur Berechnung von
g = G1(q) = α(p-1)/q mod p;
die G2-Funktionsmittel Mittel sind zur Berechnung der Funktion G2(si, g) durch die folgende Gleichung:
Ii = G2(si, g) = gsi mod p
die Φ-Funktionsmittel Mittel sind zur Berechnung der Funktion Φ durch die folgende Gleichung:
Xi = Φ(ri, g) = gri mod p, und
die Signaturfunktionsmittel Mittel sind zur Berechnung der Signaturfunktion Sgi durch die folgende Gleichung unter Verwendung von ei, di, ri, si und q:
yi = Sgi(ei, di, si, ri) = (diri + eisi) mod q.
25. Unterzeichnervorrichtung nach Anspruch 17 oder 18, bei der der Parameter q ein Parameter eines Definitionsfeldes GF(q) einer elliptischen Kurve Ea,b(GF(q)) ist, und, wenn ein Basispunkt einer Ordnung k auf der elliptischen Kurve durch den Parameter β repräsentiert wird und ein Parameter der elliptischen Kurve durch a, b ∈ GF(q), diese Parameter {q, a, b, P, k} als öffentliche Systeminformation veröffentlicht werden, und bei der
die G2-Funktionsmittel Mittel sind zur Berechnung der Information Ii auf der Basis der Funktion G2(si, P) durch Durchführen von si-maligen Gruppenberechnungen des Parameters p, und
die Φ-Funktionsmittel Mittel sind zur Berechnung der Information Xi auf der Basis der Funktion Φ durch Durchführen von ri-maligen Gruppenberechnungen des Parameters P.
26. Unterzeichnervorrichtung nach Anspruch 25, bei der der Parameter β = P auf der Basis der Funktion G1 durch die folgende Gleichung gegeben ist:
G1(q) = P ∈ Ea,b(GF(q));
die G2-Funktionsmittel Mittel sind zur Berechnung der Funktion G2 (si, P) durch die folgende Gleichung:
Ii = G2(si, P) = siP über Ea,b(GF(q));
die Φ-Funktionsmittel Mittel sind zur Berechnung der Funktion Φ durch die folgende Gleichung:
Xi = Φ(ri, P) = riP über Ea,b(GF(q)); und
die Signaturfunktionsmittel Mittel sind zur Berechnung der Signaturfunktion Sgi durch die folgende Gleichung unter Verwendung von ei, di, ri, si und yi-1:
yi = Sgi(ei, di, si, ri, yi-1) = (yi-1 + diri + eisi) mod k.
27. Unterzeichnervorrichtung nach Anspruch 19, bei der der Parameter q ein Parameter eines Definitionsfeldes GF(q) einer elliptischen Kurve Ea,b (GF(q)) ist, und, wenn ein Basispunkt einer Ordnung k auf der elliptischen Kurve durch den Parameter β repräsentiert wird und ein Parameter der elliptischen Kurve durch a, b ∈ GF(q), diese Parameter {q, a, b, P, k} als öffentliche Systeminformation veröffentlicht werden, und bei der:
die G2-Funktionsmittel Mittel sind zur Berechnung der Information Ii auf der Basis der Funktion G2(si, P) durch Durchführen von si-maligen Gruppenberechnungen des Parameters p, und
die Φ-Funktionsmittel Mittel sind zur Berechnung der Information Xi auf der Basis der Funktion Φ durch Durchführen von r1-maligen Gruppenberechnungen des Parameters P.
28. Unterzeichnervorrichtung nach Anspruch 27, bei der:
der Parameter β = P auf der Basis der Funktion G1 gegeben ist durch die folgenden Gleichung:
G1(q) = P ∈ Ea,b(GF(q));
die G2-Funktionsmittel Mittel sind zur Berechnung der Funktion G2(si, P) durch die folgende Gleichung:
Ii = G2(si, P) = siP über Ea,b(GF(q));
die Φ-Funktionsmittel Mittel sind zur Berechnung der Funktion Φ durch die folgende Gleichung;
Xi = Φ(ri, P) = riP über Ea,b (GF(q)), und
die Signaturfunktionsmittel Mittel sind zur Berechnung der Signaturfunktion Sgi durch die folgende Gleichung unter Verwendung von ei, di, ri und si:
yi = Sgi(ei, di, si, ri) = (diri + eisi) mod k.
29. Verifizierervorrichtung für ein System, bei dem jeder einer Reihe von Unterzeichnern i = 1 bis L, wobei L eine ganze Zahl gleich oder größer als zwei ist, eine digitale Signatur an einem in elektronischer Form vorliegenden Dokument m'i anbringt und ein Verifizierer die digitale Signaturen der Unterzeichner en-bloc verifiziert, wobei Information enthaltend einen Parameter q für jeden der Unterzeichner i zur Erzeugung einer Signaturfunktion Sgi und ein Parameter β= G1(q), der unter Verwendung des Parameters q mit einer Funktion G1 erhalten wird, im voraus veröffentlicht werden, umfassend
ein Paar Einweg-Funktionsmittel zum Erhalt, aus öffentlicher Information {IDi, Ii, fi, hi}, von Information Ii entsprechend Identifikationsinformation IDi, die in ID'L in Information {ID'L, X'L, m'L, yL} enthalten ist, welche von dem letzten der Reihe von Unterzeichnern empfangen wird,
sowie zum Erhalt von Einweg-Funktionen fi und hi und zur Berechnung von
ei = fi(X'i, m'i)
di = hi(X'i, m'i)
unter Verwendung der Einweg-Funktionen fi und hi und Information X'i und m'i, die in den empfangenen Informationen X'L und m'L enthalten ist,
V-Funktionsmittel zum Erhalt von Xi in der Information X'i und zur Berechnung von
Z' = V((Xi*di), (Ii*ei) | i = 1, . . ., L)
unter Verwendung der Funktion V, die eine Berechnung (Xi*di) von di und Xi sowie eine Berechnung (Ii*ei) von ei und Ii enthält,
Γ-Funktionsmittel zum Erhalt von W = Γ(yi*β) durch eine Funktion Γ, die eine Berech­ nung (yi*β) von yi und β enthält, und
Vergleichsmittel, die mit Z' und W beliefert werden für einen Vergleich, ob diese mit­ einander übereinstimmen, und, wenn sie miteinander übereinstimmen, zur Lieferung einer Ausgabe, die anzeigt, daß das empfangene Dokument (m1, . . ., mL) von den L Unterzeichnervor­ richtungen ordnungsgemäß unterzeichnet wurde.
30. Verifizierervorrichtung für ein System, bei dem jeder von Unterzeichnern i = 1 bis L, wobei L eine ganze Zahl gleich oder größer als zwei ist, eine digitale Signatur an einem in elektronischer Form vorliegenden Dokument m'i anbringt und ein Verifizierer die digitalen Signaturen der Unterzeichner en-bloc verifiziert, wobei Information enthaltend einen Parameter q für jeden der Unterzeichner i zur Erzeugung einer Signaturfunktion Sgi und ein Parameter β = G1(q), der unter Verwendung des Parameters q mit einer Funktion G1 erhalten wird, im voraus veröffentlicht werden, umfassend
ein Paar Einweg-Funktionsmittel zum Erhalt, aus öffentlicher Information {IDi Ii fi, hi}, von Information Ii entsprechend Identifikationsinformation IDi, die in ID'i in Information {ID'1, X'i, m'i, yi} enthalten ist, welche von den einzelnen Unterzeichnern i empfangen wird, sowie von Einweg-Funktionen fi und hi und zur Berechnung von
ei = fi(X'i, m'i)
di = hi(X'i, m'i)
unter Verwendung der Einweg-Funktionen fi und hi und der empfangenen Informationen X'i und m'i;
V-Funktionsmittel zum Erhalt von Xi in der Information X'i und zur Berechnung von
Z' = V((Xi*di), (Ii*ei) | i = 1, . . ., L)
unter Verwendung einer Funktion, die eine Berechnung (Xi*di) von di und Xi sowie eine Berech­ nung (Ii*ei) von ei und Ii enthält,
Γ-Funktionsmittel zum Erhalt von W = Γ(Y*β) mittels einer Funktion Γ, die eine Berech­ nung (Y*β) unter Verwendung von β und eines akkumulierten Werts Y von y1 bis yL enthält, und
Vergleichsmittel, die mit Z' und W beliefert werden, um zu prüfen, ob diese beiden übereinstimmen, und, wenn sie miteinander übereinstimmen, zur Lieferung einer Ausgabe, die anzeigt, daß das empfangene Dokument (m1, . . ., mL) von L Unterzeichnern ordnungsgemäß unterzeichnet wurde.
31. Verifizierervorrichtung nach Anspruch 29, bei der
X'i = (X'i-1, Xi),
m'i = (m'i-1 m),
ID'i = (ID'i-1, IDi),
X'0 = leere Menge
m'0 = leere Menge
ID'0=leere Menge
y0 = leere Menge.
32. Verifizierervorrichtung nach Anspruch 31, bei der m'1 = m1 = m; m2 = m3 . . . = mL = leere Menge und die Verifizierervorrichtung unterzeichnete Information {IDL, XL, mL, yL} direkt von dem letzten Unterzeichner L empfängt.
33. Verifizierervorrichtung nach Anspruch 30, bei der X'i = Xi, m'i = mi, und ID'i = IDi.
34. Verifizierervorrichtung nach Anspruch 31 oder 32, bei der ID'i = (ID'i-1, IDi) ersetzt ist durch ID'i = (ID'i-1, Ii).
35. Verifizierervorrichtung nach Anspruch 31 oder 32, bei der, wenn p die Anzahl von Elementen einer Gruppe repräsentiert, ein Element g der Gruppe, bei dem eine Gruppenberech­ nung beginnt, durch den Parameter β repräsentiert wird und eine ganze Zahl, bei der, wenn das Element g q-mal gruppenberechnet wird, die Berechnung zu g zurückkehrt, durch den Parameter q repräsentiert wird und diese Parameter {p, q, g} als öffentliche Systeminformation veröffent­ licht werden,
die V-Funktionsmittel Mittel sind zum Erhalt von Z' durch sequentielle Berechnung von Werten (Xi*di), erhalten durch di-malige Multikomponenten-Gruppenberechnungen von Xi, und Werten (Ii*ei), erhalten durch ei-malige Multikomponenten-Gruppenberechnungen von Ii für jedes i von 1 bis L, und
die Γ-Funktionsmittel Mittel sind zum Erhalt von W durch Durchführen von yL-maligen Gruppenberechnungen des Parameters g unter Verwendung der empfangenen Information yL und der öffentlichen Informationen p und q.
36. Verifizierervorrichtung nach Anspruch 35, bei der p und q Primzahlen sind, für die die Beziehung gilt 1 =p mod q, und, wenn α ein Grundelement von (Z/pZ)* repräsentiert,
der Parameter β = g durch folgende Gleichung mit der Funktion G1 gegeben ist:
g = G1(q) = α(p-1)/q mod p;
die V-Funktionsmittel Mittel sind zur Berechnung der Funktion V durch die folgende Gleichung:
Z' = V((Xi*di), (Ii*ei) | i = 1, . . ., L) = X1 d1 I1 e1 . . . XL dL IL eL mod p, und
die Γ-Funktionsmittel Mittel sind zur Berechnung der Funktion Γ durch die folgende Gleichung:
W = Γ(yi*g) = gYL mod p.
37. Verifizierervorrichtung nach Anspruch 33, bei der, wenn p die Anzahl von Elemen­ ten einer Gruppe repräsentiert, ein Element g der Gruppe, bei dem eine Gruppenberechnung beginnt, durch den Parameter β repräsentiert wird und eine ganze Zahl, bei der, wenn das Element g q-mal gruppenberechnet wird, die Berechnung zu g zurückkehrt, durch den Parameter q repräsentiert wird und diese Parameter {p, q, g} als öffentliche Systeminformation veröffent­ licht werden,
die V-Funktionsmittel Mittel sind zum Erhalt von Z' durch sequentielle Berechnung von Werten (Xi*di), erhalten durch di-malige Multikomponenten-Gruppenberechnungen von Xi, und Werten (Ii*ei), erhalten durch ei-malige Multikomponenten-Gruppenberechnungen von Ii, für jedes i von 1 bis L, und
die Γ-Funktionsmittel Mittel sind zum Berechnen eines akkumulierten Werts Y unter Verwendung von L empfangenen Informationen yi und zur Erzeugung, als W, eines Wertes (g*Y), erhalten durch Y-maliges Berechnen des Parameters g unter Verwendung von Y und der öffentlichen Informationen p und q.
38. Verifizierervorrichtung nach Anspruch 37, bei der p und q Primzahlen sind, für die die Beziehung gilt 1 = p mod q, und, wenn α ein Grundelement von (Z/pZ)* repräsentiert,
der Parameter β = g durch folgende Gleichung mit der Funktion G1 gegeben ist:
g = G1(q) = α(p-1)/q mod p;
die V-Funktionsmittel Mittel sind zur Berechnung der Funktion V durch die folgende Gleichung:
Z' = V((Xi*di), (Ii*ei) | i = 1, . . ., L) = X1 d1 I1 e1 . . . XL dL IL eL mod p, und
die Γ-Funktionsmittel Mittel sind zur Berechnung des akkumulierten Werts Y durch folgende Gleichung:
und zur Berechnung der Funktion Γ durch die folgende Gleichung:
W = Γ(Y*g) = gy mod p.
39. Verifizierervorrichtung nach Anspruch 31 oder 32, bei der der Parameter q ein Parameter eines Definitionsfelds GF(q) einer elliptischen Kurve Ea,b(GF(q)) ist, und, wenn ein Basispunkt einer Ordnung k der elliptischen Kurve durch den Parameter β repräsentiert wird und ein Parameter der elliptischen Kurve durch a, b ∈ GF(q), diese Parameter {q, a, b, P, k} als öffentliche Systeminformation veröffentlicht werden, und bei der
die V-Funktionsmittel Mittel sind zum Erhalt von Z' durch sequentielle Berechnung von Werten (Xi*di), erhalten durch di-malige Multikomponenten-Gruppenberechnung von Xi, und Werten (Ii*ei), erhalten durch ei-malige Multikomponenten-Gruppenberechnung von Ii, für jedes i von 1 bis L, und
die Γ-Funktionsmittel Mittel sind zur Berechnung von W durch yL-malige Berechnungen des Parameters P auf der elliptischen Kurve unter Verwendung der empfangenen Information yL und der öffentlichen Information P.
40. Verifizierervorrichtung nach Anspruch 39, bei der:
die Funktion G1 zur Berechnung des Parameters β = P gegeben ist durch folgende Gleichung:
G1(q) = P ∈ Ea,b(GF(q));
die V-Funktionsmittel Mittel sind zur Berechnung der Funktion V durch die folgende Gleichung:
Z' =V((Xi*di), (Ii*ei) | i = 1, . . ., L) = (d1X1 + . . . + dLXL + e1I1 + . . . + eLIL) über Ea,b(GF(q)), und
die Γ-Funktionsmittel Mittel sind zur Berechnung der Funktion Γ durch die folgende Gleichung:
W = Γ(yL*P) = yLP über Ea,b(GF(q)).
41. Verifizierervorrichtung nach Anspruch 33, bei der der Parameter q ein Parameter eines Definitionsfelds GF(q) einer elliptischen Kurve Ea,b(GF(q)) ist, und, wenn ein Basispunkt einer Ordnung k auf der elliptischen Kurve durch den Parameter β repräsentiert wird und ein Parameter der elliptischen Kurve durch a, b ∈ GF(q), diese Parameter {q, a, b, P, k} als öffentliche Systeminformation veröffentlicht werden, und
die V-Funktionsmittel Mittel sind zum Erhalt von Z' durch sequentielle Berechnung von Werten (Xi*di), erhalten durch di-malige Multikomponenten-Gruppenberechnungen von Xi, und Werten (Ii*ei), erhalten durch ei-malige Multikomponenten-Gruppenberechnungen von Ii, für jedes i von 1 bis L, und
die Γ-Funktionsmittel Mittel sind zur Berechnung von W durch yL-malige Berechnungen des Parameters P auf der elliptischen Kurve unter Verwendung der empfangenen Information yL und der öffentlichen Information P.
42. Verifizierervorrichtung nach Anspruch 41, bei der die Funktion G1 zur Berechnung des Parameters β = P gegeben ist durch folgende Gleichung:
G1(q) = P ∈ Ea,b(GF(q));
die V-Funktionsmittel Mittel sind zur Berechnung der Funktion V durch die folgende Gleichung:
Z' = V((Xi*di), (Ii*ei) | i = 1, . . .L) = (d1X1 + . . . + dLXL + e1I1 + . . . + eLIL) über Ea,b(GF(q)), und
die Γ-Funktionsmittel Mittel sind zur Berechnung der Funktion Γ durch die folgende Gleichung:
W = Γ(Y*P) = YP über Ea,b(GF(q)),
wobei
43. Speichermedium für eine Unterzeichnervorrichtung, auf dem ein Programm gespei­ chert ist, welches in der Unterzeichnervorrichtung in einem System verwendet wird, bei dem:
jeder einer Reihe von Unterzeichnern i eine digitale Signatur an einem in elektronischer Form vorliegenden Dokument m'i anbringt und ein Verifizierer die digitalen Signaturen en-bloc verifiziert, wobei i = 1,. . ., L und L eine ganze Zahl gleich oder größer als zwei ist, Information enthaltend einen Parameter q für jeden Unterzeichner i zur Erzeugung einer Signaturfunktion Sgi und einen Parameter β = G1(q), der unter Verwendung des Parameters q mit einer Funktion G1 erhalten wird, vorab veröffentlicht wird, und Information Ii = G2(si, β), vorab erzeugt von jedem Unterzeichner i unter Verwendung des öffentlichen Parameters β und einer geheimen Zufallszahl si, ein Paar von Einweg-Funktionen fi und hi zur Verwendung durch den jeweiligen Unterzeichner i und Identifikationsinformation IDi vorab als öffentliche Unterzeichnerinformation {ID1, fi, hi} veröffentlicht werden,
wobei das Programm die Schritte enthält:
  • a) Erzeugen einer zweiten Zufallszahl ri,
    • (b) Einsetzen des Parameters β und der zweiten Zufallszahl ri in eine Funktion Φ zum Erzeugen von Information Xi = Φ(ri, β),
    • (c) Erzeugen von
      ei = fi(X'i, m'i)
      di = hi(X'i, m'i)
      mit den Einweg-Funktionen fi und hi unter Verwendung von Dokumentinformation m'i enthaltend das zu unterzeichnende Dokument mi und der Information X'i enthaltend die Information Xi,
    • (d) Erzeugen, für Information enthaltend ei, di, si, ri und yi-1, einer Signatur
      yi = Sgi(ei, di, si, ri, yi-1)
      mit einer Signaturfunktion Sgi, die unter Verwendung des Parameters q erzeugt wird, und
    • (e) Senden von Information {ID'i, X'i, m'i, yi}, enthaltend die Identifikationsinformation IDi als Identifikationsinformation ID'i, an den nächsten Unterzeichner (i+1), wobei der letzte Unterzeichner L die Information {ID'L, X'L, m'L, yL} an den Verifizierer als letzte Bestimmung sendet.
44. Speichermedium für eine Unterzeichnervorrichtung, auf dem ein Programm gespei­ chert ist, das in der Unterzeichnervorrichtung in einem System verwendet wird, bei dem: jeder von Unterzeichnern i eine digitale Signatur an einem in elektronischer Form vorliegenden Dokument m'i anbringt und ein Verifizierer die digitalen Signaturen en-bloc verifiziert, wobei i = 1, . . ., L und L eine ganze Zahl gleich oder größer als zwei ist, wobei Information enthaltend einen Parameter q für jeden Unterzeichner i zur Erzeugung einer Signaturfunktion Sgi und ein Parameter β = G1(q), der mit einer Funktion G1 unter Verwendung des Parameters q erhalten wird, vorab veröffentlicht werden, und Information Ii = G2(si, β), vorab erzeugt durch den jeweiligen Unterzeichner i unter Verwendung des öffentlichen Parameters β und einer geheimen Zufallszahl si, ein Paar von Einweg-Funktionen fi und hi zur Verwendung durch den jeweiligen Unterzeichner i und Identifikationsinformation IDi als öffentliche Unterzeichnerinformation {ID1, Ii, fi, hi} vorab veröffentlicht werden,
wobei das Programm die Schritte umfaßt:
  • (a) Erzeugen einer zweiten Zufallszahl ri,
  • (b) Einsetzen des Parameters β und der zweiten Zufallszahl ri in eine Funktion Φ zum Erzeugen von Information Xi = Φ(ri, β),
  • (c) Erzeugen von
    ei = fi(X'i, m'i)
    di = hi(X'i, m'i)
    mit den Einweg-Funktionen fi und hi unter Verwendung von Dokumentinformation m'i enthaltend das zu unterzeichnende Dokument in und der Information X'i,
  • (d) Erzeugen, für Information enthaltend ei, di, si, und ri, einer Signatur
    yi = Sgi(ei, di, si, ri)
    mit einer Signaturfunktion Sgi, die unter Verwendung des Parameters q erzeugt wird, und
  • (e) Senden von Information {ID'i, X'i, m'i' yi}, enthaltend die Identifikationsinformation IDi als Identifikationsinformation ID'i an den Verifizierer.
45. Verfahren nach Anspruch 43, bei dem in dem Programm:
X'i =(X'i-1, Xi),
m'i = (m'i-1, mi)
ID'i = (ID'i-1, IDi),
X'0 = leere Menge
m'0 = leere Menge
ID0 = leere Menge
y0 = 0, und
der Unterzeichner i von dem Unterzeichner (i-1) unterzeichnete Information {ID'i-1, X'i-1, m'i-1 yi-1} empfängt und dann die Schritte (a) bis (d) auf der Basis der empfangenen Information ausführt.
46. Speichermedium nach Anspruch 45, bei dem in dem Programm: m'1 = m1 = m; m2 = m3 . . . = mL = leere Menge, und der Unterzeichner i von dem Unterzeichner (i-1) Information {ID'i-1, X'i-1, m, yi-1} empfängt und dann auf der Basis der empfangenen Information im Schritt (e) Information {ID'i, X'i, m, yi} an den nächsten Unterzeichner (i+1) aussendet.
47. Speichermedium nach Anspruch 44, bei dem in dem Programm: X'i = Xi, m'i = mi, und ID'i = IDi; und der Unterzeichner i die Schritte (a) bis (e) ausführt und dadurch Information {IDi, Xi, yi} als die Information {ID'i, X'i, m'i, yi} erzeugt und einzeln an den Verifizierer sendet.
48. Speichermedium nach Anspruch 45 oder 46, bei dem in dem Programm ID'i = (ID'i-1, IDi) ersetzt wird durch ID'i = (ID'i-1, Ii).
49. Speichermedium nach Anspruch 45 oder 46, bei dem in dem Programm: wenn die Anzahl von Elementen einer Gruppe mit p bezeichnet wird, ein Element g der Gruppe, bei dem eine Gruppenberechnung beginnt, durch den Parameter β repräsentiert ist und eine ganze Zahl, bei der, wenn das Element g q-mal gruppenberechnet wird, die Rechnung zu g zurückkehrt, durch den Parameter q repräsentiert wird, diese Parameter {p, q, g} als öffentliche Systeminfor­ mation veröffentlicht werden,
die Information Ii vorab durch si-malige Gruppenberechnung des Parameters g unter Verwendung des Parameters p durchgeführt wird, und
der Schritt (b) ein Schritt ist zum Erhalt von Xi durch ri-malige Gruppenberechnungen des Parameters g unter Verwendung des Parameters p.
50. Speichermedium nach Anspruch 49, bei dem in dem Programm: p und q Primzahlen sind, zwischen denen die Beziehung 1 = p mod q gilt, und, wenn ein Grundelement von (Z/pZ)* durch α repräsentiert wird,
der Parameter β = g vorab mit der Funktion G1 durch folgende Gleichung gegeben ist:
g = G1(q) = α(p-1)/q mod p;
die Information Ii vorab mit der Funktion G2 durch folgende Gleichung gegeben ist:
Ii = G2(si, g) = si mod p;
Schritt (d) ein Schritt der Berechnung der Information Xi mit der Funktion Φ durch folgende Gleichung ist:
Xi = Φ(ri, g) = gri mod p, und
Schritt (d) ein Schritt der Berechnung der Signaturfunktion Sgi durch folgende Gleichung unter Verwendung von ei, di, ri, si, q und yi-1 ist:
yi = Sgi(ei, di, si, ri, yi-1) = (yi-1 + diri + eisi) mod q.
51. Speichermedium nach Anspruch 47, bei dem in dem Programm: wenn man die Anzahl von Elementen einer Gruppe mit p bezeichnet, ein Element g der Gruppe, bei dem eine Gruppenberechnung beginnt, durch den Parameter β repräsentiert wird und eine ganze Zahl, bei der, wenn das Element g q-mal gruppenberechnet wird, die Rechnung zu g zurückkehrt, durch den Parameter q repräsentiert wird, diese Parameter {p, q, g} als öffentliche Systeminformation veröffentlicht werden,
die Information Ii vorab mit der Funktion G2(si, g) durch s-malige Gruppenberechnungen von g unter Verwendung von p erhalten wird, und
Schritt (b) ein Schritt zum Erhalt der Information X mit der Funktion Φ(ri, g) durch ri-malige Gruppenberechnungen von g unter Verwendung von p ist.
52. Speichermedium nach Anspruch 51, bei dem in dem Programm: p und q Primzahlen sind, zwischen denen die Beziehung gilt 1 = p mod q, und, wenn ein Grundelement von (Z/pZ)* durch α repräsentiert wird,
der Parameter β = g vorab mit der Funktion G1 durch folgende Gleichung gegeben ist:
g = G1(q) = α(p-1)/q mod p,
die Information Ii vorab mit der Funktion G2 durch folgende Gleichung gegeben ist:
Ii = G2(si, g) = gsi mod p,
Schritt (b) ein Schritt der Berechnung der Information Xi mit der Funktion Φ durch folgende Gleichung ist:
Xi = Φ(ri, g) = gri mod p, und
Schritt (d) ein Schritt der Berechnung der Signaturfunktion Sgi durch folgende Gleichung unter Verwendung von ei, di, ri, si und q ist:
yi = Sgi(ei, di, si, ri) = (diri + eisi) mod q.
53. Speichermedium nach Anspruch 45 oder 46, bei dem in dem Programm: der Para­ meter q ein Parameter eines Definitionsfeldes GF(q) einer elliptischen Kurve Ea,b (GF(q)) ist, und, wenn ein Basispunkt einer Ordnung k auf der elliptischen Kurve durch den Parameter β repräsen­ tiert ist und ein Parameter der elliptischen Kurve durch a, b ∈ GF(q), diese Parameter {q, a, b, P, k} als öffentliche Systeminformation veröffentlicht werden, und bei dem
die Information Ii vorab mit der Funktion G2 (si, P) durch Durchführen von si-maligen Gruppenberechnungen des Parameters P erhalten wird, und
Schritt (b) ein Schritt zum Erhalt der Information Xi mit der Funktion Φ durch Durchfüh­ ren von ri-maligen Gruppenberechnungen des Parameters P ist.
54. Speichermedium nach Anspruch 53, bei dem in dem Programm: der Parameter β = P auf der Basis der Funktion G1 durch folgende Gleichung gegeben ist:
G1(q) = P ∈ Ea,b(GF(q)),
die Information Ii mit der Funktion G2 durch folgende Gleichung errechnet wird:
Ii = G2(si, P) = siP über Ea,b(GF(q)),
Schritt (b) ein Schritt der Berechnung der Information Xi mit der Funktion Φ durch folgende Gleichung ist:
X1 = Φ(ri, P) = riP über Ea,b(GF(q)), und
Schritt (d) ein Schritt der Berechnung der Signaturfunktion Sgi durch die folgende Gleichung unter Verwendung von ei, di, ri, si und yi-1 ist:
yi = Sgi(ei, di, si, ri, yi-1) = (yi-1 + diri + eisi) mod k.
55. Speichermedium nach Anspruch 47, bei dem in dem Programm: der Parameter q ein Parameter eines Definitionsfeldes GF(q) einer elliptischen Kurve Ea,b(GF(q)) ist, und, wenn ein Basispunkt einer Ordnung k auf der elliptischen Kurve durch den Parameter β repräsentiert ist und ein Parameter der elliptischen Kurve durch a, b ∈ GF(q), diese Parameter {g, a, b, P, k} als öffentliche Systeminformation veröffentlicht werden, und bei dem
die Information Ii vorab mit der Funktion G2(si, P) erhalten wird durch Durchführen von si-malige Gruppenberechnungen des Parameters P, und
Schritt (b) ein Schritt zum Erhalt der Information Xi mit der Funktion Φ durch Durchfüh­ ren von ri-maligen Gruppenberechnungen des Parameters P ist.
56. Speichermedium nach Anspruch 55, bei dem in dem Programm: der Parameter β = P gegeben ist auf der Basis der Funktion G1 durch die folgende Gleichung:
G1(q) = P ∈ Ea,b(GF(q)),
die Information Ii mit der Funktion G2 durch die folgende Gleichung berechnet wird:
Ii = G2(si, P) = siP über Ea,b(GF(q)),
Schritt (b) ein Schritt der Berechnung der Information Xi mit der Funktion Φ durch folgende Gleichung ist:
Xi = Φ(ri, P) = riP über Ea,b(GF(q)), und
Schritt (d) ein Schritt der Berechnung der Signaturfunktion Sgi unter Verwendung von ei, di, ri und si unter Verwendung der folgenden Gleichung ist:
yi = Sgi(ei, di, si, ri) = (diri + eisi) mod k.
57. Speichermedium für eine Verifizierervorrichtung, auf dem ein Programm gespeichert ist, das in der Verifizierervorrichtung in einem System verwendet wird, bei dem: jeder einer Reihe von Unterzeichnern i eine digitale Signatur an einem in elektronischer Form vorliegenden Dokument m'i anbringt und ein Verifizierer die digitalen Signaturen en-bloc verifiziert, wobei i = 1, . . ., L und L eine ganze Zahl gleich oder größer als zwei ist, und Information enthaltend einen Parameter q für jeden Unterzeichner i zur Erzeugung einer Signaturfunktion Sgi und einen Parameter β = G1(q), der mit einer Funktion G1 unter Verwendung des Parameters q erhalten wird, vorab veröffentlicht wird,
wobei das Programm die Schritte umfaßt:
  • (a) Gewinnen, aus öffentlicher Information {IDi, Ii, fi, hi}, von Information Ii entspre­ chend Identifikationsinformation IDi, die in Information ID'i in Information {ID'L, X'L, m'L, yL} enthalten ist, welche von dem letzten Unterzeichner L der Reihe von Unterzeichnern empfangen wird, sowie von Einweg-Funktionen fi und hi, und Berechnen von
    ei = fi(X'i, m'i)
    di = hi(X'i, m'i)
    unter Verwendung der Einweg-Funktionen fi und hi sowie von Information X'i und m'i, die in den empfangenen Informationen X'L und m'L enthalten sind,
  • (b) Gewinnen von Xi aus der Information X'i und Berechnen von
    Z' = V((Xi*di), (Ii*ei) | i = 1, . . ., L)
    durch eine Funktion V, enthaltend eine Berechnung von (Xi*di) aus di und Xi sowie eine Berech­ nung von (Ii*ei) aus ei und Ii;
  • (c) Gewinnen von W = Γ((yi*β)) durch eine Funktion Γ, enthaltend eine Berechnung von (yi*β) aus yi und ß; und
  • (d) Empfangen der Werte Z' und W und anschließendes Prüfen, ob sie übereinstimmen, und, wenn sie übereinstimmen, Liefern einer Ausgabe, die anzeigt, daß die empfangenen Dokumente (m1, . . ., mL) von den L Unterzeichnern ordnungsgemäß unterzeichnet wurden.
58. Speichermedium für eine Verifizierervorrichtung, auf dem ein Programm gespeichert ist, welches in der Verifizierervorrichtung in einem System verwendet wird, bei dem: jeder von Unterzeichnern i eine digitale Signatur an einem in elektronischer Form vorliegenden Dokument m'i anbringt und ein Verifizierer die digitalen Signaturen en-bloc verifiziert, wobei i = 1, . . ., L und L eine ganze Zahl gleich oder größer als zwei ist, und wobei Information enthaltend einen Parameter q für jeden Unterzeichner i zur Erzeugung einer Signaturfunktion Sgi und ein Parameter β = G1(q), der unter Verwendung des Parameters q mit einer Funktion G1 erhalten wird, vorab veröffentlicht werden,
wobei das Programm die Schritte umfaßt:
  • (a) Gewinnen, aus öffentlicher Information {IDi, Ii, fi, hi}, von Information Ii entspre­ chend Identifikationsinformation IDi, die in ID'i in der Information {ID'i, X'i, m'i, yi} enthalten ist, die von jedem der Unterzeichner i empfangen wird, sowie von Einweg-Funktionen fi und hi und Berechnen von
    ei =fi(X'i, m'i)
    di = hi(X'i, m'i)
    unter Verwendung der Einweg-Funktionen fi und hi und den empfangenen Informationen X'i und m'i;
  • (b) Gewinnen von Xi in der Information X'i und Berechnen von
    Z' = V((Xi*di), (Ii*ei) | i = 1, . . ., L)
    durch eine Funktion V, enthaltend eine Berechnung von (Xi*di) aus di und Xi und eine Berech­ nung von (Ii*ei) aus ei und Ii;
  • (c) Gewinnen von W = Γ(Y*β) durch eine Funktion Γ, enthaltend eine Berechnung von (Y*β) unter Verwendung von β und eines akkumulierten Werts Y aus yi bis yL, und
  • (d) Empfangen der Werte Z' und W und anschließendes Prüfen, ob sie übereinstimmen, und, falls sie übereinstimmen, Liefern einer Ausgabe, die anzeigt, daß die empfangenen Doku­ mente (m1, . . ., mL) von L Unterzeichnern ordnungsgemäß unterzeichnet wurden.
59. Speichermedium nach Anspruch 57, bei dem in dem Programm:
X'i = (X'i-1, Xi),
m'i = (m'i-1, mi),
ID'i = (ID'i-1, IDi),
X'0 = leere Menge
m'0 = leere Menge
ID'0 = leere Menge
y0 = 0, und,
wenn der Verifizierer unterzeichnete Information {ID'L, X'L, m'L, yL} von dem letzten Unterzeichner L empfängt, der Verifizierer die Schritte (a) bis (d) auf der Basis der empfangenen Information ausführt.
60. Speichermedium nach Anspruch 59, bei dem in dem Programm: m'1 = m1 = m; m2 = m3 . . . = mL = leere Menge, und der Verifizierer unterzeichnete Information {ID'L, X'L, m, yL} von dem Unterzeichner L empfängt und die Schritte (a) bis (d) auf der Basis der empfangenen Information ausführt.
61. Speichermedium nach Anspruch 58, bei dem in dem Programm: X'i = Xi, m'i = mi, und ID'i = IDi; und der Verifizierer unterzeichnete Information {IDi, Xi, mi, yi} gesondert von jedem einzelnen Unterzeichner i empfängt und die Schritte (a) bis (d) ausführt.
62. Speichermedium nach Anspruch 59 oder 60, bei dem in dem Programm ID'i = (ID'i-1, IDi) ersetzt ist durch ID'i= (ID'i-1, Ii).
63. Speichermedium nach Anspruch 59 oder 60, bei dem in dem Programm, wenn die Anzahl von Elementen einer Gruppe mit p bezeichnet wird, ein Element g der Gruppe, bei dem eine Gruppenberechnung beginnt, durch den Parameter β repräsentiert wird und, eine ganze Zahl bei der, wenn das Element g q-mal gruppenberechnet wird, die Rechnung zu g zurückkehrt, durch den Parameter q repräsentiert wird und diese Parameter {p, q, g} als öffentliche Systemin­ formation veröffentlicht werden,
der Schritt (b) ein Schritt zum Erhalt von Z' durch sequentielle Berechnung von Werten (Xi*di), erhalten durch di-malige Multikomponenten-Gruppenberechnungen von Xi und Werten (Ii*ei), erhalten durch ei-malige Multikomponenten-Gruppenberechnungen von Ii, für jedes i von 1 bis L ist, und
der Schritt (c) ein Schritt ist zum Erhalt von W durch Durchführen von yL-maligen Grup­ penberechnungen des Parameters g unter Verwendung des empfangenen yL und der öffentlichen Informationen p und q.
64. Speichermedium nach Anspruch 63, bei dem in dem Programm: p und q Primzahlen sind, für die die Beziehung gilt 1 = p mod q, und, wenn ein Grundelement von (Z/pZ)ϕ durch α repräsentiert wird,
der Parameter β = g im voraus gegeben ist durch die folgende Gleichung mit der Funk­ tion G1:
g = G1(q) = α(p-1)/q mod p,
Schritt (b) ein Schritt ist zur Berechnung der Funktion V durch die Gleichung:
Z' = V((Xi*di), (Ii*ei) | i = 1, . . ., L) = X1 d1 I1 e1 . . . XL dL IL eL mod p, und
Schritt (c) ein Schritt ist der Berechnung der Funktion Γ durch die folgende Gleichung:
W = Γ(yi*g) = gyL mod p.
65. Speichermedium nach Anspruch 61, bei dem in dem Programm, wenn die Anzahl von Elementen einer Gruppe mit p bezeichnet wird, ein Element g der Gruppe, bei dem eine Gruppenberechnung beginnt, durch den Parameter β repräsentiert wird und eine ganze Zahl bei der, wenn das Element g q-mal gruppenberechnet wird, die Rechnung zu g zurückkehrt, durch den Parameter q repräsentiert wird, diese Parameter {p, q, g} als öffentliche Systeminformation veröffentlicht werden,
Schritt (b) ein Schritt ist zum Erhalt von Z' durch sequentielles Berechnen von Werten (Xi*di), erhalten durch di-malige Multikomponenten-Gruppenberechnungen von Xi, und Werten (Ii*ei), erhalten durch ei-malige Multikomponenten-Gruppenberechnungen von Ii, für jedes i von 1 bis L, und
Schritt (c) ein Schritt ist der Berechnung eines akkumulierten Werts Y unter Verwen­ dung von L empfangenen Informationen yi und der öffentlichen Information q, sowie der Berechnung, als W, eines Werts (g*Y), der erhalten wird durch Y-maliges Operieren oder Berechnen des Parameters g unter Verwendung der öffentlichen Informationen p und q.
66. Speichermedium nach Anspruch 65, bei dem in dem Programm: p und q Primzahlen sind, für die die Beziehung gilt 1 = p mod q, und, wenn ein Grundelement von (Z/pZ)* durch α repräsentiert wird,
der Parameter β = g gegeben ist durch die folgende Gleichung mit der Funktion G1:
g = G1(q) = α(p-1)/q mod p,
Schritt (b) ein Schritt der Berechnung der Funktion V durch die folgende Gleichung ist:
Z' = V((Xi*di), (Ii*ei) | i = 1, . . ., L) = X1 d1 I1 e1 . . . XL dL IL eL mod p, und
Schritt (c) ein Schritt ist zur Berechnung des akkumulierten Werts Y durch
und Berechnen der Funktion Γ durch die folgende Gleichung:
W = Γ(Y*g) = gy mod p.
67. Speichermedium nach Anspruch 59 oder 60, bei dem in dem Programm: der Para­ meter q ein Parameter eines Definitionsfeldes GF(q) einer elliptischen Kurve Ea,b(GF(q)) ist, und, wenn ein Basispunkt einer Ordnung k auf der elliptischen Kurve durch den Parameter β repräsen­ tiert wird und ein Parameter der elliptischen Kurve durch a, b ∈ GF(q), diese Parameter {q, a, b, P, k} als öffentliche Systeminformation veröffentlicht werden, und wobei:
Schritt (b) ein Schritt ist zum Erhalt von Z' durch sequentielle Berechnung von Werten (Xi*di), erhalten durch di-malige Multikomponenten-Gruppenberechnungen von Xi, und Werten (Ii*ei), erhalten durch ei-malige Multikomponenten-Gruppenberechnungen von Ii, für jedes i von 1 bis L, und
Schritt (c) ein Schritt ist zur Berechnung von W durch yL-malige Berechnungen des Parameters P auf der elliptischen Kurve unter Verwendung der empfangenen Information yL und der öffentlichen Information P.
68. Speichermedium nach Anspruch 67, bei dem in dem Programm: die Funktion G1 zur Berechnung des Parameters β = P im voraus gegeben ist durch die folgende Gleichung:
G1(q) = P ∈ Ea,b(GF(q)),
Schritt (b) ein Schritt ist der Berechnung der Funktion V durch die folgende Gleichung:
Z' = V((Xi*di), (Ii*ei) | i = 1, . . ., L) = (d1X1 + . . . + dLXL + e1I1 + . . . + eLIL) über Ea,b(GF(q)), und
Schritt (c) ein Schritt ist der Berechnung der Funktion Γ durch die folgende Gleichung:
W = Γ(yL*P) = yLP über Ea,b(GF(q)).
69. Speichermedium nach Anspruch 61, bei dem in dem Programm: der Parameter q ein Parameter eines Definitionsfeldes GF(q) einer elliptischen Kurve Ea,b(GF(q)) ist, und, wenn ein Basispunkt einer Ordnung k auf der elliptischen Kurve durch den Parameter β repräsentiert wird und ein Parameter der elliptischen Kurve durch a, b ∈ GF(q), diese Parameter {q, a, b, P, k} als öffentliche Systeminformation veröffentlicht werden, und bei dem:
Schritt (b) ein Schritt ist zum Erhalten von Z' durch sequentielle Berechnung von Werten (Xi*di), erhalten durch di-malige Multikomponenten-Gruppenberechnungen von Xi und Werten (Ii*ei), erhalten durch ei-malige Multikomponenten-Gruppenberechnungen von Ii, für jedes i von 1 bis L, und
Schritt (c) ein Schritt der Berechnung von W ist durch yL-malige Berechnungen des Parameters P auf der elliptischen Kurve unter Verwendung der empfangenen Information yL und der öffentlichen Information P.
70. Speichermedium nach Anspruch 69, bei dem in dem Programm: die Funktion G1 zur Berechnung des Parameters β = P im voraus gegeben ist durch die folgende Gleichung:
G1(q) = P ∈ Ea,b(GF(q)),
Schritt (b) ein Schritt der Berechnung der Funktion V durch die folgende Gleichung ist:
Z' = V((Xi*di), (Ii*ei) | i = 1, . . ., L) = (d1X1 + . . . + dLXL + e1I1 + . . . + eLIL) über Ea,b(GF(q)), und
Schritt (c) ein Schritt der Berechnung der Funktion Γ durch die folgende Gleichung ist:
W = Γ(Y*P) = YP über Ea,b(GF(q))
wobei
DE19829643A 1997-07-04 1998-07-02 Verfahren und Vorrichtung zur Block-Verifikation mehrerer digitaler Signaturen und Speichermedium, auf dem das Verfahren gespeichert ist Expired - Fee Related DE19829643C2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP17987297 1997-07-04
JP17987397 1997-07-04
JP18272497 1997-07-08

Publications (2)

Publication Number Publication Date
DE19829643A1 true DE19829643A1 (de) 1999-01-07
DE19829643C2 DE19829643C2 (de) 2000-05-04

Family

ID=27324775

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19829643A Expired - Fee Related DE19829643C2 (de) 1997-07-04 1998-07-02 Verfahren und Vorrichtung zur Block-Verifikation mehrerer digitaler Signaturen und Speichermedium, auf dem das Verfahren gespeichert ist

Country Status (2)

Country Link
US (1) US6212637B1 (de)
DE (1) DE19829643C2 (de)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7249259B1 (en) * 1999-09-07 2007-07-24 Certicom Corp. Hybrid signature scheme
FR2809894B1 (fr) * 2000-05-31 2002-10-25 France Telecom Procede de cryptographie, microcircuit pour carte a puce et cartes a puce incluant un tel microcircuit
US20030050981A1 (en) * 2001-09-13 2003-03-13 International Business Machines Corporation Method, apparatus, and program to forward and verify multiple digital signatures in electronic mail
US7007040B1 (en) 2001-12-04 2006-02-28 General Dynamics C4 Systems, Inc. Method and apparatus for storing and updating information in a multi-cast system
JP2003244138A (ja) * 2002-02-18 2003-08-29 Fujitsu Ltd 原本作成装置及び原本性保証装置
US7349538B2 (en) * 2002-03-21 2008-03-25 Ntt Docomo Inc. Hierarchical identity-based encryption and signature schemes
CN101483523A (zh) * 2002-04-15 2009-07-15 株式会社Ntt都科摩 利用双线性映射的签名方案
US20030221105A1 (en) * 2002-05-20 2003-11-27 Autodesk, Inc. Extensible mechanism for attaching digital signatures to different file types
AU2003262908A1 (en) * 2002-08-28 2004-03-19 Docomo Communications Laboratories Usa, Inc. Certificate-based encryption and public key infrastructure
US20050234949A1 (en) * 2003-04-30 2005-10-20 Sony Corporation Data processing method, program thereof, device thereof, and recording medium
JP4390570B2 (ja) 2004-01-21 2009-12-24 株式会社エヌ・ティ・ティ・ドコモ 多段署名検証システム、電子署名付与装置、データ追加装置及び電子署名検証装置
US7664957B2 (en) * 2004-05-20 2010-02-16 Ntt Docomo, Inc. Digital signatures including identity-based aggregate signatures
US20060078790A1 (en) * 2004-10-05 2006-04-13 Polyplus Battery Company Solid electrolytes based on lithium hafnium phosphate for active metal anode protection
US8285996B2 (en) * 2005-03-30 2012-10-09 Dublin City University Verification of identity based signatures
US7584362B2 (en) * 2005-04-22 2009-09-01 Microsoft Corporation Systems and methods for providing signatures
US20080077592A1 (en) * 2006-09-27 2008-03-27 Shane Brodie method and apparatus for device authentication
KR101273465B1 (ko) * 2007-03-16 2013-06-14 재단법인서울대학교산학협력재단 집합 검증 장치 및 그 방법
WO2009145732A1 (en) * 2008-05-29 2009-12-03 Agency For Science, Technology And Research A method of signing a message
ES2400894B1 (es) 2011-05-13 2014-03-11 Telefónica, S.A. Procedimiento para una firma digital múltiple
US10333696B2 (en) 2015-01-12 2019-06-25 X-Prime, Inc. Systems and methods for implementing an efficient, scalable homomorphic transformation of encrypted data with minimal data expansion and improved processing efficiency
US11956370B2 (en) * 2021-06-23 2024-04-09 Blackberry Limited Method and system for digital signatures utilizing multiplicative semigroups

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5140634A (en) * 1987-09-07 1992-08-18 U.S Philips Corporation Method and apparatus for authenticating accreditations and for authenticating and signing messages
US4926479A (en) * 1988-04-29 1990-05-15 Massachusetts Institute Of Technology Multiprover interactive verification system
US5502764A (en) * 1991-01-11 1996-03-26 Thomson Consumer Electronics S.A. Method, identification device and verification device for identificaiton and/or performing digital signature
JP2671649B2 (ja) * 1991-07-08 1997-10-29 三菱電機株式会社 認証方式
US5231668A (en) * 1991-07-26 1993-07-27 The United States Of America, As Represented By The Secretary Of Commerce Digital signature algorithm
US5297206A (en) * 1992-03-19 1994-03-22 Orton Glenn A Cryptographic method for communication and electronic signatures
IL106796A (en) * 1993-08-25 1997-11-20 Algorithmic Res Ltd Broadcast encryption
US5347581A (en) * 1993-09-15 1994-09-13 Gemplus Developpement Verification process for a communication system
US5434919A (en) * 1994-01-11 1995-07-18 Chaum; David Compact endorsement signature systems
JP3292342B2 (ja) 1994-03-23 2002-06-17 日本電信電話株式会社 ディジタル署名方式
KR0146437B1 (ko) * 1995-05-26 1998-09-15 조백제 인증교환 방법, 복원형 전자서명 방법, 부가형 전자서명 방법, 키교환 방법, 복원형 다중전자서명 방법, 부가형 다중전자서명 방법 및 블라인드 전자서명 방법
FR2747257B1 (fr) * 1996-04-09 1998-09-11 Gilbert Henri Procede d'identification et/ou de signature
JPH10198272A (ja) * 1996-12-27 1998-07-31 Canon Inc 階層を有する鍵管理方法及び暗号システム、分散デジタル署名システム
IT1299847B1 (it) * 1998-02-17 2000-04-04 Gd Spa Metodo e dispositivo per l'alimentazione di bobine.

Also Published As

Publication number Publication date
US6212637B1 (en) 2001-04-03
DE19829643C2 (de) 2000-05-04

Similar Documents

Publication Publication Date Title
DE19829643C2 (de) Verfahren und Vorrichtung zur Block-Verifikation mehrerer digitaler Signaturen und Speichermedium, auf dem das Verfahren gespeichert ist
EP0384475B1 (de) Verfahren zur Identifikation von Teilnehmern sowie zur Generierung und Verifikation von elektronischen Unterschriften in einem Datenaustauschsystem
DE69633217T2 (de) Verfahren zum Implentieren von elektronischem Geld mit Hilfe einer Lizenz eines anonymen öffentlichen Schlüssels
DE19804054B4 (de) System zur Verifizierung von Datenkarten
DE102012206341B4 (de) Gemeinsame Verschlüsselung von Daten
DE69434703T2 (de) Verfahren zur Erzeugung von DSA-Unterschriften mit preisgünstigen tragbaren Einheiten
DE69938624T2 (de) Robuste und effiziente verteilte erzeugung eines rsa-schlüssels
DE4008971C2 (de)
DE69630738T2 (de) Verfahren und Einrichtung für ein elektronisches Geldsystem mit Ursprungserkennung
DE102012005427A1 (de) Verfahren und System zur gesicherten Kommunikation zwischen einen RFID-Tag und einem Lesegerät
CH711133B1 (de) Protokoll zur Signaturerzeugung
DE2843583A1 (de) Verfahren und vorrichtung zum entschluesseln verschluesselter nachrichten
CH660822A5 (de) Zufallsprimzahlen-erzeugungsmittel in einer mit oeffentlichem schluessel arbeitenden daten-verschluesselungsanlage.
DE102019002732A1 (de) Verfahren zum direkten Übertragen von elektronischen Münzdatensätzen zwischen Endgeräten sowie Bezahlsystem
DE69838258T2 (de) Public-Key-Datenübertragungssysteme
EP1368929B1 (de) Verfahren zur authentikation
WO1996037064A1 (de) Verfahren zum rechnergestützten austausch kryptographischer schlüssel zwischen einer ersten computereinheit und einer zweiten computereinheit
DE60318073T2 (de) Gruppensignaturschema
DE102020104906A1 (de) Verfahren zum direkten übertragen von elektronischen münzdatensätzen zwischen endgeräten, bezahlsystem, währungssystem und überwachungseinheit
WO2020126078A1 (de) Verfahren zum erzeugen einer blinden signatur
DE10143728A1 (de) Vorrichtung und Verfahren zum Berechnen eines Ergebnisses einer modularen Exponentiation
DE69735290T2 (de) Verfahren zur unsymmetrischen kryptographischen kommunikation und zugehöriger tragbarer gegenstand
EP2730050B1 (de) Verfahren zur erstellung und überprüfung einer elektronischen pseudonymen signatur
DE102006013515A1 (de) Kryptographisches Verfahren mit elliptischen Kurven
DE69333121T2 (de) Verfahren zur Ausführung von kryptographischen und/oder fehlerkorrigierenden Protokollen auf dem Gebiet der Zahlentheorie

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee