|
|
为了克服对称密钥密码体制存在的问题,密码学专家提出了新的加密体制——非对称密钥密码体制,又称为双钥密码体制或公钥密码体制。非对称密钥密码体制的基本原理是加密和解密采用不同的密钥,使用时其中一个密钥公开,称为公钥;另一个密钥由用户私有保存,称为私钥。传递信息时,发送方用接收方的公钥加密信息,接收方用自己的私钥对信息解密。由于接收方的私钥只有接收方自己知道,因此只要其私钥保存完好,即使信息被截取,截取者也因为没有解密密钥,无法获知信息内容,从而保证了信息的机密性。例如,在电子商务交易过程中,商家可以公开其公钥,保留其私钥;客户用商家的公钥对发送的信息进行加密,安全地传送到商家,然后由商家用自己的私钥进行解密得到原文信息。
|
|
|
非对称密钥密码体制克服了对称密钥密码体制的缺点,解决了密钥的分发和管理问题。另外,非对称密钥密码体制能够实现数字签名技术,解决了参与者身份识别问题,但由于算法复杂,算法的运算速度不高,加密信息的效率降低。
|
|
|
|
非对称密钥密码体制的典型算法是RSA算法。它是由三位发明者Ron Rivest、Adi Shamir和Leonard Adleman名字的第一个字母组合而成。RSA算法的基本原理是基于大素数难分解原理,即寻找两个大素数比较简单,而将两个大素数的乘积分解非常困难。
|
|
|
|
|
|
③计算p-1和q-1的乘积,记为m=(p-1)*(q-1);
|
|
|
|
⑤寻找一个数d,使其满足(e*d)mod m=1;
|
|
|
|
|
|
|
传递信息时发送方用接收方的公钥加密信息,接收方用自己的私钥对信息进行解密。
|
|
|
|
假设发送方要传送明文M=19给接收方,按照RSA算法描述,密钥对的生成过程为:
|
|
|
|
|
|
|
⑤寻找一个数d,使其满足(e*d)mod m=1;
|
|
|
|
|
|
发送方用接收方的公钥加密信息得到密文C=Memod n=193mod 33=28。接收方收到消息后用自己的私钥解密信息得到明文M=Cdmod n=287mod 33=19。
|
|
|
从所基于的数学难题来讲,RSA算法基于大整数因子分解系统。除RSA算法外,椭圆离散对数系统(ECC)和离散对数系统(代表性算法DSA)也属于非对称密钥密码体制算法。
|
|
|