-
HINTERGRUND DER ERFINDUNG
-
Die
Erfindung betrifft eine Technologie, um die Echtheit von Multimediadaten
zu gewährleisten.
-
Die
Technologie mit digitaler Signatur stellt eine Funktion bereit,
die herkömmlichen
Signaturen für
elektronische, digitalisierte Daten, wie Dokumenten (auch als Multimediadaten
bezeichnet) entspricht.
-
Bei
der Technologie mit digitaler Signatur wendet ein digitaler Signaturgenerator
einen privaten Schlüssel,
den der Generator geheimhält,
auf digitalisierte, zu unterzeichnende Daten (nachfolgend als Nachricht
bezeichnet) M oder einen Hashwert derselben an, wobei es sich bei
diesem um einen für
die Nachricht charakteristischen Wert handelt (auch als Kompressionswert
oder Nachricht-Überblick
bezeichnet). Daraus wird eine digitale Signatur A für die Nachricht
M erzeugt. Die digitale Signatur A wird dann zur Nachricht M hinzugefügt und öffentlich
gemacht. Eine Verifiziereinrichtung für die digitale Signatur vergleicht
die Nachricht M oder deren Hashwert mit einem Ergebnis, das dadurch
erhalten wird, dass ein dem privaten Schlüssel entsprechender öffentlicher
Schlüssel
auf die zur Nachricht M hinzugefügte digitale
Signatur A angewandt wird. Wenn die beiden nicht übereinstimmen,
ist es möglich,
dass die Nachricht M gefälscht
wurde, nachdem die digitale Signatur A erzeugt wurde. Demgemäß ist, wenn
die beiden übereinstimmen,
bestätigt,
dass die digitale Signatur A für
die Nachricht M erzeugt wurde.
-
Es
existiert auch eine als Zeitmarkierung bekannte Technik, die digitale
Signaturen dazu verwendet, zu garantieren, dass eine Nachricht zu
einem bestimmten Zeitpunkt existierte. Bei dieser Technik wird für Daten,
die dadurch erzeugt werden, dass die Nachricht und die aktuelle
Zeitinformation kombiniert wird, eine digitale Signatur erzeugt.
Dies garantiert, dass die Nachricht zu diesem speziellen Zeitpunkt existierte.
-
Es
wurde eine "Schwellenwertsignatur"technologie vorgeschlagen,
die es ermöglicht,
Operationen selbst dann sicher fortzusetzen, wenn einige Vorrichtungen
aufgrund von Fehlfunktionen oder dergleichen unbrauchbar wurden.
Bei dieser Technologie arbeiten mehrere Einheiten zusammen, um eine
Signatur zu erzeugen. Wenn eine feste Anzahl von Einheiten verfügbar ist,
kann eine Signatur erzeugt werden, aber andernfalls ist es nicht
möglich,
eine Signatur korrekt zu erzeugen.
-
Ferner
wurde eine Technologie vorgeschlagen, die inkorrekte Vorgehensweisen
verhindert, wie Fälle,
bei denen der digitale Signaturgenerator selbst die Nachricht fälscht, eine
neue digitale Signatur erzeugt und die ursprüngliche Nachricht und die digitale
Signatur ersetzt.
-
Bei
dieser Technologie erzeugt der digitale Signaturgenerator dadurch
eine digitale Signatur An für eine Nachricht
Mn, dass er einen privaten Schlüssel, der
geheimgehalten wird, auf Folgendes anwendet: die zu signierende
Nachricht Mn oder einen Hashwert derselben;
Daten betreffend die Erzeugung einer digitalen Signatur An-1; und Zeitdaten. Im Ergebnis spiegelt
die nach der digitalen Signatur An erzeugte
digitale Signatur An+1 Daten in Bezug auf
die zuvor erzeugte digitale Signatur An wider.
Wenn der digitale Signaturgenerator selbst Mn fälscht, eine
neue digitale Signatur An erzeugt und diese
dazu verwendet, die ursprüngliche
Nachricht Mn und die digitale Signatur An zu ersetzen, kommt es zu einer Fehlübereinstimmung
mit der digitalen Signatur An+1.
-
Die
oben beschriebene Technik zum Verhindern einer inkorrekten Vorgehensweise
berücksichtigt
nicht die Technologie, gemäß der mehrere
Vorrichtungen zusammenarbeiten, um Signaturen zu erzeugen. Es ist
eine Kombination dieser Technologien wünschenswert.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Durch
die Erfindung ist eine Technologie geschaffen, die auf zuverlässige Weise
inkorrekte Vorgehensweisen selbst dann verhindert, wenn mehrere Vorrichtungen
zusammenarbeiten, um digitale Signaturen zu erzeugen.
-
Durch
die Erfindung ist auch ein Verfahren geschaffen, bei dem zuvor erzeugte
Signaturen wieder auftreten und bei dem nicht alle Vorrichtungen benötigt werden,
wenn Signaturen erzeugt werden.
-
Durch
die Erfindung ist auch eine Technologie geschaffen, die auf zuverlässige Weise
inkorrekte Vorgehensweisen selbst dann verhindert, wenn die Daten
in Zusammenhang mit der Erzeugung der digitalen Signatur An, wie sie auch zum Erzeugen der digitalen
Signatur An+1 verwendet werden, aus irgendeinem
Grund verloren gehen.
-
Anders
gesagt, ist, wenn ein Abschnitt von eine Kette bildenden Signaturdaten
verloren wird, durch die Erfindung ein Verfahren oder ein System geschaffen,
das die sequenzielle Beziehung zwischen den Signaturdaten mit Ausnahme
der verlorenen Daten garantiert.
-
Durch
die Erfindung ist auch ein Dienstesystem geschaffen, das das oben
beschriebene Verfahren und die dabei verwendeten Vorrichtungen oder ein
Programm verwendet, das die zugehörigen Funktionen funktionsmäßig implementiert.
-
Gemäß der Erfindung
existiert, wenn Signaturen durch mehrere Vorrichtungen erzeugt werden, mindestens
eine Signaturerzeugungsvorrichtung, die in fortlaufende Signaturerzeugungsoperationen
einbezogen ist.
-
Genauer
gesagt, werden Daten, die in eine durch die mehreren Vorrichtungen
erzeugte Signatur einbezogen sind und die bei der Erzeugung der nächsten Signatur
verwendet werden, unabhängig davon,
ob sie in das Erzeugen der Signatur einbezogen waren oder nicht,
in allen Signaturerzeugungsvorrichtungen gespeichert. Diese Daten
können
auch dadurch gemeinsam genutzt werden, dass sie an einem sicheren
Ort abgespeichert werden und dass alle Signaturerzeugungsvorrichtungen
auf sichere Weise auf sie zugreifen können.
-
Durch
diese Implementierung speichern diese Signaturerzeugungsvorrichtungen,
unabhängig davon,
welche Kombinationen derselben zum Erzeugen einer Signatur verwendet
werden, Daten betreffend die vorige Signaturerzeugungsoperation.
-
Auch
kann die Erfindung so ausgebildet werden, dass dann, wenn eine Signatur
erzeugt wird, mehrere Daten in Zusammenhang mit zuvor erzeugten
Signaturen verwendet werden, so dass eine Kette (sequenzielle Beziehungen)
zwischen einzelnen Signaturen sichergestellt werden kann. Im Ergebnis
können,
wenn ein Teil der Kette aufgrund eines Datenverlustes, des Vorhandenseins
einer unberechtigten Partei oder dergleichen nicht aufgeklärt werden kann,
die anderen Verknüpfungen
geklärt
werden, so dass ein Stören
der Kette von Signaturen, die sich aus der Vergangenheit bis zur
Gegenwart erstrecken, erschwert ist.
-
Gemäß der Erfindung
sind Techniken, einschließlich
eines Verfahrens und eines Systems, zum Erzeugen digitaler Signaturen
unter Verwendung von n Vorrichtungen und zum Verifizieren der digitalen
Signaturen geschaffen.
-
Durch
eine Ausführungsform
der Erfindung ist ein Verfahren zum sequenziellen Erzeugen digitaler
Signaturen unter Verwendung von n Vorrichtungen geschaffen, von
denen jede mit einem Signaturgenerator versehen ist.
-
Das
Verfahren beinhaltet Folgendes: Erzeugen einer Verlaufsdateneinheit
j, wenn eine j-te digitale Signatur erzeugt wird (j ≥ 1); Speichern
in m Vorrichtungen (1 ≤ m ≤ n) der n
Vorrichtungen, die in eine i-te Operation zum Erzeugen einer digitalen
Signatur einbezogen sind, der Verlaufsdaten j; und Erzeugen einer
i-ten digitalen Signatur i unter Verwendung mindestens einer der
L (1 ≤ L > i) gespeicherten Verlaufsdateneinheiten
j1–jL.
-
Bei
diesem Verfahren können
die Verlaufsdaten j entweder die bei der j-ten Signaturerzeugungsoperation
erzeugte digitale Signatur j sein, oder Daten, wie sie verwendet
werden, wenn die digitale Signatur j durch die j-te Signaturerzeugungsoperation
erzeugt wird.
-
Bei
diesem Verfahren können
die Verlaufsdaten j in einer der m Vorrichtungen erzeugt werden, die
in eine i-te digitale Signaturerzeugungsoperation einbezogen sind.
-
Bei
einer weiteren Ausführungsform
der Erfindung kann das Verfahren zum Erzeugen digitaler Signaturen
Folgendes beinhalten Senden der zuletzt gespeicherten Verlaufsdaten
an m – 1
andere Vorrichtungen; Auswählen
der jüngsten
Verlaufsdaten aus m Einheiten von Verlaufsdaten, die aus m – 1 Einheiten
von Verlaufsdaten, wie sie durch die m – 1 anderen Vorrichtungen gesendet
wurden, und den zuletzt lokal gespeicherten Verlaufsdaten bestehen; und
verwenden der jüngsten
Verlaufsdaten als eine von Verlaufsdaten, wenn die i-te digitale
Signatur erzeugt wird.
-
Bei
einer weiteren Ausführungsform
der Erfindung können
die Verlaufsdaten j in einer der n-m-Vorrichtungen erzeugt werden,
und das Verfahren kann Folgen des beinhalten: Senden, von mindestens
einer Vorrichtung der n-m-Vorrichtungen,
der Verlaufsdaten j an die m Vorrichtungen; und Speichern der gesendeten
Verlaufsdaten in den m Vorrichtungen.
-
Bei
diesem Verfahren kann eine Verlaufsdateneinheit (i – 1) und
mindestens eine Verlaufsdateneinheit k (k < i – 1) als Verlaufsdateneinheit
verwendet werden, wie sie im Schritt zum Erzeugen einer neuen i-ten
digitalen Signatur verwendet wird.
-
Bei
einer weiteren Ausführungsform
der Erfindung kann das Verfahren zum Erzeugen digitaler Signaturen
Folgendes beinhalten: Erzeugen einer i'-ten digitalen Signatur i' (i' ≠ i, i' > j)
unter Verwendung der Verlaufsdaten, wie sie im Schritt zum Erzeugen
einer i-ten digitalen Signatur verwendet werden.
-
Bei
einer anderen Ausführungsform
der Erfindung ist ein Verfahren zum Verifizieren digitaler Signaturen
geschaffen, die unter Verwendung des Verfahrens zum Erzeugen digitaler
Signaturen erzeugt wurden.
-
Dieses
Verfahren beinhaltet Folgendes: Klären, dass, wenn die digitale
Signatur i verifiziert wird, mehrere Verlaufsdaten verwendet wurden,
wobei jede im Schritt des Erzeugens einer i-ten digitalen Signatur
verwendete Verlaufsdateneinheit einer vorbestimmten Regel genügt.
-
Beim
Verfahren zum Verifizieren digitaler Signaturen kann die vorbestimmte
Regel dergestalt sein, dass im Schritt zum Erzeugen der i-ten digitalen Signatur
alle der mehreren Verlaufsdaten verwendet werden.
-
Beim
Verfahren zum Verifizieren digitaler Signaturen kann die vorbestimmte
Regel während
des Betriebs des Systems, während
der Signaturerzeugung oder während
der Signaturverifikation definiert werden.
-
Bei
einer anderen Ausführungsform
der Erfindung ist ein Verfahren zum Verifizieren digitaler Signaturen
geschaffen, die unter Verwendung des Verfahrens zum Erzeugen digitaler
Signaturen erzeugt wurden.
-
Dieses
Verfahren beinhaltet Folgendes: Klären, dass, wenn die digitale
Signatur i verifiziert wird, in mindestens einem Schritt zum Erzeugen
einer digitalen Signatur h (h > i)
eine Verlaufsdateneinheit i verwendet wurde, die im Schritt zum
Erzeugen der digitalen Signatur i verwendet wurde, wobei eine vorbestimmte
Regel erfüllt
ist.
-
Bei
diesem Verfahren zum Verifizieren digitaler Signaturen kann die
vorbestimmte Regel diejenige sein, dass die Verlaufsdateneinheit
i in allen Schritten zum Erzeugen der digitalen Signatur h verwendet
wird.
-
Beim
Verfahren zum Verifizieren digitaler Signaturen kann die Regel während des
Betriebs des Systems, während
der Signaturerzeugung oder während
der Signaturverifikation definiert werden.
-
Diese
und andere Vorteile werden in der ganzen vorliegenden Beschreibung
beschrieben. Ein weiteres Verständnis
der Art und der Vorteile der Erfindung ergibt sich unter Bezugnahme
auf die restlichen Teile der Beschreibung und der beigefügten Zeichnungen.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
1 ist
eine schematische Zeichnung eines Systems, bei dem eine erste Ausführungsform der
Erfindung realisiert ist;
-
2 zeigt
ein Flussdiagramm zum Veranschaulichen von Operationen, wie sie
dann ausgeführt
werden, wenn bei der ersten Ausführungsform Zeitmarkierungen
ausgegeben werden.
-
3 zeigt
ein Flussdiagramm zum Veranschaulichen von Detailoperationen, wie
sie in einem Schritt 2006 im schematischen Flussdiagramm
der ersten Ausführungsform
der Erfindung ausgeführt werden.
-
4 zeigt
ein Flussdiagramm zum Veranschaulichen von Detailoperationen, wie
sie in einem Schritt 2007 im schematischen Flussdiagramm
der ersten Ausführungsform
der Erfindung ausgeführt werden.
-
5 zeigt
eine Figur zum Veranschaulichen eines Verlaufsspeicherbereichs in
Signaturerzeugungscomputern bei der ersten Ausführungsform der Erfindung.
-
6 zeigt
ein Flussdiagramm zum Veranschaulichen von Detailoperationen, wie
sie in einem Schritt 2006 im schematischen Flussdiagramm
für eine
zweite Ausführungsform
der Erfindung ausgeführt
werden.
-
7 zeigt
ein Flussdiagramm zum Veranschaulichen von Detailoperationen, wie
sie in einem Schritt 2006 im schematischen Flussdiagramm
für eine
dritte Ausführungsform
der Erfindung ausgeführt werden.
-
8 zeigt
eine schematische Zeichnung eines Systems, bei dem eine vierte Ausführungsform der
Erfindung realisiert ist.
-
9 zeigt
ein schematisches Flussdiagramm der Operationen, wie sie bei der
vierten Ausführungsform
der Erfindung zum Erzeugen von Signaturen ausgeführt werden.
-
10 zeigt
ein Flussdiagramm zum Veranschaulichen von Detailoperationen, wie
sie in einem Schritt 9005 im schematischen Flussdiagramm
zur Signaturerzeugung bei der vierten Ausführungsform der Erfindung ausgeführt werden.
-
11 zeigt
eine schematische Darstellung von Ketten, wie sie in der Zeitmarkierungsausgabesequenz
bei der dritten Ausführungsform
der Erfindung auftreten.
-
DETAILLIERTE BESCHREIBUNG DER BEVORZUGTEN
AUSFÜHRUNGSFORMEN
-
Zu
Dokumenten betreffend die Technologie digitaler Signaturen gehören die
Folgenden:
- Dokument 1: Alfred J. Menezes, Paul C. van Oorschot,
und Scott A. Vanstone, "Handbook
of Applied Cryptography" CRC
Press, Inc. 1997
- Dokument 2: Bruce Schneier, "Applied
Cryptography Second Edition",
John Wiley & Sons,
Inc. 1996
- Dokument 3: "Standard
Specifications for Public Key Cryptography (Draft Version 11)" IEEE P1363, IEEE, Juli
1999
-
Zu
Dokumenten betreffend die Zeitmarkierungstechnologie gehören "CHAPTER 4 Intermediate
Protocols, 4.1 TIMESTAMPING SERVICES2; S. 75 aus dem obigen Dokument
2 sowie:
- Dokument 4: Internationale Anmeldung Nr. PCT/US91/05386
- Dokument 5: Internationale Anmeldung Nr. PCT/US99/19061
- Dokument 6: Ahto Buldas, Helger Lipmaa und Berry Schoenmakers, "Optimally Efficient
Acco9untable Time-Stamping"
- Dokument 7: Ahto Buldas, Peeter Laud, Jhelger Lipmaa und Jan
Villenmson, "Time-Stamping
with Binary Linking Schemes"
-
Schwellenwertsignaturen
sind in den folgenden Dokumenten beschrieben:
- Dokument 8:
M. Cerecedo, T. Matsumoto und H. Imai, "Efficient and Secure Multiparty Generation
of Digital Signatures Based on Discrete Logarithms," IEICE Trans. Fundamentals,
Vol. E76-A, Nr. 4, S. 532–545,
April 1993.
- Dokument 9: R. Gennaro, S. Jarecki, H. Krawczyk und T. Rabin, "Robust Threshold
DSS Signatures",
In Proc. of Eurocrypt '96,
LNCS 1070, Springer-Verlag, S. 354–371, 1996.
- Dokument 10: C. Park und K. Kurosawa, "New ElGamal Type Threshold Digital Signature
Scheme", IEICE Trnas.
Fundamentals, Vol. E79-A, Nr. 1, 5.86–93, Jan. 1996.
-
Das
Dokument 2 und das Dokument 4 beschreiben Verknüpfungsprotokolle, die der oben
beschriebenen Technologie entsprechen, die dazu verwendet wird,
inkorrekte Vorgehensweisen zu verhindern, wie dann, wenn der Erzeuger
der digitalen Signatur eine Nachricht fälscht und eine neue digitale
Signatur erzeugt, die dann dazu verwendet wird, die ursprüngliche
Nachricht und die ursprüngliche
digitale Signatur zu ersetzen.
-
(Erste Ausführungsform)
-
Nun
wird unter Bezugnahme auf die Zeichnungen eine Ausführungsform
beschrieben, bei der die Erfindung für einen Zeitmarkierungsdienst
realisiert ist, der über
ein Netzwerk betrieben wird.
-
Die 1 zeigt
eine schematische Systemarchitektur dieser Ausführungsform. Ein Netzwerk 1001 verbindet
einen Steuerungscomputer 1031 einer Zeitmarkierungsausgabestation
und mehrere Benutzer-PCs 1011, 1020. Ein Benutzer
erzeugt eine Nachricht 1002 und schickt sie vom Benutzer-PC 1011 über das
Netzwerk 1001 zur Zeitmarkierungsausgabestation, damit
später
bewiesen werden kann, dass die Nachricht zu diesem speziellen Zeitpunkt
existierte. Der Computer 1031 der Zeitmarkierungsausgabestation
empfängt
die Nachricht 1002 vom Benutzer, und er gibt eine Zeitmarkierung
für die Nachricht 1002 aus,
damit diese als Zeitgarantieinformation dient. Eine aus der Nachricht 1002 und
der Zeitmarkierung gebildete Nachricht 1003 mit Zeitmarkierung
wird dann an den Benutzer-PC 1011 zurückgesendet. Der Benutzer-PC 1011 empfängt die Nachricht 1003 mit
Zeitmarkierung.
-
Die
Zeitmarkierungen bei dieser Ausführungsform
verwenden eine Technologie auf Grundlage des oben beschriebenen
Verknüpfungsprotokolls. Zusätzlich zur
Nachricht und zur Zeitinformation erzeugt die Zeitmarkierungsausgabestation
eine digitale Signatur für
Information, die zu Daten betreffend Zeitmarkierungen, wie unmittelbar
zuvor ausgegeben, hinzugefügt
werden.
-
Ferner
werden bei der Erfindung digitale Signaturen unter Verwendung einer
Schwellenwertsignaturtechnologie erzeugt, um für weitere Sicherheit und Zuverlässigkeit
zu sorgen. Genauer gesagt, wird ein System mit k aus n Schwellenwertsignaturtechnologien
verwendet. Dieses System verwendet n Computereinheiten (Signaturerzeugungsvorrichtungen).
Die Signaturerzeugung kann dann korrekt ausgeführt werden, wenn beliebige
k Einheiten verfügbar sind,
jedoch kann eine korrekte Signaturerzeugung nicht mit n-k Einheiten
ausgeführt
werden. Außer
in den Dokumenten 8 bis 10, wie sie oben angegeben sind, sind Schwellenwertsignaturtechnologien
im folgenden Dokument beschrieben:
- Dokument 11: japanische
Patentoffenlegungsveröffentlichung
Nr. Hei 11-307993
-
Dieses
Dokument offenbart eine Schwellenwertsignaturtechnologie, die beim
Erzeugen von Signaturen keine geheime Kommunikation erfordert. Wenn
beispielsweise diese Schwellenwertsignaturtechnologie verwendet
wird und aus irgendeinem Grund n-k Einheiten der Signaturerzeugungsvorrichtungseinheiten
fehlerhaft arbeiten, können
digitale Signaturen unter Verwendung der restlichen k Einheiten
erzeugt werden. Auch ist selbst dann, wenn Information, die geheimgehalten
werden sollte, aus irgendeinem Grund aus n-k Einheiten der n Signaturerzeugungsvorrichtungseinheiten
nach außen
dringt, das Ausführen
inkorrekter Vorgehensweisen wie das Fälschen digitaler Signaturen
schwierig. So kann ein zuverlässiges
Zeitmarkierungsausgabesystem mit hoher Sicherheit geschaffen werden.
-
Bei
der unten beschriebenen Ausführungsform
wird eine 2-aus-3-Schwellenwertsignaturtechnologie
verwendet, jedoch können
die Werte von k und n für
den gewünschten
Sicherheitsgrad, die gewünschte
Sicherheit, das gewünschte
Preis/Leistungs-Verhältnis
und dergleichen geeignet gewählt werden.
-
Der
Benutzer-PC 1011 besteht aus einer CPU 1012, einem
Speicher 1013, einer I/O 1016, einem Display 1014,
einer Tastatur 1015 und einen diese Elemente verbindenden
Bus. Der Benutzer-PC 1011 ist über die I/O 1016 auch
mit dem Netzwerk 1001 verbunden. Der Speicher 1013 enthält eine
Benutzer-ID 1017, ein Programm PROG1 1018 sowie einen öffentlichen
Schlüssel 1019 einer
Zeitmarkierungsausgabestation. Das Programm wird über den Bus
an die CPU 1012 übertragen,
um verschiedene Merkmale zu realisieren.
-
In
der Zeitmarkierungsausgabestation sind der Steuerungscomputer 1031 derselben,
ein Signaturerzeugungscomputer A 1051, ein Computer B 1060 und
ein Computer C 1070 über
ein LAN 1040 verbunden. Abhängig von der verwendeten Schwellenwertsignaturtechnologie
kann es erforderlich sein, dass das LAN 1040 die es durchlaufende
Information unter Verwendung einer bekannten Verschlüsselungstechnik
oder einer körperlichen
Vorrichtung schützt.
-
Der
Steuerungscomputer 1031 der Zeitmarkierungsausgabestation
besteht aus einer CPU 1032, einem Speicher 1033,
einer Netzwerkverbindungs-I/O 1036, einer LAN-Verbindungs-I/O 1037, einem
Display 1034, einer Tastatur 1035 und einem diese
Elemente verbindenden Bus. Der Steuerungscomputer 1031 ist über die
Netzwerkverbindungs-I/O 1036 mit dem Netzwerk 1001 verbunden,
und er ist über
die LAN-Verbindungs-I/O 1037 mit dem LAN 1040 verbunden.
Im Speicher 1033 ist ein Programm PROG2 1038 gespeichert.
-
Der
Signaturerzeugungscomputer A 1051, der Computer B 1060 und
der Computer C 1070 in der Zeitmarkierungsausgabestation
verfügen
im Wesentlichen über
dieselbe Architektur und sie bestehen aus einer CPU 1052,
einem Speicher 1053, einer LAN-Verbindungs-I/O 1059,
einem Timer 1059 und einem diese Elemente verbindenden
Bus. Die LAN-Verbindungs-I/O 1037 verbindet den Signaturerzeugungscomputer
mit dem LAN 1040. Es wird vorab irgendein Verfahren dazu
verwendet, den Timer 1059 mit den anderen Signaturerzeugungscomputern
zu synchronisieren. Der Speicher 1053 enthält eine
ID 1055, ein Programm PROG3 1056, Privatschlüssel-Erzeugungsinformation 1057 sowie
einen Verlaufsspeicherbereich 1058 zum Speichern von Daten
(nachfolgend als Verlaufsdaten bezeichnet), die verwendet wurden,
als eine vorige oder frühere digitale
Signa tur erzeugt wurde. Die ID 1055 und die Privatschlüssel-Erzeugungsinformation 1057 werden mit
für jeden
Computer spezifischen festen Werten eingestellt.
-
Bei
der Privatschlüssel-Erzeugungsinformation 1057 handelt
es sich um Daten, die in jedem der Signaturerzeugungscomputer sicher
gespeichert gehalten werden sollten. Die Privatschlüssel-Erzeugungsinformation
wird vorab auf verteilte Weise abgespeichert, so dass dann, wenn
Signaturerzeugungscomputer auf solche Weise verfügbar sind, dass vorbestimmte
Bedingungen erfüllt
sind (da diese Ausführungsform
2-aus-3-Schwellenwertsignaturen verwendet, gilt dies, wenn beliebige
zwei der drei Computer verfügbar
sind) die in diesen Computern gespeicherte Privatschlüssel-Erzeugungsinformation dazu
verwendet werden kann, die Privatschlüsselinformation der Zeitmarkierungsausgabestation
wieder zu erzeugen. Die speziellen Verfahren, die dazu verwendet
werden, die Privatschlüssel-Erzeugungsinformation
auf verteilte Weise zu speichern, sind beispielsweise in den Dokumenten
8 bis 11 beschrieben.
-
Die 2 ist
ein Flussdiagramm der bei dieser Ausführungsform ausgeführten Operationen.
Im Flussdiagramm werden die Schritte 2001, 2002, 2003, 2010 und 2011 dadurch
implementiert, dass dafür
gesorgt wird, dass die CPU 1012 das im Speicher 1013 des
Benutzer-PC 1011 gespeicherte Programm PROG1 1018 ausführt. In ähnlicher
Weise werden die Schritte 2004, 2005, 2007 und 2009 dadurch
implementiert, dass dafür
gesorgt wird, dass die CPU 1032 das PROG2 1038 im
Steuerungscomputer 1031 der Zeitmarkierungsausgabestation
ausführt.
Die Schritte 2006, 2008 werden dadurch implementiert,
dass dafür
gesorgt wird, dass die CPU 1052 das PROG3 1056 im
Signaturerzeugungscomputer A 1051 der Zeitmarkierungsausgabestation
ausführt.
-
[Ablauf von Operationen zum Ausgeben von
Zeitmarkierungen]
-
-
[Durch den Benutzer-PC ausgeführte Operationen]
-
- Schritt 2002: Erzeugen des Dokuments, für das eine Zeitbestätigung erwünscht ist.
- Schritt 2003: Anforderung an die Zeitmarkierungsausgabestation,
eine Zeitmarkierung auszugeben (Senden eines Hashwerts Hn des Dokuments sowie einer Benutzer-ID In an die Zeitmarkierungsausgabestation)
-
[Durch den Steuerungscomputer 1031 der
Zeitmarkierungsausgabestation ausgeführte Operationen]
-
- Schritt 2004: Auswählen zweier verfügbarer Signaturerzeugungscomputer
aus den drei Signaturerzeugungscomputern.
- Schritt 2005: Senden des vom Benutzer-PC empfangenen
Dokuments an die im Schritt 2004 ausgewählten Signaturerzeugungscomputer
-
[Durch die Signaturerzeugungscomputer
der Zeitmarkierungsausgabestation (im Schritt 2004 ausgewählte Computer)
ausgeführte
Operationen]
-
- Schritt 2006: Die zwei ausgewählten Computer arbeiten zusammen,
um "Zeitdaten", "Verlaufsdaten" und dergleichen
zum Dokument hinzuzufügen,
eine Signatur (Zeitmarkierung) entsprechend einem Schwellenwertsignaturtechnologieverfahren
hinzuzufügen und
das Ergebnis an den Steuerungscomputer zu senden. Abhängig vom
verwendeten Schwellenwertsignaturtechnologieverfahren können zwischen
den Signaturerzeugungscomputern und dem Steuerungscomputer mehrere
Kommunikationsvorgänge
vorliegen.
-
[Durch den Steuerungscomputer 1031 der
Zeitmarkierungsausgabestation ausgeführte Operationen]
-
- Schritt 2007: Die Daten, wie sie von den Signaturerzeugungscomputern
der Zeitmarkierungsausgabestation geschaffen wurden, um die Signatur
(Zeitmarkierung) zu erzeugen, werden als neueste "Verlaufsdaten" an alle Signaturerzeugungscomputer,
unabhängig
davon, ob sie in die Erzeugung der Signatur einbezogen waren oder
nicht, gesendet.
-
[Durch die Signaturerzeugungscomputer
(alle Computer) der Zeitmarkierungsausgabestation ausgeführte Operationen]
-
- Schritt 2008: Jeder der Signaturerzeugungscomputer verwendet
die vom Steuerungscomputer empfangenen Daten zum Aktualisieren des
Verlaufsspeicher bereichs in seinem Speicher, und dann zeigt er dem Steuerungscomputer
an, dass die Aktualisierung erfolgreich war.
-
[Durch den Steuerungscomputer 1031 in
der Zeitmarkierungsausgabestation ausgeführte Operationen]
-
- Schritt 2009: Die aus dem Dokument und der erzeugten
Signatur (Zeitmarkierung) erzeugte Nachricht 1003 mit Zeitmarkierung
wird an den Benutzer-PC gesendet, der die Anforderung ausgegeben
hat.
-
[Durch den Benutzer-PC ausgeführte Operationen]
-
- Schritt 2010: Der Benutzer empfängt das mit einer Zeitmarkierung
versehene Dokument von der Zeitmarkierungsausgabestation. Der öffentliche
Schlüssel
der Zeitmarkierungsausgabestation wird dazu verwendet, zu klären, dass
die Zeitmarkierung legitim ist. Das Dokument mit Zeitmarkierung
wird akzeptiert.
- Schritt 2011: Ende
-
Bei
dieser Ausführungsform
werden beim Erzeugen der Signatur (der Zeitmarkierung) verwendete
Daten alle im Schritt 2007 als jüngste "Verlaufsdaten" an alle Signaturerzeugungscomputer
gesendet. Demgemäß enthalten
alle Signaturerzeugungscomputer, beim Erzeugen einer Signatur, die
jüngsten Verlaufsdaten
zu diesem Zeitpunkt. Im Ergebnis können beliebige zwei Signaturerzeugungsvorrichtungen
zum korrekten Erzeugen einer Signatur verwendet werden. Im Schritt 2007 werden
Verlaufsdaten an alle Signaturerzeugungscomputer gesendet. Jedoch können Computer,
die in die Erzeugung der Signatur einbezogen waren, diese Daten
bereits erhalten, wenn die Signatur erzeugt wird. So wäre es möglich, die
Daten nur an denjenigen Computer zu senden, der nicht in die Erzeugung
der Signatur einbezogen war.
-
Die 3 zeigt
den detaillierten Ablauf von Operationen, wie sie im Schritt 2006 Zeitmarkierungsherausgabeoperationen" ausgeführt werden, wenn
eine Zeitmarkierung auf Grundlage des oben beschriebenen Verknüpfungsprotokolls
beim im Dokument 11 angegebenen Schwellenwertsignaturtechnologieverfahren
verwendet wird. Hier ist angenommen, dass die im Schritt 2004 ausgewählten Signaturerzeugungscomputer
der Computer A 1051 und der Computer B 1060 sind.
-
Auch
werden die Daten, wie sie erzeugt werden, wenn ein privater Schlüssel mit
der in einem Computer I (mit I = A oder B oder C) gemeinsam mit einem
Computer J gespeicherten Privatschlüssel-Erzeugungsinformation
verwendet werden als eIJ angegeben. Ferner
wird als Basis für
digitale Signaturen eine Verschlüsselung
mit elliptischer Kurve verwendet. Die arithmetischen Grundoperationen,
die zum Bestimmen des Folgenden verwendet werden, werden vorab in
jedem der Computer platziert:
Die Ordnung p des Felds GF(p)
(ungerade Primzahl mit ungefähr
160 Bits) die Parameter a, b, wie sie in der Definition einer elliptischen
Kurve: y2 = x3 +
ax + b mod p auftreten
die Koordinaten b des Basispunkts P
auf der elliptischen Kurve E: (xp, Yp)
die Ordnung einer Gruppe rationaler
Punkte auf der elliptischen Kurve E, wie durch den Basispunkt P
erzeugt: q (ungerade Primzahl mit ungefähr 160 Bits)
sowie Addition,
Verdopplung, skalare Multiplikation an elliptischen Kurven sowie
Addition, Subtraktion, Multiplikation, Division und Exponentialbildung
auf Grundlage von Primzahlen. Diese Parameter und Grundoperationen
sind im Dokument 3 beschrieben.
-
[Detaillierter Ablauf von im Schritt 2006 ausgeführten Operationen]
-
-
[Durch den Steuerungscomputer ausgeführte Operationen]
-
- Schritt 3002: Senden eines Hashwerts Hj des
Dokuments und der Benutzer-ID
Ij an den Computer A 1051 und den
Computer B 1060 (dies entspricht dem Schritt 2005)
-
[Durch den Signaturerzeugungscomputer
A 1051 ausgeführte
Operationen]
-
- Schritt 3003A: Berechnen von Lj =
H (Ij-1, Hj-1, Tj-1, Lj-1) aus dem
im Verlaufsspeicherbereich gespeicherten Verlaufsdaten Ij-1, Hj-1, Tj-1, Lj-1
-
[Durch den Signaturerzeugungscomputer
B 1060 ausgeführte
Operationen]
-
- Schritt 3003B: Berechnen von Lj,
wie dies durch den Computer A 1051 erfolgte
-
[Durch den Signaturerzeugungscomputer
A 1051 ausgeführte
Operationen]
-
- Schritt 3004A: Ein zu signierender Datenwert M
wird durch Verbinden der ID Ij und des Hashwerts
Hj, wie vom Signaturerzeugungscomputer empfangen,
eines vom Timer des Computers A 1051 erhaltenen Zeitpunkts
Tj, eines Index j und von Kopplungsdaten Lj, wie sie als Verlaufsdaten im Computer
A 1051 gespeichert sind, sowie von Daten betreffend die
letzte Zeitmarkierung (Benutzer-ID Ij-1,
Hashwert Hj-1 und Tj-1)
berechnet. Auch wird ein Hashwert h(M) der Daten M berechnet.
-
[Durch den Signaturerzeugungscomputer
B 1060 ausgeführte
Operationen]
-
- Schritt 3004B: Berechnen des Hashwerts h(M) wie im
Schritt 3004A.
-
[Durch den Signaturerzeugungscomputer
A 1051 ausgeführte
Operationen]
-
- Schritt 3005A: Erzeugen einer Zufallszahl kA, die eine natürliche Zahl ist, wobei 0 < kA < q gilt. Berechnen
eines skalaren mehrfachen an einer elliptischen Kurve RA =
kAP, und Senden von RA an
den Computer B 1060.
-
[Durch den Signaturerzeugungscomputer
B 1060 ausgeführte
Operationen]
-
- Schritt 3005B: Erzeugen einer Zufallszahl kB, die eine natürliche Zahl ist, wobei 0 < kB < q gilt. Berechnen
eines skalaren mehrfachen an einer elliptischen Kurve RB =
kBP, und Senden von RB an
den Computer A 1051.
-
[Durch den Signaturerzeugungscomputer
A 1051 ausgeführte
Operationen]
-
- Schritt 3006A: Berechnen der Summe (x,y) = RA + RB an der elliptischen
Kurve sowie von r = x(mod q), sA = eABx + kAh(M)(mod
q). Senden von r, sA und M an den Steuerungscomputer.
-
[Durch den Signaturerzeugungscomputer
B 1060 ausgeführte
Operationen]
-
- Schritt 3006B: Berechnen der Summe (x,y) = RB + RA an der elliptischen
Kurve sowie von r = x(mod q), sB= eBAx + kBh(M)(mod
q). Senden von r, sA und M an den Steuerungscomputer
(r hat denselben Wert, wie er im Schritt 3006A, wie er
durch den Computer A 1051 berechnet wurde).
-
[Durch den Steuerungscomputer ausgeführte Operationen]
-
- Schritt 3007: Berechnen von s = sA +
sB(mod q) und Verwenden von (r, s) als Zeitmarkierung
TSj.
- Schritt 3008: Ende
-
Die 4 ist
wie die 3 ein Flussdiagramm, das den
Ablauf von Operationen zeigt, wie sie im Schritt 2007 des "Ablaufs von Zeitmarkierungsausgabeoperationen" ausgeführt werden,
wobei eine Zeitmarkierung unter Verwendung einer Schwellenwertsignaturtechnologie
auf Grundlage des Verknüpfungsprotokolls
ausgegeben wird, das ein Verfahren verwendet, wie es bei einer Ausführungsform
im Dokument 11 beschrieben ist.
-
[Detaillierter Ablauf von im Schritt 2007 ausgeführten Operationen]
-
-
[Durch den Steuerungscomputer ausgeführte Operationen]
-
- Schritt 4002: Senden von Ij,
Hj, Tj als neue
Verlaufsdaten an alle Signaturerzeugungscomputer, und Anfordern
von Aktualisierungen (entspricht dem Schritt 2007).
-
[Durch den Signaturerzeugungscomputer
A 1051, den Computer B 1060 und den Computer C 1070 ausgeführte Operationen
(unabhängig
voneinander ausgeführt)]
-
- Schritt 4003: Speichern der empfangenen Information
(Ij, Hj, Tj, Lj) im Verlaufsspeicherbereich
- Schritt 4004: Inkrementieren des Index um 1.
-
[Durch den Steuerungscomputer ausgeführte Operationen]
-
- Schritt 4005: Zurücksenden von TSj als
Zeitmarkierung sowie von M = (j, Lj, Hj, Tj, Ij-1,
Hj-1, Tj-1, Lj) an den anfordernden Benutzer (Ij) (entspricht dem Schritt 2009).
-
[Durch den Benutzer-PC ausgeführte Operationen]
-
- Schritt 4006: Empfangen eines mit einer Zeitmarkierung
versehenen Dokuments (entspricht dem Schritt 2010).
- Schritt 4007: Ende
-
Die 5 zeigt
den Zustand des Verlaufsspeicherbereichs in einem Zeitmarkierung
unmittelbar nach dem Schritt 4004 im in der 4 dargestellten
Ablauf von Operationen. Der Verlaufsspeicherbereich enthält einen
Index j + 1 5001, eine Benutzer-ID Ij 5002,
einen Hashwert Hj 5003 der Nachricht,
Zeitinformation Tj 5004 sowie Verknüpfungsdaten
Lj 5005.
-
Beim
oben beschriebenen Verknüpfungsprotokoll
wird die aktuelle Benutzer-ID (Ij) dem vorigen Benutzer
(dem Benutzer mit der Benutzer-ID Ij-1)
angegeben, nachdem die Reihe der oben beschriebenen Operationen
abgeschlossen ist. dies erlaubt die Bestätigung, dass die Verknüpfung in
der nächsten Verknüpfung korrekt
widergespiegelt wird.
-
Der
das Dokument mit Zeitmarkierung empfangende Benutzer kann die Zeitmarkierung
auf dieselbe Weise wie dann verifizieren, wenn die Schwellenwertsignaturtechnologie
nicht verwendet wird. Genauer gesagt, wird, mit dem öffentlichen
Schlüssel der
Zeitmarkierungsausgabestation, eine Technologie zum Verifizieren
einer digitalen Signatur dazu verwendet, die Echtheit der Zeitmarkierung
(digitalen Signatur) TSj in Bezug auf (j,
Lj, Hj, Tj, Ij-1, Hj-1, Tj-1, Lj ) zu bestätigen. Um eine detaillierte
Bestätigung
zu erlauben, um abzusichern, dass in der Zeitmarkierungsausgabestation
keine Unregelmäßigkeiten
vorliegen, kann der vorige Benutzer (Benutzer-ID Ij-1)
abgefragt werden, um Lj-1 zu erhalten. Dies
erlaubt eine Klärung,
ob die Verknüpfungsdaten
Lj mit H(Ij-1, Hj-1, Tj-1, Lj-1) identisch sind. Ähnlich kann der nächste Benutzer
(Benutzer-ID Ij-1) abgefragt werden, um
zu klären,
dass die aus den empfangenen Daten berechnete Information H(Ij, Hj, Tj,
Lj) identisch mit den Verknüpfungsdaten
Lj+1 ist, die in den durch den nächsten Benutzer
empfangenen Daten enthalten sind. Ferner kann durch Wiederholen
dieser Operationen und durch Abfragen von Benutzern für zwei oder mehr
zurückliegende,
frühere
Signaturen oder betreffend Benutzer für zwei oder mehr spätere Signaturen,
die Echtheit einer Zeitmarkierung weiter bestätigt werden.
-
Die
Ausführungsform,
wie sie oben beschrieben ist, erlaubt Signaturerzeugungsoperationen,
wie Schwellenwertsignaturtechnologien, zu denen mehrere Signaturerzeugungsvorrichtungen
gehören, durch
Signaturerzeugungsoperationen zu implementieren, bei denen sich
Daten betreffend die unmittelbar vorangehende Signaturerzeugung
in der Erzeugung der nächsten
Signatur widerspiegeln.
-
Die
Beschreibung dieser Ausführungsform betraf
ein k-aus-n-Schwellenwertsignaturverfahren, bei
dem korrekte Signaturen dann erzeugt werden, wenn k Vorrichtungen
von n Vorrichtungen verfügbar sind.
Jedoch ist die Erfindung nicht hierauf eingeschränkt, und es wäre auch
möglich,
für eine ähnliche
Implementierung bei beispielsweise einer Technologie mit verteilten
Signaturen zu sorgen, bei denen vier Signaturerzeugungsvorrichtungen
A, B, C, D vorhanden sind und Signaturen erzeugt werden können, wenn
entweder eine aus den Vorrichtungen A, B bestehende Gruppe oder
eine aus den Vorrichtungen B, C, D bestehende Gruppe verfügbar ist.
Ein Beispiel dieses Typs einer Signaturtechnologie ist im Dokument
11 angegeben.
-
Es
existiert auch eine Technologie auf Grundlage des k-bis-aus-n-Schwellenwertsignaturverfahrens,
bei dem eine Signaturerzeugung an k oder mehr Signaturerzeugungsvorrichtungen
angefordert wird und eine korrekte Signatur erzeugt werden kann,
wenn mindestens k Einheiten korrekt arbeiten. Um diesen Technologietyp
zu nutzen, wäre
es beispielsweise möglich,
dafür zu
sorgen, dass der Steuerungscomputer im Schritt 2004 eine
Signaturerzeugung bei allen Signaturerzeugungscomputern statt nur
zweien derselben anfordert.
-
Ferner
ist bei der obigen Ausführungsform der
Steuerungscomputer getrennt von den Signaturerzeugungscomputern
implementiert, jedoch wäre
es auch möglich,
die Merkmale des Steuerungscomputers in einem oder mehreren der
Signaturerzeugungscomputer zu implementieren. Von Benutzer-PCs gesendete
Nachrichten können über Hashwerte
verfügen,
die unter Verwendung einer Hashfunktion vorab auf dem Benutzer-PC
berechnet werden.
-
Die
oben beschriebene Ausführungsform zeigt
die folgenden Erfordernisse:
- 1. Signaturerzeugungscomputer,
die nicht direkt in die Signaturerzeugung einbezogen sind, müssen ebenfalls
zur Kommunikation verfügbar
sein, damit Verlaufsdaten aktualisiert werden können.
- 2. Verlaufsdaten betreffend eine vergangene Signaturerzeugung
in jedem der Steuerungscomputer müssen von außen her eingestellt werden.
-
Bei
Technologien wie dem Verknüpfungsprotokoll,
bei dem eine erzeugte Signatur Daten widerspiegelt, die in die unmittelbar
vorangegangene Signatur einbezogen sind, muss die Sicherheit dadurch aufrecht
erhalten werden, dass gewährleistet
wird, dass die widergespiegelten Daten tatsächlich Daten sind, die in Zusammenhang
mit der vorigen Signaturerzeugungsoperation stehen. Beim obigen
zweiten Punkt muss geklärt
werden, dass die in jedem Signaturerzeugungscomputer von außen her
eingestellten Verlaufsdaten tatsächlich
Daten sind, die in Zusammenhang mit der vorigen Signaturerzeugungsoperation
stehen.
-
Eine
andere Ausführungsform,
die diese Bedingungen lindert, ist nachfolgend beschrieben.
-
(Zweite Ausführungsform)
-
Die
schematische Systemarchitektur bei dieser Ausführungsform ist dieselbe, wie
sie in der 1 dargestellt ist. Das bei dieser
Ausführungsform verwendete
Schwellenwertsignaturtechnologieverfahren (oder allgemeiner eine
verteilte Signaturerzeugungsoperation) zeigt die folgende Charakteristik.
-
Wenn,
für jedes
beliebige j, die Gruppe von Signaturerzeugungscomputern, die in
die j-te Signaturerzeugungsoperation einbezogen sind, SSj ist, und wenn die Gruppe der in die Signaturerzeugungsoperation
j + 1 einbezogenen Signaturerzeugungscomputer SSj+1 ist,
ist die Schnittmenge zwischen SSj und SSj+1 keine Leermenge (anders gesagt, ist mindestens
eine Signaturerzeugungsvorrichtung in zwei aufeinanderfolgende Signaturerzeugungsoperationen
einbezogen).
-
Wenn
beispielsweise k > n/2
bei einer k-aus-n-Schwellenwertsignaturerzeugungsoperation gilt,
ist diese Charakteristik erfüllt,
da mindestens 2k–n
Vorrichtungen bei zwei aufeinderfolgenden Signaturerzeugungsoperationen
einbezogen sind, und zwar unabhängig
davon, wie die bei der Signaturerzeugung einbezogenen k Vorrichtungen
auszuwählen
sind. So genügt
das bei der ersten Ausführungsform
verwendete 2-aus-3-Schwellenwertsignatursystem auch dieser Charakteristik.
-
Wie
unten beschrieben, ist, da diese Ausführungsform ein Signaturverfahren
mit der obigen Charakteristik verwendet, das Erfordernis beseitigt,
Verlaufsdaten an Signaturerzeugungsvorrichtungen zu senden, die
nicht in die Signaturerzeugung einbezogen sind, wie bei der ersten
Ausführungsform.
Anders gesagt, ist der oben beschriebene zweite Punkt gelöst, und
der Schritt 2007 und der Schritt 2008 aus dem
in der 2 dargestellten "Ablauf von Operationen zum Ausgeben
von Zeitmarkierungen" können weggelassen
werden.
-
Der
im Schritt 2006 bei dieser Ausführungsform ausgeführte Ablauf
von Operationen ist in der 6 dargestellt.
-
[Ablauf von Operationen im Schritt 2006]
-
-
[Durch den Steuerungscomputer ausgeführte Operationen]
-
- Schritt 6002: Gleich wie der Schritt 3002
-
[Durch den Signaturerzeugungscomputer
A 1051 ausgeführte
Operationen]
-
- Schritt 6003A: Senden des im Computer A 1051 gespeicherten
Index jA an den Computer B 1060.
-
[Durch den Signaturerzeugungscomputer
B 1060 ausgeführte
Operationen]
-
- Schritt 6003B: Senden des im Computer B 1060 gespeicherten
Index jB an den Computer A 1051.
-
[Durch den Signaturerzeugungscomputer
A 1051 ausgeführte
Operationen]
-
- Schritt 6004A: Wenn jA ≥ jB gilt, verwenden der im Computer A gespeicherten
Verlaufsdaten im Schritt 6005A, und senden derselben an
den Computer B 1060. Andernfalls jA:=jB setzen und verwenden der vom Computer B 1060 gesendeten
Verlaufsdaten im Schritt 6005A.
-
[Durch den Signaturerzeugungscomputer
B 1060 ausgeführte
Operationen]
-
- Schritt 6004B: Wenn jB ≥ jA gilt, verwenden der im Computer B gespeicherten
Verlaufsdaten im Schritt 6005B, und senden derselben an
den Computer A 1051. Andernfalls jB:=jA setzen und verwenden der vom Computer a 1051 gesendeten
Verlaufsdaten im Schritt 6005B.
-
[Durch den Signaturerzeugungscomputer
A 1051 ausgeführte
Operationen]
-
- Schritt 6005A: Gleich wie die Schritte 3003A–3006A
-
[Durch den Signaturerzeugungscomputer
B 1060 ausgeführte
Operationen]
-
- Schritt 6005B: Gleich wie die Schritte 300B–3006B
-
[Durch den Signaturerzeugungscomputer
A 1051 ausgeführte
Operationen]
-
- Schritt 6006A: Inkrementieren des Index um 1 und Abspeichern
im Verlaufsspeicherbereich gemeinsam mit Ij,
Hj, Tj, Lj.
-
[Durch den Signaturerzeugungscomputer
B 1060 ausgeführte
Operationen]
-
- Schritt 6006B: Inkrementieren des Index um 1 und Abspeichern
im Verlaufsspeicherbereich gemeinsam mit Ij,
Hj, Tj, Lj.
-
[Durch den Steuerungscomputer ausgeführte Operationen]
-
- Schritt 6007: Zurücksenden von TSj als
Zeitmarkierung sowie von (j, Ij, Hj, Tj, Ij-1,
Hj-1, Tj-1, Lj) an den Benutzer (Ij),
der die Anforderung ausgegeben hat (entspricht dem Schritt 2009).
- Schritt 6008: Ende
-
Diese
Ausführungsform
erlaubt es, die Echtheit des mit einer Zeitmarkierung versehenen
Dokuments wie bei der ersten Ausführungsform zu klären.
-
Da
diese Ausführungsform
die in der obigen Charakteristik beschriebene verteilte Signaturtechnologie
verwendet, ist das Vorhandensein eines Signaturerzeugungscomputers,
der über
den jüngsten Verlauf
verfügt,
während
der Signaturerzeugung garantiert. Ferner können in den oben beschriebenen Schritten 6004A und 6004B Indizes
verglichen werden, um zu bestimmen, welcher Signaturerzeugungscomputer über den
jüngsten
Verlauf verfügt. Allgemeiner
gesagt, kann, wenn k Signaturerzeugungscomputer in die Signaturerzeugung
einbezogen sind, der Computer mit dem jüngsten Verlauf dadurch bestimmt
werden, dass derjenige mit dem höchsten
aufgezeichneten Index gesucht wird. Demgemäß kann, wenn die bei der Signaturerzeugung einbezogenen
Signaturerzeugungscomputer ihre Verlaufsdaten aktualisieren, eine
Signaturerzeugung, die sich auf die jüngsten Verlaufsdaten stützt, ausgeführt werden,
ohne dass Aktualisierungen von Verlaufsdaten in Signaturerzeugungscomputern
erforderlich wären,
die nicht in die Signaturerzeugung einbezogen sind.
-
Bei
dieser Ausführungsform
kann das Schwellenwertsignaturtechnologieverfahren dazu verwendet,
Signaturen zu erzeugen, die Daten widerspiegeln, die in die unmittelbar
vorige Signatur einbezogen sind, wie beim oben beschriebenen Verknüpfungsprotokoll.
So ist es, abweichend von der ersten Ausführungsform, nicht erforderlich,
Kommunikationsvorgänge
zum Aktualisieren von Verlaufsdaten in denjenigen Signaturerzeugungscomputern
auszuführen,
die nicht direkt in die Signaturerzeugung einbezogen sind. Im Ergebnis
kann eine der Eigenschaften der Schwellenwertsignaturtechnologieerzeugung – dass Signaturen
erst dann erzeugt werden können, wenn
einige Vorrichtungen aufgrund einer Fehlfunktion nicht verfügbar sind – aufrecht
erhalten werden.
-
Ferner
sind die Daten, die in die unmittelbar vorangehende Signaturerzeugungsoperation
einbezogen sind, die als Verlaufsdaten verwendet werden, entweder
im lokalen Computer gespeicherte Daten oder solche Daten, die von
einem anderen Signaturerzeugungscomputer gesendet wurden. So kann, wenn
allen Signaturerzeugungscomputern vertraut werden kann, beispielsweise
unter Verwendung einer bidirektionalen Authentifizierungstechnologie
und einer Technologie zum Verhindern einer Datenfälschung
in den Kommunikationspfaden zwischen den Signaturerzeugungscomputern,
die oben angegebene zweite Bedingung wegge lassen werden, d.h., dass
die Verlaufsdaten betreffend die vorige Signaturerzeugungsoperation
von außen
eingestellt werden müssen.
-
(Dritte Ausführungsform)
-
Die
schematische Systemarchitektur bei dieser Ausführungsform ist dieselbe, wie
sie in der 1 dargestellt ist. Auch hat
das bei dieser Ausführungsform
verwendete Schwellenwertsignaturtechnologieverfahren (oder allgemeiner
die verteilte Signaturerzeugungsoperation) dieselbe Charakteristik, wie
sie bei der zweiten Ausführungsform
angegeben ist.
-
Bei
dieser Ausführungsform
werden Verlaufsdaten entsprechend dem unten angegebenen Verfahren
weitergeleitet. Genauer gesagt, werden, wenn bei der zweiten Ausführungsform
eine Signatur erzeugt wird, die jüngsten Verlaufsdaten zu diesem Zeitpunkt
angehängt
(es wird eine Kette gebildet). Demgegenüber wird bei dieser Ausführungsform
die Signaturerzeugung so ausgeführt,
dass Verlaufsdaten, wie sie in jeder der Signaturerzeugungsvorrichtungen
enthalten sind, die in die Ausgabe einer Signatur einbezogen sind,
an alle Signaturerzeugungsvorrichtungen weitergeleitet wird, die
in die Ausgabe der Zeitmarkierung einbezogen sind. Auch werden Signaturen
so erzeugt, dass diese Ketten unabhängig voneinander verifizierbar
sind.
-
Beispielsweise
wird ein 2-aus-3-Schwellenwertsignaturverfahren verwendet, und Signaturen werden
mit den folgenden Kombinationen von Signaturerzeugungsvorrichtungen
erzeugt (Zeitmarkierungen werden ausgegeben).
-
[Beispiel
einer Ausgabesequenz von Zeitmarkierungen]
-
Wenn
die dritte Signatur unter Verwendung des Signaturerzeugungscomputers
B 1060 und des Signaturerzeugungscomputers C 1070 erzeugt
wird, sind die jüngsten
Verlaufsdaten für
den Signaturerzeugungscomputer B 1060 die Daten betref fend
die Erzeugung der ersten Signatur, und die jüngsten Verlaufsdaten für den Signaturerzeugungscomputer
C 1070 sind die Daten betreffend die Erzeugung der zweiten
Signatur. Bei dieser Ausführungsform
werden beide Gruppen von Verlaufsdaten dazu verwendet, die dritte
Signatur zu erzeugen.
-
Um
beide Gruppen von Verlaufsdaten zu verwenden, können die Daten zu einer Einheit
verbunden (verkettet) werden. Die Verlaufsdaten können auch
Kennungsinformation enthalten (beispielsweise Information, die anzeigt, über wie
viele Signaturgenerationen die Verlaufsdaten zurückreichen).
-
In ähnlicher
Weise wird, wenn die vierte Signatur durch den Signaturerzeugungscomputer
A 1051 und den Signaturerzeugungscomputer C 1070 erzeugt
wird, Information betreffend die durch den Signaturerzeugungscomputer
A 1051 ausgeführte zweite
Signaturerzeugungsoperation und die durch den Signaturerzeugungscomputer
C 1070 ausgeführte
dritte Signaturerzeugungsoperation verwendet. Frü die fünfte Signaturerzeugungsoperation
werden Daten verwendet, bei denen zwei Gruppen von Daten betreffend
die vierte Signaturerzeugungsoperation kombiniert sind.
-
Zusätzlich zu
den Eigenschaften der zweiten Ausführungsform, bei denen eine
erzeugte Signatur immer die letzten Verlaufsdaten widerspiegelt,
sorgt dieses Signaturerzeugungsverfahren für eine andere Charakteristik,
gemäß der eine
erzeugte Signatur immer die Daten widerspiegelt, wie sie in jedem
der Signaturerzeugungscomputer gespeichert sind, die zu ihrer Erzeugung
verwendet werden (d.h. Daten, die für jeden der Signaturerzeugungscomputer
zuverlässig
sind).
-
Ferner
können
die mehreren bei dieser Ausführungsform
gebildeten Ketten unabhängig
verifiziert werden. Selbst wenn ein bösartiger Signaturerzeugungscomputer
in die Erzeugung einer Signatur einbezogen ist und falsche Daten
als letzte Verlaufsdaten sendet, ist es möglich, mindestens eine korrekte
Kette zu bestätigen.
Dies ermöglicht
es, dass Effekte enthalten sein können, die von einem bösartigen
Signaturerzeugungscomputer herrühren.
-
Dies
wird nachfolgend unter Bezugnahme auf die oben angegebene beispielhafte
Ausgabesequenz von Zeitmarkierungen beschrieben.
-
Die 11 zeigt
eine schematische Darstellung der Ketten, wie sie in der oben angegebenen Ausgabesequenz
von Zeitmarkierungen auftreten. Die Pfeile in den Ketten 11001 kennzeichnen
Abhängigkeiten
zwischen Signaturen. Wie es in der 11 dargestellt
ist, spiegelt die Erzeugung der vierten Signatur Verlaufsdaten wider,
wie sie in die zweite und dritte Signaturerzeugungsoperation einbezogen
waren. Nun sei angenommen, dass dann, wenn die vierte Signatur bei
dieser beispielhaften Ausgabesequenz von Zeitmarkierungen erzeugt
wird, der Signaturerzeugungscomputer C 1070 nicht die korrekten Verlaufsdaten
an den Signaturerzeugungscomputer A 1051 sendet. In diesem
Fall ist es nicht möglich,
die Verknüpfung
mit den Verlaufsdaten aus der dritten Signaturerzeugungsoperation
zu bestätigen.
Jedoch garantiert der echte Signaturerzeugungscomputer A 1051,
dass sich die Verlaufsdaten betreffend die zweite Signaturerzeugungsoperation
korrekt in der vierten Signaturerzeugungsoperation widerspiegeln. So
ist es möglich,
die Verknüpfung
zwischen dem vierten und folgenden Signaturverläufen sowie dem zweiten und
dem vorangehenden Signaturverläufen zu
bestätigen.
So erstreckt der Einfluss der inkorrekten Vorgehensweise durch den
Signaturerzeugungscomputer C 1070 nur bis zur Fehlübereinstimmung zwischen
der dritten und der vierten Signatur.
-
Beim
oben beschriebenen herkömmlichen Verknüpfungsprotokoll
verhindert eine Unterbrechung der Kette an einem Punkt (beispielsweise
zwischen der dritten und der vierten Signatur) die Bestätigung der
Beziehungen zwischen der dritten und früheren Signaturen sowie der
vierten und folgenden Signaturen. Dies kann dazu führen, dass
die Zuverlässigkeit
insgesamt beeinträchtigt
ist. Im Gegensatz dazu überwindet
diese Ausführungsform
das Problem auf die oben beschriebene Weise.
-
Bei
der oben beschriebenen Ausführungsform
kann die oben beschriebene zweite Bedingung selbst dann effektiv
gelindert werden, wenn nicht allen Signaturerzeugungscomputern getraut
werden kann. So kann diese Ausführungsform
dann, wenn nicht allen Signaturerzeugungscomputern, aber vielen
derselben getraut werden kann, für
ein hoch zuverlässiges
Zeitmarkierungssystem sorgen.
-
Die 7 zeigt
den detaillierten Ablauf von Operationen, wie sie bei dieser Ausführungsform
im Schritt 2006 ausgeführt
werden.
-
[Detaillierter Ablauf von im Schritt 2006 ausgeführten Operationen]
-
-
[Durch den Signaturerzeugungscomputer 1031 ausgeführte Operationen]
-
- Schritt 7002: Gleich wie der Schritt 3002
-
[Durch den Signaturerzeugungscomputer
A 1051 ausgeführte
Operationen]
-
- Schritt 7003A: Senden des Index jA und
der Verlaufsdaten in A an B.
-
[Durch den Signaturerzeugungscomputer
B 1060 ausgeführte
Operationen]
-
- Schritt 7003B: Senden des Index jB und
der Verlaufsdaten in B an A.
-
[Durch den Signaturerzeugungscomputer
A 1051 ausgeführte
Operationen]
-
- Schritt 7004A: (j ist der größere und j_S ist der kleinere
der Werte jA und jB.)
Berechnen der Kopplungsdaten Lj = H(Ij_S-1, Hj_S-1, Tj_S-1, Lj_S-1)||H(Ij_S-1, Hj_S-1, Tj_S-1, Lj_S-1)) (||
repräsentiert
eine Verkettung).
-
[Durch den Signaturerzeugungscomputer
B 1060 ausgeführte
Operationen]
-
- Schritt 7004B: Berechnen von Lj wie
im Computer A 1051.
-
[Durch den Signaturerzeuqungscomputer
A 1051 ausgeführte
Operationen]
-
- Schritt 7005A: Verbinden des Index j, der Benutzer-ID
Ij, des Hashwerts Hj,
der vom Timer im Computer A 1051 erhaltenen Zeit Tj sowie j_S, Ij_S-1,
Hj_S-1, Tj_S-1,
j, Ij-1, Hj-1, Tj-1, Lj, und Berechnen
der zu signierenden Daten M. Berechnen des Hashwerts h(M).
-
[Durch den Signaturerzeugungscomputer
B 1060 ausgeführte
Operationen]
-
- Schritt 7005B: Berechnen von j(M) wie im Computer A 1051.
-
[Durch den Signaturerzeugungscomputer
A 1051 ausgeführte
Operationen]
-
Schritt 7006A:
Gleich wie 3005A–3006A.
-
[Durch den Signaturerzeugungscomputer
B 1060 ausgeführte
Operationen]
-
- Schritt 7006B: Gleich wie 3005B–3006B.
-
[Durch den Signaturerzeugungscomputer
A 1051 ausgeführte
Operationen]
-
- Schritt 7007A: Inkrementieren des Index j um 1
und Abspeichern im Verlaufsspeicherbereich gemeinsam mit Ij, Hj, Tj,
Lj.
-
[Durch den Signaturerzeugungscomputer
B 1060 ausgeführte
Operationen]
-
- Schritt 7007B: Inkrementieren des Index j um 1
und Abspeichern im Verlaufsspeicherbereich gemeinsam mit Ij, Hj, Tj,
Lj.
-
[Durch den Steuerungscomputer ausgeführte Operationen]
-
- Schritt 7008: Gleich wie der Schritt 3008.
- Schritt 7009: Zurücksenden
von TSj als Zeitmarkierung gemeinsam mit
(j, Ij, Hj, Tj, j_S, Ij_S-1, Hj_S-1, Tj_S-1, j,
Ij-1, Hj-1, Tj-1, Lj) an den Benutzer
(Ij). der die Anforderung ausgegeben hat
(entspricht dem Schritt 2009).
- Schritt 7010: Ende
-
Ferner
wird beim oben beschriebenen Verknüpfungsprotokoll für eine Bestätigung dahingehend,
dass sich die Kette in der nächsten
Signatur korrekt widerspiegelt, dafür gesorgt, dass die aktuelle Benutzer-ID
(Ij) an den Benutzer (Benutzer-ID jA9), der den Signaturerzeugungscomputer A
zuletzt benutzt hat, und den Benutzer (Benutzer-ID jB),
der den Signaturerzeugungscomputer B 1060 zuletzt genutzt hat,
gesendet wird.
-
Um
die Echtheit eines mit Zeitmarkierung versehenen, gemäß dieser
Ausführungsform
erzeugten Dokuments zu bestätigen,
wird die Echtheit der Zeitmarkierung (der digitalen Signatur) TSj in Bezug auf (j, Ij,
Hj, Tj, j_S, Ij_S-1, Hj_S-1, Tj_S-1, j, Ij-1, Hj-1, Tj-1, Lj) mit dem öffentlichen Schlüssel der
Zeitmar kierungsausgabestation unter Verwendung einer digitalen Signaturverifikationstechnik
geprüft.
Wenn die Echtheit nicht bestätigt
werden kann, kann die Zeitmarkierung TSj nicht
als echt akzeptiert werden.
-
Als
Nächstes
wird, um für
detaillierte Bestätigung
dahingehend zu sorgen, dass in der Zeitmarkierungsausgabestation
keine Unregelmäßigkeiten
auftraten, LjA-1 dadurch erhalten, dass
der Benutzer (Benutzer-ID jA) abgefragt
wird, der zuletzt den Signaturerzeugungscomputer A verwendet hat
(Hinweis: jA = j_s oder j). Dies erlaubt
die Klärung,
ob H(IjA-1, HjA-1, TjA-1, LjA-1) mit
entweder der ersten oder der hinteren Hälfte der Verknüpfungsdaten
Lj = H(Ij_S-1, Hj_S-1, Tj_S-1 Lj_s-1,)||H(Ij_S-1,
Hj_S-1, Tj_S-1,
Lj_S-1) identisch ist.
-
Wenn
die Bestätigung
fehlschlägt,
besteht die Möglichkeit,
dass beispielsweise der Signaturerzeugungscomputer A fehlerhaft
arbeitet oder auf unregelmäßige Weise
arbeitet (einschließlich
Fällen von
Unregelmäßigkeiten,
die sich durch das Eingeben inkorrekter Daten von außen ergeben),
oder dass die in ihm gespeicherten Daten IjA-1,
HjA-1, TjA-1, LjA-1 inkorrekt sind (oder nicht korrekt verwendet
werden). Im Ergebnis wird die Bestätigung unter Verwendung des
anderen Signaturerzeugungscomputers B 1060 ausgeführt. Der
Benutzer (Benutzer-ID
jB), der den Signaturerzeugungscomputer
B 1060 zuletzt verwendet hat, wird abgefragt, um LjB-1 zu erhalten, und es wird H(IjB-1, HjB-1, TjB-1, LjB-1 geprüft, um zu
erkennen, ob der Wert identisch mit den entweder der vorderen oder
der hinteren Hälfte
von Lj ist.
-
Wenn
diese Bestätigung
erfolgreich ist, wird die Zeitmarkierung TSj bei
diesem Verifikationsverfahren als echt akzeptiert (oder es können nach
Bedarf weitere Verifizierschritte, wie beschrieben, verwendet werden).
Andernfalls kann TSj nicht als echt akzeptiert
werden.
-
Eine
Bestätigung
unter Zusammenwirkung mit dem Benutzer (Benutzer-ID jB),
der den Signaturerzeugungscomputer B 1060 zuletzt verwendet
hat, kann ausgeführt
werden, ohne dass eine Beeinflussung durch den Signaturerzeugungscomputer
A erfolgt. So können
die oben beschriebenen zweiten Bedingungen selbst dann stärker gelindert
werden, wenn nicht allen Signaturerzeugungscomputern notwendigerweise
getraut werden kann oder eine keine Zusammenwirkung mit dem Signaturerzeugungscomputer
A erzielt werden kann oder der Computer A inkorrekt arbeitet.
-
Ein
anderer Vorteil dieses Verifizierverfahrens besteht darin, dass
die Verifizierung selbst dann leicht ausgeführt werden kann, wenn andere
Benutzer bei der Verifizierung nicht notwendigerweise zusammenarbeiten
(oder dies nicht können).
Selbst wenn LjA-1 nicht erhalten werden
kann, da der Benutzer (Benutzer-ID jA),
der den Signaturerzeugungscomputer A zuletzt verwendet hat, auf
eine Abfrage nicht reagiert, kann die Verifizierung ausgeführt werden,
wenn die Zusammenwirkung des Benutzers (Benutzer-ID jB)
erlangt werden kann, der den Signaturerzeugungscomputer B 1060 zuletzt
verwendet hat.
-
Ferner
kann der Benutzer, der den Signaturerzeugungscomputer A als Nächstes verwendet,
abgefragt werden, ob der aus den empfangenen Daten berechnete Wert
H(Ij, Hj, Tj, Lj) mit der vorderen
oder der hinteren Hälfte
der Verknüpfungsdaten übereinstimmt,
wie sie in den vom nächsten
Benutzer des Signaturerzeugungscomputers A empfangenen Daten enthalten
sind.
-
Wenn
keine Übereinstimmung
mit den Verknüpfungsdaten
bestätigt
werden kann, da der Signaturerzeugungscomputer A nicht korrekt arbeitet oder
da es an Zusammenarbeit mit dem folgenden Benutzer desselben fehlt,
kann die Bestätigung
immer noch dadurch ausgeführt
werden, dass der folgende Benutzer des Signaturerzeugungscomputers B 1060 abgefragt
wird.
-
Mit
diesem Verifizierverfahren kann, wenn eine Übereinstimmung mit den Verknüpfungsdaten eines
folgenden Benutzers unter Verwendung mindestens eines der oben beschriebenen
Verfahren bestätigt
werden kann, die Echtheit der Zeitmarkierung bestätigt werden
(oder es werden weitere Verifizierschritte, wie sie unten beschrieben
sind, nach Bedarf verwendet). Andernfalls kann die Zeitmarkierung nicht
als echt bestätigt
werden.
-
Wie
bei der ersten und der zweiten Ausführungsform ist es bei dieser
Ausführungsform
möglich, für eine detaillierte
Bestätigung
der Echtheit einer Zeitmarkierung dadurch zu sorgen, dass die oben
beschriebene Prozedur so wiederholt wird, dass Benutzer von zwei
oder mehr Signaturen zurück
oder Benutzer von zwei oder mehr Signaturen später abgefragt werden können.
-
(Vierte Ausführungsform)
-
Die 8 zeigt
eine schematische Architektur eines Systems, bei dem die Erfindung
für das
im folgenden Dokument offenbarte Signatursystem realisiert ist:
- Dokument 12: Japanische Patentanmeldung Nr. 2000-313123
-
Das
Dokument 12 offenbart eine Technik, bei der die Verläufe erzeugter
Signaturen abgespeichert werden, damit Signaturen auf unberechtigte
Fälschung
geprüft
werden können.
Wenn ein Signatur erzeugt wird, spiegelt sich die zuvor erzeugte
Signatur in der nächsten
Signaturerzeugungsoperation wider. Dies bildet eine Signaturverlaufskette,
die sicher abgespeichert werden kann. Da Signaturen unter Verwendung
mehrerer Vorrichtungen (IC-Karten bei dieser Ausführungsform)
erzeugt werden, kann im Wesentlichen jedes der bei der ersten bis
dritten Ausführungsform
verwendeten Verfahren dazu verwendet werden, Signaturen so zu erzeugen,
dass eine Kette auf korrekte Weise gebildet wird. Bei dieser Ausführungsform
wird ein Beispiel beschrieben, bei dem Signaturen wie bei der dritten
Ausführungsform erzeugt
werden.
-
Ein
Netzwerk 8001 verbindet einen Computer 8031 eines
Unterzeichners und PCs 8011, 8020 von Käufern. Wenn
ein Käufer
eine Nachricht (beispielsweise digitalisierte Multimediadaten wie
elektronische Bilder, Video oder Musik oder elektronische (digitalisierte
Wertpapiere, Kontrakte oder dergleichen) vom Unterzeichner erwirbt
(sei es für
eine Gebühr
oder nicht), wird eine vom Unterzeichner unterzeichnete Nachricht 8003 über das
Netzwerk 8001 empfangen.
-
Der
PC 8011 des Käufers
besteht aus einer CPU 8012, einem Speicher 8013,
einer I/O 8016, einem Display 8014 und einer Tastatur 8015.
Diese Elemente sind über
einen Bus verbunden. Die I/O 8016 sorgt für eine Verbindung
zum Netzwerk 8001. Der Speicher 8013 speichert
eine Käufer-ID 8017, ein
Programm PROG1 8018 und einen öffentlichen Schlüssel 8019 des
Unterzeichners. Das Programm wird über den Bus an die CPU 8012 übertragen,
und es sorgt für
verschiedene Merkmale.
-
Die
Seite des Unterzeichners besteht aus dem Computer 8031 desselben
sowie einer IC-Karte A 8051, einer IC-Karte B 8060 und
einer IC-Karte C 8070 des Unterzeichners. Wie bei den obigen
Ausführungsformen
verwendet diese Ausführungsform ein
2-aus-3-Schwellenwertsignaturverfahren. Demgemäß kann, während drei IC-Karten verwendet
werden, die Anzahl der Karten entsprechend dem zu verwendenden Signaturschema
eingestellt werden. Es können
auch andere Technologien mit verteilter Signatur verwendet werden.
-
Der
Computer 8031 des Unterzeichners besteht aus einer CPU 8032,
einem Speicher 8033, einer I/O 8036, einem Display 8034,
einer Tastatur 8035, einer externen Speichervorrichtung 8037 und einem
IC-Karten-Leser/Schreiber 8038. Diese sind über einen
Bus verbunden, und die I/O 8036 sorgt für Verbindung zum Netzwerk 8001.
Der IC-Karten-Leser/Schreiber 8038 sorgt für Kommunikation
mit den IC-Karten. Der Speicher 8033 enthält ein Programm PROG2 8038.
-
Die
IC-Karten A 8051, B 8060 und C 8070 des
Unterzeichners verfügen
im Wesentlichen über dieselbe
Struktur. Eine CPU 8052, ein Speicher 8053 und
eine I/O 8054 sind über
einen Bus verbunden. Eine I/= 8037 ist so ausgebildet,
dass sie die IC-Karte mit dem Computer des Unterzeichners verbindet. Der
Speicher 8053 enthält
eine ID 8055, ein Programm PROG3 8056 sowie Privatschlüssel-Erzeugungsinformation 8057 und
einen Verlaufsspeicherbereich 8058 zum Speichern von Daten (Verlaufsdaten)
betreffend früher
erzeugte digitale Signaturen. Die ID 8055 und die Privatschlüssel-Erzeugungsinformation 8057 enthalten
für den
speziellen Computer spezifische Werte.
-
Die 9 zeigt
ein schematisches Diagramm des Ablaufs von Operationen, wie sie
bei dieser Ausführungsform
ausgeführt
werden.
-
[Ablauf von Operationen zum Erzeugen von
Signaturen]
-
-
[Ablauf von vom Computer des Unterzeichners
ausgeführten
Operationen]
-
- Schritt 9002: Erzeugen einer zu erwerbenden Nachricht.
- Schritt 9003: Auswählen
zweier verfügbarer
Signaturerzeugungs-IC-Karten aus den drei Signaturerzeugungs-IC-Karten.
- Schritt 9009: Senden des vom Computer des Unterzeichners
empfangenen Dokuments an die im Schritt 9003 ausgewählten IC-Karten.
-
[Ablauf von durch die Signaturerzeugungs-IC-Karten (die
im Schritt 9003 ausgewählten
IC-Karten) ausgeführten
Operationen]
-
- Schritt 9005: Die zwei ausgewählten IC-Karten wirken zusammen,
um "Verlaufsdaten" und dergleichen zum
Dokument hinzuzufügen,
eine Signatur auf Grundlage des Schwellenwertsignaturtechnologieverfahrens
zu erzeugen und das unterzeichnete Dokument an den Computer des
Unterzeichners zu senden. Abhängig
vom verwendeten Schwellenwertsignaturtechnologieverfahren können zwischen
dem Computer des Unterzeichners und den IC-Karten mehrere Kommunikationsvorgänge ablaufen.
-
[Durch den Computer des Unterzeichners
ausgeführte
Operationen]
-
- Schritt 9006: Senden der erzeugten Signatur gemeinsam
mit dem Dokument an die Nachricht erwerbenden Käufer.
-
[Durch den PC des Käufers ausgeführte Operation]
-
- Schritt 9007: Der Käufer empfängt das unterzeichnete Dokument
vom Unterzeichner. Nachdem der Käufer
die Signatur als echt verifiziert hat, empfängt er das unterzeichnete Dokument.
- Schritt 9008: Ende
-
Die 10 zeigt
den detaillierten Ablauf von Operationen, wie sie im Schritt 9005 des
Ablaufs der zum Erzeugen von Signaturen ausgeführten Operationen ausgeführt werden.
-
[Durch den Computer 8031 des
Unterzeichners ausgeführte
Operationen]
-
- Schritt 10002: Gleich wie der Schritt 9004
-
[Durch die Signaturerzeugungs-IC-Karte
A 8051 ausgeführte
Operationen]
-
- Schritt 10003A: Senden des Index jA in
der IC-Karte A 8051 und der Verlaufsdaten in ihr an die
IC-Karte B 8060.
-
[Durch die Signaturerzeugungs-IC-Karte
B 8060 ausgeführte
Operationen]
-
- Schritt 10003B: Senden des Index je in der IC-Karte B 8060 und
der Verlaufsdaten in ihr an die IC-Karte IC-Karte C 1070.
-
[Durch die Signaturerzeugungs-IC-Karte
A 8051 ausgeführte
Operationen]
-
- Schritt 10004A: (j ist größer und j_S ist kleiner als
jA und jB.) Berechnen
von Verknüpfungsdaten
Lj = H(Ij_S-1, Hj_S-1, Sj_S-1 Lj_S-1,)||H(Ij-1,
Hj-1, Sj-1, Lj-1) (|| repräsentiert Verkettung).
-
[Durch die Signaturerzeugungs-IC-Karte
B 8060 ausgeführte
Operation]
-
- Schritt 10004B: Berechnen von Verknüpfungsdaten Lj, wie dies durch die IC-Karte A 8051 erfolgte.
-
[Durch die Signaturerzeugungs-IC-Karte
A 8051 ausgeführte
Operation]
-
- Schritt 10005A: Verbinden von j, Ij,
Hj, Lj und j_S als zu
unterzeichnende Daten M, und Berechnen des Hashwerts h(M).
-
[Durch die Signaturerzeugungs-IC-Karte
B 8060 ausgeführte
Operation]
-
Schritt 10005B:
Berechnen des Hashwerts h(M), wie es in der IC-Karte A 8051 erfolgte.
-
[Durch die Signaturerzeugungs-IC-Karte
A 8051 ausgeführte
Operation]
-
- Schritt 10006A: Gleich wie 3005A.
-
[Durch die Signaturerzeugungs-IC-Karte
B 8060 ausgeführte
Operation]
-
- Schritt 10006B: Gleich wie 3005B.
-
[Durch die Signaturerzeugungs-IC-Karte
A 1051 ausgeführte
Operation]
-
Schritt 10007A:
Berechnen von (r, sA) wie in 3006A.
-
[Durch die Signaturerzeugungs-IC-Karte
A 8060 ausgeführte
Operation]
-
- Schritt 10007B: Berechnen von (r, sB)
wie in 3006B.
-
[Durch die Signaturerzeugungs-IC-Karte
A 8051 ausgeführte
Operation]
-
- Schritt 10008A: Berechnen der Signatur sj:=(r,s) wie in 3007.
-
[Durch die Signaturerzeugungs-IC-Karte
B 8060 ausgeführte
Operation]
-
- Schritt 10008B: Berechnen der Signatur sj:=(r,s) wie in 3007.
-
[Durch die Signaturerzeugungs-IC-Karte
A 8051 ausgeführte
Operation]
-
- Schritt 10009A: Inkrementieren des Index j um 1
und Speichern im Verlaufsspeicherbereich gemeinsam mit M = (j, j_S,
Ij, Hj, Lj), Sj.
-
[Durch die Signaturerzeugungs-IC-Karte
B 8060 ausgeführte
Operation]
-
- Schritt 10009B: Inkrementieren des Index j um 1
und Speichern im Verlaufsspeicherbereich gemeinsam mit M = (j, j_S,
Ij, Hj, Lj), Sj.
-
[Durch die Signaturerzeugungs-IC-Karte
A 8051 ausgeführte
Operation]
-
- Schritt 10010A: Senden der Nachricht M gemeinsam mit
Sj an den Computer 8031 des Unterzeichners.
-
[Durch die Signaturerzeugungs-IC-Karte
B 8060 ausgeführte
Operation]
-
- Schritt 10010B: Senden der Nachricht M gemeinsam mit
Sj an den Computer 8031 des Unterzeichners.
-
[Durch den Computer 8031 des
Unterzeichners ausgeführte
Operation]
-
- Schritt 10011: Senden der Nachricht M und der Signatur
Sj an den Käufer Ij.
- Schritt 10012: Ende
-
Wenn
in den obigen Schritten Eingabe/Ausgabe-Operationen hinsichtlich
der IC-Karten ausgeführt werden,
können
der Computer des Unterzeichners oder ein anderer Computer, falls
erforderlich, als Zwischenstelle dienen.
-
Die
auf diese Weise erzeugte Signatur Sj kann
auf die unten beschriebene Weise verifiziert werden. Die unten ausgeführten Operationen
können vom
Käufer
oder einem Vermittler ausgeführt
werden, der eine Anforderung vom Käufer oder einer anderen Partei
empfängt.
In der folgenden Beschreibung wird dieser als Verifizieren bezeichnet.
-
Unter
Verwendung eines Verifiziercomputers, der auf dieselbe Weise wie
der Benutzer-PC 1011 aufgebaut ist, verifiziert der Verifizieren
als Erstes die Echtheit der Signatur Sj mittels
einer bekannten Verifiziertechnologie für digitale Signaturen unter Verwendung
des öffentlichen
Schlüssels 8019 des Unterzeichners.
Wenn die Echtheit nicht bestätigt werden
kann, kann die Signatur Sj nicht als echte
Signatur akzeptiert werden. Wenn die Echtheit bestätigt werden
kann, können,
falls erforderlich, weitere Schritte ausgeführt werden, um für eine detailliertere Verifizierung
zu sorgen. Es kann erforderlich sein, diese Schritte dann auszuführen, wenn
bei der bekannten Technologie für
digitale Signaturen aufgrund des Herausdringens von Information
zum privaten Schlüssel
des Unterzeichners, die zum Erzeugen der Signatur Sj verwendet
wird, oder dergleichen, ein Verlust an Zuverlässigkeit besteht, was die oben
beschriebene Prozedur unangemessen macht. Alternativ kann es beispielsweise
dann erforderlich sein, diese Schritte auszuführen, wenn die Nachricht M
besonders wertvoll ist, und eine sehr gründliche Verifizierung erforderlich
ist.
-
Als
Nächstes
empfängt
der Verifizieren den Signaturverlauf vom Unterzeichner, und er erklärt, dass
die Signatur Sj im Verlauf enthalten ist.
Wenn dies nicht der Fall ist, kann die Signatur Sj nicht
als echte Signatur akzeptiert werden.
-
Wenn
die Signatur Sj aufgefunden wird, sucht
eine der zwei IC-Karten (hier werden die IC-Karte A und die IC-Karte
B verwendet), die in die Erzeugung der Signatur Sj einbezogen
sind, nach einem Signaturverlauf in Zusammenhang mit einer Signatur
Sj',
die unmittelbar nach der Erzeugung der Signatur Sj erzeugt
wurde. Die Verknüpfungsdaten
in diesem Signaturverlauf werden überprüft, um zu erkennen, ob die
vordere oder die hintere Hälfte
mit dem Wert H(Ij, Hj,
Sj, Lj) übereinstimmt,
der aus den Daten berechnet wurde, die im Signaturverlauf für die Signatur
Sj enthalten sind. Falls nicht, sucht die
andere IC-Karte nach dem Signaturverlauf der Signatur, die unmittelbar
nach der Erzeugung der Signatur Sj erzeugt wurde, und es erfolgt
eine ähnliche
Prüfung. Wenn
keine Übereinstimmung
besteht, kann die Signatur Sj nicht als
echte Signatur akzeptiert werden.
-
Wenn Übereinstimmung
besteht, wird eine ähnliche
Bestätigungsoperation
für die
Signatur Sj' wiederholt. Wenn in der Kette eine
Bestätigung
bis zurück
zu einer Signatur erzielt werden kann, die aus irgendeinem Grund
vorab als zuverlässig
bekannt ist (beispielsweise eine Signatur, die durch Massenmedien
oder dergleichen öffentlich
gemacht wurde, Daten, die durch eine zuverlässige dritte Partei garantiert
sind, oder wenn die Signatur Sj verifiziert
wird, wird der Inhalt durch eine nicht interessierte dritte Partei
garantiert). Andernfalls kann die Signatur nicht als echt akzeptiert
werden.
-
Unter
Verwendung des oben beschriebenen Verifizierverfahrens kann die
Sicherheit selbst dann aufrecht erhalten werden, wenn die Sicherheit
des aktuellen, im Dokument 12 beschriebenen Systems für digitale
Signaturen aus irgendeinem Grund beeinträchtigt ist. Ferner kann die
Echtheit selbst dann bestätigt
werden, wenn ein Teil des Signaturverlaufs verloren geht oder unbrauchbar
wird. Dadurch sind ein Verfahren und ein System geschaffen, die
selbst dann zuverlässig
sind, wenn Verlaufsdaten über
lange Perioden aufrecht erhalten werden müssen.
-
(Fünfte
Ausführungsform)
-
Durch
eine der Erscheinungsformen der Erfindung ist ein Verfahren zum
Erzeugen von Signaturen geschaffen, die nicht nur den eine Generation
früher
erzeugten Signaturverlauf widerspiegeln, sondern auch noch weiter
zurückliegende
Signaturverläufe.
Dieses Verfahren kann implementiert werden, um für weitere Zuverlässigkeit
bei Signaturerzeugungssystemen und Zeitmarkierungssyste men mit einer
einzelnen Vorrichtung zu sorgen, wenn ein Verlaufsverlust oder dergleichen
auftritt. Beispielsweise spiegelt beim im Dokument 12 beschriebenen
Signatursystem, wenn eine Signatur erzeugt wird, diese Signatur
den bei den vorigen Operationen erzeugten Signaturverlauf sowie
die n Signaturverläufe
aus den n vorangegangenen Signaturerzeugungsoperationen wider. Beim
Verifizieren wird eine Signatur dann als korrekt bestätigt, wenn
mindestens eine Verknüpfung
der n Verläufe
bestätigt
wird. Dieses Verfahren, das Verläufe
aufrecht erhält,
die sich über
lange Periode erstrecken, sorgt hinsichtlich des Verlaufsverlustes
für ein
zuverlässigeres
System, solange n aufeinanderfolgende Signaturverläufe nicht
verloren gehen. Das Erzeugen von Signaturen in solcher Weise, dass
sich n Signaturverläufe
widerspiegeln, kann dadurch ausgeführt werden, dass die zu unterzeichnenden
Daten auf dieselbe Weise wie im Schritt 10004A, 10005A aus
der dritten Ausführungsform
berechnet werden.
-
Wenn
das Verifizieren so ausgeführt
wird, dass eine Bestätigung
nur dann erfolgt, wenn alle n Verknüpfungen bestätigt sind,
ist keine Toleranz für einen
Verlaufsverlust vorhanden, sondern eine Signaturfälschung
ist weiter erschwert. Der Grund dafür besteht darin, dass das korrekte
Aufrechterhalten aller n Verknüpfungen
es erforderlich macht, die Vorabbilder für jeden der Nachricht Hashinformationen
zu bestimmen, die in der zu verifizierenden Signatur enthalten sind.
-
Es
wäre auch
möglich,
die Echtheit dann zu bestätigen,
wenn k aus n Verknüpfungen
bestätigt werden
können
(mit n > k). Dies
erschwert die Signaturfälschung,
während
die Toleranz für
Verlaufsverluste verbessert ist.
-
Diese
Verifizierregeln können
dann bestimmt werden, wenn eine Signatur erzeugt wird, oder sie können vorab
bestimmt werden, wenn das System errichtet wird. Alternativ können die
Regeln entsprechend Faktoren wie der technischen Umgebung, dem gewünschten
Sicherheitsgrad für
das Gesamtsystem und dergleichen bestimmt werden, wenn sich der
Bedarf zum tatsächlichen
Verifizieren einer Signatur ergibt.
-
Hinsichtlich
der Frage, wie viele Mehrfachsätze
von Verlaufsdaten sich während
der Signaturerzeuqung widerspiegeln, wäre es außer dem Verbinden (Verketten)
von Verlaufsdaten auch möglich, andere
verifizierbare Verfahren zu verwenden, die für die oben beschriebenen Verifizierregeln
geeignet sind. Zu Beispielen gehören
XOR- oder Additionsoperationen sowie Hashfunktionen oder Kombinationen
hiervon.
-
Ein
spezielles Beispiel besteht darin, dass dann, wenn die Regel besteht,
dass nur dann bestätigt
wird, wenn alle n Verknüpfungen
bestätigt
sind, die digitale Signatur Sj für die Nachricht
mj unter der Regel dadurch erzeugt wird,
dass die Daten (Hash3(mj)||Lj) gelten, mit Lj =
Hash2(Hash1(mj-n||Sj-n ||n)||Hash1(mj-(n-1)||Sj-(n-1)||n-1)|| ,,, ||Hash1(mj-1||Sj-1||1), wobei
Hash1, Hash2 und
Hash3 Hashfunktionen bezeichnen.
-
Die
Zeitmarkierungsdienste in den Dokumenten 5 bis 7 verwenden ein Verfahren,
bei dem das Verknüpfungsprotokoll
als Baumstruktur erzeugt wird, um eine schnelle Bestätigung von
Verknüpfungen
zwischen mehreren Zeitmarkierungen zu erlauben. Diese Erfindung
sorgt für
in den Dokumenten 5 bis 7 nicht offenbarte Vorteile, wie verbesserte
Toleranz gegen Verlaufsverluste und größere Schwierigkeiten bei einer
Signaturfälschung.
-
Bei
den oben beschriebenen Ausführungsformen
sind Beispiele von Zeitmarkierungsdiensten angegeben, die eine digitale
Signatur auf zu unterzeichnende Daten, gemeinsam mit Zeitinformation anwenden.
Jedoch kann die Erfindung auch dazu verwendet werden, digitale Signaturen
ohne Hinzufügung
von Zeitinformation zu liefern, und um einen Dienst zum Bestätigen des
Vorliegens unterzeichneter Daten aus Verlaufsdaten zu schaffen.
-
Die
oben beschriebene Erfindung sorgt für Sicherheit und Nützlichkeit
bei der Erzeugung und Verwendung digitaler Signaturen.
-
Die
Beschreibung und die Zeichnungen sind demgemäß in veranschaulichendem statt
in beschränkendem
Sinn zu sehen. Es ist jedoch ersichtlich, dass daran verschiedene
Modifizierungen und Änderungen
vorgenommen werden können,
ohne vom weiteren Schutzumfang der in den Ansprüchen Erfindung abzuweichen.