Xét lược đồ chia sẻ bí mật Shamir ngưỡng (k,n) trên Zp (p nguyên tố), nhưng được phát hành dư thừa: có n>k mảnh (x1,y1),…,(xn,yn) thay vì chỉ k mảnh. Biết rằng nhiều nhất một trong số các mảnh từ vị trí k+1 đến n có thể đã bị giả mạo (giá trị yi bị sửa sai), còn k mảnh đầu tiên luôn đúng.
Hãy dùng k mảnh đầu tiên để nội suy Lagrange, xác định duy nhất đa thức f bậc k−1 sao cho f(xi)≡yi(modp) với i=1,…,k. Sau đó kiểm tra từng mảnh còn lại (vị trí k+1 đến n) có thỏa f(xi)≡yi(modp) hay không:
INVALID m.Ví dụ: với p=97,k=2,n=4 và các mảnh (1,63),(2,71),(3,79),(4,87): từ hai mảnh đầu suy ra f(x)=55+8x; kiểm tra f(3)=79 và f(4)=87 đều khớp, nên bí mật là 55.
Dòng đầu tiên chứa ba số nguyên p k n (p là số nguyên tố, 3≤p<105, 2≤k≤n≤15). n dòng tiếp theo, mỗi dòng chứa hai số nguyên xi yi (1≤xi≤p−1, 0≤yi≤p−1), là mảnh thứ i (thứ tự xuất hiện chính là chỉ số i, tính từ 1). Các xi đôi một khác nhau.
Nếu tất cả n mảnh nhất quán: in ra một số nguyên duy nhất là bí mật S.
Nếu có đúng một mảnh (ở vị trí m) không khớp với đa thức nội suy từ k mảnh đầu: in ra chuỗi INVALID m (cách nhau bởi một khoảng trắng, không có dấu chấm câu).
Ví dụ:
Đầu vào:
97 2 4
1 63
2 71
3 79
4 87
Đầu ra:
55
Đầu vào:
10007 3 5
1 335
2 367
3 417
4 485
5 571
Đầu ra:
321
Đang tải editor...