finished 3DES. Continue on Skript 2 Page 38(44)

This commit is contained in:
Paul Lödige
2020-09-15 21:41:25 +02:00
parent b207012844
commit 6bd94983a7
13 changed files with 193 additions and 60 deletions

View File

@@ -73,13 +73,72 @@
Dies geschieht ungeachtet davon, ob die Länge der Nachricht $m$ ein Vielfaches der Blocklänge $l$ ist.
\subsection{CTR (Counter)}
Im CTR-Modus wird ein Blockverschlüsselungsverfahren $E$ mit einem Schlüssel $k$ und einem Nonce-Wert $Ctr\in\mathscr M$ wie folgt verwendet:
Im CTR-Modus wird ein Blockverschlüsselungsverfahren $E$ mit einem Schlüssel $k$ und einem Nonce-Wert $Ctr\in\mathscr M$ wie folgt verwendet:
$$\begin{aligned}
c_i :=&m_i+E_k(Ctr\boxplus(i-1))
c_i :=&m_i+E_k(Ctr\boxplus(i-1))\\
E-CTR_{k,Ctr}(m_1,...,m_r):=&(c_1,...,c_r)
\end{aligned}$$
Der CTR-Modus definiert ein synchrones additives Stromverschlüsselungsverfahren (siehe \ref{synchron additive Stromverschlüsselung}).
Die Menge der $z_i=E_k(Ctr\boxplus(i-1))$ definiert hierbei den Schlüsselstrom.\\
\end{aligned}$$
Der CTR-Modus definiert ein synchrones additives Stromverschlüsselungsverfahren (siehe \ref{synchron additive Stromverschlüsselung}).
Die Menge der $z_i=E_k(Ctr\boxplus(i-1))$ definiert hierbei den Schlüsselstrom.\\
Aufgrund dessen ist die Entschlüsselungsfunktion $D$ gleich der Verschlüsselungsfunktion $E$:
$$D-CTR_{k,Ctr}(c_1,...,c_r)=E-CTR_{k,Ctr}(c_1,...,c_r)$$
\includegraphics{CTR.png}
\includegraphics{CTR.png}
\subsection{OFB (Output Feedback)}\label{OFB}
Bei der Konstruktion im OFB-Modus handelt es sich um ein synchrones Stromverschlüsselungsverfahren (siehe \ref{synchrone Stromverschlüsselung})
Hierbei wird die Ausgabe der Verschlüsselungsfunktion jeweils als Eingabe für die nächste Verschlüsselungsfunktion genutzt:\\
\includegraphics{OFB.png}\\
\subsubsection{OFB-8$n$}
bei dieser Variante des des OFB-Modus werden immer nur $n\in\mathbb{N}$ Bytes des verschlüsselten Blocks in der XOR-Verknüpfung genutzt.
Der Rest des Klartextblocks wird in den folgenden Schritten verschlüsselt.
$n$ darf hierbei maximal so groß wie die Blocklänge $l$ der Verschlüsselungsfunktion $E$ sein.
\subsection{CFB (Cipher-Feedback)}
Der CFB-Modus hat viele Ähnlichkeiten mit dem OFB-Modus (siehe \ref{OFB}).
Allerdings wird hierbei immer der verschlüsselte Block als Eingabe für die jeweils nächste Verschlüsselungsfunktion genutzt.
Anders als beim OFB-Modus handelt es sich beim CFB-Modus aufgrund der Nutzung der Geheimtextblöcke nicht um eine synchrone Stromverschlüsselung.\\
\includegraphics{CFB.png}
\subsubsection{CFB-8$n$}
Diese Sonderfunktion des CFB-Modus stellt das Pendant zum OFB-8$n$-Modus im OFB-Modus (siehe \ref{OFB}) dar.
\section{Konstruktionsprinzipien von Blockverschlüsselungsverfahren}
Alle Blockverschlüsselungsverfahren führen innerhalb des jeweiligen Blocks Permutationen aus.
Diese Permutationen werden in Schleifen (Runden) angewandt.
Die Permutationen können in folgende elementare Operationen zusammengefasst werden:
\begin{itemize}
\item \textit{Transpositionen} von Bitwerten innerhalb eines Blocks
\item \textit{Substitution} von Werten innerhalb kleinerer Teilblöcke.
Hierbei handelt es sich um eine Abbildung, welche durch eine Rechenvorschrift oder eine Wertetabelle gegeben werden kann.
Wertetabellen werden in diesem Zusammenhang auch als \textit{S-Boxen} bezeichnet.
\end{itemize}
Zudem findet der Schlüssel $k$ ebenfalls eine Berücksichtigung.
Aus ihm werden Rundenschlüssel $k_i$ mit $i\in\{1,...,r\}$ abgeleitet, welche bei jeder Runde mit in die Berechnung einfließen.
Bei einer Entschlüsselung wird das durch die Runden beschriebene Verfahren einfach rückwärts angewandt.
\section{DES und Tripple-DES}
Das einfach DES wurde 1977 veröffentlicht und 2005 zurückgezogen.
Sowohl die Blöcke als auch die Schlüssel setzten sich jeweils aus 8 Bytes zusammen:
$$\begin{aligned}
\mathscr M=&({\mathbb{Z}_2}^8)^8=\{(m_1,...m_8)\mid m_i\in{\mathbb{Z}_2}^8\}\\
\mathscr K=&\{(k_1,...k_8)\mid k_i\in{\mathbb{Z}_2}^8,\text{parity}(k_i)=1\}\subseteq ({\mathbb{Z}_2}^8)^8
\end{aligned}$$
Die Parität ist definiert durch:
$${\mathbb{Z}_2}^8\rightarrow\mathbb{Z}_2 \hspace{5mm} \text{parity}\left(\sum_{i=0}^7 b_i\cdot 2^i\right)=\left(\sum_{i=0}^7 b_i\right)\mod 2$$
Mit anderen Worten: \say{Die Anzahl der 1-Bits im Byte muss ungerade sein}\\
Durch die Parität ist der Wert des achten Bits schon festgelegt.
Aufgrund dessen ist hat der Schlüsselraum eine Bitlänge von $8\cdot 7=56$.
Da dies für moderne PCs mithilfe eines Brute-Force-Angriffs (siehe \ref{brute-force}) in trivialer Zeit zu knacken ist sollte DES nicht mehr verwendet werden.
\subsection{Triple-DES (3DES)}
Beim Triple-DES wird das DES verfahren 3mal hintereinander ausgeführt.
Üblicherweise im EDE-Modus (Encrypt-Decrypt-Encrypt) mit 16Byte langen Schlüsseln.
Dadurch ergibt sich für den Schlüsselraum eine effektive Länge von 112 Bits.
Die Menge der 8-Byte-langen Blöcke und der Schlüsselraum definieren sich wie folgt:
$$\begin{aligned}
\mathscr M=&({\mathbb{Z}_2}^8)^8=\{(m_1,...m_8)\mid m_i\in{\mathbb{Z}_2}^8\}\\
\mathscr K=&\{(k_1,...k_8)\mid k_i\in{\mathbb{Z}_2}^8,\text{parity}(k_i)=1\}^{\color{red}{\mathbf{2}}}
\end{aligned}$$
Die 3-DES Entschlüsselungsfunktion definiert sich durch:
$$E((k^{(1)},k^{(2)},m)) := E_{DES}\left(k^{(1)},D_{DES}\left(k^{(2)},E_{DES}\left(k^{(1)},m \right)\right)\right)$$
\includegraphics[scale=0.8]{3DES.png}

View File

@@ -10,7 +10,7 @@
\includegraphics{Stromverschlüsselung.png}
\section{Synchrone Stromverschlüsselungsverfahren}
\section{Synchrone Stromverschlüsselungsverfahren}\label{synchrone Stromverschlüsselung}
Bei synchronen Stromverschlüsselungsverfahren hängen die Zeichen einer Geheimtextnachricht nicht von den vorherigen ab.
So ist es möglich die einzelnen Zeichen des Klartextes gleichzeitig (synchron) zu verschlüsseln.
Ein Beispiel hierfür sind monoalphabetische Verschlüsselungsverfahren (siehe \ref{monoalphabet}).