[问题] 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