La longitud de la clave asimétrica (como en RSA) y la longitud de la clave de cifrado (como en AES, RC4) son bastante diferentes. Las claves RSA utilizadas en la criptografía asimétrica público-privada deben ser de 1024 bits o más. AES, RC4 y otras claves de cifrado deben ser de 128 bits o más. ¿Cual es la diferencia? RSA ampliamente permite que todos conozcan la clave pública N y e, donde N es el producto de dos grandes números primos. Si puede factorizar el número compuesto N, puede derivar la clave privada y descifrar cualquier mensaje cifrado con la clave pública.
El factoraje es un problema difícil que no se puede hacer en tiempo polinomial en una computadora no cuántica, pero hay trucos desde la teoría de los números hasta los factores factoriales mejor que la fuerza bruta ingenua. Trivialmente, al buscar factores de N, en lugar de intentar cada entero entre 1 y N, puede omitir todos los números pares excepto 2, o tratar de dividir solo por factores primos o detenerse cuando llegue a sqrt (N), en lugar de tratar de dividir por cada factor entre 1 y N. En el mundo real, las técnicas como método de curva elíptica pueden factorizar ~ Números compuestos de 260 bits en un par de minutos en una CPU.
Por otro lado, AES y RC4 son cifras simétricas. Solo necesitan una clave de número aleatorio para descifrar un mensaje. Entonces, para forzar una clave de cifrado de 128 bits, debe probar la mayoría de las 2 128 ~ 10 38 diferentes claves hasta que encuentre la que funcionó. Entonces, si puede verificar un billón (10 ^ 12) de claves por segundo, tomará ~ 10 ^ 19 años antes de que haya verificado la mayoría de las claves. Tenga en cuenta que una clave de 256 bits sería 2 ^ 128 veces más difícil que la fuerza bruta (tome 10 ^ 57 años).
Entonces, cuando inicio sesión en un sitio bancario y hago clic en la información https en google-chrome, veo:
Su conexión a home.ingdirect.com está cifrada con un cifrado de 128 bits.
La conexión utiliza TLS 1.0.
La conexión se cifra mediante RC4_128, con MD5 para la autenticación de mensajes y RSA como mecanismo de intercambio de claves.
Si luego hago clic en la información detallada del certificado y voy al campo del certificado "Clave pública del sujeto", veo que usan un módulo de 2048 bits (N el módulo de dos números primos grandes).