Was ist der Vorteil von XTS gegenüber dem CBC-Modus (mit Diffusor)?
On November 30, 2020 by adminIch habe einige Probleme, den „Vorteil“ von AES-XTS gegenüber CBC mit Diffusor zu verstehen.
Ich habe etwas über FileVault In diesem Dokument werden die beiden Betriebsmodi XTS und CBC (mit Diffusor) sowie die Vorteile von XTS erwähnt.
Beide Modi verschlüsseln Dateneinheiten fast genauso. Für CBC wird die Sektornummer irgendwie zum Erstellen der IV verwendet, für XTS gibt es einen „Optimierungswert“, der (irgendwie) auch den Blockversatz enthält, sodass jeder Datenblock unabhängig verschlüsselt werden kann (sinnvoll beim Verschlüsseln von Festplatten /). Partitionen). Ich kann den Vorteil von XTS nicht wirklich erkennen.
Jetzt schreiben sie Folgendes über XTS:
Es gibt mehrere Vorteile gegenüber Alternativen wie AES in CBC: Es ist kein Initialisierungsvektor erforderlich (der Optimierungsschlüssel kann aus der Blocknummer abgeleitet werden); Jeder Block wird anders verschlüsselt (da der Optimierungswert unterschiedlich sein wird). und im Gegensatz zu AES-CBC verhindert AES-XTS, dass ein Angreifer ein bestimmtes Bit in einer Dateneinheit ändert, indem jeder AES-Eingang mit einer anderen verschobenen Version des verschlüsselten Tweaks xoriert wird.
Vielleicht vergleichen sie XTS einfach mit CBC (ohne Diffusor) … wenn ja, kennt jemand einen Vorteil von XTS?
Und kann jemand den zweiten Vorteil erklären: „AES- XTS verhindert, dass ein Angreifer ein bestimmtes Bit in einer Dateneinheit ändert, indem jeder AES-Eingang mit einer anderen verschobenen Version des verschlüsselten Tweaks xoriert wird. „?
Kommentare
- Was ' s " Diffusor "? " Die Sektornummer lautet irgendwie " wie? Sie haben ' das Schema nicht klar beschrieben. Wenn der Algorithmus vorhersehbar ist, führt dies zu Schwachstellen und ein unvorhersehbarer Algorithmus ist teuer.
- @CodesInChaos Ich denke, der Verweis bezieht sich auf den verwendeten Elefantendiffusor von Microsoft ' in BitLocker ( download.microsoft.com/download/0/2/3/… – Warnung: PDF wird heruntergeladen ).
- Willkommen bei Cryptography Stack Exchange. Ihre Frage wurde hier migriert, da sie nicht direkt mit der Softwareentwicklung (dem Thema Stapelüberlauf) zusammenhängt und hier mehr zum Thema gehört. Bitte registrieren Sie Ihr Konto auch hier, um eine Antwort kommentieren und akzeptieren zu können.
Antwort
XTS vs. Undiffused CBC. Das Problem hier ist Formbarkeit . Sowohl XTS als auch CBC verhindern, dass ein Angreifer Informationen über verschlüsselte Daten erhält. Es gelingt jedoch keinem vollständig, einen Angreifer daran zu hindern, verschlüsselte verschlüsselte Daten zu manipulieren.
Es ist jedoch wohl einfacher, einen (nicht diffusen) CBC-Chiffretext zu manipulieren, als dies der Fall ist Manipulieren Sie einen XTS-Chiffretext. Nehmen wir an, ein Angreifer weiß zufällig, dass eine Meldung lautet:
„bla bla Gib Alice \ $ 400 … bla bla blah „.
Wenn diese Nachricht mit CBC verschlüsselt wird, kann der Angreifer den Chiffretext so manipulieren, dass er jetzt zu p entschlüsselt wird >
„bla bla! ^% @ ^^ Gib Alice \ $ 800 bla bla bla“
Aus \ $ 400 ist \ $ 800 geworden. Darauf bezieht sich Ihr Zitat zu „AES-XTS verhindert, dass ein Angreifer ein bestimmtes Bit in einer Dateneinheit ändert“. Hier schreibe ich! ^% @ ^^, um anzuzeigen, dass der vorherige 16-Byte-Block nach dem Entschlüsseln zu Kauderwelsch wird und dieser Kauderwelsch außerhalb der Kontrolle des Angreifers liegt.
Verwenden Sie dagegen XTS verhindert diesen Angriff. Der Angreifer kann eine Nachricht beschädigen, indem er einen 16-Byte-Block in zufälligen Kauderwelsch verwandelt. Er kann jedoch nicht den gleichen Grad an Kontrolle haben wie im CBC-Beispiel.
Aber Microsoft hat beschlossen, XTS ohnehin nicht zu verwenden. Der Grund dafür ist, dass die Fähigkeit, einen 16-Byte-Block zu beschädigen, immer noch schädlich sein kann. Hier ist das Zitat aus dem verknüpften Papier dchest:
Beispielsweise könnte es eine Konfigurationsdatei (oder einen Registrierungseintrag) mit einem Wert geben, der bei Festlegung auf 0 eine Sicherheitslücke im Betriebssystem erzeugt. Auf der Festplatte sieht die Einstellung ungefähr so aus wie „enableSomeSecuritySetting = 1“. Wenn der Anfang des Werts auf eine 16-Byte-Grenze fällt und der Angreifer den Klartextwert zufällig sortiert, besteht eine $ 2 ^ {16} $ -Wahrscheinlichkeit, dass die ersten zwei Bytes Der Klartext lautet 0x30 0x00. Dies ist eine Zeichenfolge, die den ASCII-Wert 0 codiert.
(Dieses Zitat bezieht sich auf die LRW-optimierbare Verschlüsselung. Die in XTS verwendete optimierbare XEX-Verschlüsselung hat jedoch das gleiche Problem.
Hinzufügen eines Diffusors. Verwenden Ein Diffusor ist Microsfts Lösung für dieses Problem.Die Idee hier ist, den Klartext vor dem Verschlüsseln zu „mischen“, damit ein Angreifer \ $ 400 nicht in $ 800 ändern kann. Wenn er sich in einen Teil des Chiffretextes einmischt, ändert sich fast der gesamte Klartext, nicht nur kleine Teile davon.
Das hört sich gut an, aber es gibt einen Haken: Niemand weiß tatsächlich, ob der Diffusor von Microsoft tatsächlich sicher ist. Meines Wissens hat er keine veröffentlichten formalen Analysen von Kryptographen erhalten. Dies bedeutet, dass Sie skeptisch sein sollten, sich darauf zu verlassen. Microsoft erkennt dies an:
Nachteilig ist, dass der Diffusor ein neuer unbewiesener Algorithmus ist, der unweigerlich zu Fragen führt. Ohne umfassende öffentliche Prüfung und Analyse eines Algorithmus besteht eine berechtigte Skepsis hinsichtlich seiner Sicherheit. Die Menschen zögern, neuen Algorithmen zu vertrauen. Warum haben wir diese Option überhaupt gewählt? Letztendlich haben wir entschieden, dass dies die bessere Wahl für unser Produkt ist. Der Leistungsgewinn gegenüber den Alternativen war wichtig genug, um die Nachteile eines neuen Diffusoralgorithmus aufzuwiegen. Die Zeit wird zeigen, ob wir die richtige Wahl getroffen haben.
Das Endergebnis. XTS ist weniger formbar als nicht diffundiertes CBC. CBC + Diffusor ist jedoch wahrscheinlich weniger formbar als XTS, zumindest aus praktischen Gründen.
Eine wichtige Seite. Weder CBC noch XTS wurden so konzipiert, dass sie nicht formbar sind. Das Sicherstellen, dass Chiffretexte nicht manipuliert werden, ist ein separates Problem, das mithilfe von MACs (Message Authentication Codes) wie HMAC-SHA256 gelöst werden sollte. Die Gründe, warum MACs normalerweise nicht für Vollplatten-Verschlüsselungsalgorithmen verwendet werden, sind (1) Leistungsprobleme und (2) die Verwendung eines MAC erfordert das Speichern zusätzlicher Informationen im Chiffretext, was das transparente Hinzufügen etwas schwierig macht.
Ein Mittelweg zwischen MACs und Diffusoren wäre die Verwendung eines Wide-Block-Verschlüsselungsmodus wie CMC, EME oder HEH. Sie können sich diese als „eingebauten“ Diffusor vorstellen, der sie nicht formbar macht. Im Gegensatz zum Diffusor von Microsoft verfügen diese Algorithmen über formale Sicherheitsdefinitionen und von Experten überprüfte mathematische Beweise. Sie sind sicher unter der Annahme, dass AES sicher ist. Microsoft hat sich entschieden, diese aufgrund von (1) Leistungsproblemen und (2) Patenten nicht zu verwenden.
Kommentare
- Im Zusammenhang mit der Festplattenverschlüsselung einfach MACs sind nicht ' nicht gut genug. Sie ' benötigen einen Hashtree mit einem authentifizierten Stammverzeichnis.
- Vielen Dank für diese großartige Antwort !!! dies machte alles klar … 5 *****
- Wahrscheinlich wird dies ' nicht funktionieren, aber ' Ist das Problem der Formbarkeit nicht durch zweimaliges Verschlüsseln derselben Daten mit unterschiedlichen Passwörtern und / oder unterschiedlichen Algorithmen gelöst? Anstatt also einen unbewiesenen Diffusor-Algorithmus zu verwenden, sollten Sie das bewährte AES erneut verwenden.
- @Yura Dies hängt davon ab, wie AES verwendet wird (XTS wird beispielsweise normalerweise auf AES aufgebaut). Wenn Sie den CTR-AES-Modus zweimal verwenden, wird das Ergebnis ' nicht weniger formbar (durch Umdrehen eines Bits im Chiffretext wird immer noch das entsprechende Bit im Klartext umgedreht). Wenn Sie den CBC-AES-Modus zweimal verwenden, können Sie immer noch denselben Angriff ausführen, den ich in meiner Antwort erwähnt habe, aber die Länge des unkontrollierten zufälligen " Mülls " wird verdoppelt. Schließlich wäre die Verwendung von AES in einem sicheren " Wideblock " -Modus ohnehin ungefähr so schnell wie jede dieser Lösungen. Dies können Sie auch tun.
- Update: Windows 10 bietet die Option, den XTS-Modus zu verwenden. Noch größeres / schlechteres Update: In Windows 8 hat Microsoft den Diffusor ENTFERNT. Windows 8 Bitlocker hat also ' nicht einmal den Diffusor.
Schreibe einen Kommentar