(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)
觀察下面三組數列
(1)1、2、3、4、...15、2、3、4、...(與2的冪有關)
(2)1、2、3、4、...15、3、4、5、...(與3的冪有關)
(3)1、2、3、4、...15、5、6、7、...(與5的冪有關)
(友情提示:15剛好是數列的第15項,同時也不妨想想一些特殊演算法。)
那麼數列:1、2、3、4、...、15、17、18、19、...的第10000項是多少?