L'uso dello stesso algoritmo più volte non ti dà necessariamente la maggiore sicurezza che ti aspetti: il motivo è che consente " si incontrano negli attacchi centrali ". Lasciatemi citare una parte dal link di riferimento:
"When trying to improve the security of a block cipher, a tempting
idea is to simply use several independent keys to encrypt the data
several times using a sequence of functions (encryptions). Then one
might think that this doubles or even n-tuples the security of the
multiple-encryption scheme, depending on the number of encryptions the
data must go through.
The Meet-in-the-Middle attack attempts to find
a value using both of the range (ciphertext) and domain (plaintext) of
the composition of several functions (or block ciphers) such that the
forward mapping through the first functions is the same as the
backward mapping (inverse image) through the last functions, quite
literally meeting in the middle of the composed function."
L'algoritmo TripleDES vecchio stile ha fatto il seguente modo:
ciphertext = EK3(DK2(EK1(plaintext))), plaintext = DK1(EK2(DK3(ciphertext)))
dove K1, K2, K3 sono chiavi indipendenti, E è la crittografia e D la funzione di decrittazione.
Ma probabilmente stai cercando cascate per rafforzare l'algoritmo di crittografia.
TrueCrypt fornisce questo implementando le seguenti cascate:
- AES-Twofish
- AES-Twofish-Serpent
- Serpente-AES
- Serpent-Twofish-AES
- Twofish-Serpent
L'idea alla base è che se ci sono dei punti deboli rivelati in futuro, i tuoi dati sono ancora protetti da un secondo (o terzo) algoritmo di crittografia indipendente.
Un'altra tecnica sta proteggendo la chiave casuale nell'intestazione usando un SALE e aumentando il numero di iterazioni in > 1000 (SALT protegge contro gli attacchi dei tavoli arcobaleno aumentando il numero di possibili combinazioni che devi provare in un attacco di forza bruta, mentre aumentando il numero di iterazioni ti protegge rallentando l'algoritmo: devi scorrere tutte le iterazioni in per decifrare l'intestazione: rallentarlo significa avere meno "tentativi" al secondo e la forza bruta è più lunga).
Aggiornamento: (Sulla domanda: "Come si applicano le iterazioni in modo diverso dall'applicare AES più volte?")
Codici di blocco come AES ripetono le loro trasformazioni più volte a seconda delle dimensioni della chiave (i cosiddetti cicli o iterazioni) per aumentare l'entropia della crittografia (10 cicli per chiavi a 128 bit, 14 cicli o iterazioni per chiavi a 256 bit). Questo non è lo stesso che applicare AES più volte, perché i cicli fanno parte dell'algoritmo stesso. Se si implementa l'algoritmo, è possibile aumentare il numero di cicli, ma si noti che si modifica l'implementazione standard se lo si fa.
Una funzione di derivazione chiave come PBKDF2 è definita come segue:
DK = PBKDF2(PRF, Password, Salt, c, dkLen)
Uno dei parametri è c, e specifica il numero di cicli (iterazioni), che è usato per rinforzare l'algoritmo, perché è necessaria una quantità arbitrariamente grande di tempo di calcolo se il parametro c è scelto abbastanza grande. Ma si noti che nello stesso articolo di Wikipedia si nota che uno dei punti deboli di PBKDF2 è che gli attacchi ASIC e GPU possono essere usati per romperlo. Ciò significa che aumentare il numero di iterazioni non garantisce che la forza aumenti automaticamente.
Aggiornamento: Sostituito il vecchio URL di truecrypt.org da quello nuovo ospitato in Svizzera perché gli sviluppatori originali non stanno continuando il loro lavoro.