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] Tấn công modulus chung (common modulus)

    Nếu cùng một bản rõ m được mã hóa dưới cùng modulus n nhưng với hai số mũ công khai e1, e2 thỏa gcd(e1, e2) = 1, kẻ tấn công khôi phục được m mà không cần phân tích n.

    Dùng định lý Bézout tìm a, b sao cho a·e1 + b·e2 = 1, khi đó c1^a · c2^b ≡ m^{a·e1 + b·e2} = m (mod n). Số mũ âm xử lý bằng nghịch đảo modulo.

    Ví dụ I/O

    Input:
    n e1 e2 c1 c2
    Output:
    m
    
    • Định dạng đầu vào:

      Một dòng: n e1 e2 c1 c2.

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

      gcd(e1, e2) = 1, gcd(c_i, n) = 1, n <= 10^12.

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

      Bản rõ m.

    Ví dụ:

    Đầu vào:

    99400891 3 5 5299668 88962689
    

    Đầu ra:

    12345

    Giải thích:

    a*3+b*5=1 với (a,b)=(2,-1); m = c1^2 * c2^{-1} mod n = 12345.

    Đang tải editor...