Cryptography Reference
In-Depth Information
15.2.1
Kryptografische Hashfunktionen als Fortschaltfunktion
Ein naheliegender Ansatz für die Konstruktion eines Pseudozufallsgenerators
besteht darin, als Fortschaltfunktion eine kryptografische Hashfunktion zu ver-
wenden. Alice kann etwa einen Startwert der Länge 224 Bit mit der krypto-
grafischen Hashfunktion Keccak fortschalten. Wenn Keccak einen 224-Bit-Hash-
wert ausgibt, erhält Alice auf diese Weise eine Folge von zufälligen 224-Bit-
Werten. Von diesen sollte sie jedoch nur einen Teil (beispielsweise 80 Bit pro Fort-
schaltung) verwenden, damit Mallory die Zufallsfolge nicht selbst fortschreiben
kann. Noch besser ist es, wenn Alice aus dem jeweiligen 224-Bit-Wert einen
Hashwert generiert (auf andere Weise als bei der Fortschaltung) und diesen als
Zufallswert nutzt. Dies sieht dann etwa so aus (die Variable A hat 224 Bit und
wird mit dem Startwert initialisiert):
1.
A = Keccak( A )
2.
Gib als Zufallszahl aus: Keccak(01010101|| A )
Das Byte 01010101 stellt sicher, dass die ausgegebene Zufallszahl nicht mit dem
Ergebnis der nächsten Fortschaltung identisch ist. Es gibt zahlreiche Abwandlun-
gen dieses Vorgehens. Vier davon stelle ich in den nächsten Abschnitten vor.
NIST SP 800-90 Kapitel 10.1.1
Der folgende Pseudozufallsgenerator wird in Kapitel 10 der bereits erwähnten
NIST-Empfehlung beschrieben [NIST800-90] und wird folgerichtig als NIST SP
800-90 Kapitel 10.1.1 bezeichnet. Das Verfahren sieht vor, eine kryptografische
Hashfunktion als Fortschaltfunktion zu verwenden. Dieselbe Hashfunktion
kommt hierbei mehrfach zum Einsatz. Welche Hashfunktion verwendet wird, ist
nicht festgelegt. Die Hashwert-Länge ist im Folgenden b . Zusätzlich spielt ein
Zähler ( Reseed-Counter ) eine Rolle, an dem erkennbar ist, wie viele Fortschal-
tungen Alice bereits mit demselben Startwert durchgeführt hat (ist eine Ober-
grenze erreicht, dann kann Alice einen neuen Startwert verwenden). Der Reseed-
Counter wird mit 1 initialisiert.
Der Startwert des Verfahrens wird nicht direkt verwendet. Stattdessen bear-
beitet Alice ihn zur Initialisierung zusammen mit einer Konstanten und zusätzli-
chen Eingabewerten, deren Größe und Herkunft nicht festgelegt sind, mit einer
kryptografischen Hashfunktion. Das Ergebnis wird zum neuen Startwert und
geht als solcher in Form der Variablen A in die Fortschaltfunktion ein. Diese sieht
wie folgt aus ( X steht für einen beliebigen zusätzlichen Input, der beispielsweise
von einem anderen Zufallsgenerator kommen kann):
A = A + Hashfunktion(00000010|| A || X ) (mod 2 b )
1.
2.
Gib als Zufallswert aus: Hashfunktion( A)
A = A + Hashfunktion(00000011|| A ) + C + Reseed-Counter (mod 2 b )
3.
4.
Reseed-Counter = Reseed-Counter + 1
Search WWH ::




Custom Search