finished the basic Blockverschlüsselungs-Betriebs-Modi (weiter in Skrip 2 Seite 32(38))

This commit is contained in:
2020-09-14 17:35:52 +02:00
parent 3422854aff
commit b207012844
10 changed files with 95 additions and 20 deletions

View File

@@ -35,7 +35,7 @@
Da diese Modus anfällig für Wörterbuchangriffe ist wird häufig ein Nonce-Wert verwendet, der jeweils mit dem Klartextblock addiert ($\oplus$) wird:\\
\includegraphics{ECB_Nonce.png}
\subsection{CBC (Cipher Block Chaining)}
\subsection{CBC (Cipher Block Chaining)}\label{CBC}
Der CBC-Modus ist eine spezielle Form des ECB-Modus, bei dem der errechnete Geheimtextblock als Nonce-Wert für die Verschlüsselung des nächsten Blocks verwendet wird.
Hierbei wird der erste Nonce-Wert $c_0$ durch einen Initialisierungsvektor $IV\in\mathscr M$ gegeben.
$$\begin{aligned}
@@ -48,4 +48,38 @@
m_i :=&D_k(c_i)+c_{i-1}\\
D_{k,IV}(c_1,...,c_r):=&(m_1,...,m_r)
\end{aligned}$$
\includegraphics{CBC_dec.png}
\includegraphics{CBC_dec.png}
\subsection{CBC-CS (Chiphertext Stealing for CBC Mode)}
Der CBC-CS-Modus wird auch als CTS-Modus (Chiphertext Stealing Mode) bezeichnet.
Dieser Modus basiert auf dem CBC-Modus (siehe \ref{CBC}), erlaubt aber eine Verschlüsselung von Nachrichten mit beliebiger Länge (ohne Padding).
Um das Padding zu umgehen gibt es mehrere Varianten:
\subsubsection{CBC-CS1}
Bei der Variante 1 der CBC-CS-Verschlüsselung wird der letzte Block $m^*_r$ der Nachricht mit 00-Bytes auf die Blocklänge aufgefüllt (00-Padding).
Anschließend wird die Nachricht inkl. dem gepaddeten Block $m_r$ mit dem CBC-Verfahren (siehe \ref{CBC}) verschlüsselt.
Um wieder auf die ursprüngliche Länge der Nachricht zu kommen werden aus dem vorletzten Block $c_{r-1}$ des Geheimtextes die gleiche Anzahl Bytes entfernt, die zu $m^*_r$ hinzugefügt wurden.
Hierdurch ergibt sich die Geheimtextnachricht $c_1,...,c_{r-2},c^*_{r-1},c_r$, die die gleiche Länge wie $m$ hat.\\
Wenn die Länge der Nachricht $m$ ein Vielfaches des Blocklänge $l$ ist wird das normale CBC-Verschlüsselungsverfahren angewandt.
\subsubsection{CBC-CS2}
Bei der Variante 2 der CBC-CS-Verschlüsselung wird auf die gleiche Weise vorgegangen, wie bei Variante 1.
Allerdings werden, \textbf{falls} ein Padding notwendig ist nach der Verschlüsselung und dem Stealing die letzten beiden Blöcke vertauscht.
$$E-CBC-CS2_{k,IV}(m_1,...,m_{r-1},m^*_r) := (c_1,...,c_r,c^*_{r-1})$$
Wenn die Länge der Nachricht $m$ ein Vielfaches des Blocklänge $l$ ist wird das normale CBC-Verschlüsselungsverfahren angewandt.
\subsubsection{CBC-CS3}
Die Variante 3 der CBC-CS-Verschlüsselung unterscheidet sich nur darin von der Variante 2, dass immer die letzten beiden Blöcke vertauscht werden.
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:
$$\begin{aligned}
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.\\
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}

View File

@@ -45,7 +45,7 @@
\includegraphics{additive zustandsabhängige Stromverschlüsselung.png}
\subsubsection{Synchrone additive Stromverschlüsselungsverfahren}
\subsubsection{Synchrone additive Stromverschlüsselungsverfahren}\label{synchron additive Stromverschlüsselung}
eine additive Stromverschlüsselung lässt sich synchron durchführen, falls die Übergangsfunktion $s$ nicht von den Zeichen des Klartextes abhängt.
$$\sigma_{i+1}=s(\sigma_i) \text{ mit } s:\mathscr{S}\rightarrow\mathscr{S}$$
Hierdurch definiert sich der Schlüsselstrom: