Rust中模幂密码函数的优化实现
Optimal implementation of cryptographic function of exponentiation by modulus in Rust
我尝试用num-bigint crate实现这样一个公式( ( a ^ b ) % c )
,其中a
、b
和c
是任意长度的整数以及^
求幂运算,%
求提醒运算。但是我遇到了两个问题。
- 似乎 num-bigint 没有单一功能实现
( ( a ^ b ) % c )
最佳
- num-bigint 不是零拷贝。要创建
BigUint
的实例,您需要复制原始数据 Vec <u8>
,然后再次将结果从 BigUint
复制到 Vec <u8>
。
是否可以在本模块内解决这些问题?如果不行,请指教另一个模块?
您可以按照建议使用函数 modpow。似乎 num 不支持零拷贝。函数 new
从向量中复制数据。与 from_slice
、from_bytes_le
、from_bytes_be
相关。此外,from_bytes_le
的当前实施是次优的。
我尝试用num-bigint crate实现这样一个公式( ( a ^ b ) % c )
,其中a
、b
和c
是任意长度的整数以及^
求幂运算,%
求提醒运算。但是我遇到了两个问题。
- 似乎 num-bigint 没有单一功能实现
( ( a ^ b ) % c )
最佳 - num-bigint 不是零拷贝。要创建
BigUint
的实例,您需要复制原始数据Vec <u8>
,然后再次将结果从BigUint
复制到Vec <u8>
。
是否可以在本模块内解决这些问题?如果不行,请指教另一个模块?
您可以按照建议使用函数 modpow。似乎 num 不支持零拷贝。函数 new
从向量中复制数据。与 from_slice
、from_bytes_le
、from_bytes_be
相关。此外,from_bytes_le
的当前实施是次优的。