Tải bản đầy đủ (.pdf) (10 trang)

khai thác luật kết hợp bảo đảm tính riêng tư trên dữ liệu phân tán ngang (3)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (131.5 KB, 10 trang )

28

Chương 3.

KIẾN THỨC NỀN TẢNG

Trong chương này sẽ trình bày về các kiến thức liên quan ñến giao thức ñề
xuất (trình bày ở chương 4) như itemset phổ biến tối ñại và mã hóa ñồng hình
Paillier. Phần ñầu trình bày khái niệm itemset tối ñại, thuật toán GenMax ñể khai
thác itemset phổ biến tối ñại và so sánh với các thuật toán khác. Tiếp theo trình bày
về mã hóa ñồng hình, các tính chất của mã hóa Paillier, ñồng thời trong chương này
cũng trình bày về mã hóa Paillier cải tiến có thể áp dụng cho giao thức ñề xuất ñể
tiết kiệm chi phí truyền thông hơn nữa.
3.1. Itemset tối ñại:
Itemset phổ biến là tập các item có tần số xuất hiện ít nhất sup (%) trong
CSDL, với sup là ñộ hỗ trợ tối thiểu do người dùng xác ñịnh [18].
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| [18].
3.2. Thuật toán GENMAX:
Để tìm tập itemset tối ñại, phương pháp ñơn giản nhất là phương pháp tìm
kiếm ñệ quy quay lui, tuy nhiên phương pháp này có không gian tìm kiếm lớn, chi
phí tính toán và chi phí duyệt CSDL cao. Thuật toán GENMAX trong [18] tối ưu
thuật toán tìm kiếm ñệ quy quay lui, sử dụng một số kỹ thuật ñể loại bỏ nhánh
không cần thiết trong không gian tìm kiếm và tính ñộ phổ biến nhanh.
Cho CSDL giao tác như bảng 3.1:
Bảng 3.1 - CSDL giao tác
Mã giao tác (tid) Danh sách item
1
ACTW
2
CDW


3
ACTW
4
ACDW
5
ACDTW
6
CDT


29

Cây tìm kiếm quay lui cơ bản với SUP = 3 ñược biểu diễn trong hình 3.1.
Combine-set (ký hiệu C) của itemset I là tập các item có thể ñược thêm vào I
ñể tạo thành itemset phổ biến. Combine-set của itemset rỗng là F1. Ban ñầu:
I0 = ∅. C0 = F1 = {A, C, D, T, W}.
Mức 1: lần lượt thêm vào I0 các item trong C0. I1 = {A}, P1 = {C, D, T, W}:
tập các ứng viên của A. Chỉ có AC, AT, AW là phổ biến, C1 = {C, T, W}, tỉa nhánh
AD.
Kết thúc thuật toán ta ñược MFI = {ACTW, CDW}
Mức
0

{}{A, C, D, T, W}

1
C{D, T, W}

A{C, D, T, W}


AD{T, W}

AC{D, T, W}

ACD{T, W} ACT{W} ACW

ACDT{W} ACDW

AT{W} AW

CD{T, W} CT{ W} CW

ADT{W} ADW ATW CDT{W}

ACTW

ADTW

D{T, W}

CDW

CTW

DT{W} DW

DTW

CDTW


T{W}

TW

W

2

3

4

5
ACDTW

Hình 3.1 - Cây tìm kiếm của thuật toán quay lui
Các tối ưu của thuật toán GenMax:
a) Kiểm tra tập cha:
Kiểm tra tập cha (superset) của I có là tập con của MFI hay không ? Nếu
ñúng thì I không là itemset tối ñại.
b) Sắp xếp lại combine-set:
Sắp xếp tăng dần theo ñộ hỗ trợ vì item có ñộ hỗ trợ nhỏ có ít khả năng tạo ra
itemset phổ biến ở mức tiếp theo, nếu ñược tỉa sớm hơn sẽ tiết kiệm chi phí nhiều
hơn.


30

Ở mức 0, sắp xếp tăng dần theo |F (x)| (hoặc giảm dần theo |IF (x)| , IF (x) =
{y: y ∈ F1, xy không phổ biến} ). Combine-set nhỏ nhất sẽ ñược xét trước, cây tìm

kiếm sẽ nhỏ hơn và giảm số lần tính FI-combine.
Ví dụ: SUP = 2 xem hình 3.2, các mũi tên nét ñứt là các nhánh không cần
xét. Ở ví dụ này các itemset x thuộc F1 ñều có cùng |IF(x)|.
c) Tối ưu cài ñặt:
Tối ưu kiểm tra tập cha: thay vì kiểm tra tập cha 2 lần ta giảm xuống còn 1
lần, vì Il+1 ∪ Pl+1 là tập cha của Il+1 nên ta chỉ cần kiểm tra với Il+1 ∪ Pl+1 là ñủ.
Loại bỏ kiểm tra tập cha trong mỗi vòng ñệ quy do nếu |Pl+1| = m kiểm tra tập cha
dư thừa m lần nếu MFI không thay ñổi, ta sử dụng cờ check_status. Chỉ xét các
itemset tối ñại cục bộ LMFIl, chỉ chứa toàn bộ các item trong Il., số phép kiểm tra
tập cha sẽ ít hơn do |LMFIl| < |MFI|.
D{T, W, C}

A{D, T, C, W}

AT{WC}

AD{T, C, W}

ADT{W, C} ADW{C} ADW

ADWC

AW{C} AC

ATW{C} ATC ATC

DT{W, C} DW{ C}

DTW{C}


DTC

T{W, C}

DC

DWC

TW{C}

TC

TWC

ATWC

Hình 3.2 - Cây tìm kiếm của thuật toán genmax
Kí hiệu: t ( X ) bao gồm tất cả các giao tác (tid) có X là tập con, gọi là tidset
của X. Ví dụ, X = {A, C, W} = ACW và tidset {1, 3, 4, 5} = t(X) = 1345.
X.sup chính là kích thức của t(X) (X.sup = |t(X)| = 4)
Tối ưu kiểm tra ñộ phổ biến: sử dụng CSDL ñịnh dạng dọc, mỗi dòng (bộ)
là tidset của các item. Tính ñộ hỗ trợ của các itemset ñơn giản và nhanh hơn do chỉ
lấy phần giao của các tidset. Giảm số lần duyệt CSDL, ta chỉ ñọc dữ liệu tại dòng
của item tương ứng. Ví dụ, CSDL bảng 3.2 là biểu diễn ở ñịnh dạng dọc ở của
CSDL ở bảng 3.1.


31

Tính toán theo diffset: với CSDL ñịnh dạng dọc, khi số tidset quá lớn thời

gian tìm phần giao lớn, kích thước của các tidset trung gian cũng rất lớn nên bộ nhớ
chính sẽ không ñủ. GANMAX sử dụng ñịnh dạng mới là diffset. Diffset chỉ lưu lại
những item khác nhau giữa tidset của Il và tidset của x trong combine-set (tức là Il
∪ {x}).

Thuật toán GenMax tổng quát:
1. Tính F1 và F2
3. Tính IF(x) với mọi item x ∈ F1
4. Sắp xếp F1 (giảm dần theo IF(x), tăng dần theo x.sup)
5. MFI = ∅
6. LMFI-backtrack(∅, F1, MFI, 0) // sử dụng diffsets
7. return MFI
// LFMIl là kết quả ñầu ra
LMFI-backtrack(Il, Cl, LMFIl, l)
1. for each x ∈ Cl
2.

Il + 1 = Il ∪ {x}

3.

Pl + 1 = {y: y ∈ Cl và y > x}

4.

if (Il + 1 ∪ Pl + 1) có một tập con trong LMFIl

5.

return //các nhánh con bị tỉa !


6.*

LMFIl + 1 = ∅

7.

Cl + 1 = FI-combine (Il + 1, Pl + 1)

8.

if Cl + 1 là rỗng

9.
10.
11.*
12.
13.*

if Il + 1 không có tập cha nào trong LMFIl
LMFIl = LMFIl ∪ Il + 1
else LMFIl + 1 = {LMFIl: x ∈ M}
LMFI-backtrack(Il + 1, Cl + 1, LMFIl + 1, l + 1)
LMFIl = LMFIl ∪ LMFIl + 1


32

// Il + 1 có thể kết hợp với các item khác trong Cl hay không ?
FI-combine(Il + 1, Pl + 1)

1. C = ∅
2. for each y ∈ Pl + 1
3.

y’ = y

4.

if level == 0 then d(y’) = t(Il + 1) – t(y)

5.

else d(y’) = d(y) – d(Il + 1)
if y’.sup ≥ SUP

6.

C = C ∪ {y’} // thêm y’ theo thứ tự tăng của ñộ hỗ trợ

7.
8. return C

Ban ñầu sắp xếp các item theo thứ tự tăng |F(x)| và theo thứ tự tăng của ñộ
hỗ trợ. Các level sau, sắp xếp combine set có thứ tự tăng theo ñộ hỗ trợ.
Bảng 3.2 - CSDL tidset
Item
Tidset
A
1345
C

123456
D
2456
T
1356
W
12345
So sánh với các thuật toán khác (Mafia (Burdick 2001), MaxMiner
(Bayardo, 1998), MAFIA-PP): Mafia có thời gian thực thi nhanh hơn, tuy nhiên kết
quả là tập cha của MFI, MaxMiner và MafiaPP ñều cho kết quả chính xác, GenMax
có thời gian thực thi nhanh hơn hai thuật toán này [18].
3.3. Mã hoá công khai ñồng hình Paillier:
3.3.1. Mã hoá công khai ñồng hình:
Là dạng mã hoá có một phép toán ñại số cụ thể ñược thực hiện trên bản rõ
và phép toán ñại số (có thể khác) ñược thực hiện trên bản mã [22].


33

Một hệ thống mã hóa công khai ñược gọi là ñồng hình nếu thỏa mãn một số
ñiều kiện sau [4][22]:
(1) Epk (m1 + m2): = Epk (m1) + h Epk (m2)
(2) Epk (k . m1): = k * h Epk (m1)
(3) Epk (m1 * m2): = Epk (m1) *h Epk (m2)
Trong ñó +h và *h là các phép toán ở dạng mã hoá.
Một số hệ mã có tính chất ñồng hình: RSA, ElGamal, Goldwasser-Micali,
Benaloh. (Xem chi tiết trong [22])
3.3.2. Mã hoá Paillier:
Mã hoá Paillier [19] do Pascal Paillier ñề xuất năm 1999, ñây là một thuật
toán mã hoá công khai ñồng hình tiêu biểu.

*
Cho N = pq với p và q là số nguyên tố lớn, g là một phần tử của Z N 2 có bậc

là bội khác không của N (có thể chọn g = n + 1), ta có ánh xạ:


Z N * Z N* 
→ Z N* 2
Eg 
→ g x y N (mod N 2 )
( x, y ) 
là một song ánh. Thặng dư cấp N (N-th residuosity) của của số nguyên c ∈ Z N 2 ñối
*

với g ký hiệu là

[c ]g

là số nguyên x duy nhất trong ZN sao cho:
c = gxyN (mod N2) (với y thuộc

Z N* 2 )

[c]g có thể ñược tính như sau:

(c λ (mod N 2 ) − 1) / N
[c ]g = λ
(mod N )
( g (mod N 2 ) − 1) / N
Với λ = lcm (p - 1, q - 1) ( với lcm là bội số chung nhỏ nhất).


[c]g không thể tính ñược nếu không có p và q.
(Xem trong [19] và [20] về chứng minh Eg là song ánh và không thể tính
ñược [c ]g nếu không biết p và q).


34

Dựa vào tính chất này Paillier ñề xuất hệ mã khoá công khai như sau:
(1) Phát sinh khoá: chọn 2 số nguyên tố lớn phân biệt p, q và phần tử

g ∈ Z N* 2 có bậc là bội khác không của N = pq (một trường hợp là g = n +
1), với public key (N, g) và private key (p, q).
(2) Mã hoá: ñể mã hoá thông ñiệp m với m < N, chọn ngẫu nhiên r từ Z N* , sử
dụng public key (N, g) tính:
c = Eg (m) = gmrN (mod N2)
với c là bản mã của m.
(3) Giải mã: ñể giải mã bản mã c sử dụng private key p và q, tính m = [c ]g dựa
vào công thức trên.
Vì r ñược chọn ngẫu nhiê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, hơn nữa hệ thống mã
hoá Paillier có tính chất mã hoá ñồng hình:
Phép cộng ñồng hình: tích của hai bản mã, sau khi giải mã tích này sẽ là
tổng của các bản rõ tương ứng.
Eg (m1) * Eg (m2) = Eg (m1 + m2)

D( E ( m1 , r1 ) * E (m2 , r2 ) mod Ν 2 ) = m1 + m2 mod Ν
Với mọi m1, m2 ∈ ZN.
Chứng minh:


E g ( m1 ) = g m1 * r1N

E g ( m 2 ) = g m 2 * r2 N

E g ( m1 ) * E g ( m 2 )

( mod N )
( mod N ) , với r , r
2

2

1

2

chọn ngẫu nhiên.

= g m1 * r1N ( mod N 2 ) * g m2 * r2 N ( mod N 2 )

= g (m1 + m2 ) * ( r1 * r2 )
= g (m1 + m2 ) * ( r 3
= Eg ( m1 + m2 )

N

( mod N )
2

) ( mod N ) (Với r

N

2

3

= r1* r2 ngẫu nhiên)


35

Phép nhân ñồng hình: một văn bãn rõ sau khi ñược mã hoá theo luỹ thừa
của một văn bản rõ khác sẽ là tích của hai bản rõ.

E ( m1 )

= E ( m1 * m 2 )

m2

D ( E ( m1 , r1 ) m2 mod Ν 2 ) = m1m2 mod Ν
Chứng minh:

E ( m1 , r1 )

m2

mod N 2 = ( g m1 * r1N ( mod N 2 ) )m2 mod N2

= g m1 * m 2 * ( r1m 2 )


N

( mod N ) mod N
2

2

(Với r3 = r1m2 ngẫu nhiên)

= E ( m1 * m 2 ) mod N
Một văn bãn rõ ñược mã hoá với một hằng số k, sau khi giải mã là tích của
bản rõ và hằng số:
E (m, r)k = E (k * m)
D(E(m, r)k mod N2 ) = k*m mod N
Chứng minh:
E (m, r)k mod N2

= ( gm * rN (mod N2) )k mod N2
= ( gm*k * (rk)N (mod N2) ) mod N2
= ( gm*k * (rx)N (mod N2) ) mod N2 ( với rx = rk ngẫu nhiên)
= E (k* m) mod N.

Cho trước một phép mã hoá Paillier của 2 thông ñiệp, ta không thể tính ñược
mã hoá tích 2 của thông ñiệp này nếu không biết private key. Tính bảo mật của
Paillier do khó phân tích N = pq với p và q là các số nguyên tố lớn.
Bản rõ thuộc ZN, bản mã thuộc

Z N* 2 , với khoá t (bits) kích thước mã hoá


một phần tử là 2*t. Kích thước khoá càng lớn thì tính bảo mật cao hơn và thời gian
mã hoá, giải mã tăng, ñồng thời kích thước bản mã cũng lớn hơn.
Ví dụ:
Cho p= 53, q=61, N= p*q = 53*61 = 3233
=> λ = lcm (p-1,q-1) = lcm(52,60) = 780


36

Chọn g = 20, ta có: public key (N, g) = (3233, 20), private key (p, q) = (53, 61)
Với bản rõ m = 13, và số ngẫu nhiên r = 17:
Mã hoá:
c = (gm) * (rN) mod N2 = 2013 * 173233 mod 32332 = 10.287.327 (mod N²)
Giải mã:

[ c ]g
=

(10.287.327780 ) mod 32332 − 1) / 3233
=
(mod 3233)
(20780 mod 32332 − 1) / 3233

1382
-1
(mod 3233) = 1382 * (355) (mod 3233) = 1382 * 255 (mod 3233) = 13
355

( với 355*255 = 1 (mod N))
Với hai bản rõ m1 = 13, m2 = 12

c (13) = 10.287.327 (mod N²), c (12) = 9.398.812 (mod N²)
c (13 + 12) = c(12) * c(13) mod N2 = 3.915.960 (mod N²)
[c]g = 2409 * 255 (mod 3233) = 25.
[c]g = 25 chính là tổng của hai bản rõ m1 + m2.
3.3.3. Mã hoá Paillier cải tiến:
Xun Xi và Yanchun Zhang [11] ñề xuất sử dụng mã hoá Paillier cải tiến. Do
N rất lớn và ñộ hỗ trợ toàn cục của itemset luôn luôn nhỏ hơn N, mã hoá một số nhỏ
với modulo N lớn sẽ tốn nhiều chi phí tính toán và truyền thông.
Ta có thể cải tiến như sau: với khoá mã hoá t (bit), N = 2t, DB =

n

∑ | DB |
i =1

i

và X = |DB| + 1, chọn λ là số nguyên lớn nhất sao cho:
a0 + a1X + … + aλXλ < N
Với mọi 0 ≤ ai < X thì λ ≈

log 2 N
.
log 2 | DB |

Với λ + 1 là số itemset cần tính tổng ñộ hỗ trợ với các ñộ hỗ trợ cục bộ
tương ứng là pi0, pi1, pi2, …, piλ). Mỗi site mã hoá E (pi0 + pi1X + … + piλXλ) rồi gửi


37


dữ liệu mã hoá cho site trung gian. Site trung gian tính tích dữ liệu nhận ñược, kết
quả là:
n

n

n

i =1

i =1

i =1

E (∑ pi0 + ∑ pi1 ∗ X +... +∑ piλ * X λ )
Sau khi giải mã nhận ñược:
n

n

n

i =1

i =1

i =1

∑ pi0 + ∑ pi1 ∗ X +... +∑ piλ * Xλ

n

n

Thực hiện modulo kết quả cho X với (λ + 1) lần ta ñược

∑p
i =1

i0

,

∑p
i =1

i1

,

n

…,

∑p
i =1



là tổng ñộ hỗ trợ của (λ + 1) itemset.


Trong trường hợp khoá mã hoá t = 1024 (bit), |DB| ≈ |10|6, λ ≈ 50, chỉ cần
một phép mã hoá và giải mã là có thể tìm ñược ñộ hỗ trợ toàn cục của 51 itemset.
Kết chương: trong chương này ñã tìm hiểu về itemset tối ñại, thuật toán
GenMax ñể phát sinh các itemset tối ñại, mã hóa công khai ñồng hình, mã hóa
Paillier và các tính chất, các kiến thức này ñược áp dụng trong giao thức ñề xuất
(chương 4) ñể nâng cao tính riêng tư và hiệu năng của giao thức.



×