Mật mã hoán vị cột (Columnar Transposition) mã hóa như sau: cho từ khóa độ dài n (có thể có ký tự lặp) và bản rõ; nếu độ dài bản rõ không chia hết cho n thì đệm X vào cuối. Bản rõ (đã đệm) được viết theo hàng vào một bảng có n cột, mỗi cột ứng với một ký tự của từ khóa. Bản mã thu được bằng cách đọc các cột theo thứ tự alphabet của ký tự từ khóa tương ứng (nếu hai ký tự từ khóa giống nhau, cột có ký tự từ khóa nằm bên trái hơn trong từ khóa được đọc trước), đọc từ trên xuống dưới trong mỗi cột.
Cho từ khóa và một bản mã (được tạo đúng theo thuật toán trên, độ dài bản mã luôn là bội số của n), hãy khôi phục bản rõ (đã đệm — không cần loại bỏ X đệm ở cuối nếu có).
Ví dụ: từ khóa LOCK (n=4), bản mã EAOTTNMMNEEO. Khôi phục được bản rõ MEETMEATNOON.
Dòng 1: từ khóa (chữ in hoa A-Z, độ dài n từ 1 đến 20, có thể lặp ký tự). Dòng 2: bản mã (chữ in hoa A-Z, độ dài là bội số của n, từ n đến 104).
Một dòng duy nhất là bản rõ khôi phục được (chữ in hoa A-Z), cùng độ dài với bản mã.
Ví dụ:
Đầu vào:
SECRET
TDXTTXCWXAAXAAXKNX
Đầu ra:
ATTACKATDAWNXXXXXX
Đầu vào:
LOCK
EAOTTNMMNEEO
Đầu ra:
MEETMEATNOON
Đang tải editor...