【发布时间】:2018-07-22 03:52:03
【问题描述】:
我正在尝试这样计算:a^b mod c,其中所有三个数字都很大。
我尝试过的事情:
Python 的 pow() 函数需要几个小时,但尚未产生结果。 (如果有人能告诉我它是如何实现的,那将非常有帮助!)
我实现的从右到左的二进制方法,时间为 O(log e),大约需要 30~40 小时(不想等那么久)。
各种递归方法都会产生分段错误(在我更改了递归限制之后)
我可以做任何优化吗?
【问题讨论】:
-
see Fast bignum square computation 有了这么大的数字,我会尝试基于 NTT 的 Schönhage-Strassen 乘法而不是 karatsuba ...通常平方的幂涉及 sqr,而基于 NTT 的 sqr 甚至更快
标签: python algorithm pow modular-arithmetic cryptanalysis