张成方案简介参考专栏的文章张成方案。
假设 M ^ \hat{M} M^是有 l l l列的单调张成方案,庄家持有的秘密为 s s s,可以按如下步骤构建秘密分割方案:
从 K l \mathcal{K^l} Kl中生成一个随机向量 r ⃗ = ( r 1 , r 2 , . . . , r l ) \vec{r}=(r_1,r_2,...,r_l) r=(r1,r2,...,rl),满足 r ⃗ ⋅ 1 ⃗ = ∑ i = 1 l r i = s \vec{r}\cdot\vec{1}=\sum_{i=1}^l r_i=s r⋅1=∑i=1lri=s。计算向量 t ∈ K l t\in \mathcal{K^l} t∈Kl, t = M ⋅ r ⃗ t=M \cdot \vec{r} t=M⋅r,并按照 M ^ \hat{M} M^中的行标记对 t t t进行标记。并将标记为 x i x_i xi的元素分配给 P i P_i Pi作为 P i P_i Pi的秘密份额。
G ⊆ { P 1 , P 2 , . . . , P n } G\subseteq{P_1,P_2,...,P_n} G⊆{P1,P2,...,Pn}是一个授权集合, δ G ⃗ \vec{\delta_G} δG是 G G G的特征向量。由于 f ( δ G ) = 1 f(\delta_G)=1 f(δG)=1, 1 ⃗ ∈ s p a n ( M δ G ) \vec{1}\in span(M_{\delta_G}) 1∈span(MδG),即存在常数 β 1 , β 2 , ⋯ , β ∣ G ∣ \beta_1,\beta_2,\cdots,\beta_{|G|} β1,β2,⋯,β∣G∣, ∑ i = 1 ∣ G ∣ β i M i = 1 ⃗ \sum_{i=1}^{|G|} \beta_i M_i=\vec{1} ∑i=1∣G∣βiMi=1。将 G G G中参与方持有的秘密份额做如下线性变换即可恢复秘密 s = ∑ i = 1 ∣ G ∣ β i ( M i ⋅ r ⃗ ) s=\sum_{i=1}^{|G|} \beta_i (M_i\cdot \vec{r}) s=∑i=1∣G∣βi(Mi⋅r)
M = [ 1 2 0 0 1 3 1 0 1 0 9 0 ] M=\begin{bmatrix} 1 & 2 & 0\\ 0 & 1 & 3 \\ 1 & 0 & 1 \\ 0 & 9 & 0\end{bmatrix} M=⎣⎢⎢⎡101021090310⎦⎥⎥⎤, ρ ( 1 ) = x 1 , ρ 2 ( 2 ) = x 2 , ρ 3 ( 3 ) = x 3 , ρ 4 ( 4 ) = x 4 \rho(1)=x_1,\rho_2(2)=x_2,\rho_3(3)=x_3,\rho_4(4)=x_4 ρ(1)=x1,ρ2(2)=x2,ρ3(3)=x3,ρ4(4)=x4, G = { P 1 , P 2 , P 3 } G=\{ P_1,P_2,P_3 \} G={P1,P2,P3}。明显存在 1 ⃗ ∈ s p a n ( M δ G ) \vec{1}\in span(M_{\delta_G}) 1∈span(MδG),对应常数 β 1 = 3 7 , β 2 = 1 7 , β 3 = 4 7 \beta_1=\frac{3}{7},\beta_2=\frac{1}{7},\beta_3=\frac{4}{7} β1=73,β2=71,β3=74。 设 r ⃗ = ( 1 , 2 , 2 ) , s = 5 \vec{r}=(1,2,2),s=5 r=(1,2,2),s=5。分配给 P 1 , P 2 , P 3 P_1,P_2,P_3 P1,P2,P3的秘密份额分别为 5 , 8 , 3 5,8,3 5,8,3。则秘密 s = 5 ∗ 3 7 + 8 ∗ 1 7 + 3 ∗ 4 7 = 5 s=5*\frac{3}{7}+8*\frac{1}{7}+3*\frac{4}{7}=5 s=5∗73+8∗71+3∗74=5
N N N是一个向量集合的矩阵表示, v ⃗ \vec{v} v与这个向量集合独立的充要条件是存在向量 w ⃗ \vec{w} w满足 N ⋅ w ⃗ = 0 ⃗ N\cdot \vec{w}=\vec{0} N⋅w=0且 v ⃗ ⋅ w ⃗ ≠ 0 ⃗ \vec{v} \cdot \vec{w} \neq \vec{0} v⋅w=0
设 B B B是未授权集合。因为 1 ⃗ \vec{1} 1与 M δ B M_{\delta_B} MδB独立,则存在向量 r ⃗ ′ \vec{r}^{\prime} r′,使得 M δ B ⋅ r ⃗ ′ = 0 ⃗ M_{\delta_B} \cdot \vec{r}^{\prime}=\vec{0} MδB⋅r′=0但 r ⃗ ′ ⋅ 1 ⃗ ≠ 0 \vec{r}^{\prime} \cdot \vec{1} \neq 0 r′⋅1=0。
对于任意 a ∈ Z p a \in Z_p a∈Zp,令 R ′ = r ⃗ + a r ⃗ ′ R^{\prime}=\vec{r}+a\vec{r}^{\prime} R′=r+ar′,则有
M δ B ⋅ R ′ = M δ B ⋅ r ⃗ + a ( M δ B ⋅ r ⃗ ′ ) = M δ B ⋅ r ⃗ = c ⃗ M_{\delta_B} \cdot R^{\prime}=M_{\delta_B} \cdot \vec{r} + a(M_{\delta_B} \cdot \vec{r}^{\prime})=M_{\delta_B} \cdot \vec{r}=\vec{c} MδB⋅R′=MδB⋅r+a(MδB⋅r′)=MδB⋅r=c,其中 c ⃗ \vec{c} c为 B B B的秘密份额。
1 ⃗ ⋅ R ′ = 1 ⃗ ⋅ ( r ⃗ + a r ⃗ ′ ) = 1 ⃗ ⋅ r ⃗ + a ( 1 ⃗ ⋅ r ⃗ ′ ) = s + a ( 1 ⃗ ⋅ r ⃗ ′ ) \vec{1} \cdot R^{\prime}=\vec{1} \cdot (\vec{r} + a\vec{r}^{\prime})=\vec{1} \cdot \vec{r}+a(\vec{1} \cdot \vec{r}^{\prime})=s+a(\vec{1} \cdot \vec{r}^{\prime}) 1⋅R′=1⋅(r+ar′)=1⋅r+a(1⋅r′)=s+a(1⋅r′)
即证。