相比RSA来说,ECC(椭圆曲线加密算法)具有更轻、更快、更优秀,通常ECC拿上桌面讨论总显得高深莫测,或者是错误地认为ECC在浏览器、操作系统上的兼容性,所以大多数敬而远之,所以市面上大多SSL/TLS证书都采用的是RSA方式加密。

b6322c33636994d1b38f33c79785df81.png

相比RSA来说,ECC(椭圆曲线加密算法)具有更轻、更快、更优秀,通常ECC拿上桌面讨论总显得高深莫测,或者是错误地认为ECC在浏览器、操作系统上的兼容性,所以大多数敬而远之,所以市面上大多SSL/TLS证书都采用的是RSA方式加密。

在《文中我们对各类数字签名算法有了较丰富的介绍,那么我们来看看真正的ECC的技术理论和兼容性是怎样的!

1. 所有最新操作系统、现代浏览器都支持ECC

SSL/TLS在传统观念上仍然存在较多的误区,例如我们在《关于HTTPS与SSL证书八大误区》中提到的八大误区,在这里我们先来看看ECC的兼容性情况是怎样的!

1.1 ECC在主流操作系统中兼容情况

操作系统最低版本要求
Apple OS X OS X 10.6
Microsoft Windows Windows Vista
Red Hat Enterprise Linux 6.5
iOS iOS 7.x
Android OS 3.x
Microsoft Windows Phone 7.x

1.2 ECC在浏览器中的兼容性情况

浏览器最低版本要求
Apple Safari 4
Google Chrome 1.0
Microsoft Internet Explorer 7
Mozilla Firefox 2.0

但是像Windows XP这样的古老级操作系统对ECC的支持度显然是无法兼顾了,不过真实情况也不是那么令人担忧,毕竟Windows XP的用户保有量已经下降到几乎可以忽略不计了。

2. 安全性永远大于易操作性

RSA终结的时间即将被提上日程,以易操作性为由继续使用老的系统不是一个明智的举措,ECC具有RSA欠缺的三大优势:

  • ECC密钥更短,意味着ECC将占用更少的资源却有更高的性能;
  • ECC更易扩展,随着RSA密钥更长只会让SSL/TLS面临更多的麻烦;
  • ECC并不太容易受到量子计算机的安全威胁;

粗劣地介绍了ECC的三大优势后,我们再看看其详细介绍。

3. 椭圆曲线密码学

椭圆曲线密码学是一种加密方法,是满足特定数学等式的点的集合,椭圆曲线是一个二元方程,其中一个二阶变量,一个三阶变量,基本公式是:y2 = x3 + ax + b,例如下图是预设的一个椭圆曲线,不好理解没关系,我们继续看

11095853-438ca3e1f9b63a65

3.1 在已知的椭圆曲线上绘制A、B两点

在x轴方向的曲线绘制A、B两点,这两点可以理解成私钥创建者创建所得。

ecc-screen-01

3.2 将A、B两点连接一条延长的直线

在坐标系中连接A、B两点绘制一条延长的AB直线,直到直线的某一端与x轴方向的椭圆曲线相交的下一个点(下图中第一象限),并以x轴为对称轴延着y轴绘制直线与椭圆曲线相交得到下一个点C(下图中第四象限)。

ecc-screen-02

3.3 将A点和C点连接一条AC的直线

此时我们将A点和C点相连的直线AC与椭圆曲线相交得到的下一个点,并此点以x轴为对称轴延着y轴绘制直线与椭圆曲线相交得到了点D。

ecc-screen-03

3.4 打点总结

以上我们称为打点,事实证明如果你有两个点,一个是起点,一个是打点n次后得到的终点,在你只知道起点和终点,想找出n的值是很困难的,而基于椭圆曲线离散点需要规定在有限域上,所以椭圆曲线符合密码学的标准,具体基于椭圆曲线的专业知识,请参考以下文章:

4. ECC密钥长度更短

RSA密钥目前在大多CA中都采用行业标准的2,048位密钥,由于体量和计算的缘故,RSA加密所需的资源会更多,因此结论是RSA的密钥大小与其安全性并不相称。 随着密钥越来越大,整体并没有同样效率上的改善。

虽然ECC密钥长度更短,但ECC密钥更难破解,目前已知ECC与RSA长度对比如下:

ECC密钥长度RSA密钥长度
160-bit 1024-bit
224-bit 2048-bit
256-bit 3072-bit
384-bit 7680-bit
521-bit 15360-bit

所以美国国家安全局(NSA)要求所有最高机密文件都使用384位ECC密钥加密,相当于一个7,680位的RSA密钥加密,所以看起来RSA处于劣势。

5. ECC比RSA更好

正如前方提到的,就所需资源而言,RSA比ECC需要耗费更多的资源,解密同时也需要更多的版图, 随着现代加密技术面临的威胁不断增长,随之而来的RSA密钥继续变得越来越大,需要加解密码的成本也越来越高。

与此同时,RSA方式在SSL/TLS握手时需要更多的网络延时,这也是大家讨论的诟病之一,所以总结得出ECC需要使用的网络资源、硬件资源更少。

6. ECC能够对抗量子解密

近年来量子计算机技术屡被提起,至于量子数学的专业性本文无法在这里详细阐述,就目前而言,ECC相比现有的加密技术,ECC有更小的密钥和完美的前向保护性,以及其复杂的算法能够保证对抗量子解密

7. ECC途经简单,价格不受影响

ECC加密算法非常简单,目前已知有CA厂商Sectigo (原名Comodo)和DigiCert/Symantec证书支持ECC加密算法的证书签发,证书的价格并不受加密算法的影响,你只要在配置证书前提供由ECC加密算法创建的CSR证书请求文件,并选择ECC加密算法。

参考文章:

相关文章