Il problema con la semplice regolazione di un algoritmo di crittografia su un altro e la convinzione che tutto sarà in qualche modo "più sicuro" è che se non hai studiato gli algoritmi in dettaglio, non avrai una piena comprensione delle loro debolezze , o sufficiente comprensione degli effetti collaterali di questa operazione. Non è inteso come un insulto, sto semplicemente supponendo che tu non sia un crittanalista e non hai fatto questi studi.
Dai un'occhiata a Triple DES . È stato progettato come sostituto del DES una volta riconosciuto che il DES era troppo debole per resistere agli attacchi di forza bruta in continuo miglioramento. DES ha 8 byte chiavi, quindi logicamente dal momento che DES dovrebbe resistere ad un attacco di forza bruta di 2 ^ 64, il doppio DES dovrebbe resistere ad un attacco di 2 ^ 128. Allora perché usare Triple DES e non solo usare Double DES? Risulta che la stima della forza non è nemmeno vicina alla corretta.
In primo luogo, DES scarta il bit superiore di ogni byte chiave, quindi DES ha una dimensione della chiave di soli 56 bit - 55 bit una volta che si calcola il riflesso XOR. Un utente malintenzionato può archiviare l'output di un attacco di forza bruta sulla prima istanza di DES, quindi attaccare la seconda istanza che corrisponde a uno degli output memorizzati, creando un attacco di tipo "meet-in-the-middle". Ciò si traduce in un attacco di 2 ^ 55 + 2 ^ 55, che è 2 ^ 56. Tutto ciò che funziona per eseguire DES due volte produce un miglioramento in termini di forza.
Quindi Triple DES ovviamente non resiste ad un attacco di 2 ^ 192. 3DES migliora questo a 2 ^ 111 bit di forza, che è ancora molto strong, ma è molto lontano dalla forza implicita di 2 ^ 192.
Non è ovvio che la crittografia dell'output di un passaggio attraverso DES con un'altra passata sia facilmente interrotta, eppure i crittografi lo hanno capito. Potete offrire una strong evidenza che la vostra crittografia a due strati non sia similmente difettosa?
Crypto è difficile perché i byte dall'aspetto casuale che escono da un algoritmo di crittografia assomigliano molto a quelli che sono stati codificati con successo. Ma non esiste un attributo che puoi verificare per sapere se la crittografia è efficace o se è distrutta.
Quindi il consiglio generalmente dato è "non inventare i propri algoritmi crittografici". Inoltre, non è consigliabile inventare i propri protocolli; se devi, hai un sacco di lavoro da fare per dimostrare che sono al sicuro.