Mô tả ứng dụng

Một phần của tài liệu Thủy vân cơ sở dữ liệu quan hệ dựa trên kỹ thuật tối ưu hoá áp dụng thuật toán tìm kiếm theo mẫu (Trang 54)

3.2.1. Cơ sở của ứng dụng

Quá trình xây dựng ứng dụng này được tiến hành dựa trên các sự kiện sau:

Một người dùng có ý định công bố kết quả nghiên cứu của anh ta và chắc chắn rằng anh ta có quyền tác giả đối với việc công bố dữ liệu đó, anh ta đã nhúng thuỷ vân vào dữ liệu trước khi công bố chúng. Đôi khi, người dùng nghi ngờ rằng dữ liệu của anh ta đã bị thay đổi và công bố đó là kết quả của một người nào khác. Để chứng minh quyền sở hữu dữ liệu, anh ta cố gắng khôi phục thuỷ vân đã nhúng vào tập dữ liệu bằng cách áp dụng kỹ thuật giải mã.

Trong quá trình xây dựng ứng dụng, luận văn đã giải thích tất cả các bước từ phân hoạch dữ liệu đến nhúng thuỷ vân rồi giải mã chúng. Luận văn cũng giải thích kiểu tấn công và khám phá dữ liệu để chứng minh rằng quyền sở hữu dữ liệu đã được tìm hiểu kỹ lưỡng.

3.2.2. Giả thiết

Xây dựng ứng dụng dựa trên giả định sau:

+ Kẻ tấn công không am hiểu về tập dữ liệu đã được thủy vân. Thậm chí nếu kẻ tấn công đó nhận ra rằng dữ liệu đã được nhúng thuỷ vân và cũng không biết được kỹ thuật đã được sử dụng.

+ Kẻ tấn công không biết được về khoá chính trong tập dữ liệu.

+ Kỹ thuật thuỷ vân có khả năng kiểm soát các bản ghi với nhiều thuộc tính. Tuy nhiên trong quá trình kiểm thử, dữ liệu chứa chỉ chứa một bản ghi với một thuộc tính số đơn.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

3.2.3. Một số kết quả thực nghiệm đạt đƣợc a. Tham số đầu vào áp dụng thực nghiệm

Bộ dữ liệu thực nghiệm trong luận văn này là bộ dữ liệu tự tạo được giả định là số liệu điện sinh hoạt của một vùng nào đó, bộ dữ liệu này bao gồm 8000 bộ. Để cho đơn giản trong quá trình cài đặt, giả sử bộ dữ liệu chỉ bao gồm 2 trường, một trường là khoá chính của quan hệ, một trường là trường được chọn để nhúng thuỷ vân.

Các thông số dùng cho quá trình thí nghiệm bao gồm: + Hàm băm: MD5

+ Khoá bí mật: KS = 89 + Số phân vùng: m = 20 + Tham số bí mật c = 0.75

+ Chuỗi bit đem nhúng (watermark): 10111 + Kích cỡ nhỏ nhất của 1 phân vùng:  =10

dữ liệu được thiết kế chứa trong file định dạng Excel với tên là Data.xls Tác giả dùng Matlab 7.04 làm môi trường cài đặt ứng dụng.

Thí nghiệm được chạy trên hệ thống có cấu hình Intel Pentium IV 2 Ghz, 512 MB Ram.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

b. Kết quả thực nghiệm

Sau nhiều lần chạy thử nghiệm tác giả nhận thấy, tốc độ giải mã thuỷ vân nhanh hơn gấp nhiều lần tốc độ nhúng thuỷ vân.

Thử nghiệm với các tấn công kết quả như sau: Thực hiện tấn công mỗi kiểu tấn công 20 lần, mỗi lần tác động trên các số lượng bản ghi khác nhau, kết quả thống kê như bản dưới đây:

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn Kiểu tấn công Số bản ghi bị tác động 100 200 300 500 600 1000 1500 2000 2500 3000 4000 5000 6000 7000 750 0 Xoá Thành công (lần) 20 20 18 20 18 14 14 13 8 4 3 1 0 0 0 Thất bại (lần) 0 0 2 0 2 6 6 7 12 16 17 19 20 20 20 Chèn Thành công (lần) 20 20 20 17 10 0 0 0 0 0 0 0 0 0 0 Thất bại (lần) 0 0 0 3 10 20 20 20 20 20 20 20 20 20 20 Sửa Thành công (lần) 20 20 20 18 19 17 19 18 18 18 16 12 11 11 12 Thất bại (lần) 0 0 0 2 1 3 1 2 2 2 4 8 9 9 8

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Nhận xét:

Căn cứ vào bảng đã thống kê các tấn công sau các quá trình thực nghiệm tác giả có nhận xét như sau:

+ Tỉ lệ thành công của kiểu tấn công thay đổi dữ liệu là cao nhất. Khi thay đổi các thông số đầu vào như khoảng cho phép dữ liệu thay đổi là 0.05, số lượng bộ bị thay đổi là 7500 (trên tổng số 8000 bộ) tương đương với trên 90% tổng số bộ bị thay đổi thì tỉ lệ thành công khi giải mã thuỷ vân vẫn là trên 60% (khoảng 63%).

+ Tỉ lệ thành công của kiểu tấn công chèn thay đổi dữ liệu là cao nhất. Khi thay đổi các thông số đầu vào như khoảng cho phép dữ liệu thay đổi là 0.05, số lượng bộ bị thay đổi là 7500 (trên tổng số 8000 bộ) tương đương với trên 90% tổng số bộ bị thay đổi thì tỉ lệ thành công khi giải mã thuỷ vân vẫn là trên 60% (khoảng 63%).

+ Tỉ lệ giải mã thuỷ vân thành công của kiểu tấn công xoá bộ kém hơn so với kiểu tấn công thay đổi dữ liệu.

i) Với số lượng bộ cho phép xoá đi là 50% tổng số bộ thì tỉ lệ giải mã thành công là trên 100%.

ii) Với 90% tổng số bộ bị xoá thì tỉ lệ giải mã thành công là trên 15%.

+ Tỉ lệ giải mã thuỷ vân thành công của kiểu tấn công chèn thêm bộ vào cơ sở dữ liệu là thấp nhất.

i) Nếu chèn thêm trung bình khoảng 7.5% đến 8% tổng số bộ vào cơ sở dữ liệu thì tỉ lệ giải mã thành công là 50%

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

ii) Nếu chèn thêm trên 10% (khoảng 12%) số lượng bộ mới vào cơ sở dữ liệu thì tỉ lệ giải mã thành công là 0%

Các thông số trên cũng có thể bị thay đổi nếu thay đổi các thông số đầu vào như: Tăng hoặc giảm khoảng thay đổi cho phép trên dữ liệu khi nhúng thuỷ vân; độ ngẫu nhiên của việc tấn công (phá hoại); số lượng phân vùng đi kèm với độ lớn của dữ liệu (tổng số bộ).

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

KẾT LUẬN

Thuỷ vân cơ sở dữ liệu là một trong kỹ thuật quan trọng để chứng minh quyền sở hữu đối với cơ sở dữ liệu sau khi được phân tán trên Internet. Đầu tiên, hình thành cơ chế thuỷ vân cơ sở dữ liệu quan hệ giống một bài toán tối ưu có ràng buộc, đây là kỹ thuật đã khắc phục được những điểm yếu trong các kỹ thuật thuỷ vân đã được đề xuất trước đây. Với nội dung này, luận văn đã tìm hiểu một số vấn đề: Tổng quan về kỹ thuật giấu tin và thuỷ vân, phương pháp thuỷ vân cơ sở dữ liệu quan hệ dựa vào kỹ thuật tìm kiếm theo mẫu và ứng dụng của chúng. Cụ thể luận văn đã đạt được các kết quả sau:

- Trình bày tổng quan về kỹ thuật giấu tin và thuỷ vân

- Trình bày cơ sở lý thuyết về thuỷ vân cơ sở dữ liệu quan hệ dựa trên kỹ thuật tối ưu áp dụng thuật toán tìm kiếm theo mẫu.

- Mô tả ứng dụng của kỹ thuật tìm kiếm theo mẫu trong quá trình nhúng thuỷ vân.

Hướng phát triển của đề tài

Tiếp tục nghiên cứu một số kỹ thuật khác áp dụng đối với thuỷ vân cơ sở dữ liệu quan hệ.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

PHỤ LỤC

1. Mã xác thực thông tin (MAC)

Trong phân hoạch dữ liệu, mã xác thực thông tin (MAC) được sử dụng để xác định nguồn gốc của thông tin

Hình 3.1. Sơ đồ hoạt động của MAC

Người gửi thông điệp thực hiện thông qua một thuật toán MAC để sinh ra một thẻ dữ liệu MAC. Sau đó, thông điệp và thẻ MAC được gửi tới người nhận. Người nhận lần lượt tiến hành chia thông điệp để truyền thông qua một thuật toán tương tự MAC sử dụng một khoá tương tự, kết quả được một thẻ dữ liệu MAC thứ hai. Khi đó, người nhận so sánh thẻ MAC đầu tiên nhận

Người gửi Người nhận

Thông điệp

Thuật toán MAC

MAC

Cách giải quyết: nếu giống nhau thì khi đó là tin cậy và toàn vẹn còn ngược lại là sai

Thông điệp Thông điệp MAC Thuật toán MAC MAC MAC Khoá K =? Khoá K

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

được trong quá trình truyền trước đó với thẻ MAC sinh ra thứ hai. Nếu thấy giống nhau, người nhận có thể cho rằng là an toàn, tính toàn vẹn của thông điệp không bị xâm phạm và thông điệp không bị thay đổi trong quá trình truyền nhận Xác thực bằng MAC M || | C M C So sánh K K

Nơi gửi thông tin

Mã xác thực (MAC)

Nơi nhận thông tin

Trong đó: M: Thông tin gốc

K: Khoá bí mật dùng chung giữa bên gửi và bên nhận ||: Nối mã xác thực vào thông tin gốc

C: Hàm tạo mã xác thực

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

2. Hàm băm

Khái niệm hàm băm

Hàm băm (hash function) là giải thuật nhằm sinh ra các giá trị băm tương ứng với mỗi khối dữ liệu (có thể là một chuỗi kí tự, một đối tượng trong lập trình hướng đối tượng, v.v...). Giá trị băm đóng vai trò gần như một khóa để phân biệt các khối dữ liệu, tuy nhiên, người ta chấp nhận hiện tượng trùng khóa hay còn gọi là đụng độ và cố gắng cải thiện giải thuật để giảm thiểu sự đụng độ đó. Hàm băm thường được dùng trong bảng băm nhằm giảm chi phí tính toán khi tìm một khối dữ liệu trong một tập hợp (nhờ việc so sánh các giá trị băm nhanh hơn việc so sánh những khối dữ liệu có kích thước lớn).

Vì tính thông dụng của bảng băm, ngày nay, đa số ngôn ngữ lập trình đều cung cấp thư viện ứng dụng bảng băm, trong đó có các vấn đề như: tập hợp (collection), danh sách (list), bảng(table), ánh xạ (mapping), từ điển (dictionary)). Thông thường, các lập trình viên chỉ cần viết hàm băm cho các đối tượng nhằm tích hợp với thư viện bảng băm đã được xây dựng sẵn.

Một hàm băm tốt phải thỏa mãn các điều kiện sau: * Tính toán nhanh.

* Các khoá được phân bố đều trong bảng. * Ít xảy ra đụng độ.

* Xử lý được các loại khóa có kiểu dữ liệu khác nhau.

Tính chất của hàm băm

Hai tính chất quan trọng của hàm băm là:

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

- Tính duy nhất: xác suất để có sự đụng độ (hash collision), tức là hai thông điệp khác nhau có cùng một kết quả băm, là nhỏ.

Ứng dụng

Các hàm băm được ứng dụng trong nhiều lĩnh vực, chúng thường được thiết kế phù hợp với từng ứng dụng. Ví dụ, các hàm băm mật mã học giả thiết sự tồn tại của một đối phương - người có thể cố tình tìm các dữ liệu vào với cùng một giá trị băm. Một hàm băm tốt là một phép biến đổi "một chiều", nghĩa là không có một phương pháp cụ thể để tính toán được dữ liệu vào nào đó tương ứng với giá trị băm mong muốn, khi đó việc giả mạo sẽ rất khó khăn.

Bảng băm, một ứng dụng quan trọng của các hàm băm, cho phép tra cứu nhanh một bản ghi dữ liệu nếu cho trước khóa của bản ghi đó (Lưu ý: các khóa này thường không bí mật như trong mật mã học, nhưng cả hai đều được dùng để "mở khóa" hoặc để truy nhập thông tin.) Ví dụ, các khóa trong một từ điển điện tử Anh-Anh có thể là các từ tiếng Anh, các bản ghi tương ứng với chúng chứa các định nghĩa. Trong trường hợp này, hàm băm phải ánh xạ các xâu chữ cái tới các chỉ mục của mảng nội bộ của bảng băm.

Các hàm băm dành cho việc phát hiện và sửa lỗi tập trung phân biệt các trường hợp mà dữ liệu đã bị làm nhiễu bởi các quá trình ngẫu nhiên. Khi các hàm băm được dùng cho các giá trị tổng kiểm, giá trị băm tương đối nhỏ có thể được dùng để kiểm chứng rằng một file dữ liệu có kích thước tùy ý chưa bị sửa đổi. Hàm băm được dùng để phát hiện lỗi truyền dữ liệu. Tại nơi gửi, hàm băm được tính cho dữ liệu được gửi, giá trị băm này được gửi cùng dữ liệu. Tại đầu nhận, hàm băm lại được tính lần nữa, nếu các giá trị băm không

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

trùng nhau thì lỗi đã xảy ra ở đâu đó trong quá trình truyền. Việc này được gọi là kiểm tra dư thừa (redundancy check).

Các hàm băm còn được ứng dụng trong việc nhận dạng âm thanh, chẳng hạn như xác định xem một file MP3 có khớp với một file trong danh sách một loạt các file khác hay không.

Do vậy hàm băm được dùng để phát hiện và chống xâm nhập; bảo vệ tính toàn vẹn của thông điệp được gửi qua mạng; tạo khóa từ mật khẩu, và tạo chữ kí điện tử.

Hàm băm một chiều:

- Biến đổi thông tin gốc có độ dài bất kỳ thành khối thông tin có độ dài cố định gọi là mã băm

- Chỉ có thể dùng hàm băm để tạo ra các mã băm từ thông tin gốc mà không làm ngược lại gọi là hàm băm một chiều.

Hoạt động cơ bản của hàm băm

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

SHA-1 và MD5 là hai thuật toán băm thông dụng nhất và được sử dụng trong rất nhiều hệ thống bảo mật.

MD5 (Message-Digest algorithm 5) là một hàm băm để mã hóa với giá trị băm là 128bit. Từng được xem là một chuẩn trên Internet, MD5 đã được sử dụng rộng rãi trong các chương trình an ninh mạng, và cũng thường được dùng để kiểm tra tính nguyên vẹn của tập tin.

MD5 được Ronald Rivest thiết kế vào năm 1991 để thay thế cho hàm băm trước đó, MD4 (cũng do ông thiết kế, trước đó nữa là MD2).

MD5 có hai ứng dụng quan trọng:

- MD5 được sử dụng rộng rãi trong thế giới phần mềm để đảm bảo rằng tập tin tải về không bị hỏng. 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).

Thuật giải

MD5 biến đổi một thông điệp có chiều dài bất kì thành một khối có kích thước cố định 128 bits. Thông điệp đưa vào sẽ được cắt thành các khối 512 bits. Thông điệp được đưa vào bộ đệm để chiều dài của nó sẻ chia hết cho 512. Bộ đệm hoạt động như sau:

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

- Trước tiên nó sẽ chèn bit 1 vào cuối thông điệp.

- Tiếp đó là hàng loạt bit Zero cho tới khi chiều dài của nó nhỏ hơn bội số của 512 một khoảng 64 bit .

- Phần còn lại sẻ được lấp đầy bởi một số nguyên 64 bit biểu diển chiều dài ban đầu của thông điệp.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

TÀI LIỆU THAM KHẢO

[1]. “Nghiên cứu và Phát triển Kỹ thuật Thuỷ vân Cơ sở Dữ liệu Quan hệ”, Báo cáo kết quả nghiên cứu của đề tài cơ sở 2008, 12/2008, Phòng CSDL & LT.

[2]. 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 & Công nghệ, ĐH Thái Nguyên, 2009.

[3]. Vũ Ba Đình, “Giấu thông tin trong cơ sở dữ liệu không gian”, Tạp chí

Một phần của tài liệu Thủy vân cơ sở dữ liệu quan hệ dựa trên kỹ thuật tối ưu hoá áp dụng thuật toán tìm kiếm theo mẫu (Trang 54)

Tải bản đầy đủ (PDF)

(69 trang)