推动加密硬件性能改进的六项创新

电子说

1.2w人已加入

描述

很有可能在未来一切都会被加密,从你的购物清单到你的医疗记录。这是一个令人兴奋的概念,但密码学领域尤其不稳定,现在有很多工作要做,以确保数据能够在未来得到很好的保护。

多个加密操作可以应用于每个数据字节,因为数据在软件、网络和存储堆栈的多个层中受到加密保护。这些流程支持需要强大安全性的高度关键业务功能,但在硬件级别,它们是现有计算最密集的操作之一。随着每年生成的数据量呈指数级增长,以及组织采用更大的密钥大小以及多种同步加密算法来增强安全性,对加密计算的需求也在持续增长。与此同时,这些计算需求不断膨胀。

为了解决加密计算成本问题,硬件行业一直在努力制定新的指导方针、微架构增强和创新的软件优化方法。多年来这种进步的有力例子包括引入了下一代固定功能处理器指令,该指令降低了高级加密标准 (AES) 对称加密和最近的 FIPS 算法的计算要求。因此,在过去 10 年中,组织越来越致力于实施强大的加密密码,以更好地保护数据和通信。

但随着量子计算的进步不断加速,对称和非对称加密算法的安全效能可能会受到威胁。增加密钥大小(从 128 位到 256 位)有助于使对称算法(例如 AES)对量子攻击更具弹性,但同样,该解决方案带来了更高的计算成本。非对称加密算法(例如 RSA 和 ECDSA)也很可能会达不到要求。许多人说量子计算机的原始力量将是加密的消亡,但我们认为情况并非如此。

上述现有的加密方案可能会被新的后量子加密方法所取代。该行业正在积极努力过渡到新的密码学标准,以应对这些迫在眉睫的后量子安全挑战。事实上,许多提案已经提交给 NIST 后量子密码学 (PQC) 竞赛,其中在密钥大小、存储和计算规范方面有不同的要求。

随着量子计算时代的到来,整个行业需要团结起来,朝着新的方法和标准迈进。

这种转变会是什么样子?过渡将是漫长的,现有的密码学将继续存在,直到行业能够完全采用新兴的抗量子算法。我们预计这会导致较高的计算负担,并且组织不会广泛采用更强的加密,直到底层的后量子算法从计算性能的角度来看在经济上是可持续的。

为了加速未来密码学的诞生,业界将需要开发创新的硬件改进和优化的软件解决方案,共同缩小计算需求。好消息是我们绝不是从零开始。

以下是当今发生的加密性能改进和创新的六个关键示例:

1. 传输层安全 (TLS) 加密算法——TLS 协议分两个阶段运行。首先是会话启动阶段。发起会话时,客户端必须使用公钥加密方法(通常是 RSA)将私有消息传递给服务器,然后协议才会生成共享密钥。RSA 基于模幂运算,这是一种产生大部分 TLS 会话启动处理器周期的高成本计算机制。将 RSA 与椭圆曲线密码术 (ECC) 等算法相结合,使用完美前向保密等技术,可以提供更高的安全性。

在第二阶段,大量数据被传输。这些协议对数据包进行加密以确保机密性,并利用基于数据加密散列的消息验证码 (MAC) 来防止任何试图修改传输中数据的行为。加密和身份验证算法保护 TLS 批量数据传输,在许多情况下,将两者结合在一起可以提高整体性能。一些密码套件(例如 AES-GCM)甚至定义了组合的“加密 + 身份验证”模式。

2. 公钥密码术——为了支持公钥密码中经常出现的“大数”乘法过程的改进性能,一些供应商正在创建新的指令集。例如,英特尔基于 Ice Lake 的处理器引入了 AVX512 整数融合乘加 (AVX512_IFMA) 指令集架构 (ISA) 支持。这些指令将宽 512 位 (ZMM) 寄存器中的 8 个 52 位无符号整数相乘,产生结果的高半部分和低半部分,并将其添加到 64 位累加器中。结合软件优化技术(如多缓冲区处理),这些指令不仅可以为 RSA 提供显着的性能改进,还可以为 ECC 提供显着的性能改进。

3. 对称加密——两项指令增强提高了 AES 对称加密的性能:矢量化 AES (VAES) 和矢量化无进位乘法。VAES 指令已扩展为使用宽 512 位 (ZMM) 寄存器一次支持最多四个 AES 块(128 位)的矢量处理,如果使用得当,将为所有 AES 模式提供性能优势手术。一些供应商还使用宽 512 位 (ZMM) 寄存器扩展了对一次最多四个无进位乘法运算的矢量处理的支持,从而为 Galois 散列和广泛使用的 AES-GCM 密码提供额外的性能。

4. 散列——可以通过为安全散列算法 (SHA) 创建新的扩展来提高计算性能,该算法将任意大小的数据消化成固定大小的 256 位。这些扩展包括显着改进 SHA-256 性能的指令,从而可以使用更多的加密散列。

5. 函数拼接——函数拼接早在 2010 年就率先推出,是一种优化通常组合运行但顺序运行的两种算法的技术,例如 AES-CBC 和 SHA256,并将它们形成一个专注于最大化处理器资源的单一优化算法和吞吐量。结果是来自每个算法的指令的细粒度交错,以便两个算法同时执行。这使得在执行单个算法时由于数据依赖性或指令延迟而原本空闲的处理器执行单元能够执行来自另一个算法的指令,反之亦然。这是非常相关的,因为算法仍然具有现代微处理器无法完全并行化的严格依赖性。

6.多缓冲区-多缓冲区是一种创新高效的技术,用于并行处理密码算法的多个独立数据缓冲区。供应商之前已经为哈希和对称加密等算法实现了这种技术。同时处理多个缓冲区可以显著提高性能——无论是在代码可以利用单指令多数据(AVX/AVX2/AVX512)指令的情况下,还是在代码不能利用单指令多数据(AVX/AVX2/AVX512)指令的情况下。这一点很重要,因为更多的数据需要加密处理,更广泛的处理器数据路径的可用性将使行业能够跟上步伐。

真正的量子计算将在不知不觉中到来,行业思维已经开始从“这些数据是否应该加密?”转变。到“为什么这些数据没有加密?” 作为一个社区,我们必须专注于在硬件层面实施高级密码学,以及伴随的算法和软件创新,以应对后量子世界带来的挑战。这样做将导致一系列重要加密算法在性能和安全性方面取得更多突破,并有助于加速向下一代加密方案的过渡,该行业将需要在未来十年中度过难关。

审核编辑 黄昊宇

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分