密码协议学习笔记(8.16):几种特殊的秘密分享体系

已知两个秘密的碎片,计算秘密的乘积的碎片:

已知两个秘密α0,β0分别实现了门限值为t的分享

fα(x)=α0+α1x++αt1xt1

fβ(x)=β0+β1x++βt1xt1

秘密碎片为A1=fα(1),A2=fα(2),,An=fα(n)

B1=fβ(1),B2=fβ(2),,Bn=fβ(n)

碎片(A1,B1),(A2,B2),,(An,Bn),分别由成员P1,P2,,Pn持有,但是,参与者们并不想分别恢复秘密α0,β0(可能包含有隐私信息),而是想直接恢复秘密的乘积α0β0,该怎么办?

实际上,各参与者直接计算手中碎片的乘积Ci=AiBi,得到的Ci就是秘密α0β0门限值为2t1的碎片.

任意2t1C1,C2,,C2t1碎片进行Lagrange插值后得到的结果是如下多项式.

fα(x)fβ(x)=α0β0+(α0β1+α1β0)x+(α0β2+α1β1+α2β0)x2++αt1βt1x2t2

x=0代入即可得到α0β0

已知秘密的碎片,计算秘密的逆元的碎片:

已知秘密k0实现了门限值为t的分享

f(x)=k0+k1x++kt1xt1

秘密碎片x1=f(1),x2=f(2),,xn=f(n)

分别由成员P1,P2,,Pn持有

但参与者们并不想恢复秘密k0,而是想直接恢复出k0的逆元k01,该怎么办?

成员Pi做如下工作

  1. 和其他成员协作,以无分发者的随机秘密分享(Joint-Shamir-RSS,密码协议学习笔记(8.1):秘密分享 - Isakovsky - 博客园 (cnblogs.com))的方式,实现对随机秘密a的门限值为t的分享,获得碎片ai
  2. 使用上文所述的协议,计算出xiai,此即为秘密ka的门限值为2t1的碎片
  3. 和其他成员协作重构出ka的值
  4. 计算ui=(ka)1ai,即得到秘密k1的门限为t的碎片.

成员中的任意t个,不妨记为P1,P2,,Pt可协作恢复k1,只需计算

Σi=1tλiui即可.

其中λi=Πj=0,1,i1,i+1,,t1jji为Lagrange插值系数.

Σi=1tλiui=Σi=1tλi(ka)1ai=(ka)1Σi=1tλiai=(ka)1a=k

 

posted @   Isakovsky  阅读(86)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示