Thủy vân cơ sở dữ liệu quan hệ
Bảo vệ bản quyền, nhận thực thông tin, nhận
dạng các đặc trưng duy nhất của dữ liệu quan hệ
hiện đang là một nhu cầu cấp thiết và là thách thức
mới đối với các kỹ thuật thuỷ vân trên cơ sở dữ
liệu quan hệ. Việc quản lý bản quyền các dữ liệu
quan hệ bằng thuỷ vân đã và đang trở thành một
chủ đề quan trọng trong các nghiên cứu về cơ sở
dữ liệu. Thuỷ vân các dữ liệu quan hệ có những
thách thức kỹ thuật đáng kể và có các ứng dụng
thực tế có ý nghĩa xứng đáng được quan tâm thích
đáng từ phía cộng đồng những người nghiên cứu
cơ sở dữ liệu.
Trong báo cáo này, chúng tôi trình bày một kết
quả nghiên cứu về kỹ thuật thủy vân sử dụng các
bit ít ý nghĩa nhất (LSB) của một số giá trị thuộc
tính và tiến hành thử nghiệm, đánh giá thuật toán
đã cài đặt đối với một số tấn công thông thường
trên cơ sở dữ liệu.
Tóm tắt nội dung tài liệu: Thủy vân cơ sở dữ liệu quan hệ
52(4): 56 - 59 Tạp chí KHOA HỌC & CÔNG NGHỆ 4 - 2009 1 THỦY VÂN CƠ SỞ DỮ LIỆU QUAN HỆ Bùi Thế Hồng, Nguyễn Thị Thu Hằng (Viện Công nghệ Thông tin) Lưu Thị Bích Hương (Đại học Sư Phạm Hà Nội 2) Tóm tắt Trong báo cáo này, chúng tôi trình bày một kết quả nghiên cứu về kỹ thuật thủy vân hiệu quả sử dụng các bit ít ý nghĩa nhất (LSB) của một số giá trị thuộc tính và tiến hành thử nghiệm, đánh giá thuật toán đã cài đặt đối với một số phép toán cập nhật và tấn công thông thường trên cơ sở dữ liệu. Các kết quả thử nghiệm cho thấy, thuật toán thủy vân cơ sở dữ liệu dựa vào các LSB là bền vững đối với các tấn công thêm và bớt các bộ nhưng không bền vững đối với các tấn công sửa đổi các giá trị thuộc tính. I. Giới thiệu Bảo vệ bản quyền, nhận thực thông tin, nhận dạng các đặc trưng duy nhất của dữ liệu quan hệ hiện đang là một nhu cầu cấp thiết và là thách thức mới đối với các kỹ thuật thuỷ vân trên cơ sở dữ liệu quan hệ. Việc quản lý bản quyền các dữ liệu quan hệ bằng thuỷ vân đã và đang trở thành một chủ đề quan trọng trong các nghiên cứu về cơ sở dữ liệu. Thuỷ vân các dữ liệu quan hệ có những thách thức kỹ thuật đáng kể và có các ứng dụng thực tế có ý nghĩa xứng đáng được quan tâm thích đáng từ phía cộng đồng những người nghiên cứu cơ sở dữ liệu. Trong báo cáo này, chúng tôi trình bày một kết quả nghiên cứu về kỹ thuật thủy vân sử dụng các bit ít ý nghĩa nhất (LSB) của một số giá trị thuộc tính và tiến hành thử nghiệm, đánh giá thuật toán đã cài đặt đối với một số tấn công thông thường trên cơ sở dữ liệu. II. Kỹ thuật thuỷ vân sử dụng các bít ít ý nghĩa nhất Các bít ít ý nghĩa nhất (LSB – Least Significant Bits) ở đây là các bít ở bên phải nhất của một chuỗi bít. Ví dụ, trong chuỗi bít 1110 thì bít ít ý nghĩa nhất là 0, hoặc với số bít ít ý nghĩa nhất là 3 thì số bít ít ý nghĩa nhất trong chuỗi bít 1000101 là 101. Kỹ thuật LSB này chỉ đánh dấu các thuộc tính kiểu số và giả thiết là các thuộc tính được đánh dấu này có thể chấp nhận những thay đổi nhỏ ở một số giá trị và những thay đổi nhỏ này không lộ rõ. Tất cả các thuộc tính số của một quan hệ không nhất thiết đều phải được đánh dấu. Người chủ của dữ liệu này sẽ quyết định thuộc tính nào là phù hợp cho việc đánh dấu. Việc đánh dấu ở đây tức là chọn ra các bộ, các thuộc tính và các giá trị tương ứng với các bộ, các thuộc tínhđó. Sau đó, ta sẽ thay đổi các bít ít ý nghĩa nhất của giá trị đó. Những thay đổi này sẽ tạo thành thuỷ vân. Ý tưởng cơ bản của kỹ thuật này là đảm bảo tại một số vị trí bít của một số thuộc tính trong một số bộ có chứa các giá trị nhất định. Các bộ, các thuộc tính trong một bộ, các vị trí bít trong một thuộc tính và các giá trị bít nhất định này đều phải được xác định một cách chính xác và logic dưới sự kiểm soát của một khoá bí mật K của chủ nhân quan hệ. Mẫu bít này sẽ hình thành ra thuỷ vân. Chỉ duy nhất chủ nhân của khoá bí mật mới có thể tìm lại được thuỷ vân với xác suất cao. 1.Mô hình thuỷ vân Giả sử có một quan hệ R với lược đồ R(P, A0 , . . . , Av-1), trong đó P là thuộc tính khoá chính, A0 , . . . , Av-1 là thuộc tính đều có thể được chọn để thuỷ vân. Chúng đều là các thuộc tính kiểu số và các giá trị của chúng có tính chất là những thay đổi ở bít ít ý nghĩa nhất của chúng đều không cảm nhận được. Ký hiệu r.Ai là giá trị của thuộc tính Ai trong bộ Rr . là một tham số điều khiển xác định số các bộ cần được đánh dấu, . Người ta có thể cân đối với để xác định mức độ của các sai số được sinh ra trong các giá trị của một thuộc tính. Nếu ít bộ hơn được đánh dấu thì có khả năng phải đưa vào những thay đổi lớn hơn trong các giá trị của các thuộc tính được đánh dấu. 52(4): 56 - 59 Tạp chí KHOA HỌC & CÔNG NGHỆ 4 - 2009 2 Hình 1: Mô hình thuỷ vân sử dụng các bít ít ý nghĩa nhất 2. Thuật toán nhúng thuỷ vân Hình 2: Các ký hiệu được dùng trong kỹ thuật LSB 2.1 Mã chứng thực thông điệp Mã chứng thực thông điệp (MAC – Message Authenticated Code) là hàm băm một chiều phụ thuộc vào khoá. Hàm băm một chiều H là hàm thao tác trên một thông điệp đầu vào có độ dài tuỳ ý M và trả lại một giá trị băm có độ dài cố định h, tức là h = H(M). Hàm này có thêm các đặc điểm sau: Với M đã cho, thì có thể dễ dàng tính được h Với h đã cho, thì khó có thể tính được M để H(M) = h Với M đã cho, thì khó có thể tìm được một thông điệp khác M0 để H(M) = H(M0). MD5 và SHA là hai lựa chọn tốt cho H. Cho F là một MAC dùng để ngẫu nhiên hoá các giá trị của thuộc tính khoá chính r.P của bộ r và trả lại một giá trị nguyên trong một miền rộng. F được gieo giống với một khoá bí mật K chỉ người chủ dữ liệu được biết. Ta có thể sử dụng hàm MAC được coi là an toàn như sau: F(r.P) = H(K o H(K o r.P)) trong đó: o biểu diễn phép ghép. 2.2 Thuật toán Input: Khoá bí mật K chỉ có chủ cơ sở dữ liệu biết, và các tham số , , cũng được chủ cơ sở dữ liệu xác định. Output: Bộ dữ liệu được thuỷ vân. Với mỗi bộ Rr thì 1. nếu (F(r.P) mod = = 0) // đánh dấu bộ này 2. i = F(r.P) mod //đánh dấu thuộc tính Ai 3. j = F(r.P) mod // đánh dấu bít thứ j 4. r.Ai = mark(r.P, r.Ai , j) 5. mark(primary_key pk, number v, bit_index j) trả lại number 6. first_hash = H( K o pk) 7. nếu (first_hash mod 2 = = 0) 8. đặt bít ít ý nghĩa nhất thứ j của v bằng 0, 9. ngược lại 10. đặt bít ít ý nghĩa nhất thứ j của v bằng 1. trả lại v Dòng 2 cho biết bộ đang xét có được chọn để đánh dấu không. Với một bộ được chọn, dòng 3 sẽ Ký hiệu Mô tả Số các bộ trong quan hệ Số các thuộc tính trong quan hệ sẵn sàng để đánh dấu Số các bit ít ý nghĩa nhất sẵn sàng để đánh dấu trong một thuộc tính 1 Tỷ lệ các bộ được đánh dấu Số các bộ được đánh dấu Mức ý nghĩa của phép thử để phát hiện một thủy vân Số lượng tối thiểu các bộ được đánh dấu một cách đúng đắn cần thiết để phát hiện thuỷ vân. Khoá bí mật, K Nhúng thuỷ vân Dữ liệu, R Dữ liệu được thuỷ vân, RW Thuỷ vân được phát hiện Kênh tấn công Dữ liệu bị tấn công , R’W Phát hiện thuỷ vân 52(4): 56 - 59 Tạp chí KHOA HỌC & CÔNG NGHỆ 4 - 2009 3 xác định thuộc tính nào sẽ được đánh dấu trong số thuộc tính ứng cử viên. Đối với thuộc tính đã chọn, dòng 4 xác định vị trí bít nào trong số bít ít ý nghĩa nhất sẽ được đánh dấu. Thủ tục mark đặt bít đã chọn bằng 0 hoặc 1 tuỳ thuộc vào giá trị của hàm băm thu được từ dòng 7. Kết quả của dòng 9 (dòng 11) hoặc là giữ nguyên giá trị của thuộc tính hoặc giảm đi (tăng lên) 1. Tức là, việc thuỷ vân đơn giản chỉ làm giảm một số giá trị của một thuộc tính trong khi lại làm tăng một số giá trị khác và giữ nguyên một số không đổi. Các cơ sở dữ liệu thường cho phép các thuộc tính chấp nhận các giá trị null. Nếu trong quá trình đánh dấu mà gặp phải một giá trị null của thuộc tính đã chọn thì sẽ không đánh dấu giá trị này và giữ nguyên hiện trạng của nó. 2.3 Thuật toán phát hiện thuỷ vân Giả sử người chủ dữ liệu nghi ngờ quan hệ S do tên tấn công đưa ra có thể được ăn cắp từ quan hệ gốc R. Tập các bộ, và các thuộc tính trong S có thể là một tập con của R. Ta giả sử rằng tên tấn công không bỏ thuộc tính khoá chính hoặc thay đổi giá trị của khoá chính vì khoá chính chứa những thông tin có giá trị và việc thay đổi nó sẽ làm giảm ý nghĩa sử dụng của cơ sở dữ liệu theo quan điểm của người dùng. Input: Các tham số K, , , có các giá trị như khi nhúng thuỷ vân, là mức ý nghĩa của phép thử do người phát hiện chọn trước. Output: Thuỷ vân được phát hiện. 1. totalcount = matchcount = 0 2. Với mỗi bộ s S thì 3. nếu (F(s.P) mod = = 0) // bộ này đã được đánh dấu 4. i = F(s.P) mod // thuộc tính Ai đã được đánh dấu 5. j = F(s.P) mod // bít thứ j đã được đánh dấu 6. totalcount = totalcount + 1 7. matchcount = matchcount + match(s.P, s.Ai, j) 8. = threshold(totalcount, ) 9. nếu (matchcount ) thì nghi ngờ bị ăn cắp 10. match(primary_key pk, number v, bit_index j) trả lại số nguyên 11. first_hash = H(K o pk) 12. nếu (first_hash mod 2 = = 0) 13. trả lại 1 nếu bít ít ý nghĩa nhất thứ j của v là 0, ngược lại trả lại 0. 14. ngược lại 15. trả lại 1 nếu bít ít ý nghĩa nhất thứ j của v là 1, ngược lại trả lại 0. Thuật toán phát hiện thuỷ vân này mang tính xác suất với các phép thử ngẫu nhiên. Dòng 3 xác định liệu bộ s đang xét có phải đã được đánh dấu trong lúc nhúng thuỷ vân hay không. Dòng 4 và 5 xác định thuộc tính và vị trí bít đã phải được đánh dấu. Sau đó, trình con match so sánh giá trị bít hiện tại với giá trị bít đã phải được đặt cho bít này khi nhúng thuỷ vân. Như vậy, cho đến dòng thứ 8 ta sẽ biết được có bao nhiêu bộ được thử (totalcount) và có bao nhiêu bộ trong số đó chứa giá trị mong đợi (matchcount). Về mặt xác suất thì chỉ có một lượng tối thiểu nhất định các bộ có chứa các bít trùng với các bít đã đánh dấu. Giá trị matchcount được so sánh với số đếm tối thiểu tính được từ hàm ngưỡng đối với phép thử thành công ở mức ý nghĩa đã chọn. Kỹ thuật này được phân tích, đánh giá bằng xác suất nhị thức tích lũy. - Xác suất nhị thức tích luỹ: Các phép thử độc lập lặp đi lặp lại được gọi là các phép thử Bernoulli nếu chỉ có hai kết quả có thể đối với mỗi phép thử và xác suất của chúng là như nhau trong suốt quá trình thử. Cho ),;( pnkb là xác suất mà n phép thử Bernoulli với xác suất thành công là p và xác suất thất bại là pq 1 trong k lần thành công và kn lần thất bại. knk qp k n pnkb ),;( (1) )!(! ! knk n k n nk 0 (2) Ký hiệu số lần thành công trong n lần thử là Sn. Xác suất để có ít nhất k lần thành công trong n lần thử, còn gọi là xác suất nhị thức tích luỹ, được tính như sau: n ki n pnibkSP ),;( (3) Để ngắn gọn, ta định nghĩa: ),;( pnkB := n ki pnib ),;( (4) - Hàm ngưỡng: 52(4): 56 - 59 Tạp chí KHOA HỌC & CÔNG NGHỆ 4 - 2009 4 Giả sử khi chạy thuật toán phát hiện thuỷ vân, totalcount = . Điều này có nghĩa là chủ dữ liệu xem xét ở bít và quan sát số các bít mà giá trị của chúng trùng với giá trị được gán bởi thuật toán nhúng. Xác suất để có ít nhất bít trong bít ngẫu nhiên - với đặc điểm là mỗi bít bằng 0 hoặc bằng 1 với xác suất như nhau, độc lập với các bít khác – trùng với giá trị đã được gán là B( ; , 1/2). Nói cách khác, xác suất để ít nhất bít trùng khớp với cơ hội ngang bằng nhau là B( ; , 1/2). Do đó, thủ tục con: Subroutine threshold( , ) return count trả lại nhỏ nhất sao cho B( ; , 1/2) . = min { t : B( t ; , 1/2 ) }. III. Thử nghiệm và kết luận Chúng tôi đã tiến hành cài đặt kỹ thuật LSB này với quan hệ cơ sở dữ liệu thử nghiệm gồm 150 bộ và 12 thuộc tính. Chẳng hạn, chọn số bít ít ý nghĩa nhất là 1, số thuộc tính sẵn sàng để đánh dấu là 12, và tham số điều khiển xác định số bộ cần đánh dấu là 10 thì kết quả thu được có 18 bộ được đánh dấu. Khi chưa có tấn công gì, thuật toán phát hiện cũng cho ta kết quả là matchcount = totalcount = 18. Khi thêm một số bộ dữ liệu mới vào thì kết quả cũng thu được là matchcount = totalcount = 18 và thử với các mức ý nghĩa khác nhau thì sẽ cho ta các ngưỡng như sau: = 0.1 thì = 13 < matchcount = 0.01 thì = 15 < matchcount = 0.001 thì = 16 < matchcount = 0.0001 thì = 17 < matchcount Khi thay đổi một số giá trị thuộc tính thì: matchcount = 14 < totalcount = 18, và với = 0.1 thì = 13 < matchcount, với = 0.01 thì = 15 > matchcount Với tấn công thêm thì hầu như không có thay đổi gì đáng kể tới dữ liệu đã được thủy vân. Còn với tấn công thay đổi thì có ảnh hưởng đáng kể tới dữ liệu đã được nhúng và có thể làm mất thủy vân. Như vậy, kỹ thuật LSB này bền vững đối với tấn công thêm (bớt) hơn đối với tấn công thay đổi. Chúng tôi dự định tiếp tục nghiên cứu, tìm ra những kỹ thuật thủy vân bền vững hơn và tiến hành cài đặt chúng trên dữ liệu thực để có thể áp dụng vào thực tiễn. Tài liệu tham khảo [1]. Phạm Hữu Khang, Đoàn Thiện Ngân, Hoàng Đức Hải, “C# 2005 Lập trình cơ bản”, NXB Lao động xã hội (2006). [2]. R. Agrawal, J. Kiernan, “Watermarking Relational Databases” in Proceedings of the 28th VLDB Conference, Hong Kong, China, 2002. [3].R. Agrawal, P. J. Haas, and J. Kiernan. “Watermarking relational data: framework, algorithms and analysis*”. The VLDB Journal (2003). [4]. M. Shehab, E. Bertino, A. Ghafoor. “Watermarking Relational Databases using Optimization Based Techniques”. CERIAS Tech Report 2006-41. 52(4): 3 - 12 Tạp chí KHOA HỌC & CÔNG NGHỆ 4 - 2009 5 Summary In the paper, we presented a research result on the effective watermark technique based on the least significant bits of some numerical attributes of a relation and implemented an exprimental program for evaluating the robustness of the technique against update operation and some attacks. The experimetal resuls show that the technique based on LSB is robust against the deletion and the addition of tuples but not robust against the change operation.
File đính kèm:
- thuy_van_co_so_du_lieu_quan_he.pdf