notes/school/intro-crypto/uebung/03/03.tex
Valentin Brandl 3022f10fe7
Some checks failed
the build failed
Add intro-crypto exercise 03
2018-10-31 21:34:58 +01:00

222 lines
6.3 KiB
TeX

\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}
Ciphertext:
\begin{align*}
\text{Hex} && \text{Bin} \\
(DC)_{16} &=& (11011100)_2 \\
(48)_{16} &=& (01001000)_2 \\
(13)_{16} &=& (00010011)_2
\end{align*}
Schlüssel:
\begin{align*}
\text{Hex} && \text{Bin} \\
(98)_{16} &=& (10011000)_2 \\
(29)_{16} &=& (00101001)_2 \\
(60)_{16} &=& (01100000)_2
\end{align*}
Binäre berechnung der ersten 3 Bytes:
\begin{itemize}
\item
\begin{tabular}{ccccccccc}
& 1 & 1 & 0 & 1 & 1 & 1 & 0 & 0 \\
xor & 1 & 0 & 0 & 1 & 1 & 0 & 0 & 0 \\
\hline
& 0 & 1 & 0 & 0 & 0 & 1 & 0 & 0
\end{tabular}
$(01000100)_2 = (44)_{16} = `D`_{ASCII}$
\item
\begin{tabular}{ccccccccc}
& 0 & 1 & 0 & 0 & 1 & 0 & 0 & 0 \\
xor & 0 & 0 & 1 & 0 & 1 & 0 & 0 & 1 \\
\hline
& 0 & 1 & 1 & 0 & 0 & 0 & 0 & 1
\end{tabular}
$(01100001)_2 = (61)_{16} = `a`_{ASCII}$
\item
\begin{tabular}{ccccccccc}
& 0 & 0 & 0 & 1 & 0 & 0 & 1 & 1 \\
xor & 0 & 1 & 1 & 0 & 0 & 0 & 0 & 0 \\
\hline
& 0 & 1 & 1 & 1 & 0 & 0 & 1 & 1
\end{tabular}
$(01110011)_2 = (73)_{16} = `s`_{ASCII}$
\end{itemize}
\begin{itemize}
\item
\begin{tabular}{lcccccccccccc}
Ciphertext & DC & 48 & 13 & 3B & 9C & 4C & 49 & 80 & AC & A7 & B9 & 54 \\
Schlüssel & 98 & 29 & 60 & 72 & F2 & 38 & 2C & F2 & C2 & C2 & CD & 1D \\
\hline
Plaintext & 44 & 61 & 73 & 49 & 6E & 74 & 65 & 72 & 6E & 65 & 74 & 49 \\
ASCII & D & a & s & I & n & t & e & r & n & e & t & I
\end{tabular}
\item
\begin{tabular}{lcccccccccccc}
Ciphertext & F2 & 7C & 2B & 9E & D5 & DF & 0D & 05 & B3 & 1D & 4E & F8 \\
Schlüssel & 81 & 08 & 65 & FB & A0 & B3 & 6C & 6B & D7 & 3C & 6F & D9 \\
\hline
Plaintext & 73 & 74 & 4E & 65 & 75 & 6C & 61 & 6E & 64 & 21 & 21 & 21 \\
ASCII & s & t & N & e & u & l & a & n & d & ! & ! & !
\end{tabular}
Plaintext: \enquote{DasInternetIstNeuland!!!}.
\end{itemize}
\section*{Aufgabe 2}
Da jedes Bit im Ciphertext ein eigenes Bit im Schlüssel hat, lässt sich jeder beliebige Klartext (der selben Länge) aus
dem Ciphertext ableiten, zumindest wenn der Schlüssel richtig gewählt wird. Daher ist es nicht möglich, zu sagen, ob ein
Schlüssel korrekt ist, ohne den ursprünglichen Plaintext zu kennen.
\section*{Aufgabe 3}
\begin{enumerate}[(a)]
\item Die Magic Number des PNG Formats ist $89$ $50$ $4e$ $47$ $0d$ $0a$ $1a$ $0a$. Diese 8 Bytes bilden den Anfang
jeder validen PNG Datei. Das eröffnet die Möglichkeit für einen Known-Plaintext Angriff.
\item Für $a$, $b$ und $c$ mit $a \text{ xor } b = c$ gilt $b \text{ xor } c = a$ und $a \text{ xor } c = b$, also
lässt sich der Schlüssel berechnen, in dem man den Ciphertext mit dem Known-Plaintext xor'ed.
\begin{tabular}{lcccccccc}
Ciphertext (hex) & 33 & fd & eb & 12 & cd & 0a & 0a & f5 \\
Known Plaintext (hex) & 89 & 50 & 4e & 47 & 0d & 0a & 1a & 0a \\
\hline
Schlüssel (hex) & ba & ad & a5 & 55 & c0 & 00 & 10 & ff \\
\end{tabular}
\item Die Süßigkeiten sind im Lageraum im ID (gegenüber vom Fachschaftsraum), in dem Regal direkt gegenüber der
Tür. Ca auf der Höhe zwischen Türe und Grill.
\end{enumerate}
\section*{Aufgabe 4}
\begin{enumerate}[(a)]
\item
\begin{enumerate}[1)]
\item Berechnung der ersten 8 Bytes des Schlüsselstroms:
Known Plaintext: \enquote{https://} $\Rightarrow$ $68$ $74$ $74$ $70$ $73$ $3a$ $2f$ $2f$
\begin{tabular}{lcccccccc}
Ciphertext & 4E & 7E & 3D & 88 & 8E & 01 & 0D & 84 \\
Known-Plaintext & 68 & 74 & 74 & 70 & 73 & 3A & 2F & 2F \\
\hline
Schlüssel & 26 & 0A & 49 & F8 & FD & 3B & 22 & AB \\
\end{tabular}
\item Aufstellen eines Gleichungssystems zur Bestimmung von $A$, $B$ und $C$ des LCG:
$m = 257$
\begin{eqnarray*}
S_0 &= (26)_{16} = (38)_{10} \\
S_1 &= (0A)_{16} = (10)_{10} \\
S_2 &= (49)_{16} = (73)_{10} \\
S_3 &= (F8)_{16} = (248)_{10} \\
S_4 &= (FD)_{16} = (253)_{10} \\\\
S_2 &\equiv A * S_1 + B * S_0 + C &\mod 257 \\
S_3 &\equiv A * S_2 + B * S_1 + C &\mod 257 \\
S_4 &\equiv A * S_3 + B * S_2 + C &\mod 257 \\
\end{eqnarray*}
\begin{align}
73 &\equiv 10 * A + 38 * B + C &\mod 257 \\
C &\equiv 73 - 10 * A - 38 * B &\mod 257 \\
\\
248 &\equiv 73 * A + 10 * B + 73 - 10 * A - 38 * B &\mod 257 \\
248 &\equiv 63 * A - 28 * B + 73 &\mod 257 \\
63 * A &\equiv 175 + 28 * B &\mod 257 \\
A &\equiv 29 * B + 117 &\mod 257 \\
\\
253 &\equiv 248(29*B + 117) + 73 * B + 73 - 10(29*B + 117) - 38*B &\mod 257 \\
253 &\equiv 253*B + 232 + 73*B + 73 - 33*B - 142 - 38 *B &\mod 257 \\
253 &\equiv 255*B + 163 &\mod 257 \\
255*B &\equiv 90 &\mod 257 \\
\underline{B} &\equiv 212 &\mod 257 \\
\\
A &\equiv 29 * 212 + 117 &\mod 257 \\
\underline{A} &\equiv 97 &\mod 257 \\
\\
C &\equiv 73 - 10 * 97 - 38 * 212 &\mod 257 \\
\underline{C} &\equiv 42 &\mod 257
\end{align}
$A = 97 \mod 257$, $B = 212 \mod 257$, $C = 42 \mod 257$
Plaintext: \url{https://youtu.be/VmUGe8KDdGI}
\end{enumerate}
\item Es werden $n+1$ Parameter und $n$ Seed-Werte benötigt. Da man also $n+1$ Unbekannte im aufzustellenden
Gleichungssystem hat, werden auch $n+1$ Klartext-Chiffretext-Paare für einen erfolgreichen Angriff benötigt.
\end{enumerate}
\end{document}