Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
CRITTOGRAFIA
1
Goals
• Learn what problems can (and cannot) be addressed using cryptography
• Become convinced that:
– Designing a decent cryptosystem is extremely – Designing a decent cryptosystem is extremely difficult
– Using cryptography requires building a substantial (but easily overlooked) infrastructure
– Wide-spread use of cryptography requires overcoming legal and social barriers
2
Esiste un cifrario perfetto?
• Dobbiamo distinguere tra
– perfect secrecy: Confidenzialità sempre garantita
– computational secrecy: Confidenzialità garantita
solo se le risorse dell’avversario sono limitatesolo se le risorse dell’avversario sono limitate
• Robustezza
– Conquistata sul campo
– Relazione con problemi matematici difficili
3
Esiste un cifrario perfetto?
• What does it mean to comunicate in “perfect secrecy”?– As long as information is finite, impossible to attain
• One can always “guess” the contents of n bits that are communicated with finite (non-zero) that are communicated with finite (non-zero) probability 1/2n
• “Perfect secrecy” has to be interpreted as: can information be communicated such that its contents are revealed with probability no better than guessing?
4
Alcune definizione
• Crittografia: progetto di cifrari sicuri ed
efficienti
• Crittoanalisi: metodi, strumenti e tecniche
per attaccare i cifrari (valutare la loro per attaccare i cifrari (valutare la loro bontà)
• Crittologia: Crittografia + Crittoanalisi
5
Lo scenario
C: m---> c D: c--->m
6
Cifratura e decifrazione
7
Cifratura e decifrazione: terminologia
• plaintext: input alla funzione di cifratura
• ciphertext: output dalla funzione di cifratura
• secret key (symmetric) cryptography:
– Le chiavi di cifratura e decifrazione sono le stesse– Le chiavi di cifratura e decifrazione sono le stesse
– Funzioni C e D sono spesso le stesse
• public key (asymmetric) cryptography:
– Le chiavi di cifratura e decifrazione sono diverse
– Funzioni C e D sono diverse
8
L’intruso X
• Motivo: curiosità, spionaggio, malvagità, …
• Ruolo– Passivo: si limita ad ascoltare
– Attivo: può inserirsi nella comunicazione o – Attivo: può inserirsi nella comunicazione o modificarla
• Informazioni in suo possesso:– Cipher-text attack: serie di crittogrammi c1,..., cn
– Known plain-text attack: collezione di coppie (mi, ci)
9
Definizioni e notazione
• Funzione di cifratura
– Ck(m) = c cifratura di m con chiave k
• Funzione di decifrazione
– Dk(c) = m decifrazione di c con chiave k– Dk(c) = m decifrazione di c con chiave k
• Matematicamente Dk è l’inversa di Ck:
– Dk(Ck(m)) = m
– Se Dk(Ck(m)) = Ck(Dk(m)) = m, allora commutativa
10
Come realizzare C e D?
Due grandi famiglie:
• Cifrari per uso ristretto:
– La sicurezza si basa sul fatto che C e D sono tenute
nascostenascoste
– quindi non è previsto l’uso di una chiave segreta
• Cifrari per uso generale:
– C e D sono note a tutti
– La sicurezza si basa sull’utilizzo di una chiave segreta nota solamente al mittente e al destinatario
11
Chiave segreta: una metafora fisica
12
Cifrari simmetrici o a chiave privata
• DES (Data Encryption Standard)– 64 bits in/out, 56 bits key
– Computationally (in)secure. $1M tries all DES keys in 7 hrs using 1993 hardware cracking machine
• Triple-DES
AES (Advanced Encryption Standard) “Rijndael”• AES (Advanced Encryption Standard) “Rijndael”– Variable block length & variable key length (128, 192, 256)
• IDEA (International Data Encryption Algorithm)– 64 bits in/out, 128 bit key
– Computationally secure: at 1 billion key-tries/sec/processor, system of a billion processors requires 1013 years to try every possible key (1000x longer than age of the universe)
13
Cifrari simmetrici
• Ruolo di Ck e Dk completamente interscambiabile
• Mittente ~ Destinatario:– Conoscono la stessa chiave k– Entrambi possono cifrare e decifrare– Incontro segreto per accordarsi sulla chiave– Incontro segreto per accordarsi sulla chiave– Segretezza della chiave dipende da entrambi– Cifratura e decifrazione sono molto efficienti in pratica
• Quali sono i difetti di questi cifrari?– Occorre scambiarsi la chiave– Per O(n) utenti, abbiamo bisogno di O(n²) chiavi segrete
– Troppe per essere memorizzate e scambiate segretamente
14
Cifrari asimmetrici o a chiave pubblica
• Is it possible to exchange information in secrecy without having to first agree on a key?
• Anno 1976: punto di svolta! (Diffie-Hellman• Anno 1976: punto di svolta! (Diffie-Hellmane Merkle)
• Passo in avanti sostanziale:
– Dal punto di vista teorico
– Dal punto di vista economico
15
Chiave pubblica: una metafora fisica
16
Chiave pubblica: una metafora fisica
• Is it possible to exchange information in secrecy without having to first agree on a key?– A has a private lock, LockA, and its
corresponding key KA
corresponding key KA
– A -> B: Send (a copy of) open LockA to B
– B: Put the secret in a chest and secure with LockA by closing it
– B -> A: Send chest to A
– A: Use KA to open LockA , remove secret
17
Cifrari asimmetrici o a chiave pubblica
• Obiettivo: rompere il legame tra Ck e Dk
– Chiunque sappia come cifrare non deve sapere come decifrare
– Chiave k scomposta in due parti k[priv], k[pub]:
• La chiave k viene creata da Dest• La chiave k viene creata da Dest
• k[priv] tenuta segreta da Dest e usata per ottenere Dk[priv]
• k[pub] resa pubblica da Dest e usata da tutti per
cifrare messaggi verso Dest
• Difficile andare da k[pub] a k[priv] !!
• Concetto funzione “one-way trap-door”:– Difficile andare da Ck[pub] a Dk[priv] (senza k[priv]) !
18
Funzioni One-way con trapdoor
• Funzioni facili da calcolare,
• difficili da invertire,
• a meno che ... non si conosca qualche • a meno che ... non si conosca qualche informazione aggiuntiva ...
19
Funzioni One-way con trapdoor
• Lucchetto:
– è facile da chiudere
è difficile da aprire– è difficile da aprire
– se non si possiede la chiave
20
Funzioni One-way con trapdoor
• Cassetta delle lettere:
– è facile imbucare una lettera
– è difficile estrarre una lettera– è difficile estrarre una lettera
– se non si possiede la chiave
21
Panacea delle comunicazioni segrete?
• Cifrari asimmetrici sono più costosi !• Sistemi ibridi = asimmetrici + simmetrici !!
– Mitt e Dest scelgono “pubblicamente” una chiave “segreta” K utilizzando un cifrario asimmetrico
– Mitt e Dest comunicano con un cifrario simmetrico basato su K
– K viene sostituita più volte nel corso di una comunicazione (session)
– K viene sostituita più volte nel corso di una comunicazione (session)
• Lentezza degli asimmetrici incontrata solo nello scambio sporadico delle session-key
• Incontro face-to-face per scambio chiavi segrete (nei simmetrici) aggirato attraverso l’uso dei cifrari asimmetrici per raggiungere l’accordo
• N2 chiavi segrete (nei simmetrici) nascoste dall’uso delle session-key (usa e getta)
22
Proprietà di crittografia
• Confidenzialità è l’unico requisito dei sistemi crittografici moderni?
• Oggigiorno se ne richiedono altri 3:– Integrità: Deve essere possibile per Dest stabilire che il
messaggio ricevuto non ha subito modifiche parziali o messaggio ricevuto non ha subito modifiche parziali o totali (sostituzione)
– Autenticazione: Deve essere possibile per Dest accertare che il messaggio ricevuto proviene proprio da Mitt
– Non-repudiation: Mitt non può sottrarsi dall’ammettere che è stato lui a spedire il messaggio, e Dest può convincere una terza persona (giudice) che questo è il caso (ottenuta con l’uso delle Firme Elettroniche)
23
CIFRARI STORICI
24
Prologo
• Crittografia manuale
• Sono note tecniche statistiche per forzarli!
• Nota:• Nota:
– Messaggi e crittogrammi composti di lettere
– Chiave segreta: esiste oppure no (degenere)
25
Cifrario di Cesare
26
Cifrario a sostituzione
• Ammettiamo tutte le possibili permutazioni dell’alfabeto– sono (26! – 1), un numero spropositatamente
grande!
• Chiave k = <BFRULMZQWEA...> = una • Chiave k = <BFRULMZQWEA...> = una permutazione
• Questo cifrario è sicuro? No, attacco statistico– Istogrammi di frequenza delle lettere nelle frasi in
italiano
– Istogrammi di frequenza delle lettere nel crittogramma
Burstnet informatica © 27
Cifrario polialfabetico
• Usa più cifrari a sostituzione seconda la posizione delle lettere nel messaggio in chiaro
– Monoalfabetico ogni |k| caratteri– Monoalfabetico ogni |k| caratteri
– Attacco statistico possibile, ma difficile
28
Cifrario poligramma
• Invece di sostituire singole lettere nel messaggio in chiaro, sostituire blocchi di lettere
• Esempio (blocchi da 3)– AAA -> SOM
– AAB -> PLW
– ABA -> RTQ
– ABB -> SLL
– …
• Nasconde informazione sulla frequenza di singole lettere e di due lettere
29
Cifrario a trasposizione
• Maintain the same set of letters in the cyphertext as in the plaintext but change their order
• Can be repeated multiple times
• Basis for “rotor machines” such as Enigma and Purple that were used during World War IIthat were used during World War II
• In general, transposition is a permutation of the letters
• With a given period (7)
• May be expensive to implement (memory)
• Attacks based on frequency can reveal the language
• Large periods make attacks difficult
30
CIFRARI PERFETTI: ONE-TIME PAD
31
One-time pad: esempio
Burstnet informatica © 32
Pregi e difetti
• Se ogni bit della chiave è generato casualmente, allora conoscere un bit del crittogramma non fornisce nessuna informazione aggiuntiva sul corrispondente bit del messaggio: cifrario perfettodel messaggio: cifrario perfetto
• La chiave (pad):– è lunga (quanto il messaggio)
– si consuma (one-time)
– occorre scambiarsela
33
DES:DATA ENCRYPTION STANDARD
34
Un po’ di storia…
• Nel 1972, l’NBS (National Bureau of Standards. OggiNIST: National Institute of Standards and Technology) iniziò un programma per proteggere le comunicazioni non classificate
• Lo scenario era interessante:– NSA (National Security Agency) disponeva di molte
conoscenze in materia di cifrari e metodi di decrittazioneconoscenze in materia di cifrari e metodi di decrittazione– Esistevano molti prodotti pressoché oscuri, non certificati e
non compatibili
• Nel 1973, l’NBS pubblicò un “call for proposals”:– Sistema a chiave segreta (certificazione e chiarezza)– Realizzabile in hardware (compatibilità)
• Bando andò pressoché deserto
35
… ancora un po’
• In un bando successivo IBM propose un sistema simile al suo prodotto Lucifer (operazioni logiche su gruppi di bit)
• Poco dopo NSA certificò Lucifer con il nome di DES: fece commenti e propose variazioni– Chiave ridotta da 128 bit a 64 bit
Modifiche significative alla funzione S-box– Modifiche significative alla funzione S-box
• Diverse agenzie replicarono in modo allarmato !!• Dopo alcune indagini il DES fu certificato e reso
pubblico nel 1977• Primo esempio di cifrario robusto (con certificazione
NSA) che i ricercatori potevano studiare• È stato certificato pressoché ogni 5 anni, dal 1998 non è
più considerato sicuro. Ad esso si preferisce il Triplo-DES
36
Caratteristiche principali di DES
• Codifica Simmetrica
• Codifica a blocchi
• Blocco = 64 bit• Blocco = 64 bit
• Chiave = 64 Bit (solo 56 usati, altri 8 per parità)
37
Operazioni di base
• Permutazione
• Sostituzione
• Espansione
• Contrazione• Contrazione
• Shift Circolare (destro e sinistro)
38
Permutazioni
39
Sostuzione
40
Espansione
41
Contrazione
42
Scelta permutata
43
DES Overview
44
RSA:RIVEST, SHAMIR, ADELMAN
45
E’ necessaria la chiave segreta?
• A manda a B il suo lucchetto aperto
• B chiude lo scrigno con il lucchetto ricevuto da A e glielo spedisce
• A riceve lo scrigno e lo apre !!!• A riceve lo scrigno e lo apre !!!
46
Funzioni one-way con trapdoor
• Un lucchetto è una funzione one-way con trapdoor !
• Infatti tutti possono chiudere un lucchetto pur senza possedere la chiavepur senza possedere la chiave
• Nessuno può aprire un lucchetto senza avere la chiave
• La cassetta delle lettere è un’altra funzione one-way con trapdoor
47
Chiave pubblica
• Per ottenere un protocollo a chiave pubblica occorre trovare una funzione matematica one-way con trapdoor!
• Cioè una funzione facile da calcolare e • Cioè una funzione facile da calcolare e difficile da invertire a meno di possedere qualche informazione aggiuntiva (chiave)
• La Teoria dei numeri ci viene in aiuto…
48
RSA
• Generazione delle chiavi
• Codifica. Encryption: C(m)
• Decodifica. Decryption: D(c)• Decodifica. Decryption: D(c)
49
RSA: generazione delle chiavi
Scelgo due numeri primi grandi p, q
Calcolo n = pq
φ(n) = (p-1) * (q-1)
Scelgo e minore di n tale per cui GCD(e, φ(n)) = 1Scelgo e minore di n tale per cui GCD(e, φ(n)) = 1
Calcolo d tale per cui dxe mod φ(n) = 1
Chiave Pubblica = (e,n)
Chiave Privata = (d,n)
50
RSA: encryption
C(m) = me mod n
51
RSA: decryption
D(c) = cd mod n
52