密码学科普系列[1]:非对称加密相对于对称加密的缺点是什么?

Q6.1非对称加密算法既然可以用于加密而且还有其他优势为什么我们仍然需要对称加密算法呢?

3.Q6.1

A6.1

基于安全性和效率的考虑

  1. 安全性
    首先咱们知道安全性和密钥的长度有关,但是这个长还得看是什么种类的加密算法,不同的算法对与密钥长度的要求是不一样的。当我们考虑安全性的时候我们首先想到的是Key Space也就是说一共有多少种可能的数字能够作为密钥。对于AES这种对称加密算法而言上所有256bits的数字都是可以作密钥的,但是RSA不同。因为n必须是两个素数的乘积,因此当咱们提到1024bits密钥长的RSA的时候不是所有的1024bi的数字都可以作为密钥存在,实际上1024bits长的RSA密钥实际上的key space仅仅相当于80bit(why?)的对称加密算法,这是非常不安全的。而且我们还必须要考虑量子计算机带来的影响,比如Shor’s algorithm,随着量子计算机的发展RSA的破解难度会进一步降低。
    咱们可以看下面这个表格,根据不同的加密算法给出了相同安全等级下应该推荐选取的密钥长度:
    1.推荐的密钥长度
    咱们可以从这个表格看出如果要达到AES256的强度(30-50年不会被破解),RSA需要的密钥长度是15360,但是这样又会降低效率。
  2. 效率
    因为前面安全性上咱们提到如果要提高安全性RSA必须要让密钥长度变得更长,但是如果把密钥变长那么效率又会是一个问题。咱们知道RSA的密钥生成时间复杂度为O(N^2)而加密解密的时间复杂度为O(N^3),那么如果要让密钥变为15360也就是15∗1024,也就是说密钥生成需要提高225倍时间,而加密解密过程需要比1024的时候3375倍的时间。所以这就是为什么TLS会先用非对称加密算法先交换密钥以及签名然后再用对称密钥传输信息。比如查看TLS Cipger Suite会看到这样的东西,其中中间的对称加密算法(最常见的AES)其实是加密传输内容的主要算法,非对称的更多的是交换密钥以及签名的作用。4.eg_TLS_cipher_suite

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s