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

舉例:abmodn=(325)20mod963=(325)10100bmod963

b’s bitsoperationz
  1
1z2amodn325
0z2modn658
1z2amodn703
0z2modn190
0z2modn469
n=(325)20mod963=469(mod963)

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

One Comment

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *