秘密共享

  • 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秘密分享体制的秘密重构即可。

安全多方计算之六:秘密共享相关推荐

  1. 安全多方计算基础——秘密分享的两种方案

    欢迎各位来访问我滴博客~~ 秘密分享(Secret Sharing): Shamir阈值秘密分享方案: 该方案基于拉格朗日插值法,支持n个参与方中的任意t个可以联合解开秘密数据. A的目的是将其秘密数 ...

  2. Shamir秘密共享机制(加法、乘法共享)Matlab可视化实现

    具体秘密共享的流程可以参考下面这个链接的内容:https://blog.csdn.net/Matrix_element/article/details/117357359 main1.m 加法方案的主 ...

  3. 多方安全计算-秘密共享

    秘密共享 秘密共享(Secret-Sharing) 是现代密码学领域的一个重要分支,是信息安全和数据保密中的重要手段,也是多方安全计算和联邦学习等领域的一个基础应用技术.实际应用中,在密钥管理,数字签 ...

  4. 【密码学】【多方安全计算】Secret Sharing秘密共享浅析

    Secret Sharing秘密共享浅析 什么是秘密共享 加解密过程 验证加解密 参考文献 秘密共享(Secret Sharing)是实现多方安全计算的一种常用方式,MPC当然也可以用混淆电路(Gar ...

  5. 隐私计算 2.9 秘密共享应用于横向联邦学习

    1 简介 1.1 横向联邦学习 横向联邦学习也称为按样本划分的联邦学习,主要应用于各个参与方的数据集有相同的特征空间和不同的样本空间的场景,例如两个地区的城市商业银行可能在各自的地区拥有非常不同的客户 ...

  6. mpc 安全多方计算协议_BNC公链 | 不看到数据却能进行计算?一文了解安全多方计算...

    今天,数据可以用来分析复杂问题,提供解决方案,甚至解决无法回答的问题.但是,当涉及到利用数据为公众服务时,数据共享和数据保护之间往往存在着许多矛盾.而安全多方计算(MPC)如何在不泄露隐私数据的情况下 ...

  7. 安全多方计算新突破!阿里首次实现“公开可验证” 的安全方案

    阿里妹导读:近日,阿里安全双子座实验室与马里兰大学等高校合作的论文<Covert Security with Public Verifiability: Faster, Leaner, and ...

  8. mpc 安全多方计算协议_HashKey:说透安全多方计算 MPC 技术方案、挑战与未来

    链闻 ChainNews 安全多方计算对网络信息安全与数据市场的发展具有重要价值. 撰文:钱柏均,就职于 HashKey Capital Research审校:邹传伟,万向区块链.PlatON首席经济 ...

  9. 基于秘密共享的MPC:GMW、BGW、Beaver triple

    资料: 主要参考 - MPC综述电子书:Evans D, Kolesnikov V, Rosulek M. A pragmatic introduction to secure multi-party ...

最新文章

  1. python colormap函数_python-使用由x,y位置定义的rgb值创建colormap
  2. 程序员生存定律--编程的起点与可能的失足
  3. 解决Please ensure that adb is correctly located at 'D:\java\sdk\platform-tools\adb.exe' and can be exe
  4. 深入浅出SharePoint——取消Workflow实例
  5. 局域网通过专线上网的维护经验点滴
  6. 【C 语言】结构体 ( 结构体变量内存操作 | 通过 “ . “ 操作符操作结构体内存空间 | 通过 “ -> “ 操作符操作结构体内存空间 )
  7. 嵌入生活的嵌入式,超市里的电子价签
  8. JavaScript大杂烩4 - 理解JavaScript对象的继承机制
  9. 马斯克:特斯拉汽车产量今年有望达到50万辆
  10. php怎么限制文章标题的字数,文章标题在WordPress中显示的长度即字数如何限制呢?...
  11. JAVA8——StringJoiner类
  12. Made in 大产品——技术商业盛典
  13. Google Chrome谷歌浏览器离完整离线安装包下载地址整理总汇
  14. 访问控制基础(DAC,MAC,RBAC,ABAC,BLP)
  15. 2019-11软考报名网站汇总,陆续更新
  16. Windows批处理学习(一)——MS-DOS命令
  17. android 小米8底部黑色高度太高,小米8评测:众多黑科技加持,能否跃身高端行列?...
  18. make menuconfig错误——make[2]: *** [scripts/kconfig/lexer.lex.c] 错误 127
  19. 原型模型| 软件工程
  20. scala中 sorted,sortBy,sortWith语法使用

热门文章

  1. 一些企业个人网银的U盾或是usbkey在web(IE)网页中无法使用的解决方法
  2. HTML设计网页之网页头部
  3. Qemu连接外网的配置方法
  4. 计算机考研380分难吗,考研380分相当于高考多少分的难度
  5. 初步学习软件测试的一些思考
  6. 谷歌浏览器打开标签会把之前的覆盖掉_Chrome浏览器切换到之前打开的标签页会重新加载...
  7. win10使用python的strftime有错误_win10系统提示werfault.exe应用程序错误如何解决
  8. HTML5模拟齿轮动画
  9. c语言中float是什么类型的数据,float是什么数据类型?
  10. 龙芯1c300b开发语言,龙芯 1C0300B 主控芯片已成功进入激光打印机市场