In der Erlang crypto Bibliothek gibt es keine aes_cfb_ivec
Funktion. Bedeutet das, dass derselbe IVec
für mehrere Runden verwendet werden sollte? Oder sollte die verschlüsselte Daten aus dem letzten Schritt, wie im Beispiel von "DES im CBC-Modus" am Ende der verlinkten Seite, verwendet werden?
Antwort
Zu viele Anzeigen?Der IV DARF NICHT wiederverwendet werden. Andernfalls würden zwei Pakete, die mit denselben n Bytes beginnen, auch in verschlüsselte Streams mit denselben n Bytes enden. Dies ist ein schwerwiegendes Sicherheitsproblem.
Idealerweise sollte der IV zufällig und gleichmäßig (mit einem kryptographisch starken Generator) ausgewählt werden. Mit CFB können Sie jedoch den letzten verschlüsselten Block des vorherigen Pakets als IV verwenden. Wenn Sie sich das Diagramm im Wikipedia-Artikel ansehen, werden Sie feststellen, dass die Verwendung des letzten Paketblocks als IV für das nächste Äquivalent dazu ist, beide Pakete als zwei Hälften einer großen Nachricht zu betrachten, die in einem Durchlauf verschlüsselt werden (in dieser Hinsicht ist dies äquivalent zur CBC-Verschlüsselung).
(Um es klar zu sagen, ich spreche von CFB-m, wo m die Blockgröße des Algorithmus ist. Bei CFB-x rufen Sie den Blockcipher einmal für jede x Bits des Eingangs auf; CFB-128 für einen 128-Bit-Blockcipher wie AES ist am effizientesten und daher am häufigsten verwendet.)