Es gibt viele, viele Dokumente und Manpages, die Sie durchlesen können, aber ein Dokument, das Sie besonders interessieren könnte, ist die LUKS-Spezifikation für On-Disk-Formate (PDF).
Anhang B (der sich natürlich dem Ende nähert) sagt:
Cipher- und Hash-Spezifikationsregister
Auch wenn der Chiffre-Name und Chiffre-Modus Strings nicht durch einen LUKS Betrieb ausgelegt ist, müssen sie die gleiche Bedeutung für alle Implementierungen müssen erreichen Kompatibilität zwischen verschiedenen LUKS-basierten Implementierungen. LUKS muss sicherstellen, dass das darunterliegende Chiffriersystem den Chiffrennamen und die Chiffre-Modus-Zeichenfolgen verwenden kann. Da diese Zeichenfolgen möglicherweise nicht immer systemeigen sind, muss das LUKS diese möglicherweise in einer geeigneten Weise abbilden.
Gültige Verschlüsselungsnamen sind in Tabelle 1 aufgeführt.
Gültige Verschlüsselungsmodi sind in Tabelle 2 aufgeführt. Laut Vertrag müssen Verschlüsselungsmodi, die IVs und Tweaks verwenden, mit dem All-Zero-IV / Tweak beginnen. Dies gilt für alle Aufrufe an die Verschlüsselungs- / Entschlüsselungsprimitive, insbesondere beim Umgang mit Schlüsselmaterial. Ferner schneiden diese IVs / Tweaks-Chiffre-Modi den Chiffrenstrom normalerweise in unabhängige Blöcke, indem Tweaks / IVs an den Sektorengrenzen neu gesetzt werden. Die IV / Tweak-Anforderung für alle Nullen für den ersten verschlüsselten / entschlüsselten Block entspricht der Anforderung, dass der erste Block auf Sektor 0 festgelegt ist.
Tabelle 3 listet gültige Hash-Spezifikationen für das Hash-Spezifikationsfeld auf. Eine kompatible Implementierung muss nicht alle Verschlüsselungs-, Verschlüsselungsmodus- oder Hash-Spezifikationen unterstützen.
Tabelle 1: Gültige Verschlüsselungsnamen
- aes - Advanced Encryption Standard - FIPS PUB 197
- twofish - Twofish: Eine 128-Bit-Blockchiffre - http://www.schneier.com/paper-twofish-paper.html (siehe unten)
- Schlange - http://www.cl.cam.ac.uk/~rja14/serpent.html
- cast5 - RFC 2144
- cast6 - RFC 2612
Tabelle 2: Gültige Verschlüsselungsmodi
- ecb - Die Verschlüsselungsausgabe wird direkt verwendet
- cbc-plain - Die Chiffre wird im CBC-Modus betrieben. Die CBC-Verkettung wird in jedem Sektor geschnitten und mit der Sektornummer als Anfangsvektor neu initialisiert (in 32-Bit und in Little-Endian konvertiert). Dieser Modus ist in [Fru05b], Kapitel 4 angegeben.
- cbc-essiv: hash - Die Chiffre wird im ESSIV-Modus mit Hash zum Generieren des IV-Schlüssels für den Originalschlüssel betrieben. Wenn Sie beispielsweise sha256 als Hash verwenden, lautet der Chiffre-Modus "cbcessiv: sha256". ESSIV ist in [Fru05b], Kapitel 4 angegeben.
- xts-plain64 - http://grouper.ieee.org/groups/1619/email/pdf00086.pdf, plain64 ist eine 64-Bit-Version des einfachen Anfangsvektors
Tabelle 3: Gültige Hash-Spezifikationen
- sha1 - RFC 3174 - US-Secure-Hash-Algorithmus 1 (SHA1)
- sha256 - SHA-Variante gemäß FIPS 180-2
- sha512 - SHA-Variante gemäß FIPS 180-2
- ripemd160 - http://www.esat.kuleuven.ac.be/~bosselae/ripemd160.html (siehe unten)
Anmerkung des Herausgebers: Das obige wurde aus der Spezifikation übernommen. Nach dem Schreiben haben sich die URLs dieser Dokumente geändert:
- Twofish: Eine 128-Bit-Blockchiffre (neue URL)
- Die Hash-Funktion RIPEMD-160 (neue URL)