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ố

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

pdf120 trang | Chia sẻ: lylyngoc | Lượt xem: 3131 | Lượt tải: 2download
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:

  • pdfLuậ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