我在软件环境中使用椭圆曲线加密。我想询问如何有效地实现大数字的大数模运算。 例如(192位数)mod(192位mersenne prime)
如果有任何技巧或算法,你可以参考,因为我正在使用资源受限的传感器节点。
答案 0 :(得分:3)
问题中没有考虑192位Mersene prime。
实现模块化缩减192位整数 x 模数另一个192位素数 p 非常简单:结果为 x 时 x < p ,否则 x - p 。
对于像椭圆曲线密码术中常用的素数 p ,也许真正的问题是关于有效模块化约简模拟一些大数量的192位素数 p 。通常以允许有效模块化减少的方式选择这种质数。例如,对于P-192,素数模数 p 为specified为6277101735386680763835789423207666416083908700390324961279,即fffffffffffffffffffffffffffffffeffffffffffffffff
h
或2 192 -2 64 -1。这个 p 是如此接近(2 32 ) 6 ,当在基地2 32 中工作时,估计一个商模数减少模数 p 中的数字非常简单,就像在基数10中执行999899的教科书Euclidian division时估算一个新数字一样简单:大部分时间,剩下的最左边数字红利是指商的新数字。