应付考试的写法:
注意:RSA加解密、签名时:计算的是关于φ(n)的逆元不是直接关于n的逆元,d是e的逆元,φ(n)与e互素才可以有逆元
已知n=pxq,计算φ(n),计算d :扩展欧几里得算法
流程:
题目:
d·e=1 mod 96,e=5,求d
递归(不断的做除法,辗转相除)的计算一个三元组。
有两个初始的三元组:
设三元组(x,y,z),x,y,z满足:
因为要算5对96的逆元,一般把大的放在前面
即:96*x+5*y=z
可以看一下初始的三元组是满足这个式子的。
(1,0,96)
(0,1,5)
我们要一直算,算到z可以通过辗转相除下降到z等于1.
如果z=1,可以知道逆元
d是y位置上的数字,即是5的逆元。5*y≡1mod96
如何递归计算?
(1,0,96) -----①
(0,1,5) -----②
过程:
(1) 设一个三元组(x1,y1,z1)
z1=96%5 =1
即 96-5*商(19)=z1(1) →知道商是19
按照这种‘规律’计算y1和x1:
0-1*商19=y1(-19)
1-0*商19=x1(1)
所以新的三元组是
(1,-19,1)------③
此题比较特殊,z=1了,不用再算。
即d=-19mod96=77
若z!=1
再由 ②、③计算④
如此往复直到z=1停止
肯定会降到1,因为φ(n)与e互素
由此求出d