参考链接:http://blog.csdn.net/sunmenggmail/article/details/11994013
步骤:
1.取两个大素数p和q
素数:即质数,指的是一个大于1且具有如下性质的的自然数:该自然数除了1和其本身外,不能被其他任何自然数整除
例:p=3,q=11
2.求r=(p-1)*(q-1)
例:r=(p-1)*(q-1)=2*10=20
3.选择一个小于r且与r互素的数e,求出e关于模r的模逆元素d
模逆元素的概念:http://zh.wikipedia.org/wiki/%E6%A8%A1%E5%8F%8D%E5%85%83%E7%B4%A0
即e关于模r的模逆元素d,满足公式e * d = 1 ( mod r )
注:e * d = 1 ( mod r )的意思就是说(e*d)%r = 1
例:取e=3,这里r=20,则推出d=7
此时公钥为(N,e),私钥为(N,d),其中N=p*q=33
加密过程:n为要加密的消息,c为加密后的消息
通过公式:n的e次方 = c (mod N) => c的值
例:n=24,e=3,N=33,则有c=24*24*24%33=30
解密过程:c为加密了的消息,n为要解密的消息
通过公式:c的d次方 = n (mod N) => n的值
例:c=30,d=7,N=33,则有n=pow(30,7)%33=24