Mật mã Vigenère là mở rộng của mật mã Caesar, dùng một từ khóa lặp lại tuần hoàn để dịch chuyển từng ký tự của bản rõ.
Cho bản rõ P chỉ gồm các chữ cái in hoa từ A đến Z (không có khoảng trắng) và khóa K cũng chỉ gồm chữ in hoa. Đánh số các chữ cái A=0, B=1, ..., Z=25. Với ký tự thứ i của P (đánh số từ 0), ký tự khóa tương ứng là Kimod∣K∣ (khóa được lặp lại tuần hoàn cho đến hết bản rõ). Ký tự mã hóa được tính theo công thức:
Ci=(Pi+Kimod∣K∣)mod26
Hãy in ra bản mã C.
Ví dụ: với P= HELLOWORLD và K= KEY, ta lặp khóa thành KEYKEYKEYK rồi cộng từng vị trí theo công thức trên, kết quả là RIJVSUYVJN.
Dòng 1: chuỗi bản rõ P (1≤∣P∣≤105), chỉ gồm chữ in hoa A-Z. Dòng 2: chuỗi khóa K (1≤∣K∣≤100), chỉ gồm chữ in hoa A-Z.
Một dòng duy nhất: chuỗi bản mã, chỉ gồm chữ in hoa A-Z, có cùng độ dài với P.
Ví dụ:
Đầu vào:
A
A
Đầu ra:
A
Đầu vào:
HELLOWORLD
KEY
Đầu ra:
RIJVSUYVJN
Đang tải editor...