duplicar o completar ciclos de algoritmos de encriptación

17

Ocasionalmente, he leído la sugerencia de mejorar la seguridad duplicando los algoritmos de cifrado (cifrar un mensaje una vez con un algoritmo, luego cifrar el texto cifrado nuevamente con un algoritmo de cifrado diferente) o alternar periódicamente una lista de algoritmos de cifrado .

Sospecho que esto no es mucho más seguro que un algoritmo de cifrado único, bien elegido y bien implementado, pero no estoy seguro de que pueda argumentar mi caso.

¿La duplicación o el ciclo de los algoritmos de cifrado mejoran la seguridad? ¿Por qué o por qué no?

    
pregunta Josh Kelley 05.04.2011 - 14:52
fuente

4 respuestas

21

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.

    
respondido por el Thomas Pornin 05.04.2011 - 15:30
fuente
1

Yo diría que encadenar rondas de cifrado es una forma legítima de aumentar la longitud efectiva de la clave cuando se utiliza un cifrado con una clave de tamaño fijo. Divida una clave más larga en partes y use las partes en rondas diferentes.

Es la razón de la existencia de triple-DES. 56 bits parecían suficientes en 1977, pero ahora están sujetos a ataques de fuerza bruta en hardware moderno.

    
respondido por el Hugh Allen 06.04.2011 - 07:29
fuente
-1

Los algoritmos de cifrado en cascada hacen que el texto cifrado sea más seguro, siempre y cuando ambos algoritmos de cifrado sean radicalmente diferentes y ambos tuvieran revisiones por pares exhaustivas. Mis argumentos para eso son los siguientes:

  1. Siempre que el algoritmo de cifrado # 1 sea realmente seguro, cifrar el texto sin formato con él producirá un texto cifrado pseudoaleatorio. En este momento, el texto cifrado no se puede descifrar en un período de tiempo razonable.

  2. Suponiendo que el algoritmo de cifrado # 2 también está cifrando de forma segura el texto cifrado de la operación anterior con el algoritmo de cifrado # 2, producirá un texto cifrado seudoaleatorio que no se puede descifrar en un período de tiempo razonable.

  3. Si el algoritmo de cifrado # 1 o el algoritmo de cifrado # 2 tiene puntos débiles descubiertos, en cualquier momento en el futuro, su texto sin formato estará seguro mediante el cifrado del otro.

  4. Se puede argumentar que incluso si el algoritmo de cifrado n.º 1 o el algoritmo de cifrado n.º 2 tuvieron debilidades descubiertas en algún momento en el futuro, su texto simple aún puede estar seguro porque [sic, de puntos 1-3? ].

La verdad es que hay personas que no quieren que usted o nadie coloque en cascada algoritmos de cifrado, ya que eso podría hacer que sean imposibles de descifrar. Imagina a alguien en cascada con algoritmos de cifrado como locos, por ejemplo:

AES -> Blowfish -> DES -> Serpent -> Twofish -> Triple DES

¿Cómo puede alguien romper este cifrado?

Por supuesto, se deben tener en cuenta otros problemas como los ataques de canal lateral y las debilidades de la implementación, ya que es posible que sepas que la seguridad es un tema enorme.

    
respondido por el EKanadily 18.08.2013 - 13:55
fuente
-1

Rote diariamente un cifrado simple que permuta los bloques de 2048 bits antes y después de su cifrado regular y almacénelos en una ubicación separada de sus datos cifrados.

Eso solo va a ser molesto, ya que todos saldremos con alguien que intente descifrar su cifrado endurecido.

    
respondido por el Chad Brewbaker 19.08.2013 - 23:25
fuente

Lea otras preguntas en las etiquetas