Đặc điểm của phép biến đổi DCT trên ảnh hai chiều

Một phần của tài liệu GIẤU TIN TRONG ẢNH DỰA TRÊN MA TRẬN TẦN SỐ (Trang 52)

- 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 quá 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.8Mô 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 quá trình lƣợng tử hoá 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+1là 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:   (adsbygoogle = window.adsbygoogle || []).push({});

   k i * i 1 * i 2 i 2 n n n x

Với k-1 bậc tuỳ ý, giá trị trên là con số của các loại khác nhau trong biểu đồ âm một (histogram minus one).

Hình 2.9 chỉ ra tấn công thống kê trên mô hình giấu thông tin Jsteg với 50% dung lƣợng. Biểu đồ này thể hiện xác suất nhúng nhƣ là một hàm mẫu tăng dần: Khởi đầu, mẫu bao gồm 1% các hệ số JPEG, sau đó là 2%, 3%,... xác suất là 1.00

đối với các mẫu từ 1%-54% và là 0.45 tại 56%; Với mẫu 59% hay hơn bao gồm đủ các hệ số không bị thay đổi dẫn đến giá trị p xuống mức 0.001[18]

              x2 0 1 2 1 k 2 t 2 1 k e t dt 2 1 k Γ 2 1 1 p (2.4)

2.3.3.2 Giải thuật F3

Giải thuật F3 khác Jsteg trên hai phƣơng diện:

- Thay vì viết đè các bit, nó giảm giá trị tuyệt đối của các hệ số trong trong trƣờng hợp bit LSB không trùng giá trị với bit nhúng- ngoại trừ hệ số có giá trị 0 (vì không thể giảm giá trị tuyệt đối. Do đó, ta không thể dùng các hệ số có giá trị 0 để nhúng thông tin). Các bit LSB của các hệ số khác 0 trùng với thông điệp mật sau khi nhúng, nhƣng chúng ta không thể viết đè các bit bởi vì với kiểm tra Chi-square dễ dàng phát hiện ra các thay đổi này. Vì vậy, chúng ta có thể hy vọng sẽ không xuất hiện các nấc thang trong phân bố. Trái với Jsteg, F3 sử dụng các hệ số có giá trị 1. Sự đối xứng giữa 1 và -1 có đƣợc nhƣ hình 2.8

Một số bit đƣợc nhúng dẫn đến sự suy giảm hệ số. Sự suy giảm đổ dồn ở tất cả các thời điểm F3 giảm giá trị tuyệt đối của 1 và -1 tạo ra giá trị 0. Ngƣời nhận không nhận ra hệ số này là hệ số giá trị 0 hay do suy giảm, có nghĩa là đồ thị sẽ bất thƣờng do giá trị 0 đƣợc tạo ra bởi sự suy giảm. Nó bỏ qua tất cả các hệ số giá trị 0. Vì vậy, ngƣời gửi có thể nhúng lặp các bit bị tác động do chú ý đến khi tạo ra giá trị 0.

Trong sự so sánh ở hình 2.8, biểu đồ chỉ ra một số dƣ tƣơng đối của các hệ số chẵn. Sự dƣ thừa này là kết quả của việc nhúng lặp sau khi suy giảm. Sự suy giảm chỉ xuất hiện khi chúng ta nhúng một bit 0. Sự lặp của các bit 0 này thay đổi tỉ lệ các giá trị giấu thông tin theo các giá trị 0 của quá trình giấu thông tin. Do đó, quy trình nhúng F3 tạo ra nhiều giá trị hệ số chẵn hơn hệ số lẻ. Sự thể hiện giấu thông tin của các hệ số có giá trị 1 và -1 là 1 (bởi vì LSB của chúng là 1). Với nguyên nhân này, chức năng nhúng không thay đổi các hệ số này khi nhúng vào bit 1.

Hình 2.10 Mô hình phân bố của các hệ số tần số sử dụng giải thuật F3

Hình 2.10 [18]chỉ ra sự xuất hiện tần số đối với các hệ số chẵn và lẻ, nó dễ dàng bị phát hiện bởi phƣơng pháp thống kê. Nếu chúng ta bỏ qua suy giảm thì một số lƣợng rất lớn các hệ số giá trị chẵn mất đi. Thật không may, trong trƣờng hợp này ngƣời nhận chỉ nhận đƣợc các mảnh của thông điệp (một phần của thông điệp). Ứng dụng mã sửa lỗi có thể xử lý đƣợc vấn đề này.

Nếu ta trích các thông điệp giả định từ các vật mang không đổi với F3, thông điệp sẽ có sự phân bố với nhiều giá trị 1 hơn giá trị 0. Vì vậy, nếu chúng ta nhúng nhiều số 1 hơn 0 (theo một tỉ lệ thích hợp) thì các số ở trên trong biểu đồ cũng biến mất. Giải thuật tốt hơn giải quyết vấn đề này là F4, nó sẽ tạo nên sự cân xứng nhƣ ở hình 2.8

2.3.3.3 Giải thuật F4

Ta thấy giải thuật F3 có hai điểm yếu sau:

Thứ nhất: Do sự suy giảm mang tính đặc trƣng của các số 0, F3 nhúng nhiều giá trị 0 hơn 1 và giống nhƣ Jsteg, F3 dễ bị phát hiện bằng phƣơng pháp thống kê dựa trên tính đặc thù của biểu đồ. (F3 chỉ khác so với Jsteg ở chỗ nó tạo ra tính đặc thù này bằng một khác).

Thứ hai: Biểu đồ của các tệp JPEG chứa nhiều hệ số lẻ hơn hệ số chẵn (ngoại trừ 0). Vì vậy, với vật mang không đổi (dƣới cái nhìn từ Jsteg hoặc F3) sẽ chứa nhiều giá trị 1 hơn 0.

Giải thuật F4 loại bỏ hai điểm yếu này bằng sự cố gắng ánh xạ các hệ số âm sang giá trị dấu đảo ngƣợc: các giá trị hệ số âm chẵn thể hiện giá trị dấu 1, giá trị âm lẻ thể hiện giá trị 0; và giá trị dƣơng chẵn thể hiện giá trị 0, giá trị dƣơng lẻ thể hiện 1. Hình 2.11 thể hiện sự cân xứng khi dùng giải thuật F4[18]

Hình 2.11 Mô hình phân bố của các hệ số tần số sử dụng giải thuật F4

Hình 2.12 sau đây chỉ ra vòng lặp nhúng thông tin của F4. Mảng coeff[] chứa toàn bộ các hệ số của vật mang.

Giả sử chúng ta có hai biến ngẫu nhiên X,Y cho các hệ số đƣợc theo dõi trƣớc và sau khi F4 nhúng thông điệp. P(X=x) biểu thị xác suất cho JPEG tạo ra một hệ số với giá trị x và P(Y=y) biểu thị xác suất để F4 tạo ra một hệ số bằng y. Chúng ta có thể viết ra hai thuộc tính đặc trƣng cho một số giá trị hệ số.

P(X1)P(X 2)P(X 3)P(X 4) (2.5)

P(X 1) P(X 2)P(X 2)P(X 3)P(X 3)P(X 4) (2.6) Nếu các bit đƣợc rải đều, chúng ta suy ra:

(2.7) 2) P(X 2 1 1) P(X 2 1 1) P(Y     

(2.8) 3) P(X 2 1 2) P(X 2 1 2) P(Y      (2.9) 4) P(X 2 1 3) P(X 2 1 3) P(Y      trừ (2.7) và (2.8) ta đƣợc (2.10), tƣơng tự với (2.8) và (2.9) ta đƣợc (2.11) (2.10) 3) P(X 2 1 1) P(X 2 1 2) P(Y - 1) P(Y       (2.11) 4) P(X 2 1 ) 2 P(X 2 1 3) P(Y - 2) P(Y      

Theo (2.5) ta thấy rằng vế phải của (2.10) và (2.11) là dƣơng suy ra tính chất đặc thù thứ nhất cho Y (2.12) 3) P(Y 2) P(Y 1) P(Y     

Hình 2.12 Đoạn mã nguồn bằng Java sử dụng giải thuật F4

(2.13) 4) P(X 2) P(X 3) P(X 1) P(X      

Theo (2.13) ta thấy vế phải của (2.10) lớn hơn (2.11). Vì vậy vế trái sẽ cho tính chất đặc thù thứ 2 đối với Y (2.14) ) 3 P(Y - ) 2 P(Y 2) P(Y 1) P(Y      

Tƣơng tự, ta có thể chỉ ra các tính chất riêng biệt đối với các giá trị bị thay đổi bởi F4. Ví nhƣ sự xuất hiện của các hệ số tỉ lệ nghịch với giá trị tuyệt đối hay tốc độ giảm của các hệ số tỉ lệ nghịch với giá trị tuyệt đối của chúng. (adsbygoogle = window.adsbygoogle || []).push({});

2.3.3.4 Giải thuật F5

Khác với vật mang dòng (stream media) (hội nghị truyền hình), các tệp ảnh chỉ cung cấp một dung lƣợng giấu thông tin hạn chế. Trong nhiều trƣờng hợp, thông điệp không chiếm hết không gian lƣu trữ. Do vậy, một phần của tệp sẽ không đƣợc sử dụng.[18]

Để ngăn chặn tấn công, chức năng nhúng nên rải đều thông tin trên vật mang nhất có thể. Mật độ nhúng nên giống nhau ở mọi chỗ trong vật mang.

a. Dải hoán vị

Chúng ta đã biết các giải thuật giấu thông tin rải thông điệp trên toàn bộ vật mang. Nhiều trong số chúng có độ phức tạp tính toán lớn. Chúng làm cho quá trình giấu và lấy lại chậm hơn nếu chúng ta khai thác toàn bộ không gian giấu.

Việc hoán vị là rất dễ nếu nhƣ ta biết chính xác không gian chứa của vật mang. Tuy nhiên, chúng ta không thể dự đoán sự suy giảm đối với F4, bởi vì nó phụ thuộc vào bit đƣợc nhúng tại vị trí đó. Do đó, ta chỉ ƣớc lƣợng đƣợc không gian giấu.

Cơ chế hoán vị đƣợc dùng trong F5 sẽ bố trí lại các hệ số bằng cách hoán vị. Sau đó F5 nhúng vào dãy đã hoán vị. Sự suy giảm không thay đổi số lƣợng các hệ số (chỉ thay đổi giá trị hệ số). Hoán vị này phụ thuộc vào một khoá có đƣợc từ mật khẩu. F5 chuyển các hệ số bị thay đổi do giấu thông tin trong dãy ban đầu cho bộ mã Huffman. Với đúng khoá, ngƣời nhận có thể lặp lại hoán vị này. Hoán vị có độ phức tạp tuyến tính. Hãy xem xét các điểm ảnh nhƣ là các hệ số.

b. Mã ma trận (Matrix Encoding)

Ron Crandall đã giới thiệu mã ma trận nhƣ là một kỹ thuật mới để gia tăng khả năng nhúng. Có lẽ F5 là giải thuật đầu tiên sử dụng mã ma trận. Nếu nhƣ phần lớn không gian không đƣợc dùng trong việc giấu thông tin, mã ma trận sẽ giảm số lƣợng các thay đổi cần thiết khi nhúng thông điệp vào vật mang. Giả sử chúng ta có một thông điệp mật đƣợc phân bố đều và các vị trí của giá trị thay đổi cũng phân bố đều (một nửa thông điệp gây ra thay đổi, một nửa còn lại không). Nếu không có mã ma trận, chúng ta có khả năng nhúng là 2 bit cho một thay đổi. Do suy giảm tạo ra bởi F4, tỉ lệ thay đổi có thể nhỏ hơn (khoảng 1,5 bit cho một thay đổi).

Ví dụ: Nếu chúng ta nhúng một thông điệp ngắn bao gồm 217 bytes (1736 bit), F4 thay đổi 1157 vị trí trong ảnh Expo. F5 nhúng cùng thông điệp này sử dụng mã ma trận thì chỉ thay đổi 459 vị trí. Nhƣ vậy, khả năng nhúng 3,8 bit mới thay đổi 1 vị trí.

Ví dụ sau đây chỉ ra chi tiết việc thực hiện. Ta muốn nhúng 2 bit x1, x2 trong 3 vị trí có thể thay đổi a1, a2, a3 thay đổi nhiều nhất ở một vị trí. Ta sẽ gặp phải 4 trƣờng hợp:

x1 = a1  a3, x2 = a2 a3 Không thay đổi x1 ≠ a1 a3, x2 = a2  a3Thay đổi a1 x1 = a1  a3, x2≠ a2  a3Thay đổi a2 x1 ≠ a1 a3, x2≠ a2 a3Thay đổi a3

Trong 4 trƣờng hợp chúng ta không thay đổi nhiều hơn 1 bit.

Khái quát, ta có 1 từ mã a với n bit có thể thay đổi đối với k bit thông điệp x. f là hàm băm trích k bit từ từ mã. Mã ma trận cho phép chúng ta tìm từ mã thích hợp a’ với a và x bất kỳ với x = f(a’) để khoảng cách Hamming:

d(a, a’)  dmax (2.15)

chúng ta thể hiện mã này bằng bộ 3 xếp thứ tự (dmax, n, k) một từ mã với n vị trí sẽ thay đổi không nhiều hơn dmax vị trí để nhúng k bit. F5 thể hiện mã ma trận chỉ

với dmax= 1. Với (1, n, k), từ mã sẽ có độ dài n = 2k-1. Bỏ qua sự suy giảm, chúng ta

Một phần của tài liệu GIẤU TIN TRONG ẢNH DỰA TRÊN MA TRẬN TẦN SỐ (Trang 52)