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] Xác minh TOTP với cửa sổ sai lệch thời gian

    Xác minh TOTP với cửa sổ sai lệch (drift window)

    Đồng hồ client và server có thể lệch nhau. Server chấp nhận OTP nếu nó khớp với bất kỳ bước thời gian nào trong khoảng [c0 - w, c0 + w], với c0 = time // step.

    Cho secret, time, step, window w, otp, in VALID nếu khớp trong cửa sổ, ngược lại INVALID. (Bỏ qua counter âm.)

    Input:
    12345678901234567890
    59
    30
    1
    287082
    Output:
    VALID
    
    • Định dạng đầu vào:

      Dòng 1: secret. Dòng 2: time. Dòng 3: step. Dòng 4: window w. Dòng 5: otp.

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

      0 <= time <= 2^40; 1 <= step <= 3600; 0 <= w <= 100.

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

      Một dòng: VALID hoặc INVALID.

    Ví dụ:

    Đầu vào:

    12345678901234567890
    59
    30
    1
    287082
    

    Đầu ra:

    VALID

    Giải thích:

    c0=1; 287082 = HOTP(1), khớp trong [0,2] → VALID.

    Đang tải editor...