1个不稳定发布版
0.2.1 | 2022年8月9日 |
---|---|
0.2.0 |
|
0.1.1 |
|
0.1.0 |
|
#1008 在 密码学 中
115KB
2K SLoC
rust-sike
rust-sike
是SIKE同构基密钥封装套件(SIKE 1)的Rust实现,该套件被提交给NIST标准化流程2作为后量子候选方案。
警告:截至2022年7月30日,SIKE的底层量子抗性机制SIDH(超奇异Diffie-Hellman)被发现容易受到有效的密钥恢复攻击3(恢复时间从一小时到不到一天,取决于单核的安全级别)。因此,SIDH/SIKE不应被视为安全的,且rust-sike
仅应用于测试或研究目的,绝不能用于任何生产代码
为什么使用rust-sike
?
SIKE提交已经包含参考实现,包括针对不同平台优化的版本。Microsoft和Cloudflare也提供了额外的实现。所有这些库都是用C编写的,偶尔包含特定平台的汇编指令,这使它们能够达到最大性能。在编写这些实现时,它们与SIKE规范的老版本相匹配。
rust-sike
关注提供高正确性保证:遵循SIKE规范、内存和类型安全以及跨平台的可重复性。需要广泛的测试和文档。性能很重要,但这是一个长期关注的问题。
状态
支持的功能和算法
- 密钥封装机制(
KEM
) - 公钥加密(
PKE
) - 所有NIST提交中描述的参数:
p434
、p503
、p610
和p751
。 - 优化的树遍历策略
使用更新的规范(2019年4月17日)作为实现的基础。
不支持的功能和注意事项
- 目前不支持密钥压缩和解压缩(未来工作)
- 该实现不能保证是恒时操作
- 该实现不是
no_std
兼容的(出于非必要原因)
参考和文档
依赖项
~23MB
~517K SLoC