Luận văn Lý thuyết đồng dư và ứng dụng trong mã sửa sai

LỜI NÓI ĐẦU Có thể nói, số học, lý thuyết số là một trong những kiến thức toán học lâu đời nhất. Từ trước tới nay, người ta thường coi lý thuyết số như một lĩnh vực đẹp, nhưng thuần túy lý thuyết, của toán học. Với sự phát triển của khoa học máy tính và công nghệ thông tin, lý thuyết số đã đóng góp những ứng dụng thực tế bất ngờ và quan trọng, đặc biệt trong lĩnh vực mã hóa thông tin. Nhiều khía cạnh khác nhau của mã hóa thông tin được các nhà toán học và tin học quan tâm. Thường thường thông tin được mã hóa qua dãy các chữ số trong hệ đếm cơ số 2, cơ số 10, hoặc cơ số p nào đó. Trong quá trình truyền tin hoặc nhận tin, vì nhiều lý do, thông tin có thể bị sai lệch. Thí dụ, một tin nhắn được mã hóa trong cơ số 2 khi truyền đi bị sai một lỗi (lỗi đơn) thì điều này có nghĩa là chữ số 1 tại vị trí nào đó đã bị đổi thành chữ số 0 hoặc ngược lại. Một trong những vấn đề cần giải quyết là phát hiện ra các lỗi sai và sửa chúng. Vì yêu cầu thực tiễn đó, lý thuyết mã sửa sai đã ra đời, phát triển và có những ứng dụng thực tiễn quan trọng. Để xây dựng lý thuyết mã sửa sai, các nhà toán học và khoa học máy tính đã sử dụng nhiều thành tựu của toán học hiện đại (số học, toán rời rạc, đại số tuyến tính, .,) đặc biệt là số học trên tập số nguyên, trong đó có lý thuyết đồng dư. Luận văn này có mục đích tìm hiểu và trình bày những kiến thức cơ bản nhất của lý thuyết mã sửa sai trên cơ sở lý thuyết đồng dư và lý thuyết trường hữu hạn. Luận văn gồm hai chương. Chương 1 trình bày các kiến thức cơ bản nhất của lý thuyết đồng dư và lý thuyết trường hữu hạn, chủ yếu dựa theo tài liệu [2], có tham khảo thêm các tài liệu [4] và [6]. Chương 2 trình bày một số vấn đề cơ bản của mã sửa sai: khoảng cách Hamming; phát hiện và sửa lỗi; các thuật toán giải mã; mã hoàn hảo; mã tuyến tính và ma trận kiểm tra, xây dựng mã tuyến tính, . Nội dung của Chương 2 trình bày chủ yếu dựa theo tài liệu [6], có tham khảo thêm các tài liệu [1] và [7]. Ngoài ra, chúng tôi cũng quan tâm đến khía cạnh thực tế của vấn đề: mã vạch, mã hàng hóa, mã sách tiêu chuẩn quốc tế, Chúng tôi cũng cố gắng tìm hiểu, tuy chưa được đầy đủ, các mã hàng hóa, mã văn hóa phẩm của Việt Nam và kiểm nghiệm các tiêu chuẩn giải mã cho các ví dụ cụ thể của các mã này. Luận văn được hoàn thành dưới sự hướng dẫn khoa học của PGS TS Tạ Duy Phượng. Xin được tỏ lòng cám ơn chân thành nhất tới Thầy. Tác giả xin cám ơn chân thành tới Trường Đại học Khoa học Thái Nguyên, nơi tác giả đã nhận được một học vấn sau đại học căn bản. Và cuối cùng, xin cám ơn gia đình, bạn bè, đồng nghiệp đã cảm thông, ủng hộ và giúp đỡ trong suốt thời gian tác giả học Cao học và viết luận văn. MỤC LỤC LỜI NÓI ĐẦU 1 Chương 1: LÝ THUYẾT ĐỒNG Dư 3 § 1. Quan hệ đồng dư . 3 1.1. Định nghĩa đồng dư . 3 1.2. Các tính chất của quan hệ đồng dư 4 § 2. Thặng dư 7 2.1. Tập các lớp thặng dư . 7 2.2. Các tính chất của lớp thặng dư . 7 2.3. Tập các lớp thặng dư nguyên tố với môđun . 9 2.4. Vành các lớp thặng dư . 9 § 3. Hệ thặng dư đầy đủ - Hệ thặng dư thu gọn 11 3.1. Hệ thặng dư đầy đủ 11 3.2. Hệ thặng dư thu gọn 13 3.3. Các định lí quan trọng . 16 § 4. Phương trình đồng dư . 17 4.1. Các khái niệm chung . 17 4.2. Phương trình và hệ phương trình đồng dư bậc nhất một ẩn 23 4.2.1. Phương trình đồng dư bậc nhất một ẩn . 23 4.2.2. Hệ phương trình đồng dư bậc nhất một ẩn 26 4.3. Phương trình đồng dư bậc cao theo môđun nguyên tố 31 4.3.1. Nhận xét . 31 4.3.2. Phương trình bậc cao theo môđun nguyên tố 32 Chương 2: ỨNG DỤNG CỦA LÝ THUYẾT ĐỒNG Dư TRONG MÃ SỬA SAI 36 § 1. Khái niệm mã . 36 § 2. Những ví dụ về mã . 39 2.1. Mã lặp . 39 2.2. Mã chẵn lẻ . 41 2.3. Mã vạch 44 § 3. Khoảng cách Hamming 48 § 4. Mã tuyến tính . 53 4.1. Mã nhị phân tuyến tính 53 4.2. Biểu diễn ma trận của các mã nhị phân 55 4.3. Thuật toán hội chứng giải mã cho các mã nhị phân . 65 4.4. Mã nhị phân Hamming 67 4.5. Các tính chất của mã nhị phân Hamming [n,k] 70 4.6. Các p-mã Hamming . 71 4.7. Các tính chất của p-mã Hamming [n,k] . 74 § 5. Mã thập phân 77 5.1. Mã số sách tiêu chuẩn quốc tế (ISBN) . 77 5.2. Mã sửa lỗi đơn . 82 5.3. Mã sửa lỗi kép . 84 KẾT LUẬN . 88 TÀI LIỆU THAM KHẢO 89

pdf93 trang | Chia sẻ: maiphuongtl | Lượt xem: 2199 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Luận văn Lý thuyết đồng dư và ứng dụng trong mã sửa sai, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
í hiệu chuyển vị ma trận. Chú ý rằng véctơ mã (4.4) được viết như một cột với những chữ số của từ mã 1 2 ... n x x x x đọc từ trái sang phải và được đặt từ trên xuống dưới. Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 57 Nếu có nhiều phương trình kiểm tra, thì chúng có thể được viết dưới dạng: 1 2 1 2 ... 0 ... 0 .... . ... . 0. . ... . n n a a a b b b x                        hay 0Hx  . Ở đây H là ma trận kiểm tra, các hàng của nó là các hệ số của các phương trình kiểm tra, và 0 là vectơ không. Chú ý rằng với các mã nhị phân, tất cả các thành phần trong H là 0 hoặc 1, và H được gọi là một ma trận nhị phân. Ví dụ 4.4 (Ma trận kiểm tra) Sử dụng (4.5), hai phương trình kiểm tra trong ví dụ 4.3, cụ thể là 1 2 3 1 1 0 0  x x x , 1 2 3 1 0 1 0  x x x có thể được viết như những tích vô hướng  1 1 0 x = 0,  1 0 1 x = 0, (4.6) trong đó  1 2 3 T x x x x . Kết hợp hai biểu thức trong (4.6) cho ta 1 1 0 0 0 1 0 1 0              x . (4.7) Biểu thức (4.7) có thể được viết gọn như sau Hx  0 (mod 2) . (4.8) Ma trận kiểm tra là ma trận nhị phân H = 1 1 0 1 0 1       . (4.9) Từ mã 1 2 3 x x x được xác định như là nghiệm của các phương trình kiểm tra (4.8), nó đã được tìm thấy trong ví dụ 4.3 là 000 và 111. Giả sử x và y là hai từ mã trong một mã C thỏa mãn cùng một hệ phương trình kiểm tra dưới dạng ma trận: Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 58 Hx = 0, Hy = 0. Nếu z = x + y, thì Hz = H(x + y) = Hx + Hy = 0 + 0 = 0. Điều này chỉ ra rằng z cũng thỏa mãn hệ phương trình kiểm tra, và do đó cũng thuộc C. Vì vậy, theo định nghĩa, C là một mã tuyến tính. Nói cách khác, một mã nhị phân tuyến tính C là tập các từ mã thỏa mãn điều kiện Hx ≡ 0(mod 2), (4.10) trong đó x là véctơ mã. Nếu có m phương trình kiểm tra thì H trong (4.10) có m hàng và n cột, và được gọi là có kích thƣớc m×n, hay là một ma trận m×n. Ví dụ 4.5 (Tạo một mã tuyến tính) Những ví dụ 4.3 và 4.4, các từ mã đã nhận được bằng cách đơn giản là tìm trong tập tất cả các từ có chiều dài 3 các từ thỏa mãn các phương trình kiểm tra (4.8). Phương pháp này sẽ phức tạp nếu n quá lớn. Dưới đây mô tả một cách tìm các từ mã cho trường hợp n bất kì. Giả sử ma trận kiểm tra là 1 0 1 0 0 1 1 1        H . (4.11) Những phương trình kiểm tra tương ứng với (4.11) nhận được bằng cách viết các hàng của H như những hệ số của phương trình. Chẳng hạn, hàng đầu tiên của H cho 1 2 3 4 1 0 1 0 0,   x x x x hoặc 1 3 0 x x . (4.12) Tương tự dòng thứ hai của H cho 2 3 4 0  x x x . (4.13) Các từ mã là các nghiệm của (4.12) và (4.13). Phép cộng nghịch đảo trong 2 là – 0 = 0, -1 = 1, do đó trong 2 cũng cho ta:   i i x x . Phương trình (4.12) có thể được viết lại như sau: Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 59 1 3 3   x x x (4.14) và (4.13) có dạng 2 3 4 3 4     x x x x x . (4.15) Các bit 1 x và 2 x bây giờ đã được biểu thị dưới dạng 3 x và 4 x được coi là hai bit độc lập, và chúng nhận giá trị 0 hoặc 1. Tất cả có bốn khả năng sau 1 x 2 x 3 x 4 x 0 0 0 0 0 1 0 1 1 1 1 0 1 0 1 1 Đối với mỗi cặp giá trị của 3 x và 4 x , giá trị tương ứng của 1 x và 2 x trong hai cột đầu tiên được chọn theo công thức (4.14) và (4.15). Ví dụ 3 1x , 4 0x thì 1 3 1 x x , 2 3 4 1  x x x . Từ bảng này có thể thấy rằng có bốn từ mã 0000, 0101, 1110, 1011. Sử dụng (4.3), khoảng cách tối thiểu là  = min[w(0101), w(1110), w(1011)] = 2. Vì 3 x và 4 x có thể chọn tùy ý nên chúng được gọi là các bit thông tin. Hai bit 1 x và 2 x được gọi là các bit kiểm tra, và các bit này được xác định duy nhất bởi các bit thông tin, như được chỉ ra trong bảng trên. Thông tin tin nhắn 3 x 4 x được gọi là mã hóa (encoded) thành từ mã 1 x 2 x 3 x 4 x . Ví dụ trên minh họa bài toán xây dựng một mã tuyến tính được thực hiện bằng cách chọn một ma trận kiểm tra phù hợp. Chú ý rằng các phương trình (4.12) và (4.13) dễ dàng giải được vì bit kiểm tra 1 x chỉ xuất hiện trong phương trình đầu tiên và bit kiểm tra 2 x chỉ xuất hiện trong phương trình thứ hai. Tương tự, ta xét mã có ba bit kiểm tra cho một mã chiều dài 5, với các phương trình kiểm tra dạng: Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 60 1 1 4 2 5 0  x a x a x ; 2 1 4 2 5 0  x b x b x ; (4.16) 3 1 4 2 5 0  x c x c x , trong đó 4 x và 5 x là những bit thông tin. Như ví dụ 4.1, hệ có thể được viết lại bằng cách sử dụng môđun 2 để biểu diễn các mã kiểm tra như sau 1 1 4 2 5 2 1 4 2 5 3 1 4 2 5           x a x a x x b x b x x c x c x . (4.17) Trong ký hiệu ma trận, (4.16) trở thành Hx = 0, trong đó: 1 2 1 2 1 2 1 0 0 0 1 0 0 0 1          a a H b b c c ,  1 2 3 4 5 T x x x x x x . (4.18) Ba cột đầu tiên của H trong (4.18) tạo thành ma trận đơn vị 3×3, được ký hiệu là 3 I . Các cột còn lại của (4.18) tạo thành một ma trận A số chiều 3 × 2. Tương tự, ma trận kiểm tra (4.11) có thể được viết là H =  2I A với: 2 1 0 0 1        I , 1 0 1 1        A . Tổng quát, để xây dựng một mã nhị phân tuyến tính chiều dài n với m bit kiểm tra, ma trận kiểm tra là:  mH I A , với A là ma trận có số chiều  m n m  . Các từ mã x  1 2 ... n x x x thỏa mãn phương trình kiểm tra Hx = 0. Các bit kiểm tra 1 2 ... n x x x được tính như sau: 1 1 2 2 ... ...                            m m n m n x x x x A x x . (4.19) Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 61 Chẳng hạn, (4.17) được viết thành: 1 4 2 5 3              x x x A x x , trong đó 1 2 1 2 1 2           a a A b b c c . Có tất cả k = n - m bit thông tin 1, ..., m n x x . Bởi vì các bit này có thể nhận giá trị 0 hay 1 độc lập, tổng cộng có tất cả 2k từ mã. Số k được gọi là số chiều của mã, còn mã được gọi là một [n,k] mã. Để mã hóa một tin nhắn chứa 1, ..., m n x x , đơn giản ta thêm vào đầu nó những bit kiểm tra 1 2 ... m x x x được tính bằng cách sử dụng (4.19). Ví dụ 4.6 (Xây dựng một mã tuyến tính) Để xây dựng mã chiều dài 7 với ba bit kiểm tra, ta chọn ma trận kiểm tra  3 1 0 0 1 1 0 1 0 1 0 1 1 1 0 0 0 1 0 1 1 1 H I A           . (4.20) Các hàng của ma trận A trong (4.20) đơn giản là những hệ số của những phương trình trong vế phải của (4.19). Vì m = 3, các bit kiểm tra là 1 2 3 , ,x x x , do đó, ví dụ, dòng đầu tiên của A trong (4.20) cho 1 4 5 6 7 1 1 0 1   x x x x x , có nghĩa là: 1 4 5 7   x x x x . Tương tự, dòng thứ hai và thứ ba của A trong (4.20) cho 2 4 5 6   x x x x , 3 5 6 7   x x x x . Như trong ví dụ 4.5, lựa chọn tất cả các giá trị có thể có của các bit thông tin 4 5 6 7 , , ,x x x x cho tập tất cả các từ mã. Ví dụ, nếu 4 x =1, 5 x =0, 6 x = 1, 7 x = 0 thì: 1 x = 1 + 0 + 0 = 1, 2 x = 1 + 0 +1 = 0, 3 x = 0 + 1 + 0 = 1. Vì vậy, từ mã tương ứng là 1011010. Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 62 Mã chiều dài 7 xây dựng như trên có kích thước là k = 7 3 = 4, và có tất cả 42 = 16 từ mã. Bốn từ mã khác với 1011010 được liệt kê trong bảng sau. Các bit kiểm tra Các bit thông tin 1 x 2 x 3 x 4 x 5 x 6 x 7 x 1 1 0 1 0 0 0 1 1 1 0 1 0 0 0 1 1 0 0 1 0 0 0 1 1 1 0 0 Phát hiện lỗi đơn Đối với một mã nhị phân, một lỗi đơn có nghĩa là một bit 0 được nhận là 1, hoặc bit 1 được nhận là 0. Theo Định lý 3.1, để mã phát hiện tất cả các lỗi đơn khoảng cách tối thiểu  ít nhất phải là 2. Tuy nhiên theo Định lý 4.1, đối với một mã nhị phân tuyến tính,  bằng số nhỏ nhất của tất cả các trọng số của từ mã khác không. Vì vậy trong trường hợp này đòi hỏi  ≥ 2, suy ra rằng không có từ mã nào có trọng số 1. Nếu e là từ có trọng số 1 thì nó có mọi bit bằng 0 trừ một bit thứ i, tức là  0...010...0 T e  . Từ e như vậy không là từ mã thì nó phải thỏa mãn He 0 .Tuy nhiên, vectơ tích He chính là cột thứ i của H, vì vậy suy ra không có cột nào của H có thể bằng không. Nói cách khác, ma trận kiểm tra H của mã tuyến tính nhị phân phát hiện lỗi đơn (single- error-detecting) không có cột nào bằng 0. Ví dụ 4.7 (Hai ma trận kiểm tra) (a) Ma trận kiểm tra H trong (4.11) không có cột số nào có tất cả các phần tử bằng không và do đó tạo ra một mã phát hiện tất cả các lỗi đơn. Điều này có được do δ = 2 cho mã này. Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 63 (b) Ma trận kiểm tra 1 0 0 1 0 0 1 1 1 0 1 0          H có cột thứ hai bằng 0. Do đó 0100, với chỉ bit thứ hai khác không, là một từ mã có trọng số 1. Khoảng cách tối thiểu do đó là  =1, và mã với ma trận kiểm tra H không nhận diện được những lỗi đơn. Sửa chữa lỗi đơn Trong §3 ta biết rằng, để sửa được những lỗi đơn thì  ≥ 3, nghĩa là không có từ mã nào có trọng số 1 hoặc 2. Nếu e là một từ nhị phân có trọng số 2 thì e chỉ có hai bit khác không tại vị trí i và j và khi ấy He ≠ 0. Tuy nhiên, điều này dẫn đến các cột i h , j h thứ i và thứ j của H thỏa mãn điều kiện i h + j h 0 (vì i h + j h =He), tức là i h ≠ j h , bởi vì - i h = j h (mod 2). Nói cách khác, H là ma trận kiểm tra của mã nhị phân tuyến tính sửa được lỗi đơn (single-error-correcting linear binary code, viết tắt: s.e.c) thì không có cột nào của H là 0 và không có hai cột của H bằng nhau. Ví dụ 4.7 (Mã sửa được lỗi đơn) (a) Ma trận kiểm tra H trong (4.11) có các cột thứ hai và thứ tư bằng nhau, và do đó không phải là ma trận kiểm tra của một mã s.e.c. Điều này phù hợp với các kết quả trước đã chỉ ra rằng khoảng cách tối thiểu cho mã này là 2. (b) Nếu mã chỉ có hai bit kiểm tra, thì ma trận kiểm tra thỏa mãn các điều kiện sửa lỗi đơn chỉ có thể là 1 0 1 0 1 1        H , bởi vì ba cột trên cho thấy chỉ có cột khác không là những cột với hai phần tử. Như đã nhận xét ở trên, hoán vị các cột của H (ví dụ, để sinh ra ma trận H trong (4.9)) không sinh một mã khác. Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 64 (c) Khi có ba bit kiểm tra, chỉ có duy nhất một lựa chọn để các cột của ma trận A khác với các cột của 3 I là ma trận đã được chỉ ra trong (4.20). Ma trận H trong (4.20) khi ấy là ma trận kiểm tra cho một mã s.e.c. chiều dài 7. Tương tự, chọn bất kỳ một, hai hoặc ba trong số các cột của A trong (4.20) và phụ thêm chúng vào các cột của 3 I , kết quả trong ma trận kiểm tra s.e.c. cho mã chiều dài 4, 5 hoặc 6 tương ứng. Thí dụ, mỗi ma trận 1 1 0 0 1 1 0 1 0 1 1 0 0 1 0 1          H , 2 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1          H (4.21) sinh ra một mã s.e.c. chiều dài 5 với ba bit kiểm tra và hai bit thông tin. Chú ý rằng trong mỗi trường hợp ba cột đầu tiên (có nghĩa là, 3 I ) được giữ lại. (d) Ma trận kiểm tra 1 0 0 1 1 0 0 1 0 1 1 1 0 0 1 0 1 0          H có các cột thứ hai và thứ sáu bằng nhau. Vì x  010001 với chữ số 1 trong các vị trí thứ hai và thứ sáu thỏa mãn 0Hx  nên x là một từ mã có trọng số 2. Do đó mã tương ứng với H có khoảng cách tối thiểu 2, vì vậy không sửa được lỗi đơn. Vì H không có cột chỉ gồm toàn các chữ số 0 nên mã không phát hiện được những lỗi đơn. Phần (c) của ví dụ 4.7 đã chỉ ra rằng một mã s.e.c. với ba bit kiểm tra có chiều dài tối đa là 7. Nói chung, cho một mã chiều dài n với m bit kiểm tra, ma trận kiểm tra sẽ là ô côt    m mc t n m H I A m hàng. Bởi vì mỗi phần tử trong m phần tử của một cột của A có thể là 0 hoặc 1, nên có nhiều nhất là 2m cột khác nhau cho lựa chọn A. Nhưng để mã có tính chất s.e.c., cột 0 và m cột của m I phải bị loại ra từ A. Do đó tổng số các cột có thể chọn chỉ là 2m – m - 1. Nghĩa là, đối với một mã nhị phân s.e.c, số (n - m) cột của A phải thỏa mãn n - m ≤ 2m – m – 1. Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 65 Do đó chiều dài của các mã này thỏa mãn các điều kiện n ≤ 2m – 1. Khi 2 1mn   thì mã được gọi là hoàn hảo (perfect). Ví dụ, khi có bốn bit kiểm tra, mã s.e.c hoàn hảo có chiều dài 42 -1 = 15, và số bit thông tin là 15-4=11. Các mã s.e.c không hoàn hảo với bốn bit kiểm tra có ít hơn 11 bit thông tin. 4.3. Thuật toán hội chứng giải mã cho các mã nhị phân Từ trước đến nay ta đã giải mã bằng cách tìm khoảng cách Hamming giữa một từ nhận được r và mỗi từ mã. Khi ấy nguyên tắc lân cận gần nhất chọn từ mã gần nhất với r để giả định là từ mã đã được truyền đi. Sơ đồ giải mã này không thực tế khi có một số lượng lớn từ mã. Thay vào đó, cách tiếp cận trực tiếp sử dụng ma trận kiểm tra H là thích hợp hơn. Tuy nhiên, nguyên lý “lân cận cực đại (maximum likelihood) vẫn có hiệu lực – Nguyên tắc này giả thiết từ nhận được không có lỗi là gần hơn tất cả các từ khác và từ nhận được với một lỗi là gần hơn từ có hai lỗi hoặc hơn, v.v,... Nếu r là một từ mã, theo định nghĩa nó thỏa mãn Hr = 0. Nếu khi truyền tin xảy ra một lỗi đơn ở vị trí thứ i thì r c e  , trong đó e là một từ có 1 i e  , và 0 i e  với mọi i khác. Trong trường hợp này một lần nữa 0Hc  , nhưng do i He h là cột thứ i của H nên Hr = H(c + e) = Hc + He = 0 + i h = i h . Điều này chỉ ra rằng nếu một lỗi đơn xuất hiện trong truyền tin thì Hr bằng một cột của H. Vì vai trò của nó trong việc xác định từ mã đã được truyền đi, các véc tơ cột Hr (nhận được bằng cách nhân ma trận kiểm tra và véctơ cột r tạo thành từ từ nhận được r) được gọi là hội chứng (syndrome) của r. Tên gọi này xuất phát từ việc sử dụng thuật ngữ y khoa với nghĩa là “triệu chứng” (symptom). Để giải mã một từ nhị phân nhận được r, ta sử dụng thuật toán sau đây. Thuật toán hội chứng giải mã cho các mã nhị phân Bước 1: Tính hội chứng s = Hr (mod 2). Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 66 Bước 2: Nếu 0s  thì coi r là một từ mã và lỗi truyền không xảy ra. Bước 3: Nếu s  cột thứ i của H, giả sử một lỗi đơn đã xảy ra trong bit thứ i, và từ mã đã truyền đi là r e đã nhận được bằng cách sửa i r thành i r + 1. Bước 4: Nếu s ≠ 0, s khác cột thứ i của H, thì giả thiết rằng nhiều hơn một lỗi đã xảy ra, và đòi hỏi truyền lại tin nhắn. Ví dụ 4.8 (Ứng dụng của thuật toán) Xét mã s.e.c. chiều dài 5 với ma trận kiểm tra là ma trận 1 H trong (4.21). (a) Nếu từ nhận được là r = 11001 thì hội chứng 1 s H r là 1 1 0 0 1 1 1 0 1 0 1 1 0 0 0 1 0 1 0 1                         s = 1.1 0.1 0.1 1.0 1.1 0 0. 1.1 0.0 1.0 1.1 0 0.1 0.1 1.0 0.0 1.1 1                              . So sánh s với 1 H trong (4.21) cho thấy rằng nó bằng với cột thứ ba của 1 H . Do đó theo bước 3, một lỗi truyền xảy ra trong bit thứ ba, do đó e = 00100. Bit thứ ba của r được sửa thành 0 + 1 = 1, do đó, các từ mã đã truyền là c  11101. Vì 1 0H c  nên c thực sự là một từ mã. (b) Nếu từ nhận được là r = 10100 thì hội chứng là: 1 1 0 0 1 1 0 1 0 1 0 1 1 1 0 0 0 1 0 1 0 1 0 s                                . Rõ ràng s không phải là cột của 1 H , do đó, theo bước 4, có nhiều hơn một lỗi đã xảy ra. Ta có thể kiểm tra trong trường hợp này các từ mã đã được truyền đi có thể là 00000 với những lỗi trong bit đầu tiên và thứ ba; hoặc Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 67 11101 với những lỗi trong các bit thứ hai và bit thứ năm; hoặc 00111 với các lỗi trong bit thứ nhất, thứ tư và thứ năm. Mã không thể sửa các lỗi bội này. Phần (b) của ví dụ 4.7 chỉ ra rằng có thể nhận được một hội chứng không phải là một cột của ma trận kiểm tra. Điều này có nghĩa rằng không có từ mã nào mà khoảng cách Hamming đến từ nhận được là 1. Tuy nhiên, nếu mã là hoàn hảo thì điều này không thể xảy ra – một hội chứng sẽ bằng một cột của H. Nói cách khác, mỗi từ nhận được có thể được coi là nhận được từ một từ mã duy nhất với nhiều nhất là một lỗi. Để giải thích tại sao, ta nhớ rằng một mã hoàn hảo với m bit kiểm tra có độ dài n = 2 1mn   , và chứa 2k từ mã, với k n m  . Có chính xác n từ mà khoảng cách Hamming là 1 đến từ mã 00…0, là các từ mã 10...0, 010...0, 0...010...0, 0...01 (sai khác với từ mã 00…0 duy nhất 1 bit). Tương tự áp dụng cho mỗi từ mã khác. Như vậy tổng số của các từ có chiều dài n mà khoảng cách bằng 1 đến một từ mã là:  2 . 2 2 1 2 2   k k m n kn . Bởi vậy, 2 2 2 . n k k n , trong đó 2n là tổng số những từ có độ dài n; 2k là số những từ mã; 2 .k n số những từ có khoảng cách bằng 1 đến từ mã. Với một mã hoàn hảo, một từ có chiều dài n hoặc chính nó cũng là một từ mã, hoặc có khoảng cách 1 đến một từ mã. Trong trường hợp này Bước 4 của thuật toán không áp dụng được, điều này giải thích tại sao các mã như thế được gọi là “hoàn hảo”. Tất cả điều này giả định rằng tối đa là một lỗi truyền xảy ra. Ví dụ, có thể đối với một từ mã được truyền đi, và nhận được một từ mã khác bởi một số lỗi xảy ra. Thuật toán hội chứng giải mã chỉ có thể kết luận "không có lỗi” trong trường hợp này. 4.4. Mã nhị phân Hamming Một bất lợi của thuật toán trong phần trước là một hội chứng phải được so sánh với các cột của ma trận kiểm tra. Vào năm 1950, Hamming đã nghĩ ra Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 68 một lược đồ, theo đó vị trí của các lỗi đơn có thể nhận được trực tiếp từ hội chứng. Nhớ lại rằng ma trận kiểm tra cho một mã nhị phân s.e.c phải không chứa một cột gồm toàn chữ số 0, hoặc hai cột giống hệt nhau. Hamming chỉ ra rằng, con đường tự nhiên đáp ứng điều kiện này là chọn biểu diễn nhị phân của các số nguyên 1, 2, 3, 4,... như là các cột H. Ví dụ 4.9 Mã Hamming chiều dài 5 Biểu diễn nhị phân của những số nguyên từ đến 5, sử dụng ba bit là: Số thập phân 1 2 3 4 5 Nhị phân 001 010 011 100 101 Những số nhị phân này loại trừ 000 và tất cả đều khác nhau, do đó, viết chúng như các cột của một ma trận kiểm tra, mà thực chất sẽ tạo ra một mã s.e.c. có ba bit kiểm tra. Như trước đây, những bit được đọc từ trái sang phải, và được xếp từ trên xuống dưới, do đó, ví dụ, 001 trở thành 0 0 1          . Thực hiện điều này cho mỗi số nhị phân dẫn đến ma trận: 0 0 0 1 1 0 1 1 0 0 1 0 1 0 1          H . (4.22) Đây là ma trận kiểm tra cho một mã Hamming nhị phân [5,2]. Chú ý rằng H trong (4.22) không còn có dạng mà ba cột đầu tạo nên ma trận 3 I có số chiều 3x3, như trong (4.20). Thay vào đó, chúng là những cột thứ nhất, thứ hai và thứ tư trong (4.20) và chỉ chứa một số 1, tương ứng với biểu diễn nhị phân của 1, 2 và 4. Các bit kiểm tra là x1, 2 x và x4. Viết lại các phương trình kiểm tra Hx = 0, trong đó 1 2 3 4 5 x x x x x x , cho: Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 69 x4 + x5 = 0, x2 + x3 = 0, x1 + x3 + x5 = 0. Do i i x x  trong hệ cơ số 2 nên hệ trên có thể được sắp xếp lại như sau: 1 3 5 x x x  , 2 3 x x , 4 5 x x . Chọn tất cả các giá trị có thể cho các bit thông tin x3 và x5, ta được bảng sau: Bit kiểm tra Bit thông tin 1 x 2 x 4 x 3 x 5 x 0 0 0 0 0 1 1 0 1 0 1 0 1 0 1 0 1 1 1 1 Viết các bit theo thứ tự 1 2 3 4 5 x x x x x sẽ được bốn từ mã 00000, 11100, 10011, 01111. Bây giờ xét giải mã bằng cách sử dụng thuật toán hội chứng trong Mục 4.3. Nếu một lỗi đơn xảy ra thì hội chứng bằng một cột của H. Tuy nhiên, không cần phải kiểm tra H trong (4.22) để xem nó là cột nào. Ví dụ, giả sử một từ đã nhận được là r = 01101, khi ấy hội chứng là: 1 0 0           s Hr Chuyển véctơ cột s thành số nhị phân s = (100)2, như vậy số này trong hệ thập phân là 4, do đó lỗi ở bit thứ tư, và từ mã được truyền là r  00010 = 01111. Xóa các bit kiểm tra x1, x2 và x4 , tin nhắn được giải mã là 11. Điều này minh họa tính chất cơ bản của các mã nhị phân Hamming: biểu diễn nhị phân của hội chứng ngay lập tức chỉ ra bit lỗi. Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 70 Nếu có nhiều hơn một lỗi xuất hiện thì Bước 4 của thuật toán hội chứng giải mã khẳng định rằng hội chứng này không phải là cột của ma trận kiểm tra. Ví dụ, nếu r  11010 thì 1 1 1           s Hr . Chuyển sang số nhị phân (111)2 = 7. Mã có chiều dài chỉ là 5, do đó không thể có lỗi ở bit thứ bẩy: kết luận là nhiều hơn một lỗi đã xảy ra. Ngẫu nhiên, mã trong ví dụ này có thể được sử dụng để gửi bốn tin nhắn là 00, 10, 01, 11 và là cải tiến của mã lặp trong Ví dụ 2.1 vì ở đây chỉ yêu cầu năm bit để sửa các lỗi đơn, trong khi đó mã lặp trong Ví dụ 2.1 yêu cầu sáu. 4.5. Các tính chất của mã nhị phân Hamming [n,k] (1) Mã có độ dài n, kích thước k và m = n - k bit kiểm tra. Nếu 2 1mn  thì mã là hoàn hảo, nếu n < 2m - 1 mã là rút ngắn (shortened). (2) Với i  1,2, ..., n, cột thứ i của ma trận kiểm tra H kích thước m n là vectơ cột được tạo thành từ biểu diễn nhị phân của i sử dụng m bit. (3) Các bit kiểm tra ở những vị trí, nơi mà các cột của H chỉ chứa một chữ số 1, cụ thể là 1 2 4 8 , , , ,...., p x x x x x với 12  mp . (4) Theo cách xây dựng, mã sửa được mọi lỗi đơn, và do đó có khoảng cách tối thiểu là 3. Thật ra,  thực sự là bằng 3. (5) Để giải mã một từ nhận được r, ta tính các hội chứng s = Hr. Nếu 0s  thì coi từ mã r đã được truyền đi. Ngược lại, nếu     2 10  s j n thì giả sử một lỗi đơn xảy ra trong bit thứ j; nếu j > n thì có nhiều hơn một lỗi xảy ra. 6) Đối với mã Hamming hoàn hảo, mỗi hội chứng (ngoại trừ 0) xuất hiện như là một cột của ma trận kiểm tra, và do đó tương ứng với một lỗi đơn sửa được. Đối với mã Hamming rút gọn, một số hội chứng chỉ ra các lỗi kép. Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 71 Ví dụ 4.10 (Mã Hamming hoàn hảo [7, 4]) Ở đây số bit kiểm tra m = 7- 4 = 3, và n = 23 - 1. Biểu diễn nhị phân 6=(110)2 và 7 = (111)2 cho hai cột bổ sung sẽ được nối thêm vào (4.22). Do đó ma trận kiểm tra 3x7 là: 0 0 0 1 1 1 1 0 1 1 0 0 1 1 1 0 1 0 1 0 1 H          . (4.23) Ví dụ, giả sử một từ đã nhận được là r = 0110111, và tối đa một lỗi xảy ra trong truyền tin. Hội chứng là: 0 1 0 0 1 1 1 1 1 1 0 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 1 1 1 1 s Hr                                       . Điều này dẫn đến   2 101 = 5 chỉ ra rằng lỗi xuất hiện tại bit thứ 5 và khi ấy từ mã đã được chuyển là 0110011. Loại các bit kiểm tra 1 2 4 , ,x x x dẫn tới tin nhắn được giải mã là 1011. 4.6. Các p-mã Hamming Một p–mã C có độ dài n đã được định nghĩa trong §3 là một tập hợp các từ mã 1 2 ... n x x x x với i p x  . Dưới đây ta chỉ xem xét các mã với p là một số nguyên tố, do đó p là một trường hữu hạn. Định lý 3.1 về phát hiện và sửa lỗi trong §3 được áp dụng cho bất kỳ p–mã nào, nhưng định nghĩa tuyến tính trong mục 4.1 cần sửa đổi theo cách sau. Cho hai p–từ mã x và 1 2 ... n y y y y , tổng z=x+y có các chữ số   i i iz x y mod p  , i = 1, 2, …, n. Khi ấy C là tuyến tính khi và chỉ khi Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 72 (i)  x y C , với mọi x, y  C và (ii) ax  C với mọi a  p . Đối với mã nhị phân, điều kiện (ii) trở thành luôn đúng vì  2 0,1 . Trọng số của p–từ mã bây giờ là số các chữ số khác không của nó. Với định nghĩa mở rộng này, Định lí quan trọng (4.1) vẫn còn đúng, tức là khoảng cách tối thiểu của một mã tuyến tính bằng trọng số nhỏ nhất của từ mã khác không. Mã tuyến tính có khả năng sửa mọi lỗi đơn ít nhất phải có khoảng cách tối thiểu là 3. Điều này trở về yêu cầu đầu tiên là ma trận H phải không có cột gồm toàn các số 0, giống như trong mã nhị phân; yêu cầu thứ hai trước kia trong mã nhị phân là không có hai cột của ma trận kiểm tra bằng nhau, bây giờ được thay thế bởi điều kiện là không có cột nào là bội khác 0 của cột khác; bội này được xác định bằng cách nhân mỗi phần tử của véctơ x với c  p , đó là   1 1 2 2 mod . . . .                         x cx x cx c p . Phương trình kiểm tra (4.10) bây giờ trở thành Hx ≡ 0 (mod p). Ví dụ 4.11 Mã tuyến tính tam phân Ma trận kiểm tra 0 1 1 2 1 0 2 1       không phải là ma trận cho một mã tam phân s.e.c., bởi vì các cột thứ tư là bằng 2 lần cột thứ ba, đó là, 1 2 2 2 2 4 1                    (mod 3). (4.24) Tuy nhiên, ma trận kiểm tra 0 1 1 1 1 0 1 2        H (4.25) Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 73 xác định một mã tam phân tuyến tính s.e.c, bởi vì không có cột nào là bội của các cột khác. Để xác minh điều này, ta chỉ cần viết ra tất cả các bội khác không của các cột và xác nhận rằng không có cột nào lặp lại. Đối với mã này, từ mã 1 2 3 4 x x x x x được bằng cách giải các phương trình kiểm tra  0 mod 3Hx với H trong (4.25). Điều này cho 2 3 4 0  x x x ; 1 3 4 2 0  x x x . Lấy 3 x và 4 x là chữ số thông tin, những chữ số kiểm tra có thể được biểu diễn như sau (vì -1 = 2, - 2 = 1 theo môđun 3): 1 3 4 3 4 2 3 4 3 4 2 2 ; 2 2 . x x x x x x x x x x            (4.26) Các chữ số 3 x và 4 x độc lập có thể lấy giá trị 0, 1, 2, vậy có 32 = 9 từ mã. Như đối với các mã nhị phân tuyến tính, các giá trị của các chữ số kiểm tra nhận được từ (4.26), theo môđun 3. Ví dụ, khi x3 = 1, x4 = 2 thì x1=2 +2 =1, x2 = 2 + 4 = 0, và các từ mã tương ứng là 1012. Một số từ mã khác được cho trong bảng sau: Chữ số kiểm tra Chữ số thông tin 1 x 2 x 3 x x 4 1 2 0 1 2 1 0 2 2 2 1 0 1 0 1 2 Các mã được xác định bởi ma trận kiểm tra H trong (4.25) thực sự là một mã tam phân Hamming chiều dài 4 với hai bit kiểm tra và hai bit thông tin. Ghi các cột của H như những số trong hệ cơ số 3:   3 01 1   3 10 3 ,   3 11 4 ,   3 12 5 , (4.27) ta thấy các cột của H thỏa mãn các điều kiện quy định cho một mã s.e.c. Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 74 4.7. Các tính chất của p-mã Hamming [n,k] (1) Mã có chiều dài    1 1mn p p   , m chữ số kiểm tra, kích thước k n m  , và chứa kp từ mã. (2) Các cột của ma trận kiểm tra H kích thước m n là các véc tơ cột tạo bởi các số cơ sở p với m chữ số đầu tiên, trong đó chữ số đầu tiên khác không là 1. Những số này được chọn theo chiều tăng của biên độ, nghĩa là: 00..01, 00…010, 00..011, 00…012, …, 00…01(p - 1), 00…0100,… (4.28) (3) Các chữ số kiểm tra ở tại các vị trí mà tại đó những cột của H có các số khác 0 đơn bằng 1. (4) Mã có khoảng cách tối thiểu 3, sửa được mọi lỗi đơn, và là hoàn hảo. (5) Để giải mã một p-từ 1 2 ... n r rr r nhận được, ta tính các hội chứng  mod s Hr p . Nếu s = 0 thì coi từ mã r đã được truyền đi. Ngược lại, thì i s eh , trong đó e  0 và p e , và i h là cột thứ i của H. Một lỗi đơn biên độ e được coi là tại chữ số thứ i, và chữ số được sửa là  i r e . Khẳng định mã là hoàn hảo trong (4) cần được chứng minh. Ta phải chỉ ra rằng mỗi hội chứng khác 0 là bằng e lần một cột nào đó của H, trong đó e ≠ 0 và p e . Bất kì hội chứng khác không s có m phần tử, và có thể được viết trong dạng chuyển vị [0, 0, …, 0, s1, s2, …, sm – q], (4.29) có q số 0, trong đó 0  q m và 1 s là số đầu tiên khác 0 của s, với mọi i p s  . Để s e lần một cột của H thì cột của H phải có dạng: 2 3 0, 0, ..., 0,1, , ,..., m p c c c     . (4.30) So sánh mỗi phần tử trong (4.29) với e lần phần tử tương ứng trong (4.30) cho: Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 75 1 ,s e 2 2 s ec , 3 3 s ec , …,    m q m q s ec . (4.31) Khi p là số nguyên tố, mỗi phần tử của p đều có số nghịch đảo. Nói riêng, 1 1 1 p e s   , do đó (4.32) có thể được giải được: 1 2 1 2 c s s , 1 3 1 3 c s s , …, 1 1     m q m q c s s . Điều này chỉ ra rằng, (4.30) thực sự biểu diễn cột của H hay mã là hoàn hảo. Ví dụ 4.12 Các p-mã Hamming a) Khi 5p  và 3m  , chiều dài của mã được cho bởi tính chất (1) là:    35 1 5 1  n và k = 31 – 3 = 28. Các số với ba chữ số trong cơ số 5 nhận được từ (4.28) là: 001, 010, 011, 012, 013, 014, 100, 101, 102, 103, 104, 110, 111, 112, 113, 114,120,121,122,123, 124, 130, 131, 132, 133, 134, 140, 141, 142, 143, 144. Ta có thể kiểm tra rằng trong hệ thập phân 31 số trên tương đương với các số 1, 2, 7, 9, 25, 26, …, 48, 49, xác nhận rằng những số này đã được sắp xếp theo thứ tự tăng dần. Chúng được sử dụng như các cột của ma trận kiểm tra 3x31 tương ứng với 001, 010, và 100, và có 28 195 3.73 10  từ mã. b) Khi p = 3, m = 2 mã có chiều dài    23 1 / 3 1 4   n . Các số (4.28) được liệt kê trong (4.27), và ma trận kiểm tra H là (4.25). Giả sử một từ nhận được là r = 1200. Theo (4.24) ta có 1 1 2 0 1 1 1 2 0.1 1.2 1.0 1.0 2 1 2 (mod 5) 0 1 0 1 2 0 1.1 0.2 1.0 2.0 1 2 0 0 s H                                                      . Hội chứng này gấp 2 lần cột thứ tư của H, bởi vậy, theo tính chất (5) thì có một lỗi 2e  ở chữ số thứ tư. Chữ số cần sửa của từ nhận được là  4 2 0 2 1 mod3   r , do đó từ mã được truyền đi là 1201. Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 76 c) Khi p = 5 và m = 2 chiều dài của mã là     25 1 6 5 1 n     và 6 2 4k    . Những số cơ số 5 trong (4.28) với hai chữ số theo thứ tự tăng dần là: 01, 10, 11, 12, 13, 14. Chuyển những số này thành những cột theo cách thông thường tạo ra ma trận kiểm tra 0 1 1 1 1 1 1 0 1 2 3 4        H . (4.32) Giả sử từ đã nhận được là r  202123. Sử dụng H trong (4.32), hội chứng là:   2 2 0 0 2 0 1 1 1 1 1 2 0.2 1.0 1.2 1.1 1.2 1.3 3 mod5 1 1 0 1 2 3 4 1 1.2 0.0 1.2 2.1 3.2 4.3 4 2 2 3 3 s H                                                                  . Dễ dàng thấy rằng 5 1 3 3 3        s h . Vì vậy, có một lỗi e = 3 trong chữ số thứ năm của r, được sửa thành 2 – 3 = 1 = 4, từ mã được truyền đi là 202143. d) Khi p =3, m = 3 mã tam phân Hamming có chiều dài    33 1 / 3 1 13   , kích thước k = 13 – 3 = 10. Đổi các số trong (4.28) để nhận được các cột của ma trận kiểm tra 0 0 0 0 1 1 1 1 1 1 1 1 1 0 1 1 1 0 0 0 1 1 1 2 2 2 1 0 1 2 0 1 2 0 1 2 0 1 2 H          . Các chữ số kiểm tra là 1x , 2x và 5x , và có 103 59.049 từ mã. Nếu một từ 1r =1102112100112 nhận được thì ta có thể kiểm tra rằng s = H 1r = 0, do Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 77 đó, các từ mã 1r đã được truyền đi. Nếu một từ khác 2r = 1000101220120 nhận được, ta có thể tính 2 3 0 1 1 s Hr h            . Chữ số thứ ba của 2r được sửa chữa là 0 1 2  , từ mã được truyền đi là 1020101220120. §5. Mã thập phân Một số mã thập phân đã được gặp trên số hiệu hàng hóa châu Âu (EAN) (ví dụ 2.4), ngân phiếu Mỹ (ví dụ 2.5), mã sách tiêu chuẩn quốc tế (ISBN). Điểm đặc trưng chung của chúng là các chữ số của từ mã thuộc  1,2,...,9 (ngoại trừ các chữ số kiểm tra), mặc dù số học modula rất khác nhau giữa đồng dư 9 và 10 hoặc 11 tùy theo những mã đặc biệt. 5.1. Mã số sách tiêu chuẩn quốc tế (ISBN) Mỗi cuốn sách hoặc văn hóa phẩm xuất bản được đồng nhất bởi ISBN của nó, thí dụ như trong Hình 1.2, ISBN là một mã từ gồm 10 chữ số 1 2 10...x x x , trong đó 1x đến 9x là các chữ số thập phân, nhưng chữ số kiểm tra 10x có thể nhận thêm giá trị 10x , được ký hiệu là X (chữ số La Mã có giá trị là 10). Điều này là bởi vì ISBN được xác định với số học môđun 11, để mã được định nghĩa trên trường hữu hạn 11 . Hàng số ở dưới thấp hơn trong Hình 1.2 là số hiệu hàng hóa châu Âu (EAN) cho sách. Những chữ số đầu tiên của một ISBN, được gọi là 'nhóm định danh' (Group Identifier), ký hiệu quốc gia, hoặc nhóm các quốc gia. Ví dụ, 1 0x  được sử dụng cho tất cả các sách (cho dù là bằng tiếng Anh hoặc không) được xuất bản tại Hoa Kỳ, Vương quốc Anh, Canada. Australia và một số nước khác; 1x = 3 chỉ ra một cuốn sách được xuất bản bằng tiếng Đức; Đan Mạch có 1 2 x x = 87, và Thụy Điển 1 2 x x =90. Phần thứ hai của ISBN, được gọi là "nhà xuất bản tiền tố" (Publisher Prefix) Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 78 có thể bao gồm hai, ba, bốn, năm, sáu hoặc bảy chữ số. Những chữ này đồng nhất với nhà xuất bản, ví dụ như những chữ số 2 3 x x =13, là kí hiệu của Prentice Hall. Phần thứ ba của ISBN có thể dài từ một đến sáu chữ số và là "Số tiêu đề" (Title Number), đó là số được gán cho những cuốn sách cụ thể của nhà xuất bản, ví dụ, 053101 trong Hình 1.2. Chiều dài của số tiêu đề phụ thuộc vào độ dài của các phần trước của ISBN, nhưng Identifier Group, Publisher Prefix và Title Number luôn có tổng là chín chữ số. Chữ số cuối 10 x là chữ số kiểm tra, và được chọn sao cho tổng kiểm tra 10 1 2 3 10 1 2 3 ... 10 i i S ix x x x x        (5.1) là một bội số của 11, có nghĩa là,  0 mod 11S  . (5.2) Những dấu gạch nối thường được chèn vào giữa những phần khác nhau của ISBN, nhưng không có ý nghĩa toán học. Đặt tổng (5.1) bằng không, và sử dụng -10 ≡ 1(mod 11) ta đi đến biểu diễn   9 10 1 mod 11 i i x ix   . (5.3) Điều này cho phép tính chữ số kiểm tra theo chín chữ số đầu tiên của ISBN. Dễ dàng thấy rằng nếu tổng bên phải của (5.3) là số thập phân có ba chữ số abc thì (5.3) được rút gọn thành   10 mod11  x a b c . (5.4) Tương tự, nếu trong (5.1) S=  1 2 3 10s s s , thì (5.2) tương đương với 1 2 3 s s s  ≡0 (mod 11). Tất nhiên, dễ dàng để tính toán tổng trong (5.1) và (5.3) bằng cách sử dụng máy tính. Tuy nhiên, ISBN được đưa vào sử dụng khoảng năm 1968, trước khi có các máy tính giá rẻ, do đó, người ta đã tạo ra một bảng sử dụng rất đơn giản cho các thủ thư. Bảng này chỉ cần làm các phép cộng mà không cần phép nhân nào. Điều kiện (5.2) được kiểm tra những quy tắc dưới đây: Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 79 (1) Xây dựng một mảng với ba hàng và mười cột. Các mục trong dòng đầu tiên là 1 2 10 , ,...,x x x , và trong cột đầu tiên là 1 1 1 , ,x x x . (2) Nếu các số trong một cột là 1 2 3 , ,a a a thì các số 2 3 ,b b trong cột bên cạnh bên phải được tính theo các mũi tên sau. Hàng đầu 1 a 1 b 2 a 2 b = 2 a + 1 b 3 a 3 b = 3 a + 2 b (3) Điều kiện (5.2) tương đương với chữ số cuối cùng trong dòng dưới cùng của bảng là 0(mod 11). Để kiểm tra (3), ta xây dựng bảng như sau: 1 x 2 x 3 x 4 x … 10 x 1 x ( 1 x + 2 x ) ( 1 x + 2 x + 3 x ) ( 1 x + 2 x + 3 x + 4 x ) … 1 T 1 x (2 1 x + 2 x ) (3 1 x + 2 2 x + 3 x ) (4 1 x +3 2 x +2 3 x + 4 x ) … 2 T Ta có thể kiểm tra rằng 1 1 2 3 10 ...    T x x x x , và số cuối cùng trong dòng dưới cùng là 2 1 2 3 9 10 10 9 8 ... 2     T x x x x x . Hơn nữa, ta dễ dàng thấy rằng 2 T + S = 11 1 T , trong đó S là tổng trong (5.2), do đó, 2 T ≡ 0(mod 11) khi và chỉ khi S ≡ 0(mod 11). Việc áp dụng các quy tắc (2) có thể làm đơn giản bằng cách thực hiện từng phép cộng riêng lẻ theo môđun 11 trong quá trình xây dựng mảng. Ví dụ 5.1 (Kiểm tra một ISBN) Xét ISBN 3880531013 như trong Hình 1.2. Tổng kiểm tra S trong (5.2) là: 3880531013 1 3 2 8 3 8 4 0 5 5 6 3 7 1 8 0 9 1 10 3 3 5 2 3 7 7 9 8(mod11) 0(mod11).                              Thỏa mãn điều kiện đúng của ISBN. Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 80 Hình 1.2 Sử dụng những quy tắc (1) và (2), mảng được cấu tạo như sau. 3 8 8 0 5 3 1 0 1 3 ISBN 3 11 19 19 24 27 28 28 29 32 3 14 33 52 76 103 131 159 188 220 Số cuối cùng của dòng dưới cùng là 220 đồng dư với 0 (mod 11). Phiên bản đơn giản hơn của bảng này sử dụng phép cộng theo môđun 11 trong suốt quá trình. Ví dụ, các mục trong cột thứ hai giảm thành 8 3 0  ,  3 0 3 mod11  . Bảng đơn giản hơn bảng trên sẽ là: 3 8 8 0 5 3 1 0 1 3 ISBN 3 0 8 8 2 5 6 6 7 10 3 3 0 8 10 4 10 5 1 11 (5.4) Và số cuối cùng là 11 đồng dư với 0 (mod 11), đúng như trên. Qui trình này cũng cho phép ta dễ dàng tìm được chữ số kiểm tra nếu biết các giá trị của 1 x đến 9 x . Trong ví dụ này, giả sử 10 x chưa được biết. Hai cột cuối của mảng sẽ là: 1 10 x 7 10 x + 7 1 10 x +8 Và đòi hỏi 10 x + 8 ≡ 0(mod 11) cho giá trị 10 x =3. Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 81 Ví dụ 5.2 (Sửa ISBN) Giả sử rằng chữ số thứ sáu (bằng 3) trong ISBN ở ví dụ 5.1 đã vô tình bị mất, do đó, ISBN có dạng 38805 1013x . Hoặc là tính S từ (5.2), hoặc sử dụng các mảng đơn giản (5.4). Năm cột đầu tiên (5.4) hoàn toàn như trước, nhưng phần còn lại của mảng đó bây giờ là 5 x 1 0 1 3 2 x+2 x+3 x+3 x+4 x+7 10 x+1 2x+4 3x+7 4x 5x+7 trong đó các tổng đã được lấy đồng dư theo mod 11. Yêu cầu số cuối cùng ở dòng dưới là  5 7 0 mod11x   . (5.5) Lời giải là  5 7 4 mod11x    . Bởi vậy 15 4 9 4 36 3x       . Đó chính là giá trị của các chữ số bị mất. Chú ý rằng do 11 là số nguyên tố nên tồn tại phần tử nghịch đảo trong 11 . Ngoài ra, ta có thể giải (5.5) chỉ đơn giản bằng cách thử x  1, 2, 3 cho đến khi nhận được giá trị đúng là 3x  . Phương trình (5.5) trong 11 cho nghiệm duy nhất. Giả sử nhận được số thập phân gồm 10 chữ số thập phân và phát hiện ra nó không có trong ISBN. Nếu không biết những chữ số nào lỗi thì có thể đã được truyền đi nhiều ISBN. Thậm chí giả thiết thông thường thích hợp nhất là chỉ có một lỗi đơn trong một chữ số, thì cũng không đủ để sửa một lỗi như vậy. Tuy nhiên, mã ISBN phát hiện mọi lỗi trong đó hai chữ số (thông thường, nhưng không phải nhất thiết, liền kề) ngẫu nhiên bị đổi chỗ. Để thấy Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 82 điều này, giả sử một ISBN đúng 1 2 10 ...x x x đã được truyền đi, và từ nhận được có j x và k x bị đổi chỗ, với j k và j x  k x (nếu j x = k x thì không có lỗi). Cho từ nhận được ta có tổng kiểm tra S trong (5.2) chứa các số hạng j k x +k j x thay vì j j x + k k x . Dễ dàng thấy rằng tổng kiểm tra sai khác là ( j x - k x )(k - j) và tích này không thể đồng dư với 0 (mod 11) vì mỗi số hạng đều khác không. Do đó tổng kiểm tra cho từ nhận được không đồng dư với 0 (mod 11), vì vậy lỗi được phát hiện. Nếu như biết hai chữ số liền kề đã được đổi chỗ thì lỗi này có thể sửa được. 5.2. Mã sửa lỗi đơn Mã ISBN hiện nay đã được cải tiến để sửa lỗi đơn. Mã này bao gồm các từ mã có 10 chữ số 1 2 10 , ,...,x x x thỏa mãn với các phương trình kiểm tra trong (5.1) như mã ISBN, cụ thể là   10 1 1 0 mod 11 i i S ix    (5.6) bổ xung thêm một phương trình kiểm tra tính chẵn lẻ   10 2 1 0 mod 11 i i S x    . (5.7) Vì có hai phương trình kiểm tra nên bây giờ có hai chữ số kiểm tra 9 x và 10 x . Những phương trình kiểm tra này xác định một 11-mã, nhưng bỏ qua mọi từ mã chứa chữ số X (=10), mã kết quả chỉ còn chứa các chữ số thập phân đúng (các chữ số 1, 2, ..., 9). Giả sử một lỗi đơn e xảy ra ở vị trí thứ i của một từ mã đã được truyền đi, khi ấy từ nhận được r có i r = i x +e. Như đối với mã ISBN, với từ r nhận được tổng kiểm tra (5.6) có một số hạng bổ xung ie, vì vậy  1 mod11S ie . (5.8) Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 83 Tổng kiểm tra thứ hai (5.7) trở thành 2 S ≡ e (mod 11). Vì thế biên độ của lỗi này là e ≡ 2 S (mod 11), và từ (5.8) vị trí của lỗi này là:    1 11 1 2mod11 mod11i S e S S    . Thuật toán giải mã cho mã này là như sau, trong đó tất cả các phép toán đã được lấy đồng dư theo mod 11: (1) Với từ nhận được r, tính hội chứng 2 1 S Hr S        với 1 1 1 1 1 1 1 1 1 1 1 2 3 4 5 6 7 8 9 10 H        . (5.9) (2) Nếu 1 S = 0, 2 S = 0 thì không có lỗi, và từ mã r đã được truyền đi. (3) Nếu 1 S  0 và 2 S  0 thì giả thiết một lỗi duy nhất xảy ra tại chữ số i= 1 S 1 2 S , và chữ số chính xác là i r - 2 S . (4) Nếu 1 S =0 hoặc 2 S = 0 (nhưng không cả hai) thì ít nhất hai lỗi đã được phát hiện. Thật ra (4) luôn xẩy ra khi hai chữ số được đổi chỗ, nhưng khác với ISBN, mã này có thể phát hiện tất cả các lỗi xẩy ra trên hai chữ số. Điều này là vì mã có khoảng cách tối thiểu là 3. Cách dễ nhất để chứng minh điều này là chú ý rằng các ma trận kiểm tra trong (5.9) chính là ma trận kiểm tra cho 11- mã Hamming 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 2 3 4 5 6 7 8 9 10 H        , nhưng bỏ đi hai cột đầu tiên. Điều này không làm thay đổi khoảng cách tối thiểu, đều là 3 cho các p- mã Hamming. Ví dụ 5.3 (Các ứng dụng của lược đồ giải mã) (a) Với một từ được 0206211909 dễ dàng để tính được bằng cách sử dụng (5.6) và (5.7) là Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 84  1 213 4 mod 11S   ,  2 30 8 mod 11 S . Do đó theo bước (3) ở trên, một lỗi duy nhất đã xảy ra ở vị trí thứ i, với  14 8 4 7 28 6 mod 11i       . Vì vậy chữ số thứ sáu của từ nhận được được sửa lại là 6 8 1 8 7r       4(mod 11), do đó, từ mã được truyền là 0206241909. (b) Với từ nhận được 5764013052 ta kiểm tra 1 S ≡1 và 2 S ≡0(mod 11). Theo bước (4) có ít nhất hai lỗi trong từ nhận được, và yêu cầu truyền tin lại. 5.3. Mã sửa lỗi kép Các mã được trình bày ở trên có khả năng, trong trường hợp tốt nhất, sửa được các các lỗi đơn. Bây giờ ta có thể mô tả mã sửa được tất cả các lỗi kép, nghĩa là, những lỗi trong hai chữ số của một từ mã. Ta bắt đầu với mã s.e.c và chọn những từ mã thỏa mãn ngoài (5.6) và (5.7) còn thêm hai phương trình kiểm tra   10 2 3 1 0 mod 11    i i S i x v à   10 3 4 1 0 mod 11    i i S i x . (5.10) Bây giờ có bốn chữ số kiểm tra 7 x , 8 x , 9 x , 10 x . Giả sử một từ mã 1 2 10 ...x x x đã được truyền và hai lỗi xảy ra ở các vị trí thứ i và thứ j với biên độ 1 e và 2 e tương ứng, khi ấy từ r nhận được có i r = i x + 1 e , j r = j x + 2 e . Từ các biểu diễn của tổng kiểm tra suy ra rằng trong trường hợp này: 1 1 2 2 1 2 2 2 3 3 3 1 2 4 1 2 , , , . S ie je S e e S i e j e S i e j e            . (5.11) Bốn phương trình trong (5.11) sẽ giải được đối với bốn ẩn số i, j, 1 e , 2 e . Một số tính toán đại số thích hợp dẫn đến kết quả là i và j (các vị trí của lỗi) là hai nghiệm của phương trình bậc hai: a 2x + bx + c = 0, (5.12) trong đó: Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 85 2 1 2 3  a S S S , 2 4 1 3  b S S S S , 2 3 1 4  c S S S . (5.13) Khi i và j đã được tìm thấy, thì rất dễ dàng giải hai phương trình đầu tiên trong (5.11) để được    1 2 2 1    e iS S i j , 1 2 2  e S e . (5.14) Lưu ý là nếu chỉ một lỗi xảy ra, thí dụ , với e1≠ 0, e2 ≠ 0 thì trong (5.11) S1=ie1, S2 = e1, S3 = i 2 e1, S4 = i 3 e1, và thay thế các giá trị này vào (5.13) ta được a = 0, b = 0, c = 0. Nghiệm của phương trình bậc hai (5.12) có dạng 2 4 , 2 b b ac i j a     . (5.15) Các căn bậc hai của phần tử q (nếu chúng tồn tại) trong 11 được cho bởi: 1 3 4 5 9 1 hoăc10 5 hoăc 6 2 hoăc 9 4 hoăc 7 3 hoăc8 q q    . (5.16) Thuật toán giải mã cho mã này như sau, trong đó tất cả các tính toán số học được lấy theo môđun 11: (1) Với một từ r nhận được, tính hội chứng 2 1 3 4 . S S S H r S S               , trong đó 2 2 2 2 3 3 3 3 1 1 1 1 ... 1 1 2 3 4 ... 10 1 2 3 4 ... 10 1 2 3 4 ... 10             H . (5.17) (2) Nếu S = 0 (có nghĩa là, S1 = S2 = S3 = S4 = 0) thì giả thiết không có lỗi, và từ mã r đã được truyền đi. Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 86 (3) Nếu S ≠ 0 và a = b = c = 0, thì có một lỗi đơn xảy ra tại chữ số i= 1 1 2 S S , và chữ số được sửa là ri – S2. (4) Nếu S ≠ 0 và a ≠ 0, c ≠ 0, và q = b2 – 4ac có một giá trị căn bậc hai trong 11 theo (5.16), khi đó giả thiết là có lỗi ở các vị trí thứ i, j cho bởi (5.15). Các chữ số này được sửa là ri – e1, rj – e2 , trong đó e1 và e2 được cho bởi (5.14). (5) Nếu các điều kiện (2), (3) hoặc (4) không thỏa mãn, thì có ít nhất ba lỗi đã được phát hiện. Từ (5.16) ta thấy rằng điều này bao gồm cả các trường hợp (4) khi q nhận một trong giá trị 2, 6, 7, 8, bởi vì các số này không có căn bậc hai trong 11 . Có thể chỉ ra rằng mã có khoảng cách tối thiểu là 5, do đó, theo Định lý trong §3, mã này sửa được tất cả các lỗi kép. Ví dụ 5.4 (Ứng dụng của thuật toán giải mã) (a) Giả sử một từ được nhận là 3254571396. Các tổng S1, S2, S3 và S4 trong (5.6), (5.7) và (5.8) được tính toán với số học môđun 11. Để thuận tiện cho việc tính toán ta đưa ra bảng sau: i x 3 2 5 4 5 7 1 3 9 6 i 1 2 3 4 5 6 7 8 9 10 2i 1 4 9 5 3 3 5 9 4 1 3i 1 8 5 9 4 7 2 6 3 10 Trước tiên, 2 1  iS x , và lấy tích theo môđun 11 của dòng đầu tiên của bảng với các hàng tiếp theo ta được: 1 1 3 2 2 3 5 4 4 5 5 6 7 7 1 8 3 9 9 10 6 2S                      Và tương tự 2 3 10  iS i x ; 3 4 3  iS i x . Từ (5.13) ta có Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 87 a = 4 – 1  10 = - 6 = 5; b = 1  3 – 2  10 = - 17 = 5; c = 100 – 2  3 = 6. Vì vậy, đại lượng q = 2b - 4ac trong bước (2) là: Q = 25 – 4  5  6 = - 95 = 4. Nghĩa là 2q trong (5.16). Do đó các điều kiện trong bước (4) của thuật toán được thỏa mãn. Vậy có hai lỗi đã được truyền đi. Từ (5.15) các lỗi này xảy ra ở các vị trí   1, 5 2 10  i j . Vì 110 10  nên 3 10 30 3i       ; 7 10 7j     . Biên độ của các lỗi tính được từ (5.14) là    1 1 2 3 1 2 3 7 7 8e        và 1 e = 1 - 8 = 4. Do đó các giá trị chính xác của các chữ số thứ ba và thứ bảy là 3 r - 4 = 5 - 4 = 1 và 7 r - 8 = 1 - 8 = - 7 = 4. Từ nhận được khi ấy được giải mã là 3214574396. Nhận xét rằng sử dụng giá trị 4 9 trong (5.16) ta được    1, 5 9 10 5 9 10 30;40 3;7i j          như trên khi chọn giá trị 4 2 . Cũng chú ý rằng điều kiện c ≠ 0 trong Bước (4) là cần thiết cho việc sửa chữa hai lỗi, vì nếu c = 0 thì (5.12) có một nghiệm i = 0, vô lí. (b) Giả sử một từ được nhận là 4063101012. Lặp lại những tính toán trên cho 1 9S , 2 S = 7, 3 S = 10, 4 S = 2 và a = 0, b = 1, c = 5. Bởi vì a = 0 nên từ Bước (5) của thuật toán suy ra có ít nhất ba lỗi được phát hiện và yêu cầu truyền tin lại. Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 88 KẾT LUẬN Dựa trên cơ sở của lý thuyết đồng dư và trường hữu hạn, luận văn có mục đích tìm hiểu và trình bày những kiến thức, những kết quả cơ bản, sơ đẳng nhất của lý thuyết mã sửa sai. Ứng dụng lý thuyết số nói riêng, công cụ toán học nói chung (đại số tuyến tính, hệ đếm,…) cho phép nhận được nhiều kết quả quan trọng trong mã sửa sai, cũng như trong lý thuyết mật mã. Điều này có thể xem thêm trong các tài liệu tham khảo [1], [6], [7],... Qua đây ta cũng thấy rằng, nhiều thành tựu toán học tưởng chừng như chỉ có ý nghĩa về lý thuyết, lại mang đến những ứng dụng quan trọng và bất ngờ trong thực tế. Nhiều kiến thức toán học tưởng chừng như sơ cấp (được giảng dạy trong trường phổ thông, thậm chí cấp Trung học cơ sở), nhưng có thể giảng dạy trong mối liên kết với những thành tựu ứng dụng mới trong tin học và đời sống. Hơn nữa, học sinh phổ thông hoàn toàn có đủ khả năng tiếp thu những kiến thức mới có nhiều ứng dụng này (hệ đếm, mã sửa sai, lý thuyết mật mã, lý thuyết đồ thị, toán rời rạc,…). Hy vọng rằng chương trình toán sơ cấp sẽ được bổ xung những mảng kiến thức toán này. Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 89 TÀI LIỆU THAM KHẢO Tiếng Việt [1] Phạm Huy Điển, Hà Huy Khoái, Mã hóa thông tin: Cơ sở toán học và ứng dụng, Nhà xuất bản Đại học Quốc gia, Hà Nội, 2004. [2] Nguyễn Hữu Hoan, Lý thuyết số, Nhà xuất bản Đại học Sư phạm, Hà Nội, 2007. [3] Bùi Doãn Khanh, Nguyễn Đình Thúc, Mã hóa thông tin, Lý thuyết & ứng dụng, Nhà xuất bản Lao động Xã hội, Thành phố Hồ Chí Minh, 2004. [4] Hà Huy Khoái, Nhập môn Số học thuật toán, Nhà xuất bản Khoa học, Hà Nội, 1996. [5] Hà Huy Khoái, Phạm Huy Điển, Số học thuật toán: Cơ sở lý thuyết và Tính toán thực hành, Nhà xuất bản Đại học Quốc Gia, Hà Nội, 2003. Tiếng Anh [6] Stephen Barnett, Discrete Mathematics: Numbers and Beyond, Addison Wesley Longman, Singapore, 1998. [7] Sebastià Xambó-Descamps, Block Error-Correcting Codes, A Computational Primer, Springer-Verlag, 2000. [8] Một số trang WEB và tạp chí Toán.

Các file đính kèm theo tài liệu này:

  • pdfdoc348.pdf