Ci sono tre componenti che devi capire in qualsiasi utilizzo di codici a blocchi e si applicano esplicitamente qui:
- La primitiva del codice a blocchi. Questo potrebbe essere uno dei tuoi familiari cifrari AES-candidati come, beh, AES, Serpent, Twofish, Blowfish, ...
- La modalità di funzionamento. Usando un codice a blocchi così com'è, blocco per blocco si chiama libro elettronico, ma ci sono altre modalità come la cifratura dei blocchi cifrati e la modalità contatore, con i loro vari vantaggi e svantaggi.
- Lo schema di generazione del vettore di inizializzazione, come essiv che combatte varie tecniche di impronte digitali disponibili agli hacker contro CBC utilizzati per la crittografia del disco.
Quindi quando scegli un'opzione, ad es. aes-cbc-essiv
, in realtà chiedi AES, usato in modalità CBC con IV crittografato basato su un identificatore per blocco, mentre aes-xts-plain
usa AES in modalità XTS con semplici IV vecchi generati da alcune informazioni per blocco.
Si riduce a se ci si fida che XTS abbia una resistenza sufficiente allo sbiancamento (che combatte ESSIV) cotto nella modalità di crittografia. In questa fase, XTS è una modalità più moderna con maggiori vantaggi tecnici, ma ha subito meno test crittografici rispetto a CBC.
Un punto da notare con XTS, da wikipedia:
Because of the splitting, users wanting AES 256 and AES 128 encryption will need to choose key sizes of 512 bits and 256 bits respectively.
È necessario scegliere la cura generando dimensioni della chiave con questa modalità in modo tale che ogni blocco utilizzi una chiave della dimensione di bit desiderata. Non ho guardato le informazioni di LUKS per vedere come, o cryptsetup, si dividono le chiavi; questo potrebbe essere qualcosa che desideri fare per assicurarti di avere il giusto livello di sicurezza che desideri. Come tale, seguendo la tua guida, è stata utilizzata la crittografia a 256 bit per blocco (con la chiave 512 divisa in due parti).