Lược đồ chữ ký RSA "textbook" (ký s=mdmodn, xác minh semodn=m) có một điểm yếu nghiêm trọng: tính nhân tính (multiplicativity). Nếu s1 là chữ ký hợp lệ của bản tin m1 và s2 là chữ ký hợp lệ của bản tin m2 (cùng một khóa bí mật d không được tiết lộ), thì:
(s1⋅s2modn)emodn=(m1⋅m2)modn
Nói cách khác, s1⋅s2modn là chữ ký hợp lệ của bản tin mt=m1⋅m2modn — kẻ tấn công giả mạo được chữ ký cho một bản tin mới mà không cần biết khóa bí mật.
Cho khóa công khai (n,e) và hai cặp (bản tin, chữ ký hợp lệ) (m1,s1), (m2,s2) dưới cùng khóa bí mật d, hãy tính bản tin đích mt=m1⋅m2modn và chữ ký giả mạo tương ứng st=s1⋅s2modn.
Ví dụ: n=3233,e=17,m1=65,s1=588,m2=10,s2=969. Ta có mt=650, st=764.
Một dòng gồm 6 số nguyên n e m1 s1 m2 s2 cách nhau bởi khoảng trắng (2≤n<1025, 1≤e<n, 0≤m1,s1,m2,s2<n).
In ra hai số nguyên mt và st cách nhau bởi một khoảng trắng.
Ví dụ:
Đầu vào:
3233 17 0 0 123 2746
Đầu ra:
0 0
Đầu vào:
3233 17 65 588 10 969
Đầu ra:
650 764
Đang tải editor...