Oltre la chiave pubblica: crittografia funzionale
Comprenda la visione della crittografia funzionale: la decrittazione rivela solo l'output di una funzione, non il testo in chiaro.
Oltre la chiave pubblica: crittografia funzionale è una lezione Cryptology Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Cryptology Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Cryptology Academy include 4 lezioni in totale.
Limitazioni della cifratura tradizionale
La cifratura a chiave pubblica tradizionale segue un modello semplice: si cifra con una chiave pubblica e si decifra con la chiave privata corrispondente. Chi esegue la decifratura apprende l'intero messaggio in chiaro. Questo modello tutto-o-niente è troppo rigido per molte applicazioni: un database medico potrebbe voler consentire a un medico di sapere soltanto se un paziente presenta una determinata patologia, senza rivelargli l'intera cartella clinica. La cifratura funzionale affronta questa limitazione.
Cifratura basata sull'identità
La cifratura basata sull'identità (IBE), proposta da Shamir nel 1984 e costruita da Boneh e Franklin nel 2001, consente di utilizzare una stringa identificativa (indirizzo email, nome di dominio, ID dipendente) come chiave pubblica. Un'autorità fidata per la gestione delle chiavi genera chiavi private per identità specifiche. IBE elimina la necessità dei certificati a chiave pubblica e semplifica la distribuzione delle chiavi. IBE è la forma più semplice di cifratura funzionale.
Definizione di cifratura funzionale
La cifratura funzionale (FE), definita formalmente da Boneh, Sahai e Waters nel 2011, generalizza IBE. In uno schema FE, un'autorità delle chiavi può generare una chiave funzionale sk_f per qualsiasi funzione f. Data una cifratura Enc(x) e una chiave funzionale sk_f, chi esegue la decifratura può calcolare f(x), ma non apprende altro su x oltre a ciò che rivela f(x). La funzione f può essere una qualsiasi funzione calcolabile appartenente alla classe supportata dallo schema.
FE per il prodotto interno
La cifratura funzionale per il prodotto interno consente a chi esegue la decifratura e possiede sk_y di calcolare il prodotto interno
FE per il test di uguaglianza
La FE per il test di uguaglianza consente a un soggetto di verificare se un valore cifrato corrisponde a uno specifico valore v, apprendendo soltanto se l'uguaglianza è verificata. Ciò abilita le query su database con tutela della privacy: un server conserva record cifrati e un utente esegue query per trovare i record che corrispondono a valori specifici, senza che il server sappia che cosa sta cercando l'utente o apprenda risultati oltre a una corrispondenza sì/no. Le costruzioni pratiche utilizzano accoppiamenti bilineari.
FE per circuiti generali
La forma più potente di FE supporta circuiti booleani o aritmetici arbitrari come funzioni. Chi esegue la decifratura e possiede sk_f per una qualsiasi funzione f a tempo polinomiale può calcolare f(x) da Enc(x). La FE per circuiti generali è stata costruita teoricamente da Garg, Gentry, Halevi, Raykova, Sahai e Waters (2013) utilizzando mappe multilineari, ma le costruzioni esistenti di FE generale sono impraticabili a causa della loro dipendenza da ipotesi su mappe multilineari imperfette.
Offuscamento indistinguibile
L'offuscamento indistinguibile (iO) è il primitivo crittografico più potente conosciuto ed è strettamente correlato alla cifratura funzionale. Uno schema iO prende un circuito C e produce una versione offuscata O(C) che calcola la stessa funzione, ma non rivela nulla su C oltre al suo comportamento in termini di input e output. iO implica la maggior parte dei primitivi crittografici conosciuti, inclusa la FE generale. Esistono costruzioni candidate basate su problemi reticolari, ma sono ancora lontane dall'essere pratiche.
La cifratura basata sugli attributi come caso speciale
La cifratura basata sugli attributi (ABE) è una forma concretamente realizzabile di cifratura funzionale in cui la funzione f è limitata alla valutazione di una policy: f(x) = 1 se l'insieme di attributi x soddisfa una policy, e 0 altrimenti. L'ABE consente un controllo degli accessi granulare, in cui i diritti di decrittazione dipendono dagli attributi dell'utente. L'ABE è la forma di cifratura funzionale più utilizzata in pratica, con implementazioni nell'archiviazione cloud, nel settore sanitario e nell'IoT.
Percorso di sviluppo
La storia delle costruzioni FE procede da forme semplici a forme più potenti: IBE (Boneh-Franklin 2001) → FE per l'uguaglianza (varie costruzioni del 2005-2010) → FE per il prodotto interno (ABDALLA 2016) → FE per circuiti di profondità limitata (basata su mappe multilineari, 2013) → FE generale (ipotizzata a partire da iO). Ogni passaggio è più potente, ma anche più complesso e meno efficiente. Nelle implementazioni pratiche si utilizza la forma più semplice che consenta di ottenere la funzionalità desiderata.
Modello di sicurezza per la cifratura funzionale
La sicurezza della FE è definita dall'indistinguibilità delle cifrature di due messaggi x0 e x1, anche disponendo di chiavi funzionali per funzioni f arbitrarie, purché f(x0) = f(x1) per tutte le funzioni richieste. Ciò garantisce che il destinatario della decrittazione apprenda esattamente f(x) e nient'altro. Esistono due livelli di sicurezza: sicurezza selettiva (l'avversario si impegna a usare determinati messaggi di sfida prima di vedere la chiave pubblica) e sicurezza adattiva (completa, basata sulla simulazione).
Sfide dell'implementazione pratica
La FE generale rimane impraticabile, ma la FE per il prodotto interno e l'ABE possono essere utilizzate oggi. Le sfide includono la necessità di un'autorità fidata per le chiavi (un singolo punto di errore), la complessità della revoca delle chiavi, il sovraccarico prestazionale delle operazioni di pairing e la standardizzazione limitata. Le direzioni di ricerca includono la FE multi-autorità (senza una singola autorità fidata), la generazione decentralizzata delle chiavi e la FE per classi di funzioni più ampie senza mappe multilineari.
Quiz sulla definizione della cifratura funzionale
Che cosa distingue la cifratura funzionale dalla cifratura tradizionale a chiave pubblica?
Riepilogo della cifratura funzionale
La cifratura funzionale (Boneh-Sahai-Waters 2011) generalizza l'IBE consentendo l'uso di chiavi funzionali sk_f, che permettono di calcolare f(x) da Enc(x) senza apprendere completamente x. Esistono costruzioni pratiche per la FE del prodotto interno (per l'inferenza ML privata) e per i test di uguaglianza. L'ABE è un caso speciale concretamente utilizzato per la valutazione delle policy di accesso. La FE per circuiti generali richiede mappe multilineari (impraticabili). iO è il primitivo correlato più potente. La sfida principale consiste nel passare dalla teoria a un'implementazione efficiente.
Domande Frequenti
La lezione «Oltre la chiave pubblica: crittografia funzionale» è gratuita?
Sì — il testo completo di «Oltre la chiave pubblica: crittografia funzionale» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Cryptology Academy, passa a CoddyKit PRO. Il corso Cryptology Academy include 4 lezioni in totale.
Cosa imparerò in «Oltre la chiave pubblica: crittografia funzionale»?
Comprenda la visione della crittografia funzionale: la decrittazione rivela solo l'output di una funzione, non il testo in chiaro. Eserciti Cryptology Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Cryptology Academy?
Non è richiesta alcuna esperienza precedente. Cryptology Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.
Quanto tempo richiede la lezione «Oltre la chiave pubblica: crittografia funzionale»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Cryptology Academy?
Sì. Ogni lezione Cryptology Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Oltre la chiave pubblica: crittografia funzionale
- ABE con criterio sul testo cifrato (CP-ABE)
- ABE con criterio sulla chiave (KP-ABE) e confronto
- Applicazioni pratiche di ABE