老听别人说加密算法,现在给你个机会深入了解下

按要求转载自FreeBuf.COM

作者 | lalalaha

一、背景

据记载,公元前 400 年,古希腊人发明了置换密码。1881 年世界上的第一个电话保密专利出现。在第二次世界大战期间,德国军方启用「恩尼格玛」密码机,密码学在战争中起着非常重要的作用。 随着信息化和数字化社会的发展,人们对信息安全和保密的重要性认识不断提高,于是在 1997 年,美国国家标准局公布实施了「美国数据加密标准(DES)」,民间力量开始全面介入密码学的研究和应用中,采用的加密算法有 DES、RSA、SHA 等。随着对加密强度需求的不断提高,近期又出现了 AES、ECC 等。

使用密码学可以达到以下目的:

保密性:防止用户的标识或数据被读取。

数据完整性:防止数据被更改。

身份验证:确保数据发自特定的一方。

二、加密算法

根据密钥类型不同将现代密码技术分为两类:对称加密算法和非对称加密算法。对称钥匙加密系统是加密和解密均采用同一把秘密钥匙,而且通信双方都必须获得这把钥匙,并保持钥匙的秘密。(本文不做赘述)

非对称密钥加密系统采用的加密钥匙(公钥)和解密钥匙(私钥)是不同的。

常见的非对称加密算法如下:

RSA:由 RSA 公司发明,是一个支持变长密钥的公共密钥算法,需要加密的文件块的长度也是可变的;

DSA(Digital Signature Algorithm):数字签名算法,是一种标准的 DSS(数字签名标准);

ECC(Elliptic Curves Cryptography):椭圆曲线密码编码学。

三、ECC 和 RSA

在 1976 年,由于对称加密算法已经不能满足需要,Diffie 和 Hellman 发表了一篇叫《密码学新动向》的文章,介绍了公匙加密的概念,由 Rivet、Shamir、Adelman 提出了 RSA 算法。RSA 就是他们三人姓氏开头字母拼在一起组成的。

随着分解大整数方法的进步及完善、计算机速度的提高以及计算机网络的发展,为了保障数据的安全,RSA 的密钥需要不断增加,但是,密钥长度的增加导致了其加解密的速度大为降低,硬件实现也变得越来越难以忍受,这对使用 RSA 的应用带来了很重的负担,因此需要一种新的算法来代替 RSA。 1985 年 N.Koblitz 和 Miller 提出将椭圆曲线用于密码算法,全称:Elliptic curve cryptography,缩写为 ECC,根据是有限域上的椭圆曲线上的点群中的离散对数问题 ECDLP。ECDLP 是比因子分解问题更难的问题,它是指数级的难度。

现在 SSL 证书普遍使用的是 RSA 算法,由于上述的 RSA 算法存在的缺点,使用 ECC 作为其公钥算法的数字证书近几年的发展也不容小觑:2008 年左右 CA 开始储备 ECC 根证书,2012 年左右 CA 开始对外公开销售 ECC 证书,2014 年 ECC 证书在国外被普遍开始使用,2015 年国内开始接受 ECC 证书。

ECC 和 RSA 相比,在许多方面都有对绝对的优势,主要体现在以下方面:

  • 抗攻击性强
  • CPU占用少
  • 内容使用少
  • 网络消耗低
  • 加密速度快

随着安全等级的增加,当前加密法的密钥长度也会成指数增加,而 ECC 密钥长度 却只是成线性增加。例如,128 位安全加密需要 3,072 位 RSA 密钥,却只需要一 个 256 位 ECC 密钥。增加到 256 位安全加密需要一个 15,360 位 RSA 密钥,却只需要一个 512 位 ECC 密钥。ECC 具有如此卓越的按位比率加密的性能,预计其特点将成为安全系统关注的重点。

四、测试和分析

前面说了那么多废话,接下来重头来了,接下来会着重从性能来测试两种算法的区别,以下多图预警:

4.1 服务器性能指标

测试在两大云主机上执行。本测试案例中使用了两个不同的身份验证算法: 我们看到,ECC-256 层次结构优于 RSA-2048 和 RSA-3072

4.2 响应时间与吞吐量指标之比较

下表中的条目和以下章节详细说明了我们为云主机运行的测试:测试「0K GET,0% 的重用」使用超大型 ( XLarge ) 服务器在超大型 ( XLarge ) 服桌面客户端上运行,适用于 Apache 和 IISweb 服务器,会话重用为 0%,意味着每个 SSL 握手都是一个完整的握手而不是简化版握手。同时应注意,0K 文件并不表示空负载,在过程中仍有 HTTP 抬头传输。

测试案例和场景

- 0K GET,重用为 0%

会话重用为 0%,表明每次握手是完整的握手,涉及所需 CPU 处理,我们已经发现运行 Apache 的云主机出现 CPU 饱和受限,RSA-3072 在 500 次请求 / 秒左右; RSA-2048 在 1300 次左右,而 ECC-256 经证实在达 2800 次前呈现出极强的适应性。重要的一点是,ECC-256 能够适应相当高的事务数量。虽然 Apache 和 IIS 背 后的数据点(如在吞吐量和等待时间中的数据点)是完全不同的,但得出的结论是相同的,而且有利于 ECC-256。注意,ECC-256 与 RSA-3072 同等安全,效率可相差甚远。

- 200K GET,重用为 0%

在云主机上托管 web 服务器的原因是要减少所需客户端数,以便使服务器能够最大程度地利用 CPU。结果和「0K GET,重用为 0%」趋势相同。

200K GET,重用为 68%

会话重用为 68% 的结果是三分之二的握手被简化。与之前测试相比,平均响应时间下降,同时吞吐量增加,三者间的饱和缺口缩小。如果重用百分比增加并绘制成图,我们便可以看到差距在缩小。

- 1200K GET,重用为 0%

一个有趣的现象是,在 Apache 一例中我们观察到 ECC-256 和 RSA-2048 的网络传输开始饱和,但 RSA-3072 却达到了 CPU 利用极限。而对于 IIS,三者都达到了 CPU 利用极限。

五、不久,ECC 将无处不在

ECC 的这些特点使它必将取代 RSA,成为通用的公钥加密算法。比如 SET 协议的制定者已把它作为下一代 SET 协议中缺省的公钥密码算法。

ECC 证书兼容性:

原文链接:http://www.freebuf.com/articles/database/138734.html

原文发布于微信公众号 - 大数据文摘(BigDataDigest)

原文发表时间:2017-07-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏IMWeb前端团队

前端动态加盐慢加密方案图解

加密:利用某种加密算法,将明文转换成无法简单识别的密文。 解密:利用相应的解密算法,将密文转换成可识别的明文。 密码破解:1、算法逆向破解(一般算法都是不可逆的...

46390
来自专栏安恒信息

“永恒之蓝”勒索病毒元凶追查最新进展

“永恒之蓝”勒索病毒事件发生后,各大安全机构纷纷行动,对病毒样本进行收集和分析,通过将病毒源码片段与早前发现的恶意软件源码进行比对,结果显示,这次的病毒代码与之...

43370
来自专栏互联网高可用架构

从微信支付宝支付接口设计谈API接口产品的设计经验和最佳实践

20130
来自专栏区块链

数字证书的存储和安全性

数字证书的产生、分发和存储 首先,让我们来回顾一下数字证书产生和分发的简要过程。一个网上用户怎样才能得到一张数字证书呢? ? CA将证书分发给用户的途径有多种。...

303100
来自专栏安智客

数字证书的存储和安全性

数字证书的产生、分发和存储 首先,让我们来回顾一下数字证书产生和分发的简要过程。一个网上用户怎样才能得到一张数字证书呢? ? CA将证书分发给用户的途径有多种...

317100
来自专栏安恒信息

数据加密技术再加强,Twitter全力应对NSA信息安全威胁

据国外媒体报道,为了防范美国国安局(NSA)的监听,保障自身和用户的数据安全,Twitter将现有加密技术之外再增加名为PFS(perfect fo...

29560
来自专栏WOLFRAM

Wolfram语言新特性:Cryptography

11010
来自专栏FreeBuf

Google全系列产品不再信任赛门铁克某款根证书

Google宣布在接下来的几周,Google会在Chrome、Android和其他Google产品中将把赛门铁克颁发的“Class 3 Public Prima...

19970
来自专栏圆方圆学院精选

【戴嘉乐】(上篇)运用Re-Encryption技术对你的IPFS网络数据进行多重保护

从HTTP逐渐过渡到HTTPS的过程可以看出,网络中的明文传输始终具有不安全感,据我所知,从2015年开始,大部分互联网巨头公司都强制要求各产品线切换使用HTT...

11610
来自专栏即时通讯技术

如果这样来理解HTTPS,一篇就够了!

可能有初学者会问,即时通讯应用的通信安全,不就是对Socket长连接进行SSL/TLS加密这些知识吗,干吗要理解HTTPS协议呢。

11520

扫码关注云+社区

领取腾讯云代金券