1
MỤC LỤC
LỜI CẢM ƠN
MỤC LỤC ............................................................................................................................. 1
DANH MỤC HÌNH VẼ ........................................................................................................ 3
DANH MỤC BẢNG BIỂU ................................................................................................... 4
DANH MỤC CHỮ VIẾT TẮT, TIẾNG ANH ...................................................................... 5
MỞ ĐẦU ............................................................................................................................... 6
Chương 1. TỔNG QUAN VỀ GIẤU TIN TRONG ẢNH .................................................... 7
1.1. Khái niệm cơ bản về giấu tin trong ảnh ...................................................................... 7
1.2. Phân loại các kỹ thuật giấu tin trong ảnh .................................................................... 7
1.2.1. Thủy vân số .......................................................................................................... 7
1.2.2. Giấu tin mật ......................................................................................................... 8
1.3. Mô hình kỹ thuật giấu tin ............................................................................................ 8
1.4. Mục đích của kỹ thuật giấu tin trong ảnh ................................................................. 10
1.5. Các yêu cầu đối với giấu tin trong ảnh ..................................................................... 10
1.6. Thủy vân số thuận nghịch trong ảnh nhị phân .......................................................... 10
1.6.1. Kỹ thuật dựa vào trải phổ cộng ......................................................................... 11
1.6.2. Kỹ thuật dựa trên tính năng nén của ảnh .......................................................... 11
Chương 2. NGHIÊN CỨU CẤU TRÚC ẢNH BITMAP .................................................... 12
2.1. Cấu trúc ảnh Bitmap ................................................................................................ 12
2.1.1. BMP File Header (14 byte) ............................................................................... 12
2.1.2. Bitmap Information (DIB header: 40 byte) ....................................................... 13
2.1.3. Bảng màu (Color Palette) .................................................................................. 13
2.1.4. Dữ liệu ảnh (lưu dữ liệu ảnh) ............................................................................ 14
2.2. Giới thiệu về ảnh nhị phân ........................................................................................ 14
Chương 3. KĨ THUẬT GIẤU TIN THUẬN NGHỊCH CHO ẢNH NHỊ PHÂN ............... 16
3.1. Giới thiệu thuật toán giấu tin cho ảnh nhị phân ........................................................ 16
3.1.1. Tư tưởng của thuật toán .................................................................................... 16
3.1.2. Một số định nghĩa của thuật toán ...................................................................... 16
3.2. Kỹ thuật giấu tin trong ảnh nhị phân ........................................................................ 17
3.2.1. Dữ liệu vào ......................................................................................................... 17
3.2.2. Dữ liệu ra ........................................................................................................... 17
2
3.2.3. Các bước của thuật toán giấu tin ...................................................................... 17
3.2.3.1. Quá trình giấu tin ........................................................................................... 17
3.2.3.2. Quá trình khôi phục thông tin giấu ................................................................. 18
Chương 4. CÀI ĐẶT VÀ THỬ NGHIỆM CHƢƠNG TRÌNH .......................................... 20
4.1. Môi trƣờng cài đặt .................................................................................................... 20
4.2. Dữ liệu ảnh thử nghiệm ............................................................................................ 20
4.3. Đo độ đánh giá PSNR ............................................................................................... 22
4.4. Một số giao diện chƣơng trình .................................................................................. 22
4.4.1. Giao diện chính của chương trình .................................................................... 23
4.4.2. Giao diện giấu tin cho ảnh nhị phân ................................................................ 23
4.4.3. Giao diện tách tin cho ảnh nhị phân................................................................. 25
4.4.4. Giao diện đánh giá PSNR ................................................................................. 26
4.5. Kết quả đánh giá PSNR ............................................................................................ 29
KẾT LUẬN .......................................................................................................................... 32
TÀI LIỆU THAM KHẢO ................................................................................................... 33
Tài liệu Tiếng Việt ........................................................................................................... 33
Tài liệu tiếng Anh ............................................................................................................ 33
3
DANH MỤC HÌNH VẼ
Tên hình Ý nghĩa
Hình 1.1 Phân loại các kĩ thuật giấu tin (Fabien A.P. Patitcolaset al., 1999)
Hình 1.2 Quá trình giấu tin.
Hình 1.3 Quá trình tách tin.
Hình 4.1 Gồm 12 ảnh bitmap chuẩn.
Hình 4.2 Gồm 30 ảnh bitmap chụp với mọi kích cỡ khác nhau.
Hình 4.3 Giao diện chính của chƣơng trình.
Hình 4.4 Chọn tệp ảnh trong thƣ mục.
Hình 4.5 Giao diện giấu tin cho ảnh nhị phân.
Hình 4.6 Giao diện tách tin cho ảnh nhị phân.
Hình 4.7 Giao diện đánh giá bằng PSNR cho ảnh gốc và ảnh chứa thông
điệp.
Hình 4.8 Giao diện đánh giá bằng PSNR cho ảnh gốc và ảnh khôi phục.
Hình 4.9 Kết quả ảnh gốc và ảnh chứa thông điệp chuẩn.
Hình 4.10 Kết quả ảnh gốc và ảnh chứa thông điệp (tập ảnh có kích thƣớc
bất kì).
4
DANH MỤC BẢNG BIỂU
Tên bảng Ý nghĩa
Bảng 2.1 Các khối dữ liệu trong một tập tin BMP.
Bảng 2.2 Chi tiết khối bytes tiêu đề tập tin BMP.
Bảng 2.3 Chi tiết khối bytes thông tin tập tin BMP.
Bảng 4.1 Kết quả đánh giá PSNR của 12 ảnh gốc và ảnh sau khi giấu tin.
Bảng 4.1 Kết quả đánh giá PSNR của 30 ảnh gốc và ảnh sau khi giấu tin.
5
DANH MỤC CHỮ VIẾT TẮT, TIẾNG ANH
Chữ viết tắt Diễn giải Ý nghĩa
BMP Bitmap Định dạng tệp tin hình ảnh BMP.
DIB Device Independent Bitmap Thiết bị độc lập ảnh bitmap.
TIFF Tagged Image File Format Đƣợc gắn thẻ định dạng tệp in ảnh.
GIF Graphics Interchange Format Định dạng Trao đổi Hình ảnh.
IMG Image Ảnh IMG.
Embedding Kỹ thuật nhúng.
Embedded data Kỹ thuật nhúng tin.
Watermarking Là thủy vân số, thủy ấn.
Host data Tin gốc.
Filtering Thực hiện lọc.
Lossy compressio Nén mất dữ liệu .
Fingerprinting Nhận dạng vân tay, điểm chỉ.
PSNR Peak Signal to Noise Ratio Tỷ số tín hiệu đỉnh trên nhiễu.
MSE Mean squared error Bình phƣơng trung bình lỗi.
Lossy compression Nén có mất mát dữ liêu.
6
MỞ ĐẦU
Mục đích của đề tài là che giấu thông tin vào trong ảnh nhị phân, khi nhìn
bằng mắt thƣờng sẽ khó phát hiện ra ảnh có giấu tin hay không vì sự thay đổi của
ảnh sau khi giấu tin là ít nhất. Thuật toán sử dụng việc thay đổi nhiều nhất 1 phần tử
trong khối đang xét. Thuật toán này không chỉ nhằm giấu tin với độ hiển thị của
thông tin đƣợc giấu là thấp mà nó còn đảm bảo khả năng có thể thuận nghịch cho
ảnh sau khi giấu tin.
Với thuật toán này ảnh sau khi giấu tin sẽ đƣợc khôi phục lại nhƣ ảnh ban
đầu. Điều này rất quan trọng đối với những sản phẩm bản quyền cần đƣợc chứng
thực và xác thực bằng giấu vân tay. Sau khi xác định sản phẩm đƣợc chứng thực ta
có thể lấy lại ảnh gốc mà không có sự thay đổi nào trên ảnh gốc.
Trong báo cáo này sẽ trình bày một thuật toán mới, cải tiến từ thuật toán
trong [1], cũng dựa trên tính chẵn lẻ của các khối bit, nhƣng có sử dụng thêm một
ma trận khóa để tăng cƣờng tính bảo mật cho thuật toán giấu tin. Khi nhận đƣợc ảnh
có tin giấu, ngƣời nhận cần phải có thêm ma trận khóa mới có thể trích rút đƣợc
thông tin. Đồng thời để có thể lấy lại ảnh gốc phải có ma trận định vị. Khối bit đƣợc
sử dụng không chỉ cố định là 3×3 mà có thể là m×n bất kỳ. Ngoài ra chất lƣợng ảnh
sau khi giấu còn đƣợc nâng cao hơn do trong thuật toán mới này, những khối toàn
màu đen hoặc toàn màu trắng sẽ không đƣợc sử dụng để giấu tin.
Cấu trúc báo cáo bao gồm phần mở đầu và bốn chƣơng nội dung:
Chƣơng 1: Giới thiệu tổng quan về giấu tin trong ảnh, định nghĩa về
giấu tin trong ảnh cũng nhƣ phân loại kỹ thuật giấu tin cho ta thấy cái
nhìn khái quát về giấu tin trong ảnh.
Chƣơng 2: Nghiên cứu cấu trúc ảnh bitmap, tìm hiểu hệ thống các
khối trong ảnh bitmap. Mỗi một khối sẽ có những chức năng riêng lƣu
trữ các giá trị của điểm ảnh.
Chƣơng 3: Kỹ thuật giấu tin cho ảnh nhị phân, giới thiệu về kỹ thuật
đƣợc trình bày trong báo cáo, chƣơng này đƣa ra các bƣớc thực hiện
của thuật toán.
Chƣơng 4: Cài đặt và thử nghiệm, thực hiện cài đặt trên máy tính sử
dụng phần mềm matlap R2008b. Thử nghiệm giấu tin trên 42 ảnh
bitmap với kích cỡ khác nhau và đƣa ra đánh giá PSNR.
7
Chương 1. TỔNG QUAN VỀ GIẤU TIN TRONG ẢNH
1.1. Khái niệm cơ bản về giấu tin trong ảnh
Giấu thông tin là kỹ thuật nhúng (embedding) một lƣợng thông tin số nào đó
vào trong một đối tƣợng dữ liệu ảnh số khác [3].
1.2. Phân loại các kỹ thuật giấu tin trong ảnh
Có thể chia lĩnh vực giấu tin thành hai hƣớng lớn là [2]:
- Thủy vân số (watermarking).
- Giấu tin mật (steganography).
Hình 1.1. Phân loại các kĩ thuật giấu tin (Fabien A.P. Patitcolaset al., 1999)
1.2.1. Thủy vân số
Watermarking là kỹ thuật nhúng một biểu tượng vào trong ảnh môi trường
để xác định quyền sở hữu ảnh môi trường, chống sự giả mạo và xuyên tạc thông
tin. Kích thước của biểu tượng thường nhỏ (từ vài bit tới vài nghìn bit).
Thủy vân bền vững: thƣờng đƣợc ứng dụng trong bảo vệ bản quyền.
Thủy vân đƣợc nhúng trong sản phẩm nhƣ một hình thức dán tem bản
quyền. Thủy vân phải tồn tại bền vững cùng với sản phẩm nhằm
chống việc tẩy xóa, làm giả hay biến đổi phá hủy thủy vân.
Giấu thông tin
Thủy vân số Giấu tin mật
Thủy vân hiện
Thủy vân bền vững
Thủy vân ẩn
Thủy vân dễ vỡ
Thủy vân ẩn Thủy vân hiện
8
Thủy vân dễ vỡ: Là kỹ thuật nhúng thủy vân vào trong một đối tƣợng
(sản phẩm) và nếu có bất kỳ phép biến đổi nào làm thay đổi sản phẩm
gốc thì thủy vân đã đƣợc giấu trong đối tƣợng sẽ không còn nguyên
vẹn nhƣ trƣớc khi giấu.
+ Thủy vân ẩn: Cũng giống nhƣ giấu tin, bằng mắt thƣờng không thể
phát hiện thủy vân ẩn.
+ Thủy vân hiện: Là loại thủy vân hiện ngay trên sản phẩm và có thể
phát hiện sự tồn tại của thủy vân.
1.2.2. Giấu tin mật
Steganography (giấu tin, viết phủ) là lĩnh vực nghiên cứu việc nhúng các
mẩu tin mật vào một môi trƣờng phủ. Trong quá trình giấu tin để tăng bảo mật có
thể ngƣời ta dùng một khoá viết mật khi đó ngƣời ta nói về Intrinsic Steganography
(dấu tin có xử lý). Khi đó để giải mã ngƣời dùng cũng phải có khoá viết mật đó.
Giấu tin mật quan tâm đến các ứng dụng sao cho ngƣời khác khó phát hiện
nhất việc có tin đƣợc giấu và nếu có phát hiện tin đƣợc giấu thì việc giải tin cũng
khó thực hiện nhất. Một yêu cầu nữa đối với kỹ thuật này là lƣợng tin giấu vào
trong ảnh cũng là lớn nhất.
1.3. Mô hình kỹ thuật giấu tin
Hệ thống giấu tin nói chung bao gồm 2 phần chính: quá trình giấu tin và quá
trình tách tin (hình 1.2 và hình 1.3) [3].
Giai đoạn giấu tin, các thông tin khoá (công khai hoặc bí mật) và dấu tin
đƣợc chèn vào ảnh gốc để đƣợc ảnh có bản quyền. Giai đoạn tách tin, dữ liệu
khoá (bí mật) và ảnh giấu tin (ảnh có chứa tin) sẽ làm dữ liệu cơ sở để tách tin từ
ảnh có bản quyền.
9
Hình 1.2. Quá trình giấu tin
Hình 1.3. Quá trình tách tin
Thông tin về quá trình giấu tin và quá trình tách tin:
- Thông tin giấu: có thể là văn bản hoặc tệp ảnh hay bất kỳ một tệp nhị phân
nào, vì quá trình xử lý chúng ta đều chuyển chúng thành chuỗi các bit.
- Ảnh dùng để chứa tin: là ảnh đƣợc dùng để làm môi trƣờng nhúng tin mật.
- Khoá K: khoá mật tham gia vào quá trình giấu tin, tăng tính bảo mật.
- Ảnh chứa tin: là ảnh sau khi đã nhúng tin mật vào đó.
10
- Ảnh đã tách tin: là ảnh sau khi đã tách thông điệp.
- Kiểm định: kiểm tra chất lƣợng ảnh sau khi giấu và kiểm tra tính toàn vẹn
của thông tin đã đƣợc giấu.
1.4. Mục đích của kỹ thuật giấu tin trong ảnh
Dựa vào phân loại các kỹ thuật giấu tin ta có 2 hƣớng chính đó là thủy vân số
và giấu tin mật. Mỗi loại lại có những mục đích tƣơng ứng nhƣ sau:
- Thứ nhất: bảo mật cho chính đối tƣợng đƣợc dùng để giấu tin (thủy vân số).
Kỹ thuật thủy vân số: đây là kỹ thuật nhằm bảo mật và xác thực cho chính
đối tƣợng đƣợc giấu tin. Các ứng dụng cơ bản nhất là bảo vệ bản quyền, phát hiện
xuyên tạc thông tin.
- Thứ hai: bảo mật cho thông tin đƣợc giấu (giấu tin mật).
Kỹ thuật giấu tin mật: với mục đích bảo mật cho thông tin đƣợc giấu kỹ thuật
này đƣa ra nhằm 2 mục tiêu chính là thông tin đƣợc giấu số lƣợng lớn và rất khó
phát hiện ra thông tin có đƣợc giấu vào ảnh hay không.
1.5. Các yêu cầu đối với giấu tin trong ảnh
Những yêu cầu cơ bản đối với giấu tin cho ảnh là:
- Tính ẩn của giấu tin đƣợc chèn vào ảnh: Sự hiện diện của giấu tin trong ảnh
không làm ảnh hƣởng tới chất lƣợng của ảnh đã chèn tin.
- Tính bền của giấu tin: Cho phép các tin có thể tồn tại đƣợc qua các phép biến
đổi ảnh, biến dạng hình học hay các hình thức tấn công cố ý khác.
- Tính an toàn: không thể xoá đƣợc tin ra khỏi ảnh trừ khi ảnh đƣợc biến đổi
tới mức không còn mang thông tin
Tính ẩn của tin là một yêu cầu rất quan trọng của phƣơng pháp giấu tin.
1.6. Thủy vân số thuận nghịch trong ảnh nhị phân
Thủy vân số thuận nghịch là kỹ thuật giấu thông điệp, giấu biểu tƣợng mà sau
khi khôi phục thông điệp trong quá trình tách tin, ta có thể khôi phục lại xấp xỉ hoặc
giống ảnh gốc ban đầu.
Một số tác giả [6, 7, 8] phân loại kỹ thuật giấu tin thuận nghịch thành 2 loại:
- Kỹ thuật dựa vào trải phổ cộng (addtive spead spectrum).
- Kỹ thuật dựa trên tính năng nén của ảnh (image fearture compression): có
khả năng thủy vân số thuận nghịch cao.
11
1.6.1. Kỹ thuật dựa vào trải phổ cộng
Loại đầu tiên [9, 10] sử dụng kĩ thuật trải phổ cộng. Trong những kĩ thuật
này, một tín hiệu trải phổ tƣơng ứng với dữ liệu đƣợc nhúng là đƣợc chồng vào
(thêm vào) tín hiệu gốc. Trong việc giải mã, các dữ liệu ẩn đƣợc phát hiện và các tín
hiệu thêm vào sẽ bị loại bỏ (trừ đi) để phục hồi tín hiệu gốc. Trong kĩ thuật này, sự
giải nén the payload (tải trọng) rất mạnh, theo nghĩa là the payload có thể đƣợc giải
nén thậm chí nếu ảnh đƣợc ẩn đã bị sửa đổi một chút. Tuy nhiên, trong trƣờng hợp
này, ảnh gốc sẽ không thể khôi phục lại đƣợc.
1.6.2. Kỹ thuật dựa trên tính năng nén của ảnh
Loại thứ hai [6, 7, 11] ghi đè một phần của tín hiệu gốc với dữ liệu đƣợc
nhúng vào. Hai loại thông tin phải đƣợc nhúng vào: Dữ liệu nén của phần đƣợc ghi
đè và dữ liệu the net payload (để cho phép hồi phục tín hiệu gốc). Trong quá trình
giải mã, thông tin ẩn sẽ đƣợc tách ra, dữ liệu the payload sẽ đƣợc hồi phục, và dữ
liệu đƣợc nén sẽ đƣợc sử dụng để hồi phục lại tín hiệu gốc. Những kĩ thuật này
không gây ra tình trạng salt-and-pepper artifacts, vì những phần đƣợc sửa đổi
thƣờng là những bits ít đƣợc kể đến nhất hoặc những sóng có hệ số tần số cao mà
không gây ra sự biến dạng cảm quan. Những kĩ thuật này thƣờng cung cấp khả năng
che giấu dữ liệu nhiều hơn loại đầu tiên.
Hãy xem xét, ví dụ, các dữ liệu ẩn mà ảnh che giấu đƣợc chia thành các khối,
và một bit dữ liệu đƣợc chèn vào mỗi khối bằng cách trộn (nếu cần thiết) điểm ảnh
với khả năng hiển thị thấp nhất. Những khối với số chẵn (lẻ) của những điểm ảnh
đen có bít 0 (1) đƣợc nhúng vào. Trong kĩ thuật này, ảnh gốc không thể phục hồi
đƣợc thậm chí nếu những tỉ suất ban đầu của những điểm ảnh đen đƣợc biết, vì
điểm ảnh đƣợc lộn lại một cách chính xác bên trong mỗi khối không thể nào định vị
đƣợc nếu không có một ma trận định vị các điểm đã lộn lại đó.
12
Chương 2. NGHIÊN CỨU CẤU TRÚC ẢNH BITMAP
2.1. Cấu trúc ảnh Bitmap
Một tập tin BMP điển hình thông thƣờng chứa những khối dữ liệu sau:
Bảng 2.1. Các khối dữ liệu trong một tập tin BMP
Tên khối Ý nghĩa
BMP File Header Lƣu trữ thông tin tổng hợp về file BMP.
Bitmap Infomation Lƣu trữ thông tin chi tiết về ảnh bitmap.
Color Palette Lƣu trữ định nghĩa của màu đƣợc sử dụng cho bitmap.
Bitmap Data Lƣu trữ từng pixel của hình ảnh thực tế.
2.1.1. BMP File Header (14 byte)
Đây là khối bytes ở phần đầu tập tin, sử dụng để định danh tập tin. Ứng dụng
đọc khối bytes này để kiểm tra xem đó có đúng là tập tin BMP không và có bị hƣ
hỏng không.
Bảng 2.2. Chi tiết khối bytes tiêu đề tập tin BMP
Offset Size Mục đích
0000h 2 bytes
Magic number sử dụng để định nghĩa tập tin BMP:
0x42 0x4D(mã hexa của kí tự B và M). Các mục dƣới
đây có thể đƣợc dùng:
BM - Windows 3.1x, 95, NT, ... etc
CI - OS/2 Color Icon
CP - OS/2 Color Pointer
0002h 4 bytes Kích thƣớc của tập tin BMP theo byte.
0006h 2 bytes
Dành riêng; giá trị thực tế phụ thuộc vào ứng dụng tạo
ra hình ảnh.
0008h 2 bytes
Dành riêng; giá trị thực tế phụ thuộc vào ứng dụng tạo
ra hình ảnh.
000Ah 4 bytes offset, địa chỉ bắt đầu các byte dữ liệu ảnh bitmap.
13
2.1.2. Bitmap Information (DIB header: 40 byte)
Khối bytes này nói cho ứng dụng biết các thông tin chi tiết về hình ảnh, sẽ
đƣợc sử dụng để hiển thị hình ảnh trên màn hình. Bảng sau miêu tả chi tiết cấu trúc
tiêu đề DIB. Tất cả các giá trị đƣợc lƣu trữ nhƣ là unsigned interger, trừ khi lƣu ý
một cách rõ ràng.
Bảng 2.3. Chi tiết khối bytes thông tin tập tin BMP
Offset Size Mục đích
Eh 4 Kích thƣớc của tiêu đề(40 bytes).
12h 4 Chiều rộng bitmap tính bằng pixel (signed interger).
16h 4 Chiều cao bitmap tính bằng pixel (signed interger).
1Ah 2 Số lƣợng các mặt phẳng màu sắc đƣợc sử dụng. Phải đƣợc thiết
lập bằng 1.
1Ch 2 Số bit trên mỗi pixel, là độ sâu màu của hình ảnh. giá trị điển
hình là 1, 4, 8, 16, 24 và 32.
1Eh 4 Phƣơng pháp nén đƣợc sử dụng. Xem bảng tiếp theo để có danh
sách các giá trị có thể.
22h 4 Kích thƣớc hình ảnh. Đây là kích thƣớc của dữ liệu bitmap(xem
bên dƣới), và không nên nhầm lẫn với kích thƣớc tập tin.
26h 4 Độ phân giải theo chiều ngang của hình ảnh(signed interger).
2Ah 4 Độ phân giải theo chiều dọc của hình ảnh(signed interger).
2Eh 4 Số lƣợng màu trong bảng màu.
32h 4 Số lƣợng các màu sắc quan trọng đƣợc sử dụng, hoặc 0 khi màu
sắc nào cũng đều là quan trọng, thƣờng bị bỏ qua.
2.1.3. Bảng màu (Color Palette)
Với (4*x bytes), x là số màu của ảnh: định nghĩa các màu sẽ đƣợc sử dụng
trong ảnh.
Bảng màu xuất hiện sau tiêu đề BMP và tiêu đề DIB. Vì vậy, offset là kích
cỡ của tiêu đề BMP cộng với kích thƣớc của tiêu đề DIB.