Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
b c e f g
h i l y w
x z p q r
s t u v k
Due degli schemi di crittografia simmetrica più comuni usati attualmente si basano
su cifrari a blocchi e cifrari a flusso. I cifrari a blocchi raggruppano i dati in blocchi di
dimensioni predeterminate, e ciascuno di essi viene cifrato usando la chiave e
l’algoritmo corrispondente. I cifrari a flusso non codificano i dati del testo semplice
in blocchi, ma secondo incrementi di 1 bit. La crittografia simmetrica è
relativamente sicura consentendo di decifrare e cifrare messaggi rapidamente.
Inoltre, la sicurezza garantita dalla cifratura simmetrica può essere incrementata
aumentando la lunghezza delle chiavi. Per ogni bit aggiunto, la difficoltà aumenta in
modo esponenziale (2n). Tuttavia, il problema più grande di questa crittografia è il
trasferimento delle chiavi in canali non protetti e, quindi, possono essere
intercettate da terzi. Per risolvere il problema, molti protocolli usano combinazioni
simmetriche e asimmetriche per stabilire connessioni sicure. Un esempio è il TLS.
La crittografia asimmetrica consiste in una coppia di chiavi asimmetriche (una diretta
ed una inversa). Nella crittografia a chiave pubblica è possibile utilizzare ambo le
chiavi per cifrare o decifrare i dati, ma la chiave usata per cifrare non può essere
utilizzata anche per decifrare. La complessità per ottenere la chiave pubblica è
polinomiale, mentre quella per la chiave privata è esponenziale. Una chiave è
pubblica e viene caricata su un server pubblico di chiavi, mentre l’altra è privata e
rimane al mittente del messaggio.
Nella crittografia asimmetrica è possibile delineare 3 schemi in modo da
determinare l’autenticazione del destinatario e la riservatezza, l’autenticazione del
mittente, la non ripudiabilità.
S preleva dal registro delle chiavi pubbliche quella di D, che precedentemente aveva
generato la coppia di chiavi. S cripta il messaggio con la chiave di D e la invia a D. D
con la sua chiave privata, unica associata alla sua chiave pubblica, riuscirà a criptare
il messaggio. Questo schema permette la riservatezza e l’autenticazione del
destinatario ma non della sorgente, dato che tutti possono accedere alla chiave
pubblica di D.
S cifra il messaggio con la propria chiave privata e lo invia a D. Quest’ultimo
accederà alla chiave pubblica di S con cui decriptare il messaggio cifrato e leggerlo.
Utilizzando la chiave privata di S è possibile attestare l’autenticazione del mittente.
S cifra una prima volta il messaggio con la sua chiave privata e, successivamente, lo
cifra una seconda volta con la chiave pubblica di D. Una volta arrivato a D, il
messaggio verrà decifrato prima utilizzando la chiave privata di D e poi usando la
chiave pubblica di S. In questo modo si garantiscono l’autenticazione della sorgente,
del destinatario e la riservatezza. Inoltre, il messaggio non è ripudiabile dal mittente.
Un esempio di algoritmo a chiave asimmetrica è l’algoritmo Diffie-Hellman,
introdotto nel 1976. Siano dati 2 numeri g (generatore) e un numero primo (p).
A sceglie un numero a e calcola A=ga mod p (mod=resistuisce il resto della divisione)
e lo invia a B
B sceglie un numero b e calcola B=gb mod p e lo invia ad A che calcola
Ka = Ba mod p, mentre B calcola Kb=Ab mod p. Quindi i due interlocutori hanno le
rispettive chiavi di cifratura.
Dato p=23 e g=5
A: a=2 A=g2 mod p=25 mod 23= 2
B: b=3 B=g3 mod p = 125 mod 23 = 10
Ka = Ba mod p = 102 mod 23=8 Kb= Ab mod p = 23 mod 23 = 8 (stessa
chiave segreta)
I principi crittografici illustrati vengono utilizzati nella firma digitale:
1. Mediante una funzione one-way hash, viene fatto una sintesi del messaggio in
una stringa di lunghezza limitata, detta fingerprint.
2. Viene poi crittografata l’impronta digitale utilizzando la crittografia
asimmetrica e la chiave privata del mittente.
3. La firma elettronica viene allegata in calce al messaggio non crittografato
4. Il destinatario decrittografa la firma digitale con la chiave pubblica del
mittente
5. Il destinatario confronta la firma digitale con una generata da un’altra
funzione one-way hash
6. Se corrisponde, allora il destinatrio avrà attestato:
a. L’integrità del messaggio
b. Autenticazione del mittente
c. Non ripudiabilità del mittente
La blockchain dei Bitcon usa un particolare algoritmo di firme digitali conosciuto
come Elliptic Curve Digital Signature Algorithm (ECDSA) che genera firme digitali
senza l’uso di cifratura.