Aspetti algoritmici connessi alla sicurezza nei sistemi informatici distribuiti - PowerPoint PPT Presentation

About This Presentation
Title:

Aspetti algoritmici connessi alla sicurezza nei sistemi informatici distribuiti

Description:

Aspetti algoritmici connessi alla sicurezza nei sistemi informatici distribuiti I limiti dei metodi a chiave simmetrica Un canale sicuro di comunicazione per ... – PowerPoint PPT presentation

Number of Views:106
Avg rating:3.0/5.0
Slides: 61
Provided by: Alessandr104
Category:

less

Transcript and Presenter's Notes

Title: Aspetti algoritmici connessi alla sicurezza nei sistemi informatici distribuiti


1
Aspetti algoritmici connessi alla sicurezza nei
sistemi informatici distribuiti
2
Testo consigliato
  • Crittografia, P. Ferragina e F. Luccio, Ed.
    Bollati Boringhieri, 16.

3
Sommario
  • Introduzione
  • computer security vs network security
  • attacchi, meccanismi di sicurezza
  • Cenni di crittografia
  • Crittografia a chiave privata
  • Crittografia a chiave pubblica
  • Applicazioni di network security (??)
  • servizi di autenticazione (firma digitale)

4
Computer security vs network security
  • Computer security misure per proteggere le
    informazioni di un calcolatore
  • Network security misure per proteggere lo
    scambio di informazioni durante la loro
    trasmissione

5
Network security
  • Lera di Internet
  • Informazioni distribuite
  • Posta elettronica
  • Commercio elettronico
  • Transazioni finanziarie
  • e le nuove problematiche di sicurezza
  • sicurezza delle reti locali
  • da attacchi esterni
  • da impiegati infedeli
  • sicurezza delle applicazioni (e-mail, http, ftp,)

6
Problemi base
  • Le reti sono insicure perché molte delle
    comunicazioni avvengono in chiaro
  • Spesso non cè autenticazione dei server, ma solo
    (e non sempre) degli utenti
  • Le connessioni non avvengono tramite linee
    punto-punto ma
  • attraverso linee condivise
  • tramite router di terzi

7
Meccanismi di sicurezza su reti
  • Nei sistemi distribuiti in rete, la sicurezza si
    persegue attraverso diversi strumenti
  • Identificazione degli utenti ogni utente che
    accede a servizi riservati deve essere
    identificato univocamente
  • Autorizzazione di un utente individuare quali
    sono i privilegi di cui gode un utente presso un
    sistema
  • Secretazione dei contenuti che devono passare in
    rete
  • Autenticazione ogni contenuto generato da un
    dato utente deve essere mantenuto integro e deve
    potersi attribuire in modo univoco
  • Uso di sistemi di controllo del traffico
    (firewall)
  • Monitoraggio e controllo dei sistemi (intrusion
    detection)

8
Attacchi alla sicurezza dei messaggi
9
Sicurezza dei messaggi paradigmi
  • Segretezza evitare che i dati inviati da un
    soggetto A a un soggetto B vengano compresi da un
    terzo soggetto C.
  • Autenticazione verificare lidentità di chi
    manda o riceve i dati.
  • Integrità essere sicuri che i dati ricevuti
    siano uguali a quelli inviati.
  • Non ripudio evitare che chi manda dei dati possa
    in futuro negare di averli mandati (firma
    digitale).

10
Identificazione informatica
  • Per dispiegare servizi in rete con assoluta
    sicurezza ed affidabilità, in primis è necessario
    avere la certezza che ad unutenza digitale sia
    associato univocamente un soggetto fisico o
    giuridico
  • Identificazione informatica identificazione di
    un soggetto per via telematica, consistente nella
    validazione dellinsieme di dati attribuiti in
    modo esclusivo ad esso
  • ? Rispetto ai 4 paradigmi di sicurezza dei
    messaggi, lidentificazione è importante ai fini
    dellautenticazione e della non ripudibilità
  • Lidentificazione informatica deve essere tanto
    più sicura quanto più è sensibile la transazione
    in cui è coinvolto il soggetto da identificare

11
Lidentificazione tramite username e password
  • Lidentificazione basata su username e password è
    il più semplice sistema di riconoscimento
    digitale
  • È una forma di identificazione debole funziona
    bene per autenticazioni su sistemi locali, ma per
    applicazioni sensibili su reti aperte, ove
    occorre poter verificare aldilà di ogni
    ragionevole dubbio che chi si presenta sia
    veramente chi dice di essere, non è sufficiente,
    in quanto è tendenzialmente violabile

12
La forza di una password
  • Formalmente, la forza di una password può essere
    espressa in funzione del numero atteso di
    tentativi necessari ad un avversario per forzarla
    mediante un attacco esaustivo (brute-force)
  • Tale valore dipende dalla sua lunghezza,
    complessità ed imprevedibilità
  • Questultimo parametro, noto anche come entropia
    informativa, è una misura dellincertezza
    associata ad ogni carattere (visto come una
    variabile casuale) che costituisce la password

13
Lattacco brute-force
  • Ad esempio, una password di 8 caratteri ASCII
    (che comprendono 52 lettere minuscole/maiuscole
    dellalfabeto inglese, 10 numeri, e 34 simboli
    non-alfanumerici, per un totale di 95 simboli),
    se scelta in modo del tutto casuale, ha una forza
    di 53 bit
  • 958 ? 253
  • ovvero, richiede la generazione di 253 stringhe
    binarie casuali di 53 bit prima di essere
    individuata con certezza
  • ? il numero atteso di tentativi per forzarla è
    253/2 252
  • Osserviamo che 252 ? 1016, un numero molto grande
    ma non enorme. Ad esempio, esistono in commercio
    prodotti che garantiscono il testing di circa 3
    miliardi di password al secondo su un normale PC
    da 4 GigaHz. In tal modo, si può forzare la
    password in circa 107 secondi, ovvero circa 4
    mesi! (questo è anche il motivo per cui spesso si
    richiede di cambiare la password ogni 3-6 mesi)

14
Dalla teoria alla realtà
  • In realtà le cose vanno un po diversamente
  • Le password non vengono scelte in modo del tutto
    casuale si calcola che mediamente una password
    di 8 caratteri abbia una forza effettiva di circa
    30 bit (dato NIST, National Institute of
    Standards and Technology of USA)
  • ? testando 3 miliardi di password al secondo, una
    password da 8 caratteri verrà forzata in circa 1
    secondo, e una da 10 in circa 1 giorno!
  • Tuttavia, non tutto è perduto
  • I sistemi di identificazione godono di meccanismi
    di delay tra linserimento di una password e la
    successiva
  • Ogni carattere casuale in più nella password
    aggiunge circa 6 bit di forza, e ogni bit di
    forza in più raddoppia il numero di tentativi
    necessari per forzare una password ? una password
    di 14 caratteri casuali avrebbe una forza
    sufficiente per resistere ad attacchi tipo
    brute-force

15
Password cracking
  • Esistono tuttavia molte altre modalità di attacco
    ad una password, tra cui
  • Wiretapping (monitoraggio dei tasti premuti)
  • Phishing (spillaggio dei dati sensibili)
  • Social engineering (induzione a rivelare
    informazioni riservate)
  • Dumpster diving (frugare nella spazzatura,
    letteralmente)
  • ? Lidentificazione mediante password non
    garantisce in modo certo lidentità di un
    determinato utente, e quindi non soddisfa il
    requisito dellautenticazione (né tantomeno
    soddisfa gli altri paradigmi di sicurezza)
  • ? Vedremo che la soluzione ci verrà fornita dalla
    tecnica crittografica asimmetrica RSA

16
La crittografia
  • La crittografia (dal greco kryptos, nascosto, e
    graphein, scrivere) è la disciplina che si occupa
    delle problematiche connesse alla sicurezza dei
    dati
  • Anticamente si occupava unicamente dello studio
    di tecniche atte a garantire la secretazione dei
    dati, mentre oggi investe lanalisi di tutti gli
    aspetti (teorici, computazionali, implementativi)
    legati ai vari paradigmi di sicurezza

17
Cenni storici
  • La crittografia è una scienza antichissima
    utilizzata nellantichità per nascondere il
    contenuto di messaggi scritti.
  • La crittografia conobbe un enorme sviluppo
    durante la Seconda Guerra Mondiale, quando il
    matematico inglese Alan Turing formalizzò la
    teoria necessaria per decrittare il crittosistema
    tedesco Enigma.
  • Nel 1949 Shannon pubblicò un articolo che diede
    linizio a quella che oggi viene chiamata la
    Teoria dellInformazione, che assieme alla Teoria
    della Probabilità, la Teoria della Complessità e
    la Teoria dei Numeri gettò le basi della
    Crittografia Moderna.

18
Crittosistema
  • Def. Un crittosistema (o cifrario) è una
    quintupla (M,C,K,Cod,Dec), dove,
  • M insieme finito dei testi in chiaro
  • C insieme finito dei testi cifrati
  • K insieme delle possibili chiavi
  • Cod M?K?C funzione di cifratura (iniettiva e
    invertibile)
  • Dec C?K?M funzione di decifratura

Se Cod e Dec utilizzano la stessa chiave per
cifrare e decifrare un dato testo, allora si
parla di crittosistema simmetrico, altrimenti di
crittosistema asimmetrico.
19
Garantire la segretezza
Principio di Kerckhoffs La sicurezza di un
sistema crittografico deve essere basata
esclusivamente sulla inespugnabilità della chiave
(gli algoritmi di cifratura e decifratura devono
essere considerati noti, e il testo cifrato in
transito deve essere considerato pienamente
leggibile).
20
Algoritmi a chiave simmetrica
  • Chiave simmetrica i due soggetti (A e B) usano
    la stessa chiave K per codificare e decodificare
    i dati.
  • Gli algoritmi di crittografia sono pubblici ? la
    chiave simmetrica deve essere segreta ? il
    principale problema è lo scambio della chiave!

21
Lo scenario a chiave simmetrica
22
Il problema della trasmissione della chiave
  • Volendo utilizzare un cifrario simmetrico per
    proteggere le informazioni tra due interlocutori
    come posso scambiare la chiave segreta?
  • Devo utilizzare una canale sicuro di
    comunicazione (oppure A e B devono essersi
    preventivamente accordati)

23
Un primo esempio di cifrario a chiave simmetrica
il cifrario di Cesare
  • Consideriamo lalfabeto italiano, e costruiamo un
    cifrario che sostituisce ad ogni lettera di
    questo alfabeto la lettera che si trova 3
    posizioni in avanti.
  • Ad esempio il testo in chiaro algoritmi
    distribuiti viene cifrato nel crittogramma
    dolrunzpn gnvzuneanzn.
  • Anche se la chiave rimane segreta, è facilmente
    attaccabile tramite approcci statistici.

24
La crittoanalisi statistica
  • Tramite lutilizzo di tecniche statistiche sulla
    frequenze dei caratteri o sottostringhe del testo
    cifrato si ottengono informazioni utili sul testo
    in chiaro.

25
Crittoanalisi del cifrario di Cesare
  • Il cifrario di Cesare, come la maggior parte dei
    cifrari storici basati tu trasposizioni e
    traslazioni, può essere facilmente violato
    utilizzando tecniche statistiche (crittoanalisi
    statistica).
  • Si analizzano le frequenze relative dei caratteri
    nel testo cifrato e le si confrontano con quelle
    di una lingua conosciuta, ad esempio l'italiano.
  • Con queste informazioni si ottiene unottima
    approssimazione del testo in chiaro
  • NOTA Il cifrario di Cesare può essere facilmente
    violato anche con un approccio esaustivo basta
    testare le 21 possibili traslazioni (i.e.,
    chiavi) fino ad ottenere un testo comprensibile!

26
Cifrari perfetti
  • Un crittosistema si dice perfetto se il testo in
    chiaro e quello cifrato sono statisticamente
    indipendenti.
  • Formalmente, definiamo un cifrario perfetto come
    segue la comunicazione tra A e B è vista come un
    processo stocastico (cioè variabile in modo
    aleatorio nel tempo) in cui
  • P(m) probabilità che il messaggio spedito sia m
  • P(mc) probabilità che il messaggio spedito sia
    m avendo visto transitare il messaggio cifrato c
  • Def. Un cifrario è perfetto se per ogni m?M e
    per ogni c?C vale la relazione
  • P(mc) P(m).

27
Due cifrari molto imperfetti
  • Supponiamo che P(m)p, 0ltplt1, e che P(mc)0?p
    allora, un crittoanalista che vede transitare c,
    è in grado di dedurre che il messaggio spedito
    non può essere m!
  • Supponiamo adesso che P(m)p, 0ltplt1, e che
    P(mc)1?p allora, un crittoanalista che vede
    transitare c, è in grado di dedurre che il
    messaggio spedito corrisponde ad m!
  • In tutti i casi intermedi in cui P(mc)?p, il
    crittoanalista può fare delle deduzioni
    osservando i messaggi cifrati in transito!

28
Impraticabilità dei cifrari perfetti
  • Teorema (Shannon) condizione necessaria affinché
    un crittosistema sia perfetto è che KM.
  • Dim. Osserviamo che MC. Se per assurdo
    fosse KltM, allora KltC. Sia m un messaggio
    arbitrario t.c. P(m)p?0. Allora, da esso possono
    essere generati al più K messaggi cifrati (uno
    per ogni chiave). Ne consegue che esiste almeno
    un messaggio cifrato c che non è immagine di m,
    ovvero
  • P(mc)0?pP(m)
  • contro lipotesi di perfezione. ?

29
Un cifrario (simmetrico) perfetto
  • One-time pad (G. Verman, ATT, 1917)
  • Si costruisce una grande chiave casuale k nota ad
    A e B (e non pseudocasualequesto impedisce luso
    di generatori algoritmici, e impone lo scambio
    della chiave!), ad esempio utilizzando un
    rivelatore di raggi cosmici
  • Il testo cifrato è costruito tramite uno XOR bit
    a bit (ricorda 1?00?10 1?10?01) fra il
    messaggio in chiaro m e la chiave casuale k ?
    cm?k
  • B ricostruisce mc?k (infatti x?y?yx)
  • La chiave non deve mai essere riutilizzata
    (one-time pad).

30
One-time pad è perfetto!
  • Dobbiamo mostrare che P(mc)P(m). Siano m e c di
    n bit dal Teorema di Bayes si ha
  • P(mc)P(mnc)/P(c)
  • dove P(mnc) è la probabilità che A abbia generato
    il messaggio m e lo abbia cifrato come c allora
  • P(mnc)P(mncm?k)P(m)P(cm?k)P(m)2-n
  • mentre
  • P(c)?m P(mnc) ?m P(m)2-n2-n ?m P(m)2-n
  • ? P(mc)P(m)2-n/2-nP(m). ?

indipendenza statistica di m e c
31
One-time pad è solo teoricamente perfetto
  1. In pratica, come fanno A e B a scambiarsi la
    chiave k?
  2. La soluzione è accordarsi preventivamente su una
    supersequenza di bit casuali, da consumare a mano
    a mano che ci si scambiano messaggibisognerà
    solo specificare la porzione della supersequenza
    da usare di volta in volta.
  3. La supersequenza va trasferita a priori con
    metodi tradizionali (messaggero)
  4. La linea rossa Cremlino-Casa Bianca è secretata
    (si dice) con il metodo one-time pad!

32
Dalla perfezione alla realtà
  • A fronte dei cifrari perfetti (ovvero
    dimostrabilmente sicuri ma praticamente
    inutilizzabili) esistono anche cifrari
  • Computazionalmente sicuri Il problema
    crittoanalitico (ovvero di decrittazione di un
    testo cifrato senza conoscere la chiave) è
    computazionalmente intrattabile.
  • Probabilisticamente sicuri Sono cifrari di cui
    è stata dimostrata linattaccabilità, a patto che
    non si verifichino alcuni eventi improbabili.
  • Tutti i cifrari moderni realmente utilizzati
    appartengono alla classe dei computazionalmente
    sicuri.

33
Lo stato dellarte dei cifrari simmetrici
imperfetti Rijndael
  • Sviluppato da Joan Daemen e Vincent Rijmen, ha
    vinto la selezione per lAdvanced Encryption
    Standard (AES) nel 2000. Ufficialmente il
    Rijndael è diventato lo standard per la cifratura
    del XXI secolo a chiavi simmetriche.
  • Il cifrario utilizza chiavi di lunghezza
    variabile a 128, 192, 256 bit (generate da un
    gestore esterno), ed una rete di confusione del
    messaggio, in cui si eseguono molteplici
    operazioni (circa 10) di trasposizione, xoring e
    sostituzione di blocchi di messaggio di lunghezza
    pari a quella della chiave.

34
I limiti dei metodi a chiave simmetrica
  • Un canale sicuro di comunicazione per scambiarsi
    la chiave segreta esiste veramente nella realtà?
    E se esistesse, perché ricorrere alla
    crittografia???
  • Inoltre, per una comunicazione sicura tra n
    utenti, si dovranno scambiare in tutto (n-1)n/2
    chiavi, ad esempio con 100 utenti occorreranno
    4950 chiavi!
  • Infine, come può un metodo simmetrico garantire
    lautenticazione e lirripudiabilità, dal momento
    che esso è pensato per soddisfare unicamente il
    requisito della secretazione?

35
Algoritmi a chiave asimmetrica
  • Chiave Pubblica/Privata Ogni soggetto S ha
  • una propria chiave pubblica Kpub(S), nota a
    tutti
  • una propria chiave privata Kpriv(S) nota solo a
    lui.
  • I requisiti che un algoritmo a chiave pubblica
    deve soddisfare sono
  • i dati codificati con una delle chiavi possono
    essere decodificati solo con laltra
  • la chiave privata non deve mai essere trasmessa
    in rete
  • deve essere molto difficile ricavare una chiave
    dallaltra (in particolare la chiave privata da
    quella pubblica).

36
I vari scenari a chiave pubblica
Primo scenario A codifica con la chiave pubblica
associata a B, il quale decodifica con la propria
chiave privata garantisce segretezza e integrità
(non lautenticità, perché tutti possono
codificare, non solo A)
37
I vari scenari a chiave pubblica
Secondo scenario A codifica con la propria
chiave privata il messaggio da inviare a B, il
quale decodifica con la chiave pubblica associata
ad A garantisce autenticità e non ripudiabilità
(non la segretezza, perché tutti possono
decodificare)
38
I vari scenari a chiave pubblica
Terzo scenario A codifica con la chiave pubblica
associata a B ed autentica (i.e., firma) con la
propria chiave privata garantisce segretezza,
integrità, autenticità e non ripudiabilità!
39
La nascita dei sistemi PKI (Public Key
Infrastructure)
  • Dove trovo le chiavi pubbliche dei miei
    destinatari?
  • Creazione di archivi di chiavi pubbliche, i
    cosiddetti public key server (PKS) (ad esempio,
    http//pgp.mit.edu/)
  • Un PKS può essere interrogato per risalire alla
    chiave pubblica di un soggetto
  • Curiosità il prefisso pgp sta per pretty good
    privacy, ed è lo standard de facto, creato nel
    1991 da Phil Zimmermann, per la trasmissione di
    mail criptate

40
Fare una query su un PKS
41
La risposta ad una query
42
E cliccando su un soggetto
  • Public Key Server -- Get 0x77d987e3f2baf942 ''
  • -----BEGIN PGP PUBLIC KEY BLOCK-----
  • Version SKS 1.1.0
  • mQENBEvtGsMBCACxCvcmPawOxaPjFkOi3dwhb6wJWFrCfbIhCr
    E7klo58YqAJoaN9iMrd27 D2rD5jrGmqR4ah0QTE8QE3EOANN
    lz0jsVvyv5A/7LBT0xR9o5oJm0p2tdaMTJV05Atz2uEI
    wkalcGb6pLFightrCIeJ5V94rHcw0xFTXPE3FCDKhuJ80OSKYZ
    Wjjbv0l3ZbuN6KGEVdWHe hwZMWcELx9C32a6HcvAgFlAmCzZ
    k8RYzyORLgA/DBNzf8yl5Yn7rV9tWFyLREg9ytWs6JDwA
    Hm7wOlUeogOoKORdrFdsV6EgesThUMlg33r/XQZ37MDs6reC
    ua7QbYBwWBYqO9ExDABEB AAG0HG1hcmlvIHJvc3NpIDxtcm9
    zc2lAemV1cy5pdD6JAT4EEwECACgFAkvtGsMCGyMFCQlm
    AYAGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEHfZhPyuv
    lCSR0HwTcejkqWCT7YoCv RaGqXTaUljtdJ8L3m9yDmjJtJ2H
    hr7xrFTdwxdOqjx9TdHtxyFvoyem0ez4rRslv3AKPbYHB
    2ThEtcJtk9ITNtss7fEp/Ix3bE7v3NQmazxaEAhXqS9ra8s08
    UkydfaRqkw58IB/J9wHDJ1 nbvvbLjolZOUval1WmFAZYKUbZ
    866BeF2rKRiRHvIN3ur28JpRIUM0Yma9LrAthm8PufnA4
    qpSm8b/52ldG4S8rRfDWMcQJZQiL0JnRELlqz4ta6erg4fDHsW
    gUnDSrCP7TYEgT/aG/GV6T SWwpXhnKEUMHuPvJy1hMF8Z/zjW
    xyJ0/kSZ1x5AQ0ES0awwEIAMEfDp/MNvdCyPplAqGh
    ByxiYJjpokYYNJBY9ytMyYYpWSNs3lc335KjX9n/K0AqCO2a3
    LXfUzxRQvh5eHuZWxaT3yV oqnu86n/M10MFVziOx52x2cnqh
    SLm8I82ESHDUjh9dFPTmBlmGhYHJa2bq6duchDx737ZuV
    fQKgTtJIj8XdKtv5zrTMn2h9CBshmbzUJvIvxtWSZq0vmMlZZd
    5H8aVDBH1C30MOyyIwLF0c zwf6dhJ6KTHM2AAwdcUvD/HyaOF
    KDeMWPPfUBmC4az0bLw1onIw6N0YmnfTnupP3QXK6IKe
    KIbsQYQA5po5fZIEb2o9A7nIYB/i4wjlakAEQEAAYkBJQQYAQ
    IADwUCS0awwIbDAUJCWYB gAAKCRB32Yfj8rr5QkwiCACit52
    gt9FWC1gjXSf7PSw2GSt/NABt4F0yHoFidLRVNHRfWj1
    J41dZUaHPzF0zvk3E/j1oITGc0uKa201FMpflY/nUEOrwdzbR
    GZcgFJNVAGtm4glrCIv3c6 oVrmavRXPeWnmzdDzXRPQCItoMv
    niMhDMO1sfsWcMuGYuOB4oopjkAowc1s4M5qsOLA8pfsL
    CTx6JmtLPA49YxaolB3NZiSSDy6A91lV66vJKmpNseaWQsNs3X
    4vhBWS89Ct39wCe6Cxddh Ri2qLcPNEDQQVcDWPDTHSrhJrS
    tx14iJRBfHMQW6EaL2B4t7RZzKknRPxOw/wUE4gS62ay7
  • wJgz
  • scGC
  • -----END PGP PUBLIC KEY BLOCK-----

43
Le certification authority
  • Ma chi mi garantisce la corrispondenza delle
    chiavi pubbliche con i legittimi proprietari?
  • Nascita delle certification authority (CA), che
    rilasciano a pagamento i cosiddetti certificati
    digitali (firmati con la chiave privata della
    CA), che associano in modo univoco un soggetto
    con la rispettiva chiave pubblica
  • Le CA e i PKS sono le componenti principali di
    una PKI
  • I costi di un certificato digitale sono variabili
    (da 20 a 800 Euro circa) e dipendono dal livello
    di sicurezza e dalla versatilità offerta
  • Le CA italiane sono vigilate da DigitPA
    (attualmente abbiamo soltanto 17 CA accreditate
    in Italia)

44
Sicurezza sul Web
  • L'Hypertext Transfer Protocol (HTTP) è il
    principale sistema per la trasmissione
    d'informazioni sul Web, e si appoggia sul
    protocollo in chiaro TCP/IP
  • Le architetture web basate su HTTP non
    garantiscono la sicurezza
  • non è sicuro che lutente sia veramente chi dice
    di essere (masquerading)
  • non è sicuro che le chiamate arrivino
    dallindirizzo ip presente nei pacchetti in
    arrivo (ip spoofing)
  • non è sicuro che i parametri delle request o i
    contenuti delle response non siano stati letti o
    modificati da qualcuno nel tragitto (la
    trasmissione è in chiaro)
  • non è sicuro il contenuto associato ai cookies
    (tracking di sessioni e memorizzazione di
    informazioni specifiche riguardanti gli utenti
    che accedono al server)

45
Il protocollo HTTPS (HTTP over Secure Socket
Layer)
  • È il risultato dell'applicazione del protocollo
    di crittografia asimmetrica RSA (in forma debole,
    di solito a chiavi da 128 bit) al protocollo HTTP
  • È il protocollo solitamente utilizzato per
    comunicazioni protette client-server sul Web (ad
    esempio, per effettuare un pagamento), e funziona
    come segue
  • il client acquisisce il certificato digitale del
    server, e attraverso il proprio browser interroga
    la CA emittente per essere sicuro di dialogare
    con una parte fidata quindi, genera le proprie
    chiavi pubblica e privata (attraverso il proprio
    browser, che le rinnova ad ogni nuova sessione
    aperta), e invia la propria chiave pubblica al
    server
  • il server invia al client una chiave simmetrica
    (cosiddetta session key) criptata con la chiave
    pubblica del client, per stabilire una
    connessione protetta a chiave simmetrica
  • infine, il client decripta la chiave simmetrica
    inviata dal server con la propria chiave privata,
    e le due parti sono pronte per dialogare nel
    canale protetto a chiave simmetrica.

46
La matematica dei sistemi a chiave pubblica
  • Venne introdotta da Diffie e Hellman nel 1976
  • Definizione Una funzione f si dice one-way se
    per ogni x il calcolo computazionale di yf(x) è
    semplice (è in P), mentre il calcolo di xf-1(y)
    è computazionalmente difficile (è NP-hard).
  • Definizione Una funzione one-way è detta
    trapdoor (letteralmente, cassetta delle lettere)
    se il calcolo xf-1(y) può essere reso facile
    qualora si conoscano informazioni aggiuntive
    (private).
  • ma purtroppo per loro, essi non furono in grado
    di costruire una funzione one-way trapdoor!

47
Il cifrario RSA
  • Progettato nel 1977 da Ron Rivest, Adi Shamir e
    Leonard Adlemann, il cifrario è stato brevettato,
    ed è diventato di dominio pubblico solo nel 2000.
  • Idea base Dati due numeri primi p e q (molto
    grandi) è facile calcolare il prodotto npq,
    mentre è molto difficile calcolare la
    fattorizzazione di n (anche se tale problema non
    è noto essere NP-hard).
  • I migliori algoritmi di fattorizzazione
    attualmente disponibili (Quadratic Sieve,
    Elliptic Curve Method, Euristica ? di Pollard,
    ecc.) hanno tutti una complessità esponenziale
    dellordine di

48
Il cifrario RSA
  • Per garantire la sicurezza, occorre che p e q
    siano almeno di 200 cifre decimali. Infatti, se p
    e q sono di 200 cifre decimali ciascuno, allora n
    è di 400 cifre, cioè dellordine di 10400, da
    cui
  • e791034
  • da cui lintrattabilità computazionale.
  • ? le chiavi sono lunghe in genere
  • 10200 2200log10 ? 1024 bitS.
  • RSA è molto più lento degli algoritmi a chiave
    simmetrica, e spesso viene applicato a piccole
    quantità di dati, ad esempio per la trasmissione
    della chiave privata in un sistema simmetrico

49
Funzionamento di RSA generazione delle chiavi
Ricorda Per un intero positivo z, x?y mod z ?
esiste un intero k t.c. x-ykz (se x ed y sono
positivi, questo è equivalente a dire che il
resto della divisione intera tra x e z e tra y e
z è lo stesso, ovvero x mod z y mod z)
  • 1. Scegli due primi molto grandi p e q e calcola
    n pq.
  • 2. Calcola la funzione toziente di Eulero
    rispetto ad n, ovvero la cardinalità dellinsieme
    dei numeri minori di n e primi con esso
  • ?(n)?(pq)pq-(q-1)(p-1)-1pq-(pq)1
  • (p-1)(q-1)?(p)?(q)
  • (poiché esistono q-1 multipli di p minori di n e
    p-1 multipli di q minori di n)
  • 3. Scegli un numero 0ltelt?(n) t.c. MCD(e,?(n))1.
  • 4. Calcola d tale che ed?1 mod ?(n).
  • 5. Definisci la chiave pubblica come (e,n).
  • 6. Definisci la chiave privata come (d,n).

50
Funzionamento di RSA
Secretazione di un messaggio
  • La funzione di cifratura di A è Cod(x)xe mod n
    (con xltn), ove (e,n) è la chiave pubblica del
    destinatario B.
  • La funzione di decifratura di B è
  • Dec(x)Cod(x)d mod n (xe mod n)d mod n
  • ove (d,n) è la chiave privata di B.

Autenticazione di un messaggio
  • La funzione di cifratura di A è Cod(x)xd mod n
    (con xltn), ove (d,n) è la chiave privata di A.
  • La funzione di decifratura di B è
  • Dec(x)Cod(x) e mod n (xd mod n) e mod n
  • ove (e,n) è la chiave pubblica di A.

51
Correttezza di RSA alcuni teoremi di algebra
modulare
  • Teorema (equazioni modulari) Lequazione ax?b
    mod n ammette soluzione se e solo se MCD(a,n)
    divide b. In questo caso si hanno esattamente
    MCD(a,n) soluzioni distinte.
  • Corollario (esistenza dellinverso) Se a e n
    sono primi tra loro, allora ax?1 mod n ammette
    esattamente una soluzione positiva minore di n,
    detta linverso di a modulo n.
  • Teorema di Eulero Per ogni ngt1, e per ogni a
    primo con n, si ha che a?(n)?1 mod n.

52
Correttezza di RSA
  • Si noti innanzitutto che e e ?(n) sono primi tra
    loro, e quindi dal corollario sullesistenza
    dellinverso, esiste un unico d minore di ?(n)
    tale che ed?1 mod ?(n).
  • Qui sta la forza di RSA per ricavare d da e
    bisogna conosce-re ?(n), cioè p e q, e quindi
    bisogna saper fattorizzare!
  • Secretazione occorre provare che ? xltn,
    Dec(Cod(x))x. Ma
  • Dec(Cod(x))(xe mod n)d mod nxed mod n,
  • quindi dobbiamo mostrare che xxed mod n.
    Dimostratelo!
  • Distinguiamo due casi
  • p e q non dividono x (e quindi MCD(p,x)MCD(q,x)1
    , poiché essi sono primi)
  • p (oppure q) divide x, ma q (oppure p) non divide
    x.
  • (si noti che p e q non possono entrambi dividere
    x, perché altrimenti si avrebbe xn contro le
    ipotesi)

53
Correttezza di RSA (2)
  • Caso 1 Abbiamo MCD(x,n)1, quindi per il th di
    Eulero, risulta x?(n)?1 mod n poiché ed?1 mod
    ?(n), si ha che ed1k?(n), per un k opportuno.
    Quindi, poiché xltn, si ha
  • xed mod n x1k?(n) mod n x(x?(n))k mod n
    x1k mod n x.
  • Caso 2 Poiché p divide x, per qualunque intero
    positivo k abbiamo x?xk?0 mod p, ovvero (xk-x)?0
    mod p. Poiché invece q non divide x, analogamente
    al Caso 1, abbiamo anche xed?x mod q, e quindi
    (xed-x)?0 mod q. Ne consegue che (xed-x) è
    divisibile sia per p che per q, e quindi per il
    loro prodotto n, da cui deriva
  • (xed-x)?0 mod n ? xed?x mod n ? xed mod n x mod
    n x.
  • ?
  • Autenticazione si noti che RSA gode della
    notevole proprietà
  • Dec(Cod(x))Cod(Dec(x)).

54
Esempio di funzionamento di RSA secretazione
  • B sceglie ad esempio p3 e q11.
  • Quindi n33 e ?(n)20.
  • Si può prendere e3, poiché 3 non ha divisori
    comuni con 20 ? (3,33) è la chiave pubblica di B
  • Cerco d t.c. 3d?1 mod 20. Con lequazione 3d
    1k20, ponendo k1 si trova d7 ? (7,33) è la
    chiave privata di B
  • Per cifrare un blocco P (Plt33) da inviare a B, A
    calcola
  • CCod(P)P3 mod 33
  • Per decifrare C, B calcola PC7mod 33
  • Poiché n33, si cifrano al più 5 bit alla volta
    (25lt33)
  • Nella pratica, n è dellordine di 21024, e quindi
    si possono cifrare blocchi di 1024 bit, cioè
    blocchi di 128 caratteri ASCII (di 8 bit
    ciascuno).

55
Esempio di funzionamento di RSA
Per visualizzare lesempio precedente, supponiamo
per semplicità che le 26 lettere dellalfabeto
inglese possano essere codificate con 5 bit, e
quindi poiché n33, posso cifrare un carattere
alla volta
56
Complessità computazionale di RSA
  • Si può dimostrare che le chiavi (e quindi
    p,q,e,d) possono essere generate in tempo
    polinomiale (ovvero logaritmico nel loro valore).
  • In particolare, e viene in genere scelto
    prendendo un numero primo abbastanza piccolo (ad
    esempio, e3).
  • Invece, d viene ricavato mediante unestensione
    (polinomiale) dellalgoritmo di Euclide per il
    calcolo del MCD (basato sul fatto che
    MCD(a,b)MCD(b,a mod b)).
  • Tuttavia, per trovare numeri primi molto grandi
    (cioè p e q), i test di primalità utilizzati sono
    tutti di tipo probabilistico, in quanto quelli
    deterministici sono troppo lenti (sebbene
    polinomiali, ma dellordine di O(log10n)).
  • Infine, si noti che i processi di cifratura e
    decifrazione possono essere eseguiti
    efficientemente tramite successive
    esponenziazioni (potenza modulare).

57
Alla ricerca di p e q
  • Definizione (Algoritmo Monte Carlo) Un algoritmo
    Monte Carlo no-biased è un algoritmo
    randomizzato per la risoluzione di un dato
    problema di decisione, in cui la risposta no è
    sempre corretta, mentre la risposta sì può
    essere inesatta con probabilità fissata e.
    Analogamente sono definiti gli algoritmi Monte
    Carlo yes-biased.
  • Lalgoritmo di Miller e Rabin è un algoritmo
    Monte Carlo no-biased per testare la primalità
    di un numero. Esso ha una complessità di O(log3
    n), e una probabilità di inesattezza e1/4 (cioè
    se risponde Sì, è corretto con probabilità 3/4).
  • Osservazione si noti la differenza sostanziale
    con il metodo Las Vegas usato per il calcolo del
    MIS, in cui la risposta era sempre e comunque
    corretta, mentre la complessità temporale era
    invece data in forma probabilistica.

58
Algoritmo di Miller-Rabin
  • È basato sulla seguente proprietà dato un intero
    (positivo) n dispari (del quale vogliamo testare
    la primalità), riscriviamolo come n2sr1, con r
    dispari (quindi s è la molteplicità del fattore 2
    nella scomposizione in fattori primi del numero
    pari n-1). Sia ora 2yn-1, e definiamo i 2
    predicati
  • (P1) MCD(n,y)1
  • (P2) (yr mod n 1) OR (esiste 0is-1 t.c.
    y2ir?-1 mod n).
  • Teorema Se n è primo, allora ogni 2yn-1
    soddisfa entrambi i predicati (e quindi se esiste
    un 2yn-1 che non soddisfa almeno uno dei due
    predicati, n è composto), mentre se n è composto
    il numero di interi 2yn-1 che soddisfano
    entrambi i predicati è minore di n/4.
  • ? Eseguiamo MR(n) un certo numero k di volte,
    testando ogni volta (P2) su un intero positivo a
    caso minore di n. Se lalgoritmo risponde no
    anche una sola volta il numero è sicuramente
    composto, mentre se risponde sempre sì, la
    probabilità che il numero sia composto è 4-k, e
    quindi la probabilità che il numero sia primo è
  • P(primo)1-P(composto)1-4-k
  • (ad es., se k100, si ha P1-10-60 1)

59
Algoritmo di Miller-Rabin
  • Miller-Rabin(n)
  • Set n-12sr con r dispari
  • For i1 to k do
  • 2.1 scegli a caso un intero t t.c. 2tn-2
  • 2.2 calcola ytr mod n
  • 2.3 if y?1 esegui è falsa la prima condizione di
    (P2)
  • 2.3.1 j0
  • 2.3.2 while ((js-1) and (y?n-1))
  • yt2jr mod n
  • j
  • 2.3.3 if y?n-1 ritorna composto è falsa anche
    la seconda condizione di (P2), e quindi è
    falso (P2)
  • Ritorna primo (w.h.p. 1-4-k)

60
E facile trovare numeri primi?
  • Nonostante lefficienza nel testare se un numero
    sia primo o meno resta lincognita se i numeri
    primi siano pochi e quindi difficili da
    scovare.
  • Teorema di Gauss (dei numeri primi) Sia p(n) la
    funzione di distribuzione dei numeri primi, cioè
    il numero di numeri primi che precedono n. Allora
    essa soddisfa il seguente
  • Quindi se si cerca un numero primo di 100 cifre
    occorre verificare solo ln (10100) 230 numeri
    consecutivi.
Write a Comment
User Comments (0)
About PowerShow.com