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) m (0≤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=mdmodn rồi gửi chữ ký s cho bên nhận. Bên nhận xác minh bằng khóa công khai (n,e): m′=semodn Chữ ký hợp lệ nếu m′=m.
Cho n,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=588: 58817mod3233=65=m → chữ ký hợp lệ.
Một dòng gồm 4 số nguyên n e m s cách nhau bởi khoảng trắng (2≤n≤1018, 0≤m,s<n, 1≤e<n).
In ra VALID nếu semodn=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...