Shamir秘密共享算法

(t,n)门限方案,也称Shamir门限方案或拉格朗日插值法。该方案是1979年Shamir基于多项式的拉格朗日插值公式提出的。

秘密共享技术的基本要求即将秘密s分成n等份:(1)已知任意t等份可以算出s (2)已知任意t-1个或更少数的份额不能确定s。即泄露至多t-1个份额不会危机秘密s

Shamir门限方案详细步骤

  1. 参数选取

选定一个素数p,p应该大于所有可能的密钥,并且比所有可能的份额大。设秘密S用一个模p数来表示,参与保管的成员有n个,要求重构该秘密需要至少t个人。

  1. 秘密分割

随机选定t-1个模p数,记为,得到多项式:,该多项式满足

其次,选定n个不同的小于p的整数(如选择1,2,...,n),对于每个整数分别计算数对,其中

最后,将n个数对分别秘密传送给n个成员,多项式s(x)则是保密的,可以销毁

  1. 秘密恢复

假设t个人一起恢复秘密S。不妨设他们的数对为

首先,t个人计算多项式f(x):

其次,取多项式f(x)的常数项f(0),即为所求的秘密S

Shamir秘密共享算法是一种通过将秘密信息分割成多个部分,分发给不同的参与者,使得只有集齐足够数量的部分才能恢复出原始秘密信息的算法。下面将介绍一个Shamir秘密共享算法的实验设计。 实验目标:验证Shamir秘密共享算法的可行性和正确性。 实验步骤: 1. 确定参与者数量和秘密信息的长度,假设有k个参与者分别称为P1, P2, ..., Pk,并且秘密信息由一个整数表示。 2. 生成一个(k-1)次的多项式函数,其中常数项为秘密信息,其它项为随机生成的系数。将该函数表示为f(x) = a0 + a1*x + a2*x^2 + ... + a(k-1)*x^(k-1)。 3. 将多项式函数f(x)代入不同的x坐标(对应参与者),计算出对应的y坐标(对应分发给参与者的部分秘密信息)。 4. 将生成的坐标对(x, y)分发给相应的参与者,每个参与者只收到一个坐标对。 5. 只有集齐至少k个参与者的坐标对,秘密信息才能被恢复。 6. 验证恢复出的秘密信息是否正确,并与原始秘密信息进行对比。 实验要点: 1. 多项式函数的生成需要保证随机性,可以使用随机数生成器来产生系数。 2. 参与者之间必须保持沟通,以便在恢复秘密信息时,能够及时共享各自持有的部分信息。 3. 实验中的参与者数量k和多项式次数(k-1)需要事先确定,并满足k的选择与算法要求的阈值条件。 通过这样的实验设计,可以验证Shamir秘密共享算法的正确性和可行性。并且,这个实验可以帮助理解Shamir秘密共享算法的原理和应用场景,帮助学习者更好地掌握该算法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值