From b243aafcbd7ad2da4498e8833e4ddab93e6f1c87 Mon Sep 17 00:00:00 2001 From: wieerwill Date: Tue, 22 Feb 2022 21:00:32 +0100 Subject: [PATCH] Tabellen in tex konvertiert --- Kryptographie.pdf | 4 +- Kryptographie.tex | 556 +++++++++++++++++++++++----------------------- 2 files changed, 284 insertions(+), 276 deletions(-) diff --git a/Kryptographie.pdf b/Kryptographie.pdf index 54c692e..9c484d1 100644 --- a/Kryptographie.pdf +++ b/Kryptographie.pdf @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9391edc47070656038b2eece27a0da924df66479ee1bed931045987c6382faf6 -size 532453 +oid sha256:d7129bf804b70c4cd53735a56f52813cd966d46a7093caac1c0145e990336829 +size 533288 diff --git a/Kryptographie.tex b/Kryptographie.tex index 104d40c..2acbd93 100644 --- a/Kryptographie.tex +++ b/Kryptographie.tex @@ -311,32 +311,31 @@ \textbf{Definition} Sei $(\Omega,Pr)$ ein Wahrscheinlichkeitsraum und R eine endliche oder abzählbare Menge. Eine Zufallsvariable ist eine Abbildung $X:\Omega\rightarrow R$. Zufallsvariablen mit $R\subseteq R$ heißen reelle Zufallsvariable. \subsection{Informationstheoretische Sicherheit} - Man erinnere sich an Beispiel 1.12. Eine naheliegende Annahme ist, dass jeder Klartextbuchstabe mit Wahrscheinlichkeit $\frac{1}{2}$ und jeder Schlüssel mit Wahrscheinlichkeit $\frac{1}{3}$ auftritt, und zwar unabhängig voneinander. Dann ist $Pr$(Klartext x ist a $\wedge$ Chiffretext y ist A)$=\frac{1}{3}$, Pr(Chiffretext y ist A)$=\frac{1}{2}$, also Pr(Klartext x ist a | Chiffretext y ist A)$=\frac{2}{3}\not=\frac{1}{2}=$Pr(Klartext x ist a). Wenn Eva also A beobachtet,ändert sich ihre Ansicht über die Verteilung auf den Klartextbuchstaben. - - Für das Konzept der informationstheoretischen Sicherheit nehmen wir an, dass Klartexte mit bestimmten Wahrscheinlichkeiten auftreten. Was diese Wahrscheinlichkeiten sind, kann der Anwender normalerweise nicht kontrollieren. Die konsequente Anwendung des Kerckhoffs-Prinzips besagt aber, dass man annehmen muss, dass Eva die relevante Wahrscheinlichkeitsverteilung auf X kennt. (Zum Beispiel würde sie wissen, dass $Pr^X(x_0)=\frac{1}{2}$ ist, für ein bestimmtes $x_0\in X$.) Nun betrachten wir ein Kryptosystem $S=(X,K,Y,e,d)$. Wir nehmen an, dass Alice und Bob ihren gemeinsamen Schlüssel k durch ein Zufallsexperiment wählen. Hierzu gehört ein zweiter Wahrscheinlichkeitsraum $(K,Pr_K)$. Es ist sinnvoll anzunehmen, dass $Pr_X$ und $Pr_K$ nichts miteinander zu tun haben. Es wird verschlüsselt und Chiffretext y wird gesendet. Dieser wird von Eva beobachtet. Wenn sich dadurch die Meinung von Eva über die Wahrscheinlichkeiten der verschiedenen Klartexte von der ursprünglichen Verteilung unterscheidet (etwa jetzt: ,,mit 90\%iger Wahrscheinlichkeit ist es Klartext $x_0$''), hat Eva aus der Beobachtung von y eine gewisse Information erhalten. + Wenn sich durch das Beobachten einer Chiffre die Meinung von Eva über die Wahrscheinlichkeiten der verschiedenen Klartexte von der ursprünglichen Verteilung unterscheidet, hat Eva aus der Beobachtung von y eine gewisse Information erhalten. Wir geben nun ein mathematisches Modell an, innerhalb dessen man über Begriffe wie ,,Eva erhält Information'' sprechen und argumentieren kann. Dazu konstruieren wir einen W-Raum mit $\Omega=X\times K$. In das Modell bauen wir die Vorstellung ein, dass $x\in X$ und $k\in K$ nach den Verteilungen $Pr_X$ und $Pr_K$ zufällig und unabhängig gewählt werden. Man beachte, dass die Verteilung $Pr_K$ ,,Teil des Kryptosystems'' ist, also der Kontrolle von Alice und Bob unterliegt, während $Pr_X$ ,,Teil der Anwendung'' oder ,,Teil der Realität'' ist, also von den Teilnehmern normalerweise nicht beeinflusst werden kann. Die Verteilung $Pr_X$ braucht beim Entwurf des Kryptosystems nicht einmal bekannt zu sein. (Alice und Bob sollten ihr Kryptosystem ohne Kenntnis von $Pr_X$ planen können. Die Annahme, dass Eva $Pr_X$ kennt, ist eine worst-case-Annahme, sie muss in der Realität nicht unbedingt erfüllt sein.) - \textbf{Definition 1.19} Ein Kryptosystem mit Schlüsselverteilung (KSV) ist ein 6-Tupel $V=(X,K,Y,e,d,Pr_K)$, wobei + \textbf{Definition} Ein Kryptosystem mit Schlüsselverteilung (KSV) ist ein 6-Tupel $V=(X,K,Y,e,d,Pr_K)$, wobei \begin{itemize*} - \item $S=(X,K,Y,e,d)$ ein Kryptosystem (das zugrundeliegende Kryptosystem) ist und - \item $Pr_K:K\rightarrow (0,1]$ eine Wahrscheinlichkeitsfunktion (die Schlüsselverteilung) ist. - \item Für $V=(X,K,Y,e,d,Pr_K)$ schreiben wir auch $S[Pr_K]$. - \item Achtung: Die Definition verlangt $Pr_K(k)\in (0,1]$, also $Pr_K(k)> 0$ für alle $k\in K$. (Hat man Schlüssel mit Wahrscheinlichkeit 0, kann man sie aus K einfach weg lassen.) + \item $S=(X,K,Y,e,d)$ das zugrundeliegende Kryptosystem ist + \item $Pr_K:K\rightarrow (0,1]$ eine Wahrscheinlichkeitsfunktion (die Schlüsselverteilung) + \item Für $V=(X,K,Y,e,d,Pr_K)$ schreiben wir auch $S[Pr_K]$ + \item $Pr_K(k)\in (0,1]$ also $Pr_K(k)> 0$ für alle $k\in K$ \end{itemize*} Sei weiter $Pr_X:X\rightarrow [0,1]$ eine Wahrscheinlichkeitsfunktion auf der Menge der Klartexte. Das heißt: $\sum_{x\in X}Pr_X(x)=1$. Diese Wahrscheinlichkeitsfunktion definiert natürlich eine W-Verteilung auf X, die wir wieder $Pr_X$ nennen. (Achtung: Es kann Klartextexte mit $Pr(x)=0$ geben. Solche Klartexte heißen passiv, die anderen, mit $Pr_X(x)>0$, aktiv.) Wir definieren die gemeinsame Wahrscheinlichkeitsfunktion $Pr:X\times K\rightarrow [0,1]$ durch $Pr((x,k)):=Pr_X(x)*Pr_K(k)$. Dies definiert einen Wahrscheinlichkeitsraum auf $X\times K$, für den $Pr(X'\times K')=Pr_X(X')*Pr_K(K')$, für alle $X'\subseteq X,K'\subseteq K$ gilt. Durch diese Definition wird die Annahme modelliert, dass der Schlüssel k unabhängig vom Klartext durch ein von $Pr_K$ gesteuertes Zufallsexperiment gewählt wird. \textbf{Beispiel 1.20} Sei $X=\{a,b,c\},K=\{0,1,2,3\},Y=\{A,B,C\}$ und die Verschlüsselungsfunktion sei durch die folgende Tabelle gegeben: - | e | a(0,4) | b(0) | c(0,6) | - | ----------------- | ------ | ---- | ------ | - | 0 ($\frac{1}{4}$) | A | B | C | - | 1 ($\frac{1}{8}$) | B | C | A | - | 2 ($\frac{1}{2}$) | C | A | B | - | 3 ($\frac{1}{8}$) | C | B | A | + \begin{tabular}{c|c|c|c} + e & a(0,4) & b(0) & c(0,6) \\\hline + 0 ($\frac{1}{4}$) & A & B & C \\ + 1 ($\frac{1}{8}$) & B & C & A \\ + 2 ($\frac{1}{2}$) & C & A & B \\ + 3 ($\frac{1}{8}$) & C & B & A + \end{tabular} Die Wahrscheinlichkeiten $Pr_X(x)$ sind beiden Klartexten, die Wahrscheinlichkeiten $Pr_K(k)$ beiden Schlüsseln in Klammern notiert. Klartexte a und c sind aktiv, Klartext b ist passiv. Die Wahrscheinlichkeit für einen Punkt $(x,k)\in X\times K$ erhält man durch Multiplikation: $Pr((c,2)) = 0,6 *\frac{1}{2}=0,3$ und $Pr((b,k))=0*Pr_K(k)=0$ für alle $k\in K$. @@ -378,20 +377,22 @@ Man beachte, dass in der Definition der informationstheoretischen Sicherheit die Fähigkeiten von Eva überhaupt nicht eingeschränkt werden. Auf welche Weise sie eventuell ermittelt, dass sich Wahrscheinlichkeiten geändert haben, wird gar nicht diskutiert. (Eva könnte zum Beispiel für jedes $y\in Y$ eine Tabelle haben, in der die Wahrscheinlichkeiten $Pr(x|y)$ für alle $x\in X$ aufgelistet sind. Oder sie fängt beim Vorliegen von $y$ an, eine solche Tabelle zu berechnen. Beides ist natürlich für nicht ganz kleine X und Y völlig unrealistisch.) \textbf{Beispiel 1.22} - | e | $a(\frac{1}{4})$ | $b(\frac{3}{4}$ ) | - | ------------------ | ---------------- | ---------------- | - | $k_0(\frac{1}{3})$ | A | B | - | $k_1(\frac{2}{3})$ | B | A | + \begin{tabular}{c|c|c} + e & $a(\frac{1}{4})$& $b(\frac{3}{4})$ \\\hline + $k_0(\frac{1}{3})$ & A & B \\ + $k_1(\frac{2}{3})$ & B & A + \end{tabular} (Notation: In der Tabelle stehen neben den Namen von Klartexten und Schlüsseln in Klammern deren Wahrscheinlichkeiten.) Dieses Kryptosystem ist possibilistisch sicher. Es gilt ab er: $Pr(a|A)=\frac{Pr(a,A)}{Pr(A)}=\frac{\frac{1}{3}*\frac{1}{4}}{\frac{1}{3}*\frac{1}{4}+\frac{2}{3}*\frac{3}{4}}=\frac{1}{7}$ und $Pr(a)=\frac{1}{4}$. Nach dem Abhören von A sieht also Eva den Klartext a als weniger wahrscheinlich an als vorher. Also ist dieses Kryptosystem mit Schlüsselverteilung bzgl. $Pr_X$ nicht informationstheoretisch sicher. \textbf{Beispiel 1.23} - | e | a($\frac{1}{4}$) | b($\frac{3}{4}$) | - | ------------------ | ---------------- | ---------------- | - | $k_0(\frac{1}{2}$) | A | B | - | $k_1(\frac{1}{2}$) | B | A | + \begin{tabular}{c|c|c} + e & a($\frac{1}{4}$) & b($\frac{3}{4}$) \\\hline + $k_0(\frac{1}{2}$) & A & B \\ + $k_1(\frac{1}{2}$) & B & A + \end{tabular} Dieses System ist bezüglich $Pr_X$ informationstheoretisch sicher. Zum Beispiel gilt $Pr(a|A) =\frac{Pr(a,A)}{Pr(A)}=\frac{\frac{1}{4}*\frac{1}{2}}{\frac{1}{4}*\frac{1}{2}+\frac{3}{4}*\frac{1}{2}}=\frac{\frac{1}{8}}{\frac{1}{2}}=\frac{1}{4}$ und $Pr(a)=\frac{1}{4}$. Die anderen drei verlangten Gleichheiten rechnet man analog nach. @@ -452,14 +453,15 @@ Wir geben ein Beispiel für ein solches informationstheoretisch sicheres Kryptosystem mit $|X|=|Y|=|K|=6$ an. Die Klartextverteilung ist irrelevant. (Die Verschlüsselungsfunktion ist übrigens mit Hilfe der Multiplikationstabelle der multiplikativen Gruppe $\mathbb{Z}^*_7$ des Körpers $\mathbb{Z}_7$ konstruiert worden. Solche Tabellen haben die Eigenschaft, dass jeder mögliche Eintrag in jeder Zeile und in jeder Spalte genau einmal vorkommt.) Beispiel 1.29 Wir betrachten $X=\{a,b,c,d,e,f\},K=\{k_0 ,...,k_5\},Y=\{A,...,F\}$. - | e | a | b | c | d | e | f | - | ------------------- | --- | --- | --- | --- | --- | --- | - | $k_0 (\frac{1}{6})$ | A | B | C | D | E | F | - | $k_1 (\frac{1}{6})$ | B | D | F | A | C | E | - | $k_2 (\frac{1}{6})$ | C | F | B | E | A | D | - | $k_3 (\frac{1}{6})$ | D | A | E | B | F | C | - | $k_4 (\frac{1}{6})$ | E | C | A | F | D | B | - | $k_5 (\frac{1}{6})$ | F | E | D | C | B | A | + \begin{tabular}{c|c|c|c|c|c|c} + e & a & b & c & d & e & f \\\hline + $k_0 (\frac{1}{6})$ & A & B & C & D & E & F \\ + $k_1 (\frac{1}{6})$ & B & D & F & A & C & E \\ + $k_2 (\frac{1}{6})$ & C & F & B & E & A & D \\ + $k_3 (\frac{1}{6})$ & D & A & E & B & F & C \\ + $k_4 (\frac{1}{6})$ & E & C & A & F & D & B \\ + $k_5 (\frac{1}{6})$ & F & E & D & C & B & A + \end{tabular} Nun betrachten wir allgemeinere Situationen, und fragen auch nach informationstheoretischer Sicherheit für spezifische Klartextverteilungen $Pr_X$ und für Mengen $K$ und $Y$, die größer als $X$ sind. Die Bedingung ,,uniforme Verteilung auf den Schlüsseln'' verschwindet dann komplett! Wir erinnern uns: Klartexte $x$ mit $Pr_X(x)> 0$ heißen aktiv (bzgl. $Pr_X$), die anderen passiv. Es wird sich herausstellen, dass sich informationstheoretische Sicherheit für $Pr_X$ mit dem Verhalten von $e(x,k)$ auf den aktiven Klartexten entscheidet, wobei es auf die tatsächlichen Wahrscheinlichkeiten für die aktiven Klartexte nicht ankommt. @@ -503,16 +505,17 @@ \end{itemize*} Beispiel 1.32 Wir geben noch ein Beispiel für ein informationstheoretisch sicheres Kryptosystem mit $|X|=4,|Y|=6$ und $|K|=8$ an. Die Klartextverteilung ist irrelevant. Sei $X=\{a,b,c,d\},K=\{k_0,...,k_7\},Y=\{A,B,C,D,E,F\}$, und $e$ durch die folgende Tabelle gegeben. (Sie entsteht durch Zusammensetzen zweier informationstheoretisch sicherer Kryptosysteme mit jeweils vier Schlüsseln und vier Chiffretexten.) - | e | a | b | c | d | - | -------------------- | --- | --- | --- | --- | - | $k_0 (\frac{1}{6})$ | A | B | C | D | - | $k_1 (\frac{1}{6})$ | B | C | D | A | - | $k_2 (\frac{1}{6})$ | C | D | A | B | - | $k_3 (\frac{1}{6})$ | D | A | B | C | - | $k_4 (\frac{1}{12})$ | A | B | E | F | - | $k_5 (\frac{1}{12})$ | B | A | F | E | - | $k_6 (\frac{1}{12})$ | E | F | A | B | - | $k_7 (\frac{1}{12})$ | F | E | B | A | + \begin{tabular}{c|c|c|c|c} + e & a & b & c & d \\\hline + $k_0 (\frac{1}{6})$ & A & B & C & D \\ + $k_1 (\frac{1}{6})$ & B & C & D & A \\ + $k_2 (\frac{1}{6})$ & C & D & A & B \\ + $k_3 (\frac{1}{6})$ & D & A & B & C \\ + $k_4 (\frac{1}{12})$ & A & B & E & F \\ + $k_5 (\frac{1}{12})$ & B & A & F & E \\ + $k_6 (\frac{1}{12})$ & E & F & A & B \\ + $k_7 (\frac{1}{12})$ & F & E & B & A + \end{tabular} Offensichtlich ist die Schlüsselverteilung nicht uniform. Jeder Schlüssel $k$ hat eine andere Chiffre $x\rightarrow e(x,k)$. Die (absoluten) Wahrscheinlichkeiten für die Chiffretexte sind ebenfalls nicht uniform ($Pr(A)=Pr(B)=\frac{1}{4}$, $Pr(C)=Pr(D)=\frac{1}{6}$, $Pr(E)=Pr(F)=\frac{1}{12}$). Die informationstechnische Sicherheit drückt sich dadurch aus, dass diese Chiffretextwahrscheinlichkeiten auch für jeden Klartext (also jede Spalte) separat auftreten. @@ -541,13 +544,7 @@ \item Vermutung: Einer dieser Buchstaben entspricht dem ,,e''. \item Der Schlüssel $k$ mit $e(e,k)=U$ ist $k=Q$. Entschlüsselung mit $Q$ liefert das Wort $bipgkfcfxzvfyevrejkivexlex$, das nicht sehr sinnvoll erscheint. \item Der Schlüssel $k$ mit $e(e,k)=L$ ist $k=H$. Entschlüsselung mit $H$ liefert kryptologie ohne anstrengung, und wir sind fertig. - \item Als Basis für solche Entschlüsselungsansätze benutzt(e) man Häufigkeitstabellen für Buchstaben, wie die folgende (Angaben in Prozent): - | Englisch | Deutsch | Italienisch | - | --------- | --------- | ----------- | - | E,e 12,31 | E,e 18,46 | E,e 11,79 | - | T,t 9,59 | N,n 11,42 | A,a 11,74 | - | A,a 8,05 | I,i 8,02 | I,i 11,28 | - | O,o 7,94 | R,r 7,14 | O,o 9,83 | + \item Als Basis für solche Entschlüsselungsansätze benutzt(e) man Häufigkeitstabellen für Buchstaben \item Dass das ,,e'' im Deutschen deutlich häufiger als im Englischen ist, liegt auch daran, dass bei der Umschreibung der Umlaute ä,ö und ü als ae, oe, ue jeweils ein ,,e'' entsteht.) \end{itemize*} @@ -567,11 +564,12 @@ Man kann dieses Verfahren mit einem festen Schlüssel k nun natürlich auf beliebig lange Klartexte anwenden. Damit liegt hier kein Kryptosystem im (technischen) Sinn des letzten Abschnitts vor! Beispiel: Wir benutzen der einfacheren Lesbarkeit halber Buchstaben anstelle der Zahlen $0,...,25$. Der Schlüssel ist VENUS. - | | | - | ---------------------- | ------------------------------- | - | wiederholter Schlüssel | V E N U S V E N U S V E N U S V | - | Klartext | p o l y a l p h a b e t i s c h | - | Chiffretext | K S Y S S G T U U T Z X V M U C | + + \begin{tabular}{c|c} + wiederholter Schlüssel & V E N U S V E N U S V E N U S V \\ + Klartext & p o l y a l p h a b e t i s c h \\ + Chiffretext & K S Y S S G T U U T Z X V M U C + \end{tabular} Wir werden die Längen $s$ des Schlüssels und $l$ des Klartextes ,,sinnvoll'' beschränken: @@ -582,17 +580,16 @@ Wir betrachten ein Beispiel für eine solche Analyse an einem Chiffretext. (In der klassischen Kryptographie war es üblich, die Texte in Fünfergruppen einzuteilen, um das Abzählen von Buchstabenpositionen zu erleichtern). - | | - | ----------------------------------------------------------- | - | EYRYC FWLJH FHSIU BHMJO UCSEG TNEER FLJLV SXMVY SSTKC MIKZS | - | JHZVB FXMXK PMMVW OZSIA FCRVF TNERH MCGYS OVYVF PNEVH JAOVW | - | UUYJU FOISH XOVUS FMKRP TWLCI FMWVZ TYOIS UUIIS ECIZV SVYVF | - | PCQUC HYRGO MUWKV BNXVB VHHWI FLMYF FNEVH JAOVW ULYER AYLER | - | VEEKS OCQDC OUXSS LUQVB FMALF EYHRT VYVXS TIVXH EUWJG JYARS | - | ILIER JBVVF BLFVW UHMTV UAIJH PYVKK VLHVB TCIUI SZXVB JBVVP | - | VYVFG BVIIO VWLEW DBXMS SFEJG FHFVJ PLWZS FCRVU FMXVZ MNIRI | - | GAESS HYPFS TNLRH UYR | - + \begin{tabular}{c} + EYRYC FWLJH FHSIU BHMJO UCSEG TNEER FLJLV SXMVY SSTKC MIKZS \\ + JHZVB FXMXK PMMVW OZSIA FCRVF TNERH MCGYS OVYVF PNEVH JAOVW \\ + UUYJU FOISH XOVUS FMKRP TWLCI FMWVZ TYOIS UUIIS ECIZV SVYVF \\ + PCQUC HYRGO MUWKV BNXVB VHHWI FLMYF FNEVH JAOVW ULYER AYLER \\ + VEEKS OCQDC OUXSS LUQVB FMALF EYHRT VYVXS TIVXH EUWJG JYARS \\ + ILIER JBVVF BLFVW UHMTV UAIJH PYVKK VLHVB TCIUI SZXVB JBVVP \\ + VYVFG BVIIO VWLEW DBXMS SFEJG FHFVJ PLWZS FCRVU FMXVZ MNIRI \\ + GAESS HYPFS TNLRH UYR + \end{tabular} \begin{itemize*} \item $y^0 =EFFBUTFSSMJFPOFTMOPJUFXFTFTUESPHMBVFFJUAVOOLFEVTEJIJBUUPVTSJVBVDSFPFFMGHTU$. \item Buchstaben in $y^0$ mit Häufigkeiten $>1:AB(4)DE(4)F(14)GH(2)IJ(5)LM(3)O(4)P(5)S(5)T(7)U(7)V(6)X$ @@ -644,43 +641,32 @@ Beispiel 1.34 Im Chiffretext von Abbildung 1 kommen (mindestens) die folgenden Wörter der Länge 3 mehrfach vor. Wir geben die Positionen und die Abstände an. - | | \#Wörter | - | ----------------------------------------------------------- | ------- | - | AWMCJ IENAW NMOZV EYJOK HPXNK TFKQC JPJSJ NTIVT TCOJA AWKBS | 50 | - | NHKBV UYMJG NNUAH UEKFF DLNSJ SZRZL EUKRW IYLCJ MLZWC ECOBM | 100 | - | NOPSV ECOBX OCSOL IVKFC EYTHF IDYSM EMKFV IPCSK EYZZA CSKBS | 150 | - | LRUFA TSSWK CSKBO ECQNW URKVS BPTIW BPXGL RFQHM RPTRA EPYSJ | 200 | - | LLAPW NOGHW NPLTA ZTKBL ZFUFY AYOGA ECKBM NOGIX ZFLWF DPTIW | 250 | - | BPXVS EFLWY BPTIL ZEKOD GZXWL HXKBM NOAST ECJWW SEGBV ACJHW | 300 | - | CSTWC EYSWL DPTSF MLTOD GZXWL HXOGU HPVFG BWKAW MZJSD LTKFW | 350 | - | NGKFK TPNSF UYJZG EDKBC AYT | - - | Wort | Positionen | Abstände | - | --------- | --------------- | -------- | - | ODGZXWLHX | 269 , 319 | 50 | - | DPT | 246 , 311 | 65 | - | BPT | 176 , 261 | 115 | - | ECOB | 96 , 106 | 10 | - | CSK | 138 , 146 , 161 | 8*, 15 | - | AWM | 1 , 339 | 338* | - | PTIWBPX | 177 , 247 | 70 | - | BMNO | 99 , 234 , 279 | 135 , 45 | + \begin{tabular}{c|c} + & \#Wörter \\\hline + AWMCJ IENAW NMOZV EYJOK HPXNK TFKQC JPJSJ NTIVT TCOJA AWKBS & 50 \\ + NHKBV UYMJG NNUAH UEKFF DLNSJ SZRZL EUKRW IYLCJ MLZWC ECOBM & 100 \\ + NOPSV ECOBX OCSOL IVKFC EYTHF IDYSM EMKFV IPCSK EYZZA CSKBS & 150 \\ + LRUFA TSSWK CSKBO ECQNW URKVS BPTIW BPXGL RFQHM RPTRA EPYSJ & 200 \\ + LLAPW NOGHW NPLTA ZTKBL ZFUFY AYOGA ECKBM NOGIX ZFLWF DPTIW & 250 \\ + BPXVS EFLWY BPTIL ZEKOD GZXWL HXKBM NOAST ECJWW SEGBV ACJHW & 300 \\ + CSTWC EYSWL DPTSF MLTOD GZXWL HXOGU HPVFG BWKAW MZJSD LTKFW & 350 \\ + NGKFK TPNSF UYJZG EDKBC AYT + \end{tabular} + \begin{tabular}{c|c|c} + Wort & Positionen & Abstände \\\hline + ODGZXWLHX & 269 , 319 & 50 \\ + DPT & 246 , 311 & 65 \\ + BPT & 176 , 261 & 115 \\ + ECOB & 96 , 106 & 10 \\ + CSK & 138 , 146 , 161 & 8*, 15 \\ + AWM & 1 , 339 & 338* \\ + PTIWBPX & 177 , 247 & 70 \\ + BMNO & 99 , 234 , 279 & 135 , 45 +\end{tabular} Wir vermuten: Periode ist 5 (dann wären Wiederholungen von AWM und CSK durch Zufall entstanden) - Das Ergebnis der Entschlüsselung wie oben beschrieben mit vermuteter Schlüssellänge 5 und versuchten Schlüsseln ALGXS (erfolglos) und ALGOS (erfolgreich) ergibt den folgenden Text. - | | \#Wörter | - | ----------------------------------------------------------- | ------- | - | algor ithme nbild endas herzs tueck jeder nicht trivi alena | 50 | - | nwend ungvo ncomp utern daher sollt ejede infor matik erinu | 100 | - | ndjed erinf ormat ikerk enntn isseu eberd iewes entli chena | 150 | - | lgori thmis chenw erkze ugeha benue berst ruktu rendi eeser | 200 | - | laube ndate neffi zient zuorg anisi erenu ndauf zufin denue | 250 | - | berha eufig benut zteal gorit hmenu ndueb erdie stand ardte | 300 | - | chnik enmit denen manal gorit hmisc hepro bleme model liere | 350 | - | nvers tehen undlo esenk ann | - - Mit Wortzwischenräumen und Satzzeichen: + Das Ergebnis der Entschlüsselung wie oben beschrieben mit vermuteter Schlüssellänge 5 und versuchten Schlüsseln ALGXS (erfolglos) und ALGOS (erfolgreich) ergibt den folgenden Text. Mit Wortzwischenräumen und Satzzeichen: Algorithmen bilden das Herzstück jeder nichttrivialen Anwendung von Computern. Daher sollte jede Informatikerin und jeder Informatiker Kenntnisse über die wesentlichen algorithmischen Werkzeuge haben: über Strukturen, die es erlauben, Daten effizient zu organisieren und aufzufinden, über häufig benutzte Algorithmen und über die Standardtechniken, mit denen man algorithmische Probleme modellieren, verstehen und lösen kann. Bemerkungen: @@ -717,9 +703,10 @@ Eine tatsächliche Durchführung des Verfahrens mit Chiffretexten wie im vorigen Kapitel erfordert viel Geduld (oder den Einsatz eines Computers). Beim ,,venezianischen'' Chiffretext EYRYC...UYR von oben ergibt sich: - | $a_i$ | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | - | ------ | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | - | $n'_i$ | 8 | 12 | 13 | 2 | 18 | 25 | 7 | 19 | 20 | 14 | 8 | 15 | 16 | 7 | 12 | 8 | 3 | 15 | 25 | 10 | 19 | 41 | 13 | 11 | 19 | 8 | + \begin{tabular}{c|c|c} + $a_i$ & A & B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z \\ + $n'_i$ & 8 & 12 | 13 | 2 | 18 | 25 | 7 | 19 | 20 | 14 | 8 | 15 | 16 | 7 | 12 | 8 | 3 | 15 | 25 | 10 | 19 | 41 | 13 | 11 | 19 | 8 + \end{tabular} Dies liefert $IC(y)\approx 0,048024$ und $l=368$. Damit erhalten wir $s\approx\frac{0,0375*368}{367 *0,048024-0,0385 *368+0,076}\approx 3,9$. Das ist nicht zu nahe am tatsächlichen Wert 5, aber auch nicht ungeheuer weit weg. (Die Formel reagiert sehr empfindlich auf kleine Änderungen in $IC(y)$. Mit $IC(y)=0,05$ ergibt sich $s\approx 3,24$, mit $IC(y)=0,046$ ergibt sich $s\approx 4,95$.) @@ -801,9 +788,10 @@ Ein typischer Vertreter dieser Art Kryptosystem ist DES (bzw. sind die Chiffren der DES-Familie). Die DES-Version mit Blocklänge 64 und effektiver Schlüsselbreite 56 (das heißt, dass der Schlüsselraum Größe $2^{56}$ hat) wurde im Jahr 1977 als Standard für nicht geheime Dokumente in den USA publiziert. ,,Lineare Kryptanalyse'' ist eine Methode, solche Verfahren zu attackieren. Nach Weiterentwicklung der Methode gelang 1999 die Entschlüsselung einer DES-verschlüsselten Nachricht in weniger als einem Tag, mit einem Verbund von 100000 Arbeitsplatzrechnern, die im Wesentlichen alle Schlüssel durchprobierten. Dabei wurden über 240 Milliarden Schlüssel pro Sekunde getestet. Stärkere Varianten wie Triple-DES werden auch heute noch eingesetzt. Beispiel 2.6 Die Wortanzahl ist $m=3$, die Wortlänge $n=4$, die Rundenzahl $r=3$, die Schlüssellänge $s=24=6*n$, und $\kappa (k,i)=k^{(i)}k^{(i+1)}k^{(i+2)}$. Die Bitpermutation $\beta$ vertauscht die Bits $(0,4),(1,5),(2,8),(3,9),(6,10)$ und $(7,11)$ und ist damit selbst invers. Die S-Box ist gegeben durch die folgende zweizeilige Tabelle: - | b | 0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 | - | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | - | S(b) | 0101 | 0100 | 1101 | 0001 | 0011 | 1100 | 1011 | 1000 | 1010 | 0010 | 0110 | 1111 | 1001 | 1110 | 0000 | 0111 | + \begin{tabular}{c|c|c} + | b | 0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 \\ + | S(b) | 0101 | 0100 | 1101 | 0001 | 0011 | 1100 | 1011 | 1000 | 1010 | 0010 | 0110 | 1111 | 1001 | 1110 | 0000 | 0111 + \end{tabular} Für $x= 0000 1111 0000$ und $k=0000 0001 0010 0011 0100 0101$ ergeben sich nacheinander \begin{enumerate*} @@ -834,27 +822,29 @@ Als Addition $\oplus$ benutzen wir die gewöhnliche Addition von Polynomen, also die komponentenweise Addition der Tupel. Bei $F=\mathbb{Z}^k_2$ ist dies einfach das bitweise XOR. Wir geben die Additionstafel für $k=4$ an. Die Elemente des Körpers $GF(2^4)$ werden dabei wir üblich als Hexadezimalziffern geschrieben. Achtung: Man muss die Einträge richtig interpretieren, nämlich als Bitstrings, nicht als Zahlen: $5\oplus C=0101\oplus 1100=1001=9$. - | $\oplus$ | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | - | -------- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | - | 0 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | - | 1 | 1 | 0 | 3 | 2 | 5 | 4 | 7 | 6 | 9 | 8 | B | A | D | C | F | E | - | 2 | 2 | 3 | 0 | 1 | 6 | 7 | 4 | 5 | A | B | 8 | 9 | E | F | C | D | - | ... | + \begin{tabular}{c|c|c} + | $\oplus$ | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F \\\hline + | 0 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F \\ + | 1 | 1 | 0 | 3 | 2 | 5 | 4 | 7 | 6 | 9 | 8 | B | A | D | C | F | E \\ + | 2 | 2 | 3 | 0 | 1 | 6 | 7 | 4 | 5 | A | B | 8 | 9 | E | F | C | D \\ + | ... + \end{tabular} Die Multiplikation $\odot$ ist etwas komplizierter. Es wird ein irreduzibles Polynom $f=X^k+a_{k-1}* X^{k-1}+...+a_1*X+a_0$ vom Grad k (mit ,,Leitkoeffizient'' $a_k=1$) benötigt, also ein Koeffiziententupel $(1,a_{k-1},...,a_1,a_0)$ mit der Eigenschaft, dass man nicht $f=f_1*f_2$ schreiben kann, für Polynome $f_1$ und $f_2$, die Grad $\geq 1$ haben. Man kann zeigen, dass es für jedes $k\geq 2$ stets solche Polynome gibt. Sie können mit randomisierten Algorithmen effizient gefunden werden. Hier einige Beispiele für $F=\mathbb{Z}_2$. Wie üblich schreibt man die Koeffizientenfolge als Bitstring. Dieser Bitstring kann dann auch als natürliche Zahl (dezimal geschrieben) interpretiert werden. - | k | irreduzibles Polynom vom Grad k über $\mathbb{Z}_2$ | Kurzform | Zahl | - | --- | --------------------------------------------------- | --------- | ---- | - | 1 | $X+ 1$ | 11 | 3 | - | 2 | $X^2 +X+ 1$ | 111 | 7 | - | 3 | $X^3 +X+ 1$ | 1011 | 11 | - | 4 | $X^4 +X+ 1$ | 10011 | 19 | - | 5 | $X^5 +X^2 + 1$ | 100101 | 37 | - | 6 | $X^6 +X+ 1$ | 1000011 | 67 | - | 7 | $X^7 +X^3 + 1$ | 10001001 | 137 | - | 8 | $X^8 +X^4 +X^3 +X+ 1$ | 100011011 | 283 | + \begin{tabular}{c|c|c} + | k | irreduzibles Polynom vom Grad k über $\mathbb{Z}_2$ | Kurzform | Zahl \\\hline + | 1 | $X+ 1$ | 11 | 3 \\ + | 2 | $X^2 +X+ 1$ | 111 | 7 \\ + | 3 | $X^3 +X+ 1$ | 1011 | 11 \\ + | 4 | $X^4 +X+ 1$ | 10011 | 19 \\ + | 5 | $X^5 +X^2 + 1$ | 100101 | 37 \\ + | 6 | $X^6 +X+ 1$ | 1000011 | 67 \\ + | 7 | $X^7 +X^3 + 1$ | 10001001 | 137 \\ + | 8 | $X^8 +X^4 +X^3 +X+ 1$ | 100011011 | 283 + \end{tabular} Das Polynom $X^2+1=(1,0,1)=101$ ist nicht irreduzibel, da über $\mathbb{Z}_2$ die Gleichung $(X+1)*(X+1)=X^2+1$ gilt. @@ -864,50 +854,53 @@ Man kann durch geduldiges Multiplizieren und Bilden von Resten (also Dividieren von Polynomen) in dieser Weise eine komplette Multiplikationstabelle aufstellen. Geschickter ist Folgendes: Man berechnet alle Produkte $g*h mod f$, für die in g und in h jeweils die ersten beiden Bits oder die letzten beiden Bits 0 sind. (Wenn man beobachtet, dass $(0,0,0,1)=0001$ das neutrale Element ist, und die Kommutativität berücksichtigt, muss man nur 15 Produkte berechnen.) Es ergibt sich die folgende Tabelle. - | $\odot$ | 0000 | 0001 | 0010 | 0011 | 0100 | 1000 | 1100 | - | ------- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | - | 0000 | 0000 | 0000 | 0000 | 0000 | 0000 | 0000 | 0000 | - | 0001 | 0000 | 0001 | 0010 | 0011 | 0100 | 1000 | 1100 | - | 0010 | 0000 | 0010 | 0100 | 0110 | 1000 | 0011 | 1011 | - | 0011 | 0000 | 0011 | 0110 | 0101 | 1100 | 1011 | 0111 | - | 0100 | 0000 | 0100 | 1000 | 1100 | 0011 | 0110 | 0101 | - | 1000 | 0000 | 1000 | 0011 | 1011 | 0110 | 1100 | 1010 | - | 1100 | 0000 | 1100 | 1011 | 0111 | 0101 | 1010 | 1111 | + \begin{tabular}{c} + | $\odot$ | 0000 | 0001 | 0010 | 0011 | 0100 | 1000 | 1100 \\\hline + | 0000 | 0000 | 0000 | 0000 | 0000 | 0000 | 0000 | 0000 \\ + | 0001 | 0000 | 0001 | 0010 | 0011 | 0100 | 1000 | 1100 \\ + | 0010 | 0000 | 0010 | 0100 | 0110 | 1000 | 0011 | 1011 \\ + | 0011 | 0000 | 0011 | 0110 | 0101 | 1100 | 1011 | 0111 \\ + | 0100 | 0000 | 0100 | 1000 | 1100 | 0011 | 0110 | 0101 \\ + | 1000 | 0000 | 1000 | 0011 | 1011 | 0110 | 1100 | 1010 \\ + | 1100 | 0000 | 1100 | 1011 | 0111 | 0101 | 1010 | 1111 + \end{tabular} Wir notieren weiterhin Bitstrings $(a_3,a_2,a_1,a_0)=a_3a_2a_1a_0$ hexadezimal. Das Polynom $g=(1,0,1,1)=1011$ ist also $B=1000\oplus 0011=8\oplus 3$, das Polynom $h=(0,1,1,0)=0110$ ist $6=0100\oplus 0010=4\oplus 2$. Die Tabelle sieht dann so aus: - | $\odot$ | 0 | 1 | 2 | 3 | 4 | 8 | C | - | ------- | --- | --- | --- | --- | --- | --- | --- | - | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | - | 1 | 0 | 1 | 2 | 3 | 4 | 8 | C | - | 2 | 0 | 2 | 4 | 6 | 8 | 3 | B | - | 3 | 0 | 3 | 6 | 5 | C | B | 7 | - | 4 | 0 | 4 | 8 | C | 3 | 6 | 5 | - | 8 | 0 | 8 | 3 | B | 6 | C | A | - | C | 0 | C | B | 7 | 5 | A | F | + \begin{tabular}{c} + | $\odot$ | 0 | 1 | 2 | 3 | 4 | 8 | C \\\hline + | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 \\ + | 1 | 0 | 1 | 2 | 3 | 4 | 8 | C \\ + | 2 | 0 | 2 | 4 | 6 | 8 | 3 | B \\ + | 3 | 0 | 3 | 6 | 5 | C | B | 7 \\ + | 4 | 0 | 4 | 8 | C | 3 | 6 | 5 \\ + | 8 | 0 | 8 | 3 | B | 6 | C | A \\ + | C | 0 | C | B | 7 | 5 | A | F + \end{tabular} Nun wollen wir beliebige Polynome multiplizieren. Beispiel: Um $g=(1,0,1,1)=1011=B$ und $h=(0,1,1,0)=0110=6$ zu multiplizieren, rechnet man unter Benutzung der Tabelle und des Distributivgesetzes wie folgt (Multiplikation modulo f): $B\odot 6=(8\oplus 3)(4\oplus 2)=(8\odot 4)\oplus(8\odot 2)\oplus(3\odot 4)\oplus(3\odot 2)=6\oplus 3\oplus C\oplus 6= 0110\oplus 0011 \oplus 1100 \oplus 0110 = 1111 = F$. Mit etwas Geduld und unter Ausnutzung des Distributivgesetzes lässt sich auf diese Weise die folgende Multiplikationstabelle für die Elemente von $\mathbb{Z}^4_2$ finden. - | | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | - | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | - | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | - | 1 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | - | 2 | 0 | 2 | 4 | 6 | 8 | A | C | E | 3 | 1 | 7 | 5 | B | 9 | F | D | - | 3 | 0 | 3 | 6 | 5 | C | F | A | 9 | B | 8 | D | E | 7 | 4 | 1 | 2 | - | 4 | 0 | 4 | 8 | C | 3 | 7 | B | F | 6 | 2 | E | A | 5 | 1 | D | 9 | - | 5 | 0 | 5 | A | F | 7 | 2 | D | 8 | E | B | 4 | 1 | 9 | C | 3 | 6 | - | 6 | 0 | 6 | C | A | B | D | 7 | 1 | 5 | 3 | 9 | F | E | 8 | 2 | 4 | - | 7 | 0 | 7 | E | 9 | F | 8 | 1 | 6 | D | A | 3 | 4 | 2 | 5 | C | B | - | 8 | 0 | 8 | 3 | B | 6 | E | 5 | D | C | 4 | F | 7 | A | 2 | 9 | 1 | - | 9 | 0 | 9 | 1 | 8 | 2 | B | 3 | A | 4 | D | 5 | C | 6 | F | 7 | E | - | A | 0 | A | 7 | D | E | 4 | 9 | 3 | F | 5 | 8 | 2 | 1 | B | 6 | C | - | B | 0 | B | 5 | E | A | 1 | F | 4 | 7 | C | 2 | 9 | D | 6 | 8 | 3 | - | C | 0 | C | B | 7 | 5 | 9 | E | 2 | A | 6 | 1 | D | F | 3 | 4 | 8 | - | D | 0 | D | 9 | 4 | 1 | C | 8 | 5 | 2 | F | B | 6 | 3 | E | A | 7 | - | E | 0 | E | F | 1 | D | 3 | 2 | C | 9 | 7 | 6 | 8 | 4 | A | B | 5 | - | F | 0 | F | D | 2 | 9 | 6 | 4 | B | 1 | E | C | 3 | 8 | 7 | 5 | A | + \begin{tabular}{c} + | | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F \\\hline + | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 \\ + | 1 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F \\ + | 2 | 0 | 2 | 4 | 6 | 8 | A | C | E | 3 | 1 | 7 | 5 | B | 9 | F | D \\ + | 3 | 0 | 3 | 6 | 5 | C | F | A | 9 | B | 8 | D | E | 7 | 4 | 1 | 2 \\ + | 4 | 0 | 4 | 8 | C | 3 | 7 | B | F | 6 | 2 | E | A | 5 | 1 | D | 9 \\ + | 5 | 0 | 5 | A | F | 7 | 2 | D | 8 | E | B | 4 | 1 | 9 | C | 3 | 6 \\ + | 6 | 0 | 6 | C | A | B | D | 7 | 1 | 5 | 3 | 9 | F | E | 8 | 2 | 4 \\ + | 7 | 0 | 7 | E | 9 | F | 8 | 1 | 6 | D | A | 3 | 4 | 2 | 5 | C | B \\ + | 8 | 0 | 8 | 3 | B | 6 | E | 5 | D | C | 4 | F | 7 | A | 2 | 9 | 1 \\ + | 9 | 0 | 9 | 1 | 8 | 2 | B | 3 | A | 4 | D | 5 | C | 6 | F | 7 | E \\ + | A | 0 | A | 7 | D | E | 4 | 9 | 3 | F | 5 | 8 | 2 | 1 | B | 6 | C \\ + | B | 0 | B | 5 | E | A | 1 | F | 4 | 7 | C | 2 | 9 | D | 6 | 8 | 3 \\ + | C | 0 | C | B | 7 | 5 | 9 | E | 2 | A | 6 | 1 | D | F | 3 | 4 | 8 \\ + | D | 0 | D | 9 | 4 | 1 | C | 8 | 5 | 2 | F | B | 6 | 3 | E | A | 7 \\ + | E | 0 | E | F | 1 | D | 3 | 2 | C | 9 | 7 | 6 | 8 | 4 | A | B | 5 \\ + | F | 0 | F | D | 2 | 9 | 6 | 4 | B | 1 | E | C | 3 | 8 | 7 | 5 | A + \end{tabular} Das neutrale Element der Multiplikation ist das Polynom $1=(0,..., 0 ,1) = 0... 01$. Man beobachtet, dass in jeder Zeile (und ebenso in jeder Spalte) der Tabelle, außer der für das Nullpolynom, alle Elemente genau einmal vorkommen. Dies ist für jeden Körper F und jedes beliebige k so, und es folgt daraus, dass die Elemente der Menge $F^k-\{0\}$ ein Inverses haben. @@ -934,15 +927,17 @@ Fakt 2.7 Sei F ein endlicher Körper mit $q$ Elementen. Dann gibt es in Fein ,,primitives Element'' g, d.h., g erfüllt $\{g^i| 0 \geq i < q-1\}=F-\{0\}$. (g ist erzeugendes Element der multiplikativen Gruppe von F.) Beispiel: Wir hatten oben eine Multiplikationstabelle für $GF(2^4)$ aufgestellt. Mit ihrer Hilfe findet man leicht die ersten 15 Potenzenvon 2: - Potenztab elle: - | i | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | - | -------------- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | - | $exp_2(i)=2^i$ | 1 | 2 | 4 | 8 | 3 | 6 | C | B | 5 | A | 7 | E | F | D | 9 | + Potenztabelle: + \begin{tabular}{c} + | i | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 \\\hline + | $exp_2(i)=2^i$ | 1 | 2 | 4 | 8 | 3 | 6 | C | B | 5 | A | 7 | E | F | D | 9 + \end{tabular} Diese Potenzen sind alle verschieden, also ist $g=2$ primitives Element. Die entsprechende Logarithmentab elle sieht so aus: - | x | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | - | ---------- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | - | $log_2(x)$ | 0 | 1 | 4 | 2 | 8 | 5 | 10 | 3 | 14 | 9 | 7 | 6 | 13 | 11 | 12 | + \begin{tabular}{c} + | x | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F \\\hline + | $log_2(x)$ | 0 | 1 | 4 | 2 | 8 | 5 | 10 | 3 | 14 | 9 | 7 | 6 | 13 | 11 | 12 + \end{tabular} Achtung: Der Index der Exponential- und der Logarithmenfunktion ist nicht die natürliche Zahl 2, sondern 2, das ist das Element $X=0010$ von $GF(2^4)$. @@ -1055,24 +1050,25 @@ \end{itemize*} Abbildung 3: Die S-Box für AES. $S(z_1 z_0)$ für Hexziffern $z_1,z_0$ steht in Zeile $z_1$, Spalte $z_0$. Beispiel: $S(A4)=49$. - | | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | - | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | - | 0 | 63 | 7C | 77 | 7B | F2 | 6B | 6F | C5 | 30 | 01 | 67 | 2B | FE | D7 | AB | 76 | - | 1 | CA | 82 | C9 | 7D | FA | 59 | 47 | F0 | AD | D4 | A2 | AF | 9C | A4 | 72 | C0 | - | 2 | B7 | FD | 93 | 26 | 36 | 3F | F7 | CC | 34 | A5 | E5 | F1 | 71 | D8 | 31 | 15 | - | 3 | 04 | C7 | 23 | C3 | 18 | 96 | 05 | 9A | 07 | 12 | 80 | E2 | EB | 27 | B2 | 75 | - | 4 | 09 | 83 | 2C | 1A | 1B | 6E | 5A | A0 | 52 | 3B | D6 | B3 | 29 | E3 | 2F | 84 | - | 5 | 53 | D1 | 00 | ED | 20 | FC | B1 | 5B | 6A | CB | BE | 39 | 4A | 4C | 58 | CF | - | 6 | D0 | EF | AA | FB | 43 | 4D | 33 | 85 | 45 | F9 | 02 | 7F | 50 | 3C | 9F | A8 | - | 7 | 51 | A3 | 40 | 8F | 92 | 9D | 38 | F5 | BC | B6 | DA | 21 | 10 | FF | F3 | D2 | - | 8 | CD | 0C | 13 | EC | 5F | 97 | 44 | 17 | C4 | A7 | 7E | 3D | 64 | 5D | 19 | 73 | - | 9 | 60 | 81 | 4F | DC | 22 | 2A | 90 | 88 | 46 | EE | B8 | 14 | DE | 5E | 0B | DB | - | A | E0 | 32 | 3A | 0A | 49 | 06 | 24 | 5C | C2 | D3 | AC | 62 | 91 | 95 | E4 | 79 | - | B | E7 | C8 | 37 | 6D | 8D | D5 | 4E | A9 | 6C | 56 | F4 | EA | 65 | 7A | AE | 08 | - | C | BA | 78 | 25 | 2E | 1C | A6 | B4 | C6 | E8 | DD | 74 | 1F | 4B | BD | 8B | 8A | - | D | 70 | 3E | B5 | 66 | 48 | 03 | F6 | 0E | 61 | 35 | 57 | B9 | 86 | C1 | 1D | 9E | - | E | E1 | F8 | 98 | 11 | 69 | D9 | 8E | 94 | 9B | 1E | 87 | E9 | CE | 55 | 28 | DF | - | F | 8C | A1 | 89 | 0D | BF | E6 | 42 | 68 | 41 | 99 | 2D | 0F | B0 | 54 | BB | 16 | + \begin{tabular}{c} + | | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F \\\hline + | 0 | 63 | 7C | 77 | 7B | F2 | 6B | 6F | C5 | 30 | 01 | 67 | 2B | FE | D7 | AB | 76 \\ + | 1 | CA | 82 | C9 | 7D | FA | 59 | 47 | F0 | AD | D4 | A2 | AF | 9C | A4 | 72 | C0 \\ + | 2 | B7 | FD | 93 | 26 | 36 | 3F | F7 | CC | 34 | A5 | E5 | F1 | 71 | D8 | 31 | 15 \\ + | 3 | 04 | C7 | 23 | C3 | 18 | 96 | 05 | 9A | 07 | 12 | 80 | E2 | EB | 27 | B2 | 75 \\ + | 4 | 09 | 83 | 2C | 1A | 1B | 6E | 5A | A0 | 52 | 3B | D6 | B3 | 29 | E3 | 2F | 84 \\ + | 5 | 53 | D1 | 00 | ED | 20 | FC | B1 | 5B | 6A | CB | BE | 39 | 4A | 4C | 58 | CF \\ + | 6 | D0 | EF | AA | FB | 43 | 4D | 33 | 85 | 45 | F9 | 02 | 7F | 50 | 3C | 9F | A8 \\ + | 7 | 51 | A3 | 40 | 8F | 92 | 9D | 38 | F5 | BC | B6 | DA | 21 | 10 | FF | F3 | D2 \\ + | 8 | CD | 0C | 13 | EC | 5F | 97 | 44 | 17 | C4 | A7 | 7E | 3D | 64 | 5D | 19 | 73 \\ + | 9 | 60 | 81 | 4F | DC | 22 | 2A | 90 | 88 | 46 | EE | B8 | 14 | DE | 5E | 0B | DB \\ + | A | E0 | 32 | 3A | 0A | 49 | 06 | 24 | 5C | C2 | D3 | AC | 62 | 91 | 95 | E4 | 79 \\ + | B | E7 | C8 | 37 | 6D | 8D | D5 | 4E | A9 | 6C | 56 | F4 | EA | 65 | 7A | AE | 08 \\ + | C | BA | 78 | 25 | 2E | 1C | A6 | B4 | C6 | E8 | DD | 74 | 1F | 4B | BD | 8B | 8A \\ + | D | 70 | 3E | B5 | 66 | 48 | 03 | F6 | 0E | 61 | 35 | 57 | B9 | 86 | C1 | 1D | 9E \\ + | E | E1 | F8 | 98 | 11 | 69 | D9 | 8E | 94 | 9B | 1E | 87 | E9 | CE | 55 | 28 | DF \\ + | F | 8C | A1 | 89 | 0D | BF | E6 | 42 | 68 | 41 | 99 | 2D | 0F | B0 | 54 | BB | 16 + \end{tabular} \paragraph{Die S-Box von AES:} Die S-Box ist als $16\times 16$-Tabelle gegeben, siehe Abb.3. Zur kompakten Darstellung wird ein Element $(a_7,a_6,a_5,a_4,a_3,a_2,a_1,a_0)$ von $GF(2^8)$ in zwei Hexziffern zerlegt: $(a_7,a_6,a_5,a_4)$ ist der Zeilenindex, $(a_3,a_2,a_1,a_0)$ der Spaltenindex der Position von $S((a_7,a_6,a_5,a_4,a_3,a_2,a_1,a_0))$. @@ -1667,17 +1663,18 @@ Die eigentliche Rechnung findet in der while-Schleife statt. In dieser Schleife wird immer ein Zahlenpaar durch ein anderes ersetzt, das dieselben gemeinsamen Teiler hat wie $x$ und $y$. Wenn der Algorithmus terminiert, weil der Inhalt $b$ von $b$ Null geworden ist, kann man den Inhalt von $a$ ausgeben. Beispiel: Auf Eingabe $x=10534, y=12742$ ergibt sich der nachstehenden Tabelle angegebene Ablauf. Die Zahlen $a_i$ und $b_i$ bezeichnen den Inhalt der Variablen $a$ und $b$, nachdem die Schleife in Zeilen $2-3$ i-mal ausgeführt worden ist. Die Ausgabe ist $46 = ggT(10534,12742)$. - | i | $a_i$ | $b_i$ | - | --- | ----- | ----- | - | 0 | 10534 | 12742 | - | 1 | 12742 | 10534 | - | 2 | 10534 | 2208 | - | 3 | 2208 | 1702 | - | 4 | 1702 | 506 | - | 5 | 506 | 184 | - | 6 | 184 | 138 | - | 7 | 138 | 46 | - | 8 | 46 | 0 | + \begin{tabular}{c} + | i | $a_i$ | $b_i$ \\\hline + | 0 | 10534 | 12742 \\ + | 1 | 12742 | 10534 \\ + | 2 | 10534 | 2208 \\ + | 3 | 2208 | 1702 \\ + | 4 | 1702 | 506 \\ + | 5 | 506 | 184 \\ + | 6 | 184 | 138 \\ + | 7 | 138 | 46 \\ + | 8 | 46 | 0 + \end{tabular} Fakt 4.4 Algorithmus 4.1 gibt $ggT(x,y)$ aus. @@ -1738,17 +1735,18 @@ Diese Gleichung wird durch die Initialisierung hergestellt. In einem Schleifendurchlauf wird $a$ durch $b$ ersetzt und $(s_a,t_a)$ durch $(s_b,t_b)$, und es wird $b$ durch $a-q*b$ ersetzt sowie $(s_b,t_b)$ durch $(s_a-q*s_b, t_a-q*t_b)$. Dadurch bleiben die Gleichungen (4.2) gültig. Wenn schließlich $b=0$ geworden ist, gilt $d=ggT(x,y) =a=s_a*x+t_a*y$. Das bedeutet, dass die Ausgabe das gewünschte Ergebnis darstellt. Als Beispiel betrachten wir den Ablauf des Algorithmus auf der Eingabe $(x,y) =(10534,12742)$. Die Zahlen $a_i,b_i,s_{a,i},t_{a,i},s_{b,i},t_{b,i}$ bezeichnen den Inhalt von $a,b,sa,ta,sb,tb$ nach dem i-ten Schleifendurchlauf. - | $i$ | $a_i$ | $b_i$ | $s_{a,i}$ | $t_{a,i}$ | $s_{b,i}$ | $t_{b,i}$ | $q_i$ | - | --- | ----- | ----- | --------- | --------- | --------- | --------- | ----- | - | 0 | 10534 | 12742 | | 1 | 0 | 0 | 1 | - | - | 1 | 12742 | 10534 | | 0 | 1 | 1 | 0 | - | - | 2 | 10534 | 2208 | 1 | 0 | - | 1 | 1 | 1 | - | 3 | 2208 | 1702 | - | 1 | 1 | 5 - | 4 | 4 | - | 4 | 1702 | 506 | 5 | - | 4 | - 6 | 5 | 1 | - | 5 | 506 | 184 | - | 6 | 5 | 23 | - | 19 | 3 | - | 6 | 184 | 138 | 23 | - | 19 | - | 52 | 43 | 2 | - | 7 | 138 | 46 | - | 52 | 43 | 75 | - | 62 | 1 | - | 8 | 46 | 0 75 | - | 62 | - | 277 | 229 | 3 | + \begin{tabular}{c} + | $i$ | $a_i$ | $b_i$ | $s_{a,i}$ | $t_{a,i}$ | $s_{b,i}$ | $t_{b,i}$ | $q_i$ \\\hline + | 0 | 10534 | 12742 | | 1 | 0 | 0 | 1 | - \\ + | 1 | 12742 | 10534 | | 0 | 1 | 1 | 0 | - \\ + | 2 | 10534 | 2208 | 1 | 0 | - | 1 | 1 | 1 \\ + | 3 | 2208 | 1702 | - | 1 | 1 | 5 - | 4 | 4 \\ + | 4 | 1702 | 506 | 5 | - | 4 | - 6 | 5 | 1 \\ + | 5 | 506 | 184 | - | 6 | 5 | 23 | - | 19 | 3 \\ + | 6 | 184 | 138 | 23 | - | 19 | - | 52 | 43 | 2 \\ + | 7 | 138 | 46 | - | 52 | 43 | 75 | - | 62 | 1 \\ + | 8 | 46 | 0 75 | - | 62 | - | 277 | 229 | 3 + \end{tabular} Die Ausgabe ist $(46, 75 ,-62)$. Man überprüft leicht, dass $$46 = ggT(10534,12742) = 75* 10534 - 62 * 12742$$ @@ -1839,14 +1837,15 @@ Man erkennt sofort, dass in jeder Rekursionsebene die Bitanzahl des Exponenten $y$ um 1 sinkt, dass also die Anzahl der Rekursionsebenen etwa $log\ y$ beträgt. In jeder Rekursionsstufe ist eine oder sind zwei Multiplikationen modulo m auszuführen, was $O((log\ m)^2)$ Ziffernoperationen erfordert (Schulmethode). Beispiel: Wir berechnen $13^{43} mod\ 19$. - | $i$ | | $x^{2^i} mod\ 19$ | $\lfloor y/2^i\rfloor$ | Faktor (wenn $\lfloor y/2^i\rfloor$ ungerade) | - | --- | -------- | --------------------------------------- | ---------------------- | --------------------------------------------- | - | 0 | $x$ | $13$ | $43$ | $13$ | - | 1 | $x^2$ | $13^2 \equiv (-6)^2 \equiv 36\equiv 17$ | $21$ | $17$ | - | 2 | $x^4$ | $17^2 \equiv (-2)^2 = 4$ | (gerade) $10$ | - | - | 3 | $x^8$ | $4^2 = 16$ | $5$ | $16$ | - | 4 | $x^{16}$ | $16^2 \equiv (-3)^2 = 9$ | (gerade) $2$ | - | - | 5 | $x^{32}$ | $9^2 \equiv (-10)^2 = 100\equiv 5$ | $1$ | $5$ | + \begin{tabular}{c} + | $i$ | | $x^{2^i} mod\ 19$ | $\lfloor y/2^i\rfloor$ | Faktor (wenn $\lfloor y/2^i\rfloor$ ungerade) \\\hline + | 0 | $x$ | $13$ | $43$ | $13$ \\ + | 1 | $x^2$ | $13^2 \equiv (-6)^2 \equiv 36\equiv 17$ | $21$ | $17$ \\ + | 2 | $x^4$ | $17^2 \equiv (-2)^2 = 4$ | (gerade) $10$ | - \\ + | 3 | $x^8$ | $4^2 = 16$ | $5$ | $16$ \\ + | 4 | $x^{16}$ | $16^2 \equiv (-3)^2 = 9$ | (gerade) $2$ | - \\ + | 5 | $x^{32}$ | $9^2 \equiv (-10)^2 = 100\equiv 5$ | $1$ | $5$ + \end{tabular} Produkt: $x*x^2 *x^8 *x^{16} *x^{32} \equiv 13*17*16*5\equiv (-6)(-2)(-3)5 = -180\equiv -9\equiv 10$. @@ -1922,10 +1921,11 @@ \end{itemize*} Beispiel: $m=13$. Wir geben für jedes $x\in\mathbb{Z}^*_{13}$ das Inverse $y$ sowie das Produkt $x*y$ an (das natürlich bei der Division durch $13$ Rest $1$ lassen muss). - | x | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | - | ----- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | - | y | 1 | 7 | 9 | 10 | 8 | 11 | 2 | 5 | 3 | 4 | 6 | 12 | - | $x*y$ | 1 | 14 | 27 | 40 | 40 | 66 | 14 | 40 | 27 | 40 | 66 | 144 | + \begin{tabular}{c} + | x | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 \\\hline + | y | 1 | 7 | 9 | 10 | 8 | 11 | 2 | 5 | 3 | 4 | 6 | 12 \\ + | $x*y$ | 1 | 14 | 27 | 40 | 40 | 66 | 14 | 40 | 27 | 40 | 66 | 144 + \end{tabular} $14$ ist keine Primzahl, und es gibt keine Zahl $y$ mit $2*y\ mod\ 14 = 1$; das heißt, dass $2\not\in\mathbb{Z}^*_{14}$ und daher, dass $\mathbb{Z}_{14}$ kein Körper ist. Wir notieren noch einen altehrwürdigen Satz aus der Zahlentheorie. Der Satz wurde von Pierre de Fermat, 1607-1665, einem französischen Mathematiker und Juristen, gefunden. @@ -1942,10 +1942,11 @@ Wir beginnen mit einem Beispiel, nämlich $m=3,n=8$, also $mn=24$. Die folgende Tabelle gibt die Reste der Zahlen $x\in\{0,1,...,23\}\ modulo\ 3$ und $modulo\ 8$ an. Die Restepaare wiederholen sich zyklisch für andere $x\in\mathbb{Z}$. - | x | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | - | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- ||| | | - | x mod 3 | 0 | 1 | 2 | 0 | 1 | 2 | 0 | 1 | 2 | 0 | 1 | 2 | 3 | 0 | 1 | 2 | 0 | 1 | 2 | 0 | 1 | 2 | 0 | 1 | 2 | - | x mod 8 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 8 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | + \begin{tabular}{c} + | x | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 \\\hline + | x mod 3 | 0 | 1 | 2 | 0 | 1 | 2 | 0 | 1 | 2 | 0 | 1 | 2 | 3 | 0 | 1 | 2 | 0 | 1 | 2 | 0 | 1 | 2 | 0 | 1 | 2 \\ + | x mod 8 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 8 | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 + \end{tabular} Wenn wir die Einträge in Zeilen 2 und 3 als 24 Paare in $\mathbb{Z}_3 \times\mathbb{Z}_8$ ansehen, erkennen wir, dass sie alle verschieden sind, also auch alle Möglichkeiten in $\{0,1,2\}\times\{0,1,...,7\}$ abdecken. D.h.: Die Abbildung $x\rightarrow (x\ mod\ 3,x\ mod\ 8)$ ist eine Bijektion zwischen $\mathbb{Z}_{24}$ und $\mathbb{Z}_3\times\mathbb{Z}_8$. Zudem spiegeln sich arithmetische Operationen auf den Elementen von $\mathbb{Z}_{24}$ in den Resten modulo $3$ und $8$ wider. Beispielsweise liefert die Addition von $(2,7)$ und $(2,1)$ das Resultat $(1,0)$, das der Addition von $23$ und $17$ mit dem Resultat $40\ mod\ 24 = 16$ entspricht. Genauso ist $(2^5\ mod\ 3, 3^5\ mod\ 8)=(2,3)$, was der Beobachtung $11^5\ mod\ 24 = 11$ entspricht. Der Chinesische Restsatz sagt im wesentlichen, dass eine solche strukturelle Entsprechung zwischen den Resten modulo $mn$ und Paaren von Resten modulo $m$ bzw. $n$ immer gilt, wenn $m$ und $n$ teilerfremd sind. @@ -1978,9 +1979,10 @@ Einige Beispielwerte, die man durch Aufzählen findet, sind in folgender Tabelle angegeben. [Tabelle 2: Eulersche $\varphi$-Funktion für kleine $m$] - | m | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | - | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- || | - | $\varphi(m)$ | 1 | 2 | 2 | 4 | 2 | 6 | 4 | 6 | 4 | 10 | 4 | 12 | 6 | 8 | 8 | 16 | 6 | 18 | 8 | + \begin{tabular}{c} + | m | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 \\\hline + | $\varphi(m)$ | 1 | 2 | 2 | 4 | 2 | 6 | 4 | 6 | 4 | 10 | 4 | 12 | 6 | 8 | 8 | 16 | 6 | 18 | 8 + \end{tabular} Folgendes ist eine unmittelbare Konsequenz aus Proposition 4.22: @@ -2042,12 +2044,13 @@ Mit Hilfe eines Computeralgebraprogramms findet man heraus, dass die Ungleichung $|\{p\in [2^{n-1}, 2^n)|\text{ p is prime}\}|/2^{n-1} \geq 6 /(5n)$ auch für $9\leq n\leq 20$ gilt. (Für $n=8$ ist sie falsch.) Man kann sich also merken: für $n\geq 9$ ist der Anteil der Primzahlen an den n-Bit-Zahlen mindestens $\frac{6}{5n}$. - | Ziffernzahl $n$ | Dusart-Schranke $(\pi(2^n)-\pi(2^{n-1}))\backslash 2^{n-1}$ | für numerische untere Schranke | - | --------------- | ----------------------------------------------------------- | ------------------------------ | - | $256$ | $\frac{6}{5*256}$ | $\geq \frac{1}{214}$ | - | $512$ | $\frac{6}{5*512}$ | $\geq \frac{1}{427}$ | - | $1024$ | $\frac{6}{5*1024}$ | $\geq\frac{1}{854}$ | - | $2048$ | $\frac{6}{5*2048}$ | $\geq\frac{1}{1707}$ | + \begin{tabular}{c} + | Ziffernzahl $n$ | Dusart-Schranke $(\pi(2^n)-\pi(2^{n-1}))\backslash 2^{n-1}$ | für numerische untere Schranke \\\hline + | $256$ | $\frac{6}{5*256}$ | $\geq \frac{1}{214}$ \\ + | $512$ | $\frac{6}{5*512}$ | $\geq \frac{1}{427}$ \\ + | $1024$ | $\frac{6}{5*1024}$ | $\geq\frac{1}{854}$ \\ + | $2048$ | $\frac{6}{5*2048}$ | $\geq\frac{1}{1707}$ + \end{tabular} Eine leichter zu beweisende Aussage der Art $\pi(2m)-\pi(m) = O(m/log\ m)$ ist die folgende: @@ -2097,11 +2100,11 @@ In diesem Beispiel gibt es um einiges mehr F-Zeugen als F-Lügner. Wenn dies für alle zusammengesetzten Zahlen $N$ der Fall wäre, wäre es eine elegante randomisierte Strategie, einfach zufällig nach F-Zeugen zu suchen. Dies führt zu unserem ersten Versuch für einen randomisierten Primzahltest. Tabelle 3: F-Zeugen und F-Lügner für $N=91= 7*13$. Es gibt $36$ F-Lügner und $36$ F-Zeugen in $\mathbb{Z}^*_{91}$. Wir wissen nach Lemma 4.35, dass alle 18 Vielfachen von $7$ und $13$ F-Zeugen sind. - | | | - | ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | - | F-Zeugen in $\{ 1 ,..., 90\}-\mathbb{Z}^*_{91}$: | 7, 14, 21, 28, 35, 42, 49, 56, 63, 70, 77, 84; 13, 26, 39, 52, 65, 78 | - | F-Lügner: | 1, 3, 4, 9, 10, 12, 16, 17, 22, 23, 25, 27, 29, 30, 36, 38, 40, 43, 48, 51, 53, 55, 61, 62, 64, 66, 68, 69, 74, 75, 79, 81, 82, 87, 88, 90 | - | F-Zeugen in $\mathbb{Z}^*_{91}$ : | 2, 5, 6, 8, 11, 15, 18, 19, 20, 24, 31, 32, 33, 34, 37, 41, 44, 45, 46, 47, 50, 54, 57, 58, 59, 60, 67, 71, 72, 73, 76, 80, 83, 85, 86, 89 | + \begin{tabular}{c} + | F-Zeugen in $\{ 1 ,..., 90\}-\mathbb{Z}^*_{91}$: | 7, 14, 21, 28, 35, 42, 49, 56, 63, 70, 77, 84; 13, 26, 39, 52, 65, 78 \\ + | F-Lügner: | 1, 3, 4, 9, 10, 12, 16, 17, 22, 23, 25, 27, 29, 30, 36, 38, 40, 43, 48, 51, 53, 55, 61, 62, 64, 66, 68, 69, 74, 75, 79, 81, 82, 87, 88, 90 \\ + | F-Zeugen in $\mathbb{Z}^*_{91}$ : | 2, 5, 6, 8, 11, 15, 18, 19, 20, 24, 31, 32, 33, 34, 37, 41, 44, 45, 46, 47, 50, 54, 57, 58, 59, 60, 67, 71, 72, 73, 76, 80, 83, 85, 86, 89 + \end{tabular} Algorithmus 4.4: Fermat-Test \begin{itemize*} @@ -2185,15 +2188,16 @@ ist $b_k=a^{N-1}\ mod\ N$. Beispielsweise erhalten wir für $N=325 = 5^2 *13$ den Wert $N-1 = 324 = 81* 22$. In Tabelle 4 berechnen wir $a^{81} ,a^{162}$ und $a^{324}$, alle modulo $325$, für verschiedene a. Tabelle 4: Potenzen $a^{N-1}\ mod\ N$ mit Zwischenschritten, $N=325$. (Die ,,Fälle'' werden weiter unten erklärt. - | a | $b_0 =a^{81}$ | $b_1=a^{162}$ | $b_2=a^{324}$ | F-Z.? | MR-Z.? | Fall | - | --- | ------------- | ------------- | ------------- | -------- | -------- | ---- | - | 126 | 1 | 1 | 1 | | | 1 | - | 49 | 324 | 1 | 1 | | | 2a | - | 7 | 307 | 324 | 1 | | | 2b | - | 2 | 252 | 129 | 66 | $\times$ | $\times$ | 3 | - | 15 | 200 | 25 | 300 | $\times$ | $\times$ | 3 | - | 224 | 274 | 1 | 1 | | $\times$ | 4a | - | 201 | 226 | 51 | 1 | | $\times$ | 4b | + \begin{tabular}{c} + | a | $b_0 =a^{81}$ | $b_1=a^{162}$ | $b_2=a^{324}$ | F-Z.? | MR-Z.? | Fall \\\hline + | 126 | 1 | 1 | 1 | | | 1 \\ + | 49 | 324 | 1 | 1 | | | 2a \\ + | 7 | 307 | 324 | 1 | | | 2b \\ + | 2 | 252 | 129 | 66 | $\times$ | $\times$ | 3 \\ + | 15 | 200 | 25 | 300 | $\times$ | $\times$ | 3 \\ + | 224 | 274 | 1 | 1 | | $\times$ | 4a \\ + | 201 | 226 | 51 | 1 | | $\times$ | 4b + \end{tabular} Die Grundidee des Miller-Rabin-Tests ist nun, diese verlangsamte Berechnung der Potenz $a^{N-1}\ mod\ N$ auszuführen und dabei nach nichttrivialen Quadratwurzeln der $1$ Ausschau zu halten. @@ -2216,14 +2220,15 @@ In Tabelle 4 findet man konkrete Beispiele für das Eintreten aller Fälle für die zusammengesetzte Zahl $N=325$. Tabelle 5: Potenzen $a^{N-1}\ mod\ N$ berechnet mit Zwischenschritten, mögliche Fälle. - | $b_0$ | $b_1$ | ... | | | | ... | $b_{k-1}$ | $b_k$ | Fall | F-Z.? | MR-Z.? | - | ----- | ----- | --- | --- | --- | --- | --- | --------- | --------- | ---- | -------- | -------- | - | 1 | 1 | ... | 1 | 1 | 1 | ... | 1 | 1 | 1 | - | N-1 | 1 | ... | 1 | 1 | 1 | ... | 1 | 1 | 2a | - | * | * | ... | * | N-1 | 1 | ... | 1 | 1 | 2b | - | * | * | ... | * | * | * | ... | * | $\not= 1$ | 3 | $\times$ | $\times$ | - | * | * | ... | * | 1 | 1 | ... | 1 | 1 | 4a | | $\times$ | - | * | * | ... | * | * | * | ... | * | 1 | 4b | | $\times$ | + \begin{tabular}{c} + | $b_0$ | $b_1$ | ... | | | | ... | $b_{k-1}$ | $b_k$ | Fall | F-Z.? | MR-Z.? \\\hline + | 1 | 1 | ... | 1 | 1 | 1 | ... | 1 | 1 | 1 \\ + | N-1 | 1 | ... | 1 | 1 | 1 | ... | 1 | 1 | 2a \\ + | * | * | ... | * | N-1 | 1 | ... | 1 | 1 | 2b \\ + | * | * | ... | * | * | * | ... | * | $\not= 1$ | 3 | $\times$ | $\times$ \\ + | * | * | ... | * | 1 | 1 | ... | 1 | 1 | 4a | | $\times$ \\ + | * | * | ... | * | * | * | ... | * | 1 | 4b | | $\times$ + \end{tabular} Wir beobachten: Wenn $N$ eine Primzahl ist, dann gilt nach dem kleinen Satz von Fermat für jedes $a$ die Gleichung $b_k=a^{N-1}\ mod\ N=1$. Weiter kann es nach Lemma 4.39 nicht passieren, dass $b_{i-1}\not=N-1$ und $b_i=1$ ist. Also können für eine Primzahl $N$ nur Fälle $1$ und $2$ vorkommen. Umgekehrt findet man im Beispiel $N=17$, dass $a=1$ zu Fall $1$, $a=16$ zu Fall 2a, und $a=2$ bzw. $a=3$ zu Fall 2b mit $b_2=16$ bzw. $b_3=16$ führt. Um bei Primzahlen keine falschen Ergebnisse zu erzeugen, müssen wir also in den Fällen 1 und 2 den Wert 0 ausgeben. In den Fällen 3 und 4 hingegen stellt die Zahl $a$ (mit ihren Potenzen $b_0,...,b_k$) einen Beleg dafür dar, dass $N$ keine Primzahl ist: Im Fall 3 ist $a$ ein F-Zeuge, im Fall 4 ist $b_{i-1}$ eine nichttriviale Quadratwurzel der $1$, und das kann nur passieren, wenn $N$ zusammengesetzt ist. Hier können wir also 1 ausgeben. @@ -2290,20 +2295,21 @@ Zur Veranschaulichung betrachte man Tabelle 6. In der dort angegebenen Matrix entspricht jede Zeile einem der $\varphi(N)$ Elemente von $\mathbb{Z}^*_N$, beginnend mit $a_1 = 1$ und $a_2=-1 \equiv N-1$. In der Zeile für $a$ ist die von $a$ erzeugte Folge $b_0,...,b_k$ eingetragen. Dass $N$ eine Carmichael-Zahl ist, drückt sich dadurch aus, dass alle Einträge in der $b_k$-Spalte gleich 1 sind. Der Eintrag für $a_2=-1$ in der $b_0$-Spalte ist $N-1$. Spalte $i_0$ ist die am weitesten rechts stehende Spalte, in der es einen Eintrag $-1 \equiv N-1$ gibt, und $a_{\#}$ ist ein Element von $\mathbb{Z}^*_N$, das zu diesem Eintrag führt. Die Menge $B_N$ besteht aus den Elementen von $\mathbb{Z}^*_N$, die in Spalte $i_0$ Eintrag $1$ oder $N-1$ haben. Tabelle 6: Sicht auf $B_N$ als Teilmenge von $\mathbb{Z}^*_N$ - | $a$ | $b_0$ | $b_1$ | ... | | $b_{i_0}$ | | ... | $b_{k-1}$ | $b_k$ | - | ---------------- | ----- | ----------- | ---- | ----------------- | --------------- | ----------------- | --- | --------------- | ----- | - | $a_1=1$ | 1 | 1 | ... | 1 | 1 | 1 | ... | 1 | 1 | - | $a_2=N-1$ | $N-1$ | 1 | ... | 1 | 1 | 1 | ... | 1 | 1 | - | $a_3$ | * | * | ... | * | $N-1$ | 1 | ... | 1 | 1 | - | $a_4$ | * | * | ... | $N-1$ | 1 | 1 | ... | 1 | 1 | - | | | | | | | | | 1 | 1 | - | $a$ | $a^u$ | $a^{u*2^1}$ | ... | $a^{u*2^{i_0-1}}$ | $a^{u*2^{i_0}}$ | $a^{u*2^{i_0+1}}$ | ... | $a^{u*2^{k-1}}$ | 1 | - | | | | | | | | | | | - | $a_{\#}$ | * | * | ... | * | $N-1$ | 1 | ... | 1 | 1 | - | | | | | | | | | | | - | $a_?$ | $*?$ | ... | $*?$ | $*?$ | ... | ... | ... | 1 | | - | | | | | | | | | | | - | $a_{\varphi(N)}$ | ? | ? | ... | ? | ? | ? | ... | ? | 1 | + \begin{tabular}{c} + | $a$ | $b_0$ | $b_1$ | ... | | $b_{i_0}$ | | ... | $b_{k-1}$ | $b_k$ \\\hline + | $a_1=1$ | 1 | 1 | ... | 1 | 1 | 1 | ... | 1 | 1 \\ + | $a_2=N-1$ | $N-1$ | 1 | ... | 1 | 1 | 1 | ... | 1 | 1 \\ + | $a_3$ | * | * | ... | * | $N-1$ | 1 | ... | 1 | 1 \\ + | $a_4$ | * | * | ... | $N-1$ | 1 | 1 | ... | 1 | 1 \\ + | | | | | | | | | 1 | 1 \\ + | $a$ | $a^u$ | $a^{u*2^1}$ | ... | $a^{u*2^{i_0-1}}$ | $a^{u*2^{i_0}}$ | $a^{u*2^{i_0+1}}$ | ... | $a^{u*2^{k-1}}$ | 1 \\ + | | | | | | | | | | \\ + | $a_{\#}$ | * | * | ... | * | $N-1$ | 1 | ... | 1 | 1 \\ + | | | | | | | | | | \\ + | $a_?$ | $*?$ | ... | $*?$ | $*?$ | ... | ... | ... | 1 | \\ + | | | | | | | | | | \\ + | $a_{\varphi(N)}$ | ? | ? | ... | ? | ? | ? | ... | ? | 1 + \end{tabular} Wir werden zeigen, dass diese Menge $B_N$ die gewünschten Eigenschaften hat. @@ -2719,10 +2725,11 @@ Tabelle: Die multiplikative Gruppe $\mathbb{Z}^*_{11}$ für $p=11$ mit erzeugendem Element $g=2$. Die erzeugenden Elemente sind mit $*$ markiert. Sie entsprechen den Potenzen $g^a$ mit $ggT(a,10) = 1$. - | a | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | - | ----- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | - | $2^a$ | 1 | 2 | 4 | 8 | 5 | 10 | 9 | 7 | 3 | 6 | - | | | * | | * | | | | * | | * | + \begin{tabular}{c} + | a | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 \\\hline + | $2^a$ | 1 | 2 | 4 | 8 | 5 | 10 | 9 | 7 | 3 | 6 \\ + | | | * | | * | | | | * | | * + \end{tabular} Für kryptographische Anwendungen ungeeignetist dagegen die bekannteste zyklische Gruppe $(\mathbb{Z}_N,+,0)$. Hier ist die Gruppenoperation die Addition modulo $N$; die Potenz $g^a$ für $a\in\mathbb{Z}$ entspricht dem Element $a*g\ mod\ N$. Die erzeugenden Elemente sind gerade die Elemente von $\mathbb{Z}^*_N$. Wenn $g\in\mathbb{Z}^*_N$ ist, dann besteht das DL-Problem für $g$ in folgendem: Gegeben $h=g^a$ (in der Gruppe gerechnet, das ist also $h=a*g\ mod\ N)$, finde $a$. Dies ist mit dem erweiterten Euklidischen Algorithmus leicht möglich: finde $g-1\ mod\ N$, berechne $h*g^{-1}\ mod\ N$. Das DL-Problem in dieser Gruppe ist also effizient lösbar. Wenn eine zyklische Gruppe $G$ mit effizienten Operationen gefunden worden ist, muss man immer noch ein erzeugendes Element finden. Das ist unter Umständen nicht ganz einfach. Wir wissen: @@ -2866,13 +2873,14 @@ Beispiel: $\mathbb{Z}_7$. Setze $f(x)=x^3+ 3x+ 3$ (in $\mathbb{Z}_7$) und betrachte $E_{3,3}=\{(x,y)\in\mathbb{Z}^2_7 | f(x)=y^2\}\cup \{O\}$. Damit $(x,y)$ zu $E_{3,3}$ gehört, muss $f(x)$ ein Quadrat sein. Allgemein weiß man, dass es in $\mathbb{Z}_p$ genau $\frac{p-1}{2}$ Quadrate gibt. Jedes $f(x)$, das von $0$ verschieden und ein Quadrat ist, führt zu zwei Punkten auf der elliptischen Kurve. Weiter gibt es für jedes $x$ mit $f(x) = 0$ einen Punkt auf der Kurve. Man rechnet aus: - | x | 0 | 1 | 2 | 3 | 4 | 5 | 6 | - | -------- | --- | ----- | --- | ----- | ----- | --- | --- | - | f(x) | 3 | 0 | 3 | 4 | 2 | 3 | 6 | - | Quadrat? | - | X | - | X | X | - | - | - | Wurzeln | | 0 | | 2, 5 | 3, 4 | | - | Punkte | | (1,0) | | (3,2) | (4,3) | - | | | | | (3,5) | (4,4) | | + \begin{tabular}{c|c|c|c|c|c|c|c} + x & 0 & 1 & 2 & 3 & 4 & 5 & 6 \\\hline + f(x) & 3 & 0 & 3 & 4 & 2 & 3 & 6 \\ + Quadrat? & - & X & - & X & X & - & - \\ + Wurzeln & & 0 & & 2, 5 & 3, 4 & \\ + Punkte & & (1,0) & & (3,2) & (4,3) \\ + & & & & (3,5) & (4,4) + \end{tabular} Um auf dieser Menge eine Gruppenstruktur festzulegen, benötigen wir ,,Geraden'' in $\mathbb{Z}^2_p$. Dies sind Punktmengen $\{(x,y)|y=ax+b\}$ für $a,b\in\mathbb{Z}_p$ oder $\{(x,y)|x=b\}\cup\{O\}$ (,,senkrechte Geraden''). Man stellt nun (durch Unterscheiden verschiedener Fälle) Folgendes fest: Wenn eine Gerade eine elliptische Kurve $E=E_{A,B}$ in mindestens einem Punkt schneidet, dann sogar in drei Punkten, die aber nicht notwendigerweise verschieden sein müssen. (Das liegt an der Anzahl der Nullstellen von $x^3+Ax+B$. Veranschaulichung im Reellen!) Wenn zwei der betrachteten Schnittpunkte zusammenfallen, ist die Gerade eine Tangente in diesem Punkt; bei senkrechten Geraden gilt der unendliche Punkt als einer der Schnittpunkte oder gar als drei zusammenfallende Schnittpunkte.