Chương 4 ĐÁNH GIÁ CÁC ĐẶC TRƯNG THỐNG KÊ CỦA THUẬT TOÁN CRYPT(D)
4.2 Khoảng cách Hamming
Trong lý thuyết thông tin, Khoảng cách Hamming (Hamming distance) giữa hai dãy ký tự (strings) có chiều dài bằng nhau là số các ký hiệu ở vị trí tương đương có giá trị khác nhau. Nói một cách khác, khoảng
cách Hamming đo số lượng thay thế cần phải có để đổi giá trị của một dãy
ký tự sang một dãy ký tự khác, hay số lượng lỗi xảy ra biến đổi một dãy ký
tự sang một dãy ký tự khác. Lấy ví dụ:
Khoảng cách Hamming giữa 1011101 và 1001001 là 2. Khoảng cách Hamming giữa 2143896 và 2233796 là 3. Khoảng cách Hamming giữa "toned" và "roses" là 3.
Trọng lượng Hamming (Hamming weight) của một dãy ký tự là khoảng cách Hamming từ một dãy ký tự toàn số không có cùng chiều dài. Có nghĩa là số phần tử trong dãy ký tự không có giá trị không (0): đối với một chuỗi nhị phân (binary string), nó chỉ là số các ký tự có giá trị một (1),
lấy ví dụ trọng lượng Hamming của dãy ký tự 11101 là 4.
Đặc tính
Đối với một chiều dài cố định "n", khoảng cách Hamming là độ đo trên không gian vectơ của các từ có chiều dài đó, vì nó thỏa mãn yêu cầu về tính chất số không âm (non-negativity) (số tuyệt đối), hiện thân của tính bất khả phân định (indiscernibles) và tính đối xứng (symmetry), và nó có thể được chứng minh một cách dễ dàng bằng phép quy nạp toàn phần (complete induction) rằng nó còn thỏa mãn bất đẳng thức tam giác (triangle inequality) nữa.
Khoảng cách Hamming giữa hai từ a và b còn được gọi là trọng
lượng Hamming (Hamming weight) của phép toán a−b, dùng một toán tử
thích hợp thay thế cho toán tử "−".
Đối với hai dãy ký tự nhị phân (binary strings) a và b, phép toán
này tương đương với phép toán a XOR b. Khoảng cách Hamming của các
dãy ký tự nhị phân còn tương đương với khoảng cách Manhattan (Manhattan distance) giữa hai giao điểm của một hình giả phương cấp n
(n-dimensional hypercube), trong đó n là chiều dài của các từ.