1个不稳定版本
0.1.0 | 2023年8月9日 |
---|
#6 in #indy
1,160 个月下载量
在indy-vdr中使用
66KB
1.5K SLoC
BLS签名Rust
BLS数字签名—也称为Boneh–Lynn–Shacham (BLS)—是一种密码签名方案,允许用户验证签名人是否真实。
该方案使用双线性配对进行验证,签名是椭圆曲线组的元素。在椭圆曲线组中工作提供了一些针对指数计算攻击的防御(注意,在配对的目标组$G_{T}$中此类攻击仍然可能发生),对于类似的安全级别,比完整域哈希签名具有更短的签名。
BLS签名方案生成的签名通常被称为短签名、BLS短签名或简称为BLS签名。该签名方案在随机预言模型下是可证明安全的(该方案在自适应选择消息攻击下是存在性不可伪造的),假设在间隙Diffie-Hellman组中计算Diffie-Hellman问题是不可解的。
Rust包
此包实现了一种BLS签名方案的版本。该实现与IETF的BLS签名规范不匹配。此实现使用这里定义的BN254曲线:https://neuromancer.sk/std/bn/bn254(有时称为BN254N),不应与Ethereum中使用的曲线混淆。
开始时,只需将以下内容添加到您的Cargo.toml
中。
[dependencies]
indy-blssignatures = "0.1"
这种BLS签名实现的最初版本在Hyperledger Ursa项目中,并在Hyperledger Indy Node和Hyperledger Indy Plenum存储库/工件中使用。
Python的此crate包装器可以在indy-bls-wrapper-python仓库中找到。
依赖项
~3.5MB
~63K SLoC