Mục tiêu chính của phần này là xây dựng cách phân chia các bộ của quan hệ r thành các g nhóm dựa vào khóa thủy vân và khóa chính của bộ. Cách phân chia này sẽ làm tăng tính ngẫu nhiên khi chọn các bộ và phân các bộ vào các nhóm riêng rẽ. Tính ngẫu nhiên này có độ bảo mật cao được đảm bảo bằng hàm băm mật mã H(). Mục đích của việc phân chia này nhằm làm tăng khả năng bền vững của thuỷ vân trước các tấn công, có thể phát hiện và khoanh vùng giả mạo nếu có.
Với số lượng nhóm g, khóa thủy vân K chỉ chủ sở hữu cơ sở dữ liệu quan hệ
biết, việc phân chia các bộ của quan hệ vào nhóm Gk (k= 0, 1, …, g-1) sẽ được thực hiện bằng công thức sau:
ri Gk với k = H(Kri.P) mod g ( i = 1, 2, ..., ) (3.1) Trong đó, H(Kri.P) là băm khóa thủy vân K cùng với giá trị thuộc tính khóa chính P của bộ ri và là phép ghép nối.
Quan hệ r được chia thành g nhóm theo công thức (3.1), khi đó Gi = r (i = 0, 1, ..., g-1).
Công thức (3.1) chia quan hệ thành g nhóm, khi đó với hai nhóm bất kỳ Gi và Gj (i ≠ j) thì Gi Gj = .
Sau đây, chúng tôi sẽ xây dựng thủ tục ChiaNhom(r, K, g) theo công thức
(3.1):
Procedure ChiaNhom(r, K, g)
1. for k = 0 to g-1 do // khởi tạo các chỉ số và các nhóm
2. qk = 0 3. Gk = 4. end for 5. for i= 1 to do 6. k = H(Kri.P)mod g 7. Gk = Gk {ri} 8. qk = qk + 1 // qk là số bộ trong nhóm Gk 9. end for
Theo công thức (3.1), chúng tôi đưa ra định lý sau:
Định lý 3.1: Nếu chia các bộ của quan hệ vào các nhóm theo hàm băm của khóa thủy vân và khóa chính của bộ thì mỗi bộ sẽ thuộc một nhóm và chỉ một nhóm.
Chứng minh
Giả sử quan hệ r có bộ thuộc lược đồ quan hệ R(P, A1 ,. . . , A), trong đó P
là thuộc tính khóa chính và có thuộc tính, phân các bộ vào g nhóm. Theo công thức (3.1) bộ ri sẽ thuộc vào một nhóm Gk, tức ri r thì ri Gk (i = 1, 2, …, ; k =
0, 1, 2, …, g-1).
Mệnh đề 3.1: Quan hệ sau khi nhúng thủy vân, nếu có bất kỳ thay đổi nào đối với giá trị khóa chính của một bộ thì trong thuật toán phát hiện thủy vân bộ đó sẽ không thể được xếp vào cùng một nhóm hoặc nếu cùng nhóm thì vị trí của nó bị thay đổi so với thuật toán nhúng.
Chứng minh:
Giả sử quan hệ r có bộ thuộc lược đồ quan hệ R(P, A1 ,. . . , A), trong đó P
là thuộc tính khóa chính và thuộc tính, sẽ được sử dụng để nhúng thủy vân. Khi đó, bộ i sẽ được phân vào một nhóm Gk (k = 0, 1, 2, …, g-1) theo công thức (3.1).
Một quan hệ nghi ngờ r’ được sử dụng để phát hiện thủy vân. Theo (3.1) bộ i có giá trị khóa chính mới là P’ được phân vào một nhóm Gk’ (k’ = 0, 1, 2, …, g-1).
Thật vậy, theo giả thiết bộ i bị thay đổi giá trị khóa chính hay r’i.P ≠ ri.P (1) Theo công thức (3.1) nếu:
+ Trường hợp 1: r’i.P mod g ≠ ri.P mod g. Vậy ta có Gk’ ≠ Gk. (2) + Trường hợp 2: r’i.P mod g = ri.P mod g.
- Vậy ta có k = k’. (3)
- Theo (1) thì H(Kri.P)≠ H(Kri.P) (4) Từ (3) và (4) nếu có sắp xếp nhóm thứ k’ thì vị trí của bộ i sẽ bị thay đổi so
với vị trí cũ trong thuật toán nhúng. (5)
Từ (2) và (5) ta có điều phải chứng minh.