Finish exercise 5
This commit is contained in:
parent
f1e3b888bd
commit
a606520494
@ -79,7 +79,7 @@
|
|||||||
\end{figure}
|
\end{figure}
|
||||||
\begin{figure}[h!]
|
\begin{figure}[h!]
|
||||||
\centering
|
\centering
|
||||||
\includegraphics[width=\textwidth]{school/intro-crypto/uebung/05/a1i2.jpg}
|
\includegraphics[width=\textwidth/2]{school/intro-crypto/uebung/05/a1i2.jpg}
|
||||||
\caption{Struktur einer Feistel Runde}
|
\caption{Struktur einer Feistel Runde}
|
||||||
\label{feist_round}
|
\label{feist_round}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
@ -158,6 +158,11 @@
|
|||||||
\section*{Aufgabe 3}
|
\section*{Aufgabe 3}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
\begin{enumerate}[a)]
|
||||||
|
|
||||||
|
\item
|
||||||
\begin{tabular}{|c|ccccccccc|}
|
\begin{tabular}{|c|ccccccccc|}
|
||||||
\hline
|
\hline
|
||||||
& $x_1$ & $x_2$ & ... & $x_{56}$ & $x_{57}$ & $x_{58}$ & ... & $x_{63}$ & $x_{64}$ \\\hline
|
& $x_1$ & $x_2$ & ... & $x_{56}$ & $x_{57}$ & $x_{58}$ & ... & $x_{63}$ & $x_{64}$ \\\hline
|
||||||
@ -165,18 +170,18 @@
|
|||||||
$IP(x)$ & 1 & 1 & ... & 1 & 1 & 1 & ... & 0 & 1 \\\hline
|
$IP(x)$ & 1 & 1 & ... & 1 & 1 & 1 & ... & 0 & 1 \\\hline
|
||||||
\end{tabular}
|
\end{tabular}
|
||||||
|
|
||||||
$L_0 = 11111111111111111111111111111111$
|
\begin{align*}
|
||||||
|
L_0 &= 11111111111111111111111111111111 \\
|
||||||
$R_0 = 11111111111111111111111111111101 = L_1$
|
R_0 &= 11111111111111111111111111111101 = L_1
|
||||||
|
\end{align*}
|
||||||
|
|
||||||
Das zu beobachtende Bit steht an Position $31$.
|
Das zu beobachtende Bit steht an Position $31$.
|
||||||
|
|
||||||
$E(R_0) = 111111111111111111111111111111111111111111111011$
|
\begin{align*}
|
||||||
|
E(R_0) &= 111111111111111111111111111111111111111111111011
|
||||||
|
\end{align*}
|
||||||
|
|
||||||
|
Auswirkungen:
|
||||||
\begin{enumerate}[a)]
|
|
||||||
|
|
||||||
\item Auswirkungen:
|
|
||||||
|
|
||||||
$S_1\ \square$
|
$S_1\ \square$
|
||||||
$S_2\ \square$
|
$S_2\ \square$
|
||||||
@ -224,29 +229,145 @@ $E(R_0) = 111111111111111111111111111111111111111111111011$
|
|||||||
|
|
||||||
S-Box $S_8$: $08 = 1000$
|
S-Box $S_8$: $08 = 1000$
|
||||||
|
|
||||||
Ausgabe nach allen S-Boxen: $s = 11101111101001110010110001001000$
|
Ausgabe nach allen S-Boxen:
|
||||||
|
|
||||||
$P(s) = 10000010010110011101011100111011$ (berechnet mit Code im Anhang)
|
|
||||||
|
|
||||||
$P(s) \oplus L_0 = 01111101101001100010100011000100 = R_1$
|
|
||||||
|
|
||||||
\begin{align*}
|
\begin{align*}
|
||||||
L_1 = R_0:\\
|
s &= 11101111101001110010110001001000 \\
|
||||||
11111111111111111111111111111101 \\
|
P(s) &= 10000010010110011101011100111011 \\
|
||||||
R_1:\\
|
P(s) \oplus L_0 &= 01111101101001100010100011000100 = R_1 \\
|
||||||
01111101101001100010100011000100
|
\\
|
||||||
|
L_1 = R_0 &= 11111111111111111111111111111101 \\
|
||||||
|
R_1 &= 01111101101001100010100011000100
|
||||||
\end{align*}
|
\end{align*}
|
||||||
|
|
||||||
\item
|
\item
|
||||||
|
\begin{tabular}{|c|ccccccccc|}
|
||||||
|
\hline
|
||||||
|
& $x_1$ & $x_2$ & ... & $x_{56}$ & $x_{57}$ & $x_{58}$ & ... & $x_{63}$ & $x_{64}$ \\\hline
|
||||||
|
Eingabe $x$ & 1 & 1 & ... & 1 & 1 & 1 & ... & 1 & 1 \\\hline
|
||||||
|
$IP(x)$ & 1 & 1 & ... & 1 & 1 & 1 & ... & 1 & 1 \\\hline
|
||||||
|
\end{tabular}
|
||||||
|
|
||||||
\begin{align*}
|
\begin{align*}
|
||||||
L_1:\\
|
L_0 &= 11111111111111111111111111111111 \\
|
||||||
R_1:\\
|
R_0 &= 11111111111111111111111111111111 = L_1 \\
|
||||||
|
E(R_0) &= 111111111111111111111111111111111111111111111111 \\
|
||||||
|
E(R_0) &\oplus 111111111111111111111111111111111111111111111111 \\
|
||||||
|
&= 000000000000000000000000000000000000000000000000
|
||||||
\end{align*}
|
\end{align*}
|
||||||
|
|
||||||
|
Einzige Änderung in S-Box $S_8$:
|
||||||
|
|
||||||
|
\begin{align*}
|
||||||
|
S_8(000000) &= 13 = 1101 \\
|
||||||
|
s &= 11101111101001110010110001001101 \\
|
||||||
|
P(s) &= 10000010011110011101011110111011 \\
|
||||||
|
\\
|
||||||
|
L_1 = R_0 &= 11111111111111111111111111111111 \\
|
||||||
|
R_1 &= 01111101100001100010100001000100 \\
|
||||||
|
\end{align*}
|
||||||
|
|
||||||
|
Anzahl geänderter Bits: In $L_1$: 1, in $R_1$: 2. Insgesamt 3 geänderte Bits
|
||||||
|
|
||||||
\end{enumerate}
|
\end{enumerate}
|
||||||
|
|
||||||
\section*{Aufgabe 4}
|
\section*{Aufgabe 4}
|
||||||
|
|
||||||
|
Aufbau einer Runde DES:
|
||||||
|
|
||||||
|
Input: 64 Bit Daten unterteilt in $L_{n-1}, R_{n-1}$ und der Schlüssel $k_n$
|
||||||
|
|
||||||
|
Output: $L_n$ und $R_n$, der Input für die nächst Feistel Runde
|
||||||
|
|
||||||
|
Eine Runde im Feistel Netz sei beschrieben durch
|
||||||
|
|
||||||
|
\begin{align*}
|
||||||
|
F &: (L_{n-1}, R_{n-1}, k_n) \to (L_n, R_n) \\
|
||||||
|
\end{align*}
|
||||||
|
|
||||||
|
mit
|
||||||
|
|
||||||
|
\begin{align*}
|
||||||
|
L_n &= R_{n-1} \\
|
||||||
|
R_n &= f(k_n, R_{n-1}) \oplus L_{n-1} \\
|
||||||
|
f(k, x) &= P(S(E(x) \oplus k))
|
||||||
|
\end{align*}
|
||||||
|
|
||||||
|
mit den S-Boxen beschrieben in $S$, der E-Box $E$ und der abschließenden P-Box $P$
|
||||||
|
|
||||||
|
Einschub: $a \oplus b = \overline{a} \oplus \overline{b}$ \\
|
||||||
|
|
||||||
|
\begin{tabular}{|c|c|c|c|c|c|}
|
||||||
|
\hline
|
||||||
|
$a$ & $b$ & $\overline{a}$ & $\overline{b}$ & $a \oplus b$ & $\overline{a} \oplus \overline{b}$ \\\hline
|
||||||
|
0 & 0 & 1 & 1 & 0 & 0 \\
|
||||||
|
0 & 1 & 1 & 0 & 1 & 1 \\
|
||||||
|
1 & 0 & 0 & 1 & 1 & 1 \\
|
||||||
|
1 & 1 & 0 & 0 & 0 & 0 \\\hline
|
||||||
|
\end{tabular}
|
||||||
|
|
||||||
|
Da $E$ nichts berechnet sondern nur deterministisch manche Bits kopiert, gilt $E(\overline{x}) = \overline{E(x)}$
|
||||||
|
|
||||||
|
$\Rightarrow$ Der Input für die S-Boxen ist also
|
||||||
|
|
||||||
|
\begin{align*}
|
||||||
|
s &= E(\overline{x}) \oplus \overline{k} = \\
|
||||||
|
&= \overline{E(x)} \oplus \overline{k} = \\
|
||||||
|
&= E(x) \oplus k
|
||||||
|
\end{align*}
|
||||||
|
|
||||||
|
Da der Input der S-Boxen für $f(k, x)$ und $f(\overline{k}, \overline{x})$ gleich ist, ist auch der Output gleich
|
||||||
|
|
||||||
|
\begin{align*}
|
||||||
|
\Rightarrow f(k, x) &= f(\overline{k}, \overline{x})
|
||||||
|
\end{align*}
|
||||||
|
|
||||||
|
Einschub: $a \oplus \overline{b} = \overline{a \oplus b}$ \\
|
||||||
|
|
||||||
|
\begin{tabular}{|c|c|c|c|c|}
|
||||||
|
\hline
|
||||||
|
$a$ & $b$ & $\overline{b}$ & $a \oplus b$ & $a \oplus \overline{b}$ \\\hline
|
||||||
|
0 & 0 & 1 & 0 & 1 \\\hline
|
||||||
|
0 & 1 & 0 & 1 & 0 \\\hline
|
||||||
|
1 & 0 & 1 & 1 & 0 \\\hline
|
||||||
|
1 & 1 & 0 & 0 & 1 \\\hline
|
||||||
|
\end{tabular} \\
|
||||||
|
|
||||||
|
Da der Output von $f$ gleich bleibt für komplementären Input:
|
||||||
|
|
||||||
|
\begin{align*}
|
||||||
|
R_n &= f(k_n, R_{n-1}) \oplus L_{n-1} \\
|
||||||
|
\\
|
||||||
|
\overline{R_n} &= f(\overline{k_n}, \overline{R_{n-1}}) \oplus \overline{L_{n-1}} \\
|
||||||
|
&= f(k_n, R_{n-1}) \oplus \overline{L_{n-1}} \\
|
||||||
|
\end{align*}
|
||||||
|
|
||||||
|
Da $L_n$ ohne Veränderung aus $R_{n-1}$ übernommen wird, gilt weiter:
|
||||||
|
|
||||||
|
\begin{align*}
|
||||||
|
\overline{L_n} &= \overline{R_{n-1}}
|
||||||
|
\end{align*}
|
||||||
|
|
||||||
|
Für jede einzelne Runde im Feistel Netz gilt also
|
||||||
|
|
||||||
|
\begin{align*}
|
||||||
|
F(\overline{L_{n-1}}, \overline{R_{n-1}}, \overline{k_n}) &= \overline{F(L_{n-1}, R_{n-1}, k_n)}
|
||||||
|
\end{align*}
|
||||||
|
|
||||||
|
Da auch die Ein- und Ausgangspermutation $IP$ und $IP^{-1}$ nur Bits auf eine deterministische Weise vertauschen, gilt:
|
||||||
|
|
||||||
|
\begin{align*}
|
||||||
|
\overline{i(x)} = i(\overline{x}) \forall i \in \{IP, IP^{-1}\}
|
||||||
|
\end{align*}
|
||||||
|
|
||||||
|
Ein- und Ausgangspermutation geben für komplementären Input also komplementären Output, genauso wie jede Runde im
|
||||||
|
Feistel Netz und damit der gesamte DES Algorithmus
|
||||||
|
|
||||||
|
$\Rightarrow$ Wenn $y = DES_k(x)$, dann $\overline{y} = DES_{\overline{k}}(\overline{x})$
|
||||||
|
|
||||||
|
% \section*{Code}
|
||||||
|
|
||||||
|
% \inputminted{rust}{./school/intro-crypto/uebung/05/p/src/main.rs}
|
||||||
|
|
||||||
\end{document}
|
\end{document}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user