多重加密里,用M个秘钥加密的信息只需要N个秘钥就可以解密(M>N),这里面的原理是什么?

 

Threshold ElGamal Cryptosystem 门限EIGamal 加密详解

以下第三部分Shamir's (k,n)-threshold scheme是核心


1.EIGamal 加密
详解ElGamal加密算法 | 夏冰加密软件技术博客
2.拉格朗日插值公式
详细解释和证明链接:

http://www.cnblogs.com/ECJTUACM-873284962/p/6833391.html​www.cnblogs.com多重加密里,用M个秘钥加密的信息只需要N个秘钥就可以解密(M>N),这里面的原理是什么?_第1张图片

对于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个节点“凑”在一起时,就可以解密


因此

把公式稍微变换一下



可得


可理解为节点 收到的“私钥分享总和”, 解密部分为

 

你可能感兴趣的:(密码学,密码学)