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
Trang 1Chươ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
Trang 2• M: Thông điệp hay bản tin
• CM: Bản mã của thông điệp M
• tM: Bản tin thử nghiệm
• Lui tập các khoá “dài” của TBTDL ui, i=1, 2,…, n
• | Lui|: số lượng các khoá “dài” của TBTDL ui
• Si: Tập các TBTDLdùng chung một khoá “dài” Li
• Si,j = Si – Sj: chứa các TBTDL thuộc phần bù của tập Si so với tập Sj
Các TBTDL trong tập Si,j dùng chung khoá “dài” Li,j
Trang 31.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)
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
Trang 41.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 S1, S2, , Sw ⊂ N, Uw S i
1
=
i
= N Mỗi tập Si có khoá “dài” Li
Mỗi u ∈ Siđều tính được Li từ tập khoá Lu 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 Si1, Si2,…, Sim sao cho: P = Ujm1S ij
=
Các khoá “dài” tương ứng với các tập Si1, Si2,…, Sim là Li1, Li2, , Lim
Lưu ý: Các TBTDL u ∈ Sij sử dụng chung khoá “dài” Lij, 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” Li1, Li2, , Lim, nhận được các bản mã:
E(K, Li ), E(K, Li ), , E(K, Lim )
• 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ã: Fk(M)
Trang 51.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 = 2k
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à ⎡log2(r)⎤
2) Thuộc tính rẽ nhánh
Trang 6Chươ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| = 2k
Để 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
Si1, Si2,…, Sim, có các khoá “dài” tương ứng Li1, Li2, , Lim
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” Li1, Li2, , Lim để 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 Si1, Si2,…,
Sim mới giải mã được khoá phiên K, sau đó dùng K để giải mã đúng thông điệp
M
Trang 7Cá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 = { Si1, Si2,…, Sim}
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
Phần mềm
(PM)
TBTDL
P = { Si1, …, Sim}
Trang 82.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 = {Si1, Si2,…, Sim} 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 = {S1}, S1 là tập các TBTDL,
R = ∅ Sau khi thực hiện k lần, sẽ được phân hoạch P = {Si1, Si2,…, Sim} 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 = {Si1, Si2,…, Sim} 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” Lij,nhờ nó mà TBTDL_TN đã giải mã được khoá phiên K Khoá “dài” Lij. chắc chắn phải do TBTDL nào đó trong tập Sij, đã 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 Sij có chứa TBTDL làm lộ khoá “dài” Lij
Trang 9Nếu Sijchỉ chứa một TBTDL thì R = R ∪ Sij, và loại bỏ Sijkhỏi tập P Ngược lại, tức là | Sij| > 1, khi đó PM chia Sij thành hai tập bằng nhau, bổ sung hai tập này vào P, loại bỏ Sijkhỏ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
Trang 102.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” Lij Đó 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 pj (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:
<[i1, ,im,
4 4 4 4 4
4 4 4 4 4
1
lÇn j
i 1
Þ i
-iÞ), , E(KP, L ), E(KP, LÞL
4 4
4 4
1
lÇn ) (m
i
i ), , E(K, L ) L
E(K,
m 1
Þ + ], FK(tM) >
Như vậy, nếu TBTDL_TN giải mã đúng bản tin tM, thì p0 = 1, pm = 0:
• p0 là xác suất giải mã bản tin tM (mã hoá m lần với khoá đúng K):
<[i1, ,im,E(K,Li1), ,E(K,Lij-1),E(K, Lij), ,E(K, Lik), ,E(K,Lim)],FK(tM) >
• p1 là xác suất giải mã bản tin tM (mã hoá 1 lần với khoá giả KP,
4 4 4
1
lân 1) - (j
i
i ), , E(KP, L ) L
E(KP,
4 4
4 4
i
L E(K,
m
+
], FK (tM)>
Trang 11• pj 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):
<[i1, ,im,E(KP,Li1), ,E(KP,Lij-1),E(KP,Lij),E(K,Lij+1), ,E(K,Lim)],FK(tM)>
•
• pm là xác suất giải mã bản tin tM (mã hoá m lần với khoá giả KP):
<[i1, ,im,E(KP,Li1), ,E(KP,Lij-1),E(KP,Lij),E(KP,Lij+1), ,E(KP,Lim)], FK(tM)>
Định lý 2.1
Nếu | pj-1 – pj |> 0 thì TBTDL_TN dùng khóa “dài” Lij của tập Sij
(tức là có ít nhất một TBTDL trong Sij đã làm rò rỉ khóa “dài” Lij)
Định lý 2.1 được phát biểu lại như sau:
Trang 122.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à {u1, u2, u3, u4, u5, u6, u7, u8} 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 L1, L2, , L15
Giải thuật SCF duy trì các tập con S1, S2, , S15
Trong đó Si là tập các lá (tương ứng với các TBTDL) của cây nhị phân con gốc vi, Si có khoá “dài” Li tương ứng với nhãn tại nút vi, i=1,…, 15
Trang 13Bộ khoá “dài” của TBTDL ui là tập các nhãn từ lá tương ứng với nó tới gốc
Trang 14Quá trình thực hiện lưu vết như sau:
Khởi tạo: P ≡ {S1} = {u1, u2, u3, u4, u5, u6, u7, u8}, R = ∅
Bước 1: PM thực hiện thủ tục Lưu_vet(P), P = {S1}
+ NCCDL phát thử nghiệm bản tin tM (tM tuỳ ý) thông qua bản mã:
<[1, E(K, L1)], FK(tM)>
Trong đó phần đầu là bản mã của khoá phiên K, được mã hoá bằng khoá
“dài” L1, 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 = {S1}; 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: S1 chứa ít nhất một TBTDL làm rò rỉ khoá “dài” L1
(TBTDL_TN có khoá L1)
Công việc tiếp theo: Xác định TBTDL ∈ S1 đã làm rò rỉ L1
Nếu |S1| = 1 thì chính TBTDL duy nhất của S1 làm rò rỉ L1
Nhưng vì S1 gồm 8 TBTDL, nên phải chia S1 thành hai tập con, được S2 và S3 để xác định tiếp TBTDL của S2 hay S3 làm rò rỉ L1
S2 = {u1, u2, u3, u4}, S3 = {u5, u6, u7, u8}, Chuyển sang bước 2
Trang 15Bước 2: PM thực hiện thủ tục Luu_vet(P), P = {S2, S3}
+ NCCDL phát thử nghiệm bản tin tM (tM tuỳ ý) thông qua bản mã:
<[2, 3, E(K, L2), E(K, L3)], FK(tM)>
Trong đó phần đầu là bản mã của khoá phiên K, được mã hoá bằng khoá “dài”
L2, L3, 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 = {S2, S3}; 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
TBTDL_TN đã có L2 hoặc L3) Như vậy S2 đã làm rò rỉ L2, hoặc S3 đã làm rò rỉ
L3
PM thực hiện thủ tục Tim_j(P) để xác định rõ TBTDL nào đã làm rò rỉ khoá L2hoặc L3, P = {S2, S3}:
Khởi tạo: [a, b] là [0, 2]
//Trong đó 2 là số lượng tập con của P = {S2, S3} = {Si1, Si2}
Trang 17Bước 3: Giả sử S2 chứa ít nhất một TBTDL làm rò rỉ khoá “dài” L2
(từ B2.1)
Nếu |S2| = 1 thì chính TBTDL duy nhất đã làm rò rỉ khoá L2 Nhưng vì S2 chứa 4 TBTDL là {u1, u2, u3, u4}, nên PM chia S2 thành 2 tập con S4 và S5 để xác định tiếp S4 hay S5 làm rò rỉ khoá S4 = {u1, u2}, S5 = {u3, u4},
S3 = {u5, u6, u7, u8}
PM thực hiện thủ tục Luu_vet(P), P = {S4, S5, S3} = {Si1, Si2, Si3}
+ NCCDL phát thử nghiệm bản tin tM thông qua bản mã
<[4, 5, 3, E(K, L4), E(K, L5), E(K, L3)], FK(tM)>
Trong đó phần đầu là bản mã của khoá phiên K, được mã hoá bằng khoá “dài”
L4, L5, L3, 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 = { S4, S5, S3}; 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
TBTDL_TN đã có ít nhất một trong các khoá “dài” L4, L5, L3) Như vậy S4 đã làm rò rỉ L4, hoặc S5 làm rò rỉ L5, hoặc S3 làm rò rỉ L3
PM thực hiện thủ tục Tim_j(P) để xác định rõ TBTDL nào đã làm rò rỉ khoá L4hoặc L5 hoặc L3, P = { S4, S5, S3}:
Trang 20Bước 4: Giả sử S4 chứa ít nhất một TBTDL làm rò rỉ khoá “dài” L4 (từ B3.1)
Do S4 chứa 2 TBTDL là {u1, u2} nên PM chia S4 thành hai tập con S8 và S9
P = {S8, S9, S5, S3}
Trong đó: S8 = {u1}, S9 = {u2}, S5 = {u3, u4}, S3 = {u5, u6 u7, u8}
PM thực hiện thủ tục Luu_vet(P), P = {S8, S9, S5, S3}
+ NCCDL phát thử nghiệm bản tin tM thông qua bản mã
<[8, 9, 5, 3, E(K, L8), E(K, L9), E(K, L5), E(K, L3)], FK(tM)>
Trong đó phần đầu là bản mã của khoá phiên K, được mã hoá bằng khoá “dài”
L8, L9, L5, L3, 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 = { S8, S9, S5, S3}; 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
TBTDL_TN đã có ít nhất một trong các khoá “dài” L8, L9, L5, L3) Như vậy S8
đã làm rò rỉ L8, hoặc S9 làm rò rỉ L9, hoặc S5 làm rò rỉ L5, hoặc S3 làm rò rỉ L3
PM thực hiện thủ tục Tim_j(P) để xác định rõ TBTDL nào đã làm rò rỉ khoá L8hoặc L9 hoặc L5 hoặc L3, P = {S8, S9,S5, S3} như sau:
Trang 21 Khởi tạo: [a, b] là [0, 4] //Trong đó 4 là số lượng tập con trong
Trang 23Do S8 chỉ gồm một TBTDL là {u1} nên:
R = R U {u1} = {u1}
P = {S9, S5, S3}
Trang 24Bước 6:
PM thực hiện thủ tục Luu_vet(P), P = {S9, S5, S3}
Trong đ ó: S9 = {u2}, S5 = {u3, u4}, S3 = { u5, u6, u7, u8}
+ NCCDL phát thử nghiệm bản tin tM (tM tuỳ ý), thông qua bản mã
<[9, 5, 3, E(K, L9), E(K, L5), E(K, L3)], FK(tM)>
Trong đó phần đầu là bản mã của khoá phiên K, được mã hoá bằng khoá “dài”
L9, L5, L3, phần thân là bản mã của tM, được mã hoá bằng khoá phiên K
+ If TBTDL_TN không thể giải mã được tM với xác suất p = 1 then
Begin
P = {S9, S5, S3}; R = {u1}; 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
TBTDL_TN đã có ít nhất một trong các khoá “dài” L9, L5, L3) Như vậy S9 rò rỉ