-
TECHNISCHES GEBIET
-
Die vorliegende Erfindung betrifft das Gebiet der digitalen Signatur, insbesondere ein digitales Signierungsverfahren, eine zugehörige Einrichtung und ein zugehöriges System.
-
STAND DER TECHNIK
-
Bei einem herkömmlichen öffentlichen Schlüsselsystem wird eine Benutzeridentifikation mittels eines Zertifikats an einen Schlüssel, den der Benutzer besitzt, gebunden. Mit einem Zertifikat kann die Beziehung zwischen dem Benutzer und ihre Schlüssel effektiv nachgewiesen werden, wobei jedoch das Zertifikat komplex zu verwalten ist. Bei Identifikations-basierten Kryptoalgorithmen wird ein öffentlicher Identifikationsschlüssel eines Benutzers unter Verwendung der Identifikation des Benutzers und der öffentlichen Information des Systems berechnet und zur Kommunikation zwischen Benutzern muss kein Zertifikat oder öffentliche Schlüssel ausgetauscht werden. Ein derartiges System zeichnet sich vorteilhafterweise durch einfache Verwaltung aus. Der Nachteil besteht jedoch darin, dass ein Schlüssel überlassen wird, wobei also ein Schlüsselerstellungszentrum die Schlüssel aller Benutzer erstellen kann. Ein zertifikatloses öffentliches Schlüsselsystem liegt zwischen den beiden Systemen und dabei wird der Schlüssel eines Benutzers gemeinsam durch den Benutzer und das Schlüsselerstellungszentrum erstellt. Bei einem grundlegenden Verfahren stellt ein Benutzer dem Schlüsselerstellungszentrum einen öffentlichen Schlüssel in einem von ihm selbst erstellten Teilschlüssel 1 und seine Identifikation bereit, um eine Signierung zu ermöglichen und einen Teilschlüssel 2 zu erstellen. Nach Erhalten des Teilschlüssels 2 (Signierungsergebnis) erstellt der Benutzer in Kombination mit dem von ihm selbst erstellten Teilschlüssel 1 ein vollständiges öffentliches und privates Schlüsselpaar. Bei einem derartigen System soll sichergestellt werden, dass ohne privaten Schlüssel des Benutzers die Identifikation des Benutzers beispielsweise u.a. zur digitalen Signierung nicht gefälscht werden kann, auch wenn ein Angreifer einen öffentlichen Schlüssel gefälscht hätte. Die Ausbildung eines derartigen zertifikatlosen digitalen Signiermechanismus erfordert zwei Signaturalgorithmen. Ein erster Signaturalgorithmus wird durch das Schlüsselerstellungszentrum ausgeführt und dabei wird die von dem Benutzer abgeschickte Identifikation signiert. Ein zweiter Signaturalgorithmus wird von dem Benutzer ausgeführt und dabei wird eine zu signierende Nachricht von dem Benutzer mittels des privaten Schlüssels aus einem vollständigen öffentlichen und privaten Schlüsselpaar signiert. Allein durch einfache Kombination eines Standard-Signaturalgorithmus wie z.B. EC-Schnorr mit einem Nachricht-Signaturalgorithmus ECDSA kann jedoch die Sicherheit des derart ausgestalteten zertifikatlosen digitalen Signiermechanismus nicht sichergestellt werden. Sicherheitsprobleme, die bei einfacher Kombinationmethode bestehen, sind u.a. aus der Arbeit „Security of ECQV-Certified ECDSA Against Passive Adversarie“ von Daniel R.L. Brown et al. zu entnehmen.
-
INHALT DER VORLIEGENDEN ERFINDUNG
-
Technisches Problem
-
Der vorliegenden Erfindung liegt vor allem die Aufgabe zugrunde, ein digitales Signierungsverfahren, eine zugehörige Einrichtung und ein zugehöriges System bereitzustellen, um das Problem der Sicherheitslücken im Stand der Technik zu lösen.
-
Lösung
-
Erfindungsgemäß wird die Aufgabe gelöst durch ein digitales Signierungsverfahren, das Folgendes umfasst:
- - zufällig Erstellen eines Schlüsselpaares n und X durch einen Unterzeichner und Abschicken von ihre Identifikations-ID und X an ein Schlüsselerstellungszentrum,
- - Empfangen eines durch das Schlüsselerstellungszentrum erstellten, der Identifikations-ID des Unterzeichners zugeordneten privaten Teil-Signaturschlüssel T=(Π, w), wobei es sich bei (Π, w) um einen Signaturwert handelt, der sich aus Signieren der ID durch das Schlüsselerstellungszentrum mittels eines digitalen Signierungsverfahrens MA ergibt, wobei das Schlüsselerstellungszentrum ein privates und öffentliches Signaturschlüsselpaar (P, ms) zufällig erstellt, eine Vorsignatur Π erzeugt, danach einen Hash-Digest erstellt, der mindestens Π und ID umfasst und als Signaturzuordnung R dient, und schließlich einen zweiten Teil w des Signaturwerts erstellt, wobei das Schlüsselerstellungszentrum P als öffentlicher Parameter des Kryptosystems heranzieht,
- - Ermitteln eines Signaturschlüsselpaares (PX, S) durch Berechnen unter Verwendung von P, ID, T, n und X,
- - Signieren einer Nachricht M mittels des digitalen Signierungsverfahrens MB unter Verwendung von S als privater Signaturschlüssel, Erstellen eines Signaturwerts U und Übermitteln von (U, PX) als Signaturwert für die Nachricht M an einen Signaturverifizierer oder Senden von U als Signaturwert für die Nachricht M an den Signaturverifizierer und Veröffentlichen von PX, wobei während der Signierung der Nachricht M bei einer Operation, bei der M als Eingabe herangezogen werden soll, eine Verbindung von R und M als Eingabe verwendet wird,
- - Verifizieren der Signatur für die Nachricht M über den Signaturverifizierer, wobei der Signaturverifizierer PX erfasst, einen S zugeordneten öffentlichen Schlüssel Q anhand von P, ID und PX berechnet und gemäß dem Signaturverifikationsvorgang des digitalen Signierungsverfahrens MB überprüft, ob es sich bei U um eine dem privaten Schlüsselpaar M zugeordnete gültige Signatur des öffentlichen Schlüssels Q handelt, wobei während der Signaturverifikation bei einer Operation, bei der M als Eingabe herangezogen werden soll, eine Verbindung von R und M als Eingabe verwendet wird.
-
Ferner ist vorgesehen, dass es sich bei dem digitalen Signierungsverfahren MA um ein Signierungsverfahren handelt, das auf dem diskreten Logarithmus-Problem basiert ist, wobei das Schlüsselerstellungszentrum aufgrund des diskreten Logarithmus-Problems ausgestaltet ist und einen Generator G einer zyklischen Gruppe der Ordnung q und ein Zufallselement in der Gruppe zum Ausführen von [o]G auswählt, wobei [o]G für o-malige Additionsoperation von G in einer Anzahl von o gemäß dem Operationsregel der zyklischen Gruppe steht,
und dass es sich bei ms in dem öffentlichen und privaten Signaturschlüsselpaar (P, ms) um eine Ganzzahl ms handelt, die durch das Schlüsselerstellungszentrum zufällig erstellt wird, wobei die Bedingung 0<ms<q erfüllt wird und P=<G, H=[ms]G>.
-
Ferner ist vorgesehen, dass das Verfahren vor dem Schritt des Ermittelns eines Signaturschlüsselpaares (PX, S) durch Berechnen unter Verwendung von P, ID, T, n und X Folgendes umfasst:
- - Entschlüsseln der Nachricht, die w enthält und durch das Schlüsselerstellungszentrum mittels eines asymmetrischen Standard-Verschlüsselungsalgorithmus verschlüsselt wird, durch den Unterzeichner unter Verwendung von n, wobei beim Verschlüsseln der Nachricht, die w enthält, mittels eines asymmetrischen Standard-Verschlüsselungsalgorithmus X als öffentlicher Verschlüsselungsschlüssel verwendet wird.
-
Ferner ist vorgesehen, dass das Verfahren zum zufälligen Erstellen des Schlüsselpaares n und X durch den Unterzeichner Folgendes umfasst:
- - Zufälliges Erstellen einer Ganzzahl n durch den Unterzeichner und Berechnen von X=[n]G. wobei die Ganzzahl die Bedingung 0<n<q erfüllt,
-
Ferner ist vorgesehen, dass der Schritt des Empfangens eines durch das Schlüsselerstellungszentrum erstellten, der Identifikations-ID des Unterzeichners zugeordneten privaten Teil-Signaturschlüssel T=(Π, w) konkret Folgendes umfasst:
- - Zufälliges Erstellen einer Ganzzahl k ,über das Schlüsselerstellungszentrum oder Ermitteln von k= HASH(F(ID, andere InformationI), ms) mod q durch Berechnen, wobei die Ganzzahl die Bedingung 0<k<q erfüllt, wobei die andere Information I H und X enthält und es sich bei F um eine Hash-Operation oder eine String-Verkettung handelt, wobei es sich bei HASH(F(ID, andere Information I), ms) mod q um eine Digest-Berechnung des verknüpften Werts von F(ID, andere Information I) und ms handelt und die Verkettungsreihenfolge F(ID, andere Information I)|| ms oder ms || F(ID, andere Information I) lauten kann, wobei alternativ dazu eine HMAC-Operation an F(ID, andere Information I) unter Verwendung von ms als Schlüssel erfolgt,
- - Berechnen einer Vorsignatur II =[k]G ± [n]G über das Schlüsselerstellungszentrum,
- - Berechnen einer Signaturzuordnung R=HASH(F(ID, andere Information A), Π), über das Schlüsselerstellungszentrum, wobei die andere Information A H umfasst,
- - Berechnen eines zweiten Teils w=(k ± R*ms) mod q oder (R*k ± ms) mod q des Signaturwerts über das Schlüsselerstellungszentrum,
- - Erstellen eines privaten Teil-Signaturschlüssels T=(Π, w) über das Schlüsselerstellungszentrum,
- - Empfangen des privaten Teil-Signaturschlüssels T=(Π, w).
-
Ferner ist vorgesehen, dass der Schritt des Ermittelns eines Signaturschlüsselpaares (PX, S) durch Berechnen unter Verwendung von P, ID, T, n und X Folgendes umfasst:
- - Erstellen eines Signaturschlüsselpaares (PX, S), das dem öffentlichen Schlüssel Q=Π ± [R] H zugeordnet ist, wenn w=k ± R*ms) mod q, sodass S=(w ± n) mod q und PX=Π,
- - Erstellen eines Signaturschlüsselpaares (PX, S), das dem öffentlichen Schlüssel Q= [R]Π ± H zugeordnet ist, wenn w=(R*k ± ms) mod q, sodass S=(w ± R*n) mod q und PX=Π.
-
Ferner ist vorgesehen, dass der Schritt des Empfangens eines durch das Schlüsselerstellungszentrum erstellten, der Identifikations-ID des Unterzeichners zugeordneten privaten Teil-Signaturschlüssel T=(Π, w) konkret Folgendes umfasst:
- - Zufälliges Erstellen einer Ganzzahl k über das Schlüsselerstellungszentrum oder Ermitteln von k= HASH(F(ID, andere InformationI), ms) mod q durch Berechnen, wobei die Ganzzahl die Bedingung 0<k<q erfüllt, wobei die andere Information I H und X enthält und es sich bei F um eine Hash-Operation oder eine String-Verkettung handelt, wobei es sich bei HASH(F(ID, andere Information I), ms) mod q um eine Digest-Berechnung des verknüpften Werts von F(ID, andere Information I) und ms handelt und die Verkettungsreihenfolge F(ID, andere Information I)|| ms oder ms || F(ID, andere Information I) lauten kann, wobei alternativ dazu eine HMAC-Operation an F(ID, andere Information I) unter Verwendung von ms als Schlüssel erfolgt,
- - Berechnen einer Vorsignatur Π=[k]G über das Schlüsselerstellungszentrum,
- - Berechnen einer Signaturzuordnung R=HASH(F(ID, andere InformationA ), Π) mod q über das Schlüsselerstellungszentrum, wobei die andere Information A X und H umfasst,
- - Berechnen eines zweiten Teils w=(k ± R*ms) mod q oder (R*k ± ms) mod q des Signaturwerts über das Schlüsselerstellungszentrum,
- - Erstellen eines privaten Teil-Signaturschlüssels T=(Π, w) über das Schlüsselerstellungszentrum,
- - Empfangen des privaten Teil-Signaturschlüssels T=(Π, w).
-
Ferner ist vorgesehen, dass der Schritt des Ermittelns eines Signaturschlüsselpaares (PX, S) durch Berechnen unter Verwendung von P, ID, T, n und X Folgendes umfasst:
- - Erstellen eines Signaturschlüsselpaares (PX, S), das dem öffentlichen Schlüssel Q=Π ± X ± [R] H zugeordnet ist, wenn w=(k ± R*ms) mod q, sodass S=(w ± n) mod q und PX=(Π, X),
- - Erstellen eines Signaturschlüsselpaares (PX, S), das dem öffentlichen Schlüssel Q=[R](II ± X) ± H zugeordnet ist, wenn w=(R*k ± ms) mod q, sodass S=(w ± R*n) mod q und PX=(Π, X).
-
Erfindungsgemäß wird ferner eine digitale Signiereinrichtung vorgeschlagen, die Folgendes umfasst:
- - eine Erstellungs- und Sendeeinheit, die zum Erstellen eines Schlüsselpaares n und X zufällig und zum Abschicken von ihre Identifikations-ID und X an das Schlüsselerstellungszentrum dient,
- - eine Empfangseinheit, die zum Empfangen eines durch das Schlüsselerstellungszentrum erstellten, der Identifikations-ID des Unterzeichners zugeordneten privaten Teil-Signaturschlüssel T=(Π, w) dient, wobei es sich bei (Π, w) um einen Signaturwert handelt, der sich aus Signieren der ID durch das Schlüsselerstellungszentrum mittels eines digitalen Signierungsverfahrens MA ergibt, wobei das Schlüsselerstellungszentrum ein privates und öffentliches Signaturschlüsselpaar (P, ms) zufällig erstellt, eine Vorsignatur Π erzeugt, danach einen Hash-Digest erstellt, der mindestens Π und ID umfasst und als Signaturzuordnung R dient, und schließlich einen zweiten Teil w des Signaturwerts erstellt, wobei das Schlüsselerstellungszentrum P als öffentlicher Parameter des Kryptosystems heranzieht,
- - eine Berechnungs- und Ermittlungseinheit, die zum Ermitteln eines Signaturschlüsselpaares (PX, S) durch Berechnen unter Verwendung von P, ID, T, n und X dient,
- - eine Signier- und Sendeeinheit, die zum Signieren einer Nachricht M mittels des digitalen Signierungsverfahrens MB unter Verwendung von S als privater Signaturschlüssel, Erstellen eines Signaturwerts U und Übermitteln von (U, PX) als Signaturwert für die Nachricht M an einen Signaturverifizierer oder Senden von U als Signaturwert für die Nachricht M an den Signaturverifizierer und Veröffentlichen von PX dient, wobei während der Signierung der Nachricht M bei einer Operation, bei der M als Eingabe herangezogen werden soll, eine Verbindung von R und M als Eingabe verwendet wird,
- - eine Verifikationseinheit, die zum Verifizieren der Signatur für die Nachricht M über den Signaturverifizierer dient, wobei der Signaturverifizierer PX erfasst, einen S zugeordneten öffentlichen Schlüssel Q anhand von P, ID und PX berechnet und gemäß dem Signaturverifikationsvorgang des digitalen Signierungsverfahrens MB überprüft, ob es sich bei U um eine dem privaten Schlüsselpaar M zugeordnete gültige Signatur des öffentlichen Schlüssels Q handelt, wobei während der Signaturverifikation bei einer Operation, bei der M als Eingabe herangezogen werden soll, eine Verbindung von R und M als Eingabe verwendet wird.
-
Ferner ist vorgesehen, dass es sich bei dem digitalen Signierungsverfahren MA um ein Signierungsverfahren handelt, das auf dem diskreten Logarithmus-Problem basiert ist, wobei das Schlüsselerstellungszentrum aufgrund des diskreten Logarithmus-Problems ausgestaltet ist und einen Generator G einer zyklischen Gruppe der Ordnung q und ein Zufallselement in der Gruppe zum Ausführen von [o]G auswählt, wobei [o]G für o-malige Multiplikationsoperation von G in einer Anzahl von o gemäß dem Operationsregel der zyklischen Gruppe steht,
und dass es sich bei ms in dem öffentlichen und privaten Signaturschlüsselpaar (P, ms) um eine Ganzzahl ms handelt, die durch das Schlüsselerstellungszentrum zufällig erstellt wird, wobei die Bedingung 0<ms<q erfüllt wird und P=<G, H=[ms]G>.
-
Ferner ist vorgesehen, dass die digitale Signiereinrichtung ferner Folgendes umfasst:
- - eine Entschlüsselungseinheit zum Entschlüsseln der Nachricht, wobei die Nachricht w enthält und durch das Schlüsselerstellungszentrum mittels eines asymmetrischen Standard-Verschlüsselungsalgorithmus verschlüsselt wird, durch den Unterzeichner unter Verwendung von n dient, wobei beim Verschlüsseln der Nachricht, die w enthält, mittels eines asymmetrischen Standard-Verschlüsselungsalgorithmus X als öffentlicher Verschlüsselungsschlüssel verwendet wird.
-
Ferner ist vorgesehen, dass die Erstellungs- und Sendeeinheit Folgendes umfasst:
- - ein Erstellungs- und Berechnungsmodul, das zum zufälligen Erstellen einer Ganzzahl n und Berechnen von X=[n]G dient, wobei die Ganzzahl die Bedingung 0<n<q erfüllt,. Ferner ist vorgesehen, dass die Empfangseinheit Folgendes umfasst:
- - ein erstes k-Erstellungsmodul, das zum zufälligen Erstellen einer Ganzzahl k über das Schlüsselerstellungszentrum oder zum Ermitteln von k= HASH(F(ID, andere InformationI), ms) mod q durch Berechnen dient, wobei die Ganzzahl die Bedingung 0<k<q erfüllt, wobei die andere Information I die Erstellungsinformation der zyklischen Gruppe, G, H und X enthält und es sich bei F um eine Hash-Operation oder eine String-Verkettung handelt, wobei es sich bei HASH(F(ID, andere Information I), ms) mod q um eine Digest-Berechnung des verknüpften Werts von F(ID, andere Information I) und ms handelt und die Verkettungsreihenfolge F(ID, andere Information I)|| ms oder ms || F(ID, andere Information I) lauten kann, wobei alternativ dazu eine HMAC-Operation an F(ID, andere Information I) unter Verwendung von ms als Schlüssel erfolgt,
- - ein erstes Π-Berechnungsmodul, das zum Berechnen einer Vorsignatur Π =[k]G ± [n]G über das Schlüsselerstellungszentrum dient,
- - ein erstes R-Berechnungsmodul, das zum Berechnen einer Signaturzuordnung R=HASH(F(ID, andere Information A), Π), über das Schlüsselerstellungszentrum dient, wobei die andere Information A H umfasst,
- - ein erstes w-Berechnungsmodul, das zum Berechnen eines zweiten Teils w=(k ± R*ms) mod q oder (R*k ± ms) mod q des Signaturwerts über das Schlüsselerstellungszentrum dient,
- - ein erstes Erstellungsmodul, das zum Erstellen eines privaten Teil-Signaturschlüssels T=(Π, w) über das Schlüsselerstellungszentrum dient,
- - ein erstes Empfangsmodul, das zum Empfangen des privaten Teil-Signaturschlüssels T=(Π, w) dient.
-
Ferner ist vorgesehen, dass die Berechnungs- und Ermittlungseinheit Folgendes umfasst:
- - ein erstes Berechnungs- und Erstellungsmodul, das zum Erstellen eines Signaturschlüsselpaares (PX, S), das dem öffentlichen Schlüssel Q=Π ± [R] H zugeordnet ist, wenn w=(k ± R*ms) mod q, sodass S=(w ± n) mod q und PX=Π, und zum Erstellen eines Signaturschlüsselpaares (PX, S), das dem öffentlichen Schlüssel Q= [R]Π ± H zugeordnet ist, wenn w=(R*k ± ms) mod q, sodass S=(w ± R*n) mod q und PX=Π, dient. Ferner ist vorgesehen, dass die Empfangseinheit Folgendes umfasst:
- - ein zweites k-Erstellungsmodul, das zum zufälligen Erstellen der Ganzzahl k,über das Schlüsselerstellungszentrum oder zum Ermitteln von k= HASH(F(ID, andere InformationI), ms) mod q durch Berechnen dient, wobei die Ganzzahl die Bedingung 0<k<q erfüllt, wobei die andere Information I H und X enthält und es sich bei F um eine Hash-Operation oder eine String-Verkettung handelt, wobei es sich bei HASH(F(ID, andere Information I), ms) mod q um eine Digest-Berechnung des verknüpften Werts von F(ID, andere Information I) und ms handelt und die Verkettungsreihenfolge F(ID, andere Information I)|| ms oder ms || F(ID, andere Information I) lauten kann, wobei alternativ dazu eine HMAC-Operation an F(ID, andere Information I) unter Verwendung von ms als Schlüssel erfolgt,
- - ein zweites Π-Berechnungsmodul, das zum Berechnen einer Vorsignatur Π =[k]G über das Schlüsselerstellungszentrum dient,
- - ein zweites R-Berechnungsmodul, das zum Berechnen einer Signaturzuordnung R=HASH(F(ID, andere InformationA), Π) mod q über das Schlüsselerstellungszentrum dient, wobei die andere Information A X und H umfasst,
- - ein zweites w-Berechnungsmodul, das zum Berechnen eines zweiten Teils w=(k ± R*ms) mod q oder (R*k ± ms) mod q des Signaturwerts über das Schlüsselerstellungszentrum dient,
- - ein zweites Erstellungsmodul, das zum Erstellen eines privaten Teil-Signaturschlüssels T=(Π, w) über das Schlüsselerstellungszentrum dient,
- - ein zweites Empfangsmodul, das zum Empfangen des privaten Teil-Signaturschlüssels T=(Π, w) dient.
-
Ferner ist vorgesehen, dass die Berechnungs- und Ermittlungseinheit Folgendes umfasst:
- - ein zweites Berechnungs- und Erstellungsmodul, das zum Erstellen eines Signaturschlüsselpaares (PX, S), das dem öffentlichen Schlüssel Q=Π ± X ± [R] H zugeordnet ist, wenn w=(k ± R*ms) mod q, sodass S=(w ± n) mod q und PX= (Π, X), und zum Erstellen eines Signaturschlüsselpaares (PX, S), das dem öffentlichen Schlüssel Q=[R](Π ± X) ± H zugeordnet ist, wenn w=(R*k ± ms) mod q, sodass S=(w ± R*n) mod q und PX= (Π, X), dient.
-
Erfindungsgemäß wird ferner ein digitales Signiersystem bereitgestellt, das einen Unterzeichner, ein Schlüsselerstellungszentrum und einen Signaturverifizierer umfasst,
wobei der Unterzeichner ein Schlüsselpaar n und X erstellt und die ID und X an das Schlüsselerstellungszentrum abschickt,
wobei das Schlüsselerstellungszentrum mittels eines voreingestellten digitalen Signierungsverfahrens MA die Identifikations-ID signiert und der Signierungsvorgang Folgendes umfasst: Das Schlüsselerstellungszentrum erstellt ein privates und öffentliches Signaturschlüsselpaar (P, ms) zufällig erstellt, erzeugt eine Vorsignatur Π, erstellt einen Hash-Digest, der mindestens Π und ID umfasst und als Signaturzuordnung R dient, und erstellt schließlich einen zweiten Teil w des Signaturwerts, um einen Signaturwert (Π, w) mit zwei Teilen zu erhalten, wobei der Signaturwert als privater Teil-Signaturschlüssel T= (Π, w) herangezogen und der private Teil-Signaturschlüssel T an den Unterzeichner gesendet wird, und wobei das Schlüsselerstellungszentrum ferner P als öffentlicher Parameter des Kryptosystems heranzieht,
wobei der Unterzeichner ein Signaturschlüsselpaar (PX, S) durch Berechnen unter Verwendung von P, ID, T, n und X ermittelt, eine Nachricht M mittels des digitalen Signierungsverfahrens MB unter Verwendung von S als privater Signaturschlüssel signiert, einen Signaturwert U erstellt und (U, PX) als Identifikations-Signaturwert für die Nachricht M an den Signaturverifizierer übermittelt oder U als Signaturwert für die Nachricht M an den Signaturverifizierer sendet und PX veröffentlicht, wobei während der Signierung der Nachricht M bei einer Operation, bei der M als Eingabe herangezogen werden soll, eine Verbindung von R und M als Eingabe verwendet wird,
und wobei der Signaturverifizierer die Signatur für die Nachricht M verifiziert und die Signaturverifikationsvorgang Folgendes umfasst: Erfassen von PX, Berechnen eines S zugeordneten öffentlichen Schlüssels Q anhand von P, ID und PX und Überprüfen gemäß dem Signaturverifikationsvorgang des digitalen Signierungsverfahrens MB, ob es sich bei U um eine dem privaten Schlüsselpaar M zugeordnete gültige Signatur des öffentlichen Schlüssels Q handelt, wobei während der Signaturverifikation bei einer Operation, bei der M als Eingabe herangezogen werden soll, eine Verbindung von R und M als Eingabe verwendet wird.
-
Vorteilhafte Auswirkungen:
-
Bei dem erfindungsgemäßen digitalen Signierungsverfahren sowie der zugehörigen Einrichtung und dem zugehörigen System kann unter Verwendung eines beispielsweise auf EC-Schnorr basierten digitalen Signaturalgorithmus als Signaturalgorithmus des Schlüsselerstellungszentrums ein dem Benutzer zugeordneter privater Teil-Signaturschlüssel T erstellt und dann mittels eines digitalen Standard-Signaturalgorithmus wie z.B. ECDSA die Nachricht M signiert werden. Bei der Berechnung des zweiten Teils w des privaten Signaturschlüssels T wird eine Signaturzuordnung R verwendet, bei der es sich um einen Hash-Digest handelt, der mindestens eine Vorsignatur Π und die Identifikations-ID des Unterzeichners enthält. Beim Signieren der Nachricht M wird für eine Operation, bei der M als Eingabe herangezogen werden soll, die Verbindung von R und M als Eingabe verwendet und während der Signaturverifikation wird für eine Operation, bei der ursprünglich M als Eingabe herangezogen werden sollte, ebenfalls die Verbindung von R und M als Eingabe verwendet, womit die Sicherheitsfähigkeit der Signatur erhöht wird. Bei der vorliegenden Erfindung werden zwei Signaturalgorithmen unter Verwendung ein und desselben Mechanismus miteinander verbunden, womit sichergestellt wird, dass ein derart ausgestalteter vollständiger Algorithmus bekannten Angriffen effektiv widerstehen kann.
-
Figurenliste
-
- 1 ein schematisches Ablaufdiagramm eines digitalen Signierungsverfahrens nach einem Ausführungsbeispiel der vorliegenden Erfindung,
- 2 ein schematisches Ablaufdiagramm des Schritts S2 des digitalen Signierungsverfahrens nach einem Ausführungsbeispiel der vorliegenden Erfindung,
- 3 ein schematisches Ablaufdiagramm des Schritts S2 eines digitalen Signierungsverfahrens nach einem anderen Ausführungsbeispiel der vorliegenden Erfindung,
- 4 ein schematisches strukturelles Blockdiagramm einer digitalen Signiereinrichtung nach einem Ausführungsbeispiel der vorliegenden Erfindung,
- 5 ein schematisches strukturelles Blockdiagramm einer Erstellungs- und Sendeeinheit nach einem Ausführungsbeispiel der vorliegenden Erfindung,
- 6 ein schematisches strukturelles Blockdiagramm einer Empfangseinheit nach einem Ausführungsbeispiel der vorliegenden Erfindung,
- 7 ein schematisches strukturelles Blockdiagramm einer Empfangseinrichtung nach einem anderen Ausführungsbeispiel der vorliegenden Erfindung,
- 8 ein schematisches strukturelles Blockdiagramm eines digitalen Signiersystems nach einem Ausführungsbeispiel der vorliegenden Erfindung,
-
Unter Bezugnahme auf die beiliegenden Zeichnungen und anhand von Ausführungsbeispielen wird auf die Verwirklichung der Aufgabe, die Funktionsmerkmale und die Vorteile der Erfindung näher eingegangen.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Es versteht sich, dass die hierin beschriebenen spezifischen Ausführungsbeispiele lediglich zur Erklärung der vorliegenden Erfindung dienen, ohne diese einzuschränken.
-
Es wird auf 1 hingewiesen, wobei in einem Ausführungsbeispiel der vorliegenden Erfindung ein digitales Signierungsverfahren bereitgestellt wird, das die folgenden Schritte umfasst:
- - S1. Erstellen eines Schlüsselpaares n und X zufällig durch einen Unterzeichner und Abschicken von ihre Identifikations-ID und X an ein Schlüsselerstellungszentrum.
-
Im Schritt S1 handelt es sich bei dem Unterzeichner um ein intelligentes Gerät, beispielsweise ein Mobiltelefon, einen Computer und einen PDA. Bei dem vorstehenden Schlüsselerstellungszentrum handelt es sich um ein Schlüsselverwaltungszentrum, das einen wichtigen Bestandteil einer Public-Key-Infrastruktur darstellt und Schlüssel-Dienstleistungen wie Erstellung, Speicherung, Sicherung, Wiederherstellung und Abfrage der Schlüssel anbietet, womit das Problem der Schlüsselverwaltung bei umfangreicher Anwendung kryptografischer Technologie auf verteilte Enterprise-Anwendungen gelöst werden kann. Bei der Identifikations-ID handelt es sich also um eine dem Unterzeichner zugeordnete ID, wobei eine Identifikations-ID einem einzigen Unterzeichner eindeutig zugeordnet ist.
- - S2. Empfangen eines durch das Schlüsselerstellungszentrum erstellten, der Identifikations-ID des Unterzeichners zugeordneten privaten Teil-Signaturschlüssel T=(Π, w), wobei es sich bei (Π, w) um einen Signaturwert handelt, der sich aus Signieren der ID durch das Schlüsselerstellungszentrum mittels eines digitalen Signierungsverfahrens MA ergibt, wobei das Schlüsselerstellungszentrum ein privates und öffentliches Signaturschlüsselpaar (P, ms) zufällig erstellt, eine Vorsignatur Π erzeugt, danach einen Hash-Digest erstellt, der mindestens Π und ID umfasst und als Signaturzuordnung R dient, und schließlich einen zweiten Teil w des Signaturwerts erstellt, wobei das Schlüsselerstellungszentrum P als öffentlicher Parameter des Kryptosystems heranzieht. Im Schritt S2 handelt es sich bei dem digitalen Signierungsverfahren MA um ein auf dem diskreten Logarithmus-Problem basiertes Signierungsverfahren. Das Schlüsselerstellungszentrum ist aufgrund des diskreten Logarithmus-Problems ausgestaltet und wählt einen Generator G einer zyklischen Gruppe der Ordnung q und ein Zufallselement in der Gruppe zum Ausführen von [o]G aus, wobei [o]G für o-malige Multiplikationsoperation von G in einer Anzahl von o gemäß dem Operationsregel der zyklischen Gruppe steht. Anhand von der öffentlichen Parameter P, der Identifikations-ID und PX kann der S als privatem Schlüssel zugeordnete öffentliche Schlüssel Q=[S]G berechnet werden. Bei ms in dem öffentlichen und privaten Signaturschlüsselpaar (P, ms) handelt es sich um eine Ganzzahl ms handelt, die durch das Schlüsselerstellungszentrum zufällig erstellt wird, wobei die Bedingung 0<ms<q erfüllt wird und P=<G, H=[ms]G>. In dem vorliegenden Schritt enthält der zweite Teil w des privaten Teil-Signaturschlüssels T eine Signaturzuordnung R (Hash-Digest, der zumindest Π und ID umfasst) und durch Hinzufügen der Signaturzuordnung R bei dem darauf folgenden Signaturvorgang kann die Sicherheitsfähigkeit der Signatur verbessert werden.
- - S3. Ermitteln eines Signaturschlüsselpaares (PX, S) durch Berechnen unter Verwendung von P, ID, T, n und X.
-
Vor dem Schritt S3 umfasst das Verfahren Entschlüsseln der Nachricht, die w enthält und durch das Schlüsselerstellungszentrum mittels eines asymmetrischen Standard-Verschlüsselungsalgorithmus verschlüsselt wird, durch den Unterzeichner unter Verwendung von n, wobei beim Verschlüsseln der Nachricht, die w enthält, mittels eines asymmetrischen Standard-Verschlüsselungsalgorithmus X als öffentlicher Verschlüsselungsschlüssel verwendet wird. Mit anderen Worten verschlüsselt das Schlüsselerstellungszentrum den an den Unterzeichner gesendeten privaten Teil-Signaturschlüssel T=(Π, w) und dabei wird vor allem die Information, die w enthält, verschlüsselt. Als Verschlüsselungsverfahren wird ein asymmetrischer Standard-Verschlüsselungsalgorithmus, beispielsweise ECIES-Verschlüsselungsalgorithmus eingesetzt.
- - S4. Signieren einer Nachricht M mittels des digitalen Signierungsverfahrens MB unter Verwendung von S als privater Signaturschlüssel, Erstellen eines Signaturwerts U und Übermitteln von (U, PX) als Signaturwert für die Nachricht M an einen Signaturverifizierer oder Senden von U als Signaturwert für die Nachricht M an den Signaturverifizierer und Veröffentlichen von PX, wobei während der Signierung der Nachricht M bei einer Operation, bei der M als Eingabe herangezogen werden soll, eine Verbindung von R und M als Eingabe verwendet wird.
-
Im Schritt S4 kann die Sicherheitsfähigkeit der digitalen Signatur erhöht werden, indem während der Signierung der Nachricht M bei einer Operation, bei der M als Eingabe herangezogen werden soll, eine Verbindung von R und M als Eingabe verwendet wird.
- - S5. Verifizieren der Signatur für die Nachricht M über den Signaturverifizierer, wobei der Signaturverifizierer PX erfasst, einen S zugeordneten öffentlichen Schlüssel Q anhand von P, ID und PX berechnet und gemäß dem Signaturverifikationsvorgang des digitalen Signierungsverfahrens MB überprüft, ob es sich bei U um eine dem privaten Schlüsselpaar M zugeordnete gültige Signatur des öffentlichen Schlüssels Q handelt, wobei während der Signaturverifikation bei einer Operation, bei der M als Eingabe herangezogen werden soll, eine Verbindung von R und M als Eingabe verwendet wird.
-
Im Schritt S5 wird die Sicherheitsfähigkeit der digitalen Signatur erhöht, indem während Signaturverifikation bei einer Operation, bei der M als Eingabe herangezogen werden soll, ebenfalls eine Verbindung von R und M als Eingabe verwendet wird.
-
In dem vorliegenden Ausführungsbeispiel umfasst das zufällige Erstellen eines Schlüsselpaares n und X Folgendes: Zufälliges Erstellen einer Ganzzahl n durch den Unterzeichner und Berechnen von X=[n]G, wobei die Ganzzahl die Bedingung 0<n<q erfüllt.
-
Wie sich aus 2 ergibt, ist in dem vorliegenden Ausführungsbeispiel vorgesehen, dass der Schritt S2 des Empfangens eines durch das Schlüsselerstellungszentrum erstellten, der Identifikations-ID des Unterzeichners zugeordneten privaten Teil-Signaturschlüssel T=(Π, w) konkret Folgendes umfasst:
- - S201. Zufälliges Erstellen einer Ganzzahl k über das Schlüsselerstellungszentrum oder Ermitteln von k= HASH(F(ID, andere InformationI), ms) mod q durch Berechnen, wobei die Ganzzahl die Bedingung 0<k<q erfüllt, wobei die andere Information I H und X enthält und es sich bei F um eine Hash-Operation oder eine String-Verkettung handelt, wobei es sich bei HASH(F(ID, andere Information I), ms) mod q um eine Digest-Berechnung des verknüpften Werts von F(ID, andere Information I) und ms handelt und die Verkettungsreihenfolge F(ID, andere Information I)|| ms oder ms || F(ID, andere Information I) lauten kann, wobei alternativ dazu eine HMAC-Operation an F(ID, andere Information I) unter Verwendung von ms als Schlüssel erfolgt,
- - S202. Berechnen einer Vorsignatur Π =[k]G ± [n]G über das Schlüsselerstellungszentrum,
- - S203. Berechnen einer Signaturzuordnung R=HASH(F(ID, andere Information A), Π), über das Schlüsselerstellungszentrum, wobei die andere Information A H umfasst,
- - S204. Berechnen eines zweiten Teils w=(k ± R*ms) mod q oder (R*k ± ms) mod q des Signaturwerts über das Schlüsselerstellungszentrum,
- - S205. Erstellen eines privaten Teil-Signaturschlüssels T=(Π, w) über das Schlüsselerstellungszentrum,
- - S206. Empfangen des privaten Teil-Signaturschlüssels T=(Π, w).
-
In dem vorliegenden Ausführungsbeispiel umfasst der Schritt S3 des Ermittelns eines Signaturschlüsselpaares (PX, S) durch Berechnen unter Verwendung von P, ID, T, n und X Folgendes:
- - S301. Erstellen eines Signaturschlüsselpaares (PX, S), das dem öffentlichen Schlüssel Q=Π ± [R] H zugeordnet ist, wenn w=k ± R*ms) mod q, sodass S=(w ± n) mod q und PX=Π,
- - S302. Erstellen eines Signaturschlüsselpaares (PX, S), das dem öffentlichen Schlüssel Q= [P]Π ± H zugeordnet ist, wenn w=(R*k ± ms) mod q, sodass S=(w ± R*n) mod q und PX=Π.
-
Wie sich aus 3 ergibt, ist in einem anderen Ausführungsbeispiel vorgesehen, dass der Schritt S2 des Empfangens eines durch das Schlüsselerstellungszentrum erstellten, der Identifikations-ID des Unterzeichners zugeordneten privaten Teil-Signaturschlüssel T=(Π, w) konkret Folgendes umfasst:
- - S211. Zufälliges Erstellen einer Ganzzahl k, die die Bedingung 0<k<q erfüllt, über das Schlüsselerstellungszentrum oder Ermitteln von k= HASH(F(ID, andere InformationI), ms) mod q durch Berechnen, wobei die andere Information I H und X enthält und es sich bei F um eine Hash-Operation oder eine String-Verkettung handelt, wobei es sich bei HASH(F(ID, andere Information I), ms) mod q um eine Digest-Berechnung des verknüpften Werts von F(ID, andere Information I) und ms handelt und die Verkettungsreihenfolge F(ID, andere Information I)|| ms oder ms || F(ID, andere Information I) lauten kann, wobei alternativ dazu eine HMAC-Operation an F(ID, andere Information I) unter Verwendung von ms als Schlüssel erfolgt,
- - S212. Berechnen einer Vorsignatur Π =[k]G über das Schlüsselerstellungszentrum,
- - S213. Berechnen einer Signaturzuordnung R=HASH(F(ID, andere InformationA), Π) mod q über das Schlüsselerstellungszentrum, wobei die andere Information A X und H umfasst,
- - S214. Berechnen eines zweiten Teils w=(k ± R*ms) mod q oder (R*k ± ms) mod q des Signaturwerts über das Schlüsselerstellungszentrum,
- - S215. Erstellen eines privaten Teil-Signaturschlüssels T=(Π, w) über das Schlüsselerstellungszentrum,
- - S216. Empfangen des privaten Teil-Signaturschlüssels T=(Π, w).
-
In dem vorliegenden Ausführungsbeispiel umfasst der Schritt S3 des Ermittelns eines Signaturschlüsselpaares (PX, S) durch Berechnen unter Verwendung von P, ID, T, n und X Folgendes:
- - S311. Erstellen eines Signaturschlüsselpaares (PX, S), das dem öffentlichen Schlüssel Q=Π ± X ± [R] H zugeordnet ist, wenn w=(k ± R*ms) mod q, sodass S=(w ± n) mod q und PX=(Π, X),
- - S312. Erstellen eines Signaturschlüsselpaares (PX, S), das dem öffentlichen Schlüssel Q=[R](Π ± X) ± H zugeordnet ist, wenn w=(R*k ± ms) mod q, sodass S=(w ± R*n) mod q und PX=(Π, X).
-
Die vorliegende Erfindung stellt ferner ein erstes konkretes Ausführungsbeispiel bereit, bei dem das Signierungsverfahren auf SM2 basiert ist und konkret wie folgt lautet:
- - S110. Erstellen einer Ganzzahl n, die die Bedingung 0<n<q erfüllt, durch den Unterzeichner und Berechnen von X=[n]G, wonach X und die eigene Identifikations-ID dem Schlüsselerstellungszentrum bereitgestellt werden.
- - S120. Wählen des Signaturalgorithmus EC-Schnorr als Signierungsverfahren MA durch das Schlüsselerstellungszentrum. Wählen einer von der SM2-Norm vorgegebenen elliptischen Kurve E: Y^2=X^3+a*X+b, Heranziehen einer Punktgruppe der Ordnung q darauf als zyklische Gruppe, Zufälliges Auswählen eines Generators G, Zufälliges Erstellen einer Ganzzahl ms, die die Bedingung 0<ms<q erfüllt, Berechnen von H=[ms]G und Einstellen eines Systemparameters P=<G, H=[ms]G>.
-
Der Schritt des Erstellens eines der ID zugeordneten privaten Teil-Signaturschlüssels T über das Schlüsselerstellungszentrum lautet wie folgt:
- A. Zufälliges Erstellen einer Ganzzahl k, die die Bedingung 0<k<q erfüllt, durch das Schlüsselerstellungszentrum,
- B. Berechnen einer Vorsignatur Π =[k]G+[n]G durch das Schlüsselerstellungszentrum,
- C. Berechnen von Z=SM3(ID_LEN||ID||a||b||xG||yG||xQ||yQ) durch das Schlüsselerstellungszentrum und Berechnen eines Signaturzuordnungswerts R=SM3(Z,xΠ||yΠ) mod q, wobei ID_LEN für die Länge der ID und xG, yG, usw. für den X-Achsenwert bzw. den Y-Achsenwert des Punktes G, usw. stehen,
- D. Berechnen eines zweiten Teils w=(k-R*ms) mod q des Signaturwerts durch das Schlüsselerstellungszentrum, wobei Q wie folgt berechnet wird: Q=Π-[R]H;,
- E. Erstellen eines privaten Teil-Signaturschlüssels T=(Π, w) durch das Schlüsselerstellungszentrum.
- - S130. Berechnen von S =(w+n) mod q durch den Unterzeichner, Einstellen von PX=Π, Erstellen eines Signaturschlüsselpaares (Π, S) und Signieren der Nachricht M unter Verwendung des SM2-Algorithmus als MB. Der Schritt lautet konkret wie folgt:
- A. Berechnen von Z=SM3(ID_LEN||ID||a||b||xG||yG||xQ||yQ) und R=SM3(Z,xΠ||yΠ) mod q,
- B. Berechnen von e=SM3(R||M),
- C. Zufälliges Erstellen einer Ganzzahl z, die die Bedingung 0<z<q erfüllt,
- D. Berechnen von A=[z]G,
- E. Berechnen von r=(e+xA) mod q, w = (z-r*S)/(S+1) mod q und der SM2-Signatur U=(r, w),
- F. Erstellen einer Identifikations-Signatur (U=(r, w), Π).
- - S140. Verifizieren der Korrektheit der durch die ID erstellte Signatur (U=(r, w), Π) für die Nachricht M durch den Signaturverifizierer. Der Schritt lautet konkret wie folgt:
- A. Berechnen von Z=SM3(ID_LEN||ID||a||b||xG||yG||xQ||yQ) und R=SM3(Z,xΠ||yΠ) mod q,
- B. Berechnen von e=SM3(R||M),
- C. Berechnen von Q=Π-[R]H,
- D. Berechnen von t=(r+w) mod q,
- E. Berechnen von V=[w]G+[t]Q,
- F. Berechnen von h=(e+xV) mod q,
- G. Überprüfen, ob h=r, wobei die Signatur korrekt, wenn dies der Fall ist, und ansonsten falsch ist.
-
Die vorliegende Erfindung stellt ferner ein zweites konkretes Ausführungsbeispiel bereit, bei dem das Signierungsverfahren auf ECDSA basiert ist und konkret wie folgt lautet:
- - S210. Erstellen einer Ganzzahl n durch den Unterzeichner und Berechnen von X=[n]G, wobei die Ganzzahl die Bedingung 0<n<q erfüllt, wonach X und die eigene Identifikations-ID dem Schlüsselerstellungszentrum bereitgestellt werden.
- - S220. Wählen des Signaturalgorithmus EC-Schnorr als Signierungsverfahren MA durch das Schlüsselerstellungszentrum. Wählen einer von der SM2-Norm vorgegebenen elliptischen Kurve E: Y^2=X^3+a*X+b, Heranziehen einer Punktgruppe der Ordnung q darauf als zyklische Gruppe, Zufälliges Auswählen eines Generators G, Zufälliges Erstellen einer Ganzzahl ms, die die Bedingung 0<ms<q erfüllt, Berechnen von H=[ms]G und Einstellen eines Systemparameters P=<G, H=[ms]G>,
-
Der Schritt des Erstellens eines der ID zugeordneten privaten Teil-Signaturschlüssels T über das Schlüsselerstellungszentrum lautet wie folgt:
- A. Zufälliges Erstellen einer Ganzzahl k durch das Schlüsselerstellungszentrum, wobei die Ganzzahl die Bedingung 0<k<q erfüllt,
- B. Berechnen einer Vorsignatur Π =[k]G+[n]G durch das Schlüsselerstellungszentrum,
- C. Berechnen von Z=SHA256(ID_LEN||ID||a||b||xG||yG||xQ||yQ) durch das Schlüsselerstellungszentrum und Berechnen eines Signaturzuordnungswerts R=SHA256(Z,xΠ||yΠ) mod q, wobei ID_LEN für die Länge der ID und xG, yG, usw. für den X-Achsenwert bzw. den Y-Achsenwert des Punktes G, usw. stehen, und wobei SHA256(A,B) für einen Digest des mittels des SHA256-Algorithmus berechneten verbundenen Werts von A und B steht. Die Verbindung wird wie folgt hergestellt: A||B oder B||A,
- D. Berechnen eines zweiten Teils w=(k-R*ms) mod q des Signaturwerts durch das Schlüsselerstellungszentrum, wobei Q wie folgt berechnet wird: Q=Π+[R]H;,
- E. Erstellen eines privaten Teil-Signaturschlüssels T=(Π, w) durch das Schlüsselerstellungszentrum.
- - S230. Berechnen von S =(w+n) mod q durch den Unterzeichner, Einstellen von PX=Π, Erstellen eines Signaturschlüsselpaares (Π, S) und Signieren der Nachricht M unter Verwendung des ECDSA-Algorithmus als MB. Der Schritt lautet konkret wie folgt:
- A. Berechnen von Z=SHA256(ID_LEN||ID||a||b||xG||yG||xQ||yQ) und R=SHA256(Z,xΠ||yΠ) mod q,
- B. Berechnen von e=SHA256(R||M),
- C. Zufälliges Erstellen einer Ganzzahl z, die die Bedingung 0<z<q erfüllt,
- D. Berechnen von A=[z]G,
- E. Berechnen von r=xΛmod q, w = (r*(S+n)+e)/z mod q und der ECDSA-Signatur U=(r, w),
- F. Erstellen einer Identifikations-Signatur (U=(r, w), Π).
- - S240. Verifizieren der Korrektheit der durch die ID erstellte Signatur (U=(r, w), Π) für die Nachricht M durch den Signaturverifizierer. Der Schritt lautet konkret wie folgt:
- A. Berechnen von Z=SHA256(ID_LEN||ID||a||b||xG||yG||xQ||yQ) und R=SHA256(Z,xΠ||yΠ) mod q,
- B. Berechnen von Q=Π+[R]H,
- C. Berechnen von e=SHA256(R||M),
- D. Berechnen von u=e/w mod q und v=r/w,
- E. Berechnen von V=[u]G+[v]Q,
- F. Berechnen von h=xV mod q,
- G. Überprüfen, ob h=r, wobei die Signatur korrekt, wenn dies der Fall ist, und ansonsten falsch ist.
-
Die vorliegende Erfindung stellt ferner ein drittes konkretes Ausführungsbeispiel bereit, bei dem das Signierungsverfahren auf ECDSA basiert ist und konkret wie folgt lautet:
- - S310. Erstellen einer Ganzzahl n, durch den Unterzeichner und Berechnen von X=[n]G, wobei die Ganzzahl die Bedingung 0<n<q erfüllt, wonach X und die eigene Identifikations-ID dem Schlüsselerstellungszentrum bereitgestellt werden.
- - S320. Wählen einer Variante des Signaturalgorithmus EC-Schnorr als Signierungsverfahren MA durch das Schlüsselerstellungszentrum. Wählen einer von der SM2-Norm vorgegebenen elliptischen Kurve E: Y^2=X^3+a*X+b, Heranziehen einer Punktgruppe der Ordnung q darauf als zyklische Gruppe, Zufälliges Auswählen eines Generators G, Zufälliges Erstellen einer Ganzzahl ms, die die Bedingung 0<ms<q erfüllt, Berechnen von H=[ms]G und Einstellen eines Systemparameters P=<G, H=[ms]G>.
-
Der Schritt des Erstellens eines der ID zugeordneten privaten Teil-Signaturschlüssels T über das Schlüsselerstellungszentrum lautet wie folgt:
- A. Berechnen von k= SHA256 (ID||G|| H||[n]G, ms) durch das Schlüsselerstellungszentrum,
- B. Berechnen einer Vorsignatur Π =[k]G+[n]G durch das Schlüsselerstellungszentrum,
- C. Berechnen von Z=SHA256(xG||yG||xQ||yQ||ID) durch das Schlüsselerstellungszentrum und Berechnen eines Signaturzuordnungswerts R=SHA256(Z,xΠ||yΠ) mod q, wobei xG, yG, usw. für den X-Achsenwert bzw. den Y-Achsenwert des Punktes G, usw. stehen, und wobei SHA256(A,B) für einen Digest des mittels des SHA256-Algorithmus berechneten verbundenen Werts von A und B steht. Die Verbindung wird wie folgt hergestellt: A||B oder B||A,
- D. Berechnen eines zweiten Teils w=(R*k+ms) mod q des Signaturwerts durch das Schlüsselerstellungszentrum, wobei Q wie folgt berechnet wird: Q=Π+[R]H;,
- E. Erstellen eines privaten Teil-Signaturschlüssels T=(Π, w) durch das Schlüsselerstellungszentrum,
- F. Verschlüsseln von w durch das Schlüsselerstellungszentrum unter Verwendung von X als öffentlicher Schlüssel mittels von ECIES und Ausgeben eines Geheimtexts C,
- G. Entschlüsseln von C durch den Unterzeichner unter Verwendung von n als privater Schlüssel gemäß dem ECIES-Verfahren, um w zu erhalten,
- - S330. Berechnen von S=(w+R*n) mod q durch den Unterzeichner, Einstellen von PX=Π, Erstellen eines Signaturschlüsselpaares (Π, S) und Signieren der Nachricht M unter Verwendung des ECDSA-Algorithmus als MB. Der Schritt lautet konkret wie folgt:
- A. Berechnen von Z=SHA256(xG||yG||xQ||yQ|| ID) und R= SHA256 (Z,xΠ||yΠ) mod q,
- B. Berechnen von e=SHA256(R||M),
- C. Zufälliges Erstellen einer Ganzzahl z, die die Bedingung 0<z<q erfüllt,
- D. Berechnen von A=[z]G,
- E. Berechnen von r=xΛmod q, w = (r*(S+R*n)+e)/z mod q und der ECDSA-Signatur U=(r, w),
- F. Erstellen einer Identifikations-Signatur (U=(r, w), Π).
- - S340. Verifizieren der Korrektheit der durch die ID erstellte Signatur (U=(r, w), Π) für die Nachricht M durch den Signaturverifizierer. Der Schritt lautet konkret wie folgt:
- A. Berechnen von Z=SHA256(xG||yG||xQ||yQ|| ID) und R= SHA256 (Z,xΠ||yΠ) mod q,
- B. Berechnen von Q=[R]Π+H,
- C. Berechnen von e=SHA256(R||M),
- D. Berechnen von u=e/w mod q und v=r/w,
- E. Berechnen von V=[u]G+[v]Q,
- F. Berechnen von h=xV mod q,
- G. Überprüfen, ob h=r, wobei die Signatur korrekt, wenn dies der Fall ist, und ansonsten falsch ist.
-
Die vorliegende Erfindung stellt ferner ein viertes konkretes Ausführungsbeispiel bereit, bei dem das Signierungsverfahren auf EC-SDSA basiert ist und konkret wie folgt lautet:
- - S410. Erstellen einer Ganzzahl n, durch den Unterzeichner und Berechnen von X=[n]G, wobei die Ganzzahl die Bedingung 0<n<q erfüllt, wonach X und die eigene Identifikations-ID dem Schlüsselerstellungszentrum bereitgestellt werden.
- - S420. Wählen des Signaturalgorithmus EC-Schnorr als Signierungsverfahren MA durch das Schlüsselerstellungszentrum. Wählen einer von der SM2-Norm vorgegebenen elliptischen Kurve E: Y^2=X^3+a*X+b, Heranziehen einer Punktgruppe der Ordnung q darauf als zyklische Gruppe, Zufälliges Auswählen eines Generators G, Zufälliges Erstellen einer Ganzzahl ms, die die Bedingung 0<ms<q erfüllt, Berechnen von H=[ms]G und Einstellen eines Systemparameters P=<G, H=[ms]G>.
-
Der Schritt des Erstellens eines der ID zugeordneten privaten Teil-Identifikationsschlüssels T über das Schlüsselerstellungszentrum lautet wie folgt:
- A. Zufälliges Erstellen einer Ganzzahl k durch das Schlüsselerstellungszentrum, wobei die Ganzzahl die Bedingung 0<k<q erfüllt,
- B. Berechnen einer Vorsignatur Π =[k]G+[n]G durch das Schlüsselerstellungszentrum,
- C. Berechnen von Z=SHA256(ID_LEN||ID||a||b||xG||yG||xQ||yQ) durch das Schlüsselerstellungszentrum und Berechnen eines Signaturzuordnungswerts R=SHA256(Z,xΠ||yΠ) mod q, wobei ID_LEN für die Länge der ID und xG, yG, usw. für den X-Achsenwert bzw. den Y-Achsenwert des Punktes G, usw. stehen,
- D. Berechnen eines zweiten Teils w=(k-R*ms) mod q des Signaturwerts durch das Schlüsselerstellungszentrum, wobei Q wie folgt berechnet wird: Q=Π+[R]H;,
- E. Erstellen eines privaten Teil-Signaturschlüssels T=(Π, w) durch das Schlüsselerstellungszentrum.
- - S430. Berechnen von S =(w+n) mod q und PX=Π, durch den Unterzeichner, Erstellen eines Signaturschlüsselpaares (Π, S) und Signieren der Nachricht M unter Verwendung des Algorithmus EC-SDSA als MB. Der Schritt lautet konkret wie folgt:
- A. Berechnen von Z=SHA256(ID_LEN||ID||a||b||xG||yG||xQ||yQ) und R=SHA256(Z,xΠ||yΠ) mod q,
- B. Zufälliges Erstellen einer Ganzzahl z, die die Bedingung 0<z<q erfüllt,
- C. Berechnen von Λ=[z]G,
- D. Berechnen von e=SHA256(A||R||M),
- E. Berechnen von r=e, w = (z+e*S) mod q und der EC-SDSA-Signatur U=(r, w),
- F. Erstellen einer Signatur U=(r, w).
- - S440. Verifizieren der Korrektheit der durch die ID erstellte Signatur U=(r, w) für die Nachricht M durch den Signaturverifizierer. Der Schritt lautet konkret wie folgt:
- A. Erfassen eines durch die ID veröffentlichen öffentlichen Signaturschlüssels Π,
- B. Berechnen von Z=SHA256(ID_LEN||ID||a||b||xG||yG||xQ||yQ) und R=SHA256(Z,xΠ||yΠ) mod q,
- C. Berechnen von Q=Π+[R]H,
- D. Berechnen von Λ=[w] G+[r]Q,
- D. Berechnen von e=SHA256(A||||R||M),
- G. Überprüfen, ob e=r, wobei die Signatur korrekt, wenn dies der Fall ist, und ansonsten falsch ist.
-
Die vorliegende Erfindung stellt ferner ein fünftes konkretes Ausführungsbeispiel bereit, bei dem das Signierungsverfahren auf SM2 basiert ist und konkret wie folgt lautet:
- - S510. Erstellen einer Ganzzahl n, die die Bedingung 0<n<q erfüllt, durch den Unterzeichner und Berechnen von X=[n]G, wonach X und die eigene Identifikations-ID dem Schlüsselerstellungszentrum bereitgestellt werden.
- - S520. Wählen des Signaturalgorithmus EC-Schnorr als Signierungsverfahren MA durch das Schlüsselerstellungszentrum. Wählen einer von der SM2-Norm vorgegebenen elliptischen Kurve E: Y^2=X^3+a*X+b, Heranziehen einer Punktgruppe der Ordnung q darauf als zyklische Gruppe, Zufälliges Auswählen eines Generators G, Zufälliges Erstellen einer Ganzzahl ms, Berechnen von H=[ms]G und Einstellen eines Systemparameters P=<G, H=[ms]G>, wobei die Ganzzahl die Bedingung 0<ms<q erfüllt,.
-
Der Schritt des Erstellens eines der ID zugeordneten privaten Teil-Signaturschlüssels T über das Schlüsselerstellungszentrum lautet wie folgt:
- A. Zufälliges Erstellen einer Ganzzahl k durch das Schlüsselerstellungszentrum, wobei die Ganzzahl die Bedingung 0<k<q erfüllt,
- B. Berechnen einer Vorsignatur Π =[k]G durch das Schlüsselerstellungszentrum,
- C. Berechnen von Z=SM3(ID_LEN||ID||a||b||xG||yG||xQ||yQ||xX||yX) durch das Schlüsselerstellungszentrum und Berechnen eines Signaturzuordnungswerts R=SM3(Z,xΠ|Π) mod q,
- D. Berechnen eines zweiten Teils w=(k-R*ms) mod q des Signaturwerts durch das Schlüsselerstellungszentrum, wobei Q wie folgt berechnet wird: Q=II+X -[R]H;,
- E. Erstellen eines privaten Teil-Signaturschlüssels T=(Π, w) durch das Schlüsselerstellungszentrum.
- - S530. Berechnen von S =(w+n) mod q durch den Unterzeichner, Einstellen von PX=(Π,X), Erstellen eines Signaturschlüsselpaares ((Π,X), S) und Signieren der Nachricht M unter Verwendung des SM2-Algorithmus als MB. Der Schritt lautet konkret wie folgt:
- A. Berechnen von Z=SM3(ID_LEN||ID||a||b||xG||yG||xQ||yQ||xX||yX) und R=SM3(Z,xΠ||yΠ) mod q,
- B. Berechnen von e=SM3(R||M),
- C. Zufälliges Erstellen einer Ganzzahl z, die die Bedingung 0<z<q erfüllt,
- D. Berechnen von A=[z]G,
- E. Berechnen von r=(e+xΛ) mod q, w = (z-r*S)/(S+1) mod q und der SM2-Signatur U=(r, w),
- F. Erstellen einer Identifikations-Signatur (U=(r, w), (Π,X)).
- - S540. Verifizieren der Korrektheit der durch die ID erstellte Signatur (U=(r, w), (Π,X)) für die Nachricht M durch den Signaturverifizierer. Der Schritt lautet konkret wie folgt:
- A. Berechnen von Z=SM3(ID_LEN||ID||a||b||xG||yG||xQ||yQ||xX||yX) und R=SM3(Z,xΠ||yΠ) mod q,
- B. Berechnen von e=SM3(R||M),
- C. Berechnen von Q=n+ X-[R]H,
- D. Berechnen von t=(r+w) mod q,
- E. Berechnen von V=[w]G+[t]Q,
- F. Berechnen von h=(e+xV) mod q,
- G. Überprüfen, ob h=r, wobei die Signatur korrekt, wenn dies der Fall ist, und ansonsten falsch ist.
-
Bei dem erfindungsgemäßen digitalen Signierungsverfahren ist vorgesehen, dass während einer durch den Signaturalgorithmus MB vorgegebenen Signaturoperation der Nachricht M als Ersatz für M die mit der Signaturzuordnung R, die während einer durch das Schlüsselerstellungszentrum ausgeführten Operation gemäß dem Signaturalgorithmus MA berechnet wird, verbundene Nachricht M in die einschlägige Operation miteinbezogen wird, wobei während der Signaturverifikation für eine Operation, bei der ursprünglich M als Eingabe herangezogen werden sollte, ebenfalls die Verbindung von R und M als Eingabe verwendet wird. Somit können Angriffen während der Kombination zweier Signaturalgorithmen widerstanden werden, was zu erhöhter Sicherheitsfähigkeit des Signierungsverfahrens beiträgt.
-
Die vorliegende Erfindung stellt ferner ein sechstes konkretes Ausführungsbeispiel bereit, bei dem das Signierungsverfahren auf einer Variante von ECDSA basiert ist und konkret wie folgt lautet:
- - S610. Erstellen einer Ganzzahl n durch den Unterzeichner und Berechnen von X=[n]G, wobei die Ganzzahl die Bedingung 0<n<q erfüllt, wonach X und die eigene Identifikations-ID dem Schlüsselerstellungszentrum bereitgestellt werden.
- - S620. Wählen des Signaturalgorithmus EC-Schnorr als Signierungsverfahren MA durch das Schlüsselerstellungszentrum. Wählen einer von der SM2-Norm vorgegebenen elliptischen Kurve E: Y^2=X^3+a*X+b, Heranziehen einer Punktgruppe der Ordnung q darauf als zyklische Gruppe, Zufälliges Auswählen eines Generators G, Zufälliges Erstellen einer Ganzzahl ms, die die Bedingung 0<ms<q erfüllt, Berechnen von H=[ms]G und Einstellen eines Systemparameters P=<G, H=[ms]G>.
-
Der Schritt des Erstellens eines der ID zugeordneten privaten Teil-Signaturschlüssels T über das Schlüsselerstellungszentrum lautet wie folgt:
- A. Zufälliges Erstellen einer Ganzzahl k, die die Bedingung 0<k<q erfüllt, durch das Schlüsselerstellungszentrum,
- B. Berechnen einer Vorsignatur Π =[k]G+[n]G durch das Schlüsselerstellungszentrum,
- C. Berechnen von Z=SHA256(xG||yG||xQ||yQ||ID) durch das Schlüsselerstellungszentrum und Berechnen eines Signaturzuordnungswerts R=SHA256(Z,xΠ||yΠ) mod q, wobei xG, yG, usw. für den X-Achsenwert bzw. den Y-Achsenwert des Punktes G, usw. stehen, und wobei SHA256(A,B) für einen Digest des mittels des SHA256-Algorithmus berechneten verbundenen Werts von A und B steht. Die Verbindung wird wie folgt hergestellt: A||B oder B||A,
- D. Berechnen eines zweiten Teils w=(k-R*ms) mod q des Signaturwerts durch das Schlüsselerstellungszentrum, wobei Q wie folgt berechnet wird: Q=Π+[R]H,
- E. Erstellen eines privaten Teil-Signaturschlüssels T=(Π, w) durch das Schlüsselerstellungszentrum,
- - S630. Berechnen von S=(w+R*n) mod q durch den Unterzeichner, Einstellen von PX=Π, Erstellen eines Signaturschlüsselpaares (Π, S) und Signieren der Nachricht M unter Verwendung einer Variante des ECDSA-Algorithmus als MB. Der Schritt lautet konkret wie folgt:
- A. Berechnen von Z=SHA256(xG||yG||xQ||yQ|| ID) und R= SHA256 (Z,xΠ||yΠ) mod q,
- B. Zufälliges Erstellen einer Ganzzahl z, die die Bedingung 0<z<q erfüllt,
- C. Berechnen von A=[z]G,
- D. Berechnen von r=xΛ, e= SHA256 (r||||R||M), w = (r*(S+R*n)+e)/z mod q und der ECDSA-Signatur U=(r, w),
- E. Erstellen einer Identifikations-Signatur (U=(r, w), Π).
- - S640. Verifizieren der Korrektheit der durch die ID erstellte Signatur (U=(r, w), Π) für die Nachricht M durch den Signaturverifizierer. Der Schritt lautet konkret wie folgt:
- A. Berechnen von Z=SHA256(xG||yG||xQ||yQ|| ID) und R= SHA256 (Z,xΠ||yΠ) mod q,
- B. Berechnen von Q=[R]Π+H,
- C. Berechnen von e=SHA256(r||R||M),
- D. Berechnen von u=e/w mod q und v=r/w,
- E. Berechnen von V=[u]G+[v]Q,
- F. Berechnen von h=xV,
- G. Überprüfen, ob h=r, wobei die Signatur korrekt, wenn dies der Fall ist, und ansonsten falsch ist.
-
Es wird auf 4 hingewiesen, wobei die vorliegende Erfindung ferner eine dem vorstehenden digitalen Signierungsverfahren zugeordnete digitale Signiereinrichtung bereitstellt, die Folgendes umfasst:
- - eine Erstellungs- und Sendeeinheit 10, die zum Erstellen eines Schlüsselpaares n und X zufällig und zum Abschicken von ihre Identifikations-ID und X an das Schlüsselerstellungszentrum dient,
- - eine Empfangseinheit 20, die zum Empfangen eines durch das Schlüsselerstellungszentrum erstellten, der Identifikations-ID des Unterzeichners zugeordneten privaten Teil-Signaturschlüssel T=(Π, w) dient, wobei es sich bei (Π, w) um einen Signaturwert, der sich aus Signieren der ID durch das Schlüsselerstellungszentrum mittels eines digitalen Signierungsverfahrens MA ergibt, handelt, wobei das Schlüsselerstellungszentrum ein privates und öffentliches Signaturschlüsselpaar (P, ms) zufällig erstellt, eine Vorsignatur Π erzeugt, danach einen Hash-Digest erstellt, der mindestens Π und ID umfasst und als Signaturzuordnung R dient, und schließlich einen zweiten Teil w des Signaturwerts erstellt, wobei das Schlüsselerstellungszentrum P als öffentlicher Parameter des Kryptosystems heranzieht,
- - eine Berechnungs- und Ermittlungseinheit 30, die zum Ermitteln eines Signaturschlüsselpaares (PX, S) durch Berechnen unter Verwendung von P, ID, T, n und X dient,
- - eine Signier- und Sendeeinheit 40, die zum Signieren einer Nachricht M mittels des digitalen Signierungsverfahrens MB unter Verwendung von S als privater Signaturschlüssel, Erstellen eines Signaturwerts U und Übermitteln von (U, PX) als Signaturwert für die Nachricht M an einen Signaturverifizierer oder Senden von U als Signaturwert für die Nachricht M an den Signaturverifizierer und Veröffentlichen von PX dient, wobei während der Signierung der Nachricht M bei einer Operation, bei der M als Eingabe herangezogen werden soll, eine Verbindung von R und M als Eingabe verwendet wird,
- - eine Verifikationseinheit 50, die zum Verifizieren der Signatur für die Nachricht M über den Signaturverifizierer dient, wobei der Signaturverifizierer PX erfasst, einen S zugeordneten öffentlichen Schlüssel Q anhand von P, ID und PX berechnet und gemäß dem Signaturverifikationsvorgang des digitalen Signierungsverfahrens MB überprüft, ob es sich bei U um eine dem privaten Schlüsselpaar M zugeordnete gültige Signatur des öffentlichen Schlüssels Q handelt, wobei während der Signaturverifikation bei einer Operation, bei der M als Eingabe herangezogen werden soll, eine Verbindung von R und M als Eingabe verwendet wird.
-
Bei dem digitalen Signierungsverfahren MA handelt es sich um ein Signierungsverfahren, das auf dem diskreten Logarithmus-Problem basiert ist, wobei das Schlüsselerstellungszentrum aufgrund des diskreten Logarithmus-Problems ausgestaltet ist und einen Generator G einer zyklischen Gruppe der Ordnung q und ein Zufallselement in der Gruppe zum Ausführen von [o]G auswählt, wobei [o]G für o-malige Multiplikationsoperation von G in einer Anzahl von o gemäß dem Operationsregel der zyklischen Gruppe steht. Bei ms in dem öffentlichen und privaten Signaturschlüsselpaar (P, ms) handelt es sich um eine Ganzzahl ms, die durch das Schlüsselerstellungszentrum zufällig erstellt wird, handelt, wobei die Bedingung 0<ms<q erfüllt wird und P=<G, H=[ms]G>.
-
In dem vorliegenden Ausführungsbeispiel umfasst die digitale Signiereinrichtung ferner eine Entschlüsselungseinheit 60 zum Entschlüsseln der Nachricht, wobei die Nachricht w enthält und durch das Schlüsselerstellungszentrum mittels eines asymmetrischen Standard-Verschlüsselungsalgorithmus verschlüsselt wird, durch den Unterzeichner unter Verwendung von n dient, wobei beim Verschlüsseln der Nachricht, die w enthält, mittels eines asymmetrischen Standard-Verschlüsselungsalgorithmus X als öffentlicher Verschlüsselungsschlüssel verwendet wird.
-
Es wird auf 5 hingewiesen, wobei in dem vorliegenden Ausführungsbeispiel die Erstellungs- und Sendeeinheit 10 Folgendes umfasst:
- - ein Erstellungs- und Berechnungsmodul 11, das zum zufälligen Erstellen einer Ganzzahl n, die die Bedingung 0<n<q erfüllt, und Berechnen von X=[n]G dient.
-
Es wird auf 6 hingewiesen, wobei in dem vorliegenden Ausführungsbeispiel die Empfangseinheit 20 Folgendes umfasst:
- - ein erstes k-Erstellungsmodul 201, das zum zufälligen Erstellen einer Ganzzahl k, die die Bedingung 0<k<q erfüllt, über das Schlüsselerstellungszentrum oder zum Ermitteln von k= HASH(F(ID, andere InformationI), ms) mod q durch Berechnen dient, wobei die andere Information I die Erstellungsinformation der zyklischen Gruppe, G, H und X enthält und es sich bei F um eine Hash-Operation oder eine String-Verkettung handelt, wobei es sich bei HASH(F(ID, andere Information I), ms) mod q um eine Digest-Berechnung des verknüpften Werts von F(ID, andere Information I) und ms handelt und die Verkettungsreihenfolge F(ID, andere Information I)|| ms oder ms || F(ID, andere Information I) lauten kann, wobei alternativ dazu eine HMAC-Operation an F(ID, andere Information I) unter Verwendung von ms als Schlüssel erfolgt,
- - ein erstes II-Berechnungsmodul 202, das zum Berechnen einer Vorsignatur Π =[k]G ± [n]G über das Schlüsselerstellungszentrum dient,
- - ein erstes R-Berechnungsmodul 203, das zum Berechnen einer Signaturzuordnung R=HASH(F(ID, andere Information A), Π), über das Schlüsselerstellungszentrum dient, wobei die andere Information A H umfasst,
- - ein erstes w-Berechnungsmodul 204, das zum Berechnen eines zweiten Teils w=k ± R*ms mod q oder R*k ± ms mod q des Signaturwerts über das Schlüsselerstellungszentrum dient,
- - ein erstes Erstellungsmodul 205, das zum Erstellen eines privaten Teil-Signaturschlüssels T=(Π, w) über das Schlüsselerstellungszentrum dient,
- - ein erstes Empfangsmodul 206, das zum Empfangen des privaten Teil-Signaturschlüssels T=(Π, w) dient.
-
Die Berechnungs- und Ermittlungseinheit 30 umfasst ein erstes Berechnungs- und Erstellungsmodul, das zum Erstellen eines Signaturschlüsselpaares (PX, S), das dem öffentlichen Schlüssel Q=Π ± [R] H zugeordnet ist, wenn w=(k ± R*ms) mod q, sodass S=(w ± n) mod q und PX=Π, und zum Erstellen eines Signaturschlüsselpaares (PX, S), das dem öffentlichen Schlüssel Q= [R]II ± H zugeordnet ist, wenn w= (R*k ± ms) mod q, sodass S=(w ± R*n) mod q und PX=Π, dient.
-
Es wird auf 7 hingewiesen, wobei in einem anderen Ausführungsbeispiel die Empfangseinheit 20 Folgendes umfasst:
- - ein zweites k-Erstellungsmodul 211, das zum zufälligen Erstellen der Ganzzahl k, die die Bedingung 0<k<q erfüllt, über das Schlüsselerstellungszentrum oder zum Ermitteln von k= HASH(F(ID, andere InformationI), ms) mod q durch Berechnen dient, wobei die andere Information I H und X enthält und es sich bei F um eine Hash-Operation oder eine String-Verkettung handelt, wobei es sich bei HASH(F(ID, andere Information I), ms) mod q um eine Digest-Berechnung des verknüpften Werts von F(ID, andere Information I) und ms handelt und die Verkettungsreihenfolge F(ID, andere Information I)|| ms oder ms || F(ID, andere Information I) lauten kann, wobei alternativ dazu eine HMAC-Operation an F(ID, andere Information I) unter Verwendung von ms als Schlüssel erfolgt,
- - ein zweites Π-Berechnungsmodul 212, das zum Berechnen einer Vorsignatur Π =[k]G über das Schlüsselerstellungszentrum dient,
- - ein zweites R-Berechnungsmodul 213, das zum Berechnen einer Signaturzuordnung R=HASH(F(ID, andere InformationA), Π ) mod q über das Schlüsselerstellungszentrum dient, wobei die andere Information A X und H umfasst,
- - ein zweites w-Berechnungsmodul 204, das zum Berechnen eines zweiten Teils w=(k ± R*ms) mod q oder R*k ± ms mod q des Signaturwerts über das Schlüsselerstellungszentrum dient,
- - ein zweites Erstellungsmodul 215, das zum Erstellen eines privaten Teil-Signaturschlüssels T=(Π, w) über das Schlüsselerstellungszentrum dient,
- - ein zweites Empfangsmodul 216, das zum Empfangen des privaten Teil-Signaturschlüssels T=(Π, w) dient.
-
Die Berechnungs- und Ermittlungseinheit 30 umfasst ein zweites Berechnungs- und Erstellungsmodul, das zum Erstellen eines Signaturschlüsselpaares (PX, S), das dem öffentlichen Schlüssel Q=Π ± X ± [R] H zugeordnet ist, wenn w=(k ± R*ms) mod q, sodass S=(w ± n) mod q und PX= (Π, X), und zum Erstellen eines Signaturschlüsselpaares (PX, S), das dem öffentlichen Schlüssel Q=[R](Π ± X) ± H zugeordnet ist, wenn w=(R*k ± ms) mod q, sodass S=(w ± R*n) mod q und PX=(II, X), dient.
-
Bei der erfindungsgemäßen digitalen Signiereinrichtung ist vorgesehen, dass während einer durch den Signaturalgorithmus MB vorgegebenen Signaturoperation der Nachricht M als Ersatz für M die mit der Signaturzuordnung R, die während einer durch das Schlüsselerstellungszentrum ausgeführten Operation gemäß dem Signaturalgorithmus MA berechnet wird, verbundene Nachricht M in die einschlägige Operation miteinbezogen wird, wobei während der Signaturverifikation für eine Operation, bei der ursprünglich M als Eingabe herangezogen werden sollte, ebenfalls die Verbindung von R und M als Eingabe verwendet wird. Somit können Angriffen während der Kombination zweier Signaturalgorithmen widerstanden werden, was zu erhöhter Sicherheitsfähigkeit des Signierungsverfahrens beiträgt.
-
Es wird auf 8 hingewiesen, wobei in einem Ausführungsbeispiel der vorliegenden Erfindung ferner ein dem vorstehenden digitalen Signierungsverfahren zugeordnetes digitales Signiersystem bereitgestellt wird, das einen Unterzeichner 100, ein Schlüsselerstellungszentrum 200 und einen Signaturverifizierer 300 umfasst,
wobei der Unterzeichner 100 ein Schlüsselpaar n und X erstellt und die ID und X an das Schlüsselerstellungszentrum 200 abschickt,
wobei das Schlüsselerstellungszentrum 200 mittels eines voreingestellten digitalen Signierungsverfahrens MA die Identifikations-ID signiert und der Signierungsvorgang Folgendes umfasst: Das Schlüsselerstellungszentrum 200 erstellt ein privates und öffentliches Signaturschlüsselpaar (P, ms) zufällig erstellt, erzeugt eine Vorsignatur II, erstellt einen Hash-Digest, der mindestens Π und ID umfasst und als Signaturzuordnung R dient, und erstellt schließlich einen zweiten Teil w des Signaturwerts, um einen Signaturwert (Π, w) mit zwei Teilen zu erhalten, wobei der Signaturwert als privater Teil-Signaturschlüssel T= (II, w) herangezogen und der private Teil-Signaturschlüssel T an den Unterzeichner 100 gesendet wird, und wobei das Schlüsselerstellungszentrum 200 ferner P als öffentlicher Parameter des Kryptosystems heranzieht,
wobei der Unterzeichner 100 ein Signaturschlüsselpaar (PX, S) durch Berechnen unter Verwendung von P, ID, T, n und X ermittelt, eine Nachricht M mittels des digitalen Signierungsverfahrens MB unter Verwendung von S als privater Signaturschlüssel signiert, einen Signaturwert U erstellt und (U, PX) als Identifikations-Signaturwert für die Nachricht M an den Signaturverifizierer 300 übermittelt oder U als Signaturwert für die Nachricht M an den Signaturverifizierer 300 sendet und PX veröffentlicht, wobei während der Signierung der Nachricht M bei einer Operation, bei der M als Eingabe herangezogen werden soll, eine Verbindung von R und M als Eingabe verwendet wird,
und wobei der Signaturverifizierer 300 die Signatur für die Nachricht M verifiziert und die Signaturverifikationsvorgang Folgendes umfasst: Erfassen von PX, Berechnen eines S zugeordneten öffentlichen Schlüssels Q anhand von P, ID und PX und Überprüfen gemäß dem Signaturverifikationsvorgang des digitalen Signierungsverfahrens MB, ob es sich bei U um eine dem privaten Schlüsselpaar M zugeordnete gültige Signatur des öffentlichen Schlüssels Q handelt, wobei während der Signaturverifikation bei einer Operation, bei der M als Eingabe herangezogen werden soll, eine Verbindung von R und M als Eingabe verwendet wird.
Bei dem erfindungsgemäßen digitalen Signiersystem ist vorgesehen, dass während einer durch den Signaturalgorithmus MB vorgegebenen Signaturoperation der Nachricht M als Ersatz für M die mit der Signaturzuordnung R, die während einer durch das Schlüsselerstellungszentrum 200 ausgeführten Operation gemäß dem Signaturalgorithmus MA berechnet wird, verbundene Nachricht M in die einschlägige Operation miteinbezogen wird, wobei während der Signaturverifikation für eine Operation, bei der ursprünglich M als Eingabe herangezogen werden sollte, ebenfalls die Verbindung von R und M als Eingabe verwendet wird. Somit können Angriffen während der Kombination zweier Signaturalgorithmen widerstanden werden, was zu erhöhter Sicherheitsfähigkeit des Signierungsverfahrens beiträgt.
Bisher wurden lediglich bevorzugte Ausführungsbeispiele der vorliegenden Erfindung erläutert, ohne den Umfang der Erfindung einzuschränken. Jegliche gleichwertige Struktur- oder Ablaufabänderungen, die anhand der Beschreibung und der beiliegenden Zeichnung der Erfindung vorgenommen oder mittelbar oder unmittelbar bei anderen betroffenen Gebieten verwendet werden, sollen ebenfalls von dem Schutzumfang der Erfindung umfasst sein.