秘密分享
秘密分享是庄家选择一个秘密s,并通过一种秘密分割方式π(s,r)=(s1,s2,...,sn) ,其中r是随机值,这些被分割出来的份额si被发送给不同的参与者Pi,后续满足访问结构的参与者集合(授权集合)可以恢复出秘密s,任意非授权集合都不能得到s的任何有关信息。
*访问结构是能够重构秘密的所有“参与者子集”构成的集合,A⊆2{P1,P2,...,Pn}∖∅。
shamir-(t,n) 门限秘密分享是经典的秘密分享方案,他是说n个参与者中任意t个及以上的参与者一起可以恢复出秘密,而不足t个参与者一起都得不到秘密的任何信息。
可以从两个常见的角度出发去理解,下面分析两种角度并说明他们在本质上的统一性。
第一种角度
(t元一次方程 , xt−1at−1+...+xa1+a0=0):对秘密的恢复是求解t个方程组,来恢复t个未知元(at−1,...,a1,a0)。对秘密的分割是n个方程⎧⎪
⎪
⎪
⎪⎨⎪
⎪
⎪
⎪⎩at−1+...+a1+a0=02t−1at−1+...+2a1+a0=0...nt−1at−1+...+na1+a0=0,这种角度因为用户拿到的份额是一整个方程而不是一个值,所以没有显示的写法去写出每个si是什么。所以这种角度虽然是最好理解的,但由于表述上差点意思,也是最少见的。而下面的函数角度和通用角度,在表述上更有优越性,常见于各类ABE论文的表述中。
第二种角度
(t-1阶函数 , f(x)=at−1xt−1+...+a1x+a0):对秘密的恢复是通过对t个点位的函数值进行拉格朗日插值来恢复函数的未知系数组β=(at−1,...,a1,a0)。对秘密的分割便是取n个点位的函数值,可以简单的取为x=(1,...,n) ,(s1=f(1),s2=f(2),...,sn=f(n)),其中s=f(0)=a0是秘密,是不能被分割时x取0给分割出去的。当恢复出未知系数组 β=(at−1,...,a1,a0),自然得到秘密s 。更一般地可写为未知系数组β和目标向量α=(0,0,...,1)的乘积s=β⋅α 。秘密s与t个未知系数之间存在某种函数关系,根据目标向量α的不同而不同,常见的如s=a0,s=∑t−1i=0ai等等,在shamir-(t,n) 门限方案中s=a0 。
通用角度(矩阵形式)
n×t的矩阵M,其中满足访问结构的t行组成t×t的矩阵Mt可以线性表出α,没错就是目标向量。 (如果是shamir-(t,n) 门限方案则为任意t行都应可以,任意t-1行都不可以。)
对秘密的恢复过程为用Mt线性表出α,即找到不为0的向量w=(w1,w2,...,wt),考虑矩阵为行向量构成的形式Mt=⎛⎜
⎜
⎜
⎜⎝Mt,1Mt,2...Mt,n⎞⎟
⎟
⎟
⎟⎠,使得wMt=(w1,w2,...,wt)⎛⎜
⎜
⎜
⎜⎝Mt,1Mt,2...Mt,n⎞⎟
⎟
⎟
⎟⎠=∑ti=1wiMt,i=α。
*注意这里重点不在α,拥有目标向量α并不能恢复出秘密s,因为有关秘密s的向量β是未知的(只有庄家知道,想要恢复秘密的参与者不知道),重点在我们为了用Mt构成α而求得w,拥有w,可以恢复秘密s=w⋅→s ,这里不再是上面两个具体角度中的去先求出β,再结合α来恢复秘密s了,这里才是常规的流程,直接用秘密份额→s来恢复s。那么庄家(知道s和β,都是由他来选的)对秘密的分割是:MtβT=⎛⎜
⎜
⎜⎝s1s2...sn⎞⎟
⎟
⎟⎠=→s,
也就是说α⋅βT=(wMt)βT=wMtβT=w(MtβT)=w⋅→s 。
显然shamir-(t,n) 门限方案是通用表述的特殊情况,即M=⎛⎜
⎜
⎜
⎜⎝nt−1...n1............2t−1...211...11⎞⎟
⎟
⎟
⎟⎠,β=(at−1,...,a1,a0)T,α=(0,0,...,1) 。
此时MtβT=⎛⎜
⎜
⎜
⎜⎝f(1)f(2)...f(t)⎞⎟
⎟
⎟
⎟⎠=→s ,根据拉格朗日插值法我们知道这里的wi=Δi(0)=∏tj=1,j≠i0−ji−j,这样w(MtβT)=∑ti=1wisi=∑ti=1Δi(0)f(i)=f(0)=s 。
如果我们这里取wi=Δi(1)=∏tj=1,j≠i1−ji−j,那么wMt=α=→1,∑ti=1Δi(1)f(i)=f(1)=∑ti=1ai=s 。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~