Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
! Asimettrica
! Due chiavi, una pubblica e una privata
Crittografia e Chiavi
Rivest-Shamir-Adelman
Tecniche principali di
crittografia
! Sostituzione
! I singoli caratteri del messaggio vengono sostituiti
con altri caratteri in base a una qualche regola
! Obiettivo di questa tecnica è la confusione del
contenuto delle informazioni nel testo crittato
! Permutazione
! Parti del messaggio vengono spostate di
posizione
! Obiettivo di questa tecnica è la diffusione del
contenuto informativo del messaggio in modo
casuale nel testo crittato
Giorgio Giacinto 2013 Crittografia 7
Crittazione a flussi e a blocchi
Altre sostituzioni
! Stabilisco una chiave (es., chiave) che
sostituisco alle prime lettere dell’alfabeto.
ABCDEFGHIJKLMNOPQRSTUVWXYZ
CHIAVEBDFGJKLMNOPQRSTUWXYZ
più complicato, con una permutazione che
considera una lettera ogni 3, modulo 26
ABCDEFGHIJKLMNOPQRSTUVWXYZ
ADGJMPSVYBEHKNQTWZCFILORUX
Permutazioni
Trasposizioni per colonna
! Se usiamo 5 colonne, il testo
THIS IS A SAMPLE MESSAGE
si dispone
T H I S I
S A S A M
P L E M E
S S A G E
e il risultante messaggio crittato diventa
TSPS HALS ISEA SAMG IMEE
Giorgio Giacinto 2013 Crittografia 14
! A flussi
! RC4 (1987, Ron Rivest)
DES
! Nato negli anni ‘70 per volontà del governo
USA per finalità pubbliche
AES
! Gara del NIST nel 1997 per un algoritmo
! Non segreto
! Divulgato pubblicamente
! Disponibile per l’utilizzo mondiale senza diritti di
sfruttamento
! Simmetrico con crittazione a blocchi (128 bit)
! Utilizzabile con chiavi di dimensione 128, 192 e 256 bit
! Nell’agosto del 1998, 15 algoritmi in gara
! Nel 1999, 5 finalisti.
! Nel 2001 l’algoritmo vincitore è adottato
ufficialmente negli USA
Giorgio Giacinto 2013 Crittografia 27
L’algoritmo AES
Nome dell’algoritmo: Rijndael
dal nome degli autori Rijmen e
Daemen
openssl
! openssl (http://www.openssl.org) è uno
strumento che realizza i principali algoritmi di
crittografia per la comunicazione Internet
! sono disponibili gli algoritmi di crittografia
simmetrica e asimmetrica
! possono essere utilizzati anche per la cifratura di file
! sono disponibili le funzioni per la comunicazione
client – server sicura
Funzionamento sistemi a
chiave pubblica
kpub Chiave pubblica
kpriv Chiave privata
E(k,M) Funzione di crittazione
D(k,M) Funzione di decrittazione
P messaggio in chiaro
P = D(kpriv,E(kpub,P))
per alcuni algoritmi inoltre vale anche
P = E(kpub,D(kpriv,P))
Giorgio Giacinto 2013 Crittografia 33
L’algoritmo RSA
! RSA (Rivest-Shamir-Adelman)
algoritmo a chiave pubblica introdotto nel
1978 e ancora ritenuto sicuro
basato sulla teoria dei numeri (scomposizioni
in fattori primi)
Vale la proprietà
P = D(E(P)) = E(D(P))
C = D(kpub-D,E(kpriv-M,P))
Il destinatario D verifica
l’autenticità di M usando la
chiave pubblica di M e legge il
messaggio riservato usando la
propria chiave privata
P = D(kpub-M,E(kpriv-D,C))
Giorgio Giacinto 2013 Crittografia 41
Firma digitale
! Non deve consentire la contraffazione
! Se la persona P invia un messaggio M con la
firma S(P,M), nessun altro deve essere in grado di
produrre la coppia [M, S(P,M)]
! Deve garantire l’autenticità
! Il destinatario deve poter verificare che la firma
provenga da P e che questa è legata al
documento M
! Documento e firma non devono poter essere
alterati da nessuno (compresi mitt e dest)
! La firma non deve essere riutilizzabile
Giorgio Giacinto 2013 Crittografia 42
Certificati
! Nella vita reale identità e autenticità di persone e
comunicazioni dipendono spesso da autorità fidate
riconosciute reciprocamente, la cui autorità è
stabilita in modo gerarchico
! Carte d’identità
! Passaporti
! Notai
! Uffici anagrafici
! Timbri
! Carta intestata
! ecc…
Giorgio Giacinto 2013 Crittografia 49
Certificati digitali
! Nelle transazioni informatiche esistono
autorità di certificazione analoghe
! Distribuiscono certificati
! Garantiscono l’autenticità
! Catene di autorità di certificazione
! Certificati basati su
! Firme digitali
! Funzioni di hash
Struttura di un certificato
digitale
PKI - Public Key Infrastructure
! Contiene l’identità dell’utente e la sua chiave
pubblica
! Il certificato è firmato da una autorità di
certificazione (CA - Certification Authority)
! VeriSign, SecureNet…
! E’ possibile creare certificati self-signed
! http://www.akadia.com/services/ssh_test_certificate.html
non vi è una autorità che certifica l’autenticità, ma
la comunicazione è comunque crittata
Giorgio Giacinto 2013 Crittografia 51
Esempio di creazione di un
certificato con openssl
! Creazione di un certificato
openssl req -new -key server.key -out server.csr
! server.key è la chiave privata del server
! Generazione di un certificato auto-firmato
openssl x509 -req -days 365 -in server.csr -signkey
server.key -out server.crt
Crittografia SSL
! SSL (Secure Socket Layer) progettato
originariamente da Netscape per proteggere
comunicazione fra browser e server
! Noto anche come TLS (Transport Layer Security)
! Si interfaccia fra applicazioni e protocollo
TCP per fornire
! autenticazione del server
! canale crittato fra browser e server
IPSec
! Parte della suite IPv6 sviluppata da IETF
! IPSec è una suite di protocolli di IP Security
! Implementato nello strato IP
! Simile a SSL