Skripte DHBW

Vorlesungsskripte aus dem DHBW-Studium

Wichtige kryptographische Begriffe und Konzepte

vom 26.03.2018


Inhaltsverzeichnis

Was ist Kryptologie?

Kryptologie ist eine Wissenschaft, die sich mit Methoden der Verschlüsselung und damit verwandten Verfahren befasst. Kryptologen sind ausgebildete High-End-Mathematiker.

Kryptologie
Kryptographie
Kryptoanalysis

Kryptographie bezeichnet den Zweig der Kryptologie, der sich mit der Erstellung und dem Design kryptographischer Algorithmen befasst. In der Kryptoanalyse geht es um das nicht-autorisierte Brechen der Verschlüsselungen.

Der Kryptologie liegt ein einfaches Kommunikationsmodell zugrunde:

Alice und Bob wollen vertraulich kommunizieren, d.h. eine Nachricht, die Alice sendet, soll nur von Bob gelesen werden können (und umgekehrt).

Ein Angreifer heißt in diesem Modell Eve, deren Ziel es ist, die Kommunikation zu beeinflussen.

Anforderungen an kryptographische Systeme

Bei der Kryptographie geht es um folgende wesentliche Punkte:

Weitere Begriffe

Vorstellbare Klausuraufgaben:

Datenschutz und Datensicherheit

Datenschutz

“Je nach Betrachtungsweise wird Datenschutz verstanden als Schutz vor missbräuchlicher Datenverarbeitung, Schutz des Rechts auf informationelle Selbstbestimmung, Schutz des Persönlichkeitsrechts bei der Datenverarbeitung und auch Schutz der Privatsphäre.”

Definition Datenschutz von Wikipedia (Quelle)

Der Datenschutz behandelt den Umgang mit personenbezogenen Daten. Hier geht es um die Frage, ob personenbezogene Daten überhaupt erhoben werden dürfen und / oder verarbeitet / anonymisiert werden.

Datensicherheit

“Als Informationssicherheit bezeichnet man Eigenschaften von informationsverarbeitenden und -lagernden (technischen oder nicht-technischen) Systemen, die die Schutzziele Vertraulichkeit, Verfügbarkeit und Integrität sicherstellen. Informationssicherheit dient dem Schutz vor Gefahren bzw. Bedrohungen, der Vermeidung von wirtschaftlichen Schäden und der Minimierung von Risiken.”

Definition Datensicherheit von Wikipedia (Quelle)

Datensicherheit versucht, die schon vorhandenen Daten (ob personenbezogen oder nicht) in einem informationstechnischen System zu schützen / unzugänglich zu machen.

Klartext und Chiffrierung

Definition: Der Klartext (engl. cleartext oder plaintext) ist die Nachricht, die durch ein geeignetes Verfahren in eine Form transformiert wird, dass eine Informationsentnahme durch eine dritte Partei nicht möglich ist.

Es gibt zwei grundlegende Verfahren, eine Nachricht vor Informationsentnahme zu schützen:

Das Verfahren, einen Klartext in eine Form zu transformieren, dass die Informationsentnahme nicht möglich ist, heißt Verschlüsselung oder Chiffrierung. Eine verschlüsselte Nachricht heißt Chiffretext.

Anmerkung: Kodierung hat eine andere Bedeutung, nämlich Umwandlung in eine andere Form, damit sie geeignet verarbeitet werden kann.

Die Umkehrung heißt Entschlüsselung oder Dechiffrierung.

Üblicherweise verwenden heutige kryptographische Verfahren einen Schlüssel KK, das ist ein besonderer Wert aus einem Schlüsselraum.

Grundlegendes Szenario

Chiffretext
Klartext
Verschlüsselung
Entschlüsselung
Klartext
K

Sender und Empfänger benötigen den gleichen Schlüssel KK zum Ver- / Entschlüsseln (daher symmetrische Verschlüsselung).

Probleme bei symmetrischen Verfahren

Symmetrische Systeme haben (alle) drei grundsätzliche Probleme:

  1. Key Exchange Problem
    • Der Schlüssel KK muss auf sicherem Weg von Alice zu Bob gelangen.
  2. Key Management Problem
    • Bei nn Parteien: Wieviele KKs werden benötigt?
    • n(n1)2\rightarrow \frac{n (n - 1)}{2}
    • Wird für jede Sitzung ein eigener Schlüssel verwendet oder für alle der Gleiche?
  3. Mit symmetrischen Verfahren ist es nicht möglich, eine digitale Signatur zu realisieren. Es gibt kein eindeutiges Identifikationsmerkmal für den Sender einer Nachricht.
Alice
Bob
3. Partei (= Trust)

Asymmetrische Verfahren

Public-Key Kryptographie oder asymmetrische Verschlüsselung

Das funktioniert so:

Szenario 1: Alice will Bob eine vertrauliche Nachricht zukommen lassen (ohne Key-Exchange)

  1. Bob erzeugt zwei Schlüssel KprivK_{\text{priv}} und KpubK_{\text{pub}}
    • KprivBK_{\overset{B}{\text{priv}}} ist nur Bob bekannt.
    • KpubBK_{\overset{B}{\text{pub}}} kann veröffentlicht werden.
  2. Alice besorgt sich KpubBK_{\overset{B}{\text{pub}}} von Bob.
  3. Alice verschlüsselt den Klartext mit Bobs KpubBK_{\overset{B}{\text{pub}}}.
    • \rightarrow Chiffretext
  4. Chiffretext geht an Bob (Bedingung: DKpubB(EKpubB(M))MD_{K_{\overset{B}{\text{pub}}}} (E_{K_{\overset{B}{\text{pub}}}} (M)) \ne M
    • Die Entschlüsselung darf mit dem Public-Key von Bob nicht möglich sein.
  5. Bob entschlüsselt das Chiffrat mit seinem KprivBK_{\overset{B}{\text{priv}}}, den nur er hat
    • \rightarrow Klartext

DKprivB(EKpubB(M))=M D_{K_{\overset{B}{\text{priv}}}} (E_{K_{\overset{B}{\text{pub}}}} (M)) = M

Nur mit dem privaten Schlüssel KprivBK_{\overset{B}{\text{priv}}} von Bob darf die Entschlüsselung möglich sein.

Somit ist das Key-Exchange Problem gelöst, da ein Schlüssel ausreicht (KpubBK_{\overset{B}{\text{pub}}}), mit dem beliebig viele Parteien vertraulich mit Bob kommunizieren können.

In der Praxis: Public-Key-Verfahren sind etwa 1000x langsamer als symmetrische Verfahren.

Man verwendet daher sogenannte Hybrid-Verfahren.

Die Public-Key-Verfahren werden dabei genutzt, um zwischen Sender und Empfänger einen Sitzungsschlüssel auszutauschen; die Nutzdaten werden dann symmetrisch verschlüsselt, da Sender und Empfänger einen gemeinsamen Schlüssel haben.

Szenario 2: Digitale Signatur, Alice will Bob ein signiertes Dokument zukommen lassen.

  1. Alice erzeugt ein Schlüsselpaar (KprivA,KpubAK_{\overset{A}{\text{priv}}}, K_{\overset{A}{\text{pub}}}) (Sender).
  2. Alice verschlüsselt den Klartext mit ihrem KprivAK_{\overset{A}{\text{priv}}} (den nur Alice hat)
    • \rightarrow Chiffrat
    • Idee: DKpubA(EKprivA(M))=MD_{K_{\overset{A}{\text{pub}}}} (E_{K_{\overset{A}{\text{priv}}}} (M)) = M
  3. Chiffrat geht an Bob.
  4. Bob besorgt sich KpubAK_{\overset{A}{\text{pub}}} und dechiffriert das erhaltene Chiffrat.
  5. Entsteht Klartext, dann ist auch für eine neutrale dritte Partei gezeigt, dass Alice die Nachricht verfasst hat.

In der Praxis geht das etwas anders:

Alice
Klartext
Hash-Algorithmus
Hashwert (Message Digest)
Klartext (signiert)

Der Hash-Algorithmus erzeugt eine Prüfziffer (180180 Bit), die klartext-abhängig ist und sich ändert, falls die Nachricht manipuliert wurde. Damit garantiert der Hashwert die Integrität, d.h. das ist das Instrument, um zu prüfen, ob der Klartext während der Übertragung manipuliert wurde.

Block- und Strom-Chiffren

Sowohl symmetrische als auch asymmetrische Verfahren können in Form von Block-Chiffre oder Strom-Chiffre eingesetzt werden.

Bei Block-Chiffren werden Bitblöcke, z.B. 6464-Bit, in einem Vorgang in einen 6464-Bit Chiffreblock verschlüsselt (Klartext \rightarrow aufteilen in nn 6464-Bit Blöcke).

Bei Strom-Chiffren (bspw. bei WLAN) wird Zeichen für Zeichen verschlüsselt (bit- / byteweise).

Grundsätzliche kryptographische Operationen

Es gibt in den meisten kryptographischen Systemen zwei grundsätzliche Operationen, wie Klartext in Chiffretext transformiert wird.

Moderne Verfahren benutzen eine Vielzahl von Substitutions- bzw. Transpositionsoperationen.


Kerckhoff’sches Prinzip

In der Kryptographie wird in der Regel streng auf das KERCKHOFFs-Prinzip geachtet (1883).

Die Sicherheit eines Kryptosystems darf niemals von der Geheimhaltung des Verschlüsselungsalgorithmus abhängen, sondern ausschließlich von der Geheimhaltung des Schlüssels.

Monoalphabetische Chiffren

Shift-Chiffre

Die Shift-Chiffre ist eine sogenannte monoalphabetische Chiffre, d.h. das Klartextalphabet wird genau auf ein Chiffretextalphabet abgebildet. Dies hat zur Folge, dass die statistische Struktur des Klartextes erhalten bleibt.

Affine Chiffre

Definition: Sei {M}={C}=Z26\{M\} = \{C\} = \mathbb{Z}_{26} und {K}={(α,β)Z26×Z26  ggT(α,26)=1}\{K\} = \{(\alpha, \beta ) \in \mathbb{Z}_{26} \times \mathbb{Z}_{26} \ | \ \text{ggT}(\alpha, 26) = 1\}.

Verschlüsselung:
A(α,β):Z26Z26A_{(\alpha, \beta)}: \mathbb{Z}_{26} \rightarrow \mathbb{Z}_{26}
xy=A(α,β)(x)x \mapsto y = A_{(\alpha, \beta)}(x)
=(αx+β)mod26\qquad \quad = (\alpha \cdot x + \beta) \mod{26}

Die Entschlüsselung ist:
A(α,β)1:Z26×Z26A_{(\alpha, \beta)}^{-1}: \mathbb{Z}_{26} \times \mathbb{Z}_{26}
yx=A(α,β)1(y)mit Klartextzeichen xy \mapsto x = A_{(\alpha, \beta)}^{-1}(y) \quad \text{mit Klartextzeichen} \ x
=(α1(yβ))mod26\qquad \quad = (\alpha^{-1} (y - \beta)) \mod 26

mit α1α1mod26\alpha^{-1} \cdot \alpha \equiv 1 \mod 26.

Anmerkungen:

  1. Die Shift-Chiffre ist in der affinen Chiffre enthalten.
  2. Schlüsselraum: Es gibt 1226=31212 \cdot 26 = 312 verschiedene Schlüssel, da ϕ(26)=12\phi(26) = 12.
  3. Monoalphabetisch \rightarrow Statistische Struktur bleibt erhalten.

Polyalphabetische Chiffren

Die Vigenére-Chiffre

Die Shift- und die affine Chiffre sind Beispiele von monoalphabetischen Chiffren, d.h. mit der Wahl eines Schlüssels wird jedes Klartextzeichen auf genau ein Chiffretextzeichen abgebildet (Eigenschaft, dass die statistische Struktur des Klartextes auf den Chiffretext übertragen wird).

Die Vigenére-Chiffre (1586 veröffentlicht) galt lange als nicht brechbar, bis in den 1860er Jahren Friedrich Kasicki und Charles Babbage daherkamen.

Definition: Sei mm eine positive ganze Zahl und
M=C=K=(Z26)m=Z26×Z26××Z26 M = C = K = (\mathbb{Z}_{26})^m = \mathbb{Z}_{26} \times \mathbb{Z}_{26} \times \ldots \times \mathbb{Z}_{26}

Für einen festen Schlüsselwert K=(K1,,Km)\vec{K} = (K_1, \ldots, K_m) ist
Vk:Z26Z26 V_k: \mathbb{Z}_{26} \rightarrow \mathbb{Z}_{26}

xVk(x) x \mapsto V_k(\vec{x})

Dechiffrierung:
Vk1:Z26Z26V_k^{-1}: \mathbb{Z}_{26} \rightarrow \mathbb{Z}_{26}
y(xk)mod26y \mapsto (\vec{x} - \vec{k}) \mod 26
=[(x1k1)mod26,,(xmkm)mod26]\quad \quad = [(x_1 - k_1) \mod 26, \ldots, (x_m - k_m) \mod 26].

Entschlüsselung: Mit dem gleichen Schlüsselwort einfach abziehen
(xiki)mod26\rightarrow (x_i - k_i) \mod 26

Schlüsselraum: K=262626=26m|K| = 26 \cdot 26 \cdot \ldots \cdot 26 = 26^m mit k=(k1,k2,,km)\vec{k} = (k_1, k_2, \ldots, k_m).

Die Vigenére-Chiffre ist eine polyalphabetische Chiffre, weil durch die Wahl des Schlüssels k=(k1,k2,,km)\vec{k} = (k_1, k_2, \ldots, k_m) (ohne Buchstabenwiederholung) ein Klartextzeichen auf mm mögliche Chiffrezeichen abgebildet wird.

Die HILL-Chiffre

  1. Auswahl eines Schlüssels
    • Wähle eine Zahl, z.B. k=3;k = 3; der Schlüssel ist eine n×mn \times m-Matrix MM, deren Einträge Zahlen mod26\mod 26 sind.
  2. Verschlüsselung
    • Der Klartext wird in Zeilenvektoren aufgeteilt mit Länge nn, d.h. die HILL-Chiffre ist eine Block-Chiffre, bei der Blöcke fester Länge in einem Vorgang verschlüsselt werden.
  3. Dechiffrierung
    • Dazu benötigt man die zu MM inverse Matrix, die wir NN nennen; diese erfüllt:
      MN13×3mod26 M \cdot N \equiv \mathbb{1}_{3 \times 3} \mod 26

Notation: 13×3=(100010001)\mathbb{1}_{3 \times 3} = \begin{pmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \\ \end{pmatrix} (Einheitsmatrix)

Eigenschaften von Block-Chiffren

Eine wichtige Eigenschaft von Block-Chiffren ist die Diffusion (Shannon); d.h. die Änderung eines Klartextzeichens hat zur Folge, dass sich mehrere Chiffrezeichen ändern.

Diese Eigenschaft müssen heutige Block-Chiffren (DES, AES) aufweisen; dadurch wird die statistische Struktur von Klartextblöcken verschleiert.

Mathematische Grundlagen (kurz)

Relativ prime Zahlen

Definition: Zwei Zahlen a,bZa, b \in \mathbb{Z} heißen relativ prim, coprim oder teilerfremd, falls sie keinen Primfaktor gemeinsam haben. Dies ist insbesondere dann der Fall, falls
ggT(a,b)=1 \text{ggT}(a, b) = 1

gilt.

Totientenfunktion

Ein wichtiges Konzept ist die EULER-Funktion oder EULER-Totietennfunktion.

ϕ(n)\phi(n) gibt an, wieviele Zahlen aN,a1a \in \mathbb{N}, a \ge 1 existieren mit a<na < n und ggT(a,n)=1\text{ggT}(a, n) = 1

ϕ(n)\phi(n) gibt des Weiteren an, wieviele coprime Zahlen <n< n existieren.

Es gilt: ϕ(p)=p1\phi(p) = p - 1, falls pp eine Primzahl ist.

Satz: Falls ggT(m,n)=1ϕ(m,n)=ϕ(mn)\text{ggT}(m, n) = 1 \Rightarrow \phi(m, n) = \phi(m \cdot n)

Folgerung: Wenn p,qp, q zwei Primzahlen sind und n=pqn = p \cdot q
ϕ(n)=ϕ(pq)=(p1)(q1)\Rightarrow \phi(n) = \phi(p \cdot q) = (p - 1) \cdot (q - 1).

Kleiner Satz von FERMAT

Falls pp eine Primzahl ist und aa eine positive ganze Zahl, die nicht durch pp geteilt wird, dann gilt
ap1modp1modp a^{p - 1} \mod p \equiv 1 \mod p

Der kleine Satz von FERMAT ist die Grundlage aller Primzahltests; diese prüfen (ohne zu faktorisieren), ob eine Zahl eine Primzahl ist oder nicht.


Falls für irgendwelche zufällig gewählten Zahlen aa der Ausdruck
ap1a a^{p - 1} -a

kein Vielfaches von pp ist, dann ist pp keine Primzahl.


RSA-Algorithmus

Mit diesen Werkzeugen kann man den RSA-Algorithmus durchbrechen.

Dieser lautet:

  1. Man wähle zwei zufällige Primzahlen p,qp, q (512,1024,2048,4096512, 1024, 2048, 4096 Bit) und berechne
    n=pq n = p \cdot q

  2. Berechne ϕ(n)=(p1)(q1)\phi(n) = (p - 1)(q - 1).

  3. Wähle ein ee mit 1<e<ϕ(n), ggT(e,ϕ(n))=11 < e < \phi(n), \ \text{ggT}(e, \phi(n)) = 1.

  4. Berechne dd mit ed1modϕ(n)e \cdot d \equiv 1 \mod \phi(n).

  5. Kpub=(e,n),Kpriv=(d,n)K_{\text{pub}} = (e, n), K_{\text{priv}} = (d, n).

Verschlüsselung: MM geeignet als Zahl codiert M<nM < n
C=Memodn C = M^e \mod n

Entschlüsselung:
M=Cdmodn M = C^d \mod n

DIFFIE-HELLMAN Key-Exchange Verfahren

Dieses Verfahren wurde in der Arbeit “New Directions in Cryptography” vorgestellt und zählt zu den Public-Key Verfahren, erlaubt aber

Generell nutzen Public-Key Verfahren immer sogenannte Trapdoor-Funktionen; das sind Funktionen, die in der einen Richtung einfach sind, die Umkehrung jedoch schwierig bis unmöglich.

RSA: pqschwierigeinfachn=pqp \cdot q \xrightleftharpoons[\text{schwierig}]{\text{einfach}} n = p \cdot q

Eine andere Trapdoor-Funktion ist z.B.
\rightarrow Berechne i=111(xi)=(x1)(x2)(x3)(x11)\displaystyle \prod_{i = 1}^{11} \; (x - i ) = (x - 1) (x - 2) (x - 3) \ldots (x - 11)
  =x1166x10+1925x932670x8\quad \qquad \qquad \qquad \qquad \ \ \, = x^{11} - 66x^{10} + 1925x^9 - 32670x^8
  +35742x739916800x6\quad \qquad \qquad \qquad \qquad \ \ \, \quad + 35742x^7 - 39916800x^6

Das DH-Key-Exchange-Verfahren nutzt den diskreten Logarithmus als Trapdoor-Funktion; d.h. die Sicherheit des DH-Verfahrens hängt davon ab, dass es sehr schwierig (bis unmöglich) ist, diskrete Logarithmen zu berechnen.

Betrachte wieder die Menge Zp={0,1,,p1}\mathbb{Z}_p = \{ 0, 1, \ldots, p - 1 \}. Eine primitive Wurzel einer Primzahl pp ist eine Zahl in Zp\{0}\mathbb{Z}_p \backslash \{ 0 \}, deren Potenzen alle Zahlen von 11 bis p1p - 1 generiert. Ist aa eine primitive Wurzel, dann sind

amodp,a2modp,a3modp,,ap1modp a \mod{p}, a^2 \mod{p}, a^3 \mod{p}, \ldots, a^{p - 1} \mod{p}

alle unterschiedlich und bestehen aus den Zahlen 11 bis p1p - 1 in irgendeiner (wilden!) Reihenfolge.

Das DH-Key-Exchange Kryptosystem

  1. Szenario: Alice und Bob wollen einen gemeinsamen Schlüssel erzeugen, den nur sie kennen, ohne sich zuvor begegnet zu sein.
  2. Alice und Bob einigen sich (öffentlich) auf eine Primzahl qq und eine primitive Wurzel aa ((q,a)(q, a) ist eine Art Public Key).
  3. Geheimer Schlüssel Alice
    Alice wählt eine Zahl XAX_A (XA<qX_A < q) und wird Alice benannt. Alice berechnet
    YA=aXAmodq Y_A = a^{X_A} \mod{q}
    YAY_A geht an Bob.
  4. Geheimer Schlüssel Bob
    Bob wählt eine Zahl XBX_B (XB<qX_B < q) und wird Bob benannt. Bob berechnet
    YB=aXBmodq Y_B = a^{X_B} \mod{q}
    YBY_B geht an Alice.
  5. Alice berechnet K=(YB)XAmodqK = (Y_B)^{X_A} \mod{q}.
  6. Bob berechnet K=(YA)XBmodqK' = (Y_A)^{X_B} \mod{q}.

\rightarrow Da K=KK = K' (gleich), haben Bob und Alice einen gemeinsamen Sitzungsschlüssel.

Key-Exchange Method

ELGAMAL-Kryptosysteme (TAHER ELGAMAL, 1985)

Digitale Signatur

Schlüssel: Wähle eine Primzahl pp mit zwei Zufallszahlen g,xg, x mit g,x<pg, x < p.
Berechne y=gxmodpy = g^x \mod{p}

Kpub=[y,g,p]K_{\text{pub}} = [y, g, p]
Kpriv=[x]K_{\text{priv}} = [x]

Signatur: MM soll signiert werden.
Wähle eine zufällige Zahl kk, so dass kk und p1p - 1 coprim sind, d.h.
ggT(k,p1)=1. \text{ggT}(k, p - 1) = 1.

Berechne
a=gkmodp. a = g^k \mod{p}.

Berechne bb aus
M(xa+kb)mod(p1) M \equiv (xa + kb) \mod{(p - 1)}

Signatur: (a,b)(a, b), kk bleibt geheim.

Bob verifiziert die Signatur wie folgt:
Es muss gelten:
yaabmodp=!gMmodp y^a \cdot a^b \mod{p} \overset{!}{=} g^M \mod{p}

Klartext, der von Alice signiert wird, ist M=10M = 10.
Zum Signieren muss Alice die Zahlen a,ba, b bestimmen:

  1. Alice wählt zufällige Zahl k=5k = 5, ist ok: ggT(5,12)=1\text{ggT}(5, 12) = 1
  2. a=gkmodpa = g^k \mod{p}
       =75mod1311mod13\ \ \ = 7^5 \mod{13} \equiv 11 \mod{13}
  3. Berechne bb aus
    M=(xa+kb)mod(p1)M = (xa + kb) \mod{(p - 1)}
    10=(311+5b)mod1210 = (3 \cdot 11 + 5 \cdot b) \mod{12}
     =(9+5b)mod12\quad \ = (9 + 5 \cdot b) \mod{12}
    15bmod12\iff 1 \equiv 5 \cdot b \mod{12}
    b=5\qquad \rightarrow \underline{b = 5}

An Bob wird gesendet:

Verifikation:
(yaab)modp=!gMmodp\qquad \qquad (y^a \cdot a^b) \mod{p} \overset{!}{=} g^M \mod{p}
links:  (511115)mod13=4mod13\text{links:} \quad \ \ \, (5^{11} \cdot 11^5) \mod{13} = 4 \mod{13}
rechts: 710mod13=4mod13\text{rechts:} \quad \ 7^{10} \mod{13} = 4 \mod{13}
\Rightarrow Beide Terme sind gleich.

Die FEISTEL-Chiffre

von HORST FEISTEL, ~1970 IBM

Die FEISTEL-Chiffre / oder FEISTEL-Netzwerk ist eine Vorlage / Muster für viele symmetrische Block-Chiffren, z.B.

DES, Blowfish, Twofish, CAST, RC5, MARS, ...

Bei der FEISTEL-Chiffre ist die Ver- / Entschlüsselung (fast) identisch, der Unterschied liegt lediglich in der Reihenfolge der Anwendung der sogenannten Rundenschlüssel.

Das Feistel-Netzwerk
Abbildung 1: Aufbau eines Feistel-Netzwerkes (Quelle)

Betriebsmodi von Block-Chiffren

Jede Block-Chiffre kann in verschiedenen Arbeitsmodi eingesetzt werden (NIST FiPS PUB 81 und weitere)

Neu:

Electronic Code Book Mode (ECB)

Jedes nn-Bit Klartextblock wird unabhängig von anderen mit dem gleichen Schlüssel KK verschlüsselt.

ECB Block-Chiffren
Abbildung 2: Verschlüsselung mittels ECB (Quelle)

Cipher Block Chaining Mode (CBC)

Input des Verschlüsselungsalgorithmus ist die XOR-Verknüpfung des letzten Chiffreblocks mit dem Klartextblock. Die Verkettung der Klartextblöcke mit den Chiffretextblöcken führt dazu, dass statistische Eigenschaften des Klartextes nicht auf das Chiffrat übertragen werden.

CBC Block-Chiffre
Abbildung 3: Verschlüsselung mittels CBC (Quelle)

CFB, OFB und CTR dienen dazu, eine Block-Chiffre als Strom-Chiffre zu betreiben.