Il Secure multiparty computation (SMC) è un protocollo crittografico per il calcolo distribuito che coinvolge molteplici parti senza che queste possano accedere ai dati altrui.
Da un punto di vista ampio, siamo 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 definizione è utile per ripassare velocemente il secure multiparty computation (MPC / SMPC), benché sia un pelino ostico per le nostre menti ancora da forgiare.
Procediamo quindi a capire intuitivamente perché possa essere utile, e come funzioni realmente.
Secure Multiparty Computation
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.
(Perché non sono riuscito a trovare per il momento valide e chiare fonti online)
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.
Utilità
Tornano a noi…
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 sia nel processo interaziendale, consentendo effettivamente a molteplici organizzazioni di condividere i propri dati, preziose proprietà intellettuali, sia in quello intraziendale, dove team, dipartimenti e/o singole giurisdizioni rimangono sovente isolati.
Questa tecnica, unita alle altre che abbiamo sin’ora identificato, 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.
Vantaggi
I vantaggi offerti dal secure multiparty computation sono molteplici:
- 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.
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.
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.
Un caldo abbraccio, Andrea.