#bls-signatures #indy #group #hyperledger #pairing #verify #random

indy-blssignatures

Hyperledger Indy BLS签名

1个不稳定版本

0.1.0 2023年8月9日

#6 in #indy

Download history 633/week @ 2024-03-14 542/week @ 2024-03-21 222/week @ 2024-03-28 339/week @ 2024-04-04 210/week @ 2024-04-11 164/week @ 2024-04-18 17/week @ 2024-04-25 53/week @ 2024-05-02 187/week @ 2024-05-09 24/week @ 2024-05-16 226/week @ 2024-05-23 282/week @ 2024-05-30 384/week @ 2024-06-06 408/week @ 2024-06-13 256/week @ 2024-06-20 38/week @ 2024-06-27

1,160 个月下载量
indy-vdr中使用

Apache-2.0

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 NodeHyperledger Indy Plenum存储库/工件中使用。

Python的此crate包装器可以在indy-bls-wrapper-python仓库中找到。

依赖项

~3.5MB
~63K SLoC