如果密码体制的Ke≠Kd ,即用作加密的密钥不同于用作解密的密钥,而且解密密钥不能根据加密密钥计算出来(至少在合理假定的长时间内),我们称之为公钥算法(Asymmetric Encryption Algorithms)。公钥算法也叫非对称算法,之所以叫作公开密钥算法,是因为加密密钥能够公开,即陌生者能用加密密钥加密信息,但只有相应的解密密钥才能解密信息。在这些系统中,加密密钥叫作公开密钥(Public Key,公钥),解密密钥叫作私人密钥(Private Key,私钥)。私人密钥有时也叫秘密密钥,为了避免与对称密钥密码算法混淆,此处不用秘密密钥这个名字。公钥算法的通常密钥长度是512~2048bit(和对称加密算法的密钥长度不可比较),常用的非对称加密算法有RSA、EIGamal、ellipticcurves。用公开密钥Ke加密表示为:
E(M,Ke)=C
用相应私人密钥Kd解密可表示为:
D(C,Kd)=M
有时消息用私人密钥加密而用公开密钥解密,这用于数字签名。(www.xing528.com)
加密算法的特性如下:
(1)相对于对称加密算法,速度比较慢。
(2)基于硬件计算,密钥管理简单。
(3)通常用作少量数据的加密(如数字签名、对称加密算法的密钥交换)。1976年Diffie和Hellman两人共同提出了公钥密码加密的概念,从此人们在安全通信领域走向了新的纪元。通信的各方都公开自己的一个密钥,保留另一个私钥。公开的密钥可以用来加密通信的内容,只有相应的私钥才可解开被加密的内容,问题就此简化了。由于加密钥匙是公开的,密钥的分配和管理就很简单,比如对于具有n个用户的网络,仅需要2n个密钥。公开密钥加密系统还能够很容易地实现数字签名,因此,最适合于电子商务应用需要。在实际应用中,公开密钥加密系统并没有完全取代对称密钥加密系统,这是因为公开密钥加密系统是基于尖端的数学难题,计算非常复杂,它的安全性更高,但它实现速度却远赶不上对称密钥加密系统。在实际应用中可利用两者的各自优点,采用对称加密系统加密文件,采用公开密钥加密系统加密“加密文件”的密钥(会话密钥),这就是混合加密系统,它较好地解决了运算速度问题和密钥分配管理问题。因此,公钥密码体制通常被用来加密关键性的、核心的机密数据,而对称密码体制通常被用来加密大量的数据。自公钥加密问世以来,学者们提出了许多种公钥加密方法,它们的安全性都是基于复杂的数学难题。根据所基于的数学难题来分类,有以下3类系统目前被认为是安全和有效的:大整数因子分解系统(代表性的有RSA)、椭圆曲线离散对数系统(ECC)和离散对数系统(代表性的有DSA)。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。