和常规密码体制一样,公开密钥加密体制也可能受到蛮力攻击。预防措施也是相同的,即采用长密钥。但长密钥在增加保密强度的同时,也使加、解密处理速度更慢,因此在密钥的长度上需有折中,即密钥大小必须足够大,以便使蛮力攻击不切实际,又要密钥长度足够小,以便加密、解密在处理速度上可以实用化。另外,加密内容的长度也对处理速度带来较大的影响,公开密钥加密目前主要用于密钥管理与数字签名。
除蛮力攻击外,另一种形式是找出某种根据公开密钥计算私有密钥的方法。因为到目前为止,对于一个特定的公开密钥算法来说,还没有在数学上严格证明这种攻击是不可能的,那么就不能排除可能找出某种方法根据已知的公开密钥计算出私有密钥来。
第三种攻击方式是公开密钥系统所特有的,它本质上是一种可能报文攻击。如假设要发送的报文仅仅是一个56位的DES密钥,破译者可用公开密钥加密所有可能的密钥,并利用匹配被传输的密文来解密DES密钥,在这种情况下无论公开密钥方案使用的密钥长度有多长,攻击都属于对一个56位DES密钥的蛮力攻击。通过将一些随机位附加到每个简单消息可以防止这种攻击。
公钥密码系统的特点是使用两个密钥作为参数编码和解码算法,这里的密钥一个保密,另一个可公开。由应用需要,发送方可用自己的私有密钥、接收方的公开密钥,或两个均用,来实现某种类型的密码编码和解码功能。
大致而言,可把公开密钥密码系统的应用分成如下几类。
1.机密性的实现
发件人使用收件人的公钥加密邮件,接收者用自己的私钥解密。
2.数字签名,即防否认性的实现
发送方通过其私钥“签署”报文,接收方用发送方的公钥解密来实现鉴别。
3.密钥交换
发送方和接收方通过公钥密码系统交换会话密钥。此应用程序也称为混合密码系统,即通过传统密码系统加密秘密传输的消息,然后用于加密传统密码系统公钥密码系统。两者的结合充分利用了对称密码系统的处理速度以及密钥分配和非对称密码系统管理的优点。
需指出的是,并非所有的公开密钥密码算法都支持以上三类应用。如RSA与ECC在三种情况下都可用(加密解密、数字签名和密钥交换),DSA只有数字签名,Diffie-Hellman只有密钥交换。