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] Xác minh chữ ký số ElGamal

    Lược đồ chữ ký số ElGamal hoạt động trên nhóm nhân Zp∗\mathbb{Z}_p^*Zp∗​ với ppp nguyên tố. Khóa công khai gồm (p,g,y)(p, g, y)(p,g,y) với y=gx mod py = g^x \bmod py=gxmodp (xxx là khóa bí mật, 1≤x≤p−21 \le x \le p-21≤x≤p−2). Với giá trị băm thông điệp hhh (số nguyên, 0≤h<p−10 \le h < p-10≤h<p−1), người ký chọn ngẫu nhiên kkk nguyên tố cùng nhau với p−1p-1p−1 và tính chữ ký (r,s)(r,s)(r,s):

    r=gk mod p,s=(h−xr)k−1 mod (p−1)r = g^k \bmod p, \qquad s = (h - x r) k^{-1} \bmod (p-1)r=gkmodp,s=(h−xr)k−1mod(p−1)

    Người xác thực (chỉ biết khóa công khai) kiểm tra chữ ký (r,s)(r,s)(r,s) có hợp lệ với thông điệp có giá trị băm hhh hay không bằng cách kiểm tra đồng thời hai điều kiện:

    1. 0<r<p0 < r < p0<r<p
    2. gh mod p=(yr mod p⋅rs mod p) mod pg^h \bmod p = \big(y^r \bmod p \cdot r^s \bmod p\big) \bmod pghmodp=(yrmodp⋅rsmodp)modp

    Cho p,g,y,h,r,sp, g, y, h, r, sp,g,y,h,r,s, hãy xác định chữ ký có hợp lệ hay không.

    Ví dụ: p=467, g=2, y=132, h=100, r=29, s=51p=467,\ g=2,\ y=132,\ h=100,\ r=29,\ s=51p=467, g=2, y=132, h=100, r=29, s=51. Ta có g100 mod 467=189g^{100} \bmod 467 = 189g100mod467=189 và (13229 mod 467)⋅(2951 mod 467) mod 467=189(132^{29} \bmod 467) \cdot (29^{51} \bmod 467) \bmod 467 = 189(13229mod467)⋅(2951mod467)mod467=189, hai vế bằng nhau và 0<29<4670 < 29 < 4670<29<467 nên kết quả là VALID.

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

      Một dòng chứa 6 số nguyên không âm, cách nhau bởi khoảng trắng: p g y h r s.

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

      In VALID nếu chữ ký thoả cả hai điều kiện xác minh ElGamal nêu trên, ngược lại in INVALID.

    Ví dụ:

    Đầu vào:

    467 2 132 100 29 51

    Đầu ra:

    VALID
    

    Đầu vào:

    467 2 132 100 29 52

    Đầu ra:

    INVALID
    

    Đang tải editor...