Một lược dồ thủy vân cơ sở dữ liệu quan hệ với dữ liệu phân loại

Tóm tắt, Thủy vẫn là một trong cắt giải pháp hữu hiệu dùng để bảo vệ bản quyền và Bi tin và dù các Cơ sở dữ liệu quan hệ trong môi trư ng internet. Trong bài bắ0 thày dùng tỏi đề xuất một lược đồ thủy văn mới Cổ thể phát hiện và khoanh vùng cực giả làm trung cất cơ sở dữ liệu quai lệ với dữ liệu phải loại. Kỹ thuật thủy văn Tiày không làm thay đổi giá trị các bộ trong C sở dữ liệu mà chỉ thay đổi một cách bí mật và an toàn thứ tư của các bộ trong cơ sở dữ liệu.

 

pdf 12 trang phuongnguyen 12440
Bạn đang xem tài liệu "Một lược dồ thủy vân cơ sở dữ liệu quan hệ với dữ liệu phân loại", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Một lược dồ thủy vân cơ sở dữ liệu quan hệ với dữ liệu phân loại

Một lược dồ thủy vân cơ sở dữ liệu quan hệ với dữ liệu phân loại
Tạp chí Tin học và Điều khiển học, T.29, S.1 (2013), 211–218
MỘT LƯỢC ĐỒ THỦY VÂN CƠ SỞ DỮ LIỆU QUAN HỆ VỚI DỮ LIỆU
PHÂN LOẠI
LƯU THỊ BÍCH HƯƠNG1, BÙI THẾ HỒNG2
1Khoa Công nghệ thông tin, Trường Đại học sư phạm Hà Nội 2
2Viện Công nghệ Thông tin, Viện Hàn lâm Khoa học & Công nghệ Việt Nam
Tóm tắt. Thủy vân là một trong các giải pháp hữu hiệu dùng để bảo vệ bản quyền và sự toàn vẹn
cho các cơ sở dữ liệu quan hệ trong môi trường internet. Trong bài báo này chúng tôi đề xuất một
lược đồ thủy vân mới có thể phát hiện và khoanh vùng các giả mạo trong các cơ sở dữ liệu quan hệ
với dữ liệu phân loại. Kỹ thuật thủy vân này không làm thay đổi giá trị các bộ trong cơ sở dữ liệu
mà chỉ thay đổi một cách bí mật và an toàn thứ tự của các bộ trong cơ sở dữ liệu.
Từ khóa. Thủy vân, cơ sở dữ liệu, dữ liệu phân loại.
Abstract. Watermarking is one of the effective measures for copyright protection and the integrity
of the relational database in the internet environment. In this paper, we propose a new watermarking
scheme which can detect and localize the tampering of the relational database with categorical data.
This watermarking scheme does not only change the values in the database, but also changes implicitly
and securely the order of the tuples in the database.
Key words. Watermark, database, categorical data.
1. GIỚI THIỆU
Ngày nay, với sự phát triển mạnh mẽ của máy tính cùng sự bùng nổ của Internet đã giúp
cho việc sử dụng và trao đổi thông tin càng ngày càng dễ dàng hơn. Tuy nhiên, nó cũng đem
đến một nguy cơ đe dọa sự toàn vẹn của các thông tin khi được lưu thông trên Internet. Vì
vậy, chủ sở hữu của những dữ liệu này luôn mong muốn dữ liệu của mình được phổ biến và
phân phối một cách đúng đắn, không bị vi phạm bản quyền cũng như không bị giả mạo và
xuyên tạc [1]. Đây là một yêu cầu rất cấp bách đòi hỏi phải có những công nghệ bảo vệ thật
hữu hiệu. Trong đó, thủy vân đang nổi lên như một công nghệ mới có thể sử dụng để bảo vệ
bản quyền cũng như bảo đảm sự toàn vẹn cho các cơ sở dữ liệu quan hệ [2, 4, 5, 7, 9, 15].
Gần đây, đã có một số lược đồ thủy vân bền vững được công bố nhằm bảo vệ bản quyền
cho cơ sở dữ liệu quan hệ [1, 3, 5, 6, 8, 10, 14]. Tuy nhiên, việc bảo vệ bản quyền cho các cơ
sở dữ liệu là tương đối tốn kém và không phải lúc nào các dữ liệu cũng cần phải chứng thực
bản quyền mà có thể chỉ cần phải xác minh dữ liệu vẫn còn toàn vẹn là đủ. Tuy vậy, cho đến
nay vẫn chưa có nhiều công trình nghiên cứu về khía cạnh này.
2 LƯU THỊ BÍCH HƯƠNG, BÙI THẾ HỒNG
Để phát hiện giả mạo, các kỹ thuật thủy vân hiện có đều phải tiến hành những thay đổi
nhỏ đối với giá trị của các thuộc tính trong một số bộ của cơ sở dữ liệu [1, 9, 10]. Tuy nhiên,
có những dữ liệu không chấp nhận thay đổi cho dù rất nhỏ vì có thể sẽ làm mất ý nghĩa cũng
như giá trị sử dụng của chúng. Để khắc phục điểm này, Y.Li, H Guo và S Jajodia [11] đã đề
xuất một lược đồ thủy vân mới có thể khoanh vùng các giả mạo hoặc xuyên tạc đối với cơ
sở dữ liệu quan hệ mà không làm thay đổi bất kỳ giá trị dữ liệu nào. Điểm mấu chốt của kỹ
thuật này là việc đổi thứ tự của các bộ trong cơ sở dữ liệu. Tuy nhiên, lược đồ này có tính an
toàn chưa cao do việc đổi thứ tự của các bộ chỉ được thực hiện trên các cặp đã định trước và
bài báo chưa chứng minh được tính đúng đắn của thuật toán. Bài báo đề xuất một kỹ thuật
đổi thứ tự mới bằng cách chọn các cặp bộ dựa vào một khóa bí mật K và số các bộ trong mỗi
nhóm, nhằm tăng cường tính bảo mật thông qua các tham số bí mật chỉ người chủ dữ liệu
biết và chứng minh tính đúng đắn của thuật toán cũng như thử nghiệm thuật toán.
Trong Mục 2 sẽ đưa ra một số thuật ngữ về thủy vân cơ sở dữ liệu quan hệ, khóa thủy
vân, hàm hash và dữ liệu phân loại. Mục 3 trình bày thuật toán nhúng thủy vân và thuật toán
phát hiện thủy vân đã nhúng trong quan hệ được cải tiến để nâng cao tính bảo mật từ thuật
toán trong [11]. Mục 4 sẽ chứng minh tính đúng đắn của thuật toán. Mục 5 là cân đối giữa số
bộ trong quan hệ và số nhóm. Cuối cùng là phần kết luận.
2. MỘT SỐ ĐỊNH NGHĨA
2.1. Thủy vân
Trong các nghiên cứu về các giải pháp bảo vệ bản quyền và sự toàn vẹn của các cơ sở dữ
liệu quan hệ trong môi trường Internet, khái niệm thủy vân cơ sở dữ liệu luôn được nhắc đến
[1-4, 7, 10, 11, 13-15], nhưng chưa được định nghĩa một cách thống nhất. Sau khi tổng hợp
lại, chúng tôi đưa ra một định nghĩa chung nhất cho khái niệm này như sau.
Định nghĩa 1. Thủy vân cơ sở dữ liệu quan hệ là một kỹ thuật nhúng một số thông tin nào
đó (được gọi là thông tin thủy vân W ) vào cơ sở dữ liệu quan hệ nhằm mục đích bảo vệ bản
quyền hoặc sự toàn vẹn cho cơ sở dữ liệu này. Thủy vân có thể ở dạng ẩn hoặc hiện và có thể
là bền vững hoặc dễ vỡ.
2.2. Khóa thủy vân
Để chủ sở hữu của cơ sở dữ liệu có thể giữ bí mật cho thông tin thủy vân W và là người
duy nhất có thể tìm lại được thông tin này thì cần phải trộn W với một thông tin đặc biệt
được gọi là khóa do chính chủ cơ sở dữ liệu tự chọn. Thông tin thứ hai này được gọi là khóa
thủy vân và được định nghĩa như sau.
Định nghĩa 2. Khóa thủy vân là một chuỗi các bit bí mật do chủ sở hữu cơ sở dữ liệu tự
chọn (được gọi là K). Khóa K sẽ được trộn với thủy vân W để nhúng vào cơ sở dữ liệu. Sau
đó, K sẽ đóng vai trò là khóa trong qui trình tìm lại thủy vân.
Một trong những cách giấu khóa hữu hiệu nhất là sử dụng hàm hash vì kỹ thuật này đảm
bảo được yêu cầu bảo mật cũng như chi phí tính toán.
MỘT LƯỢC ĐỒ THỦY VÂN CƠ SỞ DỮ LIỆU QUAN HỆ VỚI DỮ LIỆU PHÂN LOẠI 3
Định nghĩa 3. Hàm hash [12]
- Hàm hash là một thuật toán nhận vào một xâu ký tự có độ dài tùy ý và cho ra một xâu
có độ dài qui định.
- Hàm hash mật mã học là một hàm hash với một số tính chất bảo mật nhất định để phù
hợp với việc sử dụng trong nhiều ứng dụng bảo mật thông tin đa dạng (chứng thực và kiểm
tra tính nguyên vẹn của thông điệp).
2.3. Dữ liệu phân loại
Giả sử ta có một bảng ghi lại danh sách các nhân viên trong một công ty, trong đó có một
cột ghi số hiệu phòng làm việc của từng người. Sử dụng cột này, ta có thể chia các nhân viên
theo số hiệu phòng. Vì thế thuộc tính này được gọi là thuộc tính phân loại. Giá trị của các
thuộc tính phân loại không thể bị thay đổi một cách tùy tiện vì như vậy sẽ ảnh hưởng đến
việc phân loại các đối tượng trong bảng dữ liệu. Dữ liệu phân loại trong cơ sở dữ liệu quan
hệ có thể được định nghĩa như sau.
Định nghĩa 4. Dữ liệu phân loại trong cơ sở dữ liệu quan hệ là dữ liệu có thể được dùng để
phân chia các bộ thành một số loại khác nhau. Một thay đổi nhỏ về giá trị của dữ liệu có thể
làm ảnh hưởng đến giá trị sử dụng của toàn bộ dữ liệu trong cơ sở dữ liệu quan hệ.
3. LƯỢC ĐỒ NHÚNG VÀ PHÁT HIỆN THỦY VÂN
Trong Mục 2 đã đưa ra các định nghĩa cần thiết. Lược đồ thủy vân cơ sở dữ liệu quan hệ
bao gồm 2 phần: nhúng thủy vân và phát hiện thủy vân [8]. Khi nhúng thủy vân, một khóa bí
mật K do chủ sở hữu cơ sở dữ liệu tự chọn sẽ được sử dụng để nhúng thủy vân W vào cơ sở
dữ liệu gốc. Sau khi nhúng thủy vân, các cơ sở dữ liệu sẽ được đưa vào lưu thông trong môi
trường mạng. Để xác minh quyền sở hữu của một cơ sở dữ liệu đáng ngờ, quá trình xác minh
được thực hiện mà cơ sở dữ liệu bị nghi ngờ được thực hiện như là đầu vào và bằng cách sử
dụng khóa bí mật K (được sử dụng trong giai đoạn nhúng) thủy vân nhúng (nếu có) được lấy
ra và so sánh với các thông tin thủy vân ban đầu.
Một vấn đề quan trọng trong một lược đồ thủy vân là sự đồng bộ hóa, nghĩa là phải đảm
bảo thủy vân được trích ra theo đúng thứ tự đã được nhúng vào [8, 11]. Nếu mất sự đồng bộ
này thì ngay cả khi không có bất kỳ một sửa đổi nào, thủy vân đã nhúng cũng có thể không
được xác minh đúng đắn. Trong một lược đồ thủy vân dễ vỡ đối với các dữ liệu đa phương
tiện, sự đồng bộ hóa không phải là vấn đề vì vị trí tương đối của các dữ liệu đa phương tiện
là cố định [3]. Ngược lại, các bộ trong một quan hệ là độc lập với nhau và có thể được đặt
theo một thứ tự tùy ý. Đây là một đặc điểm mà chúng ta có thể sử dụng để đưa ra một kỹ
thuật mới cho lược đồ thủy vân đối với dữ liệu phân loại thông qua việc vận dụng thứ tự của
các bộ. Ưu điểm của cách tiếp cận này là không thay đổi giá trị thuộc tính, một giải pháp lý
tưởng khi thủy vân các dữ liệu phân loại, mà chỉ làm thay đổi thứ tự của các bộ trong quan
hệ.
Trong lược đồ thủy vân đề xuất, tư tưởng chính của các thuật toán dựa vào [11]. Giống
như lược đồ thủy vân [11], quá trình nhúng thủy vân và phát hiện thủy vân được thực hiện
4 LƯU THỊ BÍCH HƯƠNG, BÙI THẾ HỒNG
trên từng nhóm. Mỗi nhóm này có thể được xem như là một nhóm ảo mà không thay đổi vị
trí vật lý của các bộ. Sau khi nhóm, tất cả các bộ trong mỗi nhóm được sắp xếp theo khóa
chính của nó. Giống như khi chia nhóm, việc sắp xếp này không làm thay đổi vị trí vật lý của
các bộ. Mỗi nhóm sau đó sẽ được xử lý một cách độc lập.
Trong thuật toán nhúng thủy vân của [11], việc chọn các cặp bộ để nhúng thủy vân được
thực hiện tuần tự cho nên rất dễ bị phát hiện. Khác với cách chọn này của [11], với mỗi cặp,
chỉ lấy bộ thứ nhất theo thứ tự, còn bộ thứ hai của cặp bộ này được chọn dựa vào khóa nhúng
thủy vân K và số bộ trong nhóm Gk. Quá trình chọn cặp để đổi chỗ này sẽ giúp tăng độ an
toàn cho thủy vân được nhúng trong quan hệ. Đây là điểm mạnh của lược đồ thay cho lược
đồ trong [11] việc đổi chỗ được tiến hành cho các bộ một cách cố định sẽ tạo cơ hội tấn công
cao hơn từ những kẻ muốn sửa đổi quan hệ. Từ đó, việc đổi chỗ hai bộ không phải cố định
thể hiện sự vượt trội hơn so với việc chỉ đổi chỗ cố định. Thêm vào nữa, việc đổi chỗ các cặp
bộ dựa vào khóa bí mật K và tham số g, mà K và g chỉ chủ sở hữu dữ liệu biết sẽ tăng tính
bảo mật cho quan hệ được nhúng. Từ đó, thực sự kẻ tấn công khó có thể tìm ra vị trí các cặp
bộ được đổi chỗ cho nhau.
Giả sử có một quan hệ với một khóa chính là P , γ thuộc tính và có dữ liệu phân loại được
ký hiệu là R(P,A1, A2, ..., Aγ) và K là khóa thủy vân. Bảng 1 là các ký hiệu và tham số sẽ
được sử dụng trong lược đồ thủy vân đề xuất.
Bảng 1. Các ký hiệu và các tham số
Ký hiệu Ý nghĩa của ký hiệu
γ Số thuộc tính của quan hệ
ω Số bộ của quan hệ
g Số nhóm của quan hệ
hi Giá trị hash của bộ thứ i trong quan hệ hoặc trong 1 nhóm
Hi Giá trị hash của khóa thủy vân và khóa chính của bộ thứ i trong quan hệ
hoặc trong 1 nhóm
H Giá trị hash của nhóm
Gk Nhóm thứ k
qk Số bộ trong nhóm thứ k
ri Bộ thứ i trong quan hệ hoặc trong một nhóm
ri.Aj Giá trị thuộc tính thứ j của bộ thứ i trong quan hệ hoặc trong một nhóm
K Khóa nhúng thủy vân
W Chuỗi thủy vân nhúng trong một nhóm
W [i] Bít thủy vân thứ i trong chuỗi thủy vân W
W ∗ Thủy vân được trích ra từ một nhóm
W ∗[i] Bít thủy vân thứ i trong chuỗi thủy vân W ∗
V Kết quả xác minh thủy vân
3.1. Nhúng thủy vân
Quá trình nhúng thủy vân vào quan hệ được thực hiện bằng Thuật toán 1 dưới đây.
MỘT LƯỢC ĐỒ THỦY VÂN CƠ SỞ DỮ LIỆU QUAN HỆ VỚI DỮ LIỆU PHÂN LOẠI 5
Thuật toán 1. Nhúng thủy vân
1. for k = 1 to g do // khởi tạo các chỉ số và các nhóm
2. qk = 0
3. Gk = ∅
4. end for
5. for i = 1 to ω do // chia các bộ thành g nhóm
6. hi = HASH(K, ri.A1, ri.A2, ..., ri.Aγ) // giá trị hash của bộ thứ i
7. Hi = HASH(K, ri.p)
8. k = Hi mod g // xác định nhóm
9. ri → Gk // đưa bộ ri vào nhóm Gk
10. qk ++
11. end for
12. for k = 1 to g do
13. Lưu khóa chính của các bộ trong Gk vào một cột trung gian T và sắp thứ tự
14. H = HASH(K,hk1 , hk2 , ..., hkqk )//hki : giá trị hash của bộ nhóm k sau sắp thứ tự
15. W = ExtractBits(H, bqk/2c) // bxc: phần nguyên của x
16. for i = 1 to bqk/2c do
17. j = HASH(K) mod (qk − 2i+ 1) + 2
18. If (hk1 ≤ hkj and W [i] == 1) or (hk1 > hkj and W [i] == 0) then
19. đổi chỗ bộ rk1 và rkj của quan hệ
20. end if
21. Loại bỏ khóa chính của bộ rk1 và rkj ra khỏi cột T và sắp lại thứ tự
22. end for
23. ExtractBits(H, ` ) {
24. if length(H) > ` then
25. W được gán bằng ` bit đầu tiên của H
26. else
27. m = `− length(H)
28. W được gán bằng H ghép với ExtractBits (H,m)
29. end if
30. return W }
31. end for
Giải thích Thuật toán 1: Đầu tiên, các bộ của quan hệ được chia thành g nhóm theo khóa
chính và khóa nhúng thủy vân K. Việc chia nhóm này chỉ là một hoạt động ảo, không làm
6 LƯU THỊ BÍCH HƯƠNG, BÙI THẾ HỒNG
thay đổi vị trí vật lý của các bộ trong quan hệ. Đồng thời, tính các giá trị hash hi của các
thuộc tính (trừ khóa chính) của bộ ri ghép với khóa thủy vân K, trong đó mỗi giá trị thuộc
tính là một chuỗi bit.
Tiếp theo là việc nhúng thủy vân vào từng nhóm. Thủy vân là một chuỗi W gồm bqk/2c
bit được trích ra bằng hàm ExtractBits(H, bqk/2c) từ chuỗi bít H, trong đó H là giá trị hash
của nhóm được tính từ các giá trị hi ghép với khóa K. Việc nhúng thủy vân thực chất là việc
đổi chỗ hai bộ dựa trên giá trị của chuỗi bit thủy vân W và giá trị hash của các bộ này. Các
cặp bộ được chọn phụ thuộc vào giá trị hash khóa thủy vân K và số bộ trong nhóm. Sau đó
cặp được chọn có thể bị đổi chỗ hay không tùy thuộc vào bít thủy vân W của cặp.
3.2. Phát hiện thủy vân
Để kiểm tra tính toàn vẹn của quan hệ cũng như phát hiện xem có các giả mạo nào trong
quan hệ đã nhúng thủy vân hay không thì cần phải phát triển một thuật toán để tìm lại thủy
vân. Thuật toán 2 sau đây được sử dụng để phát hiện thủy vân đã được nhúng trong quan hệ
bằng Thuật toán 1. Thuật toán này cần phải biết khóa thủy vân Kvà số nhóm g.
Thuật toán 2. Phát hiện thủy vân
1. for k = 1 to g do // khởi tạo các chỉ số và các nhóm
2. qk = 0
3. Gk = ∅
4. end for
5. for i = 1 to ω do // chia các bộ thành g nhóm
6. hi = HASH(K, ri.A1, ri.A2, ..., ri.Aγ)
7. Hi = HASH(K, ri.p)
8. k = Hi mod g // xác định nhóm
9. ri → Gk // đưa bộ ri vào nhóm Gk
10. qk ++
11. end for
12. for k = 1 to g do
13. Lưu khóa chính của các bộ trong Gk vào một cột trung gian T và sắp thứ tự
14. H = HASH(K,hk1 , hk2 , ..., hkqk )// hki : giá trị hash của bộ nhóm k sau sắp thứ tự
15. W = ExtractBits(H, bqk/2c) // bxc: phần nguyên của x
16. for i = 1 to bqk/2c do
17. j = HASH(K) mod (qk − 2i+ 1) + 2
18. If hk1 < hkj then
19. W ∗[i] = 0
20. else
MỘT LƯỢC ĐỒ THỦY VÂN CƠ SỞ DỮ LIỆU QUAN HỆ VỚI DỮ LIỆU PHÂN LOẠI 7
21. W ∗[i] = 1
22. end if
23. Loại bỏ khóa chính của bộ rk1 và rkj khỏi cột T và sắp lại thứ tự
24. end for
25. if W ∗ ==W then
26. V = true
27. else
28. V = false
29. end if
30. end for
Giải thích Thuật toán 2: Phát hiện thủy vân trong từng nhóm được thực hiện dựa trên
việc so sánh 2 chuỗi thủy vân. Chuỗi thứ nhất được tính tương tự như Thuật toán 1. Chuỗi
thứ hai được rút ra từ quan hệ cần xác minh bằng cách so sánh giá trị hash của các cặp bộ
trong nhóm.
Nếu như kết quả so sánh hai chuỗi là trùng nhau thì ta kết luận không có giả mạo, ngược
lại thì có giả mạo trong nhóm đang xét. Nếu tất cả các nhóm không có giả mạo thì kết luận
quan hệ đem xác minh là toàn vẹn. Ngược lại, quan hệ là không toàn vẹn và xác minh các
nhóm là không toàn vẹn.
Từ thuật toán nhúng thủy vân và phát hiện thủy vân, có thể dễ dàng nhận thấy độ phức
tạp tính toán của cả hai thuật toán có bậc bằng số các bộ trong quan hệ, tức là bậc O(ω).
4. TÍNH ĐÚNG ĐẮN
Trong phần này sẽ chứng minh tính đúng đắn của các thuật toán đề xuất. Để chứng minh
tính đúng đắn của định lý, ta có mệnh đề sau.
Mệnh đề 1. Nếu trong thuật toán nhúng, một bộ thuộc vào nhóm Gk nào đó và giá trị khóa
chính của nó không bị thay đổi thì bộ này vẫn thuộc nhóm Gk trong thuật toán phát hiện
thủy vân.
Chứng minh. Giả sử có một quan hệ có ω bộ với một khóa chính là P, γ thuộc tính và có
dữ liệu phân loại, ký hiệu là R(P,A1, A2, ..., Aγ). Xét bộ ri(p, a1, a2, ..., aγ) trong quan hệ R.
Theo giả thiết, khóa chính p không bị thay đổi khi quan hệ bị tấn công và chủ sở hữu quan
hệ hoặc người có thẩm quyền biết về khóa bí mật K và số nhóm phân chia g.
Trong thuật toán nhúng thủy vân, ta có:
+ Theo tính chất của hàm HASH;
+ Hi = HASH(K, ri.p) chỉ phụ thuộc vào giá trị các tham số K và ri.p;
+ Chỉ số nhóm k = Hi mod g;
=⇒ ri ∈ Gk.
Trong thuật toán phát hiện thủy vân, theo giả thiết ta có ri.p không thay đổi và tham số
8 LƯU THỊ BÍCH HƯƠNG, BÙI THẾ HỒNG
K, g đã biết trước và không thay đổi. Khi đó:
+ Theo tính chất của hàm HASH;
+ Hi = HASH(K, ri.p) chỉ phụ thuộc vào giá trị các tham số K và ri.p;
+ Mặt khác, việc xác định chỉ số nhóm của ri theo công thức k = Hi mod g;
+ Tham số g,K, ri.p không thay đổi;
=⇒ ri ∈ Gk.
Do đó, ri ∈ Gk trong cả hai thuật toán nhúng và phát hiện thủy vân. Mà ri là một bộ
được chọn ngẫu nhiên trong quan hệ R. Vì vậy, ta có điều phải chứng minh. 
Định lý 1. Nếu một quan hệ có dữ liệu phân loại không bị giả mạo hoặc xuyên tạc thì thủy
vân đã nhúng vào quan hệ bằng Thuật toán 1 và thủy vân được trích ra từ quan hệ bằng
Thuật toán 2 là như nhau.
Chứng minh. Giả sử có một quan hệ có ω bộ với một khóa chính là P, γ thuộc tính và có dữ
liệu phân loại, ký hiệu là R(P,A1, A2, ..., Aγ). Theo giả thiết, quan hệ không bị thay đổi. Vì
vậy, theo Mệnh đề 1 ω bộ được phân vào g nhóm Gi(i = 1, 2, ..., g) là giống nhau trong thuật
toán nhúng và phát hiện thủy vân.
Giả sử xét nhóm Gk, có qk bộ. W (W [1],W [2], ...,W [bqk/2c]) là thủy vân được sinh ra
trong quá trình nhúng thủy vân, trong đó
W [i] ={0, 1}, i = 1, 2, ..., bqk/2c; W ′(W ′[1],W ′[2], ...,W ′[bqk/2c])
là thủy vân được sinh ra trong quá trình phát hiện thủy vân, trong đó W ′[i] = {0, 1}.
W ∗(W ∗[1],W ∗[2], ...,W ∗[bqk/2c]) là thủy vân được trích ra từ quan hệ trong thuật toán phát
hiện thủy vân, trong đó W ∗[i] = {0, 1}. Vì lược đồ thủy vân sử dụng duy nhất một cách sắp
thứ tự cho cả thuật toán nhúng và phát hiện thủy vân cho nên các bộ ri (i = 1, 2, ..., qk)
được sắp thứ tự như nhau trong phần nhúng và phát hiện thủy vân.
Trong phần nhúng, theo tính chất của hàm HASH, và cách tính:
+ hi = HASH(K, ri.A1, ri.A2, ..., ri.Aγ);
+ H = HASH(K,h′1, h′2, ..., h′qk);
trong đó, h′j là giá trị hi sau khi sắp thứ tự. Sử dụng hàm ExtractBits với tham số đầu vào
là giá trị của H ta sẽ sinh ra được chuỗi thủy vân nhúng W :
W = ExtractBits(H, bqk/2c).
Trong phần phát hiện, tương tự như trên ta có:
+ h′i = HASH(K, ri.A1, ri.A2, ..., ri.Aγ);
+ H ′ = HASH(K,h′1, h′2, ..., h′qk);
+ W ′ = ExtractBits(H ′, bqk/2c);
+ Vì quan hệ không bị giả mạo hoặc xuyên tạc và cũng được sắp thứ tự như nhau cho
nên các ri.Aj là không thay đổi trong phần phát hiện.
=⇒ h′i = hi ∀i = 1, 2, ..., qk ⇒ H ′ = H ⇔W ′ =W. (1)
Xét thuật toán nhúng thủy vân:
MỘT LƯỢC ĐỒ THỦY VÂN CƠ SỞ DỮ LIỆU QUAN HỆ VỚI DỮ LIỆU PHÂN LOẠI 9
If (hk1 ≤ hkj and W [i] == 1) or (hk1 > hkj and W [i] == 0) then
đổi chỗ bộ rk1 và rkj của quan hệ
Như vậy, ta xét các điều kiện để đổi chỗ bộ rk1 và rkj :
+ hk1 < hkj và W [i] = 0 thì không đổi chỗ.
+ hk1 hkj .
+ hk1 ≥ hkj và W [i] = 0 thì đổi chỗ. Sau đổi chỗ thì hk1 ≤ hkj .
+ hk1 ≥ hkj và W [i] = 1 thì không đổi chỗ.
⇔ hk1 ≥ hkj thì W [i] = 1 và hk1 < hkj thì W [i] = 0. (2)
Các bit W [i] của thủy vân W lần lượt được nhúng vào trong nhóm Gk bằng việc đổi chỗ
các bộ trong quan hệ ban đầu như đã xét trong các trường hợp ở trên.
Tương tự, ta xét quá trình trích thủy vân W ∗ trong thuật toán phát hiện:
If hk1 < hkj then
W ∗[i] = 0 (3)
else
W ∗[i] = 1
Từ (3) =⇒ hk1 < hkj thì W ∗[i] = 0 và khi hk1 ≥ hkj thì W ∗[i] = 1. (4)
Từ (2), (4) và do quan hệ không bị thay đổi cho nên W ∗[i] = W [i]. Vì W ∗[i], W [i] là bất
kỳ nên W ∗ =W . (5)
Lược đồ thủy vân thực hiện trên nhóm Gk(k = 1, 2, ..., g) và các nhóm độc lập với nhau.
(6)
Từ (1), (5) và (6), ta có điều phải chứng minh. 
5. CÂN ĐỐI GIỮA SỐ BỘ TRONG QUAN HỆ VÀ SỐ NHÓM
Với lược đồ đề xuất ở trên, nếu có một nhóm bị phát hiện là giả mạo thì người ta có thể
loại nhóm đó đi và các nhóm không bị giả mạo sẽ tiếp tục được sử dụng. Việc xác định một
nhóm nào đó có bị giả mạo hay không có thể được thực hiện trong Thuật toán 2.
Trước khi thủy vân một quan hệ, cần phải lựa chọn tham số g (số nhóm thủy vân) sao
cho phù hợp với số bộ trong quan hệ. Số các bộ của quan hệ và số nhóm phải được chọn như
thế nào đó để có thể thỏa mãn đồng thời hai tính chất. Đó là tăng cường tính bền vững của
thủy vân và tối đa số các bộ có thể tiếp tục được sử dụng. Có thể thấy ngay là không thể
nào thỏa mãn được đồng thời hai tính chất này. Điều này được khẳng định bằng các Mệnh
đề 2 và Mệnh đề 3. Vì vậy, sẽ phải có một sự thỏa hiệp để cân đối giữa hai tính chất trên.
Số lượng nhóm nên được chọn vừa đủ tương ứng với số lượng các bộ của quan hệ để vừa có
các chuỗi thủy vân bền vững trong mỗi nhóm và vừa có thể tiếp tục sử dụng được nhiều bộ
nhất. Nhưng nếu cần phải tăng cường tính bền vững của thủy vân thì nên chọn g nhỏ để số
bộ trong mỗi nhóm sẽ tăng lên cùng chiều với độ bền vững. Nếu ngược lại, tức là nhu cầu tiếp
tục sử dụng những bộ không bị xâm phạm là cấp bách thì cần phải chọn g lớn để số lượng
10 LƯU THỊ BÍCH HƯƠNG, BÙI THẾ HỒNG
các bộ phải loại bỏ sẽ ít hơn. Trong các thử nghiệm, với các quan hệ có khoảng 10.000 bộ cho
thấy g nằm trong khoảng từ 6 đến 10 là những lựa chọn tốt cho cả hai tính chất đã đề cập
trên đây.
Mệnh đề 2. Cho một quan hệ có dữ liệu phân loại được thủy vân bằng Thuật toán 1 và 2.
Nếu quan hệ R có kích thước không đổi và số nhóm g tăng thì:
1. Số lượng bộ có thể tiếp tục sử dụng dữ liệu tăng.
2. Độ bền vững của thủy vân giảm.
Chứng minh. Giả sử có một quan hệ có ω bộ với một khóa chính là P, γ thuộc tính và có dữ
liệu phân loại, ký hiệu là R(P,A1, A2, ..., Aγ). Theo giả thiết số bộ ω là cố định.
1. Chứng minh số lượng bộ có thể tiếp tục sử dụng dữ liệu tăng.
Theo giả thiết ta có:
+ ω bộ được phân vào g nhóm Gk(k = 1, 2, ..., g) bằng thuật toán nhúng và phát hiện
thủy vân.
+ Số bộ ω là cố định.
Theo Thuật toán 1 và 2, số bộ trung bình trong mỗi nhóm Gk là qk(qk = ω/g).
Khi g tăng lên thì số bộ trung bình trong mỗi nhóm Gk là βk. Ta dễ dàng nhận thấy
βk < qk(ω/g
′ < ω/g, với g′ là số nhóm sau khi tăng).
Giả sử quan hệ có sửa đổi xảy ra và không mất tổng quát, dựa vào Thuật toán 2, phát
hiện nhóm Gk bị sửa đổi. Hay số lượng bộ có thể tiếp tục sử dụng dữ liệu của quan hệ R sẽ
loại đi số bộ trong nhóm Gk. Dễ dàng nhận thấy số lượng bộ dữ liệu trung bình bị loại đi
trong Gk sau khi g tăng nhỏ hơn trước khi tăng g (giảm đi qk − βk bộ). Khi đó số lượng bộ
có thể tiếp tục sử dụng dữ liệu tăng lên qk − βk bộ.
2. Chứng minh độ bền vững của thủy vân giảm.
Ta có thể thấy, độ bền vững của thủy vân trong Thuật toán 1 và 2 dựa vào độ dài chuỗi
thủy vân W . Như vậy sẽ chứng minh độ bền vững dựa vào độ dài của W .
Theo giả thiết ta có: g tăng =⇒ số lượng bộ dữ liệu trung bình trong nhóm Gk giảm, suy
ra chuỗi thủy vân W và chuỗi thủy vân trích ra W ∗ của Gk có độ dài sẽ giảm đi.
Suy ra điều phải chứng minh. 
Mệnh đề 3. Cho quan hệ R có dữ liệu phân loại được thủy vân bằng Thuật toán 1 và 2 với
số nhóm không đổi, nếu như kích thước quan hệ tăng thì:
1. Số lượng bộ có thể tiếp tục sử dụng dữ liệu giảm.
2. Độ bền vững của thủy vân tăng.
Chứng minh. Giả sử có một quan hệ có ω bộ với một khóa chính là P, γ thuộc tính và có dữ
liệu phân loại, ký hiệu là R(P,A1, A2, ..., Aγ). Theo giả thiết g cố định.
1. Chứng minh: Số lượng bộ có thể tiếp tục sử dụng dữ liệu giảm.
Theo giả thiết ta có:
+ ω bộ được phân vào g nhóm Gk (k = 1, 2, ..., g) bằng thuật toán nhúng và phát hiện
MỘT LƯỢC ĐỒ THỦY VÂN CƠ SỞ DỮ LIỆU QUAN HỆ VỚI DỮ LIỆU PHÂN LOẠI 11
thủy vân.
+ Số nhóm g là cố định nên số phần tử trong nhóm Gk là qk.
Khi ω tăng lên thì số lượng phần tử trong Gk là qk + βk (với βk là số bộ tăng thêm của
Gk khi ω tăng).
Giả sử quan hệ có sửa đổi xảy ra và không mất tổng quát, dựa vào Thuật toán 2, phát
hiện nhóm Gk bị sửa đổi. Khi đó, số lượng bộ có thể tiếp tục sử dụng dữ liệu của quan hệ R
sẽ loại đi số bộ trong nhóm Gk. Hay số lượng bộ bị loại đi trong Gk sau khi ω tăng lớn hơn
trước khi tăng ω là βk bộ. Suy ra, số lượng bộ có thể tiếp tục sử dụng dữ liệu giảm đi βk bộ.
2. Chứng minh: Độ bền vững của thủy vân tăng.
Ta có thể thấy, độ bền vững của thủy vân trong Thuật toán 1 và 2 dựa vào độ dài chuỗi
thủy vân W . Như vậy sẽ chứng minh độ bền vững dựa vào độ dài của W .
Theo giả thiết ta có: ω tăng, suy ra số lượng bộ dữ liệu trong nhóm Gk tăng =⇒ chuỗi
thủy vân W và chuỗi thủy vân trích ra W ∗ của Gk có độ dài sẽ tăng lên.
Suy ra điều phải chứng minh. 
6. KẾT LUẬN
Lược đồ thủy vân đề xuất làm việc trên các nhóm trong quan hệ của cơ sở dữ liệu quan
hệ. Khóa thủy vân và tham số g (số lượng nhóm) được nhúng vào cơ sở dữ liệu quan hệ là
một dữ liệu mật. Trong lược đồ này cần tạo ra sự cân bằng giữa độ an toàn và chi phí tính
toán.
Kích thước của cơ sở dữ liệu càng lớn thì độ bền vững của lược đồ càng tốt nhưng ngược
lại số lượng bộ có thể tiếp tục sử dụng dữ liệu giảm và chi phí tính toán lớn. Trong khi đó,
số nhóm thủy vân càng lớn thì số lượng bộ có thể tiếp tục sử dụng dữ liệu càng tốt nhưng độ
bền vững của lược đồ thủy vân giảm. Vì vậy trong lược đồ này việc chọn g được xem xét để
cân đối với kích thước của quan hệ.
Lược đồ đề xuất sử dụng các nhóm độc lập trong quan hệ, có những điểm mạnh sau:
- Nhúng thủy vân không làm thay đổi giá trị của các bộ.
- Phát hiện và khoanh vùng giả mạo trên từng nhóm độc lập. Do vậy, các nhóm còn lại
trong cơ sở dữ liệu vẫn còn có thể được sử dụng nếu cần thiết.
TÀI LIỆU THAM KHẢO
[1] A. Hamadou, X. Sun, S. A. Shah, L. Gao, A weight-based semi-fragile watermarking scheme for
integrity verification of relational data, International Journal of Digital Content Technology
and its Applications 5 (8) (2011).
[2] Agrawal, Kiernan, Haas, Watermarking relational data: framework, algorithms amd analysis,
The VLDB Journal 12 (2) (2003) 157–169.
[3] Collberg and Thomborson, Watermarking, tamper- proofing, and obfuscation - tools for software
protection, IEEE Trans. Software Engrg 28 (8) (2002) 735–746.
12 LƯU THỊ BÍCH HƯƠNG, BÙI THẾ HỒNG
[4] P. Cousot, R. Cousot, An abstract interpretation -based framework for software watermarking,
31st ACM SIGPLANSIGACT Symposium On Principles Of Programming Languages,
POPL’04, Venice, Italy, January 14-16, 2004.
[5] H. M. Sardroudi, S. Ibrahim, O. Zanganeh, Robust database watermarking technique over nu-
merical data, JCIS 1 1 (2011) 30–40.
[6] J. Lafaye, An analysis of database watermarking security, 3rd International Symposium on In-
formation Assurance and Security, Manchester, United Kingdom, August 29-31, 2007 (IEEE
Computer Society 2007).
[7] R. K. Bedi, P. Gujarathi, P. Gundecha, A unique approach for watermarking non-numeric rela-
tional database, International Journal of Computer Applications 36 (7) (2011) (0975–8887).
[8] Raju Halder, Shantanu Pal, Agostino Cortesi, Watermarking techniques for relational databases:
survey, classification and comparison, Journal of Universal Computer Science 16 (21) (2010)
3164–3190.
[9] Sion, Proving ownership over categorical data, Proceedings of the IEEE International Confer-
ence on Data Engineering IEEE ICDE 2004, Boston, Massachusetts, March 2004 (584–596).
[10] Sukriti Bhattacharya, Agostino Cortesi, A distortion free watermark framework for relationnal
databases, Proc. 4th International Conference on Software and Data technology (IC-
SOFT) (2), Sofia, Bulgaria, 2009 (229–234).
[11] Yingjiu Li, Huiping Guo, Sushil Jajodia, Tamper detection and localization for categorical data
using fragile watermarks, DRM ’04: Proceedings of the 4th ACM Workshop on Digital
Rights Management, New York, NY, USA, 2004 (73–82).
[12] Phan Đình Diệu, Lý thuyết mật mã và an toàn thông tin, NXB Đại học Quốc gia Hà Nội,
2002.
[13] Bùi Thế Hồng, Nguyễn Thị Thu Hằng, Lưu Thị Bích Hương, Thủy vân cơ sở dữ liệu quan hệ,
Tạp chí Khoa học và Công nghệ Đại học Thái Nguyên 52 (4) (2009) 56–59.
[14] Bùi Thế Hồng, Lưu Thị Bích Hương, Thủy vân cơ sở dữ liệu quan hệ bằng kỹ thuật tối ưu, Kỷ
yếu hội thảo Quốc gia lần thứ XII: Một số vấn đề chọn lọc của Công nghệ thông tin và
truyền thông, Đồng Nai, 05-06 tháng 8 năm 2009, (NXB Khoa học và Kỹ thuật, Hà Nội (2010)
443–457).
[15] Lưu Thị Bích Hương, Bùi Thế Hồng, Bảo vệ bản quyền công khai cho các cơ sở dữ liệu, Kỷ
yếu hội thảo Quốc gia lần thứ XIII: Một số vấn đề chọn lọc của Công nghệ thông tin và
truyền thông, Hưng Yên, 19-20 tháng 8 năm 2010, (NXB Khoa học và Kỹ thuật, Hà Nội (2011)
41–50).
Ngày nhận bài 23 - 8 - 2012
Ngày lại sau sửa ngày 07 - 4 - 2013

File đính kèm:

  • pdfmot_luoc_do_thuy_v_n_co_so_du_lieu_quan_he_voi_du_lieu_ph_n.pdf