Blog.

Secure Multiparty Computation (SMPC) | Privacy Preserving AI


Autore
Andrea Provino
Data
Tempo di lettura
9 minuti
Categoria
AI, Privacy Preserving

secure-multiparty-computation-machine-learning-privacy-preserving-company-guida-data-science-differential-privacy

La computazione a parti multiple sicura o Secure multiparty computation (SMPC) è un protocollo crittografico per il calcolo distribuito che coinvolge molteplici parti senza che queste possano accedere ai dati altrui.

Bella definizione, anche se abbiamo bisogno di una visione più ampia.

Torniamo allora indietro e ripartiamo dal perché oggi questa tecnica possa essere così fondamentale.

Riflettiamo un secondo su un tema oggi fondamentale.

Perché la SMPC adesso?

Senza dubbio le aziende hanno una dipendenza dai dati che segue un inarrestabile trend crescente.

Il dati sono oggi il nuovo petrolio che alimenta la crescita della nostra economia.

Possiamo essere d’accordo o meno con questa definizione, ma innegabilmente la monetizzazione dei dati è oggi il modello di business primario comune a molte delle più grandi aziende, e la priorità di tante altre.

L’applicazione di un simile modello di business richiede tuttavia la raccolta di grandi quantità di dati, e il successo è tanto più significativo quante più correlazioni e rapporti di casualità sia possibile trovare combinando diverse fonti dati.

Devi però considerare una pericolosa insidia.

Il sottoprodotto di questo processo è infatti una possibile violazione della privacy individuale, con così tante nostre informazioni nelle mani delle aziende.

Immaginiamo un mondo in cui sia possibile usare fonti dati diverse senza la necessità di centralizzarle, garantendo che nessuna informazione grezza sia rivelata dall’operazione.

Questa è la promessa della Secure multiparty computaion (SMPC)

In altri termini, saremmo così in grado di consentire ai Data Scientist e Data Analyst di operare sui dati senza il bisogno di esporli o spostarli dalla loro sede di storage.

Perfetto.

Questa breve spiegazione è utile per chiarire la necessità della secure multiparty computation (MPC / SMPC).

Procediamo quindi a capire come funzioni realmente.

Secure Multiparty Computation

Immaginiamo che due persone intendano comparare il proprio DNA per determinare il loro grado di parentela.

Esistono oggi potenti algoritmi che possono assolvere il compito, ma in uno scenario tradizionale richiederebbero la condivisione del DNA con una terza parte.

Il problema è che rivelare il proprio DNA può essere pericoloso: le compagnie assicurative potrebbero individuare eventuali disposizioni genetiche e negare polizze sulla vita.

Facciamo anche un secondo esempio.

Yao’s Millionaires’ problem (rivisitato)

Consideriamo una plausibile situazione in cui tre colleghi, Bob, Alice e Sharon, intendano calcolare la media dei loro salari.

Per questioni psicologiche, d’imbarazzo e paura di giudizio… ok forse sto esagerando.

Riformuliamo.

Per questioni a noi ignote, i tre non solo si rifiutano di condividere il valore del proprio stipendio, ma hanno anche scarsa fiducia persino nei confronti di una eventuale altra parte fidata.

Ecco la soluzione che possiamo proporre lorro.

Bob, Alice e Sharon possono fare ricorso al protocollo di Secure Multiparty Computation per calcolare la media senza condividere informazioni private sul loro salario.

Come funziona tutto questo nella pratica?

Alla base del processo vi è una tecnica crittografica nota come Additive Secret Sharing, che consiste nella divisione di un’informazione segreta e nella sua successiva distribuzione al gruppo di partecipanti disponibili.

Approfondiamone il funzionamento, sorvolando sulle dimostrazioni matematiche che ne verificano la sicurezza crittografica.

Dicevamo? Ah sì!

Il salario di Alice è di $ 100k. La procedura di additive secret sharing ne prevede la suddivisione in unità, generate casualmente e chiamate secret shares (in questo caso abbiamo 3 secret shares): $20k, $30k, $50k.

Ora avviene l’operazione di sceret sharing.

Due delle tre unità sono criptate e poi condivise con le altre parti.

Analogamente, Bob e Sharon svolgono la stessa operazione.

Al termine del processo ognuno è quindi in possesso di tre secret shares.

L’informazione contenuta in ogni secret share è inutile se presa singolarmente: non fornisce alcuna informazione sul dato originale.

Quindi siamo certi che la privacy sia tutelata.

Ora, ciascun collega provvede alla somma delle proprie secret shares.

Il risultato parziale ottenuto è ulteriormente condiviso e impiegato nella sommatoria totale, che divisa per il numero di parti in gioco (3 in questo caso) restituisce il dato tanto atteso: la media dei salari.

Problema risolto. Privacy tutelata. Tutti felici.

Multiparty fair exchange protocol

Mi è capitato d’imbattermi in questa sottigliezza, che ho prontamente deciso di condividerti.

Definiamo Multiparty fair exchange protocol quel protocollo che prevede la consegna di un informazione se e solo se ne riceve un’altra in cambio.

Interessante.

Garanzie di sicurezza

Un protocollo di calcolo sicuro multipartitico deve offrire alcune garanzie di sicurezza, persino se alcune delle parti fossero in collusione o cercassero di violarne le regole:

  1. Input Privacy: Nessuna delle parti corrotte (o suo sottoinsieme) deve essere in grado di derivare alcuna informazione sui dati appartenenti alle altre parti, a eccezione di quanto rivelato dal risultato dell’operazione. Nei due esempi, la privacy è garantita perché:
    • calcolo su DNA: solo la discendenza è rivelata (si / no)
    • calcolo su salari: solo la media è trapelata
  2. Correctness: Nessuna delle parti corrotte (o suo sottoinsieme) deve essere in grado di indurre una parte onesta a produrre un risultato errato.
    • calcolo su DNA: una parte corrotta non deve poter modificare il risultato
    • calcolo su salari: la media deve essere effettivamente corretta

Secure Multiparty Computation Use Cases (SMPC)

Esistono diversi casi d’uso per questa tanto rivoluzionaria tecnologia. Vediamone due.

Gestione dati aziendali

In questo caso il protocollo di secure multiparty computation ha sostanzialmente bisogno dell’esistenza di multiple privacy zones, cioè due o più domini con differenti restrizioni di privacy.

Questo assunto fondamentale è utile per comprendere i contesti in cui un simile protocollo possa trovare applicazione.

Devi sapere che erroneamente si compiono ragionamenti sulla sola interazione tra diverse aziende.

Noi andiamo oltre questa limitata visione del mondo.

Il secure multiparty computation ha infatti valore nel processo:

  1. interaziendale, consentendo effettivamente a molteplici organizzazioni di condividere i propri dati, preziose proprietà intellettuali,
  2. intraziendale, dove team, dipartimenti e/o singole giurisdizioni rimangono sovente isolati.

Questa tecnica costituisce dunque un prezioso asso nella manica per le aziende intente a sviluppare un approccio data-driven.

Possiamo infatti abbattere il modus operandi tipico basato su closed data analisys e facente ricorso ai data silos, con informazioni settoriali e non condivise.

L’obiettivo ultimo è dunque quello di realizzare un ambiente di libera circolazione delle informazioni tutelando la sicurezza e la privacy dei dati coinvolti.

Sempre in un ottica di gestione dati aziendali, la possibilità di caricare dati criptati un provider, e chiavi di decriptazione in un altro, potendo comunque eseguire operazioni (e.g. ricerca per keywords) senza decifrare mai i dati.

Key Protection attraverso SMPC

Considerando la crittografia dei dati come una cassaforte in cui riporre le informazioni più sensibili e confidenziali, l’anello più debole del sistema è la chiave: nelle mani sbagliate, la sicurezza viene compromessa.

La SMPC risolve il problema della chiave come single point of failure, dividendola in più parti salvate in altrettanti server.

Un eventuale hacker dovrebbe violare ciascuno di essi per ricostruire la chiave, e poi decifrare il dato.

Proteggendo adeguatamente questi dispositivi (e.g. credenziali di accesso differenti, ambienti isolati etc) è possibile raggiungere altissimi livelli di sicurezza.

Riassumendo, grazie alla SMPC:

  • la chiave è divisa in unità separate e adeguatamente protette
  • un hacker dovrebbe compromettere tutte le macchine in cui si trovano le chiavi (input privacy guarantee)
  • le unità non devono essere ricongiunte in una sola macchina (esponendo quindi il rischio che vengano poi rubate)

Toxic Waster Prevention

Tra i casi d’uso più affascinanti che ho individuato per te, l’eliminazione del rischio di creazione di un Toxic Waste merita certamente una nota.

Devi sapere che esistono alcune procedure, come la firma di una transazione o la convalida di un certificato, la cui autenticazione richiede il possesso di un certo segreto, spesso sotto forma di chiave privata.

In altri processi più sofisticati e dalla logica sottile, che al momento dovremo sorvolare poiché questo post non è il contesto migliore per effettuarne un’adeguata analisi, è presente un ulteriore livello di complicazione.

Seguimi, e porta con te l’attenzione.

Cos’è un Toxic Waste

Ogni processo ha un punto zero, un origine degli eventi da cui tutto nasce. Nelle operazioni crittografiche questo significa spesso generare una coppia di chiavi privata – pubblica a partire da un certo numero segreto. Il problema è che chiunque sia un possesso di questo numero segreto potrebbe di fatto generare la coppia di chiavi e fingersi l’originale fonte.

In altri termini, potrebbe ad esempio autenticare transazioni fraudolente, o validare verità fittizie con tutti i problemi derivanti.

Usando una metafora potremmo allora definire quel segreto iniziale un rifiuto tossico, un Toxic Waste la cui presenza costituisce un pericolo per ogni protocollo su di esso basato.

Immagina ad esempio di farti creare una chiave fisica, per aprire la tua cassaforte, sulla base di un disegno.

Chiunque fosse in possesso del disegno, potrebbe farsi creare una copia della tua chiave e aprire la cassaforte. Eppure abbiamo bisogno di generare la chiave. Come possiamo procedere allora?

Ricorriamo al Secure Multiparty Computation. L’obiettivo? Eliminare il rischio che il Toxic Waste venga creato.

Perché il ricorso al Secure MultiParty Computation

Il Toxic Waste, metafora per indicare il numero da cui ha origine la creazione della chiave pubblico – privata, ovvero il disegno della chiave fisica nella seconda metafora, può essere visto come contenente diverse sostanze chimiche che prese singolarmente sono innocue, ma unite creano un composto pericoloso.

Per cui, usando un protocollo di SMPC possiamo creare dei segreti divisi, che uniti siano in grado di generare la coppia di chiavi pubblico – privata, senza mai però rendere pubblico il segreto unitario.

Infine, è necessario che almeno una delle parti coinvolte nel processo di generazione distrugga la sua parte privata, impedendo così una futura ricreazione del segreto e la generazione della nuova chiave.

In questo modo è come se avessimo bisogno di creare una chiave per proteggere una cassaforte. Chiamassimo alcuni amici chiedendo loro di disegnare una parte del profilo della dentatura della chiave, e ci recassimo da un fabbro per la creazione. Ognuno di noi conoscerebbe solamente il suo disegno, e avrebbe bisogno di tutti i frammenti per farsi generare una nuova chiave.

Se però, al termine del processo anche solo uno dei nostri amici distruggesse il suo frammento, nessuno sarebbe più in grado di ricostruire la chiave. Il Toxic Waste (cioè il disegno completo) non è mai esistito eppure il nostro segreto (la chiave fisica) è stata creata.

Vantaggi

Per concludere, ecco un riepilogo dei vantaggi offerti dal secure multiparty computation:

  • Assenza di una necessaria terza parte fidata per mantenere i dati sicuri.
  • Nessun compromesso di Privacy-vs-Utility, poiché non dobbiamo perturbare alcun dato per tutelarne la privacy.
  • GDPR compliance persino per interazioni tra aziende europee, americane e asiatiche, perché i dati non lasciano mai i confini.
  • Protezione di un segreto, che può essere utilizzato per svolgere operazioni senza mai crearlo effettivamente

In questo modo le parti non hanno bisogno di fidarsi reciprocamente, anche qualora alcune di queste intendano collaborare ai danni delle altre o quando reti e macchine siano state compromesse a loro insaputa.

Ovviamente non mancano gli aspetti negativi:

  • Costo computazionale elevato, richiesto per la generazione dei numeri casuali che garantiscono la sicurezza nei calcoli (particolare assente nell’esempio su questo post, ma descritto qui).
  • Costo comunicativo elevato, richiesto dal network per la condivisone con i partecipanti.
  • Network bound

Si tratta comunque di compromessi accettabili, prendendo in seria considerazione i vantaggi reali.

Per approfondire questo, e altri concetti, ti esorto a leggere questo documento.

Per il momento è tutto.

Per aspera, ad astra.

Un caldo abbraccio, Andrea

Taggedprivacyprivacy preserving machine learning


Ultimi post

Patricia Merkle Trie

Il Practical Algorithm To Retrieve Information Coded In Alphanumeric Merkle Trie, o Patricia Merkle Trie è una struttura dati chiave-valore usatada Ethereum e particolarmente efficiente per il salvataggio e la verifica dell’integrità dell’informazione. In questo post ne studieremo le caratteristiche. Prima di procedere, ci conviene ripassare l’introduzione al Merkle Tree nella quale abbiamo chiarito il […]

Andrea Provino
ethereum-patricia-merkle-tree
Tree Data Structure: cos’è un Merkle Tree

Un Merkle Tree è una struttura dati efficiente per verificare che un dato appartenga a un insieme esteso di elementi. È comunemente impiegato nelle Peer to Peer network in cui la generazione efficiente di prove (proof) contribuisce alla scalabilità della rete. Capire i vantaggi di questa struttura ci tornerà utile nel nostro percorso di esplorazione […]

Andrea Provino
merkle-tree-cover
UTXO: come funziona il modello Unspent Transaction Outputs

Per tenere traccia dei bilanci utente, la blockchain di Bitcoin sfrutta un modello di contabilità definito UTXO o Unspent Transaction Outputs. In questo articolo ne esaminiamo le caratteristiche. Ogni blockchain è dotata di un sistema di contabilità, un meccanismo attraverso cui tenere traccia dei bilanci di ciascun utente. I due grandi modelli di riferimento nel […]

Andrea Provino
bitcoin-utxo
Cos’è Ethereum

Possiamo definire Ethereum come una macchina a stati distribuita che traccia le transizioni di un archivio dati general-purpose (i.e. una memoria in grado di registrare qualsiasi dato esprimibile come coppia di chiave e valore o key-value) all’interno della Ethereum Blockchain. È arrivato il momento di esplorare uno dei progetti tecnologici più innovativi e interessanti degli […]

Andrea Provino
ethereum