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

Tài liệu Cây nhị phân pptx

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 (429.65 KB, 36 trang )


1


Chương 1: CÁC KHÁI NIỆM CƠ BẢN
1.1 MỘT SỐ KHÁI NIỆM

• Trung tâm quảng bá (Center, Broadcast Center),
nhà cung cấp dữ liệu (NCCDL-Data Provider):
Trung tâm có các kênh phát thông tin quảng bá tới các thiết bị thu dữ liệu.
• Thiết bị thu dữ liệu (TBTDL - User):
Thu dữ liệu phát ra từ NCCDL và dùng các khoá bí mật của nó để giải mã
dữ liệu thu được.
• Thông điệp hay bản tin (Message):
Là thông tin hoặc đoạn thông tin được NCCDL gửi đến TBTDL qua các
kênh quảng bá.
• Khoá thời gian tồn tại ít (Short-lived key-session key):
Là khóa
được duy trì trong một phiên truyền dữ liệu gọi tắt là khoá phiên.
• Khoá thời gian tồn tại dài (long- lived key):
Là khoá tồn tại trong thời gian dài của hệ thống, gọi tắt là khoá thời gian
dài hay khoá “dài”.
• Bộ khoá nhái:
Là bộ khoá mà kẻ gian đã (dùng phương pháp nào đó,ví dụ thám khoá) thu
được từ tập khoá của một số TBTDL.
• Thiết bị thu bất hợp pháp (Traitor):
Là TBTDL làm rò rỉ khoá hoặc TBTDL sử dụng bộ khoá nhái để gi
ải mã
bản tin nhận được từ NCCDL.



2

1.1.1 Các ký hiệu:
• N: Tập tất cả các TBTDL, |N|=n.
• u
1
,..., u
n
: ký hiệu các TBTDL.
• R: Tập các TBTDL bất hợp pháp, |R|=r.
• P: Tập các TBTDL hợp pháp, P=N-R.
• K: Khoá phiên.
• L: Khoá “dài”.
• M: Thông điệp hay bản tin.
• C
M
: Bản mã của thông điệp M.
• tM: Bản tin thử nghiệm.
• L
u
i
tập các khoá “dài” của TBTDL u
i
, i=1, 2,…, n.
• | L
u
i
|: số lượng các khoá “dài” của TBTDL u
i
.

• S
i:
Tập các TBTDLdùng chung một khoá “dài” L
i
.
• S
i,j
= S
i
– S
j
: chứa các TBTDL thuộc phần bù của tập S
i
so với tập S
j
.
Các TBTDL trong tập S
i,j
dùng chung khoá “dài” L
i,j
.










3

1.1.2 Vấn đề mã hoá
1.1.2.1 Khái niệm hệ mã hoá
Mã hóa là quá trình chuyển những thông tin nhận biết được thành những
thông tin “khó” nhận biết được
1.1.2.2 Phân loại mã hoá
Các hệ thống mã hoá trong máy tính thuộc một trong hai loại sau:
• Mã hoá với khoá đối xứng (Symmetric-key Encryption)
• Mã hoá với khoá công khai (Public-key Encryption)
1.1.3. Khái niệm “phủ”
Cho một họ các tập con khác rỗng S = { S
1,
S
2,
..., S
W
}, S
j


N, j=1,…,w.
Cho tập khác rỗng P

N; phủ của tập P là tập S
i
1
, S
i
2

,…, S
i
t
,
{i
1,
i
2
,..., i
t
}

{1,..., w} và thoả mãn điều kiện:
P =
U
t
1j
i
j
S
=
S
i
j


S
i
k
=


φ

,

i
j


i
k
Kích thước của một phủ là số lượng các tập con tạo nên phủ đó.
Ví dụ ở đây, kích thước của phủ P là t.







4

1.2 KHÁI NIỆM “KHUNG PHỦ TẬP CON”
Giới thiệu “khung phủ tập con” ( Subset Cover Framework – SCF) được
dùng trong phương pháp phát hiện thiết bị thu làm lộ khoá bí mật.
Trong SCF, có giải thuật xác định các tập con S
1
,

S

2
,

..., S
w


N,
U
w
i
S
1=i
= N.
Mỗi tập S
i
có khoá “dài” L
i
.
Mỗi u

S
i
đều tính được L
i
từ tập khoá L
u
của mình. Tập P phải được phân
hoạch thành các tập con rời rạc S
i

1
, S
i
2
,…, S
i
m
sao cho: P =
U
m
1j
i
j
S
=

Các khoá “dài” tương ứng với các tập S
i
1
, S
i
2
,…, S
i
m
là L
i
1
, L
i

2
, ..., L
i
m
.
Lưu ý: Các TBTDL u

S
i
j
sử dụng chung khoá “dài” L
i
j
, j = 1, 2,..., m
SCF sử dụng hai giải thuật mã hoá E và F:
• Giải thuật E: {0,1}
*
→{0,1}
*
, mã hoá khóa phiên K, lần lượt với từng
khoá “dài” L
i
1
, L
i
2
, ..., L
i
m
, nhận được các bản mã:

E(K, L
i
), E(K, L
i
), ..., E(K, L
i
m
).
• Giải thuật F : {0,1}
*
→ {0,1}
*
, mã hoá thông điệp M sử dụng khóa phiên
K, nhận được bản mã: F
k
(M).






12

5

1.3 CÂY NHỊ PHÂN
a. Khái niệm cây
Cây là đồ thị đơn, vô hướng, liên thông và không có chu trình.
b. Khái niệm cây nhị phân

Cây nhị phân là cây có hai dạng nút:
Nút ngoài: nút lá, không có con.
Nút trong: có chính xác hai con là con trái và con phải.
Cây nhị phân đầy đủ là cây nhị phân, trong đó tất cả các lá có cùng
khoảng cách tới gốc.
Số lượng các lá trong cây nhị phân đầy đủ (có chiều cao k) là h = 2
k
.
Cha chung thấp nhất của hai nút (kể cả lá) a, b là nút giao nhau giữa
đường đi từ a tới gốc và từ b tới gốc.
c. Tính chất cây nhị phân
1) Cây nhị phân có r lá, thì có chiều cao ít nhất là
⎡ ⎤
)(log
2
r

2) Thuộc tính rẽ nhánh




















6
Chương 2:
PHƯƠNG PHÁP DÒ TÌM THIẾT BỊ THU
BẰNG “KHUNG PHỦ TẬP CON”
2.1 Khái niệm lưu vết TBTDL bất hợp pháp
Khi NCCDL biết ở ngoài chợ đã bán chìa khoá nhái hoặc trên
Internet cho tải về miễn phí, thì NCCDL này biết là bộ khoá hoặc một phần của
bộ khoá đã bị rò rỉ.
Bằng cách nào NCCDL tìm ra được thiết bị thu đã làm rò rỉ khoá, để
trừng phạt thiết bị thu đó (bằng cách không cho thu dữ liệu mặc dù thiết bị đó có
khoá thật, vô hiệu hoá khoá đã bị rò rỉ).
Để xác định TBTDL làm rò rỉ khóa, NCCDL tạo ra TBTDL, làm thí
nghiệ
m “ tại gia” với các bộ khoá nhái (họ mua về).
NCCDL phát bản tin thử nghiệm, theo dõi những phản ứng của TBTDL
thí nghiệm này, để truy tìm TBTDL đã làm rò rỉ khoá “dài “ ra bên ngoài.
Chú ý rằng NCCDL đó có toàn bộ cấu trúc cây mô tả n TBTDL với giả
thiết n= |N| = 2
k
.
Để thực hiện mục tiêu đó, NCCDL dùng phần mềm (PM) để tìm tập R các
TBTDL làm lộ khoá, phân hoạch tập P các TBTDL hợp pháp thành các tập con
S

i
1
, S
i
2
,…, S
i
m
, có các khoá “dài” tương ứng L
i
1
, L
i
2
, ..., L
i
m
.
Khi phát dữ liệu thật, NCCDL dùng SCF để phát quảng bá thông điệp M tới
các TBTDL. NCCDL dùng các khoá “dài” L
i
1
, L
i
2
, ..., L
i
m
để mã hoá khoá
phiên K. Do đó chỉ có các TBTDL hợp pháp thuộc một trong các tập S

i
1
, S
i
2
,…,
S
i
m
mới giải mã được khoá phiên K, sau đó dùng K để giải mã đúng thông điệp
M.

7
Các TBTDL bất hợp pháp (TBTDL dùng bộ khoá nhái hay TBTDL làm lộ
khoá) sẽ không giải mã được K, và do đó không thể giải mã chính xác thông
điệp M.
Phương pháp lưu vết của NCCDL đối với một TBTDL _TN:
NCCDL phát thử nghiệm thông điệp tM, PM quan sát xác suất giải mã của
TBTDL _TN để xác định tập R chứa các TBTDL làm lộ khoá “dài”, và phân
hoạch tập P các TBTDL hợp pháp thành P = { S
i
1
, S
i
2
,…, S
i
m
}.
Tìm được P, R thì PM lưu P, R vào cơ sở dữ liệu (CSDL) của NCCDL để phục

vụ cho lần tìm kiếm tiếp theo.
Giải pháp này giả thiết TBTDL _TN không thể phát hiện được nó đang bị
thử nghiệm, tức là nó không thể tự động tắt máy khi đang thu dữ liệu thử
nghiệm từ NCCDL.
Trên thực tế có nhiều giải pháp phát hiện TBTDL làm lộ khoá “dài”, ở đây
trình bày phương pháp phát hiện TBTDL làm rò rỉ khoá “dài” dự
a trên phương
pháp tìm kiếm nhị phân và dùng giải thuật SCF để phát tin thử nghiệm tM tới
các TBTDL _TN.








Hinh 1: Mô hình phát hiện TBTDL làm rò rỉ khoá “dài”
Phần
mềm
(PM)

NCCD
L
TBTDL
thí
nghiệm
R
P = { S
i

1
, …, S
i
m
}
Phát Quảng bá
C

8

2.2
GIẢI THUẬT LƯU VẾT SỬ DỤNG TẬP CON (SUBSET
TRACING)
2.2.1 Giải thuật lưu vết sử dụng tập con.
Ý tưởng của giải thuật lưu vết TBTDL làm rò rỉ khoá sử dụng tập con là:
Tìm TBTDL bất hợp pháp bằng cách phân hoạch tập các TBTDL thành tập
P và R. Trong đó P = {S
i
1
, S
i
2
,…, S
i
m
} gồm các tập con chứa TBTDL hợp
pháp, R là tập các TBTDL bất hợp pháp.
Đầu tiên, thuật toán được thực hiện với P = {S
1
}, S

1
là tập các TBTDL,
R = ∅. Sau khi thực hiện k lần, sẽ được phân hoạch P = {S
i
1
, S
i
2
,…, S
i
m
} và tập
R các TBTDL bất hợp pháp. Tập P và R được lưu vào CSDL của NCCDL
Tại lần k+1, NCCDL thu mua bộ khoá nhái, thử dùng trong TBTDL_TN.
PM dùng hàm Tim_j để tìm tập con chứa TBTDL làm lộ khoá dài. Kết hợp với
P, R trước đó trong CSDL của NCCDL để xác định P, R mới
Mỗi pha thực hiện Tim_j với tập P = {S
i
1
, S
i
2
,…, S
i
m
} và R.
Nếu TBTDL_TN giải mã bản tin thử nghiệm tM với xác suất
η
< 1 thì kết
thúc, P và R giữ nguyên, yên tâm vì bộ khoá nhái không có tác dụng. Ngược lại,

tức là TBTDL_TN giải mã tM với xác suất
η
=1. Điều đó chứng tỏ bộ khoá nhái
có chìa khoá “dài” L
i
j
,

nhờ nó mà TBTDL_TN đã giải mã được khoá phiên K.
Khoá “dài” L
i
j
.
chắc chắn phải do TBTDL nào đó trong tập S
i
j
, đã làm lộ ra
ngoài.
Vì vậy thực hiện thủ tục Tim_j để tìm chỉ số j sao cho S
i
j
có chứa TBTDL
làm lộ khoá “dài” L
i
j
.


9
Nếu S

i
j
chỉ chứa một TBTDL thì R = R

S
i
j
, và loại bỏ S
i
j
khỏi tập P.
Ngược lại, tức là | S
i
j
| > 1, khi đó PM chia S
i
j
thành hai tập bằng nhau, bổ sung
hai tập này vào P, loại bỏ S
i
j
khỏi tập P.
Tiếp tục thực hiện phương pháp phát hiện với phân hoạch P mới, cho đến
khi TBTDL_TN giải mã tM với xác suất nhỏ hơn 1, thì lưu P, R mới vào CSDL
của NCCDL và kết thúc lưu vết đối với TBTDL_TN này.
Phương pháp phát hiện ở đây chỉ có tính chính xác tương đối, vì một số
TBTDL chỉ làm lộ một phần của bộ khoá, không thể phát hiện được chính xác
TBTDL nào đã làm lộ toàn bộ bộ khoá. Do
đó không thể đưa chúng vào tập R
các TBTDL bất hợp pháp.

Mục đích chính của phương pháp lưu vết này là lưu lại định danh của
những TBTDL làm rò rỉ khoá, và trừng trị những TBTDL bất hợp pháp. Nghĩa
là danh sách các TBTDL làm rò rỉ khoá sẽ được lưu trong CSDL, và P được
phân hoạch thành các tập con chứa các TBTDL hợp pháp để khi NCCDL phát
thông điệp M, những TBTDL bất hợp pháp chỉ giải mã đư
ợc M’ ≠ M.












10
2.2.2 Hàm tìm tập con chứa TBTDL làm rò rỉ khoá
Hàm Tim_j tìm tập con chứa TBTDL làm rò rỉ khoá, giống như phương
pháp tìm kiếm nhị phân, để tìm giá trị j tương ứng khoá “dài” L
i
j
. Đó là khoá
nằm trong bộ khoá nhái, mà TBTDL_TN đang thí nghiệm.
Hàm Tim_j dùng phương pháp mã hoá khoá phiên giả KP (K Pseudo) để
tìm ra chỉ số j, qua sự chênh lệch xác suất giải mã tM của TBTDL_TN, giữa hai
lần mã hoá kề nhau. Khoá phiên giả KP có cùng độ dài với khoá phiên K.
Đặt p

j
(j=0,..., m) là xác suất giải mã bản tin tM của TBTDL_TN khi
NCCDL mã hoá j lần với khóa phiên giả KP và (m - j) lần với khóa đúng K, khi
đó bản mã như sau:
<[i
1
,...,i
m
,
444444344444421
lÇn j
i
1-Þ
ii
ÞÞ
LE(KP,),LE(KP,),...,LE(KP,
),
444344421
lÇn ) j-(m
ii
)LE(K,),...,LE(K,
m1Þ+
], F
K
(tM) >.
Như vậy, nếu TBTDL_TN giải mã đúng bản tin tM, thì p
0
= 1, p
m
= 0:

• p
0
là xác suất giải mã bản tin tM (mã hoá m lần với khoá đúng K):
<[i
1
, ...,i
m
,E(K,L
i
1
),...,E(K,L
i
1-j
),E(K, L
i
j
),...,E(K, L
i
k
),...,E(K,L
i
m
)],F
K
(tM) >
• p
1
là xác suất giải mã bản tin tM (mã hoá 1 lần với khoá giả KP,
(m - 1) lần với khoá đúng K):
<[i

1
,..., i
m
,E(KP, L
i
1
),E(K, L
i
2
),...,E(K, L
i
1-j
),E(K, L
i
j
),...,E(K, L
i
m
)],F
K
(tM) >
• ...
• p
j-1
là xác suất giải mã bản tin tM (mã hoá (j - 1) lần với khoá giả KP, (m
– j + 1) lần với khoá đúng K):
< [i
1
, ..., i
m

, E(KP, L
i
1
),..., E(KP, L
i
1-j
), E(K, L
i
j
),..., E(K, L
i
m
) ], F
K
(tM) >
< [i
1
, …, i
m
,
44443444421
lân 1)-(j
ii
)L E(KP, ),...,L E(KP,
1
1−
,
444344421
ân
),...,

l 1)j-(m
ii
)L E(K,L E(K,
m
+
], F
K
(tM)>


11
• p
j
là xác suất giải mã bản tin tM (mã hoá j lần với khoá giả KP,
(m - j) lần với khoá đúng K):
<[i
1
,...,i
m
,E(KP,L
i
1
),...,E(KP,L
i
1-j
),E(KP,L
i
j
),E(K,L
i

1j
+
),...,E(K,L
i
m
)],F
K
(tM)>
• ...
• p
m
là xác suất giải mã bản tin tM (mã hoá m lần với khoá giả KP):
<[i
1
,...,i
m
,E(KP,L
i
1
),...,E(KP,L
i
1-j
),E(KP,L
i
j
),E(KP,L
i
1j
+
),...,E(KP,L

i
m
)], F
K
(tM)>
Định lý 2.1
Nếu | p
j-1
– p
j
|> 0 thì TBTDL_TN dùng khóa “dài” L
i
j

của tập S
i
j

(tức là có ít nhất một TBTDL trong S
i
j
đã làm rò rỉ khóa “dài” L
i
j
)
Định lý 2.1 được phát biểu lại như sau:
Nếu | p
j-1
– p
j

| >
2
ba
pp

thì TBTDL_TN dùng khóa “dài” L
i
j
của tập S
i
j
.












12
2.3 VÍ DỤ VỀ GIẢI THUẬT LƯU VẾT
Ta lấy ví dụ với tập n = 8 TBTDL là {u
1
, u
2

, u
3
, u
4
, u
5
, u
6
, u
7
, u
8
}. NCCDL biểu
diễn 8 TBTDL thành cây nhị phân T. Các lá của T tương ứng với các TBTDL.
Các nút (kể cả lá) được gán nhãn L
1
, L
2
,..., L
15
.
Giải thuật SCF duy trì các tập con S
1
, S
2
,..., S
15
.
Trong đó S
i

là tập các lá (tương ứng với các TBTDL) của cây nhị phân con
gốc v
i
, S
i
có khoá “dài” L
i
tương ứng với nhãn tại nút v
i
, i=1,…, 15.
S
1
= {u
1
, u
2
, u
3
, u
4
, u
5
, u
6
, u
7
, u
8
}, S
2

= {u
1
, u
2
, u
3
, u
4
}, S
3
= {u
5
, u
6
, u
7
, u
8
},
S
4
= {u
1
, u
2
}, S
5
= {u
3
, u

4
}, S
6
= {u
5
, u
6
}, S
7
= {u
7
, u
8
}, S
8
= {u
1
}, S
9
= {u
2
},
S
10
= {u
3
}, S
11
= {u
4

}, S
12
= {u
5
}, S
13
= {u
6
}, S
14
= {u
7
}, S
15
= {u
8
}.

















Gốc
V
1
L
1

V
2

V
3

V
4

V
5

V
6
V
15

V
8

V

9
V
10
V
12
V
14
U
7
L
14
L
13
U
6
L
12
U
5
L
11
U
4
L
10
U
3
L
9
L

8
U
1
U
2
L
2
V
13
L
3
L
4
L
5
L
6
L
7

V
11

V
7
L
15
U
8


13
Bộ khoá “dài” của TBTDL u
i
là tập các nhãn từ lá tương ứng với nó tới gốc.
Cụ thể:
L
u
1
= {L
8
, L
4
, L
2
, L
1
}, L
u
2
= {L
9
, L
4
, L
2
, L
1
}, L
u
3

= {L
10
, L
5
, L
2
, L
1
},
L
u
4
= {L
11
, L
5
, L
2
, L
1
}, L
u
5
= {L
12
, L
6
, L
3
, L

1
}, L
u
6
= {L
13
, L
6
, L
3
, L
1
}
L
u
7
= {L
14
, L
7
, L
3
, L
1
}, L
u
8
= {L
15
, L

7
, L
3
, L
1
}.
Giả sử đây là lần đầu NCCDL thực hiện lưu vết TBTDL làm rò rỉ khoá.
NCCDL thu mua được bộ khoá nhái, đưa bộ khoá này vào dùng trong
TBTDL_TN để phát hiện TBTDL làm rò rỉ khoá “dài”.
















14
Quá trình thực hiện lưu vết như sau:
Khởi tạo: P ≡ {S
1
} = {u

1
, u
2
, u
3
, u
4
, u
5
, u
6
, u
7
, u
8
}, R = ∅.
Bước 1: PM thực hiện thủ tục Lưu_vet(P), P = {S
1
}.
+ NCCDL phát thử nghiệm bản tin tM (tM tuỳ ý) thông qua bản mã:
<[1, E(K, L
1
)], F
K
(tM)>
Trong đó phần đầu là bản mã của khoá phiên K, được mã hoá bằng khoá
“dài” L
1
, phần thân là bản mã của tM, được mã hoá bằng khoá phiên K.
+ If TBTDL_TN giải mã được tM với xác suất p < 1 then

Begin
P = {S
1
}; R = ∅; Lưu P, R vào CSDL của NCCDL; Kết thúc;
End;
+ Else (Tức là: TBTDL_TN giải mã được tM với xác suất p = 1).
Chứng tỏ rằng: S
1
chứa ít nhất một TBTDL làm rò rỉ khoá “dài” L
1
.
(TBTDL_TN có khoá L
1
).
Công việc tiếp theo: Xác định TBTDL ∈ S
1
đã làm rò rỉ L
1
.
Nếu |S
1
| = 1 thì chính TBTDL duy nhất của S
1
làm rò rỉ L
1
.
Nhưng vì S
1
gồm 8 TBTDL, nên phải chia S
1

thành hai tập con, được S
2
và S
3
để
xác định tiếp TBTDL của S
2
hay S
3
làm rò rỉ L
1
.
S
2
= {u
1
, u
2
, u
3
, u
4
}, S
3
= {u
5
, u
6
, u
7

, u
8
}, Chuyển sang bước 2.




×