\documentclass[a4paper,12pt]{scrartcl}
\usepackage[ngerman]{babel}
\usepackage{graphicx} %BIlder einbinden
\usepackage{amsmath} %erweiterte Mathe-Zeichen
\usepackage{amsfonts} %weitere fonts
\usepackage[utf8]{inputenc} %Umlaute & Co
\usepackage{hyperref} %Links
\usepackage{ifthen} %ifthenelse
\usepackage{enumerate}

\usepackage{color}
\usepackage{algpseudocode} %Pseudocode
\usepackage{dsfont} % schöne Zahlenräumezeichen
\usepackage{amssymb, amsthm} %noch stärker erweiterte Mathe-Zeichen
\usepackage{tikz} %TikZ ist kein Zeichenprogramm
\usetikzlibrary{trees,automata,arrows,shapes}
\usepackage{pgfplots}

\pagestyle{empty}


\topmargin-50pt

\newcounter{aufgabe}
\def\tand{&}

\newcommand{\makeTableLine}[2][0]{%
\setcounter{aufgabe}{1}%
\whiledo{\value{aufgabe} < #1}%
{%
#2\tand\stepcounter{aufgabe}%
}
}

\newcommand{\aufgTable}[1]{
\def\spalten{\numexpr #1 + 1 \relax}
\begin{tabular}{|*{\spalten}{p{1cm}|}}
\makeTableLine[\spalten]{A\theaufgabe}$\Sigma$~~\\ \hline
\rule{0pt}{15pt}\makeTableLine[\spalten]{}\\
\end{tabular}
}

\def\header#1#2#3#4#5#6#7{\pagestyle{empty}
\begin{minipage}[t]{0.47\textwidth}
\begin{flushleft}
{\bf #4}\\
#5
\end{flushleft}
\end{minipage}
\begin{minipage}[t]{0.5\textwidth}
\begin{flushright}
#6 \vspace{0.5cm}\\
%                 Number of Columns    Definition of Columns      second empty line
% \begin{tabular}{|*{5}{C{1cm}|}}\hline A1&A2&A3&A4&$\Sigma$\\\hline&&&&\\\hline\end{tabular}\\\vspace*{0.1cm}
\aufgTable{#7}
\end{flushright}
\end{minipage}
\vspace{1cm}
\begin{center}
{\Large\bf Blatt #1}

{(Abgabe #3)}
\end{center}
}



%counts the exercisenumber
\newcounter{n}

%Kommando für Aufgaben
%\Aufgabe{AufgTitel}{Punktezahl}
\newcommand{\Aufgabe}[2]{\stepcounter{n}
\textbf{Aufgabe \arabic{n}: #1} (#2 Punkte)}

\newcommand{\textcorr}[1]{\textcolor{red}{#1}}
\newenvironment{corr}{\color{red}}{\color{black}\newline}
\newcommand{\ok}{\begin{corr}
      $\checkmark$
  \end{corr}}

\begin{document}
%\header{BlattNr}{Tutor}{Abgabedatum}{Vorlesungsname}{Namen}{Semester}{Anzahl Aufgaben}
\header{1}{}{2015-10-21}{Kommunikationsnetze}{\textit{Jonas Jaszkowic}\\\textit{Jan-Peter Hohloch}}{WS 15/16}{2}
\vspace{1cm}
\Aufgabe{Grundlagen}{5+15+10+10+10+5+10}
    \begin{enumerate}
        \item \begin{enumerate}[1.]
            \item Physical Layer (Bitübertragungsschicht): Übertragung der Information in bits
            \item Data Link Layer (Datensicherungsschicht): Prüfsummen zur Kontrolle der Übertragung, Teilung in Datenblöcke
            \item Network Layer (Vermittlungsschicht): Routing, Netzwerkadressen
            \item Transport Layer (Transportschicht): Datenkapselung, Portzuteilung
            \item Session Layer (Sitzungsschicht): Datenaustausch zwischen Systemen durch Check Points
            \item Presentation Layer (Darstellungsschicht): Datenkompression und Verschlüsselung, systemabhängige Darstellung
            \item Application Layer (Anwendungsschicht): Daten-Ein-/Ausgabe
        \end{enumerate}
        \item \begin{enumerate}
            \item[2.] Data Link Layer: 
            \item[3.] Network Layer:
            \item[4.] Transport Layer:
            \item[7.] Application Layer:
        \end{enumerate}
        \item \begin{enumerate}
            \item \textbf{Vertraulichkeit und Abhörsicherheit}: Der Sender verschlüsselt die Nachricht, der Empfänger entschlüsselt die Nachricht. Nur diese beiden Parteien sollten die Nachricht im Klartext lesen können.
            \item \textbf{Integrität der Nachricht}: Der Sender und der Empfänger müssen sicherstellen, dass die Nachricht weder beim Versand noch danach unbemerkt verändert werden kann.
            \item \textbf{Authentizität}:
            \begin{itemize}
                \item Authentizität der Kommunikationspartner: Sender und Empfänger müssen ihre Identität dem jeweils anderen bestätigen.
                \item Authentizität der Daten: Daten wurden wirklich vom Sender und niemand anderem verschickt worden sein. Wichtig um Verbindlichkeit (z.B. vor Gericht) zu sichern.
            \end{itemize}
            \item \textbf{Verfügbarkeit}: Die Dienste müssen den Benutzern für die Dauer der Kommunikation zur Verfügung stehen und benutzt werden können.
        \end{enumerate}
        \item Wird beispielsweise eine Überweisung getätigt, so kann diese per replay wiederholt werden. es wird also die doppelte Menge überwiesen. \\
        Vermieden werden können replay attacks durch laufende Nummern, sodass Nachrichten die Gültigkeit verlieren nachdem sie einmal versandt worden sind. Replay von gesamten Sessions kann durch eine nonce verhindert werden. Eine einmalig verwendete zusätzliche Zahl, die zur Identifizierung mitverwendet wird.
        \item Symmetrische Verschlüsselung basiert auf einem einzigen Schlüssel. Mit diesem wird ver- und entschlüsselt. Im Gegensatz dazu wird bei asymmetrischer Verschlüsselung ein Schlüsselpaar verwendet, ein Schlüssel zu Ver- und einer zum Entschlüsseln.\\
        Bei symmetrischen Verfahren muss der Schlüssel mit ausgetauscht werden, soll dies sicher erfolgen, so benötigt man weiteren Aufwand (Diffie-Hellman). Dafür sind symmetrische Verfahren meist schneller, da sie kürzere Schlüssel für die gleiche Sicherheit benötigen.\\
        Asymmetrische Verfahren kommen ohne den direkten Austausch von Schlüsseln aus, allerdings ist hier das Problem, dass sichergestellt werden muss, dass der öffentliche Schlüssel tatsächlich der richtigen Person gehört. Außerdem sind asymmetrische Verfahren meist langsamer, da sie längere Schlüssel benötigen um Sicherheit zu gewähren.
        \item Es existiert ein geteiltes Geheimnis (shared secret), dieses wird an die Nachricht angehängt und mit gehashed. Hash und Nachricht (ohne secret) werden versandt. Der Empfänger hasht die NAchricht, nachdem er das Geheimnis angehängt hat und vergleicht das Ergebnis mit dem übermittelten Hash. Sind sie gleich, so wurde die Nachricht vom erwarteten Sender übermittelt, da niemand sonst das Geheimnis kennt.
        \item Der Sender hasht die Nachricht und verschlüsselt den Hashwert mit seinem privaten Schlüssel. Der Empfänger hasht die Nachricht ebenfalls und entschlüsselt außerdem den übermittelten verschlüsselten Hashwert mit dem PublicKey des Senders. Stimmen die Ergebnisse überein, so kann der Empfänger davon ausgehen, dasss die Nachricht tatsächlich so vom Sender kam.
    \end{enumerate}
\Aufgabe{Blockchiffren}{5+10+10+10}
    \begin{enumerate}
        \item DES (überholt, da Schlüssel zu kurz), beruht auf Feistel-Chiffre. Vorgehensweise: Es gibt einen Key der Länge 56bit. Initiale Permutation des 64bit langen Inputs, danach iterativ 16 identische Durchläufe mit der gleichen Verschlüsselungsfunktion aber einem anderem 48bit langem Key, der aus dem ursprünglichen Key generiert wird. Am Schluss nochmal eine letzte Permutation. \\
        AES (ersetzt DES), erlaubt Schlüssel größerer Länge und kann an Rechenzeiten angepasst werden. Hier werden Klartextblöcke mit einer Länge von 128bit verarbeitet. 
        \item Identische Klartextblöcke werden identisch verschlüsselt. Kommt ein Block mehr als einmal im Klartext vor, so wird auch der verschlüsselte Text an diesen Stellen identisch sein. Das erlaubt Angriffe beruhend auf Blockhäufigkeiten, wenn gezählt wird wie oft welcher verschlüsselte Block vorkommt. Durch das 1-1 Mapping hat jeder Block also nur Auswirkungen auf sein verschlüsseltes Äquivalent, nicht aber auf die anderen Blöcke bzw. Bits. 
        \item s.o.\\
            Wiederholungen können beispielsweise durch den Cipher Block Chaining Mode vom Klartext unabhängig werden. Hierbei wird der veschlüsselte letzte Block per xor mit dem aktuellen Klartext kombiniert und dann verschlüsselt. Für den ersten Block benötigt man einen Initialisierungsvektor, dieser kann öffentlich sein. Wenn der Initialisierungsvektor bei jeder Session geändert wird, so ergibt sich auch bei identischer Nachricht jedesmal ein komplett anderer Ciphertext.
        \item Der Klartext wird also vor dem Verschlüsseln auf dem Kontext basierend verändert. Beispielsweise ist der Kontext beim Cipher Block Chaining der Initialisierungsvektor. Dadurch wird bei gleichen Klartext dennoch ein anderer Text verschlüsselt, wodurch auch ein anderer Ciphertext erreicht wird.
    \end{enumerate}
\end{document}

