Lý do chọn đề tài Cơ sở dữ liệu là một trong những lĩnh vực được tập trung nghiên cứu và phát triển của CNTT, nhằm giải quyết các bài toán quản lý, tìm kiếm thông tin trong những hệ thố
Trang 2LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Người hướng dẫn khoa học: TS LƯU THỊ BÍCH HƯƠNG
HÀ NỘI, 2018
Trang 3LỜI CẢM ƠN
Trong thời gian thực hiện và nghiên cứu luận văn, tôi đã nhận được sự giúp đỡ tận tình của các cơ quan, tổ chức, cá nhân Tôi xin bày tỏ lòng cảm ơn sâu sắc nhất tới các tập thể, cá nhân đã tạo điều kiện giúp đỡ tôi trong suốt thời gian thực hiện và nghiên cứu luận văn
Trước hết với lòng biết ơn chân thành sâu sắc nhất, tôi xin gửi lời cảm
ơn tới Cô giáo TS Lưu Thị Bích Hương, người đã trực tiếp chỉ bảo, hướng
dẫn khoa học, người đã tận tình dạy dỗ và hướng dẫn tôi trong suốt quá trình nghiên cứu, hoàn thành luận văn
Tôi cũng xin được gửi lời cảm ơn tới các thầy giáo, cô giáo công tác tại Viện công nghệ thông tin và Trường Đại học Sư phạm Hà Nội 2, những người
đã tận tình giảng dạy, truyền thụ cho tôi những kiến thức khoa học căn bản trong quá trình học tập tại trường
Vĩnh Phúc, ngày 30 tháng 10 năm 2018
Người thực hiện
Trang 4LỜI CAM ĐOAN
Tôi xin cam đoan đây là đây là bài nghiên cứu của riêng tôi dưới sự hướng dẫn khoa học của TS Lưu Thị Bích Hương Các nội dung nghiên cứu, kết quả đều là trung thực và chưa được công bố dưới bất kì hình thức nào trước đây
Ngoài ra, trong khóa luận có sử dụng các cơ sở lý thuyết đều có trích dẫn và chú thích nguồn gốc
Vĩnh Phúc, ngày 30 tháng 10 năm 2018
Người thực hiện
Tạ Thị Hương
Trang 5DANH MỤC CÁC HÌNH VẼ, BẢNG
Hình 1.1 Sơ đồ biểu diễn quá trình giấu tin 9
Hình 1.2 Sơ đồ biểu diễn quá trình giải mã 10
Hình 1.3 Phân loại kỹ thuật giấu tin 11
Hình 1.4 Sơ đồ mô tả lược đồ thủy vân cơ sở dữ liệu quan hệ 17
Bảng 2.1: Ảnh hưởng của tham số g và kích thước quan hệ 39
Hình 3.1 Biểu đồ use case 47
Hình 3.2 Biểu đồ trình tự use case nhúng thủy vân 48
Hình 3.3 Biểu đồ trình tự use case phát hiện thủy vân 48
Hình 3.4 Giao diện cấu hình kết nối cơ sở dữ liệu 49
Hình 3.5 Giao diện thuật toán nhúng thủy vân 50
Hình 3.6 Giao diện của thuật toán phát hiện thủy vân 51
Hình 3.7 Giao diện kết nối cơ sở dữ liệu 52
Bảng 3.1 Tấn công thông thường trên cơ sở dữ liệu 53
Hình 3.8 Kết quả nhúng thủy vân với dữ liệu thử nghiệm 54
Hình 3.9 Kết quả phát hiện thủy vân với dữ liệu bị sửa đổi 54
Hình 3.10 Kết quả phát hiện thủy vân với dữ liệu không bị sửa đổi 55
Trang 6MỤC LỤC
MỞ ĐẦU 1
CHƯƠNG 1 CƠ SỞ LÝ THUYẾT 4
1.1 Hàm Hash 4
1.1.1 Khái niệm hàm hash 4
1.1.2 Tính chất của hàm hash 4
1.1.3 Hàm hash mật mã MD5 4
1.2 Khái niệm cơ sở dữ liệu 5
1.2.1 Dữ liệu 5
1.2.2 Cơ sở dữ liệu 6
1.2.3 Mô hình dữ liệu quan hệ 6
1.3 Giấu tin 8
1.3.1 Khái niệm giấu tin 8
1.3.2 Các kỹ thuật giấu tin 10
1.3.3 Mục đích của giấu thông tin 12
1.3.4 Môi trường giấu tin 13
1.4 Thủy vân cơ sở dữ liệu 15
1.4.1 Thủy vân 15
1.4.2 Thủy vân cơ sở dữ liệu quan hệ 16
1.4.3 Khóa thủy vân 17
1.4.4 Yêu cầu của hệ thống nhúng thủy vân 17
1.4.5 Các loại thủy vân số 18
1.4.6 Một số kỹ thuật thường sử dụng 19
1.4.7 Ứng dụng của thủy vân 20
CHƯƠNG 2 LƯỢC ĐỒ THỦY VÂN ĐẢM BẢO SỰ TOÀN VẸN CƠ SỞ DỮ LIỆU 22
Trang 72.1 Đặt vấn đề 22
2.2 Phân nhóm quan hệ 23
2.3 Nhúng thủy vân 27
2.4 Thuật toán phát hiện thủy vân 32
2.5 Đánh giá lược đồ thủy vân 37
2.5.1 Ưu điểm và nhược điểm của lược đồ thủy vân 37
2.5.2 Cân đối giữa số nhóm và kích thước của quan hệ 38
2.5.3 Tính dừng và độ phức tạp của thuật toán 39
2.5.4 Tính đúng đắn của lược đồ thủy vân 43
CHƯƠNG 3: XÂY DỰNG CHƯƠNG TRÌNH ỨNG DỤNG 46
3.1 Phát biểu bài toán 46
3.2 Giải quyết bài toán 47
3.2.1 Phân tích bài toán 47
3.2.2 Giao diện thuật toán nhúng thủy vân 50
3.2.3 Giao diện thuật toán phát hiện thủy vân 50
3.2.4 Giao diện của phần cấu hình 51
3.3 Đánh giá và thử nghiệm 52
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 56
TÀI LIỆU THAM KHẢO 58
Trang 8MỞ ĐẦU
1 Lý do chọn đề tài
Cơ sở dữ liệu là một trong những lĩnh vực được tập trung nghiên cứu và phát triển của CNTT, nhằm giải quyết các bài toán quản lý, tìm kiếm thông tin trong những hệ thống lớn, đa dạng, phức tạp cho nhiều người sử dụng trên máy tính điện tử Cùng với sự ứng dụng mạnh mẽ CNTT vào đời sống xã hội, kinh tế, quốc phòng,… Việc nghiên cứu cơ sở dữ liệu đã và đang ngày càng phát triển Năm 1970, E.F Codd đã đề xuất ra mô hình dữ liệu quan hệ với cấu trúc hoàn chỉnh đã tạo lên cơ sở toán học cho các vấn đề nghiên cứu cơ sở
dữ liệu
“Thời đại của công nghệ thông tin” là câu nói mà ngày nay thường hay gặp mỗi khi nói về xã hội bởi công nghệ thông tin phát triển quá nhanh và lan rộng trên toàn thế giới Việt Nam là một trong những nước phát triển nhanh nhất về Công nghệ thông tin Theo Damio (công ty chuyên thực hiện các thống kê và đánh giá về thông tin kỹ thuật số, di động và các lĩnh vực liên quan), tính đến tháng 1 năm 2017, Việt Nam có 50,05 triệu người dùng Internet chiếm 53% dân số Số người dùng Internet được xem là ở mức cao nhất trên thế giới
Internet là một hệ thống thông tin toàn cầu có thể truy nhập công cộng gồm các mạng máy tính được liên kết với nhau Internet mang lại rất nhiều tiện ích cho người sử dụng như: Công cụ tìm kiếm, gửi thư điện tử, trò chuyện trực tuyến, y tế, giáo dục dịch vụ thương mại,… chỉ cần máy có kết nối mạng thì nguồn thông tin khổng lồ luôn sẵn sàng cung cấp cho người dùng mọi lúc mọi nơi
Và cũng như mọi quy luật tự nhiên, mọi sự tốt đẹp luôn đi kèm theo mặt trái của nó Thông tin, dữ liệu dễ tìm thấy đồng nghĩa với dễ bị ăn cắp bản quyền, truy cập trái phép, nhiều nguồn đưa ra thông tin sai lệch, mất đi
Trang 9tính đúng đắn của thông tin… Vì vậy, vấn đề bảo vệ bản quyền và đảm bảo
sự toàn vẹn của cơ sở dữ liệu là những vấn đề nóng đang được xã hội quan tâm nhiều hơn cả
Xây dựng một chương trình nhằm đáp ứng nhu cầu đảm bảo sự toàn vẹn của dữ liệu đánh giá kết quả học tập của học sinh tại đơn vị công tác là mục tiêu để em thực hiện công trình nghiên cứu của mình
Xuất phát từ những lí do đó, em đã lựa chọn đề tài: “Đảm bảo sự toàn vẹn của cơ sở dữ liệu quan hệ bằng thủy vân với cơ chế mù” để làm luận
văn thạc sĩ
2 Mục đích nghiên cứu
Nghiên cứu tổng quan về thủy vân và lược đồ thủy vân với dữ liệu văn bản để đảm bảo sự toàn vẹn cho cơ sở dữ liệu quan hệ, từ đó xây dựng chương trình thử nghiệm để đảm bảo sự toàn vẹn cho dữ liệu của học sinh về kiểm tra đánh giá theo thông tư số 22/2016 trường Tiểu học Đại Đồng
3 Nhiệm vụ nghiên cứu
- Tìm hiểu tổng quan về thủy vân
- Lược đồ thủy vân dữ liệu văn bản để đảm bảo sự toàn vẹn cho cơ sở
dữ liệu quan hệ
- Cài đặt chương trình ứng dụng và thử nghiệm
4 Đối tượng và phạm vi nghiên cứu
- Đối tượng nghiên cứu: Lược đồ thủy vân cơ sở dữ liệu quan hệ
- Phạm vi nghiên cứu: Kỹ thuật thủy vân với cơ chế mù để đảm bảo sự
toàn vẹn của cơ sở dữ liệu
5 Phương pháp nghiên cứu
Phương pháp nghiên cứu lý luận: Nghiên cứu qua việc đọc sách, báo và
các tài liệu liên quan nhằm xây dựng cơ sở lý thuyết của luận văn và các biện pháp cần thiết để giải quyết các vấn đề của luận văn
Trang 10Phương pháp nghiên cứu thực nghiệm: Thông qua thực tế và những nghiên cứu, xây dựng chương trình cụ thể để kiểm chứng hiệu quả
6 Bố cục luận văn
Ngoài phần mở đầu, kết luận và hướng phát triển, tài liệu tham khảo, luận văn gồm 3 chương:
Chương 1: Cơ sở lý thuyết
Chương 2: Lược đồ thủy vân đảm bảo sự toàn vẹn cơ sở dữ liệu
Chương 3: Xây dựng chương trình ứng dụng
Trang 11CHƯƠNG 1 CƠ SỞ LÝ THUYẾT 1.1 Hàm Hash
1.1.1 Khái niệm hàm hash
Hàm hash là một hàm ánh xạ một dữ liệu có độ dài thay đổi thành một
dữ liệu có độ dài cố định
1.1.2 Tính chất của hàm hash
Ở đây, không có một định nghĩa hình thức bao trùm tất cả các tính chất mong muốn của một hàm hash mật mã học Các tính chất được nêu ra ở đây được coi là yêu cầu tiên quyết:
- Tính chất không có ngược: Cho trước h việc tìm m sao cho h = hash(m) là rất khó
- Tính chất đơn ánh: Cho thông điệp m1, việc tìm một thông điệp m2 (khác m1) sao cho hash(m1) = hash(m2) là rất khó
Một số hàm hash mật mã hay được sử dụng:
Trang 12Thuật toán MD5 được thiết kế để chạy tương đối nhanh trên các máy
32 bit, có thể được thực hiện một cách khá gọn
Thuật toán MD5 được dự tính áp dụng cho những ứng dụng chữ ký điện tử, ở đó một file lớn phải được “nén” một cách an toàn trước khi mã hóa với một khóa cá nhân (private key) dưới một hệ mã hóa công khai như RSA MD5 được sử dụng rộng rải trong thế giới phần mềm để đảm bảo tính xác thực Người sử dụng có thể so sánh giữa thông số kiểm tra phần mềm bằng MD5 được công bố với thông số kiểm tra phần mềm tải về bằng MD5
Hệ điều hành Unix sử dụng MD5 để kiểm tra các gói mà nó phân phối, trong khi hệ điều hành Windows sử dụng phần mềm của hãng thứ ba
MD5 được dùng để mã hóa mật khẩu Mục đích của việc mã hóa này là biến đổi một chuổi mật khẩu thành một đoạn mã khác, sao cho từ đoạn mã đó không thể nào lần trở lại mật khẩu Có nghĩa là việc giải mã là không thể hoặc phải mất một khoảng thời gian vô tận (đủ để làm nản lòng các hacker)
1.2 Khái niệm cơ sở dữ liệu
Trang 131.2.2 Cơ sở dữ liệu
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 thỏa 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
Một cơ sở dữ liệu sẽ biểu diễn một phần thực tế cuộc sống của chúng
ta
Ví dụ: Tạo lập một cơ sở dữ liệu để quản lý thông tin của nhân viên ở phòng hành chính nhân sự trong công ty:
NV001 Nguyễn Tuấn Anh Nam 14/09/1982 Hà Nội
NV003 Trần Văn Hoàn Nam 09/08/1987 Bắc Giang NV004 Nguyễn Văn Nam Nam 24/07/1990 Vĩnh Phúc NV005 Khổng Duy Trung Nam 03/04/1987 Hưng Yên
Có thể thấy, cơ sở dữ liệu được cấu trúc một cách rõ ràng, có cấu trúc
hệ thống nhất định Như ở ví dụ trên, cơ sở dữ liệu có hệ thống dưới dạng bảng, trong bảng bao gồm các hàng và các cột Khi dữ liệu được tổ chức theo
cơ sở dữ liệu sẽ giúp con người dễ quản lý hơn
1.2.3 Mô hình dữ liệu quan hệ
Mô hình dữ liệu quan hệ (được gọi tắt là mô hình quan hệ) được E F Codd đề xuất lần đầu tiên vào năm 1970 và hiện nay, mô hình này được áp dụng rất phổ biến khi xây dựng cơ sở dữ liệu
Trang 14Mô hình dữ liệu quan hệ là một tập hợp các khái niệm, dùng để mô tả cấu trúc dữ liệu, các thao tác dữ liệu, các ràng buộc dữ liệu của một cơ sở dữ liệu
Đối với các cơ sở dữ liệu xây dựng dựa trên mô hình dữ liệu quan hệ:
- Về mặt cấu trúc: Dữ liệu được thể hiện trong các bảng, mỗi bảng lại bao gồm các hàng và cột thể hiện thông tin về một chủ thể nào đó
- Về mặt thao tác trên dữ liệu: Có thể cập nhật dữ liệu: Thêm, sửa, xóa
- Về mặt ràng buộc dữ liệu: Dữ liệu trong một bảng phải thỏa mãn một
- Thuộc tính: Mỗi tính chất đặc trưng của thực thể chính là thuộc tính
- Ràng buộc: Là các mối quan hệ logic của các thực thể
Có một số các mô hình cơ sở dữ liệu sau:
- Mô hình dữ liệu file phẳng (Flat file): Mô hình này thường được sử dụng cho các cơ sở dữ liệu đơn giản, thường là file kiểu văn bản chứa dữ liệu dạng bảng
- Mô hình dữ liệu mạng (Network model): Được biểu diễn bằng các đồ thị có hướng và các mũi tên sẽ theo chiều chỉ từ kiểu thực thể cha sang con
Ưu điểm của mô hình này có thể biểu diễn các ngữ nghĩa đa dạng với kiểu bản ghi và kiểu móc nối, truy vấn thông tin thông qua phép duyệt đồ thị Tuy nhiên, nó có tốc độ truy xuất chậm và không thích hợp với các cơ sở dữ liệu
có quy mô lớn
- Mô hình dữ liệu phân cấp (Hierarchical model): Được biểu diễn theo hình cây, mỗi nút của cây biểu diễn một thực thể Nút cha có thể có nhiều nút
Trang 15con nhưng mỗi nút con chỉ có duy nhất một nút cha Mô hình dữ liệu này có thể có các kiểu quan hệ 1 – 1, 1 – N Bởi các nút con không thể có quá một nút cha nên không biểu diễn được các quan hệ phức tạp
- Mô hình dữ liệu quan hệ (Relational model): Được biểu diễn dưới dạng bảng nên mô hình này không có các liên kết vật lý Các dữ liệu được tập hợp lại vào các bảng, trong bảng có các hàng và cột Dữ liệu trong các bảng liên kết với nhau thông qua các cột chung và có các toán tử để thao tác trên bảng Ưu điểm của mô hình này là ở khả năng tối ưu hóa các xử lý phong phú nhưng cấu trúc dữ liệu không được linh hoạt
- Mô hình dữ liệu hướng đối tượng (Object-Oriented model): Biểu diễn theo sơ đồ lớp Cơ sở dữ liệu sẽ bao gồm các đối tượng, mỗi đối tượng lại bao gồm các thuộc tính, phương thức của đối tượng Các đối tượng trao đổi với nhau thông qua các phương thức và một đối tượng có thể được sinh ra từ việc
kế thừa của đối tượng khác Mô hình này cho phép ta định nghĩa các kiểu đối tượng phức tạp đồng nghĩa với cấu trúc lưu trữ phức tạp và có thể sử dụng nhiều con trỏ, khả năng tối ưu hóa cũng bị hạn chế trong một số trường hợp
cụ thể
1.3 Giấu tin
1.3.1 Khái niệm giấu tin
Không phải đến nay, khi thông tin được phát tán tràn lan trên mạng người ta mới nghĩ đến việc làm sao để bảo vệ những thông tin ấy mà từ xưa, con người đã có cách làm là mã hóa để bảo vệ thông tin Mã hóa thông tin là biến đổi thông tin dễ hiểu (hiển thị rõ ràng, có thể đọc được, có thể hiểu được) thành thông tin dưới dạng bí mật (khó thể hiểu được vì chỉ nhìn thấy những kí hiệu rời rạc vô nghĩa) [1]
Có rất nhiều hệ mã hóa từ đơn giản cho đến phức tạp đã được sử dụng như: Hệ mã hóa đối xứng – cổ điển, hệ mã hóa dịch chuyển, hệ mã hóa thay
Trang 16thế, hệ mã hóa AFFINE, hệ mã hóa VIGENERE, hệ mã hóa HILL, DES, RSA, Elgamal… Tuy nhiên, thông tin mã hóa dễ bị phát hiện vì chúng có hình dạng đặc biệt, khi đó tin tặc sẽ tìm mọi cách để xác định bản rõ
Khắc phục điểm yếu này, phương pháp giấu tin đã và đang được nghiên cứu, ứng dụng trên nhiều nước trên thế giới Giấu thông tin (steganography)
là giấu thông tin này vào trong một thông tin khác, thông tin được giấu (nhúng) vào bên trong một thông tin khác Giấu tin giống như ta đã “ngụy trang” cho thông tin, không gây cho tin tặc sự nghi ngờ và đương nhiên không làm ảnh hưởng đến dữ liệu gốc
Hình 1.1 Sơ đồ biểu diễn quá trình giấu tin
Thông tin
Phương tiện
chứa
Bộ nhúng thông tin
Phương tiện chứa
đã được dấu tin
Khóa
Phân phối
Trang 17Hình 1.2 Sơ đồ biểu diễn quá trình giải mã
1.3.2 Các kỹ thuật giấu tin
Do kỹ thuật giấu tin mới phát triển gần đây nên xu hướng phát triển còn chưa ổn định, bởi vậy nhiều phương pháp mới vẫn đang được đề xuất Fabien
A P Petitcolas đã đề xuất sơ đồ phân loại sau đây vào năm 1999:
Thông tin
Bộ nhúng thông tin
Phương tiện chứa
(Audio, ảnh, video)
Phương tiện chứa đã được dấu tin
Thông tin giấu Kiểm
định
Trang 18Hình 1.3 Phân loại kỹ thuật giấu tin
Dựa vào cách phân loại trên, có thể chia giấu tin làm hai hướng lớn: Giấu tin bí mật và nhúng thủy vân
Giấu tin bí mật che giấu các bản tin đòi hỏi độ bí mật và dung lượng càng lớn càng tốt
Thủy vân lại liên quan đến việc che giấu các mẩu tin ngắn nhưng đòi hỏi độ bền vững lớn của thông tin cần giấu trước các biến đổi thông thường của tệp dữ liệu môi trường Quá trình phân loại có thể tiếp tục được thực hiện theo các tiêu chí khác, ví như dựa theo ảnh hưởng của các tác động từ bên ngoài có thể chia thủy vân thành hai loại, một loại bền vững với các tác động sao chép trái phép, loại thứ hai lại cần tính chất hoàn toàn đối lập, dễ bị phá hủy trước các tác động nói trên Các thành tựu đã đạt được trong nghiên cứu này bắt đầu được áp dụng hiệu quả cho mục đích bảo vệ bản quyền, chống
Trang 19sao chép và nhiều mục đích khác Các phương pháp giấu tin khác nhau đều có
ưu nhược điểm khác nhau phù hợp với từng loại ứng dụng nào đó
1.3.3 Mục đích của giấu thông tin
Bảo mật thông tin bằng giấu tin có hai mục đích chính:
- Bảo vệ thông tin cần giấu Ví dụ: Giấu tin mật: Giấu thông tin mật vào một thông tin khác sao cho người ta khó phát hiện ra thông tin mật đó
- Bảo vệ chính môi trường cần giấu tin: Giấu tin vào một thông tin khác, nhằm bảo vệ chính đối tượng được dùng để giấu tin vào Tin được giấu
có vai trò như con dấu hay chữ kí dùng để xác thực (chứng nhận) thông tin (là môi trường giấu tin) Một số ứng dụng đang được triển khai như:
+ Bảo vệ bản quyền tác giả (copyright protection): Là ứng dụng cơ bản nhất của kỹ thuật thủy vân Một thông tin nào đó mang ý nghĩa quyền sở hữu tác giả sẽ được nhúng vào trong các sản phẩm, thủy vân đó chỉ người chủ sở hữu hợp pháp các sản phẩm đó có và được dùng làm minh chứng cho bản quyền sản phẩm Việc nhúng thủy vân này phải đảm bảo không để lại một ảnh hưởng lớn nào đến việc cảm nhận sản phẩm Yêu cầu kỹ thuật đối với ứng dụng này là thủy vân phải tồn tại bền vững cùng với sản phẩm, nếu muốn bỏ thủy vân này phải được sự cho phép của chủ
sở hữu
+ Xác thực thông tin và phát hiện xuyên tạc thông tin: Một tập thông tin
sẽ được giấu trong phương tiện chứa, sau đó sẽ được sử dụng để nhận biết dữ liệu trên phương tiện gốc có bị thay đổi hay không Các thủy vân nên được ẩn để tránh sự tò mò của đối phương Yêu cầu chung đối với ứng dụng này là khả năng giấu thông tin cao và thủy vân không cần bền vững
+ Dấu vân tay hay dán nhãn: Thủy vâ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 đó Yêu cầu của ứng dụng
Trang 20này là đảm bảo độ an toàn cao cho các thủy vân, tránh khả năng xóa dấu vết trong khi phân phối
+ Điều khiển truy cập: Các thiết bị phát hiện thủy vân được gắn sẵn vào trong các hệ thống đọc ghi, tùy thuộc vào việc có thủy vân hay không để điều khiển (cho phép/cấm) truy cập Ví dụ hệ thống quản lý sao chép DVD đã được ứng dụng ở Nhật
+ Giấu tin bí mật: Các thông tin giấu được trong những trường hợp này càng nhiều càng tốt Việc giải mã để nhận được thông tin cũng không cần phương tiện chứa gốc
1.3.4 Môi trường giấu tin
1.3.4.1 Giấu tin trong ảnh
Hiện nay, giấu tin trong ảnh là một bộ phận chiếm tỉ lệ lớn nhất trong các chương trình ứng dụng, các phần mềm, hệ thống giấu tin trong đa phương tiện do lượng thông tin được trao đổi bằng ảnh là rất lớn Thông tin sẽ được giấu cùng với dữ liệu ảnh nhưng chất lượng ảnh ít thay đổi và không ai biết được rằng sau ảnh đó mang những thông tin có ý nghĩa Cách làm này đem lại nhiều những ứng dụng quan trọng trên nhiều lĩnh vực đời sống xã hội Ví dụ đối với các nước phát triển, chữ ký tay được số hóa và lưu trữ sử dụng như hồ
sơ cá nhân của các dịch vụ ngân hàng và tài chính, nó được dùng để xác thực trong các thẻ tín dụng của người tiêu dùng Microsoft cũng thực hiện kỹ thuật giấu tin sử dụng ảnh nhị phân làm môi trường giấu tin Với phần mềm Winword, người dùng lưu trữ kí trong ảnh nhị phân rồi gắn vào vị trí nào đó trong file văn bản để đảm bảo tính an toàn của thông tin Tài liệu sau đó được truyền trực tiếp qua máy fax hoặc lưu truyền trên mạng Tin tặc là một vấn nạn đối với tất cả các quốc gia trên thế giới, từ những thông tin đơn giản đến các thông tin phức tạp gắn liền quốc gia như: Tài chính, an ninh, y tế thường được lưu trữ trên máy tính Bởi vậy chúng càng dễ bị lấy cắp và nếu điều đó
Trang 21xảy ra sẽ có ảnh hưởng rất lớn Giấu tin trong ảnh có đặc điểm là thông tin giấu trong ảnh một cách vô hình, chất lượng ảnh gần như không thay đổi đặc biệt đối với ảnh màu hay ảnh xám Vì vậy, tin tặc thường không đề phòng và một khi có dấu hiệu bị đánh cắp sẽ nhanh được phát hiện, giảm thiểu tổn thất lớn nhất có thể
1.3.4.2 Giấu tin trong âm thanh
Giấu tin trong âm thanh khác với giấu tin trong các đối tượng đa phương tiện khác Cách giấu tin này đương nhiên cũng phải đảm bảo được yêu cầu cơ bản của giấu tin đó là đảm bảo tính chất ẩn của thông tin được giấu đồng thời không ảnh hưởng đến chất lượng của dữ liệu gốc Các phương pháp giấu tin trong âm thanh thường lợi dụng điểm yếu trong hệ thống thính giác của con người Thính giác của con người có thể nghe được các tín hiệu ở các dải tần rộng và công suất lớn nên gây khó khăn trong việc giấu tin trong
âm thanh Nhưng hệ thống thính giác lại kém phát hiện sự khác biệt các dải tần và công suất, điều này có nghĩa các âm thanh to, cao tần có thể che giấu được các âm thanh nhỏ, thấp một cách dễ dàng Điểm yếu này giúp ích cho việc chọn các âm thanh thích hợp cho việc giấu tin Tuy nhiên, khó khăn ở phương pháp này còn ở chỗ kênh truyền hay băng thông chậm sẽ ảnh hưởng đến việc giấu tin Giấu tin trong âm thanh đòi hỏi yêu cầu cao về tính đồng bộ
và tính an toàn của thông tin
1.3.4.3 Giấu tin trong video
Giấu tin trong video cũng được quan tâm và phát triển mạnh mẽ cho nhiều ứng dụng như điều khiển truy cập thông tin, xác thực thông tin và bảo
vệ bản quyền tác giả Ví dụ các hệ thống chương trình trả tiền xem theo đoạn với các đoạn phim Các kỹ thuật giấu tin trong video cũng được phát triển mạnh mẽ theo hai khuynh hướng là thủy vân số và giấu thông tin Một phương pháp giấu tin trong video được Cox đưa ra là phương pháp phân bố
Trang 22đều Ý tưởng cơ bản của phương pháp là phân phối thông tin giấu dàn trải theo tần số của dữ liệu gốc
1.3.4.4 Giấu tin trong dạng văn bản text
Để có thể giấu tin vào một văn bản text là việc không hề dễ dàng bởi trong các văn bản này, các thông tin dư thừa không nhiều Cách giấu thông tin thường thấy nhất trong văn bản text như: Có thể giấu tin vào chính khoảng trắng giữa các từ hoặc giữa các dòng văn bản
Giấu tin là một công nghệ phức tạp và đang được đi sâu nghiên cứu tại nhiều nước trên thế giới, tuy nhiên, để ứng dụng thực tế dễ dàng hơn thì cần phải có thêm thời gian nhưng nhiều nhà khoa học cũng đã khẳng định đây là một công nghệ mới đầy hứa hẹn cho vấn đề an toàn và bảo mật thông tin Một trong những kĩ thuật quan trọng của giấu tin đang được phát triển nhất là kỹ thuật thủy vân
1.4 Thủy vân cơ sở dữ liệu
1.4.1 Thủy vân
Thủy vân 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 Do đó, thông tin cần giấu được gọi là thủy vân
Có hai loại thủy vân: Thủy vân bền vững và thủy vân dễ vỡ
- Thủy vân bền vững (Robust Watermarking): Là thủy vân tồn tại bền vững cùng với dữ liệu, không dễ dàng bị phá hủy trước những biến đổi, tấn công dữ liệu Kỹ thuật này thường được ứng dụng trong việc bảo vệ bản quyền Trong thủy vân bền vững cũng được chia ra làm hai loại:
+ Thủy vân ẩn (Visible Watermarking): Đã là ẩn thì mắt thường của
con người không thể nào nhìn thấy hay phát hiện ra thủy vân trong trường hợp này
Trang 23+ Thủy vân hiện (Imperceptible Watermarking): Ngược lại với thủy
vân ẩn, kỹ thuật này thể hiện rõ trên sản phẩm và đương nhiên chúng ta có thể dùng mắt thường cũng phát hiện ra
- Thủy vân dễ vỡ (Fragile Watermarking): Là thủy vân dễ bị biến đổi trước những biến đổi, tác động 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.4.2 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 đó 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 của 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ỡ Ví dụ dữ liệu về thời tiết, dữ liệu về y học, khoa học cùng sử dụng phương pháp này Việc nhúng thủy vân vào dữ liệu quan hệ có thể được thực hiện trong thực tế và các dữ liệu thật có thể chấp nhận một dung sai nhỏ mà vẫn không ảnh hưởng đáng kể đến giá trị sử dụng của chúng Sau đây là sơ đồ mô tả lược đồ thủy vân cơ sở dữ liệu cơ bản:
Khóa K
Nhúng thủy vân
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 (W)
Trang 24Hình 1.4 Sơ đồ mô tả lược đồ thủy vân cơ sở dữ liệu quan hệ
1.4.3 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 Với khóa K đã có, ta sẽ 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 cơ sở dữ liệu quan hệ bằng nhiều cách Tuy nhiên, việc chúng ta giấu nó như thế nào để không bị phát hiện mà lại chứng minh được đây là cơ sở dữ liệu của mình mới là điều quan trọng nhất Hiện nay, khóa thủy vân thường được giấu vào trong thuật toán để sử dụng
1.4.4 Yêu cầu của hệ thống nhúng thủy vân
Khả năng có thể phát hiện: Chủ dữ liệu cần có khả năng phát hiện thủy vân bằng cách xem xét v bộ từ cơ sở dữ liệu nghi ngờ Nếu chủ sở hữu 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
Phát hiện thủy vân
Cơ sở dữ liệu
nghi ngờ
Khẳng định đúng hoặc sai
Thông tin thủy vân (W) Khóa K
Trang 25mẫu thủy vân của mình trong ít nhất bộ từ v bộ là nhỏ hơn α thì chủ sở hữu
có cơ sở để ngờ vực, còn nếu thủy vân có ở tất cả v bộ thì lý do quá rõ ràng
để nghi ngờ có sự sao chép trái phép
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ỏ 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
Khả năng cập nhật dữ liệu: 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
Tính ẩn và hiện: 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 Tuy nhiên, với thủy vân có tính hiện lại 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 Tính hiện của dữ liệu cũng 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
Tính 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 được gọi là phát hiện mù Tính chất này 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 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.5 Các loại thủy vân số
Thủy vân số được chia thành nhiều loại khác nhau trong đó có: Thủy vân không mù (non – blind), thủy vân bán mù (semi-blind) và thủy vân mù (blind) Cách chia này dựa trên các yêu cầu về tách và phát hiện thủy vân
Trang 26Đối với thủy vân không mù (non – blind), ta cần đến cả cơ sở dữ liệu gốc và khóa thuỷ vân để có thể xác định cơ sở dữ liệu đó có chứa thủy vân hay không
Khác với thủy vân không mù, thủy vân bán mù lại yêu cầu cần phải có khóa thuỷ vân và chuỗi bit thủy vân
Kỹ thuật thủy vân mù có yêu cầu đơn giản nhất Khi sử dụng kỹ thuật này, ta không cần đến cơ sở dữ liệu gốc, cũng không cần đến chuỗi bit thủy vân mà thứ duy nhất phải có là khóa thuỷ vân Khóa thuỷ vân đóng vai trò giúp tách thủy vân từ cơ sở dữ liệu có chứa thủy vân ra
1.4.6 Một số kỹ thuật thường sử dụng
*Kỹ thuật thủy vân với thuộc tính phân loại
Ưu điểm:
- Kỹ thuật này không làm thay đổi dữ liệu của cơ sở dữ liệu
- Khoanh vùng được các sửa đổi trong cơ sở dữ liệu
Nhược điểm:
- Tính an toàn chưa cao
- Không phôi khục được các giả mạo
- Không thực hiện được cho cơ sở dữ liệu xếp thứ tự có ý nghĩa
*Kỹ thuật thủy vân dựa vào bit ý nghĩa nhất (MSB – Most Significant Bit)
Ưu điểm:
- Những sửa đổi MSB trong dữ liệu sẽ dễ dàng bị phát hiện
- Giá trị của dữ liệu không bị thay đổi
- Thường dùng để bảo vệ bản quyền công khai
Nhược điểm:
- Chi phí cao
- Miền ứng dụng hẹp
- Việc thay đổi các bit khác MSB có thể không phát hiện được
*Kỹ thuật thủy vân dựa vào các phép hoán vị
Ưu điểm:
Trang 27- Có thể dùng với nhiều loại dữ liệu
- Không làm thay đổi giá trị của dữ liệu
Nhược điểm:
- Cơ sở dữ liệu vẫn bị sửa đổi ở một số bộ nhất định
- Chưa xây dựng được hàm khoảng cách
*Kỹ thuật thủy vân với dữ liệu không phải kiểu số
1.4.7 Ứng dụng của thủy vân
Thủy vân có thể ứng dụng trong rất nhiều mặt của đời sống xã hội Một
số ứng dụng cụ thể như:
- Bảo vệ bản quyền: Đây là ứng dụng đầu tiên phải kể đến của thủy vân Khi mà việc ăn cắp bản quyền xảy ra quá nhiều, thủy vân giúp nhúng thông tin của chủ cơ sở dữ liệu đó vào cơ sở dữ liệu để khẳng định quyền sở hữu, tránh trường hợp các bên khác tuyên bố bản quyền Với ứng dụng này cần sử dụng thủy vân bền vững bởi đặc tính không thể bị loại bỏ và không gây ra sự thay đổi đáng kể đối với cơ sở dữ liệu
- Chữ ký: Mỗi người có một chữ ký khác nhau nên nó được áp dụng hiệu quả vào thủy vân số Người dùng muốn xuất bản hoặc sao chép nội dung nào đó cần phải có chữ ký của chủ sở hữu cơ sở dữ liệu và chủ cơ sở dữ liệu lại được xác nhận bởi thủy vân
- Đánh dấu: Với những người đã mua cơ sở dữ liệu, bằng thủy vân, ta
có thể nhận biết được Bởi vậy ai sử dụng bản sao bất hợp pháp đều có thể tìm
ra
Trang 28- Điểu khiển sao chép: Các quy tắc cần phải thực hiện khi muốn sử dụng thông tin do chủ sở hữu đặt ra Phổ biến nhất là những quy tắc như:
“Không được sao chép nội dung này” hoặc “Có thể sao chép nội dung này, nhưng không được sao chép từ các bản sao” Để sao chép, sử dụng cơ sở dữ liệu, người dùng cần tuân thủ quy tắc đó
- Theo dõi việc quảng bá thông tin và xuất bản: Thủy vân được dùng
để trợ giúp các hệ thống tự động giám sát, chương trình phát sóng truyền hình, đài phát thanh, mạng máy tính và các kênh phân phối khác để theo dõi nội dung xuất hiện khi nào và ở đâu
Trang 29
CHƯƠNG 2 LƯỢC ĐỒ THỦY VÂN ĐẢM BẢO SỰ TOÀN VẸN
- 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 thấp 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
- Việc nhúng thủy vân vào những thuộc tính có ảnh hưở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
Trang 30Để 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 khóa thủy vân và một hàm băm
Lược đồ thủy vâ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(P, H 1 , H 2 ,…,H m , L 1 , L 2 , , L n ) Trong đó, P là thuộc tính khóa chính, H 1 , H 2 ,…, H m là các thuộc tính có ý nghĩa quan trọng hay còn gọi là các thuộc tính tác động cao hoặc thuộc tính
có ảnh hưởng cao, còn L 1 , L 2 , , L n là các thuộc tính không có ý nghĩa quan trọng hay còn gọi là các thuộc tính tác động thấp
Ví dụ, trong một lược đồ cơ sở dữ liệu 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, có ảnh hưởng lớn đối vớ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ự
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 không phải kiểu số đượ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 xác minh sự toàn vẹn của quan hệ
Trong hai thuật toán trên trước tiên cần sử dụng phân nhóm trong quan hệ, sao đó mới thực hiện nhúng thủy vân hoặc phát hiện thủy vân
2.2 Phân nhóm quan hệ
Với số lượng nhóm g, khóa thủy vân K chỉ chủ sở hữu cơ sở dữ liệu quan hệ biết, việc phân chia các bộ của quan hệ vào nhóm Gk (k = 0, 1,…, g-1) sẽ được thực hiện bằng công thức sau:
Trang 31Theo công thức (2.1), ta đưa ra định lý sau:
Định lý 2.1 Nếu chia các bộ của quan hệ vào các nhóm theo hàm hash
của khóa thủy vân và khóa chính của bộ thì mỗi bộ sẽ thuộc một nhóm và chỉ một nhóm
Chứng minh:
Giả sử quan hệ r có bộ thuộc lược đồ quan hệ R(P, A1 , , A ), trong đó P là thuộc tính khóa chính và có thuộc tính, phân các bộ vào g
Trang 32nhóm Theo công thức (2.1) bộ ri sẽ thuộc vào một nhóm Gk, tức ri∈ r thì ri∈
Gk (i = 1, 2, …, ; k = 0, 1, 2, …, g-1)
Mệnh đề 2.1 Quan hệ sau khi nhúng thủy vân, nếu có bất kỳ thay đổi
nào đối với giá trị khóa chính của một bộ thì trong thuật toán phát hiện thủy vân bộ đó sẽ không thể được xếp vào cùng một nhóm hoặc nếu cùng nhóm thì
vị trí của nó bị thay đổi so với thuật toán nhúng
Chứng minh
Giả sử quan hệ r có bộ thuộc lược đồ quan hệ R(P, A1 , , A ), trong đó P là thuộc tính khóa chính và thuộc tính, sẽ được sử dụng để nhúng thủy vân Khi đó, bộ i sẽ được phân vào một nhóm Gk (k = 0, 1, 2, …, g-1) theo công thức (2.1)
Một quan hệ nghi ngờ r’ được sử dụng để phát hiện thủy vân Theo (2.1) bộ i có giá trị khóa chính mới là P’ được phân vào một nhóm Gk’ (k’ = 0,
Từ (2) và (5) ta có điều phải chứng minh
- Đối với m thuộc tính có ảnh hưở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 và
ký hiệu cụ thể là: