Ứng dụng ôtomát hữu hạn nâng cao trong mã hóa và an toàn dữ liệu Ứng dụng ôtomát hữu hạn nâng cao trong mã hóa và an toàn dữ liệu Ứng dụng ôtomát hữu hạn nâng cao trong mã hóa và an toàn dữ liệu Ứng dụng ôtomát hữu hạn nâng cao trong mã hóa và an toàn dữ liệu Ứng dụng ôtomát hữu hạn nâng cao trong mã hóa và an toàn dữ liệu Ứng dụng ôtomát hữu hạn nâng cao trong mã hóa và an toàn dữ liệu Ứng dụng ôtomát hữu hạn nâng cao trong mã hóa và an toàn dữ liệu
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI TRẦN HỒNG HÀ TRẦN HỒNG HÀ TOÁN ỨNG DỤNG ỨNG DỤNG OTOMAT HỮU HẠN NÂNG CAO TRONG MÃ HĨA VÀ AN TỒN DỮ LIỆU LUẬN VĂN THẠC SĨ KHOA HỌC TOÁN ỨNG DỤNG 2014B Hà Nội – 2016 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI - TRẦN HỒNG HÀ ỨNG DỤNG OTOMAT HỮU HẠN NÂNG CAO TRONG MÃ HĨA VÀ AN TỒN DỮ LIỆU Chuyên ngành : TOÁN ỨNG DỤNG Mã số: 60.46.01.12 LUẬN VĂN THẠC SĨ KHOA HỌC TOÁN ỨNG DỤNG NGƯỜI HƯỚNG DẪN KHOA HỌC : TS Vũ Thành Nam Hà Nội – 2016 LỜI CAM ĐOAN Tôi xin cam đoan cơng trình nghiên cứu riêng tơi hướng dẫn khoa học TS.Vũ Thành Nam Các nội dung nghiên cứu,kết đề tài trung thực chưa công bố hình thức trước Những số liệu bảng biểu phục vụ cho việc phân tích, nhận xét, đánh giá tác giả thu thập từ nguồn khác có ghi rõ phần tài liệu tham khảo Ngồi ra, luận văn cịn sử dụng số nhận xét, đánh số liệu tác giả khác, quan tổ chức khác có trích dẫn thích nguồn gốc Nếu phát có gian lận tơi xin hoàn toàn chịu trách nhiệm nội dung luận văn Hà Nội, tháng năm 2016 Tác giả Trần Hồng Hà i LỜI CẢM ƠN Luận văn hồn thành Viện Tốn ứng dụng Tin học-Trường Đại Học Bách Khoa Hà Nội, hướng dẫn trực tiếp TS Vũ Thành Nam Nhân dịp này, tác giả xin bày tỏ đặc biệt lòng kính trọng biết ơn sâu sắc đến Thầy Thầy tận tình bảo định hướng cho em suốt trình thực luận văn Em xin gửi lời cảm ơn chân thành đến ban giám hiệu, tất thầy cô giáo trường viện sau Đại Học Bách Khoa Hà Nội giảng dạy dìu dắt em cho em phương pháp học tập khoa học Cuối cùng, em xin gửi lời cảm ơn tới gia đình, bạn bè người bên cổ vũ tinh thần, tạo điều kiện thuận lợi cho em để em học tập tốt hoàn thiện luận văn Em xin chân thành cảm ơn Hà Nội, tháng năm 2016 Tác giả Trần Hồng Hà ii MỤC LỤC LỜI CAM ĐOAN i LỜI CẢM ƠN .ii LỜI NÓI ĐẦU vi CHƢƠNG CÁC KIẾN THỨC CƠ SỞ 10 1.1 Tổng quan Otomat hữu hạn 10 1.1.1 Khái niệm Otomat hữu hạn 10 1.1.2 Hoạt động Otomat 11 1.1.3 Phân loại Otomat hữu hạn (FA) 1.1.4 Đơn định hóa Otomat 16 1.1.5 Sự tương đương Otomat đơn định Otomat không đơn định 20 1.1.6 Một số hình thức Otomat mở rộng 21 1.1.7 Ứng dụng Otomat an toàn bảo mật 22 Kết chương 24 CHƢƠNG CÁC PHƢƠNG PHÁP PHÁT HIỆN MÃ ĐỘC 25 2.1 Tổng quan mã độc 25 2.1.1 Các loại mã độc 25 2.1.2 Các dạng công mã độc 28 2.1.3 Phần loại mã độc 29 2.2 Phương pháp phát mã độc hại 31 2.2.1 Phần mềm phát mã độc 31 2.2.2 Phần mềm gián điệp 31 2.2.3 Phần mềm quảng cáo (Adware) 32 2.3 Một số phương thức công mã độc 32 i 2.3.1 Mã độc theo dõi trình duyệt (Tracking Cookie) 32 2.3.2 Công cụ công mã độc 33 2.3.3 Công cụ quản trị từ xa 33 2.3.4 Mã độc sử dụng thư điện tử (Phishing) 34 2.3.5 Virus cảnh báo giả (Virus Hoax) 35 2.4 Phân loại phương pháp phát mã độc 35 2.4.1 Phương pháp phát động 35 2.4.2 Phân tích tương tự 37 2.4.3 Phương pháp phát tĩnh 38 2.5 Kỹ thuật đối sánh mẫu 42 2.5.1 Phân loại kỹ thuật đối sánh mẫu 42 2.5.2 Các tiếp cận toán đối sánh mẫu 42 2.6 Một số thuật toán đối sánh mẫu 43 2.6.1 Thuật toán Karp-Rabin 43 2.6.2 Thuật toán Knuth-Morris-Pratt (KMP) 45 2.6.3 Thuật toán Boyer- Moore 49 2.6.4 Thuật toán Wu-Manber 54 Kết chương 56 CHƢƠNG ỨNG DỤNG OTOMAT HỮU HẠN TRONG ĐỐI SÁNH PHÁT HIỆN MÃ ĐỘC 58 3.1 Giới thiệu thuật toán Aho-Corasick 58 3.1.1 Máy đối sánh chuỗi 58 3.1.2 Xây dựng ứng dụng 59 3.1.3 So sánh thuật toán 68 ii 3.2 Định dạng dấu hiệu mã độc 69 3.2.1 Tên mã độc 70 3.2.2 Các quy tắc đặt tên mã độc 71 3.3 Cơ sở liệu dấu hiệu loại bỏ 81 3.4 Xây dựng sở liệu mã độc 82 3.4.1 Xây dựng mẫu định dạng thành phần PE 83 3.4.2 Xây dựng dấu hiệu định dạng mở rộng 84 3.4.3 Xây dựng sở liệu mẫu mã độc 87 3.5 Cấu trúc liệu thuật toán đối sánh Aho-Corasick 89 3.5.1 Đưa mẫu mã độc vào Aho-Corasick 89 3.5.2 Modul đối sánh mẫu sử dụng thuật toán Aho-Corasick 90 Kết chương 92 KẾT LUẬN 93 TÀI LIỆU THAM KHẢO 94 iii DANH MỤC HÌNH VẼ Hình Mơ hình Otomat rời rạc 11 Hình Mơ Hình Hoạt Động Của Otomat Hữu Hạn 12 Hình Máy hữu hạn trạng thái 12 Hình Sơ đồ khối Otomat Hữu Hạn Hình Mơ tả q trình đốn nhận xâu ω Otomat A Hình Đồ thị chuyển trạng thái M ví dụ Hình Đồ thị chuyển trạng thái A1 Hình Q trình đốn nhận xâu α = ababbab A1 Hình 10 Đồ thị chuyển trạng thái A2 Hình 11 Q trình đốn nhận xâu vào β = 1010100 Hình 12 Đồ thị chuyển Otomat A3 10 Hình 13 Đồ thị chuyển Otomat A4 10 Hình 14 Đồ thị chuyển Otomat khơng đơn định A 14 Hình 15 Đồ thị chuyển Otomat A Ví dụ 15 Hình 16 Đồ thị chuyển Otomat 18 Hình 17 Đồ thị chuyển Otomat M 19 Hình 18 Đồ thị chuyển Otomat M‟ ví dụ 20 Hình 19 Phân loại mã độc 28 Hình 20 Các bước hoạt động Logic bomb 30 Hình Mơ tả Phishing 35 Hình 2 Bộ phát mã độc dựa hành vi 36 Hình Kiểu phần mềm mã độc 38 Hình Mã độc đa hình 39 Hình Phần mềm độc hại siêu đa hình 39 Hình Mis-match so sánh vị trí j 50 Hình Good-suffix shift, trường hợp u lại xuất P 51 Hình Good-suffix shift, trường hợp suffix u xuất P 51 Hình Dịch để ký tự băm khớp với văn 52 Hình 10 Dịch b không xuất P 54 iv DANH MỤC BẢNG BIỂU Bảng So sánh thuật toán 69 Bảng Các ký tự wildcard 69 Bảng 3 Các tiền tố đặt tên mã độc 70 Bảng Định dạng dấu hiệu dựa hàm băm 72 Bảng Định dạng dấu hiệu thành phần tệp PE 72 Bảng Định dạng dấu hiệu 73 Bảng Định dạng dấu hiệu mở rộng 74 Bảng Định dạng liệu dựa siêu liệu 77 Bảng Sự khác giá trị băm 85 v hiệu cần loại bỏ, dòng chứa dấu hiệu cần loại bỏ tên dấu hiệu cần loại bỏ Định dạng dấu hiệu có dạng sau: db_name:line_number:signature_name Trong đó: db_name: Tên sở liệu chứa dấu hiệu cần loại bỏ line_number: Dòng chứa dấu hiệu loại bỏ signature_name: Tên dấu hiệu cần loại bỏ 3.4 Xây dựng sở liệu mã độc Cơ sở liệu mã độc ứng dụng Clamav đề tài xây dựng gồm nhiều kiểu khác nhau, với mẫu lấy từ trang http://vxheaven org, phân tích xây dựng thành sở liệu mẫu riêng biệt Việc xây dựng sở liệu thực sử dụng công cụ phân tích mã nguồn, cơng cụ băm nội dung tệp Để thực xác định kiểu đóng gói mã độc, đề tài sử dụng ứng dụng PEiD cho phép xác định xem tệp có đóng gói cơng cụ đóng gói hay khơng có cơng cụ đóng gói từ để giải nén gói cách phù hợp Để thực phân tích mã nguồn đề tài sử dụng công cụ phân tích mã nguồn IDA pro ver cho phép đọc nội dung tệp dạng mã hợp ngữ mã hexa Để thực băm nội dung tệp, đề tài sử dụng công cụ MD5 checksum mã nguồn mở cho phép lấy giá trị băm MD5 tệp Quá trình cách thức xây dựng loại dấu hiệu mã độc công cụ trình bày cụ thể 82 3.4.1 Xây dựng mẫu định dạng thành phần PE Cách đơn giản để tạo dấu hiệu MD5 cho thành phần tệp PE phân tách tệp PE thành phần riêng biệt áp dụng công cụ tạo mã MD5 cho thành phần Ở ta xét ví dụ cách thức tạo dấu hiệu cho mã độc Trojan Bagle-328 Bước Sử dụng ứng dụng kiểm tra đóng gói (ở PEiD) ta thấy tệp bị đóng gói ứng dụng Themida Bước Tiến hành giải mã gói Bước 3: Sử dụng trình dịch ngược mã (ở IDA Pro) để dịch mã ứng dụng PE 83 Bước Lấy mã MD5 phần tệp PE Từ ta thu dấu hiệu mã độc Trojan Bagle-328 237568:ce914ca1bbea795a7021854431663623:Trojan Bagle-328 3.4.2 Xây dựng dấu hiệu định dạng mở rộng Nhận xét: Giá trị băm hoàn toàn khác mã chương trình lệch bit Sự khác giá trị băm tệp khác biểu diễn Hình 84 Bảng Sự khác giá trị băm Do với mã độc sử dụng chế đa hình siêu đa hình, để xác định tồn mã độc sử dụng giá trị băm Ở sở liệu mở rộng xây dựng để xác định mã độc chế cách hiệu Để thu dấu hiệu ta không lấy giá trị băm tệp hay phần mà dùng cách dịch ngược lấy mã opcode trực tiếp đoạn chương trình Quá trình xây dựng dấu hiệu mã độc mở rộng cho mã độc Trojan Exchanger xuất tệp exe exe mô tả sau: Với tệp exe sử dụng chương trình dịch ngược để thu mã hợp ngữ sau Opcode : e81c000000e8e6ffffff81c3c4766402e8dbffffffe846ffffffe2e4 85 Dấu hiệu: Trojan Exchanger:1:*:e81c000000e8e6ffffff81c3c4766402e8dbffffffe846ffffffe2e4 Với tệp exe sử dụng chương trình dịch ngược để thu mã hợp ngữ sau: Opcode: e81c000000e8e6ffffff81c383315a00e8dbffffffe846ffffffe2e4 Dấu hiệu: Trojan Exchanger:1:*:e81c000000e8e6ffffff81c383315a00e8dbffffffe846ffffffe2e4 Tổng hợp lại ta thấy Dấu hiệu cho tệp exe: Trojan Exchanger:1:*:e81c000000e8e6ffffff81c3c4766402e8dbffffffe846ffffffe2e4 Dấu hiệu cho tệp exe: Trojan Exchanger:1:*:e81c000000e8e6ffffff81c383315a00e8dbffffffe846ffffffe2e4 86 Hai dấu hiệu mã độc Trojan Exchanger sai khác bytes (phần in đậm), sử dụng ký tự wildcard để biểu diễn sai khác ta thu Dấu hiệu cho tệp exe exe: Trojan Exchanger:1:*:e81c000000e8e6ffffff81c3{4}e8dbffffffe846ffffffe2e4 Để thu giá trị offset ta thấy: Với tệp exe: EP: 0x4094E0 Giá trị: 0x4095C5 Với tệp exe: EP: 0x406D87 Giá 0x406E6C trị: Với hai trường hợp ta thấy khoảng cách EP Giá trị chuỗi nhị phân là: (0xE5)H = (229)10 Do cuối ta thu được, dấu hiệu mở rộng cho Trojan Exchanger là: Trojan Exchanger:1:EP+229:e81c000000e8e6ffffff81c3{4}e8dbffffffe846ffffffe2e4 3.4.3 Xây dựng sở liệu mẫu mã độc Bằng cách xây dựng định dạng mẫu mã độc trên, đề tài xây dựng sở liệu mã độc gồm kiểu bản: kiểu dấu hiệu mẫu sở, kiểu dấu hiệu 87 dựa giá trị băm, kiểu dấu hiệu cho thành phần tệp PE, kiểu dấu hiệu mở rộng, kiểu dấu hiệu dựa siêu tệp nén liệu, kiểu định dạng bổ trợ cho hệ thống hoạt động linh hoạt hơn: dấu hiệu phishing loại bổ sung như: dấu hiệu nghi ngờ, danh sách whitelist dấu hiệu, tệp người dùng định bỏ qua ứng dụng Khi Các mã độc thực tế đa dạng, với kiểu mục tiêu chế lây nhiễm, hoạt động phát tán khác nhau, việc xây dựng nhiều định dạng mẫu khác giúp cho trình xử lý qt mã độc xác có tốc độ cao Chẳng hạn với mã độc tồn đơn lẻ worm, hay mã độc gắn liền với tệp xác định gửi hàng loạt cho người dùng có cấu trúc giống hệt với phiên tồn việc sử dụng giá trị băm làm đại diện cho mẫu để đối sánh giúp tăng tốc độ hoạt động đáng kể Nhưng loại khác, chẳng hạn mã độc sử dụng chế đa hình, biến đổi thường xuyên sau phiên lây nhiễm việc sử dụng giá trị băm để làm dấu hiệu đối sánh điều khơng thể Chính việc xây dựng định dạng mẫu khác cần thiết giúp cho hoạt động hệ thống tốt Tuy nhiên, với cách xây dựng với nhiều định dạng gặp phải trở ngại khó khăn trình truyền lưu trữ Các mã độc phát triển đời với tốc độ ngày nhanh với ứng dụng antivirus sử dụng chế đối sánh tĩnh (thậm chí với chế phát nào) việc cập nhật nâng cấp bổ sung sở liệu điều vô cần thiết Chính vậy, việc sử dụng, quản lý, lưu trữ truyền tải sở liệu trình nâng cấp bổ sung cần phải thực thi cách có hiệu Để đáp ứng điều đề tài sử dụng giải pháp đơn giản tiến hành đóng gói chung định dạng dấu hiệu dạng định dạng để dễ dàng việc quản lý, truyền tải lưu trữ trình sử dụng bảo trì hệ thống Đề tài sử dụng phương pháp đóng gói tệp định dạng thành định dạng chung để dễ dàng quản lý, kiểm thử đề tài thêm vào phần tiêu đề quy ước 512 bytes, chứa thông tin phiên bản, giá trị băm MD5 tệp, chữ ký số, ngày tạo, số lượng dấu hiệu chứa tệp Và nhằm mục 88 đích dễ sử dụng tệp dấu hiệu dịnh dạng chia lưu trữ thành khối có độ dài 512 bytes, khối không đủ 512 bytes bổ sung thêm byte đệm cho đủ 512 bytes 3.5 Cấu trúc liệu thuật toán đối sánh Aho-Corasick Mỗi nút đối sánh có cấu trúc sau: struct kma_ac_node { struct kma_ac_patt *list; struct kma_ac_node **trans, *fail; uint8_t leaf, final; }; Trong : list danh sách mẫu mẫu chứa ký tự wildcard phân chia thành wildcard, trans danh sách hàm chuyển, phần tử nút trạng thái mà Otomat chuyển tới gặp ký tự - fail trạng thái hàm failure - leaf nút lá, đánh dấu kết thúc trạng thái - final: đánh dấu kết thúc phát mẫu đoạn mã 3.5.1 Đƣa mẫu mã độc vào Aho-Corasick Thuật toán Aho-Corasick hoạt động thông qua việc xây dựng vận hành Otomat hữu hạn Otomat xây dựng từ sở liệu mẫu mơ tả sơ đồ tổng quát sau: 89 BEGIN END Xuất phát từ nút gốc YES Đọc ký tự vào mẫu Xây dựng hàm output Final NO YES chuyển trạng thái Chuyển NO Tạo nút trạng thái Xây dựng hàm failure 3.5.2 Modul đối sánh mẫu sử dụng thuật toán Aho-Corasick Đầu vào: Một liệu buffer, Otomat hữu hạn A-C Đầu ra: Cờ trạng thái kết luận đoạn liệu buffer có chứa mã độc hay không tên mã độc phát lây nhiễm Hoạt động Otomat dựa chu trình : 90 Chu trình đầu tiên: Bắt đầu từ trạng thái 0, đọc ký tự văn chuyển sang trạng thái ký tự trạng thái thời Chu trình thứ hai: Đọc ký tự thứ hai văn chuyển sang trạng thái dựa ký tự trạng thái thời Lần lượt làm chu trình cuối cùng: đọc ký tự cuối văn bản, chuyển đến trạng thái cuối ngừng hoạt động Khi đến trạng thái liên kết với tập khác rỗng P, in mẫu tập Đó mẫu xuất văn END BEGIN Kết luận khơng có mã độc YES Duyệt buffer theo byte END NO YES YES leaf||tran=null mã độc final NO NO Gọi hàm Xác định Gọi hàm failure chuyển Gọi hàm Output 91 Nhận xét : Thuật tốn Aho – Corasick có ưu điểm tốc độ duyệt nhanh, tối ưu cho việc quét nhiều mẫu đồng thời đặc biệt thích hợp sử dụng cho dấu hiệu có chứa ký tự wildcard Tuy nhiên địi hỏi q trình tiền xử lý phức tạp (quá trình tạo Otomat hữu hạn) có cấu trúc liệu phức tạp (dạng cây) kích thước cấu trúc liệu chứa hệ thống lớn Kết chƣơng Chương nghiên cứu sâu thuật toán Aho-Corasick, xây dựng ứng dụng cho phép phát mã độc dựa đối sánh mẫu thuật toán Aho- Corasick xây dựng dựa cấu trúc Otomat 92 KẾT LUẬN Qua trình nghiên cứu luận văn thu số kết sau: Về mặt lý thuyết: - Trình bày tổng quan Otomat hữu hạn - Trình bày khái niệm, kỹ thuật phương pháp cơng mã độc, hiểu trình bày chi tiết kỹ thuật phân loại dựa đối sánh mẫu, thuật tốn đối sánh mẫu tìm hiểu ưu nhược điểm thuật toán đối sánh mẫu Về mặt thực nghiệm: - Luận văn định nghĩa toán phát mã độc dựa kỹ thuật đối sánh mẫu - Xây dựng ứng dụng cho phép phát mã độc dựa đối sánh mẫu thuật toán Aho- Corasick xây dựng dựa cấu trúc Otomat thực nghiệm đánh giá độ xác thời gian thuật toán Aho-Corasick áp dung Trong tương lai, thân tiếp tục phát triển luận văn theo hướng cài đặt chương trình cho sản phẩm phần mềm phát mã độc thật 93 TÀI LIỆU THAM KHẢO A Tài Liệu Tiếng Việt [1] Nguyễn Văn Ba (2006), Lý thuyết ngơn ngữ tính tốn, NXB Đại học Quốc gia Hà Nội [2] Phan Đình Diệu (1977), Lý thuyết ơtơmát thuật tốn, Nhà xuất Đại học Trung học Chuyên nghiệp [3] Nguyễn Văn Định (2012) “Giáo trình Otomat Ngơn ngữ hình thức” NXB Đại học Nông Nghiệp [4] Nguyễn Hữu Điển (2006), Một số vấn đề thuật toán, NXB Giáo dục [5] Nguyễn Đình Hân, Đặng Quyết Thắng, Hồ Ngọc Vinh, Phan Trung Huy (2012) “Độ không nhập nhằng ngôn ngữ ứng dụng” Tạp chí Cơng nghệ 102 Thơng tin Truyền thơng, Các cơng trình nghiên cứu phát triển ứng dụng Công nghệ thông tin Truyền thông V-1, 7(27), tr 82-89 [6] Nguyễn Đức Nghĩa, Nguyễn Tô Thành (1997), Toán rời rạc, Nhà xuất Giáo dục, Hà Nội [7] Đặng Huy Ruận (2002), Lý thuyết ngôn ngữ hình thức Otomat, Nhà xuất Đại học Quốc Gia Hà Nội [8] Salomaa A (1992), Nhập môn tin học lý thuyết tính tốn Otomat (Nguyễn Xuân My, Phạm Trà Ân dịch), Nhà xuất Khoa học Kỹ thuật, Hà Nội 94 B Tài Liệu Tiếng Anh Aho, A V and Corasick (1975), M J, “Efficient string matching: An aid [9] to bibliographic search”, Communications of the ACM [10] Aho A V., Sethi R., Ullman J D (1986), Compilers: principles, techniques, and tools, Addison Wesley [11] Boyer, R S, and Moore, J S ( no 10, 1977 ) “A fast string searching algorithm”, Communications of the Association for Computing Machinery (ACM), Vol 20, [12] Chrochemore M., Hancart C (1997), “Automata for matching patterns”, Handbook of formal languages, Springer Verlag, 2, pp 399–462 [13] Epstein D B A., Paterson M S., Cannon J W., Holt D F., Levy S V., Thurston W P (1992), Word processing in groups, Jones and Bartlett [14] Friedl J E F (2002), Mastering regular expressions, Second Edition, O‟Reilly Media [15] Hopcroft J and Ullman J ( 1969 ), Formal languages and their relation to automata, Addison Wesley, London, [16] Johnsonbaugh R ( 1992), Discrete Mathematics, Macmillan Publishing Company, Inc [17] John E Hopcroft, Jefferey D Ullman (1979), Introduction to Automata Theory,Languages, and Computation, ISBN 0-201-02988-x, Addison-Wesley Publishing Company, Inc [18] Karp, R M, and Rabin, M O Vol 31, no 2, 1987, “Efficient randomized pattern-matching algorithms”, IBM Journal of Research and Development, [19] Kleene S C (1956), “Representation of events in nerve nets and finite automata”, Automata studies, Princeton University Press, pp 3–42 [20] Lind D., Marcus B (1995), An Introduction to Symbolic dynamics and coding, Cambridge University Press 95 [21] McCulloch W S., Pitts W H (1943), “A logical calculus of the ideas immanent in nervous activity”, Bulletin of Mathematical Biophysics, 5, pp 115–133 [22] Mishra K and Chandrasekaran(2001), Theory of Computer Science (Automata, Languages and Computation), Prentice Hall [23] Restivo A (1989), “Codes and automata”, Formal Properties of Finite Automata and Applications, Lecture Notes in Computer Science, [24] Rosen K H 1994, Discrete Mathematics and Its Application, Mc Graw- Hill, NY [25] Turing A M (1936), “On computable numbers with an application to the Entscheidungsproblem”, Proceedings of the London Mathematical Society, 2(42), pp 230–265 [26] Petzold C (1999), Codes, Microsoft Press [27] Roche E., Schabes Y (1997), Finite-state language processing, The MIT Press [28] Robert Sedgewick (1994), Cẩm nang thuật tốn, Tập 1: Các thuật tốn thơng dụng, NXB Khoa học Kỹ thuật 96 ...BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI - TRẦN HỒNG HÀ ỨNG DỤNG OTOMAT HỮU HẠN NÂNG CAO TRONG MÃ HĨA VÀ AN TỒN DỮ LIỆU Chuyên ngành : TOÁN ỨNG DỤNG Mã số: 60.46.01.12... lại số khái niệm tổng quan kiến thức có liên quan 1.1 Tổng quan Otomat hữu hạn Một Otomat hữu hạn [17] mơ hình tính tốn thực hữu hạn Mọi liên quan đến có kích thước hữu hạn cố định mở rộng suốt... mật mã Các kiến thức sở sử dụng chương luận văn Chƣơng – Các phƣơng pháp phát mã độc: Chương trình bày tổng quan mã độc chi tiết phương pháp kỹ thuật phát mã độc Chƣơng - Ứng dụng Otomat hữu hạn