2个稳定版本
1.1.0 | 2024年4月16日 |
---|---|
1.0.0 | 2023年10月10日 |
在数学类别中排名第839
每月下载量达55,829次
在21个包中使用(直接使用3个)
61KB
1.5K SLoC
Aurora modexp
实现
此包是什么
此包是EVM modexp
预编译的高效实现。此包公开了一个公共函数
pub fn modexp(base: &[u8], exp: &[u8], modulus: &[u8]) -> Vec<u8>
此函数接收基数、指数和模数作为大端编码的字节,并以大端形式返回结果。
这个crate旨在实现高效性,尽可能少地使用内存(例如,它不会复制指数切片)。指数运算使用“二进制方法”。指数运算中的乘法步骤使用“Montgomery乘法”。在偶数模的情况下,Montgomery乘法不能直接应用。但是,我们可以将问题简化为涉及奇数模的问题,以及模数为2的幂的问题。这两个子问题可以有效地解决(前者使用Montgomery乘法,后者在二进制计算机上模运算非常简单),然后使用中国剩余定理将结果合并。
本实现的学术参考文献主要包括
这个crate不是什么
这个crate不是一个通用的大整数库。如果您需要的不仅仅是modexp
,那么您应该使用类似num-bigint或ibig的东西。
依赖项
~1MB
~19K SLoC