Cryptography Reference
In-Depth Information
ANSI X9.42-2001 Annex C.1
mit nur einem minimalen Unterschied: Ist eine
160-Bit-Zufallszahl größer als
q
, dann wird
q
abgezogen. Dieser Schritt ist not-
wendig, damit die Zufallszahl als Schlüssel für den DSA nutzbar ist. Wenn Alice
und Bob das Verfahren jedoch für andere Zwecke nutzen wollen, können sie
diesen Schritt weglassen.
FIPS 186-2 (+ change notice 1) Appendix 3.1
wurde im
Rahmen des CRYPTREC-Wettbewerbs als positiv bewertet.
FIPS 186-2 (+ change notice 1) revised Appendix 3.1
Eine Eigenschaft von
FIPS 186-2 (+ change notice 1) Appendix 3.1
(und damit
auch von
ANSI X9.42-2001 Annex C.1
) ist folgende: Da
A
bis zu 512 Bit lang
sein kann, der Hashwert jedoch immer nur 160 Bits hat, wirkt sich die Fortschal-
tung (diese besteht im Wesentlichen aus einer Addition der beiden Werte) nur auf
einen Teil von
A
aus. Diese Eigenschaft lässt nach Angaben des NIST einen (aller-
dings nur theoretisch interessanten) Angriff zu. Das NIST reichte daher ein leicht
geändertes Verfahren nach, das als
FIPS 186-2 (+ change notice 1) revised Appen-
dix 3.1
bezeichnet wird [FIPS-186]. Dieses läuft wie folgt ab (SHA-1 wird wiede-
rum mit vereinfachtem Padding verwendet):
A
=
A
+
X
(mod 2
b
)
1.
2.
Gib als erste Hälfte des Zufallswerts aus: SHA-1(
A
)
A
=
A
+ SHA-1(
A
) + 1 (mod 2
b
)
3.
A
=
A
+
X
(mod 2
b
)
4.
5.
Gib als zweite Hälfte des Zufallswerts aus: SHA-1(
A
)
A
=
A
+ SHA-1(
A
) + 1 (mod 2
b
)
6.
Auch hier sieht die Empfehlung vor, den Zufallswert modulo
q
zu verwenden,
damit er für den DSA nutzbar ist. Wenn Alice und Bob jedoch einen anderen Ver-
wendungszweck im Auge haben, können sie diesen Schritt weglassen. Wie man
leicht erkennt, ist der Unterschied zwischen
FIPS 186-2 (+ change notice 1)
Appendix 3.1
und
ANSI X9.42-2001 Annex C.1
auf der einen Seite sowie
FIPS
186-2 (+ change notice 1) revised Appendix 3.1
auf der anderen Seite minimal.
Ich habe das letztgenannte Verfahren an dieser Stelle nur aufgeführt, weil es im
CRYPTREC-Wettbewerb als dritter und letzter der hier beschriebenen Pseudozu-
fallsgeneratoren positiv bewertet wurde.
15.2.2
Schlüsselabhängige Hashfunktionen als Fortschaltfunktion
Anstatt einer gewöhnlichen kryptografischen Hashfunktion können Alice und
Bob zur Zufallsgenerierung auch eine schlüsselabhängige Hashfunktion verwen-
den. Dies funktioniert etwa mit der folgenden einfachen Methode (
K
ist der
Schlüssel):
1.
A
= hash
K
(
A
)
2.
Gib als Zufallswert aus:
A