Dialog Inverser Kongruenzgenerator (ICG)

Dieser Dialog erscheint, wenn Sie im Dialog Zufallsdaten erzeugen die Option Inverser Kongruenzgenerator (ICG) auswählen und die Schaltfläche Generatorspezifische Parameter wählen klicken.

Der Inverse Kongruenzgenerator (ICG) ist ein Algorithmus zur Erzeugung einer Folge von scheinbar zufälligen ganzen Zahlen (X_[i]) gemäß der rekursiven Rechenvorschrift:

X_[0] := Geheimer Saatwert

X_[i+1] := inverse[a*(X_[0]+i) + c] (mod P) für i = 0, 1, 2, 3, ...

wobei X_[i] ganze Zahlen aus dem Wertebereich 0,1,2, ..., P-1 sind. Es ist üblich, die Zufallszahlen in den rationalen Wertebereich [0,1[ zu normieren, deshalb erfolgt die Ausgabe als rationale Zahlen Z[i] := X_[i]/P.

Wir betrachten in CrypTool nur "Münzwürfe" (der Münzwurf "Kopf" wird auf die 0 und der Münzwurf "Zahl" wird auf die 1 abgebildet). Beim ICG bilden wir deshalb den Münzwurf 0 durch das Ereignis [Z_[i] < 0,5] und der Münzwurf 1 durch das Ereignis [0,5 <= Z_[i] < 1] ab. Die Folge der Münzwürfe wird als Binärdatei (eine Folge von 8 Münzwürfen ergibt ein zufälliges ASCII-Zeichen) abgespeichert.

Parameter beim ICG sind die Zahlen P, a, c der modulo P Invertierung der Geraden-Gleichung y = ax+c: Der Modul P ist eine Primzahl, der Multiplikator a: 0<a<N und das additive Inkrement b: 1<b<N. Des weiteren wird der ICG durch den geheimen Initialwert oder Saat X_0 initialisiert.

Nachdem Sie im Dialog Einzelverfahren \ Zufallsdaten erzeugen den Radiobutton "Inverse Kongruenzgenerator (ICG)" gewählt haben, können sie unter "Generatorspezifische Parameter wählen" die Parameter des ICG festlegen:

icgoptions.gif

Beachten Sie, dass die Qualität des ICG entscheidend von der Wahl der Parameter abhängt. Ein wichtiges Maß ist hierbei die Periodenlänge der Zufallsfolge, die durch die Parameter festgelegt wird.

Die Qualität der von dem Zufallsgenerator erzeugten Ausgabe können Sie mit Hilfe der in CrypTool implementierten Zufallstests, der Periodenanalyse, der Komprimierbarkeit sowie der Vitany-Analyse überprüfen.