Thuật toán Wu-Lee

Một phần của tài liệu (LUẬN văn THẠC sĩ) tìm hiểu xây dựng thuật toán giấu tin mật và ứng dụng (Trang 50 - 55)

3. Bố cục của luận văn

2.4.4 Thuật toán Wu-Lee

Là thuật toán giấu tin khá phổ biến do W.Y.Wu và J.H.Lee đề xuất năm 1989. Môi trường giấu tin là ảnh nhị phân được chia thành các khối bit đều nhau, mỗi khối là một ma trận nhị phân. Thông tin mật được giấu vào mỗi khối này bằng cách thay đổi nhiều nhất một bít của khối.

Một số khái niệm

a) Phép toán Λ: Gọi a và b là hai bít tuỳ ý, phép toán nhân bít AND, kí

hiệu là Λ trên hai bít a và b cho ta giá trị 1 khi và chỉ khi a=b=1, trong các trường hợp còn lại, aΛb=0

b) Phép toán : Phép toán cộng loại trừ (còn gọi là phép toán so khác) XOR, kí hiệu là trên hai bít a và b cho ta giá trị 1 nếu a b và giá trị 0 nếu

a = b. a b aΛb a b 1 0 0 1 1 1 1 0 0 1 0 1 0 0 0 0

c) Phép toán Λ và : Cho A và B là hai ma trận bít cùng cấp. Ta phát triển các phép toán Λ và trên các bít tương ứng của A và B như sau:

Nếu A = (aij), B = (bij), C =(cij), D = (dij) thì A Λ B = C với cij = aij Λ bij

và A B = D với dij = aij bij

Thuật toán

Ý tưởng của thuật toán là sử dụng một khóa bí mật K là một ma trận nhị phân có kích thước dùng để làm tăng tính bí mật của các thông điệp được giấu.

Đầu vào: Ảnh gốc nhị phân F, khóa bí mật K và một thông điệp M cần

giấu.

Đầu ra: F’ là một file ảnh đã giấu tin.

Cách thực hiện:

Khóa K là một ma trận nhị phân có kích thước . Để đơn giản chúng ta coi kích cỡ của ảnh F là bội của . Việc nhúng thông 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 các bước sau:

Bước 1: Chuyển thông điệp M sang dạng nhị phân. Chia ảnh F thành các khối nhỏ Fi, mỗi khối có kích thước là .

Bước 2: Với mỗi khối ảnh nhỏ Fi thu được từ bước 1, ta kiểm tra điều kiện: 0 < SUM (Fi^K) < SUM (K)

Nếu đúng thì chuyển tới bước 3 để giấu thông tin vào trong khối Fi, còn nếu không thì không giấu dữ liệu vào trong khối Fi, khối Fi sẽ được giữ nguyên.

Bước 3: Gọi bit cần giấu vào khối Fi là b, ta thực hiện các bước sau để thay đổi Fi:

Iƒ (SUM (Fi ^ K) mod 2 =b) then Giữ nguyên Fi;

else iƒ (SUM(Fi ^ K) =1) then

Chọn ngẫu nhiên một bit [Fi]j,k thỏa:([Fi]j,k = 0 và [K]j,k = 1); Thay [Fi]j,k = 1;

else iƒ SUM(Fi^K) = SUM(K) – 1) then

Chọn ngẫu nhiên một bit [Fi]j,k thỏa ([Fi]j,k = 1 và [K]j,k = 1); Thay [Fi]j,k = 0;

else

Chọn ngẫu nhiên một bit mà [K]j,k = 1 thay bit [Fi]j,k từ 0 thành 1 hoặc từ 1 thành;

Sau khi gắn dữ liệu thì Fi được chuyển thành Fi’ và giữ được tính chất bất biến sau đây:

0 < SUM (Fi’^K) < SUM (K) SUM (Fi’^K) b (mod 2).

Ví dụ: Giả sử ta cần giấu dãy bit M = 110 vào ảnh F có kích thước 8x8

và một ma trận khóa K có kích thước 4x4, như hình vẽ. Trước hết chia ảnh F thành 4 khối nhỏ F1, F2, F3, F4, mỗi khối nhỏ có kích thước là 4x4 .

Hình 2. 9: Minh họa giấu dãy bit M = 110 vào 4 khối ảnh nhị phân

Quá trình tách tin:

Đầu vào: F’ là ảnh đã được giấu thông điệp M

K là ma trận khóa bí mật, kích thước .

Đầu ra: Thông điệp được giấu M (ảnh gốc nhị phân F nếu cần giữ

lại).

Bước 1: Chia ảnh F’ thành các khối nhỏ F’i với kích thước . Bước 2: Ta kiểm tra các khối Fi’ để tách bit thông tin

For each F’i.

if0 < SUM (F’i^K) < SUM (K) then b = SUM (F’i^K) mod 2;

Trong đó b là bít nhị phân đã được giấu.

Bước 3: Chuyển chuỗi nhị phân sang dạng văn bản.

Phân tích thuật toán:

Việc chọn khóa K nhằm làm tăng độ bảo mật của thuật toán. Nếu trước đây chỉ biết kích thước khối là mxn thì đối phương rất rễ khai thác bản tin mật.

Thuật toán 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) và do tính chất của phép toán AND, nếu có một khối nào thay đổi thì vị trí thay đổi chỉ xảy ra ở phần tử có giá trị 1 trong khóa K. Vì thế một ảnh F hoàn toàn trắng nào đó được truyền đi thì người ta dễ dàng tìm được khóa K, vì vậy mà không dùng trường hợp SUM(F1  K) = 0. Đây là một kẽ hở của thuật toán đối với khóa.

Với SUM (Fi K) = SUM(K) cũng tương tự nếu F hoàn toàn đen thì vị trí của bit thay đổi cũng là vị trí mà bit tương ứng ở khóa là 1.

Nếu ảnh F được lựa chọn để giấu tin có quá nhiều điểm trắng hoặc quá nhiều điểm đen thì tỉ lệ bit giấu được sẽ rất thấp.

Để tránh những trường hợp trên thuật toán phải thỏa điểu kiện: 0 < SUM (Fi K) < SUM (K). Và việc chọn khóa K hết sức quan trọng.

CHƯƠNG 3: TÌM HIỂU XÂY DỰNG MỘT THUẬT TOÁN GIẤU TIN MẬT TRÊN ẢNH KỸ THUẬT SỐ

Một phần của tài liệu (LUẬN văn THẠC sĩ) tìm hiểu xây dựng thuật toán giấu tin mật và ứng dụng (Trang 50 - 55)

Tải bản đầy đủ (PDF)

(76 trang)