¿La criptografía asimétrica es vulnerable a las tablas del arco iris?

IANACE (No soy un experto en criptografía) e IANAM (No soy un matemático), pero mi respuesta instintiva es “no”.

Para fines de discusión, asumiré que su objetivo es, dada una clave pública específica, determinar la clave privada correspondiente.

Ahora, las tablas de arco iris son esencialmente tablas de búsqueda que se completan en función de una función hash. Para su aplicación común (descifrar contraseñas), la función hash es simplemente MD5, o SHA-256, o lo que sea que se usó para codificar las contraseñas. Luego, usaría una tabla de arco iris debidamente poblada para hacer una “búsqueda inversa” con una contraseña cifrada robada para determinar que, con toda probabilidad, la contraseña de texto sin formato del usuario era “contraseña”.

¿Cuál es la función hash para una clave privada que resulta en su clave pública correspondiente, o viceversa?

Nuevamente, IANACE e IANAM, así que me estoy metiendo el cuello en esto, pero …

Estoy bastante seguro de que si pudieras responder esa pregunta con solo un algoritmo de clave pública de tu elección, estarías listo para el próximo Premio Turing, Premio Abel, Medalla Fields (si eres lo suficientemente joven) y casi cualquier premio de CS / matemática que te gustaría aceptar.

Pero eso probablemente sería lo último en lo que pensaría en ese momento, ya que intenta desesperadamente escapar de las garras de todas las oficinas de seguridad nacional del planeta.

ACTUALIZACIÓN: estoy más seguro de que, incluso si pudieras definir una función de hash, el tamaño de tu espacio de clave privada haría una tabla de arcoiris efectiva … imprácticamente enorme.

TL; DR: Creo que la razón por la que no he escuchado acerca de ningún intento de usar tablas de arcoíris en esta área es porque nadie ha descubierto cómo hacerlo de manera efectiva … todavía.

Las tablas de arcoíris son hashes precalculados. Son un ataque efectivo a las contraseñas solo porque una contraseña es una cadena relativamente pequeña. La entropía de información para una contraseña segura es del orden de 36 bits.

Ahora consideremos los tamaños de clave recomendados.

Se debe utilizar una longitud de clave RSA de 3072 bits si se requiere seguridad más allá de 2030.

https://en.m.wikipedia.org/wiki/

Le ahorraré las matemáticas, pero básicamente si tuviera una potencia informática infinita, no tendría el espacio para almacenar todos los pares de claves públicas / privadas.

Entonces no.

Para responder específicamente a esta pregunta: si el espacio clave es lo suficientemente pequeño, sí, en teoría, podría usar una tabla de arco iris para determinar todas las contraseñas en ese espacio y sus formas cifradas asociadas.

Si usa una contraseña de 16 caracteres en el espacio de un teclado normal, se necesitarían miles de millones de años para generar la tabla de arco iris que rompería ese espacio.

En resumen: use una contraseña larga y apropiada con mucha entropía. Por ejemplo, al menos 8 dígitos, un número y un símbolo.

Si es lo suficientemente largo y suponiendo que el alogrithm sea seguro (otra lata de gusanos), esa contraseña no se podrá descifrar en su vida, que es lo mejor que puede esperar.

La criptografía no es mi especialización (no es un gran fanático de las matemáticas).

Dicho esto, el punto débil de la criptografía asimétrica, o PKI, es el hecho de que se basa en la confianza.

Confías en que alguien, que interactúa contigo con la clave privada de John Doe, es realmente John Doe.

Si alguien puede hackear la clave privada de un usuario autorizado y pasar desapercibido, él / ella podría implementar con éxito un ataque de hombre en el medio.

Si puede obtener un certificado raíz, puede hacer más o menos lo que desea.

Por lo tanto, creo que puede ser posible, pero es mejor que confíes en alguien más calificado que yo a este respecto.