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] Diffie-Hellman: phát hiện tấn công MITM

    Trong DH không xác thực, kẻ đứng giữa (MITM) có thể thay giá trị công khai trao đổi. Alice có bí mật a, Bob có bí mật b. Do có thể bị can thiệp, giá trị Bob NHẬN được (A') và giá trị Alice NHẬN được (B') là dữ liệu vào.

    • Alice tính shared_alice = B'^a mod p
    • Bob tính shared_bob = A'^b mod p

    Nếu hai khóa bằng nhau → không bị can thiệp: in SECURE và khóa chung. Nếu khác nhau → in MITM_DETECTED và hai khóa (cách nhau bởi dấu cách).

    Ví dụ: nếu A'=g^a và B'=g^b (không đổi) thì hai khóa bằng nhau → SECURE.

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

      6 dòng: p, g, a, b, A' (Bob nhận), B' (Alice nhận).

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

      2 < p < 10^9, 1 < g < p, 1 ≤ a,b < p, 0 ≤ A',B' < p.

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

      Dòng 1: SECURE hoặc MITM_DETECTED. Dòng 2: khóa chung (nếu SECURE) hoặc hai khóa cách nhau bởi dấu cách (nếu MITM).

    Ví dụ:

    Đầu vào:

    23
    5
    6
    15
    8
    19

    Đầu ra:

    SECURE
    2

    Giải thích:

    A'=8=g^6, B'=19=g^15: shared_alice=19^6 mod 23=2 và shared_bob=8^15 mod 23=2, bằng nhau → SECURE.

    Đang tải editor...