From 7409cf3953db284b0b6606f291e0b2e9df319e87 Mon Sep 17 00:00:00 2001 From: wieerwill Date: Mon, 14 Mar 2022 12:15:49 +0100 Subject: [PATCH] =?UTF-8?q?Fragen=20aus=20Pr=C3=BCfungsvorbereitung?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Kryptographie - Flashcards.pdf | 4 +- Kryptographie - Flashcards.tex | 409 ++++++++++++++++++++++++++++++++- 2 files changed, 406 insertions(+), 7 deletions(-) diff --git a/Kryptographie - Flashcards.pdf b/Kryptographie - Flashcards.pdf index 9072676..d333ab1 100644 --- a/Kryptographie - Flashcards.pdf +++ b/Kryptographie - Flashcards.pdf @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:be961948fe4a57b24d7cbfc86098b61a14bece9f31a637dacd854eefb5ecbde8 -size 75479 +oid sha256:e496831a03ec8c3575a43c4c50c7b71f85c92620dae13adfe69882a92f00f6a5 +size 219765 diff --git a/Kryptographie - Flashcards.tex b/Kryptographie - Flashcards.tex index 50c769f..9a2c0ee 100644 --- a/Kryptographie - Flashcards.tex +++ b/Kryptographie - Flashcards.tex @@ -15,12 +15,411 @@ \begin{flashcard}[Kryptosysteme]{Ein Kryptosystem ist ein Tupel $S=(X,K,Y,e,d)$, wobei} \begin{itemize*} - \item X nicht leere endliche Menge als Klartext - \item K nicht leere endliche Menge als Schlüssel - \item Y eine Menge als Chiffretexte - \item $e:X\times K\rightarrow Y$ Verschlüsselungsfunktion - \item $d:Y\times K\rightarrow X$ Entschlüsselungsfunktion + \item X nicht leere endliche Menge als Klartext + \item K nicht leere endliche Menge als Schlüssel + \item Y eine Menge als Chiffretexte + \item $e:X\times K\rightarrow Y$ Verschlüsselungsfunktion + \item $d:Y\times K\rightarrow X$ Entschlüsselungsfunktion \end{itemize*} \end{flashcard} + +\begin{flashcard}[Kryptosysteme]{Dechiffrierbedingung} + $\forall x\in X\forall k\in K:d(e(x,k),k) =x$ +\end{flashcard} + +\begin{flashcard}[Kryptosysteme]{Surjektivität} + $\forall y\in Y\exists x\in X,k\in K:y=e(x,k)$ +\end{flashcard} + +\begin{flashcard}[Kryptosysteme]{Unter einer Chiffre von $S$ versteht man} + die Funktion $e(.,k):X\rightarrow Y$, $x\rightarrow e(x,k)$ für festes $k\in K$ +\end{flashcard} + +\begin{flashcard}[Kryptosysteme]{Ein Kryptosystem heißt possibilistisch sicher, wenn gilt} + \begin{itemize*} + \item $\forall y\in Y\forall x\in X\exists k\in K:e(x,k)=y$ + \item Schlüssel mindestens so lang wie der zu übermittelnde Text + \item in jeder Spalte für $e$ kommen alle Chiffretexte vor + \item in jeder Zeile für $e$ müssen die Einträge verschieden voneinander sein + \end{itemize*} +\end{flashcard} + +\begin{flashcard}[Kryptosysteme]{Sei $(S,P_k)$ ein Kryptosystem mit Schlüsselverteilung. Es heißt informationstheoretisch sicher bezüglich $Pr_x$, wenn gilt} + \begin{itemize*} + \item Eintreten von x und y sind unabhängig + \item $\forall x\in X \forall y\in Y: Pr(x,y)=Pr(x)Pr(y)$ + \item bezüglich jeder beliebigen Klartextverteilung $Pr_X$ informationstheoretisch sicher + \item $(X,K,Y,e,d)$ ist possibilistisch sicher und $Pr_K(k)=\frac{1}{|K|}$ für alle $k\in K$ + \item in jeder Spalte für $e$ alle Chiffretexte vorkommen und die Schlüsselverteilung $Pr_K$ uniform + \item für jede Spalte Chiffretextwahrs. separat + \end{itemize*} +\end{flashcard} + +\begin{flashcard}[Block Kryptosystemen]{Beschreibe Szenario 2} + Alice möchte Bob mehrere verschiedene Klartexte vorher bekannter und begrenzter Länge übermitteln. + + Sie verwendet dafür immer denselben Schlüssel. + + Eva hört die Chiffretexte mit und kann sich sogar einige Klartexte mit dem verwendeten Schlüssel verschlüsseln lassen. +\end{flashcard} + +\begin{flashcard}[Block Kryptosysteme]{Nenne ein informationstheoretisch sicheres Block-Kryptosystem, das von Eva in Szenarium 2 leicht gebrochen werden kann.} + Aus Kenntnis von $x\in\{0,1\}^l$ und $y=e(x,k)$ für ein einziges Paar $(x,k)\in X\times K$ kann Eva den Schlüssel $k=x\oplus_l y$ berechnen. Das gilt für das Cäsar-System, das Vigenère-System und das informationstheoretisch sichere \textbf{Vernam}-System. +\end{flashcard} + +\begin{flashcard}[Block Kryptosysteme]{In der Vorlesung wurde possibilistische Sicherheit für Szenarium 2 definiert. Nenne ein $l$-Block-Kryptosystem, das diese Definition erfüllt. Die nötige Schlüsselmenge $K$ hat Größe\dots} + 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,\dots,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$. + + Die nötige Schlüsselmenge $K$ hat Größe $\frac{|Y|!}{(|Y|-|X|)!} \geq |X|!$ viele Schlüssel. + Mit $X=\{0,1\}^{128}$ gibt es also $\geq 2^{128}!$ viele Schlüssel. +\end{flashcard} + +\begin{flashcard}[Block Kryptosysteme]{Nenne ein Block-Kryptosystem aus der Vorlesung, das gegenwärtig für Szenarium 2 in der Praxis benutzt wird.} + Triple-DES, AES +\end{flashcard} + +\begin{flashcard}[Block Kryptosysteme]{Beschreibe das Konzept eines $l$-Unterscheiders} + Ein l-Unterscheider ist ein randomisierter Algorithmus $U(F:\{0,1\}^l\rightarrow\{0,1\}^l):\{0,1\}$, dessen Laufzeit bzw. Ressourcenaufwand durch eine Konstante beschränkt ist. + %Das Argument des l-Unterscheiders ist eine Chiffre $F$. Diese ist als ,,Orakel'' gegeben, das heißt als Prozedur, die nur ausgewertet werden kann, deren Programmtext $U$ aber nicht kennt. Das Programm $U$ kann $F$ endlich oft aufrufen, um sich Paare zu besorgen. Danach kann $U$ noch weiter rechnen, um zu einer Entscheidung zu kommen. Das von $U$ gelieferte Ergebnis ist ein Bit. + Für ein gegebenes Block-Kryptosystem $B$ ist das gewünschte Verfahren: Programm $U$ sollte 1 liefern, wenn $F$ eine Chiffre $e(.,k)$ zu $B$ ist, und $0$, wenn $F=\pi$ für eine Permutation $\pi\in P\{0,1\}^l$ ist, die keine $B$-Chiffre ist. +\end{flashcard} + +\begin{flashcard}[Block Kryptosysteme]{Beschreibe das zugehörige Sicherheitsspiel eines $l$-Unterscheiders} + Man entscheidet mit einem Münzwurf, ob Unterscheider $U$ für seine Untersuchungen als $F(.)$ eine zufällige Chiffre $e(.,k)$ von Kryptosystem $B$ oder eine zufällige Permutation $\pi$ von $\{0,1\}^l$ erhalten soll. Dann rechnet $U$ mit $F$ als Orakel und gibt dann seine Meinung ab, ob er sich in der Realwelt oder in der Idealwelt befindet. U ,,gewinnt'', wenn diese Meinung zutrifft. +\end{flashcard} + +\begin{flashcard}[Block Kryptosysteme]{Definiere den Vorteil eines $l$-Unterscheiders.} + \begin{itemize*} + \item der Vorteil von $U$ bzgl. $B$ ist $adv(U,B):= 2(Pr(G^B_U=1)-\frac{1}{2})$ + \item Für jeden l-Unterscheider $U$ und jedes l-Block-KS $B$ gilt $-1\geq adv(U,B)\geq 1$ + \item Werte $adv(U,B)<0$ sind uninteressant (Ausgaben können vertauscht werden um positiven Vorteil zu erhalten) + \end{itemize*} +\end{flashcard} + +\begin{flashcard}[Betriebsarten]{Beschreibe die ECB-Betriebsart (Electronic Code Book)} + Ein Schlüssel ist ein Schlüssel $k$ von $B$. Man verschlüsselt einfach die einzelnen Blöcke von $x$ mit $B$, jedes mal mit demselben Schlüssel $k$. + +\end{flashcard} + +\begin{flashcard}[Betriebsarten]{Beschreibe die CBC-Betriebsart (Cipher Block Chaining)} + Blöcke in Runden $i=0, 1 ,\dots,m-1$ nacheinander verschlüsselt und das Ergebnis einer Runde wird zur Modifikation des Klartextblocks der nächsten Runde benutzt. +\end{flashcard} + +\begin{flashcard}[Betriebsarten]{Beschreibe die R-CBC-Betriebsart (Randomized Cipher Block Chaining)} + ? +\end{flashcard} + +\begin{flashcard}[Betriebsarten]{Beschreibe die OFB-Betriebsart (Output FeedBack)} + ? +\end{flashcard} + +\begin{flashcard}[Betriebsarten]{Beschreibe die R-CTR-Betriebsart (Randomized CounTeR)} + ? +\end{flashcard} + +\begin{flashcard}[Betriebsarten]{Nutze die ECB-Betriebsart. Gebe einen Angreifer an, der die Chiffretexte zweier selbstgewählter Klartexte ohne Kenntnis des Schlüssels unterscheiden kann.} + Ein Block $x\in\{0,1\}^l$ wird immer gleich verschlüsselt. Eva kann also ganz leicht nicht-triviale Informationen aus dem Chiffretext erhalten. + Zum Beispiel kann sie sofort sehen, ob der Klartext die Form $x=x_1 x_1$, mit $x_1\in\{0,1\}^l$, hat oder nicht. +\end{flashcard} + +\begin{flashcard}[Betriebsarten]{Nutze die CBC-Betriebsart. Gebe einen Angreifer an, der die Chiffretexte zweier selbstgewählter Klartexte ohne Kenntnis des Schlüssels unterscheiden kann.} + Wird zweimal der Klartext $x$ verschlüsselt, so geschieht dies immer durch denselben Chiffretext $y=E(x,(k,v))$. Dies ist eine Folge der Eigenschaft von CBC, deterministisch zu sein. +\end{flashcard} + +\begin{flashcard}[Zahlentheorie]{Auf Eingabe $x,y\in\mathbb{N}$ liefert der Euklidische Algorithmus eine ganze Zahlen $d$ mit \dots} + + \begin{itemize*} + \item[] $a,b:integer;a\leftarrow |x|;b\leftarrow |y|;$ + \item[] $while\ b> 0\ repeat$ + \begin{itemize*} + \item[] $(a,b)\leftarrow (b,a\ mod\ b);$ %// simultane Zuweisung + \end{itemize*} + \item[] return $a$ + \end{itemize*} + + Der Euklidische Algorithmus liefert eine ganze Zahl $d$, die der größte gemeinsame Teiler von $x$ und $y$ ist. +\end{flashcard} + +\begin{flashcard}[Zahlentheorie]{Auf Eingabe $x,y\in\mathbb{N}$ liefert der erweiterte Euklidische Algorithmus (EEA) drei ganze Zahlen $d,s,t$. + + Welche Eigenschaften erfüllen diese?} + + \begin{enumerate*} + \item Für die Ausgabe $(d,s,t)$ gilt $d= ggT(x,y) =s*x+t*y$. + \item Die Anzahl der Schleifendurchläufe ist dieselbe wie beim gewöhnlichen Euklidischen Algorithmus + \item Die Anzahl von Ziffernoperationen ist $O((log\ x)(log\ y))$ + \end{enumerate*} +\end{flashcard} + +\begin{flashcard}[Zahlentheorie]{Wenn er auf zwei Zahlen mit je $n$ Bits angewendet wird, führt der erweiterte Euklidische Algorithmus $O(\dots)$ Bitoperationen aus.} + $O((log\ x)(log\ y))$ +\end{flashcard} + +\begin{flashcard}[Zahlentheorie]{Seien $a$ und $N$ teilerfremde natürliche Zahlen. Wie kann man eine ganze Zahl $b$ ermitteln, die die Gleichung $a*b\ mod\ N= 1$ erfüllt?} + + $(a*b)\ mod\ N = (a\ mod\ N * b\ mod\ N)mod\ N = 1$ +\end{flashcard} + +\begin{flashcard}[Zahlentheorie]{Gebe den Algorithmus der Funktion $modexp(x,y,N)$ zur rekursiven Berechnung von $x^y\ mod\ n$ mithilfe der schnellen modularen Exponentiation an. + + Dieser Algorithmus führt $O(\dots)$ modulare Multiplikationen aus.} + + function $modexp(x,y,m)$ + \begin{itemize*} + \item[] if $y= 0$ then return $1$ + \item[] if $y= 1$ then return $x$ + \item[] $z\leftarrow modexp((x*x) mod\ m,\lfloor y/2\rfloor,m);$ %// rekursiver Aufruf + \item[] if $y$ ist ungerade then $z\leftarrow (z*x) mod\ m$ + \item[] return $z$ + \end{itemize*} + + erfordert $O((log\ m)^2)$ Ziffernoperationen +\end{flashcard} + +\begin{flashcard}[Zahlentheorie]{Vervollständige den Chinesischen Restsatz: + + Wenn $m$ und $n$ \dots Zahlen sind, dann ist die Abbildung $\Phi:\dots\rightarrow\dots, x\rightarrow \dots,\dots$.} + Wenn $m$ und $n$ teilerfremde Zahlen sind, sind die Strukturen $\mathbb{Z}_m \times\mathbb{Z}_n$ und $\mathbb{Z}_{mn}$ isomorph. + + 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{itemize*} + \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{itemize*} +\end{flashcard} + +\begin{flashcard}[Zahlentheorie]{Vervollständige den kleinen Satz von Fermat: + + Wenn $p$ \dots ist und $a$ in \dots liegt, dann gilt: \dots} + Wenn $p$ eine Primzahl ist und $a\in\mathbb{Z}^*_p$ liegt, + + dann gilt $a^{p-1}\ mod\ p= 1$ +\end{flashcard} + +\begin{flashcard}[Zahlentheorie]{ Vervollständige den Satz von Euler: + + Für $m\geq 2$ und $x$ mit \dots gilt \dots .} + Für $m\geq 2$ und $x$ mit $ggT(m,x) = 1$ gilt $x\varphi(m)\ mod\ m=1$ +\end{flashcard} + +\begin{flashcard}[Primzahlen]{Definiere den Begriff ,,$a$ ist ein F-Lügner'' (für $N$): + + $N$ ist \dots und es gilt \dots .} + Sei $N\geq 3$ ungerade und zusammengesetzt. + + Eine Zahl $a\in\{1,\dots,N-1\}$ heißt \textbf{F-Zeuge} für $N$, wenn $a^{N-1} mod\ N\not= 1$ gilt. + + Eine Zahl $a\in\{1,\dots,N-1\}$ heißt \textbf{F-Lügner} für $N$, wenn $a^{N-1} mod\ N=1$ gilt. + + Die Menge der F-Lügner nennen wir $L^F_N$. +\end{flashcard} + +\begin{flashcard}[Primzahlen]{$N$ heißt Carmichael-Zahl, wenn \dots} + Eine ungerade zusammengesetzte Zahl $N$ heißt eine Carmichael-Zahl, wenn für alle $a\in\mathbb{Z}^*_N$ die Gleichung $a^{N-1}\ mod\ N= 1$ gilt. +\end{flashcard} + +\begin{flashcard}[Primzahlen]{Formuliere den Fermat-Test für eine gegebene ungerade Zahl $N\geq 5$: Wähle\dots und berechne $c=\dots$. Wenn $c=\dots$ ist, ist die Ausgabe \dots., sonst ist sie \dots .} + Nutze den Fermat-Test, um ,,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. + + Für eine gegebene ungerade Zahl $N\geq 5$: Wähle $a<5$ und berechne $c=a^{N-1}\ mod\ N$. Wenn $c\not=1$ ist, ist die Ausgabe N ist kine Primzahl, sonst ist sie eine Primzahl. +\end{flashcard} + +\begin{flashcard}[Primzahlen]{Definiere: $b\in\{1,\dots,N-1\}$ heißt nichttriviale Quadratwurzel der 1 modulo $N$, wenn\dots} + Eine Zahl $b\in\{2,\dots,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{flashcard} + +\begin{flashcard}[Primzahlen]{Wenn man eine nichttriviale Quadratwurzel $b$ der 1 modulo $N$ gefunden hat, weiß man sicher, dass $N$\dots. ist.} + Wenn es eine nichttriviale Quadratwurzel der $1$ modulo $N$ gibt, dann ist $N$ zusammengesetzt. +\end{flashcard} + +\begin{flashcard}[Primzahlen]{Definiere den Begriff $\{$qqa ist ein MR-Lügner$\}$ (für $N$): + + Suche ungerades $u$ und $k\geq 1$ mit\dots=\dots . + Bilde die Folge $b_0=\dots,b_1=\dots,\dots,b_k=\dots$. + $a$ heißt dann ein MR-Lügner (für $N$), falls \dots} + + Wir schreiben $N-1=u*2^k$, für $u$ ungerade, $k\geq 1$. + + Eine Zahl $a, 1\leq a < N$, heißt ein MR-Lügner für $N$, wenn $b_0=1$ oder in der Folge $b_0,\dots,b_{k-1}$ zu $a$ kommt $N-1$ vor gilt, $a^u\equiv 1$ oder $a^{u*2^i}\equiv N-1 (mod\ N)$ für ein $i$ mit $0\leq i < k$ +\end{flashcard} + +\begin{flashcard}[Primzahlen]{Ergänze den Algorithmus von Miller/Rabin (Eingabe $N\geq 5$)} + \begin{itemize*} + \item[] suche $u$ ungerade und $k\geq 1$ mit $N-1 =u*2^k$ + \item[] wähle zufällig ein $a$ aus $\{1 ,\dots,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'' + \begin{itemize*} + \item[] $b\leftarrow b^2\ mod\ N$ + \end{itemize*} + \item[] if $b=N-1$ then return $0$ + \item[] if $b=1$ then return $1$ + \item[] return $1$ + \end{itemize*} +\end{flashcard} + +\begin{flashcard}[Primzahlen]{Was kann man über das Ein-/Ausgabeverhalten des Miller-Rabin-Algorithmus auf Eingabe $N\geq 5$ (ungerade) sagen? + + $N$ zusammengesetzt $\Rightarrow$ \dots, + + $N$ Primzahl $\Rightarrow$\dots} + Wenn $N$ zusammengesetzt $\Rightarrow$ gibt es MR-Zeugen. + + Wenn $N$ eine Primzahl ist, gibt der MR-Test $0$ aus. +\end{flashcard} + +\begin{flashcard}[Primzahlen]{Wie kann man vorgehen, + + um aus dem Miller-Rabin-Test einen Primzahltest zu erhalten, + + dessen Fehlerwahrscheinlichkeit höchstens $1/4^l$ beträgt?} + Tatsächlich ist die Fehlerwahrscheinlichkeit durch $1/4^l$ beschränkt. Dies kann man aber nur durch fortgeschrittene zahlentheoretische Untersuchungen über die erwartete Wahrscheinlichkeit, dass eine zufällige ungerade zusammengesetzte Zahl den $l$-fach iterierten MiRa-Test übersteht, beweisen. +\end{flashcard} + +\begin{flashcard}[Primzahlen]{Formuliere den Primzahlsatz} + 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{flashcard} + +\begin{flashcard}[Primzahlen]{Nach der Ungleichung von Finsler gibt es $\Omega(\dots)$ Primzahlen im Intervall $[m, 2m)$. Entsprechend muss man für $\mu\in\mathbb{N}$ erwartet nur $O(\dots)$ Zahlen zufällig aus $[2^{\mu-1}, 2^{\mu})$ ziehen, um mindestens eine $\mu$-Bit Primzahl zu erhalten.} + Ungleichung von Finsler: Für jede ganze Zahl $m\geq 2$ liegen im Intervall $(m, 2m]$ mindestens $m/(3\ ln(2m))$ Primzahlen: $\pi (2m)-\pi(m)\geq \frac{m}{3\ ln(2m)}$. + + $\Rightarrow \pi(2m)-\pi(m) = O(m/log\ m)$ +\end{flashcard} + +\begin{flashcard}[Primzahlen]{Zu gegebenem $\mu$ soll eine (zufällige) Primzahl im Intervall $[2^{\mu-1}, 2^{\mu})$ gefunden werden. Wie geht man vor?} + wiederhole: \dots + bis Ergebnis \dots erscheint. + Wie lässt sich die erwartete Anzahl von Bitoperationen für das Finden einer solchen Primzahl abschätzen? $O(\dots)$. +\end{flashcard} + +\begin{flashcard}[RSA-System]{Schlüsselerzeugung: Wähle \dots und berechne $N=\dots$ sowie $\varphi(N)=\dots$. Der öffentliche Schlüssel von Bob ist $(N,e)$, wobei $e$ die Bedingung \dots erfüllt. Der geheime Schlüssel von Bob ist $(N,d)$, mit \dots. $d$ lässt sich mit folgendem Algorithmus berechnen: \dots} + + Wähe zwei Primzahlen $p$ und $q$, deren Bitlänge 1/2 der Schlüssellänge ist und das Produkt $N=pq$ sowie $\varphi(N)=(p-1)(q-1)$ berechnet. + Es wird eine Zahl $e\in\{3,\dots,\varphi(N)-1\}$ mit $ggT(e,\varphi(N)) = 1$ gewählt. + %Dann wird das multiplikative Inverse $d<\varphi(N) modulo\ \varphi(N)$ von $e$ bestimmt, so dass also $ed\ mod\ \varphi(N) = 1$ gilt. + + \begin{itemize*} + \item öffentlicher Schlüssel $k$ ist das Paar $(N,e)$ + \item geheimer Schlüssel $\hat{k}$ ist $(N,d)$ mit multiplikativ Inversen $d<\varphi(N) modulo\ \varphi(N)$ von $e$ + \item es gilt $ed\ mod\ \varphi(N) = 1$ + \item Berechnungsaufwand $O((log\ N)^4) =O(l^4)$ + \end{itemize*} +\end{flashcard} + +\begin{flashcard}[RSA-System]{Verschlüsseln von $x\in \dots :y=\dots $.} + $x\in X= [N]: y=E(x,(N,e)) :=x^e\ mod\ N$ + + (Zu berechnen mit schneller Exponentiation, Rechenzeit $O((log\ N)^3) =O(l^3)$) +\end{flashcard} + +\begin{flashcard}[RSA-System]{Entschlüsseln von $y\in \dots :z=\dots $.} + $y\in Y: z=D(y,(N,d)) :=y^d\ mod\ N$ + + (Zu berechnen mit schneller Exponentiation, Rechenzeit $O((log\ N)^3) =O(l^3)$) +\end{flashcard} + +\begin{flashcard}[RSA-System]{Formuliere die zentrale Korrektheitsaussage des RSA-Systems: \dots=$x$, für alle zulässigen Klartextblöcke $x$.} + Korrektheit/Dechiffrierbedingung von RSA: Wenn $ed\ mod\ \varphi(N) = 1$ gilt, dann haben wir $x^{ed}\ mod\ N=x$, für alle $x\in [N]$. +\end{flashcard} + +\begin{flashcard}[RSA-System]{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.} + 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{flashcard} + +\begin{flashcard}[Rabin-Kryptosystem]{Komponenten des Rabin-Kryptosystems: Zwei große Primzahlen $p$ und $q$ mit \dots . Der öffentliche Schlüssel ist $N=$\dots, der private Schlüssel von Bob ist \dots .} + Wähle zwei verschiedene zufällige große Primzahlen $p$ und $q$ mit $p\equiv q\equiv 3 (mod\ 4)$, also Primzahlen, die um 1 kleiner als ein Vielfaches von 4 sind. Berechne $N=pq$. Der öffentliche Schlüssel ist $k=N$; der geheime Schlüssel ist $\hat{k}= (p,q)$. +\end{flashcard} + +\begin{flashcard}[Rabin-Kryptosystem]{Verschlüsselung: Alice möchte einen Block $x\in$\dots an Bob schicken. Sie berechnet $y=$\dots und sendet $y$ an Bob.} + Verschlüsselung eines Blocks, der eine Zahl $x