Trong phần trước tôi đã trình bày với các bạn về tổng quan của cơ chế mã hóa và giải mã trong Steganography, cũng như một số cơ chế ẩn thông điệp trong file text. Phần tiếp theo tôi sẽ giới thiệu sơ lược với các bạn về một số định dạng file ảnh. Sau đó là cơ chế LSB trong qua trình ẩn thông điệp trong ảnh.

3.3 CƠ CHẾ ẨN THÔNG ĐIỆP TRONG FILE ẢNH

Cấu trúc nói chung của ảnh gồm có 3 phần: Header, Dữ liệu(chứa các thông tin về ảnh), bảng màu.

3.3.1 DƯỚI ĐÂY LÀ MỘT SỐ ĐỊNH DẠNG ẢNH CƠ BẢN

3.3.1.1 ĐỊNH DẠNG ẢNH IMG

Ảnh IMG là ảnh đen trắng.Phần đầu của ảnh gồm 16 byte chứa một số thông tin về ảnh:

  • 6 byte đầu:Đánh dấu định dạng ảnh.
  • 2 byte:Chứa độ dài mẫu tin.Dãy các byte lặp đi lặp lại một số lần nào đó và số lần lặp này sẽ được lưu lại.
  • 4 byte tiếp:Mô tả kích thước của pixel.
  • 2 byte tiếp:Số pixel trên một dòng ảnh.
  • 2 byte cuối:Số dòng trong ảnh.

3.3.1.2 ĐỊNH DẠNG ẢNH PCX

Định dạng ảnh này có lẽ là cổ nhất trong các định dạng.Nó sử dụng phương pháp mã hóa loạt dài RLC(Run Length Coding) để nén dữ liệu ảnh.Quá trình nén và giải nén được thực hiện trên từn dòng ảnh.Dưới đây là cấu trúc tệp PCX:

anh1

  Phương pháp giải nén PCX kém hơn so với IMG nhưng định dạng này hay được sử dụng để lưu trữ ảnh vì tốc độ nén và giải nén nhanh.

3.3.1.3 ĐỊNH DẠNG ẢNH GIF

Ảnh GIF là kiểu định dạng dành cho các ảnh có ít hơn 256 màu sắc.GIF thường dùng cho sơ đồ ,hình vẽ ,nút bấm ,hình màu.Đây là định dạng nén đặc biệt rất hữu ích cho việc truyền ảnh. GIF sử dụng thuật toán LOSS LESS ,chính vì thế ta có thể tạo ra file kích thước nhỏ mà ảnh không bị mờ hay mất dữ liệu. Dưới đây là cấu trúc của ảnh GIF:

3.3.1.4 ĐỊNH DẠNG ẢNH .JPEG

Đây cũng là một định dạng phổ biến nhưng nó lại là một kiểu ảnh nén.Đây là một trong những định dạng của kiểu JPEG(Joint Photographic Experts Group).Do sự mất mát thông tin có thể xảy ra nên chất lượng hình ảnh trước và sau khi nén có thể bị suy giảm,sự suy giảm này tăng theo hệ số nén.Ưu điểm của phương pháp này là nhẹ hơn ảnh định dạng BMP rất nhiều .

anh2

 

3.3.1.5 ĐỊNH DẠNG FILE ẢNH BITMAP

Cấu trúc file ảnh Bitmap được chia làm 4 phần:Header,Image Header,Color table và Pixel data.

  • File Header(14 byte ):
anh3

 

  • Image Header:Đưa ra thông tin về ảnh và định dạng dữ liệu
anh4

 

anh5
  • Color Table:Tiếp theo là bảng màu của Bitmap, gồm nhiều bộ có kích thước 4 byte xếp liền nhau theo cấu trúc Blue-Green-Red.
  • Pixel Data:Với ảnh 8 bit ,mỗi pixel biểu diễn 1 byte đơn vị còn ảnh 24bit thì mỗi file pixel biểu diễn 3 byte đơn vị.

3.3.2 CƠ CHẾ ẨN THÔNG ĐIỆP TRONG ẢNH THEO CƠ CHẾ LSB

Đối với ảnh 8 bit ta chỉ có thể ẩn 1 bit dữ liệu cho mỗi pixel còn đối với ảnh 24 bit ta có thể ẩn 3 bit dữ liệu cho mỗi pixel. Quá trình mã hóa để giấu thông điệp vào bức ảnh:

  • Trước hết chúng ta cần chuyển thông điệp sang dạng nhi phân.

Nếu ta muốn giấu chữ A thì ta cần giấu đoạn mã sau:10000001

  • Đọc các pixel trong bức ảnh (Original Image),để tìm ra các giá trị R-G-B của từng pixel một.

Giả sử ta chọn ra 3 pixel để ẩn 3bit của byte thấp của kí tự A như sau:00100111 11101001 1100100000100111 11001000 1110100111001000 00100111 11101001

  • Ta sẽ thay từng bit của mã nhị phân của kí tự A vào từng pixel trên .Lúc này ta có pixel sau:

00100111 11101001 1100100000100111 11001000 1110100011001000 00100111 11101001Như vậy chỉ có 3 bit thay đổi trong 3 pixel nên chúng ta rất khó có thể phát hiện bằng mắt thường. Quá trình giải mã để lấy thông điệp ra khỏi bức ảnh:

  • Đọc từng pixel của bức ảnh nhận được .
  • Đọc giá trị R-G-B của từng pixel, đọc các LSB của từng giá trị R-G-B, ta được một chuỗi nhị phân ban đầu của thông điệp gốc. Sau đó ta chuyển chuỗi nhị phân về dạng ASCII là xong .

4 MỘT SỐ HẠN CHẾ CỦA STEGANOGRAPHY

  • Đối với mã hóa, nếu An muốn trao đổi bí mật với Bình đầu tiên họ phải đồng ý về phương pháp đang được sử dụng. Bình không thể chắc chắn rằng ông đã nhận được một thông điệp bí mật hay có thể nó giống như tập tin vô nghĩa gửi đến. Do đó ta cần một cơ chế để xác định xem tập tin gửi đến chỉ đơn thuần là một bức ảnh,một file âm thanh… hay bên trong nó còn ẩn dữ liệu và làm thế nào để có thể lấy được thông tin đó ra.
  • Khi ta ẩn thêm thông điệp vào một bức ảnh hay file âm thanh có kích thước nhỏ mà dung lượng của thông điệp lại quá lớn thì nó sẽ tạo ra sự chênh lệch giữa dung lượng của file ban đầu và file sau khi ẩn thông điệp. Điều này có thể được giải quyết nếu như chúng ta dùng video để ẩn thông điệp. Khi đó sự chênh lệch về kích thước file không đáng kể.

5 TỔNG KẾT

Như bạn đã biết, Steganography trở nên được sử dụng rộng rãi hơn trong cuộc sống. Có một loạt các kỹ thuật khác nhau với những điểm mạnh và điểm yếu riêng của chúng. Đôi khi Stegno cũng được sử dụng cho mục đích tốt nhưng đôi khi lại được sử dụng cho mục đích xấu. Ví dụ trong chiến tranh thì Stegano có thể dùng trong truyền tin.Còn đối với mục đích không tốt thì stegano có thể bị dùng để ẩn các file ảnh hay video không tốt trong máy tính mà không muốn người khác biết. Trên đây mình đã trình bày tổng quan về một số định dạng ảnh và sơ lược về cơ chế LSB trong việc giấu thông điệp trong file ảnh. Hy vọng bài viết của mình có thể giúp ích cho các bạn. Bài viết trên có thể có những chỗ thiếu sót ,mong các bạn góp ý để bài viết được hoàn thiện hơn. Tài liệu tham khảo:

  1. Steganography and Digital Watermark
  2. https://en.wikipedia.org/wiki/Steganography
  3. Một số tài liệu khác trên Internet
Chia sẻ bài viết này