(RSA算法)分解一个大数是很困难的。比如n=1889399415032139467,但是现在你偶然发现,这个数等于1288521173*1466331679,我们又知道,它有个公钥是e1=4279,密文是1889139646059663231,你能解开这个密码吗?(当你解开密文后,从首位开始两两一分组,11=a,12=b,13=c,...36=z.比如362525就是zoo)
附(RSA算法)
RSA的算法涉及三个参数,n、e1、e2。
其中,n是两个大质数p、q的积,n的二进制表示时所占用的位数,就是所谓的密钥长度。
e1和e2是一对相关的值,e1可以任意取,但要求e1与(p-1)*(q-1)互质;再选择e2,要求(e2*e1)mod((p-1)*(q-1))=1。
(n,e1),(n,e2)就是密钥对。其中(n,e1)为公钥,(n,e2)为私钥。
RSA加解密的算法完全相同,设A为明文,B为密文,则:A=B^e2 (mod n);B=A^e1(mod n);
e1和e2可以互换使用,即:
A=B^e1(mod n);B=A^e2(mod n)