Der X-Quadrat modulo N (X^2 mod N)-Generator ist ein Algorithmus zur Erzeugung einer Folge von scheinbar zufälligen ganzen Zahlen (X[i]) gemäß der rekursiven Rechenvorschrift:
X[0] := Geheimer Saatwert, mit X[0]*X[0] > N
X[i+1] := X[i]*X[i] (mod N) für i = 0, 1, 2, 3, ...
wobei X[i] ganze Zahlen aus dem Wertebereich 0,1,2, ..., N-1 sind.
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 X^2 mod N-Generator bilden wir deshalb den Münzwurf 0 durch das Ereignis [X[i] = 0 (mod 2)] und der Münzwurf 1 durch das Ereignis [X[i] = 1 (mod 2)] 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.
Einziger Parameter beim X^2 mod N-Generator ist der Modul N.
Nachdem Sie im Dialog Einzelverfahren \ Zufallsdaten erzeugen den Radiobutton "X^2 (mod N) Zufallsgenerator" gewählt haben, können sie unter "Generatorspezifische Parameter wählen" die Parameter festlegen:
Beachten Sie, dass die Qualität des X^2 mod N-Generators entscheidend von der Wahl des Parameters N abhängt. Kennt man die Primfaktorzerlegung des Moduls N, dann ist es möglich die Quadratwurzel modulo N von X[i+1] berechnen und man kann den Zufallsgenerator knacken. Deshalb benutzt man oft für den Modul N große RSA-Module, bei denen die Primfaktorzerlegung N = p * q nur mit Kenntnis von N praktisch nicht bestimmbar ist. Voreingestellter Parameter ist ein RSA-Modul N = p*q mit der Eigenschaft, dass p und q Blum-Zahlen sind. Solche X^2 mod N-Generatoren heißen "Blum-Blum-Shub"-Generatoren.
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.