¿Qué fuerza de cifrado es necesaria en 2015?

NIST tiene algunas buenas pautas en su serie 800:
Publicaciones de seguridad informática del NIST

La “Recomendación para la administración de claves Parte 1: General (Revisión 3)” (página en nist.gov) tiene una buena descripción de los “bits de seguridad” o “seguridad” en relación con los diferentes algoritmos (tabla 2 en la página 64). Según su investigación, AES-256 es comparable a una clave RSA con 15360 bits o un hash SHA-512.

Más abajo (tabla 4 en la página 67) se enumeran las diferentes fortalezas de seguridad y sus plazos. El NIST reconoce que los algoritmos utilizados con una seguridad de seguridad de 112 serán válidos hasta el año 2031.

Tenga en cuenta que el documento está escrito con FISMA en mente, así que lea cuidadosamente el capítulo sobre la audiencia prevista de los autores.

Sin embargo, actúa como una buena guía para el resto de nosotros.

RSA es un criptosistema de clave pública y bastante computacionalmente intensivo en comparación con los algoritmos de clave simétrica. Solo se usa por cortos períodos de tiempo al establecer sesiones en protocolos como TLS y SSH (básicamente para la autenticación mutua y el intercambio de claves simétricas). También se usa para encriptar pequeños datos como un correo electrónico. Elija la mayor fuerza clave que pueda. Típicamente 4096.

Para flujos de datos sostenidos, para grandes cantidades de datos o para acceder a datos que no necesitan autenticación mutua utilizando un PKI (piense en un disco duro encriptado), se utiliza un cifrado simétrico como AES, ya que es computacionalmente más barato. Si necesita cifrado simétrico, elija uno que se ajuste a los recursos que tiene a su disposición para la tarea en cuestión, sin comprometer la seguridad.

No puedo responder a esta pregunta, y creo que nadie lo hará. Pero puedo ayudarlo a hacer algunas preguntas más, para ayudarlo a equilibrar su perspectiva:

Verá, en la vida hay muchas compensaciones: más rápido significa más recursos computacionales, menos memoria significa un cálculo más lento, un cifrado más fuerte significa más tiempo para calcular, etc.

Por lo tanto, lo importante no es hacer esta pregunta, sino preguntarse qué se necesita para su situación / circunstancias específicas en particular, es decir, en función de las necesidades. Y con una mejor comprensión de las diversas compensaciones, definirá por sí mismo cuál es la fuerza necesaria del cifrado en función de la disponibilidad de hardware y el tiempo de respuesta disponible para el cifrado, etc.

  • Para cifrados simétricos , ininterrumpidos, como AES, las claves de 128 bits siguen siendo completamente suficientes.
  • Para las claves RSA y DH, 2048 bits es el mínimo que cualquiera debería usar, aunque 3076 bits coinciden con el nivel de seguridad de 128 bits para los cifrados simétricos.
  • Para ECC use claves de 256 bits .
  • Los hashes deben ser de 256 bits .

Razón fundamental

Para comprender estos números, debemos comenzar con lo que quiero decir con cifras simétricas ininterrumpidas. Para algo como AES, el “mejor” ataque en (casi) todas las circunstancias es simplemente probar cada tecla. En promedio, eso significa probar la mitad de las 2 ^ 128 teclas posibles antes de encontrar un éxito. Aquí, el tamaño de la clave se tradujo de manera transparente en la cantidad de trabajo que un atacante debe hacer.

Hace un tiempo escribí algo sobre por qué un nivel de seguridad de 128 bits está bien: adivina por qué nos estamos moviendo a claves AES de 256 bits

Todas mis otras respuestas están “calibradas” para esa cantidad de trabajo. Es decir, encontrar una colisión para un hash de 256 bits es casi tanto trabajo como buscar un espacio clave de 128 bits. Así que he elegido números para estas otras cosas que proporcionan (al menos) un nivel de seguridad de 128 bits.

Para algunos propósitos, los hashes deben tener el doble de la longitud de su fuerza “real”. Entonces, si desea algo que tenga “seguridad de 128 bits”, su función hash debe ser de 256 bits. Esto se debe a la paradoja del cumpleaños . [Tenga en cuenta que para muchos usos de los hash, los ataques de cumpleaños no son relevantes y los hashes mucho más cortos son totalmente apropiados. Ver el comentario de Benjamin Chaney antes.]

Las claves de curva elíptica también deben tener el doble del tamaño del nivel de seguridad. (Tengo mis conjeturas de por qué este es el caso, pero no quiero decirlo a menos que esté seguro). Pero los criptógrafos parecen muy claros en ese punto.

Las claves RSA y DH son las más difíciles de considerar porque puede haber nuevos ataques descubiertos mañana que cambien la forma en que las personas descubren su fuerza efectiva. Como consecuencia, a la gente le gusta agregar un mayor margen de error aquí. Mi fuente para esto es de la discusión de los ataques contra RSA y el problema del logaritmo discreto en la criptografía moderna.

Entonces las lecciones relevantes son

  • No use claves RSA y DH de 1024 bits
  • No uses SHA1

Esto no significa que todo lo que use SHA1 esté “roto”. Hay propósitos para los cuales está bien. Pero a menos que tenga una comprensión profunda de cuáles son esos propósitos (y no lo son), es mejor mantenerse alejado.

Lo mínimo para estar seguro en estos días es no tener huella digital. 🙂
Debe analizar su solución, preguntar un montón de lo que sucede cuando se realiza un tipo de pregunta a sus datos, sistema, claves de cifrado, etc.
Elegir entre AES y RSA tampoco es una elección, o son casos de uso completamente diferentes.
Solo por el algoritmo y la longitud de la clave, AES 128 o 256, RSA 2048 (1024 está roto / débil).