La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Numeri primi ed Numeri primi ed applicazioni nella crittografia Dipartimento di Matematica – S.U.N. Dipartimento di Matematica – S.U.N. Via Vivaldi, 43.

Presentazioni simili


Presentazione sul tema: "Numeri primi ed Numeri primi ed applicazioni nella crittografia Dipartimento di Matematica – S.U.N. Dipartimento di Matematica – S.U.N. Via Vivaldi, 43."— Transcript della presentazione:

1 Numeri primi ed Numeri primi ed applicazioni nella crittografia Dipartimento di Matematica – S.U.N. Dipartimento di Matematica – S.U.N. Via Vivaldi, 43 – 81100 Caserta Via Vivaldi, 43 – 81100 Caserta http://francesco.mazzocca.name e-mail : francesco.mazzocca@unina2.it Anno Accademico 2008/09 Corso di CODICI LINEARI Francesco Mazzocca

2 è oggi il modo più semplice, comodo e veloce di inviare e trasmettere informazioni. Un esperto informatico non ha molte difficoltà nellintercettare, 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! INTERNET

3 Sono al momento immaginabili nuove tecnologie che impediscano ai pirati informatici lintercettazione di informazioni riservate? La risposta è NO! CONCLUSIONE: Non possiamo difenderci usando lhardware. Cerchiamo di farlo usando il software! CONCLUSIONE: Non possiamo difenderci usando lhardware. Cerchiamo di farlo usando il software!

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

5 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 dellinversa di F è semplice se si conosce unopportuna informazione: la chiave. funzioni unidirezionali I numeri primi permettono di definire funzioni unidirezionali difficilefacile Catenaccio asimmetrico

6 La struttura additiva dei numeri naturali è molto semplice : Per costruire i numeri naturali usando laddizione abbiamo bisogno di un solo mattone: 13=1+1+1+1+1+1+1+1+1+1+1+1+1 additiva di N struttura Ogni numero naturale n diverso da zero si scrive come somma di n volte 1. 1

7 struttura Adesso chiediamoci: Adesso chiediamoci: quali sono i mattoni che servono a costruire i numeri naturali usando la moltiplicazione? moltiplicativa di N 2736456789 = 3 x 11 x 1931 x 42943 Ogni numero naturale maggiore di 1 si scrive in unico modo come prodotto di primi, a meno dellordine dei fattori. Ogni numero naturale maggiore di 1 si scrive in unico modo come prodotto di primi, a meno dellordine dei fattori. Risposta: Risposta: i numeri primi. Per costruire i numeri naturali usando la moltiplicazione abbiamo bisogno di infiniti mattoni : 23571113

8 perché i primi si usano in crittografia? Moltiplicare due interi è facile ! 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. La funzione (p,q) pq che ad ogni coppia di primi associa il loro prodotto è unidirezionale. cioé

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

10 RSA-576 - Premio: $10,000 - Cifre decimali: 174 18819881292060796383869723946165043980716356337941 73827007633564229888597152346654853190606065047430 45317388011303396716199692321205734031879550656996 221305168759307650257059 RSA-576 - Premio: $10,000 - Cifre decimali: 174 18819881292060796383869723946165043980716356337941 73827007633564229888597152346654853190606065047430 45317388011303396716199692321205734031879550656996 221305168759307650257059 The RSA Challenge Numbers http://www.rsasecurity.com/rsalabs/challenges/factoring/numbers.html RSA-2048 - Premio: $200,000 - Cifre decimali: 617 25195908475657893494027183240048398571429282126204 03202777713783604366202070759555626401852588078440 69182906412495150821892985591491761845028084891200 72844992687392807287776735971418347270261896375014 97182469116507761337985909570009733045974880842840 17974291006424586918171951187461215151726546322822 16869987549182422433637259085141865462043576798423 38718477444792073993423658482382428119816381501067 48104516603773060562016196762561338441436038339044 14952634432190114657544454178424020924616515723350 77870774981712577246796292638635637328991215483143 81678998850404453640235273819513786365643912120103 97122822120720357 RSA-2048 - Premio: $200,000 - Cifre decimali: 617 25195908475657893494027183240048398571429282126204 03202777713783604366202070759555626401852588078440 69182906412495150821892985591491761845028084891200 72844992687392807287776735971418347270261896375014 97182469116507761337985909570009733045974880842840 17974291006424586918171951187461215151726546322822 16869987549182422433637259085141865462043576798423 38718477444792073993423658482382428119816381501067 48104516603773060562016196762561338441436038339044 14952634432190114657544454178424020924616515723350 77870774981712577246796292638635637328991215483143 81678998850404453640235273819513786365643912120103 97122822120720357 Fattotizzato il 3 dicembre 2003 E la sfida piu grande. Ce ne sono anche altre intermedie!

11 18819881292060796383869723946165043980716356 33794173827007633564229888597152346654853190 60606504743045317388011303396716199692321205 73403879550656996221305168759307650257059 39807508642406493739712550055038649119906436 2342526708406385189575946388957261768583317 X 47277214610743530253622307197304822463291469 5302097116459852171130520711256363590397527 = RSA-576

12 crittografia simmetrica o a chiave segreta La chiave deve essere trasmessa a mittente e destinatario prima dellinizio di ogni comunicazione tra i due Il mittente (per cifrare) e il destinatario (per decifrare) usano la stessa chiave segreta TRE GROSSI INCONVENIENTI In un sistema con molti utenti il numero di chiavi da distribuire è così alto che la loro gestione diventa molto complicata Una buona chiave è molto lunga e vi sono seri problemi di sicurezza per la trasmissione

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

14 Chi vuole inviare un messaggio allutente A deve cifrarlo con la chiave A pu ; il messaggio così cifrato può essere decifrato solo dal A. crittografia asimmetrica o a chiave pubblica Il cifrario è di dominio pubblico e ogni utente A possiede una propria coppia di chiavi (A pu, A pr ) A pu serve per cifrare ed è pubblica A pr serve per decifrare ed è segreta (può essere utilizzata solo dal suo proprietario) Un messaggio cifrato con la chiave A pu può essere decifrato solo e soltanto con la chiave privata A pr

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

16 crittografia asimmetrica o a chiave pubblica A : A pu A A pr A pu (T) trasferisce ad A il testo T cifrando con la chiave pubblica A pu trasferisce ad A il testo T cifrando con la chiave pubblica A pu decifra il testo A pu (T) usando la chiave privata A pr decifra il testo A pu (T) usando la chiave privata A pr A B C D E A pr E pr B pr C pr D pr B : B pu C : C pu D : D pu E : E pu A : A pu

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 luna o laltra 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]

18 algoritmo per cifrare Se l'intero positivo T è un testo in chiaro, il corrispondente testo cifrato C è definito da C=T E modN. il criptosistema RSA 1) N=PQ, P,Q primi molto grandi. (dellordine 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 decifrare Per decifrare C bisogna calcolare C D modN = T. Esempio (a questo punto: distruggere P e Q) generazione delle chiavi E=17 D=2753 A pu =(3233,17), A pr =2753 C=123 17 mod3233=855 cifriamo T=123 C=123 17 mod3233=855 T=855 2753 mod3233=123 decifriamo C=855 T=855 2753 mod3233=123 P=61 Q=53 N=PQ=3233 chiavi : chiavi : A pu =(N,E), A pr =D

19 Un algoritmo per risolvere un problema che dipende da un numero N è polinomiale se richiede un numero di operazioni elementari dellordine di log(N) h, per qualche intero h. Gli algoritmi buoni sono quelli polinomiali La classe dei problemi che possono risolversi con luso di algoritmi polinomiali si denota con P La classe dei problemi che possono risolversi con luso di algoritmi polinomiali si denota con P

20 http://www.cse.iitk.ac.in/news/primality.html Un risultato eccezionale (scoperto nei primi mesi del 2002)

21 da sinistra a destra: Nitin Saxena, Neeraj Kayal e Manindra Agarwal Gli autori del teorema PRIMES IS IN P 1. input: integer n > 1 2.if (n has the form a b with b > 1) then output COMPOSITE 3. r := 2 4.while (r < n) { if (gcd(n,r) is not 1) then output COMPOSITE if (r is prime greater than 2) then { let q be the largest factor of r-1 if (q > 4sqrt(r)log n) and (n (r-1)/q is not 1 (mod r)) then break } r := r+1 } 5. for a = 1 to 2sqrt(r)log n { if ( (x-a) n is not (x n -a) (mod x r -1,n) ) then output COMPOSITE } output PRIME; IL NUOVO TEST DI PRIMALITA

22 Morale: Niente è così pratico come una buona teoria!


Scaricare ppt "Numeri primi ed Numeri primi ed applicazioni nella crittografia Dipartimento di Matematica – S.U.N. Dipartimento di Matematica – S.U.N. Via Vivaldi, 43."

Presentazioni simili


Annunci Google