文章目录
模指数运算问题
什么叫模指数运算?
求 3 11 m o d 22 3^{11}mod 22 311mod22
这就是模指数运算问题。
在RSA算法中,无论加密还是解密都需要用到模指数运算问题。
常用的模指数算法有二进制法、二进制NAF算法、滑动窗口算法等。
我们主要使用的是二进制法。具体的公式性质的东西,我就不列了。直接上干货
我们就以上面这个简单的例子为例进行讲解:
11 可以化成二进制的形式即1011,即8+2+1
3
≡
3
(
m
o
d
22
)
3
2
≡
9
(
m
o
d
22
)
3
4
=
9
2
=
81
≡
15
(
m
o
d
22
)
3
8
≡
1
5
2
(
m
o
d
22
)
=
5
s
.
t
.
3
11
=
3
1
×
3
2
×
3
8
≡
3
×
9
×
5
=
135
≡
3
(
m
o
d
22
)
3 \equiv 3 (mod 22)\\ 3^2 \equiv 9 (mod 22)\\ 3^4 = 9^2 = 81 \equiv 15(mod 22)\\ 3^8 \equiv 15^2 (mod 22) =5\\ s.t. 3^{11} = 3^1\times 3^2\times 3^8 \equiv 3\times 9 \times 5=135\equiv 3(mod 22)
3≡3(mod22)32≡9(mod22)34=92=81≡15(mod22)38≡152(mod22)=5s.t.311=31×32×38≡3×9×5=135≡3(mod22)
这样我们就成功地计算出了一个大的指数的模!