ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
KHOA: CÔNG NGHỆ THÔNG TIN
DƯ CÔNG THÀNH
Tìm hiểu về giấu tin trong ảnh số
Môn học: Mật mã và an toàn dữ liệu
Ngành: Hệ thống thông tin
Cán bộ hướng dẫn: PGS. TS. Trịnh Nhật Tiến
MỤC LỤC
1. Giới thiệu chung
Hiện nay, giấu thông tin trong ảnh là một bộ phận chiếm tỷ lệ lớn nhất trong các
chương trình ứng dụng, các phần mềm, hệ thống giấu tin trong đa phương tiện bởi lượng
thông tin được trao đổi bằng ảnh là rất lớn và hơn nữa giấu thông tin trong ảnh cũng đóng
vai trò hết sức quan trọng trong các hầu hết các ứng dụng bảo vệ an toàn thông tin như:
nhận thực thông tin, xác định xuyên tạc thông tin, bảo vệ bản quyền tác giả, điều khiển
truy cập, giấu thông tin mật Chính vì thế mà vấn đề này đã nhận được sự quan tâm rất
lớn của các cá nhân, tổ chức, trường đại học, và viện nghiên cứu trên thế giới.
Thông tin sẽ được giấu cùng với dữ liệu ảnh nhưng chất lượng ảnh ít thay đổi và
chẳng ai biết được đằng sau ảnh đó mang những thông tin có ý nghĩa. Và ngày nay, khi
ảnh số đã được sử dụng rất phổ biến, thì giấu thông tin trong ảnh đã đem lại nhiều những
ứng dụng quan trọng trên các lĩnh vực trong đời sống xã hội. Ví dụ như đối với các nước
phát triển, chữ kí tay đã được số hoá và lưu trữ sử dụng như là hồ sơ cá nhân của các dịch
vụ ngân hàng và tài chính. Nó được dùng để nhận thực trong các thẻ tín dụng của người
tiêu dùng.
Hay trong một số những ứng dụng về nhận diện như thẻ chứng minh, thẻ căn
cước, hộ chiếu…người ta có thể giấu thông tin trên các ảnh thẻ để xác định thông tin
thực. Ví dụ như hình vẽ bên là một thẻ chứng minh đã được giấu tin trong ảnh. Thông tin
giấu là số thẻ trùng với số đã được in rõ ở trên thẻ
Phần mềm WinWord của MicroSoft cũng cho phép người dùng lưu trữ chữ kí
trong ảnh nhị phân rồi gắn vào vị trí nào đó trong file văn bản để đảm bảo tính an toàn
dàng so với ảnh gốc. Yêu cầu này giường như quá đơn giản đối với ảnh màu và ảnh xám
bởi mỗi pixel ảnh được biểu diễn bởi nhiều bit, nhiều giá trị và khi ta thay đổi một giá trị
nhỏ nào đó chất lượng ảnh không thay đổi, thông tin giấu khó bị phát hiện, nhưng đối với
ảnh đen trắng thì việc giấu thông tin phức tạp hơn nhiều, vì ảnh đen trắng mỗi pixel ảnh
chỉ có hai giá trị đen hoặc trắng, và nếu ta biến đổi một bit từ đen thành trắng mà không
khéo thì sẽ rất bị phát hiện. Do đó yêu cầu với các kỹ thuật giấu tin trong ảnh màu hay
ảnh xám và giấu thông tin trong ảnh đen trắng là khác nhau. Trong khi đối với ảnh màu
thì các thuật toán chú trọng vào việc làm sao cho giấu dược càng nhiều thông tin càng tốt
thì các thuật toán áp dụng cho ảnh đen trắng lại tập trung vào làm thế nào để thông tin
giấu khó bị phát hiện.
Thông tin trong ảnh sẽ bị biến đổi nếu có bất kỳ một biến đổi nào trên ảnh.
Vì phương pháp giấu ảnh dựa trên việc điều chỉnh các giá trị của các khối bit theo một
quy tắc nào đó và khi giải mã sẽ theo các giá trị đó để tìm được thông tin giấu. Theo đó,
nếu một phép biến đổi nào đó trên ảnh sẽ làm thay đổi giá trị của các bit thì sẽ làm thông
tin sai lệch. Chính đặc điểm này mà giấu thông tin trong ảnh có tác dụng nhận thực và
phát hiện xuyên tạc thông tin. f Không cần ảnh gốc khi giải mã ảnh Thông tin được giấu
trong ảnh sẽ được mang cùng dữ liệu ảnh, khi giải mã chỉ cần ảnh đã mang thông tin mà
không cần dùng đến ảnh gốc để so sánh đối chiếu.
3. Các thuật toán giấu tin trong ảnh
Bài toán: Giả sử ta có đề thi quan trọng B cần gửi qua mạng. Người ta dùng một
ảnh môi trường F đủ lớn để giấu đề thi, sau đó gửi đi bức ảnh đã chứa thông tin đề thi mà
không sợ bị nghi ngờ về sự tồn tại thông tin trong đó. Sử dụng một kỹ thuật giấu tin trong
ảnh (chọn khoá bí mật K và có thể kết hợp với ma trận trọng số) ta biến đổi ảnh F thành
ảnh F’ có mang lượng tin trên mà không làm cho F’ sai khác nhiều so với F. Để thu được
thông tin đề thi B đã giấu, chỉ cần có ảnh kết quả và các khoá mà không cần đến ảnh môi
trường.
Kí hiệu:
F: Ảnh môi trường được dùng để mang dữ liệu B, được chia thành từng khối Fi kích
thước m*n.
K: Dùng chung bởi người gửi và người nhận (nếu K là ma trận khoá thì có kích thước
i
TH1: Nếu (S mod 2=b) thì không thay đổi F
i
.
TH2: Nếu ( S mod 2!=0) thì sẽ thay đổi một phần tử (h, g) trên F
i
từ 1=>0 hoặc từ 0=>1
tại K(h, g) ==1. Khi đó xét 3 khả năng sau:
a ) Nếu S=1 tìm phần tử (h, g) thoả mãn K[h, g] = 1 và Fi [h, g] = 0 và thay Fi [h, g] = 1.
b) Nếu S = S
k
-1 tìm (h,g) thoả mãn K[h,g] =1 và F
i
[h,g] =1 và gán F
i
[h,g]= 0;
c) Nếu 2 <= S < S
k
– 1 thì chọn ngẫu nhiên (h,g) thoả mãn K[h,g] = 1 và đảo bit F
i
[h,g]
có nghĩa giá trị của F
i
[h,g] sẽ từ 0=>1 hoặc 1=>0.
Ví dụ: Chuỗi bit cần giấu là 010
F
1
1
1
1
3
’
F
0 1
0 1
0 0
1 1
1 1
0 1
1 0
1 0
F
4
’
F là một ma trận khối ảnh có kích thước 8 x 8 và K là một ma trận ảnh có kích thước là 4
x 4. Trước tiên ta chia F thành 4 khối F
1
, F
2
, F
3
, F
4
.
Vì Sum(F1⊗ K) = 1 nên ta chọn K[2,2] = 1 và F1[2,2] = 0 và đổi F1[2,2] = 1.
Vì Sum (F2⊗K ) = Sk – 1 nên ta chọn K[3,3] = 1 và F2[3,3] = 1 và đổi F2[3,3] = 0.
Vì Sum(F3⊗K )=4 nên ta chọn K[3,4]= 1 và đổi F3[3,4]=0.
Giải mã:
Phương pháp trên cho phép giấu nhiều nhất 1 dữ liệu trong một khối.
Giả sử F(i) được biến đổi thành Fi’ thì ta có bất biến sau:
1 1
0 1
0 0
0 1
0 0
1 0
F
3
’
0
0
0
1
1
0
1
1
F
4
’
F là một khối ảnh có kích thước 6 x 6 và K là một ảnh có kích thước 3 x 3. trước
tiên ta chia F thành 4 khối F
1
, F
2
, F
3
, F
4
. Vì Sum(F
nghi ngờ.
3.3 Giấu tin trong ảnh màu bằng mã hóa LSB
Kết quả thực nghiệm cho thấy việc sử dụng ảnh đen trắng làm ảnh môi trường
đem lại hiệu quả rất thấp vì việc biến đổi điểm ảnh từ đen sang trắng hay trắng sang đen
rất dễ tạo ra các nhiễu trên ảnh và dễ bị phát hiện bởi hệ thống thị giác của con người.
Hơn nữa ảnh đen trắng cung cấp lượng dữ liệu tương đối nhỏ để thực hiện các thao tác
giấu tin. Ví dụ như một bức ảnh đen trắng kích thước 300*300 pixel chỉ cung cấp cho ta
một lượng dữ liệu vào khoảng 90 kilobytes (kB) trong khi một bức ảnh 24 màu kích
thước tương ứng có thể cho tới 2000 kB. Hạn chế này được khắc phục bằng cách sử dụng
ảnh màu và ảnh đa cấp xám làm ảnh môi trường.
Đối với việc chọn ảnh màu và ảnh đa cấp xám làm ảnh môi trường ta cần thực
hiện thêm một bước xử lý nữa. Trước hết ta quan tâm tới khái niệm bit ít đặc trưng nhất
(Least Significant Bit hay - LSB). LSB là bit có ảnh hưởng ít nhất tới việc quyết định
màu sắc của mỗi điểm ảnh, vì vậy khi ta thay đổi bit ít đặc trưng nhất của một điểm ảnh
thì màu sắc của điểm ảnh mới sẽ tương đối gần với điểm ảnh cũ. LSB của một điểm ảnh
cũng tương tự như chữ số hàng đơn vị của một số tự nhiên, khi ta thay đổi giá trị của chữ
số này thì chênh lệch giữa số cũ và số mới sẽ ít hơn khi ta thay đổi giá trị của chữ số hàng
chục hoặc hàng trăm. Việc xác định LSB của mỗi điểm ảnh trong một bức ảnh phụ thuộc
vào định dạng của ảnh và số bit màu dành cho mỗi điểm của ảnh đó.
Quá trình giấu tin vào ảnh màu và đa cấp xám cũng tương tự như với ảnh đen
trắng nhưng trước hết ta chọn từ mỗi điểm ảnh ra từ ít đặc trưng nhất để tạo thành một
ảnh nhị phân gọi là ảnh thứ cấp. Sử dụng ảnh thứ cấp này như là ảnh môi trường để giấu
tin, sau khi biến đổi ảnh thứ cấp ta trả nó lại ảnh ban đầu để thu được ảnh kết quả.
Ảnh màu và ảnh đa cấp xám cho hiệu quả cao hơn ảnh đen trắng vì việc thay đổi
bit ít đặc trưng nhất trong những ảnh này dường như không làm thay đổi màu sắc của
điểm ảnh trong việc thay đổi mỗi bit trong ảnh đen trắng làm cho điểm ảnh chuyển màu
từ đen sang trắng hoặc ngược lại từ trắng sang đen do đó rất dễ bị phát hiện.
Đối với ảnh 16 bit màu hoặc 24 bit màu việc xác định LSB tương đối đơn giản,
tuy nhiên đối với ảnh nhỏ hơn hoặc bằng 8 bit màu (những ảnh có sử dụng bảng màu) thì
rất phức tạp. Khó khăn này có thể khắc phục nếu ta sắp lại bảng màu cuả ảnh hoặc sử
Mỗi pixel lại có một màu sắc riêng phụ thuộc vào sự thay đổi % của 3 màu là đỏ ,xanh
lục và xanh gọi là (RGB) .
Mỗi phần của 3 màu đó lại có giá trị số hóa nằm trong khoảng 0-255 .Do đó mỗi
pixel thường có 24 bit .Vậy tương ứng sẽ có 256*256*256 =16,777,216 màu khác
nhau .một số màu cơ bản như :
Đỏ là 255 0 0 (11111111 00000000 00000000)
Xanh lục là 0 255 0 (00000000 1111111 00000000)
Đen là 0 0 0 (00000000 00000000 00000000)
Trắng là 1 1 1 (11111111 1111111 1111111)
Với mỗi pixel chúng ta có thể thay thế các trọng số thấp nhất thì với mắt thường cũng
không thể xác định được là có sự thay đổi .
Ta lấy một ví dụ :
2 hình vuông trên nhìn bằng mắt thường và có thể phóng to nhìn bằng các chương
trình xem ảnh đi nữa thì chúng ta cũng không thể nào phân biệt được sự khác nhau
giữa 2 hình ảnh này .
Hình 1 Màu xanh với mã màu (0 0 255)
Hình 2 Màu xanh với mã màu (0 0 254)
Có một phương pháp khá thông dụng để ẩn thông điệp vào trong một bức ảnh đó
là giải thuật LSB cụ thể:
- Chúng thay thế một số bít của file ảnh gốc để ẩn tuần tự các byte của thông điệp
cần ẩn vào trong bức ảnh
- Ứng dụng giải mã sẽ đọc từng bit cuối cùng của từng byte rồi tái tạo lại thông tin
và chúng ta có thể nhận diện được thông điệp.
KẾT LUẬN
Cùng với giấu thông tin trong audio và giấu thông tin trong video, kỹ thuật giấu
thông tin trong ảnh là những hướng nghiên cứu chính của thuật toán giấu thông tin hiện
nay và đã đạt được những kết quả khả quan. Mặc dù so với hai kỹ thuật trước, kỹ thuật
giấu thông tin trong ảnh bị hạn chế về mặt kích thước của ảnh so với hai kỹ thuật trên.
Nhưng ảnh số vẫn được các nhóm nghiên cứu lựa chọn cho việc giấu thông tin vì ảnh số
cho phép thực hiện các thao tác tới từng điểm ảnh đơn lẻ. Ngoài ra hệ thống thị giác của
Color Images. Journal of Electronic Imaging 3 No.1 (1994) 45-59.ckW.
6. M. Wu, J. Lee. A novel data embedding method for two – color Fastcimile image. In
Proceeding of international symposium on multimedia information processing. Chung-
Li, Taiwan, R.O.C, 1998.