una possibile funzione unidirezionale

Documenti analoghi
una possibile funzione unidirezionale

una possibile funzione unidirezionale

una possibile funzione unidirezionale

funzione φ di Eulero, o funzione toziente è definita sugli interi positivi φ(n) è il numero di interi positivi n che sono coprimi con n

funzione φ di Eulero, o funzione toziente è definita sugli interi positivi φ(n) è il numero di interi positivi n che sono coprimi con n

una possibile funzione unidirezionale

una possibile funzione unidirezionale

una possibile funzione unidirezionale

sia G un gruppo ciclico di ordine n, sia g un generatore di G

logaritmo discreto come funzione unidirezionale

si cerca di scegliere e non troppo grande e tale che nella scrittura binaria di e ci siano pochi 1 e piccolo = cifratura più veloce

(G, ) un gruppo moltiplicativo di ordine n l ordine di un elemento g G, o(g), è il minimo intero positivo m tale che g m = 1

sia G un gruppo ciclico di ordine n, sia g un generatore di G

sia G un gruppo ciclico di ordine n, sia g un generatore di G bisogna determinare l unico intero x con 1 x n 1 tale che g x = y

da chi proviene un messaggio?

schema di firma definizione formale

Fattorizzazione di interi e crittografia

Teoria dei numeri e Crittografia: lezione del 26 ottobre 2011

da chi proviene un messaggio?

DIARIO DEL CORSO DI TEORIA DEI NUMERI E CRITTOGRAFIA. (41 ore complessive di lezione)

problema del logaritmo discreto

idea della crittografia a chiave pubblica

da chi proviene un messaggio?

sia G un gruppo ciclico di ordine n, sia g un generatore di G bisogna determinare l unico intero x con 1 x n 1 tale che g x = y

crittografia a chiave pubblica

Number Theory. Teoria dei numeri. Teorema della divisione. Congruenze mod n

Number Theory. Teoria dei numeri. Teorema della divisione. Corso di Sicurezza su reti Concetti preliminari per RSA

Teoria dei numeri. Number Theory. Congruenze mod n. Teorema della divisione. Concetti preliminari per RSA

crittografia a chiave pubblica

Cifrario di Rabin. Chiara Gasparri

Teoria dei Numeri. Number Theory. Teoria dei numeri. Teorema della divisione. Cifrari asimmetrici più comuni basati sulla Teoria dei Numeri

Crittografia ed Aritmetica Modulare VI incontro

Il Test di Primalità Miller-Rabin

crittografia a chiave pubblica

Teoria dei Numeri. Number Theory. Teoria dei numeri. Teorema della divisione. Cifrari asimmetrici più comuni basati sulla Teoria dei Numeri

NUMERI PRIMI E CRITTOGRAFIA

Gregorio D Agostino. 11 Aprile 2017

Crittografia e sicurezza delle reti. 1. Classi complessità probabilistiche e OWF 2. Test primalità

Dunque k vale all incirca log n: precisamente k = [log n] + 1.

Gregorio D Agostino. 6 Aprile 2017

Corso di Crittografia Prof. Dario Catalano. Primitive Asimmetriche

idea della crittografia a chiave pubblica

Aritmetica modulare, numeri primi e crittografia

RSA e firma digitale

ISTITUZIONI DI ALGEBRA SUPERIORE ESAME

idea della crittografia a chiave pubblica

A cosa serve la crittografia? La crittografia serve ad aiutare due utenti, Alice e Bob, a comunicare in modo sicuro...

Crittografia simmetrica (a chiave condivisa)

Crittografia. Crittosistemi a Chiave Pubblica. Corso di Laurea Specialistica. in Informatica

I Numeri Primi. Università degli Studi di Milano Polo Didattico e di Ricerca di Crema. Prof.ssa Laura Citrini

Esempi di insiemi infiniti. Un numero p 1 si dice primo se è divisibile solo per 1 e per se stesso.

Fattorizzazione e Test di Primalità con Curve Ellittiche

NUMERI E CRITTOGRAFIA. Carlo Toffalori (Camerino) Scuola Estiva Mathesis Telese Terme, 28 luglio 2015

Progetto Lauree Scientifiche Crittografia V incontro

Crittografia ed Aritmetica Modulare IV incontro

Soluzioni esercizi sul criterio di Pocklington & cenni all algoritmo di Goldwasser-Kilian.

Appunti di Teoria dei numeri e algebra modulare

Esercizi. 9 giugno n Z ) ;

E necessaria la chiave segreta? RSA. Funzioni One-way con Trapdoor. Un secondo protocollo

Temi di Aritmetica Modulare

NUMERI PRIMI E TEORMA FONDAMENTALE DELL ARITMETICA Definizione 1. Sia p Z, p ±1. Si dice che p è primo se

UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Laurea in Matematica CR410 - Crittografia - A.A. 2010/2011. II Esonero - 6 Giugno Tot.

ALGEBRA I: SOLUZIONI TERZA ESERCITAZIONE 11 aprile 2011

Il Ricevente comunica pubblicamente una chiave e. Il Mittente codifica il messaggio usando la funzione f(m, e) = C e

Lezione 4. Problemi trattabili e soluzioni sempre più efficienti. Gianluca Rossi

Il mistero dei numeri primi

Dal messaggio a sequenze di numeri

PRIMI AL NOVANTA PER CENTO. Carlo Toffalori, Camerino Scuola Estiva, Castellammare di Stabia Luglio 2018

DIARIO DEL CORSO DI ALGEBRA A A.A. 2015/16 DOCENTE: ANDREA CARANTI

a p a (p) (a + 1) p = i=0 sono noti come coefficienti binomiali 2 e sono numeri interi (a + 1) p a p + 1 (p) (a + 1) p a + 1 (p)

DIARIO DEL CORSO DI ALGEBRA A.A. 2009/10 DOCENTE: ANDREA CARANTI

Piccolo teorema di Fermat

Introduzione alla crittografia. Il crittosistema RSA e la sua sicurezza

Teoria dei numeri e Crittografia: lezione del 14 novembre Esponenziazione modulare

23 INVERTIBILITÀ E CONTINUITÀ

DIARIO DEL CORSO DI ALGEBRA A A.A. 2017/18 DOCENTE: ANDREA CARANTI

Esercizi di Algebra. Anna Bigatti. 13 Novembre Ora vogliamo definire una operazione +, cioè dobbiamo definire quando fa a + b.

L algoritmo AKS. L algoritmo AKS. Seminario per il corso di Elementi di Algebra Computazionale. Oscar Papini. 22 luglio 2013

C Crittografia a Chiave Pubblica 4. Cifratura. Cifratura. Decifratura. Decifratura. Crittosistema a chiave pubblica

Crittografia a chiave pubblica

maggiore velocità per cifratura/decifratura l uso di chiavi più corte comporta: memorizzazione efficiente Alberto Leporati Corso di Crittografia 2

x y = y x. = x (x x ) (G 3)

L'enigma dei numeri primi

Crittografia. Corso di Laurea Specialistica. in Informatica. Crittosistemi basati sulle Curve. Ellittiche

La crittografia moderna e la sua applicazione

Crittografia a chiave pubblica

Introduzione alla Crittografia

nota 2. Gruppi, anelli, campi. Gruppi. Anelli. Campi. Applicazioni: il test di primalità di Miller-Rabin.

NUMERI PRIMI E CRITTOGRAFIA

Introduzione alla crittografia. Diffie-Hellman e RSA

Elementi di Algebra e di Matematica Discreta Cenno alla crittografia

INSIEME. Gruppo di elementi con caratteristica comune individuabile. Es: Giorni della settimana Numeri naturali Numeri pari

1... phs s qkr r

3 Il piccolo Teorema di Fermat

Se con e indichiamo l elemento neutro di in G, e deve appartenere ad H.

Soluzioni della verifica scritta 1 B Scientifico 24/01/2009

Università del Piemonte Orientale

Transcript:

una possibile funzione unidirezionale moltiplicare due interi a n bit è facile (in O(n 2 ) con l algoritmo usuale) trovare un primo a n bit, e verificare che è primo, è facile (vedremo poi) fattorizzare un numero a n bit è difficile (2 cn1/3 ) si può costruire un crittosistema a chiave pubblica basato su questa osservazione? crittosistema RSA Sia N = pq, p, q primi. Sia P = C = Z N. Lo spazio delle chiavi è K = {(N, p, q, d, e) de 1 (mod φ(n))}. Se k = (N, p, q, d, e) è una chiave, poniamo e k (x) = x e (mod N) N e e sono la chiave pubblica d k (y) = y d (mod N) p, q, d sono la chiave privata

cifratura e decifratura e k (x) = x e (mod N), d k (y) = y d (mod N) verifichiamo che d k (e k (x)) = x ed 1 (mod φ(n)), quindi ed = 1 + kφ(n) se (x, N) = 1, allora (x e ) d = x 1+kφ(N) = (x φ(n) ) k x Eulero 1 k x (mod N) x (mod N) se x U(Z N ), vale il corollario già visto (N è il prodotto di due primi) quindi la funzione di cifratura è iniettiva implementazione dell RSA Bob genera casualmente due primi grandi, p e q, con p q calcola N = p q e φ(n) = (p 1) (q 1) = pq (p + q) + 1 genera (in maniera non necessariamente casuale) un esponente e con 1 < e < φ(n), tale che (e, φ(n)) = 1 calcola d = e 1 (mod φ(n)) la chiave pubblica è (N, e), quella privata è (p, q, d)

un esempio Bob sceglie p = 17 e q = 11 N = 187 e φ(n) = 16 10 = 160 (= 2 5 5) Bob sceglie e = 7; allora d = e 1 = 23 (mod 160); pubblica la chiave N = 187 e e = 7 Alice vuole cifrare il testo in chiaro 88 da mandare a Bob calcola 88 7 = 11 (mod 187) e lo invia a Bob Bob riceve 11; per decifrare, calcola 11 23 (mod 187), e ritrova 88 In questo momento, cifratura e decifratura sembrano operazioni computazionalmente impegnative! Problemi facili 1 dato un intero N, vedere se è primo 2 dati e e M numeri naturali, trovare (e, M); se è 1, calcolare l inverso di e modulo M (alg. di Euclide polinomiale) 3 calcolare la f.ne x x e (mod N) Problemi difficili 4 dato un intero N, fattorizzarlo 5 dato un intero N, calcolare φ(n) 6 dati N e e, trovare d tale che (x e ) d = x (mod N)

problemi facili - calcolare x x e sia l(e) la lunghezza di e scritto in base 2 ( log 2 e), sia n la lunghezza di N; n = l(n); ho e < N, quindi l(e) n x e = x x... x (e fattori - quindi 2 l(e) fattori - esponenziale) l algoritmo square and multiply calcola x x e (mod N) usando al più 2l(e) moltiplicazioni - e divisioni. scrivere e in base 2; e = 2 b 1 + 2 b 2... 2 b k, con b 1 + 1 = l(e) elevando al quadrato b 1 volte, calcolare x 2, x 22,..., x 2b 1 N) (mod moltiplicando e riducendo (mod N) si ha x e = x 2b1 x 2b2 x 2b k con meno di 2l(e) moltiplicazioni quindi polinomiale problemi facili - primalità ci sono infiniti numeri primi (Euclide) la dimostrazione è per assurdo (è la più celebre dimostrazione per assurdo): supponiamo ci siano solo un numero finito di primi, e siano questi p 1, p 2,..., p k consideriamo il numero p 1 p 2 p k + 1 questo numero non è divisibile per nessuno dei p 1, p 2,... p k e allora quali sono i suoi fattori primi? ci sono infiniti primi quanti sono i numeri primi che precedono un dato intero x?

teorema dei numeri primi π(x) = numero di primi p con p x esempio: π(30) = 4 + 4 + 2 = 10 teorema dei numeri primi: asintoticamente, π(x) x log(x) congetturato da Legendre, Gauss fine 700 dimostrato da Hadamard, de la Vallée Poussin fine 800 dato un intero positivo N, la probabilità che un numero < N scelto a caso sia primo è π(n)/n, per N molto grande 1/ log(n) esempio: la probablità che un numero casuale con al più 100 cifre decimali sia primo è 1/ log(10 100 ) 1/230 se sappiamo controllare se un intero è primo, trovare primi grandi è facile test di primalità dato un intero N a n bit, come scoprire se è un primo? posso provare a fattorizzarlo per divisioni successive: devo fare al più N divisioni, quindi è in O(2 n/2 ) scopro se è primo, e trovo anche i fattori i test di primalità scoprono se N è primo senza dire niente dei suoi fattori fino al 2002 si conoscevano solo test di primalità polinomiali probabilistici, non deterministici nel 2002, M. Agrawal insieme a due suoi dottorandi, Kayal e Saxena, hanno trovato un algoritmo polinomiale per determinare la primalità inizialmente, in O(n 12 ) nel 2005, Lenstra e Pomerance lo portano a O(n 6 ) primes è in P

test deterministici e test probabilistici un test deterministico dà una risposta certa: N è primo o non lo è un test probabilistico T consiste in una successione di test {T m } m N e una successione che va a zero {ɛ m } m N tale che, se N non passa il test T m allora non è primo, la probabilità che N superi i test T 1,..., T m e non sia primo è minore di ɛ m i test di primalità probabilistici più usati sono quello di Solovay-Strassen (1977) e quello di Miller-Rabin (1980) il test di Miller-Rabin deriva da un test deterministico (dovuto a Miller) che però assume l ipotesi di Riemann generalizzata idea per mostrare che un numero N non è primo si mostra che non si comporta come un primo si cercano prove del fatto che N non si comporta come un primo senza cercare i suoi fattori

PT di Fermat e test di Fermat il PTdF dice che, se p è un primo e 1 a p 1, allora a p 1 1 (mod p) vogliamo scoprire se N è primo se trovo a N 1 e a N 1 1 (mod N) sappiamo per certo che N non è primo senza sapere niente sui suoi fattori questo è il test di Fermat prendo a < N, calcolo (a, N); se 1, N non è primo se (a, N) = 1, calcolo a N 1 se 1 (mod N) allora N non è primo per esempio, 2 322 157 (mod 323); quindi 323 non è primo (323 = 17 19) pseudoprimi se però a N 1 1 (mod N) non posso concludere che N è primo per esempio 2 340 1 (mod 341), ma 341 = 11 31 si dice che N è uno pseudoprimo in base a se N non è primo ma a N a (mod N). 341 è uno pseudoprimo in base 2. possiamo provare diversi valori per a: per esempio 3 341 3 (mod 341) quindi 341 non passa il test!

numeri di Carmichael non basta: esistono numeri N che sono pseudoprimi in base a per ogni possibile base a dove 1 < a < N e (a, N) = 1 un tale N si dice numero di Carmichael per esempio, si può vedere che 561 è un ndc (è il più piccolo) il test di Fermat non va bene dà comunque un idea di come può funzionare un test di primalità Problemi facili 1 dato un intero N, vedere se è primo 2 dati e e N, trovare (e, N); se è 1, calcolare l inverso di e modulo N (alg. di Euclide polinomiale) 3 calcolare la f.ne x x e (mod N) Problemi difficili 4 dato un intero N, fattorizzarlo 5 dato un intero N, calcolare φ(n) 6 dati N e e, trovare d tale che (x e ) d = x (mod N)

Se Eve riesce a fattorizzare N = pq, ottiene le info private di Bob dunque violare l RSA non può essere più difficile che fattorizzare conoscere la fattorizzazione calcolare φ(n): ovvio conoscere N (= pq) e φ(n) (= (p 1)(q 1) = N (p + q) + 1) vuol dire conoscere la somma (N φ(n) + 1) e il prodotto (N) di p,q quindi conoscere p e q se Eve risolve 6, dati N e e, trova d tale che (x e ) d = x (mod N) (Miller) ho buone probabilità di riuscire a fattorizzare N quindi se sospettiamo che Eve ha trovato d, non basta cambiare l esponente e bisogna scegliere anche un nuovo N i problemi 4,5 e 6 sono quindi equivalenti: ma questo non prova che RSA è equivalente alla fattorizzazione c è la possibilità di trovare la radice e-sima in qualche altro modo...