90
Universit ` a degli Studi di Milano Bicocca Facolt` a di Scienze Matematiche Fisiche e Naturali Corso di Laurea in Informatica Problemi computazionalmente intrattabili e alcune loro applicazioni in crittografia SUPERVISORI: Dr. Alberto Leporati Prof. Claudio Ferretti Relazione della prova finale di: Carlo Comin Matr. n. 072278 Anno Accademico 2007/2008

Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

Embed Size (px)

Citation preview

Page 1: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

Universita degli Studi diMilano Bicocca

Facolta di Scienze Matematiche Fisiche e Naturali

Corso di Laurea in Informatica

Problemi computazionalmente intrattabili ealcune loro applicazioni in crittografia

SUPERVISORI: Dr. Alberto LeporatiProf. Claudio Ferretti

Relazione della prova finale di:

Carlo CominMatr. n. 072278

Anno Accademico 2007/2008

Page 2: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la
Page 3: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

Il contributo della tesi

Il contributo principale di questo lavoro consiste nel dare una espo-sizione personale, tecnica e sistematica di alcuni articoli e risultati ri-guardanti le relazioni tra la teoria della Complessita Computazionale,i fondamenti della Crittografia moderna e la teoria dei Numeri. Prove-remo alcuni fatti in modo indipendente o rielaborato rispetto a quantoabbiamo trovato in letteratura. Nel fare questo vogliamo presenta-re una trattazione il piu completa possibile, cercando di ricostruire inmodo personale tutti i dettagli (che negli articoli sono spesso trala-sciati, sia per ragioni di spazio, sia perche ritenuti verificabili piu omeno facilmente dagli esperti nel campo) degli argomenti studiati. Inquesto modo speriamo di mostrare, da un lato, l’unita che crediamoleghi Matematica e teoria della Complessita Computazionale, intesacome scienza che studia la natura dei problemi effettivi e computa-zionalmente (in)trattabili, e, dall’altro, le importanti applicazioni cheemergono da tale unita, nel caso specifico in Crittografia.

Introduzione

La tesi e orginizzata nel seguente modo.Nel “Capitolo 1 - Preliminari” vengono sommariamente fornite le de-nifinizioni rigorose dei concetti utilizzati nei capitoli successivi, inoltrevengono dati gli enunciati di alcuni fatti basilari necessari per la com-pleta comprensione dei contenuti. Nel primo paragrafo si danno glielementi di Teoria della Computabilita e Complessita: si chiarisce l’i-dea di macchina di Turing, di computazione con oracolo e si definisconole classi di complessita utili in seguito. Nel secondo paragrafo vengonodati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri.In questo primo capitolo, per la precisione nel terzo paragrafo, stu-diamo anche il metodo per decidere la primalita dovuto ad Agrawal,Kayal e Saxena [3]. Il risultato di questi tre informatici indiani risolveun problema che e rimasto aperto sin dalla nascita della teoria dellaComplessita Computazionale (anni Sessanta e Settanta), anche se i ma-tematici hanno cercato metodi informalmente efficienti per la primalitasin dai tempi dell’antica Grecia con Eratostene di Cirene (276 a.C. - 194a.C.) ed il suo famoso Crivello. Il metodo di Agrawal, Kayal e Saxenae fenomenale non solo perche risolve una questione rimasta aperta permolto tempo, ma anche perche sfrutta considerazioni molto ingegnosee articolate ma matematicamente elementari, nel senso che viene usatapoca “teoria” rispetto alla pratica comune della Matematica moderna.In particolare vengono sfruttati solo alcuni fatti sui polinomi cicloto-mici, e ragionamenti di carattere combinatorio. Per questo motivo ilrisultato e stato accolto con molto stupore dalla comunita dell’Infor-matica Teorica e anche dai matematici, sono significative le parole di

i

Page 4: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

ii

Paul Leyland [8]: “Adesso tutti si chiedono quali altre cose [relativa-mente semplici] ci siano sempre sfuggite”. Questo ci fa capire come, inquesto campo, soluzioni molto ingegnose ma relativamente elementaripossono rimanere celate agli occhi di tutti gli esperti per intere decadi.Nell’ultimo paragrafo del Capitolo 1 definiamo formalmente i problemiintrattabili che sono materia di studio principale in questa tesi: vale adire il problema della fattorizzazione di interi, il problema del logarit-mo discreto ed il problema di Diffie-Hellman.

Nel “Capitolo 2 - Fattorizzazione di Interi” studiamo i metodi per lafattorizzazione di interi basati sulla tecnica del Crivello algoritmico:vale a dire il Crivello Quadratico ed il Crivello su Campi di Numeri.Questi due metodi costituiscono, ad oggi, lo stato dell’arte per quantoriguarda gli algoritmi per la fattorizzazione di interi. L’analisi rigorosadel tempo di calcolo asintotico di questi metodi e un problema ancoraaperto. In questo capitolo studiamo delle analisi euristiche, ovvero ba-sate su congetture e assunzioni che non sono ancora state dimostratecon rigore, ma che sono ritenute verosimilmente correte dagli esper-ti. Queste considerazioni euristiche portano ad un tempo di calcoloasintotico sub-esponenziale. In merito a questo ci sembra interessantel’osservazione di Crandall e Pomerance [14]: “In partica, non c’e alcu-na ragione per non usare un metodo euristico [...] solo perche i teoricinon sono ancora abbastanza in gamba da fornire una dimostrazionerigorosa della correttezza e del tempo di calcolo.”

Nel “Capitolo 3 - Logaritmo Discreto” diamo una esposizione detta-gliata di un risultato teorico che si deve a Victor Shoup [28]: un limiteinferiore di Ω(

√n) per la complessita computazionale in tempo del pro-

blema del logaritmo discreto, relativamente al modello di calcolo deglialgoritmi generici. In breve, questo modello di calcolo studia la clas-se degli algoritmi che non sfruttano alcuna informazione riguardo allastruttura algebrica del gruppo su cui si lavora e riguardo alla codificadegli elementi del gruppo. Come vedremo, l’idea di base consiste nelmostrare che se un algoritmo generico non trova una certa “collisione”tra gli elementi del gruppo, allora non conosce nemmeno l’istanza delproblema che gli viene fornita in ingresso, e dunque non ha modo dirisolvere il problema. In seguito si trattera di mostrare che tale “colli-sione” richiede tempo Ω(

√n) per essere trovata.

In secondo luogo, studiamo un algoritmo generico, il metodo Baby StepGiant Step di Shanks, e un algoritmo non generico, l’Index Calculus.Vedremo che quest’ultimo algoritmo si basa su considerazioni del tuttosimili a quelle che permettono di disegnare il Crivello Quadratico perla fattorizzazione di interi.In entrambi i capitoli 2 e 3 ci soffermiamo sulle applicazioni di questi

Page 5: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

Introduzione iii

problemi nella sicurezza di alcune primitive crittografiche, in partico-lare discutiamo sommariamente i ben noti RSA, ElGamal e lo scambiodi chiavi di Diffie-Hellman.

Nel “Capitolo 4 - Riduzioni tra problemi” ci proponiamo di studia-re da un punto di vista teorico le relazioni di riducibilita tra i problemiintrattabili studiati algoritmicamente nei capitoli precedenti. Discutia-mo, per prima cosa, l’auto-riducibilita probabilistica, e la sua impor-tanza nella scelta delle primitive crittografiche. In secondo luogo diamouna esposizione auto-contenuta e personale

• della riduzione di Eric Bach [4], la quale afferma che il proble-ma della fattorizzazione di interi si riduce in tempo atteso poli-nomiale, nel senso di riduzione di Turing-Cook, sia al problemadel calcolo della ϕ(·) di Eulero sia al problema del logaritmodiscreto sui sottogruppi ciclici di (Z/nZ)∗, per n composto,• della riduzione di Biham, Boneh, e Omer Reingold [6], la quale

afferma che la fattorizzazione degli interi di Blum e riducibileal problema di Diffie-Hellman generalizzato a k ≥ 2 utenti.

Nell’ultimo capitolo, il “Capitolo 5 - Alcune considerazioni sperimen-tali”, proponiamo alcune implementazioni e test usando il linguaggioPARI/GP. Tale linguaggio e stato inizialmente sviluppato da Henri Co-hen come libreria C per eseguire in modo semplice computazioni connumeri interi molto grandi e con strutture algebriche usate in Teoriadei Numeri. In questo Capitolo 5, per prima cosa, prendiamo spuntoda un esercizio proposto in [17] (cioe “dimostrare che per ogni primor esiste solo un numero finito di numeri di Carmichael del tipo rqp ”)per ottenere un algoritmo per la generazione di tutti e soli i numeri diCarmichael del tipo rqp per r un primo fissato e r < q < p. Di talealgoritmo diamo un’ analisi asintotica del tempo di calcolo e diamo unaimplementazione seguita da alcuni test.In secondo luogo, proponiamo una implementazione dell’algoritmo ge-nerico di Shanks per il Logaritmo Discreto, il metodo Baby Step GiantStep, ed eseguiamo alcuni test per il tempo di calcolo.Infine, testiamo il Crivello Quadratico per la fattorizzazione di in-teri implementato nella primitiva factorint() di PARI/GP generandoistanze pseudo-casuali di dimensione via via crescente.

Page 6: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

iv

Ringraziamenti

Desidero ringraziare il mio relatore, il Dr. Alberto Leporati, e il miocorrelatore, il Prof. Claudio Ferretti, per avermi permesso di studiare inquesto lavoro di tesi argomenti per me affascinanti ed incredibilmenteappassionanti. Li ringrazio anche per la loro infinita disponibilita, per iloro consigli sul Capitolo 5 e per le correzioni e osservazioni riguardantiversioni preliminari e finali di tutto l’elaborato. Ringrazio tutti i mieifamiliari perche mi hanno sempre sostenuto e incoraggiato. Devo unringraziamento speciale a mia mamma, Marisa, e agli zii Loredana eEnnio: vi ringrazio per tutto quello che fate per me, questa tesi e a voitre dedicata.

Page 7: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

Indice

Il contributo della tesi iIntroduzione iRingraziamenti iv

Capitolo 1. Preliminari 31. Computabilita e Complessita Computazionale 32. Teoria dei Numeri e Crittografia 73. Decidere la primalita in tempo polinomiale deterministico: il metodo AKS 134. Problemi Intrattabili 22

Capitolo 2. Fattorizzazione di Interi 251. Il Crivello di Eratostene 252. Il Crivello Quadratico 303. Il Crivello su Campi di Numeri 374. Applicazioni in Crittografia 47

Capitolo 3. Logaritmo Discreto 511. Il limite inferiore generico di Shoup 512. Un algoritmo generico: Baby-Step Giant-Step di Shanks 563. Un metodo non generico: l’Index Calculus 564. Applicazioni in Crittografia 57

Capitolo 4. Riduzioni tra problemi 591. Auto-riducibilita probabilistica 592. Relazioni di riducibilita tra problemi 61

Capitolo 5. Alcune considerazioni sperimentali 731. Un generatore di numeri di Carmichael con esattamente tre fattori primi 732. Alcuni test per il Logaritmo Discreto 773. Alcuni test per la Fattorizzazione di Interi 80

Bibliografia 83

1

Page 8: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la
Page 9: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

CAPITOLO 1

Preliminari

Questo primo capitolo e organizzato in quattro sezioni. Nelle primedue forniamo le definizioni e i fatti basilari su cui sono costruiti i capitoliseguenti. Queste due sezioni possono essere inizialmente tralasciate dallettore esperto e possono essere usate come riferimento solo secondonecessita. Nella Sezione 1 introduciamo alcuni concetti preliminari diTeoria della Calcolabilita e Complessita Computazionale, mentre nellaSezione 2 forniamo gli elementi di Teoria dei Numeri che usiamo nelresto della tesi.La Sezione 3, invece, contiene una esposizione dettagliata e completadel metodo per decidere la primalita di Agrawal, Kayal e Saxena [3].Per quanto riguarda questa sezione il nostro sforzo consiste nell’averdimostrato in dettaglio tutti i fatti che nell’articolo orginale vengonotralasciati. La nostra speranza e quella di aver fornito una esposizionedel metodo AKS piu accessibile e completa rispetto a quelle presenti inletteratura. Infine nella Sezione 4 si trovano le definizioni formali deiproblemi intrattabili che tratteremo nei capitoli che seguiranno.

1. Computabilita e Complessita Computazionale

Storicamente possiamo collocare la nascita della Teoria della Com-putabilita negli anni trenta. Alonzo Church e Stephen Kleene introdu-cono il Lambda Calcolo, e poco piu tardi nel 1936 Alan Turing proponeindipendentemente un modello oggi noto come “macchina di Turing”.Le macchine di Turing oggi sono alla base della Teoria della Comples-sita Computazionale, dato che costituiscono un modello matematicodella nozione comune di algoritmo pittosto comodo e vagamente similealle moderne macchine calcolatrici. Nella tesi non avremo mai a chefare con i dettagli formali delle macchine di Turing, dato che daremodescrizioni ad alto livello di tutti gli algoritmi. Risulta pero fondamen-tale dare una definizione formale di tale modello per poter trattare leclassi di complessita, le riduzioni, e per chiarire che quando parleremodi “algoritmo” ci riferiremo implicitamente ad una qualche macchinadi Turing. In altre parole, le descrizioni ad “alto livello” degli algoritmiche tratteremo potranno essere viste come delle specifiche sommarie diuna macchina di Turing. Il vantaggio di questo punto di vista consi-ste nell’avere un modello matematico rigoroso dell’idea di algoritmo,che altrimenti sarebbe lasciato alla nostra intuizione. In letteratura

3

Page 10: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

4 1. PRELIMINARI

esistono molteplici definizioni formali delle macchine di Turing, ma sirivelano del tutto equivalenti. Qui proponiamo la seguente.

Definizione 1.1 (Macchina di Turing deterministica, DTM). Unamacchina di Turing deterministica M e una settupla del tipo

M := (Q,Σ,Γ, δ, q0, B, F )

dove

• Q e un insieme finito non vuoto detto insieme degli stati diM .• Σ e un insieme finito detto insieme dei simboli di ingresso.• Γ e un insieme finito non vuoto detto insieme dei simboli di

nastro tale che Γ ⊃ Σ.• δ e una funzione parziale del tipo δ : Q×Σ→ Q×Γ×L,R

detta funzione di transizione.• q0 e un elemento di Q detto stato iniziale di M .• B e un elemento di Γ detto simbolo di blank.• F e un inisieme finito detto insieme degli stati accettanti eF ⊆ Q.

Definiamo ora il modo in cui una TM esegue una computazione.

Definizione 1.2 (Computazione di una DTM). Una descrizioneistantanea I di una DTM e una sequenza finita del tipo

I := X1X2 . . .Xi−1qXi . . .Xn

dove Xj ∈ Γ per ogni j e q ∈ Q. Una computazione C di una TM euna sequenza finita o infinita di descrizioni istantanee

C := I0, I1, I2, . . .

tale che

• I0 := q0S1 . . . Sk per qualche k ∈ N e per S1 . . . Sk ∈ Σ∗;S1 . . . Sk viene detto l’input della macchina di Turing e in talcaso comunemente si dice che la macchina si trova nello statoiniziale q0 e che la sua testina legge il primo simbolo in ingressoS1 (a patto che S1 . . . Sk sia diverso dalla stringa vuota).• Assumiamo che Ii = X1X2 . . .Xi−1qXiXi+1 . . .Xn. Se δ(q,Xi)

= (p, Y, L) allora Ii+1 = X1X2 . . .Xi−2pXi−1Y Xi+1 . . .Xn , al-trimenti se δ(q,Xi) = (p, Y, R) allora Ii+1 = X1X2 . . . Y qXi+1

. . .Xn, se δ(q,Xi) non e definita allora Ii+1 non e definita,vale a dire che C = I0, . . . , Ii e diciamo che la macchina siarresta dopo i passi.• Il punto sopra presenta alcune eccezioni che, parlando infor-

malmente, riguardano il caso in cui q si trovi a leggere X1 evada a sinistra o il caso in cui si trovi a leggere Xn e vada adestra. La formalizzazione di questi casi particolari e diretta,

Page 11: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

1. COMPUTABILITA E COMPLESSITA COMPUTAZIONALE 5

diciamo solo che si considerano descrizioni istantanee del tipoqBX1 . . .Xn e X1 . . .XnqB dove B e il simbolo di blank.

Se la macchina si arresta su uno stato accettante q ∈ F , diciamo chela macchina accetta il suo ingresso S1 . . . Sk, in caso contrario diciamoche la macchina rifiuta il suo ingresso.

Per quanto riguarda le macchine di Turing non deterministiche(NTM) e sufficiente dire che una TM non deterministica e in tut-to e per tutto uguale ad una TM deterministica con la sola ecce-zione che δ non e una funzione ma una relazione, formalmente δ ⊆(Q×Σ)× (Q×Γ×L,R). Similmente, la definizione di computazio-ne per una macchina di Turing non deterministica ricalca la Definizione1.2 e si ottiene direttamente sostituendo le relazioni di uguaglianza, =,con relazioni di appartenenza ad insiemi, ∈. Anche per le macchinedi Turing probabilistiche esistono diverse formalizzazioni tra loro equi-valenti ma, per quanto ci riguarda, e sufficiente considerare una DTMche ha la possibilita di usare una funzione, o relazione, δ′ oltre a δ: δ′

scrive sul nastro i simboli “0” oppure “1” scegliendo in modo casualeuniforme. Equivalentemente possiamo considerare una macchina conaccesso ad un ulteriore nastro con simboli “0”, “1” gia presenti e di-stribuiti in maniera casuale uniforme. Per una DTM o una NTM M ,diremo che un linguaggio L e deciso da M se M con ingresso l si arrestasu uno stato accettante quando e solo quando l ∈ L; considereremo ilcontenuto del nastro nel momento dell’arresto come l’output di M , elo denoteremo con M(l) ↓. Denotiamo con M(l) ↑ il caso in cui M coninput l non si arresti mai. Nel caso delle macchine di Turing probabi-listiche parleremo ancora di linguaggi decisi, ma sara possibile che lamacchina commetta degli errori.Ora esplicitiamo la notazione asintotica che useremo e diamo la defini-zione delle classi di complessita che citeremo nelle sezioni 3 e 4.

Definizione 1.3 (Notazione Asintotica). Sia f una funzione a va-lori reali e sia g una funzione a valori reali positivi, diciamo che f e Ogrande di g, e scriviamo f = O(g), se esistono costanti positive M e ctali che, per ogni x > M , |f(x)| ≤ c · g(x).

Definizione 1.4. Sia t(n) : N → N una funzione, definiamo leseguenti classi di complessita

TIME(t(n)) := L | L e un linguaggio deciso da una TMMdeterministica che si arresta su ogni input didimensione n in tempo O(t(n))

Definiamo in modo del tutto analogo NTIME(t(n)), ma considerandoTM non deterministiche. Definiamo poi

P :=⋃

k∈N

TIME(nk) NP :=⋃

k∈N

NTIME(nk)

Page 12: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

6 1. PRELIMINARI

Definiamo

PrTIME(t(n), Y, N) := L | L e un linguaggio deciso da una TM Mprobabilistica in tempo O(t(n)) e M e tale chese l ∈ L allora M(l) accetta con probabilita ≥ Yse l 6∈ L allora M(l) accetta con probabilita ≤ N

BPP :=⋃

k∈N

PrTIME(nk, 2/3, 1/3) RP :=⋃

k∈N

PrTIME(nk, 1/2, 0)

Definiamo infine la classe ZPP come l’insieme dei linguaggi per i qualiesiste una macchina di Turing probabilistica che restituisce sempre larisposta corretta, ma che ha solo tempo di calcolo atteso polinomiale.In altre parole, per alcuni ingressi il tempo puo essere sub-esponenzialeo esponenziale, ma in media e polinomiale.Per una qualsiasi classe C denotiamo con co-C la classe che contienei linguaggi L tali che il linguaggio complemento di L appartiene a C.

Notiamo subito che le classi di complessita definite si riferiscono aproblemi di tipo decisionale mentre noi avremo a che fare anche conproblemi di calcolo di funzioni o relazioni, cioe problemi del tipo: datox calcolare f(x), o dato x calcolare y tale che (x, y) ∈ R, dove R e una

relazione. E possibile definire formalmente delle classi di complessitaper tali tipi di problemi che ricalcano in tutto e per tutto quelle viste, adesempio parallelamente a P ed NP si possono definire le classi note comeFP e FNP. Per non appesantire l’esposizione noi ci riferiremo solamentealle classi decisionali P, NP, ... la versione effettiva di tali classi e deiproblemi considerati, di tipo decisionale o funzionale, risultera sempreevidente dal contesto.Chiariamo ora informalmente cosa intendiamo per “problema relativo”e per “oracolo”, concetti utilizzati nel Capitolo 4.

Definizione 1.5. Per qualsiasi problema A e B, siano essi di tipodecisionale o funzionale, denotiamo con AB il problema A relativo aB, vale a dire il problema di risolvere A avendo a disposizione unascatola nera, chiamata oracolo, per B. Possiamo definire un oracolocon un nastro supplementare n di una TM M tale che, ogniqualvoltauna stringa s viene scritta su n, M conosce in un singolo passo dicomputazione se s ∈ B.

Nella Sezione 4 parleremo di riduzioni: ad essere precisi, intende-remo sempre riduzioni di Turing-Cook, di cui diamo una definizioneinformale nella seguente.

Definizione 1.6. Diciamo che un problema, decisionale o funzio-nale, A e Turing-Cook riducibile ad un problema B relativamente allaclasse di complessita C se AB ∈ C, ovvero se esiste una macchina diTuring M con accesso ad un oracolo per B che risolve A con un tempodi calcolo e comportamento (deterministico, non deterministico, oppure

Page 13: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

2. TEORIA DEI NUMERI E CRITTOGRAFIA 7

probabilistico) specificato dalla classe C. Denoteremo questo fatto conla notazione A ≤C

T B, dove C e la classe di complessita e la lettera “T”ci ricorda che si sta parlando di riduzioni di Turing-Cook.

Quando parleremo di complessita sub-esponenziale del tempo dicalcolo dei Crivelli per la fattorizzazione di interi, risultera comoda laseguente.

Definizione 1.7. Siano α, c costanti reali tali che c > 0 e 0 ≤ α ≤1. Definiamo Ln[α, c] nel seguente modo

Ln[α, c] := O

(

e

(c+o(1)

)(lnn)α(

ln lnn)1−α

)

2. Teoria dei Numeri e Crittografia

La Teoria dei Numeri e un ramo della Matematica che studia, inprimo luogo, le proprieta dei numeri interi. I primi studi rigorosi risal-gono all’antica Grecia: ad esempio negli Elementi di Euclide (300 a.C.)troviamo una dimostrazione molto elegante e semplice dell’infinita deinumeri primi. La teoria dei Numeri e rimasta per molto tempo mate-ria di studio dei matematici puri e assolutamente priva di applicazioni.Oggi, come e noto, costituisce anche le fondamenta su cui si basa granparte della Crittografia moderna: dalla difficolta di alcuni problemidipende la sicurezza di metodi crittografici largamente diffusi. In que-sta sezione trattiamo la notazione che useremo nel resto della tesi, eforniamo alcune definizioni e proposizioni preliminari.

2.1. Notazione. Indichiamo con N := 0, 1, 2, . . . l’insieme deinumeri naturali, con N0 := N \ 0, con Z := . . . ,−2,−1, 0, 1, 2, . . .l’insieme dei numeri interi, con Q i numeri razionali, con R i numerireali e con C i numeri complessi. Denotiamo con mcd(a, b) il massimocomune divisore tra gli interi a, b e con mcm(a, b) il minimo comunemultiplo. Scriviamo a | b se esiste c tale che b = c · a e a ≡ b (mod n)per indicare che n | (a − b). Usiamo ak||b quando ak | b e ak+1 ∤ b. Sen ∈ Z e r ∈ N sono tali che mcd(n, r) = 1 allora usiamo la notazioneor(n) per indicare l’ordine di nmodulo r, vale a dire il piu piccolo interopositivo a tale che na ≡ 1 (mod r). Indichiamo con

(nk

)= n!

(n−k)!k!il

coefficiente binomiale per n “scelto” k con la convenzione che(

nk

)= 0

quando k < 0 oppure k > n. Se S e un insieme denotiamo con #S

la cardinalita di S. Se q e un primo denotiamo con(

aq

)

il simbolo di

Legendre se n ∈ N denotiamo con(

an

)il simbolo di Jacobi. Useremo

la notazione lg n per il logaritmo in base due, lnn per il logaritmo inbase naturale e logn per il logaritmo in base dieci.

Page 14: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

8 1. PRELIMINARI

2.2. Alcune proposizioni. Per comprendere al meglio le dimo-strazioni che verranno e bene ricordare alcuni fatti. Di questi, ci per-mettiamo di tralasciare le dimostrazioni che sono presenti in quasi tuttii testi introduttivi di Teoria dei Numeri, come ad esempio [22].Il seguente teorema introduce, da un punto di vista non costruttivo, ilproblema della fattorizzazione di interi trattato nel Capitolo 2.

Teorema 2.1 (Teorema Fondamentale dell’Aritmetica). Ogni in-tero non nullo n si fattorizza in modo unico, a meno dell’ordine deifattori, come

n = ±pe11 · · · pek

k

dove p1, . . . , pk sono primi distinti e e1, . . . , ek sono interi positivi.

Dimostrazione. [22] pagina 23, teorema 1.16.

Proposizione 2.2. x ≡ y (mod mi) per ogni i = 1, . . . , n se e solose x ≡ y (mod mcm(m1, . . . , mn)).

Dimostrazione. [22] pagina 49, punto (3) del teorema 2.3.

Proposizione 2.3. Sia p un numero primo dispari e α ≥ 1 unintero. Allora x2 ≡ 1 (mod pα) se e solo se x ≡ ±1 (mod pα).

Dimostrazione. (⇒) La congruenza x2 ≡ 1 (mod pα) equivale adire pα | (x − 1)(x + 1). Se, per assurdo, p dividesse entrambi x− 1 ex+1 allora dividerebbe anche 2, contraddizione, e dunque p divide solouno dei due fattori, allora anche pα divide solo uno dei due fattori, e latesi segue. La direzione opposta (⇐) si verifica banalmente prendendoil quadrato di entrambi i membri.

Teorema 2.4 (Teorema Cinese dei Resti). Siano m1, . . . , mn nnumeri naturali a due a due coprimi, e a1, . . . , an n numeri naturaliqualsiasi. Allora il sistema di congruenze

x ≡ ai (mod mi), per i = 1, . . . , n

ammette una e una sola soluzione modulo m1m2 · · ·mn.

Dimostrazione. [22] pagina 64, teorema 2.18.

Lavoreremo in seguito con il gruppo moltiplicativo delle unita dell’a-nello Z/nZ, che denotiamo con (Z/nZ)∗. E interessante e utile vederedunque alcune note caratterizzazioni di tale gruppo. Consideriamo,per ora, (Z/pZ)∗ per p primo.

Teorema 2.5. Per ogni primo p esiste una radice primitiva mod p.

Dimostrazione. [22], pagina 99, teorema 2.36.

E possibile estendere il risultato e provare che

Teorema 2.6 (Della radice primitiva). Esiste una radice primitivamod n se e solo se n = 1, 2, 4, pα, 2pα, per p primo dispari.

Page 15: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

2. TEORIA DEI NUMERI E CRITTOGRAFIA 9

Dimostrazione. [22], pagina 104, teorema 2.41.

Il teorema della radice primitiva ci da quindi una condizione ne-cessaria e sufficiente per la ciclicita di (Z/nZ)∗. Notiamo inoltre che ilteorema cinese dei resti implica la seguente caratterizzazione dell’anelloZ/nZ e del suo gruppo moltiplicativo delle unita:

Teorema 2.7 (Caratterizzazione di Z/nZ). Sia n un naturale po-sitivo con fattorizzazione canonica n =

i pei

i . Allora Z/nZ e isomorfoal seguente prodotto di anelli

Z/nZ ∼=∏

i

Z/pei

i Z

e in modo del tutto simile (Z/nZ)∗ e isomorfo al seguente prodotto digruppi

(Z/nZ)∗ ∼=∏

i

(Z/pei

i Z)∗

Teorema 2.8 (Piccolo di Fermat). Sia a ∈ Z e p un numero primo.Allora ap ≡ a (mod p). Se p ∤ a allora ap−1 ≡ 1 (mod p).

Dimostrazione. [22], teorema 2.7 a pagina 51.

Teorema 2.9 (di Euler-Fermat). Siano a ∈ Z e n ∈ N tali chemcd(a, n) = 1. Allora aϕ(n) ≡ 1 (mod n).

Dimostrazione. [22], teorema 2.8 a pagina 51.

Concludiamo il paragrafo introducendo i numeri di Carmichael, chemostreremo come costruire algoritmicamente nel Capitolo 5. Informal-mente possiamo dire che un numero e di Carmichael se questo e un na-turale composto che si comporta come un numero primo relativamenteal teorema di Fermat:

Definizione 2.1. Sia n un naturale composto. Se per ogni b ∈Z/nZ tale che mcd(b, n) = 1 si ha bn−1 ≡ 1 (mod n) allora diciamoche n e un numero di Carmichael.

I numeri di Carmichael hanno una certa importanza pratica: e bennoto che il piccolo teorema di Fermat fornisce un metodo per deciderese un numero e composto; per rendersene conto e sufficiente conside-rare la proposizione contro-nominale, infatti, dato il naturale n, pos-siamo scegliere in maniera casuale uniforme un intero 1 < b < n, e se1 < mcd(b, n) < n oppure se bn−1 6≡ 1 (mod n) concludere che n de-

ve essere composto. E evidente che un numero di Carmichael vanificaquesto test: per ogni base b, un numero di Carmichael viene dichiarato“probabilmente primo” dal test di Fermat che abbiamo appena descrit-to, a meno che non si sia cosı fortunati da indovinare un fattore nonbanale di n quando si sceglie b.

Page 16: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

10 1. PRELIMINARI

2.3. Funzioni Aritmetiche.

Definizione 2.2. Una funzione f si dice aritmetica se f : N→ Sper qualche S ⊆ C. Una funzione aritmetica si dice additiva se perogni a, b ∈ N coprimi vale f(ab) = f(a) + f(b), si dice moltiplicativaquando per ogni a, b ∈ N coprimi vale f(ab) = f(a)f(b).

Useremo le seguenti funzioni aritmetiche:

• La ϕ : N→ N di Eulero, che definiamo come ϕ(n) := #m ≤n | m ∈ N,mcd(m,n) = 1 .• ω : N→ N che definiamo come il numero di primi distinti che

dividono n: ω(n) := #p | n per p un numero primo.• π : N→ N definita come π(n) := #p ≤ n | p e un numero primo.

Un fatto di fondamentale importanza legato alla funzione π(·) e ilTeorema dei Numeri Primi:

Teorema 2.10 (Teorema dei numeri Primi). Sia π(·) la funzionearitmentica definita appena sopra. Vale il seguente limite

limn→∞

π(n)

n/ lnn= 1

2.4. Numeri Lisci. Nel Capitolo 2 useremo quanto segue.

Definizione 2.3. Chiamiamo N-lisci gli interi con fattori primiesclusivamente minori o uguali al naturale N .

Per alcune considerazioni sul tempo di calcolo dei metodi basatisul Crivello ci servira la seguente stima sulla quantita dei numeri lisci,formalizzata con la funzione ψ.

Teorema 2.11 (Canfield, Erdos e Pomerance [10]). Siano ψ(x, y) :=#1 ≤ n ≤ x | n e y-liscio e u := ln x

ln y. Per ogni ǫ > 0, quando

u, x→∞ in modo tale da rispettare u < (1− ǫ) ln xln lnx

, vale ψ(x, x1/u) =

xu−u+o(u).

Dimostrazione. Corollario del teorema 3.1 in [10].

2.5. Le ipotesi di Riemann. Nel Capitolo 4 citeremo l’ipotesidi Riemann generalizzata quando parleremo della riduzione di GaryMiller. Qui diciamo sommariamente di cosa si tratta.

Definizione 2.4. La funzione Zeta di Riemann e definita, per s 6=1 ∈ C, da

ζ(s) :=∞∑

n=1

1

ns

Nota. Se s = 1 abbiamo la serie armonica, che come e noto diverge

dato che con un confronto integrale con∫ n+1

1x−1 dx si trova Hn =

∑ni=1 i

−1 ≥ ln(n+ 1). In ogni caso il motivo per cui si considera s 6= 1

Page 17: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

2. TEORIA DEI NUMERI E CRITTOGRAFIA 11

nella definizione della ζ e che tale punto risulta una singolarita, dettopolo di ordine 1, ovvero la funzione e del tipo a

z−z0+ g(z), a 6= 0, z0 = 1

dove g e derivabile in senso complesso in ogni z ∈ C appartenente aldominio.

Congettura 2.1 (Ipotesi di Riemann, RH). Se ζ(s0) = 0 e ℜ(s0) >0, allora esiste t ∈ R tale che s0 = 1/2 + it.

In altre parole, gli zeri s0 non banali cadono tutti sulla linea criticaℜ(s0) = 1/2.

Definizione 2.5. Sia m un numero naturale. Un carattere di Di-richlet modulo m e una funzione non identicamente nulla χ : Z → Ctale che

(1) χ(ab) = χ(a)χ(b) per ogni a, b ∈ Z(2) χ(a +m) = χ(a) per ogni a ∈ Z

Definizione 2.6. Una L-serie di Dirichlet e una funzione L : C→C del tipo

L(s, χ) :=∞∑

n=1

χ(s)

ns

dove χ e un carattere di Dirichlet.

Congettura 2.2 (Ipotesi di Riemann Estesa, GRH). Sia s ∈ C,e sia L(s, χ) una L-serie di Dirichlet. Se L(s0, χ) = 0 e ℜ(s0) > 0allora esiste t ∈ R tale che s0 = 1/2 + it

Vale a dire che tutti gli zeri s0 con parte reale non negativa diL(s0, χ) hanno parte reale ℜ(s0) = 1/2.

2.6. Campi e Anelli di Numeri Algebrici. Il Crivello sui Cam-pi di Numeri sfrutta alcune nozioni derivanti dalla teoria algebrica deinumeri. Ai fini della sua trattazione risulta percio fondamentale darealcune definizioni.

Definizione 2.7. Siano K e F campi (risp. anelli). Diciamo che Kestende F se F e un sottocampo (risp. sottoanello) di K, e ci riferiamoa K/F con il termine “estensione di campi (risp. di anelli)”.

Definizione 2.8. Il grado dell’estensione di campi K/F, che de-notiamo con [K : F], e la dimensione di K considerato come spa-zio vettoriale su F. Diciamo che K/F e finita se ha grado finito,[K : F] <∞.

Definizione 2.9. Diciamo che l’estensione di anelli R/S e finitase R, considerato come modulo su S, e finitamente generato.

Definizione 2.10. Consideriamo un’ estensione K/F, e prendiamoun sottoinsieme S ∈ K. Definiamo F(S) (risp. F[S]) come l’intersezio-ne di tutti i sottocampi (risp. sottoanelli) di K che contengono F ∪ S.Se #S = 1, diciamo che l’estensione F(S) (risp. F[S]) e semplice.

Page 18: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

12 1. PRELIMINARI

Definizione 2.11. Se K/Q (risp. K/Z) e un’ estensione finita dicampi (risp. di anelli) , diciamo che K e un campo (risp. un anello)di numeri (risp. di interi).

Definizione 2.12. Si consideri l’estensione di campi K/F. Unelemento α ∈ K si dice algebrico su F se e radice di un qualche poli-nomio non nullo f ∈ F[x], ovvero se soddisfa l’equazione polinomialef(α) = 0. Supponiamo che K sia C. Se il campo F e Q diremo che αe un numero algebrico. Se invece F e l’anello Z, e il polinomio di cuiα e radice risulta monico, allora chiameremo α un intero algebrico.

La proposizione 2.13 ci permette di caratterizzare gli elementi al-gebrici in relazione alle estensioni semplici. Premettiamo che useremoun particolare omomorfismo di anelli Ψa , argomento del seguente lem-ma. Dato che comprendere questi ultimi fatti e fondamentale per potertrattare il Crivello su Campi di Numeri, riportiamo per completezzaanche le dimostrazioni, chiarendo che sono solo leggeri adattamenti diquelle presenti in [11].

Lemma 2.12. Sia K/F una estensione di campi e a ∈ K. Sidefinisca l’applicazione Ψa : F[x]→ K come

Ψa

(f(x)

):= f(a)

Allora Ψa e un omomorfismo di anelli e la sua immagine coincide conF[a]. Ψa e detto un omomorfismo valutazione.

Dimostrazione. Dato che (f + g)(a) = f(a) + g(a) e (fg)(a) =f(a)g(a) per ogni f, g ∈ F[x], Φ e un omomorfismo di anelli. InoltreF ∪ a ⊆ ImΨa e ImΨa e un sottoanello di K, dunque F[a] ⊆ ImΨa.Asseriamo che vale anche ImΨa ⊆ F[a], infatti sia q := Ψa(f) ∈ ImΨa,

f ∈ F[x] di grado δf , allora t =∑δf

i=0 ciai ∈ F[a] dove i ci sono tali che

f(x) =∑δf

i=0 cixi.

Proposizione 2.13. Sia K/F una estensione di campi, e α ∈ K unelemento algebrico su F. Detto Ψα l’omomorfismo valutazione, KerΨα

e l’ideale(p(x)

)di F[x] generato da un polinomio p irriducibile monico

in F[x], che chiamiamo polinomio minimo di α su F. Inoltre F(α) =F[α], F(α) ∼= F(x)/

(p(x)

), e 1, α, α2, . . . , αδp−1 e una base di F[α].

Dimostrazione. Per il lemma 2.12 e il teorema fondamentale diomomorfismo di anelli (cioe se H : R→ S omomorfismo di anelli alloraImH ∼= R/KerH) si ha

F[α] = ImΨα∼= F[x]/KerΨα (1)

Ma F[α] e sottoanello di un campo, dunque e un dominio di integrita.Dunque KerΨα e un ideale primo dell’anello F[x] generato da un po-linomio primo, ovvero irriducibile in F, dividendo per il coefficientedirettivo abbiamo un polinomio monico, che e il polinomio di grado

Page 19: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

3. DECIDERE LA PRIMALITA: IL METODO AKS 13

minimo annullato da α. Dato che Ψα e generato da un elemento irri-ducibile, il quoziente F[x]/KerΨα e un campo. Per l’isomorfismo (1)anche F[α] e un campo. Dunque vale anche F(α) = F[α]. Resta damostrare che 1, α, α2, . . . , αδp−1 e base di F[α] = F(α). Si suppongache una combinazione lineare di tali elementi sia uguale a zero. Allorail polinomio in f ∈ F[x] avente gli stessi coefficienti della combinazionelineare e annullato da α, dunque appartiene a KerΨα, dunque e mul-tiplo di p. Ma p ha grado δp > δp − 1 = δf dunque f deve essere ilpolinomio nullo. Vale a dire che gli αi sono linearmente indipendenti.Sia ora t ∈ F[α] e si consideri f ∈ F[x] tale che t = Ψα

(f(x)

)= f(α).

Dividiamo f(x) per p(x) ottenendo un polinomio quoziente q e un po-linomio resto r tale che 0 ≤ δr < δp(x). Valutando in α e sapendoche p(α) = 0 si ottiene t = f(α) = r(α), con δr ≤ δp − 1, che ecombinazione lineare degli αi.

Capiamo in questo modo che, quando α ∈ C e algebrico su Q, Q[α]risulta essere un campo di numeri e ogni elemento si scrive in modounico come combinazione lineare delle potenze di α, vale a dire

Q[α] =

δp−1∑

i=0

ciαi | ci ∈ Q

dove δp e il grado del polinomio minimo di α, e le operazioni di som-ma e prodotto di elementi in Q[α] risultano essere pressoche identichea quelle nell’anello dei polinomi. Notiamo che le considerazioni del-la proposizione 2.13 valgono anche quando consideriamo il campo deicomplessi e l’anello degli interi, K = C e F = Z, e supponiamo cheα sia una intero algebrico, ovvero che annulli un polinomio monico acoefficienti interi. Come vedremo, nel Crivello su campi di numeri con-sidereremo anche l’estensione C/Z e useremo gli anelli di interi Z[α], e dunque ci interessa sapere che se α e un intero algebrico allora

Z[α] =∑δp−1

i=0 ciαi | ci ∈ Z

dove δp e il grado del polinomio minimo

di α, o che Z[α] = Z[x]/(p(x)

).

3. Decidere la primalita in tempo polinomialedeterministico: il metodo AKS

Il problema della primalita consiste nel distinguere i naturali primida quelli composti. Dimostrare in modo incondizionato l’esistenza diun algoritmo con tempo di calcolo polinomiale-deterministico ha co-stituito una questione risolta solo recentemente in [3]. Anche se oggiquesto problema e a tutti gli effetti trattabile, e interessante perchedimostra come, in questo campo, soluzioni poi ritenute relativamenteelementari possono sfuggire per decenni agli occhi degli esperti.Nello scenario dei linguaggi formali, chiamiamo PRIMES il linguaggiodei numeri primi, cioe PRIMES := p ∈ 0, 1∗ | p e la rappresentazione

Page 20: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

14 1. PRELIMINARI

binaria di un primo. In questo paragrafo diamo un’esposizione auto-contenuta dello stupefacente, ma elementare, risultato di Agrawal, Ka-yal e Saxena (AKS): PRIMES ∈ P [3]. Prima di procedere, diamouna breve rassegna dei risultati “storici” riguardanti la complessitacomputazionale di PRIMES.

• (Pratt-1975 [24]) Con i certificati di primalita succinti Prattdimostra PRIMES ∈ NP ∩ coNP.• (Miller-1976 [19]) Assumendo l’ipotesi di Riemann generaliz-

zata, PRIMES ∈ P .• (Solovay, Strassen-1977 [29]) PRIMES ∈ coRP• (Rabin-1980 [25]) Rabin propone un adattamento probabiliti-

co dell’algoritmo di Miller, provando ancora che PRIMES ∈coRP.• (Adleman,Pomerance,Rumuley 1983 [1]) PRIMES ∈ QP.• (Adleman,Huang-1992 [2]) PRIMES ∈ ZPP.

Iniziamo ora ad occuparci del metodo AKS, introducendo una semplicegeneralizzazione del piccolo teorema di Fermat.

Lemma 3.1 ([3]). Siano a ∈ Z, n ∈ N, (a, n) = 1.

n primo ⇐⇒ (X + a)n ≡ Xn + a (mod n)

Dimostrazione. Per 0 < i < n il coefficiente di X i in (X + a)n−(Xn + a) e

(ni

)an−i. (Verso ⇒) Se n e primo allora n |

(ni

). (Verso ⇐)

Se n e composto, sia q un suo fattore primo e prendiamo k tale cheqk ‖ n.

Fatto 1. Se qk ‖ n allora qk ∤(

nq

).

Infatti, se(

nq

)/qk ∈ Z allora n(n−1)···(n−q+1)

qk+1(q−1)!∈ Z dunque qk+1 | n.

Dunque, dato che (a, n) = 1 implica q ∤ an−q, il coefficiente di Xq nonsi annulla, dunque (X + a)n − (Xn + a) 6≡ 0 (mod n).

L’idea di AKS si basa sulle seguenti considerazioni

• Il Lemma 3.1 da una condizione necessaria e sufficiente moltosemplice per testare la primalita.• Purtroppo valutare la parte sinistra della congruenza richiede

tempo Ω(n).• Idea cruciale: scegliamo r in modo appropriato e riduciamo i

polinomi modulo Xr − 1 e modulo n, ovvero

testiamo la condizione (X+a)n = Xn+a nell’anelloZ/nZ[X]

(Xr − 1)(∗)

Facciamo notare che d’ora in poi denoteremo le uguaglianze inanelli del tipo sopra con la notazione

f(X) ≡ g(X) (mod h(X), n)

Page 21: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

3. DECIDERE LA PRIMALITA: IL METODO AKS 15

ad esempio denoteremo la relazione (∗) con

(X + a)n ≡ Xn + a (mod Xr − 1, n)

• Questione: se n e primo allora (∗) e vera. Il viceversa nonvale, tali numeri sono chiamati r-AKS pseudoprimi rispettoalla base a.• Soluzione: come dimostreremo, per un opportuno r = r(n), se

(∗) e vera per le ℓ basi 1, 2, . . . , ℓ, allora n e primo. Inoltre siar che ℓ sono O(poly(logn)).

Segue l’algoritmo cosı come in [3], ricordiamo che la notazioneor(n) indica l’ordine di n modulo r, posto che mcd(n, r) = 1.

Algoritmo AKS, [3]

Input: un naturale n > 11. Se n = ab per a ∈ N e b > 1 allora COMPOSTO.2. Trovare il piu piccolo r tale che or(n) > lg2 n .3. Se (a, n) 6= 1, n per qualche a ≤ r allora COMPOSTO.4. Se n ≤ r allora PRIMO.

5. Per ogni a = 1, 2, 3, . . . , ℓ := ⌊√

ϕ(r) lg n⌋se (X + a)n 6≡ Xn + a (mod Xr − 1, n) allora COMPOSTO.

6. Allora PRIMO.

La prima questione che ci proponiamo di risolvere e mostrare che ilpiu piccolo r tale da soddisfare il passo 2 e r = O(poly(log n)). La tec-nica adottata in [3] e elementare ma piuttosto ingegnosa, e sfrutta ilseguente Lemma, di cui diamo una dimostrazione completa espandendole considerazioni di Nair in [20].

Lemma 3.2. [20] Denotiamo con Mn il minimo comune multiplodei primi n numeri naturali. Per ogni n ≥ 7 vale Mn ≥ 2n.

Dimostrazione. Partiamo considerando una disuguaglianza per22n

22n = (1 + 1)2n =

2n∑

k=0

(2n

k

)

≤ (2n+ 1)

(2n

n

)

dove e stato usato lo sviluppo del binomio e il fatto che(2nn

)e il coeffi-

ciente binomiale piu grande perche(2n0

)≤(2n1

)≤ . . . ≤

(2nn

)e(

2nn+k

)=

(2n

n−k

). Notiamo che sarebbe utile la seguente: (2n+1)

(2nn

)|M2n, perche

allora risulterebbe M2n ≥ 22n, e avremmo la tesi almeno per i naturalipari. Tuttavia si vede subito che, considerando un qualche 2n+1 primo,la divisione citata non e vera. Ci chiediamo pero cosa accadrebbe se fos-sero vere le seguenti: (2n+ 1)

(2nn

)|M2n+1 e n

(2nn

)|M2n . Necessaria-

mente n(2n+1)(2nn

)|M2n+1 perche M2n |M2n+1 e mcd(n, 2n+1) = 1.

Da questo seguirebbe M2n+1 ≥ n22n ≥ 22n+1 quando n ≥ 2, ovve-ro la tesi per i naturali dispari n ≥ 5, e seguirebbe M2n+2 ≥ M2n+1 ≥

Page 22: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

16 1. PRELIMINARI

4·22n+1 = 22n+2 quando n ≥ 4, ovvero la tesi per i naturali pari n ≥ 10.Dato che M8 ≥ 28, la tesi sarebbe provata per tutti i naturali n ≥ 7.Non resta che provare il seguente

Fatto 2. Per ogni n ≥ 1 (2n+ 1)(2nn

)|M2n+1 e n

(2nn

)|M2n .

Si tratta di accorgersi che 1

n(2nn )

e l’integrale definito dello sviluppo

di un opportuno binomio. Consideriamo

I(m,n) :=

∫ 1

0

xm−1(1− x)n−mdx, definito per ogni 1 ≤ m ≤ n

Se m = n allora I(n, n) = 1n

= 1

m(nm)

. Quando 1 ≤ m < n, integrando

per parti si ottiene ancora

I(m,n) = (1− x)n−m · xm

m

∣∣1

0− n−m

m

∫ 1

0xm(1− x)n−(m+1)dx

= n−mm· I(m+ 1, n) = (n−m)!

n!(m−1)!

= 1

m(nm)

(1)

Ma d’altra parte (1− x)n−m =

n−m∑

k=0

(−1)k

(n−mk

)

xk

⇓I(m,n) =

∑n−mk=0 (−1)k

(n−m

k

) ∫ 1

0xm+k−1dx

=∑n−m

k=0 (−1)k(

n−mk

)1

m+k(2)

e k ≤ n−m implica m+ k ≤ n dunque (m+ k)|Mn dunque I(m,n) ·Mn ∈ Z. Combinando (1),(2) si vede m

(nm

)| Mn. Ora se cambiamo

le variabili in n 2n e m n, otteniamo n(2nn

)| M2n. Se cambiamo

le variabili in n 2n + 1 e m n + 1, otteniamo (2n + 1)(2nn

)=

(n+ 1)(2n+1n+1

)|M2n+1.

Ricordiamo che in quanto segue usiamo la notazione lg n per illogaritmo bianrio e or(n) per indicare l’ordine di n modulo r, posto chemcd(n, r) = 1.

Lemma 3.3. [3]Esiste r ≤ ⌈lg5 n⌉ tale che or(n) > lg2 n, per n > 2.

Dimostrazione. Notiamo che

or(n) > lg2n ⇐⇒ni 6≡ 1 (mod r) per ogni 1 ≤ i ≤ lg2n (1)

(r, n) = 1 (2)

Una condizione sufficiente per la (1) e r ∤⌊lg2n⌋∏

i=1

(ni−1) e una condizione

necessaria per la (2) e r ∤ nQ per ogni Q. Con questo in mente, fissiamo

Page 23: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

3. DECIDERE LA PRIMALITA: IL METODO AKS 17

in modo arbitrario un naturale Q e consideriamo il piu piccolo r chenon divide il prodotto

nQ ·⌊lg2n⌋∏

i=1

(ni − 1) =: P

Certamente r soddisfa (1), ma vogliamo anche che (r, n) = 1 e r ≤⌈lg5n⌉, mostriamo che questo e vero scegliendo Q in modo opportuno.Se, per assurdo, r > ⌈lg5 n⌉ allora t | P per ogni t ≤ lg5 n, ma alloraM⌈lg5n⌉ | P , allora

M⌈lg5n⌉ ≤ P < nQ+P⌊lg2 n⌋

i=1 i ≤ nQ+ 12lg2n(lg2n+1)

≤ nlg4n (scegliendo Q < lg2 n)

≤ 2⌈lg5 n⌉ ( scrivendo n = 2lg n)

ma questo contraddice il Lemma 3.2 sul minimo comune multiplo,dunque r ≤ ⌈lg5 n⌉. Assumiamo, ancora per assurdo, che r

(r,n)| P .

Sia r =∏

j pαj

j la fattorizzazione unica di r, allora ogni fattore pri-

mo pj di r tale che pαj

j ∤ P deve dividere n. Ma allora se ponia-

mo Q = ⌊lg⌈lg5 n⌉⌋, abbiamo che r | P perche vale l’implicazio-ne p

αj

j < r < ⌈lg5 n⌉ =⇒ αj ≤ Q1. Questo e assurdo, dunquer

(r,n)∤ P . Ma r e il piu piccolo numero con tale proprieta, di conseguenza

(r, n) = 1.

Dimostriamo la correttezza del metodo di AKS e proponiamo dimo-strazioni complete dei fatti 3, 4, 5, 7 e 8, che vengono invece tralasciatein [3].

Teorema 3.4. [3] L’algoritmo AKS e corretto, ovvero restituiscePRIMO se e solo se n e primo.

Dimostrazione. (Verso =⇒) Se n e primo i passi 1,2,5 non resti-tuiscono COMPOSTO, per il passo 3 vale infatti il Lemma 3.1, dunquel’algoritmo deve restituire PRIMO al passo 4 oppure al passo 6.(Ver-so ⇐) Questa parte e la piu lunga, in quanto vengono dimostrati variLemmi. Assumiamo che l’algoritmo restituisca PRIMO al passo 6 (serestituisce PRIMO al passo 4, e ovviamente corretto). Se or(n) > 1allora or(p) > 1 per qualche primo p | n, e p > r altrimenti l’algo-ritmo sarebbe terminato ai passi 3 o 4, inoltre valgono le implicazioni(n, r) = 1 =⇒ (p, r) = 1 =⇒ n, p ∈ (Z/rZ)∗. Consideriamo fissati talip, r.

Definizione 3.1. Se f(X) e un polinomio a coefficienti interi em ∈ N, diciamo che m e introspettivo per f(X) se f(X)m ≡ f(Xm)(mod Xr − 1, p).

Fatto 3. np

e introspettivo per X + a.

1In generale il piu grande naturale del tipo mk ≤ B si ha con k ≤ ⌊lgB⌋

Page 24: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

18 1. PRELIMINARI

Dimostrazione. L’algoritmo non ritorna COMPOSTO al passo5, dunque n e introspettivo per X + a ogni 0 ≤ a ≤ ℓ, perche se valela congruenza (*) modulo n, vale anche modulo p visto che p | n. Datoche p e primo, per il Lemma 1, p e introspettivo per X + a, per ogni0 ≤ a ≤ ℓ. In quanto segue consideriamo un cambiamento di variabiledel tipo X Xpk−1

. Il fatto che entrambi n e p siano introspettivi, eche Xr − 1 | Xrpk−1 − 1 se k ≥ 1, motiva le seguenti implicazioni

(Xp + a)np ≡ (X + a)n ≡ (Xp)

np + a (mod Xr − 1, p)

⇓(Xpk

+ a)np ≡ (Xpk

)np + a (mod Xpk−1r − 1, p)

⇓(Xpk

+ a)np ≡ (Xpk

)np + a (mod Xr − 1, p)

per ogni k ≥ 1. Se con la lunga divisione per polinomi, ovvero il classicoalgoritmo per la divisione tra polinomi che e del tutto simile a quelloper la divisione tra interi, dividiamo Xpk

per Xr − 1 vediamo che valeXpk ≡ Xpk (mod r) (mod Xr − 1, p). Dato che (p, r) = 1 per il piccolo

teorema di Fermat allora Xpor(p) ≡ X (mod Xr − 1, p) e cosı si ha latesi.

Lemma 3.5. [3] Se m,m′ sono introspettivi per f(x) allora anchem ·m′ e introspettivo per f .

Dimostrazione. Si procede in maniera diretta usando la defi-nizione di introspettivita e ricordandosi ad un certo punto di usareX Xm e Xr − 1 | Xm·r − 1

Lemma 3.6. [3] Se m e introspettivo per f(x), g(x) allora m eintrospettivo per f(x) · g(x).

Dimostrazione. Si procede in maniera diretta usando la defini-zione di introspettivita.

Prendiamo

I := (n

p

)i

pj | i, j ≥ 0

Ir := i (mod r) | i ∈ I, t := #Ir

P := ℓ∏

a=0

(x+ a)ea | ea ≥ 0

Per i Lemmi precedenti ogni numero in I e introspettivo per ogni poli-nomio in P . Ir e un sottogruppo di (Z/rZ)∗ (perche e un sottoinsiemefinito chiuso rispetto al prodotto).

Page 25: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

3. DECIDERE LA PRIMALITA: IL METODO AKS 19

Definizione 3.2. Denotiamo con Φr ∈ C[X] l’r-esimo polinomiociclotomico, definito come

Φr :=

ϕ(r)∏

k=1

(x− ζk)

dove le ζk sono le radici primitive r-esime dell’unita in C.

Fatto 4. Φr e monico a coefficienti in Z.

Dimostrazione. Sia ζ ∈ C una radice r-esima primitiva dell’u-nita. ζ i ha ordine r

(r,i), dunque ogni radice r-esima e una radice d-esima

primitiva, dove d e il suo ordine e d | r. Considerando la fattorizzazionein fattori lineari di Xr−1 su C, possiamo dunque raggruppare le radicid-esime primitive per ogni d | r, ottenendo

Xr − 1 =∏

d|rΦd(X) =⇒ Φr(X) =

Xr − 1∏

d|rd6=r

Φ(X)

Ma Φ1(X) = X−1 e monico e a coefficienti in Z, e dunque per induzionesu r anche Φr(X) e monico a coefficienti in Z, essendo il quoziente diuna divisione tra polinomi monici a coefficienti interi.

Anche considerando il campo finito Fp possiamo prendere il campodi spezzamento FS del polinomio Xr − 1, e considerando le radici r-esime primitive in FS ha senso parlare del polinomio ciclotomico Φr(X)su Fp, e varra ancora la relazione ricorsiva per Φr(X) vista nel Fatto4, cosı Φr(X) | Xr − 1.

Fatto 5. Φr si fattorizza su Fp in fattori irriducibili distinti digrado or(p).

Dimostrazione. Che i fattori di Φr(X) siano distinti deriva daΦr(X) | Xr − 1 e mcd(Xr − 1, rXr−1) = 1. Sia ζ una radice primitiva

primitiva r-esima. ζ ∈ Fpk ⇐⇒ ζpk−1 = 1 ⇐⇒ pk − 1 ≡ 0 (mod r)e il piu piccolo k che va bene e or(p). Dunque ζ ∈ Fpor(p). Segue che ilgrado del polinomio minimo di ζ e or(p). Per la generalita di ζ si puoconcludere che Φr si spezza in fattori irriducubili di grado or(p), percheogni suo fattore irriducibile e polinomio minimo di una qualche ζ .

Sia ζ ∈ F una radice r-esima primitiva, e sia h(X) ∈ Fp il suopolinomio minimo. Allora h(X) e irriducibile e h(X) | Φr(X) | Xr− 1,

e ha ordine or(p) per il Fatto 5. Inoltre FS = Fp(ζ) ∼=Fp[X]

(h(X)), dove

l’isomorfismo e g(X) 7−→ g(ζ). Se or(p) > 1 allora h(X) ha gradomaggiore di uno. Definiamo

G := f mod h(X), p | f ∈ P

Page 26: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

20 1. PRELIMINARI

vale a dire che G contiene i polinomi f ∈ P modulo h(X) (cioe, parlan-do rozzamente, i resti della divisione tra polinomi f(X)/h(X)) consi-derati con i coefficienti ridotti modulo p: G e un gruppo generato dagli

elementi X,X + 1, . . . , X + ℓ del campo F := Fp[X](h(X))

(si tratta di un

campo perche p e un primo e h(X) e irriducibile) ed e un sottogruppodi F ∗.

Lemma 3.7 ([3], Lenstra Jr.). #G ≥(

t+ℓt−1

)

Dimostrazione. Per quanto visto, X ∈ F := Fp[X]

(h(X))e una radice

r-esima primitiva. Ci serve il seguente

Fatto 6. Polinomi di grado < t distinti in P , restano distinti anchecome elementi di G.

Dimostrazione. (Lenstra Jr.) Siano f(X), g(X) due polinomidistinti di P di grado < t. Assumiamo per assurdo che f(X) ≡ g(X)(mod h(X), p). Sia m ∈ Ir, allora f(X)m ≡ g(X)m (mod h(X), p)dunque f(Xm) ≡ g(Xm) (mod h(X), p) dunque Xm e una radice in Fdel polinomio non nullo f − g ∈ P , per ogni m ∈ Ir. Ma (m, r) = 1implica che Xm e una radice primitiva r-esima in F , per la generalitadi m si puo affermare dunque che f−g ha in F almeno t radici. Questoe assurdo perche f − g ha grado < t.

Dunque gli elementi X,X + 1, . . . , X + ℓ restano tutti distinti in F(anche perche or(p) > log2 n implica r > log2 n dunque ℓ =⌊

ϕ(r) logn⌋<√r log n < r < p) e sono tutti non nulli in F perche h(X) ha grado

or(p) > 1. Per il Fatto 6 vi sono almeno ℓ + 1 polinomi lineari in Ge almeno

(ℓ+kk

)polinomi lineari di grado k per ogni k < t. Dunque in

totale almeno∑t−1

k=0

(ℓ+kk

)polinomi distinti di grado < t. Resta solo da

provare il seguente fatto.

Fatto 7.t−1∑

k=0

(ℓ+ k

k

)

=

(t+ ℓ

t− 1

)

Dimostrazione. E piu semplice considerare t−1 t e dimostrareche

∑tk=0

(ℓ+kk

)=(

t+ℓ+1t

). Notiamo che il binomio a destra coincide con

il numero di multi-sottoinsiemi di multi-cardinalita t di un insieme dicardinalita ℓ+2; sia D l’insieme di tali multi-sottoinsiemi. La somma asinistra conta il numero di multi-sottoinsiemi di multi-cardinalita ≤ t diun insieme di cardinalita ℓ+1; sia L l’insieme di tali multi-sottoinsiemi.E possibile stabilire una biezione tra D e L. Facciamo riferimento aelementi “numerati” del tipo 1, 2, . . . , ℓ+ 1, ℓ+ 2. (mappa D 7→ L) Siad ∈ D, se ℓ + 2 6∈ d allora d ∈ L. Se ℓ + 2 ∈ d allora consideriamoil multi-insieme l ottenuto da d togliendo tutti gli ℓ + 2. Allora l ∈ Le l ha multi-cardinalita t − m se m e la molteplicita di ℓ + 2 in d.

Page 27: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

3. DECIDERE LA PRIMALITA: IL METODO AKS 21

(mappa L 7→ D) Sia l ∈ L, se l ha multi-cardinalita t allora l ∈ D. Seinvece ha multi-cardinalita k < t, allora consideriamo il multi-insiemed ottenuto da l unendogli ℓ + 2 con molteplicita t − k, cosı l ∈ D. Ledue associazioni sono una l’inversa dell’altra, dunque #D = #L.

Lemma 3.8. [3] Se n non e potenza di un primo allora #G ≤ n√

t.

Dimostrazione. Prendiamo il seguente sottoinsieme di I,

I√t := (np)i · pj|0 ≤ i, j ≤ ⌊

√t⌋

Se n non e potenza di un primo allora #I√t = (⌊√t⌋ + 1)2 > t per-

cio esistono almeno due elementi m1 > m2 congrui modulo r, dun-que Xm1 ≡ Xm2 (mod Xr − 1, p). Se f(X) ∈ P allora f(X)m1 ≡f(Xm1) ≡ f(Xm2) ≡ f(X)m2 (mod Xr − 1, p) dunque f(Xm2) ≡f(X)m2 (mod h(X), p). Dunque l’elemento f(X) ∈ G,F e una radicedel polinomio Q := xm1−xm2 , e per la generalita di f(X), Q ha almeno

#G radici distinte in F . Ma allora #G ≤ m1 < (np· p)⌊

√t⌋ < n

√t, in

quanto m1 e grado di Q.

Ora vediamo perche n deve essere primo.

t ≥ or(n) > lg n =⇒ #G ≥(t+ ℓ

t− 1

)

≥(ℓ+ 1 + ⌊

√t lg n⌋

⌊√t lg n⌋

)

t ≤ ϕ(r) =⇒ ℓ ≥ ⌊√t lgn⌋ =⇒

(ℓ + 1 + ⌊

√t lgn⌋

⌊√t lgn⌋

)

≥(

2⌊√t lg n⌋+ 1

⌊√t lg n⌋

)

Fatto 8.(2⌊

√t lg n⌋+1

⌊√

t lg n⌋)> 2⌊

√t log n⌋+1

Dimostrazione. Sia a := ⌊√t lg n⌋.

(2a + 1

a

)

=

a︷ ︸︸ ︷

(2a+ 1)

a

(2a)

a− 1· · · (a+ 2)

1

Ma 2a+1−ia−i

> 2, e a ≥ 2 implica a+ 2 ≥ 4, dunque la tesi.

Pertanto

#G > 2⌊√

t log n⌋+1 ≥ n√

t

ma per il bound precedente questo implica che n e la potenza di unprimo. Dunque n e primo, altrimenti l’algoritmo avrebbe finito al passo1.

Page 28: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

22 1. PRELIMINARI

4. Problemi Intrattabili

Diamo le definizioni formali dei problemi che studieremo.Il seguente e noto come il problema della fattorizzazione di interi.

FACTORINGDato un naturale composto n trovarne un fattore d non banale,vale a dire un 1 < d < n tale che d | n.

Ne segue la versione decisionale DFACTORING.DFACTORINGDato un naturale composto n e un naturale m tale che 1 < m < n,decidere se esiste un fattore non banale d di n tale che 1 < d ≤ m.

Ci riferiremo a RSAP quando parleremo del critto-sistema RSA [26].

RSAPData la tripla (n,me mod n, e) per n, e ∈ N0, m ∈ Z/nZ,calcolare m mod n.

Chiamiamo GDLP il problema del logaritmo discreto su gruppi cicliciqualsiasi, DLP il problema del logaritmo discreto sul gruppo (Z/pZ)∗

per p un primo e n-DLP il problema del logaritmo discreto su unsottogruppo ciclico qualsiasi del gruppo (Z/nZ)∗ per n ∈ N0. Forma-lizziamo solo GDLP poiche gli altri problemi sono del tutto simili.GDLPDato il gruppo ciclico finito con n elementi Cn, dato un generatoreg di Cn, vale a dire Cn = g, g2, . . . , gn−1, gn, e dato un elementoa ∈ Cn, trovare l’unico naturale ℓ ∈ [1, n] tale che a = gℓ

Formalizziamo infine il problema di Diffie-Hellman DHP e alcunesue varianti, vale a dire il problema di Diffie-Hellman decisionale DDHe il problema di Diffie-Hellman generalizzato GDHPk dove k ≥ 2 e unintero.DHPDato il gruppo ciclico finito con n elementi Cn, un generatore g di Cn,ed elementi ga e gb, determinare gab

DDHDato il gruppo ciclico finito con n elementi Cn, un generatore g di Cn,ed elementi ga, gb e gc, decidere se gc = gab, o equivalentemente sec ≡ ab (mod n).

Il problema di Diffie-Hellman generalizzato considera il caso in cui cisiano k ≥ 2 “utenti” che vogliono comunicare in maniera sicura. Ogniutente sceglie una chiave ai e puo effettuare comunicazioni del tipog

Q

i∈I ai . Diamo una formalizzazione di seguito.GDHPk

Page 29: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

4. PROBLEMI INTRATTABILI 23

Dato il gruppo ciclico finito Cn, un generatore g di Cn, un intero k ≥ 2,un vettore ~a = (a1, . . . , ak) ∈ 1, . . . , nk e gli elementi di Cn

del tipo gQ

i∈I ai per ogni sottoinsieme proprio I ⊂ 1, . . . , k,il problema consiste nel calcolare g

Q

i∈1,...,k ai .

Page 30: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la
Page 31: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

CAPITOLO 2

Fattorizzazione di Interi

Il problema della fattorizzazione di interi ha interessato molti mate-matici del passato. A riguardo e ben noto il pensiero di Gauss, presentenell’articolo 329 delle sue Disquisitiones Arithmeticae (1801):

Il problema di distinguere i numeri primi da quellicomposti, e di scomporre questi ultimi nei loro fattoriprimi e noto essere uno dei piu importanti e utili del-l’aritmetica. [...] ogni mezzo possibile dovrebbe essereesplorato per la soluzione di un problema cosı elegantee cosı celebrato. - Carl Friedrich Gauss (1777-1855)

E difficile pero immaginare cosa Gauss possa intendere esattamenteper “soluzione”. Senza ombra di dubbio, la nascita della teoria dellacomplessita computazionale ha portato nuovi “mezzi”, per una piu pro-fonda comprensione di questo. Oggi possiamo parlare di “soluzione” inriferimento alla classe di complessita a cui appartiene la versione deci-sionale del problema, DFACTORING. Tuttavia, stabilire tale classedi appartenenza e un problema che sembra completamente fuori dallaportata delle nostre conoscenze attuali. Lo stato dell’arte, per quan-to riguarda i metodi di fattorizzazione, e costituito da metodi basatisulla tecnica nota come Crivello1, ma, come vedremo, un’analisi rigo-rosa di tali metodi costituisce un problema aperto. In questo capitolostudiamo i metodi basati su diversi tipi di Crivello, ovvero il Crivel-lo Quadratico, noto in letteratura come QS, e il Crivello su campi dinumeri, noto come GNFS, esplicitando le assunzioni euristiche che ren-dono possibile un’analisi asintotica del tempo di calcolo. L’ esposizionesi basa su quella di Pomerance in [14], ma cerchiamo di espandere ledimostrazioni che vengono tralasciate o solo abbozzate in [14], con loscopo di fornire una esposizione piu chiara e dettagliata.

1. Il Crivello di Eratostene

1.1. Primalita e Fattorizzazione. Il primo algoritmo del Cri-vello si deve al matematico greco Eratostene di Cirene (276 a.C - 194a.C.) e riguarda, in prima battuta, il problema della primalita. L’ideae semplice: immaginiamo di voler determinare tutti i numeri primi mi-nori o uguali di un certo n, allora non dobbiamo fare altro che scrivere

1Parleremo sempre di Crivello “algoritmico”, non dei crivelli di Brun, ecc, chevengono usati nella teoria analitica dei numeri.

25

Page 32: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

26 2. FATTORIZZAZIONE DI INTERI

tutti i naturali in una lista, 2, 3, 4, 5, 6, 7, 8, 9, 10, . . ., cancellare tutti imultipli non banali di due, 2, 3, 6 4, 5, 6 6, 7, 6 8, 9, 6 10, . . ., cancellare tuttii multipli non banali di tre, 2, 3, 6 4, 5, 6 6, 7, 6 8, 6 9, 6 10, . . ., e reiterareil procedimento fino a che non si siano cancellati tutti i multipli nonbanali di un primo minore o uguale a

√n. La formalizzazione dell’al-

goritmo in pseudo-codice e proposta di seguito.

Crivello di Eratostene per la Primalita

input: un naturale n1. Inizializzare il vettore P [i] a PRIMO per ogni 2 ≤ i ≤ n2. Per ciascun i← 2, 3, 4, . . . , ⌊√n⌋3. Se P [i] = PRIMO4. j ← i2

5. Ripetere finche j ≤ n6. P [j]← COMPOSTO7. j ← j + i8. Restituire P

E molto semplice modificare questo metodo per calcolare i fattori primidi tutti i naturali minori o uguali a n: infatti e sufficiente predisporreuna lista per ogni naturale e aggiungervi i fattori man mano che si pro-cede nel Crivello. Nello pseudo-codice che segue si assume che V sia unvettore di dimensione n e che contenga in ogni posizione una strutturadati avente due attributi, isPrime di tipo booleano e primePow ditipo intero, e una lista (Factors). Per ogni 1 ≤ i ≤ n, V [i].Factorsconterra il multi-insieme dei fattori primi di i. Ad esempio se i = 12,alla terminazione dell’algoritmo avremo V [i].Factors ≡ [2, 3, 2]. Inoltrese i = pα e la potenza perfetta di un primo, allora V [i].primePow varrap, altrimenti varra 0, ad indicare che i e diviso da almeno due fattoriprimi.

Page 33: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

1. IL CRIVELLO DI ERATOSTENE 27

Crivello di Eratostene per la Fattorizzazione

Input: Il naturale n1. Per ciascun i← 2, 3, . . . n2. inizializzare i campi isPrime e primePow del vettore V[i] a

V [i].isPrime← vero e V [i].primePow← 03. Per ciascun i← 2, 3, . . . n4. Se V [i].isPrime = vero5. j ← i6. V [i].primePow ← i7. nextPow← i2

8. Finche j ≤ n9. V [j].Factors.add(j)10. Se j > i11. V [j].isPrime← falso12. Se j = nextPower13. V [j].primePow← i14. nextPow← nextPow · i15. j ← j + i16. Altrimenti, se V [i].primePow > 017. j ← i18. Finche j ≤ n19. V [j].Factors.add(V [i].primePow)20. j ← j + i21. Restituire V

1.2. Trovare i numeri lisci. Il Crivello di Eratostene per la fat-torizzazione completa puo essere usato per trovare tutti i naturali in[2, n] tali che i loro fattori primi siano minori o uguali ad un certo B,ovvero i naturali B-lisci. Si tratta di notare che se crivelliamo solo iprimi minori o uguali di B e le potenze di tali primi, vale a dire i pα taliche p ≤ B, allora i naturali B-lisci saranno tutti e soli quelli che allaterminazione risulteranno uguali al prodotto dei fattori presenti nellalista associatagli, in pseudo-codice diciamo gli i tali che

i =∏

j∈V [i].Factors

V [i].Factors.get(j)

Naturalmente, se non siamo interessati alla fattorizzazione, possiamosostituire la lista con un intero prod che tiene conto del prodotto deifattori primi B-lisci. Dunque la modifica e minima, e viene propostadi seguito.

Page 34: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

28 2. FATTORIZZAZIONE DI INTERI

Crivello di Eratostene per numeri B-lisci

Input: I naturali n,B1. Per ciascun i← 2, 3, . . . n2. V [i].isPrime← vero, V [i].primePow ← 0,

V [i].product← 13. Per ciascun i← 2, 3, . . . , n4. Se V [i].isPrime = vero e i ≤ B5. j ← i6. V [i].primePow← i7. nextPow← i2

8. Finche j ≤ n9. V [j].product← V [j].product · V [i].primePow10. Se j > i11. V [j].isPrime← falso12. Se j = nextPower13. V [j].primePow← i14. nextPow← nextPow · i15. j ← j + i16. Altrimenti, se 0 < V [i].primePow ≤ B17. j ← i18. Finche j ≤ n19. V [j].product← V [j].product · V [i].primePow20. j ← j + i

21. Restituire

i ∈ [2, n]∣∣∣ i = V [i].product

Tale algoritmo potrebbe essere a sua volta lievemente modificato inmodo tale da svolgere tutte le operazioni aritmetiche con i logaritmi.Il vantaggio principali sarebbe che i prodotti (cioe la variabile pro-duct) di tutti i naturali gestiti resterebbero “piccoli”, ed inoltre leoperazioni di prodotto diventerebbero somme. Tuttavia la comples-sita computazionale di un’aritmetica logaritmica esatta rimane alta:per questo motivo si puo lavorare con delle approssimazioni del tipolog23 ≈ 2, log27 ≈ 3, . . . e accettare un errore di al piu log2B.

1.3. Complessita computazionale dei Crivelli. Analizzandola prima versione del crivello di Eratostene proposta, ci rendiamo contoche la complessita in tempo dell’algoritmo e legata al numero di multiplidi p nell’intervallo [2, n], per ogni primo p preso in [2,

√n]. Pertanto il

numero di passi risulta essere limitato superiormente da

O

(∑

p≤n

n

p

)

E nota la seguente stima.

Page 35: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

1. IL CRIVELLO DI ERATOSTENE 29

Teorema 1.1 (Mertens).

p≤n

1

p= ln lnn +O(1)

Dimostrazione. [16], teorema 427

Segue direttamente che

Corollario 1.2. La complessita in tempo del Crivello di Erato-stene per la Primalita e O(n ln lnn).

La complessita dei crivelli per la fattorizzazione e per i nume-ri B-lisci e, similmente, legata al numero di multipli delle potenzeperfette di primi, pα. Nel crivello per la fattorizzazione risulta per-

tanto essere limitata da O(∑

pα≤nnpα

)

, e nel crivello per numeri B-

lisci da O(∑

pα≤n, p≤Bnpα

)

. Mostriamo ora che tra le potenze di primi

dominano i primi, nel senso specificato dalla seguente proposizione.

Proposizione 1.3.∑

pα≤n

1

pα= ln lnn+O(1)

Dimostrazione. Consideriamo la differenza

∆ :=∑

pα≤n

1

pα−∑

p≤n

1

p

e mostriamo che ∆ converge a un limite finito. Da questo seguiral’esistenza di una costante C tale che

pα≤n1

pα =∑

p≤n1p

+ C, che

combinata con la proposizione 1.1 equivale alla tesi. Abbiamo

∆ =∑

pα≤nα≥2

1

pα<

∞∑

m=2

∞∑

q=2

1

mq(2)

perche tutti i termini della somma a sinistra compaiono nella seriea destra e inoltre quest’ultima e a termini positivi, il che assicura laconvergenza assoluta. Notiamo che per ogni m fissato vale

∞∑

q=2

1

mq=

m

m− 1− 1− 1

m=

1

m(m− 1)=

1

m− 1− 1

m

allora la serie in (2) risulta essere una serie telescopica, e si ottienepertanto

∞∑

m=2

∞∑

q=2

1

mq=

1

m− 1

∣∣∣m=2

= 1

Page 36: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

30 2. FATTORIZZAZIONE DI INTERI

Come conseguenza immediata vediamo che anche i Crivelli di Erato-stene per fattorizzare e per riconoscere numeri B-lisci hanno una com-plessita in tempo rispettivamente uguale a O(n ln lnn) e O(n ln lnB).Riassumiamo quanto provato nella seguente

Proposizione 1.4. Consideriamo i Crivelli di Eratostene per pri-malita, fattorizzazione e rispettivamente per numeri B-lisci. Il nu-mero medio di passi fondamentali eseguiti per ogni particolare interonell’intervallo [2, n] e O(ln lnn) e rispettivamente O(ln lnB).

Il Crivello di Eratostene e dunque molto efficiente in termini ditempo medio, se vogliamo calcolare la primalita, la fattorizzazione, oi numeri lisci in un certo intervallo. Purtroppo lo spazio utilizzato ri-mane sempre O(n), il che rende impraticabile l’algoritmo quando n emolto grande decimali. Il problema puo essere parzialmente affrontatosegmentando l’intervallo [2, n] in molti intervalli piccoli, ma la comples-sita ovviamente non si abbassa. Tuttavia tale metodo, in particolarela versione per trovare numeri lisci, svolge una parte molto importantenel Crivello quadratico, argomento della sezione che segue, e in alcunialgoritmi per il problema del Logaritmo Discreto.

2. Il Crivello Quadratico

Definizione 2.1. Sia n un numero naturale. Le soluzioni dellacongruenza x2 ≡ 1 (mod n) si dicono radici quadrate dell’unita modulon.

Proposizione 2.1. Ogni naturale dispari n ha esattamente 2ω(n)

radici quadrate dell’unita modulo n.

Dimostrazione. Sia n =∏ω(n)

i=1 pαi

i , con αi > 0 per ogni i, lafattorizzazione canonica di n. Per la proposizione 2.2 del Capitolo 1x2 ≡ 1 (mod n) se e solo se, per ogni 1 ≤ i ≤ ω(n), x2 ≡ 1 (mod pαi

i ).Per la proposizione 2.3 del Capitolo 1 questo e vero se e solo se x ≡±1 (mod pαi

i ). Sia S l’insieme delle ω(n)-uple ad elementi in −1, 1,ovviamente |S| = 2ω(n). Il Teorema Cinese dei Resti 2.4 del Capitolo 1ci assicura che per ogni elemento s = (s1, . . . , sω(n)) ∈ S il sistema dicongruenze x ≡ si (mod pαi

i ), per 1 ≤ i ≤ ω(n), ammette una e unasola soluzione modulo n. Dato che per ipotesi pαi

i > 2 e dunque 1 6≡ −1(mod pαi

i ), vi sono esattamente |S| = 2ω(n) radici quadrate dell’unitamodulo n, una per ogni s ∈ S.

Dalla proposizione 2.1 segue che ogni naturale dispari composto chenon e la potenza perfetta di un primo ha almeno quattro radici qua-drate dell’unita modulo n, di cui due sono le banali 1 e −1. Questovuol dire che esisteranno sempre almeno due radici non banali del tipox 6≡ ±1 (mod n) tali che n | (x+1)(x−1); in altre parole alcuni fattoridi n saranno fattori di x+1, ed altri di x−1. Percio mcd(x±1, n) sara

Page 37: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

2. IL CRIVELLO QUADRATICO 31

Figura 1. Una illustrazione della proposizione 2.1 nelcaso particolare n = pαqβrγ, per p, q, r primi distinti eα, β, γ ≥ 1. Le soluzioni dei tre sistemi di congruenzesono tre delle otto radici quadrate dell’unita modulo n

un fattore non banale di n, il nostro obiettivo. Affermiamo che trattaresolo i composti dispari che non sono potenze perfette di un primo nonci fa perdere generalia: infatti, se n fosse pari, allora avremmo imme-diatamente il fattore non banale 2, se n fosse la potenza perfetta di unprimo, basterebbe estrarre ⌊n 1

k ⌋, ad esempio con il metodo di Newton,al piu O(lnn) volte, e controllare se la k-esima potenza e n. Inoltresappiamo che il calcolo di mcd(x±1, n) richiede un tempo polinomialenel numero di bit di n. Riassumendo, abbiamo provato che

Fatto 9. Per risolvere il problema FACTORING e sufficientetrovare radici quadrate non banali dell’unita modulo n, per n dispari econ almeno due fattori primi distinti.

Con questo in mente, ci si puo rendere conto che trovare tali radicie equivalente a trovare due residui x e y (mod n) tali che

x2 ≡ y2 (mod n) , (3)

x 6≡ ±y e mcd(xy, n) = 1, perche allora (xy−1)2 ≡ 1 (mod n) exy−1 6≡ ±1 (mod n), vale a dire che xy−1 e la radice cercata. In veritapotremmo anche usare direttamente la (3) per calcolare i fattori nonbanali mcd(x± y, n), come visto poco sopra. L’idea fondamentale delcrivello quadratico e proprio trovare soluzioni della (3) generando con-gruenze nella forma x2

i ≡ ai (mod n) per i = 1, 2, 3, . . . e poi trovandoun sottoinsieme di tali congruenze, diciamo per j ∈ I , tali che

j∈I aj

Page 38: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

32 2. FATTORIZZAZIONE DI INTERI

sia un quadrato perfetto, di modo che

j∈I

x2j

︸ ︷︷ ︸

x2

≡∏

j∈I

aj

︸ ︷︷ ︸

y2

(mod n)

Una questione importante e che la condizione x 6≡ ±y (mod n) viene atutti gli effetti ignorata: se questo porta un errore allora il metodo vienere-iterato. Considerazioni seguenti implicheranno che in questo modol’errore puo essere reso piccolo quanto vogliamo con rapidita esponen-ziale rispetto al numero di re-iterazioni.Dobbiamo ancora stabilire come trovare in modo efficiente un sottoin-sieme I tale che il prodotto degli aj , per j ∈ I, sia un quadrato perfetto.Per fare questo, notiamo per prima cosa che se un certo ai ha un fattoreprimo grande in relazione ai fattori primi degli altri ai, allora includeretale ai nel sottoinsieme cercato non sembra una buona idea, perchesarebbe necessario avere anche un’altro ai

′ con lo stesso fattore primogrande. Introduciamo dunque un limite superiore per i fattori primidegli ai, chiamiamo tale limite B = B(n). In altre parole lavoreremosolo con numeri B-lisci. Stimeremo il valore effettivo di B in seguito,quando ci occuperemo della complessita computazionale del metodo inanalisi. Notiamo poi che ad ogni numero B-liscio possiamo associare

un vettore degli esponenti: ad m =∏π(B)

i=1 pei

i , con ei > 0 per ogni i,associamo il vettore ad elementi nel campo di Galois, F2, definito da

~v(m) :=(e1 (mod 2), e2 (mod 2), . . . , eπ(B) (mod 2)

)∈ Fπ(B)

2

(4)In questo modo m e un quadrato perfetto se e solo se ~v(m) e lo zero

dello spazio vettoriale Fπ(B)2 . Si puo notare una conseguenza per noi

fondamentale: considerando l’insieme degli ai, per ogni sottoinsiemedi indici I, il prodotto

j∈I ai e un quadrato perfetto se e solo i vet-

tori associati ~v(aj) sono linearmente dipendenti, vale a dire se e solose∑

j∈I ~v(aj) = 0. Detto questo, l’Algebra Lineare ci aiuta ancora:

possiamo affermare che un insieme di π(B) + 1 numeri B-lisci contienenecessariamente un sottoinsieme che porta ad un quadrato perfetto,perche π(B) e la dimensione dello spazio vettoriale che emerge con ladefinizione di ~v(m). Il calcolo effettivo di tale sottoinsieme si ridu-ce quindi ad un problema di Algebra Lineare ben studiato, e quindipossiamo usare un algoritmo ben noto in Algebra Lineare Numerica,l’eliminazione di Gauss, di complessita O(B3). In letteratura vengonosuggeriti anche altri metodi (Wiedmann [31] e Lanczos [30]) adatti amatrici sparse che permettono di avere un tempo di calcolo O(BN)dove N e il numero di posizioni non nulle della matrice. Il seguentemetodo a questo punto sembra promettente:

Page 39: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

2. IL CRIVELLO QUADRATICO 33

1. su input n, naturale dispari con almeno due fattori primi2. calcolare B = B(n), per gestire numeri B-lisci3. trovare π(B) + 1 numeri B lisci, x1, . . . , xπ(B)+1

4. calcolare, per ogni 1 ≤ i ≤ π(B) + 1, l’ai tale che x2i ≡ ai (mod n)

5. generare i vettori associati agli ai definiti in (4)6. e usare un algoritmo di Algebra Lineare Numerica per trovare un

sottoinsieme di vettori linearmente dipendenti, ~v(aj1), ~v(aj2), . . ..7. Detto I = j1, j2, . . . ⊆ 1, 2, . . . , π(B) + 1

l’insieme degli indici dei vettori trovati al passo 5, e definitix =

j∈I xj e y2 =∏

j∈I aj , calcolare d = mcd(x− y, n) conl’algoritmo di Euclide o simili.

8. restituire d.

Gli unici passi che presentano delle difficolta non banali sono il 2 il3 e il 5, anche se quest’ultimo abbiamo gia detto essere affrontabile conl’eliminazione di Gauss e altri algoritmi noti, dunque ci proponiamoora di chiarire i restanti due, insieme alla complessita computazionalein tempo dell’algoritmo.

2.0.1. Trovare numeri B-lisci del tipo x2 (mod n). Un fatto noto, efacile da provare, e che per ogni naturale dispari n esistono x, y > 0 taliche n = x2−y2. In particolare se n e tale che n = ab, con a, b ≥ 1, allorasi verifica subito (a+b

2)2 − n = (a−b

2)2 ≥ 0, dunque si vede anche che

a+b2≥ √n 2. Pertanto, se vogliamo trovare buoni candidati ad essere

dei quadrati del tipo x2 ≡ y2 (mod n) una buona idea e considerare inaturali a partire dalla radice di n, vale a dire porre

xk+1 = ⌈√n⌉+ k

per k = 0, 1, 2, . . . Per calcolare quali tra questi sono effettivamente B-lisci, usiamo il crivello di Eratostene per numeri lisci presentato nellaSezione 1.2 di questo capitolo, dobbiamo notare che, fino a quandoxk+1 < ⌈

√2n⌉, il residuo da calcolare vale

x2k+1 (mod n) = x2

k+1 − n (5)

dunque e sufficiente crivellare solo sui primi, e sulle potenze di taliprimi, che dividono almeno uno degli x2

k+1−n, vale a dire i primi p percui x2

k+1 ≡ n (mod p). Questo vuol dire considerare solo il primo 2 e iprimi dispari minori o uguali a B tali che n sia un residuo quadraticomodulo p, ovvero tali che per il simbolo di Legendre, calcolabile in

tempo polinomiale, si abbia(

np

)

= 1. Facciamo ora una assunzione

euristica sul numero di tali primi:

2tale disuguaglianza e anche nota come AM-GM

Page 40: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

34 2. FATTORIZZAZIONE DI INTERI

Congettura 2.1 (Pollard et al.). Sia Q := #p ≤ B |(

np

)

= 1il numero di primi minori o uguali di B tali che n sia un residuo qua-dratico modulo p. Q vale circa 1

2π(B), ovvero, n e un residuo quadratico

modulo p per approssimativamente la meta dei primi p ≤ B.

E naturale allora chiedersi, fissati n e B, quanti numeri a partire da⌈√n⌉ dobbiamo crivellare in media prima di avere un insieme di almenoQ+ 1 naturali B-lisci, in modo da garantire l’indipendenza lineare deivettori degli esponenti. Un risultato utile a questo proposito si trovain [10] ed e il teorema 2.11 trattato nella sezione 2.4. Una applicazionediretta del teorema ci porta ad assumere euristicamente la seguente:

Congettura 2.2 (Pollard, et al.). La probabilita che un residuodel tipo x2 (mod n) sia B-liscio e approssimativamente u−u.

Dove, ricordiamo, u = ln nlnB

. Il motivo per cui possiamo solo spe-rare che 2.2 sia vera, e che il teorema 2.11 si dimostra sulla totalitadell’intervallo [2, n], mentre noi consideriamo un sottoinsieme di taleintervallo composto solo dai residui del tipo x2 (mod n): non sappia-mo provare che la distribuzione dei numeri B-lisci rimane la stessa pertale sottoinsieme. Inoltre dobbiamo fare una ulteriore considerazionesulla grandezza dei residui x2 (mod n): se

√n < x <

√n + nǫ, per

0 < ǫ < 1, allora x2 − n = 2n1/2+ǫ + n2ǫ = O(√n). Dunque e piu

plausibile applicare il teorema 2.11 all’intervallo [2,√n], vale a dire,

ponendo u = lnn2 lnB

.Assumendo le euristiche 2.1 e 2.2 possiamo concludere che vale laseguente:

Proposizione 2.2. Supponendo di usare il Crivello per numeri li-sci sulla sequenza (5), i) il valore atteso di elementi da testare di talesequenza, prima di ottenere un numero B-liscio, e approssimativamen-te uu. ii) Sono necessari approssimativamente Q + 1 = 1

2π(B) + 1

numeri lisci per ottenere la dipendenza lineare dei vettori esponentiassociati.

Dimostrazione. Per provare i) e sufficiente notare che si trattadella media di una distribuzione geometrica di probabilita. Per provareii) basta notare che dalla euristica 2.2 segue che lo spazio vettoriale deivettori esponenti ha dimensione circa Q.

Come conseguenza immediata vediamo che dobbiamo testare con ilCrivello in totale circa

uu(Q+ 1) (6)

elementi della sequenza (5).2.0.2. Stimare B minimizzando la Complessita in tempo. Combi-

nando la (6), con la complessita media del Crivello per numeri lisci

Page 41: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

2. IL CRIVELLO QUADRATICO 35

della proposizione 1.4, vediamo che il numero di passi fondamentali delCrivello quadratico risulta approssimativamente

T (B) := uu(Q+ 1) ln lnB, dove u =lnn

2 lnBe Q =

π(B)

2(7)

Ci chiediamo quale sia il valore di B = B(n) che minimizza tale espres-sione quando n e molto grande. Dobbiamo pero tenere conto del fattoche vi sono due vincoli contrapposti: se B e “piccolo” allora la frequen-za attesa di numeri B-lisci, data da uu, sara “grande”, in altre paroletrovare molti numeri B-lisci sara difficile; viceversa sara “grande” ladimensione dello spazio vettoriale dei vettori associati Q, dato che peril Teorema dei Numeri Primi vale Q ≈ B

2 ln B. Dunque non possiamo

concludere scegliendo valori troppo piccoli o troppo grandi per B, madobbiamo trovare un minimo per valori “intermedi” di B; questo cisuggerisce di cercare un punto a derivata nulla, mostriamo allora conqualche considerazione che vale il seguente:

Teorema 2.3. Sia Ln[α, c] come nella Definizione 1.7. Il tempo dicalcolo T (B) del Crivello Quadratico ha un punto di minimo appros-simativamente in B = Ln[1/2, 1/2], inoltre con tale valore di B si haT (B) = Ln[1/2, 1]

Dimostrazione. Consideriamo il logaritmo del tempo di calcoloT , e usiamo la seguente approssimazione

lnT (B) = u ln u+ ln

(B

2 lnB+ 1

)

+ ln ln lnB

= u ln u+ lnB + o(lnB + u lnu)

≈ u lnu+ lnB

Definiamo dunque A(B) := u lnu+lnB e cerchiamo il B che minimizzaA. Per fare questo calcoliamo la derivata ∂A

∂B,

∂A(B)

∂B=∂u

∂B(ln u+ 1) +

1

B=− lnn

2B ln2B(ln u+ 1) +

1

B(8)

Ponendo tale espressione uguale a 0, otteniamo

− lnn

2B ln2B(ln u+ 1) +

1

B= 0 ⇐⇒ (9)

2 ln2B = lnn(ln u+ 1) ⇐⇒ (10)

lnB = u(lnu+ 1) (11)

Prendendo il logaritmo di entrambi i membri della (11) segue che

ln lnB = ln u+ o(ln(u)) ≈ ln u

ma d’altra parte vale

lnu = ln

(lnn

2 lnB

)

= ln lnn− ln lnB − ln 2 ≈ ln lnn− ln lnB

Page 42: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

36 2. FATTORIZZAZIONE DI INTERI

pertanto

ln lnB ≈ ln u ≈ ln lnn− ln lnB

vale a dire

ln lnB ≈ 1

2ln lnn (12)

Ora consideriamo di nuovo l’equazione (10), e riscriviamola come

lnB ≈√

1

2lnn(ln lnn− ln lnB)

combinando con la (12) otteniamo

lnB ≈ 1

2

√lnn ln lnn (13)

Questo prova che B =(

e√

ln n ln ln n)1/2+o(1)

= Ln[1/2, 1/2]. Usiamo poi

l’approssimazione (13) in u = ln n2 lnB

, ottenendo

u ≈√

lnn

ln lnn(14)

Combinando la (13) e la (14) nella definizione di A(B) riusciamo avedere che

A(B) ≈√

lnn

ln lnn

1

2(ln lnn− ln ln lnn) +

1

2

√lnn ln lnn ≈

√lnn ln lnn

e dunque T (B) =(

e√

ln n ln ln n)1+o(1)

= Ln[1/2, 1]

2.0.3. Sommario dell’Algoritmo. Riportiamo la descrizione ad altolivello dell’algoritmo, come trattata da Pomerance [14].

Page 43: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

3. IL CRIVELLO SU CAMPI DI NUMERI 37

Crivello Quadratico di Pomerance

Input:

1. B ← ⌈e 12

√ln n ln lnn⌉

2. p1 ← 2 e a1 ← 1

3. Trovare i primi dispari p ≤ B tali che(

np

)

= 1 e

memorizzarli nelle variabili p2, p3, . . . , pK

4. Per ciascun i = 1, 2, 3, . . . , K5. trovare le radici ±ai tali che a2

i ≡ n (mod pi)6. S ← ∅7. Crivellare la sequenza x2

k+1 − nk, dove xk+1 = ⌈√n⌉+ k,con il Crivello di Eratostene per trovare numeri B-lisci.Se si trova un elemento B-liscio della sequenza,diciamo b = x2 − n, allora S ← S ∪ (x, b).Crivellare fino a che #S < K + 1.

8. Per ciascun (x, x2 − n) ∈ S9. Stabilire la fattorizzazione canonica x2 − n =

∏Ki=1 p

ei

i

10. ~v(x2 − n)←(e1 (mod 2), . . . , eK (mod 2)

)

11. Con un algoritmo di Algebra Lineare numerica trovare unsottoinsieme non banale di vettori linearmente dipendenti, diciamo∑

j∈I ~v(x2j − n) = 0

12. X ←∏

j∈I xj (mod n)

13. Calcolare Y ←√∏

j∈I(x2j − n) (mod n)

servendosi della fattorizzazione trovata al passo 1014. d← mcd(X − Y, n)15. Restituire d

3. Il Crivello su Campi di Numeri

Il Crivello sui Campi di Numeri e ad oggi l’algoritmo euristico piuveloce, in termini di complessita asintotica, per risolvere il problemadella fattorizzazione di interi. In verita la strategia adottata e si-mile a quella del Crivello quadratico, ma viene usato il macchinariodella teoria algebrica dei numeri. Ragioneremo infatti sulle strutturematematiche introdotte nel Capitolo 1, Sezione 2.6. Sia dunque

f(x) := xd + cd−1xd−1 + · · ·+ c1x+ c0 ∈ Z[x]

un polinomio monico e irriducibile e sia α ∈ C una sua radice, α eun intero algebrico secondo la Definizione 2.12. Per la Proposizione 1possiamo considerare gli elementi di Z[α] come gli elementi dell’insie-me ad−1α

d−1 + · · · + a1α + a0 | ai ∈ Z. Supponiamo che esista unomomorfismo di anelli Φ : Z[α] → Z/nZ. Ci concentriamo ora sullecoppie del tipo

(θ,Φ(θ)

), dove θ ∈ Z[α]. Supponiamo di saper trovare

Page 44: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

38 2. FATTORIZZAZIONE DI INTERI

k coppie,(θ1,Φ(θ1)

), . . . ,

(θk,Φ(θk)

), tali che

k∏

i=1

θi = γ2 (15)

per qualche γ ∈ Z[α], e tali che

k∏

i=1

Φ(θi) ≡ v2 (mod n) (16)

per qualche v ∈ Z/nZ. Se questo fosse il caso, allora potremmo fat-torizzare n, infatti, detto u un intero tale che Φ(γ) ≡ u (mod n),avremmo

u2 = Φ(γ)2 = Φ(γ2) = Φ

(k∏

i=1

θi

)

=

k∏

i=1

Φ(θi) ≡ v2 (mod n)

e dunque mcd(u− v, n) sarebbe un fattore di n. Il primo problema daaffrontare e stabilire f e l’omomorfismo Φ. Plausibilmente, se vogliamoche esista un omomorfismo da Z[α] a Z/nZ, dovra esistere una qualcherelazione tra il polinomio f(x) e il naturale n. Tale relazione e datadal seguente

Fatto 10. Sia f il polinomio minimo dell’intero algebrico α. Seesiste m ∈ Z tale che

f(m) ≡ 0 (mod n)

allora l’applicazione Φ : Z[α]→ Z/nZ definita da

Φ

(d−1∑

i=1

aiαi

)

:=

d−1∑

i=1

aimi (mod n)

e un omomorfismo di anelli.

Dimostrazione. Dalla proposizione 10 sappiamo che gli elementidi Z[α] si sommano e si moltiplicano come se fossero polinomi nell’inde-terminata α, dunque si verifica in modo diretto che per ogni h, g ∈ Z[α]vale Φ(h + g) = Φ(h) + Φ(g) e Φ(hg) = Φ(h)Φ(g). Φ(1Z[α]) = 1Z/nZ euna conseguenza immediata della definizione di Φ.

Dunque potremmo operare nel seguente modo (in quanto seguechiamiamo (?1), (?2), ecc... le questioni che restano da precisare)

Page 45: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

3. IL CRIVELLO SU CAMPI DI NUMERI 39

1. Stabiliamo un intero positivo d = d(n), che sara il grado di f (?1)2. poniamo m← ⌊n1/d⌋3. se, scrivendo n in base m si ha n = md + cd−1m

d−1 + · · ·+ c0,con 0 ≤ ci ≤ m− 1, allora poniamo il polinomio f uguale af ← xd + cd−1x

d−1 + · · ·+ c0 (?2)Nota: In questo modo f(m) = n ≡ 0 (mod n), allora si applica laproposizione 10, e dunque Φ e un omomorfismo di anelli.

4. Troviamo k coppie(θi,Φ(θi)

)tali che

valgano le condizioni (15) e (16) (?3)5. Restituiamo mcd(Φ(γ)− v, n), dove γ2 e v2 sono i

valori delle condizioni (15) e (16) (?4)Ma abbiamo tralasciato alcuni fatti. Il primo (?1) e che non sappia-mo come scegliere d. La questione non e banale e ce ne occuperemoquando tratteremo la complessita computazionale dell’algoritmo. Insecondo luogo (?2) nulla ci assicura che in generale al passo 3 si abbiaun polinomio monico, vale a dire che sia cd = 1, ma per n sufficien-temente grande da rendere vera 2md > (m + 1)d, con m = ⌊n1/d⌋, sipuo concludere che n < 2md perche vale sempre (m+ 1)d > n; per talin dunque cd = 1. Una terza osservazione (?2) e che non sappiamo sef sia irriducibile in Z, tuttavia la fattorizzazione di polinomi in Z[x] etrattabile [12], e se f risulta riducibile possiamo appellarci ad alcunirisultati di Brillhart [9] e affermare che se f(x) = h(x)g(x) e una fatto-rizzazione non banale di f allora n = h(m)g(m) e una fattorizzazionenon banale di n. Infine (?4)-(?5), non e ancora chiaro come portare atermine in modo efficiente il passo 4 e l’estrazione di radice per elemen-ti di Z[α], al passo 5. Notiamo subito che il compito 4 e simile ad unpasso del Crivello Quadratico, ed in effetti le tecniche per la risoluzionesi basano ancora sui vettori degli esponenti modulo due. Del passo 5ci occuperemo in seguito.

3.1. Vettori degli Esponenti e quadrati simultanei in Z[α]e Z. Ci proponiamo di risolvere la questione (?4). Il primo passo estabilire la forma degli elementi θi ∈ Z[α]: useremo solo elementi diprimo grado del tipo

θi = a− bα, Φ(θi) = a− bmcon a, b ∈ Z, mcd(a, b) = 1. Quello che vogliamo e dunque

trovare un insieme S di coppie di interi coprimi (a, b) tale che

(i)∏

(a,b)∈S

(a− bm) = v2, per qualche v ∈ Z

(ii)∏

(a,b)∈S

(a− bα) = γ2, per qualche γ ∈ Z[α]

La tecnica per trattare esclusivamente (i) consisterebbe nell’ usare uncrivello per numeri B lisci su G(a, b) := a−bm, crivellando la sequenza

Page 46: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

40 2. FATTORIZZAZIONE DI INTERI

G(a, 1), G(a, 2), . . . , G(a,M), G(a+ 1, 1), G(a+ 1, 2), . . . , G(a+ 1,M),dove si intende 0 < |a|, b ≤ M,mcd(a, b) = 1 e M un bound tale dagarantire un numero sufficiente di numeri B-lisci affinche valga (i) perqualche S. In particolare, per i motivi visti nella trattazione del crivelloquadratico e sufficiente crivellare π(B)+1 elementi, e poi usare vettoriesponenti modulo due per trovare una dipendenza lineare tra i vettori,e dunque S tale da rendere vera (i).A questo punto, il problema fondamentale e che tale S, soddisfacen-te (i), puo non soddisfare (ii). Per superarlo, iniziamo introducendoalcune nozioni sui polinomi simmetrici.

Definizione 3.1. Chiamiamo polinomio simmetrico elementare i-esimo nelle incognite α1, . . . , αd, per ogni i ∈ [1, d] ∩N, il seguente

σi(α1, . . . , αd) :=∑

1≤j1<...<ji≤d

αj1 · · ·αji

Definizione 3.2. Siano α1 = α, α2, . . . , αd ∈ C le radici complessedi f(x). La norma N(β) di un elemento β := s0+s1α+· · ·+sd−1α

d−1 ∈Q[α], si ∈ Q e definita come

N(β) :=

d∏

i=1

β(αi)

dove si intende β(αi) = s0 + s1αi + · · ·+ sd−1αd−1i .

Proposizione 3.1. N(β) ∈ Q.

Dimostrazione. N(β) e un polinomio simmetrico nelle incogniteα1, . . . , αd, vale a dire N(β)(α1, . . . , αd) = N(β)(αρ(1), . . . , αρ(d)) perogni permutazione ρ di 1, . . . , d. Per il teorema fondamentale suipolinomi simmetrici, N(β) si puo scrivere in modo unico come polino-mio a coefficienti in Q nei polinomi simmetrici elementari σ1, . . . , σd.E sufficiente provare il seguente

Fatto 11. σi(α1, . . . , αd) = (−1)d−i · cd−i dove cd−i ∈ Z e ilcoefficiente (d− i)-esimo di f(x) = c0 + c1x+ . . .+ cd−1x

d−1 + xd.

Dimostrazione. Le α1, . . . , αd sono tutte e sole le radici comples-se di f(x), dunque f(x) =

i(x−αi). Dunque espandendo il prodottosi vede che

c0 = (−1)dα1 · · ·αd = (−1)dσd

c1 =∑

1≤j1<...<jd−1≤d

(−1)d−1αj1 · · ·αjd−1= (−1)d−1σd−1

...

cd−1 = −α1 − . . .− αd = −σ1

Il che implica la tesi se si moltiplica ambo i membri di ogni equazioneper (−1)d−k, con k opportuno.

Page 47: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

3. IL CRIVELLO SU CAMPI DI NUMERI 41

Corollario 3.2. Una condizione necessaria affinche valga (ii) e∏

(a,b)∈S

N(a− bα) = u2, per qualche u ∈ Z (∗)

Dimostrazione. Argomentando in modo simile alla proposizioneappena vista si vede che a, b ∈ Z implica N(a − bα) ∈ Z. Inoltre lanorma e moltiplicativa, vale a dire N(ββ ′) = N(β)N(β ′). Dunque latesi.

Vediamo ora come sia possibile verificare simultaneamente (*) e (i):

Fatto 12. Sia F (x, y) = xd + cd−1xd−1y + · · · + c0y

d la formaomogenea di f(x). Allora N(a− bα) = F (a, b).

Dimostrazione.

N(a− bα) =d∏

i=1

(a− bαi)

= bdd∏

i=1

(a/b− αi)

= bdf(a/b), perche f(x) =

d∏

i=1

(a− bαi)

= F (a, b)

Dunque e possibile crivellare per numeri B-lisci la sequenza deri-vante dal polinomio in due variabili

F (a, b) ·G(a, b)

e associare ad ogni elemento della sequenza un vettore degli esponen-ti che contenga nella prima meta delle coordinate gli esponenti dellafattorizzazione di F (a, b), e nella seconda meta gli esponenti della fat-torizzazione di G(a, b), ragionando sempre nel campo di Galois F2.Resta il seguente problema

Fatto 13. La condizione (*) e necessaria ma non sufficiente per(ii).

Dimostrazione. Un contro-esempio e il seguente: se f(x) = x2+1e se si considera Z[i], allora quando a ∈ Z e un non-quadrato, lo e anchea ∈ Z[i], ma N(a) = a2.

Page 48: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

42 2. FATTORIZZAZIONE DI INTERI

Per superare anche questo intoppo, vengono, in primis, introdottidei vettori esponenti del tipo ~v(a− bα) := (vp,r(a− bα))p,r, tali vetto-ri possono essere visti come matrici π(B) × B oppure come vettori dilunghezza π(B)B. Poi, l’idea fondamentale, dovuta a Pollard, Adel-man ed altri, e trovare due nuove condizioni necessarie (Lemma 3.4 eLemma 3.5) tali che la loro congiunzione implichi euristicamente la (ii).Stabilire la validita di questa congettura, che formalizziamo in Conget-tura 3.1, e un problema aperto. Iniziamo l’esposizione della tecnicadefinendo formalmente ~v.

Definizione 3.3 (Pollard). Per ogni primo p, sia

R(p) := r ∈ [0, p− 1] ∩ N | f(r) ≡ 0 (mod p)Proposizione 3.3. Siano a, b ∈ Z,mcd(a, b) = 1, allora

F (a, b) ≡ 0 (mod p) ⇐⇒ a ≡ br (mod p), per qualche r ∈ R(p)

Dimostrazione. Se p | b allora F (a, b) ≡ ad ≡ 0 (mod p) ⇐⇒p | ad ⇐⇒ p|a. Se p ∤ b allora F (a, b) = bdf(a/b) ≡ 0 (mod p) ⇐⇒ab−1 (mod p) ∈ R(p). Dunque la tesi.

Definizione 3.4 (Pollard). Sia F (a, b) =∏

p≤B pe(p) la fattorizza-

zione canonica di F (a, b) ∈ Z, per ogni p ≤ B primo e ogni r ∈ R(p)definiamo

vp,r(a− bα) :=

0 se a 6≡ br (mod p)e(p) (mod 2) se a ≡ br (mod p)

La prima condizione di Pollard, che non dimostriamo dato che neesiste in letteratura una prova dettagliata, e la seguente

Lemma 3.4 (Pollard). Sia I l’anello degli interi algebrici apparte-nenti a Q[α] (cioe I e l’anello degli elementi di Q[α] che sono radici diun qualche polinomio monico in Z[x] a coefficienti interi). Se S e uninsieme di coppie di interi coprimi tale che per ogni (a, b) ∈ S F (a, b) eB-liscio, e se

(a,b)∈S(a− bα) e il quadrato di un elemento in I, allora

(a,b)∈S

~v(a− bα) ≡ ~0 (mod 2) (17)

Dimostrazione. Una dimostrazione dettagliata, ma piuttosto lun-ga, si trova in [14]. Per questo motivo ci permettiamo di ometterla.

Segue la seconda condizione di Pomerance.

Lemma 3.5 (Pomerance). Sia f un polinomio monico e irriducibilein Z[x], e sia α una radice complessa di f . Sia q un primo dispari esia s un intero tale che f(s) ≡ 0 (mod q) e f ′(s) 6≡ 0 (mod q). SiaS un insieme di coppie di interi coprimi (a, b) tale che q non divide

Page 49: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

3. IL CRIVELLO SU CAMPI DI NUMERI 43

alcun a − bs per (a, b) ∈ S e f ′(α)2∏

(a,b)∈S

(a−bs

q

)

= 1 e un quadrato

in Z[α]. Allora

(a,b)∈S

(a− bsq

)

= 1 (18)

Dimostrazione. Come spiega Pomerance in [14], si tratta solodi considerare l’omomorfismo φqZ[α] → Zq che manda α in s mod q.Infatti per ipotesi esiste γ ∈ Z[α] tale che

f ′(α)2∏

(a,b)∈S

(a− bα) = γ2

e sempre usando le ipotesi vale

φq(γ2) ≡ f ′(s)

(a,b)∈S

(a− bs) 6= 0 (mod q)

dunque(

φq(γ2)

q

)

=(

φq(γ)2

q

)

= 1 e dato che (f ′(s)2

q) = 1 abbiamo

(a,b)∈S

(a− bsq

)

=

(∏

(a,b)∈S(a− bs)q

)

= 1

Formuliamo ora la congettura e le considerazioni finali che permet-tono di concludere la correttezza del metodo di fattorizzazione.

Congettura 3.1. Se k e sufficientemente grande, euristicamentek = ⌊3 lnn⌋, e se q1, . . . , qk sono primi dispari che non dividono N(a−bα) per (a, b) ∈ S e se vale sj ∈ R(qj) per j = 1, . . . , k con f ′(sj) 6≡ 0(mod qj), allora

(17) e (18) =⇒∏

(a,b)∈S

(a− bα) = γ2 per qualche γ ∈ I

A questo punto, assumendo di conoscere γ2, il metodo consiste nelprendere f ′(α)2γ2, dato che vale la seguente

Proposizione 3.6 (Pomerance, Weiss). Sia I l’anello degli interialgebrici appartenenti a Q[α], e sia β ∈ I. Sia f(x) un polinomiomonico irriducibile in Z[x], con radice complessa α. Allora f ′(α)β ∈Z[α].

Dimostrazione. Pomerance [14].

Page 50: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

44 2. FATTORIZZAZIONE DI INTERI

3.2. L’algoritmo NFS. Riassumiamo ora l’algoritmo NFS di Po-merance, come in [14] .

Il crivello sui campi di numeri

input: un naturale dispari n che non e potenza perfetta di un primo1. [Inizializzazione]

1.1 d← ⌊(3 lnn/ ln lnn)1/3⌋, cosı d2d2< n

1.2 B ← ⌊exp((8/9)1/3(lnn)1/3(ln lnn)2/3)⌋1.3 m← ⌊n1/d⌋1.4 scrivere n in base m: n = md + cd−1m

d−1 + · · ·+ c01.5 f(x)← xd + cd−1x

d−1 + · · ·+ c01.6 provare a fattorizzare f(x) in fattori irriducibili su Z con un

algoritmo di fattorizzazione per polinomi1.7 Se f(x) = g(x)h(x) e una fattorizzazione non banale di f1.8 allora restituire n = g(m)h(m), fattorizzazione non banale di n1.9 F (x, y)← xd + cd−1x

d−1y + · · ·+ c0yd

1.10 G(x, y)← x−my1.11 Per ogni primo p ≤ B1.12 R(p)← r ∈ [0, p− 1] ∩ N | f(r) ≡ 0 (mod p)1.13 k ← ⌊3 lnn⌋1.14 Calcolare i primi k primi q1, q2, . . . , qk > B tali che esista sj ∈ R(qj)

per cui f ′(sj) 6≡ 0 (mod p), e memorizzare le k coppie (qj , sj)1.15 B′ ←∑

p≤B #R(p)1.16 V ← 1 + π(B) +B′ + k1.17 M ← B2. [Il Crivello]2.1 Usare un crivello per trovare un insieme S ′ di coppie di interi coprimi (a, b)

tali che 0 < |a|, b ≤M e F (a, b)G(a, b) B-liscio, finche non si ha #S ′ > V(Euristica: se S ′ non viene trovato riprovare incrementando M oppure B)

3. Definizione della matrice3.1 Istanziare una matrice binaria di dimensioni V ×#S ′ con una riga

per coppia (a, b)3.2 Calcolare il vettore esponente ~v(a− bα) avente V coordinate come segue:3.3 Porre la prima coordinata di ~v a 1 se G(a, b) < 0, altrimenti porre 03.4 Per ogni p1, . . . , pπ(B) ≤ B, se pγ

i || |G(a, b)|, porre lacoordinata i+ 1-esima di ~v a 0 se γ e pari, altrimenti porre 1

3.5 Per ogni (pi, rj), con pi ≤ B l’i-esimo primo e rj ∈ R(pi) ilj-esimo elemento di R(pi), porre la coordinata relativa a p, r, ovverola (1 + π(B) + (i− 1)#R(pi) + j)-esima, a 1 se vp,r(a− bα) e dispari,altrimenti porre a 0

3.6 Porre le rimanenti k coordinate, ovvero quelle relative alle coppie

(qj , sj) a 1 se(

a−bsj

qj

)

= −1, altrimenti porre a 0

3.7 Porre il vettore esponente ~v(a− bα) appena definito come la prossima riganon acora definita della matrice istanziata al passo 3.1

Page 51: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

3. IL CRIVELLO SU CAMPI DI NUMERI 45

4. Algebra Lineare4.1 Usando un algoritmo di Algebra Lineare, trovare S ⊆ S ′ non vuoto tale che

(a,b)∈S ~v(a− bα) ≡ 0 (mod 2)

5. Radici Quadrate5.1 Usando la fattorizzazione canonica del quadrato

(a,b)∈S(a− bm),

trovare v mod n tale che∏

(a,b)∈S(a− bm) ≡ v2 (mod n)

5.2 Calcolare una radice quadrata γ ∈ Z[α] di f ′(α)2∏

(a,b)∈S(a− bα)

e calcolare u← φ(γ) (mod n) con la sostituzione α m6. Fattorizzazione6.1 Restituire mcd(u− f ′(m)v, n)

Nota. Radici Quadrate in Z[α]Ci occupiamo di far notare il passo 5.2 dell’algoritmo, ovvero la seguen-te questione: dato un elemento γ2 ∈ Z[α], determinare γ. Il problemadi trovare un algoritmo dimostrabilmente efficiente e generale non edel tutto chiuso, ed in effetti esistono diversi approcci in letteraturama alcuni non sono generali, come il metodo di Couveignes [13], edaltri sono euristici, come il metodo di Montgomery poi rielaborato daNguyen [21]. Tuttavia secondo Pomerance [14] quest’ultimo sembraessere, nella pratica, il migliore.

3.3. Complessita Computazionale. L’analisi del tempo di cal-colo del crivello su campi di numeri e del parametro ottimale d si basasul seguente teorema di Pomerance.

Teorema 3.7 (Pomerance). Si supponga che m1, m2, . . . sia unasequenza di interi in [1, X] ∩ N, per qualche X ∈ N, ognuno scelto in-dipendentemente e con distribuzione uniforme. Sia N il minimo interotale che una qualche sottosequenza non vuota di m1, m2, . . . , mN abbiacome prodotto un quadrato. Allora il valore atteso di N e LX(1/2,

√2).

E evidente che in realta la sequenza m1, m2, . . . del crivello non ecasuale, ma assumere euristicamente che il comportamento effettivodella sequenza non sia molto diverso da quello casuale semplifica note-volmente l’analisi, che altrimenti resterebbe un problema difficilmenteaffrontabile. Stabilire la correttezza di questa semplificazione euristicae un problema aperto.Il seguente teorema stabilisce la complessita computazionale del crivellosui campi di numeri.

Teorema 3.8 (Pollard). Sia Ln[α, c] definita nella Definizione 1.7.Il tempo di calcolo T (d) del crivello sui campi di numeri, in funzionedel parametro d, ha un punto di minimo approssimativamente in d ≈(3 lnn

ln lnn

)1/3e con tale d risulta T (d) ≈ Ln[1/3, (64/9)1/3].

Dimostrazione. Nel crivello su campi di numeri la sequenzam1, m2, . . .e formata da interi della forma F (a, b)G(a, b) al variare di |a|, b ≤ M .

Page 52: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

46 2. FATTORIZZAZIONE DI INTERI

Ricordiamo che vale F (x, y) = xd + cd−1xd−1y + · · ·+ c0y

d e G(x, y) =x − my, inoltre m, cj ≤ n1/d per ogni coefficiente cj di F . Dunque|F (a, b)G(a, b)| ≤ X se poniamo X := 2(d + 1)n2/dMd+1. Per il teo-rema 3.8 dunque ci aspettiamo che bastino LX [1/2,

√2] coppie (a, b)

per avere un quadrato. Dunque deve essere M2 = LX [1/2,√

2], e cosı,usando la definizione di L·[·, ·] possiamo scrivere

X = 2(d+ 1)n2/d(M2)d+12 = 2(d+ 1)n2/d

((√

2 + o(1))(e√

ln X ln ln X)) d+1

2

ln(X) ≈ ln(2(d+ 1)) +2

dlnn+ (d+ 1)

1

2lnX ln lnX

Per n e d sufficientemente grandi possiamo dunque approssimare con

lnX ≈ 2

dlnn+ d

1

2lnX ln lnX

Il nostro scopo e approssimare un d che minimizza X = X(d), pern fissato, dunque ha senso considerare l’equazione lnX = 2

dlnn +

d√

12lnX ln lnX, e imporre nulla la derivata parziale ∂dX = 0. Cosı

otteniamo le equazioni

0 =∂dX

X=−2

d2lnn+

1

2lnX ln lnX +

d(∂dX)(1 + ln lnX)

4X√

12lnX ln lnX

d = (2 lnn)1/2((1/2) lnX ln lnX)−1/4

D’altra parte per n sufficientemente grande vale anche

lnX ≈ 2

dlnn

cosı sostituendo d si ottiene l’approssimazione

lnX ≈ 2(2 lnn)1/2((1/2) lnX ln lnX)1/4 ⇒ (lnX)3/4 ≈ 2(2 lnn)1/2((1/2) ln lnX)1/4

dunque 34ln lnX ≈ 1

2ln lnn, e ri-sostituendo si ottiene

(lnX)3/4 ≈ 2(2 lnn)1/2((1/3) ln lnn)1/4

lnX ≈ 4

31/3(lnn)2/3(ln lnn)1/3 e d ≈

(3 lnn

ln lnn

)1/3

Page 53: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

4. APPLICAZIONI IN CRITTOGRAFIA 47

Abbiamo dunque la seguente espressione per il tempo di calcolo delcrivello su campi di numeri:

T (d) = LX [1/2,√

2] ≈ exp

(((64

9

)1/3

+ o(1)

)

(lnn)1/3(ln lnn)2/3)

)

= Ln[1/3, (64/9)1/3]

4. Applicazioni in Crittografia

4.1. Una funzione one-way. Lo scopo di questo paragrafo e di-mostrare il Teorema 4.2: questa proposizione mostra la grande impor-tanza del problema della fattorizzazione nei fondamenti delle primitivecrittografiche e compare come esercizio lasciato al lettore in [15]. Pri-ma di procedere ricordiamo la definizione di funzione debolmente efortemente one way, che dobbiamo ancora a [15].

Definizione 4.1 (Funzione one-way, [15]). Sia f una funzione deltipo f : 0, 1∗ → 0, 1∗, e sia Un una variabile aleatoria distribuitauniformemente a valori in 0, 1n. Diciamo che f e fortemente one-way se valgono le seguenti

(1) Esiste una TM polinomiale-deterministica A tale che, su inputx, A si arresta con f(x) sul nastro, in simboli A(x) ↓= f(x).

(2) Per ogni TM polinomiale-probabilistica A′, per ogni funzio-ne polinomiale positiva p(·) e per tutti gli n sufficientementegrandi, la probabilita che A′ inverta f e p-trascurabile, vale adire

P(A′(Un, 1

n) ↓∈ f−1(f(Un)))<

1

p(n)

Diciamo invece che f e debolmente one-way se valgono le seguenti

(1) Identica alla condizione (1) delle funzioni fortemente one-way(2) Esiste una funzione polinomiale p(·) tale che per ogni TM

polinomiale-probabilistica A′ e per tutti gli n sufficientementegrandi la probabilita che A′ non inverta f non e p-trascurabile,vale a dire

P(A′(Un, 1

n) ↓6∈ f−1(f(Un)))>

1

p(n)

Un fatto di fondamentale importanza, che e dimostrato in detta-glio in [15] e che e possibile costruire in tempo polinomiale funzionifortemente one-way partendo da funzioni debolmente one-way, questoci permette di ragionare solo sulle funzioni debolmente one-way, su cuirisulta piu comodo fare considerazioni.

Page 54: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

48 2. FATTORIZZAZIONE DI INTERI

Denotiamo con ℘n l’insieme dei primi con esattamente n cifre binarie.Pn e Qn saranno sempre variabili aleatorie uniformi a valori in ℘n.

Congettura 4.1 (Assunzione sulla fattorizzazione di semiprimi,FA). Per ogni algoritmo probabilistico A polinomiale in tempo, per ognipolinomio positivo p(·) e per ogni n > n0 la probabilita che A fattorizzivale

P(A(Pn ·Qn) ↓∈ Pn, Qn

)<

1

p(n)

Lemma 4.1. La probabilita che un numero naturale con esattamenten cifre binarie, scelto in maniera uniforme, sia primo e definitivamentemaggiore di 1/n.

Dimostrazione. Chiamiamo πn il numero di primi con esatta-mente n cifre binarie. La probabilita in analisi e dunque pari a πn/2

n−1.Per il Teorema dei Numeri Primi (cioe π(n) ≈ n/ lnn) abbiamo

πn = π(2n)− π(2n−1) ≈ 1

ln 2

(2n

n− 2n−1

n− 1

)

=2n−1

ln 2

(1

n− 1

n(n− 1)

)

=

=2n−1

ln 2

(

1

n− o

(1

n

))

Dunque la probabilia cercata vale

πn

2n−1≈ 1

(ln 2)n>

1

n

Le approssimazioni usate valgono per n sufficientemente grande.

Teorema 4.2. Sia M(Xn, Yn) := Xn · Yn, dove Xn e Yn sono va-riabili aleatorie indipendenti e distribuite uniformemente a valori nel-l’insieme dei naturali con esattamente n cifre binarie. Assumendo laCongettura 4.1 M e debolmente one-way.

Dimostrazione. M e calcolabile in tempo polinomiale determini-stico. Bisogna poi provare che esiste un polinomio p positivo tale che,per ogni algoritmo probabilistico polinomiale in tempo A e per ognin > n0, P(A(Xn · Yn) ↓6∈ Xn, Yn) > 1/p(n): nel nostro caso FA eequivalente a dire che per ogni polinomio f

P(A(Pn ·Qn) ↓6∈ Pn, Qn

)> 1− 1

f(n)

In generale, sappiamo che per ogni evento A e B vale P(A) ≥ P(A∩B),inoltre, per il lemma 4.1 e per l’indipendenza delle due variabili Xn, Yn

Page 55: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

4. APPLICAZIONI IN CRITTOGRAFIA 49

avremo P(Xn, Yn ∈ ℘n

)> 1/n2, dunque possiamo scrivere

P(A(Xn · Yn) ↓6∈ Xn, Yn

)≥

P((A(Xn · Yn) 6∈ Xn, Yn

)∩(Xn, Yn ∈ ℘n

))

=

P(

A(Xn · Yn) 6∈ Xn, Yn)∣∣Xn, Yn ∈ ℘n

)

P(Xn, Yn ∈ ℘n

)>

(

1− 1

f(n)

)1

n2

Come detto, questo e vero per ogni polinomio f ; prendendo, ad esem-pio, f(n) = n, e notando che 1− 1/n > 1/n per n > n0 ≥ 2, si ottieneche esiste il polinomio p = n3 per cui e verificato

P (A(Xn · Yn) 6= Xn) >1

n3

4.2. Crittografia a chiave pubblica, RSA. Diamo una descri-zione schematica di uno dei piu popolari crittosistemi a chiave pubblica,proposto da Rivest Shamir ed Adleman nel 1978 in [26], la cui sicurezzadipende anche dalla assunzione sulla difficolta di risolvere il problemadella fattorizzazione di interi.

Schema RSA per Bm−→ A

A B

(1) Sceglie due primi p, q ecalcola n← p · q e ϕ(n)(2) Sceglie e ∈ (Z/ϕ(n)Z)∗ \ 1

(3) Calcola d t.c. ed ≡ 1 (mod ϕ(n))

(4)

invia (n,e)−→ (5) m ∈ Z/nZ

(8) m← cd (mod n)

(7)invia c←− (6) c← me (mod n)

Per provare la correttezza di RSA e sufficiente dimostrare la seguenteproposizione.

Proposizione 4.3 (RSA). Sia n = p · q prodotto di due primidistinti, siano e, d ∈ Z/ϕ(n)Z tali che e 6= 1 e ed ≡ 1 (mod ϕ(n)), siam ∈ Z/nZ. Allora med ≡ m (mod n)

Dimostrazione. Se p | m allora med ≡ 0 ≡ m (mod p), altrimen-ti, quando p ∤ m, esiste un intero k tale che

med = mϕ(n)·k ·m ≡ m (mod p)

, dove abbiamo usato il teorema di Eulero-Fermat. Dunque, in ogni ca-so, med ≡ m (mod p). Similmente si dimostra che med ≡ m (mod q).Dato che i primi p e q sono distinti deve essere med ≡ m (mod n).

Page 56: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la
Page 57: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

CAPITOLO 3

Logaritmo Discreto

Il problema del logaritmo discreto formalizzato nel Capitolo 1 comeDLP consiste nel calcolare un analogo per i gruppi ciclici dei logaritmiordinari sui numeri reali o complessi. Tale questione, oltre ad essereinteressante da un punto di vista puramente matematico, si rivela fon-damentale per stabilire la sicurezza di alcune primitive crittografiche:se esistesse una procedura efficiente per calcolare i logaritmi discreti suigruppi ciclici, allora il problema di Diffie-Hellman, su cui si basa, adesempio, il crittosistema di ElGamal, risulterebbe anch’esso trattabi-le. Le origini storiche di questo problema si possono far coincidere congli studi di Gauss nelle Disquisitiones Arithmeticae del 1801, il qualesembrava preferire il termine “indice” a “logaritmo”. In questo capito-lo studiamo il limite inferiore generico di Shoup, il metodo Baby StepGiant Step di Shanks e l’Index Calculus, un algoritmo non genericocon complessita in tempo sub-esponenziale.

1. Il limite inferiore generico di Shoup

Nel 1997 Victor Shoup e riuscito a dimostrare un limite inferioredi Ω(

√n) per la complessita in tempo del logaritmo discreto. Per fa-

re questo, pero, ha considerato una particolare classe di algoritmi, glialgoritmi generici. In altre parole questo limite inferiore non riguardaqualsiasi tipo di algoritmo o metodo di calcolo, ma riguarda una precisaformulazione del concetto di algoritmo che risulta essere particolarmen-te restrittiva. Il risultato e comunque interessante e importante perchedimostra che gli algoritmi che funzionano su qualsiasi gruppo ciclico,come il metodo Baby Step Giant Step di Shanks, sono ottimali. In altreparole, per trovare algoritmi piu efficienti e necessario porre restrizionisul gruppo su cui si vuole lavorare e sfruttare la particolare strutturadi tale gruppo, come succede, ad esempio, nell’ Index Calculus.Formalizziamo il concetto di algoritmo generico:

Definizione 1.1 (Algoritmo Generico di Shoup). Sia Cn il gruppociclico di ordine n, ricordiamo che possiamo vederlo come il gruppoadditivo degli interi modulo n: infatti Cn

∼= Z/nZ. Sia S un insiemedi stringhe binarie, vale a dire S ⊂ 0, 1∗, di cardinalita almeno n.Un algoritmo generico A su Z/nZ e un algoritmo probabilistico con leseguenti proprieta

51

Page 58: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

52 3. LOGARITMO DISCRETO

• A accetta in ingresso una lista detta “lista di codifica” del tipo(σ(x1), . . . , σ(xk)) dove k ∈ N, xi ∈ Z/nZ per ogni i, e σ :Z/nZ → S e una funzione iniettiva detta “codifica”. Duranteil processo di computazione la lista di codifica puo evolversi,nel modo specificato da questo secondo punto.• L’unico modo che A ha a disposizione per eseguire operazioni

di gruppo, cioe sommare e calcolare l’inverso, sugli elementixi e consultare un oracolo O: O prende in ingresso una tripla(i, j,±), dove ± e il segno dell’operazione, e aggiunge σ(xi ±xj) in coda alla lista di codifica. La lista di codifica non puoevolvere in alcun altro modo, in altre parole A puo solo leggerela lista di codifica, ed O puo solo aggiungere elementi in coda.

Proponiamo un esempio: immaginiamo che A prenda in ingresso glielementi codificati σ(1), σ(x) ∈ S per 1, x ∈ Z/nZ, denotiamo questofatto con A(σ; 1, x), la notazione non tragga in inganno: cosı A nonconosce 1, x, ma esclusivamente σ(1), σ(x); la lista di codifica al passo0 e dunque (σ(1), σ(x)). Al passo 1, A puo passare in ingresso ad O,ad esempio, la tripla (1, 2,−), e dunque al passo 2 la lista di codifica acui A ha accesso “in lettura” diventera (σ(1), σ(x), σ(1−x)). A questopunto A puo passare, ad esempio, la tripla (1, 3,+) ad O, dove l’indice3 e quello relativo al nuovo elemento σ(1− x) nella lista di codifica, ecosı via.Il risultato di Shoup che vogliamo studiare e il seguente.

Teorema 1.1. Sia n ∈ N e sia p il suo divisore primo piu grande.Sia A un algoritmo generico per il calcolo del logaritmo discreto nelgruppo ciclico Cn; allora A richiede Ω(

√p) operazioni-gruppo 1.

La formulazione del Teorema 1.1 e in un certo senso informale,perche non abbiamo chiarito cosa voglia dire, con il formalismo deglialgoritmi generici, risolvere il problema del logaritmo discreto. Sappia-mo che una istanza di DLP per il gruppo ciclico Cn consiste in unacoppia (g, x) dove g e un generatore del gruppo e il nostro obiettivoe trovare t tale che gt = x. Ma considerando Cn

∼= Z/nZ possiamoprendere 1 ∈ Z/nZ come generatore. Allora, date in ingresso le co-difiche σ(1), σ(x), A deve calcolare e restituire l’intero x. Questa ela formulazione del problema. Dato che per definizione A non sfruttaalcuna conoscenza sulla codifica σ(·), e quindi tutte le codifiche σ(·)sono equivalenti, nel senso che il numero di passi dell’algoritmo A nondipende dalla particolare σ(·), e sufficiente mostrare che esiste almenouna σ per cui vale il limite inferiore di Ω(

√p). Per fare questo, basta

dimostrare che il limite inferiore vale per σ scelta in maniera casualeuniforme. Questo e quello che dimostriamo nel corollario del seguente:

1Nel nostro scenario identifichiamo una operazione-gruppo con una chiamataall’oracolo O.

Page 59: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

1. IL LIMITE INFERIORE GENERICO DI SHOUP 53

Teorema 1.2 (Shoup, [28]). Sia n ∈ N e sia p il suo divisore primopiu grande. Sia S ⊂ 0, 1∗ un insieme con almeno n elementi. SiaA un algoritmo generico su Z/nZ e S che compia al piu m operazionidi gruppo. Se x ∈ Z/nZ e una funzione di codifica σ : Z/nZ → Siniettiva sono scelti in maniera casuale, allora

P(A(σ; 1, x) ↓= x

)= O(m2/p)

dove la probabilita si intende estesa su σ, x e i passi probabilistici di A.

La tecnica di dimostrazione che Shoup usa per provare questo edaltri risultati basati sugli algoritmi generici consiste in due passi fon-damentali:

(1) Trovare un evento E nello spazio di probabilita tale che con-tenga propriamente l’evento “A termina correttamente”, chein questo caso coincide con l’evento “A(σ; 1, x) ↓= x”.

(2) Trovare un limite superiore per P(E) in funzione del nume-ro di operazioni-gruppo m, ovvero qualcosa del tipo P(E) =O(f(m)) per f : N→ N.

In altre parole vogliamo trovare una “barriera” che A deve necessaria-mente superare per restituire valori corretti con probabilita non tenden-te a zero quando n cresce, e poi stimare superiormente la probabilitache questa “barriera” venga superata. Esponiamo ora la dimostrazionedi Shoup. Nell’articolo [28] viene data solo una bozza, e vengono illu-strati solo i passi critici. Qui ci preoccupiamo di formalizzare in modosoddisfacente l’argomento.Premettiamo un

Lemma 1.3. Sia p un primo e sia t ≥ 1 un intero. Sia F (X1, . . . , Xk) ∈Z/ptZ[X1, . . . , Xk] un polinomio non nullo di grado δF = d. Sianox1, . . . , xk ∈ Z/ptZ scelti in maniera casuale uniforme, allora

P(F (x1, . . . , xk) ≡ 0 (mod pt)

)≤ d/p

Dimostrazione. Affermiamo che non perdiamo generalita se con-sideriamo t = 1: infatti se t > 1 consideriamo la piu grande potenzapk, 0 ≤ k ≤ t − 1, che occorre tra i coefficienti di F , e dividiamo perpk ambo i membri di F ≡ 0 (mod pt); riducendo modulo p otteniamouna congruenza del tipo G ≡ 0 (mod p) per G ∈ Z/pZ[X1, . . . , Xk]non nullo, dunque con t = 1.Sia allora t = 1, ragioniamo per induzione su k. Se k = 1 abbiamo unpolinomio in una variabile a coefficienti nel campo Z/pZ, dunque ab-biamo al piu d radici distinte e la probabilita di indovinare una radicee d/p. Assumiamo vera la tesi per k − 1. Il polinomio F ∈ Z/pZ puoessere visto come polinomio nella sola indeterminata X1 a coefficienti

Page 60: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

54 3. LOGARITMO DISCRETO

in Z/pZ[X2, . . . , Xk], sia C(X2, . . . , Xk) il coefficiente di Xd′

1 se il poli-nomio F ∈ Z/pZ[X2, . . . , Xk][X1] ha grado d′, per ipotesi di induzionela probabilita di indovinare una radice di C e al piu (d−d′)/p dunque Cha al piu pk−2(d− d′) radici. Per limitare il numero di radici di F con-dizioniamo: se y := (x2, . . . , xk) e una radice di C, F (X1, y) ha al piu pradici in Z/pZ perche e possibile che sia nullo per ogni valore di x1, intal caso F (X1, . . . , Xk) ha al piu p · pk−2(d− d′) = pk−1(d − d′) radici,altrimenti, se y non e radice di C, F (X1, y) ha al piu d′ radici perche eun polinomio in una variabile di grado d′, e in tal caso F (X1, . . . , Xk)deve avere meno di pk−1d′ radici. Dunque in totale F (X1, . . . , Xk) haal piu pk−1d radici, ma allora la probabilita di indovinare una radice e

al piu pk−1dpk = d/p.

Dimostrazione. (Teorema 1.2). Sia n = pt · s con mcd(p, s) =1, allora sappiamo che Z/nZ ∼= Z/ptZ + Z/sZ tramite un isomorfi-smo che chiamiamo Ψ. Costruiamo una sequenza F1, F2, . . . , Fm+2 ∈Z/ptZ[X] di polinomi nel seguente modo: poniamo F1 := 1, F2 := X.Assumendo che la k-esima operazione-gruppo, per 1 ≤ k ≤ m, sia(i, j,±), dove i, j < k + 2, poniamo

Fk+2 := Fi ± Fj ∈ Z/ptZ[X]

Informalmente osserviamo che tale sequenza tiene conto delle immagini(in Z/ptZ) dei risultati delle m operazioni-gruppo.

Assumiamo che A(σ, x) ↓= y ∈ Z/nZ, e sia y′ tale che yΨ (y′, y′′) ∈

Z/ptZ + Z/sZ. Ricordiamo che l’input di A e (σ(1), σ(x)), con σ, xscelti in modo casuale uniforme. Siano σ1 := σ(1), σ2 := σ(x) e siaσk+2 per 1 ≤ k ≤ m il risultato della k-esima operazione gruppo. SiaE l’evento

E := 〈 σi = σj per qualche Fi 6= Fj

oppure indoviniamo y′ scegliendo in manieracasuale uniforme in Z/ptZ 〉

Ora verifichiamo che E sia effettivamente una “barriera”.

Fatto 14. Se A restituisce un risultato corretto, vale a dire sey = x, allora si verifica l’evento E.

Dimostrazione. Se y = x, e x′ e l’immagine di x in Z/ptZ ri-spetto a Ψ, necessariamente y′ = x′. Vi sono due casi: A indovina x′

scegliendo in maniera casuale uniforme in Z/ptZ, oppure A determinax′ sfruttando in un qualche modo il suo input (σ(1), σ(x)). Nel primocaso, l’evento E e banalmente verificato. Nel secondo caso, assumia-mo per assurdo che E non si verifichi, ovvero che σi 6= σj per ogni1 ≤ i 6= j ≤ m+ 2 tali che Fi 6= Fj . Allora, dato che σ e scelta in ma-niera casuale uniforme, A viene a conoscenza solo di una sequenza distringhe distinte con distribuzione casuale uniforme rispetto alla com-ponente Z/ptZ, dunque non puo conoscere alcuna relazione tra elementi

Page 61: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

1. IL LIMITE INFERIORE GENERICO DI SHOUP 55

del gruppo, in particolare non puo conoscere alcuna relazione linearetra le immagini in Z/ptZ degli elementi 1 e x, percio l’unico modo cheha per determinare y′ = x′ e indovinare scegliendo in maniera casualeuniforme in Z/ptZ, ma cosı non sfrutta il suo input, assurdo.

Fatto 15. P(E) = O(m2/p)

Dimostrazione. Siano i, j tali che σi = σj con Fi 6= Fj e poniamoF := Fi − Fj . Siano xi, xj tali che σi = σ(xi), σj = σ(xj); alloraxi = xj perche σ e iniettiva. Dunque, se x′i, x

′j sono le immagini in

Z/ptZ rispetto a Ψ, necessariamente x′i = x′j . Allora dato che Fi(x) ≡x′i mod pt, Fj(x) ≡ x′j (mod pt), abbiamo anche F (x) ≡ 0 (mod pt).Dato che F 6= 0 e δF ≤ 1 per il Lemma P(F (x) ≡ 0 (mod pt)) ≤1/p. Inoltre anche la probabilita di indovinare y′ scegliendo in manieracasuale uniforme e minore di 1/p. Abbiamo m operazioni-gruppo, edunque meno di m2 indici i, j tali che Fi 6= Fj , dunque la tesi.

Dunque P(A(σ; 1, x) ↓= x

)< P(E) = O(m2/p), il che completa la

dimostrazione del Teorema 1.2.

Corollario 1.4. Se esiste una costante c1 > 0 tale che P(A(σ; 1, x) ↓=x) > c1 allora il numero di operazioni-gruppo e m = Ω(

√p).

Dimostrazione. Per il teorema 1.2 esiste una costante c2 > 0 taleche

c1 < P(A(σ; 1, x) ↓= x) < c2m2

p

dunque m >√

c1c2p, ovvero m = Ω(

√p).

La tecnica di Shoup permette di ottenere limiti inferiori anche perproblemi diversi dal logaritmo discreto. Con un argomento quasi iden-tico al precedente e possibile, ad esempio, ottenere lo stesso limiteinferiore per il problema di Diffie-Hellman.

Teorema 1.5 (Shoup). Sia n ∈ N e sia p il suo divisore primopiu grande. sia S ⊂ 0, 1∗ un insieme con almeno n elementi. Sia Aun algoritmo generico su Z/nZ e S che compia almeno m operazioni-gruppo. Se x, y ∈ Z/nZ e una codifica σ : Z/nZ→ S iniettiva vengonoscelti in maniera casuale, allora

P(A(σ; 1, x, y) ↓= σ(xy)

)= O(m2/p)

Dimostrazione. Si dimostra allo stesso modo del Teorema 1.2,ma definendo la successione di polinomi come F1 := 1, F2 := X,F3 =Y, . . . , Fk := Fi±Fj , . . . ∈ Z/ptZ[X, Y ], se n = pt · s con mcd(p, s) = 1,e l’evento barriera E come

E := 〈 σi = σj per qualche Fi 6= Fj

oppure Fi ≡ XY (mod pt) per qualche ioppure indoviniamo σ(xy) scegliendo in maniera casuale in S 〉

Page 62: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

56 3. LOGARITMO DISCRETO

Il modello generico viene discusso informalmente anche in Koblitz[18], dove gli autori ne criticano l’uso per dimostrazioni-riduzioni disicurezza in stile “provable-security”. Sempre in [18], gli autori fannonotare che non e difficile cadere in ragionamenti fallaci quando si ha ache fare con argomenti simili a quelli di Shoup, suggerendo quindi difare particolare attenzione ogniqualvolta si voglia estendere la tecnicadi Shoup ad altri problemi.

2. Un algoritmo generico: Baby-Step Giant-Step di Shanks

2.1. Il metodo Baby-step Giant-step di Shanks. Sia dato Cn

il gruppo ciclico di ordine n, un generatore g, e un elemento t ∈ Cn. Ilnostro obiettivo e trovare l’unico intero l ∈ [0, n− 1] tale che gl = t. Ilmetodo di Shanks e molto semplice: se scriviamo l in base b := ⌈√n ⌉,necessariamente deve essere l = l0 + l1 · b per qualche 0 ≤ l0, l1 ≤b − 1, ma allora possiamo scrivere t = gl = gl0gl1·b, equivalentemente(g−1)l1·b ·t = gl0 . Di conseguenza per trovare l0, l1, e dunque l, non dob-biamo fare altro che calcolare elementi del tipo g0, g1, g2, g3, . . . , gb−1 edelementi del tipo (g−b)0 · t, (g−b)1 · t, (g−b)2 · t, . . . , (g−b)b−1 · t e cercareuna “collisione” tra i due tipi. L’algoritmo di Shanks si formalizza nelseguente modo, assumiamo che non si conosca direttamente n ma unasua stima superiore n ≤ B.

Baby-Step Giant-Step

input: (B, g, t), dove g e un generatore del gruppo ciclico Cn, B ≥ ne t ∈ Cn e un elemento del gruppo.

task: Determinare un naturale l ∈ [0, B − 1] tale che t = gl.

1. b← ⌈√B⌉ e h← (g−1)b.

2. A← gi | 0 ≤ i ≤ b− 1,B ← thj | 0 ≤ j ≤ b− 1.

Nota: A e B sono solitamente implementate usando delle tavole hash.3. Trovare x ∈ A ∩B, diciamo per i, j tali che gi = x = thj .4. Restituire i+ jb.

Il tempo di calcolo di tale metodo risulta essere O(√B), dunque e un

algoritmo generico ottimale.

3. Un metodo non generico: l’Index Calculus

L’index Calculus e un metodo non generico in quanto sfrutta lastruttra del particolare gruppo su cui lavora. Si consideri infatti ilgruppo moltiplicativo del campo finito, F∗

p per p primo, allora e possi-

bile trattare l’equazione gl = t come una congruenza fra interi gl ≡ t(mod p). Ora fissiamo un intero positivo B, il cui valore effettivo sara

Page 63: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

4. APPLICAZIONI IN CRITTOGRAFIA 57

chiarito in seguito, e assumiamo di conoscere relazioni del tipo

gr ≡ pr11 · pr2

2 · · · prk

k (mod p)

per p1, . . . , pk primi minori o uguali di B, per g una radice primitivamodulo p e per r scelto in maniera casuale uniforme. Allora abbiamoanche relazioni del tipo

r ≡ r1 · logg p1 + . . .+ rk · logg pk (mod p− 1)

e dall’algebra lineare sappiamo come determinare tutti i logg pi, a pat-to di avere k relazioni linearmente indipendenti del genere. A questopunto l’Index Calculus consiste nel sfruttare tali informazioni per cal-colare logg t. Infatti se scegliamo ripetutamente R in maniera casuale-uniforme e sufficiente trovare una la relazione-”collisione” del tipo

R · t ≡ pα11 · · · pαk

k (mod p)

per qualche α1, . . . , αk, per poi ottenere

logg t ≡ −R + α1 · logg p1 + αk · logg pk (mod p− 1)

Segue lo pseudo-codice dell’Index Calculus.

Index Calculus di Pollard su F∗p

input: (p, g, t), dove p e un primo, g una radice primitivamodulo p, e t ∈ F∗

p

taks: Calcolare logg t

1. Porre B ← Lp[1/2, 1/√

2] e trovare i primi p1, . . . , pπ(B)

nell’intervallo [1, B] con il crivello di Eratostene.2. Scegliere in maniera casuale uniforme un intero r ∈ [1, p− 2] e

controllare che gr mod p sia B-liscio.Ripetere il passo 2 fino a che non si trovano B residui B-lisci.

3. Con un algoritmo di algebra lineare calcolare logg p1, . . . , logg pπ(B).4. Scegliere in maniera casuale uniforme interi R ∈ [1, p− 2] fino a che

gRt mod p non e B-liscio.5. Calcolare logg t usando le relazioni trovate al passo 2 e

i logaritmi trovati al passo 3.

Per quanto riguarda la complessita in tempo dell’Index Calculus, evi-dentemente si ha a che fare con un problema simile a quello affrontatonell’analisi del crivello quadratico, vale a dire stimare il numero mediodi volte che e necessario ripetere il passo 2 affinche si trovi un sottoin-sieme di relazioni linearmente indipendenti. In effetti nell’analisi diPomerance [23] vengono usate le medesime considerazioni, e si otten-gono risultati sub-esponenziali del tutto simili. In particolare si stimache un valore ottimo di B sia B = Ln[1/2, 1/

√2].

4. Applicazioni in Crittografia

4.1. ElGamal e lo scambio di chiavi Diffie-Hellman. Diamouna descrizione schematica del critto-sistema di ElGamal.

Page 64: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

58 3. LOGARITMO DISCRETO

Schema ElGamal per Bm−→ A

A B

(1) Sceglie un primo p euna radice primitiva g modulo p.

(2) Sceglie uniformemente un intero

(3)

invia (p,g,ga)−→ (4) m ∈ Z/pZ1 ≤ a ≤ p− 2 e calcola ga mod p (5) Sceglie uniformemente

un intero 1 ≤ k ≤ p− 2

(8) Calcola γ−a mod p =

(7)invia c←− (6) Calcola γ ← gk mod p,

γp−1−a mod p δ ← m · (ga)k mod p, c← (γ, δ)(9) Decifra m← γ−a · δ mod p

Segue lo scambio di chiavi di Diffie-Hellman.

Scambio chiave K di Diffie-Hellman

A B

(1) Sceglie un primo p euna radice primitiva g modulo p.

(2) Sceglie uniformemente un intero

(3)

invia (p,g,ga)−→ (4) Sceglie uniformemente1 ≤ a ≤ p− 2 e calcola ga mod p un intero 1 ≤ b ≤ p− 2 e

calcola gb mod p(5)

invia gb

←−(6A) Chiave K ← (gb)a mod p (6B) Chiave K ← (ga)b (mod p)

Page 65: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

CAPITOLO 4

Riduzioni tra problemi

In questo capitolo esponiamo le relazioni di riducibilita ad oggi notetra il problema della fattorizzazione, del logaritmo discreto, il problemadi Diffie-Hellman e alcune loro varianti. Non daremo una lista esaustivadelle riduzioni note tra tutti i problemi in teoria dei numeri elementare,come invece si trova in [32], ma ci concentreremo sulle dimostrazionidi alcune riduzioni che riteniamo basilari e con conseguenze dirette perla sicurezza dei sistemi crittografici trattati, cioe RSA ed ElGamal. Loschema delle riduzioni e riportato di seguito.

n-DLP

FACTORING

EULERPHI

RSAP

BLUM-FACTORING

BLUM-GDHP

GDLP

GDHP

DDH

DHP

Riduzione banale

Riduzione relativa

alla classe di compl. X

Auto-Riduzione

probabilistica

P

ZPP

ZPP

X

1. Auto-riducibilita probabilistica

Informalmente, un problema o funzione si dicono auto-riducibili seogni istanza o punto puo essere calcolato usando un oracolo per un sot-toinsieme di istanze o punti dello stesso problema o funzione. Se ogniistanza del problema puo essere calcolata con probabilita non trascu-rabile riducendosi ad una istanza generata in modo casuale-uniforme,allora si parla di auto-riducibilita probabilistica. Questa proprieta , in-trodotta da Blum e Micali in [7], ha un ruolo fondamentale nella sceltadelle primitive crittografiche perche, parlando rozzamente, garantisce

59

Page 66: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

60 4. RIDUZIONI TRA PROBLEMI

che se un problema e intrattabile nel caso peggiore, allora resta intratta-bile anche in media. In questa sezione formalizziamo l’auto-riducibilitaprobabilistica e dimostriamo che i problemi RSAP, GDLP, DHP eDDH godono di tale proprieta.

Definizione 1.1. Sia P : I → S un problema con insieme di istan-ze I e insieme di soluzioni S. Sia X una variabile aleatoria uniformea valori in I. Se, assumendo che esistano η > 0 e un oracolo poli-nomiale probabilistico A tale che P

(A(X) ↓= P (X)

)= η, e garantita

l’esistenza di un algoritmo polinomiale probabilistico B relativo ad Atale che, per ogni i ∈ I, P

(B(i) ↓= P (i)

)= η, allora diciamo che P e

probabilisticamente auto-riducibile.

In quanto segue assumiamo che i messaggi in chiaro m delle istanzedi RSAP del tipo (n,me, e) non abbiano fattori in comune con il semi-primo n. Per n sufficientemente grande questa restrizione riduce lospazio dei messaggi non cifrati in modo trascurabile perche se n = pqϕ(n) = (p− 1)(q − 1) ≈ n.

Teorema 1.1. Il problema RSAP e probabilisticamente auto-riducibile.

Dimostrazione. Definiamo l’algoritmo B-RSAP come segue:

Algoritmo B-RSAP

input: i := (n, c, e), dove c := (me mod n) ∈ (Z/nZ)∗

e il messaggio cifratotask: Calcolare m mod n1. Scegliere in modo casuale uniforme r ∈ (Z/nZ)∗

2. ir ← (n, rec mod n, e)3. a← A(ir) ↓4. ma ← ar−1 mod n5. Restituire ma

Dato che A e polinomiale in tempo, lo e anche B. Dobbiamo dimostrareche P(B(i) ↓= m mod n) = η. Assumiamo per un istante che al passo2 rec mod n segua una distribuzione uniforme, allora per l’ipotesi suA a ≡ rm (mod n) con probabilita η, dunque con la stessa probabi-lita vale ma := ar−1 ≡ m (mod n). Ora e sufficiente provare che ser segue una distribuzione uniforme allora la segue anche rec mod n.Ma questo segue dal fatto che la mappa σe : (Z/nZ)∗ → (Z/nZ)∗ :x 7→ xe mod n, per e ∈ (Z/ϕ(n)Z)∗ e biettiva perche ha come inversaσe−1 mod n, e anche ·x : (Z/nZ)∗ → (Z/nZ)∗ : r 7→ r · x mod n, perx ∈ (Z/nZ)∗, e biettiva perche ha come inversa ·x−1 mod n .

Teorema 1.2. Il problema GDLP e probabilisticamente auto-riducibile.

Dimostrazione. Definiamo l’algoritmo B-GDLP come segue

Algoritmo B-GDLP

Page 67: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

2. RELAZIONI DI RIDUCIBILITA TRA PROBLEMI 61

input: (n, g, ga) dove n e g sono l’ordine e un generatore del gruppo Cn

task: Calcolare a1. Scegliere in maniera casuale uniforme un naturale 0 ≤ r ≤ n2. b← gagr = ga+r

3. c← A((n, g, b)) ↓4. Restituire c− r

Affermiamo che, al passo 2, ga+r segue una distribuzione casuale uni-forme, infatti la mappa +x : [0, n] ∩ N → [0, n] ∩ N : r 7→ r + x perx ∈ [0, n] ∩ N e biettiva, dato che ha come inversa +n−x, ed r segueuna distribuzione casuale uniforme. Inoltre per ipotesi su A al passo3 c = a + r con probabilita η dunque con la medesima probabilital’algoritmo restituisce a.

Teorema 1.3. Il problema DHP e probabilisticamente auto-riducibile.

Dimostrazione. Definiamo l’algoritmo B-DHP come segue

Algoritmo B-DHP

intput: (n, g, ga, gb) dove n, g sono l’ordine e un generatore del gruppotask: Calcolare gab

1. Scegliere 0 ≤ α, β ≤ n in maniera casuale-uniforme2. x← A(n, g, ga · gα, gb · gβ) ↓3. Restituire x · (ga)(n−1)β · (gb)(n−1)α · g(n−1)αβ

La mappa σα : [0, n] ∩ N→ [0, n] ∩ N : α 7→ a + α per a ∈ [0, n] ∩ N ebiettiva perche ha come inversa σn−α, dunque se α, β seguono una di-stribuzione uniforme, la seguono anche ga ·gα, gb ·gβ. Dunque al passo 2con probabilita η si ha x = g(a+α)(b+β), percio con la stessa probabilitaal passo 3 si restituisce gab.

Teorema 1.4. Il problema DDH e probabilisticamente auto-riducibile.

Dimostrazione. Definiamo l’algoritmo B-DDH come segue

Algoritmo B-DDH

input:(n, (ga, gb, gc)

)dove n, g sono l’ordine e un generatore del gruppo

task: Decidere se ab ≡ c (mod n)1. Scegliere 0 ≤ α, β ≤ n in maniera casuale uniforme2. Restituire A

(n, (ga · gα, gb · gβ, gc · gαβ · (ga)β · (gb)α)

)↓

Con un argomento del tutto simile ai precedenti si vede che al passo 2l’istanza passata in input ad A e distribuita in modo casuale-uniforme.Dunque con probabilita η si restituisce una risposta affermativa al pro-blema di decisione se e solo se (a + α)(b + β) ≡ c + aβ + bα + αβ(mod n) ⇐⇒ ab ≡ c (mod n).

2. Relazioni di riducibilita tra problemi

2.1. Calcolare ϕ(n). Ci proponiamo di studiare il seguente pro-blema: dato un naturale n calcolare ϕ(n). Un metodo naıve e quello di

Page 68: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

62 4. RIDUZIONI TRA PROBLEMI

controllare se mcd(a, n) = 1 per ogni 1 < a < n. Se supponiamo di usa-re l’algoritmo di Euclide tale procedura richiede dunque O(n3) passi.Notiamo che anche con algoritmi piu efficienti come Stehl-Zimmermanno Schnhage per il calcolo del massimo comun divisore possiamo ab-bassare il numero di passi fino a O(n lg(n)M(n)) dove M esprime lacomplessita della moltiplicazione tra interi. Dunque tale metodo hacomplessita esponenziale.Il seguente fatto, ben noto, suggerisce di studiare ϕ(n) in relazione alproblema della fattorizzazione.

Proposizione 2.1. Per ogni n ∈ N vale

ϕ(n) = n∏

p|n

(

1− 1

p

)

Dimostrazione. ϕ e moltiplicativa, dunque se∏

p pα e la fatto-

rizzazione canonica di n, allora ϕ(n) =∏

p ϕ(pα). Notiamo ora che i

soli naturali x ≤ p tali che mcd(pα, x) > 1 sono i pα−1 multipli di p,x = p, 2p, 3p, . . . , pα−1p. Dunque ϕ(pα) = pα − pα−1 = pα(1− 1/p), maquesto implica la tesi.

Dato che ω(n) ≤ lg2 n, supponendo di conoscere gia la fattoriz-zazione canonica di n, possiamo usare il teorema precedente per cal-colare ϕ(n) in tempo O(lg(n)M(n)), dunque polinomiale nel numerodi bit necessari per rappresentare n. Allora abbiamo mostrato cheEULERPHI ≤P

T FACTORING. A questo punto e naturale chie-dersi se la fattorizzazione di interi sia effettivamente un compito piudifficile del calcolo di ϕ(n). Ebbene, i due problemi risultano determi-nisticamente equivalenti, se assumiamo vera GRH, e risultano proba-bilisticamente equivalenti in modo incondizionato.Prima di trattare il caso generale consideriamo n = pq per p, q primi.Come gia visto i semiprimi sono alla base del metodo RSA, dunquequesta restrizione e comunque interessante.

Fatto 16. Se n = pq e un semiprimo allora

FACTORING ≤P

TEULERPHI

Dimostrazione. Sono a noi notin = pqϕ(n) = pq − p− q + 1

⇒n = pqn− ϕ(n) + 1 = p+ q

dunque e sufficiente calcolare le radici del polinomio quadratico (x −p)(x − q) = x2 − (p + q)x + pq, e tale operazione richiede tempopolinomiale nel numero di bit p, q.

Per quanto riguarda il caso generale, dimostreremo l’equivalenzaprobabilistica. Vogliamo pero proporre anche alcuni cenni alla riduzio-ne di Miller condizionata a GRH, in quanto la riduzione probabilistica

Page 69: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

2. RELAZIONI DI RIDUCIBILITA TRA PROBLEMI 63

incondizionata nasce come una sua variazione. Non dimostreremo lacorrettezza della riduzione perche ogni dettaglio di tale prova compareesplicito nell’articolo originale [19].

Teorema 2.2 (Miller [19]). Assumendo GRH,

FACTORING ≤P

TEULERPHI

Dimostrazione. (Bozza, dettagli in [19]) La riduzione di Millere la seguente,

Algoritmo di Miller

input: Un naturale composto dispari n.task: Trovare un fattore non banale d,

ovvero un 1 < d < n tale che d | n.1. Se n e potenza perfetta di un primo p, restiture p.2. Per ogni a = 2, 3, 4, . . . , c · ln2 n3. Se a|n, restituire a.

4. Sia dk ← mcd((aϕ(n)/2k

mod n)− 1, n), se dk 6= 1

per qualche a ≤ k ≤ K, dove K e tale che 2K ||ϕ(n),allora restituire dk.

La parte cruciale delle considerazioni di Miller consiste nel provare cheil passo 2 e legittimo, vale a dire che e sufficiente tentare un numeroO(ln2 n) di basi a. In effetti non e ad oggi nota una dimostrazione ditale asserto che non sfrutti GRH. In particolare, Miller sfrutta le se-guenti considerazioni di Ankeny sul piu piccolo nonresiduo q-esimo perdeterminare implicitamente la costante c del passo 2,

Teorema 2.3. (Ankeny) Siano p, q dei primi tali che q | p − 1.Assumendo GRH, il piu piccolo a tale che a e un nonresiduo quadraticoq-esimo modulo p e a = O(p2).

Teorema 2.4. (Ankeney) Siano p, q dei primi tali che p 6= q. As-sumendo GRH, il piu piccolo a tale che ( a

pq) 6= 1, dove si intende il

simbolo di Jacobi, vale a = O(ln2(pq)).

Cosı c viene fatta coincidere con c := maxc1, c2 dove c1 e lacostante implicita nell’O-grande del teorema 2.3, e c2 quella del teorema2.4.

Usando l’adattamento probabilistico di Rabin, noto come algorit-mo di Miller-Rabin, e possibile provare che la fattorizzazione di interie il calcolo ϕ(n) sono probabilisticamente equivalenti, in modo incon-dizionato rispetto a GRH. La dimostrazione che proponiamo e unariorganizzazione di quella di Eric Bach [4]. Mostriamo come la riduzio-ne di Eric Bach, con qualche leggera variazione ed espansione, riducala fattorizzazione sia al logaritmo discreto modulo un composto, sia alcalcolo della ϕ di Eulero.

Page 70: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

64 4. RIDUZIONI TRA PROBLEMI

Teorema 2.5. Chiamiamo EXPO il seguente problema: dato unnaturale n e un elemento a ∈ (Z/nZ)∗ trovare un qualsiasi e 6= 0 taleche ae ≡ 1 (mod n). Allora sono vere le seguenti:

(i) FACTORING ≤ZPP

TEXPO

(ii) EXPO ≤P

TEULERPHI

(iii) EXPO ≤P

Tn-DLP

Dimostrazione. Dimostriamo (i). Consideriamo il seguente algo-ritmo di riduzione

T-riduzione per FACTORINGEXPO

input: un naturale composto dispari ntask: trovare un fattore non banale di noracolo: un algoritmo E per EXPO1. Se n e potenza perfetta di un primo p, restituire p2. Scegliere a ∈ (Z/nZ)∗ in maniera casuale-uniforme3. e← E(a, n) ↓, cosı ae ≡ 1 (mod n)4. Sia t tale che e = 2td per qualche dispari d5. Cercare 0 ≤ k < t tale che soddisfi

a2kd 6≡ ±1 (mod n) e a2k+1d ≡ 1 (mod n),se k non esiste, tornare al passo 2, altrimenti andare al 6

6. Restituire mcd(a2kd ± 1, n)

Vogliamo dimostrare che l’algoritmo termina con probabilita arbitra-riamente alta e che al passo 6 viene sempre restituito un fattore nonbanale di n. Se, fissando a, esistesse un k al passo 5, allora la riduzionerisulterebbe corretta: infatti a2kd ± 1 sarebbe una radice quadrata nonbanale dell’unita, e dunque il massimo comun divisore al passo 6 nonsarebbe banale, cioe diverso da 1, n. Dunque e sufficiente mostrare checon probabilita a crescita esponenziale si trova un k tale da soddisfareil passo 5.Sappiamo che #(Z/nZ)∗ = ϕ(n) =

i ϕ(pei

i ) se n =∏

i pei

i e lafattorizzazione canonica di n. Sia

L := mcm(ϕ(pe11 ), . . . , ϕ(p

eω(n)

ω(n) ))

allora, dal teorema di Eulero-Fermat, per ogni a ∈ (Z/nZ)∗ aL ≡ 1(mod pei

i ) dunque

aL ≡ 1 (mod n)

Inoltre L e pari dunque possiamo considerare

S := a ∈ (Z/nZ)∗ | aL/2 ≡ ±1 (mod n)tale insieme e chiuso rispetto al prodotto e quindi S ≤ (Z/nZ)∗, dunqueper il teorema di Lagrange #S | ϕ(n). Mostriamo che vale il seguente

Page 71: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

2. RELAZIONI DI RIDUCIBILITA TRA PROBLEMI 65

Fatto 17. S e un sottogruppo proprio, vale a dire S 6= (Z/nZ)∗,da cui segue immediatamente che #S ≤ ϕ(n)/2

Dimostrazione. La strategia che adottiamo e esibire un elementoa 6∈ S. Sappiamo che vale l’isomorfismo (Z/nZ)∗ ∼=

i(Z/pei

i Z)∗, eche (Z/pei

i Z)∗ e ciclico perche p 6= 2. Dunque esistono g1, . . . , gω(n) ge-

neratori rispettivamente di (Z/pe11 Z)∗, . . . , (Z/p

eω(n)

ω(n) Z)∗. Consideriamo

ora l tale che 2l||L, deve esistere un primo px | n tale che 2l||ϕ(pexx )

perche L e il minimo comune multiplo di tutti i ϕ(pei

i ). Prendiamodunque

a := (g21, . . . , g

2x−1, gx, g

2x+1, . . . , g

2ω(n))

Allora

aL/2 = (1, . . . , 1, gL/2x , 1, . . . , 1)

Dunque o(gx) = ϕ(pexx ) ∤ L/2 dunque g

L/2x 6≡ 1 (mod n), allora a 6≡ ±1

(mod n).

Dunque al passo 2, la probabilita di scegliere a ∈ S e minore ouguale a 1/2. Dunque al crescere delle iterazioni i del passo 2, laprobabilita di scegliere a ∈ S sara minore o uguale a 2−i. Dunquecon probabilita arbitrariamente grande l’algoritmo trova al passo 2 una 6∈ S. Resta da mostrare solo che

Fatto 18. per tale a 6∈ S esiste un k che soddisfa il passo 5.

Dimostrazione. Assumiamo per assurdo che tale k non esista.Notiamo che aL/2 6≡ 1 mod n implica che se L = qLo(a) allora qL deveessere dispari e o(a) deve essere pari. Sappiamo dal passo 3 che ae ≡ 1(mod n), prendiamo t tale che 2t||e e consideriamo la sequenza

ae = a2td, a2t−1d, . . . , a2t−id, . . . , ad

dove i e il piu piccolo intero in [1, t] tale che a2t−i−1d 6≡ 1 (mod n). Talei esiste, perche altrimenti si avrebbe ad ≡ 1 (mod n) da cui o(a) | d,ma questo non potrebbe essere vero dato che d sarebbe dispari e o(a)pari. Per ipotesi di assurdo deve essere

a2t−i−1d ≡ −1 (mod n) (∗)Se 2t−id = qio(a) allora qi e dispari per come si e scelto i. Osserviamoche per ogni p

ej

j ||n ao(a)/2 ≡ ±1 (mod pej

j ), perche radice quadratadell’unita modulo la potenza di un primo dispari, ma allora, per ognip

ej

j ao(a)/2 ≡ −1 (mod pej

j ) perche qi e dispari e vale la (*). Pertanto

ao(a)/2 ≡ −1 (mod n). Dunque

aL/2 ≡ (ao(a)/2)qL ≡ −1 (mod n)

perche qL e dispari, ma tale congruenza e assurda perche a 6∈ S. Questoconclude (i)

Page 72: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

66 4. RIDUZIONI TRA PROBLEMI

La (ii) e ovvia perche aϕ(n) ≡ 1 (mod n), dimostriamo dunque (iii).Consideriamo il seguente algoritmo di riduzione

T-riduzione per EXPOn-DLP

input: (a, n) dove a ∈ (Z/nZ)∗

output: un naturale e tale che ae ≡ 1 (mod n)oracolo: un algoritmo DL per n-DLP1. Per ogni primo p = 2, 3, 5, . . .2. d← DL(ap, a) ↓3. Se d 6= ∄ restituire pd− 1, altrimenti tornare

al passo 1 e provare il prossimo primo

Osserviamo che vale il seguente

Fatto 19. Sia pi l’i-esimo primo. Esiste i ≤ ⌈log2 n⌉ tale chepi ∤ ϕ(n).

Dimostrazione. Se cosı non fosse, p1 := 2, p2 := 3, . . . , p⌈log2 n⌉ |ϕ(n), allora ϕ(n) ≥ p1p2 · · · p⌈log2 n⌉ > 2⌈log2 n⌉ ≥ n. Assurdo.

Dal teorema dei numeri primi segue che pi ∼ i ln i dunque in tempoO(poly(lnn)) troviamo al passo 1 un primo p tale che p ∤ ϕ(n), allo-ra esiste una soluzione d di pd ≡ 1 (mod ϕ(n)). Dunque (ap)d ≡ a(mod n), ovvero al passo 3 d 6= ∄, e cosı apd−1 ≡ 1 (mod n).

Il teorema implica immediatamente che

FACTORING ≤ZPPT EULERPHI,n-DLP

2.2. Fattorizzazione e problema di Diffie-Hellman genera-lizzato. In questo paragrafo studiamo la riduzione che Biham, Bonehe Reingold hanno presentato in [6], vale a dire il Teorema 2.6. Rispettoall’articolo orginale cerchiamo di dare una esposizione piu accessibilee di non tralasciare nulla. In particolare abbiamo dimostrato il Fatto20, il Fatto 21 e il Fatto 22, che invece sono dati per buoni in [6]. Lariduzione riguarda i numeri naturali del seguente tipo:

Definizione 2.1. Un intero di Blum e un semi-primo n = p ·q taleche i primi distinti p e q sono entrambi congrui a tre modulo quattro,in formule p, q ≡ 3 (mod 4).

Quello che segue e l’enunciato del teorema che vogliamo trattare.

Teorema 2.6 ([6]). Sia A una macchina di Turing probabilisticacon oracolo tale che A abbia tempo di calcolo t = t(n) e tale che ǫ-risolvail problema GDHPk, dove ǫ = ǫ(n) e t = t(n). Allora esiste unamacchina di Turing probabilistica A′ che ǫ′-fattorizza in tempo t′(n) =poly(n, k(n)) · t(n), per ǫ′(n) = ǫ(n)/2−O(k(n) · 2−n).

Chiariamo cosa voglia dire “ǫ-risolvere GDHPk” ed “ǫ-fattorizzare”:

Page 73: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

2. RELAZIONI DI RIDUCIBILITA TRA PROBLEMI 67

Definizione 2.2 (ǫ-fattorizzazione). Sia N = P · Q un intero diBlum, dove P,Q sono variabili aleatorie a valori nell’insieme dei nu-meri primi congrui a tre modulo quattro aventi n cifre binarie. SiaA una TM probabilistica e sia ǫ = ǫ(n) una funzione a valori reali.Diciamo che A ǫ-fattorizza se esistono infiniti n ∈ N tali che

P(A(N) ↓∈ P,Q

)> ǫ(n)

Definizione 2.3 (ǫ-risolvere GDHPk). Sia N = P · Q un interodi Blum, dove P,Q sono variabili aleatorie a valori nell’insieme deinumeri primi congrui a tre modulo quattro aventi n cifre binarie. Siag ∈ (Z/NZ)∗ un residuo quadratico modulo N e sia k = k(n) : N→ Nuna funzione tale che k(n) ≥ 2. Sia ~a = (a1, . . . , ak) una sequenza dik ≥ 2 elementi in 1, 2, . . . , N. Definiamo una funzione

hN,g,~a : 0, 1k → Z/NZ

tale che per ogni x := x1 . . . xk valga

hN,g,~a(x) := gQ

i : xi=1 ai mod N

e denotiamo con hrN,g,~a la restrizione di hN,g,~a al dominio 0, 1k \1k.

Sia AhrN,g,~a una TM probabilistica con oracolo per hr

N,g,~a e sia ǫ = ǫ(n)una funzione a valori reali. Diciamo che A ǫ-risolve GDHPk se perinfiniti n si ha

P(Ahr

N,g,~a(N, g) ↓= hN,g,~a(1k))> ǫ(n)

Prima di procedere con la dimostrazione del Teorema 2.6 ci preoc-cupiamo di verificare alcuni fatti che vengono usati ma non dimostratiin [6].

Fatto 20. Sia n = pq un intero di Blum, e sia Q := g ∈ (Z/nZ)∗ |∃x ∈ (Z/nZ)∗ tale che x2 ≡ g (mod n) l’insieme dei residui quadrati-ci modulo n in (Z/nZ)∗. Ogni g ∈ Q ha una e solo una radice quadratamodulo n in Q.

Dimostrazione. Si tratta di chiedersi chi siano effettivamente leradici quadrate di g in (Z/nZ)∗. Quello che sappiamo e che g haesattamente due radici quadrate modulo ciascun primo p e q, infattise g ≡ a2 ≡ c2 (mod p) allora c ≡ ±a (mod p), siano dunque ±amod p le radici quadrate modulo p e siano ±b mod q le radici quadratemodulo q. Allora, se g ≡ r2 (mod n), r e soluzione di uno dei quattrosistemi del tipo

x ≡ ±a (mod p)x ≡ ±b (mod q)

Viceversa, per il Teorema Cinese dei Resti ognuno dei quattro sistemiha una e una sola soluzione x mod n, e questa e tale che x2 ≡ (±a)2 ≡g (mod p) e x2 ≡ (±b)2 ≡ g (mod q) dunque x2 ≡ g (mod n) dunquex e una radice quadrata di g modulo n. Questo vuol dire che le radiciquadrate di g modulo n sono tutte e sole le soluzioni dei quattro sistemi,

Page 74: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

68 4. RIDUZIONI TRA PROBLEMI

e dunque sono esattamente quattro. Notiamo ora che(

−1p

)

= −1

quando p ≡ 3 (mod 4), dunque vale esclusivamente(

ap

)

= 1 oppure(

−ap

)

= 1, e vale esclusivamente(

bp

)

= 1 oppure(

−bp

)

= 1. Ma

allora esattamente una radice quadrata r di g modulo n e un residuoquadratico modulo entrambi p, q, vale a dire esistono α, β tali che α2 ≡r (mod p) e β2 ≡ r (mod q). Sia r′ l’unica soluzione del sistema

x ≡ α (mod p)x ≡ β (mod q)

allora r′2 ≡ α2 ≡ r (mod p) e r′2 ≡ β2 ≡ r (mod q), dunque r′2 ≡ r(mod n), il che dimostra che r e un residuo quadratico anche modulon.

Ricordiamo che un semi-primo n = pq si dice un intero di Blum sep, q sono entrambi congrui a tre modulo quattro. Abbiamo il seguente

Fatto 21. Sia n un intero di Blum, e sia g ∈ (Z/nZ)∗ un residuoquadratico modulo n. Allora l’ordine di g modulo n e dispari.

Dimostrazione. Per il fatto precedente esistono residui quadra-tici r′, r′′ tali che g = r′2 = r′′4, dunque

on(g) = on(r′′4) =on(r′′)

mcd(4, on(r′′))

d’altra parte on(r′′) | ϕ(n) ≡ 4 (mod 8) perche n e un intero di Blume dunque on(g) deve essere dispari.

Esponiamo ora la dimostrazione di [6]. La strategia alla base diquesto risultato e la seguente: sappiamo che se vale u2 ≡ v2 (mod N)per qualche u 6≡ ±v (mod N), allora siamo in grado di fattorizzareN calcolando mcd(u − v,N). Ci chiediamo se scelto v ∈ (Z/nZ)∗ inmaniera casuale uniforme sia possibile calcolare tale u, in altre parolese sia possibile calcolare una radice quadrata di v2 modulo N diversa da±v. Ebbene, in modo piuttosto ingegnoso gli autori di [6] dimostranoche questo e possibile riducendosi a GDHPk.

Dimostrazione. (del Teorema 2.6) Definiamo l’algoritmo A′ co-me segue

Algoritmo A′

Page 75: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

2. RELAZIONI DI RIDUCIBILITA TRA PROBLEMI 69

input: Un intero N = P ·Q di Blum con 2n cifre binarietask: Trovare P oppure Q

oracolo: AhrN,g,~a per GDHPk

1. Scegliere v ∈ (Z/NZ)∗ in modo casuale-uniforme e calcolare

k = k(n) e g := v2k

(mod N).2. Scegliere gli elementi r1, . . . , rk ∈ [1, n] ∩ N in modo casuale

uniforme.nota. Introduciamo la notazione ai := ri + 2−1 (mod ℓ) dove

ℓ := on(g), e ~a := (a1, . . . , ak). Inoltre denoteremo sempre2−1 mod ℓ con 2−1. Chiariamo inoltre che ~a, ℓ non sononoti ad A′.

3. Chiamare A con input (N, g) e rispondere ad ogni queryq ∈ 0, 1k \ 1k di A con hr

N,g,~a(q), che, come dimostreremo,e possibile calcolare anche senza calcolare esplicitamente ~a.

4. Assumendo che A restituisca hN,g,~a(1k), calcolare

u := g2−k

(mod N); se u 6≡ ±v (mod N) restituire,mcd(u− v,N) altrimenti restituire un messaggio di errore.

Al passo 1 notiamo che per il Fatto 21 on(g) =: ℓ e dispari. Dunqueesiste 2−1 mod ℓ e vale 2−1 = (ℓ + 1)/2. Assumiamo per un istan-te di poter eseguire il passo 3, e assumiamo che al passo 4 u2 ≡ v2

(mod N). Sotto queste ipotesi, che dimostreremo essere vere, si hamcd(u − v,N) ∈ P,Q quando u 6≡ ±v (mod N), ovvero la corret-tezza dell’algoritmo. I passi 1 e 2 possono essere eseguiti in tempopoly(n, k(n)), dunque restano da provare le seguenti affermazioni

(1) Al passo 4, u2 ≡ v2 (mod N)(2) Al passo 3, per ogni query q, hr

N,g,~a(q) puo essere calcolata intempo poly(n, k(n)).

(3) Data hN,g,~a(1k), e possibile calcolare g2−k

mod N in tempopoly(n, k(n)).

(4) A′ ǫ′-fattorizza N per ǫ′ = ǫ′(n) := ǫ(n)/2−O(k(n) · 2−n).

Vediamo come [6] dimostrano (1),(2) e (3).Sappiamo che 2−1 ≡ (ℓ + 1)/2 (mod ℓ), dunque 2−i ≡ ((ℓ + 1)/2)i

(mod ℓ). Dunque per ogni i g2−i

e un residuo quadratico modulo N ,

perche g lo e. Vogliamo dimostrare che u2 ≡ g2−(k−1) ≡ v2 (mod N).

Notiamo che si puo scrivere v2 = v2k−(k−1), con questo in mente dimo-

striamo il seguente fatto piu forte

Fatto 22. Quando 0 < i < k, g2−i ≡ v2k−i

(mod N).

Dimostrazione. Per i = 1, entrambi g2−1e v2k−1

sono radici qua-drate di g modulo N , ed entrambe sono residui quadratici, dunqueper il Fatto 20, devono essere uguali. Assumiamo, per ipotesi di in-duzione, che l’asserto sia vero per i − 1, vale a dire g2−i+1 ≡ v2k−i+1

Page 76: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

70 4. RIDUZIONI TRA PROBLEMI

(mod N), ma allora, similmente al caso base, g2−i

e v2k−i

sono entram-be radici quadrate dello stesso residuo modulo N , ed entrambi sonoresidui quadratici modulo N , dunque, per il Fatto 20, devono essereuguali.

Dunque abbiamo provato (1). Mostriamo che questo implica anche(2), infatti per ogni q = q1q2 . . . qk 6= 1k abbiamo

hrN,g,~a(q) ≡ g

Q

i:qi=1 ai ≡ gQ

i:qi=1(ri+2−1) ≡ gPk−1

j=0 aj2−j ≡ v

Pk−1j=0 aj2

k−j

(mod N)

dove gli aj sono i coefficienti del polinomio∏

i:qi=1(ri + x) ∈ Z[x]di grado k − 1. Tali coefficienti possono essere calcolati in tempopoly(n, k(n)), e questo dimostra (2).Similmente, con i bj calcolabili in tempo poly(n, k(n)),

hN,g,~a(1k) ≡ g

Qkj=1 ai ≡ g

Qkj=1(ri+2−1) ≡ g2−k

gPk−1

j=0 bj2−j ≡ g2−k

vPk−1

j=0 bj2k−j

(mod N)

⇓g2−k ≡ hN,g,~a(1

k)(

vPk−1

j=0 bj2k−j)−1

(mod N)

e dunque la (3) e provata.Resta solo da analizzare la probabilita di successo di A′, ovvero dimo-strare la (4). La probabilita in questione vale

P(A′(N) ↓∈ P,Q

)= P

(E1

︷ ︸︸ ︷(u 6≡ ±v (mod N)

)e

E2︷ ︸︸ ︷(Ahr

N,g,~a(N, g) ↓= hN,g,~a(1k)) )

= P(E1 | E2) · P(E2)

Per trovare P(E1 | E2) bisogna notare che AhrN,g,~a(N, g) ↓ e distribui-

to dipendentemente da v2 e non da v, vale a dire che non puo por-tare differenze di distribuzione tra le radici quadrate modulo N di

v2, analogamente u e distribuito dipendentemente da vPk−1

j=0 bj2k−j

=

(v2)Pk

j=1 bj−12k−j

, e dunque da v2 perche i bj dipendono solo da q edagli ri, che sono stati scelti uniformemente. Dunque u e distribui-ta uniformemente tra le radici quadrate di v2, dunque deve essereP(E1 | E2) = 1/2 perche le radici quadrate modulo N di un elementoin (Z/NZ)∗ sono quattro, come visto nella dimostrazione del Fatto 20.Non resta che mostrare che per infiniti valori di n

P(E2) > ǫ(n)− O(k(n) · 2−n)

Bisogna notare per prima cosa che il Fatto 20 implica che la mappaQ → Q : x 7→ x2, dove per Q intendiamo sempre l’insieme dei residuiquadratici di (Z/NZ)∗, e iniettiva, e dunque anche biettiva. Dunquese v e scelto in maniera uniforme anche g := 2k mod N deve esseredistribuito in maniera uniforme. Abbiamo poi che

Page 77: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

2. RELAZIONI DI RIDUCIBILITA TRA PROBLEMI 71

Fatto 23. Siano r, a′ distribuiti in maniera uniforme in [1, N ]∩N,e sia a := r + 2−1 mod ℓ. Allora a e a′ hanno distanza statisticaO(2−n).

Dimostrazione. Dato che ℓ | (Q − 1)(P − 1) la distribuzionedi a condizionata all’evento r ∈ [1, (Q − 1)(P − 1)] ∩ N e la stessadella distribuzione di a′ mod ℓ condizionata all’evento a′ ∈ [1, (Q −1)(P − 1)] ∩ N. Questi due eventi hanno entrambi probabilita paria (Q − 1)(P − 1)/N = 1 − O(2−n). Dunque al crescere di n le duedistribuzioni si avvicinano con velocita esponenziale.

Con il fatto 23 in mente, e sufficiente prendere a′ := (a′1, . . . , a′k) in

maniera casuale-uniforme per poter concludere che P(AhrN,g,~a(N, g) =

hN,g,~a(1k)) > ǫ(n)−O(k(n) · 2−n); infatti hN,g,~a e hN,g,~a′ , se considerate

come variabili aleatorie, avranno distanza statistica pari a O(k(n) ·2−n).

Page 78: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la
Page 79: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

CAPITOLO 5

Alcune considerazioni sperimentali

In questo capitolo proponiamo alcune implementazioni ed eseguia-mo dei test su una macchina con sistema operativo MacOsX, processorePPC G4 con 1.67Ghz e memoria ram di 512MB DDR2 SDRAM.

1. Un generatore di numeri di Carmichael con esattamentetre fattori primi

Abbiamo gia discusso i numeri di Carmichael nel Capitolo 1. In unodegli esercizi in [17], Koblitz chiede di dimostrare che per ogni primor esistono solo un numero finito di numeri di Carmichael del tipo rpq.Qui dimostriamo qualcosa di piu preciso, ovvero un limite superiore pertali numeri di Carmichael. Come conseguenza ricaviamo un algoritmoper la generazione di tutti e soli questi numeri e ne diamo una sempliceimplementazione con il linguaggio PARI/GP. Questo linguaggio e natocome libreria C per facilitare le computazioni riguardanti la Teoria deiNumeri e si e evoluto in seguito in un vero e proprio linguaggio di scrip-ting. Secondo necessita, ogni script puo comunque essere trasformatoin un programma C con un applicativo di nome gp2c.

Proposizione 1.1. Per ogni primo r esiste solo un numero finitodi numeri di Carmichael n con esattamente tre fattori primi, ovverodel tipo n = rpq. In particolare, per ogni primo r, se rqp con r < q < pe un numero di Carmichael, allora q < 2r(r − 1) ed esiste k < r taleche p = (qr − 1)/k + 1.

Dimostrazione. Sfruttiamo il criterio di Korselt: n e di Carmi-chael se e solo se e libero da quadrati e vale l’implicazione p|n →(p − 1)|(n − 1). Sia r un primo qualsiasi. Se n = rqp e di Carmi-chael allora per Korselt abbiamo necessariamente il seguente sistemacon p, q, r distinti

pqr ≡ 1 (mod p− 1) (1)pqr ≡ 1 (mod q − 1) (2)pqr ≡ 1 (mod r − 1) (3)

La (1) si puo scrivere (p − 1 + 1)qr ≡ 1 (mod p − 1). Allora qr ≡1 (mod p − 1) e quindi p − 1|qr − 1 dunque esiste uno e un solo ktale che qr − 1 = (p − 1)k. Possiamo supporre che sia r < q < p,

dunque k = rq−1p−1

= r(q−1)p−1

+ r−1p−1

< r. D’altra parte la (2) implica,

similmente a prima, pr − 1 ≡ 0 (mod q − 1), dunque (kp)r − k ≡ 0

73

Page 80: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

74 5. ALCUNE CONSIDERAZIONI SPERIMENTALI

(mod q − 1). Ma allora, dato che vale qr − 1 = (p − 1)k, possiamosostituire kp e ottenere (qr − 1 + k)r − k ≡ 0 (mod q − 1). Allora(r + k − 1)r − k ≡ ((q − 1 + 1)r + k − 1)r − k ≡ 0 (mod q − 1) vale adire che (q − 1)|(r + k − 1)r − k = (r + k)(r − 1) < 2r(r − 1), dove ladisuguaglianza segue dal fatto k < r discusso sopra. Ma allora abbiamoun limite superiore per q, vale a dire q < 2r(r − 1) + 1 , che dipendesolo da r fissato. Vuol dire che esistono al piu un numero finito di qche soddisfano il sistema iniziale. Inoltre, per ogni q, p che soddisfanole condizioni, deve essere necessariamente p = qr−1

k+1. Vale a dire che

per ogni coppia di primi r e q tali che q < 2r(r − 1) + 1, esiste al piuun numero finito di p = p(k), k < r che eventualmente rendono rpq unnumero di Carmichael, e cosı la tesi segue.

Generatore di numeri di Carmichael del tipo rqp

input: Un naturale M come limite superiore per r.task: Generare tutti e soli i numeri di Carmichael del tipo

rqp per r ≤M, r < q < p.1. Per ogni primo r = 3, 5, . . . minore o uguale ad M ,2. Per ogni primo q t.c. r < q < 2r(r − 1),3. Per ogni divisore k di qr − 14. p← (qr − 1)/k + 15. Se p e un primo e p > q, controllare se rqp e

un numero di Carmichael con il criterio di Korselt.

Corollario 1.2. Sia r un primo e poniamo C3(r) := #n = rqp |n e un Carmichael con esattamente tre fattori primi. Allora C3(r) =O(r3/ ln r). Inoltre per ogni primo r l’algoritmo esegue il passo 5 suO(r3/ ln r) numeri del tipo n = rpq.

Dimostrazione. Per r fissato sappiamo che necessariamente r <q < 2r(r−1) e p = qr−1

k+1 per qualche k < r. Chiamiamo dunque #q

il numero di primi compresi tra r e 2r(r− 1) (esclusi), e #p il numerodi primi del tipo qr−1

k+ 1 per k < r. Certamente

C3(r) ≤ #q ·#pAbbiamo

#q = π(2r(r − 1))− π(r) e #p < r

ed e noto che esistono costanti A, a > 0 tali che per ogni x ≥ 2 valea x

ln x< π(x) < A x

ln x[27]. Dunque

C3(r) < r2

(

A · 2(r − 1)

ln(2r(r − 1))− a · 1

ln r

)

= O

(r3

ln r

)

Teorema 1.3. Per un singolo primo r del ciclo al passo 1 i passi2-5 eseguono O(P (r)·r3 ln r) operazioni, dove P (r) e il numero di passi

Page 81: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

1. UN GENERATORE DI NUMERI DI CARMICHAEL CON ESATTAMENTE TRE FATTORI PRIMI75

necessari a decidere la primalita. Inoltre, assumendo P (r) = O(ln5 r),il tempo di calcolo dell’algoritmo e O(M4 · ln5M).

Dimostrazione. Un test di Korset richiede solo un numero co-stante di moltiplicazioni e di divisioni, dunque tempo O(ln2 r). Dun-que il passo 5 richiede tempo O(P (r) · ln2 r), e sappiamo che per unsingolo r del passo 1 il passo 5 viene eseguito O(r3/ ln r) volte, percioabbiamo un tempo pari a O(P (r) · r3 ln r). Dunque, usando l’assun-zione P (r) = O(ln5 r), il tempo di calcolo dell’algoritmo e limitatosuperiormente dalla seguente somma estesa ai primi r ≤M :

r≤M

r3 ln6 r

Sfruttando le considerazioni di Bach-Shallit [5] per stimare le somme

estese ai primi p ≤ x, cioe∑

p≤n f(p) ≈∫ x

2f(t)ln tdt quando f(x) e deri-

vabile con continuita in un sottointervallo aperto di [2,∞[, possiamoaffermare che

r≤M

r3 ln6 r ≈∫ M

2

r3 ln5 r dr = O(M4 ln5M)

Segue il codice in PARI/GP che consente di cercare i numeri diCarmichael, sfruttando il test di Korselt.

carm(r) =

print("cerco con r=", r);

cr = 0;

supr = 2*r*(r-1);

forprime(q=r+1, supr,

num = q*r-1;

fordiv(num, k,

p=num/k+1;

if(isprime(p) && p>q, korselt(r,q,p))

)

);

print("cr = ",cr);

cr

korselt(r,q,p)=

n=r*q*p;

if( ((n-1)%(r-1)==0)&&((n-1)%(q-1)==0)&&((n-1)%(p-1)==0),

cr++; print(n))

\\ carmsearch(int) costruisce tutti i numeri Carmichael rqp per r<=M

Page 82: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

76 5. ALCUNE CONSIDERAZIONI SPERIMENTALI

carmsearch(M) =

maxcr=0; \\ contatore per la massima quantita’

\\di numeri di Carmichael, con r fissato

forprime(r=3, M,

ret=carm(r); \\costruiamo i Carmichael rqp

if(ret > maxcr, maxcr=ret) \\ aggiorniamo il contatore

);

print("maxcr: ", maxcr)

Completiamo il tempo di calcolo asintotico dell’algoritmo con un ben-chmark relativo all’implementazione in PARI/GP. I tempi sono statiottenuti usando la primitiva gettime() di PARI/GP, versione 2.3.4.

100 200 300 400 500

5

10

15

20

r

sec

Figura 1. Tempo di calcolo in secondi richiesto per ge-nerare tutti i numeri di Carmichael rpq, con il primo rin ascissa

Page 83: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

2. ALCUNI TEST PER IL LOGARITMO DISCRETO 77

100 200 300 400 500

5

10

15

20

r

C3(r)

Figura 2. Alcuni dati per C3(r)

2. Alcuni test per il Logaritmo Discreto

Diamo una implementazione in PARI/GP dell’algoritmo Baby StepGiant Step di Shanks ed eseguiamo un test per il tempo di calcolo. Se-gue il codice in cui sono definite anche una primitiva modexp(a,b,n)per il calcolo di ab mod n con il metodo ben noto dei quadrati ripetuti,una primitiva per il calcolo degli inversi moltiplicativi modulo n e unaricerca binaria iterativa.

/* metodo dei quadrati ripetuti

per a^b (mod n), per b >= 0 */

modexp(a, b, n) =

local(m, bin, Ma);

m = Mod(1, n);

Ma = Mod(a, n);

bin = binary(b);

for (i = 1, length(bin),

m = m*m;

if (bin[i] == 1,

m = m*Ma;

);

);

return(m);

/*calcola l’inverso moltiplicativo di g mod p*/

inverso(g, p)= return(lift(Mod(bezout(g,p)[1], p)))

Page 84: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

78 5. ALCUNE CONSIDERAZIONI SPERIMENTALI

/* cerca v sul secondo componente del multi-vettore A

e restituisce il primo componente

*/

ricercabin(A, v) =

local(mid, l, h);

l = 1;

h = length(A);

while(l <= h,

mid = floor((l+h)/2);

if(A[mid][2] == v, return(A[mid][1])); \\ altrimenti...

if(v < A[mid][2], h=mid-1, l=mid+1);

);

return(-1); \\ v non trovato

/* BabyStep-GiantStep di Shanks sui gruppi (Z/pZ)^* per p primo */

babygiant(p, g, t) =

local(b, h, A, pow);

if(t%p == 0, return); \\ per t=0 non esiste soluzione

b=ceil(sqrt(p-1)); \\ l’ordine del gruppo e’ p-1

h=lift(modexp(inverso(g,p), b, p));

A=vector(b,x,0); \\ A conterra’ coppie [i, g^i]

pow = 1; \\ pow := g^0 mod p

for(i=0, b-1, \\ riempiamo A

A[i+1] = [i, pow];

pow = (pow*(g%p))%p; \\pow := pow*g mod p

);

A = vecsort(A, 2); \\ ordiniamo A in base al secondo componente,

\\ vale a dire g^i mod p

pow = t%p; \\pow := th^0 mod p

for(j = 0, b-1, \\ cerchiamo una collisione con una ricerca binaria

i = ricercabin(A, pow);

if(i != -1, return((i+j*b)%p) );

pow = (pow*h)%p; \\ pow := (pow*h)%p

);

Nota. Questa implementazione e esemplificativa e non ha lo scopodi essere una versione ottimizzata. In particolare per la lista A nonviene usata una tabella hash, ma semplicemente un vettore di interi euna ricerca binaria. Ne consegue che il tempo di calcolo e’ O(

√n log n),

Page 85: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

2. ALCUNI TEST PER IL LOGARITMO DISCRETO 79

invece di O(√n).

100000 200000 300000 400000 500000 600000

50

100

150

200

250

300

p

msec

Figura 3. Tempo di calcolo in msec della nostra im-plementazione per il metodo Baby Step Giant Step diShanks. Il test e stato ottenuto su istanze t genera-te in modo pseudo-casuale con la primitiva random() diPARI/GP e per p via via crescente.

Page 86: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

80 5. ALCUNE CONSIDERAZIONI SPERIMENTALI

3. Alcuni test per la Fattorizzazione di Interi

Eseguiamo un test per il tempo di calcolo del Crivello Quadraticoimplementato nella primitiva factorint() di PARI/GP. Il test e statoottenuto generando interi composti in maniera pseudo-casuale con unnumero di bit via via crescente: fissato il numero di bit b, la primitivainterocasuale(b) genera un vettore z di dimensione b contenente in ogniposizione un bit pseudocasuale (primitiva random(2) di PARI/GP), epoi trasforma z in un intero usando la primitiva vec2int(). Il testrichiede anche il parametro “punti” che specifica quanti interi casualidevono essere generati per ogni b fissato.

/* converte un vettore binario in un intero*/

vec2int(v) =

local(ret); ret=0;

for(i=1, length(v),

ret += v[length(v)+1-i]*2^(i-1) ;

);

return(ret);

/*genera un intero pseudo-casuale di b bit*/

interocasuale(b) =

local(z, zint);

z = vector(i, x, random(2)); z[1] = 1;

zint = vec2int(z);

return(zint);

factortest(a,b, punti) =

local(zint);

default(timer, 0);

for(i=a, b,

for(j=1, punti,

zint=interocasuale(i);

while(isprime(zint), zint=interocasuale(i));

gettime();

\\

factorint(zint); \\ Testiamo il Crivello Quadratico

\\implementato in PARI/GP

write("factortest.txt", i, " ", gettime());

);

);

Page 87: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

3. ALCUNI TEST PER LA FATTORIZZAZIONE DI INTERI 81

80 100 120 140 160 180 200

200

400

600

800

bit

msec

Figura 4. Tempo di calcolo in msec. del Crivello Qua-dratico per la fattorizzazione di interi implementato infactorint(), una primitiva nativa di PARI/GP.

Page 88: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la
Page 89: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

Bibliografia

1. L. M. Adleman, C. Pomerance, and R. S. Rumely, On distinguishing prime

numbers from composite numbers, Ann. Math. 117 (1983), 173–206.2. Leonard M. Adleman and Ming-Deh Huang, Primality testing and two dimen-

sional abelian varieties over finite fields, Lecture Notes in Mathematics, vol.1512, Springer-Verlag, 1992.

3. M. Agrawal, N. Kayal, and N. Saxena, PRIMES is in P, Annals of Mathematics.Second Series 160 (2004), no. 2, 781–793.

4. E. Bach, Discrete logarithms and factoring, Tech. Report UCB/CSD 84/186,University of California, Computer Science Division (EECS), University ofCalifornia, Berkely, California, June 1984.

5. E. Bach and J. Shallit, Algorithmic number theory; volume I: Efficient

algorithms, The MIT Press, 1996.6. E. Biham, D. Boneh, and O. Reingold, Breaking generalized Diffie–Hellman

modulo a composite is no easier than factoring, Information Processing Letters70 (1999), no. 2, 83–87.

7. M. Blum and S. Micali, How to generate cryptographically strong sequences of

pseudo-random bits, SIAM Journal on Computing 13 (1984), no. 4, 850–864.8. Bornemann, PRIMES is in P: A breakthrough for “everyman”, NOTICES:

Notices of the American Mathematical Society 50 (2003).9. J. Brillhart, Canad. J. Math. (1981), no. 33, 1055–1059.

10. E. R. Canfield, P. Erd¨os, and C. Pomerance, On a problem of oppenheim

concerning ‘factorisatio numerorum’, J. Number Theory 17 (1983), 1–28.11. G.M. Piacentini Cattaneo, Algebra, un approccio algoritmico, Decibel

Zanichelli, 1196.12. Henri Cohen, A course in computational algebraic number theory, Graduate

Texts in Mathematics, vol. 138, Springer-Verlag, 1993.13. Jean-Marc Couveignes, Computing a square root for the number field sieve, The

development of the number field sieve (A. K. Lenstra and H. W. Lenstra, Jr.,eds.), Lecture Notes in Mathematics, no. 1554, Springer-Verlag, 1993, pp. 95–102.

14. R. Crandall and C. Pomerance, Prime numbers. A computational perspective,2nd ed., Springer-Verlag, 2005.

15. Oded Goldreich, Foundations of cryptography. volume I: Basic tools.,Cambridge University Press, Cambridge, England, 2001.

16. G. H. Hardy and E. M. Wright, An introduction to the theory of numbers, fifthed., Oxford University Press, 1979.

17. N. Koblitz, A course in number theory and cryptography, second ed., Graduatetexts in mathematics, vol. 114, Springer-Verlag, pub-SV:adr, 1994.

18. , Another look at generic groups, Advances in Mathematics ofCommunications 1 (2007), no. 1.

19. Gary L. Miller, Riemann’s hypothesis and tests for primality, Journal ofComputer and System Sciences 13 (1976), no. 3, 300–317.

83

Page 90: Universita degli Studi di` Milano Bicocca · dati i prerequisiti di Teoria dei Numeri Elementare e le definizioni ri-guardanti i Campi di Numeri. In questo primo capitolo, per la

84 BIBLIOGRAFIA

20. M. Nair, On Chebyshev-type inequalities for primes, American MathematicalMonthly 89 (1982), no. 2, 126–129.

21. Phong Nguyen, A montgomery-like square root for the number field sieve, Pro-ceedings of the 3rd International Symposium on Algorithmic Number Theory,ANTS’98 (Portland, Oregon, June 21-25, 1998) (J. P. Buhler, ed.), LNCS, vol.1423, Springer-Verlag, Berlin-Heidelberg-New York-Barcelona-Budapest-HongKong-London-Milan-Paris-Singapore-Tokyo, 1998, pp. 151–168.

22. I. Niven and H. S. Zuckerman, An introduction to the theory of numbers, Wiley,1972.

23. C. Pomerance, Fast, rigorous factorization and discrete logarithm algorithms,Discrete Algorithms and Complexity (D. S. Johnson, T. Nishizeki, A. Nozaki,and H. S. Wilf, eds.), Academic Press, Orlando, FL, 1987, pp. 119–143.

24. Pratt, Every prime has a succinct certificate, SICOMP: SIAM Journal onComputing 4 (1975).

25. Rabin, Probabilistic algorithm for testing primality, JNT: Journal of NumberTheory 12 (1980).

26. Rivest, Shamir, and Adleman, A method for obtaining digital signatures and

public-key cryptosystems, CACM: Communications of the ACM 21 (1978).27. J. Sandor, D. S. Mitrinovic, and B. Crstici, Handbook of number theory, vol. 1,

Springer, 1995.28. V. Shoup, Lower bounds for discrete logarithms and related problems, Proc.

International Advances in Cryptology Conference – EUROCRYPT ’97, 1997,pp. 256–266.

29. Solovay and Strassen, A fast monte-carlo test for primality, SICOMP: SIAMJournal on Computing 6 (1977).

30. J. Teitelbaum, Euclid’s algorithm and the Lanczos method over finite fields,Mathematics of Computation 67 (1998), no. 224, 1665–1678.

31. D. Wiedemann, Solving sparse linear equations over finite fields, IEEETransactions on Information Theory IT-32 (1986), 54–62.

32. H. Woll, Reductions among number theoretic problems, Inf. Comput. 72 (1987),no. 3, 167–179.