Primitivwurzel
# Primitivwurzel

Als Primitivwurzeln werden in der Zahlentheorie, einem Teilgebiet der Mathematik, bestimmte Elemente von primen Restklassengruppen bezeichnet. Die definierende Eigenschaft einer Primitivwurzel ist, dass jedes Element der primen Restklassengruppe als eine ihrer Potenzen dargestellt werden kann.

## Beispiel

Die Zahl 3 ist eine Primitivwurzel modulo 7, da gilt

    ${\begin{array}{rcrcrcrcrcr}3^{1}&=&3^{0}\cdot 3&\equiv &1\cdot 3&=&3&\equiv &3{\pmod {7}}\\3^{2}&=&3^{1}\cdot 3&\equiv &3\cdot 3&=&9&\equiv &2{\pmod {7}}\\3^{3}&=&3^{2}\cdot 3&\equiv &2\cdot 3&=&6&\equiv &6{\pmod {7}}\\3^{4}&=&3^{3}\cdot 3&\equiv &6\cdot 3&=&18&\equiv &4{\pmod {7}}\\3^{5}&=&3^{4}\cdot 3&\equiv &4\cdot 3&=&12&\equiv &5{\pmod {7}}\\3^{6}&=&3^{5}\cdot 3&\equiv &5\cdot 3&=&15&\equiv &1{\pmod {7}}\\\end{array}}$

Es lassen sich also alle Elemente $1,2,\ldots ,6$ der primen Restklassengruppe modulo 7 als Potenzen $3^{i}$ von 3 darstellen, wobei der Exponent $i$ der dem jeweiligen Element zugeordnete Index (diskreter Logarithmus) ist. Die Zahl 2 ist keine Primitivwurzel modulo 7, da Fehler beim Parsen (SVG (MathML kann über ein Browser-Plugin aktiviert werden): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „http://localhost:6011/de.wikipedia.org/v1/“:): {\displaystyle 2^3 =8 \equiv 1\ (\text{mod } 7)} ist, daher wiederholen sich die Reste in der Folge der Potenzen von 2 modulo 7

    Fehler beim Parsen (SVG (MathML kann über ein Browser-Plugin aktiviert werden): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „http://localhost:6011/de.wikipedia.org/v1/“:): {\displaystyle (2^k)_{k\in \mathbb{N}}=(2^1\not\equiv 1, 2^2\not\equiv 1, 2^3\equiv 1, 2^4\equiv 2, 2^5\equiv 2^2\,\ldots)}

bereits nach jeweils 3 Schritten, daher werden nicht alle 6 verschiedenen primen Reste modulo 7 erreicht und 2 erzeugt die prime Restklassengruppe nicht.

## Definition und Existenzbedingungen

Eine ganze Zahl $a$ ist eine Primitivwurzel modulo $m$, wenn die Restklasse $a+m\mathbb {Z}$ die prime Restklassengruppe $(\mathbb {Z} /m\mathbb {Z} )^{\times }$ erzeugt. Dies ist gleichbedeutend damit, dass eine ganze Zahl $a$ genau dann eine Primitivwurzel modulo $m$ ist, wenn die Ordnung von $a$ modulo $m$ gleich der Gruppenordnung der primen Restklassengruppe ist:

    $\operatorname {ord} _{m}(a)=\varphi (m)$.

Hierbei ist $\varphi$ die Eulersche φ-Funktion und $\operatorname {ord} _{m}(a)$ die multiplikative Ordnung modulo m des Elements $a$, d. h. der kleinste positive Exponent $n$, für welchen $a^{n}\equiv 1\;({\text{mod }}m)$ ist (für die Schreibweise „mod“ siehe Modulo).

Genau dann ist übrigens auch

    $\operatorname {ord} _{m}(a)=\lambda (m)$,

wobei Fehler beim Parsen (SVG (MathML kann über ein Browser-Plugin aktiviert werden): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „http://localhost:6011/de.wikipedia.org/v1/“:): \lambda die Carmichael-Funktion ist.

Es gibt genau dann Primitivwurzeln modulo $m$, wenn die prime Restklassengruppe $(\mathbb {Z} /m\mathbb {Z} )^{\times }$ eine zyklische Gruppe ist. Dies ist nach einem Satz von C. F. Gauß genau dann der Fall, wenn für den Modul

    $m\in \{2,4\}\cup \{kp^{\alpha }\mid 2<p\in \mathbb {P} ,\ \alpha \in \mathbb {N} ,\ k\in \{1,2\}\}$

gilt. Dabei bezeichnet $\mathbb {P}$ die Menge der Primzahlen.

Wenn modulo Fehler beim Parsen (SVG (MathML kann über ein Browser-Plugin aktiviert werden): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „http://localhost:6011/de.wikipedia.org/v1/“:): m Primitivwurzeln existieren, dann existieren genau $\varphi (\varphi (m))$ modulo $m$ inkongruente Primitivwurzeln. Jede dieser Primitivwurzeln ist modulo Fehler beim Parsen (SVG (MathML kann über ein Browser-Plugin aktiviert werden): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „http://localhost:6011/de.wikipedia.org/v1/“:): m kongruent zu einem Element der Menge:

    $\{a^{n}\mid 1\leq n\leq \varphi (m),\ \operatorname {ggT} (n,\varphi (m))=1\}$

wobei Fehler beim Parsen (SVG (MathML kann über ein Browser-Plugin aktiviert werden): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „http://localhost:6011/de.wikipedia.org/v1/“:): a eine beliebige Primitivwurzel modulo $m$ ist.

## Berechnung von Primitivwurzeln

### Ausprobieren (Brute force)

Um festzustellen, ob eine Zahl $a$ Primitivwurzel modulo $m$ ist, wird zuerst $\varphi (m)$ und anschließend die Ordnung von $a$ berechnet. Die Ordnung lässt sich beispielsweise bestimmen, indem nacheinander die Werte $a^{t}({\text{mod }}m)$ für $t\in \{1,2,\ldots ,m-1\}$ berechnet werden. Das erste $t$, für das $a^{t}({\text{mod }}m)=1$ gilt, ist die Ordnung von $a$.

Beim Beispiel aus der Einleitung sieht man, dass die 3 die Ordnung 6 hat. Da zudem $\varphi (7)=6$ gilt, ist 3 eine Primitivwurzel modulo 7.

Eine Zahl, die keine Primitivwurzel modulo 7 ist, ist die 4. Hier gilt

    $4^{1}\equiv 4\ {\pmod {7}}$
    $4^{2}\equiv 2\ {\pmod {7}}$
    $4^{3}\equiv 1\ {\pmod {7}}$

Die Ordnung von 4 ist deshalb 3 und die 4 keine Primitivwurzel modulo 7.

Man kann viele Versuche sparen, indem man die Tatsache benutzt, dass die Ordnung nach dem Satz von Lagrange $\varphi (m)$ teilt, da jede Zahl $k\in \mathbb {N}$, für die $a^{k}\equiv 1({\text{mod }}m)$ gilt, durch die Ordnung teilbar ist. Darum muss man nur noch für alle Teiler von $\varphi (m)$ überprüfen, ob Exponentiation mit ihnen die Zahl auf 1 abbildet, und der kleinste solche Teiler ist die Ordnung.

### Primitivwurzeln modulo Primzahlen

Die primen Restklassengruppen zu Moduln Fehler beim Parsen (SVG (MathML kann über ein Browser-Plugin aktiviert werden): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „http://localhost:6011/de.wikipedia.org/v1/“:): m , die Primzahlen sind, bestehen aus genau $m-1$ Elementen. Die Zahlen $1,2,\ldots ,m-1$ sind die Repräsentanten der unterschiedlichen Restklassen. Ist $a$ eine Primitivwurzel modulo $m$, so nimmt der Ausdruck $a^{t}({\text{mod }}m)$ für $t\in \{0,1,2,\ldots ,m-2\}$ alle Werte aus $\{1,\ldots ,m-1\}$ (in scheinbar zufälliger Reihenfolge) an.

**Beispiele**

Die folgende Tabelle zeigt die Primitivwurzeln modulo der Primzahlen bis 100.

| $m$ | $\varphi (\varphi (m))$ | Primitivwurzeln modulo $m$ |
| - | - | - |
| 2 | 1 | 1 |
| 3 | 1 | 2 |
| 5 | 2 | 2, 3 |
| 7 | 2 | 3, 5 |
| 11 | 4 | 2, 6, 7, 8 |
| 13 | 4 | 2, 6, 7, 11 |
| 17 | 8 | 3, 5, 6, 7, 10, 11, 12, 14 |
| 19 | 6 | 2, 3, 10, 13, 14, 15 |
| 23 | 10 | 5, 7, 10, 11, 14, 15, 17, 19, 20, 21 |
| 29 | 12 | 2, 3, 8, 10, 11, 14, 15, 18, 19, 21, 26, 27 |
| 31 | 8 | 3, 11, 12, 13, 17, 21, 22, 24 |
| 37 | 12 | 2, 5, 13, 15, 17, 18, 19, 20, 22, 24, 32, 35 |
| 41 | 16 | 6, 7, 11, 12, 13, 15, 17, 19, 22, 24, 26, 28, 29, 30, 34, 35 |
| 43 | 12 | 3, 5, 12, 18, 19, 20, 26, 28, 29, 30, 33, 34 |
| 47 | 22 | 5, 10, 11, 13, 15, 19, 20, 22, 23, 26, 29, 30, 31, 33, 35, 38, 39, 40, 41, 43, 44, 45 |
| 53 | 24 | 2, 3, 5, 8, 12, 14, 18, 19, 20, 21, 22, 26, 27, 31, 32, 33, 34, 35, 39, 41, 45, 48, 50, 51 |
| 59 | 28 | 2, 6, 8, 10, 11, 13, 14, 18, 23, 24, 30, 31, 32, 33, 34, 37, 38, 39, 40, 42, 43, 44, 47, 50, 52, 54, 55, 56 |
| 61 | 16 | 2, 6, 7, 10, 17, 18, 26, 30, 31, 35, 43, 44, 51, 54, 55, 59 |
| 67 | 20 | 2, 7, 11, 12, 13, 18, 20, 28, 31, 32, 34, 41, 44, 46, 48, 50, 51, 57, 61, 63 |
| 71 | 24 | 7, 11, 13, 21, 22, 28, 31, 33, 35, 42, 44, 47, 52, 53, 55, 56, 59, 61, 62, 63, 65, 67, 68, 69 |
| 73 | 24 | 5, 11, 13, 14, 15, 20, 26, 28, 29, 31, 33, 34, 39, 40, 42, 44, 45, 47, 53, 58, 59, 60, 62, 68 |
| 79 | 24 | 3, 6, 7, 28, 29, 30, 34, 35, 37, 39, 43, 47, 48, 53, 54, 59, 60, 63, 66, 68, 70, 74, 75, 77 |
| 83 | 40 | 2, 5, 6, 8, 13, 14, 15, 18, 19, 20, 22, 24, 32, 34, 35, 39, 42, 43, 45, 46, 47, 50, 52, 53, 54, 55, 56, 57, 58, 60, 62, 66, 67, 71, 72, 73, 74, 76, 79, 80 |
| 89 | 40 | 3, 6, 7, 13, 14, 15, 19, 23, 24, 26, 27, 28, 29, 30, 31, 33, 35, 38, 41, 43, 46, 48, 51, 54, 56, 58, 59, 60, 61, 62, 63, 65, 66, 70, 74, 75, 76, 82, 83, 86 |
| 97 | 32 | 5, 7, 10, 13, 14, 15, 17, 21, 23, 26, 29, 37, 38, 39, 40, 41, 56, 57, 58, 59, 60, 68, 71, 74, 76, 80, 82, 83, 84, 87, 90, 92 |

### Primitivwurzeln modulo Primzahlpotenzen

Ist $p$ eine ungerade Primzahl, dann ist eine Primitivwurzel modulo $p^{\alpha }$ mit $\alpha >1$ auch Primitivwurzel modulo kleineren Potenzen von Fehler beim Parsen (SVG (MathML kann über ein Browser-Plugin aktiviert werden): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „http://localhost:6011/de.wikipedia.org/v1/“:): p . Interessant für die Suche nach Primitivwurzeln modulo höheren Potenzen von Fehler beim Parsen (SVG (MathML kann über ein Browser-Plugin aktiviert werden): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „http://localhost:6011/de.wikipedia.org/v1/“:): p ist, dass eine Primitivwurzel $\gamma$ modulo $p^{2}$ (mit $2\leq \gamma \leq p^{2}-1$) auch Primitivwurzel zu allen höheren Potenzen von $p$ ist. Daher genügt es für höhere Potenzen der Primzahl $p$,

   * eine Primitivwurzel $\gamma _{1}$ modulo $p$ zu finden (unter den Zahlen $2,3,\ldots ,p-1$),

   * die Zahlen $\gamma _{1}+k\cdot p,\;(0\leq k\leq p-1)$ daraufhin zu testen, ob sie Primitivwurzeln modulo $p^{2}$ sind. Notwendig und bereits hinreichend dafür ist, dass Fehler beim Parsen (SVG (MathML kann über ein Browser-Plugin aktiviert werden): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „http://localhost:6011/de.wikipedia.org/v1/“:): {\displaystyle (\gamma_1 + k\cdot p)^{p-1} \not\equiv 1 (\text{mod } p^2)} ist. Tatsächlich tritt dies bereits für $k=0$ oder $k=1$ ein, d. h. $\gamma _{1}$ oder $\gamma _{1}+p$ ist eine Primitivwurzel modulo $p^{2}$.

Dann hat man mit jeder im zweiten Schritt bestimmten Zahl $\gamma _{2}$ eine Primitivwurzel modulo $p^{\alpha }$ für beliebige Fehler beim Parsen (SVG (MathML kann über ein Browser-Plugin aktiviert werden): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „http://localhost:6011/de.wikipedia.org/v1/“:): \alpha \in \mathbb{N} .

Ist die so bestimmte Primitivwurzel $\gamma _{2}$ ungerade, dann ist sie auch Primitivwurzel modulo $2\cdot p^{\alpha }$, sonst gilt dies für $\gamma _{2}+p^{\alpha }$.

## Anwendungsbeispiel

Primitivwurzeln finden eine Anwendung im Diffie-Hellman-Schlüsselaustausch, einem 1976 veröffentlichten kryptografischen Verfahren zum öffentlichen Schlüsselaustausch. Dessen Sicherheit beruht auf der Tatsache, dass

* es einfach ist, zu einer gegebenen Primzahl $p$, Primitivwurzel $g$ und ganzen Zahl $a$ ein $A$ auszurechnen mit $A\equiv g^{a}({\text{mod }}p)$,

es aber

* aufwendig ist, für ein bekanntes $A$ ein entsprechendes Fehler beim Parsen (SVG (MathML kann über ein Browser-Plugin aktiviert werden): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „http://localhost:6011/de.wikipedia.org/v1/“:): a (den sogenannten diskreten Logarithmus) zu finden.
