Ẩn giấu thông tin Data Hiding hay Information Hiding là kỹ thuật nhúng dữ liệu mật vào các dữ liệu dư thừa của các đối tượng dữ liệu theo một cách mà hệ thống cảm quan của con người khôn
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC MỞ HÀ NỘI
LUẬN VĂN THẠC SỸ
CHUYÊN NGÀNH CÔNG NGHỆ THÔNG TIN
NGHİÊN CỨU THUẬT TOÁN GIẤU TIN ĐIỀU CHỈNH THÍCH NGHI TRONG ẢNH SỐ VÀ ỨNG DỤNG ĐỂ PHÂN
PHỐI KHÓA ĐỐI XỨNG
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO
Trang 3i
LỜI CAM ĐOAN
Tôi cam đoan đây là công trình nghiên cứu của riêng tôi Các số liệu, kết quả nêu trong luận văn là trung thực và chưa từng được ai công bố trong bất kỳ công trình nào khác
Hà Nội, ngày tháng năm 2019
HỌC VIÊN
Nguyễn Thị Tươi
Trang 4Tôi xin được bày tỏ lòng cảm ơn và sự kính trọng của mình đến các thầy cô
giúp đỡ tôi trong suốt quá trình học tập tại trường
Tôi cũng đặc biệt cảm ơn tới bạn bè lớp cao học 16MHN-CT4, đã luôn động viên, giúp đỡ tôi trong quá trình học tập và công tác, để tôi hoàn thành nhiệm
Trang 5iii
MỤC LỤC
LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
DANH SÁCH THUẬT NGỮ VIẾT TẮT TIẾNG ANH vi
DANH MỤC CÁC HÌNH VẼ vii
LỜI MỞ ĐẦU ix
CHƯƠNG 1 KHÁI QUÁT VỀ LĨNH VỰC GIẤU TIN 1
1.1 Giới thiệu chung về giấu tin 1
1.2 Sơ lược về lịch sử giấu tin 2
1.3 Khái niệm và các định nghĩa trong ẩn giấu tin 4
1.4 Mục đích của giấu tin 5
1.5 Môi trường giấu tin 6
1.5.1 Giấu tin trong ảnh số 6
1.5.2 Giấu tin trong audio 7
1.5.3 Giấu tin trong video 8
1.5.4 Trong văn bản 8
1.5.5 Giấu thông tin vào cơ sở dữ liệu quan hệ 9
1.6 Phân loại các kỹ thuật giấu tin 9
1.7 Mã hoá thông tin và các phương pháp mã hóa 11
1.7.1 Mã hoá thông tin 11
1.7.2 Các phương pháp mã hoá 11
1.8 Kết luận chương 1 14
CHƯƠNG 2 KỸ THUẬT GIẤU TIN TRONG ẢNH SỐ 15
2.1 Giới thiệu chung 15
2.2 Các định dạng ảnh thường được dùng để giấu tin 16
2.2.1 Định dạng ảnh BITMAP 16
2.2.1 Định dạng ảnh PNG 25
2.2.2 Định dạng ảnh TIFF 26
2.2.3 Định dạng ảnh GIF 26
2.2.4 Định dạng ảnh JPEG 29
2.3 Phương pháp giấu tin trong ảnh số 30
2.3.1 Giấu tin trong khuôn dạng ảnh 30
Trang 6iv
2.3.2 Giấu tin trong miền không gian của ảnh 30
2.3.3 Giấu tin trong miền tần số ảnh 31
2.4 Mô hình kỹ thuật giấu tin trong ảnh cơ bản 32
2.5 Những yêu cầu đối với giấu tin trong ảnh 33
2.6 Đặc trưng và tính chất của kỹ thuật giấu tin trong ảnh 34
2.7 Các thành phần chính của một hệ giấu tin trong ảnh số 36
2.8 Nhu cầu và các ứng dụng của giấu tin trong ảnh số 38
2.8.1 Nhu cầu của giấu tin trong ảnh số 38
2.8.2 Ứng dụng của giấu tin trong ảnh số 38
2.9 Giấu thông tin trong ảnh đen trắng, ảnh màu và ảnh đa cấp xám 40
2.10 Đánh giá chất lượng ảnh sau khi giấu tin PSNR 41
2.11 Một số kỹ thuật giấu tin trong ảnh 42
2.11.1 Giấu tin mật trong khối bit sử dụng tính chẵn lẻ của tổng số bit 1 43
2.11.2 Kỹ thuật giấu tin WU-LEE 44
2.11.3 Kỹ thuật giấu tin YUAN_PAN_TSENG 44
2.11.4 Kỹ thuật gài vào các bit có trọng số thấp (LSB) 45
2.11.5 Các phép biến đổi miền không gian ảnh sang miền tần số 49
2.11.6 Kỹ thuật sinh chuỗi giả ngẫu nhiên 53
2.11.7 Các kỹ thuật trải phổ trong truyền thông 54
2.12 Kết luận chương 2 56
CHƯƠNG 3: HỆ THỐNG PHÂN PHỐI KHÓA ĐỐI XỨNG 57
3.1 Lý thuyết khóa đối xứng 57
3.1.1 Khái niệm mã hóa đối xứng 57
3.1.2 Các loại thuật toán khóa đối xứng 57
3.1.3 Tốc độ thuật toán 57
3.1.4 Hạn chế thuật toán 58
3.1.5 Mã hóa công khai của thuật toán 58
3.1.6 An toàn của thuật toán 58
3.1.7 Ứng dụng 59
3.2 Mô hình chuyển giao khóa đối xứng 59
3.3 Ứng dụng cho thuật toán CJ và LSB_K 60
3.3.1 Môi trường thử nghiệm 60
3.3.2 Tập ảnh thử nghiệm 60
Trang 7v
3.3.3 Thuật toán LSB (LSB_kEmbed) có thay đổi lớp k bit 60
3.3.4 Ảnh sau thử nghiệm với thuật toán LSB_K 62
3.3.5 Thuật toán cải tiến Cj 62
3.3.6 Ảnh sau thử nghiệm với thuật toán CJ 65
3.3.7 Bảng đo chất lượng ảnh bằng PSNR với thuật toán LSB và CJ ở lớp bit 3 66 3.3.8 Bảng đo chất lượng ảnh bằng PSNR với thuật toán LSB và CJ ở lớp bit thứ 4 66 3.4 Kết luận chương 3 68
KẾT LUẬN 69
TÀI LIỆU THAM KHẢO 70
Trang 8vi
DANH SÁCH THUẬT NGỮ VIẾT TẮT TIẾNG ANH
Trang 9vii
DANH MỤC CÁC HÌNH VẼ
Trang
Hình 1.1 Lƣợc đồ chung cho giấu thông tin 01
Hình 1.2 Từ trái qua phải: Mặt nạ, văn bản, thông điệp đƣợc truyền bí mật trong văn bản 03
Hình 1.3 Hai lĩnh vực chính của kỹ thuật giấu thông tin 05
Hình 1.4 Bảng so sánh giấu thông tin mật và giấu thông tin thủy phân 06
Hình 1.5 Phân loại các kỹ thuật giấu tin 10
Hình 2.1 Một thẻ thông minh đã đƣợc giấu tin sử dụng trong công tác nhận dạng 15 Hình 2.2 Bảng màu và các điểm ảnh dùng bảng màu 17
Hình 2.3 Các cách bố trí bảng màu 18
Hình 2.4 Biểu đồ cột của một ảnh trong Paint Shop Pro 7 20
Hình 2.5 Cấu trúc ảnh Gif 27
Hình 2.6 Cấu trúc của khối bản đồ màu tổng thể 28
Hình 2.7 Cấu trúc bộ mô tả ảnh 29
Hình 2.8 Giấu thông tin trong miền không gian 31
Hình 2.9 Giấu tin trong miền tần số 32
Hình 2.10 Mô hình cơ bản giấu tin 32
Hình 2.11 Mô hình cơ bản tách tin 33
Hình 2.12 Lƣợc đồ chung cho quá trình giấu tin 34
Hình 2.13 Lƣợc đồ cho quá trình giải mã Fabien A P Petitcolas đề xuất năm 35
Hình 2.14 Sự khác nhau giữa giấu thông tin trong ảnh đen trắng và ảnh màu 41
Hình 2.15 Mỗi điểm ảnh biểu diễn bởi 8 bit bit cuối cùng đƣợc coi là bit ít 46
Hình 2.16 Ví dụ giấu chữ A (mã ASCII là 65 hay 01000001) vào 8 byte 47
Hình 3.1 Mô hình chuyển giao khóa đối xứng 53
Hình 3.2 Một số ảnh chuẩn 54
Hình 3.3 Ảnh sau khi thử nghiệm với thuật toán LSB_K 56
Hình 3.4 Ví dụ bit dữ liệu đƣợc giấu bằng LSB và điều chỉnh thích 57
Hình 3.5 Ví dụ bit dữ liệu đƣợc giấu bằng LSB và điều chỉnh thích nghi 57
Trang 10viii
Hình 3.6 Ảnh sau khi thử nghiệm với thuật toán CJ 60 Hình 3.7 Bảng đo chất lƣợng ảnh bằng PSNR với thuật toán LSB và CJ ở lớp bit thứ 3 60 Hình 3.8 Bảng đo chất lƣợng ảnh bằng PSNR với thuật toán LSB và CJ ở lớp bit thứ 4 61
Trang 11ix
LỜI MỞ ĐẦU
1 Đặt vấn đề
Cùng với sự phát triển của Internet và các công nghệ truyền thông, rất nhiều
dữ liệu có giá trị được truyền đi thông qua môi trường Internet Tuy nhiên, những
dữ liệu này thường xuyên đối mặt với các nguy cơ bị đánh cắp, chỉnh sửa Vì vậy,
đã có rất nhiều thuật toán mã hoá được phát triển để bảo mật nội dung của các thông tin trước các nguy cơ bị tấn công Nhưng các thuật toán này tồn tại một số vấn đề:
người không thể hiểu được Tin tặc sẽ tập trung thời gian và toàn bộ tài nguyên cần thiết để bẻ gãy thuật toán mã hoá và cố gắng khôi phục lại bản gốc của dữ liệu
khoá được sử dụng để mã hoá và giải mã, đặc biệt là khoá đối xứng
Vì vậy, cần có một giải pháp để trao đổi/phân phối các khoá đối xứng được
sử dụng để bảo mật các thông tin có giá trị
Ẩn giấu thông tin (Data Hiding hay Information Hiding là kỹ thuật nhúng dữ liệu mật vào các dữ liệu dư thừa của các đối tượng dữ liệu theo một cách mà hệ thống cảm quan của con người không thể nhận ra sự thay đổi, sự khác biệt giữa đối tượng dữ liệu ban đầu và dữ liệu đang được nhúng thông tin bên trong Vì vậy, các
dữ liệu có giá trị thường được ẩn giấu bên trong các dữ liệu đa phương tiện (ảnh số,
âm thanh, vi-đi-ô, dòng dữ liệu mạng, …) và gửi đi mà ít thu hút sự chú ý của tin tặc Hiện nay, có rất nhiều các thuật toán ẩn giấu thông tin khác nhau Trong đó, phương pháp thay thế bit có trọng số thấp nhất (Least Significant Bit Substitution hay còn gọi là LSB) là phương pháp rất đơn giản, dễ triển khai Tuy nhiên, kẻ tấn công sẽ có thể dễ dàng đoán ra được vị trí các bit tin được giấu để thực hiện trích lọc các thông tin
Với những vấn đề trên, việc nghiên cứu một thuật toán giấu tin có độ an ninh cao, đơn giản trong triển khai, có hiệu năng tốt là rất cấp thiết để có thể có thể truyền đi các dữ liệu một cách an toàn
Trang 12x
Với những lý do trên, tôi chọn đề tài “Nghiên cứu thuật toán giấu tin điều
chỉnh thích nghi trong ảnh số và ứng dụng để phân phối khoá đối xứng”
2 Mục tiêu, đối tượng và phạm vi nghiên cứu
- Mục tiêu:
+ Ngăn chặn được tấn công đánh cắp khoá + Đơn giản, dễ triển khai
+ Gây ra ít suy biến cho đối tượng mang tin + Khó trích lọc thông tin
- Đối tượng nghiên cứu: Đối tượng nghiên cứu của luận văn là các giải thuật
phục vụ cho việc giấu tin và mã hoá thông tin cụ thể là thuật toán LSB có điều chỉnh thích nghi
- Phạm vi nghiên cứu: Các dữ liệu mã hoá và khoá đảm bảo tính bảo mật thông tin
3 Bố cục luận văn
Luận văn được chia thành ba chương có nội dung như sau:
Luận văn gồm các phần chính sau:
- Phần mở đầu
- Chương 1: Khái quát về lĩnh vực giấu tin
- Chương 2: Kỹ thuật giấu tin trong ảnh số
- Kết luận: Tổng kết các kết quả đã đạt được của luận văn và hướng nghiên cứu tiếp theo
Trang 131
CHƯƠNG 1 KHÁI QUÁT VỀ LĨNH VỰC GIẤU TIN
1.1 Giới thiệu chung về giấu tin
Giấu thông tin (steganography) là một kỹ thuật nhúng dữ liệu vào một nguồn
đa phương tiện gọi là môi trường, ví dụ như file âm thanh, ảnh động, ảnh tĩnh
Mục đích của che giấu thông tin là làm cho dữ liệu không thể nhìn thấy hay nghe
thấy Điều đó có nghĩa là đối phương không nhận thấy sự tồn tại của dữ liệu đã
được nhúng dù có lắng nghe hay cố gắng nhìn thật cẩn thận vào môi trường có giấu
dữ liệu
Mỗi kỹ thuật giấu tin gồm:
- Bộ trích xuất thông tin
Thuật toán giấu tin được dùng để giấu thông tin vào một đối tượng mang
bằng cách sử dụng một khóa bí mật được dùng chung bởi người mã và người giải
mã, việc giải mã thông tin chỉ thực hiện được khi có khóa Bộ giải mã trên phương
tiện mang đã chứa dữ liệu và trả lại thông điệp ẩn trong nó
Hình 1.1 Lược đồ chung cho giấu thông tin
Hình vẽ trên biểu diễn quá trình giấu tin cơ bản Phương tiện chứa bao gồm
các đối tượng được dùng làm môi trường để giấu như text, audio, video, ảnh …,
thông tin giấu là mục đích của người sử dụng Thông tin giấu là một lượng thông tin
mang một ý nghĩa nào đó như ảnh, logo, đoạn văn bản, …tùy thuộc vào mục đích
Phương
tiện chứa
Nhúng thông tin vào phương tiện chứa
Phân phối trên mạng
Thông tin giấu
Bộ giải mã
Khóa
Thông tin giấu
Trang 142
của người sử dụng Thông tin sẽ được giấu vào trong phương tiện chứa nhờ một bộ nhúng Đây là những chương trình, triển khai các thuật toán để giấu tin và được thực hiện với một khóa bí mật giống như các hệ mã cổ điển Sau khi giấu tin ta thu được phương tiện chứa phương chứa bản tin đã giấu và phân phối sử dụng trên mạng Sau khi nhận được đối tượng phương tiện có giấu thông tin, quá trình giải mã được thực hiện thông qua một bộ giải mã tương ứng với bộ nhúng thông tin cùng với khóa của quá trình nhúng Kết quả thu được gồm phương tiện chứa gốc và thông tin đã giấu Bước tiếp theo thông tin giấu sẽ được xử lý kiểm định so sánh với thông tin giấu ban đầu
Tóm lại, giấu thông tin là nghệ thuật và khoa học của truyền thông bên trong một truyền thông, mục đích của steganography là che giấu những thông báo bên trong những thông báo khác mà không làm ảnh hưởng đáng kể đến thông báo này,
và bằng một cách thức nào đó sao cho người không có thẩm quyền không thể phát hiện hoặc không thể phá hủy chúng
1.2 Sơ lược về lịch sử giấu tin
Kỹ thuật giấu thông tin nhằm mục đích đảm bảo an toàn và bảo mật thông tin
rõ ràng ở hai khía cạnh Một là bảo mật cho dữ liệu được che giấu, hai là bảo mật cho chính đối tượng được dùng để giấu tin Hai khía cạnh khác nhau này dẫn đến hai khuynh hướng kỹ thuật chủ yếu của giấu tin Khuynh hướng thứ nhất là giấu tin mật (steganography) Khuynh hướng này tập trung vào các kỹ thuật giấu tin sao cho thông tin giấu được nhiều và quan trọng là người khác khó phát hiện được một đối tượng có bị giấu tin bên trong hay không Khuynh hướng thứ hai là thủy phân số (watermarking) Khuynh hướng thủy phân số đánh dấu vào đối tượng nhằm khẳng định bản quyền sở hữu hay phát hiện xuyên tạc thông tin Thủy phân số có miền ứng dụng lớn hơn nên được quan tâm nghiên cứu nhiều hơn và thực tế đã có nhiều những kỹ thuật dành cho khuynh hướng này
Giấu tin bắt nguồn từ Hy Lạp, tiếng Hy Lạp gọi đó là Steganography có nghĩa là "dòng chữ bị che phủ" Mục đích cơ bản của giấu tin là nhúng mẩu tin mật vào một môi trường truyền tin bình thường sao cho người khác không thể phát hiện
ra mẩu tin mật đó Các câu chuyện kể về kỹ thuật giấu thông tin được truyền qua
Trang 153
nhiều thế hệ Có lẽ những ghi chép sớm nhất về kỹ thuật giấu thông tin thuộc về sử gia Hy-Lap Herodotus Khi bạo chúa Hy-Lap Histiaeus bị vua Darius bắt giữ ở Susa vào thế kỷ thứ năm trước Công nguyên, ông ta đã gửi một thông báo bí mật cho con
rể của mình là Aristagoras ở Miletus Histiaeus đã cạo trọc đầu của một nô lệ tin cậy
và xăm một thông báo trên da đầu của nô lệ ấy Khi tóc của người nô lệ này mọc đủ dài người nô lệ được gửi tới Miletus
Một câu chuyện khác về thời Hy-Lạp cổ đại cũng do Herodotus ghi lại Môi trường để ghi văn bản chính là các viên thuốc được bọc trong sáp ong Demaratus, một người Hy-Lạp, cần thông báo cho Sparta rằng Xerxes định xâm chiếm Hy-Lap
Để tránh bị phát hiện, anh ta đã bóc lớp sáp ra khỏi các viên thuốc bằng một lớp sáp mới Những viên thuốc được để ngỏ và lọt qua mọi sự kiểm tra một cách dễ dàng
Mực không màu là phương tiện hữu hiệu cho bảo mật thông tin trong một thời gian dài Người Romans cổ đã biết sử dụng những chất sẵn có như nước quả, nước tiểu và sữa để viết các thông báo bí mật giữa những hàng văn tự thông thường Khi bị hơ nóng, những thứ mực không nhìn thấy này trở nên sẫm màu và có thể đọc
dễ dàng Mực không màu cũng được sử dụng rất gần đây như trong thời gian chiến tranh Thế giới II
500 năm trước, một nhà toán học người Ý tên là Jérôme Cardan đã sáng tạo lại một phương thức văn bản bí mật cổ xưa của người Trung Quốc Văn bản được làm như sau: một tờ giấy làm mặt nạ có nhiều lỗ thủng mà người gửi và người nhận đều biết, mặt nạ này sẽ được đặt trên một tờ giấy trắng và người gửi sẽ viết thông điệp bí mật qua các lỗ thủng trên mặt nạ sau đó vứt mặt nạ đó đi và điền phần còn lại vào tờ giấy trắng như tờ giấy này toàn các thông tin vô thưởng vô phạt (hình 1.2)
Hình 1.2 Từ trái qua phải: Mặt nạ, văn bản, thông điệp được truyền bí mật
trong văn bản
Ngày nay nghệ thuật giấu tin được nghiên cứu để phục vụ các mục đích tích cực như bảo vệ bản quyền, thủy vân số, hay phục vụ giấu các thông tin bí mật về
Trang 164
quân sự và kinh tế Sự phát triển của công nghệ thông tin đã tạo ra những môi trường giấu tin mới vô cùng tiện lợi và phong phú Người ta có thể giấu tin trong các tệp ảnh, trong các tệp âm thanh, tệp văn bản Cũng có thể giấu tin ngay trong các khoảng trống hay các phân vùng ẩn của môi trường lưu trữ như đĩa cứng, đĩa mềm Các gói tin truyền đi trên mạng cũng là môi trường giấu tin quan trọng và ngay cả các tiện ích phần mềm cũng là môi trường lý tưởng để gài các thông tin quan trọng để xác nhận bản quyền
1.3 Khái niệm và các định nghĩa trong ẩn giấu tin
“Giấu tin” là một kỹ thuật nhúng (giấu) một lượng thông tin số nào đó vào trong một đối tượng dữ liệu số khác Kỹ thuật giấu tin nhằm hai mục đích: một là bảo mật cho dữ liệu được đem giấu, hai là bảo vệ cho chính đối tượng mang tin giấu Hai mục đích khác nhau này dẫn đến hai kỹ thuật chủ yếu của giấu tin Đó là giấu tin mật (Steganography) và thủy vân số (Watermarking) Kỹ thuật giấu tin mật (Steganography): Với mục đích đảm bảo an toàn và bảo mật thông tin được giấu Các kỹ thuật giấu tin mật tập trung vào việc sao cho thông tin giấu được nhiều và người khác khó phát hiện ra thông tin có được giấu trong hay không
Nhiều phương pháp bảo vệ thông tin đã được đưa ra trong đó giải pháp dùng mật mã được ứng dụng rộng rãi nhất Thông tin ban đầu được mã hoá và gửi đi, người nhận được sẽ giải mã thông tin nhờ khoá của hệ mật mã Có nhiều hệ mã phức tạp được sử dụng như DES, RSA, NAPSACK… mang lại hiệu quả cao Bên cạnh đó, một phương pháp được sử dụng mang lại nhiều lợi ích tối ưu đó là kỹ thuật giấu tin (Data Hiding) Có thể coi giấu tin là một nhánh của ngành mật mã với mục tiêu là nghiên cứu các phương pháp che giấu thông tin mật Mã hóa thông tin là giải pháp đảm bảo an toàn và bảo mật thông tin theo phương pháp truyền thống với một quy tắc nào đó được thỏa thuận trước giữa người gửi và người nhận
Tuy nhiên, phương pháp này tạo nên sự chú ý của đối phương với các thông điệp đươc truyền đi Một hướng tiếp cận mới trong lĩnh vực an toàn và bảo mật thông tin, đó là giấu đi sự hiện diện của các thông tin quan trọng trong những bức ảnh thông thường Sự khác biệt giữa bức ảnh có giấu thông tin và những bức ảnh thông thường là rất nhỏ nên hạn chế được sự chú ý và nghi ngờ của đối phương
Trang 175
Mặt khác, dù các bức ảnh có giấu thông tin bị phát hiện là có chứa thông tin trong
đó thì việc tìm được nội dung của thông tin đó cũng rất khó có thể thực hiện được vì quá trình giấu tin có kết hợp với các khóa có độ bảo mật cao
1.4 Mục đích của giấu tin
Giấu tin có hai mục đích:
- Bảo mật cho dữ liệu được giấu
- Bảo đảm an toàn (bảo vệ bản quyền) cho chính các đối tượng chứa dữ liệu giấu trong đó
Có thể thấy hai mục đích chính này hoàn toán trái ngược nhau và dần phát triển thành hai lĩnh vực với những yêu cầu và tính chất khác nhau
Hình 1.3 Hai lĩnh vực chính của kỹ thuật giấu thông tin
an toàn và bảo mật thông tin tập trung vào các kỹ thuật giấu tin để có thể giấu được nhiều thông tin nhất Thông tin mật được giấu kỹ trong một đối tượng khác sao cho người khác không phát hiện được
quyền của đối tượng chứa thông tin tập trung đảm bảo một số các yêu cầu như đảm bảo tính bền vững … đây là ứng dụng cơ bản nhất của kỹ thuật thủy phân số
(Steganography)
Thủy phân số (Watermarking)
Mục tiêu
Tàng hình các phiên liên lạc để bảo mật thông tin
Dùng trong các liên lạc xác định
Chủ yếu phục vụ mục đích bảo vệ bản quyền
Chủ yếu hoạt động trong các hoạt động xuất bản
Giấu thông tin
Giấu tin bí mật
Thủy phân số
Trang 186
tiện chứa thông tin
Có thể tác động nhỏ về cảm nhận tới phương tiện chứa
Yêu cầu
Giấu được nhiều thông tin nhất Không cần quan tâm đến độ bền của phương tiện chứa
Không thể quan sát được việc giấu thông tin
Không thể kiểm tra được nếu không có khóa thích hợp
Chỉ cần nhúng ít dữ liệu
Dữ liệu nhúng cần phải bền vững
Đảm bảo trước các phương pháp nén dữ liệu
Dữ liệu nhúng có thể nhận thấy hay không nhận thấy Không kiểm tra được nếu không có khóa thích hợp
Hình 1.4 Bảng so sánh giấu thông tin mật và giấu thông tin thủy phân
1.5.1 Giấu tin trong ảnh số
Hiện nay giấu thông tin trong ảnh là một bộ phận chiếm tỷ lệ lớn nhất trong các chương trình ứng dụng 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 hầu hết các ứng dụng bảo vệ an toàn thông tin như: nhận thực thông tin, xác định xuyên tạc thông tin, bảo vệ bản quyền tác giả, điều khiển truy cập…Chính vì thế mà vấn đề này nhận được sự quan tâm rất lớn của các
cá nhân, tổ chức, trường đại học và nhiều viện nghiên cứu trên thế giới
Khi giấu thông tin trong ảnh, 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à gần như khi nhìn bình thường vào ảnh đó chúng
ta không thể phát hiện ra rằng đằng sau ảnh là khối thông tin được ẩn trong đó
Ngày nay khi ảnh số được sử dụng rất phổ biến thì giấu thông tin trong ảnh
là một công nghệ đem lại rất nhiều tác 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ố hóa
và lưu trữ sử dụng như là hồ sơ cá nhân của các dịch vụ ngân hàng và tài chính, nó được dùng để nhận thực trong các thẻ tín dụng của người tiêu dùng Phần mềm
Trang 197
WinWord của Microsoft cũng cho phép người dùng lưu trữ chữ ký trong ảnh nhị phân rồi gắn vào vị trí nào đó trong file văn bản để đảm bảo tính an toàn của thông tin Tài liệu sau đó được truyền trực tiếp qua máy fax, qua mạng theo đó việc nhận thực chữ ký, xác thực thông tin đó trở thành một vấn đề cực kì quan trọng khi mà việc ăn cắp thông tin hay xuyên tạc thông tin bởi các tin tặc đang trở thành một vấn nạn đối với bất kỳ quốc gia nào, tổ chức nào
Thêm vào đó lại có rất nhiều loại thông tin quan trọng cần được bảo mật như những thông tin về an ninh, thông tin về bảo hiểm hay các thông tin về tài chính, các thông tin này được số hóa và lưu trữ trong hệ thống máy tính hay trên mạng Chúng rất dễ bị lấy cắp và bị thay đổi bởi các phần mềm chuyên dụng
Việc nhận thực cũng như phát hiện thông tin xuyên tạc đó trở nên vô cùng quan trọng, cấp thiết Và một đặc điểm của giấu thông tin trong ảnh đó là thông tin được giấu trong ảnh một cách vô hình, nó như là một cách mà 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 Gần đây báo chí đã đưa tin vụ việc ngày 11-9 gây chấn động nước Mỹ và toàn thế giới, chính tên trùm khủng bố quốc tế Osama Bin LaDen đã dùng cách thức giấu thông tin trong ảnh để liên lạc với đồng bọn, và hắn đã qua mặt được cục tình báo trung ương
Mỹ CIA và các cơ quan an ninh quốc tế
Chắc chắn sau vụ việc này, thì việc nghiên cứu các vấn đề liên quan đến giấu thông tin trong ảnh sẽ rất được quan tâm
1.5.2 Giấu tin trong audio
Giấu thông tin trong audio mang những đặc điểm khác so 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 Khác với kỹ thuật giấu thông tin trong ảnh phụ thuộc vào hệ thống thị giác thì 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
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
Trang 208
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 Ví dụ để nhúng một đoạn java applet vào một đoạn audio (16 bit, 44.100 Hz) có chiều dài bình thường thì các phương pháp nói chung cũng cần ít nhất là 20 bit/s Giấu thông tin trong audio đòi hỏi yêu cầu rất cao
về tính đồng bộ và tính an toàn của thông tin Các phương pháp giấu thông tin trong audio đều lợi dụng điểm yếu trong hệ thống thính giác của con người
1.5.3 Giấu tin trong video
Cũng như giấu tin trong ảnh hay trong audio giấu tin trong video cũng được quan tâm và được phát triển mạnh mẽ cho nhiều ứng dụng như điều khiển truy cập thông tin, nhận thực thông tin và bảo vệ bản quyền tác giả Một phương pháp giấu tin trong video được đưa ra bởi Cox là phương pháp phân bố đều Ý tưởng cơ bản của phương pháp là phân phối thông tin giấu dàn trải theo tần số của dữ liệu gốc Nhiều nhà nghiên cứu đã dùng những hàm cosin riêng và các hệ số truyền sóng riêng để giấu tin Trong các thuật toán khởi nguồn thường thì 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 trong video Như phương pháp của Swanson đã sử dụng phương pháp giấu theo khối, phương pháp này đã giấu được hai bit vào khối 8*8; hay gần đây nhất là phương pháp của Mukherjee là kỹ thuật giấu trong audio và video sử dụng cấu trúc lưới đa chiều…Kỹ thuật giấu thông tin trong video áp dụng
cả những đặc điểm về thị giác và thính giác của con người
1.5.4 Trong văn bản
Nhúng thông tin bí mật vào trong văn bản là một kỹ thuật nhúng tin đơn giản
và được phát triển sớm nhất Kỹ thuật này có người còn hiểu đó như phần mật mã thông tin Kỹ thuật này tận dụng những thuộc tính của văn bản, thay đổi một số thuộc tính văn bản theo quy ước để che giấu thông tin bên trong Tuy nhiên đi kèm
Trang 219
với sự đơn giản là dễ bị tấn công, gỡ bỏ hoặc làm sai lệch thông tin được giấu
1.5.5 Giấu thông tin vào cơ sở dữ liệu quan hệ
Với tốc độ phát triển nhanh của Internet và các công nghệ có liên quan đã đưa đến một tiềm năng chưa từng có đối với việc truy cập và phân phối lại các sản phẩm kỹ thuật số Trong bối cảnh như vậy, việc thực thi quyền sở hữu dữ liệu là một yêu cầu quan trọng đòi hỏi các giải pháp đồng bộ, bao gồm các khía cạnh về kỹ thuật, về tổ chức, và cả luật pháp Mặc dù vẫn chưa có được những giải pháp toàn diện như vậy nhưng trong các năm gần đây, các kỹ thuật thuỷ vân đã đóng vai trò quyết định nhằm giải quyết vấn đề về quyền sở hữu này Những kỹ thuật như vậy cho phép người chủ dữ liệu có thể nhúng một thuỷ vân ẩn vào dữ liệu Một thuỷ vân thường mô tả những thông tin có thể được dùng để chứng minh quyền sở hữu
dữ liệu, chẳng hạn như tên chủ sở hữu, nguồn gốc, hoặc người tiếp nhận nội dung này Việc nhúng thông tin an toàn đòi hỏi thuỷ vân được nhúng trong dữ liệu không thể bị làm giả mạo hoặc bị tẩy xoá một cách dễ dàng Nhúng ẩn có nghĩa là thuỷ vân không thể nhìn thấy được trong dữ liệu Hơn nữa, việc phát hiện thuỷ vân được thực hiện theo phương pháp mù, tức là không đòi hỏi dữ liệu gốc cũng như thuỷ vân gốc Đã có một số kỹ thuật thuỷ vân được phát triển để nhúng thủy vân phim, âm thanh, ảnh và dữ liệu văn bản
Trái lại, vấn đề thuỷ vân dữ liệu quan hệ đã không nhận được sự chú ý thích đáng Tuy nhiên, có nhiều ngữ cảnh ứng dụng trong đó dữ liệu trở nên một tài sản quan trọng, vì vậy vấn đề về quyền sở hữu phải được thực thi một cách cẩn thận Ví dụ dữ liệu về thời tiết, dữ liệu về thị trường chứng khoán, dữ liệu về hành
vi của khách hàng, dữ liệu y học và khoa học Việc nhúng thuỷ vân vào dữ liệu quan hệ có thể thực hiện được bởi trong thực tế, các dữ liệu thật có thể chấp nhận một dung sai nhỏ mà vẫn không ảnh hưởng đáng kể đến giá trị sử dụng của chúng
1.6 Phân loại các kỹ thuật giấu tin
Hàng thập kỷ qua, con người đã phát triển đáng kể các phương pháp sáng tạo trong giao tiếp bí mật Trong đó có 3 kỹ thuật có mối tương quan với nhau là giấu tin, thủy vân số và mật mã
Trang 2210
Có thể coi giấu tin là một nhánh của ngành mật mã với mục tiêu là nghiên cứu các phương pháp che giấu thông tin Giấu tin và mật mã tuy cùng có mục đích
là để đối phương không phát hiện ra tin cần giấu, tuy nhiên giấu tin khác với mật
mã ở chỗ: Mật mã là giấu đi ý nghĩa của thông tin còn giấu tin là giấu đi sự hiện diện của thông tin Có nhiều cách phân loại giấu tin khác nhau dựa trên những tiêu chí khác nhau Theo Fabien A.P Petitcolas đề xuất năm 1999, có thể chia lĩnh vực giấu tin thành hai hướng lớn, đó là giấu tin mật và thủy vân số
Hình 1.5 Phân loại các kỹ thuật giấu tin
Theo sơ đồ trên thì giấu tin được chia thành 2 hướng chính là giấu tin mật và thủy phân số Giấu tin mật quan tâm chủ yếu đến lượng tin có thể giấu, còn thủy phân số lại quan tâm chủ yếu đến tính bền vững của thông tin giấu, trong từng hướng chính lại chia ra các hướng nhỏ hơn, chẳng hạn với thủy phân số thì có thủy phân bền vững và thủy phân dễ vỡ Thủy phân bền vững cần bảo toàn được các thông tin thủy phân trước các tấn công như dịch chuyển, cắt xén, xoay đối với ảnh Ngược lại, thủy phân dễ vỡ cần phải dễ bị phá hủy khi gặp các sự tấn công nói trên
Mật mã (Cryptography hay Secret Writing) là phương pháp gửi thông điệp dưới những hình thức khác nhau sao cho chỉ có người nhận mong đợi mới bỏ đi che giấu để đọc được thông điệp Thông điệp muốn gửi đi gọi là bản rõ Thông điệp bị che giấu gọi là bản mã hóa Sau khi người nhận loại bỏ che giấu để đọc thông tin thì thông điệp không còn được bảo vệ nữa Giấu thông tin là kỹ thuật nhúng
Trang 2311
(embedding) một lượng thông tin số nào đó vào trong một đối tượng dữ liệu số 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
Sự khác biệt chủ yếu giữa mã hoá thông tin và giấu thông tin là mã hoá thông tin làm cho các thông tin hiện rõ là nó có được mã hoá hay không, giấu thông tin thì người ta khó phát hiện trong đối tượng đó có thông tin được giấu hay không Giấu thông tin và mã hóa thông tin tuy cùng có mục đích là để đối phương không phát hiện ra tin cần giấu, nhưng chúng khác nhau ở chỗ: Mã hóa thông tin là giấu đi
ý nghĩa của bản thông tin được mã hóa, trong khi đó giấu thông tin lại là giấu đi sự hiện diện của thông tin được giấu
1.7 Mã hoá thông tin và các phương pháp mã hóa
1.7.1 Mã hoá thông tin
Mã hóa thông tin là giải pháp đảm bảo an toàn và bảo mật thông tin theo phương pháp truyền thống với một quy tắc nào đó được thỏa thuận trước giữa người gửi và người nhận Tuy nhiên, phương pháp này tạo nên sự chú ý của đối phương với thông điệp Một hướng tiếp cận mới trong lĩnh vực an toàn và bảo mật thông tin, đó là giấu đi sự tồn tại của các thông tin quan trọng trong những bức ảnh thông thường Sự khác biệt giữa bức ảnh có giấu thông tin và những bức ảnh thông thường là rất nhỏ nên hạn chế được sự chú ý và nghi ngờ của kẻ tấn công Mặt khác,
dù các bức ảnh có giấu thông tin bị phát hiện là có chứa thông tin trong đó thì việc trích lọc được các thông tin này là không đơn giản vì trong quá trình nhúng tin một khóa bí mật sẽ được sử dụng để phân tán các bit tin vào trong đối tượng mang tin
Kể cả khi khôi phục (trích xuất được dữ liệu được ẩn giấu thì cũng không thể hiểu được nội dung vì thường thì thông điệp trước khi được nhúng sẽ được mã hóa)
1.7.2 Các phương pháp mã hoá
1.7.2.1 Mã hóa cổ điển:
Đây là phương pháp mã hóa đầu tiên, và cổ xưa nhất, và hiện nay rất ít được dùng đến so với các phương pháp khác Ý tưởng của phương pháp này rất đơn giản, bên A mã hóa thông tin bằng thuật toán mã hóa cổ điển, và bên B giải mã thông tin,
Trang 2412
dựa vào thuật toán của bên A, mà không dùng đến bất kỳ key nào Do đó, độ an toàn của thuật toán sẽ chỉ dựa vào độ bí mật của thuật toán, vì chỉ cần ta biết được thuật toán mã hóa, ta sẽ có thể giải mã được thông tin
1.7.2.2 Mã hóa một chiều:
Đôi khi ta chỉ cần mã hóa thông tin chứ không cần giải mã thông tin, khi đó
ta sẽ dùng đến phương pháp mã hóa một chiều (Chỉ có thể mã hóa chứ không thể giải mã) Thông thường phương pháp mã hóa một chiều sử dụng một hàm băm (hash function) để biến một chuỗi thông tin thành một chuỗi hash có độ dài nhất định Ta không có bất kỳ cách nào để khôi phục (hay giải mã) chuỗi hash về lại chuỗi thông tin ban đầu
Hàm băm (Hash function) là một hàm mà nó nhận vào một chuỗi có độ dài bất kỳ, và sinh ra một chuỗi kết quả có độ dài cố định (Gọi là chuỗi hash), dù hai chuỗi dữ liệu đầu vào, được cho qua hàm băm thì cũng sinh ra hai chuỗi hash kết quả khác nhau rất nhiều Ví dụ như đối với kiểu dữ liệu Hash-table, ta có thể coi đây là một dạng kiểu dữ liệu mảng đặc biệt mà index nó nhận vào là một chuỗi, nó được định nghĩa bằng cách bên trong nó chứa một mảng thông thường, mỗi khi truyền vào index là một chuỗi, thì chuỗi này sẽ đi qua hàm băm và ra một giá trị hash, giá trị này sẽ tương ứng với index thật của phần tử đó trong mảng bên dưới
Đặc điểm của hash function là khi thực hiện băm hai chuỗi dữ liệu như nhau,
dù trong hoàn cảnh nào thì nó cũng cùng cho ra một chuỗi hash duy nhất có độ dài nhất định và thường nhỏ hơn rất nhiều so với chuỗi gốc, và hai chuỗi thông tin bất
kỳ dù khác nhau rất ít cũng sẽ cho ra chuỗi hash khác nhau rất nhiều Do đó hash function thường được sử dụng để kiểm tra tính toàn vẹn của dữ liệu
1.7.2.3 Mã hóa đối xứng
Mã hóa đối xứng (Hay còn gọi là mã hóa khóa bí mật) là phương pháp mã hóa mà key mã hóa và key giải mã là như nhau (Sử dụng cùng một secret key để mã hóa và giải mã) Đây là phương pháp thông dụng nhất hiện nay dùng để mã hóa dữ liệu truyền nhận giữa hai bên Vì chỉ cần có secret key là có thể giải mã được, nên bên gửi và bên nhận cần làm một cách nào đó để cùng thống nhất về secret key
Để thực hiện mã hóa thông tin giữa hai bên thì:
Trang 2513
₊ Đầu tiên bên gửi và bên nhận bằng cách nào đó sẽ phải thỏa thuận secret key (khóa bí mật) được dùng để mã hóa và giải mã Vì chỉ cần biết được secret key này thì bên thứ ba có thể giải mã được thông tin, nên thông tin này cần được bí mật truyền đi (bảo vệ theo một cách nào đó)
₊ Sau đó bên gửi sẽ dùng một thuật toán mã hóa với secret key tương ứng để
mã hóa dữ liệu sắp được truyền đi Khi bên nhận nhận được sẽ dùng chính secret key đó để giải mã dữ liệu
₊ Vấn đề lớn nhất của phương pháp mã hóa đối xứng là làm sao để “thỏa thuận” secret key giữa bên gửi và bên nhận, vì nếu truyền secret key từ bên gửi sang bên nhận mà không dùng một phương pháp bảo vệ nào thì bên thứ
ba cũng có thể dễ dàng lấy được secret key này
Các thuật toán mã hóa đối xứng thường gặp: DES, AES…
1.7.2.4 Mã hóa bất đối xứng
Mã hóa bất đối xứng (Hay còn gọi là mã hóa khóa công khai) là phương pháp mã hóa mà key mã hóa (lúc này gọi là public key – khóa công khai) và key giải mã (lúc này gọi là private key – khóa bí mật) khác nhau Nghĩa là key ta sử dụng để mã hóa dữ liệu sẽ khác với key ta dùng để giải mã dữ liệu Tất cả mọi người đều có thể biết được public key (kể cả hacker), và có thể dùng public key này
để mã hóa thông tin Nhưng chỉ có người nhận mới nắm giữ private key, nên chỉ có người nhận mới có thể giải mã được thông tin
Để thực hiện mã hóa bất đối xứng thì:
₊ Bên nhận sẽ tạo ra một cặp khóa (public key và private key) Bên nhận sẽ dữ lại private key và truyền cho bên gửi public key Vì public key này là công khai nên có thể truyền tự do mà không cần bảo mật
₊ Bên gửi trước khi gửi dữ liệu sẽ mã hóa dữ liệu bằng thuật toán mã hóa bất đối xứng với key là public key từ bên nhận
₊ Bên nhận sẽ giải mã dữ liệu nhận được bằng thuật toán được sử dụng ở bên gửi, với key giải mã là private key
Trang 2614
Điểm yếu lớn nhất của mã hóa bất đối xứng là tốc độ mã hóa và giải mã rất chậm so với mã hóa đối xứng, nếu dùng mã hóa bất đối xứng để mã hóa dữ liệu truyền - nhận giữa hai bên thì sẽ tốn rất nhiều chi phí
Do đó, ứng dụng chính của mã hóa bất đối xứng là dùng để bảo mật secret key cho mã hóa đối xứng: Ta sẽ dùng phương pháp mã hóa bất đối xứng để truyền secret key của bên gửi cho bên nhận Và hai bên sẽ dùng secret key này để trao đổi thông tin bằng phương pháp mã hóa đối xứng
Thuật toán mã hóa bất đối xứng thường thấy: RSA
1.8 Kết luận chương 1
Chương 1 đã trình bày khái quát về lĩnh vực giấu tin, giới thiệu một số khái niệm cơ bản trong lĩnh vực này Chương 1 đã tóm tắt một số kỹ thuật giấu tin cơ bản nhất và trình bày về nhu cầu và các ứng dụng giấu tin trong ảnh số Các kỹ thuật giấu tin được triển khai trong nhiều ứng dụng khác nhau nhằm bảo vệ tính bí mật của thông tin, có thể phục vụ cho nhiều ứng dụng trong đời sống, ví dụ bảo vệ bản quyền số Trong các kỹ thuật giấu tin, giấu tin trong ảnh số chiếm tỷ lệ lớn nhất
do khả năng giấu thông tin trong lượng thông tin của hình ảnh khá lớn và khả năng ứng dụng rất cao Chương 2 tiếp theo sẽ trình bày chi tiết về các kỹ thuật giấu tin trong ảnh số
Trang 2715
CHƯƠNG 2 KỸ THUẬT GIẤU TIN TRONG ẢNH SỐ
2.1 Giới thiệu chung
Hiện nay, giấu thông tin trong ảnh là một bộ phận chiếm tỷ lệ lớn nhất trong các chương trình ứng dụng, các phần mềm, hệ thống giấu tin trong đa phương tiện bởi lượng thông tin được trao đổi bằng ảnh là rất lớn và hơn nữa giấu thông tin trong ảnh cũng đóng vai trò hết sức quan trọng trong hầu hết các ứng dụng bảo vệ
an toàn thông tin như: nhật 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,…
Thông tin sẽ được giấu cùng với dữ liệu ảnh nhưng chất lượng ảnh ít thay đổi
và chẳng ai biết được đằng sau ảnh đó mang những thông tin có ý nghĩa Và ngày nay, khi ảnh đã được sử dụng rất phổ biến, thì giấu thông tin trong ảnh đã đem lại nhiều những ứng dụng quan trọng trên các lĩnh vực trong đời sống xã hội Ví dụ như đối với các nước phát triển, chữ ký tay đã được số hóa và được lưu trữ sử dụng như hồ sơ cá nhân của các dịch vụ ngân hàng và tài chính Nó được dùng để nhận thực trong các thẻ tín dụng của người tiêu dùng
Hay trong trong một số ứng dụng về nhận diện như thẻ chứng minh, thẻ căn cước, hộ chiếu…người ta có thể giấu thông tin trên các ảnh thẻ để xác định thông tin thực Ví dụ như hình vẽ dưới là một thẻ chứng minh đã được giấu tin trong ảnh Thông tin giấu là số thẻ trùng với số đã được in rõ ở trên thẻ
Hình 2.1 Một thẻ thông minh đã được giấu tin sử dụng trong công tác nhận
dạng
Trang 2816
Phần mềm WinWord của Microsoft cũng cho phép người dùng lưu trữ chữ
ký trong ảnh nhị phân rồi gắn vào vị trí nào đó trong file văn bản để đảm bảo tính
an toàn của thông tin Tài liệu sau đó được truyền trực tiếp qua máy fax hoặc lưu truyền trên mạng Theo đó, việc nhận thực chữ ký, xác thực thông tin đã trở thành một vấn đề cực kỳ quan trọng khi mà việc ăn cắp thông tin hay xuyên tạc thông tin của 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ố hóa 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 phần mềm chuyên dụng Việc nhận thực cũng như phát hiện thông tin xuyên tạc đã trở nên vô cùng quan trọng, cấp thiết Và một đặc điểm của giấu thông tin trong ảnh nữa đó là thông tin được giấu một cách
vô hình Nó như là cách truyền thông tin mật cho nhau mà người khác không thể biết được, bởi sau khi giấu thông tin thì chất lượng ảnh gần như không thay đổi đặc biệt với ảnh màu hay ảnh xám
Từ năm học 1995 – 1996, Bộ giáo dục và Đào tạo đã bắt đầu ứng dụng công nghệ thông tin vào công tác bảo mật đề thi tốt nghiệp trung học phổ thông thay cho việc niêm phong, đóng dấu đề thi để chuyển qua theo đường bưu điện
Đối tượng ảnh đầu tiên mà các chương trình giấu tin nhắm tới là ảnh Bitmap
Vì ảnh này phổ biến trên mạng Internet, dung lượng giấu tin cao và các phương pháp giấu tin đơn giản [8]
2.2 1.1 Tổng quan
Đặc điểm nổi bật nhất của định dạng BMP là tập tin hình ảnh thường không được nén bằng bất kỳ thuật toán nào Khi lưu ảnh, các điểm ảnh được ghi trực tiếp vào tập tin – một điểm ảnh sẽ được mô tả bởi một hay nhiều byte tùy thuộc vào giá
Trang 2917
trị n của ảnh Do đó, một hình ảnh lưu dưới dạng BMP thường có kích cỡ rất lớn Gấp nhiều lần so với các ảnh được nén (chẳng hạn như GIP, JPEG, PNG)
Các ảnh số thường được lưu dưới dạng tệp ảnh 24-bit hay 8-bit cho một điểm
ảnh Ảnh 24-bit còn được gọi là ảnh true colour cung cấp nhiều chỗ giấu thông tin
hơn; tuy nhiên ảnh 24-bit lớn, ví dụ một ảnh 24-bit cỡ 1024 x 768 pixels có kích thước trên 2MB, nên dễ bị gây chú ý khi tải qua mạng Thường những ảnh đó cần được nén, nhưng nén ảnh có thể làm mất tin mật
Một phương án khác là có thể dùng ảnh 8-bit màu để giấu thông tin Trong các ảnh 8-bit (như ảnh GIF), mỗi điểm ảnh được thể hiện bằng một byte Mỗi điểm
đơn thuần trỏ đến một bảng chỉ mục các màu (palette), với 256 khả năng màu
Điểm ảnh chứa trị nằm giữa 0 và 255 Các phần mềm chỉ đơn thuần vẽ màu cần biểu thị lên màn hình tại vị trí lựa chọn
Nếu dùng một ảnh 8-bit làm ảnh phủ, rất nhiều chuyên gia về giấu tin trong
giữa làm tăng khả năng giấu tin
Giấu tin trong ảnh 8-bit cần xem xét cả ảnh lẫn bảng màu Một ảnh có khối lớn các màu đồng nhất khó giấu hơn vì dễ bị nhận biết Sau khi chọn ảnh phủ, bước tiếp theo là chọn phương pháp mã hoá ảnh
Trang 3018
Trong bảng màu, 1 màu ứng với một bộ ba hay bộ bốn
Kích thước của bảng màu được tính từ độ sâu điểm ảnh (pixel depth):
+ 4-bit pixel: 3 byte/màu * 16 (= 24) màu = 48 byte
+ 8-bit pixel: 3 byte/màu * 256 màu = 768 byte
+ 15-bit pixel: 3 byte/màu * 32768 màu = 96 kbyte
+ 16-bit pixel: 3 byte/màu * 65536 màu = 192 kbyte
Một số loại ảnh giảm bớt số màu trong bảng màu, vì không phải tất cả các màu được dùng trong ảnh (CGM, TGA)
Các giá trị điểm được cất trong 2 byte (16 bit):16 bit = 2 byte = (8 bit, 8 bit)
Trang 31Ảnh như một bản đồ bit: quan điểm ảnh mành như một bản đồ các bit
tạo nền tảng để chúng ta áp dụng các phép toán về bit
Ảnh như một hàm toán học: để xử lý ảnh trong máy tính dùng các công
cụ toán học, người ta tìm cách biểu diễn ảnh như là một hàm rời rạc f(x,y) trong đó x, y là toạ độ của điểm ảnh còn f là giá trị xám hoặc độ sáng của ảnh f nhận các giá trị rời rạc trong khoảng từ 0 đến fmax Trong ảnh 8 bit
biểu diễn các thành phần đỏ, lục và lam Ví dụ r(x,y); g(x,y); b(x,y)
Ảnh như một môi trường vật lý: Một ảnh f(x,y) cũng là một môi trường
vật lý nên có thể dùng áp dụng các phép biến đổi vật lý trên ảnh Ví dụ mức năng lượng của điểm ảnh, dải tần số của nhiễu ảnh, dải phổ,
Mô tả ảnh như một mô hình thống kê: Các giá trị của điểm ảnh (mức
xám, độ sáng hay trị màu) được coi như là biến ngẫu nhiên, do đó chúng ta
có thể tính được phân bố xác suất của chúng Ví dụ người ta có thể dùng biểu đồ cột (histogram) để biểu diễn độ xám hay các trị màu Trong xử lý ảnh người ta có thể dùng biểu đồ cột để làm các việc như lọc nhiễu
Còn trong giấu tin thì ta có thể qua đó mà biết đâu là vùng ảnh có thể giấu tin tốt nhất
Trang 3220
Hình 2.4 Biểu đồ cột của một ảnh trong Paint Shop Pro 7
Chính các quan điểm khác nhau về ảnh đã làm nền tảng để có được những kỹ thuật khác giấu tin khác nhau
2.2 1.4 Cấu trúc ảnh
Ảnh Bitmap do Microsoft phát triển, do vậy còn được gọi là Microsoft
Windows Bitmap (BMP, DIB, Windows BMP, Windows DIB, Compatible
Bitmap) được lưu trữ độc lập với thiết bị hiển thị (DIB) Ảnh này được sử dụng rộng rãi trên Windows Có thể có 1-, 4-, 8-, 16-, 24-, hay 32-bit màu Ảnh nàythường sử dụng phương pháp mã hoá loạt dài RLE Kích thước tối đa là 32Kx32K
Cấu tạo của ảnh bitmap gồm các phần
Header Palette
Trang 3321
Bitmap Index Palette 1 File Identifier File Version Number of Lines per Image Number of Pixels per Line Number of Bits per Pixel Number of Color Planes Compression Type
X Origin of Image
Y Origin of Image Text Description Unused Space Ảnh Bitmap Microsoft Windows 1.x có phần Header gồm 10-byte :
TYPEDEF struct _Win1xHeader
{
WORD Type; /* File type identifier (always 0) */
WORD Width; /* Width of the bitmap in pixels */
WORD Height; /* Height of the bitmap in scan lines */
WORD ByteWidth; /* Width of bitmap in bytes */
BYTE Planes; /* Number of color planes */
BYTE BitsPerPixel; /* Number of bits per pixel
*/ } WIN1XHEADER;
Dữ liệu ảnh Bitmap đƣợc ghi vào tệp theo 2 cách:
thiết bị
Trang 3422
Chi tiết cấu trúc các ảnh BITMAP
Bitmap header:
+ 1-2 Nhận dạng file Kiểu arrayp1 2] of char:chứa ký tự BM
+ 3-6 Kích thướ file Kiểu Longint: tính bằng byte
+ 11-14 Byte bắt đầu Kiểu longint, vị trí byte bắt đầu vùng data kể từ đầu file
BitmapInfor
+ 1-4: Số byte trong vùng info Kiểu Longint, hiện tại có giá trị 40
+ 5-8: Chiều rộng bitmap Kiểu longint tính bằng pixel
+ 9-12: Chiều cao bitmap Kiểu longint tính bằng pixel 13-14 Số Planes màu Kiểu Word số bảng màu
+ 15-16: Số bits cho một pixel Kiểu Word, các giá trị có thể có 1: Đen/trắng, 4:16 màu, 8:256 màu, 24: 24bit màu
+ 17-20: Kiểu nén dữ liệu Kiểu Longint có giá trị là
Không nén Nén runlength+8bit/pixel Nén runlength+4bit/pixel + 21-24: Kích thước ảnh Kiểu Longint, bằng số byte của ảnh
+ 25-28: Độ phân giải ngang Kiểu Longint, tính bằng pixel
+ 29-32: Độ phân giải dọc Kiểu Longint, tính bằng pixel
+ 33-36: Số màu được sử dụng Kiểu Longint trong ảnh
+ 37-40: Số màu được sử dụng Kiểu Longint khi hiện ảnh
Bitmap palette
Tiếp theo sau vùng info là palette màu của BMP, gồm nhiều bộ có kích thước bằng 4 byte xếp liền nhau theo cấu trúc Blue-Green-Red và một Byte dành riêng cho Intensity Kích thước của vùng Palette màu bằng 4*số màu của ảnh Vì Palette màu của màn hình có cấu tạo theo thứ tự Red-Green-Blue, nên khi đọc palette màu của ảnh BMP vào ta phải chuyển đổi lại cho phù hợp Số màu của ảnh được biết dựa trên số bit cho 1 pixel cụ thể là: 8.bits/pixel: ảnh 256 màu, 4bits/pixel: ảnh 16 màu, 24bits/pixel ảnh 24 bit màu
Trang 3523
BitmapData:
Phần này kề tiếp ngay sau Palette màu của BMP Đây là phần chứa các giá trị màu của các điểm ảnh trong BMP Các điểm ảnh được lưu theo thứ tự từ trái qua phải trên một dòng và các dòng lại được lưu theo thứ tự dưới lên trên Mỗi Byte trong vùng BitmapData biểu diễn 1 hoặc nhiều điểm ảnh tùy theo số bits cho một pixel
+ Khi là 1 bit màu:
Các bitmap là Đơn sắc, và bảng màu có chứa hai mục Mỗi bit trong bitmap mảng đại diện cho một điểm ảnh Nếu bit, rõ ràng, các điểm ảnh sẽ được hiển thị với màu sắc của các mục đầu tiên trong bảng màu, nếu các bit, được thiết lập, các điểm ảnh có màu sắc của các mục nhập thứ hai trong bảng
+ Khi là 4 bit màu:
Các bitmap đã có tối đa là 16 màu sắc, và các bảng màu chứa lên đến 16 mục Mỗi điểm ảnh trong bitmap được thể hiện bằng một 4-bit, chỉ mục vào các bảng màu Ví dụ, nếu là người đầu tiên byte trong bitmap là 1Fh, các byte đại diện cho hai pixel Đầu tiên chứa các điểm ảnh màu trong bảng màu mục nhập thứ hai,
và lần thứ hai chứa các điểm ảnh màu trong bảng màu 16 mục
+ Khi là 8 bit màu:
Các bitmap đã có tối đa là 256 màu sắc, và các bảng màu chứa tối đa 256 mục Trong trường hợp này, mỗi byte trong mảng đại diện cho một điểm ảnh
+ Khi là 16 bit màu:
được thiết lập để BI_RGB, các lĩnh vực Palette không chứa bất kỳ mục Mỗi từ trong mảng bitmap đại diện cho một điểm ảnh Các thân nhân của intensities đỏ, xanh, xanh và được đại diện với 5 bit cho mỗi thành phần màu sắc Các giá trị cho màu xanh là đáng kể trong ít nhất 5 bit, sau 5 bit cho mỗi màu xanh và đỏ, tương ứng Trọng nhất không phải là ít được sử dụng
Nếu các lĩnh vực của nén tập tin bitmap được thiết lập để BI_BITFIELDS, các lĩnh vực Palette có chứa ba dword màu mặt nạ mà chỉ định màu đỏ, màu xanh,
Trang 36Windows 95cụ thể: Khi nén lĩnh vực được thiết lập để BI_BITFIELDS, Windows 95 chỉ hỗ trợ sau đây 16bpp màu mặt nạ:
Một 5-5-5 16-bit, hình ảnh, nơi mà màu xanh mask là 0x001F, các màu xanh
lá cây mask là 0x03E0, và màu đỏ mask là 0x7C00; và 5-6-5 16-bit, hình ảnh, nơi
mà màu xanh mask là 0x001F, các màu xanh lá cây mask là 0x07E0, và màu đỏ là 0xF800 mask
+ Khi là 24 bit màu:
mục Mỗi 3-byte ban tam ca trong mảng bitmap đại diện cho thân nhân của intensities màu xanh, màu xanh lá cây, và đỏ, tương ứng, cho một điểm ảnh
+ Khi lĩnh vực này là bằng 32
Các bitmap đã có tối đa là 232màu Nếu các lĩnh vực nén của bitmap được thiết lập để BI_RGB, các lĩnh vực Palette không chứa bất kỳ mục Mỗi dword trong mảng bitmap đại diện cho thân nhân của intensities màu xanh, màu xanh lá cây, và
đỏ, tương ứng, cho một điểm ảnh Cao byte trong mỗi dword là không sử dụng
Nếu các lĩnh vực nén của bitmap được thiết lập để BI_BITFIELDS, các lĩnh vực Palette có chứa ba dword màu mặt nạ mà chỉ định màu đỏ, màu xanh, màu xanh và các thành phần, tương ứng, trong mỗi điểm ảnh Mỗi dword trong mảng bitmap đại diện cho một điểm ảnh
Windows NT, cụ thể: Khi nén lĩnh vực được thiết lập để BI_BITFIELDS, thiết lập bit trong mỗi dword mask phải được tác và không nên chồng chéo các bit của một khách mask Tất cả các bit trong các điểm ảnh không cần phải được sử dụng
Trang 3725
Windows 95 cụ thể: Khi nén lĩnh vực được thiết lập để BI_BITFIELDS, Windows 95 chỉ hỗ trợ sau đây 32bpp màu mask: Các màu xanh mask là 0x000000FF, các màu xanh lá cây mask là 0x0000FF00, và màu đỏ là mask 0x00FF0000
2.2.1 Định dạng ảnh PNG
PNG là viết tắt của từ (Portable Network Graphics) được phát triển vào năm
1996, nó là một định dạng tập tin đồ họa raster, hỗ trợ nén dữ liệu không bị suy giảm Định dạng PNG được tạo ra như một cải tiến, thay thế cho Graphics Interchange Format (GIF), và nó là định dạng ảnh nén không bị suy giảm chất lượng, được sử dụng rất nhiều trên internet Trong định dạng PNG chúng ta lại có 2 định dạng PNG khác nhau đó là PNG-8 và PNG-24
Định dạng PNG-8
- Định dạng PNG-8 tương đương với định dạng GIF
- Hỗ trợ 256 màu và 1-bit màu trong suốt
- Dung lượng của PNG-8 thậm chí còn nhỏ hơn cả file GIF
Định dạng PNG-24
- Định dạng PNG-24 có 24-bit màu và tương đương với JPGE
- Có thể gồm có hơn 26 triệu màu
- Được nén theo chuẩn Lossless, có nghĩa là dung lượng file sẽ lớn hơn JPGE
Ưu điểm của PNG:
- Hình ảnh nền không bị cạnh răng cưa
- Nén theo chuẩn LossLess, có nghĩa là hình ảnh sau khi bị nén vẫn giữ nguyên được chất lượng
- Độ trong suốt có thể được thiết lập giữa mờ đục và hoàn toàn trong suốt, cho chúng ta một cài nhìn mờ ảo
- Định dạng PNG có thể được đặt lên trên bất kỳ hình ảnh nào và vẫn giữ cho nó hiện lên trên được
- Định dạng PNG sử dụng tốt trên web/blog, những mảng màu phẳng, thiết
kế Logo, hình ảnh có nền trong suốt hoặc bán trong suốt
Trang 3826
- Thích hợp với hình ảnh đơn giản như văn bản
- Ảnh đang trong quá trình chỉnh sửa
+ 2 word: giá trị Offset theo byte tính từ đầu file tới cấu trúc IFD
- Phần thứ hai IFD (Image File Directory): 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 gồm:
+ byte: chứa các DE (Directory 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
- Cấu trúc phần dữ liệu thứ 3: Các DE
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
+ 4 byte trường độ dài
+ 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) quét của dữ liệu ảnh
2.2.3 Định dạng ảnh GIF
Ảnh 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 cho mỗi khung hình Gif 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
Trang 39GIF note GIF header (7 byte) Globel Palette Header Image (10 byte) Palette of Image (nếu có) Data of Image 1
- Dữ liệu ảnh Phần mô tả này lặp lại n lần nếu ảnh chứa n đối tƣợng
- Phần đầu cuối ảnh GIF (terminator)
+ Chữ ký của ảnh GIF có giá trị là GIF87a Nó gồm 6 ký tự, 3 ký tự đầu chỉ
ra kiểu định dạng, 3 ký tự sau chỉ ra version của ảnh
+ Bộ hình thị: chứa mô tả các thông số cho toàn bộ ảnh GIF:
Trang 4028
Thông tin màu nền: 1 byte
Phần chƣa dùng: 1 byte
+ Bản đồ màu tổng thể: mô tả bộ màu tối ƣu đòi hỏi khi bit M=1
Khi bộ màu tổng thể đƣợc thể hiện, nó sẽ xác định ngay bộ mô tả hiển thị ở
của 3 màu cơ bản Red-Green-Blue) Cấu trúc của khối này nhƣ sau:
Hình 2.6 Cấu trúc của khối bản đồ màu tổng thể
+ Bộ mô tả ảnh: định nghĩa vị trí thực tế và phần mở rộng của ảnh trong phạm vi không gian ảnh đã có trong phần mô tả hiển thị Nếu ảnh biểu diễn theo ánh xạ màu cục bộ thì cờ định nghĩa phải đƣợc thiết lập Mỗi bộ mô tả ảnh đƣợc chỉ
ra bởi ký tự kết nối ảnh Ký tự này chỉ đƣợc dùng khi định dạng GIF có từ 2 ảnh trở lên Ký tự này có các giá trị 0x2c (ký tự dấu phẩy) Khi ký tự này đƣợc đọc qua, bộ
mô tả ảnh sẽ đƣợc kích hoạt Bộ mô tả ảnh gồm 10 byte và có cấu trúc nhƣ sau: