Sei sulla pagina 1di 188

Numeri e Crittografia

S. Leonesi, C. Toffalori

Numeri e Crittografa

Springer
S. Leonesi
Dipartimento di Matematica e Informatica
Facolt di Scienze e Tecnologie
Universit di Camerino, Camerino

C. T offalori
Dipartimento di Matematica e Informatica
Facolt di Scienze e Tecnologie
Universit di Camerino, Camerino

Springer-Verlag fa parte di Springer Science+Business Media

springer.it

Springer-Verlag Italia, Milano 2006

ISBN 10 88-470-0331-8
ISBN 13 978-88-470-0331-6

Questopera protetta dalla legge sul diritto dautore. Tutti i diritti, in particolare quelli relativi alla tradu
zione, alla ristampa, alluso di figure e tabelle, alla citazione orale, alla trasmissione radiofonica o televisiva,
alla riproduzione su microfilm o in database, alla diversa riproduzione in qualsiasi altra forma (stampa o
elettronica) rimangono riservati anche nel caso di utilizzo parziale. Una riproduzione di questopera, oppu
re di parte di questa, anche nel caso specifico solo ammessa nei limiti stabiliti dalla legge sul diritto dau
tore, ed soggetta allautorizzazione dellEditore. La violazione delle norme comporta sanzioni previste dalla
legge.

Lutilizzo di denominazioni generiche, nomi commerciali, marchi registrati, ecc., in questopera, anche in
assenza di particolare indicazione, non consente di considerare tali denominazioni o marchi liberamente
utilizzabili da chiunque ai sensi della legge sul marchio.

Riprodotto da copia camera-ready fornita dagli Autori


Progetto grafico della copertina: Simona Colombo, Milano
Stampato in Italia: Signum, Bollate (Mi)
Indice

In tro d u z io n e ................................................................................................. VII

1 D alla C rittografa aiN u m e ri........................................................... 1


1.1 Giulio Cesare e Sherlock Holmes.................................................. 1
1.2 LABC della Crittografa............................................................. 4
1.3 Esistono Criptosistemi Perfetti?.................................................. 10
1.4 Crittografa a Chiave Pubblica.................................................... 17
1.5 Problemi del millennio................................................................. 19
1.6 Teoria dei Numeri e Crittografa.................................................. 24

2 P rim i e C o m p o sti.............................................................................. 27
2.1 Divisori, resti e quozienti............................................................. 27
2.2 Una parentesi computazionale...................................................... 31
2.3 II Teorema Fondamentale dellAritm etica.................................. 33
2.4 II Teorema dei Numeri Prim i........................................................ 37
2.5 Riconoscere i P rim i?..................................................................... 41
2.6 Generare i P rim i........................................................................... 42
2.7 Numeri e M isteri........................................................................... 47

3 Potenze, Radici eL o g a r itm i........................................................... 51


3.1 Introduzione.................................................................................. 51
3.2 LAritmetica dellOrologio........................................................... 51
3.3 Radici Quadrate e Resti Cinesi.................................................... 53
3.4 Potenze.......................................................................................... 57
3.5 II Piccolo Teorema di Fermat ...................................................... 59
3.6 La funzione <p e il Teorema di Eulero.......................................... 60
3.7 Campi finiti .................................................................................. 64
3.8 Logaritmi discreti ......................................................................... 68
3.9 I simboli di Legendre e di Ja c o b i................................................ 68
3.10 La Legge di Reciprocit Quadratica di G a u ss........................... 76
3.11 Ancora Radici Quadrate............................................................... 81
VI Indice

3.12 Curve Ellittiche, per finire.......................................................... 82

4 II P roblem a della P r im a lit ........................................................... 91


4.1 Dagli antichi Greci ad A K S ........................................................ 91
4.2 Gli Pseudoprimi di Carmichael.................................................... 94
4.3 Variazioni sul Piccolo Teorema di Ferm at.................................. 98
4.4 Primi e N P ....................................................................................101
4.5 LAlgoritmo di Solovay-Strassen................................................... 102
4.6 LAlgoritmo di M iller-Rabin......................................................... 107
4.7 A K S : lAlgoritmo di Agrawal-Kayal-Saxena.............................. 114
4.8 Variazioni su A K S ........................................................................ 122

5 II P roblem a della F a tto riz z a z io n e ................................................. 127


5.1 Introduzione....................................................................................127
5.2 II Metodo p - l .............................................................................. 128
5.3 II Metodo p ......................................................................................129
5.4 Fattorizzazione alla F erm at...........................................................132
5.5 Fattorizzazione e Curve Ellittiche................................................. 137
5.6 Riflessioni fin ali.............................................................................. 140

6 A ncora C ritto g ra fia ............................................................................ 143


6.1 Crittografa a Chiave Pubblica..................................................... 143
6.2 II Logaritmo Discreto e il Criptosistema di Diffie-Hellman . . . . 144
6.3 Doppi Lucchetti.............................................................................. 147
6.4 II Problema dello Z ain o .................................................................148
6.5 II Criptosistema R S A .................................................................... 151
6.6 Attacchi a R S A .............................................................................. 155
6.7 Crittografa e Curve Ellittiche....................................................... 157
6.8 Firme digitali..................................................................................159
6.9 Protocolli a Conoscenza Zero ....................................................... 161
6.10 Testa o Croce telefonico.................................................................162
6.11 Poker al telefono............................................................................ 165

R iferim enti bibliografici...........................................................................171

Indice analitico 175


Introduzione

LAritmetica, o Teoria dei Numeri, una delle discipline pi antiche della


Matematica. I numeri che tratta sono quelli che si chiamano naturali 0, 1, 2,
... e che adoperiamo sin da bambini per contare. Apparentemente semplici
e innocui, nascondono tuttavia alcuni dei misteri pi difficili e appassionanti
delhintera Matematica.
La Crittografa si interessa invece di nascondere a occhi indiscreti il contenu
to di comunicazioni riservate. Corrisponde a esigenze largamente diffuse nella
nostra societ; infatti la possibilit di usare strumenti telematici per acqui
sti, o per transazioni di denaro, o addirittura per esprimere il voto elettorale,
richiede protocolli capaci di garantire la segretezza dei dati trasmessi e la pri
vacy personale.
La Teoria dei Numeri pu soccorrere la Crittografa in queste sue esigenze;
proprio grazie ai misteri che ancora la avvolgono, riesce a fornire idee e stra
tegie per la architettura di protocolli di sicurezza.
Il libro che presentiamo d resoconto di questo collegamento. Introduce dap
prima la Crittografa moderna, i suoi obiettivi, le sue priorit, le sue necessit.
Passa poi a esporre argomenti di Teoria dei Numeri, con particolare riferimen
to ai due problemi di riconoscere i numeri primi, e di decomporre un naturale
nei suoi fattori primi; per ognuna delle due questioni fornisce un vasto pa
norama degli algoritmi che la trattano e cercano di risolverla nel modo pi
efficiente possibile. In particolare presenta la recentissima procedura A K S per
riconoscere i numeri primi.
Il libro torna poi alla Crittografa e mostra come idee e metodi di Teoria dei
Numeri si applichino alla costruzione di procedure affidabili per la trasmissio
ne sicura delle informazioni riservate.
Gli argomenti trattati corrispondono dunque in modo naturale a un corso
del terzo anno di una Laurea Triennale in Matematica, o del successivo bien
nio della Laurea Specialistica. Pu interessare e coinvolgere anche studenti di
Informatica. Del resto, il libro deriva direttamente da esperienze didattiche
svolte per vari anni nelLUniversit di Camerino. Alcuni colleghi di altre sedi
V ili Introduzione

hanno avuto la bont di apprezzare le note che da queste esperienze furono


tratte qualche tempo fa e che forniscono la base del libro stesso. Speriamo che
anche i nostri lettori possano gradire allo stesso modo questo nostro lavoro.
1

Dalla Crittografa ai N um eri

1.1 G iu lio C esare e S h erlock H o lm es


Tra i casi che il dottor Watson riferisce nella serie di racconti The Return of
Sherlock Holmes, c quello intitolato The Adventure of the Dancing Men. In
esso Sherlock Holmes viene in possesso di un foglio di carta riempito da strani
geroglifici rappresentanti figurine di pupazzi variamente orientate (i ballerini
del titolo) e deve capirne il significato. Non gli difficile immaginare che i
disegni nascondano un messaggio cifrato; ma questa congettura non lo av
vicina molto alla soluzione, perch il vero problema comprendere quale
il testo criptato e dunque, preliminarmente, in quale modo stato criptato.
Comunque Sherlock Holmes ragiona cos: c un pupazzo che compare pi
frequentemente sul foglio; se assumiamo che il testo nasconda un messaggio
in lingua inglese, si pu azzardare lipotesi che questo pupazzo rappresenti
la lettera pi comune in inglese, cio la E. Procedendo su questa strada, si
pu associare alle figurine del disegno, ordinate secondo la loro frequenza, la
successione delle lettere dellalfabeto inglese, ordinate secondo il loro uso nel
la lingua comune, dunque, dopo la E, la T, la A, la O, e cos via. Holmes
ammette che questa corrispondenza non pu essere cos sicura e ben fonda
ta da escludere errori, ma affidandosi al suo intuito e allintelligenza guidata
dalTesperienza, riesce finalmente a svelare il messaggio nascosto. Chi ap
passionato di gialli e misteri e, incuriosito da questo intreccio, interessato a
conoscerne tutto lo sviluppo pu leggere questa avventura e gli altri godibili
casi del nostro eroe nella raccolta citata. A noi il resoconto del dottor Watson
interessa perch introduce bene i due argomenti che vogliamo trattare: larte
di cifrare i messaggi - la crittografa -, e quella di svelare i messaggi nascosti
- la crittoanalisi -.
In realt il racconto di Sherlock Holmes non ha molto di originale. In effetti
lesigenza di nascondere ad occhi indiscreti per motivi di guerra, o di spionag
gio, o di amore messaggi dal contenuto delicato si pu ritenere vecchia come
il mondo; e tra i trucchi pi semplici di cifratura (e decifratura) ce quello
di tradurre le lettere dellalfabeto in uso con altri simboli (come i pupazzi
2 1 Dalla C rittografa ai N um eri

ballerini di Sherlock Holmes), oppure di permutarle tra di loro secondo una


chiave prestabilita. Questi procedimenti erano ben noti sin dallantichit: li
utilizzava anche Giulio Cesare, che, nel corso delle sue numerose campagne di
guerra, dovendo corrispondere con i suoi luogotenenti e volendo evitare che i
suoi ordini venissero intercettati e soprattutto capiti dai suoi nemici, talora li
criptava traducendoli semplicemente in greco, talora provvedeva a permutarne
le lettere secondo uno schema fsso prestabilito. Ad esempio, il testo poteva
essere cifrato spostando ogni lettera dellalfabeto dei Romani di 3 passi in
avanti (A in D, B in E, ...) e le ultime tre nelle prime tre, in ordine (X in
A, T in B, Z in C): cos il saluto AVE diventava, tra le 24 lettere dellalfabe
to della lingua latina, DZH (ricordiamo infatti che le lettere usate dai latini
erano A, B, C, D, E, E, G, H, I, K, L, M, X, O, P, Q, R, S, T, U, V, X, Y,
Z) ; il testo originale veniva poi decifrato col semplice procedimento inverso di
tornare indietro di 3 lettere; ovviamente la chiave 3 doveva essere concordata
in anticipo e resa nota sia a chi cifrava che a chi decifrava. In realt Cesare e
i suoi luogotenenti, che non conoscevano le cifre 1, 2, 3, ..., usavano al loro
posto una sorta di anello con 2 circonferenze concentriche, che elencava nella
fascia esterna tutte le lettere dellalfabeto e le accompagnava internamente
con le loro sostituzioni.
Anche la strategia usata da Holmes per recuperare il messaggio nascosto dai
suoi pupazzi non era affatto originale. Ad esempio, era conosciuta e usata da
gli Arabi, ed in particolare da Ishaq-al-Kindi, sin dal nono secolo dopo Cristo;
grazie alla tecnica prima descritta nel caso di Holmes, permetteva in gene
re una decifrazione relativamente facile dei messaggi criptati attraverso una
permutazione delle lettere; veniva (e viene) chiamata analisi di frequenza: un
nome che ben ne sintetizza lidea di base, secondo cui i simboli pi frequenti
nel messaggio corrispondono alle lettere pi comuni nella lingua usata.
Del resto, gi assai prima di Holmes, la crittografa e, conseguentemente, la
crittoanalisi avevano ottenuto rilevanti progressi e raffinamenti. Ad esempio,
nel Rinascimento Leon Battista Alberti e, poco dopo, il francese Vigenre
avevano proposto lidea di cifrare le lettere di un dato messaggio non pi con
luso costante di ununica permutazione, ma piuttosto utilizzando permutazio
ni diverse, dipendenti dal posto della lettera da cifrare. Ad esempio si poteva
concordare di traslare la prima lettera di 3 posti, la seconda di 2, la terza di 4,
secondo uno schema prestabilito e noto a mittente e destinatario, e dunque ci
frare lAVE di Cesare nellalfabeto latino come DYI. Con gli anni, per, pi
sofisticate tecniche di analisi di frequenza permisero di infrangere anche questi
sistemi crittografici. Ma ancora nella seconda guerra mondiale, lesercito te
desco adoperava una macchina Enigma che, per dirla in termini molto banali,
cifrava le informazioni segrete secondo un ripetuto uso dellidea di Alberti e
Vigenre, rinnovandone frequentissimamente la chiave. Questo sistema veni
va usato, ad esempio, per trasmettere ai sottomarini tedeschi dellAtlantico le
coordinate dei convogli nemici in navigazione e gli ordini di combattimento, ad
esempio il comando di affondarne uno. I crittoanalisti inglesi che cercavano di
violare questo codice e di carpire il significato dei messaggi si trovavano dun
1.1 Giulio Cesare e Sherlock Holmes 3

que di fronte alla difficolt non solo di ricavarne la chiave (in effetti, tecniche
raffinate di analisi di frequenza gi permettevano questo obiettivo prima della
guerra), ma anche e soprattutto di farlo in tempi rapidi, prima che la chiave
stessa perdesse la sua validit e comunque in tempo per salvare il convoglio in
navigazione. I loro sforzi, coordinati da un grande matematico del Novecento,
Alan Turing, riuscirono alla fine nellimpresa, ed il loro successo contribu al
lesito del conflitto, almeno alla battaglia navale nellAtlantico. Recenti libri e
pellicole cinematografiche descrivono in modo romanzato questi accadimenti.
Ma al di l del contributo di Turing e del suo impegno in tempi di guerra, ci
si potrebbe ragionevolmente chiedere a questo punto: che cosa centra la Ma
tematica in tutto questo? Quale legame pu mai stringerla alla Crittografia?
Una prima superficiale relazione si pu avvertire nel modo stesso di scrivere i
messaggi. In effetti, se le lettere di un alfabeto possono essere cifrate con sim
boli arbitrari, ed anche con pupazzi (del resto, gli stessi geroglifici sono simboli
di alfabeto), perch non rappresentarle addirittura come numeri naturali? A
diventerebbe 0, B diventerebbe 1, e cos via, fino a Z che, se accettiamo lalfa
beto della lingua scientifica oggi imperante, e cio linglese, corrisponderebbe
a 25; se poi vogliamo qualche ulteriore numero per cifrare i simboli di pun
teggiatura (punti, virgole, pause, etc.) possiamo accomodarci, ed usare tutti
i numeri che vogliamo, tanto il serbatoio dei numeri naturali infinito: cos
uno spazio vuoto pu avere codifica 26, una virgola 27, e via dicendo. Se per
ci limitiamo alle 26 lettere abbiamo il seguente vocabolario di traduzione:

00 01 02 03 04 05 06 07 08 09 10 11 12
A B C D E F G H I J K L M

13 14 15 16 17 18 19 20 21 22 23 24 25
N O P Q R S T U V W X Y Z

T a b ella 1.1. Vocabolario di traduzione

In particolare VAVE di Cesare rappresentato rispetto allalfabeto inglese


dalla terna 0, 21, 4 e la cifratura che se ne ottiene aggiungendo 3 ad ogni
lettera produce 3, 24, 7, cio D Y H (non pi D Z H come nellalfabeto latino
perch adesso dopo V dobbiamo considerare anche W). Inoltre questa addi
zione per 3 da intendersi modulo 26; infatti le ultime tre lettere dellalfabeto
inglese X , Y , Z sono codificate rispettivamente da A, B, C, e quindi i numeri
corrispondenti 23, 24, 25 diventano 0, 1, 2, che coincidono con le somme 23 + 3,
24 + 3, 25 + 3 proprio modulo 26. Cos la Matematica pu risultare utile non
solo per rappresentare i caratteri di scrittura, ma anche per snellire e sveltire
le operazioni di cifratura e decifratura, che, almeno nel caso di Cesare, corri
spondono alle operazioni di addizione e sottrazione modulo 26, o comunque
4 1 Dalla C rittografa ai N um eri

modulo il numero di lettere dellalfabeto.


Se poi conveniamo che criptare un messaggio significa permutarne le lettere,
allora la Matematica pu fornirci ulteriore soccorso, visto che le permutazioni
sono un suo tipico argomento, spesso indigesto ai non esperti che vi si acco
stano per studiarlo. Ad esempio, la Matematica ci dice subito quante sono
le possibili maniere di permutare (e dunque quanti sono i possibili modi di
criptare) le 26 lettere dellalfabeto (se vogliamo limitarci a 26 simboli e dimen
ticare la punteggiatura): sono 26!, e cio il prodotto di tutti i numeri naturali
da 1 fino a 26.
Tuttavia queste relazioni tra Crittografia e Matematica sembrano pi super
ficiali che sostanziali. Ma, in realt, si pu instaurare un rapporto pi serio.
Nei prossimi paragrafi cerchiamo di spiegare perch.
Esercizi 1.1.1 Negli esercizi che seguono si faccia riferimento allalfabeto
inglese e alla tabella 1.1 di conversione delle sue lettere in numeri interi. Si
assuma anche che lo spazio vuoto corrisponda al numero 27 (cio venga dopo
la lettera Z).
1. Si codifichi il messaggio siamo a corto di viveri spostando indietro di 7
passi ciascuna lettera.
2. Si decodifichi il messaggio ZMZEDPEDQEXIQEXMGE sapendo che
stato ottenuto traslando di 4 lettere in avanti il messaggio originale.

1.2 L A B C d ella C rittografa


Per apprezzare meglio i contributi della Matematica alla Crittografia, conviene
che fissiamo anticipatamente il nostro contesto, prescindendo dai casi partico
lari di Cesare e Holmes. Assumiamo allora un modello in cui il personaggio A
(Alice) cerca di scrivere al personaggio B (Bernardo) un messaggio riservato
e teme che C (il cattivo) possa intercettarlo e leggerlo. A si preoccuper
allora di
CIFRARE o CRIPTARE
il messaggio in qualche maniera, secondo unopportuna chiave di codifica, e
di far conoscere in anticipo a B come
DECIFRARE o DECRIPTARE
il messaggio criptato trasmettendogli lopportuna chiave di decodifica. A que
sto punto a C non baster pi intercettare il messaggio di A; dovr anche
sforzarsi di capire come
VIOLARE
il sistema di cifratura ideato da A. Quel che deriva da questa situazione una
coppia di problemi opposti:
quello della CRITTOGRAFIA, che si preoccupa con A e con B di escogi
tare sistemi per cifrare e decifrare messaggi riservati (chiamati di conse
guenza criptosistemi) ;
1.2 L ABC della C rittografa 5

quello della CRITTO AN ALISI, che cerca, insieme a C, di infrangere questi


criptosistemi.
Come gi detto nel precedente paragrafo, possiamo convenire che tutti i mes
saggi, tanto quelli originali quanto quelli cifrati, siano scritti con un alfabeto
composto dai numeri 0, 1, 2, ..., 24, 25 (ed eventualmente 26, 27, 28, 29,
se vogliamo anche utilizzare simboli di punteggiatura come lo spazio vuoto,
la virgola, il punto, il punto interrogativo e cos via). Se ci limitiamo a 26
simboli, allora ognuna delle 26! permutazioni su questi 26 oggetti diviene la
base di un possibile criptosistema. Ad esempio, nel caso di Cesare descritto
nello scorso paragrafo, la codifica data dalla funzione / che ad ogni numero
x tra 0 e 25 associa Finter

f(x) = x + 3 (mod26), 0 < f(x) < 26

e dunque ha chiave 3, mentre la decodifica si ottiene tramite la funzione


inversa / ' che ad ogni x associa

f'(x) = x - S (mod26), 0 < f'(x) < 26

con chiave 3. Il sistema si infrange se riusciamo a conoscere la chiave di


codifica 3 o equivalentemente quella di decodifica 3: facile infatti ricavare
Vuna delle due chiavi dallaltra.
Procedendo in modo pi generale ed astratto, supponiamo che N sia il numero
dei simboli del nostro alfabeto (con N = 26, 27, ...), cos che le permutazioni
possibili sono TV!. Ci muoviamo poi nel contesto delle classi di resti modulo
TV, cio quello dell aritmetica dellorologio di Gauss, riferita ovviamente
allintero TV. Fissiamo due naturali a e b minori di TV, e supponiamo poi che a
e TV siano primi tra loro e dunque che a sia invertibile modulo TV (assumiamo
qui un minimo di dimestichezza con i punti essenziali della Teoria elementare
dei Numeri, che comunque saranno ricordati in maggior dettaglio nei capitoli
2 e 3). A questo punto
1. cifriamo ogni simbolo x tramite la funzione / che gli associa lintero

f(x) = ax + b (modTV), 0 < f(x) < TV;

si noti che, siccome a invertibile modulo TV, / si pu invertire;


2. decifriamo proprio tramite la funzione inversa / ' di / , quella che ad
ogni simbolo x associa lintero f'(x) tale che

f'(x) = o!x + b' (modTV), 0 < f ( x ) < TV

dove a1, appunto, linverso di a modulo TV e b' a'b sempre modulo TV.
Cos la chiave del sistema data, per quanto riguarda la codifica, dalla coppia
(a, ), e per la decodifica da (a', b'). Si noti per che rapido computare una
della due coppie sapendo laltra perch facile ottenere
6 1 Dalla C rittografa ai N um eri

a1 da a, e poi b' da a e b
e, viceversa, recuperare
a da a', e poi b da a' e b'.
I criptosistemi che si ottengono in questo modo al variare di a e b corrispon
dono a quelle funzioni lineari a coefficienti interi che sono invertibili modulo
N ; tra di essi si trova il metodo di Giulio Cesare (quando a = l e = 3 )e
tutte le possibili traslazioni dei simboli dellalfabeto (quando a = 1 e b varia).
La Matematica ci aiuta per ad escogitare nuovi sistemi, differenti dalle tra
slazioni, grazie alla moltiplicazione per a. Esistono poi ulteriori criptosistemi
basati su permutazioni che non corrispondono a nessuna funzione lineare.
Esercizio 1.2.1 Sia fissato un intero positivo N. Quanti sono i cripstosistemi
che si possono formare su un alfabeto di N simboli mediante funzioni lineari
x \ a x + b modulo N, con a, b naturali minori di N e a primo con N ?
Tuttavia i criptosistemi basati su semplici permutazioni delle lettere si possono
facilmente infrangere con la tecnica dellanalisi di frequenza. I seguenti esempi
illustrano come.
Esem pi 1.2.2
1. Supponiamo N = 26. Immaginiamo che un pirata intercetti un messaggio
cifrato (in inglese) abbastanza lungo ed osservi che i simboli che vi com
paiono pi frequentemente siano, nellordine, 9 (cio J) e 3 (dunque D). Il
pirata pu avventurarsi a congetturare che il criptosistema utilizzato sia
uno di quelli appena descritti, per opportuni (e sconosciuti) a e b; sapen
do che le lettere pi comuni della lingua inglese sono, nellordine, E (di
etichetta 4) e T (di etichetta 19), pu dedurne che J cifra E e D cifra T,
e dunque, in conclusione, affrontare le due equazioni

4a + b = 9 (mod 26), 19a + b = 3 (mod 26).

Un minimo di dimestichezza con questi sistemi gli rivela, sottraendo la


prima equazione dalla seconda,

lo a = 6 = 20(mod 26).

Cos gli basta osservare che 15 primo con 26 e calcolare, ancora con un po
di confidenza con la teoria elementare dei numeri, linverso di 15 modulo
26, cio 7 (infatti 15 7 = 105 = 1 (mod26)) per concludere anzitutto che

a = - 6 7 = -42 = 10 (mod 26)

e finalmente che

b = 9 - 4 10 = -31 = 21 (mod26).
1.2 L ABC della C rittografa 7

2. Non sempre le cose scorrono cos lisce, ma lanalisi di frequenza, semmai


unita ad un minimo di fortuna e di intelligenza, riesce comunque ad in
frangere tutte queste situazioni. Ammettiamo infatti per un attimo che
lalfabeto del messaggio utilizzi 27 simboli (in inglese), quindi un minimo
di punteggiatura. Nelle stesse condizioni di sopra, il sistema da affrontare
diviene
4a + b = 9 (mod 27), 19a + b = 3 (mod 27)
da cui, sottraendo membro a membro, si ricava stavolta
lo a = 6 = 21 (mod 27).
Il problema che 15 non primo con 27, perch il loro massimo comune
divisore 3. Per fortuna anche il termine noto -6 multiplo di 3; del
resto, se non lo fosse, lequazione sarebbe impossibile ed il pirata dovrebbe
rivedere tutte le sue congetture. Dividendo per 3 otteniamo allora
5a = 2 (mod9)
da cui, sapendo che linverso di 5 modulo 9 2 (infatti 5 2 = 10 =
l(mod9)), si deduce a = 4 = 5 (mod9). Ritornando alla base 27 si
ricavano tre possibili valori per a
a = 5, 14, 23 (mod 27)
e conseguentemente per b. A questo punto la Matematica termina il suo
ruolo, ma il pirata pu provare a decifrare le tre possibili corrisponden
ti versioni del messaggio e vedere quale delle tre ha senso compiuto (o
maggior senso compiuto, in confronto ad altre possibili informazioni).
Discutiamo adesso alcune possibili variazioni sul precedente tema. Anzitutto,
non c nessun obbligo di cifrare il messaggio originale simbolo per simbolo.
Possiamo quindi adottare unit di messaggio composte da pi simboli, ad
esempio digraf, e cio parole composte da due lettere: infatti, se per caso il
messaggio ha un testo di lunghezza dispari incompatibile con questa opzione,
basta accrescerlo di un simbolo muto prefissato per adattarlo. Quindi ogni
unit di messaggio una coppia ordinata (x, y) di naturali, sempre da inten
dersi modulo la cardinalit N dellalfabeto. La coppia pu essere comunque
codificata come
p = N x + y (m odN 2),
infatti N x + y un intero compreso tra 0 e N 2 1 e permette il recupero
degli originari x e y rispettivamente come quoziente e resto della sua divisione
per N. Cos facendo, le strategie gi descritte per cifrare e decifrare si possono
nuovamente applicare, con lunica accortezza di lavorare modulo N 2.
Esem pio 1.2.3 Supponiamo N = 26 e dunque N 2 = 676. Cifriamo assumen
do a = 15, che primo con 676, e b = 48, dunque ponendo, per ogni naturale
p compreso tra 1 e 676,
1 Dalla C rittografa ai N um eri

f(p) = 15p + 48 (moti 676), 0 < f(p) < 676.

In particolare, il digrafo (13, 14) viene codificato tramite

26-13 + 14 = 352 (mod 676)

e quindi trasformato tramite / in

15 352 + 48 = 5328 = 20 (mod 676).

Siccome 20 si decompone nella divisione per 26 come

26 0 + 20,

ne segue che, in conclusione, il digrafo che cripta (13, 14) (0, 20).
Va comunque rilevato che, anche nel caso dei digrafi o di unit di messaggio
ancora pi lunghe, la analisi di frequenza costituisce tecnica vincente per
infrangere questi criptosistemi. Anzi, pu essere utile notare che, nel caso dei
digrafi, la seconda componente della coppia cifrata dipende solo dalla seconda
componente della coppia originale e non, come ci si aspetterebbe, dallintero
digrafo originale. Infatti, se p etichetta il digrafo di partenza, si ha

f(p) = a - p + b, 0 < f ( p ) < N 2.

Supponiamo che
p = N x + y, f(p) = N -x' +y'
siano le decomposizioni di p e f(p) rispetto alla divisione per N. Ricaviamo

N x' + yf = f ( p) = a - (N - x + y) + b = Nax + ay + b (m odN 2),

quindi N x' + y' e N ax + ay + b sono congrui moduli N 2 e di conseguenza


anche modulo N. Ma allora si ha

y' = ay + b (mod N)

che sottolinea, appunto, la dipendenza di y1 solo da y.


Unaltra strategia matematica per rappresentare e criptare digrafi (o anche
unit di messaggio di lunghezza > 2) fa ricorso alle matrici. Consideriamo
infatti un generico digrafo e la corrispondente coppia (x, y) di interi tra
1 e N. Possiamo intendere questultima come un vettore colonna
conseguentemente organizzare il seguente criptosistema.

Cifriamo moltiplicando a sinistra il vettore colonna


sata matrice 2 x 2 a coefficienti interi
1.2 L ABC della C rittografa 9

a b
A=
c d

invertibile modulo N, e poi sommando per un dato vettore colonna E =


; la codifica avviene dunque tramite la funzione / tale che, per ogni

scelta di x e y come sopra, / dove

a b _ f ax + by + e
+ (:m odN ),
c d ex + dy + f

0 < x ', y' < N.

Quindi la chiave di codifica data dalla matrice invertibile A =

e dal vettore colonna E = . A proposito della matrice A sar forse


opportuno ricordare che stiamo lavorando sullanello degli interi Z, ed anzi
sul suo anello quoziente Z/7VZ che, per i valori di N sopra ricordati (26, 27,
28, ...), non in genere un campo. Conseguentemente, perch la matrice
A sia invertibile non basta che il suo determinante ad bc sia diverso da
0 modulo N, ma occorre che il determinante stesso sia invertibile modulo
N, e dunque che ad bc sia primo con N. In tal caso la matrice inversa si
calcola con le usuali regole, dunque tramite la formula

sd sb
se sa

dove s un intero inverso di ad bc modulo N.


Di conseguenza decifriamo ponendo per ogni scelta di x e y interi

t! b'
/' + (modN),
c a'
d' ) \y \f

0 < x, y < N

dove A' = *;) , appunto, la matrice invera di le

a' b'
E' =
c' df

a' b'
La matrice A' = e il vettore colonna E' = costituiscono
c' d' r
la chiave di decodifica.
10 1 Dalla C rittografa ai N um eri

Esem pio 1.2.4 Sia N = 26, dunque N non primo e Fanello delle classi di
resti modulo N, Z/7VZ, non un campo. Comunque la matrice

ha determinante 2 8 3 -7 = 5 = 21 (mod 26) primo con 26 ed dunque


invertibile modulo 26. Anzi si pu controllare che linverso di 21 modulo 26
5 (del resto 5-5 = 25 = 1 (mod 26)), e quindi linversa A' di A modulo 26

Di nuovo, lapproccio matematico ci ha permesso unulteriore generalizzazione


dellidea di partenza, quella di Cesare, e la costruzione dei nostri criptosistemi.
Tuttavia lanalisi di frequenza si rivela ancora una strategia vincente per in
frangere questi perfezionamenti. Quel che anche stavolta il pirata deve cercare
di recuperare la chiave di codifica

oppure la chiave di decodifica

Si noti che, anche in questo caso, il calcolo di A' da A e di E ' da A ed E


- o viceversa - computazionalmente rapido, ed dunque indifferente per il
pirata, in linea di principio, ottenere la chiave di codifica o quella di decodifica.
Ebbene, opportuni adattamenti dei procedimenti di crittoanalisi gi descritti
nel caso di unit di messaggio composte da un unico simbolo permettono, in
presenza di opportune informazioni, il recupero delle due chiavi.

1.3 E sisto n o C r ip to siste m i P e r fe tti?

I criptosistemi sin qui considerati si basano su una permutazione rigida dei


simboli dellalfabeto, o comunque delle unit di messaggio; ad esempio, nel
caso di Giulio Cesare, il numero che rappresenta una data lettera
cifrato addizionandogli 3,
decifrato sottraendogli 3.
Questa rigidit un ovvio punto di debolezza del sistema, e un involontario
aiuto alla crittoanalisi del pirata C.
II Cifrario di Vigenre, che fu ideato da Blaise de Vigenre nella seconda
1.3 Esistono C riptosistem i Perfetti? 11

met del cinquecento e cui gi si accennato nel paragrafo 1, cerca di ovviare


a questi difetti e raffina e complica conseguentemente il procedimento di co
difica e decodifica, garantendogli maggiore impermeabilit ai tentativi di C.
Propone infatti di cifrare mediante una permutazione delle lettere che non
pi costante ma varia in relazione alla loro posizione nel messaggio. In altre
parole, A e B concordano preventivamente una parola, ovvero una stringa di
numeri naturali minori della cardinalit N dellalfabeto (ad esempio 14, 7, 8)
e la fissano come chiave, dopo di che
A cifra i suoi messaggi addizionando 14 alla prima lettera, 7 alla seconda,
8 alla terza, poi ancora 14 alla quarta, e cos via, ciclicamente;
B decifra conseguentemente, sottraendo 14 dalla prima lettera, 7 dalla
seconda, 8 dalla terza, ...
Tutte le operazioni sono ovviamente da intendersi modulo N. E quindi utile
tanto ad A quanto a B disporre della tavola additiva delle classi di resti modulo
N e utilizzarla per cifrare o decifrare. Riproduciamo qui la tavola additiva nel
semplice caso N = 7:

0 1 2 3 4 5 6
0 0 1 2 3 4 5 6
1 1 2 3 4 5 6 0
co to

2 3 4 5 6 0 1
3 4 5 6 0 1 2
4 4 5 6 0 1 2 3
5 5 6 0 1 2 3 4
6 6 0 1 2 3 4 5

A e B potranno allora identificare


le righe della tabella con i simboli del messaggio,
le colonne con quelli della parola chiave.
Per codificare un simbolo, baster sommargli il numero corrispondente nella
stringa chiave dedotto dalla sua posizione nel messaggio, cio cercare il numero
allincrocio delle relative riga e colonna nella tabella. Invece, per recuperare il
significato originario di un simbolo cifrato, baster cercarlo nella colonna del
numero della stringa chiave che corrisponde alla sua posizione e, individuatolo,
risalire alla riga che lo contiene.
Esem pi 1.3.1
1. Supponiamo che, per N = 7, quindi in riferimento alla precedente tavola
additiva, A e B concordino preventivamente la stringa chiave 2, 1, 6, 4
e che A voglia trasmettere a B il messaggio 3, 2, 4, 5, 0, 1. Adoperando
12 1 Dalla C rittografa ai N um eri

la tabella nel modo prima descritto o comunque sommando modulo 7, A


ricava
3+ 2= 5
(del resto 5 Tincrocio tra la riga 3 e la colonna 2 della tavola) e ancora

2 + 1 = 3, 4 + 6 = 3, 5 + 4 = 2, 0 + 2 = 2, 1 + 1 = 2,

quindi ottiene la codifica 5, 3, 3, 2, 2, 2. B recupera il messaggio originale


sottraendo modulo 7 e ricavando 5 2 = 3 (del resto 5 si trova nella
colonna 2 in corrispondenza della riga 3), e cos via.
2. Supponiamo adesso N = 26. Tralasciamo per semplicit di riportare qui
la relativa tabella di 26 righe e 26 colonne: A e B avranno semmai cura
di compilarsela e scambiarsela preventivamente per le loro comunicazio
ni. Ammettiamo poi che A intenda semplicemente salutare B dicendogli
CIAO in un alfabeto di 26 lettere, quindi 2, 8, 0, 14 modulo 26, e ricorra
alla stringa chiave precedentemente concordata 14, 7, 8. Allora A procede
alle addizioni

2 + 14 = 16, 8 + 7 = 15, 0 + 8 = 8, 14 + 14 = 28 = 2 (mod 26)

o, equivalentemente, incrocia righe e colonne opportune della tabella e


ottiene la cifratura 16, 15, 8, 2, ovvero Q P I C , per dirla con le lettere
comuni. B recupera il saluto CIAO procedendo a ritroso, nel modo sopra
descritto.
Si noti che il ricorso alla tabella additiva modulo N prescinde dalla scelta della
stringa chiave, che pu essere anzi cambiata caso per caso. Anzi, si possono im
maginare criptosistemi in cui le permutazioni adoperate per cifrare e associate
ai simboli della stringa chiave non corrispondano necessariamente a semplici
traslazioni (cio addizioni). Baster infatti preparare ancora anticipatamente
una tabella N x N in cui
le righe corrispondano ai simboli da cifrare,
le colonne corrispondano ai simboli della stringa chiave e riportino, riga
per riga, come permutare il simbolo relativo.
In questo ambito esteso le operazioni di codifica e decodifica non si svolgono
pi tramite addizioni o sottrazioni, ma giocando ancora con gli incroci di righe
e colonne alla maniera sopra illustrata.
Ad esempio, per N = 7 consideriamo la tabella seguente.
1.3 Esistono C riptosistem i Perfetti? 13

co
to
0 1 4 5 6
0 1 0 2 4 5 0 6
1 2 4 6 0 1 2 5
2 3 1 3 6 3 4 0

co
6 2 1 2 0 6 4
4 4 5 4 3 2 1 3
5 5 3 0 5 6 3 2
6 0 6 5 1 4 5 1

Gli incroci tra righe e colonne non corrispondono pi ad addizioni, ma ogni


colonna ci dice ancora come permutare i simboli di una riga. Cos, se A deve
ancora trasmettere a B il messaggio 3, 2, 4, 5, 0, 1 con la chiave 2, 1, 6, 4,
stavolta lo codifica come 1, 1, 3, 6, 2, 4.
Ritorniamo comunque al caso delle addizioni e sottrazioni e delle corrispon
denti tabelle additive modulo N. Il lettore avr osservato come, in questo
ambito, decodificare (cio sottrarre) risulti lievemente pi laborioso che codi
ficare (ovvero sommare). Ma N = 2 permette qualche semplificazione a que
sto proposito. Il motivo che, quando si opera modulo 2, sottrarre equivale a
sommare, infatti
0 + 0 = 0, 1 + 1 = 0
e quindi ogni naturale y soddisfa y + y = 0(mod2). Di conseguenza, se un
simbolo x G {0, 1} viene cifrato tramite y e quindi diviene x' = x + y modulo
2, allora la decodifica da x' a x avviene ancora sommando per y , poich

x f + y = (x + y ) + y = x + (y + y ) = x + 0 = x.

Va poi rilevato che la scelta N = 2 non poi cos parziale e ristretta. Infatti
qualunque naturale si pu scrivere nella sua rappresentazione binaria, cio
rispetto alla base 2, come stringa di 0 e 1: allora

0, 1,2, 3, 4, 5, 6, 7 , 8 , 9 , . . .

diventano
0, 1, 10, 11, 100, 101, 110, 111, 1000, 1001, ...
Ritorniamo comunque a commentare in generale il sistema di Vigenre. Anche
se pi raffinato rispetto a quelli di Cesare e Holmes, ha tuttavia i suoi punti
deboli. Infatti la ripetitivit della parola chiave pu consentire a C, nel caso di
messaggi molto lunghi, un qualche spiraglio per la crittoanalisi di frequenza.
Come precauzione, si pu operare un ricambio frequente della parola chiave,
tanto pi che, fissato N, la stessa tabella additiva continua a sovrintendere
ogni nuova sequenza concordata. Ma gi sappiamo che la crittoanalisi pu ag
girare questa misura di prudenza, come la storia di Enigma e Turing riferita
nel primo paragrafo ci dimostra.
Maggiore sicurezza e conseguente resistenza ai tentativi di violazione si pu
14 1 Dalla C rittografa ai N um eri

ottenere anche allungando la parola chiave. Operando in questo senso, si ar


riva al caso limite in cui ogni messaggio accompagnato da una sua propria
parola chiave, della sua stessa lunghezza.
Il Cifrario di V ernam (proposto nel 1917 da Gilbert S. Vernam mentre la
vorava per lATT) prevede proprio questa strategia. Descriviamolo in maggior
dettaglio. Assumiamo N = 2 per semplicit. Ammettiamo poi che A debba
trasmettere un messaggio x formato da una sequenza ordinata di lunghezza l
di 0 e 1. A ricorre ad una parola chiave che una sequenza casuale y di 0 e 1,
ancora di lunghezza l. A questo punto:
la codifica avviene sommando x con y componente per componente (e
ricavando il messaggio cifrato x'),
il recupero di x da parte di B si ottiene addizionando x' con y ancora com
ponente per componente (il che produce la somma x, come gi illustrato
sopra).
Ad esempio, se il messaggio da spedire

x = 1001010110101

e la parola chiave cui si ricorre

y = 0010101101011,

la versione cifrata diventa

x' = 1011111011110.

In generale, siccome la chiave y casuale, anche x' risulta assolutamente casua


le, e quindi potenzialmente inattaccabile da C e dalle sue analisi di frequenza.
Daltra parte, il meccanismo presenta ovvie difficolt pratiche:
(i) anzitutto la chiave y si pu recuperare da x e x 1 come loro somma modulo
2, il che consiglia di usarla soltanto una volta, proprio per x e x';
(ii) del resto, il criptosistema prevede esplicitamente che linsieme delle chiavi
coincida con quello dei possibili messaggi: per ogni intero positivo ci
sono tanti messaggi di lunghezza l (2l per la precisione) quante chiavi che
li codificano;
(ih) A e B dovranno conseguentemente concordare per ogni loro corrispon
denza una apposita chiave e trasmettersela;
(iv) ma generare una nuova chiave, e cio una sequenza assolutamente casuale
di 0 e 1, procedura complicata e costosa.
Una tale dovizia di cautele e attenzioni si pu forse concepire nel mondo
misterioso dello spionaggio, ma non nella vita comune. Infatti difficile im
maginare che due innocenti interlocutori A e B concordino preventivamente
una parola chiave lunga quanto il loro successivo messaggio, la scrivano su
qualche foglietto o su qualche taccuino, la custodiscano attentamente per la
1.3 Esistono C riptosistem i Perfetti? 15

loro corrispondenza, la eliminino accuratamente dopo Vuso. Un simile com


portamento da spie pi che da gente comune. In effetti il cifrario di Vernam
anche chiamato one time pad (taccuino monouso) a sottolineare proprio que
ste sue caratteristiche: buono per le spie, scomodo in ambiti pi generali.
Daltra parte, il codice di Vernam , almeno teoricamente, Vunico sicuro nella
crittografia classica, nel senso che ora cerchiamo di spiegare.
Vale infatti la pena di approfondire finalmente, anche soltanto in modo infor
male, il tema della sicurezza di un criptosistema: quando dichiararla assoluta,
ed in ogni caso come stabilirne il livello. Largomento fu trattato da Claude
Shannon nel 1949 con un approccio di tipo probabilistico che adesso descri
viamo.
Ci muoviamo nel contesto consueto di due interlocutori A e B e di un pirata
C che cerca di carpirne la corrispondenza. Immaginiamo che A e B utilizzino
un criptosistema composto da
un insieme finito M di possibili messaggi,
un insieme finito K di possibili chiavi
e che ogni chiave k E K determini una coppia di funzioni da M a M, Luna
inversa dellaltra, la prima e* di codifica, la seconda dk di decodifica. Quindi
dkek(m) = m per ogni messaggio m. Le lettere e, d sono proprio suggerite
dal compito richiesto a queste due funzioni, e cio, rispettivamente, lazione
di criptare e decriptare, encrypt e decrypt in inglese.
In questo ordine di idee possiamo addirittura azzardare formalmente una
definizione astratta di criptosistema.
Definizione 1.3.2 Criptosistema una struttura (M, K, (e*, dk)keK) dove
M e K sono due insiemi finiti e, per ogni k G K , e/., dk sono funzioni da M
a M Vuna inversa deiraltra.
Accettiamo dunque questa definizione. Ammettiamo adesso che, sulla base
di indagini statistiche sulla corrispondenza di A e B, C riesca ad assegnare
a priori a ogni m E M una probabilit di esser inviato: dunque, se un dato
messaggio rao viene spedito da A a 23, C pu considerare la probabilit al
variare di m E M che rao sia proprio ra

P r meM(rn0 = ra).

Ammettiamo poi che C intercetti la versione cifrata co di qualche messaggio.


C non sa n il messaggio originario n la chiave che lo ha criptato, ma pu
considerare per ogni rao G M la probabilit al variare di k G K che co sia
proprio la codifica di rao

PrkeK(c0 = ek(m0)).

Possiamo adesso definire che cosa si intende per criptosistema perfetto (cio
sicuro da tentativi di violazione).
16 1 Dalla C rittografa ai N um eri

Definizione 1.3.3 Un criptosistema (M, K, (e*, dk)keK) si c'ce perfetto se


e solo se, per ogni co in M, Proteico = e^(mo)) la stessa per tutti gli
rrio e M .
In altre parole, nessun vantaggio circa lidentificazione di rao deriva a C dalla
conoscenza di cq. C unaltra caratterizzazione equivalente della nozione di
criptosistema perfetto, che ne ribadisce la plausibilit. Notiamo infatti che,
intercettato co, C pu considerare ogni singolo messaggio mo di M, valutare
la probabilit (gi sopra considerata) che il messaggio spedito sia proprio
mo P r mGM(m = mo) e confrontarla con la probabilit dello stesso evento
condizionata alla conoscenza di co e calcolata anche al variare della chiave k,
cio PrmeM,keK(m mo | <) = e^(mo)). Si dimostra allora:
Teorem a 1.3.4 Un criptosistema (M, K, (ek, dk)keK) perfetto se e solo
se, per ogni scelta di mo, co in M, PrmeM(m = mo) = Prm^M, keK(m =
mo | c0 = ek(m0)).
Si ribadisce cos che la conoscenza di co non fornisce alcuna maggiore certezza
circa il messaggio originario.
Esem pio 1.3.5 Mostriamo che il criptosistema di Vernam (per messaggi di
una fissata lunghezza l) perfetto. Infatti si ha che M K {0, 1}Z e,
per ogni k in K, tanto ek quanto dk agiscono sui messaggi m di M come la
addizione modulo 2 per k. Allora, per ogni scelta di co G M, Pr keK(co
Cjfe(mo)) = 2-/ costante al variare di mo in M.
In realt il cifrario di Vernam lunico perfetto. Il prossimo teorema ci dice,
infatti, che qualunque criptosistema perfetto deve condividere una propriet
cruciale di quelli di Vernam, e cio la necessit di una gran dovizia di chiavi.
Teorem a 1.3.6 In un criptosistema perfetto (M, K, (ekj dk)keK) ci sono
almeno tante chiavi quanti messaggi.

D im ostrazione. Siano mo un messaggio di M, co una sua versione cifrata


rispetto a qualche chiave di K. Dunque P rk^K{co = ^(m o)) > 0. Se il cripto
sistema ammette pi messaggi che chiavi, possiamo trovare m'0 G M tale che
m'0 dk(co) per ogni k G K e quindi PrkeK(co ek(m'0)) = 0. Ma questo
contraddice lipotesi di perfezione perch si ottiene PrkeK(co ^(m o)) ^
PckeK(co Ck(m'0)). Segue che ci devono essere almeno tante chiavi quanti
messaggi.

La conclusione del paragrafo dunque scoraggiante: infatti, siccome i cifrari


di Vernam sono praticamente inutilizzabili, ma sono gli unici sostanzialmente
perfetti, dobbiamo ammettere che non esistono criptosistemi perfetti che si
possano realmente adoperare nella vita comune.
1.4 C rittografa a Chiave P ubblica 17

1.4 C rittogra fa a C hiave P u b b lic a

Negli anni pi recenti, Pavvento dei moderni calcolatori e le crescenti capacit


computazionali che ne derivano hanno aperto anche alla Crittografa nuove
prospettive e nuovi campi di interesse. Ricordiamo infatti due ovvie caratteri
stiche della Crittografa Classica (quella di Giulio Cesare, Vigenre e Vernam,
per intenderci):
1. c una chiave di cifratura, che i corrispondenti devono preventivamente
scambiarsi (come il numero 3 nellesempio di Cesare);
2. sapere come si cifra (traslando di 3 lettere, nellesempio) equivale a sapere
come si decifra (traslando di 3 lettere nel senso opposto).
Ma queste propriet si rivelano altrettanto ostacoli e difetti rispetto alle nuo
ve esigenze della Crittografa Moderna. Quali sono infatti i nuovi obiettivi
cui la nuova Crittografa deve far fronte? Vediamo un esempio. Tra le nuove
possibilit che Internet consente, c quella di operare acquisti direttamente
in rete, pagando con la semplice trasmissione delle coordinate della propria
carta di credito. Naturalmente questo genere di transazioni richiede una ovvia
riservatezza, che nasconda il numero della carta ad occhi indiscreti. Come si
possono cifrare queste informazioni? Certamente non con i codici classici.
1. Utilizzare una sola chiave, e comunque trasmetterla ai tanti utenti inte
ressati, sarebbe enormemente pericoloso: un pirata capace di intercettare
i messaggi potrebbe anche anticipatamente riuscire a carpire la chiave,
e a quel punto non dovrebbe far pi nessuno sforzo di crittoanalisi per
infrangere le informazioni riservate.
Una maniera per ovviare a questa difficolt quella di escogitare sistemi crit
tografici che escludano qualunque trasmissione di chiave. Ogni utente A sceglie
una coppia di chiavi: una pubblica, che ogni interlocutore pu ed anzi deve
sapere per cifrare la propria corrispondenza verso A; una privata, che soltan
to A deve conoscere (e gelosamente custodire) e che gli serve per decifrare i
messaggi che gli arrivano. Ma la chiave pubblica per cifrare i messaggi ad A
diventerebbe in questo modo nota anche a persone indiscrete e a pirati. Dun
que un tale sistema dovrebbe avere la seguente propriet, del tutto opposta a
quanto avviene nella crittografa classica.
2. Decifrare deve essere enormemente pi difficile di cifrare, almeno per
chi non conosce la chiave privata di A: le due operazioni di criptare e
decriptare non devono essere computazionalmente equivalenti.
E ragionevole aspettarsi di costruire sistemi crittografici con queste caratteri
stiche? Il seguente esempio suggerisce di s.

Il m etodo del doppio lucchetto. Supponiamo che B voglia trasmettere un


messaggio ad A senza dovergli preventivamente spedire alcuna chiave: B ripo
ne il messaggio in uno scrigno che chiude con un suo lucchetto ed invia ad A.
18 1 Dalla C rittografa ai N um eri

A, ricevuto lo scrigno, lo chiude con un suo secondo lucchetto e lo rispedisce a


B. B a questo punto apre il proprio lucchetto: lo scrigno resta chiuso dal luc
chetto di A, e viene rimandato ad A. A , ricevuto nuovamente lo scrigno, apre
lultimo lucchetto rimasto - il suo - e pu finalmente leggere il messaggio. Si
noti che la trasmissione avvenuta senza alcuno scambio preventivo di chiave,
anzi A e B hanno usato i loro privatissimi lucchetti per aprire e chiudere lo
scrigno.

Il racconto mostra a livello intuitivo come sia possibile, in linea di principio,


escogitare sistemi crittografici di cifratura e decifratura che evitino lo scam
bio preventivo di chiavi, e dunque superino la propriet 1 della crittografia
classica: i due interlocutori A e B operano con le loro chiavi, personalissime
e privatissime, e tra loro indipendenti, visto che la facolt di A di aprire o
chiudere il suo lucchetto non interferisce con lanaloga libert di B.
Ma certamente non possiamo immaginare di usare nella nostra vita comune,
per la nostra pur delicata corrispondenza, un simile macchinoso procedimen
to di scrigni e lucchetti. Ci chiediamo allora se possiamo realmente costruire
sistemi efficienti e sicuri che possano garantire le esigenze sopra sottolineate.
Ebbene, la Matematica sa fornire idee e strumenti per realizzare nella pratica
di tutti i giorni il metodo del doppio lucchetto. Ma prima di introdurli ricapi
toliamo ancora una volta quali sono le necessit della Crittografia moderna,
quella che viene adesso usualmente chiamata Crittografa a chiave pubblica:
1. non deve essere richiesto alcuno scambio di chiave;
2. decifrare deve essere unoperazione enormemente pi difficile che cifrare,
a meno che non si disponga di ulteriori specifiche informazioni.
Unidea per soddisfare queste esigenze potrebbe essere quella di usare funzioni
a senso unico: funzioni di cifratura che
(i) siano facilmente computabili (in modo che chiunque possa velocemente
criptare un messaggio per un dato utente *4),
(ii) siano invertibili (in modo da permettere la decifratura),
(iii) ma abbiano uninversa il cui calcolo proibitivo in assenza di ulteriori
informazioni (che costituiscono la chiave privata di A, quella che solo A
deve conoscere e senza la quale nessun pirata potr infrangere in tempi
rapidi un messaggio eventualmente intercettato).
Una funzione a senso unico potrebbe essere la base ragionevole di un efficiente
sistema di crittografia a chiave pubblica. A priori, per, niente assicura che
simili funzioni esistano. E, comunque, la nozione stessa di funzione a senso
unico non ha niente di matematicamente rigoroso: infatti la difficolt di cal
colare linversa potrebbe essere soltanto transitoria e passeggera, legata allo
stato attuale delle conoscenze scientifiche; una funzione che oggi si rivelasse
a senso unico domani potrebbe non esserlo pi, perch niente vieta che nel
frattempo qualche genio - un novello Sherlock Holmes? - riesca ad ideare un
procedimento effettivo e rapido capace di computarla.
1.5 Problem i del millennio 19

Daltra parte ci sono due significativi settori della Matematica e dellInfor


matica Teorica che possono fornire numerosi spunti e fonti di ispirazione per
la costruzione di funzioni a senso unico e, conseguentemente, di criptosiste
mi a chiave pubblica. Descriviamo brevemente nel prossimo paragrafo certe
strategie suggerite dallInformatica.

I . 5 P r o b lem i d el m illen n io

C una famosa questione di Informatica Teorica, che viene in genere chiamata


P = N P , e che sostanzialmente chiede quanto segue.
Anche uno studente di Matematica alle prime armi, impegnato a risolvere
un problema di aritmetica oppure unequazione, constata che verificare la
soluzione, una volta che stata trovata, pu essere noioso, ma certamente
rapido e sicuro, mentre cercare la soluzione talora stimolante, ma spesso
lento ed incerto. P = N P domanda, pi generalmente, se tutti i problemi che
ammettono un procedimento rapido di verifica delle soluzioni hanno anche un
algoritmo veloce di soluzione: parliamo qui di problemi non solo matematici,
ma anche eventualmente di Chimica, Biologia, e cos via, purch riconducibili
ad un modello matematico.
Ovviamente una piena comprensione della questione richiede che si chiarisca
preliminarmente che cosa un problema e che successivamente si definisca
con precisione
1) quali problemi hanno un algoritmo di soluzione, e quali no,
2) in quali casi lalgoritmo si pu ritenere rapido, e in quali no.
Rispondiamo qui in modo non rigoroso, rimandando ai testi specifici di Teoria
della Computabilit e della Complessit citati a fine capitolo per una tratta
zione pi dettagliata.
Anzitutto osserviamo che un problema matematico, o comunque riconducibile
a un modello matematico, si deve esprimere nel linguaggio matematico, che
si compone di simboli specifici come le cifre decimali 0, 1, 2, ..., 8, 9 oppu
re le lettere x, y, z, ...; con esse si possono costruire numeri, o polinomi, o
altri oggetti ancora. Diciamo allora che quei simboli matematici necessari a
esprimere il contesto di un particolare problema formano lalfabeto di quel
problema. Possiamo facilmente convenire di trattare soltanto alfabeti finiti.
Adesso notiamo che un problema consiste spesso nel riconoscere, tra tutte
le sequenze finite di simboli (o parole) del suo alfabeto, quelle che soddisfano
una prefissata condizione. Ad esempio, c un famoso problema di aritmetica
che chiede di stabilire se un dato numero naturale N > 2 primo; il problema
domanda quindi di identificare tra tutti i numeri naturali N > 2 - espressi
come sequenze di cifre 0, 1, 2, ..., 9 - quelli che sono primi, e attende la
risposta s se N primo, no altrimenti: accetta conseguentemente 2, 3, 5, 7,
II, ..., perch primi, esclude al contrario 4, 6 e cos via. Quindi in questo
caso, e in molti altri, dato un input formato da una parola dellalfabeto e ci
20 1 Dalla C rittografa ai N um eri

attendiamo un output del tipo s o no a seconda che linput soddisfi o no la


condizione richiesta dal problema.
Altre volte il problema consiste nel calcolare, per ogni parola dellalfabeto, la
sua immagine in una qualche funzione. Ad esempio, per ogni naturale N > 2
possiamo chiederci di decomporre N nei suoi fattori primi, dedurre quindi 22
da 4, 2 3 da 6, 2 da 2 e via dicendo. Stavolta linput ancora una parola
dellalfabeto, ma loutput non si riduce a un s o no, ma si estende a parola, o
a coppie o terne di parole - nel caso specifico, nella sequenza dei fattori primi
di N -.
Nel seguito, considereremo prevalentemente problemi di queste forme o, an
cora pi frequentemente, del primo tipo sopra descritto (con le due risposte
alternative s e no). Intenderemo dunque principalmente un problema da un
punto di vista astratto, come un insieme S di parole su un alfabeto finito A
(allo stesso modo in cui i numeri naturali, e in particolare i primi, si possono
intendere come parole sullalfabeto {0,1, 2,..., 9}). La questione da risolvere
, per ogni parola w su A, se w in S o no (cos come, nel caso dei primi, per
ogni naturale N > 2, si vuole decidere se N primo o no).
Possiamo adesso distinguere quali problemi hanno soluzione e quali no. In base
a quanto abbiamo fin qui stabilito un procedimento di soluzione tratta parole
sullalfabeto (finito) del problema e tende a scegliere quelle che soddisfano
determinate condizioni, oppure a calcolare la loro immagine in determinate
funzioni. Per certi problemi questo procedimento si trova facilmente, per al
tri si raggiunge con qualche maggior difficolt, per altri ancora resta incerto
e misterioso: anzi, in questi ultimi casi si pu addirittura dubitare che un
algoritmo di soluzione si possa realmente scoprire.
Il procedimento, quando c, dipende poi ovviamente dal problema, e cio
dalla domanda a cui deve rispondere: un algoritmo che riconosce i numeri
primi non va bene per risolvere le equazioni di terzo grado, e viceversa.
Come possiamo allora sviluppare un trattamento astratto uniforme di queste
situazioni cos disparate? Come possiamo dare una definizione teorica genera
le di algoritmo? Ebbene, nel 1936, Alan Turing ide una sorta di calcolatore
astratto ante litteram, in realt pi assomigliante ad una vecchia macchina
da scrivere che ad un moderno computer: la macchina di Turing. Egli pro
pose di assumere questi meccanismi teorici come termine di paragone di ogni
computazione, e dunque di convenire che calcolabile esattamente ci che
una macchina di Turing sa calcolare. Sostanzialmente si afferma, a livello di
slogan:
Tesi di Turing. Un problema ha un algoritmo che lo risolve se e solo se
c una Macchina di Turing che capace di farlo.
Tesi sta qui per proposta, ipotesi di lavoro.
Ci sono fondati argomenti che sostengono ancor oggi questo punto di vista,
espresso da Turing una settantina di anni fa.
a) Ad esempio, non si conoscono ancora esempi di problemi che hanno una lo
ro specifica procedura di soluzione e che non si possono gestire con nessuna
1.5 Problem i del millennio 21

macchina di Turing.
b) Di pi, nellepoca di Turing e negli anni successivi ci sono state svariate
altre proposte su come definire in generale sia il concetto di algoritmo
che la classe dei problemi che hanno algoritmo di soluzione. Ma questi
approcci, talora assai distanti per spirito e ispirazione da quello di Turing,
si sono poi dimostrati ad esso equivalenti. Questa coincidenza concentrica
di idee originariamente cos distanti pu essere intesa come loro comune
sostegno.
Cos, se accettiamo la Tesi di Turing, disponiamo di una precisa identificazione
dei problemi che hanno procedimento di soluzione. Risulta allora addirittura
possibile provare in modo rigoroso che taluni problemi non si possono risolvere
perch non c macchina di Turing capace di farlo.
Si potrebbe tuttavia ancora obiettare che dai tempi di Turing i modelli pratici
di calcolatori, ed anche la relativa teoria astratta, si sono grandemente svilup
pati: oggi, al posto delle macchine di Turing, si possono considerare computer
sofisticati e addirittura prevedere, secondo certi recenti progressi della Fisica,
calcolatori quantistici di eccezionale velocit (ne accenneremo nel seguito).
Tuttavia questi sviluppi non mettono in crisi il modello di Turing: infatti si
prova che quello che un moderno calcolatore, o una macchina quantistica, sa
computare, anche unopportuna macchina di Turing riesce a calcolarlo, sem
mai pi lentamente.
Arriviamo cos al vero nocciolo della questione. Infatti la semplice esistenza di
un procedimento che fornisce le risposte di un problema non talora sufficien
te a garantire un trattamento pieno, adeguato e soddisfacente del problema
stesso. Sovente occorre che le risposte arrivino in tempo breve, senza indugi:
una soluzione che tarda ore, o anni, o millenni ad arrivare tanto inutile quan
to una soluzione che non c. Del resto lo stesso Turing aveva sperimentato
queste esigenze di rapidit nellurgenza di infrangere il codice Enigma. Sotto
questo punto di vista, non ci basta pi sapere che cosa un algoritmo, e quali
problemi hanno un algoritmo che li risolva. Vogliamo invece caratterizzare la
nozione di algoritmo rapido e stabilire quali problemi hanno un procedimento
rapido di risposta e quali no. C in Informatica Teorica una proposta formu
lata da Edmonds a met degli anni sessanta, ribadita da Cook e Karp agli
inizi degli anni settanta (e in realt gi anticipata da Von Neumann, Rabin e
Cobham alcuni anni prima di Edmonds) che afferma:
Tesi di E dm onds-C ook-K arp. Un algoritmo efficiente (= rapido) se e
solo se lavora in tempo al pi polinomiale rispetto alla lunghezza dellinput.
(La lunghezza di un input il numero dei simboli che lo compongono.) Dun
que, secondo una visione ormai accettata anche nella vita comune, si bolla
come lento e inefficiente qualunque procedimento che richieda un tempo espo
nenziale rispetto alla lunghezza dellinput (maggiore o uguale di 2l se l indica,
appunto, questa lunghezza); al contrario si accetta come rapido ed effettivo
un algoritmo che impieghi un numero di passi al pi polinomiale rispetto a l
(scelta che meriter qualche commento nelle prossime righe).
22 1 Dalla C rittografa ai N um eri

Per dirla in termini pi precisi, si comincia col considerare, per ogni algorit
mo, la funzione / che ad ogni intero positivo l associa la massima durata delle
computazioni dellalgoritmo che partono da input composti da < l simboli
e giungono alloutput in un numero finito di passi. Si noti che le parole di
lunghezza < l sono soltanto una quantit finita perch lalfabeto che le ge
nera contiene solo un numero finito di simboli. Conseguentemente, anche le
computazioni dellalgoritmo che le riguardano sono solo una collezione finita,
ed ha senso cercarne la massima durata. Si vede allora facilmente che si pu
assumere che la funzione / di cui sopra sia definita, se non proprio su ogni
l, almeno per l abbastanza grande, e che sia inoltre crescente e non limita
ta (a sottolineare che input pi lunghi richiedono computazioni sempre pi
complicate). Si d poi della funzione / una stima asintotica, che non si faccia
condizionare dai suoi valori parziali ma ne studi il comportamento quando l
tende a + 00 . E utile in questo ambito la relazione O definita nel modo che
segue: per / e g funzioni come sopra, si pone

/ = O(g)
se e solo se g supera asintoticamente / a meno di un fattore costante positivo
c: per la precisione, se e solo se esistono un reale positivo c ed un naturale lo
tali che, per ogni l > l0, f(l) < c g{l).
Allora si vede facilmente che ogni funzione polinomiale l i-- lk, con k intero
positivo, soddisfa
lk = 0(2*)
dove Z1 2Z la funzione esponenziale (in base 2), ma viceversa non vale

2l = 0( l k)

per nessun k. Di pi, per k , k1 interi positivi, si ha


lk = 0{lk') se e solo se k < k' .
La Tesi di Edmonds-Cook-Karp afferma, per usare termini ufficiali, che un
algoritmo opera in tempi rapidi se e solo se la corrispondente funzione /
0{lk) per qualche intero positivo k. In particolare esclude che un algoritmo che
impiega un numero esponenziale 2l di passi rispetto alla lunghezza l dellinput
sia rapido: conclusione che pare facilmente condivisibile, come gi osservato.
Ma per altri versi, la tesi di Edmonds-Cook-Karp discutibile: ad esempio,
quanto possiamo ritenere efficiente un algoritmo che impiega un tempo lk se
lesponente k 22 ? Comunque la proposta , allo stato attuale delle cose,
prevalentemente accettata se non altro perch non se ne vedono di migliori,
dunque per pigrizia pi che per convinzione.
La classe dei problemi che hanno un algoritmo di soluzione che lavora in tempo
polinomiale viene denotata P (P per polinomiale, appunto). Si chiama invece
N P la classe dei problemi che ammettono un algoritmo rapido (e cio, anco
ra, polinomiale) di verifica delle soluzioni, nel senso che adesso spieghiamo.
1.5 Problem i del millennio 23

Ammettiamo per semplicit che il nostro problema preveda una risposta del
tipo s o no, come nel caso dei numeri primi. Allora diciamo che il problema
sta in N P esattamente quando, per ogni input w, w ha risposta s se e solo
se si pu trovare una qualche testimonianza y che sa confermarlo in tempi
rapidi ed breve da scriversi.
Ad esempio, il problema di riconoscere i numeri composti (attenzione: i com
posti, non i primi) si dimostra appartenere a N P osservando quanto segue.
Anzitutto si ricorda che un naturale N > 2 composto se e solo se ammette
un divisore d diverso da 1 e da N; a questo punto si coinvolge d come testi
mone, notando che d breve da scriversi, perch non pi lungo di N, ed
capace di ribadire rapidamente che N composto: basta dividere N per d e
vedere che il resto 0. Si noti per che il procedimento appena descritto non
serve a riconoscere altrettanto rapidamente anche i primi; infatti, per N pri
mo, nessun d ^ 1, N divide N e c bisogno di sperimentare questo fallimento
per ogni possibile testimone d prima di concludere che N , appunto, primo.
In effetti, per un problema in N P , gli input w a esito negativo no si ricono
scono solo dopo che tu tti i testimoni y intervengono a loro sfavore. Dunque
non basta ununica opportuna certificazione per dirimere il problema, occor
re invece la consultazione sistematica di ogni testimone possibile, il che pu
allungare enormemente i tempi di lavoro.
Il confronto tra le due classi P e N P dunque, come gi detto, una compa
razione tra i tempi di dimostrazione e di verifica della soluzione dei problemi
matematici o riconducibili a modelli matematici. Chiaramente

P C NP

perch ogni algoritmo (rapido) di soluzione costituisce implicitamente anche


una verifica. Ci si chiede allora se vale:
P roblem a. P = N P.
In altre parole ci si domanda se i tempi di soluzione siano o no significativa
mente pi lunghi di quelli di verifica, ovvero ancora se esistano problemi privi
di un algoritmo rapido di dimostrazione ma dotati di un algoritmo veloce di
verifica. Il problema P = N P uno tra i pi dibattuti e profondi della Mate
matica Applicata (e dellInformatica Teorica), e sembra ben lungi dal trovare
una risposta, anche se ci sono forti argomenti che sembrano avvalorare la con
gettura negativa P ^ N P. Comunque, proprio per la sua difficolt e per il suo
interesse, stato inserito nella lista dei 7 Problemi del Millennio, ovvero di
quelle che sono sembrate le sette questioni pi rilevanti per la Matematica del
duemila.
Ci sono poi vari problemi S, spesso di natura combinatoria, e ancor pi spesso
di facile presentazione, che si trovano nella seguente condizione:
a) S ammette un algoritmo rapido di verifica, e dunque sta in N P,
b) ogni problema S' in N P si pu ricondurre a S in tempo polinomiale (nel
senso che c una procedura che traduce in tempo polinomiale le istanze
24 1 Dalla C rittografa ai N um eri

s' di S' in corrispondenti istanze s di S in modo tale che s' ha risposta


positiva in S' se e solo se s la ha in S ).
Cos dimostrare che S G P implica che tutto N P in P, e dunque P = N P ;
viceversa, ovvio che, se S ^ P, allora P ^ N P. Questi problemi S sono
allora chiamati NP-completi, a sottolineare la loro caratteristica di test cam
pione circa la congettura P = N P. Chiaramente, se si prova P = N P , allora
la nozione di TVP-completezza perde di significato. Ma, siccome si congettura
proprio il contrario e cio P ^ N P , la TVP-completezza assume piena rilevan
za: concludere P ^ N P si riduce, infatti, ad escludere qualunque algoritmo
rapido di soluzione per un qualsiasi problema TVP-completo. Se P / N P ,
si dimostra poi che c spazio in N P P anche per problemi che non sono
TVP-completi: si chiamano NP-intermedi. Ne vedremo tra poco un possibile
esempio assai significativo.
Tornando alla crittografa, la disparit di tempo tra gli algoritmi di verifica
e quelli di soluzione di un problema TVP-completo o TVP-intermedio pu for
nire, in linea di principio, ottimi spunti per la costruzione di funzioni F a
senso unico: si tratta di legare in modo opportuno la computazione di F (e
dunque la codifica del criptosistema) alla procedura (rapida) di verifica, e la
computazione dellinversa di F (quindi la decodifica) alla difficolt di ottene
re algoritmi veloci di soluzione. Nel Capitolo 6, presenteremo in dettaglio un
esempio famoso (e sfortunato) di criptosistema a chiave pubblica basato su
questi argomenti: si tratta del Criptosistema di Merkle-Hellman, che si fonda
su un classico problema TVP-completo, noto come Problema dello Zaino.
Il collegamento tra il problema P = N P e lesistenza di funzioni a senso unico
ha comunque un fondamento teorico ben stabilito. Si prova infatti che ci sono
funzioni a senso unico se e solo se P eguaglia unopportuna sottoclasse UP di
N P , definita - pi o meno - come segue.
Un problema S in UP se e solo se c un algoritmo di verifica delle sue
soluzioni che richiede esattamente un testimone per ogni istanza positiva.
Cos si ha P C UP C N P , ma non chiaro se P = UP n se luguaglianza
P UP implica P = N P. La condizione di unicit che UP richiede va
sostanzialmente a tradurre la propriet di invertibilit che una funzione a
senso unico F possiede, il fatto cio che ogni sua immagine proviene da un
unico elemento del dominio.

1.6 T eoria dei N u m eri e C rittografa


C per unaltra copiosa fonte di ispirazione per le funzioni a senso unico; per
stupefacente che possa sembrare, essa la Teoria dei Numeri naturali, quegli
apparentemente innocui numeri 0, 1, 2, ... con cui siamo abituati a contare
fin da bambini. Infatti, a dispetto della loro presunta semplicit, i naturali
racchiudono alcuni dei misteri pi profondi ed affascinanti della Matematica,
e gli enigmi che ne derivano si rilevano una buona fonte per la crittografia mo
derna. Anche il criptosistema oggi pi comune, quello chiamato RSA, nasce
1.6 Teoria dei N um eri e C rittografa 25

in questo ambito. Infatti R SA si basa sostanzialmente sulla differenza che at


tualmente si rileva tra i tempi di soluzione di due famosi problemi sui naturali,
gi ricordati nel precedente paragrafo:
a) riconoscere i numeri primi,
b) decomporre un numero composto nei suoi fattori primi.
Infatti di a) si sa che appartiene a P ed invece di b) si congettura che sia NP-
intermedio: comunque sta in N P e non nota alcuna procedura classica che lo
sappia risolvere in tempo rapido. Comunque, prima di introdurre R SA ed altri
analoghi protocolli crittografici, varr la pena di prendere maggiore confidenza
con primi e composti. Questo sar largomento del prossimo capitolo.

E s e r c iz i 1 .6 .1

1. Si faccia riferimento allalfabeto inglese e alla tabella 1 .1 di traduzione


di lettere in numeri interi, e si assuma che lo spazio vuoto corrisponda
al 27. Si cifri il messaggio appuntamento alle otto tramite la funzione
/ che ad ogni numero intero x (quindi ad ogni lettera) associa lintero
4x + 3 (mod 27).
2 . Si decifri il messaggio 7 2 18 31 9 sapendo che stato criptato,
numero per numero, usando la funzione f(x) = lOx + 5 (mod 33).
3. Si cifri il messaggio composto dai quattro digrafi
(12,28) (21,3) (6,14) (30,26)
attraverso la funzione di codifica

Si trovi poi la funzione di decodifica / ' di /. La si applichi al messaggio


cifrato e si verifichi che tramite essa si riottengono i digrafi originali.
4. Blaise de Vigenre scrive alla sua amica inglese per darle appuntamento
Ci vediamo a mezzanotte al castello. Per non insospettire il marito
dellamica, Vigenre cripta il messaggio col suo cifrario, usando la parola
chiave Blaise: quale il messaggio cifrato? (Ammettiamo che Vigenre
adoperi lalfabeto della lingua inglese, con un ulteriore simbolo per lo
spazio vuoto).
5. James Bond ha scoperto che il segreto di Goldfnger 1001101010111, e
vuole informare Londra. Per sicurezza, usa il cifrario di Vernam. ma Gol
dfnger intercetta il messaggio cifrato, e legge 0 1 0 1 0 1 0 1 1 0 1 1 0 : che parola
chiave ha usato 007?
26 1 Dalla C rittografa ai N um eri

R if e r im e n t i b ib lio g r a f ic i

[68 ] propone una storia della crittografa accattivante e facilmente accessibile,


[27] la espone in modo pi rigoroso; ad esempio vi si possono trovare mag
giori dettagli sul cifrario di Vernam. Anche la Teoria di Shannon esposta
sinteticamente in [27]. Molti ottimi testi introducono la teoria della computa
bilit e della complessit computazionale, discutendo in dettaglio il problema
P = N P : citiamo [13], [30], [43], [51], [69]. Si veda anche [71]. Una presen
tazione dei problemi del millennio e dunque in particolare di P N P in
[20 ].
2

Prim i e C om posti

2.1 D iv iso ri, r esti e q u o zien ti

Come gi anticipato, consideriamo in questo capitolo linsieme N dei naturali


0, 1, 2, ... , talora eventualmente allargato allinsieme Z di tutti gli interi
0 , 1 , 2 , . . . . Assumiamo una minima dimestichezza con questi insiemi nu
merici e con le usuali operazioni + , e relazioni < che li riguardano, quale si
pu dedurre dai testi menzionati nei riferimenti bibliografici a fine capitolo. In
particolare, supponiamo noti il principio di induzione, il principio di induzione
completa e il principio del minimo. Trattiamo comunque in dettaglio alcuni
argomenti specifici che ci riguarderanno nel seguito del libro. Ci interessano
in particolare loperazione di divisione, non sempre possibile n tra i naturali
n tra gli interi, e la conseguente relazione binaria di divisibilit per a, b
naturali, si dice che b divide a, o anche che a divisibile per b (o multiplo di
), e si scrive b \ a quando esiste qualche naturale q per cui a = b q. Ana
loga definizione si d per gli interi. Si verifica facilmente che ogni naturale
divisibile per 1 e per se stesso e divide 0 (esercizio). Viceversa, runico natu
rale divisibile per 0 lo stesso 0. La relazione di divisibilit una relazione
di ordine parziale e non totale tra i naturali; tra gli interi, invece, anche la
propriet antisimmetrica va persa (ad esempio 2 | 2 e 2 | 2 , ma 2 ^ 2 ).
Il controllo di queste propriet un esercizio relativamente semplice.
Come detto, anche escludendo il caso eccezionale = 0 , la divisibilit non
sempre assicurata per coppie di naturali (ad esempio 2 divide 4, ma non 3),
ed il miglior risultato che possiamo citare a questo riguardo quello ben noto
che segue.
Teorem a 2 . 1 . 1 (del quoziente e del resto) Siano a e b naturali, b ^ 0.
Allora esistono due naturali q e r unici tali che a = b q + r e r < b.
Con le opportune modifiche il teorema si estende anche agli interi (dove oc
corre chiedere 0 < r < || invece che r < b); q si dice il quoziente, e r il resto
della divisione di a per b. Si ha che b divide a esattamente quando il resto r
28 2 Prim i e Com posti

della loro divisione 0 .


Ricordiamo adesso la definizione di massimo comune divisore e minimo
comune multiplo (tra i naturali).
D e f in iz io n e 2 .1 .2 Siano a e b due naturali non entrambi nulli. Un naturale
d si dice massimo comune divisore di a e b se:
(i) d divide tanto a quanto b,
(ii) ogni altro divisore comune di a e b < d.
Si noti che esiste almeno un divisore comune di a e , ed 1 . Inoltre, per a / 0,
i divisori di a devono essere tutti < a, ed altrettanto vale per b quando b ^ 0 .
Ne segue che, se almeno uno dei due elementi a, b diverso da 0, Pinsieme dei
loro divisori comuni , oltre che non vuoto, anche finito, e quindi ha massimo.
In conclusione, il massimo comune divisore di a e b esiste, ed ovviamente
unico. Possiamo allora denotarlo con uno specifico simbolo, ad esempio (a, b).
Ci chiediamo adesso come calcolarlo nella pratica: la definizione non pare
infatti utile in questa prospettiva. In certi casi, la computazione del massimo
comune divisore comunque facile e diretta.
Se b \ a (in particolare se a = 0), il massimo comune divisore
E s e m p io 2 .1 .3
di a e b non pu che essere b (che il massimo tra i suoi divisori, e dunque
anche tra quelli comuni con a). Allo stesso modo si procede se a \ b.
In tutti gli altri casi, dunque anche per a, b ^ 0, la seguente osservazione pu
risultare utile.
O s s e r v a z io n e 2 .1 .4 Siano a e b due naturali, a, b ^ 0, a > b. Dividiamo a
per b ottenendo quoziente qo e resto ro:

a = b q0 + r0, r 0 < b.

Allora (a, b) = (, ro).


Infatti i divisori comuni di a e b dividono anche ro = a bqo e, viceversa, i
divisori comuni di b e ro dividono anche a = bqo + ro- Cos il massimo tra i
primi coincide con il massimo tra i secondi.
Lutilit della precedente osservazione nella ricerca del massimo comune di
visore tra a e b facilmente comprensibile: siccome ro < b < a, dovrebbe
risultare pi semplice, almeno in linea di principio, computare (, ro) invece
che (a, b).
In effetti un algoritmo rapido di calcolo del massimo comune divisore pu
essere organizzato su questo fondamento, nel modo che segue.
A lg o r i t m o e u c lid e o d e lle d iv is io n i s u c c e s s i v e . Supponiamo che a e b
siano, come detto, due naturali non nulli e che a > b. Dividiamo a per b
ottenendo
a = bq0 + r0, r 0 < b.
2.1 Divisori, resti e quozienti 29

Se ro = 0, allora b divide a e il massimo comune divisore cercato , appunto,


b. Altrimenti possiamo dividere b per ro e calcolare i relativi quoziente e resto

b = r0qi + ri, ry < r0.

Di nuovo, se T\ 0, allora possiamo dedurre ro | b e ro = (6 , ro). Ma (a, b) =


(6 , ro), dunque (a, 6) = ro- Altrimenti proseguiamo dividendo stavolta ro
per n . Il procedimento ha comunque termine dopo un numero finito s di
passi: infatti il principio del minimo esclude resistenza di una successione
strettamente decrescente infinita di naturali

b > r 0 > ri > r 2 > ... .

Al passo s, si avr dunque

r8- 2 = rs -iq 8, rs = 0
e, conseguentemente,

(a, b) = (b, ro) = (r0, ry) = ... = (rs_2, r s_i) = r s_i.

In altre parole, lultimo resto non nullo determinato dal procedimento anche
il massimo comune divisore di a e b.

Il metodo appena descritto si chiama algoritmo euclideo perch era gi noto


agli antichi Greci e, in particolare, ad Euclide. A dispetto della sua et, usato
ancor oggi per la sua semplicit e per la sua ragionevole rapidit (secondo i
criteri della tesi di Edmonds-Cook-Karp riferita nel primo capitolo). Natural
mente, per apprezzare pienamente questo suo ultimo merito, dobbiamo prima
chiarire in che forma intendiamo scrivere i numeri naturali e conseguentemen
te valutare la loro lunghezza come possibili input; dobbiamo poi precisare in
che modo conveniamo di misurare i tempi delle computazioni che li riguar
dano. Di tutto questo parleremo brevemente nel prossimo paragrafo. Per il
momento ci limitiamo a dire che lalgoritmo delle divisioni successive lavora
in un tempo al pi quadratico (e cio limitato da un polinomio di grado 2 )
rispetto alla lunghezza degli input e quindi ragionevolmente rapido rispetto
ai moderni parametri di efficienza.
Esercizio 2.1.5 Si determini attraverso lalgoritmo euclideo delle divisioni
successive il massimo comun divisore di
343 e 1421;
1650 e 8712.
Tornando al massimo comune divisore, sar opportuno ricordare:
Teorem a 2.1.6 (Id en tit di B zout) Siano a eb due naturali non entram
bi nulli. Allora ci sono due interi x e y tali che (a, b) = ax + by.
30 2 Prim i e Com posti

da notare che uno tra x e y pu anche essere negativo. Va poi sottolineato


che valori opportuni di x e y si possono trovare esplicitamente e velocemente
usando ancora Palgoritmo delle divisioni successive, ed anzi impiegando tempo
al pi quadratico rispetto alla lunghezza di a e b. Infatti, se a = 0, allora
(a, 6) = b = a 0 + b 1, cio possiamo scegliere x = 0 e y = 1. Il caso b = 0
si tratta in ruolo analogo. Se poi a, / 0, allora possiamo fare riferimento,
appunto, alPalgoritmo euclideo e al numero s dei suoi passi. Lavoriamo infatti
per induzione su s.
Se s = 0, si ha di nuovo (a, b) = b = a 0 + b 1 .
Sia allora s > 0. Per induzione, esistono due interi x' e y' tali che il massimo
comune divisore (, ro) (che richiede alPalgoritmo euclideo s 1 passi) si
esprime come -x' + ro -y1; inoltre x' e y' possono essere trovati esplicitamente.
Ma sappiamo che (, ro) coincide proprio con (a, b); sfruttando allora ro =
a bqo, si deduce

(a, b) = bx + (a - bq0)y1 = ay1+ b(x' - q0yr),

dunque in particolare x = y' e y = x' qoy' .


E facile poi controllare che il calcolo di x e y a partire da a e b richiede sostan
zialmente gli stessi tempi dellalgoritmo euclideo e quindi al pi quadratico
rispetto alla lunghezza di a e b.
Lidentit di Bzout ha varie interessanti conseguenze. Ad esempio implica:
C o r o lla r io 2 .1 .7 Siano a, b, c naturali non nulli tali che a \ bc. Se (a, b) = 1,
allora a \ c.
Invece non vero in generale che, se a \ bc, allora a \ b oppure a \ c. Ad
esempio, 4 | 2 *6 = 12, ma 4 non divide n 2 n 6 .
D im o s t r a z i o n e . Sia q un naturale tale che aq = bc. Ricordiamo 1 = (a, b) =
ax + by per opportuni interi x e y. Cos

c = c 1 = c (ax + by) = cax + cby = cax + qay = a (ex + by)

dove ex + by ovviamente naturale. Segue a | c.


A proposito, ricordiamo che due naturali non nulli a e b che hanno massimo
comune divisore 1 si dicono primi tra loro.
Parliamo adesso del minimo comune multiplo di due naturali.
Siano a, b due naturali non nulli. Un naturale m si dice
D e f in iz io n e 2 .1 .8
minimo comune multiplo d i a e b s e m ^ O e
(i) m multiplo tanto di a quanto di b,
(ii) ogni altro multiplo comune n ^ 0 di a e b > m .
Il motivo per cui 0 stavolta brutalmente escluso dalla trattazione facile
da capire: in effetti 0 , ovviamente, il minimo multiplo di ogni naturale e co
munque lunico multiplo di se stesso. Supponiamo dunque a e b diversi da 0:
2.2 U na parentesi com putazionale 31

c almeno un multiplo comune a b di a e b e, di conseguenza, per il principio


del minimo, c un minimo comune multiplo 0 ) di a e , ovviamente unico.
Possiamo convenire di rappresentarlo [a, 6]. Quanto a calcolarlo esplicitamen
te, il successivo paragrafo 2.3 ci mostrer che, per ogni scelta di a e b non
nulli,
a b = (a, 6) [a, 6],
il che riduce la computazione di [a, 6] a quella gi considerata di (a, b): lu
so dellalgoritmo euclideo, seguito da una moltiplicazione e una divisione
determina
a b
[a, b] =
(a, b) '

2.2 U n a p a ren tesi c o m p u ta z io n a le

Come anticipato poche righe fa dedichiamo questo paragrafo a descrivere


a) come si rappresentano i numeri naturali e quindi come si misura la loro
lunghezza,
b) come si valutano i tempi delle computazioni sui numeri naturali.
Potremo cos apprezzare pienamente lefficienza degli algoritmi sui naturali,
come quello, gi trattato, per la ricerca del massimo comune divisore, con
frontando, appunto, tempi di computazione e lunghezza dei numeri coinvolti
come input. Cominciamo proprio parlando della lunghezza.
Sappiamo tutti che un numero naturale viene comunemente scritto in base 10,
elencando a partire da destra la cifra delle unit, quella delle decine, quella
delle centinaia, quella delle migliaia, e cosi via. Un numero tra 1 e 10 (escluso)
richiede una sola cifra, uno tra 10 e 100 = IO2 (escluso) necessita di due cifre,
uno tra 100 e 1000 = IO3 (escluso) di 3, e via di seguito. Dunque la lunghezza
di un numero intero positivo N fa diretto riferimento al suo logaritmo in base
10 o meglio alla sua parte intera, che infatti vale

0 per numeri fino a 10 escluso,


1 per numeri da 10 fino a IO2 escluso,
2 per numeri da IO2 a IO3 escluso
e cos via. Il valore preciso della lunghezza di N in base 10 , infatti

[logio VJ + 1

(dove L- -J denota la parte intera).


Naturalmente, il riferimento alla base 10 non lunico possibile, ed ammesso
ricorrere ad altre basi, per esempio 2 , e rappresentare cos i naturali solo con
le cifre 0 e 1 , di modo che

0,1,2,3,4,5,6,7,8,9,10,11,12,...
32 2 Prim i e Com posti

diventano rispettivamente

0, 1, 10, 11, 100, 101, 110, 111, 1000, 1001, 1010, 1011, 1100, . . . .

La lunghezza aumenta, ma la regola che la calcola rimane la stessa: infatti la


lunghezza di un naturale N in base 2 eguaglia

[log2 -/VJ + 1

e dunque ancora collegata a log2 N. Ricordiamo poi la relazione che


intercorre tra i logaritmi di N in base 10 e 2:

logio N logio 2 log2 N.

Quindi anche le lunghezze pur diverse di N nelle basi 10, 2 crescono quasi
proporzionalmente mediante la costante logio 2 .
Analoghe considerazioni si possono ripetere a proposito di altre basi 3, 4, 5, e
cosi via.
Notiamo anche che N = 10 /o^lo7V _ 2 l9 2 N ^ esponenziale rispetto alla sua lun
ghezza. Di conseguenza un algoritmo che richiede costo N (o approssimabile
a A) su A da ritenersi poco efficiente: constatazione che sar bene ricordare
in futuro.
In genere, la base cui si fa pi facilmente riferimento 2. Le cifre 0, 1 che
vi ricorrono si chiamano bit. Ad esempio 10 0 1 (cio il numero in base 2 che
corrisponde a 9 in base 10) si compone di 4 bit.
Abbiamo cos trattato il tema della lunghezza degli input. Adesso dobbiamo
considerare il tempo di lavoro di una computazione sui naturali. Possiamo
facilmente convenire di identificarlo col numero complessivo di passi da essa
svolto prima di concludersi. Ma dobbiamo anche chiarire che cosa intendiamo
per passo di computazione nel nostro ambito, quando si trattano naturali N
in notazione binaria e si svolgono le varie operazioni di somma, prodotto e
cosi via. In genere si conviene che ogni singola operazione sui bit degli input
N coinvolti corrisponde ad un passo di computazione. Per esempio si assume
che laddizione

1001 +
11 11 0 =

100111

(ovvero 9+30=39 in base 10) richiede 5 passi per svolgere i calcoli sulle varie
colonne. In questa ottica, si pu notare che sommare due numeri di k bits
richiede al pi k passi, ed dunque al pi lineare nella lunghezza k , mentre la
moltiplicazione degli stessi numeri si pu svolgere in k 2 passi e quindi richiede
2.3 II Teorem a Fondam entale dellA ritm etica 33

tempo al pi quadratico in k. Lo stesso vale per il calcolo del quoziente e del


resto, e cio per la divisione.
Illustriamo allora la situazione riferendoci come esempio al calcolo del mas
simo comun divisore tramite Falgoritmo di Euclide delle divisioni successive.
Vogliamo mostrare che secondo i parametri appena introdotti, questo pro
cedimento richiede tempo al pi polinomiale (anzi quadratico) rispetto alla
lunghezza delhinput, come gi anticipato nel paragrafo precedente.
E s e m p io 2 .2 .1 Consideriamo dunque due naturali a, b. Possiamo suppor
re a > b > 0 per semplicit. I due primi passi delFalgoritmo di Euclide
corrispondono alle divisioni

a = b q0 + r 0 con r 0 < b, q0 > 1 ,

b = r 0 qi + ri con ri < r0, qi > 1 .


Ne deduciamo

a = (r0 qi + n)qo + r0 = r0(qi qo + 1 ) + n q0 > r0 + ri > 2 n .


Cos due successive applicazioni delFalgoritmo determinano un resto ri < \a.
Non difficile osservare che, allo stesso modo, ri > 2 r 3 , dunque a > 2rq >
2 2r3; in generale, dopo iterazioni si deduce

a > 2f r 2t- i
(dove r 2t- i il resto ottenuto al passo 2t 1).
Sia s il passo finale delFalgoritmo, quello che produce rs = 0 e dunque dichiara
r s- 1 = (a, 6). Supponiamo per semplicit che s sia pari, dunque s = 2 T per
T numero naturale, e deduciamo

a > 2Tr 2T -i-

Siccome r 2 T -i rs- i > 0, ^ > 1 , cio a > 2T e T < logici, da cui


s < 2log2a. Dunque le varie divisioni successive da svolgere sono 0(log2d).
Inoltre i calcoli sui bit dei vari numeri coinvolti in ciascuna divisione si svol
gono certamente in tempo 0(logl a) perch riguardano interi al pi lunghi
quanto a, e anzi possono ridursi a 0 (log2 a) con qualche opportuno accorgi
mento. In conclusione il numero di passi delFalgoritmo euclideo 0(/og| a),
quindi al pi polinomiale (e anzi quadratico) nella lunghezza dellinput a, e
conseguentemente anche in quella di , visto che b < a.

2.3 II T eorem a F on d am en tale d e llA r itm e tic a

Ricordiamo che un numero naturale N si dice primo se N > 2 e gli unici


divisori di N sono 1 e iV (quelli che N non pu evitare). Dunque la sequenza
dei numeri primi
34 2 Prim i e Com posti

2, 3, 5, 7, 11, 13, 17, 19, 23, 29, ... .

Pu essere utile notare che 2 Punico primo pari, anche se Posservazione non
sorprendente, visto che pari significa divisibile per 2 ed ovvio che qua
lunque multiplo di 2 maggiore di 2 ammette un divisore diverso da 1 e da se
stesso (2 , appunto) e quindi non pu essere primo; allo stesso modo si potreb
be sottolineare che 3 Punico primo multiplo di 3, 5 Punico primo multiplo
di 5, e cos via. Comunque sar bene ricordare che tutti i primi, eccettuato
2 , sono dispari e dunque, in certo qual modo, 2 ha una sua specificit tra i
primi: per citare un gioco di parole di Zassenhaus, 2 is the oddest prime, e
cio 2 il pi dispari dei primi (anche se riesce difficile cogliere in italiano
la sfumatura che si ha in inglese nellaggettivo odd, che pu significare tanto
dispari quanto eccentrico, bizzarro).
Chiamiamo poi un naturale N > 2 composto quando N non primo, e cio
quando esistono due naturali a e b minori di N (e quindi maggiori di 1) tali
che N = a b.
Il motivo dellaggettivo composto ovvio: del resto qualunque numero natu
rale > 1 (anche non primo) si decompone in modo sostanzialmente unico nel
prodotto di fattori primi. Il risultato tanto importante quanto famoso, e ha
un nome altisonante:
Teorem a 2.3.1 (Teorem a Fondam entale dellA ritm etica) Qualunque
naturale N > 1 si decompone in uno e un solo modo (a meno dell'ordine dei
fattori) come prodotto di numeri primi.
Prima di iniziarne la dimostrazione, sar bene premettere una considerazione
che si collega a quanto osservato nel paragrafo 1 , quando si sottolineato che,
se un naturale N divisore di un prodotto a , non detto che sia divisore di
uno dei fattori a e b. Questa conclusione comunque vera quando N primo,
come adesso proviamo.
Lem m a 2.3.2 Siano p un primo, a e b due naturali tali che p \ a b. Allora
p | a oppure p \ b.
D im ostrazione, (a, p) un divisore di p e dunque vale l o p perch p primo.
Nel secondo caso, p divide a. Altrimenti possiamo applicare il Corollario 2.1.7
sopra citato e dedurre che p divide b.
Passiamo adesso alla dimostrazione del Teorema Fondamentale dellAritmeti
ca.
Esistenza della decom posizione. Procediamo per induzione completa su
N > 2. Se N primo, in particolare se N = 2, la tesi ovvia. Supponiamo
allora N composto (in particolare N > 2). Allora N = a b per opportuni
fattori a e b entrambi minori di N e > 2. Per lipotesi di induzione, tanto
a quanto b si scrivono come prodotto di numeri primi. Ma allora altrettanto
vale per A.
2.3 II Teorem a Fondam entale dellA ritm etica 35

U nicit della decom posizione. da provare che, se A = po ... pn


Qo ' qm per n e m naturali, p0, ..., pn, g0, ..., qm primi, allora n m
e, salvo permutare gli indici, pi = qi per ogni i < n. Procediamo nuovamente
per induzione completa su N. Se N primo, la tesi immediata: deve essere
n = m = 0, po = qo N. Adesso assumiamo N composto. Notiamo che po
divide N = qo ... qm. Per il Lemma 2.3.2, deve esistere un qualche j < m
tale che po \ qy salvo riordinare gli indici, possiamo supporre j = 0 , cio
Po | qo- Anzi, siccome qo primo e po > 1, deve essere p0 = qo- Consideriamo
adesso
N
=Pl -Pn = qi- - Qm-
PO

Siccome N composto, ^ > 2 ; inoltre ^ < N. Possiamo allora applicare


lipotesi di induzione e dedurre n = m e, salvo un riordinamento degli indici,
Pi = 01, ..., Pn = qn -

Vale la pena di sottolineare che il Teorema Fondamentale dellAritmetica ed in


particolare lunicit della decomposizione in fattori non ulteriormente riduci
bili (validi in N e, salvo opportuni aggiustamenti, anche in Z) non si preservano
in strutture apparentemente vicine sia ai naturali che agli interi. Questo riba
disce che il teorema propriet sostanziale e non banale dei naturali e degli
interi. Eccone infatti due controesempi.
Esem pi 2.3.3
1. (Hilbert) Consideriamo linsieme 4N + 1 dei naturali della forma 4n + 1
con n e N
1, 5, 9, 13, 17, 21, 25, 29, 33, ... .
Esso chiuso rispetto alla moltiplicazione: per n e m naturali,

(4n + 1) (4m + 1) = 4(4mn + m + n) + 1.

Tuttavia facile controllare che, nel nostro insieme, 693 = 4-173 + 1 ha


due possibili decomposizioni in fattori irriducibili

693 = 9 77 = 21 33.

2. Consideriamo adesso i numeri reali della forma do + aiy^l con ci e


ai interi. E facile controllare che essi formano un sottoanello del campo
reale, usualmente denotato Z[y/l5\. In questo anello 10 ha due possibili
decomposizioni

io = 2 5 = (5 + Vlb) (5 - Vlb)

in fattori irriducibili 2 , 5, 5 \Zl5.


36 2 Prim i e Com posti

Ritorniamo ai naturali. Il Teorema Fondamentale delPAritmetica ci dice che


ogni naturale N > 2 si scrive in modo unico come

N = p ok- ... - p t
con po < ... < pn primi e &o, . .., kn interi positivi. Notiamo che, per d
divisore di N,
d 1 oppure d ha fattori primi t r a p0, ..., pn con esponente < fco, , kn
e, per m multiplo di N,
m 0 oppure m ha t r a i suoi fattori primi po, ..., pn con esponente
^ k0>> kn.
Siano ora a e b due naturali non nulli; scriviamo

a=Po -Pkn , b = pko ... - p H

con po < ... < pn primi e ko, . .., kn, ho, . .., hn naturali (eventualmente
nulli, per consentire una notazione uniforme nella rappresentazione di a e b
ed includere anche i casi a 1 oppure b = 1). Dalle precedenti osservazioni
segue che, per d divisore comune di a o ,
d 1 oppure d ha fattori primi t r a p0, ..., pn con esponente rispettiva
mente < ko, ho, ..., < kn, hn
e, per m multiplo comune di a e ,
m 0 oppure m ha t r a i suoi fattori primi p0, ..., pn con esponenti
rispettivamente > ko, ho, ..., > kn, hn.
Se ne deduce facilmente la seguente serie di conseguenze.
C o r o lla r io 2 .3 .4 Nella notazione precedente,
(a , _ . pmin{kn,hn}

[a, b] = p axikOho} . _ _ _pmax{kn,hn}'

In particolare (a, b) [a, 6] = a b, e dunque il minimo comune multiplo [a, 6]


eguaglia il prodotto a b se e solo se (a, 6) = 1 , cio se e solo se a e b sono
primi tra loro.
In questo modo si ottiene un nuovo metodo di calcolo di massimo comune
divisore e minimo comune multiplo, alternativo alhalgoritmo euclideo delle
divisioni successive. Valuteremo pi tardi se questo secondo approccio sia
preferibile allaltro, perch pi rapido ed efficiente. Vale comunque la pena di
sottolineare fin dora come esso faccia riferimento alla decomposizione di a e
b in fattori primi e dunque sia condannato a rispettarne i tempi di lavoro.
2.4 II Teorem a dei Num eri Prim i 37

2.4 II T eorem a dei N u m eri P r im i

Il Teorema Fondamentale delPAritmetica ci dice che i numeri primi sono,


in un qualche senso, i fondamenti della struttura moltiplicativa dei naturali.
Cerchiamo allora di comprendere meglio la loro distribuzione alPinterno di N.
Intanto dobbiamo prendere atto che:
Teorem a 2.4.1 Ci sono infiniti numeri primi.
La cosa era gi nota agli antichi Greci e in particolare a Euclide, che ne dava
la seguente dimostrazione.
D im ostrazione di Euclide. Siano 2 = po < pi < ... < pr numeri primi
distinti. Mostriamo come costruire un nuovo primo p, diverso da po, , Pr-
A questo proposito, consideriamo

N = po ... pr + 1;

si tratta di un naturale certamente > 2 e, come tale, ammette almeno un


divisore primo p. Ma p non pu essere n po, ..., n pr , altrimenti divide il
prodotto po ... pr e dunque anche la differenza N p 0 ... pr , cio 1 (il
che assurdo).
In realt vi sono molte possibili dimostrazioni delPinfinit dei primi: ad esem
pio il libro di P. Ribenboim The new book of prime number records ne raccoglie
una decina, e ne cita anche altre. Noi ci limitiamo a presentare una seconda
prova del teorema, dovuta ad Eulero e dunque successiva ad Euclide di molti
secoli: gli strumenti tecnici che vi sono coinvolti sono certamente meno sem
plici di quelli di Euclide, ma mostrano come metodi di Analisi Matematica
possano intervenire fruttuosamente nella ricerca sui primi.
D im ostrazione di Eulero. Ricordiamo che ogni primo p maggiore di 1 e
dunque soddisfa 0 < ^ < 1. Dunque la serie geometrica J2kLo converge
alla somma jzn - Se q un altro primo, si deduce allo stesso modo
p

Notiamo che le due serie appena considerate sono a termini positivi, dunque
il loro prodotto secondo Cauchy definito ed ha somma

Si noti poi che il prodotto al primo membro la somma ^ dove m varia


tra i naturali non nulli che hanno fattori primi tra p e q. Siano ora per assurdo
Po < ... < pr tutti i primi. Si avr
38 2 Prim i e Com posti
OO
IIEs
j<rk = 0
n
dove il prodotto al primo membro eguaglia ^ quando m varia tra i natu
rali non nulli con fattori primi tra p0, , P r e dunque, in definitiva, tra tutti
i naturali non nulli. Ma la serie Y^m>o diverge, e dunque non pu avere una
somma finita Y[j<r . Si cade cos in contraddizione per avere assunto che
pj
ci sia soltanto un numero finito di primi. Segue allora che i primi sono una
infinit.
La (infinita) successione dei primi non comunque regolare e prevedibile,
presenta invece alcune singolari anomalie. Ad esempio si osserva facilmente
che i primi tra 11 e 20 sono 4 - e cio 11, 13, 17 e 19 daltra parte 4 il
massimo numero di primi che possiamo attenderci tra dieci numeri consecutivi
tutti > 2 , poich tra dieci numeri consecutivi ce ne sono 5 pari - come 1 2 ,
14, 16, 18, 20 tra 11 e 20 - ed uno dispari ma multiplo di 5 - come 15 nel
nostro caso -, e tutti questi valori sono ovviamente composti. Cos i primi si
addensano tra 11 e 20. Ma non altrettanto avviene, ad esempio, tra 10 milioni
e 10 milioni e 10 0 , quando tra cento numeri consecutivi se ne incontrano
soltanto due che sono primi, e cio

10.000.019, 10.000.079.

In generale, anzi, si ha:


Teorem a 2.4.2 Sia k un qualunque intero > 1. Allora ci sono k numeri
naturali consecutivi nessuno dei quali primo.
D im ostrazione. Consideriamo (k + 1) ! = 1 2 3 ... k (k + 1) e la sequenza
di naturali
ai = (k + 1 )! + 2 maggiore di 2 e divisibile per 2 ,
a2 = {k + 1)! + 3 maggiore di 3 e divisibile per 3,
fino a
ak = (k + 1 )! + (k + 1 ) maggiore di k + 1 e divisibile per k + 1 .
Si ottengono in questo modo k numeri consecutivi, nessuno dei quali primo.

Quindi possono esistere nella successione dei primi due elementi consecutivi
a distanza arbitrariamente grande. Viceversa si noti che la minima differenza
di due primi consecutivi e dispari 2 : due primi con questa propriet, dunque
della forma p e p + 2 rispettivamente, si dicono gemelli. Esempi di coppie di
primi gemelli sono
3, 5,
2.4 II Teorem a dei Num eri Prim i 39

11, 13.
Non noto quante siano le possibili coppie di primi gemelli. Per quanto oggi
se ne sa, potrebbero anche essere infinite; in tal caso, nella successione dei
primi, alle lacune arbitrariamente grandi assicurate dal teorema precedente si
potrebbero alternare coppie di primi gemelli e dunque vicini il pi possibile.
A questo proposito si pu anche segnalare un teorema di Chebyshev del 1850
che risolse una congettura avanzata cinque anni prima da Bertrand provando:
Teorem a 2.4.3 Per ogni intero x > 1, c sempre almeno un primo p tra x
e 2x.
In definitiva, si conferma per questa via quanto anticipato sulla irregolarit e
imprevedibilit della sequenza dei primi e si ribadisce il problema di capire in
che modo essi si distribuiscono in N. La questione interseca i metodi di Analisi
gi presenti nella dimostrazione di Eulero della infinit dei primi. In effetti,
una misura della distribuzione dei primi pu essere fornita dalla funzione ir
che ad ogni reale positivo x associa
7t(x ) = numero dei primi < x.
Dunque 7t(2 ) = 1, 7t(3 ) = 2, 7t(6 ) = 3 e cos via. Gauss congettur nel 1792,
a soli 15 anni, che it(x ) coincide asintoticamente con laltra funzione x i--
jc per x che tende a +oo, azzardando in questo modo almeno una stima
approssimata della distribuzione dei primi (log denota qui il logaritmo nella
base e).
Ma la Congettura di Gauss non si rivel semplice da dimostrare. Ad esempio,
ci volle qualche tempo prima che Chebyshev riuscisse a provarne una versione
pi debole, e precisamente che il grafico di it(x ) pu essere racchiuso per x > 1
da quelli di due opportuni multipli di In dettaglio, sappiamo oggi che,
per ogni x > 3,
x
2 log x
Per progressi pi sostanziali bisogn attendere Riemann, e il suo uso dellanali
si complessa in questioni di teoria dei numeri. Riemann introdusse la funzione
di variabile complessa

n= 1
definita quando s E C e la parte reale Re(s) di s > 1; chiamata, appunto,
la zeta di Riemann. Si noti che, per Re(s) > 1,

cw=n rrxp ps

al variare di p tra i primi, il che ricorda la prova di Eulero della infinit dei
primi. In effetti, lidea di Riemann era che informazioni sui primi potessero
40 2 Prim i e Com posti

essere ottenute dallo studio delle propriet analitiche di ( e di analoghe funzio


ni. Ad esempio, non difficile osservare, avendo un minimo di dimestichezza
con Panalisi, che Pargomento di Eulero deriva resistenza di infiniti primi dalla
propriet lim s^ i ((s) = oo. Daltra parte, lanalisi complessa ci assicura che
( una funzione olomorfa su tutto il semipiano Re(s) > 1 e si pu estendere
opportunamente ad una funzione analitica sul semipiano Re(s) > 0 e addi
rittura sullintero piano complesso C. Riemann, in una sua famosa ricerca,
stabil il legame tra la funzione 7r e le radici in C del prolungamento analitico
di . Infatti, si pu provare che questo prolungamento si annulla anzitutto
nei punti 2, 4, ... della retta reale: questi zeri sono detti banali. Riemann
congettur:
Ipotesi di R iem ann. Gli zeri non banali di si trovano tutti sulla retta
Re(s) \ e sono infiniti.
Linfinit degli zeri di ( sulla retta Re(s) = \ fu provata da Hardy; ma la
prima parte dellipotesi di Riemann ancora un problema aperto. Una sua
soluzione positiva implicherebbe, relativamente alla funzione 7r,
rx dt
n(x ) = / -, - + O(Vxlogx).
J 2 lg t
Comunque, nel 1896, Hadamard e, indipendentemente, De La Valle-Poussin
provarono la congettura di Gauss (pi di un secolo dopo che Gauss laveva
proposta). Il loro risultato comunemente conosciuto con il nome di Teorema
dei Numeri Primi.
Teorem a 2.4.4 (Teorem a dei N um eri P rim i) Si ha
7t ( x )
lim x = 1.
x>-+oo log x

La dimostrazione si basa su ulteriori sviluppi dellanalisi complessa, in parti


colare sulla prova che ((s) ^ 0 per Re(s) = 1. Il Teorema dei Numeri Primi d
una luce parziale sul problema della distribuzione dei primi, ma solo attraverso
una stima asintotica. Molti misteri che accompagnano leffettiva distribuzione
dei primi restano ancora aperti, e tra essi, come gi detto, il numero effettivo
delle coppie di primi gemelli. Anche qui si hanno soltanto parziali stime asin
totiche relative alla funzione 7T2 che ad ogni reale positivo x associa il numero
dei primi p < x tali che p + 2 ancora primo: si noti che il numero delle coppie
di primi gemelli finito se e solo se 7T2 diviene costante da un certo x in poi.
Ma allo stato attuale quanto di meglio si sa che
x log log x
7r2 (x) < SD (l + 0 (
log2 x logx ))

dove D denota il prodotto (p-i)2)> ^ chiamata la costante dei primi


gemelli ed stimata 0,66016... .
2.5 Riconoscere i Prim i? 41

Il recente libro L enigma, dei numeri primi (The music of the primes nel titolo
originale inglese), scritto da M. Du Sautoy, d un quadro ampio ed accessibile
di queste problematiche, ed in particolare dellIpotesi di Riemann.

2.5 R ico n o scere i P rim i?

Il Teorema Fondamentale dellAritmetica solleva anche la seguente coppia di


questioni: dato un naturale N > 1,
1. (primalit) riconoscere se N primo o no;
2. (fattorizzazione) decomporre N nei suoi fattori primi.
I due problemi sono certamente collegati, ma non coincidenti: anche da un
punto di vista intuitivo, si pu ragionevolmente ammettere che decomporre
N in fattori primi pi complicato che non distinguere se N primo o
composto. Torneremo pi tardi su questo argomento. Ma intanto citiamo
lautorevole parere che Gauss espresse a proposito delle due questioni nelle
sue Disquisitiones Arithmeticae del 1801:
Il problema di riconoscere i primi dai composti e di decomporre i secondi
nei loro fattori primi riconosciuto essere uno dei pi importanti ed utili in
Aritmetica... La dignit stessa della scienza sembra richiedere di esplorare
ogni possibile mezzo per risolvere problemi cos eleganti e famosi
Comunque, senza voler mancare di rispetto a Gauss, tanta attenzione sem
bra, almeno a prima vista, spropositata e ingiustificata. In effetti, gi gli an
tichi Greci conoscevano un algoritmo semplicissimo per risolvere entrambe le
questioni. Lo chiameremo, tanto per fissare le idee, algoritmo elementare.
A lgoritm o elem entare. Sia dato un naturale N > 1. Dividiamo successiva
mente N per 2,3,4, 5, . . N 1.
Se nessuna divisione d resto 0, si dichiara N primo.
Se qualche divisione d resto 0, si deduce N composto, e si hanno infor
mazioni sulla decomposizione di N (perch se ne conosce un divisore, col
relativo quoziente).
Che cosa c che non funziona in questo facile procedimento? In effetti,
la sua efficienza che non soddisfa. Infatti, lalgoritmo pu richiedere, almeno
nella forma in cui lo abbiamo proposto,
N 2 divisioni
(tante almeno occorrono se N si rivela primo). Ora, immaginiamo che N sia
un numero superiore al miliardo; possiamo aspettare un miliardo di divisioni
prima di riconoscerne la primalit? Il tempo di attesa sembra proibitivo, e
certamente lo se ci rifacciamo alla tesi di Edmonds-Cook-Karp e ai dettami
42 2 Prim i e Com posti

della moderna Informatica Teorica. Infatti N 2 esponenziale rispetto alla


lunghezza delPinput N (che ricordiamo essere, pi o meno, la parte intera di
log2 N). E vero che il procedimento ha delle ovvie semplificazioni:
(i) se N = a b con a e b minori di N (e maggiori di 1), si ha a < y/N o
b < y/N; in altre parole, se N composto, allora N ha un divisore tra 2
e y/N, quindi la verifica dei possibili divisori di N si pu limitare da 2 a
V n -,
(ii) se N non multiplo di 2, non pu esserlo neppure di 4, 6 , . . in altre
parole, possiamo limitare la verifica ai numeri primi < y/N.
Ma anche con queste abbreviazioni Palgoritmo si mantiene lento e proibitivo
per numeri N grandi. C poi da osservare che ogni singola divisione non
corrisponde ad un unico passo di computazione, secondo la convenzione che
abbiamo fatto nel paragrafo 2 , ma pu a sua volta implicare un gran numero
di singoli passi. A questo proposito, va citata una variante del metodo, che
funziona in modo pi rapido almeno per la primalit, si basa sul presupposto
che moltiplicare pi semplice che dividere ed era conosciuta anche agli antichi
Greci: viene infatti attribuita ad Eratostene (terzo secolo a. C.).
Crivello di E ratostene. Sia N un naturale > 1. Si determinano tutti i primi
< N (e dunque anche la primalit di N ) nel modo che segue:
(i) elenchiamo tutti i naturali da 2 a N (ad esempio distribuendoli su righe
corrispondenti alle decine, da 2 a 1 0 , poi da 11 a 20 , e cos via);
(ii) 2 primo; allora eliminiamo dalla nostra tabella tutti i multipli > 2 di 2 ;
(iii) il minimo numero rimasto (nella fattispecie 3) deve essere primo; elimi
niamo comunque tutti i multipli > 3 di 3...
Si prosegue il procedimento fino a y/N. I numeri sopravvissuti alla selezione
sono i primi < N. In particolare, se N rimasto nella tabella, N primo.
Ma anche questa variante del metodo occupa troppo tempo ed anche troppo
spazio per la sua verifica di primalit. Dunque dobbiamo cercare algoritmi
pi brillanti e veloci. E questo il senso della citazione di Gauss che ha aperto
il paragrafo. A questo argomento dedicheremo gran parte dei prossimi due
capitoli.

2.6 G enerare i P r im i

Alla ricerca di metodi adatti a riconoscere i primi si accompagna il problema di


generare nuovi primi, sempre pi grandi, nella sequenza infinita che li elenca.
Diamo qualche esempio famoso di primi allinterno di opportune successioni
di naturali.
P rim i di F erm at. La prima sequenza fa riferimento a Pierre de Fermat (1601-
1665), giudice francese a Tolosa e matematico dilettante. Avremo modo di
2.6 G enerare i Prim i 43

incontrarlo ancora nelle prossime pagine. Con Fermat, possiamo considerare


le potenze di 2
1, 2 , 4, 8 , 16, 2 m, ... (m e N)
ed i loro successori

2, 3, 5, 9, 17, . .., 2 m + 1 , ... (m e N).

Notiamo che
3 = 21 + 1, 5 = 22 + 1, 17 = 24 + 1
sono primi, ed i corrispondenti esponenti 1, 2, 4 sono ancora potenze di 2.
Invece
9 = 23 + 1
non primo, e del resto lesponente 3 non potenza di 2 . Concentriamoci
allora sugli esponenti che sono potenze di 2 e chiamiamo, per ogni naturale n,
F(n) = 22+ 1 n-mo numero di Fermat.
Si ha, ad esempio,
F ( 0) = 2 2+ 1= 3,
F( 1) = 2 2'+ 1= 5,
F (2 ) = 222 + 1 = 17,
F(3) = 223 + 1 = 25 7,
F(4) = 224 + 1 = 65537;
tutti questi numeri sono primi, come gi Fermat aveva osservato. Daltra parte,
se m non potenza di 2 , 2 m + 1 composto: infatti, posto m = 2h d con h
naturale e d dispari > 1 , 2 m + 1 si fattorizza come

2m + 1 = (2 2V + l d = ( f h + 1 ) q

con q maggiore di 1 perch d > 1. Sulla base di queste osservazioni Fermat


congettur:
C o n g e t t u r a d i F e r m a t . Tutti i numeri di Fermat F(n) sono primi.
Fermat tent di provare questa proposizione senza riuscirci, ed anzi esprimen
do qualche dubbio sulla sua verit. In effetti, un secolo dopo Fermat, Eulero
ne dimostr la falsit: addirittura F (5) = 22 +1 (il primo numero non ancora
considerato nella lista) composto. A scusante di Fermat, va detto che F (5)
ha 10 cifre in base 1 0 , e certamente non era facile controllarne la primalit ai
tempi di Fermat e di Eulero, quando i moderni calcolatori non erano certa
mente disponibili. Lo stesso Eulero cerc dapprima di classificare teoricamente
i possibili divisori primi di un numero di Fermat F (n), e prov che dovevano
avere la forma
k 2n + 1 + 1
44 2 Prim i e Com posti

(in realt Lucas prov successivamente che questa rappresentazione si pu


ulteriormente migliorare, perch anche k deve essere pari, cos che il generico
fattore primo di F(n) ha la forma
k' 2n+2 + 1

dove 2k' = k). In ogni caso Eulero, applicando la sua caratterizzazione degli
eventuali fattori primi dei numeri di Fermat al caso n 5, scopr che il numero
641 (che ha la forma richiesta 10 2 6 + 1 ) divide F( 5)
F( 5) = 641 6700417.
Che cosa sappiamo oggi dei numeri di Fermat?
1. Gli unici primi di Fermat conosciuti sono gli stessi gi noti a Fermat, e
cio F(n) per n < 4. Daltra parte non escluso che esistano altri esempi,
ed ancora un problema aperto la possibilit che vi siano infiniti primi di
Fermat.
2. In effetti, i numeri di Fermat 22 +1 diventano enormemente grandi anche
per valori relativamente bassi di n (si pensi a F(5)) e risulta diffcile
decomporli, oppure verificarne la primalit, anche ricorrendo allausilio
dei moderni calcolatori. Per fare un ulteriore esempio, F(10) = 22 + 1
si compone di oltre 300 cifre decimali. Del resto stato provato che, per
ogni n > 1 ,
F(n) = F(0) F (l) ... F(n - 1 ) + 2
il che conferma quanto rapidamente crescano i numeri di Fermat F(n) al
variare di n. Cos allo stato attuale ben poco si sa anche dei numeri di
Fermat composti, e la situazione abbastanza chiara solo fino a F(30) (da
30 in su, si hanno solo informazioni frammentarie). Infatti noto che F(n)
composto per ogni n compreso tra 5 e 30. Tuttavia solo per 5 < n < 11
si conosce la decomposizione di F(n) in fattori primi. Per n = 14, 20, 22,
24, invece, si sa che F(n) composto ma non si conosce alcun suo divisore
primo. Finalmente, per gli altri valori di n da 5 a 30, si sa qualche fattore
primo di F(n) ma non lintera decomposizione.
Ci sono comunque risultati molto belli a proposito dei numeri di Fermat.
Citiamo tra essi:
(i) un teorema di Goldbach che afferma che due numeri di Fermat diversi sono
primi tra loro;
(ii) un criterio di Pepin che stabilisce che, per ogni n, F(n) primo se e solo
se F(r) divide 3 2 + 1 ;
(ih) ancora, il gi citato criterio di Eulero e Lucas per identificare i fattori
primi di un numero di Fermat.
Ma il pi famoso risultato che coinvolge i primi di Fermat il teorema di Gauss
sulla classificazione dei poligoni regolari costruibili con riga e compasso, che
ricordiamo qui sotto.
2.6 G enerare i Prim i 45

Sia n un naturale > 3. Allora si pu costruire con la riga


T e o r e m a 2 .6 .1
e con il compasso un poligono regolare di n lati se e solo se n ha la forma
2h po ... pr dove h un naturale e po, . . pr sono primi di Fermat a 2 a
2 distinti.
Dunque si possono costruire con riga e compasso poligoni regolari di 3, 4, 5, 6 ,
8, 10, 12, 15 ... lati (infatti 3, 5 sono primi di Fermat) ma non di 7, 9, 11, 13,
14, ... lati (visto che 7, 11, 13 non sono primi di Fermat, 3 lo ma 9 contiene
il fattore 3 due volte, e cos via).
P r i m i d i M e r s e n n e . Marin Mersenne (1588-1648) fu religioso francese.
I numeri di Mersenne si introducono come segue. Consideriamo ancora le
potenze di 2
1, 2 , 4, 8 , 16, ..., 2 m, ... (m e N)
ma stavolta rivolgiamo lattenzione ai loro predecessori

0, 1, 3, 7, 15, . .., 2m - 1, ... (m e N).

Notiamo che
3 = 22 1, 7 = 23 1
sono primi, cos come i corrispondenti esponenti 2, 3, mentre

15 = 24 1

composto, proprio come lesponente 4. Per ogni naturale m, chiamiamo ru


mo numero di Mersenne ed indichiamo M(m) il naturale 2m 1. Prendiamo
atto con Mersenne che, se m composto, anche M(m) lo . Infatti, posto
m a- b con a e b maggiori di 1 , si ha

M(m) = 2m - 1 = 2a'b - 1 = (2a)b - l b = (2 - 1) q

con q > 1 .
Ci si potrebbe chiedere se, viceversa, m primo implica M(m) primo. Ma, a
dispetto degli esempi precedenti, la risposta negativa (e la cosa era gi nota
ai tempi di Mersenne): possiamo citare il caso del primo m 11 per il quale

M( 11) = 2 11 - 1 = 2047 = 23 89.

Daltra parte non chiaro quanti siano complessivamente i primi di Mersenne:


anzi, problema ancora aperto se non siano addirittura infiniti. Ma, a differen
za dei numeri di Fermat, nuovi primi di Mersenne sono stati progressivamente
scoperti nel corso degli anni. Citiamo, in secoli diversi,
M(13) (risultato di Eulero del 1722),
M(127) (Lucas, 1876),
M ( 216091) (Slowinski, 1987)
46 2 Prim i e Com posti

In effetti, linteresse principale per i numeri di Mersenne risiede soprattutto


nella semplicit della loro rappresentazione e nella speranza di trovare nella
loro sequenza 2 m 1 ( m e N) nuovi numeri primi, sempre pi grandi. Laiuto
dei calcolatori fondamentale in questa ricerca: esiste addirittura un program
ma G I M P S (Great Internet Mersenne Primes Search) che coordina lattivit
di chi vuole scoprire primi di Mersenne mettendo a disposizione un server cen
trale e software libero. Cos record sempre nuovi si sono succeduti negli ultimi
anni tra i primi di Mersenne, nellambito del programma GI MPS. Citiamo:
M(20996011) (Shafer, 2003),
M(24036583) (Findley, 2004),
M(25964951) (Nowack, 2005).
Questultimo il primo pi grande conosciuto al momento della stesura di
questo libro: si compone di otto milioni di cifre decimali ed il 42-mo primo di
Mersenne fin qui trovato. E verosimile che, al momento della pubblicazione di
questo libro, il suo primato sar gi stato infranto. Del resto, c da dubitare
che questa ricerca frenetica di nuovi record sia ancora Matematica, e non
piuttosto un esercizio informatico volto a esibire e migliorare la potenza dei
moderni calcolatori.
Un altro argomento collegato ai numeri di Mersenne il seguente. Un numero
naturale n / 0 si dice perfetto se la somma dei suoi divisori propri. Ad
esempio:
6 = l + 2 + 3 perfetto (e del resto il numero dei giorni della creazione
secondo la Genesi, coincidenza osservata e commentata da S. Agostino nel
suo De Civitate Dei),
28 = 1 + 2 + 4 + 7 + 1 4 perfetto,
anche 496 e 8128 sono perfetti (ed esauriscono tutti i possibili casi <
10000).
C un teorema che collega i primi di Mersenne ed i numeri perfetti, afferman
do:
Teorem a 2.6.2 Per ogni intero positivo m, M(m) = 2m 1 primo se e
solo se 2m_1 M(m) perfetto.
Limplicazione da sinistra a destra era gi nota ad Euclide, laltra fu provata,
molti secoli dopo, da Eulero. Ad esempio:
il numero perfetto 6 = 2-3 = 22_1 -M(2) corrisponde al primo di Mersenne
3,
il numero perfetto 28 = 4-7 = 23 - 1 -M(3) corrisponde al primo di Mersenne
7.
Cos il problema relativo al numero dei primi di Mersenne si trasmette ai
numeri perfetti: in effetti non si conosce quanti essi siano. Di pi tutti gli
esempi conosciuti riguardano numeri pari, ed questione ancora aperta se
esistano numeri perfetti dispari.
2.7 N um eri e Misteri 47

P rim i di G erm ain. Sophie Germain (1776-1831) fu matematica francese


contemporanea di Gauss. Un numero primo p si dice primo di Germain se
2p + 1 ancora primo. Ad esempio
2, 3, 5, 11,...
sono primi di Germain (perch 5, 7, 11, 23, ... sono ancora primi), 7 non primo
di Germain perch 2-7+1 = 15 composto. Limportanza dei primi di Germain
legata allUltimo Teorema di Fermat (al quale accenneremo brevemente nel
prossimo paragrafo). Infatti Sophie Germain prov che lequazione di Fermat
xP+yP = Zp

non ha radici intere a, , c tali che p non divide n a n b (n c) quando


p , appunto, un primo di Germain. Anche i primi di Germain hanno i loro
misteri; ad esempio, non noto se siano finiti o infiniti. In compenso si sa che
ci sono infiniti primi che non sono di Germain; a questo proposito, c una
congettura di Hardy e Littlewood che afferma che il numero dei primi < x
che non sono di Germain asintoticamente uguale (per x tendente a +oo) a
t^g2 x, dove D = 0,6601618... la costante dei primi gemelli.
Sullimportanza di conoscere metodi anche casuali per generare primi e sulle
applicazioni possibili di questi metodi in crittografa avremo modo di tornare
nel nostro ultimo capitolo.

2.7 N u m eri e M isteri

La relativa facilit con cui argomenti, esempi e problemi di Aritmetica si


possono proporre non deve far pensare che la Teoria dei Numeri (naturali) sia
unarea semplice della Matematica. Come afferm Kronecker circa un secolo
fa, i numeri naturali sono i soli creati da D i o Questa frase (al di l degli
intenti polemici con cui fu pronunciata, contro Cantor e lintroduzione dei
numeri transfiniti) suggerisce per i numeri naturali una sorta di genesi divina,
che si riflette nei tanti misteri irrisolti che ancora li accompagnano. Del resto,
le pagine precedenti hanno fornito una gran dovizia di esempi a sostegno di
questa affermazione (i primi gemelli, i primi di Fermat, quelli di Mersenne,
i numeri perfetti e, per altri versi, lIpotesi di Riemann). Per rimanere ai
confini tra scienza e religione, possiamo citare quel che Andr Weil diceva a
proposito di certi problemi sui naturali, e cio che dimostrano resistenza di
Dio e anche quella del diavolo (a sottolineare la difficolt quasi trascendente
di certe questioni apparentemente semplici che li riguardano, ed il dispetto
di dover ammettere, appunto, la nostra incapacit di risolverle, come se un
qualche demonio ci ostacolasse). In questo paragrafo illustriamo brevemente
i due misteri pi appassionanti che riguardano i numeri naturali, luno (la
Congettura di Goldbach) ancora aperto, laltro (L Ultimo Teorema di Fermat)
risolto da pochissimi anni.
48 2 Prim i e Com posti

C o n g e t t u r a d i G o ld b a c h . Nel 1742, C. Goldbach propose in una lettera ad


Eulero il seguente problema:
ogni numero naturale > 6 la somma di al pi 3 primi (non necessaria
mente distinti).
Eulero rispose senza risolvere il quesito, ma osservando che sarebbe stato
sufficiente provare:
ogni numero naturale pari > 4 la somma (in modo non sempre unico) di
2 primi (non necessariamente distinti).
Il lettore potr dimostrare per e s e r c iz io il collegamento delle due proposizio
ni. La seconda quella che comunemente si chiama la Congettura di Goldbach.
Dovizie di esempi la sostengono

4 = 2 + 2, 6 = 3 + 3, 8 = 5 + 3, 10 = 7 + 3 = 5 + 5 , 12 = 7 + 5 , ... .

Ma una tale abbondanza di esempi positivi non basta a dare una dimostrazio
ne, visto che i numeri pari (e quelli primi) sono infiniti. In effetti, il problema
oggi, dopo quasi 3 secoli dalla sua formulazione, ancora aperto; anzi, ha
addirittura ispirato recentemente una avvincente storia di mistero e pazzia: il
romanzo di Apostolos Doxiadis Zio Petros e la Congettura di Goldbach.
U l t i m o T e o r e m a d i F e r m a t . Nel 1637 Pierre de Fermat, leggendo un
libro di aritmetica scritto dal matematico alessandrino Diofanto, scrisse sul
suo margine di aver trovato una dimostrazione meravigliosa della seguente
proposizione:
non ci sono soluzioni intere a, b, c ^ 0 della equazione x n + yn = zn
per n > 3.
Si noti che il caso n = 2 corrisponde al Teorema di Pitagora, per il quale
esistono - ed anzi sono completamente classificate - soluzioni intere a, ,
c 0 : si pensi a
a = 3, b = 4, c = 5,
a = 5 . 5 = 12. c 13
e cos via. Fermat escludeva dunque la possibilit di analoghe soluzioni a, ,
c / 0 quando lesponente n > 2. Daltra parte la asserita dimostrazione
( utroppo lunga per essere contenuta nel margine della pagina, per dirla con
le parole stesse di Fermat) non fu trovata in nessuna delle carte che il matema
tico francese ci lasci. Laffermazione di Fermat divenne allora un problema
classico di Matematica, cui molti si appassionarono senza riuscire a trovare
una risposta: pur non essendo un teorema di Fermat nel senso letterale del
termine (in quanto la dimostrazione di Fermat, ammesso che fosse corretta,
non fu mai trovata), fu battezzata Ultimo Teorema di Fermat. Le discussioni
sorte nel tentativo di risolverla portarono a profondi sviluppi della Matematica
2.7 N um eri e Misteri 49

(come la nascita della Teoria Algebrica dei Numeri e certi progressi nellAl
gebra astratta). Finalmente nel 1994 (quasi 4 secoli dopo Fermat) Andrew
Wiles ne diede una dimostrazione, certamente diversa da quella che Fermat
aveva nella sua mente, perch strettamente collegata ad argomenti profondi e
moderni di Geometria Algebrica (come le curve ellittiche e le forme modulari).
Resta comunque la curiosit circa la possibilit di una dimostrazione quale
Fermat poteva averla ideata: meravigliosa, profonda, eppure elementare ed
accessibile, svolta solo con gli strumenti matematici (relativamente semplici)
di cui Fermat disponeva.
A proposito deHUltimo Teorema di Fermat va aggiunto che Sophie Germain
ne ottenne una prova parziale nel caso in cui lesponente n , appunto, un
primo di Germain (tale, cio, che 2n + 1 ancora primo).
Il libro di S. Singh L Ultimo Teorema di Fermat espone in tono divulgati
vo e godibile la storia di questo mistero, dalla sua nascita nel 1637 alla sua
soluzione del 1994.

E s e r c iz i 2 .7 .1

1. Si trovino con lalgoritmo euclideo il massimo comun divisore e il minimo


comune multiplo delle seguenti coppie di interi
316 e 1281,
215 e 896.
Si rappresentino poi i due massimi comuni divisori nella forma
316x + 1281 y,
215x + 896y
rispettivamente per x, y interi opportuni.
2 . Si determinino i valori degli interi x, y che soddisfano 315x + 1650y = 15.
3. Sia N = 782354 un numero naturale scritto in base 10. Si calcoli la
lunghezza di N in base 2.
4. Se un numero N formato da 10 cifre in base 10, possibile che la sua
lunghezza diventi 35 quando viene scritto in base 2?
5. Per ogni naturale m, sia F(m) = 2 2+ 1 lm-mo numero di Fermat. Si
provi che, per ogni m, F(m) 2 = F(0) F (l) F(m 1).
(.Suggerimento: si proceda per induzione su m. Il caso m 1 chiaro; il
passaggio da m a m +1 si ottiene osservando che F(m +1) 2 = 22+1 1
si decompone nel prodotto (2 2+ 1 ) (2 21 ): il primo fattore F(m),
il secondo eguaglia F(m) 2 e gli si pu applicare lipotesi induttiva).
6 . Si provi che due numeri di Fermat distinti sono primi tra loro.
(.Suggerimento: si utilizzi lesercizio precedente).
7. Si possono costruire con riga e compasso poligoni regolari di 25, 85, 132 e
514 lati rispettivamente?
50 2 Prim i e Com posti

8. 8191 un primo di Mersenne?


9. Si riconosca quali tra 13, 17, 19, 23, 29 e 31 sono primi di Germain e quali
no.
10. La terna (2,14,15) verifica lequazione x 122 + y 122 = z 122?
1 1 . Si verifichi che la congettura di Goldbach equivalente a ciascuna delle
seguenti affermazioni:
ogni intero pari > 6 la somma di al pi 3 primi;
ogni intero pari > 6 la somma di 2 primi (entrambi dispari).

R iferim enti bibliografici

Un ottimo libro introduttivo di Algebra e Aritmetica elementari [16]. Su


computabilit e complessit computazionale si veda [71]. Tra i possibili testi
di riferimento per la Teoria dei numeri, citiamo i classici [22] e [34], o i pi re
centi [61] e [38], Pultimo dei quali tratta dichiaratamente il tema del rapporto
tra numeri e crittografia. Una godibilissima presentazione dei primi e dei loro
misteri [57], che tratta anche la congettura di Goldbach, i primi di Fermat,
i primi di Mersenne, quelli di Germain e cos via. [24] tratta gli stessi argo
menti in modo pi divulgativo; dedica molte pagine allipotesi di Riemann e
ai vari tentativi di risolverla. Anche [19] discute questi temi; presenta anche
la traccia di una dimostrazione del teorema di Chebyshev sulla congettura di
Bertrand. Lipotesi di Riemann, e luso degli strumenti di Analisi in Teoria
dei Numeri, sono presentati in modo approfondito in [5]. Per unanalisi pi
specifica, si veda anche [25]. Sul tema specifico dei numeri di Fermat, si veda
[39]. Chi vuol cimentarsi nella ricerca dei numeri di Mersenne, pu esplorare
www.mersenne.org/prime.htm. SullUltimo teorema di Fermat, si veda anche
[68 ], che ne espone la storia in modo semplice e accessibile. In ambito deva
sione, anche la lettura di [23] da consigliare. Tornando allUltimo teorema
di Fermat [58] ne d un mirabile resoconto prima della soluzione di Wiles, che
[59] discute con ampia dovizia di indicazioni bibliografiche.
3

P otenze, Radici e Logaritmi

3.1 In tro d u zio n e


Nel Capitolo 1 abbiamo visto come luso dei numeri naturali per codificare
le lettere di un alfabeto A faciliti lapplicazione degli strumenti crittografici.
Ricordiamo infatti che, se N la cardinalit di A , i vari simboli di A si posso
no indicare con i naturali da 0 a N 1. Daltra parte laritmetica che questi
numeri di codice soddisfano non quella abituale di N, ma piuttosto la sua
versione modulo N ; cos, se il simbolo N 1 cifrato aggiungendogli 3, allora
lelemento che lo cripta 2, cio (N 1) + 3 modulo N.
Si ha quindi una situazione analoga a quella dellaritmetica dellorologio, che
sovrintende lo scorrere delle ore del giorno. In quel caso si ha N = 24 e si la
vora, appunto, modulo 24; di conseguenza un appuntamento fissato alle 22 di
una sera per 4 ore dopo si intende concordato per le 2 del mattino successivo,
perch 22 + 4 coincide con 2 modulo 24.
In tutti questi casi, dunque, loperazione di addizione e, se vogliamo, anche
quella di moltiplicazione si svolgono come per gli interi ma devono tenere con
to del fatto che N eguaglia 0. Laritmetica che se ne ricava, pur derivando da
quella degli interi, ha sua specifiche peculiarit e talora differenze sostanzia
li. Ricapitoliamone gli aspetti fondamentali. Una trattazione pi dettagliata
potr essere trovata nei testi citati in bibliografa.

3.2 L A r itm e tic a d e llO rologio


Consideriamo lanello Z degli interi con le usuali operazioni di somma e pro
dotto. I concetti ricapitolati nello scorso capitolo sui naturali si estendono
con le opportune modifiche a questo ambito esteso. Per ogni intero positivo
N consideriamo in Z la relazione di congruenza modulo N. Ne ricordiamo
anzitutto la definizione.
Definizione 3.2.1 Si dice che due interi a e b sono congrui modulo N , e si
scrive a = b (m odN ), se N divide a b.
52 3 Potenze, Radici e Logaritm i

Ad esempio 26 = 2 (mod 24) perch 24 divide ed anzi eguaglia 26 2 .


un facile esercizio verificare che la congruenza modulo N una relazione
di equivalenza in Z. Per ogni intero a, denotiamo con ajy la sua classe di
congruenza modulo N
cln = {b G Z : a = b (modTV)} = {Nq + a : q E Z}.
Z at denota linsieme di queste classi, cio linsieme quoziente di Z rispetto a
= (m odN ). Si osserva facilmente quanto segue.
Osservazioni 3.2.2
1. Siano a un intero, r il resto della divisione di a per N ; allora a = Nq + r
per qualche intero q, dunque a = r(modN) e in conclusione a tv = r/v
dove 0 < r < AL
2 . Quando poi r, s sono due interi e 0 < r, s < N, si ha r = s (modN) se e
solo se r = s.
Le classi di congruenza modulo N corrispondono quindi ai resti della divisione
per N ; ci sono m classi 0 tv, I tv, , (N 1)n (che indicheremo talora nel
seguito sbrigativamente come 0, 1, ..., N 1 quando non ci sar pericolo di
confusione). Ad esempio Z 24 si compone delle classi 024 , 1 24 , -, 2324; Z 26
delle classi da 026 a 2526-
La relazione di congruenza preserva poi laddizione e la moltiplicazione degli
interi: se a, a', b, b1 sono in Z e a = a' (modN), b = b' (modN), allora
a + b = a' + b' (modN), a b = a1 b' (modN),
come facile verificare applicando le propriet della divisibilit. Di conse
guenza, possiamo definire anche in Z n due operazioni di somma e prodotto,
ponendo, per a, b interi,
v + /v = (a + b)jy, ajy bjy = (a b)jy.
Cos 2 2 24 + 4 24 = 224, e via dicendo. Dunque lalgoritmo di addizione o
moltiplicazione in Z ^ il seguente:
si svolgono le operazioni in Z,
si dividono i risultati per A e se ne considerano i resti; si ottengono cos
la somma e il prodotto modulo N.
I tempi di svolgimento di questa procedura sono quindi rapidi, anzi al pi
quadratici rispetto alla lunghezza di N (e dei due addendi o fattori).
Si vede poi che, rispetto a + e -, Z ^ un anello commutativo unitario (con
unit ljv), soddisfa cio molte delle propriet (commutative, associative, di
stributive e cos via) che gi valgono tra in Z. Ma gli unici interi invertibili
rispetto al prodotto sono 1 , e invece in Z ^ si ha:
Proposizione 3.2.3 Per ogni intero a, cln invertibile in Z jv se e solo se
(a, N) = 1. In particolare, Zjy un campo se e solo se N primo.
3.3 Radici Q uad rate e R esti Cinesi 53

D im ostrazione, ajy invertibile in Z tv se e solo se esiste un intero x tale


che 1N = (in %n = {a x ) n (cio ax = 1 (m odN )), e dunque se e solo se
ci sono due interi x e y per cui 1 = ax + Ny. Ma questo equivale a dire che
(a, N) = 1: (=>) chiaro, (<(=) lidentit di Bzout. In particolare, Z n un
campo (e dunque tutti i suoi elementi ^ On sono invertibili) se e solo se ogni
intero a non congruo a 0 modulo N, e cio non divisibile per N, primo con
N : ma questo equivale ovviamente a chiedere che N sia primo.
Si noti che la dimostrazione ci fornisce anche un algoritmo esplicito di calcolo
dellinverso di a modulo N (quando a primo con N). Basta esprimere il
massimo comune divisore 1 di a e N nella forma

ax + N y

con x e y interi, secondo lIdentit di Bzout: allora linverso di proprio


xn (e nello scorso capitolo abbiamo visto come computare x e y a partire da
a e N in tempo al pi quadratico rispetto alle lunghezze di a e N).
Aggiungiamo che, se a un intero che non primo con N, allora av un
divisore dello zero in Z n (in particolare, se a multiplo di N, allora aN = On )-
Ad esempio 1 2 24 , 224 ^ O24 ma 1 2 24 224 = 024 .
Z n manifesta cos propriet particolarissime, che nulla hanno a che vedere
con quel che capita tra gli interi.
Esercizi 3.2.4
1. Siano N, N' interi positivi, a, b interi. Si provi che a, b sono congrui modulo
N e modulo N' se e solo se lo sono modulo il minimo comune multiplo
[iV, N f] di iV, N f.
2. 92i invertibile in Z 2i? E 922 invertibile in Z22?
3. Z 315 un campo? E Z233?

3.3 R a d ici Q u ad rate e R e sti C in esi

A esemplificare ulteriormente le differenze tra lusuale aritmetica degli interi


e quella modulo N, consideriamo il caso delle radici quadrate. Sappiamo che
tra gli interi i quadrati si riducono a 0, 1, 4, 9, ... e che ciascuno di essi,
escluso 0, ammette esattamente due radici quadrate d=l, 2, 3 e via dicendo.
Esaminiamo lo stesso problema modulo N : abbiamo quindi un intero a e
cerchiamo di
1. stabilire se a o no un quadrato modulo N,
2. identificare eventualmente le sue radici quadrate modulo N.
Osservazioni 3.3.1
54 3 Potenze, Radici e Logaritm i

1. Ovviamente 0, 1, 4, 9, ... restano quadrati anche modulo N. Talora per fi


niscono per coincidere tra loro (come 4 e 9 modulo 5), talora altri si aggiun
gono a loro (almeno apparentemente), secondo il valore di N. Ad esempio,
10 = 25 = 52 (mod 15) un quadrato modulo N = 15. Daltra parte, non
tutti gli interi sono quadrati modulo N. Ad esempio 2 = 1 (mod 3) non lo
modulo 3 perch i quadrati modulo 3 sono 0 = 02 e 1 = l 2 = 22 (mod 3).
2. Se a un quadrato modulo IV, allora a pu talora ammettere pi di 2
radici quadrate modulo N. Ad esempio 1 ha 4 diverse radici quadrate d=l,
3 (cio 1, 3, 5, 7) modulo 8 . Infatti, un facile controllo mostra

l 2 = 32 = 1 (mod 8)

e conseguentemente

(l ) 2 = (3) 2 = 1 (mod 8),

cio 72 = 52 = 1 (mod 8).

La situazione pare dunque abbastanza confusa. Tuttavia per N primo qualcosa


di pi preciso pu essere ottenuto. Siano infatti a un intero e IV, come detto,
un primo. Se a = 0 (m odN ), allora a un quadrato modulo IV, e Punica sua
radice quadrata modulo IV 0. Assumiamo allora che a non sia divisibile per
N e quindi che sia primo con N. Si ha quanto segue.
Siano N un primo dispari, a un intero primo con N .
P r o p o s iz io n e 3 .3 .2
Se a un quadrato modulo N , allora a ha esattamente due radici quadrate
modulo N .
D im o s t r a z i o n e . Sia b un intero tale che a = b2 (modN). Notiamo che si
ha anche a = (b)2 (modN) e che 6 , - 6 sono distinti modulo N (altrimenti
N divide il prodotto 2b e dunque, essendo primo, divide anche uno dei due
fattori; ma invece sappiamo che N non divide n 2 n a, quindi neppure
b). Daltra parte, se x un intero e x 2 = a = b2 (modN), allora N divide
x 2 - b 2 = (x b) (x + b). Ma N primo e di conseguenza N divide x b
oppure x + b. Corrispondentemente x = b (modN) oppure x = b (modN).
Una dimostrazione alternativa si pu ottenere facendo riferimento alla teoria
dei campi, ricordando in particolare che in un campo, come Z n quando N
primo, un polinomio di grado 2, come e x 2 a, ha al pi 2 radici. Daltra parte,
se b soddisfa x 2 a modulo IV, anche b lo fa, e, come detto, b ^ b (modN)
per N dispari.
E s e r c iz io 3 .3 .3 Che cosa succede quando N = 2?
Affrontiamo adesso il problema di stabilire il numero delle possibili radici
quadrate modulo N quando N un qualunque numero intero. Il risultato gi
osservato per N primo si preserva almeno parzialmente in questo ambito pi
generale, nel senso precisato dallesercizio che segue.
3.3 Radici Q uad rate e R esti Cinesi 55

Siano N un intero dispari > 2, a un intero primo con N.


E s e r c iz io 3 .3 .4
Se a un quadrato modulo N, allora a ha a lm e n o due radici quadra
te distinte modulo N (suggerimento: sia a = b2 (mod N ), allora vale anche
a = (b)2 (m o d N ) e si controlla facilmente b ^ b (m odN )).
Assumiamo comunque N composto dispari > 2. Ci utile strumento il Teore
ma del Resto Cinese: ricordiamone allora velocemente enunciato e dimostra
zione.
Siano N0, . .., N n interi > 1 a due a due primi tra loro.
T e o r e m a 3 .3 .5
Allora, per ogni scelta di interi q, ..., bn, esiste un intero x tale che

x = bj (mod Nj ) per ogni j < n

e questa soluzione unica modulo N se N denota il prodotto Y \ j <n Nj.

Per ogni j < n poniamo qj =


D im o s t r a z i o n e . Allora (qj, Nj) = 1, e
dunque per la identit di Bzout esistono due interi sj, tj per cui

1 = qjSj + Nj tj

e conseguentemente
bj = qj Sj bj + Nj tj bj.
Quindi qjSjbj = bj (modNj ) per ogni j < n. Sia ora x = J2i<n qiSibi. Notiamo
che, fissato j < n, Nj divide ogni qi per i ^ j. Cos

x = qjSjbj = bj (modNj).

Inoltre, per ogni intero x, x soddisfa tutte le congruenze x = bj (modNj) per


j < n se e solo se x = x (modNj) per ogni j < n e dunque, in definitiva, se e
solo s e x e x sono congrui modulo il minimo comune multiplo di A q, . .., N n,
che eguaglia il loro prodotto N perch A q, . .., Nn sono a due a due primi tra
loro.
Si noti che il teorema ci mostra anche come calcolare rapidamente x a partire
da A0, ..., Nn, &o, -, bn come JA <n qiSibp. osservazione di qualche rilievo,
visto il nostro interesse a ridurre al massimo i nostri tempi di lavoro.
Vediamo adesso come applicare il Teorema del Resto Cinese allo studio delle
radici quadrate modulo N quando N composto. Come detto, supponiamo
per semplicit N dispari.
Siano N 0 , . . . , N n interi dispari > 1 a due a due primi
P r o p o s iz io n e 3 .3 .6
tra loro; sia poi N = Y l j <n N j il loro prodotto (dispari!), e sia a un intero
primo con N . Allora a un quadrato modulo N se e solo se a un quadrato
modulo N j per ogni j < n. In tal caso a ha almeno 2n+1 radici quadrate
modulo N. Se poi N q, ... ,N n sono tutti primi, a ha esattamente 2 n+1 radici
quadrate modulo N .
56 3 Potenze, Radici e Logaritm i

D im o s t r a z i o n e . chiaro che, se a un quadrato modulo iV, allora lo


modulo Nj per ogni j < n: vale infatti a = b2 (modN), per qualche b, e
quindi a = b2 (m o d N j ) per ogni j < n.
Viceversa, supponiamo che, per ogni j < n, a sia un quadrato modulo Nj, e
dunque ammetta almeno due radici quadrate bj^,bj^ distinte modulo N (si
ricordi lesercizio 3.3.4). Per ogni j < n scegliamo i(j) E {0,1} e consideriamo
le congruenze
x = bj^j) (modNj), j < n.
Per il Teorema del Resto Cinese, esse hanno una comune soluzione b: per j < n
b = bjj(j) (modNj).
Ma allora per ogni j < n

a = bh u ) = b2 (modl f j ).
In conclusione, a = b2 (modN). Cos a un quadrato modulo N , e anzi ha
almeno 2 n+1 radici quadrate distinte, corrispondenti alle possibili sequenze
^0,i(0) 5frl,i(l) 5 5

con i(0),i(l),... ,i(n) E {0,1} e agli interi b conseguentemente costruiti nel


modo appena descritto: si verifica infatti facilmente che sequenze distinte de
terminano valori distinti di b (e s e r c iz io : perch?). Il lettore provi a discutere,
sempre per e s e r c iz io , il caso in cui 7V0, . .., N m sono primi e a dimostrare in
questo modo la tesi finale della Proposizione.
E s e m p io 3 .3 .7 Sia N = 15 = 3 5. Allora a 1 ammette
2 radici quadrate 1 (cio 1 e 2) modulo 3,
2 radici quadrate 1 (cio 1 e 4) modulo 5.
Consideriamo uno qualunque dei 4 casi che si vengono cos a incontrare, ad
esempio
x = 2 (mod 3), x = 1 (mod 5).
Col Teorema del Resto Cinese troviamo ununica soluzione modulo 15
./ = 11 = 4 (mod 15)
e dunque una radice quadrata 4 di 1 modulo 15. Infatti(4) 2 = 16 =
1 (mod 15). Si determinano poi per questa viatutte leradiciquadrate di 1
modulo 15 (esse vengono a coincidere con 1, 4 modulo 15).
Abbiamo cos contato il numero delle radici quadrate modulo N anche per
certi valori di N composto. Ovviamente, sia nel caso in cui N primo che per
N composto, restano da discutere i seguenti problemi:
quali interi a sono quadrati modulo N,
come determinare le loro radici quadrate modulo N.
Ne parleremo nel seguito del capitolo.
3.4 Potenze 57

3.4 P o te n z e
Se le radici modulo N presentano molti misteri, non altrettanto pu dirsi delle
potenze. Esistono infatti algoritmi rapidi per il calcolo delle potenze an per
a e n interi positivi, e questi procedimenti si applicano con successo anche
maggiore quando la computazione avviene modulo N : gi Legendre li usava
nel 1785. Questo paragrafo dedicato a descriverli.
Il metodo pi elementare per calcolare an (eventualmente modulo N) quello
di moltiplicare a per se stesso n volte; la procedura richiede per n 1 mol
tiplicazioni, e dunque non ragionevolmente veloce rispetto alla lunghezza
di n. Daltra parte, possiamo seguire una via alternativa. Infatti dividiamo
lesponente n per 2 e osserviamo che:
se n = 2 ni pari, allora an = (a711)2 si ottiene quadrando ani (e
computando ani preventivamente),
se invece n = 2n\ + 1 dispari, allora an = (an i ) 2 a si ottiene quadran
do ani e moltiplicando questo quadrato per a (sempre computando ani
preventivamente).
Daltra parte, anche il calcolo preliminare di ani si pu fare allo stesso modo.
Illustriamo il procedimento con un esempio.
E s e m p io 3 .4 .1 3100 , come ben noto, il prodotto di 100 fattori, tutti uguali
a 3. Ma, come detto, non c bisogno di operare 99 successive moltiplicazioni
per ottenere questo risultato. Infatti, siccome 100 = 2-50, si ha che 3100 =
(350) 2 si ricava come il quadrato di 350. Losservazione si pu ripetere: siccome
50 = 2-25, si ha 350 = (325)2, quindi 3100 = ((325)2)2. Di nuovo 25 = 2-12 + 1,
cos 325 = (312) 2 3, da cui 3100 = (((312) 2 3)2)2. Dalle successive divisioni
per 2
12 = 2 - 6,
6 = 2-3,
3 = 2 - 1 + 1,
1 = 2 0 + 1,
si ottiene finalmente lespressione
310 = ((((((1 *3) 2 3) 2) 2) 2 3)2)2,
che fornisce 3100 a partire da 1 con
3 moltiplicazioni per 3,
6 elevamenti al quadrato,
dunque con un numero di operazioni largamente inferiore alle 99 moltiplica
zioni prospettate in partenza.
51 noti che la sequenza delle divisioni che permettono questa semplificazione
la stessa che conduce a rappresentare lesponente 100 in base 2 nella forma
110 0 10 0 (intesa come sequenza dei resti di queste divisioni elencati a partire
da destra). I resti 0 ,1 corrispondono per la precisione:
58 3 Potenze, Radici e Logaritm i

0 a quadrare,
l a quadrare e a moltiplicare per 3.
Cos se abbreviamo con
Q listruzione quadrare,
X listruzione moltiplicare (in questo caso per 3),
il numero 1100100 determina la sequenza di istruzioni QXQXQQQXQQ da
applicare a 1 per ottenere 3100. Naturalmente, quando si lavora modulo IV,
tutte queste istruzioni si svolgono modulo IV, e i risultati possono essere so
stituiti dai loro resti per IV, e quindi ristretti tra 0,1,... ,1V 1, al prezzo
massimo di una divisione per ogni passaggio.
E s e m p io 3 .4 .2 Poniamo N = 101, e dunque calcoliamo 3100 modulo 101.
Applicando le precedenti istruzioni QXQXQQQXQQ a 1, otteniamo
1 ~^q 1 ~^x 3 >q 9 ^x 27 >q 729 = 22 ^q 484 = 80
>q 6400 = 37 111 = 10 >q 100 = -1 1 (mod 101).
Si deduce 3100 = 1 (mod 1 0 1 ).
L a lg o r it m o . In generale il procedimento da seguire per calcolare
ak (modN)
per a, k interi, k, N > 1 il seguente:
rappresentare k in base 2 ;
sostituire le cifre 0 ,1 della rappresentazione di k rispettivamente con le
istruzioni
- quadrare (Q),
- quadrare e moltiplicare per a (QX);
applicare la sequenza di istruzioni cos ottenuta a 1 modulo N.
E s e m p i 3 .4 .3
1. 2 340 = l(mod341). Si vede che 340 in base 2 diviene 10 10 10 10 0 . Si ha
dunque la sequenza di istruzioni:
QXQQXQQXQQXQQ.
Corrispondentemente
1 >q 1 ~^x 2 q 4 q 16 - ^ x 32 q 1024 = 1
-^ Q X Q Q X Q 1 >Q 1 ( m o d 341 ).
2. 57 = 5 (mod 24). Infatti 7 in base 2 111, e genera la sequenza di istruzioni
QXQXQX,
che, applicata a 1 , produce
1 -^ q 1 -^ x 6 ~^q 25 = 1 ~^x 5 (mod 24).
3.5 II Piccolo Teorem a di F erm at 59

E s e r c iz i 3 .4 .4

1. Si provi che 2 560 = 1 (mod 561).


2. Si determini 1717 modulo 17 (attenzione!).
3. Si determini 3340 modulo 341.

3.5 II P ic c o lo T eorem a di F erm at

Il paragrafo dedicato a un risultato di Fermat sulle potenze degli interi


modulo un primo p, da non confondere con lUltimo Teorema di Fermat che
abbiamo discusso in precedenza (e che, a stretto rigore di termini, non
neppure un teorema di Fermat, visto che non c alcuna certezza che Fermat
labbia davvero dimostrato). La presente proposizione viene allora chiamata
Piccolo Teorema di Fermat, e dice:
Sia p un numero primo. Allora, per ogni intero
T e o r e m a 3 .5 .1 ( F e r m a t )
a, vale ap = a (modp). Se poi a e p sono primi tra loro (cio p non divide a),
allora ap~ 1 = 1 (modp).
La seconda tesi una semplice conseguenza della prima.
D im o s t r a z i o n e .
Supponiamo infatti che p divida ap a = a (ap~ 1 1 ). Siccome p primo,
p deve dividere uno di questi due fattori; se non divide a, divide ap~x 1 .
Passiamo allora a provare la prima tesi. Ci basta dimostrarla per a > 0.
Procediamo per induzione su a. Per a = 0 sufficiente prendere atto che,
addirittura, 0P = 0. Supponiamo allora il teorema vero per a e dimostriamolo
per a + 1 . Sappiamo

Ricordiamo che un naturale e

Quando 0 < k < p, i numeri da 1 a k non possono dividere p perch p primo;

(lultima congruenza deriva dalla ipotesi di induzione).


Il Piccolo Teorema di Fermat pu essere utile per il calcolo dellinverso di un
intero modulo un primo p. Sappiamo infatti che gli interi a invertibili modulo
60 3 Potenze, Radici e Logaritm i

p sono esattamente quelli primi con p. Ad essi si applica la seconda tesi del
Piccolo Teorema di Fermat, che afferma tra le classi di congruenza modulo p
Puguaglianza avv~x l p e permette quindi di dedurre

% 1 = r 2 = (aP~2)p
Ma allora, per ottenere Pinverso di a modulo p, basta computarne la potenza
(p 2)-ma modulo p: operazione che sappiamo svolgere in tempi rapidi. Va
tuttavia ricordato che gi conosciamo un metodo per il calcolo dellinverso
modulo un qualunque intero N > 2, basato sullalgoritmo euclideo delle divi
sioni successive e sulla identit di Bzout, e va sottolineato che questultima
procedura preferibile a quella fondata sul teorema di Fermat, che funziona
solo per N primo e richiede poi il calcolo preventivo di (a, N) per verificare
che a e N sono primi tra loro (e dunque finisce col fare comunque appello
allalgoritmo euclideo).
Ma la applicazione del Piccolo Teorema di Fermat che pi ci interesser nel
resto di queste note riguarda il problema della primalit. Infatti il teorema
di Fermat ci fornisce un criterio sufficiente a riconoscere che un dato intero
N > 2 composto: ci basta trovare un intero a primo con N, 1 < a < N, per
cui si verifica
aN~i ^ 1 (m odN );
questo garantisce che N , appunto, composto. Si potrebbe sperare che il test
si applichi anche alla verifica che N primo (quando lo ). In dettaglio, cio,
ci si pu chiedere quanto segue.
Supponiamo di fissare un a primo con N, ad esempio a 2 (che funziona
egregiamente quando N dispari) e di scoprire che aN~1 = 1 (modN):
lecito dedurne che N primo?
Pi in generale, supponiamo che tutti gli interi a compresi tra 1 e N e
primi con N soddisfino la congruenza aN_1 = 1 (modN): di nuovo,
lecito dedurne che N primo?
Discuteremo largomento nel prossimo capitolo dedicato alla primalit.

3.6 La fu n zio n e < fi e il T eorem a di E ulero

Il Piccolo Teorema di Fermat si estende in modo opportuno dai primi p ad


arbitrari interi N > 2 . Consideriamo infatti la funzione <p che ad ogni intero
positivo N associa
4>(N) = numero degli interi a compresi tra l e i V e primi con N.
(j) detta la funzione di Eulero.
E s e r c iz io 3 .6 .1 Si mostri che <f>(N) il numero delle classi di resti modulo
N invertibili in Z jy.
3.6 La funzione 0 e il Teorem a di Eulero 61

O s s e r v a z io n i 3 .6 .2

1. 0 (i) = i.
2. Se N primo, allora 0(AQ = N 1. Infatti ogni intero compreso tra 1 e
N 1 primo con AL Quindi 0(2) = 1, 0(3) = 2 e cos via. Viceversa,
se 0(AQ = N 1, N deve essere primo. Infatti, se N e composto, deve
esistere qualche divisore d di N compreso tra 2 e N 1; d non pu essere
primo con N, dunque 0(AQ < 2V 1.
3. Se N e una potenza pk di un primo p, allora 0(AQ = pk~x (p 1). Infatti,
siccome p primo, i numeri (tra 1 e N = pk) che non sono primi con p
sono i multipli di p
p, 2p, 3p, . . . , p 2 = p p, . . . , p k = p p k~x

e dunque sono pk~x. Gli altri (quelli primi con p) sono allora pk pk~x
pk-i . (p _ i ) ? il che chiude la nostra dimostrazione. Ad esempio, 0(4) =
0 (2 2) = 2 1 1 = 2 .

Per il calcolo complessivo di 0 per ogni intero positivo N, ci basta allora


osservare Lulteriore propriet:
T e o r e m a 3 .6 .3 Siano m e n due interi positivi primi tra loro. Allora
0 (m n) = 0 (m) 0 (n).
D im o s t r a z i o n e . Dobbiamo contare il numero degli interi positivi a < m
n primi con m n. Osserviamo che, siccome m e n sono primi tra loro, la
condizione (a, m n) = 1 equivale a (a, m) = 1, (a, n) = 1. Distribuiamo gli
interi positivi a < m n su m righe e n colonne nel modo che segue:
/ 1 ra + 1 km + 1 (n 1 ) m + 1 \
2 m+ 2 km + 2 (n 1 ) m + 2

r m+r km + r (n 1 ) m + r

Vm 2m (k + 1 ) m n m /
Sia 1 < r < m. Per ogni k < n, km + r ha lo stesso massimo comune divisore
di r con m. Dunque tutti gli elementi della riga r-ma sono primi con m se lo
r, mentre nessuno lo se r non lo . Ci interessa ovviamente il primo caso: le
righe coinvolte sono 0 (m), tante quanti gli interi positivi r < m primi con m.
Ci domandiamo quanti elementi in ognuna di queste righe sono anche primi
con n. Osserviamo che per k , k1 naturali < n, km + r = k'm + r (modn) se
e solo se n divide la differenza (km + r) (k'm + r) = (k k') m; daltra
parte n e primo con m, perci n divide (k k') m se e solo se n divide k k'
e quindi k k! (infatti, 0 < k, k! < n). In altre parole, gli elementi della riga
r-ma descrivono al variare del naturale k < n tutte le possibili classi di resti
modulo n. Ma allora quelli tra loro che sono primi con n sono esattamente
0(n). In conclusione
62 3 Potenze, Radici e Logaritm i

0 (ra) il numero delle righe su cui ci sono elementi primi con m (e


conseguentemente tutti gli elementi sono primi con m),
0 (n) il numero degli elementi primi anche con n su ciascuna di queste
righe.
Quindi 0(ra n) = 0(ra) 0(n).
Come gi anticipato, possiamo combinare il teorema appena dimostrato e le
osservazioni che lo precedono per ottenere un algoritmo di calcolo di 0. Infatti,
dato un intero N > 2, decomponiamo N nel prodotto di potenze di fattori
primi distinti (e dunque primi tra loro)

N = ~[[pki = P k0 - . . . - P ktt ;
i<t

applicando il teorema precedente otteniamo

<j>(N)=l[<t>(pki)
i<t

e finalmente dallosservazione 3 di 3.6.2 concludiamo

4>(N) = I R t - 1 (Pi - !)
i<t

Ad esempio, da 12 = 22 3 si deduce 0(12) = 0( 2 2) 0(3) = 2 - 2 = 4. Allo


stesso modo si vede 0(6) = 2. Va tuttavia sottolineato che Palgoritmo appena
proposto fa esplicito riferimento alla decomposizione in fattori primi di N ;
dunque non pu garantire una accettabile efficienza in assenza di procedimenti
rapidi di fattorizzazione.
E s e r c iz io 3 .6 .4 Per quali valori di N (j>(N) pari? Divisibile per 3? Divisibile
per un assegnato primo p?
Unaltra importante propriet della 0 di Eulero la seguente:
Per ogni intero positivo N, N = Y^d\N 0(^) (equivalente-
T e o r e m a 3 .6 .5
mente, N = Y jd\N v^ c^ e al variare di d anche ^ descrive i divisori
di N).
Ad esempio, i divisori di 12 sono 1 , 2 , 3, 4, 6 e 12 ed hanno come immagine in
0 1, 1, 2, 2, 2 e 4 rispettivamente; si vede facilmente che la somma di questi
valori proprio 1 2 .
D im o s t r a z i o n e . NeHinsieme dei naturali compresi tra 1 e iV definiamo
la seguente relazione binaria per 1 < a, b < N, a ~ b se e solo se
(a, N) = (6 , N). E facile verificare che ~ una relazione di equivalenza,
che ogni elemento a nella stessa classe di equivalenza del suo massimo co
mune divisore con N e che divisori distinti di N stanno in classi distinte: in
3.6 La funzione 0 e il Teorem a di Eulero 63

altre parole, c una classe di equivalenza in ~ per ogni divisore d di N, e


tale classe composta da tutti gli elementi a compresi tra 1 e iV che hanno
massimo comune divisore d con N. Ci chiediamo quanti sono questi elementi
a (per ogni dato d). Osserviamo allora che, per 1 < a < N, (a, N) = d se e
solo se d divide a e (^, = 1. Ma questultima condizione determina com
plessivamente <K^r) valori distinti per ^ e quindi per a. Ne segue che gli N
elementi tra l e i V sono suddivisi in classi di equivalenza, una per ogni divisore
d di N, e che ogni classe contiene elementi. Dunque N = <K~)r)-

La funzione (j) di Eulero permette la generalizzazione del Piccolo Teorema di


Fermat promessa allinizio del paragrafo.
T e o r e m a 3 .6 .6 ( E u le r o ) Sia N un intero positivo. Allora, per ogni intero
a primo con N , = 1 (m odN ).
Si noti che, se N primo, allora <j)(N) = N 1 e dunque in questo caso
particolare il Teorema di Eulero afferma che, per ogni a primo con iV, aN_1 =
1 (modN) ribadendo cos quanto stabilito dal Piccolo Teorema di Fermat. In
questo senso il teorema di Eulero generalizza quello di Fermat ad arbitrari
interi N > 2.
D im o s t r a z i o n e . Siano i, . .., i naturali primi con N tra 1 e N. In
particolare &i, . .., sono a 2 a 2 incongrui modulo N. Supponiamo a
primo con N. Allora i prodotti a&i, . .., a b sono anchessi primi con N
ed inoltre rimangono a 2 a 2 incongrui modulo N. Quindi a&i, . .., ab
rappresentano tutte le <j)(N) classi di resti modulo N di interi primi con N.
In particolare, per ogni i 1, . .., 0(iV), esiste un unico j 1, . .., <j)(N) per
cui bi = abj (modN). Moltiplicando al variare di i (e quindi di j) otteniamo
H N) 4>(N) 4>(N)
n
i=i
^ =
j=i
n (i ) = a<t>{N) n ^ n).
j=i
^

Ricordando che i bi sono primi con N, si moltiplica per il prodotto dei loro
inversi modulo N e si ottiene, come richiesto,
t^ (iv) = 1 (modN).

Si noti che, come gi il Piccolo Teorema di Fermat nel caso di N primo,
cos anche il teorema di Eulero permette il calcolo dellinverso modulo un N
arbitrario di interi a primi con N e dunque invertibili modulo N. Tale inverso
eguaglia infatti la classe modulo N di a ^ N^~l . Ma il suo calcolo per questa via
consigliabile solo se disponiamo di procedimenti che computino velocemente
la 0 , oltre alle potenze e alle divisioni, ed da rilevare che non conosciamo
ancora algoritmi rapidi per la (j). Dunque il riferimento alla procedura basata
sullalgoritmo euclideo della divisioni successive rimane preferibile.
64 3 Potenze, Radici e Logaritm i

3.7 C am p i fin iti

Prima di proseguire, abbiamo bisogno di richiamare qualche fatto sui campi


finiti, quale si pu desumere da un corso elementare di Algebra. Tra i campi
finiti ci sono, come abbiamo visto poche pagine fa, i campi Z p al variare di
p tra i primi. Ma adesso vogliamo ricordare come si descrivono t u t t i i campi
finiti e sottolineare alcune delle loro propriet. Ecco intanto il teorema che li
classifica.
T e o r e m a 3 .7 .1 P e r q in te r o p o s i t i v o , c' un cam po fin i to F con q e le m e n t i
se e solo se q la p o t e n z a di un p r i m o . In o ltre due c a m p i f in i t i con lo s te s s o
n u m e r o di e l e m e n t i so n o tra loro iso m orfi.

Dunque, per ogni q potenza di primo, esiste a meno di isomorfismi un unico


campo di q elementi, che possiamo conseguentemente denotare Fq. Ad esem
pio, per q primo, Fq coincide (a meno di isomorfismi) con Z q. Accenniamo
adesso brevemente alla dimostrazione del teorema. Maggiori dettagli possono
trovarsi, come gi detto, nei manuali di Algebra.
D im o s t r a z i o n e . (Cenni) Sia F un campo finito, e sia q il numero dei suoi
elementi; Of e lj? denotino poi rispettivamente lelemento nullo e lelemento
unit di F . La prima considerazione da fare riguarda la caratteristica di F
c a r F, che non pu essere 0 (altrimenti F ammette come sottocampo il campo
razionale ed dunque infinito), e quindi un primo p. In altre parole, il
sottocampo minimo di F proprio Z p (a meno di isomorfismi). F , allora,
uno spazio vettoriale su Zp, finito e dunque di dimensione finita m (con m
intero positivo). Ne consegue che il numero q degli elementi di F coincide con
la potenza p m di p
q = p m
Infatti ogni elemento di F si scrive in modo unico come combinazione lineare
a coefficienti in Z p degli m elementi di una base di F su Zp, il che stabilisce
appunto in p m la cardinalit complessiva di F .
Consideriamo adesso il gruppo moltiplicativo F * degli elementi ^ Of di F .
Ovviamente, F * ha cardinalit q 1. Quindi, per la teoria elementare dei
gruppi, e segnatamente per il teorema di Lagrange, ogni elemento a e F *
soddisfa
a q~ x 1f ,

da cui si deduce
aq = a,
uguaglianza che soddisfatta anche da Oi?: quindi a q a per ogni a E F (tra
laltro, si pu osservare che, nel caso F = Zp, riscopriamo per questa via il
Piccolo Teorema di Fermat). Consideriamo allora il polinomio x q x E Z p [x\:
ha grado q ed i q elementi distinti di F sono sue radici. Dunque F proprio
costituito dalle radici di x q x, e x q x si decompone in fattori lineari in F [x \
3.7 Cam pi finiti 65

x q x = J J (x a);
aeF
come si usa dire in termini ufficiali, F il campo di riducibilit completa di
x q x (il minimo ampliamento di 7LV in cui il polinomio x q x si decompone
in fattori di primo grado).
Viceversa, consideriamo un primo p, un intero positivo m eia potenza q = pm
di p; ci domandiamo se esiste un campo F con q elementi. Per cercare di
costruirlo, partiamo dal campo Z p con p elementi e dal polinomio x q x. E un
fatto relativamente elementare di Algebra che, a meno di isomorfismi (identici
su Zp), esiste uno ed un solo campo che amplia Zp, decompone x q x in
fattori lineari ed minimo rispetto a queste condizioni (il campo di riducibilit
completa di x q x su Zp, appunto): indichiamolo con K (e denotiamo con
Or e I r i suoi elementi nullo e unitario). Notiamo che x q x ha derivata
q x q~ l I r = I r perch stiamo lavorando in caratteristica p (e dunque q
vale 0). Conseguentemente x q x non ha radici multiple (perch le eventuali
radici multiple dovrebbero annullare anche la derivata I r ). Ne consegue che
le radici di x q x in K sono tutte semplici, e dunque sono complessivamente
q. Consideriamo a questo punto

F = {a e K : a q = a}.

F un sottocampo di K perch include 0k = 0q K e 1k = 1# ed chiuso per


, e inverso: ricordando che lavoriamo in caratteristica p, si ha infatti, per
a, b in F ,
( a b ) q = a q b q, (a b )q = a q bq

e, per a ^ 0^ ,
(a~1)q = (ag) _1 = a " 1.
Inoltre F ha esattamente q elementi (le q radici distinte di x q x, come gi
osservato). Dunque F il campo cercato (di pi F coincide proprio con K ) .
In conclusione:
si trova un campo con q elementi se e solo se q la potenza pm di un primo
P\
un campo con q = pm elementi amplia Zp ed il campo di riducibilit del
polinomio x q x su Zp: come tale, unico a meno di isomorfismi.

E s e m p i 3 .7 .2

1. Per q = p primo, gi sappiamo dal Piccolo Teorema di Fermat che tutti


gli elementi di Zp soddisfano il polinomio x p x in Z p.
2. Il campo F 9 con 9 = 32 elementi estende Z 3 con tutte e sole le radici
di x 9 x . Daltra parte Fg si pu ottenere ampliando direttamente Z 3
con una radice v del polinomio irriducibile x 2 x 1 E Z 3[x]. Infatti
lampliamento Z 3(u) include tutti e soli gli elementi della forma ao + a\v
66 3 Potenze, Radici e Logaritm i

con ao, ai G Z3, e ognuno di essi ha ununica rappresentazione di questo


tipo. Si raggiungono cos 9 elementi distinti, e si esauriscono i 9 posti a
disposizione in F 9. Addizione e moltiplicazione di F 9 = Z 3(i?) si descrivono
facilmente facendo riferimento a questa rappresentazione. Infatti la somma
si calcola componente per componente,

( a o + a\v) + (&o + b\v) = ( a o + &o) + ( a i + b\)v,

e il prodotto si ottiene sostanzialmente ricordando che v2 = v + 1 : dunque


V 4 = (v + l ) 2 = V 2 + 2v + 1 = 3v + 2 = 2, V 8 = 22 = 1, v9 = v,
e cos via. Si conferma poi che ogni elemento di Z 3(i?) annulla il polinomio
x 9 x. Infatti, per ogni scelta di ao, ai in Z3, ricordando che stiamo
lavorando modulo 3 e che per il Piccolo Teorema di Fermat a9 = a* per
z = 0 , 1 , si controlla facilmente
(ao + a ii?)9 = al + a \v 9 = ao + aii?.

Vogliamo adesso mettere in evidenza una propriet del gruppo moltiplicativo


F * di un campo finito F che ci sar spesso utile nel seguito: il fatto che tutti
i suoi elementi si possano ottenere come potenze di uno opportuno di loro.
Verifichiamolo anzitutto con qualche esempio particolare.
E s e m p i 3 .7 .3

1. Consideriamo Fig = Z 19. I diciotto elementi non nulli di F 19 coincido


no con le potenze di 2. Infatti 2 primo con 19 e dal Piccolo Teore
ma di Fermat segue anzitutto 218 = 1 (mod 19) e dunque che il periodo
moltiplicativo di 2 modulo 19 divide 18. Daltra parte
26 = 7 ^ 1 {mod 19), 29 = -1 ^ 1 {mod 19)
e quindi il periodo di 2 non pu essere un divisore proprio di 18, e quindi
deve coincidere con 18: in altre parole, ci sono 18 potenze distinte di 2
modulo 19, ed esse esauriscono i 18 elementi non nulli di F 19 .
2 . Consideriamo adesso il campo F 9 appena studiato negli Esempi 3.7.2. Si
vede facilmente che v genera tutti gli elementi non nulli di F 9 come sue
potenze. Infatti abbiamo gi osservato
v4 = 2 , v8 = 1 ,
dunque v ha periodo 8 nel gruppo moltiplicativo di F 9.
Adesso enunciamo con precisione e dimostriamo la propriet appena confer
mata dagli esempi.
Un sottogruppo finito G del gruppo moltiplicativo F * di un
T e o r e m a 3 .7 .4
campo F sempre ciclico. In particolare, se F finito, allora F* ciclico.
3.7 Cam pi finiti 67

D im o s t r a z i o n e . Sia N il numero degli elementi di G. Allora ogni elemento


di G ha periodo che divide N. Per ogni divisore d di N, sia 0(d) il numero
degli elementi di G di periodo esattamente d. Segue che

' M d )= N ,
d\N

eguaglianza che richiama la propriet della 0 di Eulero affermata dal Teorema


3.6.5, e cio
Y J m = N.
d\N

Confrontiamo allora 0(d) e 0(d) per ogni d. Sia 0(d) > 0 e sia g un elemento
di G di periodo d. Consideriamo le potenze distinte 1 = g, g, ..., gd~x di
g: tutte soddisfano in F il polinomio x d - 1 . Daltra parte nel campo F un
polinomio di grado d, come x d 1 , non pu avere pi di d radici. Quindi le
d potenze distinte di g esauriscono tutte le possibili radici in F di x d 1,
cio tutti gli elementi di F che hanno periodo divisibile per d. In particolare,
gli elementi di F * di periodo d sono tra queste potenze, e per la precisione
vanno a coincidere con quelle della forma gk per (fc, d) = 1 (come il lettore
pu controllare per e s e r c iz io ) . In conclusione gli elementi di periodo d in F *
sono tanti quanti i numeri compresi tra l e d e primi con d, cio 0(d). Tutti
questi elementi, in quanto potenze di g, sono in G e quindi esauriscono gli
elementi di periodo d di G: ne segue

tp{d) = 4>(d).

Ricapitolando si ha
=n =
d\N d\N

0(d) = ^(d), per ogni d | N con 0(d) ^ 0;


ma questo chiaramente implica

0(d) 0 per ogni d | N.

Cos G ha elementi di periodo d per ogni d. In particolare 0(iV) > 0 e G ha


elementi di periodo N, capaci cio di generarlo: quindi G ciclico.
Un risultato analogo al precedente, ugualmente utile nel seguito,
Per ogni primo p, il gruppo moltiplicativo degli elementi
T e o r e m a 3 .7 .5
invertibili di Z p2 ciclico.
Lasciamo la dimostrazione al lettore per e s e r c iz io , richiamando ancora la sua
attenzione sul fatto che lanello Z p2 delle classi di resti modulo p 2 n o n u n
c a m p o , meno che mai coincide con F p 2 (suggerimento: per p = 2 , la tesi
ovvia perch il gruppo moltiplicativo degli elementi invertibili di Z 4 ha ordine
68 3 Potenze, Radici e Logaritm i

2. Per p > 2, si consideri un intero g che genera Z* modulo p\ si controlli che


g oppure (p + 1 ) g genera modulo p 2 il gruppo moltiplicativo degli elementi
invertibili di Zp2).

E s e r c iz io . Si provi che il gruppo moltiplicativo degli elementi invertibili di


Z 8 = Z2s non ciclico (suggerimento: gli elementi del gruppo sono 1, 3, 5, 7 e
l 2 = 32 = 52 = 72 = 1 (mod 8)).

3.8 L ogaritm i d iscreti

Sia F un campo finito (di cardinalit q). Si detto che, per unopportuna
scelta di g E F*, gli elementi di F * vanno a coincidere con le potenze di g:
per ogni a E E*, esiste x E Z tale che a = gx;

e si pu anzi assumere 0 < x < q 1 , x infatti definito a meno di congruenze


modulo il periodo di g, e cio modulo la cardinalit di F*.
Si dice in questo caso che x il l o g a r i t m o d i s c r e t o di a in base g. Infatti
la situazione richiama quella degli usuali logaritmi dei numeri reali positivi
(rispetto a qualche base reale positiva g ^ 1 ): anche nel nostro ambito x
lesponente da assegnare a g per ottenere a. Laggettivo discreto sta a
sottolineare solo il contesto diverso in cui stiamo adesso lavorando, quello
degli interi o comunque dei campi finiti.
E s e m p i 3 .8 .1

1. Sia F = Z i9. Sappiamo gi dallEsempio 1 in 3.7.3 che g 2 genera F*.


Sia poi a 7. Allora il logaritmo discreto di a = 7 in base 2 6 , infatti
26 = 7 (m o d 19).
2 . Sia ora F = F 9 il campo introdotto nellEsempio 2 di 3.7.2 come amplia
mento di Z 3 tramite una radice v del polinomio irriducibile x 2 x 1 E
Z 3[x]. Sappiamo gi che v genera F*. Inoltre il logaritmo discreto di 1
in base v 4, infatti i ?4 = 2 = 1 in F.
Fissati F e g, si pone in generale il problema di calcolare, per ogni a E F*,
il logaritmo discreto di a in base g. Procedere per tentativi, calcolare cio g x
per ogni x finch non si trova a, procedimento elementare che pu richiedere
tempi proibitivi quando q grande. Daltra parte bisogna prendere atto che
non si conoscono attualmente metodi ragionevolmente rapidi di calcolo del
logaritmo discreto. Avremo modo di riparlarne.

3.9 I sim b o li di L egend re e di Jacob i

Torniamo al problema di identificare i quadrati e est rame le radici. Nei campi


infiniti pi familiari, quello razionale Q, o quello reale E, o quello complesso
3.9 I simboli di Legendre e di Jacobi 69

C, la situazione che si registra assai disomogenea. In tutti i casi 0 un


quadrato (solo di se stesso). Ma per valori a / 0 ciascuno dei tre campi ha
sua specifiche propriet:
in C ogni a / 0 un quadrato e ammette esattamente due radici,
in E la cosa accade se e solo se a > 0,
in Q, finalmente, la situazione assai pi ingarbugliata.
Vediamo allora che cosa succede modulo un primo p, e cio nel campo finito
Zp. Il caso p = 2 si tratta facilmente: ambedue le classi O2 e I 2 sono quadrati
(di se stesse).
Dunque supponiamo p dispari. 0P ancora un quadrato (di se stesso e solo di
se stesso). Escludiamo dunque 0P, e quindi tutti gli interi a = 0 (modp), dalle
nostre indagini e consideriamo valori di a primi con p.
D e f in iz io n e 3 .9 .1 Un in te r o a p r i m o con p si dice

un r e s id u o q u a d r a t i c o m o d u lo p se a un q u ad ra to m od u lo p, cio se e s iste
un in te r o b tale che a = b2 ( m o d p ),
un n o n r e s id u o q u a d r a t i c o m o d u lo p a ltr im e n ti.

Notiamo subito che la propriet di essere residuo o non residuo quadratico


modulo p si trasmette da a a tutti gli interi congrui ad a modulo p: dipende
quindi dalla classe di congruenza a p e non direttamente da a. Ricordiamo poi
che un residuo quadratico ha esattamente due radici quadrate modulo p.
E s e m p i 3 .9 .2

1. Sia p = 3. Si nota l 2 = 1 ( m o d 3), 22 = 1 ( m o d 3). Segue che 1 residuo


quadratico modulo 3, e 2 non lo . Quindi i 2 elementi non nulli di Z 3 si
suddividono a met: uno ha radice quadrata, uno no.
2 . Consideriamo adesso p = 5. Si verifica l 2 = 42 = 1 (mod 5) e 22 = 32 =
4 (mod 5). Cos 1 e 4 sono residui quadratici modulo 5, 2 e 3 no. Nuova
mente, i 4 elementi non nulli di Z 5 si dividono a met: due ammettono
una radice quadrata, due no.
3. Sia p = 1 1 . Si verifica nuovamente che, tra le dieci classi di resti modulo
1 1 diverse da 0 , ce ne sono 5 che corrispondono a residui quadratici (per
la precisione 1, 4, 9, 16 = 5 (mod 11) e 25 = 3 (mod 11)) e 5 che non
corrispondono a residui quadratici (2 , 6 , 7, 8 , 10).
C un argomento generale che conferma quanto suggerito dai tre esempi pre
cedenti. Consideriamo infatti il campo F = Zp con p primo. Ricordiamo che il
gruppo moltiplicativo F * ciclico, e scegliamo un intero positivo g tale che la
classe gp genera F* modulo p: cos g ha periodo moltiplicativo p 1 modulo p
e gli interi 1 , g, ..., gp~2 determinano tutte le classi non nulle di resti modulo
p. Notiamo allora che, per ogni j < p 1,
g residuo quadratico modulo p se e solo se j pari.
70 3 Potenze, Radici e Logaritm i

Infatti, supponiamo che g sia residuo quadratico modulo p, allora esiste un


naturale i < p 1 per cui g = g 2z (modp). Ricordando che g ha periodo
moltiplicativo p 1 modulo p, deduciamo j = 2i (mod (p 1)). Ma 2i pari,
ed anche p 1 pari, dunque j deve essere pari. Il contrario ovvio.
Si ha dunque, come preannunciato dagli esempi:
T e o r e m a 3 .9 .3 S ia p un p r i m o dispari. A llo r a tra le p 1 cla ssi di re sti
m o du lo p di in t e r i p r i m i con p, c o r r is p o n d o n o a r e sid u i q u a d ra tic i m o du lo
p e
p1
ly ~ no.

Del resto, la propriet si pu provare pi direttamente ricordando che:


ogni intero b (primo o no con p) ha il suo quadrato modulo p,
uno stesso quadrato ammette esattamente due radici quadrate distinte =b
modulo p.
Cos le p 1 classi di congruenza di interi primi con p si ripartiscono modulo
p in coppie con ugual quadrato e determinano quadrati. Quindi abbiamo
a meno di congruenze residui quadratici modulo p, non residui qua
dratici modulo p.
Per ogni intero a, il s i m b o l o d i L e g e n d r e ( ^ ) di a rispetto a p stabilisce a
quale dei casi a corrisponde; infatti si pone:
(^ ) = 0 se p divide a;
(^ ) = 1 se a primo con p e a residuo quadratico modulo p;
{ p ) = ~ 1 se a primo con p ma a un non residuo quadratico modulo
P-
Il nostro obiettivo , allora, quello di calcolare (possibilmente in modo rapido)
il simbolo di Legendre ( | ) per ogni intero a. Una prima utile osservazione
la seguente.
O s s e r v a z io n e 3 .9 .4 Se a e a' sono congrui modulo p, allora ( ^ ) = ( ).
Infatti sappiamo che la propriet di essere residuo o non residuo quadrati
co modulo p, e dunque ( ~ ) , dipendono da a p e non direttamente da a. In
particolare, per ogni a, se r denota il resto della divisione di a per p, allo
ra ( | ) = ( ^ ). Quindi, salvo dividere a per p e sostituirlo con il suo resto,
possiamo sempre assumere 0 < a < p.
Ulteriori propriet del simbolo di Legendre si deducono dal seguente risultato
provato da Eulero.
T e o r e m a 3 .9 .5 ( E u le r o ) S ia p un p r i m o dispari. A l l o r a , p e r ogni in ter o a,
3.9 I simboli di Legendre e di Jacobi 71

D im o s t r a z i o n e . Se p divide a, la tesi ovvia, infatti ( | ) = 0 e a ^ =


0 (modp). Supponiamo allora che a sia primo con p. Per il Piccolo Teorema
di Fermat
(a^~ ) 2 = ap~1 = 1 (modp)
e dunque, visto che p primo, aE?~ = 1 (modp). Ma anche ( ^ ) vale 1 in
questo caso, cos ci basta provare che, per a primo con p,

y~j = 1 ^ a **2 = 1 (modp).

Fissiamo un intero g che genera Z* modulo p. Sia j < p 1 tale che a =


g (modp). Allora si ha che ( ^ ) = 1 se e solo se j pari, condizione che
equivale a dire che p 1 divide j o anche gi'~~ = 1 (modp), cio
a ^ = 1 (modp), come richiesto.
Il teorema di Eulero stabilisce quindi una propriet dei numeri primi che ci
sar utile ricordare. Ma quel che pi ci preme sottolineare adesso sono le sue
conseguenze per il calcolo del simbolo di Legendre.
O s s e r v a z io n e 3 .9 .6 II simbolo di Legendre preserva il prodotto: per ogni
scelta di interi a e b,

l Y G H i r ) -
Infatti dal Teorema di Eulero deduciamo

Q .Q = a -P^ - b ^ =( a- b)1^ = ( ^ ) (modp).

Ma p > 2 e ( ^ ), ( ^ ) e ( y p ) assumono i soli valori 0, 1 e 1. Ne segue,


appunto,

Conseguentemente, per il calcolo del simbolo di Legendre ( y ) di un qualche


intero N > 2, possiamo procedere decomponendo N come prodotto di potenze
di fattori primi distinti
W=IK'
j<t

e poi applicare la precedente osservazione e dedurre

la computazione del simbolo di Legendre si riduce in questo modo al caso in


cui N primo.
72 3 Potenze, Radici e Logaritm i

Se poi N negativo < 2 , possiamo nuovamente applicare POsservazione


3.9.6 per concludere

A questo proposito facile notare:


O s s e r v a z io n i 3 .9 .7

1 . ( ^ ) = 1 perch 1 = l 2.
2. ( y- ) = (1 )^ 2 ; infatti per il teorema di Eulero

= ( - 1 ) ^ (modp)

e tanto ( y- ) quanto (1 ) ^ valgono 1 . Dunque


( y ) = 1 se e solo se pari, e cio p = 1 { m o d 4),
( y- ) = 1 altrimenti, dunque se e solo se p = 3 { m o d 4).
Lalgoritmo ora proposto fa comunque riferimento alla decomposizione di N
nel prodotto dei suoi fattori primi, e dunque risente dei tempi necessari a svol
gere questa operazione. Riduce poi il calcolo di ( y ) al caso in cui N primo
(eventualmente 2). Esaminiamo allora questultimo problema distinguendo se
N 2 (appunto),
N dispari.I
I risultati che otterremo nei due casi ci suggeriranno un criterio di calcolo
del simbolo di Legendre che addirittura prescinde dalla fattorizzazione di N
e lavora in tempo polinomiale rispetto alla lunghezza di N. Ma di questo
parleremo pi tardi. Affrontiamo adesso il caso N = 2 .

T e o r e m a 3 .9 .8 P e r ogni p r i m o d isp a r i p , = ( 1 )^ 8 ^ .

Si osservi che, per p primo dispari, p 1 e p + 1 sono entrambi pari ed esat


tamente uno dei due anche divisibile per 4. Cos p2 1 = {p l){p + 1 )
multiplo di 8 . Il teorema ci dice allora che ( | ) = 1 se e solo se pari, e
cio 16 divide p2 1 = {p 1 ) {p + 1 ), e dunque se e solo se 8 divide p 1
oppure p + 1 (non pu succedere infatti che 4 divida tanto p + 1 che p 1,
altrimenti 4 divide anche la loro differenza, che 2), cio p = 1 { m o d 8).
Ripetiamo:
(| ) = 1 se e solo se p = 1 (mod 8 )
e di conseguenza
( | ) = 1 se e solo se p = 3 { m o d 8).
3.9 I simboli di Legendre e di Jacobi 73

Ad esempio
= -1

perch 3, 5 ^ 1 (mod 8 ), mentre

= 1

visto che 7 = 1 {mod 8 ): del resto, facile confermare con semplici verifiche
dirette che 2 non un quadrato n modulo 3 n modulo 5, mentre lo modulo
7 perch 2 = 9 = 32 {mod 7).
La dimostrazione del Teorema 3.9.8 impegnativa e sar fornita in dettaglio
ai lettori interessati nel prossimo paragrafo.
Invece passiamo qui a considerare il calcolo di ^ j quando N primo dispari.
A questo caso legato un risultato fondamentale, in genere chiamato Legge
di Reciprocit Quadratica. Questa propriet, enunciata da Eulero nel 1783 e
provata in modo incompleto da Legendre nel 1785, fu finalmente dimostrata
da Gauss a 19 anni nel 1796. Anzi, Gauss ne diede nel corso della sua vita 8
dimostrazioni distinte. Essa afferma:
T e o r e m a 3 .9 .9 ( L e g g e d i R e c ip r o c i t Q u a d r a t ic a d i G a u s s ) Siano p
e q due primi dispari tra loro distinti. Allora

Infatti per p ^ q primi dispari, ha senso considerare tanto ( | ) quanto ( ~ ),


e si ha ovviamente ( | ) = ( | ). La Legge di Reciprocit Quadratica ci dice
quando vale =. Per la precisione si ha
( p ) = ( f ) se e solo se p oppure q congruo a 1 modulo 4,
mentre
( ! ) = ( | ) se e solo se sia p che q sono congrui a 3 modulo 4.
Infatti ( ! ) = ( | ) se e solo se lesponente pari e dunque se e solo
se almeno uno dei due fattori E-L o 3L pari, cio appunto se e solo se p 1
oppure q 1 divisibile per 4. Ad esempio

perch 5 = 1 {mod 4), mentre


74 3 Potenze, Radici e Logaritm i

perch 3, 7 ^ 1 (mod4).
I lettori interessati troveranno la dimostrazione del Teorema 3.9.9 nel pros
simo paragrafo. Qui ne discutiamo le conseguenze per il calcolo pratico del
simbolo di Legendre.
Prima per ci conviene allargare il nostro orizzonte introducendo una genera
lizzazione del simbolo di Legendre stesso: il simbolo di Jacobi. Consideriamo
infatti non pi un primo dispari p, ma un qualunque intero dispari n > 2 .
Decomponiamo n nel prodotto di potenze di primi distinti

n = '[ [ P ii
i<r

e definiamo corrispondentemente, per ogni intero N, il simbolo di Jacobi di


N rispetto a n nel modo che segue:

Dunque, per n primo, il simbolo di Jacobi coincide con quello di Legendre.


Vediamo allora un esempio per n composto: si ha

ricordiamo infatti che 2 non residuo quadratico n modulo 3 n modulo 5. Si


noti che 2 non un quadrato neppure modulo 15 (altrimenti lo sarebbe anche
modulo 3 e 5) ed primo con 15, pur tuttavia ( ^ ) = 1.
Dunque il simbolo di Jacobi, pur estendendo quello di Legendre, non ne pre
serva alcune propriet, in particolare non vero che ( ^ ) vale 1 se e solo se
N ( primo con n ed) residuo quadratico modulo n.
Si ha poi, per ogni intero IV, ( ^ ) = 0 se e solo se ( ^ ) = 0 per qualche
divisore primo p di n e dunque se e solo se N divisibile per qualche divisore
primo p di n, quindi, in definitiva, se e solo se N e n non sono primi tra loro.
Consideriamo allora ( ^ ) quando (IV, n) = 1 . E facile verificare che valgono
ancora le seguenti propriet.
O s s e r v a z io n i 3 .9 .1 0 Siano n un numero dispari > 2, a, b due interi primi
con n.
1. Se a e b(modn), allora (^) = (^). In particolare, se b il resto della
divisione di a per n, allora (^) = (^).
2- ( ) ( ) = ( i r)-
Si generalizzano poi la Legge di Reciprocit Quadratica di Gauss e Laltro
teorema che la accompagna. Per la precisione
3.9 I simboli di Legendre e di Jacobi 75

4. per m intero dispari > 2 diverso da n,


/m \ , n -i mi / n \
V
n ) = - i 2 2 \m - J
E s e r c iz io 3 .9 .1 1 II lettore pu provarsi a verificare 1, 2, 3 e 4 sulla base delle
analoghe propriet per n, m primi.
Le precedenti osservazioni ci permettono di elaborare un procedimento di
calcolo rapido del simbolo di Jacobi ( ^ ) e dunque, in particolare, del simbolo
di Legendre. La strategia da seguire consiste dei passi di seguito descritti. Ci
riferiamo alle propriet 1, 2, 3 e 4 appena enunciate.
Per la propriet 1, salvo dividere N per n e sostituire N con il suo resto
in questa divisione, possiamo supporre N < n.
Sfruttando le propriet 2 e 3 ci si riduce al caso in cui N dispari. Infatti si
estrae anzitutto la massima potenza di 2 che divide N ottenendo N = 2hm
con m dispari; usando la propriet 2 , si scrive (qf) = (q) ( ^ ) ; usando la
3, si calcola poi { ^ )h (per h dispari, perch per h pari { ^ )h forzatamente
1 ); ci si riporta cos a ( ^ ) con m dispari.
A questo punto, con la Legge di Reciprocit Quadratica (cio con 4),
riduciamo il calcolo di ( ^ ) a quello di ( ^ ), dove n > m (e dunque si pu
dividere n per m ricominciando il procedimento con valori pi bassi).
Illustriamo Lalgoritmo appena descritto con un esempio.
E s e m p io 3 .9 .1 2 Ammettiamo di dover calcolare ( q ^ f ) Anzitutto si so
stituisce 1123 con il suo resto nella divisione per 151, cio 6 6 , e si passa a
calcolare

Siccome 151 = 1 (mod 8 ), si ha dalla propriet 3 che (yfp) = 1, dunque ci si


riduce al calcolo di (^y ). Daltra parte

K M !)
perch 33 = 1 (mod 4). Passando ai resti delle opportune divisioni si ottiene
prima (q), c^e eguaglia ( ||) sempre perch 33 = 1 (mod4), e successivamen-
(il) = ( ) (il))' ( ) = Perch 19 ^ 1 (modS), e quindi ci si
riporta a

perch n 7 n 19 sono = 1 (mod 4). Di nuovo passando al resto nella divisione


per 7 e procedendo poi come sopra, si conclude
76 3 Potenze, Radici e Logaritm i

Il metodo descritto evita cos il ricorso obbligato alla fattorizzazione di N per


calcolare ( ^ ). In particolare, estrarre al secondo passo la massima potenza
di 2 che divide N assai pi semplice che decomporre N in tutti i suoi fattori
primi. Anzi, si pu verificare che il procedimento appena illustrato lavora in
un numero di passi 0 ( l o g 2 iV), e dunque in tempo polinomiale (= rapido)
rispetto alla lunghezza delhinput N.

3.10 La L egge di R e c ip r o c it Q u ad ra tica di G auss

Come promesso, proviamo qui i due teoremi fondamentali enunciati nello


scorso paragrafo, e cio:

a) se p un primo dispari, ;
b) la Legge di Reciprocit Quadratica di Gauss: se p ^ q sono due primi
dispari, ( | ) =

Il lettore che non interessato ai loro dettagli pu procedere direttamente al


paragrafo successivo.
Ci servono alcune ulteriori premesse sui campi finiti.
In un campo finito F (e pi in generale in ogni campo) ci sono sempre 2 radici
quadrate dellunit 1^, che coincidono se e solo se F estende Z2. Infatti un
polinomio di grado 2, come x 2 lp, ammette al massimo 2 radici in F, e
daltra parte ( i l ^ ) 2 = 1 ^; in caratteristica 2 , poi, x 2 lp = (x 1 f )2
Allo stesso modo, per ogni r > 2 , le radici r-me di 1 ^ in F, e cio le radici
del polinomio x r 1^, sono al pi r e includono 1^. Inoltre si verifica fa
cilmente che queste radici formano un sottogruppo del gruppo moltiplicativo
F*: infatti, per a, b e F*, a r br \p implica (a b)r = a r br = 1^. Il
Teorema 3.7.4 ci dice che questo sottogruppo , come F*, ciclico, c dunque
un suo elemento opportuno che genera tutti gli altri come sue potenze.
Ci interessa comunque sapere per quali valori di r ci sono e s a t t a m e n t e r
radici r-me dellunit in F. A questo proposito osserviamo anzitutto che si
ha:
P r o p o s iz io n e 3 .1 0 .1 S ia d = (r, |F| 1 ). A llo r a F c o n tie n e e s a t t a m e n t e d
r a d ic i r - m e d eW u n it .

D im o s t r a z i o n e . Sia q il numero degli elementi di F; ricordiamo che q = p m


una potenza di un primo p . Sia poi g un generatore del gruppo ciclico F*.
Allora gli elementi di F* sono esattamente le potenze g di g per 0 < j < q
e g ha periodo moltiplicativo q 1 . Ci chiediamo quali di queste potenze g
sono radici r-me dellunit: a questo proposito osserviamo che, per j < q ,
g radice r-ma dellunit (e cio g^r = 1 f )
se e solo se
3.10 La Legge di R eciprocit Q uad ratica di Gauss 77

q 1 divide jr (in altre parole jr = 0 (mod (q 1 )).


Daltra parte, posto d = (r, q 1),

jr = 0 (mod (q 1 )) se e solo se j- 0 (mod


Jd
Siccome ^ e sono primi tra loro, si deduce che, per 0 < j < q,
g radice r-ma dellunit se e solo se j multiplo di p p ,
dunque per d valori di j. In conclusione, ci sono d = (r, q 1) radici r-me
dellunit in F.
Siano \F\ = 1 (modr). Allora F contiene esattamente r
C o r o lla r io 3 .1 0 .2
radici r-me deWunit.
D im o s t r a z i o n e . Quando |F| = 1 (modr), cio quando r divide |F| 1 , si ha
d = r.

E s e m p i 3 .1 0 .3

1. Per r 2, ritroviamo la conferma che un campo che non estende Z 2, e


quindi ha un numero dispari di elementi, contiene esattamente 2 radici
quadrate dellunit.
2 . Sia \F\ = pr~x con r primo e (p, r) = 1. Dal Piccolo Teorema di Fermat
\F\ = 1 (modr). Dal precedente corollario, F ha r radici r-me dellunit.
Supponiamo adesso che F abbia esattamente r radici r-me dellunit. Chia
meremo in questo caso radice primitiva r-ma delVunit in F un generatore
del loro gruppo, cio una radice r-ma dellunit che ha periodo proprio r, cio
ancora un elemento 77 E F tale che le radici r-me di 1^ in F sono esattamente
1 / ^ / >2 /
Passiamo finalmente alla prova di a) e b).
D im o s t r a z i o n e d i a ) . Siccome p2 = 1 (mod 8 ), segue dal Corollario 3.10.2
che che il campo F = F p 2 contiene esattamente 8 radici ottave dellunit.
Fissiamo allora una radice primitiva ottava 77 dellunit in F: dunque t?4 una
radice quadrata dellunit ed diversa da 1 (confondiamo qui per semplicit
di notazione gli interi e le loro classi di resti modulo p, che sono elementi di
F). Ne segue ?74 = 1 (da cui rf = 77, rf = 77s, g7 = 77s). Poniamo
n2_^
ora, per ogni naturale n , / ( ti) = 0 se n pari, / ( ti) = (l ) - s- altrimenti
(notiamo che nel secondo caso, quando n dispari, n2 1 = (n 1 ) (n + 1 )
certamente divisibile per 8 , come gi abbiamo avuto modo di osservare a
proposito di p nello scorso paragrafo, appena dopo lenunciato del Teorema
3.9.8). facile vedere che, ad esempio / ( 1) = /(7) = 1, /(3) = /(5) = 1.
Osserviamo poi che, per ogni intero j,

f(j) = f ( p) (3.1)
78 3 Potenze, Radici e Logaritm i

Q u e s t o c h i a r o se j p a r i e q u in d i a n c h e p-j p a r i. A m m e t t i a m o a ll o r a c h e
j s ia d i s p a r i , c o s c h e

- p82+p2- i
(-i)
-1
8
= ( - 1) ( - 1 )?
j z 1 2
c h e c o in c id e c o n ( 1) ~ ~ c io c o n f (j ) p erch p d is p a ri e ( l ) p = 1.
V o g lia m o p r o v a r e f(p) = ( | ) . P o n i a m o in F

7= X
0<i<8

( c o n t i n u i a m o a d id e n t if ic a r e g li in t e r i / ( j ) e le lo r o c la s s i m o d u lo p in F).
U s a n d o le s t i m e g i f a t t e p e r rf e v i a d ic e n d o , si o t t i e n e

7 = r] rf rf + rf = 2(77 77 s ) = 2 7 7 ( 1 rj2)

(in particolare 7 7^ 0 perch 77 = 0 , 1 ) e ancora

72 = 4(/72 - 2 /y4 + 776) = 4(/72 + 2 - r?) = 8 ,

7 ' = (7 2) ^ -7 = 8 ^ 7 = ( 7 = ( 7 7 = g ) 7

(la terzultima uguaglianza usa il teorema di Eulero 3.9.5 modulo 79, lultima
lovvia osservazione che ( | ) =1). Daltra parte in F (dunque modulo p)

ip= x / ( i ) V p-
0 < j< 8

Osserviamo che f ( j ) p = /( j) per ogni j. Applicando la (3.1) otteniamo allora

7p = X = X f(p)f(p)r3P = f(p ) X f(ip )rr>p-


0<j<8 0<j<8 0<j<8

Ma, al variare di j, anche j p descrive le 8 classi di resti modulo 8 , anzi, per


j = j ' p (mod 8 ), si ha 77J = 77J p perch 77s = 1. Ne segue che anche la somma
S o < j < 8 f(Jp)rfp coincide con 7 e quindi

Y = f(p )i-

Confrontando le due espressioni ricavate per 7 P otteniamo f(p )7 = ( | ) 7 ;


siccome 7 7^ 0, si ha dunque /(p) = ( | ) in F (cio modulo p). Ma p > 2 e
tanto f(p) quanto ( | ) valgono 0 o 1 in Z. Perci /(p) = ( | ) anche in Z.

3.10 La Legge di R eciprocit Q uad ratica di Gauss 79

D im o s t r a z i o n e d i b ) . p ha periodo finito modulo g, fissiamo dunque un


intero positivo m tale che pm = 1 (modq). Allora per il Corollario 3.10.2
F = Fpm contiene esattamente q radici g-me delhunit, e possiamo fissare
una radice primitiva g-ma 77 di 1 in F (continuiamo a confondere i numeri
interi e le loro classi di resti modulo p, che fanno parte di F ). Poniamo in F

7f .
7 = E
0<j<p

Vogliamo provare che in F

(3.2)

Assumiamo provvisoriamente (3.2) vera, e mostriamo come dedurne la con


clusione della dimostrazione. Da (3.2) otteniamo in F
n / 2\ P-1 // vP-1 / . g- 1 P- 1 P- 1
7 = (7 ) 2 7 = ( ( - 1) 2 q) 2 7 = ( - 1 ) 2 2 q 2 7

che, per il Teorema 3.9.5 di Eulero prima dimostrato, eguaglia

( - n * ^ (5) 7 .

Dunque
y = (j) 7 .

Daltra parte

l p - (Eo<j<p ( i ) v j - Eo<j<p (q)


= E 0<j<P ( ? ) vjp = E 0<j<P ( i ) n
=<k, () (f)2 =Eo<i<p(?) (?) x=
= (5 ) =<,<, ( ? ) 1"
(il lettore pu controllare i dettagli per e s e r c iz io ) . Ora, per 0 < j < g, anche
jp descrive tutte le possibili classi di resti modulo g perch p diverso da g
e quindi primo con g. Inoltre, se jp coincide con j' < q modulo g, allora
i f ) = ( ^ ) e Tlj p = Vj ' Quindi E o < j <P ( 3~ f ) coincide con 7 e

Confrontando le due espressioni ottenute per 7 P, si ha in F


80 3 Potenze, Radici e Logaritm i

da cui, dividendo per 7 (che diverso da 0 perch j 2 q e q primo con


p), si ricava in F
P p-2 1
q
Siccome gli elementi coinvolti valgono 1 in Z, procedendo come alla fine del
teorema precedente possiamo dedurne

P p-2 1 q
(-i)i
q p
anche in Z, come volevamo dimostrare.
Ci resta comunque da controllare la 3.2

72 = (-1 )^q .
A tal fine, cominciamo con losservare che 7 = Y^o<j<p { q ) r f 81 Pu anche
scrivere Y^o<j<p { q ) r f perch ( 7 ) = 0 . Anzi, visto che al variare di j da 1
a p - 1 anche j descrive tutte le classi non nulle di resti modulo p, possiamo
esprimere 7 anche nella forma 7 = J2 0<k<p ( 7 7 ) V~k e dunque scrivere

72 = 7 7 = ( E o<j<p (0 vi) (E o <k <p ( - r ) v k)


j - k _
Eo<J, k<p ([ = * ) * - * = ( ? ) Z o <j, * < ( * )
( nj-k
= ( - i ) ^ E 0< j , k < p \ q ) I
Notiamo che, siccome j primo con p, al variare di k da 1 a p 1, anche j k
percorre tutte le classi di resto non nulle modulo p. Possiamo quindi operare
un cambio di variabile da k a j k e conseguentemente affermare che 7 eguaglia
anche

- * = ( - 1) ^ T)
^ E ( 7 1 7
0< j , k < p ' 0 <j, k < p

(perch ( ^ ) ( 7 ) quando j si trova tra 1 e q 1 e quindi primo con


q). Cos

e m e n
0< k < p 0<j<q

Adesso notiamo che lindice dimenticato j 0 soddisfa = 1 ; di conse


guenza la somma ck<P ( \ ) = Z)o<k<P ( \ ) coincide con 0 perch
tra 1 , ..., q 1 ci sono tanti residui quadratici modulo q quanti non residui
quadratici modulo q. Cos possiamo includere lindice j 0 nella precedente
espressione di j 2 e scrivere

72 =( - d ^ e m e *
0< k < p 0<j<q
3.11 A ncora Radici Q uadrate 81

Per k = 1, YsOKjKq1! ^ 1 k) = Q- Per & ^ 1, Z)o<;/<</^ ^ la somma s


delle q potenze distinte di ^ A - k ) che radice primitiva q-ma delhunit in
F (e s e r c iz io : perch?); ma tale somma zero, infatti s rj^A-k) = s, quindi
5 = 0 visto che rjiA-k) ^ 1 . Ma allora

72 = ( - 1 ) ^ Q ) ? = ( - 1 ) ^ ?

che quanto volevamo dimostrare.

3.11 A n cora R a d ici Q u ad rate

Sia p un primo dispari. I precedenti paragrafi ci hanno fornito un algoritmo


per decidere rapidamente se un intero a primo con p o no un residuo quadra
tico modulo p, cio soddisfa = 1. In questo caso, resta comunque aperto
il problema di determinare le radici quadrate di a modulo p (questione gi
introdotta e discussa nello scorso paragrafo 3.3). Per p = 1 (mod4), il proble
ma non semplice da risolvere; invece, per p = 3 (mod 4) la risposta quasi
immediata. Si ha infatti:
Siano p un primo dispari, p = 3 = 1 (mod4), a un
P r o p o s iz io n e 3 .1 1 .1
residuo quadratico modulo p. Allora le radici quadrate di a modulo p sono
P+1
a 4 .

Cos le radici quadrate di a si calcolano agevolmente come potenze di a.


D im o s t r a z i o n e . Sia b un intero tale che a = b2 (modp). Ovviamente b
primo con p. Dal Piccolo Teorema di Fermat si ha bv~x = 1 (modp), dunque
1 = (b2)E2~ = a ^~ (modp). Moltiplicando i membri di questa congruenza
per a otteniamo a = a~2Jl+1 = a2^1 (modp). M ap = 1 (mod4), dunque -
pari, quindi il doppio dellintero Segue (a^ ~ ) 2 = a ^ - = a (modp).
Di conseguenza vale anche (a ^ ~ ) 2 = a (modp).
Una conseguenza notevole della precedente proposizione :
C o r o lla r io 3 .1 1 .2 Siano p un primo = 3 (mod4), a un intero primo con p.
Allora a un residuo quadratico modulo p se e solo se a un non residuo
quadratico modulo p.

D im o s t r a z i o n e . a~^~ e (a)~*~ hanno lo stesso quadrato.


E s e m p i 3 .1 1 .3

1. Sia p = 3, allora 1 residuo quadratico modulo 3 , - 1 no.


2. Sia p = 7 = 3 (mod 4). I residui quadratici modulo 7 sono 1 , 2 , 4, i non
residui 6 , 5, e 3, cio 1, 2, 4.
82 3 Potenze, Radici e Logaritm i

3. p = 5 ^ 3 (mod4) e 1 = 4, 4 = 1 sono i residui quadratici modulo 5.


Ci si pu allora domandare quanti siano i primi p = 3 (mod 4), quelli a cui i
precedenti risultati si applicano. Un teorema di Dirichlet assicura che ci sono
infiniti primi = a (mod b) purch a e b siano primi tra loro, dunque anche
quando a = 3 e b = 4. Una dimostrazione diretta di questo risultato nel caso
particolare che ci interessa si pu ottenere nel modo sotto suggerito.
3.11.4 Si dimostri che ci sono infiniti primi p = 3 (mod4).
E s e r c iz io
(Suggerimento: siano pi, . .., pt primi = 3 (mod4) tra loro distinti. Il loro
prodotto q pu essere congruo a 1 o a 3 modulo 4 a seconda che t sia pari o
dispari. Se consideriamo s = q + 2 nel primo caso e s = q + 4 nel secondo,
otteniamo comunque un intero s > q e = 3 (mod 4). Dunque s ha un fattore
primo = 3 (mod4). Questo fattore pu essere tra pi, ..., p^?).
E s e r c iz io 3.11.5 Sia N = p q dove p, q sono due primi distinti, entrambi =
3 (mod 4). Siano poi a, b due interi tale che a 2 = b2 (m odN ), a ^ =b (modN).
Allora

Invece ( N ) { N ) , ( n ) ~ ( jv ) *
(Suggerimento: si ha a = b(modp) e a = b(modq) o, viceversa, a =
b(modp) e a = b(modq). Ammettiamo che valga il primo caso. Siccome
q = 3 (mod4), ( ^ ) = - 1 . Segue ( |) = -(^ ). Invece ( |) = ( p . A questo
punto basta ricordare che (-^) = ( |) ( |) e che altrettanto vale per b).

3.12 C urve E llittic h e , per finire

Come vedremo nel capitolo finale del libro, i gruppi ciclici moltiplicativi dei
campi finiti sono spesso utili nelle applicazioni crittografiche. Ma ci sono altri
gruppi commutativi finiti che giocano ruolo analogo, talora anche pi signifi
cativo: sono quelli che derivano dalle curve ellittiche sui campi finiti. Questo
paragrafo dedicato a darne breve introduzione.
Cominciamo col richiamare che cosa si intende per curva ellittica su un
campo F (qui F un campo arbitrario, anche se, come gi annunciato, ci
interesseremo nel seguito essenzialmente al caso in cui F finito).
Una curva ellittica su F una curva cubica non singo
D e f in iz io n e 3 .1 2 .1
lare in due variabili su F.
Dunque una curva ellittica su F Linsieme dei punti di F 2 che soddisfano
un polinomio di terzo grado f (x, y) nelle indeterminate x, y a coefficienti in
F e non annullano mai contemporaneamente le derivate parziali di / rispetto
a x e a y. Conviene comunque supporre, per ragioni che saranno chiarite pi
3.12 Curve Ellittiche, per finire 83

tardi, che la curva ammetta un ulteriore punto alFinfnito, che denoteremo


con O.
Il polinomio f (x, y) ha in generale la forma

&3 ,0 ^ 3 +& 3 ,l ^2 2/+ &3 ,2 ^2/2 +& 3 ,32/3 + a 2 ,0 ^ 2 + &2 ,1 ^2/+ &2 ,2?/2 + Cll,0 ^ + a l ,l2/+ a 0,0
con i coefficienti a^j (0 < j < i < 3) in F e, ovviamente, asj (j < 3) non
tutti nulli.
Tuttavia calcoli opportuni mostrano che almeno nei casi in cui la caratteristica
di F diversa da 2 e da 3, lequazione /(x , y) della curva ellittica si pu sempre
ridurre alla forma pi semplice

y2 = x 3 + olx + /? (3.3)

dove a, /? G F e il polinomio al secondo membro x 3+ax + /3 non ha radici mul


tiple (condizione che la teoria delle equazioni algebriche dimostra equivalente
a4<a3 + 27/?2 ^ 0 ).
Quando la caratteristica di F 2 o 3 i meccanismi tecnici che permettono di
arrivare alla (3.3) non si possono ripetere perch prevedono talora divisioni per
2 e per 3. Cos, quando F ha caratteristica 3 (e dunque anche per campi finiti
il cui ordine potenza di 3), il meglio che si riesce ad ottenere unequazione

y2 = x 3 + <ax2 + fix + 7 (3.4)

che rispetto alla (3.3) non riesce pi a eliminare il termine in x2; quando poi
la caratteristica 2 , e quindi in particolare per campi che hanno per ordine
una potenza di 2 , si ha una formula ancor pi complicata

y2 + Sxy + ey = x 3 + olx2 + [3x + 7 . (3.5)

Ritorniamo comunque alle caratteristiche diverse da 2,3 e in particolare a


F = E (e dunque alla caratteristica 0) per proporre in questo ambito familiare
alcuni esempi di curve ellittiche su E.

E s e m p i 3 .1 2 .2 Ecco i grafici delle curve ellittiche su E di equazione, rispet


tivamente,
y2 = x 3 + 1
84 3 Potenze, Radici e Logaritm i

y o = x 9 x

La prima curva consiste di un unico ramo, che va invece a restringersi a sinistra


e a generare due rami distinti nel secondo esempio.
Ogni curva ellittica su un campo F (incluso il punto allinfinito O) ha una
struttura di gruppo rispetto ad una opportuna operazione di addizione +, che
adesso descriviamo. Il riferimento visivo al caso F = E, e magari al secondo
degli esempi appena proposti, pu aiutare a capire la definizione di +, come le
seguenti osservazioni ci spiegano. Assumiamo dunque di considerare, rispetto
ad un opportuno sistema di riferimento, la curva ellittica y2 = x 3 + ax + /?,
con 4a 3 + 27fi2 ^ 0.
O s s e r v a z io n i 3 .1 2 .3

1. Siano Pi = (xi,2/i), P2 = (^2 , 2/2) due punti distinti (e diversi da O) sulla


curva ellittica. Assumiamo in particolare x\ ^ x^. Allora la retta che li
congiunge interseca la curva ellittica in un terzo punto. Infatti la retta ha
equazione y = ^2Zyx\ (x x\) + y\ e, sostituendo questa espressione di y
nellequazione y2 = x 3 +ax + fi della curva si ottiene un polinomio di terzo
grado in x che ha due radici x\ ^ X2 , e dunque deve ammettere una terza
soluzione, che corrisponde ad una terza intersezione tra retta e curva. Al
limite questa terza intersezione pu coincidere ancora con (i,?/i) - o con
3.12 Curve E llittiche, per finire 85

(#2 , 2/2 ) - nel qual caso la retta la tangente alla curva in (#1 , 2/1 ) - o in
(#2 , 2/2 ) - e ha intersezione doppia con la curva in quel punto.

Si noti poi che, per x\ # 2 , i due punti Pi ^ 2 finiscono con lavere


ordinate opposte 2/1 = 2/2 e la retta che li congiunge parallela allasse
y e non pu avere pi di due intersezioni con la curva ellittica.
2. Ammettiamo adesso Pi^P^ coincidenti, cio (#1 , 2/1 ) = (#2 , 2/2 ), ma 2/1 7^ 0 .
Di nuovo, la retta tangente alla curva ellittica in (#1 , 2/1 ) ha unulteriore
intersezione con la curva. Infatti la retta ha ancora equazione della forma
y = mx + q per m e q opportuni ed possibile procedere come sopra per
individuare la terza intersezione. Invece, per (#1 , 2/1 ) = (#2 , 2/2 ) e 2/1 = 0,
la tangente parallela allasse y e non interseca ulteriormente la curva
ellittica.

Formule esplicite determinano il terzo punto in ognuno dei due casi


precedenti. Per la precisione poniamo

e
86 3 Potenze, Radici e Logaritm i

Allora qualche calcolo e un po di pazienza svelano che la terza intersezione



( 3, 2/ 3) = ( t2 X\ - x 2, t(x3 X\) + 2/ 1).

Si noti che queste formule hanno senso anche su campi diversi da E, purch
di caratteristica diversa da 2 e da 3.
Ma anche quando la caratteristica 2 o 3 si riesce a procedere in modo analogo
per individuare la terza intersezione. Omettiamo i dettagli.
Definiamo adesso laddizione tra due punti della curva ellittica. Ricordiamo
che la curva ammette anche un punto allinfnito O.
i) Se P\ = (#1 , 2/1 ), P2 = (#2 , 2/2) sono due punti diversi da O, e la retta per
P i,p 2 ha una terza intersezione P 3 = (#3 , 2/3 ) con la curva, si pone

P i+ P2 = {x3, - y 3);

dunque la somma tra Pi e P2 il punto simmetrico di P 3 rispetto allasse


#.
ii) Se poi Pi e P2 sono simmetrici rispetto allasse #, cio #1 = #2 e 2/1 = 2/2
- eventualmente 2/1 = 0 -, si definisce Pi + P2 = O (il punto allinfinito
della curva).
iii) Finalmente laddizione per O coincide con lidentit: P + 0 = 0 + P = P
per ogni P.
Una paziente verifica dimostra allora che la curva ellittica assume una struttu
ra di gruppo commutativo rispetto a + ; ad esempio, O risulta essere lelemento
neutro, e lopposto di un punto P ^ O il suo simmetrico rispetto allasse
x. Si noti poi che la propriet commutativa Pi + P2 = P2 + Pi ovviamente
verificata.
Concentriamoci adesso sul caso in cui F un campo finito, F = Fq dove q la
potenza di qualche primo. Assumiamo per semplicit che F abbia caratteri
stica 7^ 2, 3, cio che q non sia potenza n di 2 n di 3. Cos possiamo lavorare
con curve ellittiche di equazione

y2 = x 3 + ax + /?, con 4a 3 + 27/32 ^ 0. (3.6)

Le conclusioni che stiamo per trarre valgono comunque anche quando F ha


caratteristica 2 o 3. Ci interessa anzitutto capire:
P r o b le m a . Quanti punti ha una curva ellittica E su FI
O s s e r v a z io n e 3 .1 2 .4 Ammettiamo che E abbia equazione (3.6). Notiamo
che ci sono
q possibili valori in F per #,
per ognuno di questi valori, al pi due corrispondenti valori per y (perch
in un campo ogni elemento x 3 + ax + f3 ha al pi due radici quadrate).
3.12 Curve Ellittiche, per finire 87

Ricordiamo che E ha poi un punto alTinfnito O. Deduciamo che E ha al pi


2g + 1 punti, | E \< 2q + 1.

Possiamo per ricavare una valutazione pi precisa di E , in ragione di pi


attente considerazioni sulle radici quadrate in F = Fq.
O s s e r v a z io n e 3 .1 2 .5 Per q primo, in F q = Z qj 0 ha Tunica radice quadrata
0, mentre dei q 1 elementi non nulli, esattamente la met ha radici
quadrate (per la precisione due radici distinte). Il simbolo di Legendre ( | )
regola, per ogni intero z, se z ha o no radice quadrata in Zg. E facile dedurre
che, per una curva ellittica E su Z g,

z3 + az + [3 Z3 +QLZ+ fi
e \< E ( 1+ +1=9+1+ E
0< z < q 0< z < q

Infatti, per z intero, 0 < z < g,


se z3 + az + /? = 0 e dunque z3 + az + /? ha 1 radice quadrata modulo g,
allora ^^_j = 0 e quindi 1 + (^z +(^ + ^ vale, appunto, 1;
se z3 + az + /? un residuo quadratico modulo q e dunque ha 2 radici
quadrate modulo g, allora ^^_j COs 1 + 2;
se z3 + a 2: + /3 un non residuo quadratico modulo q, quindi privo di
radici quadrate modulo g, allora = 1 e 1 + (^z vale
0, cio coincide ancora col numero delle radici quadrate.
Bisogna per tenere presente che, al variare di z, z3 + az + /? pu assumere
meno di q valori distinti modulo g, per cui il numero dei punti di E diversi da
quello allinfinito soltanto superiormente limitato dallespressione

A questi punti dobbiamo poi aggiungere quello allinfinito, per cui si conclude

| |< ( I + ( i l i ? ) ) +1.
0< z < q V V H 77

Si vede poi facilmente che il secondo membro di questa diseguaglianza coincide


con
+ olz H- (3

Questa stima di | E \ si estende in realt a ogni campo finito F = F g, qua


lunque sia il valore di g, nel modo che segue. Si generalizza anzitutto a F il
simbolo di Legendre, ponendo per ogni z G E,
3 Potenze, Radici e Logaritm i

J 0 se z = 0 ,
x(z) = s 1 se 7^ 0 e un quadrato in F,
[ 1 se z 0 ma z non un quadrato in F.
Si deduce facilmente, per E curva ellittica su F, che

I E |< Y C1 + x (z 3 + az + ()) + l = q + l + Y x (z 3 + az + /3).


Z:Fq Z^Fq
Una valutazione ancor pi precisa di E dipende ovviamente da una stima di
Y ze f x (z 3 + o l z + /?). Un teorema di Hasse limita con 2^/q il valore di questa
somma e deduce:

T e o r e m a 3 .1 2 .6 ( H a s s e ) Per E curva ellittica su F q,

Q-h i - E |< q + 1 + 2y/q.

Per una dimostrazione, si vedano i testi sulle curve ellittiche citati nei
riferimenti bibliografici a fine capitolo.
Adesso vogliamo approfondire la struttura di E come gruppo abeliano finito.
Ricordiamo che E gruppo additivo. In particolare, per P punto di E e m
intero positivo, si considera, invece della potenza, il multiplo m-mo di P,
introdotto nel modo consueto:

m P = P + P + + P .
'-------- --------- '
m
Il fatto che E finito assicura che, per ogni P, m P = 0 per un opportuno
divisore m di | E \. A differenza di quel che accade per il gruppo moltiplicativo
di un campo finito, una curva ellittica E su un campo finito non in genere
un gruppo ciclico. Si prova per che essa sempre il prodotto diretto di al pi
due gruppi ciclici, e dunque a meno di isomorfismi, ha la forma

x {(<U b) : a G Z/, b G %h}-


dove l, h sono interi positivi, con operazione binaria definita nel modo ovvio,
componente per componente,

(a, b) + (a/, b') = (a + a/, b + bf).

Anche se E non un gruppo ciclico, ha comunque senso, fissato un punto


G G E, domandarsi per ogni P G E se P o no multiplo di G e, se s,
cercare il minimo intero positivo m tale che P = mG, definire poi un tale
m il logaritmo discreto di P rispetto a G in E. Il conseguente problema del
logaritmo discreto (trovare cio m a partire da P ) , per curve ellittiche e
punti G arbitrari, talora ancora pi complicato che non sui campi finiti.
3.12 Curve Ellittiche, per finire 89

E s e r c iz i 3 .1 2 .7

1. Si indichi quali delle seguenti congruenze sono vere e quali no:


34109 = 34 ( m o d 109);
2 600 = 1 (mod 601).
Inoltre si determini (se esiste) linverso di 2 modulo 601.
2 . Si calcolino 0(167), 0(1331), 0(4116).
3. Sia N un intero positivo tale che p(N )2 = ip(N2). Che cosa si pu dire di
N?
4. Si elenchino i residui quadratici modulo 7 e quelli modulo 13.
5. Il simbolo di Legendre ( ) vale 1 o 1?
6 . Siano m un primo dispari, p un fattore primo dellra-mo numero di
Mersenne M ( m ) = 2 m 1 . Si provi che

p = 1 (m odm ) e p = 1 ( m o d 8 ).

Ad esempio p = 23 divide M (ll) = 2 11 1 e 23 = l(m o d ll), 23 =


1 ( m o d S ) .
(.S u g g e r i m e n t o : si noti che anche p dispari; si ha 2 m = 1 (m o d p ), dunque
m divisore dellordine p 1 del gruppo Z* e vale la prima congruenza.
Anzi p 1 = 2q m per qualche g, perch p 1 pari. A questo punto si
calcoli il simbolo di Legendre ( | ), cio modulo p, usando = q -m .
Si verifichi che ( | ) = 1 e si deduca la seconda congruenza).
7. Si calcolino, se possibile, le radici quadrate di 2 e di 3 modulo 35, 119 e
161.
8 . Una curva ellittica sul campo F 67 pu avere meno di 48 punti? E pi di
85?
9. Lequazione y = x 3 + 1 determina una curva ellittica E sul campo Z 5? Se
s, quanti sono gli elementi di E (incluso quello allinfinito)? E poi vero
che E, come gruppo additivo, ciclico?

R if e r im e n t i b ib lio g r a f ic i

Maggiori informazioni sullaritmetica dellorologio possono trovarsi in [16] o


[45]. Sui campi finiti si vedano [36] o [44]. Sulle curve ellittiche rimandiamo
a [15], [29], [37], o ancora [67]. La prova del teorema di Hasse 3.12.6 si pu
trovare, ad esempio, in [67].
4

Il Problem a della P rim alit

4.1 D a g li a n tich i G reci ad A K S

Il P r o b l e m a d ella P r i m a l i t , gi incontrato nel corso del Capitolo 2, chiede di


d e t e r m i n a r e un a l g o r i t m o che s a p p i a d e c i d e r e , p e r og n i in te r o p o s i t i v o N > 2,
se N p r i m o o p p u r e no. A scanso di equivoci, sottolineiamo che, almeno
inizialmente, cerchiamo algoritmi di natura d e t e r m i n i s t i c a , capaci cio di rag
giungere la risposta corretta in modo diretto e privo di dubbi ed errori in un
numero finito di passi.
Non c perdita di generalit a supporre N d i s p a r i : infatti, lunico primo pari
2 e comunque facile riconoscere i numeri pari. Daltra parte un semplice
algoritmo di primalit era gi noto agli antichi Greci: quello che abbiamo di
scusso nel Capitolo 2 e che consiste nel considerare ogni numero naturale (anzi
primo) a da 2 a y / N e verificare se a divide oppure no A; se la divisione per
un qualche a precisa (cio d resto nullo), allora N composto, ed a un
suo divisore; altrimenti, se nessuna divisione si dimostra esatta, N primo.
Tuttavia molti secoli dopo gli antichi Greci, per la precisione nel 1801, una
personalit matematica eminente come Gauss continuava a celebrare nelle sue
D i s q u is it io n e s A r i t h m e t i c a e il P r o b l e m a d ella P r i m a l i t come e l e g a n te e fa
m o s o , m e r i t e v o l e d i o g n i p o s s i b i l e a t t e n z i o n e . Quale il motivo di questo
interesse, se un facile algoritmo era gi disponibile da oltre due millenni?
Il fatto si che, come abbiamo gi visto nel Capitolo 2 , il procedimento ele
mentare dei Greci non utile nella pratica: pu richiedere troppe divisioni (un
numero comparabile a y / N ) e dunque tempi proibitivi di attuazione prima di
dare la risposta. In effetti, a voler essere pignoli, quel che cerchiamo non
tanto un semplice algoritmo di primalit, quanto piuttosto un procedimento
che risolva il nostro problema l a v o r a n d o in t e m p o r a p i d o (cio polinomiale
rispetto alla lunghezza dellinput N , ovvero rispetto al logaritmo di N ) .
In effetti Gauss stesso ammetteva nel 1801 la mancanza di procedure veloci
di primalit e scriveva: d o b b i a m o co n fessa r e ch e t u t t i i m e t o d i ch e s o n o s t a
ti p r o p o s t i fin o ra si r e s t r i n g o n o a casi m o l t o s p e c ia l i , o p p u r e s o n o t a l m e n t e
f a tic o s i e p r o li s s i d a n o n a p p lic a r s i ai n u m e r i p i g r a n d i .
92 4 II Problem a della P rim alit

Ebbene, la ricerca di un algoritmo efficiente di primalit ha richiesto altri due


secoli di lavoro dal tempo di Gauss, non stata facile e si conclusa solo nel
2002 , quando i tre ricercatori indiani Agrawal, Kayal e Saxena sono riusci
ti a mettere a punto un procedimento (denominato A K S dalle loro iniziali)
che risolve il problema della primalit di N in tempo al pi polinomiale nella
lunghezza di N. Questo capitolo dedicato a introdurre A K S , ma anche a
descrivere e discutere i vari tentativi che lo hanno preceduto.
Infatti anche prima del 2002 progressi sostanziali ma non decisivi verso la
ricerca del nostro algoritmo erano stati compiuti, soprattutto sulla base del
Piccolo Teorema di Fermat, quello che afferma che, se N primo, allora ogni
a primo con N soddisfa la congruenza a N ~ x = 1 (m odN ). A questo proposito
ci siamo gi chiesti se vale anche il contrario di questo teorema, e quindi se,
ove si abbia a N ~ 1 = 1 (modN) per qualche a primo con N, o addirittura
per ogni a primo con N, non si possa dedurne che N primo. Tuttavia ve
dremo presto che la domanda ha risposta negativa. Ci sono infatti esempi di
numeri composti N per cui la precedente congruenza soddisfatta da ogni
possibile elemento a : si chiamano pseudoprimi di Carmichael, e avremo modo
di discuterli nel paragrafo 2 .
Tuttavia il Piccolo Teorema di Fermat si presta a procedimenti, talora anche
eleganti, di primalit. Nel paragrafo 3 ne vedremo vari esempi: alcuni risalgono
allOttocento e comunque non migliorano quanto ad efficienza il procedimento
degli antichi Greci, altri, pi recenti, formano addirittura la base dellalgorit
mo AK S. Questi metodi valgono, se non proprio a provare che il problema
della primalit si pu risolvere in tempi polinomiali e dunque sta in P, almeno
a mostrare che esso appartiene alla classe N P dei problemi che si controllano
in tempo polinomiale, come vedremo nel paragrafo 4. Mostrano poi come il
problema della primalit si possa scindere da quello della fattorizzazione: in
altre parole, possibile decidere se un dato naturale dispari N > 2 primo
o composto, senza doverne necessariamente determinare la decomposizione in
fattori primi; basta infatti accertarne certe propriet intrinseche, che equival
gono alla primalit, ma poco hanno a che vedere con la fattorizzazione e anzi,
come nel caso del Piccolo Teorema di Fermat, hanno la forma di semplici
congruenze. Infatti, come gi Gauss osservava nel 1801, ci sono metodi che
pur non sapendo fornire i fattori dei numeri composti, riescono certamente a
distinguere i numeri composti da quelli primi; inoltre alcuni di questi metodi
sanno procedere abbastanza speditamente nellaccertamento della primalit.
Progressi pi sostanziali nella ricerca di procedure di primalit si ottengono se
rivediamo parzialmente la visione che abbiamo sopra tratteggiato del concetto
di algoritmo, rigidamente legata al modello deterministico, e ne allarghiamo
un po i contorni; accettiamo cio di sacrificarne la precisione pur di accelerar
ne i tempi di lavoro; ammettiamo errori per avere risposte rapide. Ovviamente,
eventuali sbagli dovranno avere probabilit minima, e comunque preventiva
mente stimata. In conclusione, ci accingiamo a considerare quei procedimenti
di decisione che sono chiamati probabilistici perch ammettono errori, purch
di bassa probabilit. Del resto, secondo una opinione autorevole come quella
4.1 Dagli antichi Greci ad AKS 93

di E. Borei, un e v e n t o la cu i p r o b a b i l i t < IO-50 n o n a c c a d r m a i , e co


m u n q u e n o n s a r m a i o s s e r v a t o . Dunque, se la risposta alla nostra domanda
precisa a meno di IO-50 ed arriva in tempi rapidi, allora possiamo accettar
la, se non proprio con certezza assoluta, almeno al di l di og n i r a g io n e v o le
d u b b i o .
In linea teorica, ci sono due tipi di algoritmi probabilistici. I primi si chiamano
di t i p o M o n t e c a r l o ed hanno la seguente caratteristica: su ogni input N danno
la loro risposta, magari scorretta, fornendo comunque la probabilit di errore.
E il modello che abbiamo appena descritto: se svolto rapidamente, garantisce
r i s p o s t e p r o b a b i l m e n t e v e r e in t e m p i c e r t a m e n t e r a p id i.

Un altro tipo di algoritmo probabilistico, concorrenziale al precedente, quello


chiamato L a s V e g a s : in esso la risposta a un dato input N , quando arriva,
sempre corretta, ma ammessa la facolt di tacere, tergiversare e in definitiva
di non rispondere. Dunque uno svolgimento rapido nei casi positivi garantisce
stavolta
r i s p o s t e c e r t a m e n t e v e r e in t e m p i p r o b a b i l m e n t e r a p id i.

Nel caso della primalit, lalgoritmo probabilistico pi famoso (ed adoperato)


quello di Miller e Rabin. Si basa (anche se in modo non direttissimo) sul
Piccolo Teorema di Fermat. In effetti nel 1976 Miller si rifer al Teorema di
Fermat per ottenere un algoritmo deterministico di primalit e ne prov lef
ficienza polinomiale p u r c h si assumesse come vera lIpotesi di Riemann (pi
precisamente, una sua versione generalizzata). Successivamente Rabin adatt
lidea per ottenere un algoritmo probabilistico di tipo Montecarlo, che risolve
il problema di primalit in tempo polinomiale e con una possibilit di errore
relativamente trascurabile. Lalgoritmo di Miller e Rabin sar il tema del pa
ragrafo 6 . Un altro famoso procedimento Montecarlo di primalit quello di
Solovay-Strassen, basato sulla teoria dei residui quadratici ed in particolare su
quel Teorema di Eulero che riguarda il simbolo di Legendre: ne riferiremo nel
paragrafo 5. Tanto la procedura di Solovay-Strassen quanto quella di Miller-
Rabin si dimostrano pienamente affidabili quando dichiarano un numero N
C O M P O S T O , fallibili altrimenti. Ci sono algoritmi probabilistici che, vice
versa, hanno certezza assoluta quando dicono N P R I M O , ma non altrimenti.
Uno tra i pi famosi pare quello formulato da Adleman e Huang nel 1992,
basato sulla teoria delle curve ellittiche e iperellittiche, tanto bello in teoria
quanto macchinoso e complicato nella pratica (uno assai pi efficiente stato
architettato recentemente da Bernstein e Berrizbeitia sulla base di A K S ) .
Nel 1983 Adleman, Pomerance, Rumely (e Cohen, Lenstra) ottennero un nuo
vo sostanziale progresso per il problema di primalit, scoprendo un algoritmo
d e t e r m i n i s t i c o che lavora in (log ] y ) 0 (l o 9 i o g i o g n ) passi: un tempo non ancora
polinomiale, comunque meno che esponenziale, certamente preferibile a quello
di tutti i precedenti procedimenti deterministici conosciuti, e quasi accettabile
secondo i moderni parametri di efficienza. Lalgoritmo di Adleman, Pomeran
ce e Rumely adopera una generalizzazione del Piccolo Teorema di Fermat al
94 4 II Problem a della P rim alit

caso in cui gli interi sono allargati con radici primitive complesse dellunit.
Miglioramenti non sostanziali furono proposti negli anni successivi da Gold-
wasser e Kilian (1986) e altri. La teoria delle curve ellittiche spesso utilizzata
in questi tentativi. Ad esempio, lalgoritmo di Goldwasser-Kilian fa esplicito
uso delle curve ellittiche.
Un discorso particolare merita il tema degli a l g o r i t m i q u a n tis tic i. Essi si ba
sano su progressi in quella parte della Fisica che si chiama M e c c a n ic a Q u a n t i
s t i c a e possono essere sostanzialmente pi rapidi degli usuali procedimenti di
calcolo. Da un punto di vista teorico, un fenomeno denominato p a r a ll e li s m o
q u a n t i s t i c o d infatti la chiave per svolgere in parallelo un numero esponenzia
le di computazioni. Un altro fenomeno, la in te r f e r e n z a q u a n t i s t i c a , permette,
sempre in linea teorica, di identificare con opportune procedure, tra le varie
computazioni parallele, quella corretta. Per questa via si giunti a proporre in
teoria un modello di calcolatore quantistico che ancora corrisponde alla Tesi di
Turing e dunque non modifica la relativa proposta di definizione del concetto
di algoritmo, ma sembra accelerare (in linea teorica) lefficienza delle compu
tazioni. Ma (c sempre un ma), dal punto di vista pratico, un soddisfacente
sviluppo dei calcolatori quantistici sembra lontano, a causa di un fenomeno
chiamato d e c o e r e n z a q u a n t i s t i c a e causato dallinflusso dellambiente esterno
sul computer. C chi esprime pessimismo sul superamento di questo ostacolo
e quindi sulluso pratico del modello computazionale quantistico. A proposito
dei numeri primi c comunque da dire che nel 1994 Peter Shor ha proposto un
algoritmo quantistico polinomiale per la decomposizione in fattori primi dei
naturali > 2, e dunque tanto per la fattorizzazione che per la primalit. Ma
la sua attuazione pratica richiede, ovviamente, il superamento degli ostacoli
sopra citati a proposito della costruzione effettiva di macchine quantistiche.
Ritornando al contesto deterministico, si finalmente giunti nel 2002 alla ela
borazione di un algoritmo polinomiale (dunque efficiente) di primalit: quello
proposto da Agrawal, Kayal e Saxena di cui abbiamo gi parlato allinizio di
questo paragrafo e riferiremo in maggior dettaglio nel successivo paragrafo 7.
Il paragrafo finale 8 sar ancora dedicato ad A K S , per la precisione ad una
panoramica dei suoi perfezionamenti pi recenti.

4.2 G li P se u d o p rim i di C arm ich ael

Come gi convenuto, N denota in questo capitolo, salvo diversamente speci


ficato, un intero dispari > 2 : il nostro obiettivo verificarne r a p i d a m e n t e la
primalit. Ci basta dunque sapere in tempi veloci se N primo oppure no,
eventualmente prescindendo dalla decomposizione di N nei suoi fattori primi.
Per chiarire ancora che cosa intendiamo, proponiamo il seguente risultato.
T e o r e m a 4 .2 .1 ( W ils o n ) S ia N un in te r o > 2. A llo r a N p r i m o se e solo
se (N 1)! = 1 ( m o d N ).
4.2 Gli Pseudoprim i di Carm ichael 95

Dunque la verifica della primalit si riduce al controllo di ununica congruenza


che prescinde completamente dalla fattorizzazione di N. Tuttavia da rilevare
che neppure il Teorema di Wilson costituisce un criterio di primalit efficien
te e manifestamente migliore delle procedure elementari dei Greci. Infatti il
calcolo di (N 1)! modulo N richiede in linea di principio N 2 successi
ve moltiplicazioni, dunque un numero di operazioni esponenziale rispetto alla
lunghezza di N.
D im o s t r a z i o n e . Supponiamo dapprima N composto, dunque N ammette
un divisore proprio 1 < a < N . In particolare a divide ( N 1)! . Se fosse
(iV 1)! = 1 (m o d N ), a (che divide N ) sarebbe anche sottomultiplo di 1,
e questo impossibile perch a maggiore di 1 .
Assumiamo ora N primo. Se N = 2 , la tesi ovvia, visto che (2 1 )! = 1 =
1 (mod 2). Supponiamo allora N > 2. Le N 1 classi di resti modulo N degli
interi 1, 2, ..., N 1 hanno inverso modulo N . Le uniche classi che hanno
per inverso se stesse sono quelle degli elementi a per cui a2 = 1 (modN), e
dunque quelle di l e d i 1 = N 1 (modN). Osserviamo che 1 ^ 1 (modN)
per N > 2. Le altre N 3 classi (quelle di 2, 3, ..., N 2) si suddividono in
coppie formate da elementi luno inverso dellaltro. Complessivamente

2 -3- ... ( N - 2 ) = 1 (modN),

e quindi
(N - 1)! = 1 (N - 1) = -1 (modN).

Unaltra propriet che soddisfatta dai numeri primi e si esprime in termini
di congruenze , appunto, quella stabilita dal Piccolo Teorema di Fermat:
se N primo, allora, per ogni intero a primo con N, aN~x = 1 (modN).
Si noti che, dati N e a, la verifica di questa congruenza richiede il calcolo
di una potenza aN_1 e una successiva divisione. E dunque facile e rapida da
eseguire. Si potrebbe allora sperare che il test suggerito dal Teorema di Fermat
sia non solo necessario, ma anche sufficiente a garantire che linput N primo
(quando lo ). In dettaglio, ci si pu chiedere quanto segue:
scegliamo un q u a lc h e a primo con N (eventualmente 1 < a < N) e sup
poniamo che valga aN_1 = 1 (modN); possiamo dedurne che N primo?
In particolare, se ricordiamo che N dispari e assumiamo, come lecito,
a 2, dalla verifica che 2N~1 = 1 (modN) possiamo dedurre che N
primo?
La risposta negativa: Sarrus osserv che N = 341 = 11-31 non pri
mo, eppure 2 primo con 341 e soddisfa 2340 = 1 (mod 341) (come abbiamo
avuto modo di verificare nel capitolo precedente, e pi precisamente nel para
grafo 3.4, parlando di potenze). Daltra parte, se 2 cattivo testimone della
96 4 II Problem a della P rim alit

primalit di 341, 3 (che pure primo con 341) si comporta onestamente, per
ch 3340 ^ 1 (mod 341) (si veda ancora il paragrafo 3.4). Potremmo allora
correggere limpostazione della domanda precedente e rafforzarne le ipotesi:
supponiamo che, per o g n i intero a primo con TV, 1 < a < TV, si abbia
aN~x = 1 (m odN ); possiamo dedurne che TV primo?
Si noti che il controllo della congruenza aN~x = 1 (modTV) per tutti gli a
primi con TV allunga i tempi oltre i limiti richiesti di rapidit: infatti gli interi
a da controllare sono, per TV primo, in numero di TV 1. Ma, al di l della
dilatazione dei costi di lavoro, dobbiamo prendere atto che la risposta alla
seconda domanda comunque nuovamente negativa: ad esempio, si verifica
che TV = 561 = 3 -1 1 -1 7 non primo, eppure ogni intero a primo con 561
soddisfa a 560 = 1 (mod 561). Carmichael osserv questo esempio nel 1910.
Dunque il Piccolo Teorema di Fermat non in nessun caso criterio sufficiente
per la primalit. A questo proposito proponiamo la seguente
Siano TV un numero intero composto dispari > 2, a un
D e f in iz io n e 4 .2 .2
intero. Se vale aN_1 = 1 (modN), N si dice uno pseudoprimo in base a.
In altre parole, uno pseudoprimo in base a un numero composto N che
pretende di essere primo perch trova il testimone a disposto ad affermare, in
omaggio al Piccolo Teorema di Fermat, aN~x = 1 (modN).
Gi abbiamo avuto modo di incontrare numeri pseudoprimi in qualche base
assegnata: 341 lo in base 2. Un altro esempio costituito da 91, che
pseudoprimo in base 3 ma non in base 2. Infatti 91 = 7 13 composto
(dispari) ed primo sia con 3 che con 2, ed inoltre
390 = 1 (mod 91), 290 = 64 (mod 91),
come facile controllare usando lalgoritmo rapido del calcolo di potenze.
Semmai si pu provare che, se A un composto dispari > 2 e c almeno una
base a rispetto a cui N non pseudoprimo, allora N non risulta pseudoprimo
rispetto ad almeno met dei 4>(N) possibili interi primi con N e minori di N (il
lettore pu provare a dimostrarlo per e s e r c iz io , magari attendendo il prossi
mo teorema 4.5.3 per ricavare qualche utile indicazione per la dimostrazione).
Ma il guaio , come gi sottolineato, che certi N possono essere pseudoprimi
rispetto a tutte le possibili basi a prime con N .
Un numero composto dispari N > 2 tale che, per ogni
D e f in iz io n e 4 .2 .3
intero a primo con N, aN_1 = 1 (modN) si chiama uno pseudoprimo di
Carmichael.
Il seguente teorema aiuta ad individuare esempi espliciti di pseudoprimi di
Carmichael.
T e o r e m a 4 .2 .4 Sia N > 2 un intero composto dispari.
1. Se esiste un primo p tale chep2 divide N , allora N non uno pseudoprimo
di Carmichael.
4.2 Gli Pseudoprim i di Carm ichael 97

2. Se invece N libero da quadrati (cio prodotto di primi distinti), allora


N uno pseudoprimo di Carmichael se e solo se, per ogni divisore primo
p di N, p 1 | N 1.
E s e m p i 4 .2 .5

1. Come gi detto, 561 pseudoprimo di Carmichael. Infatti 561 = 3-11-17


e 560 divisibile per 10 e 16, dunque anche per 2. In realt 561 il pi
piccolo esempio di pseudoprimo di Carmichael.
2 . Anche 1105, 1729 sono pseudoprimi di Carmichael. Infatti 1105 si decom
pone in fattori primi come 5 13 17 e 1104 multiplo di 12 e di 16,
dunque anche di 4; allo stesso modo 1729 = 7 13 19 e 1728 multiplo di
12 e 18, quindi anche di 6 . 561, 1105 e 1729 sono gli unici pseudoprimi di
Carmichael minori di 2000.
3. Daltra parte Alford, Granville e Pomerance hanno provato nel 1994 che
esistono infiniti pseudoprimi di Carmichael: anzi, al variare di x tra gli
interi, il numero degli pseudoprimi di Carmichael < x asintoticamente
0 ( x i) .
D im o s t r a z i o n e d e l T e o r e m a .
1. Sia p un primo tale che p2 divide N . Sia poi g un naturale tale che 1 < g < p2
e g genera modulo p2 il gruppo moltiplicativo (ciclico per il Teorema 3.7.5)
degli elementi invertibili di Zp2: in particolare g ha periodo (j)(p2) = P (p 1)
modulo p2. Sia ora pk (con k > 2 ) la massima potenza di p che divide N ;
allora p non divide e (p2, ^-) = 1. Grazie al Teorema del Resto Cinese,
possiamo trovare un intero a tale che

a = g (modp2), a = 1 (mod pk
r).

Allora a e N sono primi tra loro perch p non divide a e (a, = 1. Inoltre
anche a ha periodo (j)(p2) = p - (p 1 ) modulo p2 perch a = g (modp2).
Vogliamo provare che N non pseudoprimo rispetto alla base a (e dunque
non pseudoprimo di Carmichael). Infatti, se aN~x = 1 (m odN ), allora deve
essere aN_1 = 1 (modp2) e quindi (j)(p2) divide N 1, in particolare p \ N 1.
Ma p divide anche N , e dunque ne deduciamo p | 1 (una contraddizione).
2. Sia dapprima p 1 | N 1 per ogni divisore primo p di N. Prendiamo un
intero a primo con N. Allora, per ogni divisore primo p di N, a primo con
p e quindi soddisfa ap~ 1 = 1 (modp) ed anzi, visto che p 1 divide N 1,
aN~x = 1 (modp). Adesso ricordiamoci che N il prodotto dei suoi fattori
primi distinti p, e deduciamone aN~1 = 1 (modN). Siccome questo vale per
ogni a, abbiamo provato che N uno pseudoprimo di Carmichael.
Viceversa, supponiamo che ci sia qualche divisore primo p di N per cui p 1
non divide N 1 e mostriamo che N non uno pseudoprimo di Carmichael, e
cio che, per qualche intero a primo con N , aN_1 ^ 1 (modN). Consideriamo
infatti un intero g primo con p che genera il gruppo moltiplicativo di
98 4 II Problem a della P rim alit

modulo p : g ha periodo p 1 modulo p . Come in 1. adoperiamo il Teorema


del Resto Cinese per trovare un intero a tale che
N
a= g ( m o d p ), a 1 ( m o d ).
P
Allora a primo con N e aN_1 = g N _1 ( m o d p ) . Ma g N _1 ^ 1 ( m o d p ) perch
p 1 non divide N 1 e g ha periodo p 1 modulo p. Segue aN~x ^ 1 ( m o d p )
e, in conclusione, a ^ -1 ^ 1 ( m o d N ) .
Si osservi che gli esempi di pseudoprimo di Carmichael sopra proposti

561 = 3 11 17, 1105 = 5-13-17, 1729 = 7-13-19

non consistono soltanto nel prodotto di primi distinti, ma coinvolgono tutti


esattamente tre fattori. In generale si ha:
T e o r e m a 4 .2 .6 O g n i p s e u d o p r i m o di C a r m ic h a e l N il p r o d o tt o di a lm e n o
tre p r i m i ( d is tin ti) .

D im o s t r a z i o n e . Gi sappiamo che N prodotto di almeno due primi distinti,


dobbiamo escludere che N = p-q sia prodotto di esattamente due primi p ^ q.
Ammettiamo che, invece, questo sia il caso, e fissiamo, come lecito, p < q.
Siccome N pseudoprimo di Carmichael, q 1 | N 1. Ma

N 1 = pq 1 = p(q l ) + p 1 = p 1 ( m o d (q 1)),

dunque q 1 divide anche p 1, e questo assurdo perch 0 < p 1 < q 1.


4.3 V ariazion i sul P ic c o lo T eorem a di F erm at

La scoperta degli infiniti pseudoprimi di Carmichael non attenua lattenzione


al Piccolo Teorema di Fermat come strumento di verifica della primalit. Il
fatto si che, per dirla con le parole di Cari Pomerance, usare la congruenza
di Fermat cos semplice che pare un peccato dovervi rinunciare solo perch
c qualche controesempio.
Cos, preso atto che la validit della semplice congruenza aN_1 = 1 (modN)
per un certo a primo con IV, o anche per ogni a primo con IV, condizione
solo necessaria, ma non sufficiente perch N sia primo, si pu cercare di raffor
zarla con ulteriori assunzioni per ottenere, finalmente, una caratterizzazione
equivalente della primalit. In questo senso vanno le seguenti osservazioni,
originariamente formulate da Lucas nella seconda met dellottocento. Lidea
che:
N e primo se e solo se un campo e cio se e solo se ci sono N 1
interi primi con N (a meno di congruenze modulo IV),
4.3 Variazioni sul Piccolo Teorem a di Ferm at 99

in questo caso il gruppo Z ^ ciclico, e dunque gli interi primi con N si


ottengono modulo N come le potenze di uno opportuno di loro.
E facile dedurne:
T e o r e m a 4 .3 .1 S ia n o N un n u m e r o d isp a r i >2, a un in tero. A m m e t t i a m o
che:

(i) a N ~ x = 1 ( m o d N ),
(ii) a 171 ^ 1 ( m o d N ) p e r ogni m con 1 < m < N 1.

A llo r a N p r i m o .

D im o s t r a z i o n e . Da (i) segue che a primo con N. Allora, per la (ii), 1, a,


a2, ..., a N ~ 2 sono N 1 interi primi con N (e dunque invertibili modulo N )
a 2 a 2 distinti modulo N . Cos ip ( N ) > N 1, e questo basta ad assicurare
la primalit di N.
Ma losservazione di Lucas non sufficiente a garantire un algoritmo rapido
di primalit. Il d i f e t t o che (ii) richiede il controllo di N 2 congruenze, e
N 2 esponenziale rispetto alla lunghezza di N .
Daltra parte (ii) si pu esprimere in modo pi conciso, come la teoria elemen
tare dei gruppi, ed in particolare il teorema di Lagrange, ci insegnano. Basta
infatti richiedere:
(ii)' a m ^ 1 ( m o d N ) per ogni divisore m ^ N 1 di TV1.
Infatti, se vale (i), il periodo di a modulo TV, cio il minimo intero positivo k
per cui a k = 1 ( m o d N ) un divisore di N 1 . Se poi vale ( i i / , questo periodo
coincide necessariamente con N 1 . Si ha dunque:
T e o r e m a 4 .3 .2 S ia n o N un n u m e r o d isp a r i >2, a un in tero. A m m e t t i a m o
che:

(i) a N ~ x = 1 ( m o d N ) ,
( ii) 1 a m ^ 1 ( m o d N ) p e r ogni d iv iso re m ^ N 1 di N 1.

A llo r a N p r i m o .

Anche stavolta, per, emerge un d i f e t t o che pregiudica lattuazione pratica del


criterio. Infatti il controllo di ( i i / richiede preliminarmente la decomposizione
in fattori primi di N 1, che non obiettivo pi agevole della primalit di N .
Si noti comunque che ( i i / pu essere ulteriormente riformulato in modo solo
apparentemente pi debole. Ci basta infatti garantire a m ^ 1 ( m o d N ) per
tutti i divisori ra 7^ TV1 di TV1 m a s s i m a l i rispetto alla divisibilit. Infatti, se
a 171 ^ 1 ( m o d N ) per un tale m, vale a d ^ 1 ( m o d N ) per ogni divisore d di m;
quindi, se a 171 ^ 1 ( m o d N ) per ogni divisore massimale m, vale a d ^ 1 ( m o d N )
per ogni divisore d 7^ TV1 di TV1. Daltra parte i divisori m cos individuati
sono tutti e soli quelli della forma per q fattore primo di N 1 . Se ne
ricava il seguente risultato di Lehmer.
100 4 II Problem a della P rim alit

T e o r e m a 4 .3 .3 S ia n o N un n u m e r o d isp a r i > 2, a un in tero. A m m e t t i a m o


che:

(i) a,NN 1 =
-
= 1 (m odN ),
1

N 1
N- 1
(ii) " per ogni fattore primo q di N 1, a * ^1 (modN).
A llo r a N p r i m o .

Ma anche stavolta emerge un d i f e t t o , che poi lo stesso di ( i i j \ infatti (ii)"


richiede di individuare preliminarmente i primi q e dunque nuovamente di de
comporre N 1 nei suoi fattori primi.
Unaltra, elegante caratterizzazione della primalit, ancora basata sul Piccolo
Teorema di Fermat, la seguente. Non basta di per s a garantire una proce
dura rapida di decisione per i numeri primi, ma la troveremo utile fondamento
proprio dellalgoritmo A K S .
T e o r e m a 4 .3 .4 S ia n o N > 2, a un in ter o p r i m o con N ( c o m p r e s o tra 1 e
N 1). A llo r a N p r i m o se e solo se i due p o lin o m i

(x + a ) N , xN + a

so n o id e n t i c a m e n t e u guali m o d u lo N (n e l s e n s o che i loro co efficienti di ugual


grado so n o a due a due co n gru i m o d u lo N ) .

D im o s t r a z i o n e . La direzione da sinistra a destra implicitamente provata


dal Piccolo Teorema di Fermat che, per N primo, anzitutto esplicitamente
dichiara a N = a ( m o d N ) (cio che ( x + a ) N e x N + a hanno lo stesso termine
noto modulo N ) e mostra poi come, per 0 < i < N , il coefficiente di x l in

divisibile per N perch lo , e dunque nullo modulo N .


Sia adesso N composto, q denoti un fattore primo di iV, qk la massima potenza
di q che divide N . Ci basta provare che il coefficiente
(x + a ) N non divisibile per N e quindi differisce modulo N dal coefficiente
di ugual grado di x N + a. Certamente (a N ~ q, N ) = 1, cos ci sufficiente
dimostrare che q k non divide
N ( N 1) . . . ( N q + 1)
q - ( q - !)...!
Altrimenti qk+1 divide N (N 1) ... (N q + 1). Ora ricordiamo che qk
la massima potenza di q che divide N . Ne segue che, per qualche i tale che
0 < i < q, q divide N i e conseguentemente anche i: ma questo assurdo
proprio perch 0 < i < q e q e primo.
4.4 Prim i e NP 101

Come detto, questa caratterizzazione della primalit ha poca rilevanza dal


punto di vista pratico. La ragione si intuisce facilmente: infatti, la verifica
della congruenza tra i due polinomi {x a ) N e x N a, ed anzi gi addirittura
il calcolo preliminare della potenza (x a ) N richiedono di computare preven
tivamente gli N -fi 1 coefficienti di (x a ) N rispetto ad x, e questo impiega
tempo almeno esponenziale rispetto alla lunghezza dellinput N . Vedremo tut
tavia pi tardi come A K S perfezioni proprio questa intuizione per sviluppare
finalmente una procedura rapida di primalit.

4.4 P r im i e N P

I risultati dello scorso paragrafo bastano a garantire che la questione della pri
malit sta, se non proprio nella classe P dei problemi che hanno procedimenti
rapidi di soluzione, almeno nella classe N P dei problemi che hanno almeno un
algoritmo rapido di verifica delle soluzioni. Ricordiamo infatti la definizione
informale di N P nel caso di insiemi S di naturali: si conviene che S in N P se
e solo se c una procedura effettiva che, per ogni N in 5, conferma in tempo
rapido che N sta, appunto, in 5, ricorrendo semmai a qualche testimone t che
abbia lunghezza polinomialmente limitata da quella di N.
E s e m p io 4 .4 .1 L in s i e m e d ei n u m e r i c o m p o s ti in N P . Infatti sia N com
posto. Per verificarlo ci basta citare un testimone t ^ 1, N che divida N ;
infatti un tale t ha lunghezza ovviamente minore o uguale a quella di N ; si
deve poi controllare che t divida N , cio che la divisione di N per t dia resto
0 ; ma tutto questo si pu fare in tempo rapido, come richiesto.

C un famoso aneddoto che illustra la situazione. Nel 1903, ad un convegno


della American Mathematical Society, ebbe vasta risonanza una comunicazio
ne di F. N. Cole, che mostr che il numero di Mersenne M (67) = 267 1 non
primo. Ecco la dimostrazione di Cole:

267 1 = 147573952589676412927= 193707721 761838257287.

Certamente Cole dovette lavorare molto per raggiungere questo risultato, tan
to pi che, ai suoi tempi, il potente software G I M P S non era certamente
disponibile. Pur tuttavia, la relativa verifica si restringe ad un unico rigo, e si
svolge comunque in tempi rapidi: infatti, se si conoscono i fattori t di M(67)
sopra citati, o anche uno solo dei due, si fa presto a controllarla.
E da sottolineare che le considerazioni dellesempio 4.4.1 valgono solo per lin
sieme dei composti e non si applicano invece a quello dei primi, non servono
cio a provare che anche questultimo in N P . Infatti, se N primo e se ne
cerca la conferma, non ci basta osservare che un q u a lc h e t < N , t ^ 1 , iV, non
divide N , dobbiamo invece estendere la verifica a o gn i possibile t, con ovvia
dilatazione dei tempi di lavoro.
102 4 II Problem a della P rim alit

Comunque, anche Pinsieme dei primi sta in N P , come si pu mostrare ri


correndo ad altri argomenti, ed in particolare ai risultati di Lucas e Lehmer
menzionati poco fa.
T e o r e m a 4 .4 .2 L insieme dei numeri primi in NP.
D im o s t r a z i o n e . In base al Teorema 4.3.3, un testimone della primalit di
un fissato primo dispari N pu consistere di
un naturale a minore di N e primo con N,
la sequenza go, , Qs dei fattori primi di N 1.
Le verifiche che
N - l

(a, N) = 1, aN ~ 1 = 1 (m odN ), a q ^ 1 (m odN ) per ogni j < s

bastano infatti a confermare che N primo. Ovviamente tanto a che i primi


qj hanno lunghezza minore o uguale a quella di N ; inoltre i fattori qj coinvolti
sono tutti > 2 , dunque il loro numero al massimo log2 (N 1) e non supera
la lunghezza di N. Tuttavia si pu obiettare che anche la primalit di ciascun
qj richiede la sua certificazione. Daltra parte, se qj = 2, non c bisogno di
ricorrere a testimoni, mentre per qj dispari si pu procedere come gi per N,
citando un nuovo aj primo con qj e i fattori primi di qj 1 . Questa ripetizione
della procedura preserva ovviamente i vincoli di lunghezza sui nuovi testimo
ni e sui tempi di lavoro. Semmai c da controllare che ripetute iterazioni del
procedimento (per N, poi per i qj dispari, poi per i loro eventuali testimoni,
e via dicendo) non alterino in modo decisivo i limiti temporali richiesti. Ma
questo facile da vedere perch ciascun qj minore di y , gli eventuali testi
moni dei qj sono minori di e cos via, dunque le possibili ripetizioni del
procedimento sono al pi log2 N e non superano la lunghezza di N. Si prova
cos che linsieme dei primi in NP.

4.5 L A lg o r itm o di S olovay-S trassen

Nella nostra ricerca di algoritmi di primalit, abbandoniamo momentanea


mente il Piccolo Teorema di Fermat e consideriamo invece il Teorema di Eu
lero sui residui quadratici, quello che dice: se N primo, allora ogni intero a
(in particolare ogni a primo con N) soddisfa

(*) = ( j j ) {modN).

La verifica di questultima congruenza rapida da compiersi, perch ci sono


procedure veloci di calcolo sia per le potenze che per i simboli di Legendre
e Jacobi. Possiamo allora sperare che la propriet dei primi stabilita dalla
congruenza ( ) abbia maggior fortuna di quella osservata da Fermat. In altre
parole possiamo domandarci:
4.5 L A lgoritmo di Solovay-Strassen 103

siano N un intero dispari > 2 e supponiamo che per q u a lc h e prefissato


intero a primo con N (ad esempio per a 2) valga

0) = (-^r) (m odN );

possiamo dedurne che N primo?


La risposta , nuovamente, negativa. Ad esempio 91 = 7 13 composto, 2
primo con 91 eppure gi sappiamo che 290 = 64 (mod 91), dunque

2 ^ = 245 ^ 1 (mod91),

mentre

perch 91 ^ 1 (mod 8). Poniamo allora:


D e f in iz io n e 4 .5 .1 Smno TV nn intero composto dispari > 2 , a un intero
primo con N . N si dice uno pseudoprimo di Eulero in base a se

(*) = ( ^ ) {modN).

Ad esempio 91 pseudoprimo di Eulero in base 2. A proposito degli pseudo


primi di Eulero pu intanto essere utile notare:
O s s e r v a z io n e 4 .5 .2 Se N pseudoprimo di Eulero in base a, N anche
pseudoprimo in base a.
Infatti da a~ 2 1 = ( -jL ) (modN) si ottiene aN~1 = 1 (modN) quadrando e
ricordando che ( ) = d=l per a primo con N.
Non tuttavia vero il contrario: ad esempio N = 91 = 7 13 pseudoprimo
in base 3 perch 390 = 1 (mod 91), ma non pseudoprimo di Eulero in base 3
perch
3 ^ = 345 = 27 ^ 1 (mod91).
Aggiustiamo comunque la nostra domanda e chiediamoci:
sia N un intero dispari > 2 e supponiamo che per o g n i intero a primo con
N (ad esempio per a 2) valga

(*) = ( ^ ) {modN);

possiamo dedurne che N primo?


Oppure esistono ancora anomalie come gli pseudoprimi di Carmichael per
il Piccolo Teorema di Fermat? La risposta stavolta cambia. Infatti, se tutti
gli a interpellati soddisfano (*), allora N deve essere primo. Vale anzi una
condizione ancora pi forte, che adesso enunciamo e dimostriamo.
104 4 II Problem a della P rim alit

T e o r e m a 4 .5 .3 Sia TV un intero positivo composto dispari. Allora per almeno


met di <fr(N) interi a primi con TV, ed a due a due incongrui modulo TV, n o n
vale la congruenza

(*) ) = a Nr {jnodN).

D im o s tr a z io n e . Ci basta provare che esiste almeno un intero a primo con


TV che n o n soddisfa ( ). Supponiamo infatti che questo sia vero, e prendiamo
un intero b primo con TV per cui si ha invece

(*) (v ) = (modN).

Consideriamo allora il prodotto ab, che rimane primo con TVe torna a rifiutare
w

( a ) V ^ ( ^ ) (modN),

altrimenti
N - l N 1 N - l
a 2 b 2 = (ab) 2 b 2 (modN)

N - l
e, dividendo per b 2 che primo con TV, si ottiene
N - l
a 2 ( v ) (mod7V)>
il che assurdo.
In questo modo, se ..., bs sono s interi primi con TV, a 2 a 2 incongrui
modulo TV, tutti capaci di soddisfare ( ), possiamo ottenere altrettanti interi
a&i, ..., abs ancora primi con N ed incongrui modulo N per i quali per ( )
non vale pi. In conclusione, su <j)(N) interi primi con N ed a 2 a 2 incongrui
modulo N, almeno la met non soddisfa ( ).
Possiamo allora concentrarci a trovare un intero a primo con N per cui ( )
non vale. Ricordiamo che N composto dispari > 2 e dunque il prodotto
di almeno due primi (non necessariamente distinti). Distinguiamo allora due
casi nella nostra ricerca.
1. N non libero da quadrati, e cio esiste un primo p tale che p2 | N.
2. N libero da quadrati, e cio il prodotto di primi distinti.
Discutiamo anzitutto il Caso 1. Sia pk la massima potenza di p che divide
N : dunque k > 2. Siccome ( f? ) = d=l, ci basta trovare un qualche intero
N 1
a primo con N per cui a~^~ ^ 1 (modN). Se un tale a non esiste, ogni
TV 1
intero a primo con TV soddisfa a~^~ = 1 (modTV) e dunque, quadrando,
aN~x = 1 (modN), in altre parole tutti gli elementi invertibili di Z n hanno
4.5 L A lgoritmo di Solovay-Strassen 105

un periodo (moltiplicativo) che divide N l. Daltra parte il numero di questi


elementi, e dunque lordine del gruppo moltiplicativo da essi formato,

H N ) = <p(pk) (j> = p k~y (p - 1 ) (j> p p j

ed quindi multiplo di p perch k 1 > 1. A questo punto possiamo ricorrere


ad un risultato non banale della Teoria dei Gruppi Finiti (il Teorema di Sylow)
e dedurre che tra questi elementi ce n qualcuno di periodo p. Da quanto
abbiamo detto in precedenza ricaviamo p \ N 1. Ma p \ N e dunque cadiamo
nella contraddizione p | 1. In conclusione a pu essere trovato nel Caso 1.
Passiamo allora a considerare il Caso 2. Fissiamo N = Y [ i < r P i dove po, -,
pr sono primi distinti. Per semplicit poniamo poi p = po- Proviamo anzitutto
che esiste un intero a per cui

(* *) = 1. a = 1 (mod
\Pj P

Consideriamo infatti gli interi non negativi c < N che soddisfano c =


1 (mod ^ ): li possiamo scrivere la forma k ^ + 1 con 0 < k < p. Notiamo poi
che, per 0 < k, k' < p
N N
k ------ 1-1 = k' ------ h i (rriodp) k = k1(rriodp)
P P

perch ^ primo con p. Cos i p elementi c = k ^ + 1 (per 0 < k < p) sono


a 2 a 2 incongrui modulo p e rappresentano tutte le classi di resti modulo p.
Se escludiamo il rappresentante di 0P e i residui quadratici modulo p, ci
resta 0 < k < p tale che a = k ^ + 1 soddisfa ( | ) = 1, e conseguentemente
(* *), come richiesto.
Si deduce facilmente da (* *) che a primo sia con p che con y , dunque anche
con N. Ancora,

perch ( ) = ( ) = 1 mentre, per 0 < i < /. a = 1 = l 2 (modpi) e


quindi ( ) = 1. A questo punto, se fosse a~^~ = ( ) (m odN ), si avrebbe
a~ 2 1 = 1 modulo N e quindi anche modulo in contraddizione col fatto
che ^ dispari (come IV), dunque ^ > 2, e a = 1 (mod ^ ).

Sulla base del teorema appena dimostrato possiamo organizzare il seguente


algoritmo per controllare la primalit di N > 2 . Ricordiamo che (j)(N) < N 1
(e vale esattamente N 1 se e solo se N primo). Scegliamo allora almeno
interi a primi con N e incongrui tra loro modulo N :
se almeno uno di loro non soddisfa (*), allora N composto;
106 4 II Problem a della P rim alit

se invece tutti rispettano ( ), allora TV primo.


Il Teorema 4.5.3 assicura che la procedura corretta. Tuttavia si riscontra
il solito difetto: il metodo richiede almeno controlli, troppi rispetto alla
lunghezza di TV.
Ma possiamo adattarlo nel modo che segue ad un algoritmo probabilistico
di primalit, che pu ammettere errori nelle sue risposte, ma raggiunge in
tempi brevi una garanzia di precisione, se non assoluta, almeno con probabilit
superiore alla soglia critica di 1 IO-50.
A lg o r itm o d i p r im a lit d i S o lo v a y -S tr a s s e n . Sia TV > 2 un intero dispari.
Prendiamo un intero a con 1 < a < TV. Calcoliamo (a, TV), poi, se necessario,

Se (a, N) ^ 1. dichiariamo N COMPOSTO.


TV 1
Se (a, N) = 1 ma a ~ ~ ^ ) (m odN ), dichiariamo nuovamente N
COMPOSTO. TV 1
Se finalmente (a, TV) = 1 e a~^~ = ( -^ ) {modN), dichiariamo N
PROBABILMENTE PRIMO.

E s e m p i 4 .5 .4
1. Il numero TV = 29 primo e, in effetti, Palgoritmo di Solovay-Strassen lo
dichiara PROBABILMENTE PRIMO quando ricorre al testimone a = 2.
Infatti 2 primo con 29 e, inoltre, ( ^ ) = 1 (perch 29 ^ 1 (mod 8))
e 2 ^ = 214 = 1 (mod29).
2. Sappiamo che il numero TV = 341 composto, e Palgoritmo di Solovay-
Strassen lo riconosce come tale se ricorre ad a = 2. Infatti ( ) = 1
perch 341 ^ l{mod8) e 2342 = 2170 = 1 {mod340) (si ricordi il
calcolo di 2340 modulo 341 nel paragrafo 3.4).
Riflettiamo adesso sullesattezza dellalgoritmo. E evidente che, quando si di
chiara TV COMPOSTO, TV davvero composto. Ma, quando si conclude TV
PROBABILMENTE PRIMO, potrebbe accadere che TVsia in realt composto
(e cio pseudoprimo di Eulero in base a). Tuttavia, la probabilit che questo
accada , per quanto primo osservato, < \ (rispetto alla scelta di a). Natu
ralmente, dopo che si sono effettuati k controlli relativi ad interi distinti ai,
..., dk tutti compresi tra 1 e TV 1 e primi con TV e dopo che, in ogni caso,
si ottenuta la comune risposta TV PROBABILMENTE PRIMO derivandola
dalle congruenze

aj 2 = (modN), 1 < j < k,

la probabilit di errore discende a < ^ . In particolare, se vogliamo abbas


sarla ben sotto la soglia di IO-50, ci basta operare k = 200 controlli distinti.
Invece, come gi detto, la certezza assoluta che TV primo si raggiunge solo
per k > ^ p - .
4.6 L A lgoritm o di M iller-Rabin 107

Daltra parte, per un singolo a, i tempi di calcolo di (a, N), a~ 2 1 e ( -^ ) richie


dono, allo stato attuale delle conoscenze, 0(7o#f N) passi; dunque lincertezza
della risposta nella procedura probabilistica compensata dalla rapidit della
computazione. N i 200 controlli utili per ridurre il margine di errore a meno
di IO-50 alterano questa stima dei tempi di lavoro; infatti, secondo i dettami
dellInformatica Teorica, 200 log%N ancora 0(7o#f N).
Invece abbiamo gi osservato che ladattamento deterministico dellalgoritmo,
volto a ottenere risposte assolutamente sicure, richiede, almeno per N primo,
controlli, dunque un tempo esponenziale rispetto alla lunghezza
dellinput N, ed in conclusione non efficiente.
Lalgoritmo di Solovay-Strassen , in definitiva, un ottimo esempio di algo
ritmo probabilistico di primalit di tipo Montecarlo: per ogni input N, d
la risposta, magari non corretta, ma la probabilit di errore si abbassa ra
pidamente a limiti quasi impercettibili. Anzi una delle due possibili risposte
(quella che dichiara N COMPOSTO) assolutamente esatta.

4.6 L A lg o r itm o di M iller-R a b in

Un altro esempio di procedimento probabilistico di tipo Montecarlo per la


primalit Yalgoritmo di Miller-Rabin. Esso si basa su una pi sofisticata
analisi del Piccolo Teorema di Fermat, combinata con losservazione che, per
N primo (dispari), la congruenza x 2 = 1 (m odN ) ha le due uniche soluzioni
x = 1 (modN) (propriet non sempre condivisa dagli N composti). Cos sia
N un primo dispari. Sia poi a un intero primo con N, allora si ha

aN~x = 1 (modN).

Ma N 1 pari, quindi possiamo scrivere

(a 2 )2 = 1 (modN)

da cui deriviamo N - l
a 2 = 1 (modN).
Se poi a ^ 1 = 1 (modN) e anche pari, abbiamo

(a~^~ )2 = 1 (modN),

quindi
N 1
a 4 = 1 (modN),
e via dicendo. Per maggior precisione scriviamo N 1 = 2S t con s, t naturali
opportuni, s positivo e t dispari. Allora abbiamo in partenza

(ar ~Kt)2 = a2' 4 = 1 (modN)


108 4 II Problem a della P rim alit

da cui deduciamo a2* I't = 1 (m odN ). Se poi a2* I't = 1 (m odN ) e s > 2,
allora si ha
(a2-2'*)2 = a2' 14 = 1 (modiV)
e si pu ripetere ancora il ragionamento. In generale, ripercorrendo a ritroso
modulo N le potenze di a, e cio a2* a2* ..., a2t, a*,
incontriamo 1
oppure concludiamo a1 = 1 (modN).
Sulla base delle precedenti considerazioni, possiamo allora organizzare un
nuovo test probabilistico di primalit.
A lg o r itm o d i p r im a lit d i M ille r -R a b in . Sia N un intero dispari > 2.
Poniamo N 1 = 2S t per s, t naturali, s / 0 e t dispari. Scegliamo un intero
a con 1 < a < N e calcoliamo prima (a, N) e poi, se necessario, le potenze
a2 r-t m0C[ui0 n (per r < s naturale).
Se (a, A) ^ 1, dichiariamo N COMPOSTO.
Se (a, N) = 1 ma a ^ -1 ^ 1 (modN), dichiariamo ancora N COMPOSTO
Se (a, A) = 1, a ^ -1 = c?s'1 = l(raodiV) ma a1 ^ l(raodiV) e, per
ogni naturale r < s, a?'1 ^ l(raodn), dichiariamo nuovamente N
COMPOSTO.
Se invece (a, N) = 1, a ^ -1 = 1 (modN) e a1 = l(raodiV) oppu
re, per qualche naturale r < s, a2 'l = l(m odn), dichiariamo N
PROBABILMENTE PRIMO.

E s e m p i 4 .6 .1

1. Il numero N = 29 primo e, in effetti, lalgoritmo di Miller-Rabin lo


dichiara PROBABILMENTE PRIMO quando ricorre al testimone a 2.
Infatti si nota anzitutto che 29 1 = 28 = 22 7 e poi, in riferimento alla
base 2, che
222 7 = 1 (mod 29), 22 7 = -1 (mod 29).
2. N 341 invece composto, e lalgoritmo di Miller-Rabin lo riconosce
come tale se ricorre ad a = 2. Infatti si nota preliminarmente che 340 =
22 85 e poi, appunto in riferimento a 2, che

222-85 = 2340 = 1 (mod 341), 22 85 = 2170 = 1 (mod341)

ma
285 ^ 1 (mod341).

Notiamo che, come nel caso del test di , quando lalgoritmo dichiara N COM
POSTO, allora N certamente composto. Ma non possiamo escludere a priori
che lalgoritmo (per una particolare scelta di a) dichiari PROBABILMENTE
PRIMO un numero N che invece composto. Diciamo allora che N uno
pseudoprimo forte in base a. Dunque si pone:
4.6 L A lgoritm o di M iller-Rabin 109

D e fin iz io n e 4 .6 .2 Siano N un numero composto dispari > 2 , N 1 = 2S t


con s > 0 c t dispari, a un intero primo con N . N uno pseudoprimo forte
in base a se of = 1 (modN) oppure, per qualche naturale r < s, a2 'l =
1 (modN).

Si noti che, conseguentemente, si ha aN~x = a?8'1 = 1 (modN): in altre paro


le, uno pseudoprimo forte in base a anche pseudoprimo in base a.
Ci chiediamo allora quale la probabilit che il test di Miller-Rabin applica
to a N dichiari per una scelta sfortunata di a che N PROBABILMENTE
PRIMO , mentre N in realt composto, e dunque pseudoprimo forte in base
a.
Come vedremo tra poco, questa probabilit < j. Cos, dopo k tentativi con
valori distinti di a ed una comune risposta N PROBABILMENTE PRIMO ,
la probabilit che N sia invece composto diventa < ^ . Questa stima da
paragonare che quella < ^ del test di Solovay-Strassen, che quindi peggio
re. Ad esempio, nelhalgoritmo di Miller-Rabin k = 100 controlli sono pi che
sufficienti per abbassare la probabilit di errore sotto la soglia di IO-50.
Di pi si pu provare (e tra poco effettivamente proveremo) che, per ogni inte
ro a, uno pseudoprimo forte in base a anche pseudoprimo di Eulero in base
a (dunque ogni testimone inattendibile per il test di Miller-Rabin inaffida
bile anche per quello di Solovay-Strassen). Inoltre i tempi di lavoro dei due
algoritmi sono equiparabili, e comunque polinomiali rispetto alla lunghezza
delhinput N. Laffermazione gi stata illustrata nel caso di Solovay-Strassen,
ma richiede qualche chiarimento per il metodo di Miller-Rabin; si pu infatti
osservare che lapplicazione di questo secondo test pu richiedere un numero
s di controlli successivi per una data base a al fine di valutare se per qualche
naturale r < s si ha cl? ' 1 = 1 (modn). Tuttavia, ricordando N = 2S t + 1
con t dispari, si deduce facilmente che s < \log2 N\ + 1 0(log2N). Si pro
va allora che una singola applicazione del test di Miller-Rabin sullinput N
richiede complessivamente 0(log f N) passi di computazione. Va anzi detto
che c un unico numero composto dispari N < 2,5- IO10 (per la precisione,
N = 3215031751) che pseudoprimo forte in ognuna delle basi 2, 3, 5 e 7. In al
tre parole, 4 applicazioni del test di Miller-Rabin (per a 2, 3, 5, 7 appunto)
bastano a decidere senza errore la primalit di qualunque input N < 2,5- IO10
escluso 3215031751.
Naturalmente lalgoritmo di Miller-Rabin si pu adattare ad un contesto de
terministico e non probabilistico. Infatti, nei casi dubbi, dopo k = appli
cazioni del test con interi a primi con N e tali che 1 < a < TV, af = 1 (modN)
oppure, per qualche naturale r < s, a2 'l = 1 (m o d N ), possiamo certamente
concludere che N primo. Ma gli controlli necessari rendono il tempo di
applicazione deHalgoritmo esponenziale rispetto alla lunghezza dellinput N.
Supponiamo per di riuscire a determinare una funzione B di N con le seguenti
propriet:
(i) B limitata polinomialmente rispetto a log2 N ;
110 4 II Problem a della P rim alit

(ii) per ogni TV composto, esiste un intero positivo a < B(N) primo con TV
tale che TV non pseudoprimo forte in base a.
Sotto queste condizioni, per controllare in modo deterministico e rapido la
primalit di un input arbitrario TV, ci basta applicare la procedura di Miller-
Rabin a B(N) basi distinte a prime con TV e < TV: se il test dichiara TV
COMPOSTO almeno una volta, allora TV composto, mentre se il test di
chiara ogni volta TV PROBABILMENTE PRIMO possiamo concludere con
sicurezza che N primo; inoltre il numero dei passi richiesti da queste verifi
che polinomialmente limitato rispetto alla lunghezza di N. In effetti, quanto
Miller dimostr nel 1976 il risultato che segue.
T e o r e m a 4 .6 .3 (M ille r ) Se vale ITpotesi di Riemann (in una forma estesa),
allora si pu determinare una funzione B come sopra (pi precisamente, si
ha B(N) < 2log2 N + 1 per ogni N).
Conseguentemente, il test di Miller-Rabin si pu adattare ad un algoritmo
deterministico efficiente di primalit purch una versione allargata dellIpotesi
di Riemann sia valida.
Per completare la nostra trattazione dellalgoritmo di Miller-Rabin, dobbiamo
adesso dimostrare i 2 fatti sopra anticipati e cio che, per N > 2 composto
dispari, si ha quanto segue.
T e o r e m a 4 .6 .4 Se N pseudoprimo forte in una qualche base a prima con
N , allora N anche uno pseudoprimo di Eulero in base a.
T e o r e m a 4 .6 .5 N pseudoprimo forte in base a per al pi \ degli interi a
primi con N compresi tra 1 e N .
Questi due risultati sono dovuti a Rabin, che osserv come lidea iniziale
di Miller (sviluppatasi nel Teorema 4.6.3) poteva adattarsi ad un algoritmo
probabilistico di primalit. Ecco alcuni cenni sulle relative prove. Il lettore non
interessato ai loro dettagli pu procedere direttamente al paragrafo successivo.
D im o s tr a z io n e d i 4 .6 .4 . Poniamo ancora N 1 = 2S t con t e s naturali,
s positivo e t dispari. Sia poi a primo con N tale che af = 1 (m odN ) oppure
a2 'l = 1 (modN) per qualche r < s; dunque N pseudoprimo forte in base
TV 1
a. Dobbiamo provare che a~^~ = ( ) (modN). Il caso in cui a = 1 (modN)
N 1

facile da trattare. Infatti lassunzione implica a~^~ = 1 (mod TV), e dobbiamo


quindi controllare ( ) = 1. Ma nuovamente da of = 1 (modN) deduciamo

e, per t dispari, questo implica ( -^ ) = 1, come richiesto.


Adesso dobbiamo trattare laltra possibilit per a, quella per la quale a2 'l =
1 (modN) per qualche r < s. Ci limitiamo comunque per semplicit al caso
4.6 L A lgoritm o di M iller-Rabin 111

particolare r = s 1, dunque ad a~ 2 1 = 1 (modN): il caso generale si af


fronta allo stesso modo, con qualche maggiore complicazione tecnica.
C da verificare ( ) = 1. Consideriamo un qualunque divisore primo p di
N ; anche p dispari, e cos possiamo porre p 1 = 2S t' con s' e t' naturali, s'
positivo e t1 dispari. Come passo preliminare verso la computazione di ( ),
calcoliamo ( | ). Si prova:

L e m m a 4 .6 .6 s' > s e ( | ) = 1 se s' = s, ( | ) = 1 se s' > s.

D im o s tr a z io n e d i 4 .6 .6 . Dalla condizione 1 = = a2* It (modN)


deduciamo
(ar I't')t = (ar I't)t> = -1 (modN)
perch t' dispari. Segue (a2* I't )f = 1 (modp) perch p divide N. Cos,
sr /
se s' < s, si ha che ap~1 = a2 '1 non pu essere congruo ad 1 modulo p, e
questo assurdo per il Piccolo Teorema di Fermat. Allora deve essere s' > s.
Se poi s' = s,
a P - l OS
1-t' - 1-tl
= a 2 = a2 = a (modp);
P

dunque ( | ) = 1 implica a2* I't = 1 (modp) e (a2* It )t = 1 (modp), il


che contraddice le precedenti osservazioni. Quindi deve essere ( | ) = 1. Se
invece s' > s, allora

= (a ^ = (a- = (( a2^ 1-1)1)2^ 3 = ( - 1 ) 2 1 (modp),

e, siccome tanto t quanto p sono dispari, se ne deduce ( | ) = 1.


Procediamo adesso nella dimostrazione del Teorema 4.6.4. Decomponiamo
N = Ylppkp nel prodotto di potenze di primi distinti. Dal Lemma 4.6.6
deduciamo

( ^ ) = n ' h - d-
dove K la somma degli esponenti kp relativi ai fattori primi p di N per cui
s' = s. Notiamo che, siccome t dispari, 2S (t 1) divisibile per 2S+1, cio
2S t = 2S (mod2s+1) e dunque 7V = 1 + 2S- = 1 + 2S (mod2s+1). Quanto ai
fattori primi p = 1 + 2S t' di N, si ha
p = 1 (mod 2S+1) se s' > s,
p = 1 + 2S (mod2s+1) se s' = s.
Cos
1 + 2s = N = JJp** = (1 + 2s) k = 1 + K - 2 s {mod2S+1),
112 4 II Problem a della P rim alit

da cui si deduce K dispari e quindi, in conclusione, ( -^ ) = (1)K = 1.


D im ostrazione di 4.6.5. Come al solito poniamo N 1 = 2S t con t e s
naturali, s positivo e t dispari. Distinguiamo nuovamente due casi:
1. N non libero da quadrati, cio c qualche primo p tale che p2 divide N,
2. N libero da quadrati, e cio N il prodotto di primi distinti.
Affrontiamo dapprima 1. Mostriamo che in questo caso le basi a rispetto
a cui A pseudoprimo sono al pi (quindi anche le basi a per cui
N pseudoprimo forte sono al pi Chiediamoci infatti quante so
no le possibili scelte di un intero a compreso tra 1 e A, primo con N
e tale che aN~x = 1 (modN). Lultima condizione implica in particolare
aN~x = 1 (modp2). Ricordiamo che gli elementi invertibili di Z p 2 sono in
tutto (j){p) = p (p 1) e formano (come osservato alla fine del paragrafo
3.7) un gruppo moltiplicativo ciclico: si ottengono cio come le potenze di
uno opportuno g di loro. Il nostro problema consiste nel contare quanti ele
menti di questo gruppo, cio quante potenze g di g con 0 < j < p(p 1),
hanno periodo che divide N 1. Con argomenti che ci sono oramai familiari
si controlla che il loro numero eguaglia proprio il massimo comun divisore
d = (p (p 1), N 1). Notiamo che p non divide N 1 e quindi neppure
d. Perci d < p 1, e quindi ci sono al pi p 1 possibilit di scegliere la
nostra base a a meno di congruenze modulo p2. Se ne deduce facilmente che
la probabilit di trovare un valore a compreso tra 1 e A 1 rispetto a cui N
pseudoprimo al pi
P -1 = 1 < 1
p2 1 p+1~ 4
(visto che p > 3). Questo conclude la dimostrazione nel caso 1.
Consideriamo adesso 2. Per semplicit ci limitiamo al caso particolare in cui
N il prodotto di due primi distinti: quando il numero dei fattori primi di N
superiore, si procede in modo analogo, con qualche maggiore complicazione
tecnica. Fissiamo allora N = p1p" con p1 e p11 primi distinti (dispari perch
N dispari). Poniamo anzi

p' - 1 = 2S' *', p" - 1 = 2S" -t"

con s', s", t1 e t" naturali, s' e s" positivi, t1 e t" dispari. Possiamo anche
supporre senza perdita di generalit s' < s". Dobbiamo stimare il numero
degli interi a primi con N e compresi tra 1 e A per cui N pseudoprimo forte
in base a e dunque soddisfa
i) a1 = 1 (modN) (che come dire a1 = 1 (modp') e a1 = 1 (modp"))
oppure
ii) per qualche naturale r < s, a2 'l = 1 (modN) (equivalentemente, a2 'l
congruo a 1 sia modulo p' che modulo p").
4.6 L A lgoritm o di M iller-Rabin 113

Se facciamo riferimento al gruppo ciclico Z*, e procediamo come nel caso 1,


vediamo che il numero delle possibilit di scegliere a tale che a1 = 1 (modp')
(, p11) = (, 2S '), che eguaglia (, t') perch t dispari. Allo stesso mo
do, ci sono (, t") possibilit di scegliere a tale che a1 = 1 {modp"). Siccome
(, t') < t1 e (t, t") < t" , possiamo dedurre che ci sono al pi t1 t" possibilit
di soddisfare i).
Adesso consideriamo ii). Argomentazioni analoghe alle precedenti (ma di mag
giore complessit) assicurano che, per ogni r < s' < s", il numero delle
possibili scelte di a tale che

a2 -/ = 1 (modp ), a2 -/ = 1 {modp")
, rispettivamente,
2 2r -(M");
come prima, si deduce che ci sono al massimo V t't" modi di trovare un a che
soddisfi ii).
Riassumendo, il numero totale delle possibili classi modulo N di interi a primi
con N capaci di soddisfare i) o ii) per qualche r < s' al pi

t t " + Y , 4r t t"
0< r< s'

(il primo addendo si riferisce a i), il secondo a ii) al variare di r). Invece il
numero complessivo delle classi modulo N di interi primi con N esattamente

<K7V) = 0(p') 4>{p") = Cp1- 1) (p" - 1 ) = r '+ s"t't".


Segue che la probabilit di trovare a al massimo

t't" + So<r<s' 4ri'i" 1+ E 0< r < s Ar


2 s'+s"t ' t " 2s ' + s"

4s - 1
= 2- 1+ = 2
4-1

Per s" > s' , questa probabilit risulta

1
< 2 2 s ' 1
4

come desiderato.
Il caso s" = s' richiede qualche maggiore discussione. Anzitutto notiamo che
t1 e t" non possono dividere contemporaneamente t. Supponiamo infatti il
contrario, e dunque che t sia multiplo tanto di t1 quanto di t". In particolare
t1 divide anche N 1. Siccome

N - 1 = p'p" - 1 = {pf - 1)p" + (p" - 1) = p" - 1 (modi'),


114 4 II Problem a della P rim alit

si deduce che t1 divide p" 1; ma t1 dispari, e quindi divide addirittura t" .


Invertendo i ruoli di t1 e tn, si deduce allo stesso modo t" \ t1 e, in definitiva,
t' = t", dunque p' = p" -assurdo-. Allora almeno uno tra t' e t" non divide
in altre parole (t, t') < t1 oppure (t, t") < t". Supponiamo ad esempio che
(t, tr) sia un divisore proprio di t1; siccome t1 dispari, il relativo quoziente
almeno 3, quindi (, t') < \t' e

(t, t') (t, t") <

(conclusione cui evidentemente si arriva anche nellaltro caso quando t" >
(t,tn)). Cos, al posto della limitazione (, t') (t, t") < t't" adoperata
precedentemente si pu usare

(t, f ) (t , t") < I*'*".

Una paziente revisione delle precedenti computazioni conferma allora che,


anche in questo caso, la probabilit di trovare a si mantiene < \ .

4 .7 A K S : l A lg o r itm o di A graw al-K a y a l-S a x en a

A, K ed S sono le iniziali dei cognomi di tre studiosi indiani. Il primo, Manin-


dra Agrawal, informatico teorico, esperto di complessit di algoritmi, si era
in particolare interessato al problema P = N P , gi presentato nel capitolo 1.
Non stupefacente che, in questo ambito, coltivasse una qualche curiosit per
le questioni della primalit e della fattorizzazione dei numeri naturali. Aveva
cos individuato, insieme al suo collaboratore Biswas, un nuovo test probabi
listico di primalit, basato sulla elegante caratterizzazione dei primi fornita
dal Teorema 4.3.4. Daltra parte, abbiamo gi osservato come questo criterio
di primalit ha di per s poca utilit pratica. N il conseguente algoritmo
probabilistico di Agrawal e Biswas ha migliore fortuna: pur polinomiale, non
neanche lontanamente competitivo con quello di Miller e Rabin.
Ad evitare le lungaggini della computazione di (x + a)N, si pu comunque
cercare di ovviare sostituendo (x + a)N con il suo resto nella divisione per
un qualche binomio x r 1 dove r esponente che si pu calcolare in tempo
polinomiale rispetto al logaritmo di N ; cos, anzich verificare la congruenza
(x + a)N = x N + a (mod iV),
si va a considerare la possibilit di esprimere la differenza (x + a)N (xN + a)
nella forma
N g{x) + (x r 1) h(x)
per una qualche scelta di polinomi a coefficienti interi g{x) e h{x): condizio
ne che potremmo sintetizzare scrivendo, con notazione che ci pare di facile
comprensione,
4.7 A K S : lA lgoritm o di A graw al-K ayal-Saxena 115

(x + a)N = x N + a (mod iV, xr 1).


Questultima congruenza ha il pregio di poter esser verificata, per un r fis
sato come sopra, in tempo polinomiale rispetto alla lunghezza di N. Infatti,
se operiamo modulo x r 1 oltre che modulo N, e dunque sostanzialmente
assumiamo che x r coincide con 1, i due polinomi da confrontare

(x + )N, xN + a

si riducono a grado minore di r nel modo che segue.


x N coincide con x N dove N' il resto di N nella divisione per r, dunque
x N + a va a eguagliare x N + a.
La potenza (x + a)N si calcola con lalgoritmo descritto nel paragrafo 3.4.
In effetti l si trattano interi, ma il procedimento si applica ovviamente
anche a polinomi: si parte da 1, si quadra o si moltiplica per x+a, si arriva a
(x + a)N in un numero di passi linearmente limitato dal logaritmo in base
2 di N. Inoltre, siccome si opera modulo N, i coefficienti dei polinomi
ottenuti a ogni passo si restringono tra 0 e N 1. Di pi, dato che si
opera modulo x r 1, il polinomio calcolato a ogni passo si riduce a essere
nullo o ad avere grado < r salvo sostituirlo col suo resto nella divisione per
x r 1: in questo modo ogni nuova moltiplicazione o quadratura continua a
trattare polinomi nulli o di grado minore di r. Cos i tempi di lavoro sono
abbassati a livello polinomiale.
C comunque da chiedersi se la nuova condizione

(x + a)N = x N + a (mod N , x r 1)

ancora equivale alla primalit di N. Ora, non v alcun dubbio che, se N


primo, allora (x + a)N (x N + a) si pu scrivere nella forma desiderata
N g{x) + (x r 1) h{x) per ogni scelta di r, visto che si ha addirittura

(x + a)N (x N + a) = N g(x)

per qualche g(x). Ma il problema se, viceversa, la validit della condizione

(x + a)N = x N + a (mod N , x r 1).

per qualche r opportuno implica che N primo.


Fu a questo punto della questione che la K e la S fecero il loro ingresso nella
storia di A K S , quali iniziali di due dottorandi di Agrawal, Neeraj Kayal e
Nitin Saxena, matematici interessati anche agli argomenti dellInformatica.
Nellestate del 2002, la collaborazione tra i tre approd finalmente al chia
rimento della questione rimasta in sospeso ed alla costruzione completa del
sospirato algoritmo deterministico polinomiale di primalit. La prima versio
ne del loro lavoro cominci a circolare in rete l8 agosto 2002; nei mesi che
seguirono vari suggerimenti (di Hendrik W. Lenstra Jr. ed altri) condussero
116 4 II Problem a della P rim alit

a redazioni pi nitide e perfezionate. Ecco allora come si presenta lalgoritmo


A K S , quale stato riformulato da Agrawal, Kayal e Saxena nellaprile 2003.
Ci si basa sulla seguente nuova caratterizzazione dei numeri primi (potenza
perfetta indica qui, ovviamente, un numero della forma M h con M, h naturali
> 2).
T e o r e m a 4 .7 .1 ( A g r a w a l, K a y a l, S a x e n a ) Sia N un intero dispari > 2.
Sia poi r un intero positivo tale che r < N e N ha periodo > log\ N modulo
r. Allora N primo se e solo se valgono le seguenti condizioni:
(i) N non una potenza perfetta;
(ii) N non ha fattori primi < r;
(iii) (x + a)N = x N + a (mod N , x r 1) per ogni intero positivo a < \/rlog 2 N .

Daremo pi tardi cenni della dimostrazione di questo teorema. Lalgoritmo


A K S una diretta conseguenza del suo enunciato. In dettaglio, si procede
infatti nel modo seguente.
A lg o r i t m o A K S ( A g r a w a l- K a y a l- S a x e n a ) E dato un intero dispari N >
2.
1) Se N una potenza perfetta, dichiariamo N COMPOSTO.
2) Altrimenti, troviamo il pi piccolo r < N tale che il periodo (moltiplicati
vo) di N modulo r > log% N e consideriamo il massimo comune divisore
tra a e N per a < r. Se (a, N) ^ 1 per qualche a, diciamo nuovamente N
COMPOSTO.
3) Altrimenti, per a = 1, , [y/rlog2 N J, verifichiamo la nostra congruen
za (x + a)N = x N + a (mod N , x r 1). Se qualche a non la soddisfa,
dichiariamo N COMPOSTO.
4) In caso contrario, dichiariamo N PRIMO.
Infatti 1) 2), 3) negano rispettivamente le condizioni (i), (ii), (iii) del teorema,
mentre 4) corrisponde al loro contemporaneo verificarsi. Valutiamo allora il
tempo di lavoro di AK S. Vogliamo confermare che il numero dei passi che
il procedimento impiega su un dato input N asintoticamente limitato da
una qualche funzione polinomiale della lunghezza di A e dunque di log2 N :
se d il grado di questo polinomio, si scrive, secondo le convenzioni ufficiali
di Analisi e Complessit gi ricordate nel Capitolo 1, che il tempo di lavoro
dellalgoritmo 0{log2 N); si afferma invece che il tempo O^log^N) se
Oilog^N) a meno di un fattore polinomiale nel logaritmo del logaritmo di
N (il che specifica con maggior precisione il numero dei passi necessari alla
computazione, ma lo mantiene ad un livello ancora polinomiale rispetto al
parametro decisivo, e cio il logaritmo di N). Ci premesso ripercorriamo i
singoli momenti del procedimento.

1) Il primo passo deHalgoritmo controlla se lintero dispari N si pu o no


esprimere come potenza M h con M, h > 2. Procedimenti rapidi a questo pro
posito erano noti ben prima di AKS. Infatti non difficile ammettere che si
4.7 A K S : lA lgoritm o di A graw al-K ayal-Saxena 117

pu anzitutto supporre h < log2 N (visto che M > 2). Dunque il numero dei
possibili valori dellesponente h limitato polinomialmente dalla lunghezza di
N. In questo ambito dobbiamo individuare h in modo tale che N = J.
Ma nulla ci garantisce a priori che, per un dato /i, il calcolo di Nh e la verifica
della sua eventuale interezza si possano svolgere in modo rapido (e questo
in effetti il nocciolo della questione). Esistono comunque strategie vincenti a
questo proposito. In particolare, c una procedura di Bernstein che lavora in
tempi 0{log2 N) (ed anche inferiori nelle sue implementazioni pi efficaci): li
dea quella di lavorare tramite approssimazioni che accelerino i calcoli senza
pregiudicare la correttezza dei risultati. Lalgoritmo lavora infatti in partenza
su ogni candidato h con una precisione di 3+ bits (come ragionevole, vi-
1 log2 N s
sto che ci che stiamo cercando = 2 % ); h viene scartato se il risultato
approssimato non abbastanza vicino ad un intero; altrimenti si raddoppia
la precisione e si controlla nuovamente. In conclusione, la complessit totale
di 1) si pu ridurre a 0(Zo^| N).

2) Nel secondo passo si fa riferimento al minimo r < N tale che il periodo di N


modulo r supera log% N. E anzitutto da stabilire che un tale r esista davvero.
Se s, sar da notare che log% N < r < N, infatti un periodo moltiplicativo
modulo r non pu eccedere r; cos r ha lunghezza che almeno logaritmica
in N ma pu arrivare anche ad essere lineare in N ; sar quindi opportuno
precisare lambito effettivo di questa lunghezza, e magari ridurlo al minimo
possibile. Ma rimandiamo il problema dellesistenza di r e quello della sua
lunghezza a pi tardi, e assumiamo di sapere che r c davvero. Domandiamoci
piuttosto quale il costo per trovarlo. A tale fine dobbiamo considerare tutti i
possibili valori s = 1, 2, 3 ,... per r, controllare in ogni caso se N k ^ 1 (mods)
per ogni k < log% N. Per ogni s, la verifica richiede 0(log2 N) moltiplicazioni
modulo s (quelle necessarie per calcolare N k modulo s al variare di k), seguite
dal controllo della relativa congruenza: se ne deduce che il costo di questa
fase per un dato s < r 0(log2 N log2 r). Ma lanalisi va estesa a tutti gli
s < r, e quindi raggiunge un tempo asintotico 0(r log% N). A questo punto
si deve computare il massimo comun divisore di a ed A per ogni a < r.
Ma abbiamo gi avuto modo di ricordare come il classico algoritmo euclideo
delle divisioni successive permette di svolgere questo calcolo in un tempo
rapido e specificamente Otyog^N), per ogni dato a. In conclusione, allora,
la complessit totale del passo 2 0(r log\ N).
3) Adesso dobbiamo verificare \_y/rlog2 N\ congruenze: in ciascuna di esse il
grado si pu rendere minore di r e i coefficienti hanno lunghezza 0(log2 N).
Conseguentemente ogni congruenza pu essere controllata in 0(r log% N)
passi, il che fssa la complessit totale di questo passo in

(ry/rlog% N) = (r*log% N).


118 4 II Problem a della P rim alit

Il tempo di 3) supera ovviamente quello dei passi precedenti, e stabilisce con


seguentemente la complessit asintotica totale dellalgoritmo in funzione di N
e di r.
Resta da stabilire lesistenza di r, e limitare superiormente in modo ottimale la
sua lunghezza rispetto a quella di N. A questo proposito, si gi detto che r >
log% N, il che implica che A K S non pu lavorare in tempi inferiori a 0(log\ N )
(infatti r 3/2 > log^N). Agrawal, Kayal, Saxena usano argomenti non banali
per provare r = 0(/o#f N) il che fssa i tempi di lavoro di A K S in (log25 N).
In realt risultati ancor pi profondi di natura analitica di Fouvry permettono
di abbassare questo livello fino a (logl'5 N) perch implicano la possibilit
di trovare r vicino a logf N. In conclusione possiamo comunque affermare:
T e o r e m a 4 .7 .2 II problema della primalit in P.
Infatti lalgoritmo A K S riconosce se un intero N > 2 primo o no in tempo
(logl'5 N). Vedremo nel prossimo paragrafo che, in realt, recenti ulteriori
perfezionamenti dellidea di A K S raggiungono addirittura il livello minimo
0(log\ N ) sopra accennato.
Ma passiamo ora, come promesso, alla dimostrazione del teorema 4.7.1 e della
sua caratterizzazione della primalit. Come al solito, il lettore non interessato
ai dettagli pu passare direttamente oltre, al paragrafo successivo. Notiamo
che, in aggiunta agli articoli originali di Agrawal, Kayal, Saxena, ci sono vari
lavori espositivi che presentano la prova del teorema. Seguiamo qui uno dei pi
recenti, quello scritto da Granville per il Bullettin of American Mathematical
Society. La prova in ogni caso lunga e articolata, usa tuttavia argomenti re
lativamente elementari. Ne accenniamo le idee fondamentali, lasciando talora
per esercizio certi particolari pi facilmente accessibili.
D im o s t r a z i o n e d e l t e o r e m a 4 .7 .1 . E evidente che, se N primo, allora
vale (i), cos come (ii) per r < N e, finalmente, anche (m), che segue dal
teorema 4.3.4 e dalle considerazioni iniziali di questo paragrafo.
Va quindi provato che, viceversa, un N composto viola, per ogni scelta di
r, una delle condizioni (i), (ii), o (in). Assumiamo per assurdo il contrario,
supponiamo cio che un qualche N composto soddisfi (i), (ii) e (in) insieme
a r. Poniamo per semplicit
l = \yfrl 0 g2 VJ, m periodo di N modulo r
(dunque m > log% N). Sia p un fattore primo di N. Da (i), N non potenza
di p - osservazione che avremo modo di sfruttare pi tardi da (in) si ha
che, per ogni a < l,
(x + a)N = x N + a (mod p, x r 1)
e cio che
x r 1 divide (x + a)N (xN + a) modulo p tra i polinomi a coefficienti
nel campo Z p[x\.
4.7 A K S : lA lgoritm o di A graw al-K ayal-Saxena 119

Da (ii), p > r e quindi (p,r) = 1 e pr_1 = 1 (modr). Allora, per il corollario


3.10.2 ci sono r radici r-me di 1 in qualche ampliamento finito di Zp (si veda
in particolare lesempio 2 in 3.10.3). Fissiamo una radice primitiva r-ma v di
r su Zp; h(x) G Zp[x] definisca il suo polinomio minimo su Zp (per semplicit
indichiamo qui alla stessa maniera un numero intero e la sua immagine in
Zp, semmai riservandoci di chiarire caso per caso se ci riferiamo a Z o a Zp;
in modo analogo procediamo con i polinomi in Z[x] e con le loro proiezioni
modulo p). Ampliamo adesso Z p con v e formiamo F = Zp(i?): quindi, se t il
grado di h(x), F isomorfo a Fpt. Come gi notato, vr = 1 in F e anzi v ha
periodo r in F. Ogni polinomio g(x) G Z[x] definisce un elemento g(v) G F,
e due polinomi g(x),g'(x) G Z[x] determinano lo stesso elemento g(v) = g'(v)
se e solo se g(x) = g'(x) (modp,h(x)). Ci interessa il caso dei polinomi della
forma
g(x) = U(x + a)ka>
a<l

e degli elementi g(v) = Yla<i(v + a)ka che essi definiscono in F (nel seguito
indichiamo con Z linsieme di questi polinomi). E da notare che tutti questi
elementi sono diversi da 0 in F. Infatti, siccome F un campo e dunque non
ha divisori dello zero, ci basta osservare
v + a / 0 per ogni a <1.
Altrimenti 0 = (v + a)N = vN + a (per (m)), dunque vN = a = v in F, e v ha
periodo moltiplicativo che divide N 1. Ma questo periodo proprio r, quindi
N = 1 (modr), e questo assurdo, visto che N ha periodo m > log\ N > 2
modulo r.
A questo punto un facile esercizio di Algebra Astratta provare che gli ele
menti n a</(^ + a)ka formano al variare degli esponenti ka un sottogruppo G
del gruppo finito F*, per la precisione quello generato da + 1 , . . . , i? + Z.
Inoltre, G ciclico, cos come F*, dunque c un opportuno polinomio go(^)
in Z[x] tale che #o(u) capace di generare G tramite le sue potenze.
A questo punto la dimostrazione procede studiando G, stabilendo due limi
tazioni diverse, tra loro contrastanti, dellordine \G\ di G e arrivando in tal
modo alla contraddizione desiderata.
Prima stima di \G\. Osserviamo che, per ogni polinomio g(x) G Z , g(x)N =
g(xN) (modp, x r 1) (esercizio: si usi (in)). Sia allora S linsieme degli interi
positivi k tali che
g(x)k = g(xk) (modp,xr 1) per ogni g(x) G Z.
Abbiamo appena visto che N G S. Anche p in S: infatti, siccome p primo,
segue dal Piccolo Teorema di Fermat che (x + a)p = xp + a (modp) per ogni
intero a primo con p\ se poi p\a, la stessa conclusione ovvia.
Ecco altre propriet di S , presentate in forma di esercizio.
E s e r c iz io 4 .7 .3
120 4 II Problem a della P rim alit

(a) S chiuso rispetto al prodotto: se k , k' E 5, anche k - k' in 5.


(b) Siano k , k' interi tra loro congrui modulo r. Allora (modxr 1).
(.Suggerimento: poniamo per semplicit k > kf; per ipotesi k k! qr
multiplo di r; segue x k x k = x k (x k~k 1) = x k (x qr 1); si noti
adesso che x r 1 divide x qr 1).
(c) Siano k,k' E S interi congrui modulo r e sia g(x) E Z. Allora g(x)k =
g(x)k' (modp,xr 1).
(.Suggerimento: da (b), x k = x k (modxr 1), dunque x k e x k coincidono
anche (modp,xr 1). Dalla definizione di 5, g(x)k = g(xk) (modp,xr
1), g(x)k = g(xk ) (modp,xr 1). Ma x k = x k (modp,xr 1) implica
g(xk) = g(xk ) (modp,xr 1)).
(d) Siano ancora k,k' E S congrui modulo r. Allora k = k' (mod |G|).
(.Suggerimento: conviene applicare (c) al polinomio go(x) E Z che definisce
il generatore go(v) di G. Deduciamo allora go(v)k = go(v)k , dunque, per
k > k' , go(v)k~k = 1 in G. Ma go(v) ha periodo |G|, perci \G\ divide
k k').
Ci premesso, consideriamo tra gli interi i prodotti N l -pi con i, j E N. Tutti
appartengono a S perch N,p E S e vale (a). Inoltre, per (i, j) ^ (i',/ ) ,
N z pi ^ N z pi perch N non potenza di p e 1 non potenza n di N
n di p. Da (i) N (e di conseguenza p) primo con r; altrettanto vale per
tutti i prodotti N l - p i, che determinano quindi elementi invertibili modulo
r. Sia s < r il numero di questi elementi distinti modulo r. Le coppie (i, j)
con 0 < i, j < [y/s\ sono pi di s, quindi possiamo trovarne due distinte
(i,j) ^ tali che

N z - pi = N z - pi (mod r ) .

Da (d), TV* -pi e TV2, sono congrui anche modulo |G|, dunque \G\ divide
N z -pi N l -pi . Ma N l -pi ^ N l -pi perch (i,j) ^ (i',/ ) , quindi

|G| < / ] < m ax{N l -p>. N 1' / } < TV^J .p IVJ < jV2Lv^J.

In conclusione |G| < iV2Lv/*J. Ma possiamo migliorare ulteriormente questa


limitazione e arrivare addirittura ad affermare

|G| <
Vediamo perch.
L e m m a 4 .7 .4 Siano k , k1 naturali tra loro congrui modulo N m 1. Se k E S ,
anche k' E S.

D im o s t r a z i o n e d e l le m m a . Siccome r divide N m 1 e k = k! (mod N m 1),


si ha che r divide k k' e quindi da (b) = x k (modxr 1), ed anzi x k =
x k (modp, xr 1). Sia ora g(x) E Z, sappiamo che g(xk) = (modp, xr
1) perch k E 5, e vogliamo mostrare che altrettanto vale per Da =
4.7 A K S : lA lgoritm o di A graw al-K ayal-Saxena 121

x k (modp, 1) ricaviamo g(xk' ) = #(#*) (modp, 1), e dunque g(xk' ) =


(m odp,xr 1). Resta da mostrare = g(x)k (m odp,xr 1). Ma
questo si ottiene osservando che N m E S (come potenza di N E S) e quindi,
per (c), g(x)N = g(xN ) = g(x) (m odp,xr 1): a questo punto, applicando
la congruenza polinomiale sopra provata per x k = x k (m odp,xr 1) quan
do x sostituito da g(x), si conclude g(x)k = g(x)k (m odp,xr 1), come
desiderato.

Adesso applichiamo il lemma appena dimostrato al caso in cui


N
k = - P^ Nm- 1), k1
P P
dove (p la funzione di Eulero. Le condizioni del lemma valgono: infatti,
siccome p\N, p primo con N m 1 e quindi = 1 (m odN 171 1);
moltiplicando per ^ otteniamo allora

= (m o d N m - 1).
P P

Osserviamo poi che ^ pv(Nm A - Npv(Nm i) 1 in S. Dal lemma 4.7.4


ricaviamo che ^ in S. Ripetendo allora per p le argomentazioni sopra
svolte a proposito di N,p, otteniamo stavolta

N . plVs\ ]ylVs\ ^
| G| <
P

cio \G\ < come annunciato.


Seconda stima di \G\. Adesso proviamo per altra via che \G\ >
ricavando cos la contraddizione cercata. Partiamo ancora con un lemma
generale.
L e m m a 4 .7 .5 Siano g(x),g'(x) E Z di grado < s. Se g(x) = g'(x)(mod
p,h(x)) (cio g(v) = g'(v)), allora g(x) = g'(x) (modp).

D im o s tr a z io n e d e l le m m a . Consideriamo il polinomio g(x) g'(x). Per


ipotesi, v lo annulla in F. In realt, per ogni k E S, vk radice di g g'.
Infatti, per k E 5,

g(xk) = g(x)k (modp,xr - 1), g'(xk) = g'(x)k (m odp,xr - 1),


dunque
g(xk) ~ g'(xk) = g(x)k - g'(x)k (modp, x r - 1),
quindi anche modulo p,h(x). Daltra parte g(x)k g'(x)k divisibile per
g(x) g'(x) gi in Z[x], pertanto g(x)k = g'(x)k (m odp,h(x)), da cui segue
g(xk) = g'(xk) (modp, h(x)), cio g(vk) g'(vk) = 0, come annunciato.
122 4 II Problem a della P rim alit

Gli elementi k di S includono anche i prodotti N z -pi e, tra questi, quegli s


elementi distinti invertibili modulo r. Allora g{x) g'{x) ha > s radici in F.
Ma g{x) g'{x) nullo o ha grado < s in Z[x] e dunque in Z p[x\. Dunque
g{x) g'(x) nullo in Zp; vale quindi in Z[x]
g(x) = g'(x) (modp).

Tra gli s elementi invertibili modulo r che derivano da prodotti N l pp stanno
anche quelli determinati dalle m potenze distinte 1, N, N 2, . . . , N 171-1 di N
modulo r. Quindi
s > m > logl N.
Allora
s > LaA log2 7VJ.
Inoltre
l = W l o g 2N \ > La/ slog2N \ .
Per ogni sottoinsieme non vuoto T di { 0 , 1 , , [y/slog2 }, costruiamo il
polinomio
9t {x ) = P (x + a),
Q,(E:T
che ha grado < [^\fslog2N \ < s e definisce un elemento gr(v) G G perch
ogni a G T soddisfa a < l; gr{x) corrisponde quindi alle ipotesi del lemma
4.7.5. I polinomi cos ottenuti sono
2 Ws\log2 N + l _ > 2 \ - ^ l o g 2 N ^ > jyfiVsJ

Per T = T', gr(%) e gT'(%) non possono essere congrui modulo p. Dal lemma
4.7.5 segue che i polinomi gr(%) definiscono elementi distinti in G. Dunque
|G| > A^Lv^j ,
come previsto.
Questo chiude la dimostrazione.

4.8 V ariazion i su A K S

La prima versione dellalgoritmo A K S fu divulgata, come gi riferito, nel


lestate 2002, e suscit subito interesse, reazioni, commenti, suggerimenti su
possibili miglioramenti e implementazioni. Gli stessi Agrawal, Kayal, e Saxena
hanno quindi provveduto negli anni successivi a perfezionare lidea originaria
e a darne nuove formulazioni. Accenniamo in questo paragrafo a due recen
ti e notevoli sviluppi, che migliorano ulteriormente A K S dal punto di vista
pratico, abbassandone i tempi di lavoro.
Il primo dovuto essenzialmente a Bernstein e Berrizbeitia (con contributi di
Cheng) e si basa sulle seguenti considerazioni.
4.8 Variazioni su AKS 123

E se r c iz io 4.8.1 Sia N > 2 un primo. Si ricordi che Zjy un campo e si fssi


un polinomio monico a coefficienti interi f ( x ) di grado d irriducibile modulo
N . Si provi che esiste un polinomio g ( x ) G Z[x] che soddisfa

(a) g{x)Nd~1 = 1 (m odN ,f(x))


e, in riferimento ad un qualunque intero d' > 1 che divide N d 1,
N d -1
(b) per ogni fattore primo q di <f, g(x) * 1 invertibile modulo N, f(x).

(.S u g g e r i m e n t o . Si costruisca lampliamento semplice F = Z j y ( v ) di Z n tra


mite una radice v di f ( x ) modulo N , si ricordi che \F\ = N d e che il gruppo
moltiplicativo F * ciclico e ha, ovviamente, ordine N d 1. Si fssi conse
guentemente un polinomio g ( x ) a coefficienti interi tale che g ( v ) genera F * .
Si osservi che g ( v ) ha periodo N d 1 in F*. Si deducano (a) e (b).)
Sulla base di queste osservazioni, consideriamo un intero dispari N > 2 e
un polinomio monico f { x ) a coefficienti interi di grado d. Il procedimento di
Bernstein-Berrizbeitia prevede di fissare
un altro polinomio a coefficienti interi g ( x ) ,
un intero d' > 1 tale che d ' \ N d 1 e d' > (2 d log N ) 2
per cui valgano (a ) e (b). Si prova allora:
T e o r e m a 4.8.2 ( B e r n s te in -B e r r iz b e itia ) S ia n o iV ,/ ( # ) , g ( x ) , d, d' co m e
a p p en a d e s c r i t t o , valg a n o in p a r tic o la r e (a) e (b). A llo r a N p r i m o se e solo
se

(1) N n o n u n a p o t e n z a p e r f e t t a ,
(2) ( y - l ) Nd = y Nd - l ( m o d N ,f ( x ) ,y d' - g(x)) inZ[x,y\.
E chiaro che (1 ) e (2) sono soddisfatte quando N primo. (2) segue in par
ticolare ancora dal teorema 4.3.4, che gi alla base di A K S . Cos il punto
cruciale della dimostrazione escludere (1) e (2) quando N composto.
Si ottiene comunque una nuova elegante caratterizzazione della primalit, che
modifica e perfeziona A K S ed ha anche il pregio di originare un algoritmo
probabilistico di primalit di tipo Montecarlo che, ricorrendo ai testimoni
g ( x ) , d ' per f ( x ) opportuno

lavora in tempo approssimativamente iV),


pienamente affidabile quando risponde N P R I M O , mentre ha probabilit
di errore < \ quando azzarda N C O M P O S T O .
Dunque 200 successive iterazioni con la comune conclusione N C O M P O S T O
abbassano il margine di imprecisione ben sotto al fatidico livello di IO-50. Si
noti la simmetria con i procedimenti di Solovay-Strassen e di Miller-Rabin,
che garantiscono sicurezza assoluta quando rispondono N C O M P O S T O , e
altrimenti probabilit < \, \ rispettivamente che la risposta N P R I M O sia
corretta.
124 4 II Problem a della P rim alit

Combinando luno o laltro di tali algoritmi con questa nuova procedura ba


sata sul teorema di Bernstein-Berrizbeitia, si ha certezza quasi definitiva di
riconoscere se un dato N primo o composto in tempo complessivamente
rapido, approssimativamente 0(7og| N ) . Basta svolgere le due procedure in
parallelo: una risposta N C O M P O S T O dallalgoritmo di Solovay-Strassen o
da quello di Miller-Rabin assicura che N davvero composto, e una risposta
N P R I M O da parte del nuovo algoritmo garantisce che N davvero primo,
I casi eccezionali corrispondono alla situazione particolarmente sfortunata in
cui la prima procedura dichiara N P R I M O e la seconda N C O M P O S T O .
Di recente stato provato, comunque, anche un procedimento deterministico
di probabilit che si ispira ad A K S ma ne abbassa i tempi di lavoro alla soglia
di 0(7o#2 N) (la migliore possibile per A K S , come gi osservato). Lalgoritmo
dovuto a Lenstra e Pomerance e opera sulla base della seguente osservazione
sui primi.
E s e r c iz io 4 .8 .3 Sia N > 2 un primo. Si ricordi che Z tv un campo e si
consideri, come prima, un polinomio monico f { x ) G Z[x] di grado d irriducibile
modulo N . Si dimostri:
( a) f ( x N ) = 0 ( m o d N J ( x ) ) ,
(b) x Nd = x ( m o d N , / ( # ) ) ,
(c) per ogni fattore primo q di d, x N<1/q x invertibile modulo N , f(x).

(.S u g g e r i m e n t o . Come nellesercizio precedente, si formi lampliamento sem


plice F = Z tv( u ) di Z tv con una radice v di f { x ) modulo N . Si noti \F\ = N d .
Siccome ogni intero a soddisfa a N = a { m o d N ), si ha f { v N ) = ( f ( v ) ) N = 0 -
da cui si ottiene (a ) -. Si ricordi poi che v N = i?, e si deduca (b). Quanto a
(c), si osservi che, per q divisore primo di d, non pu essere v Nd/q = i?, altri
menti v sta in un campo con N d/ q elementi, mentre sappiamo che la minima
estensione di Z ^ con v F e ha ordine N d).
Lenstra e Pomerance provano allora:
T e o r e m a 4 .8 .4 ( L e n s t r a P o m e r a n c e ) S ia n o N un in ter o d isp a r i > 2, d
un in ter o tale che l o g \ N < d < N , f { x ) un p o lin o m io m o n ic o a co efficienti
in t e r i di g rado d p e r cui valg o n o (a), (b) e (c). A llo r a N p r i m o se e solo se

(1) N n o n p o t e n z a p e r f e t t a ,
(2) N n o n ha f a t t o r i p r i m i < d ,
(3) (x + a ) N = x N + a ( m o d N , f ( x ) ) p e r ogni in te r o p o s it iv o a < yfd lo g ^ N .

Ovviamente (1), (2), (3) valgono se N primo, in particolare (3) richiama


ancora lidea base di A K S . Cos il punto chiave della dimostrazione provare
che un numero composto N viola una delle tre condizioni.
Si noti poi che (1), (2), (3) sono rapide da verificare conoscendo f ( x ) e d.
Quindi per ottenere complessivamente una procedura veloce basta costruire in
tempi brevi un opportuno polinomio f ( x ) . Le tecniche usate a questo proposito
4.8 Variazioni su AKS 125

da Lenstra e Pomerance fanno riferimento a idee di Gauss per la costruzione


dei poligoni regolari di n lati.

E s e r c iz i 4 .8 .5

1. Si indichi quali tra i seguenti numeri composti sono pseudoprimi di


Carmichael e quali no:
2167;
2465;
2821;
3025;
6601;
8911.
(.Suggerimento: si sfruttino i teoremi 4.2.4 e 4.2.6).
2. Si provi che ogni numero di Fermat F(m) = 22 +1 che non primo co
munque pseudoprimo in base 2. (Suggerimento: chiaro che 2 primo con
ogni numero di Fermat F (m ), da provare che = 1 (m odF(m )),
cio che F(m) divide 221, per ogni m. Si osservi che 221 = F(2m) 2
e si ricordi che F{2m) 2 eguaglia il prodotto degli F(i) per i < 2m. Si
noti che m < 2m per ogni m).
3. Si mostri in quali casi TV pseudoprimo di Eulero in base a:
TV = 3, a = 25;
TV = 7, a = 25;
TV = 11, a = 8;
TV = 17, a = 9;
TV = 19, a = 9.
4. Controllare attraverso i test di Solovay-Strassen e di Miller-Rabin la pri-
malit di 107, 139, 1807, 4693, 5879. Si richiede una probabilit massima
di errore dello 0, 5%. Si confrontino poi le velocit tra i due metodi (per ri
spettare la causalit della scelta dellinput a si utilizzi la funzione Random
presente in qualunque calcolatrice scientifica).
5. Si mostri che lalgoritmo di Miller-Rabin riconosce TV = 13 e TV = 561
come primi quando consulta a = 2. E lalgoritmo di Solovay-Strassen?
6. Si ricordi che 561 composto. Si mostri che lalgoritmo di Miller-Rabin
lo dichiara probabilmente primo quando si affida al testimone a = 101.
Invece lo stesso algoritmo certifica che 561 composto se interpella a 2.

R if e r im e n t i b ib lio g r a f ic i

Una avvincente introduzione ai numeri primi in [57]. [19] un altro ottimo


riferimento, ancor pi approfondito e dettagliato. Da citare anche [38]. Il
126 4 II Problem a della P rim alit

lavoro di Carmichael relativo agli pseudoprimi [14]. Linfinit degli pseudo


primi di Carmichael provata in [4]. Unaltra prova che linsieme dei primi
sta in N P in [54]. Lalgoritmo di Solovay-Strassen fu proposto in [70]. Una
trattazione del teorema di Sylow (usato nella dimostrazione del teorema 4.5.3)
in [36], ad esempio. Lidea dellalgoritmo di Miller-Rabin nasce da [49] e si
sviluppa in [55]. A proposito di altri algoritmi di primalit citati nel corso
del capitolo, rimandiamo a [2] per quello di Adleman-Huang, a [3] per quello
di Adleman-Pomerance-Rumely, a [18] per quello di Cohen-Lenstra, e final
mente a [31] per quello di Goldwasser-Kilian. La computazione quantistica
introdotta, ad esempio, in [71]; per lalgoritmo quantistico di Shor si vedano
[65], [66]. Arriviamo finalmente ad A K S. Lultima versione dellarticolo di
Agrawal, Kayal e Saxena si trova in [1]. [8] e il pi recente [33] sono articoli
espositivi che introducono e discutono lalgoritmo. Larticolo di Fouvry, citato
nella nostra esposizione di A K S [28]. I pi recenti sviluppi segnalati a fine
capitolo si trovano in vari articoli [9], [42] e altri ancora non pubblicati: [33]
ne d ampio resoconto. Un algoritmo per riconoscere le potenze di interi
discusso in [7] e [10].
5

Il Problem a della Fattorizzazione

5.1 In tro d u zio n e

Nel precedente capitolo abbiamo discusso gli algoritmi di primalit. Adesso


affrontiamo quelli che riguardano la fattorizzazione. Abbiamo gi osservato
come questultimo problema sia da ritenersi pi complicato: infatti possibile
stabilire che un numero N composto senza ottenere alcuna informazione sulla
sua decomposizione in fattori primi. Del resto, gi nel capitolo 1 abbiamo
avuto modo di osservare come talora i numeri di Fermat siano riconosciuti
come composti senza che sia ancora noto alcun loro divisore proprio. La stessa
paradossale situazione si manifesta tra i numeri di Mersenne, come il lettore
pu facilmente controllare visitando il sito h t t p : / / w w w . m e r s e n n e . o r g .
Vedremo in questo capitolo che, allo stato attuale delle conoscenze, i metodi
conosciuti per la fattorizzazione sono effettivamente pi lenti di quelli di pri
malit. Questa differenza non cosa da poco, anzi il fondamento di alcune
procedure crittografiche di largo impiego e alta sicurezza, quali il sistema RSA
che tratteremo nel prossimo capitolo. E anche da dire che, ove i calcolatori
quantistici fossero applicabili nella pratica, lalgoritmo quantistico di Shor an
nullerebbe questa differenza tra primalit e fattorizzazione, insieme alle sue
conseguenze.
Consideriamo comunque un intero dispari N > 2, come nel capitolo preceden
te. Gi conosciamo algoritmi rapidi per verificare se N composto oppure no.
Come gi sottolineato, pu capitare che in questi procedimenti la risposta N
C O M P O S T O , pur assicurando lesistenza di un divisore proprio d di N , non
fornisca esplicitamente un tale d e dunque non dia informazioni dirette sulla
fattorizzazione di N. Cerchiamo allora algoritmi per il seguente:
P r o b le m a . P e r N c o m p o s t o d i s p a r i , d e t e r m i n a r e un d iv is o r e d di N ta le che
1 < d < N.
Un simile procedimento, applicato, dopo N , a d ed al quoziente ^ e cos via,
fornisce, in definitiva e almeno in linea di principio, la decomposizione in fat
tori primi di N. Di pi, il numero delle eventuali iterazioni del procedimento
128 5 II Problem a della Fattorizzazione

necessarie per completare la fattorizzazione si pu limitare polinomialmente


rispetto a log^ N (come facile controllare), dunque, se si trova un algorit
mo rapido che determina da iV, se ne deduce un metodo veloce anche per
decomporre N in fattori primi. Il capitolo sar allora dedicato a presentare al
cuni algoritmi per la risoluzione del problema sopra enunciato ed a discutere,
finalmente, Pefficienza di queste procedure. Nel dettaglio, descriveremo due
metodi relativamente elementari dovuti a Pollard; poi un altro procedimento
basato su un approccio classico e su unidea gi nota a Fermat (conseguen
temente denominato fattorizzazione alla Fermat); infine, un algoritmo per
certi versi rivoluzionario e innovativo di H. Lenstra Jr., che inaugura luso del
le curve ellittiche nella fattorizzazione. Un breve panorama di altri possibili
approcci fornito nel paragrafo finale.

5.2 II M e to d o p 1

Cominciamo con un procedimento molto semplice, dovuto a Pollard. Sia N


il nostro numero composto dispari. Ogni fattore primo p di N , ovviamente,
dispari, e quindi il suo predecessore p 1 divisibile per 2. Assumiamo poi
che p 1 sia prodotto di fattori primi tra loro distinti e up i c c o l i , ad esempio
< s dove s un intero prefissato. Allora p 1 divide si e quindi possiamo
dedurre dal Piccolo Teorema di Fermat che, per ogni intero a primo con p (ad
esempio per a 2) vale la congruenza

a s = 1 ( m o d p ),

in altre parole che p divide a sl 1. Cos p divide anche (as! 1 , N ) , e (as! 1 , N )


diventa un ragionevole candidato come divisore ^ 1, N di N .
In conclusione il procedimento funziona come segue.
M e t o d o p 1 (P o lla r d ) S ia N c o m p o s t o d is p a r i > 2 . S i fissa n o

un in te r o p o s i t i v o s,
un in te r o a t r a 1 e N 1 ( a d e s e m p i o a 2).

Si ca lco la a n z i t u t t o (a, N ) . S e (a, N ) ^ 1, a llo r a (a, N ) r iv e l a un d iv is o r e


p r o p r i o d i N . A l t r i m e n t i a e N s o n o p r i m i t r a lo r o e si c a lco la n o

a sl 1 m o d u l o N ,
. d = ( a s - 1, N ) ,

c o n f id a n d o che d c o s t i t u i s c a il d iv is o r e p r o p r i o di N che s t i a m o c e rc a n d o .
Si noti che s indipendente da N e dalla sua lunghezza; cos almeno in teoria
il calcolo di s non incide sui tempi di lavoro dellalgoritmo; ovviamente, per
s piccolo, la computazione non attarda il procedimento neppure nella pratica.
Altrettanto pu dirsi degli altri calcoli (di as 1 modulo iV, o dei due massimi
comuni divisori richiesti). Dunque il procedimento si svolge in tempi rapidi.
Daltra parte lalgoritmo non fornisce alcuna garanzia di successo, visto che si
5.3 II M etodo p 129

basa sulla speranza di qualche premessa fortunata a proposito dei fattori primi
p di N. In questo senso il metodo p 1 pu fallire (per una scelta disgraziata
di s, o per particolari valori di N).
E s e m p io 5 .2 .1 Vediamo come il metodo rivela la fattorizzazione di N = 91:
ovviamente il procedimento si applica in genere a valori ben pi grandi di 91,
il caso di 91 serve solo per illustrarlo. Scegliamo s = 3 (cos s! = 6), a = 2.
Allora 26 1 = 63, (63, 91) = 7. Si conferma in questo modo che 7 divisore
di 91, e si conclude facilmente 91 = 7 13. Si noti che la scelta s = 5 (e quindi
s = 120), a 2 non sarebbe altrettanto fortunata, infatti 2120 = 1 (mod91),
e quindi (2120 1, 91) non rivela alcun divisore proprio di 91.

5.3 II M e to d o p

Il Metodo p, ancora dovuto a Pollard, considera il composto dispari N e ne


cerca un divisore proprio d allinterno di sequenze predefnite di interi, ad
esempio quelle generate da
un intero xo,
una funzione polinomiale / da Z a Z
ponendo

X i = f ( x 0), x2 = f ( x l), Xj + 1 = f(Xj ), . . . (j ' g N).

Lidea quella di calcolare il massimo comune divisore (xj x*;, N) per ogni
scelta di j < k in N sperando di ricavarne un valore ^ 1, N. In tal caso,
(xj Xjfe, N) il divisore proprio d di N che stiamo cercando. Il fondamento
del discorso il seguente: sappiamo che c un divisore d ^ 1, N di IV, anche
se non conosciamo d, e anzi cerchiamo di individuarlo; sappiamo anche che
gli elementi xo,xi,X2 , ... , Xj,Xj+i , ... (j E N) prima o poi contengono una
ripetizione modulo d perch Z^ finito: ci sono stime ragionevoli che fissano
questa ripetizione entro 0(y/N ) passi, e anche prima. Si ha allora, per j < k ,
xj = Xk (modd), e quindi d divide non solo IV, ma anche Xj x^. E da
prevedere che (xj Xk,N) possa allora rivelare proprio d, o comunque un
divisore proprio di N. Tra laltro, si pu ricordare che la ricerca di un singolo
massimo comune divisore si fa in tempi rapidi rispetto alla lunghezza di N.
Si noti poi che, se j < k sono gli indici che determinano la prima ripetizione
xj = Xk (modd), allora si ha Xj+1 = f(x j) = f(xk) = Xk+i (modd) e via
dicendo, dunque la sequenza xo ,xi,X 2 , . . . , . consiste di
un ciclo Xj, . .., Xk-i che si ripete modulo d (nel senso che xj = Xk {modd),
Xj+i = Xk+i {modd) e cos via)
preceduto da
una coda xq, x i , . . . , Xj_i.
130 5 II Problem a della Fattorizzazione

La figura che ne deriva (un ciclo pi una coda) richiama la lettera greca rho
p; da qui nasce il nome del metodo.
E s e m p io 5 .3 .1 Supponiamo ancora di considerare N = 91 e di sapere gi
che 91 composto. Scegliamo

x0 = 1, /(x) = x 2 + 1 Vx G Z.

Allora
xi = 2, x 2 = 5, x 3 = 26, ... ;
si verifica (x3 x2, iV) = (26 5, 91) = (21, 91) = 7. Deduciamo che 7
divisore di 91; facile ricavare che 91 = 7 - 1 3 l a decomposizione di 91 in
fattori primi.
O s s e r v a z io n i 5 .3 .2

1. Si noti anzitutto che lavoriamo modulo N, possiamo conseguentemente


sostituire ciascun xj con il suo resto nella divisione per N e supporlo tra
0, 1, N -l.
2. A questo proposito, essenziale che la funzione / si preservi per con
gruenze modulo N, cio che si abbia /(x) = f(x ') (m odN ) ogni volta che
x = x 1(mod N ). E per questo che si sceglie / tra le funzioni polinomiali.
3. Bisogna comunque valutare con attenzione se la strategia appena esposta
ha speranza di rapido successo. In effetti dobbiamo prendere atto che,
fissato un naturale k e il corrispondente x k, il procedimento prevede di
calcolare (xj x k, N) per o g n i naturale j < k; possiamo dunque aspettar
ci tempi lunghi di computazione (sempre ammesso che si incontri davvero
prima o poi una coppia fortunata j < k).
4. Tuttavia possiamo osservare che, se jo < &o permettono di determinare
un massimo comune divisore d = (xJO x^0, N) ^ 1, N, allora, per ogni
scelta di due naturali j e k tali che k j = ko jo (cio k ko j jo),
si ha d | (xj Xjfe, N). Infatti, per m = k ko = j ~ jo, %j = f m(xj0) =
f m(xko) = x k (modd). Naturalmente pu capitare che (xj x k, N) > d;
ma si verifica che la probabilit di questo rischio assai limitata, almeno
quando N grande o, meglio, quando prodotto di primi molto grandi (i
casi che maggiormente ci possono interessare nella pratica).
Sulla base di queste osservazioni, possiamo allora organizzare il seguente
raffinamento della precedente strategia.
p ( P o lla r d ) Per ogni k come sopra, cerchiamo il naturale h tale che
M e to d o
2h < k < 2h+1 (in altre parole, k ha lunghezza h + 1 in base 2) e consideriamo
j = 2^ 1. Calcoliamo d = (xj x k, N). Se d ^ 1, N, siamo a posto.
Altrimenti passiamo a k + 1.
Ricordiamo per chiarezza che:
k = 1 ha lunghezza 1 in base 2, dunque corrisponde ad h = 0, j = 0,
5.3 II M etodo p 131

k = 2, 3 (dunque 2 < k < 4) hanno lunghezza 2 in base 2, dunque


corrispondono ad h = 1, j = 1,
k = 4, 5, 6, 7 (dunque 4 < k < 8) hanno lunghezza 3 in base 2, dunque
corrispondono ad h = 2, j = 3
e cos via.
Il vantaggio del Metodo p evidente: per ogni intero positivo k , si deve cal
colare (xj Xk, N) per un solo naturale j < k.
Lo svantaggio principale consiste invece nel fatto che pu capitare per questa
via di saltare proprio qualche coppia jo < ko per cui (xj0Xk0, N) = d ^ 1, N.
Supponiamo comunque che (jo, ko) sia una tale coppia, e che in particolare
2h < ko < 2h+1. Consideriamo

j = 2h+1 - 1, k = j + (k0 - j 0).

Allora
2h+1 < k < 2h+2
e j corrisponde a k nel Metodo p. Dunque la coppia (j, k) presa in conside
razione dal procedimento di Pollard e, per la Osservazione 4 in 5.3.2, d divide
anche (Xj x^, N) e c forte probabilit che (Xj x^, N) ^ N. Inoltre

k < 2h+2 = 4 -2 h < 4jfe0.

Cos, se la coppia (jo, ko) sfuggita, il metodo prende comunque in considera


zione una coppia (j, k) che soddisfa k < 4&o e, con alta probabilit, testimonia
ancora (xj x^, N) ^ N .
E s e m p io 5 .3 .3 Per illustrare il procedimento, ritorniamo a N = 91. Sceglia
mo ancora xo = 1, /(x) = x 2 + 1 per ogni intero x. Ricordiamo

xo = 1, x\ 2 , X2 = 5, xo = 26, X4 = 40 (mod91), ...

Procedendo col metodo p si ha

(X ! - x o , A0 = (1, 91) = 1,

(x2 xi, N) = (3, 91) = 1,


(x3 xi, N) = (24, 91) = 1,
(x4 x3, N) = (14, 91) = 7;
cos, con breve ritardo su k rispetto a 5.3.1, si ottiene comunque 7 | 91.
Si pu comunque obiettare che il Metodo p, come gi quello p 1, si ba
sa parzialmente sulla speranza di circostanze favorevoli e non garantisce con
sicurezza di fornire rapidamente il divisore d ^ 1, N richiesto. E quindi ragio
nevole chiedersi se una selezione appropriata di xo e / possa favorire la ricerca
di d. Ma si vede con luso di argomenti probabilistici che la scelta di xq e /
132 5 II Problem a della Fattorizzazione

pu essere completamente arbitraria e nessun vantaggio garantito, almeno


in linea di principio, da una particolare preferenza su xo e /. Nella pratica si
osserva che f{x) = x 2 + 1 per ogni x G Z una buona funzione di controllo,
mentre le funzioni lineari f{x) = ax + b per ogni x E Z (con a e b interi
ed a ^ 0) sono da evitare perch incapaci di produrre senza troppi ritardi la
ripetizione cercata Xj = Xk (mod d).

5.4 F a tto rizza zio n e alla Ferm at

Unaltra strategia per ottenere un divisore d ^ 1, N del nostro composto


dispari N > 2 si basa sulla seguente osservazione, gi nota a Fermat.
Proposizione 5.4.1 Sia N un composto dispari. Allora possibile esprimere

N = a -b

come prodotto di due fattori a > b > 1 se e solo se N si rappresenta come


differenza di quadrati
N = t2 - s 2
con t , s naturali e t s > 1.
D im ostrazione. Chiaramente, se iV = t2 s2 la differenza dei quadrati
dei due naturali t, s e t s > 1, allora N si pu decomporre nel prodotto
N = (t + s) (t s) dove t + s > t s > 1.
Viceversa, supponiamo N = a b con a > b > 1. Notiamo che a e b devono
essere dispari perch ZV dispari. Dunque i due naturali a d= b sono pari e
dividendoli per 2 otteniamo due nuovi naturali e Inoltre

/ o y _ ( i - j ) 2= ( + ^ - ( - t ) ^ n t=Jv,

dove 2 i > 2 = ^ e 2 ^ - 2 = = 6 > l .

In conclusione, fattorizzare N = a-b con a > b > 1 equivale a decomporlo nella


differenza di quadrati N = t2 s2 con t s > 1, e le formule che permettono
di passare dalluna allaltra di queste rappresentazioni sono

a = t + s, b = t s,
a+b a b

rispettivamente. Sulla base di questa osservazione possiamo cambiare limpo


stazione del nostro problema nel senso che segue.
E dato un composto dispari N.
Cerchiamo due interi positivi t, s tali che N = t2 s2 e t s > 1.
5.4 Fattorizzazione alla Ferm at 133

La ricerca facilitata quando a e b sono molto vicini tra loro, e dunque


lecito assumere che s = sia molto piccolo e t = sia molto vicino a
y/N . Allora possiamo considerare i valori
t = iyivj + i, [Vn \ + 2 , . . . ,
per ciascuno di essi calcolare t2 N e verificare se il quadrato perfetto di
qualche naturale s. In tal caso t2 N = s2 implica N = t2 s 2 = (t + s)-(t s).
Ovviamente non detto che a e b soddisfino la premessa di essere vicini (e
del resto a e b non sono conosciuti da chi sta cercando la fattorizzazione di
N). Tuttavia, se la precedente strategia non conduce a successo in un numero
ragionevolmente breve di passi, possiamo seguire una procedura pi elaborata,
ma simile: per ogni intero m > 1, considerare gli elementi
t = [VmN\ + 1, [VmN\ + 2, ...,
e per ciascuno di essi calcolare t 2 m N e verificare se il quadrato perfetto
di qualche naturale s. In tal caso t 2 m N = s 2 implica m N = t2 s 2 =
( + $)( s) e, per m abbastanza piccolo, si pu ritenere che N e t + s
abbiano qualche fattore primo comune, in altre parole che (iV, t + s) ^ 1,
il che determina un divisore ^ 1, N di N. Pu anche essere che sia invece
(iV, t s) a svelare questo divisore.
Illustriamo il procedimento con un paio di esempi. Al solito, usiamo valori
di N piccoli e dunque facili da trattare. Il lettore deve comunque tenere
presente che questi procedimenti di fattorizzazione si applicano a numeri N
ben pi grandi e ricchi di cifre di quelli che per semplicit qui consideriamo.
E s e m p i 5 .4 .2
1. Sia N = 91. Sappiamo gi che 91 = 7-13 dove i fattori 7 e 13 sono
relativamente vicini tra loro; anzi, applicando le formule sopra descritte,
si ricava facilmente che 91 = IO2 32. Ma fngiamo di non sapere niente
di tutto questo, e procediamo considerando [y/N\ + 1 = 10. Allora gi al
primo tentativo troviamo che IO2 91 = 9 = 32 un quadrato perfetto.
Cos abbiamo la conferma che
91 = IO2 - 32 = (10 + 3) (10 - 3) = 13 7.
2. Sia ora N = 203. facile vedere che N = 7 29 e quindi N = 182 112.
Facciamo per fnta di non saperne niente e consideriamo [y/N\ +1 = 15.
Si osserva che
152203 = 22 non un quadrato perfetto,
162203 = 53 non un quadrato perfetto,
172203 = 86 non un quadrato perfetto,
e il fallimentodi questitentativi potrebbe indurre a qualche scoraggiamen
to (anche se, in realt, basterebbe aspettare un ulteriore passo per incon
trare la rappresentazione corretta). Potremmo allora decidere di cambiare
strada, ricorrere a m = 3, considerare m N = 609 e [y/3N\ + 1 = 25 e
ottenere direttamente al primo tentativo
134 5 II Problem a della Fattorizzazione

252 609 = 16 = 42,


dunque
3 203 = 252 - 42 = (25 - 4) (25 + 4) = 21 29
che rivela, appunto, che 29 divide 203.
La procedura che questi esempi lasciano intravedere sembra comunque abba
stanza casuale ed estemporanea, troppo legata al buon esito dei tentativi e
alFumore di chi li compie. Cerchiamo allora di delinearla in modo pi preciso.
Ribadiamo allora che
dato un numero composto dispari N
e che cerchiamo due interi positivi t e s tali che
t2 = s 2 (m odN ) (cio t2 s 2 = kN per qualche naturale fc),
t ^ s (modN) (cio N non divide n t s n t + s).
In questo caso a (t + s, N) verosimilmente un divisore non banale di N,
mentre b = ^ divide molto probabilmente t s. Dobbiamo per cercare un
qualche algoritmo che ci permetta di ottenere esplicitamente (e, se possibile,
rapidamente) t e s
con lo stesso quadrato modulo N,
ma n uguali n opposti modulo N.
A questo proposito converr osservare che, come conseguenza del Teorema
del Resto Cinese, quando N ha almeno due fattori primi distinti, allora ogni
quadrato modulo N ha almeno 4 = 22 radici quadrate distinte modulo N (si
ricordi la proposizione 3.3.6). Ecco allora una procedura che cerca di produrre
t e s come richiesti. Per apprezzarla, ci serve introdurre preliminarmente la
seguente definizione.
Chiamiamo minimo resto assoluto di un intero a rispetto
D e f in iz io n e 5 .4 .3
ad N Finter r tale che
, 7 N N
r = a (mod N ), < r < .

Modulo 15 a = 39 ha resto 9, ma minimo resto assoluto


E s e m p io 5 .4 .4
6. Invece il resto e il minimo resto assoluto di a = 37 (sempre modulo 15)
coincidono (con 7).
Descriviamo allora il nostro algoritmo.
M e t o d o d i f a t t o r iz z a z io n e a lla F e r m a t E dato il composto dispari N.
1. Si fissano numeri interi arbitrari 5(0), . .., b(k), si calcolano i minimi resti
assoluti dei loro quadrati modulo N e si decompongono questi minimi resti
assoluti in fattori primi (eventualmente utilizzando Vulteriore fattore 1
quando il resto negativo). Queste decomposizioni attingeranno i loro
5.4 Fattorizzazione alla Ferm at 135

fattori (primi o 1) da un opportuno insieme B = {p0, ... ,ph}- Cos, per


ogni i < k, si ha
b(i)2 = (m odN )
j< h

per opportuni naturali ol^ j (i < k, j < h).


2. Si moltiplicano tra di loro membro a membro le congruenze appena
raggiunte e si ottiene

n&w=n
i< k
2 p?'s =n H pt^ = n p f - ^ " 3 (modN).
i< k ,j< h j < h i< k j< /i

Osserviamo che Velemento a sinistra in questa congruenza evidentemente


un quadrato d l^ /e K^))2- Anche quello alhestrema destra lo purch per
ogni j < h
y
i< k

sia un numero pari e dunque si scriva come 2 (3 j per qualche intero (3j. In
tal caso, infatti,

U pT = ( m r -
j < h j< h

3. Si ha allora
= ( f P f )2 (m odN ).
i< k j< /i

Siano t ed s i minimi resti assoluti modulo N di Y ii< k^)^ n ^ h p f


rispettivamente. Dunque

t2 = s2 (modN)

e, se verifichiamo anche t ^ s (mod N), abbiamo ottenuto quanto


cercato.
Osservazioni 5.4.5
a) Dobbiamo ovviamente domandarci quanto probabile che i due valori
t ed s trovati soddisfino t ^ s (modN) e non piuttosto lalternativa
t = s (modN). Ma sulla base di quanto sopra ricordato a proposito dei
quadrati modulo N, se N ammette almeno 2 fattori primi, allora ogni
quadrato modulo N ammette almeno 4 radici quadrate, e dunque s ha
probabilit al pi \ di coincidere con t modulo N.
b) Il procedimento appena descritto si basa in modo decisivo sulla possibilit
che J2i<k divisibile per 2 per ogni j < h. Per favorire questa
situazione la pratica suggerisce di ricorrere, se possibile, a
- numeri 5(0), . .., b(k) vicini a V m N con m intero positivo piccolo,
136 5 II Problem a della Fattorizzazione

- B composto da pochi numeri primi, possibilmente tutti piccoli (insieme


eventualmente a 1).
Esem pi 5.4.6
1. Sia dapprima N = 2701. Osserviamo che V2701 si trova tra 51 e 52,
dunque 52 e 53 sono abbastanza vicini a V2701. I minimi resti assoluti
di 522 e 532 sono rispettivamente
522 = 3 (mod 2701),
532 = 108 = 22 -33 (mod 2701).
Moltiplicando le due congruenze otteniamo
522 532 = 22 34 (mod 2701),
in cui gli esponenti al secondo membro sono tutti pari e per la precisione
si ha
Po = 1 , Pi = 2.
Possiamo allora fissare
t = 52 53 = 55 (mod2701), s = 21 32 = 18 (mod2701).
Ovviamente 55 ^ 18 (mod2701). Si ricava poi (2701, 55 18) = 37, anzi
55 - 18 = 37 divide 2701.
2. Sia ora N = 1037. Stavolta ci riferiamo agli interi 29, 32 e 33, che risultano
vicini a 1/T3 7 , compresa infatti tra 32 e 33. I minimi resti assoluti
modulo 1037 dei loro quadrati sono
292 = -196 = (-1) 22 72 {mod 1037),
322 = (-1 ) 13 {mod 1037),
332 = 52 = 22 13 {mod 1037).
Poniamo allora B = {1, 2, 7, 13} e notiamo
292 322 332 = (-1 )2 24 72 132 {mod 1037).
Di nuovo, la condizione chiave sulla parit degli esponenti a destra
soddisfatta per
Po = 1 , Pi 2 , P 2 P 3 1-
Scegliamo allora
t = 29 32 33 = -486 (mod 1037),
s = (-1 )1 22 71 131 = -364 (mod 1037)
e notiamo 486 ^ 364 (mod 1037), (1037, 486 364) = 61.
Naturalmente gli esempi precedenti corrispondono a casi fortunati, che ar
rivano rapidamente al lieto fine. Ma non sempre le cose scorrono cos facil
mente, come il lettore potr verificare direttamente azzardando qualche altra
applicazione delPalgoritmo.
5.5 Fattorizzazione e Curve E llittiche 137

5.5 F a tto rizza zio n e e C urve E llittic h e

Abbiamo gi accennato al possibile impiego delle curve ellittiche nel problema


della primalit, ad esempio nelFalgoritmo di Goldwasser-Kilian. Daltra parte,
almeno in quel contesto, i progressi determinati dal ricorso alle curve ellittiche
sono superati da A K S. Ma le curve ellittiche sono utili anche nel problema
della fattorizzazione, e anzi vi svolgono ruolo cruciale allo stato attuale delle
conoscenze. Vediamo perch. Il contesto quello consueto: dato un composto
dispari N > 2 e cerchiamo un divisore d ^ 1,N di N. Gi sappiamo che ci
sono procedimenti di fattorizzazione che si riferiscono a campi finiti, come Zp
per p primo, e ai relativi gruppi moltiplicativi, come Z*. Ad esempio il metodo
p 1 di Pollard fa esplicito riferimento, fin dal nome, a p 1, cio al numero
degli elementi del gruppo Z* per p fattore primo di N, e confida in certe sue
auspicabili propriet, che favoriscano Fidentifcazione di d: nella fattispecie,
che i fattori primi di p 1 siano piccoli.
Chi ama le sottigliezze teoriche avr piacere di osservare che in un gruppo
ciclico come Z* il numero degli elementi (p 1 nel caso specifico) linfor
mazione chiave per svelare lintera struttura del gruppo, che si compone delle
p 1 potenze distinte di uno opportuno dei suoi elementi.
Daltra parte, come gi detto, il metodo p 1 si basa sulla speranza che, per
qualche primo p divisore di N, p 1, ovvero lordine di Z*, non abbia fattori
primi troppo grandi ; se questo non si verifica per nessun p, lalgoritmo non
ha capacit di successo.
Nasce allora lidea di sviluppare analoghi procedimenti in un contesto pi
ampio, in riferimento a un pi largo spettro di gruppi finiti collegati ai vari
p, in particolare alle curve ellittiche E sugli Zp. Una pi vasta possibilit di
valori per \E\ dovrebbe, in linea di principio, favorire per ogni p lincontro di
gruppi su Zp di ordine non divisibile per nessun primo grande.
H. W. Lenstra Jr. inaugur allora luso delle curve ellittiche in fattorizzazione
proprio sulla base di queste considerazioni. Prima di introdurre lalgoritmo
di Lenstra, conviene per che premettiamo alcune osservazioni su una curva
ellittica E
( ) y12 = x 3 + olx + /?
con cq /? interi. Lequazione si pu leggere allora sia su Z - dunque su Q -, sia
su Zp per ogni p primo.
1) Sappiamo che su Q lespressione ( ) definisce una curva ellittica purch
4a 3 + 27f32 ^ 0 - cio x 3 + ax + /3 non abbia radici multiple in Q
Indichiamo con E{Q) questa curva ellittica.
2) ( ) definisce anche una curva ellittica in Zp per ogni primo p divisore di
un fissato N (magari p ^ 2,3) purch 4a 3 + 27^2 sia diverso da 0 modulo
ogni tale p e quindi, in definitiva, purch (4a 3 + 27f32,N ) = 1. In tal caso
indichiamo con E{Zp) la curva ellittica di equazione ( ) su Zp.
138 5 II Problem a della Fattorizzazione

Indicheremo nel seguito con O il punto alFinfnito di E{Q) e con Op quello di


E (lip) per ogni p.
I punti di E{Q) (escluso quello O alFinfnito) sono coppie ordinate di razionali
(mn_1,r s _1) con m, n, r, s interi, m ,s / 0, (m, n) = 1 , (r, s) = 1 . Ciascuna di
queste coppie ha senso nei campi Z p al variare di p tra i divisori primi di N
(nel senso che definisce un punto di E (Z P) per ogni p) purch n, s siano primi
con N e dunque invertibili in Z p per ogni p. Siano P, P' due punti di E{Q)
che hanno questa propriet e non sono opposti tra loro. Sia poi p un divisore
primo di N. Ci possiamo domandare in quali casi anche la loro somma in
E (Q )
P + P ',
cos come stata definita dalle formule nel paragrafo 3.12, determini un punto
diverso da quello alFinfnito anche in E (Z P) per ogni divisore primo p di N,
abbia cio coordinate con denominatore primo con p. Non sorprendentemente
si verifica che questo accade se e solo se per ogni p
i punti P, P' non sono luno lopposto dellaltro in nessuna delle curve
ellittiche E (Z P) al variare di p tra i divisori primi di N.
II lettore pu trovare il relativo controllo in dettaglio in [37], proposizione
VI.3.1. Adesso notiamo che, per p divisore primo di N, la curva E (Z P)
finita. Di conseguenza ogni suo punto ha periodo finito. In particolare, se P
un punto di E (Q), allora per qualche intero positivo k che divide |P(Z p)|,
vale in E (Z P) che k P = Op e cio che P e P' = {k 1) P sono opposti.
Ma allora il punto k P in E(Q) ha qualche coordinata il cui denominatore t
non pi primo con N, e possiamo sperare che questo denominatore t riveli
un divisore d ^ 1, N di N come d = (t, N).
Lalgoritmo di Lenstra tende dunque a identificare gli interi positivi k per cui
k - P ha qualche coordinata non pi prima con N. Eccone i dettagli.
Sia N composto dispari > 2. Possiamo supporre
A lg o r i t m o d i L e n s tr a .
che N non sia divisibile per 2 e per 3 ( facile verificare se lo o no e, se
lo , possiamo prendere d = 2 o d = 3). Assumiamo anche che N non sia
una potenza perfetta, conosciamo infatti procedure rapide che riconoscono
le potenze perfette e ne calcolano la base (si veda la relativa discussione nel
paragrafo 4.7). Scegliamo
due interi <a, /3
e calcoliamo 4a 3 + 27f32.
(i) Se (4<a3+ 27/^2, N) = N , cio se N divide 4a3-\-27f32 e quindi 4a3+ 27/32 =
0 (modp) per ogni divisore primo p di N , cambiamo subito cq f3.
(ii) Se (4a 3 + 27^2, N) ^ 1, N, possiamo prendere d = (4a 3 + 27^2, N).
(in) Se (4<a3+ 27/^2, N ) = 1, alloray3 = x 3+ otx + f3 definisce una curva ellittica
E{Zp) in Z p per ogni primo p divisore di N.
Se vale (iii) scegliamo ancora
5.5 Fattorizzazione e Curve E llittiche 139

un punto P = (ran 1, rs su E{Q) che ammetta denominatori n, s primi


con N (e quindi generi punti su ogni curva ellittica E (Z P) per p primo,
P\N).
Si fa poi riferimento a un intero k prodotto di potenze piccole di primi
piccoli: dunque per L, L' prefssati, k = Ylr rhr dove r varia tra i primi < L
e anche gli esponenti hr sono piccoli nel senso che ciascun rhr < L '.
Si calcola k P = P + + P in E(Q) e si controlla se il risultato mantiene
'-------- v-------- '
k
ancora la propriet di avere coordinate con denominatori primi con N. Se no,
e t un denominatore che non rispetta la condizione, allora (N, t) verosimil
mente il divisore d che stiamo cercando (perch probabile che N non divida
t). Altrimenti si scelgono nuovi interi a, fi e eventualmente un nuovo punto
P = (ran_1,r s _1) sulla relativa curva ellittica su Q.
Dunque Falgoritmo sceglie anzitutto una curva ellittica E su Q e un suo punto
P , cerca poi i possibili interi k tali che k-P = Op in E (Z P) per qualche divisore
primo p di N tra i numeri che hanno fattorizzazione
k=
r

dove tanto i primi r quanto gli esponenti kr sono piccoli (rispettivamente


minori o uguali a L, Z/).
Ovviamente la possibilit di successo nella ricerca di k aumenta se le restrizioni
che riguardano L, V diventano meno rigide, e si ammettono valori pi grandi
per L, L '. Ma crescere L, L' significa anche allungare i tempi di calcolo di k-P.
In questo senso, la scelta di valori piccoli di L, L' pu essere pi conveniente.
Valutiamo allora la probabilit che un intero k ottenuto in questo modo sod
disfi k P = 0 su qualche curva ellittica E (Z P) quando p varia tra i divisori di
N.
Si ricordi che, se vale k - P = Op in E (Z P), allora k - in quanto periodo di P
- divide \E(Zp)\, e dunque anche i fattori primi r di k - tutti < L - dividono
\E(ZP)\. Quindi dobbiamo controllare quanto segue.
Punto chiave: per p divisore primo di N, quale la probabilit che una curva
ellittica arbitraria E su Z p abbia ordine \E\ non divisibile per nessun primo
> L (ed anzi per nessuna potenza di primo > Z/)?
In tal caso, i divisori primi r di \E\ sono < L e possono fornirci un valore k
come da noi cercato. Il teorema di Hasse 3.12.6 ci torna allora utile, perch ci
dice che \E\ soddisfa le limitazioni
P + 1 - 2V p < || < p + 1 + 2y/p.
Si ottiene conseguentemente una stima attendibile del tempo di lavoro che
Falgoritmo richiede per arrivare a determinare con successo d; se N non
divisibile n per 2 n per 3 e non neppure potenza perfetta, tale stima al
pi
140 5 II Problem a della Fattorizzazione

ecyJlog2 N - l o g 2 {log2 N )

per una costante piccola c. Questo valore, pur ancora esponenziale nella
lunghezza di N, (pi o meno) quanto di meglio si conosce attualmente per
il problema della fattorizzazione.

5.6 R iflessio n i finali

Abbiamo descritto vari algoritmi di fattorizzazione non banali, anzi abbastan


za sofisticati dal punto di vista teorico, e pur tuttavia non sicuri (visto che
si fondano spesso su situazioni contingenti e fortunate) e conseguentmente
neppure soddisfacenti dal punto di vista della rapidit. Vi una dovizia di
altri possibili procedimenti di fattorizzazione. In altri casi, questi metodi sono
legati alla natura degli interi N da fattorizzare. Ad esempio, nel caso dei nu
meri di Fermat N = F(n), sappiamo che i divisori primi di F(n) hanno forma
particolare
k 2+2 + 1,
il che facilita - almeno in linea di principio - la loro ricerca.
Alcuni procedimenti pi generali e sofisticati si basano sulla teoria algebrica
dei numeri su campi quadratici, altri sulle frazioni continue. Pur tuttavia, i
metodi migliori oggi conosciuti per la fattorizzazione di un composto N (ad
eccezione del procedimento quantistico di Shor gi discusso) richiedono un
numero di passi che si pu restringere a
^cy/log N log log N

per unopportuna costante c (come abbiamo visto nel caso delle curve ellittiche
e dellalgoritmo di Lenstra). Questa limitazione pu essere abbassata nei casi
migliori a
p c{log N ) ^ {log log N )

che per pur sempre funzione esponenziale della lunghezza dellinput N. In


altre parole, non si conoscono algoritmi efficienti di fattorizzazione, e il tempo
di risposta dei procedimenti conosciuti si rivela sensibilmente pi alto di quelli
dei migliori algoritmi di primalit. Su questo dislivello si basa laffidabilit di
alcuni dei moderni sistemi crittografici, come vedremo nel prossimo capitolo.

E s e r c iz i 5 .6 .1

1. Si fattorizzino i numeri 2639 e 2821 utilizzando il metodo p 1.


5.6 Riflessioni finali 141

2. Si fattorizzino gli stessi numeri 2639 e 2821 dellesercizio precedente usan


do per il metodo p (suggerimento: ci si riferisca ad esempio a xo = 1 e
alla funzione f{x) = x 2 + 1 per x E Z).
3. Si fattorizzi il numero 4633 utilizzando il metodo di Fermat (suggerimento:
si usino gli interi 67 e 68, oppure gli interi 68, 69 e 96).
4. Si utilizzi lalgoritmo di Lenstra per fattorizzare:
6 (utilizzando la curva ellittica E di equazione y2 = x 3 + x 1 e il suo
punto P( 1,1));
36;
54.

R if e r im e n t i b ib lio g r a f ic i

I procedimenti di fattorizzazione di Pollard sono sviluppati in [52] e [53].


Una loro implementazione presentata in [50]. [41] inaugura luso delle curve
ellittiche per la fattorizzazione degli interi. [37], cos come [19], danno ampio
resoconto di questi e altri procedimenti di fattorizzazione. Si veda anche [56].
Una discussione sui tempi di lavoro dei metodi conosciuti di fattorizzazione
in [40].
6

A ncora Crittografa

6.1 C ritto g ra fa a C hiave P u b b lic a

Ritorniamo finalmente al tema introdotto nel primo capitolo: la crittografa


a chiave pubblica. Ricordiamo il suo ambito di applicazione e le esigenze che
vanno conseguentemente soddisfatte.
1. Non previsto uno scambio preventivo di chiave tra gli interlocutori; ogni
utente A , invece, ha una chiave privata , segreta e personale, e semmai
una chiave pubblica , aperta a chiunque; la seconda serve in genere per la
codifica dei messaggi da spedire ad A , la prima per la loro decodifica.
2. Conseguentemente, la decodifica deve essere unoperazione accessibile so
lo allutente destinatario dei messaggi, e dunque deve risultare per gli
estranei enormemente pi difficile della codifica.
Per soddisfare queste richieste si ha bisogno di funzioni a senso unico , e cio
di funzioni di cifratura che
siano facilmente computabili (in modo che chiunque possa velocemente
criptare un messaggio per un dato utente *4),
siano invertibili (in modo da permettere la decifratura),
ma abbiano uninversa il cui calcolo proibitivo in assenza di ulteriori
informazioni (quelle che costituiscono la chiave privata di A , che solo A
deve conoscere e senza la quale nessun pirata potr infrangere in tempi
rapidi un messaggio eventualmente intercettato).
Una funzione a senso unico quindi la base ragionevole di un efficiente sistema
di crittografia a chiave pubblica. Abbiamo per osservato che niente assicu
ra a priori che simili funzioni esistano. Anzi, la nozione stessa di funzione a
senso unico non ha niente di matematicamente rigoroso: infatti la difficolt
di calcolare linversa potrebbe essere soltanto transitoria e passeggera, legata
allo stato attuale delle conoscenze scientifiche, destinata a essere superata nel
futuro.
Abbiamo comunque sottolineato che ci sono due significativi settori, luno
144 6 A ncora C rittografa

della Informatica Teorica, laltro della Matematica, che possono fornire im


portanti spunti di ispirazione per la costruzione di funzioni a senso unico e,
conseguentemente, di criptosistemi a chiave pubblica. Essi sono:
la questione P = N P dellInformatica Teorica, e la conseguente esistenza
di problemi TVP-completi: privi, allo stato attuale delle conoscenze, di
algoritmi rapidi di soluzione, eppure dotati di algoritmi rapidi di verifica
delle soluzioni;
i vari problemi aperti che la Teoria Elementare dei Numeri presenta; in
particolare, la mancanza, allo stato attuale delle conoscenze, di algoritmi
rapidi di fattorizzazione.
Il presente capitolo dedicato a presentare alcuni dei principali criptosistemi
che si basano su queste situazioni, a discutere la loro attuazione nella pratica
e certi aspetti informatici e legislativi che accompagnano il loro uso nella vita
comune. La situazione a cui facciamo riferimento la consueta: abbiamo due
interlocutori A e B che si scambiano i messaggi in forma criptata e un pirata
C che cerca di violare questa corrispondenza. Chiameremo criptosistema la
procedura di codifica e decodifica che A e B e gli altri utenti adottano per
scambiarsi i messaggi. In particolare conveniamo sin dora che, per ogni utente
A,
E a indichi la procedura che codifica i messaggi per A,
D a rappresenti invece la relativa funzione di decodifica.
Le lettere E e D derivano qui dai verbi inglesi to encrypt, to decrypt (in
italiano cifrare, decifrare, appunto). Dunque E a e D a sono funzioni, Luna
inversa dellaltra, che operano sui messaggi, rispettivamente per codificarli e
decodificarli.

6.2 II L ogaritm o D isc r e to e il C r ip to siste m a di


D ifle-H ellm a n

Storicamente parlando, il primo criptosistema a chiave pubblica ad essere stato


proposto (nel 1976) dovuto a Difhe ed Heilman: esso adopera il logaritmo,
non quello delle famigerate tavole (che riguarda i numeri reali), ma lanaloga
nozione sviluppata nel contesto degli interi (e delle congruenze tra interi) nel
paragrafo 3.8. Infatti tra i reali lesponenziazione in una fissata base ^ G 1
maggiore di 0 e diversa da 1

x i gx, Vx G E,

ovviamente approssimata a meno di un preassegnato grado di precisione, non


computazionalmente pi facile della operazione inversa, e cio il calcolo del
logaritmo
y ^ log9y , Vg/ G M, y > 0.
6.2 II Logaritm o D iscreto e il C riptosistem a di Diffie-Hellman 145

Consideriamo invece, per N numero primo molto grande, il gruppo ciclico


moltiplicativo 1AN composto dalla potenze distinte 1, g, g2, ..., gN~2 di un
opportuno g primo con N (modulo N), oppure pi in generale il gruppo
moltiplicativo F*, parimenti ciclico, di un qualunque campo finito F. In questi
ambiti la situazione cambia. Infatti, fissato g,
esistono, come sappiamo, metodi rapidi di calcolo di gx (modulo N) per
ogni intero x,
ma, come anticipato nel paragrafo 3.8, non sono attualmente noti metodi
altrettanto ragionevoli per recuperare da una data potenza y di g un espo
nente naturale x < N 1 per cui y coincide con gx (quello che si chiama
il logaritmo discreto di y in base g).
Anzi, la questione di trovare algoritmi efficienti per il calcolo del logaritmo
discreto conosciuta come il Problema del logaritmo discreto, e pare molto
complessa e delicata: esistono semmai procedimenti quantistici rapidi, ancora
dovuti a Shor (il lettore interessato pu far riferimento a [66 ]), ma gi abbia
mo descritto le complicazioni pratiche di attuazione di tali metodi.
Diffie e Heilman sfruttarono nel 1976 la difficolt di calcolo del logaritmo di
screto per costruire il primo criptosistema a chiave pubblica: in esso la funzione
a senso unico proprio la esponenziazione in base g modulo un opportuno N.
Infatti essa invertibile e facile da computare, ma ha una funzione inversa
(il logaritmo discreto) proibitiva da calcolare, almeno allo stato attuale del
le conoscenze. Vediamo allora una esposizione (molto elementare) di questo
criptosistema.
C r ip t o s is t e m a d i D if f ie - H e llm a n
1. A e B concordano anzitutto una potenza q di un primo, il corrispondente
campo Unito F q e un generatore g del gruppo ciclico F*. Essi fanno parte
delle informazioni pubbliche del sistema.
2. A questo punto A si sceglie un intero positivo nj, (che si pu supporre
< q 1) e calcola gnA :
gnA completa la chiave pubblica di A, da diffondere tra tutti gli altri
utenti,
tia rappresenta invece la sua chiave privata.
3. Supponiamo adesso che A e B vogliano mettersi in corrispondenza; anche
B ha scelto la propria chiave privata n# e divulgato la sua chiave pubblica
gnB. Tanto A quanto B possono a questo punto calcolare
gUA-ns _ (^griA^riB _ (^gUE^riA .

B dalla sua chiave segreta n# e dalla chiave pubblica gnA di A; A, invece,


dalla sua chiave segreta nj, e dalla chiave pubblica gnB di B. Allora A
e B possono usare Velemento gn^ 'nB come chiave comune per cifrare e
decifrare i loro messaggi (vedremo tra poche righe in che modo).
La sicurezza del sistema rispetto a possibili incursioni di pirati si basa, come
detto, sulla difficolt del problema del logaritmo discreto. Infatti, ammettiamo
146 6 A ncora C rittografa

che un malintenzionato C intercetti un messaggio cifrato. Per decriptarlo in


tempi rapidi, C ha bisogno di conoscere #n-A'ns; ma le uniche informazioni di
cui dispone a questo proposito sono le chiavi pubbliche di A e B, dunque gnA
e gnB. Il problema dunque quello di
( ) recuperare gnA'nB da gnA e gnB.
Una semplice strategia per riuscirci quella di calcolare gli esponenti n ^ e
n#, cio 2 logaritmi discreti, poi moltiplicarli e assegnare il prodotto n ^ n#
come esponente a g. Naturalmente si possono seguire altre idee e tentare altri
procedimenti. Ma si concorda che, allo stato attuale delle conoscenze, ( )
computazionalmente intrattabile, e comunque non pi facile del problema del
logaritmo discreto: questa ipotesi di lavoro comunemente conosciuta come
Ipotesi di Diffie-Heilman.
Aggiungiamo che il sistema di Diffie-Heilman ha (ovviamente) maggiori ga
ranzie di sicurezza quando il valore scelto per q molto grande.
Per concludere, resta da chiarire come lelemento gnA'nB concordato da Al e
B in F*, pi in generale un elemento arbitrario di un campo finito F*, riesca
da solo a generare un criptosistema comune tra A e B. Ci sono varie possibi
li strategie a questo riguardo. Ad esempio possiamo riferirci ai criptosistemi
classici del Capitolo 1 , come quelli che maneggiano coppie di digraf, ciascuno
composto da 2 lettere scelte in un alfabeto di N elementi: si ha dunque a che
fare con vettori ( X ] con x e y interi compresi tra 0 e N 2 1 . Sappiamo allora

che una possibile codifica (tradizionale) di tramite la versione cifrata

avviene allora nel modo descritto dalla seguente formula

a b e
0 < x', y' < N 2
W c d f
dove a, b, c, d, e, / sono interi prefssati tra 0 e N 2 1 e ad bc primo con
N 2 (dunque con N). Vediamo adesso come, per N e q opportuni, un elemento
di F possa determinare a, , c, d, e, /.
Notiamo anzitutto che questi 6 elementi a, , c, d, e, / sono univocamente
definiti come coefficienti della decomposizione in base N 2 di un opportuno
naturale M < N 12
M = a N 10 + bN8 + cN 6 + dN 4 + eN 2 + /,
deve valere poi (ad be, N) = 1. N 12 difficilmente potenza di primo (e
sicuramente non primo), possiamo comunque fissare una potenza q = ps
di un qualche primo p tale che ps > N 12 , e pensare M come un elemento
dellanello Z q. In altre parole a, b, c, d, e, / risultano univocamente determinati
da un opportuno elemento M e Z g. Notiamo che Z g non un campo (a
meno che q = p e s = 1), in particolare non coincide con Fq (escluso il caso
6.3 Doppi Lucchetti 147

appena menzionato q = p e s = 1). Se per fissiamo una base B di F q su Z p


(intendendo F q, appunto, come spazio vettoriale sul sottocampo Zp), allintero
M, decomposto in base p secondo le potenze 1 , p, . . p s_1 di p con coefficienti
tra 0 e p 1 , possiamo far corrispondere lelemento di F q che ha le stesse
coordinate modulo p rispetto alla base B. Questa corrispondenza biunivoca
ed effettiva. Cos possiamo determinare a, , c, d, e, / (ed in definitiva la
chiave di codifica del nostro criptosistema) scegliendo un elemento del campo
F q e tramite esso, con la corrispondenza ora introdotta, il naturale M < q.

6.3 D o p p i L u cch etti

Sulla difficolt di calcolare il logaritmo discreto si basa anche il Criptosistema


di Massey-Omura, che fu proposto nel 1983 e riproduce nellambito numerico il
modello del doppio lucchetto, quello in cui gli utenti A e B cifrano e decifrano
luno dopo laltro, adoperando ciascuno una propria chiave privata.
C r ip t o s is t e m a d i M a s s e y - O m u r a

1. Si fssa anzitutto un primo (grande) q e si considera il campo Z q.


2. L utente A sceglie un numero ny, con 1 < ny, < q 1 e ny, invertibile
modulo q 1, calcola poi l inverso n ^ 1 di ny, modulo q 1: ny, e n ^ 1
costituiranno la chiave privata di A. Si noti che, per il Piccolo Teorema
di Fermat, ogni intero a soddisfa
anA-nA = a {m od q)

perch ny, n ^ 1 = 1 (modq 1). B si comporta ovviamente allo stesso


modo, scegliendo il proprio n& e calcolando n ^ 1.
3. La corrispondenza tra B e A avviene come segue. Sia a il messaggio che
B vuole inviare ad A.
B spedisce ad A il testo a cifrato con la propria chiave privata, dunque
come anB modulo q;
A cifra ulteriormente con la sua chiave privata e ottiene modulo q
(ant3)nA, cio ant3'nA, e invia il risultato a B;
B inizia a decifrare (anB'nA)n = anA {modq) e rispedisce il risultato
ad A;
A termina di decifrare elevando alla n~^ modulo q e recuperando
finalmente a.
Cos il Criptosistema di Massey-Omura riproduce esattamente il meccanismo
del doppio lucchetto: ny, e n ^ 1 rappresentano la chiave con cui A chiude e
apre lo scrigno, ed altrettanto vale per B. Si noti che le procedure che A esegue
(elevare alla n^, o alla n ^ 1) sono indipendenti da quelle di B che usa invece
gli esponenti n& e n ^ 1. In altre parole si ha

{anA)nB = (an*)nA = ,nA-riB


148 6 A ncora C rittografa

e altrettanto vale per ogni coppia di esponenti tra n ^ 1, n#, n ^ 1. C quindi


una commutativit tra le quattro operazioni di codifica e decodifica di A e 23.
La sicurezza del procedimento rispetto ai tentativi del pirata C si fonda nuo
vamente sulla difficolt di calcolare i logaritmi discreti. Infatti C, quandanche
riesca ad intercettare uno dei vari messaggi, ad esempio anB, per recuperare
il testo originario a ha bisogno di conoscere lesponente n# (per poi ricavarne
linverso modulo q 1 ), deve dunque risolvere un problema di logaritmo di
screto.
Va semmai rilevato che C, ottenuto in qualche modo ans, pu tentare di
spacciarsi per A agli occhi di 23, rispondergli cio al posto di A cifrando ulte
riormente con la sua chiave privata nc e proseguendo la corrispondenza con
23 fino a ricavare a. Si pone cos in questo caso un problema comune a molti
criptosistemi: quello di procedure di firma e autenticazione dei messaggi, che
assicurino lidentit del mittente e del destinatario. Avremo modo di parlarne
pi in l nel corso del capitolo.
Trattiamo invece adesso un altro semplice metodo crittografico, ancora basato
sui logaritmi discreti. Si tratta del Criptosistema di ElGamal del 1985. Esso
opera come segue.
C r ip t o s is t e m a d i E lG a m a l
1. Si fissano anzitutto una potenza q di un numero primo e un generatore g
del gruppo moltiplicativo del campo Fq.
2. L utente A sceglie poi come sua chiave privata un intero positivo nj, <
q l e divulga come sua chiave pubblica gnA. B procede allo stesso modo.
3. Supponiamo che B intenda spedire ad A il messaggio a. B prende un
naturale k e invia ad A la coppia (gk, a gknA). In particolare B riesce a
calcolare la coppia gknA come (gnA)k usando la chiave pubblica gnA di A.
4. A decifra come segue: eleva la prima componente gk della coppia che
ha ricevuto alla propria chiave privata n ^ e ottiene gknA; divide poi la
seconda componente a gknA per questo valore e ricava finalmente a.
Si noti che la scelta di k non ha ruolo decisivo nel procedimento, anzi A non
ha alcun bisogno di conoscere k per svolgere i suoi calcoli.
La sicurezza del criptosistema si fonda nuovamente sul logaritmo discreto.
Infatti un pirata C che pure intercetti gk e conosca gnA deve comunque ri
solvere problemi di logaritmo discreto per trovare gli esponenti k e n^. Per
lesattezza, C deve recuperare gknA da gk e gnA. Ma per lIpotesi di Diffie-
Hellman la relativa computazione tanto complicata quanto, appunto, quella
dei logaritmi discreti.

6.4 II P r o b lem a d ello Zaino


Come gi anticipato nel Capitolo 1 , altri criptosistemi a chiave pubblica sono
ispirati ai cos detti problemi NP-completi, e cio a problemi, spesso di na
tura combinatoria, e ancor pi spesso di facile presentazione, che si trovano
6.4 II Problem a dello Zaino 149

nella seguente condizione: ammettono un algoritmo rapido per la verifica delle


soluzioni - dunque stanno in N P -, non si sa se consentono un procedimento
rapido per la ricerca delle soluzioni - cio se stanno in P -, si sa invece che,
parlando alla buona, se stessero in P, costringerebbero N P e P a coincidere.
Un semplice esempio di problema TVP-completo costituito dal Problema del
lo Zaino, che si pu formulare come segue. Sono dati uno zaino con un volume
intero prefissato V , e k oggetti di volume - ancora intero - i?o, . .., Vk-i rispet
tivamente; il problema stabilire se possibile scegliere alcuni dei k oggetti in
modo che essi riempiano esattamente lo zaino, cio la somma dei loro volumi
eguagli V. Ci sono chiari algoritmi per rispondere, ad esempio procedendo per
tentativi, considerando cio ogni possibile sequenza di oggetti e controllando
se occupa completamente o no lo zaino: ma questo metodo, ancora accessibile
se k piccolo e gli oggetti sono pochi, diventa impraticabile quando k diventa
enormemente grande. In realt non si conosce nessun algoritmo polinomiale di
soluzione del problema. In compenso, esistono metodi rapidissimi di verifica:
infatti, se conosciamo la soluzione, semplice controllarla, basta sommare i
volumi coinvolti e verificare che il risultato V , riempire in altre parole lo
zaino con gli oggetti scelti e realizzare, appunto, che essi lo occupano senza
lasciare spazi vuoti e senza farlo scoppiare. Di pi, si sa che il problema dello
zaino , appunto, TVP-completo: se lalgoritmo rapido di soluzione si trovasse,
potremmo dedurne P = N P.
Si capisce facilmente che una simile situazione si presta a definire funzioni
a senso unico. In effetti, vari criptosistemi a chiave pubblica si fondano sul
problema dello zaino. Ne descriviamo il pi antico, quello proposto da Merkle
e Heilman nel 1978. Anzitutto rienunciamo il problema dello zaino in versione
pi asciutta e matematica.
P roblem a dello Zaino. Dati i naturali k, V, vo, ..., Vk-i ^ 0, determinare,
se possibile, ci, . . ak- i {0, 1} tali che V = J2i<k cl^ .
Gli oggetti che riempiono lo zaino corrispondono in questa versione del pro
blema agli indici i < k per cui ai 1 .
Una pi semplice variante della questione quella conosciuta come Problema
Supercrescente dello Zaino, e richiede sequenze i?o, . .., vk- i tali che, per ogni
i < k, Vi > Y^j<i vj Ad esempio, 2 , 3, 7, 15, 31 una sequenza supercrescente
perch 2 < 3 , 2 + 3 < 7, 2 + 3 + 7 < 1 5 e 2 + 3 + 7 + 1 5 <31, mentre 2,
5, 4 non lo perch 2 + 5 ^ 4 . Neppure 2,5,6, che pure crescente, riesce
supercrescente, visto che 2 + 5 6 .
E facile trovare algoritmi rapidi di soluzione per il Problema Supercrescente
dello Zaino: fssati k e V e la sequenza supercrescente i?o, . .., Vk-i, si per
corre i?o, ..., Vk~i a ritroso da vk~i fino ad incontrare il primo indice i per
cui Vi < V (se i non esiste, non c soluzione): i va posto obbligatoriamente
nello zaino, perch gli oggetti di indice maggiore sono pi grandi dellintero
V e quelli di indice minore, anche sommati insieme, non riescono neppure a
raggiungere il volume e dunque a riempire da soli lo zaino. Dunque, se c
soluzione, i vi partecipa; in altre parole, dobbiamo assumere ai = 1 ed aj = 0
150 6 A ncora C rittografa

per i < j < k. Adesso sostituiamo V con V vp se V Vi = 0 allora ai 1 ,


dj = 0 per ogni 0 < j < k con j ^ i costituisce la soluzione del problema.
Altrimenti ripetiamo il procedimento guardando alla sequenza supercrescente
uo, . .., Vi- 1 . Applicando questo metodo, recuperiamo alla fine una soluzione
del problema, se essa esiste. Anzi, si pu osservare che la soluzione, se c,
anche unica.
Esem pio 6.4.1 Consideriamo V = 24 e la sequenza supercrescente di sopra
2 < 3 < 7 < 1 5 < 3 L Siccome 31 > 24 > 15, si comincia col porre <24 = 0 ed
as = 1 . A questo punto si calcola 24 15 = 9 e si nota 7 < 9, deducendone
(22 = 1. Da 9 7 = 2 < 3 s i ottiene a\ 0 e ao = 1, riempiendo finalmente lo
zaino.
In conclusione, il Problema Supercrescente dello Zaino ha un algoritmo rapido
di soluzione, mentre non si conosce nessuna procedura veloce per il Proble
ma generale dello Zaino (ed anzi si paventa che non ci sia). Il Criptosistema
di Merkle-Hellman cerca di sfruttare questa situazione nel modo che adesso
descriviamo. Anzitutto possiamo convenire di rappresentare le unit di mes
saggio con sequenze (ao, . .., ak- 1 ) di 0 e 1. La cosa non difficile, basta
scrivere le lettere dellalfabeto (e cio gli interi positivi < N, dove N vale al
solito 26, o 27, o altro ancora) in notazione binaria, e dunque come sequenze
ordinate finite di 0 e 1 ; possiamo supporre che queste sequenze abbiano co
mune lunghezza k (eventualmente premettendo qualche 0 alle sequenze pi
corte). Ad esempio, se N = 27, possiamo rappresentare ogni simbolo dellal
fabeto come una sequenza ordinata di 5 cifre tra 0 e 1, da 0 che si rappresenta
00000 a 26 che invece 11010. Ci premesso, si procede come segue.
C riptosistem a di M erkle-H ellm an
1. L utente A sceglie anzitutto
una sequenza supercrescente (i?o, ..., Vk-i),
un intero m > J2i<k v
un intero positivo a primo con m
ad esempio tramite la seguente procedura. Si prendono k + 1 interi positivi
arbitrari z 0 , ..., zk~ 1 , Zk e si computano

j < i

e, finalmente,

j< k

Chiaramente (i?o, . .., vk-i) supercrescente ed inoltre si ha m > J2i<k Vi,


proprio come richiesto; a si ottiene poi facilmente conoscendo m.
2. A maschera poi (i?o, ..., vk-i) mediante una nuova sequenza (wo, ...,
Wk-i) non pi supercrescente. Nei dettagli A calcola:
l inverso b di a modulo m,
6.5 II C riptosistem a RSA 151

la sequenza (wo, ..., wk-i) che si ottiene da (i?o, . .., Vk-i) ponen
do, per ogni i < k, 0 < Wi < m e Wi = avi (rnod rn) (cio bwi =
Vi (m odm )).
Ovviamente la nuova sequenza (wo, . .., rc&_i) pu non essere supercre
scente, ed A avr comunque cura che non lo sia.
3. A questo punto A divulga come propria chiave pubblica di codifica la
sequenza (ir, . . . , w k~i), mantiene invece segreti m, b (dunque a) e
(no, ..., Vk~i): essi costituiscono la sua chiave privata di decodifica.
4. L interlocutore B che vuole trasmettere ad A (ao, . .., a>k-i) (e cio il
numero naturale rappresentato nella forma sopra concordata) computa
W = Y.i<k ciiWi e lo invia ad A. Cos avviene la codifica Ej. A recupera
(ao, . .., ctk-1 ) calcolando prima bW, poi il resto V di bW nella divisione
per m

V = bW = ^ (libivi = ^ clV (modm), 0 < V < m.


i<k i<k

Siccome ^2i<k clV < Vi < m, A deduce che V proprio uguale


a J2ickaiv- A questo punto A decodifica la sequenza (ao, , ak-i)
applicando a V l algoritmo del Problema Supercrescente dello Zaino.

Invece un pirata C che intercetta (ao, . .., ak~i) e conosce soltanto la sequen
za (non supercrescente) (wo, ..., wk- 1 ) si trova di fronte ad una istanza del
Problema generale dello Zaino, con tutte le difficolt che ne derivano.
In realt il criptosistema di Merkle ed Heilman non fu una proposta fortunata:
gi nel 1982, pochi anni dopo la sua divulgazione, Shamir osserv che le se
quenze pubbliche (wo, . .., wk-i)j pur non essendo supercrescenti come quelle
private, ammettono comunque un loro specifico algoritmo rapido di soluzione
che, senza avere la pretesa di soddisfare il Problema generale dello Zaino, rie
sce comunque ad infrangere con successo il caso particolare di (reo, ..., wk- 1 ).
Dopo questa osservazione di Shamir, perfezionamenti del criptosistema di
Merkle ed Heilman capaci di restaurarne Taffidabilit furono messi a punto,
ad esempio da Chor e Rivest nel 1988. Ma si tratta di varianti molto sofisticate
e bisognose di profonde basi teoriche, non cos immediate ed elementari come
alcuni criptosistemi che vedremo tra poco.

6.5 II C r ip to siste m a R S A

In effetti, il criptosistema a chiave pubblica pi conosciuto ed usato quello


chiamato RS A dalle iniziali dei suoi inventori Rivest, Shamir e Adleman. Esso
fu proposto nel 1978 e la sua funzione a senso unico il prodotto. La cosa pu
apparire stupefacente: che cosa c di diffcile a calcolare le moltiplicazioni o
le loro operazioni inverse oggi, negli anni duemila, con laiuto dei calcolatori?
Eppure, come gi sappiamo, allo stato attuale delle conoscenze,
152 6 A ncora C rittografa

moltiplicare due primi distinti p, q ottenendo il prodotto N = p q


enormemente pi rapido che
decomporre in fattori primi N = p q e dunque recuperare p e q da N
(almeno quando i primi coinvolti sono molto grandi). Per parafrasare le parole
di un grande esperto del settore (H. W. Lenstra Jr.),
supponiamo di avere due primi grandi p ^ q, di perderli in un pa
gliaio e di restare in possesso solo del loro prodotto N = p q: una
sconftta della scienza il dover ammettere che la maniera pi efficace
oggi disponibile per ritrovare p e q quella di cercare nel pagliaio
Infatti, pagliai o non pagliai, i metodi pi rapidi e sofisticati di decomposi
zione in fattori primi oggi conosciuti richiedono tempi comunque esponenziali
rispetto alla lunghezza dellinput N, e dunque proibitivi secondo ogni ragio
nevole parametro di valutazione della complessit degli algoritmi.
Vediamo allora i dettagli di RSA. Lavoriamo su un alfabeto che ha n simboli e
conveniamo poi di trasmettere messaggi a singole lettere, o anche come gruppi
di lettere di lunghezza k opportunamente codificati da numeri < nk: infat
ti, come abbiamo visto pi volte, possiamo rappresentare la sequenza ao, ...,
dk-i di numeri < n tramite
ao + ai n + U2 n2 + ... + a^_i nk~x.
Ci premesso si procede nel modo che segue.
C r ip t o s is t e m a RS A ( R i v e s t - S h a m ir - A d le m a n )
1. Ogni utente A del sistema fssa due primi p ^ q molto grandi e ne calcola
poi il prodotto N = p q. Conoscendo questa decomposizione di N gli
riesce agevole anche computare

Possiamo poi facilmente convenire che tutti i naturali a chiamati a rap


presentare le unita di messaggio nel modo appena descritto siano molto
minori di p e q, e conseguentemente, se diversi da zero, primi tanto con
p quanto con q, e dunque anche con il prodotto N. Allora ogni a / 0
soddisfa il teorema di Eulero
aA N) = 1 (m odN );
ma (j){N) primo anche con a1 per ogni intero positivo t, vale dunque

( o , t f N) = ( a ^ ) 4 = 1 (modN);
moltiplicando gli ultimi due membri di questa congruenza per a otteniamo

a = a (m odN ),
che soddisfatta anche da 0.
6.5 II C riptosistem a RSA 153

2. A sceglie allora due naturali dj od ea , l uno inverso dell'altro modulo


<j>(N). Vale dunque
dj, ea = 1 (mod(j){N)).
In altre parole, dj ea ha resto 1 nella divisione per (j)(N) e dunque si
scrive come dj^-e^ = t- 4>(N) +1 per qualche opportuno naturale t. Allora
per ogni naturale a < p, q (e quindi per ogni unit a di messaggio) si ha

(aeA)dA = aeA'dA = a^ N)'t+1 = ( a ^ f a = a (m odN ).

3. A rende noti N ed ea come sua chiave pubblica, mantiene invece gelosa


mente segreto dj - 1&sua chiave privata -.
4. A questo punto, se un altro utente B vuole trasmettere ad A un messaggio
a, lo eleva alla ea modulo N

a i-)- aeA (modN),

e lo invia cos cifrato ad A. Questa la procedura E a di codifica per A.


5. A da parte sua recupera il testo originale elevando quanto ricevuto alla
dj, modulo N
aeA i-)- (aeA)dA = a (modN).
Cos avviene la decodifica Dj.
Questo il fondamento (invero assai elementare) di RSA. Ma quale il rischio
che un pirata C riesca a violare un messaggio eventualmente intercettato? C
conosce la chiave pubblica N, ea e per decifrare deve recuperare a da aeA, in
altre parole estrarre rapidamente le radici e^-me modulo N .
La strada maestra per raggiungere questo obiettivo sembra essere quella che
si affida al recupero di dj, infatti la radice e^-ma di un intero modulo N si
ottiene elevando questo intero a dj. Daltra parte dj, identificato come lin
verso di ea modulo <j)(N). Dunque il punto cruciale per infrangere R SA pare
ridursi alla conoscenza di (j>(N) = (p1) (q 1), che a sua volta fa riferimen
to a p e q e, in conclusione, alla decomposizione di N in fattori primi. Siamo
quindi nella situazione descritta allinizio del paragrafo: dunque, siccome non
esistono algoritmi rapidi per decomporre N, non c verso di infrangere R S A ,
almeno per questa via.
Si pu obiettare che la sicurezza di R SA si basa in realt, come gi osservato,
sulla difficolt di estrarre radici e^-me modulo N, e sullassenza di algoritmi
capaci di svolgere rapidamente questi calcoli. Il collegamento tra i due pro
blemi (estrarre radici modulo N, e decomporre N in fattori primi) ancora
dibattuta. Abbiamo visto che un algoritmo rapido di decomposizione ne ge
nera uno altrettanto veloce di estrazione di radice. Ma ci sono argomenti per
ritenere che il secondo problema sia pi semplice nel primo, nel seguente sen
so, sottolineato da recenti lavori di Boneh e Venkatesan: se esiste un algoritmo
rapido di decomposizione che si fonda su una procedura veloce di estrazione
di radice modulo N, allora esiste un algoritmo rapido di decomposizione che
154 6 A ncora C rittografa

prescinde da ogni estrazione di radice modulo N. In altre parole, la rapidit


di decomporre in fattori primi non dipende decisivamente dal calcolo rapido
di radici modulo N.
Come detto, R SA il sistema crittografico maggiormente in uso: capita, svol
gendo transazioni con carta di credito in Internet, di leggere talora sullo scher
mo che la segretezza della trasmissione garantita proprio da RSA.
Naturalmente, luso di R SA richiede alcune ragionevoli precauzioni. Ad esem
pio, fino a qualche anno fa, il numero delle cifre decimali dei fattori p e q di
una comune chiave R SA N = p q per comuni transazioni commerciali era
ragionevolmente collocato intorno a 150 (500 in base 2). Poi, nel 1999, si vide
che un programma svolto in parallelo da vari calcolatori riusciva a recupera
re in alcune settimane i fattori p e q dei numeri N di questa forma. Non
certamente probabile che un pirata impieghi un tale dispendio di tempo e di
energie per intercettare il numero di una carta di credito il cui limite massi
male di spesa pu raggiungere poche migliaia di euro mensili, tanto pi che
un comune calcolatore richiederebbe qualche anno per sviluppare da solo la
stessa computazione. Comunque si ritenne, come misura prudenziale, di dover
alzare il numero delle cifre decimali di p e q fino a circa 300 (1000 in base 2).
Ci sono altre precauzioni da prendere per evitare che situazioni contingenti
(errori casuali di software e hardware, uso di calcolatori tascabili - le smart-
cards -, errori indotti dal pirata, virus, frettolosa accelerazione dei tempi di
codifica e decodifica) possano rivelare parzialmente o totalmente la chiave pri
vata dj, di un utente A. Di questo parleremo nel prossimo paragrafo.
C comunque un altro problema che vogliamo trattare prima di concludere
il presente paragrafo, e cio: come si generano i fattori primi p e q? La loro
segretezza , evidentemente, importante, e dunque luso di metodi prevedibili
per determinarli potrebbe aiutare un pirata a ricavare la chiave privata di
qualche utente e diminuire cos la sicurezza del sistema. Del resto la scelta
di numeri primi grandi, o di loro potenze, prerequisito essenziale di quasi
tutti i criptosistemi fin qui trattati in questo capitolo.
Ricordiamo allora che ogni primo si esprime anche con la rappresentazione bi
naria, e quindi come sequenza di 0 e 1, che la primalit si verifica rapidamente
e che conosciamo la distribuzione almeno asintotica dei primi tra i naturali.
Dunque si pu cercare di generare nuovi primi considerando sequenze casuali
di 0 e 1 e poi controllando che gli interi che ad esse corrispondono sono primi.
Ci serve allora un generatore casuale di queste sequenze, capace di produrle in
modo che ogni nuovo bit non dipenda in nessun modo da quelli che lo precedo
no. Un simile procedimento non pu essere gestito da un comune calcolatore
proprio a motivo della sua casualit: infatti le computazioni di una macchina
si svolgono secondo programmi prestabiliti e dunque sono deterministiche. La
Fisica suggerisce invece procedimenti basati sulla emissione di neutroni da
parte di sostanze radioattive: questi metodi soddisfano le esigenze sopra rife
rite, ma sono in genere lenti e costosi. Per superare queste difficolt si tenta
di conciliare le due strategie, generando quelli che vengono chiamati numeri
pseudo casuali, e cio sequenze casuali brevi di 0 e 1 (chiamate semi), cui si
6.6 A ttacchi a RSA 155

aggiungono ulteriori bit secondo un programma deterministico, in modo tale


che la sequenza finale prodotta sembri ad un estraneo assolutamente casuale,
e non sia comunque possibile recuperarne il seme senza conoscerlo a priori.

6.6 A tta c c h i a R S A

Vista limportanza del criptosistema R S A , dedichiamo questo ulteriore pa


ragrafo ad approfondirne altri aspetti, in particolare a descrivere alcuni dei
possibili attacchi che possono essergli condotti e le cautele da osservare per
evitarli e preservarne la sicurezza. In particolare mostriamo come tecniche di
Teoria dei Numeri possano aiutare e sostenere luno o laltro di questi scopi.
Va premesso che gli attacchi di cui parleremo non fanno diretto riferimento
al criptosistema stesso, ma si basano piuttosto su sue cattive applicazioni e
implementazioni, oppure su errori o imprudenze da parte dei suoi utenti.
1. U n u n ic o N ? Si pu pensare che un unico modulo N, comune a tutti gli
utenti, scelto e garantito da un qualche Ente Certifcatore sopra le parti, possa
facilitare limpiego del sistema. Ma lidea pericolosa. Mostriamo infatti come
un pirata C pu approfittarne e, usando le proprie chiavi pubblica e privata
ec e de, cercare di ottenere la chiave privata dj di un qualunque altro utente
A.
Il fatto si che, per un unico N, le due chiavi ec e de di C possono rivelare
in tempo rapido la fattorizzazione N = p q di N e dunque, in definitiva, la
chiave privata di A (in quanto inversa modulo <j)(N) = (p 1) (q 1) della
chiave pubblica di A).
Infatti C ovviamente conosce ec de 1 = kc e sa che multiplo di <j)(N),
dunque pari perch anche <j)(N) pari. Anzi C pu facilmente decomporre
kc = 2Sc tc con se > 0 e te dispari. A questo punto C pu scegliere a caso
un intero a con 1 < a < N.
Se (a, N) 1, allora C ha la fortuna di trovare immediatamente un divisore
proprio di N, quindi p o q.
Altrimenti, se (a, N) = 1, C sa dal Teorema di Eulero sulla (j) che akc =
1 (m odN ): infatti (j)(N) divide kc e a ^ N) = 1 (m odN ). Dunque a2SC'tc =
1 (modN). C osserva allora che a2 c 'tc radice quadrata di 1 modulo
N ; C ricorda poi che ci sono 4 radici distinte di 1 modulo N perch N
il prodotto di due primi differenti tra loro; queste radici sono 1, 6
dove b = 1 (modp) e b = 1 (modq). C ha probabilit > \ di determinare
b esplorando modulo N a2*0 I'tc; se poi a2*0 1,tc = 1 (modN), C pu
eventualmente ricorrere ad a2*c 'tc, e cos via. Daltra parte, con i metodi
di fattorizzazione alla Fermat, dalla conoscenza di un tale b si pu ricavare
la decomposizione in fattori primi di iV, e quindi p e q.
Passiamo adesso a considerare attacchi pi sofisticati. Ricordiamo che i mo
duli N attualmente utilizzati per R SA prevedono oltre 1000 cifre in base 2. Le
156 6 A ncora C rittografa

relative operazioni di codifica e decodifica previste dal criptosistema (in parti


colare, gli elevamenti alle potenze e ne risultano ovviamente rallentate,
anche se non in modo decisivo. Per accelerarle, si potrebbe essere tentati di
scegliere un esponente pubblico piccolo ea (per codificare velocemente) op
pure un esponente privato piccolo dj (per decodificare velocemente). Questi
espedienti sono per assai rischiosi, e possono causare, appunto,
2 . a t t a c c h i b a s a t i s u u n a c h ia v e p r iv a t a p ic c o la ,
3 . a t t a c c h i b a s a t i s u u n a c h ia v e p u b b lic a p ic c o la .
Per quanto riguarda 2, c un argomento di Wiener, che usa strumenti di
matematica assai sofisticati e mette in evidenza quanto sia pericoloso usare
d>A < iV*; Boneh e Durfree hanno ideato possibili attacchi anche nellipotesi
pi generale da < TV0,292-". Una possibile strategia per mantenere i vantaggi
di un esponente privato piccolo evitando i rischi ora accennati potrebbe basarsi
sul seguente uso del Teorema del Resto Cinese.
A accetta una chiave privata dA grande ma fissa due naturali dq tali che

dp = dA (modp 1), dq = dA {mod q 1)

ed inoltre dp e dq sono piccoli (ad esempio, non eccedono 128 cifre in base
2): ricordiamo che p 1 = (j)(p) e q 1 = (j){q). A questo punto ammettiamo
che A riceva un messaggio cifrato come c = aeA (m odN ). Allora A osserva
che
a = cdA = cdp (modp)
perch dA = dp {modp 1), e, analogamente,

a = cdA = cdq (modq).

A calcola rapidamente

cdp (modp), cdq {modq)

e poi ottiene a col Teorema del Resto Cinese, come unica soluzione modulo
N = pq del sistema

x = cdp (modp), x = cdq {modq).

Passiamo adesso a 3. Lidea qui quella di accelerare la codifica

a i-)- aeA {modN)

usando un esponente pubblico ea piccolo, oppure scegliendo un ea la cui rap


presentazione in base 2 contiene poche cifre 1 (ricordiamo che ogni cifra 1
corrisponde, negli algoritmi di elevamento a potenza, ad operazioni pi com
plesse di quelle previste da 0): ea 3 potrebbe essere unottima opzione nel
primo caso, mentre = 216 + 1 = 65537 (che grande, ma contiene solo
2 cifre uguali ad 1 nella rappresentazione in base 2) soluzione ottimale nel
6.7 C rittografa e Curve E llittiche 157

secondo caso. Ci sono per argomentazioni (di Hastad, Reiter-Franklin, Cop


persmith) che mostrano come queste scelte possano essere talora pericolose,
perch facilitano il calcolo delle radici e^-me e dunque la violazione del cripto
sistema. In particolare, per questi valori di ea , una conoscenza parziale di dj
(anche limitata a poche cifre) permette di ricostruire lintera chiave privata

Finalmente accenniamo brevemente a


4 . a t t a c c h i r iv o lt i a d im p l e m e n t a z io n i in s ic u r e .
Supponiamo infatti che A usi per decifrare un calcolatore tascabile (ad esem
pio una smartcard, e cio un piccolo dispositivo hardware, delle dimensioni
di una comune carta di credito, che contiene un sistema operativo ed una
RAM temporanea per crittografa e registrazione chiave). Il pirata C pu al
lora sollecitare A a firmare (nei modi che discuteremo nei prossimi paragrafi)
qualche petizione popolare, o dare un cenno di assenso a qualche documento,
dedurre poi informazioni sulla chiave privata di A dai tempi che la smartcard
impiega per rispondere, oppure dalla energia che consuma. Questi attacchi so
no stati proposti da Kocher. Altri possibili rischi per R SA possono derivare,
ovviamente, da errori casuali (virus hardware/software, guasti momentanei
dellhardware, guasti originati dal pirata stesso). Opportuni modelli matema
tici permettono di formalizzare in astratto la situazione e sviluppare attacchi
teorici basati su queste contingenze.
Ma il pericolo pi consistente per R SA deriva dai possibili progressi della com
putazione quantistica (accennati nel paragrafo 4.1): se i calcolatori quantistici
riuscissero a gestire nella pratica numeri con molte cifre, lalgoritmo rapido
di fattorizzazione di Peter Shor provocherebbe una crisi definitiva di tutte le
procedure basate sulla difficolt di decomporre gli interi, ed in particolare di
RSA. Analoghe devastanti conseguenze si avrebbero per i metodi crittografici
fondati sul logaritmo discreto.

6.7 C rittogra fa e C urve E llittic h e

Abbiamo visto come in molti criptosistemi (Diffie-Helman, Massey-Omura,


ElGamal) le procedura di codifica e decodifica identifichino i messaggi cifra
ti o decifrati con punti di un campo finito F, pi precisamente nel gruppo
moltiplicativo F*. Un pi vasto repertorio di possibilit prevedibile ove si
attinga a punti di curve ellittiche F su campi finiti F.
Vediamo allora un procedimento che associa ad ogni messaggio un punto su
unopportuna curva ellittica. Lalgoritmo probabilistico, ma il margine di
tolleranza di possibili fallimenti pu essere preventivamente stabilito secondo
le esigenze degli utenti.
L a lg o r it m o . Trattiamo messaggi rappresentati da naturali a < N. Sceglia
mo:
158 6 A ncora C rittografa

un intero positivo ugrande k (tale che ^ sia il limite massimo di tolleranza


di probabilit di insuccesso),
una potenza q di un primo ^ 2,3 tale che q > k N, e il corrispondente
campo finito F = Fq,
due interi a, (3 e una curva ellittica E : y2 = x 3 + ax + /? su F (cos
(4a 3 + 27(32, q) = 1).
Notiamo che ogni intero d a l ak-N si rappresenta in modo unico in riferimento
ad ogni intero positivo a < N come

k - a + j con 1 < j < k;

si pu poi identificare con un elemento xj di F (visto che q > k N).


Sia ora a > 0 un messaggio e procediamo per associargli un punto Pa su E.
Per ogni j = 1,..., k,
si calcola Xj = k a + j in F;
si considera Xj + axj + f3;
se axj + (3 un quadrato, si calcola yj E F tale che y2 = x? + axj + f3:
(xj,yj) il punto Pa cercato;
altrimenti, se j < k, si passa a j + 1, mentre se j = k, si passa ad altra
scelta di a, f3.

Come si vede, Talgoritmo che determina Pa si riconduce in conclusione al


problema delle radici quadrate (e al calcolo di yj a partire da Xj). Per q
primo, sappiamo che la met degli interi primi con q sono residui quadratici
modulo q, cio hanno radice quadrata in F. Naturalmente ci si pu chiedere
quanti interi si rappresentano nella forma x 3+ otx + f3 modulo q per qualche
x (e per a, f3 fssati),
cosa avviene se q non un primo, ma soltanto una sua potenza.
Si verifica tuttavia che il procedimento ha successo per circa la met dei casi.
Cos, per una data scelta di a,/3 (dunque di E), e per ogni j = 1,..., fc,
la probabilit di fallimento, cio di non trovare una radice quadrata yj di
x 3 + axj + /?, circa quando j varia da 1 a k, la probabilit di insuccesso
diviene allora ^ , come previsto.
I tempi di lavoro delhalgoritmo si ricollegano a quelli di calcolo delle radici
quadrate.
In questo modo molti criptosistemi basati sulla scelta di punti in campi finiti
si adattano facilmente alle curve ellittiche. Vediamo un esempio.
C r ip t o s is t e m a d i M a s s e y - O m u r a p e r c u r v e e l lit t i c h e .

i) Gli interlocutori A e B concordano una curva ellittica E di ordine N. Si


ricordi che N P = O per ogni punto P di E.
ii) A sceglie un intero ea primo con N e ne calcola Pinverso dj modulo N.
Lo stesso fa B.
6.8 Firm e digitali 159

iii) B traduce il messaggio a nel punto Pa.


iv) A questo punto A e B procedono con un algoritmo di doppio lucchetto,
costruendo successivamente e alternativamente in E i punti
es Pa, (^B Pa), ds ( e A ' (ejB ' Pa)) = CA (d]3 e23 Pa) CA'Pa
e finalmente
d A (eA P a) = ( d A e a ) Pa = Pa-
La commutativit delle procedure eseguite da A e B (moltiplicazione
per eAjdA,eBjds) garantita e permette lo svolgimento corretto del
meccanismo.

Un pirata C che vuole violare a si trova ad affrontare un problema di logaritmo


discreto su curve ellittiche, non pi facile di quello per campi finiti.

6.8 F irm e d ig ita li


Quando B invia ad A un messaggio tradizionale su carta lo firma per qualifi
carsi come mittente. Allo stesso modo, un messaggio cifrato di B ad A (magari
trasmesso via Internet) dovrebbe avere un qualche contrassegno che garantisca
ad A che il suo interlocutore proprio B, e non un pirata che si spaccia per B.
Abbiamo gi avuto modo di mostrare i rischi che si corrono trascurando que
sta ovvia misura di cortesia e prudenza. Ma concludere un messaggio cifrato
con una firma esplicita (anche se criptata) pu essere pericoloso, perch pu
fornire informazioni ad un pirata che lo intercetti. Si pone allora il problema di
contrassegnare i messaggi cifrati con una firma digitale che faccia riconoscere
il mittente al destinatario senza dare troppi suggerimenti agli estranei.
Ricordiamo che nei criptosistemi a chiave pubblica, basati sulle funzioni a
senso unico, ogni utente A (o B) dispone di una funzione di codifica E a ( E b )
e di una di decodifica D a (Db ), luna inversa dellaltra. Assumiamo per sem
plicit che E a , D a (e ovviamente anche E b , D b ) coincidano precisamente
con la chiave pubblica e quella privata di A (e di B).
Allora B potrebbe apporre una firma digitale sul messaggio cifrato spedito ad
A concludendolo con
E a D b (B),
(come gli possibile visto che conosce sia la chiave pubblica E a di A che la
propria chiave privata D b )- A , da parte sua, sapendo la propria chiave privata
D a e la chiave pubblica E b di fi, riconosce la firma di B calcolando
E b D a E a D b (B) = E b D b (B) = B.
Ci sono per due possibili ostacoli a questo procedimento.
1. Un pirata C potrebbe preliminarmente rendere pubblica una chiave spac
ciandola per quella di B e poi sostituirsi a B nella corrispondenza con
A.
160 6 A ncora C rittografa

2. Se un pirata C intercetta molti messaggi spediti da B a A, pu identificare


la firma digitale E j ,D b {B) alla fine di ciascuno di essi ed ottenerne infor
mazioni sulla chiave privata D b di B, oppure, pi semplicemente, usare
questa firma per spacciarsi per B.
Vediamo come possibile ovviare a queste difficolt.
La strategia pi sicura per evitare il problema 1 consiste nel costituire un
Ente Certifcatore super partes, presso cui ciascun utente va a depositare la
sua chiave pubblica, facendosi identificare con criteri che vanno dal banale
documento di riconoscimento al pi sofisticato esame delliride. Negli Stati
Uniti questo Ente Certifcatore (il N I S T , National Institute of Standards
and Technology) esiste da anni.
Quanto a 2, un primo rimedio pu essere quello di variare la posizione della
firma allinterno del messaggio (allinizio, oppure allinterno, invece che alla
fine). Alternativamente, la si pu fare dipendere anche dal messaggio oltre che
dal mittente (e dunque variare a seconda del contenuto di quanto trasmesso).
Questa ultima soluzione richiede luso di specifiche funzioni, che sono chiamate
impronta in italiano ( hash in inglese). Una funzione impronta i trasforma
ogni messaggio a in una versione concentrata i (a) che rispetta i seguenti criteri:
i(a) ha lunghezza fissata (in genere < 200 simboli);
computazionalmente poco plausibile che messaggi diversi a ^ a' abbiano
impronte uguali i(a) =i(a!).
Ad esempio la impronta i(a) pu raccogliere informazioni quali il numero dei
caratteri del messaggio a, il numero delle vocali, delle consonanti, dei punti e
delle virgole che esso contiene, quale il suo centesimo simbolo, e cos via. Si
ottengono in questo modo brevi notizie chiave sul messaggio, che verosimil
mente lo determinano senza pericolo di confusione.
Una volta che lEnte Certifcatore ha stabilito la funzione impronta i da utiliz
zare e lha resa pubblica, ogni utente B del sistema pu firmare un messaggio
a scrivendo D b ( (cl)) al termine (cos la firma dipende non solo da B ma an
che dal messaggio e cambia caso per caso). A questo punto, il destinatario
A, una volta ricevuto il testo criptato E^(a), decifra a = D ^(E^(a)) e poi
calcola i(a); successivamente considera la firma D b ( (cl)) e le applica la chiave
pubblica E b di B ottenendo per altra via i{a)\ controlla finalmente che i due
valori coincidono.

Concludiamo il paragrafo con qualche breve cenno relativo alla normativa


italiana sulla firma digitale. La legge le ha dato validit legale, ed ha autoriz
zato Enti Certifcatori per cerehie di utenti formate da istituti bancari; si pu
prevedere unestensione del sistema ai privati cittadini entro pochi anni.
6.9 Protocolli a Conoscenza Zero 161

6.9 P r o to c o lli a C o n o scen za Zero


Gli strumenti di Teoria dei Numeri sono utili anche per il problema dei Proto
colli a Conoscenza Zero. Si tratta di argomento che non riguarda direttamen
te la crittografa, ma le comunque collegato. Per spiegarlo, immaginiamo
la seguente situazione. A ha risolto un particolare problema (ad esempio,
riuscito a calcolare un diffcile logaritmo discreto) e vuole informare un suo
corrispondente B della scoperta. A, tuttavia,
preferisce evitare di divulgare la soluzione (vuole riservare a se stesso gli
eventuali vantaggi),
deve comunque produrre argomenti sufficienti a convincere B della fonda
tezza del suo annuncio.
Mostriamo come questo sia possibile, limitandoci per ora al semplice esempio
che riguarda, appunto, il tema del logaritmo discreto. Fissiamo allora la situa
zione: sono dati un gruppo ciclico moltiplicativo G di ordine N, un generatore
g di G ed un elemento a E G (quindi N, g e a sono pubblici). A riuscito
a calcolare il logaritmo discreto x di a in base g, cio ha risolto lequazione
gx = a, e vuole provare a B che conosce x senza comunicargliene il valore. Un
algoritmo per ottenere questo scopo, con piena soddisfazione da parte tanto
di A quanto di 23, il seguente.
A sceglie un intero positivo n < N, calcola g' = gn e spedisce g' a B. B
lancia una moneta (magari delle vecchie lire). Se esce testa, B si fa dire n
da d e verifica gn = g'. Se esce croce, B si fa dire x + n da A e controlla
g x+n = gx -gn = a- g'.
Lintera operazione pu essere ripetuta quante volte si vuole (naturalmente
variando n ad ogni nuova applicazione). Mostriamo che il procedimento pu
convincere B della scoperta di A senza costringere A a rivelare x.
(a) In effetti, A non comunica x, n B ottiene informazioni tali da poterlo
recuperare: ogni volta, infatti, B viene a conoscere n oppure x + n, ma
mai contemporaneamente i due valori distinti n e x + n (la cui differenza
gli fornirebbe x).
(b) A non pu reggere al gioco e rispondere ad ogni richiesta di B se non
conoscendo x: se A ignora x, quando esce croce deve comunicare a B
un valore errato di x + n e B lo pu smascherare perch pu verificare
gx+n a . g Naturalmente, A pu rimediare a questo guaio barando e
spedendo a B allinizio della comunicazione g' = gn -a-1 invece di gn\ cos,
quando esce croce, A pu dire n invece di x + n (che non conosce) e 23, che
ignaro dellimbroglio, controlla gn = a gn a-1 = a g' . Ma in questo
caso A non riesce a reggere il gioco quando esce testa, proprio perch non
conosce x e dunque non sa rispondere lesponente n x da sostituire ad
n per ottenere g' = gn a-1 = gn~x.

I Protocolli a Conoscenza Zero sono dunque procedure volte a trasmettere


certezze ma non conoscenze, informazioni incomplete ma sufficienti a convin
162 6 A ncora C rittografa

cere: cos, nel caso appena descritto, si fornisce la garanzia che il logaritmo
discreto conosciuto, ma non si rivela il suo valore. Situazioni del genere si
incontrano spesso nella pratica. Si pensi ad esempio aireventualit di un voto
telematico e alle procedure necessarie per garantire che ogni elettore eserciti il
diritto di voto senza svelare come. I prossimi paragrafi trattano due problemi
analoghi, anche se pi banali, e illustrano i metodi di Teoria dei Numeri che
ne assicurano lo svolgimento.

6.10 T esta o C roce te le fo n ic o

Immaginiamo il caso di una partita a scacchi al computer: i giocatori sono


situati in citt o stati diversi e devono sorteggiare in partenza chi usa i pez
zi bianchi e quindi ha facolt di muovere per primo. Oppure, per anticipare
il tema del prossimo paragrafo, pensiamo ad una partita di poker, ancora a
distanza, e al problema di scegliere a sorte chi distribuisce le carte. In tutte
queste situazioni si ha la necessit di simulare una sorta di lancio di moneta
a distanza che operi la scelta richiesta con assolute garanzie per tutti i con
tendenti.
Limitiamo per semplicit a due il numero dei giocatori interessati, e conve
niamo di indicarli al solito con A e B. Come detto, si suppone che A e B
operino a distanza. La procedura che essi devono eseguire si pu descrivere
con il seguente modello elementare:
c un pozzo profondo di acqua trasparente,
Al ha una moneta e ne sceglie di intesa con B uno dei lati, testa o croce,
A lancia la moneta nel pozzo da qualche metro di distanza,
B e sul bordo del pozzo, rileva lesito del lancio e lo comunica a A.
Dunque
A opera ma non vede,
B vede ma non opera.
Naturalmente, a cose fatte, si pu consentire ad A di avvicinarsi al pozzo e
comunque controllare lesito del lancio e la correttezza della comunicazione di
B.
Questa dunque la situazione informale che vogliamo considerare. Ovvia
mente, nei casi che ci interessano, A e B sono ben pi lontani di pochi metri,
comunicano tra loro semmai per telefono o via internet e non ci sono pozzi in
cui gettare monete. Ma vogliamo protocolli che riproducano la situazione e ne
mantengano le caratteristiche. Un modello matematico che garantisce questi
obiettivi quello che adesso descriviamo, e che si basa sulle propriet delle
radici quadrate modulo un intero N. Vediamo come.
Esem pio 6.10.1 A e B compiono in partenza i seguenti preliminari.
6.10 Testa o Croce telefonico 163

A sceglie due primi grandi p ^ q (meglio se = 3 (mod 4)), calcola il


prodotto N = p q e comunica N a B.
B sceglie a sua volta un intero positivo a < y , calcola a2 modulo N e lo
dice ad A.
A questo punto
A, conoscendo i fattori primi p e q di N, calcola con il Teorema del Resto
Cinese (magari sfruttando le semplificazioni che derivano dallipotesi p =
q = 3 (mod A)) le quattro radici di a2 modulo N : x, y con 1 < x, y < y .
Adesso ricordiamo che, nel modello elementare della moneta e del pozzo, A
sceglie uno dei lati della moneta, testa oppure croce. Nel nostro nuovo
ambito una simile alternativa si pu riprodurre sollecitando da parte di A
una affermazione sul valore a scelto da B e concordando che testa e croce
corrispondono rispettivamente al fatto che A ha ragione oppure torto. Laf
fermazione di A su a pu essere una delle due a = x o a = y. Infatti a
deve eguagliare uno dei due valori e ambedue gli eventi a = x e a = y hanno
a priori la stessa probabilit di verificarsi.
Ma non conviene che A si sbilanci in una asserzione cos dettagliata, per mo
tivi di prudenza che vedremo tra pochissimo. E pi sicuro che A confronti x
e y (scritti in base 2 come sequenze di 0 e 1 ) e identifichi la prima cifra da
destra in cui x e y differiscono: supponiamo che questa cifra sia la i-ma e che
valga 0 per x e 1 per y. Allora, invece di azzardare a x oppure a y, A
afferma Ti-ma cifra di a 0 (come in x) oppure Ti-ma cifra di a 1 (come
in y). A questo punto
B controlla li-ma cifra di a e dice ad A se la sua affermazione vera
oppure no.
Testa corrisponde alla verit della affermazione di A, croce alla sua falsit.
In questo modo si conclude la procedura. Si osservi che, proprio come nel caso
del pozzo, compiuti i preliminari,
A opera ma non vede,
B vede ma non opera.
Alla fine del procedimento, poi,
B pu comunque rivelare a ad A, per assicurare lonest del suo compor
tamento,
A pu comunicare p e q a B.
In questo modo A e B controllano vicendevolmente che tutto si svolto rego
larmente. Questa cautela finale necessaria. Infatti B potrebbe imbrogliare A,
comunicandogli lesito testa anche se uscito croce, o viceversa, dunque
adattando il valore di a per rendere vera o falsa (e comunque corrispondente
ai propri interessi) laffermazione di A. Ma perch B riesca nel suo inganno
senza tema di essere smascherato bisogna che B conosca x e y, e quindi essen
zialmente la fattorizzazione p q di N : sappiamo infatti come la conoscenza
164 6 A ncora C rittografa

di x, y tali che x2 = y2 (m odN ) ma x ^ y (m odN ) pu svelare un divisore


non banale di N come (N, x y ). E per questo motivo che ad A non conviene
sbilanciarsi in asserzioni quali a x oppure a = y, perch in questo modo
A rischia di comunicare a B laltra radice quadrata di a 2 diversa da a, quella
che B non conosce; serve piuttosto ad A limitarsi ad una affermazione meno
categorica, come quella sulla i-ma cifra.
Il protocollo ora descritto corrisponde in realt ad uno schema generale, in cui
si d ad A facolt di scegliere una tra due risposte equiprobabili (come a x
e a y nel caso precedente). Ovviamente altri modelli matematici possono
condurre a questa stessa situazione. Eccone un altro, ideato da Goldwasser e
Micali, ancora parzialmente legato alle radici quadrate modulo tV, ma stavolta
essenzialmente basato sul simbolo di Legendre e Jacobi (-^). Sia infatti N il
prodotto di due primi distinti p e q (meglio se grandi). Allora, per ogni intero
positivo a primo con N (quindi con p e con q) e minore di N, si ha

Inoltre sappiamo che


1. vale 1 se a un residuo quadratico modulo p, 1 altrimenti,
2. = 1 per lesatta met dei valori di a
e che lo stesso vale anche per q. Si deduce che

se e solo se
a e residuo quadratico tanto modulo p quanto modulo q
oppure
a non residuo quadratico n modulo p n modulo q
e le due risposte alternative hanno la stessa identica probabilit.
Ci premesso, passiamo al nostro secondo modello di lancio di moneta
telefonico.
Esem pio 6.10.2 A e B concordano nuovamente di assumere come testa
una affermazione vera di Al e come croce il contrario. Procedono poi come
segue.
B sceglie due primi p ^ q grandi, calcola il loro prodotto N = p g, fssa
poi un intero a primo con N e tale che ( ^ ) = 1, rivela finalmente a e N
ad A.
A scommette se a un residuo quadratico modulo p e modulo q oppure
a non un residuo quadratico n modulo p n modulo q .
6.11 Poker al telefono 165

B controlla la risposta, interpretandola come testa o croce nel modo


sopra descritto.
Si ha nuovamente che, conclusi i preliminari,
A opera e non vede,
B vede e non opera.
Naturalmente, ad A lasciata la facolt di verificare a cose fatte i valori
di p e q. In effetti B pu ingannare A adoperando valori disonesti di p e q:
ammettiamo infatti che B scelga alPinizio
tre primi distinti p\ , P2 , P3 ,
un intero positivo a primo con essi
per i quali si abbia
a a
= 1.
Pi P3

Allora B pu adattare e distoreere la risposta finale di A secondo i suoi inten


dimenti nel modo che segue. Ammettiamo che B voglia che lesito del lancio
sia testa e dunque che A dica la verit. Allora:
se A afferma che a residuo quadratico modulo p e g, B utilizza p\ p 2
come p e p 3 come q per attestare = 1;
se invece A sostiene che a non residuo quadratico n modulo p n modulo
g, B adoperaci come p e P2 ' P3 come q per attestare = 1.
In modo analogo B procede se vuole comunque ottenere lesito croce.
E dunque importante che, una volta che il procedimento si completato, A
abbia la possibilit di vedere p e q e controllare la loro primalit.

6.11 P ok er al te le fo n o

Consideriamo in questo paragrafo il caso di una partita a poker a distanza tra


giocatori incalliti, ma inabilitati a ritrovarsi tutti alla stessa ora nello stesso
luogo. Stavolta le operazioni da eseguire sono assai pi complicate, delicate e
disparate del semplice lancio virtuale di una moneta, ed includono
la distribuzione delle carte,
la loro eventuale sostituzione,
lesibizione finale delle 5 carte in possesso di ciascun giocatore.
Dunque anche i protocolli da adoperare per garantire la regolarit della partita
sono pi complessi che nel lancio della moneta. Per semplicit, limitiamoci
allora al caso di due soli giocatori A e B. Ammettiamo poi che le 52 carte (13
per ogni seme) siano identificate da numeri di codice preassegnati
166 6 A ncora C rittografa

Ci, C2 , , c52-

Vediamo allora un modello matematico relativamente elementare per la loro


distribuzione a distanza. Ci si basa sostanzialmente su una tecnica di doppio
lucchetto.
Esem pio 6.11.1 Ammettiamo che A e B dispongano di
chiavi di codifica E a , Eg,
chiavi di decodifica D a , D b ,
intese qui come funzioni da naturali a naturali. Ovviamente E a , D a (e
E bj D b ) sono Tuna inversa dellaltra. Assumiamo inoltre la condizione di
commutativit delle chiavi: in altri parole si richiede che, per ogni naturale a,

E a D b (cl) = D b E a (cl)

e che altrettanto valga per ogni scelta di due funzioni tra E a . D a , E b , D b


Si ricordi che la condizione di commutativit delle chiavi la base dei mec
canismi del tipo del doppio lucchetto, e che comunque molte delle procedure
di codifica e decodifica che conosciamo la rispettano: ad esempio, essa cer
tamente soddisfatta quando le funzioni di codifica e decodifica consistono in
elevamento a potenze.
Supponiamo finalmente che A e B abbiamo gi concordato, magari con una
tecnica di testa e croce a distanza, che sia A a distribuire le carte. A que
sto punto A e B procedono come segue con un metodo del tipo del doppio
lucchetto.
B opera una permutazione casuale a sulle carte (ne mescola il mazzo) e
cifra ogni carta con E b , poi le passa ad A come

E b ( A ci)), E b {<j {c2)), EB(a(c52))-


A sceglie 5 carte dal mazzo mescolato e le passa a B. B le decodifica con
D b e le tiene per s come le carte della sua prima mano.
A sceglie altre 5 carte, le cripta ulteriormente trasformandole con la sua
chiave pubblica E a e poi le passa a B: ogni carta cr(c) arriva dunque a B co
me E a E b (<j (c)); B provvede a decifrarla parzialmente con D b , sfruttando
lipotesi di commutativit e dunque il fatto che

D b E a E b (ct(c)) = E a D b E b (cf(c)) = E a (cf(c)),

trasmette poi il risultato ad A.


A completa la decifrazione di ognuna delle 5 carte applicando la sua chiave
privata D a e recuperando in conclusione in ogni caso cr(c); le 5 carte cos
ottenute sono quelle a sua disposizione per la prima mano.
6.11 Poker al telefono 167

Come si vede, si tratta di procedimento semplice, che permette di distribuire


a ciascuno dei due giocatori le sue cinque carte senza che il contendente abbia
modo di vederle. Tuttavia il meccanismo non completamente sicuro. Ad
esempio, si osserva che parziali esposizioni della chiave privata di B possono
permettere ad A, se non di identificare tutte le carte

E b {v {ci)), -Eb (o-(ci)), . .. , EB(a(c52))

del mazzo mescolato da B , almeno di individuarne sottoinsiemi notevoli, come


quello degli assi, o dei re, o delle carte di un dato seme, e di indirizzare
conseguentemente il gioco a proprio favore.
Proponiamo allora un modello pi evoluto, duttile e sicuro, e pur tuttavia
pi complicato da attuarsi, costruito ancora da Goldwasser e Micali. Ci si
basa nuovamente sulla teoria dei residui quadratici e sul simbolo di Legendre
e Jacobi. In particolare, si ricorda che, se N = p q prodotto di due primi
distinti, allora per a intero, levento (-^) = 1 corrisponde a due possibilit
equiprobabili:
ah residuo quadratico modulo p e modulo g,
a non residuo quadratico n modulo p n modulo g;
Di pi, per p = q = 3 (mod 4), due interi a e b per cui vale

a 2 = b2 (m odN ), a ^ b (mod N)

soddisfano

(come osservato nellesercizio 3.11.5). Ci premesso, vediamo in maggior


dettaglio il protocollo di Goldwasser-Micali.
Esem pio 6.11.2 Conveniamo anzitutto di rappresentare le 52 carte ci, C2 ,
..., C52 in base 2, cio come sequenze di 0 e 1. Poich la minima potenza di
2 che supera 52 64 = 26, possiamo supporre che 6 sia la comune lunghezza
di queste sequenze. La distribuzione della carte avviene con il coinvolgimento
di ambedue i giocatori. Si suppone infatti che sia uno dei due, ad esempio A ,
ad inaugurarla dando una carta a B, e poi B continui distribuendo unaltra
carta a A , e via dicendo. Vediamo in che modo. Iniziamo con i preliminari.
A mescola il mazzo delle 52 carte con una permutazione casuale a. Per
ogni i 1 , ..., 52, A prende poi due primi grandi tra loro distinti pi =
qi = 3 (mod 4) e calcola Ni = Pi-qp associa poi alla carta g (c) il valore N\
e una sequenza ordinata di 6 interi (tu, . .., t^ ) scelti in modo tale che,
per j = 1 , . .., 6 ,
(^) = 1 se e solo se la j-ma cifra della rappresentazione di g (c) in
base 2 1 .
168 6 A ncora C rittografa

Alla fine di queste procedure, A passa a B il mazzo mescolato, ovvero le


carte a(ci) per i 1, ..., 52, ciascuna accompagnata dal suo intero Ni e
dalla sequenza (tii, . .., tie); A conserva invece per s pi e qi per ogni i.
B opera indipendentemente allo stesso modo, usando una sua permutazio
ne a' e associando poi, per ogni i 1, . .., 52, alla carta a'(ci) due primi
distinti ri, Si = 3 (mod4), il loro prodotto Mi e la relativa sequenza di 6
interi, rivelando poi ad A queste due ultime informazioni, ma non e Si.
Adesso passiamo alla distribuzione delle carte. Supponiamo che sia A a
iniziarla.
A propone a B una sequenza di 52 valori casuali Xi (1 < i < 52), ciascuno
scelto tra gli interi compresi tra 1 e yy.
Per ogni i, B calcola x\ modulo Ni e , sceglie poi un valore k compreso
tra 1 e 52. Notiamo che B conosce k , ma non la carta che gli corrisponde.
Comunque B calcola e trasmette ad A
x\ modulo Ni e per ogni * 7^ k,
x \ modulo N k e - ( j ^ ) -
A non sa il valore di k. Tuttavia, per ogni i = 1 , . .., 52, dunque anche
per i k, A considera x\ modulo Ni, ne estrae le radici quadrate modulo
Ni grazie alla conoscenza di pi e qi e seleziona in particolare quella che
compresa tra 1 e y e corrisponde al valore del simbolo di Jacobi comuni
catogli da B, dunque per i ^ k e per i k. Cos A recupera
Xi per i ^ k, ma ottiene una radice di x\ diversa da Xk modulo Nk per
i = k (si ricordi infatti che Per nostra scelta di Nk). A
comunica questi risultati a B.
B riceve in questo modo per i ^ k il valore Xi che gi sapeva ma, per i = k,
una seconda radice ^ Xk modulo Nk; da questultima informazione pu
ricavare la decomposizione pk qu di Nk. Da questa fattorizzazione e dalla
sequenza (^ i, . .., tke), poi, B ottiene finalmente le 6 cifre che identificano
la carta cr(ck); B conserva allora cr(ck) come sua prima carta, la rimuove
dal suo mazzo e procede con le 51 carte restanti per assegnare allo stesso
modo ad A la sua prima carta.

Esercizi 6.11.3 (Si fa riferimento alla tabella di conversione 1.1 del paragrafo
1 . 1 ed eventualmente suddiviso in blocchi).
007 e la giovane e graziosa spia sovietica X I 1 stanno seguendo insieme a Cam
bridge un corso di aggiornamento in crittografia e si ritrovano un pomeriggio
per fare gli esercizi insieme.
6.11 Poker al telefono 169

1. Il primo quesito chiede di determinare un generatore g del gruppo F 3i .


Dopo dieci minuti di riflessione, 007 azzarda g = 2, e X ll g 3. Chi dei
due ha ragione?
2. Supponiamo poi che, sempre in riferimento al primo q = 31, X ll scelga
tia = 5 e 007 n# = 7, e che 007 voglia poi scrivere a X ll J LOVE
YOU usando il criptosistema di Massey-Omura. Quale la sequenza delle
quattro successive codifche e decodifche che 007 e X ll si scambiano?
3. 007 sceglie la sequenza supercrescente 1,2,4, 9, 17 e poi m = 51, a = 2 per
impostare un criptosistema di Merkle-Hellman. Quale la chiave pubblica
di 007? In che modo X ll codifica il messaggio 10010?
4. 007 vuole spedire a X ll una cartolina digitale col messaggio cifrato J
NEED YOU. 007 e X ll concordano di usare un criptosistema RSA
basato sui primi p = 7, q = 11. X l l sceglie poi la chiave privata 2,
e 007 invece 3. Quali sono le loro chiavi pubbliche? In che modo 007
cripta il suo messaggio per X l l ? Assumiamo poi che 007 e X ll adottino
la seguente funzione impronta i: per ogni messaggio a, i{a) la coppia
ordinata (numero delle lettere E in a, numero delle T in a). In che modo
007 firma il suo messaggio?
A questo punto 007 e X l l , stanchi di scambiarsi messaggi, passano a giocare
a testa o croce come descritto nel paragrafo 6.10.
5. X ll fissa allora i primi p = 3, q = 5 e Finter a 2. La scelta di X ll
corretta o X ll cerca di imbrogliare? 007 scommette poi che a residuo
quadratico modulo p e q. 007 vince o perde?

R iferim enti bibliografici

Luso di tecniche di teoria dei numeri in crittografia discusso in vari testi,


come [6], [38], [48], [60], [63]. Il criptosistema di DifRe-Hellman proposto in
[21], quello di Massey-Omura in [46] e quello di ElGamal in [26]. [35] espone
il criptosistema dello zaino, [17] tratta sue possibili implementazioni che ne
superino i difetti evidenziati da [64]. R SA nasce in [62]; [11] ne discute la sicu
rezza, [12] i rapporti col problema della fattorizzazione. Per una panoramica
sulluso delle curve ellittiche in crittografia, si vedano [38] e [47]. Ricordia
mo anche gli articoli di Shor [65], [66] che propongono algoritmi quantistici
veloci sia per la fattorizzazione che per il logaritmo discreto. I protocolli di
Goldwasser e Micali per il lancio di monete, o per il poker a distanza sono in
[32].
R iferim enti bibliografici

1. Agrawal M., Kayal N., Saxena N., PRIM ES is in P, Ann . Math. 160 (2004),
781-793.
2. A dlem an L. M., H uang M. D., Prim ality testing and two dimensional A belian
varieties over finite fields, Lecture Notes in Mathematics 1512, Springer (1992).
3. A dlem an L. M., Pom erance C., Rum ely R. S., On D istinguishing Prim e N um bers
from Com posite N um ber, Ann. Math. 117 (1983), 173-206.
4. Alford W. R., Granville A., Pom erance C., There are Infinitely Many Carm ichael
N um bers, Ann. Math. 139 (1994), 703-722.
5. A postol T., Introduction to Analytic Number Theory, Springer (1986).
6. Bauer F. L., Decrypted Secrets: Methods and Maxims of Cryptology, Springer
( 2000).
7. Berstein D., D etecting Perfect Powers in Essentially Linear Time, Math. Comp.
67 (1998), 1253-1283.
8. B ernstein D., Proving Prim ality after Agrawal-Kayal-Saxena, preprint
http://cr.yp.to/papers.html.
9. B ernstein D., Proving Prim ality in Essentially Q uartic R andom Time, preprint
http://cr.yp.to/papers.html.
10. B errizbeitia P., Sharpening Prim es Is in P for a Large Family of N um bers,
preprint http://arxiv.org/abs/math.NT/0211334.
11. Boneh D., Tw enty Years of A ttacks on the RSA C ryptosystem , Notices Amer.
Mat. Soc. 46 (1999), 203-213.
12. Boneh D., V enkatesan R., Breaking RSA may not be Equivalent to Factoring,
Proc. Eurocrypt 1998, Lecture Notes in Comp. Sci. 1233, Springer (1998), 59-71.
13. Bovet D. P., Crescenzi P., Teoria della Complessit Computazionale, Franco
Angeli (1991).
14. Carm ichael R. D., N ote on a N um ber Theory Function, Bull. Amer. Math. Soc.
16 (1910), 232-238.
15. Cassels J. W. S., Lectures on Elliptic Curves, Cam bridge University Press
(1997).
16. Childs L., Algebra, unTntroduzione Concreta, ETS (1989).
17. Chor B., Rivest R. L., A K napsack Type C ryptosystem Based on A rithm etic in
F inite Fields, IEEE Trans. Inform. Theory 34 (1988), 901-909.
18. Cohen H., L enstra A. K., Prim ality Testing and Jacobi Sums, Math. Comput.
42 (1984), 297-330.
172 Riferim enti bibliografici

19. Crandall R., Pom erance C., Prime Numbers: A Computational Perspective,
Springer (2005).
20. Devlin K., I problemi del Millennio, Longanesi, (2004).
21. Diffe W ., H eilman M., New Directions in Cryptography, IEEE Trans. Inform.
Soc. 22 (1976), 644-654.
22. Dickson L. E., History of the Theory of Numbers, Chelsea (1952).
23. Doxiadis A., Zio Petros e la Congettura di Goldbach, Bom piani (2004).
24. Du Sautoy M., L enigma dei numeri primi, Rizzoli (2004).
25. Edw ards H., Riemanns Zeta Function, Academic Press (1974).
26. E lG am al T., A Public Key C ryptosystem and Signature Scheme based on
D iscrete Logarithm s, IEEE Trans. Inform. Theory IT-31 (1985), 469-473.
27. Ferragina P., Luccio F., Crittografa: Principi, Algoritmi, Applicazioni, Bollati
Boringhieri (2001).
28. Fouvry E., Thorm e de B run-T itchm arsh; A pplication au Thorm e de Ferm at,
Invent. Math. 79 (1985), 383-407.
29. Fulton W ., Algebraic Curves, B enjam in (1969).
30. G arey M., Johnson D., Computers and Intractability: A guide to the Theory of
Completeness, Freem an (1979).
31. Goldwasser S., Kilian J., Almost All Prim es can be Quickly Certified, Proc.
18th Ann. ACM Symp. on the Theory of Computing (1986), 316-329.
32. Goldwasser S., Micali S., Probabilistic E ncryption and How to Play M ental
Poker keeping Secret all P artial Inform ation, Proc. 14th Annual ACM Symp.
on Theory of Computing (1982), 365-377.
33. Granville A., It Is Easy to D eterm ine W hether a Given Integer Is Prim e, Bull.
Amer. Math. Soc. 42 (2005), 3-38.
34. H ardy G. H., W right E. M., An Introduction to the Theory of Numbers, Oxford
University Press (1979).
35. Merkle R., H eilman M., Hiding Inform ation and Signature in Trap-door
K napsacks, IEEE Trans. Inform. Theory IT-24 (1978), 525-530.
36. H erstein L, Algebra, E ditori R iuniti, (1994).
37. Koblitz N., Introduction to Elliptic Curves and Modular Forms, Springer (1993).
38. Koblitz N., A Course in Number Theory and Cryptography, Springer (1994).
39. Krizek M., Luca F., Somer L .,1 7 Lectures on Fermat Numbers: From Number
Theory to Geometry, Springer (2001).
40. L enstra A. K., Factoring, Lecture Notes in Comp. Sci. 857, Springer (1994),
28-38.
41. L enstra H. W. Jr., Factoring Integers w ith Elliptic Curves, Ann. Math. 126
(1987), 649-673.
42. L enstra H. W. Jr., Pom erance C., Prim ality Testing w ith G aussian Periods,
preprint (2005).
43. Lewis H. R., P apadim itriou C. H., Elements of the Theory of Computation,
Prentice-H all (1981).
44. Lidi R., N iederreiter H., Introduction to Finite Fields and their Applications,
Cam bridge University Press (1986).
45. Leonesi S., Toffalori C., Un Invito allAlgebra, Springer 2006.
46. Massey J. L., Logarithm s in F inite Cyclic G roups-C ryptographic Issues, Proc.
4th Benelux Symp. on Inform. Theory (1983), 17-25.
47. Menezes A., Elliptic Curve Public Key Cryptosystems, Kluwer (1993).
48. Menezes A., van Oorschot P., Vanstone S., Handbook of Applied Cryptography,
CRC Press (1996).
Riferim enti bibliografici 173

49. Miller G., R iem anns H ypothesis and Tests for Prim ality, J. Comp. System Sci.
13 (1976), 300-317.
50. M ontgom ery P., Silverman R., An F F T extension to th e p 1 factoring
algorithm , Math. Comp. 54 (1990), 839-854.
51. P apadim itriou C. H., Computational Complexity , Addison-W esley (1994).
52. Pollard J. M., Theorem s of Factorization and Prim ality Testing, Proc.
Cambridge Philosophical Soc. 76 (1974), 521-528.
53. Pollard J. M., M onte Carlo M ethod for Factorization, BIT 15 (1975), 331-334.
54. P ra tt V., Every Prim e has a Succinct Certificate, SIAM J. Comput. 4 (1975),
214-220.
55. R abin M. O., Probabilistic A lgorithm for Testing Prim ality, J. Number Theory
12 (1980), 128-138.
56. Riesel H., Prime Numbers and Computer Methods for Factorization, Birkhauser
(1994).
57. R ibenboim P., The New Book of Prime Number Records, Springer (1996).
58. R ibenboim P., 13 Lectures on Fermats Last theorem , Springer (1979).
59. R ibenboim P., Fermats Last theorem for Amateurs , Springer (1999).
60. Rivest R., Cryptography, 719-755 in [72].
61. Rose H., A Course in Number Theory, Clarendon Press (1988).
62. Rivest R. L., Sham ir A., A dlem an L. M., A M ethod for O btaining D igital
Signatures and Public-K ey C ryptosystem s, Comm. ACM 21 (1978), 120-126.
63. Salom aa A., Public-Key Cryptography, Springer (1996).
64. Sham ir A., A Polynom ial-tim e A lgorithm for Breaking th e basic M erkle-Hellman
C ryptosystem , IEEE Trans. Inform. Theory 30 (1984), 699-704.
65. Shor P., A lgorithm s for Q uantum C om putation: D iscrete Logarithm s and
Factoring, Proc. 35th Annual Symp. Found. Comp. Sci. (1994), 124-134.
66. Shor P., Polynom ial-tim e A lgorithm s for Prim e Factorization and D iscrete
Logarithm s on a Q uantum Com puter, SIAM Rewiew 41 (1999), 303-332.
67. Silverman J. H., The Arithmetic of Elliptic Curves I, II, Springer (1986), (1994).
68. Singh S., Codici e Segreti, Rizzoli (1999).
69. Sipser M., Introduction to the Theory of Computation , Thom son Course
Technology (2005).
70. Solovay R., Strassen V., A Fast M onte-Carlo Test for Prim ality, SIAM J.
Comput. 6 (1977), 84-85.
71. Toffalori C., Corradini F., Leonesi S., M ancini S., Teoria della Computabilit e
della Complessit, McGraw-Hill (2005).
72. Van Leeuwen J., Handbook of Theoretical Computer Science, voi A: Algorithms
and Complexity, Elsevier (1990).
Indice analitico

A K S, 92, 114 analisi di frequenza, 2


G I M P S , 46
N P , 22, 101 Bzout, identit, 29
O, 83 Bernstein, 93, 117, 122
Op , 138 B errizbeitia, 93, 122
P , 22 B ertrand, 39
P = N P , 19 Biswas, 114
P S A , 24, 151 Boneh, 153, 156
U P , 24
= , 51 cam po finito, 64
0, 60 Carm ichael
7r(x), 39 pseudoprim o, 96
di R iem ann, 39 Cesare, 2
a n , 52 Chebyshev, 39
Fq, 64 Cheng, 122
Z at, 52 chiave di codifica, 4
privata, 143
A dlem an, 93, 151 pubblica, 143
Agrawal, 92, 114 chiave di decodifica, 4
A lberti, 2 chiavi indipendenti, 18
Alford, 97 Chor, 151
algoritmo, 20 cifrare, 4
di Lenstra, 138 cifrario di Vernam, 14
di prim alit Cobham , 21
A K S , 116 Cohen, 93
di M iller-Rabin, 107 Cole, 101
di Solovay-Strassen, 106 congettura
di tipo Las Vegas, 93 di Ferm at, 43
di tipo M ontecarlo, 93 di Gauss, 39
efficiente, 21 di Goldbach, 48
euclideo delle divisioni successive, 28 di H ardy e Littlew ood, 47
probabilistico, 93 congruenza modulo IV, 51
quantistico, 94 Cook, 21
rapido, 21 Coppersm ith, 157
176 Indice analitico

criptare, 4 legge di reciprocit quadratica, 73, 76


criptosistem a, 4, 5, 15, 144 G erm ain, 47
R S A , 151 Goldbach, 44, 48
di Diffie-Hellman, 144 Goldwasser, 94, 164, 167
di ElG am al, 148 Granville, 97, 118
di M assey-Om ura, 147
per curve ellittiche, 158 H adam ard, 40
di Merkle-Hellman, 150 Hardy, 40
crittoanalisi, 5 Hasse, 88
crittografa, 4 H astad, 157
a chiave pubblica, 17, 143 Heilman, 144, 150
e curve ellittiche, 157 H uang, 93
crivello di E ratostene, 42
curva ellittica, 82 iden tit di Bzout, 29
ipotesi di R iem ann, 40, 110
De La Valle-Poussin, 40 Ishaq-al-K indi, 2
decifrare, 4
decriptare, 4 K arp, 21
Diffie-Hellman, criptosistem a, 144 Kayal, 92, 114
digrafo, 7 Kilian, 94
divisibile, 27 Kocher, 157
doppio lucchetto, 147 Kronecker, 47
Durfree, 156
legge di reciprocit q u ad ratica di Gauss,
Edm onds, 21
73, 76
ElG am al, criptosistem a, 148
Lehmer, 99
E nte Certifcatore, 160
Lenstra, 93, 124
E ratostene, 42
algoritmo, 138
Eulero, 45, 46, 70
logaritm o discreto, 68, 88, 145
pseudoprim o, 103
Lucas, 45, 98
fattorizzazione
alla Ferm at, 132 m acchina di Turing, 20
problem a, 127 M assey-Om ura, criptosistem a, 147
Ferm at massimo comune divisore, 28
congettura, 43 Merkle, 150
num ero di, 42 M erkle-Hellman
piccolo teorem a, 59 criptosistem a, 150
ultim o teorem a, 48 M ersenne, num ero di, 45
Findley, 46 m etodo p, 129
firm a digitale, 159 m etodo p 1, 128
Fouvry, 118 Micali, 164, 167
Franklin, 157 M iller-Rabin
funzione algoritm o di prim alit, 107
di Eulero, 39, 60 m inimo comune m ultiplo, 30
di R iem ann, 39 m inimo resto assoluto, 134
hash, 160 m ultiplo, 27
im pronta, 160
Nowack, 46
Gauss, 39, 44 num ero
Indice analitico 177

perfetto, 46 Reiter, 157


primo, 33 residuo quadratico modulo p, 69
pseudocasuale, 154 resto, 27
R iem ann, 39
O m ura, 147 ipotesi, 40
Ri vest, 151
Pepin, 44 Rumely, 93
piccolo teorem a di Ferm at, 59
poker telefonico, 165 Sarrus, 95
Pollard Saxena, 92, 114
m etodo p, 129 Shafer, 46
m etodo p 1, 128 Sham ir, 151
Pom erance, 93, 97, 124 Shor, 94
potenza simbolo
modulo IV, 58 di Jacobi, 74
perfetta, 116 di Legendre, 70
prim i Slowinski, 45
gemelli, 38 sm artcard, 157
primo, 33 Solovay-Strassen
di Ferm at, 42 algoritm o di prim alit, 106
di G erm ain, 47 supercrescente, sequenza, 149
di M ersenne, 45 Sylow, 105
problem a
W P-com pleto, 24 teorem a
del logaritm o discreto, 88 dei num eri primi, 40
della fattorizzazione, 41, 127 del quoziente e del resto, 27
della prim alit, 41, 91 di Bernstein-B errizbeitia, 123
dello zaino, 148 di Lagrange, 64
supercrescente, 149 di L enstra-P om erance, 124
problem i di Sylow, 105
del millennio, 19 fondam entale dellA ritm etica, 34
protocollo tesi di
a conoscenza zero, 161 Edm onds-Cook-K arp, 21
di Goldwasser-Micali, 167 Turing, 20
pseudocasuale, numero, 154 te sta o croce telefonico, 162
pseudoprim o, 96 Turing, 3, 20
di Carm ichael, 96 m acchina, 20
di Eulero, 103
forte, 108 ultim o teorem a di Ferm at, 48
punto albinfnito, 83
Venkatesan, 153
quadrato modulo IV, 53 Vernam, cifrario, 14
quantistico, algoritmo, 94 Von N eum ann, 21
quoziente, 27
Weil, 47
Rabin, 21, 107 Wiles, 49
radice modulo N. 53 W ilson, 94
Springer - Collana Unitext

a cura di

Franco Brezzi
Ciro Ciliberto
Bruno Co denotti
Mario Pulvirenti
Alfio Quarteroni

Volumi pubblicati

A. Bernasconi, B. Codenotti
Introduzione alla complessit computazionale
1998, X+260 pp. ISBN 88-470-0020-3

A. Bernasconi, B. Codenotti, G. Resta


Metodi matematici in complessit computazionale
1999, X+364 pp, ISBN 88-470-0060-2

E. Salinelli, E Tomarelli
Modelli dinamici discreti
2002, XII+354 pp, ISBN 88-470-0187-0

A. Quarteroni
Modellistica numerica per problemi differenziali (2a Ed.)
2003, XII+334 pp, ISBN 88-470-0203-6
(la edizione 2000, ISBN 88-470-0108-0)

S. Bosch
Algebra
2003, VIII+380 pp, ISBN 88-470-0221-4

S. Graffi, M. Degli Esposti


Fisica matematica discreta
2003, X+248 pp, ISBN 88-470-0212-5

S. Margarita, E. Salinelli
MultiMath - Matematica Multimediale per PUniversit
2004, XX+270 pp, ISBN 88-470-0228-1
A. Quarteroni, R. Sacco, E Saleri
Matematica numerica (2a Ed.)
2000, XIV+448 pp, ISBN 88-470-0077-7
2002,2004 ristampa riveduta e corretta
(la edizione 1998, ISBN 88-470-0010-6)

A p a r t i r e d a l 2 0 0 4 , i v o lu m i d e lla s e r ie s o n o c o n t r a s s e g n a t i d a u n
n u m e r o d i id e n t if ic a z io n e

13. A. Quarteroni, E Saleri


Introduzione al Calcolo Scientifico (2a Ed.)
2004, X+262 pp, ISBN 88-470-0256-7
(la edizione 2002, ISBN 88-470-0149-8)

14. S. Salsa
Equazioni a derivate parziali - Metodi, modelli e applicazioni
2004, XII+426 pp, ISBN 88-470-0259-1

15. G. Riccardi
Calcolo differenziale ed integrale
2004, XII+314 pp, ISBN 88-470-0285-0

16. M. Impedovo
Matematica generale con il calcolatore
2005, X+526 pp, ISBN 88-470-0258-3

17. L. Formaggia, E Saleri, A. Veneziani


Applicazioni ed esercizi di modellistica numerica
per problemi differenziali
2005, VIII+396 pp, ISBN 88-470-0257-5

18. S. Salsa, G. Verzini


Equazioni a derivate parziali - Complementi ed esercizi
2005, VIII+406 pp, ISBN 88-470-0260-5

19. C. Canuto, A. Tabacco


Analisi Matematica I (2a Ed.)
2005, XII+448 pp, ISBN 88-470-0337-7
(la edizione, 2003, XII+376 pp, ISBN 88-470-0220-6)

20. E Biagini, M. Campanino


Elementi di Probabilit e Statistica
2006, XII+236 pp, ISBN 88-470-0330-X

21. S. Leonesi, C. Toffalori


Numeri e Crittografia
2006, VIII+177 pp, ISBN 88-470-0331-8