2. Những đóng góp của luận văn
2.4.4. Một số thí dụ minh họa thuật toán CPT
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.3
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 = 12 11 9 10 0 0 1 0 1 0 1 1 12 14 15 3 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 FK= 0 0 1 1 TW = 0 0 9 10 G = 0 1 0 1 1 0 0 1 12 0 0 3 0 0 1 0 T
34 - Tính s = SUM(TW ) = 51
- Đặt d = b - s (mod 2r) = 11 - 41 (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 đảo giá 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.3.
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.4, để 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(TW) 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 12 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
35
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.5. Quá trình giấu diễn ra như sau:
- Tính: T = FK (kết quả như Hình 2.5) - Tính: s = SUM(TW ) = 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).
- 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) = (2,1), sau khi đảo F3,2 và F2,1 ta sẽ được ma trận kết quả G như trong Hình 2.5
36 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 = 12 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-5. 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((GK)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ấu.
Ví dụ: với các ma trận W, K, G như trong hình 2.5 ta tính được thông tin giấu trong G như sau
b’= SUM((GK)W) mod 2r => b’ = 84 mod 16 = 4 = 0100(2) 2.4.5. Phân tích thuật toán
Thuật toán có thể giấu được r bit vào trong một khối mxn với điều kiện là 2r<mxn và chỉ cần thay đổi nhiều nhất là 2 bit trên một khối. Như vậy, thuật toán này đã có cải tiến rất lớn so với những thuật toán khác chỉ giấu được một bit vào mỗi khối
37
Độ an toàn của thuật toán cũng rất cao thông qua hai ma trận dùng làm khoá để giải tin đó là ma trận trọng số và ma trận khoá. Như vậy độ bảo mật của thuật toán là: 2m*n mn2 1 r r mn (2 1) r r (2 1)! (2 1) C
Thuật toán này đương nhiên có thể áp dụng cho ảnh màu và ảnh đa cấp xám. Ta cũng sẽ sử dụng kỹ thuật chọn ra bit ít quan trọng nhất của mỗi điểm ảnh để xây dựng ma trận hai chiều các bit 0, 1 như trong thuật toán với ảnh đen trắng
Nếu áp dụng tốt thuật toán này cho ảnh màu thì có thể nói thuật toán đã đạt được yêu cầu cơ bản của một ứng dụng giấu tin mật đó là đảm bảo tính ẩn của thông tin giấu, số lượng thông tin giấu cao.
38
Chương 3.NÂNG CAO CHẤT LƯƠNG GIẤU TIN BẰNG PHƯƠNG PHÁP
MODULE