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个节点“凑”在一起时,就可以解密
因此
把公式稍微变换一下
令
可得 可理解为节点
收到的“私钥分享总和”,
解密部分为