i
LỜI CAM ĐOAN
Với mục đích nghiên cứu, tìm hiểu để nâng cao kiến thức và trình độ
chuyên môn để áp dụng trong các bài toán cụ thể trong tương lai nên tôi đã
làm luận văn này một cách nghiêm túc và hoàn toàn trung thực. Nội dung
luận văn do tự tôi tìm hiểu và hoàn thành.
Trong luận văn, tôi có sử dụng tài liệu tham khảo của một số tác giả trong
và ngoài nước để hoàn thành luận văn được nêu ở phần tài liệu tham khảo.
Tôi xin cam đoan và chịu trách nhiệm về nội dung, sự trung thực trong
luận văn tốt nghiệp Thạc sỹ của mình.
Thái Nguyên, tháng 6 năm 2015
Học viên
HOÀNG XUÂN LONG
ii
LỜI CẢM ƠN
Những kiến thức căn bản trong luận văn này là kết quả của quá trình tự
nghiên cứu trong quá trình công tác và hai năm học Thạc sỹ (2012 - 2014) tại
Trường Đại học Công nghệ thông tin và Truyền thông Thái Nguyên. Dưới sự
giảng dạy, đào tạo và dìu dắt trực tiếp của các thầy cô trong trường và Viện
Công nghệ thông tin Việt Nam.
Tôi xin bày tỏ lời cảm ơn chân thành tới các thầy cô trong Khoa Công
nghệ thông tin, Phòng Đào tạo, Phòng Công tác học sinh sinh viên, Phòng Đào
tạo sau đại học Trường Đại học Công nghệ thông tin và Truyền thông Thái
Nguyên, đã tạo điều kiện thuận lợi cho tôi trong thời gian học tập tại trường.
Tôi xin bày tỏ lòng biết ơn chân thành, lời cảm ơn sâu sắc nhất đối với
thầy giáo TS Hồ Văn Canh đã trực tiếp hướng dẫn, định hướng cho tôi giải
quyết các vấn đề trong luận văn.
Tôi cũng xin cảm ơn đến người thân, bạn bè và các bạn đồng môn lớp cao
học khóa 11, đã ủng hộ và giúp đỡ tôi trong quá trình làm luận văn tốt nghiệp.
Thái Nguyên, ngày 20 tháng 6 năm 2015
Học viên
Hoàng Xuân Long
iii
Ý NGHĨA KHOA HỌC CỦA ĐỀ TÀI
Giấu tin là một lĩnh vực nghiên cứu rộng, môi trường giấu tin đa dạng,
các phương pháp giấu tin trong môi trường ảnh chủ yếu tập trung nhiều vào
việc giấu tin trong các bit có trọng số thấp. Luận văn này đã tìm hiểu, phân
tích một số thuật toán giấu tin trong ảnh đen trắng, ảnh đa cấp xám và ảnh
mầu bitmap 24 bit.
Mặt khác, luận văn cũng nghiên cứu và đề xuất một phương pháp mã
hóa thông tin sử dụng ma trận trên kích thước 8x8 và tính chất nghịch đảo của
ma trận để sinh khóa mã và khóa giải mã. Phương pháp này có ưu điểm, cho
phép người nhận tin mật sử dụng tính chất ma trận nghịch đảo A-1 để mã hóa,
gửi tin cho trung tâm mà không cần phải biết ma trận A.
Luận văn đã xây dựng được chương trình giấu tin mật trên miền không
gian ảnh bimap ứng dụng một kỹ thuật giấu tin mới.
Hướng nghiên cứu tiếp theo: Để hoàn thiện hơn nữa chương trình giấu
tin mật kết hợp với nén mã hóa, cần phải nghiên cứu giấu tin trong các loại
ảnh khác như: JPEG, TIF, GIF,...Và trên các môi trường đa phương tiện khác.
iv
MỤC LỤC
LỜI CAM ĐOAN ........................................................................................... i
LỜI CẢM ƠN ................................................................................................ ii
Ý NGHĨA KHOA HỌC CỦA ĐỀ TÀI .......................................................... iii
MỤC LỤC .................................................................................................... iv
DANH MỤC CHỮ CÁI VIẾT TẮT ............................................................. vi
DANH MỤC CÁC BẢNG ........................................................................... vii
DANH MỤC CÁC HÌNH VẼ ..................................................................... viii
LỜI NÓI ĐẦU ............................................................................................... 1
CHƯƠNG 1: NGHIÊN CỨU TỔNG QUAN VỀ LĨNH VỰCGIẤU TIN ...... 3
1.1. Tổng quan về giấu tin. ........................................................................ 3
1.1.1. Định nghĩa .................................................................................... 3
1.1.2. Vài nét về lịch sử giấu tin ............................................................. 3
1.1.3. Mục đích của giấu tin.................................................................... 4
1.1.4. Mô hình kỹ thuật giấu thông tin cơ bản. ........................................ 5
1.1.5. Phân loại giấu tin. ......................................................................... 7
1.2. Giấu tin trong ảnh. ............................................................................ 10
1.3. Tổng quan ảnh BITMAP (BMP)....................................................... 11
1.3.1. Giới thiệu ảnh BITMAP (BMP). ................................................. 11
1.3.2. Cấu trúc ảnh BITMAP (BMP). ................................................... 12
CHƯƠNG 2: NGHIÊN CỨU, PHÂN TÍCH VÀ TÌM HIỂU MỘT SỐ THUẬT
TOÁN GIẤU TIN ......................................................................................... 17
2.1. Các kỹ thuật giấu tin. ........................................................................ 17
2.1.1. Kỹ thuật giấu tin LSB. ................................................................ 17
2.1.2. Kỹ thuật giấu tin theo khối bit. .................................................... 19
2.1.3. Kỹ thuật giấu tin Wu-Lee............................................................ 20
2.1.4. Thuật toán Chen-Pan-Tseng. ....................................................... 21
v
2.1.5. Kỹ thuật giấu tin SES.................................................................. 24
2.2. Lý thuyết đại số và ứng dụng cải tiến kỹ thuật giấu tin LSB [2]: ...... 29
2.2.1. Lý thuyết ma trận tam giác: ........................................................ 29
2.2.2. Lý thuyết về trường hữu hạn và không gian vector [6]. ............... 35
2.2.3. Ứng dụng lý thuyết trên vào giấu tin. .......................................... 42
CHƯƠNG 3: ỨNG DỤNG KỸ THUẬT GIẤU TIN MỚI XÂY DỰNG
CHƯƠNG TRÌNH DEMO GIẤU TIN TRONG ẢNH BITMAP 24BIT ...... 48
3.1. Xây dựng chương trình demo. .......................................................... 48
3.1.1. Môi trường thử nghiệm: .............................................................. 48
3.1.2. Tổ chức thực hiện chương trình: ................................................. 48
3.1.3. Giao diện chương trình: .............................................................. 48
3.2. Ưu điểm & Nhược điểm ................................................................... 51
3.2.1. Ưu điểm ...................................................................................... 51
3.2.2. Nhược điểm ................................................................................ 52
3.3. Lý thuyết độ trùng khớp. .................................................................. 53
KẾT LUẬN.................................................................................................. 56
TÀI LIỆU THAM KHẢO ............................................................................ 57
vi
DANH MỤC CHỮ CÁI VIẾT TẮT
BMP
Ảnh Bitmap
LSB
Least significant bit
SES
Steganography Evading analyses
RS
Regular Singular
vii
DANH MỤC CÁC BẢNG
Bảng 1.1 Chi tiết khối bytes tiêu đề tập tin BMP. .......................................................13
Bảng 1.2 dưới đây miêu tả chi tiết khối bytes thông tin tập tin BMP. ................14
Bảng 2.1 Bộ mã hóa .................................................................................................................42
Bảng 2.2 Bảng chuyển đổi ký tự sang nhị phân. ..........................................................46
viii
DANH MỤC CÁC HÌNH VẼ
Hình 1.1: Hai lĩnh vực chính của kỹ thuật giấu thông tin ...........................................5
Hình 1.2: Lược đồ chung cho quá trình giấu tin.............................................................6
Hình 1.3: Lược đồ chung cho quá trình giải mã .............................................................7
Hình 1.4: Phân loại các kỹ thuật giấu tin. ......................................................................... 9
Hình 2.1: Sơ đồ giấu tin SES. ..............................................................................................26
Hình 2.2: Sơ đồ tách tin SES ................................................................................................28
Hình 3.1: Giao diện giới thiệu..............................................................................................49
Hình 3.2: Chương trình giấu tin ..........................................................................................50
Hình 3.3: Ảnh gốc chưa giấu tin .........................................................................................51
Hình 3.4: Ảnh đã giấu tin .......................................................................................................51
1
LỜI NÓI ĐẦU
Trong những năm qua, chúng ta chứng kiến sự tiến bộ mạnh mẽ của khoa
học - công nghệ nói chung và ngành Công nghệ thông tin nói riêng. Hưởng lợi
từ những kết quả đó, không chỉ trong lĩnh vực dân sự, mà trong lĩnh vực An
ninh - Quốc phòng, cũng tận dụng tối đa những thành tựu của ngành Công nghệ
thông tin để phục vụ yêu cầu công tác. Cùng với sự phát triển mạnh mẽ của
ngành khoa học công nghệ thông tin, internet đã trở thành một nhu cầu, phương
tiện không thể thiếu đối với mọi người, việc truyền tin qua mạng ngày càng lớn.
Tuy nhiên, với lượng thông tin được truyền qua mạng nhiều hơn thì nguy cơ dữ
liệu bị truy cập trái phép cũng tăng lên vì vậy vấn đề bảo đảm an toàn và bảo
mật thông tin cho dữ liệu truyền trên mạng là rất cần thiết.
Để đảm bảo an toàn và bí mật cho một thông điệp truyền đi người ta
thườngdùng phương pháp truyền thống là mã hóa thông điệp theo một qui tắc
nào đó đã được thỏa thuận trước giữa người gửi và người nhận. Tuy nhiên,
phương thức này thường gây sự chú ý của đối phương về tầm quan trọng của
thông điệp. Thời gian gần đây đã xuất hiện một cách tiếp cận mới để truyền các
thông điệp bí mật, đó là giấu các thông tin quan trọng trong những bức ảnh.
Nhìn bề ngoài các bức ảnh có chứa thông tin cũng không có gì khác với các bức
ảnh khác nên hạn chế được tầm kiểm soát của đối phương. Mặt khác, dù các
bức ảnh đó bị phát hiện ra là có chứa thông tin trong đó thì với các khóa có độ
bảo mật cao thì việc tìm được nội dung của thông tin đó cũng rất khó có thể
thực hiện được.
Xét theo khía cạnh tổng quát thì giấu thông tin cũng là một hệ mã mật
nhằm bảo đảm tính an toàn thông tin, nhưng phương pháp này ưu điểm là ở chỗ
giảm được khả năng phát hiện được sự tồn tại của thông tin trong nguồn mang.
Không giống như mã hóa thông tin là chống sự truy cập và sửa chữa một cách
trái phép thông tin, mục tiêu của giấu thông tin là làm cho thông tin trộn lẫn với
2
các điểm ảnh. Điều này sẽ đánh lừa được sự phát hiện của các tin tặc và do đó
làm giảm khả năng bị giải mã.
Xuất phát từ thực tiễn và yêu cầu công tác của ngành công an, một mặt
phải tìm hiểu phương pháp phân tích những thông tin bí mật, phương thức liên
lạc mà đối tượng che giấu. Mặt khác, cũng phải nghiên cứu phương pháp bảo vệ
kênh liên lạc phục vụ công tác nghiệp vụ của lực lượng bí mật.
Vì vậy, tên đề tài được chọn là:
“Nghiên cứu thuật toán giấu tin mật trên miền không gian của ảnh bitmap.”
Trong luận văn này, dự kiến tập trung nghiên cứu và giải quyết những
vấn đề cụ thể sau:
Chương 1. Nghiên cứu tổng quan về lĩnh vực giấu tin.
Chương 2. Nghiên cứu, phân tích và tìm hiểu một số thuật toán giấu tin
trong ảnh tĩnh.
Chương 3. Ứng dụng kỹ thuật giấu tin mới, xây dựng chương trình demo
giấu tin trong ảnh bitmap 24bit.
3
CHƯƠNG 1: NGHIÊN CỨU TỔNG QUAN VỀ LĨNH VỰC
GIẤU TIN
1.1. Tổng quan về giấu tin.
1.1.1. Định nghĩa
Giấu thông 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.
Kỹ thuật giấu thông tin nhằm mục đích đảm bảo an toàn vào bảo mật
thông tin rõ ràng ở hai khía cạnh. Một là bảo mật cho giữ liệu được đem giấu,
hai là bảo mật cho chính đối tượng được dùng để giấu tin. Hai khía cạnh khác
nhau này dẫn đến hai khuynh hướng kỹ thuật chủ yếu của giấu tin. Khuynh
hướng thứ nhất là giấu tin mật (steganography). Khuynh hướng này tập trung
vào các kỹ thuật giấu tin sao cho thông tin giấu được nhiều và quan trọng là
người khác khó phát hiện được một đối tượng có bị giấu thông tin bên trong hay
không. Khuynh hướng thứ hai là thủy vân số (watermarking). Khuynh hướng
thủy vân số đánh giấu vào đối tượng nhằm khẳng định bản quyền sở hữu hay
phát hiện xuyên tạc thông tin. Thủy vân số có miền ứng dụng lớn hơn nên được
quan tâm nghiên cứu nhiều hơn và thực tế đã có nhiều những kỹ thuật dành cho
khuynh hướng này.
1.1.2. Vài nét về lịch sử giấu tin
Từ steganography bắt nguồn từ Hi Lạp và được sử dụng cho tới ngày
nay, nó có nghĩa là tài liệu được phủ (covered writing). Các câu chuyện kể về
kỹ thuật giấu tin được truyền qua nhiều thế hệ. Có lẽ những ghi chép sớm nhất
về kỹ thuật giấu thông tin thuộc về sử gia Hi Lạp là Herodotus. Khi bạo chúa Hi
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 người
nô lệ được gửi tới Miletus.
4
Một câu chuyện khác về thời Hi Lạp cổ đại cũng do Herodotus ghi lại.
Môi trường để ghi văn bản chính là các viên thuốc được bọc trong sáp ong.
Demeratus, một người Hi Lạp, cần thông báo cho Sparta rằng Xerxes định xâm
chiếm Hi Lạp. Để tránh bị phát hiện, anh ta đã 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 dê để viết các 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.
Ý 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à 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ố hóa 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…
1.1.3. Mục đích của giấu tin
Giấu tin có hai mục đích:
- Bảo mật cho những dữ liệu được giấu
- Bảo đảm an toàn (bảo vệ bản quyền) cho chính các đối
tượng chứa dữ liệu giấu trong đó.
5
Có thể thấy hai mục đích này hoàn toàn trái ngược nhau và dần phát triển
thành hai lĩnh vực với những yêu cầu và tính chất khác nhau.
Giấu thông tin
Giấu tin bí mật
Thuỷ vân số
(Steganography)
(Watermarking)
Hình 1.1: Hai lĩnh vực chính của kỹ thuật giấu thông tin
Kỹ thuật giấu thông tin bí mật (Steganography): với mục đích đảm bảo an
toàn và bảo mật thông tin tập trung vào các kỹ thuật giấu tin để có thể giấu được
nhiều thông tin nhấ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 được.
Kỹ thuật giấu thông tin theo kiểu đánh giấu (watermarking) để bảo vệ
bản quyền của đối tượng chứa thông tin tập trung đảm bảo một số các yêu cầu
như đảm bảo tính bền vững… đây là ứng dụng cơ bản nhất của kỹ thuật thuỷ
vân số.
1.1.4. Mô hình kỹ thuật giấu thông tin cơ bản.
Để thực hiện giấu tin cần xây dựng được các thủ tục giấu tin. Các thủ tục
này sẽ thực hiện nhúng thông tin cần giấu vào môi trường giấu tin. Các thủ tục
giấu tin thường được thực hiện với một khóa giống như các hệ mật mã để tăng
tính bảo mật. Sau khi giấu tin ta thu được đối tượng chứa thông tin giấu và có
thể phân phối đối tượng đó trên kênh thông tin. Để giải mã thông tin cần nhận
được đối tượng có chứa thông tin đã giấu, sử dụng thủ tục giải mã cùng với
khóa đã dùng trong quá trình giấu để lấy lại thông tin.
6
Giấu thông tin vào phương tiện chứa và tách lấy thông tin là hai quá
trình trái ngược nhau và có thể mô tả qua sơ đồ khối của hệ thống như hình
1.2 trong đó:
- Thông tin cần giấu tuỳ theo mục đích của người sử dụng, nó có thể là
thông điệp (với các tin bí mật) hay các logo, hình ảnh bản quyền.
- Phương tiện chứa: các file ảnh, text, audio… là môi trường để nhúng tin
- Bộ nhúng thông tin: là những chương trình thực hiện việc giấu tin
- Đầu ra: là các phương tiện chứa đã có tin giấu trong đó
Thông tin
giấu
Phân
phối
Phương tiện
chứa(audio, ảnh,
video)
Bộ nhúng
thông tin
Phương tiện
chứa đã được
giấu tin
Khóa giấu tin
Hình 1.2: Lược đồ chung cho quá trình giấu tin
Tách thông tin từ các phương tiện chứa diễn ra theo quy trình ngược lại
với đầu ra là các thông tin đã được giấu vào phương tiện chứa. Phương tiện
chứa sau khi tách lấy thông tin có thể được sử dụng, quản lý theo những yêu cầu
khác nhau.
7
Khóa giấu tin
Phương tiện chứa đã
được giấu tin
Bộ giải mã
thông tin
Phương tiện chứa
(audio, ảnh,
video)
Thông tin giấu
Kiểm
định
Hình 1.3: Lược đồ chung cho quá trình giải mã
Hình vẽ 1.3 chỉ ra các công việc giải mã thông tin đã giấu. Sau khi
nhận được đối tượng phương tiện chứa có giấu thông tin, quá trình giải mã được
thực hiện thông qua một bộ giải mã tương ứng với bộ nhúng thông tin cùng với
khoá của quá trình nhúng. Kết quả thu được gồm phương tiện chứa gốc và
thông tin đã giấu. Bước tiếp theo thông tin đã giấu sẽ được xử lý kiểm định so
sánh với thông tin ban đầu.
1.1.5. Phân loại giấu tin.
a. Phân loại các kỹ thuật giấu tin:
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 vẫn chưa ổn định. Nhiều phương pháp mới, theo
nhiều khía cạnh khác nhau đang và sẽ được đề xuất, bởi vậy một định nghĩa
chính xác, một sự đánh giá phân loại rõ ràng chưa thể có được. Một số tác giả
đã đưa ra các đánh giá phân loại và các định nghĩa, nhưng không lâu sau lại có
các đánh giá phân loại và các định nghĩa khác được đề xuất.
8
Dựa trên việc thống kê sắp xếp khoảng 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 dữ liệu ra làm
hai hướng lớn, đó là watermarking và steganography. Nếu như watermarking
quan tâm nhiều đến các ứng dụng giấu các mẩu tin ngắn nhưng đòi hỏi độ bền
vững cao của thông tin cần giấu đối với 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 các ứng dụng che giấu các
bản tin với độ 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 có thể tiếp tục theo các tiêu chí khác.
Ngoài ra chúng ta có thể phân loại theo môi trường giấu thông tin:
+ Giấu thông tin trong ảnh.
+ Giấu thông tin trong audio.
+ Giấu thông tin trong video.
+ Giấu thông tin trong văn bản dạng text.
b. Phân loại theo cách thức tác động lên các phương tiện:
Phương pháp chèn dữ liệu: Phương pháp này tìm các vị trí trong file dễ bị
bỏ qua và chèn dữ liệu cần giấu vào đó, cách giấu này không làm ảnh hưởng gì
tới sự thể hiện các file dữ liệu ví dụ như được giấu sau các ký tự EOF.
Phương pháp tạo các phương tiện chứa: Từ các thông điệp cần chuyển sẽ
tạo ra các phương tiện chứa để phục vụ cho việc truyền thông tin đó, từ phía
người nhận dựa trên các phương tiện chứa này sẽ tái tạo lại các thông điệp.
c. Phân loại theo các mục đích sử dụng:
- Giấu thông tin bí mật: đây là ứng dụng phổ biến nhất từ trước đến nay,
đối với giấu thông tin bí mật người ta quan tâm chủ yếu tới các mục tiêu:
+ Độ an toàn của giấu tin - khả năng không bị phát hiện của giấu tin.
+ Lượng thông tin tối đa có thể giấu trong một phương tiện chứa
cụ thể mà vẫn có thể đảm bảo an toàn
+ Độ bí mật của thông tin trong trường hợp giấu tin bị phát hiện
9
- Giấu thông tin bí mật không quan tâm tới nhiều các yêu cầu bền vững
của phương tiện chứa, đơn giản là bởi người ta có thể thực hiện việc gửi và
nhận nhiều lần một phương tiện chứa đã được giấu tin.
- Giấu thông tin thuỷ vân: do yêu cầu bảo vệ bản quyền, xác thực… nên
giấu tin thuỷ vân có yêu cầu khác với giấu tin bí mật. Yêu cầu đầu tiên là các dấu
hiệu thuỷ vân đủ bền vững trước các tấn công vô hình hay cố ý gỡ bỏ nó. Thêm
vào đó các dấu hiệu thuỷ vân phải có ảnh hưởng tối thiểu (về mặt cảm nhận) đối
với các phương tiện chứa. Như vậy các thông tin cần giấu càng nhỏ càng tốt.
Tuỳ theo các mục đích khác nhau như bảo vệ bản quyền, chống xuyên tạc
nội dung, nhận thực thông tin,… thuỷ vân cũng có các yêu cầu khác nhau.
Các kỹ thuật giấu tin mới được phát triển mạnh trong khỏang mười năm
trở lại đây nên việc phân loại các kỹ thuật còn chưa hoàn toàn thống nhất. Sơ đồ
phân loại do F.Petitcolas đưa ra năm 1999 được nhiều người chấp nhận.
Information hiding
Giấu thông tin
Watermarking
Thuỷ vân số
Steganography
Giấu tin mật
Robust Watermarking
Thuỷ vân bền vững
Visible Watermarking
Thuỷ vân hiển thị
Fragile Watermarking
Thuỷ vân dễ vỡ
Imperceptible Watermarking
Thuỷ vân ẩn
Hình 1.4: Phân loại các kỹ thuật giấu tin.
Theo sơ đồ trên đây, giấu tin được chia thành hai hướng chính là
giấu tin mật và thủy vân số. Giấu tin mật quan tâm chủ yếu đến lượng tin có thể
giấu, còn thủy vân số lại quan tâm chủ yếu đến tính bền vững của thông tin
giấu. Trong từng hướng chính lại chia ra các hướng nhỏ hơn, chẳng hạn với
10
thủy vân số thì có thủy vân bền vững và thủy vân dễ vỡ. Thủy vân bền vững cần
bảo toàn được các thông tin thủy vân trước các tấn công như dịch chuyển, cắt
xén, xoay đối với ảnh. Ngược lại, thủy vân dễ vỡ cần phải dễ bị phá hủy khi gặp
các sự tấn công nói trên.
1.2. Giấu tin trong ảnh.
Hiện nay, giấu thông tin trong ảnh là một bộ phận chiếm tỷ lệ lớn nhất
trong các chương trình ứng dụng, các phần mềm, hệ thống giấu tin trong đa
phương tiện bởi lượng thông tin được trao đổi bằng ảnh 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 sự quan tâm rất lớn của các cá nhân,
tổ chức, trường đại học và cả viện nghiên cứu thế giới.
Thông tin sẽ được giấu cùng với dữ liệu ảnh nhưng chất lượng ít thay đổi
và chẳng ai biết được đằng sau ảnh đó mang những thông tin có ý nghĩa. Và
ngày nay, khi ảnh số đã được sử dụng rất phổ biến, thì giấu thông tin trong ảnh
đã đem lại nhiều những ứng dụng quan trọng trên các lĩnh vực trong đời sống
xã hội. Ví dụ như đối với các nước phát triển, chữ ký tay đã được số hóa và lưu
trữ sử dụng như hồ sơ cá nhân của các dịch vụ ngân hàng và tài chính. Nó được
sử dụng để nhận thực trong các thẻ tín dụng của người tiêu dùng.
Hay trong một số những ứng dụng về nhận diện như thẻ chứng minh thư,
thẻ căn cước, hộ chiếu… người ta có thể giấu thông tin trên các ảnh thẻ để xác
nhận thông tin thực.
Phần mềm Winword của Microsoft cũng cho phép người dùng lưu chữ ký
trong các ảnh nhị phân rồi gắn vào vị trí nào đó trong file văn bản để đảm bảo
tính an toàn của thông tin. Tài liệu sau đó được truyền trực tiếp qua fax hoặc
lưu truyền trên mạng. Theo đó, việc nhận thực chữ ký, xác nhận 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
11
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. Thêm vào đó, lại 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 máy
tính hay 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, cấp thiết. Và một đặc điểm của giấu thông tin trong ảnh
nữa đó là được giấu một cách vô hình. Nó như cách truyền thông tin mật cho
nhau mà người khác không thể biết được, bởi sau khi giấu thông tin thì chất
lượng ảnh gần như không thay đổi đặc biệt đối với ảnh mầu hay ảnh xám.
1.3. Tổng quan ảnh BITMAP (BMP).
1.3.1. Giới thiệu ảnh BITMAP (BMP).
Ảnh BITMAP (BMP) được phát triển bởi Microsoft Corporation, được
lưu trữ dưới dạng độc lập thiết bị cho phép Windows hiển thị dữ liệu không phụ
thuộc vào khung chỉ định màu trên bất kỳ phần cứng nào.
Tên tệp mở rộng mặc định của một tệp ảnh Bitmap là BMP, nét vẽ được
thể hiện là các điểm ảnh. Qui ước màu đen, trắng tương ứng với các giá trị 0, 1.
Ảnh BMP được sử dụng trên Microsoft Windows và các ứng dụng chạy
trên Windows từ version 3.0 trở lên. BMP thuộc loại ảnh mảnh.
Các thuộc tính tiêu biểu của một tập tin ảnh BMP là: Số bit trên mỗi điểm
ảnh thường được ký hiệu bởi n. Một ảnh BMP n bit có 2n màu. Giá trị n càng
lớn thì ảnh càng có nhiều màu và càng rõ nét hơn.
Giá trị tiêu biểu của n là 1 (ảnh đen trắng), 4 (ảnh 16 màu), 8 (ảnh 256
màu), 16 (ảnh 65536 màu) và 24 (ảnh 16 triệu màu). Ảnh BMP 24 - bit có chất
lượng hình ảnh trung thực nhất.
- Chiều cao của ảnh (height), cho bởi điểm ảnh.
- Chiều rộng của ảnh (width), cho bởi điểm ảnh.
12
Đặc điểm nổi bật nhất của định dạng BMP là tập tin ả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 tùy thuộc
vào giá trị ncủa ảnh.
Do đó, một hình ảnh lưu dưới dạng BMP thường có kích cỡ rất lớn, gấp
nhiều lần so với các ảnh được nén (chẳng hạn GIF, JPEG hay PNG).
1.3.2. Cấu trúc ảnh BITMAP (BMP).
Cấu trúc một tệp ảnh BMP gồm có bốn phần:
- Bitmap File Header: Lưu trữ thông tin tổng hợp về tệp ảnh BMP.
- Bitmap Information: Lưu trữ thông tin chi tiết về ảnh bitmap.
- Color Palette: Lưu trữ định nghĩa của màu được sử dụng cho bitmap(
riêng đối với BMP 24 bit không có Color Palette).
- Bitmap Data: Lưu trữ từng điểm ảnh của hình ảnh thực tế.
a. Bitmap File Header:
Đây là khối bytes ở phần đầu tập tin, sử dụng để định danh tập tin.
Ứng dụng đọc khối bytes này để kiểm tra xem đó có đúng là tập tin BMP
không và có bị hư hỏng không.
13
Bảng 1.1 Chi tiết khối bytes tiêu đề tập tin BMP.
Offset
Size
Mục đích
Magic number sử dụng để định nghĩa tập tin BMP:
0x42 0x4D (mã hexa của kí tự B và M). Các mục dưới
đây có thể được dùng:
0000h
2 bytes
0002h
4 bytes
0006h
2 bytes
0008h
2 bytes
000Ah
4 bytes
BM - Windows 3.1x, 95, NT, ... etc
CI - OS/2 Color Icon
CP - OS/2 Color Pointer
Kích thước của tập tin BMP theo byte.
Dành riêng; giá trị thực tế phụ thuộc vào ứng dụng tạo
ra hình ảnh.
Dành riêng; giá trị thực tế phụ thuộc vào ứng dụng tạo
ra hình ảnh.
Offset, địa chỉ bắt đầu các byte dữ liệu ảnh bitmap.
b. Bitmap Information:
Khối bytes này cho biết các thông tin chi tiết về hình ảnh sẽ được sử dụng
để hiển thị hình ảnh trên màn hình.
14
Bảng 1.2 dưới đây miêu tả chi tiết khối bytes thông tin tập tin BMP.
Offset
Size
Mục đích
Eh
4
Kích thước của tiêu đề (40 bytes).
12h
4
Chiều rộng bitmap tính bằng pixel (Signed interger).
16h
4
Chiều cao bitmap tính bằng pixel (Signed interger).
1Ah
2
1Ch
2
1Eh
4
22h
4
26h
4
2Ah
4
2Eh
4
Số lượng các mặt phẳng màu sắc được sử dụng. Phải
được thiết lập bằng 1.
Số bit trên mỗi pixel, là độ sâu màu của hình ảnh. Giá trị
điển hình là 1, 4, 8, 16, 24 và 32.
Phương pháp nén được sử dụng.
Kích thước hình ảnh. Đây là kích thước của dữ liệu
bitmap và không nên nhầm lẫn với kích thước tập tin.
Độ phân giải theo chiều ngang của hình ảnh (Signed
interger).
Độ phân giải theo chiều dọc của hình ảnh (Signed
interger).
Số lượng màu trong bảng màu.
Số lượng các màu sắc quan trọng được sử dụng, hoặc 0
32h
4
khi màu sắc nào cũng đều là quan trọng, thường bị bỏ
qua.
15
c. Color Palette
Tiếp theo vùng Info là Color Palette của BMP, gồm nhiều bộ có kích
thước bằng 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 = 4 * số màu của ảnh.
Bảng màu xuất hiện trong tập tin BMP sau tiêu đề BMP và tiêu đề DIB.
Vìvậy, offset là kích cỡ của tiêu đề BMP cộng với kích thước của tiêu đề DIB.
Vì Palette màu của màn hình có cấu tạo theo thứ tự Red – Green - Blue
nên khi đọc Palette màu của ảnh BMP vào thì phải chuyển đổi cho phù hợp.
Số màu của ảnh được biết dựa trên số bit cho 1 pixel cụ thể là:
8 bits / pixel: ảnh 256 màu.
4 bits / pixel: ảnh 16 màu.
24 bits / pixel ảnh 24 bit màu (không có color palette).
Có tất cả 2 ^ 24 màu RGB khác nhau, nhưng các loại Bitmap 1 bit (2 màu,
hoặc chuẩn Windows là trắng - đen), 4 bits (16 màu), 8 bits (256 màu) không thể
khai thác hết, nên chỉ liệt kê các màu được dùng trong tệp. Mỗi màu trong bảng
màu được mô tả bằng 4 bytes (BlueByte, GreenByte, RedByte và ReservByte).
Ví dụ:
Bảng màu loại 1 bit chuẩn Windows có 8 bytes: 0, 0, 0, 0, 255, 255, 255,
0 (4 bytes đầu là màu thứ 0, 4 bytes sau là màu thứ 1. Do chỉ có 0 và 1 nên mô
tả mỗi điểm ảnh chỉ cần dùng 1 bit).
Tương tự như vậy, bảng màu của tệp 4 bits có 64 bytes, lần lượt từ màu
số 0 đến màu số 15, bảng màu của tệp 8 bits có 1024 bytes (từ 0 đến 255).
Chính vì các màu được liệt kê như vậy nên các màu trong tệp 1 bit, 4 bits,
8 bits được gọi là Indexed, còn các màu trong tệp 24 bits được gọi là True.
d. Bitmap Data
Phần Bitmap Data nằm ngay sau phần Color Palette của ảnh BMP. Đây là
phần chứa các giá trị màu của các điểm ảnh trong BMP.
16
Dữ liệu ảnh được lưu từng điểm cho đến hết hàng ngang (từ trái sang
phải), và từng hàng ngang cho đến hết ảnh (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 tùy
theosố bits cho một pixel.
Đối với mỗi điểm ảnh loại màu Indexed, ta cần 1 bit, 4 bits hoặc 8 bits để
đặctrưng cho điểm đang xét ứng với màu thứ mấy trong bảng màu.
Ví dụ: Giá trị 0111 (=7) trong loại BMP 4 bits cho biết điểm đó có màu 7
(màu xám theo chuẩn Windows). Riêng loại 24 bits thì không mô tả màu bằng
thứ tự trên bảng màu (nếu liệt kê hết bảng màu của nó thì đã tốn cả Gigabyte bộ
nhớ và đĩa) mà được liệt kê luôn giá trị RGB của 3 màu thành phần.
Ví dụ:
Trắng ={255, 255, 255}, Đen = {0, 0, 0}.
Như vậy, mỗi điểm ảnh loại 1 bit tốn 1/8 bytes (nói cách khác, 1 byte lưu
được 8 điểm 1 bit), loại 4 bits tốn 1/2 byte, loại 8 bits tốn 1 byte và loại 24 bits
tốn 3 bytes.
Tuy nhiên, tính chung cả bức ảnh thì khối dữ liệu không hoàn toàn tỉ lệ
thuận như vậy mà thường lớn hơn một chút.
Lý do chính ở chỗ ta ngầm quy ước số bytes cần dùng cho 1 hàng ngang
phải là bội của 4. Nếu bạn có ảnh 1 x 1, 1 bit, thì cũng tốn 66 bytes như ảnh 32
x 1, 1 bit(54 cho header, 8 cho bảng màu, 4 cho 1 hàng tối thiểu).
Nếu thử xoay bức hình 32 x 1 (vừa đúng 4 bytes dữ liệu) thành 1 x 32, sự
lãng phí sẽ xuất hiện, lúc đó mỗi hàng sẽ lãng phí 31 bits, tổng cộng 32 lần như
thế(31*4 bytes = 124 bytes).
17
CHƯƠNG 2: NGHIÊN CỨU, PHÂN TÍCH VÀ TÌM HIỂU MỘT SỐ
THUẬT TOÁN GIẤU TIN
2.1. Các kỹ thuật giấu tin.
2.1.1. Kỹ thuật giấu tin LSB.
2.1.1.1. Khái niệm bit ít quan trọng LSB (LSB - Least significant bit).
Bit LSB là bit có ảnh hưởng ít nhất tới việc quyết định tới màu sắc của
mỗi điểm ảnh, vì vậy khi ta thay đổi bit ít quan trọng của một điểm ảnh thì màu
sắc của mỗi điểm ảnh mới sẽ tương đối gần với điểm ảnh cũ. Ví dụ đối với ảnh
16 bit thì 15 bit là biểu diễn 3 màu RGB của điểm ảnh còn bit cuối cùng không
dùng đến thì ra sẽ tách bit này ra ở mỗi điểm ảnh để giấu tin… Như vậy kỹ
thuật tách bit trong xử lý ảnh được sử dụng rất nhiều trong quy trình giấu tin.
Việc xác định LSB của mỗi điểm ảnh trong một bức ảnh phụ thuộc vào định
dạng của ảnh và số bit màu dành cho mỗi điểm của ảnh đó.
2.1.1.2. Kỹ thuật giấu tin LSB trong ảnh BITMAP.
Chúng ta sử dụng kỹ thụât “Thay thế” (substitution) để ẩn thông tin trong
một file. Với công nghệ này, bạn thay thế những bit ít quan trọng nhất của file
gốc với dữ liệu mà bạn muốn ẩn. Để sử dụng công nghệ này ta thực hiện các
bước sau:
Khi sử dụng kĩ thuật thay thế sẽ có một số ưu nhược điểm sau:
+Ưu điểm: Kích thước của file sẽ không bị thay đổi sau khi thực hiện
việc ẩn thông tin.
+ Nhược điểm: Có thể giảm chất lượng ảnh sau khi ẩn thông tin; giới hạn
kích thước thông tin muốn ẩn.
Trong kỹ thuật “Thay thế”, phương thức rất phổ biến là LSB (Least
Significant Bit).Phương thức này thay thế bit ít quan trọng nhất trong một vài
byte của file để ẩn tuần tự những byte dữ liệu chứa thông tin muốn ẩn. Cách này
có hiệu quả trong trường hợp mà thay thế LSB không ảnh hưởng đến chất lượng
ảnh. Ví dụ như đối với ảnh Bitmap 24 bit.