Ente 在 2026 年 5 月 25 日发布了一篇文章,解释 Shamir 秘密共享。

它没有从密码学术语堆起,而是从一条直线讲起:两点确定一条直线。这个切口很小,但刚好击中一个常见误解。

很多人听到“2-of-n”“3-of-n”,会把它理解成“多拿几份,破解更难”。这不够准确。Shamir 秘密共享真正硬的地方,是少于阈值时,对秘密没有信息泄露。

不是线索少。

是没有线索。

直线和抛物线,讲的是阈值怎么成立

Shamir 秘密共享由 Adi Shamir 在 1979 年提出。Shamir 也是 RSA 里的“S”。它要解决的问题很朴素:秘密不能只放在一个地方,但也不能因为某一个人不在,就永远恢复不了。

Ente 的解释从 2-of-n 开始。

把秘密放在多项式 x=0 的位置,也就是图上纵轴截距。每一份份额,不是“秘密的一部分”,而是这条多项式曲线上的一个点。

一个点可以穿过无数条直线。它不能确定哪条线是真的,也就不能缩小秘密范围。两个点才能确定一条直线,秘密才会被恢复出来。

阈值提高后,直线换成更高阶的多项式。3 份恢复,对应二次多项式,也就是抛物线。k 份恢复,对应 k-1 次多项式。

阈值方案数学对象恢复条件低于阈值时
2-of-n一次多项式,直线任意 2 个点确定直线1 个点不透露秘密
3-of-n二次多项式,抛物线任意 3 个点确定抛物线2 个点仍不透露秘密
k-of-nk-1 次多项式任意 k 个点确定多项式少于 k 个点不含秘密信息

这里最容易讲错的一句话是:“少于 k 份无法破解”。

如果把它说成只是计算困难,就把 Shamir 的强点说弱了。原理上,少于阈值的份额并不会让攻击者更接近秘密。每一种可能的秘密仍然可能成立。

这就是信息论意义上的零泄露。

还有一个限制要放在桌面上。现实实现不是在普通图纸的实数曲线上画线,而是在有限域里做运算。图只是帮助理解,安全性质来自有限域上的多项式关系。

图画得再直观,也不能替代实现。

对技术读者和产品团队,影响不一样

对关注密码学基础的技术读者,这篇文章的价值是纠偏。

看 Shamir 秘密共享时,不要问单个份额是不是“足够复杂”,也不要猜它是不是藏着一部分秘密。更好的问题是:份额是不是有限域上的点,秘密是不是 x=0 处的值,阈值 k 是否对应 k-1 次多项式。

如果这些基本模型变形了,后面的安全叙事就要打折。

对做账户恢复、密钥托管和数字遗产方案的产品与工程人员,影响更直接。

他们不能只把“多方同意”写进流程图。需要把检查项落到实现里:份额如何生成,客户端和服务器各自知道什么,低于阈值时是否真的没有可用信息,撤销后旧份额是否还能参与恢复。

这会改变决策动作。

正在设计恢复方案的团队,可以先延后把“阈值恢复”写成卖点,回头补一轮威胁模型和实现审查。已经在选型的团队,也不该只看宣传页里的 2-of-3、3-of-5,而要追问少于阈值时系统到底暴露了什么。

普通用户的判断也可以更简单一点。

如果一个产品说“几张卡片可以恢复账户”,用户不必立刻把它等同于“卡片上印着恢复密钥”。但也不能只因为听到 Shamir,就默认整个恢复流程安全。数学保证只覆盖一段链路,不覆盖所有产品环节。

Legacy Kit 的边界:Shamir 只是一层

Ente 在文中把这套解释连接到自己的 Legacy Kit。

这里不能简化成“几张卡片拼出账户恢复密钥”。按 Ente 的说法,Legacy Kit 只是把 Shamir 秘密共享作为更大流程中的一层。卡片不直接携带恢复密钥,而是在本地重建另一个独立秘密,再参与服务器介导的恢复流程。

这个差别很重要。

传统纸质备份的问题是,一旦发出去,丢失、泄露、关系变化都会变成长期风险。Ente 希望通过服务器参与,让已经发出的卡片可以撤销。

但服务器参与也带来新的检查点。读者不能只盯着 Shamir 本身,还要看恢复流程怎么设计:服务器能看到什么,撤销是否真的生效,身份校验靠什么,客户端实现有没有把秘密暴露在错误位置。

方案视角好处需要追问
纯纸质备份离线、直观、少依赖服务端发出后如何撤销,丢失后怎么办
Shamir 阈值份额少于阈值零泄露,达到阈值可恢复是否按有限域模型正确实现
Ente Legacy Kit 这类产品流程可把阈值恢复和撤销机制结合服务器、客户端、身份校验是否削弱数学保证

我更在意的是第三列。

Shamir 解决的是“份额不够时泄露什么”的问题,不自动解决“谁能发起恢复”“撤销如何生效”“服务器是否可信”这些产品问题。术业有专攻,别把一段数学证明当成整套系统的护身符。

接下来最该观察的,也不是这篇科普能传播多远。

真正要看的是 Legacy Kit 这类方案如何把三件事接上:数学阈值、用户操作、服务端控制。只要其中一环把边界写模糊,零泄露的底线就可能被产品实现磨薄。

回到开头那条直线。两点确定一条线,是好理解的部分。难的是产品团队能不能记住:少一个点时,不该让用户、攻击者,甚至系统自己,提前看见任何影子。