Ricerca di testo crittografato con query crittografate

2

Sono interessato alla creazione di un servizio che memorizzi documenti di testo crittografati lato client.

Sarebbe possibile implementare una ricerca in cui l'utente inserisce una stringa di ricerca (questa stringa di ricerca sarebbe anche crittografata dal lato del cliente) e dove il server può eseguire la ricerca sui documenti crittografati senza conoscerne il contenuto né i contenuti della stringa di ricerca crittografata?

Non so molto sulla crittografia e ho solo pensato di vedere se potevo in qualche modo ottenere un esempio molto ingenuo lavorando. Tuttavia, utilizzando l'algoritmo 'aes-256-ctr', ottengo i seguenti risultati per il mio piccolo programma di crittografia:

$ node encrypt.js 123 'hello my friend'
90cbf635540412a202eb46dada1fcf

$ node encrypt.js 123 'hello'
90cbf63554
$ node encrypt.js 123 ' my '
d8c3e379
node encrypt.js 123 'friend'
9edcf33c5540

Che tipo di algoritmi di crittografia dovrei considerare per eseguire una ricerca di testo su un documento crittografato con una stringa di ricerca crittografata senza essere in grado di decifrarne nessuno?

Grazie mille per il tuo aiuto!

    
posta Macks 29.11.2015 - 17:16
fonte

5 risposte

2

L'unica soluzione utilizzabile di cui sono a conoscenza che non si è riusciti a riscontrare gravi vulnerabilità del codice è ZeroDB (www.zerodb.io) che consente di eseguire query su database crittografati.

Gli sviluppatori di ZeroDB hanno fornito istruzioni su come testare in Python sul loro sito web nella sezione Documentazione.

    
risposta data 30.11.2015 - 09:22
fonte
1

Utilizza la crittografia completamente omomorfica come descritto qui: link

Permette calcoli arbitrari su dati crittografati. Crittografa i dati e crittografa i calcoli stessi. I calcoli possono essere eseguiti da sistemi non fidati senza mai esporre i dati reali.

In particolare la crittografia omomorfica è una tecnologia piuttosto nascente, quindi rischi di essere venduta come olio di serpente, quindi fai attenzione quando scegli librerie, servizi o soluzioni pacchettizzate.

    
risposta data 30.11.2015 - 00:27
fonte
1

Dai un'occhiata al database di Mylar ( link ). Utilizza una crittografia un po 'omomorfica che ti consente di utilizzare ricerche crittografate su dati crittografati.

Il compromesso è in velocità, quindi è molto utile per le piccole unità di dati come i messaggi.

    
risposta data 30.11.2015 - 09:00
fonte
0

Non dovresti guardare oltre il punto che sarebbe inutile criptare ogni singola parola separatamente. Ci sono parole limitate in una determinata lingua e l'hash per ogni stringa può essere calcolato. E può essere decodificato molto facilmente. Se il server sta eseguendo la ricerca sul tuo server, programmalo in un modo in cui non tiene traccia di tutte le informazioni.

    
risposta data 29.11.2015 - 17:21
fonte
0

No.

Quando crittografate un testo ha un hash specifico e anche il risultato della crittografia si basa sull'intero testo.

Se si cripta o si esegue l'hash di una singola parola, il risultato è completamente diverso e non è possibile cercarlo nei dati crittografati.

Senza decrittazione non è possibile. Una ricerca non ha senso quando i dati sono crittografati.

Dai un'occhiata al risultato della crittografia di mio e amico. Non puoi confrontarlo.

La crittografia è intesa per proteggere i dati. Se puoi effettuare una ricerca, non sarebbe sicuro.

    
risposta data 29.11.2015 - 17:21
fonte

Leggi altre domande sui tag