Lĩnh vực bảo vệ bản quyền là một lĩnh vực rất rộng lớn, bao gồm nhiều mặt,
nhiều lĩnh vực của đời sống. Bảo vệ bản quyền phải có sự góp sức của khung hành
lang pháp lý, ý thức của cộng đồng sử dụng cũng nhƣ của chính tác giả, và cuối cùng
là các kỹ thuật bảo vệ bản quyền tài liệu
120 trang |
Chia sẻ: lylyngoc | Lượt xem: 3277 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Luận văn Nghiên cứu ứng dụng thủy ký bảo vệ bản quyền tài liệu số, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
N
km
WN
ln
0 = l, k = N-1
và biến đổi ngƣợc:
u(m,n) =
1
2
0
1
0
1
N
v k l
l
N
k
N
( , )
WN
-km
WN
-ln
0 = m, n = N-1
Cặp DFT đơn vị hai chiều đƣợc định nghĩa:
v(k,l) =
1
0
1
0
1
N
u m n
n
N
m
N
( , )
WN
km
WN
ln
0 = l, k = N-1
u(m,n) =
1
0
1
0
1
N
v k l
l
N
k
N
( , )
WN
-km
WN
-ln
0 = m, n = N-1
Viết lại hai công thức đầu tiên, ta có:
58
v(k,l) =
1
0
1
0
1
N
u m n
n
N
m
N
( , )
WN
(km
+
ln)
0 = l, k = N-1
u(m,n) =
1
0
1
0
1
N
v k l
l
N
k
N
( , )
WN
-(km
+ ln)
0 = m, n = N-1
Ở đây, WN
(km+ln)
là ma trận ảnh cơ sở. Nhắc lại rằng ej = cos() +jsin() (công
thức Ơle). Do vậy:
WN
(km+ln)
= e
-j2(km+ln)/N
= cos(2(km+ln)/N) - j sin (2(km+ln)/N).
Nhƣ vậy, các hàm cơ sở trong ma trận ảnh cơ sở của biến đổi Fourier là các hàm
cosine và hàm sine. Theo tính toán trên, ta thấy biến đổi Fourrier biểu diễn ảnh trong
không gian mới theo các hàm sin và cos.
59
2.2.2.2. Phép biến đổi Cosine rời rạc.
Phép biến đổi Cosine rời rạc (Discrete Cosine Transform - DCT) là một phép
biến đổi có nhiều ứng dụng trong nén ảnh, và đã đƣợc sử dụng trong định dạng ảnh
JPEG.
Phép biến đổi Cosin rời rạc (DCT) đƣợc Ahmed đƣa ra vào năm 1974. Kể từ đó
đến nay nó đƣợc ứng dụng rất rộng rãi trong nhiều phƣơng thức mã hoá ảnh khác nhau
nhờ hiệu suất gần nhƣ tối ƣu của nó đối với các ảnh có độ tƣơng quan cao giữa các
điểm ảnh lân cận. Biến đổi Cosin rời rạc đƣợc sử dụng trong chuẩn ảnh nén JPEG và
định dạng phim MPEG.
Phép biến đổi Cosine một chiều:
Phép biến đổi Cosin rời rạc một chiều đƣợc định nghĩa bởi:
Trong đó:
]1,1[
0
0
2
1
Nk
k
khi
khi
k
Khi dãy đầu vào x(n) là thực thì dãy các hệ số X(k) cũng là số thực. Tính toán
trên trƣờng số thực giảm đi một nửa thời gian so với biến đổi Fourier.
Phép biến đổi Cosin ngƣợc đƣợc định nghĩa bằng công thức:
Với
00
0
2
1
kkhi
kkhi
k
2N
1)kΠ(2n1N
0n
x(n)cos
N
k
2ε
X(k)
(
8.10)
1
0 2
)12(
)()(
N
k N
nk
Cos
k
kXn
60
2.2.2.3. Phép biến đổi sóng con rời rạc.
Phép biến đổi sóng con rời rạc (Discrete Wavelet Transform - DWT) là một phép
biến đổi mới và hứa hẹn có nhiều ứng dụng trong xử lý ảnh số. DWT đã đƣợc sử dụng
trong định dạng ảnh JPEG2000.
Không giống với biến đổi Fourier, vốn thích hợp với các tín hiệu ổn định, DWT
thích hợp cho các tín hiệu không ổn định, có đáp ứng tần số thay đổi theo thời gian.
Để giải quyết vấn đề của DFT, biến đổi Fourier thời gian ngắn (Short Time
Fourier Transform - STFT) đã đƣợc đề xuất. Ý tƣởng của STFT là chia tín hiệu thành
từng khoảng thời gian đủ nhỏ để có thể coi là ổn định trong từng khoảng. Dựa trên ý
tƣởng đó thì DWT đã ra đời.
Wavelet là các hàm đƣợc định nghĩa trong khoảng giá trị hữu hạn và có giá trị
trung bình bằng 0. Các hàm này đƣợc lấy từ một hàm nguyên mẫu gọi là hàm wavelet
mẹ (mother wavelet).
Trong thực tế, DWT thuận và nghịch thƣờng đƣợc tính toán theo hai công thức:
Trong đó, ψ(t) là hàm wavelet mẹ, và các giá trị a0 và b0 thƣờng đƣợc chọn là 2
và 1. Hàm wavelet mẹ phải thỏa mãn hai tính chất sau:
Tích phân suy rộng trên toàn miền t của hàm ψ(t) phải bằng 0.
Tích phân năng lƣợng trên toàn miền t của hàm ψ(t) phải hữu hạn
Trong nhiều ứng dụng thực tế, DWT tỏ ra có ƣu thế hơn so với DFT.
61
2.3. CÁC THUẬT TOÁN THỦY VÂN TRÊN ẢNH.
Các thuật toán thực hiện thủy vân hiện trên ảnh là tƣơng đối dễ dàng, và đã đƣợc
nghiên cứu nhiều trong môn xử lý ảnh số. Các yêu cầu về tính thẩm mỹ đƣợc đề cao.
Tất nhiên cũng cần có yêu cầu là khó sử dụng các công cụ xử lý ảnh để loại bỏ thủy
vân.
Nhƣ đã trình bày ở trên, các thuật toán thủy vân ẩn trên ảnh có thể chia ra làm hai
loại chính, đó là thủy vân dựa vào biến đổi miền không gian ảnh, và biến đổi miền tần
số ảnh.
2.3.1. Thuật toán giấu thủy vân vào các bit có trọng số thấp.
Một ý tƣởng tự nhiên của thủy vân với ảnh số, cũng giấu nhƣ giấu tin, đó là sẽ sử
dụng các bit có trọng số thấp (Least Significant Bit - LSB) để giấu thủy vân.
Các bit có trọng số thấp đƣợc hiểu là các bit mà nếu thay đổi giá trị của chúng sẽ
ít làm thay đổi đến chất lƣợng ảnh.
Ví dụ, với ảnh bitmap 256 màu, màu của mỗi điểm ảnh đƣợc biểu diễn bằng 8
bit, nếu ta thay đổi giá trị bit thứ tám của mã màu, thì mã màu cũng chỉ thay đổi giá trị
có 1 đơn vị, nên nhìn chung thì cả bức ảnh không bị ảnh hƣởng nhiều.
Ta có thể minh họa thuật toán nhƣ sau:
Xét thủy vân là chuỗi bit 0111.
Xét bức ảnh là chuỗi bit: 11001101 11000001 11110000 11110010.
Để nhúng thủy vân vào bức ảnh, ta sẽ chia bức ảnh thành các khối 8 bit, và đặt
giá trị bit cuối cùng của khối bằng giá trị của bit thủy vân tƣơng ứng.
Với minh họa trên, chúng ta có bức ảnh sau khi nhúng thủy vân là:
11001100 11000001 11110001 11110011
Để tách thủy vân, đơn giản ta chỉ làm ngƣợc lại quy trình trên, tức là tách ra các
bit cuối của từng khối 8 bit, ta sẽ thu đƣợc thủy vân ban đầu.
Muốn tăng tính an toàn của hệ thống, có thể nhúng liên tiếp thủy vân vào các
khối 8 bit liền nhau, bởi thƣờng thì dung lƣợng bức ảnh sẽ lớn hơn nhiều lần so với độ
dài của thủy vân.
Ƣu điểm của thuật toán trên là đơn giản, và dung lƣợng giấu cao.
62
Tuy nhiên, nhƣợc điểm là do quá đơn giản nên rất dễ bị tấn công. Kẻ tấn công chỉ
cần thay đổi ngẫu nhiên giá trị của các bit có trọng số thấp là thủy vân đã bị phá hủy.
63
2.3.2. Thuật toán thủy vân ghép nối.
Thuật toán đƣợc trình bày bởi Bender và đồng nghiệp năm 1996.
Xét một bức ảnh, ta sẽ chia bức ảnh thành hai tập con có số lƣợng phần tử bằng
N, gọi là hai tập con A và B. Mỗi phần tử trong tập con A đƣợc cộng thêm một lƣợng
d, ngƣợc lại mỗi phần tử trong tập B bị trừ đi một lƣợng d.
Gọi E(A) và E(B) là các giá trị trung bình của tập A và tập B. Ta sẽ có
E(A)≈E(B) ≈E(A u B) và E(A) – E(B) ≈ 0.
Gọi a và b là 2 tập có n phần tử, lấy ngẫu nhiên trong A và B.
1
( [ ] [i])S a i b
N
Theo luật thống kê, ta sẽ có:
E(S) = 2d nếu dữ liệu có thủy vân.
E(S) = 0 nếu dữ liệu không có thủy vân.
Nhƣ vậy, để kiểm tra xem dữ liệu có thủy vân hay không, ta sẽ sử dụng luật
thống kê. Nếu E(S) lớn hơn một ngƣỡng nào đó thì có thể coi là dữ liệu có thủy vân.
64
2.3.3. Thuật toán thủy vân ảnh trên miền DCT.
Khác với các phép thủy vân dựa trên biến đổi không gian ảnh, tƣơng đối dễ bị tấn
công và phát hiện, năm 1995, Cox đã đƣa ra một mô hình khác, đó là nhúng thủy vân
vào miền tần số.
Hình 13. Mô hình nhúng thủy vân của Cox.
Trong mô hình của Cox, một chuỗi các giá trị c0 = c0[1], c0[2], …, c0[n] đƣợc
trích xuất từ ảnh. Các giá trị này đƣợc gọi là các giá trị mang, và chúng sẽ chứa thủy
vân. Thủy vân là một chuỗi số thực w = w[1], w[2], …, w[n].
Theo Cox đề xuất, thủy vân có thể đƣợc nhúng theo một trong ba công thức:
Trong đó tham số α đặc trƣng cho tính bền vững của thủy vân, và đƣợc thay đổi
tùy từng bài toán cụ thể.
Để kiểm tra thủy vân, ngƣời ta cũng phải dùng tới thống kê.
Dựa trên mô hình của Cox, năm 1998, Burgett đã đề xuất một thuật toán thủy vân
ảnh dựa vào biến đổi DCT với định dạng ảnh JPEG.
Thuật toán của Burgett sẽ chia ảnh JPEG thành các khối (block) có kích thƣớc
8x8 điểm ảnh. Mỗi khối sẽ đƣợc biến đổi DCT. Thuật toán sẽ chọn ngẫu nhiên các
khối để nhúng thủy vân. Thủy vân đƣợc nhúng trên mỗi khối bằng cách đổi chỗ một
cặp hệ số của biến đổi DCT.
65
Năm 2002, GS.TSKH Nguyễn Xuân Huy có đề xuất một thuật toán thủy vân ảnh
trên miền DCT nhƣ sau:
1/.Quá trình nhúng thủy vân:
Chia ảnh có kích thƣớc m x n thành (m x n)/64 khối, mỗi khối có kích thƣớc 8x8.
Biến đổi DCT cho từng khối.
Xét một khối bất kỳ B sau khi biến đổi DCT thu đƣợc khối B‟, ta chọn hai hệ số
bất kỳ trong miền tần số giữa của B‟, gọi hai hệ số là b‟(i, j) và b‟(p, q).
Gọi a là tham số của thuật toán, thỏa mãn a = 2 (2t + 1) với t là số nguyên dƣơng.
Tính d = ||b‟(i, j)| - |b‟(p, q)|| mod a.
Bit si sẽ đƣợc nhúng sao cho thỏa mãn điều kiện sau:
d ≥ 2t + 1 nếu si = 1.
d < 2t + 1 nếu si = 0.
Nếu d < 2t + 1 và si = 1, thì một trong hai hệ số DCT có giá trị tuyệt đối lớn hơn
sẽ bị thay đổi theo công thức sau để thỏa mãn d ≥ 2t + 1:
max(|b‟(i,j)|, |b‟(p,q)|) = max(|b‟(i,j)|, |b‟(p,q)|) + ([0,75 *a] - d)
với phép toán [] là phép toán lấy phần nguyên.
Hoặc cũng có thể thay đổi theo công thức sau:
min(|b‟(i,j)|, |b‟(p,q)|) = min(|b‟(i,j)|, |b‟(p,q)|) - ([0,25 *a] + d)
Tƣơng tự, nếu d ≥ 2t + 1 và si = 0, thì ta áp dụng hai công thức sau để thay đổi hệ
số DCT:
max(|b‟(i,j)|,|b‟(p,q)|) = max(|b‟(i,j)|,|b‟(p,q)|) - (d – [0,25*a])
hoặc:
min(|b‟(i,j))|,|b‟(p,q)|) = min(|b‟(i,j))|,|b‟(p,q)|) + [1,25*a] – d
2/.Quá trình tách thủy vân:
Đọc khối DCT từ ảnh chứa thủy vân và vị trí hai hệ số đã biến đổi, sau đó tính:
d = ||b‟(i,j)|-|b‟(p,q)|| mod a
Nếu d ≥ 2t + 1 thì gán si = 1, ngƣợc lại gán si = 0.
66
2.3.4. Thuật toán thủy vân ảnh trên miền DWT.
Tƣơng tự nhƣ thuật toán thủy vân ảnh trên miền DCT, trong biến đổi DWT, thủy
vân đƣợc nhúng vào các dải tần số cao nhất, theo công thức sau:
Mô hình của biến đổi DWT đƣợc cho trong hình sau:
Hình 14. Biến đổi DWT ba mức
Năm 2004, hai tác giả Lê Tiến Thƣờng và Nguyễn Thanh Tuấn tại Đại học Bách
khoa TP Hồ Chí Minh có đề xuất một giải pháp sử dụng DWT để nhúng thủy vân vào
ảnh.
Thuật toán đƣợc phát biểu nhƣ sau: thực hiện DWT cho ảnh. Một tập các hệ số
lớn nhất có chiều dài bằng chiều dài watermark trong băng tần thích hợp đƣợc trích ra
và cộng với watermark theo công thức:
Cw = C + αW
Quá trình tách thủy vân đƣợc thực hiện ngƣợc lại:
W = (Cw‟ - C)/α
Trong đó Cw‟ là các hệ số lớn nhất của ảnh. Do ảnh có thể bị tấn công nên có thể
Cw ≠ Cw‟.
67
Khi tách đƣợc thủy vân, chúng ta sẽ so sánh nó với thủy vân gốc bằng hệ số
tƣơng quan d:
Giá trị của d nằm trong khoảng từ -1 tới 1, nếu d càng gần 1 thi càng có cơ sở xác
nhận là ảnh có đƣợc nhúng thủy vân.
Thuật toán cho kết quả tốt hơn so với thuật toán nhúng thủy vân trên miền DCT
của Cox, đồng thời thủy vân cũng bền với các phép tấn công nén JPEG2000, lọc, và co
dãn ảnh.
68
2.3.5. Thuật toán thủy vân sử dụng biến đổi Karhunen – Loeve.
Giáo sƣ Wang Shuozhong (Vƣơng Thừa Trung) tại Đại học Thƣợng Hải có đề
xuất một thuật toán thủy vân dựa vào biến đổi Karhunen – Loeve, hay còn gọi là phân
tích các thành phần quan trọng (PCA).
Thuật toán đƣợc phát biểu nhƣ sau:
Xét một chuỗi các vector fk, với k = 1, 2, … K là các mẫu đƣợc lấy từ một quá
trình ngẫu nhiên. fk có kích thƣớc Rx1.
Biến đổi các thành phần quan trọng, hay biến đổi Karhunen – Loeve, đƣợc định
nghĩa nhƣ sau:
gk = Afk
Trong đó A là ma trận chuyển kích thƣớc RxR, với mỗi cột là vector đặc trƣng
(eigenvector) của ma trận thống kê CF đƣợc lấy từ quá trình biến đổi ảnh F. Các cột
trong A đƣợc sắp xếp theo thứ tự giảm dần của trị riêng (eigenvalue).
Xét một ảnh có kích thƣớc MxN, đƣợc chia thành K = I.J miền, mỗi miền sẽ là
một ma trận 2 chiều có kích thƣớc PxQ, với P = M/I và Q = N/J. Các miền cũng có thể
đƣợc tổ chức là nhƣ một mảng 1 chiều có kích thƣớc PxQ. Có rất nhiều phƣơng pháp
chia ảnh thành các miền nhƣ vậy. Trong [33], GS Vƣơng đề xuất một phƣơng pháp
đơn giản nhƣ sau:
Nhƣ vậy, bức ảnh ban đầu của chúng ta bây giờ có thể xem nhƣ K mẫu đƣợc lấy
từ một quá trình ngẫu nhiên R chiều. Nhƣ vậy, kỹ thuật PCA đƣợc giới thiệu ở trên đã
có thể đƣợc sử dụng.
Xét ảnh G, theo nhƣ quá trình phân tách ảnh thành các miền đã trình bày ở trên,
ta có thể viết lại ảnh G dƣới dạng sau:
69
Sắp xếp lại G theo thứ tự giảm dần của trị riêng, trở thành q1, q2, …, qR.
Trị riêng của từng khối qi chính là năng lƣợng của khối. Nhƣ vậy, khối q1 có
nhiều năng lƣợng nhất, và sẽ ảnh hƣởng nhiều nhất tới ảnh. Nhƣ vậy, để tăng tính bền
vững của thủy vân, thì chúng ta sẽ nhúng thủy vân vào các khối có hệ số nhỏ, trong
khi để tăng tính ẩn thì chúng ta sẽ nhúng thủy vân vào các khối có hệ số lớn.
70
2.3.6. Thủy vân dễ vỡ.
Thủy vân dễ vỡ (fragile watermark) là một dạng thủy vân đặc biệt, đƣợc sử dụng
để bảo đảm tính toàn vẹn thông tin của ảnh số. Đặc điểm của thủy vân dễ vỡ là, chỉ
cần ảnh bị thay đổi thì thủy vân sẽ bị phá hủy, do đó chống lại sự xuyên tạc nội dung
của ảnh.
Thuật toán thủy vân dễ vỡ đầu tiên đƣợc Yeung và Mintzer đƣa ra vào năm 1997.
Thuật toán chỉ hoạt động trên các ảnh xám, với thủy vân là một chuỗi bit. Phía bên
ngƣời nhận sẽ đọc từng điểm ảnh, trích xuất thủy vân và so nó với thủy vân đƣợc công
bố. Nếu có sự khác biệt, thì độ xám của điểm ảnh sẽ đƣợc thay đổi tới khi hai thủy vân
thu đƣợc là giống nhau. Thuật toán của Yeung và Mintzer làm việc và bảo toàn tính
toàn vẹn dữ liệu cho từng điểm ảnh, cũng nhƣ hỗ trợ khả năng khôi phục ảnh gốc.
Một thuật toán khác, đƣợc Wong Ping Wah đƣa ra năm 1998, kết hợp giữa thủy
vân số và mật mã hóa công khai. Trong thuật toán của Wong, mức xám của LSB trong
ảnh gốc sẽ đƣợc đặt bằng 0. Sau đó, ảnh gốc sẽ đƣợc chia thành các khối (block) có
kích thƣớc bằng kích thƣớc thủy vân. Kích thƣớc của ảnh cùng với mỗi khối đó sẽ
đƣợc băm, và kết quả thu đƣợc sẽ đƣợc XOR với thủy vân. Kết quả của phép XOR sẽ
đƣợc mã hóa bằng hệ mã hóa RSA, sau đó nhúng vào LSB của ảnh gốc.
Phía bên nhận, sẽ làm công việc ngƣợc lại. Đầu tiên, ảnh cũng sẽ lại đƣợc chia
thành các khối, và thông tin nhúng trong LSB sẽ đƣợc thu hồi và giải mã cũng bằng hệ
mã hóa RSA. Cùng với đó, bên nhận cũng sẽ băm các khối của ảnh thu đƣợc cùng kích
thƣớc ảnh. Hai kết quả đó đƣợc XOR với nhau để thu lại thủy vân, và so sánh thủy vân
thu đƣợc với thủy vân gốc đƣợc lƣu trong cơ sở dữ liệu của bên gửi.
Cả hai thuật toán trên đều có nhƣợc điểm, là không tận dụng sự tƣơng quan giữa
các khối ảnh liền nhau, và dung lƣợng giấu tin thấp.
Để cải tiến nhƣợc điểm này, năm 2003, hai tác giả Li Chang Tsun và Yang Fong
Man ở Đại học Havard đã đề xuất một thuật toán thủy vân mới. Thuật toán này sẽ thay
đổi mức xám của mỗi điểm ảnh đi một lƣợng nhất định, lƣợng này phụ thuộc vào bản
thân thủy vân và một điểm ảnh lân cận của điểm ảnh đang xét. Do điểm ảnh lân cận
này là bí mật, cho nên sẽ làm tăng độ an toàn của thủy vân. Thuật toán của Li và Yang
là thuật toán thủy vân miền không gian ảnh.
Cũng trong năm 2003, ba tác giả Hsieh Tsung Han, Li Chang Tsun và Wang
Shuo đã đề xuất một thuật toán thủy vân trên miền tần số.
71
Ảnh gốc X đƣợc DCT và chia thành các khối 8x8. Một ảnh nhị phân A có kích
thƣớc bằng X đƣợc tạo ra từ khóa bí mật. Ảnh nhị phân B đƣợc tạo ra theo luật: tất cả
các điểm ảnh tƣơng ứng với các hệ số khác 0 thì có giá trị 1, ngƣợc lại có giá trị 0.
Thủy vân W đƣợc tạo ra bằng cách X = A XOR B. W cũng đƣợc chia thành các khối
8x8. Sau khi DCT mỗi khối Xi, bốn hệ số Xi(h), Xi(h - 1), Xi(h - 2) và Xi(h - 3) thỏa
điều kiện là tần số thấp hơn hoặc bằng tần số giữa h sẽ đƣợc chọn là các hệ số thủy
vân. Bốn hệ số này đƣợc điều chỉnh sao cho phƣơng trình sau đƣợc thỏa mãn:
P (Si(j) * Xi(j)) = Wi(j)
Trong đó:
P() là hàm số, trả về giá trị 1 nếu số lƣợng bit 1 trong tham số là lẻ, và bằng 0 nếu
ngƣợc lại.
* là phép toán nối Xi(j) và Si(j).
Si(j) là tổng của các hệ số thủy vân không âm và Wi(j) thuộc tập Ni(j) – là tập
chứa DCT của Xi và 8 khối xung quanh.
Quá trình đƣợc lặp lại cho tới khi tất cả các khối đƣợc thủy vân. Quá trình trích
xuất thủy vân đƣợc thực hiện theo quy trình ngƣợc lại.
72
2.3.7. Thủy vân giòn.
Thủy vân dễ vỡ có đặc điểm là rất nhạy cảm với thay đổi ảnh, tức chỉ cần có một
thay đổi nhỏ trên ảnh là thủy vân đã bị phá hủy. Điều này không thích hợp với thực tế,
khi ảnh truyền trên Internet có thể bị xử lý nhƣ nén, xoay chiều mà không làm thay đổi
nội dung. Thủy vân giòn (semi-fragile watermark) ra đời nhằm cung cấp một khả năng
tùy biến tốt hơn cho thủy vân ảnh. Thủy vân giòn chỉ bị hủy khi ảnh có sự thay đổi rất
lớn, làm biến dạng ảnh.
Năm 1999, Kundur và Hatzinakos đã đƣa ra một thuật toán thủy vân giòn trên
ảnh sử dụng DWT.
Đầu tiên, hai tác giả định nghĩa hàm lƣợng tử hóa Q(f) nhƣ sau:
Q(f) = 0, nếu [f/a.2l] chẵn.
Q(f) = 1 trong trƣờng hợp ngƣợc lại.
Với hàm [] là hàm lấy phần nguyên của một số. f là một hệ số, l là cấp DWT.
Thực hiện DWT L cấp đối với ảnh. Trừ hệ số của băng tần có tần số thấp nhất,
mỗi hệ số f(i) phải thỏa mãn phƣơng trình sau, với qkey(i) là một biến boolean, phụ
thuộc vào các lân cận của điểm ảnh i:
Q(f(i)) = w(i) XOR qkey(i)
Nếu phƣơng trình trên không đƣợc thỏa, cần biến đổi f(i) nhƣ sau:
f(i) = f(i) – a.2l, nếu f(i) > 0
f(i) = f(i) + a.2
l, nếu f(i) ≤ 0
Sau khi quá trình nhúng thủy vân kết thúc, thực hiện IDWT để thu lại ảnh đã
nhúng thủy vân.
Ở phía nhận, sẽ thu lại thủy vân bằng công thức sau:
we(i) = Q (f(i)) XOR qkey(i)
Hệ số thay đổi ảnh (Tamper Assesment Function - TAF) đƣợc định nghĩa là:
TAF (we, w) = 1/Nw. ∑ (w(i) XOR we(i))
TAF đặc trƣng cho sự biến đổi nhiều hay ít của ảnh, và quyết định có chấp nhận
sự thay đổi đó hay không là tùy vào ngƣời dùng.
73
2.4. TẤN CÔNG THỦY VÂN.
Từ năm 1999, các phƣơng pháp tấn công thủy vân bắt đầu đƣợc chú ý nghiên cứu
và cũng đạt đƣợc nhiều kết quả.
Với thủy vân hiện, phƣơng pháp phổ biến hiện nay vẫn là sử dụng các công cụ
xử lý ảnh nhƣ Adobe Photoshop, hoặc GIMP để loại bỏ thủy vân hiện trên ảnh.
Với thủy vân ẩn, thủy vân có thể bị xóa bỏ bởi các tác động vô tình hoặc tấn
công cố ý. Các tác động vô tình là do ngƣời sử dụng dùng các phép biến đổi ảnh nhằm
thay đổi ảnh theo ý muốn, nhƣng qua đó lại thay đổi và xóa bỏ thủy vân. Các tấn công
cố ý có sự khác biệt, là kẻ tấn công có kiến thức rõ ràng về thủy vân, và có ý định xóa
bỏ thủy vân.
Hiện nay, đã có nhiều công cụ đƣợc nghiên cứu để tấn công và xóa bỏ thủy vân
ẩn trên ảnh số, có thể kể ra một số công cụ nhƣ sau:
Stirmark: Stirmark là một công cụ phổ biến để kiểm tra độ bền của thủy
vân. Với một bức ảnh đã cho, Stirmark sẽ thực hiện một loạt các phép biến
đổi nhằm xóa bỏ thủy vân trên ảnh. Stirmark đƣợc Fabien Petitcolas phát
triển từ năm 1997, và tới nay đã có phiên bản 4.0. Stirmark đƣợc cung cấp
miễn phí tại địa chỉ
CheckMark: CheckMark là một công cụ sử dụng với Matlab, đƣợc phát
triển từ năm 2001. CheckMark hỗ trợ nhiều kỹ thuật xử lý ảnh nhƣ DWT, tạo
nhiễu, lọc, v.v… CheckMark đƣợc cung cấp tại địa chỉ
Optimark: Optimark hỗ trợ cả việc dò tìm thủy vân, hay tấn công xóa bỏ
thủy vân trên ảnh. Optimark đƣợc cung cấp tại địa chỉ
Các phƣơng pháp tấn công thủy vân có thể chia thành các loại:
Tấn công đơn giản: tấn công đơn giản, hay còn gọi là tấn công mù (blind
attack) là dạng tấn công đơn giản đầu tiên, tƣơng ứng với thời kỳ thủy vân
mù còn phát triển. Tấn công mù cố gắng tấn công tất cả các miền trên ảnh và
không quan tâm tới nội dung ảnh cũng nhƣ thuật toán thủy vân. Các kỹ thuật
thƣờng đƣợc sử dụng là lọc tuyến tính, lọc phi tuyến, thay đổi màu, chuyển
đổi digital – analog, lấy mẫu, lƣợng tử hóa, v.v…
Vô hiệu hóa thủy vân: tấn công dạng này cố gắng phá hủy thủy vân, thƣờng
sử dụng các biến đổi hình học, nhƣ là co dãn ảnh, xoay ảnh, cắt ảnh hoặc
74
chèn thêm thông tin, v.v…Stirmark chính là một công cụ nổi tiếng trong tấn
công dạng này.
Tấn công nhập nhằng: tấn công dạng này thƣờng sử dụng các kỹ thuật nhƣ
là chèn thêm thủy vân vào ảnh đã nhúng thủy vân, hoặc nghiên cứu chính
thuật toán thủy vân để có thể loại bỏ thủy vân một cách hiệu quả.
75
Chƣơng 3. SỬ DỤNG THỦY VÂN SỐ BẢO VỆ BẢN
QUYỀN CÁC TÀI LIỆU SỐ KHÁC
3.1. SỬ DỤNG THỦY VÂN SỐ BẢO VỆ BẢN QUYỀN AUDIO.
Tình hình vi phạm bản quyền âm nhạc ở Việt Nam hiện nay là hết sức trầm
trọng. Các đĩa CD lậu với giá chỉ vài nghìn đồng đƣợc bày bán công khai và rộng rãi
trên nhiều thành phố lớn. Các công ty, tổ chức tự do sử dụng các tác phẩm âm nhạc mà
không cần biết đến sự cho phép của tác giả. Theo thống kê, tỷ lệ vi phạm bản quyền
âm nhạc của Việt Nam năm 2008 đạt tới 85%, đứng thứ ba ở khu vực châu Á – Thái
Bình Dƣơng.
Quá trình thủy vân đối với audio có nhiều thuận lợi, bởi tai ngƣời không thể nghe
đƣợc các miền tần số quá cao hoặc quá thấp (trung bình ngƣỡng nghe đƣợc của tai
ngƣời chỉ từ 20Hz đến 20kHz). Nếu tận dụng để nhúng thủy vân vào những miền tần
số đó thì con ngƣời không thể phát hiện đuợc bằng các giác quan thông thƣờng của
mình.
3.1.1. Giới thiệu audio số.
Về bản chất, âm thanh là một sóng cơ học. Âm thanh lan truyền trong môi truờng
chất rắn là nhanh nhất. Tuy nhiên, để có thể truyền âm thanh đi xa với tốc độ cao,
ngƣời ta sẽ phải điều chế sóng âm thành sóng điện từ, truyền trên các phƣơng tiện
truyền dẫn tới bên nhận. Tại bên nhận sẽ tiến hành giải điều chế để thu đƣợc sóng âm
ban đầu.
Do âm thanh là một tín hiệu liên tục, nên để có thể số hóa và lƣu trữ trong máy
tính, chúng ta cần có quá trình lấy mẫu. Để tín hiệu thu đƣợc trung thực so với âm
thanh gốc, cần tăng tần số lấy mẫu, băng thông bộ lọc và số bit trên mẫu.
Các file nhạc chất lƣợng cao hiện nay thƣờng có bitrate lên tới 320Kbps, trung
bình là từ 128Kbps tới 192Kbps.
76
3.1.2. Tổng quan về thủy vân trên audio.
3.1.2.1. Thủy vân dựa trên miền dữ liệu.
Về ý tƣởng, các phƣơng pháp thủy vân trên miền dữ liệu đối với audio cũng
giống nhƣ tiến hành thủy vân trên miền không gian đối với ảnh. Kỹ thuật này đơn giản
và dung lƣợng giấu lớn, cho nên là phƣơng pháp tiếp cận đầu tiên trong lịch sử.
Một số kỹ thuật thủy vân trên miền dữ liệu tiêu biểu:
Thủy vân miền nén (compressed domain watermarking):
Các file audio truyền bá trên Internet thƣờng là đƣợc nén so với file gốc, do đó
bản thân các thông tin về quá trình nén đƣợc sử dụng làm thủy vân.
Bit ít quan trọng (Least Significant Bit - LSB):
Kỹ thuật này cũng tƣơng tự nhƣ với ảnh số, các bit ít quan trọng đƣợc điều biến.
Kỹ thuật này có ƣu điểm là dung lƣợng giấu lớn, nhƣng rất kém an toàn trƣớc các phép
biến đổi và xử lý âm thanh nhƣ nén, chuyển đổi sang analog, hay gây nhiễu.
Điều biên (Amplitude Modulation):
Kỹ thuật này sửa đổi các điểm cực đại của tín hiệu để nó nằm trong băng tần có
độ lớn xác định trƣớc. Kỹ thuật này gây ra sự sai lệch trong điều biên, và không an
toàn với các phép nén biên độ thƣờng đƣợc sử dụng trong khôi phục âm thanh và giảm
nhiễu.
Giấu echo (Echo hiding):
Trong kỹ thuật này, các bản rời rạc của tín hiệu gốc đƣợc trộn lại với chính nó,
với một độ lùi nhất định về mặt thời gian.
cw(t) = c0(t) + α.c0(t - Δt)
77
3.1.2.2. Thủy vân dựa trên miền tần số:
Các kỹ thuật thủy vân trên miền tần số dựa vào việc biến đổi tần số của một tín
hiệu.
Một số kỹ thuật thủy vân dựa trên miền tần số tiêu biểu:
Mã hóa pha (phase coding):
Mã hóa pha dựa trên một thực tế là tai ngƣời rất kém nhạy cảm với pha. Tín hiệu
đƣợc chia thành nhiều khối, và thủy vân đƣợc giấu vào khối đầu tiên. Phƣơng pháp
này cho dung lƣợng giấu tin rất thấp, và không an toàn khi bị nén. Cũng có thể đơn
giản loại bỏ thủy vân bằng cách loại đi phần đầu của file audio.
Chỉnh sửa băng tần (Frequency Band Modification):
Thông tin đƣợc mã hóa bằng cách xóa hoặc tăng cƣờng một dãy phổ cụ thể, xóa
dãy phổ hẹp hay mã hóa sự khác biệt trong băng tần. Kỹ thuật này gây ra sự khác biệt
về phổ.
Trải phổ (spread spectrum):
Một tín hiệu sóng mang thông tin thủy vân đƣợc điều biến trong nhiễu băng rộng,
bằng phép nhân với một chuỗi giả ngẫu nhiên. Kỹ thuật trải phổ có nhiều ƣu điểm nhƣ:
Chống đƣợc nhiễu.
Loại trừ đƣợc ảnh hƣởng của truyền sóng nhiễu tia.
Có thể dùng chung băng tần với ngƣời sử dụng khác.
Sử dụng đƣợc cho thông tin vệ tinh.
Đảm bảo đƣợc tính riêng tƣ nhờ sử dụng mã giả ngẫu nhiên.
Đƣợc hoạt động không cần giấy phép ở ba lĩnh vực công nghiệp, khoa
học và y tế với công suất đến 1W ở các băng tần 902 – 928Mhz, 2.4 –
2.4835GHz, 5.725 – 5.85GHz.
78
3.1.2.3. Thủy vân dựa trên miền thời gian thực.
Các phƣơng pháp thủy vân dựa trên thời gian chủ yếu dựa trên kỹ thuật lập trục
thời gian và sau đó tiến hành co giãn thời gian của tín hiệu audio. Với các thay đổi nhỏ
về thời gian thì tai ngƣời cũng không thể cảm nhận đƣợc.
Hình 15. Thủy vân tín hiệu bằng điều biến cơ số thời gian.
Thủy vân đƣợc nhận ra bằng cách đo độ co giãn của thời gian trên tín hiệu.
Hình 16. Sự sai khác thời gian của tín hiệu gốc và tín hiệu đã nhúng thủy vân
79
3.1.3. Một thuật toán thủy vân trên audio sử dụng kỹ thuật trải phổ.
Khóa luận xin trình bày một thuật toán thủy vân trên audio sử dụng kỹ thuật trải
phổ, là kỹ thuật có nhiều ƣu điểm và đang đƣợc quan tâm hiện nay.
3.1.3.1. Mô hình giả lập hệ thính giác.
Mô hình giả lập hệ thính giác là thuật toán mô phỏng cơ chế cảm nhận âm thanh
của tai ngƣời.
Hình 17. Mô hình giả lập hệ thính giác.
Ta chia tín hiệu âm thanh thành nhiều đoạn ngắn, có chồng lấn nhỏ lên nhau, gọi
là frame.
Gọi s(t) là tín hiệu âm thanh trên miền thời gian.
Sử dụng DFT để chuyển tín hiệu này sang miền tần số. Từng đại lƣợng trong mô
hình đƣợc mô tả ở hình 17 đƣợc tính nhƣ sau:
s(jw) = FFT (s(t))
Sp(jw) = |Sw(jw)|
2
( ) ( )
HBZ
LBZ
Spz z Sp jw
Spz đƣợc biểu diễn bằng đơn vị Bark. Công thức chuyển đổi từ đơn vị Hz sang
Bark nhƣ sau:
HBZ và LBZ là các tần số trên và tần số dƣới của critical band z.
80
T(z) là ngƣỡng nghe sau cùng, đƣợc tính bằng công thức:
T(z)=max(Tnorm(z),TH).
Với Tnorm(z) là ngƣỡng nghe sau khi chuẩn hóa nguỡng nghe thô.
TH là ngƣỡng nghe của con ngƣời.
Tnorm(z) = Traw(z)/Pz
trong đó Traw(z) là ngƣỡng năng lƣợng thô, Pz là tổng số điểm trong băng tần z.
81
3.1.3.2. Thuật toán thủy vân.
Thuật toán sẽ sử dụng âm thanh giả làm nhiễu Jammer, là những nhiều có cƣờng
độ và năng lƣợng lớn hơn nhiều so với tín hiệu, trong khi thủy vân lại đƣợc giả làm âm
thanh gốc.
Hình 18. Thành phần tín hiệu sau khi thủy vân.
Nhƣ vậy, thủy vân sẽ đƣợc âm thanh che chắn, và bền với các phép giảm nhiêu
cũng nhƣ các phép chuyển đổi định dạng âm thanh.
Thuật toán:
1/.Tạo thủy vân:
Sơ đồ tạo thủy vân của thuật toán đƣợc cho ở hình dƣới.
Hình 19. Sơ đồ tạo thủy vân
Bƣớc 1: Chuyển chuỗi tín hiệu thủy vân sang dạng cực và lặp dãy bit w m lần.
Dãy bit w là dãy bit thủy vân ở dạng cực.
Bƣớc 2: Cho chuỗi bit wR đi qua ma trận Interleave H dòng và I cột. Đầu vào lấy
theo dòng, đầu ra lấy theo cột.
Bƣớc 3: thêm header.
82
Bƣớc 4: chuyển biểu diễn dãy bit d sang miền thời gian.
Bƣớc 5: điều chế và trải chuỗi tín hiệu.
Bộ tạo chuỗi PN: là bộ tạo ra một dãy giả ngẫu nhiên (pseu-random number).
2/.Nhúng thủy vân:
Sơ đồ nhúng thủy vân đƣợc cho ở hình dƣới.
Hình 20. Sơ đồ nhúng thủy vân.
Bƣớc 1: Chia dãy tín hiệu thành N frame. Mỗi frame có n block.
Bƣớc 2: Áp dụng phép biến đổi Fourier nhanh (Fast Fourier Transform) cho từng
frame.
Xw = FFT (frame[i]*hamming[nBlock])
Bƣớc 3: chuyển từ miền tần số sang miền Bark.
Bƣớc 4: tìm trong dãy tín hiệu âm thanh chứa các thành phần nằm trên ngƣỡng T,
lƣu lại vị trí các điểm đó vào dãy above.
Xnew[above] = Xw[above]
Bƣớc 5: trải tín hiệu, và kết hợp tín hiệu âm thanh và tín hiệu thủy vân:
Xnew = Xnew * Fz.
OUT = Xnew + Snew.
Bƣớc 6: biến đổi ngƣợc về miền thời gian
out = IFFT (OUT)
83
3/.Tách thủy vân:
Hình 21. Sơ đồ tách thủy vân.
Quá trình tách thủy vân đƣợc chia làm ba giai đoạn:
Giai đoạn 1: Lọc bỏ tín hiệu âm thanh và tạo tín hiệu Rfinal.
Bƣớc 1: lọc lấy các thành phần nằm dƣới ngƣỡng T.
R(below) = Sw(below)
Bƣớc 2: lƣợng tử hóa
Fz[i] = 1/max |R(i)|
R(i) = R(i) * Fz[i]
Bƣớc 3: chuyển R về miền thời gian thực.
Giai đoạn 2: Dò tìm header.
Xây dựng bộ lọc phân giải cao và áp dụng để tìm ra vị trí đầu tiên của thủy vân.
Giai đoạn 3: Tổng hợp thủy vân.
Xóa bỏ header của chuỗi tìm đƣợc và cho tín hiệu thu đƣợc đi qua ma trận
Interleave để thu lại thủy vân.
84
3.2. SỬ DỤNG THỦY VÂN SỐ BẢO VỆ BẢN QUYỀN VIDEO.
Có thể hiểu một cách đơn giản, video là tổng hợp của hình ảnh và âm thanh. Vì
vậy, ta hoàn toàn có thể áp dụng các kỹ thuật thủy vân trên hình và thủy vân trên âm
thanh đối với video.
Nhƣ vậy, ta hoàn toàn có thể sử dụng các thuật toán thủy vân đã trình bày ở trên
cho ứng dụng thủy vân số đối với video. Tuy nhiên, nếu chỉ đơn thuần coi video là một
dãy ảnh liên tiếp thì sẽ không hợp lý và làm tiêu tốn tài nguyên xử lý của hệ thống.
Do các hình ảnh của video có độ tƣơng đồng cao, nên cần có các giải pháp
nghiên cứu và tối ƣu quá trình nhúng thủy vân vào audio, để làm tăng tốc độ xử lý.
Hiện nay, các nhà cung cấp video thƣờng sử dụng một kỹ thuật gọi là DRM –
Digital Right Management để bảo vệ bản quyền cho các sản phẩm của họ. Khi cung
cấp video, nhà sản xuất sẽ má hóa nội dung video và đƣa thông tin bản quyền vào sản
phẩm. Khi cung cấp đến tay ngƣời tiêu dùng, ngƣời tiêu dùng sẽ có đƣợc khóa để giải
mã sản phẩm đồng thời đƣa thêm thông tin ngƣời dùng vào sản phẩm.
Thủy vân sử dụng trong video thƣờng là dạng thủy vân hiện, thể hiện bằng một
logo hoặc dòng chữ của nhà sản xuất ở góc màn hình.
Hình 22. Thủy vân hiện trên góc trái của hình ảnh truyền hình
85
3.3. SỬ DỤNG THỦY VÂN SỐ BẢO VỆ BẢN QUYỀN PHẦN MỀM.
Ứng dụng thủy vân số trong bảo vệ bản quyền phần mềm đã có những ý tƣởng
hết sức táo bạo và độc đáo. Khóa luận xin trình bày về bộ rắc rối hóa chƣơng trình
(ofuscated program), là một ý tƣởng rất hay để bảo vệ bản quyền phần mềm.
Chƣơng trình đƣợc rắc rối hóa là một đoạn mã thông thƣờng, nhƣng đã đƣợc thay
đổi để không ai có thể hiểu đƣợc mục đích thật của đoạn mã.
Ví dụ, xét đoạn mã sau đƣợc viết bằng ngôn ngữ C:
#include
int O,o,i;char*I="";
main(l){O&=l&1?*I:~*I,*I++||(l=2*getchar(),i+=O>8\
?o:O?0:o+1,o=O>9,O=-1,I="t8B~pq`",l>0)?main(l/2):printf("%d\n",--i);}
Thật khó để có thể biết đƣợc đoạn mã ngắn này sẽ thực hiện điều gì, trong khi
đơn giản đoạn mã trên sẽ in ra màn hình dòng chữ “Hello world”.
Nhƣ vậy, ta có thể sử dụng những tính năng này để bảo vệ bản quyền phần mềm
nhƣ sau:
Giả dụ ta có một chƣơng trình P đem bán cho khách hàng, nhƣng muốn tránh
việc khách hàng copy P cho ngƣời khác, ta tìm cách, với mỗi khách hàng G, trộn vào
trong P một đoạn mã C(G) nào đó, biến P thành P(G).
P(G) về mặt chức năng thì giống hệt P, và việc thêm C(G) vào P không ảnh
hƣởng nhiều đến hiệu suất của P.
C(G) còn có một thuộc tính toán học nào đó mà ta có thể kiểm tra bằng cách
kiểm tra P(G). Thuộc tính toán học này có thể dùng để chứng minh rằng P(G) thuộc về
khách hàng G. Nhƣ vậy, hai khách hàng G1 và G2 khác nhau sẽ có hai chƣơng trình
P(G1) và P(G2) khác nhau [và ta kiểm tra đƣợc điều đó], dù là chúng giống hệt nhau
về mặt chức năng.
C(G) có thể xem nhƣ con dấu hay chữ ký của khách hàng G đã đóng vào P. Nhƣ
thế G sẽ không đem bản của mình cho ngƣời khác đƣợc.
Dĩ nhiên là cả hệ thống phải đƣợc thiết kế sao cho việc lấy C(G) ra khỏi P(G) là
cực kỳ khó làm. Ngoài ra, bất kể ngƣời ta biến đổi P(G) nhƣ thế nào (rắc rối hóa nó,
dịch nó sang ngôn ngữ khác, vân vân), thì “con dấu” C(G) vẫn bị dính kèm.
86
Những điều trên có khả năng hiện thực hóa đƣợc nếu ta có bộ rắc rối hóa O. Ta
bỏ vào trong P một đoạn mã C(G) nào đó để nhận dạng khách hàng G. (C(G) không
làm gì cả, chỉ dùng để nhận dạng G.) Sau đó ta đƣa cho khách hàng chƣơng trình O(P).
Chƣơng trình O(P) giống hệt P+C(G), nhƣng đã bị rắc rối đến mức khách hàng không
thể hiểu đƣợc logic của nó, và vì thế không thể bỏ C(G) ra khỏi nó đƣợc. Dĩ nhiên còn
nhiều chi tiết kỹ thuật và lý thuyết cần dùng cho việc này, nhƣng về mặt trực quan thì
có khả năng điều này có thể hiện thực hóa đƣợc nếu ta có O.
Năm 2001, Barak và đồng nghiệp đã đƣa ra một định nghĩa về mặt toán học cho
một bộ rắc rối hóa chƣơng trình [19].
Bảo vệ bản quyền phần mềm và quan trọng hơn, là bảo vệ ý tƣởng thuật toán cài
đặt trong phần mềm bằng bộ rắc rối hóa chƣơng trình là một ý tƣởng rất hay. Tuy
nhiên, những nghiên cứu lý thuyết về lĩnh vực này chƣa nhiều, đặc biệt là về các hàm
rắc rối hóa. Đây là một lĩnh vực nghiên cứu nhiều triển vọng.
87
CHƢƠNG IV: CHƢƠNG TRÌNH THỬ NGHIỆM.
Chƣơng này trình bày thử nghiệm với các thuật toán thủy vân số trên ảnh, là lĩnh
vực nghiên cứu thủy vân đã có nhiều thành tựu nhất từ trƣớc tới nay.
4.1. THỦY VÂN HIỆN.
Hiện nay có nhiều phần mềm đƣợc cung cấp trên Internet, dùng để chèn thủy vân
hiện vào ảnh. Tuy chức năng cụ thể khác nhau, nhƣng hầu hết các phần mềm đều cho
phép chèn một đoạn chữ hoặc một logo vào trong ảnh với các tùy chọn cần thiết.
Xin trình bày một số phần mềm tiêu biểu có chức năng nhúng thủy vân hiện vào
ảnh số.
4.1.1. Microsoft Word 2007.
Trong phiên bản gần đây nhất của phần mềm văn phòng phổ biến Microsoft
Word, hãng Microsoft đã cung cấp chức năng nhúng thủy vân vào tài liệu của ngƣời
dùng.
Word 2007 cho phép ngƣời dùng tùy chọn thủy vân mình sẽ nhúng là hình ảnh
hay chữ, với các định dạng khác nhau.
Để sử dụng chức năng này, trong cửa sổ của Microsoft Word 2007, chọn chức
năng Watermark tại tab Page Layout.
88
Hình 23. Chọn chức năng Watermark trong Word 2007
Word đã cung cấp sẵn một số mẫu (template) thủy vân, nếu cần tinh chỉnh nhiều
hơn, ấn chọn Custom watermark.
89
Hình 24. Cửa sổ Custom watermark.
Tại cửa sổ này, có thể chọn chèn thủy vân bằng hình, hoặc chèn một đoạn ký tự.
Sử dụng các tùy chọn mà Word cung cấp, ngƣời dùng có thể thay đổi kích cỡ hình
ảnh, hay font, cỡ hoặc màu chữ. Ngƣời dùng có thể quay chéo hoặc quay ngang thủy
vân để tiện việc sử dụng.
Hình 26. Ví dụ chèn thủy vân bằng Microsoft Word 2007.
90
4.1.2. Fast Watermark.
Fast Watermark là một phần mềm miễn phí, đƣợc cung cấp tại địa chỉ
Phiên bản mới nhất
hiện nay là 1.1.
Fast Watermark cho phép ngƣời dùng chèn thủy vân dạng chữ, cho phép tùy
chọn font chữ, cỡ chữ, màu chữ cũng nhƣ xoay các góc. Fast Watermark cũng hỗ trợ
chèn thủy vân vào hàng loạt ảnh liên tiếp.
Hình 27. Giao diện phần mềm Fast Watermark.
91
4.1.3. Watermark Master.
Watermark Master là một công cụ rất mạnh để nhúng thủy vân cho các file ảnh
hoặc video.
Phiên bản mới nhất hiện nay là 2.2.14, đƣợc bán với giá 75$ tại địa chỉ
Watermark Master cho phép ngƣời dùng chèn thủy vân
dạng chữ, dạng ảnh, chèn phụ đề cho phim, cũng nhƣ tạo các hiệu ứng cho các thủy
vân này.
Hình 28. Giao diện phần mềm Watermark Master
92
4.2. THỦY VÂN ẨN.
Trong khi thủy vân hiện tập trung vào cảnh báo kẻ tấn công về bản quyền của
ảnh, cũng nhƣ thông báo rõ nguồn gôc của ảnh cho dù ảnh có đƣợc sử dụng lại (ví dụ,
ngƣời sử dụng có thể copy ảnh từ trang web của tác giả và đƣa lên blog của mình, thì
thủy vân hiện trên ảnh vẫn sẽ chỉ rõ tác giả bức ảnh là ai), thì thủy vân ẩn tập trung
nhiều hơn vào việc xác định bản quyền khi xảy ra tranh chấp.
Nhƣ trên đã trình bày, các thuật toán thủy vân ẩn chủ yếu tập trung vào hai kỹ
thuật: biến đổi trên không gian ảnh và biến đổi trên tần số ảnh.
Các thuật toán biến đổi dựa trên miền không gian ảnh do kém bền với các phép
biến đổi và tấn công, nên thƣờng ít đƣợc sử dụng. Các thuật toán biến đổi trên miền
tần số ảnh thƣờng dựa vào hai kỹ thuật đã đƣợc trình bày là DCT và DWT.
Khóa luận xin trình bày một số thuật toán thủy vân trên ảnh sử dụng hai kỹ thuật
DCT và DWT, sử dụng mã nguồn mở của Peter Meerwald, đƣợc cung cấp tại địa chỉ
Các thuật toán thủy vân đƣợc sử dụng gồm có:
Một thuật toán trên miền không gian ảnh của O.Bruyndonckx.
Các thuật toán thủy vân sử dụng DCT gồm có thuật toán của Cox, Fridrich,
Koch.
Các thuật toán thủy vân sử dụng DWT gồm có thuật toán của Corvi, Dugad, Jong
Ryul Kim, Houng – Jyh Wang, Xiang – Gen Xia, Liehua Xie và Wenwu Zhu.
Chƣơng trình thử nghiệm với ảnh lena.pgm, là một file ảnh xám 1 byte, có kích
thƣớc 512x512.
4.2.1. Sử dụng chƣơng trình.
Chƣơng trình đƣợc viết bằng ngôn ngữ C, các file thực thi đƣợc cung cấp dƣới
dạng .exe và thực thi trong cửa sổ Command Promt của Windows.
Tham số -h sẽ hiển thị hƣớng dẫn sử dụng chƣơng trình.
Sử dụng thuật toán của Cox để nhúng thủy vân vào ảnh, ta thực hiện:
93
1/.Tạo thủy vân:
Trong cửa sổ Command Promt của Windows, gõ lệnh:
gen_cox_sig –o cox.sig
Trong đó gen_cox_sig là tên chƣơng trình tạo thủy vân, -o là tham số để chỉ ra
thủy vân đƣợc tạo ra sẽ lƣu trong file cox.sig. Chữ ký đƣợc tạo ra sẽ là một dãy số
đƣợc phân phối chuẩn trong đoạn [0, 1].
Muốn biết thêm các tham số của chƣơng trình gen_cox_sig ta gõ lệnh:
gen_cox_sig –h
Hình 27. Các tham số của câu lệnh gen_cox_sig
2/.Nhúng thủy vân:
Muốn nhúng thủy vân vừa tạo ra vào file ảnh lena.pgm, ta sử dụng lệnh sau:
wm_cox_e –s cox.sig –o cox_lena.pgm lena.pgm
File ảnh cox_lena.pgm sẽ là file ảnh đã đƣợc nhúng thủy vân theo thuật toán của
Cox.
3/.Tách thủy vân:
Tách thủy vân từ ảnh, ta sử dụng câu lệnh:
wm_cox_d –s cox.sig –i lena.pgm –o cox.wm cox_lena.pgm
Thủy vân đƣợc tách ra sẽ lƣu ở file cox.wm
4/.So sánh thủy vân:
94
Để so sánh thủy vân nhận đƣợc với thủy vân gốc, ta sử dụng câu lệnh:
cmp_cox_sig –s cox.sig cox.wm
Câu lệnh sẽ trả về một giá trị, là một số nằm trong đoạn [0, 1]. Nếu giá trị này
càng lớn thì càng có cơ sở đánh giá là ảnh có nhúng thủy vân.
Các thuật toán khác cũng có cách sử dụng tƣơng tự.
95
4.2.2. Một số kết quả thử nghiệm.
Ảnh gốc:
Hình 28. Ảnh lena
96
Hình 29. Ảnh sau khi được nhúng thủy vân bằng thuật toán Cox với tham số tạo
thủy vân mặc định.
97
Hình 30. So sánh ảnh trước và sau khi nhúng thủy vân
Trong 4 ảnh trên, chỉ có một ảnh đã đƣợc nhúng thủy vân.
98
Hình 31. Ảnh sau khi được nhúng thủy vân bằng thuật toán của Corvi với tham
số tạo thủy vân mặc định
Nhƣ vậy, các phép thủy vân trên miền tần số cho kết quả tƣơng đối khả quan đối
với mắt ngƣời, và khó có thể đƣợc nhận biết nếu chỉ dựa vào mắt nguời quan sát.
99
4.2.3. Thử nghiệm các phép tấn công.
Phần tiếp theo xin trình bày thử nghiệm một số phƣơng pháp tấn công nhằm xóa
bỏ thủy vân trên ảnh số, đƣợc thực hiện chủ yếu với thuật toán thủy vân số của Cox:
4.2.1.1. Phép co hình.
Để thử nghiệm phép co hình, hình ảnh sau khi nhúng thủy vân đƣợc co lại, chiều
ngang và chiều dọc chỉ còn ½ so với ban đầu.
Ở phía nhận, để khôi khục thủy vân, hình ảnh sẽ đƣợc dãn trở về kích thƣớc ban
đầu, và tiến hành khôi phục lại thủy vân.
Hình 32. Ảnh sau khi đã được nhúng thủy vân và thay đổi kích thước.
100
Hình 33. Ảnh sau khi phục hồi lại kích thước gốc.
Kết quả: thuật toán vẫn nhận đƣợc thủy vân với độ tƣơng quan rất cao (> 0.99).
101
4.2.1.2. Nén ảnh JPEG.
Thử nghiệm bằng phƣơng pháp nén ảnh theo chuẩn JPEG, rồi cho nhận dạng lại
thủy vân trên ảnh, lần lƣợt với chất lƣợng của ảnh JPEG là khác nhau.
Hình 34. Ảnh sau khi nén JPEG với chất lượng 10%.
Thử nghiệm cho thấy, cho tới khi nén ảnh JPG với chất lƣợn ảnh là 15% trở lên
thì thuật toán vẫn nhận thủy vân rất tốt, nhƣng với chất lƣợng ảnh nén thấp hơn thì khả
năng nhận thủy vân bị giảm đi rất nhanh chóng.
4.2.1.3. Phép xoay ảnh.
Thử nghiệm với phép xoay ảnh lần lƣợt các góc 90o, 180o và 360o, cho thấy chất
lƣợng thủy vân nhận đƣợc rất thấp, tức là các thuật toán thủy vân không bền với các
phép xoay ảnh.
102
4.2.1.4. Phép cắt ảnh.
Hình 35. Ảnh nhúng thủy vân và bị cắt.
Phép cắt ảnh thực hiện thử nghiệm cắt ¼ ảnh. Để phục hồi lại kích thƣớc gốc của
ảnh thủy vân, những phần ảnh đã bị cắt bớt sẽ đƣợc thay thế bằng phần ảnh gốc.
Kết quả cho thấy thủy vân vẫn đƣợc phát hiện ra với phép cắt ảnh.
103
4.2.1.5. Thực hiện thủy vân lên một ảnh đã được thủy vân.
Thực hiện thủy vân lên một ảnh đã đƣợc thủy vân là một trong những phép tấn
công phổ biến nhằm xóa bỏ thủy vân.
Hình 36. Ảnh sau khi được nhúng thêm thủy vân 2 lần liên tiếp.
Kết quả thực nghiệm cho thấy, sau càng nhiều lần nhúng thủy vân thì khả năng
nhận thủy vân của ảnh sẽ càng kém. Nhƣ vậy, nếu thực hiện nhúng thủy vân với số lần
đủ lớn thì sẽ có khả năng xóa bỏ thủy vân khỏi ảnh.
Kết luận
Thuật toán thủy vân của Cox trên mức ảnh xám tỏ ra không thật sự bền vững với
các phép tấn công. Dù sao, đây cũng chỉ là chƣơng trình thử nghiệm với các phép tấn
công cơ bản, nên kết quả chỉ mang tính tham khảo.
104
KẾT LUẬN
Nội dung khóa luận đã trình bày về vấn đề sử dụng thủy vân số để bảo vệ bản
quyền các tài liệu điện tử.
Lĩnh vực bảo vệ bản quyền là một lĩnh vực rất rộng lớn, bao gồm nhiều mặt,
nhiều lĩnh vực của đời sống. Bảo vệ bản quyền phải có sự góp sức của khung hành
lang pháp lý, ý thức của cộng đồng sử dụng cũng nhƣ của chính tác giả, và cuối cùng
là các kỹ thuật bảo vệ bản quyền tài liệu.
Kết quả chính của khóa luận là:
1/.Trình bày về một số khía cạnh trong lĩnh vực nghiên cứu sử dụng thủy vân số
để bảo vệ bản quyền các dạng tài liệu điện tử là ảnh số, audio, video và phần mềm.
Trong lĩnh vực ảnh số, khóa luận đã trình bày một số thuật toán thủy vân mới
hiện nay chia làm hai phần chính là thủy vân trên miền không gian và thủy vân trên
miền tần số.
Trong lĩnh vực audio, khóa luận đã trình bày tổng quan về thủy vân trên audio,
phân loại một số kỹ thuật đƣợc sử dụng, và trình bày một thuật toán sử dụng kỹ thuật
trải phổ của viễn thông.
Đặc biệt trong lĩnh vực bảo vệ bản quyền phần mềm bằng thủy vân số, khóa luận
đã trình bày về sử dụng bộ rắc rối hóa chuơng trình để bảo vệ bản quyền phần mềm, là
một huớng nghiên cứu mới và độc đáo hiện nay.
2/.Thử nghiệm chƣơng trình: khóa luận đã trình bày những kết quả thử nghiệm
thủy vân hiện và thủy vân ẩn trên ảnh số.
Huớng nghiên cứu tiếp theo sẽ là phát triển các thuật toán thủy vân số trên ảnh
bền với các phép tấn công. Ngoài ra là nghiên cứu thủy vân số trên video tận dụng
đuợc đặc trƣng của các file video.
105
PHỤ LỤC
Vi phạm bản quyền tác giả có thể bị phạt tới 500 triệu đồng.
Nghị định số 47/2009/NĐ-CP ngày 13/5/2009 quy định xử phạt vi phạm hành
chính (VPHC) về quyền tác giả, quyền liên quan với mức phạt tiền cao nhất là 500
triệu đồng sẽ có hiệu lực thi hành từ ngày 30/6/2009.
Mức phạt cao nhất tới 500 triệu đồng:
Nghị định quy định chi tiết từng hành vi vi phạm, hình thức và mức phạt. Bao
gồm: Vi phạm quy định về đăng ký; vi phạm về hoạt động của tổ chức đại diện tập
thể; vi phạm quy định trong hoạt động giám định về quyền tác giả, quyền liên quan; vi
phạm quy định về tổ chức tƣ vấn, dịch vụ; cản trở bất hợp pháp hoạt động quản lý nhà
nƣớc, thanh tra, kiểm tra về quyền tác giả, quyền liên quan...
Đặc biệt, mức phạt nặng nhất 500 triệu đồng áp dụng đối với các hành vi vi phạm
nhƣ: Sao chép tác phẩm, sao chép trực tiếp hoặc gián tiếp cuộc biểu diễn, sao chép bản
định hình chƣơng trình phát sóng mà không đƣợc phép của chủ sở hữu quyền (trong
trƣờng hợp hàng hóa vi phạm có giá trị trên 500 triệu đồng); chiếm đoạt quyền biểu
diễn tác phẩm trƣớc công chúng, quyền sao chép tác phẩm, quyền phân phối, nhập
khẩu bản gốc hoặc bản sao tác phẩm, quyền cho thuê bản gốc hoặc bản sao tác phẩm
điện ảnh, chƣơng trình máy tính, quyền phát sóng, tái phát sóng chƣơng trình phát
sóng...
Theo quy định cũ tại Nghị định 56/2006/NĐ-CP, mức phạt tối đa đối với các
hành vi VPHC về quyền tác giả, quyền liên quan là 70 triệu đồng.
Bên cạnh đó, một điểm mới của Nghị định là ngoài các hình thức xử phạt chính
và bổ sung, tổ chức, cá nhân vi phạm còn có thể bị buộc áp dụng một hoặc nhiều biện
pháp khắc phục hậu quả nhƣ: Buộc khôi phục lại quyền đứng tên, đặt tên, bảo vệ sự
toàn vẹn của tác phẩm; buộc tiêu hủy hàng hóa vi phạm; buộc dỡ bỏ bản gốc, bản sao
tác phẩm, cuộc biểu diễn, bản ghi âm, ghi hình, chƣơng trình phát sóng đã truyền đạt
trái phép trên mạng kỹ thuật số hay dƣới hình thức điện tử.
Thẩm quyền xử phạt:
Theo Nghị định, thanh tra viên chuyên ngành thuộc Bộ hoặc Sở Văn hóa, Thể
thao và Du lịch (VHTTDL) đang thi hành công vụ có quyền phạt đến 0,5 triệu đồng;
Chánh Thanh tra Sở VHTTDL có quyền phạt đến 30 triệu đồng và Chánh Thanh tra
Bộ VHTTDL có quyền phạt đến mức tối đa của khung hình phạt.
106
Chủ tịch UBND cấp xã có quyền phạt đến 2 triệu đồng, cấp huyện có quyền phạt
đến 30 triệu đồng và cấp tỉnh có quyền phạt đến mức tối đa của khung hình phạt.
Ngoài ra, các lực lƣợng Hải quan, Quản lý thị trƣờng, Công an nhân dân, Bộ đội
Biên phòng, Cảnh sát biển cũng có thẩm quyền xử phạt một số hành vi vi phạm.
Bên cạnh các văn bản luật, dƣới luật điều chỉnh các quan hệ liên quan đến quyền
tác giả và quyền liên quan nhƣ Bộ luật Dân sự, Luật Sở hữu trí tuệ, Luật Xuất bản...,
cùng với quá trình mở cửa và hội nhập, Việt Nam đã tham gia một số điều ƣớc liên
quan đến bảo hộ quyền tác giả nhƣ: Công ƣớc Berne về bảo hộ các tác phẩm văn học,
nghệ thuật; Hiệp định TRIPs về những khía cạnh liên quan tới quyền sở hữu trí tuệ;
Hiệp ƣớc WIPO về quyền tác giả và về biểu diễn, ghi âm... Đồng thời, Việt Nam cũng
đã ký một số hiệp định song phƣơng với một số quốc gia về bản quyền và các vấn đề
liên quan tới quyền tác giả nhƣ: Hiệp định Việt Nam - Hoa Kỳ về thiết lập quan hệ
quyền tác giả; Hiệp định Việt Nam - Thụy Sĩ về bảo hộ sở hữu trí tuệ và hợp tác trong
lĩnh vực sở hữu trí tuệ.
(Theo chinhphu.vn)
107
TÀI LIỆU THAM KHẢO
Tiếng Việt:
[1] Đỗ Ngọc Anh, “Nén ảnh sử dụng biến đổi wavelet và ứng dụng trong các
dịch vụ dữ liệu đa phƣơng tiện di động”, luận văn thạc sỹ, Đại học Bách
khoa Hà Nội, 2006.
[2] Lƣơng Mạnh Bá, Nguyễn Thanh Thủy, “Nhập môn xử lý ảnh số”, NXB
Khoa học kỹ thuật, 2003.
[3] Lê Hoài Bắc, Nguyễn Ngọc Hà, Lƣu Khoa, Lê Thị Hoàng Ngân,
“Watermarking trên âm thanh số bằng kỹ thuật trải phổ kết hợp mô hình
hệ thính giác”, Tạp chí Bƣu chính viễn thông, 2005.
[4] TS Nguyễn Thanh Bình, ThS Võ Nguyên Quốc Bảo, “Xử lý âm thanh
hình ảnh”, Học viện Công nghệ bƣu chính viễn thông, 2007.
[5] GS Phan Đình Diệu, “Lý thuyết mật mã và an toàn thông tin”, NXB Đại
học Quốc gia Hà Nội, 2002.
[6] Dƣơng Anh Đức, Nguyễn Thanh Sơn, Trần Minh Triết, “Bảo mật dữ liệu
với kỹ thuật AES – DCT watermarking”, Tạp chí phát triển khoa học công
nghệ, 2004.
[7] Lê Trung Hiếu, “Xây dựng chƣơng trình bảo vệ quyền sở hữu các sản
phẩm đa phƣơng tiện bằng cơ chế digital watermarking”, Hội thảo hợp tác
phát triển Công nghệ thông tin truyền thông Việt Nam lần thứ 8, 2004.
[8] Nguyễn Xuân Huy, Trần Quốc Dũng, “Một thuật toán thủy vân ảnh trên
miền DCT”, Tạp chí Bƣu chính viễn thông, 2002.
[9] Nguyễn Thiện Luận, Tạ Minh Thanh, Trần Hồng Quang, “Phƣơng pháp
mã hóa không hoàn toàn kết hợp thủy ấn trong bảo vệ sản phẩm kỹ thuật
số”, Tạp chí Bƣu chính viễn thông, 2005.
[10] TS. Hồ Văn Sung, “Xử lý số tín hiệu”, NXB Giáo dục, 2002.
[11] TS Nguyễn Đại Thọ, “Bài giảng an toàn mạng”, Trƣờng Đại học Công
nghệ, Đại học Quốc gia Hà Nội, 2008.
108
[12] Lê Tiến Thƣờng, Nguyễn Thanh Tuấn, “Giải pháp hiệu quả dùng kỹ
thuật watermarking cho ứng dụng bảo vệ bản quyền ảnh số”, Tạp chí Bƣu
chính viễn thông, 2004.
[13] PGS.TS Trịnh Nhật Tiến, “Giáo trình an toàn dữ liệu”, 2008.
[14] Trần Minh Triết, Dƣơng Anh Đức, Hồ Ngọc Lâm, Thân Võ Chí Nhân,
“Tổng quan về watermarking trên audio”, Hội thảo quốc gia về Công nghệ
thông tin và truyền thông, 2003.
[15] Võ Văn Tùng, “Nghiên cứu một số phƣơng pháp che giấu thông tin để bí
mật an toàn trong thông tin liên lạc”, luận văn thạc sỹ Trƣờng ĐH Công
nghệ, ĐHQGHN, 2004.
Tiếng Anh:
[16] M.Arnold, M.Schmucker, S.D.Wolthusen, “Techniques and applications
of digital watermarking and content protection”, Artech House, 2003.
[17] B. Barak, O. Goldreich, R. Impagliazzo, S. Rudich, A. Sahay,
S. Vadhan, K. Yang, “On the (Im)possibility of Obfuscating Programs”, In
Crypto '01, LNCS No. 2139, 2001, pp. 1-18.
[18] Bender, W., et al., “Techniques for data hiding”, IBM System Journal,
vol 35,1996, pp. 313 – 336.
[19] Burgett, S., E. Koch, J. Zhao, “Copyright Labeling of Digitized Image
Data” IEEE Communications Magazine, Vol. 36, No. 3, 1998, pp. 94–100.
[20] C.S.Collberg, C.Thomborson, “Software watermarking: Models and
Dynamic Embeddings”, Proceedings of ACM SIGPLAN-SIGACT
Symposium on Principles of Programming Languages, 1999.
[21] M. Costa, “Writing on dirty paper”, IEEE Trans. Inform. Theory, 1983,
pp. 439 – 441.
[22] I.J.Cox, J.Kilian, T.Leighton, T.Shamoon, “Secure Spread Spectrum
watermarking for multimedia”, IEEE Transactions on Image Processing,
Vol. 6, No. 12, 1997, pp. 1673–1687.
[23] I. J. Cox, M. L. Miller, A. McKellips. Watermarking as communications
with side information. Proc. IEEE, 87(7), 1999, pp. 1127–114.
109
[24] I. J. Cox, M. L. Miller, "The First 50 Years of Electronic
Watermarking", EURASIP J. of Applied Signal Processing, 2002, pp. 126-
132.
[25] I.J.Cox, M.L.Miller, J.A.Bloom, J.Fridrich, T.Kalker, “Digital
watermarking and stenography”, 2nd edition, Morgan Kaufmann, 2008.
[26] T.Kalker, G.Depovere, J.Haitsma, M.Maes, “A video watermarking
system for broadcast monitoring”, SPIE 3657, Security and Watermarking
of Multimedia Content, 1999, pp. 103-112.
[27] Meerwald, P., and A. Uhl, “A Survey of Wavelet-Domain Watermarking
Algorithms,” in P. W. Wong and E. J. Delp, (eds.), Proceedings of
Electronic Imaging 2001, Security and Watermarking of Multimedia
Contents III, San Jose, CA, 2001, pp. 505–516.
[28] Van Doan Nguyen, Tran Khanh Dang, Thanh Son Nguyen, “A new
approach to digital watermarking for Vietnamese documents”, Special
Issue of Science & Technology Journal, Vietnam National University-Ho
Chi Minh City, ISSN 1859-0128, Vol. 10, No. 13, 2007, pp. 31-41.
[29] J.Seitz, “Digital watermarking for digital media”, Idea Group, 2005.
[30] R.B.Wolfgang, E.J.Delp, “A watermark for digital image”, proceedings
of International Conference on image processing, 1996.
[31] Shuozhong Wang, “Watermarking Based on Principal Component
Analysis”, J. Shanghai U., 4(1), 2000.
Website:
[32]
[33]
[34]
Các file đính kèm theo tài liệu này:
- Luận văn- Nghiên cứu ứng dụng thủy ký bảo vệ bản quyền tài liệu số.pdf