Tải bản đầy đủ (.docx) (71 trang)

NGHIÊN CỨU KỸ THUẬT ẨN MÃ TRONG ẢNH DỰA TRÊN PHƯƠNG PHÁP TIẾP CẬP MỚI TRÊN KÊNH RGB

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.96 MB, 71 trang )

BAN CƠ YẾU CHÍNH PHỦ
HỌC VIỆN KỸ THUẬT MẬT MÃ
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

ĐỒ ÁN TỐT NGHIỆP

NGHIÊN CỨU KỸ THUẬT ẨN MÃ TRONG ẢNH DỰA
TRÊN PHƯƠNG PHÁP TIẾP CẬP MỚI TRÊN KÊNH
RGB

Ngành: An toàn thông tin
Mã số: 7.48.02.02
Sinh viên thực hiện:
Nguyễn Văn Long
Lớp: AT10C
Người hướng dẫn:
Ths. Hồng Thu Phương
KhoaAn tồn thơng tin – Học viện Kỹ thuật mật mã

Hà Nội, 2018


BAN CƠ YẾU CHÍNH PHỦ
HỌC VIỆN KỸ THUẬT MẬT MÃ
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

ĐỒ ÁN TỐT NGHIỆP

NGHIÊN CỨU KỸ THUẬT ẨN MÃ TRONG ẢNH DỰA
TRÊN PHƯƠNG PHÁP TIẾP CẬP MỚI TRÊN KÊNH
RGB



Ngành: An toàn thông tin
Mã số: 7.48.02.02
Sinh viên thực hiện:
Nguyễn Văn Long
Lớp: AT10C
Người hướng dẫn:
Ths. Hồng Thu Phương
KhoaAn tồn thơng tin – Học viện Kỹ thuật mật mã

Hà Nội, 2018




LỜI CAM ĐOAN
Tôi xin cam đoan bản đồ án này do tôi t ự nghiên c ứu d ưới s ự
hướng dẫn của Ths. Hoàng Thu Phương để hoàn thành đồ án này, tôi chỉ sử
dụng những tài liệu đã ghi trong mục tài liệu tham kh ảo, ngoài ra không
sử dụng bất cứ tài liệu nào khác mà không được ghi.Nếu sai, tơi xin ch ịu m ọi
hình thức kỷ luật theo quy định của Học viện.

Hà Nội, ngày

tháng

năm 2018

Sinh viên thực hiện
(Ký và ghi rõ họ tên)


Nguyễn Văn Long

1


MỤC LỤC
LỜI CAM ĐOAN.....................................................................................................i
MỤC LỤC...............................................................................................................iii
DANH MỤC TỪ VIẾT TẮT..................................................................................v
DANH MỤC HÌNH ẢNH......................................................................................vi
DANH MỤC BẢNG BIỂU...................................................................................vii
LỜI NĨI ĐẦU..........................................................................................................1
CHƯƠNG 1. TỔNG QUAN VỀ ẨN MÃ..............................................................3
1.1. Giới thiệu chung về ẩn mã..................................................................................3
1.2. Khái niệm ẩn mã.................................................................................................4
1.3. Một số thuật ngữ cơ bản.....................................................................................5
1.4. Mô hình ẩn mã....................................................................................................5
1.5. Một số kỹ thuật ẩn mã cơ bản.............................................................................6
1.5.1. Ẩn mã trong ảnh......................................................................................6
1.5.2. Ẩn mã trong âm thanh.............................................................................7
1.5.3. Ẩn mã trong video...................................................................................7
1.5.4. Ẩn mã trong tệp văn bản.........................................................................8
1.5.5. Ẩn mã trong giao thức.............................................................................8
1.6. Một số ứng dụng của ẩn mã trong thực tế..........................................................8
CHƯƠNG 2. TỔNG QUAN VỀ ẨN MÃ TRONG ẢNH.....................................9
2.1. Các định dạng ảnh thường dùng để ẩn mã.........................................................9
2.1.1. Định dạng ảnh JPEG..............................................................................9
2.1.2. Định dạng ảnh TIFF.............................................................................10
2.1.3. Định dạng ảnh PNG..............................................................................12

2.1.4. Định dạng ảnh GIF...............................................................................13
2.1.5. Định dạng ảnh BITMAP.......................................................................16
2.2. Một số kỹ thuật ẩn mã trong ảnh trên miền không gian...................................19
2.2.1. Phương pháp ẩn mã bằng thay thế bit có trọng số thấp nhất (LSB)....19
2.2.2. Phương pháp vi phân điểm ảnh (PVD).................................................22
2.2.3. Phương pháp vi phân đa điểm ảnh (MPD)...........................................23
2.3. Một số kỹ thuật ẩn mã trong ảnh trên miền tần số...........................................25
2


2.3.1. Kỹ thuật biến đổi Fourier rời rạc (DFT)..............................................25
2.3.2. Kỹ thuật biến đổi trực giao Cosine rời rạc (DCT)................................28
2.3.3. Kỹ thuật biến đổi sóng nhỏ rời rạc (DWT)...........................................31
CHƯƠNG 3: NGHIÊN CỨU KỸ THUẬT ẨN MÃ TRONG ẢNH DỰA TRÊN
PHƯƠNG PHÁP TIẾP CẬN MỚI TRÊN KÊNH RGB....................................36
3.1 Giới thiệu...........................................................................................................36
3.2 Thuật toán ẩn mã trong ảnh dựa trên kênh RGB...............................................37
3.2.1 Thuật toán bên gửi.................................................................................37
3.2.2 Thuật toán người nhận...........................................................................41
3.3 Đánh giá phương pháp.......................................................................................43
CHƯƠNG 4. XÂY DỰNG CHƯƠNG TRÌNH THỬ NGHIỆM VÀ ĐÁNH GIÁ
KẾT QUẢ...............................................................................................................44
4.1. Nền tảng ứng dụng và ngơn ngữ lập trình........................................................44
4.2.Sơ đồ thuật tốn và các bước thực hiện.............................................................44
4.3.Chương trình......................................................................................................47
4.4.Đánh giá kết quả thực nghiệm...........................................................................48
KẾT LUẬN HƯƠNG PHÁT TRIỂN ĐỀ TÀI........................................................53
1. Kết luận ..............................................................................................................53
2. Hướng phát triển đề tài........................................................................................54
TÀI LIỆU THAM KHẢO.....................................................................................58


3


DANH MỤC TỪ VIẾT TẮT
Từ viết tắt

Giải từ

Mô tả

BMP

BITMAP

DCT

Discrete Cosine
Transform/Transformation

Biến đổi Cosine rời rạc

DFT

Discrete Fourier
Transformation

Biến đổi Fourier rời rạc

DWT


Discrete Wavelet
Transformation

Hiệu chỉnh hệ số sóng
nhỏ

GIF

Graphics Interchange Format

HAS

Human Auditory System

JPEG

Joint Photographic Experts
Group

LSB

Least Significant Bit

Bit có trọng số thấp
nhất

MPD

Multi-Pixel Differencing


Vi phân đa điểm ảnh

PNG

Portable Network Graphics

PVD

Pixel Value Differencing

TIFF

Tag Image File Format

4

Hệ thống thính giác của
con người

Phương pháp vi phân
điểm ảnh


DANH MỤC HÌNH ẢNH
Hình 1.1 Mơ hình ẩn mã....................................................................................6
Hình 2.1 Cấu trúc ảnh GIF87a........................................................................14
Hình 2.2 Phân tích đa phân giải sử dụng biến đổi wavelet rời rạc..................32
Hình 2.3 Phép biến đổi wavelet rời rạc 2-D....................................................33
Hình 3.1 Sơ đồ thuật tốn bên gửi...................................................................45

Hình 3.2 Sơ đồ thuật tốn bên nhận................................................................46
Hình 4.1 Giao diện ứng dụng bên gửi.............................................................47
Hình 4.2 Giao diện ứng dụng bên nhận..........................................................48
Hình 4.3 Hình ảnh trước và sau khi ẩn mã......................................................49
Hình 4.4 Hình ảnh “minato.jpg” trước và sau khi ẩn mã................................51
Hình 4.5 Biểu đồ giá trị RGB trước và sau khi ẩn mã....................................52

5


DANH MỤC BẢNG BIỂU
Bảng 2.1 Chi tiết các khối byte của header tệp bitmap...................................17
Bảng 2.2 Chi tiết khối byte thông tin tệp bitmap............................................17
Bảng 2.3 Ví dụ ẩn giấu chữ A vào trong 8 byte của file gốc..........................20
Bảng 3.1 Ví dụ nhúng.....................................................................................41
Bảng 4.1 PSNR quan sát được của những hình ảnh trên................................50
Bảng 4.2 Tổng RGB của ảnh trước khi nhúng ẩn mã.....................................51
Bảng 4.3 Tổng RGB của ảnh sau khi nhúng ẩn mã........................................51

6


LỜI NĨI ĐẦU
Cách tiếp cận để truyền các thơng điệp bí mật là “ẩn mã”, đó là một kỹ thuật
mà theo nhiều chuyên gia trong lĩnh vực này - là một bộ môn nghệ thuật và khoa
học nhằm che giấu sự tồn tại của thông tin với mục tiêu che giấu các thơng điệp cần
giữ bí mật trong các dữ liệu “vô hại” khác để đối phương không thể phát hiện được
sự hiện diện của thông điệp. Ngày nay, kỹ thuật ẩn mã được thực hiện trong nhiều
môi trường khác nhau như : ảnh số, âm thanh, video, hay các loại văn bản…
Trong những năm gần đây, có rất nhiều nghiên cứu lớn, tập trung chủ vào

các kỹ thuật ẩn mã trong ảnh số.Giữa ảnh gốc và ảnh mang tin khi nhìn bằng mắt
thường sẽ rất khó để phân biệt.Do đó, thơng tin gần như vơ hình khi được truyền đi
trong thế giới hữu hình. Để có thể tăng khả năng đảm bảo an tồn cho thơng điệp từ
người gửi tới người nhận, cần phải có một phương pháp ẩn mã hiệu quả.
Một cách tiếp cận mới cho kỹ thuật ẩn mã dựa trên kênh RGB được đề xuất.
Thuật toán RSA được sử dụng để mã hóa và giải mã. Trong một hình ảnh RGB,
mỗi pixel (24 bit) có kênh R - 8 bit, kênh G - 8 bit và kênh B - 8 bit. Hình ảnh được
chia thành 8 khối và bản mã được chia thành 8 khối. Mỗi khối mã hóa được cấp
phát để được nhúng trong một khối hình ảnh chỉ bởi một khố phụ được xác định
bởi người dùng.
Ba kênh trong mỗi pixel của một hình ảnh được chọn sử dụng làm kênh chỉ
thị. Các kênh cho chỉ số khối khác nhau là không giống nhau. Hai kênh khác được
gọi là kênh dữ liệu, được sử dụng để ẩn các bit văn bản mã hóa ở 4 bit có trọng số
thấp nhất (LSB). Trong một kênh dữ liệu, 4 bit của bản mã có thể được nhúng, nếu
sau khi nhúng sự thay đổi trong giá trị pixel nhỏ hơn hoặc bằng 7. Hai LSB của chỉ
thị sẽ cho biết bản mã được nhúng trong một hay cả hai kênh dữ liệu. Bên nhận sẽ
thấy được nó.
1


Như đã thấy, đây là một cách ẩn mã rất hay. Việc giấu các kí tự vào những bit
thấp trong mỗi pixel của văn bản khiến cho sự thay đổi là rất ít. Việc sử dụng các
phương pháp phân tích, đánh giá biểu đồ trực quan…cũng khó có thể phát hiện sự
thay đổi trong hình ảnh đó. Điều này cho thấy các thơng điệp có thể được gửi đi mà
khơng lo bị dễ dàng phát hiện. Chỉ có sự nhất quán giữa bên gửi và bên nhận mới
có thể giải mã để xem nội dung của thơng điệp. Chính vì vậy em chọn đề tài
“Nghiên cứu kỹ thuật ẩn mã trong ảnh dựa trên phương pháp tiếp cận mới
trên kênh RGB” để tìm hiểu nghiên cứu và xây dựng ứng dụng trong việc truyền
tin mật với độ an toàn cao.


CHƯƠNG 1. TỔNG QUAN VỀ ẨN MÃ
2


1.1. Giới thiệu chung về ẩn mã
Ẩn mã – Steganography có nguồn gốc từ tiếng Hy Lạp: Stegos có nghĩa là
“Cover” - Che đậy và Grafia có nghĩa là “Writing” – Văn bản. Cover Writing được
hiểu là văn bản được che đậy. Do vậy, ẩn mã là khoa học và nghệ thuật về thơng tin
liên lạc vơ hình. Kỹ thuật này được thực hiện thông qua việc che giấu sự tồn tại của
thơng tin bằng việc ẩn nó vào một thông tin khác.
Theo các tài liệu nghiên cứu ghi lại, kỹ thuật ẩn mã cổ xưa nhất và cũng là
đơn giản nhất được nhắc tới trong các tài liệu là khi vua Histiaeus (khoảng năm 440
TCN) cạo sạch tóc xăm thơng điệp lên da đầu và chờ khi tóc mọc lại, người nơ lệ
đó chuyển thơng tin tới người nhận. Sau đó, người ta sử dụng các vật liệu tự nhiên
như bảng gỗ, sáp ong, hổ phách cho ẩn giấu thông tin.
Khi kỹ thuật phát triển hơn, con người sử dụng chữ viết với cỡ chữ nhỏ giấu
trong các vật dụng hàng ngày (như các hộp, vali có hai đáy) để chuyển đi, hoặc
dùng bồ câu để chuyển thông tin để che mắt các nhân viên an ninh, hải quan. Sang
thế kỷ 17, người ta dùng cách đánh dấu vào các kí tự cần thiết trên một văn bản,
một bài báo cơng khai nào đó rồi truyền tới tay người nhận. Sau đó là thời kì phát
triển rực rỡ của cơng nghệ hố học, trong thế chiến thứ hai người ta sử dụng mực
vơ hình để ẩn dấu thơng điệp bí mật. Loại mực vơ hình này được tạo lên từ những
chất liệu tự nhiên như là nước hoa quả, sữa, giấm, thậm chí là nước tiểu, khi có tác
động của nhiệt độ thì các dịng chữ sẽ hiện ra rất rõ ràng. Cùng với sự phát triển
của khoa học, con người đã tạo ra những loại mực vơ hình có khả năng che giấu
thơng tin cao hơn.Chẳng hạn như muốn biết được thơng điệp bị ẩn giấu thì phải kết
hợp các hố chất khác nhau để có thể hiển thị rõ thơng điệp bí mật được che giấu
bên trong.
Giấu thông tin trong ngôn ngữ, hành văn cũng được sử dụng từ lâu, với việc
lựa chọn theo một quy luật xác định như ghép các từ đầu của mỗi câu hay nhặt các

từ, các chữ cái theo một quy luật nào đó. Một hình thức cũng được người Trung
3


Hoa sử dụng rất nhiều là sử dụng một tờ giấy mẫu có đục các lỗ làm một “mặt nạ”
viết trước các nội dung cần giấu tại các vị trí đó, tiếp theo các nội dung “vơ hại”
khác lên sau, cách làm này tận dụng đặc điểm về chữ tượng hình và các từ đồng âm
khác nghĩa của chữ Hán.
Ngày nay, cùng với sự phát triển của công nghệ máy tính và Internet, thì an
ninh thơng tin được coi là một trong những yếu tố quan trọng nhất của công nghệ
thông tin và truyền thông. Hơn thế, các cuộc tấn công vào trang mạng hoặc truy cập
trái phép vào những dữ liệu bí mật đã vượt q giới hạn. Vì vậy, chúng ta cần phải
thực hiện các biện pháp nhằm bảo vệ các thơng tin bí mật đó. Trong đó có hai kỹ
thuật có mối liên hệ mật thiết với ẩn mã là thuỷ vân số và vân tay. Hai kỹ thuật này
chủ yếu dùng để bảo vệ những tài sản về sở hữu trí tuệ, do đó thuật tốn của chúng
cũng cần đáp ứng những yêu cầu khác so với ẩn mã.
1.2. Khái niệm ẩn mã
Ẩn mã là nghệ thuật và khoa học cho phép giấu đi sự tồn tại của thơng tin.
Với mật mã, kẻ thù có thể phát hiện, chặn bắt và thay đổi thông điệp ngay cả
khi không thể giải mã, nhưng mục tiêu của ẩn mã lại là giấu thông điệp vào một
thông điệp vô hại khác để kẻ thù không thể phát hiện được rằng có một thơng điệp
được giấu bên trong nó.
Chính vì vậy, ẩn mã không làm thay đổi cấu trúc thông tin mà chỉ ẩn giấu sự
tồn tại của thông tin vào một phương tiện khác. Các hệ thống ẩn mã ngày nay
thường sử dụng các đối tượng đa phương tiện để ẩn giấu như là: hình ảnh, âm
thanh, văn bản, video,… vì chúng thường được gửi và nhận hàng ngày qua thư điện
tử hoặc chia sẻ trên mạng Internet một cách cơng khai, mà kẻ thù thì khơng có lý
do để nghi ngờ khi bắt được một thông tin vô hại trên kênh truyền khơng an tồn
như vậy.
4



1.3. Một số thuật ngữ cơ bản
Khi nhắc tới một hệ thống ẩn mã, người ta thường sử dụng một số thuật ngữ
sau:
- Vật phủ: là tệp dữ liệu đa phương tiện ban đầu hay còn gọi là vật gốc. Tệp dữ
liệu đa phương tiện này có thể là hình ảnh, văn bản, âm thanh, video,…
- Thơng điệp bí mật: Là thông tin cần trao đổi, được giấu vào trong vật phủ.
- Vật mang tin: Là vật phủ sau khi đã được nhúng thơng điệp, hay cịn gọi là
vật chứa thơng điệp được giấu (nhúng).
- Khố ẩn mã: Là khố được sử dụng để nhúng hoặc tách thông điệp ra khỏi
vật mang tin (khố có thể được sử dụng hoặc không tuỳ thuộc vào từng giải pháp
của hệ thống ẩn mã)
1.4. Mơ hình ẩn mã
Khi thực hiện kỹ thuật ẩn mã ta cần thực hiện các bước như sau:
- Bước 1: Người gửi phải chọn vật phủ, khoá ẩn mã cũng như thuật tốn
nhúng thích hợp.
- Bước 2: Nhúng thơng điệp vào trong vật phủ bằng thuật toán nhúng, khi đó
ta được một vật mang tin.
- Bước 3: Người gửi sẽ gửi vật mang tin qua đường truyền không an tồn.
- Bước 4: Người nhận sẽ nhận thơng điệp, sau đó dùng thuật tốn tách và khố
ẩn mã để tách lấy thơng điệp ẩn.
Mơ hình Ẩn mã được trình bày trong Hình 1.1.

5


Hình 1.1Mơ hình ẩn mã
1.5. Một số kỹ thuật ẩn mã cơ bản
Trong kỹ thuật ẩn mã có nhiều cách phân loại kỹ thuật ẩn mã khác nhau.

Nhưng khi xét theo mơi trường nhúng tin thì ẩn mã được chia thành năm kỹ thuật
ẩn mã cơ bản là: ẩn mã trong ảnh, ẩn mã trong âm thanh, ẩn mã trong video, ẩn mã
trong tệp văn bản và cuối cùng là ẩn mã trong giao thức.
1.5.1. Ẩn mã trong ảnh
Trong thời kỳ cơng nghệ hiện đại như hiện nay thì ẩn mã trong ảnh là một kỹ
thuật phổ biến nhất trong tất cả những kỹ thuật ẩn mã đã biết. Bởi kỹ thuật này có
thể lợi dụng những hạn chế của thị giác con người nhằm đánh lừa tư duy con
người. Tất cả các văn bản, đoạn mã hay những hình ảnh mà có thể được mã hố
thành chuỗi bit nhị phân thì đều có thể ẩn giấu vào trong ảnh.
Khi thơng điệp bí mật được giấu vào trong ảnh thì chất lượng của ảnh ít nhiều
có sự thay đổi nhưng khơng đáng kể và rất khó để nhận ra sự thay đổi đó nếu chỉ
dựa vào mắt thường.Hơn nữa ẩn mã trong ảnh sẽ ít đem tới sự chú ý của kẻ tấn
6


cơng.Vì vậy mà mơi trường dữ liệu ảnh trở thành mơi trường có tính ứng dụng cao
trong kỹ thuật ẩn mã và trở thành môi trường nhúng phổ biến khi cần truyền tin bí
mật.
1.5.2. Ẩn mã trong âm thanh
Ẩn mã trong tệp âm thanh là kỹ thuật khó nhất trong các kỹ thuật ẩn mã. Bởi
ẩn mã trong âm thanh phụ thuộc vào hệ thống thính giác của con người (HAS –
Human Auditory System). Mà HAS có thể nghe được các tín hiệu ở các dải tần rất
rộng và dải cường độ lớn nên sẽ gây khó khăn trong việc thêm vào hoặc loại bỏ các
dữ liệu ra khỏi cấu trúc dữ liệu ban đầu. Chính vì thế, khi thực hiện ẩn mã trong âm
thanh đòi hỏi yêu cầu rất cao về tính đồng bộ và tính an tồn của thơng điệp được
giấu đi. May mắn hơn, HAS lại có một điểm yếu là khó phân biệt được sự khác biệt
của các dải tần và công suất của dải âm thanh, có nghĩa là các âm thanh to, cao tần
có thể che giấu được các âm thanh nhỏ ở tần số thấp hơn một cách dễ dàng.
Nhưng kỹ thuật ẩn mã trong âm thanh này lại gặp vấn đề rắc rối khi truyền đi
trên kênh truyền. Bởi nếu kênh truyền hay băng thông bị chậm cũng sẽ ảnh hưởng

đến chất lượng của thông điệp sau khi bị giấu đi, dẫn tới thông điệp khi đến được
với người nhận sẽ bị sai lệch so với thông điệp ban đầu.
1.5.3. Ẩn mã trong video
Cũng giống như ẩn mã trong ảnh hay trong âm thanh, ẩn mã trong video cũng
được quan tâm và phát triển mạnh mẽ cho nhiều ứng dụng như: Điều khiển truy cập
thông tin, xác thực thông tin và bảo vệ quyền tác giả. Ẩn mã trong video là kỹ thuật
giấu một loại tệp và thông tin bất kỳ nào đó vào một đoạn video. Về mặt kỹ thuật
cơ bản thì video là một tập hợp những hình ảnh được xắp sếp liên tục theo thời
gian. Vì vậy có thể lấy từng khung hình, sau đó ẩn giấu những thơng điệp bí mật
vào từng khung hình đó, sau đó lưu thành một tệp video mới.Hơn nữa, trong video
khơng chỉ có các hình ảnh, mà cịn có cả âm thanh.Vì vậy ta hồn tồn có thể kết
7


hợp ẩn mã trong ảnh và ẩn mã trong âm thanh vào kỹ thuật ẩn mã trong video này.
Điều này chứng tỏ rằng: Một tệp video có thể ẩn giấu được một lượng rất lớn thơng
điệp bí mật.
1.5.4. Ẩn mã trong tệp văn bản
Ẩn mã trong văn bản là kỹ thuật địi hỏi người gửi có trình độ cũng như hiểu
biết rất rõ về ẩn mã.Bởi trong tệp văn bản có q ít dữ liệu dư thừa để có thể thay
thế.Hơn nữa văn bản được gọi là Vật phủ cũng dễ dàng bị sửa đổi bởi những bên
không liên quan bằng cách sửa một vài ký tự hoặc thay đổi định dạng mới cho tệp.
1.5.5. Ẩn mã trong giao thức
Trong các giao thức như TCP, UDP, ICMP, IP,... đều có thể trở thành vật phủ
để ẩn mã. Trong mơ hình OSI có những kênh ngầm (covert channel), người dùng
có thể mạo danh thông tin định danh trong header của TCP/IP để giấu đi định danh
thật của một hay nhiều tổ chức.
1.6. Một số ứng dụng của ẩn mã trong thực tế
Với sự hồn hảo của các tiện ích đa phương tiện số và những tiến bộ của công
nghệ, ẩn mã ngày càng phát triển và được ứng dụng khắp nơi.Trên thực tế ẩn mã có

thể được ứng dụng trong rất nhiều trường hợp, ví dụ như:Trong lĩnh vực an tồn
thơng tin: ẩn mã được kết hợp với các phương pháp mật mã để có thể chuyển các
thơng báo mật đi dưới một bức tranh, một bản nhạc vô hại, nhờ thế làm tăng thêm
vòng bảo mật của chúng.

8


CHƯƠNG 2. TỔNG QUAN VỀ ẨN MÃ TRONG ẢNH
2.1. Các định dạng ảnh thường dùng để ẩn mã
Cấu trúc ảnh bao gồm 3 phần chính là: Header – chứa thơng tin tệp ảnh; Dữ
liệu ảnh – số liệu ảnh được mã hoá bởi kiểu mã hoá chỉ ra trong phần Header và
Bảng màu. Tuy nhiên mỗi định dạng ảnh lại có những đặc trưng khác nhau, trong
đó có một số định dạng được sử dụng phổ biến như: Định dạng ảnh JPEG; Định
dạng ảnh TIFF; Định dạng ảnh PNG; Định dạng ảnh GIF và Định dạng ảnh BMP.
2.1.1. Định dạng ảnh JPEG
JPEG (Joint Photographic Experts Group) – là một trong những phương pháp
nén ảnh hiệu quả, có tỷ lệ nén ảnh tới vài chục lần. Chính nhờ lý do này mà định
dạng ảnh JPEG trở thành định dạng phổ biến nhất để lưu trữ ảnh trên Web và được
hỗ trợ bởi tất cả các trình duyệt Web.
Tuy nhiên ảnh sau khi được giải nén sẽ khác với ảnh ban đầu. Chất lượng của
ảnh sẽ bị suy giảm sau khi giải nén.Cũng vì vậy nó khơng được các nhiếp ảnh gia
sử dụng. Trong quá trình nén dữ liệu của file JPEG, dữ liệu ảnh trên các pixel bị
thay đổi, các vùng ảnh q nhỏ khơng thể nén được sẽ bị xố vĩnh viễn. Điều này
gây ảnh hưởng tới màu sắc của bức ảnh. Hơn nữa chất lượng ảnh dẽ giảm dần trong
quá trình sử dụng khiến JPEG được gọi là định dạng file “làm mất dữ liệu”
Ưu điểm:
- Lưu trữ ảnh 24-bit màu (lên tới 16 triệu màu)
- Màu sắc đa dạng, phù hợp với các ảnh cần chú trọng tới chi tiết màu
- Được sử dụng rộng rãi nhất

- Phù hợp với tất cả các hệ điều hành (Mac, PC, Linux)
Nhược điểm:
- Thường mất thông tin nhiều
9


- Sau khi nén, màu của ảnh nhìn khơng được thật
- Không hỗ trợ ảnh động
- Không hỗ trợ màu trong suốt (màu nền)
2.1.2. Định dạng ảnh TIFF
TIFF (Tag Image File Format) - là một định dạng file ảnh chất lượng cao, định
dạng ảnh này “không làm mất dữ liệu” của ảnh trong q trình lưu trữ hay giải nén.
Chính nhờ ưu điểm này giúp TIFF trở thành định dạng mẫu mực trong việc lưu trữ
tư liệu hình ảnh.
Cấu trúc của định dạng ảnh TIFF bao gồm 3 phần:
- Phần Header IFH (Image File Header) có trong tất cả các tệp TIFF, bao gồm
8 byte.
+ 1 word: Chỉ ra kiểu tạo tệp trên máy tính PC hay Macintosh. Hai loại này
khác nhau rất lớn ở thứ tự các byte lưu trữ trong các số dài 2 hay 4 byte. Nếu
trường này có giá trị là 4D4Dh thì đó là ảnh cho máy Macintosh, cịn nếu là 4949h
thì là của máy PC.
+ 1 word: Là số phiên bản, ln có giá trị là 42. Có thể coi đó là đặc trưng
của file TIFF vì nó khơng thay đổi kể cả khi được nén.
+ 2 word: Là giá trị Offset theo byte tính từ đầu file tới cấu trúc IFD.
- Phần thứ hai IFD (Image File Derictory): Nó khơng ở ngay sau IFH mà vị trí
của nó được xác định bởi trường Offset trong đầu tệp.
Một IFD bao gồm:
+ 2 byte: chứa các DE (Derictory Entry).
+ 12 byte: Là các DE xếp liên tiếp. Mỗi DE chiếm 12 byte.
+ 4 byte: Chứa Offset trỏ tới IFD tiếp theo.


10


- Cấu trúc phần dữ liệu thứ 3: Các DE có độ dài cố định 12 byte và gồm 4
phần:
+ 2 byte: Chỉ ra dấu hiệu mà ảnh đã được xây dựng.
+ 2 byte: Kiểu dữ liệu của tham số ảnh. Có 5 kiểu tham số cơ bản:
BYTE (1 byte)
ASCII (1 byte)
SHORT (2 byte)
LONG (4 byte)
RATIONAL (8 byte)
+ 4 byte: trường độ dài (bộ đếm) chứa số lượng chỉ mục của kiểu dữ liệu đã
chỉ ra. Nó khơng phải là tổng số byte cần thiết để lưu trữ.Để có số liệu này ta cần
nhân số chỉ mục với kiểu dữ liệu đã dùng.
+ 4 byte: Đó là Offset tới điểm bắt đầu dữ liệu thực liên quan tới dấu hiệu,
tức là dữ liệu liên quan với DE không phải lưu trữ vật lý cùng với nó nằm ở một vị
trí nào đó trong file. Dữ liệu chứa trong tệp thường được tổ chức thành các nhóm
dịng (cột) qt của dữ liệu ảnh.
Ưu điểm:
- Là định dạng rất linh động, hỗ trợ nhiều kiểu nén khác nhau như JPEG,
LZW, ZIP.
- Lưu trữ thông tin về màu sắc và cả thông tin về ảnh (thời gian chụp, máy
chụp, tốc độ chụp,…)
- Có thể lưu trữ dưới dạng các layers.
Nhược điểm:
- Kích thước ảnh lớn nên thời gian truyền và không gian đĩa lưu trữ lớn.
- Tốc tộ hiển thị ảnh chậm.
11



2.1.3. Định dạng ảnh PNG
PNG (Portable Network Graphics) – Là một định dạng hình ảnh sử dụng
phương pháp nén dữ liệu mới – không làm mất đi dữ liệu gốc. PNG được hỗ trợ bởi
thư viện tham chiếu Libpng, một thư viện nền độc lập bao gồm các hàm của C để
quản lý các hình ảnh PNG.
Một tập tin PNG bao gồm 8 – byte ký hiệu (89 50 4E 47 0D 0A 1A) được viết
trong hệ thống có cơ số 16, chứa các chữ “PNG” và 2 dấu xuống dòng, ở giữa là
xếp theo số lượng của các thành phần, mỗi thành phần đều chứa thơng tin về hình
ảnh. Cấu trúc dựa trên các thành phần được thiết kế cho phép định dạng PNG có
thể tương thích với các phiên bản cũ khi sử dụng các “thành phần” trong tập tin.
PNG có cấu trúc như một chuỗi các thành phần, mỗi thành phần chứa kích
thước, kiểu, dữ liệu và mã sửa lỗi CRC ngay trong nó.
Chuỗi được gán tên bằng bốn chữ cái phân biệt chữ hoa, chữ thường.Sự phân
biệt này giúp bộ giải mã phát hiện bản chất của chuỗi khi nó khơng nhận dạng
được.
Với chữ cái đầu, viết hoa thể hiện chuỗi này là cần thiết.Chuỗi này chứa thông
tin cần thiết để đọc được tệp và nếu bộ giải mã khơng nhận dạng được chuỗi này thì
việc đọc tệp sẽ được huỷ bỏ.
Về cơ bản thì định dạng PNG đem lại cho ta những ưu thế vượt trội hơn so với
các định dạng phổ thông khác hiện nay như JPG, GIF, BMP…. Những ưu thế được
thể hiện rõ sức mạnh hơn khi được sử dụng trong môi trường đồ hoạ Web.
Ưu điểm:
- Nén không bị mất dữ liệu ảnh
- Cho chất lượng ảnh tốt hơn so với GIF, PNG thậm chí cịn cho ảnh kích
thước nhỏ hơn cả GIF
- Hỗ trợ màu trong suốt (màu nền) tốt hơn GIF
12



Nhược điểm:
- Khơng phù hợp với các ảnh kích thước lớn
- Không hỗ trợ ảnh động
- Chỉ được hỗ trợ bởi một số trình duyệt chứ khơng phải tất cả
2.1.4. Định dạng ảnh GIF
GIF (Graphics Interchange Format) – là một định dạng tập tin hình ảnh bitmap
cho các hình ảnh dùng ít hơn 256 màu sắc khác nhau và các hoạt hình dùng ít hơn
256 màu sắc cho mỗi khung hình.Định dạng này thường dùng cho sơ đồ, hình vẽ,
nút bấm và các hình màu.GIF là định dạng nén dữ liệu đặc biệt hữu ích cho việc
truyền hình ảnh qua đường truyền lưu lượng nhỏ.Đây là một giải pháp tốt cho hình
ảnh trên mạng, cho các hoạt hình nhỏ và ngắn.Định dạng được ra đời vào năm 1987
và nhanh chóng được ứng dụng rộng rãi trên World Wide Web cho đến nay.
GIF sử dụng thuật tốn nén Loss less (khơng bị mất dữ liệu), điều đó cho phép
chúng tạo ra kích thước nhỏ mà khơng bị mất hoặc mờ bất kỳ chi tiết nào của ảnh.
Có hai phiên bản của định dạng GIF, cả hai đều được phân phối rộng rãi.Phiên
bản đầu tiên là GIF87a, có rất nhiều chức năng được tạo dưới định dạng này. Phiên
bản hiện tại là GIF89a, có bổ sung thêm một số chức năng, trong đó chức năng lưu
trữ các ký tự và dữ liệu ảnh trong cùng một tệp. Hai phiên bản này có thể được
phân biệt dựa vào 6 byte đầu tiên của tập tin.
* GIF87a
Phiên bản GIF87A Là định dạng GIF đầu tiên, ra mắt vào năm 1987, tất cả các
phần mền, ứng dụng hỗ trợ định dạng GIF đều có thể đọc được GIF87a.
Hình 2 - Mơ tả về cấu trúc cơ bản của GIF87a.Mỗi tệp ảnh luôn bắt đầu với
một header và một bộ mô ta hiển thị, sau bộ mô tả hiển thị là một bộ bảng màu tổng
thê.Mỗi ảnh lưu trữ trong tệp bao gồm một bộ mô tả ảnh cục bộ, một bảng màu cục

13



bộ và một khối dữ liệu ảnh.Trường cuối cùng của mỗi tệp GIF là một ký tự kết thúc
để biểu thị sự kết thúc chuỗi dữ liệu GIF.

Hình 2.1 Cấu trúc ảnh GIF87a
- Header gồm 6 byte:
+ 3 byte: ký hiệu của ảnh, luôn luôn là “GIF”
+ 3 byte: Phiên bản định dạng GIF (87a hay 89a)
- Bộ mô tả hiển thị:
+ 1 word: Chiều rộng màn hình hiển thị tính theo Pixels
+ 1 word: Chiều cao màn hình hiển thị tính theo Pixels
+ 1 byte: Thơng tin về màn hình và bản đồ màu
+ 1 byte: Chỉ số màu nền
+ 1 byte: Khuân dạng điểm ảnh
- Bộ mô tả ảnh cục bộ:
+ 1 byte: Định dạng bộ mô tả ảnh
+ 1 word: Pixel bắt đầu ảnh tính từ trái màn hình hiển thị
14


+ 1 word: Pixel bắt đầu tính từ trên cùng màn hình hiển thị
+ 1 word: Độ rộng của ảnh tính theo Pixels
+ 1 word: Chiều cao của ảnh tính theo Pixels
+ 1 byte: Thông tin dữ liệu bảng màu và ảnh
- Dữ liệu ảnh: Là chuỗi các giá trị có thứ tự của các điểm ảnh màu tạo nên
ảnh. Các điểm ảnh được xếp liên tục trên một dòng ảnh, từ trái qua phải.Các dòng
ảnh được viết từ trên xuống dưới.
- Ký tự kết thúc: Là một byte được coi là ký tự cuối cùng của tệp. Giá trị của
byte này luôn là 3Bh và biểu thị kết thúc của chuỗi dữ liệu GIF.Mọi tệp GIF đều
phải có ký tự kết thúc.
* GIF89a:

Phiên bản 89a là phiên bản mới nhất của định dạng tệp ảnh GIF, được công bố
vào năm 1989. Về cơ bản thì nó gần giống với phiên bản trước, chỉ bổ sung thêm
một số thông tin khơng có trong 87a. Do đó một số thiết bị nếu chỉ đọc được tệp
ảnh 87a thì khi đọc sang ảnh 89a sẽ bị hiển thị sai thông tin trong tệp.
Ưu điểm:
- Hỗ trợ màu trong suốt (màu nền)
- Hỗ trợ ảnh động
- Kích thước ảnh sau khi nén rất nhỏ (do chỉ giới hạn còn 256 màu trong ảnh)
- Phù hợp với các ảnh đồ thị, ảnh hoạt hình (sô lượng màu sắc không quá
nhiều)
Nhược điểm:
- Chỉ hỗ trợ 256 màu
- Là định dạng ảnh cổ nhất (tồn tại từ năm 1989) và tới nay vẫn chưa ra đời
phiên bản mới hơn
15


×