¿Qué tan grande es el almacenamiento necesario para almacenar todas las combinaciones de números primos de 4096 bits como una tabla de búsqueda para descifrar RSA?

El número de primos con 2048 o menos dígitos binarios es mayor que [math] 10 ^ {600} [/ math]. De hecho, el número de primos que tienen exactamente 2048 dígitos binarios es mayor que [matemática] 10 ^ {600} [/ matemática].

Suponiendo que tiene una potencia de procesamiento ilimitada, y que el acceso a los datos es instantáneo (la velocidad de la luz, de alguna manera, no es un problema), de hecho puede factorizar grandes números probando cada uno de esos números primos por turno. Pero si puede hacer eso, no hay una razón real para almacenar solo los números primos; ¿Por qué no probar todos los divisores posibles y listo? Después de todo, almacenar todos esos números primos será algo costoso. Este es el por qué.

Si logra escribir cada uno de esos primos en un solo átomo (lo cual es un desafío, por razones obvias), puede obtener aproximadamente [matemáticas] 10 ^ {80} [/ matemáticas] primos simplemente utilizando cada átomo en el universo observable. Es bueno que hayas logrado superar esa molesta velocidad de la luz, pero aún estás muy lejos; primero deberá reemplazar cada átomo en el universo con un universo completo del mismo tamaño, lo que puede tomar un tiempo, y luego deberá hacerlo nuevamente , reemplazando cada átomo en este metauniverso con un meta completo -universo propio, y si lo hace solo una vez más, reemplazando cada átomo en el meta-meta-universo con un valor de átomos de meta-meta-universo, tendrá lo que necesita con algo de espacio libre ( oye, también necesitamos generar energía, construir algunas CPU y aún nos quedan algunos planetas para disfrutar realmente gastando todo el dinero que ganamos descifrando números de tarjetas de crédito en transacciones de comercio electrónico).

Miseria.

No. Si escribiera un número primo en cada átomo del universo, no habría suficientes átomos para escribir la lista de todos los números primos del 2 al [matemático] 2 ^ {2048} [/ matemático]. Y ni siquiera estaría cerca. Si pudieras escribir primos [matemáticos] 10 ^ {500} [/ matemáticos] en cada átomo, es casi seguro que te quedarías sin átomos mucho antes de hacer mella en todos los primos. El número de primos menor que [matemática] 2 ^ {2048} [/ matemática] es aproximadamente

[matemáticas] \ pi (2 ^ {2048}) \ aprox li (2 ^ {2048}) \ aprox 10 ^ {613}, [/ matemáticas]

mientras que hay aproximadamente [matemáticas] 10 ^ {80} [/ matemáticas] átomos en el universo.

Función de conteo

No. Como han dicho otros respondedores, esto no es posible.

Sin embargo, ¿puedo sugerir una alternativa? Si solo desea muchos números primos, The Prime Pages (investigación de números primos, registros y recursos) puede proporcionarle los primeros 50,000,000 primos (así como una selección de números primos muy grandes), lo que le permitirá obtener todos los números primos. a aproximadamente 2 ^ 30. En realidad, podría ser más rápido generar los primos hasta 2 ^ 30 con un programa Sieve o similar en lugar de descargarlos, pero si no puede o no desea escribir un programa para hacerlo, es una buena opción.

EDITAR: La pregunta original era preguntar por la ubicación de una lista de números primos hasta 2 ^ 2048. Se ha editado hasta que ya no es reconocible, por lo que mi respuesta ya no se lee correctamente en contexto, pero dejaré el texto original anterior para la posteridad.

Bueno, Wolfram Alpha puede hacerlo por ti. primos <2 ^ 2048 - Wolfram | Alpha - y puede seguir haciendo clic en "Más ..." para obtener el resto de ellos.

Mucho. Supongo que esta será una larga lista. Tal vez algo alrededor de [matemáticas] 2 ^ {2037} [/ matemáticas] números largos, la mayoría de los cuales tienen más de 600 dígitos. Va a tomar mucho tiempo. También necesitarás un lugar para almacenarlos. Si puedes conseguir “varias” eternidades y “varios” universos, podrías estar bien.

Hay una razón por la que el RSA de 2048 bits es difícil.

No.

Hay aproximadamente 2 ^ 2037 números primos entre 2 y 2 ^ 2048, lo que equivale al número de átomos en el universo … a la octava potencia.

Si no cabe en el universo, ¿cómo encajaría en un servidor miserable?

Dicho esto, 4096 es un juego de niños.

More Interesting

¿Es la 'prueba' del teorema de Demorgan dada en los libros de texto una 'prueba' o una 'verificación'?

¿Cuál es el mejor recurso para aprender sobre las pruebas de corrección para algoritmos?

¿Qué módulo será más útil, análisis multivariado o análisis bayesiano?

¿Cuáles son algunas de las aplicaciones más elegantes de la teoría de grafos?

¿SymPy es tan poderoso como Maple / Mathematica para las matemáticas simbólicas?

¿Qué es el punto de secuencia en c?

¿Debo construir una gran base en el desarrollo de backend antes de aprender Machine Learning y Deep Learning, ya que la mayoría de las arquitecturas de ML se basan en el backend?

Cómo salir de la culpa de buscar la solución del problema

¿Cuál es su consejo para alguien que comienza su doctorado en informática teórica?

¿Es un cierre una función o el entorno en el que se definió dicha función?

¿Cuáles son algunos de los documentos que debe leer sobre STOC, FOCS y SODA en los últimos 10 años sobre algoritmos de aproximación, algoritmos aleatorios y algoritmos en línea que introdujeron nuevas técnicas útiles?

Quiero aprender matemáticas programando. ¿Cuáles son los proyectos de programación simples pero geniales que requerirían conocimiento de álgebra, cálculo, probabilidad, etc.?

¿Alguna vez eres totalmente experto en matemáticas?

¿Cuáles son las aplicaciones de la teoría de autómatas?

¿Alguien puede escribir un algoritmo no determinista (pseudocódigo) para encontrar la suma de los primeros n números naturales?