Identificazione1Ciascuna parte fornisce il proprio input privato e riservato a questa funzione F, ma gli input devono rimanere segreti alle altre parti, fatta eccezione per ciò che può essere dedotto dal risultato finale della funzione F. Il problema è che la tecnologia SMPC/SMC deve svolgere la sua funzione senza l'esistenza di una vera e propria Terza Parte Fiduciosa (TTP). Attualmente, la nostra società richiede sempre più situazioni e casi pratici in cui la tecnologia SMPC deve essere presente. È possibile identificare questa tecnologia SMPC in una gerarchia di primitive crittografiche; i suoi livelli, dal meno al più complesso, sono: (1) WCT (Weak Coin Tossing). Due entità A e B generano un bit casuale; A vuole 0 e B vuole 1, ed entrambe ne sono consapevoli. (2) CT (Coin Tossing). Due entità A e B generano un bit casuale scambiandosi dati. (3) BC (Bit Commitment). L'entità A crittografa un bit per B e successivamente lo rivela. Il bit meno significativo (LSB) di un dato decimale N è il modulo due di quel dato N. (4) OT (Trasferimento Oblivious o trasferimento trasposto a livello di bit). L'entità A presenta due bit a B e B ne sceglie solo uno. A non può sapere quale bit ha scelto e B non conosce l'altro bit di A. (4) S2-PC (Calcolo sicuro a 2 parti). Le entità A e B inseriscono i loro dati privati ​​e ricevono funzioni congiunte FA(a, b) e FB(a, b).


Obiettivi dell'SMPC:
La tecnologia Secure Multi-Party Computation (SMPC) si rivolge a tutte le situazioni e applicazioni in cui due o più parti o entità desiderano eseguire un calcolo o un'attività congiuntamente e in modo cooperativo. Ciascuna parte deve contribuire con il proprio input riservato/privato per eseguire il calcolo, ma nessuna parte deve rivelare il proprio input segreto/privato alle altre parti o a terzi, inclusa una TTP (Transaction Processing Platform). Con la crescente diffusione di Internet, la tecnologia SMPC sta diventando sempre più importante. Nel calcolo distribuito, un insieme di partecipanti o entità in rete esegue congiuntamente un calcolo sulla base dei propri input.
Alcune applicazioni in cui la tecnologia SMPC è fondamentale sono:

(i) Un'azienda vuole monitorare il traffico di rete per individuare specifici comportamenti anomali, ma l'operatore di rete non vuole concedere all'azienda l'accesso alla rete e l'azienda non vuole rivelare quale comportamento sta cercando di trovare.
(ii) Due aziende farmaceutiche possiedono ciascuna un database di molecole e risultati di test tossicologici e desiderano combinare i loro risultati senza rivelare quali molecole sono presenti in ciascuno dei loro database.
(iii) Due organizzazioni finanziarie pianificano di collaborare a un progetto per il loro reciproco vantaggio. Ciascuna organizzazione desidera che vengano soddisfatte le proprie esigenze. Tuttavia, le loro esigenze sono dati segreti proprietari, tra cui proiezioni dei clienti sull'evoluzione futura di determinati prezzi, tassi di interesse e di inflazione, statistiche economiche, ecc. Di conseguenza, non vogliono rivelare le proprie esigenze all'altra parte o nemmeno a un TTP (Transaction Processing Plan).
(iv) Una ricercatrice, Z, pensa di avere una malattia genetica e vuole indagarla. Sa che un collega, X, possiede un database contenente modelli di DNA (acido desossiribonucleico) per varie malattie. Vuole chiedergli aiuto senza rivelare i suoi dati segreti.
(v) Dopo costose ricerche di mercato, l'azienda X decide di espandere il proprio mercato in una determinata regione. L'azienda X sa che anche un concorrente, l'azienda Y, prevede di espandere il proprio mercato nella stessa regione. Strategicamente, le aziende X e Y non vogliono competere nella stessa regione, quindi desiderano sapere se le loro regioni si sovrappongono. Pertanto, hanno bisogno di un modo per risolvere il problema mantenendo segrete le aree di espansione.  
(vi) Due persone vogliono fare la proposta di matrimonio, ma nessuna delle due vuole fare il primo passo finché non è sicura che il partner dirà di sì. A tal fine, eseguono un sistema SMPC il cui risultato rivelerà se entrambe le persone desiderano sposarsi. Dopo aver eseguito l'SMPC, una delle due deciderà di fare il primo passo.

Identificazione2Il problema dei due milionari di Yao consiste nel determinare quale tra due persone sia più ricca senza rivelare la loro ricchezza. Questo problema è analogo a un problema più generale in cui vengono dati due numeri, A e B, e l'obiettivo è determinare quale sia il maggiore senza rivelare i valori effettivi di A e B. Uno strumento chiave per la risoluzione di problemi basata su simboli (SMPC) è la condivisione segreta verificabile (VSS), in cui un agente onesto distribuisce un valore segreto, S, tra i partecipanti, permettendo ad alcuni di barare. Questi partecipanti che barano non otterranno alcuna informazione su S, e i partecipanti onesti saranno in grado di ricostruire il segreto S anche di fronte alle azioni maliziose dei bari. Un esempio ludico è quello di una coppia che, dopo una lunga relazione, potrebbe sposarsi, ma nessuno dei due vuole fare il primo passo e fare la proposta finché non è sicuro che l'altro accetterà.


Caratterizzazione della tecnologia SMPC:
l'obiettivo dell'SMPC è consentire ai partecipanti di eseguire attività di calcolo distribuito sulle proprie informazioni segrete/private, con attacchi provenienti sia da entità esterne che da un sottoinsieme di partecipanti malintenzionati (denominati partecipanti cospiratori). Lo scopo dell'attacco è quello di apprendere le informazioni private di partecipanti onesti e non cospiratori o di causare l'erroneità del calcolo previsto. L'SMPC si concentra tipicamente su schemi in cui nessuna informazione viene rivelata (modello ideale), ma esiste un altro approccio SMPC che mira a maggiori prestazioni ed efficienza per gli utenti, in cui si accetta un certo grado di rischio, alcune informazioni parziali possono essere rivelate e la sicurezza è regolabile in base alle definizioni di sicurezza accettabili dall'utente. Il trasferimento transcordato è un caso speciale di calcolo a due parti in cui la parte A ha n stringhe di informazioni (M1, ..., Mn) e la parte B sceglie un numero intero da uno ad an, ad esempio i. L'obiettivo è che B conosca Mi e nient'altro, mentre la parte A non deve apprendere nulla sul valore di i che B ha selezionato. È possibile costruire schemi SMPC passivamente sicuri utilizzando vari strumenti e primitive come cifrari omomorfici, trasferimenti transcordati, condivisione-frammentazione segreta, prove a conoscenza zero, nonce basati su PRNG, ecc. In un contesto militare, un esempio di SMPC è la pianificazione di missioni di coalizione, dove i segreti sono le risorse dei membri della coalizione e il risultato è un'allocazione di tali risorse per una missione specifica. Concordando sull'allocazione della funzione F, le due parti garantiscono che l'allocazione sia equa e, utilizzando SMPC, mantengono nascosti tutti i dettagli delle loro capacità.


Identificazione3Identificazione4Sintesi di un meccanismo SMPC basato sulla crittografia omomorfica moltiplicativa RSA.
Supponiamo di voler ottenere la media geometrica dei valori detenuti segretamente da tre entità A, B e C. L'entità A ha i seguenti parametri RSA: modulo n = 33, chiave pubblica e = 3, chiave privata d = 7. L'entità A detiene il segreto x1 (valore 2), l'entità B detiene il valore riservato x2 (valore 3) e l'entità C nasconde il valore segreto x3 (valore 4). L'obiettivo è applicare un meccanismo SMPC in modo che tutte e tre le entità ottengano la media geometrica senza rivelare i propri segreti. L'algoritmo del protocollo o schema SMPC è il seguente: (i) L'entità A crittografa il suo valore x1 con la sua chiave pubblica RSA e lo invia a B. In questo caso, x1 è due al cubo modulo 33 e il risultato è otto. (ii) L'entità B crittografa il valore di A x2, in questo caso tre al cubo modulo 33, utilizzando la chiave pubblica RSA di A, ottenendo 27. Quindi moltiplica questo valore per il valore ricevuto da A e invia il risultato modulo 33, che è 18, a C. (iii)  


L'entità C crittografa il valore x di A, in questo caso quattro al cubo modulo 33, utilizzando la chiave pubblica RSA di A, ottenendo 31. Quindi moltiplica questo valore per il valore ricevuto da B e il valore risultante modulo 33, che è 30, viene inviato ad A. (iv) L'entità A decifra il valore ricevuto, in questo caso trenta alla potenza di sette modulo 33, ottenendo 24. Quindi divide questo risultato per il numero di entità, tre in questo caso, e invia il risultato, 8, alle entità rimanenti, cioè le entità B e C, la media geometrica desiderata, che in questo caso è il valore otto.


Identificazione5Identificazione6Sintesi di un meccanismo a due parti basato sulla crittografia omomorfica additiva.
Supponiamo che l'entità A desideri ottenere la somma aritmetica senza rivelare i suoi valori segreti all'entità B, che esegue l'operazione di addizione. L'entità A crittografa i suoi due segreti, ad esempio x1, che è uguale a due, e x2, che è uguale a uno. I parametri di crittografia di A sono: chiave segreta s = 3, valore pubblico: g = 28, segreto modulo q = 7, che è minore di g. L'inverso moltiplicativo di s modulo sette è 19. Il processo di crittografia dei due segreti x1 e x2 produce i valori 6 e 3, ovvero: C(x1) = (x1 . s) mod g = 6 e C(x2) = (x2 . s) mod g = 3. L'entità A invia questi due valori crittografati, sei e tre, a B. L'entità B esegue la somma dei valori e restituisce la somma di nove all'entità A. L'entità A decifra la somma nove ricevuta usando: D(9) = (9 . 19) mod 28 = 3, quindi la somma dei valori segreti che A possiede è tre come già sapevamo, l'entità B ha eseguito la somma senza conoscere gli addendi segreti due e uno rispettivamente.


Considerazioni finali:
Il calcolo multipartitico sicuro impiega un'ampia gamma di tecniche per proteggere le informazioni private di ciascuna parte o entità coinvolta in un'attività collaborativa. Attualmente, stiamo assistendo a una crescita senza precedenti di questo tipo di calcolo in tutti i settori: industriale, commerciale, di rete, scientifico, videoludico, di sicurezza informatica, finanziario e molti altri. Il nostro gruppo di ricerca lavora in questo campo da vent'anni, collaborando a livello internazionale con diverse aziende, università e centri di ricerca.
Questo articolo fa parte delle attività svolte all'interno della rete LEFIS.


Letteratura


     Areitio, J. “Sicurezza delle informazioni: reti, informatica e sistemi informativi”. Cengage Learning-Paraninfo. 2013.
     Areitio, J. “Implementazione della sicurezza informatica nell’ambiente commerciale elettronico”. Rivista Conectrónica. N. 162. Novembre 2012.
     Areitio, J. “Gestione dei rischi per la sicurezza e la privacy delle informazioni”. Rivista Conectrónica. N. 155. Marzo 2012.
     Areitio, J. “Tecnologia di occultamento delle informazioni, un fondamento per la privacy delle informazioni”. Rivista Conectrónica. N. 132. Novembre 2009.
     Areitio, J. “Identificazione, analisi e correlazione tra protezione fisica e sicurezza informatica”. Rivista Conectrónica. N. 161. Ottobre 2012.
     Blahut, R.E. “Crittografia e comunicazione sicura”. Cambridge University Press. 2014.
     Singer, P.W. e Friedman, A. “Cybersecurity and Cyberwar: What Everyone Needs to Know.” Oxford University Press. 2014.
     Wu, CH e Irwin, JD “Introduction to Computer Networks and Cybersecurity.” CRC Press. 2013.
     Kostopoulos, G. “Cyberspace and Cybersecurity.” Auerbach Publications. 2012.
     Camenish, J., Fischer-Hubner, S. e Rannenberg, K. “Privacy and Identity Management for Life.” Springer. 2011.
     Stavrou, A. “Network Availability of Internet Services: Threats and Defences.” Springer. 2010.
     Zhan, J. e Matwin, S. “Secure Data Mining.” Springer. 2012.
     Saito, WH “The Future of Privacy and IT Security”. Wiley. 2012.

Autore:

Prof. Dr. Javier Areitio Bertolín – E.Mail: Questo indirizzo email è protetto dagli spambot. È necessario abilitare JavaScript per visualizzarlo.
Professore presso la Facoltà di Ingegneria dell'Università di Deusto.
Direttore del gruppo di ricerca su reti e sistemi

Maggiori informazioni o un preventivo