11个版本
0.4.4 | 2023年2月9日 |
---|---|
0.4.3 | 2021年2月4日 |
0.4.2 | 2020年11月16日 |
0.4.0 | 2020年6月18日 |
0.2.2 | 2019年7月30日 |
#905 在 密码学 分类中
每月 101 次下载
16KB
190 行
ECVRF
VRFs(可验证随机函数)是去中心化系统中非常有用的工具,因为它们可以在不担心受信任方数据操纵的情况下将随机预言机引入协议。这些预言机函数被证明与破解特定的密码学陷阱门一样难以被操纵。
更多信息请参阅Micali的开创性出版物:https://people.csail.mit.edu/silvio/Selected%20Scientific%20Papers/Pseudo%20Randomness/Verifiable_Random_Functions.pdf
这个椭圆曲线实例最初是为了提高DNSSEC而进行彻底研究的,并证明了它具有可信唯一性和选择性伪随机性属性:https://eprint.iacr.org/2014/905.pdf
这与传统签名有何不同?
VRFs的更简单的解释是,它们是HMAC,其中密钥是非对称的。各方同意一个伪随机函数(SHA3)并交换一个具有相同伪随机性的证明,该证明绑定到输入但不作为唯一的证据(这是简单SHA的情况)。
用法
use ecvrf::{VrfSk, VrfPk, VrfProof, keygen, prove, verify};
fn main() {
let (privkey, pubkey): VrfSk = keygen();
let input = vec![0xde, 0xad, 0xbe, 0xef];
let (output, proof) = ecvrf::prove(&input, privkey);
assert!(ecvrf::verify(&input, &pubkey, output, proof));
}
您可以使用相应的to_bytes
和from_bytes
函数序列化/反序列化每种类型
免责声明
此发行版包含密码学软件。您目前居住的国家可能对密码软件的进口、拥有、使用和/或重新出口到其他国家有限制。在您使用任何加密软件之前,请检查您国家有关密码软件的进口、拥有或使用以及重新出口的法律、法规和政策,以查看是否允许这样做。有关更多信息,请参阅http://www.wassenaar.org/。
依赖关系
~4.5MB
~73K SLoC