Wir erstellen eine Website, auf der Standortinformationen (Punkte) von Benutzern gesammelt werden. Wir erforschen Techniken, um die Privatsphäre der Benutzer zu schützen (z. B. teilen Benutzer häufig ihre Privatadresse, die vertraulich ist). Eine Option, die mir in den Sinn kam, besteht darin, die Punkte zu verschleiern oder zu "hacken", bevor sie in der Datenbank gespeichert werden. Auf diese Weise müssen diese sensiblen Daten überhaupt nicht mehr gespeichert werden.
Unsere Grundvoraussetzungen sind meines Erachtens:
Bei einem einzelnen verschleierten Punkt ist es nicht möglich, den ursprünglichen Punkt innerhalb von (etwa) einem Kilometer abzuleiten, selbst wenn alle mit dem Punkt verbundenen Metadaten vorhanden sind (dh wenn die gesamte Datenbank gefährdet ist).
Bei einer willkürlich großen Menge von verschleierten Punkten, die demselben ursprünglichen Punkt entsprechen, ist es immer noch nicht möglich, den ursprünglichen Punkt abzuleiten. (Eine einfache Methode wäre beispielsweise, dem ursprünglichen Punkt einen zufälligen Vektor hinzuzufügen. Wenn Sie dies jedoch genügend oft tun, werden die verschleierten Punkte um den ursprünglichen Punkt gruppiert.)
Es wäre schön, wenn verschiedene statistische Eigenschaften erhalten blieben, obwohl ich nicht weiß, welche Eigenschaften in dieser Phase wichtig sind. Zum Beispiel wäre es mir lieber, wenn verschleierte Punkte auf "natürliche" Weise verstreut würden, anstatt sich in einem Gitter anzusammeln. Datenschutz ist jedoch wichtiger als dies.
Antworten:
Schauen Sie sich an:
( Zitat , Volltext )
Sie diskutieren verschiedene 'Geomasken' für Punktdaten, einschließlich Verschiebung, Rotation, zufällige Störung und Aggregation. Obwohl sie keine spezifischen technischen Lösungen für die Implementierung diskutieren, gibt es nützliche Hinweise darauf, was Sie bei jedem Ansatz gewinnen / verlieren.
Weitere theoretische Überlegungen finden Sie in meiner Antwort auf die Frage zu einem ähnlichen Thema.
quelle
Sie können versuchen, Ihre Punkte mit Perlin-Rauschen zufällig zu verschieben, aber mit dem Vorteil, dass Punkte, die nahe beieinander liegen, nahe beieinander bleiben, aber diese Ähnlichkeit mit der Entfernung abnimmt. Wenn die Rauschfunktion auf 0 zentriert ist, sollte die statistische Analyse immer noch ähnliche Daten wie die Quelle zurückgeben, da Perlin-Rauschen (insbesondere die Version 2002) eine grobe Gauß-Verteilung ist.
quelle
Dies ist vielleicht komplizierter und komplizierter als nötig, es kann jedoch ein Weg sein, den man nehmen muss:
Erstellen Sie ein einfaches Python-Skript, das Ihre ursprünglichen Eingabepunkte aufnimmt, sie um einen bestimmten zulässigen Verschleierungsabstand puffert, n zufällige Punkte mit den Puffern als Feature-Einschränkung erstellt (z. B. 100) und dann einen der Punkte mit a auswählt Pseudozufallszahlengenerator zur Verwendung als neuer verschleierter Punkt. Es wäre auch notwendig, für jede Verschleierung eine neue Pseudozufallszahl zu erstellen.
Abhängig von Ihrem Szenario kann dies in eine Toolbox gepackt und als GPS-Dienst mit einem REST-Endpunkt aufgerufen werden, sodass die Verschleierung an Speicherorten erfolgt und nur der verschleierte Punkt in Ihrer physischen Datenbank gespeichert wird.
quelle
OK, also der Algorithmus, den wir betrachten, ist wie folgt:
quelle