Chương 5. ẨN GIẤU THÔNG TIN 5.1. TỔNG QUAN VỀ ẨN GIẤU TIN 5.1.1. Khái niệm “Ẩn giấu tin”. “Ẩn giấu tin”, tiếng Hy lạp là “Steganography”, tiếng Anh: Covered Writing. “Ẩn giấu tin“ được hiểu là nhúng mẩu tin mật vào một vật mang tin khác, sao cho mắt thường khó phát hiện ra mẩu tin mật đó, mặt khác khó nhận biết được vật mang tin đã được giấu một tin mật. Trong lịch sử, có nhiều câu truyện về “giấu tin” phục vụ mục đích quân sự: Giấu tin bằng cách dùng “mực không mầu” để viết tin mật. Để xem tin mật, người nhận dùng thủ thuật cho hiện mầu. Người ta “khắc” bản đồ kho báu lên đầu các thuỷ thủ, để tóc mọc che kín đi. Quân Hy lạp đã thông báo cho nhau về âm mưu của kẻ địch, bằng cách “khắc tin” dưới lớp sáp của viên thuốc. Trung hoa thời trung cổ, người ta ghi các hình tượng vào các vị trí nhất định trong một bức thư rồi gửi nó đi. Khi có chữ viết, người ta giấu tin mật vào một bài thơ thông thường, bằng cách dùng các ký tự đầu tiên của mỗi từ. trong bài thơ này. Công nghệ thông tin đã tạo ra những môi trường “Ẩn giấu tin” mới vô cùng tiện lợi và phong phú. Không chỉ “Ẩn giấu tin” trong văn bản, người ta còn có thể “Ẩn giấu tin” trong hình ảnh, âm thanh. Không chỉ “Ẩn giấu tin” trong các gói “dữ liệu”, người ta có thể “Ẩn giấu tin” trong các phần mềm trên đường truyền tin. Cũng có thể “Ẩn giấu tin” ngay trong các khoảng trống hay các phân vùng ẩn của môi trường lưu trữ như đĩa cứng, đĩa mềm, USB. Đó chính là các phương pháp “Ẩn giấu tin số”. Ngày nay “Ẩngiấu tin số” không chỉ dùng cho mục đích quân sự, nghệ thuật “Ẩn giấu tin số” còn để phục vụ các mục đích tích cực như bảo vệ bản quyền các “tài liệu số”, ví dụ như “tranh ảnh số”, “bản nhạc số”, công trình khoa học hay bài văn bài thơ đã được “số hóa”, … Các tài liệu trên được “giấu” một định danh ghi bản quyền, phương pháp “Ẩn giấu tin số” này được gọi là “Thuỷ ấn số” (Watermaking). Sự kiện ngày 11092001 khiến cho các liên lạc bí mật qua mạng máy tính được quan tâm hơn nữa. Người ta đồn rằng Osma Bin Laden và quân khủng bố đã liên lạc với nhau bằng cách giấu thông tin vào ảnh trên Internet. Năm 1990, các kết quả nghiên cứu đầu tiên về “giấu tin” với sự trợ giúp của máy tính, đã đặt nền móng cho sự phát triển phương pháp bí mật: “Ẩn giấu tin số”. Sự phát triển của Internet kéo theo sự phát triển của nhiều lĩnh vực khác. Internet đã tạo ra môi trường kinh doanh mới: Kinh doanh trên mạng máy tính. Ví dụ thương mại điện tử. Kinh doanh trên mạng mang lại rất nhiều lợi ích, tuy nhiên cũng phát sinh những mặt tiêu cực như vi phạm bản quyền, giả mạo thương hiệu, … Trước tình thế đó, các phương pháp “Ẩn giấu tin số” đã khẳng định được chỗ đứng của mình. Chúng được áp dụng để “ghi dấu ấn” vào “sản phẩm số” các thông tin như chữ ký, nhãn thương hiệu, … để minh chứng cho sự hợp pháp của “sản phẩm số” đó, góp phần bảo vệ bản quyền “sản phẩm số”. Để phân biệt với “Ẩn giấu tin” theo nghĩa thông thường nhằm “che giấu” thông tin mật, ta tạm gọi loại “Ẩn giấu tin” để bảo vệ bản quyền “sản phẩm số” là “Đánh giấu tài liệu số”, “Đánh giấu sản phẩm số” hay “Ẩn tin”. 5.1.2. Các thành phần của Hệ “Ẩn Giấu tin”. Các thành phần chính của một hệ “Ẩn Giấu tin” trong ảnh gồm có: + Mẩu tin mật: có thể là văn bản, hình ảnh hay tệp tin tùy ý (audio, video,...), vì trong quá trình giấu tin, chúng đều được chuyển thành chuỗi các bit. + Môi trường sẽ chứa tin mật: Thường là ảnh, nên gọi là Ảnh phủ hay Ẩnh gốc. + Khoá K: khoá viết mật, tham gia vào quá trình giấu tin để tăng tính bảo mật + Môi trường đã chứa tin mật: Thường là ảnh, nên gọi là Ảnh mang, là ảnh sau khi đã nhúng tin mật vào. Hình 1: Sơ đồ “Ẩn giấu tin” trong ảnh
Trang 1Chương 5 ẨN GIẤU THÔNG TIN
5.1 TỔNG QUAN VỀ ẨN GIẤU TIN
5.1.1 Khái niệm “Ẩn - giấu tin”.
“Ẩn- giấu tin”, tiếng Hy lạp là “Steganography”, tiếng Anh: "Covered Writing"
“Ẩn- giấu tin“ được hiểu là nhúng mẩu tin mật vào một vật mang tin khác, sao cho mắt thường khó phát hiện ra mẩu tin mật đó, mặt khác khó nhận biết được vật mang tin đã được giấu một tin mật
Trong lịch sử, có nhiều câu truyện về “giấu tin” phục vụ mục đích quân sự:Giấu tin bằng cách dùng “mực không mầu” để viết tin mật Để xem tin mật, người nhận dùng thủ thuật cho hiện mầu
Người ta “khắc” bản đồ kho báu lên đầu các thuỷ thủ, để tóc mọc che kín đi.Quân Hy lạp đã thông báo cho nhau về âm mưu của kẻ địch, bằng cách
“khắc tin” dưới lớp sáp của viên thuốc
Trung hoa thời trung cổ, người ta ghi các hình tượng vào các vị trí nhất định trong một bức thư rồi gửi nó đi
Khi có chữ viết, người ta giấu tin mật vào một bài thơ thông thường, bằng cách dùng các ký tự đầu tiên của mỗi từ trong bài thơ này
Công nghệ thông tin đã tạo ra những môi trường “Ẩn giấu tin” mới vô cùng tiện lợi và phong phú Không chỉ “Ẩn giấu tin” trong văn bản, người ta còn có thể
“Ẩn giấu tin” trong hình ảnh, âm thanh Không chỉ “Ẩn giấu tin” trong các gói
“dữ liệu”, người ta có thể “Ẩn giấu tin” trong các phần mềm trên đường truyền tin
Cũng có thể “Ẩn giấu tin” ngay trong các khoảng trống hay các phân vùng
ẩn của môi trường lưu trữ như đĩa cứng, đĩa mềm, USB Đó chính là các phương pháp “Ẩn- giấu tin số”
Ngày nay “Ẩn-giấu tin số” không chỉ dùng cho mục đích quân sự, nghệ thuật
“Ẩn giấu tin số” còn để phục vụ các mục đích tích cực như bảo vệ bản quyền các
“tài liệu số”, ví dụ như “tranh ảnh số”, “bản nhạc số”, công trình khoa học hay bài văn bài thơ đã được “số hóa”, …
Các tài liệu trên được “giấu” một định danh ghi bản quyền, phương pháp
“Ẩn giấu tin số” này được gọi là “Thuỷ ấn số” (Watermaking)
Trang 2Sự kiện ngày 11/09/2001 khiến cho các liên lạc bí mật qua mạng máy tính được quan tâm hơn nữa Người ta đồn rằng Osma Bin Laden và quân khủng bố đã liên lạc với nhau bằng cách giấu thông tin vào ảnh trên Internet
Năm 1990, các kết quả nghiên cứu đầu tiên về “giấu tin” với sự trợ giúp của máy tính, đã đặt nền móng cho sự phát triển phương pháp bí mật: “Ẩn giấu tin số”
Sự phát triển của Internet kéo theo sự phát triển của nhiều lĩnh vực khác Internet đã tạo ra môi trường kinh doanh mới: Kinh doanh trên mạng máy tính
Ví dụ thương mại điện tử
Kinh doanh trên mạng mang lại rất nhiều lợi ích, tuy nhiên cũng phát sinh những mặt tiêu cực như vi phạm bản quyền, giả mạo thương hiệu, … Trước tình thế
đó, các phương pháp “Ẩn giấu tin số” đã khẳng định được chỗ đứng của mình Chúng được áp dụng để “ghi dấu ấn” vào “sản phẩm số” các thông tin như chữ ký, nhãn thương hiệu, … để minh chứng cho sự hợp pháp của “sản phẩm số” đó, góp phần bảo vệ bản quyền “sản phẩm số”
Để phân biệt với “Ẩn giấu tin” theo nghĩa thông thường nhằm “che giấu” thông tin mật, ta tạm gọi loại “Ẩn giấu tin” để bảo vệ bản quyền “sản phẩm số”
là “Đánh giấu tài liệu số”, “Đánh giấu sản phẩm số” hay “Ẩn tin”
Trang 35.1.2 Các thành phần của Hệ “Ẩn - Giấu tin”.
Các thành phần chính của một hệ “Ẩn - Giấu tin” trong ảnh gồm có:
+ Mẩu tin mật: có thể là văn bản, hình ảnh hay tệp tin tùy ý (audio, video, ),
vì trong quá trình giấu tin, chúng đều được chuyển thành chuỗi các bit
+ Môi trường sẽ chứa tin mật: Thường là ảnh, nên gọi là Ảnh phủ hay Ẩnh gốc + Khoá K: khoá viết mật, tham gia vào quá trình giấu tin để tăng tính bảo mật
+ Môi trường đã chứa tin mật: Thường là ảnh, nên gọi là Ảnh mang, là ảnh
sau khi đã nhúng tin mật vào
Hình 1: Sơ đồ “Ẩn - giấu tin” trong ảnh
Trang 45.1.3 Ẩn - Giấu tin và Mật mã.
Có thể xem “Ẩn - giấu tin” là một nhánh của ngành mật mã với mục tiêu là
nghiên cứu các phương pháp “che giấu “ thông tin mật.
Hình 2: Các lĩnh vực nghiên cứu của Mật mã học
“Ẩn - giấu tin” và “Mã hóa” tuy cùng có mục đính là để đối phương “khó” phát hiện ra tin cần giấu, tuy nhiên nó khác với mã hóa ở chỗ:
+ “Mã hóa” là giấu đi “ý nghĩa” của thông tin
+ “Ẩn - Giấu tin” là giấu đi “sự hiện diện” của thông tin
Về bản chất, “Ẩn - giấu tin” gần với “Nén tin” hơn.
Trang 55.1.4 Phân loại “Ẩn - Giấu tin”
Trong lĩnh vực bảo mật thông tin, “Ẩn - Giấu tin” bao gồm các vấn đề sau:
Hình 3: Các vấn đề nghiên cứu trong “Ẩn - giấu tin”
1) Giấu tin (Steganography) là kỹ thuật nhúng “mẩu tin mật” (Mẩu tin cần giữ bí mật) vào “môi trường giấu tin” (môi trường phủ),
+ “Giấu tin có xử lý“ (Intrinsic Steganography) là một dạng “Giấu tin “,
trong đó để tăng bảo mật, có thể phải dùng khoá viết mật Để giải mã, người ta cũng phải có khoá viết mật đó
Khoá viết mật không phải dùng để mã hóa mẩu tin, nó có thể là khoá dùng
để sinh ra “hàm băm”, phục vụ “rải tin mật” vào môi trường giấu tin
+ “Giấu tin đơn thuần“ (Pure Steganography) là một dạng “Giấu tin “,
trong đó không dùng khoá viết mật để giấu tin, tức là chỉ giấu tin đơn thuần vào môi trường giấu tin
2) “Thuỷ ấn số” (Watermarking) là kỹ thuật nhúng “dấu ấn số” (tin giấu)vào một “tài liệu số” (“sản phẩm số”), nhằm chứng thực (đánh dấu, xác thực)
nguồn gốc hay chủ sở hữu của “tài liệu số” này
Ví dụ “dấu ấn số” dùng để xác nhận bản quyền một “tác phẩm.số”
Tạm gọi “Thuỷ ấn số” là “Ẩn tin”, để phân biệt với “Giấu tin”
+ “Dấu vân tay” (Fingerprinting) là một dạng “Thuỷ ấn số”, trong đó “dấu ấn”
(tin giấu) là một định danh duy nhất (ví dụ định danh người dùng)
Trang 63) So sánh “Ẩn tin” (Watermarking) và “Giấu tin” (Steganography).
Về mặt hình thức, “Ẩn tin” giống “Giấu tin” ở chỗ đều tìm cách nhúng thông tin vào một môi trường
Về mặt nội dung, “Ẩn tin” (thuỷ ấn) có một số điểm khác so với “Giấu tin”:
* Về mục tiêu:
+ Mục tiêu của “Ẩn tin” là nhúng “mẩu tin” thường là biểu tượng, chữ ký, dấu nhỏ
đặc trưng vào môi trường phủ, nhằm phục vụ việc chứng thực bản quyền tài liệu
Như vậy “mẩu tin” cần nhúng (để làm biểu tượng xác thực) không nhất thiết phải là
bí mật, nhiều khi cần lộ ra cho mọi người biết để mà “dè chừng” !
+ “Ẩn tin” có thể vô hình hoặc hữu trên vật mang tin
“Ẩn tin” tìm cách biến “tin giấu ” thành một thuộc tính của vật mang tin
Mục đích của “Ẩn tin” là bảo vệ môi trường giấu tin
+ Mục tiêu của “Giấu tin” , là nhúng “mẩu tin” thường là bí mật, vào môi trường
phủ, sau đó có thể lấy ra (tách lại) tin mật từ môi trường phủ
+“Giấu tin” không cho phép nhìn thấy (bằng mắt) “tin giấu” trên vật mang tin
Mục đích của “Giấu tin” là bảo vệ tin được giấu
* Về đánh giá hiệu quả: Theo tiêu chí hay chỉ tiêu nào ?
+ Chỉ tiêu quan trọng nhất của “Ẩn tin” là tính bền vững của tin được giấu
+ Chỉ tiêu quan trọng nhất của “Giấu tin” là dung lượng của tin được giấu.
Trang 75.1.5 Các tính chất của “Ẩn - Giấu tin” trong Ảnh
Hiện nay có nhiều phương pháp “Ẩn - Giấu tin” trong ảnh được nghiên cứu
Để đánh giá chất lượng của một phương pháp “Ẩn - Giấu tin”, người ta dựa vào một số tiêu chí sau:
1) Bảo đảm Tính “vô hình”.
“Ẩn - Giấu tin” trong ảnh sẽ làm biến đổi ảnh mang tin Tính “vô hình” thể hiện mức độ biến đổi ảnh mang Phương pháp “Ẩn - Giấu tin” tốt, sẽ làm cho thông tin mật trở nên “vô hình” trên ảnh mang, người dùng khó thể nhận ra trong ảnh có ẩn chứa thông tin mật
Chú ý rằng với “Ẩn tin” thì trong thực tế không phải khi nào cũng cố gắng
để đạt được tính vô hình cao nhất, ví dụ trong truyền hình, người ta gắn hình ảnh
mờ gọi là “thuỷ ấn” để bảo vệ bản quyền bản tin.
2) Khả năng chống giả mạo.
Mục đích của “Giấu tin” là để truyền đi thông tin mật Nếu không thể do thám tin mật, thì kẻ địch cũng cố tìm cách làm sai lạc tin mật, làm giả mạo tin mật
để gây bất lợi cho đối phương Phương pháp “Giấu tin” tốt phải đảm bảo tin mật không bị tấn công một cách chủ động trên cơ sở những hiểu biết về thuật toán nhúng tin và có ảnh mang (nhưng không biết khoá “Giấu tin”)
Đối với “Ẩn tin” thì khả năng chống giả mạo là yêu cầu vô cùng quan trọng,
vì có như vậy mới bảo vệ được bản quyền, minh chứng tính pháp lý của sản phẩm
3) Dung lượng giấu.
Dung lượng giấu được tính bằng tỷ lệ của lượng tin cần giấu so với kích thước ảnh mang tin Các phương pháp đều cố gắng giấu được nhiều tin trong ảnh nhưng vẫn giữ được bí mật Tuy nhiên trong thực tế người ta luôn phải cân nhắc giữa dung lượng và các chỉ tiêu khác như tính vô hình, tính bền vững (ổn định)
Trang 8Hình 4: Cân nhắc giữa chất lượng, dung lượng và tính bền vững
“Độ phức tạp” của thuật toán “Ẩn - giấu tin” và “Giải tin” (tách tin) cũng
là một chỉ tiêu quan trọng để đánh giá một phương pháp “Ẩn - giấu tin” trong ảnh Chỉ tiêu này cho chúng ta biết “tài nguyên” (thời gian và bộ nhớ) tốn bao nhiêu dùng cho một phương pháp “Ẩn - giấu tin”
Với chủ nhân “Ẩn - giấu tin” thì thời gian thực hiện phải “nhanh”, nhưng với kẻ thám tin thì “Tách tin” phải là bài toán “khó” Ví dụ bài toán “Tách tin” từ
“Thuỷ ấn” để đánh dấu bản quyền cần phải là bài toán “khó”, thì mới chịu được sự tấn công của tin tặc nhằm phá huỷ “Thuỷ ấn”
5.1.6 Vấn đề tấn công Hệ thống “Ẩn - Giấu tin”
Trang 9Tấn công một hệ “Ẩn - Giấu tin” được gọi là “Steganalysis” Đó là các phương pháp để phát hiện, phá huỷ, trích rút hay sửa đổi tin mật Nghiên cứu các biện pháp của kẻ tấn công, sẽ hữu ích cho việc thiết kế một hệ “Ẩn - Giấu tin” tốt
Việc tấn công được coi là thành công hay không tuỳ theo ứng dụng Đối với liên lạc bí mật, việc phát hiện và chứng minh được một ảnh có chứa tin mật được coi là thành công Đối với bảo vệ bản quyền hay chống giả mạo, thì việc tấn công được coi là thành công nếu không chỉ phát hiện ra “thuỷ ấn”, mà còn phá huỷ hay sửa đổi nó, nhưng không làm giảm chất lượng của ảnh mang
Có điểm giống nhau giữa “mã hoá” và “giấu tin” là người ta giả thiết thám tin biết trước phương pháp mã hoá hay giấu tin Như vậy việc thám tin theo một phương pháp cụ thể (mã hoá hay giấu tin) phụ thuộc vào “khoá”, chứ không phải phụ thuộc vào độ phức tạp của phương pháp này (Nguyên lý Kerkhoff: [4])
Tương tự như thám mã trong mã hóa, các kỹ thuật thám tin trong giấu tin cũng được chia thành làm năm nhóm:
• Biết ảnh mang tin
• Biết ảnh gốc và ảnh mang tin
• Biết có tin giấu trong ảnh mang tin
• Biết thuật toán giấu tin
• Biết thuật toán trích (tách) tin mật
Thám tin phát hiện “thuỷ ấn” hay tin mật có thể thực hiện bằng cách phân tích vùng nhiễu quá mức trên ảnh Tin tặc kinh nghiệm có thể nhận thấy các vùng nhiễu này bằng mắt thường Nếu biết được ảnh gốc thì việc thám tin còn đơn giản hơn nữa, vì khi đó có thể so sánh ảnh mang tin với ảnh gốc để tách nhiễu
Nếu thám tin biết được có tin ẩn giấu, người ta có thể tạo ra các cặp ảnh gốc
và ảnh mang để phân tích và xét xem liệu ảnh đang tìm hiểu có mang dấu ấn của chữ ký hay tin mật không
Việc phá tin mật có thể đơn giản hay phức tạp tuỳ thuộc vào phương pháp
“Ẩn - giấu tin” Đối với phương pháp nhúng tin vào “bit có trọng số thấp”, thì việc
Trang 10phá tin mật chỉ đơn thuần là thay đổi lại các bit này, như vậy ảnh mang tin trở về trạng thái ban đầu
Phá tin mật đối với các phương pháp “Ẩn tin”, mà vẫn giữ nguyên ảnh mang
là một việc khó Vì mục tiêu của “thuỷ ấn” là phải đạt được độ bền vững sao cho nếu có ai đó phá “thuỷ ấn”, thì cũng làm hỏng ngay cả ảnh gốc
Thông thường người ta tìm cách áp dụng nhiều phép biến đổi ảnh với hy
vọng rằng: tuy từng phép biến đổi không có tác dụng, nhưng tổ hợp của chúng
có thể giúp cho việc phá huỷ “thuỷ ấn” mà vẫn giữ được ảnh mang
Nếu biết tin mật và ảnh mang tin, thì cơ hội phá tin mật sẽ cao hơn
Nếu biết thuật toán “Ẩn - giấu tin”, kẻ thám tin có thể dùng nó thử “Ẩn - giấu tin” lên nhiều ảnh khác nhau, qua đó dùng phương pháp thống kê để tìm ra các quy luật gây nhiễu, cũng như dùng nó để kiểm thử xem một ảnh có mang tin mật hay không
Việc thám tin khó nhất đó là sửa đổi tin trong ảnh mang và suy ra được
“khoá viết mật“ (Stego-key) dùng để nhúng tin Nếu biết khoá viết mật, kẻ thám tin
có thể làm giả các tin khác giống như nó được gửi đi từ chính chủ
Phương pháp thám tin để biết thuật toán “Ẩn - giấu tin” và thuật toán “tách tin” hay được dùng trong các hệ thám tin Nhiều kỹ thuật thám tin trong “Ẩn - giấu tin” được chuyển sang từ kỹ thuật thám mã (trong mã hóa)
Trang 115.1.7 Các ứng dụng của “Ẩn - Giấu tin”
5.1.7 1 Liên lạc bí mật.
Bản mã của tin mật có thể gây ra sự chú ý của tin tặc, nhưng tin mật được giấu vào trong môi trường nào đó, rồi gửi đi trên mạng máy tính, thì ít gây ra sự chú ý của tin tặc Đó là một ứng dụng của “Giấu tin”
Hiện nay người ta phối hợp đồng thời nhiều giải pháp để truyền tin mật trên mạng công khai: Đầu tiên tin mật được nén tin, sau đó mã hóa bản tin nén, cuối cùng giấu bản mã vào trong môi trường nào đó
2) “Điểm chỉ số”: Điểm chỉ số tương tự như số Seri của phần mềm [6]
“Điểm chỉ số” dùng để chuyển thông tin về người nhận “sản phẩm số”
(không phải chủ sở hữu), nhằm chứng thực bản sao duy nhất của sản phẩm
3) “Gán nhãn”:
Tiêu đề, chú giải, nhãn thời gian … có thể được “nhúng” vào “sản phẩm số”, Gắn tên người lên ảnh của họ, gắn tên địa phương lên bản đồ Khi đó nếu sao chép ảnh thì cũng sẽ sao chép cả thông tin đã “nhúng” vào nó Chủ sở hữu của sản phẩm, người có “khoá viết mật” (Stego-Key) có thể tách ra và xem các chú giải
Trong một cơ sở dữ liệu ảnh, người ta có thể “nhúng” các từ khoá, để các
động cơ tìm kiếm có thể tìm nhanh một bức ảnh nào đó Nếu là một khung ảnh cho
cả một đoạn phim, người ta có thể gán cả thời điểm diễn ra sự kiện (timing) để đồng
bộ hình ảnh với âm thanh Người ta cũng có thể gán số lần mà hình ảnh được xem,
để tính tiền thanh toán
Trang 125.1.8 Một số chương trình “Ẩn - Giấu tin”
1) Chương trình Hide and Seek v4.1
Chương trình này của Colin Maroney, chạy dưới hệ điều hành DOS, để giấu tin vào các ảnh GIF Nó thực hiện giấu tin vào ảnh mang một cách ngẫu nhiên,
do đó nếu lượng tin cần giấu nhỏ thì tin sẽ được rải đều khắp ảnh mang Nếu lượng tin nhiều, thì các vùng thay đổi dầy hơn, vì vậy dễ bị phát hiện
2) Chương trình StegoDos
Chương trình chạy dưới hệ điều hành DOS, sử dụng ảnh mang 320 x 200 điểm ảnh và 256 mầu
3) Chương trình White Noise Storm
Chương trình này của Ray (Arsen) Arachelian, dễ dùng hơn và nhúng được nhiều tin hơn các chương trình trước Ảnh mang không cần có kích thước cố định, tính vô hình cao
4) Chương trình S-Tools for Windows
Một chương trình giấu ảnh tốt Có thể giấu tin trong ảnh BMP, GIF, tệp âm thanh WAV, các vùng chưa dùng đến của đĩa mềm Giao diện đồ hoạ kéo thả
Để giấu tin chỉ cần kéo biểu tượng tệp tin cần giấu và thả lên ảnh
Trang 13Chương 2 TỔNG QUAN VỀ ẢNH SỐ
Đối tượng của giấu tin trong ảnh trước hết là ảnh số và những phép biến đổi liên quan đến ảnh số Các phương pháp giấu tin trong ảnh tìm cách khai thác triệt để những nơi có thể gài tin vào ảnh số Để có một bức ảnh, phải trải qua nhiều công đoạn Trong tất cả các khâu: tạo ảnh, biểu diễn ảnh, biến đổi ảnh đều có những kẽ
hở để có thể khai thác phục vụ giấu tin Một hệ thống giấu tin hoàn chỉnh giống với một hệ thống xử lý ảnh ở chỗ cả hai đều dựa trên cấu trúc, các phép biến đổi và các thông tin khác về ảnh Ngoài ra hệ thống giấu tin còn có thêm những tính chất của
2.1 Mầu sắc và các mô hình mầu
Một số phương pháp giấu tin trong ảnh nhằm tới việc là đánh lừa thị giác con người Mầu của các đối tượng phụ thuộc vào bản thân đổi tượng, vào nguồn ánh sáng và mầu của môi trường xung quanh và vào sự cảm nhận của thị giác
Mắt người cảm nhận ánh sáng mầu tốt hơn đen trắng Về mặt vật lý, ánh sáng được nghiên cứu theo bước sóng và cường độ Trong lĩnh vực đồ hoạ và xử lý ảnh, người ta nghiên cứu mầu theo các yếu tố [7]:
1 Hue: sắc mầu để phân biệt giữa các mầu, ví dụ mầu đỏ, xanh, nâu
2 Saturation: độ bão hoà để đo sự pha trộn với ánh sáng trắng
3 Lightness: độ sáng thể hiện qua cường độ ánh sáng
Để biểu diễn mầu trong máy tính hay các thiết bị phần cứng khác người ta dùng mô hình mầu Mô hình mầu như một hệ toạ độ không gian, trong đó mỗi điểm trong hệ toạ độ ứng với một mầu Một mầu khi biểu diễn thường là tổ hợp của ban mầu đỏ (r), lục (g) và lam (b)
Trang 14Sở dĩ người ta chọn ba mầu chứ không phải hai hay bốn, và chọn ba mầu này chứ không phải mầu khác vì dựa vào độ cảm nhận của mắt người Mắt người cảm nhận mầu sắc thông qua các tế bào võng mô hình nón Ba mầu đỏ, lục, lam là ba mầu mà mắt người cảm nhận rõ nhất, có độ dài bước sóng lần lượt là 560, 530, 430
nm
Hình 1: Độ dài bước sóng của ba mầu đỏ, lục và lam
Một số hệ mầu quan trọng được trình bày dưới đây
2.1.1 Mô hình mầu RGB
Hệ mầu này được sử dụng cho màn hình và đồ hoạ mành sử dụng hệ toạ độ đề-các Mỗi mầu trong khối được xác định theo ba thành phần mầu RGB Mầu trắng có thành phần mầu là (1,1,1), mầu đỏ là (1,0,0),
Không gian RGB là chuẩn công nhiệp cho các thao tác đồ hoạ máy tính Các thao tác mầu sắc có thể được tính toán trên các không gian mầu khác nhau nhưng cuối cùng phải chuyển về RGB để biểu diễn trên màn hình Ngược lại có thể chuyển đổi qua lại giữa RGB với các không gian mầu khác
Trang 15Hình 2: Mô hình mầu RGB
2.1.2 Mô hình mầu CMY
C là viết tắt của Cyan (lục lơ), M là Magenta (đỏ tươi) và Y cho Yellow (vàng) ba mầu này là phần bù tương xứng của các mầu đỏ, lục và lam Các mầu của hệ mầu CMY được xác định bằng cách loại bỏ mầu nào đó từ ánh sáng trắng chứ không phải thêm vào các mầu tối
Hình 3: Mô hình mầu CMY
Hệ mầu CMY hay được dùng cho các thiết bị in
mầu Để chuyển một mầu từ hệ CMY sang RGB
hay ngược lại ta sử dụng công thức:
M C
111
2.1.3 Mô hình mầu HSV
HSV là viết tắt của Hue, Saturation, Value Người ta còn gọi đây là mô hình mầu HSB, với B là Brightness (độ sáng) Thực chất đây cũng chỉ là một biến thể của mô hình RGB Thường dùng mô hình này để định hướng cho người sử dụng
Trang 16• Ảnh mành (bitmap): lưu bản đồ điểm ảnh Các ảnh có cấu trúc này như Microsoft Windows BMP, PCX, TIFF, TGA
• Ảnh véc tơ là dạng ảnh lưu công thức toán học biểu diễn các đối tượng (ví dụ văn bản, đường thẳng, đường đa giác) thay vì lưu các điểm ảnh Ảnh dạng này ví dụ như AutoCAD-DXF, Microsoft SYLK
Để có thể lưu được cả hai dạng ảnh trên một tệp, người ta đưa ra dạng tệp
ảnh Metafile, ví dụ WPG, Mac PICT, CGM Các phần mềm xử lý ảnh cao cấp đều
có thể xử lý cả hai loại ảnh trên cùng một tệp, ví dụ Corel Draw hay Photoshop
Trang 17• Footer
1 Header: Phần này lưu cấu trúc của ảnh dưới dạng nhị phân hay ASCII Ví dụ
Header của ảnh Windows Bitmap có những mục sau:
• Number of Lines per Image
• Number of Pixels per Line
• Number of Bits per Pixel
• Number of Color Planes
2 Bitmap Data: Dữ liệu ảnh, được lưu theo hai phương pháp:
• Dòng quét lần lượt từng điểm như hiển thị trên thiết bị (scan-line data)
• Mỗi mặt phẳng mầu riêng (planar data)
Theo cách lưu dòng quét lại có ba cách để cất một điểm ảnh
Trang 18Hình 5: ba cách lưu điểm ảnh theo phương pháp dòng quét
Cách b và c hay được dùng cho dữ liệu ảnh mã hoá, vì dễ đọc vào và lấy ra
1.Header: phần này không có kích thước cố định, thông tin tuỳ thuộc vào
lạo dữ liệu lưu trữ
2 Dữ liệu: dựa trên các phần tử/ đối tượng Ví dụ:
;
CIRCLE,40,100,100,BLUE;LINE,200,50,136,227,BLACK;RECT,80,65,25,78,RED;
Cuối tệp có đánh dấu EOF
Các đối tượng chứa thuộc tính như mầu, tô, Đây chính là những nơi lý tưởng để giấu dữ liệu
Trang 193 Footer: Chứa các thông tin ví dụ như số các đối tượng.
Các xâu văn bản trên hình ảnh cũng có thể là xâu ASCII (với các tham số như Font chữ, vị trí, mầu sắc) hay cũng có thể được lưu dưới dạng véc tơ (ví dụ qua các đường Splines)
Có thể chuyển đổi giữa hai dạng ảnh véc tơ và mành Trong đó nếu chuyển
từ ảnh véc tơ sang ảnh mành thì dễ hơn
Vì các ảnh sử dụng trên mạng chủ yếu là ảnh mành và đây là đối tượng nghiên cứu chính của hầu hết các phương pháp giấu tin trong ảnh nên luận văn đi sâu hơn về ảnh này
2.3 Ảnh Bitmap
Đối tượng ảnh đầu tiên mà các chương trình giấu tin nhắm tới là ảnh Bitmap
Vì ảnh này phổ biến trên mạng Internet, dung lượng giấu tin cao và các phương pháp giấu tin đơn giản
2.3.1 Tổng quan
Các ảnh số thường được lưu dưới dạng tệp ảnh 24-bit hay 8-bit cho một điểm
ảnh Ảnh 24-bit còn được gọi là ảnh true colour cung cấp nhiều chỗ giấu thông tin
hơn; tuy nhiên ảnh 24-bit lớn, ví dụ một ảnh 24-bit cỡ 1024 x 768 pixels có kích thước trên 2 MB, nên dễ bị gây chú ý khi tải qua mạng Thường những ảnh đó cần được nén, nhưng nén ảnh có thể làm mất tin mật
Một phương án khác là có thể dùng ảnh 8-bit mầu để giấu thông tin Trong các ảnh 8-bit (như ảnh GIF), mỗi điểm ảnh được thể hiện bằng một byte Mỗi điểm
đơn thuần trỏ đến một bảng chỉ mục các mầu (palette), với 256 khả năng mầu
Điểm ảnh chứa trị nằm giữa 0 và 255 Các phần mềm chỉ đơn thuần vẽ mầu cần biểu thị lên màn hình tại vị trí lựa chọn
Nếu dùng một ảnh 8-bit làm ảnh phủ, rất nhiều chuyên gia về giấu tin trong ảnh khuyên nên dùng ảnh 256 cấp xám vì bảng mầu của ảnh xám thay đổi đồng đều giữa làm tăng khả năng giấu tin
Trang 20Giấu tin trong ảnh 8-bit cần xem xét cả ảnh lẫn bảng mầu Một ảnh có khối lớn các mầu đồng nhất kho giấu hơn vì dễ bị nhận biết Sau khi chọn ảnh phủ, bước tiếp theo là chọn phương pháp mã hoá ảnh.
2.3.2 Bảng mầu
Bảng mầu là một mảng 1 chiều chứa chỉ mục các mầu của ảnh Sau đó mỗi điểm ảnh chỉ việc trỏ đến một mầu chỉ mục nào đó trên bảng mầu
Hình 6: Bảng mầu và các điểm ảnh dùng bảng mầu
Trong bảng mầu, 1 mầu ứng với một bộ ba hay bộ bốn
Kích thước của bảng mầu được tính từ độ sâu điểm ảnh (pixel depth):
4-bit pixel: 3 byte/mầu * 16 (= 24) mầu = 48 byte
8-bit pixel: 3 byte/mầu * 256 mầu = 768 byte
15-bit pixel: 3 byte/mầu * 32768 mầu = 96 kbyte
16-bit pixel: 3 byte/mầu * 65536 mầu = 192 kbyte
Một số loại ảnh giảm bớt số mầu trong bảng mầu, vì không phải tất cả các mầu được dùng trong ảnh (CGM, TGA)
Các giá trị điểm được cất trong 2 byte (16 bit):
16 bit = 2 byte = (8 bit, 8 bit) -> (5,6,5) = (R,G,B)
Có các cách bố trí:
Theo điểm ảnh (pixel-orientiert) (RGB) (RGB) (RGB) (RGB) (RGB)
Theo mặt phẳng mầu (plane-orientiert) (RRRRR GGGGG BBBBB)
Trang 21• Ảnh như một hàm toán học: để xử lý ảnh trong máy tính dùng các công cụ
toán học, người ta tìm cách biểu diễn ảnh như là một hàm rời rạc f(x,y) trong
đó x, y là toạ độ của điểm ảnh còn f là giá trị xám hoặc độ sáng của ảnh f nhận các giá trị rời rạc trong khoảng từ 0 đến fmax Trong ảnh 8 bit thì fmax =
28 = 256 Trong ảnh mầu người ta có thể mô tả mầu qua ba hàm biểu diễn các thành phần đỏ, lục và lam Ví dụ r(x,y); g(x,y); b(x,y)
Trang 22• Ảnh như một môi trường vật lý: Một ảnh f(x,y) cũng là một môi trường vật
lý nên có thể dùng áp dụng các phép biến đổi vật lý trên ảnh Ví dụ mức năng lượng của điểm ảnh, dải tần số của nhiễu ảnh, dải phổ,
• Mô tả ảnh như một mô hình thống kê: Các giá trị của điểm ảnh (mức xám,
độ sáng hay trị mầu) được coi như là biến ngẫu nghiên, do đó chúng ta có thể tính được phân bố xác suất của chúng Ví dụ người ta có thể dùng biểu đồ cột (histogram) để biểu diễn độ xám hay các trị mầu Trong xử lý ảnh người
ta có thể dùng biểu đồ cột để làm các việc như lọc nhiễu Còn trong giấu tin thì ta có thể qua đó mà biết đâu là vùng ảnh có thể giấu tin tốt nhất
Hình 8: Biểu đồ cột của một ảnh trong Paint Shop Pro 7
Chính các quan điểm khác nhau về ảnh đã làm nền tảng để có được những kỹ thuật khác giấu tin khác nhau
2.3.4 Một số loại ảnh mầu thông dụng
Các ảnh mầu phân biệt bởi cách biểu diễn và cách nén ảnh Nén ảnh là một giải pháp giảm kích thước các tệp ảnh lớn Có loại, nén bảo toàn dữ liệu và nén mất
dữ liệu Dù mục tiêu của cả hai cách là tiết kiệm không gian nhưng gây tác động khác nhau lên dữ liệu mật không nén được cất trong ảnh Nén mất dữ liệu như định dạng JPEG (Joint Photographic Experts Group) cho phép tỉ lệ nén cao, tuy nhiên không duy trì được sự vẹn toàn của ảnh Điều này ảnh hưởng xấu đến tin mật Thuật
Trang 23toán nén mất dữ liệu bỏ đi một số các điểm ảnh không cần thiết mà vẫn giữ được chất lượng ảnh ở mức độ chấp nhận được
Nén bảo toàn dữ liệu giữ nguyên ảnh gốc, do đó được yêu thích trong lĩnh vực giấu tin, tuy nhiên phương pháp nén này không cho tỉ lệ nén cao Đặc thù của nén không mất dữ liệu là ảnh GIF của Compuserve (Graphics Interchange Format)
và BMP của Microsoft (Bitmap)
Dưới đây là một số dạng ảnh phổ biến:
GIF (Graphics Interchange Format) được Compute đề xuất lần đầu vào năm
1990 Ảnh GIF sử dụng phương pháp nén trên nhóm điểm lặp lại Welch) Dạng ảnh này cho chất lượng cao
(Lempel-Ziv-Định dạng ảnh GIF:
• Chữ ký ảnh (GIF note)
• Bộ mô tả hiển thị (GIF header) dài 7 byte
• Bảng mầu tổng thể (Global Palette)
• Mô tả một đối tượng của ảnh (ảnh gif có thể chứa nhiều ảnh con, ví dụ gif động)
o Bộ mô tả ảnh con 1 (Header)
o Bảng mầu của ảnh con 1
o Dữ liệu ảnh
Trang 24Phần này lặp lại n lần nếu có n ảnh con
• Phần đuôi ảnh (GIF Terminator)
Hình 9: Cấu trúc ảnh Gif
3 Ảnh BMP
Ảnh Bitmap do Microsoft phát triển, do vậy còn được gọi là Microsoft Windows Bitmap (BMP, DIB, Windows BMP, Windows DIB, Compatible Bitmap) được lưu trữ độc lập với thiết bị hiển thị (DIB) Ảnh này được sử dụng rộng rãi trên Windows Có thể có 1-, 4-, 8-, 16-, 24-, hay 32-bit mầu Ảnh này thường sử dụng phương pháp mã hoá loạt dài RLE Kích thước tối đa là 32Kx32K và 2Gx2G pixel Ảnh bitmap không cho phép chứa nhiều ảnh trong một tệp
Cấu tạo của ảnh bitmap gồm các phần
1 Header
2 Palette
3 Bitmap Data
4 Footer
Trang 25Để đọc và xử lý ảnh Bitmap người ta cần nắm được các cấu trúc của ảnh được lưu trong phần Header Ví dụ Header của Microsoft Windows Bitmap Version 1.x có cấu trúc như sau:
• Number of Lines per Image
• Number of Pixels per Line
• Number of Bits per Pixel
• Number of Color Planes
Ảnh Bitmap Microsoft Windows 1.x có phần Header gồm 10-byte :
TYPEDEF struct _Win1xHeader
{
WORD Type; /* File type identifier (always 0) */
WORD Width; /* Width of the bitmap in pixels */
WORD Height; /* Height of the bitmap in scan lines */
WORD ByteWidth; /* Width of bitmap in bytes */
BYTE Planes; /* Number of color planes */
BYTE BitsPerPixel; /* Number of bits per pixel */
} WIN1XHEADER;
Dữ liệu ảnh Bitmap được ghi vào tệp theo 2 cách:
• Quét từng dòng theo trật tự điểm ảnh như chúng được hiển thị trên thiết bị
• Theo từng mặt phẳng mầu (plane)
Trang 264 Ảnh JPEG
JPEG File Interchange Format (JFIF, JFI, JPG, JPEG) cũng là ảnh Bitmap,
có mầu đến 24-bit Nén theo phương pháp JPEG Kích thước tối đa là 64Kx64K pixel Loại này cũng không cho phép chứa nhiều ảnh trong một tệp
2.4 Các phép biến đổi hình học
Các phương pháp giấu ảnh rất phong phú và đa dạng, ngoài việc giấu trực tiếp lên các điểm ảnh, người ta cũng có thể giấu vào một công đoạn nào đó trong quá trình biến đổi hình học một ảnh, ví dụ người ta có thể giấu tin vào các hệ số tịnh tiến hay vào véc tơ ma trận quay, biến đổi ảnh gốc theo véc tơ đó để được ảnh mang, gửi ảnh mang đến người nhận, người nhận so ảnh gốc và ảnh mang để có được phép biến đổi ảnh Sau đó người nhận trích lấy các ma trận biến đổi và được các hệ số cùng thông tin mật
Một lý do nữa khiến lĩnh vực Steganography cần nghiên cứu kỹ lưỡng các phép biến đổi ảnh đó là mục tiêu của giấu tin là phải bền vững chống lại các phép biến đổi, nắm được đặc điểm của các phương pháp biến đổi thì mới có thể tránh không giấu tin vào các vùng dữ liệu ảnh nhạy cảm với các biến đổi
2.4.1 Phép tịnh tiến
Trong phép tịnh tiến, mỗi điểm ảnh P(x,y) được dịch chuyển tới một toạ độ mới P'(x',y') [Error: Reference source not found] Ta có
x' = x + deltaxy' = y + deltayBiểu diễn dưới dạng ma trận:
10
011
'
'
y
x t
t y
x
y x
Hay P'=TP
2.4.2 Phép quay
Trang 27Các điểm ảnh được quay một góc θ (quy ước dương là ngược chiều kim đồng hồ) Từ điểm P(x,y) nhận được P'(x',y') được tính như sau [Error: Referencesource not found]:
0cossin
0sincos
x
θθ
θθ
Hay P' = Rθ P
2.4.3 Phép co giãn với gốc
Co giãn là phóng to hay thu nhỏ ảnh Giả sử hệ số co giãn theo trục x là sx, theo trục y là sy Khi đó từ P(x,y) tính ra P'(x',y') như sau [Error: Reference sourcenot found]:
00
001
'
'
y
x s
s y
x
y x
Hay P' = Rθ P
2.4.4 Phép đối xứng
Nếu đổi xứng qua trục x thì x' = x và y' = -y; còn lấy đối xứng qua trục y thì x' = -x và y' = y [Error: Reference source not found]
Biểu diễn dưới dạng ma trận
Lấy đối xứng qua trục x
010
0011
'
'
y
x y
010
0011
'
'
y
x y
x
Trang 28Hay P' = Mx P Hay P' = My P
2.4.5 Các phép biến đổi và giấu tin
Trong các phép biến đổi trên, các ma trận hệ số là những điểm có thể gài tin mật vào đó Ví dụ có thể quay ảnh đi một góc rất nhỏ và gài các bit tin vào các hệ
Các phép xử lý ảnh như tích chập, lọc nhiễu, tạo hiệu ứng nghệ thuật cũng là đối tượng nghiên cứu của lĩnh vực giấu tin trong ảnh Ví dụ để kiểm thử tính bền vững của các ứng dụng tạo thuỷ ấn, người ta thực hiện các phép lọc lần lượt với các
bộ lọc Mean Filter, Gaussian Filter, Median Filter
2.6 Nén ảnh
2.6.1 Khái niệm
Nén ảnh thực chất là giảm thông tin dư thừa với mục tiêu là dữ liệu thu được sau khi nén nhỏ hơn dữ liệu gốc rất nhiều, thường là 1:10 Một số phương pháp nén mới cho hiệu quả cao hơn nữa Nén dữ liệu thường dùng cách mã hoá ảnh gốc, nên đôi khi các phương pháp nén cũng là các phương pháp mã hoá
Tham số để đánh giá nén đó là tỷ lệ nén tính bằng % so với dữ liệu gốc Ngoài tham số này đôi khi còn có các tham số khác để đánh giá nén, ví dụ như chất lượng ảnh, độ phức tạp tính toán,
Nén ảnh thực chất cũng là xử lý ảnh và sẽ tác động lên dữ liệu ảnh đồng thời lên cả những nơi giấu tin Trong nén ảnh người ta xử dụng một số khái niệm:
Trang 29• Nén vật lý (physical compression): làm giảm số bít
• Nén lôgíc (logical compression): thay thế một chuối ký tự bằng các chuỗi ngắn hơn
• Nén đối xứng (symmetric compression): dùng cùng một thuật toán cho nén
• Sự lặp lại của các ký tự: trong ảnh mầu các bit được lặp lại một số lần Kỹ thuật nén tận dụng việc này để thay vì lưu chuỗi bit thì chỉ cần lưu số lần lặp
và ký hiệu bit đó Mã hoá kiểu này là mã loạt dài
• Sử dụng tần suất: có các dẫy ký tự xuất hiện với tần số tương đối cao có thể
mã hoá bẳng ít bít hơn Đây là cơ sở của thuật toán LZW (Lempel - Ziv - Welch)
2.6.2 Phương pháp mã loạt dài
Trang 30Phương pháp này lúc đầu được phát triển cho các ảnh đen trắng Bản chất của nó là tìm ra các chuỗi bit lặp lại - các loạt dài (Run Length) Các loạt dài nầy sẽ được thay thế bằng chuỗi mới gồm hai thông tin: (bit, số lần lặp).
Ví dụ trong khối ảnh bên, chúng ta sẽ có dãy số:(1,18), (7,4), (1,4), (7,4), Nén kiểu này sẽ mang lại hiệu quả cao khi mà ảnh có nhiều vùng mầu đồng nhất
Nén mã hoá loạt dài thuộc nhóm phương pháp nén không mất dữ liệu Các cải tiến của phương pháp này là nó thay hướng tìm kiếm ví dụ theo trục x, trục y hay chữ chi Các ảnh sử dụng phương pháp nén này có TIFF, BMP, PCX
Hình 10: Tìm loạt dài theo các hướng khác nhau
2.6.3 Nén theo thuật toán Huffman
Trang 31Đây là phương pháp dựa trên mô hình thống kê Người ta tính tần suất xuất hiện của các ký tự (duyệt tuần tự tệp)
Tên của thuật toán nén này là được đặt theo tên của người tìm ra nó, David Huffman, nguyên giáo sư tại MIT
Thuật toán nén Huffman là một thuật toán nén bảo toàn dữ liệu thường dùng cho nén tệp văn bản
Thuật toán nén Huffman thuộc về các thuật toán với độ dài từ mã hoá biến đổi Nghĩa là mỗi ký tự lặp tại được thay bằng một chuỗi bít có độ dài khác nhau Các ký tự càng xuất hiện nhiều thì mã càng ngắn
Thuật toán này làm việc như sau:
Ví dụ có xâu văn bản:
ACDABA
Xâu trên có 6 ký tự nếu lưu sẽ chiếm 48 bit Qua phương pháp mã hoá Huffman các ký tự xuất hiện nhiều nhất được tìm Trong ví dụ trên chữ 'A' xuất hiện nhiều nhất, 3 lần Một cây được xây dựng trong đó ký tự đó được thay bằng chuỗi bit gắn hơn Trong trường hợp cụ thể này thuật toán sẽ dùng bảng sau:
Ví dụ một xâu có 35 ký tự, dưới đây là bảng tần xuất xuất hiện của các ký tự
Bắt đầu bằng các nút xuất hiện ít
nhất 'D' và 'E', xây dựng cây có gốc là
Trang 32Lặp lại bước trên, lúc này ta có 'B' và 'C', nút gốc là 12 Chú ý là sau mỗi bước số nút còn lại giảm đi 1.
Lặp lại với hai nút "yếu" nhất
chúng ta có nút 12 và 9 tạo nút cha là
21 Chú ý đây không phải là nút lá
Cuối cùng kết hợp hai nút còn
lại (chính là hai gốc cây) ta được một
cây Huffman Trọng số của nút gốc luôn bằng số ký tự
Sau đó người ta dùng cây để mã hoá các ký tự bằng cách bắt đầu từ gốc, thêm '0' mỗi lần sang thăm con trái, thêm '1' mỗi lần sang phải Kết quả ta thu được bảng mã hoá cho mỗi ký tự như sau:
Symbol Bit Code
Trang 33• Dùng bảng mã Huffman tự thích nghi để thay mã theo phân bố xác suất của các ký tự.
• Các thuật toán Huffman mở rộng sẽ mã hoá 1 nhóm thay vì một ký tự (nhóm bit trên ảnh)
Trong nén ảnh, thuật toán này được dùng nén JPEG và MPEG
2.6.4 Cây tứ phân
Để áp dụng nén trên các ảnh có nhiều mảng mầu lớn, người ta dùng cấu trúc cây tứ phân để lưu ảnh Thuật toán xây dựng cây tứ phân là thuật toán đệ quy
Hình 11: Biểu diễn ảnh dưới dạng cây tứ phân
Hình 12: Ví dụ về cây tứ phân của một khối ảnh
Trang 34Ảnh được chia dần thành các khối thô, mỗi nút sẽ lưu giá trị trung bình của khối đó Các nút lá sẽ chứa giá trị mầu/ xám thực sự của điểm ảnh Sau khi đã xây dựng cây tứ phân biểu diễn ảnh, người ta có thể nén mất dữ liệu bằng cách bỏ bớt các lớp dưới (lớp lá) Coi giá trị mầu của lớp lá bằng với lớp trên nó.
2.6.5 Nén JPEG
Ảnh được biểu diễn trong miền tần số thay vì miền không gian [8] Để làm điều đó ảnh sẽ qua quá trình biến đổi từ miền không gian sang miền tần số dùng phép biến đổi Cosin Phép biến đổi Cosin tương tự như phép biến đổi Fourier, chỉ khác ở một số điểm:
• Biến đổi Cosin chỉ làm việc với số thực
• Có thể tính được từ biến đổi Fourier
• Ảnh nén "gọn" hơn là biến đổi Fourier
Thuật toán nén JPEG do Joint Photographic Experts Group đưa ra vào năm
1993 Sau đó được dùng làm thuật toán nén chuẩn Thực tế có JPEG mất dữ liệu và không mất dữ liệu Thuật toán này gồm nhiều thuật toán con được thực hiện tuần tự Sau khi biến đổi Cosin, người ta chỉ giữ lại những tần số "quan trọng" của ảnh
Các thuật toán con của thuật toán nén JPEG gồm:
1 Biến đổi mô hình mầu: từ mô hình RGB chuyển sang một mô hình mầu thể hiện độ sáng
2 Tính toán các cấu tử DCT
3 Lượng tử hoá các giá trị mới nhận được
4 Mã hoá Huffman hay mã loạt dài
Trang 35Hình 13: Sơ đồ các bước nén tin JPEG
Chi tiết hơn về các thuật toán con được trình bày dưới đây:
1 Chuyển đổi mô hình mầu
Các giá trị mầu RGB sẽ được chuyển sang mô hình mầu HSV:
Vì mắt người nhạy cảm với độ sáng tối hơn với mầu sắc do đó:
• Giá trị Y được lưu với độ chính xác cao hơn là Cr và Cb
• Bước tiếp theo là tách các thành phần Y, Cr và Cb để xử lý tiếp
2 Biến đổi Cosin rời rạc
1 Trước hết ảnh được chia làm các khối 8x8 điểm ảnh
2 Các khối con đó được biến đổi Cosin rời rạc sang miền tần số Kết quả là từ khối điểm ảnh 8x8 người ta thu được ma trận 8x8 = 64 tần số trong dải tần
Trang 36Điểm ảnh Các cấu tử DCT
3 Lượng hoá
Các cấu tử DCT DCT sau khi lượng hoá
Vì mắt người phản ứng khác nhau với các tần số khác nhau Do đó các thành phần tần số quan trọng được lưu hoàn toàn Còn lại tất cả các số khác được nén theo độ "quan trọng" Ví dụ các tần số không quan trọng sẽ được làm tròn xuống tần số kế tiếp Khâu này chỉ làm việc với số nguyên
Hình 14: Các cấu tử DCT sắp xếp theo tần số
Trang 375.2 PHƯƠNG PHÁP GIẤU TIN TRONG ẢNH
5.2.1 Giấu tin trong ảnh đen trắng
Ảnh đen trắng số được thể hiện là một ma trận điểm ảnh gồm số 0 hay 1 Giấu tin trong ảnh đen trắng là việc khó khăn, vì dễ bị nhận biết bằng mắt thường
Số lượng tin giấu là hạn chế Tuy nhiên ảnh đen trắng ngày càng ít được dùng, do
đó việc nghiên cứu giấu tin trong loại ảnh này là ít thực tế
5.2.1.1 Thuật toán giấu tin sử dụng tính chẵn lẻ của tổng số bit 1.
1) Ý tưởng:
Chia ảnh mang thành các khối nhỏ Mỗi khối nhỏ sẽ được “gài” 1 bit của tin cần giấu.
Dựa vào tính “chẵn lẻ” của tổng số các bit 1 trong khối để qui định giấu bit 1 hay bit 0
Cụ thể là sau khi giấu, thì tổng số các bit 1 trong khối và bit cần giấu sẽ có cùng tính
“chẵn lẻ”
2) Thuật toán “giấu tin”:
Input: FF là File ảnh Bitmap đen trắng (sẽ mang tin giấu); F b là File tin cần giấu;
K là khóa bí mật, đó là kích thước của khối nhỏ sẽ được tách từ FF
Output: FF * là File ảnh đã được giấu File tin mật F b
Bước 1: Tiền xử lý.
+ Chuyển File tin cần giấu F b sang xâu bit nhị phân b
+ Đọc Header của ảnh, đọc bảng màu, để lấy thông tin về ảnh
Đọc phần dữ liệu ảnh vào mảng 2 chiều (ma trận) F
Bước 2: Giấu tin.
Input: F là ma trận ảnh mang; b là dãy bit bí mật cần giấu;
K là khóa bí mật, đó là kích thước của khối nhỏ (được xác định trước)
Output: F * là ma trận ảnh đã được giấu dãy bit bí mật b
Trang 38B1: Chia ảnh mang F thành các khối nhỏ với kích thước K.
B2: Theo một thứ tự xác định trước, xét từng khối nhỏ:
+ Nếu muốn giấu bit 1 vào một khối thì phải thỏa mãn điều kiện:
(L): Tổng số các bit 1 trong khối đó là số “lẻ” (tức là cùng tính “lẻ” của 1)
+ Nếu muốn giấu bit 1 vào một khối, nhưng không thỏa mãn điều kiện (L), thì trong khối đó chọn ngẫu nhiên một bit và thay đổi giá trị của nó (từ 0 đổi sang 1 hay từ 1 đổi sang 0) Bằng cách đó, khối mang tin sẽ thỏa mãn điều kiện (L)
+ Nếu muốn giấu bit 0 vào một khối thì phải thỏa mãn điều kiện:
(C): Tổng số các bit 1 trong khối đó là số “chẵn” (tức là cùng tính “chẵn” của 0) + Nếu muốn giấu bit 0 vào một khối, nhưng không thỏa mãn điều kiện (L), thì trong khối đó chọn ngẫu nhiên một bit và thay đổi giá trị của nó (từ 0 đổi sang 1 hay từ 1 đổi sang 0) Bằng cách đó, khối mang tin sẽ thỏa mãn điều kiện (C)
3) Thuật toán tách “tin giấu”:
Input: F * là ảnh đã được giấu dãy bit bí mật b
K là khóa bí mật, đó là kích thước của khối nhỏ (được xác định trước)
Output: F là ảnh mang (ảnh trước khi giấu tin mật) b là dãy bit bí mật cần giấu
B0: Đọc Header của ảnh, đọc bảng màu, để lấy thông tin về ảnh
Đọc phần dữ liệu ảnh vào mảng 2 chiều (ma trận) F
B1: Chia ảnh F mang thành các khối nhỏ với kích thước K
B2: Theo một thứ tự xác định trước, xét từng khối nhỏ:
Nếu tổng số bít 1 là “lẻ” thì ta thu được bit giấu là 1
Nếu tổng số bít 1 là “chẵn” thì ta thu được bit giấu là 0
Chú ý:
Độ an toàn của thuật toán không cao, vì chỉ cần biết khóa K, tức là kích
thước các khối giấu tin là có thể dễ dàng tách được tin mật
Trang 393) Ví dụ: Giấu bit 1 vào khối V sau:
Vì V có 6 bit 1, nên để giấu bit 1 vào V, ta phải chọn ngẫu nhiên 1 bit và đổi giá trị
Trang 405.2.1.2 Thuật toán giấu tin M.Y.Wu - J.H.Lee
1) Ý tưởng:
Thuật toán giấu tin kinh điển trong ảnh đen trắng của M.Y.Wu - J.H.Lee [9] với mục tiêu là giấu được càng nhiều tin vào trong ảnh càng tốt Ý tưởng chính của thuật toán là chia ảnh ra thành các khối bằng nhau, tìm khối nào ít bị phát hiện nhất, (tức là vùng thứ yếu trên ảnh), giấu 1 thông tin vào khối đó
2) Thuật toán:
Input: F là ảnh mang; b là bit bí mật cần giấu; K là khóa bí mật (Ma trận m x n)
Output: F là ảnh đã được giấu bit b bí mật
Ký hiệu SUM(F) là số các số 1 có trong ma trận F
B1: Chia F thành các khối nhỏ F i có kích thước m x n (như ma trận K)
B2: Với mỗi khối nhỏ F i , kiểm tra điều kiện: 0 < SUM(F i ^ K) < SUM(K) Nếu đúng thì sang B3, để giấu b vào F i ; Nếu không đúng thì giữ nguyên F i
B3: Giả sử bit cần giấu vào khối F i là b Thay đổi F i như sau:
if (SUM (F i ^ K) mod 2 = b ) then giữ nguyên F i
else if (SUM(F i ^ K) = 1 ) then
chọn ngẫu nhiên 1 bít thoả mãn [F i] j k = 0 & [K] j k = 1, lật [F i] j k thành 1;
else if (SUM( F i ^ K) = SUM(K) – 1) then
chọn ngẫu nhiên 1 bít thoả mãn [F i] j k = 1 & [K] j k = 1 lật [F i] j k thành 0;
else chọn ngẫu nhiên 1 bít thoả mãn [K] j k = 1,
lật bít [F i] j k từ 0 thành 1 hay từ 1 thành 0;
Chú ý
Nếu m và n đủ lớn thì sự thay đổi trên ảnh mang không dễ gì bị phát hiện ra bằng mặt thường Có một số hướng cải tiến cho các thuật toán trên nhằm mục đích giấu được nhiều bit hơn vào khối ảnh