Ich denke, es ist einfacher, dies in seine Bestandteile aufzuteilen und sie als separate Einheiten zu betrachten: AES und CBC.
AES selbst besteht nicht "im Grunde aus dem XOR-Zusammenfügen von Blöcken des Blocks" - es ist eine viel kompliziertere Angelegenheit. AES ignoriert die Interna für einen Moment und gilt als sicher, da es ohne Kenntnis des Schlüssels praktisch unmöglich ist, den Klartext oder Informationen über den Klartext wiederherzustellen, wenn nur ein verschlüsselter Block vorhanden ist, oder sogar in Situationen, in denen Sie Teile davon erhalten den Klartext und Sie müssen den Rest finden. Ohne den Schlüssel könnte AES genauso gut eine Einwegfunktion sein (und es gibt MAC-Schemata, die darauf angewiesen sind!). Die technischen Details rund um die Sicherheit von AES und ähnlichen Blockchiffren zu diskutieren, ist äußerst aufwändig und kann in einer Antwort nicht behandelt werden. Es genügt jedoch zu sagen, dass Tausende von Kryptographen sich seit fast zwei Jahrzehnten damit befasst haben und niemand etwas entfernt Praktisches gefunden hat Bedingungen eines Angriffs.
Das oben veröffentlichte Diagramm beschreibt CBC. Blockchiffren wie AES sollen sicher sein, um einen Block mit einem geheimen Schlüssel zu verschlüsseln. Das Problem ist, dass wir selten nur einen Block verschlüsseln wollen, sondern einen Datenstrom unbestimmter Länge. Hier kommen Blockmodi wie CBC ins Spiel.
Blockmodi zielen darauf ab, Chiffren für die Verschlüsselung mehrerer Blöcke mit demselben Schlüssel sicher zu machen. Der einfachste Blockmodus ist die EZB, die diesbezüglich keine Sicherheit bietet. Bei der EZB wird jeder Block unabhängig mit demselben Schlüssel verschlüsselt, ohne dass zwischen den Blöcken Daten eingespeist werden. Dadurch werden Informationen auf zwei Arten verloren: Erstens, wenn Sie zwei identische Klartextblöcke haben, erhalten Sie zwei identische Chiffretextblöcke, wenn Sie denselben Schlüssel verwenden. Zweitens erhalten Sie zwei identische Chiffretext-Streams für zwei Verschlüsselungen derselben Nachricht mit demselben Schlüssel. Dies ist ein Problem, da hier Informationen zum Klartext verloren gehen.
CBC löst dieses Problem durch Einführung eines "Kaskaden" -Effekts. Jeder Klartextblock wird mit dem vorherigen Chiffretextblock xoriert, was dazu führt, dass ursprünglich gleiche Klartextblöcke im Verschlüsselungsschritt nicht mehr gleich sind, wodurch keine gleichen Chiffretextblöcke mehr erzeugt werden. Für den ersten Klartextblock gibt es keinen vorherigen Chiffretextblock (Sie haben noch nichts verschlüsselt), und hier kommt die IV ins Spiel. Überlegen Sie sich für einen Moment, was passieren würde, wenn wir anstelle einer IV nur Nullen verwenden würden der -1-te Block (d. h. der imaginäre Chiffretextblock "vor" dem ersten Klartextblock). Während der Kaskadeneffekt dazu führen würde, dass gleiche Klartextblöcke unterschiedliche Chiffretextblöcke erzeugen, würde dieselbe gesamte Nachricht jedes Mal auf dieselbe Weise kaskadieren, was zu einem identischen Chiffretext führt, wenn dieselbe vollständige Nachricht mehrmals mit demselben Schlüssel verschlüsselt wird. Die IV löst dies. Wenn Sie eine eindeutige IV auswählen, sind keine zwei Chiffretexte gleich, unabhängig davon, ob die zu verschlüsselnde Klartextnachricht jedes Mal gleich oder unterschiedlich ist.
Dies sollte Ihnen hoffentlich helfen, zu verstehen, warum die IV nicht funktioniert. Ich muss nicht geheim sein. Das Wissen um die IV bringt nirgendwo einen Angreifer, da die IV nur dazu dient, die Ungleichheit der Chiffretexte sicherzustellen. Der geheime Schlüssel schützt die tatsächlichen Daten.
Um dies noch weiter zu betonen, benötigen Sie nicht einmal die IV, um alle bis auf den ersten Block zu entschlüsseln. Der Entschlüsselungsprozess für CBC funktioniert umgekehrt: Entschlüsseln Sie einen Block mit dem geheimen Schlüssel und xor das Ergebnis mit dem vorherigen Chiffretextblock. Mit Ausnahme des allerersten Blocks kennen Sie den vorherigen Chiffretextblock (Sie haben den Chiffretext), sodass bei der Entschlüsselung nur der Schlüssel bekannt ist. Der einzige Fall, in dem Sie die IV zur Entschlüsselung benötigen, ist der allererste verschlüsselte Block, bei dem der vorherige Chiffretextblock imaginär ist und durch die IV ersetzt wird.