Radice primitiva modulo n

Da testwiki.
Vai alla navigazione Vai alla ricerca

In aritmetica modulare, una radice primitiva modulo n o generatore modulo n (o semplicemente generatore) è un numero intero le cui potenze modulo n sono congruenti con i numeri coprimi ad n.

Se n1 è un intero, i numeri coprimi ad n, considerati modulo n, costituiscono un gruppo rispetto all'operazione di moltiplicazione; esso viene generalmente indicato con (/n)* oppure n*. Esso è un gruppo ciclico se e solo se n è uguale a 2, 4, pk o 2pk per un numero primo dispari p e k1. Un generatore di questo gruppo ciclico è chiamato anche elemento primitivo di n*.

Si consideri per esempio n=14. Gli elementi di

(/14)*,

sono le classi di congruenza di 1, 3, 5, 9, 11 e 13 che sono coprimi con n=14.

Si ha che 3 è un generatore modulo 14, perché 32 mod 14 = 9, 33 mod 14 = 13, 34 mod 14 = 11, 35 mod 14 = 5 e 36 mod 14 = 1. L'unica altra radice primitiva modulo 14 è 5.

I generatori modulo n rivestono un'importanza considerevole in crittografia.

Trovare i generatori

Di seguito vi è una tabella che contiene i più piccoli generatori per diversi valori di n[1]:

n 2 3 4 5 6 7 8 9 10 11 12 13 14
generatore mod n 1 2 3 2 5 3 - 2 3 2 - 2 3

Non è nota nessuna formula generale ragionevolmente semplice per determinare i generatori modulo n. Vi sono però dei metodi per individuare un generatore che sono più veloci della semplice verifica per tentativi di tutti i candidati. Se l'ordine moltiplicativo di un numero m modulo n è uguale all'ordine di (/n)*, cioè a ϕ(n), dove ϕ è la funzione phi di Eulero, allora m è un generatore. Si può utilizzare il seguente test per i generatori: calcolare ϕ(n). Quindi determinare i diversi fattori primi di ϕ(n), siano p1,,pk. Ora, per ogni elemento m di (/n)*, calcolare

mϕ(n)/pimodn per i=1,,k

usando il rapido algoritmo di esponenziazione mediante elevamento al quadrato. Non appena si trova un numero m per il quale questi k risultati sono tutti diversi da 1, allora m è un generatore.

Il numero di generatori modulo n, se ne esistono, è uguale a ϕ(ϕ(n)) dal momento che, in generale, un gruppo ciclico di r elementi possiede ϕ(r) generatori.

A volte si può essere interessati ai generatori piccoli. Al riguardo sono stati dimostrati i seguenti risultati:

  • per ogni ε>0 esistono delle costanti positive C e p0 tali che, per ogni primo pp0, esiste un generatore modulo p minore di Cp1/4+ε;

Dimostrazione dell'esistenza di un generatore modulo pk, p dispari

La dimostrazione dell'esistenza del generatore procede dapprima provando che essa esiste per ogni numero primo p, poi dimostrando che, se a è una radice primitiva di p, allora o a o p+a è una radice primitiva di p2, e che questa è poi radice primitiva anche di ogni potenza successiva di p. Infatti, sia a una radice primitiva modulo p. Allora, per definizione di radice primitiva

ap11modp,

e p1 è il più piccolo esponente per cui ciò avviene. Poiché ϕ(p2)=p(p1), l'ordine moltiplicativo di a modulo p2 divide p(p1), ed è multiplo di p1, e quindi può essere solamente p1 o lo stesso p(p1). In quest'ultimo caso a è una radice primitiva modulo p2; altrimenti, sviluppiamo con la formula del binomio di Newton

(p+a)p1=pp1++(p1p2)pap2+ap1(p1)pap2+ap1modp21pap2modp2,

che non può essere 1, perché altrimenti p dividerebbe ap2, il che è assurdo, e quindi l'ordine di p+a non è p1, e deve essere p(p1), cioè abbiamo trovato una radice primitiva modulo p2.

Per dimostrare la proposizione per pk, con k>2, si procede per induzione: supponiamo che a sia una radice primitiva per tutti i pj con j<k. In particolare

aϕ(pk2)1modpk2,

ossia

aϕ(pk2)=1+lpk2,

per un qualche l. Questa relazione vale anche modulo pk; inoltre l'ordine di a modulo pk deve essere un multiplo di ϕ(pk1), perché ha quest'ordine modulo pk1. Quindi, poiché ϕ(pk)=pϕ(pk1), l'ordine può essere solo ϕ(pk1) o pϕ(pk1); in particolare, a è una radice primitiva se il suo ordine è il secondo di questi valori. Se p è un primo dispari

aϕ(pk1)=(aϕ(pk2))p=(1+lpk2)p1+(pp1)lpk2modpk1+lpk1modpk.

Questa quantità è uguale a 1 se e solo se l è divisibile per p; tuttavia, se lo fosse, si avrebbe

aϕ(pk2)=1+lpk21modpk1

contro l'ipotesi che l'ordine di a modulo pk1 sia ϕ(pk1). Questo è assurdo, e quindi l'ordine di a modulo pk è esattamente ϕ(pk), e a è una radice primitiva modulo pk. Per induzione questo è valido per ogni k.

L'estensione ai numeri nella forma 2pk segue immediatamente, perché il gruppo moltiplicativo di questo anello contiene lo stesso numero di elementi di quello dell'anello di pk elementi, ed esiste una corrispondenza biunivoca che conserva le operazioni (ossia un isomorfismo) tra questi due gruppi.

Funzioni simmetriche delle radici primitive modulo p

Indicando con g il generatore di p* allora, per quanto precedentemente esposto, tutte le radici primitive modulo p si potranno esprimere come gi dove (i,ϕ(p))=(i,p1)=1.

Gauss nelle Disquisitiones Arithmeticae dimostrò agli articoli 80 ed 81 il valore (modulo p primo) della somma delle radici primitive di p e del loro prodotto.

Esse valgono:

  • (i,p1)=1gi1(modp) dove p primo diverso da 3.(Art.80, DA)
  • (i,p1)=1giμ(p1)(modp) per qualsiasi p primo, μ è la funzione di Möbius. Ovviamente Gauss descrisse la funzione di Möbius, che non era stata ancora formalizzata al suo tempo, in maniera equivalente. (Art.81, DA)

La seconda identità si può estendere considerando tutti gli elementi di ordine d, con d divisore di p1. Sia h un elemento di p* di ordine d, allora tutti gli elementi di ordine d saranno del tipo hj con (j,d)=1 e quindi saranno in numero ϕ(d). La loro somma vale

(j,d)=1hjμ(d)(modp).

Tramite tale formula possiamo calcolare la somma delle potenze k-esime delle radici primitive. Supponiamo che k sia tale che (k,p1)=1 allora tale elevamento a potenza k manda l'insieme delle radici primitive in sé stesso e pertanto

(i,p1)=1(gi)kμ(p1)(modp).

Ora consideriamo un k che divida interamente p1, se g è radice primitiva (e quindi ha ordine p1), l'elemento gk avrà ordine uguale a p1k quindi l'insieme delle radici primitive (ossia l'insieme degli elementi di ordine p1) viene mandato nell'insieme degli elementi di ordine p1k che ha cardinalità ϕ(p1k). Tale funzione è iniettiva se e solo se k=1 mentre negli altri casi si assiste ad una "restrizione" delle radici primitive, nel senso che ϕ(p1)ϕ(p1k) radici primitive vengono mandate nello stesso elemento di ordine p1k. Tale funzione è suriettiva, detto ciò per calcolare

(i,p1)=1(gi)k,

basta calcolare la sommatoria degli elementi di ordine p1k e moltiplicare tale valore per l'"indice di restrizione" ϕ(p1)ϕ(p1k). Quindi

(i,p1)=1(gi)k=ϕ(p1)ϕ(p1k)μ(p1k).

Sia ora k dove (k,p1)=b, quindi k=ab e (a,p1)=1 pertanto al posto di applicare direttamente la potenza k alle radici primitive, prima applichiamo la potenza a e poi, agli elementi ottenuti, la potenza b. La potenza a manda le radici primitive in sé stesse, la potenza b le fa "restringere" in un sottordine e pertanto, indicando (k,p1) in luogo di b otteniamo:

(i,p1)=1(gi)k=ϕ(p1)ϕ(p1(k,p1))μ(p1(k,p1)).

Tali formule si rivelano utili per calcolare le varie funzioni simmetriche delle radici primitive, tramite i teoremi newtoniani riusciamo facilmente nell'impresa. Supponiamo di voler calcolare il valore della sommatoria del prodotto delle radici primitive prese due a due, allora tramite i teoremi newtoniani otteniamo che:

(ij,p1)=1;ijgigj12[((i,p1)=1gi)2(i,p1)=1(gi)2]12[(μ(p1))2μ(p12)ϕ(p1)ϕ(p12)](modp).

Considerando ora il polinomio monico delle radici primitive modulo p (primo e diverso da 3) esso sarà di grado ϕ(ϕ(p))=ϕ(p1):

xϕ(p1)+An1xϕ(p1)1++A1x+A0(i,p1)=1(xgi)(modp).

Si dimostra che valgono le relazioni Ai=Aϕ(p1)i. Infatti se y è una radice primitiva allora anche y1 lo è, e tali radici sono distinte per p diverso da 3. Valutando i polinomi in queste radici otteniamo:

(1) yϕ(p1)+An1yϕ(p1)1++A1y+A00(modp)

(2) (1y)ϕ(p1)+An1(1y)ϕ(p1)1++A1(1y)+A00(modp)

moltiplicando la (2) per (1y)ϕ(p1) otteniamo:

(2) A0yϕ(p1)+A1yϕ(p1)1++An1y+10(modp) Sottraendo la (1) alla (2') otteniamo:

(3) (A01)yϕ(p1)+(A1An1)yϕ(p1)1++(An1A1)y+(1A0)0(modp).

In particolare il termine A0 vale (1)ϕ(p1)(i,p1)=1gi dove p diverso da tre, pertanto per qualsiasi p primo e maggiore di 3 si ha che ϕ(p1) è pari e quindi A01(modp). Sostituendo tale valore nella (3) otteniamo che l'equazione ha, quindi, grado ϕ(p1)1 e della quale due radici sono y e y1; considerando le altre radici primitive a due a due, l'una l'inverso dell'altra, otteniamo sempre la stessa equazione (3) e quindi, in sintesi, la (3) si annulla per tutte le ϕ(p1) radici primitive ed ha grado ϕ(p1)1. Ma allora è identicamente nulla e quindi Ai=Aϕ(p1)i.

Allora in base alle considerazioni precedenti sappiamo:

xϕ(p1)μ(p1)xϕ(p1)1+μ(p1)x+1(i,p1)=1(xgi)(modp).

Riportiamo alcuni esempi di tali polinomi:

  • x+10(mod3) (per questo non si può impiegare l'Art.80 di Gauss, ma si è solo verificato "a mano")
  • x2+10(mod5)
  • x2x+10(mod7)
  • x4x3+x2x+10(mod11)
  • x4x2+10(mod13)
  • x8+10(mod17)
  • x6x3+10(mod19)
  • x10x9+x8x7+x6x5+x4x3+x2x+10(mod23)
  • x12x10+x8x6+x4x2+10(mod29)
  • x8+x7x5x4x3+x+10(mod31)

Si vede che tali polinomi altro non sono che i polinomi ciclotomici Φn(x) dove n=p1 con p numero primo.

Laddove nel polinomio si assiste ad un "passo" costante tra gli esponenti di x (per esempio per p=5 il passo degli esponenti è 2, come succede anche per p=13,29) e nominando k il valore di tale "passo", allora in tali moduli l'insieme delle radici primitive è quozientabile tramite il gruppo delle radici k-esime dell'unità, e vale il viceversa.

In particolare se p è un numero primo di Fermat allora il polinomio delle sue radici primitive sarà:

xp12+10(modp).

Infatti se p è un primo di Fermat esso è del tipo p=22n+1 ed il numero delle radici primitive sarà

ϕ(ϕ(p))=ϕ(p1)=ϕ(22n)=22n1,

tale sarà anche il grado del polinomio delle radici primitive. Per il piccolo teorema di Fermat l'equazione che ha per radici tutti degli elementi di p* è

xp11(xp121)(xp12+1)0(modp),

dove il primo polinomio si annulla solo e solamente per i residui quadratici modulo p. Criterio di Eulero. Poiché le radici primitive non sono residui quadratici, il polinomio delle radici primitive deve fattorizzare il secondo polinomio. Quest'ultimo è monico e di grado p12=22n1, cioè ha lo stesso grado del polinomio cercato: pertanto lo è.

Se p è un numero primo sicuro maggiore di 5, ossia se p=2q+1 dove q è un primo di Sophie Germain maggiore di 2, il polinomio delle radici primitive ha coefficienti di valori alternativamente +1 e 1. Infatti in tal caso si ha che la cardinalità di p* è 2q e pertanto gli elementi di p* possono avere ordine solo di 2q,q,2,1. Per l'ordine 1 abbiamo solo l'elemento +1, mentre per l'ordine 2 abbiamo solo l'elemento 1. Gli elementi di ordine 2q sono equinumerosi agli elementi di ordine q, infatti ϕ(2q)=ϕ(q)=q1. Sia h un elemento di ordine q allora, poiché q è coprimo con 2, l'elemento h ha ordine pari al minimo comune multiplo tra l'ordine di 1 (che è 2) e quello di h (che è q). In sintesi per ogni elemento h di ordine q abbiamo che l'elemento h ha ordine 2q.

Sia il polinomio delle radici di ordine q il seguente:

pq(x)=xq1+Mq2xq2+M2x2+M1x+M0,

ma allora il polinomio delle radici di ordine 2q (radici primitive) sarà:

p2q(x)=xq1Mq2xq2+M2x2M1x+M0,

in quanto ogni coefficiente di p2q(x) è somma di prodotti di s radici opposte a quelle di pq(x), quindi il segno dipende dalla parità di s .

Per quanto appena affermato, proponiamoci di determinare il polinomio delle radici di ordine q al fine di determinare quello di ordine 2q. Sia h un elemento di ordine q allora tutti gli altri elementi di pari ordine si esprimeranno come hi con (i,q)=1 e q, ricordiamo, è numero primo maggiore di 2. Esse saranno pertanto h1,h2,h3,,hq1 e se ad esse aggiungiamo l'elemento 1 allora sappiamo che esse sono le radici dell'equazione

xq10(modp),

che sappiamo fattorizzare in:

xq1(x1)(xq1+xq2++x2+x+1)(modp),

è immediato rilevare che

pq(x)xq1+xq2++x2+x+1(modp),

e per quanto detto prima otteniamo:

p2q(x)xq1xq2++x2x+1(modp),

che è il polinomio delle radici primitive.

Note

Bibliografia

  • Tom M. Apostol (1976): Introduction to Analytic Number Theory, Springer-Verlag, New York. ISBN 0-387-90163-9 (Capitolo 10).

Voci correlate

Collegamenti esterni

Template:Portale