Cryptography Reference
In-Depth Information
vanten Teils einer Verschlüsselung (danach fehlt nur noch eine Exklusiv-oder-
Verknüpfung mit dem Klartext).
Klartext
IV
Block 1
Block 2
Block 3
Block 4
Block 1
Block 2
Block 3
Block 4
Geheimtext
Abb. 19-4
Im CFB-Modus wird die Verknüpfung aus Klartextblock und einem Zwischenergebnis zum
Geheimtextblock und zum Zwischenergebnis für den neuen Block.
Der wesentliche Unterschied zwischen OFB und CFB besteht darin, dass beim
CFB-Modus jeder Geheimtextblock von den vorhergehenden abhängig ist, beim
OFB-Modus dagegen nicht. Aus diesem Unterschied ergibt sich sowohl der wich-
tigste Vorteil als auch der wichtigste Nachteil von CFB gegenüber OFB.
Der wichtigste Vorteil: Beim CFB-Modus kann Bob jeden beliebigen Geheim-
textblock einer Nachricht entschlüsseln, sofern er den vorhergehenden Geheim-
textblock kennt. Dies bedeutet, dass Bob bei der Entschlüsselung wahlfreien
Zugriff auf jeden Block hat. Beim OFB-Modus muss Bob zur Entschlüsselung
eines Blocks dagegen für jeden vorhergehenden Block der Nachricht eine Ver-
schlüsselung der Zustandsvariablen durchführen.
Der wichtigste Nachteil: Ein falsches Bit im Geheimtext richtet im CFB-
Modus mehr Schaden an als im OFB-Modus. Neben einem falschen Bit im Klar-
text ergibt sich in diesem Fall ein kompletter Block, der zerstört wird. CFB
kommt aus diesem Grund vor allem in Kommunikationsverbindungen zum Ein-
satz, in denen Übertragungsfehler selten sind. Ansonsten ist der Einsatzbereich
ähnlich wie beim OFB-Modus.
Der CFB-Modus lässt sich nach folgendem Schema abwandeln (
n
sei die
Länge eines Nachrichtenblocks
m
i
;
n
sei kleiner als die Blocklänge;
s
i
sei ein
128-Bit-Wert): Alice verschlüsselt zunächst den Initialisierungsvektor
s
0
und
exklusiv-oder-verknüpft das Ergebnis mit dem
n
Bit langen Klartext. Dann gene-
riert sie
s
1
, indem sie den Inhalt von
s
0
um
n
Bit nach rechts schiebt (wobei die
n
rechtesten Bits gelöscht werden) und die freigewordenen
n
linkesten Bit mit dem
ersten Geheimtextblock auffüllt. Der zweite Geheimtextblock entsteht durch die
Verschlüsselung von
s
1
und einer anschließenden Exklusiv-oder-Verknüpfung mit
dem zweiten Klartextblock.
s
2
berechnet sich aus
s
1
wie
s
1
aus
s
0
.