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

- 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).

pdf69 trang | Chia sẻ: lylyngoc | Ngày: 08/01/2014 | Lượt xem: 1828 | Lượt tải: 3download
Bạn đang xem nội dung 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, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
các âm thanh nhỏ thấp một cách dễ dàng. Các mô hình phân tích tâm lí đã chỉ ra điểm yếu trên và thông tin này sẽ giúp ích cho việc chọn các âm thanh thích hợp cho việc giấu tin. Vấn đề khó khăn thứ hai đối với giấu thông tin trong âm thanh là kênh truyền tin. Kênh truyền hay băng thông chậm sẽ ảnh hưởng đến chất lượng thông tin sau khi giấu. Ví dụ để nhúng  20  Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên một đoạn java applet vào một đoạn âm thanh (16 bit, 44.100 Hz) có chiều dài bình thường thì các phương pháp nói chung cũng cần ít nhất là 20 bit/s. Giấu thông 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. Các phương pháp giấu thông tin trong âm thanh đều lợi dụng điểm yếu trong hệ thống thính giác của con người. c. Giấu tin trong phim (video) Cũng giống như giấu thông tin trong ảnh hay trong âm thanh, giấu tin trong phim cũng được quan tâm và được 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 (pay per view application). Các kỹ thuật giấu tin trong phim cũng được phát triển mạnh mẽ và cũng theo hai khuynh hướng là thuỷ vân số và giấu thông tin. Nhưng phần này chỉ quan tâm tới các kỹ thuật giấu tin trong phim. Một phương pháp giấu tin trong phim được Cox đưa ra là phương pháp phân bố đề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. Nhiều nhà nghiên cứu đã dùng những hàm cosin riêng và các hệ số truyền sóng riêng để giấu tin. Trong các thuật toán đầu tiên thường các kỹ thuật cho phép giấu các ảnh vào trong phim nhưng thời gian gần đây các kỹ thuật cho phép giấu cả âm thanh và hình ảnh vào phim. Ví dụ Swanson đã sử dụng phương pháp giấu theo khối, phương pháp này đã giấu được hai bít vào khối 8*8. Hay gần đây nhất là phương pháp của Mukherjee là kỹ thuật giấu âm thanh vào phim sử dụng cấu trúc lưới đa chiều... Giấu tin là một công nghệ mới phức tạp, đang được các nhà khoa học tập trung nghiên cứu ở nhiều nước trên thế giới như Đức, Mỹ, ý, Canada,  21  Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên Nhật Bản…Tuy nhiên, những kết quả thực nghiệm cho thấy để có thể ứng dụng thực tế thì lĩnh vực này cần phải có thêm thời gian để nghiên cứu thẩm định nhưng các nhà khoa học cũng khẳng định rằng đâ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. Công việc hiện nay của các nhà khoa học là đang tập trung xây dựng một hệ thống lí thuyết chính xác cho vấn đề giấu tin, đây là một mảnh đất mới cho các nhà khoa học khám phá. Một trong những kỹ thuật quan trọng của giấu tin đang được rất nhiều các nhà khoa học quan tâm và phát triển nhất, đó là kỹ thuật thuỷ vân (watermark). [3], [11], [12] 1.2. Cơ sở lý thuyết về thuỷ vân 1.2.1. Khái niệm thuỷ vân và nhúng thuỷ vân - Thuỷ vân là một tín hiệu bảo mật và không nhận biết, được nhúng vào dữ liệu gốc để truyền dữ liệu đã nhúng đi.[9] - Nhúng thủy vân (watermarking) là một trong những kỹ thuật giấu dữ liệu hiện đại, là quá trình chèn thông tin vào dữ liệu đa phương tiện nhưng bảo đảm không nhận biết được, nghĩa là chỉ làm thay đổi nhỏ dữ liệu gốc. Thông thường người ta chỉ đề cập đến nhúng thủy vân số. Một tập các dữ liệu số thứ cấp - gọi là mã đánh dấu bản quyền hay thủy vân (watermark), được nhúng vào dữ liệu số sơ cấp - gọi là dữ liệu bao phủ (ví dụ như văn bản, hình ảnh, âm thanh và phim số, ...). Dữ liệu sau quá trình nhúng được gọi là dữ liệu nhúng.[10], [12], [13] 1.2.2. Lịch sử phát triển của thuỷ vân Tanaka (1990), Caronni và Tirkel (1993) lần lượt đưa ra những ấn bản đầu tiên về nhúng thủy vân nhưng chưa nhận được sự quan tâm đúng mức.  22  Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên Đến năm 1995, chủ đề này mới bắt đầu được quan tâm và từ đó, nhúng thủy vân số đã phát triển tốc độ nhanh với nhiều hướng nghiên cứu và phương pháp thực hiện khác nhau. Nhúng thủy vân được ứng dụng trong nhiều lĩnh vực như bảo vệ quyền sở hữu, điều khiển việc sao chép, xác nhận giấy tờ, hay truyền đạt thông tin khác, …trong đó ứng dụng phổ biến là cung cấp bằng chứng về bản quyền tác giả của các dữ liệu số bằng cách nhúng các thông tin bản quyền. 1.2.3. Mô hình hệ thống tổng quát quá trình nhúng và khôi phục thuỷ vân Hình 1.4. Sơ đồ nhúng thuỷ vân Thuỷ vân Dữ liệu nhúng Dữ liệu bao phủ Mã cá nhân / công cộng Quyết định thuỷ vân Dữ liệu nhúng Thuỷ vân Mã cá nhân / công cộng  23  Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên Hình 1.5. Sơ đồ khôi phục thuỷ vân Tất cả các phương pháp nhúng thủy vân đều có chung các khối sau: một hệ thống nhúng thủy vân và một hệ thống khôi phục thủy vân. [9], [10], [12], [13] Hình 1.4. trình bày quá trình nhúng thủy vân tổng quát. Đầu vào là thủy vân, dữ liệu cần nhúng và mã cá nhân hay công cộng. Thủy vân có thể ở bất kì dạng nào như chữ số, văn bản hay hình ảnh. Khoá có thể được dùng để tăng cường tính bảo mật, nghĩa là ngăn chặn những người không có bản quyền khôi phục hay phá hủy thủy vân. Các hệ thống thực tế dùng ít nhất là một khoá, thậm chí kết hợp nhiều khoá. Đầu ra là dữ liệu đã được nhúng thủy vân. Quá trình khôi phục thủy vân tổng quát được cho ở hình 1.5. Đầu vào là dữ liệu đã nhúng thủy vân, khoá và dữ liệu gốc (có thể có hoặc không tuỳ thuộc vào phương pháp). Đầu ra hoặc là thủy vân khôi phục được hoặc đại lượng nào đó chỉ ra mối tương quan giữa nó và thủy vân cho trước ở đầu vào. Phụ thuộc vào mục đích và ứng dụng mà các yêu cầu của hệ thống nhúng thủy vân được đặt ra. Với các hệ thống thực tế, chúng đòi hỏi các yêu cầu sau: − Tính không nhận biết: các điều chỉnh gây ra do nhúng thủy vân phải thấp hơn ngưỡng cảm thụ, nghĩa là các mẫu dùng trong nhúng thủy vân chỉ được phép thay đổi nhỏ. − Tính bền vững: đây là một yêu cầu nòng cốt của nhúng thủy vân. − Khôi phục thủy vân cần hoặc không cần dữ liệu gốc. − Trích thủy vân hay kiểm chứng sự tồn tại của thủy vân.  24  Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên − Các khoá và bảo mật thủy vân. 1.2.4. Một số ứng dụng của thuỷ vân Một ứng dụng phổ biến của kỹ thuật thuỷ vân là đưa ra một bằng chứng về quyền sở hữu đối với dữ liệu số bằng cách nhúng dấu hiệu mang tính bản quyền vào phim hoặc các sản phẩm ảnh số. Ngoài ra, còn có những ứng dụng khác : - Tự động điều khiển và tự hiệu chỉnh sao chép tài liệu trên Web. Ví dụ một robot tìm web để đánh dấu vào tài liệu và từ đó nhận dạng sản phẩm bất hợp pháp. - Tự động kiểm tra việc truyền nhận sóng vô tuyến. Ví dụ một robot có thể “nghe” một trạm thu phát sóng radio và tìm kiếm những dấu hiệu để biểu thị một phần cụ thể của bản nhạc hoặc lời quảng cáo vừa được phát ra. - Việc mở rộng dữ liệu- để thêm thông tin mang lại lợi ích một cách công khai. - Ứng dụng trong lấy dấu vân tay (cho phép nhận dạng dữ liệu đã phân tán).  25  Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên Chƣơng 2- THUỶ 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 2.1. Giới thiệu về thuỷ vân cơ sở dữ liệu (database watermarking) Tốc độ phát triển nhanh của Internet và các công nghệ có liên quan đã đưa đến một tiềm năng chưa từng có đối với việc truy cập và phân phối lại các sản phẩm kỹ thuật số. Trong bối cảnh như vậy, việc thực thi quyền sở hữu dữ liệu là một yêu cầu quan trọng đòi hỏi các giải pháp đồng bộ, bao gồm các khía cạnh về kỹ thuật, về tổ chức, và cả luật pháp. Mặc dù vẫn chưa có được những giải pháp toàn diện như vậy nhưng trong các năm gần đây, các kỹ thuật thuỷ vân đã đóng vai trò quyết định nhằm giải quyết vấn đề về quyền sở hữu này. Những kỹ thuật như vậy cho phép người chủ dữ liệu có thể nhúng một thuỷ vân ẩn vào dữ liệu. Một thuỷ vân thường mô tả những thông tin có thể được dùng để chứng minh quyền sở hữu dữ liệu, chẳng hạn như tên chủ sở hữu, nguồn gốc, hoặc người tiếp nhận nội dung này. Việc nhúng thông tin an toàn đòi hỏi thuỷ vân được nhúng trong dữ liệu không thể bị làm giả mạo hoặc bị tẩy xoá một cách dễ dàng. Nhúng ẩn có nghĩa là thuỷ vân không thể nhìn thấy được trong dữ liệu. Hơn nữa, việc phát hiện thuỷ vân được thực hiện theo phương pháp mù, tức là không đòi hỏi dữ liệu gốc cũng như thuỷ vân gốc. Đã có một số kỹ thuật thuỷ vân được phát triển để nhúng thủy vân phim, âm thanh, ảnh và dữ liệu văn bản.  26  Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên Trái lại, vấn đề thuỷ vân dữ liệu quan hệ đã không nhận được sự chú ý thích đáng. Tuy nhiên, có nhiều ngữ cảnh ứng dụng trong đó dữ liệu trở nên một tài sản quan trọng, vì vậy vấn đề về quyền sở hữu phải được thực thi một cách cẩn thận. Ví dụ dữ liệu về thời tiết, dữ liệu về thị trường chứng khoán, dữ liệu về hành vi của khách hàng, dữ liệu y học và khoa học. Việc nhúng thuỷ vân vào dữ liệu quan hệ có thể thực hiện được bởi trong thực tế, 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. Cho đến nay, mới có một vài cách tiếp cận đối với bài toán thuỷ vân dữ liệu quan hệ được đề xuất. Tuy nhiên, những kỹ thuật này không bền vững đối với các tấn công thủy vân. Đề tài này trình bày một kỹ thuật thuỷ vân cơ sở dữ liệu quan hệ có độ bền vững cao so với các kỹ thuật khác. Kỹ thuật này bền vững đối với các tấn công xoá, sửa và chèn các bản ghi. [1], [2], [8],[9]  27  Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 2.2. Mô hình chi tiết hệ thống thuỷ vân cơ sở dữ liệu Kỹ thuật tối ưu gồm hai quá trình, quá trình mã hoá và giải mã thuỷ vân. Sơ đồ khối tóm tắt các thành phần chính của mô hình hệ thống thuỷ vân như sau: Hình 2.1: Các thời kỳ mã hoá và giải mã thuỷ vân. Một bộ dữ liệu D được biến đổi thành bộ dữ liệu đã thuỷ vân DW bằng cách dùng hàm mã hoá thuỷ vân, đầu vào khoá bí mật KS chỉ được người chủ sở hữu biết, và một thuỷ vân W. Thuỷ vân làm thay đổi dữ liệu. Tuy nhiên, những thay đổi này được kiểm soát bằng cách sử dụng tập các ràng buộc thích hợp tham chiếu đến tập G. Các ràng buộc này giới hạn lượng thay đổi để có thể thực hiện trên dữ liệu. Quá trình mã hoá thuỷ vân gồm ba bước chính sau: T* KS W’ D W G Dw D’w  1',.....,' mo SS  1,....., mo SS Phân hoạch dữ liệu Phân hoạch dữ liệu Nhúng thuỷ vân Đánh giá ngƣỡng tối ƣu Kênh truyền Giải mã ngƣỡng Bầu chọn theo đa số  28  Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên Bước 1: Phân hoạch dữ liệu: dùng khoá bí mật KS , bộ dữ liệu D được chia thành m phần {So , . . . , Sm-1 } không giao nhau. Bước 2: Nhúng thuỷ vân: Một bít thuỷ vân được nhúng vào mỗi phần bằng cách thay đổi các thống kê phân hoạch trong khi vẫn thỏa mãn các ràng buộc sử dụng trong bộ G. Sự thay đổi này được thực hiện bằng cách giải bài toán tối ưu hoá có ràng buộc. Bước 3: Đánh giá ngưỡng tối ưu: các thống kê bit nhúng được sử dụng để tính toán ngưỡng tối ưu T* - ngưỡng làm cực tiểu hoá khả năng ( xác suất ) xảy ra lỗi giải mã. Bộ dữ liệu đã nhúng thuỷ vân DW được chuyển đi qua các kênh truyền và do đó có thể chịu những tấn công có chủ đích hoặc không có chủ đích nhằm phá huỷ thông tin thuỷ vân. Chú ý rằng những tấn công có chủ đích có thể được thực hiện mà không cần bất cứ sự hiểu biết gì về khoá bí mật KS hoặc bộ dữ liệu D. Giải mã thuỷ vân là quá trình lấy ra thuỷ vân đã nhúng từ bộ dữ liệu đã nhúng thuỷ vân DW, sử dụng khoá bí mật KS và ngưỡng tối ưu T*. Thuật toán giải mã này không rõ ràng bởi bộ dữ liệu gốc D không yêu cầu giải mã thành công thuỷ vân đã nhúng. Quá trình giải mã thuỷ vân được chia thành ba bước chính sau: Bước 1: Phân hoạch bộ dữ liệu: sử dụng thuật toán phân hoạch dữ liệu đã dùng trong phần mã hoá trên, sinh ra các phân vùng dữ liệu. Bước 2: Giải mã ngưỡng: Các thống kê của mỗi phân vùng được đánh giá và bit đã nhúng được giải mã bằng cách dùng lược đồ giải mã ngưỡng dựa trên ngưỡng tối ưu T*.  29  Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên Bước 3: Bầu chọn theo đa số: Các bit thuỷ vân được giải mã sử dụng kỹ thuật bầu chọn theo đa số. Tiếp theo sẽ trình bày chi tiết các kỹ thuật, các thuật toán cho quá trình mã hoá và giải mã thuỷ vân.[9] 2.3. Phân hoạch dữ liệu Thuật toán phân hoạch dữ liệu phân chia bộ dữ liệu thành các phần, các tập hợp con dựa vào khoá bí mật KS . Bộ dữ liệu D là một cơ sở dữ liệu quan hệ với lược đồ ),...,,( 10 AAPD trong đó P là thuộc tính khoá chính, 10 ,..., AA là  thuộc tính dùng để nhúng thuỷ vân và D là số bản ghi trong D . Bộ dữ liệu D được chia thành m phần không giao nhau  10 ,..., mSS , sao cho mỗi phần iS chứa trung bình m D bản ghi từ bộ dữ liệu D . Các phần không giao nhau, tức là, với hai phần bất kỳ iS và jS mà ji  thì  ji SS  . Với mỗi bản ghi Dr  , thuật toán phân hoạch dữ liệu tính toán mã xác thực thông tin ( MAC ) để đảm bảo an toàn và mã này được cho bởi hàm ))||.(||( SS KPrHKH , trong đó Pr. là khoá chính của bản ghi r ,  H là hàm băm an toàn và || là toán tử nối. Sử dụng MAC đã tính, các bản ghi được đưa vào các phân vùng. Với bản ghi r , phân vùng tương ứng được tính như sau: mKPrHKHrpartition SS mod))||.(||()(  Sử dụng đặc tính này của hàm băm để phân phối các bản ghi đồng đều vào các phân vùng, kỹ thuật phân hoạch này chia trung bình m D vào mỗi phân  30  Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên vùng. Hơn nữa, kẻ tấn công không thể đoán được các bản ghi đã được đưa vào phân vùng nào nếu không biết rõ về khoá bí mật SK và số phân vùng dữ liệu đã phân hoạch m được giữ bí mật. Không nhất thiết phải giữ bí mật m . Tuy nhiên, việc giữ bí mật có thể gây khó khăn hơn cho kẻ tấn công muốn tái lập các phần đó. Thuật toán phân hoạch dữ liệu được mô tả như sau: Thuật toán: get_partitions Đầu vào: bộ dữ liệu D , khoá bí mật SK , số phân vùng m Đầu ra: Các phân vùng dữ liệu 10 ,..., mSS 1. 10 ,..., mSS  {} 2. for each bản ghi Dr  3. mKPrHKHrpartition SS mod))||.(||()(  4. chèn r vào )(rpartitionS 5. return 10 ,..., mSS Mặc dù hầu hết các dữ liệu quan hệ đều có khóa chính, kỹ thuật này có thể được mở rộng để xử lý trường hợp khi dữ liệu quan hệ không có khoá chính. Giả sử quan hệ thuộc tính đơn,  bit ý nghĩa nhất ( MSB ) của dữ liệu có thể được dùng để thay thế cho khoá chính. Việc sử dụng MSB cho việc nhúng thủy vân sẽ không làm thay đổi  bit ý nghĩa nhất này. Tuy nhiên, nếu quá nhiều bản ghi chia sẻ cùng  bít MSB có thể cho phép kẻ tấn công suy  31  Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên luận được thông tin về sự phân phối trong các phần dữ liệu. Trường hợp quan hệ đa thuộc tính, sử dụng các thuộc tính nhận biết thay vì sử dụng khoá chính; ví dụ dữ liệu y học, ta có thể sử dụng tên đầy đủ của bệnh nhân, địa chỉ bệnh nhân, ngày tháng năm sinh của bệnh nhân. Ký hiệu Ý nghĩa m Số phân vùng  Kích thước nhỏ nhất của một phân vùng W Chuỗi bit thuỷ vân {bl-1,…,b0} l Chiều dài của chuỗi bit thuỷ vân Xmax Các thống kê nhúng thuỷ vân cực đại Xmin Các thống kê nhúng thuỷ vân cực tiểu Si Phân vùng dữ liệu thứ i |Si|, n Độ dài của vector Si Ks Khoá bí mật T* Ngưỡng giải mã tối ưu Gi Ràng buộc thứ i i Vector thao tác trong R n Hình 2.2. Bảng biểu diễn các ký hiệu sử dụng trong thuật toán  32  Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 2.4. Nhúng thuỷ vân Thuật toán nhúng thuỷ vân bằng cách mã hoá bit có thể coi như một bài toán tối ưu có ràng buộc. Ở đây, thuật toán tìm kiếm theo mẫu được sử dụng để giải bài toán tối ưu. Việc sử dụng thuật toán tối ưu được quyết định tuỳ thuộc thời điểm ứng dụng và các yêu cầu tính toán. Để đơn giản, giả sử các bản ghi trong phân vùng iS chứa thuộc tính số đơn. Trong trường hợp này, mỗi phần iS có thể được biểu diễn bằng một véctơ dữ liệu số n inii ssS  ],...,[ 1 . 2.4.1 Mã hoá bít đơn Cho bít thuỷ vân ib , và véctơ dữ liệu số n inii ssS  ],...,[ 1 . Thuật toán mã hoá bít ánh xạ vectơ dữ liệu iS thành vectơ dữ liệu mới ii W i SS  , trong đó n inii  ],...,[ 1 là vectơ thao tác. Các thao tác bị hạn chế bởi các ràng buộc trong bộ   ipii ggG ,...,1 . Việc mã hoá này dựa trên hàm mã hoá tối ưu gọi là hàm giấu được định nghĩa như sau: Hàm giấu  : n , với  là tập hợp các tham số bí mật do người chủ sở hữu dữ liệu đưa ra. Tập hợp  có thể được xem như là một phần của khoá bí mật. Chú ý rằng khi hàm giấu được áp dụng cho iiS  thì chỉ vectơ thao tác i là biến, trong khi iS và  là các hằng số. Để mã hoá bit ib vào trong tập iS , thuật toán mã hoá bít sẽ làm tối ưu hóa hàm hàm giấu )( iiS  . Bài toán tối ưu hóa sẽ là bài toán cực đại hoặc cực tiểu hàm giấu tùy thuộc vào bit ib :  33  Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên Nếu bít ib =1 thì thuật toán mã hoá bit thực hiện giải bài toán cực đại hoá: i max )( iiS  thoả mãn ràng buộc iG Nếu bít ib =0 thì bài toán đơn giản được chuyển thành bài toán cực tiểu hóa. Giải pháp cho bài toán tối ưu hoá sinh ra vectơ thao tác * i để *)( iiS  tối ưu. Khi đó, bộ dữ liệu mới *ii W i SS  . Việc cực đại hoá cho ib =1 và cực tiểu hoá cho ib =0, đảm bảo rằng các giá trị của hàm *)( iiS  sinh ra trong cả hai trường hợp được đặt ở vị trí có khoảng cách lớn nhất và do đó làm cho bít được chèn bền vững hơn đối với các tấn công, đặc biệt là các tấn công thay đổi dữ liệu. Thuật toán mã hoá bít đơn được mô tả như sau: Thuật toán: encode_single_ bit Đầu vào: Tập dữ liệu Si, Bit bi, Tập ràng buộc Gi, Tập tham số bí mật  , Các tập thống kê Xmax, Xmin Đầu ra: Tập dữ liệu * iiS  1. If ( )( iS then return Si 2. If (b==1) then 3. Maximize ( )( iiS  ) thỏa mãn ràng buộc Gi 4. Chèn *)( iiS  vào Xmax  34  Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 5. else 6. Minimize ( )( iiS  ) thỏa mãn ràng buộc Gi 7. Chèn *)( iiS  vào Xmin 8. return * iiS  Thuật toán mã hóa bít nhúng bít ib vào phần iS nếu iS . Giá trị của  là kích thước cực tiểu của phân vùng. Việc cực đại hoá và cực tiểu hoá trong thuật toán mã hoá bít làm tối ưu hoá hàm giấu *)( iiS  thoả mãn các ràng buộc trong iG . Các thống kê cực đại hoá và cực tiểu hoá được ghi lại cho mỗi bước mã hoá trong maxX , minX tương ứng như đã được chỉ ra trong các dòng 4 và 7 của thuật toán mã hoá. Các thống kê này được dùng để tính toán các tham số giải mã tối ưu. Tập hợp các ràng buộc iG biểu diễn giới hạn thay đổi cho phép có thể được thực hiện trên các phần tử của iS . Các ràng buộc mô tả không gian khả thi cho vectơ thao tác i với mỗi bước mã hoá bit tùy thuộc vào từng ứng dụng và dữ liệu. Các ràng buộc này tương tự với các ràng buộc được thực hiện trên các thuật toán nhúng thuỷ vân cho âm thanh, hình ảnh, và phim với yêu cầu chủ yếu là thuỷ vân không thể phát hiện được bằng hệ thống nghe nhìn của con người. Ví dụ: Các ràng buộc phạm vi có thể được dùng để kiểm soát sự thay đổi của ij , tức là:  35  Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên maxmin ijijij  Kiểu ràng buộc khác có thể yêu cầu bộ dữ liệu đã thuỷ vân duy trì các thống kê nào đó. Ví dụ, trung bình bộ dữ liệu sinh ra bằng trung bình bộ dữ liệu gốc, khi đó ràng buộc có dạng: 0 1   n j ij Một vài ràng buộc khác có thể được tạo ra phụ thuộc vào các yêu cầu ứng dụng. Các ràng buộc này được xử lý bằng thuật toán mã hoá bít dùng các kỹ thuật tối ưu hoá có ràng buộc. Hàm giấu được sử dụng ở đây phụ thuộc vào các thống kê dữ liệu. Các giá trị trung bình và phương sai của bộ dữ liệu mới ii W i SS  tương ứng là )( iiS   và 2 )( iiS   ; gọi tắt là  và 2 . Hình 2.3: Phân phối của tập iiS  trên trục số và các đầu vào tail được khoanh tròn. Điểm tham chiếu :   cref , trong đó )1,0(c là một số thực bí mật, một phần của tập  . Các điểm dữ liệu trong iiS  ở trên ref như là các đầu vào “tail” được mô tả trong hình 2.3.  36  Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên Hàm giấu c được định nghĩa là số đầu vào tail đã chuẩn hoá bằng độ dài của iS , cũng như tail count được chuẩn hoá. Hàm này được tính như sau:    n j refsiic ijijn S 1 }{1 1 )( trong đó : n là độ dài của iS {}1 là hàm chỉ được định nghĩa như sau: Chú ý rằng tham chiếu ref phụ thuộc vào cả  và  , có nghĩa là nó không cố định và thay đổi theo các thống kê iiS  . Tail count )( iic S  được chuẩn hoá phụ thuộc vào phân phối của iiS  và tham chiếu động. Hàm mục tiêu )( iic S  là hàm phi tuyến và không khả vi, do đó bài toán tối ưu hoá trở nên gần với bài toán tối ưu hoá có ràng buộc phi tuyến. Các phương pháp tiếp cận truyền thống dựa vào độ dốc (gradient) không thể áp dụng được cho những bài toán như thế này. Có hai kỹ thuật để giải bài toán tối ưu hóa này là thuật toán di truyền và kỹ thuật tìm kiếm theo mẫu. Luận văn này sử dụng kỹ thuật tìm kiếm theo mẫu. Việc giải bài toán tối ưu hoá này không nhất thiết phải tìm ra lời giải toàn cục bởi vì việc tìm ra lời giải như thế này có thể đòi hỏi một lượng tính toán rất lớn. Mục đích chính ở đây  37  Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên là tìm ra lời giải gần tối ưu đảm bảo các giá trị cực tiểu hoá hàm )( iic S  và cực đại hoá hàm )( iic S  cách xa nhau. Thuật toán di truyền được dùng định rõ tổng thể các lời giải tối ưu bằng thời điểm xử lý, trong khi tìm kiếm theo mẫu được dùng để cung cấp một lời giải tối ưu cục bộ không theo thời gian xử lý 2.4.2. Thuật toán tìm kiếm theo mẫu Thuật toán di truyền không tìm ra được tối ưu cục bộ, tuy nhiên thuật toán di truyền yêu cầu một số lượng lớn hàm đánh giá tập trung thành tối ưu toàn cục. Do vậy, giải thuật di truyền được sử dụng chỉ khi thời gian xử lý không yêu cầu chính xác và thuỷ vân được thực hiện độc lập. Kỹ thuật tìm kiếm theo mẫu cho phép thực hiện nhanh hơn. Các phương pháp tìm kiếm theo mẫu là một lớp các phương pháp tìm kiếm trực tiếp cho quá trình tối ưu hoá phi tuyến. Các phương pháp tìm kiếm theo mẫu này đã được sử dụng rộng rãi bởi tính đơn giản và tính thực tế của chúng. Tìm kiếm theo mẫu bắt đầu tại điểm ban đầu và thử hàm mục tiêu tại mẫu các điểm đã định trước xoay quanh điểm với mục tiêu tạo ra thế mới tốt hơn. Sự di chuyển này tương tự việc di chuyển thăm dò. Nếu thử thành công (tức là tạo ra một thế mới tốt hơn), do vậy quá trình này được lặp lại với mẫu xoay quanh điểm mới tốt nhất. Trái lại, kích cỡ của mẫu thử sẽ giảm và hàm mục tiêu được thử lại với điểm hiện tại này. Để cải thiện việc thực hiện việc tìm kiếm theo mẫu, hàm mục tiêu )( iic S  được xấp xỉ bằng các hàm sigmoid trơn như sau:  38  Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên    n j ijijrefiic sSigmoid n S f 1 ),( )( 1 )(ˆ  trong đó )(),( xSigmoid  là hàm sigmoid (xích ma) với các tham số ),(  . )(),( xSigmoid  = )(1 1 1    xe Với 0 , }8,2,1{ , hàm )(),( xSigmoid  có dạng như sau: Hình 2.4. Biểu diễn Sigmoid(α,τ ) tại τ = 0 và α = {1, 2, 8}. Các ràng buộc có thể được xử lý nhờ các kỹ thuật trước đó. Tuy nhiên, việc tìm kiếm theo mẫu có thể xử lý các ràng buộc bằng cách hạn chế việc di chuyển thăm dò chỉ theo các hướng không gian khả thi; do đó đảm bảo giải pháp được sinh ra là khả thi. Hoạt động có hệ thống của việc tìm kiếm theo  39  Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên mẫu và kích cỡ mẫu dễ thích nghi dẫn đến sự hội tụ đến các giải pháp tối ưu khả thi nhanh hơn. Tuy nhiên, việc tìm kiếm theo mẫu không đảm bảo tìm ra tối ưu toàn bộ. Vấn đề này có thể được khắc phục bằng cách bắt đầu thuật toán từ các điểm khả thi đầu tiên khác nhau. 2.4.3. Thuật toán nhúng thuỷ vân Thuỷ vân là một bộ l bít W=bl-1, . . . , b0 được nhúng vào các phần dữ liệu  10 ,..., mSS . Để việc nhúng thuỷ vân được nhiều lần trong bộ dữ liệu, độ dài thuỷ vân l được chọn sao cho: ml  . Thuật toán nhúng thuỷ vân sẽ nhúng bít ib vào phần kS sao cho ilk mod . Kỹ thuật này đảm bảo mỗi bít thuỷ vân được nhúng       l m lần trong bộ dữ liệu D . Thuật toán nhúng thuỷ vân được mô tả như sau: Thuật toán: embed_watermark Đầu vào: Tập dữ liệu D, Khóa bí mật K, Số phân vùng m, Thủy vân W={b0, …bi-1} Đầu ra: Tập dữ liệu đã nhúng thủy vân DW, Ngưỡng giải mã tối ưu T* 1. Dw, Xmax, Xmin  {} 2. S0, …,Sm-1  get_partitions(D, Ks, m) 3. for each Phân vùng Sk  40  Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 4. i  k mod l 5. Sk w  encode_single_bit (bi, Sk, c, Xmax, Xmin) 6. Chèn Sk w vào Dw 7. T*  get_optimal_thershold(Xmax, Xmin) 8. return Dw, T* Thuật toán nhúng thuỷ vân sẽ sinh ra các phần  10 ,..., mSS bằng cách gọi hàm partitionsget _ , sau đó với mỗi phần kS bít thuỷ vân ib được mã hoá bằng cách sử dụng thuật toán mã hoá bít đơn (encode_single_bit). Phần thay đổi sinh ra W kS được chèn vào bộ dữ liệu đã nhúng thuỷ vân. Các thống kê ),( minmax XX thu được sau mỗi bít nhúng và được sử dụng bằng thuật toán get_optimal_threshold để tính toán ngưỡng giải mã tối ưu. 2.5. Đánh giá ngƣỡng giải mã Trong phần trước, ta đã tìm hiểu kỹ thuật mã hoá bít. Nhúng bit thuỷ vân bi ở Si sinh ra W iS . Trong phần này, ta sẽ tìm hiểu kỹ thuật giải mã bít – kỹ thuật được dùng để lấy ra bít thuỷ vân đã nhúng ib từ phần W iS . Kỹ thuật giải mã bít dựa trên ngưỡng tối ưu T* để làm cực tiểu hoá xác suất lỗi giải mã. Với phần dữ liệu W iS , kỹ thuật giải mã bít sẽ tính toán hàm giấu )( WiS và so sánh với ngưỡng giải mã tối ưu T* để giải mã bít đã nhúng ib . Nếu )( WiS >T* bít giải mã là 1, ngược lại bít giải mã là 0.  41  Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên Ví dụ: sử dụng hàm giấu đã được mô tả ở phần trước, kỹ thuật giải mã tính toán tail count đã chuẩn hoá của W iS bằng cách tính giá trị tham chiếu ref và đếm số đầu vào trong W iS lớn hơn ref . Sau đó, tail count đã chuẩn hoá được so sánh với T* được thể hiện trong hình 2.5. Giá trị của ngưỡng T* nên được tính toán cẩn thận để làm cực tiểu hoá xác suất lỗi giải mã bít. Hình 2.5. Lược đồ ngưỡng giải mã Xác suất lỗi giải mã bít được định nghĩa là xác suất bit nhúng được giải mã sai. Ngưỡng giải mã tối ưu T* được chọn để làm cực tiểu hoá xác suất lỗi giải mã. Giai đoạn nhúng bít dựa trên việc cực tiểu hoá hoặc cực đại hoá hàm giấu tail count; các giá trị hàm giấu đã tối ưu hoá này sẽ được tính trong giai đoạn mã hoá để tính ngưỡng tối ưu T*. Các giá trị hàm giấu cực đại hoá tương ứng với ib =1 được lưu trong tập maxX . Tương tự, các giá trị hàm giấu cực tiểu hoá được lưu trữ trong minX . Gọi errP , 0P và 1P tương ứng là xác suất lỗi giải mã, xác suất bit mã hóa là 0 và xác suất bit mã hóa là 1. Cho eb , db , và )(xf tương ứng là bit mã hoá, bit giải mã, và hàm mật độ xác suất. Khi đó, errP được tính như sau: errP = )0,1()1,0(  eded bbPbbP  42  Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên = 01 )0|1()1|0( PbbPPbbP eded  = 01 )0|()1|( PbTxPPbTxP ee  =     T e T e dxbxfPdxbxfP )0|()1|( 01 Để cực tiểu hoá xác suất lỗi giải mã ( errP ) đối với ngưỡng T, ta lấy đạo hàm cấp một của errP đối với T để xác định ngưỡng tối ưu T*, như sau:             T e T e err dxbxf T Pdxbxf T P T P )0|()1|( 01 )0|()1|( 01  ee bTfPbTfP Các hàm )0|( ebxf và )1|( ebxf được đánh giá từ các thống kê minX và maxX tương ứng. Qua các thực nghiệm về minX và maxX , ta thấy các phân phối )0|( ebxf và )1|( ebxf có thể được đánh giá như các phân phối Gaussian ),( 00 N và ),( 11 N . Tuy nhiên, phân tích sau đây có thể tiếp tục được sử dụng với các kiểu phân phối khác. 0P có thể được đánh giá bằng |||| || minmax min XX X  , 1P 01 P . Thay thế các biểu thức Gaussian cho )0|( ebxf và )1|( ebxf , thì đạo hàm cấp một của errP có dạng: ) 2 )( exp( 2 ) 2 )( exp( 2 2 0 2 0 0 0 2 1 2 1 1 1            TPTP T Perr  43  Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên Cho đạo hàm cấp một của errP bằng 0, ta sẽ được phương trình bậc 2, có thể tính giá trị ngưỡng tối ưu T* làm cực tiểu hoá errP . Đạo hàm cấp 2 của errP được đánh giá tại T* để đảm bảo điều kiện ( 0 *)( 2 2    T TPerr ) được thoả mãn. 0 2 ln** 2 21 2 0 2 1 2 0 2 0 2 1 01 10 2 1 2 0 2 01 2 102 2 1 2 0 2 1 2 0                   P TT Từ phân tích trên, việc chọn ngưỡng tối ưu T* dựa trên các thống kê thu được của thuật toán nhúng thuỷ vân. Ngưỡng tối ưu T* làm cực tiểu hoá xác suất lỗi giải mã và như thế nâng cao độ bền của thuỷ vân được nhúng do khả năng giải mã thành công tăng. Xác suất lỗi giải mã cũng phụ thuộc vào các ràng buộc. Nếu các ràng buộc chặt thì lượng thay đổi cho bộ dữ liệu D có thể không đủ đối với việc nhúng thuỷ vân. Tất cả xác suất lỗi giải mã thuỷ vân được làm giảm đi bằng cách nhúng thuỷ vân nhiều lần trong bộ dữ liệu đó, về cơ bản nó là sự lặp lại mã sửa sai. 2.6. Phát hiện thuỷ vân Thuật toán phát hiện thuỷ vân sẽ lấy ra thuỷ vân đã nhúng nhờ các tham số bí mật gồm có: KS, m,  , c, T. Thuật toán này bắt đầu bằng việc sinh các phần dữ liệu  10 ,..., mSS dựa vào bộ dữ liệu đã thuỷ vân WD , khoá bí mật SK , và số phần dữ liệu đã phân hoạch m là đầu vào của thuật toán phân hoạch dữ liệu (get_partitions). Mỗi phần sẽ mã hoá một bít thuỷ vân đơn. Để lấy ra bít đã nhúng, ta sử dụng lược đồ giải mã ngưỡng dựa vào ngưỡng tối ưu T làm cực tiểu hoá xác suất xảy ra  44  Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên lỗi giải mã như đã trình bày trong mục 2.5. Nếu kích thước phân vùng dữ liệu nhỏ hơn  thì bít giải mã không được thực hiện, ngược lại nó được giải mã nhờ lược đồ giải mã ngưỡng. Vì thuỷ vân 01 ,..., bbW l được nhúng nhiều lần trong bộ dữ liệu, mỗi bít thuỷ vân được lấy ra nhiều lần ở nơi bít ib được lấy ra từ phần kS với ilk mod . Các bít lấy ra được giải mã nhờ kỹ thuật chọn theo đa số. Mỗi bít ib được lấy ra l m lần . Thuật toán phát hiện thuỷ vân như sau: Thuật toán: detect_watermark Đầu vào: Tập dữ liệu đã nhúng thủy vân *,,,,, TKcmD SW  , Độ dài thủy vân l Đầu ra: Thủy vân thu được WD 1. Đặt ones[0, …, l-1]  0 2. Đặt zeros[0, …, l-1]  0 3. S0, …, Sm-1  get_partitions(Dw, Ks, m) 4. for j=0, …, m-1 5. if jS 6. i  j mod l  45  Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 7. value   cSi ,0, 8. if *Tvalue 9. ones[i]  ones[i] + 1 10. else 11. zeros[i]  zeros[i] + 1 12. for j=0 , …, l-1 13. if ones[j] > zeros[j] 14. WD|j|  1 15. else if ones[j] < zeros[j] 16. WD|j|  0 17. else 18. WD|j|  x 19. return WD Trường hợp quan hệ đa thuộc tính bền vững thuỷ vân được tăng lên do nhúng thuỷ vân trong nhiều thuộc tính. 2.7. Kiểu tấn công Ở đây giả thiết rằng kẻ tấn công không thể tìm được tập dữ liệu gốc và không biết được gì về thông tin bí mật được sử dụng trong quá trình nhúng thuỷ vân. Thông tin bí mật bao gồm khoá mật Ks, số lượng phân hoạch m, hằng số c, các tham số tối ưu và ngưỡng T*. Vì vậy kẻ tấn công sẽ không có  46  Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên khả năng tạo ra các phân vùng dữ liệu và do đó không thể chọn lọc tấn công bit thuỷ vân cụ thể. Một số kiểu tấn công điển hình: - Xoá ngẫu nhiên một vài bản ghi từ cơ sở dữ liệu cũ, tạo ra một cơ sở dữ liệu mới để công bố. - Sửa đổi một vài bản ghi bên trong cơ sở dữ liệu để gây ra lỗi ở các bit thuỷ vân được nhúng, dẫn đến quá trình giải mã sai. - Chèn một vài bản ghi vào cơ sở dữ liệu gây ra sai lệch dữ liệu nhằm phá hủy các bit thuỷ vân đã nhúng. Để mô phỏng một số kiểu tấn công, chương trình sử dụng một tập dữ liệu thuỷ vân “an toàn”. Một tập dữ liệu thuỷ vân là “an toàn” nếu có thể khôi phục bit thuỷ vân sau quá trình giải mã, cùng sử dụng chung khoá bí mật với quá trình mã hóa. Với tập dữ liệu này, chúng ta tiến hành thao tác trên dữ liệu để phù hợp với từng mô hình tấn công.  47  Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên Chƣơng 3 - CÀI ĐẶT LƢỢC ĐỒ THUỶ VÂN CƠ SỞ DỮ LIỆU QUAN HỆ BẰNG KỸ THUẬT TỐI ƢU TÌM KIẾM THEO MẪU 3.1. Giới thiệu về kỹ thuật tìm kiếm theo mẫu Tìm kiếm theo mẫu (hay còn gọi là tìm kiếm trực tiếp) là một phương pháp giải các bài toán tối ưu, không yêu cầu nhiều thông tin về độ dốc của hàm mục tiêu. Trái ngược với phương pháp tối ưu truyền thống sử dụng thông tin về độ dốc hoặc là phát sinh lớn hơn để tìm ra một điểm tối ưu. Thuật toán tìm kiếm theo mẫu xác định một tập các điểm xung quanh điểm hiện tại, tìm ra một điểm tại giá trị của hàm mục tiêu thấp hơn giá trị của của điểm hiện tại. Phương pháp tìm kiếm trực tiếp có thể được sử dụng để giải các bài toán với hàm mục tiêu không khả vi hoặc hàm liên tục. Một thuật toán tìm kiếm theo mẫu xác định một chuỗi các điểm để tìm ra mật độ càng dày với điểm gốc. Tại mỗi bước, thuật toán tìm kiếm một tập các điểm gọi là một mắt lưới, xung quanh điểm hiện tại - điểm đã tính tại bước trước của thuật toán. Thuật toán tạo ra mắt lưới bằng cách thêm điểm hiện tại vào một bội số vô hướng của một tập các vector cố định gọi là một mẫu. Nếu thuật toán tìm ra một điểm trong mắt lưới để tận dụng hàm mục tiêu tại điểm hiện tại, điểm mới trở thành điểm hiện tại tại bước tiếp của thuật toán.  48  Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 3.2. Mô tả ứng dụng 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.  49  Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 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.  50  Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 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:  51  Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 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 Hình 3.1 Bảng thống kê kết quả thử nghiệm  52  Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên  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%  53  Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 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ộ).  54  Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 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ệ.  55  Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 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  56  Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên đượ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 Hình 3.2. Mô tả quá trình xác thực thông tin bằng MAC  57  Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 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à: - Tính một chiều: không thể suy ra dữ liệu ban đầu từ kết quả.  58  Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên - 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  59  Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 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 Hình 3.3. Biểu diễn hàm băm  60  Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 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:  61  Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên - 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.  62  Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 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í nghiên cứu khoa học kỹ thuật và công nghệ Quân sự, số 4, 30-37 [4]. R. Agrawal, J. Kiernan, “Watermarking Relational Databases” in Proceedings of the 28th VLDB Conference, Hong Kong, China, 2002. [5]. R. Agrawal, P. J. Haas, and J. Kiernan. “Watermarking relational data: framework, algorithms and analysis*”. The VLDB Journal (2003). [6]. R. Sion, M. Atallah, S. Prabhakar.“Watermarking Relational Databases” CERIAS TR 2002-28*. Center for Education and Research in Information Assurance, Computer Sciences, Purdue University, 2002. [7]. R. Sion, M. Atallah, and S. Prabhakar. “Rights Protection for Relational Data”. IEEE Transactions on Knowledge and Data Engineering, 16(6), June 2004. [8]. R. Sion, “Proving ownership over categorical data”. ICDE 2004. [9]. M. Shehab, E. Bertino, A. Ghafoor. “Watermarking Relational Databases using Optimization Based Techniques”. CERIAS Tech Report 2006-41. [10]. www.watermarkingworld.org.  63  Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên [11]. W. Bender, D. Gruhl, N. Morimoto, A. Lu, “Techniques for data Hiding” IBM SYSTEMS JOURNAL, VOL 35, NOS 3&4, 1996. [12]. Stefan Katzenbeisser and Fabien A.P.Petitcolas, “Information Hiding Techniques for Steganography and Digital Watermarking”.Artech House Boston London. [13]. Michael Arnold, Martin Schmucker and Stephen D. Wolthusen, “Techniques and Applications of Digital Watermarking and Content Protection”. Artech House Boston London.

Các file đính kèm theo tài liệu này:

  • pdfthuy_van_co_so_du_lieu_quan_he_473_9296.pdf
Luận văn liên quan