Usar el mismo algoritmo varias veces no necesariamente le brinda tanta seguridad adicional como podría esperar: la razón es que permite " se encuentra en los ataques medios ". Permítanme citar una parte del enlace de referencia:
"Al tratar de mejorar la seguridad de un cifrado de bloque, es tentador
La idea es simplemente usar varias claves independientes para cifrar los datos.
Varias veces utilizando una secuencia de funciones (encriptaciones). Entonces uno
podría pensar que esto duplica o incluso n-tuples la seguridad de la
esquema de encriptación múltiple, dependiendo del número de encriptaciones que
Los datos deben pasar.
El ataque Meet-in-the-Middle intenta encontrar
un valor que utiliza tanto el rango (texto cifrado) como el dominio (texto plano) de
la composición de varias funciones (o cifrados de bloque) de modo que la
mapeo hacia adelante a través de las primeras funciones es el mismo que el
Mapeo hacia atrás (imagen inversa) a través de las últimas funciones, bastante
Literalmente reuniéndose en medio de la función compuesta ".
El antiguo algoritmo TripleDES lo hizo de la siguiente manera:
texto cifrado = EK3 (DK2 (EK1 (texto plano))), texto simple = DK1 (EK2 (DK3 (texto cifrado)))
donde K1, K2, K3 son claves independientes, E es el cifrado y D la función de descifrado.
Pero probablemente estés buscando cascadas para fortalecer el algoritmo de cifrado.
TrueCrypt proporciona esto al implementar las siguientes cascadas:
- AES-Twofish
- AES-Twofish-Serpent
- Serpiente-AES
- Serpiente-Twofish-AES
- Twofish-Serpiente
La idea subyacente es que si se descubren algunas debilidades en el futuro, sus datos aún están protegidos por un segundo (o tercer) algoritmo de cifrado independiente.
Otra técnica es proteger la clave aleatoria en el encabezado utilizando una SALT y aumentando el número de iteraciones a > 1000 (SALT protege contra los ataques de la tabla del arco iris al aumentar el número de combinaciones posibles que tienes que probar en un ataque de fuerza bruta, mientras que al aumentar el número de iteraciones te protege al "reducir la velocidad" del algoritmo: debes recorrer todas las iteraciones en Para descifrar el encabezado: ralentizarlo significa que tiene menos "intentos" por segundo y que la fuerza bruta es más larga).
Actualización: (Sobre la pregunta: "¿En qué se diferencian las iteraciones de la aplicación de AES varias veces?")
Cifras de bloque como AES repiten sus transformaciones varias veces según el tamaño de la clave (los llamados ciclos o iteraciones) para aumentar la entropía del cifrado (10 ciclos para claves de 128 bits, 14 ciclos o iteraciones para claves de 256 bits). Esto no es lo mismo que aplicar AES varias veces, porque los ciclos son parte del algoritmo en sí. Si implementa el algoritmo, puede aumentar el número de ciclos, pero tenga en cuenta que, si lo hace, cambia la implementación estándar.
Una función de derivación clave como PBKDF2 se define de la siguiente manera:
DK = PBKDF2 (PRF, Contraseña, Salt, c, dkLen)
Uno de los parámetros es c, y especifica el número de ciclos (iteraciones), que se utiliza para fortalecer el algoritmo, porque se necesita una cantidad de tiempo de cálculo arbitrariamente grande si se elige el parámetro c lo suficientemente grande. Pero tenga en cuenta que en el mismo artículo de Wikipedia se observa que una de las debilidades de PBKDF2 es que los ataques ASIC y GPU pueden usarse para romperlo. Esto significa que aumentar el número de iteraciones no garantiza que la resistencia aumente automáticamente.
Actualización: Reemplazó la antigua URL truecrypt.org por la nueva que se encuentra en Suiza porque los desarrolladores originales no continúan con su trabajo.