皇上,还记得我吗?我就是1999年那个Linux伊甸园啊-----24小时滚动更新开源资讯,全年无休!

Linux内核的SHA-256代码正在改进,以便更易于和高性能地使用

Linux内核的SHA-256代码正在改进,以便更易于和高性能地使用

Linux 内核加密子系统中的 SHA-256 代码正在重构过程中,以便可以通过加密的库 API 使用,并开放它以支持架构优化的实现。

Google 的 Eric Biggers 近年来一直负责内核的许多加密性能优化,特别是针对 x86_64 处理器和利用现代 ISA 功能,他一直在寻求这种 SHA256 重构,使其适合库使用,并为架构优化版本打开大门。

Biggers 在加密维护者 Herbert Xu 发布的新补丁系列中解释道:

“遵循其他几种算法(例如 CRC32、ChaCha、Poly1305、BLAKE2s)的示例,该系列重构了内核现有的架构优化 SHA-256 代码,使其可以通过库 API 使用,而不是像以前那样仅通过 crypto_shash API 使用。它还在库 API 之上重新实现了 SHA-256 crypto_shash API。

这使得在性能关键情况下使用 SHA-256 库成为可能。新设计也简单得多,负 diffstat 超过 1200 行。最后,这也解决了一个长期存在的问题,即架构优化的 SHA-256 默认处于禁用状态,因此人们经常忘记启用它。

目前,crypto_shash自检已经很好地覆盖了 SHA-256 库,但我计划稍后直接为该库添加测试。我已经在 arm、arm64、riscv 和 x86 上全面测试了这个系列。在 mips、powerpc、s390 和 sparc 上,我只能对其进行部分测试,因为 QEMU 在这些平台上不支持 SHA-256 指令。如果任何有权访问具有 SHA-256 指令的 mips、powerpc、s390 或 sparc 系统的人都可以验证加密自检仍然通过,我们将不胜感激。但我预计不会有任何问题,尤其是因为新代码比旧代码更直接。

在 +1165 行代码和 -2313 行代码处进行了很好的重构……同时添加对架构优化实施的支持,并将其添加到库 API。该代码目前正在审查中,但有望在即将到来的内核周期中为上游做好准备。

转自 The Linux Kernel’s SHA-256 Code Being Improved Upon For Easier & Performant Use – Phoronix