ẩn mã và giấu tin trong ảnh

93
Đồ á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 GVHD: TS.Nguyễn Chung Tiến 1 SVTH: Nguyễn Duy Thắng

Transcript of ẩn mã và giấu tin trong ảnh

Page 1: ẩ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ễ ắ

Page 2: ẩn mã và giấu tin trong ảnh

Đồ á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ễ ắ

Page 3: ẩn mã và giấu tin trong ảnh

Đồ á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ễ ắ

Page 4: ẩn mã và giấu tin trong ảnh

Đồ á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ễ ắ

Page 5: ẩn mã và giấu tin trong ảnh

Đồ á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ễ ắ

Page 6: ẩn mã và giấu tin trong ảnh

Đồ á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ễ ắ

Page 7: ẩn mã và giấu tin trong ảnh

Đồ á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ễ ắ

Page 8: ẩn mã và giấu tin trong ảnh

Đồ á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ễ ắ

Page 9: ẩn mã và giấu tin trong ảnh

Đồ á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ễ ắ

Page 10: ẩn mã và giấu tin trong ảnh

Đồ á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ễ ắ

Page 11: ẩn mã và giấu tin trong ảnh

Đồ á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ễ ắ

Page 12: ẩn mã và giấu tin trong ảnh

Đồ á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ễ ắ

Page 13: ẩn mã và giấu tin trong ảnh

Đồ á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ễ ắ

Page 14: ẩn mã và giấu tin trong ảnh

Đồ á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ễ ắ

Page 15: ẩn mã và giấu tin trong ảnh

Đồ á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ễ ắ

Page 16: ẩn mã và giấu tin trong ảnh

Đồ á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ễ ắ

Page 17: ẩn mã và giấu tin trong ảnh

Đồ á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ễ ắ

Page 18: ẩn mã và giấu tin trong ảnh

Đồ á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ễ ắ

Page 19: ẩn mã và giấu tin trong ảnh

Đồ á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ễ ắ

Page 20: ẩ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 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ễ ắ

Page 21: ẩn mã và giấu tin trong ảnh

Đồ á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ễ ắ

Page 22: ẩn mã và giấu tin trong ảnh

Đồ á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ễ ắ

Page 23: ẩn mã và giấu tin trong ảnh

Đồ á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ễ ắ

Page 24: ẩn mã và giấu tin trong ảnh

Đồ á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ễ ắ

Page 25: ẩn mã và giấu tin trong ảnh

Đồ á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ễ ắ

Page 26: ẩn mã và giấu tin trong ảnh

Đồ á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ễ ắ

Page 27: ẩn mã và giấu tin trong ảnh

Đồ á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ễ ắ

Page 28: ẩn mã và giấu tin trong ảnh

Đồ á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ễ ắ

Page 29: ẩn mã và giấu tin trong ảnh

Đồ á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ễ ắ

Page 30: ẩn mã và giấu tin trong ảnh

Đồ á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ễ ắ

Page 31: ẩn mã và giấu tin trong ảnh

Đồ á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ễ ắ

Page 32: ẩn mã và giấu tin trong ảnh

Đồ á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ễ ắ

Page 33: ẩn mã và giấu tin trong ảnh

Đồ á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ễ ắ

Page 34: ẩn mã và giấu tin trong ảnh

Đồ á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ễ ắ

Page 35: ẩn mã và giấu tin trong ảnh

Đồ á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ễ ắ

Page 36: ẩn mã và giấu tin trong ảnh

Đồ á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ễ ắ

Page 37: ẩn mã và giấu tin trong ảnh

Đồ á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ễ ắ

Page 38: ẩn mã và giấu tin trong ảnh

Đồ á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ễ ắ

Page 39: ẩn mã và giấu tin trong ảnh

Đồ á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ễ ắ

Page 40: ẩn mã và giấu tin trong ảnh

Đồ á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ễ ắ

Page 41: ẩn mã và giấu tin trong ảnh

Đồ á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ễ ắ

Page 42: ẩn mã và giấu tin trong ảnh

Đồ á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ễ ắ

Page 43: ẩn mã và giấu tin trong ảnh

Đồ á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ễ ắ

Page 44: ẩn mã và giấu tin trong ảnh

Đồ á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ễ ắ

Page 45: ẩn mã và giấu tin trong ảnh

Đồ á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ễ ắ

Page 46: ẩn mã và giấu tin trong ảnh

Đồ á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ễ ắ

Page 47: ẩn mã và giấu tin trong ảnh

Đồ á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ễ ắ

Page 48: ẩn mã và giấu tin trong ảnh

Đồ á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ễ ắ

Page 49: ẩn mã và giấu tin trong ảnh

Đồ á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ễ ắ

Page 50: ẩn mã và giấu tin trong ảnh

Đồ á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ễ ắ

Page 51: ẩn mã và giấu tin trong ảnh

Đồ á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ễ ắ

Page 52: ẩn mã và giấu tin trong ảnh

Đồ á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ễ ắ

Page 53: ẩn mã và giấu tin trong ảnh

Đồ á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ễ ắ

Page 54: ẩn mã và giấu tin trong ảnh

Đồ á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ễ ắ

Page 55: ẩn mã và giấu tin trong ảnh

Đồ á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ễ ắ

Page 56: ẩn mã và giấu tin trong ảnh

Đồ á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ễ ắ

Page 57: ẩn mã và giấu tin trong ảnh

Đồ á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ễ ắ

Page 58: ẩn mã và giấu tin trong ảnh

Đồ á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ễ ắ

Page 59: ẩn mã và giấu tin trong ảnh

Đồ á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ễ ắ

Page 60: ẩn mã và giấu tin trong ảnh

Đồ á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ễ ắ

Page 61: ẩn mã và giấu tin trong ảnh

Đồ á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ễ ắ

Page 62: ẩn mã và giấu tin trong ảnh

Đồ á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ễ ắ

Page 63: ẩn mã và giấu tin trong ảnh

Đồ á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ễ ắ

Page 64: ẩn mã và giấu tin trong ảnh

Đồ á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ễ ắ

Page 65: ẩn mã và giấu tin trong ảnh

Đồ á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ễ ắ

Page 66: ẩn mã và giấu tin trong ảnh

Đồ á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ễ ắ

Page 67: ẩn mã và giấu tin trong ảnh

Đồ á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ễ ắ

Page 68: ẩn mã và giấu tin trong ảnh

Đồ á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ễ ắ