数学上的单向陷门函数的特点是一个方向求值很容易,但其逆向计算却很困难。许多形式为 Y=f ( x )的函数,对于给定的自变量 x 值,很容易计算出函数 Y 的值;而由给定的 Y 值,在很多情况下依照函数关系 f(x) 计算 x 值十分困难。例如,两个大素数 p 和 q 相乘得到乘积 n 比较容易计算,但从它们的乘积 n 分解为两个大素数 p 和 q 则十分困难。如果 n 为足够大,当前的算法不可能在有效的时间内实现。
正是基于这种理论, 1978 年出现了著名的 RSA 算法。这种算法为公用网络上信息的加密和鉴别提供了一种基本的方法。它通常是先生成一对 RSA 密钥,其中之一是保密密钥,由用户保存;另一个为公开密钥,可对外公开,甚至可在网络服务器中注册。为提高保密强度, RSA 密钥至少为 500 位长,一般推荐使用 1024 位。这就使加密的计算量很大。为减少计算量,在传送信息时,常采用传统加密方法与公开密钥加密方法相结合的方式,即信息采用改进的 DES 或 IDEA 对话密钥加密,然后使用 RSA 密钥加密对话密钥和信息摘要。对方收到信息后,用不同的密钥解密并可核对信息摘要。
RSA 算法的加密密钥和加密算法分开,使得密钥分配更为方便。它特别符合计算机网络环境。对于网上的大量用户,可以将加密密钥用电话簿的方式印出。如果某用户想与另一用户进行保密通信,只需从公钥簿上查出对方的加密密钥,用它对所传送的信息加密发出即可。对方收到信息后,用仅为自己所知的解密密钥将信息脱密,了解报文的内容。由此可看出, RSA 算法解决了大量网络用户密钥管理的难题。 RSA 并不能替代 DES ,它们的优缺点正好互补。 RSA 的密钥很长,加密速度慢,而采用 DES ,正好弥补了 RSA 的缺点。即 DES 用于明文加密, RSA 用于 DES 密钥的加密。由于 DES 加密速度快,适合加密较长的报文;而 RSA 可解决 DES 密钥分配的问题。美国的保密增强邮件( PEM )就是采用了 RSA 和 DES 结合的方法,目前已成为 E-MAIL 保密通信标准。