On Thu, May 11, 2023 at 09:45:37AM +0200, D. Davide Lamanna wrote: > > banalmente, la Homomorphic Encryption temo resterà sempre fortemente > > vulnerabile a timing attack. > > Attenzione! L'articolo parla di una specifica software library, molto > diffusa in HE, ma certamente non l'unica.
L'articolo è solo un esempio della classe di vulnerabilità che ho descritto, basato sul controllo dell'elaborazione effettuata sui dati cifrati anche in assenza della possibilità di decifrare il risultato di tale elaborazione. Ovviamente, se chi effettua l'elaborazione non ha accesso alla chiave pubblica (oltre che alla chiave privata) il problema non si pone. Tuttavia tale strategia pone un problema di protezione della chiave "pubblica" che va comunque condivisa con chi è autorizzato a trattare i dati cifrati (ovvero a stabilire quali elaborazione è possibile fare). Il che rende la crittografia omomorfica qualcosa di intermedio fra la crittografia simmetrica e quella asimmetrica. Ma fintanto che chi esegue l'elaborazione cifrata può anche cifrare un'elaborazione di propria scelta, dubito che si possa aggirare il tipo di timing attack che descrivevo. > Di HE si è parlato moltissimo dopo che Craig Gentry, uno > studente di dottorato della Duke University, è riuscito, nel 2009, ad ideare > per primo nella storia uno schema di Fully Homomorphic Encryption. L'idea di cifrare l'algoritmo di decifratura per ottenere una versione (sempre cifrata) del plain text con un rumore ridotto è stata GENIALE. Comunque, personalmente, sono interessato anzitutto alla FHE. > L'HE è solo più indietro degli altri tipi > di cifratura, perché è notovolmente più complessa. Ma la comunità è molto > più che vitale, ci sono migliaia di articoli che escono ogni anno. Vero, ma non tratterrei il respiro in attesa di una sua applicazione su vasta scala. > > Un ipotetico fornitore cloud che abbia accesso alla chiave PUBBLICA > > di cifratura (NB: non quella privata, basta quella pubblica) può > > cifrare una elaborazione arbitraria e applicarla ai dati cifrati > > ottenendo un risultato anch'esso cifrato. > > Questo però lo puoi fare anche con la cifratura di uso comune. Uhm... irrilevante. Con la cifratura non omomorfica, l'unico modo che hai per effettuare un'elaborazione sul dato cifrato è decifrarlo prima. A quel punto hai accesso al dato in chiaro e, oltre a ciò che devi, ci puòi fare quel che vuoi impunemente (perché la copia dei dati non lascia tracce). Insomma, con la crittografia di uso comune l'attacco che descrivevo è inutile (se hai accesso alle chiavi di cifratura) o impossibile (se non hai accesso a tali chiavi). > > Il bello della FHE è che tale avversario non può decifrare il risultato > > senza la chiave privata. > > Anche questo è vero per qualunque meccanismo di cifratura. Non sono stato chiaro: la FHE ti permette di cifrare un programma ed applicarlo ad un dato cifrato ottenendo un output cifrato senza che in alcun passaggio la CPU abbia accesso al dato in chiaro. Questo con la crittografia non-FHE è impossibile: 1. per usare un dato come input di un programma devi prima decriptarlo. 2. l'output che ottieni dal programma è in chiaro e se vuoi cifrarlo con un'algoritmo di cifratura asimmetrico, devi cifrarlo successivamente solo a quel punto, se non hai tenuto copie dei dati in chiaro non hai più accesso all'output se non hai la chiave privata. Poter effettuare l'elaborazione in modo completamente cifrato è ciò che caratterizza la FHE. Il problema è che i timing attack che ho descritto ne vanificano il selling point. > > Tuttavia, nulla gli impedisce di cifrare un elaborazione che è > > estremamente lenta se il primo bit del testo cifrato è 1 ed estremamente > > veloce se è 0. > > > > Applicando tale elaborazione cifrata e misurando i tempi di risposta può > > dedurre il valore del primo bit del testo in chiaro. > > E' questo il punto importante in cui si evidenzia la particolare > vulnerabilità. Non possiamo però estenderla alla HE tout court. La HE è > molto di più di Microsoft SEAL. Naturalmente. Ma l'articolo è (IMHO) solo un caso specifico di un problema strutturale. Un problema non invalicabile (trattando la chiave pubblica come chiave "riservata", ma distinta dalla chiave privata che deve rimanere _segreta_) ma comunque da non ignorare. Anche perché, se lo ignoriamo, non passerà troppo tempo prima che le BigTech usingo la FHE per buttare un po' di fumo negli occhi di utenti e policy maker, dichiarando di non poter accedere ai dati ricevuti mentre potranno farlo tranquillamente. > > Ho un vaghissimo ricordo di una tecnica simile presentata l'anno scorso > > ma non ritrovo l'articolo accademico che ne parlava. > > Grazie ancora per l'articolo e per lo scambio. Grazie a te! Spero solo che non siamo stati troppo "opachi" per chi non conosce il tema. Giacomo _______________________________________________ nexa mailing list nexa@server-nexa.polito.it https://server-nexa.polito.it/cgi-bin/mailman/listinfo/nexa