ABE con criterio sul testo cifrato (CP-ABE)
Esamini CP-ABE, in cui chi cifra incorpora una policy di accesso e la decrittazione richiede attributi che la soddisfino.
ABE con criterio sul testo cifrato (CP-ABE) è una lezione Cryptology Academy gratuita su CoddyKit. Questa è la lezione 2 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.
Idea fondamentale della CP-ABE
Nella cifratura basata sugli attributi con policy nel ciphertext (CP-ABE), chi cifra incorpora direttamente nel ciphertext una policy di accesso. L'utente possiede una chiave segreta che codifica il proprio insieme di attributi. La decrittazione riesce se e solo se gli attributi dell'utente soddisfano la policy di accesso incorporata nel ciphertext. Chi cifra controlla chi può decrittare specificando la policy al momento della cifratura.
Policy di accesso nella CP-ABE
Le policy di accesso nella CP-ABE sono espresse come formule booleane monotone sugli attributi, generalmente rappresentate come schemi di condivisione lineare del segreto (LSSS) o alberi di accesso. La policy può includere operatori AND, OR e di soglia. Un operatore AND richiede tutti gli attributi elencati; un operatore OR ne richiede almeno uno; un operatore di soglia t-su-n richiede almeno t degli n attributi elencati. Questi operatori possono essere annidati per esprimere strutture di accesso complesse.
Esempio di policy CP-ABE
Consideri il sistema informativo di un ospedale. Un referto medico potrebbe essere cifrato con la policy: (role=Doctor AND department=Cardiology) OR role=Administrator. Un cardiologo ha gli attributi {role=Doctor, department=Cardiology} e può decrittare. Un radiologo ha gli attributi {role=Doctor, department=Radiology} e non può decrittare, perché department=Cardiology è assente. L'amministratore ha {role=Administrator} e può sempre decrittare. La policy viene applicata crittograficamente, non soltanto tramite liste di controllo degli accessi.
Costruzione CP-ABE di Waters (2011)
La costruzione CP-ABE pratica più influente è quella di Waters (2011), basata su pairing bilineari su curve ellittiche. In questa costruzione, l'autorità genera un segreto principale e una chiave pubblica. Le chiavi segrete degli utenti vengono generate per specifici insiemi di attributi. La cifratura consiste nel creare un ciphertext che codifica la policy di accesso utilizzando la condivisione lineare del segreto. La sicurezza è dimostrata sotto l'ipotesi Decisional Bilinear Diffie-Hellman (DBDH).
Universo piccolo e universo grande
Gli schemi CP-ABE differiscono per il modo in cui gestiscono l'universo degli attributi. Le costruzioni su universo piccolo richiedono di stabilire l'intero insieme dei possibili attributi al momento della configurazione, limitando la flessibilità ma consentendo schemi più efficienti. Le costruzioni su universo grande (Rouselakis-Waters 2013, Attrapadung 2014) permettono di usare attributi appartenenti a un universo di dimensione esponenziale senza doverlo definire durante la configurazione, rendendo possibili attributi come gli ID utente o i timestamp senza dover dichiarare in anticipo tutte le possibilità.
Delegazione e gerarchia delle chiavi
La CP-ABE può supportare la delegazione delle chiavi: un'autorità può emettere per un subordinato chiavi relative a un sottoinsieme di attributi; il subordinato può restringere ulteriormente le capacità della chiave, ma non ampliarle. Ciò consente una gestione gerarchica degli attributi: un'autorità a livello aziendale emette chiavi a livello di dipartimento e le autorità di dipartimento emettono chiavi per i dipendenti. Questa proprietà è chiamata sicurezza della delegazione delle chiavi: una chiave delegata non può essere utilizzata per decrittare dati che il delegante non avrebbe potuto decrittare.
Librerie per CP-ABE
Implementazioni pratiche della CP-ABE sono disponibili nella libreria Java Pairing-Based Cryptography (jpbc) e nel framework Python charm-crypto, adatto alla prototipazione. La libreria OpenABE (Zeutro) è un'implementazione C++ che supporta CP-ABE e KP-ABE ed è adatta all'uso in produzione. RABE è un'implementazione Rust della CP-ABE. Queste librerie implementano operazioni basate su pairing sulle curve BN-256 e BLS12-381.
CP-ABE per l'archiviazione cloud
L'applicazione classica della CP-ABE è il controllo granulare degli accessi nell'archiviazione cloud. Il proprietario di un file cifra un documento con una policy prima di caricarlo. Qualsiasi utente i cui attributi soddisfino la policy può scaricare e decrittare il documento, senza che il provider cloud sappia chi vi accederà o debba gestire liste di controllo degli accessi. Il provider cloud fornisce i ciphertext a chiunque li richieda; la policy viene applicata direttamente nel ciphertext.
Caratteristiche prestazionali della CP-ABE
Le operazioni CP-ABE implicano calcoli di pairing bilineare, significativamente più lenti della cifratura simmetrica. Su una CPU moderna, una singola operazione di pairing su BN-256 richiede circa 1-3 ms. Il costo della decrittazione cresce linearmente con il numero di attributi soddisfatti. Per policy con 10-20 attributi, la decrittazione richiede 10-60 ms: un tempo accettabile per le applicazioni rivolte agli utenti, ma troppo elevato per i sistemi automatizzati ad alta frequenza.
Occultamento degli attributi nella CP-ABE
La CP-ABE standard rende visibile la policy di accesso a chiunque visualizzi il ciphertext: la policy non è cifrata. La CP-ABE con policy nascosta (o CP-ABE con policy parzialmente nascosta) nasconde alcuni o tutti gli attributi della policy alle parti non autorizzate, offrendo una maggiore privacy. Ottenere il completo occultamento della policy richiede costruzioni più complesse e un sovraccarico prestazionale significativamente maggiore. La maggior parte delle implementazioni pratiche utilizza la CP-ABE standard (con policy visibile) e accetta che la policy di accesso sia osservabile.
Sfida della revoca delle chiavi nella CP-ABE
La revoca delle chiavi nella CP-ABE rappresenta una sfida pratica significativa. Se gli attributi di un utente cambiano, ad esempio perché lascia un dipartimento o perché le sue credenziali vengono revocate, ricifrare tutti i ciphertext cifrati per i suoi attributi precedenti è costoso. Gli approcci pratici includono il versionamento degli attributi (incrementare un numero di versione in ogni attributo), l'uso della ricifratura tramite proxy per aggiornare i ciphertext o la combinazione della CP-ABE con attributi basati sul tempo, richiedendo un aggiornamento periodico della chiave da parte dell'autorità.
Quiz sulle policy CP-ABE
Nella CP-ABE, dove viene incorporata la policy di accesso?
Riepilogo della CP-ABE
La CP-ABE incorpora le policy di accesso nei ciphertext; le chiavi degli utenti codificano gli insiemi di attributi. La decrittazione riesce quando gli attributi soddisfano la policy (operatori AND, OR e di soglia). Waters 2011 è la costruzione pratica fondamentale, basata su pairing bilineari. Le varianti su universo grande supportano spazi dinamici di attributi. La CP-ABE viene utilizzata nell'archiviazione cloud per il controllo granulare degli accessi, senza ACL lato server. La revoca delle chiavi rimane una sfida pratica, affrontata tramite il versionamento degli attributi o la ricifratura tramite proxy.
Domande Frequenti
La lezione «ABE con criterio sul testo cifrato (CP-ABE)» è gratuita?
Sì — il testo completo di «ABE con criterio sul testo cifrato (CP-ABE)» è 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 «ABE con criterio sul testo cifrato (CP-ABE)»?
Esamini CP-ABE, in cui chi cifra incorpora una policy di accesso e la decrittazione richiede attributi che la soddisfino. 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 2 di 4.
Quanto tempo richiede la lezione «ABE con criterio sul testo cifrato (CP-ABE)»?
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