Indice
Introduzione
Cifrario di Cesare
Cifrario a rotazione
Crittoanalisi
Cifrario completo
La potente arma dei crittoanalisti
Cifrari a sostituzione polialfabetica
Cifrario di Vegenère
Punto debole del cifrario di Vegenère
Macchine per cifrare
Crittografia a chiave pubblica
Moltiplicare è facile fattorizzare è difficile
Aritmetica modulare
Dal resto a un numero e viceversa
Algoritmo RSA
Algoritmo RSA con numeri molto piccoli
Dal resto a un numero e viceversa
Vediamo la procedura che ci permette di trasformare un testo in un numero e viceversa. Per semplicità consideriamo lo spazio vuoto e l'alfabeto ordinario messo in corrispondenza biunivoca con gli interi da 0 a 26:
![]()
Ora, l'insieme dei numeri da 0 a 26 può essere considerato in due modi:
à
a) come l'insieme delle cifre di un sistema di numerazione a base 27;
b) come l'insieme dei resti modulo 27.
Utilizzeremo il primo caso per trasformare il testo in un numero e il secondo caso per trasformare il numero ottenuto nel testo iniziale. Vediamo con un esempio trasformando la parola "pace" in un numero e viceversa.
Consideriamo la corrispondenza tra le lettere della parola scelta e i corrispondenti numeri stabiliti precedentemente.
![]()
e consideriamo il numero (16 1 3 5)27 come un numero di quattro cifre in base 27 e trasformiamolo in un numero decimale moltiplicando ciascuna cifra, a partire da destra, per una potenza crescente di 27 e sommiamo i prodotti ottenuti:
5 ⋅ 270 + 3 ⋅ 271 + 1 ⋅ 272 + 16 ⋅ 273 = 315743
Il numero intero 315743 rappresenta dunque la parola "pace".
Vediamo ora la procedura inversa e passare dal numero alla parola.
Primo passo.
Consideriamo il numero 315743 e calcoliamo il resto del quoziente 315743/27.315743 mod 27 = 5
Al numero 5 corrisponde la lettera e.
Secondo passo.
Al numero 315743 togliamo 5 e dividiamo il risultato per 27 (315743 - 5 è sicuramente divisibile per 27 per definizione di modulo).(315743 - 5) : 27 = 11694
Calcoliamo il resto del quoziente 11694/27.
11694 mod 27 = 3
Al numero 3 corrisponde la lettera c.
Terzo passo.
Con lo stesso procedimento al numero 11694 togliamo 3 e dividiamo il risultato per 27.(11694 - 3) : 27 = 433
Calcoliamo il resto del quoziente 433/27.
433 mod 27 = 1
Al numero 1 corrisponde la lettera a.
Quarto passo,
Al numero 433 togliamo 1 e dividiamo il risultato per 27.(433 - 1) : 27 = 16
Calcoliamo il resto del quoziente 16/27.
16 mod 27 = 16
Al numero 16 corrisponde la lettera p.
Quinto passo.
Al numero 16 togliamo 16 e dividiamo il risultato per 27.(16 - 16) : 27 = 0
Calcoliamo il resto del quoziente 0/27.
0 mod 27 = 0
Al numero 0 corrisponde lo spazio vuoto.
Abbiamo cosí ricostruito la parola "pace".
Nella pratica queste due procedure dal testo al numero e dal numero al testo vengono eseguite con il computer utilizzando appositi programmi. Inoltre, per trasformare le lettere, i numeri e i segni della punteggiatura in numeri si utilizza il codice ASCII (American Standard Code for International Interchange). Nella tabella sono riportati i caratteri corrispondendi ai codici da 33 a 127.
![]()