Algorytm datafly'a

Algorytm Datafly to algorytm zapewniający anonimowość danych medycznych. Algorytm został opracowany przez Latanyę Arvette Sweeney w latach 1997-98. Anonimizację uzyskuje się poprzez automatyczne uogólnianie, zastępowanie, wstawianie i usuwanie informacji w razie potrzeby bez utraty wielu szczegółów znalezionych w danych. Metodę można stosować w locie w ramach opartego na rolach w instytucji oraz w trybie wsadowym do eksportowania danych z instytucji. Organizacje udostępniają i otrzymują dane medyczne z usuniętymi wszystkimi wyraźnymi identyfikatorami — takimi jak imię i nazwisko — w błędnym przekonaniu, że zachowana jest poufność pacjenta , ponieważ uzyskane dane wyglądają na anonimowe. Pozostałe dane można jednak wykorzystać do ponownej identyfikacji osób, łącząc lub dopasowując dane do innych baz danych lub przeglądając unikalne cechy znalezione w polach i zapisach samej bazy danych .

Algorytm Datafly był krytykowany za próbę osiągnięcia anonimizacji poprzez nadmierne uogólnienie. Algorytm wybiera atrybut z największą liczbą odrębnych wartości jako ten, który ma zostać uogólniony jako pierwszy.

Algorytm podstawowy

Poniżej przedstawiono zarys algorytmu Datafly.

Wejście : Prywatny stół PT; quasi-identyfikator QI = ( A 1 , ..., A n ), k - ograniczenie anonimowości k ; hierarchie uogólnienia domeny DGH A i , gdzie i = 1,..., n wraz z towarzyszącymi im funkcjami f A i oraz strata, która jest ograniczeniem procentu krotek , które można stłumić. PT[id] to zestaw unikalnych identyfikatorów lub kluczy dla każdej krotki.

Wyjście : MGT uogólnienie PT[QI], które wymusza k -anonimowość

Zakłada się : | PT | ≤ k i strata * | PT | = k

algorytm Datafly :

// Skonstruuj listę częstotliwości zawierającą unikalne sekwencje wartości w quasi-identyfikatorze w PT,

// wraz z liczbą wystąpień każdej sekwencji.

1. Niech freq będzie rozwijalnym i składanym wektorem , który początkowo nie zawiera żadnych elementów. Każdy element ma postać (QI, częstotliwość, SID), gdzie SID = { id i : ∃ t [ id ] ∈ [ id ] ⇒ t [ id ] = id i }; oraz częstotliwość = |SID|. Dlatego freq jest również dostępny jako tabela nad (QI, częstotliwość, SID).
2. niech poz 0, łącznie 0
3. podczas gdy suma ≠ | PT | zrobić
3,1 freq [pos] ( t [QI], występuje, SID) gdzie t [QI] ∈ [QI], ( t [QI], __, ___) częstotliwość; występuje = |PT| - |PT[QI] – { t [QI]}|; i SID = { id ja : ∃ t [ id ] PT [id] ⇒ t [ id ] = id ja }
3,2 pos pos + 1, łącznie total + występuje
// Znajdź rozwiązanie, uogólniając atrybut z największą liczbą odrębnych wartości
// i usuwając nie więcej niż dozwoloną liczbę krotek.
4. niech poniżej k 0
5. dla poz 1 do | freq | zrobić
5,1 ( __, liczyć) freq [pos]
5,2 jeśli liczyć < k , to zrobić
5.2.1 poniżej k poniżej k + liczyć
6. jeśli poniżej k > k , to zrobić: // Notatka. strata * |PT| = k .
6.1 freq uogólnić (freq)
6.2 przejść do kroku 4
7. else zrobić
// potwierdzić: liczba krotek do pominięcia w freq wynosi ≤ strata * |PT |
7,1 freq tłumić (częstotliwość, poniżej k)
7,2 MGT rekonstruować (częstotliwość)
8. powrót MGT.

Linki zewnętrzne