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] Phép cộng đ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). Tập các điểm thuộc EEE cùng điểm vô cực OOO tạo thành một nhóm với phép cộng "+" được định nghĩa như sau, với P=(x1,y1), Q=(x2,y2)P=(x_1,y_1),\,Q=(x_2,y_2)P=(x1​,y1​),Q=(x2​,y2​):

    • Nếu P=OP=OP=O thì P+Q=QP+Q=QP+Q=Q; nếu Q=OQ=OQ=O thì P+Q=PP+Q=PP+Q=P.
    • Nếu x1=x2x_1=x_2x1​=x2​ và y1+y2≡0(modp)y_1+y_2\equiv 0\pmod py1​+y2​≡0(modp) thì P+Q=OP+Q=OP+Q=O.
    • Nếu P=QP=QP=Q (nhân đôi): λ=(3x12+a)(2y1)−1 mod p\lambda=(3x_1^2+a)(2y_1)^{-1}\bmod pλ=(3x12​+a)(2y1​)−1modp.
    • Ngược lại: λ=(y2−y1)(x2−x1)−1 mod p\lambda=(y_2-y_1)(x_2-x_1)^{-1}\bmod pλ=(y2​−y1​)(x2​−x1​)−1modp.
    • Khi đó x3=λ2−x1−x2 mod px_3=\lambda^2-x_1-x_2 \bmod px3​=λ2−x1​−x2​modp, y3=λ(x1−x3)−y1 mod py_3=\lambda(x_1-x_3)-y_1 \bmod py3​=λ(x1​−x3​)−y1​modp, và P+Q=(x3,y3)P+Q=(x_3,y_3)P+Q=(x3​,y3​).

    Cho TTT cặp điểm (P,Q)(P,Q)(P,Q) (mỗi điểm có thể là OOO), hãy tính P+QP+QP+Q.

    Ví dụ: p=97,a=2,b=3p=97,a=2,b=3p=97,a=2,b=3: (3,6)+(0,10)=(85,71)(3,6)+(0,10)=(85,71)(3,6)+(0,10)=(85,71).

    • Đị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 nhóm, mỗi nhóm gồm 2 dòng liên tiếp lần lượt biểu diễn PPP rồi QQQ, mỗi dòng có dạng "x y" hoặc "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
    5
    3 6
    0 10
    3 6
    3 6
    3 6
    3 91
    O
    1 43
    1 43
    O

    Đầu ra:

    85 71
    80 10
    O
    1 43
    1 43
    

    Đầu vào:

    97 2 3
    1
    O
    O

    Đầu ra:

    O
    

    Đang tải editor...