Download - ẩn mã và giấu tin trong ảnh
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
MỤC LỤC
MỤC LỤC........................................................................................................1
DANH MỤC HÌNH ẢNH.................................................................................3
LỜI MỞ ĐẦU...................................................................................................5
CHƯƠNG I : GIỚI THIỆU CHUNG VỀ AN TOÀN THÔNG TIN DỮ LIỆU
VÀ CÁC PHƯƠNG PHÁP BẢO VỆ...............................................................8
1.1. Các khái niệm 8
1.1.1.Thế nào là thông tin 8
1.1.2. Thế nào là an toàn bảo mật thông tin 8
1.1.3. An toàn bảo mật thông tin và vai trò 10
1.1.4. Phân loại các hình thức tấn công 10
1.1.5. Dịch vụ, cơ chế, tấn công 11
1.2. Các phương pháp bảo vệ 13
1.2.1. Phương pháp bảo vệ thông thường 13
1.2.2. Phương pháp bảo vệ dùng phần cứng 13
1.2.3. Phương pháp bảo vệ dùng phần mềm 13
1.3. Đánh giá độ an toàn và bảo vệ thông tin dữ liệu 13
1.3.1. Tổng quan 13
1.3.2. Đánh giá mức độ an toàn hệ thống 14
1.3.2.1. Đánh giá mức độ an toàn mạng 14
1.3.2.2. Đánh giá mức độ an toàn Internet 14
1.3.2.3. Đánh giá mức độ an toàn ứng dụng 15
1.3.2.4. Đánh giá mức độ an toàn vật lý 15
1.3.2.5. Đánh giá về chính sách sử dụng mạng 15
1.3.3. An toàn phần mềm 16
1.3.4. Sự phát triển của công nghệ và các ảnh hưởng 16
CHƯƠNG II : GIẤU THÔNG TIN TRONG ĐA PHƯƠNG TIỆN VÀ ỨNG
DỤNG.............................................................................................................17
2.1. Đa phương tiện 17
2.2. Giấu tin trong dữ liệu đa phương tiện 17
2.2.2. Phân loại các kỹ thuật giấu tin 17
2.2.3. Môi trường giấu tin 19
2.2.4. Giấu tin trong ảnh 19
2.2.5. Giấu tin trong audio 20
GVHD: TS.Nguy n Chung Ti n ễ ế 1 SVTH: Nguy n Duy Th ngễ ắ
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
2.2.6. Giấu tin trong video 20
2.3. Steganalysis20
2.3.1. Steganalysis có mục tiêu 21
2.3.2. Steganalysis thám 21
2.4. Một số ứng dụng của giấu tin 21
2.4.1. Bảo vệ bản quyền tác giả (copyright protection) 22
2.4.2. Xác thực thông tin và phát hiện giả mạo thông tin (authentication
and tamper detection) 23
2.4.3. Dấu vân tay và dán nhãn (fingerprinting and labeling) 25
2.4.4. Điều khiển truy cập (copy control) 25
2.4.5. Truyền thông tin mật (steganography) 25
CHƯƠNG III : TÌM HIỂU CÁC PHƯƠNG PHÁP GIẤU TIN TRONG ẢNH
.........................................................................................................................26
3.1. Các định dạng ảnh thường được sử dụng để giấu tin 26
3.1.1. Định dạng ảnh BITMAP 26
3.1.2. Định dạng ảnh .JPEG 27
3.1.3. Định dạng ảnh .GIF 29
3.1.4. Định dạng ảnh PNG 31
3.2. Kỹ thuật được sử dụng để giấu tin trong ảnh 32
3.2.1. Kỹ thuật Injection 32
3.2.2. Kỹ thuật Substitution33
3.2.3. Kỹ thuật Generation 34
3.3. Kỹ thuật giấu tin trong ảnh sử dụng các bit LSB 35
CHƯƠNG IV : XÂY DỰNG CHƯƠNG TRÌNH GIẤU TIN DỰA TRÊN
THUẬT TOÁN LSB.......................................................................................37
4.1. Xây dựng chương trình dựa trên thuật toán LSB 37
4.1.1. Ảnh BITMAP 37
4.1.2. Ý nghĩa của các phần trong tệp ảnh bitmap 38
4.1.3. Kích thước và giá trị các trường trong tệp ảnh 38
4.2. Thuật toán LSB 40
4.3. Giới thiệu về chương trình demo 42
4.3.1. Giới thiệu ngôn ngữ sử dụng 42
4.3.2. Mã nguồn chương trình 42
4.4. Chương trình demo 46
GVHD: TS.Nguy n Chung Ti n ễ ế 2 SVTH: Nguy n Duy Th ngễ ắ
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
Phần 1 : Giấu đoạn text dữ liệu vào trong file ảnh bitmap 46
Phần 2 : Giấu 1 file dữ liệu vào trong file ảnh bitmap 50
KẾT LUẬN.....................................................................................................57
1. Đánh giá 57
2. Phát triển và hạn chế của đề tài 57
TÀI LIỆU THAM KHẢO...............................................................................58
PHỤ LỤC........................................................................................................59
Mã nguồn chương trình đầy đủ 59
Nội dung chi tiết 59
DANH MỤC HÌNH ẢNH
Hình 1.1: Ví dụ về tấn công giả mạo...............................................................10
GVHD: TS.Nguy n Chung Ti n ễ ế 3 SVTH: Nguy n Duy Th ngễ ắ
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
Hình 1.2: Tấn công phá hoại an ninh..............................................................12
Hình 2.1: Lược đồ cho quá trình giải mã........................................................18
Hình 2.2: Một cách phân loại các kỹ thuật giấu tin.........................................18
Hình 2.3: Hai ảnh trước và sau khi giấu tin....................................................22
Hình 2.4: Thực chất bên trong ảnh có chứa thông tin chủ sở hữu..................23
Hình 2.5: Ảnh chưa bị xuyên tạc thông tin.....................................................24
Hình 2.6: Ảnh đã bị xuyên tạc thông tin.........................................................24
Hình 3.1,3.2: So sánh chất lượng hình ảnh nén và không nén........................28
Hình 3.3: Ảnh Gif............................................................................................29
Hình 3.4: 2 cây thông với dòng chữ "Nội dung bên dưới"..............................30
Hình 3.5: Ảnh gốc bên trên và chuyển thành định dạng GIF bên dưới..........31
Hình 3.6: Thế hiện ảnh mờ đục của định dạng PNG......................................32
Hình 3.7: Mô hình thuật toán Injection...........................................................33
Hình 3.8: Mô hình thuật toán Substitution......................................................34
Hình 4.1: Ý nghĩa từng trường trong vùng Bitmap Header............................38
Hình 4.2: Bitmap info......................................................................................39
Hình 4.3: Màu xanh với mã màu (0 0 255).....................................................41
Hình 4.4: Màu xanh với mã màu (0 0 254).....................................................41
Hình 4.5: Ảnh gốc...........................................................................................46
Hình 4.6: Nhập thông tin muốn giấu vào ảnh.................................................47
Hình 4.7: Dữ liệu được giấu trong ảnh thành công.........................................48
Hình 4.8: 2 Ảnh mới sinh ra và ảnh gốc không có sự khác biệt.....................48
Hình 4.9: Giao diện phần lấy thông tin...........................................................49
Hình 4.10: Lấy thông tin.................................................................................50
Hình 4.11: ảnh gốc..........................................................................................51
Hình 4.12: File dữ liệu muốn giấu..................................................................51
Hình 4.13,4.14: Nhập ảnh muốn giấu và file cần giầu....................................52
Hình 4.15: Giấu file vào trong ảnh..................................................................53
Bước 4.16: Lấy File Dữ liệu ra khỏi ảnh.........................................................53
Hình 4.17: Lấy file từ ảnh được sinh ra..........................................................54
Hình 4.18: Lấy file..........................................................................................55
Hình 4.19: 2 file ảnh không khác gì nhau.......................................................55
Hình 4.20: Không nhận thấy sự khác nhau giữa 2 hình..................................56
GVHD: TS.Nguy n Chung Ti n ễ ế 4 SVTH: Nguy n Duy Th ngễ ắ
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
LỜI MỞ ĐẦU
GVHD: TS.Nguy n Chung Ti n ễ ế 5 SVTH: Nguy n Duy Th ngễ ắ
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
Chắc không ai là không biết về sự kiện 11/9, hai toà cao ốc trung tâm
thương mại thế giới của Mĩ đã bị khủng bố khiến biết bao người thiệt mạng,
đó là một ngày kinh hoàng đối với nước Mĩ nói riêng và thế giới nói chung.
Vậy làm sao khủng bố lại có thể “qua mặt” cơ quan tình báo CIA của Mĩ để
thực hiện được vụ khủng bố một cách dễ dàng như vậy? Mãi gần đây mới có
câu trả lời, đó là vì chúng đã áp dụng công nghệ Datahiding, ở đây tạm dịch là
Công nghệ Giấu Tin, với công nghệ này chúng có thể truyền tin cho đồng bọn
trên các phương tiện đại chúng mà không bị phát hiện. Cuộc cách mạng thông
tin kỹ thuật số đã đem lại những thay đổi sâu sắc trong xã hội và trong cuộc
sống của chúng ta. Những thuận lợi mà thông tin kỹ thuật số mang lại cũng
sinh ra những thách thức và cơ hội mới cho quá trình đổi mới. Mạng Internet
toàn cầu đã biến thành một xã hội ảo nơi diễn ra quá trình 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…Và
chính trong môi trường mở và tiện nghi như thế 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, v.v.. Đi tìm giải pháp
cho những vấn đề này không chỉ giúp ta hiểu thêm về công nghệ phức tạp
đang phát triển rất nhanh này mà còn đưa ra những cơ hội kinh tế mới cần
khám phá.
Giấu tin dữ liệu đa phương tiện là phương pháp đã và đang được
nghiên cứu và ứng dụng rất mạnh mẽ ở nhiều nước trên thế giới đó là phương
pháp nhúng tin(che dấu thông tin) trong các phương tiện khác. Đây là phương
pháp mới và phức tạp nó đang được xem như một công nghệ chìa khoá cho
vấn đề bảo vệ bản quyền, xác thực thông tin và điều khiển truy cập ứng dụng
trong an toàn và bảo mật thông tin.
Để tìm hiểu sâu hơn về công nghệ giấu tin trong ảnh đề tài của em đã
tiến hành tìm hiểu các phương pháp để giấu tin, cách thức giấu tin và giấu các
loại tin khác nhau như thế nào. Ở đề tài này em đã nghiên cứu cách thức giấu
tin trong ảnh Bitmap, ảnh JPEG, ảnh Tif..các loại tin được giấu như một đoạn
văn bản, một tệp Word thậm chí là giấu ảnh trong ảnh…
Từ đó em đã chọn đề tài : “Ứng dụng ẩn mã và giấu tin trong ảnh”
Đề tài của em gồm 5 chương :
GVHD: TS.Nguy n Chung Ti n ễ ế 6 SVTH: Nguy n Duy Th ngễ ắ
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
- Chương I : Giới thiệu chung về an toàn thông tin và các phương pháp bảo vệ.
- Chương II : Giới thiệu về giấu tin.
- Chương III : Giấu thông tin trong đa phương tiện và ứng dụng
- Chương VI : Tìm hiểu các phương pháp giấu tin trong ảnh
- Chương V : Xây dựng chương trình giấu tin dựa trên thuật toán LSB
Em rất mong nhận được những ý kiến đóng góp của thầy cô và các bạn
để đồ án ngày càng hoàn thiện.
Em xin cảm ơn tập thể giảng viên Khoa An toàn Thông tin - Học viện
Kỹ thuật Mật Mã đã tận tình giảng dạy, hướng dẫn và trang bị kiến thức cho
em trong suốt 5 năm học vừa qua để từ đó đã tạo điều kiện tốt nhất cho em
thực hiện đồ án tốt nghiệp. Em xin cảm ơn thầy giáo, gia đình và bạn bè đã cổ
vũ, động viên rất nhiều để em có được sự quyết tâm, nỗ lực thực hiện mục
tiêu của mình.
Em xin chân thành cảm ơn thầy giáo TS.Nguyễn Chung Tiến đã tận
tình giúp đỡ và hướng dẫn em hoàn thành đồ án tốt nghiệp này.
Em xin chân thành cảm ơn!!
Hà Nội, tháng 6 năm 2011
Sinh viên
Nguyễn Duy Thắng
GVHD: TS.Nguy n Chung Ti n ễ ế 7 SVTH: Nguy n Duy Th ngễ ắ
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
CHƯƠNG I : GIỚI THIỆU CHUNG VỀ AN TOÀN THÔNG
TIN DỮ LIỆU VÀ CÁC PHƯƠNG PHÁP BẢO VỆ
1.1. Các khái niệm
1.1.1.Thế nào là thông tin
Trong cuộc sống con người luôn có nhu cầu trao đổi thông tin
với nhau. Những thông tin được trao đổi rất phong phú và được truyền
trên nhiều dạng khác nhau ví dụ như: dùng thư tay, dùng sóng điện từ
(điện thoại), dùng mạng Internet…
Vậy thông tin là gì? Hiện nay chưa có khái niệm đầy đủ về khái niệm
thông tin. Theo lý thuyết thông tin thì thông tin được định nghĩa là vật liệu
đầu tiên được gia công trong hệ thống truyền tin. Có thể khái quát rằng là sự
phản ánh sự vật, sự việc, hiện tượng của thế giới khách quan và các hoạt động
của con người trong đời sống xã hội. Điều cơ bản là con người thông qua việc
cảm nhận thông tin làm tăng hiểu biết cho mình và tiến hành những hoạt động
có ích cho cộng đồng.
1.1.2. Thế nào là an toàn bảo mật thông tin
Ngày nay, khi mà nhu cầu trao đổi thông tin dữ liệu ngày càng lớn và
đa dạng, các tiến bộ về điện tử viễn thông và công nghệ thông tin không
ngừng được phát triển để nâng cao chất lượng cũng như lưu lượng truyền
tin thì biện pháp bảo vệ thông tin ngày càng được đổi mới. An toàn bảo
mật thông tin là một chủ đề rộng, có liên quan đến nhiều lĩnh vực khác
nhau trong thực tế.
Vậy an toàn bảo mật thông tin là gì? đó là đảm bảo sự an toàn
cho thông tin gửi cũng như thông tin nhận giúp xác nhận đúng thông
tin khi nhận và đảm bảo tính toàn vẹn, sẵn sàng tin cậy, không bị tấn công
hay thay đổi thông tin khi truyền đi. Các hệ thống và những dịch vụ có khả
năng chống lại những tai hoạ, lỗi và sự tác động không mong đợi, các thay
đổi tác động đến độ an toàn của hệ thống là nhỏ nhất .
Không thể đảm bảo an toàn 100%, nhưng ta có thể giảm bớt các rủi ro
không mong muốn dưới tác động từ mọi phía của các lĩnh vực hoạt động kinh
tế xã hội . Khi các tổ chức, đơn vị tiến hành đánh giá những rủi ro và cân nhắc
kỹ những biện pháp đối phó về ATTT, họ luôn luôn đi đến kết luận: những
GVHD: TS.Nguy n Chung Ti n ễ ế 8 SVTH: Nguy n Duy Th ngễ ắ
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
giải pháp công nghệ (kỹ thuật) đơn lẻ không thể cung cấp đủ sự an toàn.
Những sản phẩm Anti-virus, Firewalls và các công cụ khác không thể cung
cấp sự an toàn cần thiết cho hầu hết các tổ chức. ATTT là một mắt xích liên
kết hai yếu tố: yếu tố công nghệ và yếu tố con người.
1. Yếu tố công nghệ: bao gồm những sản phẩm như Firewall, phần
mềm phòng chống virus, giải pháp mật mã, sản phẩm mạng, hệ điều hành và
những ứng dụng như: trình duyệt Internet và phần mềm nhận Email từ máy
trạm.
2. Yếu tố con người: Là những người sử dụng máy tính, những người
làm việc với thông tin và sử dụng máy tính trong công việc của mình. Hai yếu
tố trên được liên kết lại thông qua các chính sách về ATTT.
Theo tiêu chuẩn ISO 17799, An Toàn Thông Tin là khả năng bảo vệ
đối với môi trường thông tin kinh tế xã hội, đảm bảo cho việc hình thành, sử
dụng và phát triển vì lợi ích của mọi công dân, mọi tổ chức và của quốc gia.
Thông qua các chính sách về ATTT , lãnh đạo thể hiện ý chí và năng lực của
mình trong việc quản lý hệ thống thông tin. ATTT được xây dựng trên nền
tảng một hệ thống các chính sách, quy tắc, quy trình và các giải pháp kỹ thuật
nhằm mục đích đảm bảo an toàn tài nguyên thông tin mà tổ chức đó sở hữu
cũng như các tài nguyên thông tin của các đối tác, các khách hàng trong một
môi trường thông tin toàn cầu. Như vậy , với vị trí quan trọng của mình , có
thể khẳng định vấn đề ATTT phải bắt đầu từ các chính sách trong đó con
người là mắt xích quan trọng nhất.
Con người – khâu yếu nhất trong toàn bộ quá trình đảm bảo an toàn
thông tin . Hầu như phần lớn các phương thức tấn công được hacker sử dụng
là khai thác các điểm yếu của hệ thống thông tin và đa phần các điểm yếu đó
rất tiếc lại do con người tạo ra. Việc nhận thức kém và không tuân thủ các
chính sách về ATTT là nguyên nhân chính gây ra tình trạng trên. Đơn cử là
vấn đề sử dụng mật khẩu đã được quy định rất rõ trong các chính sách về
ATTT song việc tuân thủ các quy định lại không được thực hiện chặt chẽ.
Việc đặt một mật khẩu kém chất lượng, không thay đổi mật khẩu định kỳ,
quản lý mật khẩu lỏng lẻo là những khâu yếu nhất mà hacker có thể lợi dụng
để xâm nhập và tấn công.
GVHD: TS.Nguy n Chung Ti n ễ ế 9 SVTH: Nguy n Duy Th ngễ ắ
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
1.1.3. An toàn bảo mật thông tin và vai trò
An toàn bảo mật thông tin đang là vấn đề quan tâm hiện nay bởi xã
hội phát triển nhu cầu trao đổi thông tin không ngừng tăng lên, các thông
tin đòi hỏi phải được đảm bảo an toàn ở mức tốt nhất có thể trước sự tấn
công để đánh cắp cũng như sửa đổi thông tin.
Ví dụ như: muốn trao đổi tiền với ngân hàng phải sử dụng thẻ tín dụng
và sử dụng hệ thống mạng để trao đổi giữa ngâng hàng và người sử dụng thẻ
tín dụng đó giả sử số thẻ tín dụng bị đánh cắp thì sao? Nếu thông tin không
được bảo vệ tốt.Từ đó thấy vai trò của an toàn bảo mật thông tin là vô cùng
quan trọng trong nhiều lĩnh vực trong cuộc sống cũng như chính trong lĩnh
vực công nghệ thông tin.
1.1.4. Phân loại các hình thức tấn công
Hình 1.1: Ví dụ về tấn công giả mạo
Các hệ thống trên mạng có thể là đối tượng của nhiều kiểu tấn công:
- Tấn công giả mạo là một thực thể tấn công giả danh một thực thể khác.
Tấn công giả mạo thường được kết hợp với các dạng tấn công khác như
tấn công chuyển tiếp và tấn công sửa đổi thông báo.
- Tấn công chuyển tiếp xảy ra khi một thông báo, hoặc một phần thông
báo được gửi nhiều lần, gây ra các tác động tiêu cực.
GVHD: TS.Nguy n Chung Ti n ễ ế 10 SVTH: Nguy n Duy Th ngễ ắ
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
- Tấn công sửa đổi thông báo xảy ra khi nội dung của một thông báo bị
sửa đổi nhưng không bị phát hiện.
- Tấn công từ chối dịch vụ xảy ra khi một thực thể không thực hiện chức
năng của mình, gây cản trở cho các thực thể khác thực hiện chức năng
của chúng.
- Tấn công từ bên trong hệ thống xảy ra khi người dùng hợp pháp cố tình
hoặc vô ý can thiệp hệ thống trái phép. Còn tấn công từ bên ngoài là
nghe trộm, thu chặn, giả mạo người dùng hợp pháp và vượt quyền hoặc
lách qua các cơ chế kiểm soát truy nhập.
Các hình thức tấn công cũng có thể được phân loại theo các tiêu chí sau:
Tấn công bị động. Do thám, theo dõi đường truyền để:
- Nhận được nội dung bản tin
- Theo dõi luồng truyền tin
Tấn công chủ động. Thay đổi luồng dữ liệu để:
- Giả mạo một người nào đó.
- Lặp lại bản tin trước
- Thay đổi ban tin khi truyền
- Từ chối dịch vụ.
1.1.5. Dịch vụ, cơ chế, tấn công
Nhu cầu thực tiến dẫn đến sự cần thiết có một phương pháp hệ thống
xác định các yêu cầu an ninh của tổ chức. Trong đó cần có tiếp cận tổng thể
xét cả ba khía cạnh của an toàn thông tin: bảo vệ tấn công, cơ chế an toàn và
dịch vụ an toàn.
1.1.5.1. Các dịch vụ an toàn
Đây là công cụ đảm bảo an toàn của hệ thống xử lý thông tin và truyền
thông tin trong tổ chức. Chúng được thiết lập để chống lại các tấn công phá
hoại. Có thể dùng một hay nhiều cơ chế an toàn để cung cấp dịch vụ.
Thông thường cần phải tạo ra các liên kết với các tài liệu vật lý: như có
chữ ký, ngày tháng, bảo vệ cần thiết chống khám phá, sửa bậy, phá hoại, được
công chứng, chứng kiến, được ghi nhận hoặc có bản quyền.
GVHD: TS.Nguy n Chung Ti n ễ ế 11 SVTH: Nguy n Duy Th ngễ ắ
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
1.1.5.2. Các cơ chế an toàn
Từ các công việc thực tế để chống lại các phá hoại an ninh, cần hệ
thống và sắp xếp lại tạo thành các cơ chế an ninh khác nhau. Đây là cơ chế
được thiết kế để phát hiện, bảo vệ hoặc khôi phục do tấn công phá hoại.
Không có cơ chế đơn lẻ nào đáp ứng được mọi chức năng yêu cầu của
công tác an ninh. Tuy nhiên có một thành phần đặc biệt nằm trong mọi cơ chế
an toàn đó là: kỹ thuật mã hoá. Do đó chúng ta sẽ dành một thời lượng nhất
định tập trung vào lý thuyết mã.
1.1.5.3. Tấn công phá hoại an ninh
Xác định rõ thế nào là các hành động tấn công phá họai an ninh. Đó là
mọi hành động chống lại sự an toàn thông tin của các tổ chức.
An toàn thông tin là bàn về bằng cách nào chống lại tấn công vào hệ
thống thông tin hoặc phát hiện ra chúng. Trên thực tế có rất nhiều cách và
nhiều kiểu tấn công khác nhau. Thường thuật ngữ đe doạ và tấn công được
dùng như nhau. Cần tập trung chống một số kiểu tấn công chính: thụ động và
chủ động.
Hình 1.2: Tấn công phá hoại an ninh
GVHD: TS.Nguy n Chung Ti n ễ ế 12 SVTH: Nguy n Duy Th ngễ ắ
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
1.2. Các phương pháp bảo vệ
1.2.1. Phương pháp bảo vệ thông thườngĐây là phương pháp dùng biện pháp hành chính để bảo vệ thông tin,
thông tin được đăng ký và được bảo vệ bởi các cơ quan hành chính nhưng
thông tin được bảo vệ chỉ hạn hẹp ở một số các lĩnh vực nhất định.
1.2.2. Phương pháp bảo vệ dùng phần cứng
Đây là phương pháp bảo vệ dùng các biện pháp kỹ thuật sử dụng để
bảo vệ thông tin, biện pháp này được tích hợp trên các thiết bị phần phần
cứng.
1.2.3. Phương pháp bảo vệ dùng phần mềm Đây là phương pháp được quan tâm nhất bởi môi trường truyền
tin hiện nay là môi trường mạng, đây là môi trường dễ xâm nhập nhất,
đồng thời dữ liệu dễ xảy ra sự cố nhất.Biện pháp bảo vệ dùng phần mềm vừa
đáp ứng vừa hiệu quả đặc biệt là trong môi trường mạng.
Biện pháp bảo vệ dùng phần mềm thực ra là dùng thuật toán mã hóa,
hay dùng một thông tin khác làm vỏ bảo vệ hoặc kết hợp cả hai. Trong đó
phương pháp thứ hai dùng một thông tin khác làm vỏ bảo vệ chính là sử
dụng dữ liệu đa phương tiện như ảnh, audio, video để làm lớp vỏ bọc cho
thông tin giấu trong đó, đồng thời kết hợp với phương pháp mã hóa
để thông tin được bảo vệ an toàn hơn.
1.3. Đánh giá độ an toàn và bảo vệ thông tin dữ liệu
1.3.1. Tổng quan
Bảo vệ an toàn thông tin dữ liệu là một chủ đề khó đánh giá được như
thế nào là tối ưu nó căn cứ vào rất nhiều yếu tố như kinh tế, độ phức tạp
của hệ thống…Một hệ thống được chấp nhận là đảm bảo an toàn nếu như
nhu cầu an toàn thông tin dữ liệu bên nhận và bên gửi được thỏa mãn. Phải dự
kiến được trước các tình huống xảy ra, nếu thông tin bị đánh cắp có thể phục
vụ mục đích gì để từ đó có cách đối phó.
Các phương pháp bảo vệ phụ thuộc vào chính chủ sở hữu các thông
tin đó và hệ thống bảo vệ đó cũng chỉ có tính tương đối. Không có một
phương pháp bảo vệ nào hiệu quả tuyệt đối với mọi trường hợp, tùy
theo phương pháp và người sử dụng thì có phương pháp bảo vệ tương ứng.
GVHD: TS.Nguy n Chung Ti n ễ ế 13 SVTH: Nguy n Duy Th ngễ ắ
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
1.3.2. Đánh giá mức độ an toàn hệ thống
Yêu cầu của mục này là đánh giá mức độ an toàn của các hệ điều hành
được sử dụng trong mạng như Windows NT, Windows 2000, Windows,
UNIX, Linux, ... hay các lớp giữa (coremiddleware) như Oracle, MS SQL,
MS Exchange, Lotus Notes, ...
Các hệ thống này sẽ được kiểm tra về các tính năng định danh và xác
thực, phân quyền truy nhập, bảo mật, tính toàn vẹn (integrity) và không thể từ
chối (non-repudiation). Các phương thức đề đánh giá các tính năng của hệ
thống dựa vào danh sách các lỗ hổng về bảo mật được đưa ra bởi nhà cung
cấp chính các hệ điều hành đó. Các công cụ phần mềm cũng được phát triển
để hỗ trợ cho các thao tác này (xem mục Công cụ để biết về những phần mềm
phát hiện lỗ hổng của Windows, công cụ phát hiện lỗ hổng của UNIX sẽ được
cung cấp trong thời gian sớm nhất).
1.3.2.1. Đánh giá mức độ an toàn mạng Không phải tất cả tấn công đều xuất phát từ Internet. Mạng nội bộ cũng
cần có các tính năng kiểm soát an toàn, có các quy trình và kỹ thuật thích hợp
để ngăn chặn các tấn công có chủ ý hoặc những lỗi mắc phải. Đánh giá về an
toàn mạng tập trung vào thiết kế mạng, cấu hình của mạng và cách sử dụng
mạng. Nó bao gồm cả các hệ điều hành mạng, các thiết bị dẫn đường (router),
bridges, switch và các thiết bị mạng khác.
Để đánh giá mức độ an toàn mạng có các công cụ xâm nhập và tự động
quét các cấu hình lỗi của hệ thống.
1.3.2.2. Đánh giá mức độ an toàn InternetĐối với các doanh nghiệp có kết nối với Internet hoặc cung cấp dịch cụ
trên Internet thì còn phải lưu ý đến việc đánh giá các nguy cơ đến từ Internet,
đó là các nguy cơ tấn công của virus lây lan qua thư, các con sâu (worm) như
Code Red hay Nimda, ngoài ra là còn sự nghe trộm thông tin (sniffer), xâm
nhập bất hợp pháp (intrusion) hoặc tấn công từ chối dịch vụ (DoS).
Để đánh giá được sự an toàn khi truy nhập Internet cần có những
chuyên gia cùng với những thông tin mới nhất. Công cụ phần mềm cũng có
thể hỗ trợ kiểm tra virus trong máy tính, tìm kiếm một số lỗ hổng về bảo mật
khi truy nhập Internet và một số lời khuyên hữu ích.
GVHD: TS.Nguy n Chung Ti n ễ ế 14 SVTH: Nguy n Duy Th ngễ ắ
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
1.3.2.3. Đánh giá mức độ an toàn ứng dụngCác ứng dụng các thể tạo ra các lỗ hổng và cửa hậu (back-door) trong
hệ thống của chúng ta. Hãy đánh giá kỹ độ tin cậy của nhà cung cấp các sản
phẩm ứng dụng trên mạng, đối với các sản phẩm tự phát triển hãy kiểm tra
các đoạn mã mất an toàn được để lại trong mã chương trình nguồn.
Việc trao đổi thông tin giữa các ứng dụng trên mạng cũng là một vấn
đề cần quan tâm. Hệ thống mạng đã đủ an toàn cho các thông tin này chưa,
hay cần phải áp dụng thêm những biện pháp bảo mật bổ sung. Một hệ thống
mã hoã và ký điện tử PGP (Pretty Good Privacy) cho các Email viết hoa với
các khách hàng quan trọng là một điều không thừa.
1.3.2.4. Đánh giá mức độ an toàn vật lýMột vấn đề về bảo mật là bảo vệ an toàn nơi làm việc. Cần phải đanh
giá về chính sách bảo vệ, hoạt động với các nhân viên, khách hàng ra vào
công ty.
Cũng không thể loại trừ việc bảo vệ các tài sản liên quan đến thông tin
trong những điều kiện đặc biệt như thiên tai hay hoả hoạn cần xem xét về các
kế hoạch khẩn cấp, kế hoạch quản lý rủi ro hay đơn giản chỉ là sao lưu nhiều
bản các dữ liệu.
1.3.2.5. Đánh giá về chính sách sử dụng mạngĐối với các hệ thống vừa và nhỏ vấn đề các công nghệ và các phần
mềm bảo mật không phải là tất cả. Đối với các trường hợp mất an toàn thông
tin do lỗi phần mềm, các bản sửa lỗi sẽ được phát hành ngay lập tức, hay là
các tấn công từ bên ngoài, chúng rất nguy hiểm nhưng không chiếm số lượng
lớn. Một tỷ lệ rất lớn các nguyên nhân gây mất mát thông tin hay góp phần
vào đó là do lỗi khi sử dụng phần mềm hoặc cách thức sử dụng không hợp lý.
Đánh giá về chính sách sử dụng là xem xét kỹ luỡng quy trình quản trị,
theo dõi hệ thống mạng, các quy định về sử dụng mạng của các thành viên và
quy định về trách nhiệm khi sử dụng mạng.
Các biện pháp khác:
Đào tạo kiến thức về an toàn thông tin bao gồm các kiến thức về mạng,
các hệ điều hành mạng, an toàn thông tin trong việc phát triển ứng dụng và hỗ
trợ.
Sử dụng phương pháp đánh giá bởi các hacker trung thực. Một số các
nhà cung cấp dịch vụ an toàn cao cấp có dịch vụ sử dụng một nhóm các
GVHD: TS.Nguy n Chung Ti n ễ ế 15 SVTH: Nguy n Duy Th ngễ ắ
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
chuyên gia có kinh nghiệm về an toàn thử nghiệm đột nhập vào hệ thống để
phát hiện ra các lỗ hổng về bảo mật.
1.3.3. An toàn phần mềm
Phần mềm là yếu tố đảm bảo an toàn dữ liệu đầu tiên, phần mềm quy
định phần cứng hỗ trợ cho nó để có khả năng bảo vệ hiệu quả nhất thông tin
dữ liệu.
1.3.4. Sự phát triển của công nghệ và các ảnh hưởng
Công nghệ thông tin phát triển nhanh, đồng thời cũng gia tăng
các nguy cơ xâm nhập thông tin dữ liệu vào các hệ thống thông tin. Với kẻ
xâm nhập tùy theo mục đích mà có những cách thức xâm nhập ngày càng tinh
vi hơn, đòi hỏi yêu cầu bảo vệ cần được cải tiến và phải hiệu quả hơn.
Các công nghệ bảo mật mới cần được nghiên cứu và ứng dụng
vào trong thực tế để kịp đáp ứng nhu cầu bảo vệ an toàn thông tin dữ liệu.
GVHD: TS.Nguy n Chung Ti n ễ ế 16 SVTH: Nguy n Duy Th ngễ ắ
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
CHƯƠNG II : GIẤU THÔNG TIN TRONG ĐA PHƯƠNG
TIỆN VÀ ỨNG DỤNG
2.1. Đa phương tiện
Đa phương tiện (Multimedia) là nhiều hệ thống truyền thông, các
dữ liệu hay các thông tin đa phương tiện gồm: text (văn bản),
graphic(hình họa), animation (hoạt ảnh), Image(ảnh chụp), video, audio.
2.2. Giấu tin trong dữ liệu đa phương tiện
Giấu thông tin là kỹ thuật nhúng(embedding) một lượng thông tin
số nào đó vào trong một đối tượng dữ liệu số khác. Sự khác biệt giữa mã hóa
thông tin đã nói ở trên và giấu thông tin là mã hóa làm cho các thông tin
hiện rõ là nó có được mã hóa hay không, còn với giấu thông tin thì sẽ khó
phát hiện ra được rằng có thông tin giấu bên trong.
Yêu cầu cơ bản của việc 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 làm ảnh hưởng đến chất lượng của dữ liệu gốc.
Mục đích của giấu tin có hai khía cạnh chính:
Bảo mật cho dữ liệu đem giấu (embedded data), chẳng hạn như
giấu thông tin mật trong một đối tượng nào đó sao cho người khác không
phát hiện được.
Đảm an toàn bảo mật cho chính đối tượng được dùng để giấu dữ liệu
vào (host data) .
Kỹ thuật giấu tin đã được nghiên cứu và áp dụng trong nhiều
môi trường dữ liệu khác nhau như trong dữ liệu đa phương tiện (text,
image, audio, video), trong các sản phẩm phần mềm, và gần đây là trong cở
sở dữ liệu quan hệ, trong đó thì dữ liệu đa phương tiện chiếm tỉ lệ chủ yếu
trong kỹ thuật giấu tin.
2.2.2. 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 chưa ổn định.
GVHD: TS.Nguy n Chung Ti n ễ ế 17 SVTH: Nguy n Duy Th ngễ ắ
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
Hình 2.1: Lược đồ cho quá trình giải mã
Nhiều phương pháp mới, theo nhiều khía cạnh khác nhau đang và chắc
chắn sẽ được đề xuất, bởi vậy một định nghĩa chính xác, một sự đánh giá
phân loại rõ ràng chưa thể có được. Sơ đồ phân loại dưới đây được Fabien A.
P. Petitcolas đề xuất năm 1999.
Hình 2.2: Một cách phân loại các kỹ thuật giấu tin
Sơ đồ phân loại này như một bức tranh khái quát về ứng dụng và kỹ
thuật giấu thông tin. Dựa trên việc thống kê sắp xếp khoảng 100 công trình đã
GVHD: TS.Nguy n Chung Ti n ễ ế 18 SVTH: Nguy n Duy Th ngễ ắ
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
công bố trên một số tạp chí, cùng với thông tin về tên và tóm tắt nội dung của
khoảng 200 công trình đã công bố trên Internet, có thể chia lĩnh vực giấu tin
ra làm hai hướng lớn, đó là watermarking và steganography.
Nếu như watermark (thủy vân, thủy ấn) quan tâm nhiều đến ứng dụng
giấu các mẩu tin ngắn nhưng đòi hỏi độ bền vững lớn của thông tin cần giấu
(trước các biến đổi thông thường của tệp dữ liệu môi trường) thì
steganography lại quan tâm tới ứng dụng che giấu các bản tin đòi hỏi độ bí
mật và dung lượng càng lớn càng tốt.
Đối với từng hướng lớn này, quá trình phân loại theo các tiêu chí khác
có thể tiếp tục được thực hiện, ví dụ dựa theo ảnh hưởng các tác động từ bên
ngoài có thể chia watermark thành hai loại, một loại bền vững với các tác
động sao chép trái phép, loại thứ hai lại cần tính chất hoàn toàn đối lập: dễ bị
phá huỷ trước các tác động nói trên.
Cũng có thể chia watermark theo đặc tính, một loại cần được che giấu
để chỉ có một số người tiếp xúc với nó có thể thấy được thông tin, loại thứ hai
đối lập, cần được mọi người nhìn thấy.
2.2.3. Môi trường giấu tin
Kỹ thuật giấu tin đã được nghiên cứu và áp dụng trong nhiều môi
trường dữ liệu khác nhau như trong dữ liệu đa phương tiện (text, image,
audio, video), trong sản phẩm phần mềm và gần đây là những nghiên cứu trên
môi trường cơ sở dữ liệu quan hệ. Trong các môi trường dữ liệu đó thì dữ liệu
đa phương tiện là môi trường chiếm tỉ lệ chủ yếu trong các kỹ thuật giấu tin.
2.2.4. Giấu tin trong ảnh
Giấu thông tin trong ảnh hiện nay 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 ảnh đa
phương tiện bởi lượng thông tin trao đổi bằng ảnh là rất lớn, hơn nữa giấu
thông tin ảnh cũng đóng vai trò hết sức quan trọng đối với 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...
Thông tin sẽ được giấu cùng với dữ liệu ảnh nhưng chất lượng ảnh ít
thay đổi và chẳng ai biết được ảnh đó mang nhưng thông tin có ý nghĩa và để
GVHD: TS.Nguy n Chung Ti n ễ ế 19 SVTH: Nguy n Duy Th ngễ ắ
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
đảm bảo yêu cầu cơ bản của giấu tin thì kỹ thuật giấu tin trong ảnh phụ thuộc
vào hệ thống thị giác của con người.
Ngày nay, khi ảnh số đã được sử dụng rất phổ biến thì giấu tin trong
ảnh đem lại rất nhiều ứng dụng quan trọng trên nhiều lĩnh vực của đời sống
xã hội.
2.2.5. Giấu tin trong audio
Giấu 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 bảo yêu cầu cơ bản của
giấu tin thì giấu tin trong audio thuộc vào hệ thống thính giác của
con người.
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 xuất lớn đặc điểm này gây khó khăn trong phương pháp
giấu tin trong audio. Tuy nhiên, hệ thống thính giác của con người lại khó
phát hiện sự khác biệt các giải tần và công xuất tức là các âm thanh to, cao tần
có thể che giấu được các âm thanh nhỏ, thấp tần một cách dễ dàng.
Thông tin này sẽ giúp ích cho việc chọn các 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.
2.2.6. Giấu tin trong video
Cũng giống như giấu thông tin trong ảnh hay trong audio, nó
phụ thuộc cả vào hệ thống thính giác và thị giác của con người. Và cũng
phát triển theo hai hướng thủy vân và steganography. Nhiều phương pháp
mới đã được được đưa ra như phương pháp phân bố đều của Cox đó là phân
bố thông tin giấu dàn trải theo tần số của dữ liệu gốc.
2.3. Steganalysis
Đây là kỹ thuật phát hiện steganography. Có rất nhiều phương pháp có
thể được dùng để phát hiện steganography như:
Image : Xem tập tin và so sánh nó với một bản sao khác được tìm thấy
trên Internet (File tranh ảnh). Thường có nhiều bản sao của hình ảnh trên
Internet, vì vậy có thể muốn tìm kiếm nhiều bản sao và thử so sánh các tập tin
đáng nghi với chúng.
GVHD: TS.Nguy n Chung Ti n ễ ế 20 SVTH: Nguy n Duy Th ngễ ắ
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
Ví dụ : nếu tải về một tập tin JPEG, tập tin nghi ngờ cũng là JPEG và
hai tập tin trông giống nhau hoàn hoàn ngoại trừ một tập tin lớn hơn tập tin
kia. Điều đó rất có thể là trường hợp tập tin nghi ngờ của đó có chứa thông tin
được giấu bên trong.
Audio: Điều này tương tự phương pháp được sử dụng để cố gắng phát
hiện steganography trong các tập tin tranh ảnh ở trên.
Nếu ai đó cố gắng phát hiện thông tin ẩn bên trong một tập tin âm
thanh MP3, thì sẽ cần phải tìm một tập tin âm thanh so sánh với nó và cả hai
phải sử dụng cùng dạng nén (MP3.) Phương pháp này cũng được áp dụng như
tìm kiếm thông tin ẩn bên trong các tập tin tranh ảnh.
2.3.1. Steganalysis có mục tiêu
Steganalysis có mục tiêu có liên quan đến thuật toán steganographic
đang được sử dụng. Phương pháp này cung cấp một manh mối có hiệu quả
lớn trong việc chọn ra đại diện đặc trưng.
2.3.2. Steganalysis thám
Hiện nay có rất nhiều loại thuật toán steganalysis thám và có mục tiêu như:
- Nhúng LSB và Histogram Attack
- Phân tích cặp mẫu
- Steganalysis thám hình ảnh JPEG sử dụng phương pháp căn chỉnh
2.4. Một số ứng dụng của giấu tin
Bảo mật thông tin bằng giấu tin có hai khía cạnh. Một là bảo mật cho
dữ liệu đem giấu (embedded data), chẳng hạn như giấu tin mật: thông tin mật
được giấu kỹ trong một đối tượng khác sao cho người khác không phát hiện
được (steganography). Hai là bảo mật chính đối tượng được dùng để giấu dữ
liệu vào (host data), chẳng hạn như ứng dụng bảo vệ bản quyền, phát hiện
xuyên tạc thông tin (watermarking)... Một số ứng dụng đang được triển khai .
2.4.1. Bảo vệ bản quyền tác giả (copyright protection)
Đây là ứng dụng cơ bản nhất của kỹ thuật giấu tin. Một thông tin nào
đó mang ý nghĩa quyền sở hữu tác giả sẽ được nhúng vào trong các sản phẩm,
thông tin đó chỉ một mình người chủ sở hữu hợp pháp các sản phẩm đó có và
GVHD: TS.Nguy n Chung Ti n ễ ế 21 SVTH: Nguy n Duy Th ngễ ắ
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
được dùng làm minh chứng cho bản quyền sản phẩm. Giả sử có một thành
phẩm dữ liệu dạng đa phương tiện như ảnh, âm thanh, video cần được lưu
thông trên mạng. Để bảo vệ các sản phẩm chống lại hành vi lấy cắp hoặc làm
nhái cần phải có một kỹ thuật để “dán tem bản quyền” vào sản phẩm này.
Việc dán tem hay chính là việc nhúng thuỷ vân cần phải đảm bảo không để lại
một ảnh hưởng lớn nào đến việc cảm nhận sản phẩm. Yêu cầu kỹ thuật đối
với ứng dụng này là thuỷ vân phải tồn tại bền vững cùng với sản phẩm, muốn
bỏ thuỷ vân này mà không được phép của người chủ sở hữu thì chỉ còn cách
là phá huỷ sản phẩm.
Hình 2.3: Hai ảnh trước và sau khi giấu tin
GVHD: TS.Nguy n Chung Ti n ễ ế 22 SVTH: Nguy n Duy Th ngễ ắ
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
Hình 2.4: Thực chất bên trong ảnh có chứa thông tin chủ sở hữu
2.4.2. Xác thực thông tin và phát hiện giả mạo thông tin (authentication
and tamper detection)
Một tập thông tin sẽ được giấu trong phương tiện chứa, sau đó được sử
dụng để nhận biết xem dữ liệu trên phương tiện gốc có bị thay đổi hay không.
Các thông tin nên được ẩn để tránh sự tò mò của đối phương, hơn nữa việc
làm giả các thông tin hợp lệ hay xuyên tạc thông tin nguồn cũng cần xem xét.
Trong các ứng dụng thực tế, với mong muốn tìm được vị trí bị xuyên tạc cũng
như phân biệt được các thay đổi (ví dụ như phân biệt xem một đối tượng đa
phương tiện chứa thông tin giấu đã bị thay đổi, xuyên tạc nội dung hay 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 cao và thuỷ vân không cần bền vững.
GVHD: TS.Nguy n Chung Ti n ễ ế 23 SVTH: Nguy n Duy Th ngễ ắ
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
Hình 2.5: Ảnh chưa bị xuyên tạc thông tin
Hình 2.6: Ảnh đã bị xuyên tạc thông tin
Minh hoạ một trong hai ảnh đã bị xuyên tạc và ta khó có thể phát hiện được
ảnh nào là giả mạo.
GVHD: TS.Nguy n Chung Ti n ễ ế 24 SVTH: Nguy n Duy Th ngễ ắ
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
2.4.3. Dấu vân tay và dán nhãn (fingerprinting and labeling)
Giấu tin trong những ứng dụng này được sử dụng để nhận diện người
gửi hay người nhận một thông tin nào đó. Ví dụ như các thông tin 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. Với những ứng dụng này thì yêu cầu là đảm bảo độ
an toàn cao cho dữ liệu, tránh khả năng xoá dấu vết trong khi phân phối.
2.4.4. Điều khiển truy cập (copy control)
Các thiết bị phát hiện thuỷ vân (ở đây sử dụng phương pháp phát hiện
thuỷ vân đã giấu mà không cần thông tin gốc) được gắn sẵn vào trong các hệ
thống đọc ghi, tùy thuộc vào việc có thủy vân hay không để điều khiển (cho
phép/cấm) truy cập. Ví dụ như hệ thống quản lí sao chép DVD đã được ứng
dụng ở Nhật.
2.4.5. Truyền thông tin mật (steganography)
Các thông tin giấu được trong những trường hợp này càng nhiều càng
tốt. Việc giải mã để nhận được thông tin cũng không cần phương tiện chứa
gốc. Áp dụng cho giáo dục trong việc giấu tin cho đề thi cũng như các thông
tin mật trong ngành giáo dục.
GVHD: TS.Nguy n Chung Ti n ễ ế 25 SVTH: Nguy n Duy Th ngễ ắ
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
CHƯƠNG III : TÌM HIỂU CÁC PHƯƠNG PHÁP GIẤU TIN
TRONG ẢNH
3.1. Các định dạng ảnh thường được sử dụng để giấu tin
3.1.1. Định dạng ảnh BITMAP
Đây là một định dạng ảnh khá phổ biến, các tập tin đồ họa được lưu
dưới dạng bmp thường có đuôi là .BMP hoặc .DIB (Device
Independent Bitmap).
Cấu trúc tập tin ảnh BMP gồm 4 phần:
- Bitmap Header(14 bytes): giúp nhận dạng tập tin bitmap.
- Bitmap Information (40 bytes): lưu một số thông tin chi tiết giúp
hiển thị ảnh.
- Color Palette(4*x bytes): x là số màu của ảnh: định nghĩa các màu
sẽ được sử dụng trong ảnh.
- Bitmap data : lưư dữ liệu ảnh.
Các thuộc tính tiêu biểu của một tập tin ảnh BMP là:
- Số bít trên mỗi điểm ảnh (bit per pixel), 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), 24(ảnh 16 triệu màu).
- Ảnh BMP 24-bit có chất lượng ảnh trung thực nhất.
- Chiều cao của ảnh (height) được cho bởi điểm ảnh pixel.
- Chiều rộng ảnh(width) cũng được cho bởi các pixel.
Đặc điểm nổi bật của định dạng BMP là tập tin hình ảnh
thường không được nén bằng bất kỳ thuật toán nào. Khi lưu ảnh, các
điểm ảnh được ghi trực tiếp vào tập tin, một điểm ảnh sẽ được mô tả
bởi một hay nhiều byte tùy thuộc vào giá trị n của ảnh.
Do đó ảnh có định dạng BMP thường có kích thước lớn gấp nhiều
lần các định dạng ảnh khác. Nhưng cũng chính do lý do này mà ảnh BMP
thường được dùng để giấu tin nhất trong các thuật toán bởi nếu ảnh nén thì
tin giấu thường bị mật mát theo dữ liệu ảnh.
GVHD: TS.Nguy n Chung Ti n ễ ế 26 SVTH: Nguy n Duy Th ngễ ắ
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
3.1.2. Định dạng ảnh .JPEG
Phương pháp nén ảnh JPEG (Joint Photographic Experts Group) là một
trong những phương pháp nén ảnh hiệu quả, có tỷ lệ nén ảnh tới vài chục lần.
Tuy nhiên ảnh sau khi giải nén sẽ khác với ảnh ban đầu. Chất lượng ảnh bị
suy giảm sau khi giải nén. Sự suy giảm này tăng dần theo hệ số nén. Tuy
nhiên sự mất mát thông tin này là có thể chấp nhận được và việc loại bỏ
những thông tin không cần thiết được dựa trên những nghiên cứu về hệ nhãn
thị của mắt người.
Phần mở rộng của các file JPEG thường có dạng .jpeg, .jfif, .jpg, .JPG,
hay .JPE; dạng .jpg là dạng được dùng phổ biến nhất. Hiện nay dạng nén ảnh
JPEG rất được phổ biến trong điện thoại di động cũng như những trang thiết
bị lưu giữ có dung lượng nhỏ.
Một nhóm các nhà nghiên cứu đã phát minh ra định dạng này để hiển
thị các hình ảnh đầy đủ màu hơn (full-colour) cho định dạng di động mà kích
thước file nhỏ hơn. Giống như GIF, JPEG cũng được sử dụng rất nhiều
trên web. Lợi ích chính của chúng là có thể hiển thị các hình ảnh với các màu
chính xác (true-colour) chúng có thể lên đến 16 triệu màu. Điều đó cho phép
chúng được sử dụng tốt nhất cho các hình ảnh chụp và hình ảnh minh hoạ với
lượng màu lớn.
Nhược điểm lớn nhất là chất lượng ảnh đã bị nén mất đi (lossy), một số
đường bao giữa các khối màu sẽ xuất hiện điểm mờ, và các vùng sẽ mất đi sự
rõ nét. Và giống như dạng mp3, JPEG sẽ không thể phục hồi giống như hình
ảnh ban đầu dù dung lượng được tăng lên giống dung lượng ảnh thật.Các ảnh
JPEG không thể làm trong suốt hoặc chuyển động.
JPEG là một dạng nén ảnh hiệu quả, tỉ lệ nén cao. Khác với GIF, JPEG
có một bảng màu phong phú hơn nhiều (16 triệu màu hay 24 bit màu). JPEG
chiếm uu thế trong việc hiển thị ảnh kỹ thuật số, chân dung, ảnh phong cảnh,
dùng để in ấn. Nhưng ngược lại JPEG lại yếu thế trong việc hiển thị ảnh chữ
viết, ảnh có chi tiết đường nét nhiều, tất nhiên khuyết điểm này có thể khắc
phục bằng cách không sử dụng kỹ thuật nén mà giữ nguyên chất lượng ảnh
ban đầu, điều này sẽ làm tăng dung lượng ảnh.
GVHD: TS.Nguy n Chung Ti n ễ ế 27 SVTH: Nguy n Duy Th ngễ ắ
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
Hình trái chất lượng nguyên gốc có dung lược 43KB, hình phải sử dụng tỉ
lệ nén 80% có dung lượng 23KB, giảm gần 50% so với ảnh gốc
Hình 3.1,3.2: So sánh chất lượng hình ảnh nén và không nén
Đây cũng là một định dạng ảnh phổ biến được sử dụng, nhưng
đặc điểm của loại ảnh này là đây là loại ảnh nén.
GVHD: TS.Nguy n Chung Ti n ễ ế 28 SVTH: Nguy n Duy Th ngễ ắ
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
Ảnh JPEG là một trong những định dạng của phương pháp nén
ảnh JPEG(Joint Photographic Experts Group). Do đó sự mất mát thông tin
có thể xảy ra khi tiến hành nén và sau giải nén thì tập tin ảnh sẽ khác với ảnh
ban đầu, chất lượng ảnh bị suy giảm khi giải nén, sự suy giảm này
tăng theo hệ số nén.
Ưu điểm của loại tập tin ảnh này là nếu được giấu tin thì có thể truyền
trên mạng bởi nó nhẹ hơn ảnh định dạng BMP rất nhiều lần. Mặt khác nó
được hỗ trợ trên nhiều trình duyệt.
3.1.3. Định dạng ảnh .GIF Viết tắt của Graphic Interchange Format tạm dịch là "Định dạng Trao
đổi Hình ảnh" Định dạng này thường có phần mở rộng của tập tin là .gif. Đây
là một định dạng khá phổ biến dùng để thiết kế ở thời kỳ đầu internet (những
năm 90). Dần dà nó bị thay thế bởi đối thủ mạnh mẽ hơn đó là PNG. Tuy vậy,
GIF vẫn có những bản sắc riêng mà những định dạng khác không có được.
GIF được biết đến như một định dạng hình ảnh nhỏ gọn, "hình động"
(animated gif). GIF thường được sử dụng để hiển thị những ảnh hoạt họa có
nhiều khung hình:
Hình 3.3: Ảnh Gif
GVHD: TS.Nguy n Chung Ti n ễ ế 29 SVTH: Nguy n Duy Th ngễ ắ
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
Hình GIF còn có khả năng hiển thị một hình ảnh "trong suốt"
(transparent), trong suốt ở đây nghĩa là ngoài nội dung chính của hình thì
những phần còn lại có thể nhìn thấu qua:
Hình 3.4: 2 cây thông với dòng chữ "Nội dung bên dưới"
Cùng là một hình cây thông, nhưng với 2 phiên bản khác nhau, một
phiên bản trong suốt và một phiên bản "bánh mì đặc ruột", dòng chữ "Nội
dung bên dưới" chỉ được thấy khi đặt ở dưới hình trái, còn hình phải do nền
không trong suốt đã che mất chữ.
Ưu điểm thì có nhiều những khuyết điểm của GIF cũng không ít. GIF
bị giới hạn bởi số lượng màu trong một ảnh chỉ tối đa 256 màu, nếu sử dụng
một hình ảnh phong cảnh, rất nhiều màu sắc và chuyển thành dạng GIF, sẽ
nhận được một bức tranh loang lổ, hỗn tạp:
GVHD: TS.Nguy n Chung Ti n ễ ế 30 SVTH: Nguy n Duy Th ngễ ắ
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
Hình 3.5: Ảnh gốc bên trên và chuyển thành định dạng GIF bên dưới
Do số lượng màu có hạn, nên những màu không biểu diễn được GIF
đành "chống chế" bằng cách thay thế những màu "gần giống". Vì vậy, GIF
trình bày khá tốt với những ảnh dạng chữ viết đơn sắc, những ảnh nhỏ. GIF
có thể chỉ định số màu hiển thị để nhằm tiết kiệm dung lượng ảnh.
3.1.4. Định dạng ảnh PNG
Là chữ viết tắt của Portable Network Graphic, là định dạng ảnh chuyên
dùng trên internet, PNG ra đời sau và đã chiếm được nhiều ưu ái của giới thiết
kế web. PNG là sự tổng hợp ưu điểm của cả 2 định dạng GIF và JPEG. Là
cây lai dung lượng nhỏ, trong suốt của GIF với hình ảnh rõ nét, màu sắc
phong phú (4 tỷ màu hay 32bit màu) hơn cả JPEG.
GVHD: TS.Nguy n Chung Ti n ễ ế 31 SVTH: Nguy n Duy Th ngễ ắ
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
PNG còn được chia ra 2 dòng nhỏ:
PNG 8 bit, là loại định dạng ảnh có những nét tương đồng với GIF: nhỏ
gọn, giới hạn màu tối đa 256.
PNG 24 bit có đầy đủ ưu điểm của các loại định dạng ảnh: màu phong
phú, trong suốt, ngoài ra PNG 24 còn có thêm một kênh màu mới là Alpha,
kênh màu này giúp ảnh PNG có thể hiển thị mờ đục (opacity), làm tăng hiệu
quả hiển thị hơn GIF rất nhiều, nhưng chính điều này lại làm tăng dung lượng
ảnh PNG 24 lên cao nhất, cao hơn cả JPEG.
Hình 3.6: Thế hiện ảnh mờ đục của định dạng PNG
3.2. Kỹ thuật được sử dụng để giấu tin trong ảnh
3.2.1. Kỹ thuật Injection
Kỹ thuật Injection hay còn được gọi là kỹ thuật Insertion - Sự thêm
vào, sử dụng kỹ thuật này để giấu dữ liệu ẩn vào trong một đoạn của file, mà
đoạn đó hầu như không được để ý trong các ứng dụng xử lý. Bằng cách làm
này, có thể tránh được sự thay đổi những bit của file đó. Ví dụ có thể cộng
thêm một số byte vô hại vào một file thực thi hay file nhị phân, bởi vì những
byte đó không ảnh hưởng tới quá trình xử lý đồng thời người sử dụng cũng
không thể nhận thức được rằng file đó chứa các thông tin đã được cộng thêm
vào. Mặc dù vậy, khi sử dụng kỹ thuật này thì nó sẽ làm tăng kích thước của
file chứa tin đó, tăng rất nhiều nếu số lượng tin giấu lớn và do đó sẽ gây ra
nghi sự nghi ngờ.
GVHD: TS.Nguy n Chung Ti n ễ ế 32 SVTH: Nguy n Duy Th ngễ ắ
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
Nếu ứng dụng kỹ thuật này vào sử dụng trong giấu tin trong ảnh thì chỉ
có thể giấu tin với số lượng có hạn nhất định tùy thuộc vào kích thước của file
chứa gốc.
Mô hình thuật toán :
Hình 3.7: Mô hình thuật toán Injection
Ưu điểm: Dễ thực hiện
Nhược điểm : Kỹ thuật này sẽ gây tăng kích thước của file chứa tin
giấu. Dễ gây nghi ngờ.
3.2.2. Kỹ thuật Substitution
Kỹ thuật này có nghĩa là sự thay thế.Phương pháp này sử dụng việc
thay thế các thông tin ít quan trọng trong việc quyết định nội dung của file
gốc, và dữ liệu được thay vào những bít đó ít gây sự thay đổi lớn đến chất
lượng file chứa gốc.
Mô hình thuật toán:
GVHD: TS.Nguy n Chung Ti n ễ ế 33 SVTH: Nguy n Duy Th ngễ ắ
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
Hình 3.8: Mô hình thuật toán Substitution
Ưu điểm của kỹ thuật này là file chứa gốc sau khi giấu tin thì kích
thước không thay đổi.
Nhược điểm của phương pháp này làm giảm chất lượng của file chứa
gốc ban đầu, ngoài ra số lượng tin giấu cũng bị hạn chế do phải phụ thuộc vào
số bit ít quan trọng trong file chứa gốc.
3.2.3. Kỹ thuật Generation
Kỹ thuật Generation có nghĩa là sự tự phát sinh, không giống như hai
kỹ thuật trên, kỹ thuật này không phụ thuộc vào file chứa gốc tồn tại, kỹ thuật
này sẽ tạo ra một file chứa với mục đích duy nhất là để giấu tin. Hai phương
pháp trên người ta có thể so sánh đối chiếu hai file để đưa ra kết luận, với kỹ
thuật này thì không phải lo lắng đến điều đó bởi vì chỉ có một file chứa gốc
duy nhất và cũng là file chứa tin.
Mô hình thuật toán:
- Thực hiện giấu tin trong khổ thơ sau:
GVHD: TS.Nguy n Chung Ti n ễ ế 34 SVTH: Nguy n Duy Th ngễ ắ
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
‘‘ Cụ già thong thả buông cần
Hồ rộng trời in mặt nước hồng
Muôn vạn đài sen hương bát ngát
Tuổi già vui thú với non sông ’’
- Thông tin sau khi giấu tin
‘‘ Cụ già thong thả buông cần
Hồ rộng trời in mặt nước hồng
Muôn vạn đài sen hương bát ngát
Tuổi già vui thú với non sông ’’
Thông tin được giấu là: Cụ Hồ Muôn Tuổi
Ưu điểm: Hai phương pháp trên người ta có thể so sánh đối chiếu hai
file để đưa ra kết luận, với kỹ thuật này thì không phải lo lắng đến điều đó
bởi vì chỉ có một file chứa gốc duy nhất và cũng là file chứa tin.
Nhược điểm :Kỹ thuật này thì rất phức tạp phụ thuộc vào rất nhiều yếu
tố để có thể tạo ra file chứa gốc như yêu cầu.
3.3. Kỹ thuật giấu tin trong ảnh sử dụng các bit LSB
Nằm trong số các kỹ thuật Substitution thì kỹ thuật sử dụng các bit có
trọng số thấp nhất (Least Significant Bit - LSB) là phố biến nhất. Với kỹ thuật
sử dụng LSB thì nó thay thế các bit được coi là ít quan trọng ở các file ảnh
chứa gốc. Và việc thay thế được tiến hành theo trình tự số lượng byte nhất
định. Với kỹ thuật này thì nó ít ảnh hưởng đến file chứa gốc(file ảnh chứa
gốc) bởi các bít bị thay thế hầu như không có tác dụng trong file chứa gốc(file
ảnh chứa gốc), với file ảnh thì nó ít ảnh hưởng tới các pixel ảnh.
Một ví dụ với ảnh BMP 24-bit như đã nói ở trên thì việc giấu một chữ
cái “a” có thể tiến hành như sau: chữ “a” trong ASCII thì có mã là 97 số này
đổi sang nhị phân có dạng 01100001. Trong 8 byte của file chứa gốc(file ảnh
chứa gốc) có thể thiết lập LSB cho mỗi byte như sau:
10010010
01010011
10011011
11010010
10001010
00000010
01110010
GVHD: TS.Nguy n Chung Ti n ễ ế 35 SVTH: Nguy n Duy Th ngễ ắ
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
00101011
Và tương ứng để lấy lại thông tin giấu thì tiến hành đọc 8 bit LSB của
các byte để tạo lại 01100001 đổi số nhị phân này sang thập phân và đổi sang
mã ASCII thu được ký tự “a”.
Vậy có thể sử dụng kỹ thuật này cho phép giấu một byte file ẩn vào 8
byte file chứa gốc(file ảnh chứa gốc). Từ trên có thể thấy được lợi thế khi sử
dụng cách này là gì? đó chính là lúc nào cũng có nhiều nhất 50% số bít trùng
nhau giữa tin cần giấu và file chứa gốc(file ảnh chứa gốc) do đó file chứa gốc
ít bị ảnh hưởng lớn khi có tin giấu thêm vào trong file chứa gốc(file ảnh chứa
gốc) đó.
GVHD: TS.Nguy n Chung Ti n ễ ế 36 SVTH: Nguy n Duy Th ngễ ắ
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
CHƯƠNG IV : XÂY DỰNG CHƯƠNG TRÌNH GIẤU TIN
DỰA TRÊN THUẬT TOÁN LSB
4.1. Xây dựng chương trình dựa trên thuật toán LSB
4.1.1. Ảnh BITMAP
Ảnh BITMAP là định dạng ảnh do microsoft đề xuất , có phần mở rộng
là BMP , loại ảnh này 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.
- Ả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.
- Ả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.
- Ả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).
Ả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
GVHD: TS.Nguy n Chung Ti n ễ ế 37 SVTH: Nguy n Duy Th ngễ ắ
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
4.1.2. Ý 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 nên trên và từ
trái qua phải.
4.1.3. 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ư :
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
Hình 4.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. Do đó trong báo cáo đư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 :
GVHD: TS.Nguy n Chung Ti n ễ ế 38 SVTH: Nguy n Duy Th ngễ ắ
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
Đị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: 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 hình :
Offset (byte) Giá trị Ý nghĩa
1 -> 4 40Số lượng byte của vùng
bitmap infor
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 longSố bít để biểu diễn một
điểm ảnh
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 longSố lượng màu trong bảng
màu
37->40 Unsigned long Số màu quan trọng
Hình 4.2: Bitmap info
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 goi 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 còn một byte để dự trữ ( chứa dùng) và thứ
GVHD: TS.Nguy n Chung Ti n ễ ế 39 SVTH: Nguy n Duy Th ngễ ắ
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
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à độ 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 .
4.2. Thuật toán LSB
Least significant bit insertion : Thông tin cần được che dấu sẽ được
thay thế bằng mỗi bit có trọng số thấp nhất (Least significant bit) của mỗi
pixel trong bức ảnh .
Trong tất cả các bức ảnh số thì đều là hợp thành của các điểm ảnh gọi
là pixel. Mỗi pixel lại có một màu sắc riêng phụ thuộc vào sự thay đổi % của
3 màu là đỏ ,xanh lục và xanh gọi là (RGB) .
Mỗi phần của 3 màu đó lại có giá trị số hóa nằm trong khoảng 0-
255 .Do đó mỗi pixel thường có 24 bit .Vậy tương ứng sẽ có 256*256*256
=16,777,216 màu khác nhau .một số màu cơ bản như :
Đỏ là 255 0 0 (11111111 00000000 00000000)
Xanh lục là 0 255 0 (00000000 1111111 00000000)
Đen là 0 0 0 (00000000 00000000 00000000)
Trắng là 1 1 1 (11111111 1111111 1111111)
Với mỗi pixel chúng ta có thể thay thế các trọng số thấp nhất thì với mắt
thường cũng không thể xác định được là có sự thay đổi .
GVHD: TS.Nguy n Chung Ti n ễ ế 40 SVTH: Nguy n Duy Th ngễ ắ
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
Ta lấy một ví dụ :
2 hình vuông trên nhìn bằng mắt thường và có thể phóng to nhìn bằng
các chương trình xem ảnh đi nữa thì chúng ta cũng không thể nào phân
biệt được sự khác nhau giữa 2 hình ảnh này .
Hình 4.3: Màu xanh với mã màu (0 0 255)
Hình 4.4: Màu xanh với mã màu (0 0 254)
Có một phương pháp khá thông dụng để ẩn thông điệp vào trong một
bức ảnh đó là giải thuật LSB cụ thể:
- Chúng thay thế một số bít của file ảnh gốc để ẩn tuần tự các byte của
thông điệp cần ẩn vào trong bức ảnh
- Ứng dụng giải mã sẽ đọc từng bit cuối cùng của từng byte rồi tái tạo
lại thông tin và chúng ta có thể nhận diện được thông điệp
GVHD: TS.Nguy n Chung Ti n ễ ế 41 SVTH: Nguy n Duy Th ngễ ắ
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
4.3. Giới thiệu về chương trình demo
4.3.1. Giới thiệu ngôn ngữ sử dụng
Ngôn ngữ được sử dụng để cài đặt là C#.NET một ngôn ngữ mới và
mạnh trong thời điểm hiện này. Với ngôn ngữ này hỗ trợ rất nhiều
trong việc cài đặt chương trình, đặc biệt với việc xử lý (trích và thay thế) các
LSB bit.
4.3.2. Mã nguồn chương trình
Chương trình được viết với giao diện được xây dựng trên nền WinForm
của ngôn ngữ lập trình C#.NET
Nội dung chi tiết từng file
StreamProcess.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace EmbedData
{
class StreamProcess
{
public static void Encode(Stream inStream, byte[] message, Stream
outStream)
{
int byteRead;
byte byteWrite;
int i = 0;
int j = 0;
byte bit;
GVHD: TS.Nguy n Chung Ti n ễ ế 42 SVTH: Nguy n Duy Th ngễ ắ
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
while ((byteRead = inStream.ReadByte()) != -1)
{
byteWrite = (byte)byteRead;
if (i < message.Length)
{
bit = BitProcess.Extract(message[i], j++);
BitProcess.Replace(ref byteWrite, 0, bit);
if (j == 8) { j = 0; i++; }
}
outStream.WriteByte(byteWrite);
}
}
public static byte[] Decode(Stream stream, int length)
{
byte[] hidden = new byte[length];
int i = 0;
int j = 0;
byte bit;
int byteRead;
while ((byteRead = stream.ReadByte()) != -1)
{
GVHD: TS.Nguy n Chung Ti n ễ ế 43 SVTH: Nguy n Duy Th ngễ ắ
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
bit = BitProcess.Extract((byte)byteRead, 0);
BitProcess.Replace(ref hidden[i], j++, bit);
if (j == 8) { j = 0; i++; }
if (i == length) break;
}
return hidden;
}
}
public class FileStreamProcess
{
public static byte[] StreamFile(string filename)
{
FileStream fs = new FileStream(filename, FileMode.Open,
FileAccess.Read);
// Create a byte array of file stream length
byte[] ImageData = new byte[fs.Length];
//Read block of bytes from stream into the byte array
fs.Read(ImageData, 0, System.Convert.ToInt32(fs.Length));
//Close the File Stream
fs.Close();
return ImageData; //return the byte data
}
public static void Save(byte[] Bytes, string filesave)
GVHD: TS.Nguy n Chung Ti n ễ ế 44 SVTH: Nguy n Duy Th ngễ ắ
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
{
using (System.IO.Stream s = System.IO.File.Create(filesave))
{
s.Write(Bytes, 0, Bytes.Length);
}
}
}
}
GVHD: TS.Nguy n Chung Ti n ễ ế 45 SVTH: Nguy n Duy Th ngễ ắ
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
4.4. Chương trình demo
Phần 1 : Giấu đoạn text dữ liệu vào trong file ảnh bitmap
Giả sử có một bức ảnh bitmap 24 bit : Anh.bmp trước khi giấu thông tin:
Hình 4.5: Ảnh gốc
Bước 1 : Giấu thông tin
Nhập ảnh để giấu tin vào chương trình
GVHD: TS.Nguy n Chung Ti n ễ ế 46 SVTH: Nguy n Duy Th ngễ ắ
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
Hình 4.6: Nhập thông tin muốn giấu vào ảnh
Lấy thông điệp ở đây là Nguyen Duy Thang At3b
Chọn nơi chứa ảnh mới (ở đây là file Apple.bmp )
GVHD: TS.Nguy n Chung Ti n ễ ế 47 SVTH: Nguy n Duy Th ngễ ắ
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
Hình 4.7: Dữ liệu được giấu trong ảnh thành công
Click Button Giấu thông tin Ta được file Apple giau tin.bmp
Hình 4.8: 2 Ảnh mới sinh ra và ảnh gốc không có sự khác biệt
Ta có thể thấy Apple giau tin.bmp sau khi được giấu thông tin không
khác gì ảnh gốc Apple.bmp
GVHD: TS.Nguy n Chung Ti n ễ ế 48 SVTH: Nguy n Duy Th ngễ ắ
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
Bước 2 : Lấy Dữ liệu ra khỏi ảnh
Từ file Apple giau tin.bmp ta lấy được phần trước ta sẽ tiền hành lấy
thông tin đã được dấu
Từ chương trình chuyển sang tab : Lấy thông tin và chọn file Apple giau
tin.bmp
Hình 4.9: Giao diện phần lấy thông tin
Click button Lấy Thông tin để lấy được dữ liệu đã dấu trong Apple giau
tin.bmp
GVHD: TS.Nguy n Chung Ti n ễ ế 49 SVTH: Nguy n Duy Th ngễ ắ
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
Hình 4.10: Lấy thông tin
Như ta đã thấy dữ liệu được lấy ra chính là đoạn text ta đã giấu vào
Apple.bmp : Nguyen Duy Thang At3b
Phần 2 : Giấu 1 file dữ liệu vào trong file ảnh bitmap
Cũng như phần trước lấy một bức ảnh bitmap 24 bit : Anh.bmp trước khi giấu
thông tin:
GVHD: TS.Nguy n Chung Ti n ễ ế 50 SVTH: Nguy n Duy Th ngễ ắ
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
Hình 4.11: ảnh gốc
Ta có 1 file ảnh icon.jpg
Hình 4.12: File dữ liệu muốn giấu
Ta sẽ tiến hành giấu ảnh icon.jpg vào trong file Apple.bmp
Bước 1 : Giấu thông tin
Chạy chương trình , chọn tab Giấu File
Ta lần lượt chọn
File ảnh gốc : Apple.bmp
File cần giấu : icon.jpg
- Chọn đường dẫn để lưu file sau khi giấu giau icon.bmp
GVHD: TS.Nguy n Chung Ti n ễ ế 51 SVTH: Nguy n Duy Th ngễ ắ
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
Hình 4.13,4.14: Nhập ảnh muốn giấu và file cần giầu
GVHD: TS.Nguy n Chung Ti n ễ ế 52 SVTH: Nguy n Duy Th ngễ ắ
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
Click Button Giấu thông tin Ta được file Apple giau icon.bmp
Hình 4.15: Giấu file vào trong ảnh
Ta có thể thấy file mới sinh ra Apple giau icon.bmp không khác gì file gốc
Apple.bmp
Bước 4.16: Lấy File Dữ liệu ra khỏi ảnh
GVHD: TS.Nguy n Chung Ti n ễ ế 53 SVTH: Nguy n Duy Th ngễ ắ
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
Bước 2 : Lấy tin
Từ file Anh3.bmp ta lấy được phần trước ta sẽ tiền hành lấy thông tin đã được
dấu
Từ chương trình chuyển sang tab : Lấy file và chọn file Apple giau icon.bmp
Hình 4.17: Lấy file từ ảnh được sinh ra
Chọn đường dẫn để lưu file sinh ra từ Apple giau icon.bmp
GVHD: TS.Nguy n Chung Ti n ễ ế 54 SVTH: Nguy n Duy Th ngễ ắ
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
Hình 4.18: Lấy file
Sau khi click button Lấy File ta thấy sẽ sinh được file mới icon1.jpg
Hình 4.19: 2 file ảnh không khác gì nhau
GVHD: TS.Nguy n Chung Ti n ễ ế 55 SVTH: Nguy n Duy Th ngễ ắ
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
Ta có thể nhận thấy File mới được sinh ra là icon.jpg không khác so với file
ban đầu là icon1.jpg
Hình 4.20: Không nhận thấy sự khác nhau giữa 2 hình
GVHD: TS.Nguy n Chung Ti n ễ ế 56 SVTH: Nguy n Duy Th ngễ ắ
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
KẾT LUẬN
1. Đánh giá
Sau một khoảng thời gian nỗ lực nghiên cứu cùng với sự hướng dẫn tận
tình của thầy giáo em đã bản hoàn thành được các yêu cầu đề tài. Đó là giấu
được thông tin vào trong một file ảnh và lấy thông tin từ các file ảnh có ẩn
chứa thông tin trong đó. Các thông tin được giấu là một đoạn thông điệp, một
file ảnh cũng có thể được giấu trong một file ảnh.
2. Phát triển và hạn chế của đề tài
Chương trình đã làm được những công việc trên và hướng của em
mong muốn đó là nhúng vào một phần mềm có sẵn để bảo vệ bản quyền cho
một sản phẩm nào đó. Hy vọng em sẽ được các thầy, cô chỉ bảo để phát triển
thành một phần mềm thiết thực hơn nữa. Em xin chân thành cảm ơn!
GVHD: TS.Nguy n Chung Ti n ễ ế 57 SVTH: Nguy n Duy Th ngễ ắ
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
TÀI LIỆU THAM KHẢO
1. Giấu tin trong dữ liệu đa phương tiện , một công nghệ mới trong bảo mật
thông tin – Trần Quốc
2. Dùng Kỹ thuật giấu tin trong ảnh sử dụng các bit LSB – Thạc sỹ Lương
Đức Hải.
3. Keeping secrets secrest : Steganography with .NET – www.devx.com
4. Techiniques for data hiding – W.Bender – D.Gruhl – N.Morimoto – A.Lu
5. Trang web www.wikipedia.com
6. Andersen, R.J., Petitcolas, F.A.P., On the limits of steganography. IEEE
Journal of Selected Areas in Communications, Special Issue on Copyright and
Privacy Protection 16 No.4 (1998) 474-481.
7.Balasubramanian, R., Bouman, C.A., Allebach, J.P.: Sequential Scalar
Quantization of Color Images. Journal of Electronic Imaging 3 No.1 (1994)
45-59.ckW.:StegoDos.ftp://ftp.csua.berkeley.edu/pub/cypherpunks/steganogr
aphy/ stegodos.zip
8. Các nguồn khác trên internet
GVHD: TS.Nguy n Chung Ti n ễ ế 58 SVTH: Nguy n Duy Th ngễ ắ
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
PHỤ LỤC
Mã nguồn chương trình đầy đủ
Nội dung chi tiết
StreamProcess.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace EmbedData
{
class StreamProcess
{
public static void Encode(Stream inStream, byte[] message, Stream
outStream)
{
int byteRead;
byte byteWrite;
int i = 0;
int j = 0;
byte bit;
while ((byteRead = inStream.ReadByte()) != -1)
{
byteWrite = (byte)byteRead;
if (i < message.Length)
{
GVHD: TS.Nguy n Chung Ti n ễ ế 59 SVTH: Nguy n Duy Th ngễ ắ
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
bit = BitProcess.Extract(message[i], j++);
BitProcess.Replace(ref byteWrite, 0, bit);
if (j == 8) { j = 0; i++; }
}
outStream.WriteByte(byteWrite);
}
}
public static byte[] Decode(Stream stream, int length)
{
byte[] hidden = new byte[length];
int i = 0;
int j = 0;
byte bit;
int byteRead;
while ((byteRead = stream.ReadByte()) != -1)
{
bit = BitProcess.Extract((byte)byteRead, 0);
BitProcess.Replace(ref hidden[i], j++, bit);
if (j == 8) { j = 0; i++; }
if (i == length) break;
GVHD: TS.Nguy n Chung Ti n ễ ế 60 SVTH: Nguy n Duy Th ngễ ắ
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
}
return hidden;
}
}
public class FileStreamProcess
{
public static byte[] StreamFile(string filename)
{
FileStream fs = new FileStream(filename, FileMode.Open,
FileAccess.Read);
// Create a byte array of file stream length
byte[] ImageData = new byte[fs.Length];
//Read block of bytes from stream into the byte array
fs.Read(ImageData, 0, System.Convert.ToInt32(fs.Length));
//Close the File Stream
fs.Close();
return ImageData; //return the byte data
}
public static void Save(byte[] Bytes, string filesave)
{
using (System.IO.Stream s = System.IO.File.Create(filesave))
{
s.Write(Bytes, 0, Bytes.Length);
}
}
GVHD: TS.Nguy n Chung Ti n ễ ế 61 SVTH: Nguy n Duy Th ngễ ắ
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
}
}
BitProcess.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace EmbedData
{
class BitProcess
{
//Thay The
public static void Replace(ref byte b, int pos, byte value)
{
b = (byte)(value == 1 ? b | (1 << pos) : b & ~(1 << pos));
}
//Lay Gia tri
public static byte Extract(byte b, int pos)
{
return (byte)((b & (1 << pos)) >> pos);
}
}
}
GVHD: TS.Nguy n Chung Ti n ễ ế 62 SVTH: Nguy n Duy Th ngễ ắ
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
Code.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace EmbedData
{
class Code
{
public static void CreateFile(string fileName, string stegoFileName,
string message)
{
FileStream inStream = new FileStream(fileName, FileMode.Open,
FileAccess.Read);
int offset = 54; //So bit cua Header + Info trong file bmp
byte[] header = new byte[offset];
inStream.Seek(0, 0);
// Doc header tu inStream
inStream.Read(header, 0, offset);
FileStream outStream = new FileStream(stegoFileName,
FileMode.Create, FileAccess.Write);
//Ghi phan header cua inStream trong outStream
GVHD: TS.Nguy n Chung Ti n ễ ế 63 SVTH: Nguy n Duy Th ngễ ắ
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
outStream.Write(header, 0, offset);
UnicodeEncoding unicode = new UnicodeEncoding();
// Them header + info cua Image vao Message
byte[] messageBytes =
AddHeadMessage(unicode.GetBytes(message));
inStream.Seek(offset, 0);
// Thay the bit
StreamProcess.Encode(inStream, messageBytes, outStream);
inStream.Close();
outStream.Close();
}
private static byte[] AddHeadMessage(byte[] messageBytes)
{
int len = messageBytes.Length;
byte[] bLen = BitConverter.GetBytes(len);
byte[] ret = new byte[len + bLen.Length];
for (int i = 0; i < bLen.Length; i++)
ret[i] = bLen[i];
for (int i = 0; i < messageBytes.Length; i++)
ret[i + bLen.Length] = messageBytes[i];
return ret;
}
public static string ExtractHiddenMessage(string fileName)
{
GVHD: TS.Nguy n Chung Ti n ễ ế 64 SVTH: Nguy n Duy Th ngễ ắ
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
Stream inStream = new (fileName, FileMode.Open,
FileAccess.Read); FileStream
int offset = 54;
inStream.Seek(offset, 0);
// Lay 4 bytes trong inStream (4 byte nay chua header cua message
da giau)
byte[] bLen = StreamProcess.Decode(inStream, 4);
//Do dai cua message
int len = BitConverter.ToInt32(bLen, 0);
inStream.Seek(offset + 4 * 8, 0);
// Lay message
byte[] buffer;
buffer = StreamProcess.Decode(inStream, len);
UnicodeEncoding unicode = new UnicodeEncoding();
string hiddenMessage = unicode.GetString(buffer);
inStream.Close();
return hiddenMessage;
}
GVHD: TS.Nguy n Chung Ti n ễ ế 65 SVTH: Nguy n Duy Th ngễ ắ
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
public static void ExtractFileHidden(string fileName,string filehidden)
{
Stream inStream = new FileStream(fileName, FileMode.Open,
FileAccess.Read);
int offset = 54;
inStream.Seek(offset, 0);
// Lay 4 bytes trong inStream (4 byte nay chua header cua message
da giau)
byte[] bLen = StreamProcess.Decode(inStream, 4);
//Do dai cua message
int len = BitConverter.ToInt32(bLen, 0);
inStream.Seek(offset + 4 * 8, 0);
// Lay message
byte[] buffer;
buffer = StreamProcess.Decode(inStream, len);
FileStreamProcess.Save(buffer, filehidden);
inStream.Close();
}
GVHD: TS.Nguy n Chung Ti n ễ ế 66 SVTH: Nguy n Duy Th ngễ ắ
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
public static void CreatedFileinFile(string fileName, string
stegoFileName, string filehidden)
{
FileStream inStream = new FileStream(fileName, FileMode.Open,
FileAccess.Read);
int offset = 54; //So bit cua Header + Info trong file bmp
byte[] header = new byte[offset];
inStream.Seek(0, 0);
// Doc header tu inStream
inStream.Read(header, 0, offset);
FileStream outStream = new FileStream(stegoFileName,
FileMode.Create, FileAccess.Write);
//Ghi phan header cua inStream trong outStream
outStream.Write(header, 0, offset);
UnicodeEncoding unicode = new UnicodeEncoding();
// Them header + info cua Image vao Message
byte[] messageBytes =
AddHeadMessage(FileStreamProcess.StreamFile(filehidden));
inStream.Seek(offset, 0);
// Thay the bit
StreamProcess.Encode(inStream, messageBytes, outStream);
GVHD: TS.Nguy n Chung Ti n ễ ế 67 SVTH: Nguy n Duy Th ngễ ắ
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
inStream.Close();
outStream.Close();
}
}
}
GVHD: TS.Nguy n Chung Ti n ễ ế 68 SVTH: Nguy n Duy Th ngễ ắ