此演算法主要是針對abmodn在b很大而計算機通常算不太出來的時候使用的方法,一開始z設為1,並且把指數部分拆成二進位,從左至右運算,遇到b=1時計算z的平方乘上底數再modn,而b=0時計算z的平方再modn即可。
舉例:abmodn=(325)20mod963=(325)10100bmod963
b’s bits | operation | z |
1 | ||
1 | z2⋅amodn | 325 |
0 | z2modn | 658 |
1 | z2⋅amodn | 703 |
0 | z2modn | 190 |
0 | z2modn | 469 |
執行時間大概是1.5⋅len(b)模運算。
One Comment