\chapter{Modulare Arithmetik} \section{Exkurs: Division mit Rest} Für $a,b\in \mathbb{Z},b\ne 0$ gibt es eindeutig bestimmte Element $q,r\in\mathbb{Z},0\le r<|b|$: $$\begin{aligned} a =b\cdot q+r\\ a /_\mathbb{Z} b :&= q \\ a\mod b :&= r \\ \end{aligned}$$ \section{Der Ring $\mathbb{Z}_n$} Ein Ring $\mathbb{Z}_n$ ist definiert durch: $$\mathbb{Z}_n := {0,1,...,n-1}$$ \subsection{Addition und Multiplikation} \begin{equation} \begin{aligned} a +_{\mathbb{Z}_n} b :&= (a+b) \mod n\\ a \cdot_{\mathbb{Z}_n} b :&= (a\cdot b) \mod n\\ \end{aligned} \end{equation} \subsubsection{Inverse bezüglich der Addition} jedes $a\in \mathbb{Z}$ hat ein Inverses: $$ -a := \begin{cases} 0 &\text{für }a=0 \\ n-a &\text{sonst} \end{cases}$$ \subsubsection{Inverse bezüglich der Multiplikation} ein Element $a\in \mathbb{Z}_n$ ist \textit{(multiplikativ) invertierbar}, falls es ein Element $b\in \mathbb{Z}_n$ gibt, für das gilt: $$a\cdot b = 1$$ man schreibt auch: $$a^{-1}:=b$$ Die Menge der invertierbaren Elemente in $\mathbb{Z}_n$ wird als $\mathbb{Z}_n^*$ bezeichnet: $$\mathbb{Z}_n^* = \{a\in\mathbb{Z}_n\mid a\cdot b=1 \text{ für ein }b\in\mathbb{Z}n\}$$ Zudem gilt, dass ein Element nur dann invertierbar ist, falls $ggT(a,n)=1$: $$\mathbb{Z}_n^* = \{a\in\mathbb{Z}_n\mid ggT(a,n)=1\}$$ \subsection{Subtraktion} Eine Subtraktion entspricht einer Addition mit der Inverse: $$a-_{\mathbb{Z}_n}b := a+_{\mathbb{Z}_n}(-b) \mod n$$ \subsection{Teiler, Vielfache} $b\in \mathbb{Z}$ teilt $a\in \mathbb{Z}$ falls ein $q\in \mathbb{Z}$ existiert mit: $$ a = b\cdot q$$ man schreibt auch $b|a$ \subsubsection{Teilerregeln} \begin{enumerate} \item $a|0$ $\forall a\in \mathbb{Z}$ \item $a|b \Leftrightarrow a|(-b)$ \item $a|b \text{ und } a|c \Rightarrow a|(b+c)$ \end{enumerate} \subsection{Kongruenz} $a,b\in \mathbb{Z}$ sind \textit{kongruent modulo n}, falls $n\in \mathbb{N}|(a-b)$. Man schreibt auch $a\equiv b$ \subsection{Matrizen} \subsubsection{Determinantenberechnung} Die Determinante $\det(A)$ der ($N,N$)-Matrix $A=(a_{ij})_{1\le i,j \le N}$ (mit ganzzahligen Einträgen) über $\mathbb{Z}_n$ wird definiert durch: $$\det(A) \mod n = det((a_{i,j} \mod n)_{1\le i,j\le N})$$ Zudem gilt für die Matrizen $A=(a_{ij})_{1\le i,j \le N}$ und $B=(b_{ij})_{1\le i,j \le N}$ (mit ganzzahligen Einträgen): $$\begin{aligned} \det(A\cdot B) \mod n &= (det(A)\cdot \det(B)) \mod n \\ &= ((\det(A) \mod n)\cdot(\det(B) \mod n)) \mod n\\ &= (\det(A) \mod n)\cdot_{\mathbb{Z}_n}(\det(B) \mod n) \end{aligned}$$ \subsubsection{Inverse Matrix} Die Inverse einer quadratischen Matrix $A$ über $\mathbb{Z}_n$ lässt sich mithilfe der Adjunkten berechnen: $$A^{-1} = (\det(A))^{-1} \cdot adj(A)$$ Die Adjunkte lässt sich über $\mathbb{Z}_n$ berechnen, da lediglich Summen und Differenzen von Produkten berechnet werden müssen. \section{Der erweiterte Euklid'sche Algorithmus} Der Euklid'sche Algorithmus ist ein sehr effizienter Weg den ggT zweier Zahlen zu ermitteln. Der Euklid'sche Algorithmus lässt sich auch über $\mathbb{Z}_n$ verwenden. Man spricht dann von dem erweiterten Euklid'schen Algorithmus. \subsection{Euklid'scher Algorithmus} gegeben: $a_0,b_0\in\mathbb{Z}$ \begin{enumerate} \item $a:=a_0$ und $b:=b_0$ \item falls $b=0$ gebe $|a|$ aus und beende \item $r:=a \mod b$ \item $a:=b$ \item $b:=r$ \item goto 2. \end{enumerate} \subsection{erweiterter Euklid'scher Algorithmus} gegeben: $a_0,b_0\in\mathbb{N}_0$\\ gesucht: $\alpha\cdot a_0+\beta \cdot b_0 = g = ggT(a_0,b_0)$ \begin{enumerate} \item $a:=a_0$, $\alpha_a=1$, $\beta_b=0$, $b := b_0$, $\alpha_b := 0$, $\beta_b:=1$ \item falls $b=0$ gebe $g:=a$, $\alpha:=\alpha_a$ und $\beta:=\beta_a$ aus \item $q:=a/_\mathbb{Z} b$ \item $r:=a-q\cdot b$,$\alpha_r := \alpha_a-q\cdot \alpha_b$, $\beta_r := \beta_a-q\cdot \beta_b$ \item $a:=b$, $\alpha_a:=\alpha_b$, $\beta_a := \beta_b$ \item $b:=r$, $\alpha_b :=\alpha_r$ $\beta_b := \beta_r$ \item goto 2. \end{enumerate} \subsubsection{Beispiel} Eingabe: $$a_0 = 1224\text{ und } b_0 = 156 $$ Berechnung:\\ \begin{center} \begin{tabular}{c|c|c|c} 1224 & 156 & a,b & q\\ \hline 1 & 0 & 1224 \\ 0 & 1 & 156 & 7\\ 1 & -7 & 132 & 1\\ -1 & 8 & 24 & 5\\ 6 & -47 & 12 & 2 \\ & & 0\\ \end{tabular}\\ \end{center} Ergebnis: $$6\cdot 1224 + (-47)\cdot 156 = 12$$ \section{Euler'sche $\varphi$-Funktion} Die Euler'sche $\varphi$-Funktion bezeichnet die Anzahl invertierbarer Elemente in $\mathbb{Z}_n$ $$\varphi(n):=\begin{cases} |\mathbb{Z}_n^*| &\text{für } n\in\mathbb{N},n\ge 2\\ 1 &\text{für } n = 1 \end{cases}$$ Für $a,b\in\mathbb{N}$ mit $ggT(a,b)=1$ gilt: $$\varphi(a\cdot b) = \varphi(a) \cdot \varphi(b)$$ Zudem gilt für ein $n\in\mathbb{N}$ dessen Primzahlzerlegung $n = p_1^{e_1} \cdots p_r^{e_r}$: $$\varphi(n) = n\cdot \prod_{i=1}^r \big( 1-\frac{a}{p_i} \big)$$ \subsection{$\varphi$-Funktion und Primzahlen} für eine Primzahl $p$ gilt: $$\varphi(p)=p-1$$ Für Primzahlpotenzen gilt zudem: $$\varphi(p^e)=p^{e-1}(p-1)$$