TỔNG QUAN KỸ THUẬT GIẤU TIN TRONG ẢNH
Vấn đề giấu tin
Trong lĩnh vực bảo vệ thông tin, mật mã là phương pháp phổ biến nhất được áp dụng Thông tin ban đầu được mã hóa và sau đó giải mã bằng khóa của hệ mã Nhiều hệ mã phức tạp như DES, RSA, và NAPSACK đã được sử dụng, mang lại hiệu quả cao và được ưa chuộng rộng rãi.
Phương pháp giấu tin (Data Hiding) đang được nghiên cứu và áp dụng mạnh mẽ trên toàn thế giới Kỹ thuật này cho phép nhúng thông tin số vào trong một đối tượng dữ liệu số khác mà không làm ảnh hưởng đến chất lượng của dữ liệu gốc Một yêu cầu quan trọng của giấu tin là đảm bảo tính ẩn của thông tin được giấu.
Sự khác biệt chính giữa mã hóa thông tin và giấu thông tin là mã hóa làm cho thông tin rõ ràng rằng nó đã được mã hóa, trong khi giấu thông tin khiến cho việc phát hiện thông tin ẩn bên trong trở nên khó khăn hơn.
Mô hình kỹ thuật giấu thông tin cơ bản
Giấu thông tin vào phương tiện chứa và tách lấy thông tin là hai quá trình trái ngược nhau, có thể được mô tả qua sơ đồ khối của hệ thống như hình 1.1 và 1.2.
Thông tin cần được giấu tùy thuộc vào mục đích sử dụng của người dùng, có thể là thông điệp bí mật hoặc các logo và hình ảnh có bản quyền.
- Phương tiện chứa: các file ảnh, text, audio… là môi trường để giấu tin
- Bộ giấu thông tin: là những chương trình thực hiện việc giấu tin
- Đầu ra: là các phương tiện chứa đã có tin giấu trong đó
Thông tin cần giấu khóa
Phương tiện chứa đã được giấu tin
Hình 1.1 Lược đồ quá trình giấu tin
Phương tiện chứa(audio, ảnh,video )
Hình 1.2 mô tả quy trình giải mã thông tin đã giấu Sau khi tiếp nhận phương tiện chứa thông tin, quá trình giải mã được thực hiện bằng cách sử dụng bộ giải mã tương ứng với bộ giấu thông tin và khóa của quá trình giấu Kết quả thu được bao gồm phương tiện chứa gốc và thông tin đã được giấu Tiếp theo, thông tin đã giấu sẽ được xử lý và kiểm định để so sánh với thông tin ban đầu.
Phân loại giấu tin
Kỹ thuật giấu thông tin số đang trong giai đoạn phát triển không ổn định, với nhiều phương pháp mới được đề xuất từ nhiều khía cạnh khác nhau Do đó, việc có một định nghĩa chính xác và đánh giá phân loại rõ ràng là điều chưa thể thực hiện Sơ đồ phân loại do Fabien A P Petitcolas đề xuất vào năm 1999 minh họa cho sự đa dạng này.
Phương tiện chứa(audio, ảnh,video )
Bộ nhúng thông tin khóa
Phương tiện chứa đã được giấu tin
Hình 1.2 Lược đồ quá trình giải mã
Kiểm định Thông tin cần giấu
Hình 1.3 Phân loại các kỹ thuật giấu tin
Sơ đồ phân loại này cung cấp cái nhìn tổng quát về ứng dụng và kỹ thuật giấu thông tin, dựa trên thống kê khoảng 100 công trình đã công bố trên một số tạp chí và tóm tắt nội dung của khoảng 200 công trình trên Internet Lĩnh vực giấu tin được chia thành hai hướng chính: watermarking và steganography.
1.3.1 Theo cách thức tác động lên phương tiện
Phương pháp chèn dữ liệu là kỹ thuật tìm kiếm các vị trí dễ bị bỏ qua trong file để chèn thông tin cần giấu mà không làm ảnh hưởng đến cách thể hiện của file dữ liệu, chẳng hạn như việc giấu sau các ký tự EOF.
Information hiding Giấu thông tin
Fragile Watermarking Thuỷ vân dễ vỡ
Robust Watermarking Thuỷ vân bền vững
1.3.2 Theo các mục đích sử dụng
Giấu thông tin bí mật là một ứng dụng phổ biến nhất hiện nay, với mục tiêu chính là bảo vệ thông tin cá nhân và ngăn chặn việc rò rỉ dữ liệu Người dùng ngày càng quan tâm đến việc bảo mật thông tin nhạy cảm, nhằm đảm bảo an toàn cho các dữ liệu quan trọng của mình.
- Độ an toàn của giấu tin - khả năng không bị phát hiện của giấu tin
- Lượng thông tin tối đa có thể giấu trong một phương tiện chứa cụ thể mà vẫn có thể đảm bảo an toàn
- Độ bí mật của thông tin trong trường hợp giấu tin bị phát hiện
Việc giấu thông tin bí mật trong các phương tiện chứa mà không chú ý đến các yêu cầu bền vững là phổ biến, vì người dùng có thể gửi và nhận nhiều lần thông tin từ một phương tiện đã được mã hóa.
Giấu thông tin thuỷ vân có những yêu cầu riêng biệt nhằm bảo vệ bản quyền và xác thực, khác với việc giấu tin bí mật Đầu tiên, các dấu hiệu thuỷ vân cần phải đủ bền vững để chống lại các tấn công vô hình hoặc cố ý gỡ bỏ Hơn nữa, các dấu hiệu này phải gây ảnh hưởng tối thiểu đến cảm nhận của các phương tiện chứa, do đó, thông tin cần giấu nên được tối giản đến mức tối đa.
Tuỳ theo các mục đích khác nhau thuỷ vân cũng có các yêu cầu khác nhau.
Mục đích sử dụng
Bảo mật thông tin bằng giấu tin có hai khía cạnh chính: đầu tiên là bảo vệ dữ liệu được giấu (embedded data), ví dụ như việc giấu thông tin mật trong một đối tượng khác để người khác không thể phát hiện (steganography); thứ hai là bảo vệ chính đối tượng dùng để giấu dữ liệu.
1.4.1 Kỹ thuật giấu thông tin mật(steganography)
Để đảm bảo an toàn và bảo mật thông tin, các kỹ thuật giấu tin được áp dụng nhằm giấu kín nhiều thông tin nhất có thể Thông tin mật được ẩn giấu một cách khéo léo trong một đối tượng khác, giúp người ngoài không thể phát hiện ra.
1.4.2 Kỹ thuật giấu thông tin theo kiểu đánh giấu(watermarking)
Mục đích chính của việc bảo vệ bản quyền thông tin là đảm bảo tính bền vững cho các đối tượng liên quan Đây là ứng dụng cơ bản nhất của kỹ thuật thuỷ vân số, giúp bảo vệ nội dung hiệu quả.
Môi trường giấu tin
Giấu tin trong ảnh đang trở thành xu hướng quan trọng trong bảo mật thông tin Phương pháp này đóng vai trò thiết yếu trong nhiều ứng dụng như xác thực thông tin, phát hiện sự xuyên tạc và bảo vệ bản quyền tác giả Việc sử dụng kỹ thuật này giúp tăng cường an toàn cho dữ liệu nhạy cảm.
Giấu tin bí mật (Steganography)
Hình 1.4 Hai lĩnh vực chính của kỹ thuật giấu thông tin
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 biết được
Kỹ thuật giấu thông tin trong âm thanh dựa vào hệ thống thính giác (HAS) của con người, khác với kỹ thuật giấu thông tin trong ảnh dựa vào hệ thống thị giác (HSV) Do tai người khó phát hiện sự khác biệt giữa các tần số và công suất, âm thanh lớn và cao tần có thể dễ dàng che giấu âm thanh nhỏ và thấp tần.
Giấu tin trong audio gặp khó khăn do kênh truyền tin và băng thông chậm ảnh hưởng đến chất lượng thông tin Yêu cầu về tính đồng bộ và an toàn của thông tin rất cao, và các phương pháp thường khai thác điểm yếu trong hệ thống thính giác của con người.
Giấu thông tin trong video, tương tự như trong ảnh và audio, đang trở thành một lĩnh vực được chú trọng và phát triển mạnh mẽ Ứng dụng của công nghệ này rất đa dạng, bao gồm việc kiểm soát truy cập thông tin, nâng cao nhận thức thông tin và bảo vệ bản quyền tác giả.
Cox đã giới thiệu một phương pháp giấu tin trong video mang tên phương pháp phân bố đều, với ý tưởng chính là phân phối thông tin giấu một cách đồng đều theo tần số của dữ liệu gốc Nhiều nhà nghiên cứu đã áp dụng các hàm cosin và hệ số truyền sóng riêng để thực hiện việc này Các thuật toán ban đầu chủ yếu cho phép giấu ảnh trong video, nhưng gần đây, các kỹ thuật mới đã cho phép giấu cả âm thanh và hình ảnh.
1.5.4 Giấu tin trong văn bản text
Giấu thông tin trong video, tương tự như trong ảnh và audio, đang ngày càng được chú trọng và phát triển mạnh mẽ Ứng dụng của công nghệ này rất đa dạng, bao gồm điều khiển truy cập thông tin, nâng cao nhận thức về thông tin và bảo vệ bản quyền tác giả.
Phương pháp giấu tin trong video mà Cox đề xuất là phương pháp phân bố đều, với ý tưởng chính 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 đã áp dụng các hàm cosin và hệ số truyền sóng để thực hiện việc này Trong các thuật toán khởi nguồn, chủ yếu là kỹ thuật giấu ảnh vào video, nhưng gần đây, các kỹ thuật mới cho phép giấu cả âm thanh và hình ảnh vào video.
CẤU TRÚC MỘT SỐ ẢNH ĐẶC TRƯNG
Cấu trúc ảnh bitmap
Một tập tin BMP điển hình thông thường chứa những khối dữ liệu sau
Bảng 2.1 - Các khối dữ liệu trong một tập tin BMP
BMP File Header Lưu trữ thông tin tổng hợp về file BMP
Bitmap Infomation Lưu trữ thông tin chi tiết về ảnh bitmap
Color Palette Lưu trữ định nghĩa của màu được sử dụng cho bitmap Bitmap Data Lưu trữ từng pixel của hình ảnh thực tế
Phần đầu của tập tin BMP chứa khối byte được gọi là BMP File Header, có chức năng xác định danh tính của tập tin Ứng dụng sẽ đọc khối byte này để xác minh xem tập tin có phải là BMP hay không và kiểm tra tình trạng hư hỏng của nó.
Bảng 2.2 Chi tiết khối bytes tiêu đề tập tin BMP Offset Size Mục đích
Magic number sử dụng để định nghĩa tập tin BMP: 0x42 0x4D (mã hexa của kí tự B và M) Các mục dưới đây có thể được dùng:
IC - OS/2 Icon 0002h 4 bytes Kích thước của tập tin BMP theo byte
0006h 2 bytes Dành riêng, giá trị thực tế phụ thuộc vào ứng dụng tạo ra hình ảnh
0008h 2 bytes Dành riêng, giá trị thực tế phụ thuộc vào ứng dụng tạo ra hình ảnh
000Ah 4 bytes Offset, địa chỉ bắt đầu các byte dữ liệu ảnh bitmap
Khối bytes này cung cấp thông tin chi tiết về hình ảnh, giúp ứng dụng hiển thị hình ảnh trên màn hình Cấu trúc tiêu đề DIB được mô tả trong Bảng 2.3, với tất cả các giá trị được lưu trữ dưới dạng số nguyên không dấu, trừ khi có ghi chú cụ thể.
Bảng 2.3 Chi tiết khối bytes thông tin tập tin BMP Offset Size Mục đích
Eh 4 Kích thước của tiêu đề (40 bytes)
12h 4 Chiều rộng bitmap tính bằng pixel (signed interger)
16h 4 Chiều cao bitmap tính bằng pixel (signed interger)
1Ah 2 Số lượng các mặt phẳng màu sắc được sử dụng Phải được thiết lập bằng 1
1Ch 2 Số bit trên mỗi pixel, là độ sâu màu của hình ảnh giá trị điển hình là 1, 4, 8, 16, 24 và 32
1Eh 4 Phương pháp nén được sử dụng Xem bảng tiếp theo để có danh sách các giá trị có thể
22h 4 Kích thước hình ảnh Đây là kích thước của dữ liệu bitmap
(xem bên dưới), và không nên nhầm lẫn với kích thước tập tin
26h 4 Độ phân giải theo chiều ngang của hình ảnh (signed interger)
2Ah 4 Độ phân giải theo chiều dọc của hình ảnh (signed interger) 2Eh 4 Số lượng màu trong bảng màu
32h 4 Số lượng các màu sắc quan trọng được sử dụng, hoặc 0 khi màu sắc nào cũng đều là quan trọng, thường bị bỏ qua
Bảng màu trong tập tin BMP xuất hiện ngay sau tiêu đề BMP và tiêu đề DIB, do đó, offset được tính bằng tổng kích thước của tiêu đề BMP và tiêu đề DIB.
Có tất cả 2 24 màu RGB khác nhau, nhưng các loại Bitmap sau:
- 1bit (2 màu, hoặc chuẩn Windows là trắng-đen)
Trong hệ màu 8 bits (256 màu), không thể khai thác hết tất cả các sắc thái, vì vậy chỉ liệt kê các màu được sử dụng trong tệp Mỗi màu trong bảng màu được mô tả bằng 4 bytes, bao gồm BlueByte, GreenByte, RedByte và ReservByte.
Thí dụ: bảng màu loại 1 bit chuẩn Windows có 8 bytes: 0,0,0,0,255,255,255,0 (4 bytes đầu là màu thứ 0; 4 bytes sau là màu thứ 1 Do
Dữ liệu ảnh được lưu trữ theo từng điểm ảnh từ trái sang phải và từ dưới lên trên Đối với ảnh có màu Indexed, mỗi điểm ảnh cần từ 1 đến 8 bits để chỉ định màu sắc tương ứng trong bảng màu.
Giá trị 0111 (=7) trong định dạng BMP 4 bits chỉ ra rằng điểm ảnh đó có màu số 7, tương ứng với màu xám theo tiêu chuẩn của Windows Đối với định dạng 24 bits, màu sắc không được mô tả theo thứ tự trong bảng màu, vì việc liệt kê toàn bộ bảng màu sẽ tốn một lượng lớn bộ nhớ và dung lượng lưu trữ Thay vào đó, định dạng này cung cấp trực tiếp giá trị RGB của ba màu thành phần.
Mỗi điểm ảnh có kích thước khác nhau sẽ tiêu tốn một lượng byte nhất định: loại 1 bit tốn 1/8 byte, loại 4 bits tốn 1/2 byte, loại 8 bits tốn 1 byte và loại 24 bits tốn 3 bytes Tuy nhiên, tổng kích thước dữ liệu của bức ảnh thường lớn hơn dự kiến do quy ước rằng số byte cần thiết cho mỗi hàng ngang phải là bội số của 4.
Khi bạn có một hình ảnh 1x1 với 1 bit, dung lượng lưu trữ sẽ là 66 bytes, tương tự như hình ảnh 32x1 với 1 bit (54 bytes cho header, 8 bytes cho bảng màu, và 4 bytes cho một hàng tối thiểu) Nếu bạn xoay hình ảnh 32x1 (chỉ chiếm 4 bytes dữ liệu) thành 1x32, sẽ xảy ra tình trạng lãng phí Mỗi hàng sẽ lãng phí 31 bits, tổng cộng 32 hàng sẽ tạo ra 124 bytes lãng phí.
Ảnh xám
Đơn vị cơ bản của ảnh số là pixel, với thông số khác nhau tùy thuộc vào định dạng ảnh màu hoặc ảnh xám Đối với ảnh màu, mỗi pixel chứa thông tin của ba màu cơ bản, bao gồm Đỏ (R), giúp tạo ra hình ảnh màu sắc mà mắt người có thể nhìn thấy.
Mỗi pixel trong ảnh màu bao gồm ba màu cơ bản là Đỏ (R), Xanh lá (G) và Xanh dương (B), được sắp xếp gần nhau với cường độ sáng khác nhau Mỗi màu cơ bản thường được biểu diễn bằng tám bit, cho phép có 256 mức độ màu khác nhau Do đó, mỗi pixel sẽ mang lại sự phong phú về màu sắc trong ảnh.
Màu sắc trong ảnh kỹ thuật số được biểu diễn bằng 2^24 màu, tương đương với khoảng 16.78 triệu màu Đối với ảnh xám, mỗi pixel chứa thông tin của 256 mức xám (tương ứng với 8 bit), cho phép ảnh xám tái hiện cấu trúc đầy đủ của một ảnh màu qua tám mặt phẳng bit.
Trong quá trình xử lý ảnh, cấu trúc của ảnh thường được ưu tiên hơn màu sắc, dẫn đến việc chuyển đổi từ ảnh màu sang ảnh xám trở nên phổ biến Định dạng PNG, được hỗ trợ bởi thư viện libpng, cung cấp các hàm C để quản lý hiệu quả các hình ảnh PNG.
Những tập tin PNG thường có phần mở rộng là PNG và đã được gán kiểu chuẩn MIME là image/png
Tập tin PNG được khởi đầu bằng một ký hiệu 8-byte (89 50 4E 47 0D 0A 1A) trong hệ thống số 16, bao gồm các chữ "PNG" và hai dấu xuống dòng Cấu trúc của tập tin này được thiết kế với các thành phần chứa thông tin hình ảnh, cho phép định dạng PNG tương thích với các phiên bản cũ Mỗi thành phần trong tập tin đều cung cấp thông tin cần thiết về hình ảnh.
PNG là 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 đặt tên bằng 4 chữ cái, phân biệt giữa chữ hoa và chữ thường, giúp bộ giải mã nhận diện bản chất của chuỗi khi gặp khó khăn trong việc nhận dạng.
Chữ cái đầu viết hoa trong chuỗi thiết yếu là rất quan trọng, vì nếu không có nó, chuỗi sẽ trở nên ít cần thiết hơn Chuỗi thiết yếu cung cấp thông tin cần thiết để đọc tệp, và nếu bộ giải mã không nhận diện được chuỗi này, việc đọc tệp sẽ bị hủy bỏ.
Định dạng PNG mang lại nhiều ưu điểm vượt trội so với các định dạng phổ biến như JPG, GIF và BMP, đặc biệt khi được áp dụng trong môi trường đồ họa web.
Hình ảnh PNG là một trong những định dạng ảnh phổ biến nhất hiện nay với dung lượng nhỏ nhất, điều này rất quan trọng để tối ưu hóa không gian lưu trữ và tốc độ tải trang.
- Độ sâu của màu: Ảnh PNG hỗ trợ đến true color 48bit màu Trong khi đó ảnh gif chỉ ở mức 256 màu.
Cấu trúc ảnh PNG
Kỹ thuật do Mr.P.Mohan Kumar và Dr.K.L.Shunmuganathan phát triển dựa trên phương pháp DE (Difference Expansion do Jun Tian đề xuất năm
Phương pháp được đề xuất vào năm 2002 nhằm nâng cao khả năng nhúng và tăng cường tính bảo mật cho phương pháp DE ban đầu Bằng cách sử dụng nhiều tầng nhúng dữ liệu, phương pháp này vẫn đảm bảo chất lượng ảnh khả quan.
Thông điệp cần giấu sẽ được chia thành hai chuỗi nhỏ, được nhúng theo chiều dọc và chiều ngang của các điểm ảnh Phương pháp chọn điểm ảnh để nhúng sẽ được trình bày ở phần sau Giả sử rằng chuỗi thông tin cần giấu đã được mã hóa.
Phương pháp đề xuất nhằm nhúng thông tin bí mật vào ảnh ban đầu O có kích thước HxW bằng cách sử dụng một cặp điểm ảnh Quy trình này bao gồm hai giai đoạn chính: giai đoạn nhúng theo chiều ngang thông qua thủ tục nhúng ngang HEm và giai đoạn nhúng theo chiều dọc với thủ tục nhúng dọc VEm.
Chuỗi bit mật S có chiều dài LS được chia thành hai chuỗi nhỏ S1 và S2 với chiều dài lần lượt là LS1 và LS2 Chuỗi bit thông tin B1 được tạo ra bằng cách kết hợp chuỗi S1 và chuỗi bit phụ A1, tức là B1 = S1 U A1.
Tương tự chuỗi bit thông tin B2 được tạo ra bằng cách ghép chuỗi bit mật
KỸ THUẬT GIẤU TIN VỚI DUNG LƯỢNG LỚN
Ý tưởng của thuật toán
Thông điệp cần giấu sẽ được chia thành hai chuỗi nhỏ và nhúng vào các điểm ảnh theo hai chiều dọc và chiều ngang Phương pháp chọn điểm ảnh để nhúng sẽ được trình bày ở phần sau, với giả định rằng chuỗi thông tin đã được mã hóa.
Thuật toán
Phương pháp đề xuất liên quan đến việc nhúng một bit thông tin b vào cặp điểm ảnh của ảnh gốc O có kích thước HxW theo một thứ tự quét nhất định Quy trình này bao gồm hai giai đoạn chính: giai đoạn nhúng theo chiều ngang thông qua thủ tục nhúng ngang HEm và giai đoạn nhúng theo chiều dọc sử dụng thủ tục nhúng dọc VEm.
Chuỗi bit mật S có chiều dài LS được phân chia thành hai chuỗi nhỏ S1 và S2, với chiều dài tương ứng là LS1 và LS2 Chuỗi bit thông tin B1 được tạo ra bằng cách kết hợp chuỗi S1 với chuỗi bit phụ A1, tức là B1 = S1 U A1.
Chuỗi bit thông tin B2 được tạo ra từ việc kết hợp chuỗi bit mật thủ tục HEm, tạo ra ảnh đầu ra T với kích thước HxW Bản đồ định vị vị trí các pixel HL được sử dụng để giấu tin đã được nén thành CM1 với chiều dài LC1, và sẽ được mô tả sau Tin này được nhúng vào T thông qua kỹ thuật LSB, thay thế bit có trọng số thấp nhất, dẫn đến việc tạo ra ảnh U cũng có kích thước HxW.
Chuỗi bit thông tin B2 được nhúng theo chiều dọc vào ảnh U bằng thủ tục VEm, tạo ra ảnh kết quả V có kích thước HxW Sau đó, bản đồ định vị VL được nén thành CM2 với chiều dài LC2 và sẽ được nhúng vào V thông qua kỹ thuật thay thế LSB, từ đó tạo ra ảnh stego.
Tổng quan của quá trình nhúng được biểu diễn trong sơ đồ hình 3.1
3.2.1.1 Thủ tục nhúng ngang HEm
Quét các pixel của ảnh O theo chiều ngang, từ trái qua phải và từ trên xuống dưới, để nhóm các điểm ảnh kề nhau thành cặp (x,y) không trùng khớp Nếu giá trị y của cặp (x,y) là lẻ, cặp này được gọi là cặp điểm ảnh có thể nhúng ngang Ngược lại, nếu y là chẵn, cặp này không phải là cặp nhúng ngang Tập hợp các cặp điểm ảnh có thể nhúng ngang được ký hiệu là E1, với độ dài LE1 Các cặp điểm ảnh không nhúng ngang sẽ giữ nguyên Mỗi bit thông tin b trong B1 sẽ được nhúng ngang vào các cặp điểm ảnh trong E1 theo quy tắc nhúng ngang HR.
Quy tắc nhúng ngang HR
Với mỗi cặp điểm ảnh nhúng ngang (x,y) chúng ta áp dụng các quy tắc sau:
HR1: nếu bit thông điệp b=1 thì cặp điểm ảnh kết quả (x0,y0) được tính bằng (x0,y0)=(x,y)
HR2: nếu bit thông điệp bit b=0 thì cặp điểm ảnh kết quả (x0,y0) được tính bằng (x0,y0)=(x,y-1)
Quy tắc nhúng ngang HR được áp dụng lặp đi lặp lại cho từng bit thông tin b của chuỗi B1 trong cặp điểm ảnh gốc (x,y) thuộc E1 của O, cho đến khi toàn bộ thông tin được nhúng hoàn toàn vào O, tạo ra ảnh đầu ra T Điều quan trọng là quy tắc này không gây ra hiện tượng tràn dưới hay tràn trên, vì cặp điểm ảnh sau khi nhúng (x0,y0) luôn nằm trong khoảng cho phép [0,255].
Chuỗi bit dữ liệu phụ A1 được thành lập như sau:
Bản đồ định vị HL sẽ được nén thành CM1 với độ dài LC1 Từ LC1, ta lấy các bit có trọng số thấp nhất của điểm ảnh từ đầu ảnh đến vị trí LC1, tạo thành tập hợp A1 Tập hợp A1 sẽ được ghép vào sau B1, trong đó B1 = S1 U A1 Cuối cùng, A1 được nhúng vào ảnh O thông qua thủ tục HEm, tạo ra ảnh kết quả T.
Bản đồ định vị nhúng ngang
Bản đồ định vị HL là ma trận hai chiều kích thước HxW/2 với tất cả giá trị khởi đầu bằng 0 Chúng ta sẽ duyệt ảnh theo từng cặp điểm ảnh (x,y) từ trái sang phải và từ trên xuống dưới Nếu (x,y) là cặp điểm ảnh nhúng ngang, giá trị tương ứng trong HL sẽ được chuyển thành 1 Quá trình này sẽ tiếp tục cho đến khi hoàn tất tất cả các cặp ảnh.
Nhúng bản đồ định vị
Bản đồ định vị HL được nén thành CM1 bằng kỹ thuật nén jpeg2 hoặc carpenter, sau đó sẽ được xử lý để tách thông tin giá trị Ảnh đầu vào T sử dụng kỹ thuật thay thế LSB để nhúng bản đồ định vị, và cuối cùng, bộ ký tự „eom1‟ được nhúng để đánh dấu vị trí kết thúc của bản đồ Ảnh kết quả thu được là ảnh U.
3.2.1.2 Thủ tục nhúng dọc VEm
Ta tiến hành duyệt từng cặp điểm ảnh (u,v) theo thứ tự từ trên xuống dưới và từ trái qua phải Nếu giá trị v là số chẵn, cặp điểm ảnh (u,v) sẽ được xác định là cặp điểm ảnh nhúng.
(u,v) của E2 tại một thời điểm bằng cách sử dụng quy tắc nhúng dọc VR được định nghĩa như sau
Quy tắc nhúng dọc VR
Tại mỗi cặp điểm ảnh nhúng dọc (u,v) chúng ta sẽ áp dụng quy tắc nhúng sau:
VR1: nếu bit thông tin b=0 thì cặp điểm ảnh kết quả (u0,v0) được tính bằng (u0,v0)=(u,v)
VR2: nếu bit thông tin b=1 thì cặp điểm ảnh kết quả (u0,v0) được tính bằng (u0,v0)=(u,v+1)
Quy tắc nhúng dọc VR được áp dụng để giấu thông tin B2 vào từng cặp điểm ảnh (u,v) trong E2 của U Quá trình này diễn ra lặp đi lặp lại cho đến khi toàn bộ chuỗi thông tin B2 được nhúng vào U, tạo ra ảnh V Cần lưu ý rằng phương pháp nhúng dọc này yêu cầu sự chính xác để đảm bảo chất lượng ảnh.
VR không gây ra hiện tượng tràn dưới và tràn trên, vì cặp điểm ảnh kết quả (u0,v0) nằm trong khoảng cho phép [0,255] Tương tự, chuỗi bit dữ liệu phụ A2 được tạo ra theo cách tương tự như chuỗi A1.
Bản đồ định vị dọc VL được xác định từ ảnh U và nén thành CM2 với độ dài LC2 Các bit trọng số thấp nhất (LSB) của điểm ảnh từ vị trí đầu đến LC2 được tập hợp thành A2 A2 sẽ được ghép vào B2 (B2 = S2 U A2) và nhúng vào ảnh U qua thủ tục VEm, tạo ra ảnh kết quả V.
Bản đồ định vị nhúng dọc
Bản đồ định vị VL là một ma trận hai chiều có kích thước H/2xW, khởi đầu với tất cả các giá trị bằng 0 Quá trình duyệt ảnh diễn ra theo từng cặp điểm ảnh (u,v) từ trên xuống dưới và từ trái qua phải Nếu (u,v) là cặp điểm ảnh nhúng ngang, giá trị tương ứng trong VL sẽ được chuyển thành 1 Quy trình này tiếp tục cho đến khi tất cả các cặp ảnh được xử lý.
Nhúng bản đồ định vị
Bản đồ định vị CM2 sau khi nén sẽ được xử lý để tách thông tin giá trị Kỹ thuật thay thế LSB được áp dụng để nhúng bản đồ định vị vào ảnh đầu vào V, và bộ ký tự „eom2‟ được sử dụng để đánh dấu vị trí kết thúc Kết quả cuối cùng là một ảnh đã được nhúng thông tin.
3.2.2 Giai đoạn tách thông điệp
CÀI ĐẶT THỬ NGHIỆM
Đo độ đánh giá PSNR
Chất lượng ảnh sau khi thực hiện tin giấu được đo lường bằng tỷ số PSNR (Peak Signal to Noise Ratio), phản ánh mối quan hệ giữa tín hiệu đỉnh và nhiễu.
Nó được định nghĩa thông qua bình phương trung bình lỗi MSE (mean squared error) cho hai hình ảnh I va K có kích thước HxW:
Trong đó MSE được định nghĩa:
Khi hai hình ảnh giống hệt nhau, MSE sẽ bằng 0 và PSNR đi đến vô hạn.
Một số giao diện chương trình demo
4.3.1 Giao diện chính của chương trình (hình 4.2)
Bao gồm các chức năng:
Giấu chuỗi kí tự: thực hiện giấu một chuỗi thông điệp do người dùng nhập vào
Giấu tệp văn bản: thực hiện giấu một tệp văn bản do người dùng chọn
Tách chuỗi kí tự: thực hiện tách một chuỗi thông điệp từ ảnh đã được giấu bởi chức năng giấu chuỗi kí tự
Tách tệp văn bản: thực hiện tách một tệp văn bản từ ảnh đã được giấu bởi chức năng giấu tệp văn bản
Hình 4.2 Giao diện chính của chương trình
4.3.2Giao diện quá trình giấu chuỗi thông tin bất kỳ
Hình 4.3 Giao diện nhúng chuỗi thông điệp Ô nhập dữ liệu:
Nhập chuỗi thông tin: Hãy nhập chuỗi thông tin muốn gửi Ảnh gốc: Nhấn vào ô chọn ảnh để lựa chọn bức ảnh gốc để làm phương tiện
Tên ảnh bản đồ nhúng dọc:Nhấn ô chọn vị trí để lưu tên bản đồ định vị nhúng dọc
Các nút lệnh bên cạnh các ô nhập dữ liệu có nhiệm vụ mở các cửa sổ để người dùng lựa chọn
Nút thực hiện nhúng để chương trình thực hiện nhúng thông điệp vào trong ảnh gốc
Nút thoát có nhiệm vụ thoát khỏi modun nhúng thông điệp
4.3.3 Giao diện quá trình giấu tệp văn bản:
Hình 4.4 Giao diện quá trình giấu tệp văn bản Ô nhập dữ liệu:
Tệp cần nhúng: tệp văn bản cần giấu Ảnh gốc: bức ảnh gốc
Tên ảnh sau khi nhúng: tên bức ảnh sau khi được nhúng văn bản
Bản đồ nhúng ngang: tên bản đồ định vị nhúng ngang
Bản đồ nhúng dọc: tên bản đồ định vị nhúng dọc
Các nút lệnh bên cạnh các ô nhập dữ liệu có nhiệm vụ mở cửa sổ để người dùng lựa chọn
Thực hiện:Sẽ thực hiện quá trình giấu tin
Thoát: Thoát khỏi giao diện giấu tệp
4.3.4 Giao diện tách chuỗi thông tin: Ô nhập dữ liệu:
Tên ảnh chứa dữ liệu: tên bức ảnh chứa thông tin Ảnh phục hồi: tên bức ảnh sẽ dược lưu sau khi khi phục hồi
Bản đồ nhúng dọc: tên bản đồ định vị nhúng dọc
Bản đồ định vị nhúng ngang: tên bản đồ định vị nhúng ngang
Các nút lệnh bên cạnh các ô nhập dữ liệu có nhiệm vụ mở các cửa sổ để người dùng lựa chọn
Nút thực hiện để chương trình tách thông tin từ ảnh gốc
Nút thoát để thoát khỏi giao diện tách chuỗi thông tin
Kết quả chuỗi thông tin tách ra sẽ được trả về ở ô chuỗi thông tin được tách ra
4.3.5 Giao diện tách tệp văn bản:
Hình 4.6 Giao diện tách tệp văn bản Ô nhập dữ liệu: Ảnh chứa thông tin: tên bức ảnh chứa tệp văn bản
Bản đồ định vị dọc: tên ảnh bản đồ định vị dọc
Bản đồ định vị ngang là công cụ quan trọng giúp xác định vị trí chính xác Tên ảnh bản đồ định vị ngang sẽ được sử dụng để dễ dàng nhận diện Sau khi thu thập thông tin, tên bức ảnh sẽ được phục hồi lại từ dữ liệu đã tách, đảm bảo nguyên trạng của bức ảnh ban đầu.
Nút thực hiện để chương trình tách văn bản từ ảnh gốc
Nút thoát để thoát khỏi giao diện tách tệp văn bản
Giao diện tính PSNR bao gồm hai ô nhập thông tin: ô đầu tiên để nhập tên bức ảnh gốc trước khi thực hiện việc nhúng thông tin, và ô thứ hai để nhập tên bức ảnh sau khi đã nhúng thông tin.
Các nút lệnh bên cạnh các ô nhập dữ liệu có nhiệm vụ mở các cửa sổ để người dùng lựa chọn
Nút thực hiện để chương trình tính psnr.
Các module cài đặt
4.4.1 Chức năng: Giấu thông tin vào trong ảnh
Các tham số đầu vào:
- x: chuỗi thông tin đầu vào
- ten moi: Tên của ảnh kết quả sau khi giấu tin
- Tenbddvngang: tên của bản đồ định vị nhúng ngang
- Tenbddvdoc: tên của bản đồ định vị nhúng dọc
4.4.2 Chức năng tách thông tin
- tenanhphuchoi: tên ảnh sau khi lấy thông tin và phục hồi nguyên gôc
- tenbddoc: tên ảnh bản đồ định vị nhúng dọc
- ten bdngang: tên ảnh bản đồ định vị nhúng ngang
Tham số ra: chuỗi thông tin kết quả
4.4.3 Chức năng: Đọc một tệp văn bản sau đó thực hiện nhúng dữ liệu
Tham số đầu vào: Đầu ra là bức ảnh đã được nhúng tệp văn bản
4.4.4 Chức năng: tách tệp văn bản và ghi một tệp văn bản
- tenanh: tên ảnh chứa tệp văn bản
- tenanhphuchoi: tên bức ảnh sau khi tách thông tin và phục hồi
- tenfie: tên của tệp văn bản sau khi được tách ra
- tenbddoc: tên của ảnh bản đồ định vị nhúng dọc
- tenbdngang: tên của ảnh bản đồ định vị nhúng ngang
4.4.5 Chức năng: Đổi một chuỗi kí tự ra một chuỗi nhị phân
- s: Chuỗi kí tự cần đổi
4.4.6 Chức năng: Đổi một chuỗi nhị phân ra một chuỗi kí tự
- S: chuỗi kí tự kết quả.
Thực nghiệm, đánh giá và so sánh với kỹ thuật DE
4.5.1 Giấu trên 10 ảnh chuẩn (hình 4.1)
Sử dụng kỹ thuật giấu tin với dung lượng lớn để nhúng tệp txt hình 4.8
Hình 4.8 tệp văn bản có dung lượng 67232 bit
Các ảnh trước và sau khi nhúng
Hình 4.9 ảnh trước và sau khi nhúng
4.5.2 So sánh và đánh giá với kỹ thuật DE
Tương tự như vậy ta sử dụng phương pháp DE để nhúng tệp trên trong 10 ảnh chuẩn hình 4.1 ta thu được kết quả như bảng 4.1 kết quả tính psnr
Bảng 4.1 Kết quả tính psnr
DE GIẤU TIN VỚI DUNG
Theo bảng đánh giá, kỹ thuật giấu tin với dung lượng lớn được đề xuất trong báo cáo hiện tại vượt trội hơn so với phương pháp DE trước đây, với chỉ số PSNR đạt trên 54, trong khi phương pháp DE cũ chỉ đạt PSNR trên 36.
Sau khi cải tiến kỹ thuật DE sang kỹ thuật giấu tin trên hai pha ngang dọc, vấn đề tràn và hiện tượng muối hạt tiêu trong ảnh sau khi nhúng đã được khắc phục Điều này đảm bảo rằng các điểm ảnh sau khi xử lý luôn nằm trong phạm vi [0, 255].
Kỹ thuật giấu tin trên hai pha ngang dọc mặc dù có nhiều ưu điểm, nhưng cũng tồn tại nhược điểm là không thể xác định chính xác số lượng bit có thể nhúng vào trong ảnh, do pha nhúng dọc phụ thuộc vào pha nhúng ngang trước đó.