
数字签名
文章平均质量分 74
_viceversa
卡耐基梅隆大学2022届计算机
华尔街打工人
展开
-
Fiat-Shamir transform 和零知识证明
零知识证明是区块链密码学的重要内容。近期在学习环签名,因此了解了一下证明机制。 零知识证明:向对方证明自己知道某个秘密,但不泄露秘密。 一个传统的证明步骤如下: 1 以离散对数加密为例,一证明者公开一系列信息(g,y1)(g,y1)(g,y_1),其中g是本原元,如果用椭圆曲线离散对数就是基点坐标,y1就是公钥。 2 选择一个伪随机数v∈Zqv∈Zqv\in \mathbb{Z}_...原创 2018-04-09 19:27:18 · 2396 阅读 · 0 评论 -
【源码阅读】用Go语言实现环签名的签名和验证(一)
环签名是区块链中保护用户隐私的方法之一,今天起更新环签名的实现,顺带讲一下原理。源码是MIT的开源代码,用go语言编写,由于我也是go语言小白,所以一边读一边学语法。import ( "bytes" "crypto/elliptic" "crypto/sha256" "fmt" "io" "math/big" "syn原创 2018-04-11 20:01:26 · 4495 阅读 · 3 评论 -
【源码阅读】用Go语言实现环签名的签名和验证(二)
func hashToInt(hash []byte, c elliptic.Curve) *big.Int { orderBits := c.Params().N.BitLen() orderBytes := (orderBits + 7) / 8 if len(hash) > orderBytes { hash = hash[:orderByt...原创 2018-04-12 13:38:55 · 2095 阅读 · 2 评论 -
Schnorr签名体制
schnorr签名被认为可以解决比特币的空间问题,如下面一段所述: If you ask anyone in the Bitcoin space what the biggest challenge for Bitcoin is, you will likely hear the answer “scalability”. 但事实上schnorr签名在比特币之前十几年已被发明,它是Elgam...原创 2018-04-24 20:56:10 · 6185 阅读 · 2 评论 -
门限签名(1)——秘密共享
门限签名(threshold signature区块链中叫多重签名 multisig),即n个用户中有t个签名时,签名有效。秘密共享是门限签名的一种特殊情况,即多个用户共享一个秘密,并不是把秘密发给每个人,而是把秘密拆分开发给每个人(当然,也不能直接把信息拆开分发,存在语义上的安全问题),我总结的条件为:(1)用户能够验证自己的秘密份额是正确的(2)数量足够的用户能够重构秘密对于条件(1)...原创 2019-02-28 21:10:17 · 7889 阅读 · 0 评论 -
Hess签名
Hess签名是一种双线性对上基于身份的签名方案,也是构造一种门限签名的基础。定义双线性对:e^:g×g→F\hat{e}:g\times g \rightarrow Fe^:g×g→F,通常是weir或者tate对。定义PPP为ggg的一个原根。定义公钥:Ppub=sPP_{pub}=sPPpub=sP,身份信息QID=H1(ID)Q_{ID}=H_1(ID)QID=H1(ID),DI...原创 2019-02-26 21:14:47 · 716 阅读 · 0 评论 -
门限签名(2)——计算安全的可验证秘密共享
两种特性:①可验证,参与秘密共享方可以验证自己的秘密份额是否正确②计算安全,不存在概率多项式复杂度算法破解,或者遵循某些数学困难假设。因为秘密是共享的,某人的秘密份额是否正确需要和其它人的秘密份额作某些计算,实现可验证性需要所有人的信息,包裹在Hash函数中可以验证每个元素是否相等,但无法作计算,而包裹在双线性对中可以作加法、乘法计算。用到的双线性对性质:①e(a,P)e(b,P)=e(a...原创 2019-03-04 18:25:36 · 2812 阅读 · 0 评论