Lịch sử phát triển của thuỷ vân

Một phần của tài liệu đồ án tốt nghiệp 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 theo mẫu (Trang 31 - 90)

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.

Đế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

Thuỷ vân Dữ liệu bao phủ Dữ liệu nhúng Mã cá nhân / công cộng

Hình 1.4. Sơ đồ nhúng thuỷ vân

Thuỷ vân Dữ liệu nhúng Quyết định thuỷ vân Mã cá nhân / công cộng

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.

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

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.

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]

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: KS W D Phân hoạch dữ liệu {So ,..., S m−1 } Nhúngthuỷ (adsbygoogle = window.adsbygoogle || []).push({});

vân Dw truyềnKênh D’w

Phân hoạch dữ liệu {S'o ,..., S'm−1 } Giải ngƣỡng G Đánh giá ngƣỡng tối T* ƣu Bầu chọn W’ theo đa số

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.

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

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 đồ D(P, A0 ,..., Aν −1 )

trong đó P là thuộc tính khoá chính, thuỷ vân và D là số bản ghi trong D

.

A0 ,...,

Aν −1

là ν thuộc tính dùng để nhúng

Bộ dữ liệu D được chia thành m phần không giao nhau {S0 ,..., S m−1 }, sao cho mỗi phần Si

chứa trung bình D bản ghi từ bộ dữ liệu D . Các phần

m (adsbygoogle = window.adsbygoogle || []).push({});

không giao nhau, tức là, với hai phần bất kỳ

SiS ji j thì Si S j = { }.

Với mỗi bản ghi r D , 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

H (K S || H (r.P || K S )) , trong

đó rP. 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:

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

D

vào các phân vùng, kỹ thuật phân hoạch này chia trung bình vào mỗi phâ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 K

S 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 K S , số phân vùng m

Đầu ra: Các phân vùng dữ liệu S0 ,..., Sm

−1

1. S0 ,..., Sm−1 ← {}

2. for each bản ghi r D

3. partition(r) ← H (K S || H (r.P || K S )) mod m

4. chèn r vào S partition(r )

5. return S0 ,..., Sm

−1

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

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} (adsbygoogle = window.adsbygoogle || []).push({});

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

Hình 2.2. Bảng biểu diễn các ký hiệu sử dụng trong thuật toá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 Si chứa thuộc tính số đơn. Trong trường hợp này, mỗi phần Si có thể được biểu diễn bằng một véctơ dữ liệu

số S= i [si1 ,..., sin

] ∈ ℜn .

2.4.1 Mã hoá bít đơn

Cho bít thuỷ

vân bi , và véctơ dữ liệu số Si = [si1 ,..., sin ] ∈ ℜ .

Thuật toán mã hoá bít ánh xạ vectơ dữ liệu Si thành vectơ dữ liệu mới

i = Si + ∆i , trong

đó ∆i = [∆i1 ,..., ∆in ]∈ℜ là vectơ thao tác. Các thao tác bị hạn chế bởi các ràng buộc trong bộ

G = {g ,...,

gip }. 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 Si

+ ∆i thì chỉ vectơ thao tác ∆ i là biến,

n

n

SW

trong khi

Si và γ là các hằng số. Để mã hoá bit

bi vào trong tập Si , thuật toán mã hoá bít sẽ làm tối ưu hóa hàm hàm giấu Θ (adsbygoogle = window.adsbygoogle || []).push({});

γ (Si + ∆i ) . 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

hoá:

Nếu bít bi =1 thì thuật toán mã hoá bit thực hiện giải bài toán cực đại

max ∆i Θγ (S i + ∆i ) thoả mãn ràng buộc Gi hóa.

Nếu bít bi =0 thì bài toán đơn giản được chuyển thành bài toán cực tiểu

Giải pháp cho bài toán tối ưu hoá sinh ra vectơ thao tác *

i để Θγ (Si + ∆i

*) tối ưu. Khi đó, bộ dữ liệu mới Si = Si + ∆i * . Việc cực đại hoá cho b

i =1 và cực tiểu hoá cho bi =0, đảm bảo rằng các giá trị của hàm Θγ (Si + ∆i

*) 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 Si + ∆i 1. If ( ( Si < ξ ) then return Si 2. If (b==1) then ∆ W *

3.Maximize ( Θγ (Si + ∆i ) ) thỏa mãn ràng buộc Gi 4. Chèn Θγ (S

5. else

Một phần của tài liệu đồ án tốt nghiệp 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 theo mẫu (Trang 31 - 90)