0
Tải bản đầy đủ (.doc) (90 trang)

Tính đúng của thuật toán

Một phần của tài liệu ĐỒ ÁN TỐT NGHIỆP: TÌM HIỀU CÁC KỸ THUẬT GIẤU TIN TRONG ẢNH (Trang 46 -49 )

Tính đúng của thuật toán được chứng minh bằng cách dựa trên chính văn bản của thuật toán đã trình bày.

3.2.3.2 Sử dụng khóa K với chiều dài thay đổia. Thuật toán a. Thuật toán

Mã hóa

Giả sử chúng ta cần giấu bit b vào trong ảnh F. Cắt 1 đoạn gồm có ki (i = 1,2,...., n ) điểm ảnh và giấu b vào trong ảnh. Trong đó k là khóa, là số tự nhiên ngẫu nhiên.

k = (k1,k2,k3,...,kn)

d = (n x m)/sum(k1,k2,...,kn) = số đoạn Giải thuật dựa vào tính chẵn lẻ:

Bước 1: Đọc liên tiếp ki điểm ảnh. Gọi là fi

Ký hiệu Sum(fi): là tổng số bit 1 có trong ki. Đặt b = t mod 2

Bước 2: So sánh t và b:

Nếu t và b cùng tính chẵn lẻ: thì không làm gì cả.

Nếu t và b khác tính chẵn lẻ: thì ta tìm cách sửa đúng 1 bit trong f. Khi đó f →

f’: sao cho f’ và b là cùng tính chẵn lẻ.

Bước 3: Việc sửa bit được tiến hành như sau: Ta chọn chính sách:

- Nếu có nhiều điểm đen và có điểm trắng thì sửa điểm trắng thành điểm đen. - Nếu có nhiều điểm trắng và có điểm đen thì sửa điểm đen thành điểm trắng. - Nếu số điểm đen và điểm trắng xấp xỉ bằng nhau thì chọn ngẫu nhiên 1 bit để sửa.

- Nếu bit không quan trọng, bit nằm ở đầu những đoạn cùng màu thì việc sửa tập trung vào bit không quan trọng của những đoạn cùng màu lớn nhất.

Giải mã

Chỉ cần có ảnh F’ và khóa k1.

Bước 2: Tính Sum(fi):

Nếu Sum(fi): chẵn → bit bi = 0 Nếu Sum(fi): lẻ → bit bi = 1

Ví dụ 4: các bit cần giấu là 10100, ảnh F và khóa K như hình 3.2

Mã hóa

- Giấu bit b1: đọc liên tiếp 5 điểm ảnh và giấu b1 vào trong ảnh. Gọi là f1. S1 = Sum(f1)=4 . Vì (4 mod 2)=0 ≠ b1=1 và f1=01111 nên ta chọn bit F(1,1) để sửa.

- Giấu bit b2: đọc liên tiếp 4 điểm ảnh và giấu b2 vào trong ảnh. Gọi là f2. S2 = Sum(f2)=4. Vì (4 mod 2)=0 = b2 nên ta không thay đổi f2.

- Giấu bit b3: đọc liên tiếp 5 điểm ảnh và giấu b3 vào trong ảnh. Gọi là f3. S3 = Sum(f3)=4. Vì (4 mod 2)=0≠b3=1 và f3=01111 nên ta chọn bit F(2,5) để sửa.

- Giấu bit b4: đọc liên tiếp 6 điểm ảnh và giấu b4 vào trong ảnh. Gọi là f4. S4 = Sum(f4) = 4. Vì (4 mod 2)=0=b4 nên không thay đổi f4.

- Giấu bit b5: đọc liên tiếp 3 điểm ảnh và giấu b5 vào trong ảnh. Gọi là f5. S5

= Sum(f5) = 2. Vì (2 mod 2)=0 = b5 nên không thay đổi f5.

Giải mã

Chỉ cần có ảnh F’ và khóa k = (5,4,5,6,3).

- Đọc liên tiếp 5 điểm ảnh. Gọi là f’1. S1 = Sum(f’1) = 5 ⇒ b1 = 1 (vì S1 lẻ). - Đọc liên tiếp 4 điểm ảnh. Gọi là f’2. S2 = Sum(f’2) = 4 ⇒ b2 = 0 (vì S2 chẵn). - Đọc liên tiếp 5 điểm ảnh. Gọi là f’3. S3 = Sum(f’3) = 5 ⇒ b3 = 1.

- Đọc liên tiếp 6 điểm ảnh. Gọi là f’4. S4 = Sum(f’4) = 4 ⇒ b4 = 0. - Đọc liên tiếp 3 điểm ảnh. Gọi là f’5. S5 = Sum(f’5) = 2 ⇒ b5 = 0.

Ảnh F 01111111101111100 11101110 Khóa K=(5,4,5,6,3) Ảnh F’ 1111111111111 110011101110

Vậy chuỗi được giải mã là: 10100

Đặc điểm của thuật toán

Khi chọn các bit thay đổi trong từng đoạn phù hợp thì bức ảnh sau khi giấu dữ liệu sẽ ít thay đổi hơn so với bức ảnh ban đầu.

Ưu điểm của thuật toán

- Một số bit dữ liệu được ẩn trong bức ảnh có thể không làm thay đổi hình ảnh ban đầu của bức ảnh. Do đó độ an toàn sẽ cao hơn.

- Vì khóa k thay đổi nên việc tìm cách giải mã của đối phương sẽ gặp nhiều khó khăn. Khóa k chỉ được trao đổi giữa người gửi và người nhận.

b. Tính đúng của thuật toán

Tính đúng đắn của thuật toán được chứng minh bằng cách dựa trên chính văn bản của thuật toán đã trình bày gồm các bước như trên.

3.2.3.3 Sử dụng khóa bí mật k là một ma trận ảnh (do M.Y.Wu and J.H.Lee đềxuất: gọi tắt là thuật toán WL) xuất: gọi tắt là thuật toán WL)

a.Thuật toán WL

Ta xem một bức ảnh chính là một ma trận nhị phân F, khóa K là một ma trận ảnh kích thước m x n và một số bit cần giấu. Để đơn giản ta xem kích thước của ảnh F là bội số của m x n. Việc giấu bằng cách thay đổi một số bit của F.

Mã hóa

Bước 1: chia F thành những khối, mỗi khối có kích thước m x n.

Tính S = Sum(Fi Λ K) , Sk = Sum(K). [6]

Bước 2: với mỗi khối Fi, kiểm tra điều kiện 0< S < Sk thì cho phép giấu tin vào Fi. Nếu không thỏa mãn điều kiện thì giữ nguyên Fi, không thay đổi bit nào.

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

Nếu (S mod 2 = b ) thì giữ nguyên Fi. [6] Nếu S =1 thì chọn ngẫu nhiên 1 bit Fi[j,k] = 0 mà K[j,k] =1 thì đổi Fi[j,k] về 1.

[6] Nếu S = Sk – 1 thì chọn ngẫu nhiên 1 bit Fi[j,k] =1 mà K[j,k] = 0 thì đổi Fi[j,k]

về 0. [6] Nếu 1 < S < Sk thì chọn ngẫu nhiên 1 bit Fi[j,k] mà K[j,k] = 1 rồi đảo Fi[j,k].

Giải mã

Giả sử Fi được biến đổi thành F’i thì ta có bất biến sau:

0< Sum(F’i Λ K) < Sum(K) ⇒ sum(F’i Λ K) = b mod 2. [6]

Bước 1: chia F thành những khối, mỗi khối có kích thước m x n Tính S = Sum(F’i Λ K), Sk = Sum(K)

Bước 2: với mỗi khối F’i, kiểm tra điều kiện 0<S<Sk thì cho giải mã từ F’i. Nếu không thỏa mãn điều kiện thì giữ nguyên Fi, không bit nào giấu trong Fi.

Bước 3: xem bit giấu vào khối F’i là b. Khi người thu xác định được (0 < Sum(F’i Λ K) < Sum(K)) thì có thể tìm ra được bit đã giấu b:

b = Sum(F’i Λ K) mod 2 [6]

Ví dụ 5: chuỗi các bit cần giấu là: 101, ảnh F và khóa K được cho ở hình 3.3.

Một phần của tài liệu ĐỒ ÁN TỐT NGHIỆP: TÌM HIỀU CÁC KỸ THUẬT GIẤU TIN TRONG ẢNH (Trang 46 -49 )

×