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] Cam kết Pedersen – Đồng cấu cộng

    Tính đồng cấu cộng của Pedersen

    Cam kết Pedersen thỏa tính đồng cấu:

    C(m1,r1)⋅C(m2,r2)=gm1+m2hr1+r2=C(m1+m2,  r1+r2) mod pC(m_1,r_1)\cdot C(m_2,r_2) = g^{m_1+m_2} h^{r_1+r_2} = C(m_1+m_2,\; r_1+r_2) \bmod pC(m1​,r1​)⋅C(m2​,r2​)=gm1​+m2​hr1​+r2​=C(m1​+m2​,r1​+r2​)modp

    Cho p,g,hp,g,hp,g,h và hai cặp (m1,r1),(m2,r2)(m_1,r_1), (m_2,r_2)(m1​,r1​),(m2​,r2​), hãy tính C1,C2C_1, C_2C1​,C2​, tích C1C2 mod pC_1 C_2 \bmod pC1​C2​modp, rồi so sánh với cam kết trực tiếp của (m1+m2,r1+r2)(m_1+m_2, r_1+r_2)(m1​+m2​,r1​+r2​).

    Ví dụ

    Tích hai cam kết luôn bằng cam kết của tổng, in MATCH.

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

      Một dòng: p g h m1 r1 m2 r2.

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

      ppp nguyên tố, 2≤g,h<p2 \le g,h < p2≤g,h<p, 0≤mi,ri<p0 \le m_i,r_i < p0≤mi​,ri​<p.

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

      Dòng 1: C1 C2. Dòng 2: tích C1C2 mod pC_1 C_2 \bmod pC1​C2​modp. Dòng 3: MATCH hoặc MISMATCH.

    Ví dụ:

    Đầu vào:

    1019 2 3 5 7 4 2

    Đầu ra:

    692 144
    805
    MATCH

    Giải thích:

    $C_1 C_2 = g^{m_1+m_2} h^{r_1+r_2}$ đúng bằng cam kết của tổng $(9, 9)$, nên in `MATCH`.

    Đang tải editor...