此演算法主要是針對a^{b} \, mod \, nb很大而計算機通常算不太出來的時候使用的方法,一開始z設為1,並且把指數部分拆成二進位,從左至右運算,遇到b=1時計算z的平方乘上底數再mod \, n,而b=0時計算z的平方再mod \, n即可。

舉例:a^{b} \, mod\, n = (325)^{20} \, mod \, 963 = (325)^{10100_{b}} \, mod \, 963

b’s bitsoperationz
  1
1z^{2} \cdot a \, mod \, n325
0z^{2} \, mod \, n658
1z^{2} \cdot a \, mod \, n703
0z^{2} \, mod \, n190
0z^{2} \, mod \, n469

n = (325)^{20} \, mod \, 963 = 469 \, (mod \, 963)

執行時間大概是1.5 \cdot len(b)模運算。