Laurea Specialistica in Ingegneria Informatica
Anno Accademico 2014-2015
Primo semestre.
Diario delle lezioni di Teoria Elementare dei Numeri
Prima settimana:
Illustrazione del programma del corso. Richiami sul calcolo in Zn. Complessita' polinomiale e complessita' esponenziale di un algoritmo. Complessita' delle operazioni aritmetiche sugli interi: somma, sottrazione, prodotto, divisione con resto.
Complessita' delle operazioni aritmetiche su Zn: somma, prodotto.
Seconda settimana:
Caratterizzazione delle classi resto in Zn che ammettono inverso moltiplicativo. L'algoritmo di Euclide e l'algoritmo di Euclide esteso. Stima della complessita' dell'algoritmo di Euclide e del calcolo dell'inverso moltiplicativo di una classe resto in Zn.
Il criptosistema RSA. Un esempio con PARI/GP.
Terza settimana:
Il Piccolo Teorema di Fermat. Numeri di Carmichael. Il Teorema di Miller-Rabin. Il test di primalita' di Miller-Rabin e la sua complessita'. Il teorema dei Numeri Primi. Applicazioni ed esempi: costruzione di grossi primi.
Quarta settimana:
L'algoritmo di fattorizzazione per divisioni successive e la sua complessita'. Il paradosso del compleanno. Il metodo di fattorizzazione ρ di Pollard.
Il Lemma di Floyd.
La complessita' probabilistica del metodo ρ di Pollard. Esempi con PARI/GP.
Quinta settimana:
Gruppi: definizione e proprieta'. Il gruppo additivo Zn e il gruppo moltiplicativo Z*p. La funzione φ di Eulero.
Il Teorema di Lagrange. Ordine di un elemento in un gruppo. L'ordine di un elemento divide l'ordine del gruppo.
Sesta settimana:
Gruppi ciclici e generatori. Esempi di gruppi ciclici finiti: il gruppo additivo Zn, gruppi finiti di ordine primo,
il prodotto ZnxZm, con gcd(m,n)=1.
Due lemmi preliminari alla dimostrazione del Teorema della Radice Primitiva: formula di Gauss e ordine della potenza di un elemento di
ordine a. Il Teorema della Radice Primitiva.
Settima settimana:
Radici di un polinomio a coefficienti in Zp, con p primo.
Ulteriori osservazioni sui gruppi abeliani finiti.
Interi B-smooth, funzione di Dickman.
L'algoritmo p-1 di Pollard e la sua complessita' probabilistica. Esempi con PARI/GP.
Ottava settimana:
Introduzione alle curve ellittiche: equazione di Weierstrass;
esempi di curve ellittiche su Z p, con p primo.
Costruzione geometrica della somma di due punti su una curva ellittica su R.
Nona settimana:
Curve ellittiche su Z p, con p primo: esempi ed esercizi. Il teorema di Hasse.
La struttura del gruppo dei punti di una curva ellittica su Z p (cenni).
Decima settimana:
Introduzione al metodo di fattorizzazione con le curve ellittiche ECM di Lenstra: descrizione della fase 1 di un ciclo dell'algoritmo. Esempi con PARI/GP.
Complessita' probabilistica dell'algoritmo.
Undicesima settimana:
La seconda fase dell'algoritmo ECM. Esempi con PARI/GP.
Esercizi assortiti.
Dodicesima settimana:
Il logaritmo discreto in Z*p: definizione e proprieta'. Criterio della radice primitiva.
Il logaritmo discreto. Il calcolo dell'indice per la risoluzione del logaritmo discreto in Z*p (continua).
Tredicesima settimana:
Il calcolo dell'indice per la risoluzione del logaritmo discreto in Z*p.
Quattordicesima settimana:
La complessita' probabilistica del Calcolo dell'Indice. Diffie-Hellman-Merkle key-exchange. Il criptosistema a chiave pubblica El Gamal. L'algoritmo Baby-Step-Giant-Step per la risoluzione del logaritmo discreto su un gruppo ciclico arbitrario. La complessita' di BS-GS. Il logaritmo discreto sul gruppo dei punti di una curva ellittica su Zp (quando e' ciclico).
Quindicesima settimana:
Il crivello quadratico per la fattorizzazione di numeri interi.
Sedicesima settimana:
Fine