Đồ á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.................................................................................4 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Ệ...............................................................7 1.1. Các khái niệm .........................................................................................7 1.1.1.Thế nào là thông tin..............................................................................7 1.1.2. Thế nào là an toàn bảo mật thông tin................................................7 1.1.3. An toàn bảo mật thông tin và vai trò ...............................................9 1.1.4. Phân loại các hình thức tấn công......................................................9 1.1.5. Dịch vụ, cơ chế, tấn công...............................................................10 1.2. Các phương pháp bảo vệ.......................................................................12 1.2.1. Phương pháp bảo vệ thông thường.................................................12 1.2.2. Phương pháp bảo vệ dùng phần cứng.............................................12 1.2.3. Phương pháp bảo vệ dùng phần mềm ..........................................12 1.3. Đánh giá độ an toàn và bảo vệ thông tin dữ liệu ..................................12 1.3.1. Tổng quan ......................................................................................12 1.3.2. Đánh giá mức độ an toàn hệ thống.................................................13 1.3.2.1. Đánh giá mức độ an toàn mạng...................................................13 1.3.2.2. Đánh giá mức độ an toàn Internet...............................................13 1.3.2.3. Đánh giá mức độ an toàn ứng dụng.............................................14 1.3.2.4. Đánh giá mức độ an toàn vật lý...................................................14 1.3.2.5. Đánh giá về chính sách sử dụng mạng........................................14 1.3.3. An toàn phần mềm .........................................................................15 1.3.4. Sự phát triển của công nghệ và các ảnh hưởng .............................15 ........................................................................................................................15 CHƯƠNG II : GIẤU THÔNG TIN TRONG ĐA PHƯƠNG TIỆN VÀ ỨNG DỤNG.............................................................................................................16 2.1. Đa phương tiện .....................................................................................16 2.2. Giấu tin trong dữ liệu đa phương tiện ..................................................16 2.2.2. Phân loại các kỹ thuật giấu tin........................................................16 2.2.3. Môi trường giấu tin.........................................................................18 GVHD: TS.Nguyễn Chung Tiến Thắng
1
SVTH: Nguyễn Duy
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
2.2.4. Giấu tin trong ảnh ..........................................................................18 2.2.5. Giấu tin trong audio .......................................................................19 2.2.6. Giấu tin trong video........................................................................19 2.3. Steganalysis ..........................................................................................19 2.3.1. Steganalysis có mục tiêu.................................................................20 2.3.2. Steganalysis thám ..........................................................................20 2.4. Một số ứng dụng của giấu tin................................................................20 2.4.1. Bảo vệ bản quyền tác giả (copyright protection) ...........................21 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)...............................................................................22 2.4.3. Dấu vân tay và dán nhãn (fingerprinting and labeling) .................24 2.4.4. Điều khiển truy cập (copy control).................................................24 2.4.5. Truyền thông tin mật (steganography)...........................................24 CHƯƠNG III : TÌM HIỂU CÁC PHƯƠNG PHÁP GIẤU TIN TRONG ẢNH .........................................................................................................................25 3.1. Các định dạng ảnh thường được sử dụng để giấu tin ...........................25 3.1.1. Định dạng ảnh BITMAP.................................................................25 3.1.2. Định dạng ảnh .JPEG .....................................................................26 3.1.3. Định dạng ảnh .GIF .......................................................................28 3.1.4. Định dạng ảnh PNG........................................................................30 3.2. Kỹ thuật được sử dụng để giấu tin trong ảnh .......................................31 3.2.1. Kỹ thuật Injection ..........................................................................31 3.2.2. Kỹ thuật Substitution .....................................................................32 3.2.3. Kỹ thuật Generation........................................................................33 3.3. Kỹ thuật giấu tin trong ảnh sử dụng các bit LSB..................................34 CHƯƠNG IV : XÂY DỰNG CHƯƠNG TRÌNH GIẤU TIN DỰA TRÊN THUẬT TOÁN LSB.......................................................................................36 4.1. Xây dựng chương trình dựa trên thuật toán LSB..................................36 4.1.1. Ảnh BITMAP ................................................................................36 4.1.2. Ý nghĩa của các phần trong tệp ảnh bitmap....................................37 4.1.3. Kích thước và giá trị các trường trong tệp ảnh ..............................37 4.2. Thuật toán LSB ....................................................................................39 4.3. Giới thiệu về chương trình demo..........................................................40 4.3.1. Giới thiệu ngôn ngữ sử dụng..........................................................40 GVHD: TS.Nguyễn Chung Tiến Thắng
2
SVTH: Nguyễn Duy
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
4.3.2. Mã nguồn chương trình..................................................................41 4.4. Chương trình demo...............................................................................44 Phần 1 : Giấu đoạn text dữ liệu vào trong file ảnh bitmap.......................44 Phần 2 : Giấu 1 file dữ liệu vào trong file ảnh bitmap.............................49 KẾT LUẬN.....................................................................................................56 1. Đánh giá...................................................................................................56 2. Phát triển và hạn chế của đề tài................................................................56 TÀI LIỆU THAM KHẢO...............................................................................57 PHỤ LỤC........................................................................................................58 Mã nguồn chương trình đầy đủ....................................................................58 Nội dung chi tiết.......................................................................................58
GVHD: TS.Nguyễn Chung Tiến Thắng
3
SVTH: Nguyễn Duy
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
DANH MỤC HÌNH ẢNH
GVHD: TS.Nguyễn Chung Tiến Thắng
4
SVTH: Nguyễn Duy
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
LỜI MỞ ĐẦU 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” GVHD: TS.Nguyễn Chung Tiến Thắng
5
SVTH: Nguyễn Duy
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
Đề tài của em gồm 5 chương : - 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 Thắng
6
SVTH: Nguyễn Duy
Đồ á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 Thắng
7
SVTH: Nguyễn Duy
Đồ á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 Thắng
8
SVTH: Nguyễn Duy
Đồ á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 Thắng
9
SVTH: Nguyễn Duy
Đồ á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 Thắng
10
SVTH: Nguyễn Duy
Đồ á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 Thắng
11
SVTH: Nguyễn Duy
Đồ á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 Thắng
12
SVTH: Nguyễn Duy
Đồ á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 Thắng
13
SVTH: Nguyễn Duy
Đồ á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ụng Cá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ợ.
GVHD: TS.Nguyễn Chung Tiến Thắng
14
SVTH: Nguyễn Duy
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
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 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 Thắng
15
SVTH: Nguyễn Duy
Đồ á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 Thắng
16
SVTH: Nguyễn Duy
Đồ á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
GVHD: TS.Nguyễn Chung Tiến Thắng
17
SVTH: Nguyễn Duy
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
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 đã 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... GVHD: TS.Nguyễn Chung Tiến Thắng
18
SVTH: Nguyễn Duy
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
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à để đả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 GVHD: TS.Nguyễn Chung Tiến Thắng
19
SVTH: Nguyễn Duy
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
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. 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 .
GVHD: TS.Nguyễn Chung Tiến Thắng
20
SVTH: Nguyễn Duy
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
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à đượ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 Thắng
21
SVTH: Nguyễn Duy
Đồ á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 Thắng
22
SVTH: Nguyễn Duy
Đồ á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 Thắng
23
SVTH: Nguyễn Duy
Đồ á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 Thắng
24
SVTH: Nguyễn Duy
Đồ á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 Thắng
25
SVTH: Nguyễn Duy
Đồ á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 Thắng
26
SVTH: Nguyễn Duy
Đồ á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 GVHD: TS.Nguyễn Chung Tiến Thắng
27
SVTH: Nguyễn Duy
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
Đâ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. Ả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 Thắng
28
SVTH: Nguyễn Duy
Đồ á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 Thắng
29
SVTH: Nguyễn Duy
Đồ á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. PNG còn được chia ra 2 dòng nhỏ: GVHD: TS.Nguyễn Chung Tiến Thắng
30
SVTH: Nguyễn Duy
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
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 Thắng
31
SVTH: Nguyễn Duy
Đồ á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.
GVHD: TS.Nguyễn Chung Tiến Thắng
32
SVTH: Nguyễn Duy
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
Mô hình thuật toán:
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: GVHD: TS.Nguyễn Chung Tiến Thắng
33
SVTH: Nguyễn Duy
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
Thực hiện giấu tin trong khổ thơ sau: ‘‘ 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 GVHD: TS.Nguyễn Chung Tiến Thắng
34
SVTH: Nguyễn Duy
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
00000010 01110010 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 Thắng
35
SVTH: Nguyễn Duy
Đồ á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 Thắng
36
SVTH: Nguyễn Duy
Đồ á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) 1 2 3 -> 6 7 -> 10 11 -> 14
Giá trị ‘B’ ‘M’ Unsigned long Zero Unsigned long
Ý nghĩa Định dạng kiểu tệp Định dạng kiểu tệp Kích thước tệp Reserved Đị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 : Địa chỉ vùng data = 54+ Sizeof(Pallete) GVHD: TS.Nguyễn Chung Tiến Thắng
37
SVTH: Nguyễn Duy
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
Đố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ị
1 -> 4
40
5-> 8
Unsigned long
9->12
Unsigned long
13->14
1
15->16
Unsigned long
17->20 21->24
Unsigned long Unsigned long
25->28
Unsigned long
29->32
Unsigned long
33->36
Unsigned long
37->40
Unsigned long
Ý nghĩa Số lượng byte của vùng bitmap infor Độ rộng của ảnh tính theo Pixel Độ cao của ảnh tính theo Pixel Number of Color Plans Số bít để biểu diễn một điểm ảnh Kiểu nén Độ lớn của ảnh (byte) Độ phân giải của ảnh theo chiều ngang Độ phân giải của ảnh theo chiều dọc Số lượng màu trong bảng màu 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ứ 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
GVHD: TS.Nguyễn Chung Tiến Thắng
38
SVTH: Nguyễn Duy
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
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 .
Ta lấy một ví dụ : GVHD: TS.Nguyễn Chung Tiến Thắng
39
SVTH: Nguyễn Duy
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
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 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 GVHD: TS.Nguyễn Chung Tiến Thắng
40
SVTH: Nguyễn Duy
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
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; while ((byteRead = inStream.ReadByte()) != -1) { byteWrite = (byte)byteRead; GVHD: TS.Nguyễn Chung Tiến Thắng
41
SVTH: Nguyễn Duy
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
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) { bit = BitProcess.Extract((byte)byteRead, 0); BitProcess.Replace(ref hidden[i], j++, bit); if (j == 8) { j = 0; i++; } GVHD: TS.Nguyễn Chung Tiến Thắng
42
SVTH: Nguyễn Duy
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
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) { using (System.IO.Stream s = System.IO.File.Create(filesave)) { s.Write(Bytes, 0, Bytes.Length); } GVHD: TS.Nguyễn Chung Tiến Thắng
43
SVTH: Nguyễn Duy
Đồ á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:
GVHD: TS.Nguyễn Chung Tiến Thắng
44
SVTH: Nguyễn Duy
Đồ án tốt nghiệp – Khoa ATTT – Học viện KTMM – Khóa 2006-2011
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 Thắng
45
SVTH: Nguyễn Duy
Đồ á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 Thắng
46
SVTH: Nguyễn Duy
Đồ á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 Thắng
47
SVTH: Nguyễn Duy
Đồ á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 Thắng
48
SVTH: Nguyễn Duy
Đồ á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 Apple.bmp : Nguyen Duy Thang At3b
ta đã giấu vào
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 Thắng
49
SVTH: Nguyễn Duy
Đồ á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 Thắng
50
SVTH: Nguyễn Duy
Đồ á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 Thắng
51
SVTH: Nguyễn Duy
Đồ á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 Thắng
52
SVTH: Nguyễn Duy
Đồ á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 Thắng
53
SVTH: Nguyễn Duy
Đồ á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 Thắng
54
SVTH: Nguyễn Duy
Đồ á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 Thắng
55
SVTH: Nguyễn Duy
Đồ á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 Thắng
56
SVTH: Nguyễn Duy
Đồ á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) 4559.ckW.:StegoDos.ftp://ftp.csua.berkeley.edu/pub/cypherpunks/steganograph y/ stegodos.zip 8. Các nguồn khác trên internet
GVHD: TS.Nguyễn Chung Tiến Thắng
57
SVTH: Nguyễn Duy
Đồ á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 Thắng
58
SVTH: Nguyễn Duy
Đồ á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 Thắng
59
SVTH: Nguyễn Duy
Đồ á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 Thắng
60
SVTH: Nguyễn Duy
Đồ á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 Thắng
61
SVTH: Nguyễn Duy
Đồ á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 Thắng
62
SVTH: Nguyễn Duy
Đồ á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[] AddHeadMessage(unicode.GetBytes(message));
messageBytes
=
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 Thắng
63
SVTH: Nguyễn Duy
Đồ á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 Thắng
64
SVTH: Nguyễn Duy
Đồ á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 Thắng
65
SVTH: Nguyễn Duy
Đồ á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 Thắng
66
SVTH: Nguyễn Duy
Đồ á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 Thắng
67
SVTH: Nguyễn Duy