如何让网站自适应,凡科如何开通网站建设,音乐网站样式设计,湛江企业网站建设流程1 简介
作者#xff1a;Brickell#xff1b;时间#xff1a;1989年#xff1b;理念#xff1a;Shamir秘密共享方案的推广#xff0c;由一维方程转向多维向量。
2 具体实现
I 秘密分割算法 #xff08;1#xff09;首先确定可以掌握钥匙的人数nnn#xff0c;以及模数…1 简介
作者Brickell时间1989年理念Shamir秘密共享方案的推广由一维方程转向多维向量。
2 具体实现
I 秘密分割算法 1首先确定可以掌握钥匙的人数nnn以及模数ppp。例如n4,p127n 4, p 127n4,p127 2确定ddd和viv_ivi其中viv_ivi是ddd维向量viv_ivi将在第4步构建 3确定分配规则例如{(v1,v2,v3),(v1,v4)}\{(v_1, v_2, v_3), (v_1, v_4)\}{(v1,v2,v3),(v1,v4)}表示第1,2,3个人可以解密第1,4个人也可以解密称为一组规则中的向量 4确定nnn个向量并保证一组钥匙可以线性表示为(1,0,0,…)(1,0,0,\dots)(1,0,0,…)这些向量所有参与者都知道例如 v1(0,1,0)v2(1,0,1)v3(0,1,−1)v4(1,1,0)\begin{array}{l} v_1 (0, 1, 0) \\ v_2 (1, 0, 1) \\ v_3 (0, 1, -1) \\ v_4 (1, 1, 0) \\ \end{array} v1(0,1,0)v2(1,0,1)v3(0,1,−1)v4(1,1,0) 5利用上面规则中的向量组来构成 (1,0,0)v2v3−v1(1,0,0)v4−v1\begin{array}{l} (1, 0, 0) v_2 v_3 - v_1 \\ (1, 0, 0) v_4 - v_1 \\ \end{array} (1,0,0)v2v3−v1(1,0,0)v4−v1 而要用(v2,v3,v4)(v_2, v_3, v_4)(v2,v3,v4)或其它不在规则里面的向量组构成(1,0,0,…)(1,0,0,\dots)(1,0,0,…)则是无解的。 6给定消息SSS生成d−1d - 1d−1个小于ppp的随机数例如a255a_2 55a255a338a_3 38a338同时a1S99a_1 S 99a1S99 7计算Sia⋅viS_i \mathbf{a} \cdot \mathbf{v_i}Sia⋅vi 其中a(a1,…,ad)\mathbf{a} (a_1, \dots, a_d)a(a1,…,ad)例如 S1(99,55,38)⋅(0,1,0)modp55S2(99,55,38)⋅(1,0,1)modp10S3(99,55,38)⋅(0,1,−1)modp17S4(99,55,38)⋅(1,1,0)modp27\begin{array}{l} S_1 (99, 55, 38) \cdot (0, 1, 0) \bmod p 55\\ S_2 (99, 55, 38) \cdot (1, 0, 1) \bmod p 10\\ S_3 (99, 55, 38) \cdot (0, 1, -1) \bmod p 17\\ S_4 (99, 55, 38) \cdot (1, 1, 0) \bmod p 27\\ \end{array} S1(99,55,38)⋅(0,1,0)modp55S2(99,55,38)⋅(1,0,1)modp10S3(99,55,38)⋅(0,1,−1)modp17S4(99,55,38)⋅(1,1,0)modp27 8将(Si,i)(S_i, i)(Si,i)作为钥匙分发给第iii个参与者。
II 秘密重构算法
1收集任意满足规则的钥匙比如第1,2,3个参与者的钥匙2构造(1,0,0,…)(1, 0, 0, \dots)(1,0,0,…)并计算出参数。例如 (1,0,0)−v1v2v3(1, 0, 0) -v_1 v_2 v_3(1,0,0)−v1v2v3 参数分别为c1−1,c21,c31c_1 -1, c_2 1, c_3 1c1−1,c21,c31。3将参数代入c1v1c2v2…modpSc_1v_1 c_2v_2 \dots \bmod p Sc1v1c2v2…modpS例如 (−1∗551∗101∗17)mod12799(-1 * 55 1 * 10 1 * 17) \bmod 127 99(−1∗551∗101∗17)mod12799
3 实例
设秘密S99S 99S99n4n 4n4, 向量维度d3d3d3, 模数p127p 127p127。 I 秘密分割 1确定解密规则{(v1,v2,v3),(v1,v4)}\{(v_1, v_2, v_3), (v_1, v_4)\}{(v1,v2,v3),(v1,v4)}viv_ivi表示第iii个ddd维向量该解密规则表示第1,2,3个人或第1,4个人分别可以合作恢复出秘密 2确定所有人共享的n4n 4n4向量{v1,…,v4}\{v_1, \dots, v_4\}{v1,…,v4}要求解密规则里的任意一组向量可以线性构成(1,0,0)(1, 0, 0)(1,0,0)而不在解密规则里的组合无法构成。例如v1(0,1,0)v_1 (0, 1, 0)v1(0,1,0)v2(1,0,1)v_2 (1, 0, 1)v2(1,0,1)v3(0,1,−1)v_3 (0, 1, -1)v3(0,1,−1)v4(1,1,0)v_4 (1, 1, 0)v4(1,1,0)利用这些向量构造如下 (1,0,0)v2v3−v1(1,0,0)v4−v1\begin{array}{l} (1, 0, 0) v_2 v_3 - v_1 \\ (1, 0, 0) v_4 - v_1 \\ \end{array} (1,0,0)v2v3−v1(1,0,0)v4−v1 3生成d−1d - 1d−1个小于ppp的随机数a255a_2 55a255a338a_3 38a338同时a1S99a_1 S 99a1S99 4分别计算Sia⋅viS_i \mathbf{a} \cdot \mathbf{v_i}Sia⋅vi 其中a(a1,a2,a3)\mathbf{a} (a_1, a_2, a_3)a(a1,a2,a3) S1(99,55,38)⋅(0,1,0)modp55S2(99,55,38)⋅(1,0,1)modp10S3(99,55,38)⋅(0,1,−1)modp17S4(99,55,38)⋅(1,1,0)modp27\begin{array}{l} S_1 (99, 55, 38) \cdot (0, 1, 0) \bmod p 55\\ S_2 (99, 55, 38) \cdot (1, 0, 1) \bmod p 10\\ S_3 (99, 55, 38) \cdot (0, 1, -1) \bmod p 17\\ S_4 (99, 55, 38) \cdot (1, 1, 0) \bmod p 27\\ \end{array} S1(99,55,38)⋅(0,1,0)modp55S2(99,55,38)⋅(1,0,1)modp10S3(99,55,38)⋅(0,1,−1)modp17S4(99,55,38)⋅(1,1,0)modp27 5将(Si,i)(S_i, i)(Si,i)作为钥匙分发给第iii个参与者。
II 秘密重构
1收集任意满足解密规则的钥匙例如第123个人的S155,S210,S317S_1 55, S_2 10, S_3 17S155,S210,S317
2使用第123个向量构造(1,0,0)(1, 0, 0)(1,0,0) c1v1c2v2c3v3(1,0,0)\begin{array}{l} c_1v_1 c_2v_2 c_3v_3 (1, 0, 0) \\ \end{array} c1v1c2v2c3v3(1,0,0) 其参数分别为c1−1,c21,c31c_1 -1, c_2 1, c_3 1c1−1,c21,c31。
3将参数带入c1S1c2S2c3S3Sc_1S_1 c_2S_2 c_3S_3 Sc1S1c2S2c3S3S (−1∗551∗101∗17)mod12799\begin{array}{l} (-1 * 55 1 * 10 1 * 17) \bmod 127 99 \\ \end{array} (−1∗551∗101∗17)mod12799
2.2.4 代码