Shamir密钥分享算法简析

简述

秘密共享技术是密码学和信息安全的一个重要研究内容,ShamirShamir密钥分享算法最早是由ShamirShamir和BlacklyBlackly在1970年基于LagrangeLagrange插值和矢量方法提出的,其基本思想是分发者通过秘密多项式,将秘密ss分解为nn个秘密分发个持有者,其中任意不少于kk个秘密均能恢复密文,而任意少于kk个秘密均无法得到密文的任何信息。

实际应用

比如在门限体系中,为了保证信息安全性,一个秘密通常不能由单个持有者保存。比如一些重要场所的通行,比如遗嘱的生效等,必须将秘密分由多人保管并且只有当多人同时在场时秘密才能得以恢复。在这些场合,就需要这样一套的密钥分享技术。

算法思路

表示

ShamirShamir密钥共享算法由一个二元数(k,n)(k,n)表示,其中nn表示将明文ss加密为nn个ShadowShadow,kk表示必须至少同时拥有kk个ShadowShadow才能解密获得成明文。

加密

对于待加密的明文s∈ Zps∈ Zp(pp为大素数),在有限群GF(p)GF(p)任取k−1k−1个随机数a1,a2,…,ak−1a1,a2,…,ak−1,并令a0=sa0=s,从而构造如下的多项式:

                           

对于这个多项式,任取nn个数x1,x2,x3,…,xnx1,x2,x3,…,xn分别带入多项式得到nn个密钥对:

    

分发给nn个持有者。

解密

假设得到了kk个密钥对{x1,y1}{x2,y2}…{xk,yk}{x1,y1}{x2,y2}…{xk,yk},我们可以得到如下方程(运算均在GF(p)GF(p)):

 

                                               


由矩阵乘法或者LagrangeLagrange插值法均可求的a0a0即为明文ss。

安全性

由伽罗华域以及矩阵运算的性质可知该算法的安全性是显然的。

补充

当k=nk=n的时候,Shamir算法还有一种用异或运算的实现:任取n−1n−1个随机数(r1,r2,r3,…,rn−1)(r1,r2,r3,…,rn−1),对于明文ss计算

                                                                       rn=r1⊕r2⊕r3…⊕rn−1rn=r1⊕r2⊕r3…⊕rn−1


这样就可以通过将这nn个数全部进行异或来得到明文,同时,任意一个ShadowShadow都不会泄露有关秘密的任何信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

web3.0前沿技术研究者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值