#rsa #encryption #sign #secret-key #development-tools #asymmetric

rsa-rust

用于构建RSA密钥对以及加密/解密和签名的crate

2个版本

0.1.1 2019年3月12日
0.1.0 2019年3月12日

#22 in #development-tools

MIT许可

26KB
446

Rust-rsa

这是Rust中RSA算法的实现。

免责声明:这是一个仅供娱乐的个人项目。请不要在生产环境中使用此库,因为它不是为此类目的设计的。

待办事项

  • 生成1024位和2048位的大数。
  • 实现Rabin-Miller算法所需的模幂运算。(已测试且工作正常
  • 实现Rabin-Miller算法。(已测试且工作正常
  • 实现扩展欧几里得算法以寻找两个假设素数的最大公约数。
  • 生成具有确定性长度的有效密钥对。(已测试且工作正常。推荐阈值:默认 // 推荐密钥对大小:512或1024位
  • 使用公钥加密消息。
  • 使用私钥解密消息。(已测试且工作正常
  • 为公钥、私钥和密钥对实现From trait。
  • 实现p和q素数原始数的并行计算以提高性能。(性能提升(仍取决于随机性和素数邻近性))
  • 实现使用AES-128/256(待定)的混合加密过程。
  • 通过在开始计算算法之前丢弃[3, 5, 7, 9, 11, 13, 15, 19]的倍数来优化Rabin-Miller算法。(性能提升)
  • 并行化Rabin-Miller迭代以提高密钥生成性能。
  • 基准测试Rabin-Miller与费马素性测试(见:https://en.wikipedia.org/wiki/Fermat_primality_test。不考虑Baillie–PSW,因为它依赖于Rabin-Miller。
  • 签名消息。
  • 实现填充(PKCS1,PKCS7,PKCS-OAP)
  • 排序并编写更好的测试。

依赖关系

~2MB
~35K SLoC