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] Mã hóa Vigenère

    Mã Vigenère khắc phục nhược điểm tần suất cố định của mã Caesar bằng cách sử dụng một từ khóa KKK (chỉ gồm chữ cái) để tạo dịch chuyển thay đổi theo vị trí. Cho bản rõ SSS và khóa KKK (không rỗng). Chỉ số các ký tự là chữ cái trong SSS được đánh số 0,1,2,…0, 1, 2, \dots0,1,2,… (bỏ qua các ký tự không phải chữ cái). Chữ cái là chữ cái thứ iii trong dãy đó được dịch chuyển theo độ dịch của ký tự Ki mod ∣K∣K_{i \bmod |K|}Kimod∣K∣​ (A/a tương ứng độ dịch 0, không phân biệt hoa/thường của KKK), theo đúng công thức Caesar. Các ký tự không phải chữ cái trong SSS (số, dấu câu, khoảng trắng...) giữ nguyên vị trí và không làm khóa dịch chuyển bước. Hoa/thường của từng ký tự trong SSS được giữ nguyên ở kết quả.

    Ví dụ kinh điển: K=K=K= LEMON, S=S=S= ATTACKATDAWN ⇒\Rightarrow⇒ kết quả LXFOPVEFRNHR.

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

      Dòng 1: khóa KKK (chỉ gồm chữ cái A-Z/a-z, độ dài từ 1 đến 50). Dòng 2: chuỗi SSS (độ dài từ 0 đến 1000 ký tự, có thể chứa khoảng trắng và ký tự không phải chữ cái, có thể rỗng).

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

      Một dòng chứa chuỗi SSS sau khi mã hóa Vigenère.

    Ví dụ:

    Đầu vào:

    key
    Hello, World!

    Đầu ra:

    Rijvs, Uyvjn!

    Đầu vào:

    a
    ABCXYZ

    Đầu ra:

    ABCXYZ

    Đang tải editor...