(chưa hoàn thành)
Sách mã:
Định nghĩa. Sách mã là hình thức mã hóa sử dụng một bảng tra bí mật (bảng mã) với một hay nhiều codeword (từ mã) đại diện cho từng (cụm) từ hay chữ cái. Bảng tra này tương tự như từ điển, người ta sẽ dùng hai codebook (sách mã), một quyển để mã hóa và quyển còn lại để tra ngược giải mã. Có thể hiểu nó như một dạng từ lóng nhưng thành văn.
Một quyển mã có thể có đến 3500 từ mã. Thường phạm vi càng nhỏ, càng chuyên hóa, số từ mã sẽ giảm theo còn đến vài chục - vài trăm từ.
Với những cụm từ quan trọng hay danh từ riêng, một cụm từ có thể ứng với nhiều mã, nhưng một mã chỉ thay cho 1 cụm từ duy nhất. Ngoài ra một quyển mã còn có những từ mã đặc biệt như:
- Vô nghĩa: Những từ mã này được chèn vào để làm rối những kẻ tò mò muốn đọc chúng, tạo ra những dấu hiệu sai lệch.
- Mã điều khiển: Những từ mã dạng này có nhiều công dụng như:
+ Chuyển bảng mã: Một sách mã khác có thể dùng cho những mục đích khác với sách chính như mã hóa con số, mở rộng hay chuyên biệt hóa cho sách mã chính.
+ Chuyển mode: Người ta có thể dùng mode để ghi cả bạch văn xen kẽ vào (tuy nhiên chẳng ai làm chuyện này!), hoặc mỗi mode một bảng mã kiểu n-trong-một.
+ Thay đổi bản mã: Một từ mã "khét tiếng" có công dụng xóa từ mã đứng trước hay sau nó. Ngoài ra còn có thể tạo ra từ mã có tác dụng nhảy qua cả 6 - 7 từ mã phía sau, nhưng không thực tiễn cho lắm.
Để cho tiện sử dụng và dễ thay đổi, thay vì sử dụng quyển sổ mã soạn rất công phu người ta có thể dùng ma trận tọa độ mã với các cụm cho sẵn. Chỉ cần đánh lại tọa độ với sửa vị trí ô là xong. Số từ mã cũng bị cố định và nhỏ hơn nhiều. Ví dụ như bảng một số âm vần tiếng Việt thông dụng sau:
*** 7,6 3,8 2,0 9,4 5,1
9,1 TH. NG. G.. N.. T
... ANH ONG ACH IEU ___
6,8 TR. B.. H.. O.. U
... A.. INH AT. UAN AI.
3,4 CH. D.. I.. P.. NH
... OAN AU. __. IET AO.
7,2 S.. M.. K.. Q.. X
... UON EN. IEU UY. [1/2]
0,5 V.. E.. L.. R.. Y
... IEN ANG ICH UOC [D/W]
__: cách từ
___: chấm câu
[1/2]: trên/dưới
[D/W]: đổi qua số hoặc chữ. Dùng số thì phải lặp lai hai lần.
Code không chỉ dùng để giữ bí mật mà còn có những bảng mã công khai với các công dụng:
- Truyền thông: Semaphore (code bằng hình ảnh), ghi các kí tự dưới dạng xung điện để truyền hữu tuyến (Morse), 8b/10b để đảm bảo tín hiệu có đặc điểm thích hợp trên cáp đồng trục.
- Lưu trữ: trong máy tính hiện đại (EBCDIC, ASCII, Shift JIS, UTF-8, ...), là "ruột" của các gói tin.
- Sửa lỗi: dùng thêm kí tự hay bit để nhận dạng và sửa lỗi.
- Nén: dùng các bảng mã được quy ước chuẩn để giảm chi phí điện tín (commercial codes) và tăng tốc độ truyền Morse (code Q và Z), mã Huffman được tạo bằng chính bản văn.
Rõ ràng việc mã hóa bằng code nếu không soạn kĩ bảng mã thì "sai một li, đi một dặm", mà truyền tin thì vẫn có lỗi do người soạn, người phát và đường truyền. Ta sẽ tìm hiểu một vài đặc điểm của từ mã.
Khoảng cách Hamming giữa hai từ mã là số kí tự khác nhau giữa chúng, hay nói cách khác là số kí tự bị thay thế để từ mã này biến thành từ mã kia. Điều kiện cần để phát hiện lỗi thay k kí tự là hai từ mã phải cách nhau tối thiểu k+1, vì sai dưới k kí tự thì mới ra một từ mã không hợp lệ. Vậy để phát hiện sai 1 kí tự thì ta cần phải xây dựng bảng mã có 3 kí tự trở lên. Để cho cụ thể, ta sẽ xây dựng bảng mã 4 kí tự từ tập chuỗi gồm 0, 1, 2 và 3 có khoảng cách Hamming bằng 2 bằng một quá trình đơn giản.
Ta bắt đầu từ 0000. Từ mã tiếp theo không phải là 0001 vì phải khác những 2 kí tự, nên ta có 0011, 0022 và 0033. Tiếp theo sẽ là 0101, ta sẽ tuân theo quy luật sau: Hiệu xoay vòng của hai kí tự sau (theo cách định nghĩa nào đó) là không đổi khi tiếp đầu ngữ thay đổi.
Ta xây dựng được bảng 0 sau:
0000 0011 0022 0033
0101 0112 0123 0130
0202 0213 0220 0231
0303 0310 0321 0330
Bảng 1 chắc chắn ta không thể dùng lại 1000, nhưng ta vẫn muốn giữ tiếp đầu ngữ 10/11/12/13. Vậy ta bắt đầu từ 1001. Đến đây bạn đọc tự xây dựng 3 bảng còn lại. Bảng 3 có nội dung như sau:
...............................
3201 3212 3221 3230
3302 3313 3320 3331
Bình thường ta có 4^4 = 256 từ mã, nhưng với khoảng cách Hamming bằng 2 ta chỉ có 64 từ. Trong mã nhị phân thì đây chính là trường hợp của bit chẵn-lẻ. Có thể lí giải như sau: Khi bạn đã chọn 1 từ mã thì đồng thời 3 từ mã còn lại không được chọn nữa, vì khác nhau chỉ 1 kí tự.
Code này chỉ có thể phát hiện sai 1 kí tự và không thể sửa được, ví dụ như code 0212 là sai, mà nó ứng với những 3 code đúng.View more latest threads same category: