RSA定理
若P和Q是两个相异质数(即都为质数且最大公约数为1),另有正整数e和d,其中d的值与( P - 1 )( Q - 1 )的值互质(即最大公约数为1),并使得( ed ) mod ( P - 1 )( Q - 1 ) = 1。有正整数A,且A < PQ,设C = A^e mod PQ,B = C^d mod PQ则有:A = B。
应用:公钥-私钥机制
公钥为一个整数对(N, e);私钥也是整数对(N, d)。
例:P=101,Q=113,则N=11413,e=3533,d=6597。
满足RSA定理的各个关系:gcd[d, (P-1)*(Q-1)] = gcd(6597, 100*112) = gcd(6597, 11200) = 1;
(ed)mod[(P-1)(Q-1)] = (3533*6597)mod(100*112) = 23307201 mod 11200 = 1;
那么,我们就有了公钥(11413, 3533),和私钥(11413, 6597)。
可以由RSA定理得知:对于任何小于11413的正整数a,都有:(a^3533)mod 11413 = c, (c^6597)mod 11413 = a。
比如:a=9726时,(9726^3533)mod 11413 = 5761 = c;(5791^6597)mod 11413 = 9726 = a。
这样的话,规定邮件接收者拥有公钥(11413, 3533)和私钥(11413, 6597),公钥可以公开给任何人,而私钥由此人保管,不泄漏给任何人。
当发送者要向接收者发送一封邮件,内容是9726时,他向接收者申请,让接收者把他的公钥(11413, 3533)发给发送者,发送者做了运算(9726^3533)mod 11413 = 5761,将内容9726加密成为5761,发送给接收者。
因为只有私钥可以解密这一邮件,而且无法从公钥推导出私钥的内容,所以即使其他人知道公钥是(11413, 3533),电文是5761,仍然无法知道内容是什么。
在接收者收到5761后,做运算(5791^6597)mod 11413 = 9726,即还原出原文内容,达到保密的目的。