allg Korrekturen

This commit is contained in:
WieErWill 2022-03-13 15:36:01 +01:00
parent 173c3d1dc9
commit 2e0a7a78f8
2 changed files with 60 additions and 68 deletions

BIN
Kryptographie.pdf (Stored with Git LFS)

Binary file not shown.

View File

@ -321,10 +321,10 @@
\item $X: X\times K \rightarrow K, (x,k)\rightarrow k$
\item $Pr(x_0):=Pr(\{x_0\}\times K) = Pr_X(x_0)*Pr_K(K) = Pr_X(x_0)$.
\item $Pr(k_0):=Pr(X\times\{k_0\})=Pr_X(X)*Pr_K(k_0)=Pr_K(k_0)$
\item Man erhält die ursprünglichen Wahrscheinlichkeiten für Klartexte und Schlüssel zurück
\item Im Bsp $Pr(A)=\frac{1}{4}*0,4+ \frac{1}{8}*0,6 +\frac{1}{2}*0 +\frac{1}{8}* 0,6=0,25$
\item Im Bsp $Pr(c,A)=0,6*(\frac{1}{8}+\frac{1}{8})=0,15$
\item Im Bsp $Pr(c|A)=\frac{P(c,A)}{P(A)}=\frac{0,15}{0,25}=0,6$
\item Man erhält die ursprünglichen Wahrscheinlichkeiten für Klartexte und Schlüssel zurück
\item Im Bsp $Pr(A)=\frac{1}{4}*0,4+ \frac{1}{8}*0,6 +\frac{1}{2}*0 +\frac{1}{8}* 0,6=0,25$
\item Im Bsp $Pr(c,A)=0,6*(\frac{1}{8}+\frac{1}{8})=0,15$
\item Im Bsp $Pr(c|A)=\frac{P(c,A)}{P(A)}=\frac{0,15}{0,25}=0,6$
\end{itemize*}
\textbf{Definition} $V=(X,K,Y,e,d,Pr_K)$ ein Kryptosystem mit Schlüsselverteilung
@ -335,9 +335,9 @@
\textbf{Satz: Informationstheoretische Sicherheit des Vernam-Systems} Sei $l>0$ und $S=(X,K,Y,e,d)$ mit $X=K=Y=\{0,1\}^l$ und $e=d=\oplus_l$ das Vernam-System der Länge $l$. Sei weiter $Pr_K:K\rightarrow [0,1]$ die Gleichverteilung. Dann ist $V=S[Pr_K]$ informationstheoretisch sicher.
Es wird sich herausstellen, dass informationstheoretische Sicherheit inbestimmten Fällen Gleichverteilung auf den Schlüsseln erzwingt und dass die informationstheoretische Sicherheit eines KSV nichts mit den konkreten Wahrscheinlichkeiten der Klartextverteilung $Pr_X$ zu tun hat, sondern nur die Menge $\{x\in X|Pr_X(x)> 0\}$ der ''aktiven'' Klartexte relevant ist.
Es wird sich herausstellen, dass informationstheoretische Sicherheit inbestimmten Fällen Gleichverteilung auf den Schlüsseln erzwingt und dass die informationstheoretische Sicherheit eines KSV nichts mit den konkreten Wahrscheinlichkeiten der Klartextverteilung $Pr_X$ zu tun hat, sondern nur die Menge $\{x\in X|Pr_X(x)> 0\}$ der ''aktiven'' Klartexte relevant ist.
$Pr(x|y) =\frac{Pr(x,y)}{Pr(y)}=\frac{Pr(y|x)*Pr(x)}{Pr(y)}=\frac{Pr_K(k_{x,y})*Pr(x)}{Pr(y)}=^* \frac{\frac{1}{|K|}*Pr(x)}{\frac{1}{|K|}}=Pr(x)$
$Pr(x|y) =\frac{Pr(x,y)}{Pr(y)}=\frac{Pr(y|x)*Pr(x)}{Pr(y)}=\frac{Pr_K(k_{x,y})*Pr(x)}{Pr(y)}=^* \frac{\frac{1}{|K|}*Pr(x)}{\frac{1}{|K|}}=Pr(x)$
\textbf{Satz} Sei $V= (X,K,Y,e,d,Pr_K)$ ein KSV mit $|X|=|Y|=|K|$. Dann sind äquivalent:
\begin{enumerate*}
@ -345,13 +345,13 @@ $Pr(x|y) =\frac{Pr(x,y)}{Pr(y)}=\frac{Pr(y|x)*Pr(x)}{Pr(y)}=\frac{Pr_K(k_{x,y})*
\item $(X,K,Y,e,d)$ ist possibilistisch sicher und $Pr_K(k)=\frac{1}{|K|}$ für alle $k\in K$.
\end{enumerate*}
Der Satz besagt, dass man informationstheoretisch sichere Systeme mit $|X|=|Y|=|K|$ daran erkennt, dass in der Verschlüsselungstabelle in jeder Spalte alle Chiffretexte vorkommen (possibilistische Sicherheit) und dass die Schlüsselverteilung $Pr_K$ uniform ist. Auch in jeder Zeile kommen natürlich alle Chiffretexte vor: das liegt aber einfach an der Dechiffrierbedingung. Die Klartextverteilung ist irrelevant.
Der Satz besagt, dass man informationstheoretisch sichere Systeme mit $|X|=|Y|=|K|$ daran erkennt, dass in der Verschlüsselungstabelle in jeder Spalte alle Chiffretexte vorkommen (possibilistische Sicherheit) und dass die Schlüsselverteilung $Pr_K$ uniform ist. Auch in jeder Zeile kommen natürlich alle Chiffretexte vor: das liegt aber einfach an der Dechiffrierbedingung. Die Klartextverteilung ist irrelevant.
Technisch hilfreich sind die folgenden Größen, die nur von der Verschlüsselungsfunktion und der Schlüsselverteilung abhängen
\begin{itemize*}
\item $P^x(y):=\sum_{k\in K, e(x,k)=y} Pr(k)$ für $x\in X,y\in Y$ (1.1)
\item Für alle $x\in X:Pr(x,y) = Pr(x)*P^x(y)$ (1.2)
\item wenn $Pr(x)> 0:Pr(y|x) = \frac{Pr(x,y)}{Pr(x)}=P^x(y)$ (1.3)
\item wenn $Pr(x)> 0:Pr(y|x) = \frac{Pr(x,y)}{Pr(x)}=P^x(y)$ (1.3)
\end{itemize*}
\textbf{Lemma} Sei $V=(X,K,Y,e,d,Pr_K)$ KSV und seien $Pr_X$ und $Pr'_X$ Klartextverteilungen mit $Pr'_X(x)>0\Rightarrow Pr_X(x)>0$. Dann gilt: Ist $V$ informationstheoretisch sicher bzgl. $Pr_X$, so ist V informationstheoretisch sicher bzgl. $Pr'_X$. Besagt, dass man die Wahrscheinlichkeiten aktiver Klartexte beliebig ändern kann, ohne dass eine bestehende informationstheoretische Sicherheit zerstört wird.
@ -389,15 +389,15 @@ $Pr(x|y) =\frac{Pr(x,y)}{Pr(y)}=\frac{Pr(y|x)*Pr(x)}{Pr(y)}=\frac{Pr_K(k_{x,y})*
\textbf{Definition} Das Vigenère-Kryptosystem (mit Parametern $(n,S,L)\in\mathbb{N}^3$) ist das Kryptosystem ($(\mathbb{Z}_n)\geq L,(\mathbb{Z}_n)\geq S,(\mathbb{Z}_n)\geq L,e,d$), so dass für alle $s\geq S,l\geq L,x_i,k_j\in\mathbb{Z}_n$ gilt: $e(x_0...x_{l-1},k_0 ...k_{s-1})=y_0 ...y_{l-1}$ mit $y_i=(x_i+k_{i\ mod\ s}) mod\ n$, für alle $0\geq i < l$.
Die zentrale Idee ist, dass für die Verschlüsselung des ,,Teiltextes'' $y_i=y_iy_{i+s}y_{i+2s}...$, für $0\geq i<s$, der Buchstabe $k_i$ benutzt wurde, genau wie bei der einfachen Verschiebechiffre. Für $i,0\geq i<s$, bestimmt Eva also die in diesem Teiltext $y_i=y_iy_{i+s}y_{i+2s}...$ am häufigsten vorkommenden Buchstaben und testet die Hypothesen, dass diese für ,,e'' oder einen anderen häufigen Buchstaben stehen.
\begin{itemize*}
\begin{itemize*}
\item Chiffre: EYRYC FWLJH FHSIU BHMJO UCSEG TNEER...
\item $y^0 =EFFBUTFSSMJFPOFT$, häufig: F, Schlüssel $\rightarrow$ B
\item $y^1 =YWHHCNLXSIHXMZCNC$, häufig: Y, Schlüssel $\rightarrow$ U
\item $y^0 =EFFBUTFSSMJFPOFT$, häufig: F, Schlüssel $\rightarrow$ B
\item $y^1 =YWHHCNLXSIHXMZCNC$, häufig: Y, Schlüssel $\rightarrow$ U
\item $y^2 =RLSMSEJMTKZMMSRE$, häufig: I,V, Schlüssel $\rightarrow$ E,R
\item $y^3 =YJIJEELVKZVXVIVRYVV$, häufig: V, Schlüssel $\rightarrow$ R
\item $y^4 =CHUOGRVYCSBKWAFHSF$, häufig: S, Schlüssel $\rightarrow$ O
\item Schlüsselwort: BUERO
\item Schlüsselwort: BUERO
\end{itemize*}
\subsubsection{Der Kasiski-Test}
@ -431,7 +431,7 @@ $Pr(x|y) =\frac{Pr(x,y)}{Pr(y)}=\frac{Pr(y|x)*Pr(x)}{Pr(y)}=\frac{Pr_K(k_{x,y})*
Für die Ermittlung eines Schätzwertes für die Schlüssellänge s gehen wir wie folgt vor. Wir nehmen an, die zugrunde liegende Sprache ist Deutsch. Wir berechnen zunächst $IC(y)$ für den Chiffretext y. Die unbekannte Schlüssellänge nennen wir s. Dann berechnen wir eine Näherung für $IC(y)$, auf eine zweite Weise. Dies wird uns eine (Näherungs-)Gleichung für s liefern.
Bilde die Teilwörter $y^0,...,y^{s-1}$, jedes mit der Länge $\frac{l}{s}$. Innerhalb jedes Teilworts kommen Kollisionen ebenso häufig vor wie in einem gewöhnlichen Text mit nur einem Schlüssel, also erwarten wir zusammen $\binom{l/s}{2} IC(y^0)+...+\binom{l/s}{2} IC(y^{s-1})\approx\frac{1}{2}l(l/s-1)* 0,076$ viele ,,Kollisionen'' (Paare identischer Chiffretextbuchstaben) aus den einzelnen Teilwörtern.
Bilde die Teilwörter $y^0,...,y^{s-1}$, jedes mit der Länge $\frac{l}{s}$. Innerhalb jedes Teilworts kommen Kollisionen ebenso häufig vor wie in einem gewöhnlichen Text mit nur einem Schlüssel, also erwarten wir zusammen $\binom{l/s}{2} IC(y^0)+...+\binom{l/s}{2} IC(y^{s-1})\approx\frac{1}{2}l(l/s-1)* 0,076$ viele ,,Kollisionen'' (Paare identischer Chiffretextbuchstaben) aus den einzelnen Teilwörtern.
Zwischen zwei Teilwörtern $y^u$ und $y^v$ erwarten wir $(l/s)^2*261\approx 0,0385(l/s)^2$ Kollisionen, aus allen $\binom{s}{2}$ Paaren von Teilwörtern zusammen also $\binom{s}{2} 0,0385(l/s)^2 =\frac{s(s-1)}{2}* 0,0385(l/s)^2 =\frac{1}{2} *0,0385 l^2 (1-\frac{1}{s})$ viele. Zusammen ist die erwartete Anzahl an Kollisionen in y gleich $\frac{1}{2}l(0,076(l/s-1) + 0,0385 l(1-\frac{1}{s}))$.
Diese Zahl sollte näherungsweise gleich $\frac{1}{2}l(l-1)IC(y)$ sein. Wir können die resultierende Gleichung $(l-1)IC(y) = 0,076(l/s-1) + 0,0385 l(1-\frac{1}{s})$ nach s auflösen und erhalten: $s\approx \frac{(0,076-0,0385)l}{(l-1)IC(y)-0,0385l+0,076}$.
Eine tatsächliche Durchführung des Verfahrens mit Chiffretexten erfordert viel Geduld.
@ -443,8 +443,8 @@ $Pr(x|y) =\frac{Pr(x,y)}{Pr(y)}=\frac{Pr(y|x)*Pr(x)}{Pr(y)}=\frac{Pr_K(k_{x,y})*
\textbf{Definition} Ein Kryptosystem $S=(X,K,Y,e,d)$ ist possibilistisch sicher bzgl. Szenarium 2, wenn für jedes $1 \leq r\leq |X|$, jede Folge von paarweise verschiedenen Klartexten $x_1,x_2,...,x_r\in X$, jeden Schlüssel $k\in K$ und jedes $y\in Y\backslash\{e(x_i,k)| 1 \leq i < r\}$ ein Schlüssel $k'\in K$ existiert mit $e(x_i,k)=e(x_i,k')$ für alle $1\leq i< r$ und $e(x_r,k')=y$.
\textbf{Proposition} Für jede nichtleere Menge $X$ ist das Substitutionskryptosystem auf X possibilistisch sicher.
\textbf{Proposition} Für jede nichtleere Menge $X$ ist das Substitutionskryptosystem auf X possibilistisch sicher.
\textbf{Proposition} Sei $S=(X,K,Y,e,d)$ ein Kryptosystem, das possibilistisch sicher ist bzgl. Szenarium 2. Dann ist $\{e(.,k)|k\in K\}$ die Menge aller injektiven Abbildungen von X nach Y.
Ein Kryptosystem, das possibilistisch sicher bzgl. Szenarium 2 ist, hat mindestens $|\{\pi |\pi :X\rightarrow Y\text{ ist injektiv}\}|=\frac{|Y|!}{(|Y|-|X|)!} \geq |X|!$ Schlüssel. Mit $X=\{0,1\}^{128}$ gibt es $\geq 2^{128}!$ viele Schlüssel. Für die Speicherung eines Schlüssels braucht man durchschnittlich (Es gilt $log_2(N!)>N(log_2 N-log_2 e)> N(log_2 N- 1.45)$) $log(2^{128}!)> 2^{128}*(128- 1.45)> 2^{134}>(10^3 )^{13.4} > 10^{40}$ viele Bits, eine unpraktikable Zahl. Also können wir in realen Situationen im Szenarium 2 keine possibilistische Sicherheit, geschweige denn informationstheoretische Sicherheit erhalten.
@ -453,7 +453,7 @@ $Pr(x|y) =\frac{Pr(x,y)}{Pr(y)}=\frac{Pr(y|x)*Pr(x)}{Pr(y)}=\frac{Pr_K(k_{x,y})*
\subsection{Substitutions-Permutations-Kryptosysteme (SPKS)}
Grundsätzlich handelt es sich um $mn$-Block-Kryptosysteme. Dabei werden die Klartexte $x=(x_0,...,x_{mn-1})\in\{ 0,1\}^{mn}$ als m-Tupel $(x^{(0)},x^{(1)},...,x^{(m-1)})$ von Bitvektoren der Länge n betrachtet. Dabei gilt $x(i)=(x_{in},x_{in+1},...,x_{(i+1)n-1})$, für $0\leq i<m$.
Ein Baustein der Verschlüsselungs- und Entschlüsselungsfunktion bei diesen Systemen sind Bitpermutationen auf Bitstrings der Länge l. Sei $\beta$ eine Permutation von $\{0,...,l-1\}$ und $x\in\{0,1\}^l$. Dann bezeichnet $x^{\beta}$ den Bitvektor $(x_{{\beta}(0)},x_{{\beta}(1)},...,x_{{\beta}(l-1)})$.
Ein Baustein der Verschlüsselungs- und Entschlüsselungsfunktion bei diesen Systemen sind Bitpermutationen auf Bitstrings der Länge l. Sei $\beta$ eine Permutation von $\{0,...,l-1\}$ und $x\in\{0,1\}^l$. Dann bezeichnet $x^{\beta}$ den Bitvektor $(x_{{\beta}(0)},x_{{\beta}(1)},...,x_{{\beta}(l-1)})$.
Kurz: $x^{\beta}_{(i)}=x_{{\beta}(i)}$, für $0\leq i<l$.
Sehr oft werden wir annehmen, dass $\beta$ selbst invers ist, dass also ${\beta}^{-1}=\beta$ ist für $0\leq i<l$). Dann erhält man $x^{\beta}$ aus x, indem man $x(i)$ an die Stelle ${\beta}(i)$ des neuen Vektors schreibt.
@ -490,21 +490,21 @@ $Pr(x|y) =\frac{Pr(x,y)}{Pr(y)}=\frac{Pr(y|x)*Pr(x)}{Pr(y)}=\frac{Pr_K(k_{x,y})*
\textbf{Beispiel} Wortanzahl $m=3$, Wortlänge $n=4$, Rundenzahl $r=3$, 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
\begin{tabular}{c|c|c|c|c|c|c|c|c}
b& 0000& 0001 & 0010 & 0011 & 0100 & 0101 & 0110 & 0111 \\
b & 0000 & 0001 & 0010 & 0011 & 0100 & 0101 & 0110 & 0111 \\
S(b) & 0101 & 0100 & 1101 & 0001 & 0011 & 1100 & 1011 & 1000 \\\hline
b & 1000 & 1001 & 1010 & 1011 & 1100 & 1101 & 1110 & 1111 \\
S(b) & 1010 & 0010 & 0110 & 1111 & 1001 & 1110 & 0000 & 0111
b & 1000 & 1001 & 1010 & 1011 & 1100 & 1101 & 1110 & 1111 \\
S(b) & 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
\begin{enumerate*}
\item $\kappa (k,0) = 0000 0001 0010$ und damit $u= 0000 1110 0010$
\item $i=1$ $v=0101 0000 1101$, $w=0011 0101 0100$, $\kappa (k,1) = 0001 0010 0011$ und $u=0010 0111 0111$
\item $i=2$ $v=1101 1000 1000$, $w=1010 1100 0100$, $\kappa (k,2) = 0010 0011 0100$ und damit $u= 1000 1111 0000$
\item $i=1$ $v=0101 0000 1101$, $w=0011 0101 0100$, $\kappa (k,1) = 0001 0010 0011$ und $u=0010 0111 0111$
\item $i=2$ $v=1101 1000 1000$, $w=1010 1100 0100$, $\kappa (k,2) = 0010 0011 0100$ und damit $u= 1000 1111 0000$
\item $v=1010 0111 0101$, $\kappa (k,3) = 0011 0100 0101$ und damit $y=1001 0011 0000$
\end{enumerate*}
\subsubsection{Einschub: Endliche Körper}
Die Struktur $\mathbb{Z}_2=(\{0,1\},\oplus,\odot, 0 ,1)$ ist ein Körper, wobei $\oplus$ für die XOR-Operation und für $\wedge$ (AND) steht.
Die Struktur $\mathbb{Z}_2=(\{0,1\},\oplus,\odot, 0 ,1)$ ist ein Körper, wobei $\oplus$ für die XOR-Operation und für $\wedge$ (AND) steht.
Zu einem endlichen Körper $F$ bildet man den Polynomring $F[X]$. Ein solcher Ausdruck wird mit seiner Koeffizientenfolge $(...,0,0,a_n,...,a_1,a_0)$ identifiziert. Normalerweise lässt man Terme mit Koeffizient 0 weg. Über $\mathbb{Z}_2$ schreibt man wie üblich oft nur den Bitstring $a_n...a_1a_0$ ohne Klammern und Kommas.
Beispiel: In $\mathbb{Z}_2[X]$ liegen die Polynome $g=01011=(..., 0 , 1 , 0 , 1 ,1) =X^3 +X+1$ und $h=0110=(..., 0 , 1 , 1 ,0) =X^2 +X$.
@ -1421,22 +1421,20 @@ $Pr(x|y) =\frac{Pr(x,y)}{Pr(y)}=\frac{Pr(y|x)*Pr(x)}{Pr(y)}=\frac{Pr_K(k_{x,y})*
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.
\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
\begin{tabular}{c|c|c|c|c|c|c|c|c|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$$
gilt. - Allgemein gilt:
Die Ausgabe ist $(46, 75 ,-62)$. Man überprüft leicht, dass $46 = ggT(10534,12742) = 75* 10534 - 62 * 12742$ gilt. - Allgemein gilt:
Fakt 4.7: Wenn Algorithmus 4.2 auf Eingabe $(x,y)$ mit $x,y\geq 0$ gestartet wird, dann gilt:
\begin{enumerate*}
@ -1762,8 +1760,7 @@ $Pr(x|y) =\frac{Pr(x,y)}{Pr(y)}=\frac{Pr(y|x)*Pr(x)}{Pr(y)}=\frac{Pr_K(k_{x,y})*
\subsubsection{Der Fermat-Test}
Wir erinnern uns an Fakt 4.20, den Kleinen Satz von Fermat: Wenn $p$ eine Primzahl ist und $1\leq a < p$, dann gilt $a^{p-1} mod\ p=1$.
Wir können diese Aussage dazu benutzen, um ,,Belege'' oder ,,Zertifikate'' oder ,,Zeugen'' dafür anzugeben, dass eine Zahl $N$ zusammengesetzt ist: Wenn wir eine Zahl $a$ mit $1\leq a < N$ finden, für die $a^{N-1} mod\ N\not=1$ gilt, dann ist $N$ definitiv keine
Primzahl.
Wir können diese Aussage dazu benutzen, um ,,Belege'' oder ,,Zertifikate'' oder ,,Zeugen'' dafür anzugeben, dass eine Zahl $N$ zusammengesetzt ist: Wenn wir eine Zahl $a$ mit $1\leq a < N$ finden, für die $a^{N-1} mod\ N\not=1$ gilt, dann ist $N$ definitiv keine Primzahl.
Beispiel: Mit $N=15$ und $a=2$ rechnen wir: $2^{14}\equiv (2^4)^3 * 2^2 \equiv 16^3*4 \equiv 1*4\equiv 4 (mod\ 15)$. Also ist $2^{14} mod\ 15 = 4\not= 1$, also ist $15$ definitiv keine Primzahl. (Man beachte, dass wir keinen Faktor angeben müssen, um zu diesem Schluss zu kommen.)
@ -1850,8 +1847,7 @@ $Pr(x|y) =\frac{Pr(x,y)}{Pr(y)}=\frac{Pr(y|x)*Pr(x)}{Pr(y)}=\frac{Pr_K(k_{x,y})*
(Eine etwas genauere Untersuchung, die wir hier aber nicht benötigen, ergibt, dass die Primfaktoren einer Carmichael-ZahlN alle verschieden sein müssen, und dass $N$ mindestens drei Primfaktoren haben muss. Auch aus dieser Tatsache kann man entnehmen, dass Carmichael-Zahlen eher selten sind.)
\subsubsection{Nichttriviale Quadratwurzeln der 1}
Beispiel: Betrachte $N=7*13$. Es gilt $1^2 = 1$ und $90^2 \equiv(-1)^2 (mod\ 91)$. Aber es gilt auch $27^2 = 81* 9 \equiv(-10)*9 = -90\equiv 1(mod\ 91)$. Daraus folgt auch
$642 =(91-27)^2 \equiv (-27)^2 = 27^2 \equiv 1 (mod\ 91)$. Wir nennen eine Zahl $b\in\{2,...,N-2\}$ mit $b^2\ mod\ N=1$ eine nicht triviale Quadratwurzel der $1$ modulo $N$. Bei Primzahlen gibt es solche Zahlen nicht.
Beispiel: Betrachte $N=7*13$. Es gilt $1^2 = 1$ und $90^2 \equiv(-1)^2 (mod\ 91)$. Aber es gilt auch $27^2 = 81* 9 \equiv(-10)*9 = -90\equiv 1(mod\ 91)$. Daraus folgt auch $642 =(91-27)^2 \equiv (-27)^2 = 27^2 \equiv 1 (mod\ 91)$. Wir nennen eine Zahl $b\in\{2,...,N-2\}$ mit $b^2\ mod\ N=1$ eine nicht triviale Quadratwurzel der $1$ modulo $N$. Bei Primzahlen gibt es solche Zahlen nicht.
Lemma 4.39: Wenn $p$ eine ungerade Primzahl ist, dann gilt $b^2\ mod\ p = 1$, $b \in\mathbb{Z}_p$, genau für $b\in\{1 ,p-1\}$.
@ -1965,8 +1961,7 @@ $Pr(x|y) =\frac{Pr(x,y)}{Pr(y)}=\frac{Pr(y|x)*Pr(x)}{Pr(y)}=\frac{Pr_K(k_{x,y})*
Lemma 4.42: Wenn $N$ eine Primzahl ist, gibt der MR-Test $0$ aus.
Beweis: Wir haben oben schon festgestellt, dass Ausgabe 1 genau dann erfolgt, wenn die zufällig gewählte Zahl $a$ ein MR-Zeuge ist. Nach Lemma 4.41(b) gibt es nur dann
MR-Zeugen, wenn $N$ zusammengesetzt ist.
Beweis: Wir haben oben schon festgestellt, dass Ausgabe 1 genau dann erfolgt, wenn die zufällig gewählte Zahl $a$ ein MR-Zeuge ist. Nach Lemma 4.41(b) gibt es nur dann MR-Zeugen, wenn $N$ zusammengesetzt ist.
\subsubsection{Fehlerschranke für den Miller-Rabin-Test}
Wir müssen nun noch die Fehlerwahrscheinlichkeit des Miller-Rabin-Tests für den Fall analysieren, dassN eine zusammengesetzte (ungerade) Zahl ist. Dies wird also für diesen Abschnitt angenommen.
@ -1981,20 +1976,20 @@ $Pr(x|y) =\frac{Pr(x,y)}{Pr(y)}=\frac{Pr(y|x)*Pr(x)}{Pr(y)}=\frac{Pr_K(k_{x,y})*
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$
\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
\begin{tabular}{c|c|c|c|c|c|c|c|c|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}
@ -2160,7 +2155,7 @@ $Pr(x|y) =\frac{Pr(x,y)}{Pr(y)}=\frac{Pr(y|x)*Pr(x)}{Pr(y)}=\frac{Pr_K(k_{x,y})*
\item Benötigt: Privater Schlüssel $\hat{k}= (N,d)$.
\end{itemize*}
$z=D(y,(N,d)) :=y^d\ mod\ N$. (Zu berechnen mit schneller Exponentiation, Rechenzeit $O((log\ N)^3) =O(l^3)$.)
$z=D(y,(N,d)) :=y^d\ mod\ N$. (Zu berechnen mit schneller Exponentiation, Rechenzeit $O((log\ N)^3) =O(l^3)$.)
Nach den Potenzrechenregeln, die auch für die modulare Arithmetik gelten, ist $z=(x^e\ mod\ N)^d\ mod\ N=x^{ed}\ mod\ N$. Die Korrektheit der Entschlüsselung beruht auf folgendem Satz.
@ -2371,8 +2366,7 @@ $Pr(x|y) =\frac{Pr(x,y)}{Pr(y)}=\frac{Pr(y|x)*Pr(x)}{Pr(y)}=\frac{Pr_K(k_{x,y})*
Welcher Rechenaufwand ist nötig? Für die Verschlüsselung muss nur eine Quadrierung modulo $N$ durchgeführt werden; sie kostet nur Zeit $O((log\ N)^2)$. Die Entschlüsselung erfordert eine Exponentiation modulo $p$ und eine modulo $q$ und mehrere Anwendungen des erweiterten Euklidischen Algorithmus - insgesamt Zeit $O((log\ N)^3)$.
*Sicherheit*: Wir nehmen an, Eva hätte ein effizientes Verfahren $B$, mit dem sie alle Chiffretexte zum öffentlichen Schlüssel $N$ entschlüsseln kann. Wir zeigen, dass sie dann auch $N$ faktorisieren kann. (Solange man annimmt, dass dies ein schwieriges Problem ist, kann auch die Annahme, dass Eva Verfahren $B$ hat, als unwahrscheinlich gelten.)
Eva geht so vor: Sie wählt eine Zahl $x$ aus $[N]$ zufällig. Wenn $ggT(x,N)>1$, ist sie fertig, denn dieser größte gemeinsame Teiler ist entweder $p$ oder $q$. Andernfalls berechnet sie $y=x^2\ mod\ N$. Dann wendet sie ihr Entschlüsselungsverfahren an und berechnet ein $z=B(y)$ mit $z^2 \equiv y\ mod\ N$. Dieses $z$ hängt wohlgemerkt nicht von $x$, sondern nur von $y$ ab. Es gilt $x^2\equiv z^2
(mod\ N)$. Wie oben gesehen gibt es vier Möglichkeiten:
Eva geht so vor: Sie wählt eine Zahl $x$ aus $[N]$ zufällig. Wenn $ggT(x,N)>1$, ist sie fertig, denn dieser größte gemeinsame Teiler ist entweder $p$ oder $q$. Andernfalls berechnet sie $y=x^2\ mod\ N$. Dann wendet sie ihr Entschlüsselungsverfahren an und berechnet ein $z=B(y)$ mit $z^2 \equiv y\ mod\ N$. Dieses $z$ hängt wohlgemerkt nicht von $x$, sondern nur von $y$ ab. Es gilt $x^2\equiv z^2 (mod\ N)$. Wie oben gesehen gibt es vier Möglichkeiten:
\begin{enumerate*}
\item $x\equiv z (mod\ p)$ und $x\equiv z (mod\ q)$
\item $x\equiv z (mod\ p)$ und $x\equiv -z (mod\ q)$
@ -2478,14 +2472,13 @@ $Pr(x|y) =\frac{Pr(x,y)}{Pr(y)}=\frac{Pr(y|x)*Pr(x)}{Pr(y)}=\frac{Pr_K(k_{x,y})*
Kommentar: Der Rechenaufwand der Entschlüsselung liegt im Wesentlichen in der schnellen Exponentiation und der Invertierung von $k$.
*Sicherheit*: Man kann sichuberlegen, dass für eine Angreiferin Eva und eine Gruppe G mit erzeugendem Element $g$ folgende Situationen äquivalent sind:
*Sicherheit*: Man kann sich überlegen, dass für eine Angreiferin Eva und eine Gruppe G mit erzeugendem Element $g$ folgende Situationen äquivalent sind:
\begin{enumerate*}
\item Eva kann alle mit dem ElGamal-Verfahren bzgl. $G$ und $g$ verschlüsselten Nachrichten effizient entschlüsseln, also aus $B$, $A$ und $y$ die Nachricht $x$ berechnen, die zum Chiffretext $(A,y)$ geführt hat.
\item Eva kann das DH-Problem für $G$ lösen.
\end{enumerate*}
Wenn Eva diskrete Logarithmen bezüglich $G$ und $g$ berechnen kann, gelten natürlich 1. und 2. Wir beweisen die Äquivalenz.
\begin{itemize*}
\item ,,1.$\Rightarrow$2.'': Eva hat $B=g^b$ und $A=g^a$ vorliegen und möchte $k=g^{ab}$ bestimmen. Sie wendet ihr Entschlüsselungsverfahren auf $B$, $A$ und $y=1$ an. Es ergibt sich ein Wert $x$ mit $g^{ab}\circ x=k\circ x=y=1$. Es gilt also $x=k^{-1}$, und Eva kann $k$ durch Invertierung von $x$ in $G$ berechnen.
\item ,,2.$\Rightarrow$1.'': Eva hat $B=g^b$,$A=g^a$,$y=g^{ab}\circ x$ vorliegen. Weil sie das DH-Problem lösen kann, kann sie $k=g^{ab}$ berechnen und damit natürlich $x=k^{-1}\circ y$ bestimmen.
@ -2497,8 +2490,7 @@ $Pr(x|y) =\frac{Pr(x,y)}{Pr(y)}=\frac{Pr(y|x)*Pr(x)}{Pr(y)}=\frac{Pr_K(k_{x,y})*
\item ElGamal ist erzwungenermaßen randomisiert. Daher führt die wiederholte Verschlüsselung desselben Klartextes $x$ stets zu unterschiedlichen Chiffretexten, weil der Schlüssel $k$ zufällig ist.
\end{itemize*}
Allerdings gibt es die Empfehlung, beim Arbeiten mit RSA den Klartext $x$ durch das Anhängen eines nicht ganz kurzen Zufallsstrings zu
randomisieren. Wenn dieser angehängte Zufallsstring die gleiche Länge wie $x$ hat, ist der Chiffretext genauso lang wie bei ElGamal.
Allerdings gibt es die Empfehlung, beim Arbeiten mit RSA den Klartext $x$ durch das Anhängen eines nicht ganz kurzen Zufallsstrings zu randomisieren. Wenn dieser angehängte Zufallsstring die gleiche Länge wie $x$ hat, ist der Chiffretext genauso lang wie bei ElGamal.
\subsubsection{Berechnung diskreter Logarithmen}
Wie schwierig ist das ,,DL-Problem''?
@ -2542,7 +2534,7 @@ $Pr(x|y) =\frac{Pr(x,y)}{Pr(y)}=\frac{Pr(y|x)*Pr(x)}{Pr(y)}=\frac{Pr_K(k_{x,y})*
Letzteres ist eine allgemeine Beobachtung: DL in $GF(q)^*$ scheint nicht viel schwieriger zu sein als das Faktorisierungsproblem für Zahlen in der Größenordnung von $q$.
\subsubsection{Elliptische Kurvenuber endlichen Körpern}
\subsubsection{Elliptische Kurven über endlichen Körpern}
Elliptische Kurven (,,elliptic curves'', ,,EC'') sind mathematische Strukturen, die eine moderne, attraktive Methode zur Erzeugung endlicher zyklischer Gruppen zur Verwendung in der Kryptographie liefern. Der Ansatz wurde 1985 unabhängig von den amerikanischen Mathematikern Neal Koblitz (\*1948) und Victor S. Miller (\*1947) vorgeschlagen. Der große Vorteil des Verfahrens ist, dass die unter gewissen Umständen schnellen DL-Verfahren für $GF(q)^*$, nämlich Indexkalkül und Zahlkörpersieb, nicht anwendbar sind. Die benötigte Gruppengröße, um ,,Sicherheit'' im praktischen Sinn zu garantieren, ist deutlich kleiner als die bei der zyklischen Gruppe $GF(q)^*$. Dies führt zu Gruppenelementen mit kleinerer Darstellungsgröße und daher effizienterer Verfahren für Verschlüsselung und Entschlüsselung.
(Übliche Längen im Jahr 2016: Bestehende Verfahren benutzen 160 Bits, Planung bis 2030: 224 oder 256 Bits. Ein System, das $\mathbb{Z}^*_p$ für eine 256-Bit-Primzahl $p$ benutzt, gilt als äußerst sicher. Andere endliche Körper kommen ebenfalls in Frage. Vorsicht bei $GF(2^k)^*$! Man benötigt andere Formeln als die unten diskutierten!)
@ -2597,7 +2589,7 @@ $Pr(x|y) =\frac{Pr(x,y)}{Pr(y)}=\frac{Pr(y|x)*Pr(x)}{Pr(y)}=\frac{Pr_K(k_{x,y})*
Es gibt einen ,,effizienten'' Algorithmen zur Ermittlung der Gruppenordnung $N=|E|$ der höchstens $O((log\ p)^6)$ Gruppenoperationen benötigt. Wenn wir Glück haben, ist $N$ eine Primzahl; dann ist jedes Element von $E-\{O\}$ ein erzeugendes Element. Ein Standardverfahren ist, die Wahl von $A$ und $B$ so lange wiederholen, bis $N=|E_{A,B}|$ eine Primzahl $q$ ist. Dann wird ein Element $P$ aus $E-\{O\}$ zufällig gewählt und $(p,A,B,N,P)$ an den Kunden abgeliefert. Mit $p$ und $A$ kann man die Gruppenoperationen implementieren, mit $P$ und $N$ zusätzlich kann man den Diffie-Hellman-Schlüsselaustausch und das ElGamal-Kryptoschema umsetzen.
Standardverfahren für das DL-Problem (Pollards ${\rho}$-Algorithmus, Pohlig-Hellman) funktionieren auch für Gruppen, die zu elliptischen Kurven gehören, nicht aber die viel schnelleren Verfahren wie Indexkalkül oder Zahlkörpersieb. Dies führt dazu, dass man annimmt, dass in EC-basierten Gruppen das DL-Problem (noch) schwieriger zu lösen ist als in $\mathbb{Z}^*_p$, so dass man mit kleineren Zahlbereichen arbeiten kann, was Verschlüsselung und Entschlüsselung wieder effizienter macht.
*Effizienter Einsatz*: Wenn man versucht, das ElGamal-Kryptosystem auf der Basis einer elliptischen KurveEumzusetzen, gibt es das Problem, dass die Elemente von $E$ in $\mathbb{Z}^2_p$ eher dünn sind, so dass die Menge $E$ oder auch die Menge der x-
*Effizienter Einsatz*: Wenn man versucht, das ElGamal-Kryptosystem auf der Basis einer elliptischen Kurve umzusetzen, gibt es das Problem, dass die Elemente von $E$ in $\mathbb{Z}^2_p$ eher dünn sind, so dass die Menge $E$ oder auch die Menge der x-
Koordinaten von Punkten in $E$ als Klartextmenge schlecht geeignet ist. Wie soll man also gewöhnliche Nachrichten auf Punkte auf der Kurve abbilden? Es gibt ein reales kryptographisches Verfahren, das zeigt, wie man diese Schwierigkeit umgeht: ,,Elliptic Curve Integrated Encryption Scheme (ECIES)''. Es beruht darauf, nur für die Manipulationen auf der Schlüsselseite die Gruppe $E$ zu benutzen, und die eigentliche Verschlüsselung in $\mathbb{Z}^*_p$ auszuführen. Das reale ECIES-Verfahren integriert noch ein symmetrisches Verschlüsselungsverfahren und ,,message authentication'' (ein ganz anderes kryptographisches Elementarwerkzeug). Wir geben hier nur den Kern an, der ein asymmetrisches Kryptosystem darstellt. Es gibt Anklänge an das ElGamal-Kryptosystem, aber Unterschiede im Detail.
Mit eingebaut ist ein Verfahren, das Elemente von $E-\{O\}$ kompakt darstellt: Anstelle von $(x,y)\in\mathbb{Z}^2_p$ speichern wir $x$ und ein Bit $b$. Im Allgemeinen gibt es keinen oder zwei Punkte auf $E_{A,B}$ mit erster Koordinate $x$ (außer bei den Nullstellen von $f$). Wenn $f(x)=x^3+Ax+B\not= 0$ ein Quadrat in $\mathbb{Z}_p$ ist, gibt es zwei passende Werte $y_1$ und $y_2$ mit $y_1+y_2=p$, von denen einer gerade und einer ungerade ist. Diese beiden Situationen werden durch $b$ unterschieden.