Mật mã Vigenère là phương pháp mã hóa văn bản bằng cách xen kẽ nhiều phép mã hóa Caesar khác nhau dựa trên các ký tự của từ khóa. Đây là một biến thể đơn giản của mật mã thay thế sử dụng nhiều bảng chữ cái.
Những sự kiện lịch sử
Giới thiệu
Trong phương pháp mã hóa Caesar, mỗi ký tự trong bảng chữ cái được dịch chuyển một số bước nhất định. Ví dụ, nếu bước dịch là 3, thì A chuyển thành D, B chuyển thành E, và cứ như vậy. Mật mã Vigenère kết hợp nhiều phép mã hóa Caesar với các bước dịch khác nhau.
Để thực hiện mã hóa, chúng ta sử dụng bảng Vigenère (như hình minh họa). Bảng này gồm 26 hàng, mỗi hàng dịch sang trái một bước so với hàng trên, tạo ra 26 bảng mã Caesar khác nhau. Trong quá trình mã hóa, tùy thuộc vào từ khóa, chúng ta sẽ chọn hàng tương ứng để mã hóa từng ký tự của văn bản.
Chẳng hạn, nếu có một văn bản cần mã hóa như sau:
- ATTACKATDAWN
Người dùng chọn một từ khóa và lặp lại nó nhiều lần trên một dòng cho đến khi số ký tự trên dòng bằng số ký tự trong thông điệp. Ví dụ với từ khóa 'LEMON', ta sẽ có:
- LEMONLEMONLE
Chữ cái đầu tiên của thông điệp, A, được mã hóa dựa trên dòng bắt đầu với L (chữ cái đầu tiên của từ khóa). Chữ A sẽ được mã hóa thành chữ cái trên dòng L và cột A của bảng Vigenère, đó là chữ L. Tương tự, chữ cái thứ hai sẽ được mã hóa dựa trên chữ cái thứ hai của từ khóa: chữ trên dòng E và cột T là X. Dưới đây là bản mã hóa kết quả:
Văn bản: | ATTACKATDAWN |
Từ khóa: | LEMONLEMONLE |
Bản mã: | LXFOPVEFRNHR |
Phương pháp giải mã Vigenère
Để giải mã, ngoài mật mã, ta cần từ khóa (như ví dụ trên). Đầu tiên, lấy chữ cái đầu tiên của từ khóa (ở đây là chữ L), tìm chữ cái đó trên hàng đầu của bảng mã. Sau đó, từ chữ cái tìm được, dò xuống để tìm chữ cái tương ứng trong mã (ở đây là chữ L). Tiếp theo, di chuyển đến chữ cái tương ứng trên cột dọc đầu tiên từ trái sang phải. Lần lượt giải mã từng ký tự theo cách này.