我们在大学课程中采用了MASH-2哈希函数,在考试中我们遇到了问题 有问题来计算这样的东西((62500)^ 257))mod(238194151)仅使用科学计算器。现在我知道一些理论与^ b(mod n),但我上面提出的问题甚至很难手动计算。我认为解决这个问题大约需要15分钟。我想知道是否有更快的方法来做到这一点。或者即使有某种方法可以用二进制方式(将数字转换为二进制,然后进行一些操作)。我需要用科学的计算器手工完成这个。
答案 0 :(得分:1)
在这种特殊情况下,a = 62500 = 2² ⋅ 5⁶
的素因子分解非常简单
您可以先使用它来计算(2²)²⁵⁷
和(5⁶)²⁵⁷
,然后计算产品
但我看到的问题是,对于n = 238194151
,我的科学计算器无法正确计算n²
。如果你的计算器可以做到这一点,那应该没问题。
由于gcd(a, b) = 1
您也可以使用CRT,但我不确定您是否只能使用科学计算器找到素因子n = 13 ⋅ 59 ⋅ 310553
。如果是这样,这将使它变得更容易。您只需计算a²⁵⁷ mod (13⋅59)
和a²⁵⁷ mod 310553
,然后将结果与CRT结合使用。
您也可以只使用Exponentiation by squaring,因此您只需要计算8个方格。