Để đảm bảo an toàn và bí mật cho một thông điệp truyền đi người ta thường dùng phương pháp truyền thống là mã hóa thông điệp theo một quy tắc nào đó đã được thỏa thuận trước giữa người gửi và người nhận. Tuy nhiên, phương thức này thường gây sự chú ý cho đối phương về tầm quan trọng của thông điệp. Thời gian gần đây đã xuất hiện một cách tiếp cận mới để truyền các thông điệp bí mật, đó là giấu các thông tin quan trọng trong các tài liệu số hóa như ảnh, video, audio…Nhìn bề ngoài các bức ảnh có chứa thông tin cũng không có gì khác với các bức ảnh khác nên hạn chế được tầm kiểm soát của đối phương. Mặt khác, dù các bức ảnh có chứa thông tin được giấu bị phát hiện thì với các khóa có độ bảo mật cao thì việc tìm được nội dung của thông tin đó cũng rất khó có thể thực hiện được. Xét theo khía cạnh tổng quát thì giấu thông tin cũng là hệ mã mật nhằm đảm bảo tính an toàn thông tin, nhưng phương pháp này ưu điểm là ở chỗ giảm được khả năng phát hiện được sự tồn tại của thông tin trong nguồn mang. Mục tiêu của giấu tin là làm cho thông tin trộn lẫn với các điểm ảnh. Điều này sẽ đánh lừa được sự phát hiện của các tin tặc và do đó làm giảm khả năng bị giải mã.
1 MỤC LỤC DANH MỤC CÁC HÌNH VẼ 3 DANH MỤC CÁC BẢNG BIỂU . 3 LỜI CẢM ƠN 3 MỞ ĐẦU 5 CHƢƠNG 1. MÔ HÌNH VÀ CÁC GIAO THỨC GIẤU TIN . 6 1.1 Một số khái niệm về giấu tin . 6 1.1.1Giới thiệu chung về giấu tin . 6 1.1.2 Các tính chất của giấu tin . 7 1.1.3 Ứng dụng của giấu tin . 8 1.1.4 Tấn công hệ thống giấu tin 9 1.2 Mô hình giấu tin 10 1.2.1 Mô hình giấu tin vào phương tiện chứa 10 1.2.2 Mô hình tách tin từ phương tiện chứa . 11 1.3 Phân loại kĩ thuật giấu tin 12 1.3.1 Phân loại theo phương tiện chứa . 12 1.3.2 Phân loại theo cách thức tác động lên phương tiện 14 1.3.3 Phân loại theo mục đích sử dụng 14 1.4 Các thành phần trong kĩ thuật giấu tin 15 1.4.1 Phương tiện chứa 15 1.4.2 Thông tin cần che giấu 16 1.4.3 Khóa giấu tin 16 1.5 Các giao thức giấu tin 17 1.5.1 Giấu tin thuần túy 17 1.5.2 Giấu tin sử dụng khóa bí mật 17 1.5.3 Giấu tin sử dụng khóa công khai . 18 CHƢƠNG 2. GIẤU TIN TRONG MÔI TRƢỜNG SỐ HÓA ĐA PHƢƠNG TIỆN 19 2.1 Nguyên lý giấu tin trong môi trường số hóa đa phương tiện 19 2.1.1 Một số kí hiệu . 19 2.1.2 Nguyên lý giấu tin bằng cách thay thế 19 2.1.3 Thay đổi các bit ít quan trọng nhất . 20 2.1.4 Phương pháp giấu tin vào các vùng phương tiện chứa . 26 2.1.5 Hoán vị giả ngẫu nhiên . 27 2.2 Giấu tin trong môi trường đa phương tiện . 29 2.2.1 Giấu tin trong ảnh . 29 2.2.2 Giấu tin trong audio 29 2.2.3 Giấu tin trong video 29 2.3 Các thuật toán giấu tin trong ảnh . 30 2.3.1 Ảnh và khả năng giấu tin 30 2.3.2 Mô hình bài toán giấu tin trong ảnh thứ cấp . 31 2.3.3 Các kỹ thuật giấu tin trong ảnh thứ cấp 33 2 2.3.4 Giấu tin trong ảnh màu và ảnh đa cấp xám . 42 2.3.5 Một số kỹ thuật giấu tin trong các tài liệu đa phương tiện 48 2.3.6 Định hướng phát triển các kĩ thuật mới 58 CHƢƠNG 3. XÂY DỰNG ỨNG DỤNG GIẤU TIN . 59 3.1 Giới thiệu về ngôn ngữ lập trình VB.Net 59 3.1.1 Lịch sử về ngôn ngữ Visual Basic.Net 59 3.1.2 Những đặc điểm nổi bật của ngôn ngữ Visual Basic.Net . 59 3.1.3 Những ứng dụng ngôn ngữ Visual Basic.Net . 60 3.2 Bài toán giấu tin trong ảnh màu 60 3.3 Thiết kế và cài đặt chương trình giấu tin trong ảnh màu 24 bit trên Visual Basic.NET . 62 3.3.1 Thiết kế các chức năng của chương trình . 62 3.3.2 Cài đặt chức năng giấu thông tin trong ảnh 62 3.3.3 Cài đặt chức năng lấy thông tin từ ảnh . 69 3.3.3 Thiết kế giao diện và chức năng của chương trình . 73 KẾT LUẬN 77 TÀI LIỆU THAM KHẢO 78 3 DANH MỤC CÁC HÌNH VẼ Hình 1.1: Cân nhắc tính chất lượng dung lượng và tính bền vững . 6 Hình 1.2: Mô hình giấu tin vào phương tiện chứa 10 Hình 1.3: Mô hình tách tin từ phương tiện chứa . 11 Hình 2.1: Các thành phần trong thuật toán LSB . 22 Hình 2.2: Giấu tin trong ảnh đen trắng 28 Hình 2.3: Bảng màu trước và sau khi sắp xếp của một ảnh . 50 Hình 2.4: Sơ đồ giấu tin trong ảnh 53 Hình 2.5: Lặp trong phương pháp Pachwork 59 Hình 2.6: Kĩ thuật biến đổi Mellin- Fourier 64 Hình 2.7: Lợi dung phép biến đổi hình học để giấu tin . 66 Hình 3.1: Các chức năng chính của chương trình . 72 Hình 3.2: Lưu đồ thuật toán giấu tin . 75 Hình 3.3: Lưu đồ thuật toán tách tin . 81 Hình 3.4: Giao diện chính của chương trình . 85 Hình 3.5: Giao diện giấu thông điệp trong ảnh . 85 Hình 3.6: Giao diện lấy thông điệp từ ảnh 86 Hình 3.7: Giao diện giấu file văn bản trong ảnh . 87 Hình 3.8: Giao diện lấy file văn bản từ ảnh 88 DANH MỤC CÁC BẢNG BIỂU Bảng 2.1:Khả năng giấu thông tin trong ảnh . 33 Bảng 2.2: S w với w={1, 2, ….7} của các khối F i 44 Bảng 3.1. Cấu trúc FileHeader của ảnh Bipmap . 68 Bảng 3.2. Cấu trúc ImageHeader của ảnh Bipmap . 69 4 LI CM N Đầu tiên tôi xin gửi lời cám ơn đến các thầy cô trong Khoa Toán, Khoa Công nghệ thông tin - Tr-ờng Đại học Hải Phòng đã tận tình chỉ bảo tôi trong suốt khóa học, cám ơn tập thể lớp Toán Tin ứng dụng K10 và chân thành cám ơn thầy h-ớng dẫn Thạc sĩ Lê Đắc Nh-ờng, ng-ời đã tận tình h-ớng dẫn, chỉ bảo tôi trong học tập và nghiên cứu. Cuối cùng, tôi xin gửi lời cảm ơn đến gia đình, ng-ời thân và bạn bè của tôi, những ng-ời đã luôn ở bên động viên và khích lệ tôi trong suốt khóa học. Do thời gian và điều kiện có hạn nên luận văn không tránh khỏi có những thiếu sót, tôi rất mong nhận đ-ợc sự góp ý từ bạn bè, thầy cô và những ng-ời quan tâm đến đề tài này. Sinh viên Phạm Thị Quyên 5 MỞ ĐẦU Ngày nay, cùng với sự phát triển mạnh mẽ của ngành khoa học công nghệ thông tin, internet đã trở thành nhu cầu, phương tiện không thể thiếu đối với mọi người, việc truyền tin qua mạng ngày càng lớn. Tuy nhiên, với lượng thông tin truyền qua mạng nhiều hơn thì nguy cơ dữ liệu bị truy cập trái phép cũng tăng lên vì vậy vấn đề bảo đảm an toàn và bảo mật thông tin cho dữ liệu truyền trên mạng là rất cần thiết. Để đảm bảo an toàn và bí mật cho một thông điệp truyền đi người ta thường dùng phương pháp truyền thống là mã hóa thông điệp theo một quy tắc nào đó đã được thỏa thuận trước giữa người gửi và người nhận. Tuy nhiên, phương thức này thường gây sự chú ý cho đối phương về tầm quan trọng của thông điệp. Thời gian gần đây đã xuất hiện một cách tiếp cận mới để truyền các thông điệp bí mật, đó là giấu các thông tin quan trọng trong các tài liệu số hóa như ảnh, video, audio…Nhìn bề ngoài các bức ảnh có chứa thông tin cũng không có gì khác với các bức ảnh khác nên hạn chế được tầm kiểm soát của đối phương. Mặt khác, dù các bức ảnh có chứa thông tin được giấu bị phát hiện thì với các khóa có độ bảo mật cao thì việc tìm được nội dung của thông tin đó cũng rất khó có thể thực hiện được. Xét theo khía cạnh tổng quát thì giấu thông tin cũng là hệ mã mật nhằm đảm bảo tính an toàn thông tin, nhưng phương pháp này ưu điểm là ở chỗ giảm được khả năng phát hiện được sự tồn tại của thông tin trong nguồn mang. Mục tiêu của giấu tin là làm cho thông tin trộn lẫn với các điểm ảnh. Điều này sẽ đánh lừa được sự phát hiện của các tin tặc và do đó làm giảm khả năng bị giải mã. 6 CHƯƠNG 1. MÔ HÌNH VÀ CÁC GIAO THỨC GIẤU TIN 1.1 Một số khái niệm về giấu tin 1.1.1 Giới thiệu chung về giấu tin Cùng với sự phát triển của Internet và phương tiện multimedia nhiều vấn đề như ăn cắp bản quyền, xuyên tạc thông tin, truy cập trái phép…cũng tăng theo, đòi hỏi phải tìm ra các giải pháp mới, hữu hiệu cho an toàn và bảo mật thông tin. Một trong các giải pháp triển vọng đó là giấu tin (Data hiding), phương pháp này đã và đang được nghiên cứu, ứng dụng rộng rãi. Trong lịch sử có rất nhiều câu chuyện về nghệ thuật giấu tin như: Nhà sử học Hy Lạp Herodotus kể lại việc quân Hy Lạp đã thông báo cho nhau ý định tấn công của kẻ địch bằng cách khắc thông tin dưới lớp sáp của viên thuốc; Giấu tin bằng cách dung mực không màu để viết thông tin tin mật; Khắc bản đồ kho báu ở trên đầu các thủy thủ để cho tóc mọc lên che kín đi. Ở Trung Hoa người ta ghi các hình tượng vào các vị trí nhất định của 1 bức thư rồi gửi nó đi. Cách này cũng được dùng ở Châu Âu thời trung cổ, người ta dùng các tấm gỗ để ghi lên đó những dòng chữ tưởng chừng như vô nghĩa. Ngày nay nghệ thuật giấu tin được khai thác nhằm phục vụ cho các mục đích tích cực: Như bảo vệ bản quyền của các tài liệu số hóa hay giấu các thông tin bí mật như thông tin chính trị- quân sự, thông tin kinh tế…Giấu tin, tiếng Hy lạp là “Stenography”, tiếng Anh là "Covered Writing", tạm dịch là nghệ thuật viết phủ. Giấu tin là một kĩ thuật nhúng (giấu) một lượng thông tin số nào đó vào trong một đối tượng dữ liệu số khác. Giấu tin đôi khi không phải chỉ là hành động giấu theo nghĩa thông thường mà còn mang ý nghĩa quy ước. Giấu tin trong ảnh số là giấu các mẩu tin cũng là dạng số trong máy tính vào các tệp ảnh nhị phân sao cho không bị người ngoài phát hiện. Mục đích của giấu tin: Giấu tin phục vụ cho hai mục đích trái ngược nhau: - Bảo mật cho những dữ liệu được giấu trong đối tượng chứa. - Bảo đảm an toàn (bảo vệ bản quyền) cho chính đối tượng chứa dữ liệu giấu trong đó. Hai mục đích giấu tin phát triển thành hai lĩnh vực với yêu cầu và tính chất khác nhau: - Giấu thông tin bí mật (Steganography). 7 - Thuỷ vân số (Watermarking). Cùng với sự phát triển của công nghệ thông tin đã tạo ra những môi trường giấu tin mới tiện lợi và phong phú, người ta có thể giấu tin trong các phương tiện chứa như văn bản, hình ảnh, audio, video…Cũng có thể giấu tin ngay trong các khoảng trống hay các phân vùng ẩn của môi trường lưu trữ như đĩa cứng, đĩa mềm. Các gói tin truyền đi trên mạng cũng là môi trường giấu tin thuận lợi, các tiện ích của phần mềm cũng có thể là nơi giấu tin lý tưởng để xác nhận bản quyền. 1.1.2 Các tính chất của giấu tin Vì là một lĩnh vực mới nhưng đã và đang được ứng dụng và phát triển rộng dãi nên có rất nhiều phương pháp giấu tin đang được nghiên cứu và thực nghiệm. Để đánh giá một phương pháp giấu tin so với phương pháp khác người ta sẽ dựa vào những tiêu chí sau đây: Tính vô hình: Khi giấu tin vào phương tiện chứa sẽ làm biến đổi phương tiện chứa. Tính vô hình thể hiện mức độ biến đổi của phương tiện chứa thông tin. Một phương pháp tốt sẽ làm cho thông tin mật trở nên vô hình trên phương tiện chứa, và từ đó người dùng không thể phát hiện trong đó ẩn chứa thông tin. Tuy nhiên không phải khi nào người ta cũng cố gắng để đạt được tính vô hình cao nhất, ví dụ trong truyền hình người ta gắn ảnh mờ gọi là thủy ấn để bảo vệ bản quyền :Vì mục đích của phương pháp giấu tin là di chuyển thông tin mật. Nếu không thể do thám tin mật thì kẻ địch cũng sẽ cố gắng làm sai lệch thông tin hoặc giả mạo thông tin để gây bất lợi cho đối phương. Một phương pháp giấu tin tốt sẽ đảm bảo tin mật không bị tấn công một cách có chủ đích trên cơ sở những hiểu biết đầy đủ về thuật toán nhúng tin(nhưng không biết khóa) và có phương tiện chứa. Đối với lĩnh vực thủy ấn số thì khả năng chống giả mạo là đặc tính vô cùng quan trọng. Vì nó chứng minh được bản quyền, chứng minh được tính pháp lý của sản phẩm. 8 : Dung lượng giấu tin được tính bằng tỉ lệ lượng thông tin giấu được so với kích thước của phương tiện chứa. Vì tin mật được gửi đi cùng với phương tiện chứa qua mạng nên đây cũng là một chỉ tiêu quan trọng. Các phương pháp đều cố gắng làm sao giấu được nhiều tin trong khi đảm bảo vẫn giữ được bí mật. Tuy nhiên thực tế thì người ta luôn phải cân nhắc giữa dung lượng giấu so với các chỉ tiêu khác như tính vô hình, tính ổn đinh. :Sau khi giấu tin vào phương tiện chứa, bản thân phương tiện chứa có thể trải qua các biển đổi khác nhau như các quá trình lọc tuyến tính, lọc phi tuyến, thêm nhiễu, làm sắc nét, làm mờ nhat, nén dữ liệu…ở ảnh mang. Tính bền vững là thước đo sự nguyên vẹn của thông tin mật sau những biến đổi như vậy : Chỉ tiêu độ phức tạp trong mã hóa và giải mã cũng là một yếu tố quan trọng đánh giá các phương pháp giấu tin trong ảnh. Yêu cầu về độ phức tạp trong tính toán phụ thuộc vào từng ứng dụng. Ví dụ một ứng dụng để tạo thủy ấn để đánh giấu bản quyền cần phải có độ phức tạp tính toán cao thì mới có thể đảm bảo chịu được sự tấn công của nhiều tin tặc nhằm phá hủy thủy ấn 1.1.3 Ứng dụng của giấu tin Giấu tin trong tài liệu số hóa ngày càng được phát triển và ứng dụng nhiều trong cuộc sống, đặc biệt là giấu tin trong ảnh ngày càng được ứng dụng rộng rãi. Các ứng dụng thuộc vào một trong các nhóm sau: Một biểu tượng bí mật được nhúng vào trong ảnh để xác nhận quyền sở hữu. Biểu tượng thủy ấn (Watermark) có thể có cấu trúc phức tạp được đính lên ảnh khi bán hoặc phân phối, thêm vào đó có thể gán vào đó một nhãn thời gian (time stamp) để chống giả mạo. Một watermark cũng có thể được dùng để phát hiện xem ảnh có bị sửa đổi hay không. Việc phát hiện các watermark được thực hiện bởi các phép thống kê, so sánh độ tương quan, hoặc bằng cách đo đạc xác định chất lượng của watermark trong ảnh phủ. : Mục tiêu của điểm chỉ số là để chuyển thông tin về người nhận (chứ không phải chủ sở hữu) sản phẩm phương tiện số nhằm xác định đây là bản sao duy nhất của sản phẩm. Về mặt ý nghĩa điểm chỉ số tương tự như số xê ri của phần mềm . Gán nhãn: Tiêu đề, chú giải và nhãn thời gian cũng như các minh hoạ khác có thể được nhúng vào ảnh, ví dụ đính tên người lên ảnh của họ hoặc đính tên vùng địa phương lên bảng đồ. Khi đó nếu sao chép ảnh thì cũng sẽ sao chép cả các dữ liệu nhúng trong nó. Và chỉ có chủ sở hữu của tác phẩm, người có được khoá mật (Stego-Key) mới có thể tách ra và xem các chú giải này. Trong một cơ sở dữ liệu ảnh, người ta có thể nhúng các từ 9 khoá để các động cơ tìm kiếm có thể tìm nhanh một bức ảnh. Nếu ảnh là một khung ảnh cho cả một đoạn phim, người ta có thể gán cả thời điểm diễn ra sự kiện (Timing) để đồng bộ hình ảnh với âm thanh. Người ta cũng có thể gán số lần ảnh được xem để tính tiền thanh toán theo số lần xem. : Trong nhiều trường hợp sử dụng mật mã có thể gây ra sự chú ý ngoài mong muốn. Ngoài ra việc sử dụng công nghệ mã hoá có thể bị hạn chế hoặc cấm sử dụng. Ngược lại việc giấu tin trong môi trường nào đó rồi gửi đi trên mạng ít gây sự chú ý. Có thể dùng nó để gửi đi một bí mật thương mại, một bản vẽ hoặc các thông tin nhạy cảm khác. 1.1.4 Tấn công hệ thống giấu tin Tấn công một hệ thống giấu tin được gọi là Steganalysis. Người ta dùng các phương pháp để phát hiện, phá huỷ, trích hay sửa dữ liệu mật. Hiểu về các biện pháp kẻ tấn công sử dụng sẽ hữu ích cho việc thiết kế và triển khai một hệ giấu tin tốt. Việc tấn công được coi là thành công hay không tuỳ theo ứng dụng. Đối với liên lạc bí mật việc phát hiện và chứng minh một ảnh có chứa tin mật được coi là thành công. Đối với bản quyền, chống giả mạo thì việc tấn công được coi là thành công nếu không chỉ phát hiện ra thuỷ ấn và còn phá huỷ hoặc sửa nó đi mà không làm giảm chất lượng của ảnh. Có một mối quan hệ tương đồng giữa mà hoá và giấu tin là trong cả hai lĩnh vực người ta giả thiết bên thám tin biết trước phương pháp dùng để mã hoá hay giấu tin. Toàn bộ bí mật của một phương pháp cụ thể phụ thuộc vào việc chọn khoá chứ không phải vào độ phức tạp của phương pháp (nguyên lý Kerkhoff trong lý thuyết mật mã). Tương tự như thám mã, các kỹ thuật thám tin trong giấu tin được chia ra làm năm nhóm: - Biết ảnh mang - Biết ảnh gốc và ảnh mang - Biết thông tin giấu trong ảnh mang - Biết thuật toán giấu tin - Biết thuật toán trích tin mật Thám tin để phát hiện thuỷ ấn hoặc dữ liệu mật có thể được thực hiện bằng cách phân tích vùng nhiễu quá mức trên ảnh. Đôi khi những tin tặc kinh nghiệm có thể nhận thấy các vùng nhiễu này bằng mắt thường. Nếu biết được ảnh gốc thì phương pháp này còn đơn giản hơn nữa vì khi đó người ta có thể so sánh ảnh mang với ảnh gốc để tách nhiễu. Nếu bên thám tin biết được thông tin ẩn, người ta có thể sinh ra các cặp ảnh gốc và 10 ảnh mang để phân tích và xem xem liệu ảnh đang xét có mang dấu ấn của chữ ký hay thông tin mật hay không. Việc phá huỷ thông tin mật có thể đơn giản hay vô cùng phức tạp tuỳ thuộc vào phương pháp giấu tin sử dụng. Đối với phương pháp nhúng tin vào bit có trọng số thấp thì việc phá thông tin chỉ đơn thuần là thay đổi lại các bit này. Phá huỷ tin mật đối với các phương pháp giấu tin ổn định mà vẫn giữ nguyên ảnh mang là một việc khó. Vì mục tiêu của những chương trình tạo thuỷ ấn chính là đạt được độ bền vững sao cho nếu có ai đó phá các thuỷ ấn thì cũng làm hỏng ngay cả bức ảnh. Thường người ta tìm cách áp dụng nhiều phép biến đổi ảnh với hy vọng rằng tuy từng phép biến đổi không có tác dụng nhưng có thể tổ hợp của chúng sẽ giúp cho việc phá huỷ thuỷ ấn trong khi vẫn giữ được ảnh mang. Nếu biết thông tin lẫn ảnh mang thì cơ hội phá mẩu tin cao hơn.Nếu biết thuật toán giấu tin thì kẻ thám tin có thể dùng nó thử giấu tin lên nhiều ảnh khác nhau, và qua đó dùng các phương pháp thống kê để tìm ra các quy luật gây nhiễu cũng như dùng nó để kiểm thử xem một ảnh có mang tin mật hay không. Việc tấn công thám tin khó nhất đó là sửa tin trong ảnh mang và suy ra được khoá viết mật (stego-key) dùng để nhúng tin. Nếu đã biết khoá rồi thì kẻ thám tin có thể làm giả các tin khác giống như nó được gửi đi từ chính chủ. Phương pháp thám tin để biết thuật toán giấu tin và thuật toán lấy tin hay được dùng trong các hệ thám tin. Rất nhiều kỹ thuật thám tin đưa sang từ kỹ thuật thám mã nên về lĩnh vực này có sự tương đồng giữa giấu tin và mật mã. 1.2 Mô hình giấu tin 1.2.1 Mô hình giấu tin vào phƣơng tiện chứa 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 (văn bản, ảnh, audio, video) trong sản phẩm phần mềm, và gần đây đã 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 . Thông tin được giấu vào trong phương tiện chứa nhờ một bộ nhúng. Đầu vào: - Thông tin cần giấu: Tùy theo mục đích của người sử dụng, nó có thể là thông điệp (với giấu tin bí mật), logo, hình ảnh bản quyền - Phương tiện chứa: Các file văn bản, hình ảnh, audio, video… - Khóa: là thành phần để tăng độ bảo mật cho thông tin cần giấu - Bộ nhúng thông tin: Là những chương trình thực hiện những thuật toán để giấu tin . 2. GIẤU TIN TRONG MÔI TRƯỜNG SỐ HÓA ĐA PHƯƠNG TIỆN 2.1 Nguyên lý giấu tin trong môi trường số hóa đa phương tiện 2.1.1 Một số kí hiệu Ký hiệu c là phương. 1.1.3 Ứng dụng của giấu tin Giấu tin trong tài liệu số hóa ngày càng được phát triển và ứng dụng nhiều trong cuộc sống, đặc biệt là giấu tin trong ảnh ngày