Rust中模幂密码函数的优化实现

Optimal implementation of cryptographic function of exponentiation by modulus in Rust

我尝试用num-bigint crate实现这样一个公式( ( a ^ b ) % c ),其中abc是任意长度的整数以及^求幂运算,%求提醒运算。但是我遇到了两个问题。

  1. 似乎 num-bigint 没有单一功能实现 ( ( a ^ b ) % c ) 最佳
  2. num-bigint 不是零拷贝。要创建 BigUint 的实例,您需要复制原始数据 Vec <u8>,然后再次将结果从 BigUint 复制到 Vec <u8>

是否可以在本模块内解决这些问题?如果不行,请指教另一个模块?

您可以按照建议使用函数 modpow。似乎 num 不支持零拷贝。函数 new 从向量中复制数据。与 from_slicefrom_bytes_lefrom_bytes_be 相关。此外,from_bytes_le 的当前实施是次优的。