Đảm bảo sự toàn vẹn của cơ sở dữ liệu quan hệ với các dữ liệu kiểu văn bản bằng kỹ thuật thủy vân

Abstract. The paper proposes a new watermarking scheme for integrity protection of relational

databases with text data. This scheme generates a watermark from the vowels, consonants and special

characters of the text attributes then embeds into attributes which are low impact. The embedded

characters do not affect much for these attributes but can help for detection any tempering in the

relation database.

pdf 11 trang phuongnguyen 13180
Bạn đang xem tài liệu "Đảm bảo sự toàn vẹn của cơ sở dữ liệu quan hệ với các dữ liệu kiểu văn bản bằng kỹ thuật thủy vân", để 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 bảo sự toàn vẹn của cơ sở dữ liệu quan hệ với các dữ liệu kiểu văn bản bằng kỹ thuật thủy vân

Đảm bảo sự toàn vẹn của cơ sở dữ liệu quan hệ với các dữ liệu kiểu văn bản bằng kỹ thuật thủy vân
Tạp chí Tin học và Điều khiển học, T.30, S.1 (2014), 52–62
ĐẢM BẢO SỰ TOÀN VẸN CỦA CƠ SỞ DỮ LIỆU QUAN HỆ
VỚI CÁC DỮ LIỆU KIỂU VĂN BẢN BẰNG KỸ THUẬT THỦY VÂN
LƯU THỊ BÍCH HƯƠNG1, BÙI THẾ HỒNG2
1Khoa Công nghệ thông tin, Trường ĐHSP Hà Nội 2; {luuthibichhuong@hpu2.edu.vn}
2Viện Công nghệ Thông tin, Viện Hàn lâm Khoa học & Công nghệ Việt Nam;
{hong@ioit.ac.vn}
Tóm tắt. Bài báo này đề xuất một lược đồ thủy vân mới dùng để đảm bảo sự toàn vẹn cho các cơ
sở dữ liệu quan hệ có các thuộc tính kiểu văn bản. Lược đồ này tạo ra một thủy vân từ các âm tố và
các ký tự đặc biệt của các thuộc tính để nhúng vào một thuộc tính kiểu văn bản có tác động thấp.
Việc chèn một vài ký tự thủy vân không làm ảnh hưởng nhiều tới giá trị của các thuộc tính tác động
thấp nhưng lại giúp phát hiện được các giả mạo và xuyên tạc trong cơ sở dữ liệu đã được thủy vân.
Từ khóa. Thủy vân, thuộc tính không phải số.
Abstract. The paper proposes a new watermarking scheme for integrity protection of relational
databases with text data. This scheme generates a watermark from the vowels, consonants and special
characters of the text attributes then embeds into attributes which are low impact. The embedded
characters do not affect much for these attributes but can help for detection any tempering in the
relation database.
Key words. Watermark, non-Numeric attribute.
1. GIỚI THIỆU
Ngày nay, việc sử dụng các cơ sở dữ liệu (CSDL), đặc biệt là CSDL quan hệ trong các
ứng dụng ngày càng tăng. Tốc độ phát triển Internet và các công nghệ có liên quan hiện đang
đưa đến một sức ép khá nặng nề cho những người bảo vệ dữ liệu trong việc tạo ra các dịch vụ
(thường được gọi là các dịch vụ Web hoặc các tiện ích điện tử) cho phép người dùng có thể
tìm kiếm và truy cập cơ sở dữ liệu từ xa hoặc trong các dịch vụ thuê khoán bên ngoài. Mặc
dù các xu hướng này là hữu ích cho người dùng cuối nhưng nó cũng bộc lộ mối nguy hiểm
cho những nhà cung cấp dữ liệu trước những kẻ trộm cắp và giả mạo dữ liệu. Do đó, những
nhà cung cấp dữ liệu đòi hỏi phải có các công cụ hỗ trợ cho việc bảo vệ bản quyền sản phẩm
của họ, nhận dạng được những bản sao các cơ sở dữ liệu bị đánh cắp hoặc bị xuyên tạc với ý
đồ xấu [1].
Một trong những công cụ rất hữu ích dùng để bảo vệ bản quyền và chống giả mạo đối với
các cơ sở dữ liệu quan hệ đó là kỹ thuật thủy vân số [1, 9, 10]. Hiện tại, đã có khá nhiều lược
đồ thủy vân được đề xuất, trong đó có thể chia thành hai lớp. Một lớp là các lược đồ thủy vân
dùng để bảo vệ bản quyền cho các cơ sở dữ liệu quan hệ, điển hình là lược đồ thủy vân dựa
vào các bit ít ý nghĩa nhất (LSB) [11], lược đồ thủy vân dựa vào các bit ý nghĩa nhất (MSB)
ĐẢM BẢO SỰ TOÀN VẸN CỦA CƠ SỞ DỮ LIỆU QUAN HỆ 53
[2] và lược đồ thủy vân dựa vào phương pháp tối ưu hóa các ràng buộc [8]. Lớp thứ hai là các
lược đồ thủy vân dùng để đảm bảo sự toàn vẹn cho các cơ sở dữ liệu quan hệ, như lược đồ
thủy vân với dữ liệu phân loại [6], lược đồ thủy vân với dữ liệu kiểu số [5], hay lược đồ thủy
vân với dữ liệu không phải kiểu số [3]. Trong bài báo [10] chúng tôi đã tiến hành nghiên cứu
vấn đề này và đã đề xuất được một lược đồ thủy vân dễ vỡ dùng để phát hiện các giả mạo
trong các cơ sở dữ liệu quan hệ. Đây là một lược đồ dùng để đảm bảo sự toàn vẹn và khoanh
vùng các giả mạo trong những cơ sở dữ liệu quan hệ với các thuộc tính là kiểu số. Tuy nhiên,
trong thực tế lại có khá nhiều cơ sở dữ liệu quan hệ mà các dữ liệu của chúng lại có các kiểu
không phải kiểu số [3, 6], ví dụ như kiểu văn bản, kiểu memo,... Bài báo này sẽ nghiên cứu
việc đảm bảo sự toàn vẹn cho các cơ sở dữ liệu có các thuộc tính kiểu văn bản bằng thủy vân.
Trong [3], đã đưa ra một lược đồ thủy vân cho dữ liệu không phải số. Lược đồ này đã sử
dụng một khóa bí mật được xây dựng từ các bộ trong quan hệ và các thuộc tính tác động
thấp. Tuy nhiên, nếu biết được thuật toán sinh khóa thì có thể dễ dàng tìm được khóa bí mật
cũng như ma trận thủy vân và vì thế lược đồ này tỏ ra không mấy an toàn.
Khắc phục những nhược điểm đó, bài báo sẽ đề xuất một lược đồ thủy vân mới dùng để
bảo vệ sự toàn vẹn cho các cơ sở dữ liệu quan hệ với dữ liệu kiểu văn bản. Trong lược đồ này,
việc tính ma trận thủy vân dựa vào tư tưởng của [3]. Điểm khác biệt giữa hai lược đồ là lược
đồ đề xuất đưa thêm vào một tham số khóa thủy vân và một phương pháp mới dùng để xác
định các bộ được nhúng.
Trong phần tiếp theo bài báo sẽ trình bày một số định nghĩa cần thiết cho quá trình xây
dựng các thuật toán. Mục 3 trình bày tư tưởng của lược đồ mới, các thuật toán nhúng thủy
vân, phát hiện thủy vân và xác minh sự toàn vẹn của quan hệ. Mục 4 chứng minh tính đúng
đắn của các thuật toán và cuối cùng là phần kết luận.
2. MỘT SỐ ĐỊNH NGHĨA
Trong một lược đồ quan hệ, có một số thuộc tính có ý nghĩa quan trọng và một số thuộc
tính khác có ảnh hưởng không lớn đến giá trị sử dụng cũng như ý nghĩa thực tế. Sau đây sẽ
đưa ra hai định nghĩa để làm rõ hơn về các loại thuộc tính này.
Định nghĩa 1. (Thuộc tính có tác động cao) Một thuộc tính được gọi là thuộc tính tác động
cao hay còn gọi là thuộc tính có ý nghĩa quan trọng nếu nó không cho phép bất kỳ một thay
đổi nào.
Định nghĩa 2. (Thuộc tính có tác động thấp) Một thuộc tính được gọi là thuộc tính tác
động thấp hay còn gọi là thuộc tính ít ý nghĩa nếu nó chấp nhận những thay đổi nhỏ.
Ví dụ, trong một lược đồ quan hệ về nhân sự thì các thuộc tính số chứng minh thư, họ
tên, năm sinh, giới tính, ngày tăng lương là những thuộc tính quan trọng vì bất cứ một thay
đổi nào đối với các thuộc tính này đều ảnh hưởng tới đương sự. Các thuộc tính như quê quán,
nơi sinh có ảnh hưởng không lớn đối với đương sự, vì nếu giả sử có thêm một ký tự vào các
thuộc tính này thì cũng không dẫn đến hiểu lầm hoặc sai lệch nào.
3. LƯỢC ĐỒ THỦY VÂN
3.1. Tư tưởng của lược đồ
Như đã trình bày trong mục 1, có khá nhiều bài báo tập trung vào nghiên cứu các kỹ thuật
thủy vân cơ sở dữ liệu quan hệ có các thuộc tính kiểu số [1, 2, 4, 7] và mới chỉ có một số tác
giả nghiên cứu về thủy vân các CSDL quan hệ có các thuộc tính không phải kiểu số [5, 6].
54 LƯU THỊ BÍCH HƯƠNG, BÙI THẾ HỒNG
Ý tưởng của lược đồ trong bài báo [3] là sinh một khóa bí mật dựa vào tất cả các thuộc
tính không phải số, sau đó nhúng khóa này vào các thuộc tính tác động thấp. Từ ý tưởng này
nhóm tác giả đã phát triển một lược đồ thủy vân mới, trong đó có các thuộc tính có ý nghĩa
quan trọng được chú ý bảo vệ.
Lược đồ này được xây dựng dựa vào một số nhận xét sau đây:
- Trong một lược đồ quan hệ, bao giờ cũng tồn tại một số thuộc tính có ý nghĩa quan trọng
và một số thuộc tính khác có ảnh hưởng không lớn đến giá trị sử dụng cũng như ý nghĩa thực
tế.
- Những thuộc tính có ý nghĩa quan trọng thường hay bị tấn công, xuyên tạc, vì vậy cần
phải phát hiện được những thay đổi đối với các giá trị của các thuộc tính này. Để làm được
điều đó, cần phải sinh ra được một xâu thủy vân có thể đặc trưng được cho các giá trị thuộc
tính có ý nghĩa quan trọng để nhúng vào các thuộc tính có ảnh hưởng không lớn đến giá trị
sử dụng và ý nghĩa thực tế. Khi có bất kỳ một thay đổi nào đối với giá trị của các thuộc tính
có ý nghĩa quan trọng thì giá trị đặc trưng của chúng cũng bị thay đổi theo. Đây chính là dấu
hiệu để có thể phát hiện xem cơ sở dữ liệu có còn toàn vẹn hay không.
Bảng 1. Các ký hiệu được sử dụng trong lược đồ thủy vân
Ký hiệu Ý nghĩa
R Lược đồ quan hệ
r Quan hệ r thuộc lược đồ R
ri Bộ thứ i của quan hệ r
ri.Lj Giá trị của thuộc tính Lj thuộc bộ ri
ω Số bộ trong quan hệ r
K Khóa thủy vân
n Số thuộc tính kiểu văn bản có tác động thấp trong quan hệ
m Số thuộc tính kiểu văn bản có tác động cao trong quan hệ
Hi Thuộc tính kiểu văn bản có tác động cao thứ i
Li Thuộc tính kiểu văn bản có tác động thấp thứ i
W Ma trận thủy vân
ei Giá trị thứ i trên đường chéo chính của ma trận thủy vân W
Wj Ký tự thủy vân thứ j
ATOC() Hàm chuyển mã ASCII thành ký tự
Substring(x, p, q) Hàm lấy ra q ký tự của x từ vị trí thứ p
- Việc nhúng thủy vân vào những thuộc tính có tác động thấp sẽ không làm ảnh hưởng
lớn đến ý nghĩa cũng như giá trị sử dụng của cơ sở dữ liệu. Để giữ bí mật cho thủy vân và
tăng độ nhạy cảm khi xác minh sự toàn vẹn của cơ sở dữ liệu cần phải sử dụng thêm một
khóa thủy vân và một hàm HASH.
Lược đồ thủy vân đề xuất được thiết kế để đảm bảo sự toàn vẹn cho các quan hệ thuộc
lược đồ quan hệ có dạng:
R(H1, H2, ...,Hm, L1, L2, ..., Ln)
trong đó, H1, H2, ...,Hm là các thuộc tính kiểu văn bản có tác động cao còn L1, L2, ..., Ln là
các thuộc tính kiểu văn bản có tác động thấp.
Trong lược đồ thủy vân đề xuất có sử dụng một số ký hiệu được liệt kê trong Bảng 1.
ĐẢM BẢO SỰ TOÀN VẸN CỦA CƠ SỞ DỮ LIỆU QUAN HỆ 55
Lược đồ thủy vân dùng để đảm bảo sự toàn vẹn cho các cơ sở dữ liệu quan hệ có các thuộc
tính kiểu văn bản được thực hiện dựa vào 2 thuật toán:
- Thuật toán nhúng thủy vân vào quan hệ.
- Thuật toán phát hiện thủy vân và xác minh sự toàn vẹn.
3.2. Thuật toán nhúng thủy vân
3.2.1. Sinh thủy vân từ các bộ của quan hệ
Đầu tiên chúng ta sẽ sinh thủy vân từ các bộ của quan hệ bằng cách dựa vào khóa thủy
vân, các thuộc tính kiểu văn bản có tác động cao và các thuộc tính kiểu văn bản có tác động
thấp.
- Đối với m thuộc tính có tác động cao, tính tổng mã ASCII của tất cả các nguyên âm,
phụ âm và ký tự đặc biệt trong toàn bộ các thuộc tính [3] và ký hiệu cụ thể là:
V H =
∑
ij{
∑
ASCII của các nguyên âm thuộc ri.Hj , 1 ≤ i ≤ ω; 1 ≤ j ≤ m},
CH =
∑
ij{
∑
ASCII của các phụ âm thuộc ri.Hj , 1 ≤ i ≤ ω; 1 ≤ j ≤ m},
PH =
∑
ij{
∑
ASCII của các ký tự đặc biệt của ri.Hj , 1 ≤ i ≤ ω; 1 ≤ j ≤ m}.
- Đối với n thuộc tính kiểu văn bản có tác động thấp, tính tổng mã ASCII của các nguyên
âm, phụ âm, ký tự đặc biệt và tổng mã ASCII của tất cả các ký tự theo từng thuộc tính [3].
V Lj =
∑
i{
∑
ASCII của các nguyên âm của ri.Lj , 1 ≤ i ≤ ω},
CLj =
∑
i{
∑
ASCII của các phụ âm của ri.Lj , 1 ≤ i ≤ ω},
PLj =
∑
i{
∑
ASCII của các ký tự đặc biệt của ri.Lj , 1 ≤ i ≤ ω},
ALj =
∑
i{
∑
ASCII của tất cả ký tự của ri.Lj , 1 ≤ i ≤ ω}.
- Xây dựng một ma trận đặt tên là D bao gồm 4 hàng và n cột với các thành phần là
Di1, Di2, Di3, Di4 (với i = 1, 2, ..., n) được tính như sau [3]
Di1 = V
H + V Li ,
Di2 = C
H + CLi ,
Di3 = P
H + PLi ,
Di4 = A
L
i .
- Tiến hành chuẩn hóa ma trận D để thu được ma trận chuẩn hóa N theo công thức [3]
Nij =
Dij√∑
D2ij
.
- Xây dựng ma trận thủy vânW bằng cách nhân ma trận chuẩn hóa N với ma trận chuyển
vị NT của nó. Ma trận W thu được là một ma trận vuông kích thước 4 × 4 với các giá trị
trên đường chéo chính là e1, e2, e3, e4. Đây chính là các giá trị đặc trưng của ma trận này [3].
- Điểm khác của lược đồ đề xuất là dùng hàm HASH để băm các giá trị ej sau khi ghép
với khóa thủy vân K và chuyển các giá trị HASH thành các ký tự thủy vân Wj theo công thức
Wj = ATOC(HASH(ej‖K)MOD 224 + 32); j = 1, 2, 3, 4
trong đó, ATOC() là hàm chuyển mã ASCII thành ký tự tương ứng. Sở dĩ phải cộng thêm
32 là vì 31 ký tự đầu tiên trong bảng mã ASCII là các ký tự không in ra được. Khóa K là
bí mật và đối xứng, chỉ người chủ cơ sở dữ liệu được biết và được dùng ở cả quá trình nhúng
56 LƯU THỊ BÍCH HƯƠNG, BÙI THẾ HỒNG
thủy vân và phát hiện thủy vân. Hàm HASH được sử dụng ở đây để đảm bảo rằng khi có
bất cứ một thay đổi nào xảy ra trong cơ sở dữ liệu thì các ký tự thủy vân Wj cũng thay đổi
theo. Đây chính là điều mong muốn đối với các lược đồ thủy vân dùng để đảm bảo sự toàn
vẹn của các cơ sở dữ liệu quan hệ.
3.2.2. Nhúng thủy vân vào các thuộc tính tác động thấp
Có thể có một số lựa chọn để nhúng các ký tự thủy vân đã sinh trên đây tùy thuộc vào
giá trị của n (số các thuộc tính kiểu văn bản có tác động thấp). Nếu n nhỏ hơn hoặc bằng 4
thì lấy n ký tự đầu tiên của thủy vân. Nếu n lớn hơn 4 thì lặp lại các ký tự thủy vân cho đủ
số n ký tự. Cụ thể là:
- Đầu tiên, tiến hành lựa chọn ký tự để nhúng vào trong thuộc tính:
+ Nếu n ≤ 4, đặt w∗i = Wi (i = 1, 2, ..., n).
+ Nếu n > 4, đặt w∗i = W(i MOD 4)+1 (i = 1, 2, ..., n).
- Sau đó, tiến hành xác định vị trí nhúng trong các thuộc tính bằng cách sử dụng hàm
HASH và khóa K.
3.2.3. Thuật toán nhúng thủy vân
Thuật toán 1 dưới đây là giả mã cho qui trình sinh thủy vân và qui trình nhúng thủy vân
vào các quan hệ thuộc lược đồ quan hệ R.
Thuật toán 1. Nhúng thủy vân
Input:
- Quan hệ r thuộc lược đồ R(H1, H2, ...,Hm, L1, L2, ...., Ln). Trong đó, H1, H2, ...,Hm là
các thuộc tính kiểu văn bản có tác động cao, còn L1, L2, ...., Ln là các thuộc tính kiểu văn bản
có tác động thấp.
- Khóa thủy vân K.
Output: Quan hệ r đã nhúng thủy vân.
1. V H = CH = PH = 0
2. for i = 1 to ω do // Tính tổng các mã ASCII của m thuộc tính tác động cao
3. for j = 1 to m do
4. V H = V H +
∑
ASCII của các nguyên âm thuộc ri.Hj
5. CH = CH +
∑
ASCII của các phụ âm thuộc ri.Hj
6. PH = PH +
∑
ASCII của các ký tự đặc biệt của ri.Hj
7. end for
8. end for
9. for j = 1 to n do
10. V Lj = C
L
j = P
L
j = A
L
j // Khởi tạo các tổng mã ASCII cho từng cột
11. for i = 1 to ω do // Tính tổng các mã ASCII cho từng thuộc tính tác động thấp
12. V Lj = V
L
j + ΣASCII của các nguyên âm của ri.Lj
13. CLj = C
L
j + ΣASCII của các phụ âm của ri.Lj
14. PLj = P
L
j + ΣASCII của các ký tự đặc biệt của ri.Lj
15. ALj = A
L
j + ΣASCII của tất cả ký tự của ri.Lj
16. end for
ĐẢM BẢO SỰ TOÀN VẸN CỦA CƠ SỞ DỮ LIỆU QUAN HỆ 57
17. end for
18. for i = 1 to n do // Xây dựng ma trận D
19. Di1 = V
L
i + V
H
20. Di2 = C
L
i + C
H
21. Di3 = P
L
i + P
H
22. Di4 = A
L
i
23. end for
24. for i = 1 to n do // Tìm ma trận chuẩn hóa N của D và ma trận chuyển vị NT
25. for j = 1 to 4 do
26. Nij = Dij/SQRT(D
2
i1 + D
2
i2 + D
2
i3 + D
2
i4) // Chuẩn hóa
27. NTij = Nji // Chuyển vị
28. end for
29. end for
30. W = N ∗NT // Sinh các ký tự thủy vân
31. for j = 1 to 4 do
32. Wj= ATOC(HASH(ej‖K) MOD 224) + 32) //Ký tự thủy vân
33. end for
34. Sắp thứ tự Wj theo thứ tự từ điển
35. // Nhúng các ký tự thủy vân Wj vào các thuộc tính tác động thấp
36. XacDinhKyTuNhung(n) // Chọn ký tự trong xâu Wj để nhúng
37. ChuoiVTri = ExtractBit (HASH (K), ω)
38. for j = 1 to n do // Xác định các bộ được nhúng
39. for i = 1 to ω do
40. if (ChuoiVTri i = 1) then
41. Chèn w∗j vào ô ri.Lj
42. end if
43. end for
44. end for
Giả sử có trung bình p kí tự trong mỗi một thuộc tính của một bộ và mỗi bộ có m + n
thuộc tính. Khi đó, việc tính tổng các ký tự có trong một bộ tốn khoảng p(m+n) đơn vị thời
gian. Do p,m, n là hằng số đối với quan hệ nên độ phức tạp tính toán của Thuật toán 1 phụ
thuộc vào số bộ của quan hệ hay O(ω).
Trong Thuật toán 1 đã sử dụng hàm xác định các ký tự thủy vân được nhúng vào các
thuộc tính kiểu văn bản tác động thấp và hàm trích L bit từ xâu bit H.
Function XacDinhKyTuNhung(int n)
1. if n ≤ 4 then
2. for i = 1 to n do
3. w∗i = Wi
4. end for
5. else
58 LƯU THỊ BÍCH HƯƠNG, BÙI THẾ HỒNG
6. for i = 1 to n do
7. w∗i = W(i MOD 4)+1
8. end for
9. end if
Function ExtractBit(H,L)
1. if length (H) ≥ L then
2. ChuoiVTri = {L bit trái nhất của H}
3. else m = L−length (H)
4. ChuoiVTri = H ghép với extractBits (H,m)
5. end if
6. Return ChuoiVTri
3.3. Phát hiện thủy vân và xác minh sự toàn vẹn
Quan hệ r sau khi nhúng thủy vân có thể lưu thông bình thường trong môi trường công
cộng. Khi có nghi ngờ về một sự xuyên tạc hay giả mạo nào đó đối với quan hệ này, người chủ
sở hữu quan hệ có thể tiến hành xác minh bằng thuật toán phát hiện thủy vân. Thuật toán
phát hiện thủy vân của lược đồ được xây dựng trên ý tưởng phát hiện mù và dựa vào khóa
thủy vân K đã được sử dụng khi nhúng thủy vân.
Giả sử r′ là một quan hệ thuộc lược đồ R. Cần kiểm tra xem r′ có phải là bản giả mạo
của quan hệ r đã thủy vân hay không. Thuật toán phát hiện thủy vân và xác minh sự toàn
vẹn được chia làm 2 phần cơ bản:
- Thực hiện qui trình sinh thủy vân trên r′ giống như đã thực hiện trên r trong thuật toán
nhúng thủy vân. Gọi các ký tự được sinh ra từ r′ là Wj với j = 1, 2, 3, 4.
- Theo các qui tắc nhúng thủy vân vào các thuộc tính tác động thấp trong Thuật toán 1, trích
ra các ký tự đã nhúng và gọi các ký tự này là W ′j với j = 1, 2, 3, 4.
So sánh các ký tự trong hai xâu này với nhau. Nếu chúng trùng khớp thì r′ chính là r và
không bị sửa đổi. Nếu ngược lại thì kết luận là r′ chính là r nhưng đã bị sửa đổi.
Thuật toán 2 dưới đây là giả mã cho qui trình phát hiện thủy vân để xác minh xem một
quan hệ r thuộc lược đồ quan hệ R có phải là quan hệ r đã được thủy vân bằng Thuật toán
1 và có còn toàn vẹn hay không?
Thuật toán 2. Thuật toán phát hiện thủy vân và xác minh sự toàn vẹn
Input:
- Quan hệ r′ thuộc lược đồ R(H1, H2, ...,Hm, L1, L2, ...., Ln), trong đó H1, H2, ...,Hm là các
thuộc tính kiểu văn bản có tác động cao, còn L1, L2, ...., Ln là các thuộc tính kiểu văn bản có
tác động thấp.
- Khóa thủy vân K.
Output: Quan hệ r toàn vẹn hoặc quan hệ r đã bị sửa đổi.
1. // Sinh thủy vân từ r′
2. V H = CH = PH = 0
3. for i = 1 to ω do //Tính tổng các mã ASCII của m thuộc tính tác động cao
4. for j = 1 to m do
5. V H = V H + ΣASCII của các nguyên âm thuộc r′i.Hj
ĐẢM BẢO SỰ TOÀN VẸN CỦA CƠ SỞ DỮ LIỆU QUAN HỆ 59
6. CH = CH + ΣASCII của các phụ âm thuộc r′i.Hj
7. PH = PH + ΣASCII của các ký tự đặc biệt của r′i.Hj
8. end for
9. end for
10. for j = 1 to n do
11. V Lj = C
L
j = P
L
j = A
L
j
12. for i = 1 to ω do //Tính tổng các mã ASCII cho từng thuộc tính tác động thấp
13. V Lj = V
L
j + ΣASCII của các nguyên âm của r
′
i.Lj
14. CLj = C
L
j + ΣASCII của các phụ âm của r
′
i.Lj
15. PLj = P
L
j + ΣASCII của các ký tự đặc biệt của r
′
i.Lj
16. ALj = A
L
j + ΣASCII của tất cả ký tự của r
′
i.Lj
17. end for
18. end for
19. for i = 1 to n do //Xây dựng ma trận D
20. Di1 = V
L
i + V
H
21. Di2 = C
L
i + C
H
22. Di3 = P
L
i + P
H
23. Di4 = A
L
i
24. end for
25. for i = 1 to n do //Tìm ma trận chuẩn hóa N của D và ma trận chuyển vị NT
26. for j = 1 to 4 do
27. Nij = Dij/ SQRT(D
2
i1 + D
2
i2 + D
2
i3 + D
2
i4) //Chuẩn hóa
28. NTij = Nji //Chuyển vị
29. end for
30. end for
31. W = N ∗NT //Sinh các ký tự thủy vân
32. for j = 1 to 4 do
33. Wj = ATOC(HASH(ej‖K) MOD 224) + 32) //Ký tự thủy vân
34. end for
35. Sắp thứ tự Wj
36. XacDinhKyTuNhung(n); // Xác định các ký tự thủy vân w∗i (i = 1, ..., n)
37. ChuoiVTri = ExtractBit (HASH(K), ω)
38. for i = 1 to n do
39. for j = 1 to 4 do
40. if (ChuoiVTrij = 1) then
41. w′i =substring (r
′
j .Li, j MOD (length (r
′
j .Li)− 1), 1)
42. sort (w′i)
43. end for
44. end for
60 LƯU THỊ BÍCH HƯƠNG, BÙI THẾ HỒNG
45. for i = 1 to n do // Kiểm tra sự toàn vẹn
46. if (w∗i ! = w
′
i) then
47. Quan hệ r đã bị sửa đổi
48. end if
49. end for
50. Quan hệ r toàn vẹn
Tương tự như Thuật toán 1, Thuật toán 2 có độ phức tạp tính toán là O(ω).
4. TÍNH ĐÚNG ĐẮN
Để chứng minh tính đúng đắn của lược đồ đề xuất chúng tôi đưa ra các định lý sau.
Định lý 1. Lược đồ quan hệ R có các thuộc tính văn bản có tác động cao và các thuộc tính
tác động thấp được nhúng thủy vân bằng Thuật toán 1.
Chứng minh. Trong thuật toán 1, đầu tiên sẽ tìm thủy vân từ các bộ của quan hệ bằng cách
dựa vào khóa thủy vân, các thuộc tính kiểu văn bản có tác động cao và các thuộc tính kiểu
văn bản có tác động thấp. Sau đó, sẽ nhúng thủy vân vào các thuộc tính văn bản có tác động
thấp. Do đó để chứng minh Định lý 1 ta cần phải tìm được ma trận thủy vân W và cách
nhúng thủy vân W vào thuộc tính tác động thấp. Thật vậy:
- Đối với m thuộc tính có tác động cao, tính tổng mã ASCII của tất cả các nguyên âm,
phụ âm và ký tự đặc biệt trong toàn bộ các thuộc tính, cụ thể là:
V H = Σij{ΣASCII của các nguyên âm thuộc ri.Hj , 1 ≤ i ≤ ω; 1 ≤ j ≤ m}
CH = Σij{ΣASCII của các phụ âm thuộc ri.Hj , 1 ≤ i ≤ ω; 1 ≤ j ≤ m}
PH = Σij{ΣASCII của các ký tự đặc biệt của ri.Hj , 1 ≤ i ≤ ω; 1 ≤ j ≤ m}
- Đối với n thuộc tính kiểu văn bản có tác động thấp, tính tổng mã ASCII của các nguyên
âm, phụ âm, ký tự đặc biệt và tổng mã ASCII của tất cả các ký tự theo từng thuộc tính, cụ
thể là:
V Lj = Σi{ΣASCII của các nguyên âm của ri.Lj , 1 ≤ i ≤ ω}
CLj = Σi{ΣASCII của các phụ âm của ri.Lj , 1 ≤ i ≤ ω}
PLj = Σi{ΣASCII của các ký tự đặc biệt của ri.Lj , 1 ≤ i ≤ ω}
ALj = Σi{ΣASCII của tất cả ký tự của ri.Lj , 1 ≤ i ≤ ω}
- Ma trận D bao gồm 4 hàng và n cột với các thành phần là Di1, Di2, Di3, Di4 (với
i = 1, 2, ..., n) được tính như sau:
Di1 = V
H + V Li , Di2 = C
H + CLi , Di3 = P
H + PLi , Di4 = A
L
i .
- Chuẩn hóa ma trận D để thu được ma trận chuẩn hóa N theo công thức:
W = N ×NT . (1)
- Ma trận W có các giá trị trên đường chéo chính là e1, e2, e3, e4.
- Dùng hàm HASH các giá trị ej sau khi ghép với khóa thủy vân K. Chuyển các giá trị
HASH thành các ký tự thủy vân Wj theo công thức:
Wj = ATOC (HASH (ej‖K) MOD 224 + 32); j = 1, 2, 3, 4.
- Tiến hành lựa chọn ký tự để nhúng vào trong thuộc tính:
ĐẢM BẢO SỰ TOÀN VẸN CỦA CƠ SỞ DỮ LIỆU QUAN HỆ 61
+ Nếu n ≤ 4, w∗i = Wi (i = 1, 2, ..., n).
+ Nếu n > 4, w∗i = W(i MOD 4)+1, (i = 1, 2, ..., n).
- Xác định vị trí nhúng trong các thuộc tính bằng cách sử dụng hàm HASH với khóa K
ChuoiVTri = ExtractBit (HASH (K), ω). (2)
Từ (1) và (2) ta có điều phải chứng minh. 
Định lý 2. Thuật toán 2 xác định sự toàn vẹn của quan hệ r nếu quan hệ r không bị sửa
đổi.
Chứng minh. Để chứng minh định lý ta sẽ chứng minh Wj và W ′j là trùng khớp. Thật vậy:
- Dựa vào m thuộc tính tác động cao và n thuộc tính tác động thấp tính được ma trận D
bao gồm 4 hàng và n cột với các thành phần là Di1, Di2, Di3, Di4 (với i = 1, 2, ..., n) với
Di1 = V
H + V Li , Di2 = C
H + CLi , Di3 = P
H + PLi , Di4 = A
L
i ,
trong đó V H , V Li , C
H , CLi , P
H , PLi , A
L
i là tổng mã ASCII của các nguyên âm, phụ âm, ký tự
đặc biệt và tổng mã ASCII của tất cả các ký tự theo từng thuộc tính. Suy ra
Wj(j = 1, 2, 3, 4). (3)
- Theo Thuật toán 2, ta có
w′i =substring (r
′
j .Li, j MOD (length (r
′
j .Li)− 1), 1)
Hay w′i sẽ lấy ra chuỗi con gồm một ký tự từ r
′
j .Li. Suy ra bit thủy vân W
′
j (j = 1, 2, 3, 4).
(4)
- Mặt khác, theo giả thiết quan hệ r không bị sửa đổi nên suy ra r′j .Li trùng với rj .Li. (5)
Từ (3), (4) và (5) suy ra Wj trùng với W
′
j . 
5. KẾT LUẬN
Cài đặt và thử nghiệm lược đồ đề xuất với dữ liệu thực tế, kết quả cho thấy nếu sau khi
thủy vân mà không có bất kỳ một thay đổi nào đối với quan hệ thì chương trình luôn khẳng
định là quan hệ toàn vẹn. Ngược lại, chỉ cần thay đổi trong bất kỳ thuộc tính nào của quan
hệ thì kết quả là quan hệ không còn toàn vẹn.
Lược đồ được đề xuất dùng để đảm bảo sự toàn vẹn của cơ sở dữ liệu quan hệ với các
thuộc tính kiểu văn bản có những ưu điểm sau đây:
- Bền vững: Các giá trị đặc trưng của quan hệ có thể được nhúng trong nhiều thuộc tính có
tác động thấp ở khắp nơi trong quan hệ. Vì vậy rất khó để có thể gỡ bỏ hết các ký tự thủy
vân đã nhúng.
- Nhạy cảm: Luôn phát hiện được bất kỳ một thay đổi nào đối với các giá trị thuộc tính vì
các ký tự thủy vân được sinh ra từ kết quả của hàm HASH đối với mọi giá trị thuộc tính của
quan hệ.
- Phát hiện mù: Quá trình xác minh sự toàn vẹn của quan hệ không đòi hỏi quan hệ gốc và
thủy vân gốc.
- Tính hiệu quả: lược đồ thủy vân dễ dàng đưa vào áp dụng trong thực tế vì các thuật toán
khá đơn giản nhưng lại hiệu quả trong việc xác minh tính toàn vẹn và phát hiện xuyên tạc.
Nhược điểm của lược đồ là dễ bị lộ do các ký tự thủy vân được nhúng trực tiếp và hiện
trong các thuộc tính kiểu văn bản có tác động thấp.
62 LƯU THỊ BÍCH HƯƠNG, BÙI THẾ HỒNG
TÀI LIỆU THAM KHẢO
[1] R. Agrawal, P. J. Haas, and J. Kiernan, A system for watermarking relational databases, Pro-
ceedings of the 2003 ACM SIGMOD International Conference on Management of Data
(SIGMOD ’03), San Diego, California. (ACM Press) 2003 (674–674).
[2] A. Al-Haj, and A. Odeh, Robust and blind watermarking of relational database systems, Journal
of Computer Science 4 (12) (2008) 1024–1029.
[3] R. Bedi, A. Thengade, V. Wadhai, A new watermarking approach for non numeric relational
database, International Journal of Computer Applications (0975 – 8887) 13 (7) (2011)
37–40.
[4] Ch. Arathi, literature survey on distortion based watermarking techniques for databases, Inter-
national Journal of Computer Science & Communication Networks 2 (4) (2012) 456–463.
[5] H. Guo, Y. Li, A. Liu, S. Jajodia, A fragile watermarking scheme for detecting malicious modi-
fications of database relations, Information Sciences 176 (10) (2006) 1350–1378.
[6] 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, USA ( ACM) 2004 (73–82).
[7] 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ệ, trường Đại học Thái Nguyên (4) (2009) 56–65.
[8] 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, Biên Hòa, 05-06 tháng 8 năm 2009 (NXB Khoa học và Kỹ thuật, Hà Nội, 2011
(443–457)).
[9] 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 quan hệ,
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)).
[10] Lưu Thị Bích Hương, Bùi Thế Hồng, Sử dụng thủy vân dễ vỡ để phát hiện và khoanh vùng giả
mạo đối với cơ sở dữ liệu quan hệ, Kỷ yếu Hội thảo Quốc gia lần thứ XIV-Một số vấn đề
chọn lọc của Công nghệ Thông tin và Truyền thông, Cần Thơ, 07-08 tháng 10 năm 2011
(NXB Khoa học và Kỹ thuật, Hà Nội, 2012 (449–509)).
[11] Lưu Thị Bích Hương, Thủy vân cơ sở dữ liệu quan hệ bằng kỹ thuật thủy vân dựa vào các bit ít
ý nghĩa nhất, Tạp chí Khoa học Journal of Science, Trường ĐHSP Hà Nội 2 (16) (2011)
81–90.
Ngày nhận bài 22 - 4 - 2013
Nhận lại sau sửa ngày 06 - 01 - 2014

File đính kèm:

  • pdfdam_bao_su_toan_ven_cua_co_so_du_lieu_quan_he_voi_cac_du_lie.pdf