i. Mã hóa khóa công khai
3.3.1. Hệ mã hóa Caesar
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 D, Z 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.
Hình CIII.III.1 Mẫ Caesar với độ dịch là 3
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.
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. Mã hóa ký tự 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:
52 (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 Caesar đượ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.
3.3.2. Hệ mã hóa Vigenere
Trong phép mã hóa Caesar, mỗi ký tự của bảng chữ cái được dịch đi một khoảng nhất định, ví dụ với bước dịch là 3, A trở thành D, B trở thành E... Mật mã Vigenère là sự kết hợp xen kẽ vài phép mã hóa Caesar với các bước dịch khác nhau.
53 Để mã hóa, ta dùng một hình vuông Vigenère (hình trên). Nó gồm 26 hàng, mỗi hàng dịch về bên trái một bước so với hàng phía trên, tạo thành 26 bảng mã Caesar. Trong quá trình mã hóa, tùy theo từ khóa mà mỗi thời điểm ta dùng một dòng khác nhau để mã hóa văn bản.
Ví dụ, ta có văn bản cần mã hóa như sau: ATTACKATDAWN
Người gửi lựa chọn một từ khóa và viết nó lặp lại nhiều lần trên một dòng đến khi số chữ cái trên dòng bằng số chữ cái trong thông điệp, với từ khóa "LEMON" thì:
LEMONLEMONLE
Chữ cái đầu tiên của văn bản, A, được mã hóa bằng bảng bắt đầu với L (chữ cái đầu tiên của từ khóa). Nó sẽ được mã hóa thành chữ cái trên dòng L và cột A của hình vuông Vigenère, đó là chữ L. Tương tự như vậy, chữ cái thư hai của văn bản sẽ được mã hóa bằng chữ cái thứ hai của từ khóa: chữ trên dòng E và cột T là X. Sau đây là bản mã:
Văn bản: ATTACKATDAWN
Từ khóa: LEMONLEMONLE
Bản mã: LXFOPVEFRNHR
Như vậy trong hệ mã hóa Vigenere, với khóa có độ dài là d thì sẽ có khóa hợp lệ, vì vậy phương pháp thám mã vét cạn sẽ đòi hỏi khá nhiều thời gian ngay cả với giá trị d là nhỏ.
54 CHƯƠNG 4. TỔNG QUAN VỀ NÉN VÀ GIẢI NÉN