ElGamal: un protocollo di crittografia a chiave pubblica

Slides:



Advertisements
Presentazioni simili
Elgamal Corso di Sicurezza – A.A. 2006/07 Angeli Fabio29/05/2007.
Advertisements

Informatica Lezione 10 Psicologia dello sviluppo e dell'educazione (laurea magistrale) Anno accademico:
Cenni di Crittografia Luigi Vetrano TechnoLabs S.p.A. L’Aquila, Aprile 2011.
Domenico Procopio. Crittografia Crittografia La crittografia (dal greco kryptòs=nascosto e graphè=scrittura) sta ad indicare un insieme.
Sicurezza e crittografia asimmetrica ● Info su redsh.wordpress.com/corso-linux ●
Universita` degli studi di Perugia Corso di Laurea Magistrale in Informatica NetCash Antonio Cestari Pietro Palazzo.
Huffman Canonico: approfondimento. Come abbiamo visto, Huffman canonico ci permette di ottenere una decompressione più veloce e con un uso più efficiente.
Bitcoin “What is a Bitcoin?”. What is a Bitcoin? Bitcoin The 4th most common research on Google in 2014.
PRIMI CONCETTI ESEMPI INTRODUTTIVI DEFINIZIONI INTRODUZIONE ALLE FUNZIONI.
1 Simulazione Numerica dei Fenomeni di Trasporto Necessità di introduzione dei tensori  11  12  13  23  21  22 Vogliamo descrivere in un modo che.
1 Sistemi di numerazione. 2 Sistemi di numerazione posizionali posizionali Sistemi di numerazione posizionali: base La base del sistema di numerazione.
Firma digitale Tecnologie Normativa Utilizzo e Organizzazione Emanuele Tonelli Marzo 2005.
CONTROLLO DELLA CONCORRENZA
Archivi in Digitale: Firma Digitale
x : variabile indipendente
Protocollo di trasmissione tramite tecnologia Barryvox
SUMMERMATHCAMP TARVISIO, AGOSTO 2017
(Codice identificativo progetto: PON03PE_00159_1)
Insiemi di numeri e insiemi di punti
Comunicazione Come comunico in maniera sicura su internet!? ALICE BOB
Le equazioni di II°Grado
Branch and Bound Lezione n°14 Prof.ssa Rossella Petreschi
Dal problema al processo risolutivo
x : variabile indipendente
CRITTOGRAFIA Per crittografia si intende la protezione delle informazioni mediante l'utilizzo di codici e cifre. La crittografia è un componente fondamentale.
Algoritmi di stima con perdita di pacchetti in reti di sensori wireless: modellizzazione a catene di Markov, stima e stima distribuita Chiara Brighenti,
AlmaMathematica vuole sostenere la preparazione degli studenti che devono assolvere gli OFA (Obblighi Formativi Aggiuntivi) in matematica AlmaMathematica.
Progettazione di una base di dati relazionale
Raccolta ed Analisi dei Requisiti nella Progettazione
IL CONCETTO DI ALGORITMO
Dal problema al processo risolutivo
x : variabile indipendente
Unità di apprendimento 7
B-alberi e alberi autoaggiustanti
Insiemi di punti: altre caratteristiche
Equazioni e disequazioni
Giordano Scuderi Unico SRL Catania
Le trasformazioni nel piano cartesiano
La frazione come numero razionale assoluto
Alcuni modelli probabilistici
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi
FUNZIONI MATEMATICHE DANIELA MAIOLINO.
Forme per rappresentare l’algoritmo:
Tipo di dato: array Un array è un tipo di dato usato per memorizzare una collezione di variabili dello stesso tipo. Per memorizzare una collezione di 7.
23) Esponenziali e logaritmi
Questa è la funzione esponenziale
Statistica descrittiva bivariata
NUMERI PRIMI E CRITTOGRAFIA Parte I. Crittografia a chiave simmetrica
Rappresentazione dei Numeri
Programmare.
I RADICALI Definizione di radicali Semplificazione di radicali
Codicfiche Interi Complemento alla base.
{ } Multipli di un numero M4 ESEMPIO 0, 4, 8, 12, 16, 20, 24, …
Gli automi.
I numeri relativi DEFINIZIONE. Si dicono numeri relativi tutti i numeri interi, razionali e irrazionali dotati di segno (positivo o negativo). ESEMPI Numeri.
32 = 9 x2 = 9 x = 3 32 = 9 √9 = 3 L’estrazione di radice
PROCEDURA per la misura e la relativa stima
Lezione n°6 Prof.ssa Rossella Petreschi
Branch and Bound Lezione n°18 Prof.ssa Rossella Petreschi
Codici rilevatori di errori
Algoritmi e Strutture Dati
LE SUCCESSIONI Si consideri la seguente sequenza di numeri:
Sistemi Digitali.
Teoria della computabilità
Esercizio Dato un albero binario, definiamo altezza minimale di un nodo v la minima distanza di v da una delle foglie del suo sottoalbero, definiamo invece.
Corso di Sicurezza – A.A. 2006/07
MergeSort Usa la tecnica del divide et impera:
Test per campioni indipendenti
La programmazione strutturata
Statistica descrittiva bivariata
Transcript della presentazione:

ElGamal: un protocollo di crittografia a chiave pubblica Elena Rocchi ALMA MATER STUDIORUM UNIVERSITA’ DI BOLOGNA Facoltà di Scienze Matematiche Fisiche e Naturali Corso di Laurea Magistrale in Scienze e Tecnologie Informatiche Sicurezza dei Sistemi Informatici

Sommario Crittografia asimmetrica Logaritmo discreto ElGamal: algoritmo di crittografia ElGamal: osservazioni ElGamal: firma digitale

Crittografia asimmetrica 1976: nascita crittografia asimmetrica o a chiave pubblica (Diffie - Hellman) Ogni utente del sistema crittografico possiede una coppia di chiavi (chiave pubblica usata in fase di codifica e chiave privata usata in fase di decodifica) La crittografia si dice asimmetrica poiché KE≠KD

Crittografia asimmetrica Qualunque utente può codificare messaggi verso gli altri utenti usando la loro chiave pubblica, solo il destinatario dei messaggi li può decodificare usando la sua chiave privata Le funzioni di codifica e decodifica dei messaggi sono note a tutti Necessità di utilizzare funzioni tali per cui Complessità computazionale(codifica)<<Complessità computazionale(decodifica) (one-way) Problema decodifica computazionalmente intrattabile, a meno che non si possiedano informazioni aggiuntive (trap door)

Aritmetica modulare Aritmetica dei numeri interi in cui si opera con un insieme limitato di numeri È detta anche aritmetica dell’orologio, poiché i numeri si ripetono ciclicamente ogni volta che raggiungono i multipli di un numero n detto modulo Un'aritmetica finita modulo n si basa sull'insieme {0,1,2...n-1} (possibili resti di una divisione per n) Esempio: aritmetica modulo 5 20 mod 5=1 21 mod 5=2 22 mod 5=4 23 mod 5=3 24 mod 5=1 25 mod 5=2 . . .

Notazione utilizzata Z = {. . . , -3, -2, -1, 0, 1, 2, 3, . . .} numeri interi Zn = {0, 1, 2, . . ., n-1} numeri interi modulo n Zn*= insieme numeri interi primi con n compresi tra 1 e n-1 Zn* = {1, . . ., n-1} se n è primo (gruppo moltiplicativo)

Notazione utilizzata g generatore dell’insieme Zn* se Zn* = {1, g, g2, . ., g(n-2)} = {gi mod n | i ∈ Zn-1} ∀ β ∈ Zn* ∃ b ∈ Zn-1 | β = gb mod n Zn* è detto gruppo moltiplicativo ciclico Ricalcando la notazione relativa al campo dei numeri reali . . .

Logaritmo discreto . . . definiamo l’esponente b da assegnare a g per ottenere β come il logaritmo discreto di β in base g, ovvero b = logg β mod n

Se g è generatore di Zn* -> logaritmo discreto sempre definito Esempio: aritmetica modulo n = 7 g = 2 Z7* = {20, 21, 22, 23, 24, 25} = {1, 2, 4, 1, 2, 4} (mod 7) log2 4 può valere 2 ma anche 5 log2 3, log2 5, log2 6 non sono definiti . . . . . . g = 2 non è un generatore di Z7* Se g è generatore di Zn* -> logaritmo discreto sempre definito

Alcuni problemi notevoli in crittografia

Logaritmo discreto Assunzione del logaritmo discreto: il problema del calcolo del logaritmo discreto è intrattabile sono noti algoritmi generici esponenziali e algoritmi specifici polinomiali che funzionano solo se i dati del problema soddisfano determinate condizioni aggiuntive esistono metodi sofisticati, nessuno dei quali ha tempo di esecuzione polinomiale index calculus method collision search method

Logaritmo discreto non è stato dimostrato nessun lower bound esponenziale per il problema generico si ritiene che la complessità computazionale del calcolo del logaritmo discreto sia dello stesso ordine di una fattorizzazione (manca la dimostrazione!) si ritiene che l’ipotesi di intrattabilità del problema del logaritmo discreto sia più ‘forte’ di quella del problema della fattorizzazione

Logaritmo discreto Mentre calcolare l’esponenziale discreto è relativamente semplice, il calcolo del logaritmo discreto rappresenta un problema computazionalmente intrattabile (meccanismo one-way) . . . . . . a meno che non si possiedano informazioni aggiuntive (trap door)

ElGamal: introduzione CRYPTO 1984: il ricercatore egiziano Taher ElGamal presenta un articolo intitolato “A Public Key Cryptosystem and a Signature Scheme Based on Discrete Logarithms”

ElGamal: introduzione All’interno di questo articolo, vengono illustrati i dettagli di un nuovo algoritmo di crittografia appartiene alla famiglia degli algoritmi di crittografia a chiave pubblica basa la sua sicurezza sull’intrattabilità computazionale del calcolo dei logaritmi discreti si può considerare come una variante dell’algoritmo Diffie-Hellman molto utilizzato attualmente (le ultime versioni di PGP ne fanno utilizzo)

ElGamal: le operazioni principali Generazione dei parametri di sistema e delle chiavi Codifica Decodifica

Chiave pubblica (n,g,gb mod n) ElGamal: generazione dei parametri di sistema e delle chiavi Tutti gli utenti del sistema: scelgono di comune accordo un numero primo grande n e un generatore g dell’insieme Zn* Ogni utente: sceglie un numero casuale b, con 1 ≤ b ≤ n-2 calcola gb mod n Chiave pubblica (n,g,gb mod n) Chiave privata (b)

ElGamal: codifica Per codificare un messaggio M, il mittente deve: ottenere la chiave pubblica del destinatario (n,g,gb mod n) codificare M come un intero m in Zn (1 ≤ m ≤ n-1) scegliere un intero k in modo casuale, 1 ≤ k ≤ n-2 calcolare x = gk mod n calcolare y = m (gb)k mod n = m gkb mod n = mxb Ciò che viene spedito al destinatario è (x,y)

ElGamal: decodifica Per decodificare il messaggio criptato (x,y) il destinatario deve: calcolare, usando la sua chiave privata b, il numero xb = (gk)b mod n calcolare il valore x-b come x-bxb = 1 mod n ricavare m calcolando m=x-by mod n Infatti, abbiamo che x-by = x-bmxb = g-bk m (gb)k = =g-bk m gbk = m mod n = m

Chiave pubblica di Bob (11,6,7) Chiave privata di Bob (3) ElGamal: esempio Partner di comunicazione: Alice e Bob 1° fase: generazione dei parametri di sistema n = 11 g = 6 2° fase: generazione delle chiavi Alice e Bob creano individualmente la propria coppia di chiavi pubblica e privata; consideriamo la generazione delle chiavi da parte di Bob scelta di un numero b casuale, 1 ≤ b ≤ 9 (b = 3) calcolo gb mod n : 63 = 7 mod 11 Chiave pubblica di Bob (11,6,7) Chiave privata di Bob (3)

ElGamal: esempio 3° fase: comunicazione Alice vuole spedire a Bob un messaggio M ottiene da Bob la sua chiave pubblica (11,6,7) codifica M come un intero m, 1 ≤ m ≤ 10 (m = 8) sceglie un intero k in modo casuale, 1 ≤ k ≤ 9 (k = 2) calcola x = gk mod n : x = 62 = 3 mod 11 -> x = 3 calcola y = m (gb)k mod n : 8(7)2 = 7 mod 11 -> y = 7 spedisce a Bob la coppia (3,7)

ElGamal: esempio Bob riceve il messaggio (3,7) calcola, usando la chiave privata b, il valore xb = 33 = 27 = 5 mod 11 calcola il valore x-b = 9 mod 11 (5 * 9 = 45 = 1 mod 11) ricava il messaggio originale (m=8) come m=x-by : 9 * 7 = 63 = 8 mod 11

ElGamal: osservazioni Affinché l’algoritmo funzioni, è necessario che: sia relativamente semplice e veloce calcolare gli esponenziali discreti gk e (gb)k notiamo che: i due esponenziali discreti devono essere calcolati per ogni messaggio inviato sono indipendenti dal messaggio possono essere calcolati in anticipo (“offline”) se necessario

chiave pubblica = (n,g,y) con y=gb mod n ElGamal: osservazioni sia computazionalmente difficile ottenere dalla chiave pubblica la chiave privata b (assunzione del logaritmo discreto) chiave pubblica = (n,g,y) con y=gb mod n Se così non fosse, l’avversario potrebbe calcolare . . . . . . b=logg(y) mod n (in tempo polinomiale) a partire dal messaggio (x,y) potrebbe calcolare . . . . . . xb = (gk)b mod n x-b come x-bxb = 1 mod n m=x-by mod n

ElGamal: osservazioni se si possiede un algoritmo per calcolare in tempo polinomiale il logaritmo discreto, ElGamal è violabile se si possiede un algoritmo per violare ElGamal in tempo polinomiale, non è detto che il logaritmo discreto possa essere calcolato in tempo polinomiale

ElGamal: osservazioni Assunzione del logaritmo discreto Nessun avversario può decodificare testo cifrato Vogliamo una sicurezza maggiore . . . . . . l’avversario non deve nemmeno comprendere la struttura del testo (sicurezza semantica) Sicurezza semantica -> scelto un messaggio M e ricevuto in risposta un messaggio M’ (dove M’ può essere la codifica di M o la codifica di un messaggio random), l’avversario non riesce a distinguere le due casistiche ElGamal è semanticamente sicuro

ElGamal: osservazioni ElGamal fa uso della casualità nel processo di codifica (randomized encryption) x = gk mod n y = m (gb)k mod n Scopo della randomized encryption: diminuire l’efficacia di attacchi chosen plaintext (dato che codificando uno stesso messaggio più volte si ottengono testi cifrati diversi) diminuire l’efficacia di attacchi di tipo statistico (modifica la distribuzione di probabilità dell’input)

ElGamal: osservazioni La presenza dell’intero casuale k comporta, però, la necessità di comporre un testo cifrato lungo il doppio rispetto al testo in chiaro (message expansion) bisogna trasmettere due interi di dimensioni paragonabili gk e m(gb)k generalmente, hanno bisogno di un numero di cifre simile (in termini di ordini di grandezza)

ElGamal: osservazioni Se k fosse fissato? Consideriamo i messaggi m1 ed m2 Siano (x,y1) e (x,y2) i relativi testi cifrati Abbiamo: Saremmo in grado di risalire a m2 conoscendo m1 (vulnerabilità ad attacchi known ciphertext)

ElGamal: osservazioni Se non usassimo il generatore g? L’avversario sarebbe facilitato perché: si riduce lo spazio di ricerca dei logaritmi (non tutti i numeri hanno il proprio logaritmo se la base non è un generatore) spazio dei messaggi x = gk mod n più piccolo (alcuni valori non comparirebbero mai) esisterebbero più chiavi private!! Ogni numero avrebbe più di un logaritmo

ElGamal: osservazioni Esempio: aritmetica modulo 7 20 = 1 21 = 2 22 = 4 23 = 1 24 = 2 25 = 4 log2 4 può valere 2 ma anche 5 log2 3, log2 5, log2 6 non sono definiti

Trade-off sicurezza e prestazioni ElGamal: osservazioni Come scegliere il numero primo n? Trade-off sicurezza e prestazioni Al crescere di n: è possibile mandare un numero maggiore di messaggi (dato che 1 ≤ m ≤ n-1) diventa più costoso trovare numeri primi grandi diventa più costoso trovare un generatore dell’insieme Zn* diventa più costoso calcolare gli esponenziali discreti (lentezza dell’algoritmo ElGamal)

ElGamal: osservazioni Necessità di utilizzare numeri primi molto grandi 512 bit sono considerati a rischio sono richiesti almeno 1024 bit

Firma digitale Proprietà firma digitale (come per la firma manuale): generabile da una sola persona e non falsificabile non riutilizzabile documento su cui è apposta non modificabile non ripudiabile da chi l’ha generata

ElGamal: firma digitale Schema della firma digitale Appendix-Randomized necessita del messaggio originale per verificare la validità della firma a parità di input, può generare sequenze di esecuzione ogni volta diverse utilizza una funzione hash così definita h : {0,1}* ->Zn

ElGamal: le operazioni principali Generazione delle chiavi (vedi algoritmo) Generazione della firma Verifica della firma

La coppia (r,s) è la firma di m ElGamal: generazione della firma Per apporre una firma sul documento M, il firmatario deve: applicare la funzione hash h ad M, per ottenere un valore m tale che 1 ≤ m ≤ n -1 scegliere un intero k in modo casuale 1 ≤ k ≤ n-2 primo con n-1 (MCD(k,n-1) = 1) calcolare r =gk mod n (abbiamo che 1 ≤ r ≤ n-1) calcolare s come soluzione dell’equazione br + ks = m mod n-1 (1) La coppia (r,s) è la firma di m

yr rs = gbr gks = gbr+ks = gm mod n ElGamal: verifica della firma Dopo avere ricevuto la firma (r,s), per verificarla, il destinatario deve: controllare che r rispetti il vincolo 1 ≤ r ≤ n-1, e in caso contrario rifiutare il messaggio data la chiave pubblica del firmatario (n,g,gb mod n) posto y = gb mod n, calcolare v1 = yr rs mod n ricordiamo che per (1) yr rs = gbr gks = gbr+ks = gm mod n eseguire la funzione hash sul messaggio M originale per calcolare v2 = gm mod n accettare la firma se v1 = v2

ElGamal: sicurezza dello schema di firma Se un avversario provasse a forgiare una firma? la scelta di k casuale e il calcolo di r = gk mod n non risultano problematici il calcolo di s come soluzione dell’equazione br + ks = m mod n-1 è problematico, poiché non si possiede b (chiave privata), difficile da calcolare (logaritmo discreto) l’avversario potrebbe scegliere un numero s casuale, con probabilità di successo pari a 1/n (tende a zero per n abbastanza grande)