14个版本 (7个重大更新)
0.7.1 | 2022年9月14日 |
---|---|
0.6.2 | 2022年9月8日 |
0.6.0 | 2022年5月6日 |
0.5.0 | 2022年2月28日 |
0.1.0 | 2021年7月11日 |
#898 in 密码学
每月39次下载
185KB
3.5K SLoC
警告:虽然这个库为安全实现做出了一些努力,但它不应用于任何实际应用。代码未经审计。我们不保证代码的正确性和安全性。
应用密码学中证明概念实现的轻量级加密构建块。
虽然存在许多实现加密构建块的库,但许多库属于以下两类之一
- 快速但僵硬,如许多用C++编写的库
- 慢但灵活,如许多用Python编写的库
这个库试图在速度和灵活性之间找到平衡,以简化实现密码协议证明概念的过程,例如多方计算(MPC)领域的协议。
当前功能
目前,该库实现了以下同态密码系统和相关的同态操作
- 基于Curve25519(Ristretto编码)的ElGamal和两个阈值版本
- 基于安全素数群的ElGamal和两个阈值版本
- Paillier和阈值Paillier
- RSA
此外,该库实现了安全素数生成,其速度比其他crate中实现的功能更快。代码在每次版本之间进行基准测试,以确保我们没有增加运行时间,并与其他实现进行比较。
请查看下表,比较安全素数生成的平均运行时间(以毫秒为单位)
库 | 比特数 | 128 | 192 | 256 | 320 | 384 |
glass_pumpkin | 52.5 | 170 | 402 | 652 | 1530 |
openssl | 3.95 | 11.1 | 21.9 | 53.6 | 79.8 |
scicrypt | 2.20 | 7.02 | 20.1 | 37.5 | 72.5 |
更新于2022年3月31日,来自 GitHub Actions
您可以通过执行以下命令自行运行此基准测试:cargo bench --bench prime_gen
。默认情况下,此基准测试被关闭,因为它可能需要15分钟才能运行。换句话说,当您只运行cargo bench
时,它不会运行。请注意,在我的个人笔记本电脑上,OpenSSL平均略优于scicrypt,因此结果可能因硬件而异。
即将推出的功能
以下是即将推出的小版本和它们将添加的功能。
易用性更新
功能 | 完成 |
有符号整数的编码 | |
离散对数查找表 | |
调试工具 |
秘密共享更新
功能 | 完成 |
加法秘密共享 | |
乘法秘密共享 | |
Shamir的秘密共享 |
不可知传输更新
功能 | 完成 |
OT 及扩展 | |
OPRF | |
OPPRF |
基于RLWE的加密
功能 | 完成 |
多项式算术 | |
BGV (无需引导) |
依赖关系
~23MB
~550K SLoC