此演算法主要是針對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 |
n=(325)20mod963=469(mod963
執行時間大概是 1.5⋅len(b)模運算