Do đó việc an toàn và bảo mật thông tin là điều vô cùng quan trong và luôn được đặt lên hàng đầu do đó việc mã hóa dữ liệu, thông tin trở nên cấp thiết do đó càng ngày càng có nhiều nghi
Trang 1LỜI CAM ĐOAN
Tôi xin cam đoan toàn bộ nội dung của luận văn và các số liệu là
công trình nghiên cứu của tôi dưới sự hướng dẫn của TS Hồ Ngọc Vinh, Trưởng khoa Công nghệ thông tin trường Đại học Sư phạm Kỹ
thuật Vinh
NGƯỜI HƯỚNG DẪN TÁC GIẢ
TS Hồ Ngọc Vinh Nguyễn Duy Nguyên
Trang 2MỤC LỤC
DANH MỤC CÁC HÌNH VẼ 4
PHẦN MỞ ĐẦU 5
CHƯƠNG 1: KHÁI NIỆM VÀ CÁC KẾT QUẢ LIÊN QUAN 10
1.1 Mật mã học 10
1.2 Từ và ngôn ngữ 11
1.3 Ngôn ngữ chính quy và Otomat hữu hạn 13
1.3.1 Ngôn ngữ chính quy 13
1.3.2 Otomat hữu hạn 17
1.4 Mã và các tính chất của mã 19
1.4.1 Mã và vị nhóm tự do 19
1.4.2 Thủ tục kiểm tra tính chất mã Sardinas-Patterson 23
CHƯƠNG 2: MÃ DỰA TRÊN TÍCH KHÔNG NHẬP NHẰNG 26
2.1 Tích không nhập nhằng 26
2.2 Mã luân phiên 28
2.2.1 Đặc trưng của mã luân phiên 33
2.3 Mã với từ định biên 39
CHƯƠNG 3: CÁC KỸ THUẬT TẤN CÔNG WEBSITE VÀ PHƯƠNG
PHÁP PHÒNG CHỐNG 45
3.1 Các kỹ thuật tấn công 45
3.1.1 Tổng quan các kỹ thuật tấn công 45
3.1.2 Cross Sites Scripting (XSS) 51
3.1.3 SQL Injection 53
Trang 33.1.4 Tấn công từ chối dịch vụ (Denial of service - DoS/DDoS) 56
3.2 Phương pháp phòng chống 58
3.2.1 Đối với hệ thống 58
3.2.2 Đối với những người tham gia 62
3.3 Kỹ thuật giải mã 67
3.3.1 Thay đổi nội dung website bất hợp pháp 67
3.3.2 Xây dựng cơ chế chống thay đổi nội dung 68
CHƯƠNG 4: MÃ HÓA KẾT HỢP ALT – RSA 74
4.1 Hệ mã RSA 74
4.1.1 Giới thiệu chung về thuật toán mã hóa dữ liệu RSA 74
4.1.2 Độ an toàn của hệ mã RSA 76
4.1.3 Ứng dụng của hệ mã RSA 77
4.2 Một số tính chất của hệ mã RSA 78
4.3 Sơ đồ mã hóa kết hợp ALT - RSA 80
4.4 Chương trình ứng dụng 81
4.4.1 Chức năng mã hóa: 84
4.4.2 Chức năng giải mã 87
KẾT LUẬN VÀ KIẾN NGHỊ SỬ DỤNG KẾT QUẢ NGHIÊN CỨU 91
TÀI LIỆU THAM KHẢO 93
Trang 4DANH MỤC CÁC HÌNH VẼ
Hình 1: Mô hình tổng quát xử lý webpage 68
Hình 2: Tấn công làm sai lệch dữ liệu trả về 68
Hình 3: Giải pháp bảo vệ mã nguồn chống thay đổi bất hợp pháp 70
Hình 4: Bảo vệ sự thay đổi nội dung 70
Hình 5: Kiểm tra sự thay đổi và khôi phục nội dung 71
Hình 6: Kiểm tra thay đổi nội dung 73
Hình 7 Sơ đồ các bước thực hiện mã hoá theo thuật toán RSA. 76
Hình 8 Sơ đồ giải mã của hệ mã RSA 76
Hình 9 Sơ đồ mã hóa kết hợp ALT - RSA 80
Hình 10 Sơ đồ giải mã ALT - RSA 81
Hình 11 Giao diện chính của chương trình 82
Hình 12 Giao diện đăng k 83
Hình 13 Giao diện đăng nhập 84
Hình 14 Tạo khóa và mã hóa dữ liệu 85
Hình 15 Xác nhận yêu cầu mã hóa ALT 86
Hình 16 Tùy chọn lưu kết quả 86
Hình 17 Xác nhận mã hóa RSA 87
Hình 18 Thông báo kết quả mã hóa thành công 87
Hình 19 Giao diện giải mã tệp tin 88
Hình 20 Giải mã tệp tin 88
Hình 21 Xác nhận giải mã tệp tin bằng RSA 89
Hình 22 Xác nhận giải mã tệp tin bằng RSA 89
Hình 23 Xác nhận giải mã ALT và lưu tệp giải mã 90
Trang 5PHẦN MỞ ĐẦU
1 Lý do chọn đề tài
Công nghệ thông tin việc ứng dụng CNTT và các công nghệ mạng máy tính với sự trợ giúp của các thiết bị mạng, thiết bị bảo mật vào phục vụ công việc hàng ngày trở nên vô cùng phổ cập và thuận lợi Thông tin được trao đổi
và chia sẻ trực tiếp một cách dễ dàng và hiệu quả, và nhanh chóng Việc ứng dụng các mạng nội bộ, truy cập internet, website, CSDL trong các tổ chức, công ty hay một quốc gia là rất quan trọng Các thông tin về kinh tế, chính trị, khoa học xã hội, an ninh quốc phòng được trao đổi rộng rãi Tuy nhiên sự thông dụng và rộng khắp đó lại nảy sinh vấn đề về an toàn thông tin vì thông tin là điều cốt lõi quyết định sự thành bại của bất cứ 1 tổ chức hay quốc gia nào, đó cũng là điều mà tất cả các Harker hay các đối tượng thù địch thèm muốn Khi mà chúng ta có thể truy nhập thông tin ở bất cứ nơi đâu và bất cứ thời gian nào thì cũng cho phép những đối tượng đó không mời mà tự ý truy cập, kèm theo đó là những thông tin vô cùng quan trọng cũng bị mất và sẽ để lại hậu quả không thể lường trước được
Do đó việc an toàn và bảo mật thông tin là điều vô cùng quan trong và luôn được đặt lên hàng đầu do đó việc mã hóa dữ liệu, thông tin trở nên cấp thiết do đó càng ngày càng có nhiều nghiên cứu và xây dựng các công cụ, thuật toán mã hóa để áp dụng cho thực tế
Qua đó tác giả đã chọn đề tài làm luận văn tốt nghiệp “Về độ nhập
nhằng của ngôn ngữ và ứng dụng” nhằm xây dựng một mô hình mã hóa kết
hợp giữa hệ mã luân phiên (Alternative code) và hệ mã RSA
Trang 6Trong cơ chế mã hóa hai lớp này trước hết thông tin sẽ được mã hóa bằng hệ mã hóa luân phiên Sau khi xâu đã mã hóa sẽ được đưa vào mảng và
mã hóa tiếp bằng hệ mã luân phiên và hiển thị xâu được mã hóa cho người giải
mã
2 Mục đích nghiên cứu
Luận văn tập trung tìm hiểu tính bảo mật của thông tin mà lại không làm giảm sự phát triển của việc trao đổi thông tin quảng bá trên toàn cầu thì một trong những giải pháp tốt nhất là mã hóa thông tin Ta có thể hiểu sơ lược
mã hóa thông tin là che đi thông tin của mình làm cho kẻ tấn công nếu chặn được thông báo trên đường truyền thì cũng không thể đọc được và phải có một giao thức giữa người gửi và người nhận để có thể trao đổi thông tin, đó là cơ chế mã hóa và giải mã thông tin
3 Đối tượng nghiên cứu
tấn công làm thay đổi nội dung của Website, chiếm quyền điều khiểm máy tính và cách phòng chống
4 Giả thuyết khoa học
Nếu ta sử dụng một hệ mã để mã hóa thông tin thì khả năng thám mã của các phần mềm có khả năng thành công rất cao Tuy nhiên việc thám mã sẽ rất khó khăn nếu chúng ta kết hợp hai hay nhiều hệ mã với nhau mã hóa nhiều lớp, trong luận án này chúng tôi đã sử dụng hệ mã luân phiên kết hợp với hệ
mã RSA thì dữ liệu sẽ được mã hóa hai lần, làm cho các phần mềm thám mã khó có thể thám mã được dữ liệu
Trang 75 Nhiệm vụ nghiên cứu
- Nghiên cứu về mã và các tính chất của mã
- Nghiên cứu về mã dựa trên tích không nhập nhằng
- Nghiên cứu về mã luân phiên và RSA
- Nghiêm cứu về các cách thức tấn công trên mạng
- Đưa ra các thuật toán mã và giải mã
-
6 Phạm vi nghiên cứu
Trong phạm vi luận văn sẽ tập trung nghiên cứu các kỹ thuật tấn công
và phương pháp phòng chống tấn công website, hệ mã hóa RSA và các vấn đề liên quan như độ an toàn, ứng dụng của hệ mã RSA, các khái niệm cơ bản, kiến thức có liên quan, các cơ sở lý thuyết, tính chất của các hệ thống mật mã, các bài toán về an toàn thông tin
7 Phương pháp nghiên cứu
Nghiên cứu về lý luận: Nghiên cứu về hệ mã RSA, Tích không nhập nhằng, mã RSA và đặc trưng của mã RSA Nghiên cứu về sơ đồ mã hóa RSA,
sơ đồ mã hóa kết hợp giữa mã luân phiên và hệ mã RSA –
Nghiên cứu về thực tiễn: Viết chương trình để thử nghiệm về sự kết hợp giữa các thuật toán đã đề xuất trong đề tài
Luận văn gồm có phần mở đầu, 4 chương, phần kết luận, tài liệu tham khảo và phụ lục Trong đó:
Chương 1 Khái niệm và các kết quả liên quan: Trình bày ngắn gọn các khái niệm và các kết quả chính liên quan đến luận văn như: Khái niệm về mật
mã học, mã và các tính chất của mã ngôn ngữ, các phép toán trên từ và ngôn ngữ, khái niệm otomat hữu hạn, otomat đa định, đơn định hữu hạn
Trang 8Chương 2: Trình bày mã dựa trên tích không nhập nhằng, trình bày về
mã luân phiên, đặc trưng của mã luân phiên, mã với từ định biên
Chương 3 Các lỗ hỗng về bảo mật và cách phòng, các kỹ thuật tấn công vào hệ thống và các phương pháp phòng chống
Chương 4: Mã hóa kết hợp giữa hệ mã RSA và ALT, giới thiệu về hệ
mã hóa RSA, độ an tòan và ứng dụng của hệ mã, một số tính chất của hệ mã, các sơ đồ về mã và giải mã, chương trình mô phỏng cách thức mã hóa và giải
mã
Trong suốt quá trình học tập và hoàn thành luận văn này, tôi đã nhận được sự hướng dẫn, giúp đỡ quý báu của lãnh đạo, các thầy cô, các anh chị, các em và các bạn đồng nghiệp Với lòng kính trọng và biết ơn sâu sắc tôi xin được bày tỏ lời cảm ơn chân thành tới:
Ban giám hiệu, Viện đào tạo sau Đại học, Viện Toán ứng dụng và Tin học, các thầy, cô giáo của trường Đại Học Bách Khoa Hà Nội, Viện Nghiên cứu và Đào tạo nguồn nhân lực Quốc tế đã tạo mọi điều kiện thuận lợi giúp đỡ tôi trong quá trình học tập và hoàn thành luận văn
Đặc biệt tôi xin gửi lời cảm ơn chân thành nhất đến TS Hồ Ngọc Vinh
– Trưởng khoa CNTT trường Đại học Sư phạm Kỹ thuật Vinh, người đã trực tiếp hướng dẫn, định hướng chuyên môn, quan tâm giúp đỡ tận tình và tạo mọi điều kiện thuận lợi nhất trong quá trình thực hiện luận văn
Xin chân thành cảm ơn Lãnh đạo Văn phòng UBND tỉnh Hà Tĩnh, lãnh đạo và cán bộ, Trung tâm Công báo – Tin học tỉnh Hà Tĩnh đã quan tâm tạo điều kiện thuận lợi và giúp đỡ, động viên về mọi mặt trong suốt quá trình học tập và thực hiện luận văn
Xin gửi lời cảm ơn tới bạn bè, đồng nghiệp, các anh chị em trong lớp Cao học Toán –Tin đã động viên và giúp đỡ tôi trong quá trình học tập và những lúc tôi gặp khó khăn
Trang 9Xin chân thành cảm ơn gia đình, bố, mẹ, anh, chị, em và người vợ yêu quý đã luôn ở bên cạnh động viên và giúp đỡ tôi học tập làm việc và hoàn thành luận văn
Trang 10CHƯƠNG 1: KHÁI NIỆM VÀ CÁC KẾT
QUẢ LIÊN QUAN
1.1 Mật mã học
Hiện nay mật mã đang được quan tâm nghiên cứu nhằm xây dựng những
hệ mật mã với độ an toàn cao Tuy nhiên vẫn chưa có được một hệ mật mã với
độ an toàn lý tưởng Vì thế luôn nảy sinh động lực cải tiến, nghiên cứu xây dựng các hệ mật mới, cả về khía cạnh lý thuyết mã cũng như thực hành
Lý thuyết mã bắt nguồn từ lý thuyết thông tin do C E Shannon khởi xướng [15], đã đặt nền móng toán học cho lý thuyết thông tin hiện đại Do nhu cầu thực tiễn, lý thuyết mã phát triển theo nhiều hướng khác nhau Một hướng nghiên cứu liên quan đến mã độ dài cố định, điển hình là mã sửa sai, ứng dụng
để phát hiện và sửa lỗi xuất hiện trên các kênh truyền tin Hướng nghiên cứu quan trọng khác có liên quan đến mã độ dài biến đổi, được nghiên cứu đầu tiên bởi Schüzenberger Một cách đơn giản, mục tiêu của lý thuyết mã là nghiên cứu các tính chất liên quan đến sự phân tích một từ thành dãy các từ thuộc một tập cho trước Mục tiêu khác là vấn đề mã hóa, đơn giản là nghiên cứu tính chất không nhập nhằng của ngôn ngữ Từ các vấn đề được nghiên cứu
và giải quyết, lý thuyết mã có liên quan chặt chẽ với đại số, tổ hợp trên từ, ngôn ngữ hình thức và otomat
Trước đây cũng như hiện nay, bảo mật thông tin luôn được nhiều người quan tâm nghiên cứu nhằm xây dựng những hệ mật mã với độ an toàn cao Tuy nhiên, cho đến nay vẫn chưa có được một hệ mật mã với độ an toàn thật
lý tưởng Vì thế luôn có động lực cải tiến, nghiên cứu xây dựng các hệ mới, cả
về khía cạnh lý thuyết cũng như thực hành
Trang 11Các lớp mã truyền thống được nghiên cứu dựa trên sự phân tích duy nhất của một xâu thành tích các từ thuộc mã, trong đó tích của hai từ là phép nối ghép xâu Gần đây, việc nghiên cứu lý thuyết mã có xu hướng đưa vào các yếu
tố điều khiển, nhập nhằng, đa trị để mở rộng khái niệm tích, từ đó xây dựng những lớp mã mới
Đến cuối những năm 1990, xuất hiện một hướng mở rộng khái niệm tích
khác, được đề xuất bởi A Salomaa - tích trộn có điều khiển (shuffle on
trajectory) Trong đó, tích của hai từ x, y là phép trộn các chữ cái theo thứ tự
được điều khiển bởi xâu bit t (tổng quát hơn, xâu điều khiển là một từ trên bảng chữ 2 ký tự) Từ đó dẫn đến lớp mã theo tích trộn (được gọi là T-mã)
Các đặc trưng đại số của tích trộn và mã theo tích trộn đã được nghiên cứu bởi
A Salomaa, A Kadrie, A Mateescu
Các tiếp cận mở rộng khái niệm tích đã mở ra hướng nghiên cứu mã dựa trên khái niệm tích mới của đề tài, từ đó đưa đến các lớp mã
1.2 Từ và ngôn ngữ
Cho tập hợp các ký tự A gọi là bảng chữ cái Một từ w trên A là một dãy
thức) L là một tập hợp các từ của bảng chữ cái A nào đó Tập tất cả các từ trên
nối hai dãy:
(a1, a2, , a n ) (b1, b2, , b m ) = (a1, a2, , a n , b1, b2, , b m)
Phép toán kết nối có tính kết hợp Do đó, ta có thể viết:
w = a1 a2 a n thay cho cách viết w = (a1, a2, , a n)
Mỗi phần tử a A được gọi là một chữ cái Chuỗi không chứa chữ cái
Trang 12tử đơn vị của phép kết nối Vì vậy, tập A* được trang bị cấu trúc của một vị
A được ký hiệu là A+ Do đó, ta có: A+ = A* {}
Số tất cả các xuất hiện của các chữ trong từ w là độ dài của w, ký hiệu là
Một phân tích của một từ w A* là một dãy {u1, u2, , u n }, với n 0, u n
con sinh bởi X
Trang 13Giả sử X và Y là các ngôn ngữ trên A Ta gọi thương trái (thương phải)
Y–1X = { w A* | y w X, y Y }
1.3 Ngôn ngữ chính quy và Otomat hữu hạn
1.3.1 Ngôn ngữ chính quy
- Các biểu thức chính quy trên A là các biểu thức được định nghĩa đệ quy như
sau:
+ Các biểu thức sơ cấp trên A là các biểu thức chính quy trên A,
Nói cách khác, một biểu thức trên A được gọi là biểu thức chính quy nếu
nó được xây dựng từ các biểu thức sơ cấp bằng cách dùng một số hữu hạn lần các phép toán hợp, phép tích ghép và phép lặp
- Một ngôn ngữ chính quy trên A được biểu diễn bởi một biểu thức chính quy
E trên A, ký hiệu L(E), được định nghĩa đệ quy như sau:
= L(E1) L(E2), L(E1.E2) = L(E1).L(E2), L(E1
*
) = L(E1)* là các ngôn ngữ chính quy
Trang 14Ta nói rằng ngôn ngữ được định nghĩa như trên là giá trị của biểu thức
nên mỗi biểu thức chính quy đều biểu diễn một ngôn ngữ chính quy trên A
Ngược lại, ta chứng minh được rằng: mọi ngôn ngữ chính quy khác rỗng trên
A đều biểu diễn được bởi một biểu thức chính quy trên A (xem [1, tr 46])
Như vậy, tổ hợp các ngôn ngữ biểu diễn được bởi các biểu thức chính
quy trên A trùng với tập hợp các ngôn ngữ chính quy khác rỗng trên A Khi đó,
ta có:
+ Một ngôn ngữ chính quy là vô hạn khi và chỉ khi biểu thức chính quy biểu diễn nó có chứa phép lặp
Như vậy từ định nghĩa suy ra: lớp các ngôn ngữ chính quy trên A là
lớp bé nhất chứa các ngôn ngữ hữu hạn và ngôn ngữ trống, đóng đối với các phép hợp, phép tích ghép và phép lặp
- Biểu diễn đại số của ngôn ngữ chính quy:
L thỏa bởi đồng cấu N M sao cho L = -1(N)
Ta có tính chất sau:
Định lý 1.1 (xem [4, tr 62]) Cho L A* , L là ngôn ngữ chính quy khi và chỉ khi L thỏa bởi một đồng cấu vị nhóm : A * M, với M là một vị nhóm hữu
hạn
Khi đó, vị nhóm hữu hạn M được gọi là vị nhóm biểu diễn ngôn ngữ L
Từ định nghĩa của đồng cấu và định nghĩa của ngôn ngữ chính quy, ta có một
số kết quả sau:
Trang 15Mệnh đề 1.2 Cho X, Y A * là hai ngôn ngữ chính quy, và hai đồng cấu vị nhóm : A * M và : A * N lần lượt thỏa X và Y Khi đó, ta luôn xây
dựng được một đồng cấu (toàn cấu) vị nhóm : A * P, với P là một vị nhóm
hữu hạn, thỏa đồng thời cả X và Y
Chứng minh Xét = : A* M × N = P
u ( (u), (u))
(1M, 1N) = 1P , với 1 P là đơn vị của P
Ví dụ 1.3 Cho vị nhóm U1 = {0, 1}, với phần tử đơn vị là 1 và phần tử zero là
Trang 16P M ×U1 , được xác định bởi: u A*, (u) = ( (u), 0), 1 P = () = (1M,
|P| 2.|M|
Từ Mệnh đề 1.2, ta có kết quả sau:
Hệ quả 1.4 Cho X, Y A * là hai ngôn ngữ chính quy Nếu X và Y cùng thỏa bởi toàn cấu vị nhóm : A * P, với P là một vị nhóm hữu hạn, thì cũng thỏa mọi L (X, Y), trong đó (X, Y) là lớp ngôn ngữ sinh bởi X, Y nhờ sử dụng hữu hạn các phép , , và các phép thương trái, thương phải
Chứng minh Theo giả thiết X = -1(C), Y = -1(D), C, D P
với phép và phép
-1(C–1D) Do đó thỏa ngôn ngữ X–1Y Lập luận tương tự với phép X Y–1
Từ kết quả trên, ta có nhận xét sau:
Nhận xét 1.5 Cho X, Y là hai ngôn ngữ chính quy trên A và toàn cấu vị nhóm
C D, K = C D, K = C–1D, K = CD–1, K P Khi đó, để tính K thì mất
Trang 17Độ phức tạp tính toán của mỗi bước tính K i +1 từ K i có cỡ |P|2 Vì dãy K i
Bổ đề 1.6 Cho X, Y A* là hai ngôn ngữ chính quy và : A* P là toàn
cấu vị nhóm Nếu X, Y thỏa bởi thì (X+)–1Y, Y (X+)–1 cũng thỏa bởi Chứng minh Theo giả thiết X = -1(C), Y = -1(D), với C, D P
ra (x1) (x2) (x n) (w) = (y) D Từ (x i ) C, ta có (w) (C+)–1D
i = 1, ,p Theo giả thiết, là toàn cấu và X = -1(C), tồn tại x i X sao cho c i
= (x i ), suy ra c = (x1x2 x p ) Do đó, c (w) = (x1x2 x p w), suy ra x1x2
1.3.2 Otomat hữu hạn
Cho A là bảng chữ cái hữu hạn Một otomat đa định hữu hạn trên A là
thái; I Q là tập các trạng thái khởi đầu; T Q là tập các trạng thái kết thúc;
E QAQ là tập các cung, xác định hàm chuyển trạng thái của otomat
Mỗi cung là một bộ (q i , a, q j ), với a A, q i , q j Q Khi đó, ta gọi là
q i a q j
Trang 18Hai cung chuyển (p, a, q) và (p, a, q) là kế tiếp (liền nhau) nếu q = p
P : q0 w q n
Quy ước rằng, q Q, đường đi từ q đến q có độ dài 0 Nhãn của nó là từ
q n T Tập tất cả các đường đi thành công của otomat A được ký hiệu là L(A)
trạng thái đạt được nếu có một đường đi P : q0 q i , với q0 I
L (A) = { w A * | q0 I sao cho (q0, w) T }
hạn nếu I là một phần tử và nếu điều kiện (p, a, q), (p, a, q) E suy ra q = q
Do đó, ta có thể xem các otomat đơn định hữu hạn như là các trường hợp đặc
otomat đa định (đơn định) hữu hạn nào đó
Trang 19Định lý 1.7 (xem [7, tr 156]) Một ngôn ngữ L là đoán nhận được khi và chỉ
khi L là ngôn ngữ chính quy
1.4 Mã và các tính chất của mã
1.4.1 Mã và vị nhóm tự do
Định nghĩa 1.8 Cho A là một bảng chữ cái Một tập con X của vị nhóm tự do
A * được gọi là mã trên A nếu n, m 1 và x1, x2, , x n , x1, x2, , x m X,
x1 x2 x n = x1 x2 x m m = n và x i = x i (với i = 1, , n)
cách phân tích thành các từ trong X Dễ thấy rằng, mỗi tập con của một mã là
= )
Điều kiện cần và đủ về phép mã hoá, biểu diễn qua đơn cấu vị nhóm được thể hiện qua mệnh đề sau
Mệnh đề 1.9 (xem [3, tr 38]) Nếu tập con X của A * là mã thì mọi đồng cấu
: B * A * , cảm sinh một song ánh từ bảng chữ cái B nào đó lên X, sẽ là đơn cấu Ngược lại, nếu tồn tại một đơn cấu : B * A * sao cho (B) = X thì X là
mã
Với khái niệm trên, quá trình mã hoá có thể coi là việc thay thế mỗi từ
để thu được bản rõ ban đầu
Trang 20Ví dụ 1.10 (a) Mã Morse X M là mã trên bảng chữ { , , } dùng để mã
hóa các chữ a, b, …, z
khúc đầu thực sự của một từ khác trong X Nói cách khác, tập X là prefix nếu
Ngược lại với định nghĩa tập prefix ta có định nghĩa tập suffix Tập X được gọi
là tập suffix nếu không có từ x nào trong X là khúc đuôi thật sự của một từ y khác trong X Tập X được gọi là tập bifix nếu nó vừa là tập prefix, vừa là tập suffix Tập các prefix thực sự của tập X bất kỳ được ký hiệu là Pref(X), tương
Ví dụ 1.13 Tập X = {abb, bb, bab} trên A = {a, b}, là tập prefix vì không tồn
tại từ nào trong X có chứa khúc đầu cũng là từ trong X Tuy nhiên X không phải là suffix vì từ abb thuộc X có khúc đuôi bb thuộc X Do đó X không phải
là tập suffix
Ví dụ 1.14 Tập X = {abb, baa, bab} trên A = {a, b}, là tập prefix vì không
tồn tại từ nào trong X có chứa khúc đầu cũng là từ trong X và X cũng là suffix
Do đó X là tập bifix
Từ định nghĩa mã và tập prefix, suffix và bifix, ta có các mệnh đề sau:
Trang 21Mệnh đề 1.15 (xem [3, tr 40]) Mọi tập prefix (suffix, bifix) khác { } đều là
mã
Mã X được gọi là mã prefix (t.ứng, suffix, bifix) nếu nó là tập prefix
(t.ứng, suffix, bifix) Ta có mệnh đề sau:
Mệnh đề 1.16 (xem [13, tr 108]) Cho X là mã trên A Khi đó, X là mã prefix
Tính chất của mã có quan hệ rất gần với khái niệm vị nhóm tự do bởi vì
tiểu của M là mã Do đó, tiếp theo sau đây, ta sẽ trình bày một số kết quả cơ sở
của vị nhóm tự do và mối quan hệ giữa vị nhóm tự do và mã
Ta có tính chất sau :
Mệnh đề 1.17 (xem [13, tr 103]) Một vị nhóm con M của A * là vị nhóm tự
do khi và chỉ khi, với mọi w thuộc M, w có duy nhất một phân tích thành tích của các phần tử của X, với X = (M – { }) (M { })2
M, ta có thể viết w = w1w2 w n , với w i X = (M { }) (M { })2, i =
X Hơn nữa, nếu n = 1 và w X thì X X Ta có mệnh đề sau:
Mệnh đề 1.18 (xem [7, tr 106]) Mọi vị nhóm con M của vị nhóm tự do A *
có tập sinh cực tiểu duy nhất X = (M { }) (M { })2 Và X được gọi là
cơ sở của M
Ví dụ 1.19 Cho A = {a, b}, với tập M = { a i | i ℕ0, i 1} Tập X = { a2,
Trang 22nhận hai phân tích trong C : a6 = a2a2a2 = a3a3 Theo Mệnh đề 1.4.11, M
không là vị nhóm tự do
Ví dụ 1.20 Cho A = {a, b}, với tập M = {w | |w|a 0 mod 2} Ta có
X = (M { }) (M { })2 = b ab*a
Từ định nghĩa của vị nhóm con tự do, ta có các kết quả sau :
Mệnh đề 1.21 (xem [8, tr 270]) Cho M là vị nhóm con của vị nhóm tự do
X X (M { }) =
Mệnh đề 1.22 (xem [7, tr 106]) Cho M là vị nhóm con của vị nhóm tự do
(i) M là vị nhóm tự do
: B * M, với B* A* Trong trường hợp này thì được gọi là phép mã hóa
của B trên A
Từ các mệnh đề trên, ta có hệ quả sau:
Trang 23Hệ quả 1.24 (xem [3, tr 43]) Cho X và Y là mã trên A Nếu X * = Y * thì
X = Y
U i-1 }, với mọi i 1 Mệnh đề sau là cơ sở để xây dựng thủ tục kiểm tra một tập X có là mã hay không (A A Sardinas và C W Patterson [13])
Mệnh đề 1.25 (xem [7, tr 109]) Cho X A + Khi đó, X là mã khi và chỉ khi
X U i = , với mọi i 1
giới nội bởi độ dài lớn nhất của các từ trong X Vì vậy, tồn tại một số hữu hạn
Ví dụ 1.26 Cho A = {a, b} và X = {a, aaab, aba} Ta có
Ví dụ 4.27 Cho A = {a, b} và X = {a, aab, bab, bb} Ta có
1.4.2 Thủ tục kiểm tra tính chất mã Sardinas-Patterson
Cho tập các từ X trên bảng chữ A, bài toán kiểm tra tính chất mã của X là
một bài toán cơ bản khi nghiên cứu mã Trong mục này ta đề cập đến thủ tục Sardinas-Patterson ([13]) Thủ tục này không cần sử dụng các tính chất nâng cao của mã mà dựa trên cách tổ chức thực hiện tính toán để kiểm tra một ngôn
ngữ cho trước có thỏa định nghĩa mã hay không Trong trường hợp X hữu hạn
(tổng quát hơn là đoán nhận được) thì số bước tính toán là hữu hạn
Trang 24Thủ tục dừng khi xuất hiện phần dư là từ rỗng, tương ứng với việc tìm được từ
một cách đệ quy qua các bước như sau:
Định lý và mệnh đề sau đây khẳng định tính đúng đắn của thủ tục
Định lý 1.28 (xem [3, tr 51]) Tập X A+ là mã khi và chỉ khi không có tập
U i (i 1) nào chứa từ rỗng
Mệnh đề sau đây khẳng định sự tồn tại của thuật toán Sardinas-Patterson
khi X là tập đoán nhận được
Mệnh đề 1.29 (xem [1, tr 53]) Nếu X A + là tập đoán nhận được, thì lớp các tập U i (i 1) xác định như trên là hữu hạn
Ví dụ 1.30 Cho A = {a, b} và X = {b, abb, abbba, bbba, baabb}, ta có
Ví dụ 1.31 Cho A = {a, b} và X = {aa, ba, bb, baa, bba}, ta có
Nhận xét 1.32 Cho X là ngôn ngữ chính quy và đặt Y = { } thì |(X, Y)| có
Trang 25Sardinas-Patterson, các tập U i sẽ nhận được sau mỗi bước tính toán nhờ áp dụng hữu
Trang 26CHƯƠNG 2: MÃ DỰA TRÊN TÍCH KHÔNG
NHẬP NHẰNG
2.1 Tích không nhập nhằng
Khái niệm tích không nhập nhằng được đề xuất bởi Marcel-Paul Schützenberger [14] và được nghiên cứu mở rộng bởi Jean-Eric Pin [12, 21] Trong [19], Pascal Weil đã sử dụng otomat nhập nhằng, vị nhóm quan hệ nhập
nhằng để làm công cụ thiết lập tích quan hệ Z = X Y, với X, Y là mã hữu hạn
trong quan hệ lý thuyết đa tạp của ngôn ngữ Trong [5, 6], Phan Trung Huy và
các từ được đoán nhận bởi -otomat Büchi không nhập nhằng
Sau đây, ta nhắc lại khái niệm tích không nhập nhằng của hai ngôn ngữ:
Định nghĩa 2.1 Cho bảng chữ A và X, Y A* Cặp (X, Y) được gọi là có tích
không nhập nhằng (hay tích X Y là không nhập nhằng) nếu, với mọi w X Y,
có duy nhất một cặp (x, y), với x X, y Y sao cho w = xy
Hay nói cách khác, tích X Y là không nhập nhằng nếu với mọi x, x X ,
y, y Y, từ đẳng thức x y = xy suy ra x = x và y = y Trong trường hợp ngược
lại thì ta gọi tích X Y là nhập nhằng Từ Định nghĩa 5.1, ta có các mệnh đề sau:
Mệnh đề 2.2 Cho X, Y A * Khi đó, tích X Y là không nhập nhằng khi và chỉ khi
X–1X Y Y –1 {} =
Chứng minh () Ta chứng minh, nếu tích X Y là không nhập nhằng thì
X–1X Y Y –1 {} =
Trang 27Phản chứng, giả sử, tích X Y là nhập nhằng, khi đó ta có x, x X và y, y
Y, với x x, y y sao cho x y = xy Không làm mất tính tổng quát, giả sử
1
X Y Y –1 {} , mâu thuẫn
nhằng
và x, x X, y, y Y sao cho x u = x và y = u y Do đó x y = x u y = xy, với x
x, y y, nghĩa là tích X Y là nhập nhằng, mâu thuẫn
Mệnh đề sau cho ta mối quan hệ giữa mã, mã prefix, mã suffix với tích không nhập nhằng:
Mệnh đề 2.3 Cho X A + Khi đó
Chứng minh (i) Chứng minh X là mã khi và chỉ khi tích X * X (hoặc tích X X *)
là không nhập nhằng
Giả sử X là mã Theo Định nghĩa 2.1 thì sẽ không xảy ra đẳng thức u x =
ux (hoặc x u = xu), với x, x X (x x) và u, u X * Nghĩa là tích X * X,
hai phân tích thành các từ trong X: w = u x = ux (hoặc w = x u = xu), với x,
x X, u, u X * và x x, mâu thuẫn với giả thiết tích X * X (hoặc tích X X *)
là không nhập nhằng
Trang 28(ii) Chứng minh X là mã prefix khi và chỉ khi tích XA * là không nhập nhằng
Ta chứng minh tương tự như trong (ii)
Qua mệnh đề 2.3 (i) cho ta thấy, đặc trưng của mã có thể được biểu diễn
qua khái niêm tích không nhập nhằng, vì vậy có thể xem tích không nhập nhằng như trường hợp tổng quát của biểu diễn tích đối với mã Từ đó, dựa vào khái niệm tích không nhập nhằng, ta có thể xây dựng nhiều lớp mã mới, sẽ được trình bày trong các phần tiếp theo
2.2 Mã luân phiên
Một hình thức mở rộng khác của tích không nhập nhằng đã được đề xuất bởi P T Huy, V T Nam (xem [2], 2004) bằng cách tích lặp nhiều lần Từ đó cho phép thiết lập hai lớp mã mới (gọi là mã luân phiên, mã luân phiên chẵn)
và một số tính chất đặc trưng của mã luân phiên, mã luân phiên chẵn với cặp ngôn ngữ có tích không nhập nhằng Sau đây, ta sẽ trình bày lại một số kết quả
đã được trình bày trong [2] và thiết lập mới một số kết quả nhằm làm phong phú thêm cho các lớp mới này
X, Y như sau:
Trang 29Định nghĩa 2.4 Cho bảng chữ A và X, Y A+, w A+ Ta nói rằng:
= 1, ,n-1
(iii) Từ w có một phân tích luân phiên theo {X, Y} nếu w có một phân tích
luân phiên theo (X, Y) hoặc (Y, X )
Ví dụ 2.5 Cho X = {a, ba} và Y = {b, aba} Khi đó, từ w = ababaaba có hai
phân tích luân phiên theo {X, Y} như sau:
Dựa trên khái niệm tích không nhập nhằng và khái niệm phân tích luân phiên, cho phép ta định nghĩa lại một cách chặt chẽ đối với lớp mã luân phiên,
mã luân phiên yếu dạng 1 (dạng 2) và mã luân phiên chẵn như sau:
Định nghĩa 2.6 Cho X, Y A+ Cặp {X, Y} được gọi là mã luân phiên nếu,
luôn quy ước rằng, hai ngôn ngữ X và Y là rời nhau Nếu ta viết là cặp {X, Y} thì được hiểu là hai ngôn ngữ X, Y không có thứ tự, còn nếu viết là cặp (X, Y) thì được hiểu là hai ngôn ngữ X, Y có thứ tự
Trang 30Các Overlap của hai phân tích của từ w
Các ví dụ sau cho ta thấy rằng: có cặp {X, Y} không là mã luân phiên cho dù X, Y là mã Và có X, Y không là mã nhưng cặp {X, Y} là mã luân phiên
Ví dụ 2.7 Cho X = {ab, ba}, Y = {a} L C nhưng cặp {X, Y} L ALT Vì, với
w = (ab).(a) = (a).(ba)
Ví dụ 2.2.5 Cho X = {a, aa}, Y = {b, bb} L C , nhưng cặp {X, Y} L ALT
Định nghĩa 2.8 Cho X, Y A+ Cặp (X, Y) được gọi là mã luân phiên chẵn
Nếu ta bổ sung một bit 1 vào đầu w và một bit 0 vào cuối w thì chuỗi kết quả luôn là một chuỗi phân tích luân phiên chẵn theo (X, Y) Cụ thể, với w ở trên,
ta có
w = 11010110000110011011000010111010
Trang 31Gọi L EALT là lớp các cặp ngôn ngữ là mã luân phiên chẵn Ví dụ sau cho
ta thấy rằng cặp (X, Y) là mã luân phiên chẵn nhưng cặp {X, Y} không là mã luân phiên
Ví dụ 2.10 Cho X = {ab, abba}, Y = { b}, dễ thấy cặp (X, Y) L EALT nhưng
nhau theo (X, Y) là:
w = (ab).(b).(ab) = (abba).(b)
Trong phần 1, ta đã xét tính chất mã trong quan hệ với phép đồng cấu Tiếp theo, ta sẽ thiết lập một kết quả tương tự cho mã luân phiên, mã luân phiên chẵn
Cho bảng chữ A Đặt B = A { e, f }, với e, f, (e f ) là các chữ cái mới
x y =
i1 uv j2 nêu j1 = i2
0 nếu j1 i2
Trang 32Mệnh đề 2.11 Cặp {X, Y} L ALT khi và chi khi |V X,Y là đơn ánh
và (u) = (v) Suy ra x1y1x2y2 = y1x1y2x2 , mâu thuẫn với giả thiết
có hai phân tích luân phiên khác nhau trong X, Y Chẳng hạn, xét trường hợp
x1 y1x2 y2 = y1x1y2x2
Xét hai từ u = e x1f y1e x2f y2 , v = f y1e x1f y2e x2 trong V X,Y Ta có
(u) = x1y1x2y2 = y1x1y2x2 = (v) Suy ra (u) = (v), mâu thuẫn với
thuẫn
Mệnh đề 2.12 Cho A, B là hai bảng chữ rời nhau, khác rỗng và C = A B
Cho đồng cấu vị nhóm : C * D * , D C, đặt X = (A) , Y = (B) , U là tập
tất cả các từ u C + , u có ít nhất một phân tích luân phiên theo {A, B}, và V
U là tập tất cả các từ có dạng a1 b1 a n b n , n 1, a i A, b i B, i=1, ,n Khi
đó
Chứng minh (i) Cặp {X, Y} L ALT khi và chỉ khi |U là đơn ánh
Trang 33Phản chứng, giả sử ngượ c lại |U không là đơn ánh Khi đó, ta có thể
phân tích luân phiên theo {A, B}; chẳng hạn u = a1b1 a n b n , u = a1b1
a m b m , với m, n 1, a i , a j A, b i , b j B, i = 1, ,n, j = 1, ,m
(a1) (b1) (a n) (b n) = (a1) (b1) (a m) (b m),
đây là hai phân tích luân phiên theo {X, Y}, mâu thuẫn
có hai phân tích luân phiên khác nhau trong X, Y:
Đặt u = a1b1 a n b n , u = a1b1 a m b m, suy ra (u) = (u) Mâu
Chứng minh tương tự như trường hợp (i)
2.2.1 Đặc trưng của mã luân phiên
Khi xây dựng các lớp mã mới, một trong các bài toán cơ bản đặt ra là bài toán kiểm định tính chất mã của ngôn ngữ (chính quy) cho trước Các định lý
Trang 34sau thể hiện đặc trưng cần và đủ đối với một cặp ngôn ngữ X, Y cho trước có
là mã luân phiên chẵn, mã luân phiên hay không và các định lý này cũng tạo
cơ sở cho ta thiết lập các thuật toán kiểm tra tính chất mã luân phiên chẵn, mã luân phiên trong phần sau
Định lý 2.13 Cho X, Y A+ Khi đó, cặp (X, Y) là mã luân phiên chẵn khi và chỉ khi hai điều kiện sau được thỏa mãn:
trong Z: w = z1z2 z n = z1z2 z m , trong đó z i = x i y i , z i = x i y i , với x i
phiên cùng kiểu khác nhau của từ w theo (X, Y), mâu thuẫn
thức x1y1 x2 y2 x n y n = x1y1x2y2 x m y m , đặt z i = x i y i , z j = x j y j , ta có z1
z n = z1 z m với z i , z j Z, i = 1, ,n , j = 1, ,m Do Z L C nên m = n, z i =
z i hay x i y i = x i y i , i = 1, ,n
Từ giả thiết (X, Y) có tích không nhập nhằng và từ hệ thức x i y i = x i y i,
i = 1, ,n, suy ra x i = x i , y i = y i Vì vậy, (X, Y) L EALT
Trang 35Định lý 2.14 Cho X, Y A * Khi đó, cặp {X, Y} L ALT khi và chỉ khi bốn điều kiện sau đồng thời được thỏa mãn:
(ii) Y–1(X Y) + (X Y) + = ;
Chứng minh () Giả sử {X, Y} L ALT Ta chứng minh phản chứng:
Trường hợp 1: X-1X YY-1 – {}
Khi đó, tồn tại các từ u , x1 , x2 X , y1, y2 Y sao cho x1 = x2u, uy1 = y2
-1
X YY-1 – {} =
Trường hợp 2: Tích Z = XY không là mã, nghĩa là tồn tại từ w A+ thừa nhận
hai sự phân tích khác nhau trong Z: w = z1z2 z n = z1’z2’ z m ’ (z1 z1’), sao cho
z1 = x1y1 , z2 = x2y2 , ., z n = x n y n , với x i X, y i Y
z1’ = x1’y1’, z2’ = x2’y2’, , z m ’ = x m’y m ’ , với x j ’ X, y j ’ Y
rõ ràng, đây là hai sự phân tích luân phiên khác nhau của w theo X, Y Suy ra
Trang 36(ii) Giả sử Y -1 (XY)+ (XY)+ , khi đó sẽ tồn tại y Y , u Y -1 (XY)+
(XY)+ sao cho: y z1z2 z n = z1’z2’ z m ’ , z i , zj ’ XY , z i = x i y i , z j ’ = x j ’y j ’, x i
,x j ’ X, y i , y j ’ Y, i=1, ,n , j=1, ,m
x n y n Do đó w = yx1y1 x n y n = x1’y1’ x m ’y m ’ Suy ra {X, Y} L ALT, mâu
(XY)+ sao cho u = z1z2 z n và ux = z1z2 z n x = z1 ’z2’ z m ’ , z i , zj ’ XY mà
z i = x i y i , z j ’ = x j ’y j ’, x i ,x j ’ X, y i , y j ’ Y, i=1, ,n , j=1, ,m
x n y n Do đó w = x1y1 x n y n x = x1 ’y1’ x m ’y m ’ Suy ra {X, Y} L ALT, mâu
() Giả sử các điều kiện (i), (ii), (iii), (iv) đều được thỏa mãn
Trang 37Giả sử ngược lại {X, Y} L ALT , khi đó sẽ tồn tại từ w A+ thừa nhận hai
1, u1 u1’
Xét tính chẵn lẻ của i, j ta có các trường hợp sau:
Trường hợp 1: u1 X, u1’ X
phiên khác nhau theo (X, Y): w = x1y1 x n y n = x1’y1’ x m ’y m ’ , thì tích XY không là mã, mâu thuẫn với (i)
cuối hai phân tích, ta có:
w’ = x1y1 x n y = x1’y1’ x m ’y suy ra w’ thừa nhận hai sự phân tích luân phiên khác nhau trong XY Do đó
XY không là mã, mâu thuẫn với (i)
phiên khác nhau theo (X, Y): w = x1y1 y n x n = x1’y1’ x m ’ Đặt u = x1’y1’
với (iii)
phiên khác nhau theo (X, Y): w = x1y1 x n = x1’y1’ x m ’y m ’ Đặt u = x1y1
(iii)
Trường hợp 2: u1 X, u1’ Y
Trang 38- Với i và j đều chẵn Nếu tồn tại từ w A+ thừa nhận hai sự phân tích luân
phiên khác nhau theo X, Y: w = x1y1 x n y n = y1’x1’ y m ’x m ’ (XY)+
x1 y1 x n y1 ’x1’ y m ’ = y1’x1’ y m’ x1y1 x n (XY)+ (YX)+ Suy ra (XY)+
phiên khác nhau theo X, Y: w = x1y1 y n x n = y1’x1’ y m ’ Đặt u = x1’y2’
(ii)
cuối hai phân tích, ta có:
w’ = x1y1 x n y = y1’x1’ y m ’x m ’y
Đặt u = x1’y2’ x m ’y (XY)+ thì w’ = y1’u (XY)+ Do đó u Y-1(XY)+,
mâu thuẫn với (ii)
Trường hợp 3: u1 Y, u1’ Y
vào đầu và y vào cuối hai phân tích, ta có:
w’ = x y1x1 y n x n y = x y1’x1’ y m ’x m ’y suy ra w’ thừa nhận hai sự phân tích luân phiên trong XY Do đó XY không
là mã, mâu thuẫn với (i)
Trang 39- Với i và j đều lẻ Nếu tồn tại từ w A+ thừa nhận hai sự phân tích luân
đầu hai phân tích, ta có:
w’ = x y1x1 x n-1 y n = x y1’x1’ x m-1 ’y m’
suy ra w’ thừa nhận hai sự phân tích luân phiên trong XY Do đó XY không
là mã, mâu thuẫn với (i)
đầu hai phân tích, ta có:
w’ = x y1 x1 y n x n = x y1’x1’ y m’
Đặt u = x y1 x n-1 y n (XY)+, thì w’ = u x n (XY)+ Do đó u (XY)+X-1,
mâu thuẫn với (iii)
đầu hai phân tích, ta có:
w’ = x y1 x1 y n = x y1’x1’ y m ’x m’
Đặt u = x y1’ x m-1 ’y m ’, thì w’ = u x m ’ (XY)+ Do đó u (XY)+X-1, mâu
thuẫn với (iii)
Trường hợp 4: u1 Y, u1’ X
Chứng minh tương tự Trường hợp 2
2.3 Mã với từ định biên
Trong phần này, ta giới thiệu các khái niệm mã mới với các từ định biên
Trang 40các lớp mã mới này và mối quan hệ của chúng với mã, mã luân phiên chẵn,
mã luân phiên yếu, mã luân phiên
Định nghĩa 2.15 Một -ngôn ngữ X A + được gọi là -mã nếu n, m 1,
x1, x2, , x n , x1, x2, , x m X,
x1 x2 x n = x1 x2 x m m = n, x i = x i , (với i = 1, ,n)
Ví dụ 2.16 Cho X = { (0, a, 1), (0, b, 1), (1, abb, 0)} Khi đó, theo định nghĩa
dễ thấy rằng, X là -mã
Ví dụ 2.17 Cho X = { (0, a, 1), (1, b, 0), (0, ab, 0), (0, ba, 1) } Dễ thấy rằng,
X không là -mã, vì -từ x = (0, ababab, 0) có hai phân tích trong X:
(0, ab, 0).(0, ab, 0).(0, ab, 0) = (0, a, 1).(1, b, 0).(0, ab, 0).(0, a, 1).(1, b, 0)
Định nghĩa 2.18 Một ngôn ngữ X A + được gọi là -mã yếu dạng 1 (dạng
(dạng 2) khác nhau trong X
Định nghĩa 2.19 Một -ngôn ngữ X A + được gọi là -mã chặt nếu
Nhận xét 2.20 Từ Định nghĩa 2.1, Định nghĩa 2.4 và Định nghĩa 2.6, ta dễ
thấy rằng, điều kiện để một -ngôn ngữ là -mã chặt là chặt hơn so với
-mã yếu dạng 1 (dạng 2) và -mã yếu dạng 1 (dạng 2) là chặt hơn so với
-mã Nghĩa là, nếu X là -mã chặt thì X là -mã yếu dạng 1 (dạng 2) và nếu X là -mã yếu dạng 1 (dạng 2) thì X là -mã Ngược lại không đúng
(t.ứng -mã yếu dạng 1, -mã yếu dạng 2, -mã chặt) Xét các ví dụ sau: