Thuật toán nhúng và tách thủy vân

Một phần của tài liệu Kỹ thuật bảo vệ bản quyền bản đồ trong hệ thống thông tin địa lý (Trang 50 - 60)

2.3.2.1. Thuật toán 1 [6]

a. Nhúng thủy vân

Chuỗi thủy vân trong đó hoặc 0 tạo ra từ một bộ sinh số giả ngẫu nhiên (PRNG), hình thành một khóa mật đƣợc lƣu giữ bởi ngƣời chủ sở hữu bản đồ. Sau quá trình phân đoạn bản đồ thành các nhóm ở trên, thủy vân sẽ đƣợc nhúng vào mỗi nhóm. Nhƣ vậy mỗi nhóm có cùng bản sao của dấu thủy vân . Và mỗi nhóm có vài điểm đặc trƣng, là các điểm đƣợc giãn và nối với nhau (qua bƣớc phân đoạn). Xem xét một nhóm trong bản đồ đƣợc phân đoạn,

. Điểm tâm của đƣợc định nghĩa là trung bình của các điểm đặc trƣng trong . Nói chung bản thân điểm tâm có thể không thuộc vào . Theo biểu diễn trong hệ tọa độ cực của , có thể đƣợc phân chia thành nhiều tập vành và tập vành thứ đƣợc định nghĩa nhƣ sau:

(2. 8)

Trong đó, giả sử rằng là sai số cho phép của bản đồ và một số nhỏ hơn . Số này đƣợc gọi là độ rộng vành và đƣợc giữ nhƣ là khóa bí mật. Tập vành tự nó lại đƣợc chia nhỏ hơn thành hai vành con trong và vành con ngoài

xác định nhƣ sau:

(2. 9)

(2. 10)

Một chuỗi thủy vân với độ dài đƣợc nhúng vào trong . Chiến lƣợc là với mỗi ta nhúng bit vào các điểm trong vành . Phép toán để nhúng một bit 0 vào trong điểm trong là nhƣ sau:

(2. 11)

Sau phép toán, phải nằm trong . Tƣơng tự, phép toán nhúng một bit 1 vào trong trong là:

Sau phép toán, phải nằm trong . Tất cả các điểm trong đƣợc cập nhật lại tọa độ theo cách này.

Hình 2. 6. Minh họa quá trình nhúng trên một nhóm của bản đồ đã phân đoạn.

Hình 2.6 mô phỏng quá trình nhúng trên các điểm của một nhóm. Trên hình này các vành đƣợc minh họa bởi đƣờng màu xanh lam đậm, còn các đƣờng xanh lục biểu diễn sự chia đôi mỗi vành thành các vành và . Đƣờng mảnh màu đỏ minh họa vị trí các đƣờng của bản đồ sau khi đã thủy vân (so với các đƣờng đậm là bản đồ gốc). Sau phép toán nhúng các điểm trong mọi đều dịch về hoặc để nhúng tƣơng ứng bit 0 hoặc bit 1.

b. Tách thủy vân

Trƣớc khi phát hiện thủy vân, bản đồ mang xem xét đƣợc chia thành các nhóm theo các bƣớc ở phần 2.3.1. Việc này tuân theo mô hình chung của một lƣợc đồ thủy vân ẩn, ở đó bƣớc phát hiện (tách) không đòi hỏi bản đồ gốc. Để phát hiện các bit thủy vân, ta định nghĩa một hàm với trong đó ký hiệu là độ dài của chuỗi thủy vân gốc . Khởi đầu ta gán cho tất cả các giá trị của bằng 0:

(2. 13)

thành các vành giống nhƣ các phép toán trong bƣớc nhúng. Nếu một điểm thuộc vào thì:

(2. 14)

Quy tắc phát hiện đƣợc áp dụng cho mọi nhóm. Ta tính cho tất cả các điểm trong bản đồ dùng để tách. Nếu ký hiệu chuỗi thủy vân tách đƣợc từ bản đồ này là

thì:

(2. 15)

Tính hệ số tƣơng quan tuyến tính của W và theo công thức:

(2. 16)

Một ngƣỡng đƣợc dùng để xác định xem bản đồ chứa dấu thủy vân gốc hay không bằng phƣơng pháp kiểm định giả thiết thống kê. Nếu thì giả thuyết : dấu thủy vân không đƣợc nhúng trong bản đồ đƣợc xét, đƣợc chấp nhận. Nếu không thì giả thuyết : dấu thủy vân đƣợc nhúng, đƣợc chấp nhận. Luật kiểm định đƣợc biểu diễn bởi:

(2. 17)

Độ dài của dấu thủy vân ảnh hƣởng đến hiệu quả tính toán của lƣợc đồ thủy vân này. Trong ứng dụng thực tế với bản đồ vài trăm nghìn điểm thì có khả năng nhúng hàng trăm bit (đủ mạnh để xác định chủ quyền sở hữu đã đăng ký) với tính bền vững cao qua các kiểu tấn công thƣờng gặp.

giãn ảnh hƣởng tới số lƣợng và kích cỡ của các nhóm. Trong thực nghiệm với mỗi bản đồ cụ thể ngƣời ta cần chọn các tham số hợp lý để việc phân đoạn và nhúng thủy vân đƣợc hiệu quả nhất.

2.3.2.2. Thuật toán 2

Thuật toán thứ 2 đƣợc hình thành trên cơ sở lƣợc đồ thủy vân mạng dạng tuyến (đƣờng phố) đƣợc trình bày trong mục 2.3.2.1 để bổ sung tính bền vững của lƣợc đồ thủy vân đối với phép biến đổi co giãn bản đồ, trong đó các tác giả của tài liệu đã đề xuất một phƣơng pháp nhúng và tách thủy vân mở rộng sử dụng tham số "độ rộng vành" thay đổi theo các nhóm khác nhau dựa vào khoảng cách lớn nhất từ tâm tới các điểm đặc trƣng [2]. Sau đây là thuật toán nhúng và tách thủy vân: (adsbygoogle = window.adsbygoogle || []).push({});

a. Nhúng thủy vân

Bản đồ gốc đƣợc phân chia thành các nhóm giống lƣợc đồ gốc ở trên, nhóm có điểm đặc trƣng. Giả sử là sai số cho phép của bản đồ (tollerant). Ký hiệu là tâm của nhóm , là các điểm đặc trƣng có trong nhóm . Với mỗi nhóm ta đặt:

(2. 18)

(2. 19)

Đại lƣợng đƣợc tính toán trên bản đồ gốc và ngƣời chủ sở hữu bản đồ lƣu giữ cùng với dấu thủy vân . Ta xác định với mỗi một đại lƣợng là độ rộng của vành chia đƣợc xác định bởi:

(2. 20)

Trong đó là một số thực đƣợc chọn và giữ nhƣ là khóa bí mật của ngƣời chủ sở hữu bản đồ. Các tập vành chia của nhóm xác định bởi công thức

Các vành con trong và ngoài xác định một cách tƣơng tự:

(2. 22) (2. 23)

Ta thực hiện nhúng vào vành một bit của dấu thủy vân bằng cách nhúng vào mọi điểm trong nhƣ sau:

Nếu bit là bit 0 thì với mỗi điểm , ta giữ nguyên nếu , còn nếu có thì dịch chuyển tới điểm

xác định bởi:

(2. 24)

Sau phép toán này mọi điểm của đều thuộc . Thật vậy, nếu thì ta có:

(2. 25)

Nếu bit là bit 1 thì với mỗi điểm , ta giữ nguyên nếu , còn nếu có thì dịch chuyển tới điểm xác định nhƣ sau:

(2. 26)

(2.27)

Phép nhúng này đƣợc thực hiện trên mọi vành chứa các điểm của bản đồ gốc đã cho. Cùng một dấu thủy vân đƣợc nhúng lên mọi nhóm của bản đồ vector gốc .

Thuật toán trong lƣợc đồ này trình bày các công thức trong hệ tọa độ quy chiếu vuông góc thông thƣờng, khi chuyển sang hệ tọa độ cực thì thu đƣợc các biểu thức tƣơng tự nhƣ ở thuật toán ở lƣợc đồ trƣớc đó.

Thuật toán 2.5. Thuật toán nhúng thủy vân 2.

Input: Chuỗi thủy vân , số thực , sai số xấp

xỉ của thuật toán DP, ngƣỡng của bậc các đỉnh đặc trƣng, số lần giãn điểm đã duyệt .

Data: Bản đồ gốc .

Output: Bản đồ đã đƣợc đánh dấu thủy vân .

Map_Segmentation(); //Phân đoạn bản đồ theo thuật toán sau: Thuật toán. foreach in do max_fPoint ; endfor; ; foreach do ; "Chia thành các vành ." for j=1 to max_ringnum( ) do foreach in do /* xác định bởi công thức (2. 24), (2. 26) */ if ( AND ) then

; elseif ( AND ) ; endif; endfor; endfor; endfor; b. Tách thủy vân

Tuân thủ việc lựa chọn hàm trong thuật toán đƣợc nêu tại mục 2.3.2.1. Trong thuật toán thứ 2, việc chia các nhóm có sự thay đổi nhƣ sau:

Với mỗi nhóm của bản đồ cần tách thủy vân , ta tìm tâm của nó và định nghĩa nên các tập vành, vành trong, vành ngoài ký hiệu lần lƣợt nhƣ sau:

(2. 28) (2. 29) (2. 30) (adsbygoogle = window.adsbygoogle || []).push({});

Trong đó:

(2. 31)

Với là các tham số khóa mật đƣợc dùng trong bƣớc nhúng thủy vân. Tài liệu [2] đã chứng minh rằng dấu thủy vân bền vững qua phép tỷ lệ bản đồ.

c. Đánh giá thuật toán

Thuật toán thứ hai so với thuật toán thứ nhất có sự thay đổi nhằm tăng tính bền vững của lƣợc đồ thủy vân qua nhiều phép tấn công hình học và thao tác bản đồ. Đánh giá cụ thể về tính bền vững của thuật toán nhƣ sau:

Phép tịnh tiến và quay bản đồ

Khi bản đồ đƣợc tịnh tiến thì các điểm nhúng và tâm của mỗi nhóm có khoảng cách không đổi, do vậy việc tách thủy vân từ các điểm nhúng đó không bị ảnh

hƣởng. Tƣơng tự, khi các đỉnh quay xung quanh một điểm nào đó trong hệ quy chiếu không gian thì khoảng cách giữa điểm nhúng trong nhóm và tâm của nhóm vẫn không đổi. Nhƣ vậy thuật toán bền vững đối với phép tịnh tiến và phép quay.

Phép tỷ lệ bản đồ

Khi các tọa độ của các điểm bản đồ biến đổi theo một tỷ lệ (phóng to hoặc thu nhỏ), thì khoảng cách giữa điểm nhúng và tâm của nhóm tƣơng ứng cũng biến đổi lần. Khi đó trong thuật toán cải tiến thì bề dày của các vành chia cũng đƣợc biến đổi theo tỷ lệ . Kết quả là thủy vân vẫn đƣợc tách ra một cách chính xác: Thuật toán bền vững đối với phép tỷ lệ bản đồ.

Thêm nhiễu

Thêm các nhiễu ngẫu nhiên, dịch chuyển đỉnh có thể làm giảm độ chính xác tách thủy vân. Thuật toán 2 cũng nhƣ thuật toán 1 có thể chịu đƣợc các nhiễu Gauss với kỳ vọng 0 và độ lệch tiêu chuẩn thấp hơn ngƣỡng nhúng (ở đây là với mỗi nhóm ).

Cắt xén bản đồ

Các ứng dụng GIS thƣờng có các thao tác cắt xén bớt bản đồ gốc để chỉ sử dụng một phần nào đó trong các chức năng cụ thể. Tuy nhiên vì dấu thủy vân đƣợc nhúng đồng thời vào nhiều nhóm nên nếu việc phân chia các nhóm đƣợc lựa chọn thích hợp thì mỗi phần sau khi cắt xén vẫn còn có các nhóm đƣợc nhúng thủy vân đủ để tách ra nguyên vẹn thông tin dấu thủy vân đã nhúng. Các nhóm ở biên của bản đồ con có thể bị mất một số điểm đặc trƣng và do đó gây ra lỗi khi tách thủy vân, do đó khả năng chống lại kiểu tân công này có một giới hạn nhất định (điều này đúng đối với hầu hết các lƣợc đồ thủy vân với ảnh số nói chung).

Giản lƣợc Douglas-Peucker

Các bản đồ số gốc thƣờng chứa rất nhiều điểm đƣợc đo đạc tỉ mỉ trong thực tế vì nó có thể sử dụng cho nhiều mục đích khác nhau. Với mỗi mục đích cụ thể thì việc giảm bớt số điểm, giản lƣợc bớt bản đồ để tăng hiệu năng xử lý mà vẫn đáp

ứng đủ độ chính xác đầu ra là một thao tác thƣờng gặp của các hệ thống GIS. Thuật toán giản lƣợc phổ dụng cho các dữ liệu dạng polyline là thuật toán Douglas- Peucker đã trình bày trong phần 2.3.1. Tuy nhiên ở bƣớc phân đoạn bản đồ chúng ta đã sử dụng thuật toán DP nên các tấn công giản lƣợc sử dụng thuật toán DP chỉ làm giảm số lƣợng các điểm đƣợc nhúng. Điều đó có thể dẫn tới hệ số tƣơng quan bị giảm nhƣng vẫn nằm trong khả năng đoán nhận đƣợc dấu thủy vân.

Kết luận chương

Trong chƣơng này, tác giả tập trung đi sâu tìm hiểu về ứng dụng thủy vân số trên dữ liệu bản đồ vectơ, trong đó có liệt kê ra một số thuật toán ứng dụng thủy vân số trên dữ liệu dạng vùng và dữ liệu dạng tuyến cụ thể. Trên dữ liệu dạng vùng, thuật toán thủy vân số dựa trên phƣơng pháp co giãn đa giác theo một hƣớng chính trong sai số cho phép và trên dữ liệu dạng tuyến với một số đặc trƣng nhƣ có nhiều giao điểm giữa các đƣờng không khép kín, có nhiều đỉnh bậc cao; các đỉnh có bậc cao thƣờng giữ vị trí quan trọng và ít bị thay đổi qua các phép tấn công, vì vậy, để ứng dụng thủy vân số trƣớc hết cần thực hiện phân đoạn bản đồ thông qua thuật toán Douglas-Peucker, chia bản đồ đã giản lƣợc thành các nhóm khác nhau, gán các điểm khác trong bản đồ gốc mà không có trong bản đồ giản lƣợc vào các nhóm thích hợp để đảm bảo bảo toàn về dữ liệu. Sau đó, thực hiện việc nhúng/tách thủy vân. Trong chƣơng 3, tác giả lựa chọn thuật toán thủy vân trên dữ liệu dạng tuyến đã đƣợc trình bày ở trên để cài đặt chƣơng trình thử nghiệm.

Chương 3: XÂY DỰNG CHƢƠNG TRÌNH THỬ NGHIỆM

Chƣơng này phát triển một ứng dụng minh họa hệ thống thủy vân theo thuật toán thủy vân trên dữ liệu dạng tuyến đã đƣợc trình bày ở chƣơng 2.

Một phần của tài liệu Kỹ thuật bảo vệ bản quyền bản đồ trong hệ thống thông tin địa lý (Trang 50 - 60)