Nghiên cứu kỹ thuật giấu tin trong ảnh LSB và xây dựng chương trình demo

52 382 2
Nghiên cứu kỹ thuật giấu tin trong ảnh LSB và xây dựng chương trình demo

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

LỜI CẢM ƠN Sau khoảng thời gian học tập trường Đại học công nghệ thông tin truyền thơng, đến em hồn thành xong Đề tài báo cáo thực tập chuyên ngành Em xin bày tỏ lòng cảm ơn sâu sắc tới ban lãnh đạo trường Đại học Công nghệ Thông tin truyền thông, thầy giáo tận tình giảng dạy, trang bị cho em vốn kiến thức kinh nghiệm quý báu, cung cấp cho chúng em điều kiện mơi trường học tập tốt Để hồn thành tốt báo cáo này, em xin gửi lời cảm ơn chân thành đến giáo ThS.Đồn Thị Bích Ngọc Cơ hướng dẫn dìu dắt tạo điều kiện giúp đỡ em thời gian thực đề tài báo cáo đồ án tốt nghiệp Cô không truyền lại cho chúng em kiến thức chuyên nghành mà rèn luyện cho chúng em nghị lực, khát khao vươn lên, phát huy khả tư sáng tạo lĩnh vực Tuy nhiên, dù cố gắng thời gian có hạn nên báo cáo khó tránh khỏi thiếu sót Em mong nhận thơng cảm đóng góp kiến q Thầy Cô bạn để báo cáo em hoàn chỉnh Em xin chân thành cảm ơn! Thái Nguyên, Ngày….Tháng…Năm 2017 Sinh Viên Nguyễn Văn Quân LỜI CAM ĐOAN Em xin cam đoan đồ án với đề tài “Nghiên cứu kỹ thuật giấu tin ảnh: LSB xây dựng chương trình demo” em tự tìm hiểu, nghiên cứu qua tài liệu có từ nhà nghiên cứu trước Các nội dung, thuật tốn sử dụng từ cơng trình nghiên cứu cơng bố có trích xuất đầy đủ Tất tham khảo từ nghiên cứu liên quan nêu nguồn gốc cách rõ ràng từ danh mục tài liệu tham khảo đồ án Đồ án hoàn thành thời gian em làm Sinh viên Khoa Công nghệ Thông tin, Trường Đại học Công Nghệ Thông Tin Truyền Thông Thái Nguyên Thái Nguyên, Ngày….Tháng…Năm 2017 Sinh Viên Nguyễn Văn Quân MỤC LỤC LỜI CẢM ƠN LỜI CAM ĐOAN MỤC LỤC DANH MỤC HÌNH ẢNH CHƯƠNG TÌM HIỂU NGƠN NGỮ LẬP TRÌNH C# 1.1 Tìm hiểu chung ngơn ngữ lập trình C# 1.2 Các kiểu liệu 1.3 Biến 1.3.1 Khởi tạo trước dùng 1.3.2 Hằng 1.3.3 Kiểu liệt kê 1.3.4 Chuỗi 1.3.5 Định danh 1.4 Biểu thức 10 1.5 Khoảng trắng 10 1.6 Câu lệnh 10 1.6.1 Các câu lệnh rẽ nhánh không điều kiện 10 1.6.2 Lệnh rẽ nhánh có điều kiện 11 1.6.3 Lệnh lặp 12 1.7 Toán tử 13 1.7.1 Toán tử gán (=) 14 1.7.2 Nhóm tốn tử tốn học 14 1.7.3 Các toán tử tăng giảm 14 1.7.4 Các toán tử quan hệ 14 1.7.5 Các toán tử logic 15 1.7.6 Thứ tự toán tử 15 1.7.7 Toán tử tam phân 15 1.8 Tạo vùng tên 15 1.9 Chỉ thị tiền xử lý 16 1.9.1 Định nghĩa định danh 16 1.9.2 Hủy định danh 16 1.9.3 #if, #elif, #else #endif 17 1.9.4 Chỉ thị #region #endregion 17 1.10 Lập trình hướng đối tượng với C# 18 1.10.1 Định nghĩa lớp 18 1.10.2 Thừa kế Đa hình 18 CHƯƠNG TÌM HIỂU KỸ THUẬT GIẤU TIN LSB 19 2.1 Tổng quan giấu tin 19 2.1.1 Giới thiệu chung 19 2.1.2 Mơ hình kĩ thuật giấu lấy tin 20 2.1.3 Phân loại kĩ thuật giấu tin 21 2.1.4 Các ứng dụng giấu tin 22 2.1.5 Môi trường giấu tin 23 2.1.6 Các tiêu chí đánh giá kỹ thuật giấu tin ảnh 25 2.2 Kỹ thuật giấu tin LSB (Least Significant Bit) ảnh màu 26 2.2.1 Giới thiệu chung 26 2.2.2 Các đặc trưng tính chất giấu thơng tin ảnh 27 2.2.3 Cấu trúc file ảnh 29 2.2.4 Giấu tin ảnh màu kỹ thuật LSB (Least Significant Bit) 35 CHƯƠNG XÂY DỰNG ỨNG DỤNG DEMO CHO KỸ THUẬT GIẤU TIN TRONG ẢNH 40 3.1 Khảo sát trạng bảo mật thông tin 40 3.1.1 Khảo sát 40 3.1.2 Bài toán đặt 44 3.1.3 Ý tưởng 44 3.2 Các bước giấu tin vào ảnh 46 3.3 Các bước lấy tin từ ảnh 47 3.4 Kết thực nghiệm 47 3.4.1 Để xây dựng chương trình, ta cần thiết kế module sau: 47 3.4.2 Một số hình ảnh từ chương trình Demo 48 KẾT LUẬN 51 TÀI LIỆU THAM KHẢO 52 DANH MỤC HÌNH ẢNH Hình 2.1 Mơ hình giấu lấy tin 21 Hình 2.2 Mơ hình phân loại kĩ thuật giấu tin 21 Hình 2.3 Ảnh đen trắng 29 Hình 2.4 Ảnh đa cấp xám 30 Hình 2.5 Ảnh màu 30 Hình 2.6: Màu xanh với mã màu (0 255) 36 Hình 2.7: Màu xanh với mã màu (0 254) 36 Hình 2.8 Ảnh sau giấu tin khó phát thay đổi 37 Hình 2.9 Mơ hình giấu tin 38 Hình 2.10 Mơ hình lấy tin 38 Hình 3.1 Chỉ số án tồn thơng tin qua năm 41 Hình 3.2 Mơ hình bước giấu tin ảnh 46 Hình 3.3 Mơ hình bước lấy tin từ ảnh 47 Hình 3.4 Giao diện chương trình 48 Hình 3.5 Giao diện giấu tin 49 Hình 3.6 Giao diện lấy tin 50 CHƯƠNG TÌM HIỂU NGƠN NGỮ LẬP TRÌNH C# 1.1 Tìm hiểu chung ngơn ngữ lập trình C# C# ngôn ngữ đơn giản, với khoảng 80 từ khoá mười kiểu liệu dựng sẵn, C# có tính diễn đạt cao C# hỗ trợ lập trình có cấu trúc, hướng đối tượng, hướng thành phần (component oriented) Trọng tâm ngôn ngữ hướng đối tượng lớp Lớp định nghĩa kiểu liệu mới, cho phép mở rộng ngôn ngữ theo hướng cần giải C# có từ khố dành cho việc khai báo lớp, phương thức, thuộc tính (property) C# hỗ trợ đầy đủ khái niệm trụ cột lập trình hướng đối tượng: đóng gói, thừa kế, đa hình Định nghĩa lớp C# khơng đòi hỏi tách rời tập tin tiêu đề với tập tin cài đặt C++ Hơn thế, C# hỗ trợ kiểu sưu liệu mới, cho phép sưu liệu trực tiếp tập tin mã nguồn Đến biên dịch tạo tập tin sưu liệu theo định dạng XML C# hỗ trợ khái niệm giao diện, interfaces (tương tự Java) Một lớp kế thừa lớp cha cài đặt nhiều giao diện C# có kiểu cấu trúc, struct (không giống C++) Cấu trúc kiểu hạng nhẹ bị giới hạn Cấu trúc thừa kế lớp hay kế thừa cài đặt giao diện C# cung cấp đặc trưng lập trình hướng thành phần property, kiện dẫn hướng khai báo (được gọi attribute) Lập trình hướng component hỗ trợ CLR thông qua siêu liệu (metadata) Siêu liệu mô tả lớp bao gồm phương thức thuộc tính, thơng tin bảo mật … Assembly tập hợp tập tin mà theo cách nhìn lập trình viên thư viện liên kết động (DLL) hay tập tin thực thi (EXE) Trong NET assembly đơn vị việc tái sử dụng, xác định phiên bản, bảo mật, phân phối CLR cung cấp số lớp để thao tác với assembly C# cho truy cập trực tiếp nhớ dùng trỏ kiểu C++, vùng mã xem khơng an tồn CLR không thực thi việc thu dọn rác tự động đối tượng tham chiếu trỏ lập trình viên tự giải phóng 1.2 Các kiểu liệu C# buộc phải khai báo kiểu đối tượng tạo Khi kiểu khai báo rõ ràng, trình biên dịch giúp ngăn ngừa lỗi cách kiểm tra liệu gán cho đối tượng có hợp lệ khơng, đồng thời cấp phát kích thước nhớ cho đối tượng C# phân thành hai loại: loai liệu dựng sẵn loại người dùng định nghĩa C# chia tập liệu thành hai kiểu: giá trị tham chiếu Biến kiểu giá trị lưu vùng nhớ stack, biến kiểu tham chiếu lưu vùng nhớ heap C# hỗ trợ kiểu trỏ C++, sử dụng Thông thường trỏ sử dụng làm việc trực tiếp với Win API hay đối tượng COM  Kiểu liệu định sẵn C# có nhiểu kiểu liệu định sẵn, kiểu ánh xạ đến kiểu hổ trợ CLS (Commom Language Specification), ánh xạ để đảm bảo đối tượng tạo C# khơng khác đối tượng tạo ngôn ngữ NET khác Mỗi kiểu có kích thước cố định liệt kê bảng sau: Bảng 1-1 Các kiểu dựng sẵn  Chọn kiểu định sẵn Tuỳ vào giá trị muốn lưu trữ mà ta chọn kiểu cho phù hợp Nếu chọn kiểu lớn so với giá trị cần lưu làm cho chương trình đòi hỏi nhiều nhớ chạy chậm Trong giá trị cần lưu lớn kiểu thực lưu làm cho giá trị biến bị sai chương trình cho kết sai Kiểu char biểu diễn ký tự Unicode Ví dụ “\u0041” ký tự “A” bảng Unicode Một số ký tự đặc biệt biểu diễn dấu “\” trước ký tự khác Bảng 1-2 Các ký tự đặc biệt thông dụng  Chuyển đổi kiểu định sẳn Một đối tượng chuyển từ kiểu sang kiểu theo hai hình thức: ngầm tường minh Hình thức ngầm chuyển tự động hình thức tường minh cần can thiệp trực tiếp người lập trình (giống với C++ Java) short x = 5; int y ; y = x; // chuyển kiểu ngầm định - tự động x = y; // lỗi, không biên dịch x = (short) y; // OK 1.3 Biến Biến dùng để lưu trữ liệu Mỗi biến thuộc kiểu liệu 1.3.1 Khởi tạo trước dùng Trong C#, trước dùng biến biến phải khởi tạo khơng trình biên dịch báo lỗi biên dịch Ta khai báo biến trước, sau khởi tạo sử dụng; hay khai báo biến khởi gán lúc khai báo Ví dụ: int x; // khai báo biến trước x = 5; // sau khởi gán giá trị sử dụng int y = x; // khai báo khởi gán lúc 1.3.2 Hằng Hằng biến giá trị không thay đổi theo thời gian Khi cần thao tác giá trị xác định ta dùng Khai báo tương tự khai báo biến có thêm từ khóa const trước Hằng khởi động xong thay đổi 1.3.3 Kiểu liệt kê Enum cách thức để đặt tên cho trị nguyên (các trị kiểu số nguyên, theo nghĩa tương tự tập hằng), làm cho chương trình rõ ràng, dễ hiểu Enum khơng có hàm thành viên Ví dụ tạo enum tên Ngay sau: enum Ngay {Hai, Ba, Tu, Nam, Sau, Bay, ChuNhat}; Theo cách khai báo enum ngày có bảy giá trị nguyên từ = Hai, = Ba, =Tư … = ChuNhat 1.3.4 Chuỗi Chuỗi kiểu dựng sẵn C#, chuổi ký tự đơn lẻ Khi khai báo biến chuỗi ta dùng từ khoá string 1.3.5 Định danh Định danh tên mà người lập trình chọn đại diện kiểu, phương thức, biến, hằng, đối tượng… họ Định danh phải bắt đầu ký tự hay dấu “_” Định danh khơng trùng với từ khố C# phân biệt hoa thường 1.4 Biểu thức Bất kỳ câu lệnh định lượng giá trị gọi biểu thức (expression) Phép gán sau gọi biểu thức định lượng giá trị gán (là 32) x = 32; Vì phép gán gán lần sau: y = x = 32; Sau lệnh y có giá trị biểu thức x = 32 y = 32 1.5 Khoảng trắng Trong C#, khoảng trống, dấu tab, dấu xuống dòng xem khoảng trắng (whitespace) Do đó, dấu cách dù lớn hay nhỏ nên ta có: x = 32; x = 32; Ngoại trừ khoảng trắng chuỗi ký tự có ý nghĩa riêng 1.6 Câu lệnh Cũng C++ Java thị hồn chỉnh gọi câu lệnh (statement) Chương trình gồm nhiều câu lệnh, câu lệnh kết thúc dấu “;” Ví dụ: int x; // câu lệnh x = 23; // câu lệnh khác Ngồi câu lệnh bình thường trên, có câu lệnh khác là: lệnh rẽ nhánh không điều kiện, rẽ nhánh có điều kiện lệnh lặp 1.6.1 Các câu lệnh rẽ nhánh khơng điều kiện Có hai loại câu lệnh rẽ nhánh không điều kiện Một lệnh gọi phương thức: trình biên dịch thấy có lời gọi phương thức tạm dừng phương thức hành nhảy đến phương thức gọi hết phương thức trở phương thức cũ 10 Các bước thực sau: + Giấu tin (Encode): Hình 2.9 Mơ hình giấu tin  Biến đổi thông điệp cần giấu thành dãy bit, giả sử có dạng: b1b2 bn  Đọc byte từ file đầu vào giả sử byte có dạng:a7… a1a0, thay bit xét, giả sử bk (với k=1 n) vào vị trí a0, byte có dạng a7… a1bk  Viết byte vừa thu vào file ảnh đầu + Phục hồi tin (Decode): ’ Hình 2.10 Mơ hình lấy tin  Đọc byte từ file ảnh cần giải mã, giả sử byte có dạng a7… a1a0, tách lấy bit a0, đưa vào mảng bit B  Từ mảng B biến đổi thành thông điệp ban đầu 38 Ưu điểm phương pháp dễ cài đặt cho phép giấu liệu nhiều Có thể tăng thêm liệu giấu cách sử dụng hai bit LSB Tuy nhiên cách làm làm tăng nhiễu đối tượng chứa dẫn đến đối phương dễ phát thực cơng Vì liệu chứa cần phải chọn trước giấu sử dụng phương pháp Để tăng độ an tồn cho kỹ thuật này, ta sử dụng khóa bí mật K để mã hóa thơng tin mật trước đem giấu vào bit LSB 39 CHƯƠNG XÂY DỰNG ỨNG DỤNG DEMO CHO KỸ THUẬT GIẤU TIN TRONG ẢNH 3.1 Khảo sát trạng bảo mật thông tin 3.1.1 Khảo sát Theo báo cáo tổng hợp kết điều tra, đánh giá thực trạng an tồn thơng tin Việt Nam năm 2016 Hiệp hội An tồn thơng tin Việt Nam (VNISA), Chỉ số an tồn thơng tin Việt Nam (Vietnam Information Security Index) 2016 59,9% - tăng 12,5% so với mức 47,4% năm 2015 (chỉ số năm 2014 2013 39% 37,3%) lần vượt mức trung bình 50% giới Chỉ số có xu hướng tăng bền vững qua năm, thể định hướng kiên định Nhà nước cộng đồng phát triển an tồn thơng tin Trên thực tế, tình hình an tồn thơng tin Việt Nam năm 2016 có nhiều diễn biến phức tạp, xảy nhiều vụ cơng có chủ đích vào hệ thống thơng tin tổ chức, doanh nghiệp lớn, lượng mã độc phát tán nhiều… Nhưng nhận thức quan, tổ chức, doanh nghiệp người dùng vấn đề an tồn thơng tin tăng lên, mơi trường an tồn thơng tin cải thiện người dùng chủ động việc ứng phó với cố an tồn thơng tin Bức tranh an tồn thơng tin Việt Nam năm 2016 mà VNISA đưa chủ yếu dựa kết khảo sát VNISA phối hợp với Cục An tồn thơng tin (Bộ TT&TT) khảo sát nước, với vùng trọng tâm Hà Nội, Đà Nẵng TP Hồ Chí Minh Cuộc khảo sát tiến hành từ tháng đến tháng 11/2016 với gần 700 tổ chức, doanh nghiệp nhiều lĩnh vực, dựa 36 câu hỏi phức hợp Chỉ số an tồn thơng tin năm 2016 đưa dựa lượng hóa từ 30 số chính, có hai vấn đề Mơi trường an tồn thơng tin (gồm Đào tạo, nhận thức; Tổ chức, nhân lực; Chính sách, kinh phí) Các biện pháp đảm bảo an tồn thơng tin (gồm Các biện pháp quản lý; biện pháp kỹ thuật) 40 Hình 3.1 Chỉ số án tồn thơng tin qua năm Thời gian gần đây, vấn đề vi phạm liệu doanh nghiệp lớn xảy thường xuyên có chiều hướng ngày gia tăng Dưới số vấn đề hàng đầu bảo mật liệu có ảnh hưởng trực tiếp đến doanh nghiệp lớn:  Sử dụng điện thoại thông minh cá nhân Điện thoại thông minh bùng nổ toàn cầu trở thành nguy lớn cho vấn đề an tồn thơng tin tổ chức Các nghiên cứu gần cho thấy, có 68% tổ chức doanh nghiệp có vi phạm bảo mật cho thiết bị di động, cho phép nhân viên truy cập vào mạng công ty, đồng thời sử dụng điện thoại cách riêng tư Điều mối đe dọa thường trực cho vấn đề an toàn, an ninh mạng tổ chức, điện thoại bị nhiễm ứng dụng độc hại, bị thất lạc hay đánh cắp làm lộ liệu nhạy cảm  Chia sẻ tập tin Ngày nay, công nghệ đại chia sẻ tập tin điều cần thiết nhiều tổ chức doanh nghiệp Các ứng dụng Google Drive Dropbox cho phép liệu chia sẻ để người khác truy cập Điều đáp ứng 41 nhu cầu thực tế việc cần chia sẻ liệu nhanh chóng, giúp tổ chức doanh nghiệp rút ngắn thời gian làm việc cách đáng kể Tuy nhiên, kèm với rủi ro, nguy liệu lớn Theo thống kê SkyHigh Networks, 33% tổng số nhân viên tổ chức doanh nghiệp khảo sát thừa nhận tải liệu nhạy cảm lưu trữ đám mây Trong đó, theo khảo sát Hubspot, 23% tài liệu tổ chức doanh nghiệp bị chia sẻ công khai mạng mà tổ chức doanh nghiệp (có thể bị hack) Gần việc 68 triệu hồ sơ cá nhân Dropbox bị hack lời cảnh tỉnh giúp tổ chức doanh nghiệp nhận thức việc nhân viên họ chia sẻ liệu dịch vụ đám mây cơng cộng điều cần hạn chế, chí khơng phép không thực cần thiết  Sử dụng nhà cung cấp thứ Một nguy mà tổ chức doanh nghiệp thường ý đến sử dụng dịch vụ mà nhà cung cấp bên thứ ba Các nhà cung cấp dịch vụ thường phép truy cập từ xa vào mạng lưới tổ chức doanh nghiệp lớn Tuy nhiên, nhiều nhà cung cấp số thường sử dụng thông tin đăng nhập giống cho nhiều khách hàng khác Nếu thơng tin bị tổn hại, tin tặc hồn tồn có khả sử dụng chúng để truy cập vào tất liệu tổ chức doanh nghiệp sử dụng dịch vụ nhà cung cấp  Sử dụng phần mềm chưa vá lỗ hổng Rất nhiều hành vi vi phạm liệu bắt nguồn từ việc khai thác lỗ hổng tồn phần mềm mà không tổ chức doanh nghiệp cập nhật vá lỗi Trong thực tế, theo báo cáo HP Cyber năm 2015, có 44% hành vi vi phạm liệu đến từ việc khai thác lỗ hổng có phần mềm có tuổi đời từ 2-4 năm, điều chứng tỏ tổ chức doanh nghiệp sử dụng phiên phần mềm cách khoảng năm hồn tồn có khả bị khai thác lỗ hổng cũ chưa vá 42  Sử dụng phần mềm ngừng phát triển Tương tự việc sử dụng phần mềm chưa vá, sử dụng phần mềm ngừng phát triển mang đến nguy bảo mật liệu  Vấn đề email lừa đảo Mặc dù phần lớn tổ chức doanh nghiệp cảnh báo vấn đề email lừa đảo nguy ln hữu Hãng Cyveillance uớc tính có khoảng 156 triệu email lừa đảo gửi ngày có khoảng 16 triệu số chúng vượt qua lọc thư rác Trong số có 50% truy cập 10% số người mở email lừa đảo nhấp chuột vào đường dẫn độc hại Điều có nghĩa có khoảng 80 nghìn người dùng bị cơng email độc hại lượng người dùng số thuộc tổ chức doanh nghiệp lớn  Mâu thuẫn nội Mâu thuẫn nội nguy lớn gây ảnh hưởng trực tiếp đến việc bảo mật liệu Các cơng nội từ nhân viên có bất mãn với tổ chức doanh nghiệp thù hằn cựu nhân viên bị thơi việc gây nhiều thiệt hại cho tổ chức doanh nghiệp Đặc biệt nhân viên có kiến thức chuyên sâu hệ thống mạng tổ chức doanh nghiệp Do đó, cần hạn chế tối đa tài khoản có nhiều quyền ưu tiên cần gỡ bỏ tài khoản nhân viên rời tổ chức doanh nghiệp sớm  Thiếu kế hoạch triển khai lộ trình bảo mật liệu Trong thời đại công nghệ phát triển nay, việc tổ chức doanh nghiệp lớn bị liệu an tồn liệu khó tránh Do đó, tổ chức doanh nghiệp cần lập kế hoạch triển khai bảo mật liệu lâu dài Các tổ chức doanh nghiệp cần xác định chi tiết người tham gia vào kế hoạch phản ứng cần thiết để xử lý vi phạm liệu Các phản ứng phải kiểm tra đánh giá kỹ để đảm bảo xử lý nhanh cố xảy Việc hạn chế nhiều thiệt hại vi phạm liệu gây 43 Với nhu cầu trao đổi thông tin cực lớn nay, để bảo mật hội thoại, thơng tin bí mật quan trọng ta phải có hướng tiếp cận bảo mật thông tin giấu tin (information hiding), tức kĩ thuật giấu lượng thông tin số vào đối tượng số khác (đối tượng vỏ) đảm bảo tính vơ hình thơng tin giấu nhìn đối tượng vỏ khó xác định thơng tin có giấu hay khơng, đồng thời phục hồi lại thông tin giấu cần Một ưu điểm hướng tiếp cận giấu tin so với mã hóa tiếp cận mơi trường giấu tin, đối phương khó xác định có thơng tin giấu hay khơng Ngồi phương pháp giấu tin thể ưu rõ rệt nhiều ứng dụng phân phối tài liệu số, bảo vệ quyền… 3.1.2 Bài toán đặt Giấu đoạn thông điệp vào ảnh Bitmap 24bit thuật toán LSB Sao cho chất lượng ảnh sau giấu đảm bảo yêu cầu không bị biến đổi để bị phát dễ dàng so với ảnh gốc Và khơi phục lại thông điệp cần 3.1.3 Ý tưởng Sử dụng kỹ thuật LSB để thực việc xác định bit quan trọng ảnh để thay bit thông tin cần giấu Ngôn ngữ cài đặt, môi trường soạn thảo chạy chương trình mơ giấu tin ảnh màu thuật tốn LSB thực ngơn ngữ lập trình C# Để đảm bảo tính an tồn cao cho thơng điệp bí mật trường hợp thuật tốn giấu tin bị cơng Em tích hợp hệ giấu tin mật với phương pháp mã hóa sử dụng tiêu chuẩn mã Affine 44 Sơ đồ mật mã Affine: Cho P = C = Z26 giả sử K = { (a,b)  Z26  Z26 : UCLN(a,26) =1 } Với k = (a,b)  K , ta định nghĩa: Mã hóa : ek(x) = ax +b mod 26 Giải mã: dk(y) = a-1(y-b) mod 26 x,y  Z26 -Trong đó: + P tập hợp hữu hạn rõ (PlainText), gọi khơng gian rõ + C tập hữu hạn mã (Crypto), gọi khơng gian mã + K tập hữu hạn khố hay gọi khơng gian khố Đối với phần tử k K gọi khố (Key) + Đối với k  K có quy tắc mã hóa mã tương ứng  D Mỗi : P  C : C  P hàm mà: với rõ x  P 45 : P  C quy tắc giải 3.2 Các bước giấu tin vào ảnh Hình 3.2 Mơ hình bước giấu tin ảnh + Đầu vào: Ảnh Bitmap 24bit, thơng điệp bí mật cần giấu + Đầu ra: Ảnh mang tin + Các bước thực hiện: Bước 1: Mã hóa(hệ mã Affin) thơng tin cần giấu thu thơng tin sau mã hóa Bước 2: Biến đổi thông tin cần ẩn thành dãy bit, giả sử có dạng: Bước 3: Đọc byte từ file đầu vào giả sử byte có dạng: thay bit xét, giả sử byte có dạng (với k = n) vào vị trí Bước 4: Viết byte vừa thu vào file ảnh đầu Bước 5: Thu ảnh giấu tin 46 , 3.3 Các bước lấy tin từ ảnh Hình 3.3 Mơ hình bước lấy tin từ ảnh + Đầu vào: Ảnh mang tin + Đầu ra: Thông điệp mật + Các bước thực hiện: Bước 1: Đọc byte từ file ảnh cần giải mã giả sử byte có dạng , tách lấy bit , đưa vào mảng bit B Bước 2: Từ mảng B biến đổi thành thông điệp ban đầu Bước 3:Ta tiến hành giải mã (hệ mã Affin) thu thông tin gốc cần lấy 3.4 Kết thực nghiệm 3.4.1 Để xây dựng chương trình, ta cần thiết kế module sau:  Xây dựng class có tên MAHOACRY.cs chứa phương thức public static byte[] Encrypt(byte[] message,string password) Phương thức nhận vào tham số gồm: thông điệp mà ta muốn mã hóa mật để trao đổi tin người gửi người nhận Phương thức biến đối mật thành khóa có độ dài 128 byte thông qua lớp PasswordDeriveBytes Microsoft.NET nhằm tăng tính bảo mật Sau kết hợp trộn thơng điệp khóa tốn tử XOR để tạo mảng byte ta thực đem giấu vào ảnh 47 public static byte[] Decrypt(byte[] message, string password) Phương thức trình giải mã ngược phương thức trên, tham số thứ mảng byte sau trích từ file ảnh cần giải mã, tham số thứ mật để lấy thông tin người nhận nhập vào, với mật này, ta dùng lớp PasswordDeriveBytes Microsoft.NET để tạo khóa 128byte (lưu ý người dùng nhập mật khẩu, sinh khóa lúc ta mã hóa) Dùng phép XOR mảng byte khóa ta nhận thơng điệp gốc ban đầu  Xây dựng class có tên classLSB.CS chứa phương thức public static void Encode(FileStream inStream,byte[]Message,FileStream outStream) Phương thức nhận vào tham số: file ảnh đầu vào,mảng byte cần đưa vào ảnh, ảnh đầu public static byte[] Decode(FileStream inStream, int length) Phương thức nhận vào file ảnh có chứa tin giấu, độ dài thơng điệp chứa Kết trả mảng byte mà ta giấu thủ tục Encode 3.4.2 Một số hình ảnh từ chương trình Demo Kết thực nghiệm cho thấy chất lượng ảnh màu giấu thơng tin khó bị phát hiện, độ an tồn bảo mật thơng tin sau giấu ảnh tăng cao nhờ có sử dụng thuật tốn mã hóa thơng tin trước giấu Hình 3.4 Giao diện chương trình 48  Quá trình giấu tin: Đầu tiên chạy chương trình với ảnh Bitmap 24bit đầu vào (hình bên trái) sau ta nhập thơng điệp cần giấu “Hello Word” với mật giấu tin Để tăng độ an toàn cho kỹ thuật này, ta sử dụng thêm hệ mã Affine (với khóa k1=23 k2=8) để mã hóa thơng điệp trước đem giấu vào bit LSB Sau mã hóa thơng điệp “Hello Word” chuyển thành “NWBBS*USJZ” Ta bắt đầu giấu tin vào ảnh thu ảnh đầu chứa tin hình bên phải Quan sát hai hình ta khơng nhận biết hai hình có điểm khác Hình 3.5 Giao diện giấu tin  Quá trình lấy tin: Đầu tiên chạy chương trình chọn ảnh để lấy thơng tin (ảnh hình trên) sau ta nhập mật để lấy tin Khi nhập mật kích vào nút “Lấy Tin” thơng điệp lên “NWBBS*USJZ” Vì trước gửi, người gửi mã hóa thơng điệp để lấy thông điệp gốc, ta sử dụng thêm phần giải mã hệ mã Affine (với khóa k1=23 k2=8) để giải mã thơng điệp Sau giải mã thu thơng điệp gốc ban đầu “HELLO:WORD” trình lấy tin kết thúc Chúng ta chọn chức khác chức lưu thông điệp để lưu thông điệp mật lại chức đọc thông điệp hệ thống 49 Hình 3.6 Giao diện lấy tin  Ưu điểm nhược điểm kỹ thuật giấu tin LSB ảnh bitmap Ưu điểm: - Kích thước file ảnh không bị thay đổi sau thực việc giấu tin - Dung lượng ảnh sau giấu trước giấu không thay đổi - Chất lượng ảnh sau giấu khơng thay đổi - Kích thước thơng tin cần giấu lớn - Độ an tồn cao - Quá trình xử lý nhanh Nhược điểm: - Kém bền vững trước tác động phép xử lý ảnh - Mật độ giấu tin chưa cao - Khi độ dài thông điệp lớn so với dung lượng ảnh khơng thực 50 KẾT LUẬN Hiện giấu thông tin ảnh phận chiếm tỉ lệ lớn chương trình ứng dụng hệ thống giấu tin đa phương tiện lượng thông tin trao đổi ảnh lớn giấu thơng tin ảnh đóng vai trò quan trọng hầu hết ứng dụng bảo vệ an tồn thơng tin.Chính mà vấn đề nhận quan tâm lớn cá nhân, tổ chức, trường đại học nhiều viện nghiên cứu giới Giấu tin ảnh cách tiếp cận mẻ an toàn bảo mật thông tin, đề tài em đưa thuật toán áp dụng ảnh bitmap 24 bit, cài đặt demo chương trình Tuy nhiên chương trình nhiều hạn chế mật độ giấu tin chưa cao, độ dài thông điệp lớn so với dung lượng ảnh khơng thực Đây sở để tiếp tục phát triển chương trình cho phép thực với định dạng ảnh khác GIF, JPEG… thuật tốn mã hóa khác cho tỉ lệ giấu tin đạt hiệu cao Do thời gian thực đề tài có giới hạn kiến thức em hạn chế nên khơng thể tránh khỏi sai sót Chính vậy, em mong nhận bảo, đóng góp ý kiến thầy cô để báo cáo em hoàn thiện Em xin chân thành cảm ơn ThS.Đồn Thị Bích Ngọc nhiệt tình giúp đỡ em suốt trình em thực đề tài đồ án tốt nghiệp 51 TÀI LIỆU THAM KHẢO Giáo trình “Ngơn ngữ Lập tr.nh C#” biên dịch tổng hợp từ: - Programming C#, Jesse Liberty, O’Reilly - C# in 21 Days, Bradley L.Jones, SAMS - Windows Forms Programming with C#, Erik Brown, Manning Trần Quốc, Giấu tin liệu đa phương tiện , công nghệ bảo mật thông tin Ngô Nhật Nguyên, Lê Trọng Thắng, Xây dựng ứng dựng giấu tin ảnh, Khoa Công Nghệ Thông Tin, Trường Đại Học Lạc Hồng Thạc sỹ Lương Đức Hải, Dùng Kỹ thuật giấu tin ảnh sử dụng bit LSB Yu-Yuan Chen, Hsing-kuang Pan, and Yu-Chee Tseng A secure Data Hiding Scheme for Two- Color Images Taiwan 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 52 ... hay bài, ảnh Sự khác biệt ảnh hưởng lớn kỹ thuật giấu thông tin ảnh với kỹ thuật giấu thông tin video hay audio  Kỹ thuật giấu phụ thuộc vào ảnh Kỹ thuật giấu tin phụ thuộc vào loại ảnh khác... tài Nghiên cứu kỹ thuật giấu tin ảnh: LSB xây dựng chương trình demo em tự tìm hiểu, nghiên cứu qua tài liệu có từ nhà nghiên cứu trước Các nội dung, thuật tốn sử dụng từ cơng trình nghiên cứu. .. yếu kỹ thuật giấu tin 23  Giấu tin ảnh Giấu thông tin ảnh chiếm tỉ lệ lớn chương trình ứng dụng, phần mềm, hệ thống giấu tin đa phương tiện lượng thông tin trao đổi ảnh lớn, giấu thông tin ảnh

Ngày đăng: 02/11/2017, 08:37

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan