Tải bản đầy đủ (.pdf) (113 trang)

Ứng dụng ôtomát hữu hạn nâng cao trong mã hóa và an toàn dữ liệu

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.19 MB, 113 trang )

..

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

Chun ngành : TỐ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 đây là cơng trình nghiên cứu của riêng tôi và được sự
hướng dẫn khoa học của TS.Vũ Thành Nam. Các nội dung nghiên cứu,kết quả trong
đề tài này là trung thực và chưa công bố dưới bất kỳ hình thức nào trước đây.
Những số liệu trong các bảng biểu phục vụ cho việc phân tích, nhận xét, đánh giá
được chính tác giả thu thập từ các nguồn khác nhau có ghi rõ trong phần tài liệu
tham khảo.
Ngồi ra, trong luận văn cịn sử dụng một số nhận xét, đánh giá cũng như số
liệu của các tác giả khác, cơ quan tổ chức khác đều có trích dẫn và chú thích nguồn
gốc.
Nếu phát hiện có bất kỳ sự gian lận nào tơi xin hồn tồn chịu trách nhiệm về
nội dung luận văn của mình.

Hà Nội, tháng 9 năm 2016
Tác giả

Trần Hồng Hà


i


LỜI CẢM ƠN
Luận văn được hồn thành tại Viện Tốn ứng dụng và Tin học-Trường Đại
Học Bách Khoa Hà Nội, dưới sự hướng dẫn trực tiếp của TS. Vũ Thành Nam. Nhân
dịp này, tác giả xin được bày tỏ đặc biệt lịng kính trọng và biết ơn sâu sắc đến
Thầy. Thầy đã tận tình chỉ bảo và định hướng cho em trong suốt quá trình thực hiện
luận văn. Em cũng xin gửi lời cảm ơn chân thành đến ban giám hiệu, tất cả các thầy
cô giáo của trường và viện sau Đại Học Bách Khoa Hà Nội đã giảng dạy dìu dắt
em và 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è và những người đã ln ở bên cổ vũ tinh thần, tạo điều kiện thuận
lợi cho em để em có thể học tập tốt và hồn thiện được luận văn.
Em xin chân thành cảm ơn.

Hà Nội, tháng 9 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 1 CÁC KIẾN THỨC CƠ SỞ ........................................................ 10
1.1 Tổng quan về Otomat hữu hạn .................................................................. 10

1.1.1 Khái niệm về Otomat hữu hạn .......................................................... 10
1.1.2 Hoạt động của Otomat ...................................................................... 11
1.1.3 Phân loại Otomat hữu hạn (FA) .......................................................... 1
1.1.4 Đơn định hóa Otomat ........................................................................ 16
1.1.5 Sự tương đương giữa Otomat đơn định và 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 trong an toàn bảo mật .......................................... 22
Kết chương ....................................................................................................... 24
CHƢƠNG 2 CÁC PHƢƠNG PHÁP PHÁT HIỆN MÃ ĐỘC ...................... 25
2.1 Tổng quan về mã độc ................................................................................. 25
2.1.1 Các loại mã độc ................................................................................. 25
2.1.2 Các dạng tấn công của mã độc .......................................................... 28
2.1.3 Phần loại mã độc ............................................................................... 29
2.2 Phương pháp phát hiện mã độc hại ............................................................ 31
2.2.1 Phần mềm phát hiện 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 tấn công của 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ụ tấn công của 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 hiện mã độc .................................................. 35
2.4.1 Phương pháp phát hiện động............................................................. 35
2.4.2 Phân tích sự tương tự ........................................................................ 37
2.4.3 Phương pháp phát hiện 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 bài 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 3 Ứ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 giữa các 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ở dữ liệu các dấu hiệu được loại bỏ .................................................... 81
3.4 Xây dựng cơ sở dữ liệu mã độc ................................................................. 82
3.4.1 Xây dựng các 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 cơ sở dữ liệu mẫu mã độc................................................. 87
3.5 Cấu trúc dữ liệu của thuật toán đối sánh Aho-Corasick ............................ 89
3.5.1 Đưa mẫu mã độc vào cây 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 1. 2 Mơ hình của Otomat rời rạc

11

Hình 1. 3 Mơ Hình Hoạt Động Của Otomat Hữu Hạn

12

Hình 1. 4 Máy hữu hạn trạng thái

12

Hình 1. 5 Sơ đồ khối của Otomat Hữu Hạn

1

Hình 1. 6 Mơ tả q trình đốn nhận xâu ω của Otomat A

3

Hình 1. 7 Đồ thị chuyển trạng thái của M trong ví dụ 1. 3


5

Hình 1. 8 Đồ thị chuyển trạng thái của A1

6

Hình 1. 9 Q trình đốn nhận xâu α = ababbab của A1

6

Hình 1. 10 Đồ thị chuyển trạng thái của A2

7

Hình 1. 11 Q trình đốn nhận xâu vào β = 1010100

7

Hình 1. 12 Đồ thị chuyển của Otomat A3

10

Hình 1. 13 Đồ thị chuyển của Otomat A4

10

Hình 1. 14 Đồ thị chuyển của Otomat khơng đơn định A

14


Hình 1. 15 Đồ thị chuyển của Otomat A trong Ví dụ 1. 7

15

Hình 1. 16 Đồ thị chuyển của Otomat

18

Hình 1. 17 Đồ thị chuyển của Otomat M

19

Hình 1. 18 Đồ thị chuyển của Otomat M‟ trong ví dụ 1. 8

20

Hình 1. 19 Phân loại mã độc

28

Hình 1. 20 Các bước hoạt động Logic bomb

30

Hình 2. 1 Mơ tả về Phishing

35

Hình 2. 2 Bộ phát hiện mã độc dựa trên hành vi


36

Hình 2. 3 Kiểu phần mềm mã độc cơ bản

38

Hình 2. 4 Mã độc đa hình

39

Hình 2. 5 Phần mềm độc hại siêu đa hình

39

Hình 2. 6 Mis-match trong khi đang so sánh tại vị trí j

50

Hình 2. 7 Good-suffix shift, trường hợp u lại xuất hiện trong P

51

Hình 2. 8 Good-suffix shift, trường hợp chỉ suffix của u xuất hiện trong P

51

Hình 2. 9 Dịch để ký tự băm khớp với văn bản

52


Hình 2. 10 Dịch khi b không xuất hiện trong P

54

iv


DANH MỤC BẢNG BIỂU
Bảng 3. 1 So sánh giữa các thuật toán

69

Bảng 3. 2 Các ký tự wildcard

69

Bảng 3. 3 Các tiền tố đặt tên mã độc

70

Bảng 3. 4 Định dạng dấu hiệu dựa trên hàm băm

72

Bảng 3. 5 Định dạng dấu hiệu thành phần tệp PE

72

Bảng 3. 6 Định dạng dấu hiệu cơ bản


73

Bảng 3. 7 Định dạng dấu hiệu mở rộng

74

Bảng 3. 8 Định dạng dữ liệu dựa trên siêu dữ liệu

77

Bảng 3. 9 Sự khác nhau giữa các giá trị băm

85

v


LỜI NÓI ĐẦU
1. Lý do lựa chọn đề tài
Lý thuyết Otomat nghiên cứu về lớp các thuật toán  đối tượng quan trọng trong
tốn học và khoa học máy tính. Năm 1936, A. M. Turing đã đề xuất vấn đề thuật
tốn có thể giải quyết bởi phương tiện máy mà sau này gọi là máy Turing [25]. Năm
1943, W. S. McCulloch và W. H. Pitts đã đề xuất mơ hình tốn học của tế bào thần
kinh [21]. Sau đó, S. C. Kleene đã phát triển báo cáo RAND của ông năm 1951
trong đó mơ hình của W. S. McCulloch và W. H. Pitts đã được đưa những bài toán
về cấu trúc của hệ thống tính tốn chi tiết [19] và các máy biến đổi thông tin tự
động. Các đề xuất này được xem là nền tảng của lý thuyết Otomat.
Otomat và ngôn ngữ được ứng dụng trong nhiều lĩnh vực như thiết kế mạch
[26], thiết kế chương trình dịch [10], biểu diễn biểu thức chính quy [14], tìm kiếm
mẫu [12], xử lý ngơn ngữ tự nhiên [27], mã hóa thơng tin [20]. D. B. A. Epstein cho

thấy Otomat là một cơng cụ quan trọng trong lý thuyết nhóm tổ hợp và hình học
[13]….
Ứng dụng khả năng biểu diễn cây Otomat, sử dụng các kỹ thuật trên Otomat để
thiết kế các thuật tốn hiệu quả  có độ phức tạp thời gian đa thức bậc thấp, nhằm
giải quyết các bài toán trọng tâm trong xử lý thơng tin như: bài tốn so sánh mẫu,
bài toán kiểm định mã, nghiên cứu các đặc tính của mã, hay ngơn ngữ hình thức
trong mối quan hệ với mã. Tăng tốc độ tính tốn cho các thuật tốn giải quyết các
bài tốn này, trong mơi trường bùng nổ thông tin là một vấn đề nghiên cứu mở, có
tính thời sự và ln thu hút sự quan tâm của cộng đồng nghiên cứu.
Lý thuyết Otomat ra đời, xuất phát từ nhu cầu thực tiễn và song song với sự phát
triển, cùng sự thay đổi lớn trong ngành công nghệ thông tin. Ứng dụng Otomat là cơ
sở toán học vững chắc và đã được sử dụng rộng rãi trong nhiều lĩnh vực khác nhau
bởi tính đơn giản trong cài đặt.

vi


Một trong những bài tốn quan trọng có ứng dụng trong lĩnh vực khoa học máy
tính và an tồn thơng tin là bài toán đối sánh mẫu. Bài toán này có ứng dụng rộng
rãi trong tìm kiếm phát hiện các xâu mẫu trong các vấn đề an toàn bảo mật thơng tin
trên mạng như bài tốn phát hiện mã độc và bài tốn phát hiện tấn cơng dựa trên
mẫu hành vi trên mạng.
Thế giới đang chứng kiến những thay đổi lớn và có sự phát triển nhanh chóng về
mọi mặt, nhất là trong ngành công nghệ thông tin, phần mềm mã độc cũng khơng
nằm ngồi xu hướng đó. Từ thời điểm lý thuyết tự nhân bản của phần mềm máy
tính được John von Neuman (1903-1957) đưa ra (năm 1941) đến khi xuất hiện virus
đầu tiên phải mất hơn 3 thập kỷ, nhưng với sự bùng nổ của Internet,mã độc cũng
theo đó bùng nổ theo. Song song với việc ứng dụng công nghệ thông tin, mã độc
cũng đã và đang len lỏi vào mọi mặt của đời sống, gây ra những thiệt hại vô cùng
nghiêm trọng cả về kinh tế lẫn an ninh, quốc phịng. Khi nói về chống phần mềm

độc hại, ta thường nói tới phần mềm chống virus nhưng khơng phải lúc nào phần
mềm chống virus cũng có hiệu quả. Do đó, việc nâng cao ý thức cảnh giác để phịng
ngừa và hơn thế nữa là phân tích, vơ hiệu hoá phần mềm độc hại trở thành nhu cầu
tất yếu. Vấn đề phân tích, chống phần mềm mã độc đã được các hãng bảo mật trên
thế giới tiến hành đầu tư nghiên cứu; từ các hãng lớn như Internet McAfee
Kaspersky, Norton … cho tới các nhóm phát triển phần mềm đơn lẻ. Một số ứng
dụng điển hình có thể kể đến như: McAfee Antivirus, Kaspersky Antivirus, Norton
Antivirus, Microsoft Security Essentials, AVG Anti-Virus … Tuy nhiên, do sự phát
triển của phần mềm mã độc ln đi trước các chương trình diệt virus một bước nên
việc nghiên cứu, phân tích mã độc càng trở nên quan trọng và cấp thiết để làm sao
hạn chế được tối đa những thiệt hại do phần mềm mã độc gây ra.
Ngày nay, lý thuyết Otomat đã có một cơ sở tốn học vững chắc và những kết
quả của nó đã có nhiều ứng dụng trong nhiều lĩnh vực khác nhau như ứng dụng khả
năng biểu diễn ngôn ngữ của Otomat, sử dụng các kỹ thuật trên Otomat để thiết kế
các thuật toán hiệu quả  có độ phức tạp thời gian đa thức bậc thấp, nhằm giải quyết
các bài toán trọng tâm trong xử lý thơng tin như: bài tốn so mẫu xấp xỉ, bài toán

vii


kiểm định mã, nghiên cứu các đặc tính của mã, hay ngơn ngữ hình thức trong mối
quan hệ với mã. Hướng tới xây dựng một chương trình đánh giá an ninh tiến trình
nhằm hỗ trợ quá trình phát hiện mã độc, tìm kiếm dấu vết của mã độc, cách đột
nhập hay tấn công của mã độc. Trong môi trường bùng nổ thơng tin là một vấn đề
nghiên cứu mở, có tính thời sự và ln thu hút sự quan tâm của cộng đồng nghiên
cứu. Trong lĩnh vực khoa học máy tính,đối sánh mẫu là một bài tốn quan trọng
được ứng dụng rộng rãi trong tìm kiếm, tính tốn, trích rút thơng tin, xử lý tín hiệu
và nhận dạng trong việc phát hiện mã độc.
Từ phân tích trên, luận văn tập trung nghiên cứu thêm về các thuật toán đối sánh
mẫu trong ứng dụng Otomat để giám sát trong việc phát hiện mã độc. Tuy nhiên khi

triển khai nghiên cứu thực tế, kết quả đánh giá cho thấy thuật toán đối sánh chuỗi đa
mẫu Aho-Corasick [9] có hiệu năng vượt trội so với thuật toán đối sánh khác đã
được nêu. Được sự đồng ý của thầy hướng dẫn, tác giả đã sử dụng thuật toán đối
sánh chuỗi đa mẫu Aho-Corasick với mục tiêu của luận văn là xây dựng một ứng
dụng cho phép phát hiện mã độc dựa trên đối sánh mẫu trên thuật toán AhoCorasick xây dựng dựa trên cấu trúc Otomat.
2. Mục đích nghiên cứu
 Nghiên cứu về xây dựng ứng dụng dựa trên cấu trúc Otomat
 Nghiên cứu thuật toán đối sánh mẫu sử dụng Otomat
 Xây dựng kỹ thuật phát hiện mã độc dựa trên thuật toán đối sánh mẫu cho
hiệu năng cao, cài đặt thử nghiệm và đánh giá kết quả
3. Đối tƣợng và phạm vi nghiên cứu
 Đối tượng nghiên cứu: xây dựng cây Otomat, các thuật toán đối sánh mẫu
theo hướng tiếp cận Otomat, các kỹ thuật phát hiện mã độc
 Phạm vi nghiên cứu: Nghiên cứu giới hạn trong môi trường mô phỏng và
thực nghiệm

viii


4. Phƣơng pháp nghiên cứu
 Theo đánh giá của các chun gia, các hệ hình thức Otomat hữu hạn là
mơ hình tốn học thích hợp với một số hệ thống quyết định, điều khiển,
nhận dạng và đặc biệt được dùng trong đoán nhận mẫu. Sử dụng những
ưu điểm trên và sự kết hợp với lý thuyết Otomat sử dụng một số hệ
hình thức Otomat hữu hạn để giải bài tốn đối sánh mẫu. Để thấy rõ
được tiếp cận Otomat hữu hạn, tác giả chọn một bài toán cụ thể là tìm
kiếm mẫu trong văn bản.
 Phương pháp nghiên cứu giới hạn trong môi trường mô phỏng và thực
nghiệm
5. Cấu trúc và nội dung của Luận Văn

Luận văn gồm 3 chương (Không bao gồm mở đầu, kết luận, tài liệu tham khảo
và phụ lục)
Chƣơng 1 – Các Kiến Thức Cơ Sở: Chương này nhắc lại khái niệm cơ sở về
Otomat hữu hạn, các thành phần, các dạng và sự khác biệt cơ bản giữa hai dạng
đơn định và không đơn định. Cách thức chuyển đổi tương đương từ dạng đơn định
sang khơng đơn định. Trình bày một số hình thức Otomat nâng cao và ứng dụng
trong mật mã. Các kiến thức cơ sở này được sử dụng trong các chương tiếp
theo của luận văn.
Chƣơng 2 – Các phƣơng pháp phát hiện mã độc: Chương này trình bày tổng
quan về mã độc và chi tiết về các phương pháp kỹ thuật phát hiện mã độc
Chƣơng 3 - Ứng dụng Otomat hữu hạn trong đối sánh phát hiện mã độc
Chương này trình bày việc xây dựng mơ hình phát hiện mã độc, ứng dụng các
kỹ thuật đối sánh mẫu đã nghiên cứu ở chương 2.

ix


CHƢƠNG 1

CÁC KIẾN THỨC CƠ SỞ

Chương thứ nhất trình bày các kiến thức cơ sở cần thiết, được sử dụng
trong các chương tiếp theo của luận văn. Ở đó, ta nhắc lại một số khái niệm và
tổng quan về những kiến thức có liên quan.
1.1 Tổng quan về Otomat hữu hạn
Một Otomat hữu hạn [17] là một mơ hình tính tốn thực sự hữu hạn. Mọi cái liên
quan đến nó đều có kích thước hữu hạn cố định và khơng thể mở rộng trong suốt
q trình tính tốn. Các loại Otomat khác được nghiên cứu sau này có ít nhất một bộ
nhớ vô hạn về tiềm năng. Sự phân biệt giữa các loại Otomat khác nhau chủ yếu dựa
trên việc thơng tin có thể được đưa vào bộ nhớ như thế nào.

Một Otomat hữu hạn làm việc theo thời gian rời rạc như tất cả các mơ hình
tính tốn khác. Như vậy, ta có thể nói về thời điểm “kế tiếp” khi “đặc tả” hoạt động
của một Otomat hữu hạn. Trường hợp đơn giản nhất là thiết bị khơng có bộ nhớ mà
ở mỗi thời điểm, thông tin ra chỉ phụ thuộc vào thơng tin vào lúc đó. Các thiết bị
như vậy là mơ hình của các mạch tổ hợp. Tuy nhiên, nói chung thơng tin ra sản sinh
bởi một Otomat hữu hạn phụ thuộc vào cả thông tin vào hiện tại lẫn các thơng tin
vào trước đó. Như vậy Otomat có khả năng (với một phạm vi nào đó) ghi nhớ các
thơng tin vào trong q khứ của nó. Một cách chi tiết hơn, điều đó có nghĩa là mỗi
Otomat có một số hữu hạn trạng thái được lưu ở bộ nhớ trong. Tại mỗi thời điểm i,
nó ở một trong các trạng thái đó, chẳng hạn qi. Trạng thái qi+1 ở thời điểm sau được
xác định bởi qi và thông tin vào ai cho ở thời điểm i. Thông tin ra ở thời điểm i được
xác định bởi trạng thái qi (hay bởi cả ai và qi).
1.1.1 Khái niệm về Otomat hữu hạn
Chúng ta sẽ tìm hiểu về một định nghĩa tổng quát nhất của Otomat và sau đó thu
hẹp cho phù hợp với các ứng dụng của khoa học máy tính. Một Otomat được định
nghĩa như là một hệ thống ([15], [16], [22], [1], [24]), trong đó năng lượng, vật
chất hoặc thông tin được biến đổi; được truyền đi và được sử dụng để thực hiện
10


một số chức năng nào đó mà khơng cần có sự tham gia trực tiếp của con người. Ví
dụ như máy phô-tô-copy tự động, máy trả tiền tự động ATM…
Trong khoa học máy tính, thuật ngữ Otomat có nghĩa là máy xử lý tự động trên dữ
liệu rời rạc. Mỗi ôtômát được xem như là một cơ chế biến đổi thông tin gồm một
bộ điều khiển, một kênh vào và một kênh ra.

Hình 1. 1 Mơ hình của Otomat rời rạc
Trong đó có các thành phần:
 Đầu vào (input). Ở mỗi thời khoảng thời gian (rời rạc) t1, t2, các dữ liệu vào I1,
I2, Ik là những số hữu hạn các giá trị từ bảng chữ cái  I đầu vào.

 Đầu ra (Output). O1, O2, … Om : các kết quả xử lý của hệ thống là các số hữu
hạn các giá trị xác định kết quả đầu ra.
 Trạng thái: Tại mỗi thời điểm, Otomat có thể ở một trong các trạng thái q1, q2,
… qn
 Quan hệ giữa các trạng thái: Trạng thái tiếp theo của Otomat phụ thuộc vào
hiện trạng và đầu vào hiện thời, nghĩa là được xác định phụ thuộc vào một hay
nhiều trạng thái trước và dữ liệu hiện thời.
 Quan hệ kết quả: Kết quả của Otomat không những chỉ phụ thuộc vào các hiện
trạng mà còn phụ thuộc vào các đầu vào. Như vậy, kết quả (đầu ra, output) của
Otomat được xác định theo đầu vào và các trạng thái thực hiện của nó.
1.1.2 Hoạt động của Otomat
Otomat hữu hạn là một máy đoán nhận xâu gồm:
 Một băng vào được chia thành nhiều ô, mỗi ô chứa một ký hiệu của xâu vào
 Một đầu đọc, mỗi thời điểm trỏ vào một ô trên băng

11


 Một bộ điều khiển Q gồm các trạng thái, tại mỗi thời điểm nó có một trạng thái
được xác định qua hàm chuyển trạng thái
Băng vào

Đầu đọc
Bộ điều khiển

Hình 1. 2 Mơ hình hoạt động của otomat hữu hạn
Tại một thời điểm, trạng thái q ở bộ điều khiển và ký hiệu mà đầu đọc sẽ xác định
trạng thái tiếp theo ở bộ điều khiển. Mỗi lần đầu đọc chỉ xem xét một ơ và có thể
dịch qua phải hoặc qua trái một ô hoặc đứng yên. Trạng thái đầu tiên ở bộ điều
khiển là trạng thái bắt đầu của Otomat


Hình 1. 3 Máy hữu hạn trạng thái
Nhận xét: Một Otomat hữu hạn làm việc theo thời gian rời rạc như tất cả các mơ
hình tính tốn chủ yếu. Như vậy, ta có thể nói về thời điểm “kế tiếp” khi “đặc tả”
hoạt động của một Otomat hữu hạn. Một cách hình thức hơn, ơtơmát hữu hạn (FA)
được chia ra làm 2 loại: Đơn định (DFA) và không đơn định(NFA)

12


1.1.3 Phân loại Otomat hữu hạn (FA)
1.1.3.1 Otomat hữu hạn đơn định
Định nghĩa 1. 1 Một Otomat hữu hạn đơn định là bộ năm thành phần M = (Q, , δ, q0, F)
trong đó:
 Q là tập hữu hạn khác rỗng các trạng thái là tập hữu hạn khác rỗng các ký
hiệu đầu vào (bảng chữ cái), với giả thiết Q   = 
 δ : D → Q, là một ánh xạ từ D vào Q, trong đó D ⊆ Q × Σ, được gọi là hàm
chuyển trạng thái (hay hàm chuyển). Hàm này mô tả sự thay đổi trạng thái của
Otomat và thường được cho biết dưới dạng bảng chuyển trạng thái hay đồ thị
chuyển trạng thái.
 q0  Q là trạng thái khởi đầu, F  Q là tập các trạng thái kết thúc.

Hình 1. 4 Sơ đồ khối của Otomat Hữu Hạn
Otomat hữu hạn trạng thái gồm các thành phần sau:
 Băng dữ liệu vào được chia thành các ô, mỗi ô chứa một ký tự từ bảng chữ cái
, trong đó ơ đầu được đánh dấu cho sự bắt đầu bằng  và ô cuối dùng $ để
đánh dấu kết thúc. Khi không sử dụng các ơ đánh dấu đó thì băng dữ liệu vào sẽ
được xem như có độ dài vơ hạn.
 Đầu đọc R. Mỗi lần đầu đọc chỉ xem xét một ô và có thể dịch qua phải hoặc qua
trái một ô. Để đơn giản, ta giả thiết đầu đọc chỉ dịch qua phải sau mỗi lần xử lý .


1


 Bộ điều khiển hữu hạn. Bộ này điều khiển hoạt động của ôtomat mỗi khi đọc
một dữ liệu vào. Khi đọc một ký hiệu vào, ví dụ a, ở trạng thái q có thể cho các
kết quả sau:
- (a) Đầu đọc R vẫn ở nguyên tại chỗ, không dịch chuyển.
- (b) Chuyển sang trạng thái khác được xác định theo (q, a).
Ví dụ 1. 1 : Hệ thống thang máy của một tồ nhà nhiều tầng có thể mơ hình hóa
như là một Otomat hữu hạn. Thơng tin vào gồm các yêu cầu đi lên, đi xuống tại
mọi thời điểm khi người sử dụng có nhu cầu. Trạng thái được xác định bởi thông tin
về các yêu cầu vẫn chưa được đáp ứng (về những tầng cần đi tới từ bên trong thang
máy, hay ở trên các tầng), về những vị trí hiện tại của thang máy (lên hay xuống).
Trạng thái tiếp theo luôn được xác định bởi trạng thái hiện tại và thông tin vào.
Từ các trạng thái hiện tại cũng xác định được thông tin ra mô tả hành vi của
hệ thống thang máy. Để hiểu được hoạt động của các Otomat, chúng ta cần phải tìm
hiểu các tính chất, đặc trưng của hàm chuyển trạng thái. Hoạt động của Otomat hữu
hạn đơn định A = <Q, Σ, δ, q0, F> khi cho xâu vào ω= a1a2… an có thể được mơ tả
như sau:
Khi bắt đầu làm việc, Otomat ở trạng thái khởi đầu q0 và đầu đọc nhìn vào ơ có ký
hiệu a1. Tiếp theo Otomat chuyển từ trạng thái q0 dưới tác động của ký hiệu vào a1
về trạng thái mới δ (q0, a1) = q1 ∈Q và đầu đọc chuyển sang phải một ô tức là nhìn
vào ơ có ký hiệu a2. Sau đó Otomat A có thể lại tiếp tục chuyển từ trạng thái q1 nhờ
hàm chuyển δ về trạng thái mới q2= δ(q1, a2) ∈ Q. Qúa trình đó sẽ tiếp tục cho tới
khi gặp một trong các tình huống sau:
 Otomat A đọc hết xâu vào ω và δ(qn-1, an) = qn ∈ F, ta nói rằng A đốn nhận xâu
ω.
 Hoặc Otomat A đọc hết xâu vào ω và δ(qn-1, an) = qn ∉ F, ta nói A khơng đốn
nhận xâu ω.


2


 Hoặc khi Otomat A đọc đến aj, (j ≤ n) và hàm δ(qj-1, aj) khơng xác định, ta cũng
nói A khơng đốn nhận xâu ω.
Xâu vào ω =

a1

a2

q0

q1

a3 …. . ……. an-1

q2

qn-2

an

qn-1

qn

Hình 1. 5 Mơ tả q trình đốn nhận xâu ω của Otomat A
1.1.3.1.1 Các phƣơng pháp biểu diễn Otomat hữu hạn đơn định

Hoạt động của Otomat được xác định bởi các hàm chuyển. Vì vậy hàm chuyển
trạng thái là một bộ phận quan trọng của một Otomat hữu hạn đơn định. Cho một
Otomat thực chất là cho hàm chuyển trạng thái của nó, có thể cho dưới dạng bảng
chuyển hoặc cho dưới dạng đồ thị chuyển.
a) Biểu diễn Otomat bằng bảng chuyển
Cho Otomat bằng bảng chuyển như sau: A=<Q, Σ, δ, q0, F> với Q= {q0, q1, q2…,
qm} là tập trạng thái, bảng chữ cái Σ = {a1, a2, a3…, an} khi đó hàm chuyển có thể
cho bới bảng sau: trong đó dịng i cột j của bảng là ô trống nếu (qi, aj) ∈ D, tức δ(qi,
aj) không xác định.

Bảng 1. 1 Bảng chuyển trạng thái của Otomat A

3


Cho bảng chuyển trạng thái, và chỉ rõ tập trạng thái kết thúc F, ta sẽ xác định
được Otomat A.
Ví dụ 1. 2 Xét Otomat hữu hạn có hàm chuyển trạng thái được xác định theo bảng
dưới

Bảng 1. 2 Bảng Otomat hữu hạn có hàm chuyển trạng thái
Trong đó Q = {q0, q1, q2, q3},  = {0, 1} và F = {q0}, q0 vừa là trạng thái bắt đầu
(Có mũi tên đi đến) vừa là trạng thái kết thúc.
b) Biểu diễn Otomat bằng đồ thị chuyển
Cho Otomat A = <Q, Σ, δ, q0, F>. Hàm chuyển δ có thể cho bằng một đa đồ thị
có hướng, có khuyên G sau đây, được gọi là đồ thị chuyển của Otomat A. Tập đỉnh
của G được gán nhãn bởi các phần tử thuộc Q, còn các cung được gán nhãn bởi các
phần tử thuộc Σ, tức là nếu a ∈ Σ và từ trạng thái q chuyển sang trạng thái p theo
cơng thức δ(q, a) = p thì sẽ có một cung từ đỉnh q tới đỉnh p được gán nhãn a. Đỉnh
vào của đồ thị chuyển là đỉnh ứng với trạng thái ban đầu q0. Các đỉnh sẽ được

khoanh bởi các vịng trịn, tại đỉnh q0 có mũi tên đi vào, riêng đỉnh với trạng
thái kết thúc được phân biệt bởi vịng trịn đậm, hoặc hình vng…
Kết luận : Nói chung, với việc cho đồ thị chuyển là hoàn toàn xác định được
Otomat A.

4


Ví dụ 1. 3 Cho Otomat M= (, Q, , q0, F) Với: = {0, 1}; Q={q0, q1, q2}; F={q1}
Trong đó  được cho bởi:
( q0, 0)= q0,

( q0, 1)= q1, ( q1, 0)= q0, ( q1, 1)= q2

Hàm chuyển trạng thái có thể biểu diễn dưới dạng đồ thị có hướng, trong đó mỗi
trạng thái là một đỉnh. Đỉnh ứng với trạng thái bắt đầu (q0) có mũi tên đến, những
đỉnh ứng với các trạng thái kết thúc (thuộc tập F) được khoanh trong vòng tròn kép,
những đỉnh còn lại được khoanh trong vòng tròn đơn. Đồ thị được biểu diễn như
sau:

Hình 1. 6 Đồ thị chuyển trạng thái của M trong ví dụ 1. 3
Ví dụ 1. 4 Cho hai Otomat hữu hạn đơn định dưới đây:
1. A1 = <{ q0, q1, q2}, {a, b}, δ, q0, {q2}> Với δ(q0, a) = q0, δ(q0, b) = q1, δ(q1, a) =
q0, δ(q1, b) = q2, δ(q2, a) = q2, δ(q2, b) = q2.
Ta có bảng chuyển trạng thái và đồ thị chuyển trạng thái của Otomat A1 :

Bảng 1. 3 Bảng chuyển trạng thái của A1

5



a

b
qo

q1

b

q2

a

b

a
Hình 1. 7 Đồ thị chuyển trạng thái của A1

Dãy trạng thái của Otomat A1 trong q trình đốn nhận xâu vào α = ababbab là:

q0

q1

q0

q1

q2


q2 ∈ F

b
Hình 1. 8 Q trình đốn nhận xâu α = ababbab của A1
Như vậy, xâu α được đoán nhận bởi Otomat A1.
2. A2 = <{ q0, q1, q2}, {0, 1}, δ, q0, {q0}> Với δ(q0, 0) = q2, δ(q0, 1) = q1
δ(q1, 0) = q3, δ(q1, 1) = q0, δ(q2, 0) = q0, δ(q2, 1) = q3, δ(q3, 0) = q1, δ(q3, 1) = q2.

Bảng 1. 4 Bảng chuyển trạng thái của A2

6


1

q0

q1

1
0

0

0

0

1


q2

q3
1
Hình 1. 9 Đồ thị chuyển trạng thái của A2

Dãy trạng thái của Otomat A2 trong q trình đốn nhận xâu vào β = 1010100 là:

Hình 1. 10 Quá trình đoán nhận xâu vào β = 1010100
Như vậy, Otomat A2 khơng chấp nhận xâu β.
Ta có thể mơ tả q trình đốn nhận xâu vào của Otomat hữu hạn đơn định đầy đủ
A bằng thuật tốn mơ phỏng sau:
Input :
 Một xâu ω, kết thúc bởi ký hiệu kết thúc file là eof.
 Một Otomat hữu hạn đơn định đầy đủ A với trạng thái đầu q0 và tập trạng
thái kết thúc là F.
Output:

7


 Trả lời “Đúng” nếu A đoán nhận xâu ω.
 Trả lời “Sai” nếu A khơng đốn nhận xâu ω
Thuật toán:
Begin
S:=q0;
C:= ký tự tiếp theo
While C<> eof do
Begin

S:= δ(S, C);
C:= ký hiệu tiếp theo;
End;
If S in F return (True)
Else return (False);
End.
1.1.3.1.2 Ngơn ngữ đƣợc đốn nhận bởi Otomat đơn định
Để mơ tả hình thức q trình đốn nhận một từ (xâu vào), người ta đưa vào ánh xạ
mở rộng

'

từ D ⊆ Q × Σ* vào Q như trong định nghĩa sau:

Định nghĩa 1. 2 Cho Otomat hữu hạn đơn định A = <Q, Σ, δ, q0, F>. Mở rộng δ‟
của δ là một ánh xạ từ D ⊆ Q × Σ * vào Q được xác định như sau:
 δ‟(q, ɛ)= q, ∀ q Є Q,

8


×