La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Corso di Codici Lineari Lezione su: Introduzione alla crittografia

Presentazioni simili


Presentazione sul tema: "Corso di Codici Lineari Lezione su: Introduzione alla crittografia"— Transcript della presentazione:

1 Corso di Codici Lineari Lezione su: Introduzione alla crittografia

2 è oggi il modo più semplice, comodo e veloce
INTERNET è 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”!

3 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!

4 Questo si può fare con le funzioni unidirezionali
Come si nascondono le informazioni riservate? Bisogna trasformare “facilmente” (cifrare) il messaggio originale (testo in chiaro) in uno che apparentemente non abbia alcun senso (testo cifrato) Il testo cifrato deve poter essere “facilmente” ritradotto (decifrato) nel messaggio originale solo con l’uso di una speciale informazione (chiave) Questo si può fare con le funzioni unidirezionali

5 funzioni unidirezionali
difficile facile Catenaccio asimmetrico funzioni unidirezionali 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”. I numeri primi permettono di definire funzioni unidirezionali

6 che ad ogni coppia di primi associa il loro prodotto è unidirezionale.
Moltiplicare due interi è ”facile” ! perché i primi si usano in crittografia? Dividere un intero per un altro è ”facile” ! Fattorizzare in primi un intero è “difficile”, a volte “impossibile” ! La funzione (p,q) pq che ad ogni coppia di primi associa il loro prodotto è unidirezionale. cioé

7 un semplice esempio di codifica
37 A B Messaggi = alcuni numeri primi Chiavi = alcuni numeri primi Cifrare = moltiplicare per la chiave Decifrare = dividere per la chiave messaggio 851:37=23 messaggio 23 851 B A ? 851 23 37=851

8 Fattotizzato il 3 dicembre 2003
The RSA Challenge Numbers RSA Premio: $10,000 - Cifre decimali: 174 Fattotizzato il 3 dicembre 2003 RSA Premio: $200, Cifre decimali: 617 E’ la sfida piu’ grande. Ce ne sono anche altre intermedie!

9 RSA-576 = X

10 crittografia simmetrica o a chiave segreta
Il mittente (per cifrare) e il destinatario (per decifrare) usano la stessa chiave segreta

11 Crittosistemi simmetrici
fm fm(D) D Crittosistemi simmetrici M fn fn(D) Un crittosistema simmetrico è una quaterna (D,M,K,{fm : mK}) ove D è l’insieme dei messaggi in chiaro M è l’insieme dei messaggi in codice K è l’insieme delle chiavi fm è la funzione (unidirezionale) di codifica relativa alla chiave m

12 La crittografia simmetrica presenta tre grossi inconvenienti:
 Mittente e destinatario devono scambiarsi una chiave prima dell’inizio di ogni comunicazione  Una buona chiave è molto lunga e vi sono seri problemi di sicurezza per la trasmissione  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

13 il principio di KERCKOFFS
La sicurezza di un crittosistema non dipende dalla segretezza e dalla complessità degli algoritmi per cifrare ma solo dalla segretezza delle chiavi

14 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.

15 crittografia asimmetrica o a chiave pubblica
La crittografia asimmetrica permette una gestione semplice e sicura delle chiavi, in accordo col principio di Kerckoffs. Non occorre far viaggiare in segreto le chiavi per cifrare, basta far conoscere ad ogni utente le chiavi pubbliche degli altri.

16 crittografia asimmetrica o a chiave pubblica
D E Apr Epr Bpr Cpr Dpr B : Bpu C : Cpu D : Dpu E : Epu A : Apu utenza Un utente trasferisce ad A il testoT cifrando con la chiave pubblica Apu A : Apu A Apr Apu (T) A decifra il testo Apu (T) usando la chiave privata Apr : T = Apr (Apu (T) )

17 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, ]

18 generazione delle chiavi
il crittosistema RSA generazione delle chiavi 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). Esempio 3) DE=1 mod (P-1)(Q-1). (a questo punto: distruggere P e Q) P=61 Q=53 N=PQ=3233 E=17 D=2753 chiavi : Apu=(N,E) , Apr =D algoritmo per cifrare Se l'intero positivo T è un testo in chiaro, il corrispondente testo cifrato C è definito da C=TE modN . Apu=(3233,17) , Apr=2753 cifriamo T=123 C=12317 mod3233=855 decifriamo C=855 T= mod3233=123 algoritmo per decifrare Per decifrare C bisogna calcolare CD modN = T .

19 Gli algoritmi “buoni” sono quelli polinomiali
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.

20 Il problema dell’autenticazione
I crittosistemi non servono soltanto a nascondere le informazioni! Un esempio: Il problema dell’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

21 Si considera un criptosistema
una soluzione del problema dell’autenticazione: gli schemi di autenticazione Si considera un criptosistema fm fm(D) D M fn fn(D) (D,M,K,{fm : mK}) 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(D). 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(D).

22 un risultato importante
Teorema di Gilbert, MacWilliams, Sloane Sia k il numero delle chiavi di uno schema di autenticazione (D,M,K,{fm : mK}) . Allora, per ogni testo in chiaro CD , esistono al più messaggi T M tali che fm (C)=T, per qualche mK . In altre parole, la probabilità che un attacco ad un messaggio autenticato vada a buon fine è sempre maggiore o uguale a 1/

23 uno schema di autenticazione perfetto
fm(C) fm fm(D) m D M d fn fn(D) C Lavoriamo in un piano proiettivo finito d’ordine q. Abbiamo q2+q+1 punti, q2 +q+1 rette, ogni punto appartiene a 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 CD e mK, 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. Il nostro schema è perfetto !

24 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.


Scaricare ppt "Corso di Codici Lineari Lezione su: Introduzione alla crittografia"

Presentazioni simili


Annunci Google