Để ký nhanh hơn, nhiều hệ thống RSA tính chữ ký bằng Định lý phần dư Trung Hoa (CRT): với n=p⋅q, thay vì tính trực tiếp s=mdmodn, người ta tính hai phần riêng trên p và q
sp=mdmod(p−1)modp,sq=mdmod(q−1)modq
rồi ghép lại bằng CRT để được s≡md(modn) (nhanh hơn nhiều vì p,q chỉ bằng nửa số bit của n).
Lỗi Bellcore (fault attack): Nếu do lỗi phần cứng/nhiễu điện, một trong hai phép tính CRT bị sai (giả sử sq bị tính sai thành sq′, còn sp vẫn đúng), chữ ký ghép ra s′ sẽ thoả:
s′≡sp≡s(modp)nhưngs′≡s(modq)
Nghĩa là p∣(s−s′) nhưng q∤(s−s′). Do đó nếu kẻ tấn công có được một chữ ký đúng s và một chữ ký lỗi s′ của cùng một thông điệp (cùng khoá), hắn phân tích được n ngay lập tức mà không cần bất kỳ thuật toán phân tích thừa số nào:
p=gcd(∣s−s′∣, n),q=n/p
Từ p,q và số mũ công khai e, tính được φ(n)=(p−1)(q−1) và khoá riêng d=e−1modφ(n).
Yêu cầu: Cho n, e, chữ ký đúng s và chữ ký lỗi s′ (cùng ký một thông điệp, lỗi xảy ra ở nhánh CRT theo q), hãy tìm lại p,q (với p<q) và khoá riêng d.
Ví dụ: Với (n,e,s,s′) ở input mẫu, kết quả in ra là ba số p q d thoả p⋅q=n và e⋅d≡1(mod(p−1)(q−1)).
Một dòng gồm 4 số nguyên cách nhau bởi khoảng trắng: n e s s′ (chữ ký đúng s, chữ ký lỗi s′).
Một dòng gồm 3 số nguyên cách nhau bởi khoảng trắng: p q d, với p<q là hai thừa số nguyên tố của n, d là khoá riêng tương ứng với e.
Ví dụ:
Đầu vào:
3955387110974271379950693432403506566053311680300222237829655245011522722098157 17 2520225132573903072830192198388818154642774710592757866026779452140348093071719 453173238271576135013674932229397577937817462638994417556808375328941176308720
Đầu ra:
682737606360306568900897226171803821641 5793422061603654149291899945924345759877 3257377620802341136429982826685240701450335134638330345856498486455998353837233
Đầu vào:
5815617891818088795452012254563964686955115344004514667651416122327 65537 4032633746761473104062536090135228552259120514126268456811824910287 1515385129980889702876258684843627301603508738039471442828468068562
Đầu ra:
677856206920889468095955655526919 8579427070875537228002299847386033 4316390519764644020757385600294488914812968582469143397661717965889
Đang tải editor...