CHƯƠNG 7:
BÀI TOÁN N THÀNH
VIÊN VÀ BẢO MẬT CSDL
1
Nội dung
Hệ thống n thành viên
Bảo mật CSDL
2
Hệ thống n thành viên
Đặt vấn đề:
Cần chia sẻ thông tin một cách bí mật.
Cần một nhóm người để đọc thông tin.
3
Định nghĩa
Một mô hình ngưỡng (k,n) là phương pháp chia
sẻ bí mật S giữa n thành viên P1 ,P2 …, Pn thỏa
các tính chất sau:
k < n
Mỗi thành viên Pi có một số thông tin Ii
Cần bất kỳ k thành viên nào trong tập {I1,
I2…,In } để hiểu S.
Ít hơn k thành viên trong {I1, I2…,In } là không đủ
để hiểu S.
4
Định lý
Với mọi, 2 ≤ k ≤ n, luôn tồn tại mô hình ngưỡng
(k,n).
5
Thuật giải
Thuật giải gồm hai phần:
Xây dựng tập bí mật {I1, I2…,In }
Truy xuất S qua bất kỳ k thành phần nào trong
{I1, I2…,In }
6
Xây dựng tập bí mật
Gọi dãy ngưỡng m1, m2, …, mn là các số nguyên
lớn hơn 1 thỏa gcd(mi, mj) = 1 với mọi i ≠ j và:
m1*m2*… *mk > mn *mn1 *… *mnk+2
Xác định bí mật S thỏa:
max(k1) < S < min(k)
Trong đó:
max(k1) = mn*mn1*…*mnk+2
min(k) = m1 *m2 *… *mk
7
Xây dựng tập bí mật
Tính {I1, I2…,In } thỏa:
I1 = S (mod m1),
I2 = S (mod m2),
…
…
In = S (mod mn).
Tính M = m1*m2*…*mn.
Gởi Ii và (mi,M) cho từng thành viên Pi.
8
Truy xuất S
Phục hồi S từ bất kỳ k trong số {I1, I2…,In }.
Giả sử các thành viên {P1, P2…,Pk } muốn kết
hợp lại {I1, I2…,Ik } để tìm S
Mỗi Pi i = 1,2,…,k tính khóa phục hồi bí mật Si
như sau:
Mi = M/mi,
Ni = Mi1 (mod mi),
Si = Ii*Mi*Ni
Kết hợp các Si để nhận được S
S = ∑ S (mod ∏ m ) với mọi i = 1,2,…,k
9
Ví dụ
Xây dựng mô hình ngưỡng (k,n) với k = 3 và n =
5
Cho biết:
m1 = 97
m2 = 98
m3 = 99
m4 = 101
m5 = 103
S = 671857
10
Bảo mật CSDL
Đặt vấn đề:
CSDL bản thân nó phải được chia sẻ.
Tính chia sẻ thường phức tạp.
11
Định nghĩa
Đặt D = <F1 ,F2 ,F3 ,F4 ,F5>.
Trong đó D là CSDL và Fi là một tệp (hay một
mẫu tin, có thể là một số nguyên).
12
Giải thuật
Để mã hóa D, trước hết, ta chọn n số nguyên tố
phân biệt m1, m2, …, mn, trong đó mi > Fi
Sau đó giải hệ phương trình đồng dư sau:
C ≡ F1 (mod m1),
C ≡ F2 (mod m2),
…
C ≡ Fn (mod mn).
13
Giải thuật
Để được C, theo định lý số dư Trung Hoa ta có:
M = m1*m2*… *mn,
Mi = M/mi,
ei = Mi * Mi1 (mod mi) i = 1,2,3…n
C = ∑i eiFi (mod M) 0 ≤ C < M, i = 1,2,…,n
Để phục hồi tệp (mẩu tin) Fi từ bảng mã C ta
chỉ cần thi hành phép toán sau:
Fi = C (mod mi)
14
Ví dụ
Cho:
D = <F1 ,F2 ,F3 ,F4 ,F5>.
= <1, 2, 8, 9,3>.
15
Ví dụ
Cho:
D = <F1 ,F2 ,F3 ,F4 ,F5>.
= <198753, 217926, 357918, 377761,391028>.
Với 5 số nguyên tố được chọn:
m1 = 350377
m2 = 364423
m3 = 376127
m4 = 389219
m5 = 391939
16
17