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

Nghiên cứu và xây dựng chương trình phát hiện ảnh có giấu tin mật bằng phương pháp phân tích độ lệch chuẩ

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 (989.29 KB, 62 trang )

ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

NGUYỄN THỊ LAN PHƯƠNG

NGHIÊN CỨU VÀ XÂY DỰNG CHƯƠNG TRÌNH
PHÁT HIỆN ẢNH CÓ GIẤU TIN MẬT BẰNG
PHƯƠNG PHÁP PHÂN TÍCH ĐỘ LỆCH CHUẨN

LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH

THÁI NGUYÊN - 2013


ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

NGUYỄN THỊ LAN PHƯƠNG

NGHIÊN CỨU VÀ XÂY DỰNG CHƯƠNG TRÌNH
PHÁT HIỆN ẢNH CÓ GIẤU TIN MẬT BẰNG
PHƯƠNG PHÁP PHÂN TÍCH ĐỘ LỆCH CHUẨN
Chuyên ngành: KHOA HỌC MÁY TÍNH
M· sè: 60 48 01 01

LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH

Ngêi híng dÉn khoa häc: TS. Nguyễn Ngọc Cương

THÁI NGUYÊN - 2013



i

LỜI CAM ĐOAN
Tôi xin cam đoan luận văn là kết quả nghiên cứu của tôi, không sao chép
của ai. Nội dung luận văn có tham khảo và sử dụng các tài liệu liên quan, các
thông tin trong tài liệu được đăng tải trên các tạp trí và các trang website theo
danh mục tài liệu của luận văn.
Tác giả luận văn

Nguyễn Thị Lan Phương


ii

LỜI CẢM ƠN
Để hoàn tất một luận văn thạc sĩ yêu cầu sự tập trung, sự cố gắng và độc
lập nghiên cứu. Bản thân tôi sau những năm tháng học tập vất vả và nghiên cứu
cũng đã cố gắng để hoàn thành được luận văn này. Tôi luôn ghi nhận những sự
đóng góp giúp đỡ nhiệt tình của những người bên cạnh mình, sự ủng hộ, sự hỗ
trợ của bố mẹ bạn bè giúp tôi có thêm động lực để hoàn thành khóa luận tốt
nghiệp, nhân đây tôi muốn gửi lời cảm ơn nhất tới họ.
Lời cảm ơn trân trọng đầu tiên tôi muốn dành tới TS Nguyễn Ngọc Cương,
đã hướng dẫn tôi trong suốt quá trình làm luận văn, nhờ sự định hướng của thầy
giúp tôi tự tin nghiên cứu những vấn đề mới và giải quyết bài toán một cách
khoa học.
Tôi xin trân trọng cảm ơn Ban giám hiệu trường đại học công nghệ thông
tin, Đại học Thái nguyên, khoa CNTT đã tạo các điều kiện cho chúng tôi được
học tập và làm khóa luận một cách thuận lợi.
Lời cảm ơn sâu sắc muốn được gửi tới các thầy cô giáo đã dạy dỗ và mở ra

cho chúng tôi thấy chân trời tri thức mới, hướng dẫn chúng tôi cách khám phá
và làm chủ công nghệ mới.
Tôi muốn gửi lời cảm ơn chân thành đến tập thể lớp CHK10D-KHMT đã
cùng tôi đi qua những tháng ngày miệt mài học tập, cùng chia sẻ những niềm vui
nỗi buồn, động viên tôi đi qua những khó khăn, để tôi vững bước vượt qua
những vất vả, quyết tâm hoàn thành luận văn này.
Tôi xin trân trọng cảm ơn bố mẹ, người đã mang tới tất cả niềm tin, định
hướng và theo dõi tôi suốt chặng đường đời. Nâng đỡ tôi và đến bên tôi những
giây phút khó khăn nhất của cuộc sống.
Tuy nhiên do thời gian có hạn, mặc dù đã nỗ lực cố gắng hết mình nhưng
chắc rằng luận văn khó tránh khỏi những thiếu sót. Rất mong được sự chỉ bảo,
góp ý tận tình của Quý thầy cô và các bạn.


iii

MỤC LỤC


iv

DANH MỤC HÌNH VẼ


v

DANH MỤC BẢNG BIỂU


1


MỞ ĐẦU
1. Tính cấp thiết của đề tài
“Giấu thông tin” (Steganography) là kỹ thuật giấu thông tin quan trọng vào
đối tượng khác. Ý tưởng về che giấu thông tin đã có từ hàng ngàn năm về trước nhưng
kỹ thuật này được dùng chủ yếu trong quân đội và cơ quan tình báo các nước. Những
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ới hàng loạt các công trình có giá trị. Sở dĩ như vậy là do khi kỹ thuật số bùng nổ,
con người cũng “số hoá” lĩnh vực đó phục vụ cho cuộc sống hiện đại dẫn đến những
phiên bản sao chép ngày càng 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 đã phát sinh nhiều
vấn đề vi phạm bản quyền, phân phối bất hợp pháp, xuyên tạc trái phép…
Về nguyên lý, giấu tin trong dữ liệu đa phương tiện hay trong dữ liệu ảnh số
không khác gì nhiều, nhưng do giấu tin trong ảnh dễ thực hiện hơn, giấu được nhiều
thông tin hơn, và cũng là đối tượng số được sử dụng khá phổ biến trên Internet hiện
nay, nên kỹ thuật giấu tin trong ảnh chiếm tỉ lệ nhiều nhất trong các loại dữ liệu đa
phương tiện. Thông tin có thể được giấu trên miền không gian hoặc trên miền biến đổi
như biến đổi tần số (cosine, wavelet, fourier rời rạc) hay biến đổi sai phân (difference
image).
Phát hiện ảnh có giấu tin (Image Steganalysis) là kỹ thuật đối lập với Image
Steganography nhằm dò tìm ảnh số nào đó có giấu thông tin hay không. Đây là rất có
ý nghĩa vì việc nghiên cứu Steganalysis cả về khoa học và thực tiễn, đó là: Thứ nhất,
nhằm phục vụ đắc lực cho lĩnh vực an toàn thông tin; Thứ hai, nhằm nâng cấp và thúc
đẩy sự phát triển của kỹ thuật giấu tin trong ảnh.
Với hai mục đích nêu trên dẫn đến hai hướng nghiên cứu khác nhau. Hướng
thứ nhất, cố gắng xây dựng thuật toán phát hiện mù (blind steganalysis) cho ảnh có
giấu tin sử dụng kỹ thuật giấu bất kỳ. Tiêu biểu là các phương pháp phát hiện bằng
phân tích độ lệch chuẩn, phát hiện bằng thống kê χ2 một bậc tự do, phát hiện dựa trên
phân tích tỷ lệ xám, phát hiện bằng bằng phương pháp ước lượng thông tin giấu trên
miền LSB…

Hướng thứ hai, dựa vào kỹ thuật giấu tin nào đó đã biết, có thể xây dựng được
thuật toán phát hiện phù hợp (phát hiện có ràng buộc - constraint steganalysis) tức là
đưa ra một số kỹ thuật phát hiện có ràng buộc cho ảnh có giấu tin với kỹ thuật giấu
biết trước. Chúng đều là trường hợp riêng của kỹ thuật giấu LSB nhưng tỉ lệ thay đổi
trên LSB của ảnh thường thấp so với lượng thông tin đem giấu (hoặc kích cỡ ảnh) vì
vậy phát hiện bằng các kỹ thuật phát hiện mù trên LSB của ảnh thường cho kết quả


2

không cao. Các phương pháp phát hiện tiêu biểu là phương pháp phát hiện dựa trên kỹ
thuật giấu HKC, phương pháp phát hiện dựa kỹ thuật giấu thuận nghịch dựa trên biểu
đồ giá trị sai phân DIH (Difference Image Histogram), phương pháp phát hiện dựa trên
kỹ thuật giấu tin IWH và RVH.
Đã có nhiều công trình nghiên cứu công bố trên thế giới thành công theo hai
hướng này. Tuy nhiên, các kỹ thuật giấu tin ra đời sau ngày càng tinh xảo hơn đòi hỏi
các nhà phát hiện ảnh giấu tin không ngừng tìm ra phương pháp phát hiện phù hợp bắt
kịp với xu hướng phát triển của kỹ thuật giấu. Đặc biệt với tốc độ phát triển nhanh
chóng của Internet thì nhu cầu trao đổi thông tin bằng ảnh ngày càng lớn mạnh, do đó
để đảm bảo an toàn an ninh, quốc phòng hay nhằm hỗ trợ nâng cấp, cải tiến kỹ thuật
giấu nào đó an toàn hơn đang là bài toán cấp thiết đặt ra cho các nhà nghiên cứu trong
lĩnh vực an toàn thông tin hiện nay.
2. Mục tiêu và phạm vi nghiên cứu
- Từ những vấn đề đã trình bày trên, trong luận văn này tập trung nghiên cứu kỹ
thuật phát hiện ảnh có giấu tin theo hướng chính đưa ra kỹ thuật phát hiện mù cho ảnh
có giấu tin trên LSB của miền không gian và miền tần số cụ thể là tìm hiểu kỹ thuật
phát hiện mù cho ảnh có giấu tin trên LSB bằng phương pháp phân tích độ lệch chuẩn,
- Đối tượng ảnh nghiên cứu là các ảnh dạng BITMAP như các định dạng: JPG,
GIF, PNG, TIF, BMP.
3. Nội dung của luận văn

- Tìm hiểu tổng quan về giấu tin trong ảnh, phát hiện ảnh có giấu tin
- Trình bày một số kỹ thuật phát hiện mù cho ảnh có giấu tin nhất là kỹ thuật
phát hiện “độ lệch chuẩn”
- Xây dựng thử nghiệm chương trình cho kỹ thuật phát hiện độ lệch chuẩn.
4. Cấu trúc của luận văn
Luận văn gồm ba chương trong đó:
Chương 1 giới thiệu tổng quan về giấu tin trong ảnh, phát hiện ảnh có giấu tin
và các nghiên cứu liên quan.
Chương 2 Trình bày kỹ thuật phát hiện mù ảnh giấu tin dựa trên kỹ thuật phân
tích độ lệch chuẩn.
Chương 3 Trình bày việc xây dựng và thử nghiệm chương trình


3

Chương 1

TỔNG QUAN VỀ KỸ THUẬT GIẤU TIN TRONG ẢNH
Giấu tin là một lĩnh vực rộng lớn trong đó những thông tin số cần bảo mật sẽ
được giấu trong một đối tượng dữ liệu số khác được gọi là môi trường giấu tin. Môi
trường giấu tin phổ biến là giấu tin trong đa phương tiện như giấu tin trong các file
ảnh, audio, video...và được ứng dụng rộng rãi nhất đó là giấu tin trong ảnh số. Trong
chương này, khóa luận trình bày về các khái niệm cơ bản liên quan đến giấu tin nói
chung, quá trình phát triển của giấu tin và các ứng dụng của giấu tin.
1.1 Một số khái niệm cơ bản về giấu tin
1.1.1 Sơ lược về lịch sử giấu tin
Giấu tin bắt nguồn từ Hy Lạp, tiếng Hy Lạp gọi đó là Stenography có nghĩa là "dòng
chữ bị che phủ". Mục đích cơ bản của giấu tin là nhúng mẩu tin mật vào một môi trường
truyền tin bình thường sao cho người khác không thể phát hiện ra mẩu tin mật đó.
Trong lịch sử, những câu chuyện về nghệ thuật giấu tin được lan truyền từ đời

này qua đời khác [2]. Ví dụ, vào thế kỉ thứ 5 trước Công Nguyên, Histaiacus đã cạo
trọc đầu một nô lệ, xăm lên đó một thông điệp, sau đó khi đầu nô lệ này mọc tóc trở
lại, ông ta phái nô lệ đó mang thông điệp đã được giấu trên đầu đi. Ở các tiểu vương
quốc Ả Rập, tại thành phố về khoa học và công nghệ của vua Abdulaziz, một dự án đã
được khởi xướng để dịch thành tiếng Anh các văn bản tiếng Ả Rập cổ về các dòng chữ
bí mật được cho là đã viết cách đây 1200 năm. Một vài văn bản này được tìm thấy ở
Thổ Nhĩ Kỳ và Đức. Khoảng 500 năm trước, một nhà toán học người Ý tên là Jérôme
Cardan đã sáng tạo lại một phương thức văn bản bí mật cổ xưa của người Trung Quốc.
Văn bản được làm như sau: một tờ giấy làm mặt nạ có nhiều lỗ thủng mà người gửi và
người nhận đều biết, mặt nạ này sẽ được đặt trên một tờ giấy trắng và người gửi sẽ viết
thông điệp bí mật qua các lỗ thủng trên mặt nạ sau đó vứt mặt nạ đó đi và điền phần
còn lại vào tờ giấy trắng như thể tờ giấy này toàn các thông tin vô thưởng vô phạt
(hình 1.1)

Hình 1.1: Từ trái qua phải: Mặt nạ, văn bản, thông điệp được
truyền bí mật trong văn bản
Ngày nay nghệ thuật giấu tin được nghiên cứu để phục vụ các mục đích tích
cực như bảo vệ bản quyền, thủy vân số, hay phục vụ giấu các thông tin bí mật về quân
sự và kinh tế. Sự phát triển của công nghệ thông tin đã tạo ra những môi trường giấu
tin mới vô cùng tiện lợi và phong phú. Người ta có thể giấu tin trong các tệp ảnh, trong


4

các tệp âm thanh, tệp văn bản. Cũng có thể giấu tin ngay trong các khoảng trống hay
các phân vùng ẩn của môi trường lưu trữ như đĩa cứng, đĩa mềm. Các gói tin truyền đi
trên mạng cũng là môi trường giấu tin quan trọng và ngay cả các tiện ích phần mềm
cũng là môi trường lý tưởng để gài các thông tin quan trọng để xác nhận bản quyền.
1.1.2 Khái niệm giấu tin
“Giấu tin” là một kỹ thuật nhúng (giấu) một lượng thông tin số nào đó vào trong một

đối tượng dữ liệu số khác. Giấu tin trong ảnh số là giấu các mẩu tin cũng là dạng số trong
máy tính vào các tệp ảnh nhị phân sao cho không bị người ngoài phát hiện.
Kỹ thuật giấu tin nhằm hai mục đích: một là bảo mật cho dữ liệu được đem giấu,
hai là bảo vệ cho chính đối tượng mang tin giấu. Hai mục đích khác nhau này dẫn đến
hai kỹ thuật chủ yếu của giấu tin. Đó là giấu tin mật và thủy vân số. Nói chung giấu tin
trong đa phương tiện là tận dụng “độ dư thừa” của phương tiện giấu để thực hiện việc
giấu tin mà người ngoài cuộc “khó” cảm nhận được có thông tin giấu trong đó.
1.2. Các mô hình giấu tin cơ bản
Mô hình của kỹ thuật giấu tin cơ bản được mô tả theo 2 hình vẽ sau:

Hình 1.2.1a: Lược đồ quá trình giấu tin
Hình 1.2.1a biểu diễn quá trình giấu tin cơ bản. Trong đó, phương tiện chứa tin
có thể bao gồm: văn bản, ảnh, audio, video… Thông tin cần giấu tùy theo mục đích của
người sử dụng, nó có thể là các thông điệp, các logo, hình ảnh bản quyền… Thông tin
được giấu vào trong phương tiện chứa tin nhờ một bộ nhúng. Bộ nhúng là những
chương trình thực hiện theo những 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ư trong một số hệ mật mã. Đầu ra của quá trình giấu tin là phương


5

tiện chứa đã được giấu. Các phương tiện này có thể được phân phối trên mạng.
Hình 1.2.1b mô tả quá trình giải mã thông tin đã giấu. Với đầu vào là phương
tiện đã chứa tin giấu, một bộ giải mã tin (tương ứng với bộ nhúng) cùng với khóa sẽ
thực hiện việc giải mã thông tin. Đầu ra của quá trình là phương tiện chứa tin và thông
tin đã giấu. Trong trường hợp cần thiết, thông tin giấu lấy ra có thể được xử lý, kiểm
định và so sánh với thông tin đã giấu ban đầu.

Hình 1.2.1b: Lược đồ cho quá trình giải mã
1.2.1. Giấu tin trên ảnh tĩnh

Các đặc trưng giấu tin trong ảnh số
Giấu tin trong ảnh chiếm vị trí chủ yếu trong các kỹ thuật giấu tin phần lớn
cũng tập trung vào các kỹ thuật giấu tin trong ảnh. Các phương tiện chứa khác thì cũng
có các kỹ thuật giấu khác nhau. Đối tượng ảnh là một đối tượng dữ liệu được tri giác
tĩnh có nghĩa là dữ liệu tri giác không biến đổi theo thời gian (không giống như audio
và video) và có nhiều định dạng cũng như tính chất của các ảnh khác nhau nên các kỹ
thuật giấu tin trong ảnh phải chú ý những đặc trưng và tính chất cơ bản sau đây:
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 ảnh tĩnh. Dù đã giấu tin vào trong ảnh hay chưa thi
khi ta xem ảnh bằng tri giác, dữ liệu ảnh không thay đổi theo thời gian, điều này khác
với dữ liệu audio hay video vì khi ta nghe hay xem 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


6

hưởng lớn đối với các kỹ thuật giấu thông tin trong ảnh với kỹ thuật giấu tin trong
audio hay video.
Kỹ thuật giấu phụ thuộc ảnh
Kỹ thuật giấu tin phụ thuộc vào các loại ảnh khác nhau. Chẳng hạn như đối với
ảnh đen trắng, ảnh xám hay ảnh mầu đều đòi hỏi những kỹ thuật riêng. Ảnh nén hay
ảnh không nén cũng có những kỹ thuật khác nhau vì ảnh nén có thể mất mát thông tin
do nén ảnh...
Kỹ thuật giấu tin lợi dụng tính chất hệ thống tri giác của con người (HVS)
Giấu tin trong ảnh ít nhiều cũng gây ra những thay đổi dữ liệu ảnh gốc. Dữ liệu
ảnh được quan sát bằng hệ thống tri giác (HVA- Human Vision Systen) của con người
nên các kỹ thuật giấu tin phải đảm bảo một yêu cầu cơ bản là nhưng thay đổi trên ảnh
phải rất nhỏ sao cho bằng mắt thường không thể nhận ra được sự khác biệt vì có như
thế mới đảm bảo được độ an toàn cho thông tin giấu. Rất nhiều kỹ thuật đã lợi dụng
được tính chất của hệ thống tri giác để giấu tin chẳng hạn như mắt người cảm nhận về

sự biến đổi về độ xám kém hơn sự biến đổi về màu hay cảm nhận của mắt về màu
xanh da trời (Blue) là kém nhất trong ba màu cơ bản RGB (G-Red:đỏ, G-Green: xanh
lá cây, B-Blue: xanh da trời).
Giấu tin trong ảnh tác động lên dữ liệu ảnh nhưng không thay đổi kích
thước của ảnh
Các phép toán thực hiện việc giấu thông tin sẽ được thao tác trên dữ liệu của
ảnh. Dữ liệu ảnh bao gồm cả phần thông tin (header), bảng màu (có thể có) và dữ liệu
ảnh. Khi giấu thông tin các phướng pháp giấu đều biến đổi các giá trị của các bít trong
dữ liệu ảnh chứ không thêm vào hay bớt đi dữ liệu ảnh. Do vậy mà kích ảnh trước và
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 tin
Đây là yêu cầu quan trọng đối với giấu thông tin trong ảnh. Sau khi giấu thông
tin bên trong ảnh phải đảm bảo được yêu cầu không bị biến đổi để có thể bị phát hiện
dễ dàng so với ảnh gốc. Yêu cầu này dường như khá đơn giản đối với ảnh mầu và ảnh
xám bởi mỗi một pixel ảnh được biểu diễn bởi một bit, nhiều giá trị và khi ta thay đổi
một giá trị nhỏ nào đó thì 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ỉ gồm hai giá trị hoặc trắng hoặc đen, và ta biến đổi một bit
đen thành một bit trắng thì không khéo sẽ rất dễ bị phát hiện. Do đó yêu cầu đối với
các thuật toán giấu thông 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


7

việc làm sao cho giấu 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 cứ một biến đổi nào trên ảnh
Vì phương pháp giấu tin trong ảnh dựa trên việc điều chỉnh các giá trị của các
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 đó làm thay đổi giá trị của các bit sẽ làm cho
thông tin giấu sẽ bị 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.
Tính cần thiết của ảnh gốc khi giải mã
Các kỹ thuật giấu tin phải phân biệt rõ riệt quá trình giả mã ảnh để lấy thông
tin giấu có cần ảnh gốc hay không. Đa số kỹ thuật giấu tin mật thì thường không cần
ảnh gốc khi giải mã. 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 giấu mà không cần dùng đến ảnh gốc để so
sánh đối chiếu.
Tuy nhiên nhiều kỹ thuật giấu tin cũng sử dụng ảnh gốc khi giải mã, phương pháp
này có tác dụng cho việc đồng bộ hóa ảnh giấu và ảnh gốc. Điều này rất cần thiết khi phải
xử lý với các tấn công trên ảnh. Gỉa sử như phép tấn công xoay ảnh chẳng hạn, nhờ có
ảnh gốc ta so sánh và đồng bộ hóa, khôi phục dạng ban đầu của ảnh thì có thể khôi phục
lại được tin đã giấu. Những phương pháp này cũng gặp khó khăn khi dữ liệu gốc lớn. Ví
dụ như giấu tin trong video, với lượng dữ liệu lớn nếu như để giải mã tin mà dùng phương
pháp này thì khối lương thao tác quá nhiều và không thể áp dụng được.
Trên đây là những tính chất và đặc điểm cơ bản chung của giấu tin trong ảnh.
Riêng đối với ứng dụng giấu tin mật ( stegangraphy) thì tính chất ẩn, lượng thông tin
giấu và độ an toàn là ba tính chất quan trọng nhất.
1.2.2 Giấu thông tin trong ảnh đen trắng và ảnh màu, ảnh đa cấp xám
Vì là một lĩnh vực mới phát triển nhưng đã và đang được ứng dụng rộng rãi nên
giá một phương pháp so với phương pháp khác người ta dựa vào một số các tính chất
của phương pháp hay tiêu chí đánh giá sau:
Tính vô hình
Giấu tin trong ảnh sẽ làm biến đổi ảnh 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 mật trở nên vô hình trên
ảnh mang, người dùng không thể phát hiện trong đó có ẩn chứa thông tin. Tuy nhiên
không phải lúc nào người ta cũng cố gắng để đạt được tính vô hình cao nhất, ví dụ
trong truyền hình, người ta gắn hình ảnh mờ gọi là thuỷ ấn để bảo vệ bản quyền.
Khả năng chống giả mạo



8

Vì mục đích của một phương pháp giấu tin là chuyển đi thông tin mật. Nếu
không thể do thám tin mật thì kẻ địch cũng sẽ cố tìm cách làm sai lạc thông tin mật,
làm giả mạo thông tin để gây bất lợi cho đối phương. Một phương pháp giấu tin tốt sẽ
đảm bảo tin mật không 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 (nhưng không biết khoá) và có ảnh mang. Đối với lĩnh
vực thuỷ ấn số thì khả năng chống giả mạo là đặc tính vô cùng quan trọng. Vì có như
vậy mới bảo vệ được bản quyền, chứng minh tính pháp lý của sản phẩm.
Dung lượng giấu
Dung lượng giấu được tính bằng tỷ lệ của lượng tin giấu so với kích thước ảnh.
Vì tin mật được gửi cùng với ảnh mang qua mạng nên đây cũng là một chỉ tiêu
quan trọng. Các phương pháp đều cố làm sao giấu được nhiều tin trong khi vẫn giữ
được bí mật. Tuy nhiên trong thực tế người ta luôn phải cân nhắc giữa dung lượng và
các chỉ tiêu khác như tính vô hình, tính ổn định.

Hình 1.3: Cân nhắc giữa chất lượng, dung lượng và tính bền vững
Tính bền vững
Sau khi giấu tin vào ảnh mang, bản thân ảnh mang có thể phải qua các khâu
biến đổi khác nhau như lọc tuyến tính, lọc phi tuyến, thêm nhiễu, làm sắc nét, mờ nhạt,
quay, nén mất dữ liệu. Tính bền vững là thước đo sự nguyên vẹn của thông tin mật sau
những biến đổi như vậy.
Độ phức tạp thuật toán
Chỉ tiêu độ phức tạp trong mã hoá và giải mã cũng là một yếu tố quan trọng
trong đánh giá các phương pháp giấu tin trong ảnh. Yêu cầu về độ phức tạp tính toán
phụ thuộc vào từng ứng dụng. Ví dụ một ứng dụng tạo thuỷ ấn để đánh dấu bản quyền
cần phải có độ phức tạp tính toán cao thì mới đảm bảo chịu được sự tấn công của
nhiều tin tặc nhằm phá huỷ thuỷ ấn.

Sự khác nhau giữa giấu thông tin trong ảnh đen trắng và ảnh màu, ảnh đa
cấp xám


9

Mỗi loại ảnh khác nhau sẽ có các kỹ thuật khác nhau và có các yêu cầu kỹ thuật
khác nhau. Trong phần này chúng ta sẽ phân biệt các tính chất:
Khởi nguồn của giấu thông tin trong ảnh là thông tin được giấu trong ảnh màu
hoặc ảnh xám, trong đó mỗi pixel ảnh mang nhiều giá trị được biểu diễn bằng nhiều
bít. Với những ảnh đó thì việc thay đổi một giá trị nhỏ của một pixel thì chất lượng
ảnh gần như không thay đổi, và khả năng bị phát hiện là rất thấp dưới sự quan sát bằng
mắt thường. Do đó hệ thống tri 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 ẩn của thông tin giấu trong ả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 ẩn của thông tin của thông tin đảm bảo khó khăn hơn nhiều. Đặc biệt đối 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. Và
do đó với ảnh đen trắng thì số lượng thuật toán không nhiều, và vẫn chưa đạt được kết
quả mong muốn. Có thuật toán giấu được nhiều thông tin vào ảnh thì chất lượng ảnh
lại kém và 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 được giấu ít và quá đơn giản không đảm bảo được độ an toàn
của 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.
Giấu thông tin trong ảnh đen trắng

Giấu thông tin trong ảnh ảnh màu hoặc

ảnh xám
Thông tin giấu ít hơn đối với ảnh có Thông tin giấu nhiều hơn

cùng kích cỡ với ảnh màu
Khả năng bị phát hiện trong ảnh có giấu Khả năng bị phát hiện thấp
thông tin cao hơn ảnh màu
Độ an toàn thông tin thấp do dễ bị phát Độ an toàn cao
hiện có thông tin chứa bên trong
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 di
truyền.

1.2.3 Cấu trúc ảnh bitmap
Ảnh BITMAP là định dạng ảnh do hãng microsoft đề xuất có phần mở rộng là
BMP. Loại ảnh này được truyền tải, sử dụng rộng rãi trên máy tính và các thiết bị điện
tử khác. Ảnh bitmap được chia thành ba dạng: ảnh nhị phân (ảnh đen trắng), ảnh đa
mức xám, ảnh màu.


10

Ảnh đen trắng: là ảnh mà mỗi điểm ảnh chỉ thể hiện một trong hai trạng thái
0 và 1 để biểu diễn trạng thái điểm ảnh đen hay trắng.

Hình 1.4a: Ví dụ về ảnh đen trắng
Ảnh đa mức xám: là ảnh mà mỗi điểm ảnh được biểu diễn bởi một giá trị và
đó là cường độ sáng của điểm ảnh.

Hình 1.4b: Ví dụ về ảnh đa cấp xám
Ảnh màu: là ảnh mà mỗi điểm ảnh được biểu diễn bởi ba đại lượng R, G, B.
Số lượng màu có thể của loại ảnh này lên tới 265^3 màu khác nhau. Nhưng số lượng

màu trên thực tế của một ảnh nào đó thường khá nhỏ. Để tiết kiệm bộ nhớ với các ảnh
có số lượng màu nhỏ hơn 256 thì màu các điểm ảnh được lưu trữ dưới dạng bảng
màu.Với ảnh có số màu lớn thì các điểm ảnh không tổ chức dưới dạng bảng màu, khi
đó giá trị của các điẻm ảnh chinh là giá trị của các thành phần màu R,G,B. Với ảnh có
số lượng màu lớn,tùy theo chất lượng ảnh mà quyết định số bit để biểu diễn cho mỗi
màu thường là 24 bit, hoặc 32 bit.
Với ảnh 24 bit mỗi thành phần màu được biểu diễn bởi một byte(8 bit).


11

Hình 1.5: Ví dụ về ảnh màu
Ảnh bitmap đựợc lưu trữ dưới dạng nhị phân, một tệp dạng bitmap được chia
thành các phần cơ bản như:
-Phần tiêu để tệp (Bitmap header)
-Thông tin về ảnh (Bitmap Infor)
-Bảng màu (Palette Table)
-Vùng dữ liệu(Data)
Thứ tự được lưu trữ trong bộ nhớ như sau: Bitmap Header →Bitmap Infor →
Palette Table→ Data.
Ý nghĩa của các phần trong tệp ảnh bitmap.
-Bitmap Header: Mô tả thông tin chung về tệp định dạng bitmap, độ lớn của
phần này cố định với mọi tệp bitmap.
-Bitmap Infor: Mô tả thông tin về ảnh được lưu trữ, độ lớn của phần này cố định.
-Pallete Table: Bảng màu của ảnh bitmap, độ lớn của phần này có thể bằng
không ( không có bảng màu) đối với ảnh đen trắng và ảnh màu có số lượng màu lớn
hơn 256 màu.
-Data: Thông tin về từng điểm ảnh, độ lớn của phần này phụ thuộc vào kich
thước ảnh. Phần Data lưu trữ ảnh theo hướng từ dưới lên trên và từ trái qua phải.
Kích thước và giá trị các trường trong tệp ảnh

Bitmap Header
Phần này có độ lớn cố định là 14 bytes, phần này dùng để mô tả thông tin
chung về tệp như:


12

Kiểu tệp, độ lớn và một số thông tin liên qua đến tệp.
Offset(byte)
Giá Trị
Ý nghĩa
1
‘B’
Định dạng kiểu tệp
2
‘M’
Định dạng kiểu tệp
3->6
Unsigned long
Kích thước tệp
7->10
Zero
Reserved
11->14
Unsigned long
Địa chỉ phần dữ liệu
Bảng 1.1: Ý nghĩa từng trường trong vùng Bitmap Header
Trong phần Bitmap Header có mô tả thông tin về độ dài tệp, thông tin này thực
sự cần thiết với mọi chương trình.Tuy nhiên qua thực nghiệm thấy rằng với một số tệp
thông tin này không chính xác. Người ta đưa cách tính kích thước tệp bitmap thông

qua công thức:
Tệp_Size=Sizeof(Bitmap Header) + Sizeof(Bitmap Infor) + Sizeof(Pallete) +
Sizeof(Data)
Địa chỉ vị (offset) của vùng dữ liệu có thể được xác định thông qua công thức:
Địa chỉ vùng data = 54+ Sizeof(Pallete)
Đối với ảnh đen trắng và ảnh màu có số lượng màu lớn hơn 256 thì giá trị địa
chỉ vị cố định là 54
Bitmap Infor:
Phần bitmap infor dùng để mô tả thông tin về ảnh đang dùng được lưu trữ trong
tệp kích thước của phần này cố định là 40 byte.
Ý nghĩa và giá trị của từng trường trong vùng Bitmap Infor được mô tả chi tiết
trong bảng:
Offset(byte)
Giá Trị
Ý nghĩa
1->4
40
Số lượng byte của vùng bitmap info
5->8
Unsigned long
Độ rộng của Ảnh tính theo Pixel
9->12
Unsigned long
Độ cao của Ảnh tính theo Pixel
13->14
1
Number of Color Plans
15->16
Unsigned long
Số bit để biểu diễn 1 pixel

17->20
Unsigned long
Kiểu nén
21->24
Unsigned long
Độ lớn của ảnh (byte)
25->28
Unsigned long
Độ phân giải của ảnh theo chiều ngang
29->32
Unsigned long
Độ phân giải của ảnh theo chiều dọc
33->36
Unsigned long
Số lượng màu trong bảng màu
37->40
Unsigned long
Số màu quan trọng
Bảng1.2: Ý nghĩa từng trường trong vùng BitmapInfor
Pallete Table:
Bảng màu là tập các màu sử dụng trong ảnh, mỗi một màu trong ảnh được gọi
là một entry và được lưu trữ bằng 4 byte, mỗi thành phần màu được lưu trữ một byte


13

còn một byte để dự trữ ( chứa dùng) và thứ tự là B,G,R,Reserved. Như vậy kích thước
của bảng màu có thể tinh theo công thức:
Sizeof(Pallete Table)=(Number color)*4
Data:

Vùng dữ liệu ảnh là giá trị của điểm ảnh, kích thước của vùng dữ liệu ảnh phụ
thuộc vào độ rộng, chiều cao và kiểu ảnh. Với ảnh 8 bit màu thì ta có công thức:
Sizeof(Data)=Width*Height
Với ảnh có số màu lớn hơn 256 ta có công thức
Sizeof(Data)=Width*Height*Bit_Number_of_Pixel
Vậy tại vùng Data là giá trị các thành phần màu cơ bản, số lượng bit dùng để
biểu diễn giá trị cho từng thành phần màu có thể sẽ khác nhau phụ thuộc vào chất
lượng ảnh. Ảnh 24 bit mỗi thành phần màu đựơc lưu trữ bởi 8 bit và thứ tự lưu trữ là
B, G, R.
1.3. Các kỹ thuật giấu tin điển hình
Trong phần trên chúng ta đã tìm hiểu cấu trúc của ảnh đen trắng, ảnh màu.
Trong phần này chúng ta sẽ nghiên cứu cơ sở lý thuyết của các kỹ thuật giấu tin vào
các ảnh này. Hiện nay có 4 phương pháp thường được sử dụng để thực hiện kỹ thuật
giấu tin.
1.3.1 Giấu tin mật trong khối bit sử dụng tính chẵn lẻ của tổng số bit 1
1.3.1.1 Ý tưởng
Đây là kỹ thuật đơn giản nhất trong các kỹ thuật giấu tin. Ý tưởng cơ bản của
kỹ thuật này là chia một ảnh thành các khối nhỏ và trong mỗi khối nhỏ sẽ giấu một bit
thông tin. Dựa vào tính chẵn lẻ của tổng số các bit 1 trong khối để qui định giấu bit 1
hay 0. Cụ thể sau khi giấu thì tổng số các bit 1 trong khối và bit cần giấu sẽ có cùng
tính “chẵn lẻ”. Thuật toán này dùng cho ảnh đen trắng, ảnh mầu và ảnh đa cấp xám.
Tuy nhiên, trong phần trình bày ở mục ngay sau đây sẽ minh họa thuật toán cho ảnh
đen trắng, phần trình bày áp dụng thuật toán cho ảnh mầu và ảnh đa cấp xám sẽ được
đưa ra tiếp sau.
1.3.1.2. Thuật toán giấu tin
Input:
-Một file ảnh bitmap đen trắng FF
-Một file thông tin cần giấu Fb
-Một khóa K (đó là kích thước khối nhỏ)
Output:

-Một file ảnh F’ đã giấu tin.
Cách thức thực hiện:


14

a) Tiền xử lý
- Chuyển file thông tin cần giấu Fb sang dạng xâu nhị phân D=b1b2…bk.
- Đọc header của ảnh (phần chứa thông tin ảnh), đọc bảng mầu, sau đó đọc toàn
bộ dữ liệu ảnh vào một mảng hai chiều (ma trận) M để sử dụng cho việc giấu tin.
b) Quá trình giấu tin
- Bước 1: Chia ma trận M thành các khối nhỏ Bi kích thước K = mxn.
- Bước 2: Giấu bit dữ liệu bi vào khối Bi.
For each Bi
if sum(Bi) ≡ bi (mod 2) then giữ nguyên khối Bi.
else
B’i ← đảo bit bất kì trong Bi.
End;
Giải thích thuật toán:
- Chia phần thông tin ảnh (ma trận hai chiều điểm ảnh) M thành các khối nhỏ
có kích thước K. (K = m x n). Giả sử ảnh gốc ban đầu có kích thước M x N, ảnh gốc
được chia thành các khối nhỏ, tổng số các khối nhỏ sẽ là k = (M x N)/ (m x n) khối. Vì
là ảnh đen trắng nên mỗi khối là một ma trận hai chiều của các giá trị 0 và 1.
Sau khi phân thành các khối nhỏ ta chọn các khối để giấu tin, ta có thể chọn
ngẫu nhiên các khối nhưng để cho đơn giản ta coi như các khối được chọn tuần tự từ
khối đầu tiên cho đến khi hết thông tin cần giấu.
- Mỗi khối nhỏ sẽ được dùng để giấu một bit thông tin theo quy tắc: sau khi
giấu thì tổng số bit 1 trong khối và bit thông tin cần giẫu sẽ có cùng tính chẵn lẻ.
Nghĩa là nếu giấu bit 1 vào khối thì khối đó phải thỏa mãn tính chất tổng số bit 1 trong
khối là số lẻ. Ngược lại nếu giấu bit 0 vào khối thì khối đó phải thỏa mãn tính chất

tổng số bit 1 trong khối là chẵn.
Như vậy, mỗi lần giấu một bit ta có hai trường hợp sau:
- Trường hợp thứ nhất: khối đã thỏa mãn tính chất để giấu một bít thông tin.
Nghĩa là khi cần giấu bit 1 thì tổng số bit 1 đã lẻ rồi hoặc là khi cần giấu bit 0 thì tổng
số bit 0 đã chẵn. Trong trường hợp như thế ta không cần thay đổi và xem như bit
thông tin đã được giấu.
- Trường hợp thứ hai:: khối không thỏa mãn tính chất để giấu một bít thông tin.
Nghĩa là khi cần giấu bit 1 thì tổng số bit 1 là chẵn hoặc là khi cần giấu bit 0 thì tổng
số bit 0 là lẻ. Trong trường hợp này ta cần thay đổi khối đó sao cho thỏa mãn điều kiện
bằng cách đảo trị ngẫu nhiên một bit (từ 0 sang 1, hoặc từ 1 sang 0). Thí dụ:
Xét thí dụ dưới đây minh họa cho hai trường hợp trên.
Cho khối B như sau:


15

0

1

0

0

1

0

1


1

1

1

0

1

0

0

0

1

Hình 1.6. Khối B kích thước K = 4 x 4, khối B có 8 bit 1
Trường hợp 1: Giả sử ta muốn giấu bit b = 1 vào khối B.
Số lượng bít 1 trong khối B là 8. Như vậy khối B không thỏa mãn yêu cầu. Để giấu bit
1 vào khối B ta thay đổi một bit bất kỳ trong khối, đổi bit 0 thành bít 1 hoặc bit 1 thành
bit 0, ta thu được khối B’. Giả sử ta đổi như hình sau:
0
1
1
0

1 0 0
0 1 0 0

0 1 1
1 0 1 1
1 0 1
1 0 0 1
0 0 1
0 0 0 1
Khối B
Khối B’
Hình 1.7 Thay đổi bit trong khối B
Khi đó ta có khối B’ có 7 bit 1 thỏa mãn tính chất.
Trường 2: Giả sử ta giấu bit b = 0 vào khối B.
Khối B có 8 bit 1 thỏa mãn tính chất. Nên khối B được bảo toàn và bit dữ liệu b
= 0 coi như đã được giấu.
Mỗi lần giấu một bit ta lại lấy một khối để giấu theo quy tắc trên cho đến hết lượng
thông tin cần giấu. Sau khi giấu xong ta được một ma trận hai chiều dữ liệu ảnh mới.
Trong thuật toán giấu tin này, khóa đơn giản chỉ là kích thước khối K=mx n.
Nếu biết kích thước của khối thì ta dễ dàng giải mã như sau:
c) Quá trình giải tin giấu
Input
- F’ là ảnh đã được giấu dãy bit bí mật D
- K là khóa bí mật, đó là kích thước khối nhỏ đã được xác định trước
Output
- F là file ảnh chứa tin đã được giấu
- D là dãy bit bí mật đã giấu
Các bước thực hiện
- Đọc header ảnh để biết các thông tin về ảnh, đọc bảng mầu, đọc phần dữ liệu
ảnh vào ma trận hai chiều M
- Chia M thành các khối nhỏ với kích thước K.



16

- Theo một thứ tự xác định trước, xét từng khối nhỏ B, giải tin theo quy tắc sau
- Nếu tổng số các bit 1 là lẻ thì ta thu được bit giấu là 1
- Nếu tổng số các bit 1 là chẵn thì ta thu được các bit giấu là 0.
Như vậy, sau khi xử lý hết các khối đã giấu ta thu được chuỗi bit đã giấu b’
- Chuyển file xâu bit nhị phân sang file văn bản.
1.3.1.3. Phân tích thuật toán
Thuật toán giấu tin trong ảnh dựa vào tính chẵn lẻ của tổng số bit 1 ở trên là
rất đơn giản. Sau khi nghiên cứu thuật toán này ta có thể đưa ra một số nhận định sau:
- Việc chọn kích thước khối để giấu tin cần căn cứ vào kích thước ảnh và
lượng tin cần giấu sao cho các thông tin giấu có thể giàn trải trên toàn ảnh. Ví dụ nếu
ta có ảnh kích thước 512 x 512 pixel và có một lượng thông tin cần giấu là 100 kí tự.
Như vậy, file thông tin nhị phân cần giấu là 100 x 8 = 800 bit.
Ta có thể thấy để giấu hết thông tin cần ít nhất 800 khối, vậy thì kích thước
khối ta có thể chia trên ảnh là (512x512)/800=327 (dư 544). Với cách tính này thì kích
thước tối đa của một khối là 327. Chẳng hạn ta có thể chọn kích thước cho một khối
20x16, 30x15…
Nên chọn khối có kích thước lớn vì như vậy trong trường hợp các khối bị thay
đổi thì khoảng cách các bit bị biến đổi sẽ thưa hơn và làm cho ảnh sau khi giấu khó
nhận biết hơn.
-Với thuật toán này việc chọn khối khá đơn giản. Ta có thể bắt đầu từ khối đầu
tiên và các khối tiếp theo một cách tuần tự. Tuy nhiên ta có thể làm khó thuật toán hơn
bằng cách chọn ngẫu nhiên một khối chưa giấu tin ở mỗi lần giấu. Khi đó ta đã làm
tăng độ an toàn của thuật toán vì khóa lúc đó còn bao gồm cả chỉ số khối đã giấu tin
cho từng bit. Hoặc ta có thể thay đổi kích thước khối ở mỗi lần giấu. Chẳng hạn như
lần thứ nhất có kích thước khối là 8x8, lần thứ hai là 8x12,… trong những trường hợp
này thì khóa sẽ là kích thước khối ở mỗi lần giấu.
- Bản chất của kỹ thuật giấu tin trong ảnh đen trắng đó là một quy ước nào đó
dưới dạng một mệnh đề (tân từ) P. Nếu tân từ P được thỏa thì ứng với bit 1, ngược lại

ứng với bit 0. Tân từ P trong thuật toán trên là sum(B) ≡ b (mod 2).
1.3.1.4. Áp dụng thuật toán cho ảnh màu và ảnh đa cấp xám
Nhược điểm cơ bản của phương pháp dùng ảnh đen trắng là thông tin giấu vào
đó được rất ít. Nếu giấu nhiều thông tin thì ảnh sẽ thay đổi và người ta dễ dàng phát
hiện ra sự có mặt của thông tin ẩn. Do đó khi giấu thông tin mật người ta thường chọn
ảnh màu hoặc ảnh đa cấp xám. Các ảnh màu và ảnh đa cấp xám có giá trị mỗi điểm


17

ảnh được biểu diễn bằng nhiều bít. Trong dãy các bít này có một bít được gọi là bít ít
quan trọng nhất (LSB – Least Significant Bit).
LSB là bit mà khi ta đảo giá trị của nó thì điểm màu chỉ bị thay đổi ít nhất. Thí
dụ với ảnh đa cấp xám, mỗi mức xám g được biểu diễn bởi số nguyên không âm, thì
mức xám g sẽ sai khác ít nhất so với hai mức xám liền kề là g–1 và g+1. Trong trường
hợp này bít LSB chính là bit thấp nhất trong dạng biểu diễn nhị phân của g. Hầu hết
các thuật toán giấu tin trên ảnh mầu hoặc ảnh đa cấp xám đều áp dụng gián tiếp thuật
toán giấu tin trên ảnh đen trắng theo sơ đồ sau:
- Bước 1: Tạo ảnh đen trắng F từ ảnh mầu Fc bằng một kỹ thuật nào đó. Chẳng
hạn lấy từ mỗi điểm màu trong Fc một bít quan trọng nhất để làm một điểm ảnh cho F.
- Bước 2: Giấu tin vào ảnh đen trắng F để thu được ảnh đen trắng F’.
- Bước 3: Đưa lại các bit của F’ vào mỗi điểm ảnh màu tương ứng của Fc để
thu được ảnh màu kết quả là F’c.
Như vậy, thuật toán giấu tin trong ảnh đen trắng là cơ sở cho các thuật toán
giấu tin nói chung.
1.3.2. Kỹ thuật giấu tin WU_LEE
Kỹ thuật giấu tin theo khối bit sử dụng tính chẵn lẻ của tổng số bit 1 trong
khối ở trên thể hiện độ an toàn không cao do chỉ có duy nhất kích thước khối là khóa
cho quá trình giấu tin, đồng thời ảnh chứa thông tin giấu cũng dễ bị phát hiện do
kỹ thuật có thể sẽ đảo bit trong các khối ảnh toàn màu đen hoặc màu trắng dẫn tới sự

bất thường ở vị trí đảo so với các điểm lân cận trong khối. Thuật toán giấu tin trong
ảnh đen trắng do M.Y.Wu và J.H.Lee đưa ra năm 1989 [4] đã khắc phục được phần
nào những tồn tại nêu trên bằng cách đưa thêm khóa K cho việc giấu tin và các điều
kiện để đảo bít trong mỗi khối. Trước khi xem xét thuật toán ta có một số định nghĩa
sau:
Định nghĩa 1.1: Gọi x và y là hai bit tùy ý, phép nhân bit kí hiệu là ∧ trên hai
bit x và y ; phép cộng loại trừ (còn gọi là phép XOR) kí hiệu là ⊕ trên hai bit x và y
được định nghĩa thông qua bảng chân trị dưới đây.
x
y x∧y x⊕y
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
0
Hình 2.7. Bảng giá trị phép toán XOR
Với mỗi ma trận A, kí hiệu A[i,j] là phần tử trên hàng i, cột j của ma trận A.
Hai phép toán trên cũng được mở rộng cho các dãy bit hoặc cho các ma trận bit.
Ðịnh nghĩa 1.2: hai ma trận A và B có cùng kích thước m x n ta định nghĩa

A ^ B = C, trong đó C[i,j] = A[i,j]^B[i,j]
A⊕ B = C, trong đó C[i,j] = A[i,j]⊕B[i,j]


18

Ðịnh nghĩa 1.3: phép nhân theo vị trí trên hai ma trận A và B (các phần tử là
các số nguyên) có cùng kích thước như sau:
A⊗B = C, trong đó C[i,j] = A[i,j] * B[i,j]
Ðịnh nghĩa 1.4: Với ma trận số B ta định nghĩa sum(B) là tổng tất cả các phần
tử của ma trận B. Nếu B là ma trận bit thì sum(B) chính là tổng số các bit 1 có trong B
1.3.2.1 Ý tưởng thuật toán WU_LEE
Với mục tiêu là giấu được càng nhiều thông tin vào trong ảnh mà vẫn đảm bảo
được chất lượng ảnh càng tốt, ý tưởng chính của thuật toán là chia ảnh ra thành các
khối bằng nhau, tìm khối nào ít bị phát hiện nhất, giấu một bit thông tin vào khối đó.
1.3.2.2. Mô tả thuật toán
a. Quá trình giấu tin
Input:
- Ảnh nhị phân F
- Khóa bí mật K
- Xâu bit dữ liệu cần giấu D
Output:
- Một file ảnh F’ đã giấu tin bên trong.
Cách thức thực hiện:
-Bước 1: Chia ảnh F thành các khối nhỏ F, mỗi khối có kích thuớc K (K = m x n).
-Bước 2:
For each Fi
If 0< sum(Fi ∧ K) < sum(K) then
chuyển bước 3 để giấu thông tin vào khối Fi,
Else giữ nguyên khối Fi.

- Bước 3: Giả sử bit cần giấu vào khối Fi là b, thay đổi Fi như sau:
If sum(Fi ∧ K) mod 2 = b then giữ nguyên Fi
else if sum(Fi ∧ K) = 1 then
chọn ngẫu nhiên một bit [j,k] thỏa đồng thời Fi[j,k] = 1 và
K[j,k] = 1.
Đảo giá trị của bit Fi[j,k] = 1
else if sum((Fi ∧ K) = sum(K) – 1 then
Chọn ngẫu nhiên một bit [j,k] thỏa Fi[j,k] = 1 và K[j,k] = 1.
Đảo giá trị của bit Fi[j,k] = 0


×