Gli algoritmi di crittografia a cascata o in bicicletta aumentano la complessità dell'implementazione e questo è davvero un problema per la sicurezza. La sicurezza intrinseca dell'algoritmo (purché si utilizzino algoritmi pubblicati e ben analizzati, non progetti fatti in casa) è invariabilmente di gran lunga maggiore della sicurezza dell'implementazione: la maggior parte delle implementazioni può perdere vari elementi, inclusi i bit della chiave segreta, attraverso il tempo di esecuzione, l'accesso alla memoria cache o il comportamento insufficiente quando incontri dati errati.
Se hai coperto tutti i rischi di implementazione, allora diventa il momento di preoccuparsi degli algoritmi stessi; a quel punto, sei un crittografo esperto e sai meglio di fare affidamento su trucchi irrazionali come il collegamento a cascata o il raddoppio. Fondamentalmente, l'unica cosa che garantisce l'algoritmo di raddoppiamento o di ciclizzazione è che chiunque faccia il suggerimento non è eccessivamente competente nell'area dell'implementazione crittografica, e quindi non si vuole usare il suo codice.
Storicamente, a cascata o in bicicletta sono i modi per far fronte agli algoritmi di crittografia debole; si tratta di presupporre che qualsiasi algoritmo sarà rotto, e tu proverai a fare il controllo del danno. Questo in qualche modo nega tutte le ricerche sulla crittografia dagli anni '70. In pratica, i problemi di sicurezza riguardano il modo in cui viene utilizzato un algoritmo (ad es. Modalità concatenamento con cifrari a blocchi), come viene implementato un algoritmo e, soprattutto, come vengono gestite le chiavi (creazione, archiviazione, distruzione ...). Per fare in modo che l'algoritmo stesso sia un punto debole, devi compiere enormi sforzi (ad esempio progettando il tuo algoritmo, dato che il consorzio DVD ha fatto ). Ad esempio, quando vengono hackerate le moderne console di gioco, gli stessi algoritmi (AES, ECDSA ...) non vengono interrotti, ma vengono aggirati (per ECDSA e Sony / PS3, si trattava di un bug di implementazione vero e proprio).
Ciò che fai vuoi è avere agilità algoritmo : definisci il protocollo in modo tale che l'algoritmo utilizzato sia un parametro configurabile. Pertanto, se un determinato algoritmo risulta sfasato (cosa che spesso non accade affatto), puoi passare a un altro.