de
Seitenbanner
Menu
Nachlesen

Multiplikative Inverse von Restklassen

Beim multiplikativen Inversen einer Restklasse \({[x]}_m\) handelt es sich – falls existent – um diejenige Restklasse, die mit \({[x]}_m\) multipliziert das neutrale Element \({[1]}_m\) ergibt. Es kann beispielsweise mit dem erweiterten euklidischen Algorithmus ermittelt werden.

Definition

Gegeben sei eine ganze Zahl \(x \in \Z\) sowie eine natürliche Zahl \(m \in \N\). Beim multiplikativen Inversen des Elements \({[x]}_m\) des Restklassenrings \(\Z_m\) handelt es sich – falls existent – um das Element \({[x]}_m^{-1} \in \Z_m\), für das gilt:

\[ {[x]}_m \odot {[x]}_m^{-1} = {[1]}_m = {[x]}_m^{-1} \odot {[x]}_m. \]

Handelt es sich bei \({[x]}_m^{-1}\) um das multiplikative Inverse von \({[x]}_m\), so handelt es sich umgekehrt bei \({[x]}_m\) auch stets um das multiplikative Inverse von \({[x]}_m^{-1}\). Es ist nicht notwendig, dass es sich bei \({[x]}_m\) und \({[x]}_m^{-1}\) um verschiedene Elemente handelt; das Element \({[x]}_m\) ist in diesem Fall zu sich selbst invers. Dies ist beispielsweise für die Elemente \({[1]}_m\) und \({[m-1]}_m\) immer der Fall.

Allgemein gilt: Ein Element \({[x]}_m \in \Z_m\) besitzt nur dann ein multiplikatives Inverses, wenn es sich bei \({[x]}_m\) um eine prime Restklasse modulo \(\mathbf{m}\) handelt, d. h., falls \(x\) und \(m\) teilerfremd sind; für den größten gemeinsamen Teiler von \(x\) und \(m\) gilt dann entsprechend \(\ggT(x,m)=1\).

Beschreibung des Verfahrens

Berechnung mithilfe des erweiterten euklidischen Algorithmus

Die Berechnung des multiplikativen Inversen eines Elements \({[x]}_m\) kann mithilfe des erweiterten euklidischen Algorithmus durchgeführt werden. Hierzu wird zunächst der größte gemeinsame Teiler der Zahlen \(x\) und \(m\) berechnet. Falls die Zahlen nicht teilerfremd sind, falls also \(\ggT(x,m) \neq 1\) gilt, so existiert kein multiplikatives Inverses; sind die beiden Zahlen hingegen teilerfremd, gilt also \(\ggT(x,m)=1\), so können mithilfe des erweiterten euklidischen Algorithmus (garantiert durch das Lemma von Bézout) anschließend Parameter \(s,t \in \Z\) gefunden werden, für die gilt:

\[ \ggT(x,m) = 1 = s \cdot x + t \cdot m. \]

Aus dieser Gleichheit ergibt sich unmittelbar die folgende Kongruenz:

\begin{align*} \begin{alignedat}{2} 1 &\equiv s \cdot x + \underbrace{t \cdot m}_{\equiv\ 0} && \pmod{m} \\[0.5em] &\equiv s \cdot x && \pmod{m}. \end{alignedat} \end{align*}

Nach der Definition von Restklassen und der Definition der Multiplikation von Restklassen folgt hieraus

\[ {[1]}_m = {[s \cdot x]}_m = {[s]}_m \odot {[x]}_m. \]

Beim gesuchten multiplikativen Inversen \({[x]}_m^{-1}\) handelt es sich also um die Restklasse \({[s]}_m\).

Hinweis: Da der erweiterte euklidische Algorithmus keine Garantie liefert, dass \(0 \leq s \lt m\) gilt, muss \({[s]}_m\) abschließend gegebenenfalls noch in den Standardvertreter der Restklasse umgerechnet werden.

Berechnung mithilfe des Satzes von Euler

Das multiplikative Inverse eines Elements \({[x]}_m\) kann mithilfe des Satzes von Euler durch das Potenzieren der Restklasse \({[x]}_m\) berechnet werden. Für teilerfremde Zahlen \(x\) und \(m\) liefert der Satz von Euler die folgende Kongruenz:

\[ x^{\varphi(m)} \equiv 1 \pmod{m}. \]

Bei \(\varphi\) handelt es sich um die eulersche \(\varphi\)-Funktion. Gemäß der Definition von Restklassen folgt aus dieser Kongruenz unmittelbar

\[ {[x^{\varphi(m)}]}_m = {[1]}_m. \]

Aufgrund der Definition der Potenzen von Restklassen ergibt sich hieraus:

\begin{align*} {[1]}_m &= {[x^{\varphi(m)}]}_m \\[0.5em] &= {[x]}_m^{\varphi(m)} \\[0.5em] &= {[x]}_m^{\varphi(m)-1} \odot {[x]}_m. \end{align*}

Das gesuchte multiplikative Inverse \({[x]}_m^{-1} = {[x]}_m^{\varphi(m)-1}\) kann anschließend direkt berechnet werden.

Beispiele

Beispiel 1: Erweiterter euklidischer Algorithmus

Es soll das multiplikative Inverse von \({[42]}_{47}\) in \(\Z_{47}\) berechnet werden. Zunächst wird mit dem euklidischen Algorithmus der größte gemeinsame Teiler von \(47\) und \(42\) bestimmt.

\begin{align*} 47 &= 1 \cdot 42 + {\color{CornflowerBlue} 5} \\[0.5em] 42 &= 8 \cdot 5 + {\color{Orange} 2} \\[0.5em] 5 &= 2 \cdot 2 + {\color{Magenta} 1} \\[0.5em] 2 &= 2 \cdot 1 + 0 \end{align*}

Der größte gemeinsame Teiler \({\color{Magenta}1}\) kann wie üblich an der vorletzten Zeile abgelesen werden. Anwenden des erweiterten euklidischen Algorithmus liefert:

\begin{align*} {\color{Magenta} 1} &= 1 \cdot 5 - 2 \cdot {\color{Orange} 2} \\[0.5em] &= 1 \cdot 5 - 2 \cdot {\color{Orange} \bigl( 42 - 8 \cdot 5 \bigr)} \\[0.5em] &= -2 \cdot 42 + 17 \cdot {\color{CornflowerBlue} 5} \\[0.5em] &= -2 \cdot 42 + 17 \cdot {\color{CornflowerBlue} \bigl( 47 - 1 \cdot 42 \bigr)} \\[0.5em] &= 17 \cdot 47 - 19 \cdot 42 \end{align*}

Aus der erhaltenen Gleichung ergibt sich unmittelbar die folgende Kongruenz:

\begin{align*} \begin{alignedat}{2} 1 &\equiv \underbrace{17 \cdot 47}_{\equiv\ 0} -19 \cdot 42 && \pmod{47} \\[0.5em] &\equiv -19 \cdot 42 && \pmod{47}. \end{alignedat} \end{align*}

Hieraus folgt aufgrund der Definition von Restklassen:

\[ {[1]}_{47} = {[-19 \cdot 42]}_{47} = {[-19]}_{47} \odot {[42]}_{47}. \]

Da es sich bei \({[-19]}_{47}\) nicht um den Standardvertreter der Restklasse handelt, ist \({[-19]}_{47}\) noch nicht das gesuchte multiplikative Inverse; dieses kann durch Umrechnen in den Standardvertreter der Restklasse jedoch leicht ermittelt werden:

\[ {[-19]}_{47} = {[-19+47]}_{47} = {[28]}_{47}. \]

Beispiel 2: Satz von Euler

Es soll das multiplikative Inverse von \({[42]}_{47}\) in \(\Z_{47}\) berechnet werden. Da \(42\) und \(47\) teilerfremd sind, gilt aufgrund des Satzes von Euler die folgende Kongruenz:

\[ 42^{\varphi(47)} \equiv 42^{46} \equiv 1 \pmod{47}. \]

Hieraus folgt, dass es sich bei

\[ {[42]}_{47}^{-1} = {[42]}_{47}^{\varphi(47)-1} = {[42]}_{47}^{45} \]

um das gesuchte multiplikative Inverse von \({[42]}_{47}\) handelt. Dieses kann beispielsweise mit dem Square-and-Multiply-Verfahren über die folgenden Zwischenschritte berechnet werden.

\begin{align*} {[42]}_{47}^{45} &= {[42]}_{47}^{44} \cdot {[42]}_{47} \\[0.5em] {[42]}_{47}^{44} &= {\left( {[42]}_{47}^{22} \right)}^2 \\[0.5em] {[42]}_{47}^{22} &= {\left( {[42]}_{47}^{11} \right)}^2 \\[0.5em] {[42]}_{47}^{11} &= {[42]}_{47}^{10} \cdot {[42]}_{47} \\[0.5em] {[42]}_{47}^{10} &= {\left( {[42]}_{47}^{5} \right)}^2 \\[0.5em] {[42]}_{47}^{5} &= {[42]}_{47}^{4} \cdot {[42]}_{47} \\[0.5em] {[42]}_{47}^{4} &= {\left( {[42]}_{47}^{2} \right)}^2 \\[0.5em] {[42]}_{47}^{2} &= {\left( {[42]}_{47}^{1} \right)}^2 \end{align*}

Ausrechnen von \({[42]}_{47}^{45}\) durch Rückwärtseinsetzen ergibt:

\begin{align*} {[42]}_{47}^{2} &= {[25]}_{47} \\[0.5em] {[42]}_{47}^{4} &= {[14]}_{47} \\[0.5em] {[42]}_{47}^{5} &= {[24]}_{47} \\[0.5em] {[42]}_{47}^{10} &= {[12]}_{47} \\[0.5em] {[42]}_{47}^{11} &= {[34]}_{47} \\[0.5em] {[42]}_{47}^{22} &= {[28]}_{47} \\[0.5em] {[42]}_{47}^{44} &= {[32]}_{47} \\[0.5em] {[42]}_{47}^{45} &= {[28]}_{47} \end{align*}

Für das gesuchte multiplikative Inverse ergibt sich somit:

\[ {[42]}_{47}^{-1} = {[28]}_{47}. \]