logaritmo discreto come funzione unidirezionale

Documenti analoghi
da chi proviene un messaggio?

schema di firma definizione formale

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

(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

da chi proviene un messaggio?

idea della crittografia a chiave pubblica

crittografia a chiave pubblica

idea della crittografia a chiave pubblica

RSA e firma digitale

Elementi di Algebra e di Matematica Discreta Cenno di un applicazione alla crittografia

Introduzione alla crittografia. Diffie-Hellman e RSA

Crittografia per la sicurezza dei dati

Corso di Crittografia Prof. Dario Catalano. Primitive Asimmetriche

Privacy e firma digitale

Crittografia con Python

Cifratura Asimmetrica

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

CRITTOGRAFIA 2014/15 Appello del 13 gennaio Nome: Cognome: Matricola:

Firme digitali. Firma Digitale. Firma Digitale. Firma Digitale. Equivalente alla firma convenzionale. Equivalente alla firma convenzionale

Cifrari asimmetrici. Cifratura. Cifratura. Crittosistema ElGamal. file pubblico utente chiave pubblica. Alice. file pubblico utente chiave pubblica

La crittografia moderna e la sua applicazione

Elementi di crittografia

Crittografia a chiave pubblica

Altre alternative a RSA interessanti e praticabili

Crittografia a chiave pubblica

Reti di Calcolatori. Crittografia & Java Cryptographic Architecture (JCA) A.A. 2010/2011 Reti di Calcolatori 1 (Es. 6)

CODICI SEGRETI: UN VIAGGIO NELLA CRITTOGRAFIA

RSA: Calcolo della chiave privata

ITC Mossotti - Novara. Verica di Informatica. Nome e Cognome:... 1) Nella cifratura convenzionale. 2) Nella crittograa a chiave pubblica

una possibile funzione unidirezionale

CRITTOGRAFIA E NUMERI PRIMI TFA A059 ANNA NOBILI OTTAVIANO ROSI

Una curva ellittica è una curva definita da un equazione in due incognite del tipo:

Sicurezza nelle applicazioni multimediali: lezione 4, crittografia asimmetrica. Crittografia asimmetrica (a chiave pubblica)

Corso di Crittografia Prof. Dario Catalano. Cifrari Asimmetrici (Terza Parte): RSA-OAEP e Cifrari basati sull identita

Crittografia a chiave pubblica

Corso di Sicurezza nelle reti a.a. 2009/2010. Raccolta di alcuni quesiti del corso da 5CFU e prima parte del corso da 9CFU

M.C.D.(3522, 321) = 3 = ( 36) (395) 321

Confidenzialità e crittografia simmetrica. Contenuto. Scenario tipico. Corso di Sicurezza su Reti Uso della crittografia simmetrica

Sicurezza nelle reti: protezione della comunicazione

Sicurezza delle informazioni

Esercizi 2. Marco Anisetti

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

COMPITO DI ALGEBRA TRENTO, 13 GENNAIO 2016

Protocollo di Yao. Secure Two-Party Computation. Prof. Paolo D Arco. Università degli Studi di Salerno

Introduzione alla FIRMA DIGITALE

Crittografia a chiave pubblica

Sicurezza e Crittografia

RACCOLTA DI ALCUNI ESERCIZI TRATTI DA COMPITI D ESAME SUL SISTEMA CRITTOGRAFICO RSA

Digital Signature Standard

Introduzione alla Crittografia

Identificazione, Autenticazione e Firma Digitale. Firma digitale...

Domande di verifica su crittografia e Firma Digitale Esercitazione 15 Novembre per esame 2014 IC DAC 1 / 15

FIRMA ELETTRONICA. Il sistema di garanzia è stato individuato nella crittografia in quanto è in grado di assicurare:

M firma. M firma. Firma Digitale. Firma Digitale. Firma digitale. Firma digitale. Firma Digitale. Equivalente alla firma convenzionale

Robustezza crittografica della PEC

Corso di Crittografia Prof. Dario Catalano. Firme Digitali

Cifratura a chiave pubblica Sicurezza nelle reti di TLC - Prof. Marco Listanti - A.A. 2008/2009

Università del Piemonte Orientale

la crittografia tratta delle "scritture nascoste", dei metodi per rendere un messaggio "offuscato"

AUTENTICAZIONE E FIRMA DIGITALE

Firme digitali. Firma Digitale. Firma Digitale. Corso di Sicurezza su Reti Lezione del 17 novembre Equivalente alla firma convenzionale

Accordo su chiavi. (key agreement) Alfredo De Santis. Marzo Dipartimento di Informatica Università di Salerno

L agoritmo RSA. Gregorio D Agostino. 3 Aprile 2017

Aritmetica modulare, numeri primi e crittografia

La crittografia a curve iperellittiche

Sicurezza. Ingegneria del Software e sicurezza. Alice, Bob, e Trudy. Sicurezza non si caratterizza in modo semplice

Generatori. Accordo su una chiave. Diffie-Hellman [1976] Diffie-Hellman [1976] Diffie-Hellman [1976] Potenze in Z 19. iagio nnarella. nnarella.

Agostino Dovier. Dip di Matematica e Informatica, Univ. di Udine

Firme elettroniche. Traccia. Aspetti tecnologici delle firme elettroniche Aspetti giuridici delle firme elettroniche.

Crittografia: dagli antichi codici di Cesare ai protocolli avanzati

Sistemi di congruenze lineari

! La crittoanalisi è invece la scienza che cerca di aggirare o superare le protezioni crittografiche, accedendo alle informazioni protette

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori I

ESPONENZIALI E LOGARITMI. chiameremo logaritmica (e si legge il logaritmo in base a di c è uguale a b ).

Capitolo 8 La sicurezza nelle reti

Prof. Emanuele ANDRISANI

Generatori di Z p. Accordo su una chiave. Diffie-Hellman [1976] Accordo su chiavi ?? K. Potenze in Z 19 26/05/2005. Vedremo due schemi: Esempio: * a

Ripasso. Public Key cryptograhy. Message Authentication Codes (MAC) Firma digitale

Dal messaggio a sequenze di numeri

POLITECNICO DI BARI CORSO DI LAUREA MAGISTRALE IN INGEGNERIA ELETTRONICA

Programmazione in Rete

La funzione Hash. Garanzia dell integrità dei dati e autenticazione dei messaggi

4 0 = 4 2 = 4 4 = 4 6 = 0.

Accordo su chiavi (key agreement)

Elementi di Crittografia

Sicurezza e Crittografia

Cenni di crittografia. Luca Anselma

Crittografia da Whatsapp a Wikileakes, tra spie e segreti di stato

Distribuzione e certificazione delle chiavi

Sicurezza e Crittografia. Sicurezza e Crittografia. Ringraziamenti. Prof. Gabriele D'Angelo, Università di Bologna

Corso di Crittografia Prof. Dario Catalano. Cifrari Asimmetrici (Prima Parte)

Aspetti Crittografici nel Cloud Computing

Il protocollo SSL! Il protocollo SSL! (Secure Socket Layer)! "Uno dei protocolli più diffusi nelle comunicazioni sicure:!

Un po di teoria dei numeri

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

Elementi di Algebra e di Matematica Discreta Numeri interi, divisibilità, numerazione in base n

Corso di Crittografia Prof. Dario Catalano. Cifrari Simmetrici (Prima Parte)

Funzioni di hash sicure: MD5 e SHA-1

Cifratura chiave simmetrica

Crittografia: Servizi richiesti

Transcript:

logaritmo discreto come funzione unidirezionale in generale, lavoreremo con il gruppo U(Z p ) = Z p dati g generatore di Z p e x tale che 1 x p 1, calcolare y = g x è computazionalmente facile (y g x (mod p) si usa l algoritmo square-and-multiply ) si ritiene che, dati g generatore di Z p e y Z p, determinare x = log g y sia difficile (sotto opportune ipotesi su p) in particolare, p devessere grande (1024 bit), p 2 1023 dati g e y posso trovare x tale che g x = y per tentativi calcolando g x per tutti gli x, 1 x p 1 ma il numero di tentativi è enorme cifratura RSA e logaritmo discreto nella cifratura RSA, la funzione è del tipo x x e (mod N) f (x 1 x 2 ) = f (x 1 ) f (x 2 ) nel problema del logaritmo discreto, la funzione è del tipo x g x (mod p) f (x 1 + x 2 ) = f (x 1 ) f (x 2 )

scambio della chiave di Diffie-Hellman Alice e Bob scelgono pubblicamente un primo p e un elemento primitivo g (mod p) Alice sceglie casualmente a {2,..., p 2}; calcola g a mod p e invia il risultato a Bob Bob sceglie casualmente b {2,..., p 2}; calcola g b mod p e invia il risultato a Alice Alice calcola (g b ) a mod p Bob calcola (g a ) b mod p la chiave è k = g ab DH problem se Eve sa risolvere il problema del logaritmo discreto, sa ricavare la chiave comune di Bob e Alice dall osservazione di g a, g b mod p ricava a e b, quindi calcola k = g ab DH problem: dato un gruppo ciclico G, g un generatore e dati g a, g b trovare g ab basta che sappia risolvere il DH problem per trovare la chiave equivalenza DH - DL?

crittosistema Elgamal (ca 1985) sia p un primo, g un elemento primitivo mod p P = U(Z p ) C = U(Z p ) U(Z p ) Lo spazio delle chiavi è K = {(p, g, a, β) β g a (mod p)}. p, g e β sono la chiave pubblica a è la chiave privata crittosistema Elgamal prima di cifrare il messaggio x P, Bob sceglie un numero casuale (segreto) h {2,..., p 2} e k (x, h) = (y 1, y 2 ) con y 1 = g h, y 2 = xβ h (mod p) Alice riceve (y 1, y 2 ) U(Z p ) U(Z p ) non conosce h ma conosce a calcola y a 1 = (g h ) a = (g a ) h = β h (mod p) calcola (β h ) 1 (mod p) e ottiene x = y 2 (β h ) 1 d k ((y 1, y 2 )) = y 2 (y a 1 ) 1 (mod p) notare la somiglianza con DH non si inverte la funzione x g x (mod p) Bob sceglie un nuovo h a ogni trasmissione (randomized encryption)

esempio Alice sceglie p = 83, g = 2 e la chiave privata a = 30 β = 2 30 40 mod 83 la chiave pubblica di Alice è (83, 2, 40) il messaggio di Bob è x = 54 il numero scelto per la cifratura è h = 13 Bob invia (g h, xβ h ) = (2 13, 54 40 13 ) (58, 71) mod 83 per decifrare, Alice calcola (g a ) h = 58 30 = 9 l inverso di 9 mod 83 è 37 il messaggio è quindi 37 71 = 54 mod 83 la cifratura è una moltiplicazione: x xg ha si può invece usare un cifrario a blocchi (AES) e cifrare x e g ha(x) anche per Elgamal, si usa p di almeno 1024 bit, p 1 con un fattore primo grande e a fattorizzazione nota anche per violare Elgamal, basta che Eve sappia risolvere il DH problem se dati g h e β = g a sa trovare g ah = β h, può leggere il messaggio se Eve sa risolvere il logaritmo discreto può ricavare l esponente h e quindi ricavare direttamente x oppure ricavare a e decifrare come Alice (conviene h cambia in ogni trasmissione)

da chi proviene un messaggio? in un crittosistema simmetrico solo Alice e Bob conoscono la chiave se Bob riceve un messaggio di Alice e la decifratura del messaggio ha senso, il messaggio proviene certamente da Alice in un crittosistema a chiave pubblica, chiunque può scrivere un messaggio cifrato a Bob affermando di essere Alice serve una firma digitale firma manuale associa un documento a un utente firmatario la firma fa fisicamente parte del documento la firma viene verificata confrontandola con una firma campione depositata dovrebbe essere difficile da falsificare è vincolante dal punto di vista legale (contratti etc.)

firma digitale - differenze deve sempre associare un utente a un documento - tramite una stringa digitale c è bisogno di un metodo che leghi la firma al documento ci vuole un algoritmo pubblico di verifica previene la falsificazione una copia di un documento digitale è uguale all originale bisogna evitare che una firma sia riutilizzabile signature scheme Alice firma un messaggio da mandare a Bob ci sono due componenti: un algoritmo sig per firmare e un algoritmo ver per verificare quello per firmare dev essere privato (solo Alice può firmare) quello per verificare dev essere pubblico (Bob - e chiunque altro - può verificare che viene da Alice) per firmare il messaggio x Alice usa l alg sig k che dipende da una chiave k, e calcola sig k (x) = y (lo stesso messaggio può avere diverse firme) data una coppia (x, y) dove x è il messaggio e y la firma, l algoritmo ver k (x, y) dà in output vero se y è una firma valida di x, falso altrimenti in questo momento, non si chiede che (x, y) sia cifrato

definizione formale Uno schema di firma è una 5-pla (P, A, K, S, V) dove 1 P è un insieme finito di possibili messaggi 2 A è un insieme finito di possibili firme 3 K, lo spazio delle chiavi, è un insieme finito di possibili chiavi 4 k K c è un algoritmo di firma sig k S e un corrispondente algoritmo di verifica ver k V. 5 sig k : P A e ver k : P A {V, F } sono funzioni tali che x P e y A vale ver k (x, y) = { V se y = sigk (x), F se y sig k (x) procedura di firma usando un PKCS l algoritmo per firmare sig k dev essere privato (solo Alice può firmare) l algoritmo per verificare ver k dev essere pubblico (Bob - e chiunque altro - può verificare che viene da Alice) idea: usare un CS a chiave pubblica (deterministico) Alice ha la chiave k A, e ka è pubblica e d ka è privata Alice firma il messaggio x ponendo sig ka (x) = y = d ka (x) (è l unica che può decifrare) invia la coppia (x, y) Bob (e chiunque altro) calcola e ka (y) se x = e ka (y), allora ver ka (x, y) = V

schema di firma RSA Sia N = pq, p, q primi. Sia P = A = Z N. Lo spazio delle chiavi è K = {(N, p, q, d, e) ed 1 (mod φ(n))}. N e e sono la chiave pubblica, p, q, d sono la chiave privata Se k = (N, p, q, d, e) è una chiave, poniamo sig k (x) x d (mod N) ver k (x, y) = V x y e (mod N) esempio la chiave RSA di Alice è k A = (N A, p A, q A, d A, e A ) = (2773, 47, 59, 17, 157), φ(n A ) = 2668 Alice vuole firmare e trasmettere il messaggio x = 920 usa la chiave privata d A = 17 e calcola sig ka (920) = 920 17 948 (mod 2773) la coppia (messaggio, firma) è quindi (920, 948) Bob riceve (x, y) = (920, 948) verifica la firma usando la chiave pubblica di Alice e A = 157 948 157 920 (mod 2773) ver ka (920, 948) = V

combinare firma e cifratura Alice ha il messaggio x da inviare a Bob firma e ottiene y = sig ka (x) cifra (x, y) usando e kb ottiene z = e kb (x, y) Alice invia a Bob il testo cifrato z Bob decifra usando la d kb e riottiene (x, y) poi usa l algoritmo di verifica ver ka per controllare se ver ka (x, y) = V esempio con lo schema RSA la chiave di Alice è k A = (N A, p A, q A, d A, e A ) = (2773, 47, 59, 17, 157), φ(n A ) = 2668 la chiave di Bob è k B = (N B, p B, q B, d B, e B ) = (1073, 29, 37, 25, 121), φ(n B ) = 1008 Alice vuole firmare e trasmettere il messaggio x = 920 usa la chiave privata d A = 17 e firma sig ka (920) = 948 la coppia (messaggio, firma) è quindi (920, 948) cifra con la chiave pubblica di Bob e B = 121 il testo cifrato è z = (920 121, 948 121 ) = (246, 23) (mod 1073) Bob riceve z = (246, 23) decifra usando la sua chiave privata d B = 25 ritrova (x, y) = (246 25, 23 25 ) = (920, 948) verifica la firma usando la chiave pubblica di Alice e A = 157 948 157 920 (mod 2773) ver ka (920, 948) = V

prima firmare, poi cifrare l ordine giusto è prima firmare e poi cifrare se Alice prima cifra e poi firma, Eve può convincere Bob di essere il mittente se x è il messaggio, Alice cifra z = e kb (x) e firma y = sig ka (z) manda la coppia (z, y) a Bob se Eve intercetta la trasmissione, è in grado di firmare il messaggio z, anche se non può decifrarlo Eve può calcolare ỹ = sig ke (z) e inviare la coppia (z, ỹ) il messaggio passa la verifica di Bob, che lo accetta come proveniente da Eve falsificazione dato x P, dev essere computazionalmente difficile per chi non è Alice calcolare una firma y tale che ver ka (x, y) = V una coppia (x,y) tale che ver ka (x, y) = V che non è stata prodotta da Alice (ma da Eve, per esempio) si dice una falsificazione usando lo schema RSA (e anche usando un altro PKCS deterministico) è difficile, dato il messaggio x produrre una falsificazione (x, y) è però facile data y produrre una falsificazione (x, y)

Eve può falsificare la firma di Alice sceglie y e pone x = e ka (y) la coppia (x, y) passa la verifica per costruzione ver k (x, y) = V x = e ka (y) una falsificazione di questo tipo si chiama falsificazione esistenziale (existential forgery) Eve non può scegliere il messaggio x e produrre una firma valida y (una falsificazione di questo tipo si chiama falsificazione scelta (selective forgery)) Eve vuole ottenere la firma di Alice su un messaggio x da lei scelto Alice non firmerebbe mai x Eve trova x 1, x 2 tali che x x 1 x 2 (mod N) chiede a Alice di firmare x 1 e x 2, e ottiene y 1, y 2 per le proprietà moltiplicative dell RSA si ha che ver k (x 1 x 2 mod N, y 1 y 2 mod N) = V