Buscando texto cifrado con consultas cifradas

2

Estoy interesado en crear un servicio que almacene documentos de texto cifrados del lado del cliente.

¿Sería posible implementar una búsqueda donde el usuario ingrese una cadena de búsqueda (esta cadena de búsqueda también se cifraría en el lado del cliente) y donde el servidor puede realizar la búsqueda sobre los documentos cifrados sin saber su contenido ni su contenido? de la cadena de búsqueda cifrada?

No sé mucho acerca del cifrado y pensé que podría ver si de alguna manera podría obtener un ejemplo muy ingenuo. Sin embargo, al usar el algoritmo 'aes-256-ctr', obtengo los siguientes resultados para mi pequeño programa de encriptación:

$ 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

¿Qué tipo de algoritmos de cifrado debo buscar para realizar una búsqueda de texto en un documento cifrado con una cadena de búsqueda cifrada sin poder descifrar ninguno de ellos?

¡Muchas gracias por tu ayuda!

    
pregunta Macks 29.11.2015 - 17:16
fuente

5 respuestas

2

La única solución utilizable que tengo conocimiento de que no se ha encontrado que tenga vulnerabilidades de código graves es ZeroDB (www.zerodb.io) que permite ejecutar consultas sobre bases de datos cifradas.

Los desarrolladores de ZeroDB han proporcionado instrucciones sobre cómo realizar pruebas en Python en su sitio web en la sección Documentación.

    
respondido por el VirtualJJ 30.11.2015 - 09:22
fuente
1

Utilice el cifrado totalmente homomórfico como se describe aquí: enlace

Permite cálculos arbitrarios sobre datos encriptados. Encripta los datos y encripta los cómputos. Los cálculos pueden ser realizados por sistemas no confiables sin exponer nunca los datos reales.

En particular, el cifrado homomórfico es una tecnología bastante incipiente, por lo que corre el riesgo de que se le venda aceite de serpiente, así que tenga cuidado al elegir bibliotecas, servicios o soluciones empaquetadas.

    
respondido por el Alain O'Dea 30.11.2015 - 00:27
fuente
1

Eche un vistazo a la base de datos Mylar ( enlace ). Utiliza un cifrado homomórfico que le permite utilizar búsquedas cifradas en datos cifrados.

La compensación es en velocidad, por lo que es más útil para unidades de datos pequeñas como mensajes.

    
respondido por el Geir Emblemsvag 30.11.2015 - 09:00
fuente
0

No debe pasar por alto el punto de que sería inútil cifrar cada palabra por separado. Hay palabras limitadas en dicho idioma y se puede calcular el hash para cada cadena. Y puede ser descifrado muy fácilmente. Si el servidor está realizando la búsqueda en su servidor, programelo de manera que no lleve un registro de ninguna información.

    
respondido por el Sanidhay 29.11.2015 - 17:21
fuente
0

No.

Cuando cifras un texto, tiene un hash específico y el resultado del cifrado se basa en todo el texto.

Si cifras o hash solo una palabra, el resultado es totalmente diferente y no puedes buscarlo en los datos cifrados.

Sin descifrado no es posible. Una búsqueda no tiene sentido cuando los datos están encriptados.

Eche un vistazo al resultado del cifrado de mi amigo y yo. No puedes compararlo.

El cifrado está destinado a proteger los datos. Si puedes buscar en él, no sería seguro.

    
respondido por el Daniel Ruf 29.11.2015 - 17:21
fuente

Lea otras preguntas en las etiquetas