Kami membuat situs web yang akan mengumpulkan informasi lokasi (poin) dari pengguna. Kami sedang mengeksplorasi teknik untuk menjaga privasi lokasi pengguna (mis., Seringkali pengguna akan membagikan alamat rumah mereka, yang sensitif). Salah satu opsi yang muncul dalam pikiran adalah untuk mengaburkan atau "hash" poin sebelum menyimpannya dalam database, menghilangkan kebutuhan untuk menyimpan data sensitif ini sama sekali.
Persyaratan dasar kami adalah, saya percaya:
Diberikan satu titik yang dikaburkan, tidak mungkin untuk menurunkan titik asli dalam (katakanlah) satu kilometer atau lebih, bahkan mengingat semua metadata yang terkait dengan titik tersebut (yaitu, asumsikan seluruh basis data dikompromikan).
Dengan sejumlah besar titik-titik yang dikaburkan yang sesuai dengan titik asal yang sama, masih tidak mungkin untuk mendapatkan titik semula. (Misalnya, teknik mudah adalah menambahkan vektor acak ke titik asli, tetapi jika Anda melakukan ini cukup kali, titik-titik yang dikaburkan akan mengelompok di sekitar titik asli.)
Akan lebih baik jika berbagai properti statistik dipertahankan, meskipun saya tidak tahu properti mana yang penting pada tahap ini. Sebagai contoh, saya lebih suka bahwa titik-titik yang dikaburkan itu tersebar dengan cara "alami" daripada terakumulasi ke dalam kisi-kisi. Namun, privasi lebih penting daripada ini.
Jawaban:
Lihatlah:
( kutipan , teks lengkap )
Mereka membahas berbagai 'geo-masker' untuk data titik termasuk perpindahan, rotasi, gangguan acak dan agregasi. Meskipun mereka tidak membahas solusi teknis spesifik tentang cara mengimplementasikannya, ada petunjuk bermanfaat untuk informasi tentang apa yang Anda dapatkan / lepas dengan setiap pendekatan.
Untuk pertimbangan yang lebih teoretis, lihat jawaban saya untuk pertanyaan tentang topik serupa.
sumber
Anda bisa mencoba menggunakan Perlin noise untuk menggeser poin Anda dengan jumlah acak, tetapi dengan keunggulan bahwa poin yang dekat satu sama lain akan tetap dekat satu sama lain, tetapi kesamaan ini jatuh karena jarak. Jika fungsi noise terpusat sekitar 0, analisis statistik masih harus mengembalikan data yang sama seperti pada sumbernya, karena noise Perlin (terutama versi 2002) adalah distribusi Gaussian kasar.
sumber
Ini mungkin lebih berbelit-belit dan terlibat daripada yang dibutuhkan, namun ini mungkin rute yang harus diambil:
Buat skrip python sederhana yang mengambil titik input asli Anda, buffer mereka dengan jarak mengaburkan tertentu yang dapat diterima, membuat n jumlah titik acak menggunakan buffer sebagai kendala fitur (100, misalnya), dan kemudian memilih salah satu poin menggunakan pseudo-random number generator untuk digunakan sebagai titik baru yang dikaburkan. Penting juga untuk membuat nomor pseudo-acak baru untuk setiap kebingungan.
Bergantung pada skenario Anda, ini dapat dikemas dalam Toolbox dan diakses sebagai layanan GPS dengan titik akhir REST sehingga kebingungan muncul di lokasi memori dan hanya titik yang dikaburkan diposting ke database fisik Anda.
sumber
OK, jadi algoritma yang kami pertimbangkan adalah sebagai berikut:
sumber