2 个版本
0.7.1 | 2022 年 9 月 14 日 |
---|---|
0.7.0 | 2022 年 9 月 11 日 |
#2014 在 算法 中
在 3 个库中使用
77KB
1.5K SLoC
这是 scicrypt 的一部分。有关更多信息,请访问 scicrypt 库的主页。
此库实现了一个 BigInteger
,其中大多数算术操作在指定大小的情况下都消耗恒定的时间。此库只不过是对 GMP 的低级常数时间函数的方便包装。
如果库未按预期工作,请考虑使用 --debug
运行,以触发 debug_assert!()
,以检查某些低级函数的先决条件是否满足。
几乎所有函数都应在常数时间内运行,并且仅泄露关于输入长度的信息。这也适用于重载运算符(例如,等式是常数时间的)。某些函数 不是 常数时间的
- 使用
from_string
从字符串初始化 partial_cmp_leaky
lcm_leaky
mod_u_leaky
set_bit_leaky
和clear_bit_leaky
is_probably_prime_leaky
为了使代码更容易阅读,可以在 UnsignedInteger
上调用 leak()
来获取一个支持重载运算符的 LeakyUnsignedInteger
。
我们对随机数生成不确定。此外,请注意,除法可能会泄露一些有关结果值大小的信息。
依赖关系
~21MB
~491K SLoC