Threshold ElGamal Cryptosystem 门限EIGamal 加密详解
以下第三部分Shamir's (k,n)-threshold scheme是核心
1.EIGamal 加密
详解ElGamal加密算法 | 夏冰加密软件技术博客
2.拉格朗日插值公式
详细解释和证明链接:
http://www.cnblogs.com/ECJTUACM-873284962/p/6833391.htmlwww.cnblogs.com
对于k+1个点 ,通过所有点的次数不超过k的多项式可表示为:
其中:
3. Shamir's (k,n)-threshold scheme
1)假设s是需要k个节点共同解密的信息, p为素数。
2)随机选择一个多项式
此多项式满足
即:
- 随机选择
- 设
3)对于 , 第i个参与节点的密钥为 这个密钥相当于拉格朗日差值公式中的取值点
4)消息s可以被任意的k个节点共同解密,解密方法如下:
4.Threshold EIGamal Cryptosystem
1)参数设置:
为 的循环子群,阶数为 。 , 均为大素数,并且 , 为 生成元,共有 个节点 来合作管理门限 ELGamal 密文。
2)如通常EIGamal加密一样,每个节点 都有一个私钥 , 公布 公钥 , EIGamal门限加密系统的加密公钥为 ,私钥
3)使用公钥y加密消息m, 得到的EIGamal 密文对为 ,想要解密就需要知道私钥s,也就是需要知道每一个节点的私钥 然后求和,但这就需要所有节点全部参与,为了达到“ 个节点中 个节点在一起就可以实现解密”,每个节点 都需要通过 Shamir's threshold scheme 向其他向其它节点分享自己的私钥 , 当 个节点中t个节点“凑”在一起时,就能解密得到每一个 的值,从而恢复出私钥
- 首先构造一个多项式(步骤如同 Shamir's threshold scheme)
其中
- 节点 向其它节点 , 发放他们的密钥此消息使用 的公钥加密。
- 当 个节点中t个节点“凑”在一起时,就可以解密
因此
把公式稍微变换一下
令
可得
可理解为节点 收到的“私钥分享总和”, 解密部分为