我在软件环境中使用椭圆曲线密码学。我想查询如何有效地实现大数取模操作,并考虑到大质数的情况。
例如:(192位数)mod(192位Mersenne素数)
如果您有任何技巧或算法,将非常有帮助,因为我正在使用资源受限的传感器节点。
如果您有任何技巧或算法,将非常有帮助,因为我正在使用资源受限的传感器节点。
在所提出的问题中,不存在192位梅森素数。
对于一个192位整数x在另一个192位质数p下的模归约实现非常简单:当x<p时,结果是x,否则结果是x-p。
也许问题实际上是关于对某个更大数量的192位质数 p 进行高效模块化约减,这种质数通常被选择为允许高效的模块化约减。例如,对于P-192,素数模数p 指定 为6277101735386680763835789423207666416083908700390324961279,即fffffffffffffffffffffffffffffffeffffffffffffffff
h 或2192-264-1。这个p非常接近(232)6,因此在使用232作为基数时,估算模p的模块化约减商位数就像在基数10中通过999899进行学校式欧几里得除法时估算新数字一样容易:大部分时间,剩余被除数的最左边数字就是商的新数字。