Mật mã Hill
Bài viết này cần thêm chú thích nguồn gốc để kiểm chứng thông tin. |
Bài viết hoặc đoạn này cần được wiki hóa để đáp ứng tiêu chuẩn quy cách định dạng và văn phong của Wikipedia. |
Mật Mã Hill được đề xuất bởi Lester.S.Hill năm 1929. Mã cũng được thực hiện trên từng bộ m ký tự. mỗi ký tự trong bản mã một tổ hợp tuyến tính (trên vành Z26) của m ký tự trong bản rõ. Khoá sẽ được cho bởi một ma trận cấp m, tức nó là một phần tử của Z26mxm.
Định nghĩa
[sửa | sửa mã nguồn]Mã Hill là bộ (P, C, K, E, D), thỏa mãn: • P = C = Z26m, với m là một số nguyên dương. • K = {k Z26m x m | (|k|, m) = 1}.
k = K. Ta định nghĩa:
Khoá lập mã: ek(x1, x2, …, xm) = (x1, x2, …, xm).k Khoá giải mã: dk(y1, y2, …, ym) = (y1, y2, …, ym).k-1
Ví dụ
[sửa | sửa mã nguồn]m = 2; k = |k| = 1 (mod 26) vì thế k-1 =
Với các bộ 2 ký tự (x1, x2) ta có thể mã hoá theo công thức sau: (y1, y2) = (x1, x2).k = (x1, x2). = (11x1 + 3x2, 8x1 + 7x2) Khoá giải mã sẽ là: (x1, x2) = (y1, y2).k-1 = (y1, y2). = (7y1 + 23y2, 18y1 + 11y2) Nhận xét: 1. Số lượng khoá không có công thức tường minh để tính. 2. Nếu biết m cũng có thể dễ dàng dùng máy tính để giải mã.
Phân tích mã
[sửa | sửa mã nguồn]