(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)