¿Cómo se puede romper un cifrado RSA 2048?

Mejor respuesta

En el campo del criptoanálisis hay una gran diferencia entre « crack «y» break «.

Se descifra una contraseña en el sentido más simple al intentar desbloquear el sistema con todas las posibles iteraciones de esa contraseña, un método conocido como craqueo por fuerza bruta. Si conoce las reglas que rigen la creación y el uso de la contraseña, también conoce de antemano el costo de tiempo / esfuerzo inherente a ese cifrado. Cada algoritmo tiene una expectativa pre-conocida en el esfuerzo de cálculo requerido para descifrarlo.

Se dice que un algoritmo, como MD5 o SHA-1 (ejemplos reales) se rompe cuando encuentra algún tipo de colisión que reduce ese universo esperado (todas las soluciones posibles a la fórmula utilizada para crear la clave / contraseña).

Para simplificar, permítame guiarlo a través de un ejemplo de la vida real de WPS (configuración protegida de ). WPS se creó para facilitar a los usuarios la seguridad de su red Wi-Fi. Consistía en un PIN de ocho dígitos que se intercambiaría entre el usuario solicitante y el enrutador con solo presionar un botón.

Los creadores del sistema conocían de antemano el universo esperado: 8 números le dan 100,000,000 posibles combinaciones (10 ^ 8). Sin embargo, la implementación del protocolo dividió ese número en 2 combinaciones de cuatro dígitos que se validaron por separado.

Esto significaba que solo tendría que probar 10,000 (10 ^ 4) + 10,000 (10 ^ 4) combinaciones, en el peor de los casos, para descifrar el PIN. Su universo de 100 millones de combinaciones ahora se redujo repentinamente a solo 20,000 combinaciones. El algoritmo está efectivamente roto . Luego puede intentar descifrarlo, como podría haberlo hecho si no estuviera roto, pero como está roto, sus posibilidades de tener éxito son mucho mayores, solo requiere como máximo 20,000 intentos en lugar de 100 millones.

La conclusión que se puede extraer de esto:

Romper y descifrar son cosas diferentes. Un cifrado roto no significa que sea inseguro, solo que es más fácil de descifrar ahora. Dependiendo del valor de lo que está protegido por él, estar roto no significa la muerte para un sistema dado, solo la comprensión de que es menos seguro ahora de lo que se esperaba originalmente.

RSA-2048 se romperá si alguien encuentra una manera de crear colisiones que reduzcan inherentemente el número esperado de combinaciones para descifrar el cifrado. RSA 2048 se puede descifrar tal cual, como cualquier otro cifrado, mediante fuerza bruta.

Respuesta

RSA, en sí mismo y solo por sí mismo, solo tiene unos pocos ataques al módulo público (que suele ser un semiprime, o dos grandes primos seleccionados s multiplicados juntos). El algoritmo clásico más eficiente para resolver el problema de factorización, que permite la derivación de la clave privada usando aritmética básica, es el General Number Field Sieve (GNFS). Este algoritmo se ejecuta en tiempo sub-exponencial y no es factible de usar en sistemas correctamente implementados RSA-2048.

También existe El algoritmo de Shor, pero un atacante típico no puede montarlo en RSA-2048. Los fabricantes de computadoras cuánticas ejecutan un oligopolio, particularmente liderado por D-Wave. No solo es increíblemente costoso obtener uno, sino que también requiere equipo especializado para ejecutarlos y mantenerlos. No se ha creado ningún chip con suficiente persistencia de información y poder para romper más de unos pocos bits.

Como se mencionó anteriormente, un criptosistema no es nada sin una implementación correcta. La mayoría de las implementaciones de RSA también utilizan un algoritmo de huellas digitales de clave pública, generalmente un hash. Además de eso, es posible encontrar la factorización de primos con un exploit que es increíblemente raro y también estadísticamente insignificante en términos de tasa de éxito. Como señaló Euclid , hay números primos infinitos, pero no solo hay números primos infinitos, hay muchos de ellos dentro de un cierto espacio de claves. Si dos módulos comparten el mismo primo, entonces es fácil encontrar su factorización. Con el algoritmo del máximo común divisor , que se ejecuta en tiempo lineal (se puede ejecutar fácilmente en el dispositivo en el que estás viendo esto en milisegundos), el factor común puede ser encontrado, luego dividido de los módulos para producir los otros dos primos faltantes. Esto conduce al acceso a ambas claves. Cualquier implementación correcta de RSA nunca reutilizaría primos para claves separadas, sino que las seleccionaría completamente al azar. Debido a que existen muchos módulos posibles dentro del espacio de claves de 2048 bits, que se pueden escribir como el número de primos longitud 2048 seleccione 2 (o superior a 2 si se trabaja con módulos no estándar), las posibilidades de que dos claves incluso compartan dos primos son insignificantes . En otras palabras, tomar todas las claves de un servidor de claves y ejecutar el algoritmo GCD en todas ellas es simplemente una pérdida de tiempo.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *