Que sait-on de la complexité de calcul de la factorisation d'entiers dans des champs de nombres généraux? Plus précisement:
- Sur les entiers, nous représentons des entiers via leurs extensions binaires. Quelles sont les représentations analogues d'entiers dans des champs numériques généraux?
- Est-il connu que la primauté sur les champs numériques est en P ou BPP?
- Quels sont les algorithmes les plus connus pour factoriser les champs numériques? (Faites l' et la (apparemment) algorithmes étendentpartir?) Ici, factorisation se réfère à trouvercertaine représentation d'un nombre (représenté parbits) comme produit de nombres premiers.
- Quelle est la complexité de trouver toutes les factorisations d'un entier dans un champ numérique? De compter combien de factorisations distinctes il a?
- Sur on sait que décider si un nombre donné a un facteur dans un intervalle est NP-difficile. Sur l'anneau des nombres entiers dans les champs numériques, peut-il être le cas où trouver s'il existe un facteur premier dont la norme est dans un certain intervalle est déjà NP-difficile?
- L'affacturage est-il dans les champs numériques de BQP?
Remarques, motivations et mises à jour.
Bien sûr, le fait que la factorisation n'est pas unique sur les champs numériques est crucial ici. La question (en particulier la partie 5) était motivée par ce billet de blog sur GLL (voir cette remarque ), et aussi par cette question antérieure de TCSexchange. Je l'ai également présenté sur mon blog où Lior Silverman a présenté une réponse complète .
Réponses:
La réponse suivante a été initialement publiée sous forme de commentaire sur le blog de Gil
(1) Soit un champ numérique, où nous supposons que α a un polynôme monique minimal f ∈ Z [ x ] . On peut alors représenter des éléments de l'anneau d'entiers O K sous forme de polynômes en α ou en termes de base intégrale - les deux sont équivalents.K=Q(α) α f∈Z[x] OK α
Maintenant , fixant comme dans (1) il y a une réduction du temps polynomial du problème sur K au problème en Q . Pour vérifier que les calculs (par exemple coupant un idéal avec Z ou factorisant un mod polynomial p ) peuvent être effectués en temps polynomial, voir le livre de Cohen mentionné dans la réponse précédente.K K Q Z p
En tant que précalcul pour chaque nombre rationnel divisant le discriminant de α (c'est-à-dire le discriminant de f ), trouver tous les nombres premiers de O K situés au-dessus de p .p α f OK p
(2) Pour le test de primalité, étant donné un idéal soit p ∈ Z tel que a ∩ Z = p Z (cela peut être calculé en temps polynomial et le nombre de bits de p est polynomial en entrée). Vérifiez dans le temps polynomial si p est premier. Sinon, a n'est pas premier. Si oui, alors trouver les nombres premiers de O K situés au-dessus de p soit à partir du précalcul, soit en factorisant f mod p . Dans tous les cas, si a est premier, il doit être l'un de ces nombres premiers.a◃OK p∈Z a∩Z=pZ p p a OK p f p a
(3a), (6a) Pour la factorisation en nombres premiers, étant donné un idéal trouver sa norme y = N K Q ( a ) = [ O K : a ] . Encore une fois, cela peut être trouvé en temps polynomial et n'est donc pas trop grand. Facteur ya◃OK y=NKQ(a)=[OK:a] y en (soit classiquement, soit en utilisant l'algorithme de Shor, selon la réduction que vous souhaitez). Cela donne une liste de nombres premiers rationnels divisant y , et donc comme dans 2, nous pouvons trouver la liste des nombres premiers de O K divisant y . Depuis un | yZ y OK y cela donne la liste des nombres premiers divisant a . Enfin, il est facile de déterminer l'exposant auquel un nombre premier divise un idéal donné.a|yOK a
(3b), (6b) Mais Gil veut la factorisation en irréductibles, pas en nombres premiers. Il s'avère que, étant donné la factorisation première de il est possible de construire efficacement une factorisation de xxOK x en éléments irréductibles de . Pour cela, soit h K le numéro de classe, et notons qu'il est possible de calculer efficacement la classe idéale d'un idéal donné. Maintenant, pour trouver un diviseur irréductible de x, sélectionnez h K idéaux premiers (éventuellement avec répétition) à partir de la factorisation de xOK hK x hK x . Selon le principe du pigeonnier, un sous-ensemble de ces multiplications se transforme en identité dans le groupe de classe; trouver un tel sous-ensemble minimal. Son produit est alors un idéal principal généré par un élément irréductible. Divisez par cet élément, supprimez les idéaux pertinents de la factorisation et répétez. Si la factorisation a moins de h K éléments, il suffit de prendre un sous-ensemble minimal de tous les facteurs.x hK
(4) Je pense qu'il est possible de compter les factorisations en irréductibles, mais c'est un peu de combinatoire supplémentaire - donnez-moi s'il vous plaît le temps de travailler. D'un autre côté, la détermination de chacun d'eux n'est pas intéressante dans le contexte des algorithmes de factorisation sous-exponentielle car il existe en général de façon exponentielle beaucoup de telles factorisations.
(5) Je n'en ai aucune idée.
la source
Comme mentionné par Daniel, vous pouvez trouver quelques informations dans le livre A Course in Computational Algebraic Number Theory ( lien ).
En particulier, il existe plusieurs façons de représenter des éléments de champs numériques. Soit un champ numérique avec φ un degrés - n monique polynôme irréductible de Z [ ξ ] . Soit θ n'importe quelle racine de φ . La représentation dite standard d'un élément α ∈ K est le tuple ( a 0K=Q[ξ]/⟨φ⟩ φ n Z[ξ] θ φ α∈K (a0,…,an−1,d) où , d > 0 et d ) = 1 , tels que α = 1ai∈Z d>0 gcd(a0,…,an−1,d)=1
la source