当前位置:首页 » 《随便一记》 » 正文

安全多方计算之六:秘密共享

22 人参与  2023年02月23日 16:53  分类 : 《随便一记》  评论

点击全文阅读


秘密共享

1. 秘密共享简介2. Shamir秘密共享方案3. Asmuth-Bloom方案4. 可验证的秘密共享4.1 Feldman的VSS方案4.2 Pedersen的VSS方案 5. 无分发者的随机秘密共享

1. 秘密共享简介

秘密共享通过将秘密以适当的方式拆分,拆分后的每一个份额由不同的参与者管理,单个参与者无法恢复秘密信息,只有若干个参与者一同协作才能恢复秘密消息。

秘密共享定义如下:秘密持有者 S S S需要将原始秘密 m m m在参与者集合中 P 1 , P 2 , . . . , P n P_1,P_2,...,P_n P1​,P2​,...,Pn​分享, S S S分发给 P 1 P_1 P1​子秘密 m p i m_{p_i} mpi​​,使得只有特定参与者的集合才能够从他们的子秘密中恢复秘密 m m m,而其他参与者不能得到秘密 m m m的任何信息。
在这里插入图片描述

能够计算出秘密 m m m的参与者集合 P P P的一个子集 A ⊆ P A \subseteq P A⊆P,称为一个授权子集。令 Γ \Gamma Γ为所有授权子集构成的集合,则称 Γ \Gamma Γ访问结构。

秘密共享方案一般描述如下:将共享的秘密 m m m分割成 n n n个子秘密,并将其分发至 n n n个参与者,使得授权子集 Γ \Gamma Γ中的参与者可共同恢出复秘密 m m m,而非授权子集中的参与者无法得到关于秘密 m m m的任何信息。

2. Shamir秘密共享方案

Adi Shamir于1979年提出了基于拉格朗日(Lagrange)插值定理的 ( t , n ) (t,n) (t,n)-门限方案。该方案利用有限域上的次随机多项式来分享秘密,被分享的秘密为多项式的零次系数,恢复秘密至少需要t个多项式上的点。

方案描述如下:

设 G F ( q ) G F(q) GF(q) 是一个有限域, q q q为公开大素数, 共享的密钥 k ∈ G F ( q ) k \in G F(q) k∈GF(q), 可信中心给 n ( n < q ) n(n< q) n(n<q)个共享者 P i ( 1 ≤ i ≤ n ) P_i(1 \leq i \leq n) Pi​(1≤i≤n) 分配共享的过程如下:

(1) 秘密分发

可信中心随机选取多项式 f ( x ) = a t − 1 x t − 1 + … + a 2 x 2 + a 1 x + a 0 ∈ f(x)=a_{t-1} x^{t-1}+\ldots+a_2 x^2+a_1 x+a_0 \in f(x)=at−1​xt−1+…+a2​x2+a1​x+a0​∈ G F ( q ) [ x ] G F(q)[x] GF(q)[x], 常数 a 0 = k a_0=k a0​=k 为要分享的秘密。

可信中心在 G F ( q ) G F(q) GF(q) 中选择 n n n 个非零的互不相同的 元素 x 1 , x 2 , … , x n x_1, x_2, \ldots, x_n x1​,x2​,…,xn​, 计算 y i = f ( x i ) , 1 ≤ i ≤ n y_i=f\left(x_i\right), 1 \leq i \leq n yi​=f(xi​),1≤i≤n, 将子密钥 ( x i , y i ) \left(x_i, y_i\right) (xi​,yi​) 分配给共享者 P i ( x i P_i\left(x_i\right. Pi​(xi​ 是公开的, y i y_i yi​ 为 P i P_i Pi​ 的秘密共享)。

(2) 秘密重构

给定 t t t 个共享 y i s ( 1 ≤ s ≤ t ) y_{i_s}(1 \leq s \leq t) yis​​(1≤s≤t), 从Lagrange多项式重构的

f ( x ) = ∑ s = 1 t y i s ∏ j = 1 , j ≠ s t x − x j x i s − x i j , k = a 0 = f ( 0 ) = ∑ s = 1 t y i s ∏ j = 1 , j ≠ s t − x j x i s − x i j = ∑ s = 1 t b s y i s , \begin{aligned} & f(x)=\sum_{s=1}^t y_{i_s} \prod_{j=1, j \neq s}^t \frac{x-x_j}{x_{i_s}-x_{i_j}}, \\ & k=a_0=f(0)=\sum_{s=1}^t y_{i_s} \prod_{j=1, j \neq s}^t \frac{-x_j}{x_{i_s}-x_{i_j}}=\sum_{s=1}^t b_s y_{i_s}, \end{aligned} ​f(x)=s=1∑t​yis​​j=1,j=s∏t​xis​​−xij​​x−xj​​,k=a0​=f(0)=s=1∑t​yis​​j=1,j=s∏t​xis​​−xij​​−xj​​=s=1∑t​bs​yis​​,​其中, b s = Π j = 1 , j ≠ s t − x j x i s − x i j b_s=\Pi_{j=1, j \neq s}^t \frac{-x_j}{x_{i_s}-x_{i_j}} bs​=Πj=1,j=st​xis​​−xij​​−xj​​ (Lagrange插值系数), 运算都是 G F ( q ) G F(q) GF(q)上的运算。

Eg 设 t = 3 , n = 5 , q = 9 , k = 11 t=3, n=5, q=9, k=11 t=3,n=5,q=9,k=11, 随机选取 a 1 = 2 , a 2 = 7 a_1=2, a_2=7 a1​=2,a2​=7, 得多项式为 h ( x ) = ( 7 x 2 + 2 x + 71 )   m o d   19 h(x)=\left(7 x^2+2 x+71\right) \bmod 19 h(x)=(7x2+2x+71)mod19选择 x i = i x_i=i xi​=i, 则由 y i = h ( x i ) , 1 ≤ i ≤ 5 y_i=h\left(x_i\right), \quad 1 \leq i \leq 5 yi​=h(xi​),1≤i≤5, 很容易得到 5 5 5个子密钥 h ( 1 ) = 1 , h ( 2 ) = 5 , h ( 3 ) = 4 , h ( 4 ) = 17 , h ( 5 ) = 6 h(1)=1, h(2)=5, h(3)=4, h(4)=17, h(5)=6 h(1)=1,h(2)=5,h(3)=4,h(4)=17,h(5)=6如果知道其中 3 个子密钥 h ( 2 ) = 5 , h ( 3 ) = 4 , h ( 5 ) = 6 h(2)=5, h(3)=4, h(5)=6 h(2)=5,h(3)=4,h(5)=6 { 4 a 2 + 2 a 1 + a 0 = 5 9 a 2 + 3 a 1 + a 0 = 4 25 a 2 + 5 a 1 + a 0 = 6 \begin{cases} 4 a_2+2 a_1+a_0=5 \\ 9 a_2+3 a_1+a_0=4 \\ 25 a_2+5 a_1+a_0=6\end{cases} ⎩ ⎨ ⎧​4a2​+2a1​+a0​=59a2​+3a1​+a0​=425a2​+5a1​+a0​=6​从而解得 k = a 0 = 11 k=a_0=11 k=a0​=11。

3. Asmuth-Bloom方案

Asmuth和Bloom于1980年提出了一个基于中国剩余定理的 ( t , n ) (t,n) (t,n)-门限方案。该方案中,成员的共享是由秘密 S S S 得出的数 y y y 对于不同模数 m 1 , m 2 , … , m n m_1, m_2, \ldots, m_n m1​,m2​,…,mn​ 的剩余。

令 p , d 1 , d 2 , … , d n p, d_1, d_2, \ldots, d_n p,d1​,d2​,…,dn​ 是满足下列条件的一组正整数: p > k ; d 1 < d 2 < … < d n p>k ; \quad d_1<d_2<\ldots<d_n p>k;d1​<d2​<…<dn​对所有的 i , gcd ⁡ ( p , d i ) = 1 ; i, \operatorname{gcd}\left(p, d_i\right)=1 ; i,gcd(p,di​)=1;

对 i ≠ j , gcd ⁡ ( d i , d j ) = 1 ; d 1 d 2 ⋯ d t > i \neq j, \operatorname{gcd}\left(d_i, d_j\right)=1 ; d_1 d_2 \cdots d_t> i=j,gcd(di​,dj​)=1;d1​d2​⋯dt​> p d n − t + 2 d n − t + 3 ⋯ d n p d_{n-t+2} d_{n-t+3} \cdots d_n pdn−t+2​dn−t+3​⋯dn​

令 N = d 1 d 2 ⋯ d t N=d_1 d_2 \cdots d_t N=d1​d2​⋯dt​ 是 t t t 个最小整数之积,则 N / p N / p N/p 大于任意 t − 1 t-1 t−1 个 d i d_i di​ 。令 r r r 是区间 [ 0 , ⌊ N / p ⌋ − 1 ] [0,\lfloor N / p\rfloor-1] [0,⌊N/p⌋−1] 中的一个随机整数, 并公布 p , r p, r p,r 。

(1) 秘密分发

将 k k k 划分为 n n n 个共享, 计算 k ′ = k + r p k^{\prime}=k+r p k′=k+rp, 则 k ′ ∈ [ 0 , N − 1 ] 。 n k^{\prime} \in[0, N-1] 。 n k′∈[0,N−1]。n 个共享 为 k i = k ′ modd ⁡ i , i = 1 , 2 , … , n k_i=k^{\prime} \operatorname{modd}_i, i=1,2, \ldots, n ki​=k′moddi​,i=1,2,…,n, 将子密钥 ( d i , k i ) \left(d_i, k_i\right) (di​,ki​) 分配给共享者 P i ( d i P_i\left(d_i\right. Pi​(di​ 是公开的, k i k_i ki​ 为 P i P_i Pi​

(2) 秘密重构

若给定 t t t 个共享 k i 1 , … , … , k i t k_{i_1}, \ldots, \ldots, k_{i_t} ki1​​,…,…,kit​​, 则由中国剩余定理可知, 同余方程组 { x ′ ≡ k i 1 mod ⁡ d i 1 x ′ ≡ k i 2 mod ⁡ d i 2 ⋯ x ′ ≡ k i t mod ⁡ d i t \begin{cases} x^{\prime} \equiv k_{i_1} \operatorname{mod} d_{i_1} \\ x^{\prime} \equiv k_{i_2} \operatorname{mod} d_{i_2} \\ \cdots \\ x^{\prime} \equiv k_{i_t} \operatorname{mod} d_{i_t} \end{cases} ⎩ ⎨ ⎧​x′≡ki1​​moddi1​​x′≡ki2​​moddi2​​⋯x′≡kit​​moddit​​​关于模 N 1 = d i 1 d i 2 ⋯ d i t N_1=d_{i_1} d_{i_2} \cdots d_{i_t} N1​=di1​​di2​​⋯dit​​ 在 [ 0 , N 1 − 1 ] \left[0, N_1-1\right] [0,N1​−1] 内有唯一解 x x x, 因为 N 1 ≥ N ≥ k ′ N_1 \geq N \geq k^{\prime} N1​≥N≥k′, 推出 k ′ = x k^{\prime}=x k′=x 。 最后计算出 k = k ′ − r p k=k^{\prime}-r p k=k′−rp, 即 k = k ′   m o d   p k=k^{\prime} \bmod p k=k′modp 。

Eg 设 t = 2 , n = 3 , p = 7 , k = 4 , d 1 = 9 , d 2 = 11 , d 3 = 13 t=2, n=3, p=7, k=4, d_1=9, d_2=11, d_3=13 t=2,n=3,p=7,k=4,d1​=9,d2​=11,d3​=13, 则 N = d 1 d 2 = 99 > 91 = 7 ⋅ 13 = p ⋅ d 3 . N=d_1 d_2=99>91=7 \cdot 13=p \cdot d_3 . N=d1​d2​=99>91=7⋅13=p⋅d3​.在 [ 0 , [ 99 / 7 ] − 1 ] = [ 0 , 13 ] [0,[99 / 7]-1]=[0,13] [0,[99/7]−1]=[0,13] 之间随机取 r = 10 , k ′ = k + r p = 4 + 10 × 7 = 74 r=10, k^{\prime}=k+r p=4+10 \times 7=74 r=10,k′=k+rp=4+10×7=74, k 1 ≡ k ′  modd  d 1 ≡ 74   m o d   9 ≡ 2 k 2 ≡ k ′   m o d   d 2 ≡ 74   m o d   11 ≡ 8 k 3 ≡ k ′   m o d   d 3 ≡ 74   m o d   13 ≡ 9 \begin{aligned} & k_1 \equiv k^{\prime} \text { modd } d_1 \equiv 74 \bmod 9 \equiv 2 \\ & k_2 \equiv k^{\prime} \bmod d_2 \equiv 74 \bmod 11 \equiv 8 \\ & k_3 \equiv k^{\prime} \bmod d_3 \equiv 74 \bmod 13 \equiv 9\end{aligned} ​k1​≡k′ modd d1​≡74mod9≡2k2​≡k′modd2​≡74mod11≡8k3​≡k′modd3​≡74mod13≡9​3 个子密钥为 { ( 9 , 2 ) , ( 11 , 8 ) , ( 13 , 9 ) } \{(9,2),(11,8),(13,9)\} {(9,2),(11,8),(13,9)}。

若知道 { ( 9 , 2 ) , ( 11 , 8 ) } \{(9,2),(11,8)\} {(9,2),(11,8)}, 可建立方程组: { k ′ ≡ 2 mod ⁡ 9 k ′ ≡ 8 mod ⁡ 11 \begin{cases} k^{\prime} \equiv 2 \operatorname{mod} 9 \\ k^{\prime} \equiv 8 \operatorname{mod} 11 \\\end{cases} {k′≡2mod9k′≡8mod11​根据中国剩余定理,解得: k ′ ≡ ( 11 × 5 × 2 + 9 × 5 × 8 )   m o d   ≡ 74 k^{\prime} \equiv(11 \times 5 \times 2+9 \times 5 \times 8) \bmod \equiv 74 k′≡(11×5×2+9×5×8)mod≡74因此 k ′ ≡ k   m o d   p = 4 k^{\prime} \equiv k \bmod p=4 k′≡kmodp=4

4. 可验证的秘密共享

可验证的秘密共享VSS方案是对传统秘密共享方案的修正,在通常的秘密分享方案基础上附加验证操作构成,主要用于解决不诚实的分发中心问题。

在VSS方案中,分发者不但分发秘密的碎片,而且广播对秘密碎片的承诺,当个成员收到其碎片时,要验证其碎片是否正确;在秘密重构阶段,每个参与者也采用同样方法验证其他成员秘密碎片的正确性。

VSS主要抵抗以下两种主动攻击:

分发者在秘密分发协议中发送错误碎片给部分或全部参与者。协议参与者在秘密重构协议中提交错误碎片。

常见的可验证的秘密共享方案包括Feldman的VSS方案以及Pedersen方案。

4.1 Feldman的VSS方案

(1)秘密分发

可信中心选取阶随机多项式: f ( x ) = a t − 1 x t − 1 + … + a 2 x 2 + a 1 x + a 0 ∈ G F ( q ) [ x ] f(x)=a_{t-1} x^{t-1}+\ldots+a_{2} x^{2}+a_{1} x+a_{0} \in G F(q)[x] f(x)=at−1​xt−1+…+a2​x2+a1​x+a0​∈GF(q)[x]常数 a 0 = s a_{0}=s a0​=s为要分发的秘密;

可信中心选择 n n n个非零的互不相同的元素 x 1 , x 2 , … , x n ∈ G F ( q ) x_{1}, x_{2}, \ldots, x_{n} \in G F(q) x1​,x2​,…,xn​∈GF(q),计算 y i = f ( x i ) , 1 ≤ i ≤ n y_{i}=f\left(x_{i}\right), 1 \leq i \leq n yi​=f(xi​),1≤i≤n , 将子密钥 ( x i , y i ) \left(x_{i}, y_{i}\right) (xi​,yi​) 分配给共享者 P i P_{i} Pi​( ( x i ) \left(x_{i}\right) (xi​)是公开的, y i y_{i} yi​为 P i P_{i} Pi​的秘密共享),可信中心计算并广播承诺 B j = g a j , 0 ≤ j < t B_{j}=g^{a_{j}}, 0 \leq j<t Bj​=gaj​,0≤j<t。

参与者 P i P_{i} Pi​收到自己的碎片 y i y_{i} yi​后, 判断 g y i = Π j = 0 t − 1 B j x i j g^{y_{i}}=\Pi_{j=0}^{t-1} B_{j}^{x_{i}^{j}} gyi​=Πj=0t−1​Bjxij​​是否成立, 如果成立, 则接受该 碎片为有效; 否则, P i P_{i} Pi​ 请求可信中心重新发送正确的碎片。

若可信中心向 P i P_{i} Pi​ 传送了正确的碎片 y i y_{i} yi​, 则有 g y i = g f ( x i ) = g a t − 1 r i t − 1 + … + a 2 x i 2 + a 1 x i + a 0 = g a t − 1 x i t − 1 … g a 2 x i 2 g a 1 x i g a 0 = B t − 1 x i t − 1 … B 2 x i 2 B 7 x i B 0 = Π j = 0 t − 1 B j x i j \begin{aligned} g^{y_{i}=g^{f\left(x_{i}\right)}} & =g^{a_{t-1} r_{i}^{t-1}+\ldots+a_{2} x_{i}^{2}+a_{1} x_{i}+a_{0}} \\ & =g^{a_{t-1} x_{i}^{t-1}} \ldots g^{a_{2} x_{i}^{2}} g^{a_{1} x_{i}} g^{a_{0}} \\ & =B_{t-1}^{x_{i}^{t-1}} \ldots B_{2}^{x_{i}^{2}} B_{7}^{x_{i}} B_{0} \\ & =\Pi_{j=0}^{t-1} B_{j}^{x_{i}^{j}} \end{aligned} gyi​=gf(xi​)​=gat−1​rit−1​+…+a2​xi2​+a1​xi​+a0​=gat−1​xit−1​…ga2​xi2​ga1​xi​ga0​=Bt−1xit−1​​…B2xi2​​B7xi​​B0​=Πj=0t−1​Bjxij​​​(2)秘密重构

假设每个参与者都接受到正确的碎片, 他们中的任意 t t t个可执行 Shamir门限秘密分享方案中的重构算法恢复出院时秘密, 即 P i P_{i} Pi​向参与重构的其他人广播自己的碎片,这样每个参与重构的成员均可验证所接收到的碎片的有效性,然后使用Lagrange揷值公式计算出秘密 S S S。

Feldman的VSS方案中, 由于可信中心在广播承诺时将 B 0 = g a 0 = g s B_{0}=g^{a_{0}}=g^{s} B0​=ga0​=gs也作为一个承诺发出, 因此方案仅是计算安全的。

4.2 Pedersen的VSS方案

Pedersen扩展了Feldman的方案,将Shamir秘密共享方案与承诺方案相结合,构造出了一个高效、安全的非交互式可验证秘密共享方案,且验证信息不会直接泄露秘密 k k k,因此是信息论安全的。

(1)秘密分发

可信中心选取两个 t t t阶随机多项式: a ( x ) = a t − 1 x t − 1 + … + a 2 x 2 + a 7 x + a 0 ∈ G F ( q ) [ x ] b ( x ) = b t − 1 x t − 1 + … + b 2 x 2 + b 1 x + b 0 ∈ G F ( q ) [ x ] \begin{array}{l} a(x)=a_{t-1} x^{t-1}+\ldots+a_{2} x^{2}+a_{7} x+a_{0} \in G F(q)[x] \\ b(x)=b_{t-1} x^{t-1}+\ldots+b_{2} x^{2}+b_{1} x+b_{0} \in G F(q)[x] \end{array} a(x)=at−1​xt−1+…+a2​x2+a7​x+a0​∈GF(q)[x]b(x)=bt−1​xt−1+…+b2​x2+b1​x+b0​∈GF(q)[x]​常数 a 0 = s a_{0}=s a0​=s为要分发的秘密。

可信中心选择 n n n个非零的互不相同的元素 x 1 , x 2 , … , x n ∈ G F ( q ) x_{1}, x_{2}, \ldots, x_{n} \in G F(q) x1​,x2​,…,xn​∈GF(q) ,计算 y i = ( s i , s i 2 ) = ( a ( x i ) , b ( x i ) ) , 1 ≤ i ≤ n y_{i}=\left(s_{i}, s_{i 2}\right)=\left(a\left(x_{i}\right), b\left(x_{i}\right)\right), 1 \leq i \leq n yi​=(si​,si2​)=(a(xi​),b(xi​)),1≤i≤n 将子密钥 ( x i , y i ) \left(x_{i}, y_{i}\right) (xi​,yi​)分配给共享者 P i P_{i} Pi​( x i x_{i} xi​是公开的, y i y_{i} yi​为 P i P_{i} Pi​的秘密共享)。可信中心计算并广播承诺 C j = g a j h b j , 0 ≤ j < t C_{j}=g^{a_{j}} h^{b_{j}}, 0 \leq j<t Cj​=gaj​hbj​,0≤j<t 。

参与者 P i P_{i} Pi​ 收到自己的碎片 y i y_{i} yi​ 后, 判断 g s i ⌝ h s i 2 = ∏ j = 0 t − 1 C j x i j g^{s_{i\urcorner}} h^{s_{i 2}}=\prod_{j=0}^{t-1} C_{j}^{x_{i}^{j}} gsi┐​hsi2​=∏j=0t−1​Cjxij​​ 是否成立。如果成立, 则接受 该碎片为有效; 否则, P i P_{i} Pi​ 请求可信中心重新发送正确的碎片。

若可信中心向 P i P_{i} Pi​传送了正确的碎片 y i y_{i} yi​, 则有 g s i ⌝ h s i 2 = g a ( x i ) h b ( x i ) = ( g a t − 1 x i t − 1 + … + a 2 x i 2 + a 1 x i + a 0 ) ( h b t − 1 x i t − 1 + … + b 2 x i 2 + b 1 x i + b 0 ) = ( g a t − 1 h b t − 1 ) x i t − 1 … ( g a 2 h b 2 ) x i 2 ( g a a h b 1 ) x i g a 0 h b 0 = C t − 1 x i t − 1 … C 2 x i 2 C 1 x i C 0 = ∏ j = 0 t − 1 C j x i j \begin{aligned} g^{s_{i\urcorner}} h^{s_{i 2}}= & g^{a\left(x_{i}\right)} h^{b\left(x_{i}\right)}=\left(g^{a_{t-1} x_{i}^{t-1}+\ldots+a_{2} x_{i}^{2}+a_{1} x_{i}+a_{0}}\right)\left(h^{b_{t-1} x_{i}^{t-1}+\ldots+b_{2} x_{i}^{2}+b_{1} x_{i}+b_{0}}\right) \\ & =\left(g^{a} t-1 h^{b_{t-1}}\right)^{x_{i}^{t-1}} \ldots\left(g^{a_{2}} h^{b_{2}}\right)^{x_{i}^{2}}\left(g^{a^{a}} h^{b_{1}}\right)^{x_{i}} g^{a_{0}} h^{b_{0}} \\ & =C_{t-1}^{x_{i}^{t-1}} \ldots C_{2}^{x_{i}^{2}} C_{1}^{x_{i}} C_{0} \\ & =\prod_{j=0}^{t-1} C_{j}^{x_{i}^{j}} \end{aligned} gsi┐​hsi2​=​ga(xi​)hb(xi​)=(gat−1​xit−1​+…+a2​xi2​+a1​xi​+a0​)(hbt−1​xit−1​+…+b2​xi2​+b1​xi​+b0​)=(gat−1hbt−1​)xit−1​…(ga2​hb2​)xi2​(gaahb1​)xi​ga0​hb0​=Ct−1xit−1​​…C2xi2​​C1xi​​C0​=j=0∏t−1​Cjxij​​​(2)秘密重构

假设每个参与者都接受到正确的碎片, 他们中的任意 t t t个可执行 Shamir门限秘密分享方案中的重构算法恢复出院时秘密, 即 P i P_{i} Pi​向参与重构的其他人广播自己的碎片, 这样每个参与重构的成员均可验证所接收到的碎片的有效性, 然后使用Lagrange揷值公式计算出秘密 s s s 。

Pedersen的VSS方案中,可信中心在广播承诺时与秘密 s s s相关的信息仅为 C 0 = g s h b 0 C_{0}=g^{s} h^{b_{0}} C0​=gshb0​,没有泄露关于 s s s的任何信息,因此方案是信息论安全的。

5. 无分发者的随机秘密共享

在该秘密体制中不存在秘密分发者,仅有参与者 P 1 , P 2 , . . . , P n P_1,P_2,...,P_n P1​,P2​,...,Pn​,他们以交互的方式协商出一个随机秘密 s s s,并各自得到该秘密的一个碎片 s i s_i si​,但每个参与者都不知道这个随机秘密的具体值,除非他们公布自己的碎片并重构该秘密。

基于Shamir的秘密分享体制的一个无秘密分发者的 ( t , n ) (t,n) (t,n)秘密分享体制,称为Joint-Shamir-RSS方案(Joint Shamir Random Secret Sharing)。

(1) 每个参与者 P i P_i Pi​ 选择一个 t − 1 t-1 t−1 次随机多项式 f i ( x ) = a i , t − 1 x t − 1 + … + a i 2 x 2 + a i 1 x + a i 0 ∈ G F ( q ) [ x ] f_i(x)=a_{i, t-1} x^{t-1}+\ldots+a_{i 2} x^2+a_{i1} x+a_{i0} \in G F(q)[x] fi​(x)=ai,t−1​xt−1+…+ai2​x2+ai1​x+ai0​∈GF(q)[x], 以 a i 0 = f i ( 0 ) a_{i 0}=f_i(0) ai0​=fi​(0) 作为自己要让 P 1 , P 2 , … , P n P_1, P_2, \ldots, P_n P1​,P2​,…,Pn​ 分享的秘密。

(2) P i P_i Pi​ 计算 s i j = f i ( x j ) s_{ij}=f_i\left(x_j\right) sij​=fi​(xj​), 发送给 P j , j = 1 , 2 , … , n P_j, j=1,2, \ldots, n Pj​,j=1,2,…,n, 如下所示: P 1 P 2 P j P n P 1 f 1 ( x 1 ) f 7 ( x 2 ) f 7 ( x j ) f 1 ( x n ) P 2 f 2 ( x 1 ) f 2 ( x 2 ) f 2 ( x j ) f 2 ( x n ) P i f i ( x 1 ) f i ( x 2 ) f i ( x j ) f i ( x n ) P n f n ( x 1 ) f n ( x 2 ) f n ( x j ) f n ( x n ) \begin{array}{llllll} & P_1 & P_2 & P_j & P_n \\ P_1 & f_1\left(x_1\right) & f_7\left(x_2\right) & f_7\left(x_j\right) & f_1\left(x_n\right) \\ P_2 & f_2\left(x_1\right) & f_2\left(x_2\right) & f_2\left(x_j\right) & f_2\left(x_n\right) \\ P_i & f_i\left(x_1\right) & f_i\left(x_2\right) & f_i\left(x_j\right) & f_i\left(x_n\right) \\ P_n & f_n\left(x_1\right) & f_n\left(x_2\right) & f_n\left(x_j\right) & f_n\left(x_n\right) \end{array} P1​P2​Pi​Pn​​P1​f1​(x1​)f2​(x1​)fi​(x1​)fn​(x1​)​P2​f7​(x2​)f2​(x2​)fi​(x2​)fn​(x2​)​Pj​f7​(xj​)f2​(xj​)fi​(xj​)fn​(xj​)​Pn​f1​(xn​)f2​(xn​)fi​(xn​)fn​(xn​)​(3) P j P_j Pj​ 收到其他参与者的值 s i j = f i ( x j ) , i = 1 , 2 , … , n s_{i j}=f_i\left(x_j\right), i=1,2, \ldots, n sij​=fi​(xj​),i=1,2,…,n, 计算 s j = ∑ i = 1 n f i ( x j ) s_j=\sum_{i=1}^n f_i\left(x_j\right) sj​=∑i=1n​fi​(xj​) 作为 自己最终分享秘密的碎片。

从协议中可以看出, 若令 f ( x ) = ∑ i = 1 n f i ( x ) f(x)=\sum_{i=1}^n f_i(x) f(x)=∑i=1n​fi​(x), 则 f ( x j ) = ∑ i = 1 n f i ( x j ) f\left(x_j\right)=\sum_{i=1}^n f_i\left(x_j\right) f(xj​)=∑i=1n​fi​(xj​) 。

秘密重构阶段,只需任意 t t t个参与者使用自己拥有的秘密碎片 s i s_i si​执行Shamir秘密分享体制的秘密重构即可。


点击全文阅读


本文链接:http://zhangshiyu.com/post/53348.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1