Tải bản đầy đủ (.doc) (58 trang)

Luận văn Cải tiến thuật toán giấu dữ liệu trong ảnh

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (627.72 KB, 58 trang )

MỤC LỤC
Mục Nội dung Trang
Mở đầu 1
Chương1 Tổng quan về luận văn 2 - 4
1.1 Đặt vấn đề 2
1.2 Giải quyết vấn đề 4
Chương 2 Một số kĩ thuật giấu dữ liệu trong ảnh tĩnh 5-16
2.1 Khái niệm 5
2.2 Các tính chất 8
2.3 Cấu trúc ảnh 10
2.4 Một số kĩ thuật giấu thông tin trong ảnh màu 14
2.5 Phân loại các kĩ thuật giấu tin 16
2.6 Một số ứng dụng của các kĩ thuật
giấu dữ liệu trong ảnh 17
Chương 3 Một số thuật toán giấu dữ liệu trong ảnh tĩnh 20 - 39
3.1 Thuật toán giấu thông tin trong ảnh BMP 24 Bit
sử dụng các bit LSB (Least Significant Bit) 20
3.2 Thuật toán nhúng thủy vân trên ảnh tĩnh 33
Chương 4 Chương trình giấu dữ liệu dạng văn bản trong ảnh tĩnh
.BMP 24 bit sử dụng kĩ thuật LSB và cải tiến 40 - 51
4.1 Cải tiến của thuật toán trong chương trình 40
4.2 Giao diện và các chức năng của chương trình 46
Kết luận 52
Tài liệu tham khảo 53
MỞ ĐẦU

Ngày nay, khi nhu cầu giao tiếp, truyền tải và trao đổi thông tin ngày
càng cao cùng với các sản phẩm vật chất, tinh thần tạo ra ngày càng nhiều thì
vấn đề đáp ứng như cầu đó không chỉ cần nhanh, đầy đủ và chính xác. Với sự
phát triển của mạng Internet toàn cầu, thông tin và các tài liệu dưới nhiều
dạng còn được truyền tải một cách tự do và đơn giản. Đồng thời cũng dẫn đến


những hiện tượng lấy cắp, phá hoại thông tin, dữ liệu trở nên phổ biến và tinh
vi. Vấn đề bảo vệ bản quyền và các thông tin mật trở nên quan trọng hơn hết
và luôn được đặt lên hàng đầu. Hàng loạt các thuật toán mã hoá đã được
nghiên cứu, cải tiến, đưa vào sử dụng trong thực tế và thu được các kết quả
rất cao. Tuy nhiên, nhược điểm lớn nhất của các tài liệu đã được mã hoá là dễ
gây sự chú ý và bị phát hiện là có giấu thông tin. Chính vì thế, người ta thực
sự bắt tay vào nghiên cứu một lĩnh vực bảo mật mới: Giấu tin trong môi
trường trực quan. Khác với mã hóa bảo vệ tin mât, giấu tin không chỉ mã hoá
dữ liệu cần giấu mà còn đưa dữ liệu đó vào một môi trường nào đó mà không
làm “biến dạng” hình ảnh trực quan của môi trường đó.
Luận văn nghiên cứu “Một số kĩ thuật giấu dữ liệu trong ảnh tĩnh” là
một nghiên cứu trong lĩnh vực giấu thông tin, dữ liệu. Luận văn trình bày một
số kĩ thuật giấu tin trong ảnh tĩnh và tiến hành cài đặt hoàn chỉnh một kĩ thuật
cụ thể có sự cải tiến.
Sinh viên thực hiện
Vũ Thị Dung
2
Chương 1
TỔNG QUAN VỀ LUẬN VĂN
1.1. Đặt vấn đề
An toàn và bảo mật thông tin luôn là vấn đề được quan tâm hàng đầu
trong mọi lĩnh vực. Ngày nay, cùng với sự phát triển rất rộng rãi của Internet
thì nhu cầu truyền tin qua mạng ngày càng lớn. Tuy nhiên, với lượng tin
truyền được qua mạng nhiều hơn thì nguy cơ dữ liệu bị truy nhập trái phép
cũng tăng lên.
Bên cạnh đó, việc nhận thực chữ kí, xác thực thông tin đã trở thành một
vấn đề cực kì quan trọng khi mà việc ăn cắp thông tin hay xuyên tạc thông tin
bởi các tin tặc đang trở thành một vấn nạn đối với bất kì quốc gia nào, tổ chức
nào. Hơn nữa khi mà nhu cầu giao tiếp, trao đổi và quản lý của con người
ngày càng tăng cao, có rất nhiều loại thông tin quan trọng cần được bảo mật

như những thông tin về an ninh, thông tin về bảo hiểm hay các thông tin về tài
chính các thông tin này được số hóa và lưu trữ trong hệ thống trên mạng.
Chúng rất dễ bị lấy cắp và bị thay đổi bởi các phần mềm chuyên dụng. Việc
nhận thực cũng như phát hiện thông tin xuyên tạc đã trở nên vô cùng quan
trọng và cấp thiết. Gần đây báo chí đã đưa tin vụ việc ngày 11-9 gây chấn
động nước Mĩ và toàn thế giới, chính tên trùm khủng bố quốc tế Osma
BinLaDen đã dùng cách thức giâu thông tin trong ảnh để liên lạc với đồng
bọn, và hắn đã qua mặt được cục tình báo trung ương Mĩ CIA và các cơ quan
an ninh quốc tế. Chắc chắn sau vụ việc này, thì nghiên cứu các vấn đề liên
quan đến giấu thông tin trong ảnh sẽ rất được quan tâm.
Trong một thời gian dài, nhiều phương pháp bảo mật thông tin đã được
đưa ra, trong đó phương pháp dùng mật mã học được ứng dụng rộng rãi nhất.
Hay để đảm bảo bí mật cho một thông điệp truyền đi người ta thường sử dụng
phương thức truyền thông là mã hóa thông điệp theo một quy tắc náo đó đã
3
được thoả thuận trước giữa người gửi và người nhận. Theo cách này các
thông tin cần bảo vệ sẽ được mã hóa thành các kí hiệu vô nghĩa, sau đó thông
tin sẽ được lấy lại thông qua việc giải mã nhờ khoá của các hệ mã. Đã có
nhiều hệ mã phức tạp được sử dụng như DES, RSA, NAPSACK…và thực tế
đã chứng minh được tính hiệu quả của chúng. 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.
Giấu thông tin (Data hiding) cũng là một phương pháp bảo mật thông
tin có tính hiệu quả và khả thi cao - đây là phương pháp mới được xem như
một công nghệ chìa khóa cho vấn đề bảo mật thông tin và bảo vệ bản quyền.
Giấu thông tin là môt kĩ thuật giấu một lượng thông tin số vào đối tượng dữ
liệu số khác (đối tượng vỏ) và đảm bảo tính vô hình của thông tin được giấu.
Như vậy ưu điểm của của phương pháp giấu tin so với phương pháp mã hóa
là khi nhìn vào đối tượng vỏ sẽ khó xác định được có thông tin giấu ở trong
hay không.
Giấu thông tin trong những bức ảnh cũng là phương pháp như vậy. Các

nhà khoa học, các viện nghiên cứu vẫn không ngừng nghiên cứu những kĩ
thuật mới, đồng thời cải tiến những kĩ thuật, thành tựu đã đạt được để nâng
cao chất lượng an ninh và bảo mật thông tin. Trong đó các kĩ thuật giấu thông
tin trong ảnh cũng được nghiên cứu ngày càng sâu rộng. Bởi xuất phát từ một
hình thức truyền tin rất thông dụng của con người là gửi những bức ảnh,
những tấm bưu thiếp tới người thân, bạn bè, đồng nghiệp vào những dịp đặc
biệt hay chỉ là những quà tặng thường nhật. Hành động đó không có gì là
khác thường. Vậy thì tại sao từ một phương tiện truyền tin phổ biến và thông
dụng như thế lại không tận dụng để truyền đi những thông tin mật tới những
địa chỉ cần thiết, mà không gây sự nghi ngờ của những đối tượng không mong
muốn. Và làm thế nào để thực hiện được điều đó một cách tốt nhất có thể?
Vấn đề đặt ra đã không ngừng thôi thúc các nhà nghiên cứu tìm tòi sáng tạo.
4
Qua việc đọc các bài viết, các nghiên cứu của một số nhà khoa học
trong và ngoài nước về các kĩ thuật giấu thông tin trong ảnh tĩnh, tôi muốn có
những hiểu biết sâu hơn, nên đã tiếp tục tìm hiểu và thực hiện thử nghiệm một
số kĩ thuật đó. Luân văn này trình bày hiểu biết về một số kĩ thuật đó, đồng
thời thực hiện cài đặt chương trình cụ thể và một vài cải tiến. Đặc biệt đi sâu
vào thuật toán giấu thông tin dạng văn bản trong ảnh .BMP 24 bit dùng kĩ
thuật LSB (Least Significant Bit) và một số cải tiến kết hợp với kĩ thuật mã
hoá thông tin, cụ thể là mã hoá RSA.
1.2. Giải quyết vấn đề.
1.2.1. Nội dung nghiên cứu
Một số kĩ thuật giấu thông tin trong ảnh tĩnh.
1.2.1. Mục tiêu nghiên cứu
- Cài đặt đúng thuật toán giấu thông tin dạng văn bản trong ảnh .BMP
24 bit dùng kĩ thuật LSB (Least Significant Bit)
- Test chương trình đúng trên các ví dụ.
- Đảm bảo thông tin, dữ liệu, hình ảnh sử dụng không bị biến dạng, tính
bảo mật trên thực tế.

- Cải tiến kết hợp với thuật toán RSA tăng hiệu quả của bảo mật thông
tin.
- Trình bày một số kĩ thuật khác với những thuật toán cụ thể.
1.2.2. Phương pháp nghiên cứu.
- Tìm hiểu các tài liệu, công trình đã nghiên cứu về vấn đề liên quan
trước đó của các nhà nghiên cứu.
- Tiến hành cài đặt và cải tiến dựa trên các thuật toán, kĩ thuật đã có.
5
Chương 2
MỘT SỐ KĨ THUẬT GIẤU DỮ LIỆU TRONG ẢNH TĨNH
2.1. Khái niệm
2.1.1. Khái niệm ảnh tĩnh và ảnh động
Ảnh tĩnh tồn tại trong một khung ảnh (frame).
Ảnh động là một xâu gồm nhiều ảnh tĩnh. Bản chất của sự chuyển động
của một đối tượng trong xâu các frame ảnh liên tiếp đó là sự thay đổi vị trí
tương đối (tọa độ ngang và dọc) của nó trong từng frame.
2.1.2. Khái niệm về giấu thông tin (Data Hiding)
Giấu thông tin (Data Hiding) là môt kĩ thuật giấu một lượng thông tin
số vào đối tượng dữ liệu số khác (đối tượng vỏ) và đảm bảo tính vô hình của
thông tin được giấu.

Sự khác nhau giữa 2 phương pháp mã hóa thông tin và giấu thông
tin.
- Với mã hóa thông tin: Giả sử ta có đối tượng cần bảo mật R (một văn
bản, một tấm bản đồ hoặc một tệp âm thanh). Nếu dùng phương pháp mã hóa
để bảo mật R ta sẽ thu được bản mật mã của R là R’. Thông thường, R mang
những giá trị vô nghĩa và chính điều này làm cho đối phương nghi ngờ và tìm
mọi cách thám mã.
- Với phương pháp giấu R vào một đối tượng khác, một bức ảnh F
chẳng hạn. Ta sẽ thu được bức ảnh F’ hầu như không sai khác gì với F. Sau

đó chỉ cần gửi ảnh F’ cho người nhận. Để lấy ra bản tin R từ ảnh F’ ta không
cần ảnh gốc F. Xem như vậy, khi đối phương bắt được tấm ảnh F’ nếu đó là
ảnh lạ (ảnh cá nhân, ảnh phong cảnh của những nơi không nổi tiếng) thì khó
nảy sinh nghi ngờ về khả năng chứa tin mật trong F’.
6
Như vậy sự khác biệt giữa mã hóa thông tin và giấu thông tin là ở mức
độ lộ liễu của đối tượng mang tin mật.
∗ Ưu điểm của của phương pháp giấu tin so với phương pháp mã hóa là
khi nhìn vào đối tượng vỏ sẽ khó xác định được có thông tin giấu ở trong hay
không.

Hướng kết hợp: Nếu ta phối hợp hai phương pháp trên thì mức độ lộ
liễu được giảm đến mức tối đa, đồng thời độ an toàn cũng được nâng cao.
Chẳng hạn, ta có thể mã hoá R thành R’ sau đó mới giấu R’ vào ảnh F (ảnh
gốc) để thu được ảnh F’. Để lấy lại R từ F’ ta phải qua 2 bước là lấy lại R’ từ
F’ sau đó từ R’ giải mã thu được R. Tóm lại, giấu thông tin và hệ mã mật có
quan hệ mật thiết với nhau, có thể kết hợp để cùng xây dựng nên một hệ
thống an toàn và bảo mật thông tin.

Lịch sử phát triển của kĩ thuật giấu thông tin
Các phương pháp giấu tin đã có lịch sử rất lâu đời. Ghi chép đầu tiên về
nghệ thuật giấu tin được sử gia Hy Lạp Herodotus ghi lại về việc: Khi bạo
chúa Hy Lạp Histiaeus bị vua Darius bắt giữ ơ Susa vào thế kỷ thứ năm trước
Công nguyên, ông ta đã gửi một thông báo bí mật cho con rể của mình là
Aristagoras ở Miletus. Histiaeus đã cạo trọc đầu của một nô lệ tin cậy và xăm
một thông báo trên da đầu của người nô lệ ấy. Khi tóc của người nô lệ này
mọc đủ dài, anh ta được gửi tới Miletus. Một câu chuyện khác cũng do
Herodotus ghi lại: Một người Hy Lạp cần thông báo cho Sparta rằng Xerxes
định xâm chiếm Hy Lạp. Để tránh bị phát hiện, anh ta đã bóc lớp sáp ra khỏi
các viên thuốc và khắc thông báo lên bề mặt các viên thuốc này, sau đó bọc

lại các viên thuốc bằng một lớp sáp mới. Những viên thuốc được để ngỏ và
lọt qua mọi sự kiểm tra một cách dễ dàng. Mực không màu là phương tiện
hữu hiệu cho bảo mật thông tin trong một thời gian dài. Người Romans cổ đã
biết sử dụng những chất sẵn có như nước quả, nước tiểu và sữa để viết các
7
thông báo bí mật giữa những hàng văn tự thông thường. Khi bị hơ nóng,
những thứ mực không nhìn thấy này trở nên sẫm màu và có thể đọc dễ dàng.
Mực không màu cũng được sử dụng rất gần đây, như trong thời gian chiến
tranh thế giới thứ II.
Trong những năm 1980, bà Thatcher, sau đó là thủ tướng Anh đã từng
đau đầu về nạn rò rỉ thông tin của văn phòng nội các nên đã quyết định triển
khai một chương trình xử lý văn bản cho phép nhận diện tác giả bài viết. Nhờ
đó, bà có thể theo dõi được các bộ trưởng trung thành với mình.
Vào giữa những năm 1990, một số tác giả đã trình bày kết quả nghiên
cứu của họ trong lĩnh vực giấu tin số. Các kết quả này đặt nền móng cho sự
phát triển một phương pháp mới- giấu tin số, mà giấu tin trong ảnh số là một
lĩnh vực của phương pháp này.
Như vậy ý tưởng về che giấu thông tin đã có từ hàng nghìn năm về
trước nhưng kĩ thuật này được dùng chủ yếu trong quân đội và trong các cơ
quan tình báo. Mãi cho tới vài thập niên gần đây, giấu thông tin mới nhận
được sự quan tâm của các nhà nghiên cứu và các viện công nghệ thông tin với
hàng loạt công trình nghiên cứu giá trị. Cuộc cách mạng số hoá thông tin và
sự phát triển nhanh chóng của mạng truyền thông là nguyên nhân chính dẫn
đến sự thay đổi này. Những phiên bản sao chép hoàn hảo, các kĩ thuật thay
thế, sửa đổi tinh vi, cộng với sự lưu thông phân phối trên mạng của các dữ
liệu đa phương tiện đã sinh ra nhiều vấn đề nhức nhối về nạn ăn cắp bản
quyền, phân phối bất hợp pháp, xuyên tạc trái phép đã làm cho giấu thông
tin, bảo mật thông tin trở thành cần thiết và được áp dụng cho nhiều lĩnh vực
trong đời sống xã hội.
2.1.3. Giấu thông tin trong ảnh tĩnh

Với dữ liệu R (có thể dạng văn bản, hình ảnh, âm thanh ) bằng một
thuật toán giấu tin cụ thể được giấu vào một bức ảnh tĩnh F (thường chọn ảnh
8
lạ như ảnh cá nhân, ảnh phong cảnh ít được biết đến ) để thu được bức ảnh
F’ đã chứa dữ liệu R bên trong theo một phương thức cụ thể. F’ hầu như
không sai khác gì với F. Sau đó chỉ cần gửi ảnh F’ cho người nhận. Để lấy ra
bản tin R từ ảnh F’ ta không cần ảnh gốc F mà chỉ dùng thuật toán với khóa
đã dùng để giấu tin.
Nhìn bề ngoài những bức ảnh chứa thông tin cũng không khác gì so với
bức ảnh đó lúc chưa giấu thông tin nên hạn chế được tầm kiểm soát của đối
phương. Mặt khác dù những bức ảnh đó được phát hiện ra là có giấu thông tin
thì cũng khó có thể thực hiện lọc ra thông tin. Giấu thông tin trong ảnh hiện
nay, 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 thông tin trong đa phương tiện bởi lượng thông tin
được trao đổi bằng hình ả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 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 quan tâm rất lớn của các nhà 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à không ai có thể bằng mắt
thường mà nhận ra đằng sau ảnh đó mang những thông tin có ý nghĩa. Ngày
nay, khi ảnh số đã được sử dụng phổ biến thì giấu thông tin trong ảnh đã đem
lại rất nhiều ứng dụng quan trọng trên nhiều lĩnh vực đời sống xã hội. Ví dụ
như 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. 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
9

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.
2.2. Các tính chất
Mặc dù là một lĩnh vực mới đang được phát triển nhưng giấu tin trong
ảnh đang được ứng dụng rộng rãi cùng rất nhiều thuật toán khác nhau. Để
đánh giá một phương pháp giấu tin, người ta phải căn cứ vào các tiêu chí sau:
2.2.1. Tính vô hình
Giấu tin trong ảnh sẽ làm biến đổi anh mang. Tính vô hình thể hiện
mức độ biến đổi ảnh mang. Một phương pháp tốt sẽ làm cho thông tin trở nên
vô hình, không thể nhận ra dễ dàng được. Sự khác biệt giữa ảnh phủ và ảnh
mang phải nằm dưới vùng cảm nhận bằng mắt người.
2.2.2. Khả năng chống giả mạo
Do mục đích của phương pháp giấu tin là chuyển thông tin mật nên nếu
không thể do thám tin mật thì kẻ khác cũng cố tình làm sai lạc thông tin đó.
Một phương pháp giấu tin tốt phải đảm bảo tính mật không bị tấn công một
cách có chủ định trên cơ sở những hiểu biết đầy đủ về thuật toán nhúng tin.
2.2.3. Dung lượng tin giấu
Dung lượng tin giấu được tính bằng tỉ lệ của lượng tin giấu so với kích
thước ảnh phủ. Các phương pháp luôn cố gắng làm tăng dung lượng tin giấu.
Tuy nhiên trong thực tế, người ta luôn phải cân nhắc giữa dung lượng tin giấu
và các tiêu chí khác như tính ổn định, tính vô hình…Dung lượng tin giấu càng
lớn, ảnh mang càng dễ bị nhận ra và càng dễ bị phá hỏng hơn.
2.2.4. Tính bền vững của tin giấu.
Ảnh mang cũng chỉ là một ảnh bình thường, do đó nó cũng phải chịu
những phép biến đổi ảnh khác nhau. Tính bền vững là thước đo sự nguyên
vẹn của thông tin mật sau các phép biến đổi trên.
Một số phép biến đổi ảnh thông dụng là:
10
- Phép co giãn ảnh
- Phép quay ảnh.

- Sử dụng bộ lọc ảnh.
Các phép biến đổi này đều có thể quy về thành các ma trận biến đổi.
Nếu hiểu ảnh cần biến đổi như một ma trận điểm thì ảnh sau khi biến đổi sẽ là
ma trận tích của 2 ma trận trên.
2.2.5. Độ phức tạp tính toán.
Độ phức tạp tính toán có thể hiểu theo 2 nghĩa:
- Độ phức tạp tính toán của phép nhúng tin vào ảnh phủ và phép trích
thông tin từ ảnh mang.
- Độ phức tạp tính toán để giải mã tin mật khi không có khoá.
Phương pháp giấu tin tốt đảm bảo độ phức tạp thứ nhất là thấp và độ
phức tạp thứ hai là cao. Nói cách khác, thông tin phải dễ dàng nhúng và trích
ra đổi với người “chủ” nhưng khó khăn với “kẻ xâm phạm”.
Hình vẽ sau mô tả sự tương quan giữa chất lượng ảnh, dung lượng tin
giấu và tính bền vững của mẩu tin.
2.3. Cấu trúc ảnh
11
2.3.1. Phân loại cấu trúc ảnh
Trước khi thực hiện một phương pháp giấu tin vào ảnh, người ta luôn
phải xem xét kĩ vùng có thể giấu thông tin trên ảnh. Một phương pháp tốt sẽ
sử dụng vùng hợp lý trên ảnh thoả mãn các tiêu chí trên. Đó cũng chính là sự
khác biệt lớn nhất giữa các phương pháp này. Phân loại về cấu trúc, một ảnh
thường thuộc 1 trong 2 loại:
2.3.1.1. Ảnh vector
Ảnh vector được lưu dưới dạng các tập lệnh dùng để vẽ ra các đường
cong hay các hình trên ảnh. Hay khi bạn vẽ một hình trên AutoCAD bằng
những tập lệnh như thế nào thì ảnh vector có cấu trúc cũng gần như vậy. Các
lệnh này thường chứa các thành phần như: tên lệnh, toạ độ, màu…Việc nhúng
tin vào các bit chứa tên lệnh sẽ làm phá hỏng cấu trúc ảnh, trong khi đó, thay
đổi các tọa độ sẽ dễ dàng bị nhận ra bằng mắt thường. Chính vì thế, người ta
thường giấu tin vào các bit chứa màu đường cong. Đây cũng là cách tốt nhất

vì các ảnh vector thường chỉ chịu các phép biến đổi về toạ độ chứ thường
không chịu các tác động về màu sắc.
2.3.1.2. Ảnh lưới
Ảnh lưới là ảnh mà dữ liệu ảnh mô tả màu sắc của từng điểm ảnh. Hầu
hết các định dạng ảnh đều thuộc loại này như: .BMP, .GIF, .JPG…Vì thế
cũng không khó hiểu khi loại ảnh này được tập trung nghiên cứu nhiều nhất.
Tuy nhiên, do có nhiều định dạng, mẩu tin mật gần như “bắt buộc” phải được
giấu trong phần dữ liệu ảnh để không bị mất đi khi ảnh bị chuyển đổi
(convert) thành các định dạng khác nhau.
Một ảnh lưới gồm 3 phần:
- Header: Phần dùng để nhận dạng ảnh và một số thuộc tính của ảnh
như: chiều cao, chiều rộng, kích thước…
12
- Data: Phần chứa dữ liệu về ảnh, thực chất là dữ liệu về màu sắc của
các điểm trong ảnh.
- Palette (Bảng màu): Bảng tham chiếu giữa chỉ số màu với giá trị thực
của màu.
Phạm vi nghiên cứu của luận văn là chỉ đối với ảnh tĩnh và đặc biệt đi sâu vào
ảnh lưới cụ thể là .BMP
13
2.3.2. ảnh tĩnh và cấu trúc ảnh Bitmap .BMP
2.3.2.1. Ảnh tĩnh
2.3.2.2. Cấu trúc ảnh .BMP
Cấu trúc ảnh .BMP chia làm 3 phần chính:
- Bitmap Header:
-
Bitmap InfoHeader
Byte Thông tin Chi tiết
1-2 Nhận dạng file Chứa 2 kí tự “BM”
3-6 Kích thước file(Byte) Kiểu longint

7-10 Dự trữ Kiểu longint
11-14 Byte bắt đầu vùng dữ liệu Kiểu longint
14
Byte Thông tin Chi tiết
1-4 Số Byte trong vùng Info 40 Byte
5-8 Chiều rộng Bitmap (Pixel) Kiểu longint
9-12 Chiều cao Bitmap (Pixel) Kiểu longint
13-14 Số Planes màu (Số bảng màu) Kiểu Word
15-16 Số bit cho 1 Pixel: có thể là 1 (đen
trắng), 4 (16 màu), 8 (256 màu),
24 (24 Bit màu).
Kiểu Word
17-20 Kiểu nén dữ liệu Kiểu longint
21-24 Kích thước ảnh (Byte) Kiểu longint
25-28 Độ phân giải ngang (Pixel) Kiểu longint
29-32 Độ phân giải dọc (Pixel) Kiểu longint
33-36 Số màu được sử dụng trong ảnh Kiểu longint
37-40 Số màu được sử dụng khi hiện
ảnh
Kiểu longint
15
Bitmap Palette (vùng chỉ có với ảnh 16 hoặc 256 màu hay byte 15-16
của Info là 24 hoặc 32 )
Vùng tiếp sau vùng Info. Vùng 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 và một Byte dành riêng cho Itensity.
Kích thước của vùng Palette màu của ảnh BMP bằng 4 * số màu của ảnh. Ý
nghĩa vùng này là do trước kia để dành cho màn hình có khả năng hiển thị
nhiều màu nhưng card màn hình hổi ấy bộ nhớ ít nên chỉ hiển thị cùng lúc 16
hoặc 256 màu. Bởi vậy, máy phải chọn ra trong số các màu có của màn hình
ra 16 hoặc 246 màu để hiển thị. Hiện nay, máy đã khác.

- Bitmap Data
Tiếp theo là vùng chứa các giá trị màu của các điểm ảnh BMP. Các
điểm ảnh được lưu trữ theo chiều từ trái sang phải trên cùng một dòng, các
dòng được lưu theo thứ tự từ dưới lên trên. Mỗi Byte trong vùng Bitmap Data
biểu diễn 1 hoặc nhiều điểm ảnh theo số Bits cho 1 Pixel.
Đặc điểm nổi bật nhất cua định dạng BMP là tập tin hình ảnh thường
không được nén bằng bất kì thuật toán nào. Khi lưu ảnh, các điểm ảnh được
ghi trực tiếp vào tập tin - một điểm ảnh sẽ được mô tả bởi một hay nhiều byte
tuỳ thuộc vào giá trị số màu của ảnh. Do đó, một hình ảnh lưu dưới dạng
BMP thường có kích thước rất lớn, gấp nhiều lần so với các ảnh được nén
(GIF, JPG, PNG). Tuy nhiên do kích thước tập tin ảnh BMP quá lớn nên định
dạng BMP không phù hợp để trao đổi hình ảnh qua mạng Internet (do hạn chế
về tốc độ truyền dữ liệu). Do đó các trang Web thường sử dụng ảnh dạng
GIF, JPEG hay PNG. Các định dạng này hỗ trợ thuật toán nén ảnh nên giảm
bớt kích thước của ảnh.
16
2.4. Một số kĩ thuật giấu thông tin trong ảnh màu
Sơ đồ của hệ giấu tin trong ảnh màu
Có rất nhiều kĩ thuật giấu tin mật vào trong ảnh, tôi xin kể ra đây 3 kĩ
thuật cơ bản và dễ hiểu nhất cùng với tín chất của nó.
2.4.1. Kĩ thuật gài tin vào các bit có trọng số thấp.
Phương pháp này được gọi là Least Significant Bit (LSB). Phương pháp
này sửa các bit có trọng số thấp nhất (ít quan trọng nhất trong ảnh) để gài tin
vào đó. Các bit có trọng số thấp là các bit mà sự thay đổi của nó nằm dưới sự
cảm nhận của mắt người. Như vậy, 1 điểm ảnh 24 bit ( 3 byte) có thể giấu tối
đa đươc 3 bit thông tin.
Ví dụ: Để giấu chữ cái A (mã 6510=10000012) ta cần 3 điểm ảnh liên
tiếp. Ví dụ các điểm ảnh trước khi giấu là:
00100111 11101001 11001000 00100111 11001000 11101001
11001000 00100111 11101001

Các điểm ảnh sau khi giấu là:
00100111 11101000 11001000 00100110 11001000 11101000
11001001 00100111 11101001
Các bit in đậm là các bit đã được gài tin vào.
∗ Đánh giá:
17
- Dung lượng giấu: Phương pháp này giấu được lượng thông tin rất lớn.
Với ảnh bình thường, ta giấu được 3 bit trong một điểm ảnh, có thể giấu mẩu
tin có dung lượng khoảng 1/8 dung lượng ảnh 24 Bit. Với ảnh phủ có màu sặc
sỡ, ta có thể giấu 2, thậm chí là 3 bit vào 1 điểm ảnh.
- Tính bền vững: Phương pháp LSB rất dễ bị “phá hoại” chỉ với những
phép biến đổi đơn giản nhất. Do phương pháp này gài tin vào các bit có trọng
số thấp trong ảnh để “xem xét”. Vì thế, trước khi gài mẩu tin mật vào ảnh,
người ta thường phải mã hoá trước. Một giải pháp là: rải ngẫu nhiên các bit
của mẩu tin mật vào ảnh. Vì vậy cần phải có hạt giống sinh số nguyên tố mới
tái tạo lại được tin mật.
2.4.2. Kĩ thuật dựa vào bảng màu
Bảng màu là một ánh xạ 1-1 của chỉ số màu và giá trị thực của các màu.
Kĩ thuật giấu tin vào bảng màu cũng giống như kĩ thuật LSB nhưng áp dụng
cho bảng màu. Khi đó, các bit có trọng số thấp của chỉ số màu được gài tin
vào, điểm trỏ sẽ chỉ sang vị trí kế cận trong bảng màu. Điều này có thể sẽ gây
“lộ” nếu giá trị màu của 2 chỉ số màu liên tiếp khác biệt nhau quá lớn. Để giải
quyết điều này, có 2 cách:
- Sắp xếp lại bảng màu: Như vậy các màu có giá trị tương đồng sẽ nằm
cạnh nhau, và việc gài tin không bị phát hiện. Giải pháp này là chấp nhận
được. Để so sánh 2 màu, người ta thường căn cứ vào độ chói của màu, được
tính theo công thức:
L = 0.299R (Red) + 0.587G (Green) + 0.114B (Blue)
- Mở rộng bảng màu bằng cách đưa thêm các màu lân cận. Điều này
thực hiện khá dễ dàng, tuy nhiên rất dễ gây chú ý vì có những “màu thừa”

trong bảng màu gây tăng dung lượng ảnh.
∗ Đánh giá:
18
Kĩ thuật này chính là kĩ thuật LSB cùng với việc sắp xếp lại hay mở
rộng thêm bảng màu nên nó cũng có các tính chất của kĩ thuật LSB.
2.4.3. Kĩ thuật trải phổ
Kĩ thuật này đang được ứng dụng rộng rãi trong thông tin vô tuyến của
quân đội vì nó rất bền vững với các kĩ thuật thám tin. Nếu coi ảnh phủ và tin
mật như các giải phổ thì việc giấu tin giống như trải phổ có năng lượng thấp
(tin mật) vào một dải phổ năng lượng cao. Trọng tâm của phương pháp này là
bộ rải tín hiệu. Thiết bị này điều chế một băng tín hiệu hẹp trên một dải mang.
Tần số của sóng mang được dịch chuyển liên tục nhờ một bộ sinh ngẫu nhiên
với một khóa mật. Bằng cách này, phổ năng lượng của tín hiệu được giải đều
trên băng rộng với mật độ thấp, thường dưới mức nhiễu. Đê lấy lại thông tin,
bên thu phải có hạt giống sinh số giả ngẫu nhiên để có thể chỉnh tần số và dải
điều chế tín hiệu gốc.
∗ Đánh giá:
- Dung lượng giấu theo kĩ thuật này là tương đối cao, nhưng phụ thuộc
nhiều vào các tham số khác nhau trong quá trình mã hóa. Để tăng dung lượng
tin giấu, người ta thường nén mẩu tin mật trước khi giấu. Cũng như kĩ thuật
LSB, ảnh càng sặc sỡ thì mật độ giấu tin của kĩ thuật này càng cao, thường từ
1/50 hay 10/50.
- Tính bền vững: Kĩ thuật này tương đối bền với các phép biến đổi
thông thường. Các phép quay, co giãn, cộng nhiễu không thể phá hủy được
dữ liệu. Tuy nhiên kĩ thuật lọc nhiễu lại có thể!?
- Khả năng phát hiện: Tính bảo mật của phương pháp này là rất cao, “kẻ
phá hoại” gần như không thể giải mã được thông tin mật trong ảnh nếu không
có khóa giải mã.
2.5. Phân loại các kĩ thuật giấu tin
19

Do kĩ thuật giấu thông tin số mới được hình thành trong thời gian gần
đây nên xu hướng phát triển chưa ổn định. Nhiều phương pháp mới theo
những khía cạnh khác nhau đang và chắc chắn sẽ được đề xuất. Bởi vậy, một
định nghĩa chính xác, một sự phân loại rõ ràng chưa thể có được. Sơ đồ phân
loại trên hình sau được Fabien A. P. Petitcolas đề xuất năm 1999.
Sơ đồ phân loại này như một bức tranh khái quát về ứng dụng và kĩ
thuật giấu thông tin. Dựa trên việc thống kê sắp xếp hơn 100 công trình đã
công bố trên một số tạp chí, cùng với thông tin về tên và tóm tắt nội dung của
khoảng 200 công trình đã công bố trên Internet, có thể chia lĩnh vực giấu tin
ra làm hai hướng lớn đó là Watermarking và Steganography. Nếu như
Watermark (thuỷ vân, thuỷ ấn) quan tâm nhiêu đến ứng dụng giấu các mẩu tin
ngắn nhưng đòi hỏi độ bền vững của thông tin giấu (trước các biến đổi thông
thường của tệp dữ liệu môi trường) thì Steganography lại quan tâm tới ứng
dụng che giấu các bản tin đòi hỏi độ bí mật và dung lượng càng lớn càng tốt.
Đối với từng hướng lớn này, quá trình phân loại theo các tiêu chí khác có thể
tiếp tục được thực hiện, ví dụ đưa ra theo ảnh hưởng các tác động từ bên
ngoài có thể chia Watermark theo đặc tính, một loại được che giấu để chỉ có
một số người tiếp xúc với nó có thẻ thấy được thông tin, loại thứ hai đối lập,
cần được mọi người nhìn thấy.
2.6. Một số ứng dụng của các kĩ thuật giấu thông tin trong ảnh.
Bảo mật thông tin bằng giấu tin có hai khía cạnh. Một là bảo mật cho
dữ liệu đem giấu (embedded data), chẳng hạn như giấu tin mật: thông tin mật
được giấu kĩ trong một đối tượng khác sao cho người khác không phát hiện ra
được (steganography). Hai là bảo mật chính đối tượng được dùng để giấu dữ
liệu vào (host data), chẳng hạn như ứng dụng bảo vệ bản quyền, phát hiện
xuyên tạc thông tin (watermaking)…Một số ứng dụng dang được triển khai:
20
- Bảo vệ bản quyền tác giả (copyright protection): Đây chính là ứng
dụng cơ bản nhất của kỹ thuật thủy phân số. Một thông tin nào đó mang ý
nghĩa quyền sở hữu tác giả sẽ được nhúng vào trong các sản phẩm, thuỷ phân

đó chỉ một mình người chủ sở hữu hợp pháp các sản phẩm đó có và được
dùng làm minh chứng cho bản quyền sản phẩm. Giả sử có một thành phẩm dữ
liệu dạng đa phương tiện như ảnh, âm thanh, video cần được lưu thông trên
mạng. Để bảo vệ các sản phẩm chống lại hành vi lấy cắp hoặc làm nhái cần
phải có một kỹ thuật để “dán tem bản quyền” vào sản phẩm này. Việc dán
tem này chính là việc nhúng thuỷ vân cần phải đảm bảo không để lại một ảnh
hưởng lớn nào đến việc cảm nhận sản phẩm. Yêu cầu kỹ thuật đối với ứng
dụng này là thủy vân phải tồn tại bền vững cùng với sản phẩm, muốn bỏ thuỷ
vân này mà không được phép của người chủ sở hữu thì chỉ còn cách là phá
huỷ sản phẩm.
- Nhận thực thông tin hay phát hiện xuyên tạc thông tin (authetication
and tamper detection): Một tập thông tin sẽ được giấu trong phương tiện
chứa, sau đó được sử dụng để nhận biết xem dữ liệu trên phương tiện gốc có
bị thay đổi hay không. Các thuỷ vân nên được ẩn để tránh sự tò mò của đối
phương. Hơn nữa việc làm giả các thủy vân hợp lệ hay xuyên tạc thông tin
nguồn cũng cần xem xét. Trong các ứng dụng thực tế, người ta mong muốn
tìm được vị trí bị xuyên tạc cũng như phân biệt được các thay đổi (ví dụ như
phân biệt xem một đối tượng đa phương tiện chứa thông tin giấu đã bị thay
đổi, xuyên tạc nội dung hay chỉ bị nén mất dữ liệu). Yêu cầu chung đối với
ứng dụng này là khả năng giấu thông tin cao và thủy phân không cần bền
vững.
- Giấu vân tay hay dán nhãn (fingerpriting and labeling): Thuỷ vân
trong những ứng dụng nay được sử dụng đê nhận diện người gửi hay người
nhận một thông tin nào đó. Ví dụ như các vân khác nhau sẽ được nhúng vào
21
các bản copy khác nhau của thông tin gốc trước khi chuyển cho nhiều người.
Với những ứng dụng này thì yêu cầu là đảm bảo độ an toàn cao cho các thuỷ
vân, tránh khả năng xoá dấu vết trong khi phân phối.
- Điều khiển truy cập (copy control): Các thiết bị phát hiện thuỷ vân (ở
đây sử dụng phương pháp phát hiện thủy vân đã giấu mà không cần thông tin

gốc) được gắn sẵn vào trong các hệ thống đọc ghi, tuỳ thuộc vào việc có thuỷ
vân hay không để điều khiển (cho phép/ cấm) truy cập. Ví dụ như hệ thống
quản lí sao chép DVD đã được ứng dụng ở Nhật.
- Truyền thông tin mật (steganography): Các thông tin giấu được trong
những trường hợp này càng nhiêu càng tốt. Việc giải mã để nhận được thông
tin không cần phương tiện chứa gốc.
22
Chương 3
MỘT SỐ THUẬT TOÁN GIẤU DỮ LIỆU TRONG ẢNH TĨNH
3.1. Thuật toán giấu thông tin trong ảnh BMP 24 Bit sử dụng các bit LSB
(Least Significant Bit)
3.1.1. Thuật toán
Cho ảnh gốc F (ảnh này dùng để giấu dữ liệu), ma trận mật kích thước
m
×
n, ma trận trọng số W kích thước m
×
n (ma trận khoá K và ma trận
trọng số W được giữ bí mật, chỉ người gửi và người nhận tin mới biết), gọi r
là số bit dữ liệu đem giấu vào trong 1 khối bit ảnh và B là kích thước của
thông điệp giấu (B = kr, k

Z).
∗ Một số kí hiệu:
- Kết qủa của phép F

K là một ma trận, trong đó mỗi phần tử là kết
quả của phép XOR phần tử của ma trận F với phần tử của ma trận K tại các
vị trí tương ứng.
- Kết quả của phép K


W là một ma trận mà mỗi phần tử phải được
tạo bởi việc lấy tại vị trí tương ứng phần tử của ma trận K và ma trận W nhân
với nhau.
- SUM(W) cho kết quả bằng tổng tất cả các phần tử của ma trận W
- Giả sử r bit cần giấu có dạng nhị phân là b
1
b
2
…b
r
∗ Khái niệm ma trận trọng số:
Định nghĩa: Ma trận W kích thước m
×
n được gọi là ma trận trọng số của
bài toán giấu r bit dữ liệu trong một khối bit nếu như mọi phần tử của tập hợp
{1, 2,…,2
r
-1} đều xuất hiện ít nhất một lần trong ma trận W.
Chú ý: Để ma trận W (m
×
n) thoả mãn ma trận trọng số thì r phải thoả mãn
điều kiện 2
r
- 1

m
×
n
23

Như vậy số bit tối đa giấu vào một khối kích thước m
×
n là log
2
(m
×
n +1).
Tư tưởng của thuật toán này là ta chỉ thao tác trên các bit ít quan trọng
nhất của ảnh gốc vì vậy sẽ làm giảm ảnh hưởng của việc chèn thêm dữ liệu
đối với chất lượng ảnh gốc. Ta nhặt ra từ một Pixel của ảnh gốc F các bit it
quan trọng nhất, thao tác giấu ảnh sẽ thực hiện trên các bit đó. Khối gồm các
bit it quan trọng được tách thành các khối Fi có kích thước m
×
n, với mỗi
khối ta giấu r bit dữ liệu b
1
b
2
…b
r
, mục đích của thuật toán là sau khi chèn dữ
liệu vào Fi ta thu được ma trận Fi’ thoả mãn đẳng thức:
SUM ( (Fi’

K)

W) mod 2
r
= (b
1

b
2
…b
r
) ( I )
Để thu được đẳng thức trên thao tác giấu dữ liệu được thực hiện trên
từng khối như sau:
1) Tính ma trận XorMatrix=Fi

K
2) Tính tổng SUM ( (Fi

K)

W)
3) Từ ma trận XorMatrix, với mỗi giá trị w của tập {1, 2,…,2
r
-1} ta tính các
tập Sw = {(k,j) | Wkj = w

XorMatrix kj = 0

Wkj = 2
r
- w

XorMatrix
kj = 1 }
4) Xác định hệ số sai khác d
d = (b

1
b
2
…b
r
) - (SUM ( (Fi’

K)

W) mod 2
r
) mod 2
r
Để thu được đẳng thức (I) ta phải tăng (SUM ( (Fi’

K)

W) lên d đơn vị.
Khi đó nếu d=0 thì Fi được giữ nguyên mà ta lại vẫn thu được kết quả như
mong muốn (đây chính là chèn r bit dữ liệu mà không làm thay đổi ảnh gốc)
Trường hợp d

0:
Nếu lấy Sd

0, lấy một giá trị (k,j)

Sd vào đảo giá trị của (F)kj (nếu
(F)kj có thay đổi giá trị 1 thành 0, ngược lại nếu (F)kj đang có giá trị 0 thì
chuyển thành 1). Trong trường hợp này ta sẽ phải thay đổi 1 bit của khối dữ

liệu gốc khi muốn chèn r bit dữ liệu vào khối.
Nếu lấy Sd =

24
Lấy một giá trị h

{1, 2,…,2
r
-1} thoả mãn S h*d


và S -(h-1)*d



Lấy một giá trị (k,j)

S h*d đảo giá trị của (F)kj
Lấy một giá trị (k,j)

S -(h-1)*d đảo giá trị của (F)kj
Đây chính là trường hợp ta phải thay đổi giá trị của 2 bit dữ liệu ảnh gốc
khi muốn giấu r bit dữ liệu.
Như vậy nhờ thuật toán nay ta có thể giấu r bit dữ liệu vào một khối kích
thước m
×
n mà chỉ làm thay đổi nhiều nhất 2 bit dữ liệu ảnh.
Khi bức ảnh có chèn thêm dữ liệu đến được tay người nhận, người đó
chỉ việc tách các bit ít quan trọng nhất của từng Pixel trong ảnh ra và chia
khối bit đó thành các khối nhỏ có kích thước m

×
n, các khối nhỏ này chính là
các khối Fi’ được sinh ra từ thuật toán giấu dữ liệu nói trên. Mặt khác, người
nhận đã biết trước được ma trận khoá K và ma trận trọng số W nên các bit dữ
liệu (b
1
b
2
…b
r
) được giấu trong ảnh có thể được tìm thấy một cách đơn giản
nhờ thực hiện phép biến toán
(b
1
b
2
…b
r
) = SUM ( (Fi’

K)

W) mod 2
r
3.1.2. Giải thích thuật toán
Ý nghĩa của các tập Sw trong bước 3 của thuật toán này là: Sw chứa tất
cả các vị trí (j,k) trong ma trận mà nếu ta thay đổi giá trị của (F)jk thì tổng
(SUM ( (Fi

K)


W) tăng lên w đơn vị.
Thật vậy, nếu Wjk = w và XorMatrix jk = 0 (hay [Fi

K]jk = 0) thì sau
khi đảo giá trị của (F)jk ta có [Fi

K]jk = 1 vì vậy tổng (SUM ( (Fi

K)


W) sẽ tăng lên Wjk(=w) đơn vị.
Nếu Wjk = 2
r
- w và XorMatrix jk = 1 (hay [Fi

K]jk = 1) thì sau khi
đảo giá trị của (F)jk ta có [Fi

K]jk = 0 vì vậy tổng (SUM ( (Fi

K)

W)
sẽ giảm đi Wjk(=2
r
- w) đơn vị, nhưng khi đem (mod 2
r
) thì tổng đó lại tăng

lên w đơn vị.
∗ Ta có một số bổ đề sau:
25

×