La crittografia funzionale è un tipo di crittografia a chiave pubblica, dove chi è in possesso della chiave segreta può imparare una funzione di ciò che è cifrato nel testo[1]. La crittografia funzionale generalizza molte primitive crittografiche, come ad esempio la crittografia su base identità (IBE) e la crittografia su base attributi (ABE).
Storia
[modifica | modifica wikitesto]La crittografia funzionale è stata introdotta ne 2005 da Amit Sahai e Brent Waters[2] e formalizzata successivamente da Dan Boneh e Amit Sahai nel 2010[3]. Gli schemi proposti, tuttavia, supportano solo un insieme ridotto di funzionalità: per questo motivo nel corso degli anni sono stati effettuati diversi lavori di ricerca per fornire costruzioni universali di crittografia funzionale, in grado cioè di supportare funzioni arbitrarie[4][5].
Definizione
[modifica | modifica wikitesto]Uno schema a chiave pubblica è composto da tre algoritmi:
Solo il proprietario di può decifrare e ottenere , tutti gli altri non possono ottenere nessuna informazione.
Uno schema di crittografia funzionale aggiunge un quarto algoritmo:
Questo quarto algoritmo permette al possessore della chiave di decriptare solamente una funzione del messaggio e non il messaggio per intero.
Prendiamo ad esempio in considerazione un messaggio composto da un insieme di numeri; il possessore della chiave potrà decriptare il valore della media dei valori di senza avere accesso a nessun'altra informazione sul messaggio originale.
Note
[modifica | modifica wikitesto]- ^ Dan Boneh, Amit Sahai, Brent Waters, Functional Encryption: A New Vision for Public Key Cryptography, in Communication of the ACM, vol. 55, n. 11.
- ^ Amit Sahai e Brent Waters, Advances in Cryptology – EUROCRYPT 2005, vol. 3494, Springer Berlin Heidelberg, 2005, pp. 457–473, DOI:10.1007/11426639_27, ISBN 978-3-540-25910-7. URL consultato il 17 maggio 2020.
- ^ Dan Boneh, Amit Sahai e Brent Waters, Functional Encryption: Definitions and Challenges (PDF), n. 543, 2010. URL consultato il 17 maggio 2020.
- ^ Shafi Goldwasser, Yael Kalai e Raluca Ada Popa, How to Run Turing Machines on Encrypted Data (PDF), n. 229, 2013. URL consultato il 17 maggio 2020.
- ^ Amit Sahai e Brent Waters, Attribute-Based Encryption for Circuits from Multilinear Maps (PDF), n. 592, 2012. URL consultato il 17 maggio 2020.