%Teilweise Erzeugt mit dem LaTeX-Generator: http://latex.sehnot.de

%Schriftgröße, Layout, Papierformat, Art des Dokumentes
\documentclass[10pt,oneside,a4paper]{scrartcl}

%Einstellungen der Seitenränder
\usepackage[left=2cm,right=2cm,top=1.5cm,bottom=1.5cm,includeheadfoot]{geometry}

%neue Rechtschreibung
\usepackage[ngerman]{babel}

%Umlaute ermöglichen
\usepackage[utf8]{inputenc}

%Gesamtseitenzahl
\usepackage{lastpage}

% Kopf- und Fußzeile
\usepackage[automark]{scrpage2}

%Quellcode-Listings
\usepackage{listings}

%Hyperlinks
\usepackage{hyperref}

%Kopfzeile
\ihead{Linux}
\chead{}
\ohead{http://kohnlehome.de/linux/kryptologie.pdf}
\setheadsepline{0.5pt}

%Fußzeile
\setfootsepline{0.5pt}
\ifoot{Franz Kohnle}
\cfoot{Seite \thepage\ von  \pageref{LastPage}}
\ofoot{\today}

\pagestyle{scrheadings}

\begin{document}

% Überschrift 
\begin{center}
\LARGE % Schriftgröße
\bfseries % Fettdruck
\sffamily % Serifenlose Schrift
Kryptologie
\end{center}

\section{Hash-Funktionen}
\begin{verbatim}
+------------------------+  Hash-Funktion +---------------------------+
| beliebige Zeichenfolge |  ============> | Zeichenfolge fester Länge |
|          x             |       f        |             y             |
+------------------------+                +---------------------------+
                               y = f(x)
\end{verbatim}

\subsection*{Einwegfunktion}
Praktisch unmöglich, zu gegebenem y ein x zu finden, sodass y = f(x)

\subsection*{Kollisionsresistenz}
Praktisch unmöglich, zwei verschiedene x und x' zu finden, sodass f(x) = f(x')

\subsection*{Algorithmen und Programme}
\begin{itemize}
\item MD5 (Message-Digest Algorithm 5): \texttt{md5sum}
\item SHA-2 (Secure Hash Algorithm): \texttt{sha224sum, sha256sum, sha384sum, sha512sum}
\end{itemize}



\section{Verschlüsselung}
\begin{verbatim}
                  verschlüsseln (encrypt)
+-------------+       mit Schlüssel 1         +----------------+
|   Daten     | ============================> | verschlüsselte |
| im Klartext | <============================ |      Daten     |
+-------------+   entschlüsseln (decrypt)     +----------------+
                      mit Schlüssel 2         
\end{verbatim}

\subsection{Symmetrische Verschlüsselung}
\subsubsection*{Eigenschaften}
\begin{itemize}
\item Zum Ver- und Entschlüsseln wird der gleiche Schlüssel verwendet (Schlüssel 1 = Schlüssel 2).
\item schnell, es können große Datenmengen verschlüsselt werden
\end{itemize}


\subsubsection*{Algorithmen und Programme}
\begin{itemize}
\item DES (Data Encryption Standard)
\item 3DES (Triple-DES)
\item AES (Advanced Encryption Standard): \texttt{openssl, gpg}
\end{itemize}

\subsection{Asymmetrische Verschlüsselung}
\subsubsection*{Eigenschaften}
\begin{itemize}
\item Zum Ver- und Entschlüsseln werden zwei verschiedene Schlüssel verwendet (Private-Key und Public-Key).
\item langsam, es können nur kleine Datenmengen verschlüsselt werden
\end{itemize}


\subsubsection*{Algorithmus}
\begin{itemize}
\item RSA (Rivest, Shamir und Adleman): \texttt{openssl, gpg}
\end{itemize}

\section{Anwendungen}
\subsection*{Begriffe}
\begin{itemize}
\item Authentication (Authentifizierung): Nachweis, dass man diejenige ist, die man behauptet zu sein
\item Confidentiality (Vertraulichkeit): Informationen kann nur diejenige lesen, für die sie bestimmt sind
\item Integrity (Integrität): Daten wurden nicht verändert
\end{itemize}


\subsection*{Nur Hashwerte von Passwörten speichern}
\begin{verbatim}
Passwortdefinition                   Passworteingabe
      |                                     |
      | Hashfunktion           Hashfunktion |
      |                                     |
      v                                     V
gespeicherter Hashwert <-- Vergleich --> Hashwert
\end{verbatim}

\subsection*{Authentifizierung}
\begin{verbatim}
    Sender                          Empfänger
Daten im Klartext                 Daten im Klartext
      |                                  ^
      | private                   public |
      |   key                       key  |
      v                                  |
verschl. Daten ------------------> verschl. Daten 
\end{verbatim}

\subsection*{Vertraulichkeit}
\begin{verbatim}
    Sender                          Empfänger
Daten im Klartext                 Daten im Klartext
      |                                  ^
      | public                   private |
      |   key                       key  |
      v                                  |
verschl. Daten ------------------> verschl. Daten 
\end{verbatim}

\newpage


\subsection*{Integrität eines Dokuments}
\begin{verbatim}
Sender                       Empfänger
Dokument ------------------> Dokument
   |                            |
   | Hash-             Hash-    |
   | Funktion          Funktion |
   |                            v
   |                          Hash <----
   v                               Vergleich
 Hash --------------------->  Hash <----
\end{verbatim}

\subsection*{Signatur eines Dokuments}
Beweis für die Integrität und die Herkunft eines Dokuments
\begin{verbatim}
Sender                       Empfänger
Dokument ------------------> Dokument
   |                            |
   | Hash-             Hash-    |
   | Funktion          Funktion |
   |                            v
   v                          Hash1 <----
 Hash                                Vergleich
   |                          Hash2 <----
   | private                    ^
   |   key               public |
   |                      key   |
   v                            |
Signatur ------------------> Signatur
\end{verbatim}
\end{document}
