在密码学中我们经常会看到 这样的计算(如RSA, Diffie Hellman key exchange), 而且往往这个n次幂很大. 如何快速对一个数的n 次方求mod, 很可能决定一个加密算法的性能. 下面我们会一步步引导大家来思考这个问题,我来为大家讲解一下关于计算器中怎样计算一个数的n次方?跟着小编一起来看一看吧!
计算器中怎样计算一个数的n次方
在密码学中我们经常会看到 这样的计算(如RSA, Diffie Hellman key exchange), 而且往往这个n次幂很大. 如何快速对一个数的n 次方求mod, 很可能决定一个加密算法的性能. 下面我们会一步步引导大家来思考这个问题
- 快速求
举例 如果要计算 5^128 我们可以
1 5^2
2 5^4
3 5^8
4 5^16
5 5^32
6 5^64
7 5^128
如果需要计算5^129 我们只需要 5^128 * 5
2 快速求
先来看一个定理 对左边式子做分解很容易得到右边的式子
有了上面的定理结合快速求幂的方法我们再来看
举例我们要计算2^512 mod 31
首先找到大于31的2整次幂 2^5
2^5 == 31 1
所以 2^512 可以改写 (31 1)^102 * 4 mod 31 == 1^102 * 4 mod 31 == 4
我们再看一个例子 3^480 mod 10
首先找到大于10 的3整次幂3^3
3^3 == 2*10 7
所以3^480 可以改写7^160 mod 10
同理可以改写9^80
同理可以改写1^40 == 1
后续博主可能会连续写一些关于密码学, 同态加密方面的文章 希望大家关注
,