Nei codici a blocchi (ad es. AES), i dati vengono divisi in piccoli blocchi e ciascun blocco di dati viene elaborato in sequenza. Ciò consente di crittografare o decodificare un'enorme quantità di dati senza consumare molta RAM.
- Carica un blocco di testo in chiaro nella memoria.
- Criptalo.
- Salva.
- Passa al blocco successivo e ricomincia.
E per decodificare:
- Carica un blocco di testo cifrato in memoria.
- Decrittalo.
- Utilizza / salva.
- Passa al blocco successivo e ricomincia.
In questo schema, è facile crittografare o decrittografare i blocchi a caso. Sfortunatamente, questo è insicuro.
I codici a blocchi vengono eseguiti in una particolare modalità di funzionamento . La modalità più semplice (quella che ho appena descritto) si chiama ECB o Electronic Code Book. Ogni blocco viene elaborato in modo completamente indipendente, consentendo di decifrare ciascun blocco in modo indipendente, come abbiamo visto sopra. Sfortunatamente, questo porta ad alcuni seri problemi di sicurezza, dove i pattern nel testo in chiaro appaiono nel testo cifrato.
La prima immagine è in chiaro, la seconda è crittografata con un codice a blocchi in modalità ECB:
Altre modalità risolvono questo problema concatenando i blocchi usando determinate operazioni. Ciò causa la dispersione dei pattern:
Lamaggiorpartedellemodalitàoperative(ades. Cipher-Block Chaining ) richiedono il precedente blocco per rimanere in memoria. Tuttavia, poiché una dimensione di blocco normale è di soli 32 byte (256 bit) non richiede molta memoria per mantenerla. Tuttavia, significa che il blocco ogni finché il blocco richiesto non deve essere elaborato per primo. Questo ovviamente non è pratico per la crittografia del disco, perché per leggere il settore del disco 100,001, dovremmo leggere e decifrare tutti i 100.000 blocchi precedenti.
TrueCrypt utilizza XTS , una speciale modalità di funzionamento progettata specificamente per i dispositivi di archiviazione. Ciò consente ai blocchi (o alle loro brevi sequenze) di essere decrittografati completamente separatamente, senza perdere la sicurezza fornita dalle modalità non ECB come CBC. Ciò significa che puoi decodificare facilmente i file sul disco senza dover decifrare tutto il resto, evitando al contempo i problemi di sicurezza di ECB.