Complessità del factoring in campi numerici


25

Cosa si sa della complessità computazionale degli interi di factoring nei campi numerici generali? Più specificamente:

  1. Negli interi rappresentiamo numeri interi tramite le loro espansioni binarie. Qual è la rappresentazione analoga degli interi nei campi numerici generali?
  2. È noto che la primalità sui campi numerici è in P o BPP?
  3. Quali sono gli algoritmi più noti per il factoring su campi numerici? (Fai l' expn e (apparentemente)expn1/3 algoritmi estendono dallaZ?) Qui, factoring si riferisce a trovare qualche rappresentazione di un numero (rappresentato danbit) come prodotto di numeri primi.
  4. Qual è la complessità di trovare tutte le fattorizzazioni di un numero intero in un campo numerico? Di contare quante fattorizzazioni distinte ha?
  5. Su Z è noto che decidere se un dato numero ha un fattore in un intervallo [a,b] è NP-difficile. Oltre l'anello di numeri interi nei campi numerici, può essere il caso che trovare un fattore primo la cui norma si trova in un determinato intervallo sia già NP-difficile?
  6. Il factoring è in campi numerici in BQP?

Osservazioni, motivazioni e aggiornamenti.

Ovviamente il fatto che la fattorizzazione non sia univoca rispetto ai campi numerici è cruciale qui. La domanda (in particolare la parte 5) è stata motivata da questo post sul blog su GLL (vedi questa osservazione ), e anche da questa precedente domanda TCSexchange. L'ho presentato anche sul mio blog in cui Lior Silverman ha presentato una risposta approfondita .


Puoi fare un esempio? in che modo il factoring nei campi è diverso dal factoring intero semplice?
vzn

2
Per (0): Credo che di solito un campo numero di è rappresentato da Q [ ξ ] /φ dove φ è un polinomio irriducibile. Quindi, un elemento di K è una tupla di coppie ( ( n 0 , d 0 ) , ( n 1 , d 1 ) , , ( n δ - 1 , d δ - 1 ) ) dove δ = degKQ[ξ]/φφK((n0,d0),(n1,d1),,(nδ1,dδ1)) . Ciò significa che il tuo elemento è n 0 / d 0 + n 1 ξ / d 1 + + n δ - 1 ξ δ - 1 / d δ - 1 . δ=deg(φ)n0/d0+n1ξ/d1++nδ1ξδ1/dδ1
Bruno,

2
@Gil Hai mai visto questo libro prima? springer.com/mathematics/numbers/book/978-3-540-55640-4 Al momento non ho accesso alla mia copia (anche se lo farò tra qualche giorno, e verificherò). Vorrei vedere se c'è qualcosa di scritto sulla fattorizzazione in (i) campi numerici algebrici o (ii) domini Dedekind, con numero di classe> 1.
Daniel Apon,

4
@vzn: Senza mettere le parole in bocca a Gil, sono abbastanza sicuro che significhi estensioni limitate dei razionali (esattamente ciò a cui sei collegato). Quando dice "factoring in un tale campo", sono abbastanza sicuro che intende factoring nell'anello di numeri interi di un tale campo. La stessa pagina di Wikipedia che hai collegato ha una sezione sull'anello di numeri interi in un campo di numero algebrico.
Joshua Grochow,

1
@vzn Il setaccio del campo numerico utilizza i campi numerici per fattorizzare gli interi.
Yuval Filmus,

Risposte:


14

La seguente risposta è stata originariamente pubblicata come commento sul blog di Gil

(1) Sia un campo numerico, dove assumiamo che α abbia un polinomio minimo monico f Z [ x ] . Si possono quindi rappresentare elementi dell'anello di numeri interi O K come polinomi in α o in termini di una base integrale - i due sono equivalenti.K=Q(α)αfZ[x]OKα

Ora il fissaggio come in (1) c'è una riduzione del tempo polinomiale dal problema sopra K al problema in Q . Per verificare che i calcoli (ad es. Intersecare un ideale con Z o fattorizzare una mod polinomiale p ) possano essere eseguiti in tempo polinomiale, consultare il libro di Cohen a cui si fa riferimento nella risposta precedente.KKQZp

Come precomputazione per ogni primo razionale divide il discriminante di α (cioè il discriminante di f ) trova tutti i numeri primi di O K che giacciono sopra p .pαfOKp

(2) Per il test di primalità, dato un ideale lasciare che p Z sia tale che aZ = p Z (questo può essere calcolato in tempo polinomiale e il numero di bit di p è polinomiale nell'input). Controlla in tempo polinomiale se p è primo. Altrimenti a non è un numero primo. Se sì, trova i numeri primi di O K che giacciono sopra p o dal precomputazione o fattorizzando f mod p . In ogni caso, se a è primo, deve essere uno di quei numeri primi.aOKpZaZ=pZppaOKpfpa

(3a), (6a) Per il factoring in numeri primi, dato un ideale trova la sua norma y = N K Q ( a ) = [ O K : a ] . Ancora una volta questo può essere trovato in tempi polinomiali e di conseguenza non è troppo grande. Fattore y in Z (in modo classico o usando l'algoritmo di Shor, a seconda della riduzione desiderata). Questo dà un elenco di numeri primi razionali che dividono y , e quindi come in 2 possiamo trovare l'elenco dei numeri primi di O K che divide y . Dal momento che un | yaOKy=NQK(a)=[OK:a]yZyOKy questo fornisce l'elenco dei numeri primi che dividono a . Infine, è facile determinare l'esponente a cui un primo divide un ideale ideale.a|yOKa

(3b), (6b) Ma Gil vuole la fattorizzazione in irriducibili, non in numeri primi. Risulta che data la fattorizzazione prima di è possibile costruire in modo efficiente una fattorizzazione di x in elementi irriducibili di O K . Per questo sia h K il numero della classe e si noti che è possibile calcolare in modo efficiente la classe ideale di un dato ideale. Ora per trovare un divisore irriducibile di x seleziona h K ideali primi (possibilmente con ripetizione) dalla fattorizzazione di xxOKxOKhKxhKx. Secondo il principio del buco del piccione, un sottoinsieme di questi si moltiplica all'identità nel gruppo di classe; trova un tale sottoinsieme minimo. Il suo prodotto è quindi un ideale ideale generato da un elemento irriducibile. Dividi per questo elemento, rimuovi gli ideali pertinenti dalla fattorizzazione e ripeti. Se la fattorizzazione ha meno di h K elementi, basta prendere un sottoinsieme minimo di tutti i fattori.xhK

(4) Penso che sia possibile contare le fattorizzazioni in irriducibili, ma questo è un po 'di combinatoria extra - per favore, dammi il tempo di elaborarlo. D'altro canto, determinarli tutti non è interessante nel contesto degli algoritmi di fattorizzazione sub-esponenziale poiché in generale ci sono molte fattorizzazioni esponenziali.

(5) Non ne ho idea.


5

Come accennato da Daniel, puoi trovare alcune informazioni nel libro A Course in Computational Algebraic Number Theory ( link ).

In particolare, ci sono diversi modi per rappresentare elementi di campi numerici. Sia essere un campo numero con φ un degree- n monico polinomio irriducibile di Z [ ξ ] . Sia θ qualsiasi radice di φ . La cosiddetta rappresentazione standard di un elemento α K è la tupla ( uno 0 , , a n - 1 , d )K=Q[ξ]/φφnZ[ξ]θφαK(a0,,an1,d)dove , d > 0 e gcd ( a 0 , , a n - 1 , d ) = 1 , tale che α = 1aiZd>0gcd(a0,,an1,d)=1

α=1di=0n1aiθi.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.