Tôi đang làm việc trên ứng dụng Steganography. Tôi cần phải ẩn một tin nhắn bên trong một tập tin hình ảnh và bảo mật nó bằng một mật khẩu, với sự khác biệt không nhiều về kích thước tập tin. Tôi đang sử dụng thuật toán Bit ít quan trọng nhất và có thể thực hiện thành công với các tệp BMP nhưng nó không hoạt động với các tệp JPEG, PNG hoặc TIFF. Thuật toán này có hoạt động với các tệp này không? Có cách nào tốt hơn để đạt được điều này? Cảm ơn.Hình ảnh Steganography
Trả lời
Điều này phụ thuộc rất nhiều vào cách thức định dạng hình ảnh cụ thể hoạt động. Bạn sẽ cần phải đi sâu vào bên trong của định dạng bạn muốn sử dụng.
Đối với JPEG, bạn có thể fiddle với các bit cuối cùng của hệ số DCT cho mỗi khối.
Đối với các tệp dựa trên bảng màu (GIF và một số PNG), bạn có thể thêm màu bổ sung vào bảng trông giống hệt màu hiện có và mã hóa thông tin dựa trên loại bạn sử dụng.
Bạn sẽ phải phân biệt giữa các định dạng dựa trên pixel (bitmap) và định dạng dựa trên bảng (GIF) mà kỹ thuật steganographic là khá khác nhau. Cũng lưu ý rằng có các định dạng hình ảnh như JPG mất thông tin trong quá trình nén.
Tôi cũng sẽ tư vấn một số general introduction để steganography bao gồm các định dạng khác nhau.
Cách tiếp cận Bit ít quan trọng nhất không hoạt động với ảnh JPEG và GIF vì bạn đang sử dụng dữ liệu pixel (ảnh thô) để lưu trữ thông tin ẩn trước khi nén. Một pixel p, với dữ liệu 0x123456 có thể sẽ không có giá trị này sau khi nén vì giá trị của nó phụ thuộc vào tốc độ nén và pixel lân cận. Trong trường hợp này, chúng ta đang nói về các thuật toán không chỉ nén hình ảnh (như một ZIP, giữ nội dung), mà còn thay đổi phân bố màu, kết cấu và chất lượng để giảm số bit đại diện cho nó.
Tuy nhiên, PNG chỉ có thể được sử dụng để nén hình ảnh theo cùng ý nghĩa của tệp ZIP, giữ nội dung. Do đó, bạn có thể sử dụng Bit ít quan trọng nhất cho hình ảnh PNG, do đó trang Wikipedia Steganography hiển thị ví dụ ở định dạng này.
Câu hỏi liên quan có thể hữu ích: http://stackoverflow.com/questions/1216156/how-can-you-hide-information-inside-a-jpg-or-gif-photo – John
Khó khăn hơn nhiều khi bị mất dữ liệu nén định dạng, bởi vì nén hình ảnh mất mát được thiết kế đặc biệt để giảm độ trung thực của chi tiết hình ảnh khó nhận biết, chính xác là nơi các kỹ thuật steganographic muốn đặt thông tin của họ. Nén không mất dữ liệu cũng có vấn đề, vì việc giới thiệu thông tin mới thường làm giảm hiệu quả nén, tăng kích thước tệp. –
PNG không bị mất. Và JPEG có thể không mất dữ liệu. Đã từng là một ví dụ về điều này tại http://stega.maxant.co.uk, nhưng có vẻ như là ngoại tuyến vào lúc này. –