Introduzione alla Crittografia Presente e futuro

Introduzione alla Crittografia
Presente e futuro
Bruno Martino - Fabio Guglietta
Cosa faremo oggi ?
• 
Crittografia asimmetrica
• 
Algoritmo RSA
• 
Applicazioni di RSA
• 
Simmetrico o asimmetrico?
• 
… ci porti fuori signor Sùlù …
Bruno MARTINO, Fabio GUGLIETTA – Introduzione alla crittografia
Cifratura simmetrica
• 
Nelle tecniche di cifratura simmetriche, decifrare
significa applicare al contrario il procedimento di
cifratura; la cifratura DES, per quanto complessa, e`
simmetrica
• 
I 16 passaggi che consentono di cifrare un messaggio,
se effettuati al contrario lo decriptano
• 
In un sistema asimmetrico, la chiave usata per criptare
non coincide con la chiave usata per decriptare.
Bruno MARTINO, Fabio GUGLIETTA – Introduzione alla crittografia
One Way function
•  La nozione di one-way function è fondamentale per la
crittografia; le one-way function sono relativamente
facili da calcolare, ma molto più difficili da invertire
•  In questo contesto “difficile” ha più ho meno questo
significato: è mooolto complesso calcolare x nota f(x).
•  La rottura di un piatto ne è un buon esempio: è facile
frantumare un piatto, ma non altrettanto rimetterlo
insieme.
Bruno MARTINO, Fabio GUGLIETTA – Introduzione alla crittografia
Diffie ed Hellman
•  Diffie ed Hellman concepirono un
sistema asimmetrico, basato su
l’uso di due chiavi in modo che
fosse impossibile ricavarne una
dall’altra; le due chiavi vengono
chiamate pubblica e privata;
la prima serve per cifrare e la seconda per decifrare.
•  La chiave pubblica può essere tranquillamente distribuita perché
consente solo di cifrare il messaggio, in questo modo si aggira il
problema dello scambio della chiave simmetrica
Bruno MARTINO, Fabio GUGLIETTA – Introduzione alla crittografia
RSA
•  La prima applicazione pratica basata sulle tecniche di
crittografia a doppia chiave fu sviluppata nel 1978 da
Ronald Rivest, Adi Shamir e Leonard Adleman, che
prenderà il nome di “algoritmo RSA”, dalle iniziali dei
suoi inventori.
•  RSA si basa su numeri primi e funzioni difficilmente
invertibili. Dati due numeri primi, è facile stabilire il
loro prodotto, ma più difficile determinare quali
numeri primi lo hanno prodotto
Bruno MARTINO, Fabio GUGLIETTA – Introduzione alla crittografia
RSA passo 1
•  Alice genera due numeri primi
distinti p e q e li moltiplica tra
di loro ottenendo il numero N
che viene reso pubblico,
mentre p e q devono restare
segreti.
Bruno MARTINO, Fabio GUGLIETTA – Introduzione alla crittografia
RSA passo 2
•  Alice calcola b come funzione di Eulero di N (deve
rimanere segreto):
b = Φ(n) = (p-1) (q-1)
Bruno MARTINO, Fabio GUGLIETTA – Introduzione alla crittografia
RSA passo 3
•  Alice calcola il primo intero e che sia primo con b
(ovvero che non abbia divisori in comune:
MCD(e, b) = 1)
Bruno MARTINO, Fabio GUGLIETTA – Introduzione alla crittografia
RSA passo 4
•  Alice calcola il numero d inverso di e nell'aritmetica
finita di ordine b, che è il più piccolo numero per cui:
(exd) mod b = 1
Bruno MARTINO, Fabio GUGLIETTA – Introduzione alla crittografia
Come lo scompongo?
•  Per trasmettere un messaggio ad Alice, Bob lo
scompone inizialmente in una sequenza di numeri (in
precedenza ci si è accordati riguardo alla modalità di
"traduzione"; potrebbero essere p.es. i codici ASCII dei
singoli caratteri ma così il cifrario degenererebbe in
un banale cifrario monoalfabetico
Bruno MARTINO, Fabio GUGLIETTA – Introduzione alla crittografia
Mi senti?
Bob legge le chiavi pubbliche di Alice N ed e quindi
trasmette i numeri m uno alla volta cifrandoli con la
formula:
c=me mod N
Esempio: per trasmettere il numero 7, Bob calcola:
c = 73 mod 55 = 343 mod 55 = 13
ll numero da trasmettere è quindi 13
Bruno MARTINO, Fabio GUGLIETTA – Introduzione alla crittografia
Forte e chiaro!
Alice usa per elaborare il messaggio la chiave di
decifrazione d (segreta) che permette di recuperare m
grazie alla formula:
m = cd mod N
Bruno MARTINO, Fabio GUGLIETTA – Introduzione alla crittografia
Impicciamoci …
In un esperimento del 1994, coordinato da Arjen
Lenstra dei laboratori Bellcore, per violare una chiave
RSA di 129 cifre, sono stati necessari 8 mesi di lavoro
coordinato effettuato da 600 gruppi di ricerca sparsi
in 25 paesi, che hanno messo a disposizione 1600
macchine da calcolo, facendole lavorare in parallelo
collegate tra loro attraverso Internet
Bruno MARTINO, Fabio GUGLIETTA – Introduzione alla crittografia
SSH 1
•  Quando ci si deve connettere frequentemente ad un server (o
a molti server) tramite SSH, può essere tedioso dover inserire
ogni volta la password
•  Un modo sicuro per aggirare questo problema è basato
sull'autenticazione tramite una coppia di chiavi (privata e
pubblica)
•  Per poter gestire questo processo di autenticazione è
necessario generare una coppia di chiavi (pubblica e privata).
Il comando è: ssh-keygen
Bruno MARTINO, Fabio GUGLIETTA – Introduzione alla crittografia
SSH 2
La chiave RSA così generata
deve essere inserita dentro il
file: .ssh/authorized_keys
•  I dati circolanti tra il client e il server sono codificati, garantendo la loro
confidenzialità
•  Il client e il server si autentificano reciprocamente assicurando che i due
terminali in comunicazione sono effettivamente quelli che ogni parte
crede che siano
Bruno MARTINO, Fabio GUGLIETTA – Introduzione alla crittografia
Secure Sockets
•  SSL (Secure Sockets Layers) è una procedura di sicurizzazione
delle transazioni effettuate via Internet. Lo standard SSL è stato
elaborato da Netscape , in collaborazione con Mastercard, Bank of
America, MCI e Silicon Graphics. Si basa su un processo di
crittografia a chiave pubblica
•  Il sistema SSL è indipendente dal protocollo usato
Bruno MARTINO, Fabio GUGLIETTA – Introduzione alla crittografia
Uso di SSL
In un primo tempo, il client si connette al sito commerciale sicuro
via SSL e richiede l'autenticazione. Il client invia anche la lista dei
crittosistemi che supporta, in ordine decrescente secondo la
lunghezza delle chiavi
Alla ricezione della richiesta il server invia un certificato al client,
contenente la chiave pubblica del server, firmata da un'autorità di
certificazione (CA), nonché il nome del crittosistema in cima alla
lista con il quale è compatibile
Bruno MARTINO, Fabio GUGLIETTA – Introduzione alla crittografia
Qualcosa non torna
•  Molti si chiederanno a cosa è servito parlare ancora di metodi
simmetrici (come il DES) se poi l’introduzione dei metodi a
chiave pubblica come RSA ha risolto brillantemente il problema
dello scambio della chiave
•  Le funzioni matematiche che generano il codice cifrato e quelle
inverse fanno si che questo tipo di crittografia sia molto lento
•  Per questo motivo sono nati sistemi di crittografia misti, che
combinano le due tecniche in modo da fonderne i rispettivi
vantaggi.
Bruno MARTINO, Fabio GUGLIETTA – Introduzione alla crittografia
Sistemi misti
Nei sistemi misti si utilizza la tecnologia a chiave pubblica solo
per comunicare una chiave di sessione
Se due entità A e B devono comunicare in modo sicuro e veloce:
•  A usa la chiave pubblica di B per inviare la chiave di sessione
•  B decifra la chiave di sessione con la propria chiave privata
•  A e B possono comunicare usando la chiave di sessione
Bruno MARTINO, Fabio GUGLIETTA – Introduzione alla crittografia
AES (Rijndael)
•  AES fu annunciato dal NIST (National Institute of Standards and
Technology) come standard nel 2002, dopo molte discussioni e in
seguito ad una competizione, vinta dall’algoritmo Rijndael
•  Gli autori di Rijndael sono i belgi Joan Daemen e Vincent Rijmen
•  AES esiste in tre versioni differenziate dalla lunghezza della chiave:
AES-128, AES-192 e AES-256
•  La cifratura avviene sempre con blocchi di 128 bits
•  AES usa una “substitution permutation network” invece di
una “Feistel network”
http://csrc.nist.gov/archive/aes/rijndael/misc/nissc2.pdf
Bruno MARTINO, Fabio GUGLIETTA – Introduzione alla crittografia
Entangle
Bruno MARTINO, Fabio GUGLIETTA – Introduzione alla crittografia
Meccanica quantistica
•  La crittografia quantistica si basa su idee che hanno origine
dalla fisica quantistica che è in grado di descrivere fenomeni
microscopici; è una teoria scientifica molto accurata
•  Nel 1993 un gruppo di scienziati, Bennett, Brassard,
Crépeau, Josza, Peres e Wooters, propongono di usare
l'entanglement per 'teletrasportare' lo stato di una particella,
per esempio lo stato di polarizzazione di un fotone
•  Questo algoritmo utilizza coppie di fotoni entangled, cioè
fotoni con particolari caratteristiche di correlazione
Bruno MARTINO, Fabio GUGLIETTA – Introduzione alla crittografia
Crittografia quantistica
•  Sperimentalmente, diversi gruppi di fisici sono riusciti a
teletrasportare stati di fotoni, come il gruppo di Zeilinger a
Vienna dove il teletrasporto è avvenuto da una sponda all'altra
del Danubio
•  Questi processi permettono scambiare, tramite un canale
quantistico, una stringa di bit in modo perfettamente sicuro.
Infatti, chiunque provi a intercettare e misurare qualcuno dei
fotoni trasmessi introdurrà certamente un errore
Bruno MARTINO, Fabio GUGLIETTA – Introduzione alla crittografia
Se ascolto perturbo
Bruno MARTINO, Fabio GUGLIETTA – Introduzione alla crittografia