0
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Nguyễn Thanh Cường
GIẤU TIN TRONG ẢNH VÀ ỨNG DỤNG
TRONG AN TOÀN BẢO MẬT THÔNG TIN
KHÓA LU
Ậ
N TỐT NGHI
Ệ
P Đ
Ạ
I H
Ọ
C H
Ệ
CHÍNH
Q
UY
HÀ NỘI - 2009
Ngành: Công nghệ thông tin
1 ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
những ngày đầu chập
chững bước vào cánh cổng trường Đại học. Thầy cô đã tạo cho chúng em môi trường
học tập, những điều kiện thuận lợi cho chúng em được học tập tốt, trang bị cho chúng
em những kiến thức quý báu giúp chúng em có thể vững bước trong tương lai.
Cảm ơn các bạn cùng lớp đã giúp đỡ, cùng nghiên cứu và chia sẻ trong suốt 4
năm học Đại học.
Cuối cùng, xin g
ửi muôn vàn lời yêu thương, lòng biết ơn tới những người
thân yêu nhất của tôi!
Hà Nội, 2009
Nguyễn Thanh Cường
2
Tóm tắt nội dung
Luận văn đã trình bày một số khái niệm liên quan tới việc che giấu thông tin nói
chung, cụ thể hơn là giấu thông tin trong ảnh số và cũng trình bày một thuật toán giấu
tin trong ảnh đen trắng, trên cơ sở đó phát triển thuật toán cho việc giấu tin trong ảnh
màu và ảnh đa cấp xám. Giấu thông tin có thể chia làm hai hướng lớn đó là thủy vân
số (watermarking) và giấu tin mật (steganography). Trong luận văn chủ yếu nghiên
cứu theo hướ
ng giấu tin mật trong ảnh.
Với thuật toán giấu tin mật trong ảnh mầu thì tính vô hình của thông tin sau khi
giấu được đảm bảo, thông qua việc chọn các tham số đảm bảo độ an toàn để giấu tin,
những biến đổi không gây ra sự chú ý đáng kể nào. Ảnh sau khi giấu tin sẽ ít xuất hiện
những điểm ảnh có màu sắc khác so với các điểm ảnh xung quanh và với thị giác của
con người thì không thể phân biệ
t được sự khác nhau đó. Trong khóa luận còn trình
bày một số kĩ thuật giấu tin trong ảnh và xây dựng một chương trình demo giấu tin
4
3.2. Ngôn ngữ thực hiện thuật toán. 49
3.3. Tổ chức và thực hiện chương trình 49
3.3.1. Qui trình thực hiện chính 50
3.3.2. Các giao diện chính của chương trình và kết quả đạt được 51
KẾT LUẬN 55
TÀI LIỆU THAM KHẢO 575
MỞ ĐẦU
Ngày nay, cùng với sự phát triển mạnh mẽ của ngành khoa học công nghệ
thông tin, internet đã trở thành một nhu cầu, phương tiện không thể thiếu đối với mọi
người, việc truyền tin qua mạng ngày càng lớn. Tuy nhiên, với lượng thông tin được
truyền qua mạng nhiều hơn thì nguy cơ dữ liệu bị truy cập trái phép cũng tăng lên vì
vậy vấn đề bảo đảm an toàn và bảo mật thông tin cho dữ liệu truyền trên mạng là rất
cần thiết.
Để đảm bảo an toàn và bí mật cho một thông điệp truyền đi người ta thường
dùng phương pháp truyền thống là mã hóa thông điệp theo một qui tắc nào đó đã được
thỏa thuận trước giữa người gửi và người nhận. Tuy nhiên, phương thức này thường
gây sự chú ý của đối phương về tầm quan trọng của thông điệp. Thời gian gần
đây đã
xuất hiện một cách tiếp cận mới để truyền các thông điệp bí mật, đó là giấu các thông
tin quan trọng trong những bức ảnh thông thường. Nhìn bề ngoài các bức ảnh có chứa
thông tin cũng không có gì khác với các bức ảnh khác nên hạn chế được tầm kiểm soát
của đối phương. Mặt khác, dù các bức ảnh đó bị phát hiện ra là có chứa thông tin trong
đó thì với các khóa có độ bảo mật cao thì việ
7
Lược đồ chung cho giấu thông tin
Hình vẽ trên biểu diễn quá trình giấu tin cơ bản. Phương tiện chứa bao gồm các
đối tượng được dùng làm môi trường để giấu tin như text, audio, video, ảnh …, thông
tin giấu là mục đích của người sử dụng. Thông tin giấu là một lượng thông tin mang
một ý nghĩa nào đó như ảnh, logo, đoạn văn bản… tùy thuộc vào mục đích của người
s
ử dụng. Thông tin sẽ được giấu và trong phương tiện chứa nhờ một bộ nhúng, bộ
nhúng là những chương trình, triển khai các thuật toán để giấu tin và được thực hiện
với một khóa bí mật giống như các hệ mã cổ điển. Sau khi giấu tin ta thu được phương
tiện chứa phương tiện chứa bản tin đã giấu và phân phối sử dụng trên mạng. Sau khi
nhận được đối tượ
ng phương tiện có giấu thông tin, quá trình giải mã được thực hiện
thông qua một bộ giải mã tương ứng với bộ nhúng thông tin cùng với khóa của quá
trình nhúng. Kết quả thu dược gồm phương tiện chứa gốc và thông tin đã giấu. Bước
tiếp theo thông tin giấu sẽ được xử lý kiểm định so sánh với thông tin giấu ban đầu.
Thông
tin giấu
Phương
chép trái phép, truyền thông bí mật v.v
Giấu thông tin trong ảnh số là một phần của khái niệm giấu thông tin với việc
sử dụng ảnh số làm phương tiện mang. Giấu thông tin trong ảnh số có nhiều ứng dụng
trong thực tế như trong việc xác định quyền sở hữu, chống xuyên tạc thông tin và
chuyển giao dữ liệu một cách an toàn.
Ảnh mà ta đem nhúng thông tin vào được gọi là ảnh môi trường hay ảnh gốc
(host image
). Ảnh thu được sau khi đã giấu thông tin gọi là ảnh kết quả
(result image). Ảnh kết quả sẽ có những điểm khác so với ảnh gốc gọi là nhiễu. Ảnh
kết quả càng ít nhiễu càng khó gây ra nghi ngờ về sự tồn tại của thông tin trong ảnh.
Thông tin nhúng: Là lượng thông tin được nhúng vào trong ảnh môi trường
Ảnh môi trường: là ảnh gốc được dùng để nhúng thông tin. Trong giấu thông
tin trong ảnh thì nó mang tên
ảnh môi trường, còn trong audio là audio môi
trường v.v
9
Phương tiện nhúng: Là một đối tượng đa phương tiện như ảnh, audio hay
video đã có thông tin nhúng
Tính không nhìn thấy: là một trong ba yêu cầu của bất kỳ một hệ giấu tin nào.
Tính không nhìn thấy là tính chất vô hình của thông tin nhúng trong phương
tiện nhúng.
Tính mạnh mẽ: Là yêu cầu thứ hai của một hệ giấu tin. Tính mạnh mẽ là nói
đến khả năng chịu được các thao tác bi
ến đổi nào đó trên phương tiện nhúng và
các cuộc tấn công có chủ đích.
Khả năng nhúng: Là yêu cầu thứ ba của một hệ giấu tin. Khả năng nhúng
chính là số lượng thông tin nhúng được nhúng trong phương tiện chứa.
Nhiễu: Là phương tiện nhúng xuất hiện những đặc điểm lạ so với phương tiện
- Tính an toàn và bảo mật của thông tin.
- Chất lượng của ảnh sau khi giấu thông tin bên trong.
1.3.1. Tính vô hình của thông tin
Khái niệm này dựa trên đặc điểm của hệ thống thị giác của con người. Thông
tin nhúng là không tri giác được nếu một người với thị giác là bình thường không phân
biệt được ảnh môi trường và ảnh kết quả. Trong khi image hiding yêu cầu tính vô hình
của thông tin giấu ở mức độ cao thì watermarking lại chỉ yêu cầu ở một cấp độ nhất
định. Chẳng hạn như người ta áp dụng watermarking cho việc gắn một biểu tượng mờ
vào một chương trình truyền hình để bảo vệ bản quyền.
1.3.2.Tính bảo mật
Thuật toán nhúng tin được coi là có tính bảo mật nếu thông tin được nhúng
không bị tìm ra khi bị tấn công một cách có chủ đích trên cơ sở những hiểu biết đầy đủ
về thuật toán nhúng tin và có bộ giải mã ( trừ khoá bí mật ), hơn nữa còn có được ảnh
11
có mang thông tin ( ảnh kết quả ). Đối với ảnh image hiding đây là một yêu cầu rất
quan trọng. Chẳng hạn đối với thuật toán dò tin trong ảnh đen trắng kích thước m*n,
độ phức tạp vẫn còn lên tới O(2
m*n
) khi dã biết ma trận trọng số đùng trong quá trình
giấu tin.
1.3.3.Tỷ lệ giấu tin
Lượng thông tin giấu so với kích thước ảnh môi trường là một vấn đề cần quan
tâm trong một thuật toán giấu tin. Đây là một trong hai yêu cầu cơ bản của giấu tin
mật. Rõ ràng là có thể chỉ giấu một bit thông tin vào mỗi ảnh mà không cần lo lắng về
độ nhiễu của ảnh nhưng như vậy sẽ rất kém hiệu quả khi mà thông tin cần giấu có kích
thước bằng Kb. Các thuật toán đều cố gắng đạt được mục đích làm thế nào giấu được
nhiều thông tin nhất mà không gây ra nhiễu đáng kể.
1.3.4.Lựa chọn ảnh
1-2 Nhận dạng file ‘BM’ hay 19778
3-6 Kích thước file Kiểu long trong Turbo C
7-10 Dự trữ Thường mang giá trị 0
11-14 Byte bắt đầu vùng dữ liệu Offset của byte bắt đầu vùng dữ
liệu
15-18 Số byte cho vùng info 4 byte
19-22 Chiều rộng ảnh BMP Tính bằng pixel
13
23-26 Chiều cao ảnh BMP Tính bằng pixel
27-28 Số Planes màu Cố định là 1
29-30 Số bit cho một pixel Có thể là1,4,8,16,24 tuỳ theo
loại ảnh
31-34 Kiểu nén dữ liệu 0: Không nén
1: Nén runlength 8bits/pixel
2: Nén runlength 4bits/pixel
35-38 Kích thước ảnh Tính bằng byte
39-42 Độ phân giải ngang Tính bằng pixel / metter
43-46 Độ phân giải dọc Tính bằng pixel / metter
47-50 Số màu sử dụng trong ảnh
51-54 Số màu được sử dụng khi hiển
thị ảnh Palette màu: Bảng màu của ảnh, chỉ những ảnh nhỏ hơn hoặc bằng 8 bit màu
mới có palette màu.
BitmapData: Phần này nằm ngay sau phần palette màu của ảnh BMP. Đây là
phần chứa giá trị màu của điểm ảnh trong BMP. Các dòng ảnh được lưu từ dưới
lên trên, các điểm ảnh được lưu trữ từ dưới lên trên từ trái sang phải. Giá trị của
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ẻ.
16
Một thẻ thông minh đã được giấu tin sử dụng trong công tác nhận dạng
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
của thông tin. Tài liệu sau đó được truyền trực tiếp qua máy fax hoặc lưu truyền trên
mạng. Theo đó, việc nhận thực chữ kí, xác thự
c thông tin đã trở thành một vấn đề cực
Trong khi thuỷ phân số không yêu cầu thông tin giấu phải vô hình và chịu được các
thao tác biến đổi trên ảnh thì giấu thông tin trong ảnh yêu cầu các thông tin giấu phải
ẩn không bị phát hiện và lượng thông tin giấu càng lớn càng tốt (capacity of hidden
message). Hai phương pháp này có những đặc điểm khác nhau, cách thực hiện khác
nhau nhưng trong báo cáo này là giấu tin trong ảnh nên chỉ đề cậ
p tới các đặc trưng
chính của giấu thông tin trong ảnh.
Phương tiện chứa có dữ liệu tri giác tĩnh
Dữ liệu gốc ở đây là dữ liệu của ảnh tĩnh, dù đã giấu thông tin vào trong ảnh
hay chưa thì khi ta xem ảnh bằng thị giác dữ liệu ảnh được tri giác tĩnh nghĩa là ảnh
không thay đổi theo thời gian khi tri giác, điều này khác với đa phương tiện audio hay
video vì khi ta tri giác các dữ
liệu phương tiện chứa gốc là hình ảnh hay âm thanh thì
dữ liệu gốc sẽ thay đổi liên tục với tri giác của con người theo các đoạn hay các bài,
các cảnh . . . Sự khác biệt này ảnh hưởng lớn đối với các kỹ thuật giấu tin trong audio
18
hay video. Đối với giấu thông tin trong ảnh phương pháp giấu và kỹ thuật giấu phụ
thuộc vào đặc điểm thị giác của con người ví dụ như độ sáng tối, hay yếu tố khoảng
cách to nhỏ. . .
Giấu tin trong ảnh tác động lên dữ liệu ảnh nhưng không thay đổi kích
thước ảnh.
Các phép toán thực hiện công việc giấu tin sẽ được thực hiện trên dữ li
ệu của
trên ảnh. Dữ liệu ảnh bao gồm các phần header, bảng phân màu và dữ liệu ảnh. Khi
giấu thông tin, các phương pháp đều biến đổi giá trị của các bit trong dữ liệu ảnh chứ
không chứ không thêm vào hay bớt đi dữ liệu ảnh. Do vậy mà kích thước ảnh trước
hay sau khi giấu thông tin là như nhau.
Đảm bảo yêu cầu chất lượng ảnh sau khi giấu thông tin.
gần như không thay đổi, và khả năng bị phát hiện rất thấp dưới con mắt người bình
thường. Do đó hệ thống thị giác của con người cũng đóng một vai trò quan trọng trong
việc bảo đảm tính không nhìn thấy thông tin được giấu trên ảnh. Với những ảnh mà
mỗi điểm ảnh chỉ mang một giới hạn nhỏ các giá trị thì việc giấu thông tin trong ảnh
đảm bảo tính vô hình của thông tin che giấu là một công việc khó khăn hơn nhiều. Đặc
biệt với ảnh đen trắng, mỗi
điểm ảnh chỉ mang một trong hai giá trị trắng hoặc đen.
Vậy thì khi thay đổi giá trị một pixel từ đen thành trắng hoặc ngược lại thì rất dễ bị
phát hiện. Một số thuật toán khác thì giấu chất lượng ảnh tốt hơn nhưng lượng thông
tin giấu được bít và quá đơn giản không đảm bảo được độ an toàn thông tin. Bảng sau
sẽ liệt kê những khác nhau cơ bản gi
ữa giấu thông tin trong ảnh đen trắng và ảnh mầu.
20
Sự khác nhau giữa giấu thông tin trong ảnh đen trắng và ảnh màu
Giấu thông tin trong ảnh đen trắng Giấu thông tin trong ảnh màu hoặc
ảnh xám
Thông tin giấu được ít Thông tin giấu nhiều hơn
Tính ẩn thấp Tính ẩn cao
Độ an toàn thông tin thấp do dễ bị phát
hiện có thông tin chứa thông tin bên
trong
Độ an toàn cao
Các thuật toán giấu ít, phức tạp Nhiều thuật toán và có nhiều hướng mở
rộng phát triển. Như áp dụng giải thuật
22
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 F
i
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 m*n là ma trận chỉ gồm 0 và 1).
W: Ma trận trọng số cấp r, kích thước m*n cũng được dùng chung bởi người
gửi và người nhận.
r: Số lượng bit được giấu trong mỗi khối ảnh kích thước m*n của F,
r phải thoả mãn bất đẳng thức: 2
r
-1≤ m*n.
B: k*r bít dữ liệu cần giấu, được tách thành k chuỗi r bit .
2.4.1.2. Các khái niệm cơ bản
Ảnh thứ cấp và ma trận nhị phân
Trước hết ta quan tâm đến các đối tượng chính là các ảnh thứ cấp hay ảnh một