平方和算法是模指数运算的基本。如果指数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 |