¿Qué se sabe sobre la complejidad computacional de factorizar enteros en campos de números generales? Más específicamente:
- Sobre los enteros representamos enteros a través de sus expansiones binarias. ¿Cuáles son las representaciones análogas de enteros en los campos numéricos generales?
- ¿Se sabe que la primalidad sobre los campos numéricos está en P o BPP?
- ¿Cuáles son los algoritmos más conocidos para factorizar sobre campos numéricos? (Haz la y el (aparentemente) algoritmos se extienden desde?) Aquí, la factorización se refiere a la búsqueda de alguna representación de un número (representado porbits) como un producto de números primos.
- ¿Cuál es la complejidad de encontrar todas las factorizaciones de un número entero en un campo numérico? ¿De contar cuántas factorizaciones distintas tiene?
- Sobre se sabe que decidir si un número dado tiene un factor en un intervalo es NP-difícil. Sobre el anillo de números enteros en los campos numéricos, ¿puede ser el caso que encontrar si hay un factor primo cuya norma está en un cierto intervalo ya es NP-duro?
- ¿Está factorizando en campos de números en BQP?
Observaciones, motivaciones y actualizaciones.
Por supuesto, el hecho de que la factorización no es única en los campos numéricos es crucial aquí. La pregunta (especialmente la parte 5) fue motivada por esta publicación de blog sobre GLL (ver este comentario ), y también por esta pregunta anterior de TCSexchange. Lo presenté también en mi blog donde Lior Silverman presentó una respuesta exhaustiva .
Respuestas:
La siguiente respuesta se publicó originalmente como un comentario en el blog de Gil
(1) Sea un campo numérico, donde suponemos que α tiene un polinomio mínimo monico f ∈ Z [ x ] . Entonces se pueden representar elementos del anillo de enteros O K como polinomios en α o en términos de una base integral; los dos son equivalentes.K=Q(α) α F∈ Z [ x ] OK α
Ahora la fijación de como en (1) hay una reducción de tiempo polinómico del problema sobre K al problema en Q . Para verificar que los cálculos (por ejemplo, la intersección de un ideal con Z o la factorización de un mod polinomial p ) se pueden realizar en tiempo polinómico, consulte el libro de Cohen mencionado en la respuesta anterior.K K Q Z pags
Como precomputación para cada primo racional dividiendo el discriminante de α (que es el discriminante de f ), encuentre todos los primos de O K que se encuentran por encima de p .pags α F OK pags
(2) Para la prueba de primalidad, dado un ideal dejó p ∈ Z sea tal que un ∩ Z = p Z (esto se puede calcular en tiempo polinómico y el número de bits de p es polinomio en la entrada). Verifique en tiempo polinómico si p es primo. Si no, entonces a no es primo. En caso afirmativo, encuentre los primos de O K que se encuentran por encima de p, ya sea desde la precomputación o factorizando f mod p . En cualquier caso, si a es primo, debe ser uno de esos primos.a ◃ OK p ∈ Z a ∩ Z =p Z pags pags una OK pags F p a
(3a), (6a) Para factorizar en números primos, dado un ideal encuentre su norma y = N K Q ( a ) = [ O K : a ] . De nuevo, esto se puede encontrar en el tiempo polinómico y, en consecuencia, no es demasiado grande. Factorice y en Z (ya sea clásicamente o usando el algoritmo de Shor, dependiendo de la reducción que desee). Esto proporciona una lista de primos racionales que dividen y , y por lo tanto, como en 2, podemos encontrar la lista de primos de O K que dividen y . Desde un | ya◃OK y=NKQ(a)=[OK:a] y Z y OK y esto da la lista de números primos que dividen a . Finalmente, es fácil determinar el exponente al que un primo divide un ideal dado.a|yOK a
(3b), (6b) Pero Gil quiere la factorización en irreducibles, no en números primos. Resulta que, dada la factorización prima de es posible construir de manera eficiente una factorización de x en elementos irreducibles de O K . Por esta let h K es el número de clases, y la nota que es posible calcular de manera eficiente el ideal de la clase de un ideal dado. Ahora, para encontrar un divisor irreducible de x, seleccione h K ideales ideales (posiblemente con repetición) a partir de la factorización de xxOK x OK hK x hK x . Por el principio del casillero, algunos subconjuntos de esos se multiplican a la identidad en el grupo de clase; encuentra un mínimo de ese subconjunto. Su producto es entonces un ideal principal generado por un elemento irreducible. Divida por este elemento, elimine los ideales relevantes de la factorización y repita. Si la factorización tiene menos de h elementos K , simplemente tome un subconjunto mínimo de todos los factores.x hK
(4) Creo que es posible contar las factorizaciones en irreducibles, pero esto es un poco de combinatoria adicional; por favor, deme tiempo para resolverlo. Por otro lado, determinarlos a todos no es interesante en el contexto de los algoritmos de factorización sub-exponencial ya que en general hay exponencialmente muchas de esas factorizaciones.
(5) No tengo idea.
fuente
Como mencionó Daniel, puede encontrar algunas informaciones en el libro A Course in Computational Algebraic Number Theory ( enlace ).
En particular, hay varias formas de representar elementos de campos numéricos. Let ser un campo de número con φ un grado- n polinomio irreducible mónico de Z [ ξ ] . Deje θ ser cualquier raíz de φ . La llamada representación estándar de un elemento α ∈ K es la tupla ( a 0 , ... , a n - 1 , d )K=Q[ξ]/⟨φ⟩ φ n Z[ξ] θ φ α∈K (a0,…,an−1,d) donde , d > 0 y mcd ( a 0 , … , a n - 1 , d ) = 1 , de modo que α = 1ai∈Z d>0 gcd(a0,…,an−1,d)=1
fuente