Soy solo un principiante de la informática. Aprendí algo sobre el tiempo de carrera, pero no puedo estar seguro de lo que entiendo es correcto. Entonces por favor ayudame¿por qué la factorización de enteros es un tiempo no polinomial?
Por lo tanto, la factorización de enteros actualmente no es un problema de tiempo polinomial, pero sí lo es la prueba de primalidad. Suponga que el número que debe verificarse es n. Si ejecutamos un programa solo para decidir si cada número de 1 a sqrt (n) puede dividir n, y si la respuesta es sí, entonces almacena el número. Creo que este programa es un tiempo polinomial, ¿no?
Una posible forma en la que estoy equivocado sería un programa de factorización que debería encontrar todos los números primos, en lugar del primer primo descubierto. Entonces tal vez esta es la razón por la cual.
Sin embargo, en la criptografía de clave pública, encontrar un factor primo de un gran número es esencial para atacar la criptografía. Como generalmente un gran número (clave pública) es solo el producto de dos primos, encontrar un primo significa encontrar el otro. Esto debería ser un tiempo polinomial. Entonces, ¿por qué es difícil o imposible atacar?
Lo primero que dice es verificar si el número es primo o no. – Emil
¡Porque los números son GRANDES! – nullpotent
Si crees que el algoritmo X tiene complejidad polinómica, intenta escribir el polinomio que expresa su complejidad. Si tiene éxito, entonces X tiene complejidad polinómica; si falla, puede consolarse con el pensamiento de que X no tiene complejidad polinómica, lo cual será más reconfortante que la idea de que no ha logrado encontrar el (o un) polinomio. Pero, más en serio, intente escribir una ecuación para la complejidad de la factorización de enteros en términos del número de dígitos en el entero y estudie su forma. –