Lösungen zu Aufgabe 8
This commit is contained in:
parent
d6e3aa3b39
commit
173c3d1dc9
BIN
Kryptographie - Prüfungsvorbereitung.pdf
(Stored with Git LFS)
BIN
Kryptographie - Prüfungsvorbereitung.pdf
(Stored with Git LFS)
Binary file not shown.
@ -601,13 +601,13 @@
|
||||
Der ,,Chinesische Restsatz'' besagt im Wesentlichen, dass für teilerfremde Zahlen $m$ und $n$ die Strukturen $\mathbb{Z}_m \times\mathbb{Z}_n$ (mit komponentenweisen Operationen) und $\mathbb{Z}_{mn}$ isomorph sind.
|
||||
|
||||
$m$ und $n$ seien teilerfremd. Dann ist die Abbildung $\Phi:\mathbb{Z}_{mn} \owns x \rightarrow (x\ mod\ m, x\ mod\ n)\in\mathbb{Z}_m\times\mathbb{Z}_n$ bijektiv. Weiterhin: Wenn $\Phi(x)=(x_1,x_2)$ und $\Phi(y)=(y_1,y_2)$, dann gilt:
|
||||
\begin{enumerate}
|
||||
\begin{enumerate}
|
||||
\item $\Phi(x+_{mn} y) = (x_1 +_m y_1 , x_2 +_n y_2)$
|
||||
\item $\Phi(x*_{mn} y) = (x_1 *_m y_1 , x_2 *_n y_2)$
|
||||
\item $\Phi(1) = (1,1)$
|
||||
\end{enumerate}
|
||||
\end{enumerate}
|
||||
|
||||
(Dabei bezeichnen $+_j$ und $*_j$ die Addition und die Multiplikation modulo $j$.)
|
||||
(Dabei bezeichnen $+_j$ und $*_j$ die Addition und die Multiplikation modulo $j$.)
|
||||
\end{solution}
|
||||
|
||||
\part Vervollständige den kleinen Satz von Fermat:
|
||||
@ -650,7 +650,7 @@
|
||||
|
||||
\part Definiere: $b\in\{1,...,N-1\}$ heißt nichttriviale Quadratwurzel der 1 modulo $N$, wenn...
|
||||
\begin{solution}
|
||||
Eine Zahl $b\in\{2,...,N-2\}$ mit $b^2\ mod\ N=1$ heißt eine nicht triviale Quadratwurzel der $1$ modulo $N$. Bei Primzahlen gibt es solche Zahlen nicht.
|
||||
Eine Zahl $b\in\{2,...,N-2\}$ mit $b^2\ mod\ N=1$ heißt eine nicht triviale Quadratwurzel der $1$ modulo $N$. Bei Primzahlen gibt es solche Zahlen nicht.
|
||||
\end{solution}
|
||||
|
||||
\part Wenn man eine nichttriviale Quadratwurzel $b$ der 1 modulo $N$ gefunden hat, weiß man sicher, dass $N$.... ist.
|
||||
@ -683,17 +683,17 @@
|
||||
return
|
||||
\begin{solution}
|
||||
Der Miller-Rabin-Primzahltest
|
||||
\begin{itemize}
|
||||
\item Bestimme $u$ ungerade und $k\geq 1$ mit $N-1 =u*2^k$
|
||||
\item wähle zufällig ein $a$ aus $\{1 ,...,N-1\}$
|
||||
\item $b \leftarrow a^u\ mod\ N$ // mit schnellem Potenzieren
|
||||
\item if $b\in\{1,N-1\}$ then return $0$
|
||||
\item for $j$ from $1$ to $k-1$ do //,,wiederhole (k-1)-mal''
|
||||
\item $b\leftarrow b^2\ mod\ N$
|
||||
\item if $b=N-1$ then return $0$
|
||||
\item if $b=1$ then return $1$
|
||||
\item return $1$
|
||||
\end{itemize}
|
||||
\begin{itemize}
|
||||
\item Bestimme $u$ ungerade und $k\geq 1$ mit $N-1 =u*2^k$
|
||||
\item wähle zufällig ein $a$ aus $\{1 ,...,N-1\}$
|
||||
\item $b \leftarrow a^u\ mod\ N$ // mit schnellem Potenzieren
|
||||
\item if $b\in\{1,N-1\}$ then return $0$
|
||||
\item for $j$ from $1$ to $k-1$ do //,,wiederhole (k-1)-mal''
|
||||
\item $b\leftarrow b^2\ mod\ N$
|
||||
\item if $b=N-1$ then return $0$
|
||||
\item if $b=1$ then return $1$
|
||||
\item return $1$
|
||||
\end{itemize}
|
||||
\end{solution}
|
||||
|
||||
\part Was kann man über das Ein-/Ausgabeverhalten des Miller-Rabin-Algorithmus auf Eingabe $N\geq 5$ (ungerade) sagen?
|
||||
@ -712,7 +712,7 @@
|
||||
|
||||
\part Formuliere den Primzahlsatz:
|
||||
\begin{solution}
|
||||
Primzahlsatz: $lim_{x\rightarrow \infty} \frac{\pi(x)}{x\backslash ln\ x}= 1$.
|
||||
Primzahlsatz: $lim_{x\rightarrow \infty} \frac{\pi(x)}{x\backslash ln\ x}= 1$.
|
||||
|
||||
Mit $\pi(x)$ bezeichnen wir die Anzahl der Primzahlen, die nicht größer als $x$ sind.
|
||||
\end{solution}
|
||||
@ -747,11 +747,11 @@
|
||||
|
||||
Der erwartete Berechnungsaufwand für die Schlüsselerzeugung ist $O((log\ N)^4) =O(l^4)$, weil dies die Kosten der Primzahlerzeugung sind.
|
||||
|
||||
Bob erhält aus seiner Rechnung $N$, $e$ und $d$. Aus diesen wird das Schlüsselpaar $(k,\hat{k})$ gebildet:
|
||||
\begin{itemize}
|
||||
\item Der öffentliche Schlüssel $k$ ist das Paar $(N,e)$. Dieser wird bekanntgegeben.
|
||||
\item Der geheime Schlüssel $\hat{k}$ ist $(N,d)$. (Natürlich ist nur der Teil $d$ wirklich geheim.)
|
||||
\end{itemize}
|
||||
Bob erhält aus seiner Rechnung $N$, $e$ und $d$. Aus diesen wird das Schlüsselpaar $(k,\hat{k})$ gebildet:
|
||||
\begin{itemize}
|
||||
\item Der öffentliche Schlüssel $k$ ist das Paar $(N,e)$. Dieser wird bekanntgegeben.
|
||||
\item Der geheime Schlüssel $\hat{k}$ ist $(N,d)$. (Natürlich ist nur der Teil $d$ wirklich geheim.)
|
||||
\end{itemize}
|
||||
\end{solution}
|
||||
|
||||
\part Verschlüsseln von $x\in ... :y=... $.
|
||||
@ -776,6 +776,8 @@
|
||||
\part Beschreibe eine Strategie für RSA-basierte Systeme, mit der verhindert werden kann, dass zwei identische Klartextblöcke bei Verwendung desselben Schlüsselpaars gleich verschlüsselt werden.
|
||||
\begin{solution}
|
||||
Verwendung von Prä- und Postblöcken, die vor und nach dem zu verschlüsselnden Textblock angehängt werden mit randomisiertem (Zufallsbits) oder zeitlich abhängigem (Zeitstempel) Inhalt.
|
||||
|
||||
Es ist Empfohlen, 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.
|
||||
\end{solution}
|
||||
\end{parts}
|
||||
|
||||
@ -803,10 +805,10 @@
|
||||
Genauso sieht man, dass $s\equiv x(mod\ q)$ oder $q-s\equiv x(mod\ q)$ gilt.
|
||||
Mit der konstruktiven Variante des chinesischen Restsatzes können wir nun vier Zahlen $z_1,...,z_4 \in [N]$ berechnen, die die folgenden Kongruenzen erfüllen
|
||||
\begin{itemize}
|
||||
\item $z_1 \equiv r (mod\ p)$ und $z_1 \equiv s (mod\ q)$
|
||||
\item $z_2 \equiv r (mod\ p)$ und $z_2 \equiv q-s (mod\ q)$
|
||||
\item $z_3 \equiv p-r (mod\ p)$ und $z_3 \equiv s (mod\ q)$
|
||||
\item $z_4 \equiv p-r (mod\ p)$ und $z_4 \equiv q-s (mod\ q)$
|
||||
\item $z_1 \equiv r (mod\ p)$ und $z_1 \equiv s (mod\ q)$
|
||||
\item $z_2 \equiv r (mod\ p)$ und $z_2 \equiv q-s (mod\ q)$
|
||||
\item $z_3 \equiv p-r (mod\ p)$ und $z_3 \equiv s (mod\ q)$
|
||||
\item $z_4 \equiv p-r (mod\ p)$ und $z_4 \equiv q-s (mod\ q)$
|
||||
\end{itemize}
|
||||
|
||||
Wegen der obigen Überlegung ist $x\in\{z_1,...,z_4\}$. Wir wählen eine dieser vier Möglichkeiten.
|
||||
@ -819,10 +821,10 @@
|
||||
Welche der oberen Möglichkeiten die richtige (ausgewählte) ist, hängt vom Zufall ab, der die Auswahl von $x$ steuert. Jede der 4 Quadratwurzeln von $y$ hat dieselbe Wahrscheinlichkeit $1/4$, als $x$ gewählt worden zu sein.
|
||||
|
||||
\begin{enumerate}
|
||||
\item Fall: $x=z$, Misserfolg.
|
||||
\item Fall: $0<|x-z|< N$ und $x-z$ durch $p$ teilbar, woraus $ggT(x-z,N) =p$ folgt: Erfolg!
|
||||
\item Fall: $0<|x-z|< N$ und durch $q$ teilbar, woraus $ggT(x-z,N) =q$ folgt: Erfolg!
|
||||
\item Fall: $x+z=N$, also $x-z\equiv 2x(mod\ N)$. Weil $2x$ teilerfremd zu $N$ ist, ergibt sich $ggT(x-z,N)=1$, Misserfolg.
|
||||
\item Fall: $x=z$, Misserfolg.
|
||||
\item Fall: $0<|x-z|< N$ und $x-z$ durch $p$ teilbar, woraus $ggT(x-z,N) =p$ folgt: Erfolg!
|
||||
\item Fall: $0<|x-z|< N$ und durch $q$ teilbar, woraus $ggT(x-z,N) =q$ folgt: Erfolg!
|
||||
\item Fall: $x+z=N$, also $x-z\equiv 2x(mod\ N)$. Weil $2x$ teilerfremd zu $N$ ist, ergibt sich $ggT(x-z,N)=1$, Misserfolg.
|
||||
\end{enumerate}
|
||||
|
||||
Eva muss also nur $ggT(x-z,N)$ berechnen! Damit gelingt es ihr mit Wahrscheinlichkeit $1/2$, die Faktoren von $N$ zu ermitteln. Durch l-fache Wiederholung desselben Experiments lässt sich die Erfolgswahrscheinlichkeit auf $1-\frac{1}{2^l}$ erhöhen.
|
||||
@ -842,27 +844,49 @@
|
||||
|
||||
\part Um die Schlüssel festzulegen, wählt Bob zufällig eine geheime Zahl $b\in...$. Der öffentliche Schlüssel ist ... mit $B=$...
|
||||
\begin{solution}
|
||||
Es wird eine zyklische Gruppe $(G,\circ,e)$ mit einem erzeugenden Element $g$ benötigt, sowie $N=|G|$, so dass das zugehörige DH-Problem schwer zu lösen ist. Ein Element $b$ wird zufällig aus $\{2 ,...,|G|-2\}$ gewählt, und es wird mittels schneller Exponentiation $B=g^b$ berechnet. Der öffentliche Schlüssel ist $k_{pub}= (G,g,B)$, der geheime Schlüssel ist $b$ bzw. $k_{priv}=(G,g,b)$.
|
||||
\end{solution}
|
||||
|
||||
\part Verschlüsselung von Klartextblock $x\in$... mit öffentlichem Schlüssel: ...
|
||||
\begin{solution}
|
||||
Wir nehmen an, dass die Menge der möglichen Botschaften (Binärstrings) eine Teilmenge von $G$ ist. Um eine Botschaft $x\in G$ zu verschlüsseln, wählt Alice eine Zufallszahl $a$ aus $\{2,...,|G|-2\}$ und berechnet $A=g^a$. Weiter berechnet sie $y:=B^a \circ x$. Der Chiffretext ist $(A,y)$.
|
||||
\end{solution}
|
||||
|
||||
\part Entschlüsselung von Chiffretext $... \in ... $ mithilfe von $b$: ...
|
||||
\begin{solution}
|
||||
Bob kennt die Gruppe $G$ und $g$, sowie $A$ und $y$ (von Alice) sowie seinen geheimen Schlüssel $b$. Er berechnet $A^b= (g^a)^b=k$. Dann berechnet er das Gruppenelement $z=k^{-1}\circ y$, mit Hilfe der effizienten Invertierung und Gruppenoperation in $G$.
|
||||
\end{solution}
|
||||
|
||||
\part Gebe das Diffie-Hellman-Problem (DH-Problem) an:
|
||||
Zu Input, ..., ... finde ... .
|
||||
Zu Input ..., ... finde ... .
|
||||
\begin{solution}
|
||||
Die Idee dabei ist, dass $k=g^{ab}$ ist, wo nur Alice $a$ kennt und nur Bob $b$. Über den öffentlichen Kanal laufen die Gruppenelemente $g^a$ und $g^b$. Eva hat also das Problem, aus $g^a$ und $g^b$ den Wert $g^{ab}$ zu berechnen.
|
||||
|
||||
Zu Input $k=g^{ab}$, wobei nur Alice $a$ kennt und nur Bob $b$ kennt, finde $g^a$ und $g^b$.
|
||||
\end{solution}
|
||||
|
||||
\part Zur Sicherheit des ElGamal-Kryptosystems lässt sich feststellen: Eve kann alle bzgl. $G$ und $g$ verschlüsselten Nachrichten effizient entschlüsseln genau dann wenn ...
|
||||
\begin{solution}
|
||||
\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.
|
||||
\end{itemize}
|
||||
\end{solution}
|
||||
|
||||
\part Wieso verwendet man in der Praxis lieber Systeme, die auf elliptischen Kurven basieren, als solche, die auf diskreten Logarithmen beruhen?
|
||||
\begin{solution}
|
||||
\begin{itemize}
|
||||
\item wesentlich kleinere Schlüsselmenge bei deutlich höherer Komplexität
|
||||
\item Bisher kein Verfahren zum ,,zurück-rechnen'' vom Öffentlichen zum Privaten Schlüssel bekannt
|
||||
\item nur durch Brute Force möglich zu knacken
|
||||
\item geringer Aufwand bei hoher Sicherheit
|
||||
\end{itemize}
|
||||
\end{solution}
|
||||
\end{parts}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user