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] Logarit rời rạc

    Độ khó của bài toán logarit rời rạc là nền tảng an toàn của Diffie-Hellman và ElGamal: biết a,b,pa, b, pa,b,p nhưng việc tìm xxx sao cho ax≡b(modp)a^x \equiv b \pmod pax≡b(modp) là khó về mặt tính toán khi ppp đủ lớn. Với ppp nhỏ (tối đa 10610^6106), ta có thể giải bằng thuật toán Baby-step Giant-step với độ phức tạp O(p)O(\sqrt{p})O(p​).

    Cho số nguyên tố ppp và hai số nguyên a,ba, ba,b với 0<a,b<p0 < a, b < p0<a,b<p. Hãy tìm số nguyên xxx nhỏ nhất, 0≤x≤p−20 \le x \le p-20≤x≤p−2, sao cho ax≡b(modp)a^x \equiv b \pmod pax≡b(modp). Nếu không tồn tại xxx nào thỏa mãn, in ra −1-1−1.

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

      Một dòng duy nhất chứa ba số nguyên p,a,bp, a, bp,a,b cách nhau bởi khoảng trắng (2≤p<1062 \le p < 10^62≤p<106, ppp là số nguyên tố, 0<a,b<p0 < a, b < p0<a,b<p).

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

      Một số nguyên duy nhất: giá trị xxx nhỏ nhất thỏa ax≡b(modp)a^x \equiv b \pmod pax≡b(modp), hoặc −1-1−1 nếu không tồn tại.

    Ví dụ:

    Đầu vào:

    2 1 1

    Đầu ra:

    0
    

    Đầu vào:

    5 2 3

    Đầu ra:

    3
    

    Đang tải editor...