Antworten für Aufgabe 3
This commit is contained in:
		
							parent
							
								
									3e7c3a32de
								
							
						
					
					
						commit
						1182d45480
					
				
							
								
								
									
										
											BIN
										
									
								
								Kryptographie - Prüfungsvorbereitung.pdf
									 (Stored with Git LFS)
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Kryptographie - Prüfungsvorbereitung.pdf
									 (Stored with Git LFS)
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							@ -191,73 +191,290 @@
 | 
			
		||||
 | 
			
		||||
    \part Nenne ein Block-Kryptosystem aus der Vorlesung, das gegenwärtig für Szenarium 2 in der Praxis benutzt wird.
 | 
			
		||||
    \begin{solution}
 | 
			
		||||
 | 
			
		||||
      Triple-DES, AES
 | 
			
		||||
    \end{solution}
 | 
			
		||||
 | 
			
		||||
    \part Beschreibe das Konzept eines $l$-Unterscheiders und das zugehörige Sicherheitsspiel. Definiere den Vorteil eines Unterscheiders.
 | 
			
		||||
    \begin{solution}
 | 
			
		||||
 | 
			
		||||
      Unterscheider $U$:
 | 
			
		||||
      \textbf{Unterscheider $U$:} 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.
 | 
			
		||||
 | 
			
		||||
      Spiel $G_U^B$:
 | 
			
		||||
      \textbf{Spiel $G_U^B$:} Wir definieren ein Spiel, mit dem ein beliebiges Block-Kryptosystem $B$ und ein beliebiger Unterscheider $U$ darauf getestet werden, ob $B$ gegenüber $U$ ,,anfällig'' ist oder nicht. Die Idee ist folgende:
 | 
			
		||||
      Man entscheidet mit einem Münzwurf (Zufallsbit $b$), ob $U$ für seine Untersuchungen als $F(.)$ eine zufällige Chiffre $e(.,k)$ von $B$ (,,Realwelt'') oder eine zufällige Permutation $\pi$ von $\{0,1\}^l$ (,,Idealwelt'') 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.
 | 
			
		||||
 | 
			
		||||
      Vorteil:
 | 
			
		||||
      \textbf{Vorteil:}
 | 
			
		||||
      \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{solution}
 | 
			
		||||
 | 
			
		||||
  \end{parts}
 | 
			
		||||
 | 
			
		||||
  Verschlüsselungsfunktion e
 | 
			
		||||
  \begin{table}
 | 
			
		||||
    \caption{Verschlüsselungsfunktion e}
 | 
			
		||||
    \label{Verschluesselungsfunktion}
 | 
			
		||||
    \begin{tabular}{c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c}
 | 
			
		||||
      e    & 0000 & 0001 & 0010 & 0011 & 0100 & 0101 & 0110 & 0111 & 1000 & 1001 & 1010 & 1011 & 1100 & 1101 & 1110 & 1111 \\\hline
 | 
			
		||||
      0000 & 1110 & 0100 & 0001 & 0101 & 0111 & 1001 & 0110 & 1000 & 0010 & 1111 & 1011 & 0000 & 1100 & 1010 & 0011 & 1101 \\
 | 
			
		||||
      0001 & 0010 & 0110 & 1100 & 1101 & 0001 & 1011 & 1111 & 1000 & 0100 & 0000 & 0101 & 0111 & 1110 & 0011 & 1001 & 1010 \\
 | 
			
		||||
      0010 & 1000 & 1001 & 0010 & 0111 & 0011 & 1101 & 0101 & 1111 & 1110 & 0001 & 1011 & 0100 & 1010 & 0000 & 1100 & 0110 \\
 | 
			
		||||
      0011 & 0110 & 1010 & 0011 & 1101 & 0010 & 1000 & 0001 & 0101 & 1110 & 1100 & 1111 & 1001 & 0100 & 0000 & 1011 & 0111 \\
 | 
			
		||||
      0100 & 0100 & 0010 & 1001 & 1000 & 0111 & 0011 & 1100 & 0110 & 1011 & 1110 & 1111 & 0101 & 1010 & 0001 & 0000 & 1101 \\
 | 
			
		||||
      0101 & 1001 & 0101 & 1010 & 0100 & 0010 & 1011 & 1000 & 1100 & 0111 & 1110 & 0001 & 0000 & 1101 & 0011 & 1111 & 0110 \\
 | 
			
		||||
      0110 & 1101 & 0001 & 1100 & 0010 & 0000 & 1000 & 0011 & 0111 & 0110 & 1111 & 1110 & 1001 & 1010 & 0101 & 0100 & 1011 \\
 | 
			
		||||
      0111 & 1100 & 1101 & 0010 & 1111 & 0110 & 1001 & 0111 & 0001 & 1000 & 1110 & 0011 & 0000 & 0101 & 1011 & 1010 & 0100 \\
 | 
			
		||||
      1000 & 1001 & 1011 & 1101 & 0000 & 0101 & 0111 & 1100 & 1111 & 0001 & 1110 & 0110 & 0011 & 1010 & 0010 & 0100 & 1000 \\
 | 
			
		||||
      1001 & 1011 & 0001 & 0011 & 1000 & 1100 & 0010 & 1111 & 0000 & 0100 & 1010 & 0110 & 1110 & 0101 & 0111 & 1101 & 1001 \\
 | 
			
		||||
      1010 & 1011 & 0010 & 0101 & 1000 & 1001 & 0011 & 0001 & 1110 & 0000 & 1100 & 1010 & 0111 & 1101 & 1111 & 0100 & 0110 \\
 | 
			
		||||
      1011 & 1110 & 1100 & 0111 & 1101 & 1011 & 1111 & 0101 & 0110 & 1000 & 1010 & 1001 & 0011 & 0100 & 0010 & 0000 & 0001 \\
 | 
			
		||||
      1100 & 1001 & 0000 & 0010 & 1101 & 0100 & 0001 & 1111 & 1000 & 1011 & 1100 & 1110 & 1010 & 0101 & 0011 & 0110 & 0111 \\
 | 
			
		||||
      1101 & 1001 & 0100 & 1101 & 1010 & 0001 & 1000 & 0110 & 0010 & 1110 & 1111 & 1011 & 1100 & 0111 & 0011 & 0000 & 0101 \\
 | 
			
		||||
      1110 & 1011 & 0111 & 0101 & 1101 & 1010 & 0001 & 0100 & 1000 & 1001 & 1110 & 1111 & 1100 & 0011 & 0010 & 0110 & 0000 \\
 | 
			
		||||
      1111 & 1010 & 1101 & 1110 & 1001 & 0001 & 0100 & 0010 & 0110 & 1100 & 1000 & 0000 & 0101 & 1111 & 1011 & 0011 & 0111
 | 
			
		||||
    \end{tabular}
 | 
			
		||||
  \end{table}
 | 
			
		||||
 | 
			
		||||
  \begin{tabular}{c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c}
 | 
			
		||||
    e    & 0000 & 0001 & 0010 & 0011 & 0100 & 0101 & 0110 & 0111 & 1000 & 1001 & 1010 & 1011 & 1100 & 1101 & 1110 & 1111 \\\hline
 | 
			
		||||
    0000 & 1110 & 0100 & 0001 & 0101 & 0111 & 1001 & 0110 & 1000 & 0010 & 1111 & 1011 & 0000 & 1100 & 1010 & 0011 & 1101 \\
 | 
			
		||||
    0001 & 0010 & 0110 & 1100 & 1101 & 0001 & 1011 & 1111 & 1000 & 0100 & 0000 & 0101 & 0111 & 1110 & 0011 & 1001 & 1010 \\
 | 
			
		||||
    0010 & 1000 & 1001 & 0010 & 0111 & 0011 & 1101 & 0101 & 1111 & 1110 & 0001 & 1011 & 0100 & 1010 & 0000 & 1100 & 0110 \\
 | 
			
		||||
    0011 & 0110 & 1010 & 0011 & 1101 & 0010 & 1000 & 0001 & 0101 & 1110 & 1100 & 1111 & 1001 & 0100 & 0000 & 1011 & 0111 \\
 | 
			
		||||
    0100 & 0100 & 0010 & 1001 & 1000 & 0111 & 0011 & 1100 & 0110 & 1011 & 1110 & 1111 & 0101 & 1010 & 0001 & 0000 & 1101 \\
 | 
			
		||||
    0101 & 1001 & 0101 & 1010 & 0100 & 0010 & 1011 & 1000 & 1100 & 0111 & 1110 & 0001 & 0000 & 1101 & 0011 & 1111 & 0110 \\
 | 
			
		||||
    0110 & 1101 & 0001 & 1100 & 0010 & 0000 & 1000 & 0011 & 0111 & 0110 & 1111 & 1110 & 1001 & 1010 & 0101 & 0100 & 1011 \\
 | 
			
		||||
    0111 & 1100 & 1101 & 0010 & 1111 & 0110 & 1001 & 0111 & 0001 & 1000 & 1110 & 0011 & 0000 & 0101 & 1011 & 1010 & 0100 \\
 | 
			
		||||
    1000 & 1001 & 1011 & 1101 & 0000 & 0101 & 0111 & 1100 & 1111 & 0001 & 1110 & 0110 & 0011 & 1010 & 0010 & 0100 & 1000 \\
 | 
			
		||||
    1001 & 1011 & 0001 & 0011 & 1000 & 1100 & 0010 & 1111 & 0000 & 0100 & 1010 & 0110 & 1110 & 0101 & 0111 & 1101 & 1001 \\
 | 
			
		||||
    1010 & 1011 & 0010 & 0101 & 1000 & 1001 & 0011 & 0001 & 1110 & 0000 & 1100 & 1010 & 0111 & 1101 & 1111 & 0100 & 0110 \\
 | 
			
		||||
    1011 & 1110 & 1100 & 0111 & 1101 & 1011 & 1111 & 0101 & 0110 & 1000 & 1010 & 1001 & 0011 & 0100 & 0010 & 0000 & 0001 \\
 | 
			
		||||
    1100 & 1001 & 0000 & 0010 & 1101 & 0100 & 0001 & 1111 & 1000 & 1011 & 1100 & 1110 & 1010 & 0101 & 0011 & 0110 & 0111 \\
 | 
			
		||||
    1101 & 1001 & 0100 & 1101 & 1010 & 0001 & 1000 & 0110 & 0010 & 1110 & 1111 & 1011 & 1100 & 0111 & 0011 & 0000 & 0101 \\
 | 
			
		||||
    1110 & 1011 & 0111 & 0101 & 1101 & 1010 & 0001 & 0100 & 1000 & 1001 & 1110 & 1111 & 1100 & 0011 & 0010 & 0110 & 0000 \\
 | 
			
		||||
    1111 & 1010 & 1101 & 1110 & 1001 & 0001 & 0100 & 0010 & 0110 & 1100 & 1000 & 0000 & 0101 & 1111 & 1011 & 0011 & 0111
 | 
			
		||||
  \end{tabular}
 | 
			
		||||
 | 
			
		||||
  \question Betriebsmodi von Blockchiffren. Gegeben ist das 4 -Block-Kryptosystem $B=(\{0,1\}^4,\{0,1\}^4,\{0,1\}^4,e,d)$, wobei $e$ der oben stehenden Tabelle ,,Verschlüsselungsfunktion e'' entnommen werden kann.
 | 
			
		||||
  \question Betriebsmodi von Blockchiffren. Gegeben ist das 4 -Block-Kryptosystem $B=(\{0,1\}^4,\{0,1\}^4,\{0,1\}^4,e,d)$, wobei $e$ der Tabelle \ref{Verschluesselungsfunktion} entnommen werden kann.
 | 
			
		||||
  \begin{parts}
 | 
			
		||||
    \part Zeichne die Schaltbilder, sodass Sie die Verschlüsselung des Klartextes $x=0101\ 0110\ 0101$ mit dem Schlüssel $k= 1101$ in dem Kryptoschema darstellen, das zu $B$ in der jeweiligen Betriebsart gehört.
 | 
			
		||||
    \begin{subparts}
 | 
			
		||||
      \subpart Benutze die ECB-Betriebsart (Electronic Code Book)!
 | 
			
		||||
      \begin{solution}
 | 
			
		||||
      \begin{solution} 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$.
 | 
			
		||||
 | 
			
		||||
        \begin{tikzpicture}[
 | 
			
		||||
            every node/.style = {shape=rectangle, semithick, align=center}
 | 
			
		||||
          ]
 | 
			
		||||
          \node (x0) [draw] {$x_0$: 0101};
 | 
			
		||||
          \node (x1) [draw, right=of x0] {$x_1$: 0110};
 | 
			
		||||
          \node (x2) [draw, right=of x1] {$x_2$: 0101};
 | 
			
		||||
          \node (k) [draw, left=of x0] {$k$: 1101};
 | 
			
		||||
 | 
			
		||||
          \node (op0) [below=of x0] {$e$};
 | 
			
		||||
          \node (op1) [below=of x1] {$e$};
 | 
			
		||||
          \node (op2) [below=of x2] {$e$};
 | 
			
		||||
 | 
			
		||||
          \node (out0) [draw, below=of op0] {?};
 | 
			
		||||
          \node (out1) [draw, below=of op1] {?};
 | 
			
		||||
          \node (out2) [draw, below=of op2] {?};
 | 
			
		||||
 | 
			
		||||
          \path[->,thick]
 | 
			
		||||
          (x0) edge (op0)
 | 
			
		||||
          (x1) edge (op1)
 | 
			
		||||
          (x2) edge (op2)
 | 
			
		||||
          (op0) edge (out0)
 | 
			
		||||
          (op1) edge (out1)
 | 
			
		||||
          (op2) edge (out2)
 | 
			
		||||
          (k) edge (op0)
 | 
			
		||||
          (k) edge (op1)
 | 
			
		||||
          (k) edge (op2)
 | 
			
		||||
          ;
 | 
			
		||||
        \end{tikzpicture}
 | 
			
		||||
      \end{solution}
 | 
			
		||||
 | 
			
		||||
      \subpart Benutze die CBC-Betriebsart (Cipher Block Chaining)! Gehe davon aus, dass $v=1010$ als Initialisierungsvektor Teil des Schlüssels ist.
 | 
			
		||||
      \begin{solution}
 | 
			
		||||
        Blöcke in Runden $i=0, 1 ,...,m-1$ nacheinander verschlüsselt und das Ergebnis einer Runde wird zur Modifikation des Klartextblocks der nächsten Runde benutzt.
 | 
			
		||||
 | 
			
		||||
        \begin{tikzpicture}[
 | 
			
		||||
            every node/.style = {shape=rectangle, semithick, align=center}
 | 
			
		||||
          ]
 | 
			
		||||
          \node (x0) [draw] {$x_0$: 0101};
 | 
			
		||||
          \node (x1) [draw, right=of x0] {$x_1$: 0110};
 | 
			
		||||
          \node (x2) [draw, right=of x1] {$x_2$: 0101};
 | 
			
		||||
          \node (v) [draw, below left=of x0] {$v$: 1010};
 | 
			
		||||
          \node (k) [draw, below=of v] {$k$: 1101};
 | 
			
		||||
 | 
			
		||||
          \node (op0) [below=of x0] {$\oplus$};
 | 
			
		||||
          \node (op1) [below=of x1] {$\oplus$};
 | 
			
		||||
          \node (op2) [below=of x2] {$\oplus$};
 | 
			
		||||
 | 
			
		||||
          \node (op20) [below=of op0] {$e$};
 | 
			
		||||
          \node (op21) [below=of op1] {$e$};
 | 
			
		||||
          \node (op22) [below=of op2] {$e$};
 | 
			
		||||
 | 
			
		||||
          \node (out0) [draw, below=of op20] {?};
 | 
			
		||||
          \node (out1) [draw, below=of op21] {?};
 | 
			
		||||
          \node (out2) [draw, below=of op22] {?};
 | 
			
		||||
 | 
			
		||||
          \path[->,thick]
 | 
			
		||||
          (x0) edge (op0)
 | 
			
		||||
          (x1) edge (op1)
 | 
			
		||||
          (x2) edge (op2)
 | 
			
		||||
          (op0) edge (op20)
 | 
			
		||||
          (op1) edge (op21)
 | 
			
		||||
          (op2) edge (op22)
 | 
			
		||||
          (op20) edge (out0)
 | 
			
		||||
          (op21) edge (out1)
 | 
			
		||||
          (op22) edge (out2)
 | 
			
		||||
          (k) edge (op20)
 | 
			
		||||
          (k) edge (op21)
 | 
			
		||||
          (k) edge (op22)
 | 
			
		||||
          (v) edge (op0)
 | 
			
		||||
          (out0) edge (op1)
 | 
			
		||||
          (out1) edge (op2)
 | 
			
		||||
          ;
 | 
			
		||||
        \end{tikzpicture}
 | 
			
		||||
      \end{solution}
 | 
			
		||||
 | 
			
		||||
      \subpart Benutze die R-CBC-Betriebsart (Randomized Cipher Block Chaining)! Gehe davon aus, dass $y_{-1}=0101$ als Initialisierungsvektor zufällig gewählt wurde.
 | 
			
		||||
      \begin{solution}
 | 
			
		||||
 | 
			
		||||
        \begin{tikzpicture}[
 | 
			
		||||
            every node/.style = {shape=rectangle, semithick, align=center}
 | 
			
		||||
          ]
 | 
			
		||||
          \node (x0) [draw] {$x_0$: 0101};
 | 
			
		||||
          \node (x1) [draw, right=of x0] {$x_1$: 0110};
 | 
			
		||||
          \node (x2) [draw, right=of x1] {$x_2$: 0101};
 | 
			
		||||
          \node (k) [draw, below left=of x0] {$k$: 1101};
 | 
			
		||||
 | 
			
		||||
          \node (op0) [below=of x0] {$\oplus$};
 | 
			
		||||
          \node (op1) [below=of x1] {$\oplus$};
 | 
			
		||||
          \node (op2) [below=of x2] {$\oplus$};
 | 
			
		||||
 | 
			
		||||
          \node (op20) [below=of op0] {$e$};
 | 
			
		||||
          \node (op21) [below=of op1] {$e$};
 | 
			
		||||
          \node (op22) [below=of op2] {$e$};
 | 
			
		||||
 | 
			
		||||
          \node (out0) [draw, below=of op20] {?};
 | 
			
		||||
          \node (out1) [draw, below=of op21] {?};
 | 
			
		||||
          \node (out2) [draw, below=of op22] {?};
 | 
			
		||||
          \node (out00) [draw, left=of out0] {$y_{-1}$: 0101};
 | 
			
		||||
 | 
			
		||||
          \path[->,thick]
 | 
			
		||||
          (x0) edge (op0)
 | 
			
		||||
          (x1) edge (op1)
 | 
			
		||||
          (x2) edge (op2)
 | 
			
		||||
          (op0) edge (op20)
 | 
			
		||||
          (op1) edge (op21)
 | 
			
		||||
          (op2) edge (op22)
 | 
			
		||||
          (op20) edge (out0)
 | 
			
		||||
          (op21) edge (out1)
 | 
			
		||||
          (op22) edge (out2)
 | 
			
		||||
          (k) edge (op20)
 | 
			
		||||
          (k) edge (op21)
 | 
			
		||||
          (k) edge (op22)
 | 
			
		||||
          (out00) edge (op0)
 | 
			
		||||
          (out0) edge (op1)
 | 
			
		||||
          (out1) edge (op2)
 | 
			
		||||
          ;
 | 
			
		||||
        \end{tikzpicture}
 | 
			
		||||
      \end{solution}
 | 
			
		||||
 | 
			
		||||
      \subpart Benutze die OFB-Betriebsart (Output FeedBack)! Gehe davon aus, dass $y_{-1}=0101$ als Initialisierungsvektor zufällig gewählt wurde.
 | 
			
		||||
      \begin{solution}
 | 
			
		||||
 | 
			
		||||
        \begin{tikzpicture}[
 | 
			
		||||
            every node/.style = {shape=rectangle, semithick, align=center}
 | 
			
		||||
          ]
 | 
			
		||||
 | 
			
		||||
          \node (x0) [draw] {$x_0$: 0101};
 | 
			
		||||
          \node (op20) [right =of x0] {$\oplus$};
 | 
			
		||||
          \node (op10) [above=of op20] {$e$};
 | 
			
		||||
          \node (x1) [draw, right=of op20] {$x_0$: 0101};
 | 
			
		||||
          \node (op21) [right =of x1] {$\oplus$};
 | 
			
		||||
          \node (op11) [above=of op21] {$e$};
 | 
			
		||||
          \node (x2) [draw, right=of op21] {$x_0$: 0101};
 | 
			
		||||
          \node (op22) [right=of x2] {$\oplus$};
 | 
			
		||||
          \node (op12) [above=of op22] {$e$};
 | 
			
		||||
 | 
			
		||||
          \node (y-1) [draw, above =of op10] {$y_{-1}$: 0101};
 | 
			
		||||
          \node (k) [draw, right=of y-1] {$k$: 1101};
 | 
			
		||||
 | 
			
		||||
          \node (out0) [draw, below=of op20] {?};
 | 
			
		||||
          \node (out1) [draw, below=of op21] {?};
 | 
			
		||||
          \node (out2) [draw, below=of op22] {?};
 | 
			
		||||
 | 
			
		||||
          \path[->,thick]
 | 
			
		||||
          (y-1) edge (op10)
 | 
			
		||||
          (k) edge (op10)
 | 
			
		||||
          (k) edge (op11)
 | 
			
		||||
          (k) edge (op12)
 | 
			
		||||
 | 
			
		||||
          (x0) edge (op20)
 | 
			
		||||
          (x1) edge (op21)
 | 
			
		||||
          (x2) edge (op22)
 | 
			
		||||
 | 
			
		||||
          (op10) edge (op11)
 | 
			
		||||
          (op11) edge (op12)
 | 
			
		||||
 | 
			
		||||
          (op10) edge (op20)
 | 
			
		||||
          (op11) edge (op21)
 | 
			
		||||
          (op12) edge (op22)
 | 
			
		||||
          (op20) edge (out0)
 | 
			
		||||
          (op21) edge (out1)
 | 
			
		||||
          (op22) edge (out2)
 | 
			
		||||
          ;
 | 
			
		||||
        \end{tikzpicture}
 | 
			
		||||
      \end{solution}
 | 
			
		||||
 | 
			
		||||
      \subpart Benutze die R-CTR-Betriebsart (Randomized CounTeR)! Gehe davon aus, dass der Zähler zufällig mit dem Wert $r=0101$ initialisiert wurde.
 | 
			
		||||
      \begin{solution}
 | 
			
		||||
 | 
			
		||||
        \begin{tikzpicture}[
 | 
			
		||||
            every node/.style = {shape=rectangle, semithick, align=center}
 | 
			
		||||
          ]
 | 
			
		||||
 | 
			
		||||
          \node (x0) [draw] {$x_0$: 0101};
 | 
			
		||||
          \node (op20) [right =of x0] {$\oplus$};
 | 
			
		||||
          \node (op10) [above=of op20] {$e$};
 | 
			
		||||
          \node (r0) [draw, left=of op10] {$r$: 0101};
 | 
			
		||||
 | 
			
		||||
          \node (x1) [draw, right=of op20] {$x_0$: 0101};
 | 
			
		||||
          \node (op21) [right =of x1] {$\oplus$};
 | 
			
		||||
          \node (op11) [above=of op21] {$e$};
 | 
			
		||||
          \node (r1) [draw, left=of op11] {0110};
 | 
			
		||||
 | 
			
		||||
          \node (x2) [draw, right=of op21] {$x_0$: 0101};
 | 
			
		||||
          \node (op22) [right=of x2] {$\oplus$};
 | 
			
		||||
          \node (op12) [above=of op22] {$e$};
 | 
			
		||||
          \node (r2) [draw, left=of op12] {0111};
 | 
			
		||||
 | 
			
		||||
          \node (k) [draw, above =of op10] {$k$: 1101};
 | 
			
		||||
 | 
			
		||||
          \node (out0) [draw, below=of op20] {?};
 | 
			
		||||
          \node (out1) [draw, below=of op21] {?};
 | 
			
		||||
          \node (out2) [draw, below=of op22] {?};
 | 
			
		||||
          \node (y-1) [draw, left =of out0] {$y_{-1} = r$: 0101};
 | 
			
		||||
 | 
			
		||||
          \path[->,thick]
 | 
			
		||||
          (k) edge (op10)
 | 
			
		||||
          (k) edge (op11)
 | 
			
		||||
          (k) edge (op12)
 | 
			
		||||
 | 
			
		||||
          (r0) edge (op10)
 | 
			
		||||
          (r1) edge (op11)
 | 
			
		||||
          (r2) edge (op12)
 | 
			
		||||
 | 
			
		||||
          (x0) edge (op20)
 | 
			
		||||
          (x1) edge (op21)
 | 
			
		||||
          (x2) edge (op22)
 | 
			
		||||
 | 
			
		||||
          (op10) edge (op20)
 | 
			
		||||
          (op11) edge (op21)
 | 
			
		||||
          (op12) edge (op22)
 | 
			
		||||
          (op20) edge (out0)
 | 
			
		||||
          (op21) edge (out1)
 | 
			
		||||
          (op22) edge (out2)
 | 
			
		||||
          ;
 | 
			
		||||
        \end{tikzpicture}
 | 
			
		||||
      \end{solution}
 | 
			
		||||
    \end{subparts}
 | 
			
		||||
 | 
			
		||||
    \part Sei $S$ das Kryptoschema, das aus $B$ in der \textbf{ECB-Betriebsart} entsteht. Gebe einen Angreifer an, der die Chiffretexte zweier selbstgewählter Klartexte ohne Kenntnis des Schlüssels unterscheiden kann. Eine informelle Beschreibung der Finder- und Raterkomponente des Angreifers ist ausreichend.
 | 
			
		||||
    \begin{solution}
 | 
			
		||||
 | 
			
		||||
      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{solution}
 | 
			
		||||
 | 
			
		||||
    \part Sei $S$ das Kryptoschema, das aus $B$ in der \textbf{CBC-Betriebsart} entsteht. Gebe einen Angreifer an, der die Chiffretexte zweier selbstgewählter Klartexte ohne Kenntnis des Schlüssels unterscheiden kann. Eine informelle Beschreibung der Finder- und Raterkomponente des Angreifers ist ausreichend.
 | 
			
		||||
    \begin{solution}
 | 
			
		||||
 | 
			
		||||
      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{solution}
 | 
			
		||||
 | 
			
		||||
  \end{parts}
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user