KỸ THUẬT GIẤU TIN 1.1 Khái niệm Giấu tin là kỹ thuật nhúng một thông tin nào đó có tính chất nhạy cảm vào một đối tượng chứa nhằm che giấu sự tồn tại của tin đó trước các đối thủ nhưng v
Trang 1PHỤC LỤC
PHỤC LỤC 1
LờI CảM ƠN 3
MỞ ĐẦU 5
CHƯƠNG 1 KỸ THUẬT GIẤU TIN 8
1.1 K HÁI NIệM 8
1.2 C ÁC Kỹ THUậT GIấU TIN 8
1.3 M Ô HÌNH GIấU TIN VÀ GIảI TIN TổNG QUÁT 9
1.4 S ự KHÁC BIệT GIŨA STEGANOGRAPHY , WATERMARKING VÀ CRYPTOGRAPHY 10 1.5 M ộT Số ứNG DụNG ĐƯợC TRIểN KHAI 11
1.6 M ÔI TRƯờNG GIấU TIN 13
1.6.1 Giấu tin trong audio 13
1.6.2 Giấu thông tin trong video 14
1.6.3 Giấu tin trong ảnh số 14
CHƯƠNG 2 ẢNH SỐ 18
2.1 G IớI THIệU Về ảNH Số 18
2.2 Ả NH RASTER 18
2.2.1 Các loại ảnh raster 19
2.2.2 Định dạng ảnh raster 19
2.3 Ả NH VECTOR 20
2.4 C ÁC Kỹ THUậT NÉN ảNH ( IMAGE COMPRESSION ) 22
CHƯƠNG 3 ẢNH BITMAP (BMP) VÀ THUẬT TOÁN LSB ĐƠN GIẢN 24
3.1 Ả NH BMP 24
3.1.1 Khả năng lưu trữ 24
3.1.2 Device-independent bitmaps và định dạng file BMP 25
3.1.3 BMP file header 26
3.1.4 Bitmap information (DIB header) 27
3.1.5 Bảng màu (Color palette) 29
3.1.6 Dữ liệu ảnh bitmap 30
3.2 T HUậT TOÁN LSB ĐƠN GIảN TRÊN MIềN KHÔNG GIAN 31
CHƯƠNG 4 ẢNH JPEG 34
4.1 C HUẩN JPEG VÀ ứNG DụNG 34
4.2 C ấU TRÚC ảNH JPEG 35
Trang 24.3.1 Mã hóa 43
4.3.2 Giải mã file JPEG 53
CHƯƠNG 5 THUẬT TOÁN LSB (YUAN, HSIANG-KUANG PAN VÀ YU-CHEE TSENG) VÀ ỨNG DỤNG VỚI ẢNH BMP VÀ JPEG 57
5.1 G IớI THIệU 57
5.2 T HUậT TOÁN 58
5.2.1 Các kí hiệu dùng trong thuật toán 58
5.2.2 Đặt vấn đề 58
5.2.3 Các bước giấu tin vào Fi 60
5.3 Đ ộ AN TOÀN CủA THUậT TOÁN 62
5.4 V Í Dụ MINH HọA GIấU TIN TRONG ảNH BITMAP (BMP) 63
5.5 G IấU TIN TRONG ảNH JPEG 66
CHƯƠNG 6 CÀI ĐẶT VÀ CHƯƠNG TRÌNH MINH HỌA 70
6.1 C ÀI ĐặT CHƯƠNG TRÌNH 70
6.2 M Ô HÌNH LớP 70
6.3 M Ô HÌNH TUầN Tự CHO CHứC NĂNG GIấU TIN 73
6.3.1 Mô hình giấu tin vào ảnh bitmap 74
6.3.2 Mô hình giấu tin vào ảnh JPEG 75
6.4 M Ô HÌNH TUầN Tự CHO CHứC NĂNG GIảI TIN 76
6.4.1 Mô hình giải tin từ ảnh BMP 77
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 86
TÀI LIỆU THAM KHẢO 88
Trang 3Lời cảm ơn
Để hoàn thành tốt khóa học và luận văn tốt nghiệp của mình, em đã nhận được rất nhiều sự giúp đỡ và giảng dạy tận tình của các thầy cô trong khoa Công Nghệ Thông Tin trường Đại học Nha Trang Bên cạnh những bài giảng trên lớp, thầy cô còn cung cấp những kinh nghiệm thực tế vô cùng quý báu Em xin bày tỏ lòng biết ơn đến tất cả các thầy cô
Đặc biệt em xin cảm ơn đến thầy Trần Minh Văn, giáo viên trực tiếp hướng dẫn
và chỉ bảo em trong suốt quá trình thực hiện đề tài Đồng thời, em cũng cảm ơn đến các bạn trong lớp đã tham gia góp ý và hỗ trợ em hoàn thành tốt luận văn này
Tuy đã nỗ lực hết sức nhưng vẫn không thể không tránh khỏi những thiếu sót tiềm ẩn, vì thế em rất mong nhận được những góp ý từ các thầy cô cũng như tất cả các bạn
Trang 5MỞ ĐẦU
Giới thiệu và mục tiêu của đề tài
Cuộc cách mạng thông tin kỹ thuật số đã đem lại những thay đổi sâu sắc trong xã hội và trong cuộc sống của chúng ta Những thuận lợi mà thông tin kỹ thuật số mang lại cũng sinh ra những thách thức và cơ hội mới cho quá trình đổi mới Sự ra đời những phần mềm có tính năng mạnh, các thiết bị mới như máy ảnh kỹ thuật số, máy quét chất lượng cao, máy in, máy ghi âm kỹ thuật số, v.v cùng với mạng Internet toàn cầu như một xã hội ảo, nơi diễn ra quá trình trao đổi thông tin trong mọi lĩnh vực chính trị, quân
sự, quốc phòng, kinh tế, thương mại… đã tác động rất lớn đến đời sống con người chúng ta Và, chính trong môi trường mở, tiện nghi như thế các vấn nạn và tiêu cực xã hội cũng không ngừng tăng cao Do đó, xã hội đang rất cần đến các giải pháp hữu hiệu cho vấn đề an toàn thông nhằm ngăn ngừa và chống lại các tệ nạn ăn cắp bản quyền, nạn xuyên tạc thông tin, truy nhập thông tin trái phép v.v
Trong một quá trình phát triển lâu 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ã học là giải pháp được ứng dụng rộng rãi nhất Các hệ mã mật đã được phát triển nhanh chóng và được ứng dụng rất phổ biến cho đến tận ngày nay 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ó rất nhiều những hệ mã phức tạp được sử dụng như DES, RSA, AES và phương pháp này đã được chứng minh thực tế là rất hiệu quả và được ứng dụng phổ biến
Nhưng ở đây ta không định nói về các hệ mã mật mà ta tìm hiểu về một phương pháp đã và đang được nghiên cứu và ứng dụng rất mạnh mẽ ở nhiều nước trên thế giới
đó là phương pháp giấu tin (data hiding) Đây là phương pháp mới và phức tạp, nó đang được xem như một công nghệ chìa khoá cho vấn đề bảo vệ bản quyền, nhận thực thông tin và điều khiển truy cập … ứng dụng trong an toàn và bảo mật thông tin
Trang 6Giấu thông tin (Steganography) là một kỹ thuật nhúng thông tin (embedding) vào trong một nguồn đa phương tiện gọi là các phương tiện chứa (host data) mà không gây ra sự nhận biết về sự tồn tại của thông tin giấu (invisible)
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) Các câu chuyện kể về kỹ thuật giấu thông tin được truyền qua nhiều thế hệ, ý 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 rất nhiều các công trình nghiên cứu Cuộc cách mạng số hoá thông tin và sự phát triển nhanh chóng của mạng truyền thông là nguyên nhân chính dẫn đến sự thay đổi này Các kỹ thuật sao chép, thay thế, sửa đổi tinh vi, cộng với sự lưu thông phân phối trên mạng của các dữ liệu đa phương tiện đã sinh ra rất nhiều vấn đề nhức nhối về nạn ăn cắp bản quyền, phân phối bất hợp pháp, xuyên tạc trái phép
Sự khác biệt chủ yếu giữa mã hoá thông tin và giấu thông tin là phương pháp mã hoá làm cho các thông tin hiện rõ là nó có được mã hoá hay không, còn đối với phương pháp giấu thông tin thì người ta sẽ khó biết được là có thông tin giấu bên trong do tính chất ẩn (invisible) của thông tin được giấu Một khi những thông tin mã hoá bị phát hiện thì những tên tin tặc sẽ tìm mọi cách để triệt phá Và cuộc chạy đua giữa những người bảo vệ thông tin và bọn tin tặc vẫn chưa kết thúc tuyệt đối về bên nào Trong hoàn cảnh đó thì giấu thông tin trở thành một phương pháp hữu hiệu
Mục tiêu của đề tài
Với mục đích hiểu rõ thêm về information hiding (IH),đề tài của em sẽ tìm hiểu
về một nhánh của IH đó là steganography (giấu tin mật) và đây là một nhánh nghiên
cứu khá nổi trội trong vấn đề bảo mật ngày nay
Đề tài sẽ áp dụng kỹ thuật này lên đối tượng ảnh số bitmap và quan trọng hơn cả
Trang 7là ảnh JPEG sủ dụng thuật toán giấu tin vào các bit ít quan trọng (LSB - least
significant bit) của 3 nhà khoa học Đài Loan là Yuan, Hsiang-Kuang Pan và Chee Tseng (Department of Computer Science and Information Engineering National Chiao Tung University Hsin-Chu, 30050, Taiwan)
Trang 8Yu-CHƯƠNG 1 KỸ THUẬT GIẤU TIN 1.1 Khái niệm
Giấu tin là kỹ thuật nhúng một thông tin nào đó có tính chất nhạy cảm vào một đối tượng chứa nhằm che giấu sự tồn tại của tin đó trước các đối thủ nhưng vẫn không làm ảnh hưởng nhiều đến chất lượng của đối tượng chứa
1.2 Các kỹ thuật giấu tin
Do kỹ thuật giấu tin mới được hình thành trong những năm gần đây nên hướng
phát triển chưa ổn định Nhiều phướng pháp mới theo nhiều khía cạnh khác nhau đang được đề xuất, bởi vậy một định nghĩa chình xác, một đánh giá phân loại rõ ràng chưa thể thực hiện được Sơ đồ phân loại được Fabien A.P Peticolas đề xuất năm 1999 như sau:
Information Hiding (Giấu tin)
Steganography
(Giấu tin mật)
Watermarking (Thủy vân số)
Robust Copyright (Thủy vân bền vững)
Fragile Watermarking (Thủy vân yếu)
Imperceptible Watermarking (Thủy vân ẩn)
Visible Watermarking (Thủy vân hiện)
Hình 1.1 Sơ đồ phân loại giấu tin
Trang 9Có thể chia lĩnh vực giấu tin thành hai hướng chính: đó là watermarking và steganography Nếu như watermarking (thủy vân) quan tâm nhiều đến ứng dụng giấu các mẫu tin ngắn nhưng đòi hỏi sự bền vững của thông tin cần giấu (trước các biến đổi thông thường của đối tượng chứa) thì steganography lại quan tâm tới ứng dụng che giấu các bản tin đòi hỏi độ bí mật và dung lượng càng lớn càng tốt Đối với từng hướng, quá trình phân loại theo các tiêu chí khác có thể tiếp tục được thực hiện, ví dụ dựa vào ảnh hưởng tác động từ bên ngoài có thể chia watermarking thành hai loại, một loại bền vững với 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: dễ bị phá hủy trước các tác động này Cũng có thể chia watermarking theo đặc tính, một loại cần được che giấu để chỉ một số người tiếp xúc với nó có thể thấy được thông tin, loại thứ hai ngược lại, cần được mọi người nhìn thấy
1.3 Mô hình giấu tin và giải tin tổng quát
Thông điệp cần giấu và sẽ được nhúng vào phương tiện chứa và được biến đổi bởi bộ nhúng tin để đảm bảo an toàn cho thông điệp đồng thời hạn chế tối đa sự thay đổi bên ngoài cho phương tiện chứa Thông điệp chỉ được trích xuất ra từ phương tiện chứa đã được nhúng khi có hóa bí mật này
Phương tiện chứa
đã được giấu tin
Bộ nhúng tin
Phương tiện chứa (video, audio, ảnh)
Thông tin cần giấu
Khóa bí mật
Phương tiện chứa
đã được giấu tin
Bộ nhúng tin
Phương tiện chứa (video, audio, ảnh)
Thông tin cần giấu
Khóa bí mật
Phương tiện chứa
đã được giấu tin
Bộ nhúng tin
Phương tiện chứa (video, audio, ảnh)
Thông tin cần giấu
Khóa bí mật
Bộ nhúng tin
Phương tiện chứa (video, audio, ảnh)
Thông tin cần giấu
Khóa bí mật
Hình 1.2 Mô hình giấu tin
Trang 101.4 Sự khác biệt giũa steganography, watermarking và cryptography
Cả 3 phương pháp trên đều hướng tới việc đảm bảo an toàn cho nguồn tin truyền giữa người gửi và người nhận Tuy nhiên chúng có những cách thức khác nhau và chúng ta cần làm rõ hơn về điều này
Mật mã học hay cryptography là việc bảo vệ nội dung của thông điệp bằng cách làm biến đổi thông điệp để thông điệp trở nên vô nghĩa, còn đối với
steganography/watermarking đề cập đến sự che giấu bản tin hay che đậy sự tồn tại của chúng trong một đối tượng không có ý nghĩa cơ mật Steganography/watermarking do
đó cũng được gọi là sự ẩn thông tin trong thông tin khác và nó áp dụng cả đặc điểm thị giác và thính giác của con người
Sự thành công của kẻ tấn công các phương thức trên cũng có sự khác nhau Đối với cryptography, kẻ tấn công khi đã đọc được thông điệp bí mật thì đó chính là thành công trong việc phá vỡ rào cản đối với thông điệp đó Tuy nhiên, đối với
steganography/ watermarking thì người tấn công phải thực hiện tới hai công đoạn, một
là phải phát hiện được có thông tin mật đang được giấu hay không, hai là có thể đọc,
Phương tiện chứa
đã có tin giấu bên trong
Bộ nhúng tin
Phương tiện chứa
đã có tin giấu bên trong
Thông tin cần giấu
Khóa bí mật
Phương tiện chứa
đã có tin giấu bên trong
Bộ nhúng tin
Phương tiện chứa
đã có tin giấu bên trong
Thông tin cần giấu
Khóa bí mật
Hình 1.3 Mô hình giải tin
Trang 11sửa đổi hoặc xóa bỏ thông điệp đó hay không
Tuy steganography/watermarking tạo ra nhiều rào cản hơn nhằm làm tăng sự khó khăn cho đối thủ nhưng khi việc phát hiện có thông điệp chứa trong đối tượng mang thì
độ an toàn của chúng lại không còn cao nữa
Watermarking và steganography có những khác biệt cũng không rõ ràng
Watermarking cũng sẽ giấu thông điệp vào trong đối tượng chứa, và đối tượng chứa này khi đã được giấu tin vào thì không thể phân biệt với nguyên bản Nhưng đối với watermarking, theo một cách nào đó thì kẻ xấu không thể xóa hoặc sửa đổi thông điệp bên trong đới tượng chứa
Steganography do đó không chú trọng nhiều đến việc xóa bỏ hay biến đổi thông điệp được che giấu bên trong, nhưng đối với watermarking điều này trở nên vô cùng quan trọng
Thường thì mục đích của steganography và cryptography là bảo vệ thông điệp giữa hai người hay hai đối tượng với nhau, còn watermarking thì lại khác, nó có vai trò bảo vệ thông điệp giữa một người hoặc một đối tượng với nhiều người, nhiều đối tượng khác
1.5 Một số ứng dụng được triển khai
Ø Bảo vệ quyền tác giả (Copyright protection): đây là ứng dụng cơ bản nhất của
kỹ thuật thủy vân Một thông tin nào đó mang ý nghĩa quyền sở hữu của tác giả (gọi là thủy vân : watermarking) sẽ được nhúng vào trong các sản phẩm, thủy vân đó chỉ người 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 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ảm phẩm, chống lại việc lấy cắp hoặc làm nhái thì cần phải có một số kỹ thuật để “đóng
Trang 12vân nhưng cần phải đảm bảo không làm ảnh hưởng đế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à thủy vân phải tồn tại bền vững cùng sản phẩm, muốn hủy bỏ thủy vân này mà không được phép của chủ sở hữu thì chỉ có cách hủy sản phẩm
Ø Chứng thực thông tin hay phát hiện xuyên tạc thông tin: Một tập 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ữ iệu trên phương tiện gốc có bị thay đổi hay không? Các thủy vân nên được ẩn để tránh sự tò mò của những người không có trách nhiệm hơn nữa việc làm giả các thủy vân hợp lệ hay xuyên tạc thông tin nguồn 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í 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 cao và thuỷ vân không cần bền vững
Ø Dấu vân tay hay dán nhãn (fingerprinting and labeling): Thuỷ vân trong những ứng dụng này đựơ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 đó 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á dấu vết trong khi phân phối
Ø Điều khiển truy cập (copy control): Các thuỷ vân trong những trường hợp này được sử dụng để điều khiển truy cậ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 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
Trang 13Ø Chú giải: 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
1.6 Môi trường giấu tin
Kỹ thuật giấu tin đã được nghiên cứu và áp dụng trong nhiều môi trường dữ liệu khác nhau như trong dữ liệu đa phương tiện (text, image, audio, video), trong sản phẩm phần mềm và gần đây là những nghiên cứu trên môi trường cơ sở dữ liệu quan hệ Trong các môi trường dữ liệu đó thì dữ liệu đa phương tiện là môi trường chiếm tỉ lệ chủ yếu trong các kỹ thuật giấu tin
1.6.1 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 gốc Để đảm bảo yêu cầu này, 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à HAS lại kém trong việc phát hiện sự khác biệt các dải tần và công suất điều này 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 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
Trang 14dụng điểm yếu trong hệ thống thính giác của con người
1.6.2 Giấu thông tin trong video
Cũng giống như giấu thông tin trong ảnh hay 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, chứng 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 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 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
1.6.3 Giấu tin trong ảnh số
Giấu thông tin trong ảnh, hiện nay, 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ư: chứng 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 nhà khoa họ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à không thể biết được đằng sau ảnh đó mang những thông tin có ý nghĩa 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 rất nhiều những ứng dụng quan trọng trên nhiều 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ẻ
Trang 15tín dụng của người tiêu dùng Phần mềm Office Word 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 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 chứng 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 chứng 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 đó là thông tin được giấu trong ảnh một cách vô hình, nó như là một 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
Đã có rất nhiều phương pháp giấu tin trên ảnh số được đề ra như kỹ thuật Wu-Lee
được đưa ra bởi M.Y.Wu và J.H.Lee trong Proceeding of international Symposium on
Multimedia Information Processing 1999 Nhưng thuật toán này vẫn chưa đạt được
những yêu cầu cần thiết về khả năng giấu tin, độ an toàn trước các kiểu tấn công cũng như chất lượng ảnh sau khi giấu tin vào Để cải thiện được các nhược điểm trên, Yu-Yuan, Hsiang-Kuang Pan và Yu-Chee Tseng (Department of Computer Science and Information Engineering National Chiao Tung University Hsin-Chu, 30050, Taiwan)
đã đề xuất thuật toán khắc phục và được sử dụng phổ biến Chi tiết thuật toán sẽ được nêu rõ trong phần sau của báo cáo
Tính bảo mật của tài liệu thường được thực hiện thông qua phương pháp mã hóa tài liệu đó Mặc dù mã hóa được sử dụng khá phổ biến nhưng nó không tránh khỏi
Trang 16những hạn chế phát sinh trong khi việc tấn công của kẻ xấu ngày càng tinh vi và thông minh hơn Để hạn chế nội dung của tài liệu bị lộ, kẻ xấu có ít cơ hội hơn để tìm ra nội dung của tài liệu thì Steganography (giấu tin) đã ra đời Steganography khác với mật
mã hóa ở chỗ nó che giấu các thông tin mật trong các tài liệu mà các tài liệu này không cần bảo mật nhằm đánh lừa kẻ xấu phát hiện thông tin bên trong nó Vì thế
Steganography được gọi là data/information hiding
Để hiểu rõ hơn về steganography chúng ta đến với ví dụ đơn giản về quá trình truyền tin giữa Alice và Bob, như sau:
Alice và Bob yêu nhau và muốn ở bên nhau nhưng gặp phải sự phản đối của hai gia đình, hai người bị giám sát chặt chẽ và gặp mặt nhau đối với họ hiện tại là một việc bất khả thi Không chịu nổi sự chia rẽ, cuối cùng hai người cũng đã đi đến quyết định giải thoát cho mình Và, Alice muốn gửi một thông điệp cho Bob rằng hai người
sẽ cùng nhau trốn gia đình để cao bay xa chạy , sống một cuộc sống hạnh phúc Alice gửi cho Bob kế hoạch trốn chạy khỏi sự ngăn cản của hai gia đình Tuy nhiên, nếu Alice mã hóa bản kế hoạch và gửi cho Bob thì mặc dù gia đình Bob không biết được nội dung của thông điệp trên nhưng họ sẽ hủy nó đi và càng quyết liệt hơn để chia cắt hai người Cho nên Alice và Bob phải tìm một cách hữu hiệu nhất che đậy bản kế hoạch và qua mắt được gia đình mình
Vấn đề nan giải của Alice và Bob sẽ được giải quyết nếu họ tìm đến với kỹ thuật giấu tin
Giấu tin là một công nghệ mới rất phức tạp, nó đang được các nhà khoa học tập trung nghiên cứu ở nhiều nước trên thế giới như Đức, Mỹ, ý, Canada, Nhật Bản…Tuy nhiên, những kết quả thực nghiệm cho thấy để thực sự ứng dụng thực tế thì lĩnh vực này cần phải có thêm thời gian để nghiên cứu thẩm định nhưng các nhà khoa học cũng khẳng định rằng đây là một công nghệ mới đầy hứa hẹn cho vấn đề an toàn và bảo mật
Trang 17thông tin Công việc hiện nay của các nhà khoa học đang tập trung xây dựng một hệ thống lí thuyết chính xác cho vấn đề giấu tin, đây là một mảnh đất mới cho các nhà khoa học khám phá
Trang 18CHƯƠNG 2 ẢNH SỐ 2.1 Giới thiệu về ảnh số
Một ảnh số biễu diễn một hình ảnh hai chiều bằng các số 0 và 1 Tùy thuộc vào
độ phân giải của ảnh mà ảnh được chia làm hai loại là vector và raster Ảnh số, không quan tâm đến chất lượng ảnh, thường được hiểu là ảnh raster hay còn gọi là ảnh
bitmap
2.2 Ảnh raster
Ảnh raster là ảnh chứa tập các giá trị các số và thường được gọi là các thành phần của ảnh hay pixel Một pixel là một thành phần bé nhất trong một ảnh đóng vai trò lưu giữ giá trị lượng tử về độ sáng của một màu cụ thể nào đó tại một vị trí của ảnh
Thông thường, tập các pixel được lưu trữ trong bộ nhớ máy tính như một ma trận hai chiều gồm các số integer Các giá trị này có thể đã được chuyển đổi và lưu dưới dạng các giá trị đã được nén
Ảnh raster có thể tìm thấy từ nhiều thiết bị khác nhau với các công nghệ tạo ảnh khác nhau như: máy ảnh số, máy quét, …
Khi một hình ảnh raster được tạo ra, hình ảnh được chuyển đổi thành điểm ảnh Mỗi điểm ảnh được gán một giá trị cụ thể quyết định màu sắc của nó Hệ thống hình ảnh raster sử dụng hệ thống (RGB) màu đỏ, xanh lá cây, màu xanh lam Một giá trị RGB (0,0,0) sẽ là màu đen, và các giá trị nằm trong khoảng từ 0 đến 256 cho mỗi kênh màu, cho phép biểu diễn một loạt các giá trị màu
Tùy thuộc vào độ phân giải, một số hình ảnh raster có thể được mở rộng để kích thước rất lớn nhưng vẫn rõ nét, trong khi những ảnh khác trở nên mờ nhạt, vỡ nét gây cảm giác khó coi Độ phân giải càng cao thì dung lượng ảnh càng lớn, và ngược lại độ phân giải càng thấp thì dung lượng file ảnh càng nhỏ Vì lý do này, khi thao tác với ảnh
Trang 19ta cần chọn ra sự cân bằng giữa độ phân giải của ảnh và dung lượng file ảnh
Độ phân giải của ảnh số tượng trưng cho số lượng điểm ảnh trên một inch (PPI) hoặc số lượng chấm trên một inch (DPI) trong hình ảnh Độ phân giải càng cao, số lượng các điểm ảnh càng lớn, điều này cho phép khi ảnh phóng to sẽ dễ nhìn hơn
v Ảnh chức năng (picture function)
Thuật ngữ ảnh kỹ thuật số cũng được áp dụng cho dữ liệu liên quan đến các điểm
rải rác trên một không gian ba chiều, chẳn hạn như ảnh được sản xuất bởi các thiết bị tomographic Trong trường hợp đó, mỗi đơn vị dữ liêu gọi là voxel
2.2.2 Định dạng ảnh raster
Phần lớn chúng ta thường tiếp xúc với ảnh raster thông qua các máy ảnh kỹ thuật
số Một số máy ảnh kỹ thuật số cho phép can thiệp vào hầu như các dữ liệu chụp được
ở dạng định dạng ảnh thô Ta nên sử dụng định dạng này khi có thể bởi vì từ dữ liệu thô này chúng ta có thể cho ra các ảnh ở chất lượng tốt nhất Định dạng file này cho
Trang 20phép các nhiếp ảnh gia và các tác nhân xử lý có quyền điều khuyển và quyết định độ chính xác của kết quả đầu ra Nhưng không may là vẫn có nhưng rào cản về quyền sở hữu thông tin (bí mật thương mại) đối với các nhà sản xuất máy ảnh kỹ thuật số đối với việc trên, do đó các tổ chức đang nỗi lực tác động đến các nhà sản xuất để họ công khai các thông tin này Một định dạng thay thế khác có thể là DNG (Digital Negative) thuộc
sở hữu của Adobe Tuy nhiên định dạng này vẫn chưa được chấp nhận rộng rãi
2.3 Ảnh vector
Ảnh vector được tạo thành từ các thành phần và đối tượng khác nhau Những đối tượng này được định nghĩa bởi các phương trình toán học chứ không phải là các điểm ảnh như ở ảnh raster, do đó, chúng luôn hiển thị ở chất lượng cao nhất Các đối tượng này có thể bao gồm đường thẳng, đường cong, các hình học có các thuộc tính có thể chỉnh sửa như màu sắc, đường biên, … Chúng ta có thể thay đổi các thuộc tính đó mà vẫn không phá hủy đối tượng cơ bản Một đối tượng trong ảnh vector không chỉ có thể sửa đổi bằng cách thay đổi các thuộc tính của nó mà còn bởi việc định hình và chuyển đổi nó bằng cách sử dụng các điểm nút và các điều khiển xử lý
Vì ảnh vector có tính “mền dẻo” (scalable), độ phân giải
độc lập, nên ta có thể tăng giảm kích thước của chúng theo
các mức độ khác nhau nhưng chúng vẫn giữ được độ sắc nét,
các đường điểm vẫn không bị vỡ nét
Ví dụ, một bánh xe trong hình ảnh Vector đuợc tạo bởi
sự định nghĩa về mặt toán học với một đường tròn được vẽ
với bán kính nào đó, một vị trí chỉ định trước và đuợc tô với
một mầu chỉ định Ta có thể dịch chuyển, thay đổi kích thước
hoặc thay đổi mầu của bánh xe mà không làm giảm chất
lượng của hình ảnh
Trang 21Đối với ảnh vector thì chúng không bị giới hạn trong một hình chữ nhật cố định giống như bitmap Các đối tượng vector có thể được đặt chồng lên các đối tượng khác
và các đối tượng kia sẽ được hiển thị xuyên qua đối tượng vector này
Trong hình ví dụ trên, các hình tròn vector và bitmap đều hiển thị chính xác trên nền trắng Nhưng khi chúng ta đặt hình tròn bitmap lên một đối tượng khác thì ta thấy xuất hiện một hình chữ nhật trắng bao quanh nó
Mặc dầu vậy, nhưng ảnh vector chỉ phù hợp nhất với kiểu chữ, dòng nghệ thuật,
và minh họa, bởi vì, chúng không thể mô tả được tính liên tục của một bức ảnh thông thường Mặc dù vậy nhưng đồ họa vector liên tục phát triển và ngày càng được úng dụng nhiều Ảnh vector là sự lựa chọn tốt nhất cho các ảnh thường xuyên phải thay đổi kích thước để đảm bảo chúng luôn đạt được yêu cầu về độ chính xác và hiển thị tốt Ảnh vector chủ yếu được tạo ra từ các phần mền đồ họa Chúng ta không thể chuyển đổi một ảnh tự nhiên thành một ảnh vector mà không cần đến sự giúp đỡ của các phần mền đồ họa này Tuy nhiên, ảnh vector lại rất dễ dàng chuyển đổi sang ảnh dạng bitmap, quá trình này gọi là rasterizing Khi chuyển đổi sang dạng bitmap, chúng
ta có thể chuyển sang ở bất kì kích thước ảnh nào tùy thích trước khi cho ra ảnh bitmap cuối cùng Trước khi chuyển sang dạng bitmap, chúng ta cần lưu lại bản sao của ảnh vector đó Nếu chúng ta muốn chuyển sang ảnh bitmap có kích thước 100x100 và sau
đó muốn thay đổi thì ta chỉ cần mở lại ảnh vector gốc, chọn kích thước yêu thích và lưu
Hình 2.2 Ảnh vector không bị giới hạn trong một hình chữ nhật
Trang 22lại Việc mở một ảnh vector trong một chương trình chỉnh sửa ảnh bitmap thường phá
2.4 Các kỹ thuật nén ảnh (image compression)
Nén ảnh là việc áp dụng nén dữ liệu vào hình ảnh kỹ thuật số Trong thực tế, mục tiêu là để giảm sự dư thừa của dữ liệu ảnh để có thể lưu trữ hoặc truyền tải dữ liệu trong một hình thức hiệu quả
Hình ảnh sau khi nén có thể mất mát dữ liệu hoặc không (lossy hoặc lossless) Nén không mất dữ liệu là kỹ thuật nén ưu tiên cho mục đích lưu trữ và thường được dùng trong ảnh chụp y khoa, các bản vẽ kỹ thuật, ảnh nghệ thuật ; hình ảnh sau khi nén giống hệt với ảnh gốc ban đầu Nén mất dữ liệu với mục đích loại bỏ các dữ liệu
dư thừa trong ảnh đã có nhằm đạt được dung lượng nhỏ tối đa Mặc dù dữ liệu ảnh có
sự mất mát nhưng trong điều kiện bình thường thì mắt người vẫn không thể nhận ra được sự thay đổi đó
Các kỹ thuật sử dụng trong lossless compression:
Ø Run-length encoding: là phương thức mặc định trong PCX hoặc trong BMP, TGA, TIFF
Ø DPCM và Predictive Coding
Ø Entropy encoding
Ø Adaptive dictionary algorithms như LZW - sử dụng trong ảnh GIF và TIFF
Trang 23Ø Deflation- sử trong các ảnh PNG, MNG và TIFF
Ø Chain codes
Các kỹ thuật sử dụng trong lossy compression:
Ø Loại bỏ không gian màu cho các màu phổ biến trong hình ảnh - các màu được chọn nằm trong bảng màu thuộc phần header của ảnh nén Mỗi pixel sẽ tham chiếu đến một chỉ mục màu trong bảng màu Phương pháp này thường được kết hợp với dithering để tránh posterization
Ø Chroma subsampling - kỹ thuật này dựa trên tính chất cảm nhận của mắt người đối với sự thay đổi về cường độ sáng và sự thay đổi về màu sắc Do
đó, bằng cách lấy giá trị trung bình hoặc loại bỏ một vài thông tin màu của hình ảnh thì ta sẽ được ảnh mới mà chất lượng ảnh vẫn đảm bảo chấp nhận được
Ø Transform coding - đây là phương pháp thường được sử dụng Phương pháp này sử dụng phép biến đổi Fourier như biến đổi DCT hoặc biến đổi wavelet
đi kèm với lượng tủ hóa và mã hóa entropy
Ø Fractal compression
Với mục đích của đề tài là tìm hiểu về ảnh JPEG và giấu tin trong ảnh JPEG nên
đề tài sẽ trình bày rõ về kỹ thuật transform coding trong các chương tiếp theo
Trang 24CHƯƠNG 3 ẢNH BITMAP (BMP) VÀ THUẬT TOÁN LSB ĐƠN GIẢN 3.1 Ảnh BMP
3.1.1 Khả năng lưu trữ
Các file BMP và một số file bitmap tương tự khác thì các đơn vị ảnh (pixel) được lưu trữ dưới dạng 1, 4, 8, 16, 24 hoặc 32 bits/pixel (color depth) Ảnh 8 bit hoặc ít hơn thì có thể là ảnh xám hoặc ảnh màu được đánh chỉ mục (indexed color)
Ảnh bitmap không nén thường có kích thước file lớn hơn so với ảnh đã được nén với cùng một ảnh Ví dụ như, một ảnh 1058x1058 sẽ có dung lượng lưu trữ là 271 KB
ở dạng PNG nhưng sẽ tốn đến 3358 KB nếu ở dạng ảnh BMP 24-bit Vì vậy ảnh không nén không thích hợp trong việc lưu chuyển trên Internet hoặc các phương tiện
có tốc độ chậm hoặc có khả năng lưu trữ nhỏ
Hình 3.1 Lena.bmp 24bit, 512x512 px, dung lượng 263222 byte
Trang 25Tùy thuộc vào độ sâu màu mà mỗi pixel của ảnh sẽ được lưu ít nhất bởi n / 8 byte (trong đó n là độ sâu màu) Kích thước file cho một ảnh BMP n-bit ( = n
2 màu) theo đơn vị byte được tính như sau:
với:
◦ Height, Width là số pixel theo chiều cao và chiều rộng
◦ BPP£8Trong công thức trên, 54 là kích thước của header trong ảnh Windows V3 BMP (gồm 14 byte BMP file header và 40 byte DIB V3 header sẽ được nói rõ ở phần sau); một vài header khác có thể có kích thước lớn hơn hoặc nhở hơn tùy loại n
4.2 là kích thước của bảng màu; kích thước này ở hệ thống OS/2 V1 có độ dài xấp xỉ n
3.2 byte, các version khác có thể được định nghĩa chỉ bởi các màu cần thiết trong ảnh đó, có khả năng là bé hơn n
2 Nhưng chỉ đối với các ảnh 8 bit hoặc bé hơn 8 bit trên một pixel mới sử dụng bảng màu trong phần header, đối với các ảnh có độ sâu màu lớn hơn thì kích thước sẽ là:
với: BPP > 8
3.1.2 Device-independent bitmaps và định dạng file BMP
Microsoft đã định ra một chuẩn bitmaps riêng biệt với các độ sâu màu khác nhau
để giúp ích cho việc chuyển đổi giữa các thiết bị và ứng dụng với nhiều cách thể hiện
Trang 26riêng biệt của chúng Tiêu chuẩn định dạng này gọi là device-independent bitmaps hay gọi là DIBs và định dạng file gọi là định dạng DIB hoặc thường gọi là BMP
Trong đó, divice-independent bimap (DIB) là một định dạng dùng để định nghĩa chuẩn bitmap Mục đích chính của nó là cho phép ảnh bitmap có thể chuyển đổi từ thiết bị này sang thiết bị khác một cách thống nhất (divice-independent: độc lập thiết bị)
Một file BMP thường bao gồm các nhóm dữ liệu sau:
Bảng 3.1 BMP File Header Lưu các thông tin tổng quát về file
BMP
Bitmap Information
(DIB header)
Lưu thông tin chi tiết về ảnh bitmap
Color Palette Lưu các màu được tham chiếu bởi các
chỉ mục
Bitmap Data Lưu dữ liệu thật sự của ảnh (các pixel)
Một số ảnh bitmap có thể lưu ở dạng đơn giản hơn phụ thuộc vào ứng dụng đã tạo
ra nó Vì vậy, không phải nhất thiết dùng hết tất cả các thông tin trên, các trường không dùng đến sẽ có giá trị 0
3.1.3 BMP file header
Một ảnh BMP được nạp vào bộ nhớ có cấu trúc dạng DIB, là một thành phần quan trọng của Windows GDI API Cấu trúc của DIB tương tự như cẩu trúc của BMP nhưng không có 14 byte của BMP header
Trang 27Cấu trúc header của file BMP là một nhóm các byte bắt đầu file và được dùng để nhận dạng file Một ứng dụng thông thường sẽ đọc phần header này trước để đảm bảo đây chắc chắn là file BMP và file này không bị hư hỏng 2 byte đầu tiên của file BMP
là 2 ký tự 'B' và 'M' (1 byte mã ASCII) Tất cả các giá trị nguyên lưu dưới dạng endian (byte đầu tiên là byte ít quan trọng nhất – least significant byte)
little-Bảng 3.2
0000h 2 byte Dùng để nhận dạng file BMP: 0x42 và 0x4D (giá trị hex của
'B' và 'M')
0002h 4 byte Kích thước của file BMP
0006h 2 byte Dành riêng cho các ứng dụng cụ thể
0008h 2 byte Dành riêng cho các ứng dụng cụ thể
000Ah 4 byte Địa chỉ bắt đầu của vùng dữ liệu ảnh được lưu trữ trong file
3.1.4 Bitmap information (DIB header)
Nhóm byte này cho biết các thông tin chi tiết về ảnh bitmap, và nó sẽ được dùng
để để tính toán hiển thị lên màn hình
Hiện tại dạng thường dùng nhất là header V3 Bản dưới sẽ mô tả chi tiết các giả trị của chúng, các giá trị này là giá trị nguyên dương và ngoại lệ nếu có sẽ được ghi rõ
Bảng 3.3 Địa chỉ # Kích
thước
Công dụng
Trang 28Địa chỉ # Kích
thước
Công dụng
Eh 4 Kích thước của header (40 byte)
12h 4 Kích cỡ ảnh theo chiều ngang (pixel - số nguyên có dấu) 16h 4 Kích cỡ ảnh theo chiều dọc (pixel - số nguyên có dấu)
1Ah 2 Số lượng độ màu được dùng (bắt buộc thiết lập 1)
1Ch 2 Số lượng bit/pixel (color depth) Thường có giá trị 1, 4, 8, 16,
24, 32
1Eh 4 Phương pháp nén được dùng Các giá trị được định nghĩa ở
bảng 3.4 bên dưới
22h 4 Kích thước ảnh Đây là kích thước của dữ liệu ảnh thô, khác
với kích thước file
26h 4 Độ phân giải theo chiều ngang của ảnh (pixel/met, số nguyên
có dấu)
2Ah 4 Độ phân giải theo chiều dọc của ảnh (pixel/met, số nguyên có
dấu)
2Eh 4 Số lượng màu trong bảng màu, từ 0 → 2n (mặc định)
32h 4 Số lượng giá trị màu quan trọng được dùng, 0 - tất cả các màu
đều là quan trọng; thông thường giá trị nãy được bỏ qua
Đối với BI_RGB bitmap thì trường kích thước ảnh (22h) có thể là 0
Trường phương thức nén ảnh (byte #30-33)có thể có các giá trị sau:
Trang 29Bảng 3.4 Giá trị Định danh bởi Phương thức nén
1 BI_RLE8 RLE 8-bit/pixel Chỉ có thể dùng với ảnh 8 bit/pixel
2 BI_RLE4 RLE 4-bit/pixel Chỉ có thể dùng với ảnh 4 bit/pixel
3 BI_BITFIELDS Bit field Chỉ có thể dùng với ảnh 16 và
32-bit/pixel
Hai định danh BI_JPEG và BI_PNG được dùng cho máy in và không dùng để hiển thị lên màn hình
3.1.5 Bảng màu (Color palette)
Bảng màu của ảnh bitmap nằm ngay sau BMP header và DIB header Vì thế vị trí của nó sẽ bằng chiều dài BMP header cộng với chiều dài của DIB header
Bảng màu là một nhóm các byte liệt kê danh sách của các màu được đã được chọn tạo chỉ mục Mỗi pixel trong ảnh được biểu thị bởi một số bit (có thể là 1, 4 hoặc 8) chỉ đến một màu cố định trong bảng màu Vì thế mục đích của bảng màu là lưu trữ các màu nhằm giúp các chương trình xác định được màu đích thực của một pixel tương ứng
DIB header thường dùng mô hình màu RGB, trong đó một màu là sự biểu thị cường độ của ba màu cơ bản là đỏ (R), xanh lục (G), xanh lam (B) Mỗi màu được biểu diễn bởi 3 giá trị R, G, B lưu theo thứ tự ngược trong bảng màu
Trang 30Số lượng các phần tủ trong bảng màu có thể đạt đến n
2 hoặc ít hơn Mỗi phần tử
là 4 byte, 3 byte đầu tiên lưu 3 màu xanh lam, xanh lục và đỏ, byte còn lại không dùng
Nguyên bản DIB thì chỉ có 4 giá trị độ sâu màu là được cho phép là 1, 4, 8 và 24 Nhưng trong hầu hết các trường hợp thì mỗi pixel được biểu diễn bằng 32 bit (4 byte) Tổng số byte trong một hàng sẽ là kích thước ảnh / chiều cao ảnh tính bằng pixel Vì thế ta có nhiều cách để lưu dữ liệu ảnh khác nhau tùy vào độ sâu màu và sự nén dữ liệu
v 1 bit (2 màu, thường là trắng và đen): Mỗi pixel lưu bởi một bit và pixel đầu
tiên lưu ở bit quan trọng nhất của byte đầu tiên Bít có giá trị 0 tương ứng với chỉ số màu đầu tiên trong bảng màu, bit có giá trị 1 tương ứng với chỉ số màu cuối cùng (2) trong bản màu
v 4 bit (16 màu): 2 pixel lưu trong 1 byte, pixel bên trái sẽ lưu ở nibble bên
phải (more significant nibble) Mỗi pixel chỉ đến một màu trong bảng 16 màu
v 8 bit (256 màu): 1 pixel lưu bởi 1 byte Mỗi byte chỉ đến một giá trị màu
trong bảng 256 màu
Trang 31v RGB (24 bit): mỗi pixel lưu theo dạng BGR (xanh lam, xanh lục và đỏ)
Byte đệm (padding byte) sẽ được chèn vào để đảm bảo một hàng dữ liệu luôn có
độ dài là một bội của 4 Ví dụ như: ảnh bitmap 24 bit có chiều rộng (w) là 1 thì sẽ có 3 byte trên một hàng, vì thế sẽ chèn 1 byte nữa vào để là bội của 4; tương tự ảnh w = 2
→ chèn 2, w = 3 → chèn 3, w = 4 → không chèn thêm
3.2 Thuật toán LSB đơn giản trên miền không gian
Phương pháp này sẽ thực hiện chèn các bit dữ liệu vào các bit ít quan trọng nhất của mỗi byte dữ liệu ảnh bitmap.Tuy nhiên, đối với ảnh bitmap có độ sâu màu từ 8 bit trở xuống việc biến đổi trên đồng nghĩa với việc làm thay đổi giá trị chỉ mục của mỗi đơn vị pixel, dẫn đến hiện tượng sai lệch màu sắc của ảnh kết quả
Ví dụ: Bảng màu của ảnh 4 bit gồm các màu trắng, đỏ, xanh lam, xanh lục tương ứng với các giá trị chỉ mục của bảng màu 0(00), 1(01), 2(10) và 3(11) Ảnh 4 pixel có các giá trị: 00 00 10 10 (trắng, trắng, xanh lam, xanh lam) (hình 3.2 a)
Giấu giá trị của dữ liệu: 1010 Giá trị chỉ mục sẽ thay đổi như sau: 01 00 11 10
(đỏ, trắng, xanh lục, xanh lam) (hình 3.2 b)
Hình 3.2 a) Ảnh gốc, b) Ảnh đã được chèn dữ liệu vào
Đối với ảnh 24 bit, việc giấu tin này cũng thực hiện biến đổi bit ít quan trọng của
Trang 32mỗi byte dữ liệu Vì vậy kích thước thông điệp có thể giấu vào một ảnh 24 bit tương đương với tổng số bit LSB của ảnh / 8 (byte)
Vì ảnh 24 bít có không gian màu lớn nên việc thay đổi giá trị của bit ít quan trọng
sẽ làm biến đổi không đáng kể giá trị màu sắc của mỗi pixel Cho nên mắt người trong trường hợp này sẽ không thể phân biệt được sự thay đổi về chất lượng của ảnh
Ví dụ:
Cần giấu mẫu tin 10000011 vào 3 pixel đầu tiên của ảnh có giá trị nhị phân như sau:
Các giá trị của các pixel sau khi giấu mẫu tin là:
Phương pháp LSB này hoạt động tốt đối với các ảnh có độ sâu màu từ 24 bit trở lên
Ưu điểm của phương pháp này là có thể giấu một lượng lớn thông tin vào ảnh chứa so với các phương pháp phức tạp khác Tuy nhiên, nó cũng không tránh khỏi những hạn chế như dễ bị tin tặc dò ra dữ liệu được giấu từ các bit ít quan trọng (visual attack) và có được dữ liệu này; khi ảnh bị biến đổi thì sẽ không bảo đảm dữ liệu giấu vào còn nguyên vẹn
Trang 33Do những hạn chế này mà các nhà khoa học đã nghiên cứu tìm ra nhiều biện pháp, phương thức khác nhau nhằm bảo vệ thông tin được giấu trong ảnh Từ đó lĩnh vực giấu tin đã từng bước phát triển và lớn mạnh trong đó nổi bật là steganography và watermarking
Một phương pháp khắc phục nhược điểm trên đã được 3 nhà nghiên cứu Đài Loan đề ra nhằm tăng cường tính bảo mật cho thông điệp được giấu Thuật toán này sẽ được đề cập trong chương 5 Tuy nhiên, ảnh bitmap vẫn tồn tại một hạn chế khó có thể tránh khỏi đó là visual attack (dò tin) Nhưng hạn chế này sẽ được khắc phục nếu chúng ta áp dụng thuật toán với ảnh JPEG, bởi ảnh JPEG không thể áp dụng kỹ thuật LSB đơn giản này do tính chất mất thông tin trong quá trình nén ảnh (lossy
compression) Các pixel màu sẽ được biến đổi từ miền không gian sang miền tần số nên kểu tần công visual attack không thể áp dụng được
Chi tiết về ảnh JPEG và thuật toán của 3 nhà khoa học Đài Loan sẽ được trình bày chi tiết trong các chương tiếp theo
Trang 34
CHƯƠNG 4 ẢNH JPEG
JPEG là chuẩn ảnh nén do Joint Photographic Experts Group đề ra, sử dụng kỹ thuật nén mất dữ liệu (lossy compression) vì thế cho phép chúng ta có được sự lựa chọn thích hợp giữa khả năng lưu trữ và chất lượng ảnh
JPEG sử dụng khá nhiều định dạng ảnh nhưng JPEG/Exif là phổ dụng nhất Định dạng này được dùng trong các máy ảnh kỹ thuật số và các thiết bị tương tự khác JPEG/Exif cũng là định dạng đưuọc dùng nhiều nhất trên mạng Internet ngày nay Các định dạng tuy có tên khác nhau nhưng sự khác biệt là không nhiều Và để đơn giản ta
sẽ gọi chung là JPEG
4.1 Chuẩn JPEG và ứng dụng
JPEG hay Joint Photographic Experts Group, là chuẩn chỉ ra cách mà hình ảnh
sẽ được nén (codec) thành một chuỗi các byte và có thể giải ngược trở lại thành hình ảnh ban đầu Hai chuẩn Exif và JFIF là hai chuẩn thông thường được dùng trong nén ảnh JPEG và có thể thay thế cho nhau
Như đã đề cập ở phần trên, phương thức nén trong ảnh JPEG là nén mất thông tin (lossy), nghĩa là một số thông tin trong ảnh gốc sẽ mất đi (với mục đích làm giảm dung lượng lưu trữ) và sẽ không thể phục hồi lại được Tuy nhiên chuẩn JPEG vẫn hỗ trợ lossless nhưng không được rộng rãi như lossy compression
Một phương pháp nén ảnh đặc biệt là Progressive JPEG, trong đó dữ liệu được nén qua nhiều mức khác nhau Phương pháp này dựa trên ý tưởng dành cho các ảnh cỡ lớn truyền trên web với tốc độ chậm, cho phép hiển thị một phần hình ảnh khi được tải
về Tuy nhiên chuẩn này vẫn chưa được hỗ trợ rộng rãi, kể cả một số phần mềm (như một số phiên bản của Internet Explorer) chỉ hiển thị ảnh khi nó đã hoàn toàn tải hết về máy trạm Chúng ta có thể chuyển đổi dễ dàng giữa 2 dạng baseline và progressive mà
Trang 35không sợ thay đổi chất lượng của ảnh được chuyển đổi, vì sự khác biệt giữa 2 dạng này chỉ ở chỗ sự xếp đặt các thành phần (coefficents) của chúng trong trong file nén
Thuật toán nén JPEG được dùng nhiều với ảnh, tranh vẽ thực tế Đối với việc sử dụng trên web, JPEG là chuẩn hữu hiệu nhất vì nó giúp chúng ta giải quyết được vấn
đề băng thông Tuy nhiên, JPEG vẫn không thể phù hợp với các ảnh vẽ đường, mặt, font nghệ thuật hoặc các biểu tượng đồ họa chuyên nghiệp bởi vì những loại ảnh này đòi hỏi sự tương phản và sắc nét cao Chúng chỉ có thể lưu dưới dạng nén không mất
dữ liệu (lossless graphics fomat) như là TIFF, GIF, PNG hoặc các ảnh dạng thô
Do đặc tính mất thông tin của kỹ thuật nén JPEG, nên nó không thích hợp cho các hình ảnh được dùng với mục đích sửa đổi thường xuyên, vì mỗi lần sửa đổi thì chất lượng ảnh lại tiếp tục mất đi (do quá trình giải nén và nén thực hiện nhiều lần, đặc biệt khi ảnh bị cắt hoặc chuyển vị hoặc các tham số bị thay đổi) Để tránh điều này chúng ta cần lưu lại ảnh gốc dưới dạng nén không mất thông tin (chẳng hạn như PNG), sau đó khi muốn chỉnh sửa ta copy ảnh gốc trên để thực hiện và export kết quả ra dạng JPEG cho mục đích của mình
Trong các lĩnh vực đòi hỏi sự chính xác và trung thực nhất thì sẽ không có chỗ cho JPEG như trong y học, thiên văn, vũ trụ … Thay vào đó người ta thường dùng nhất
là chuẩn lossless như PNG để đảm bảo được yêu cầu này
Các phần mở rộng của tên file ảnh JPEG được sử dụng khá phổ biến là jpg và jpeg; tuy nhiên jpe, jfif và jif cũng có thể được sử dụng Dữ liệu ảnh JPEG cũng có thể dùng để nhúng vào các loại file khác như TIFF file thường nhúng ảnh JPEG vào như một thumbnail của ảnh chính của nó
4.2 Cấu trúc ảnh JPEG
Ảnh JPEG bao gồm nhiều đoạn (segment) khác nhau ghép lại, mỗi đoạn sẽ được đánh dấu bắt đầu (marker) đoạn với 1 byte có giá trị 0xFF theo sau là 1 byte cho biết
Trang 36loại marker nào Một số marker chỉ có vẻn vẹn 2 byte này, tuy nhiên có một số khác thì
có thêm 2 byte theo sau xác định chiều dài của dữ liệu trong đoạn đó (giá trị độ dài này bao gồm cả 2 byte độ dài và không bao gồm 2 byte marker) Một vài marker có thêm phần dữ liệu nén (entropy-coded data) và vì thế chiều dài của marker này sẽ không bao gồm phần dữ liệu nén
Bên cạnh việc dùng với chức năng đánh dấu đoạn, byte 0xFF còn dùng để chèn thêm vào với chức năng là byte đệm (tránh làm phá vỡ cấu trúc chung) khi gặp byte dữ liệu nén là 0x00 (nghĩa là khi ghi byte 0x00 thì chương trình sẽ chèn thêm 0xFF vào đầu (0xFF00) sau đó mới ghi xuống nơi lưu trữ) Vì vậy khi chương trình xử lý đối với
2 byte dạng 0xFF00 thì đây không phải là một marker, và nó chỉ xuất hiện trong phần
dữ liệu nén chứ không có trong phần dữ liệu của marker (marker payload data)
Bảng dưới đây liết kê một số marker thông dụng của JPEG
Bảng 4.1
SOI 0xFFD8 không Start of Image
SOFO 0xFFC0 tùy biến Start of Frame
(Baseline DCT)
Đánh dấu đây là based JPEG, dùng để xác định chiều dài, chiều rộng ảnh, số component, mẫu chia (ví dụ: 4:2:0)
DCT-SOF2 0xFFC2 tùy biến Start of Frame
(Progressive DCT)
Đánh dấu đây là based JPEG, dùng để xác định chiều dài, chiều rộng ảnh, số component, mẫu
Trang 37DCT-Viết tắt Bytes Dữ liệu Tên Nội dung
chia (ví dụ: 4:2:0)
DHT 0xFFC4 tùy biến Define Huffman
Table(s)
Xác định các bảng huffman
DQT 0xFFDB tùy biến Define
Quantization Table(s)
là 2 byte chỉ định độ dài SOS 0xFFDA tùy biến Start of Scan Bắt đầu dòng quét ảnh Đối
với ảnh baseline DCT thì chỉ có 1 dòng quét duy nhất, nhưng với progressive DCT JPEG thì gồm nhiều dòng quét khác nhau Theo sau marker này là phần dữ liệu nén
RSTn 0xFFD0
… 0xFFD7
không Restart Được chèn vào sau mỗi r
MCU, trong đó r là khoảng cách giũa các RST do marker DRI qui định Chỉ dùng marker này khi marker DRI hiện diện và r khác 0 3 bit cuối cùng của
Trang 38Viết tắt Bytes Dữ liệu Tên Nội dung
marker có giá trị từ 0 → 7 APPn 0xFFEn tùy biến Application-
EOI 0xFFD9 Không End of image
Các nhà sản xuất thường dùng APPn marker để cho vào một số thông tin về hãng
ví dụ như “Exif” hoặc “Adobe” hay một số thông tin định danh khác
Cứ mỗi restart marker thì một block các MCU được ghi Restart marker có tác dụng phục hồi lỗi của chuỗi bit, do quá trình truyền trên các mạng không tốt hoặc khi file ảnh bị lỗi Khả năng sửa được lỗi là nhờ vào việc các block MCU giũa các restart marker có thể được giải mã độc lập (có thể là giải mã song song)
Trang 39Hình 1 Cấu trúc chung của ảnh JPEG
Chi tiết một số marker chính
Cấu trúc của frame header (SOFn):
Bảng 4.2
Trang 40Tag Ký hiệu Số bit
Horizontal sampling factor Hi 4 Vertical sampling factor Vi 4 Quantization table selector Tqi 8
Cấu trúc của scan header (SOS):
Bảng 4.3
Scan components (1 Ns) Scan components selector Csk 8
DC entropy coding table selector
Successive approximation bit
position hight
Successive approximation bit
position low or point
Quantization table destination selector