1)确定密钥的宽度
2)随机选择两个不同的素数p和q,他们的宽度是密钥宽度的二分之一。
3) 计算出p和q的乘积n。
4)在2和n的函数之间随机选择一个数e,e必须和n的函数值互素,整数e用做加密密钥(n的函数=(p-1)*(q-1))
5) 从公式ed恒等于1mod n的函数 中求出解密密钥d。
6)得公钥(e,n),私钥(d,n)
7) 公开公钥,但不公开私钥
8)将明文P(假设p是一个小于n的整数)加密为密文C,计算方法为:
c=(p的e次方)mod n
9)将密文C解密为明文P,计算方法为:
P=(c的d次方)mod n
然而只根据n和e(不是p和q)要计算出d是不可能的。因此,任何人可对明文进行加密,但只有授权用户(知道d)才可对密文解密。