(C81E728D9D4C2F636F067F89CC14862C, 31E96A93BF1A7CE1872A3CCDA6E07F86)
(ECCBC87E4B5CE2FE28308FD9F2A7BAF3, ADF6E4F1052BDE978344743CCDCF5771)
(E4DA3B7FBBCE2345D7772B0674A318D5, 0668FBCFE4098FEA0218163AC21E6531)
shamir密钥分享,已知三组数据,md5解密后:
(2,5398141)
(3,5398288)
(5,5398756)
顺便理解一下加密吧
假设我们的secret是1234
我们打算把密钥分为6部分(n=6),共3组(k-3),任取(k-1=2)个随机数:166和94
a0=1234
a1=166
a2=94
构造函数f(x)=1234+166*x+94*x^2
根据多项式构造六个点:
我们完成了加密阶段
任意3个点可以完成解密:
根据上式变换,最终我们还原了多项式,得到1234
我们回到上题
(2,5398141)
(3,5398288)
(5,5398756)
直接套用公式
x0,y0=(2,5398141)
x1,y1=(3,5398288)
x2,y2=(5,5398756)
R.<x>=QQ[]
l0=(x-x1)/(x0-x1)*((x-x2)/(x0-x2))
l1=(x-x0)/(x1-x0)*((x-x2)/(x1-x2))
l2=(x-x0)/(x2-x0)*((x-x1)/(x2-x1))
fx=y0*l0+y1*l1+y2*l2
print(fx)