【发布时间】:2012-01-07 09:34:02
【问题描述】:
我正在尝试实现 SAFER+ 算法。该算法需要如下求幂函数的模:
pow(45, x) mod 257
变量 x 是一个字节,因此范围可以从 0 到 255。因此,如果使用 32 位或 64 位整数实现,幂函数的结果可能非常大,从而导致不正确的值。
我该如何执行这个计算?
【问题讨论】:
-
@esskar:如果我没有完全弄错并且没记错的话,在模空间中有计算能力的特殊公式,模演算是问题的重要部分,所以这个问题与语言无关.
-
介绍性阅读:The multiplicative group of integers。这太久远了,我无法回答,但也许有人记得。
-
有一个用 C 编写的 SAFER+ 实现,您可以在这里学习:schneier.com/book-applied-source.html
标签: algorithm math language-agnostic modulus