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] Chữ ký mù RSA (blind signature)

    Chữ ký mù RSA

    Người dùng muốn lấy chữ ký của bên ký lên mmm mà bên ký không thấy mmm. Dùng khóa RSA (N,e,d)(N,e,d)(N,e,d) và yếu tố mù rrr (khả nghịch mod NNN):

    1. Làm mù: m′=m⋅re mod Nm' = m \cdot r^{e} \bmod Nm′=m⋅remodN.
    2. Bên ký: s′=(m′)d mod Ns' = (m')^{d} \bmod Ns′=(m′)dmodN.
    3. Bỏ mù: s=s′⋅r−1 mod Ns = s' \cdot r^{-1} \bmod Ns=s′⋅r−1modN.

    Khi đó se≡m(modN)s^{e} \equiv m \pmod Nse≡m(modN) vì s=mdredr−1=mds = m^{d} r^{ed} r^{-1} = m^{d}s=mdredr−1=md.

    Hãy tính chữ ký sss và kiểm chứng se≡ms^e \equiv mse≡m.

    Ví dụ

    N=3233,e=17,d=2753,m=65,r=13N=3233,e=17,d=2753,m=65,r=13N=3233,e=17,d=2753,m=65,r=13 cho chữ ký hợp lệ.

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

      Một dòng: N e d m r.

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

      (N,e,d)(N,e,d)(N,e,d) khóa RSA hợp lệ, gcd⁡(r,N)=1\gcd(r,N)=1gcd(r,N)=1, 0≤m<N0 \le m < N0≤m<N.

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

      Dòng 1: chữ ký sss. Dòng 2: VALID nếu se≡m(modN)s^e \equiv m \pmod Nse≡m(modN), ngược lại INVALID.

    Ví dụ:

    Đầu vào:

    3233 17 2753 65 13

    Đầu ra:

    588
    VALID

    Giải thích:

    Làm mù rồi ký và bỏ mù cho $s = m^{d} \bmod N = 65^{2753} \bmod 3233$; kiểm chứng $s^{17} \equiv 65$, in `VALID`.

    Đang tải editor...