前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >环签名

环签名

作者头像
飞狗
发布2019-04-01 11:25:16
1.6K0
发布2019-04-01 11:25:16
举报

环签名指的是在r个公钥中隐藏自己拥有私钥的那个公钥,支持在区块链上隐藏交易发送人(地址/公钥)。

环签名

假定要签名的消息为m,s为签名者,其公钥为

P_s
P_s

,私钥为

S_s
S_s

,环成员数量为r(

r > s \geq 1
r > s \geq 1

),以及环成员的公钥{

P_1
P_1

,

P_2
P_2

,…,

P_r
P_r

},签名者计算环签名如下:

计算环签名

  1. 获取对称加密秘钥:首先,签名者计算对称密钥k,即是要签名的消息m的散列:
k=h(m)
k=h(m)

(一个更复杂的计算k=h(m,

P_1
P_1

,…,

P_r
P_r

);然而,上面更简单的计算也是安全的。)

  1. 选择一个随机的粘合值v:其次,签名者从{0,1}
^b
^b

中随机均匀地取v值。

  1. 选择随机数
x_i
x_i

1 \leq x \leq r
1 \leq x \leq r

,并且

r \neq s
r \neq s
y_i = g_i(x_i)
y_i = g_i(x_i)
  1. 计算
y_s
y_s

C_k,_v(y_1, y_2,...,y_r) = v
C_k,_v(y_1, y_2,...,y_r) = v

通过假设,给定其它输入的任意值,对于满足方程的

y_s
y_s

有一个唯一的值,该值可以有效地计算出来。

  1. 计算
x_s
x_s

x_s = g_ s^{−1} (y_s)
x_s = g_ s^{−1} (y_s)
  1. 计算得到环签名: 消息m的环签名,是一个2r+1元组
(P_1, P_2,...,P_r; v; x_1, x_2,...,x_r)
(P_1, P_2,...,P_r; v; x_1, x_2,...,x_r)

验证

  1. 首先,对于i = 1,2,…,r为验证者计算
y_i = g_i(x_i)
y_i = g_i(x_i)
  1. 获取对称加密秘钥:首先,签名者计算对称密钥k,即是要签名的消息m的散列:
k=h(m)
k=h(m)

3.验证环签名

C_k,_v(y_1, y_2,...,y_r) = v
C_k,_v(y_1, y_2,...,y_r) = v

附录

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.03.28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 计算环签名
  • 验证
  • 附录
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档