Tải bản đầy đủ (.pdf) (70 trang)

Nghiên cứu xây dựng một phương pháp giấu tin đơn giản, an toàn

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.39 MB, 70 trang )



ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
ĐỖ MINH ĐỨC
NGHIÊN CỨU XÂY DỰNG MỘT PHƯƠNG PHÁP
GIẤU TIN ĐƠN GIẢN, AN TOÀN
LUẬN VĂN THẠC SĨ
HÀ NỘI - 2011



ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
ĐỖ MINH ĐỨC
NGHIÊN CỨU XÂY DỰNG MỘT PHƯƠNG PHÁP
GIẤU TIN ĐƠN GIẢN, AN TOÀN
Ngành: Công nghệ thông tin
Chuyên ngành: Hệ thống thông tin
Mã số : 60.48.05
LUẬN VĂN THẠC SĨ
NGƯỜI HƯỚNG DẪN KHOA HỌC: TS HỒ VĂN CANH
HÀ NỘI - 2011
1



MỤC LỤC
BẢNG KÝ HIỆU CHỮ CÁI VIẾT TẮT 4
Chương I. TỔNG QUAN VỀ ẨN GIẤU THÔNG TIN 6
1.1 MỘT SỐ KHÁI NIỆM CƠ BẢN VỀ GIẤU TIN 6


1.1.1 Định nghĩa 6
1.1.2 Phân loại các kỹ thuật giấu tin 7
1.1.3 Vài nét về lịch sử giấu tin 7
1.1.4 Mô hình kỹ thuật giấu tin và một số thuật ngữ cơ bản 8
1.2 MỘT SỐ ỨNG DỤNG PHỔ BIẾN CỦA KỸ THUẬT GIẤU TIN 10
1.2.1 Bảo vệ bản quyền tác giả (copyright protection) 10
1.2.2 Xác thực thông tin hay phát hiện xuyên tạc thông tin 10
1.2.3 Nhận dạng vân tay hay dán nhãn 10
1.2.4 Điều khiển sao chép 11
1.2.5 Giấu tin mật 11
1.3 GIẤU TIN TRONG DỮ LIỆU ĐA PHƯƠNG TIỆN 11
1.3.1 Giấu tin trong ảnh 11
1.3.2 Giấu tin trong audio 12
1.3.3 Giấu thông tin trong video 12
Chương 2. GIẤU TIN TRÊN ẢNH TĨNH 14
2. 1 GIẤU TIN TRONG ẢNH, NHỮNG ĐẶC TRƯNG VÀ TÍNH CHẤT 14
2.1.1 Phương tiện chứa có dữ liệu tri giác tĩnh 14
2.1.2 Kỹ thuật giấu phụ thuộc ảnh 14
2.1.3 Kỹ thuật giấu tin lợi dụng tính chất hệ thống thị giác của con người 14
2.1.4 Giấu thông tin trong ảnh tác động lên dữ liệu ảnh nhưng không thay đổi
kích thước ảnh 15
2.1.5 Đảm bảo yêu cầu chất lượng ảnh sau khi giấu thông tin 15
2.1.6 Thông tin trong ảnh sẽ bị biến đổi nếu thực hiện các phép biến đổi ảnh 15
2.1.7 Cần thiết ảnh gốc khi giải mã ảnh 15
2.2 GIẤU THÔNG TIN TRONG ẢNH ĐEN TRẮNG, ẢNH ĐA CẤP XÁM 16
2



2.3 KỸ THUẬT GIẤU TIN ĐƠN GIẢN 17

2.3.1 Ý tưởng 17
2.3.2 Thuật toán giấu tin: 17
2.3.3 Phân tích thuật toán 19
2.3.4 Áp dụng thuật toán trong ảnh đen trắng, ảnh màu và ảnh đa cấp xám. 20
2.4 KỸ THUẬT GIẤU TIN WU LEE 23
2.4.1 Một số khái niệm 23
2.4.2 Phân tích thuật toán 27
2.5 KỸ THUẬT GIẤU TIN YUAN PAN TSENG 27
2.5.1 Một số khái niệm dùng trong thuật toán: 28
2.5.2 Thuật toán: 29
2.5.3 Chứng minh tính đúng đắn của thuật toán: 35
2.5.4 Độ an toàn của thuật toán 36
2.5.5 Phân tích đánh giá thuật toán 37
2.6 MỘT SỐ KỸ THUẬT GIẤU TIN VÀO ẢNH BITMAP 24 BIT 37
2.6.1 Phương pháp giấu tuần tự 37
2.6.2 Phương pháp giấu vào các khu vực nhậy cảm của ảnh 37
2.6.3 Phương pháp giấu ngẫu nhiên vào các điểm ảnh 38
2.7 Khả năng phát hiện ảnh có giấu tin 38
2.7.1 Khái niệm cặp giá trị điểm ảnh (PoV) và khả năng phát hiện giấu tin bằng
phương pháp thống kê χ –bình phương 40
2.7.2. Khái niệm cặp giá trị điểm ảnh (POV – Pairs of Values) 40
2.7.3. Thuật toán PoV3 41
Chương 3 NGHIÊN CỨU ĐỀ XUẤT MỘT PHƯƠNG PHÁP GIẤU TIN 43
3.1 Cơ sở lý thuyết toán học 43
3.1.1 Ma trận và ma trận tam giác 43
3.1.2 Ứng dụng trong xây dựng thuật toán giấu tin mật 50
3.1.3 Thuật toán trích chọn thông tin từ ảnh stego 52
3.2 Ứng dụng chuẩn mã hóa AES trong giấu tin 53
3




3.2.1 Giới thiệu 53
3.2.2 Tham số, ký hiệu, thuật ngữ và hàm 53
3.3.3 Một số khái niệm toán học 54
3.3.4 Phương pháp Rijndael 56
3.3.5 Ứng dụng phương pháp Rijndael bảo mật tin giấu trong ảnh 63
3.3 Thử nghiệm 65
3.3.1 Môi trường thử nghiệm 65
3.3.2 Mô hình chương trình thử nghiệm 65
3.3.3 Tập dữ liệu thử nghiệm 66
3.3.4 Kết quả thử nghiệm 66
KẾT LUẬN 67
Tài liệu tham khảo 68

4





BẢNG KÝ HIỆU CHỮ CÁI VIẾT TẮT
1
AES
Advanced Encryption Standard, hay Tiêu chuẩn mã hóa tiên tiến
2
BMP
Basic Metabolic Panel - Ảnh bipmap
3
GIF

Graphics Interchange Format - Ảnh có định dạng GIF
4
JPEG
Joint Photographic Experts Group - Ảnh nén JPEG
5
LSB
Least Significant Bit - Bit có trọng số thấp nhất
6
PNG
Portable Network Graphics - Ảnh nén PNG
7
PoV
Pairs of Values - cặp giá trị điểm ảnh chẵn/lẻ
8
TIFF
Tagged Image File Format - tập tin định dạng TIFF chứa nhiều ảnh

5




LỜI MỞ ĐẦU

Trong những năm qua, chúng ta chứng kiến sự tiến bộ mạnh mẽ của khoa học -
công nghệ nói chung và ngành Công nghệ thông tin nói riêng. Hưởng lợi từ những kết
quả đó, không chỉ trong lĩnh vực dân sự, mà trong lĩnh vực An ninh - Quốc phòng,
cũng tận dụng tối đa những thành tựu của ngành Công nghệ thông tin để phục vụ yêu
cầu công tác. Sự đa dạng của của môi trường thông tin trên Internet đã mở ra những
kênh liên lạc, các dịch vụ trao đổi thông tin hết sức phong phú.

Xuất phát từ thực tiễn và yêu cầu công tác của ngành công an, một mặt phải tìm
hiểu phương pháp phân tích những thông tin bí mật, phương thức liên lạc mà đối
tượng che giấu. Mặt khác, cũng phải nghiên cứu phương pháp bảo vệ kênh liên lạc
phục vụ công tác nghiệp vụ của lực lượng bí mật. Trong luận văn này, tập trung
nghiên cứu và giải quyết những vấn đề cụ thể sau:
1. Nghiên cứu tổng quan về lĩnh vực giấu tin, những khái niệm cơ bản, ứng
dụng thực tiễn của giấu thông tin trong môi trường đa phương tiện;
2. Nghiên cứu, phân tích và tìm hiểu một số thuật toán giấu tin trong ảnh tĩnh.
Đồng thời, phân tích khả năng tấn công hệ giấu tin mật sử dụng ảnh bitmap làm môi
trường giấu tin;
3. Đề xuất một phương pháp giấu tin trong ảnh bitmap 24 bit mầu:
- Trong đó, ứng dụng lý thuyết đại số tuyến tính để xây dựng thuật toán mã hóa
thông điệp trước khi giấu; Ứng dụng phương pháp mã hóa Rijndael để bảo đảm tốt
nhất yêu cầu bảo mật thông tin;
- Thử nghiệm mô hình giấu tin trong ảnh bitmap 24 bit mầu với thông tin trước
khi giấu được mã hóa theo tiêu chuẩn mã hóa AES (Thuật toán Rijndael sử dụng khóa
128 bit).
- Phân tích, đánh giá kết quả giấu tin của mô hình bằng phương pháp phân tích
trực quan và phương pháp thống kê sử dụng tiêu chuẩn Khi bình phương (Chi-square).
6




Chương I. TỔNG QUAN VỀ ẨN GIẤU THÔNG TIN

Trong một thời gian dài, nhiều phương pháp bảo vệ thông tin đã được đưa ra,
trong đó giải pháp dùng mật mã được ứng dụng rộng rãi nhất. Các hệ mã đã được phát
triển nhanh chóng và được ứng dụng rất phổ biến. Thông tin ban đầu sẽ được mã hoá
thành các kĩ hiệu vô nghĩa, sau đó sẽ được lấy lại thông qua việc giải mã nhờ khoá của

hệ mã. Đã có nhiều hệ mã phức tạp và hiệu quả được sử dụng như DES, RSA, AES,
Giả sử ta có đối tượng cần bảo mật R (một văn bản, một tấm bản đồ hoặc một
tệp âm thanh chẳng hạn). Nếu dùng phương pháp mã hoá để bảo mật R ta sẽ thu được
bản mật mã của R là R’ chẳng hạn. Thông thường, R’ mang những giá trị “vô nghĩa”
và chính điều này làm cho đối phương nghi ngờ và tìm mọi cách thám mã. Ngược lại,
nếu dụng phương pháp giấu R vào một đối tượng khác, một bức ảnh F chẳng hạn ta sẽ
thu được bức ảnh F’ hầu như không sai khác với F. Sau đó chỉ cần gửi ảnh F’ cho
người nhận. Để lấy ra bản tin R từ ảnh F’ ta không cần ảnh gốc F. Giả sử, khi đối
phương bắt được tấm ảnh F’ nếu đó là ảnh lạ (ảnh cá nhân, ảnh phong cảnh của những
nơi không nổi tiếng ) thì khó nảy sinh nghi ngờ về khả năng chứa tin mật trong F’.
Như vậy, sự khác biệt giữa mã hoá thông tin và giấu thông tin là mức độ lộ liễu
của đối tượng mang tin mật. Nếu ta phối hợp hai phương pháp trên thì mức độ lộ liễu
được giảm đến mức tối đa, đồng thời độ an toàn cũng được nâng cao. Chẳng hạn, ta có
thể mã hoá R thành R’ sau đó mới giấu R’ vào ảnh F để thu được ảnh F’. Tóm lại, giấu
thông tin và hệ mã mật có quan hệ mật thiết với nhau, cùng xây dựng nên một hệ
thống an toàn và bảo mật thông tin.
1.1 MỘT SỐ KHÁI NIỆM CƠ BẢN VỀ GIẤU TIN
1.1.1 Định nghĩa
Giấu thông tin là một kỹ thuật nhúng (giấu) một lượng thông tin số nào đó vào
trong một đối tượng dữ liệu số khác [1].
Kỹ thuật giấu thông tin nhằm mục đích đảm bảo an toàn và bảo mật thông tin rõ
ràng ở hai khía cạnh. Một là bảo mật cho giữ liệu được đem giấu, hai là bảo mật cho
chính đối tượng được dùng để giấu tin. Hai khía cạnh khác nhau này dẫn đến hai
khuynh hướng kỹ thuật chủ yếu của giấu tin. Khuynh hướng thứ nhất là giấu tin mật
(steganography). Khuynh hướng này tập trung vào các kỹ thuật giấu tin sao cho thông
tin giấu được nhiều và quan trọng là người khác khó phát hiện được một đối tượng có
bị giấu tin bên trong hay không. Khuynh hướng thứ hai là thuỷ vân số (watermarking).
Khuynh hướng thuỷ vân số đánh giấu vào đối tượng nhằm khẳng định bản quyền sở
hữu hay phát hiện xuyên tạc thông tin.
7




1.1.2 Phân loại các kỹ thuật giấu tin
Do kỹ thuật giấu thông tin số mới được hình thành trong thời gian gần đây nên
xu hướng phát triển vẫn chưa ổn định. Nhiều phương pháp mới, theo nhiều khía cạnh
khác nhau đang và sẽ được đề xuất, bởi vậy một định nghĩa chính xác, một sự đánh giá
phân loại rõ ràng chưa thể có được. Sơ đồ phân loại trên hình 1.1 được Fabien A. P.
Petitcolas đề xuất năm 1999.
Có thể chia lĩnh vực giấu dữ liệu ra làm hai hướng lớn, đó là watermarking và
steganography. Nếu như watermark quan tâm nhiều đến các ứng dụng giấu các mẩu tin
ngắn nhưng đòi hỏi độ bền vững cao của thông tin cần giấu đối với các biến đổi thông
thường của tệp dữ liệu môi trường thì steganography lại quan tâm tới các ứng dụng
che giấu các bản tin với độ mật và dung lượng càng lớn càng tốt. Đối với từng hướng
lớn này, quá trình phân loại có thể tiếp tục theo các tiêu chí khác, ví dụ dựa theo ảnh
hưởng các tác động từ bên ngoài có thể chia watermark thành hai loại, một loại bền
vững với các tác động sao chép trái phép, loại thứ hai lại cần tính chất hoàn toàn đối
lập: phải dễ bị phá huỷ trước các tác động nói trên. Cũng có thể chia watermark theo
đặc tính, một loại cần được che giấu để chỉ có một số những người tiếp xúc với nó có
thể thấy được thông tin, loại thứ hai đối lập, cần được mọi người nhìn thấy.













Hình 1.1 Phân loại các kỹ thuật giấu tin
1.1.3 Vài nét về lịch sử giấu tin
Từ Steganography bắt nguồn từ Hi Lạp và được sử dụng cho tới ngày nay, nó
có nghĩa là tài liệu được phủ (covered writing). Những ghi chép sớm nhất về kỹ thuật
Infomation
hiding
Giấu thông tin
Robust
Copyright
marking
Thuỷ vân bền vững
Imperceptible
Watermarking
Thuỷ vân ẩn
Steganograph
y
Giấu tin mật
Watermarking
Thuỷ vân số
Fragile
Watermarking
Thuỷ vân “dễ vỡ”
Visible
Watermarking
Thuỷ vân hiển
8




giấu thông tin (thông tin được hiểu theo nghĩa nguyên thủy của nó) thuộc về sử gia
Hy-Lạp Herodotus. Khi bạo chúa Hy-Lạp Histiaeus bị vua Darius bắt giữ ở Susa vào
thế kỷ thứ năm trước Công nguyên, ông ta đã gửi một thông báo bí mật cho con rể của
mình là Aristagoras ở Miletus. Histiaeus đã cạo trọc đầu của một nô lệ tin cậy và xăm
một thông báo trên da đầu của người nô lệ ấy. Khi tóc của người nô lệ này mọc đủ dài
người nô lệ được gửi tới Miletus.
Một câu chuyện khác về thời Hy-Lạp cổ đại cũng do Herodotus ghi lại. Môi
trường để ghi văn bản chính là các viên thuốc được bọc trong sáp ong. Demeratus, một
người Hy-Lạp, cần thông báo cho Sparta rằng Xerxes định xâm chiếm Hy-Lạp. Để
tránh bị phát hiện, anh ta đã bóc lớp sáp ra khỏi các viên thuốc và khắc thông báo lên
bề mặt các viên thuốc này, sau đó bọc lại các viên thuốc bằng một lớp sáp mới. Những
viên thuốc được để ngỏ và lọt qua mọi sự kiểm tra một cách dễ dàng.
Ý tưởng về che giấu thông tin đã có từ hàng nghìn năm về trước nhưng kỹ thuật
này được dùng chủ yếu trong quân đội và trong các cơ quan tình báo. Mãi cho tới vài
thập niên gần đây, giấu thông tin mới nhận được sự quan tâm của các nhà nghiên cứu
và các viện công nghệ thông tin với hàng loạt công trình nghiên cứu giá trị.
1.1.4 Mô hình kỹ thuật giấu tin và một số thuật ngữ cơ bản
Mô hình của kỹ thuật giấu tin cơ bản được mô tả theo hai hình vẽ sau:












Hình 1.2 Lược đồ chung cho quá trình giấu tin
Hình vẽ trên biểu diễn quá trình giấu tin cơ bản. Phương tiện chứa bao gồm các
đối tượng được dùng làm môi trường để giấu tin như text, audio, video, ảnh …, thông
tin giấu là một lượng thông tin mang một ý nghĩa nào đó như ảnh, logo, đoạn văn
Phương tiện
chứa (audio,
ảnh, video)
Khoá
Thông tin giấu
Bộ nhúng
thông tin
Phương tiện
chứa đã được
giấu tin

Phân phối
9



bản…tuỳ thuộc vào mục đích của người sử dụng. Thông tin sẽ được giấu vào trong
phương tiện chứa nhờ một bộ nhúng, bộ nhúng là những chương trình, triển khai các
thuật toán để giấu tin và được thực hiện với một khoá bí mật giống như các hệ mã mật
cổ điển. Sau khi giấu tin ta thu được phương tiện chứa bản tin đã giấu và phân phối sử
dụng trên mạng.











Hình 1.3 Lược đồ cho quá trình giải mã
Hình vẽ trên chỉ ra các công việc giải mã thông tin đã giấu. Sau khi nhận được
đối tượng phương tiện chứa có giấu thông tin, quá trình giải mã được thực hiện thông
qua một bô giải mã tương ứng với bộ nhúng thông tin cùng với khoá của quá trình
nhúng. Kết quả thu được gồm phương tiện chứa gốc và thông tin đã giấu. Bước tiếp
theo thông tin giấu sẽ được xử lí kiểm định so sánh với thông tin giấu ban đầu.
Một số thuật ngữ cơ bản:
 datahiding: là thuật ngữ chỉ kỹ thuật giấu tin nói chung bao gồm cả giấu tin
mật và thuỷ vân số.
 steganography: chỉ kỹ thuật giấu tin mật trong một đối tượng.
 watermarking: thuỷ vân số, chỉ những kỹ thuật giấu tin dùng để bảo vệ đối
tượng chứa thông tin giấu.
 phương tiện chứa (host signal): là phương tiện gốc được dùng để nhúng thông
tin. Trong giấu thông tin trong ảnh thì nó mang tên ảnh chứa, còn trong audio là
audio chứa v.v Đôi khi ta cũng gọi phương tiện chứa là môi trường.
Phương tiện
chứa (audio,
ảnh, video)
Khoá
Thông tin giấu
Bộ giải
mã tin
Phương tiện
chứa đã được
giấu tin

Phân
phối
Kiểm định
10



 thông tin giấu (embeded data): là lượng thông tin được nhúng vào trong
phương tiện chứa. Trong giấu tin mật steganography thông tin giấu được gọi là
thông điệp giấu (message), còn trong kỹ thuật thuỷ vân số thì thông tin giấu
được gọi là thuỷ vân (watermark)
1.2 MỘT SỐ ỨNG DỤNG PHỔ BIẾN CỦA KỸ THUẬT GIẤU TIN
1.2.1 Bảo vệ bản quyền tác giả (copyright protection)
Đây là ứng dụng cơ bản nhất của kỹ thuật thuỷ vân số (digital watermarking) -
một dạng của phương pháp giấu tin. Một thông tin nào đó mang ý nghĩa quyền sở hữu
tác giả (người ta gọi nó là thuỷ vân - watermark) sẽ được nhúng vào trong các sản
phẩm, thuỷ vân đó chỉ một mình người chủ sở hữu hợp pháp các sản phẩm đó có và
được dùng làm minh chứng cho bản quyền sản phẩm. Giả sử có một thành phẩm dữ
liệu dạng đa phương tiện như ảnh, âm thanh, video cần được lưu thông trên mạng. Để
bảo vệ các sản phẩm chống lại các hành vi lấy cắp hoặc làm nhái cần phải có một kỹ
thuật để “dán tem bản quyền” vào sản phẩm này. Việc dán tem hay chính là việc
nhúng thuỷ vân cần phải đảm bảo không để lại một ảnh hưởng lớn nào đến việc cảm
nhận sản phẩm. Yêu cầu kỹ thuật đối với ứng dụng này là thuỷ vân phải tồn tại bền
vững cùng với sản phẩm, muốn bỏ thuỷ vân này mà không được phép của người chủ
sở hữu thì chỉ có cách là phá huỷ sản phẩm.
1.2.2 Xác thực thông tin hay phát hiện xuyên tạc thông tin
Một tập các thông tin sẽ được giấu trong phương tiện chứa sau đó được sử
dụng để nhận biết xem dữ liệu trên phương tiện gốc đó có bị thay đổi hay không. Các
thuỷ vân nên được ẩn để tránh được sự tò mò của kẻ thù, hơn nữa việc làm giả các
thuỷ vân hợp lệ hay xuyên tạc thông tin nguồn cũng cần được xem xét. Trong các ứng

dụng thực tế, người ta mong muốn tìm được vị trí bị xuyên tạc cũng như phân biệt
được các thay đổi (ví dụ như phân biệt xem một đối tượng đa phương tiện chứa thông
tin giấu đã bị thay đổi, xuyên tạc nội dung hay là chỉ bị nén mất dữ liệu). Yêu cầu
chung đối với ứng dụng này là khả năng giấu thông tin nhiều và thuỷ vân không cần
bền vững trước các phép xử lý trên đối tượng đã được giấu tin.
1.2.3 Nhận dạng vân tay hay dán nhãn
Thuỷ vân được sử dụng để nhận diện người gửi hay người nhận của một thông
tin nào đó trong ứng dụng phân phối sản phẩm. Thuỷ vân trong trường hợp này cũng
tương tự như số serial của sản phẩm phần mềm. Mỗi một sản phẩm sẽ mang một thuỷ
vân riêng. Ví dụ như các vân khác nhau sẽ được nhúng vào các bản copy khác nhau
của thông tin gốc trước khi chuyển cho nhiều người. Với những ứng dụng này thì yêu
cầu là đảm bảo độ an toàn cao cho các thuỷ vân tránh sự xoá giấu vết trong khi phân
phối.
11



1.2.4 Điều khiển sao chép
Điều mong muốn đối với các hệ thống phân phối dữ liệu đa phương tiện là tồn
tại một kỹ thuật chống sao chép trái phép dữ liệu. Có thể sử dụng thuỷ vân để chỉ trạng
thái sao chép của dữ liệu. Các thuỷ vân trong những trường hợp này được sử dụng để
điều khiển sao chép đối với các thông tin. Các thiết bị phát hiện ra thuỷ vân thường
được gắn sẵn vào trong các hệ thống đọc ghi. Ví dụ như hệ thống quản lí sao chép
DVD đã được ứng dụng ở Nhật. Thuỷ vân mang các giá trị chỉ trạng thái cho phép sao
chép dữ liệu như “copy never” - không được phép sao chép hay “copy once” - chỉ
được copy một lần, sau khi copy xong, bộ đọc, ghi thuỷ vân sẽ ghi thuỷ vân mới chỉ
trạng thái mới lên DVD. Các ứng dụng loại này cũng yêu cầu thuỷ vân phải được bảo
đảm an toàn và cũng sử dụng phương pháp phát hiện thuỷ vân đã giấu mà không cần
thông tin gốc.
1.2.5 Giấu tin mật

Các thông tin giấu được trong những trường hợp này càng nhiều càng tốt, việc
giải mã để nhận được thông tin cũng không cần phương tiện chứa gốc ban đầu. Các
yêu cầu mạnh về chống tấn công của kẻ thù không cần thiết lắm, thay vào đó là thông
tin giấu phải được bảo mật.
1.3 GIẤU TIN TRONG DỮ LIỆU ĐA PHƯƠNG TIỆN
1.3.1 Giấu tin trong ảnh
Hiện nay, giấu thông tin trong ảnh là một bộ phận chiếm tỉ lệ lớn nhất trong các
chương trình ứng dụng, các phần mềm, hệ thống giấu tin trong đa phương tiện bởi
lượng thông tin được trao đổi bằng ảnh là rất lớn và hơn nữa giấu thông tin trong ảnh
cũng đóng vai trò hết sức quan trọng trong các hầu hết các ứng dụng bảo vệ an toàn
thông tin như: nhận thực thông tin, xác định xuyên tạc thông tin, bảo vệ bản quyền tác
giả, điều khiển truy cập, giấu thông tin mật Chính vì thế mà vấn đề này đã nhận được
sự quan tâm rất lớn của các cá nhân, tổ chức, trường đại học, và viện nghiên cứu trên
thế giới.
Thông tin sẽ được giấu cùng với dữ liệu ảnh nhưng chất lượng ảnh ít thay đổi
và chẳng ai biết được đằng sau ảnh đó mang những thông tin có ý nghĩa. Và ngày nay,
khi ảnh số đã được sử dụng rất phổ biến, thì giấu thông tin trong ảnh đã đem lại nhiều
những ứng dụng quan trọng trên các lĩnh vực trong đời sống xã hội. Ví dụ như đối với
các nước phát triển, chữ kí tay đã được số hoá và lưu trữ sử dụng như là hồ sơ cá nhân
của các dịch vụ ngân hàng và tài chính. Nó được dùng để nhận thực trong các thẻ tín
dụng của người tiêu dùng.
Phần mềm WinWord của Microsoft cũng cho phép người dùng lưu trữ chữ kí
trong ảnh nhị phân rồi gắn vào vị trí nào đó trong file văn bản để đảm bảo tính an toàn
12



của thông tin. Tài liệu sau đó được truyền trực tiếp qua máy fax hoặc lưu truyền trên
mạng. Theo đó, việc nhận thực chữ kí, xác thực thông tin đã trở thành một vấn đề cực
kì quan trọng khi mà việc ăn cắp thông tin hay xuyên tạc thông tin bởi các tin tặc đang

trở thành một vấn nạn đối với bất kì quốc gia nào, tổ chức nào. Thêm vào đó, lại có rất
nhiều loại thông tin quan trọng cần được bảo mật như những thông tin về an ninh,
thông tin về bảo hiểm hay các thông tin về tài chính. Các thông tin này được số hoá và
lưu trữ trong hệ thống máy tính hay trên mạng. Chúng rất dễ bị lấy cắp và bị thay đổi
bởi các phần mềm chuyên dụng. Việc nhận thực cũng như phát hiện thông tin xuyên
tạc đã trở nên vô cùng quan trọng, cấp thiết. Và một đặc điểm của giấu thông tin trong
ảnh nữa đó là thông tin được giấu một cách vô hình. Nó như là cách truyền thông tin
mật cho nhau mà người khác không thể biết được, bởi sau khi giấu thông tin thì chất
lượng ảnh gần như không thay đổi đặc biệt đối với ảnh mầu hay ảnh xám.
1.3.2 Giấu tin trong audio
Giấu thông tin trong audio mang những đặc điểm riêng khác với giấu thông tin
trong các đối tượng đa phương tiện khác. Một trong những yêu cầu cơ bản của giấu tin
là đảm bảo tính chất ẩn của thông tin được giấu đồng thời không làm ảnh hưởng đến
chất lượng của dữ liệu. Để đảm bảo yêu cầu này, ta lưu ý rằng kỹ thuật giấu thông tin
trong ảnh phụ thuộc vào hệ thống thị giác của con người - HVS (Human Vision
System) còn kỹ thuật giấu thông tin trong audio lại phụ thuộc vào hệ thống thính giác
HAS (Human Auditory System). Và một vấn đề khó khăn ở đây là hệ thống thính giác
của con người nghe được các tín hiệu ở các giải tần rộng và công suất lớn nên đã gây
khó dễ đối với các phương pháp giấu tin trong audio. Nhưng thật may là tai người lại
kém trong việc phát hiện sự khác biệt các giải tần và công suất, có nghĩa là các âm
thanh to, cao tần có thể che giấu được các âm thanh nhỏ thấp một cách dễ dàng. Các
mô hình phân tích tâm lí đã chỉ ra điểm yếu trên và thông tin này sẽ giúp ích cho việc
chọn các audio thích hợp cho việc giấu tin. Vấn đề khó khăn thứ hai đối với giấu thông
tin trong audio là kênh truyền tin. Kênh truyền hay băng thông chậm sẽ ảnh hưởng đến
chất lượng thông tin sau khi giấu. Ví dụ để nhúng một đoạn java applet vào một đoạn
audio (16 bit, 44.100Hz) có chiều dài bình thường thì các phương pháp nói chung cũng
cần ít nhất tốc độ đường truyền là 20bps. Giấu thông tin trong audio đòi hỏi yêu cầu
rất cao về tính đồng bộ và tính an toàn của thông tin. Các phương pháp giấu thông tin
trong audio đều lợi dụng điểm yếu trong hệ thống thính giác của con người.
1.3.3 Giấu thông tin trong video

Cũng giống như giấu thông tin trong ảnh hay trong audio, giấu tin trong video
cũng được quan tâm và được phát triển mạnh mẽ cho nhiều ứng dụng như điều khiển
truy cập thông tin, nhận thực thông tin và bảo vệ bản quyền tác giả. Ta có thể lấy một
ví dụ là các hệ thống chương trình trả tiền xem theo đoạn với các video clip (pay per
13



view application). Các kỹ thuật giấu tin trong video cũng được phát triển mạnh mẽ và
cũng theo hai khuynh hướng là thuỷ vân số và data hiding. Nhưng phần giới thiệu này
chỉ quan tâm tới các kỹ thuật giấu tin trong video. Một phương pháp giấu tin trong
video được đưa ra bởi Cox là phương pháp phân bố đều. ý tưởng cơ bản của phương
pháp là phân phối thông tin giấu dàn trải theo tần số của dữ liệu chứa gốc. Nhiều nhà
nghiên cứu đã dùng những hàm cosin riêng và các hệ số truyền sóng riêng để giấu tin .
Trong các thuật toán khởi nguồn thì thường các kỹ thuật cho phép giấu các ảnh vào
trong video nhưng thời gian gần đây các kỹ thuật cho phép giấu cả âm thanh và hình
ảnh vào video. Như phương pháp của Swanson đã sử dụng để giấu theo khối, phương
pháp này đã giấu được hai bít vào khối 8*8. Hay gần đây nhất là phương pháp của
Mukherjee là kỹ thuật giấu audio vào video sử dụng cấu trúc lưới đa chiều Kỹ thuật
giấu thông tin áp dụng cả đặc điểm thị giác và thính giác của con người.
Kỹ thuật giấu tin đang được áp dụng cho nhiều loại đối tượng chứ không riêng
gì dữ liệu đa phương tiện như ảnh, audio hay video. Gần đây, đã có một số nghiên cứu
giấu tin trong cơ sở dữ liệu quan hệ, tài liệu Text, HTML và các giao thức truyền trên
mạng.
14




Chương 2. GIẤU TIN TRÊN ẢNH TĨNH


2. 1 GIẤU TIN TRONG ẢNH, NHỮNG ĐẶC TRƯNG VÀ TÍNH CHẤT
Giấu tin trong ảnh chiếm vị trí chủ yếu trong các kỹ thuật giấu tin chính vì vậy
mà các kỹ thuật giấu tin phần lớn cũng tập trung vào các kỹ thuật giấu tin trong ảnh.
Các phương tiện chứa khác nhau thì cũng sẽ có các kỹ thuật giấu khác nhau. Đối
tượng ảnh là đối tượng dữ liệu tĩnh, có nghĩa là dữ liệu tri giác không biến đổi theo
thời gian (không giống như audio và video). Kỹ thuật giấu tin trong ảnh quan tâm
những đặc trưng và các tính chất cơ bản sau đây:
2.1.1 Phương tiện chứa có dữ liệu tri giác tĩnh
Dữ liệu gốc ở đây là dữ liệu của ảnh tĩnh, dù đã giấu thông tin vào trong ảnh
hay chưa thì khi ta xem ảnh bằng thị giác, dữ liệu ảnh không thay đổi theo thời gian,
điều này khác với dữ liệu audio hay là video vì khi ta nghe hay xem thì dữ liệu gốc sẽ
thay đổi liên tục với tri giác của con người theo các đoạn hay các bài, các cảnh Sự
khác biệt này ảnh hưởng lớn đối với các kỹ thuật giấu thông tin trong ảnh với kỹ thuật
giấu thông tin trong audio hay video.
2.1.2 Kỹ thuật giấu phụ thuộc ảnh
Kỹ thuật giấu tin phụ thuộc vào các loại ảnh khác nhau. Chẳng hạn như đối với
ảnh đen trắng, ảnh xám hay ảnh màu đều đòi hỏi những kỹ thuật riêng. Ảnh nén và ảnh
không nén cũng có những kỹ thuật giấu khác nhau vì ảnh nén có thể mất mát thông tin
ảnh do nén ảnh…
2.1.3 Kỹ thuật giấu tin lợi dụng tính chất hệ thống thị giác của con người
Giấu tin trong ảnh ít nhiều cũng gây ra những thay đổi trên dữ liệu ảnh gốc. Dữ
liệu ảnh được quan sát bằng hệ thống thị giác (HVS - Human Vision System) của con
người nên các kỹ thuật giấu tin phải đảm bảo một yêu cầu cơ bản là những thay đổi
trên ảnh phải rất nhỏ sao cho bằng mắt thường không thể nhận ra được sự khác biệt vì
có như thế thì mới đảm bảo được độ an toàn cho thông tin giấu. Rất nhiều kỹ thuật đã
lợi dụng các tính chất của hệ thống thị giác để giấu tin chẳng hạn như mắt người cảm
nhận về sự biến đổi về độ xám kém hơn sự biến đổi về màu hay cảm nhận của mắt về
màu xanh da trời (Blue) là kém nhất trong ba màu cơ bản RGB (R - Red: đỏ, G -
Green: xanh lá cây, B- Blue: xanh da trời).

15



2.1.4 Giấu thông tin trong ảnh tác động lên dữ liệu ảnh nhưng không thay đổi
kích thước ảnh
Các phép toán thực hiện việc giấu thông tin sẽ được thao tác trên dữ liệu của
ảnh. Dữ liệu ảnh bao gồm cả phần thông tin ảnh (header), bảng màu (có thể có) và dữ
liệu ảnh. Khi giấu thông tin, các phương pháp giấu đều biến đổi các giá trị của các bít
trong dữ liệu ảnh chứ không thêm vào hay bớt đi dữ liệu ảnh. Do vậy mà kích thước
ảnh trước hay sau khi giấu thông tin là như nhau.
2.1.5 Đảm bảo yêu cầu chất lượng ảnh sau khi giấu thông tin
Đây là một yêu cầu quan trọng đối với giấu thông tin trong ảnh. Sau khi giấu
thông tin bên trong, ảnh phải đảm bảo được yêu cầu không bị biến đổi để có thể bị
phát hiện dễ dàng so với ảnh gốc. Yêu cầu này dường như khá đơn giản đổi với ảnh
màu hoặc ảnh xám bởi mỗi một pixel ảnh được biểu diễn bởi nhiều bít, nhiều giá trị và
khi ta thay đổi một giá trị nhỏ nào đó thì chất lượng ảnh không thay đổi, thông tin giấu
khó bị phát hiện, nhưng đối với ảnh đen trắng thì việc giấu thông tin phức tạp hơn
nhiều, vì ảnh đen trắng mỗi pixel ảnh chỉ gồm hai giá trị hoặc trắng hoặc đen, và nếu
ta biến đổi một bít từ đen thành trắng mà không khéo thì sẽ rất dễ bị phát hiện. Do đó
yêu cầu đối với các thuật toán giấu thông tin trong ảnh màu hay ảnh xám và giấu thông
tin trong ảnh đen trắng là khác nhau. Trong khi đối với ảnh màu thì các thuật toán chú
trọng vào việc làm sao cho giấu được càng nhiều thông tin càng tốt thì các thuật toán
áp dụng cho ảnh đen trắng lại tập trung vào làm thế nào để thông tin giấu khó bị phát
hiện.
2.1.6 Thông tin trong ảnh sẽ bị biến đổi nếu thực hiện các phép biến đổi ảnh
Vì phương pháp giấu tin trong ảnh dựa trên việc điều chỉnh các giá trị của các
bít theo một qui tắc nào đó và khi giải mã sẽ theo các giá trị đó để tìm được thông tin
giấu. Theo đó, nếu một phép biến đổi nào đó trên ảnh làm thay đổi giá trị của các bít
thì sẽ làm cho thông tin giấu sẽ bị sai lệch. Chính đặc điểm này mà giấu thông tin

trong ảnh có tác dụng nhận thực và phát hiện xuyên tạc thông tin.
2.1.7 Cần thiết ảnh gốc khi giải mã ảnh
Các kỹ thuật giấu tin phải phân biệt rõ ràng quá trình giải mã ảnh để lấy thông
tin giấu có cần ảnh gốc hay không. Đa số các kỹ thuật giấu tin mật thì thường không
cần ảnh gốc khi giải mã. Thông tin được giấu trong ảnh sẽ được mang cùng với dữ liệu
ảnh, khi giải mã chỉ cần ảnh đã mang thông tin giấu mà không cần dùng đến ảnh gốc
để so sánh đối chiếu.
Tuy nhiên, nhiều kỹ thuật giấu tin cũng sử dụng ảnh gốc khi giải mã ảnh,
phương pháp này có tác dụng giúp cho việc đồng bộ hoá ảnh giấu và ảnh gốc. Điều
này rất cần thiết khi phải xử lí với các tấn công hình học trên ảnh. Giả sử như phép tấn
16



công xoay ảnh chẳng hạn, nhờ có ảnh gốc ta so sánh và đồng bộ hoá, khôi phục dạng
ban đầu của ảnh thì có thể khôi phục lại được tin đã giấu. Nhưng phương pháp này
cũng gặp khó khăn khi dữ liệu gốc lớn. Ví dụ như giấu tin trong video, với lượng dữ
liệu lớn nếu như để giải mã tin mà dùng phương pháp này thì khối lượng thao tác quá
nhiều và không thể áp dụng được .
Trên đây là những tính chất và đặc điểm cơ bản chung của giấu tin trong ảnh.
Riêng đối với ứng dụng giấu tin mật (steganography) thì các tính chất ẩn, lượng thông
tin giấu và độ an toàn là ba tính chất quan trọng nhất
2.2 GIẤU THÔNG TIN TRONG ẢNH ĐEN TRẮNG, ẢNH ĐA CẤP XÁM
Khởi nguồn của giấu thông tin trong ảnh là thông tin được giấu trong các ảnh
màu hoặc ảnh xám, trong đó mỗi pixel ảnh mang nhiều giá trị, được biểu diễn bằng
nhiều bít. Với những ảnh đó thì việc thay đổi một giá trị nhỏ ở một pixel thì chất lượng
ảnh gần như không thay đổi, và khả năng bị phát hiện là rất thấp dưới sự quan sát của
mắt thường. Do đó hệ thống thị giác của con người cũng đóng một vai trò quan trọng
trong việc bảo đảm tính ẩn của thông tin giấu trên ảnh. Với những ảnh mà mỗi điểm
ảnh chỉ mang một giới hạn nhỏ các giá trị thì việc giấu thông tin trong ảnh đảm bảo

tính ẩn của thông tin giấu là một công việc khó khăn hơn nhiều. Đặc biệt đối với ảnh
đen trắng, mỗi điểm ảnh chỉ mang một trong hai giá trị trắng hoặc đen. Vậy thì khi
thay đổi giá trị một pixel từ đen thành trắng hoặc ngược lại thì rất dễ bị phát hiện. Và
do đó với ảnh đen trắng thì số lượng thuật toán không nhiều, và vẫn chưa đạt được kết
quả mong muốn. Có thuật toán giấu được nhiều thông tin vào ảnh thì chất lượng ảnh
lại kém và dễ bị phát hiện. Một số thuật toán khác thì giấu chất lượng ảnh tốt hơn
nhưng lượng thông tin giấu được ít và quá đơn giản không đảm bảo được độ an toàn
thông tin. Bảng sau sẽ liệt kê những khác nhau cơ bản giữa giấu thông tin trong ảnh
đen trắng và ảnh màu.
Giấu thông tin trong ảnh đen trắng
Giấu thông tin trong ảnh màu hoặc ảnh xám
Thông tin giấu ít hơn đối với ảnh có cùng
kích cỡ với ảnh màu
Thông tin giấu nhiều hơn.
Khả năng bị phát hiện trong ảnh có giấu
thông tin cao hơn ảnh màu
Khả năng bị phát hiện thấp.
Độ an toàn thông tin thấp do dễ bị phát
hiện có thông tin chứa bên trong
Độ an toàn cao.
Các thuật toán giấu ít, phức tạp
Nhiều thuật toán và có nhiều hướng mở rộng
phát triển. Như áp dụng giải thuật di truyền.
17



Bảng 2.1: Sự khác nhau giữa giấu thông tin trong ảnh đen trắng và ảnh màu
2.3 KỸ THUẬT GIẤU TIN ĐƠN GIẢN
2.3.1 Ý tưởng

Đây có lẽ là kỹ thuật đơn giản nhất trong các kỹ thuật giấu tin. Ý tưởng cơ bản
của thuật toán là chia một ảnh thành các khối nhỏ và với mỗi khối nhỏ đó sẽ được giấu
1 bít thông tin. Thuật toán này dùng cho cả ảnh màu, ảnh xám và ảnh đen trắng.
2.3.2 Thuật toán giấu tin:
Input:
- Một file ảnh Bitmap đen trắng F
- Một file thông tin cần giấu P
Output:
- Một file ảnh đã giấu tin F’
- Một khoá để giải tin K
Cách thức thực hiện:
Tiền xử lí:
- Chuyển file thông tin cần giấu P sang dạng nhị phân.
- Đọc header của ảnh để lấy thông tin ảnh, đọc bảng màu. Sau đó đọc toàn bộ
dữ liệu ảnh vào một mảng hai chiều để sử dụng cho việc giấu tin.
Quá trình thực hiện giấu tin:
- Chia phần thông tin ảnh (ma trận hai chiều điểm ảnh) thành các khối nhỏ có
kích thước m  n. Giả sử ảnh gốc ban đầu có kích thước là M  N, khi đó, tổng số các
khối nhỏ sẽ là (M  N)/ (m  n) khối. Vì ảnh sử dụng là ảnh đen trắng nên mỗi khối là
một ma trận hai chiều chứa các giá trị 0 và 1 như hình vẽ:
0
1
0
1
1
1
1
1
1
0

0
0
0
0
1
1
1
0
1
0
1
0
1
1
1
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0

1
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
0
0
0
1
0
0
1
0
1
0
0
0
1
1

0
0
1
1
0
1
1
1
0
1
0
0
1
0
0
Hình 2.1 Một ví dụ về dữ liệu ảnh được chia thành các khối kích thước 4  4
18



Sau khi phân thành các khối nhỏ ta chọn các khối để giấu tin, ta có thể chọn ngẫu
nhiên các khối nhưng để cho đơn giản ta coi như các khối được chọn tuần tự từ khối
đầu tiên cho đến khi hết thông tin cần giấu.
- Mỗi khối nhỏ này sẽ được dùng để giấu một bít thông tin theo quy tắc sau: sau
khi giấu thì tổng số bít 1 trong khối và bít thông tin cần giấu sẽ có cùng tính chẵn lẻ.
Nghĩa là, nếu giấu bít 1 vào một khối thì khối đó phải thoả mãn tính chất tổng số bít 1
trong khối là số lẻ. Ngược lại nếu cần giấu bít 0 vào một khối thì khối đó phải thoả
mãn tính chất tổng số bít1 trong khối là chẵn.
Như vậy, mỗi lần giấu 1 bít ta có hai trường hợp xảy ra sau đây:
- Khối đã thoả mãn tính chất để giấu một bít thông tin: chẳng hạn như khi cần giấu

bit 1 thì tổng số bit 1 đã là lẻ rồi, hoặc khi cần giấu bít 0 vào khối thì khối đó đã có
tổng số bít 1 là chẵn. Trong những trường hợp như thế, ta không cần thay đổi và xem
như một bít thông tin đã được giấu.
- Trong trường hợp ngược lại, tính chất của khối không thoả mãn yêu cầu để giấu
tin nghĩa là khi cần giấu bít 1 thì tổng số bít 1 trong khối là chẵn hoặc khi cần giấu bít
0 thì tổng số bít 1 trong khối lại đang là lẻ. Trong những trường hợp như thể thì ta cần
phải thay đổi khối đó sao cho thoả mãn điều kiện bằng cách đảo trị ngẫu nhiên một bít
(từ 0 sang 1, hoặc từ 1 sang 0).
Giả sử ta phải giấu bit 1 vào khối B sau:
1
0
1
1
0
1
0
0
0
0
1
0
1
1
1
0
Khối B kích thước 4 x 4
Ta đếm số bít 1 trong khối: trong trường hợp ở trên khối B có 8 bít 1, như vậy
khối B không thoả mãn yêu cầu để giấu bít 1, để giấu bít 1 vào khối này ta cần phải
thay đổi khối bằng cách chọn một bít bất kì và đổi từ 0 sang 1 hoặc từ 1 sang 0. Giả sử
ta đổi như hình vẽ sau:

1
0
1
1
0
0
0
0
bít bị thay đổi tư 1  0
19



Còn nếu, cũng với khối này mà ta phải giấu bít 0 thì ta không phải làm gì hết, vì
ban đầu khối này đã thoả mãn tính chất để giấu bít 0.
- Mỗi lần giấu một bít ta lại lấy một khối để giấu theo quy tắc trên cho đến hết
lượng thông tin cần giấu. Sau khi giấu xong ta được một ma trận hai chiều dữ liệu ảnh
mới. Bước tiếp theo, ta xây dựng ảnh mới bằng cách: chép header ảnh gốc đã đọc ra
lúc đầu vào file ảnh mới, chép bảng màu đã đọc vào file ảnh mới, cuối cùng chép nốt
dữ liệu ảnh mới sau khi đã giấu tin vào ảnh ta sẽ thu được ảnh mới sau khi giấu tin.
Trong thuật toán giấu tin này khoá đơn giản chỉ là kích thước của khối, nếu biết kích
thước của khối thì dễ dàng giải mã tin theo quy tắc sau:
Quá trình giải tin:
Khi nhận được ảnh đã giấu tin, quá trình giải mã tin sẽ được thực hiện theo các
bước sau đây:
- Đọc header của ảnh và bảng màu của ảnh để biết các thông tin ảnh.
- Lấy phần dữ liệu ảnh vào mảng hai chiều.
Các bước này giống như quá trình giấu tin. Sau khi đã có được giữ liệu ảnh ta
lại chia ảnh thành các khối có kích thước giống kích thước khối khi như giấu, đây
chính là khoá để giải mã. Chọn ra các khối đã giấu và giải tin theo quy tắc: đếm số bít

1 trong khối, nếu tổng số bít 1 là lẻ thì thu được bít 1, ngược lại thu được bít 0. Và cứ
tiếp tục cho đến khi hết các khối đã giấu.
Như vậy, sau hết các khối đã giấu, ta thu được một chuỗi bít đã đem giấu. Bước
tiếp theo ta chuyển từ file nhị phân sang file văn bản.
2.3.3 Phân tích thuật toán
Đây là thuật toán rất đơn giản thực hiện một cách thức giấu tin trong ảnh, sau
khi nghiên cứu thuật toán này chúng ta có thể đưa ra một số bình luận và đánh giá sau
đây:
- Việc chọn kích thước khối để giấu tin tuỳ thuộc vào kích thước ảnh và lượng
thông tin cần giấu sao cho giấu giàn trải trên toàn ảnh. Ví dụ nếu ta có một ảnh kích
thước 512 x 512 pixel và có một lượng thông tin cần giấu là 100 kí tự. Như vậy, file
nhị phân thông cần giấu sẽ là 100 x 8 = 800 bít 0/1 vì mỗi một kí tự mã ASCII biểu
diễn bởi 1 byte. Ta có thể thấy để giấu được hết thông tin thì cần ít nhất 800 khối vậy
thì ta nên chia khối như thể nào để đủ khối giấu và giàn trải rộng trên ảnh. Lấy (512 x
512) / 800 = 327 dư 544. Với kết quả này, kích thước khối tối đa là 327 vậy thì ta có
thể chọn các kích thước phù hợp với con số này (phù hợp theo nghĩa đủ lớn và không
vượt quá 327) chẳng hạn như 20 x 15, 16 x 16…
20



- Sở dĩ ta nên chọn khối có kích thước lớn vì như vậy nếu như trong trường các
khối bị thay đổi thì khoảng cách bít bị biến đổi sẽ xa nhau (thưa) làm cho ảnh sau khi
giấu khó bị nhận biết hơn.
- Với thuật toán này việc chọn khối khá đơn giản, ta bắt đầu từ khối đầu tiên và
những khối liên tiếp phía sau một cách tuần tự. Tuy nhiên, ta có thể làm khó thuật toán
hơn bằng cách chọn ngẫu nhiên một khối chưa giấu ở mỗi lần giấu. Khi đó, ta đã làm
tăng được độ an toàn của thuật toán vì khoá bây giờ còn thêm cả chỉ số khối đã giấu
tin cho từng bít. Hoặc ta có thể thay đổi kích thước khối ở mỗi lần giấu, chẳng hạn như
lần 1 có kích thước khối là 8*8, lần 2 là 8*12 …trong trường hợp này thì khoá sẽ là

kích thước khối của mỗi lần giấu.
- Một nhận xét quan trọng nữa thông qua thuật toán này là ta phải hiểu được bản
chất của giấu tin được thực hiện trong kỹ thuật này. Bản chất ở đây cách thức giấu
chẳng qua là một sự quy ước nào đó, nếu thoả mãn thì giấu bít 1, ngược lại thì giấu bít
0. Điều này khác hẳn với giấu cái bút bi trong cái bàn vì thực tế là ta có cái bút bi thật
sự và phải giấu nó đâu đó trong cái bàn còn xét trong kỹ thuật giấu tin thì bản chất là
ta không có bút bi nào hết mà chỉ là thông tin về bút bi.
2.3.4 Áp dụng thuật toán trong ảnh đen trắng, ảnh màu và ảnh đa cấp xám.
Thuật toán này mặc dù áp dụng cho ảnh đen trắng nhưng nó cũng có thể sử
dụng cho ảnh màu hoặc ảnh đa cấp xám. Phần này chúng ta sẽ làm rõ việc áp dụng
thuật toán vào các loại ảnh và những điều quan trọng khi áp dụng kỹ thuật cho từng
loại ảnh.
* Áp dụng thuật toán cho ảnh đen trắng:
Thuật toán trên được trình bày cho ảnh đen trắng nên ta chỉ quan tâm đến
những vấn đề cốt yếu khi áp dụng cho ảnh đen trắng. Như ta đã biết ở trong chương 2
phần phân biệt kỹ thuật giấu tin trong ảnh đen trắng và ảnh màu, ảnh đen trắng khó
giấu hơn do đặc điểm mỗi điểm ảnh chỉ được biểu diễn bởi một bít hoặc 0 hoặc 1. Nếu
như ta thay đổi bít từ 0 sang 1 hay ngược lại từ 1 sang 0 thì đều làm cho trên ảnh xuất
hiện những điểm đen, điểm trắng lạ. Như vậy vấn đề cốt yếu ở đây là làm thế nào hạn
chế được tối đa các điểm đen điểm trắng lạ và làm thể nào để những bit bị thay đổi đó
khó bị phát hiện nhất. Ta hãy nghiên cứu một kỹ thuật cải tiến dành cho ảnh đen trắng
sau đây:
Ý tưởng của phần cải tiến này dựa vào một nhận xét: với các ảnh đen trắng thì
việc thay đổi một giá trị một bít điểm ảnh từ trắng thành đen hoặc ngược lại thì rất dễ
bị phát hiện (bị nhiễu). Nhưng nếu ta đảo bít ở trên viền ảnh giữa miền đen và miền
trắng thì bít bị đảo sẽ khó bị nhận biết hơn.
21




Ví dụ: Giả sử ta có một khối ảnh và các bít có thể đảo là hai bít được đánh giấu
xám như trong hình vẽ dưới đây:







a) Khối bít ban đầu b) Đảo bít ở vị trí 1 c) Đảo bít ở vị trí 2
Hình 2.2 Mô tả các trường hợp thay đổi bít
Rõ ràng ta nhận thấy rằng nếu ta đảo bít như trong hình b thì bít bị đảo sẽ khó
bị nhận biết hơn đảo bít như trong hình c.
Ý tưởng này đã được thực hiện nhờ một hệ số phân bố bít D. Hệ số phân bố bít
D là một đại lượng đặc trưng cho mức độ rời rạc của các bít 0,1 trên một ma trận điểm
ảnh và được tính theo công thức sau:
Giả sử ta có một ma trận A chứa các điểm ảnh 0,1 cỡ m*n


Trong đó :
D
h
là hệ số phân bố bít theo chiều ngang.
D
h
=






m
i
n
j
jiji
xorAA
1
1
1
1,,
)(

Dv là hệ số phân bố bít theo chiều dọc.
D
v
=





n
j
m
i
jiji
xorAA
1
1

1
,1,
)(

D
c
là hệ số phân bố bít theo đường chéo 1:
D
c
=





m
i
n
j
jiji
xorAA
2
1
1
1,1,
)(

1
1
1

0
1
0
0
0
1
0
0
0
1
0
0
0
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
1

1
1
0
1
0
0
0
1
0
1
0
1
0
0
0
D = D
h
+ D
v
+ D
c
+D
a

22



D
a

là hệ số phân bố bít theo đường chéo 2:
D
a
=






1
1
1
1
1,1,
)(
m
i
n
j
jiji
xorAA

Với xor là phép toán XOR logic. x xor y = 1 nếu x khác y, ngược lại x xor y =0
nếu x =y.
Thực chất, nếu ta duyệt các phần tử của ma trận theo từng dòng và đếm số lần
chuyển màu (từ 1 sang 0 hoặc từ 0 sang 1) thì phân bố ngang Dh chính là tổng số lần
chuyển màu tính theo các dòng, Dv là tổng số lần chuyển màu tính theo cột, Dc là tổng
số lần chuyển màu tính theo đường chéo 1, Da là tổng số lần chuyển màu tính theo
đường chéo 2.

0
1
1
0
1
0
1
1
1
1
0
1
0
1
0
1

0
1
1
0
1
0
1
1
1
1
0
1
0

1
0
1

0
1
1
0
1
0
1
1
1
1
0
1
0
1
0
1

0
1
1
0
1

1
1
1

1
0
1
0
1
0
1

Số lần chuyển màu
tính theo hàng Dh
Số lần chuyển màu
tính theo cột Dv
Số lần chuyển màu
tính theo đường
chéo 1 Dc
Số lần chuyển màu
tính theo đường
chéo 2 Da
Ví dụ: Cho một ma trận nhị phân B 4*4 như sau:






Khi đó ta có các hệ số phân bố bít theo các chiều là:
* Dh = 2 + 2 + 3 + 2 = 9
* Dv = 2 + 1 + 1 + 2 = 6
* Dc = 1 + 2 + 2 + 1 + 1 = 7
* Da = 1 + 1 + 2 + 1 = 5

1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
1
23



Suy ra hệ số phân bố bít 0,1 trên B là:
D = Dh + Dv +Dc +Da = 9 +6 +7 + 5 = 27
Nếu D càng nhỏ thì mức độ rời rạc càng thấp tức là độ dính kết giữa các bít 0,1
càng lớn. Và áp dụng trong thuật toán này ta sẽ chọn cách chọn đảo bít nào có D nhỏ
nhất.
Thật vậy, theo như ví dụ trên hình 3.2 thì ta tính D cho cả hai trường hợp thì
thấy rằng:
D1 = 4 + 2 + 1 + 5 =12
D2 = 6 + 4 + 5 + 7 = 22
Vì D1<D2 nên ta chọn cách D1.

Một phần cải tiến nữa của thuật toán là hạn chế các khối giấu tin vì có những
khối có tỉ lệ bít đen rất thấp hoặc rất cao thì khi giấu thông tin thì rất ít các khả năng
đảo bít. Bít đảo sẽ rất dễ bị phát hiện. Và trong một số trường hợp trên ảnh có những
khối toàn trắng hoặc toàn đen thì không nên giấu thông tin vào các khối đó. Trong
thuật toán này đã dùng hai biến để chặn cận tỉ lệ bít đen trên một khối là MinBlackBit
và MaxBlackBit.
* Áp dụng thuật toán cho ảnh màu và ảnh đa cấp xám
Thuật toán ở trên hoàn toàn có thể áp dụng được đối với ảnh màu hoặc ảnh đa
cấp xám. Các loại ảnh này có giá trị của mỗi điểm ảnh được biểu diễn bằng nhiều bít.
Vậy làm thế nào để có được một ma trận điểm ảnh 0,1 để thực hiện giấu tin như thuật
toán ở trên? Rất đơn giản, ta chỉ việc chọn từ mỗi điểm ảnh đúng một bít và lưu vào
ma trận hai chiều các bit 0,1. Việc chọn này thực hiện theo quy tắc chọn bít ít quan
trọng nhất LSB.
Đối với ảnh màu và ảnh đa cấp xám ta không cần quan tâm nhiều đến việc chọn
điểm cần giấu vì ta đã dùng những bít ít quan trọng nhất để giấu rồi. Do vậy, tại mỗi
bước giấu ta có thể chọn một bít bất kì để thay đổi.
2.4 KỸ THUẬT GIẤU TIN WU LEE
Mục này giới thiệu chi tiết một thuật toán giấu thông tin trong ảnh đen trắng.
Thuật toán này được đưa ra bởi M.Y.Wu và J.H.Lee trong Proceedings of
international Symposium on Multimedia Information Processing 1999.
2.4.1 Một số khái niệm
a, Phép toán Λ: Gọi a và b là hai bít tuỳ ý, phép toán nhân bít AND, kí hiệu là
Λ trên hai bít a và b cho ta giá trị 1 khi và chỉ khi a=b=1, trong các trường hợp còn
lại, aΛb=0

×