Thuật toán nhúng 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 57 - 90)

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 {S0 ,..., S m−1 }.

Để 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: l << m .

Thuật toán nhúng thuỷ vân sẽ nhúng bít bi vào phần S

k

sao cho  m

k modl = i . Kỹ thuật này đảm bảo mỗi bít thuỷ vân được nhúng   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

l

Đầ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 ← {}

4. i ← k mod l

5.S w ← encode_single_bit (bi, Sk, c, Xmax, Xmin) 6. Chèn S

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 {S0 ,..., S m−1

} bằng cách

gọi hàm get _ partitions, sau đó với mỗi phần S

k

bít thuỷ vân bi đượ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

được chèn vào bộ dữ liệu đã nhúng thuỷ vân.

Các thống kê ( X

max , X min

)

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

bi từ

phần

SW .

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

k

k

Sk

i

Với phần dữ liệu SW , kỹ thuật giải mã bít sẽ tính toán hàm giấu Θ (S W )

và so sánh với ngưỡng giải mã tối ưu T* để giải mã bít đã

nhúng bi .

Nếu Θ (S W ) >T* bít giải mã là 1, ngược lại bít giải mã là 0.

i i

i

γ

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

bằng cách tính giá trị tham chiếu

ref và đếm số đầu vào trong

W

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 bi =1 được lưu trong tập X max . Tương tự, các giá trị hàm giấu cực tiểu hoá được lưu trữ

trong X min . Gọi P err , P0 và P1

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 xác suất.

be

, bd , và f (x) tương ứng là bit mã hoá, bit giải mã, và hàm mật độ

Si

Khi

đó, Per r

được tính như sau:

Perr = P(bd = 0, be = 1)

+ P(bd

= P(bd = 0 | be = 1)P1 + P(bd = 1 | be = 0)P0 = P(x < T | be = 1)P1 + P(x > T | be = 0)P0 T= P1 ∫ f (x | be = 1)dx + P0 ∫ f (x | be = 0)dx −∞ T

Để cực tiểu hoá xác suất lỗi giải mã ( Perr ) đối với ngưỡng T, ta lấy đạo hàm cấp một

của Pr er

đối với T để xác định ngưỡng tối ưu T*, như sau: ∂Perr = P T f (x | b = 1)dx + P ∂ ∞ f (x | b 0)dxT 1 ∂T ∫−∞ e 0 ∂T T e = = P1 f (T | be = 1) − P0 f (T | be = 0) Các hàm f (x | be = 0) và f (x | be = 1)

được đánh giá từ các thống kê X min

X

max

tương ứng. Qua các thực nghiệm về X min

X max , ta thấy các phân

phối f (x | be = 0)

f (x | be

= 1)

có thể được đánh giá như các phân phối Gaussian N (µ0 ,σ 0 )

N(µ1 ,σ1 ) . 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.

P0 có thể được đánh giá

bằng | X | X min | ,

P1 = 1 − P0 .

Thay thế các biểu thức Gaussian cho f (x | be = 0) và f (x | be = 1) , thì đạo hàm cấp một của Pr er có dạng: ∂PerrT = P1 σ1 2π exp(− (T − µ1 ) 2σ 2 ) − P0 σ 0 2π exp(− (T − µ0 ) ) 2σ 2 1 2 0 2

Cho đạo hàm cấp một của P

er r

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á P

err . Đạo hàm cấp 2 của Perr

được đánh giá tại T* để đảm bảo điều kiện ( ∂ Perr (T*) > ∂T 02 ) được thoả mãn. σ 2 − σ 2 µ σ 2 − µ σ 2  σP µ 22σ µ 2σ 2 0 1 T *2 + 0 1 1 0 T * + ln 0 1  + 1 0 − 0 1 = 0 2σ 2σ 2 σ 2σ 2  Pσ 2σ 2σ 2 0 1 0 1  1 0  0 1

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 {S0 ,..., S m−1 } dựa vào bộ dữ liệu đã thuỷ vân D

W , khoá bí mật K S , và số phần dữ liệu đã phân 2

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

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 W = bl −1 ,...,

b0 đượ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 bi được lấy ra từ phần S

k

với

k modl = i . Các bít lấy ra được giải mã nhờ kỹ thuật chọn theo đa số. Mỗi bít

m

bi được lấy ra

l 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 DW ,m,c,ξ, KS ,T , Độ 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 S j ≥ ξ 6. i ← j mod l

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên t nu . e du . v n

7.value ← Θ(Si ,0, c) 8. if value T * 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ó

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.

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.

3.2. Mô tả ứng dụng

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

sau:

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

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.

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  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

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%

7

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 57 - 90)

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

(90 trang)
w