130 likes | 271 Views
Tamper Detection and Localization for Categorical Data Using Fragile Watermarks. What is Digital watermarking?. A digital watermark is technique of embedding an invisible signal directly into the data, thus providing a promising way to protect digital data from illicit copying and manipulation.
E N D
Tamper Detection and Localization for Categorical DataUsing Fragile Watermarks
What is Digital watermarking? • A digital watermark is technique of embedding an invisible signal directly into the data, thus providing a promising way to protect digital data from illicit copying and manipulation.
Why is it required? • It is used to detect data tampering and illicit copying of data. • It complements cryptography and steganography. • Cryptography- once the encrypted data is decrypted, the data is clear and no longer under protection. • Steganography :The problem is that it cannot extract the hidden data if the stego data undergo some distortions.
Applications • Copy protection • Authentication • Tamper detection
Classifications of Digital Watermarks • Fragile watermarks for tamper detection • Robust watermarks for ownership verification
Difference between multimedia and Database Watermarking • Multimedia data are highly correlated, there is a lot of redundant information present in multimedia data. • Database relations contain large number of independent tuples and all tuples are equally important.
Challenges • Embedding watermarks in database relations is a challenging problem because there is little redundancy present in a database relation.
Watermark Embedding Algorithm • Algorithm 1 Watermark embedding • 1: For all k ∈ [1, g] qk = 0 • 2: for i = 1 to ω do • 3: hi = HASH(K, ri.A1, ri.A2, · · · , ri.Aγ) // row hash • 4: hpi = HASH(K, ri.P ) // primary key hash • 5: k = hpi mod g • 6: ri → Gk • 7: qk ++ • 8: end for • 9: for k = 1 to g do • 10: watermark embedding in Gk // See Algorithm 2 • 11: end for
Watermark Embedding Algorithm(cont…) • Algorithm 2 Watermark embedding in Gk • sort tuples in Gk in ascendant order according to their primary • key hash // Virtual operation • H = HASH(K, h1, h2, · · · , hqk) • W = extractBits(H, qk/2) // See line 9 - 16 • for i = 1, i < qk, i = i + 2 do • if (W[i/2] == 1 and hi < hi+1) or (W[i/2] == 0 and hi > hi+1) then • switch the position of ri and ri+1 • end if • end for • extractBits(H, l) { 10: if length(H) ≥ l then • W = concatenation of first l selected bits from H • else • m = l - length(H) • W = concatenation of H and extractBits(H,m) • end if • return W }
Example Figure 1: A table before and after watermark embedding WM={0,1}
Watermark Detection • Algorithm 3 Watermark detection • 1: For all k ∈ [1, g] qk = 0 • 2: for i = 1 to ω do • 3: hi = HASH(K, ri.A1, ri.A2, · · · , ri.Aγ) // tuple hash • 4: hp • i = HASH(K, ri.P ) // primary key hash • 5: k = hp • i mod g • 6: ri → Gk • 7: qk ++ • 8: end for • 9: for k = 1 to g do • 10: watermark verification in Gk // See Algorithm 4 • 11: end for
Watermark Detection • Algorithm 4 Watermark verification in Gk • 1: sort tuples in Gk in ascendant order according to their primary • key hash // Virtual operation • 2: H = HASH(K, h1, h2, · · · , hqk) // hi(i = 1, · · · qk) is the • tuple hash of ith tuple after ordering • 3: W = extractBits(H, qk/2) //See line 9-16 in Algorithm 2 • 4: for i = 1, i < qk, i = i + 2 do • 5: if hi ≤ hi+1 then • 6: W[i/2] = 0 • 7: else • 8: W[i/2] = 1 • 9: end if • 10: end for • 11: ifW == W then • 12: V = TRUE • 13: else • 14: V = FALSE • 15: end if