求有关硬件SHA-2加速的资料
Seeking information on hardware SHA-2 acceleration
今年 AMD 发布了一个新的 x86-64 CPU 系列,名为 RyZen for desktop。 RyZen 的规范显示它提供了新的基于 SSE 的 SHA1 和 SHA-256 指令 wiki: Intel SHA extension:
- sha1指令:SHA1RNDS4、SHA1NEXTE、SHA1MSG1、SHA1MSG2;
- sha-256 指令:SHA256RNDS2、SHA256MSG1、SHA256MSG2
我很好奇,APIs/Libraries 是否已经存在任何能够利用这些指令的超快速散列指令以用于 PHP 或其他服务器端语言, 当你使用 AMD RyZen CPU ?
如果没有,我们应该期望它什么时候可用?
自从英特尔在 2013 年左右提供了硬件 SHA 规范以来,似乎至少有几个编译器必须提供对它的支持。
openssl 1.0.2 添加了对硬件加速 SHA256 的支持 [2015 年 1 月 22 日]:
https://git.openssl.org/gitweb/?p=openssl.git;a=blob;f=CHANGES
1962 Changes between 1.0.1l and 1.0.2 [22 Jan 2015]
2012 *) Support for new and upcoming Intel processors, including AVX2,
2013 BMI and SHA ISA extensions. This includes additional "stitched"
2014 implementations, AESNI-SHA256 and GCM, and multi-buffer support
2015 for TLS encrypt.
因此,在启用硬件和最近的 openssl 的情况下,任何使用 openssl 计算 SHA256 的 php/python 库都可以使用硬件加速 SHA256 摘要计算(如果在 openssl 中启用并且库将选择此实现).还有命令行:openssl dgst -sha256 -binary file_to_be_hashed
.
php 中有一些 openssl 库的原始绑定:http://php.net/manual/en/function.openssl-digest.php and OPENSSL_ALGO_SHA256 is there since PHP 5.5: which openssl version support for sha256 in php
Linux 内核 CryptoAPI 可能使用硬件 SHA1/SHA2 自 4.4 版本:https://www.phoronix.com/scan.php?page=news_item&px=Linux-4.4-Crypto (http://lkml.iu.edu/hypermail/linux/kernel/1511.0/00383.html);但是 PHP/other 脚本库不太可能使用内核 cryptoapi。
今年 AMD 发布了一个新的 x86-64 CPU 系列,名为 RyZen for desktop。 RyZen 的规范显示它提供了新的基于 SSE 的 SHA1 和 SHA-256 指令 wiki: Intel SHA extension:
- sha1指令:SHA1RNDS4、SHA1NEXTE、SHA1MSG1、SHA1MSG2;
- sha-256 指令:SHA256RNDS2、SHA256MSG1、SHA256MSG2
我很好奇,APIs/Libraries 是否已经存在任何能够利用这些指令的超快速散列指令以用于 PHP 或其他服务器端语言, 当你使用 AMD RyZen CPU ? 如果没有,我们应该期望它什么时候可用?
自从英特尔在 2013 年左右提供了硬件 SHA 规范以来,似乎至少有几个编译器必须提供对它的支持。
openssl 1.0.2 添加了对硬件加速 SHA256 的支持 [2015 年 1 月 22 日]: https://git.openssl.org/gitweb/?p=openssl.git;a=blob;f=CHANGES
1962 Changes between 1.0.1l and 1.0.2 [22 Jan 2015] 2012 *) Support for new and upcoming Intel processors, including AVX2, 2013 BMI and SHA ISA extensions. This includes additional "stitched" 2014 implementations, AESNI-SHA256 and GCM, and multi-buffer support 2015 for TLS encrypt.
因此,在启用硬件和最近的 openssl 的情况下,任何使用 openssl 计算 SHA256 的 php/python 库都可以使用硬件加速 SHA256 摘要计算(如果在 openssl 中启用并且库将选择此实现).还有命令行:openssl dgst -sha256 -binary file_to_be_hashed
.
php 中有一些 openssl 库的原始绑定:http://php.net/manual/en/function.openssl-digest.php and OPENSSL_ALGO_SHA256 is there since PHP 5.5: which openssl version support for sha256 in php
Linux 内核 CryptoAPI 可能使用硬件 SHA1/SHA2 自 4.4 版本:https://www.phoronix.com/scan.php?page=news_item&px=Linux-4.4-Crypto (http://lkml.iu.edu/hypermail/linux/kernel/1511.0/00383.html);但是 PHP/other 脚本库不太可能使用内核 cryptoapi。