平方和算法是模指数运算的基本。如果指数e的二进制展开为
,则利用平方和算法可以这样计算模指数:
。 …………(4.1)
现在给出平方和算法的简单描述。关于平方和算法的更多情况可参见[10,算法14.79]。
───────────────────────────────────────
───────────────────────────────────────
举个简单的例子e=165。比如取,那么按照平方和算法思想计算模指数的过程为:
Step1:初始化A: A ← 1;
Step2:迭代过程如下:
表4.1
i
Step 2.1)
Step 2.2)
7
A←A×A=1
ei=1
A←A×g=g
6
A←A×A=g2
ei=0
—
5
A←A×A=g4
ei=1
A←A×g=g5
4
A←A×A=g10
ei=0
—
3
A←A×A=g20
ei=0
—
2
A←A×A=g40
ei=1
A←A×g=g41
1
A←A×A=g82
ei=0
—
0
A←A×A=g164
ei=1
A←A×g=g165