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
Hình 2.3 Minh hoạ thuật toán CPT trường hợp thay đổi 1 bit
- 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
Hình 2.4 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.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
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.3.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
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
Độ 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.
CHƢƠNG 3
PHÁT TRIỂN MỘT SỐ ỨNG DỤNG GIẤU TIN TRONG MULTIMEDIA
Chương này trình bày kết quả nghiên cứu của luận văn. Kết quả đáng được xem xét nhất có lẽ là thuật toán giấu tin HD8 và thuật toán giấu tin HD24, đây cũng là hai thuật toán được sử dụng để xây dựng một số phần mềm giấu tin trên miền không gian ảnh và trên dữ liệu âm thanh. Và kết quả thực nghiệm cho thấy, tính che giấu và lượng thông tin có thế giấu của hai thuật toán trên là khá tốt và phù hợp với yêu cầu thực tiễn.
Thuật toán giấu tin HD8 được đề xuất dựa trên ý tưởng giấu tin của Wu-Lee. Nhưng thuật toán HD8 không những có khả năng giấu tin trên ảnh bitmap 8 bit màu, mà tính che giấu của thuật toán cũng cao hơn hẳn so với thuật toán giấu tin của Wu-Lee.
Dựa trên ý tưởng giấu tin của ba tác giả Y.Chen, H.Pan, Y.Tseng, trong Luận văn giới thiệu thuật toán cải tiển có tên là HD24 để giấu tin vào bit thấp trong các thành phần màu của điểm ảnh, và trong các mẫu âm thanh. Với ảnh bitmap 24 bit màu, thuật toán HD24 có khả năng giấu lượng thông tin lớn gấp ba lần so với [3], mà mắt người vẫn không thể phân biệt được.
Phần đầu của Chương này, trình bày về định dạng, cấu trúc của tệp bitmap và cách xác định giá trị các trường trong tệp ảnh. Nội dung trình bày của phần này là cơ sở để xây dựng các ứng dụng giấu tin trên ảnh bitmap.
Phần tiếp theo của Chương trình bày hai thuật toán HD8 và thuật toán HD24. Kết quả thử nghiệm hai thuật toán trên đối với ảnh bitmap 8 bit màu và ảnh 24 bit màu.
Phần cuối của Chương trình bày về cấu trúc, định dạng của tệp wave, và sử dụng thuật toán HD24 để giấu tin trên dữ môi trường dữ liệu âm thanh. Nội dung trình bày trong phần này nhằm mục đích để xây dựng ứng dụng giấu tin trong môi trường dữ liệu âm thanh.
3.1 Ảnh Bitmap