Crittografia Flashcards
Quali aspetti coinvolge la sicurezza della comunicazione in rete
Riservatezza (Confidentiality) →solo il mittente ed il destinatario “legittimo” dovrebbero essere in grado di comprendere il contenuto del messaggio
Integrità (Integrity) dei messaggi →mittente e destinatario di un messaggio desiderano essere certi che i messaggi scambiati non siano alterati da una terza parte senza che se ne possano accorgere
Disponibilità (Availability) e accessibilità dei servizi →i servizi offerti in rete devono essere protetti da eventuali attacchi
Autenticazione →mittente e destinatario di un messaggio desiderano essere reciprocamente sicuri dell’identità della controparte
Esempi di comportamenti malevoli
- intercettare i messaggi inviati da Alice a Bob
(eavesdropping) - inserire messaggi fasulli nel flusso della comunicazione da Alice a Bob
- inviare pacchetti con il campo source address fasullo
(spoofing) in modo da fingere di essere Alice - dirottare la comunicazione tra Alice e Bob, piazzandosi “in mezzo”, ad es. fingendo con Alice di essere Bob e con Bob di essere Alice (hijacking)
- impedire al servizio offerto da Bob di essere utilizzabile (es. sovraccaricando le risorse di Bob) (denial of service)
Cos’è la crittografia
Un sistema crittografico è un sistema in grado di cifrare e decifrare un messaggio attraverso l’uso di un algoritmo e di una chiave (una stringa alfanumerica)
Il messaggio da cifrare è detto “testo in chiaro” (plaintext) mentre il risultato dell’algoritmo crittografico è detto “testo cifrato” (ciphertext)
Come può essere la crittografia
Crittografia a chiave simmetrica: mittente e destinatario usano la stessa chiave (segreto condiviso) per encryption e decryption (KA = KB= KA-B)
Crittografia a chiave pubblica: la chiave per la encryption è pubblica (nota a tutti),
la chiave per la decryption è segreta (privata)
Come funziona il cifrario per sostituzione
Cifrario per sostituzione →unità di testo del plaintext sono sostituite con corrispondenti sequenze di simboli nel testo cifrato secondo uno schema regolare
In particolare, cifrario monoalfabetico →una corrispondenza fissa tra ciascuna lettera dell’alfabeto in chiaro ed una lettera dell’alfabeto cifrato ma con la critto-analisi abbastanza facile da cifrare (pattern ricorrenti ed analisi statistica delle frequenze di occorrenza)
Cosa cambia nei cifrari a blocchi
Un blocco di k bit del testo in chiaro è codificato con altri k bit nel testo in codice secondo uno schema fisso
Per una maggiore sicurezza occorre aumentare k
Per valori di k grandi, difficoltà di implementazione: cifratura e decifratura richiedono una tabella di 2k elementi in memoria
Cos’è DES e come funziona
DES codifica blocchi di 64 bit e usa una chiave di 56 bit
Chiave da 56 bit + 8 bit di parità
Funzionamento:
* permutazione iniziale
* 16 iterazioni in cui si applica una funzione f, usando in ciascuna iterazione 48 bit della chiave
* struttura «Feistel»
* f include elaborazioni non lineari (S-boxes)
* permutazione finale
Perché c’è bisogno di 3-DES
DES con chiave a 56 bit ha mostrato i suoi limiti
La dimensione ridotta della chiave permette il successo di attacchi a forza bruta
Per rendere DES più sicuro:
*usare tre chiavi (168 bit) sequenzialmente (3-DES) su ogni blocco
*usare Cipher Block Chaining (CBC)
Cos’è Cipher Block Chaining
Debolezza dei cifrari a blocchi →blocchi in input uguali producono lo stesso testo cifrato
Per ovviare a questo inconveniente si usa la tecnica detta cipher block chaining → c(i) si calcola con l’algoritmo di cifratura applicato al blocco ottenuto tramite XOR del testo in chiaro m(i) con il blocco di testo cifrato c(i-1) calcolato sull’input precedente
Perché anche 3-DES non è più sicuro
La dimensione del blocco (64 bit) implica che, cifrati abbastanza dati con la stessa chiave, si verificheranno ripetizioni (birthday attack)
Se il blocco è lungo m, la probabilità di ripetizioni è significativa dopo 2^(m/2) messaggi
Cos’è AES
AES (Advanced Encryption Standard) ha sostituito DES.
Elabora i dati a blocchi da 128 bit e utilizza chiavi da 128, 192 o 256 bit. Ha un algoritmo di decifratura diverso da quello di cifratura rispetto a DES
Un elaboratore in grado di decifrare DES con un attacco a forza bruta in 1 secondo, impiegherebbe 149 trilioni di anni a decifrare AES
Come funziona la crittografia a chiave pubblica
Mittente e destinatario non condividono una chiave segreta
Chiave pubblica usata per la cifratura, nota a tutti
Chiave privata usata per la decifratura, nota solo al destinatario
Cos’è RSA
RSA è l’algoritmo di cifratura a chiave pubblica.
I requisiti sono trovare una coppia di chiavi Kb+ e Kb- tali che Kb-(kb+(m))=m e nota una chiave pubblica Kb+ dovrebbe essere impossibile risalire alla chiave privata
Come vengono scelte le chiavi nell’algoritmo RSA
- Si scelgono due numeri primi grandi p e q
- Si calcolano n = pq, z = (p-1)(q-1)
- Si sceglie un numero e (e<n) che non abbia fattori comuni con z
- Si sceglie un numero d tale che e*d-1 sia multiplo di z
- La chiave pubblica è (n,e), la chiave privata è (n,d)
Come avviene cifratura e decifratura in RSA
Dati (n,e) ed (n,d) calcolati precedentemente
La cifratura del testo in chiaro m (stringa di bit)
si effettua calcolando c = m ^e mod n
La decifratura del testo cifrato c (stringa di bit) si effettua calcolando m = c ^d mod n
m = (m^e mod n)^d mod n