Karol STACHURSKI - Studia Informatica

Transkrypt

Karol STACHURSKI - Studia Informatica
STUDIA INFORMATICA
Volume 26
2005
Number 2 (63)
Marcin GORAWSKI, Karol STACHURSKI
Politechnika Śląska, Instytut Informatyki
OCENA ALGORYTMÓW ODKRYWANIA REGUŁ ASOCJACJI
WRAZ Z OCHRONĄ PRYWATNOŚCI DANYCH
Streszczenie. Artykuł opisuje dwa algorytmy odkrywania reguł asocjacji
z zachowaniem prywatności danych, HPSU i VPSI. Przedstawia on problem ochrony
prywatności danych w rozproszonych obliczeniach i ewolucje modelu bezpiecznych
obliczeń. Zaprezentowana jest również krótka charakterystyka odkrywania reguł asocjacji i scharakteryzowane są metody ochrony danych. Ostatecznie przedstawione są
wyniki testów wydajnościowych zaimplementowanych algorytmów HPSU i VPSI.
Słowa kluczowe: reguły asocjacji, prywatność, ochrona.
EFFICIENCY OF ASSOCIATION RULES MINING ALGORITHMS
WITH PRESERVING DATA PRIVACY
Summary. The article presents two algorithms of association rule mining with preserving data privacy, HPSU and VPSI. It introduces the problem of data privacy in
distributed computation and shows the evolution of secure computation model. Used
methods in algorithms are briefly reviewed. Finally the results of tests are presented
and analyzed.
Keywords: association rules, privacy, security.
1. Wstęp
Obecnie, przy nasilającej się globalizacji, aby uzyskać dane opisujące teraźniejszą
i przeszłą działalność każdej korporacji, należy sięgnąć do wielu źródeł powiązanych ze sobą
danych. Źródła te jednak na ogół nie mają wspólnego właściciela, co w świetle rygorów bezpieczeństwa i dużej konkurencji uniemożliwia uzyskanie do nich jednoczesnego dostępu.
Dane z jednego źródła odwzorowują tylko część procesu biznesowego. Firma posiada wielu
kontrahentów, którzy mają dane dotyczące działalności danej firmy. Jako przykład rozważmy
50
M. Gorawski, K. Stachurski
firmę produkującą obuwie. Firma posiada jedynie dane o sprzedaży obuwia swoim kontrahentom, czyli sklepom. Dane te przedstawiają liczbę sprzedanych butów danego rodzaju
i danego modelu danemu kontrahentowi w danym dniu oraz zawierają informacje o każdej
serii i modelu każdego wyprodukowanego obuwia, czyli użyte materiały, źródło materiałów,
miejsce produkcji butów, czas produkcji. Kontrahenci, czyli sprzedawcy detaliczni, posiadają
dane opisujące transakcję. Transakcja składa się z identyfikatora serii obuwia, do którego należała sprzedana para, ceny sprzedaży oraz charakterystyki klienta, jego płci, wieku, wagi,
rodzaju zatrudnienia itp. Firma produkująca obuwie dostaje dużo reklamacji jednego modelu
butów. Jednak nie posiadając informacji charakteryzujących użytkowników danych butów,
nie jest w stanie zidentyfikować wady obuwia. Innym, tym razem rzeczywistym, przykładem
jest przypadek firm Ford i Firestone. Ford Explorer z oponami Firestone miał w pewnych
modelach problem z bieżnikiem, co w efekcie doprowadziło do 800 awarii. Ponieważ opony
te w innych modelach sprawowały się dobrze oraz Ford Explorer z innymi oponami nie miał
podobnych problemów, żadna ze stron nie przyjmowała winy na siebie. Oba koncerny
odkładały identyfikację problemu, czego efektem była konieczność wymiany 14.1 miliona
opon [1]. Wiele z nich było prawdopodobnie nieuszkodzonych. W samochodach marki Ford
Explorer naliczono 6.5 miliona uszkodzonych opon spośród wszystkich wymienionych [2].
Wczesna generacja reguł asocjacji na podstawie wszystkich danych (obu koncernów) mogła
rozwiązać problem, zanim stał on się koszmarem dla obu firm.
2. Bezpieczne obliczenia
Bezpieczne analizy z udziałem kilku storn początkowo były przeprowadzane z udziałem
strony zaufanej. Zainteresowane firmy wynajmowały instytucję, wykonującą obliczenia
i zwracającą firmom tylko rezultat obliczeń. Jest to model idealny bezpiecznych obliczeń.
STRO NA ZAUFANA
STRO NA 1
STRO NA 2
STRO NA 3
p rz e s yła n e lo k a ln e d a n e
p rz e s yła n e w yn ik i
Rys. 1. Idealny model bezpiecznych obliczeń
Fig. 1. Classical model of secure computation
Obecnie stronę zaufaną zastępuje się odpowiednim algorytmem, a model idealny wykorzystuje się do zdefiniowania poziomu bezpieczeństwa w rzeczywistym modelu (bez strony
Ocena algorytmów odkrywania reguł asocjacji wraz z ochroną prywatności danych
51
zaufanej). O protokole (algorytmie) mówimy, że jest bezpieczny, jeżeli wszelkie prywatne
informacje, które ujawnia, ujawniane są również w odpowiadającym modelu idealnym.
Przykładem bezpiecznych obliczeń jest przykład obliczeń z większością stron uczciwych
(majority-honest). W modelu tym istnieje prawdopodobieństwo, że mniejszość stron może
być ze sobą w zmowie i w efekcie strony te mogą razem przed wykonaniem protokołu ustalić
wspólnie fałszywe dane wejściowe. Po wykonaniu protokołu na podstawie wyniku i swoich
danych wejściowym będą chciały ustalić prywatne dane wejściowe pozostałych stron. Strony
nieuczciwe mogą również w dowolnym momencie przerwać wykonywanie protokołu. Aby
zasymulować ten model idealny, potrzebny jest rzeczywisty model bezpiecznych obliczeń
z większością stron uczciwych. W modelu tym strony nieuczciwe są symulowane przez strony, które mogą wspólnie ustalić fałszywe dane wejściowe, oraz które mogą przerwać wykonywanie protokołu przed wysłaniem swoich danych wejściowych lub po wysłaniu ich. Model
rzeczywisty nie może umożliwić stroną nieuczciwym uzyskania poufnych informacji stron
pozostałych, podobnie jak jest to w modelu idealnym.
Innym przykładem są obliczenia z ograniczoną uczciwością stron (semi-honest).
W modelu tym każda ze stron wykonuje protokół w całości (nie przerywa procedury), ale
wykorzystuje wszelkie dane do niej przychodzące do wyznaczenia poufnych danych innych
stron.
STRONA 2
STRONA 1
STRONA 3
przesyłane dane zaszyfrowane
lub zniekształcone
Rys. 2. Rzeczywisty model bezpiecznych obliczeń
Fig. 2. Realistic model of secure computation
Prezentowane przez nas algorytmy odkrywania reguł asocjacji zachowują prywatność danych w modelu semi-honest. Do tego celu wykorzystują opracowane wcześniej metody bezpiecznych obliczeń matematycznych, metody kryptograficzne oraz specyficzne metody dla
procesu odkrywania reguł asocjacji.
Przedstawione w pracy metody matematyczne skłoniły nas do modyfikacji istniejących
algorytmów. Badania nad modyfikacją algorytmów trwają nadal i testowany jest wpływ modyfikacji na wydajność oraz poziom ochrony danych.
52
M. Gorawski, K. Stachurski
3. Prace pokrewne
Dotychczas opracowano cztery algorytmy odkrywania reguł asocjacji z zachowaniem
prywatności danych. Algorytm HPSU [3] opracowany przez Murat Kantarcioglu i Chris Clifton, algorytm zniekształcania danych transakcyjnych [4] opracowany przez Alexandre Evfimievski, Ramakrishnan Srikant, Rakesh Agrawal i Johannes Gehrke, algorytm VPSI przedstawiony w tej pracy oraz algorytm wykorzystujący iloczyn skalarny [5] autorstwa Jaideep
Vaidya i Chris Clifton. Każdy algorytm wykorzystuje jedno z dwóch rodzajów partycjonowania danych, partycjonowanie poziome lub partycjonowanie pionowe. Partycjonowanie poziome polega na umieszczeniu w każdej ze stron bazy wszystkich elementów transakcji i następnie podzieleniu transakcji pomiędzy strony. W partycjonowaniu pionowym zbiór elementów dzielony jest pomiędzy strony. Każda strona zawiera dla wszystkich przechowywanych
elementów listę transakcji, w których występuje dany element.
Jednym z rozwiązań jest zniekształcanie bazy transakcji [4] poprzez usuwanie niektórych
elementów z transakcji i zastępowanie ich innymi elementami. Zniekształcone transakcje nie
zawierają poprawnych danych, przez co na ich podstawie nie można uzyskać prywatnych informacji, co czyni algorytm bezpiecznym. Analiza wykonywana jest w oparciu o rachunek
prawdopodobieństwa i polega na generowaniu przybliżonych wyników. Algorytm ten wykorzystuje poziome partycjonowanie danych.
Kolejnym powstałym algorytmem dla poziomo partycjonowanych danych jest algorytm
wyznaczający w sposób bezpieczny unię zbiorów lokalnie częstych i wykorzystujący bezpieczne wyznaczanie sumy do testowania, czy dany zbiór jest zbiorem globalnie częstym [3].
Algorytm ten został zaimplementowany w poniższym systemie i przetestowany.
W przypadku pionowo partycjonowanych danych opracowany został algorytm wykorzystujący iloczyn skalarny [5]. Algorytm ten wykorzystuje operację bezpiecznego wyznaczania
iloczynu skalarnego do wyznaczenia częstości zbiorów i wykorzystywany jest w odkrywaniu
binarnych reguł asocjacji, gdzie predykat może przyjmować dwie wartości 0 lub 1, odpowiadające kolejno obecności w transakcji lub nieobecność. Wektorami operacji są tablice, których każda komórka reprezentuje transakcję. Jeżeli w komórce jest wartość 1, oznacza to, że
dany zbiór występuje w transakcji, jeżeli 0 oznacza, że dany zbiór nie występuje w transakcji.
Algorytm ten ma jednak istotną wadę, może zostać użyty tylko w przypadku dwóch stron.
Rozszerzenie go do obsługi wielu stron nie jest proste.
Innym algorytmem obsługującym pionowy układ bazy jest algorytm wyznaczania częstości zbioru poprzez operację przecięcia kodowanych list transakcji [6]. Algorytm ten został
zaimplementowany i przetestowany. Wprowadzono w nim kilka modyfikacji mających na
celu zwiększenie poziomu bezpieczeństwa danych i poprawienie wydajności.
Ocena algorytmów odkrywania reguł asocjacji wraz z ochroną prywatności danych
53
4. Reguły asocjacji
Załóżmy, że mamy zbiór elementów I, bazę transakcji D, z czego każda transakcja ma
unikatowy identyfikator (tid) i zawiera listę elementów. Zbiór zawierający k elementów nazywamy zbiorem k-elementowym. Wsparciem zbioru elementów nazywamy stosunek liczby
transakcji, w których występują wszystkie elementy zbioru do liczby wszystkich transakcji
w bazie i oznaczamy je σ(X). Zbiór nazywamy częstym, jeśli jego wsparcie jest większe od
podanego przez użytkownika minimalnego wsparcia. Fk jest zbiorem zbiorów k-elementowych. Zbiór częsty jest maksymalny, jeśli nie jest podzbiorem innych zbiorów częstych.
Reguła asocjacji to wyrażenie A⇒B, gdzie A i B są zbiorami elementów. Wsparcie reguły
to wsparcie zbioru ( A ∪ B) . Stopień zaufania reguły to stosunek liczby transakcji, w których
występują zbiory A i B, do liczby transakcji, w których występuje zbiór A i wyraża się wzorem σ ( A ∪ B) / σ ( A) . Reguła jest częsta, jeśli jej wsparcie jest większe od minimalnego
wsparcia i jest silna, jeśli jej stopień zaufania jest większy od minimalnego ustalonego progu.
Proces odkrywania wiedzy przy użyciu reguł asocjacji wymaga wygenerowania wszystkich reguł asocjacji, które spełniają kryterium minimalnego wsparcia (są regułami częstymi)
i spełniają kryterium minimalnego stopnia zaufania (są regułami silnymi). Zadanie to składa
się z dwóch kroków [8]:
•
Znaleźć wszystkie zbiory częste spełniające kryterium minimalnego wsparcia. Liczba
wszystkich możliwych zbiorów częstych jest funkcją wykładniczą 2m, gdzie m jest
liczbą elementów. Jednak gdy przyjmiemy ograniczenie liczby elementów transakcji,
algorytm szukania reguł asocjacji stanie się liniowy w stosunku do wielkości bazy
danych.
•
Wygenerować ze zbiorów częstych silne reguły spełniające kryterium minimalnego
wsparcia. Dla każdego zbioru częstego generujemy reguły, których postaci X\Y⇒Y,
gdzie Y⊂X i X jest zbiorem częstym. Ponieważ musimy sprawdzać każdy podzbiór
zbioru X jako głowę reguły, implikuje to złożoność generowania wszystkich reguł
rzędu O(r*2l), gdzie r jest liczbą zbiorów częstych i l jest rozmiarem największego
zbioru częstego.
4.1. Algorytmy odkrywania reguł asocjacji
Początki prac nad procesem odkrywania reguł asocjacji sięgają lat dziewięćdziesiątych.
Efektem tych prac jest wiele algorytmów odkrywających reguły asocjacji w zbiorze transakcji. Podstawowym algorytmem, na którym bazuje wiele innych, jest algorytm A priori [9]
autorstwa R. Agrawala. Algorytm wykorzystuje własność A priori do odrzucania zbiorów,
które na pewno nie będą zbiorami częstymi. Reguły asocjacji mogą być odkrywane na róż-
54
M. Gorawski, K. Stachurski
nych poziomach abstrakcji w przypadku hierarchicznej bazy elementów. Przypadek ten rozważany jest w pracy [10]. Tempo gromadzenia danych w bazach i hurtowniach danych spowodowało, że dotychczasowe szeregowe algorytmy były niewystarczające. Rozpoczęto zatem prace nad równoległymi algorytmami odkrywania reguł asocjacji. Wiele z nich bazuje na
algorytmie A priori. Analizę tych algorytmów przedstawia praca Agrawala [11] oraz praca
M. Zakiego [12].
Przedstawione w pracy algorytmy wykorzystują równoległą wersję algorytmu A prori
oraz metody ochrony danych przedstawione w następnym rozdziale. Warto zaznaczyć, że istnieją inne metody i własności odkrywania reguł asocjacji, które mogą służyć do ochrony
prywatności danych. W pracy M. Kryszkiewicz [13] przedstawiono sposób wyznaczania reguł asocjacji na podstawie zbioru wcześniej wyznaczonych reguł. Metoda ta pozwala nie tylko na zmniejszenie ilości potrzebnych obliczeń, ale również na zmniejszenie liczby ujawnianych prywatnych danych.
4.2. Bezpieczeństwo danych w odkrywaniu reguł asocjacji
W procesie odkrywania reguł asocjacji prywatnymi informacjami każdej strony są:
•
zawartość transakcji,
•
liczba transakcji,
•
wsparcie zbiorów elementów,
•
zbiory częste,
•
liczba zbiorów częstych,
• stopień zaufania reguł asocjacji.
Zaimplementowane algorytmy chronią powyższe dane w modelu semi-honest dla trzech
lub większej liczby stron.
5. Algorytmy chroniące prywatność danych
5.1. Wykorzystywane metody matematyczne i kryptograficzne
Proponowane algorytmy odkrywania reguł asocjacji, chroniące prywatność danych, bazują na metodach matematycznych i kryptograficznych.
5.1.1. Przemienne kodowanie
Przemienne kodowanie jest bardzo dobrą techniką, która może być użyta w wielu protokołach zachowujących prywatność danych. Kodujący algorytm jest przemienny, jeżeli speł-
Ocena algorytmów odkrywania reguł asocjacji wraz z ochroną prywatności danych
55
nione są dwa poniższe warunki dla dowolnych wykonalnych kluczy kodujących K1, ..., Kn ∈
K, dla dowolnego elementu m w domenie M i dla dowolnej permutacji zmiennych i, j.
E Ki1 (...EKin ( M )...) = EK j1 (...EK jn ( M )...)
∀ M1, M2 ∈ M i M1≠M2 i dla danego k, ∈ <
(1)
1
2k
Pr ( E K i1 (...E K in ( M 1 )...) = E K j1 (...E K jn ( M 2 )...))
(2)
Za pomocą powyższych własności można łatwo wykryć, czy dwa elementy są jednakowe
bez znajomości ich wartości. Na przykład, strona A posiada element iA i strona B posiada
element iB. W celu sprawdzenia, czy elementy są równe, obie strony kodują swoje elementy
B
i przesyłają je do przeciwnej strony: strona A przesyła E K A (i A ) do strony B, strona B przesy-
ła E K B (i B ) do strony A. Każda strona koduje otrzymaną wartość swoim kluczem (strona A:
E K A ( E K B (i B )) , strona B: E K B ( E K A (i A )) . Następnie, obie strony porównują zakodowane dane.
Jeżeli oryginalne elementy są jednakowe, równanie 1 gwarantuje, że posiadają takie same
wartości zakodowane. Jeśli są różne, równanie 2 z dużym prawdopodobieństwem zapewnia,
że ich zakodowane wartości są różne. Podczas porównania każda ze stron zna jedynie zakodowane dane strony przeciwnej. Zakładając, że zastosowane kodowanie jest bezpieczne, metoda ta umożliwia porównywanie elementów bez ujawniania ich wartości.
5.1.1.1. Schemat enkrypcji Pohlig-Hellman
Przykładem kodowania przemiennego jest kodowanie Pohilg-Hellmana [14], (metoda
klucza prywatnego). Opiera się ona na Małym Twierdzeniu Fermata, które brzmi następująco:
Twierdzenie [14]
Niech p będzie liczbą pierwszą, a ∈ Z, a ≡/ 0(mod p ), to a
p −1
≡ 1(mod p ).
Dla dużej liczby pierwszej p, dla której liczba p-1 nie ma małych współczynników, obie
strony wybierają losowe wartości e, d takie, że e * d = 1(mod p − 1). Wartością zakodowaną
wiadomości M jest wartość M e (mod p). Dekodowanie zaszyfrowanego tekstu C jest uzyskane przez wyznaczenie C d (mod p). C d = M ed (mod p ) i na podstawie małego twierdzenia
Fermata, M ed (mod p ) = M 1+ k ( p −1) (mod p) = M (mod p ).
Łatwo zauważyć, że Pohlig-Hellman ze współdzielonym p spełnia równanie 1. Przyjmijmy, że istnieje n różnych par kodujących i dekodujących (e1 , d1 ),..., (en , d n ) . Dla dowolnej
funkcji permutującej i, j i E = e1 * e2 * ... * en = ei1 * ei2 * ... * ein = ei1 * ei2 * ... * ein (mod p − 1)
56
M. Gorawski, K. Stachurski
e
e
Eei (...Eei ( M )...) = (...((M in (mod p)) in−1 (mod p))...) i1 (mod p))
1
e
n
e *e
...*e
= M in in−1 i1 (mod p) = M E (mod p) = M
= Ee j1 (...Ee jn ( M )...)
e jn *e jn −1 ...*e j1
(mod p)
(3)
Równanie (3) jest również prawdziwe w przypadku schematu kodowania Pohlig-Hellmana. Niech M1, M2 ∈ GF(p) i M1 ≠ M2. Dowolny porządek kodowania wykonywanego
przez wszystkie strony jest równoznaczny z wyznaczaniem potęgi stopnia E mod p , gdzie
E = e1 * e2 * ... * en . Przyjmijmy, że po operacji kodowania zmienne M1i M2 mapowane są do
E
E
tej samej wartości. Wynika z tego, że M 1 (mod p) = M 2 (mod p ) . Poprzez podniesienie
obu stron do potęgi D = d1 * d 2 * ... * d n (mod p − 1) otrzymujemy M 1 (mod p ) = M 2 (mod p ) ,
czyli otrzymujemy sprzeczność. Zaznaczmy, że dla
E * D = e1 * e2 * ... * en * d1 * d 2 * ... * d n = 1(mod p − 1)
prawdopodobieństwo zajścia sytuacji, w której dwa różne elementy mapowane są do tej
samej wartości, wynosi zero.
5.1.2. Bezpieczne wyznaczanie sumy
Wyznaczanie bezpiecznej sumy wykorzystane jest w wielu algorytmach odkrywania wiedzy, m.in. w algorytmie HPSU. Metoda polega na bezpiecznym wyznaczeniu wartości:
S =
∑
l
i =1
xi
(4)
gdzie: l jest liczbą stron, xi jest wartością strony i. Prywatność danych jest zachowana, jeżeli żadna ze stron nie pozna wartości x należącej do dowolnej innej strony. Metoda polega
na wybraniu jednej ze stron, nazywaną stroną master i mającą numer 1, która to strona będzie
inicjować wykonywanie operacji oraz kończyć operację. Strona ta losuje wartość R przy użyciu rozkładu jednostajnego. Następnie wykonywane jest cykliczne obliczanie. Strona 1 wysyła do strony numer 2 wartość R + x1, strona 2 do otrzymanej wartości dodaje wartość x2
i przesyła do strony 3 itd. Ostatnia, strona l wyznaczoną wartość wysyła do strony 1. Strona
ta odejmuje od otrzymanej wartości liczbę R uzyskując w ten sposób oczekiwaną wartość S.
Metoda ta jest skuteczna w przypadku modelu semi-honest.
5.1.3. Bezpieczne wyznaczanie sumy zbiorów
Metoda wykorzystywana jest w niektórych algorytmach wykonujących operację na zbiorach. Wykorzystywana jest ona w obu implementowanych algorytmach HPSU i VPSI. Polega ona na bezpiecznym wyznaczeniu sumy zbiorów:
l
U = Ui =1 z i
(5)
Ocena algorytmów odkrywania reguł asocjacji wraz z ochroną prywatności danych
57
gdzie: l jest liczbą stron, zi jest zbiorem strony i. Prywatność danych jest zachowana, jeżeli
żadna ze stron nie pozna żadnego elementu zbioru żadnej innej strony. Metoda ta kryje również informacje o liczbie stron, w których występuje dany, nie zakodowany element. Oczywiście niemożliwe do ukrycia są poniższe dwie informacje:
•
strona nie zawierająca elementu e, na podstawie faktu, że element ten występuje
w wyniku końcowym, wie, że co najmniej jedna ze stron zawiera ten element,
•
każda strona posiadając zbiór wszystkich możliwych elementów, wie, że elementy,
które nie znajdują się w końcowym wyniku, nie występują w żadnej ze stron.
Podobnie jak w przypadku wyznaczania bezpiecznej sumy, metoda wykonuje dwa cykliczne obliczenia. Pierwsze obliczenie polega na kodowaniu elementów, drugie polega na
dekodowaniu elementów. Wykorzystywana jest dowolna metoda przemiennego kodowania.
Wybierana jest strona master, której rola sprowadza się do gromadzenia wyników operacji.
Każda strona koduje swoje elementy i przesyła je do następnej strony wylosowanej przez
siebie lub wyznaczonej przez stronę master. Gdy strona otrzyma zakodowane elementy, koduje je i przesyła do kodowania do następnej strony lub przesyła je do strony master, gdy
elementy zostały już zakodowane przez wszystkie strony. Strona master otrzymawszy zakodowane elementy wszystkich stron wyznacza sumę otrzymanych zbiorów elementów. Eliminowane są w ten sposób te same elementy, pochodzące z różnych stron, ponieważ pomimo
różnej kolejności kodowania posiadają tę samą identyfikującą je wartość. Jest to własność
kodowania przemiennego. Po wyznaczeniu sumy zakodowanych zbiorów strona master dekoduje zbiory i przesyła je do następnej strony, która również dekoduje je i przesyła dalej itd.
Po operacji dekodowania przez wszystkie strony zbiór elementów trafia do strony master.
Jest on oczekiwanym zbiorem końcowym U.
Jak widać, metoda nie ujawnia elementów danej strony żadnej innej stronie. Jednak nie
wszystkie informacje, nie wynikające z końcowego wyniku i lokalnego zbioru elementów, są
chronione. Ujawniana jest liczba stron posiadających wspólny element, np. jeśli po pierwszej
fazie strona master otrzymała k takich samych elementów, oznacza to, że k stron posiada jeden wspólny element.
5.1.4. Bezpieczne wyznaczanie rozmiaru przecięcia zbiorów
Bezpieczne wyznaczanie rozmiaru przecięcia zbiorów jest wykorzystywane w algorytmie
VPSI do wyznaczania częstości globalnej zbiorów elementów. Metoda ta bazuje, tak jak poprzednie, na cyklicznych obliczeniach oraz na przemiennym kodowaniu tak jak bezpieczne
wyznaczanie sumy zbiorów. Metoda bezpiecznego wyznaczania rozmiaru przecięcia zbiorów
wykorzystuje tylko pierwszą fazę kodowania. Faza dekodowania nie jest wykorzystywana.
Celem metody jest wyznaczenie liczności przecięcia zbiorów wszystkich stron:
l
C = Ii =1 z i
(6)
58
M. Gorawski, K. Stachurski
gdzie: l jest liczbą stron, zi jest zbiorem strony i. Prywatność danych jest zachowana, jeżeli
żadna ze stron nie pozna żadnego elementu zbioru żadnej innej strony. Przebieg operacji jest
taki sam jak w przypadku pierwszej fazy bezpiecznego wyznaczania sumy zbiorów. Różnica
polega na tym, że strona master po otrzymaniu zakodowanych zbiorów ze wszystkich stron
wykonuje operację przecięcia zbiorów. Wynikiem końcowym jest liczba elementów zbioru
będącego wynikiem operacji przecięcia.
Pod względem ukrywania i ujawniania informacji, metoda ta zachowuje się identycznie
jak metoda bezpiecznego wyznaczania sumy zbiorów, ponieważ przeprowadzana wymiana
danych jest identyczna.
5.2. Algorytm HPSU
Algorytm HPSU (ang. Horizintal Partitioning Secure Union) został opracowany przez
Murata Kantarcioglua i Chrisa Cliftona i przedstawiony w pracy [3]. Odkrywa on reguły asocjacji w poziomo partycjonowanej bazie danych, wykorzystując bezpieczne wyznaczanie
sumy zbiorów elementów. Algorytm wyznacza wszystkie zbiory częste oraz wszystkie silne
i pewne reguły asocjacji. Algorytm przeprowadza analizę metodą bottom-up, czyli zaczyna
od zbiorów jednoelementowych. Do generacji kandydatów wykorzystuje własność A priori
[9, 8]. Algorytm nie wyznacza częstości zbiorów częstych, tylko bada, czy ich wsparcie jest
większe lub równe minimalnemu wymaganemu wsparciu. To samo dotyczy stopnia zaufania
reguł.
Kroki algorytmu w jednej iteracji, w której badane są zbiory o jednakowym rozmiarze:
1. Wszystkie węzły generują listę kandydatów przy wykorzystaniu własności A priori
z przecięcia listy zbiorów lokalnie częstych poprzedniej iteracji z listą zbiorów globalnie częstych poprzedniej iteracji
2. Każda strona wykonuje operację lokalnego odrzucania kandydatów, pozostawiając
tylko zbiory lokalnie częste. W celu ukrycia liczby zbiorów lokalnie częstych każda
strona dodaje do listy zbiorów zbiory fałszywe. Liczba dodawanych fałszywych zbiorów jest losowana z rozkładu jednostajnego i końcowa liczba zbiorów nie może przekroczyć liczby kandydatów.
3. Następnie wyznaczana jest suma zbiorów lokalnie częstych. Zbiory lokalnie częste są
kodowane w każdym węźle i przesyłane do kodowania do następnego węzła. Jeśli
zbiory zostały zakodowane przez wszystkie strony, węzły parzyste wysyłają zbiory do
węzła 1, węzły nieparzyste do węzła 0.
4. Węzeł 1 wyznacza sumę otrzymanych zbiorów i przesyła ją do węzła 0.
5. Węzeł 0 wyznacza sumę otrzymanych wszystkich zbiorów.
6. Strona 0 wysyła zbiory do jednej strony w celu dekodowania.
7. Następnie każdy węzeł dekoduje te zbiory, które ostatecznie przesyłane są do węzła 0.
Ocena algorytmów odkrywania reguł asocjacji wraz z ochroną prywatności danych
59
8. Węzeł 0 odrzuca wszystkie zbiory fałszywe. Pozostałe zbiory tworzą unię zbiorów
lokalnie częstych.
9. Węzeł 0 losuje wartość R, którą dodaje do nadmiarowego wsparcia wszystkich zbiorów lokalnie częstych i wysyła każdy zbiór z wyznaczoną wartością do jednego węzła.
10. Nadmierne wsparcie zbioru w danym węźle wynosi: X . sup − min_ sup* DB .
11. Węzeł ten wyznacza nadmiarowe wsparcie zbioru w danym węźle i dodaje do otrzymanej ze zbiorem wartości. Następnie wysyła zbiór i wartość do kolejnej strony.
12. Gdy zbiór trafia z powrotem do węzła 0, porównywalna jest otrzymana wartość
z liczbą R. Jeśli liczba R jest większa, zbiór nie jest zbiorem globalnie częstym i jest
odrzucany. W przeciwnym wypadku zbiór zostaje dodany do kolekcji zbiorów globalnie częstych.
13. Jeżeli liczba zbiorów globalnie częstych jest większa od 1, operacja powtarza się dla
zbiorów k+1-elementowych
14. Badanie, czy stopień zaufania reguły asocjacji jest większy od ustalonego minimum,
odbywa się w identyczny sposób jak badanie wsparcia w punktach 10-12.
15. Nadmierny stopień zaufania
XY . sup − min_ conf * X . sup
reguły
X→Y
w
danym
węźle
wynosi:
5.3. Algorytm VPSI
Algorytm VPSI (ang. Vertical Partitioning Secure Intersection) opracowaliśmy przy użyciu metod ochrony danych opisanych w [6]. Użyliśmy również sprawdzonego w algorytmie
HPSU odrzucania kandydatów metodą bezpiecznego wyznaczania sumy zbiorów. Algorytm
VPSI wykorzystuje pionowo partycjonowaną bazę danych oraz bezpieczne wyznaczanie
wielkości przecięcia zbiorów. Podobnie jak algorytm HPSU wyznacza wszystkie zbiory częste i wszystkie silne oraz pewne reguły asocjacji. W przeciwieństwie do algorytmu HPSU
wyznacza wsparcie zbiorów oraz stopień zaufania reguł. Wykorzystuje również własność
A priori do wyznaczania kandydatów oraz metodę bottom-up.
Kroki algorytmu w jednej iteracji, w której badane są zbiory o jednakowym rozmiarze:
1. Węzeł 0 generuje listę kandydatów przy wykorzystaniu własności A priori z listy
zbiorów globalnie częstych poprzedniej iteracji.
2. Węzeł 0 wysyła do każdej strony listę kandydatów.
3. Następnie wykonywana jest operacja wyznaczania sumy zbiorów lokalnie częstych
jak w krokach 3-8 algorytmu HPSU.
60
M. Gorawski, K. Stachurski
4. Po wyznaczeniu listy zbiorów lokalnie częstych węzeł 0 wysyła do wszystkich stron
zbiory lokalnie częste w celu wyznaczenia ich częstości za pomocą przecięcia list
transakcji.
5. Każda strona generuje listę transakcji każdego zbioru. Jeżeli żaden z elementów zbioru nie należy do zbioru elementów lokalnych w danym węźle, generowana jest pusta
lista. W celu ukrycia lokalnego wsparcia dla zbioru do listy transakcji dodawane są
fałszywe transakcje. Fałszywe transakcje nie mogą być dublowane na przestrzeni
wszystkich węzłów. Każdy węzeł posiada rozłączną przestrzeń wartości dla własnych
transakcji fałszywych.
6. Każda strona koduje swoje listy transakcji i wysyła je do następnego węzła. Następny
węzeł koduje otrzymane listy i przesyła dalej.
7. Gdy listy będą już zakodowane przez wszystkie węzły, zostają przesłane do węzłów 0
i 1. Strony nieparzyste wysyłają listy do węzła 0, strony parzyste wysyłają listy do
węzła 1.
8. Węzeł 1 wykonuje operację przecięcia list transakcji i wynik przesyła do węzła 0.
9. Węzeł 0 wykonuje operację przecięcia list transakcji dla każdego zbioru elementów.
Rozmiar przecięcia jest częstością zbioru.
10. Węzeł 0 odrzuca zbiory nie spełniające warunku minimalnego wsparcia.
11. Jeżeli liczba zbiorów globalnie częstych jest większa od 1, operacja powtarza się dla
zbiorów k+1-elementowych
12. Stopień zaufania reguł badany jest na podstawie wcześniej wyznaczonych wsparć
zbiorów.
6. Testy
W trakcie testów wykorzystano cztery oddzielne stanowiska klasy PC. Na każdym stanowisku uruchomiona była baza danych Oracle oraz serwer aplikacji. Stanowiska połączone
były siecią ethernet 100Mbit.
Konfiguracja stanowisk:
•
stanowisko 0: OS Windows XP, Oracle 10i, 512Mb DDR, CPU Athlon XP 2000+
•
stanowisko 1: OS Windows XP, Oracle 10i, 512Mb DDR, CPU Athlon XP 2000+
•
stanowisko 2: OS Windows XP, Oracle 9i, 256Mb DDR, CPU Athlon XP 1600+
• stanowisko 3: OS Windows XP, Oracle 9i, 256Mb DDR, CPU Athlon XP 1600+
Celem testów był pomiar czasu wykonywania algorytmów i liczba przesyłanych danych
pomiędzy serwerami aplikacji.
Ocena algorytmów odkrywania reguł asocjacji wraz z ochroną prywatności danych
61
Testy zostały przeprowadzone na czterech zbiorach transakcji. Parametry zbiorów przedstawia poniższa tabela:
Tabela 1
Zbiory danych
Maksymalna liczba elementów
Nazwa zbioru
Liczba transakcji
w transakcji
300k
300 000
30
600k
600 000
30
900k
900 000
30
1200k
1200 000
30
Zbiory te były wykorzystane do testowania zarówno algorytmu HPSU i algorytmu VPSI.
Umożliwiło to porównanie wydajności obu algorytmów. Transakcje składały się z elementów
jednego wymiaru, w którego skład wchodziło 100 elementów znajdujących się na najniższym
poziomie abstrakcji. Dla każdego zbioru danych przeprowadzone zostały testy dla parametru
minimalnego wsparcia wynoszącego 10%, 12,5% i 15%.
Czasy wykonywania algorytmu HPSU w funkcji całkowitej liczby
zbiorów częstych
2500
czas [s]
2000
zbiór 300k
1500
zbiór 600k
zbiór 900k
1000
zbiór 1200k
500
0
9
29
49
69
89
109
129
149
169
189
liczba zbiorów częstych
Rys. 3. Całkowity czas wykonywania algorytmu HPSU
Fig. 3. Total execution time of HPSU algorithm
Testy były przeprowadzone przy równomiernym rozmieszczeniu danych w węzłach, dla
którego odchylenie standardowe danych wynosiło zero. W przypadku algorytmu HPSU równomiernie zostały rozmieszczone transakcje. W przypadku algorytmu VPSI równomiernie
zostały rozmieszczone elementy wymiaru.
Oba algorytmy są skalowalne pod względem liczby transakcji w bazie danych oraz pod
względem liczby zbiorów częstych. Obrazują to rysunki 3 i 4. Widać na nich, że czas wykonywania jest proporcjonalny do liczby transakcji i do liczby zbiorów częstych.
62
M. Gorawski, K. Stachurski
Czasy w ykonyw ania algorytm u VPSI w funkcji
całkow itej liczby zbiorów częstych
60000
czas [s]
50000
zbiór 300k
40000
zbiór 600k
30000
zbiór 900k
20000
zbiór 1200k
10000
0
9
59
109
159
209
liczba zbiorów częstych
Rys. 4. Całkowity czas wykonywania algorytmu VPSI
Fig. 4. Total execution time of VPSI algorithm
Nierównomierna dystrybucja danych ma silny wpływ na wydajność obu algorytmów.
W algorytmie HPSU nierównomierna dystrybucja występuje w przypadku różnic w liczbie
transakcji znajdujących się w poszczególnych węzłach. Wraz ze wzrostem niezrównoważenia
czas wykonywania algorytmu rośnie. Wynika to z faktu różnych czasów potrzebnych na wyznaczanie częstości zbiorów. Dla stron z większą liczbą transakcji czas operacji, takich jak
lokalne odrzucanie kandydatów, wyznaczanie stopnia zaufania reguł asocjacji wydłuża się
liniowo wraz z liczbą transakcji. W przypadku synchronicznych operacji, np. w operacji wyznaczania stopnia zaufania reguł asocjacji, stanowiska z mniejszą liczbą transakcji czekają na
stanowiska z większą liczbą transakcji, co prowadzi do niewykorzystania posiadanej mocy
obliczeniowej i wydłużenia czasu wykonywania algorytmu.
W algorytmie VPSI o nierównomiernej dystrybucji mówimy wówczas, gdy pomiędzy
stronami występują różnice w liczbie elementów, dla których przechowywane są listy transakcji. W przeciwieństwie do algorytmu HPSU czas wykonywania algorytmu VPSI maleje
wraz ze wzrostem niezrównoważenia. Powodem tego jest wzrost liczby zbiorów elementów,
których elementy znajdują się tylko na jednym stanowisku. Globalne wsparcie takich zbiorów wyznaczane jest bezpośrednio z bazy danych, która zawiera elementy zbioru. Bezpośrednie wyznaczenie częstości zbioru z bazy danych jest znacznie szybsze od wyznaczenia
częstości poprzez operację przecięcia list transakcji, stąd wzrost szybkości wykonywania algorytmu.
Ocena algorytmów odkrywania reguł asocjacji wraz z ochroną prywatności danych
63
Czas różnych operacji w poszczególnych krokach
algorytmu HPSU dla zbioru 1200k i minimalnego wsparica
10%
250
czas [s]
200
lokalne odrzucanie
kandydatów
150
wyznaczanie
globalnego
wsparcia
100
50
0
1
2
3
4
5
6
7
krok
Rys. 5. Czasy poszczególnych operacji w każdym roku algorytmu HPSU
Fig. 5. Times of particular steps of HPSU algorithm
Na rysunku 5 przedstawione są czasy operacji wyznaczania globalnego wsparcia
i lokalnego odrzucania kandydatów w poszczególnych krokach. Czasy te są silnie zależne od
liczby kandydatów, która jest największa w połowie wykonywania algorytmu. Operacja lokalnego odrzucania kandydatów wykonywana jest szybciej, ponieważ odbywa się ona równolegle na wszystkich stanowiskach, podczas gdy wyznaczanie globalnego wsparcia polega
na sekwencyjnym obliczeniu nadmiarowego wsparcia na każdym stanowisku.
Całkowity czas algorytmu HPSU i czas wyznaczania
pewności reguł dla zbioru 1200k
2500
czas całkowity
czas [s]
2000
wyznaczanie
pewności reguł
1500
1000
wyznaczanie
globalnego
wsparcia
500
0
9
11
13
15
17
lokalne odrzucanie
kandydatów
minimalne wsparcie [%]
Rys. 6. Czasy poszczególnych operacji w porównaniu z całkowitym czasem wykonywania algorytmu HPSU
Fig. 6. Times of particular operations of HPSU algorithm compared to the total
execution time
64
M. Gorawski, K. Stachurski
Rysunek 6 zestawia czasy najdłużej wykonywanych operacji algorytmu HPSU. Czasy
tych operacji są w przybliżeniu równe. Można również zauważyć, że suma czasów operacji
równa jest całkowitemu czasowi wykonywania algorytmu. Operacja wyznaczania globalnego
wsparcia zbiorów elementów zajmuje więcej czasu od operacji lokalnego odrzucania kandydatów. Przyczyna tego wyjaśniona jest przy omawianiu wykresu 3.
Porównanie liczby przesyłanych danych algorytmów HPSU
i VPSI - zbiór 300k
liczba danych [MB]
100000
10000
1000
HPSU
VPSI
100
10
1
9
10
11
12
13
14
15
16
minimalne wsparcie [%]
Rys. 7. Liczba przesyłanych danych w obu algorytmach
Fig. 7. Amount of transfered data by both algorithms
Algorytm VPSI przesyła znacznie większą liczbę danych, co obrazuje rysunek 7. Wynika
to z faktu przesyłania obiektów odwzorowujących każdą transakcję w bazie danych. Jednak
liczba przesyłanych danych nie jest na tyle duża, aby mogła spowodować znaczne opóźnienia
w wykonywaniu algorytmu przy obecnych przepustowościach sieci komputerowych.
7. Przyszłe modyfikacje i wnioski
W świetle uzyskanych wyników oba algorytmy są wydajne i można je stosować do analizy dużej liczby danych. Wydajność algorytmów można również poprawić wprowadzając
modyfikację. Modyfikacje można podzielić na modyfikacje wpływające i nie wpływające na
poziom ochrony danych.
W przypadku modyfikacji wpływających na poziom ochrony danych w algorytmie HPSU
można zrezygnować z użycia fałszywych zbiorów częstych. Rezygnacja ta ujawnia sąsiadom
liczbę zbiorów lokalnie częstych w każdym węźle. Użycie fałszywych zbiorów, w przypadku
dużej liczby elementów, zwiększa znacznie liczbę operacji kodowania i dekodowania zbiorów elementów. Jednak czas wykonywania tych operacji jest znacznie mniejszy od czasu
wyznaczania lokalnego wsparcia. Zatem, rezygnacja z użycia zbiorów fałszywych ma jedynie
sens w przypadku dużej liczby elementów i małej liczby transakcji.
W przypadku algorytmu VPSI można zrezygnować z użycia fałszywych transakcji, co
prowadzi do ujawnienia sąsiadom lokalnego wsparcia danego zbioru elementów. Użycie fał-
Ocena algorytmów odkrywania reguł asocjacji wraz z ochroną prywatności danych
65
szywych transakcji zwiększa znacznie liczbę operacji kodowania i przecięcia list transakcji.
Operacje te są jednymi z najbardziej czasochłonnych operacji w algorytmie, zatem rezygnacja z użycia fałszywych transakcji jest wskazana, jeżeli nie istnieje potrzeba ukrycia lokalnego wsparcia zbiorów.
Podczas testów algorytm HPSU okazał się wydajniejszy od algorytmu VPSI pod względem czasu wykonywania, jak i pod względem liczby przesyłanych danych. Wybór algorytmów niestety nie jest determinowany ich wydajnością, tylko sposobem partycjonowania bazy
danych. Duża zaletą algorytmów jest niewątpliwie ich skalowalność. Czas obu algorytmów
okazał się w przybliżeniu proporcjonalny do liczby transakcji w bazie danych i do liczby
zbiorów globalnie częstych. Algorytmy obsługują dowolną liczbę stron. Podczas testów odnotowano zrównoważone obciążenie wszystkich komputerów. Średni czas wykorzystania
procesorów na stanowiskach był w okolicach 90%. Oczywiście, w przypadku nierównomiernego rozmieszczenia danych balansowanie pracy było znacznie gorsze. Zaletą algorytmu
VPSI, której nie posiada algorytm HPSU, jest wyznaczanie dokładnych częstości zbiorów.
Informacja ta może być użyta przez system, np. do buforowania częstości zbiorów
i wykorzystania ich w następnym teście lub może być przydatna końcowemu użytkownikowi.
Mimo dużej liczby przesyłanych danych w algorytmie VPSI, obecne sieci komputerowe oferują wystarczające przepustowości do zapewnienia płynnego wykonywania algorytmu.
Pomimo uzyskania dobrych rezultatów i wykazania przydatności implementowanych algorytmów pozostaje jeszcze wiele nierozwiązanych problemów. Najważniejszym problemem
wydaje się dostosowanie algorytmów do pracy w innych modelach bezpiecznych obliczeń,
czyli wprowadzenie rozwiązań unikających ujawniania prywatnych danych w przypadku
zmowy stron, fałszowanie lokalnych danych, fałszowanie przekazywanych pośrednich danych i przerywanie wykonywania protokołu.
LITERTURA
1.
2.
3.
National Highway Traffic Safety Administration.Firestone tire recall. http://www.nhtsa.dot.gov/hot/Firestone/Index.html, May 2001.
Ford Motor Corporation. Corporate citizenship report.
http://www.ford.com/en/ourCompany/communityAndCulture/buildingRelationships/strate
gicIssues/FirestoneTireRecall.htm, May 2001.
Murat Kantarcioglu, Chris Clifton: Privacy-preserving Distributed Mining of Association
Rules on Horizontally Partitioned Data, Purdue University Department of Computer Sciences 250 N University St West Lafayette, IN 47907-2066 January 30, 2003.
66
M. Gorawski, K. Stachurski
4.
Alexandre Evfimievski, Ramakrishna, Srikant, Rakesh Agrawal, Johannes Gehrke: Privacy Preserving Mining of Association Rules, SIGKDD 2002 Edmonton, Canada.
Jaideep Vaidya, Chris Clinton: Privacy Preserving Association Rule Mining in Vertically
Partitioned Data, The Eighth ACM SIGKDD International Conference on Knowledge
Discovery and Data Mining (KDD-2002).
Chris Clifton, Murat Kantarcioglu, Jaideep Vaidya, Xiaodong Lin, Michael Y. Zhu Tools
for Privacy Preserving Distributed Data Mining.
D. Cheung et al.: A Fast Distributed Algorithm for Mining Association Rules, Proc.4th
Int’l Conf. Parallel and Distributed Information Systems, IEEE Computer Soc. Press, Los
Alamitos, Calif., 1996, pp. 31–42.
Hua Zhu: On-Line Analytical Mining of Association Rules, B.S., University of Science
and Technology China 1995.
Rakesh Agrawal, Ramakrishnan Srikant: Fast Algorithms for Mining Association Rules,
The 20th VLDB Conference Santiago. Chile. 1994.
Rakesh Agrawal, Ramakrishnan Srikant: Mining Generalized Association Rules, The 21st
VLDB Conference Zurich. Switzerland. 1995.
Rakesh Agrawal, John C. Shafer: Parallel Mining of Association Rules, IEEE Transactions on
Knowledge and Data Engineering, Vul. 8, No. 6, December 1996.
Mohammed J. Zaki: Parallel and Distributed Association Mining: A Survey, 10923063/99/$10.00 © 1999 IEEE.
M. Kryszkiewicz: Mining with Cover and Extension Operators, In: Proc. of PKDD ’00
Lyon, France. Sept. 13-16 200.
John Cosgrave: Number Theory and Cryptography (using Maple), Department of Mathematics, St. Patrick’s Collage, Drumcondra, Dublin 9, Ireland.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Recenzent: Prof. dr hab. inż. Henryk Rybiński
Wpłynęło do Redakcji 12 stycznia 2005 r.
Abstract
A need to preserve data privacy is often an obstacle to conducting analyses on data collected in many separated databases. Therefore, data privacy becomes more and more important in data mining models designing. Despite of benefits of preserving data privacy in data
mining, the issue has been addressed for a short time. Some solutions were proposed, based
on mathematics and cryptographic secure methods. In this paper, we analyse two algorithms
Ocena algorytmów odkrywania reguł asocjacji wraz z ochroną prywatności danych
67
for mining association rules with privacy data preserving, HPSU (Horizontal Partitioning
Secure Union) and VPSI (Vertical Partitioning Secure Intersection). We present modifications of the algorithms and their impact on the level of data privacy preserving and the efficiency of the algorithms.
Adresy
Marcin GORAWSKI: Politechnika Śląska, Instytut Informatyki, ul. Akademicka 16,
44-101 Gliwice, Polska, [email protected].
Karol Stachurski: Politechnika Śląska, Instytut Informatyki, ul. Akademicka 16,
44-101 Gliwice, Polska, [email protected]