Crittografia funzionale

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

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

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

  1. ^ Dan Boneh, Amit Sahai, Brent Waters, Functional Encryption: A New Vision for Public Key Cryptography, in Communication of the ACM, vol. 55, n. 11.
  2. ^ 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.
  3. ^ Dan Boneh, Amit Sahai e Brent Waters, Functional Encryption: Definitions and Challenges (PDF), n. 543, 2010. URL consultato il 17 maggio 2020.
  4. ^ 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.
  5. ^ Amit Sahai e Brent Waters, Attribute-Based Encryption for Circuits from Multilinear Maps (PDF), n. 592, 2012. URL consultato il 17 maggio 2020.

Voci correlate modifica