秘钥分割-Shamir秘钥分割门限方案

精选:

1、问题的提出

 2、需求的抽象:

有一个秘钥S,转换成另一种数据形式,分配给12个人(s1,s2,.......,s12),使得任意3个人的数据拼凑在一起就可以反向计算出秘钥S。

3、解决思路:

平面内,3点可以确定一条抛物线。抛物线的方程式为:y = a0 + a1·X + a2·X²。如果,将秘钥S藏到抛物线的方程式中(令a0 = S),再取出抛物线上的不同位置的12个点坐标(x1,y1),(x2,y2),......,(x12,y12)分配给12个人,那么,只要获取3个人的点位置坐标,就可以反向确定出抛物线的表达式,得到a0的值,即为获取到秘钥S。

数学说明如下:

有了这个数学理论,别说让任意3个人才能拼凑出秘钥。就是要求任意4个人,5个人,n个人才能拼凑出秘钥都可以做到!人类真是聪明绝顶!

共享秘钥理论全文:https://max.book118.com/html/2016/0511/42616985.shtm

Java实现:https://www.cnblogs.com/Qi-Lin/p/11222067.html

原文地址:https://www.cnblogs.com/andy9468/p/12378320.html