ANHANG
Algorithmen und Parameter für sichere elektronische Signaturen
1. Definitionen
Signatursuite: Eine Signatursuite besteht aus folgenden Komponenten:
einem Signaturalgorithmus mit Parametern,
einem Algorithmus zur Schlüsselerzeugung,
einem Padding-Verfahren und
einer kryptographischen Hashfunktion.
Bitlänge: Die Bitlänge einer natürlichen Zahl p ist r, wenn 2 hoch r-1 <= p < 2 hoch r gilt.
Kryptographische Hashfunktion: Der Algorithmus „Hash-Funktion“ ist eine nicht umkehrbare Funktion, die eine umfangreiche Datenmenge (i.d.R. einen Text) auf eine im Allgemeinen wesentlich kleinere Zielmenge fester Länge (Hash-Wert) abbildet.
2. Abkürzungen
A9C „Article 9 Committee“ (Ausschuss für elektronische
Signaturen gemäß Art. 9 der Richtlinie 1999/93/EG)
DSA Digital Signature Algorithm
ECDSA Elliptic Curve Digital
Signature Algorithm
ECGDSA Elliptic Curve German Digital
Signature Algorithm
RSA Verfahren von Rivest, Shamir und Adleman
ZDA Zertifizierungsdiensteanbieter
Algorithmen und Parameter für sichere elektronische Signaturen dürfen nur in vordefinierten Kombinationen verwendet werden, die als
Signatursuiten bezeichnet werden.
Falls eine Komponente der Suite ungültig ist, ist auch die
gesamte
Suite ungültig. Falls eine Komponente der Suite aktualisiert worden ist, ist auch die gesamte Suite zu aktualisieren.
Tabelle 1a – Liste der zulässigen Signatursuiten:
____________________________________________________________________
Kennzahl Signatur- Parameter des Algorithmus Padding- Krypto-
des Algorithmus Signatur- zur Verfahren graphi-
Signatur- algorithmus Schlüssel- sche
suite- erzeugung Hash-
Eintrags funktion
____________________________________________________________________
001 rsa MinModLen = rsagen1 emsa- sha1
1020 pkcs1-
v1_5
____________________________________________________________________
002 rsa MinModLen = rsagen1 emsa-pss sha1
1020
____________________________________________________________________
003 rsa MinModLen = rsagen1 emsa- ripemd160
1020 pkcs1-
v1_5
____________________________________________________________________
004 rsa MinModLen = rsagen1 emsa-pss ripemd160
1020
____________________________________________________________________
005 dsa pMinLen = dsagen1 - sha1
1024
qMinLen =
160
____________________________________________________________________
006 ecdsa-Fp qMinLen = ecgen1 - sha1
160
r0Min =
10 hoch 4
MinClass =
200
____________________________________________________________________
007 ecdsa-F2m qMinLen = ecgen2 - sha1
160
r0Min =
10 hoch 4
MinClass =
200
____________________________________________________________________
008 ecgdsa-Fp qMinLen = ecgen1 - sha1
160
r0Min =
10 hoch 4
MinClass =
200
____________________________________________________________________
009 ecgdsa-Fp qMinLen = ecgen1 - ripemd160
160
r0Min =
10 hoch 4
MinClass =
200
____________________________________________________________________
010 ecgdsa-F2m qMinLen = ecgen2 - sha1
160
r0Min =
10 hoch 4
MinClass =
200
____________________________________________________________________
011 ecgdsa-F2m qMinLen = ecgen2 - ripemd160
160
r0Min =
10 hoch 4
MinClass =
200
____________________________________________________________________
Einige der in diesem Anhang gegebenen Algorithmen sind über Objektidentifikatoren registriert. Diese werden als Information in Tabelle 1b wiedergegeben.
Tabelle 1b - Objektidentifikatoren (OID)
____________________________________________________________________
Objekt- OID Bezeichnung in
Kurzbezeichnung diesem Anhang
____________________________________________________________________
rsa { joint-iso-ccitt(2) ds(5) rsa
module(1) algorithm(8)
encryptionAlgorithm(1) 1 }
____________________________________________________________________
sha-1 { iso(1) member-body(2) us(840) rsa, sha1,
WithRSA rsadsi(113549) pkcs(1) emsapkcs, etc.
Encryption pkcs-1(1) 5 }
____________________________________________________________________
id-dsa { iso(1) member-body(2) us(840) dsa
x9-57(10040)x9cm(4)
____________________________________________________________________
id-dsa-with-sha1 { iso(1) member-body(2) us(840) dsa, sha1
x9-57(10040)x9cm(4) 3}
____________________________________________________________________
sha1 { iso(1) identifiedOrganzitaion sha1
(3) oIW(14) oIWSecSig(3) oIWSec
Algorithm(2) 26 }
____________________________________________________________________
ripemd160 { iso(1) identifiedOrganization ripemd160
(3) teletrust(36) algorithm(3)
hashAlgorithm(2) 1 }
____________________________________________________________________
id-ecdsa-with- { iso(1) member-body(2) us(840) ecdsa, sha1
sha1 ansi-X9-62(10045) signatures(4)
1 }
____________________________________________________________________
id-rsassa-pss { iso(1) member-body(2) us(840) emsa-pss
rsadsi(113549) pkcs(1)
pkcs-1(1) 10 }
____________________________________________________________________
Zulässige kryptographische Hashverfahren
Für sichere elektronische Signaturen dürfen nur kollisionsresistente Hashfunktionen eingesetzt werden. Diese Voraussetzung ist erfüllt, wenn es rechnerisch nicht realisierbar ist, zwei Dokumente zu finden, die denselben Hashwert liefern.
Tabelle 2 - Liste der derzeit zulässigen Hashfunktionen
_________________________________________
Kennzahl Kurzbezeichnung
der Hashfunktion der Hashfunktion
_________________________________________
2.01 sha1
_________________________________________
2.02 ripemd160
_________________________________________
5. Zulässige Padding-Verfahren
Tabelle 3 - Liste der zulässigen Padding-Verfahren
__________________________________________________________________
Kennzahl Kurzbezeichnung des Erzeugung der Parameter des
des Padding- Füllverfahrens Zufallszahlen Zufallszahlen-
Verfahrens generators
__________________________________________________________________
3.01 emsa-pkcs1-v1_5 - -
__________________________________________________________________
3.02 emsa-pss noch zu noch zu
definieren definieren
__________________________________________________________________
6. Zulässige Signaturalgorithmen
Tabelle 4 - Liste der zulässigen Signaturalgorithmen
______________________________________________________________
Kennzahl Kurzbezeichnung Parameter des Algorithmus zur
des des Signatur- Signatur- Schlüssel- und
Signatur- algorithmus algorithmus Parametererzeugung
algorithmus
______________________________________________________________
1.01 rsa MinModLen = rsagen1
1020
______________________________________________________________
1.02 dsa pMinLen = dsagen1
1024
qMinLen =
160
______________________________________________________________
1.03 ecdsa-Fp qMinLen = ecgen1
160
r0Min =
10 hoch 4
MinClass =
200
______________________________________________________________
1.04 ecdsa-F2m qMinLen = ecgen2
160
r0Min =
10 hoch 4
MinClass =
200
______________________________________________________________
1.05 ecgdsa-Fp qMinLen = ecgen1
160
r0Min =
10 hoch 4
MinClass =
200
______________________________________________________________
1.06 Ecgdsa-F2m qMinLen = ecgen2
160
r0Min =
10 hoch 4
MinClass =
200
______________________________________________________________
Tabelle 5 - Liste der zulässigen Schlüsselerzeugungsalgorithmen
für
die in Tabelle 4 aufgelisteten Signaturalgorithmen
____________________________________________________________________
Kennzahl Kurzbezeichnung Signatur- Verfahren Parameter des
des des Schlüssel- algorithmus der Zufalls-
Schlüssel- erzeugungs- Zufalls- zahlen-
erzeugungs- algorithmus zahlen- erzeugungs-
algorithmus erzeugung verfahrens
____________________________________________________________________
4.01 rsagen1 rsa trueran Entropy
oder Bits >= 128
pseuran or SeedLen
>= 128
____________________________________________________________________
4.02 dsagen1 dsa trueran Entropy
oder Bits >= 128
pseuran or SeedLen
>= 128
____________________________________________________________________
4.03 ecgen1 ecdsa-Fp, trueran Entropy
ecgdsa-Fp oder Bits >= 128
pseuran or SeedLen
>= 128
____________________________________________________________________
4.04 ecgen2 ecdsa-F2m, trueran Entropy
ecgdsa-F2m oder Bits >= 128
pseuran or SeedLen
>= 128
____________________________________________________________________
Erläuterungen zu einzelnen Parametern der zulässigen
Signaturalgorithmen
7.1 RSA
Die Sicherheit des RSA-Algorithmus beruht auf der Schwierigkeit, große ganze Zahlen zu faktorisieren. Um die Signaturerstellungsdaten
und Signaturprüfdaten zu erzeugen, sind zufällig und unabhängig zwei
Primzahlen p und q zu erzeugen, wobei die Bitlänge des Moduls n = pq
mindestens MinModLen betragen muss; seine Länge wird auch als ModLen
bezeichnet; Jede Primzahl muss effektiv von EntropyBits Bits tatsächlichem Zufall oder einem Ausgangswert der Länge SeedLen beeinflusst sein. p und q sollten etwa dieselbe Länge aufweisen, z. B. soll ein Bereich wie 0,5 <| log tief 2 p - log tief 2 q | < 30 festgelegt werden.
7.2 DSA
Die Sicherheit des DSA-Algorithmus beruht auf der Schwierigkeit, den diskreten Logarithmus in der multiplikativen Gruppe eines Primkörpers F tief p zu berechnen.
Die Signaturerstellungsdaten bestehen aus
den öffentlichen Parametern p, q und g,
einer zufällig oder pseudozufällig erzeugten ganzen Zahl x, 0 < x < q, die signatorspezifisch ist, und
einer zufällig oder pseudozufällig erzeugten ganzen Zahl k, 0 < k < q, die für jede Signatur neu zu erzeugen ist.
Die öffentlichen Parameter p, q und g dürfen für eine Gruppe von Benutzern gleich sein. Der prime Modul p muss mindestens pMinLen Bits lang sein. q, das ein Primfaktor von (p-1) ist, muss mindestens
qMinLen Bits lang sein.
Die Signaturprüfdaten bestehen aus p, q, g und einer ganzen
Zahl y, die als y = g hoch x mod p berechnet wird.
7.2.1 DSA-Varianten mit elliptischen Kurven basierend auf einer Gruppe E(F tief p)
Die Sicherheit des Algorithmus ecdsa-Fp beruht auf der Schwierigkeit, den diskreten Logarithmus über elliptischen Kurven zu
berechnen.
Die öffentlichen Parameter sind wie folgt:
q eine große Primzahl mit einer Länge von mindestens qMinLen Bits, p (Anm.: Zeichen nicht darstellbar) q;q eine große Primzahl mit einer Länge von mindestens qMinLen Bits, p Anmerkung, Zeichen nicht darstellbar) q;
E eine elliptische Kurve über dem endlichen Körper F tief p, deren Ordnung durch q teilbar ist, und
P ein fixer Punkt auf E mit der Ordnung q.
Die Klassenzahl der maximalen Ordnung des Endomorphismenrings von E muss mindestens MinClass betragen. Der Wert r tief 0:=min(r: q teilt p hoch r -1) muss größer als r0Min sein.
Die Signaturerstellungsdaten bestehen aus
den öffentlichen Parametern E, q und P;
einer statistisch einzigartigen und nicht voraussagbaren ganzen Zahl x, 0 < x < q, die signatorspezifisch ist und
einer statistisch einzigartigen und nicht voraussagbaren ganzen Zahl k, 0 < k < q, die für jede Signatur neu zu erzeugen ist.
Die Signaturprüfdaten bestehen aus E, q, P und einem Punkt Q auf E, der als Q = xP berechnet wird. Die elliptische Kurve über F tief p muss so gewählt werden, dass ihre Ordnung durch eine Primzahl q der Länge >= qMinLen >= 160 teilbar ist.
7.2.2 DSA-Varianten mit elliptischen Kurven basierend auf einer Gruppe E(F tief 2 m)
Die Sicherheit des Algorithmus ecdsa-F2m beruht auf der Schwierigkeit, den diskreten Logarithmus über elliptischen Kurven zu
berechnen.
Die öffentlichen Parameter sind wie folgt:
q eine große Primzahl mit einer Länge von mindestens qMinLen Bits,
E eine elliptische Kurve über dem endlichen Körper F tief 2 m, deren Ordnung durch q teilbar ist,
es darf nicht möglich sein, E über F tief 2 zu definieren, und
P ein fixer Punkt auf E mit der Ordnung q.
Die Klassenzahl der maximalen Ordnung des Endomorphismenrings von E muss mindestens MinClass betragen. Der Wert r tief 0:=min(r: q teilt
2 hoch mr -1) muss größer als r0Min sein.
Die Signaturerstellungsdaten bestehen aus
den öffentlichen Parametern E, q und m;
einer statistisch einzigartigen und nicht voraussagbaren ganzen Zahl x, 0 < x < q, die signatorspezifisch ist, und
einer statistisch einzigartigen und nicht voraussagbaren ganzen Zahl k, 0 < k < q, die für jede Signatur neu zu erzeugen ist.
Die Signaturprüfdaten bestehen aus E, q, P und einem Punkt Q auf E, der als Q = xP berechnet wird. Die elliptische Kurve über F tief 2 m muss so gewählt werden, dass ihre Ordnung durch eine Primzahl q der Länge >= qMinLen >= 160 teilbar ist.
7.2.3 EC-GDSA basierend auf einer Gruppe E(F tief p)
Der ecgdsa-Fp Algorithmus ist eine Variante des ecdsa-Fp Algorithmus mit modifizierter Gleichung zur Signaturerstellung und modifiziertem Verfahren zur Signaturprüfung. Die Parameter sind dieselben wie für ecdsa-Fp.
7.2.4 EC-GDSA basierend auf einer Gruppe E(F tief 2 m)
Der Algorithmus ecgdsa-F2m ist eine Variante des Algorithmus ecdsa-F2m mit modifizierter Gleichung zur Signaturerstellung und modifiziertem Verfahren zur Signaturprüfung.
Erzeugung von Zufallszahlen
Tabelle 6 – Liste der zulässigen Verfahren zur Erzeugung von
Zufallszahlen
________________________________________________________________
Kennzahl des Kurzbezeichnung des Parameter der
Zufallsgenerators Zufallgenerators Zufallszahlenerzeugung
________________________________________________________________
5.01 Trueran EntropyBits
________________________________________________________________
5.02 Pseuran SeedLen
________________________________________________________________
5.03 cr_to_X9.30_x SeedLen
________________________________________________________________
5.04 cr_to_X9.30_k SeedLen
________________________________________________________________
8.1 Anforderungen an Zufallszahlengeneratoren trueran
Ein physikalischer Zufallszahlengenerator basiert auf einer physikalischen Rauschquelle (Primärrauschen) und einer kryptographischen oder mathematischen Nachbehandlung des Primärrauschens. Das Primärrauschen muss regelmäßig einer geeigneten
statistischen Prüfung unterzogen werden. Der erwartete Aufwand des Erratens eines kryptographischen Schlüssels soll mindestens gleich groß sein, wie der Aufwand des Ratens eines Zufallswerts der Länge EntropyBits.
8.2 Anforderungen an Zufallszahlengeneratoren pseuran
Ein Pseudo-Zufallszahlengenerator muss mit einer echten Zufallszahl initialisiert werden. Der Anfangswert wird als „Seed“ bezeichnet und hat die Länge SeedLen. Die Ausgabe des Generators muss folgenden Anforderungen genügen:
keine Information hinsichtlich der erzeugten Ausgabebits ist vorab bestimmbar;
die Kenntnis einer Teilsequenz der Ausgabe erlaubt keinen Rückschluss auf ein verbleibendes Bit mit einer Wahrscheinlichkeit, die sich nicht-vernachlässigbar von Zufall unterscheidet;
es gibt kein verwendbares Verfahren, um aus der Ausgabe des Generators eine zuvor generierte oder zukünftige Ausgabe, einen internen Status oder den Anfangswert („Seed“) zu erlangen.
Der erwartete Aufwand des Erlangens jedweden internen Status des Generators soll im Wesentlichen der Schwierigkeit des Erratens eines
Zufallswerts der Länge SeedLen Bits sein.
Wenn der Generator mit mindestens SeedLen Bits initialisiert wurde, können bis zu n = 100 Folge erzeugte Signaturerstellungsdaten
gleichermaßen verwendet werden, als ob sie von einem Generator trueran erzeugt worden wären. Für die Massenproduktion (durch den Zertifizierungsdiensteanbieter ZDA) von k Schlüsseln, k > n ist es zulässig, dass zusätzlich zur initialen Entropieanforderung echter Zufall (von einem trueran Generator) langsam mit einer Rate von j = 8 Bits pro Ausgabewert beigegeben wird, andernfalls sollte der Generator komplett neu initialisiert werden.
Wenn Re-Initialisierung angewandt wird, muss die Sicherheit des Re-Initialisierungsprozesses zumindest so stark sein, wie die ursprüngliche Initialisierung und Prozeduren folgen, die der Erstellung von Root-Schlüsseln ähnlich sind. Die Re-Initialisierung von Smartcards ist nicht zulässig.
Keine Backups des Anfangswerts („Seed“) oder interner Stati von Pseudo-Zufallszahlengeneratoren sind zulässig.