Công nghệ thông tin và đặc biệt là sự phát triển của hệ thống mạng máy tính đã tạo nên môi trường mở và là phương tiện trao đổi, phân phối tài liệu một cách tiện lợi, nhanh chóng. Tuy nhiên, nó cũng làm tăng nguy cơ mất an toàn từ các ứng dụng trái phép cũng như xuyên tạc bất hợp pháp các thông tin lưu truyền trên mạng, đồng thời việc sử dụng một cách bình đẳng và an toàn các dự liệu đa phương tiện cũng như cung cấp một cách kịp thời rất nhiều người dùng và các thiết bị cuối cũng đặt ra nhiều vấn đề thách thức. Hơn nữa, sự bùng nổ của các phương tiện kỹ thuật số làm cho việc sao chép, lưu trữ, sửa đổi dữ liệu càng ngày càng đơn giản. Vì vậy, việc đảm bảo an toàn và bảo mật thông tin hiện nay luôn nhận được sự quan tâm đặc biệt của nhiều nhà nghiên cứu trong nhiều lĩnh vực.
Trang 1BAN CƠ YẾU CHÍNH PHỦ
Trang 2BAN CƠ YẾU CHÍNH PHỦ
HỌC VIỆN KỸ THUẬT MẬT MÃ
ĐỒ ÁN TỐT NGHIỆP
ĐỀ TÀI: “NGHIÊN CỨU” KỸ THUẬT ẨN MÃ TRONG ẢNH DỰA TRÊN BIÊN ẢNH VÀ LSB ĐỘNG
Ngành: Công nghệ thông tin
Chuyên ngành: An toàn thông tin
Họ và tên học viên:
Lớp:
Người hướng dẫn: - ThS Hoàng Thu Phương
- Khoa An toàn Thông tin - HVKTMM
Hà Nội, tháng 06 năm 2017
Trang 3MỤC LỤC
MỤC LỤC i
DANH MỤC TỪ VIẾT TẮT iii
DANH MỤC HÌNH ẢNH iv
DANH MỤC BẢNG BIỂU v
LỜI NÓI ĐẦU vi
CHƯƠNG 1 TỔNG QUAN VỀ ẨN MÃ 1
1.1 Giới thiệu chung về ẩn mã 1
1.2 Khái niệm ẩn mã 2
1.3 Một số thuật ngữ cơ bản 3
1.4 Mô hình ẩn mã 3
1.5 Một số kỹ thuật ẩn mã cơ bản 4
1.5.1 Ẩn mã trong ảnh 4
1.5.2 Ẩn mã trong âm thanh 5
1.5.3 Ẩn mã trong video 5
1.5.4 Ẩn mã trong tệp văn bản 6
1.5.5 Ẩn mã trong giao thức 6
1.6 Một số ứng dụng của ẩn mã trong thực tế 6
CHƯƠNG 2 TỔNG QUAN VỀ ẨN MÃ TRONG ẢNH 8
2.1 Các định dạng ảnh thường dùng để ẩn mã 8
2.1.1 Định dạng ảnh JPEG 8
2.1.2 Định dạng ảnh TIFF 9
2.1.3 Định dạng ảnh PNG 10
2.1.4 Định dạng ảnh GIF 12
2.1.5 Định dạng ảnh BITMAP 14
2.2 Một số kỹ thuật ẩn mã trong ảnh trên miền không gian 18
Trang 42.2.2 Kỹ thuật vi phân đa điểm ảnh (MPD) 21
2.3 Một số kỹ thuật ẩn mã trong ảnh trên miền tần số 22
2.3.1 Kỹ thuật biến đổi Fourier rời rạc (DFT) 22
2.3.2 Kỹ thuật biến đổi trực giao Cosine rời rạc (DCT) 25
2.3.3 Kỹ thuật biến đổi sóng nhỏ rời rạc (DWT) 28
CHƯƠNG 3 NGHIÊN CỨU KĨ THUẬT ẨN MÃ TRONG ẢNH DỰA TRÊN BIÊN ẢNH VÀ LSB ĐỘNG 34
3.1 Lược đồ ẩn LSB 34
3.2 Lược đồ sai khác giá trị điểm ảnh (PVD) 35
3.3 Lược đồ kết hợp giữa lược đồ LSB và PVD 37
3.3.1 Quá trình nhúng tin 37
3.3.2 Quá trình trích xuất tin 40
3.4 Đánh giá phương pháp 41
CHƯƠNG 4 XÂY DỰNG CHƯƠNG TRÌNH THỬ NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ 43
4.1 Nền tảng ứng dụng và ngôn ngữ lập trình 43
4.2.Sơ đồ thuật toán và các bước thực hiện 43
4.3.Chương trình 43
4.4.Đánh giá kết quả thực nghiệm 43
KẾT LUẬN HƯƠNG PHÁT TRIỂN ĐỀ TÀI 44
PHỤ LỤC 45
Trang 5con ngườiJPEG Joint Photographic Experts
Group
điểm ảnh
Trang 6DANH MỤC HÌNH ẢNH
Hình 1.1 Mô hình ẩn mã 4
Hình 2.1 Cấu trúc ảnh GIF87a 13
Hình 3.1 Thứ tự chọn điểm ảnh 36
Hình 3.2 Các mức độ Ri 36
Hình 3.3 Điểm ảnh mục tiêu và ba điểm ảnh lân cận 37
Hình 3.4 Quá trình nhúng tin 40
Hình 3.5 Quá trình trích xuất tin 42
Hình 4.1 Giao diện chương trình giấu tin 44
Hình 4.2 Thông báo giấu tin hoàn tất 45
Hình 4.3 Thông báo lưu ảnh thành công 45
Hình 4.4 Giao diện chương trình lấy tin 46
Hình 4.5 Thông báo lấy tin hoàn tất 46
Hình 4.6 Thông điệp lấy được khi nhập sai ngưỡng 47
Hình 4.7 Tập ảnh xám gốc để thử nghiệm 47
Hình 4.8 Tập ảnh mang tin sau thử nghiệm 48
Trang 7DANH MỤC BẢNG BIỂU
Bảng 2.1 Chi tiết các khối byte của header tệp bitmap 15
Bảng 2.2 Chi tiết khối byte thông tin tệp bitmap 16
Bảng 4.1 Bảng kết quả PSNR 50
Bảng 4.2 Bảng Kết quả Dung lượng nhúng trung bình - Capacity 51
Trang 8LỜI NÓI ĐẦU
Công nghệ thông tin và đặc biệt là sự phát triển của hệ thống mạng máy tính đãtạo nên môi trường mở và là phương tiện trao đổi, phân phối tài liệu một cách tiệnlợi, nhanh chóng Tuy nhiên, nó cũng làm tăng nguy cơ mất an toàn từ các ứngdụng trái phép cũng như xuyên tạc bất hợp pháp các thông tin lưu truyền trên mạng,đồng thời việc sử dụng một cách bình đẳng và an toàn các dự liệu đa phương tiệncũng như cung cấp một cách kịp thời rất nhiều người dùng và các thiết bị cuối cũngđặt ra nhiều vấn đề thách thức Hơn nữa, sự bùng nổ của các phương tiện kỹ thuật
số làm cho việc sao chép, lưu trữ, sửa đổi dữ liệu càng ngày càng đơn giản Vì vậy,việc đảm bảo an toàn và bảo mật thông tin hiện nay luôn nhận được sự quan tâmđặc biệt của nhiều nhà nghiên cứu trong nhiều lĩnh vực
Để đảm bảo an toàn và bí mật cho một thông điệp truyền đi người ta thườngdùng phương pháp truyền thống là mã hóa thông điệp theo một qui 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 thức nàythường gây sự chú ý của kẻ tấn công về tầm quan trọng của thông điệp
Một cách tiếp cận khác để truyền các thông điệp bí mật là ẩn mã(Steganography), đó là một kỹ thuật mà theo nhiều chuyên gia trong lĩnh vực này -
là một bộ môn nghệ thuật và khoa học nhằm che giấu sự tồn tại của thông tin vớimục tiêu che giấu các thông điệp cần giữ bí mật trong các dữ liệu “vô hại” khác đểđối phương không thể phát hiện được sự hiện diện của thông điệp Ngày nay, kỹthuật ẩn mã được thực hiện trong nhiều môi trường khác nhau như : ảnh số, âmthanh, video, hay các loại văn bản…
Trong những năm gần đây, có rất nhiều nghiên cứu lớn, tập trung chủ vào các
kỹ thuật ẩn mã trong ảnh số.Giữa ảnh gốc và ảnh mang tin khi nhìn bằng mắtthường sẽ rất khó để phân biệt, do đó, thông tin gần như vô hình khi được truyền đitrong thế giới hữu hình Để có thể tăng khả năng đảm bảo an toàn cho thông điệp từngười gửi tới người nhận, cần phải có một phương pháp ẩn mã hiệu quả
Trang 9Ẩn mã trong ảnh dựa trên biên ảnh và LSB động là một hướng nghiên cứu dựatrên sự kết hợp của lược đồ ẩn LBS và lược đồ sai khác giá trị điểm ảnh (PVD).PVD lợi dụng đặc tính của mắt người, mắt người sẽ nhạy cảm hơn với những thayđổi trong vùng có giá trị điểm ảnh đồng đều so với vùng biên có giá trị điểm ảnhchênh lêch Kết hợp với lược đồ LSB động, chúng ta có thể nhúng một lượng lớn
dữ liệu mật vào vùng mượt của ảnh bìa, sau mỗi lần nhúng dữ liệu vào một điểmảnh mượt, siêu dữ liệu về vị trí nhứng dữ liệu mật cuối cùng của điểm ảnh đó sẽđược nhúng vào 3 bit LSB của điểm ảnh biên tương ứng Kết quả là ảnh mang tinkhông có quá nhiều sai khác tới chất lượng ảnh giấu tin Bên cạnh đó, sự kết hợpgiữa PVD và LSB động không chỉ làm hiệu suất nhúng tin mà còn tăng khả năngbảo mật đối với thông điệp mong muốn
Vì vậy, em chọn đề tài “Nghiên cứu kỹ thuật ẩn mã trong ảnh dựa trên biên
ảnh và LBS động” làm đồ án tốt nghiệp, nhằm tìm hiểu cụ thể hơn, sâu hơn nữa
phương thức ẩn mã này
Trang 10CHƯƠNG 1 TỔNG QUAN VỀ ẨN MÃ 1.1 Giới thiệu chung về ẩn mã
Ẩn mã – Steganography có nguồn gốc từ tiếng Hy Lạp: Stegos có nghĩa là
“Cover” - Che đậy và Grafia có nghĩa là “Writing” – Văn bản Cover Writing đượchiểu là văn bản được che đậy Do vậy, ẩn mã là khoa học và nghệ thuật về thông tinliên lạc vô hình Kỹ thuật này được thực hiện thông qua việc che giấu sự tồn tại củathông tin bằng việc ẩn nó vào một thông tin khác
Theo các tài liệu nghiên cứu ghi lại, kỹ thuật ẩn mã cổ xưa nhất và cũng là đơngiản nhất được nhắc tới trong các tài liệu là khi vua Histiaeus (khoảng năm 440 TCN)cạo sạch tóc xăm thông điệp lên da đầu và chờ khi tóc mọc lại, người nô lệ đó chuyểnthông tin tới người nhận Sau đó, người ta sử dụng các vật liệu tự nhiên như bảng gỗ,sáp ong, hổ phách cho ẩn giấu thông tin
Khi kỹ thuật phát triển hơn, con người sử dụng chữ viết với cỡ chữ nhỏ giấu trongcác vật dụng hàng ngày (như các hộp, vali có hai đáy) để chuyển đi, hoặc dùng bồ câu
để chuyển thông tin để che mắt các nhân viên an ninh, hải quan Sang thế kỷ 17, người
ta dùng cách đánh dấu vào các kí tự cần thiết trên một văn bản, một bài báo công khainào đó rồi truyền tới tay người nhận Sau đó là thời kì phát triển rực rỡ của công nghệhoá học, trong thế chiến thứ hai người ta sử dụng mực vô hình để ẩn dấu thông điệp bímật Loại mực vô hình này được tạo lên từ những chất liệu tự nhiên như là nước hoaquả, sữa, giấm, thậm chí là nước tiểu, khi có tác động của nhiệt độ thì các dòng chữ sẽhiện ra rất rõ ràng Cùng với sự phát triển của khoa học, con người đã tạo ra những loạimực vô hình có khả năng che giấu thông tin cao hơn.Chẳng hạn như muốn biết đượcthông điệp bị ẩn giấu thì phải kết hợp các hoá chất khác nhau để có thể hiển thị rõthông điệp bí mật được che giấu bên trong [6]
Giấu thông tin trong ngôn ngữ, hành văn cũng được sử dụng từ lâu, với việc lựachọn theo một quy luật xác định như ghép các từ đầu của mỗi câu hay nhặt các từ, các
Trang 11chữ cái theo một quy luật nào đó Một hình thức cũng được người Trung Hoa sử dụngrất nhiều là sử dụng một tờ giấy mẫu có đục các lỗ làm một “mặt nạ” viết trước các nộidung cần giấu tại các vị trí đó, tiếp theo các nội dung “vô hại” khác lên sau, cách làmnày tận dụng đặc điểm về chữ tượng hình và các từ đồng âm khác nghĩa của chữ Hán.Ngày nay, cùng với sự phát triển của công nghệ máy tính và Internet, thì an ninhthông tin được coi là một trong những yếu tố quan trọng nhất của Công nghệ thông tin
và truyền thông Hơn thế, các cuộc tấn công vào trang mạng hoặc truy cập trái phépvào những dữ liệu bí mật đã vượt quá giới hạn Vì vậy, chúng ta cần phải thực hiện cácbiện pháp nhằm bảo vệ các thông tin bí mật đó Trong đó có hai kỹ thuật có mối liên hệmật thiết với ẩn mã là thuỷ vân số và vân tay[1] Hai kỹ thuật này chủ yếu dùng để bảo
vệ những tài sản về sở hữu trí tuệ, do đó thuật toán của chúng cũng cần đáp ứng nhữngyêu cầu khác so với ẩn mã
Đối với ẩn mã, thông tin được giấu đi là rất quan trọng và phải được bảo mật.Đốivới các thuật toán ẩn mã, người ta không chú trọng đến việc bảo vệ thông tin mật trước
sự tấn công của các đối thủ mà thay vào đó quan tâm đến tính ẩn và tính an toàn đốivới dữ liệu cần giấu
1.2 Khái niệm ẩn mã
Theo Wikipedia: ẩn mã là nghệ thuật và khoa học cho phép giấu đi sự tồn tại củathông tin [8] Với mật mã, kẻ thù có thể phát hiện, chặn bắt và thay đổi thông điệpngay cả khi không thể giải mã, nhưng mục tiêu của ẩn mã lại là giấu thông điệp vàomột thông điệp vô hại khác để kẻ thù không thể phát hiện được rằng có một thông điệpđược giấu bên trong nó
Chính vì vậy, ẩn mã không làm thay đổi cấu trúc thông tin mà chỉ ẩn giấu sự tồntại của thông tin vào một phương tiện khác Các hệ thống ẩn mã ngày nay thường sửdụng các đối tượng đa phương tiện để ẩn giấu như là: hình ảnh, âm thanh, văn bản,video,… vì chúng thường được gửi và nhận hàng ngày qua thư điện tử hoặc chia sẻ
Trang 12trên mạng Internet một cách công khai, mà kẻ thù thì không có lý do để nghi ngờ khibắt được một thông tin vô hại trên kênh truyền không an toàn như vậy.
1.3 Một số thuật ngữ cơ bản
Khi nhắc tới một hệ thống ẩn mã, người ta thường sử dụng một số thuật ngữ sau:
- Vật phủ: là tệp dữ liệu đa phương tiện ban đầu hay còn gọi là vật gốc Tệp dữ
liệu đa phương tiện này có thể là hình ảnh, văn bản, âm thanh, video,…
- Thông điệp bí mật: Là thông tin cần trao đổi, được giấu vào trong vật phủ.
- Vật mang tin: Là vật phủ sau khi đã được nhúng thông điệp, hay còn gọi là vật
chứa thông điệp được giấu (nhúng)
- Khoá ẩn mã: Là khoá được sử dụng để nhúng hoặc tách thông điệp ra khỏi vật
mang tin (khoá có thể được sử dụng hoặc không tuỳ thuộc vào từng giải phápcủa hệ thống ẩn mã)
1.4 Mô hình ẩn mã
Khi thực hiện kỹ thuật ẩn mã ta cần thực hiện các bước như sau:
- Bước 1: Người gửi phải chọn vật phủ, khoá ẩn mã cũng như thuật toán nhúngthích hợp
- Bước 2: Nhúng thông điệp vào trong vật phủ bằng thuật toán nhúng, khi đó tađược một vật mang tin
- Bước 3: Người gửi sẽ gửi vật mang tin qua đường truyền không an toàn
- Bước 4: Người nhận sẽ nhận thông điệp, sau đó dùng thuật toán tách và khoá ẩn
mã để tách lấy thông điệp ẩn
Mô hình Ẩn mã được trình bày trong Hình 1.1
Trang 13Hình 1.1 Mô hình ẩn mã
1.5 Một số kỹ thuật ẩn mã cơ bản
Trong kỹ thuật ẩn mã có nhiều cách phân loại kỹ thuật ẩn mã khác nhau Nhưngkhi xét theo môi trường nhúng tin thì ẩn mã được chia thành 5 kỹ thuật ẩn mã cơ bảnlà: ẩn mã trong ảnh, ẩn mã trong âm thanh, ẩn mã trong video, ẩn mã trong tệp văn bản
và cuối cùng là ẩn mã trong giao thức
1.5.1 Ẩn mã trong ảnh
Trong thời kỳ công nghệ hiện đại như hiện nay thì ẩn mã trong ảnh là một kỹthuật phổ biến nhất trong tất cả những kỹ thuật ẩn mã đã biết Bởi kỹ thuật này có thểlợi dụng những hạn chế của thị giác con người nhằm đánh lừa tư duy con người Tất cảcác văn bản, đoạn mã hay những hình ảnh mà có thể được mã hoá thành chuỗi bit nhịphân thì đều có thể ẩn giấu vào trong ảnh
Khi thông điệp bí mật được giấu vào trong ảnh thì chất lượng của ảnh ít nhiều có
Trang 14mắt thường.Hơn nữa ẩn mã trong ảnh sẽ ít đem tới sự chú ý của kẻ tấn công.Vì vậy màmôi trường dữ liệu ảnh trở thành môi trường có tính ứng dụng cao trong kỹ thuật ẩn mã
và trở thành môi trường nhúng phổ biến khi cần truyền tin bí mật
1.5.2 Ẩn mã trong âm thanh
Ẩn mã trong tệp âm thanh là kỹ thuật khó nhất trong các kỹ thuật ẩn mã Bởi ẩn
mã trong âm thanh phụ thuộc vào hệ thống thính giác của con người (HAS – HumanAuditory System) Mà HAS có thể nghe được các tín hiệu ở các dải tần rất rộng và dảicường độ lớn nên sẽ gây khó khăn trong việc thêm vào hoặc loại bỏ các dữ liệu ra khỏicấu trúc dữ liệu ban đầu Chính vì thế, khi thực hiện ẩn mã trong âm thanh đòi hỏi yêucầu rất cao về tính đồng bộ và tính an toàn của thông điệp được giấu đi May mắn hơn,HAS lại có một điểm yếu là khó phân biệt được sự khác biệt của các dải tần và côngsuất của dải âm thanh, có nghĩa là các âm thanh to, cao tần có thể che giấu được các
âm thanh nhỏ ở tần số thấp hơn một cách dễ dàng
Nhưng kỹ thuật ẩn mã trong âm thanh này lại gặp vấn đề rắc rối khi truyền đi trênkênh truyền Bởi nếu kênh truyền hay băng thông bị chậm cũng sẽ ảnh hưởng đến chấtlượng của thông điệp sau khi bị giấu đi, dẫn tới thông điệp khi đến được với ngườinhận sẽ bị sai lệch so với thông điệp ban đầu
1.5.3 Ẩn mã trong video
Cũng giống như ẩn mã trong ảnh hay trong âm thanh, ẩn mã trong video cũngđược quan tâm và phát triển mạnh mẽ cho nhiều ứng dụng như: Điều khiển truy cậpthông tin, xác thực thông tin và bảo vệ quyền tác giả Ẩn mã trong video là kỹ thuậtgiấu một loại tệp và thông tin bất kỳ nào đó vào một đoạn video Về mặt kỹ thuật cơbản thì video là một tập hợp những hình ảnh được xắp sếp liên tục theo thời gian Vìvậy có thể lấy từng khung hình, sau đó ẩn giấu những thông điệp bí mật vào từngkhung hình đó, sau đó lưu thành một tệp video mới.Hơn nữa, trong video không chỉ cócác hình ảnh, mà còn có cả âm thanh.Vì vậy ta hoàn toàn có thể kết hợp ẩn mã trong
Trang 15ảnh và ẩn mã trong âm thanh vào kỹ thuật ẩn mã trong video này Điều này chứng tỏrằng: Một tệp video có thể ẩn giấu được một lượng rất lớn thông điệp bí mật.
1.5.4 Ẩn mã trong tệp văn bản
Ẩn mã trong văn bản là kỹ thuật đòi hỏi người gửi có trình độ cũng như hiểu biếtrất rõ về ẩn mã.Bởi trong tệp văn bản có quá ít dữ liệu dư thừa để có thể thay thế.Hơnnữa văn bản được gọi là Vật phủ cũng dễ dàng bị sửa đổi bởi những bên không liênquan bằng cách sửa một vài ký tự hoặc thay đổi định dạng mới cho tệp
1.5.5 Ẩn mã trong giao thức
Trong các giao thức như TCP, UDP, ICMP, IP, đều có thể trở thành vật phủ để
ẩn mã Trong mô hình OSI có những kênh ngầm (covert channel), người dùng có thểmạo danh thông tin định danh trong header của TCP/IP để giấu đi định danh thật củamột hay nhiều tổ chức
1.6 Một số ứng dụng của ẩn mã trong thực tế
Với sự hoàn hảo của các tiện ích đa phương tiện số và những tiến bộ của côngnghệ, ẩn mã ngày càng phát triển và được ứng dụng khắp nơi.Trên thực tế ẩn mã có thểđược ứng dụng trong rất nhiều trường hợp, ví dụ như:
ngoài mong muốn Ngược lại, việc giấu tin trong một vật phủ nào đó rồi gửi đitrên kênh truyền lại ít gây sự chú ý hơn Ta có thể sử dụng ẩn mã để gửi đi một
bí mật thương mại, một bản vẽ hoặc các thông tin nhạy cảm
nhúng vào ảnh, khi đó việc sao chép ảnh sẽ sao chép cả các dữ liệu trong đó.Tuy nhiên chỉ chủ sở hữu của bức ảnh này mới có thể tách ra và xem các thôngtin này vì họ có khóa mật Ngoài ra, nhờ việc ẩn mã, họ có thể gán từ khóa vào
Trang 16cơ sở dữ liệu ảnh để từ đó, việc tìm kiếm bức ảnh sẽ nhanh chóng hơn Đối vớivideo, người ta có thể gán thời điểm diễn ra sự kiện vào một khung ảnh để cóthể đồng bộ hình ảnh với âm thanh Đặc biệt, ta cũng có thể gán số lần ảnh đượcxem để tính tiền thanh toán theo số lần xem.
phương tiện, sau đó chính thông tin này được sử dụng để nhận biết xem dữ liệutrên phương tiện đó có bị chỉnh sửa gì không
Trang 17CHƯƠNG 2 TỔNG QUAN VỀ ẨN MÃ TRONG ẢNH 2.1 Các định dạng ảnh thường dùng để ẩn mã
Cấu trúc ảnh bao gồm 3 phần chính là: Header – chứa thông tin tệp ảnh; Dữ liệuảnh – số liệu ảnh được mã hoá bởi kiểu mã hoá chỉ ra trong phần Header và Bảng màu.Tuy nhiên mỗi định dạng ảnh lại có những đặc trưng khác nhau, trong đó có một sốđịnh dạng được sử dụng phổ biến như: Định dạng ảnh JPEG; Định dạng ảnh TIFF;Định dạng ảnh PNG; Định dạng ảnh GIF và Định dạng ảnh BMP
2.1.1 Định dạng ảnh JPEG
JPEG (Joint Photographic Experts Group) – là một trong những phương pháp nénảnh hiệu quả, có tỷ lệ nén ảnh tới vài chục lần [11] Chính nhờ lý do này mà định dạngảnh JPEG trở thành định dạng phổ biến nhất để lưu trữ ảnh trên Web và được hỗ trợbởi tất cả các trình duyệt Web
Tuy nhiên ảnh sau khi được giải nén sẽ khác với ảnh ban đầu Chất lượng của ảnh
sẽ bị suy giảm sau khi giải nén.Cũng vì vậy nó không được các nhiếp ảnh gia sử dụng.Trong quá trình nén dữ liệu của file JPEG, dữ liệu ảnh trên các pixel bị thay đổi, cácvùng ảnh quá nhỏ không thể nén được sẽ bị xoá vĩnh viễn Điều này gây ảnh hưởng tớimàu sắc của bức ảnh Hơn nữa chất lượng ảnh dẽ giảm dần trong quá trình sử dụngkhiến JPEG được gọi là định dạng file “làm mất dữ liệu”
Ưu điểm:
- Lưu trữ ảnh 24-bit màu (lên tới 16 triệu màu)
- Màu sắc đa dạng, phù hợp với các ảnh cần chú trọng tới chi tiết màu
Trang 18- Sau khi nén, màu của ảnh nhìn không được thật
Cấu trúc của định dạng ảnh TIFF bao gồm 3 phần:
- Phần Header IFH (Image File Header) có trong tất cả các tệp TIFF, bao gồm 8byte
+ 1 word: Chỉ ra kiểu tạo tệp trên máy tính PC hay Macintosh Hai loại nàykhác nhau rất lớn ở thứ tự các byte lưu trữ trong các số dài 2 hay 4 byte Nếu trườngnày có giá trị là 4D4Dh thì đó là ảnh cho máy Macintosh, còn nếu là 4949h thì là củamáy PC
+ 1 word: Là số phiên bản, luôn có giá trị là 42 Có thể coi đó là đặc trưng củafile TIFF vì nó không thay đổi kể cả khi được nén
+ 2 word: Là giá trị Offset theo byte tính từ đầu file tới cấu trúc IFD
- Phần thứ hai IFD (Image File Derictory): Nó không ở ngay sau IFH mà vị trí của
nó được xác định bởi trường Offset trong đầu tệp
Một IFD bao gồm:
+ 2 byte: chứa các DE (Derictory Entry)
+ 12 byte: Là các DE xếp liên tiếp Mỗi DE chiếm 12 byte
+ 4 byte: Chứa Offset trỏ tới IFD tiếp theo
- Cấu trúc phần dữ liệu thứ 3: Các DE có độ dài cố định 12 byte và gồm 4 phần:+ 2 byte: Chỉ ra dấu hiệu mà ảnh đã được xây dựng
Trang 19+ 2 byte: Kiểu dữ liệu của tham số ảnh Có 5 kiểu tham số cơ bản:
+ 4 byte: trường độ dài (bộ đếm) chứa số lượng chỉ mục của kiểu dữ liệu đã chỉ
ra Nó không phải là tổng số byte cần thiết để lưu trữ.Để có số liệu này ta cần nhân sốchỉ mục với kiểu dữ liệu đã dùng
+ 4 byte: Đó là Offset tới điểm bắt đầu dữ liệu thực liên quan tới dấu hiệu, tức
là dữ liệu liên quan với DE không phải lưu trữ vật lý cùng với nó nằm ở một vị trí nào
đó trong file Dữ liệu chứa trong tệp thường được tổ chức thành các nhóm dòng (cột)quét của dữ liệu ảnh
Trang 20tham chiếu Libpng, một thư viện nền độc lập bao gồm các hàm của C để quản lý cáchình ảnh PNG [13]
Một tập tin PNG bao gồm 8 – byte ký hiệu (89 50 4E 47 0D 0A 1A) được viếttrong hệ thống có cơ số 16, chứa các chữ “PNG” và 2 dấu xuống dòng, ở giữa là xếptheo số lượng của các thành phần, mỗi thành phần đều chứa thông tin về hình ảnh Cấutrúc dựa trên các thành phần được thiết kế cho phép định dạng PNG có thể tương thíchvới các phiên bản cũ khi sử dụng các “thành phần” trong tập tin
PNG có cấu trúc như một chuỗi các thành phần, mỗi thành phần chứa kích thước,kiểu, dữ liệu và mã sửa lỗi CRC ngay trong nó
Chuỗi được gán tên bằng 4 chữ cái phân biệt chữ hoa, chữ thường.Sự phân biệtnày giúp bộ giải mã phát hiện bản chất của chuỗi khi nó không nhận dạng được
Với chữ cái đầu, viết hoa thể hiện chuỗi này là cần thiết.Chuỗi này chứa thông tincần thiết để đọc được tệp và nếu bộ giải mã không nhận dạng được chuỗi này thì việcđọc tệp sẽ được huỷ bỏ
Về cơ bản thì định dạng PNG đem lại cho ta những ưu thế vượt trội hơn so vớicác định dạng phổ thông khác hiện nay như JPG, GIF, BMP… Những ưu thế được thểhiện rõ sức mạnh hơn khi được sử dụng trong môi trường đồ hoạ Web
Trang 21- Chỉ được hỗ trợ bởi một số trình duyệt chứ không phải tất cả
2.1.4 Định dạng ảnh GIF
GIF (Graphics Interchange Format) – là một định dạng tập tin hình ảnh bitmapcho 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 256màu sắc cho mỗi khung hình.Định dạng này thường dùng cho sơ đồ, hình vẽ, nút bấm
và các hình màu.GIF là định dạng nén dữ liệu đặc biệt hữu ích cho việc truyền hìnhảnh qua đường truyền lưu lượng nhỏ [14] Đây là một giải pháp tốt cho hình ảnh trênmạng, cho các hoạt hình nhỏ và ngắn.Định dạng được ra đời vào năm 1987 và nhanhchóng được ứng dụng rộng rãi trên World Wide Web cho đến nay
GIF sử dụng thuật toán nén Loss less (không bị mất dữ liệu), điều đó cho phépchúng tạo ra kích thước nhỏ mà không bị mất hoặc mờ bất kỳ chi tiết nào của ảnh
Có hai phiên bản của định dạng GIF, cả hai đều được phân phối rộng rãi.Phiênbản đầu tiên là GIF87a, có rất nhiều chức năng được tạo dưới định dạng này Phiên bảnhiện tại là GIF89a, có bổ sung thêm một số chức năng, trong đó chức năng lưu trữ các
ký tự và dữ liệu ảnh trong cùng một tệp Hai phiên bản này có thể được phân biệt dựavào 6 byte đầu tiên của tập tin
và một khối dữ liệu ảnh.Trường cuối cùng của mỗi tệp GIF là một ký tự kết thúc đểbiểu thị sự kết thúc chuỗi dữ liệu GIF
Trang 22Hình 2.1 Cấu trúc ảnh GIF87a
- Header gồm 6 byte:
+ 3 byte: ký hiệu của ảnh, luôn luôn là “GIF”
+ 3 byte: Phiên bản định dạng GIF (87a hay 89a)
- Bộ mô tả hiển thị:
+ 1 word: Chiều rộng màn hình hiển thị tính theo Pixels+ 1 word: Chiều cao màn hình hiển thị tính theo Pixels+ 1 byte: Thông tin về màn hình và bản đồ màu
+ 1 word: Chiều cao của ảnh tính theo Pixels
Trang 23+ 1 byte: Thông tin dữ liệu bảng màu và ảnh
- Dữ liệu ảnh: Là chuỗi các giá trị có thứ tự của các điểm ảnh màu tạo nên ảnh.Các điểm ảnh được xếp liên tục trên một dòng ảnh, từ trái qua phải.Các dòngảnh được viết từ trên xuống dưới
- Ký tự kết thúc: Là một byte được coi là ký tự cuối cùng của tệp Giá trị của bytenày luôn là 3Bh và biểu thị kết thúc của chuỗi dữ liệu GIF.Mọi tệp GIF đều phải
- Kích thước ảnh sau khi nén rất nhỏ (do chỉ giới hạn còn 256 màu trong ảnh)
- Phù hợp với các ảnh đồ thị, ảnh hoạt hình (sô lượng màu sắc không quá nhiều)
Nhược điểm:
- Chỉ hỗ trợ 256 màu
- Là định dạng ảnh cổ nhất (tồn tại từ năm 1989) và tới nay vẫn chưa ra đời
phiên bản mới hơn
2.1.5 Định dạng ảnh BITMAP
BITMAP (BMP) là một định dạng tập tin hình ảnh khá phổ biến.Các tập tin đồhoạ lưu dưới dạng BMP thường có đuôi là BMP hoặc DIB.Các nét vẽ trong BITMAP
Trang 24được thể hiện là các điểm ảnh với quy ước màu đen, trắng tương ứng với giá trị 0,1[15]
Các thuộc tính tiêu biểu của một tập tin ảnh BMP là:
- Số bit trên mỗi điểm ảnh thường được ký hiệu bởi n Một ảnh BMP n bit có 2nmàu Giá trị n càng lớn thì ảnh càng có nhiều màu và càng rõ nét hơn.Giá trị tiêu biểucủa n là 1 (ảnh đen trắng), 4 (ảnh 16 màu), 8 (ảnh 256 màu), 16 (ảnh 65536 màu) và 24(ảnh 16 triệu màu) Ảnh BMP 24 bit có chất lượng hình ảnh trung thực nhất
- Chiều cao của ảnh (height) tính bằng Pixels
- Chiều rộng của ảnh (width) tính bằng Pixels
Đặc điểm nổi bật nhất của định dạng BMP là tập tin ảnh thường không được nénbằng bất kỳ thuật toán nào.Khi lưu ảnh, các điểm anh được ghi trực tiếp vào tập tinmột điểm ảnh sẽ được mô tả bởi một hay nhiều byte tuỳ thuộc vào giá 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ớicác ảnh được nén
* Cấu trúc của ảnh BITMAP (BMP)
Gồm 4 phần chính là:
a) Header tệp BITMAP (14 bytes): Lưu trữ thông tin tổng hợp về tệp ảnh BMP.Dùng để nhận dạng tập tin.Các ứng dụng đọc khối bytes này để kiểm tra xem đó cóđúng là tập tin BMP hay không và có bị hư hỏng hay không
Bảng 2.1 Đưa ra địa chỉ Offset tương ứng với các khối byte của header trong tệpbitmap và mục đích sử dụng của các khối byte đó
Bảng 2.1 Chi tiết các khối byte của header tệp bitmap
Trang 250006h 2 bytes Dành riêng; Giá trị thực tế phụ thuộc vào
Bảng 2.2 mô tả chi tiết các khối byte trong bitmap và cho biết các thông tin chitiết về hình ảnh sẽ được sử dụng để hiển thị hình ảnh trên màn hình
Bảng 2.2 Chi tiết khối byte thông tin tệp bitmap
0: Không nén1: Nén 8 bits/pixel2: Nén 4 bits/pixel
Kích thước hình ảnh Đây là kíchthước của dữ liệu bitmap và khôngnên nhầm lẫn với kích thước tập tin
Trang 26hình ảnh.
ảnh
c) Bảng màu (4*x bytes// với x là số màu của ảnh): Lưu trữ định nghĩa các màuđược sử dụng cho ảnh bitmap Gồm nhiều bộ có kích thước bằng 4 byte xếp liền nhautheo cấu trúc Blue – Green – Red và một byte dành riêng cho cường độ
Kích thước của vùng bảng màu = 4*số màu của ảnh
Bảng màu xuất hiện trong tập tin BMP sau tiêu đề BMP và tiêu đề DIB Vì vậy,địa chỉ offset là kích cỡ tiêu đề BMP cộng với kích cỡ tiêu đề DIB
Do trong bộ nhớ máy tính thì lưu theo thứ tự Red – Green – Blue nên khi đọc màucủa ảnh BMP thì phải chuyển đổi cho phù hợp
Số màu của ảnh biết được dựa trên số bit cho 1 pixel cụ thể là:
- 24 bits/pixel: là ảnh 24 bit màu
Ví dụ: Bảng màu loại 1 bit theo chuẩn windows có 8 bytes: với 4 bytes đầu làmàu thứ 0, 4 bytes sau là màu thứ 1 Do đó chỉ có 0 và 1 nên mô tả mỗi điểm ảnh chỉcần dùng 1 bit Tương tự trong bảng màu của tệp 4 bits có 64 bytes, lần lượt từ màu số
0 đến số 15, bảng màu của tệp 8 bits có 1024 bytes (từ màu số 0 đến màu số 255)
Trang 27Chính vì các màu được liệt kê như vật nên các màu trong tệp 1 bit, 4 bits, 8 bitsđược gọi là màu chỉ số (Indexed), còn các màu trong tệp 24 bits được gọi là màu chínhxác (true).
d) Dữ liệu bitmap: Lưu trữ từng điểm ảnh của hình ảnh thực tế Chứa các giá trịmàu của các điểm ảnh trong BMP Dữ liệu ảnh được lưu từng điểm cho đến hết hàngngang (từ trái sang phải), và từng hàng ngang cho ddeeens hết ảnh (từ dưới lên trên).Mỗi byte trong vùng BitmapData biểu diễn một hoặc nhiều điểm ảnh tuỳ theo số bitscho một pixel
2.2 Một số kỹ thuật ẩn mã trong ảnh trên miền không gian
2.2.1 Kỹ thuật giấu tin thay thế các bit có trọng số thấp nhất
Khái niệm bit có trọng số thấp nhất: Bit có trọng số thấp là bit có ảnh hưởng ít
nhất tới việc quyết định màu sắc của mỗi điểm ảnh, vì vậy khi thay đổi bit ít đặc trưng nhất của một điểm ảnh thì màu sắc của điểm ảnh mới sẽ không thay đổi nhiều so với điểm ảnh gốc ban đầu Bit có trọng số thấp của một điểm ảnh cũng tương tự như chữ
số hàng đơn vị của một số tự nhiên, khi ta thay đổi giá trị của chữ số này thì chênh lệchgiữa số cũ và số mới sẽ ít hơn khi ta thay đổi giá trị của chữ số hàng chục hoặc hàng trăm Việc xác định bít có trọng số thấp của mỗi điểm ảnh trong một bức ảnh phụ thuộc vào định dạng của ảnh và số bit màu dành cho mỗi điểm của ảnh đó
Trang 28đổi giá trị của LSB thì màu sắc của điểm ảnh mới vấn tương đối gần với màu sắc của điểm ảnh gốc ban đầu.
Việc xác định LSB của mỗi điểm ảnh trong 1 bức ảnh phụ thuộc vào định dạng của ảnh và số bit màu dành cho mỗi điểm ảnh của ảnh đó Giả sử như trong ảnh đa cấp xám thì bit cuối cùng hay bit bên phải nhất trong 8 bit biểu diễn điểm ảnh được coi là LSB Đối với ảnh màu RGB thì mỗi điểm ảnh bao gồm 3 giá trị màu đỏ, xanh lục, và xanh lam,mỗi giá trị này được biểu diễn bởi 8 bit và thì bit ở cuối cùng hay bit ở bên phải nhất cũng được coi là LSB
Nếu ta thay đổi giá trị bit cuối cùng của giá trị màu đỏ trong điểm ảnh trên thì nó
sẽ giảm đi 1 đơn vị từ 155 xuống còn 154 vì bit cuối cùng bị thay đổi từ 1 thành 0
Các bit có trọng số thấp nhất là do chúng ta lựa chọn vì vậy không chỉ một mà ta
có thể chọn nhiều hơn một LSB, tuy nhiên việc sử dụng nhiều hơn một LSB sẽ có thể khiến ta gặp phải những rủi ro vì số lượng LSB bị thay đổi tăng lên đồng nghĩa với việc chất lượng của ảnh sẽ thay đổi nhiều hơn
Kỹ thuật giấu tin trên miền LSB gồm 2 cách nhúng: tuần tự và ngẫu nhiên Thuật toán nhúng tuần tự bắt đầu ở điểm ảnh đầu tiên của ảnh phủ C 0,0 và nhúng các bit
của thông điệp theo thứ tự cho đến khi không còn gì để nhúng Tuy nhiên với thuật toán nhúng ngẫu nhiên, các vị trí chứa các bit dữ liệu thông điệp sẽ được phân tán thay đổi, lý do chính của phương pháp nhúng ngẫu nhiên này là để tăng độ phức tạp đối với
kẻ tấn công khi họ muốn xác định xem ảnh có được nhúng thông tin mật hay không
Trang 292.2.2 Kỹ thuật giấu tin trong khối bit
Kỹ thuật giấu tin trong khối bit là kỹ thuật khá đơn giản, thường được ứng dụngcho các loại ảnh đen trắng Ý tưởng của phương pháp này là chia ảnh thành các khốirồi giấu thông tin vào các khối này
2.2.1.1 Kỹ thuật giấu tin Wu – Lee
Kỹ thuật này được đưa ra bởi M.Y.WU và J.H.Lee, được thực hiện như sau: Cómột ảnh gốc nhị phân F, một khóa bí mật K (Secret Key) và một số các bit dữ liệu cầngiấu Khóa K là một ma trận nhị phân có kích thước (m ×n) Để đơn giản, coi kích cỡcủa ảnh F là bội của (m ×n) Ý tưởng của thuật toán là làm thế nào để nhúng được vàonhiều khối, mỗi khối chỉ một bit thông tin
Nếu một khốiF i thỏa mãn điều kiện thì một bit thông tin sẽ được giấu vào khối đó bằngcách thay đổi phẩn tử của khối F i thành F i’ sao cho luôn thỏa mãn điều kiện:
Trang 302.2.2.2 Kỹ thuật giấu tin Chen – Pan – Tseng (CPT)
Đây là thuật toán giấu thông tin trong ảnh đen trắng được Yu Yuan Chen, HsiangKuang Pan và Yu Chee Tseng, khoa Công nghệ thông tin và Khoa học máy tính thuộctrường Đại học Quốc gia Đài Loan phát triển
Trong thuật toán này, chúng ta sẽ nhắc đến một số khái niệm như sau:
Khóa bí mật K (Secret Key): Khóa K là một ma trận nhị phân có cùng kíchthước (m ×n) với kích thước của khối ảnh Khóa được dùng một cách bí mật giữangười gửi và người nhận
Ma trận trọng số cấp r (Weight Matrix): Có kích thước bằng kích thước của mộtkhối ảnh (m ×n) và thỏa mãn các điều kiện sau:
W – là một ma trận số nguyên có các phần tử nằm trong khoảng giá trị (0 2r−1)
với r cho trước thỏa mãn điều kiện 2r ≤ m× n
Mỗi phần tử có giá trị từ (1 .2r−1) phải xuất hiện ít nhất 1 lần trong W Với mỗi
m , n ,r thỏa mãn 2r ≤ m× n sẽ có:
C mn2r−1 x (2r-1)! x (2 ¿¿r −1) mn−(2¿¿r−1)¿
¿ khả năng chọn W
Ví dụ như với m=n=4,r =2 thì có 5.356.925.280 khả năng chọn W Con số này
đủ lớn để làm giảm nguy cơ thông tin bị giải mã bởi những kẻ phá hoại
Phép đảo bit: Đảo bit b tương đương với phép biến đổi thay b bởi 1−b, tức là nếuban đầu b nhận các giá trị 0 thì sau khi đảo nó sẽ nhận giá trị 1 và ngược lại
Các phép toán trên ma trận dùng trong thuật toán: Ngoài các phép toán thôngthường như AND, XOR, SUM thì trong thuật toán này còn sử dụng thêm phéptoán nhân ma trận (ký hiệu ⊗)
Phân tích thuật toán:
Trang 31 Dữ liệu nhập:
F - là một ma trận ảnh gốc được dùng để nhúng thông tin F được chia thành cáckhối nhỏ F i, mỗi ma trận điểm ảnh F i có kích thước là m× n, để đơn giản, giả sử rằng F
là bội của các F i
K - là một ma trận khóa ngẫu nhiên có kích thước (m ×n)
W - là một ma trận trọng số ngẫu nhiên, cùng kích thước của K
r - là số lượng bit có thể giấu trong mỗi một khối ảnh (m ×n)
B - là lượng thông tin cần giấu, B=b1b2… b z (mỗi b i có rbit)
d - là độ chênh lệch trọng số
Dữ liệu xuất: Các ma trận điểm ảnh F i’ được thay đổi từ F i Các F i’ cho ra ảnh
F ’ có thông tin cần giấu
Nhận xét:
Thuật toán giấu tin CPT có thể giấu 2 bit thông tin vào một khối ảnh nên nó đã cónhiều cải tiến so với những thuật toán khác chỉ giấu được 1 bit thông tin trong 1 khốiảnh Đây là thuật toán tương đối dễ cài đặt và độ an toàn của nó được nâng cao thôngqua việc sử dụng hai ma trận (khóa, trọng số) để giấu tin và giải mã tin
2.3 Một số kỹ thuật ẩn mã trong ảnh trên miền tần số
Kỹ thuật ẩn mã trên miền tần số tức là không giấu trực tiếp vào các điểm ảnh nhưtrong miền không gian mà lại giấu gián tiếp thông qua các kỹ thuật biến đổi Các biếnđổi này làm nhiệm vụ chuyển miền biến số độc lập sang miền khác làm cho tín hiệu và
hệ thống rời rạc sẽ được biểu diễn trong miền mới với các biến số mới Nếu cần thiết
có thể dùng các biến đổi ngược để đưa chúng về miền biến số độc lập Có nhiều phép
Trang 32biến đổi khác nhau nhưng được sử dụng phổ biến, trong đồ án này e xin tìm hiểu vềBiến đổi Fourier DFT, Biến đổi Cosin rời rạc DCT và Biến đổi sóng nhỏ SWT.
2.3.1 Kỹ thuật biến đổi Fourier rời rạc (DFT)
Các tín hiệu trong miền tần số được thể hiện bởi một vector F (u , v ) bao gồm haiphần: Phần thực (ký hiệu là ReF(u , v)); Phần ảo (ký hiệu là ImF(u , v)) Trong phần thựcchứa biên độ sóng cos, còn trong phần ảo chứa biên độ sóng sin Error: Referencesource not found
Công thức của hàm biến đổi fourier rời rạc (DFT) của miền tần số cho một hàm