[問題] RSA加解密程式

作者: BombCat (炸彈貓)   2014-09-02 05:51:24
各位版大好,原PO最近在書上看到RSA的介紹並參考網路資料
C, M, D, E 為正整數, P和Q為質數
M為要加密的數字, C則是加密後的數字
RSA加密公式: C = M^E % (P*Q)
RSA解密公式: M = C^D % (P*Q)
並且 D*E % ((P-1)*(Q-1)) = 1
寫了一個RSA加解密程式,在P與Q都不大時,可以加解密運作正常。
http://ideone.com/AM70Ot
但是,當P和Q都是六位數左右時,就沒辦法運作正常了
感覺是overflow,但是後來全部用 unsigned long long 還是一樣的結果
看了一兩天還是不知道問題在哪
不知道有沒有版大有寫過或是有類似經驗可以提點,感謝!
目前沒有打算要用大數運算來寫,只是希望做個64bit的RSA
作者: EdisonX (卡卡獸)   2014-09-02 07:14:00
(P-1)*(Q-1) 這裡 OV 了, 改 (P-1LL)*(Q-1LL) 試試@@ 忽視上樓,我誤會 P Q 了
作者: StarRoad (知道越多了解越少)   2014-09-02 12:04:00
ExtendedGCD的return值從int改成long long?不然 if (A%B==0)return B 時,可能會出錯

Links booklink

Contact Us: admin [ a t ] ucptt.com