Escolar Documentos
Profissional Documentos
Cultura Documentos
Introduzione:
La crittografia a chiave pubblica nacque nel maggio del 1975, come conseguenza questo
problema.
L'idea alla base delle crittografia asimmetrica quello di avere due chiavi diverse, una
pubblica per la criptazione e una privata per la decriptazione, che deve essere mantenuta
segreta. In questo caso non necessario lo scambio delle chiavi, che per la maggior parte
saranno pubbliche.
Se si riesce a rendere impossibile o molto complesso dedurre la chiave privata dalla chiave
pubblica, allora la chiave pubblica pu essere resa nota e messa a disposizione di tutti gli
utenti, in un ipotetico elenco di chiavi di codifica.
-Anna manda a Bruno il messaggio in una scatola chiusa con un suo lucchetto A: n Bruno
n gli intrusi possono aprirlo;
- Anna toglie il suo lucchetto e rimanda il pacco a Bruno, che ora ha solo il suo lucchetto e
che alla sua ricezione pu aprirlo e leggere il messaggio.
In questo caso per il messaggio deve essere trasmesso tre volte con enorme dispendio di
risorse: l' idea migliore quella descritta di seguito, dove viene inviato il "lucchetto" e non
il messaggio:
-Bruno manda ad Anna il proprio lucchetto aperto e questa lo conserva fino a che ha
necessit di spedire qualcosa a Bruno:
-Quando Anna deve spedire un messaggio a Bruno, lo chiude con il suo lucchetto e glielo
invia: senza il triplo invio del messaggio ci siamo riportati nella situazione descritta in
precedenza.
Formalmente necessario trovare una funzione ("il lucchetto") la cui trasmissione su canali
insicuri non comprometta l'algoritmo, che sia facile da applicare (parte pubblica che chiude
il lucchetto) ma difficile da invertire (parte privata che apre il lucchetto).
La chiusura del lucchetto viene effettuata con una specifica chiave pubblica che ciascun
utente mette a disposizione di tutti gli altri utenti che necessitano di tramettergli messaggi.
La chiave privata invece segreta, in possesso a ogni utente, che la utilizza per "aprire" il
lucchetto e leggere il messaggio.
Descrizione dell'algoritmo
Il primo passo dell'algoritmo di generazione delle chiavi quello di scegliere due numeri
primi p e q e di calcolare il loro prodotto n.
(Due numeri interi a e b si dicono coprimi, o primi tra loro, se e solo se essi non hanno
nessun divisore comune eccetto 1 e 1)
(d * e) mod (p - l ) ( q - 1) = 1
dove mod indica l'operazione modulo, ovvero il resto della divisione intera.
Per calcolare d andiamo per tentativi sostituendo un numero intero a k nella seguente
relazione, ottenuta dalla formula inversa della precedente
( ( 1)( 1)) + 1
=
Esempio:
d * 7 mod 20 = 1
Sostituiamo la costante k nella formula inversa partendo da 1 e facendolo crescere fino a che
si ottiene un numero intero:
(1 20) + 1 21
= = =3
7 7
Algoritmo crittografico
Il messaggio m che deve essere trasmesso viene innanzi tutto espresso in forma di numero
e deve essere minore di n: questo pu anche essere ottenuto convertendo il messaggio in
codice ASCII e suddividendolo in blocchi.
La dimensione dei blocchi deve essere tale da richiedere un numero k di bit tale che
Corrisponda al numero di bit corrispondenti alla lunghezza di n tradotto in codice binario.
Nel nostro esempio simbolico, con n=33 possiamo operare con blocchi massimi di
6 bit ciascuno, mentre in realt si opera su 64 256 bit.
Se il nostro messaggio fosse composto dalla semplice codifica ASCII della parola ABC, la
sua codifica originale sarebbe, in forma binaria:
A = 01000001
B = 01000010
C = 01000011
01000001
01000010
01000011
16 20 9 3
167 mod 33 = 25
207 mod 33 = 26
97 mod 33 = 15
37 mod 33 = 9
25 26 15 9
inoltre importante specificare nel messaggio che i numeri sono da 6 cifre binarie.
m = cd mod n
cd mod n
Considerando il messaggio cifrato del nostro esempio si dovr calcolare i seguenti valori:
16 20 9 3
Fonti: