Mật mã Caesar

Bách khoa toàn thư mở Wikipedia
Bước tới: menu, tìm kiếm
'
Caesar3.svg
Nguyên tắc của mật mã Caesar là văn bản mã được tạo ra bằng cách thay thế mỗi chữ cái trong văn bản với một chữ cái cách nó một đoạn cho trước trong bảng chữ cái. Trong ví dụ trên độ dịch là 3.
Thông tin chung
Tác giả
Năm công bố
Phát triển từ
Các thuật toán dựa trên
Chi tiết thuật toán
Khối dữ liệu
Độ dài khóa
Cấu trúc
Số chu trình
Phá mã
Dễ bị bẻ gãy bằng phân tích tần suất hoặc tấn công vét cạn.

Trong mật mã học, mật mã Caesar, còn gọi là mật mã dịch chuyển, là một trong những mật mã đơn giản và được biết đến nhiều nhất. Mật mã là một dạng của mật mã thay thế, trong đó mỗi ký tự trong văn bản được thay thế bằng một ký tự cách nó một đoạn trong bảng chữ cái để tạo thành bản mã. Vĩ dụ, nếu độ dịch là 3, A sẽ được thay bằng B, Ă sẽ được thay bằng C và cứ thế đến hết. Phương pháp được đặt tên theo Caesar, vị hoàng đế đã sử dụng nó thường xuyên trong công việc.

Bước mã hóa bằng mã Caesar thường được kết hợp với một mã phức tạp hơn, ví dụ như mật mã Vigenère, và hiện nay vẫn được dùng trong các ứng dụng hiên đại như ROT13. Cũng như các mật mã thay thế dùng một bảng mã khác, mã Xê da dễ dàng bị phá vỡ và không đáp ứng được yêu cầu an toàn thông tin trong truyền thông.

Ví dụ[sửa | sửa mã nguồn]

Phép dịch chuyển có thể được biểu diễn bằng hai bảng chữ cái, ví dụ dưới đây bước dịch chuyển là 3, con số này cũng gọi là khóa mã:

Bảng chữ cái thường:   ABCDEFGHIJKLMNOPQRSTUVWXYZ
Bảng chữ cái mật mã:   DEFGHIJKLMNOPQRSTUVWXYZABC

Với bản chữ cái Tiếng Việt:

Bảng chữ cái thường:   AĂÂBCDĐEÊGHIKLMNOÔƠPQRSTUƯVXY
Bảng chữ cái mật mã:   BCDĐEÊGHIKLMNOÔƠPQRSTUƯVXYAĂÂ

Khi mã hóa hay giải mã, người ta thay thế mỗi chữ cái với chữ cái cùng hàng trong bảng trên.

Mật mã cũng có thể được thực hiện bằng số học mô đun. Đầu tiên ta chuyển đổi các chữ cái sang số, A = 0, Ă = 1, Â = 2, B = 3,... Y = 28.[1] Mã hóa ký tự x bằng cách dịch chuyển một đoạn n có thể được mô tả bằng công thức toán học dưới đây:[2]

E_n(x) = (x + n) \mod {29}.

Và giải mã:

D_n(x) = (x - n) \mod {29}.

(Có nhiều định nghĩa cho phép toán mô đun. Trong trường hợp trên, kết quả phải nằm trong khoảng từ 0...28. Do đó nếu x+n hoặc x-n không nằm trong đoạn 0...28, ta phải cộng hoặc trừ nó với 29.)

Phép thế vẫn giữ nguyên cho toàn bộ văn bản, vì vậy mà mã hóa Xê da được xếp loại vào mã thay thế một bảng chữ cái, khác với mã thay thế nhiều bảng chữ cái.

Giải mã[sửa | sửa mã nguồn]

Dịch ngược lại dựa theo bảng mật mã trên.

Ví dụ[sửa | sửa mã nguồn]

Đầu tiên ta có văn bản Help we are being attacked với khóa mã là 15

Mã hóa[sửa | sửa mã nguồn]

Ta tạo ra bảng chữ cái để mã hóa:

Bảng chữ cái thường:   ABCDEFGHIJKLMNOPQRSTUVWXYZ
Bảng chữ cái mật mã:   PQRSTUVWXYZABCDEFGHIJKLMNO

Ta sẽ thay các chữ H=W, E=T, L=A, ...

Văn bản ban đầu: Help we are being attacked
Văn bản mã hóa:  Wtae Lt Pgt Qtxcv Piiprzts

Giải mã[sửa | sửa mã nguồn]

Cũng theo bảng trên, ta thay các chữ W=H, T=E, L=A, ...

Văn bản mã hóa:  Wtae Lt Pgt Qtxcv Piiprzts
Văn bản ban đầu: Help we are being attacked

Tham khảo[sửa | sửa mã nguồn]

  1. ^ Luciano, Dennis; Gordon Prichett (January năm 1987). “Cryptology: From Caesar Ciphers to Public-Key Cryptosystems”. The College Mathematics Journal 18 (1): 3. doi:10.2307/2686311. 
  2. ^ Wobst, Reinhard (2001). Cryptology Unlocked. Wiley. tr. 19. ISBN 978-0470060643. 

Thư mục[sửa | sửa mã nguồn]

Liên kết ngoài[sửa | sửa mã nguồn]


Mật mã cổ điển
Mật mã: ADFGVX | Affine | Atbash | Khóa tự động | Hai chiều | Sách | Caesar | Dvorak | Bốn hình vuông | Hill | Chuyển vị | Chuồng heo | Playfair | Đa ký tự | Reihenschieber | Khóa di động | Thay thế | Dịch chuyển | Ba chiều | Hai hình vuông | Vigenère
Phân tích mã: Phân tích tần suất | Chỉ số trùng hợp | Phép thử Kasiski
Linh tinh: Mật mã | Bảng Polybius | Gậy | bảng kiểm tra Straddling | Tabula recta