diff --git a/school/intro-crypto/uebung/02/02.tex b/school/intro-crypto/uebung/02/02.tex new file mode 100644 index 0000000..36e5dac --- /dev/null +++ b/school/intro-crypto/uebung/02/02.tex @@ -0,0 +1,390 @@ +\documentclass[12pt,a4paper,german]{article} +\usepackage{url} +%\usepackage{graphics} +\usepackage{times} +\usepackage[T1]{fontenc} +\usepackage{pifont} +\usepackage{ngerman} +\usepackage{float} +\usepackage{diagbox} +\usepackage[latin1]{inputenc} +\usepackage{geometry} +\usepackage{amsfonts} +\usepackage{amsmath} +\usepackage{csquotes} +\usepackage{graphicx} +\usepackage{epsfig} +\usepackage{paralist} +\geometry{left=2.0cm,textwidth=17cm,top=3.5cm,textheight=23cm} + +%%%%%%%%%% Fill out the the definitions %%%%%%%%% +\def \name {Valentin Brandl} % +\def \matrikel {108018274494} % +% \def \pname {Vorname2 Nachname2} % +% \def \pmatrikel {Matrikelnummer2} % +\def \gruppe {Gruppe 193} % +\def \uebung {1} % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + % DO NOT MODIFY THIS HEADER +\newcommand{\hwsol}{ +\vspace*{-2cm} +\noindent \matrikel \quad \name \hfill Gruppe:\gruppe \\ +% \noindent \pmatrikel \quad \pname \\ +\begin{center}{\Large \bf L\"osung f\"ur \"Ubung \# \uebung}\end{center} +} + +\newcommand{\cmark}{\ding{51}}% +\newcommand{\xmark}{\ding{55}}% + +\begin{document} +%Import header +\hwsol + + +\section*{Aufgabe 1} +\begin{enumerate}[(a)] + \item + \begin{eqnarray*} + 7 \cdot 5 &\equiv{}& 16 \mod 19 \\ + \text{check: } (7 \cdot 5) - 16 = 35 - 16 = 19 &\rightarrow{}& 19 \mid 19 + \end{eqnarray*} + + \item + \begin{eqnarray*} + 7 \cdot 81 &\equiv{}& 16 \mod 19 \\ + \text{check: } (7 \cdot 81) - 16 = 567 - 16 = 551 &\rightarrow{}& 19 \mid 551 + \end{eqnarray*} + + $5 \equiv 81 \mod 19$ + + \item + \begin{eqnarray*} + 26 \cdot 43 &\equiv{}& 16 \mod 19 \\ + \text{check: } (26 \cdot 43) - 16 = 1118 - 16 = 1102 &\rightarrow{}& 19 \mid 1102 + \end{eqnarray*} + + $26 \equiv 7 \mod 19$ und $43 \equiv 5 \mod 19$ + + \item + \begin{eqnarray*} + -12 \cdot 43 &\equiv{}& 16 \mod 19 \\ + \text{check: } (-12 \cdot 43) - 16 = -516 - 16 = -532 &\rightarrow{}& 19 \mid -532 + \end{eqnarray*} + + $-12 \equiv 7 \mod 19$ und $43 \equiv 5 \mod 19$ + +\end{enumerate} + +\section*{Aufgabe 2} +\begin{enumerate}[(a)] + \item + \begin{eqnarray*} + (2 \cdot 5) \cdot 10 &\mod{}& 13 + \end{eqnarray*} + + Moduloreduktion am Ende (äquivalent zu Moduloreduktion auf Zwischenergebnisse, da alle Zahlen $< 13$ und + Zwischenergebnis $2 \cdot 5 = 10 < 13$): + + \begin{eqnarray*} + \Rightarrow 100 \equiv 9 &\mod{}& 13 + \end{eqnarray*} + + \item + \begin{eqnarray*} + 2^3 \cdot 8 \mod 250 + \end{eqnarray*} + + Moduloreduktion am Ende (siehe Teilaufgabe (a); alle Zwischenergebnisse $< 250$): + + \begin{eqnarray*} + 2^3 \cdot 8 = 8 \cdot 8 = 64 &\mod{}& 250 + \end{eqnarray*} + + \item + \begin{eqnarray*} + 7 \cdot 11 &\mod{}& 11 + \end{eqnarray*} + + Moduloreduktion am Ende: + + \begin{eqnarray*} + 7 \cdot 11 = 77 \equiv 0 &\mod{}& 11 + \end{eqnarray*} + + Moduloreduktion auf Zwischenergebnisse + + \begin{eqnarray*} + 7 \cdot 11 \equiv 7 \cdot 0 = 0 &\mod{}& 11 + \end{eqnarray*} + + \item + \begin{eqnarray*} + 3 \cdot 8 - 11 \cdot 6 &\mod{}& 250 + \end{eqnarray*} + + Moduloreduktion am Ende: + + \begin{eqnarray*} + 3 \cdot 8 - 11 \cdot 6 = 24 - 66 = -42 \equiv 208 &\mod{}& 250 + \end{eqnarray*} + + \item + \begin{eqnarray*} + (2 \cdot 5 - 19) \cdot 5^6 &\mod{}& 75 + \end{eqnarray*} + + Moduloreduktion am Ende: + + \begin{eqnarray*} + (2 \cdot 5 - 19) \cdot 5^6 = -9 \cdot 15625 = -140625 \equiv 0 &\mod{}& 75 + \end{eqnarray*} + + Moduloreduktion auf Zwischenergebnisse: + + \begin{eqnarray*} + (2 \cdot 5 - 19) \cdot 5^6 = (10 + 56) \cdot (5^2 \cdot 5^2 \cdot 5^2) &\mod{}& 75 \\ + 66 \cdot (25 \cdot 25 \cdot 25) = 66 \cdot (625 \cdot 25) \equiv 66 \cdot (25 \cdot 25) &\mod{}& 75 \\ + 66 \cdot (25 \cdot 25) \equiv 66 \cdot 25 = 1650 \equiv 0 &\mod{}& 75 + \end{eqnarray*} + + \item + \begin{eqnarray*} + \frac{74}{7} &\mod{}& 11 \\ + 74 * 7^{-1} &\mod{}& 11 \\ + \end{eqnarray*} + + Bestimmung von $7^{-1} \mod 11$ (multiplikative Inverse von $7$ in $\mathbb{Z}_{11}$): + + \begin{eqnarray*} + 7 * x \equiv 1 &\mod{}& 11 \\ + 7 * 8 = 56 \equiv 1 &\mod{}& 11 \\ + \Rightarrow 7^{-1} \equiv 8 &\mod{}& 11 + \end{eqnarray*} + + Moduloreduktion am Ende: + + \begin{eqnarray*} + 74 * 8 = 592 \equiv 9 &\mod{}& 11 + \end{eqnarray*} + + Moduloreduktion auf Zwischenergebnisse: + + \begin{eqnarray*} + 74 * 8 \equiv 8 * 8 = 64 \equiv 9 &\mod{}& 11 + \end{eqnarray*} + + \item + \begin{eqnarray*} + \frac{5 \cdot 2 - 8}{7^2} &\mod{}& 11 \\ + (5 * 2 - 8) * (7^2)^{-1} &\mod{}& 11 \\ + \end{eqnarray*} + + Bestimmung von $(7^2)^{-1} = 49^{-1} \equiv 5^{-1} \mod 11$ + + \begin{eqnarray*} + 49 * x \equiv 5 * x \equiv 1 &\mod{}& 11 \\ + 5 * 9 = 45 \equiv 1 &\mod{}& 11 \\ + \Rightarrow 49^{-1} \equiv 5^{-1} \equiv 9 &\mod{}& 11 + \end{eqnarray*} + + Moduloreduktion am Ende: + + \begin{eqnarray*} + (5 * 2 - 8) * (7^2)^{-1} = 2 * 49^{-1} \equiv 2 * 9 = 18 \equiv 7 &\mod{}& 11 \\ + \end{eqnarray*} + + Moduloreduktion auf Zwischenergebnisse: + + \begin{eqnarray*} + (5 * 2 - 8) * (7^2)^{-1} = 2 * 49^{-1} \equiv 2 * 5^{-1} \equiv 2 * 9 = 18 \equiv 7 &\mod{}& 11 \\ + \end{eqnarray*} + +\end{enumerate} + +\section*{Aufgabe 3} + +\begin{enumerate}[(a)] + \item $5^{-1} \mod 13$ + + $\text{ggT}(5, 13) = 1 \Rightarrow 5^{-1}$ existiert. + + \begin{eqnarray*} + 5 * x \equiv 1 &\mod{}& 13 \\ + x = 1 \Rightarrow 5 * 1 = 5 &\mod{}& 13 \text{ \xmark} \\ + x = 2 \Rightarrow 5 * 2 = 10 &\mod{}& 13 \text{ \xmark} \\ + x = 3 \Rightarrow 5 * 3 = 15 \equiv 2 &\mod{}& 13 \text{ \xmark} \\ + x = 4 \Rightarrow 5 * 4 = 20 \equiv 7 &\mod{}& 13 \text{ \xmark} \\ + x = 5 \Rightarrow 5 * 5 = 25 \equiv 12 &\mod{}& 13 \text{ \xmark} \\ + x = 6 \Rightarrow 5 * 6 = 30 \equiv 4 &\mod{}& 13 \text{ \xmark} \\ + x = 7 \Rightarrow 5 * 7 = 35 \equiv 9 &\mod{}& 13 \text{ \xmark} \\ + x = 8 \Rightarrow 5 * 8 = 40 \equiv 1 &\mod{}& 13 \text{ \cmark} \\ + \Rightarrow 5^{-1} \equiv 8 &\mod{}& 13 + \end{eqnarray*} + + \item $3 * 4 * 4^{-1} \mod 13$ + \begin{eqnarray*} + 3 * 4 * 4^{-1} \equiv 3 * 1 = 3 &\mod{}& 13 + \end{eqnarray*} + + \item $3 * 2 * 4^{-1} \mod 13$ + + Bestimmung der multiplikativen Inverse $4^{-1} \mod 13$: + + $\text{ggT}(4, 13) = 1 \Rightarrow 4^{-1}$ existiert. + + \begin{eqnarray*} + 4 * x \equiv 1 &\mod{}& 13 \\ + x = 1 \Rightarrow 4 * 1 = 4 &\mod{}& 13 \text{ \xmark} \\ + x = 2 \Rightarrow 4 * 2 = 8 &\mod{}& 13 \text{ \xmark} \\ + x = 3 \Rightarrow 4 * 3 = 12 &\mod{}& 13 \text{ \xmark} \\ + x = 4 \Rightarrow 4 * 4 = 16 \equiv 3 &\mod{}& 13 \text{ \xmark} \\ + x = 5 \Rightarrow 4 * 5 = 20 \equiv 7 &\mod{}& 13 \text{ \xmark} \\ + x = 6 \Rightarrow 4 * 6 = 24 \equiv 11 &\mod{}& 13 \text{ \xmark} \\ + x = 7 \Rightarrow 4 * 7 = 28 \equiv 2 &\mod{}& 13 \text{ \xmark} \\ + x = 8 \Rightarrow 4 * 8 = 32 \equiv 6 &\mod{}& 13 \text{ \xmark} \\ + x = 9 \Rightarrow 4 * 9 = 36 \equiv 10 &\mod{}& 13 \text{ \xmark} \\ + x = 10 \Rightarrow 4 * 10 = 40 \equiv 1 &\mod{}& 13 \text{ \cmark} \\ + \Rightarrow 4^{-1} \equiv 10 &\mod{}& 13 + \end{eqnarray*} + + \begin{eqnarray*} + 3 * 2 * 4^{-1} \equiv 3 * 2 * 10 = 30 * 2 \equiv 4 * 2 = 8 &\mod{}& 13 \\ + \end{eqnarray*} + + \item $3 * x \equiv 3 \mod 9$ + \begin{eqnarray*} + 3 * x \equiv 3 &\mod{}& 9 \\ + x = 0 \Rightarrow 3 * 0 = 0 &\mod{}& 9 \text{ \xmark} \\ + x = 1 \Rightarrow 3 * 1 = 3 &\mod{}& 9 \text{ \cmark} \\ + x = 2 \Rightarrow 3 * 2 = 6 &\mod{}& 9 \text{ \xmark} \\ + x = 3 \Rightarrow 3 * 3 = 9 \equiv 0 &\mod{}& 9 \text{ \xmark} \\ + x = 4 \Rightarrow 3 * 4 = 12 \equiv 3 &\mod{}& 9 \text{ \cmark} \\ + x = 5 \Rightarrow 3 * 5 = 15 \equiv 6 &\mod{}& 9 \text{ \xmark} \\ + x = 6 \Rightarrow 3 * 6 = 18 \equiv 0 &\mod{}& 9 \text{ \xmark} \\ + x = 7 \Rightarrow 3 * 7 = 21 \equiv 3 &\mod{}& 9 \text{ \cmark} \\ + x = 8 \Rightarrow 3 * 8 = 24 \equiv 6 &\mod{}& 9 \text{ \xmark} \\ + \Rightarrow 3 * 1 \equiv 3 * 4 \equiv 3 * 7 \equiv 3 &\mod{}& 9 + \end{eqnarray*} + +\end{enumerate} + +\section*{Aufgabe 4} +\begin{enumerate}[(a)] + \item + \begin{itemize} + \item $\mathbb{Z}_{13}$: Alle Elemente außer $0$ (siehe Begründung in 2. Teilaufgabe) von $\mathbb{Z}_{13}$ + haben eine multiplikative Inverse, da 13 eine Primzahl ist und dadurch alle Elemente aus + $\mathbb{Z}_{13}$ Teilerfremd zu 13 sind. + + \item $\mathbb{Z}_{14}$ + \begin{itemize} + \item 0, da $0 * x = 0$ und es somit kein $x$ geben kann, mit $0 * x = 1$ + \item 2, da $\text{ggT}(2,14) = 2 \neq 1$ + \item 4, da $\text{ggT}(4,14) = 2 \neq 1$ + \item 6, da $\text{ggT}(6,14) = 2 \neq 1$ + \item 7, da $\text{ggT}(7,14) = 2 \neq 1$ + \item 8, da $\text{ggT}(8,14) = 2 \neq 1$ + \item 10, da $\text{ggT}(10,14) = 2 \neq 1$ + \item 12, da $\text{ggT}(12,14) = 2 \neq 1$ + \end{itemize} + + \item $\mathbb{Z}_{16}$ + \begin{itemize} + \item 0, da $0 * x = 0$ und es somit kein $x$ geben kann, mit $0 * x = 1$ + \item 2, da $\text{ggT}(2,16) = 2 \neq 1$ + \item 4, da $\text{ggT}(4,16) = 4 \neq 1$ + \item 6, da $\text{ggT}(6,16) = 2 \neq 1$ + \item 8, da $\text{ggT}(8,16) = 8 \neq 1$ + \item 10, da $\text{ggT}(10,16) = 2 \neq 1$ + \item 12, da $\text{ggT}(12,16) = 4 \neq 1$ + \end{itemize} + \end{itemize} + + \item In $\mathbb{Z}_{11}$ haben alle Elemente außer $0$ eine multiplikative Inverse, da 11 eine Primzahl ist und + damit alle Elemente aus $\mathbb{Z}_{11}$ teilerfremd zu 11 sind. In $\mathbb{Z}_9$ bzw. $\mathbb{Z}_{15}$ haben + die Elemente $0, 3$ bzw. $0, 3, 5$ und alle deren Vielfache keine multiplikative Inverse, da $3$ bzw. $3, 5$ + jeweils Teiler von $9$ bzw. $15$ sind. + +\end{enumerate} + +\section*{Aufgabe 5} + +\begin{enumerate}[(a)] + \item $e_{k_1}(x) = y \equiv a_1 * x + b_1 \mod n$ und $e_{k_2}(x) = y \equiv a_2 * x + b_2$ + + Gesucht: $e_{k_3}(x) = a_3 * x + b_3$ mit $e_{k_3}(x) = e_{k_2}(e_{k_1}(x)$ + + \begin{eqnarray*} + e_{k_3}(x) = e_{k_2}(e_{k_1}(x)) = a_2 * (a_1 * x + b_1) + b_2 &\mod{}& n \\ + e_{k_3} = (a_2 * a_1) * x + (a_2 * b_1 + b_2) &\mod{}& n \\ + \Rightarrow a_3 = (a_2 * a_1) \mod n \text{ und } b_3 = (a_2 * b_1 + b_2) \mod n + \end{eqnarray*} + + \item $a_1 = 7, b_1 = 13$ und $a_2 = 19, b_2 = 7$ und $n = 26$ + + Gesucht: $a_3, b_3$ + + \begin{eqnarray*} + a_3 = (a_2 * a_1) = 7 * 19 = 133 \equiv 3 &\mod{}& 26 \\ + b_3 = (a_2 * b_1 + b_2) = 7 * 13 + 7 = 98 \equiv 20 &\mod{}& 26 \\ + \Rightarrow e_{k_3}(x) = 3 * x + 20 &\mod{}& 26 + \end{eqnarray*} + + \item Da sich der Modulus $n$ nicht verändert, verändert sich auch der Schlüsselraum nicht. Gegen affine Chiffren + sind weiterhin Häufigkeitsanalysen möglich, da jedes Plaintext Zeichen auf das selbe Ciphertext Zeichen gemappt + wird. + +\end{enumerate} + +\section*{Aufgabe 6} +\begin{enumerate}[(a)] + \item + \begin{tabular}{|cccccccccccccccc|} + \hline + M&u&j&m&l&l&m&l&A&m&k&c&z&q&b&g \\\hline + E&m&b&e&d&d&e&d&S&e&c&u&r&i&t&y \\\hline + \end{tabular} + + \item Nein, da Buchstabenhäufigkeiten weiterhin erkennbar bleiben. Nachdem die Buchstabenhäufigkeiten bestimmt + wurden kann man den geheimen Offset herausfinden und hat sogar weniger Arbeit als bei der Subsitutionschiffre, + da keine Substitutionstabelle erstellt werden muss, da der Offset für jedes Zeichen gleich ist. + + Weiter ist auch ein Bruteforce Angriff gegen dieses Verfahren, da es je nach dem, ob Groß- und Kleinschreibung + unterschieden wird, nur 26 bzw. 52 verschiedene Schlüssel. + + \item Nein, da die \enquote{Normalisierung}, also Zurückführung auf die normale Cäsar-Chiffre, trivial ist. Wenn + man von jedem Zeichen den Index seiner Position als Offset abzieht, erhält man wieder die Cäsar-Chiffre. + +\end{enumerate} + +\section*{Aufgabe 7} + +\begin{enumerate}[(a)] + \item Solange es gegen Angriffe, die im Threatmodel definiert wurden, schützt. Das Threatmodel beschreibt war, vor + wem und wie lange geschützt werden soll. + + \item Während der Verteidiger sich gegen alle möglichen Arten von Schwachstellen schützen muss, reicht es dem + Angreifer, eine einzige Schwachstelle zu finden, um ein System zu kompromittieren. + + \item Die Implementierung der Algorithmen, die Benutzer eines Systems, (Pseudo-)Random-Number Generatoren, + Design Fehler in Protokollen, Design des Userinterface, (implizierte) Hardwarevoraussetzungen (z.B. + manipulationssichere Hardware) + + \item Bei einem Flugzeugunglück kümmert sich die Regierung um die Analyse und Aufarbeitung des Unglücks, und die + Informationen werden verbreitet, dass andere daraus lernen können um zu verhindern, dass sich das Unglück + wiederholt, während bei Angriffen auf kryptographische Systeme, sollte es überhaupt eine Berichterstattung + geben, Informationen weggelassen werden und keine Analysen veröffentlicht werden. Das führt dazu, dass sich der + selbe Fehler ggf. wiederholt. Die Schwachstellen werden im stillen geschlossen und möglichst viel Information + zurückgehalten um das Vertrauen in ein System nicht zu verlieren, obwohl dieses nicht mehr gerechtfertigt ist. + + \item Wenn Details zurückgehalten werden, hat niemand die Möglichkeit, aus den gemachten Fehlern zu lernen und die + Fehler werden ggf. wiederholt. + + \item Fehler in der Implementierung oder ein schlechtes Userinterface (z.B. unsichere Default Werte) können ein + theoretisch sicheres System unsicher machen. + +\end{enumerate} + +\end{document} + diff --git a/school/intro-crypto/uebung/02/schneier_crypto_1.2.1.pdf b/school/intro-crypto/uebung/02/schneier_crypto_1.2.1.pdf new file mode 100644 index 0000000..1cd381e Binary files /dev/null and b/school/intro-crypto/uebung/02/schneier_crypto_1.2.1.pdf differ diff --git a/school/intro-crypto/uebung/02/Ãœbung_2_EK1_WS1819.pdf b/school/intro-crypto/uebung/02/Ãœbung_2_EK1_WS1819.pdf new file mode 100644 index 0000000..9f88bba Binary files /dev/null and b/school/intro-crypto/uebung/02/Ãœbung_2_EK1_WS1819.pdf differ