notes/school/intro-crypto/uebung/02/02.tex

391 lines
13 KiB
TeX
Raw Permalink Normal View History

2018-10-24 22:39:39 +02:00
\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 (<28>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<61>er $0$ (siehe Begr<67>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<61>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<65>ndert, ver<65>ndert sich auch der Schl<68>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<6E>ufigkeiten weiterhin erkennbar bleiben. Nachdem die Buchstabenh<6E>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<72>- und Kleinschreibung
unterschieden wird, nur 26 bzw. 52 verschiedene Schl<68>ssel.
\item Nein, da die \enquote{Normalisierung}, also Zur<75>ckf<6B>hrung auf die normale C<>sar-Chiffre, trivial ist. Wenn
man von jedem Zeichen den Index seiner Position als Offset abzieht, erh<72>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<63>tzt. Das Threatmodel beschreibt war, vor
wem und wie lange gesch<63>tzt werden soll.
\item W<>hrend der Verteidiger sich gegen alle m<>glichen Arten von Schwachstellen sch<63>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<67>ck k<>mmert sich die Regierung um die Analyse und Aufarbeitung des Ungl<67>cks, und die
Informationen werden verbreitet, dass andere daraus lernen k<>nnen um zu verhindern, dass sich das Ungl<67>ck
wiederholt, w<>hrend bei Angriffen auf kryptographische Systeme, sollte es <20>berhaupt eine Berichterstattung
geben, Informationen weggelassen werden und keine Analysen ver<65>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<75>ckgehalten um das Vertrauen in ein System nicht zu verlieren, obwohl dieses nicht mehr gerechtfertigt ist.
\item Wenn Details zur<75>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}