ZKAttest: Ring and Group Signatures for existing ECDSA keys 学习笔记
Posted mutourend
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ZKAttest: Ring and Group Signatures for existing ECDSA keys 学习笔记相关的知识,希望对你有一定的参考价值。
1. 引言
来自于Cloudflare和Cornell Tech的Armando Faz-Hern´andez等人,2021年论文《ZKAttest: Ring and Group Signatures for existing ECDSA keys》。
代码实现有:
- https://github.com/cloudflare/zkp-ecdsa(TypeScript)
在该代码实际实现时,采用的Groth–Kohlweiss membership Proof算法来自于 Groth和Kohlweiss 2015年论文《One-out-of-Many Proofs: Or How to Leak a Secret and Spend a Coin》,详细可参看博客:
加密密钥越来越多地存储在专用硬件或软件接口后面。这样做会限制访问,例如只允许通过ECDSA进行签名。若想将该key用于环签名或群签名,现有接口无法满足相应的要求。
本文提供了一种
∑
\\sum
∑-protocol,可使用committed public key来验证对某一消息的ECDSA签名或Schnorr签名,而不需要reveal该public key。基于该协议,结合Groth–Kohlweiss membership proof,可派生出在无法访问私钥的情况下,进行环签名的机制。
1.1 环签名
环签名(ring signature)是一种数字签名方案,最初由Rivest等人提出,环签名是一种简化的群签名,环签名中只有环成员没有管理者,不需要环成员间的合作。环签名是一个能够实现签名者无条件匿名的签名方案。ring signature背景知识可参看博客 隐私交易基本原则 第3和第4节内容。
某公司内的泄密者可采用包含该公司内所有成员的环签名方式来泄露秘密文件,这样既可证明泄密者确实属于该公司,同时又保证匿名性。
Web Authentication: An API for accessing Public Key Credentials - Level 2.,为当前流行的硬件验证器标准,仅支持通过标准化算法(如ECDSA)对消息进行签名。这些签名和显示公钥真实性的证书链揭示了在执行认证时使用了哪个验证器,从而在认证信任度与隐私之间进行了权衡。更改此类模块的安装基础以增强隐私(如支持现有的环签名方案),将需要数年的时间。因此,有必要利用现有的key来增强WebAuthn认证的隐私性:这是ZKAttest的主要目标。
ZKAttest的核心primitive为:
- proof of valid ECDSA signature under a committed public key
Verifier可在不知道public key的情况下,通过该proof验证签名的有效性。ZKP中commitment的hiding属性可实现相应的功能。如, C C C为a commitment to a value on a public list of keys,从而产生环签名。
参考资料
[1] ZKAttest: Ring and Group Signatures for existing ECDSA keys
以上是关于ZKAttest: Ring and Group Signatures for existing ECDSA keys 学习笔记的主要内容,如果未能解决你的问题,请参考以下文章