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] Nhân đôi điểm trên đường cong Elliptic

    Cho đường cong elliptic E:y2≡x3+ax+b(modp)E: y^2\equiv x^3+ax+b\pmod pE:y2≡x3+ax+b(modp) và điểm P=(x,y)∈EP=(x,y)\in EP=(x,y)∈E (P≠OP\neq OP=O). Yêu cầu tính 2P=P+P2P=P+P2P=P+P (phép nhân đôi điểm) theo công thức:

    • Nếu y=0y=0y=0 thì 2P=O2P=O2P=O (tiếp tuyến tại PPP thẳng đứng).
    • Ngược lại: λ=(3x2+a)(2y)−1 mod p\lambda=(3x^2+a)(2y)^{-1}\bmod pλ=(3x2+a)(2y)−1modp, x3=λ2−2x mod px_3=\lambda^2-2x\bmod px3​=λ2−2xmodp, y3=λ(x−x3)−y mod py_3=\lambda(x-x_3)-y\bmod py3​=λ(x−x3​)−ymodp, và 2P=(x3,y3)2P=(x_3,y_3)2P=(x3​,y3​).

    Cho TTT điểm PPP, hãy tính 2P2P2P cho từng điểm.

    Ví dụ: p=97,a=2,b=3p=97,a=2,b=3p=97,a=2,b=3: 2⋅(3,6)=(80,10)2\cdot(3,6)=(80,10)2⋅(3,6)=(80,10).

    • Định dạng đầu vào:
      • Dòng 1: ba số nguyên p a bp\ a\ bp a b.
      • Dòng 2: số nguyên TTT (1≤T≤5001\le T\le 5001≤T≤500).
      • TTT dòng tiếp theo, mỗi dòng "x y" là tọa độ điểm PPP (đảm bảo P∈EP\in EP∈E, P≠OP\neq OP=O).
    • Định dạng đầu ra:

      TTT dòng, mỗi dòng in kết quả "x y" hoặc "O".

    Ví dụ:

    Đầu vào:

    97 2 3
    2
    3 6
    30 0

    Đầu ra:

    80 10
    O
    

    Đầu vào:

    17 16 0
    3
    0 0
    1 0
    16 0

    Đầu ra:

    O
    O
    O
    

    Đang tải editor...