sicurezza nei sistemi informativi crittografia asimmetrica · da un lato, però, i problemi di...
TRANSCRIPT
Sicurezza nei Sistemi Informativi
Crittografia Asimmetrica
Ing. Orazio [email protected]
Dipartimento di Ingegneria Informatica e delle TelecomunicazioniUniversità di Catania
O.Tomarchio Sicurezza nei Sistemi Informativi 2
Crittografia a chiave pubblica
Costituisce probabilmente la più significativa innovazione nella storia della crittografia
Viene usata una coppia di chiavi: una pubblica e l’altra privata
Si parla di algoritmi asimmetrici in quanto le due parti non sono uguali
Si basa su alcuni concetti legati alla teoria dei numeri Non sostituisce completamente la crittografia a chiave
segreta, piuttosto è complementare ad essa
O.Tomarchio Sicurezza nei Sistemi Informativi 3
Crittografia a chiave pubblica
La crittografia a chiave pubblica (o asimmetrica) coinvolge l’uso di due chiavi: Una chiave pubblica, che può essere resa nota a chiunque,
e che viene usata per cifrare messaggi e verificare signature (firme digitali)
Una chiave privata, conosciuta solo dal legittimo proprietario, che viene usata per decifrare messaggi e per creare signature (firme digitali)
Si parla di algoritmi asimmetrici poiché: chi decifra un messaggio NON può cifrare lo stesso messaggio chi verifica una firma NON può creare la firma
O.Tomarchio Sicurezza nei Sistemi Informativi 4
Crittografia a chiave pubblica
chiavi generate a coppie: chiave privata (Kpri) + chiave pubblica (Kpub)
chiavi con funzionalità reciproca: i dati cifrati con una chiave possono essere decifrati solo con l’altra
O.Tomarchio Sicurezza nei Sistemi Informativi 5
Schema ad alto livello
k1 = chiave pubblica di Alice, k2 = chiave privata di Alice m, c = stringhe di bit di lunghezza b Dk2 = Ek1
-1
Proprietà fondamentale (oltre alle proprietà “classiche” già viste per gli algoritmi simmetrici): data k1, deve essere computazionalmente impossibile ricavare k2
Differenze fondamentali rispetto ai meccanismi simmetrici: La chiave k1 usata per Ek può essere distribuita utilizzando canali insicuri Conseguentemente, però, assicurare l’autenticità di k1 diventa più importante, e
più complesso
O.Tomarchio Sicurezza nei Sistemi Informativi 6
Applicazioni
Possiamo classificare gli utilizzi della crittografia a chiave pubblica in tre schemi:
encryption/decryption (fornisce confidenzialità)
digital signatures (fornisce autenticazione)
key exchange (di chiavi di sessione)
O.Tomarchio Sicurezza nei Sistemi Informativi 7
Confidenzialità senza segreti condivisi
Un generico utente può generare un messaggio segreto per uno specifico destinatario (X) conoscendone solo la chiave pubblica (Kxpub)
Solo il proprietario della chiave privata corrispondente (Kxpri) può decifrare il messaggio
O.Tomarchio Sicurezza nei Sistemi Informativi 8
Firma digitale
firma digitale = cifratura asimmetrica dei dati con la chiave privata dell’autore
solitamente non si cifrano direttamente i dati ma un loro riassunto ( digest ) (lo vedremo meglio più avanti)
fornisce autenticazione, integrità dei dati e non ripudio
O.Tomarchio Sicurezza nei Sistemi Informativi 9
Caratteristiche fondamentali
Diffie-Helmann, RSA
RSA, ElGamal, DSSRSAAlgoritmi più importanti
- Ottenere la chiave effimera- man-in-the-middle
Falsificazione della firma- Ottenere m partendo da c
- Ottenere k2 partendo da k1
Attacchi di sicurezza più importanti
Instaurazione di una chiave temporanea da usare tra due o più entità per lo scambio confidenziale di dati
1. Autenticazione (di un messaggio)
2. Integrità3. Non ripudio
Classico concetto(così come già visto nello schema generico)
Obiettivi
Scambio di chiaviFirma digitaleConfidenzialità
O.Tomarchio Sicurezza nei Sistemi Informativi 10
Alcune note…
Il concetto fondamentale alla base dei meccanismi crittografici asimmetrici è l’esistenza di alcune operazioni elementari che operano sui numeri interi che: Sono semplici da calcolare direttamente
(esempio: n = p·q, con p,q numeri primi) Ammettono solo (ad oggi) algoritmi estremamente inefficienti per il
calcolo dell’operazione inversa (esempio: calcolare, dato n, i suoi fattori primi p e q)
Come vedremo, la sicurezza dei meccanismi crittografici asimmetrici introdotti ad oggi si basa sulla difficoltà tecnica della soluzione di alcuni problemi classici di base della teoria dei numeri La difficoltà nella soluzione di tali problemi è legata strettamente alla
sicurezza dei sistemi crittografici asimmetrici, in quanto il calcolo di Kpub da Kpriv , per esempio, richiede la soluzione di tali problemi
O.Tomarchio Sicurezza nei Sistemi Informativi 11
Alcune note…
Anche le migliori tecniche scoperte ad oggi non riescono a risolvere problemi numerici come la fattorizzazione di grandi numeri in maniera efficiente
Non è ancora stata trovata alcuna prova, in senso scientifico, circa la sicurezza dei meccanismi crittografici asimmetrici. In più, questi meccanismi crittografici sono stati introdotti, e quindi analizzati, solo da qualche decennio
Da un lato, però, i problemi di teoria dei numeri alla base di questi meccanismi sono stati studiati da secoli, e si potrebbe quindi pensare che questo sia una garanzia di sicurezza (“se non hanno trovato tecniche efficienti fino ad ora…”)…
…d’altro canto i matematici che hanno studiato tali problemi fin’ora l’anno fatto senza avere come obiettivo un meccanismo crittografico. Lo studio di tali problemi con l’obiettivo di crittanalizzare algoritmi crittografici ha già portato a un miglioramento sostanziale delle tecniche di base usate per la soluzione dei problemi della teoria dei numeri ai quali abbiamo fatto riferimento
O.Tomarchio Sicurezza nei Sistemi Informativi 12
Algoritmi a chiave pubblica
Diffie-Helmann Primo algoritmo a chiave pubblica (1976) Utilizzato per problemi di key-exchange
RSA (Rivest – Shamir – Adleman) Basato su prodotto di grandi numeri primi e relativa difficoltà a
fattorizzare il risultato Utilizzabile sia per segretezza che per firma digitale Brevettato da RSA (negli USA) – (scaduto nel 2000)
DSA (Digital Signature Algorithm) Elevamento a potenza, logaritmo del risultato Applicabile solo per firma digitale Standard NIST per DSS (FIPS-186)
O.Tomarchio Sicurezza nei Sistemi Informativi 14
L’algoritmo di Diffie-Helmann (DH)
Primo algoritmo a chiave pubblica (1976) pubblicato
Obiettivo fondamentale: Scambio sicuro di credenziali crittografiche effimere
(chiavi di sessione temporanee)
Problema fondamentale su cui si basa: È semplice calcolare b = ai mod p Non è ancora stato scoperto un algoritmo efficiente per il
calcolo di i, dati a,b e p (i = logaritmo discreto mod p di b, con base a)
O.Tomarchio Sicurezza nei Sistemi Informativi 15
DH: meccanismo di base
Alice e Bob scelgono due interi grandi n e g tali che: n numero primo (grande) g radice primitiva di n (le sue potenze mod n generano tutti gli interi da 1 a n-1)
Alice, scelto un numero a caso x, calcola: A = gx mod n
Bob, scelto un numero a caso y, calcola: B = gy mod n
Alice e Bob si scambiano (pubblicano) A e B Alice calcola kA = Bx mod n
Bob calcola kB = Ay mod n
ma… kA = kB = gxy mod n
O.Tomarchio Sicurezza nei Sistemi Informativi 17
Sicurezza di DH
Attacchi passivi È computazionalmente inefficiente, dati a,b e n calcolare i t.c. b=ai mod p
(le tecniche di oggi sono sub-esponenziali, ma super-polinomiali) Attacchi passivi
Leggermente meno complessi da portare se n non è un “primo sicuro”. n è un numero primo sicuro se ((n-1)/2) è primo
Attacchi attivi: DH porta ad uno scambio non autenticato di una chiave effimera Alice e Bob non sono autenticati Attacco man-in-the-middle (se l’attaccante può manipolare i dati)
Soluzione possibile: usare n e g costanti, noti “a tutti” Problema: se tutti usassero gli stessi n e g, il calcolo della tabella (gigante!) dei
logaritmi discreti mod n con base g permetterebbe di compromettere tutti gli scambi DH che usano n e g
Altre soluzioni al problema, e altri usi di DH immuni a questo tipo di attacchi inclusi protocolli di autenticazione basati su DH (lo vedremo più avanti)
In generale, la generazione di n e g è un’operazione computazionalmente complessa
O.Tomarchio Sicurezza nei Sistemi Informativi 20
L’algoritmo RSA
Specificato nel 1977, pubblicato nel 1978: primo meccanismo asimmetrico “tuttofare” pubblicato, e ancora in uso
Obiettivi Confidenzialità dei dati Firme digitali Scambio di chiavi effimere
Problema fondamentale su cui si basa: È semplice calcolare n = p·q, con p e q numeri primi Non è ancora stato scoperto un algoritmo efficiente per il calcolo di p e q,
dato n (fattorizzazione di n, con n “grande”)
O.Tomarchio Sicurezza nei Sistemi Informativi 21
Qualche definizione matematica
Numeri primi relativiDue numeri sono primi fra di loro (o “primi relativi”) se non hanno fattori primi in comune(equivale a dire che il loro MCD è pari a 1)
Funzione toziente di Eulero, (n)numero di interi positivi minori di n e primi relativi di n Se p è un numero primo, allora (p) = p-1 Se p e q sono primi ed n = pq, allora
(n)=(pq)=(p) (q) = (p-1)(q-1)
O.Tomarchio Sicurezza nei Sistemi Informativi 22
Qualche definizione matematica
Teorema di EuleroPer ogni a ed n primi relativi allora:
a(n) = 1 mod n
CorollarioDati p e q numeri primi, n = pq, ed m con 0<m<n, allora:
m(n) + 1 = m(p -1) (q -1) + 1 = m mod n
O.Tomarchio Sicurezza nei Sistemi Informativi 23
L'algoritmo RSA: schema
p, q sono due numeri primi (segreti e scelti) n = p * q (pubblico, calcolato) e, relativamente primo
rispetto a (p-1) e (q-1) (pubblico, scelto)cioè mcd((n), e) = 1
d = e-1 mod (n) (privato, calcolato)
Chiave privata → Kpr = { d, n }
Chiave pubblica → Kpub = { e, n }
O.Tomarchio Sicurezza nei Sistemi Informativi 24
L'algoritmo RSA: schema funzionamento
Cifratura di un blocco M (con M < n)
CifraturaC = Me mod n
DecifraturaM = Cd mod n
Ruolo di e e d interscambiabile
O.Tomarchio Sicurezza nei Sistemi Informativi 25
Perchè RSA funziona
Ricordiamoci che ed = 1 mod (n)
Cd mod n = (Me)d mod n = Me d mod n = M mod n = M
poichè 0≤ Μ<n
Per il corollario delTeorema di Eulero
O.Tomarchio Sicurezza nei Sistemi Informativi 26
L'algoritmo RSA: esempio numerico
Generazione chiavi Selezionare due numeri primi p = 11 e q = 5 Calcolare n = pq = 11 * 5 = 55 Calcolare (n) = (p-1)(q-1) = 10 * 4 = 40 Selezionare e primo relativo di (n) = 40, e < (n)
si sceglie e = 3 Calcolare d tale che d*3 = 1 mod 40
Si ottiene d = 27 in quanto: 27 * 3 = 81 = 2 * 40 + 1
Chiavi risultanti: Kpub = { 3, 55 } Kpriv = { 27, 55}
O.Tomarchio Sicurezza nei Sistemi Informativi 27
L'algoritmo RSA: esempio numerico
Cifratura di M = 5 Occorre calcolare C = 53 mod 55
C = 53 mod 55 = 125 mod 55 = (2*55+15) mod 55 = 15
Decifratura C =15 Occorre calcolare M = 1527 mod 55
M = 1527 mod 55 = … = 5
O.Tomarchio Sicurezza nei Sistemi Informativi 28
L’algoritmo RSA
Base n = p · q nota a tutti p e q sono primi, grandi e segreti chiave pubblica: e scelta a caso purchè relativamente
primo rispetto a p-1 e q-1 chiave privata: d = e-1 mod (p-1)·(q-1)
testo da cifrare: t < N crittografia: c = te mod N decrittografia: t = cd mod N ruolo di e e d interscambiabile
perché (xd)e mod n = (xe)d mod n
O.Tomarchio Sicurezza nei Sistemi Informativi 30
RSA: confidenzialità
Bob vuole inviare un messaggio cifrato ad Alice
Alice possiede una coppia di chiavi KApub ={e,n} KApriv = d
Alice invia la propria chiave pubblica KApub ={e,n}
Bob calcola c = me mod ne lo invia ad Alice(m deve essere minore di n)
Alice decifra il messaggio calcolando m = cd mod n
Problema: come fa Bob ad essere sicuro che la chiave pubblica ricevuta sia quella di Alice?
Alice Bob
x
KApub ={e,n}
c = me mod nc
m= cd mod n
Trudy?
O.Tomarchio Sicurezza nei Sistemi Informativi 31
RSA: autenticazione ed integrità
Alice vuole inviare un messaggio firmato a Bob
Alice possiede una coppia di chiavi KApub ={e,n} KApriv = d
Alice invia la propria chiave pubblica KApub ={e,n}
Alice calcola f = md mod ne lo invia a Bob(m deve essere minore di n)
Bob verifica la firma calcolando m’=fe mod n e confrontando m’ con m
Nota: Bob (un qualunque verificatore) non ha bisogno della chiave privata di Alice
Alice Bob
x
KApub ={e,n}
m’ = fe mod n m’ = m ?
m, f
f= md mod n
Trudy?
O.Tomarchio Sicurezza nei Sistemi Informativi 32
RSA: scambio chiavi di sessione
Alice e Bob vogliono creare un segreto condiviso (da usare come chiave per un cifrario simmetrico)
Alice possiede una coppia di chiavi KApub ={e,n} KApriv = d
Alice invia la propria chiave pubblica KApub ={e,n}
Bob genera un valore random r e calcola c = re mod n e lo invia ad Alice(r deve essere minore di n)
Alice decifra il messaggio calcolando r = cd mod n
Da questo momento in poi Alice e Bob hanno un segreto condiviso: r
Alice Bob
x
KApub ={e,n}
r = randomc = re mod nc
r= cd mod n
Trudy?
O.Tomarchio Sicurezza nei Sistemi Informativi 33
Utilizzo di RSA (in pratica)
Come vedremo nella sezione dedicata ai protocolli, RSA in pratica viene usato solo per crittografare stringhe di bit di lunghezza molto limitata (di solito meno di 160 bit)
Per la firma digitale, come vedremo in seguito, non si cifra l’intero messaggio ma un hash del messaggio
Motivi principali: RSA è molto inefficiente dal punto di vista computazionale Non è possibile usare meccanismi diversi dal CBC (o EBC) per
messaggi lunghi
O.Tomarchio Sicurezza nei Sistemi Informativi 34
Generazione/calcolo dei parametri
Perché RSA sia sicuro, è necessario utilizzare valori di n molto grandi (di solito almeno 150 cifre, circa 512 bit)
Questo porta a valori di d ed e molto elevati
Diversi meccanismi per velocizzare le operazioni (un elevamento a potenza mod n si può scomporre in produttorie, quadrati, moltiplicazioni, ecc…)
O.Tomarchio Sicurezza nei Sistemi Informativi 35
Generazione/calcolo dei parametri
Ricerca di p e q (grandi a sufficienza da generare n almeno di 512 bit)
Metodo più efficiente Scegliere un numero x a caso grande a sufficienza Verificare che x sia primo, altrimenti ricominciare
La probabilità r che x sia primo è circa (ln x)-1
Per x intorno ai 512 bit r è circa 1/230
Test di primalità ……
O.Tomarchio Sicurezza nei Sistemi Informativi 36
Generazione/calcolo dei parametri
Scelta di e Il parametro e può anche essere una costante (!): i valori più usati sono 3, 17 e
65537 (216 + 1) Vantaggi:
Le operazioni legate alla cifratura (encryption, verifica di firme) sono tanto più efficienti e veloci quanto più e è piccolo
è molto facile fare l’elevamento a potenza perché 65537 contiene solo due bit a uno
Non è necessario cercare e tale che mcd(e,φ(n)) = 1 È più semplice, con “trucchi” vari, ricavare p e q tali che (p-1), (q-1) siano
relativamente primi ad e, dato e
Ovviamente non si potrebbe fare lo stesso con d : se d fosse troppo piccolo, la ricerca esaustiva sullo spazio di d sarebbe troppo semplice (d va mantenuto segreto…)
O.Tomarchio Sicurezza nei Sistemi Informativi 37
Sicurezza di RSA
Quattro classi di attacchi Ricerca esaustiva nello spazio d
(contrattacco: usare n con il numero maggiore di bit possibile. Problema: più grande è n, più lento sarà l’algoritmo)
Attacchi matematici: per es., fattorizzazione di n I migliori algoritmi per la fattorizzazione dei numeri sono estremamente
inefficienti (sub-esponenziali, ma super-polinomiali) Migliaia di anni-MIPS per la fattorizzazione di un numero di 512 bit (150+
di cifre) Attacchi attivi di tipo man-in-the-middle legati alla mancata autenticazione
delle chiavi pubbliche Attacchi di altro tipo: per esempio, smooth numbers attacks: attacchi poco
probabili
O.Tomarchio Sicurezza nei Sistemi Informativi 38
Sicurezza di RSA
1.1. Fattorizza n2.2. Computa (p-1)(q-1)3.3. Computa d ← e-1 mod (p-1)(q-1)
1.1. Fattorizza n2.2. Computa (p-1)(q-1)3.3. Computa d ← e-1 mod (p-1)(q-1)
Se potesse fattorizzare…
O.Tomarchio Sicurezza nei Sistemi Informativi 39
Sicurezza di RSA
Se potesse computare ϕ (n)=(p-1)(q-1)
…
… potrebbe calcolare d ← e-1 mod (p-1)(q-1)
O.Tomarchio Sicurezza nei Sistemi Informativi 40
Se potesse computare ϕ (n)=(p-1)(q-1),
potrebbe calcolare d ← e-1 mod (p-1)(q-1)
n = pq ϕ (n) = (p-1)(q-1)
Due soluzioni: p,q
Sicurezza di RSA
sostituendo p = n/q
p2- (n-ϕ (n)+1)p + n = 0
sostituendo p = n/q
p2- (n-ϕ (n)+1)p + n = 0
O.Tomarchio Sicurezza nei Sistemi Informativi 41
Sicurezza di RSA
Se potesse computare d …
… ma questo è computazionalmente
equivalente a fattorizzare!
O.Tomarchio Sicurezza nei Sistemi Informativi 42
Sicurezza di RSA
Scoprire d conoscendo e, n e c Non è stato dimostrato (matematicamente) che sia necessario fattorizzare n per ricavare d. È
anche vero che se si trovasse un meccanismo tale, questo meccanismo potrebbe essere usato per fattorizzare n…
Calcolare φ(n) È stato dimostrato che ciò sarebbe altrettanto complesso (computazionalmente) della
fattorizzazione di n Ricerca esaustiva sullo spazio di d
Ancora meno efficiente delle tecniche di fattorizzazione Naturalmente la sicurezza di RSA dipende in misura proporzionale dalla
dimensione di n (in bit) Oggi si ritiene che sia necessario utilizzare n di almeno 1024 bit per ottenere una coppia di
chiavi “sicure” contro la fattorizzazione Se m può assumere solo un numero piccolo di valori diversi mi, può essere possibile per
un intruso crittografare con Kpub tutti i possibili valori di mi, e confrontare poi i vari ci con quanto transita sul canale
Soluzione: concatenare m con un numero casuale prima di crittografarlo
O.Tomarchio Sicurezza nei Sistemi Informativi 43
Sicurezza di RSA (attacchi teorici)
Smooth numbers attack (numeri che sono il prodotto di un insieme (piccolo) di (piccoli) numeri primi) Attacco estremamente improbabile, specialmente perché, nelle
implementazioni di RSA (i protocolli), i messaggi vengono firmati solo dopo adeguato padding con numeri casuali, rendendo la probabilità che Alice firmi uno smooth number estremamente bassa
Timing attack Attacco che si basa sulla possibilità, per Trudy, di osservare il tempo
necessario per un calcolatore ad effettuare le operazioni di moltiplicazione ed elevamento a potenza
O.Tomarchio Sicurezza nei Sistemi Informativi 44
Lunghezza delle chiavi RSA
256 bit sono attaccabili in alcune settimane
512 bit sono attaccabili in alcuni mesi
1024 bit offrono una sicurezza ragionevole per vari secoli
O.Tomarchio Sicurezza nei Sistemi Informativi 45
Lunghezza delle chiavi RSA
1 MIPS-year: un processore da 1 MIPS in esecuzione per un intero anno
Un Pentium da 1GHz è un PC da circa 250 MIPS
O.Tomarchio Sicurezza nei Sistemi Informativi 46
RSA PKCS (Public Key Cryptography Standard)
Standard sviluppato da RSADSI per normalizzare i meccanismi (protocolli) con cui usare RSA
Definisce Come codificare una chiave pubblica (e privata) Come codificare una firma RSA (il risultato dell’operazione di firma) Come codificare (aggiungere padding) prima di crittografare un
messaggio “corto” con RSA Come codificare (aggiungere padding) prima di firmare un messaggio
“corto” con RSA I meccanismi definiti da PKCS sono pensati per ridurre al minimo le
possibilità di attacchi conosciuti non sulla matematica di RSA, ma sulle sue implementazioni Per esempio, il fatto di aggiungere padding casuale in un certo modo (come
specificato da PKCS), riduce la minimo la possibilità di portare attacchi come quelli che abbiamo visto quando e=3
O.Tomarchio Sicurezza nei Sistemi Informativi 47
RSA: sommario
Primo algoritmo di crittografia asimmetrica pubblicato (con molteplici usi) ancora in uso
La crittanalisi effettuata in 30 anni non ne ha provato l’insicurezza, ma nemmeno la sicurezza
Operazione di generazione delle chiavi estremamente complessa (e quindi lenta da eseguire)
Estremamente inefficiente (lento) rispetto agli algoritmi moderni simmetrici
Il protocollo con il quale l’algoritmo di base viene usato (per esempio, il padding) ne influenza in maniera estrema la sicurezza effettiva
Usatelo preferibilmente con chiavi di almeno 1024 bit
O.Tomarchio Sicurezza nei Sistemi Informativi 49
DSS
Standard proposto dal (solito) NIST nel 1991, basato su una variante di ElGamal DSS: Digital Signature System DSA: Digital Signature Algorithm
Grosso “problema” politico e tecnico, simile a quanto avvenne con il DES È stata proposta dal NIST, con la “benedizione” dell’NSA. Hmmmm… Perché una variante di ElGamal, e non RSA? Diverse componenti delle chiavi, una di 160 bit, l’altra di 512 bit (o più, fino a 1024 bit): ma con 512 bit si
può costruire un calcolatore (con soli 25M$) che sia in grado di creare firme DSS false in meno di un anno…
Richiede l’uso di parametri che sono calcolabili solo in maniera inefficiente. Come per RSA, questi possono anche essere sostituiti da particolari costanti. Le costanti proposte dal NIST non sembrano essere state scelte “a caso”…
Non crittanalizzato a sufficienza …
Molto più veloce di RSA nelle operazioni necessarie a generare chiavi e a calcolare firme, ma molto più lento di RSA (centinaia di volte, se scegliamo e=3) nelle operazioni di verifica delle firme
Progettato per essere implementato su smart-card per applicazioni di autenticazione Firme DSS sempre di 320 bit
Non brevettato Nel ‘91 questo era importante (RSA è rimasto coperto da brevetto fino al Settembre 2000)
O.Tomarchio Sicurezza nei Sistemi Informativi 50
Chiavi DSA
utente chiave pubblicautente chiave pubblicaA A (p,q,α ,β ) … …
utente chiave pubblicautente chiave pubblicaA A (p,q,α ,β ) … …
chiave privatachiave privata(p,q,α ,s)
chiave privatachiave privata(p,q,α ,s)
file pubblico
nnarella
Sicurezza basata sulla difficoltà del
logaritmo discreto
O.Tomarchio Sicurezza nei Sistemi Informativi 51
Chiavi DSA
utente chiave pubblicautente chiave pubblicaA A (p,q,α ,β ) … …
utente chiave pubblicautente chiave pubblicaA A (p,q,α ,β ) … …
chiave privatachiave privata(p,q,α ,s)
chiave privatachiave privata(p,q,α ,s)
β =α s mod p
q primo di 160 bit, q|(p-1)
p primo di 512, …, 1024 bit
s numero casuale, s<q
α in Zp* di ordine q
file pubblico
nnarella
O.Tomarchio Sicurezza nei Sistemi Informativi 52
Algoritmi basati su curve ellittiche
Evoluzione negli algoritmi asimmetrici Se RSA, DH, DSS, ecc. si basano su problemi le cui tecniche di soluzione
migliori ad oggi sono sub-esponenziali (e stanno migliorando velocemente), ECC si basa su una classe di problemi che non ammette (ancora?) algoritmi di soluzione sub-esponenziali
Risultato: Per essere ragionevolmente sicuri, oggi, con RSA, dobbiamo usare chiavi
di 1024 bit o più, rendendo le operazioni RSA molto lente (e, parallelamente, resource intensive). Pensate ad un server web che esegue centinaia di transazioni basate su RSA al secondo…
Usando ECC, possiamo ottenere lo stesso grado di sicurezza con chiavi molto più piccole (ordine di 1/10) di quelle usate con RSA
O.Tomarchio Sicurezza nei Sistemi Informativi 53
Alcune note finali…
RSA, così come altri algoritmi crittografici asimmetrici, sono algoritmi a blocchi
Per poterli usare con messaggi più grandi della dimensione del blocco, è possibile applicare gli stessi principi che abbiamo visto per gli algoritmi simmetrici, ma attenzione, non si possono usare quei modi che usano Ek sia in encryption che in decryption, ossia OFB e CFB
Si possono usare ECB e, molto meglio, CBC
O.Tomarchio Sicurezza nei Sistemi Informativi 54
Crittografia simmetrica e asimmetrica
Crittografia a chiave segreta Requisiti di funzionamento
Per la crittografia e decrittografia viene utilizzato lo stesso algoritmo con la stessa chiave
Il mittente e il destinatario devono condividere l’algoritmo e la chiave
Requisiti per la sicurezza La chiave deve essere mantenuta segreta Deve essere impossibile o quanto meno
impraticabile decifrare un messaggio senza avere a disposizione altre informazioni
La conoscenza dell’algoritmo e di campioni di testo cifrato non deve consentire di determinare la chiave
Crittografia a chiave pubblica Requisiti di funzionamento
Viene utilizzato un unico algoritmo per la crittografia e la decrittografia con una coppia di chiavi: una per la crittografia e una per la decrittografia
Il mittente ed il destinatario devono utilizzare una coppia di chiave correlate ma distinte
Requisiti per la sicurezza Una delle due chiavi deve essere mantenuta
segreta Deve essere impossibile o quanto meno
impraticabile decifrare un messaggio senza avere a disposizione altre informazioni
La conoscenza dell’algoritmo, di una delle due chiavi e di campioni di testo cifrato non deve consentire di determinare l’altra chiave