Các thuật toán dựa trên miền không gian che giấu thông điệp bí mật ngay lập tức theo cường độ pixel của một hình ảnh, trong khi trong các thuật toán dựa trên miền tần số, hình ảnh trước
Trang 1HỌC VIỆN KỸ THUẬT MẬT MÃ
KHOA AN TOÀN THÔNG TIN
BÁO CÁO MÔN HỌC
KỸ THUẬT GIẤU TIN
Đề tài:
A Hybrid Steganography System based on LSB
Matching and Replacement
Sinh viên thực hiện: NGUYỄN TRỌNG TUẤN AT150559
QUẢN ĐỨC THẮNG AT150552
LÊ MINH HÀ AT150515 NGUYỄN THỊ THANH HOA AT150519 NGUYỄN HỮU NGHĨA AT140530 Nhóm 5
Hà Nội, 2-2022
Trang 2MỤC LỤC
LỜI MỞ ĐẦU 3
CHƯƠNG 1: TỔNG QUAN MÃ HÓA DỰA TRÊN LSB 1
1.1 Giới thiệu 1
1.2 Phương thức mã hóa kĩ thuật LSB 1
1.3 Ứng dụng của kĩ thuật mã hóa LSB 2
CHƯƠNG 2: THUẬT TOÁN MÃ HÓA DỰA TRÊN LSB 4
2.1 Phân tích thuật toán 4
2.1.1 Giai đoạn nhúng 4
2.1.2 Giai đoạn trích xuất 7
2.1.3 Kết quả thực nghiệm và so sánh 9
2.2 Kết luận 11
TÀI LIỆU THAM KHẢO 14
Trang 3LỜI MỞ ĐẦU
Cuộc cách mạng thông tin kỹ thuật số đã đem lại những thay đổi sâu sắc trong
xã hội và trong cuộc sống của chúng ta Sự ra đời những phần mềm có tính năng rất mạnh, các thiết bị mới như máy ảnh kỹ thuật số, máy quét chất lượng cao, máy
in, máy ghi âm kỹ thuật số, v.v… đã với tới thế giới tiêu dùng rộng lớn để sáng tạo, xử lý và thưởng thức các dữ liệu đa phương tiện (multimedia data) Mạng Internet toàn cầu đã biến thành một xã hội ảo nơi diễn ra quá trình trao đổi thông tin trong mọi lĩnh vực chính trị, quân sự, quốc phòng, kinh tế, thương mại… Và chính trong môi trường mở và tiện nghi như thế xuất hiện những vấn nạn, tiêu cực như nạn ăn cắp bản quyền, nạn xuyên tạc thông tin, truy nhập thông tin trái phép v.v… Đi tìm giải pháp cho những vấn đề này không chỉ giúp ta hiểu thêm về công nghệ phức tạp đang phát triển rất nhanh này mà còn đưa ra những cơ hội kinh tế mới cần khám phá
Ở đây ta tìm hiểu về một kỹ thuật đã và đang được nghiên cứu và ứng dụng rất mạnh mẽ ở nhiều nước trên thế giới đó là kỹ thuật giấu tin Đây là kỹ thuật mới và phức tạp, nó đang được xem như một công nghệ chìa khoá cho vấn đề bảo vệ bản quyền, chứng thực thông tin và điều khiển truy cập… ứng dụng trong an toàn và bảo mật thông tin Trong báo cáo này tìm hiểu về kỹ thuật giấu tin trong ảnh dựa
trên LSB – đối sánh và thay thế
Nội dung được trình bày trong 2 chương:
Chương 1: Tổng quan mã hóa dựa trên LSB
Chương 2: Thuật toán mã hóa dựa trên LSB
Trang 4CHƯƠNG 1: TỔNG QUAN MÃ HÓA DỰA TRÊN LSB
1.1 Giới thiệu
Ngày nay việc truyền dữ liệu trên các kênh truyền thông kỹ thuật số thông qua internet đối mặt với hàng loạt các vụ kiện bảo mật Do đó, các kỹ thuật kỹ thuật số mạnh mẽ là cần thiết để bảo vệ dữ liệu trong quá trình truyền dữ liệu trên internet Một trong những giải pháp được quan tâm lớn được sử dụng để bảo vệ dữ liệu là steganography Steganography là nghệ thuật giao tiếp vô hình bằng cách ẩn một thông điệp bí mật trong một phương tiện kỹ thuật số như hình ảnh, văn bản, âm thanh, video và lưu lượng mạng, không rõ ràng Phương pháp LSB (LSB-M) còn được gọi là phương pháp nhúng ± 1 Trong lược đồ này, giá trị pixel của ảnh bìa được tăng hoặc giảm ngẫu nhiên một khi bit bí mật không bằng LSB của pixel ảnh bìa LSB-M thay đổi cả biểu đồ của một hình ảnh và mối tương quan giữa các pixel liền kề và điều này giúp các phương pháp phân tích mật mã tấn công phương pháp này Bởi vì hình ảnh kỹ thuật số có rất nhiều dữ liệu dư thừa, nên ngày càng
có nhiều sự quan tâm đến việc sử dụng chúng làm phương tiện che cho các mục đích mật mã
1.2 Phương thức mã hóa kĩ thuật LSB
Thuật toán ẩn ảnh có thể được phân loại theo miền nhúng thành hai lớp chính: miền không gian và các thuật toán dựa trên miền tần số Các thuật toán dựa trên miền không gian che giấu thông điệp bí mật ngay lập tức theo cường độ pixel của một hình ảnh, trong khi trong các thuật toán dựa trên miền tần số, hình ảnh trước tiên được chuyển thành miền tần số của nó và thông điệp bí mật sau đó được che giấu trong các hệ số biến đổi
Thay thế LSB là một trong những phương pháp nổi tiếng nhất trong miền không gian Trong phương pháp này, một dữ liệu bí mật được ghép vào ảnh bìa bằng cách thay thế các LSB của pixel ảnh bìa bằng các bit dữ liệu bí mật để có được ảnh stego Đối với ảnh bìa, thay thế LSB bằng cách tăng các pixel chẵn lên một hoặc không thay đổi, trong khi giảm các pixel lẻ xuống một hoặc không thay đổi Do hệ thống thị giác của con người (HVS) có độ nhạy yếu, nên không thể nhận biết được sự hiện diện của dữ liệu bí mật được nhúng
Chất lượng của hình ảnh stego được trình bày bởi thay thế LSB có thể không chịu được nếu một lượng lớn LSB được sử dụng trong quá trình nhúng Trong một vài trường hợp, hình ảnh stego có thể đạt được mức thấp nhất là 31,78 dB của
Trang 5PSNR bằng cách sử dụng thay thế LSB-4 Nhiều phương pháp mật mã đáng tin cậy đã được đưa ra cho phương pháp thay thế LSB
Một phương pháp được gọi là phức hợp dựa trên LSB-M (CBL) Phương pháp này sử dụng LSB-M để tăng khả năng chống lại các cuộc tấn công CBL sử dụng phân tích vùng lân cận cục bộ để xác định các vị trí an toàn của hình ảnh và sau đó nó sử dụng LSB-M cho mục đích nhúng
Phương pháp kết hợp sử dụng cả hai phương pháp thay thế LSB-M và LSB là một cải tiến so với phương pháp CBL để tăng cả khả năng nhúng và độ mạnh mẽ Cách tiếp cận được đề xuất lưu trữ 2 bit của các bit bí mật trong một pixel Một bit được lưu trữ trong bit thứ 7 bằng kỹ thuật LSBM; bit còn lại được lưu trữ ở bit thứ 8 bằng cách sử dụng công nghệ thay thế LSB Do đó, dung lượng nhúng tối đa được tăng lên gấp đôi (1,6) bit trên mỗi pixel (bpp) so với dung lượng nhúng tối
đa của CBL (0,8) Cách tiếp cận này không tạo ra bất kỳ biến dạng nào mà những người quan sát trái phép nghi ngờ và mang lại chi phí tính toán thấp hơn trong quá trình nhúng và chiết xuất của nó Hơn nữa, nó cung cấp khả năng chống lại hầu hết các cuộc tấn công xử lý hình ảnh mạnh mẽ hơn
1.3 Ứng dụng của kĩ thuật mã hóa LSB
Tài liệu có giá trị đóng góp trong lĩnh vực LSB steganography Công việc trong pixel-value được đề xuất phương pháp khác biệt (PVD) Ý tưởng chính đằng sau PVD là sử dụng sự khác biệt của hai pixel liên tiếp của thang độ xám hình ảnh để
ẩn dữ liệu Trong phương pháp này, sự khác biệt về giá trị pixel được dùng để phân biệt giữa vùng cạnh và vùng nhẵn
Do đó, dung lượng của dữ liệu nhúng trong các khu vực cạnh cao hơn so với các khu vực nhẵn Gần đây, để phóng to hiệu quả nhúng trên phương pháp PVD, rất nhiều phương pháp đã được đề xuất bằng cách kết hợp các phương pháp thay thế PVD và LSB Với một chút thay đổi so với bản gốc kỹ thuật PVD, kỹ thuật đối sánh bên dựa trên về mối tương quan của một pixel với các pixel lân cận của nó cũng đã được phát triển Các phương pháp so khớp bên 4 cạnh bằng cách sử dụng mối tương quan của một pixel mục tiêu với 2, 3 và 4 pixel lân cận của nó
Không giống với thay thế LSB và LSB-M, LSB-MR sử dụng một cặp pixel làm đơn vị ẩn thay vì một pixel Phương pháp này sử dụng thang độ xám hình ảnh Quá trình nhúng được thực hiện trên pixel cặp (gi, gi + 1) tại một thời điểm để nhúng một cặp bit bí mật (bi, bi + 1) Cặp pixel stego tương ứng (g0i, g0i+1) có thể là có được bằng cách giữ gi và gi + 1 không thay đổi hoặc bằng cách tăng hoặc giảm chúng đi một Phương pháp sử dụng hàm:
Trang 6y = f (gi, gi + 1) = LSB (bgi / 2c + gi + 1)
để đánh giá các giá trị pixel gi và gi + 1 cần thay đổi Tuy nhiên, trung bình tốc độ nhúng (bpp) cho cả LSB-M và LSB-MR là khoảng 1 bpp thấp
Thuật toán mật mã thích ứng LSB-M được gọi là phức hợp dựa trên LSB-M (CBL) Họ đã sử dụng 8 vùng lân cận của pixel để xác định độ phức tạp để nhúng
dữ liệu trong vùng đó Họ đã sử dụng LSB-M để nhúng dữ liệu Hạn chế của thuật toán CBL là giá trị thấp khả năng nhúng trong đó nó không thể nhúng nhiều hơn một bit trong một pixel Nhược điểm này được khắc phục trong công việc đề xuất bằng cách sử dụng các kỹ thuật thay thế LSB-M và LSB để tăng khả năng nhúng Một thuật toán ẩn dữ liệu dựa trên về nội suy, thay thế LSB và dịch chuyển biểu
đồ Trong nội suy công việc này được sử dụng để điều chỉnh khả năng nhúng với
độ méo hình ảnh thấp, quá trình nhúng sau đó được áp dụng bằng cách sử dụng phương pháp thay thế LSB và dịch chuyển biểu đồ Thay thế LSB được cải thiện bằng cách sử dụng một chút kỹ thuật đảo ngược Trong công việc này dữ liệu bí mật được ẩn sau khi nén các vùng mịn của hình ảnh, dẫn đến số lượng pixel ảnh bìa được sửa đổi ít hơn Một chút kỹ thuật sau đó được áp dụng khi các LSB nhất định của pixel được sửa đổi nếu chúng xảy ra trong một mẫu cụ thể Một phương pháp ẩn dữ liệu ngược sử dụng phép nội suy và thay thế LSB được đề xuất Phép nội suy lần đầu tiên được sử dụng để chia tỷ lệ lên và xuống ảnh bìa trước khi ẩn
dữ liệu bí mật để đạt được dung lượng nhúng cao với độ méo ảnh thấp
Sau đó, quá trình nhúng được thực hiện bằng phương pháp thay thế LSB
Trang 7CHƯƠNG 2: THUẬT TOÁN MÃ HÓA DỰA TRÊN LSB
2.1 Phân tích thuật toán
2.1.1 Giai đoạn nhúng
Trong giai đoạn nhúng, thuật toán sẽ nhúng 2 bit vào các pixel có giá trị độ phức tạp bằng hoặc hơn giá trị ngưỡng Một bit được nhúng bằng LSB-M trong bit thứ bảy từ bên trái; một bit khác được nhúng bằng cách sử dụng thay thế LSB trong bit ít quan trọng nhất Giai đoạn nhúng được minh họa trong sơ đồ dưới đây:
Hình 1 - 1: Sơ đồ quy trình của giai đoạn nhúng
Bước 1: Khởi tạo
Trong bước này, các biến được khởi tạo như sau:
Tạo PRNG seed
Trang 8CI ← ảnh bìa
CCI ← bản sao của ảnh bìa
[M,N] ← kích thước của ảnh bìa
trong đó PRNG là trình tạo số ngẫu nhiên giả, PRNG được khởi tạo bởi một hạt giống, là một số phải được chọn và chia sẻ giữa người gửi và người nhận
Bước 2: Hình thành hình ảnh thứ cấp
Trong bước này, bit có trọng số thấp nhất của mỗi pixel trong CI bị loại bỏ và chỉ 7 bit đầu tiên được sử dụng để tạo hình ảnh thứ cấp Hình ảnh này sẽ được sử dụng để tính toán các giá trị phức tạp của pixel trong bước tiếp theo Sử dụng hình ảnh thứ cấp giúp máy thu để nhận cùng một giá trị độ phức tạp Quy trình dưới đây tạo ra hình ảnh này
for each pixel CI(x; y) do
r ←random number ∈ [0; 1]
CI(x; y) = bitshift(CI(x; y); −1)
if CI(x; y) is odd then
if r ≤ 0.5 then
CI(x; y) ← CI(x; y) + 1
else
CI(x; y) ← CI(x; y) − 1
end if end if
end for
trong đó hàm bithift sẽ chuyển các bit pixel sang phải, vì vậy nó sẽ loại bỏ bit ít quan trọng nhất Ví dụ: nếu giá trị pixel là (215)10 = (11010111)2, thì giá trị pixel sau quá trình dịch chuyển sẽ là (1101011)2 = (107)10
Bước 3: Tính độ phức tạp của pixel
Độ phức tạp của mỗi pixel được tính bằng cách cộng các giá trị tuyệt đối của sự khác biệt của pixel với các pixel lân cận như sau:
Giá trị độ phức tạp là chỉ báo về loại vùng mà pixel đó thuộc về; cạnh hoặc vùng nhẵn Nơi nhiều dữ liệu hơn có thể được nhúng vào các vùng cạnh mà không tạo
ra bất kỳ nghi ngờ nào Giá trị độ phức tạp cao cho biết pixel nằm trong vùng cạnh, trong khi giá trị thấp cho biết pixel nằm trong vùng mịn
Trang 9Bước 4: Tính toán ngưỡng
Giá trị độ phức tạp của pixel được so sánh với một ngưỡng; các giá trị lớn hơn hoặc bằng ngưỡng cho biết vùng cạnh và vùng mịn nếu không Để tính toán giá trị ngưỡng, số lượng pixel được nhúng (NP) phải được tính bằng cách sử dụng NP
= SB = 2, trong đó SB đề cập đến tổng số bit bí mật được nhúng Giá trị ngưỡng T được chọn để đảm bảo rằng ít nhất NP của các pixel là phức tạp Quy trình sau đây cho thấy T được tính như thế nào
T0←127
n ← 0 L:
for each pixel Complexity(x; y) do
if t0 ≥ Complexity(x; y) then
n ←n + 1
end if end for
if n < NP AND t0≠ 0 then
t0 = t0 − 1
go to L
else
T = t0
end if
trong đó t0 là giá trị tạm thời của ngưỡng, bắt đầu bằng giá trị lớn nhất của pixel 7 bit
Bước 5: Nhúng
Trong bước này, dữ liệu bí mật được nhúng bằng kỹ thuật thay thế LSB-M và LSB Hai bit được nhúng vào mỗi pixel đã chọn; bit đầu tiên được nhúng bằng LSB-M như trong CBL nhưng ở vị trí bit thứ 7, bit thứ 2 được nhúng vào bit có trọng số thấp nhất bằng cách sử dụng thay thế LSB
Mã giả sau đây trình bày quy trình nhúng, trong đó s là chuỗi các bit thông điệp và
SI là hình ảnh stego
Bốn dòng cuối cùng của thuật toán trình bày sửa đổi được đề xuất ở bước này Giá trị pixel đã chọn của hình ảnh phụ được chuyển đổi thành 7 bit nhị phân bằng cách sử dụng hàm dec2bin và được lưu trữ trong conca Một trong những bit bí
Trang 10mật được nối với 7 bit trong conca bằng cách sử dụng hàm strcat và được lưu trữ trong emb Cuối cùng, 8 bit trong emb được chuyển đổi thành giá trị thập phân bằng cách sử dụng hàm bin2dec và giá trị kết quả được lưu trữ trong SI
set PRNG
n ← 0
for each pixel CI(x; y) do
r ← random number ∈ [0; 1]
if CI(x; y) = 0 OR Complexity(x; y) < T then
SI(x; y) ← CCI(x; y)
else
if CI(x; y) mod 2 ≠ s(n) then
if r ≤ 0,5 then
SI(x; y) ← CI(x; y) − 1
else
SI(x; y) ← CI(x; y) + 1
end if end if
n ← n + 1 conca ← dec2bin(SI(x; y); 7) emb← strcat(conca; s(n)) SI(x; y) ← bin2dec(emb)
n ← n + 1
end if
end for
2.1.2 Giai đoạn trích xuất
Trong giai đoạn trích xuất cũng giống như trong giai đoạn nhúng trong bốn bước đầu tiên, ngoại trừ việc sử dụng hình ảnh stego SI thay vì hình ảnh gốc để tạo hình ảnh phụ và tính toán độ phức tạp Tạo một bản sao của hình ảnh stego CSI để sử dụng trong bước trích xuất
Trang 11Hình 1 - 2: Sơ đồ quy trình của giai đoạn trích xuất
Sau khi thực hiện xong bốn bước đầu tiên của giai đoạn, bước 5 thực hiện trích xuất bằng cách trích xuất 2 bit quan trong nhất của mỗi pixel được gán nhãn là phức tạp
Quy trình trích xuất:
n←0
for each pixel SI (x, y) do
if SI (x,y) ≠ 0 AND Complexity(x; y) ≥ T then
sec←CSI(x; y) mod 4 s(n : n + 1)←dec2bin(sec) n←n + 2
end if
end for
Trong đó mod 4 được sử dụng để trích xuất 2 bit có ý nghĩa nhỏ nhất dưới dạng
số thập phân, hàm dec2bin được sử dụng để chuyển đổi số thập phân thành 2 bit nhị phân được lưu trữ bởi s
Trang 122.1.3 Kết quả thực nghiệm và so sánh
Tại đây, các kết quả thực nghiệm được trình bày để chứng minh hiệu suất của thuật toán được đề xuất Một số hình ảnh kiểm tra thang độ xám có kích thước
512 × 512 đã được sử dụng Mẫu của những hình ảnh này được thể hiện trong hình 1-3:
Hình 1 - 3: Hình ảnh thử nghiệm mẫu được sử dụng trong các thí nghiệm
Nói chung, các thuật toán mật mã có thể được đánh giá bằng hai điểm chuẩn là
tỷ lệ nhúng và độ nhạy bén (hoặc chất lượng của hình ảnh stego) Tốc độ nhúng (ER) được định nghĩa là số lượng bit dữ liệu bí mật có thể được nhúng trên mỗi pixel, nó có thể được tính là:
trong đó:
SB là tổng số bit bí mật được nhúng,
M và N lần lượt là chiều rộng và chiều cao của ảnh bìa
Để đánh giá chất lượng của bức ảnh (hay khung ảnh video) ở đầu ra của bộ mã hoá, người ta thường sử dụng hai tham số: Sai số bình phương trung bình – MSE (mean square error) và phương pháp đề xuất với hệ số tỷ lệ tín hiệu/tín hiệu tạp PSNR (Peak Signal to Noise Ratio) PSNR, đơn vị: deciben (dB), thường được sử dụng trong nghiên cứu xử lý hình ảnh:
Trang 13trong đó: MAX là giá trị lớn nhất của cường độ pixel, ví dụ: MAX = 255 đối với hình ảnh thang độ xám 8 bit MSE giữa ảnh gốc và ảnh khôi phục được tính như sau:
Ở đây: CI(ij) biểu thị giá trị điểm ảnh gốc, và SI(ij) biểu thị giá trị điểm ảnh đã được biến đổi, M và N lần lượt là chiều rộng và chiều cao của ảnh
Thông thường, nếu PSNR ≥ 37 dB thì hệ thống mắt người gần như không phân biệt được giữa ảnh gốc và ảnh khôi phục PSNR càng cao thì chất lượng ảnh khôi phục càng tốt Khi hai hình ảnh giống hệt nhau, MSE sẽ bằng 0 và PSNR đi đến
vô hạn
Hình 6 cho thấy hình ảnh stego cho 5 hình ảnh bìa bằng cách sử dụng thuật toán được đề xuất Giá trị PSNR nằm trong khoảng từ 47,77dB đến 48,13dB khi tốc độ nhúng là 0,8 bpp và từ 44,93dB đến 45,09dB khi tốc độ nhúng là 1,6 bpp Tuy nhiên, trong mọi trường hợp, không có sự biến dạng nào cần nhận biết bởi mắt người Để đánh giá cách tiếp cận được đề xuất, một so sánh là được tiến hành với các phương pháp tiếp cận khác: PVD và CBL Hình 1-4 trình bày so sánh này, trong đó bốn tỷ lệ nhúng (0,3, 0,5, 0,8 và 1,6 bpp) được sử dụng cho mỗi phương pháp, và PSNR trung bình được tính cho 10 hình ảnh thử nghiệm
Hình 1 - 4: So sánh ER và PSNR average giữa phương pháp chống PVD và CBL