Một thuỷ vân có thể được áp dụng cho một cơ sở dữ liệu quan hệ, chẳng hạn như có các thuộc tính mang một đặc điểm là những thay đổi nhỏ tại một số giá trị của chúng không làm ảnh hưởng đ
Trang 1Mục lục
Mục lục i
Bảng các ký hiệu và chữ viết tắt iv
Danh mục các bảng vi
Danh mục các hình vẽ vi
Mở đầu 1
1 Lý do lựa chọn đề tài 1
2 Đối tượng phạm vi nghiên cứu 2
a Đối tượng nghiên cứu 2
b Phạm vi nghiên cứu 2
3 Phương pháp nghiên cứu 2
4 Ý nghĩa khoa học của đề tài 2
5 Cấu trúc luận văn 2
Chương 1 TỔNG QUAN VỀ THỦY VÂN CƠ SỞ DỮ LIỆU QUAN HỆ 4
1.1 Một số khái niệm cơ bản 4
1.1.1 Cơ sở dữ liệu 4
1.1.2 Mô hình dữ liệu quan hệ 4
1.1.3 Thuộc tính, miền thuộc tính và kiểu thuộc tính 5
1.1.4 Quan hệ, lược đồ quan hệ 6
1.1.5 Khoá của quan hệ 6
1.2 Thủy vân cơ sở dữ liệu quan hệ 7
1.2.1 Thủy vân 7
1.2.2 Thủy vân cơ sở dữ liệu quan hệ 7
1.2.3 Khóa thủy vân 8
1.2.4 Lược đồ thủy vân 9
1.2.5 Sự cần thiết của các kỹ thuật thủy vân cơ sở dữ liệu quan hệ 10
Trang 21.3 Các yêu cầu trên thuỷ vân cơ sở dữ liệu quan hệ 12
1.3.1 Khả năng có thể phát hiện 12
1.3.2 Tính bền vững và dễ vỡ 13
1.3.3 Khả năng cập nhật dữ liệu 13
1.3.4 Tính ẩn và hiện 14
1.3.5 Phát hiện mù 14
1.4 Các ứng dụng chủ yếu của thuỷ vân quan hệ 14
1.5 Các kỹ thuật thuỷ vân cơ sở dữ liệu quan hệ 16
Chương 2 BẢO VỆ SỰ TOÀN VẸN CHO CƠ SỞ DỮ LIỆU QUAN HỆ CÓ CÁC THUỘC TÍNH VĂN BẢN 21
2.1 Đặt vấn đề 21
2.2 Thuật toán nhúng thuỷ vân 22
2.2.1 Sinh thủy vân từ các bộ của lược đồ 22
2.2.2 Chia nhóm các bộ của quan hệ 28
2.2.3 Nhúng thủy vân vào thuộc tính tác động thấp 30
2.2.4 Nhận xét lược đồ sinh thủy vân cải tiến 31
2.3 Thuật toán phát hiện thuỷ vân 32
2.4 Thuật toán xóa thủy vân 33
2.5 Đánh giá lược đồ 33
2.5.1 Lược đồ thủy vân cải tiến 33
2.5.2 Phân tích tính đúng đắn 36
2.6 Kết luận 42
Chương 3 THỬ NGHIỆM VÀ ĐÁNH GIÁ THUẬT TOÁN 43
3.1 Thiết kế chương trình 43
3.1.1 Đặt vấn đề 43
3.2.1 Lược đồ cơ sở dữ liệu 43
Trang 33.2.2 Thiết kế chương trình 45
3.2 Thử nghiệm chương trình 48
3.2.1 Dữ liệu thử nghiệm 48
3.2.2 Kết quả khi nhúng thủy vân 50
3.2.3 Kết quả chạy thử nghiệm thuật toán phát hiện thủy vân 52
3.3 Đánh giá kết quả thử nghiệm 54
Kết luận và hướng phát triển 56
Tài liệu tham khảo 57
Tài liệu tiếng Việt Error! Bookmark not defined Tài liệu tiếng Anh Error! Bookmark not defined
Trang 4Bảng các ký hiệu và chữ viết tắt
r i Quan hệ thứ i thuộc lược đồ R
P Thuộc tính khóa chính của quan hệ
CK Mảng chứa các mã ký tự thủy vân
np Số lượng kí tự thủy vân trong CK
W Mảng chứa vị trí xác định ký tự thủy vân trong CK
t pos Vị trí bộ cần nhúng
n pos Vi tri nhung thuy van trong bo chi ra boi tpos
length(S) Hàm trả về độ dài của một chuỗi ký tự S
insert(S,n,c) Hàm trèn kí tự c vào vị trí n của xâu S
Trang 5LSB Bit ít ý nghĩa nhất (Least Significant Bit) MSB Bit ý nghĩa nhất (Most Significant Bit)
MD5 Thuật toán MD5 (Message Digest algorithm 5)
Trang 6Danh mục các bảng
Bảng 3 1 Một số bộ quan hệ Sinh viên (SINHVIEN) 48
Bảng 3 2 Một số bộ quan hệ Môn học (MON) 48
Bảng 3 3 Một số bộ quan hệ DIEM 49
Bảng 3 4 Bộ trong quan hệ Khóa 49
Bảng 3 5 Bộ trong quan hệ Lop 49
Bảng 3 6 Bộ trong quan hệ ngành 49
Bảng 3 7 Quan hệ sinh viên sau khi nhúng thủy vân 51
Bảng 3 8 Quan hệ môn học sau khi nhúng thủy vân 52
Bảng 3 9 Quan hệ Khóa sau khi nhúng thủy vân 52
Bảng 3 10 Quan hệ lớp sau khi nhúng thủy vân 52
Bảng 3 11 Quan hệ ngành sau khi nhúng thủy vân 52
Bảng 3 12 Kết quả kiểm tra thủy vân khi thêm bộ 53
Bảng 3 13 Kết quả kiểm tra thủy vân khi sửa bộ 54
Bảng 3 14 Kết quả kiểm tra thủy vân khi xóa bộ 54
Danh mục các hình vẽ Hình 1 1 Sơ đồ nhúng thủy vân cơ bản vi
Hình 1 2 Sơ đồ phát hiện thủy vân cơ bản Error! Bookmark not defined Hình 2 1 Quan hệ không nhúng được thủy vân 25
Hình 3 1 Lược đồ cơ sở dữ liệu thử nghiệm 44
Hình 3 2 Giao diện chương trình 45
Hình 3 3 Cửa sổ thông báo kết quả nhúng thủy vân 46
Hình 3 4 Cửa sổ thông báo kiểm tra toàn vẹn lược đồ 46
Hình 3 5 Cửa sổ thông báo lỗi kiểm tra toàn vẹn lược đồ 46
Hình 3 6 Cửa sổ thông báo xóa thủy vân 47
Hình 3 7 Cửa sổ thông báo lỗi khi xóa thủy vân 47
Hình 3 8 Dữ liệu đầu vào 50
Hình 3 9 Kết quả nhúng thủy vân 50
Trang 7Mở đầu
1 Lý do lựa chọn đề tài
Ngày nay, việc chia sẻ dữ liệu trên mạng internet ngày càng phổ biến, điều này tạo điều kiện thuận lợi cho người sử dụng trong việc trao đổi và tìm kiếm thông tin hữu ích Nhưng bên cạnh đó, việc chia sẻ dữ liệu trên mạng tạo nên sức ép đối với các dịch vụ mạng đi kèm (như: dịch vụ lưu trữ, dịch vụ web, …) đồng thời, việc chia sẻ này khiến cho các thông tin được phép quảng bá rộng rãi khiến cho vấn đề bảo vệ bản quyền trước các nguy cơ sao chép và sửa đổi thông tin trở nên phổ biến
Vì vậy, các nhà cung cấp và người sử dụng đòi hỏi cần phải có các công nghệ nhận dạng được các dữ liệu chia sẻ
Trong xu hướng đấy, bảo vệ bản quyền, xác thực thông tin cũng như việc nhận dạng dữ liệu trong cơ sở dữ liệu quan hệ là một vấn đề được đặt ra đối với kỹ thuật thủy vân số Các ứng dụng thực tế của kỹ thuật thủy vân số trên cơ sở dữ liệu quan hệ có ý nghĩa quan trọng đang được nhiều người quan tâm và phát triển
Thủy vân số có hai loại là thủy vân dễ vỡ và thủy vân bền vững:
Thuỷ vân bền vững (Robust watermark): là thuỷ vân tồn tại bền vững cùng với dữ liệu, không dễ dàng bị phá huỷ trước những biến đổi, tấn công lên dữ liệu Các kỹ thuật này thường được dùng trong các ứng dụng bảo vệ bản quyền, chứng minh quyền sở hữu
Thuỷ vân dễ vỡ (Fragile watermark): là thuỷ vân dễ bị biến đổi trước những biến đổi hay tấn công lên dữ liệu Các kỹ thuật này thường được dùng trong các ứng dụng nhận thực thông tin, đảm bảo tính toàn vẹn dữ liệu
Xuất phát từ nhu cầu thực tế và tính chất của thủy vân số, luận văn “Đả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 văn bản bằng kỹ thuật thủy vân số” nghiên cứu lược đồ thủy vân dễ vỡ dùng để bảo vệ sự toàn vẹn
cho các CSDL quan hệ
Trang 82 Đối tượng phạm vi nghiên cứu
a Đối tượng nghiên cứu
Đối tượng nghiên cứu của đề tài là lược đồ thủy vân dễ vỡ áp dụng trên cơ
sở dữ liệu quan hệ
b Phạm vi nghiên cứu
Phạm vi nghiên cứu của để tài là nghiên cứu và xây dựng thuật toán nhúng
và phát hiện thủy vân áp dụng cho thuộc tính văn bản để đảm bảo tính toàn vẹn của
cơ sở dữ liệu quan hệ
Sử dụng công cụ lập trình để cài đặt và chạy thử nghiệm lược đồ
3 Phương pháp nghiên cứu
Phương pháp nghiên cứu chủ yếu là phương pháp tiếp cận lý thuyết, tài liệu
để tìm hiểu tổng quan về kỹ thuật thuỷ vân Đặc biệt là các kỹ thuật về thuỷ vân trên
cơ sở dữ liệu quan hệ
Sử dụng các công cụ lập trình để tạo ra chương trình kiểm chứng Dựa trên kết quả kiểm chứng đó để đưa ra các kết luận nhằm hoàn thành mục tiêu của luận văn
Trong luận văn học viên có sử dụng một phần cơ sở dữ liệu điểm của trường Cao đẳng Phát thanh - truyền hình I, Phủ Lý, Hà Nam trong việc kiểm chứng lược
đồ
4 Ý nghĩa khoa học của đề tài
Mục tiêu của đề tài có ý nghĩa khoa học và có ý nghĩa thực tiễn trong việc bảo vệ sự toàn vẹn đối với các cơ sở dữ liệu quan hệ sau khi đã phân phối hoặc chuyển giao Đồng thời việc bảo vệ sự toàn vẹn này cũng là một vấn đề rất quan trọng trong môi trường ứng dụng dựa trên Internet nhằm phát tán và truyền tải thông tin
5 Cấu trúc luận văn
Luận văn ngoài các phần mở đầu và phần kết luận, luận văn được trình bày thành ba chương như sau
Chương 1: Tổng quan về thủy vân cơ sở dữ liệu quan hệ
Trang 9Nội dung của chương này đề cập đến các kiến thức cơ sở về thủy vân và lược
đồ cơ sở dữ liệu
Chương 2: Bảo vệ sự toàn vẹn cho cơ sở dữ liệu quan hệ có các thuộc tính văn bản
Nội dung của chương đề cập đến việc xây dựng lược đồ thủy vân cho cơ sở
dữ liệu quan hệ và chứng minh tính đúng đắn của nó
Chương 3: Thử nghiệm và đánh giá thuật toán
Nôi dung của chương đề cập đến việc cài đặt và đánh giá thuật toán trên cơ
sở dữ liệu điểm của Trường Cao đẳng Phát thanh – Truyền hình I
Trang 10Chương 1 TỔNG QUAN VỀ THỦY VÂN CƠ SỞ DỮ LIỆU QUAN HỆ 1.1 Một số khái niệm cơ bản
1.1.1 Cơ sở dữ liệu
Định nghĩa 1.1: Cơ sở dữ liệu (database)
Cơ sở dữ liệu (database) là một hệ thống các thông tin có cấu trúc được lưu trữ trên các thiết bị lưu trữ thứ cấp (băng từ, đĩa từ…) nhằm thoả mãn yêu cầu khai thác thông tin đồng thời của nhiều người sử dụng hay nhiều chương trình ứng dụng với nhiều mục đích khác nhau
1.1.2 Mô hình dữ liệu quan hệ
Trong quá trình thiết kế và xây dựng các hệ quản trị cơ sở dữ liệu, người ta tiến hành xây dựng các mô hình dữ liệu Mô hình dữ liệu phải được thể hiện được các mối quan hệ bản chất của các dữ liệu mà dữ liệu này phản ánh các mối quan hệ
và các thực thể trong thế giới thực Mô hình dữ liệu phản ánh khía cạnh cấu trúc logic mà không đi sâu vào khía cạnh vật lý của cơ sở dữ liệu Mô hình dữ liệu là một sự hình thức hóa toán học với một tập ký hiệu để mô tả dữ liệu và một tập các phép toán được sử dụng để thao tác các dữ liệu này Khi xây dựng các mô hình dữ liệu cần phân biệt các thành phần cơ bản sau:
Thực thể: Là đối tượng có trong thực tế mà chúng ta cần mô tả các đặc trưng của nó
Thuộc tính: Là các dữ liệu thể hiện các đặc trưng của thực thể
Ràng buộc: Là các mối quan hệ logic của các thực thể Ba thành phần trên được thể hiện ở hai mức:
Mức loại dữ liệu: là sự khái quát hóa các ràng buộc, các thuộc tính, các thực thể cụ thể
Mức thể hiện: Là một ràng buộc cụ thể, hoặc là các giá trị thuộc tính, hoặc là một thực thể cụ thể
Trên thực tế có một số mô hình dữ liệu đã được nghiên cứu:
Trang 11 Mô hình dữ liệu mạng: Thể hiện trực tiếp các ràng buộc tùy ý giữa các loại bản ghi Là mô hình dữ liệu được biểu diễn bởi một đồ thị có hướng
Mô hình dữ liệu quan hệ: Các ràng buộc được thể hiện qua các quan hệ tức là bảng giá trị Mô hình dựa trên lý thuyết tập hợp và đại số quan hệ
Vì tính chất chặt chẽ của toán học về lí thuyết tập hợp nên mô hình này
đã mô tả dữ liệu một cách rõ ràng, uyển chuyển và trở thành rất thông dụng
Mô hình dữ liệu hướng đối tượng: Cho phép biểu diễn dữ liệu tự nhiên
và sát với thực tế hơn cả Tuy nhiên cho đến nay, chưa có một cơ sở toán học tốt hình thức hóa ở mức cao, chặt chẽ đối với mô hình này
Mô hình dữ liệu quan hệ do E.F Codd đề xuất năm 1970 là cơ sở cho hầu hết các hệ thống cơ sở dữ liệu hiện tại Mô hình dữ liệu quan hệ được quan tâm là vì
nó được xây dựng trên cơ sở toán học chặt chẽ Mô hình dữ liệu quan hệ cung cấp các khái niệm chặt chẽ được hình thức hóa cao, cho phép áp dụng các cộng cụ toán học, các thuật toán tối ưu trên mô hình dữ liệu quan hệ Mô hình dữ liệu quan hệ được trừu tượng hóa cao và chỉ dừng ở mức logic
1.1.3 Thuộc tính, miền thuộc tính và kiểu thuộc tính
Định nghĩa 1.2: Thuộc tính, miền giá trị của thuộc tính
Thuộc tính là đặc trưng của quan hệ
Tập tất cả các giá trị có thể có của thuộc tính A i gọi là miền giá trị của thuộc
tính đó, ký hiệu: Dom(A i ) hay viết tắt là: D Ai
Ví dụ 1.1:
Nhânviên(MaNV, Ten, NgSinh, Đchi)
Dom(MaNV) = {char(5)}; Dom(Ten) = {char(10)};
Mỗi một thuộc tính đều phải thuộc một kiểu dữ liệu Kiểu dữ liệu có thể là
vô hướng - là các kiểu dữ liệu cơ bản như chuỗi, số, logic, ngày tháng,… hoặc các kiểu có cấu trúc được định nghĩa dựa trên các kiểu dữ liệu đã có sẵn
Trang 121.1.4 Quan hệ, lược đồ quan hệ
Định nghĩa 1.3: Quan hệ
Cho U = {A1, A2, …, A} là một tập hữu hạn không rỗng các thuộc tính Mỗi
thuộc tính A i (i =1, 2, …, ) có miền giá trị là Dom(A i ) Khi đó r là một tập các bộ {r1, r2, …, r m } được gọi là quan hệ trên U với r j (j = 1, 2, …, m) là một hàm r j:
U A
A i
i
D U
sao cho r j.A iDom(A i) (i =1, 2, …, )
Có thể xem một quan hệ như một bảng, trong đó mỗi hàng (phần tử) là một
bộ và mỗi cột tương ứng với một thành phần gọi là thuộc tính
Định nghĩa 1.4: Lược đồ quan hệ
Tập tất cả các thuộc tính trong một quan hệ cùng với mối liên hệ giữa chúng được gọi là lược đồ quan hệ
Lược đồ quan hệ R với tập thuộc tính U={A1, A2, , A} được viết là R(U) hoặc R{A1, A2, , A}
1.1.5 Khoá của quan hệ
Định nghĩa 1.5: Khóa của quan hệ
Khoá của quan hệ r xác định trên tập thuộc tính U = {A1, A2, , A}là tập con
K U sao cho bất kỳ hai bộ khác nhau t1, t2 r luôn thoả t1.K ≠ t2.K và bất kỳ tập
con thực sự K1 K nào đó đều không có tính chất đó
Trong ví dụ 1.2 thì thuộc tính MNV là khóa của quan hệ Nhanvien
Trang 13Khoá là một khái niệm rất quan trọng trong việc thiết kế một cơ sở dữ liệu quan hệ Khoá thường được áp dụng trong việc tìm kiếm hay cập nhật dữ liệu trong các cơ sở dữ liệu quan hệ
1.2 Thủy vân cơ sở dữ liệu quan hệ
1.2.1 Thủy vân
Từ “thuỷ vân” có xuất xứ từ kỹ thuật đánh dấu nước thời xưa Đây là kỹ thuật đánh dấu chìm một hình ảnh, một logo, hay một dữ liệu nào đó lên trên giấy nhằm mục đích trang trí và phân biệt được xuất xứ của sản phẩm giấy Như vậy, thông tin cần giấu được gọi là thuỷ vân (watermark)
Thủy vân số (digital watermarking)là quá trình chèn thông tin vào dữ liệu số bằng các thuật toán xử lý trên máy tính Các thủy vân số này đảm bảo có khả năng phát hiện bằng thuật toán xác định trên máy tính
Thuỷ vân số mô tả thông tin có thể được dùng để chứng minh quyền sở hữu hoặc chống xuyên tạc
Có hai loại thuỷ vân, đó là: thuỷ vân bền vững và thuỷ dễ vỡ
Thuỷ vân bền vững (robust watermark): Là thuỷ vân tồn tại bền vững
cùng với dữ liệu, không dễ dàng bị phá huỷ trước những biến đổi, tấn công lên dữ liệu Các kỹ thuật này thường được dùng trong các ứng dụng bảo vệ bản quyền, chứng minh quyền sở hữu
Thuỷ vân dễ vỡ (fragile watermark): Là thuỷ vân dễ bị biến đổi trước
những biến đổi hay tấn công lên dữ liệu Các kỹ thuật này thường được dùng trong các ứng dụng nhận thực thông tin, đảm bảo sự toàn vẹn dữ liệu
1.2.2 Thủy vân cơ sở dữ liệu quan hệ
Ngày nay, việc sử dụng các cơ sở dữ liệu trong các ứng dụng càng ngày càng tăng lên đang tạo ra một nhu cầu tương tự đối với thủy vân cơ sở dữ liệu Internet hiện đang đưa đến một sức ép rất nặng nề cho những người muốn 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 sử dụng tìm kiếm và truy cập cơ sở dữ liệu từ xa Mặc dù
Trang 14xu hướng này là hữu ích cho người dùng cuối nhưng nó cũng bộc lộ một mối nguy hiểm cho những nhà cung cấp dữ liệu trước những kẻ trộm cắp dữ liệu Do đó, những người cung cấp dữ liệu đòi hỏi phải có công nghệ nhận dạng được những bản sao các cơ sở dữ liệu của họ bị đánh cắp
Định nghĩa 1.6: Thủy vân cơ sở dữ liệu quan hệ
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 đảm bảo 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ỡ
Một thuỷ vân có thể được áp dụng cho một cơ sở dữ liệu quan hệ, chẳng hạn như có các thuộc tính mang một đặc điểm là những thay đổi nhỏ tại một số giá trị của chúng không làm ảnh hưởng đến các ứng dụng Ví dụ, các nhà xuất bản sách khi in các bảng toán học (như các bảng logarit và lịch thiên văn) thường cố ý đưa vào một số lỗi nhỏ để có thể dễ dàng nhận dạng các bản sao bị ăn cắp
1.2.3 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
dữ liệu được gọi là khóa do chính chủ cơ sở dữ liệu lựa chọn Thông tin thứ hai này được gọi là khóa thủy vân và được chúng tôi định nghĩa như sau:
Định nghĩa 1.7: Khóa thủy vân
Khóa thủy vân là một lượng dữ liệu do chủ sở hữu cơ sở dữ liệu lựa chọn và
nhằm mục đích xác định thủy vân trong lược đồ thủy vân Ký hiệu là K
Khóa K sẽ được kết hợp với thủy vân W để nhúng vào cơ sở dữ liệu Khóa
thủy vân chính là mấu chốt của lược đồ thủy vân cơ sở dữ liệu có sử dụng khóa thủy vân
Khóa thủy vân sẽ được nhúng vào trong cơ sở dữ liệu quan hệ bằng nhiều cách Thông thường khóa thủy vân sẽ được nhúng với dữ liệu trong cơ sở dữ liệu quan hệ rồi đưa vào trong thuật toán sử dụng Điều quan trọng ở đây chính là việc ta giấu khóa thủy vân vào trong thuật toán như thế nào để không bị phát hiện đồng
Trang 15thời có thể chứng minh được đây chính là cơ sở dữ liệu quan hệ của mình Hay nói cách khác, việc đưa khóa vào trong cơ sở dữ liệu quan hệ là một trong những điểm quan trọng của bài toán bảo vệ bản quyền và đảm bảo sự toàn vẹn dữ liệu trong cơ
sở dữ liệu quan hệ có sử dụng khóa Một trong những cách giấu khóa hữu hiệu nhất
là sử dụng hàm băm 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
với M đã cho, dễ dàng tính được h
với h đã cho, khó tính được M sao cho H(M) = h, và
với M đã cho, khó tìm được một thông điệp khác M0 sao cho H(M) =
H(M0)
Hàm H(K || r.A) băm khóa K cùng với giá trị thuộc tính A của bộ r, hàm
H(K||r i A1||r i A2||….||r i A) băm khóa K cùng với các giá trị thuộc tính của bộ r i của
cơ sở dữ liệu, trong đó || là phép ghép nối Để đơn giản trong cách đánh giá độ phức tạp tính toán của các lược đồ thủy vân, luận văn sẽ bỏ qua độ phức tạp tính toán của hàm băm
Trong thực tế, hai hàm băm thông dụng nhất là MD5 và SHA [12] Trong các thử nghiệm, luận văn dùng hàm băm MD5
1.2.4 Lược đồ thủy vân
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 [12] Khi nhúng thủy vân, một khóa thủy vân 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 trong môi trường Internet Để xác minh quyền sở hữu của một cơ sở dữ liệu đáng ngờ, quá trình xác
Trang 16minh 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 thủy vân 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 Hình 1.1 và Hình 1.2 là
sơ đồ mô tả lược đồ thủy vân cơ sở dữ liệu quan hệ cơ bản [5]
1.2.5 Sự cần thiết của các kỹ thuật thủy vân cơ sở dữ liệu quan hệ
Hiện nay, có khá nhiều tài liệu về thuỷ vân các dữ liệu đa phương tiện Hầu hết các kỹ thuật này ban đầu được phát triển cho các bức ảnh tĩnh và sau đó được
mở rộng cho video và audio Có rất nhiều các kết quả của thuỷ vân dữ liệu đa phương tiện có thể áp dụng cho thủy vân cơ sở dữ liệu quan hệ, nhưng cho đến nay vẫn còn rất nhiều thách thức kỹ thuật mới đối với lĩnh vực thuỷ vân cơ sở dữ liệu
Khóa K
Cơ sở dữ liệu
gốc
Cơ sở dữ liệu đã nhúng thủy vân
Thông tin thủy vân
Thông tin thủy vân
(W)
Phát hiện thủy vân
Hình 1 1 Sơ đồ nhúng thủy vân cơ bản
Hình 1 2 Sơ đồ phát hiện thủy vân cơ bản
Trang 17quan hệ bởi vì các dữ liệu quan hệ và các dữ liệu đa phương tiện khác nhau ở khá nhiều khía cạnh quan trọng Những khác biệt đó [1] bao gồm:
Một đối tượng đa phương tiện thường chứa một lượng các bit dư thừa
Vì vậy, các kỹ thuật thuỷ vân có một cái mặt nạ (vỏ) rất rộng để có thể giấu tin vào trong Trong khi đó, một quan hệ cơ sở dữ liệu chứa các bộ, mỗi bộ này biểu diễn một đối tượng riêng biệt Cho nên, các kỹ thuật thuỷ vân cần phải được trải rộng trên tất cả các đối tượng riêng biệt này
Vị trí tương đối về không gian/thời gian của các phần khác nhau của một đối tượng đa phương tiện có đặc thù là không thể thay đổi Nhưng các bộ của một quan hệ lại cấu thành một tập hợp và do vậy không cần phải áp đặt một thứ tự nào giữa các đối tượng này
Các phần khác nhau của một đối tượng đa phương tiện không thể bị cắt
bỏ hoặc thay thế một cách tuỳ ý mà không gây ra những thay đổi trong đối tượng Ngược lại, việc thêm, bớt, và cập nhật các bộ của một bảng quan hệ lại là những phép toán chuẩn trong cơ sở dữ liệu Do đó, sẽ rất khó để phát hiện những xâm hại đơn giản như xóa bỏ một số bộ hoặc thay thế chúng bằng các bộ của các quan hệ khác
Do có những khác nhau như đã nêu trên đây mà các kỹ thuật được phát triển cho các dữ liệu đa phương tiện không thể được sử dụng trực tiếp để thuỷ vân các dữ liệu quan hệ
Thật vậy, giả sử chúng ta ánh xạ một quan hệ thành một bức ảnh bằng cách xem mỗi giá trị thuộc tính như một điểm ảnh Nhưng “bức ảnh” được định nghĩa như vậy sẽ thiếu rất nhiều tính chất của một bức ảnh thật Ví dụ, các điểm ảnh nằm cạnh nhau trong một bức ảnh thật thường có quan hệ rất mật thiết với nhau và quan
hệ này là cơ sở cho nhiều kỹ thuật thuỷ vân ảnh tĩnh Các kỹ thuật thuỷ vân trên miền biến đổi của ảnh thường thực hiện theo quy trình: trước hết áp dụng một phép biến đổi (cosine rời rạc - DCT, sóng nhỏ - DWT, ) miền giá trị của bức ảnh, sau
đó nhúng thuỷ vân vào miền đã biến đổi rồi biến đổi ngược trở lại Cách làm này trải các tín hiệu thuỷ vân như phủ một màn nhiễu trên toàn bộ bức ảnh Áp dụng
Trang 18trực tiếp các kỹ thuật này cho một quan hệ sẽ làm sai lệch giá trị của tất cả các thuộc tính Điều đó có thể sẽ không được chấp nhận Hơn nữa, một thuỷ vân như vậy có thể không tồn tại được ngay cả trước những cập nhật nhỏ đối với quan hệ
Các kỹ thuật thủy vân văn bản thường lợi dụng các tính chất đặc biệt của văn bản đã được định dạng Thủy vân thường được nhúng vào văn bản bằng cách thay đổi khoảng cách giữa các từ và các dòng văn bản Một số kỹ thuật dựa vào việc nhấn mạnh một vài câu trong văn bản Nhìn chung, các kỹ thuật này có thể sử dụng
để thủy vân các quan hệ chỉ chứa các thuộc tính kiểu văn bản, còn đối với các quan
hệ chứa các thuộc tính kiểu đơn giản thì rất khó áp dụng
1.3 Các yêu cầu trên thuỷ vân cơ sở dữ liệu quan hệ
Thủy vân các cơ sở dữ liệu quan hệ có những thách thức đối với các kỹ thuật
và các ứng dụng thực tế có ý nghĩa đáng được quan tâm từ phía cộng đồng những người nghiên cứu cơ sở dữ liệu quan hệ Cần phải xác định một hệ thống thủy vân
và kèm theo đó là phát triển các kỹ thuật nhất định Những kỹ thuật này sẽ dựa vào phần lớn các nguyên tắc thủy vân đang tồn tại Tuy nhiên, chúng cũng sẽ đòi hỏi phải có những mở rộng và các nghiên cứu sâu hơn [1]
Giả dụ, có quan hệ r thuộc lược đồ quan hệ R có bộ, trong đó chủ dữ liệu
đã thủy vân v bộ Hệ thống thủy vân cần phải thỏa mãn những tính chất sau đây:
1.3.1 Khả năng có thể phát hiện
Chủ dữ liệu cần phải có khả năng phát hiện (Detectability) thủy vân bằng
cách xem xét v bộ từ cơ sở dữ liệu nghi ngờ Rõ ràng là nếu chủ dữ liệu phát hiện mẫu thủy vân có mặt ở tất cả v bộ thì chủ sở hữu có lý do xác đáng để nghi ngờ có
sự sao chép trái phép Tuy nhiên, chủ sở hữu cũng có thể ngờ vực ngay cả khi phát
hiện mẫu thủy vân chỉ có mặt ở ít nhất là bộ ( v) trong đó phụ thuộc vào v và một giá trị α cho trước, được gọi là mức ý nghĩa của phép thử Giá trị của được
xác định sao cho xác suất để chủ sở hữu sẽ tìm thấy mẫu thủy vân của mình trong ít nhất bộ từ v bộ là nhỏ hơn α
Một hướng khác, người được ủy quyền sử dụng cơ sở dữ liệu quan hệ muốn xác nhận dữ liệu được gửi từ chủ sở hữu là nguyên vẹn không bị thay đổi trong quá
Trang 19trình gửi Cơ sở dữ liệu quan hệ được gửi từ chủ sở hữu phải chứa thủy vân đã được
nhúng v bộ sẽ được xem xét để xác minh tính toàn vẹn của dữ liệu Khi có bất kỳ
thay đổi nào trong dữ liệu được thủy vân thì cơ sở dữ liệu đó đã bị sửa đổi Người được ủy quyền sử dụng cơ sở dữ liệu quan hệ có thể yêu cầu chủ sở hữu gửi lại dữ liệu hoặc có thể khoanh vùng các giả mạo và vẫn có thể sử dụng được các dữ liệu không bị giả mạo bên trong
1.3.2 Tính bền vững và dễ vỡ
Các thủy vân cần phải bền vững trước những tấn công nhằm xóa bỏ Ví như,
kẻ tấn công thay đổi k bộ trong quan hệ r của chủ sở hữu Khi đó, nói rằng thủy vân
là an toàn đối với tấn công này nếu kẻ tấn công không thể phá hủy các dấu hiệu thủy vân ở ít nhất bộ, trong đó phụ thuộc vào v và α như đã nói ở trên
Ngược lại, trong các lược đồ thủy vân dễ vỡ, khi có bất kỳ tấn công nào lên
dữ liệu thì các thủy vân không còn nguyên vẹn Vì vậy, kẻ tấn công dữ liệu mong
muốn thay đổi k bộ trong quan hệ r của chủ sở hữu mà vẫn không làm thay đổi thủy
vân Khi đó, nếu những thay đổi của kẻ tấn công làm thay đổi các thủy vân được giấu thì ta có thể kết luận rằng quan hệ đã bị tấn công
1.3.3 Khả năng cập nhật dữ liệu
Sau khi quan hệ r đã thủy vân, chủ sở hữu có thể cập nhật quan hệ r khi cần
thiết mà không làm hỏng thủy vân Khi chủ sở hữu thêm/bớt các bộ hoặc sửa đổi
các giá trị của các thuộc tính của r, thủy vân cần phải có khả năng cập nhật trên
những phần gia tăng Tức là, các giá trị thủy vân chỉ phải tính toán lại đối với các bộ được thêm vào hoặc bị sửa đổi
Tuy nhiên, khi quan hệ r đã thủy vân được cập nhật dữ liệu thì kẻ tấn công
dữ liệu sẽ xem đây là các tấn công trên quan hệ r Để giải quyết vấn đề này, chủ sở hữu có thể cập nhật, thủy vân lại quan hệ r và gửi sang cho người được ủy quyền sử
dụng dữ liệu Vấn đề này giải quyết cho bài toán đảm bảo tính toàn vẹn của quan hệ trong quá trình truyền tải
Trang 201.3.4 Tính ẩn và hiện
Đối với thuỷ vân ẩn, dữ liệu sau khi thủy vân không dễ nhận thấy được bằng mắt thường của con người (trừ chủ dữ liệu) Sự thay đổi do các dấu hiệu thuỷ vân gây ra cho dữ liệu quan hệ không được làm giảm giá trị sử dụng của cơ sở dữ liệu Hơn nữa, các phép đo thống kê thông thường như trung bình, phương sai của các thuộc tính số cũng không nên bị ảnh hưởng đáng kể
Tuy nhiên, trong một số trường hợp, thủy vân có tính hiện, dễ dàng nhận thấy bằng mắt thường hoặc bằng một số phương pháp kiểm tra Nhưng sự thay đổi
do các thủy vân gây ra cho dữ liệu quan hệ không làm ảnh hưởng tới giá trị sử dụng của cơ sở dữ liệu quan hệ Tính hiện của dữ liệu có thể giúp cho việc dễ vỡ của thủy vân khi có bất kỳ tấn công nào trên dữ liệu được nhúng
1.3.5 Phát hiện mù
Việc phát hiện thuỷ vân không đòi hỏi các thông tin về cơ sở dữ liệu gốc và
cả thuỷ vân gốc Một lược đồ thủy vân như vậy được gọi là hệ thống mù (Blind System) Tính chất này rất quan trọng vì nó cho phép phát hiện thuỷ vân trong bản sao của quan hệ cơ sở dữ liệu cho dù quan hệ gốc đã được cập nhật
Để phát hiện mù đối với cơ sở dữ liệu thì một số thông số liên quan đến chủ
sở hữu vẫn là cần thiết để chứng minh cơ sở dữ liệu thuộc quyền sở hữu hoặc chứng minh tính toàn vẹn của cơ sở dữ liệu
1.4 Các ứng dụng chủ yếu của thuỷ vân quan hệ
Bảo vệ bản quyền
Ngày nay, việc bảo vệ bản quyền hoặc chứng minh quyền sở hữu (Copyright Protection or Proving Ownership) đối với các cơ sở dữ liệu quan hệ là một vấn đề quan trọng trong các môi trường ứng dụng, như môi trường Internet và trong nhiều ứng dụng phân phối dữ liệu Đây là ứng dụng cơ bản nhất của kỹ thuật thuỷ vân Một thông tin nào đó (hay còn gọi là thuỷ vân) mang ý nghĩa quyền sở hữu sẽ được nhúng vào trong dữ liệu quan hệ Thuỷ vân đó chỉ một mình người chủ sở hữu hợp pháp cơ sở dữ liệu đó có và được dùng làm minh chứng cho bản quyền sản phẩm [12]
Trang 21Vấn đề chứng minh bản quyền hay quyền sở hữu công khai cơ sở dữ liệu cần được thực hiện bởi một bên thứ ba Bên thứ ba có thể là một tổ chức thuộc chính phủ hay một tổ chức cá nhân làm việc trong ngành chứng thực có uy tín và được cấp phép chứng thực Để có thể chứng thực quyền sở hữu cơ sở dữ liệu, chủ sở hữu
cơ sở dữ liệu cần phải đăng ký với tổ chức chứng thực các thông tin liên quan vào trong một văn bản được gọi là giấy chứng thực Giấy chứng thực bao gồm các thông tin như: Định danh của chủ sở hữu cơ sở dữ liệu, khóa thủy vân, thủy vân, các thông tin pháp lý và tổ chức uy tín cấp giấy chứng thực
Các thông tin pháp lý bao gồm: thời gian bắt đầu, thời gian kết thúc, thời gian giấy chứng thực lần đầu tiên Các thông tin này giúp cho việc xem xét quyền
sở hữu cơ sở dữ liệu và cũng là các thông tin pháp lý được sử dụng khi có tranh cãi
về quyền sở hữu cơ sở dữ liệu
Việc chứng minh quyền sở hữu cơ sở dữ liệu được thực hiện qua các bước sau:
Kiểm tra các thông tin pháp lý còn thỏa mãn hay không
Sử dụng các thông tin về khóa thủy vân, thủy vân, cơ sở dữ liệu và thuật toán phát hiện thủy vân để xác minh quyền sở hữu
Kết luận quyền sở hữu và cấp một giấy chứng nhận mới
Đảm bảo sự toàn vẹn
Một tập thông tin sẽ được giấu trong cơ sở dữ liệu quan hệ Sau đó, các thông tin này sẽ được sử dụng để nhận biết xem dữ liệu gốc có bị thay đổi hay không Bằng kỹ thuật thuỷ vân, có thể lấy thông tin đã giấu vào trong dữ liệu quan
hệ đó ra Nếu thông tin lấy ra trùng với thông tin ban đầu đem giấu thì chứng tỏ dữ liệu gốc không bị thay đổi Ngược lại, thông tin lấy ra và thông tin ban đầu có sự khác biệt thì chứng tỏ dữ liệu đã bị thay đổi, xuyên tạc [12]
Trong các ứng dụng thực tế, các kỹ thuật thủy vân mong muốn tìm được vị trí bị xuyên tạc, cũng như phân biệt được các thay đổi và khôi phục lại dữ liệu gốc Tuy nhiên, việc đáp ứng được tất cả các yêu cầu trên là vô cùng khó khăn Ngay cả việc xác định vị trí bị xuyên tạc trong cơ sở dữ liệu quan hệ cũng đã rất khó và
Trang 22thường phải có thêm các ràng buộc cần thiết Chẳng hạn như, khoanh vùng xuyên tạc tại một khu vực (nhóm) sẽ dễ hơn rất nhiều so với xác định vị trí chính xác của xuyên tạc Tương tự việc phân biệt các thay đổi và khôi phục dữ liệu gốc cũng gặp những khó khăn nhất định Việc khôi phục dữ liệu gốc thường chỉ thực hiện được đối với những thay đổi nhỏ (thường là một thuộc tính của một bộ) Tuy nhiên, để có thể khôi phục được như vậy cũng yêu cầu rất nhiều ràng buộc
Yêu cầu chung đối với ứng dụng này là khả năng giấu thông tin cao và thuỷ vân không cần bền vững
Giấu vân tay
Thuỷ vân trong những ứng dụng này được sử dụng để nhận diện người gửi hay người nhận một thông tin nào đó Trong các ứng dụng, dữ liệu cơ sở dữ liệu là công bố công khai trên mạng, chủ sở hữu dữ liệu muốn ngăn cản sao chép và phân phối trái phép bằng cách nhúng một thủy vân riêng (hoặc giấu vân tay) trong mỗi bản sao của dữ liệu Nếu tại một thời điểm nào đó sau này, các bản sao trái phép của các cơ sở dữ liệu được tìm thấy, thì nguồn gốc của bản sao chép có thể được xác định bằng cách lấy giấu vân tay Với những ứng dụng này thì yêu cầu là đảm bảo độ
an toàn cao cho các thuỷ vân, tránh khả năng xoá dấu vết trong khi phân phối [12]
1.5 Các kỹ thuật thuỷ vân cơ sở dữ liệu quan hệ
Thủy vân dựa trên các bit ít ý nghĩa nhất (LSB)
Các lược đồ thủy vân dựa trên các bit ít ý nghĩa nhất (LSB - Least Significant Bit) đề xuất trong các bài báo [1], [2], [3] sau đó được các tác giả phát triển thêm [7], [8], [11] Lược đồ thủy vân áp dụng cho cơ sở dữ liệu quan hệ có dữ liệu kiểu số Tư tưởng chính của kỹ thuật này là sử dụng các bit ít ý nghĩa nhất (LSB) để thủy vân cho cơ sở dữ liệu quan hệ chứa các thuộc tính kiểu số chấp nhận được những thay đổi nhỏ mà không làm ảnh hưởng tới ý nghĩa của dữ liệu Kỹ thuật này sử dụng các bit ít ý nghĩa nhất của các bộ trong cơ sở dữ liệu quan hệ để xây dựng ra thủy vân nhúng cho toàn bộ cơ sở dữ liệu Đồng thời, sử dụng mức ý nghĩa
để phát hiện thủy vân đã được nhúng vào trong cơ sở dữ liệu
Ưu điểm của kỹ thuật này là:
Trang 23 Kỹ thuật tương đối đơn giản và áp dụng được cho các cơ sở dữ liệu chứa các thuộc tính kiểu số chấp nhận thay đổi nhỏ
Là một trong những kỹ thuật đầu tiên cho việc bảo vệ bản quyền cơ sở
dữ liệu quan hệ
Khả năng phát hiện mù và chi phí thấp khi xác minh quyền sở hữu các
dữ liệu
Nhược điểm của kỹ thuật này là:
Nếu giá trị dữ liệu nhận giá trị null (rỗng) nhưng vẫn thủy vân
Miền ứng dụng hẹp (chỉ áp dụng cho cơ sở dữ liệu có chứa các thuộc tính kiểu số)
Cơ sở dữ liệu bị sửa đổi không còn là dữ liệu gốc ban đầu
Việc xác định mức ý nghĩa của phép thử phức tạp
Do đó, đối với lược đồ thủy vân này cần có những cải tiến về kỹ thuật thủy vân để khắc phục các nhược điểm đã nêu trên
Thủy vân dựa vào bit ý nghĩa nhất (MSB)
Lược đồ thủy vân dựa vào bit ý nghĩa nhất (MSB - Most Significant Bit) được đề xuất bởi Li, Y và Deng, R H [9] Lược đồ thủy vân áp dụng cho cơ sở dữ liệu quan hệ có dữ liệu kiểu số Ý tưởng của kỹ thuật này là xây dựng một quan hệ
mới r w là một bản sao của quan hệ gốc r có cùng các thuộc tính Trong đó, thuộc tính khóa chính của quan hệ r w trùng với thuộc tính khóa chính của quan hệ r và các
thuộc tính còn lại chỉ chứa các giá trị 0 hoặc 1 là bit MSB của giá trị các thuộc tính
trong quan hệ r Quan hệ r w được xây dựng dựa trên các bit ý nghĩa nhất của quan
hệ gốc r
Quá trình nhúng sử dụng khóa thủy vân cùng với quan hệ gốc r nhằm sinh ra một quan hệ tương ứng r w chỉ chứa các giá trị 0 hoặc 1 như nói ở trên Sau quá trình
nhúng thủy vân, quan hệ r w, khóa thủy vân và mức ý nghĩa sẽ được đăng kí quyền
sở hữu bởi một bên thứ ba có thẩm quyền
Khi có nghi ngờ cơ sở dữ liệu bị sao chép, các dữ liệu được đăng kí sẽ được
sử dụng để chứng minh bản quyền cơ sở dữ liệu
Trang 24Ưu điểm của kỹ thuật này là:
Thủy vân sử dụng bit MSB để ngăn cản các cuộc tấn công sửa đổi dữ liệu Khi khóa thủy vân K, thủy vân W và thuật toán được công khai, ai cũng có thể xác định được vị trí của những MSB
Bất kỳ sửa đổi MSB nào trong dữ liệu có thể dễ dàng bị phát hiện trong giai đoạn kiểm tra
Không làm thay đổi giá trị của dữ liệu
Được sử dụng để bảo vệ bản quyền công khai
Nhược điểm của kỹ thuật này là:
Việc thay đổi của các bit khác MSB trong dữ liệu có thể không được phát hiện
Miền ứng dụng hẹp do chỉ áp dụng cho các cơ sở dữ liệu quan hệ với thuộc tính có kiểu dữ liệu số
Việc đăng kí quyền sở hữu tốn kém
Việc xác định mức ý nghĩa phức tạp
Thủy vân dựa vào các phép hoán vị
Để giải quyết bài toán thủy vân cơ sở dữ liệu quan hệ khi những thay đổi trong các thuộc tính có thể gây ra phiền phức, các tác giả Ersin Uzun và Bryan Stephenson [6] đã phát triển một kỹ thuật thủy vân đơn giản nhưng hiệu quả dựa vào việc hoán vị giá trị các thuộc tính Ý tưởng của kỹ thuật này là hoán đổi vị trí giá trị của một số thuộc tính trong một vài bộ của cơ sở dữ liệu với nhau thỏa mãn một khoảng cách được xây dựng Sử dụng số lượng các giá trị bị hoán đổi để kiểm soát sự sai khác của cơ sở dữ liệu nằm trong một giới hạn mà cơ sở dữ liệu có thể chấp nhận được
Ưu điểm của kỹ thuật này là:
Có thể áp dụng cho nhiều loại dữ liệu nhưng sử dụng tốt nhất cho dữ liệu kiểu số
Kỹ thuật này là cải tiến một số nhược điểm của hai kỹ thuật LSB và MSB
Trang 25 Không làm thay đổi giá trị của dữ liệu
Nhược điểm của kỹ thuật này là:
Cơ sở dữ liệu vẫn bị sửa đổi tuy chỉ ở một số lượng bộ nhất định và được kiểm soát bởi khoảng cách;
Chưa xây dựng được hàm khoảng cách;
Việc cân đối giữa khả năng nhận nhầm và đoán sai phụ thuộc vào mức ý nghĩa và tỉ lệ hoán vị khó xác định
Đây là một hướng có thể phát triển tiếp để khắc phục nhược điểm của kỹ thuật này
Thủy vân dựa vào việc chèn thêm ảnh nhị phân
Trong [4], [10] các tác giả đã đưa ra một lược đồ thủy vân cơ sở dữ liệu quan
hệ để bảo vệ bản quyền bằng cách chèn thêm một bức ảnh nhị phân vào thuộc tính văn bản chứa nhiều từ
Ý tưởng chính của kỹ thuật này [4] xuất phát từ việc nhúng bức ảnh nhị phân
đó vào một thuộc tính kiểu văn bản có chứa nhiều từ Các điểm ảnh của ảnh nhị phân sẽ được phân đoạn thành M xâu nhị phân ngắn có độ dài N Các xâu nhị phân này sẽ được đổi sang dạng thập phân để nhúng vào thuộc tính kiểu văn bản có chứa nhiều từ của các bộ đã được chọn của quan hệ Các từ trong các thuộc tính kiểu văn bản được viết cách nhau đúng một dấu cách Việc nhúng thủy vân được thực hiện rất đơn giản Giả sử giá trị thập phân của xâu nhị phân thứ j là dj thì để thủy vân giá
trị này vào thuộc tính văn bản, chỉ việc thêm một dấu cách vào sau từ thứ d j+1 của xâu văn bản này, các khoảng cách còn lại của xâu vẫn giữ nguyên Để làm được điều đó cần phải chọn ảnh nhị phân phù hợp với các quan hệ cần thủy vân Thuật toán sẽ nhúng thủy vân vào từng nhóm, với cách chia đơn giản mỗi nhóm gồm M
bộ và sẽ nhúng M xâu nhị phân ngắn vào mỗi nhóm
Ưu điểm của kỹ thuật này là:
Dùng để bảo vệ bản quyền cơ sở dữ liệu có dữ liệu kiểu văn bản
Quan hệ sau nhúng không ảnh hưởng đến giá trị sử dụng của dữ liệu Nhược điểm của kỹ thuật này là:
Trang 26 Cách chia nhóm tuần tự không phụ thuộc vào bất kỳ một tham số nào nên một kẻ tấn công có thể dễ dàng phát hiện ra các nhóm và phát hiện
ra ảnh đã nhúng
Kích thước của ảnh nhị phân nhỏ
Đòi hỏi thuộc tính văn bản chứa nhiều từ phải chứa rất nhiều từ
Trang 27Chương 2 BẢO VỆ SỰ TOÀN VẸN CHO CƠ SỞ DỮ LIỆU QUAN HỆ
CÓ CÁC THUỘC TÍNH VĂN BẢN
2.1 Đặt vấn đề
Bedi R và cộng sự đã đưa ra một lược đồ thủy vân cho dữ liệu kiểu văn bản
Tư tưởng của lược đồ này là sử dụng một khóa thủy vân được xây dựng từ các bộ trong quan hệ và nhúng khóa này vào các thuộc tính có ảnh hưởng không lớn đến giá trị sử dụng của dữ liệu Tuy nhiên, nếu như kẻ tấn công biết được thuật toán tìm khóa thủy vân thì có thể dễ dàng tìm được khóa thủy vân cũng như ma trận thủy vân hay lược đồ không còn an toàn
Dựa vào tư tưởng xây dựng thủy vân từ các bộ dữ liệu trong quan hệ của Bedi R và cộng sự, luận văn cải tiến một lược đồ thủy vân cơ sở dữ liệu quan hệ với dữ liệ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 Bedi.R Điểm khác biệt giữa hai lược đồ là lược đồ cải tiến đưa vào tham số khóa thủy vân, phân nhóm và cách xác định các bộ được nhúng
Ý tưởng của lược đồ cải tiến là tính giá trị trên tất cả các thuộc tính (bao gồm các thuộc tính văn bản và thuộc tính số) sau đấy lấy giá trị này kết hợp với khóa cho trước để xác định thủy vân rồi nhúng chúng vào các thuộc tính văn bản tác động thấp
Ý tưởng của lược đồ cải tiến dựa vào một số nhận xét sau đây [12]:
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
Trang 28thay đổ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
Việc nhúng thủy vân vào những thuộc tính 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 băm
Lược đồ thủy vân cải tiến đượ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,…,H m , L1, L2, , L n)
Trong đó, các thuộc tính H1, H2,…,H m là các thuộc tính tác động cao còn L1,
L2, , L n là các thuộc tính tác động thấp Lược đồ trên có bộ quan hệ
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 ba 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
Thuật toán khôi phục cơ sở dữ liệu gốc
2.2 Thuật toán nhúng thuỷ vân
Ý tưởng của thuật toán nhúng thủy vân được cải tiến bao gồm các bước sau:
Sinh thủy vân từ các bộ của lược đồ cơ sở dữ liệu quan hệ R
Với mỗi một quan hệ r i R Chia i bộ của r i thành g nhóm
Mỗi một nhóm G i được sinh ra xác định 1 ký tự thủy vân nhúng vào thuộc tính tác động thấp tại vị trí bất kì trong nhóm
2.2.1 Sinh thủy vân từ các bộ của lược đồ
a Lược đồ sinh thủy vân[12]
Đầu tiên sẽ tìm thủy vân từ các bộ của quan hệ r có bộ bằng cách dựa vào
khóa thủy vân, các thuộc tính tác động cao và các thuộc tính tác động thấp không phải là số
Trang 29Đối với m thuộc tính tác động cao, tính tổng mã Unicode 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 lưu trong V H , C H,
P H cụ thể là:
Trong đấy:
t i là bộ thứ i của r
t i H j là thuộc tính động cao thứ j của bộ t i
Đối với n thuộc tính tác động thấp, tính tổng mã Unicode của các nguyên
âm, phụ âm, ký tự đặc biệt và tổng mã Unicode của tất cả các ký tự theo từng thuộc
tính trong V L , C L , P L , A L cụ thể là
Trong đấy:
t i là bộ thứ i của r
Trang 30Chuyển các giá trị băm thành các ký tự thủy vân Wj theo công thức:
Trong đó ATOC() là hàm chuyển mã Unicode 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ã Unicode 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 thủy vân và phát hiện thủy vân Hàm băm đượ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 W j 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ệ
Trang 31Các ký tự thủy vân W j sau khi được sinh ra được nhúng vào cuối các thuộc tính văn bản tác động thấp của quan hệ
Nhận xét:
Quá trình sinh thủy vân ở trên có một số nhược điểm sau:
Ký tự thủy vân sinh ra là ngẫu nhiên trong khoảng mã ký tự 32 đến
Ví dụ:
Hình 2 1 Quan hệ không nhúng được thủy vân
Trong ví dụ trên, quan hệ DIEM có các thuộc tính văn bản là MaSv, MaMon nhưng hai thuộc tính này là thuộc tính khóa và cũng là thuộc tính khóa ngoài Thuộc tính Diem là thuộc tính kiểu số nên quan hệ Diem không nhúng được thủy vân, điều này có nghĩa khi sửa chữa dữ liệu trên thuộc tính Diểm (thuộc tính quan trọng) người sử dụng sẽ không phát hiện được sự thay đổi
b Lược đồ cải tiến
Điểm khác của lược đồ cải tiến là :
Trang 32Cho lược đồ quan hệ R(H1, H2,…,H m , L1, L2, , L n ) với m thuộc tính tác động cao, n thuộc tính tác động thấp với bộ Trong đấy Hi là các thuộc tính tác
động cao gồm các thuộc tính văn bản và không phải là văn bản L i là các thuộc tính văn bản tác động thấp
Khi đấy, để tính tổng của C, P, V, A ở trên ta chuyển các giá trị của các thuộc tính tác động cao H i không phải là văn bản về kiểu văn bản bằng hàm toString(S)
rồi tính tổng các mã ký tự của các thuộc tính thuộc tính như sau:
Với mỗi bộ t i thuộc R
Nếu t i H j có kiểu khác với kiểu văn bản sValue = toString(t i H j)
Nếu t i H j là kiểu văn bản sValue = t i H j
V H = V H + ∑ Mã Unicode của các nguyên âm thuộc sValue
P H = P H + ∑ Unicode của các ký tự đặc biệt thuộc sValue Với mỗi bộ t i thuộc R
V L j = V L j + ∑ Mã Unicode của các nguyên âm thuộc t i L j
C L j = C L j + ∑ Mã Unicode của các phụ âm thuộc t i L j
P L j = P L j + ∑ Mã Unicode của các ký tự đặc biệt thuộc t i L j
A L j = A L j + ∑ Mã Unicode của tất cả các ký tự thuộc t i L j Điểm khác biệt thứ 2 là dùng một mảng CK với np phân tử chứa các mã kí tự unicode không chiếm chỗ không hiển thị Khi đấy, sử dụng hàm băm các giá trị e j của ma trận M ghép với khóa thủy vân K Để xác định kí tự thủy vân trong CK được
sử dụng ta tính W j theo công thức sau:
W j = H(e j || K) mod np (với j = 1, 2, 3, 4)
Trong đấy:
K là khóa 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 thủy vân và phát hiện thủy vân
Hàm băm H đượ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 W j cũng