Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
02
2023-05-18
In generale, il rappresentante del numero x nell’algebra modulo n è il resto della divisione con resto x : n .
Ad esempio chi è il rappresentante di 83 modulo 25 ? Siccome 83 = 25 3 + 8 , allora 83 = 8 ( mod 25) o anche
83 25 3 .
Casi Speciali:
• nell’algebra modulo n il numero n −1 è SEMPRE l’inverso di se stesso: infatti
( n − 1) ( n − 1) = ( n − 1) = n2 − 2n + 1 = n ( n − 2 ) + 1 = 1( mod n ) ;
2
4. La Funzione di Eulero
La Funzione di Eulero di un numero naturale n si indica con ( n ) (è “phi” e si legge “fi” di n ) e associa a
n il numero di numeri naturali compresi tra 1 e n che sono primi con n :
: →
n ( n ) = #a | MCD ( a, n ) = 1
b. se MCD ( a, b ) = 1 allora ( ab ) = ( a ) ( b ) ;
c. se p e q sono primi distinti allora ( pq ) = ( p − 1) ( q − 1) (da a. e b.);
d. se p è primo allora ( p m ) = p m − p m −1 ;
( n ) = ( p1e p2 e
1 2
pr er ) = ( p1e1 ) ( p2 e2 pr er ) = =
1 1 1 1
= p1e1 1 − pr er 1 − = n 1 − 1 −
p1 pr p1 pr
Ad esempio, se n = 72 = 23 32 risulta:
1 1
( 72 ) = ( 23 − 22 ) ( 32 − 31 ) = 4 6 = 24
1 2
oppure ( 72 ) = 72 1 − 1 − = 72 = 24
2 3 2 3
Nota Bene: per numeri composti (cioè non primi) grandi il calcolo della funzione di Eulero è proibitivo.
Il teorema di Fermat viene generalizzato dal teorema di Eulero: n 2, a n invertibile (cioè tale che
Ricordo che se n è primo (ipotesi del teorema di Fermat) allora ( n ) = n − 1 (proprietà a. di ( n ) ) e quindi
a
( n)
1( mod n )
il teorema di Eulero si riduce a quello di Fermat: a n −1 1( mod n )
( n) n −1
a =a
Quindi la funzione di Eulero sarebbe utile per calcolare l’inverso di un elemento a n qualunque sia n , ma
come abbiamo già detto in precedenza se n è grande non primo il calcolo di ( n ) risulta proibitivo.
L’alternativa è usare l’algoritmo di Euclide per la divisibilità: se MCD ( a, n ) = 1 significa che esistono r e s
(calcolabili con il suddetto algoritmo) tali che 1 = ra + sn , da cui ra = 1 − sn cioè ra 1( mod n ) , ovvero r è
l’inverso di a in n .
x F = M + ny, y : se n è alto, è un problema che non può essere risolto in tempi ragionevoli, e
d’altronde deve essere risolvibile per E e non per H , non da tutti e due e neppure da nessuno dei due…
Come può fare E per riconvertire M in N in tempi ridottissimi?
8. La cifratura RSA
Riconsidero l’ultimo esempio, ma invece di considerare un numero n generico, procedo in modo differente:
• E si procura due numeri primi p e q molto grandi;
• E calcola n = p q ;
• E calcola ( n ) = ( p − 1)( q − 1) ; (proprietà d. della funzione di Eulero)
• E sceglie la chiave pubblica F prendendo un numero minore di ( n ) e primo con ( n ) (
MCD ( F , ( n ) ) = 1 );
(
Dunque N FG ( mod n ) = N 1+t ( n ) ( mod n ) = N 1 N t ( n ) ( mod n ) = N N ( n ) ) ( mod n ) .
t
Essendo n = p q con p e q primi molto grandi, sicuramente N è primo con n ; quindi posso usare il
9. Un esempio concreto
Siano p = 11 e q = 5 . Quindi n = pq = 55 , ( 55) = ( p − 1)( q − 1) = 10 4 = 40 .
Inoltre ( ( 55) ) = ( 40 ) = 16 .
Sia F = 13 la chiave pubblica ( F deve essere minore di ( 55 ) = 40 ), che viene comunicata con n = 55 .
Allora G = F
( n ) −1
( mod ( n ) ) = 13 ( mod 40 ) = 37 .
16 −1
Suppongo che il numero da criptare sia N = 14 . Allora M = N F ( mod n ) = 1413 ( mod55) = 49 . L’acquirente
A invia al sito di e-commerce E il codice M = 49 . Per decriptare M = 49 , E calcola
N = M G ( mod n ) = 4937 ( mod55 ) = 14 . Invece l’hacker H , per trovare N deve risolvere l’equazione