Sei sulla pagina 1di 19

Lezioni di Aritmetica Modulare

Antonino Salibra
Università Ca’Foscari Venezia
18 Novembre 2019
Nel seguito indicheremo con Z l’insieme dei numeri interi.
Scriveremo talvolta a|b al posto di “a divide b”. Questo significa che esiste c ∈ Z tale
che b = ac. Ricordiamo che ogni numero intero divide 0.

1. Massimo comun divisore


Lemma 1.1. Dati due interi a e b con b 6= 0, esiste un’unica coppia di interi q (quoziente)
ed r (resto) tali che a = bq + r con 0 ≤ r < |b|, dove |b| è il valore assoluto di b.

Proof. Consideriamo l’insieme A = {a − bz : z ∈ Z}. Sia r il minimo elemento ≥ 0 di A.


Allora esiste q ∈ Z tale che a = bq + r. Se fosse r ≥ |b|, allora 0 ≤ r − |b| < r. Se b > 0,
allora a = b(q + 1) + (r − b), mentre se b < 0 allora a = b(q − 1) + (r − |b|). In ogni caso,
r non sarebbe il minimo elemento ≥ 0 di A. Contraddizione.

Example 1.1. Se a = 17 e b = −3, allora 17 = (−3)(−5) + 2. Se a = −17 e b = −3


allora −17 = (−3)6 + 1.

Se a1 , . . . , an sono interi, allora a1 Z + · · · + an Z denota l’insieme di tutti gli interi


che hanno la forma k1 a1 + · · · + kn an per opportuni k1 , . . . , kn ∈ Z. Se a ∈ Z, allora
aZ = {ka : k ∈ Z} è l’insieme dei multipli di a. L’insieme a1 Z + · · · + an Z si chiama ideale
generato da a1 , . . . , an .
Consideriamo due esempi: 2Z + 3Z = Z perché 1 = 3 − 2 e quindi un arbitrario intero
x si scrive come 3x + 2(−x), mentre lasciamo al lettore la verifica che l’ideale 4Z + 10Z è
l’insieme dei numeri pari.

Lemma 1.2. 1. a|b1 , . . . , a|bn sse b1 Z + · · · + bn Z ⊆ aZ.

2. a = ±b sse bZ = aZ.

In particolare, abbiamo:

b è un multiplo di a sse bZ ⊆ aZ

e
a divide b sse aZ ⊇ bZ.
Per esempio, da 3 divide 6 segue che 3Z ⊇ 6Z. In altre parole, ogni multiplo di 6 è anche
multiplo di 3.

1
Lezioni di Aritmetica Modulare 2

Lemma 1.3. Siano a e b numeri interi non entrambi nulli. Allora aZ + bZ = dZ, dove
d è il minimo intero positivo che appartiene all’ideale aZ + bZ.

Proof. Da d ∈ aZ + bZ si ricava d = xa + yb per opportuni x, y ∈ Z.


(dZ ⊆ aZ + bZ): Ogni multiplo di d si scrive come kd = (kx)a + (ky)b, da cui si ha
dZ ⊆ aZ + bZ.
(aZ + bZ ⊆ dZ): Sia c ∈ aZ + bZ, ossia c = za + tb per opportuni z, t ∈ Z. Dividendo
c per d si ottiene c = dq + r per opportuni q ed r tali che 0 ≤ r < d. Sostituendo
c = za + tb e d = xa + yb si ricava: za + tb = c = qd + r = qxa + qyb + r. Quindi
r = (z − qx)a + (t − qy)b ∈ aZ + bZ. Siccome d è il minimo intero positivo in aZ + bZ, si
deduce r = 0 e quindi c = dq ∈ dZ.
Ricordiamo che ogni numero intero a divide 0 perché 0 = a0.

Lemma 1.4. Siano a e b numeri interi. Allora esiste un unico numero d ≥ 0 che verifica
le seguenti proprietà:

(i) d|a e d|b;

(ii) Se c|a e c|b, allora c|d.

Se a, b sono non entrambi nulli, allora dZ = aZ + bZ.

Proof. Se a = b = 0, allora d = 0, perché 0 è l’unico numero intero che ammette come


divisori tutti i numeri interi.
Se a = 0 e b 6= 0, allora d = b, perché b|0 e b|b. Inoltre, se c|0 e c|b, allora banalmente
c|b. In modo simile si tratta il caso a 6= 0 e b = 0.
Se a, b sono entrambi non nulli, definiamo d come il più piccolo intero positivo tale che
dZ = aZ + bZ (si veda Lemma 1.3). Allora, (i) segue da a, b ∈ aZ + bZ = dZ. Per provare
(ii) notiamo che dall’ipotesi c|a e c|b segue che a, b ∈ cZ e quindi dZ = aZ + bZ ⊆ cZ.
Ossia c divide d.
Si noti che, se non utilizzassimo la teoria degli ideali, non sarebbe banale provare la
proprietà (ii) del lemma precedente.

Definition 1.1. Il massimo comun divisore (MCD) di a e b è il più grande divisore


comune di a e b.

Il massimo comun divisore di a e b coincide con l’unico numero determinato dal Lemma
1.4. Verrà indicato con MCD(a, b) oppure con (a, b).
Abbiamo (a, b) = (|a|, |b|), dove |a| e |b| sono il valore assoluto di a e b rispettivamente.
Dal Lemma 1.4 segue che (0, b) = b per ogni b ∈ Z.

Definition 1.2. Due numeri interi a, b si dicono relativamente primi se (a, b) = 1.

Un metodo efficiente di calcolo del massimo comun divisore è l’algoritmo di Euclide.

Lemma 1.5. Siano a e b interi con b 6= 0 e sia a = bq + r con 0 ≤ r < |b|. Allora
(a, b) = (b, r).
Lezioni di Aritmetica Modulare 3

Proof. Abbiamo per ipotesi che bZ + rZ ⊆ aZ + bZ, perché r = a − bq ∈ aZ + bZ. L’altra


inclusione aZ + bZ ⊆ bZ + rZ vale, perché a = bq + r. Allora, applicando il Lemma 1.4 si
ottiene la conclusione: (b, r)Z = bZ + rZ = aZ + bZ = (a, b)Z.

Euclide(int a, int b) : int


{int r;
while (b 6= 0) do //ripetere finché non riduciamo b a zero
begin
r := modb (a) //resto della divisione di a per b;
a := b;
b := r;
end;
return a; //quando la variabile b diventa 0, il massimo comun divisore è il valore della variabile a

L’algoritmo consiste in una serie di divisioni con resto:

a = b · q1 + r2 0 ≤ r2 < |b|
b = r2 · q2 + r3 0 ≤ r3 < r2
r2 = r3 · q3 + r4 0 ≤ r4 < r3
r3 = r4 · q4 + r5 0 ≤ r5 < r4 (1)
.. .. ..
. . .
rt−2 = rt−1 · qt−1 + rt 0 ≤ rt < rt−1
rt−1 = rt · qt + 0 Allora rt = (a, b)

Se indichiamo con C(a, b) il numero di volte che calcoliamo la divisione con resto
nell’algoritmo di Euclide, allora in (1) di sopra abbiamo C(a, b) = t.

Example 1.2. C(a, 1) = 1 per ogni a > 1.

Example 1.3. (134, 36) = (36, 26) = (26, 10) = (10, 6) = (6, 4) = (4, 2) = (2, 0). In tal
caso, C(134, 36) = 6.

Example 1.4. La successione di Fibonacci è definita ricorsivamente come segue:

F1 = 1; F2 = 1; Fn = Fn−1 + Fn−2 .

I primi elementi della successione sono: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, . . . . Il
centounesimo numero di Fibonacci è F101 = 354224848179261915075. Se dividiamo Fn+1
per Fn otteniamo proprio la relazione Fn+1 = Fn + Fn−1 , cioé il quoto è 1 ed il resto è
Fn−1 < Fn . Fn+1 e Fn sono relativamente primi:

(Fn+1 , Fn ) = (Fn , Fn−1 ) = (Fn−1 , Fn−2 ) = · · · = (F3 , F2 ) = (2, 1) = 1.

n − 1 = C(Fn+1 , Fn ) è il numero di volte che calcoliamo la divisione con resto.

Per definizione log2 (b) è uguale al numero reale x tale che 2x = b.


Lezioni di Aritmetica Modulare 4

Lemma 1.6. Siano a > b interi positivi. Il numero di volte C(a, b) che iteriamo la
divisione con resto nell’algoritmo di Euclide per il calcolo del massimo comun divisore
(a, b) è al più 2log2 (b) + 2.
Proof. Siano r0 = a e r1 = b e
r0 = r1 q1 + r2 0 ≤ r2 < r1
r1 = r2 q2 + r3 0 ≤ r3 < r2
r2 = r3 q3 + r4 0 ≤ r4 < r3
r3 = r4 q4 + r5 0 ≤ r5 < r4 (2)
.. .. ..
. . .
rt−2 = rt−1 qt−1 + rt 0 ≤ rt < rt−1
rt−1 = rt qt
Proviamo che ri > 2ri+2 , per ogni i ≥ 0. Infatti,

ri = ri+1 qi+1 + ri+2 0 ≤ ri+2 < ri+1


≥ ri+1 + ri+2 ri > ri+1 da cui segue qi+1 ≥ 1 (3)
> 2ri+2 ri+2 < ri+1
Iterando il procedimento si ottiene:

b = r1 > 2r3 > 22 r5 > · · · > 2k r2k+1 .

Consideriamo il più piccolo k tale che 2k ≥ b > 2k−1 . Da 2k ≥ b segue che r2k+1 < 1,
ossia r2k+1 = 0. In termini dell’algoritmo di Euclide (2) si ha rt+1 = 0, cosı̀ abbiamo
t + 1 ≤ 2k + 1, da cui t ≤ 2k. Inoltre vi sono esattamente t divisioni effettuate in (2), cosı̀
l’algoritmo di Euclide termina in al più 2k iterazioni. Allora si ha:

numero di iterazioni ≤ 2k = 2(k − 1) + 2 < 2log2 (b) + 2.

Il Lemma seguente spiega come l’algoritmo di Euclide ed i numeri di Fibonacci sono


collegati.
Proposition 1.1. Siano a > b > 0 due numeri interi positivi tali che a = bq1 + r2 , con
0 ≤ r2 < b. Sia r2 > r3 > · · · > rn > . . . la sequenza dei resti nell’algoritmo di Euclide
applicato alla coppia di numeri a e b. Allora, valgono le seguenti condizioni:
1. Per ogni resto rn 6= 0, abbiamo

b ≥ Fn−1 rn−1 + Fn−2 rn > Fn rn ≥ Fn ,

dove Fn è l’ennesimo numero di Fibonacci. Segue che se C(a, b) ≥ k (i.e., nell’algoritmo


di Euclide il numero di divisioni con resto per il calcolo del MCD di a e b è ≥ k),
allora b > Fk .
L’esempio seguente fa capire l’efficienza dell’algoritmo di Euclide: se C(a, b) ≥ 101,
allora b > F101 = 354224848179261915075.
Lezioni di Aritmetica Modulare 5

Proof. Siano r0 = a > r1 = b due numeri interi positivi arbitrari. Allora, r0 = r1 q1 + r2


con 0 ≤ r2 < r1 , ed inoltre

r1 = r2 q2 + r3 , 0 ≤ r3 < r2 .

Proveremo per induzione su n che b ≥ Fn−1 rn−1 + Fn−2 rn > Fn rn . Iniziamo dal caso base.
Da q2 > 0 si ottiene

b = r1 ≥ r2 + r3 = F2 r2 + F1 r3 > 2r3 = F3 r3 ,

perché 0 ≤ r3 < r2 e F1 = F2 = 1. Supponiamo per ipotesi di induzione che

b = r1 ≥ Fn−1 rn−1 + Fn−2 rn > Fn rn .

Proviamo che b = r1 ≥ Fn rn + Fn−1 rn+1 > Fn+1 rn+1 . Da rn−1 = rn qn + rn+1 con
0 ≤ rn+1 < rn si ha:
b = r1
≥ Fn−1 rn−1 + Fn−2 rn by Ind. Hp.
= Fn−1 (rn qn + rn+1 ) + Fn−2 rn by rn−1 = rn qn + rn+1
≥ Fn−1 (rn + rn+1 ) + Fn−2 rn by qn ≥ 1
= Fn−1 rn + Fn−1 rn+1 + Fn−2 rn
= Fn rn + Fn−1 rn+1 by Fn = Fn−1 + Fn−2
> Fn+1 rn+1 by rn > rn+1 .

Concludiamo la sezione con il Teorema di Bezout che determina le soluzioni delle


equazioni lineari del tipo ax + by = c.
Lemma 1.7. Siano a, b numeri interi non entrambi nulli. Allora esistono interi x e y
tali che ax + by = (a, b).
Proof. Dal Lemma 1.3 segue che aZ + bZ = dZ, dove d = (a, b) è il massimo comun
divisore di a, b.
Theorem 1.1. (Proprietà di Bézout) Siano a, b, c numeri interi e sia d = (a, b) il massimo
comun divisore di a, b. Allora l’equazione lineare ax + by = c ha soluzioni intere sse d|c.
Proof. Dal Lemma 1.3 si ha aZ + bZ = dZ. Quindi c ∈ aZ + bZ sse c ∈ dZ.
Osservazione: Siano a, b interi non entrambi nulli. Allora l’equazione lineare ax + by = 0
rappresenta la retta dei vettori (x, y) che sono ortogonali al vettore (a, b). Dal Lemma 1.3
e dal Teorema di Bezout si ha che la retta ax + by = c parallela alla retta ax + by = 0
passa attraverso dei punti che hanno coordinate intere sse c è un multiplo di (a, b).
Example 1.5. Trovare una soluzione intera dell’equazione 240x + 36y = 12. Possiamo
dividere tutti i coefficienti per 12 ed ottenere 20x + 3y = 1. Siccome 20 e 3 sono relati-
vamente primi (cioé (20, 3) = 1) allora le soluzioni intere di 20x + 3y = 1 esistono. Si
vede facilmente che x = −1 e y = 7 è una soluzione di 20x + 3y = 1. La stessa soluzione
risolve 240x + 36y = 12.
Lezioni di Aritmetica Modulare 6

Example 1.6. Trovare una soluzione intera dell’equazione 120x + 81y = 12. Dividendo
per 3 si ottiene 40x + 27y = 4. Siccome 40 e 27 sono relativamente primi (cioé (40, 27) =
1) allora le soluzioni intere di 40x + 27y = 1 esistono. Applichiamo l’algoritmo di Euclide
per il calcolo del massimo comun divisore: 40 = 27 + 13 e 27 = 13 ∗ 2 + 1. Quindi
1 = 27 − 13 ∗ 2 = 27 − (40 − 27) ∗ 2 = 27 − 40 ∗ 2 + 27 ∗ 2 = (−2)40 + 27 ∗ 3. Quindi
una soluzione intera dell’equazione 40x + 27y = 4 è: x = −8, y = 12. Le stesse soluzioni
funzionano per l’equazione lineare 120x + 81y = 12.
Example 1.7. Non esistono soluzioni intere dell’equazione 6x + 2y = 5, perché 2 = (6, 2)
non divide 5.
1.1. Massimo comun divisore e matrici
Ricordiamo che il minimo comune multiplo di due numeri interi positivi a e b è il più
piccolo naturale k tale che a|k e b|k. È denotato da mcm(a, b). Si vede facilmente che

ab = mcm(a, b) × MCD(a, b).

Sia a > b > 0. Calcoliamo il massimo comun divisore e il minimo comune multiplo con
il metodo matriciale. Consideriamo il sistema lineare
    
1 0 x a
= (4)
0 1 y b
 
a
Esso ammette banalmente come unica soluzione il vettore . Sappiamo anche che ogni
b
sistema lineare, che si ottiene dal sistema (4) applicando alla matrice completa
 
1 0 a
A=
0 1 b

le regole del metodo di eliminazione di Gauss (scambio di due righe; sostituzione di una
riga con la somma della riga stessa
  con un’altra moltiplicata per uno scalare r) ammette
a
come unica soluzione il vettore .
b
Se a = bq + r con 0 ≤ r < b, si sottrae alla prima riga q volte la seconda riga e poi si
scambiano la prima e la seconda riga:
       
1 0 a 1 −q a − bq 1 −q r 0 1 b
⇒ = ⇒
0 1 b 0 1 b 0 1 b 1 −q r

Siccome b > r, si procede in maniera simile fino a quando nella terza colonna della matrice
non appare uno 0 in posizione A23 . Alla fine otterremo una matrice
 
c d n
e f 0

per cui il sistema lineare     


c d x n
=
e f y 0
Lezioni di Aritmetica Modulare 7

 
a
ha come unica soluzione il vettore .
b
      
c d a ca + db n
= =
e f b ea + f b 0
Allora n = ca + db è il massimo comun divisore di a e b, mentre il modulo |ea| = |f b| è il
minimo comune multiplo.
L’algoritmo è il seguente.
Matrice(nat a, nat b)
{matrix
 A; nat q, z}
1 0 a
A := ;
0 1 b
while (A23 6= 0) do //ripetere finché non riduciamo A23 a zero
begin
A13
q := A 23
//quoto della divisione A13 = A23 q + r con resto 0 ≤ r < A23 ;
for i := 1 to 3 do A1i := A1i − qA2i ; //Sottrai q volte la riga 2 dalla riga 1 di A ;
for i := 1 to 3 do z := A1i ; A1i := A2i ; A2i := z; Scambia le righe 1 e 2 della matrice A;
end;
return A13 = A11 a + A2 b; // A23 = 0 implica (a, b) = A13 = A11 a + A12 b
return A21 a = −A22 b; // A23 = 0 implica mcm(a, b) = |A21 a| = | − A22 b|
Example 1.8. Calcoliamo il massimo comun divisore e il minimo comune multiplo di 53
e 71 con il metodo matriciale:
     
1 0 71 0 1 53 1 −1 18
⇒ ⇒
0 1 53 1 −1 18 −2 3 17
   
−2 3 17 3 −4 1
⇒ ⇒
3 −4 1 −53 71 0
Quindi,       
3 −4 71 3 × 71 − 4 × 53 1
= =
−53 71 53 −53 × 71 + 71 × 53 0
da cui
(71, 53) = 1 = 3 × 71 − 4 × 53; mcm(71, 53) = 71 × 53.
Example 1.9. (134, 36) = (26, 36) = (26, 10) = (6, 10) = (6, 4) = (2, 4) = (2, 0) perché
       
1 0 134 0 1 36 1 −3 26 −1 4 10
⇒ ⇒ ⇒
0 1 36 1 −3 26 −1 4 10 3 −11 6
     
3 −11 6 −4 15 4 7 −26 2
⇒ ⇒ ⇒
−4 15 4 7 −26 2 −18 67 0
Quindi,       
7 −26 134 7 × 134 − 26 × 36 2
= =
−18 67 36 −18 × 134 + 67 × 36 0
da cui
(134, 36) = 2 = 7 × 134 − 26 × 36; mcm(134, 36) = 67 × 36 = 18 × 134 = 2412.
Lezioni di Aritmetica Modulare 8

Example 1.10. Calcoliamo il massimo comun divisore di numeri di Fibonacci consecutivi


(si veda esempio 1.4). Poniamo F−2 = 1 e F−1 = 0.
       
1 0 Fn 0 1 Fn−1 1 −1 Fn−2 −1 2 Fn−3
⇒ ⇒ ⇒
0 1 Fn−1 1 −1 Fn−2 −1 2 Fn−3 2 −3 Fn−4
     
2 −3 Fn−4 −3 5 Fn−5 5 −8 Fn−6
⇒ ⇒ ⇒ ⇒ ...
−3 5 Fn−5 5 −8 Fn−6 −8 13 Fn−7
Si noti che i numeri 2, 3, 5, 8, 13, . . . che compaiono nella matrice sono numeri di Fi-
bonacci. In altri termini,
       
F−2 −F−1 Fn −F−1 F0 Fn−1 F0 −F1 Fn−2 −F1 F2 Fn−3
⇒ ⇒ ⇒
−F−1 F0 Fn−1 F0 −F1 Fn−2 −F1 F2 Fn−3 F2 −F3 Fn−4
     
F2 −F3 Fn−4 −F3 F4 Fn−5 F4 −F5 Fn−6
⇒ ⇒ ⇒ ⇒ ...
−F3 F4 Fn−5 F4 −F5 Fn−6 −F5 F6 Fn−7
Si noti che ad ogni passo abbiamo

F2i Fn − F2i+1 Fn−1 = Fn−(2i+2) ; F2i−1 Fn − F2i Fn−1 = −Fn−(2i+1)

Se n è pari e 2i + 2 = n si ha
2
1 = F0 = Fn−2 Fn − Fn−1 .

Se n è dispari e 2i + 1 = n si ha
2
Fn−1 −Fn−2 Fn = 1 = (Fn , Fn−1 ); Fn−1 Fn −Fn Fn−1 = F−1 = 0; mcm(Fn , Fn−1 ) = Fn−1 Fn

2. L’aritmetica dell’orologio
L’aritmetica modulare (o aritmetica dell’orologio) è stata introdotta da Gauss ad inizio
ottocento. Consideriamo un orologio con n > 0 tacche che corrispondono ad i numeri da
0 a n − 1 (Si veda la figura nel caso n = 9). Indichiamo con Zn l’insieme {0, 1, . . . , n −
1}. Scorriamo l’orologio in senso orario partendo da 0. Una mossa +1 consiste nello
spostarsi in senso orario dalla tacca in cui ci troviamo alla tacca successiva. La mossa
+1 corrisponde all’operazione di aggiungere 1. Quando arriviamo al numero n − 1 ed
eseguiamo una ulteriore mossa +1, scopriamo che (n − 1) + 1 = 0 anziché (n − 1) + 1 = n.
Quindi, contrariamente ai numeri naturali, il numero 0 è il successore del numero n − 1
e la funzione determinata dalle mosse +1 definisce una funzione bigettiva dall’insieme
Zn nell’insieme Zn . Viceversa, scorriamo l’orologio in senso antiorario partendo da 0.
Una mossa −1 consiste nello spostarsi in senso antiorario dalla tacca in cui ci troviamo
alla tacca precedente. La mossa −1 corrisponde a sottrarre 1. Quindi 0 − 1 = n − 1
anziché essere indefinito come avviene nell’aritmetica dei numeri naturali. La funzione
determinata dalle mosse −1 definisce una funzione bigettiva dall’insieme Zn nell’insieme
Zn . Essa è la funzione inversa della funzione determinata dalle mosse +1.
Lezioni di Aritmetica Modulare 9

Figure 1. Aritmetica dell’orologio

Come possiamo “rappresentare” un intero a nell’orologio? Adottiamo due strategie


diverse se a è positivo oppure negativo. Se a è positivo, eseguiamo esattamente un numero
di mosse +1 pari ad a volte partendo da 0. La tacca in cui ci troviamo rappresenta il
numero intero positivo a nell’orologio. Se a è negativo, eseguiamo esattamente un numero
di mosse −1 pari ad |a| volte partendo da 0. La tacca in cui ci troviamo rappresenta il
numero intero negativo a nell’orologio. In entrambi i casi la tacca del numero a rappresenta
il resto della divisione di a per n che scriveremo

modn (a).

È un numero naturale compreso tra 0 e n − 1.

Notazione: Talvolta scriveremo a mod n al posto di modn (a).

Definiamo la somma +n (modulo n) ed il prodotto ∗n (modulo n) sui numeri interi


come segue:
a +n b = modn (a + b); a ∗n b = modn (ab).
Il risultato della somma e del prodotto è sempre un valore compreso tra 0 e n − 1,
quindi rappresentabile nell’orologio.
Lemma 2.1. L’insieme Zn = {0, 1, . . . , n − 1} è chiuso rispetto alle operazioni di somma
+n e prodotto ∗n .
Per semplificare i conti, utilizziamo la seguente proposizione
Lezioni di Aritmetica Modulare 10

Proposition 2.1. Valgono le seguenti uguaglianze (a, b ∈ Z):


1. modn (a + b) = modn (modn (a) + modn (b));

2. modn (ab) = modn (modn (a) modn (b)).


Example 2.1. Sia n = 9. Allora mod9 (95 · 37) = mod9 (mod9 (95)mod9 (37)) = mod9 (5 ·
1) = mod9 (5) = 5. Se non avessimo utilizzato la proposizione avremmo dovuto calcolare
mod9 (3515), che è più difficile specialmente se n è grande.
L’aritmetica dell’orologio è correlata alla teoria delle congruenze che introduciamo nella
prossima sezione.

3. Congruenze
Le tacche numerate dell’orologio della sezione precedente sono i rappresentanti delle n
classi di equivalenza di una relazione di equivalenza ≡n definita sugli interi. Nella prossima
definizione introduciamo la relazione ≡n .
Definition 3.1. Sia n > 0. Diciamo che a, b ∈ Z sono congruenti modulo n, e scriviamo

a ≡ b (mod n) oppure a ≡n b,

se modn (a) = modn (b).


Quindi abbiamo a ≡n b se il resto della divisione di a per n è uguale al resto della
divisione di b per n.
Lemma 3.1. Sia n > 0 e siano a e b numeri interi. Allora, a ≡n b sse n divide b − a.
Proof. Supponiamo che a ≡n b. Allora, dividendo a e b per n, si ha: a = q1 n + r e
b = q2 n + r con 0 ≤ r < n. Ne segue che b − a è divisibile per n: b − a = n(q2 − q1 ).
Per la direzione opposta, supponiamo che b−a = nt per un opportuno t ∈ Z. Dividiamo
sia a che b per n: a = q1 n + r1 e b = q2 n + r2 con 0 ≤ r1 , r2 < n. Allora, b − a =
n(q2 − q1 ) + (r2 − r1 ) = nt, da cui segue r2 − r1 = n(t + q1 − q2 ). Ma |r2 − r1 | < n. Quindi
l’unica possibilità è che r1 = r2 .
Lemma 3.2. La relazione ≡n è una relazione di equivalenza su Z che è compatibile
rispetto alle operazioni di addizione, moltiplicazione e esponenziazione di interi:
(i) a ≡n b ∧ c ≡n d ⇒ a + c ≡n b + d.

(ii) a ≡n b ∧ c ≡n d ⇒ ac ≡n bd.

(iii) a ≡n b ⇒ ak ≡n bk .
Proof. Sia modn (a) = modn (b) e modn (c) = modn (d).
(i) Dalla Proposizione 2.1(1) e dall’ipotesi si ha: modn (a + c) = modn (modn (a) +
modn (c)) = modn (modn (b) + modn (d)) = modn (b + d).
(ii) La prova è simile a quella del punto (i).
(iii) La prova è per induzione su k utilizzando (ii).
Lezioni di Aritmetica Modulare 11

La relazione ≡n partiziona Z in n classi di equivalenza. Se a è un intero scriveremo [a]n


per la classe di equivalenza di a modulo l’equivalenza ≡n . Ecco la partizione determinata
da ≡n :

[0]n = {kn : k ∈ Z}; [1]n = {1 + kn : k ∈ Z}; ... [n − 1]n = {(n − 1) + kn : k ∈ Z}.

Scegliamo come rappresentanti delle classi di equivalenza i numeri 0, 1, 2, . . . , n − 1.


Questi numeri corrispondono alle tacche di un orologio che segna le ore da 0 sino ad n − 1
(si veda la figura con n = 4).

Figure 2. Aritmetica dell’orologio modulo 4

Le operazioni di somma +n e prodotto ∗n , definite nella sezione precedente, agiscono


sulle classi di equivalenza modulo n tramite i loro rappresentanti.

Proposition 3.1. L’insieme Zn = {0, 1, 2, . . . , n − 1} con le operazioni di somma +n e


prodotto ∗n modulo n costituisce un anello commutativo con unità. Questo significa che
(Zn , +n , 0) è un gruppo commutativo rispetto alla somma:

• Proprietà associativa: (x +n y) +n z = x +n (y +n z);

• Proprietà commutativa: x +n y = y +n x;

• Elemento neutro: x +n 0 = x = 0 +n x;

• Opposto: x +n (−x) = 0 = (−x) +n x.

(Zn , ∗n , 1) è un monoide commutativo rispetto al prodotto:

• Proprietà associativa: (x ∗n y) ∗n z = x ∗n (y ∗n z);


Lezioni di Aritmetica Modulare 12

• Proprietà commutativa: x ∗n y = y ∗n x;
• Elemento neutro: x ∗n 1 = x = 1 ∗n x;
Il prodotto distribuisce rispetto alla somma:
• x ∗n (y +n z) = (x ∗n y) +n (x ∗n z).

Nei prossimi due lemmi studiamo proprietà di cancellazione e periodicità delle potenze.
Lemma 3.3. Proprietà di cancellazione: ac ≡n bc ∧ (c, n) = 1 ⇒ a ≡n b.
Proof. Dal Lemma 1.7 e dall’ipotesi (c, n) = 1 esistono interi x e y tali che cx + ny = 1.
Siccome cx = n(−y) + 1, allora cx ≡n 1. Dal Lemma 3.2(ii) si ricava acx ≡n a e bcx ≡n b.
Dall’ipotesi ac ≡n bc segue che acx ≡n bcx. Quindi a ≡n b.
Lemma 3.4. Sia n > 0 ed a un intero. La sequenze di potenze modulo n
a0 a1 a2 a3 a4 a5 a6 ...
1 modn (a ) modn (a ) modn (a ) modn (a ) modn (a ) modn (a6 ) . . .
1 2 3 4 5

è periodica a partire da un certo punto in poi: esistono k e p ≤ n tali che ak ≡n ak+rp per
ogni r ≥ 0.
Example 3.1. Calcoliamo le potenze del 3 modulo 7:
30 31 32 33 34 35 36
1 3 2 6 4 5 1

Il periodo è 6. Per esempio 32 ≡ 38 . Infatti 38 = 32 36 ≡7 32 .


Example 3.2. Calcoliamo le potenze del 2 modulo 8:
20 21 22 23 24
1 2 4 0 0

Il periodo è 1 a partire da 23 .
Concludiamo la sezione con una serie di esempi che provano l’utilità della Proposizione
2.1 e dell’aritmetica modulare.
Example 3.3. Vogliamo calcolare qual’è il resto della divisione di 95758 per 5. Siccome
10 è divisibile per 5, si ha che 95758 = 8 + 5 · 10 + 7 · 102 + 5 · 103 + 9 · 104 ≡5 8 ≡5 3.
Example 3.4. Vogliamo calcolare qual’è il resto della divisione di 95758 per 7. Siccome
10 è 3 modulo 7, si ha che
95758 = 8 + 5 · 10 + 7 · 102 + 5 · 103 + 9 · 104
≡7 1 + 5 · 3 + 0 · 32 + 5 · 33 + 2 · 34
≡7 1 + 15 + 5 · 32 · 3 + 2 · 32 · 32
≡7 1+1+5·2·3+2·2·2
≡7 2+2+1=5
Lezioni di Aritmetica Modulare 13

Example 3.5. Vogliamo determinare mod5 (95758 · 37988). Piuttosto che eseguire prima
la moltiplicazione e poi il calcolo del resto della divisione per 5, calcoliamo direttamente
il resto della divisione di 95758 per 5 ed il resto della divisione di 37988 per 5. Si ha:
mod5 (95758) = 3 e mod5 (37988) = 3. Quindi mod5 (95758 · 37988) = 4.
Example 3.6. Calcoliamo 3128 modulo 7. Siccome 33 = 27 ≡7 −1, allora 3128 = 33·42+2 =
(33 )42 · 32 ≡7 (−1)42 · 2 = 2.

4. Teoremi di Fermat e di Wilson


Pierre de Fermat, uno dei matematici più importanti dell’ultimo millennio, è nato il 17
agosto 1601 a Beaumont-de-Lomagne (Francia) ed è morto il 12 gennaio 1665 a Castres.
Era magistrato di professione e si occupava di matematica nel tempo libero. Presentiamo
qui di seguito uno dei suoi risultati più importanti.
Theorem 4.1. (Piccolo Teorema di Fermat) Se p è un numero primo e p non divide a,
allora ap−1 ≡p 1.
Proof. Consideriamo i seguenti multipli positivi di a:

a, 2a, 3a, . . . , (p − 1)a.

Nessuno di questi numeri è congruente ad un altro modulo p: se na ≡p ma allora dal


Lemma 3.3 potremmo cancellare a ed ottenere m ≡p n, che è impossibile in quanto
1 ≤ n, m ≤ p − 1. Quindi i numeri a, 2a, 3a, . . . , (p − 1)a modulo p corrispondono in un
qualche ordine ai numeri 1, 2, 3, . . . , p − 1. Si ha quindi:

a · 2a · 3a · · · · · (p − 1)a ≡p 1 · 2 · 3 · · · · · (p − 1)

da cui
ap−1 (p − 1)! ≡p (p − 1)!
Cancellando (p − 1)!, che non è divisibile per p, da entrambi i membri otteniamo la
conclusione1 .
Corollary 4.1. Se p è primo, allora ap ≡p a.
Example 4.1. Vogliamo calcolare 5236 modulo 13. Applicando il Piccolo Teorema di
Fermat sappiamo che 512 ≡13 1. Quindi

5236 = 512·19+8 = (512 )19 58 ≡13 119 58 = 58 = (52 )4 ≡13 (−1)4 = 1


1
Un’altra prova del Piccolo Teorema di Fermat si ottiene per induzione su a come segue. La base
dell’induzione a = 1 è ovvia. Supponiamo vero il teorema per a e dimostriamolo per a + 1:
p
X p!
(a + 1)p = ( )ai
i=0
i!(p − i)!

p!
Siccome i!(p−i)! ≡p 0 per ogni 1 ≤ i ≤ p − 1 si ha:

(a + 1)p ≡p ap + 1 ≡p a + 1.

perché per ipotesi di induzione ap ≡p a.


Lezioni di Aritmetica Modulare 14

Theorem 4.2. Se p e q sono primi distinti tali che ap ≡q a e aq ≡p a, allora apq ≡pq a.
Proof. Dal Corollario 4.1 si ha (ap )q ≡q ap e (aq )p ≡p aq . Per ipotesi ap ≡q a e aq ≡p a,
quindi apq ≡q a e apq ≡p a. In conclusione p|apq − a e q|apq − a e quindi pq|apq − a.
Example 4.2. Consideriamo p = 11 e q = 31 numeri primi. Allora

211 = 2 · 210 = 2 · 25 · 25 ≡31 2 · 1 · 1 = 2.

Per il Piccolo Teorema di Fermat si ha anche:

231 = 2(210 )3 ≡11 2 · 13 = 2.

Applicando il teorema precedente si ha

211·31 ≡11·31 2

che si può anche scrivere


2341 ≡341 2.

Theorem 4.3. Se p è un numero primo, allora (Zp , +p , 0, ∗p , 1) è un campo numerico.


Proof. Dalla Proposizione 3.1 dobbiamo soltanto provare che ogni elemento a ∈ Zp ha un
inverso. La conclusione segue dal Piccolo Teorema di Fermat perché

aap−2 ≡p 1.

Quindi ap−2 è l’inverso di a.


Theorem 4.4. (Teorema di Wilson) Se p è primo, allora (p − 1)! ≡p −1.
Proof. Supponiamo p > 3 primo. Sia 1 ≤ a ≤ p − 1. Consideriamo la congruenza lineare
ax ≡p 1. Siccome a e p sono relativamente primi, questa congruenza ammette un’unica
soluzione modulo p. Quindi esiste un unico a0 con 1 ≤ a0 ≤ p − 1 tale che aa0 ≡p 1.
Dal fatto che p è primo segue che a = a0 soltanto per a = 1 e a = p − 1. Infatti la
congruenza quadratica a2 ≡p 1 si scrive a2 − 1 = (a − 1)(a + 1) ≡p 0. Si ricava a = 1
oppure p|a + 1 da cui a = p − 1.
Da tutto questo segue che
2 · 3 · · · · · (p − 2) ≡p 1
che si scrive anche
(p − 2)! ≡p 1.
Quindi
(p − 1)! = (p − 1) · (p − 2)! ≡p p − 1 ≡p −1.

Chiudiamo questa sezione con una applicazione del Teorema di Wilson allo studio delle
congruenze quadratiche.
Lezioni di Aritmetica Modulare 15

Theorem 4.5. Sia p un numero primo dispari. La congruenza quadratica x2 ≡p −1


ammette una soluzione modulo p sse p ≡4 1.

Proof. (⇒) Supponiamo che esista a tale che a2 ≡p −1. Ricordiamo che p−1 è un numero
pari. Dal Piccolo Teorema di Fermat abbiamo:
p−1 p−1
1 ≡p ap−1 = (a2 ) 2 ≡p (−1) 2 .

Ne segue che p−1 2


è pari e quindi p − 1 è divisibile per 4. In altri termini, p ≡4 1.
(⇐) Supponiamo che p ≡4 1. Dal Teorema di Wilson abbiamo (p − 1)! ≡p −1. Siccome
p−1
2
è pari, allora possiamo dividere i numeri da 1 a p − 1 in due parti equinumeriche:
i numeri da 1 a p−1 2
, ed i numeri da p+1
2
a p − 1. Abbiamo che p − 1 ≡p −1, p − 2 ≡p
p+1 p−1
−2, . . . , 2 ≡p − 2 . Quindi

p−1 p−1 p − 1 p−1 2


−1 ≡p (p − 1)! ≡p ( )!(−1) 2 ( )! = ( !) .
2 2 2

5. Teorema di Eulero
Leonhard Euler, noto in Italia come Eulero, è stato il più importante matematico del
diciottesimo secolo. Eulero è nato il 15 aprile 1707 a Basilea in Svizzera ed è morto il 18
settembre 1783 a San Pietroburgo in Russia.
Si definisca la seguente funzione di Eulero:

φ(n) = numero di interi positivi ≤ n che sono relativamente primi con n.

Example 5.1. Se n è primo, φ(n) = n − 1. Ecco altri esempi: φ(8) = 4 e φ(14) = 6.

Lemma 5.1. n è primo sse φ(n) = n − 1.

Proof. Se φ(n) = n − 1 allora tutti i numeri da 1 a n − 1 sono relativamente primi con n.


Quindi, n è primo.

Lemma 5.2. Se p è primo, allora φ(pk ) = pk − pk−1 = pk (1 − p1 ).

Proof. Si ha: (a, pk ) = 1 sse p 6 | a. Vi sono pk−1 interi tra 1 e pk che sono divisibili per p:

p, 2p, 3p, . . . , (pk−1 )p.

Quindi l’insieme {1, 2, . . . , pk } contiene pk − pk−1 interi relativamente primi con p.


Per esempio, φ(9) = φ(32 ) = 32 − 31 = 6.

Lemma 5.3. Se a e b sono relativamente primi, allora φ(ab) = φ(a)φ(b).

Proposition 5.1. Sia n > 0. L’insieme degli interi relativamente primi con n è chiuso
rispetto all’operazione di moltiplicazione (modulo n) e costituisce un gruppo moltiplicativo.
Lezioni di Aritmetica Modulare 16

Proof. Sia (a, n) = 1 e (b, n) = 1. Allora si vede facilmente che (ab, n) = 1. Dal Lemma
1.7 esistono interi x, y tali che ax + ny = 1. Ne segue che ax ≡n 1 ed x è l’inverso di
a.
Theorem 5.1. (Teorema di Eulero) Se n è un intero positivo e (a, n) = 1, allora aφ(n) ≡n
1.
Proof. Siano b1 , b2 , . . . , bφ(n) i numeri minori di n che sono relativamente primi con n.
Allora ab1 , ab2 , . . . , abφ(n) sono congruenti a b1 , b2 , . . . , bφ(n) in qualche ordine. Ne segue
che
(ab1 ) · (ab2 ) · · · · · (abφ(n) ) = aφ(n) (b1 · b2 · · · · · bφ(n) ) ≡n b1 · b2 · · · · · bφ(n)
Siccome ogni bi è primo con n possiamo dividere per b1 · b2 · · · · · bφ(n) ed ottenere la
conclusione.
Example 5.2. φ(100) = φ(22 · 52 ) = φ(22 )φ(52 ) = 100(1 − 21 )(1 − 15 ) = 40. Dal teorema
di Eulero si ricava
340 ≡100 1.
Quindi, per esempio, 3256 = 36·40+16 = (340 )6 316 ≡100 316 . Infine, 316 = (81)4 ≡100
(−19)4 = (361)2 ≡100 612 ≡100 21.

6. Equazioni modulari
Theorem 6.1. La congruenza lineare ax ≡n b ha una soluzione sse (a, n)|b.
Proof. ax ≡n b sse n|(ax − b) sse ∃q(ax − b = nq) sse ∃q(ax − nq = b). Dal Teorema 1.1
di Bézout otteniamo che ax ≡n b sse (a, n)|b.
Example 6.1. Vogliamo trovare, se esiste, una soluzione all’equazione modulare 124x ≡71
17. Siccome 124 ≡71 53, l’equazione si riduce a 53x ≡71 17. Calcoliamo il massimo comun
divisore di 53 e 71 con il metodo matriciale:
     
1 0 71 1 −1 18 1 −1 18
⇒ ⇒
0 1 53 0 1 53 −2 3 17
   
3 −4 1 3 −4 1
⇒ ⇒
−2 3 17 −53 71 0
Ne segue che 3 · 71 − 4 · 53 = 1. Siccome 1 divide 17, l’equazione modulare ha soluzione:
17 = 3 · 71 · 17 − 4 · 53 · 17 ≡71 53(−4 · 17), da cui si ricava x ≡71 −4 · 17 = −68 ≡71 3.
Theorem 6.2. (Teorema cinese del resto) Siano n1 , . . . , nk interi positivi a due a due
relativamente primi (i.e., (ni , nj ) = 1 per i 6= j). Allora il sistema di congruenze lineari

x ≡ a1 (mod n1 )
x ≡ a2 (mod n2 )
... ... ... ...
x ≡ ak (mod nk )

ha una soluzione simultanea che è unica modulo il prodotto n1 × · · · × nk .


Lezioni di Aritmetica Modulare 17

Diamo due differenti dimostrazioni del teorema.


Proof. Per ogni 1 ≤ i ≤ k si definisca

bi = n1 . . . ni−1 ni+1 . . . nk .

Si ha (bi , ni ) = 1. Allora la congruenza lineare bi xi ≡ni 1 ha soluzione. Si noti che bi ≡nj 0


per j 6= i. Allora il numero

x = a1 b 1 x 1 + a2 b 2 x 2 + · · · + ak b k x k

risolve il sistema di congruenze lineari. Per esempio, x ≡n1 a1 b1 x1 perché b2 , b3 , . . . , bk ≡n1


0. Inoltre, da b1 x1 ≡n1 1 si ottiene la conclusione x ≡n1 a1 . Lo stesso discorso vale per gli
altri ni .
Supponiamo che oltre ad x vi sia un’altra soluzione y. Allora si ricava facilmente che
x ≡ni y per ogni 1 ≤ i ≤ k. Quindi, n1 . . . nk divide x − y (si ricordi che (ni , nj ) = 1 per
i 6= j). Si conclude x ≡ y mod n1 × · · · × nk .
Diamo un’altra prova del Teorema Cinese del resto utilizzando il Teorema di Eulero.
Proof. Per ogni 1 ≤ i ≤ k si definisca bi = n1 . . . ni−1 ni+1 . . . nk . Allora
φ(n1 ) φ(n2 ) φ(nk )
x = a1 (b1 ) + a2 (b2 ) + · · · + ak (bk )

risolve il problema.

Example 6.2. Applichiamo il teorema cinese del resto per risolvere il seguente sistema
di congruenze lineari:
x ≡5 2; x ≡7 6; x ≡11 3.
I numeri 5, 7, 11 sono primi tra loro (a due a due). Quindi, l’unica soluzione modulo
5 × 7 × 11 = 385 è:
x = 2b1 x1 + 6b2 x2 + 3b3 x3
dove
b1 = 7 · 11 = 77; b2 = 5 · 11 = 55; b3 = 5 · 7 = 35,
e x1 , x2 , x3 sono le soluzioni delle congruenze lineari

77x1 ≡5 2x1 ≡5 1; 55x2 ≡7 6x2 ≡7 1; 35x3 ≡11 2x3 ≡11 1.

Si ha x1 = 3, x2 = 6 e x3 = 6. In conclusione,

x = mod385 (2 · 77 · 3 + 6 · 55 · 6 + 3 · 35 · 6) = 462 + 1980 + 630 = 3072 ≡385 377.


Lezioni di Aritmetica Modulare 18

7. Applicazione alla Crittografia


Questa sezione è essenzialmente la Sezione 4.6 del libro Bellissima-Montagna, Matem-
atica per l’Informatica, Carrocci Editore, 2008.
Vogliamo inviare un messaggio privato ad un nostro interlocutore. Come prima cosa
codifichiamo il messaggio con un numero M tramite una codifica elementare. Supponiamo
di avere un alfabeto di n caratteri α1 , α2 , . . . , αn . Associamo a ciascun carattere un numero
in progressione evitando i numeri che nella rappresentazione in base 10 contengono degli
zeri. Per ogni i, sia ci il numero che codifica il carattere αi . Allora una stringa αi1 . . . αik
si codifica con il numero (in base 10) ci1 0 . . . 0cik . La cifra 0 è un separatore.

Example 7.1. Sia A = {a, b, c, d, e, f, g, h, i, l, m, n} l’alfabeto. Codifichiamo i caratteri


con i numeri successivi 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14. Allora la stringa “cane” è codifi-
cata dal numero 40201406.

Un messaggio scritto con la codifica elementare può essere facilmente decodificato


purché il nostro interlocutore conosca l’associazione carattere-numero. Questa associ-
azione deve essere inviata al nostro interlocutore per mail e può quindi finire nelle mani
di un intruso.
Per evitare il problema, criptiamo il messaggio.
Metodo 1 : Concordiamo con ciascuno dei nostri interlocutori una n-upla di numeri
a1 , . . . , an a due a due relativamente primi. Tali numeri sono conosciuti soltanto allo
scrivente ed agli interlocutori. Il Metodo 1 è basato sul Teorema Cinese del Resto: Sia
m = a1 × . . . × an . Possiamo supporre che la codifica elementare M del nostro messaggio
sia < m, altrimenti spezziamo il messaggio in più parti. Inviamo al nostro interlocutore
non il numero M , ma i numeri b1 ≡a1 M , b2 ≡a2 M ,. . . , bn ≡an M . Chi riceve i numeri
b1 , . . . , bn può ricostruire M dal teorema Cinese del resto perché conosce a1 , . . . , an . Un
eventuale intruso (che non conosce a1 , . . . , an ) non potrebbe. Il metodo ha il problema di
comunicare i numeri segreti a1 , . . . , an ai nostri interlocutori.
Metodo 2 : Questo metodo è stato inventato nel 1977 da Ron Rivest, Adi Shamir e Leon
Adleman ed è indicato con la sigla RSA.
Ogni utente dispone di una chiave pubblica nota a tutti e una chiave privata. L’utente
Pippo si procura quattro numeri distinti

p, q, n, e

molto grandi tali che

• p e q sono numeri primi;

• n = p · q;

• e è relativamente primo con p − 1 e q − 1 (per esempio, e potrebbe essere un numero


primo maggiore di p e q).

I numeri p e q costituiscono la chiave privata nota solo all’utente Pippo, mentre i numeri
n ed e costituiscono la chiave pubblica, utilizzata per inviare messaggi a Pippo. I numeri
n ed e possono, per esempio, comparire nella home page del Signor Pippo.
Lezioni di Aritmetica Modulare 19

In linea di principio, chi riuscisse a scomporre in fattori primi n potrebbe decodificare


il messaggio, ma non esistono algoritmi efficienti per la scomposizione in fattori primi.
Il signor X vuole inviare un messaggio in codice a Pippo senza che nessuno lo possa de-
codificare. Il signor X considera la codifica elementare M del messaggio. Si può supporre
che M < n, altrimenti si spezza il messaggio in tante parti e si spediscono separatamente.
Possiamo supporre che M sia primo con n. Se no, si può renderlo primo con n aggiungendo
un simbolo speciale in fondo.
Il signor X cerca nella pagina web di Pippo la chiave pubblica di Pippo, ossia n ed e.
Il signor X calcola
modn (M e ).
Per calcolare questo numero si applicano le tecniche che abbiamo imparato nelle sezioni
precedenti.
Il numero N < n tale che
N ≡n M e
costituisce il messaggio criptato che il signor X invia per email al signor Pippo. SOLO
Pippo può decodificare N per ottenere M , quindi non è importante se qualcuno intercetta
N . Determiniamo ora come Pippo può decodificare N .
Come Pippo decodifica N : Pippo calcola la funzione di Eulero φ(n) = φ(pq) = (p −
1)(q − 1). Poi l’utente Pippo risolve la congruenza modulare ex ≡φ(n) 1. Tale congruenza
modulare ammette soluzione perché e è relativamente primo con φ(n) = (p − 1)(q −
1). Indichiamo con d una soluzione di tale equazione modulare. Successivamente Pippo
calcola
modn (N d ).
Tale numero è la codifica elementare M del messaggio criptato. Infatti

N d ≡n (M e )d ≡n M ed .

Ora essendo ed ≡φ(n) 1, esiste un numero k tale che ed = 1 + kφ(n). Allora

N d ≡n (M e )d ≡n M ed ≡n M 1+kφ(n) = M (M kφ(n) ) = M (M φ(n) )k ≡n M

per il Teorema di Eulero.


Un eventuale intruso per trovare M dovrebbe conoscere φ(n) = (p − 1)(q − 1), che è im-
possibile da calcolare se non si conosce la scomposizione in fattori primi di n. Difficilissima
da calcolare.

Potrebbero piacerti anche