Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [An toàn thông tin] Giải mã mật mã hoán vị cột (Columnar Transposition)

    Mật mã hoán vị cột (Columnar Transposition) mã hóa như sau: cho từ khóa độ dài nnn (có thể có ký tự lặp) và bản rõ; nếu độ dài bản rõ không chia hết cho nnn thì đệm X vào cuối. Bản rõ (đã đệm) được viết theo hàng vào một bảng có nnn 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 nnn), 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=4n=4n=4), bản mã EAOTTNMMNEEO. Khôi phục được bản rõ MEETMEATNOON.

    • Định dạng đầu vào:

      Dòng 1: từ khóa (chữ in hoa A-Z, độ dài nnn 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 nnn, từ nnn đến 10410^4104).

    • Định dạng đầu ra:

      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...