La crittografia (Cryptography) è un campo di studi che si occupa di comunicazione segreta, sviluppando metodi di offuscamento dell’informazione.
Come può un blog di machine learning e data science, come il nostro, parlare di crittografia pur rimanendo all’interno della sua area di studi?
Domanda molto interessante.
Come sai, recentemente abbiamo condotto alcune analisi tecniche sulle esigenze avanzate che un’applicazione di tracing richiede per funzionare efficientemente, garantendo al contempo la privacy degli utilizzatori.
La missione compiuta fa parte di un più vasto programma di ricerca e sviluppo nel settore della privacy-preserving, con un focus nell’ambito del machine learning.
Il motivo è semplice: come possiamo dominare questo campo, se per compiere le nostre analisi, attraverso tecniche di Data Science, e sviluppare modelli, con l’ausilio del machine learning, non abbiamo accesso a informazioni di alta qualità, spesso sensibili e private?
In nostro soccorso un’area di studi raffinata e dalle infinite potenzialità: la Differential Privacy.
In questo post, che ti consiglio caldamente di leggere così da aumentare la tua cultura a riguardo, abbiamo introdotto l’argomento ma grattato appena la superficie.
Per comprendere la Differential Privacy più profondamente dobbiamo necessariamente arricchire il nostro lessico, e bagaglio culturale, con termini, e definizioni, proprie della crittografia (cryptography).
La meta è chiara.
Il mare calmo e il vento favorevole ci aiuteranno nella navigazione: ammainiamo le vele, e andiamo tutta velocità verso la meta!
Cryptography
La crittografia è un campo di studi che si occupa di comunicazione segreta, sviluppando metodi di offuscamento dell’informazione.
Come può esserci utile?
È presto detto.
Qualora volessimo condividere un messaggio con qualcuno, avendo la certezza matematica che nessuno fuorché il destinatario possa riceverlo, dovremmo fare ricorso alla crittografia.
In questo modo potremmo scongiurare, usando i termini tecnici, l’attacco (attack) mosso da un avversario (adversary), una terza parte intenta a catturare il contenuto del messaggio.
Esistono modalità differenti con cui un fantomatico avversario possa interferire (attaccare) nel flusso di comunicazione.
È certamente un’interessantissima area di studi e la copriremo prossimamente. Per il momento, concentriamoci sull’essenziale.
Encryption
Per nascondere efficacemente il contenuto del messaggio usiamo un sistema generalmente noto come encryption, che in italiano potremmo tradurre come criptazione.
Affermiamo con certezza che un messaggio sia criptato quando l’informazione è matematicamente codificata, assumendo un aspetto casuale, privo di senso a tutti fuorché al legittimo destinatario.
Ok, semplifichiamo leggermente le cose.
Un testo in chiaro (plain text) può essere matematicamente criptato (encrypted) usando una chiave segreta (secret key) e divenendo un testo cifrato (cipher text), di fatto illeggibile.
Uno degli obiettivi di sicurezza che si pone la criptazione è quello di assicurare che il testo cifrato sia indistinguibile da uno casuale.
Security Goal of Encryption
Ovviamente, molteplici sono gli algoritmi per effettuare operazioni di criptazione e decriptazione dei messaggi.
Una forma di criptazione, particolarmente utile per comprendere il protocollo di Private Set Intersection, è definita di Homomorphic Encryption.
A questo punto, ti lascio in buone mani consigliandoti di leggere l’approfondimento sull’Homorphic Encryption e l’Additive Secret Sharing, due argomenti fondamentali nel nostro viaggio alla scoperta della Differential Privacy con l’aiuto della fantastica community di OpenMined.
Secure Multi-party Computation (SMPC)
Oltre alla criptazione, la crittografia sottende anche un’area definita si Secure multi-party computation che si occupa della protezione dei dati di più parti in comunicazione tra loro, facendo in modo che nessuno abbia accesso a informazioni extra.
Una delle tecniche impiegate per garantire questa condizione è definita di Private Set Intersection, che consente di calcolare l’intersezione dei dataset di due parti, assicurando la privacy individuale.
Abbiamo approfondito questa tecnica qui!
Un caldo abbraccio, Andrea.