Cho mật mã Playfair (xây bảng 5×5 từ từ khóa theo đúng quy tắc: bỏ ký tự lặp trong từ khóa, coi J như I, rồi điền tiếp các chữ cái còn thiếu theo thứ tự A→Z, bỏ qua J) và một bản mã có độ dài chẵn được tạo đúng theo quy tắc mã hóa Playfair (mã hóa từng cặp: cùng hàng → dịch phải; cùng cột → dịch xuống; khác hàng khác cột → đổi chéo cột). Hãy giải mã để khôi phục bản rõ. Lưu ý: in nguyên kết quả giải mã từng cặp, không cần loại bỏ các ký tự X đệm hay chèn thêm trong quá trình mã hóa gốc.
Quy tắc giải mã từng cặp (x,y) (đảo ngược quy tắc mã hóa):
Ví dụ: từ khóa CIPHER, bản mã ECSPGSVQBGBY. Giải mã cho ra HELXLOWORLDX (chính là bản rõ HELLOWORLD sau khi Playfair chèn X giữa cặp LL trùng nhau lúc mã hóa).
Dòng 1: từ khóa (chữ in hoa A-Z, độ dài từ 1 đến 50, có thể lặp ký tự). Dòng 2: bản mã (chữ in hoa A-Z, độ dài chẵn, từ 2 đến 104).
Một dòng duy nhất là kết quả giải mã từng cặp (chữ in hoa A-Z), cùng độ dài với bản mã.
Ví dụ:
Đầu vào:
SECURITY
OTAFTVBYYSUQ
Đầu ra:
MATHEMATICSX
Đầu vào:
CIPHER
ECSPGSVQBGBY
Đầu ra:
HELXLOWORLDX
Đang tải editor...