¿Qué técnicas simples y efectivas para ofuscar puntos están disponibles?

14

Estamos creando un sitio web que recopilará información de ubicación (puntos) de los usuarios. Estamos explorando técnicas para preservar la privacidad de la ubicación de los usuarios (por ejemplo, a menudo los usuarios compartirán la dirección de su casa, lo cual es confidencial). Una opción que vino a la mente es ofuscar o "hash" los puntos antes de almacenarlos en la base de datos, eliminando la necesidad de almacenar estos datos confidenciales en absoluto.

Nuestros requisitos básicos son, creo:

  1. Dado un solo punto ofuscado, no es posible derivar el punto original dentro de (por ejemplo) un kilómetro, incluso teniendo en cuenta todos los metadatos asociados con el punto (es decir, suponga que toda la base de datos está comprometida).

  2. Dado un conjunto arbitrariamente grande de puntos ofuscados que corresponden al mismo punto original, todavía no es posible derivar el punto original. (Por ejemplo, una técnica fácil sería agregar un vector aleatorio al punto original, pero si lo hace suficientes veces, los puntos ofuscados se agruparán alrededor del punto original).

Sería bueno si se preservaran varias propiedades estadísticas, aunque no sé qué propiedades son importantes en esta etapa. Por ejemplo, prefiero que los puntos ofuscados se dispersen de una manera "natural" en lugar de acumularse en una cuadrícula. Sin embargo, la privacidad es más importante que esto.

    
pregunta Reid 20.06.2012 - 00:13

4 respuestas

6

Echa un vistazo a:

  

MP Armstrong, Rushton G, Zimmerman DL. Enmascaramiento geográfico de los datos de salud para preservar la confidencialidad . Stat Med.1999; 18: 497–525.

( cita , texto completo )

Discuten diferentes 'geo-máscaras' para datos de puntos que incluyen desplazamiento, rotación, perturbación aleatoria y agregación. Aunque no discuten soluciones técnicas específicas sobre cómo implementarlo, hay sugerencias útiles para obtener información sobre lo que gana / pierde con cada enfoque.

Para más consideraciones teóricas, eche un vistazo a mi respuesta a la pregunta sobre tema similar.

    
respondido por el radek 20.06.2012 - 11:54
1

Puedes intentar usar ruido Perlin para cambiar tus puntos en una cantidad aleatoria, pero con la ventaja de que los puntos se acercan a Los demás se mantendrán cerca uno del otro, pero esta similitud disminuye con la distancia. Si la función de ruido se centra alrededor de 0, el análisis estadístico aún debería devolver datos similares a los de la fuente, ya que el ruido Perlin (especialmente la versión de 2002) es una distribución aproximadamente gaussiana.

    
respondido por el MerseyViking 20.06.2012 - 21:59
0

Esto quizás sea más complicado y complicado de lo que se necesita, sin embargo, puede ser una ruta a seguir:

Cree un script de Python simple que tome sus puntos de entrada originales, los amortigua con una cierta distancia de ofuscación aceptable, crea n número de puntos aleatorios usando los buffers como una restricción de características (100, por ejemplo), y luego selecciona uno de los puntos que utilizan un generador de números pseudoaleatorios para usar como el nuevo punto ofuscado. También sería necesario crear un nuevo número pseudoaleatorio para cada ofuscación.

Dependiendo de su escenario, esto se puede empaquetar en una Caja de herramientas y se puede acceder a él como un servicio GPS con un punto final REST para que se produzca la ofuscación en ubicaciones de memoria y solo el punto ofuscado se publique en su base de datos física.

    
respondido por el AHigh 20.06.2012 - 01:51
0

Bien, el algoritmo que estamos considerando es el siguiente:

  1. Redondea el punto a una cuadrícula de 200 metros (para compensar los caprichos en la geocodificación).
  2. Hash el texto de las coordenadas del punto usando algún algoritmo de hash criptográfico (por ejemplo, SHA2).
  3. Reemplace los bits de orden inferior de las coordenadas del punto (hasta el nivel de ofuscación deseado de 1 km) con los resultados de la función hash.
respondido por el Reid 09.07.2012 - 19:48

Lea otras preguntas en las etiquetas