区块链的密码学基石:沙米尔秘密共享(SSS)数学原理详解
密钥分存,尤其是其最经典的实现——沙米尔秘密共享方案 的数学原理非常优美,它巧妙地利用了多项式插值的基本性质。
核心思想
SSS 方案的核心思想可以概括为:
在二维平面上,要唯一确定一条直线,需要2个点;要唯一确定一条抛物线,需要3个点;要唯一确定一个
k-1次多项式,需要k个点。
我们将秘密编码在这个多项式中,然后将这个多项式上的不同点 作为分片 分发给参与者。只有当他们集齐足够多的点(即分片)时,才能还原出这个多项式,从而读出秘密。
数学原理详解(以 Shamir‘s Secret Sharing 为例)
让我们一步步拆解这个过程。假设我们要创建一个 (k, n) 方案,即生成 n 个分片,只要集齐其中任意 k 个就能恢复秘密。
第1步:编码秘密(构造多项式)
- 选择一个素数
p:- 这定义了一个有限域
GF(p),所有运算都在这个域上进行,可以保证计算的精确性和安全性。p必须大于可能的秘密值和分片数量n。在实践中,p通常是一个大素数。
- 这定义了一个有限域
- 定义秘密
S:- 你的秘密
S是一个数字,并且0 < S < p。如果秘密不
- 你的秘密
