Nghiên cứu một số kỹ thuật phát hiện xâm nhập mạng bằng phương pháp so khớp

79 224 0
Nghiên cứu một số kỹ thuật phát hiện xâm nhập mạng bằng phương pháp so khớp

Đ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

i ĐẠI HỌC THÁI NGUYÊN TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG _  TRầN THANH HÒA NGHIÊN CỨU MỘT SỐ KỸ THUẬT PHÁT HIỆN XÂM NHẬP MẠNG BẰNG PHƢƠNG PHÁP SO KHỚP LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH THÁI NGUYÊN - 2016 Số hóa Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn ii ĐẠI HỌC THÁI NGUYÊN TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG _  TRầN THANH HÒA NGHIÊN CỨU MỘT SỐ KỸ THUẬT PHÁT HIỆN XÂM NHẬP MẠNG BẰNG PHƢƠNG PHÁP SO KHỚP Chuyên ngành: Khoa học máy tính Mã số: 60 48 0101 LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH Người hướng dẫn khoa học: TS Nguyễn Ngọc Cƣơng THÁI NGUYÊN - 2016 Số hóa Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn iii LỜI CAM ĐOAN Học viên xin cam đoan luận văn “Nghiên cứu số kỹ thuật phát xâm nhập mạng phƣơng pháp so khớp” cơng trình nghiên cứu cá nhân học viên tìm hiểu, nghiên cứu hướng dẫn TS Nguyễn Ngọc Cương Các kết hoàn toàn trung thực, toàn nội dung nghiên cứu luận văn, vấn đề trình bày tìm hiểu nghiên cứu cá nhân học viên trích dẫn từ nguồn tài liệu trích dẫn thích đầy đủ TÁC GIẢ LUẬN VĂN Trần Thanh Hòa Số hóa Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn iv LỜI CẢM ƠN Học viên xin bày tỏ lời cảm ơn chân thành tới tập thể thầy cô giáo Viện công nghệ thông tin, thầy cô giáo Trường Đại học Công nghệ thông tin truyền thông - Đại học Thái Nguyên mang lại cho học viên kiến thức vô quý giá bổ ích suốt q trình học tập chương trình cao học trường Đặc biệt học viên xin bày tỏ lòng biết ơn sâu sắc tới thầy giáo TS.Nguyễn Ngọc Cương - Học viện an ninh định hướng khoa học đưa góp ý, gợi ý, chỉnh sửa quý báu, quan tâm, tạo điều kiện thuận lợi q trình nghiên cứu hồn thành luận văn Cuối cùng, học viên xin chân thành cảm ơn bạn bè đồng nghiệp, gia đình người thân quan tâm, giúp đỡ chia sẻ với học viên suốt trình học tập Do thời gian kiến thức có hạn nên luận văn khơng tránh khỏi thiếu sót định Học viên mong nhận góp ý quý báu thầy cô bạn Thái Nguyên, ngày 10 tháng năm 2016 HỌC VIÊN Trần Thanh Hòa Số hóa Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn v DANH MỤC CÁC HÌNH VẼ Hình 1.1 Hệ thống chống xâm nhập IDS Hình 1.2 Mơ hình Networt based IDS – NIDS Hình 1.3 Mơ hình Host based IDS – HIDS 10 Hình 1.4 Các thành phần hệ thống phát xâm nhập 14 Hình 2.1 Xây dựng hàm Goto 41 Hình 2.2 Xây dựng hàm Failure 42 Hình 2.3 Xây dựng hàm Output 42 Hình 3.1 Mơ hình hệ thống phát xâm nhập mạng 45 Hình 3.2 Các thành phần Snort 48 Hình 3.3 Lệnh Snort –W xem thơng số card mạng 55 Hình 3.4 Mơ hình mạng trung tâm GDTX Định Hóa 56 Hình 3.5 Mơ hình giải pháp kết hợp IDS 57 Hình 3.6 Gói tin mã hóa 59 Số hóa Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn MỤC LỤC LỜI CAM ĐOAN i LỜI CẢM ƠN ii DANH MỤC CÁC HÌNH VẼ iii MỞ ĐẦU Lý chọn đề tài Hướng nghiên cứu luận văn Đối tượng phạm vi nghiên cứu Những nội dung nghiên cứu 5 Phương pháp nghiên cứu 1.1.1 Định nghĩa 1.1.1.1 Phát xâm nhập 1.1.1.2 Hệ thống phát xâm nhập 1.1.2 Tính IDS 1.1.3 Phân loại IDS 1.1.3.1 Network based IDS – NIDS 1.1.3.2 Host based IDS – HIDS 10 1.1.4 Cơ chế hoạt động hệ thống IDS 11 1.1.4.1 Phát lạm dụng 12 1.1.4.2 Phát bất thường 13 1.1.5 Ưu điểm hạn chế IDS 13 1.1.5.1 Ưu điểm 13 1.1.5.2 Hạn chế 13 1.2 Các thành phần hệ thống phát xâm nhập 13 Số hóa Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn 1.3 Phân biệt hệ thống IDS 14 1.4 Một số kỹ thuật phát xâm nhập mạng 15 1.4.1 Phương pháp tiếp cận dựa xác suất thống kê 15 1.4.2 Phương pháp tiếp tiếp cận dựa trạng thái 15 1.4.3 Phương pháp tiếp cận dựa hệ chuyên gia 16 1.4.4 Phương pháp tiếp cận dựa khai phá liệu 17 1.4.5 Hệ thống phát xâm nhập dựa mạng nơ-ron 17 1.4.6 Tiếp cận dựa so khớp mẫu 19 1.5 Kết chương 19 2.1 Bài toán so khớp mẫu 20 2.1.1 So khớp mẫu gì? 20 2.1.2 Lịch sử phát triển 22 2.1.3 Các bước xử lý 22 2.1.4 Các cách tiếp cận 22 2.1.5 Độ phức tạp tính tốn 23 2.1.6 Ứng dụng so khớp mẫu 24 2.2 Các thuật toán so khớp phát xâm nhập mạng 24 2.2.1 Thuật toán Brute Force 24 2.2.2 Các thuật toán so khớp đơn mẫu phát xâm nhập mạng 28 2.2.2.1 Thuật toán Knuth-Morris-Pratt (KMP) 28 2.2.2.2 Thuật toán Boyer-Moore Horspool (BMH) 32 2.2.2.3 Thuật toán Karp-Rabin 34 2.2.3 Đánh giá ưu, nhược điểm thuật toán so khớp đơn mẫu 38 Số hóa Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn 2.2.3.1 Ưu điểm 39 2.2.3.2 Nhược điểm 40 2.2.4 Các thuật toán so khớp đa mẫu phát xâm nhập mạng 40 2.2.4.1 Thuật toán Aho-Corasick (AC) [8] 40 2.2.4.2 Thuật toán Commentz-Walter (CW) 43 2.3 Kết chương 44 3.1 Mơ hình phát xâm nhập mạng dựa so khớp mẫu 45 3.1.1 Thành phần thu nhập gói tin 45 3.1.2 Thành phần phân tích gói tin 46 3.1.3 Thành phần phản hồi 46 3.2 Hệ thống phát xâm nhập mạng Snort 47 3.2.1 Giới thiệu 47 3.2.2 Các thành phần Snort 48 3.3 Hệ thống luật 52 3.3.1 Định nghĩa 52 3.3.2 Các thành phần tập luật 52 3.3.2.1 Rule header 52 3.3.3.2 Rule options 52 3.4 Cài đặt cấu hình Snort 53 3.5 Mơ hình triển khai 55 3.5.1 Mơ hình toán: 55 3.5.1.1 Đặt giải pháp 56 3.5.1.2 Yêu cầu 57 Số hóa Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn 3.6 Thực 57 3.6.1 Đầu vào toán 57 3.6.2 Đầu toán 58 3.6.3 Thử nghiệm đánh giá kết 58 3.6.3.1 Tập liệu thử nghiệm 58 3.6.3.2 Tiền xử lý liệu 59 3.6.3.3 Dữ liệu lựa chọn 59 3.6.3.4 Thiết kế thử nghiệm 60 3.6.3.5 Kết thử nghiệm 60 3.6.3.6 Nhận xét kết 60 3.6.4 Sử dụng chương trình so khớp đa mẫu Aho-Corasick vào Snort 61 3.6.4.1 Cài đặt chương trình so khớp đa mẫu Aho – Corasick 61 3.6.4.2 Cài đặt thuật toán so khớp đa mẫu Aho Corasick vào Snort 61 3.7 Kết chương 63 KẾT LUẬN 634 TÀI LIỆU THAM KHẢO 635 PHỤ LỤC 637 Số hóa Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn MỞ ĐẦU Lý chọn đề tài Mạng Internet từ cuối kỷ XX mở sóng xu hướng phát triển xã hội - thời đại công nghệ thông tin truyền thông, dịch vụ trực tuyến phát triển mạnh mẽ thương mại điện tử, toán trực tuyến, kinh doanh, tài chính, cơng nghiệp, an ninh, y tế,… Người sử dụng nhờ mạng Internet truy cập, khai thác chia sẻ thông tin lúc nơi, nhiên Internet không gian rộng mở cho kẻ xấu lợi dụng thực vụ công, truy cập trái phép vào hệ thống máy tính mạng người dùng Phát xâm nhập mạng thành phần quan trọng hệ thống giải pháp đảm bảo an ninh cho mạng đại Hệ thống phát xâm nhập mạng IDS (Intrusion Detection System) có nhiệm vụ phân tích thơng tin, theo dõi, phát ngăn chặn xâm nhập trái phép tài nguyên làm tổn hại đến tính bảo mật, tính tồn vẹn tính sẵn sàng hệ thống Hiện nay, việc phát triển hệ thống IDS có nhiều phương pháp để phát xâm nhập vào hệ thống như: - Sử dụng phương pháp Bayes với ý tưởng tính tốn xác suất Bayes để dịch chuyển ngược thời gian tìm nguyên nhân kiện, phù hợp cho việc tìm kiếm lý cho bất thường đặc biệt hành vi mạng - Sử dụng mạng nơ ron nhân tạo mơ hình Kohonen’s Self Organizing features Map (SOM) sử dụng máy học vectơ Mục tiêu việc sử dụng mạng nơ ron nhân tạo cung cấp phương pháp phân Số hóa Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn 58 350 byte Để công thông qua giao thức HTTP kẻ công thường phải chèn thêm mã lệnh thực thi trình duyệt nạn nhân, mã lệnh đoạn mã, tệp tin, câu lệnh truy vấn SQL …, request giao thức có thay đổi nhiều kích thước, thơng thường kích thước lớn 350 byte mẫu bất thường có khả xuất cơng Các công từ chối dịch vụ dạng như: Ping of Death, Teardrop, Aland Attack, Winnuke, Smurf Attack, UDP/ICMP Flooding TCP/SYN, Flooding Attack DNS Các dạng chủ yếu kẻ cơng gửi số lượng lớn lượt Ping, gói tin … để làm tải máy chủ gây lỗi từ chối dịch vụ Các công từ nhiều mạng lưới khác vào “LocalHost” hay nói cách khác có lượng lớn Request từ nhiều địa mạng khác gửi tới “LocalHost” cửa sổ thời gian ngắn bất thường, ngưỡng số request thay đổi tùy thuộc vào điều kiện kết nối mạng mức độ cần bảo vên an toàn 3.6.2 Đầu toán Kết đầu thuật toán hiển thị mẫu có trùng khớp với mẫu tập mẫu hay không để kết luận hành vi có phải xâm nhập trái phép vào hệ thống hay không Giải nén file snortrules-snapshot-CURRENT.tar copy tất nội dung vào thư mục cài đặt Snort: C:\Snort, chọn Yes to All để copy 3.6.3 Thử nghiệm đánh giá kết Dựa mô hình xây dựng phát đột nhập trên, phần thực số thử nghiệm tập liệu thực để đánh giá khả phát đột nhập chúng khía cạnh thời gian thực thuật toán 3.6.3.1 Tập liệu thử nghiệm Phƣơng pháp tạo tập liệu thử nghiệm Số hóa Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn 59 Sử dụng Snort chế độ Packet logger mode để yêu cầu Snort tập hợp tất gói tin thấy mạng đưa vào file log theo cấu trúc phân tầng File log gồm thơng tin gói tin Snort bắt mạng File log mã hóa Hình 3.6 Gói tin mã hóa 3.6.3.2 Tiền xử lý liệu Tập liệu mẫu bao gồm ghi gói tin cơng đột nhập mạng nói Tập liệu gói tin chọn từ ghi chi tiết gói tin bắt mạng 3.6.3.3 Dữ liệu lựa chọn Dữ liệu thử nghiệm gồm phần: Với CSDL tập mẫu, sử dụng tập mẫu gồm có kích thước tương ứng (mỗi dòng tập mẫu tương ứng gói tin bắt mạng): 5000 gói tin Với CSDL tập gói tin kiểm tra, thiết kế ứng với loại tập mẫu khác (để thể nhiều trường hợp nhất): Với tập mẫu 5000 gói tin: tập gói tin kiểm tra tương ứng: 5000 gói tin, 3000 gói tin, 1500 gói tin Số hóa Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn 60 3.6.3.4 Thiết kế thử nghiệm Luận văn thực kiểm tra đánh giá hiệu với thuật toán: Thuật toán khai Thuật toán BMH Thuật toán RK Thuật toán Aho - Corasick Mỗi thuật toán thử nghiệm với sở liệu lựa chọn 3.6.3.5 Kết thử nghiệm Chạy chương trình với trường hợp nêu Cấu hình máy tính sử dụng: Bộ xử lý: Intel(R) Core(TM) i3-31100M CPU @ 2.40GHz ~2.3GHz Bộ nhớ Ram: 2.00 GB Loại hệ thống: hệ điều hành 32-bit Hệ điều hành: Windows Ultimate 32-bit Với tập liệu thử nghiệm tập mẫu đưa vào, ta thu kết tổng gói tin đột nhập (ta xử lý gói tin cho kết gói), thời gian thực thuật toán Luận văn xem xét thời gian xử lý tồn thuật tốn Kết thu cho sau: Tập gói tin Tập gói tin mẫu kiểm tra Brute Force (giây) BMH (giây) RK (giây) 5000 5000 909.0 1685.7 950.8 Aho Corasick (giây) 58.4 5000 3000 653.1 1160.5 538.0 26.6 5000 1500 221.1 653.1 277.5 18.0 3.6.3.6 Nhận xét kết Với áp dụng so khớp mẫu phát đột nhập, thuật tốn khai, RK khơng phải q tồi hai thuật tốn có kết tương tự Số hóa Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn 61 Thuật toán BMH không thực hiệu việc so khớp mẫu phát đột nhập độ dài mẫu văn lớn, tốn thời gian tiền xử lý Với mẫu văn dài thuật toán Aho Corasick tỏ thuật toán thực có hiệu cao 3.6.4 Sử dụng chương trình so khớp đa mẫu Aho-Corasick vào Snort 3.6.4.1 Cài đặt chương trình so khớp đa mẫu Aho – Corasick Chương trình viết phần mềm Python 2.7 win32 Python ngơn ngữ có hình thức sáng sủa, cấu trúc rõ ràng, thuận tiện cho người học lập trình Cấu trúc Python cho phép người sử dụng viết mã lệnh với số lần gõ phím tối thiểu 3.6.4.2 Cài đặt thuật toán so khớp đa mẫu Aho Corasick vào Snort Với ưu điểm vượt trội việc đối sánh mẫu data lớn, thuật toán Aho Corasick đưa vào hệ thống Snort để tăng hiệu cho việc so khớp mẫu Cài đặt thuật toán Aho Corasick vào Snort thực theo bước sau: Bước 1: Áp dụng thuật toán vào phần source code Snort Xây dựng thư viện treenodes.h để tạo tree, hàm Goto, hàm Failure Gọi thư viện #include "treenodes.h" file detect.h, detection_options.c,… Bước 2: Thay đổi cấu hình (file snort.config) Snort sau: - config detection: search-method ac-split search-optimize maxpattern-len 20 - search-method sử dụng ac-split: sử dụng thuật toán Aho-Corasick đầy đủ với nhóm cổng riêng biệt (bộ nhớ thấp, hiệu cao) Số hóa Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn 62 - search-optimize: tối ưu hóa nhớ nhanh chóng sử dụng tìm kiếm Aho Corasick cách chia tự động kích thước trạng thái dựa vào tổng trạng thái - max-pattern-len : tối ưu hóa nhớ xác định độ dài tối đa mẫu u áp dụng đối sánh mẫu nhanh Với mẫu có độ dài lớn cắt ngắn chiều dài trước chèn vào đối sánh mẫu Khi nội dung dài cắt ngắn mà khơng làm tính Bước 3: Tạo rule cho Snort Vì luận văn khơng sâu tìm hiểu việc tạo rule Snort nên ví dụ luận văn tạo rules đơn giản, dễ cài đặt Ví dụ 1: rule luận văn sử dụng lưu file demo.rules đặt đường dẫn (C:\Snort\rules): alert tcp any any -> 192.168.1.100 any (msg:"Co nguoi truy cap";sid:25358;) alert icmp any any -> 192.168.1.100 any (msg:"Co nguoi dang ping";sid:25310;) Khi khởi động Snort, thử ping đến địa www.google.com thu kết file alert.ids Ví dụ 2: rule luận văn sử dụng lưu file demo1.rules đặt đường dẫn (C:\Snort\rules): alert TCP 42.112.9.40 any -> 192.168.0.102 any (msg:"Co nguoi dang ping"; sid:25312;) alert UDP any any -> 192.168.0.102 any (msg:"Co goi tin UDP";sid:25310;) Ví dụ 3: rule luận văn sử dụng lưu file demo2.rules đặt đường dẫn (C:\Snort\rules): alert TCP 192.168.1.100 any -> any any (content: "bom"; msg: “Cảnh báo có nguy hiểm”; sid: 25311;) Số hóa Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn 63 3.7 Kết chƣơng Chương đưa mơ hình phát xâm nhập mạng ứng dụng so khớp chuỗi bao gồm việc xây dựng mơ hình cài đặt thử nghiệm Các thuật toán so khớp chuỗi thử nghiệm với tập mẫu tập gói tin kiểm tra có kích thước khác để đánh giá hiệu Kết cho thấy thuật toán so khớp chuỗi đa mẫu Aho-Corasick cho kết tốt nhất, đặc biệt với tập mẫu tập gói tin kiểm tra có kích thước lớn Luận văn tiến hành tích hợp thử nghiệm thành cơng thuật tốn so khớp chuỗi đa mẫu Aho-Corasick vào hệ thống phát đột nhập Snort Số hóa Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn 64 KẾT LUẬN Những phần nắm đƣợc Luận văn cho ta thấy rõ quan trọng hệ thống phát chống xâm nhập trái phép công nghệ thông tin phát triển Hệ thống phát xâm nhập mạng (IDS) xuất sau đóng vai trò khơng phần quan trọng IDS giúp khám phá, phân tích nguy cơng Từ vạch phương án phòng chống, góc độ tìm thủ phạm gây công Nắm bắt khái niệm hệ thống phát xâm nhập Triển khai hệ thống phát xâm nhập phổ biến Snort Thực thi Snort chế độ như: Sniffer Packet, Packet Logger, NIDS… Tích hợp thuật tốn so khớp đa mẫu Aho – Corasick vào Snort Những chƣa đạt đƣợc Đề tài nhiều thiếu sót Phần lý thuyết tổng quát lược tóm tắt chưa sâu nghiên cứu vấn đề Phần thử nghiệm tìm hiểu chế độ đơn giản Sniffer Packet, Packet Logger, NIDS Về vấn đề viết rule cho Snort để xử lý hệ thống luật viết có phần đơn giản Hƣớng mở rộng Sau nắm hệ thống phát xâm nhập (IDS), ta thực nghiên cứu hệ thống phát ngăn chặn xâm nhập (IPS) triển khai cho hệ thống mạng tổ chức Nghiên cứu sử dụng Snort để phát hình thức cơng phát triển lên phương pháp phòng chống tiên tiến tương lai khơng xa Số hóa Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn 65 TÀI LIỆU THAM KHẢO [1] Lê Đắc Nhường, Nguyễn Gia Như, Lê Đăng Nguyên, Lê Trọng Vĩnh Song song hóa thuật tốn so khớp mẫu QuickSearch NIDS sử dụng mơ hình chia sẻ nhớ OpenMP Pthreads Tạp chí Đại học Quốc gia Hà Nội, tháng 12/2012 Vol 28(4), Tr 255 – 263 [2] Lê Đắc Nhường, Lê Đăng Nguyên, Trịnh Thị Thùy Giang, Lê Trọng Vĩnh Phân tích, đánh giá hiệu thuật toán so khớp mẫu dùng an ninh mạng, Hội thảo vấn đề chọn lọc CNTT & TT lần thứ 14, Tr.451463, Cần Thơ 7-8/10/2011 NXB Khoa học kỹ thuật Hà Nội 2012 [3] Likarish, Eunjin Jung, Dunbar D., and Hansen T.E., “B-APT: Bayesian Anti-Phishing Toolbar”, In the Proceeding of 16th International Conference on Communication 2008 (ICC’08), pp 17451749, 2008 [4] Vinnarasi Tharania I, R Sangareswari, and M Saleembabu, “Web Phishing Detection In Machine Learning Using Heuristic Image Based Method”, International Journal of Engineering Research and Applications, Vol.2, Issue 5, pp.1589-1593, 2012 [5] Kranti W., Supriya A And N V Puri, “ An Efficient Approach to Detecting Phishing A Web Using K-Means and Naive- Bayes Algoriths”, International Journal of Research in Advent Technology, Vol.2, No.3, pp.106-111, 2014 [6] Jangjong Fan, Kehyih Su, “An Efficient Algorith for Matching Multiple Patterns”, IEEE Transactions on Knowledge and Data Engineering, vol 5, no 2, pp 339-351, 1993 [7] Le Dang Nguyen, Dac Nhuong Le, Tran Thi Huong, Le Trong Vinh, A New Genetic Algorithm Applied to Inexact Graph Matching Số hóa Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn 66 International Journal of Computer Science and Telecommunications, Vol.5(5), pp.1-7, 2014 [8] Alfred V Aho and Margraet J Corasick Efficient string mathching: an aid to bibliographic search Commun ACM 18, 6(June 1975), pages 333-340 [9] Boyer, R.S, and Moore, J.S “A fast string searching algorithm”, Communications of the Association for Computing Machinery (ACM), Vol 20, no 10, 1977 [10] http://snort.org/ Số hóa Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn 67 PHỤ LỤC Thuật toán Brute_Force Void Brute_Force (char *x, int m, char y, int n) { /* Searching */ For (int j = ; j = m ) OUTPUT (j); } } } Thuật toán Knuth - Morris – Pratt (KMP) a Thuật tốn tính mảng Next: int* InitNext(char *p, int m) { int i,j,*kmpNext; i = -1; j = 0; *kmpNext = -1; while (j < m ) { while (i > -1)&&( p[i] != p[j]) i = *(kmpNext + i); i++; j++; if (p[i]== p[j]) *(kmpNext + j) = *(kmpNext + i); else *( kmpNext + j) = i; } return kmpNext; Số hóa Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn 68 } b Thuật toán Knuth - Morris – Pratt (KMP) int KMP (char *p, char *t) { int i, j, M = strlen(p), N = strlen(t); InitNext(p); for (i = 0, j = 0; j < M && i < N; i++, j++) while ((j >= 0) && (t[i] != p[j])) j = next[j]; if (j == M) return i - M; else return i; } Thuật toán Boyer Moore Hospool a Thuật tốn tính mảng bmBC m  length [P] for i = to 255 bmBC[i] = m for i = to ( m-1) bmBC[x[i]] = m-i-1 b BMH-String-Matching(T,P) prebmBC () pos = while (pos tj+pos = pj )do j j-1 if(j = 0) return (pos + 1) j  j + bmbc[Tpos+m] end of while Thuật toán Karp-Rabin int ReHash(int a,int b,int h,int d) { Số hóa Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn 69 return((h–a*d)

Ngày đăng: 27/11/2017, 11:16

Từ khóa liên quan

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

  • Đang cập nhật ...

Tài liệu liên quan