BỘ GIÁO DỤC VÀ ĐÀO TẠO VIỆN HÀN LÂM
KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM
VIỆN CÔNG NGHỆ THÔNG TIN
CAO TÙNG ANH
KHAI THÁC DỮ LIỆU PHÂN TÁN
BẢO TOÀN TÍNH RIÊNG TƯ
Chuyên ngành: BẢO ĐẢM TOÁN HỌC CHO MÁY TÍNH
VÀ HỆ THỐNG TÍNH TOÁN
Mã số: 62.46.35.01
LUẬN ÁN TIẾN SĨ TOÁN HỌC
HÀ NỘI - 2014
Công trình được hoàn thành tại: Viện Công nghệ Thông tin
Viện Hàn lâm Khoa học và Công nghệ Việt nam
Người hướng dẫn khoa học
1. PGS. TSKH. NGUYỄN XUÂN HUY
2. PGS.TS. NGUYỄN MẬU HÂN
Phản biện 1:
Phản biện 2:
Phản biện 3:
Luận án sẽ được bảo vệ trước Hội đồng chấm luận án cấp Viện
họp tại: Viện Công nghệ thông tin
Viện Hàm lâm Khoa học và Công nghệ Việt Nam
vào hồi giờ ngày tháng năm
Có thể tìm hiểu luận án tại thư viên: Thư viện Quốc gia Việt nam và
Thư viện Viện Công nghệ thông tin
1
PHẦN MỞ ĐẦU
1. Đặt vấn đề
Cơ sở dữ liệu (CSDL) phân tán là một cấu trúc dữ liệu hiện nay đang phát triển
rất nhanh và chúng ta thường gặp chúng trong thực tế như : CSDL của một hệ thống
ngân hàng, của các công ty bảo hiểm, của các tổng công ty thương mại có một hệ
thống cửa hàng phát triển ở nhiều nơi hay như CSDL của các thành viên thuộc tổ
chức cảnh sát quốc tế .v.v.
Khai thác dữ liệu là quá trình tìm kiếm các mẫu mới, những thông tin tiềm ẩn
mang tính dự đoán trong các khối dữ liệu lớn. Những công cụ khai thác dữ liệu có thể
phát hiện những xu hướng trong tương lai, các tri thức mà khai thác dữ liệu mang lại
cho các đơn vị có thể ra các quyết định kịp thời và trả lời những câu hỏi trong lĩnh
vực mà trước đây tốn rất nhiều thời gian để xử lý. Với ưu điểm trên, khai thác dữ liệu
đã chứng tỏ được tính hữu dụng của nó trong môi trường kinh doanh đầy tính cạnh
tranh ngày nay và được ứng dụng rộng rãi trong các lĩnh vực thương mại, tài chính,
điều trị y học, giáo dục, viễn thông, quốc phòng.v.v.
Trong thực tế, phần lớn CSDL phân tán dùng để khai thác thường liên quan đến
nhiều cá nhân hoặc nhiều tổ chức. Bản thân dữ liệu là thông tin nhạy cảm hoặc quá
trình phân tích dữ liệu cho ra tri thức có tính nhạy cảm. Một số tổ chức muốn chia sẻ
dữ liệu theo kiểu cùng phối hợp dữ liệu để khai thác trên dữ liệu chung, nhưng mỗi
bên lại muốn đảm bảo tính riêng tư cho dữ liệu của chính mình. Khai thác dữ liệu
phân tán đảm bảo tính riêng tư là hướng nghiên cứu nhằm đề ra giải pháp bảo vệ tính
riêng tư của dữ liệu lẫn tri thức trước và sau khi thực hiện khai thác trên dữ liệu.
2. Mục đích của luận án
Mục đích đầu tiên của luận án là nghiên cứu và đề xuất các thuật toán cho phép
thực hiện việc kết hợp cơ sở dữ liệu phân tán của các bên khác nhau, cùng có nhu cầu
tham gia chia sẻ dữ liệu để từ đó các bên có thể dựa trên dữ liệu dùng chung đó khai
thác được các tri thức có lợi cho mình, mà vẫn bảo đảm được tính riêng tư của dữ liệu
cho mỗi bên. Để thực hiện được mục tiêu chính, luận án cũng có mục đích thứ hai là
nghiên cứu và đề xuất các thuật toán, giao thức tránh thông đồng giữa một số bên để
làm lộ dữ liệu của các bên khác. Mặt khác, do cơ sở dữ liệu phân tán khi được tái
thiết thành cơ sở dữ liệu chung thường sinh ra cơ sở dữ liệu có khối lượng rất lớn (do
kết quả của phép kết đối với CSDL phân tán dọc và phép hội đối với CSDL phân tán
ngang) nên sẽ ảnh hưởng nhiều đến thời gian khai thác. Luận án cũng có mục đích
thứ ba là nghiên cứu và đề xuất một số thuật toán nhằm loại bỏ thực hiện phép kết dữ
liệu từ các bên để từ đó giảm thời gian cho việc khai thác dữ liệu.
3. Những đóng góp của luận án
2
Luận án đã trình bày các cơ sở lý thuyết về CSDL phân tán, đề xuất một số thuật
toán khai thác dữ liệu và ẩn dữ liệu trong qua trình khai thác. Từ đó dẫn đến mục đích
chính của luận án là đề xuất các thuật toán khai thác dữ liệu trên CSDL phân tán có
quan tâm đến việc bảo toàn tính riêng tư của các bên tham gia quá trình khai thác và
tránh thông đồng giữa một số bên để làm lộ dữ liệu của các bên khác. Những đóng
góp chính của luận án gồm :
Đóng góp 1: Do việc khai thác trên CSDL phân tán dọc, nếu sử dụng các phép
kết để sinh ra CSDL chung sẽ tạo ra dữ liệu rất lớn ảnh hưởng đến thời gian và tính
khả thi khi khai thác, luận án đã đề xuất các thuật toán:
- Khai thác CSDL phân tán dọc bằng phép kết ngoại sử dụng phương pháp IT-
Tree gồm hai thuật toán: ECLAT_DISTRIBUTE_LEFT_JOIN và ECLAT_
DISTRIBUTE _FULL_JOIN để tránh không thực hiện phép kết giữa các CSDL tham
gia khai thác, nhằm tăng tốc độ khai thác dữ liệu.
- Cũng với mục đích tăng tốc độ khai thác các tập mục có lợi ích cao, luận án đã
đề xuất cấu trúc WIT-tree và thuật toán TWU-Mining để tăng hiệu quả về thời gian
khai thác các tập mục dữ liệu có lợi ích cao.
- Thuật toán PEclat, để khai thác song song tập phổ biến tại các bên tham gia.
Bên cần khai thác tập phổ biến (được gọi là Master) chỉ gửi thông tin về CSDL và
minSup cho các bên tham gia (được gọi là Slave) đúng 1 lần. Vì vậy, thời gian
gửi/nhận thông tin sẽ thấp hơn so với việc truyền nhận thông tin nhiều lần. Các Slave
có 2 lần gửi thông tin về Master. Lần thứ nhất gửi các item cùng với Tidset của
chúng, lần thứ 2 gửi tập các itemset thỏa minSup. Vì vậy, thời gian giao tiếp có thể
tính là O(n). Một vấn đề nữa là Master chỉ khai thác các tập phổ biến chưa được khai
thác trên các Slave và vì vậy, thời gian khai thác sẽ nhanh hơn so với việc tập trung
dữ liệu lại để khai thác trên một máy.
Đóng góp 2: Để thực hiện việc khai thác luật kết hợp trên CSDL phân tán dọc có
quan tâm đến việc bảo toàn tính riêng tư của các bên tham gia, luận án đã đề xuất
thuật toán ENUMERATE_FREQUENT_DISTRIBUTE_ PRIVACY. Trong thuật
toán này có sử dụng bên thứ 3 làm trung gian để hỗ trợ 2 bên tiến hành khai thác luật
sau đó các bên đổi chỗ cho nhau để thay thế vai trò trung gian và vai trò của bên khai
thác luật.
Đóng góp 3: Đối với khai thác tập phổ biến trên CSDL phân tán ngang có quan
tâm đến bảo toàn tính riêng tư của các bên tham gia và tránh sự thông đồng giữa một
số bên để làm lộ dữ liệu của một số bên khác, luận án đã trình bày:
- Thuật toán bảo khai thác CSDL phân tán ngang bảo toàn tính riêng tư gồm các
thủ tục: SECURE_SUPPORT thực hiện việc cài đặt của giao thức tính độ phổ biến
toàn cục của itemset X. Thủ tục EXTEND_FITREE để mở rộng và hoàn thiện FITree
chứa tập đầy đủ các itemset phổ biến toàn cục. Thủ tục SUPPER_BOUND và
3
SECURE_UNION để đảm bảo riêng tư của các bên tham gia khai thác. Thuật toán
được đánh giá là an toàn hoàn toàn cả trong trường hợp có n-1 bên thông đồng.
- Đề xuất giao thức (cải tiến từ giao thức của M.Hussein) sử dụng tập phổ biến
tối đại (MFI - Max Frequent Itemsets) thay cho tập phổ biến (FI - Frequent Itemsets )
khi tìm tập ứng viên và mã hoá Paillier để tính đỗ hỗ trợ toàn cục. Do sử dụng mã hoá
Paillier nên giao thức đề xuất có tính riêng tư cao hơn khi tính độ hỗ trợ toàn cục.
Qua kết quả thực nghiệm cho thấy giao thức đề xuất tối ưu hơn (về chi phí truyền
thông) khi tăng số bên tham gia khai thác với các tập dữ liệu có số itemset lớn và
chiều dài trung bình thấp.
4. Bố cục luận án
Luận án gồm ba chương, phần mở đầu và phần kết luận, trong đó:
Phần mở đầu
Trình bày một số vần đề dẫn đến việc chọn hướng nghiên cứu của luận án, các
nghiên cứu liên quan đến hướng nghiên cứu của luận án của các tác giả trong và
ngoài nước, từ đó nêu lên mục đích chính của luận án và các phương pháp nghiên
cứu của luận án. Bố cục của luận án cũng được nêu rõ trong phần này.
Chương 1: Một số khái niệm về CSDL phân tán, khai thác dữ liệu và bảo
đảm tính riêng tư
Trong chương này luận án trình bày một số khái niệm cơ bản về cơ sở dữ liệu
phân tán bao gồm cả phân tán dọc và phân tán ngang, các lý thuyết về các thuật toán
khai thác dữ liệu được sử dụng nhiều nhất. Trong đó tập trung vào khai thác tập phổ
biến, tập mục có lợi ích cao và luật kết hợp.
Trình bày các nghiên cứu về một số phương pháp và thuật toán ẩn dữ liệu trong
quá trình khai thác CSDL có quan tâm đến bảo đảm tính riêng tư của các bên tham
gia khai thác.
Chương 2: Khai thác dữ liệu trên CSDL phân tán
Trình bày các nghiên cứu và đề xuất của luận án về cải tiến các thuật toán khai
thác dữ liệu trên CSDL phân tán, các thuật toán này nhằm tăng nhanh thời gian khai
thác các tập mục lợi ích cao, tập phổ biến bằng phương pháp IT-Tree và khai thác
song song trên cơ sở dữ liệu phân tán.
Chương 3: Khai thác CSDL phân tán bảo đảm tính riêng tư
Trình bày các thuật toán và giải thuật đề xuất nhằm khai thác dữ liệu trên CSDL
phân tán dọc và phân tán ngang có quan tâm đến bảo đảm tính riêng tư cho dữ liệu
của các bên tham gia trong quá trình khai thác. Đối với mỗi thuật toán, luận án cũng
đánh giá về khả năng bảo toàn tính riêng tư, độ phức tạp và phần thực nghiệm của
thuật toán
4
Chương 1: Một số khái niệm về cơ sở dữ liệu phân tán, khai thác dữ
liệu và bảo toàn tính riêng tư
1.1 Khái niệm về cơ sở dữ liệu phân tán
1.1.1- Khái niệm cơ sở dữ liệu phân tán
Cơ sở dữ liệu phân tán là tập hợp các cơ sở dữ liệu được liên kết logic trên mạng
máy tính và làm việc một cách trong suốt đối với người sử dụng.
Khái niệm “trong suốt đối với người sử dụng” hàm nghĩa người sử dụng có thể
truy cập tất cả các cơ sở dữ liệu như là chúng thuộc về một cơ sở dữ liệu duy nhất.
1.1.2- Cơ sở dữ liệu phân tán ngang
Phân tán ngang là chia một quan hệ R theo các bộ, vì vậy mỗi mảnh là một tập
con các bộ q của quan hệ R. Có 2 phương pháp phân tán ngang gồm:
Phân tán ngang nguyên thuỷ của một quan hệ được thực hiện dựa trên các vị từ
được định nghĩa trên quan hệ đó.
Phân tán ngang dẫn xuất là phân mảnh một quan hệ dựa vào các vị từ được định
nghĩa trên một quan hệ khác.
1.1.3- Cơ sở dữ liệu phân tán dọc
Một phân tán dọc cho một quan hệ R sinh ra các mảnh R
1
, R
2
, ,R
r
, mỗi mảnh chứa
một tập con thuộc tính của R và cả khoá của R. Mục đích của phân mảnh dọc là phân
hoạch một quan hệ thành một tập các quan hệ nhỏ hơn để nhiều ứng dụng chỉ cần
chạy trên một mảnh.
1.2 Khai thác dữ liệu
Hiện nay có rất nhiều thuật toán khai thác dữ liệu, hội nghị quốc tế về khai thác
dữ liệu (IEEE International Conference on Data Mining) vào tháng 12 năm 2006 đã
chọn ra một số thuật toán nổi tiếng được sử dụng nhiều. Trong số các thuật toán khai
thác dữ liệu, thuật toán IT-Tree sẽ được đề xuất cải tiến để khai thác dữ liệu phân tán
trong chương 2 và chương 3:
Thuật toán phát sinh tập phổ biến IT-Tree
Đầu vào: Lớp tương đương [P] ban đầu chứa tất cả các tập phổ biến 1-itemset
và ngưỡng phổ biến minSup.
Đầu ra: tập FI gồm tất cả các tập phổ biến của CDSL.
ECLAT()
[] = {i
I
: (i)
minSup
}
ENUMERATE_FREQUENT([])
ENUMERATE_FREQUENT([
P
])
for all
l
i
[
P
] do
[
P
i
] =
for all
l
j
[
P
] with j > i do
5
I = l
i
l
j
T = t
(
l
i
)
t
(
l
j
)
if |
T
|
minSup
then
[
P
i
] = [
P
i
] {
TI
}
ENUMERATE_FREQUENT([
P
i
])
1.3 Bảo đảm tính riêng tư
Khai thác dữ liệu là phát hiện tri thức từ cơ sở dữ liệu. Các dữ liệu dùng để khai
thác có thể liên quan đến mô
̣
t cá nhân hay một tổ chức . Bản thân dữ liệu là thông tin
nhạy cảm hoặc quá trình phân tích dữ liệu cho ra tri thức có tính nhạy cảm. Ngoài ra,
một số tổ chức muốn chia sẻ dữ liệu theo kiểu cùng khai thác trên dữ liệu góp chung,
nhưng mỗi bên lại muốn đảm bảo tính riêng tư cho dữ liệu của chính mình. Khai thác
dữ liệu đảm bảo tính riêng tư (Privacy Preserving Data Mining - PPDM) là hướng
nghiên cứu nhằm đề ra giải pháp bảo vệ tính riêng tư của dữ liệu lẫn tri thức trước và
sau khi thực hiện khai thác trên dữ liệu.
Trong các thuật toán và giải thuật đề xuất ở chương 3, với mỗi thuật toán, luận
án đã đưa ra khái niệm tính riêng tư và đánh giá khả năng bảo toàn tính riêng tư trong
từng trường hợp cụ thể.
1.3.1 Phương pháp sửa đổi dữ liệu: sửa đổi các giá trị nguyên thủy của cơ sở
dữ liệu trước khi gửi cho nhiều người nhận nhằm bảo vệ tính riêng tư. Kỹ thuật sửa
đổi này phải phù hợp với chính sách riêng tư đang được sử dụng. Có thể liệt kê các
phương pháp như sau:
a) Thay giá trị thực sự thành giá trị mới (đổi 1 thành 0 hoặc làm nhiễu dữ liệu).
b) Làm sai quá trình phân tích bằng cách thay thế giá trị đã có thành “?”.
c) Gom lại hoặc trộn lại, là sự kết hợp nhiều giá trị thành một phân loại thô hơn.
d) Đổi chỗ giữa các giá trị trong từng dòng dữ liệu.
e) Tạo mẫu: chỉ cho chia sẻ những dữ liệu mang tính chất chung.
1.3.2 Giấu dữ liệu hoặc giấu luật: gồm việc giấu dữ liệu thô hoặc dữ liệu kết
hợp dạng luật. Có nhiều phương pháp(heuristic) dùng cho việc giấu dữ liệu kết hợp
dưới dạng luật vì độ phức tạp cao hơn. Giảm bớt dữ liệu khi chia sẻ sẽ làm cho việc
suy diễn yếu hơn hoặc cho ra giá trị suy diễn có độ tin cậy thấp. Quá trình này gọi là
rule confusion.
1.3.3 Bảo vệ riêng tư: là quan trọng nhất, liên quan đến các kỹ thuật bảo vệ tính
riêng tư dùng để sửa đổi dữ liệu có chọn lọc. Sửa đổi dữ liệu có chọn lọc nhằm cho
dữ liệu vẫn có tính thiết thực cao nhưng không ảnh hưởng đến tính riêng tư. Các kỹ
thuật này gồm có:
6
a) Kỹ thuật dựa trên Heuristic (Heuristic-based techniques) như là chỉnh sửa
thích nghi, tức là chỉ chỉnh sửa một cách có chọn lọc để giảm thiểu việc mất
đi tính thiết thực của dữ liệu sau khi đã chỉnh sửa.
b) Kỹ thuật dựa trên phương pháp mã hóa (Cryptographic-based techniques)
chẳng hạn như kỹ thuật bảo mật tính toán đa thành phần SMC (Secure
multiparty computation), trong đó có nhiều người tham gia vào một hệ thống
phân tán, mỗi người có một dữ liệu đầu vào (input) và tham gia quá trình tính
toán dựa trên một hoặc một số dữ liệu đầu vào khác để cho ra kết quả cuối
cùng (output). Từng người tham gia chỉ biết giá trị input của người đó và kết
quả trả về, ngoài ra không biết gì hơn.
c) Kỹ thuật dựa trên sự tái tạo (Reconstruction-based techniques): Sự phân bố
của dữ liệu nguyên thủy được tái tạo lại từ dữ liệu ngẫu nhiên.
1.3.4 Thuật toán ẩn tập mục nhạy cảm:
Lý Thuyết Giàn Giao
Cho tập hữu hạn U gọi là tập nền, ta kí hiệu Poset(U) là họ toàn thể các tập con
của U với thứ tự bộ phận là phép bao hàm , Poset'(U) = Poset(U)
{U}. Một giàn
giao G là một họ các tập con của U đóng với phép giao, cụ thể là, nếu G = {V
1
,
V
2
,…,V
k
| V
i
Poset(U), i = 1,2,…,k} thì V
i
, V
j
G: V
i
V
j
G. Khi đó G chứa
duy nhất một họ con S sao cho mọi phần tử của G đều được biểu diễn qua giao của
các phần tử trong S, cụ thể là, S là tập con nhỏ nhất của G thỏa tính chất G = {Y | Y =
X
1
… X
k
, k 0, X
1
, … , X
k
S}. S được gọi là tập sinh của giàn G và được ký
hiệu là Gen(G). Theo quy ước, giao của một họ rỗng các tập con chính là U, do đó
mọi Gen đều không chứa U.
Cho (M, ) là một tập hữu hạn có thứ tự bộ phận. Phần tử m trong M được gọi là
cực đại nếu từ m x và xM ta luôn có m=x. Ta ký hiệu MAX(M) là tập các phần tử
cực đại của M. Dễ thấy rằng, với mỗi phần tử x trong M, luôn tồn tại một phần tử m
trong MAX(M) thỏa x m. Với mỗi họ các tập con của một tập hữu hạn U cho trước
ta xét thứ tự bộ phận . Cho G là một giàn giao trên tập hữu hạn U. Ta ký hiệu
Coatom(G) = MAX(G
{U}) và gọi các phần tử trong Coatom(G) là đối nguyên tử
của giàn giao G.Ta có mệnh đề 1.1(đã được chứng minh):
Mệnh đề 1.1: Với mọi giàn giao G trên tập hữu hạn U, ta có:
MAX(Gen(G)) = MAX(G {U}) = CoatomG
Các tính chất của tập mục thướng xuyên
Cho bảng T gồm N giao tác trên tập mục nền U, P là họ các tập mục thường
xuyên theo ngưỡng cho trước. Trước hết ta nhận xét rằng, nếu X Y U thì (X)
(Y). Hệ thức này thể hiện tính nghịch biến của hàm đo độ hỗ trợ .
7
Mệnh đề 1.2: P là một giàn giao.
Chứng minh:
Giả sử X, Y P, Z = X Y. Ta có Z X, do đó (Z) (X) . Vậy Z P.
Mệnh đề 1.2 cho phép chúng ta vận dụng các tính chất của giàn giao trong xử lý
các tập mục thường xuyên. Cụ thể là khi cần ẩn tập mục nhạy cảm H ta sẽ sửa các tập
mục lớn nhất chứa H trong giàn giao P, tức là các Coatom chứa H.
Mệnh đề 1.3: Với mỗi tập mục thường xuyên X trong P, Poset(X) P và là một
giàn giao đầy đủ với tập Gen gồm các phần tử trên hàng thứ 2.
Chứng minh:
Giả sử X P và Y X. Ta có ngay (Y) (X) . Từ đây suy ra Y P, nghĩa là
mọi tập con của X đều là tập mục thường xuyên. Do Poset(X) chứa mọi tập con của X
nên Poset(X) là đầy đủ và đương nhiên đóng với phép giao. Theo mệnh đề 2.1 ta thấy
với mọi mục AX, X
{A} chỉ khuyết duy nhất một phần tử, do đó chúng có duy nhất
một cha. Mọi tập con còn lại trong Poset(X) đều khuyết từ hai phần tử trở lên do đó
chúng có ít nhất là hai cha. Vậy Gen(X) sẽ bao gồm các phần tử đứng trên hàng thứ
hai trên đồ thị biểu diễn giàn.
Mệnh đề 1.3 và tính chất nghịch biến của hàm cho ta thấy rằng các phần tử
trong Gen(X) có độ hỗ trợ nhỏ nhất trong Poset(X)
{X}. Nếu X P, với mỗi mục A
trong X ta xét hàm L(A,X) cho giá trị là cặp Y/ trong đó là giá trị nhỏ nhất trong số
các độ hỗ trợ của các tập con đúng Y chứa A của X (tức là Y X, Y ≠ X và A Y),
L(A,X) = Y/
,
= min {(Y) | A Y, Y X}
Dựa vào nhận xét trên ta thấy có thể tính L(A,X) thông qua các tập chứa A trong
Gen(X).
Mệnh đề 1.4: Nếu tập mục thường xuyên X bị ẩn thì mọi tập mục thường xuyên Y
chứa X cũng bị ẩn theo.
Chứng minh:
Nếu X bị ẩn thì (X) < . Nếu X Y, thì (Y) (X) < , nghĩa là Y cũng bị ẩn
theo.
Mệnh đề 1.5: Nếu X P thì mọi Update(A,X,d), A X đều kéo theo Update
(A,Y,d), Y X, A Y. tức là độ hỗ trợ của mọi tập con chứa A của X đều bị giảm d
đơn vị.
Chứng minh:
Ta có, thao tác Update(A,X,1) sẽ xóa một xuất hiện của mục A trong tập mục X,
nghĩa là thay X bằng X
{A}. Từ đó suy ra rằng mọi tập mục con chứa A của X cũng
sẽ giảm số lần xuất hiện 1 đơn vị.
8
Các tập mục Y như mô tả trong mệnh đề 2.5 được gọi là các tập mục chịu hiệu
ứng phụ khi cập nhật (xóa) mục A tập mục X. Mệnh đề này cho thấy nếu cập nhật
mục A trong tập mục X thì cần chú ý đến các tập mục con đúng và chứa A của X. Nếu
độ hỗ trợ của chúng lớn hơn ngưỡng không nhiều thì chúng sẽ có nguy cơ bị ẩn
theo.
Thuật toán ẩn tập mục nhạy cảm
Dựa vào các mệnh đề 1.1
1.5, tác giả và nhóm nghiên cứu đã đề xuất thuật toán
Itemhide ẩn một tập mục nhạy cảm H. Việc mở rộng thuật toán để ẩn nhiều tập mục
nhạy cảm là khá dễ dàng.
Cho bảng T gồm N giao tác trên M mục, cho ngưỡng hỗ trợ và giả thiết rằng ta
đã xây dựng được họ các tập mục thường xuyên P. Cho tập mục nhạy cảm H P.
Khi đó thuật toán ẩn tập mục H được thực hiện qua các bước sau đây.
Bước 1: Xác định họ V các tập mục chứa H trong Coatom(P) ,
V = {X Coatom(P) | H X }
Bước 2: Với mỗi mục A H và với mỗi tập mục X trong V lượng giá xem có nên
sửa mục A trong X không? Tiêu chuẩn đặt ra là việc sửa mục A trong X không gây
hiệu ứng phụ đến các tập con đúng chứa A của X. Gọi M(H) là hàm cho giá trị là bộ
tứ (A, X, Z, ) trong đó là giá trị lớn nhất trong số các độ hỗ trợ tìm được qua các
hàm L(A,X), cụ thể là, M(H) = (A, X, Z, ), = max { | L(A,X) = Z/, A H, X
V}. Ta gọi thủ tục Update(A, X, d), với d = min {(H) – (
–1), (Z)–}
Bước 2 sẽ được lặp đến khi (H) = – 1.
Thuật toán: (Itemhide)
Đầu vào:
T bảng trị 0/1 thể hiện các giao tác trên tập mục nền U,
ngưỡng hỗ trợ,
P
– họ các tập mục thường xuyên heo ngưỡng .
H tập mục nhạy cảm H cần ẩn, H P.
Đầu ra:
bảng kết quả T .
Method
s
= (
H
);
while (s > – 1) do
Compute V =
{
X
Coatom
(
P
) |
H
X
};
Let (
A, X, Z,
) =
M(H)
;
Compute
d
= min
{
s
– (
–1), (
X
), (
Z
)-};
Update
(
A,X,d
);
s = s – d;
endwhile
end Itemhide.
Chương 2: Khai thác dữ liệu trên CSDL phân tán
2.1 Thuật toán khai thác trên CSDL phân tán dọc
9
Giả sử chúng ta cần khai thác trên cơ sở dữ liệu DB = (DB
1
LEFT JOIN DB
2
ON
TID). Ở đây thuật toán không thực hiện phép kết để tránh sinh ra CSDL lớn để giảm
thời gian khai thác so với việc thực hiện phép kết sinh ra dữ liệu lớn.
Thuật toán:
Đầu vào: cơ sở dữ liệu DB
1
của bên Master với tập các item là I
1
, DB
2
của bên
Slave với tập các item là I
2
và ngưỡng phổ biến minSup.
Đầu ra: tập FI gồm tất cả các tập phổ biến của CSDL DB thỏa minSup.
ECLAT_DISTRIBUTE_LEFT_JOIN()
TID = TID(DB1)
[] = {i
I
1
: |TID(i)|
minSup
} {j
I
2
: |TID(j) TID|
minSup
}
ENUMERATE_FREQUENT([])
ENUMERATE_FREQUENT([
P
])
for all
l
i
[
P
] do
[
P
i
] =
for all
l
j
[
P
] with j > i do
I = l
i
l
j
T = t
(
l
i
)
t
(
l
j
)
if |
T
|
minSup
then [
P
i
] = [
P
i
] {
TI
}
ENUMERATE_FREQUENT([
P
i
])
Lớp tương đương [] ban đầu chứa các item đơn phổ biến của DB
1
và DB
2
. Riêng
đối với DB
2
thì phải lấy TID của mỗi item đơn giao với TID của DB
1
(do phép kết là
LEFT JOIN). Sau đó thuật toán gọi hàm ENUMERATE_FREQUENT([P]) với đầu
vào là lớp tương đương [P]. Nó xét mỗi l
i
[P] với tất cả các l
j
đứng sau nó để kết
hợp thành một tập mới, nếu tập này thỏa minSup thì bổ sung với lớp tương đương con
[P
i
] (ban đầu bằng ) và gọi đệ qui để sinh các tập phổ biến ở các mức cao hơn.
Điểm mạnh của thuật toán là chỉ quét cơ sở dữ liệu ở hai bên một lần và dựa vào
phần giao giữa các Tidset để tính nhanh độ phổ biến.
2.2 Khai thác song song tập phổ biến trên CSDL phân tán
Đề khai thác song song cần dựa trên mô hình: giữa Slave và Master có sự trao
đổi thông tin 2 chiều. Master sẽ gửi cho từng Slave thông tin về CSDL cần khai thác
và minSup (ngưỡng độ phổ biến tối thiểu). Từng Slave sẽ khai thác độc lập các tập
phổ biến có trong cơ sở dữ liệu cục bộ và gửi kết quả này về Master. Bên cạnh đó,
các mục dữ liệu (item) có độ phổ biến thỏa minSup cũng sẽ được gửi về Master cùng
với Tidset (tập định danh các giao dịch có chứa item). Master sẽ dựa vào các thông
tin này để khai thác các tập phổ biến còn lại (chưa được khai thác từ các Slave).
Thuật toán :
Đầu vào: i, Tidset(i), group(i) và
minSup.
Đầu ra: Các tập phổ biến được khai thác từ các group khác nhau thỏa
minSup
.
PEclat( )
10
[] = {
)(
min)(|)(
igroup
SupiiTidseti
}
for all
l
i
[] do
[
P
i
] =
for all
l
j
[], with j > i do
if group(
l
i
) ≠ group(
l
j
) then
X = l
i
l
j
T = Tidset
(
l
i
)
Tidset
(
l
j
)
if |
T
|
minSup
then
[
P
i
] = [
P
i
] {
TX
}
ENUMERATE_FIs([
P
i
])
ENUMERATE_FIs([
P
])
for all
l
i
[
P
] do
[
P
i
] =
for all
l
j
[
P
], with j > i do
X = l
i
l
j
T = Tidset
(
l
i
)
Tidset
(
l
j
)
if |
T
|
minSup
then
[
P
i
] = [
P
i
] {
TX
}
ENUMERATE_FIs([
P
i
])
Trong thuật toán, quá trình trao đổi thông tin giữa Master và các Slave, Master
chỉ gửi thông tin về CSDL và minSup cho các Slave đúng 1 lần. Vì vậy, thời gian
gửi/nhận này không đáng kể. Các Slave có 2 lần gửi thông tin về Master. Lần thứ
nhất gửi các item cùng với Tidset của chúng, lần thứ 2 gửi tập các itemset thỏa
minSup. Vì vậy, thời gian giao tiếp có thể tính là O(n). Việc truyền thông xấu nhất là
trong trường hợp số tập phổ biến ở một Slave khá lớn dẫn đến làm ảnh hưởng đến
thời gian kết thúc thuật toán. Tuy nhiên, đều này ít xảy ra vì các tập phổ biến thường
chia đều trên các Slave.
Một vấn đề nữa là Master chỉ khai thác các tập phổ biến chưa được khai thác
trên các Slave và vì vậy, thời gian khai thác sẽ nhanh hơn so với việc tập trung dữ
liệu lại để khai thác trên một máy.
2.3 Khai thác tập mục có lợi ích cao
Khai thác tập mục có ích cao (High Utility Itemsets - HUIs) là dạng tổng quát
của khai thác tập phổ biến (Frequent Itemsets - FIs). Mục đích của nó là nhằm tìm
các tập mục có độ có ích cao từ CSDL. Tính hữu ích của một tập mục được mô tả
như là một ràng buộc về độ có ích. Nghĩa là, một tập mục được người dùng quan tâm
chỉ khi độ có ích của nó thỏa ràng buộc độ có ích cho trước. Tính hữu dụng của một
tập mục được tính theo giá trị chủ quan và giá trị khách quan của các mục. Giá trị chủ
quan của mục, gọi là x
pq
, là giá trị liên quan đến mục i
p
trong giao tác t
q
. Giá trị chủ
quan của mục, gọi là y
q
, là giá trị thực tế do người dùng gán sao cho hai mục i
p
và i
q
bất kỳ. Bài toán khai thác tập mục dựa trên độ có ích khám phá tập HUIs là tập chứa
11
tất cả các tập mục có độ có ích cao, nghĩa là, HUIs = { S | S
I
, u(S)
minutil}.
Trong đó:
Si Tt
ppq
p Sq
yxfSu ),()(
, với
ppqppq
yxyxf ),(
, và T
S
là tập giao tác có chứa S.
Tuy nhiên, không giống như khai thác FIs, HUIs không thoả tính chất Apriori,
nghĩa là tập con của một tập mục có ích cao không chắc là tập mục có ích cao. Vì
vậy, ta không thể sử dụng hoàn toàn các thuật toán khai thác FIs để khai thác HUIs.
Lớp tương đương
Cho I là tập các items. p(X, k) = X[1:k] là hàm nhận kết quả gồm k phần tử đầu
của X. Một quan hệ tương đương dựa vào tiền tố
k
trên itemset được định nghĩa như
sau: X, Y I, X
k
Y p(X, k) = p(Y, k).
Cấu trúc WIT-tree
Đỉnh: Có 3 trường : X: itemset; Tidset: Tập giao tác chứa X ; twu: Tổng độ có ích
theo trọng số giao tác của X.
Biểu thị một đỉnh là
)(Xtwu
TidsetX
.
Chúng ta có thể thấy, giá trị twu(X) là tổng các giá trị twu của các giao tác mà tid
của chúng chứa trong Tidset. Vì vậy, tính twu(X) và u(X) sẽ được thực hiện nhanh
chóng dựa vào Tidset.
Cung: Nối từ một đỉnh X ở mức k đến đỉnh Y ở mức (k+1)
sao cho X
k
Y.
Thuật toán TWU-Mining dựa trên cấu trúc WIT-tree để khai thác HUIs. Có 2 giai
đoạn trong thuật toán:
Giai đoạn 1 tìm tất cả tập mục có độ có ích trọng số giao tác cao.
Giai đoạn 2 chọn tất cả tập mục có độ có ích cao. Thật ra, giai đoạn 2 tính các giá
trị có ích dựa trên Tidset.
Thuật toán :
Đầu vào : CSDL gồm 2 bảng: Khách quan và chủ quan, ngưỡng minutil.
Đầu ra: HUIs chứa tất cả tập mục có ích cao.
TWU-Mining()
HUIs =
[] = {
i
t
(
i
)|
i
I
twu
(
i
)
minutil
}
TWU-Mining-Extend([],
minutil
)
TWU-Mining-Extend ([
P
],
minutil
)
// Phase 1
for all
l
i
[
P
] do
[P
i
] =
for all
l
j
[
P
], with j > i do
X = l
i
l
j
12
Y = Tidset(l
i
)
Tidset(l
j
)
if
twu
(
X
)
minutil
then
[
P
i
] = [
P
i
] {
)(Xtwu
YX
}
TWU-Mining-Extend([
P
i
],
minutil
)
// Phase 2
foreach itemset
s
in [
P
] do
If
u
(
s
)
minutil
then
HUIs = HUIs s
Thuật toán bắt đầu bằng cách khởi tạo lớp tương đương rỗng ([]) chứa các mục
đơn i sao cho twu(i) minutil, sau đó gọi hàm TWU-Mining-Extend, đầu vào của
hàm này là lớp tương đương P ([P]): Xét mỗi đỉnh l
i
với các đỉnh sau l
j
, với X = l
i
l
j
,
tính Y = Tidset(X) = Tidset(l
i
) Tidset(l
j
), nếu twu(X) (được tính thông qua
Tidset(X)) thoả minutil, thêm đỉnh mới
)(Xtwu
YX
vào lớp tương đương [P
i
], thuật toán
gọi đệ qui để tìm các lớp tương đương ở mức sau đến khi không còn đỉnh nào được
tạo ra. Với mỗi lớp tương đương [P], thuật toán tính giá trị có ích của tập mục dựa
trên Tidset, nếu u(s) minutil, thêm nó vào HUIs.
Chương 3:Khai thác dữ liệu phân tán bảo đảm tính riêng tư
3.1 Khai thác CSDL phân tán dọc bảo đảm tính riêng tư
Giả sử có 2 cơ sở dữ liệu là DB1 gọi là Master và DB2 gọi là Slave, miền giá trị
của các TID (Transaction Index) là giống nhau và kích thước tối đa là n giao dịch,
các TID được sắp xếp từ 1 đến n. Có một bên thứ 3 cùng hỗ trợ quá trình khai thác
của 2 bên. Quá trình khai thác được thực hiện như sau (giả sử việc khai thác được
thực hiện tại Master):
Thuật toán
Đầu vào là: CSDL DB
1
của bên Master với tập các item là I
1
, CSDL DB
2
của bên
Slave với tập các item là I
2
và ngưỡng phổ biến minSup.
Đầu ra: tập FI gồm tất cả các tập phổ biến của CDSL thỏa minSup.
ENUMERATE_FREQUENT_DISTRIBUTE_PRIVACY()
3rd party :TID = TID(DB1) TID(DB2)// TID thực
Master: [] =
For each i
I
1
do
Send T=TID(i) to 3
rd
Party and Receive sup
If sup
minSup
then [] = [] {i×T
(sup)}
For each i
I
2
do // TID trên DB2 là TID giả
Send T=TID(i) to 3
rd
Party and Receive sup
If sup
minSup
then [] = [] {i×T
(sup)}
ENUMERATE_FREQUENT([])
ENUMERATE_FREQUENT([
P
])
for all
l
i
[
P
] do
13
[
P
i
] =
for all
l
j
[
P
], with j > i do
I = l
j
T = TID
(
l
i
)
TID
(
l
j
)
Send
T
to 3
rd
Party and Receive sup
If sup
minSup
then
[
P
i
] = [
P
i
] {
I
×
T
(sup)}
ENUMERATE_FREQUENT([
P
i
])
Các bước thực hiện:
Bước 1: Các bên Master và Slave cùng gửi các TID thật cho bên thứ 3. Bên thứ 3
sẽ thực hiện việc tính TID = TID(slave) TID(Master).
Bước 2: Slave phát sinh dữ liệu giả bằng cách thêm vào các TID giả (là các TID
chưa sử dụng trong khoảng [1 n]) và gửi dữ liệu giả đó cho Master.
Bước 3: Master sử dựng phương pháp IT-tree để sinh tập phổ biến dựa trên giữ
liệu giả của Slave và độ phổ biến của từng itemset do bên thứ 3 trả về.
Đánh giá thuật toán về khả năng tiết lộ thông tin: Sự tiết lộ thông tin của
thuật toán phụ thuộc vào việc có sự tiết lộ thông tin từ bên thứ 3 không? Điều này là
không thể xảy ra vì bên thứ 3 không có dữ liệu của cả 2 bên tham gia quá trình khai
thác tập phổ biến. Trong trường hợp này chúng tôi sử dụng tiêu chí đánh giá việc bị
lộ thông tin là xác suất của việc nhận ra một giao dịch là thật hay giả của bên khai
thác với dữ liệu của bên kia.
Gọi L là tập tất cả các TID thực từ CSDL của Master, A là tập bất kỳ thuộc các
TID thực từ CSDL của Master A L. Cho m là độ hỗ trợ tối thiểu và l
A
là kích thước
của A. Cho Q: L → (T,F) là 1 kết quả được tính toán bởi bên thứ 3 và cho P(A)
T
là
xác suất mà Master sẽ nhận ra rằng 1 giao dịch a A là một giao dịch thực trong
CSDL của Slave. Với khái niệm này, các tác giả có thể định nghĩa số lượng của các
thông tin bị tiết lộ bởi thuật toán như sau:
Trong quá trình tính toán hỗ trợ tập A, nếu Q(A) = T, xác suất mà Master phát
hiện ra 1 giao dịch là giao dịch thực là
A
T
l
m
AP )(
. Nếu m = l
A
, thì P(A)
T
= 1 suy ra
CSDL bị tiết lộ hoàn toàn. Nếu Q(A) = F, chúng ta không có khả năng tìm ra xác suất
chính xác của A từ thông tin này. Chúng ta chỉ có thể nói rằng
A
T
l
m
AP
1
)(
. Như
vậy trường hợp Master có thể xác định tập A là giao dịch thực xảy ra khi độ hỗ trợ tối
thiểu (minsup) bằng với độ hỗ trợ của A. Lúc này tập A chứa toàn bộ các TID thật.
Giả sử rằng độ hỗ trợ tối thiểu m=4 khi Master gửi đến bên thứ 3 một tập hợp 4 TID
và kết quả trả về là 4. Điều đó có nghĩa là 4 TID vừa gửi đi là các TID thật. Tiếp
theo, Master sẽ giữ lại 3 TID thật trong số 4 TID đó, và đối với mỗi TID j khác
Master gửi đến bên thứ 3 tập hợp chứa 3 TID thật và TID j. Nếu câu trả lời của bên
14
thứ 3 là 3 thì Master đã xác định được TID j là giả. Lần lượt như vậy Master sẽ tìm
được tất cả các TID giả và thông tin của Slave sẽ bị lộ hoàn toàn.
Về thời gian thực hiện: Thuật toán do tác giả đề xuất đã cải tiến theo hướng
giảm khối lượng dữ liệu phải trao đổi giữa các máy trong quá trình khai thác luật do
đó giảm chi phí trên đường truyền. Do thuật toán sử dụng phương pháp IT-Tree nên
số lượng các tập ứng viên (là các tập sẽ xét có là tập phổ biến hay không?) đã giảm
nên việc truyền / nhận dữ liệu từ Master với máy thứ 3 sẽ giảm hơn so với thuật toán
gốc. Ngoài ra phương pháp đề xuất của tác giả luận án đã cải tiến khi cho bên thứ 3
trả về độ hỗ trợ của các tập ứng viên, từ đó bên Master có độ hỗ trợ để sinh luật nhằm
phục vụ được công việc thực tế của mình (thay vì chỉ khai thác được tập phổ biến).
3.2 Khai thác CSDL phân tán ngang bảo đảm tính riêng tư
3.2.1 Đặt vấn đề
Giả sử có m bên S
1
, S
2
, …, S
m
, mỗi bên sở hữu một CSDL giao tác
i
DB riêng,
các CSDL
i
DB được xem như phân mảnh ngang, nghĩa là có cùng một tập thuộc tính
trong lược đồ quan hệ và có dữ liệu độc lập. Tập các items: I = {i
1
, i
2
, …, i
n
} giống
nhau giữa tất cả các bên. Mỗi
i
DB chứa tập các giao tác
i
T= {
i
t
1
,
i
t
2
, ,
i
t
k
}, trong đó
mỗi giao tác
i
t
j
là một tập con khác rỗng của I. Mỗi tập con X khác rỗng của I được
gọi là một Itemset. Kí hiệu |
i
X| và |X| lần lượt là số lượng giao tác trong CSDL
i
DB
và CSDL DB ={
1
DB
2
DB
…
n
DB} có chứa X.
Độ phổ biến cục bộ của X trong S
i
, kí hiệu (
i
X), là tỷ lệ số giao tác trong CSDL
i
DB có chứa X so với tổng số giao tác hiện có CSDL
i
DB.
|DB|
|X|
)X(
i
i
i
Độ phổ biến toàn cục của X, kí hiệu (X) là tỷ lệ số giao tác có trong CSDL DB =
1
DB
2
DB …
n
DB chứa X so với tổng số giao tác trong DB.
m
1i
i
m
1i
i
|DB|
|X|
)X(
X- được gọi là tập phổ biến cục bộ tại S
i
nếu (
i
X) ≥ minsupport và được gọi là
phổ biến toàn cục nếu (X) ≥ minsupport (minsupport là ngưỡng độ phổ biến tối
thiểu được định trước bởi ngưởi dùng).
Tìm ra tất cả các tập phổ biến là bước quan trọng nhất của quá trình khai thác luật
kết hợp, vì vậy vấn đề được giải quyết là tính độ phổ biến toàn bộ (X) của itemsets
X trong khi bảo mật nội dung của các CSDL con cũng như bảo mật độ phổ biến cục
bộ của X tại mỗi S
i
.
3.2.2. Một số công cụ tính toán đa bên an toàn
15
Định nghĩa 3.1: Một giao thức được cho là giảm mức độ riêng tư g đến f nếu tồn
tại một tính toán riêng tư g khi sử dụng f. Khi đó, ta nói rằng g có thể giảm mức độ
riêng tư đến f.
Định lý 3.1: Giả sử g có thể giảm riêng tư đến f và tồn tại một giao thức tính toán
riêng tư f thì cũng tồn tại một giao thức tính toán riêng tư g.
Hệ mã hóa đẳng hình (Homomorphic encryption): Hệ mã hóa có tính chất đẳng
hình được sử dụng nhiều trong các giao thức tính toán đa bên an toàn. Một hệ mã
hóa công khai với hàm mã hóa E
pk
(.) có tính chất đẳng hình nếu với mọi thông điệp
(bản rõ) m
1
, m
2
, ta luôn có:
E
pk
=(m
1
+
M
m
2
) = E
pk
(m
1
) +
C
E
pk
(m
2
)
Trong đó: +
M
là phép toán hai ngôi định nghĩa trên không gian bản rõ (plaintext
space) và +
C
là phép toán hai ngôi định nghĩa trên không gian bản mã (ciphertext
space).
Các hệ mã như: RSA, EL Gamal, Paillier, đều có tính chất đẳng hình. Dựa trên
tính chất đẳng hình, ta có thể thực hiện những tính toán trên các bản rõ mà không cần
giải mã chúng.
Giao thức tính tích của hai tổng an toàn
Ngoài các giao thức tính toán đa bên an toàn như: tính tổng, so sánh, phép hợp,
tính lực lượng của phần giao,….Vận dụng tính chất đẳng hình của hệ mã hóa, Bin
Yang cùng các đồng sự đã đề xuất giao thức tính tích của hai tổng an toàn SPoS. Giả
sử có m bên S
1
, S
2
,…, S
m
, mỗi bên S
i
sở hữu hai số thực
i
X
1
và
i
X
2
(0<
i
X
1
,
i
X
2
<1),
giao thức SPoS cho phép mỗi bên tính được tích:
m
1i
2
i
m
1i
1
i
xxP
Trong khi vẫn giữ bí mật các giá trị riêng tư mỗi bên. Giao thức này đã được tác
giả chứng minh là đảm bảo riêng tư và có khả năng chống thông đồng hoàn toàn.
Tuy tác giả chưa đề cập đến việc sử dụng giao thức này trong khai thác luật kết hợp,
nhưng chúng tôi đã vận dụng giao thức này để xây dựng giao thức tính độ phổ biến
toàn cục cho các itemsets trên dữ liệu phân tán ngang, đảm bảo riêng tư.
3.2.3 Giao thức đảm bảo tính riêng tư trong tính độ phổ biến toàn cục
Để xây dựng giao thức tính độ phổ biến toàn cục, trước hết, chúng tôi giả định rằng
tất cả m bên đều biết một số nguyên A thỏa điều kiện A max {|
1
DB|, |
2
DB|, …,
|
m
DB|}, việc tiết lộ giá trị A như vậy không làm ảnh hưởng lớn đến tính riêng tư, tuy
nhiên trong phần sau, chúng tôi sẽ đề xuất một giao thức chọn A an toàn.
Đặt:
A
DB
x
i
i
||
và
A
)|X(|
y
i
i
16
Với là số thực rất bé được biết trước bởi tất cả các bên, ( 1, trong thực tế ta
có thể chọn = 1). Khi đó ta có:
1 x 0
i
và
1 y 0
i
Mỗi bên S
i
phát sinh một số thực ngẫu nhiên
i
c(0,1). Áp dụng giao thức tính
tích của hai tổng đảm bảo riêng tư SPoS trong [15], ta tính được:
)c cc)(x xx(p
m21m21
1
)c cc)(y yy(p
m21m21
2
Chia (3.2) cho (3.1) ta được:
m
1i
i
m
1i
i
1
2
y
x
P
P
m
i
i
m
i
i
DB
mX
1
1
||
||
Trong khai thác dữ liệu, m (số lượng các bên) nhỏ hơn rất nhiều so với số lượng
giao tác trong CSDL, hơn nữa rất bé ( 1), nên thành phần m có thể bỏ qua trong
công thức (3.3). Do vậy ta có:
)(
||
||
||
||
1
1
1
1
2
1
X
DB
X
DB
mX
P
P
m
i
i
m
i
i
m
i
i
m
i
i
Công thức (3.4) cho ta độ phổ biến toàn cục của itemset X.
3.2.4 Giải thuật khai thác tập phổ biến
Để tiết kiệm bộ nhớ và tăng tốc độ xử lý cục bộ tại mỗi S
i
, chúng tôi chọn thuật
toán khai thác tập phổ biến dựa trên cấu trúc chuỗi bit động, dữ liệu liên quan đến
mỗi tập mục dữ liệu được lưu trữ bởi một chuỗi bit động (DBS : Dynamic Bit String).
Kết hợp với giao thức tính độ phổ biến toàn cục được xây dựng trong phần 3.2.3.1 để
có thể áp dụng trên CSDL phân tán ngang, đảm bảo riêng tư.
Mỗi S
i
sử dụng một FITree (Frequent- ITree) để lưu trữ tập phổ biến toàn cục, mỗi
mỗi nút trong FITree gồm các thông tin: Itemset X, DBS(X), (
i
X) và (X).
Một số kí hiệu sử dụng trong thuật toán:
i
LL
k
: Tập itemset phổ biến cục bộ tại S
i
trong lần duyệt thứ k.
C
k
: Tập ứng viên toàn cục ở lần duyệt thức k.
i
BT: CSDL của S
i
được nén, mỗi phần tử của
i
BT gồm 3 phần: Itemsret X,
DBS(X) và độ phổ biến toàn cục (X).
(3.1)
(3.2)
(3.3)
(3.4)
17
Mỗi bên S
i
(i=1,2, , m) sử dụng thủ tục CREATE_FITREE sau đây để có được
FITree toàn cục.
Thuật toán (khai thác CSDL phân tán ngang bảo đảm tính riêng tư)
CREATE_FITREE(
i
DB, {S
j
/j = 1 ,2,…, m})
1. Áp dụng cấu trúc chuỗi bit động, nén CSDL
i
DB của S
i
vào
i
BT .
2. A = UPPER_BOUND(|
i
DB|} ).
3. Phát sinh ngẫu nhiên số thực
i
c(0, 1).
4.
)
A
|DB|
,c(SPoSP
i
i
1
.
5. L= // L là tập các Item phổ biến.
6. k=1;
7.
i
LL
k
=Tập phổ biến cục bộ ở S
i
.
8. C
k
=SECURE_UNION(
i
LL
k
).
9. For Each XC
k.
10.
)X(SUPPORT_SECURE)X(
11. If (X) minsup then
12. L = L {X}.
13. End for
14. FITree = Empty
15. FITree.Children=L.
16. EXTEND _FITREE(FITree, minsup).
17. Return FITree.
SECURE_SUPPORT(X).
18.
),
||
(
2
c
A
X
SPoSP
i
.
19.
2
2
P
P
)X(
.
20. Return
)X(
.
EXTEND _FITREE (FITree, minsup,k).
21. k=k+1.
22. For l=1 To FITree.Children.Count-1
23. X
i
= To FITree.Children[i].
24.
i
C
k
=Tập phổ biến cục bộ ở S
i
phát sinh từ FITree.
25. C
k
= SECURE_UNION (
i
C
k
):
18
26. End for
27. For j = l+1 to FITree.Children.Count
28. X
j
= FITree.Children[j]
29. If (
kji
l
CXX )(
) then
30.
)c,
A
|)XX(|
(SPoSP
i
ji
i
2
31.
)XX(SUPPORT_SECURE)XX(
jiji
32. If (X
i
X
j
) minsup then
33. X
i
.children.Add(X
i
X
j
)
34. FITree.DBS=Empty;
35. End if
36. End if
37. End for
38. EXTEND _FITREE (X
i
, minsup,k).
UPPER_BOUND(
i
DB)
39. Phát sinh số nguyên ngẫu nhiên r
i
40. If (i=1) then //S
i
là master
41. Gởi v
1
= r
1
+ |
1
DB| đến S
2.
42. Nhận v
m
từ S
m.
43. Gởi v
m
đến tất cả các S
j
(ji).
44. Else //S
i
không phải là master
45. Nhận v
i-1
từ S
i-1
46. Gởi v
i
=max{v
i-1
,r
i
+ |
i
DB|} đến S
(i mod m)+1
47. Nhận v
m
từ S
1
48. End if
49. Return v
m
Đánh giá mức độ bảo vệ riêng tư của thuật toán
Mức độ đảm bảo riêng tư của thủ tục UPPER_BOUND: Trong thủ tục này,
mỗi S
i
đều cộng thêm vào |
i
DB| của mình một số nguyên ngẫu nhiên r
i
trước khi
trao đổi với bên khác, do vậy |
i
DB| của S
i
được đảm bảo riêng tư và cũng chống lại
khả năng thông đồng.
Mức độ đảm bảo riêng tư của giao thức tìm tập ứng viên toàn cục
(SECURE_UNION): Ở đây sử dụng phép hợp đảm bảo riêng tư để tìm tập ứng
19
viên toàn cục. Các tác giả đã chứng minh giao thức này là an toàn trong cả môi
trường nguy hiểm (malicious) và có khả năng chống thông đồng.
Mức độ đảm bảo riêng tư của giao thức tính độ phổ biến toàn cục cho các
itemset đã chứng minh giao thức SPoS là an toàn theo mức độ an toàn của hệ mã
hóa sử dụng. Hơn nữa, giao thức SPoS có mức độ bảo vệ riêng tư và chống thông
đồng hoàn toàn (full - private). Tuy nhiên chúng ta cũng cần phải xem xét cụ thể
khi áp dụng giao thức này để tính độ phổ biến toàn cục.
Độ phổ biến toàn cục của itemset X được xác định được tính toán mức độ đảm
bảo riêng tư trong khi tính toán giá trị P
1
, P
2
và được xác định theo hai giao thức
SPoS và SUPPER_BOUND (full - private).
Để đánh giá mức độ duy trì tính riêng tư của toàn bộ thuật toán, ta xem các
giao thức con đảm bảo riêng tư đã dùng như các hộp đen và xem xét mức độ riêng
tư của giao thức tính độ phổ biến toàn cục của itemset X. Độ phổ biến toàn cục
của X được tính theo công thức .
m
i
i
m
i
i
DB
X
X
1
1
||
||
)(
Xem xét các trường hợp có thể xảy ra sau đây:
Trường hợp có ít hơn m - 1 bên thông đồng:
Phương trình (3.5) luôn có nhiều hơn 4 biến, do vậy độ phổ biến cục bộ của X
trong các bên còn lại vẫn được giữ bí mật.
Trường hợp có m - 1 bên
1
i
S
,
2
i
S
,…,
1m
i
S
thông đồng với nhau:
Nếu tất cả
1
i
S
,
2
i
S
,…,
1m
i
S
tham gia trong giao thức tính độ phổ biến toàn cục
của X với kích cỡ CSDL cũng như độ phổ biến cục bộ bằng 0, ta có:
|DB|
|X|
|DB|
|X|
)X(
m
m
i
i
m
1i
i
m
1i
i
Khi đó, các
1
i
S
,
2
i
S
,…,
1m
i
S
sẽ biết được độ phổ biến cục bộ của X tại
m
i
S
. Tuy
nhiên, trong mô hình khai thác CSDL từ nhiều bên, các bên thực hiện theo đúng
giao thức đã được định sẵn, độ phổ biến cục bộ của itemset X có thể bằng 0 nhưng
số lượng giao tác trong mỗi CSDL phải lớn hơn (rất nhiều) so với 0. Do vậy, việc
suy luận chính xác độ phổ biến cục bộ của X trong
m
i
S
là không thể.
Nếu độ phổ biến của X lớn hơn 0 tại ít nhất một bên trong m-1 bên
1
i
S
,
2
i
S
,…,
1m
i
S
, giao thức tính độ phổ biến toàn cục được xây dựng cũng đảm bảo
tính riêng tư hoàn toàn như giao thức SPoS.
(3.5)
20
Tóm lại, giao thức tính độ phổ biến toàn cục của luận án đề xuất đảm bảo tính
riêng tư hoàn toàn với môi trường semi-honest.
Đánh giá chi phí truyền thông: Theo thuật toán được xây dựng, độ phổ biến
toàn cục của mỗi itemset X được tính bởi công thức (3.5)
P
1
và giá trị A sử dụng trong thuật toán chỉ được tính một lần trong giai đoạn
khởi tạo, do vậy ta chỉ cần đánh giá chi phí truyền thông phát sinh từ việc tính P
2
.
Mỗi giá trị P
2
được tính tương ứng với một lần thực hiện giao thức SPoS, số lượng
thông điệp truyền đi trong hệ thống là: 4m(m-1) với m là số lượng các bên. Tuy
nhiên, quá trình trao đổi thông điệp xảy ra song song trên từng cặp hai thành viên
độc lập và trong đã chứng minh rằng thời gian chạy của giao thức SPoS chỉ là
tuyến tính theo m (O(m)), như vậy thời gian để tính P
2
cũng là O(m), nếu thời gian
thực hiện các xử lý cục bộ là như nhau giữa các bên và không xét đến phép hợp an
toàn để tỉa tập ứng viên, tổng thời gian chạy của toàn bộ thuật toán tìm tập phổ
biến được xây dựng cũng là O(m).
3.3 Giao thức khai thác CSDLPT ngang bảo đảm tính riêng tư
3.3.1 Cơ sở lý thuyết
- Tập phổ biến tối đại (MFI: Maximal Frequent Itemsets):M là tập phổ biến tối
đại nếu M là tập phổ biến và không tồn tại tập phổ biến S khác M mà M S. Ta
có: |MFI| << |FI|.
- Mã hoá Paillier: là hệ mã có tính chất đồng hình theo phép cộng, ta có thể
tính tổng của các bản rõ dựa vào tích của các bản mã, nghĩa là:
E
g
(m
1
) * E
g
(m
2
) = E
g
(m
1
+ m
2
)
Sau khi giải mã sẽ là tổng của hai bản rõ, tức là :
D(E
g
(m
1
) * E
g
(m
2
)) = m
1
+ m
2
Như vậy ta có thể tính tổng m
1
+ m
2
mà không biết m
1
và m
2
.
Mã hoá Paillier dựa vào song ánh:
**
*
2
2
( , ) (mod )
Z Z Z
NN
N
E
g
xN
x y g y N
Với N = p*q với p và q là số nguyên tố lớn,
*
g
2
Z
N
có bậc là bội khác không
của N (có thể chọn g = n + 1). Các bước thực hiện:
Phát sinh khoá: public key (N, g) và private key (p, q).
Mã hoá: để mã hoá thông điệp m với m < N, chọn ngẫu nhiên
*
rZ
N
,
sử dụng public key(N, g) tính: c = E
g
(m) = g
m
r
N
(mod N
2
), với c là bản mã của m.
21
Giải mã: để giải mã bản mã c sử dụng private key p và q, tính m = [c]
g
như
sau:
2
( (mod ) 1)/
[ ] (mod )
2
( (mod ) 1)/
c N N
cN
g
g N N
Với λ = lcm (p - 1, q - 1), với lcm là bội số chung nhỏ nhất. Ta có [c]
g
không thể
tính được nếu không có p và q.
Do bản rõ
mZ
N
, bản mã
*
2
cZ
N
nên với khoá t (bit) kích thước bản mã là 2*t
(bit) khi mã hoá một phần tử. Vì r được chọn ngẫu nhiên nên bản mã c của thông điệp
m là ngẫu nhiên, do đó hệ thống mã hoá Paillier là một phép mã hoá theo xác xuất.
3.3.2. Giao thức khai thác
Giao thức sử dụng 2 server Initiator và Combiner và các Client tương tự như
giao thức do M.Hussen đề xuất trong. Tuy nhiên, Giao thức đề xuất sử dụng
n
MFI
i
i1
để phát sinh tập ứng viên thay cho
n
FI
i
i1
và mã hoá Paillier để tính độ hỗ trợ toàn
cục thay cho phép hợp. Để thấy rõ có thể sử dụng
n
MFI
i
i1
là tập ứng viên chúng tôi
giới thiệu 2 bổ đề sau:
Bổ đề 3.3.1: một itemset phổ biến toàn cục thì phải phổ biến cục bộ tại ít nhất
một site.
Chứng minh: giả sử itemset X phổ biến toàn cục và không phổ biến cục bộ tại
bất kỳ site nào. Với S
i
là độ hộ trợ của X tại site i, S là độ hỗ trợ toàn cục, ta có:
,s s s
ii
=>
**
1
n
s D s D
ii
i
=> X không phổ biến toàn cục, mâu thuẫn với giả thiết
=> điều phải chứng minh.
Bổ đề 3.3.2:
n
MFI
i
i1
xác định tất cả các itemset phổ biến toàn cục (với MFI
i
là
MFI tại site S
i
).
Chứng minh: từ bổ đề 1, nếu X là một itemset phổ biến toàn cục thì X phải phổ
biến cục bộ tại ít nhất một site. Giả sử X phổ biến cục bộ tại các site k thì X phải
được xác định trong MFI
k
do đó cũng được xác định trong
n
MFI
i
i1
.
Từ bổ đề 3.3.2, ta có thể chọn
n
MFI
i
i1
để phát sinh tập itemset ứng viên toàn cục.
Với mã hoá Paillier ta có thể tính độ hỗ trợ toàn cục của các ứng viên và có thể
tính tổng các độ hỗ trợ ở dạng mã hoá, tức là:
E (sup
1
+ … + sup
n - 1
) = E (sup
1
) * … * E (sup
n - 1
)
Sau khi giải mã sẽ là độ hỗ trợ toàn cục của ứng viên.
Giao Thức
22
Giao thức gồm 3 giai đoạn (giai đoạn đầu, giai đoạn hai và giai đoạn kết thúc).
Hai giai đoạn đầu mỗi giai đoạn có 3 bước, tại giai đoạn kết thúc Initiator tìm các
luật toàn cục mạnh và gửi về cho các bên.
- Khởi đầu: Bên Initiator gửi khóa công khai (public key) và khóa bí mật
(private key) theo mã hóa Paillier đến tất cả các bên (trừ Combiner).
Giai đoạn đầu :
Bước 1: Mỗi bên thực hiện tìm tập tối đại của mình một cách độc lập (trừ
Initiator) mã hóa tập tối đại bằng mã khóa private key (bên Combiner không mã
hóa). Sau đó các bên gửi dữ liệu đã mã hóa của mình cho Combiner.
Bước 2: Combiner nhận dữ liệu của các bên và vì không có khóa private key nên
không thể biết MFI của các bên. sau đó Combiner trộn dữ liệu nhận được từ các
bên với dữ liệu MFI của mình và gửi đến Initiator.
Bước 3: Initiator giải mã dữ liệu nhận được từ Combiner và kết hợp với tập phổ
biến tối đại của nó để tìm MFI toàn cục, trong đó, mỗi tập phổ biến tối đại không là
tập con của tập phổ biến tối đại khác. sau đó Initiator gửi MFI toàn cục cho tất cả
các bên. Mỗi bên tự phát sinh các tập phổ biến của mình theo thứ tự xác định từ
MFI toàn cục.
Giai đoạn hai:
Bước 1: Mỗi bên (trừ Initiator) tính độ hỗ trợ các tập phổ biến của mình và mã
hóa bằng cách sử dụng mã khóa Paillier. Sau đó các bên gửi dữ liệu đã mã
hóa cho Combiler. Mã hóa độ hỗ trợ của tập phổ biến X tại bên S
i
được ký hiệu là
E(X.sup
i
)
Bước 2: Với mỗi X Combiler tính toán :
- 2
.sup . * .
1
n
E X E X sup E X sup
Combiner Combiner k
k
Sau đó mã hóa và gửi cho Initiator.
Bước 3: Initiator giải mã dữ liệu nhận được từ Combiner và tính toán độ hỗ trợ
toàn cục cho tất cả các bên theo công thức:
X.sup = D (E(X.sup
Combiner
)) + X.sup
Initiator
Giai đoạn hoàn tất:
Các bên cùng tính |DB
i
|=
n
|DB |
i
i=1
theo cách thực hiện như ở giai đoạn 2. Sau đó
Initiator tìm các luật toàn cục mạnh và gửi về cho các bên.
Đánh giá giao thức về tính riêng tư:
23
Bước tìm tập ứng viên, Combiner nhận dữ liệu đã được mã hoá từ các bên và
không có private key nên không thể giải mã, Combiner trộn các MFI cục bộ nên
sau khi giải mã Initiator không thể biết được MFI nào của site nào.
Bước tính độ hỗ trợ toàn cục, Combiner tính tích các độ hỗ trợ ở dạng mã hoá
nên Initiator không thể biết chính xác độ hỗ trợ của từng itemset của các site khác.
Với mã hoá Paillier có bản mã là ngẫu nhiên nên có tính riêng tư cao hơn so với
giao thức MHS.
Từ đó ta có thể khẳng định giao thức không tiết lộ dữ liệu cục bộ, các itemset
cùng độ hỗ trợ, |DB
i
| và có tính riêng tư cao hơn so với giao thức MHS.
Về độ chính xác: Từ bổ đề 3.3.2 tập itemset phổ biến toàn cục là tập con của tập
ứng viên, sau đó ta tính độ hỗ trợ toàn cục của các itemset ứng viên và sẽ tìm ra
itemset phổ biến toàn cục. Cụ thể trong mỗi bước:
Bước tìm tập ứng viên, Combiner chỉ thực hiện phép trộn và không làm thay đổi
dữ liệu nhận được nên sau khi Initiator giải mã sẽ nhận được chính xác MFI cục bộ
của các site.
Bước tính độ hỗ trợ toàn cục, do sử dụng mã khóa Paillier nên Combiner có thể
tính tổng các độ hỗ trợ ở dạng mã hoá nên Initiator sau khi giải mã sẽ nhận được
chính xác tổng độ hỗ trợ của (n – 1) bên.
Kết luận
Luận án đã trình bày các cơ sở lý thuyết về CSDL phân tán, đề xuất một số thuật
toán khai thác dữ liệu và ẩn dữ liệu trong qua trình khai thác từ đó dẫn đến mục đích
chính của luận án là đề xuất các thuật toán khai thác dữ liệu trên CSDL phân tán có
quan tâm đến việc bảo toàn tính riêng tư của các bên tham gia quá trình khai thác và
tránh thông đồng giữa một số bên để làm lộ dữ liệu của các bên khác.
Những đóng góp chính của luận án tập trung vào mục đích mà luận án đã đặt ra
là : Đề xuất một số thuật toán cải tiến từ các thuật toán đã được công bố ở các tài liệu
khác nhằm tăng tốc độ khai thác dữ liệu đối với dữ liệu lớn và CSDL phân tán. Đề
xuất thuật toán, giao thức và giải thuật khai thác CSDL phân tán dọc và phân tán
ngang, có nghiên cứu đến việc bảo toàn tính riêng tư của dữ liệu các bên tham gia
khai thác.
Luận án đã thực hiện được đóng góp khoa học cho việc đề xuất các thuật toán
khai thác trên CSDL phân tán nhằm tăng tốc độ khai thác luật kết hợp trên CSDL
phân tán dọc, đề xuất thuật toán ứng dụng giàn giao vào việc ẩn các tậm mục nhạy
cảm của các bên tham gia trước khi tiến hành gửi dữ liệu để khai thác.
Luận án cũng đã đề xuất được một số thuật toán khai thác trên CSDL phân tán
dọc và phân tán ngang có quan tâm đến việc bảo toàn dữ liệu của các bên tham gia