Identity Based Cryptosystems Sperimentazioni di Sicurezza, A.A. 2008-2009 Identity Based Cryptosystems Speaker: Luca Maria Aiello, PhD student Università degli Studi di Torino, Computer Science Department Corso Svizzera, 185 – 10149, Torino, Italy aiello@di.unito.it 6/4/2010 Sperimentazioni di Sicurezza, A.A. 2009/2010
Sperimentazioni di Sicurezza, A.A. 2009/2010 Introduzione Panoramica su Identity Based Cryptosystems Encryption Signature SignCryption Key agreement Idea di base In un contesto a chiave pubblica, evitare directory e certificati Un identificativo human readable sostituisce la chiave pubblica Strumenti matematici Teoria dei gruppi Curve ellittiche Pairing 6/4/2010 Sperimentazioni di Sicurezza, A.A. 2009/2010
Sperimentazioni di Sicurezza, A.A. 2009/2010 Sommario Concetti di base Shamir IBS Teoria dei gruppi, curve ellittiche e pairing Boneh e Franklin IBE Sakai Ohgishi Kasahara IBS Considerazioni ed estensioni Conclusioni 6/4/2010 Sperimentazioni di Sicurezza, A.A. 2009/2010
Sperimentazioni di Sicurezza, A.A. 2009/2010 Sommario Concetti di base Shamir IBS Teoria dei gruppi, curve ellittiche e pairing Boneh e Franklin IBE Sakai Ohgishi Kasahara IBS Considerazioni ed estensioni Conclusioni 6/4/2010 Sperimentazioni di Sicurezza, A.A. 2009/2010
Crittosistemi a chiave pubblica vs IBC Nei PKC il legame tra una identità e una chiave è garantita dalla CA Proprietà fondamentali di un IBC La chiave pubblica di un utente risiede nel suo identificativo, ed è facilmente ricavabile da questo da qualsiasi altro utente Non è necessario un repository di chiavi pubbliche Le procedure di verifica di una firma o di cifratura di un messaggio richiedono soltanto rispettivamente l’identità del firmatario e del destinatario (oltre ad alcuni parametri globali di sistema) Lo scopo è di risparmiare il costo della PKI per il legame ID-chiave Purtroppo, gli IBC hanno anche alcune caratteristiche negative, che vedremo più avanti… 6/4/2010 Sperimentazioni di Sicurezza, A.A. 2009/2010
Cifratura – chiave pubblica 6/4/2010 Sperimentazioni di Sicurezza, A.A. 2009/2010
Cifratura – identity based 6/4/2010 Sperimentazioni di Sicurezza, A.A. 2009/2010
Firma digitale – chiave pubblica 6/4/2010 Sperimentazioni di Sicurezza, A.A. 2009/2010
Firma digitale – identity based 6/4/2010 Sperimentazioni di Sicurezza, A.A. 2009/2010
Sperimentazioni di Sicurezza, A.A. 2009/2010 Private Key Generator La chiave privata viene generata a partire dall’ID dell’utente In teoria, dato un ID qualunque, ciascun utente potrebbe calcolare la chiave privata corrispondente Il crittosistema sarebbe così banalmente violato! Necessità di una Trusted Third Party che generi chiavi private a partire dall’ID fornito e da una chiave segreta nota solo ad essa Il Private Key Generator (PKG) ricopre questo ruolo in un IBC Ovviamente è necessario un canale sicuro tra l’utente e il PKG per la trasmissione della chiave privata 6/4/2010 Sperimentazioni di Sicurezza, A.A. 2009/2010
IBE – IBS: schema generale IBE ed IBS necessitano di 4 fasi fondamentali, le primi due comuni Setup: il PKG inizializza alcuni parametri di sistema, che sono resi pubblici; durante questa fase viene anche selezionata la Master Key (MK), ossia la chiave segreta del PKG Extract: dato l’ID di un utente e la MK, il PKG ricava una chiave privata KID IBE IBS Encryption: un messaggio m viene cifrato a partire dall’identità del destinatario (ID) Decryption: il messaggio cifrato viene decifrato usando la chiave privata KID Signature generation: viene prodotta una firma σ da un messaggio m usando la chiave KID Signature verification: ricevuti σ e m, si verifica se la firma è valida usando l’identificativo del firmatario (ID) 6/4/2010 Sperimentazioni di Sicurezza, A.A. 2009/2010
Sperimentazioni di Sicurezza, A.A. 2009/2010 Sommario Concetti di base Shamir IBS Teoria dei gruppi, curve ellittiche e pairing Boneh e Franklin IBE Sakai Ohgishi Kasahara IBS Considerazioni ed estensioni Conclusioni 6/4/2010 Sperimentazioni di Sicurezza, A.A. 2009/2010
Sperimentazioni di Sicurezza, A.A. 2009/2010 Shamir IBS L’idea di IBC è da attribuirsi ad Abi Shamir In un articolo del 1984, “Identity-based cryptosystems and signature schemes”, introduce l’idea di utilizzare l’identificativo di un utente (e.g. l’indirizzo email) come chiave pubblica, al fine di evitare certificati e directory Propone uno schema di IBS simile ad RSA Auspica che un analogo schema di IBE possa essere costruito “At this stage we have concrete implementation proposals only for identity based signature scheme but we conjecture that identity-based cryptosystems exists as well and we encourage the reader to look for such systems” Il primo schema di IBE sarà ideato 17 anni più tardi… 6/4/2010 Sperimentazioni di Sicurezza, A.A. 2009/2010
Shamir IBS: preliminari Funzione totiente di Eulero φ(n) è definita, per ogni intero positivo n, come il numero degli interi positivi minori o uguali ad n tali che sono coprimi con n. Sia n=p∙q, p,q primi → φ(n) = (p-1)(q-1) Teorema di Eulero p,q primi, n=p∙q, 0<m<n mwφ(n)+1 = m mod n, w arbitrario Leonhard Euler 1707 - 1783 6/4/2010 Sperimentazioni di Sicurezza, A.A. 2009/2010
Sperimentazioni di Sicurezza, A.A. 2009/2010 Shamir IBS: schema Setup(): il PKG genera dei parametri di sistema n prodotto di due primi p,q molto grandi e numero grande, primo con φ(n) = (p-1)(q-1) h funzione one-way Extract(ID): ID = (k)e mod n - ID è il digest della stringa identificativa - Signature generation(m, k): t = re mod n, con r random s = k∙rh(t,m) mod n σ = <s,t> Signature verification(m, σ, ID): se =?= ID∙th(t,m) mod n 6/4/2010 Sperimentazioni di Sicurezza, A.A. 2009/2010
Shamir IBS: correttezza se = (k∙rh(t,m))e = ke∙reh(t,m) = ke∙th(t,m) = ID∙th(t,m) (mod n) 6/4/2010 Sperimentazioni di Sicurezza, A.A. 2009/2010
Sperimentazioni di Sicurezza, A.A. 2009/2010 Shamir IBS: sicurezza k può essere calcolato facilmente dal PKG perché conosce p e q Chi non conosce la fattorizzazione di n non può ricavare facilmente k, quindi lo schema è sicuro assumendo la difficoltà dell’ Integer Factorization Problem (IFP) Dalla firma non è possibile ricavare la chiave se si assume la difficoltà del Discrete Logartihm Problem (re mod n) Dati: ID,e,n,p,q Incognite: k ID = ke mod n Vogliamo trovare un valore d t.c. ked = k mod n kwφ(n)+1 = k mod n (per il teorema di Eulero) e∙d = w∙φ(n)+1 → e∙d = 1 mod φ(n) → d = 1/e mod φ(n) φ(n) = (p-1)(q-1) k = IDd mod n 6/4/2010 Sperimentazioni di Sicurezza, A.A. 2009/2010
Sperimentazioni di Sicurezza, A.A. 2009/2010 Sommario Concetti di base Shamir IBS Teoria dei gruppi, curve ellittiche e pairing Boneh e Franklin IBE Sakai Ohgishi Kasahara IBS Considerazioni ed estensioni Conclusioni 6/4/2010 Sperimentazioni di Sicurezza, A.A. 2009/2010
Teoria dei gruppi: gruppo Gruppo {G,●} Insieme di elementi g G affiancati dall’operatore binario ● Assiomi di base: Chiusura Associatività Elemento identità Elemento inverso Gruppo abeliano Commutatitività Gruppo ciclico (→ abeliano) Elemento generatore Tutti i gruppi ciclici finiti dello stesso ordine sono isomorfi Es. Il gruppo {N,+} è un gruppo ciclico di ordine infinito generato da 1 6/4/2010 Sperimentazioni di Sicurezza, A.A. 2009/2010
Teoria dei gruppi: anello Anello {R,+,×} È un gruppo abeliano rispetto all’operatore + Proprietà rispetto all’operatore × Chiusura Associatività Distributività Ulteriori proprietà dell’operatore × Commutatività Elemento identità No divisore 0 L’anello {Z,+,*} è un dominio integrale??? Anello commutativo Dominio integrale 6/4/2010 Sperimentazioni di Sicurezza, A.A. 2009/2010
Teoria dei gruppi: campo (1) Campo {F,+,×} È un anello, con una proprietà addizionale per ×: Elemento inverso Un campo è un insieme cui si possono eseguire le 4 operazioni fondamentali (+,-,×,/) L’insieme , con le 4 operazioni, è un esempio di campo Se un campo F è finito il suo ordine deve essere pari a pn (|F| = pn) p primo (caratteristica del campo), n intero positivo I campi finiti sono detti campi di Galois (Évariste Galois: 1811-1832) GF(p1), GF(p2), GF(p3), … per ogni p primo 6/4/2010 Sperimentazioni di Sicurezza, A.A. 2009/2010
Teoria dei gruppi: campo (2) Campi “notevoli” GF(p) = Fp = Zp = {0,1, …, p-1} residui modulo p, p numero primo GF(2n) = F2n campi binari Insieme di stringhe di bit di lunghezza n L’operatore + è lo XOR () tra bit L’operatore × è la moltiplicazione dei due polinomi binari che corrispondono ai due operandi. Il risultato deve essere ridotto calcolando il modulo rispetto al polinomio di grado più elevato esprimibile nel campo (implementazione con SHIFT e XOR) I campi binari sono tra i più utilizzati in informatica perché le operazioni tra elementi sono eseguite più efficientemente da un calcolatore rispetto ad operazioni tra elementi di altri campi 6/4/2010 Sperimentazioni di Sicurezza, A.A. 2009/2010
Curve ellittiche: definizione Una curva ellittica è definita tramite un’equazione del tipo: Oppure, più semplicemente: Una curva è definita su un gruppo G se i coefficienti e le variabili assumono valori in G La definizione di tali curve sull’insieme dei numeri reali R risulta intuitiva e facilmente rappresentabile geometricamente 6/4/2010 Sperimentazioni di Sicurezza, A.A. 2009/2010
Curve ellittiche: addizione tra punti I punti di una curva ellittica costituiscono una varietà abeliana insieme degli zeri del polinomio in x e y che è anche un gruppo (e.g. {G,+}) Calcolo di + su R Errori di arrotondamento Inefficienza In applicazioni crittografiche si usano Zp : curve prime GF(2n) : curve binarie e.g. Nel caso di Zp, la formulazione della curva diventa: 6/4/2010 Sperimentazioni di Sicurezza, A.A. 2009/2010
Curve ellittiche: moltiplicazione Sia P un punto sulla curva 2P = P + P In generale Q = nP = P + … + P (n volte) 6/4/2010 Sperimentazioni di Sicurezza, A.A. 2009/2010
Curve ellittiche: esempio su Zp Esempio grafico dei punti di una curva ellittica su Z23 I punti sul piano sono le soluzioni dell’equazione in modulo 23 L’applicazione dell’operatore + tra punti è definito in modo diverso rispetto a quello definito su R 6/4/2010 Sperimentazioni di Sicurezza, A.A. 2009/2010
Curve ellittiche: applicazioni Elliptic Curve Cryptography (ECC) La crittografia basata su curve ellittiche necessita di chiavi dalla lunghezza più limitata rispetto a tecniche crittografiche basate su campi finiti (160 vs 1024 bit) perché il problema dei logaritmi discreti (DLP) è di più difficile risoluzione nel contesto delle curve ellittiche Per campi finiti esistono algoritmi di risoluzione ottimizzati Per curve ellittiche è necessario usare algoritmi generici Ovviamente, in entrambi i contesti, non si conosce un algoritmo che risolva DLP in tempo polinomiale Pairing bilineari Sono strutture matematiche che costituiscono il fondamento delle moderne tecniche di IBS e IBE 6/4/2010 Sperimentazioni di Sicurezza, A.A. 2009/2010
Pairing bilineari: definizione Siano G1, G2, Gt gruppi ciclici dello stesso ordine Una mappa bilineare è una funzione Un pairing bilineare è una particolare formulazione di una mappa bilineare (specifica scelta di G1, G2, Gt ) Il termine deriva dal fatto che ad una coppia (pair) di elementi, ne viene associato un terzo G1, G2, Gt sono ciclici e dello stesso ordine, quindi sono isomorfi 6/4/2010 Sperimentazioni di Sicurezza, A.A. 2009/2010
Pairing bilineari: proprietà Un pairing è detto ammissibile se soddisfa le seguenti proprietà Bilinearità Non-degenerazione Computabilità se e è facilmente calcolabile I pairing ammissibili sono gli unici usati nella specifica dei meccanismi di IBC I gruppi usati nella definizione dei pairing sono, solitamente Curve ellittiche Curve supersingolari Curve MNT … 6/4/2010 Sperimentazioni di Sicurezza, A.A. 2009/2010
Pairing bilineari: storia I pairing di Weil e Tate-Lichtenbaum sono i pairing più usati in ambito IBC I pairing furono inizialmente usati per violare sistemi ECC Menezes, Okamoto, and Vanstone 1993, MOV reduction Frey, Ruck 1994, FR reduction La prima applicazione “buona” fu il primo schema di IBE, di Boneh e Franklin (2001) Dan Boneh Mattew Franklin 6/4/2010 Sperimentazioni di Sicurezza, A.A. 2009/2010
Sperimentazioni di Sicurezza, A.A. 2009/2010 Sommario Concetti di base Shamir IBS Teoria dei gruppi, curve ellittiche e pairing Boneh e Franklin IBE Sakai Ohgishi Kasahara IBS Considerazioni ed estensioni Conclusioni 6/4/2010 Sperimentazioni di Sicurezza, A.A. 2009/2010
Boneh & Franklin IBE: preliminari Nel seguito considereremo pairing del tipo G1 × G1 → G2 Useremo un’operazione di hash map-to-point così definita H : {0,1}* → G Useremo anche una funzione hash inversa H’ : G → {0,1}n I dettagli implementativi di H,H’ saranno omessi 6/4/2010 Sperimentazioni di Sicurezza, A.A. 2009/2010
Boneh & Franklin IBE: setup, extract Setup(): il PKG genera dei parametri di sistema MK = s Zq Ppub = sP, P punto in G1 H1 : {0,1}* → G1 H2 : G2 → {0,1}n Parametri pubblici: <G1,G2,e,P,Ppub,H1,H2> Parametri privati: <s> Extract(ID): QID = H1(ID) - public key - SID = sQID - secret key - 6/4/2010 Sperimentazioni di Sicurezza, A.A. 2009/2010
Boneh & Franklin IBE: encrypt/decrypt Encrypt(m, ID): QID = H1(ID) r Zq gID = e(QID, Ppub) c = <rP, m H2(gIDr)> - G1 × {0,1}n - Decrypt(c = <U,V>) m = V H2(e(SID, U)) 6/4/2010 Sperimentazioni di Sicurezza, A.A. 2009/2010
Boneh & Franklin IBE: proprietà (1) Correttezza V H2(e(SID, U)) → m e(SID, U) = e(sQID, rP) = e(QID, P)sr = e(QID, sP)r = e(QID, Ppub)r = gIDr V = m H2(gIDr) m H2(gIDr) H2(gIDr) = m 6/4/2010 Sperimentazioni di Sicurezza, A.A. 2009/2010
Boneh & Franklin IBE: proprietà (2) Sicurezza: complicata da provare… È stata provata nell’ambito del Random Oracle Model, un modello largamente accettato in crittografia ma delicato… Si suppone che le funzioni H1 e H2 siano dei ROM Sostituendo una funzione reale al ROM, alcuni algoritmi non garantiscono più le proprietà di sicurezza dimostrate nel ROM! Schemi successivi di IBE sono stati provati nello Standard Model, che suppone l’uso di funzioni reali Ad oggi, esistono molti schemi di IBE diversi, tutti basati su pairing 6/4/2010 Sperimentazioni di Sicurezza, A.A. 2009/2010
Sperimentazioni di Sicurezza, A.A. 2009/2010 Sommario Concetti di base Shamir IBS Teoria dei gruppi, curve ellittiche e pairing Boneh e Franklin IBE Sakai Ohgishi Kasahara IBS Considerazioni ed estensioni Conclusioni 6/4/2010 Sperimentazioni di Sicurezza, A.A. 2009/2010
Sperimentazioni di Sicurezza, A.A. 2009/2010 SOK IBS: setup, extract Setup(): MK = s Zq Ppub = sP, P punto in G1 H1 : {0,1}* → G1 Parametri pubblici: <G1,G2,e,P,Ppub,H1> Parametri privati: <s> Extract(ID): QID = H1(ID) - public key - SID = sQID - secret key - 6/4/2010 Sperimentazioni di Sicurezza, A.A. 2009/2010
Sperimentazioni di Sicurezza, A.A. 2009/2010 SOK IBS: sign/verify Signature generation(m): r Zq S1 = SID + rH1 (m) S2 = rP σ = <S1, S2> - G1 × G1 - Signature verification(m,σ,ID) QID = H1(ID) e(QID,Ppub) e(H1(m),S2) =?= e(s1,P) 6/4/2010 Sperimentazioni di Sicurezza, A.A. 2009/2010
Sperimentazioni di Sicurezza, A.A. 2009/2010 SOK IBS: proprietà Omesse… 6/4/2010 Sperimentazioni di Sicurezza, A.A. 2009/2010
Sperimentazioni di Sicurezza, A.A. 2009/2010 Sommario Concetti di base Shamir IBS Teoria dei gruppi, curve ellittiche e pairing Boneh e Franklin IBE Sakai Ohgishi Kasahara IBS Considerazioni ed estensioni Conclusioni 6/4/2010 Sperimentazioni di Sicurezza, A.A. 2009/2010
Sperimentazioni di Sicurezza, A.A. 2009/2010 Problemi degli IBC Il primo problema concerne l’efficienza degli algoritmi di IBE/IBS RSA è circa 10 volte più veloce nella generazione delle firme e addirittura 150 volte più veloce in fase di verifica I test sono condotti su un Intel™ Quad-Core Xeon 2.5 GHz, 4GB di RAM e si riferiscono allo schema IBS di Hess (millisecondi) Libreria C: http://crypto.stanford.edu/pbc/ Operation RSA IBS μ σ Generate 2.026 0.164 25.395 0.045 Verify 0.1 0.014 15.012 0.051 6/4/2010 Sperimentazioni di Sicurezza, A.A. 2009/2010
Sperimentazioni di Sicurezza, A.A. 2009/2010 Problemi degli IBC Il problema più grave inerente agli IBC è quello del key escrow Se il PKG viene attaccato e la sua chiave privata violata, l’attaccante può produrre firme valide a nome di un qualunque altro utente di cui conosca il nome (l’user ID) Questo non accade in sistemi classici a chiave pubblica, dove se la chiave della CA è violata, l’attaccante può produrre certificati a nome della CA ma non può firmare per conto di altri Il key escrow è il più grande ostacolo alla diffusione degli IBC 6/4/2010 Sperimentazioni di Sicurezza, A.A. 2009/2010
Contromisure possibili (1) Contro il key escrow Lo schema di IBS di Cheng, Zhang e Kim attenua il problema del key escrow, permettendo di tracciare eventuali truffe attuate dal PKG e da chi ne rubi la master key Gestione gerarchica dei PKG. HIBC, Hierarchical ID-based Cryptosystem. Un root PKG distribuisce a diversi PKG secondari la responsabilità di gestire le richieste di generazione di chiavi per specifici sottodomini di utenza. Il root PKG genera le chiavi per i PKG di dominio. Per comunicare tra loro, due utenti devono conoscere soltanto i parametri dei rispettivi root PKG per comunicare. Il vantaggio di un’architettura gerarchica è, oltre che la distribuzione del carico, la proprietà di damage control: la violazione di un PKG di dominio non compromette i segreti dei PKG di più alto livello. Ovviamente si perde in parte il vantaggio di evitare una PKI complessa 6/4/2010 Sperimentazioni di Sicurezza, A.A. 2009/2010
Contromisure possibili (2) Per migliorare l’efficienza Firme aggregate e verifiche batch Firme aggregate: Dati n oggetti con altrettante firme distinte, tali firme possono essere aggregate in una sola (risparmio di spazio). È da notare comunque che le firme IBS sono più piccole rispetto alle firme RSA per pari livello di sicurezza. Verifiche batch: Date n firme di altrettanti oggetti distinti, un’unica procedura di verifica, in tempo sublineare in n, può essere effettuata … 6/4/2010 Sperimentazioni di Sicurezza, A.A. 2009/2010
Sperimentazioni di Sicurezza, A.A. 2009/2010 Sommario Concetti di base Shamir IBS Teoria dei gruppi, curve ellittiche e pairing Boneh e Franklin IBE Sakai Ohgishi Kasahara IBS Considerazioni ed estensioni Conclusioni 6/4/2010 Sperimentazioni di Sicurezza, A.A. 2009/2010
Sperimentazioni di Sicurezza, A.A. 2009/2010 Conclusioni Gli IBC hanno lo scopo fondere i concetti di chiave pubblica ed identità, che molto spesso sono “appaiati” Si evitano certificati Non è necessaria una PKI complessa (risparmio di denaro) Sono schemi molto sicuri e relativamente efficienti La proprietà inerente del key-escrow ne ostacola la diffusione I concetti matematici su cui si basano sono piuttosto complessi La ricerca nell’ambito degli IBC è molto attiva Si auspica che, nel prossimo futuro, i problemi di IBC siano risolti o mitigati 6/4/2010 Sperimentazioni di Sicurezza, A.A. 2009/2010
Sperimentazioni di Sicurezza, A.A. 2009/2010 Contatti È disponibile una vasta letteratura su IBC Esistono alcuni survey introduttivi molto completi La libreria C di Stanford è una delle poche librerie sui pairing disponibile Ne esistono altre in Java, ma decisamente meno efficienti Per qualunque informazione, richiesta di chiarimento o di materiale aggiuntivo, contattatemi aiello@di.unito.it 6/4/2010 Sperimentazioni di Sicurezza, A.A. 2009/2010
Identity based Cryptosystems Sperimentazioni di Sicurezza, A.A. 2008-2009 Identity based Cryptosystems Grazie per l’attenzione! Speaker: Luca Maria Aiello, PhD student Università degli Studi di Torino, Computer Science Department Corso Svizzera, 185 – 10149, Torino, Italy aiello@di.unito.it 6/4/2010 Sperimentazioni di Sicurezza, A.A. 2009/2010
Sperimentazioni di Sicurezza, A.A. 2009/2010 ©2009 by Luca Maria Aiello. Permission to make digital or hard copies of part or all of this material is currently granted without fee provided that copies are made only for personal or classroom use, are not distributed for profit or commercial advantage, and that new copies bear this notice and the full citation. 6/4/2010 Sperimentazioni di Sicurezza, A.A. 2009/2010