RSA大数算法实现
RSA的定理模型: 设p,q是两个素数,n=p*q; 假设整数e满足1<e<φ(n),(e, φ(n))=1; 1、
那么就存在整数s、d,e*d+s* φ(n)=1; 2、
假设存在一个整数a,(a,n)=1;那么a和q,p也应该互素,即(a,p)=1;(a,q)=1; 所以a^φ(p)=1 mod p; 等式两边同时做φ(q)次幂运算,得到(a^φ(p))^φ(q)=1^φ(q) mod p, 整理得a^(φ(p)*φ(q))=1 mod p; φ(n)=φ(p)*φ(q),所以a^φ(n)=1 mod p; 等式两边同时做s次幂运算,得到a^(s*φ(n))=(1^s) mod
p=1 mod p; 左右在个乘以a,得到a^(1+(s*φ(n)))=a mod p; 所以: a^(e*d)=a mod p;①同理,q,p在本质上是相同的,所以 a^(e*d)=a mod q;② a^(e*d)=a mod (p*q),因为n=p*q;所以a^(e*d)=a mod n;
|