- Với F1, ta có: 0 < SUM(F1 K) = 3 < SUM(K) = 5
nên thuật tốn sẽ giấu bít b1 =0 vào F1 bằng cách biến đổi F1 thành G1 sao cho SUM(G1 K) mod 2 = b1. Trong trƣờng hợp này, SUM(F1 K) thoả trƣờng hợp 4 tại Bƣớc 3 trong thuật toán, do vậy chúng ta sẽ đảo giá trị tại phần tử (i,j) của F1 ứng với Ki,j = 1. Giải sử ta chọn phần tử (1,2) kết quả sẽ thu đƣợc nhƣ G1
- Với F2, ta có SUM(F2 K) = 0 nên khối F2 sẽ không đƣợc dùng để giấu dữ liệu do vậy G2 = F2.
- Với F3, do F3 thoả mãn điều kiện 0< SUM(F3 K) = 3 < SUM(K) = 5, nên thuật toán sẽ thực hiện giấu b2 vào F3. Trong trƣờng hợp này, ta thấy SUM(F3 K) mod 2 = 1 = b2 nên không cần biến đổi F3 và G3 bằng F3.
- Với F4, 0 < SUM(F4 K) = 4 < SUM(K) = 5 nên thuật toán sẽ thực hiện giấu bit b3 = 1 vào khối F4 bằng cách biến đổi F4 thành G4 thoả mãn tính chất (2.2) và (2.3). Do SUM(F4 K) = SUM(K) - 1 nên chúng ta chọn ngẫu nhiên phần tử (i,j) mà F4(i,j) = 1 mà Ki,j = 1 và thay đổi F4(i,j) = 0. Giả sử ta chọn phần tử (3,3) kết quả sẽ thu đƣợc nhƣ G4.
Một số nhận xét về thuật tốn Wu-Lee
+ Thứ nhất: ảnh mơi trƣờng để thực hiện giấu thông tin cũng phải đƣợc chọn kỹ càng. Nếu một ảnh có q nhiều điểm trắng (hoặc đen) thì tỉ lệ bit giấu đƣợc sẽ rất thấp.
+ Thứ hai: Vì trong mỗi ma trận điểm ảnh F thuật toán chỉ biến đổi tối đa là một phần tử (từ 1 thành 0 hoặc từ 0 thành 1), do vậy nếu chọn m, n đủ lớn thì sự thay đổi này khó có thể nhận biết bằng mắt thƣờng nhƣng khả năng giấu của thuật toán lại giảm đáng kể.
+ Thứ ba: Khi cần biến đổi ma trận F, thuật tốn ln thay đổi ngẫu nhiên một phần tử Fi,j ứng với Ki,j =1. Do vậy, trong một số trƣờng hợp ảnh sau khi đƣợc giấu tin sẽ xuất hiện những điểm khác biệt so với ảnh gốc và dễ dàng phân biệt đƣợc bằng mắt thƣờng. Do đó, để tăng tính che giấu cho thuật toán chúng ta nên chọn phần tử (i,j) có định hƣớng theo một tiêu chí nào đó.
2.2.2 Giấu tin trong ảnh màu
Có nhiều lựa chọn phƣơng pháp giấu tin trong ảnh mầu hơn ảnh đen trắng. Tin giấu trong ảnh mầu khó bị phát hiện hơn trong ảnh đen trắng. Ảnh mầu đối với máy tính chỉ là một mảng các số thể hiện cƣờng độ sáng tại mỗi điểm ảnh (pixels). Các điểm ảnh tạo nên ảnh mành. Một ảnh 640 x 480 pixels, sử dụng 256 mầu (8 bits cho một điểm) là ảnh phổ biến. Một ảnh nhƣ vậy có thể chứa chừng 300 kilobits dữ liệu.
Yêu cầu kỹ thuật đối với giấu tin trong ảnh màu:
+ Chất lƣợng ảnh phủ vẫn đảm bảo, dữ liệu nhúng phải không thấy đƣợc bằng mắt thƣờng
+ Dữ liệu nhúng cần phải đƣợc mã hoá trực tiếp vào dữ liệu ảnh chứ không vào phần khác, nhƣ vậy mới giữ đƣợc cho nhiều dạng tệp khác nhau
+ Dữ liệu nhúng phải bền vững với các sửa đổi và tấn cơng từ bên ngồi. Các tác động, ví dụ nhiễu trên đƣờng truyền, lọc, lấy mẫu, cắt xén, mã hoá, nén mất dữ liệu, in, quét, biến đổi số sang tƣơng tự và ngƣợc lại phải tác động đến dữ liệu ít nhất
+ Khuyến khích mã hoá sửa lỗi để đảm bảo toàn vẹn dữ liệu. Vì điều khó tránh khỏi là dữ liệu nhúng cũng sẽ bị mất nếu biến đổi ảnh mang
+ Khuyến khích các phƣơng pháp giấu cho phép phục hồi tin không cần đến ảnh gốc.
Các phương pháp giấu tin trong ảnh màu:
Có thể chia các phƣơng pháp giấu tin trong ảnh hiện nay thành ba nhóm sau: - Nhúng vào các bít có trọng số thấp (LSB)
- Các phƣơng pháp dựa vào kỹ thuật biến đổi ảnh, ví dụ biến đổi từ miền không gian sang miền tần số
- Các phƣơng pháp sử dụng mặt nạ giác quan
Nhóm phƣơng pháp nhúng thơng tin vào các bít có trọng số thấp của ảnh hay đƣợc áp dụng trên các ảnh bitmap không nén và các ảnh dùng bảng mầu (nhƣ GIF, TIF). Ý tƣởng chính của phƣơng pháp này là lấy từng bít của mẩu tin mật rồi rải nó lên ảnh mang, gài vào các bít có trọng số thấp của điểm bị rải trúng.
Nhóm phƣơng pháp dựa trên các phép biến đổi ảnh lợi dụng việc biến đổi ảnh từ miền biểu diễn này sang miền biểu diễn khác để giấu các bít tin. Một ví dụ của hệ thống sử dụng phƣơng pháp này là "Jpeg-Jsteg", phần mềm này nhúng thông tin bằng cách điều chế các hệ số của phép biến đổi Cosin rời rạc theo các bít tin cần giấu và sự làm trịn lỗi khi lƣợng hố. Một số các phƣơng pháp khác thuộc nhóm này sử dụng ảnh nhƣ mơ hình vật lý với các dải phổ thể hiện mức năng lƣợng. Khi đó giấu tin giống nhƣ việc điều chế một tín hiệu dải hẹp vào một dải tần rộng (ảnh phủ).
Nhóm phƣơng pháp dùng mặt nạ giác quan dựa trên nguyên lý đánh lừa hệ thống giác quan của con ngƣời, một số điểm yếu của hệ thống giác quan là:
- Hiệu ứng mặt nạ của các cạnh
- Sự nhạy cảm đối với độ tƣơng phản là một hàm của miền tần số
- Khả năng nhạy cảm kém đối với các thay đổi nhỏ trong độ chói trên các - Mảng ảnh có cấu tạo ngẫu nhiên
- Sự nhạy cảm kém đối với các tần số miền khơng gian thấp, ví dụ sự thay đổi liên tục của độ sáng trên ảnh.
"Mặt nạ" ở đây ám chỉ hiện tƣợng mắt ngƣời khơng cảm nhận đƣợc một tín hiệu nếu nó ở bên cạnh một tính hiệu nhất định nào đó.
Nếu phân chia các phương pháp theo định dạng ảnh thì có hai nhóm chính:
- Nhóm phƣơng pháp phụ thuộc định dạng ảnh: đặc điểm của nhóm này là thơng tin giấu dễ bị "tổn thƣơng" bởi các phép biến đổi ảnh. Trong nhóm này lại chia ra theo dạng ảnh, có các phƣơng pháp cho
+ Ảnh dựa vào bảng mầu + Ảnh JPEG
- Các phƣơng pháp độc lập với định dạng ảnh: đặc trƣng của các phƣơng pháp nhóm này là lợi dụng vào việc biến đổi ảnh để giấu tin vào trong đó, ví dụ giấu vào các hệ số biến đổi. Nhƣ vậy có bao nhiêu phép biến đổi ảnh thì cũng có thể có bấy nhiêu phƣơng pháp giấu ảnh. Các phép biến đổi nhƣ:
+ Phƣơng pháp biến đổi theo miền không gian (spacial domain) + Phƣơng pháp biến đổi theo miền tần số (DCT, DFT, Wavelet) + Các biến đổi hình học
Dĩ nhiên các phƣơng pháp nhóm thứ hai có nhiều ƣu điểm hơn về tính bền vững, tuy nhiên lƣợng thơng tin giấu đƣợc sẽ ít hơn và cài đặt cũng sẽ phức tạp hơn.
Nếu phân các phương pháp theo đặc điểm kỹ thuật có:
- Phƣơng pháp thay thế
+ Thay thế các bit dữ liệu trong bản đồ bit (bit plane) + Thay thế bảng mầu (palette)
- Phƣơng pháp xử lý tín hiệu
+ Các phƣơng pháp biến đổi ảnh (Transform) + Các kỹ thuật điều chế dải phổ
- Các phƣơng pháp mã hoá (coding) + Lƣợng hoá, dithering
+ Mã hoá sửa lỗi
- Các phƣơng pháp thống kê - kiểm thử giả thuyết - Phƣơng pháp sinh mặt nạ - Fractal
Vì là lĩnh vực mới phát triển nhƣng lại có ứng dụng phong phú nên sẽ cịn có nhiều phƣơng pháp giấu tin trong ảnh đã đƣợc nghiên cứu.
Có thể liệt kê một số kỹ thuật giấu tin trong ảnh nhƣ: - Giấu tin vào các bit có trọng số thấp
- Giấu tin dựa trên bảng màu - Kỹ thuật trải phổ
- Kỹ thuật mã khối bề mặt, kỹ thuật mảnh chắp (patchwork) - Kỹ thuật dùng hệ số của phép chiếu trực giao
- Kỹ thuật dùng hệ số DCT (Jpeg) - Kỹ thuật lƣợng hoá lỗi
- Kỹ thuật mặt nạ và lọc - Kỹ thuật rải vào miền tần số
- Kỹ thuật dựa trên biến đổi Mellin-Fourier
- Kỹ thuật giấu vào các đối tƣợng dùng các hệ số của phép biến đổi hình học. Nếu một lúc nào đó trong tốn học ngƣời ta có thể nghĩ ra cách giải các bài tốn khó hoặc tìm ra một hàm cửa lật chẳng hạn thì có thể đó sẽ là cơ sở cho một hệ mật mã mới. Trong khi một phƣơng pháp nén ảnh mới, ví dụ Fractal hay biến đổi Wavelet có thể là xuất phát điểm cho nhiều hƣớng nghiên cứu giấu tin mới. Các hƣớng nghiên cứu phát triển trong lĩnh vực giấu tin trong ảnh chịu ảnh hƣởng của một số lĩnh vực khác, trong số đó có:
Nghiên cứu hệ thống thị giác con ngƣời và sự cảm nhận mầu sắc - Các phƣơng pháp xử lý ảnh
- Các cách nén ảnh - Các phép biến đổi ảnh
Tập trung nghiên cứu khai thác các "kẽ hở" của các lĩnh vực trên là định hƣớng chính của cơng tác nghiên cứu giấu tin trong ảnh.
2.3 Giấu tin trong ảnh dựa trên miền tần số
2.3.1 Biến đổi DCT thuận và nghịch
Vì ảnh gốc có kích thƣớc rất lớn nên trƣớc khi biến đổi DCT, ảnh đƣợc phân chia thành các khối, mỗi khối này thƣờng có kích thƣớc 8 x 8 pixel và biểu diễn các mức xám của 64 điểm ảnh, các mức xám này là các số nguyên dƣơng có giá trị từ 0 đến 255. Việc phân khối này sẽ làm giảm đƣợc một phần thời gian tính tốn các hệ số chung, mặt khác biến đổi cosin đối với các khối nhỏ sẽ làm tăng độ chính xác khi tính tốn với dấu phẩy tĩnh, giảm thiểu sai số do làm tròn sinh ra.
Biến đổi DCT là một cơng đoạn chính trong các phƣơng pháp nén sử dụng biến đổi. Hai công thức ở đây minh hoạ cho 2 phép biến đổi DCT thuận nghịch đối với mỗi khối ảnh có kích thƣớc 8 x 8. [11]
Giá trị x(n1, n2) biểu diễn các mức xám của ảnh trong miền không gian, X(k1, k2) là các hệ số sau biến đổi DCT trong miền tần số.
16 π 1)k (2n cos 16 π 1)k (2n cos ) n , x(n 4 ε ε ) k , X(k 1 1 2 2 7 0 n 7 0 n 2 1 k2 k1 2 1 1 2 16 π 1)k (2n cos 16 π 1)k (2n cos ) k , X(k 4 ε ε ) n , x(n 1 1 2 2 7 0 k 7 0 k 2 1 k2 k1 2 1 1 2 Với 8 k 1 Khi 0 0 k Khi 2 1 ε 1 1 k1 và 8 k 1 Khi 0 0 k Khi 2 1 ε 2 2 k2
2.3.2 Đặc điểm của phép biến đổi DCT trên ảnh hai chiều
- Thể hiện đặc tính nội dung về tần số của thơng tin ảnh. Hệ số góc trên là lớn và đặc trƣng cho giá trị trung bình thành phần một chiều gọi là hệ số DC, các hệ số khác có giá trị nhỏ hơn biểu diễn cho các thành phần tần số cao theo hƣớng ngang và dọc gọi là hệ số AC.
- Bản thân biến đổi DCT khơng nén đƣợc dữ liệu vì sinh ra 64 hệ số.
- Theo nguyên lý chung, khi biến đổi chi tiết giữa các điểm ảnh càng lớn theo một hƣớng nào đó trong khối các điểm ảnh, hƣớng ngang hoặc dọc hoặc theo đƣờng chéo thì tƣơng ứng theo hƣớng đó, các hệ số biến đổi DCT cũng lớn.
+ DCT làm giảm độ tƣơng quan không gian của thông tin trong khối ảnh. Điều đó cho phép biểu diễn thích hợp ở miền DCT do các hệ số DCT có xu hƣớng có phần dƣ thừa ít hơn. Hơn nữa, các hệ số DCT chứa thông tin về nội dung tần số không gian của thông tin trong khối. Nhờ các đặc tính tần số khơng gian của hệ thống nhìn của mắt ngƣời, các hệ số DCT có thể đƣợc mã hóa phù hợp, chỉ các hệ số DCT quan trọng nhất mới đƣợc mã hóa để chuyển đổi.
+ Khối hệ số DCT có thể chia làm 3 miền: miền tần số thấp, miền tần số cao và miền tần số giữa. Miền tần số thấp chứa các thông tin quan trọng ảnh hƣởng đến tri giác. Miền tần số cao thƣờng khơng mang tính tri giác cao, khi nén JPEG thƣờng loại bỏ thông tin trong miền này.
+ Trong các thuật toán thủy vân, miền hệ số DCT tần số cao thƣờng khơng đƣợc sử dụng do nó thƣờng khơng bền vững với các phép xử lý ảnh, hoặc nén ảnh JPEG. Miền tần số thấp cũng khó đƣợc sử dụng do một sự thay đổi dù nhỏ trong miền này cũng dẫn đến chất lƣợng tri giác của ảnh. Vì vậy, miền tần số ở giữa thƣờng hay đƣợc sử dụng nhất và cũng cho kết quả tốt nhất.
2.3.3 Một số giải thuật giấu tin trong ảnh JPEG
Giải thuật giấu thơng tin bí mật là kỹ thuật giấu thơng điệp trong đối tƣợng khác sao cho sự tồn tại thông tin mật trong vật mang không bị kẻ tấn công phát hiện ra.
- Tấn công trực quan: đƣợc hiểu là việc dựa vào thông tin cơ bản trong vật
mang mà giải thuật viết đè lên (việc lƣu thông tin vào làm mất các thông tin cơ bản của vật mang). Các kỹ thuật thích ứng (đƣa tỉ lệ nhúng trên dòng theo nội dung vật mang) hạn chế các tấn công trực quan, tuy nhiên chúng lại làm giảm dung lƣợng giấu thông tin. Các vật mang đƣợc nén mất mát thơng tin (nhƣ: JPEG, MP3, ..) vốn dĩ đã thích ứng và miễn dịch với tấn công trực quan.
- Chuyển đổi định dạng JPEG
Trƣớc tiên, ảnh BMP đƣợc chia thành các khối 8x8 pixels. Biến đổi cosin rời rạc (DCT) chuyển các khối sáng này thành hệ số tần số (số thực). Sau q trình
DCT, bƣớc tiếp theo là làm trịn hệ số tần số này thành các số nguyên trong khoảng -2048..2047 (bƣớc làm mất thông tin). Biểu đồ ở hình 2.8 chỉ ra sự phân bố rời rạc của sự xuất hiện các hệ số tần số. [18]
Hình 2.8 Mơ hình phân bố của các hệ số tần số của ảnh JPEG sau khi lượng tử hóa
- Nếu nhìn vào sự phân bố trong hình 2.8 chúng ta nhận thấy hai tính chất sau: + Sự xuất hiện các hệ số tần số giảm theo sự tăng của các giá trị tuyệt đối của hệ số đó.
+ Tốc độ giảm của sự xuất hiện hệ số tần số nghịch biến với giá trị tuyệt đối. - Sau q trình lƣợng tử hố làm mất thơng tin, mã Huffman bảo đảm mã dƣ thừa tuỳ ý của các hệ số đã đƣợc lƣợng tử hoá.
2.3.3.1 Giải thuật Jsteg
Giải thuật này đƣa ra bởi Derek Upham, Jsteg tránh đƣợc các tấn cơng trực quan, mặt khác nó cũng đƣa ra dung lƣợng có thể giấu đáng thuyết phục (khoảng 12.8%). Sau khi lƣợng tử hoá, Jsteg thay thế LSB của các hệ số tần số bởi các bit thông điệp. Cơ chế nhúng này sẽ bỏ qua tất cả các hệ số có giá trị 0 hoặc 1.
Tuy nhiên với phƣơng pháp thống kê có thể phát hiện sự tồn tại của Jsteg, bởi vì Jsteg thay thế các bit và vì vậy nó sẽ tạo ra sự phụ thuộc giữa các xuất hiện giá trị tần số, khác biệt này là ở các vị trí bit thay đổi. Jsteg tác động đến sự xuất hiện các
tần số của hệ số. Coi ci là biểu đồ của các hệ số JPEG. Giả sử với một ảnh đã thay đổi, các hệ số liền kề c2i và c2i+1 là giống nhau. Chúng ta có giá trị trung bình số học
* i
n =(c2i + c2i+1)/2
để so sánh sự phân bố lý thuyết với phân bố quan sát thấy đƣợc (phân bố thực tế)
ni = c2i
Sau đây là đoạn mã thực hiện chức năng nhúng thông tin của Jsteg
short use_inject = 1; /* set to 0 at end of message */ short inject(short inval) /* inval is a JPEG coefficient */ {
short inbit;
if ((inval & 1) != inval) /* don’t embed in 0 or 1 */ if (use_inject) { /* still message bits to embed? */ if ((inbit=bitgetbit()) != -1) { /* get next bit */ inval &=~1; /* overwrite the lsb ... */
inval |= inbit; /* ... with this bit */ } else
use_inject = 0; /* full message embedded */ }
return inval; /* return modified JPEG coefficient */ }
Sự khác nhau giữa sự phân bố ni và ni* nhƣ sau: