Lezione su: Introduzione alla crittografia Corso di Codici Lineari.

24
Lezione su: Lezione su: Introduzione alla Introduzione alla crittografia crittografia Corso di Codici Lineari Corso di Codici Lineari

Transcript of Lezione su: Introduzione alla crittografia Corso di Codici Lineari.

Page 1: Lezione su: Introduzione alla crittografia Corso di Codici Lineari.

Lezione su:Lezione su:Introduzione alla Introduzione alla

crittografiacrittografia

Corso di Codici LineariCorso di Codici Lineari

Page 2: Lezione su: Introduzione alla crittografia Corso di Codici Lineari.

è oggi il modo più semplice, comodo e veloce

di inviare e trasmettere informazioni.

Un esperto informatico non ha molte difficoltà nell’intercettare, leggere e a volte

modificare dati che passano da un computer ad un altro.

Abbiamo problemi seri quando i dati intercettati

contengono informazioni riservate come

numeri di carte di credito, password

e ogni altro tipo di “messaggio segreto”!

Abbiamo problemi seri quando i dati intercettati

contengono informazioni riservate come

numeri di carte di credito, password

e ogni altro tipo di “messaggio segreto”!

INTERNET

Page 3: Lezione su: Introduzione alla crittografia Corso di Codici Lineari.

Sono al momento immaginabili nuove tecnologie che impediscano ai “pirati

informatici ” l’intercettazione di informazioni riservate?

La risposta è NO!

CONCLUSIONE:Non possiamo difenderci usando

l’hardware.Cerchiamo di farlo usando il

software!

CONCLUSIONE:Non possiamo difenderci usando

l’hardware.Cerchiamo di farlo usando il

software!

Page 4: Lezione su: Introduzione alla crittografia Corso di Codici Lineari.

Come si nascondono le informazioni

riservate?

Questo si può fare con le funzioni unidirezionalifunzioni unidirezionali

Questo si può fare con le funzioni unidirezionalifunzioni unidirezionali

Bisogna trasformare “facilmente” (cifrarecifrare) il messaggio originale (testo in chiarotesto in chiaro) in uno che apparentemente non abbia alcun senso

(testo cifratotesto cifrato)

Il testo cifrato deve poter essere “facilmente” ritradotto (decifratodecifrato)

nel messaggio originale solo con l’uso di una speciale informazione (chiavechiave)

Page 5: Lezione su: Introduzione alla crittografia Corso di Codici Lineari.

Una funzione unidirezionale F è una funzione biunivoca che si calcola

“facilmente”, mentre è praticamente impossibile calcolare la sua inversa (non esistono algoritmi di tipo polinomiale).

Il calcolo dell’inversa di F è “semplice” se si conosce un’opportuna informazione: la

“chiave”.

funzioni unidirezionali

I numeri primi permettono di

definire funzioni unidirezionali

I numeri primi permettono di

definire funzioni unidirezionali

difficilefacile

Catenaccio asimmetrico

Page 6: Lezione su: Introduzione alla crittografia Corso di Codici Lineari.

perc

hé i

prim

i

si u

sano

in

critt

ogra

f

ia?

Moltiplicare due interi è ”facile” !

Dividere un intero per un altro è ”facile” !

Fattorizzare in primi un intero è “difficile”, a volte “impossibile” !

La funzione La funzione (p,q) pq(p,q) pq

che ad ogni coppia di primi che ad ogni coppia di primi associa il loro prodotto è associa il loro prodotto è

unidirezionale. unidirezionale.

La funzione La funzione (p,q) pq(p,q) pq

che ad ogni coppia di primi che ad ogni coppia di primi associa il loro prodotto è associa il loro prodotto è

unidirezionale. unidirezionale.

cioé

Page 7: Lezione su: Introduzione alla crittografia Corso di Codici Lineari.

?85

1

un semplice esempio di codifica

Messaggi = alcuni numeri primi

Chiavi = alcuni numeri primi

Cifrare = moltiplicare per la chiave

Decifrare = dividere per la chiave

messaggio851:37=23

messaggio23

37

AB

A

851

B

23 37=851

Page 8: Lezione su: Introduzione alla crittografia Corso di Codici Lineari.

RSA-576 - Premio: $10,000 - Cifre decimali: 174188198812920607963838697239461650439807163563379417382700763356422988859715234665485319060606504743045317388011303396716199692321205734031879550656996221305168759307650257059

RSA-576 - Premio: $10,000 - Cifre decimali: 174188198812920607963838697239461650439807163563379417382700763356422988859715234665485319060606504743045317388011303396716199692321205734031879550656996221305168759307650257059

The RSA Challenge Numbers

http://www.rsasecurity.com/rsalabs/challenges/factoring/numbers.html

RSA-2048 - Premio: $200,000 - Cifre decimali: 617 25195908475657893494027183240048398571429282126204032027777137836043662020707595556264018525880784406918290641249515082189298559149176184502808489120072844992687392807287776735971418347270261896375014971824691165077613379859095700097330459748808428401797429100642458691817195118746121515172654632282216869987549182422433637259085141865462043576798423387184774447920739934236584823824281198163815010674810451660377306056201619676256133844143603833904414952634432190114657544454178424020924616515723350778707749817125772467962926386356373289912154831438167899885040445364023527381951378636564391212010397122822120720357

RSA-2048 - Premio: $200,000 - Cifre decimali: 617 25195908475657893494027183240048398571429282126204032027777137836043662020707595556264018525880784406918290641249515082189298559149176184502808489120072844992687392807287776735971418347270261896375014971824691165077613379859095700097330459748808428401797429100642458691817195118746121515172654632282216869987549182422433637259085141865462043576798423387184774447920739934236584823824281198163815010674810451660377306056201619676256133844143603833904414952634432190114657544454178424020924616515723350778707749817125772467962926386356373289912154831438167899885040445364023527381951378636564391212010397122822120720357

Fattotizzato il 3

dicembre 2003

E’ la sfida piu’ grande.

Ce ne sono anche altre

intermedie!

Page 9: Lezione su: Introduzione alla crittografia Corso di Codici Lineari.

18819881292060796383869723946165043980716356337941738270076335642298885971523466548531906060650474304531738801130339671619969232120573403879550656996221305168759307650257059

398075086424064937397125500550386491199064362342526708406385189575946388957261768583317

X

472772146107435302536223071973048224632914695302097116459852171130520711256363590397527

=

RSA-576RSA-576

Page 10: Lezione su: Introduzione alla crittografia Corso di Codici Lineari.

Il mittente (per cifrare) eil destinatario (per

decifrare)usano la stessa chiave

segreta

crittografia simmetrica o a chiave segreta

Page 11: Lezione su: Introduzione alla crittografia Corso di Codici Lineari.

Crittosistemi Crittosistemi simmetrici simmetrici

DDMM

fm(DD)

fn(DD)

fm

fn

(D,M,K,{(D,M,K,{fm : : mK})K})

D D è l’insieme dei messaggi in chiaro

M M è l’insieme dei messaggi in codice

K K è l’insieme delle chiavi

Un crittosistema simmetrico è una quaterna

ove

fm è la funzione (unidirezionale) di codificarelativa alla chiave m

Page 12: Lezione su: Introduzione alla crittografia Corso di Codici Lineari.

Mittente e destinatario devono scambiarsi una chiave prima dell’inizio di ogni comunicazione

La crittografia simmetrica presenta tre grossi inconvenienti:

In un sistema con molti utenti il numero di chiavi da scambiarsi a coppie è così alto che la gestione di queste operazioni diventa molto complicata

Una buona chiave è molto lunga e vi sono seri problemi di sicurezza per la trasmissione

Page 13: Lezione su: Introduzione alla crittografia Corso di Codici Lineari.

La sicurezza di un crittosistema non dipende dalla segretezza e

dalla complessità degli algoritmi per cifrare ma

solo dalla segretezza delle chiavi

il principio di KERCKOFFS

Page 14: Lezione su: Introduzione alla crittografia Corso di Codici Lineari.

crittografia asimmetrica o a chiave pubblica

Gli algoritmi per cifrare e decifrare sono di dominio pubblico e ogni utente A possiede una propria coppia di chiavi (Apu , Apr)

Apu serve per cifrare ed è pubblica

Apr serve per decifrare ed è segreta (può essere utilizzata solo dal suo proprietario)

Un messaggio cifrato T con la chiave Apu può essere decifrato solo e

soltanto con la chiave privata Apr : Apr (Apu(T))=T

Chi vuole inviare un messaggio all’utente A deve cifrarlo con la chiave Apu ; il messaggio così cifrato può essere decifrato solo dal A.

Page 15: Lezione su: Introduzione alla crittografia Corso di Codici Lineari.

Non occorre far viaggiare in segreto le chiavi per cifrare, basta far conoscere ad ogni

utente le chiavi pubbliche degli altri.

crittografia asimmetrica o a chiave pubblica

La crittografia asimmetrica permette una gestione semplice e sicura delle

chiavi, in accordo col principio di Kerckoffs.

Page 16: Lezione su: Introduzione alla crittografia Corso di Codici Lineari.

crittografia asimmetrica o a chiave pubblica

A : Apu

A Apr

Apu (T)

Un utente trasferisce ad A il testoT cifrando con la chiave pubblica Apu

Un utente trasferisce ad A il testoT cifrando con la chiave pubblica Apu

A decifra il testo Apu (T) usando la chiave privata Apr : T = Apr (Apu (T) )

A decifra il testo Apu (T) usando la chiave privata Apr : T = Apr (Apu (T) )

A

B

C

D

EApr

Epr

Bpr

Cpr

Dpr

B : Bpu

C : Cpu

D : Dpu

E : Epu

A : Apu

utenzautenza

Page 17: Lezione su: Introduzione alla crittografia Corso di Codici Lineari.

il crittosistema RSA

Nel 1977 tre persone diedero il più spettacolare contributo alla crittografia a chiave pubblica: Ronald Rivest, Adi Shamir e Leonard Adleman … raccolsero la sfida di produrre un crittosistema a chiave pubblica completo. Il lavoro durò alcuni mesi durante i quali Rivest proponeva strade possibili. Adleman le attaccava e Shamir faceva o l’una o l’altra cosa.

Nel maggio del 1977 essi furono ricompensati dal successo … Avevano scoperto come una semplice parte della teoria classica dei numeri poteva essere usata per risolvere il problema.

[W.Diffie, The first ten years of public-key cryptography, Proceedings of IEEE 76 (5), 1988, 560-577]

Page 18: Lezione su: Introduzione alla crittografia Corso di Codici Lineari.

algoritmo per cifrarealgoritmo per cifrareSe l'intero positivo T è un testo in chiaro, il corrispondente testo cifrato C è definito da C=TE modN .

il crittosistema RSAil crittosistema RSA

1) N=PQ, P,Q primi molto grandi. (dell’ordine di 1024 bit)2) E>1 , intero minore di N e primo con (P-1)(Q-1).

3) DE=1 mod (P-1)(Q-1).

algoritmo per decifrarealgoritmo per decifrarePer decifrare C bisogna calcolare CD modN = T .

EsempioEsempio

(a questo punto: distruggere P e Q)

generazione delle generazione delle chiavichiavi

E=17 D=2753E=17 D=2753

Apu=(3233,17) , Apr=2753

cifriamo T=123

C=123C=1231717

mod3233=855mod3233=855decifriamo C=855

T=855T=85527532753

mod3233=123mod3233=123

P=61 Q=53 P=61 Q=53 N=PQ=3233N=PQ=3233

chiavi : chiavi : Apu=(N,E) , Apr =D

Page 19: Lezione su: Introduzione alla crittografia Corso di Codici Lineari.

Un algoritmo per risolvere un problema che dipende da un numero N è polinomiale se richiede un numero di

operazioni elementari dell’ordine di log(N)h, per qualche intero h.

Un algoritmo per risolvere un problema che dipende da un numero N è polinomiale se richiede un numero di

operazioni elementari dell’ordine di log(N)h, per qualche intero h.

Gli algoritmi “buoni” sono quelli polinomiali

Gli algoritmi “buoni” sono quelli polinomiali

Page 20: Lezione su: Introduzione alla crittografia Corso di Codici Lineari.

Il problema Il problema dell’autenticazionedell’autenticazione

In un sistema di comunicazione un utente A riceve un messaggio da un altro B.

Come può fare A ad essere

ragionevolmente sicuro che il messaggio ricevuto è stato effettivamente inviato da

B?

Non è richiesta la segretezza del messaggio

I crittosistemi non servono soltanto a nascondere le informazioni!

Un esempio:

Page 21: Lezione su: Introduzione alla crittografia Corso di Codici Lineari.

una soluzione del problema una soluzione del problema dell’autenticazione:dell’autenticazione:

gli schemi di autenticazionegli schemi di autenticazione

con un numero elevato di chiavi e con la proprietà che, per ogni messaggio T, esiste un unico testo in chiaro C tale che fm(C)=T, per qualche

m K (per decifrare un messaggio non è necessaria alcuna chiave!).Gli utenti A e B concordano una chiave segreta m.

Quando A riceve il messaggio T da B, non deve fare altro che controllare se T appartiene a fm(DD).

DDMM

fm(DD)

fn(DD)

fm

fn

Si considera un criptosistema

(D,M,K,{(D,M,K,{fm : : mK})K})

Il metodo funziona perché, essendoci molte possibili chiavi, se qualcuno cambia T in un altro messaggio T’, senza conoscere la chiave segreta m, ha una piccolissima probabilità che T’ appartenga a fm(DD).

Page 22: Lezione su: Introduzione alla crittografia Corso di Codici Lineari.

Sia k il numero delle chiavi di uno schema di autenticazione (D,M,K,(D,M,K,{{fm : : mK})K}) . Allora, per ogni testo in chiaro CDD , esistono al più messaggi T MM tali che fm (C)=T,(C)=T, per qualcheper qualche mKK .

k

Teorema di Gilbert, MacWilliams, SloaneTeorema di Gilbert, MacWilliams, Sloane

un risultato un risultato importanteimportante

In altre parole, la probabilità che un attacco ad un messaggio autenticato

vada a buon fine è sempre maggiore o uguale ak1/

Page 23: Lezione su: Introduzione alla crittografia Corso di Codici Lineari.

uno schema di autenticazione uno schema di autenticazione perfettoperfetto

DDMM

fm(DD)

fn(DD)

fm

fn Lavoriamo in un piano proiettivo finito d’ordine q. Abbiamo q2+q+1 punti, q2 +q+1 rette, ogni punto appartienea q+1 rette e ogni retta ha q+1 punti.

D = punti di una retta d (abbiamo q+1 testi in chiaro)M = rette diverse da d (abbiamo q2+q messaggi cifrati)K = punti non appartenenti alla retta d (abbiamo q2 chiavi)Se CD e mK, poniamo fm(C) = retta per C ed m .

La probabilità che una retta (d) per C passi anche per m è 1/q, ove q è la radice quadrata del numero delle chiavi.

dC

m

fm(C)

Il nostro schema è perfetto !

Page 24: Lezione su: Introduzione alla crittografia Corso di Codici Lineari.

bibliografia

Luigia Berardi, Albrecht Beutelspacher, Crittologia, FrancoAngeli, Milano, 1996.

Albrecht Beutelspacher, Ute Rosenbaum, Projective Geometry, Cambridge Univ.Press, Cambridge 1998.

Alessandro Languasco, Alessandro Zaccagnini, Introduzione alla crittografia, Hoepli, Milano, 2004.

Dominic Welsh, Codes and Cryptography, Oxford Science Publications, Clarendon Press, Oxford, 1988.