Tải bản đầy đủ (.pdf) (56 trang)

Nghiên cứu nâng cao tính bảo mật trong giấu tin, ứng dụng thuật toán giấu tin CPT trên ảnh 24 bit màu

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 (1.89 MB, 56 trang )

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ


TRỊNH THỊ HỒNG



NGHIÊN CỨU NÂNG CAO TÍNH BẢO MẬT
TRONG GIẤU TIN, ỨNG DỤNG THUẬT TOÁN
GIẤU TIN CPT TRÊN ẢNH 24 BIT MÀU



Ngành: Công nghệ thông tin
Chuyên ngành: Hệ thống thông tin
Mã số: 60 48 05



LUẬN VĂN THẠC SĨ


NGƯỜI HƯỚNG DẪN KHOA HỌC: TS TỐNG MINH ĐỨC








Hà Nội-2011
1

MỤC LỤC
Chương 1 8
TỔNG QUAN VỀ GIẤU TIN TRONG ẢNH 8
1.1. Giới thiệu tổng quan giấu tin trong ảnh số 8
1.1.1. Khái niệm 8
1.1.2. Các thành phần của hệ thống giấu tin trong ảnh 9
1.1.3. Một số tính chất của giấu tin trong ảnh số 10
1.1.4. Phân loại kỹ thuật giấu tin trong ảnh 11
1.1.5. Ứng dụng kỹ thuật giấu tin trong ảnh 13
1.2. Giấu tin trong ảnh nhị phân 14
1.3. Giấu tin trong dữ liệu đa phương tiện 15
1.3.1 Giấu tin trong ảnh số. 15
1.3.2 Giấu tin trong audio 15
1.3.3 Giấu tin trong video 16
1.3.4 Giấu tin trong văn bản text. 16
1.4 Cấu trúc file ảnh bitmap 17
Chương 2 20
CÁC KỸ THUẬT GIẤU TIN TRONG ẢNH 20
2.1. Kỹ thuật giấu tin RLE 20
2.2. Kỹ thuật giấu tin theo khối bít 22
2.2.1. Nội dung thuật toán 23
2.2.2. Phân tích thuật toán 23
2.3. Kỹ thuật giấu tin Wu-Lee 24
2.3.1. Định nghĩa các phép toán với ma trận 24
2.3.2. Thuật toán Wu-Lee 24
2.3.3. Phân tích thuật toán 25
2.4. Kỹ thuật giấu tin CPT 26

2.4.1. Giới thiệu về phương pháp CPT 26
2.4.2. Nội dung thuật toán. 26
2.4.3. Phân tích đánh giá thuật toán 30
2.4.4. Cải tiến phương pháp CPT nâng cao dung lượng giấu tin. 30
2

Chương 3 35
GIẤU THÔNG TIN VÀO ẢNH MÀU VÀ ẢNH ĐA CẤP XÁM 35
3.1. Kỹ thuật gài các bít có trọng số thấp 36
3.2. Kỹ thuật giấu tin dựa trên bảng màu 38
3.3. Ứng dụng thuật toán CPT cải tiến giấu tin trên ảnh 24 bit màu 39
3.3.1. Ý tưởng 39
3.3.2. Thuật toán giấu tin 40
3.3.3. Thuật toán tách tin 41
3.4. Tăng cường tính bền vững của thông tin giấu trong ảnh 24 bit màu . 41
3.4.1. Ý tưởng 41
3.4.2. Thuật toán 42
Chương 4 48
MỘT SỐ KẾT QUẢ ĐẠT ĐƯỢC 48
4.1. Chương trình thử nghiệm 48
4.2. Hệ số đánh giá PSNR 49
KẾT LUẬN 52
TÀI LIỆU THAM KHẢO 53












3

THUẬT NGỮ TIẾNG ANH.
HSV (Human Visual System)
Hệ thống cảm nhận hình ảnh của mắt
người
INFORMATION HIDING
Giấu tin
STEGANOGRAPHY
Giấu tin mật
WATERMARKING
Thủy vân số
RLE (Run Length Coding)
Mã hóa độ dài
LSB (Least Significant Bit)
Bit có trọng số thấp
PSNR (peak noise ratio)
Hệ số đánh giá chất lượng ảnh sau khi
giấu tin
MSE (mean squared error)
Xác định hệ số cho hai ảnh có cùng
kích thước







4

MỞ ĐẦU

Sự phát triển của kỹ thuật máy tính và sự bùng nổ của mạng Internet đã
đem lại những thay đổi sâu sắc trong cuộc sống và xã hội chúng ta. Bên cạnh
những tiện nghi, thuận lợi mà thông tin kỹ thuật số mang lại cho chúng ta còn
nhiều những thách thức cho quá trình đổi mới. Trên một xã hội ảo, nơi diễn ra
việc trao đổi thông tin trong mọi lĩnh vực chính trị, quân sự quốc phòng, kinh
tế, thương mại … đã xuất hiện những vấn nạn tiêu cực đang rất cần đến các
giải pháp hữu hiệu cho vấn đề an toàn thông tin như nạn xuyên tạc thông tin,
truy nhập thông tin trái phép…
Trong quá trình phát triển của công nghệ, nhiều phương pháp bảo vệ
thông tin đã được đưa ra trong đó giải pháp dùng mật mã học là giải pháp
được ứng dụng rộng rãi nhất. Các hệ mã mật đã được phát triển nhanh chóng
và được ứng dụng rất phổ biến cho đến tận ngày nay. Đã có rất nhiều những
hệ mã phức tạp được sử dụng như DES, RSA, NAPSACK , giải pháp dùng
hệ mã mật đã được chứng minh thực tế là rất hiệu quả và được ứng dụng phổ
biến.
Sự phát triển của các phương tiện kỹ thuật như máy quét, máy ảnh, máy
ghi âm kỹ thuật số…, cũng như sự phát triển mạnh mẽ của các phần mềm có
tính năng mạnh cho phép người dùng có thể xử lý dễ dàng các dữ liệu đa
phương tiện (Multimedia Data). Một giải pháp đang rất thu hút được sự chú ý
trong thời gian gần đây, là giấu thông tin trong các dữ liệu đa phương tiện như
ảnh, file audio, video Đây được xem là thành tựu khoa học mới của nhân
loại.
Giấu tin trong dữ liệu đa phương tiện nói chung và giấu tin trong ảnh
nói riêng là một công nghệ mới rất phức tạp, nó đang được các nhà khoa học

tập trung nghiên cứu ở nhiều nước trên thế giới như Đức, Mỹ, Ý, Canada,
Nhật Bản, Trung quốc … Ở nước ta cũng có nhiều nhóm nghiên cứu và đã đạt
được những kết quả khả quan.
Đối với các thuật toán giấu tin, việc áp dụng các thuật toán giấu tin vào
trong ảnh số là một vấn đề được nhiều người quan tâm, việc áp dụng phải
đảm bảo tính hiệu quả, tính mật để đảm bảo tăng cường khả năng giấu tin, dữ
liệu sau khi giấu tin càng ít thay đổi so với dữ liệu gốc càng khó phát hiện.
Chính vì vậy, tác giả chọn đề tài “Nghiên cứu nâng cao tính bảo mật trong
5

giấu tin, ứng dụng thuật toán giấu tin CPT trên ảnh 24 bit màu” để tăng cường
giải pháp bảo mật cho tin giấu trong ảnh.
Cấu trúc luận văn ngoài phần mở đầu, kết luận, luận văn gồm 4
chương:
Chương 1: Tổng quan về giấu tin trong ảnh số.
Chương này trình bày về lịch sử giấu tin, một số ứng dụng của giấu tin
mật, trình bày về mô hình giấu tin, các hướng tiếp cận của kỹ thuật giấu tin
trong ảnh, phân loại các kỹ thuật giấu tin trong ảnh số và trình bày tổng quan
về ảnh số.
Chương 2: Một số kỹ thuật giấu tin trong ảnh
Chương này trình bày một số kỹ thuật giấu tin trên ảnh nhị phân: Kỹ
thuật RLE, Kỹ thuật giấu tin theo khối bit, Kỹ thuật Wu-Lee, Kỹ thuật CPT.
Ứng với mỗi kỹ thuật, rút ra nhận xét đánh giá điểm mạnh, điểm yếu của
thuật toán.
Chương 3: Giấu thông tin vào ảnh màu và ảnh đa cấp xám
Chương này trình bày về cách áp dụng các kỹ thuật giấu tin vào ảnh
24 bit màu, ảnh đa cấp xám. Sử dụng giấu tin vào các mặt phẳng bit.
Tác giả có đưa ra nhận xét đánh giá điểm mạnh, điểm yếu của các
phương pháp và có đề xuất một giải pháp khắc phục sự thay đổi của ảnh sau
khi giấu tin so với ảnh gốc trong trường hợp sử dụng mặt phẳng bit cao để

giấu tin.
Chương 4: Một số kết quả đạt được

6

Lời cam đoan!

Tôi xin cam đoan đây là công trình nghiên cứu thực sự của bản thân,
được thực hiện trên cơ sở nghiên cứu lý thuyết, nghiên cứu thực tiễn và dưới
sự hướng dẫn khoa học của Tiến sĩ Tống Minh Đức. Các số liệu và kết quả
trong luận văn là hoàn toàn trung thực và chưa từng công bố trong các công
trình nghiên cứu khác.

Tác giả


Trịnh Thị Hồng



















7

Lời cảm ơn!

Trong suốt quá trình nghiên cứu và học hỏi, đồng thời được sự giúp đỡ,
chỉ bảo tận tình của thầy giáo hướng dẫn TS Tống Minh Đức, tôi đã hoàn
thành báo cáo luận văn của mình. Mặc dù đã cố gắng hết sức, nhưng luận văn
không tránh khỏi những thiếu sót. Rất mong được sự góp ý, chỉ bảo của các
thầy cô và các bạn để đề tài được hoàn chỉnh hơn.
Tôi xin tỏ lòng biết ơn tới các thầy, cô giáo trong khoa Công nghệ
Thông tin trường Đại học Công nghệ, Đại học Quốc gia Hà Nội đã truyền thụ
cho tôi những kiến thức vô cùng quý báu và bổ ích trong suốt thời gian học
tập tại trường, đặc biệt là thầy giáo TS Tống Minh Đức đã tận tình hướng dẫn,
giúp đỡ tôi trong quá trình nghiên cứu.

Hà Nội, ngày tháng 09 năm 2011
Học viên


Trịnh Thị Hồng

8

Chương 1
TỔNG QUAN VỀ GIẤU TIN TRONG ẢNH

1.1. Giới thiệu tổng quan giấu tin trong ảnh số
1.1.1. Khái niệm
Giấu tin (information hiding) là che giấu những thông tin cần bảo mật
nhằm chỉ để một số người được biết và không cho những người khác biết.
Giấu tin số (data hiding) là giấu thông tin số trong một đối tượng dữ
liệu số khác (gọi là môi trường giấu tin) sao cho môi trường trước và sau khi
giấu không có sự khác biệt, đồng thời có thể khôi phục lại chính xác các
thông tin đã giấu. Do đó, đối tượng chứa thông tin ít bị chú ý và khó nhận biết
các đối tượng có giấu thông tin. Ngoài ra, giấu tin còn là giải pháp phát huy
tác dụng trong các ứng dụng phổ biến nội dung số, bảo vệ bản quyền, xác
thực thông tin,…. Kỹ thuật giấu tin nhằm mục đích bảo đảm an toàn và bảo
mật thông tin trong hai lĩnh vực: Giấu tin mật (Steganography) là kỹ thuật
giấu tin để giấu được nhiều thông tin và người khác khó phát hiện việc thông
tin được giấu trong vật mang. Thủy ấn (Watermarking) là kỹ thuật dùng để
bảo vệ đối tượng chứa dữ liệu được giấu như bảo vệ bản quyền, phát hiện
xuyên tạc thông tin,….
Sự khác biệt giữa mã hóa thông tin và giấu thông tin số là mã hóa thông
tin làm cho thông tin được mã hóa không thể đọc được ngoại trừ những người
được phép, biến dữ liệu rõ thành những bản mã, còn giấu thông tin là làm cho
người khác khó phát hiện ra thông tin được giấu trong vật mang tin. Người ta
có thể kết hợp mã hóa và giấu thông tin trong các ứng dụng truyền thông,
thông tin được mã hóa rồi giấu vào vật mạng tin trước khi truyền đi trên
internet.
Môi trường giấu tin là các đối tượng dữ liệu số như âm thanh, hình ảnh,
video, văn bản, cơ sở dữ liệu,… trong đó môi trường ảnh số đã và đang được
nhiều người quan tâm. Giấu tin trong ảnh chiếm một tỉ lệ lớn trong các
chương trình ứng dụng, các hệ thống giấu tin trong đa phương tiện vì lượng
thông tin trao đổi bằng ảnh rất lớn, hơn nữa giấu tin trong ảnh đóng vai trong
quan trọng trong các ứng dụng như xác 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,…

9

Giấu tin trong ảnh số là một phương pháp giấu thông tin vào trong dữ
liệu của file ảnh mà không làm thay đổi chất lượng và dung lượng ảnh. Thông
tin giấu được tách từ ảnh mang (ảnh môi trường) mà không cần ảnh gốc.
Các kỹ thuật giấu tin trong ảnh số chủ yếu dựa trên bản chất hệ thống
thị giác của con người HVS (Human Visual System). Hệ thống thị giác của
con người hạn chế về khả năng cảm nhận những thay đổi nhỏ màu sắc của
điểm ảnh. Bằng mắt thường con người khó thấy sự thay đổi của những ảnh
không có sự khác biệt về màu sắc.
1.1.2. Các thành phần của hệ thống giấu tin trong ảnh
Trong các hệ thống giấu tin trong ảnh gồm có hai phần cơ bản gồm quá
trình nhúng thông tin vào ảnh môi trường và giải tin từ ảnh mang như sau:

Hình 1.1. Lược đồ quá trình giấu tin

Hình 1.2. Lược đồ quá trình giải tin
10

- Mẫu tin mật: thông tin được chứa trong một file văn bản, file ảnh,
video,… trong quá trình xử lý chúng được chuyển đổi thành chuỗi
bít.
- Ảnh gốc: là ảnh được dùng làm môi trường giấu tin, thông tin được
nhúng vào ảnh gốc.
- Khóa K: là một khóa tham gia vào quá trình giấu tin để tăng tính
bảo mật, chỉ những người biết khóa K mới có thể đọc được thông tin
giấu trong ảnh.
- Ảnh mang: là ảnh đã được nhúng thông tin mật vào ảnh gốc. Ảnh
mang dùng để truyền phát trên các kênh truyền thông
- Thủ tục giấu tin: là phương pháp giấu tin, dùng các thuật tin để

nhúng thông tin vào ảnh gốc.
- Thủ tục giải tin: là phương pháp tách tin mật được giấu khi nhận
được ảnh có chứa thông tin mật.
1.1.3. Một số tính chất của giấu tin trong ảnh số
Hiện nay có rất nhiều phương pháp giấu tin trong ảnh được nghiên cứu,
thử nghiệm và ứng dụng. Để đánh giá một phương pháp giấu tin người ta
thường dựa vào các yếu tố sau [6]:
- Tính ẩn (tính vô hình): dựa trên đặc điểm của hệ thống thị giác của
con người, thông tin giấu sẽ làm thay đổi ảnh mang, một người với
thị giác bình thường không thể phân biệt được giữa ảnh mang và
ảnh gốc. Tính ẩn phụ thuộc vào mức độ biến đổi của ảnh mang so
với ảnh gốc trong quá trình giấu tin. Một phương pháp hiệu quả sẽ
làm cho thông tin mật trở nên vô hình trên ảnh mang, người bình
thường không thể phát hiện thông tin chứa trong ảnh.
- Tính an toàn: là khả năng chống lại sự tấn công hoặc giả mạo từ
bên ngoài, chống lại các phương pháp phát hiện ảnh chứa tin mật.
Một hệ thống giấu tin tốt phải đảm bảo tin mật không bị tấn công
một cách chủ đích trên cơ sở biết có những hiểu biết phương pháp
giấu tin như ảnh gốc, ảnh mang, kỹ thuật giấu tin, kỹ thuật giải tin
(nhưng không có khóa),…
- Tính bền vững: sau khi giấu thông tin vào ảnh, ảnh mang có thể
phải trải qua một số biến đổi khác nhau như lọc tuyến tính, lọc phi
tuyến, thêm nhiễu, làm mờ, làm nhạt, nén mất dữ liệu,… Sau các
quá trình biến đổi trên, quá trình giải tin mật không làm sai khác tin
11

đã được giấu. 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 quá trình biến đổi trên.
- Dung lượng giấu tin: được tính bằng tỉ lệ lượng tin (số byte) so với
kích thước của ảnh môi trường (số byte). Tùy thuộc vào thuật toán,

kích thước ảnh môi trường mà dung lượng giấu tin khác nhau.
Thông thường các phương pháp giấu tin đều cố gắng làm tăng dung
lượng tin giấu, tuy nhiên việc làm tăng dung lượng tin giấu ảnh
hưởng tới các đặc tính khác như tính an toàn, tính ẩn,…
- Độ phức tạp tính toán: chỉ tiêu về độ phức tạp tính toán chủ yếu
tính bằng các phép tính toán học trong quá trình giấu tin và quá trình
giải tin. Yêu cầu về độ phức tạp tính toán tùy thuộc vào từng ứng
dụng cụ thể.
- Ảnh môi trường đối với quá trình giải mã: các phương pháp giấu
tin phải đảm bảo yêu cầu là quá trình tách tin mật không cần có ảnh
môi trường.
1.1.4. Phân loại kỹ thuật giấu tin trong ảnh
Dựa vào các tiêu chi khác nhau, người ta có thể phân chia một cách
tương đối các kỹ thuật giấu tin khác nhau.
- Dựa vào mục đích giấu tin:
Trên cơ sở các công trình nghiên cứu, các bài báo được công bố,
có thể chia giấu tin theo hai hướng chính theo sơ đồ sau:
12


Hình 1.3. Sơ đồ phân loại kỹ thuật giấu tin
+ Watermaking (Thủy vân, thủy ấn) đòi hỏi độ bền vững cao của thông
tin cần giấu trước các biến đổi thông thường của dữ liệu môi trường. Có thể
chia thủy vân thành nhiều hướng như thủy vân bền vững và thủy vân dễ vỡ.
Thủy vân bền vững có thể chia thành thủy vân ẩn và thủy vân hiện.
+ Steganoghraphy quan tâm nhiều đến vấn đề giấu tin mật, các ứng
dụng của Steganoghraphy đòi hỏi tính mật cao và dung lượng chứa càng lớn
càng tốt.
- Dựa vào hướng tiếp cận của kỹ thuật giấu tin: có thể chia làm hai
loại như sau:

+ Các kỹ thuật giấu tin tác động lên miền không gian ảnh, thay đổi
trực tiếp giá trị điểm ảnh (thường dùng với các file ảnh không nén,
hoặc nén không mất thông tin).
+ Các kỹ thuật khảo sát trực tiếp thông qua các kỹ thuật biến đổi dữ
liệu khi nén ảnh (thường dùng với các file ảnh nén theo chuẩn có
mất thông tin).
- Dựa vào cấu trúc ảnh gốc có thể chia làm 3 loại:
+ Giấu tin trong ảnh nhị phân.
+ Giấu tin trong ảnh đa cấp xám
+ Giấu tin trong ảnh màu
13

- Ngoài ra dựa vào kỹ thuật biến đổi ảnh có thể chia thành các
phương pháp như: phương pháp gài bits dữ liệu vào bits có trọng số
thấp, phương pháp mã khối bề mặt, phương pháp dựa trên bảng
màu,…
1.1.5. Ứng dụng kỹ thuật giấu tin trong ảnh [6]
Giấu tin trong ảnh số ngày càng được ứng dụng trong nhiều lĩnh vực
như giấu thông tin bí mật, bảo vệ bản quyền, điểm chỉ số, gán nhãn, điều
khiển truy cập,….
- Giấu thông tin bí mật (Steganography): Các thông tin bí mật
được giấu trong đối tượng ảnh thông thường và ít gây chú ý khi trao
đổi trên đường truyền. Trong trường hợp giấu tin, thông tin được
giấu càng nhiều càng tốt, ảnh mang không có sự khác biệt với ảnh
môi trường và việc tách thông tin bí mật không cần ảnh môi trường
ban đầu.
- Bảo vệ bản quyền tác giả (Copyright Protection): Đây là ứng
dụng cơ bản nhất của thủy vân số (digital watermarking). Thông tin
được nhúng vào sản phẩm số, được gọi là biểu tượng thủy vân,
mang ý nghĩa chỉ quyền sở hữu hợp pháp của các sản phẩm. Thêm

vào đó, gán nhãn thời gian cũng là một phương pháp chống giả mạo.
Yêu cầu kỹ thuật đối với ứng dụng là thủy vân tồn tại bền vững
cùng với sản phẩm, chỉ người sở hữu mới có khóa để tách biểu
tượng thủy vân ra khỏi sản phẩm.
- Xác thực thông tin và phát hiện xuyên tạc thông tin
(Authentication and Tamper Detection): Một tập các thông tin sẽ
được giấu trong ảnh gốc, sau đó được sử dụng để nhận biết xem dữ
liệu trên ảnh gốc đó có bị thay đổi hay không. Các thuỷ vân nên
được ẩn để tránh khỏi sự tò mò của đối phương, hơn nữa việc làm
giả các thuỷ vân hợp lệ hay xuyên tạc thông tin nguồn cũng cần
được 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 ảnh mang đã bị thay đổi, xuyên
tạc nội dung hay là 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 nhiều và không cần bền
vững trước các phép xử lý trên ảnh mang.
- Giấu vân tay hay dán nhãn (Fingerprinting and Labeling): Thủy
vân được sử dụng để nhận diện người gửi hay người nhận của một
14

thông tin nào đó trong ứng dụng phân phối sản phẩm. Thủy vân
trong trường hợp này cũng tương tự như số serial của sản phẩm
phần mềm. Mỗi sản phẩm sẽ mang một thủy vân riêng, ví dụ: các
thủy vân khác nhau sẽ được nhúng vào 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. Những ứng dụng
này yêu cầu bảo đảm độ an toàn cao cho các thủy vân tránh sự xóa
giấu vết trong khi phân phối.
- Điều khiển sao chép (Copy Control): Điều mong muốn đối với
các hệ thống phân phối dữ liệu ảnh số là tồn tại một kỹ thuật chống
sao chép trái phép dữ liệu. Có thể sử dụng thủy vân để chỉ trạng thái

sao chép của dữ liệu, các thủy vân trong những trường hợp này được
sử dụng để điều khiển sao chép đối với các thông tin. Các thiết bị
phát hiện ra thủy vân thường được gán sẵn trong các hệ thống đọc
ghi, ví dụ như hệ thống quản lí sao chép DVD đã được ứng dụng ở
Nhật. Thủy vân mang các giá trị chỉ trạng thái cho phép sao chép dữ
liệu như: copy never - không được phép sao chép, hay copy once-
chỉ được sao chép một lần; sau khi sao chép xong, bộ đọc - ghi thủy
ấn sẽ ghi biểu tượng thủy ấn mới chỉ trạng thái mới lên DVD. Các
ứng dụng loại này yêu cầu thủy vân phải được bảo đảm an toàn và
việc phát hiện thủy ấn đã giấu mà không cần thông tin gốc.
1.2. Giấu tin trong ảnh nhị phân
Giấu tin trong ảnh nhị phân dễ bị nhận biết bằng mắt thường và dung
lượng thông tin giấu trong ảnh bị hạn chế. Đối với ảnh nhị phân mỗi điểm ảnh
được biểu diễn bởi một bit (bit 0 tương ứng với màu đen, bit 1 tương ứng với
màu trắng) nên khi có thay các bits dễ bị phát hiện, do đó rất khó giấu tin an
toàn trong ảnh nhị phân. Việc nghiên cứu về các phương pháp giấu tin trong
ảnh nhị phân trước hết giải quyết các khó khăn trên, đồng thời làm cơ sở để
phát triển các thuật toán giấu tin trong ảnh đa cấp xám, ảnh màu, hay các
phương tin lưu trữ thông tin khác. Hiện nay, có một số phương pháp giấu tin
trong ảnh nhị phân như sau:
- Phương pháp RLE (Run Length Code – Mã hóa độ dài RUN), dựa
vào tính chẵn lẻ của cặp RUN để giấu thông tin.
- Phương pháp Wu – Lee: là một thuật toán giấu tin khá phổ biến
của M.Wu và J.Lee. Trong thuật toán Wu – Lee, mỗi ảnh nhị phân
xem như là ma trận nhị phân được chia thành các khối bits mxn, mỗi
15

khối bits giấu được một bit thông tin bằng cách thay đổi nhiều nhất
một bit trong khối.
- Phương pháp CPT: trên cơ sở phát triển ý tưởng thuật toán Wu –

Lee, các tác giá Y.Y.Chen, H.Pan, Y.Tseng (Chen-Phan-Tseng) đề
xuất một phương pháp giấu tin trong ảnh nhị phân, theo đó ảnh
đường chia thành các khối bits khích thước mxn, mỗi khối bít giấu
được tối đa r bits thông tin với r ≤ [log
2
(m.n + 1)] bằng cách thay
đổi không quá 2 bits trong khối dữ liệu ảnh
- Phương pháp LSB (Least Significant Bits): phương pháp này ứng
dụng cho ảnh màu hoặc ảnh đa cấp xám. LSB là các bits khi bị thay
đổi hầu như không làm ảnh hưởng đến chất lượng ảnh gốc. Ứng
dụng các phương pháp trên ứng với ma trận nhị phân được trích dẫn
từ các bits LSB được ma trận kết quả và trả các bits LSB về ảnh
gốc để tạo thành ảnh mới được giấu thông tin.
Các kỹ thuật giấu tin trong ảnh nhị phân sẽ được trình bày trong
chương 2.
1.3. Giấu tin trong dữ liệu đa phương tiện
1.3.1 Giấu tin trong ảnh số.
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 hình ảnh là rất lớn, 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ư: xác 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,… Thông
tin được giấu vào dữ liệu ảnh, nhưng chất lượng ảnh rất ít thay đổi và người ta
khó có thể nhận thấy bằng mắt thường. 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 ứng dụng quan
trọng trên các lĩnh vực trong đời sống xã hội. Ví dụ: ở các nước phát triển,
chữ ký tay đã được số hóa 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, tài chính.
1.3.2 Giấu tin trong audio

Giấu thông tin trong audio mang những đặc điểm riêng khác với giấu
tin trong các đối tượng đa phương tiện khác. Một trong những yêu cầu cơ bản
của giấu tin là đảm bảo tính chất ẩn của thông tin được giấu đồng thời không
ảnh hưởng đến chất lượng của dữ liệu gốc. Để đảm bảo yêu cầu này, kỹ thuật
16

giấu tin trong ảnh phụ thuộc vào hệ thống thị giác của con người – HVS
(Human Vision System) còn kỹ thuật giấu tin trong audio lại phụ thuộc vào hệ
thống thính giác HAS (Human Auditory System). Một vấn đề khó khăn ở đây
là hệ thống thính giác của con người nghe được các tín hiệu ở các dải tần rộng
và công suất lớn nên đã gây khó dễ đối với các phương pháp giấu tin trong
audio. Tuy nhiên, HAS lại kém trong việc phát hiện sự khác biệt giữa các dải
tần và công suất, điều này có nghĩa là các âm thanh to, cao tần có thể che giấu
các âm thanh nhỏ một cách dễ dàng. Các mô hình phân tích tâm lý đã chỉ ra
điểm yếu trên và thông tin này sẽ giúp ích cho việc chọn các audio cho việc
giấu thông tin. Vấn đề khó khăn thứ hai đối với giấu tin trong audio là kênh
truyền tin. Kênh truyền hay băng thông chậm sẽ ảnh hưởng đến chất lượng
thông tin sau khi giấu. Giấu thông tin trong audio đòi hỏi yêu cầu rất cao về
tính đồng bộ và tính an toàn của thông tin. Tóm lại, các phương pháp giấu tin
trong audio đều dựa vào điểm yếu trong hệ thống thính giác của con người.
1.3.3 Giấu tin trong video
Giống như giấu tin trong ảnh hay trong audio, giấu tin trong video cũng
được quan tâm và phát triển mạnh mẽ cho nhiều ứng dụng như điều khiển
truy cập thông tin, xác thực thông tin và bảo vệ bản quyền tác giả. Ví dụ các
hệ thống chương trình trả tiền xem theo đoạn với các video clip (pay per view
application). Các kỹ thuật giấu tin trong video cũng được phát triển mạnh mẽ
theo hai khuynh hướng là thủy vân số và giấu tin mật. Một phương pháp giấu
tin trong video được đưa ra bởi Cox là phương pháp phân bố đều. Ý tưởng cơ
bản của phương pháp là phân bố thông tin cần giấu dàn trải theo tần số của dữ
liệu gốc. Nhiều nhà nghiên cứu đã dùng những hàm cosin riêng và các hệ số

truyền sóng riêng để giấu tin. Trong các phương pháp khỏi nguồn, thường các
kỹ thuật giấu tin cho phép giấu ảnh vào video, trong thời gian gần đây cho
phép giấu cả âm thanh, hình ảnh vào trong video. Như Swanson đã sử dụng
phương pháp giấu tin theo khối bít, phương pháp này đã giấu được 2 bít vào
khối 8x8. Như vậy, giấu tin trong video dựa cả đặc điểm thị giác và thính giác
của con người.
1.3.4 Giấu tin trong văn bản text.
Giấu thông tin trong văn bản dạng text khó thực hiện hơn do có ít các
thông tin dư thừa, để làm được điều này người ta phải khéo léo khai thác các
dư thừa tự nhiên của ngôn ngữ. Một cách khác là tận dụng các định dạng văn
bản (mã hóa thông tin vào khoảng cách giữa các từ hay các dòng văn bản). Kỹ
17

thuật giấu tin đang được áp dụng cho nhiều loại đối tượng chứ không chỉ cho
dữ liệu đa phương tiện như ảnh, audio, video. Gần đây đã có một số nghiên
cứu giấu tin trong cơ sở dữ liệu quan hệ, các gói IP truyền trên mạng chắc
chắn sau này còn tiếp tục phát triển tiếp cho các môi trường dữ liệu số.
1.4 Cấu trúc file ảnh bitmap
Khái niệm về ảnh bitmap.
Ảnh bitmap do Microsoft phát triển, do vậy còn được gọi là Microsoft
Windowns Bitmap (BMP, DIB, Windows BMP, Windown DIB, Compatible
Bitmap) được lưu trữ độc lập với thiết bị hiển thị (DIB).
File Bitmap là file nhị phân được phân chia thành 4 phần theo thứ tự từ
đầu đến cuối như sau:
File Header
Image Header
Color Palettle
Data of Image
File Header.
File header được dùng để thông báo cho các phần mềm truy xuất biết

đây là file BMP, đồng thời cho biết chính xác độ lớn file, vị trí của dữ liệu
ảnh được thực hiện định vị trong phạm vi file. Nó gồm chính xác 14 byte. Ý
nghĩa và nội dung cụ thể của các byte được thống kê theo bảng dưới đây:

File Header
Số bytes
Ý nghĩa
Nội dung
2
Kí hiệu window BMP file, mã ASCII
BM
4
Kích thước file ảnh (tính theo byte)

2
Dự trữ (không dùng)
0
2
Dự trữ (không dùng)
0
4
Khoảng cách từ đầu file đến đầu vùng dữ liệu
54

Image Header.
Image Header cho biết thông tin về ảnh và những định dạng dữ liệu của
nó như chiều cao, chiều rộng, số bit của một điểm ảnh, dữ liệu ảnh có được
nén hay không.
18


Trong thực tế có hai trường hợp của Image Header: Một được phát
triển theo định dạng OS/2 BMP gồm 12 byte; một được phát triển theo định
dạng Windows BMP gồm ít nhất 40 byte. Tuy nhiên ta có thể kiểm tra ngay
được ảnh thuộc định dạng nào nhờ 4 byte đầu tiên của Image Header ghi
chiều dài của nó. Bảng dưới đây là Image Header theo định dạng Windows
BMP, gồm ý nghĩa và nội dung cụ thể của các byte.
Windows BMP Header
Số bytes
Ý nghĩa
Nội dung
4
Kích thước phần Image Header
40
4
Chiều rộng mỗi điểm ảnh

4
Chiều cao mỗi điểm ảnh

2
Số lượng Image plane
1
2
Số bit lưu trữ thông tin một điểm ảnh
1,4,8,24
4
Kiểu nén (run - length)
0: Không nén
1: Mã hóa chiều dài 8 bit
2: Mã hóa chiều dài 4 bit

3: RGB bitmap với mặt nạ

4
Số byte ảnh được nén

4
Độ phân giải theo chiều ngang

4
Độ phân giải theo chiều đứng

4
Số màu thực tế sử dụng

4
Số màu quan trọng. Có giá trị 0 nếu tất cả các
màu đều quan trọng


Color Palettle.
Bảng màu có thể có hay không tùy thuộc vào định dạng của dữ liệu
ảnh. Bảng màu là mảng một chiều chứa chỉ mục các màu của ảnh, mỗi điểm
ảnh chỉ việc trỏ đến một chỉ mục nào đó trên bảng màu. Bảng màu chiếm 4*n
byte trong đó n là số màu của ảnh. Số bit lưu trữ thông tin mỗi điểm ảnh chỉ
định độ phân giải màu của bitmap. Nếu số bit bằng 1, bảng màu có 2
1
= 2
màu, thông thường là đen và trắng. Nếu số bit bằng 4, bảng màu có 2
4
= 16

màu; số bit bằng 8, bảng màu có 2
8
= 256 màu, số bit bằng 24, bảng màu có
2
24
= 16.7 triệu màu.
- Đối với dạng ảnh 24 bit: File ảnh không có bảng màu, vì mỗi điểm ảnh đã
được biểu diễn bởi giá trị 24 bit RGB trong vùng dữ liệu bitmap. Thông tin
19

màu cho mỗi điểm ảnh được lưu trữ trong 3 byte dữ liệu liên tục theo thứ
tự tương ứng là: Red, Green, Blue.
- Đối với ảnh 256, 16 và 2 màu tương ứng:
+ Bảng màu chiếm 256*4 =1024 byte, 16*4 = 64 byte, 2*4 = 8 byte.
+ Mỗi màu được mô tả bởi 4 byte, thể hiện 4 thành phần màu: Blue,
Green, Red và Darkgray.
+ Với hầu hết các tệp ảnh BMP, thành phần Darkgray bằng 0.
+ Các thành phần Red, Green, Blue được lưu trữ ở 6 bit cao.
Data of Image.
- Đối với ảnh 24 bit: Mỗi điểm ảnh chiếm 3 byte mô tả ba màu: Red, Green,
Blue.
- Đối với ảnh 256 màu: Mỗi điểm ảnh chiếm 1 byte, chỉ số hiệu màu của
điểm ảnh này (có giá trị bằng 0, 1, …, 255). Màu của điểm ảnh được mô tả
trong bảng màu. Giả sử byte mô tả điểm ảnh có giá trị là b và bảng màu
được chứa trong mảng P, thì thành phần các màu của điểm ảnh này là
P[b].R, P[b].G, P[b].B.
- Đối với ảnh 16 màu: Bảng màu có 16 màu (có giá trị bằng 0, 1, …15). Mỗi
điểm ảnh được mô tả bởi một con số trong bảng màu. Do vậy, giá trị mỗi
điểm ảnh chỉ cần 4 bit để mô tả. Hai điểm ảnh được chứa trong một byte:
điểm ảnh đứng trước được chứa trong 4 bit cao, điểm ảnh đứng sau được

chứa trong 4 bit thấp.
- Đối với ảnh 2 màu: Bảng màu có 2 màu (0, 1). Mỗi điểm ảnh được mô tả
bởi giá trị 0 hoặc 1. Do vậy, giá trị mỗi điểm ảnh chỉ cần 1 bit để mô tả.
Tám điểm ảnh được chứa trong một byte: điểm ảnh đứng trước được chứa
trong bit cao, điểm ảnh trong bit sau được chứa trong bit thấp.
Nếu kích thước byte thực tế của mỗi dòng ảnh không chia hết cho 4 thì
Bitmap sẽ thêm vào cuối dòng một số byte chia hết cho 4. Ta không cần phải
quan tâm nhiều đến vấn đề này vì các hàm hiển thị bitmap API (với 4 hàm
chính AnimatePalette, CreatePalette, SelectPalette và RealizePalette) sẽ thực
hiện điều này một cách tự động. Mặt khác, bitmap ghi dữ liệu ảnh từ dưới lên
theo ảnh thực. Nghĩa là các dòng của một DIB được sắp xếp từ dưới lên, dòng
cao nhất xuất hiện trên màn hình thực tế là dòng cuối cùng được lưu trữ trong
bitmap.
20

Chương 2
CÁC KỸ THUẬT GIẤU TIN TRONG ẢNH
2.1. Kỹ thuật giấu tin RLE
Trong phương pháp RLE (Run Length Code – Mã hóa độ dài RUN),
người ta sử dụng tính chẵn lẻ của cặp RUN để giấu thông tin trong các ảnh
nhị phân, cụ thể là điều chỉnh tính chẵn lẻ của độ dài từng cặp RUN của ảnh
nhị phân để giấu được bit thông tin cần giấu, trong đó RUN là tập các pixel có
cùng màu liên tiếp. Các tham số cơ bản của RUN là màu và độ dài (số pixel)
của nó. Tiến hành xem xét phương pháp giấu thông tin trong ảnh nhị phân
bằng cách điều chỉnh độ dài của RUN.

Hình 2.1. Minh họa cặp RUN
Một cặp RUN là 2 RUN liên tiếp, có thể là RUN đen trước, RUN trắng
sau hoặc ngược lại. Lược đồ trên minh họa 2 RUN liên tiếp trong một cặp
RUN từ trái qua phải. Các vị trí giữa RUN trắng và RUN đen có thể coi là

ranh giới rõ ràng trong ảnh nhị phân, nếu thực hiện giấu tin bằng cách thay
đổi vị trí ranh giới đó thì khó có thể phát hiện sự thay đổi của ảnh.
Phương pháp RLE sẽ điều chỉnh độ dài RUN đen và trắng để giấu
thông tin, mỗi cặp RUN có thể giấu được 1 bit thông tin. Giả sử L
B
là độ dài
của RUN đen và L
w


là độ dài của RUN trắng, L’
B
(L’
B
= [L
B
- 1, L
B
+ 1] ) là
độ dài của RUN đen và L’
w
(L’
w
=[ L
w
- 1, L
w
+ 1]) là độ dài của RUN trắng
sau khi điều chỉnh. Mặt khác, dù nếu 1 pixel của RUN đen hoặc RUN trắng bị
thay đổi nhưng tổng số pixel của cặp RUN không bị thay đổi (L

B
+ L
w
=L’
B
+
L’
w
). Phương pháp này chỉ điều chỉnh đôi chút ranh giới giữa RUN trắng và
RUN đen trong cặp RUN. Nhờ tính chẵn lẻ của độ dài L’
B
để nhận biết được
21

thông tin có giấu hay không. Ví dụ, nếu L
B
là chẵn thì dữ liệu được giấu là 0,
ngược lại là 1.
Với RUN có độ dài lớn thì khó phát hiện được sự điều chỉnh; với RUN
có độ dài nhỏ, việc điều chỉnh sẽ tạo ra một sự thay đổi lớn nên rất dễ bị phát
hiện. Ví dụ, nếu số pixel của RUN chỉ là 1, nó có thể là 1 hoặc 2 sau khi điều
chỉnh tức là có thể tăng lên gấp 2 lần nên rất dễ bị phát hiện có sự thay đổi
trong ảnh dẫn đến chất lượng ảnh cũng bị ảnh hưởng.
Để xử lý vấn đề này, ta có một biến T (T > 0) là một ngưỡng để nhận
biết được một cặp RUN nào có thể giấu thông tin hay không. Nếu độ dài của
RUN nhỏ hơn T thì RUN đó sẽ không được dùng giấu thông tin. Bằng việc
điều chỉnh giá trị T, có thể điều chỉnh được chất lượng ảnh sau khi giấu thông
tin.
Giả sử bit giấu là d (d = [0, 1]), điều kiện để RUN có thể che giấu
thông tin và việc điều chỉnh sẽ được mô tả:








Việc điều chỉnh này sẽ không là thay đổi tổng độ dài của RUN đen và
RUN trắng mặc dù trong quá trình thêm dữ liệu thì độ dài của RUN đen là L
B

và RUN trắng là L
W
trong mỗi cặp RUN có thể bị thay đổi. Hình 2.2 là một ví
dụ về giấu tin bằng kỹ thuật RLE.
Việc tiến hành giải mã thông tin được che giấu như sau: Giả sử dữ liệu
được thêm là d’, bằng việc kiểm tra L
B
và L
W
ta có thể thấy được cặp RUN
có thể giấu dữ liệu hay không. Công thức kiểm tra:

L’
B
= L
B
+ sgn(L
W
– L

B
) *| (L
B
mod 2) –d|;
Trong đó sgn(x) =
L’
W
= L
W


- sgn(L
W
– L
B
)*|( L
B
mod 2) – d|;
1 If x > 0
-1 If x < 0
If (L
B
> L
W
>= T) or (L
W
> L
B
>= T) or (L
B

= L
W
and L
B
> T)
If (L
B
> L
W
>= T) or (L
W


> L
B
>= T) or (L
B
= L
W
and L
B
> T)
d’ = L
B
mod 2
22


Hình 2.2. Ví dụ về giấu tin bằng kỹ thuật RLE


Hình 2.3. Ví dụ về giải tin bằng kỹ thuật RLE
2.2. Kỹ thuật giấu tin theo khối bít
Kỹ thuật giấu tin theo khối bits tiến hành chia ma trận ảnh thành các
khối ma trận nhị phân kích thước mxn, mỗi khối bít tiến hành giấu một bits
thông tin (thông tin cần giấu phải chuyển sang dữ liệu nhị phân).
23

2.2.1. Nội dung thuật toán
 Bài toán: giấu từng bit thông tin b
i
trong chuỗi bit b vào ma trận
ảnh nhị phân F theo từng khối bit F
i
có kích thước mxn.
 Thuật toán giấu tin
- Kiểm tra khả năng giấu hết thông tin vào ảnh, điều này phụ thuộc
vào dung lượng ảnh nhị phân F, kích thước khối bits mxn và dung
lượng thông tin cần giấu.
- Lần lượt giấu bit b
i
vào khối bits F
i
theo nguyên tắc sau: tính
Sum(F
i
) là tổng các phần tử trong F
i
, nếu Sum(F
i
) = b

i
thì giữ
nguyên F
i
, ngược lại tiến hành đảo một bit bất kỳ trong F
i

- Ma trận F’ nhận được từ các ma trận thành phần F
i
chính là ma trận
ảnh đã được giấu tin.
 Thuật toán giải tin
- Chia ma trận điểm ảnh F’ (ảnh mang) thành các khối bits F
i
có kích
thước mxn và tính b
i
= Sum (F
i
) mod 2.
- Chuỗi bit b là chuỗi b
i
nhận được.
2.2.2. Phân tích thuật toán
Trong quá trình giấu tin, việc chọn kích thước khối tin cần căn cứ vào
dung lượng ảnh mang và lượng thông tin cần giấu sao cho thông tin cần giấu
được dàn trải trên toàn bộ ảnh. Khi kích thước khối càng lớn thì lượng thông
tin có thể giấu thấp, đồng thời ảnh sau khi giấu ít biến đổi so với ảnh gốc và
ngược lại.
Trong thuật toán, việc chia ảnh gốc thành các khối điểm ảnh có kích

thước giống nhau khá đơn giản. Tuy nhiên để tăng tin an toàn bảo mật cho
thuật toán, chúng ta có thể chia ảnh gốc thành các khối điểm ảnh có kích
thước khác nhau và vị trí bắt đầu của mỗi khối theo một thuật toán xác định
nào đó. Như vậy, việc thám mã sẽ khó khăn hơn, ngoài việc phải tìm ra kích
thước của từng khối điểm ảnh còn phải xác định vị trí bắt đầu của mỗi khối.
Kỹ thuật giấu tin trên sẽ gây hiện tượng bất thường đối với ảnh sau khi
giấu thông tin, đặc biệt cần thay đổi thông tin trên khối ảnh chỉ có một màu
(toàn màu đen hoặc toàn màu trắng).
24

2.3. Kỹ thuật giấu tin Wu-Lee
2.3.1. Định nghĩa các phép toán với ma trận
Cho hai ma trận nhị phân B
1
và B
2
có cùng kích thước, ta biểu diễn
phép toán AND: B
1
^B
2
là một ma trận kết quả nhận được từ phép AND từng
phần tử tương ứng của hai ma trận B
1
và B
2
.
Tương tự, ta biểu diễn phép toán XOR: B
1


B
2
là một ma trận kết quả
nhận được từ phép XOR từng phần tương ứng của hai ma trận B
1
và B
2
.
2.3.2. Thuật toán Wu-Lee
Là một thuật toán giấu tin khá phổ biển của M.Wu và J.Lee [15]. Trong
thuật toán Wu-Lee [6], môi trường giấu tin là một ảnh nhị phân (có thể coi
như là một ma trận nhị phân – mỗi phần tử của ma trận là một bits nhận giá trị
0 hoặc 1) được chia thành các khối bits mxn, mỗi khối giấu được một bit
thông tin bằng cách thay đổi nhiều nhất một bit trong khối. Dùng thêm một
khóa K có kích thước mxn để tăng tính bảo mật.
Các bước thực hiện giấu tin:
Bước 1: Chia ảnh F thành các ma trận điểm ảnh F
i
có kích thước mxn.
Bước 2: Với mỗi F
i
nhận được ở bước 1, kiểm tra điều kiện giấu tin
0 < Sum (F
i
^K) < Sum (K)
Nếu thỏa mãn điều kiện trên thực hiện bước 3 để giấu một bit dữ liệu
vào khối bits F
i
, ngược lại dữ liệu không được giấu vào F
i

và F
i
sẽ được giữ
nguyên.
Bước 3: Giấu bit b vào khối bits F
i
If (Sum(F
i
^K) mod 2 = b) then
Giữ nguyên F
i
không đổi;
ElseIf (Sum(F
i
^K) = 1) then
Chọn một bit F
i
(j,k) thỏa mãn: F
i
(j,k) = 0 và K(j,k) = 1.
Thay F
i
(j,k) = 1
ElseIf (Sum(F
i
^K) = Sum(K) - 1) then
Chọn một bit F
i
(j,k) thỏa mãn: F
i

(j,k) = 1 và K(j,k) = 1
Thay F
i
(j,k) = 0;
Else

×