Primo punto: c'è un aumento della sicurezza pratico solo se entrambi gli algoritmi di crittografia, presi da soli, sarebbero indipendentemente vulnerabili alla ricerca esaustiva, cioè utilizzando una chiave troppo piccola. Questo è il problema principale ed è meglio correggerlo. La ricerca esaustiva funziona solo fino alle dimensioni della chiave in modo tale che lo spazio della chiave possa essere enumerato con la tecnologia esistente o prevedibile. Ci sono buone ragioni perché una chiave a 128 bit resiste a tali tentativi. Pertanto, se utilizzi un algoritmo di crittografia decente, non è necessario "raddoppiarlo" . Non esiste un livello di sicurezza oltre "non può romperlo": non puoi non rompere un algoritmo più di "niente affatto".
Gli algoritmi di raddoppiamento o triplicazione sono stati usati nei giorni precedenti per riutilizzare algoritmi precedenti che erano decisamente troppo deboli da soli; l'esempio principale è Triple-DES (alias "3DES"), costruito sopra il DES precedente. DES e il suo spazio chiave a 56 bit sono vulnerabili alla ricerca esaustiva (è è stato fatto ). Come sottolinea @CodesInChaos nel suo commento, il raddoppiamento e la triplicazione non ti danno i tuoi soldi: il doppio DES utilizzerebbe il 112 ma le chiavi, ma non offrirà la sicurezza a 112 bit.
In breve, per il doppio DES, l'hacker crittografa il testo in chiaro noto con il primo DES e tutte le possibili chiavi k 1 (2 56 possibilità), e anche decrittografare il noto testo cifrato con tutte le possibili chiavi k 2 (2 56 possibilità di nuovo), e quindi cercare una corrispondenza nei due set di 2 56 "valori intermedi". La corrispondenza avrà un costo di circa 2 · 56 · 2 56 , cioè di circa 2 63 (questo è il costo di smistare i due set, in modo che le corrispondenze vengono rilevati con una ricerca lineare). Con un tipo di unione , i passaggi di ordinamento e corrispondenza richiedono solo un accesso lineare, quindi compatibile con i dischi rigidi. Stiamo parlando di 2 57 valori a 128 bit (due blocchi di testo in chiaro noti, quindi non ci sarà ambiguità sui tasti), ovvero 2 61 byte, alias 2 milioni di terabyte. Un milione di dischi rigidi è costoso ... ma tecnicamente fattibile, contrariamente alla ricerca di una chiave esaustiva 2 112 .
Pertanto, gli algoritmi di raddoppiamento non apportano molti vantaggi. Tripling aumenta la sicurezza quando si inizia con algoritmi deboli (almeno quando la debolezza è solo circa la dimensione della chiave), ma, ancora una volta, non tanto quanto lo sforzo investito (con 3DES , hai 168 bit di chiave, ma la resistenza è "solo" fino a 2 112 ). Ovviamente, triplicare significa anche dividere la prestazione per tre, che può essere o non essere tollerabile in un dato contesto. Triplicare, quadruplicare ... non risolve altri problemi, come blocchi troppo piccoli (3DES usa ancora i blocchi a 64 bit di DES, il che significa che sorgono problemi seri quando si crittografa circa 2 blocchi 32 vale la pena di dati con una determinata chiave, vale a dire circa 32 gigabyte, che non è molto per gli standard odierni).
È molto meglio iniziare con un algoritmo di crittografia (come AES ) che non ha problemi di ricerca esaustivi per iniziare con, rendendo il doppio o il triplo inutile. L'algoritmo di raddoppiamento (o triplicazione) è come un pegleg : ti aiuta a rimanere in piedi se hai avuto la sfortuna di perdere una gamba; ma, se possibile, è meglio mantenere le tue due gambe biologiche.