SlideShare una empresa de Scribd logo
1 de 54
RETI DI CALCOLATORI
      Crittografia
La crittografia

La crittografia è la scienza che studia la
  scrittura e la lettura di messaggi in
  codice ed è il fondamento su cui si
  basano i meccanismi di
  autenticazione, integrità e segretezza.




                                2
La crittografia

L’autenticazione stabilisce al tempo
  stesso l’identità del mittente e del
  destinatario delle informazioni.
  L’integrità garantisce che i dati non
  siano stati alterati e la segretezza che
  nessuno, al di fuori di mittente e
  destinatario, sia in grado di
  interpretarli.
                                3
La crittografia

Solitamente, i meccanismi crittografici
 utilizzano sia un algoritmo sia un
 valore segreto, detto chiave. In
 genere, la struttura degli algoritmi è
 pubblica; le chiavi, invece, vengono
 mantenute segrete per ottenere la
 sicurezza richiesta.

                                4
La crittografia

Il numero di bit necessari per garantire
   la sicurezza crittografica non è facile
   da determinare. Più è lungo lo spazio
   di chiave (l’intervallo di possibili valori),
   più diventa difficile forzare la chiave
   con un attacco di forza bruta.



                                    5
La crittografia

Un attacco di forza bruta è un tentativo
 di arrivare alla chiave nel quale si
 applicano all’algoritmo tutte le possibili
 combinazioni di valori, finché non si
 riesce a decifrare il messaggio.




                                 6
La crittografia

    Possibili combinazioni per gli attacchi di forza bruta
Lunghezza chiave (in bit)        Numero combinazioni possibili
           40                       240 = 1.099.511.627.776
           56                     256 = 7,205759403793 x 1016
           64                     264 = 1,844674407371 x 1019
          112                    2112 = 5,192296858535 x 1033
          128                    2128 = 3,402823669209 x 1038




                                                  7
La crittografia

In generale, si tendono a utilizzare chiavi
  più lunghe possibile, per ridurre le
  probabilità di forzatura. È comunque
  necessario tener presente che più
  lunga è la chiave, maggiori sono i costi
  in termini di potenza di calcolo dei
  processi di crittografia e decifrazione.
  L’obiettivo è che la forzatura sia “più
  costosa” del valore intrinseco delle
  informazioni protette.          8
La crittografia

Le funzioni crittografiche per
  l’autenticazione, l’integrità e la
  segretezza dei dati sono tre:
• chiavi simmetriche;

• chiavi asimmetriche;

• funzioni hash non invertibili.



                                   9
Crittografia a chiave
         simmetrica
La crittografia simmetrica, altrimenti detta
  crittografia a chiave segreta, utilizza
  una chiave comune e il medesimo
  algoritmo crittografico per la codifica e
  la decodifica dei messaggi. In sostanza,
  due utenti che desiderano comunicare
  devono accordarsi su di un algoritmo e
  su di una chiave comuni.
                                10
Crittografia a chiave
           simmetrica
 A                                         B
        Chiave                 Chiave
        Segreta                Segreta




        Codifica   Internet   Decodifica

Msg                                        Msg

                                  11
Crittografia a chiave
         simmetrica
Uno degli algoritmi più semplici è il
 cifrario di Cesare, che sostituisce
 ognuna delle lettere del messaggio
 originale con la lettera dell’alfabeto
 che si trova n posti più avanti
 nell’alfabeto stesso.
Es. n=3
           SCANO ⇒ VFDQR

                                12
Crittografia a chiave
         simmetrica
Gli algoritmi di uso comune più difficili da
  decifrare utilizzano uno sei seguenti
  sistemi:
• DES (Data Encryption Standard);

• 3DES (Triple DES);

• RC-4 (Rivest Cipher 4);

• IDEA (International Data Encryption
  Algorithm).
                                 13
DES

Il DES è uno schema crittografico
   operante su blocchi di 64 bit e utilizza
   una serie di fasi per trasformare 64 bit
   di input in 64 bit di output. Nella sua
   forma standard, l’algoritmo utilizza
   chiavi a 64 bit, 56 dei quali scelti a
   caso. Gli altri 8 bit sono bit di parità.

                                  14
3DES

3DES è una versione alternativa di DES.
 Tale sistema, che può utilizzare una,
 due o tre chiavi diverse, prende un
 blocco di 64 bit e vi applica operazioni
 di codifica, decodifica e ricodifica.




                               15
RC-4

RC-4 è un algoritmo privato, inventato
 da Ron Rivest e commercializzato da
 RSA Data Security. Viene solitamente
 utilizzato con una chiave a 128 bit, ma
 le dimensioni della chiave sono
 variabili.



                               16
IDEA

Il sistema IDEA, realizzato come
   alternativa a DES, opera sempre su
   blocchi di 64 bit, ma utilizza una
   chiave di 128 bit. Si tratta di un
   algoritmo brevettato ed è utilizzabile
   per usi commerciali solo su licenza.



                                 17
Crittografia a chiave
         simmetrica
La crittografia a chiave segreta viene
  sostanzialmente utilizzata per
  garantire la segretezza dei dati, in
  quanto gran parte degli algoritmi
  simmetrici sono stati progettati per
  essere applicati all’hardware e sono
  stati ottimizzati per la codifica di grandi
  masse di dati.
                                  18
Crittografia a chiave
         simmetrica
I punti critici dei sistemi a chiave segreta
   sono i seguenti:
• necessità di cambiare frequentemente
   le chiavi segrete per evitare il rischio
   che vengano scoperte;
• sicurezza nella generazione delle chiavi
   segrete;
• sicurezza nella distribuzione delle chiavi
   segrete.
                                19
Crittografia asimmetrica

La crittografia asimmetrica viene spesso
  definita come crittografia a chiave
  pubblica e può utilizzare lo stesso
  algoritmo, oppure algoritmi diversi ma
  complementari, per codificare e
  decodificare i dati. Sono necessari due
  valori diversi, ma correlati, per la chiave:
  una chiave pubblica e una privata.
                                  20
Crittografia asimmetrica

Per comunicare utilizzando la crittografia
 a chiave pubblica, A e B necessitano di
 una coppia chiave pubblica – chiave
 privata. Ognuno dei due deve creare la
 propria coppia di chiavi. Nelle
 comunicazioni fra loro, A e B utilizzano
 chiavi diverse per codificare e
 decodificare i dati.
                               21
Crittografia asimmetrica
             Pub                                            Pub
Pri                                                Pri
    1                             Pub                             1


    A                                                                 B
                                          2

                                  Pub




1       Crea una coppia chiave privata - chiave pubblica

2       Scambia solo chiavi pubbliche                      22
Crittografia asimmetrica

Alcuni degli utilizzi più comuni per gli
  algoritmi a chiave pubblica
  comprendono:
• l’integrità dei dati;

• la segretezza dei dati;

• l’accettazione del mittente;

• l’autenticazione del mittente.

                                  23
Crittografia asimmetrica

Perché avvenga uno scambio di dati
   segreto, debbono verificarsi le
   seguenti condizioni:
1. A e B creano le proprie coppie di
   chiavi pubbliche e private;
2. A e B si scambiano le chiavi pubbliche;
3. A scrive a B e codifica il messaggio
   utilizzando la chiave pubblica di B
   prima di trasmetterlo via Internet;
                              24
Crittografia asimmetrica

4.   B utilizza la propria chiave privata
     per decifrare il messaggio;
5.   B risponde, codifica il messaggio
     utilizzando la chiave pubblica di A e
     lo trasmette via Internet;
6.   A utilizza la propria chiave privata
     per decifrare il messaggio.

                                 25
Crittografia asimmetrica
        Come garantire l’integrità e la segretezza dei dati con la crittografia a chiave pubblica



                     Coppia chiave pub. – chiave priv.       Coppia chiave pub. – chiave priv.
1       Pub                                                                                      1     Pub

 Pri                                                                                             Pri
                                                                        Chiave pub. di B
                                                         2
                         Chiave pub. di A
    A                                                                                                            B

                                                 Internet
                             3                                                        4
                      Codifica                                             Decodifica
                      Chiave pub. di B                                       Chiave priv. di B
Messaggio                                                                                                    Messaggio
                                                    Messaggio
 originale                                                                                                    originale
                                                    codificato

                             6                                                        5
                    Decodifica                                               Codifica
                      Chiave priv. di A                                      Chiave pub. di A
Risposta di                                         Messaggio                       26                       Risposta di
Alessandro                                                                                                   Alessandro
                                                    codificato
Crittografia asimmetrica

La segretezza è garantita nel momento
   che A trasmette il messaggio
   originale, in quanto solo B può
   decodificarlo con la propria chiave
   privata. Allo stesso tempo, viene
   assicurata anche l’integrità dei dati,
   perché il messaggio non può essere
   modificato se non con la chiave
   privata di B. Lo stesso vale per la
   risposta, in quanto solo A ha accesso
                                27
   alla propria chiave privata.
Crittografia asimmetrica

Il punto debole di questo meccanismo sta
    nel fatto che chiunque può far finta di
    essere A e trasmettere a B un
    messaggio in codice, utilizzando la
    chiave pubblica di B, la quale, in
    effetti, è pubblicamente disponibile.



                                28
Crittografia asimmetrica

Perché lo scambio sia autenticato,
   debbono verificarsi le seguenti
   condizioni:
1. A e B creano le proprie coppie chiave
   pubblica – chiave privata;
2. A e B si scambiano le chiavi
   pubbliche;
3. A scrive a B, codificando il messaggio
   con la propria chiave privata, e
   trasmette i dati in codice via 29
                                   Internet;
Crittografia asimmetrica

4.   B utilizza la chiave pubblica di A per
     decifrare il messaggio;
5.   B risponde, codifica il messaggio con
     la propria chiave privata e trasmette i
     dati in codice ad A via Internet;
6.   A decifra il messaggio con la chiave
     pubblica di B.

                                  30
Crittografia asimmetrica

Per garantire, con il sistema della chiave
    pubblica, l’autenticità degli scambi, oltre
    all’integrità e alla segretezza dei dati, è
    necessario introdurre la doppia crittografia.
    Per prima cosa, A codifica il messaggio a B
    con la chiave pubblica di B; quindi ricodifica
    il messaggio con la propria chiave privata. Il
    messaggio potrebbe essere decodificato da
    chiunque, ma solo B può decodificare il
    secondo con la propria chiave privata.
                                     31
Crittografia asimmetrica

Per i loro limiti di prestazioni, gli algoritmi
    crittografici a chiave pubblica non sono
    solitamente utilizzati per garantire la
    segretezza, ma si rivelano particolarmente
    utili per le applicazioni che richiedono una
    forma di autenticazione attraverso firme
    digitali e gestione delle chiavi. Tra i più
    comuni, si segnalano gli algoritmi di Ron
    Rivest, di Adi Shamir e di Leonard Adleman
    (RSA) e quello di El Gamal.
                                    32
Funzioni hash

Una funzione hash trasforma un
  messaggio di lunghezza arbitraria in
  output di lunghezza fissa (chiamato
  hash o digest del messaggio
  originale).




                             33
Funzioni hash

Per soddisfare le condizioni di sicurezza
   stabilite per le funzioni hash, gli
   algoritmi devono avere le seguenti
   proprietà:
•  devono essere coerenti (a input uguali
   corrispondono output uguali);
•  devono essere casuali, o apparire tali,
   per impedire l’interpretazione
   accidentale del messaggio originale;
                               34
Funzioni hash

•   devono essere univoci (la probabilità
    che due messaggi generino il
    medesimo hash deve essere
    virtualmente nulla);
•   devono essere non invertibili (risalire
    al messaggio originale dall’output
    deve essere impossibile).

                                 35
Funzioni hash

Le funzioni hash non invertibili vengono
   normalmente utilizzate per assegnare
   un’impronta digitale a un messaggio o
   a un file. Come le impronte dei
   polpastrelli, un’impronta hash è
   univoca e costituisce una prova
   dell’integrità e dell’autenticità del
   messaggio.
                              36
Funzioni hash

Esemplificando, se A e B vogliono
   accertarsi che nessuno sia intervenuto
   sul contenuto del messaggio in fase di
   transizione utilizzano proprio una
   funzione hash non invertibile.




                              37
Funzioni hash

Per garantire l’integrità dei dati trasferiti
   fra A e B, devono verificarsi le
   seguenti condizioni:
1. A scrive un messaggio e ne utilizza il
   testo come input di una funzione hash
   non invertibile;
2. il risultato della funzione hash viene
   accodato al messaggio e ne
   costituisce l’impronta digitale;
                                 38
Funzioni hash

3.   B separa il messaggio dall’impronta e
     utilizza il testo del messaggio come
     input della medesima funzione hash
     utilizzata da A;
4.   se i due hash corrispondono, B è certo
     che nessun altro sia intervenuto sul
     messaggio.

                                39
Funzioni hash
      Msg
A                                                 B

1
                             3

                                              Impronta

    Impronta   Impronta
                  2                       4




                          Impronta   40
Funzioni hash

Il problema, in questo caso, è che non c’è
     modo di proteggere l’impronta da
     eventuali intrusi. È possibile infatti che
     qualcuno interferisca, impersonando il
     mittente o il destinatario delle
     comunicazioni sicure. Pertanto, per
     essere utilizzate in maniera sicura, le
     funzioni hash vanno combinate con
     sistemi a chiave pubblica per
     l’assegnazione di firme digitali.
                                    41
Funzioni hash

Tra le funzioni hash più comuni, si
   segnalano:
•  l’algoritmo MD4 (Message Digest 4);
•  l’algoritmo MD5 (Message Digest 5);
•  l’algoritmo SHA (Secure Hash
   Algorithm).


                             42
Funzioni hash

Gli algoritmi MD4 e MD5 sono stati
    elaborati da Ron Rivest per il MIT
    (Massachusetts Institute of
    Technology), mentre l’algoritmo SHA
    è stato sviluppato dal NIST (National
    Institute of Standards and
    Technology).

                               43
Funzioni hash

Gli attuali prodotti per la sicurezza
    utilizzano principalmente algoritmi
    MD5 e SHA, entrambi basati sul
    sistema MD4. MD5 elabora l’input a
    blocchi di 512 bit e produce un digest
    di 128 bit. SHA elabora blocchi di 512
    bit e produce un digest di 160 bit. SHA
    richiede un maggiore lavoro da parte
    del processore ed è leggermente più
    lento di MD5.                  44
Firme digitali

Una firma digitale è un digest in codice
  che viene utilizzato per comprovare
  l’identità del mittente e l’integrità del
  documento. Le firme digitali si basano
  su di una combinazione di tecniche
  crittografiche a chiave pubblica e
  funzioni hash non invertibili.

                                45
Firme digitali

Perché B possa creare una firma digitale,
   si devono verificare le seguenti
   condizioni:
1. B crea una coppia chiave privata –
   chiave pubblica;
2. B dà ad A la propria chiave pubblica;




                              46
Firme digitali
                             Creazione di una firma digitale 1



              Pub

Pri

    1
                                        Pub


        B                                                              A
                                               2




1       Il mittente crea una coppia chiave privata - chiave pubblica

2       Il mittente invia la chiave pubblica al ricevente        47
Firme digitali

3.  B scrive un messaggio, che utilizza
    come input per una funzione hash non
    invertibile;
4. B codifica l’output dell’algoritmo hash, il
    digest del messaggio, con la propria
    chiave privata, ottenendo così la firma
    digitale.
Il messaggio che B trasmette ad A è
    l’insieme del documento e della firma
    digitale.                     48
Firme digitali
         Creazione di una firma digitale 2




  Msg




                        Il messaggio originale è l’input di
                        una funzione hash non invertibile



006FBBC95               L’output è l’hash del messaggio

                      L’hash viene codificato con la chiave
 Codifica             privata del mittente

                        La firma digitale
 FIRMA                  è l’hash crittografato
                                               49
Firme digitali

Per il destinatario, le operazioni da
   svolgere per verificare il messaggio e
   la firma digitale sono le seguenti:
1. A separa il messaggio ricevuto in
   documento originale e firma digitale;
2. A utilizza la chiave pubblica di B per
   decifrare la firma digitale e ottenere il
   sunto del messaggio originale;
                                 50
Firme digitali

3. A utilizza il documento originale come
   input della medesima funzione hash
   utilizzata da B per ottenere il digest
   del messaggio;
4. A controlla che i digest del messaggio
   siano uguali.
Se tutto quadra, sono comprovate sia
   l’integrità del documento, sia
   l’autenticità del mittente.
                              51
Firme digitali
                       Msg


                                         Msg
                     FIRMA
 FIRMA
                 Il ricevente separa
                 messaggio e firma
             Decodifica firma con
Decodifica   chiave pubblica mittente           Il messaggio
                                                originale è l’input
                                                di una funzione
             Il risultato è
006FBBC95    l’hash crittografato
                                                hash non
                                                invertibile

              Il risultato è l’hash
                   del messaggio       006FBBC95
                                           52
Firme digitali

Lo scambio iniziale di chiavi deve
   avvenire in modo tale da garantire la
   sicurezza. È questa la ragione
   fondamentale dell’esistenza di
   certificati digitali.




                               53
Firme digitali

Un certificato digitale è un messaggio con
   firma digitale che contiene la chiave
   privata di un terzo di fiducia, il quale
   dichiara che una determinata chiave
   pubblica appartiene a una certa
   persona o entità e ne garantisce nome
   e caratteristiche. Se lo scambio iniziale
   non avviene nell’ambito di una relazione
   di fiducia, chiunque può simulare di
   essere una determinata entità. 54

Más contenido relacionado

La actualidad más candente

Introduction to Cryptography
Introduction to CryptographyIntroduction to Cryptography
Introduction to CryptographySeema Goel
 
Proposed Lightweight Block Cipher Algorithm for Securing Internet of Things
Proposed Lightweight Block Cipher Algorithm for Securing Internet of ThingsProposed Lightweight Block Cipher Algorithm for Securing Internet of Things
Proposed Lightweight Block Cipher Algorithm for Securing Internet of ThingsSeddiq Q. Abd Al-Rahman
 
實作Linux Driver移植在樹莓 Pi上:Linux Driver for STMicro LIS3DH
實作Linux Driver移植在樹莓 Pi上:Linux Driver for STMicro LIS3DH實作Linux Driver移植在樹莓 Pi上:Linux Driver for STMicro LIS3DH
實作Linux Driver移植在樹莓 Pi上:Linux Driver for STMicro LIS3DHIttrainingIttraining
 
RSA Algorithm - Public Key Cryptography
RSA Algorithm - Public Key CryptographyRSA Algorithm - Public Key Cryptography
RSA Algorithm - Public Key CryptographyMd. Shafiul Alam Sagor
 
La societa’ egizia
La societa’ egiziaLa societa’ egizia
La societa’ egiziaMaria Pisano
 
Crittografia per ragazzi!
Crittografia per ragazzi!Crittografia per ragazzi!
Crittografia per ragazzi!Egidio Casati
 
Cissp d5-cryptography v2012-mini coursev2
Cissp d5-cryptography v2012-mini coursev2Cissp d5-cryptography v2012-mini coursev2
Cissp d5-cryptography v2012-mini coursev2infosecedu
 
A Brief History of Cryptography
A Brief History of CryptographyA Brief History of Cryptography
A Brief History of Cryptographyguest9006ab
 
Introduction to Cryptography
Introduction to CryptographyIntroduction to Cryptography
Introduction to CryptographyPopescu Petre
 
6. cryptography
6. cryptography6. cryptography
6. cryptography7wounders
 
Intro to modern cryptography
Intro to modern cryptographyIntro to modern cryptography
Intro to modern cryptographyzahid-mian
 
Conventional Encryption NS2
Conventional Encryption NS2Conventional Encryption NS2
Conventional Encryption NS2koolkampus
 

La actualidad más candente (20)

La Norvegia
La NorvegiaLa Norvegia
La Norvegia
 
Introduction to Cryptography
Introduction to CryptographyIntroduction to Cryptography
Introduction to Cryptography
 
Introduction to Cryptography
Introduction to CryptographyIntroduction to Cryptography
Introduction to Cryptography
 
Cryptography
CryptographyCryptography
Cryptography
 
Proposed Lightweight Block Cipher Algorithm for Securing Internet of Things
Proposed Lightweight Block Cipher Algorithm for Securing Internet of ThingsProposed Lightweight Block Cipher Algorithm for Securing Internet of Things
Proposed Lightweight Block Cipher Algorithm for Securing Internet of Things
 
實作Linux Driver移植在樹莓 Pi上:Linux Driver for STMicro LIS3DH
實作Linux Driver移植在樹莓 Pi上:Linux Driver for STMicro LIS3DH實作Linux Driver移植在樹莓 Pi上:Linux Driver for STMicro LIS3DH
實作Linux Driver移植在樹莓 Pi上:Linux Driver for STMicro LIS3DH
 
RSA Algorithm - Public Key Cryptography
RSA Algorithm - Public Key CryptographyRSA Algorithm - Public Key Cryptography
RSA Algorithm - Public Key Cryptography
 
La societa’ egizia
La societa’ egiziaLa societa’ egizia
La societa’ egizia
 
Cryptography
CryptographyCryptography
Cryptography
 
Crittografia per ragazzi!
Crittografia per ragazzi!Crittografia per ragazzi!
Crittografia per ragazzi!
 
Cissp d5-cryptography v2012-mini coursev2
Cissp d5-cryptography v2012-mini coursev2Cissp d5-cryptography v2012-mini coursev2
Cissp d5-cryptography v2012-mini coursev2
 
cryptography
cryptographycryptography
cryptography
 
A Brief History of Cryptography
A Brief History of CryptographyA Brief History of Cryptography
A Brief History of Cryptography
 
1524 elliptic curve cryptography
1524 elliptic curve cryptography1524 elliptic curve cryptography
1524 elliptic curve cryptography
 
Introduction to Cryptography
Introduction to CryptographyIntroduction to Cryptography
Introduction to Cryptography
 
I2C Drivers
I2C DriversI2C Drivers
I2C Drivers
 
6. cryptography
6. cryptography6. cryptography
6. cryptography
 
Cryptography ppt
Cryptography pptCryptography ppt
Cryptography ppt
 
Intro to modern cryptography
Intro to modern cryptographyIntro to modern cryptography
Intro to modern cryptography
 
Conventional Encryption NS2
Conventional Encryption NS2Conventional Encryption NS2
Conventional Encryption NS2
 

Destacado

Da Cesare ai quanti - Workshop@UNINA - NaLUG - Crittografia - polialfabetici ...
Da Cesare ai quanti - Workshop@UNINA - NaLUG - Crittografia - polialfabetici ...Da Cesare ai quanti - Workshop@UNINA - NaLUG - Crittografia - polialfabetici ...
Da Cesare ai quanti - Workshop@UNINA - NaLUG - Crittografia - polialfabetici ...Mario Rossano
 
Codemotion 2012: una nuova crittografia frattale - classe Crypt::FNA
Codemotion 2012: una nuova crittografia frattale - classe Crypt::FNACodemotion 2012: una nuova crittografia frattale - classe Crypt::FNA
Codemotion 2012: una nuova crittografia frattale - classe Crypt::FNAMario Rossano
 
Crittografia è sinonimo di sicurezza?
Crittografia è sinonimo di sicurezza?Crittografia è sinonimo di sicurezza?
Crittografia è sinonimo di sicurezza?Enrico Zimuel
 
Data hiding - metodologie e strumenti open source
Data hiding - metodologie e strumenti open sourceData hiding - metodologie e strumenti open source
Data hiding - metodologie e strumenti open sourceMarco Ferrigno
 
MODULO 14 --> La crittografia delle informazioni
MODULO 14 --> La crittografia delle informazioniMODULO 14 --> La crittografia delle informazioni
MODULO 14 --> La crittografia delle informazioniFrancesco Ciclosi
 
Linux Security Hardening - panoramica sui principi generali per la riduzione...
Linux  Security Hardening - panoramica sui principi generali per la riduzione...Linux  Security Hardening - panoramica sui principi generali per la riduzione...
Linux Security Hardening - panoramica sui principi generali per la riduzione...Marco Ferrigno
 
Principi di crittografia
Principi di crittografiaPrincipi di crittografia
Principi di crittografiapeppespe
 
La crittografia
La crittografiaLa crittografia
La crittografialukarosati
 
Security and hacking engineering - metodologie di attacco e difesa con strume...
Security and hacking engineering - metodologie di attacco e difesa con strume...Security and hacking engineering - metodologie di attacco e difesa con strume...
Security and hacking engineering - metodologie di attacco e difesa con strume...Marco Ferrigno
 

Destacado (9)

Da Cesare ai quanti - Workshop@UNINA - NaLUG - Crittografia - polialfabetici ...
Da Cesare ai quanti - Workshop@UNINA - NaLUG - Crittografia - polialfabetici ...Da Cesare ai quanti - Workshop@UNINA - NaLUG - Crittografia - polialfabetici ...
Da Cesare ai quanti - Workshop@UNINA - NaLUG - Crittografia - polialfabetici ...
 
Codemotion 2012: una nuova crittografia frattale - classe Crypt::FNA
Codemotion 2012: una nuova crittografia frattale - classe Crypt::FNACodemotion 2012: una nuova crittografia frattale - classe Crypt::FNA
Codemotion 2012: una nuova crittografia frattale - classe Crypt::FNA
 
Crittografia è sinonimo di sicurezza?
Crittografia è sinonimo di sicurezza?Crittografia è sinonimo di sicurezza?
Crittografia è sinonimo di sicurezza?
 
Data hiding - metodologie e strumenti open source
Data hiding - metodologie e strumenti open sourceData hiding - metodologie e strumenti open source
Data hiding - metodologie e strumenti open source
 
MODULO 14 --> La crittografia delle informazioni
MODULO 14 --> La crittografia delle informazioniMODULO 14 --> La crittografia delle informazioni
MODULO 14 --> La crittografia delle informazioni
 
Linux Security Hardening - panoramica sui principi generali per la riduzione...
Linux  Security Hardening - panoramica sui principi generali per la riduzione...Linux  Security Hardening - panoramica sui principi generali per la riduzione...
Linux Security Hardening - panoramica sui principi generali per la riduzione...
 
Principi di crittografia
Principi di crittografiaPrincipi di crittografia
Principi di crittografia
 
La crittografia
La crittografiaLa crittografia
La crittografia
 
Security and hacking engineering - metodologie di attacco e difesa con strume...
Security and hacking engineering - metodologie di attacco e difesa con strume...Security and hacking engineering - metodologie di attacco e difesa con strume...
Security and hacking engineering - metodologie di attacco e difesa con strume...
 

Similar a Reti di Calcolatori - Crittografia

Algoritmi di cifratura DES (a blocchi) e DES OFB (a stream)
Algoritmi di cifratura DES (a blocchi) e DES OFB (a stream)Algoritmi di cifratura DES (a blocchi) e DES OFB (a stream)
Algoritmi di cifratura DES (a blocchi) e DES OFB (a stream)Gianluca Grimaldi
 
Documento informatico: profili giuridici
Documento informatico: profili giuridiciDocumento informatico: profili giuridici
Documento informatico: profili giuridiciMichele Martoni
 
Seminario crittografia-linux-day-2004
Seminario crittografia-linux-day-2004Seminario crittografia-linux-day-2004
Seminario crittografia-linux-day-2004Flavio Castelli
 
Crittografia firma digitale
Crittografia firma digitaleCrittografia firma digitale
Crittografia firma digitalejamboo
 
Firma digitale e sicurezza
Firma digitale e sicurezzaFirma digitale e sicurezza
Firma digitale e sicurezzagaiaa19
 
L'ABC della crittografia
L'ABC della crittografiaL'ABC della crittografia
L'ABC della crittografiaGiovanni Bechis
 
Sicurezza Delle Reti
Sicurezza Delle RetiSicurezza Delle Reti
Sicurezza Delle Retimariolotto89
 
Corso IFTS CyberSecurity Expert - Cifrai Asimmetrici
Corso IFTS CyberSecurity Expert - Cifrai AsimmetriciCorso IFTS CyberSecurity Expert - Cifrai Asimmetrici
Corso IFTS CyberSecurity Expert - Cifrai AsimmetriciMassimiliano Masi
 
Presentazione Laurea triennale - X509 e PGP
Presentazione Laurea triennale - X509 e PGPPresentazione Laurea triennale - X509 e PGP
Presentazione Laurea triennale - X509 e PGPFabio Pustetto
 
Crittografia Firma Digitale
Crittografia Firma DigitaleCrittografia Firma Digitale
Crittografia Firma DigitaleMario Varini
 
Tecnologie per la sicurezza
Tecnologie per la sicurezzaTecnologie per la sicurezza
Tecnologie per la sicurezzaMarco Montanari
 

Similar a Reti di Calcolatori - Crittografia (15)

Algoritmi di cifratura DES (a blocchi) e DES OFB (a stream)
Algoritmi di cifratura DES (a blocchi) e DES OFB (a stream)Algoritmi di cifratura DES (a blocchi) e DES OFB (a stream)
Algoritmi di cifratura DES (a blocchi) e DES OFB (a stream)
 
Crittografia
CrittografiaCrittografia
Crittografia
 
Documento informatico: profili giuridici
Documento informatico: profili giuridiciDocumento informatico: profili giuridici
Documento informatico: profili giuridici
 
Seminario crittografia-linux-day-2004
Seminario crittografia-linux-day-2004Seminario crittografia-linux-day-2004
Seminario crittografia-linux-day-2004
 
Crittografia DEFINTIIVA
Crittografia DEFINTIIVACrittografia DEFINTIIVA
Crittografia DEFINTIIVA
 
Crittografia firma digitale
Crittografia firma digitaleCrittografia firma digitale
Crittografia firma digitale
 
Firma digitale e sicurezza
Firma digitale e sicurezzaFirma digitale e sicurezza
Firma digitale e sicurezza
 
L'ABC della crittografia
L'ABC della crittografiaL'ABC della crittografia
L'ABC della crittografia
 
Sicurezza Delle Reti
Sicurezza Delle RetiSicurezza Delle Reti
Sicurezza Delle Reti
 
Corso IFTS CyberSecurity Expert - Cifrai Asimmetrici
Corso IFTS CyberSecurity Expert - Cifrai AsimmetriciCorso IFTS CyberSecurity Expert - Cifrai Asimmetrici
Corso IFTS CyberSecurity Expert - Cifrai Asimmetrici
 
Voip Secure
Voip SecureVoip Secure
Voip Secure
 
Presentazione Laurea triennale - X509 e PGP
Presentazione Laurea triennale - X509 e PGPPresentazione Laurea triennale - X509 e PGP
Presentazione Laurea triennale - X509 e PGP
 
Crittografia Firma Digitale
Crittografia Firma DigitaleCrittografia Firma Digitale
Crittografia Firma Digitale
 
Tecnologie per la sicurezza
Tecnologie per la sicurezzaTecnologie per la sicurezza
Tecnologie per la sicurezza
 
Crittografia massimiliano tanzi
Crittografia massimiliano tanziCrittografia massimiliano tanzi
Crittografia massimiliano tanzi
 

Más de Sergio Porcu

Costi, break even point, analisi make or buy
Costi, break even point, analisi make or buyCosti, break even point, analisi make or buy
Costi, break even point, analisi make or buySergio Porcu
 
Analisi degli scostamenti
Analisi degli scostamentiAnalisi degli scostamenti
Analisi degli scostamentiSergio Porcu
 
Algoritmi e Programmazione Avanzata - Ordinamento e ricorsione
Algoritmi e Programmazione Avanzata - Ordinamento e ricorsioneAlgoritmi e Programmazione Avanzata - Ordinamento e ricorsione
Algoritmi e Programmazione Avanzata - Ordinamento e ricorsioneSergio Porcu
 
Algoritmi e Programmazione Avanzata - Liste, pile, code
Algoritmi e Programmazione Avanzata - Liste, pile, codeAlgoritmi e Programmazione Avanzata - Liste, pile, code
Algoritmi e Programmazione Avanzata - Liste, pile, codeSergio Porcu
 
Algoritmi e Programmazione Avanzata - Esercizi propedeutici
Algoritmi e Programmazione Avanzata - Esercizi propedeuticiAlgoritmi e Programmazione Avanzata - Esercizi propedeutici
Algoritmi e Programmazione Avanzata - Esercizi propedeuticiSergio Porcu
 
Il temporizzatore d'intervalli 8253
Il temporizzatore d'intervalli 8253Il temporizzatore d'intervalli 8253
Il temporizzatore d'intervalli 8253Sergio Porcu
 
L'interrupt nell'8086
L'interrupt nell'8086L'interrupt nell'8086
L'interrupt nell'8086Sergio Porcu
 
Interfaccia verso il BUS
Interfaccia verso il BUSInterfaccia verso il BUS
Interfaccia verso il BUSSergio Porcu
 
Elementi architetturali dell'8086
Elementi architetturali dell'8086Elementi architetturali dell'8086
Elementi architetturali dell'8086Sergio Porcu
 
Formato istruzioni e direttive 8086
Formato istruzioni e direttive 8086Formato istruzioni e direttive 8086
Formato istruzioni e direttive 8086Sergio Porcu
 
Microprocessori INTEL 8086/8088
Microprocessori INTEL 8086/8088Microprocessori INTEL 8086/8088
Microprocessori INTEL 8086/8088Sergio Porcu
 
Esercizi in linguaggio Assembly 8086
Esercizi in linguaggio Assembly 8086Esercizi in linguaggio Assembly 8086
Esercizi in linguaggio Assembly 8086Sergio Porcu
 
Gestione date in PL/SQL
Gestione date in PL/SQLGestione date in PL/SQL
Gestione date in PL/SQLSergio Porcu
 
Traduzione dal modello ER al relazionale
Traduzione dal modello ER al relazionaleTraduzione dal modello ER al relazionale
Traduzione dal modello ER al relazionaleSergio Porcu
 
Soluzione generalizzazioni in diagrammi ER
Soluzione generalizzazioni in diagrammi ERSoluzione generalizzazioni in diagrammi ER
Soluzione generalizzazioni in diagrammi ERSergio Porcu
 

Más de Sergio Porcu (20)

Investimenti
InvestimentiInvestimenti
Investimenti
 
Costi, break even point, analisi make or buy
Costi, break even point, analisi make or buyCosti, break even point, analisi make or buy
Costi, break even point, analisi make or buy
 
Analisi degli scostamenti
Analisi degli scostamentiAnalisi degli scostamenti
Analisi degli scostamenti
 
Algoritmi e Programmazione Avanzata - Ordinamento e ricorsione
Algoritmi e Programmazione Avanzata - Ordinamento e ricorsioneAlgoritmi e Programmazione Avanzata - Ordinamento e ricorsione
Algoritmi e Programmazione Avanzata - Ordinamento e ricorsione
 
Algoritmi e Programmazione Avanzata - Liste, pile, code
Algoritmi e Programmazione Avanzata - Liste, pile, codeAlgoritmi e Programmazione Avanzata - Liste, pile, code
Algoritmi e Programmazione Avanzata - Liste, pile, code
 
Algoritmi e Programmazione Avanzata - Esercizi propedeutici
Algoritmi e Programmazione Avanzata - Esercizi propedeuticiAlgoritmi e Programmazione Avanzata - Esercizi propedeutici
Algoritmi e Programmazione Avanzata - Esercizi propedeutici
 
Il temporizzatore d'intervalli 8253
Il temporizzatore d'intervalli 8253Il temporizzatore d'intervalli 8253
Il temporizzatore d'intervalli 8253
 
Il Turbo Debugger
Il Turbo DebuggerIl Turbo Debugger
Il Turbo Debugger
 
L'interrupt nell'8086
L'interrupt nell'8086L'interrupt nell'8086
L'interrupt nell'8086
 
Interfaccia verso il BUS
Interfaccia verso il BUSInterfaccia verso il BUS
Interfaccia verso il BUS
 
Elementi architetturali dell'8086
Elementi architetturali dell'8086Elementi architetturali dell'8086
Elementi architetturali dell'8086
 
Formato istruzioni e direttive 8086
Formato istruzioni e direttive 8086Formato istruzioni e direttive 8086
Formato istruzioni e direttive 8086
 
Assembler 8086
Assembler 8086Assembler 8086
Assembler 8086
 
Microprocessori INTEL 8086/8088
Microprocessori INTEL 8086/8088Microprocessori INTEL 8086/8088
Microprocessori INTEL 8086/8088
 
Metodo di Newton
Metodo di NewtonMetodo di Newton
Metodo di Newton
 
Mappe di Karnaugh
Mappe di KarnaughMappe di Karnaugh
Mappe di Karnaugh
 
Esercizi in linguaggio Assembly 8086
Esercizi in linguaggio Assembly 8086Esercizi in linguaggio Assembly 8086
Esercizi in linguaggio Assembly 8086
 
Gestione date in PL/SQL
Gestione date in PL/SQLGestione date in PL/SQL
Gestione date in PL/SQL
 
Traduzione dal modello ER al relazionale
Traduzione dal modello ER al relazionaleTraduzione dal modello ER al relazionale
Traduzione dal modello ER al relazionale
 
Soluzione generalizzazioni in diagrammi ER
Soluzione generalizzazioni in diagrammi ERSoluzione generalizzazioni in diagrammi ER
Soluzione generalizzazioni in diagrammi ER
 

Reti di Calcolatori - Crittografia

  • 1. RETI DI CALCOLATORI Crittografia
  • 2. La crittografia La crittografia è la scienza che studia la scrittura e la lettura di messaggi in codice ed è il fondamento su cui si basano i meccanismi di autenticazione, integrità e segretezza. 2
  • 3. La crittografia L’autenticazione stabilisce al tempo stesso l’identità del mittente e del destinatario delle informazioni. L’integrità garantisce che i dati non siano stati alterati e la segretezza che nessuno, al di fuori di mittente e destinatario, sia in grado di interpretarli. 3
  • 4. La crittografia Solitamente, i meccanismi crittografici utilizzano sia un algoritmo sia un valore segreto, detto chiave. In genere, la struttura degli algoritmi è pubblica; le chiavi, invece, vengono mantenute segrete per ottenere la sicurezza richiesta. 4
  • 5. La crittografia Il numero di bit necessari per garantire la sicurezza crittografica non è facile da determinare. Più è lungo lo spazio di chiave (l’intervallo di possibili valori), più diventa difficile forzare la chiave con un attacco di forza bruta. 5
  • 6. La crittografia Un attacco di forza bruta è un tentativo di arrivare alla chiave nel quale si applicano all’algoritmo tutte le possibili combinazioni di valori, finché non si riesce a decifrare il messaggio. 6
  • 7. La crittografia Possibili combinazioni per gli attacchi di forza bruta Lunghezza chiave (in bit) Numero combinazioni possibili 40 240 = 1.099.511.627.776 56 256 = 7,205759403793 x 1016 64 264 = 1,844674407371 x 1019 112 2112 = 5,192296858535 x 1033 128 2128 = 3,402823669209 x 1038 7
  • 8. La crittografia In generale, si tendono a utilizzare chiavi più lunghe possibile, per ridurre le probabilità di forzatura. È comunque necessario tener presente che più lunga è la chiave, maggiori sono i costi in termini di potenza di calcolo dei processi di crittografia e decifrazione. L’obiettivo è che la forzatura sia “più costosa” del valore intrinseco delle informazioni protette. 8
  • 9. La crittografia Le funzioni crittografiche per l’autenticazione, l’integrità e la segretezza dei dati sono tre: • chiavi simmetriche; • chiavi asimmetriche; • funzioni hash non invertibili. 9
  • 10. Crittografia a chiave simmetrica La crittografia simmetrica, altrimenti detta crittografia a chiave segreta, utilizza una chiave comune e il medesimo algoritmo crittografico per la codifica e la decodifica dei messaggi. In sostanza, due utenti che desiderano comunicare devono accordarsi su di un algoritmo e su di una chiave comuni. 10
  • 11. Crittografia a chiave simmetrica A B Chiave Chiave Segreta Segreta Codifica Internet Decodifica Msg Msg 11
  • 12. Crittografia a chiave simmetrica Uno degli algoritmi più semplici è il cifrario di Cesare, che sostituisce ognuna delle lettere del messaggio originale con la lettera dell’alfabeto che si trova n posti più avanti nell’alfabeto stesso. Es. n=3 SCANO ⇒ VFDQR 12
  • 13. Crittografia a chiave simmetrica Gli algoritmi di uso comune più difficili da decifrare utilizzano uno sei seguenti sistemi: • DES (Data Encryption Standard); • 3DES (Triple DES); • RC-4 (Rivest Cipher 4); • IDEA (International Data Encryption Algorithm). 13
  • 14. DES Il DES è uno schema crittografico operante su blocchi di 64 bit e utilizza una serie di fasi per trasformare 64 bit di input in 64 bit di output. Nella sua forma standard, l’algoritmo utilizza chiavi a 64 bit, 56 dei quali scelti a caso. Gli altri 8 bit sono bit di parità. 14
  • 15. 3DES 3DES è una versione alternativa di DES. Tale sistema, che può utilizzare una, due o tre chiavi diverse, prende un blocco di 64 bit e vi applica operazioni di codifica, decodifica e ricodifica. 15
  • 16. RC-4 RC-4 è un algoritmo privato, inventato da Ron Rivest e commercializzato da RSA Data Security. Viene solitamente utilizzato con una chiave a 128 bit, ma le dimensioni della chiave sono variabili. 16
  • 17. IDEA Il sistema IDEA, realizzato come alternativa a DES, opera sempre su blocchi di 64 bit, ma utilizza una chiave di 128 bit. Si tratta di un algoritmo brevettato ed è utilizzabile per usi commerciali solo su licenza. 17
  • 18. Crittografia a chiave simmetrica La crittografia a chiave segreta viene sostanzialmente utilizzata per garantire la segretezza dei dati, in quanto gran parte degli algoritmi simmetrici sono stati progettati per essere applicati all’hardware e sono stati ottimizzati per la codifica di grandi masse di dati. 18
  • 19. Crittografia a chiave simmetrica I punti critici dei sistemi a chiave segreta sono i seguenti: • necessità di cambiare frequentemente le chiavi segrete per evitare il rischio che vengano scoperte; • sicurezza nella generazione delle chiavi segrete; • sicurezza nella distribuzione delle chiavi segrete. 19
  • 20. Crittografia asimmetrica La crittografia asimmetrica viene spesso definita come crittografia a chiave pubblica e può utilizzare lo stesso algoritmo, oppure algoritmi diversi ma complementari, per codificare e decodificare i dati. Sono necessari due valori diversi, ma correlati, per la chiave: una chiave pubblica e una privata. 20
  • 21. Crittografia asimmetrica Per comunicare utilizzando la crittografia a chiave pubblica, A e B necessitano di una coppia chiave pubblica – chiave privata. Ognuno dei due deve creare la propria coppia di chiavi. Nelle comunicazioni fra loro, A e B utilizzano chiavi diverse per codificare e decodificare i dati. 21
  • 22. Crittografia asimmetrica Pub Pub Pri Pri 1 Pub 1 A B 2 Pub 1 Crea una coppia chiave privata - chiave pubblica 2 Scambia solo chiavi pubbliche 22
  • 23. Crittografia asimmetrica Alcuni degli utilizzi più comuni per gli algoritmi a chiave pubblica comprendono: • l’integrità dei dati; • la segretezza dei dati; • l’accettazione del mittente; • l’autenticazione del mittente. 23
  • 24. Crittografia asimmetrica Perché avvenga uno scambio di dati segreto, debbono verificarsi le seguenti condizioni: 1. A e B creano le proprie coppie di chiavi pubbliche e private; 2. A e B si scambiano le chiavi pubbliche; 3. A scrive a B e codifica il messaggio utilizzando la chiave pubblica di B prima di trasmetterlo via Internet; 24
  • 25. Crittografia asimmetrica 4. B utilizza la propria chiave privata per decifrare il messaggio; 5. B risponde, codifica il messaggio utilizzando la chiave pubblica di A e lo trasmette via Internet; 6. A utilizza la propria chiave privata per decifrare il messaggio. 25
  • 26. Crittografia asimmetrica Come garantire l’integrità e la segretezza dei dati con la crittografia a chiave pubblica Coppia chiave pub. – chiave priv. Coppia chiave pub. – chiave priv. 1 Pub 1 Pub Pri Pri Chiave pub. di B 2 Chiave pub. di A A B Internet 3 4 Codifica Decodifica Chiave pub. di B Chiave priv. di B Messaggio Messaggio Messaggio originale originale codificato 6 5 Decodifica Codifica Chiave priv. di A Chiave pub. di A Risposta di Messaggio 26 Risposta di Alessandro Alessandro codificato
  • 27. Crittografia asimmetrica La segretezza è garantita nel momento che A trasmette il messaggio originale, in quanto solo B può decodificarlo con la propria chiave privata. Allo stesso tempo, viene assicurata anche l’integrità dei dati, perché il messaggio non può essere modificato se non con la chiave privata di B. Lo stesso vale per la risposta, in quanto solo A ha accesso 27 alla propria chiave privata.
  • 28. Crittografia asimmetrica Il punto debole di questo meccanismo sta nel fatto che chiunque può far finta di essere A e trasmettere a B un messaggio in codice, utilizzando la chiave pubblica di B, la quale, in effetti, è pubblicamente disponibile. 28
  • 29. Crittografia asimmetrica Perché lo scambio sia autenticato, debbono verificarsi le seguenti condizioni: 1. A e B creano le proprie coppie chiave pubblica – chiave privata; 2. A e B si scambiano le chiavi pubbliche; 3. A scrive a B, codificando il messaggio con la propria chiave privata, e trasmette i dati in codice via 29 Internet;
  • 30. Crittografia asimmetrica 4. B utilizza la chiave pubblica di A per decifrare il messaggio; 5. B risponde, codifica il messaggio con la propria chiave privata e trasmette i dati in codice ad A via Internet; 6. A decifra il messaggio con la chiave pubblica di B. 30
  • 31. Crittografia asimmetrica Per garantire, con il sistema della chiave pubblica, l’autenticità degli scambi, oltre all’integrità e alla segretezza dei dati, è necessario introdurre la doppia crittografia. Per prima cosa, A codifica il messaggio a B con la chiave pubblica di B; quindi ricodifica il messaggio con la propria chiave privata. Il messaggio potrebbe essere decodificato da chiunque, ma solo B può decodificare il secondo con la propria chiave privata. 31
  • 32. Crittografia asimmetrica Per i loro limiti di prestazioni, gli algoritmi crittografici a chiave pubblica non sono solitamente utilizzati per garantire la segretezza, ma si rivelano particolarmente utili per le applicazioni che richiedono una forma di autenticazione attraverso firme digitali e gestione delle chiavi. Tra i più comuni, si segnalano gli algoritmi di Ron Rivest, di Adi Shamir e di Leonard Adleman (RSA) e quello di El Gamal. 32
  • 33. Funzioni hash Una funzione hash trasforma un messaggio di lunghezza arbitraria in output di lunghezza fissa (chiamato hash o digest del messaggio originale). 33
  • 34. Funzioni hash Per soddisfare le condizioni di sicurezza stabilite per le funzioni hash, gli algoritmi devono avere le seguenti proprietà: • devono essere coerenti (a input uguali corrispondono output uguali); • devono essere casuali, o apparire tali, per impedire l’interpretazione accidentale del messaggio originale; 34
  • 35. Funzioni hash • devono essere univoci (la probabilità che due messaggi generino il medesimo hash deve essere virtualmente nulla); • devono essere non invertibili (risalire al messaggio originale dall’output deve essere impossibile). 35
  • 36. Funzioni hash Le funzioni hash non invertibili vengono normalmente utilizzate per assegnare un’impronta digitale a un messaggio o a un file. Come le impronte dei polpastrelli, un’impronta hash è univoca e costituisce una prova dell’integrità e dell’autenticità del messaggio. 36
  • 37. Funzioni hash Esemplificando, se A e B vogliono accertarsi che nessuno sia intervenuto sul contenuto del messaggio in fase di transizione utilizzano proprio una funzione hash non invertibile. 37
  • 38. Funzioni hash Per garantire l’integrità dei dati trasferiti fra A e B, devono verificarsi le seguenti condizioni: 1. A scrive un messaggio e ne utilizza il testo come input di una funzione hash non invertibile; 2. il risultato della funzione hash viene accodato al messaggio e ne costituisce l’impronta digitale; 38
  • 39. Funzioni hash 3. B separa il messaggio dall’impronta e utilizza il testo del messaggio come input della medesima funzione hash utilizzata da A; 4. se i due hash corrispondono, B è certo che nessun altro sia intervenuto sul messaggio. 39
  • 40. Funzioni hash Msg A B 1 3 Impronta Impronta Impronta 2 4 Impronta 40
  • 41. Funzioni hash Il problema, in questo caso, è che non c’è modo di proteggere l’impronta da eventuali intrusi. È possibile infatti che qualcuno interferisca, impersonando il mittente o il destinatario delle comunicazioni sicure. Pertanto, per essere utilizzate in maniera sicura, le funzioni hash vanno combinate con sistemi a chiave pubblica per l’assegnazione di firme digitali. 41
  • 42. Funzioni hash Tra le funzioni hash più comuni, si segnalano: • l’algoritmo MD4 (Message Digest 4); • l’algoritmo MD5 (Message Digest 5); • l’algoritmo SHA (Secure Hash Algorithm). 42
  • 43. Funzioni hash Gli algoritmi MD4 e MD5 sono stati elaborati da Ron Rivest per il MIT (Massachusetts Institute of Technology), mentre l’algoritmo SHA è stato sviluppato dal NIST (National Institute of Standards and Technology). 43
  • 44. Funzioni hash Gli attuali prodotti per la sicurezza utilizzano principalmente algoritmi MD5 e SHA, entrambi basati sul sistema MD4. MD5 elabora l’input a blocchi di 512 bit e produce un digest di 128 bit. SHA elabora blocchi di 512 bit e produce un digest di 160 bit. SHA richiede un maggiore lavoro da parte del processore ed è leggermente più lento di MD5. 44
  • 45. Firme digitali Una firma digitale è un digest in codice che viene utilizzato per comprovare l’identità del mittente e l’integrità del documento. Le firme digitali si basano su di una combinazione di tecniche crittografiche a chiave pubblica e funzioni hash non invertibili. 45
  • 46. Firme digitali Perché B possa creare una firma digitale, si devono verificare le seguenti condizioni: 1. B crea una coppia chiave privata – chiave pubblica; 2. B dà ad A la propria chiave pubblica; 46
  • 47. Firme digitali Creazione di una firma digitale 1 Pub Pri 1 Pub B A 2 1 Il mittente crea una coppia chiave privata - chiave pubblica 2 Il mittente invia la chiave pubblica al ricevente 47
  • 48. Firme digitali 3. B scrive un messaggio, che utilizza come input per una funzione hash non invertibile; 4. B codifica l’output dell’algoritmo hash, il digest del messaggio, con la propria chiave privata, ottenendo così la firma digitale. Il messaggio che B trasmette ad A è l’insieme del documento e della firma digitale. 48
  • 49. Firme digitali Creazione di una firma digitale 2 Msg Il messaggio originale è l’input di una funzione hash non invertibile 006FBBC95 L’output è l’hash del messaggio L’hash viene codificato con la chiave Codifica privata del mittente La firma digitale FIRMA è l’hash crittografato 49
  • 50. Firme digitali Per il destinatario, le operazioni da svolgere per verificare il messaggio e la firma digitale sono le seguenti: 1. A separa il messaggio ricevuto in documento originale e firma digitale; 2. A utilizza la chiave pubblica di B per decifrare la firma digitale e ottenere il sunto del messaggio originale; 50
  • 51. Firme digitali 3. A utilizza il documento originale come input della medesima funzione hash utilizzata da B per ottenere il digest del messaggio; 4. A controlla che i digest del messaggio siano uguali. Se tutto quadra, sono comprovate sia l’integrità del documento, sia l’autenticità del mittente. 51
  • 52. Firme digitali Msg Msg FIRMA FIRMA Il ricevente separa messaggio e firma Decodifica firma con Decodifica chiave pubblica mittente Il messaggio originale è l’input di una funzione Il risultato è 006FBBC95 l’hash crittografato hash non invertibile Il risultato è l’hash del messaggio 006FBBC95 52
  • 53. Firme digitali Lo scambio iniziale di chiavi deve avvenire in modo tale da garantire la sicurezza. È questa la ragione fondamentale dell’esistenza di certificati digitali. 53
  • 54. Firme digitali Un certificato digitale è un messaggio con firma digitale che contiene la chiave privata di un terzo di fiducia, il quale dichiara che una determinata chiave pubblica appartiene a una certa persona o entità e ne garantisce nome e caratteristiche. Se lo scambio iniziale non avviene nell’ambito di una relazione di fiducia, chiunque può simulare di essere una determinata entità. 54