Phân hoạch dữ liệu

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 39 - 44)

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

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

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}

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

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 39 - 44)