La doppia crittografia aumenterà la sicurezza di cipher contro bruteforce?

10

Supponiamo che abbia una funzione encrypt(mes,key) dove mes è il messaggio e key è la chiave. La lunghezza della chiave è 64 bit. Ultimo ma non meno importante: supponiamo che l'unico modo per rompere il mio cifrario sia un attacco a forza bruta.

Se utilizzo double_encrypt(mes,key1,key2) = encrypt(encrypt(mes,key1),key2)) , la definizione di double_encrypt() significa che l'unico modo per rompere double_encrypt() è quello di forzare una chiave a 128 bit?

Mi è stato detto che non è così, ma non riesco a inventare alcun attacco con prestazioni migliori di una semplice forza bruta a 128 bit.

    
posta Tomáš Šíma 08.03.2013 - 09:02
fonte

1 risposta

19

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.

    
risposta data 08.03.2013 - 13:24
fonte

Leggi altre domande sui tag