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át hiện tấn công phát lại qua nonce

    Trong giao thức xác thực kiểu challenge–response, ở mỗi phiên đăng nhập, server gửi cho client một giá trị nonce (số dùng một lần) để chống tấn công phát lại (replay attack). Giao thức chỉ an toàn nếu server không bao giờ chấp nhận một nonce đã được dùng ở phiên trước đó.

    Cho danh sách nnn nonce theo đúng thứ tự các phiên đăng nhập mà server đã nhận được, hãy xác định chỉ số phiên đầu tiên (đánh số từ 1) mà nonce của phiên đó trùng với một nonce đã xuất hiện ở phiên trước — đây chính là dấu hiệu của một cuộc tấn công phát lại. Nếu không có nonce nào bị lặp lại, in ra SAFE.

    Ví dụ: Với n=4n=4n=4 và các nonce a1, b2, a1, c3: nonce a1 ở phiên 3 trùng với nonce đã dùng ở phiên 1 → in ra 3.

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

      Dòng đầu là số nguyên nnn (0≤n≤1050 \le n \le 10^50≤n≤105). nnn dòng tiếp theo, mỗi dòng là một nonce (chuỗi không chứa khoảng trắng, độ dài tối đa 64 ký tự).

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

      In ra chỉ số (1-based) của phiên đầu tiên phát hiện tấn công phát lại, hoặc SAFE nếu tất cả nonce đều phân biệt.

    Ví dụ:

    Đầu vào:

    1
    abcd
    

    Đầu ra:

    SAFE
    

    Đầu vào:

    5
    a1b2
    c3d4
    e5f6
    0011
    2233
    

    Đầu ra:

    SAFE
    

    Đang tải editor...