#crypto #kem #pke #isogeny #sidh

rust-sike

实现了Supersingular Isogeny Key Encapsulation (SIKE)协议中的密钥封装机制(KEM)和公钥加密(pke)方案

1个不稳定发布版

0.2.1 2022年8月9日
0.2.0 2020年4月4日
0.1.1 2019年11月22日
0.1.0 2019年11月20日

#1008密码学

MITLGPL-3.0+

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提交中描述的参数:p434p503p610p751
  • 优化的树遍历策略

使用更新的规范(2019年4月17日)作为实现的基础。

不支持的功能和注意事项

  • 目前不支持密钥压缩和解压缩(未来工作)
  • 该实现不能保证是恒时操作
  • 该实现不是no_std兼容的(出于非必要原因)

参考和文档

依赖项

~23MB
~517K SLoC