Las claves
con una fuerza de 128 bits o más se consideran actualmente imposibles de romper. Sin embargo, eso no significa necesariamente que la clave en sí sea de 128 bits. El tamaño de la clave está relacionado con la fuerza clave, pero ni siquiera tiene que ser lineal con la fuerza clave. Tomemos por ejemplo RSA; Necesita una clave de 15K bit para estar cerca de 256 bit de seguridad. La mejor manera de ver cómo el tamaño y la fuerza de la clave se relacionan entre sí es echar un vistazo a keylength.com ( desplácese hacia abajo hasta la segunda tabla).
Sin embargo, ese es el tamaño de la clave relacionado con la fuerza. Si codifica una clave RSA privada, necesitará al menos dos veces el tamaño de la clave, para módulo y clave privada (a menos que desee generar todo el par de claves desde cero nuevamente, entonces podría hacerlo con un 128 a 256 bits de semilla para un generador de números aleatorios y una gran cantidad de tiempo de CPU). Si incluye los parámetros CRT, la sobrecarga de ASN.1 y la armadura ASCII, la codificación de la clave crece rápidamente. Sin embargo, las claves secretas generalmente se codifican como bytes sin procesar. Por lo tanto, una clave secreta codificada de 128 bits puede tomar solo 16 bytes.
Tenga en cuenta que, a menos que el tamaño de la clave sea claramente insuficiente, otros ataques pueden ser mucho más factibles. Piense en los errores de protocolo, los ataques de canal lateral, los errores de generación clave, y la lista continúa. Creo que aproximadamente el 10% de las preguntas formuladas en StackOverflow muestra una implementación que podría confiar en prácticas criptográficas sanas. Elegir el tamaño de clave correcto es probablemente la parte más fácil de cualquier sistema seguro.