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]