Một người gửi dùng số mũ công khai nhỏ e=3 (để mã hoá nhanh) và gửi cùng một bản rõ m cho ba người nhận khác nhau, mỗi người có một môđun RSA riêng n1,n2,n3 (đôi một nguyên tố cùng nhau, tức gcd(ni,nj)=1 với i=j), nhưng dùng chung e=3:
c1=m3modn1,c2=m3modn2,c3=m3modn3
với 0<m<min(n1,n2,n3).
Tấn công quảng bá Håstad: Kẻ nghe lén thu được cả ba (ni,ci) nhưng không biết khoá riêng nào. Áp dụng Định lý phần dư Trung Hoa (CRT) cho hệ:
x≡c1(modn1),x≡c2(modn2),x≡c3(modn3)
ta tìm được nghiệm duy nhất x với 0≤x<N=n1n2n3. Vì m<min(ni) nên m3<min(ni)3≤N, suy ra
x=m3(modN) vaˋ đoˆˋng thời x=m3 (đẳng thức treˆn soˆˊ nguyeˆn, khoˆng chỉ modulo)
Do đó chỉ cần khai căn bậc ba đúng (chính xác tuyệt đối trên số nguyên) của x là ra m — hoàn toàn không cần phá khoá riêng của bất kỳ ai. (Lưu ý: không dùng x ** (1/3) vì sai số dấu phẩy động với số lớn; cần cài đặt thuật toán khai căn bậc ba nguyên, ví dụ bằng tìm kiếm nhị phân.)
m, biểu diễn thành chuỗi byte lớn-đứng-trước với độ dài tối thiểu, là một chuỗi văn bản UTF-8.
Yêu cầu: Cho ba cặp (n1,c1),(n2,c2),(n3,c3), hãy khôi phục và in ra bản rõ m dạng văn bản.
Ví dụ: Với input mẫu, bản rõ khôi phục là "BROADCAST".
3 dòng, mỗi dòng gồm 2 số nguyên cách nhau bởi khoảng trắng: dòng i là ni ci (i=1,2,3).
Một dòng duy nhất: chuỗi văn bản (UTF-8) là bản rõ m khôi phục được.
Ví dụ:
Đầu vào:
2617787251503178393194837689501170222193 1099065005977252589927268957019845968590
2273175121069929087887059178940045661031 1848157494960961691112411806955063927695
2545853713626371774178911685786656533253 2130349165788502281608452012704925409951
Đầu ra:
BROADCAST
Đầu vào:
151258655905290436544509242513087194537 704969
160571644212235770405873135828024831173 704969
114104754383386540299373108530343738777 704969
Đầu ra:
Y
Đang tải editor...