shamir秘密共享算法_密码学算法:shamir门限密钥共享算法

本文介绍了Shamir在1979年提出的(t,w)门限密钥共享方案,详细阐述了算法原理,包括子密钥生成过程和如何恢复主密钥。通过构造一个t-1次多项式,将主密钥作为常数项,并将碎片密钥分发给多个参与者。当收集到至少t个碎片时,可以恢复主密钥。文章还提供了Python代码示例,展示了算法的实现,包括解密成功和失败的情况。
摘要由CSDN通过智能技术生成

算法原理

(t,w)门限密钥共享方案,该方案是Shamir在1979年提出。Shamir(t,w)门限方案是通过构造一个t-1次多项式,将需要共享的主密钥S作为常数项,碎片密钥分成w部分给w个参与者,当碎片密钥数量大于或者等于t的话,就可以求解出这个主密钥S。

子密钥生成

构造多项式

e85eedb9d721fde37b55e794e8d9febc.png

其中s为密钥,p为素数(s

取w个不相等的x带入F(x)中,得到w组子密钥,分发给w个人保管

将p公开,销毁子密钥生成多项式,每个人保管自己的子密钥

恢复密钥

构造多项式b9383fae7e41db3c83425404bc7a8a93.png

此多项式为上面多项式的变形

取x=0,代入t组密钥可以求解出F(0),也就是主密钥s

算法实现代码

python代码

import random
import math

# 输入p, w, t, s 程序入口
  • 3
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值