码迷,mamicode.com
首页 > 其他好文 > 详细

第十九个知识点:Shamir密钥交换场景

时间:2020-01-31 15:54:09      阅读:68      评论:0      收藏:0      [点我收藏+]

标签:交换   spl   play   org   lin   密钥交换   mod   分割   信息   

第十九个知识点:Shamir密钥交换场景

Shamir密钥交换场景是一个被Adi Shamir提出的算法.算法允许多方分割一个密码,例如一个密钥.当足够多的秘密结合起来,整个密钥就被计算出来了.

正式的说,如果我们有秘密\(S\)\(n\)方,我们能把\(S\)划分成\(n\)方.然后把它们分发给不同的组织.通过这样发送的密钥有一个限定值\(k\),如果密钥\(S\)\(k\)数量的部分被收集到,那么就可以计算出\(S\).如果\(k-1\)或者更少的密钥被收集,那么\(S\)将无法被计算.这个场景就叫做(\(k,n\))限定场景.

解释为什么场景能够被这样构造的最好方式就是通过一个例子.假设我们想要把分割秘密\(S = 1425\).分割成5部分(\(n = 5\)).同时需要3方才能允许密钥(\(S\))被计算出来.首先我们构造一个多项式\(f(x)\).它的阶为(\(k-1 = 2\)).系数是随机的.假如说是\(a_1 = 64, a_2 = 112\).和一个常数\(S\).
\[ f(x) = S + a_1x + a_2x^2 = 1425 + 64x + 112x^2 \]
从这个多项式中我们可以看到,我们可以构造5个点.这些点分发给不同的组织.
\[ P_0=(1,1601),P_1=(2,2001),P_2=(3,2625),P_3=(4,3473),P_4=(5,4545) \]
如果我们假设我们知道5个点中的3个点.我们能够计算出这个多项式的系数.通过3个三元一次多项式.

就上面的例子来看,这个方法工作的很好.但是,窃听者也能够收集更多关于秘密的信息.因为上面我们已经工作在一个有理数的算数.然而,如果我们在有限域内工作(因此秘密和多项式是在q大小的域上定义的),那么如果任何两个或更少的参与方走到一起,他们对秘密一无所知。

这是因为这样的两方假如说组织一和组织二,然后密钥的值S来源于这个域.那么就有一个总有一个在这个多项式域中定义的值:(0,S‘), (2,2001 mod q) and (3,2625 mod q).

[1] - http://en.wikipedia.org/wiki/Polynomial

[2] - http://en.wikipedia.org/wiki/Lagrange_polynomial

[3] - http://en.wikipedia.org/wiki/Shamir%27s_Secret_Sharing

第十九个知识点:Shamir密钥交换场景

标签:交换   spl   play   org   lin   密钥交换   mod   分割   信息   

原文地址:https://www.cnblogs.com/zhuowangy2k/p/12245499.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!