Kỹ thuật giấu tin W u Lee

Một phần của tài liệu luận văn thạc sĩ tìm hiểu các kỹ thuật giấu tin trong ảnh (Trang 51)

3.2.2.1. Ý tưởng

Thuật toán này đƣợc đƣa ra bởi M.Y.Wu và J.H.Lee [12].

Giả sử chọn môi trƣờng mang tin là một ảnh đen trắng, ta sẽ phân tích ảnh thành một ma trận điểm ảnh, với những giá trị 0,1. Xét hai ma trận có cùng kích cỡ F, K , thực hiện:

Hình 29. F ^ K là phép toán AND giữa các cặp bit của hai ma trận.

Hình 30. F K là phép toán XOR giữa các cặp bit của hai ma trận.

- Với một ma trận số nguyên thì Fij là phần tử của ma trận F nằm ở dòng i cột j. - SUM(F) là tổng của tất cả các phần tử của F. Sum(F) = 5

Thuật toán giấu thông tin đƣợc thực hiện nhƣ sau:

Có một ảnh gốc nhị phân F, một khoá bí mật K (secret key) và một số các bit dữ liệu cần giấu. Khoá K là một ma trận nhị phân có kích thƣớc (m x n). Để đơn giản, ta coi kích cỡ của ảnh F là bội của (m x n). Việc nhúng thông

1 0 1 1 1 1 0 0 0 F 1 1 1 1 0 1 0 1 0 K 1 0 1 1 0 1 0 0 0 F ^ K 1 0 1 1 1 1 0 0 0 F 1 1 1 1 0 1 0 1 0 K 0 1 0 0 1 0 0 1 0 F  K

tin giấu vào trong ảnh sẽ đƣợc thực hiện bằng cách thay đổi một số bit của ảnh F theo quy tắc:

B1. Chia ảnh F thành các khối nhỏ, mỗi khối sẽ có kích thƣớc đúng bằng kích thƣớc của ma trận khoá K (m x n).

B2. Với mỗi khối ảnh nhỏ Fi thu đƣợc từ B1, ta kiểm tra điều kiện:

0 < SUM(Fi^K) < SUM(K)

Nếu đúng thì chuyển tới B3 để giấu thông tin vào trong khối Fi, nếu sai thì giữ nguyên khối Fi, không giấu dữ liệu vào trong khối.

B3. Gọi bit cần giấu vào trong khối Fi là b, thực hiện các bƣớc sauđể thay đổi Fi: a) if (SUM(Fi^K) mod 2 = b) then giữ nguyên Fi

else

b) if (SUM(Fi^K) mod 2 = 1) then

chọn một bit ngẫu nhiên thoả mãn đồng thời [K]jk = 1 và [Fi]jk = 0 sau đó chuyển giá trị của bit [Fi]jk thành 1

else

c) if (SUM(Fi^K) = SUM(K) – 1) then

chọn một bit ngẫu nhiên thoả mãn đồng thời [K]jk = 1 và [Fi]jk = 1 sau đó chuyển giá trị của bit [Fi]jk thành 0

else

d) chọn một bit ngẫu nhiên mà [K]jk = 1, đảo giá trị của bit [Fi]jk từ 0 thành 1 hoặc từ 1 thành 0

end if

Ý tƣởng của thuật toán là làm thế nào nhúng đƣợc vào nhiều khối, mỗi khối chỉ một bit thông tin. Nếu một khối Fi thoả mãn điều kiện thì một bit thông tin sẽ đƣợc giấu vào khối đó bằng cách thay đổi phần tử của khối Fi thành Fi’ sao cho luôn thoả mãn điều kiện sau:

0 < SUM(Fi’^K) < SUM(K)

- Tìm khối ảnh thoả mãn điều kiện 0 < SUM(Fi’^K) < SUM(K) - Tính bit b đã đƣợc giấu vào trong khối bằng công thức

b = SUM(Fi’^K) mod 2

Vì khoá K là bí mật nên thông tin đã đƣợc nhúng là bí mật. Thuật toán này làm thay đổi nhiều nhất một bit của khối Fi khi giấu một bit thông tin vào trong khối. Vậy, với một khối có kích thƣớc (m x n) đủ lớn thì sự thay đổi của Fi là không đáng kể.

Hình 31. Ma trận ảnh F(F1, F2, F3, F4) và khoá K

3.2.2.2. Phân tích thuật toán (adsbygoogle = window.adsbygoogle || []).push({});

- Vì sử dụng phép toán AND để tính Fi^K, nên giá trị lớn nhất của SUM(Fi^K) không thể vƣợt quá SUM(K). Cũng do tính chất của phép toán AND, nếu có một khối ảnh nào thay đổi thì vị trí thay đổi chỉ xảy ra ở phần tử có giá trị 1 trong khoá K. Vì thế, với một F hoàn toàn đen nào đó đƣợc truyền đi, khi ngƣời thám tin bắt đƣợc thông tin sẽ dễ dàng tìm ra đƣợc vị trí 1 của khoá K, đó chính là lý do ta không dùng trƣờng hợp SUM(Fi^K) = 0. Đây là phần sơ hở của thuật toán, khó giữ đƣợc bí mật của khoá.

- Trƣờng hợp SUM(Fi^K) = SUM(K) cũng tƣơng tự, nếu F hoàn toàn trắng thì vị trí của bit thay đổi cũng là vị trí mà bit tƣơng ứng ở khoá là 1.

Để tránh những trƣờng hợp trên, thuật toán đƣa ra sự phụ thuộc: 0<SUM(Fi^K) < SUM(K). Tuy thế, vị trí tƣơng ứng với bit bị thay đổi cũng tƣơng

0 1 0 0 0 0 1 0 1 1 0 0 1 0 0 1 0 0 1 0 1 0 0 0 1 0 0 0 1 1 1 1 0 0 0 0 0 1 1 0 0 1 1 0 0 0 1 1 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 1 1 1 0 0 1 1 0 0 0 0 0 1 1 1 1 0 0 0 F1 F3 F2 F4 K

tƣơng ứng sẽ là bit 0 ở vị trí đó trong khoá K. Vậy chọn khoá K nhƣ thế nào là một công việc hết sức quan trọng.

- Ảnh F khi đƣợc lựa chọn để giấu thông tin cần cân nhắc. Nếu một ảnh có quá nhiều vùng trắng thì số bit tin giấu đƣợc sẽ rất ít. Nếu một ảnh có quá nhiều vùng đen thì thông tin giấu dễ bị phát hiện.

3.2.2.3. Nhận xét:

Có thể tăng tính bảo mật của thông tin giấu khi ta thay đổi cách trƣợt của ma trận khoá K (thẳng, chéo, zic zắc, cong, xoắn ốc, ...) trên ma trận ảnh.

Hình 32. Một số phƣơng pháp trƣợt ma trận khoá K trên các khối ảnh.

Thuật toán này vẫn chƣa đạt đƣợc những yêu cầu cần thiết về khả năng giấu, độ an toàn thông tin cũng nhƣ chất lƣợng ảnh đen trắng. Tuy nhiên, nếu áp dụng kỹ thuật này cho ảnh màu thì thu đƣợc kết quả khả quan hơn.

Một phần của tài liệu luận văn thạc sĩ tìm hiểu các kỹ thuật giấu tin trong ảnh (Trang 51)