Một số thí dụ minh họa thuật toán CPT

Một phần của tài liệu giấu tin trong ảnh và bài toán trao đổi - xác thực đề thi (Trang 31 - 34)

Thí dụ minh hoạ trường hợp thay đổi một bit

Quá trình giấu tin:

Giả sử cần giấu dãy bit 1011 vào ma trận điểm ảnh có kích thước 4x4 với các tham số đầu vào như hình 2.1

1 0 1 0 1 0 1 0 1 3 2 6

1 1 0 1 1 0 1 0 7 8 5 4

F = 0 1 0 1 K = 0 1 1 0 W = 13 11 9 10

0 0 0 0 0 0 0 0 F 1011 1 0 1 0

0 1 1 1 0 8 5 4 1 0 0 1

F⊕K= 0 0 1 1 T⊗W = 0 0 9 10 G = 0 1 0 1

1 0 0 1 12 0 0 3 0 0 1 0

T

Hình 2.1. Minh hoạ thuật toán CPT trường hợp thay đổi 1 bit

- Tính s = SUM(T⊗W ) = 51

- Đặt d = b - s (mod 2r) = 11 - 51 (mod 16) = 8 Vì d = 8≠0, nên ta xây dựng tập

Zα = {(i,j) | (Wi,,j=α và Ti,j = 0) hoặc (Wi,j=2r-α và Ti,j=1)}

Với α = d = 8, xét ma trận W ta thấy phần tử (2,2) thoả mãn điều kiện: (W2,2=2r - d và T2,2= 1), suy ra Zd≠Ø.

Do Zd≠Ø, theo thuật toán CPT chỉ cần đảogiá trị phần tử Fi,j |(i ,j) thuộc Zd. Chọn i =2 và j = 2 thực hiện phép đảo phần tử F2,2 ta sẽ được ma trận kết quả G như trong Hình 2.1.

Quá trình giải mã:

Giả sử khi nhận được ma trận G đã chứa thông tin cần giấu, với các giá trị trên Hình 2.2, để giải mã thông tin giấu trong G ta sẽ thực hiện tính theo bất biến:b’ =SUM(T⊗W) mod 2r

 b’ = 43 mod 16  b’ = 11 = 1011(2) 1 0 1 0 1 0 1 0 1 3 2 6 G = 1 0 0 1 K = 1 0 1 0 W = 7 8 5 4 0 1 0 1 0 1 1 0 13 11 9 10 0 0 1 0 1 0 1 1 12 14 15 3 0 0 0 0 0 0 0 0 T = 0 0 1 1 TW= 0 0 5 4 0 0 1 1 0 0 9 10

1 0 0 1 12 0 0 3

GK

Hình 2.2. Minh hoạ quá trình giải mã thông tin đã giấu

Thí dụ minh hoạ trường hợp thay đổi hai bit: Quá trình giấu tin:

Giả sử cần giấu dãy bit 0100 vào ma trận điểm ảnh có kích thước 4x4 với các tham số đầu vào F, K, W thì đầu ra tương ứng sau khi kết thúc thuật toán là ma trận G như trong Hình 2.3. Quá trình giấu diễn ra như sau:

- Tính: T = FK (kết quả như Hình 2.3) - Tính: s = SUM(T⊗W ) = 59

- Đặt: d = (b - s) mod 2r = (4 - 59) mod 16 = 9 Vì d = 9 ≠0, nên ta xây dựng tập

Zα = {(i,j) | (Wi,,j=α và Ti,j = 0) hoặc (Wi,j=2r-α và Ti,j=1)}

Với α = d = 9, không tồn tại phần tử (i,j) để (Wi,,j=9 và Ti,j = 0) hoặc (Wi,j=7 và Ti,j=1), suy ra Zd = Ø.

+ Xét Z2d: Với d = 9 và do phép toán mod 2r nên Z2d = Z2. Do không tồn tại (i,j) để (Wi,,j=2 và Ti,j = 0) hoặc (Wi,j=14 và Ti,j=1) => Z2d = Ø

+Xét Z3d:với d = 9 ta có Z3d≠Ø vì tồn tại phần tử (3,2) để (W3,2 = 3d và T3,2 = 0). (adsbygoogle = window.adsbygoogle || []).push({});

- Theo thuật toán, khi Zhd≠Ø (h là số tự nhiên đầu tiên thoả mãn) ta sẽ thay đổi giá trị hai phần tử Fi,j và Fu,v với (i,j) thuộc Zhd và (u,v) thuộc Z d-hd.

+ Chọn (i,j) = (3,2) và (u,v) = (4,2), sau khi đảo F3,2 và F4,2 ta sẽ được ma trận kết quả G như trong Hình 2.3

1 0 0 1 1 0 1 0 1 3 2 6 1 1 0 1 1 0 1 0 7 8 5 4 F = 0 1 0 1 K = 0 1 1 0 W = 13 11 9 10 0 0 1 0 1 0 1 1 12 14 15 3 0 0 1 1 0 0 2 6 1 0 0 1 0 1 1 1 0 8 5 4 1 1 0 1 T = 0 0 1 1 TW = 0 0 9 10 G = 0 0 0 1 1 0 0 1 12 0 0 3 0 1 1 0 FK

Hình 2.3. Thí dụ minh hoạ trường hợp thay đổi hai bit

Quá trình giải mã

Để giải mã thông tin đã được giấu trong ma trận G chúng ta cần tính b’= SUM((G⊕K)⊗W) mod 2r, sau đó đổi giá trị b’ thành dãy nhị phân gồm r bit có giá trị tương ứng và đó chính là dãy bit đã được giấụ

Ví dụ: với các ma trận W, K, G như trong hình 2.3 ta tính được thông tin giấu trong G như sau

b’= SUM((G⊕K)⊗W) mod 2r => b’ = 84 mod 16 = 4 = 0100(2)

Một phần của tài liệu giấu tin trong ảnh và bài toán trao đổi - xác thực đề thi (Trang 31 - 34)