Die folgenden Python-Funktionen implementieren Berechnungen mit großen Primzahlen für kryptografische Anwendungen. Zuvor wird das Modul BasicFunctions importiert.
Erläuterungen zu den hier zusammenfassend aufgeführten Python-Funktionen finden sich im Artikel Primzahltest.
Häufig wird eine zufällig gewählte Primzahl einer bestimmten Länge k Bit benötigt. Die folgenden Funktionen in der Programmiersprache Python liefern entsprechende Primzahlen. Hierzu wird die Funktion randomOdd aus dem Modul BasicFunctions herangezogen, die wiederum auf die kryptografisch sichere Funktion truerandint zurückgreift.
Eine Möglichkeit, eine zufällige Primzahl p der Länge k Bit zu erzeugen, besteht darin, solange zufällige ungerade Zahlen n zu ziehen, bis n eine Primzahl ist. Ein Primzahltest mit der Funktion isPrime ist oben angegeben.
Blum-Primzahlen sind Primzahlen, die kongruent 3 modulo 4 sind, also z.B. 3, 7, 11, 19, 23, 31, ...
Starke Primzahlen sind Primzahlen der Form p = 2q+1, wobei auch q Primzahl ist, also z.B. 5, 7, 11, 23, 31, ... Jede starke Primzahl p > 5 ist Blum-Primzahl.
In der Gruppe ℤn* mit n einer starken Primzahl ist es sehr leicht, ein erzeugendes Element zu finden. Denn die Hälfte aller Elemente sind erzeugende Elemente, und der Test, ob eine Zahl g ein erzeugendes Element ist, besteht lediglich darin, zu prüfen, ob gn/2 mod n ≠ 1 ist.
Weiter mit: [up]