Los algoritmos de cifrado en cascada o cíclico aumentan la complejidad de la implementación, y eso es realmente malo para la seguridad. La seguridad intrínseca del algoritmo (siempre que use algoritmos publicados y bien analizados, no diseños hechos a mano) es invariablemente mucho mayor que la seguridad de implementación: la mayoría de las implementaciones pueden filtrar varios elementos, incluidos los bits de clave secreta, a través del tiempo de ejecución, el acceso a la memoria caché o el comportamiento insuficientemente estricto cuando se encuentran datos incorrectos.
Si ha cubierto todos los riesgos de implementación, entonces es el momento de preocuparse por los algoritmos; en ese punto, usted es un criptógrafo capacitado y sabe mejor que confiar en trucos irracionales como la cascada o la duplicación. Básicamente, lo único que el algoritmo de duplicación o el ciclo garantiza es que quienquiera que haga la sugerencia no es demasiado competente en el área de la implementación criptográfica, y por lo tanto no desea utilizar su código.
Históricamente, la cascada o el ciclismo son formas de lidiar con algoritmos de encriptación débiles; se trata de suponer que cualquier algoritmo se se romperá, e intentas hacer el control de daños. Esto niega de alguna manera todas las investigaciones sobre criptografía desde los años 70 '. En la práctica, los problemas de seguridad están en cómo se utiliza un algoritmo (por ejemplo, el modo de encadenamiento con cifrados en bloque), cómo se implementa un algoritmo y, lo más importante, cómo se administran las claves (creación, almacenamiento, destrucción ...). Para que el algoritmo sea un punto débil, debe hacer grandes esfuerzos (por ejemplo, diseñar su propio algoritmo, como lo hizo el consorcio de DVD ). Como ejemplo, cuando se hackean las consolas de juegos modernas, el algoritmo en sí (AES, ECDSA ...) no se rompe, sino que se evita (para ECDSA y Sony / PS3, esto fue un error de implementación).
Lo que hacer desea es tener agilidad de algoritmo : usted define el protocolo de modo que el algoritmo utilizado sea un parámetro configurable. Por lo tanto, si un algoritmo dado resulta ser escamoso (lo que no ocurre a menudo), entonces puede cambiar a otro.