平方乘算法(Square and Multiply Algorithm)是一种高效的幂运算算法,特别适用于模运算中的大整数幂计算。它通过将幂运算分解为一系列平方和乘法操作,使计算复杂度从线性降低为对数级别。这种算法广泛用于密码学中的模幂运算,如RSA、Diffie-Hellman等加密算法。
平方乘算法利用幂的二进制表示,将大指数的幂次运算拆解为一系列乘法和平方运算。假设我们需要计算($a^n mod m $):
- 将指数(n)转换为二进制。
- 使用二进制表示中的每一位逐步构建幂运算:
- 若当前位为1,则将当前结果平方后与基数相乘。
- 否则直接将结果平方