-
TECHNISCHES GEBIET
-
Die
vorliegende Erfindung bezieht sich auf die Erstellung und Erneuerung
digitaler Zertifikate. Insbesondere bezieht sich die vorliegende
Erfindung auf ein sicheres System und Verfahren für das Generieren
eines digitalen Zertifikats.
-
HINTERGRUND DER ERFINDUNG
-
Digitale
elektronische Datensätze
werden zunehmend als Nachweise für
Ereignisse verwendet. In der Vergangenheit wurden Siegel, Signaturen, Spezialpapier
und weitere Hilfsmittel verwendet, um die Authentizität von Dokumenten
und anderen Aufzeichnungen zu belegen. Des Weiteren wurden diese und
weitere Hilfsmittel über
den Zweck des Nachweisens der Authentizität von Dokumenten und Aufzeichnungen
hinaus dafür
verwendet, zu belegen, dass ein Dokument in einer bestimmten Reihenfolge empfangen
oder erzeugt wurde. Diese Verfahren des Nachweisens der Authentizität und der
Reihenfolge sind in einer Vielzahl von Gebieten einschließlich dem
Bankwesen, Verhandlungen, Gerichtsakten und der öffentlichen Verwaltung nützlich.
Heutzutage werden diese Dienste üblicherweise
von Notaren, Prüfern
und ähnlichen
Personen angeboten.
-
Ähnliche
Dienste für
Authentifizierung und Überprüfung der
Reihenfolge sind in dem Markt des digitalisierten elektronischen
Inhalts erforderlich. In einer Vielzahl von Gebieten dieses Markts
empfangen Anbieter von elektronischen Diensten digitale Datensätze. Zum
Beispiel empfängt
ein elektronisches Banksystem einen digitalen Datensatz bezüglich eines
durch einen Kunden getätigten
Einkaufs. Diese Dienstanbieter zeichnen die Reihenfolge auf, in
der die Datensätze
empfangen werden und weisen jedem Datensatz einen „Abfolgewert" zu. Nachdem der
Datensatz empfangen und von dem Dienstanbieter registriert wurde,
wird üblicherweise
ein digitales Zertifikat für
die den Datensatz bereitstellende Partei ausgestellt. Es kann sein,
dass zu einem späteren Zeitpunkt
entweder für
den Dienstanbieter oder eine andere Partei die Notwendigkeit besteht,
die Reihenfolge, in der bestimmte Datensätze registriert wurden, zu überprüfen. Um
diese Überprüfung durchzuführen, können Abfolgewerte
derart an digitale Datensätze
gebunden sein, dass es später
möglich
ist, zu beweisen, dass die Abfolgewerte die Reihenfolge der Registrierung
korrekt und authentisch wiedergeben.
-
Üblicherweise
werden Abfolgenummern durch asymmetrische Kryptographie oder alternativ durch
Veröffentlichung
mit digitalen Datensätzen
assoziiert. Ein überprüfbares Assoziieren
wird als ein Abfolgezertifikat bezeichnet. Ohne überprüfbares Assoziieren könnten Dienstanbieter
die Gültigkeit
jedes beliebigen Formulars, das als Zertifikat vorgelegt wird, leugnen.
-
Wird
asymmetrische Kryptographie verwendet, um das überprüfbare Assoziieren herzustellen, dann
signiert der Dienstanbieter üblicherweise
einen digitalen Datensatz (enthaltend einen entsprechenden Abfolgewert)
mit einer digitalen Signatur oder einem Verschlüsselungsschema, wie etwa RSA.
Kryptographie mit öffentlichen
Schlüsseln
ist schnell genug, um ein nahezu unmittelbar erfolgendes Generieren
von Zertifikaten zu ermöglichen.
Jedoch weist die Verwendung von asymmetrischer Kryptographie für das Erstellen
von digitalen Signaturen den folgenden Nachteil auf: Kryptografische
Signaturschlüssel können beschädigt werden.
Wurde ein Schlüssel
beschädigt,
können
die mit diesem Schlüssel
erstellten Zertifikate nicht mehr überprüft werden. Da sich die Wahrscheinlichkeit,
dass ein Schlüssel
beschädigt wird,
mit der Zeit erhöht,
sind unter Verwendung von verschlüsselter Kryptographie generierte
Zertifikate nur über
einen kurzen Zeitraum hinweg nützlich.
-
Wenn
die Veröffentlichung
für das
Herstellen des überprüfbaren Assoziierens
verwendet wird, dann veröffentlicht
der Dienstanbieter üblicherweise einen
digitalen Datensatz zusammen mit einem Abfolgewert derart, dass
dieselben einer großen
Anzahl Personen zugänglich
sind, zum Beispiel in einer Zeitung. Wenn der Dienstanbieter in
bestimmte Regeln hinsichtlich der Veröffentlichung einwilligt, kann
dem veröffentlichten
Inhalt als von dem Dienstanbieter zertifiziert vertrauen. Da in
dem Veröffentlichungsverfahren
keine kryptografischen Schlüssel
verwendet werden, stellt sich das Problem der Beschädigung von
Schlüsseln
nicht. Allerdings ist das Veröffentlichungsverfahren
in ineffizienter Weise langsam. Eine tägliche oder wöchentliche
Veröffentlichung
ist realistisch, ein unmittelbares Generieren von Zertifikaten ist
jedoch unmöglich,
auch wenn dies von dem modernen elektronischen Markt gefordert wird.
-
Um
die Authentizität
des Zertifikats über
einen langen Zeitraum hinweg zu überprüfen, und
um dies effizient zu tun, können
auf Veröffentlichung
basierendes Assoziieren und/oder mehrere Schlüsselsignaturen in Kombination
verwendet werden. Jedoch müssen
Zertifikate regelmäßig aktualisiert
werden, da dieser Kombinationsansatz die Nachteile beider Systeme
aufweist, was zu einem zusätzlichen Aufwand
für das
Beibehalten der Gültigkeit
des Assoziierens führt.
-
Ein
weiteres grundlegendes Problem besteht bei den Eigenschaften der
Abfolgewerte selbst, die üblicherweise
als ganze Zahlen dargestellt werden. Zu einem gewissen Grad kann
das überprüfbare Assoziieren
von digitalen Datensätzen
und ganzen Zahlen durch das Überprüfen von
Parteien als Nachweis, dass die Datensätze tatsächlich diese Abfolgewerte erhalten
haben, angezeigt werden.
-
Oftmals
jedoch spiegeln die den digitalen Datensätzen zugeordneten Abfolgenummern
nicht genau die wirkliche zeitliche Reihenfolge wieder, in der die
Datensätze
empfangen wurden. Betrügerische
Dienstanbieter können
Abfolgenummern in jeder von ihnen gewünschten Reihenfolge zuweisen. Somit
besteht eine Notwendigkeit, ein betrügerisches Verhalten eines Dienstanbieters
zu ermitteln. Das Konzept des Nummerierens von Datensätzen kann zu
abstrakt sein, um den Registrierungsprozess wiederzugeben. Zum Beispiel
stellt eine Bestätigung, dass
drei Datensätze
vor einem beliebigen anderen Datensatz registriert wurden, keine
Information darüber
bereit, wie die Datensätze
registriert wurden. Eine Möglichkeit,
dieses Problem zu lösen,
besteht darin, den Abfolgewert eines bestimmten Datensatzes als
die Menge sämtlicher
Datensätze,
die einem bestimmten Datensatz in dem Repository vorangehen, zu
definieren. Derartige „Abfolgewerte" stellen die Abfolge
der Registrierungen dar, da sie aber auch die Historie des Repository
aufzeichnen, können
sie nicht von dem Dienstanbieter geleugnet werden.
-
Allerdings
können
die Werte so groß werden, dass
ihre Berechnung und Übertragung
nicht mehr durchführbar
ist, nämlich
dann, wenn jeder Abfolgewert die gesamte Historie des Repository
wiedergibt.
-
Eine
Möglichkeit,
die Historie eines Dienstanbieters zu bestätigen, besteht darin, eine kryptografische Übersicht
aller vorher eingetragenen Datensätze in dem für die den
Datensatz bereitstellende Partei ausgestellten digitalen Zertifikat
einzuschließen.
Zum Beispiel kann eine Hash-Funktion mit linearer Kette generiert
werden durch Anwenden einer kryptografischen Hash-Funktion auf eine
Verknüpfung
von kürzlich
empfangenen Datensätzen und
dem unmittelbar davor empfangenen Datensatz. Ein derartiges Verfahren
wird im
US-Patent Nr. 5,136,646 von
Haber et al. offenbart. Kryptografische Übersichten, die in Abfolgezertifikaten
eingeschlossen sind, erstellen kausale Einweg-Beziehungen zwischen
den Bestätigungen
und können
somit verwendet werden, um deren Reihenfolge ohne die Gefahr eines
fehlerhaften Verhaltens durch den Dienstanbieter zu überprüfen, weil
jegliche fehlerhafte Bestätigung
durch einen Prüfer,
der die kausale Einweg-Hashkette überprüft, ermittelt werden kann.
Die durch solche Prozesse erstellten Abfolgewerte sind aufgrund
der Verwendung von kryptografischen Hash-Funktionen kürzer. Jedoch
erfordert das Überprüfen derartiger
Werte nach wie vor eine Berechnung sämtlicher Datensätze in dem
Repository und kann somit in bedeutsamer Weise Verarbeitungsressourcen
in Anspruch nehmen. Dieser Prozess ist ferner deswegen nachteilig,
weil er nicht ohne Interaktion mit dem Dienstanbieter durchgeführt werden kann.
-
„Improving
the availability of time standing services", Arne Ansper, Ahto Buldas, Mart Saarepera,
Jan Willemson. ACISP 2001, [Online] 11. Juli 2001, Seiten 1–16, Sydney,
Australien, beschreibt ein Verfahren für das Auszeichnen mit einem
digitalen Zeitstempel verwendet für das Bewahren des den Nachweis
erbringenden Werts von elektronischen Dokumenten, mit einem Zeitstempel
ausgezeichnete Protokolle und Hash-Zeichen-Zeitstempeln. Dieses Dokument
beschreibt einen Verbindungsbasierten Ansatz, insbesondere lineare
Verbindung und verknüpfte
Baum-Verbindungsschemata
für das
Bereitstellen von digitalen Zeitstempeldiensten.
-
Derzeit
wird wirksames überprüfbares Assoziieren
mit asymmetrischer Kryptografie erstellt. Allerdings besteht in
einer Anzahl von Anwendung ein Bedarf für Assoziieren, das über einen
längeren
Zeitraum hinweg überprüfbar ist
und wünschenswerterweise
ohne die Verwendung von kryptografischen Schlüsseln überprüfbar ist. Dementsprechend besteht
ein Bedarf an einem digitalen Registrierungssystem für elektronische
Datensätze
mit Abläufen, die
es Kunden ermöglichen,
digital signierte Zertifikate für
einen kurzen Zeitraum (über
asymmetrische kryptografische Verfahren) durch Zertifikatnachweise für einen
längeren
Zeitraum zu ersetzen, die auf kryptografischen Übersichten und Veröffentlichungsverfahren
basieren.
-
Die
vorliegende Erfindung wird bereitgestellt, um dieses Problem sowie
weitere Probleme zu lösen.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Ein
System und ein Verfahren für
das Generieren eines digitalen Zertifikats werden offenbart, bei dem
Kunden einem Anbieter von Registrierungsdiensten digitale Datensätze übergeben.
Die Datensätze
werden aufgezeichnet und Kunden empfangen ein digital signiertes
Zertifikat, das die Registrierung (sowie die Registrierungsnummer)
des Datensatzes überprüft. Diese
digital signierten Zertifikate können dann
durch einen Zertifikatsnachweis ersetzt werden, der durch das Anwenden
einer kryptografischen Hash-Funktion auf das Repository aller Datensätze generiert
wird.
-
In
einer Ausführungsform
der vorliegenden Erfindung werden ein System und ein Verfahren für das Generieren
eines digitalen Zertifikats offenbart, in welchem ein Kunde einem
Anbieter von Registrierungsdiensten einen digitalen Datensatz übergibt. Ein
zusammengesetzter digitaler Wert wird generiert, der wenigstens
eine Teilmenge der gesamten Historie von vorher empfangenen Datensätzen repräsentiert,
wobei der zusammengesetzte digitale Wert durch Anwenden eines deterministischen
Algorithmus auf die in einem Repository gespeicherten Elemente generiert
wird. Ein Bestätigungszertifikat
wird dann generiert und zu dem Kunden übertragen, wobei das Zertifikat
wenigstens den digitalen Datensatz, eine dem Datensatz zugewiesene
Abfolgenummer sowie den zusammengesetzten digitalen Wert umfasst.
Das Zertifikat wird unter Verwendung eines asymmetrischen kryptografischen
Schemas digital signiert. Anschließend wird der digitale Datensatz oder
eine Darstellung davon dem Repository hinzugefügt.
-
In
einer weiteren Ausführungsform
der vorliegenden Erfindung werden ein System und ein Verfahren für das Veröffentlichen
einer kryptografischen Übersicht
eines Repository von digitalen Datensätzen offenbart. Ein zusammengesetzter
digitaler Wert wird generiert, der wenigstens eine Teilmenge der gesamten
Historie von empfangenen Datensätzen repräsentiert,
wobei der zusammengesetzte digitale Wert durch Anwenden eines deterministischen
Algorithmus auf die in dem Repository gespeicherten Elemente generiert
wird. Eine zusammengesetzte Abfolgenummer wird ebenfalls generiert
und der aktuellen Abfolgenummer des Repository gleichgesetzt. Dieser
zusammengesetzte digitale Wert und die zusammengesetzte Abfolgenummer
des Repository werden dann veröffentlicht.
-
In
einer weiteren Ausführungsform
der vorliegenden Erfindung werden ein System und ein Verfahren für das Erstellen
eines digitalen Nachweises für
einen digitalen Datensatz offenbart, in welchen ein digitaler Intervallwert
für den
Datensatz generiert wird, der sich auf einen veröffentlichten zusammengesetzten
digitalen Wert bezieht. Ein Zertifikatnachweis wird anschließend generiert,
wobei der Zertifikatnachweis wenigstens den digitalen Intervallwert und
die Abfolgenummer des Datensatzes einschließt und ebenfalls eine Teilmenge
des digitalen Datensatzes selbst, des zusammengesetzten digitalen
Werts sowie der zusammengesetzten Abfolgenummer einschließen kann.
-
Weitere
Merkmale und Vorteile der Erfindung ergeben sich aus der folgenden
Beschreibung in Verbindung mit den folgenden Zeichnungen.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Für ein besseres
Verständnis
der vorliegenden Erfindung soll diese nun exemplarisch beschrieben
werden, und zwar unter Bezugnahme auf die Zeichnungen:
-
1 ist
ein allgemeines Flussdiagramm des Systems und des Verfahrens für das Generieren eines
digitalen Zertifikats, das im Allgemeinen die Schritte für das Registrieren
eines digitalen Datensatzes in einem Repository, das kryptografische
Veröffentlichen
einer Übersicht
des Repository sowie das Generieren eines Zertifikatnachweises für den digitalen
Datensatz veranschaulicht.
-
2 ist
ein Flussdiagramm eines Teils des Systems und des Verfahrens für das Generieren
eines digitalen Zertifikats, das detailliert die Vorgehensweise
bei dem Registrieren eines digitalen Datensatzes in einem Repository
und dem Generieren eines digitalen Zertifikats, das die Registrierung
des Datensatzes überprüft, veranschaulicht.
-
3 ist
ein Flussdiagramm eines Teils des Systems und des Verfahrens für das Generieren
eines digitalen Zertifikats, das detailliert die Vorgehensweise
bei dem Generieren eines Zertifikatnachweises für einen digitalen Datensatz
veranschaulicht.
-
4 ist
ein Flussdiagramm einer Anwendung des Systems und des Verfahrens
für das
Generieren eines digitalen Zertifikats, das die Vorgehensweise für das Verwenden
eines Zertifikatnachweises für
das Überprüfen des
Empfangs sowie der Abfolgenummer eines digitalen Datensatzes veranschaulicht.
-
5 ist
ein Flussdiagramm einer Anwendung des Systems und des Verfahrens
für das
Generieren eines digitalen Zertifikats, das die Vorgehensweise für das Verwenden
von Zertifkatnachweisen für
das Überprüfen des
Empfangs sowie der Abfolgenummern von mehr als einem digitalen Datensatz veranschaulicht.
-
6 ist
ein Statusübergangsdiagramm
des Teils des Systems und des Verfahrens für das Generieren eines digitalen
Zertifikats, das die Status und Übergänge zwischen
denselben für
das Generieren eines ersten digitalen Zertifikats veranschaulicht.
-
7 ist
ein Statusübergangsdiagramm
des Teils des Systems und des Verfahrens für das Generieren eines digitalen
Zertifikats, das die Status und Übergänge zwischen
denselben für
das Generieren eines zweiten digitalen Zertifikats sowie die Erneuerung
eines ersten digitalen Zertifikats veranschaulicht.
-
8 ist
eine Veranschaulichung einer Datenstruktur für die Verwendung mit dem System
und Verfahren für
das Generieren eines digitalen Zertifikats, das einen Wald von binären Hash-Bäumen veranschaulicht.
-
9 ist
eine Veranschaulichung einer Datenstruktur für die Verwendung mit dem System
und Verfahren für
das Generieren eines digitalen Zertifikats, das einen Wald von binären Hash-Bäumen dargestellt
als eine Indexanordnung veranschaulicht.
-
10 ist
eine Veranschaulichung einer Datenstruktur für die Verwendung mit dem System
und Verfahren für
das Generieren eines digitalen Zertifikats, das einen Wald von in
einer aus Schichten aufgebauten Datenstruktur angeordneten binären Bäumen veranschaulicht.
-
11 ist
eine Veranschaulichung einer Tabelle für die Verwendung mit dem System
und Verfahren für
das Generieren eines digitalen Zertifikats, die den Ablauf eines
Algorithmus für
das Registrieren eines digitalen Datensatzes veranschaulicht.
-
12 ist
eine Veranschaulichung einer Tabelle für die Verwendung mit dem System
und Verfahren für
das Generieren eines digitalen Zertifikats, die den Ablauf eines
Algorithmus für
das Generieren eines digitalen Intervallwerts veranschaulicht.
-
13 ist
eine Veranschaulichung einer Tabelle für die Verwendung mit dem System
und Verfahren für
das Generieren eines digitalen Zertifikats, das ferner den Ablauf
eines Algorithmus für
das Generieren eines digitalen Intervallwerts veranschaulicht.
-
DETAILLIERTE BESCHREIBUNG
-
Zwar
kann diese Erfindung auf vielfältige
Art und Weise in verschiedene Ausführungsformen umgesetzt werden,
dennoch werden in den Zeichnungen bevorzugte Ausführungsformen
gezeigt und hierin detailliert beschrieben, wobei es sich von selbst
versteht, dass die vorliegende Offenbarung als beispielhafte Darstellung
der Grundsätze
der Erfindung betrachtet werden soll und keineswegs den breit gefassten
Aspekt der Erfindung auf die veranschaulichten Ausführungsformen
beschränken
soll.
-
Unter
detaillierter Bezugnahme auf die Zeichnungen und zunächst auf 1 werden
ein System und ein Verfahren für
das Generieren eines digitalen Zertifikats bereitgestellt. Das System
und Verfahren umfassen abstrakt betrachtet drei primäre Funktionalitäten. Die
erste primäre
Funktionalität
ist die Registrierung eines neuen digitalen Datensatzes. In Schritt 101 wird
der neue digitale Datensatz erstellt oder empfangen. Ein digitaler
Datensatz ist eine Darstellung eines Datenelements, und das Datenelement
kann jede beliebige Art von digitaler Information darstellen. Beispielsweise
kann das Datenelement ein elektronisches Dokument, eine Information
bezüglich
der Reihenfolge, eine Identifizierungsinformation oder jede beliebige
Art von digital dargestellter Information sein. Als eine Darstellung
des Datenelements kann der digitale Datensatz das Datenelement in
seiner Gesamtheit, einen Teilbereich des Datenelements oder eine
beliebige weitere Darstellung des Datenelements umfassen. In einer
bevorzugten Ausführungsform
wird der neue digitale Datensatz in Schritt 101 empfangen.
In einer weiteren bevorzugten Ausführungsform wird der neue digitale
Datensatz in Schritt 101 basierend auf einem empfangenen Datenelement
generiert und dann in dem Repository für digitale Datensätze gespeichert.
-
In
Schritt 102 wird eine erste deterministische Funktion auf
wenigstens eine Teilmenge der in dem Repository gespeicherten digitalen
Datensätze angewendet,
wodurch ein erster zusammengesetzter digitaler Wert generiert wird.
In einer bevorzugten Ausführungsform
wird die erste deterministische Funktion auf sämtliche in dem Repository gespeicherten
digitalen Datensätze
angewendet, wodurch sichergestellt wird, dass der erste zusammengesetzte
digitale Wert eine Darstellung der gesamten Historie des Repository
ist und wodurch die Möglichkeit, dass
der Besitzer des Repository später
betrügerisch mit
dem Inhalt des Repository umgeht, verringert wird.
-
Auch
wird dem neuen digitalen Datensatz in Schritt 102 eine
Abfolgenummer zugewiesen. In einer bevorzugten Ausführungsform
stellt die Abfolgenummer die Reihenfolge dar, in der die neuen digitalen
Datensätze
empfangen werden. Beispielsweise wird Abfolgenummer 11 dem neuen
digitalen Datensatz bei Empfang desselben zugeordnet, wenn bereits
zehn in dem Repository gespeicherte digitale Datensätze vorliegen.
Allerdings kann die Abfolgenummer eine beliebige Darstellung der
Zeit oder Reihenfolge, in welcher der neue digitale Datensatz empfangen
wird, sein.
-
In
Schritt 103 wird ein erstes Zertifikat derart generiert,
dass es den Empfang des neuen digitalen Datensatzes bestätigt. Das
erste Zertifikat umfasst wenigstens die dem neuen digitalen Datensatz
zugeordnete Abfolgenummer sowie den ersten zusammengesetzten digitalen
Wert. In einer bevorzugten Ausführungsform
kann das erste Zertifikat verwendet werden, um die Abfolgenummer
zu überprüfen, da die
Abfolgenummer den Zeitpunkt oder die Reihenfolge, zu dem/in welcher
der neue digitale Datensatz empfangen wurde, angibt, und der erste
zusammengesetzte digitale Wert die Historie des Repository nach
Empfang des neuen digitalen Datensatzes darstellt.
-
In
Schritt 104 kann dem ersten Zertifikat optional zusätzliche
Information hinzugefügt
werden. Beispielsweise umfasst in einer bevorzugten Ausführungsform
das erste Zertifikat zusätzlich
den neuen digitalen Datensatz oder einen Teilbereich davon. Dies
ist nützlich
bei dem Überprüfen, ob
die Inhalte des digitalen Datensatzes ordnungsgemäß von dem Repository
empfangen wurden. In einer weiteren bevorzugten Ausführungsform
kann die zusätzliche
Information ein Zeitstempel sein, der die genaue Zeit angibt, zu
welcher der neue digitale Datensatz empfangen wird.
-
In
Schritt 105 wird eine digitale Signatur bei dem ersten
Zertifikat angewendet. Die digitale Signatur kann jede beliebige
Art von Signatur sein, sodass die Signatur die Identität des Besitzers
des Repository authentifiziert. Zum Beispiel kann die digitale Signatur
auf einem Verschlüsselungsschema
mit einem privaten/öffentlichen
Schlüssel,
wie etwa RSA, basieren. In einer bevorzugten Ausführungsform
wird das erste Zertifikat unter Verwendung eines privaten Schlüssels des
Besitzers des Repository digital signiert. Bevorzugt wird das erste
Zertifikat zu dem Hersteller oder Anbieter des digitalen Datensatzes übertragen.
-
In
Schritt 106 wird der neue digitale Datensatz oder eine
Darstellung davon dem Repository hinzugefügt. Der Schritt 106 des
Hinzufügens
des neuen digitalen Datensatzes zu dem Repository kann vor oder
nach dem Generieren des ersten zusammengesetzten digitalen Werts
in Schritt 102 durchgeführt
werden. In einer bevorzugten Ausführungsform wird der neue digitale
Datensatz dem Repository nach dem Generieren des ersten digitalen Zertifikats
in Schritt 103 hinzugefügt,
um die für
den Anbieter des neuen digitalen Datensatzes erforderliche Wartezeit
für das
Empfangen des ersten digitalen Zertifikats zu verringern. Nachdem
der neue digitale Datensatz in Schritt 106 dem Repository
hinzugefügt
wurde, können
zusätzliche digitale
Datensätze
generiert oder empfangen werden; anders gesagt, das System kann
zu Schritt 101 zurückkehren.
-
Die
zweite primäre
Funktionalität
des Systems und Verfahrens für
das Generieren eines digitalen Zertifikats liegt in der Veröffentlichung
von zu dem Repository gehörender
Information. In Schritt 107 wird ein zweiter zusammengesetzter
digitaler Wert durch Anwenden einer zweiten deterministischen Funktion
auf wenigstens eine Teilmenge der in dem Repository gespeicherten
digitalen Datensätze
generiert. Wie der erste zusammengesetzte digitale Wert stellt der
zweite zusammengesetzte digitale Wert die Historie des Repository
zu einem bestimmten Zeitpunkt dar. In einer bevorzugten Ausführungsform sind
die ersten und die zweiten deterministischen Funktionen nicht dieselben
Funktionen. Bevorzugt wird die zweite deterministische Funktion
auf sämtliche
in dem Repository gespeicherte digitale Datensätze angewendet und somit stellt
der zweite zusammengesetzte digitale Wert die gesamte Historie des Repository
dar, wodurch die Gefahr, dass der Besitzer des Repository betrügerisch
mit demselben umgeht, verringert wird.
-
In
Schritt 108 wird eine zusammengesetzte Abfolgenummer generiert,
wobei die Abfolgenummer der Reihenfolge entspricht, in welcher der
zweite zusammengesetzte digitale Wert generiert wird. Die zusammengesetzte
Abfolgenummer ist dadurch ein Hinweis auf die temporäre Qualität des zweiten
zusammengesetzten digitalen Werts. In Schritt 108 werden
der zweite zusammengesetzte digitale Wert und die zusammengesetzte
Abfolgenummer veröffentlicht,
d. h. zu einem öffentlichen
Forum übertragen.
Das öffentliche
Forum kann jede beliebige Informationsquelle sein, die der breiten Öffentlichkeit
zur Verfügung
steht. Beispielsweise kann das öffentliche Forum
eine Zeitung, ein Magazin, eine Internet-Webseite oder elektronische
Post sein.
-
Die
dritte primäre
Funktionalität
des Systems und Verfahrens für
das Generieren eines digitalen Zertifikats liegt in dem Erstellen
eines zweiten Zertifikats, das die Authentizität der Abfolgenummer des neuen
digitalen Zertifikats belegt. In Schritt 109 wird ein digitaler
Intervallwert generiert, wobei der digitale Intervallwert auf dem
ersten und dem zweiten zusammengesetzten digitalen Wert basiert.
In einer bevorzugten Ausführungsform
ist der digitale Intervallwert das Ergebnis der Anwendung einer
dritten deterministischen Funktion, welche auf die zwischen dem Empfang
der neuen digitalen Datensatzes und dem Generieren des zweiten zusammengesetzten
digitalen Werts in dem Repository gespeicherten digitalen Datensätze angewendet
wird. Somit kann der digitale Intervallwert die Historie des Repository
zwischen dem Empfang des neuen digitalen Datensatzes und der Veröffentlichung
des zweiten zusammengesetzten digitalen Werts darstellen. Jedoch
kann der digitale Intervallwert auch das Ergebnis der Anwendung einer
auf sämtliche
in dem Repository gespeicherten digitalen Datensätze angewendeten deterministischen
Funktion sein und dadurch die gesamte Historie des Repository wiedergeben.
-
In
Schritt 110 wird ein zweites Zertifikat generiert, wobei
das zweite Zertifikat wenigstens den digitalen Intervallwert und
die Abfolgenummer des neuen digitalen Datensatzes einschließt. Da der
digitale Intervallwert die Historie des Repository seit Hinzufügen des
neuen digitalen Datensatzes zu dem Repository oder seit einem früheren Zeitpunkt
wiedergibt, kann der digitale Intervallwert verwendet werden, um die
Genauigkeit der Abfolgenummer zu überprüfen. Der digitale Intervallwert
kann auch verwendet werden, um die Authentizität des neuen digitalen Datensatzes
zu erneuern, d. h. sie zu erweitern. Da das Generieren des digitalen
Intervallwerts nicht auf der Verwendung von Verschlüsselungsschlüsseln basiert,
ist die Sicherheit des zweiten digitalen Zertifikats nicht durch
die Beschädigung
des Verschlüsselungsschlüssels gefährdet.
-
Unter
Bezugnahme auf 2 werden die Schritte des Verfahrens
für das
Generieren eines digitalen Zertifikats im Detail bereitgestellt.
In Schritt 106 wird der neue digitale Datensatz 200 dem
Repository 210 hinzugefügt.
In Schritt 205 wird eine erste deterministische Funktion
auf wenigstens eine Teilmenge des in dem Repository gespeicherten
digitalen Datensatzes angewendet, um einen ersten zusammengesetzten
digitalen Wert 204 zu generieren. Der Schritt des Hinzufügens des
neuen digitalen Datensatzes 200 zu dem Repository 106 kann
vor oder nach dem Schritt des Anwendens der ersten deterministischen
Funktion 205 auf das Repository 210 angewendet
werden. Eine Abfolgenummer 202 wird dem neuen digitalen
Datensatz 200 zugeordnet, wobei die Abfolgenummer den temporären Wert
des neuen digitalen Datensatzes 200 darstellt, d. h. die Reihenfolge,
in welcher der neue digitale Datensatz 200 empfangen wurde.
-
In
Schritt 103 wird das erste Zertifikat 201 generiert.
Das erste Zertifikat 201 schließt wenigstens den ersten zusammengesetzten
digitalen Wert 204 und die Abfolgenummer 202 des
neuen digitalen Zertifikats 200 ein. Zusätzlich kann
das erste Zertifikat 201 den neuen digitalen Datensatz 200 selbst
sowie weitere zusätzliche
Daten 207 einschließen.
In Schritt 208 wird das erste Zertifikat 201 mit
einer digitalen Signatur 209 signiert, wobei die digitale
Signatur 209 bevorzugt auf dem Verschlüsselungsschema mit einem öffentlichen
Schlüssel
basiert.
-
In
Schritt 213 wird eine zweite deterministische Funktion
auf den in dem Repository 210 gespeicherten digitalen Datensatz
angewendet, um einen zweiten zusammengesetzten digitalen Wert 212 zu generieren.
Eine zusammengesetzte Abfolgenummer 217 wird generiert
und bevorzugt der aktuell als nächstes
verfügbaren
Abfolgenummer in dem Repository 210 gleichgesetzt. In Schritt 109 wird
ein digitaler Intervallwert 214 generiert, wobei der digitale
Intervallwert 214 den zeitlichen Abstand zwischen dem Empfang
des neuen digitalen Datensatzes 200 und dem Generieren
des zweiten zusammengesetzten digitalen Werts 212 wiedergibt.
Zuletzt wird in Schritt 110 ein zweites Zertifikat 215 generiert,
wobei das zweite Zertifikat 215 wenigstens die Abfolgenummer 202 des
neuen digitalen Datensatzes 200 und den digitalen Intervallwert 212 umfasst.
Zusätzlich
kann, wie in Schritt 110 angezeigt, das zweite Zertifikat 215 das
gesamte oder einen Teilbereich des ersten Zertifikats 201 sowie
die zusammengesetzte Abfolgenummer 217 umfassen.
-
Unter
Bezugnahme auf 3 werden nun detailliert die
Schritte des Überprüfens des
zweiten Zertifikats 215 bereitgestellt. Ein erstes Zertifikat 201 wird
von dem Server 302 von einem Kunden 301 empfangen,
wobei das erste Zertifikat 201 bevorzugt mit einer digitalen
Signatur 209 signiert wurde. Optional wird bei Empfang
des ersten Zertifikats 201 ein Vorgang des Überprüfens der
Signatur 308 durchgeführt,
um zunächst
die Authentizität
des ersten Zertifikats 201 zu überprüfen. Bevorzugt besteht der
Vorgang des Überprüfens der
Signatur 308 darin, ein schlüsselbasiertes Verschlüsselungsschema
zu verwenden.
-
Das
erste Zertifikat 201 wird von einem zweiten Kunden 303 empfangen,
und ein Vorgang des Überprüfens der
Signatur 308 wird durchgeführt, um die Authentizität des ersten
Zertifikats 201 zu überprüfen. In
einer bevorzugten Ausführungsform
ist der zweite Kunde 303 nach der Bestimmung in Schritt 308,
dass die digitale Signatur 209 des ersten Zertifikats 201 ungültig ist,
nicht in der Lage, das erste Zertifikat 201 zu bestätigten oder
für gültig zu
erklären. Wird
festgestellt, dass die digitale Signatur 209 des ersten
Zertifikats 201 gültig
ist, dann wird das erste Zertifikat 201 an einen zweiten
Server 304 übertragen,
an dem das erste Zertifikat erneuert, erweitert und durch Anwendung
des hierin beschriebenen Verfahrens für das Generieren des zweiten
Zertifikats 215 für
gültig
erklärt
wird. Das zweite Zertifikat 215 wird dann an den zweiten
Server 304 übertragen.
Der veröffentlichte
zweite zusammengesetzte digitale Wert 212 und die zusammengesetzte
Abfolgenummer 217 sind dem zweiten Kunden 303 öffentlich
zugänglich.
Somit kann der zweite Kunde 303 basierend auf diesen Werten,
dem zweiten Zertifikat 215 und dem ersten Zertifikat 201,
die Gültigkeit
der Abfolgenummer 202 über
den Überprüfungsprozess 307 überprüfen. Bei
der Bestimmung, dass das erste Zertifikat 201 und das zweite
Zertifikat 215 übereinstimmen,
ist der zweite Kunde 303 fähig, der Authentizität der Abfolgenummer 202 und
des von dem ersten Kunden 301 bereitgestellten digitalen
Datensatzes 200 zu vertrauen.
-
Unter
Bezugnahme auf 4 wird nun detailliert eine
weitere Ausführungsform
des Systems und Verfahrens für
das Überprüfen eines
digitalen Datensatzes 200 bereitgestellt. Ein digitaler
Datensatz 200 wird von einem Kunden 402 zu einem Überprüfungsserver 401 übertragen.
Das zweite Zertifikat 215 wird von einem Erweiterungsserver 403 empfangen,
an dem der Prozess des Generierens des zweiten Zertifikats 215 durchgeführt wurde.
Der zweite zusammengesetzte digitale Wert 212 und die zusammengesetzte
Abfolgenummer 217, die gemeinsam als die öffentlichen
Werte 212 bezeichnet werden, werden auf öffentlichem
Server 404 veröffentlicht
und von Überprüfungsserver 401 empfangen.
Das zweite Zertifikat 215, der digitale Datensatz 200 sowie öffentliche
Werte 212 werden in dem hierin beschriebenen Überprüfungsprozess 405 verwendet.
Somit kann der Überprüfungsserver 401 der
Gültigkeit
des von dem Kunden 402 übergebenen
digitalen Datensatzes 200 vertrauen.
-
Unter
Bezugnahme auf 5 wird nun detailliert eine
Ausführungsform
des Systems und Verfahrens für
das Registrieren von digitalen Datensätzen bereitgestellt, wobei
ein Überprüfungsserver 501 die
Reihenfolge der Abfolgewerte 202 der jeweils von dem ersten
und zweiten Kunden 502 und 504 bereitgestellten
konkurrierenden digitalen Datensätze 200 überprüfen kann.
Ein erster Kunde 502 überträgt einen
ersten digitalen Datensatz 503 an den Überprüfungsserver 501, begleitet
von dem zweiten Zertifikat 509, das dem ersten digitalen
Datensatz 503 entspricht. Ein zweiter Kunde 504 überträgt einen
zweiten digitalen Datensatz 510 an den Überprüfungsserver 501, begleitet
von dem zweiten Zertifikat 511, das dem zweiten digitalen
Datensatz 510 entspricht. Somit kann der Überprüfungsserver 501 das
hierin beschriebene System und Verfahren verwenden, um zu bestimmen,
welcher der konkurrierenden digitalen Datensätze 200 früher registriert
wurde.
-
Die
auf einem öffentlichen
Server 506 veröffentlichten öffentlichen
Werte 512 werden von dem Überprüfungsserver 501 empfangen.
Unter Verwendung des hierin beschriebenen Überprüfungsprozesses 507 kann
der Überprüfungsserver 501 dem
ersten und zweiten digitalen Datensatz 200 sowie den begleitenden
zweiten Zertifikaten vertrauen, um zu bestimmen, welche der digitalen
Datensätze 200 authentisch
sind. Zudem kann der Überprüfungsserver 501 auch
die authentische Reihenfolge, in welcher die digitalen Datensätze 200 empfangen
wurden, bestimmen, da die Abfolgenummern 202 der digitalen Datensätze 200 in
den zweiten Zertifikaten 215 wiedergegeben werden.
-
Unter
Bezugnahme auf 6 wird nun ein Statusübergangsdiagramm
bereitgestellt, das ferner die Status und Übergänge zwischen denselben für das Registrieren
eines neuen digitalen Datensatzes und das Generieren eines ersten
digitalen Zertifikats veranschaulicht. In Schritt 603 wird
das Registrierungssystem initialisiert. Der Abfolgewert wird auf Null
gesetzt, digitale Datensätze
in dem Repository werden gelöscht,
und die zusammengesetzten digitalen Werte werden gelöscht. In
Schritt 602 wartet das System auf das Empfangen eines digitalen
Datensatzes. Bei Empfang einer solchen wird der erste zusammengesetzte
digitale Wert in Schritt 604 generiert. In Schritt 605 wird
ein Abfolgewert dem neuen digitalen Datensatz zugeordnet, und gemäß dem hierin
beschriebenen Vorgehen wird ein erstes digitales Zertifikat generiert.
Das erste digitale Zertifikat wird digital signiert. Zuletzt wird
der neue digitale Datensatz dem Repository hinzugefügt. Nach
Abschluss der Registrierung in Schritt 605 kehrt das System
in den Wartezustand 602 zurück, um einen weiteren neuen
digitalen Datensatz zu empfangen.
-
Unter
Bezugnahme auf 7 wird nun ein Statusübergangsdiagramm
bereitgestellt, das ferner die Status und Übergänge zwischen denselben für das Erweitern
des ersten digitalen Zertifikats veranschaulicht. Das System beginnt
bei Schritt 701 und wird in Schritt 703 initialisiert.
Der zweite zusammengesetzte digitale Wert wird durch das Anwenden
der zweiten deterministischen Funktion auf das Repository generiert,
und der zusammengesetzte Abfolgewert wird generiert. Das System
fährt dann
fort bis zum Erreichen eines Wartestatus 702 für den Empfang
eines digitalen Zertifikats. Wird kein digitales Zertifikat empfangen,
kann das System zwischenzeitlich zu Schritt 703 zurückkehren,
um die zusammengesetzten Werte zu reinitialisieren und zu regenerieren.
Wird ein digitales Zertifikat empfangen, dann wird der digitale
Intervallwert in Schritt 704 gemäß dem hierin beschriebenen
Prozess generiert. Nachdem der digitale Intervallwert generiert
wurde, generiert das System in Schritt 705 ein zweites
digitales Zertifikat. Zuletzt kehrt das System in einen Wartestatus 702 zurück, um einen
weiteren digitalen Datensatz zu empfangen. In einer bevorzugten
Ausführungsform
kann das System verwendet werden, um die Authentizität des ersten
digitalen Zertifikats zu erneuern oder zu erweitern, da das Generieren
des zweiten digitalen Zertifikats von den Inhalten des ersten digitalen
Zertifikats abhängig
ist. Das System kann auch verwendet werden, um die Authentizität des ersten
digitalen Zertifikats zu überprüfen sowie um
die Authentizität
des dem ersten digitalen Zertifikat entsprechenden digitalen Datensatzes
zu überprüfen.
-
Unter
Bezugnahme auf 8 wird nun ein Diagramm bereitgestellt,
das eine Datenstruktur für die
Verwendung mit dem System und dem Verfahren für das Generieren eines digitalen
Zertifikats bereitstellt. In einer bevorzugten Ausführungsform
ist die Datenstruktur ein Wald von binären Hash-Bäumen, wobei jeder Elternknoten
eines binären
Baums ein kryptografischer Hash der Kindknoten ist. Die Konstruktion
des binären
Hash-Baums wird während
der Übertragung
basierend auf dem Empfang von neuen digitalen Datensätzen durchgeführt. Die
neuen digitalen Datensätze
werden durch Hash-Werte einer vorbestimmten Größe dargestellt und in Blättern 802 der
binären
Hash-Bäume
gespeichert. Aufgrund der Verwendung der Datenstruktur eines binären Baums muss
die Anzahl der digitalen, in dem Repository gespeicherten Datensätze nicht
bekannt sein und die topologischen Parameter des Repository, zum
Beispiel Höhe
und Breite, müssen
nicht bestimmt werden. 8 stellt somit die Datenstruktur
des Waldes von binären
Hash-Bäumen
des Repository nach dem Empfang von sechs digitalen Datensätzen dar.
-
Die
Blattknoten 802 des Waldes sind natürlich organisiert. Die Abfolgenummer
n eines Blattes bestimmt seine Position in dem Wald. Wird ein neuer Datensatz
xn empfangen, dann wird dieser zunächst als
ein Blatt mit Abfolgenwert n gespeichert, und dieser Baum wird dann
aktualisiert. Der Aktualisierungsprozess wird derart organisiert,
dass nur die Wurzelknoten 801 des Waldes für das zukünftige Generieren
zusammengesetzter digitaler Werte teilnehmen werden. Die Liste der
Wurzelknoten dient somit einem Status-Hash zur Verwendung bei der
Generierung von zusammengesetzten digitalen Werten. Während des
Prozesses des Generierens eines zusammengesetzten digitalen Werts
wird jeder beliebige berechenbare Knoten der Struktur berechnet
und unmittelbar gespeichert. Sämtliche
Blätter 802 sind
in ihrer berechneten Reihenfolge gespeichert, die bevorzugt der
Post-Order-Traversierung
des Baumes entspricht. Da die Wurzelknoten 801 bereits
die Hash-Werte der
Blätterknoten 802 darstellen,
müssen
die Blätterknoten 802 bei
dem Generieren eines zusammengesetzten digitalen Werts nicht berücksichtigt
werden. Somit stellt die Datenstruktur des Waldes von binären Hash-Bäumen eine
sehr schnelle Verarbeitung der zusammengesetzten digitalen Werte
bereit.
-
Unter
Bezugnahme auf 9 wird nun ein Diagramm bereitgestellt,
das eine Datenstruktur für die
Verwendung mit dem System und Verfahren für das Generieren eines digitalen
Zertifikats veranschaulicht, wobei die Datenstruktur des Walds von
binären
Hash-Bäumen
ferner als Indexanordnung veranschaulicht wird. Die Elemente einer
den Wald darstellenden Anordnung werden in ihrer berechneten Reihenfolge
gespeichert. Anders ausgedrückt
weisen die zeitlich früher
berechneten Elemente geringere Indizes auf als die später berechneten
Elemente. Der Prozess des Aufbauens der Wald-Datenstruktur hängt bevorzugt
von der Verwendung eines Stack ab, der die Wurzel-Hash-Werte h1 ... hs enthält, mit
hs oben auf dem Stack. Sind (x0 ...
xn-1) die Blätter des Waldes, dann ist die
Anzahl der Elemente in dem Stack gleich der Anzahl der in der binären Darstellung
von n festgelegten Bits. Jedes hinzugefügte Blatt ändert einige Werte oben auf
dem Stack und die Anzahl der geänderten
Werte ist gleich der Anzahl der am weitesten rechts angeordneten
1-Bits in der binären
Darstellung von n. Zum Beispiel ändert
die n-te Addition für
n = 23 drei Elemente des Stacks, weil 23 = 101112.
-
Unter
Bezugnahme auf 10 wird nun ein Diagramm bereitgestellt,
das eine Datenstruktur für die
Verwendung mit dem System und Verfahren für das Generieren eines digitalen
Zertifikats veranschaulicht, wobei die Datenstruktur ferner als
ein in Schichten aufgebauter Wald von binären Hash-Bäumen veranschaulicht wird.
Es ist bevorzugt, dass der binäre
Baum in Schichten organisiert ist, um den digitalen Intervallwert
effizient zu berechnen. Die n-te Schicht 1001 ist definiert
als eine minimale Teilmenge von Knoten, die zwei Voraussetzungen
erfüllen.
Zunächst
erfüllt
die Schicht die Voraussetzung, dass für sämtliche n das Blatt xn zu der n-ten Schicht gehört. Zweitens
erfüllt
die Schicht die Voraussetzung, dass in dem Fall, dass einer der
Kindknoten eines Knotens v zu der n-ten Schicht gehört und der
andere Kind knoten zu der (n – k)-ten
Schicht gehört
(wobei k ε {0 ...
n}, auch der Knoten v zu der n-ten Schicht gehört. 10 zeigt
ein Beispiel eines binären
Hash-Baumes von sechs in Schichten organisierten Knoten.
-
Unter
Bezugnahme auf 11 wird nun eine Tabelle bereitgestellt,
die den Ablauf eines Algorithmus für die Verwendung mit dem System
und Verfahren für
das Generieren eines digitalen Zertifikats veranschaulicht. In einer
bevorzugten Ausführungsform wird
der Algorithmus für
das Registrieren eines digitalen Datensatzes, wobei n die Abfolgenummer
des Repository und x einen neuen digitalen Datensatz darstellt,
folgendermaßen
bereitgestellt:
Zusammengesetzter_Wert = ⌷, Repository
= ⌷
n: = 0
repeat
Receive_Datensatz (x)
Reply
(n, zusammengesetzter_Wert, x)
Append (Repository, x)
Update
(Repository, zusammengesetzter_Wert, n, x) n: = n + 1
-
In 11 wird
ein Ablauf, der die Anwendung dieses Algorithmus veranschaulicht,
mit Eingaben des digitalen Datensatzes [x0,
x1, x2, x3, x4] dargestellt.
Die Funktion Update (Repository, zusammengesetzter_Wert, n, x) kann
ferner definiert werden als:
a: = n
while Ungerade (a)
do
x: = Hash (Pop (zusammengesetzer_Wert), x)
Append (Repository,
x)
a: = a >> 1
Push (zuammengesetzter_Wert,
x)
-
Unter
Bezugnahme auf 12 wird nun eine Tabelle bereitgestellt,
die den Ablauf eines Algorithmus für die Verwendung mit dem System
und Verfahren für
das Generieren eines digitalen Zertifikats veranschaulicht. In einer
bevorzugten Ausführungsform wird
der Algorithmus für
das Generieren eines digitalen Intervallwerts, wobei n die Abfolgenummer
des Repository darstellt und N den zusammengesetzten Wert darstellt,
folgendermaßen
bereitgestellt:
Kopf: = ⌷, Schwanz: = [], j: = ||n||1 + 1, b: = 1
while f: = [(n⌖b) or
(b – 1)] ≤ N do
if
b&n = b
Append
(Kopf, Repository [2f – j
+ 2])
j: = j– 1
while
Append
(Schwanz, Repository [2f – j])
b:
= b << 1
-
In 12 wird
ein Ablauf, der die Anwendung dieses Algorithmus veranschaulicht,
gezeigt, wobei n = 4 und N = 7 ist. In 13 wird
ein Ablauf, der die Anwendung dieses Algorithmus veranschaulicht,
gezeigt, wobei n = 3 und N = 7 ist.
-
Es
gilt zu beachten, dass die Erfindung in anderen speziellen Formen
ausgeführt
werden kann, ohne dass dies eine Abweichung von ihrem Wesen oder
von zentralen Merkmalen derselben darstellt. Die vorliegenden Ausführungsformen
sollen aus diesem Grund in jeglicher Hinsicht als veranschaulichend,
jedoch nicht als einschränkend
betrachtet werden, und die Erfindung beschränkt sich nicht auf die hierin
bereitgestellten Details.