Steganography(ẩn mã) là một kỹ thuật được sử dụng rộng rãi suốt nhiều thập kỉ. Đến nay, kỹ thuật này đã được nghiên cứu và phát triển dưới nhiều dạng khác nhau và được áp dụng trong nhiều lĩnh vực. Trong kỹ thuật ẩn mã hình ảnh, phương pháp giấu trên bit có ít ý nghĩa nhất (LSB Least significant bit) là phổ biến nhất nhưng dễ bị tấn công bởi nhiều cuộc tấn công bảo mật. Do đó, điều cấp thiết là phải làm cho kỹ thuật steganographic mạnh mẽ và an toàn hơn. Bài báo này trình bày một cách tiếp cận mới để ẩn tin nhắn văn bản trong hình ảnh RedGreenBlue (RGB) dựa trên kỹ thuật LSB. Không giống như kỹ thuật LSB tiêu chuẩn, trong đó các bit thông điệp được nhúng trực tiếp vào các vị trí LSB, thuật toán đề xuất là mã hóa các bit thông điệp này trước khi nhúng vào các vị trí LSB. Quá trình nhúng và mã hóa này được thực hiện trên cơ sở hầu hết các giá trị bit quan trọng (MSB Most Significant Bit) của RGB và khái niệm về tỷ lệ chẵn và lẻ của các pixel đó tương ứng. Mục tiêu chính của phương pháp được trình bày là cải thiện độ mạnh và chất lượng hình ảnh của ảnh mang(stegoimage). Hiệu suất của chất lượng hình ảnh stego được đo bằng bình phương sai số trung bình (MSE), tỷ lệ tín hiệu trên nhiễu đỉnh (PSNR), phép đo độ tương đồng về cấu trúc (SSIM), tỷ lệ bit (BR) và phân tích biểu đồ. Kết quả thử nghiệm và các nghiên cứu so sánh đã cho thấy rằng kỹ thuật được đề xuất có thể che giấu thông điệp một cách hiệu quả, với sự khác biệt nhỏ giữa ảnh phủ và ảnh stego. Kết quả cũng cho thấy rằng cách phương án đề xuất có thể nhúng một lượng thông tin hợp lý.
Trang 1HỌC VIỆN KỸ THUẬT MẬT MÃ
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO MÔN HỌC
KỸ THUẬT GIẤU TIN
ĐỀ TÀI
BIẾN THỂ CỦA THUẬT TOÁN MÃ HÓA LSB ĐỂ GIẤU
THÔNG TIN TRONG ẢNH RGB
Sinh viên thực hiện: NGUYỄN PHÚ LÂM - AT150330
TRẦN VĂN CÔNG - AT150307 BÙI TIẾN THÀNH - AT150350 NGUYỄN VIỆT HOÀNG – AT150319
LÊ TIẾN DŨNG – AT150311
Hà Nội, 02-2022
Trang 2MỤC LỤC
1. 3
2. 4
2.1 4
2.2 5
3. 6
3.1 6
3.2 7
3.2.1 8
3.2.2 10
4. 11
4.1 11
4.2 12
4.3 13
5. 13
Trang 3LỜI MỞ ĐẦU
Steganography(ẩn mã) là một kỹ thuật được sử dụng rộng rãi suốt nhiều thập
kỉ Đến nay, kỹ thuật này đã được nghiên cứu và phát triển dưới nhiều dạng khác nhau và được áp dụng trong nhiều lĩnh vực
Trong kỹ thuật ẩn mã hình ảnh, phương pháp giấu trên bit có ít ý nghĩa nhất (LSB- Least significant bit) là phổ biến nhất nhưng dễ bị tấn công bởi nhiều cuộc tấn công bảo mật Do đó, điều cấp thiết là phải làm cho kỹ thuật steganographic mạnh mẽ và an toàn hơn Bài báo này trình bày một cách tiếp cận mới để ẩn tin nhắn văn bản trong hình ảnh Red-Green-Blue (RGB) dựa trên kỹ thuật LSB
Không giống như kỹ thuật LSB tiêu chuẩn, trong đó các bit thông điệp được nhúng trực tiếp vào các vị trí LSB, thuật toán đề xuất là mã hóa các bit thông điệp này trước khi nhúng vào các vị trí LSB Quá trình nhúng và mã hóa này được thực hiện trên cơ sở hầu hết các giá trị bit quan trọng (MSB- Most Significant Bit) của RGB và khái niệm về tỷ lệ chẵn và lẻ của các pixel đó tương ứng Mục tiêu chính của phương pháp được trình bày là cải thiện độ mạnh và chất lượng hình ảnh của ảnh mang(stego-image) Hiệu suất của chất lượng hình ảnh stego được đo bằng bình phương sai số trung bình (MSE), tỷ lệ tín hiệu trên nhiễu đỉnh (PSNR), phép
đo độ tương đồng về cấu trúc (SSIM), tỷ lệ bit (BR) và phân tích biểu đồ Kết quả thử nghiệm và các nghiên cứu so sánh đã cho thấy rằng kỹ thuật được đề xuất có thể che giấu thông điệp một cách hiệu quả, với sự khác biệt nhỏ giữa ảnh phủ và ảnh stego Kết quả cũng cho thấy rằng cách phương án đề xuất có thể nhúng một lượng thông tin hợp lý
1 Giới thiệu
Kỹ thuật ẩn mã hình ảnh LSB là một cách tiếp cận phổ biến do tính không nhạy cảm và khả năng chịu tải tốt hơn của nó Mặc dù tính đơn giản của
nó, LSB truyền thống rất dễ bị tấn công vì xác suất phát hiện ra thông điệp
bí mật là cao Do đó, một loạt các phương pháp đã được đề xuất dựa trên kỹ
Trang 4thuật thay thế LSB Hầu hết các phương pháp hiện có đều cố gắng chọn một vùng hoặc các luồng bit của ảnh bìa và nhúng một thông điệp được mã hóa, với một khóa bí mật được sử dụng để giải mã thông điệp Mặc dù hiệu suất của các phương pháp này tốt hơn so với phương pháp thay thế LSB, việc giao tiếp khóa bí mật là một thách thức cũng như về hiệu quả tổng thể, thường các phương pháp này không được khai thác hết Một phiên bản LSB
đã sửa đổi có thể làm tăng tính không nhạy cảm và độ bền của kỹ thuật ẩn
mã hình ảnh LSB đã được đề xuất Thay vì lưu trữ các bit thông điệp trực tiếp ở các vị trí LSB, mỗi bit thông điệp sẽ được mã hóa và đặt vào một trong 3 kênh của điểm ảnh RGB Việc lựa chọn một kênh cụ thể được thực hiện trên cơ sở các bit MSB của điểm ảnh RGB đó, trong khi giá trị chẵn và
lẻ của kênh đã chọn đó sẽ làm sai lệch quá trình mã hóa của bit thông báo Mặc dù thuật toán được đề xuất có thể được áp dụng cho các định dạng ảnh không mất dữ liệu như BMP, GIF, PNG hoặc TIF, nhưng trong bản báo cáo này chỉ tập trung vào định dạng ảnh màu TIF 24-bit cho mục đích thử nghiệm
2 Lý thuyết liên quan
2.1 Thuật toán LSB cổ điển
Phương pháp giấu tin LSB thực hiện bằng cách thay đổi các bit quan trọng của mỗi màu trong 24 bit màu hoặc chèn vào các bit ít quan trọng của ảnh 8 bit
Ví dụ chữ A có mã ASCII là 65 ( thập phân ), có thể biểu diễn nhị phân là : 1000001 Để giấu chữ A vào trong ảnh, ta cần 3 điểm ảnh liên tiếp trong ảnh 24 bit màu Giả sử cho giá trị màu của 3 pixel trước khi chèn là : 10000000.10100100.10110101,10110101.11110011.10110111,11100111.1 0110011.00110011
Sau khi chèn, giá trị của các pixel màu sẽ như sau:
10000001.10100100.10110100.10110100.11110010.10110110.11100110.1
0110011.00110011
Ví dụ tương tự, cần giấu chữ A vào trong ảnh 8 bit màu, ta cần 8
pixel Giả sử giá trị của 8 pixel ban đầu như sau :
10000000,10100100,10110101,10110101,11110011,10110111,11100111,10
110011
Trang 5Sau khi chèn chữ A, giá trị của 8 điểm ảnh này sẽ như sau :
10000001,10100100,10110100,10110100,11110010,10110110,11100110,10
110011 (những giá trị đậm là những giá trị bị thay đổi) Từ những ví dụ trên, ta có thể suy luận ra rằng phương pháp chèn vào các bit ít quan trọng thường có 50% cơ hội để thay đổi một bit ít quan trọng trong 8 bit, vì thế không tạo ra sự thay đổi lớn đối với ảnh phủ Hay nói cách khác, ý tưởng cơ bản của kỹ thuật này là thay đổi các bit biểu biễn các giá trị mà khả năng tri giác của mắt người là kém nhất Ví dụ như thay đổi giá trị các bit biểu diễn thành phần màu xanh hay biểu diễn thành phần độ chói của điểm ảnh, là những giá trị mà với một sự thay đổi nhỏ thì ta khó phát hiện ra sự thay đổi
Hình 1: Thuật toán Least Significant Bit - LSB
2.2 Khái niệm chẵn lẻ
Thông thường, khái niệm chẵn lẻ được sử dụng nhiều trong truyền thông dữ liệu để phát hiện lỗi Đây là kỹ thuật gửi một bit dư thừa để xác minh tính toàn vẹn của dữ liệu nhận được Trong bài báo cáo này chỉ định nghĩa 'chẵn lẻ' là một số 1 trong một luồng nhị phân nhất định Nếu một luồng các bit có độ dài cụ thể L có một số chẵn của hệ nhị phân 1, thì tính chẵn lẻ của luồng này được coi là chẵn và chúng ta mô tả điều này là 1 Mặt khác, khi một luồng các bit có độ dài cụ thể L có số lẻ của hệ nhị phân 1, tính chẵn lẻ của luồng này được coi là lẻ và chúng ta mô tả giá trị này là 0 Chúng ta có thể dễ dàng tính toán xem một luồng là chẵn hay lẻ bằng cách thực hiện XNOR của tất cả các bit của một luồng
Ví dụ, B = X 1 X 2 X 3 X 4 X n có độ dài n bit thì tính chẵn lẻ là = X 1
xnorX 2 xnorX 3 xnorX 4 xnorX n Giá trị này là 1 hoặc 0 tương ứng với
chẵn hoặc lẻ
Trang 6Hình 2: Ví dụ về khái niệm chẵn lẻ
3 Phương pháp đề xuất
Trong phần này, phương phát đề xuất sẽ trình bày theo trình tự mô tả
mô hình, mã hóa và giải mã các thuật toán và giải thích quá trình mã hóa và giải mã
3.1 Mô tả về mô hình
Phương pháp đề xuất này sử dụng hình ảnh RGB 24-bit làm ảnh phủ Giống như các hình ảnh RGB 24-bit khác, mỗi hình ảnh phủ này là một tập hợp các pixel và mỗi pixel được biểu thị bằng 3 byte cho biết cường độ của các kênh đỏ, lục và lam trong pixel đó
Trong Hình 3 (a), trong quá trình nhúng, mỗi pixel của ảnh phủ được chuyển đổi thành một mảng byte gồm các kênh màu đỏ, xanh lục và xanh lam (RGB) hoặc các khối Tiếp theo, giá trị MSB của ba byte này (mỗi kênh
đỏ, lục và lam) của pixel này hoạt động như một chỉ báo xác định bit thông báo được giữ ở kênh nào Sau khi chọn kênh thích hợp, bây giờ bit thông điệp được nhúng vào kênh đã chọn bằng cách sử dụng mã hóa Mã hóa này được thực hiện với các khái niệm kiểm tra chẵn lẻ Nếu giá trị chẵn lẻ của kênh đã chọn trùng với bit thông điệp, thì không có sự thay đổi LSB của kênh đã chọn Bằng cách này, toàn bộ thông điệp được nhúng vào ảnh phủ Sau khi hoàn tất quá trình nhúng, hình ảnh được chuyển thành hình ảnh stego
Trong quá trình giải nén – được hiển thị trong Hình 3 (b), mỗi pixel của stego-image này được chuyển đổi thành một mảng byte gồm các kênh RGB trong đó MSB trong số ba byte chọn kênh mong muốn chứa các bit thông điệp
Cuối cùng, giá trị chẵn lẻ của kênh được chọn cho biết bit thông điệp mong muốn Bằng cách này, toàn bộ thông báo thu được bằng cách tổng hợp tất cả các bit thông điệp
Trang 7Hình 3: Cấu trúc tổng thể của kỹ thuật được đề xuất (a) Quy trình mã hóa (b) Quy
trình giải mã
3.2 Giải thích quy trình mã hóa và giải mã
Các mã giả sau đây mô tả cách các bit thông điệp được mã hóa trong ảnh phủ và được giải mã từ ảnh stego Xem xét các ký hiệu sau trong quá trình
mã hóa và giải mã :
M: thông điệp nhúng dài n bit
Mi: bit thứ i trong khối thông điệp
Ic: Ảnh phủ
Pir: Khối 8 bit của pixel từ ảnh phủ Ic(red channel), Pir[j]: bit thứ j trong khối
Pig: Khối 8 bit của pixel từ ảnh phủ Ic(green channel), Pig[j]: bit thứ j trong khối
Pib: Khối 8 bit của pixel từ ảnh phủ Ic(blue channel), Pib[j]: bit thứ j trong khối
Is: Ảnh stego
Pi r’: Khối 8 bit của pixel từ ảnh stego Is(red channel), Pi r’[j]: bit thứ j trong khối
Pi g’: Khối 8 bit của pixel từ ảnh stego Is(green channel), Pi g’[j]: bit thứ j trong khối
Trang 8Pi b’: Khối 8 bit của pixel từ ảnh stego Is(blue channel), Pi b’[j]: bit thứ j trong khối
Hình 4: Thủ tục để tính tính chẵn lẻ
Hình 5: Lựa chọn kênh màu
Hình 6: Quá trình mã hóa
Hình 7: Quá trình giải mã
3.2.1 Quá trình mã hóa
Để nhúng thông điệp vào ảnh phủ, Hình 6 cho thấy quy trình mã hóa cùng với các quy trình bổ sung được mô tả trong Hình 4 và 5 Theo thuật
Trang 9toán, để ẩn một bit thông điệp Mi vào một pixel ảnh phủ cụ thể, Pi (= Pir
hoặc Pig hoặc Pib) trong Ic, MSB của các kênh Pir, Pig và Pib được thu thập và thực hiện chia lấy dư với 3 Giá trị mod này tạo ra bất kỳ giá trị nào trong số
0, 1, 2 cho biết Pir (kênh màu đỏ), Pig (kênh màu xanh lá cây) và Pib (kênh màu xanh lam) tương ứng Bằng cách này, một kênh cụ thể được chọn để nhúng Sau đó, giá trị chẵn lẻ của kênh màu đã chọn Pix (= Pir hoặc Pig hoặc
Pib) được so sánh với bit thông điệp Mi Điều này rất quan trọng vì nó cho biết cách bit thông điệp này được mã hóa trong kênh đó Ví dụ: nếu giá trị chẵn lẻ của Pix là chẵn (p = 1) và bit thông điệp là 1, bit LSB của kênh này
sẽ không thay đổi, nhưng trong trường hợp bit thông điêp là 0, LSB đơn lẻ của kênh Pix đó được chuyển đổi Cách tiếp cận được đề cập ở trên thay đổi LSB của mỗi kênh RGB được chỉ định của Ic cho đến khi kết thúc quá trình nhúng của tất cả các bit thông điệp
Hình 8: Các hành động khi nhúng một bit thông điệp vào một kênh
Để minh họa thuật toán mã hóa, chúng ta lấy các bit thông điệp 1100
và bốn pixel của một ảnh phủ, với mỗi pixel chứa các kênh R, G và B Bit thông báo đầu tiên, là 1 phải được nhúng vào một trong các kênh của pixel đầu tiên MSB của ba kênh này là 1012 = 510 và sau khi tính môđun (5 mod 3), kết quả là 2 Lưu ý rằng modulo 3 cho biết số kênh Do đó, theo thuật toán, kênh màu xanh lam sẽ được chọn để nhúng các thông điệp Bây giờ, kênh màu xanh lam này có số lẻ là 1, vì vậy tính chẵn lẻ của nó là 0 Vì giá trị chẵn lẻ khác với bit thông báo, vị trí LSB của kênh màu xanh lam sẽ được chuyển cho biết bit thông điệp đã được nhúng Bằng cách này, bit thông điệp đầu tiên được nhúng Tương tự, các bit thông báo thứ 2, 3 và 4 được nhúng vào các pixel thứ 2, 3 và 4 Hình 3, minh họa quá trình này Cũng quan sát thấy rằng chỉ có hai LSB 4 pixel đã được thay đổi để nhúng 4 bit thông điệp
Trang 10Hình 9: Nhúng thông điệp bằng cách sử dụng phương pháp mã hóa được đề xuất
3.2.2 Quá trình giải mã
Quá trình giải mã bắt đầu với thuật toán giải mã được trình bày trong Hình 7, và các thủ tục bổ sung trong Hình 4 và Hình 5 Để trích xuất bit thông điệp bí mật Mi từ pixel ảnh stego Pi ′ = (Pir’, Pig’, Pib’) ở Is, kênh cụ thể
Pix’ (từ MSB của Pir’, Pig’ và Pib’) được chọn bằng cách thực hiện chia lấy dư các bit MSB với 3 Kênh được chọn này chứa bit thông điệp mong muốn, có thể thu được bằng giá trị chẵn lẻ của kênh này Giá trị chẵn lẻ (p = 1) của
Pix’ cho biết bit thông báo là 1, trong khi giá trị chẵn lẻ (p = 0) của Pix’ cho biết bit thông báo là 0 Quá trình lặp sẽ tiếp tục cho đến khi tất cả các bit thông điệp được trích xuất Có thể thấy rằng thông báo được trích xuất giống với thông báo được nhúng
Để giải thích quá trình giải mã bằng một ví dụ, chúng ta lấy bốn pixel của ảnh stego từ các bước mã hóa trước đó MSB của pixel đầu tiên là 1012
= 510 và chia lấy dư với 3 được 2 Do đó, bit thông điệp đầu tiên có thể được tìm thấy từ thành kênh màu xanh lam Vì giá trị chẵn lẻ của thành phần màu xanh lam là chẵn (1) nên bit thông điệp là 1 Tương tự, các bit thông điệp khác có thể được trích xuất từ phần còn lại của các pixel
Trang 11Hình 10: Trích xuất thông điệp từ hình ảnh Stego bằng cách sử dụng phương pháp
giải mã được đề xuất
4 Phân tích đánh giá kết quả
4.1 Cài đặt thử nghiệm và đánh giá chất lượng hình ảnh
Hình 11, cho thấy ảnh phủ và hình ảnh stego tương ứng của Lena với các ô biểu đồ màu cho cả ba kênh Có thể thấy rằng có rất ít sự khác biệt trong biểu đồ ảnh phủ và hình ảnh stego của Lena Đối với các hình ảnh khác, các đặc điểm tương tự cũng thu được
Hình 11: Ảnh phủ và biểu đồ RGB của ảnh phủ; Ảnh stego và biểu đồ RGB
Từ các kết quả thử nghiệm trên, rõ ràng là mỗi hình ảnh stego gần như tương
tự với hình ảnh phủ tương ứng Chất lượng hình ảnh giảm sút do việc nhúng các thông điệp bí mật không thể phân biệt được Phương pháp được đề xuất trên là an toàn và mạnh mẽ theo nghĩa là thuật toán thay đổi một số lượng nhỏ các bit trong
Trang 12quá trình nhúng một tin nhắn lớn và làm cho tin nhắn văn bản khó xác định Bên cạnh đó, nếu stego-analyzer vẫn phát hiện ra stego-images, thì việc tiết lộ các bit thông báo sẽ không dễ dàng do cách tiếp cận được đề xuất không đặt thông báo trực tiếp tại các vị trí LSB
4.2 Phân tích PSNR và MSE
- PSNR: Tỷ lệ tín hiệu cực đại nhiễu
Công thức tính PSNR và MSE
Khối PSNR tính tỷ lệ nhiễu tín hiệu cực đại, tính bằng db, giữa hai hình ảnh Tỷ
lệ này được sử dụng như một phép đo chất lượng giữa ảnh gốc và ảnh
nén PSNR càng cao, chất lượng của hình ảnh được nén hoặc tái tạo càng tốt
- MSE: Lỗi bình phương trung bình
Giá trị của MSE càng thấp, lỗi càng thấp
PSNR và MSE được sử dụng để so sánh chất lượng nén hình ảnh
Hình 12: Các giá trị MSE và PSNR
Trang 134.3 Phân tích theo size
Hình 13: Kích thước hình ảnh trước và sau khi mã hóa
5 Kết Luận
Trong bài báo này, đã đề ra cách tiếp cận mới để ẩn thông báo trong hình ảnh RGB không mất dữ liệu Nó trình bày một phương pháp ghi mật mã hình ảnh LSB được cải tiến trong đó mỗi bit thông điệp được mã hóa được nhúng vào một trong ba kênh RGB trên cơ sở MSB của các kênh, với việc mã hóa được thu được dựa trên các giá trị chẵn lẻ của kênh đã chọn đó Các kết quả thử nghiệm chứng minh rằng phương pháp chủ yếu cho thấy những cải tiến đáng
kể về tính không nhạy cảm và độ bền Mặc dù công suất không cao lắm, nhưng khả năng chịu tải cao hơn phải hy sinh để có độ nhạy cao hơn Đóng góp chính của nghiên cứu này là số lượng bit thông điệp bí mật được mã hóa thành các
vị trí LSB một cách hiệu quả bằng cách thay đổi tương đối một vài số bit ảnh bìa và không có sự tham gia trực tiếp của bất kỳ khóa mật mã nào Trong tương lai, chúng ta có thể mở rộng nghiên cứu của mình bằng cách thêm nhiều bit LSB (Kth LSB bit) Điều này có khả năng cải thiện năng lực của kỹ thuật
in ẩn hình ảnh Bên cạnh đó, việc sử dụng phương trình chuyển đổi khác trong việc lựa chọn kênh thích hợp có thể tăng cường tính bảo mật của stego-image