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ố RSA trong xác thực

    Trong giao thức xác thực bằng khóa công khai RSA, để chứng minh quyền sở hữu khóa riêng, bên gửi ký lên một giá trị thách thức (challenge) mmm (0≤m<n0 \le m < n0≤m<n, là số nguyên đại diện cho băm rút gọn của thách thức mà bên nhận đã gửi trước đó) bằng công thức: s=md mod ns = m^d \bmod ns=mdmodn rồi gửi chữ ký sss cho bên nhận. Bên nhận xác minh bằng khóa công khai (n,e)(n, e)(n,e): m′=se mod nm' = s^e \bmod nm′=semodn Chữ ký hợp lệ nếu m′=mm' = mm′=m.

    Cho n,e,m,sn, e, m, sn,e,m,s, hãy xác định chữ ký có hợp lệ hay không.

    Ví dụ: n=3233,e=17,m=65,s=588n=3233, e=17, m=65, s=588n=3233,e=17,m=65,s=588: 58817 mod 3233=65=m588^{17} \bmod 3233 = 65 = m58817mod3233=65=m → chữ ký hợp lệ.

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

      Một dòng gồm 4 số nguyên n e m sn\ e\ m\ sn e m s cách nhau bởi khoảng trắng (2≤n≤10182 \le n \le 10^{18}2≤n≤1018, 0≤m,s<n0 \le m, s < n0≤m,s<n, 1≤e<n1 \le e < n1≤e<n).

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

      In ra VALID nếu se mod n=ms^e \bmod n = msemodn=m; ngược lại in INVALID.

    Ví dụ:

    Đầu vào:

    3233 17 65 588

    Đầu ra:

    VALID
    

    Đầu vào:

    3233 17 65 587

    Đầu ra:

    INVALID
    

    Đang tải editor...