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] Phá Caesar bằng phân tích tần suất

    Phá mã Caesar tự động: đếm tần suất 26 chữ cái (không phân biệt hoa thường), giả định chữ xuất hiện nhiều nhất trong bản rõ là e. Khi nhiều chữ cùng tần suất cao nhất, chọn chữ có chỉ số nhỏ nhất (a < b < ...).

    Thuật toán:

    • best = chỉ số chữ cái có đếm lớn nhất.
    • k = (best - 4) % 26 (vì e có chỉ số 4).
    • Giải mã toàn chuỗi với khóa k.

    In hai dòng: khóa k và bản rõ tìm được.

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

      Một dòng: bản mã.

    • Ràng buộc đầu vào:

      Độ dài chuỗi ≤ 1000.

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

      Dòng 1: khóa k ước lượng. Dòng 2: bản rõ giải được.

    Ví dụ:

    Đầu vào:

    Iiiijfg

    Đầu ra:

    4
    Eeeefbc

    Giải thích:

    Chữ 'i' xuất hiện nhiều nhất (chỉ số 8). Giả định ứng với 'e' (4) nên k=(8-4)%26=4. Giải mã với k=4.

    Đang tải editor...