Ищу информацию об аппаратном ускорении SHA-2

В этом году AMD выпустила новую серию процессоров x86-64 под названием RyZen для настольных ПК. Спецификация RyZen показывает, что она предоставляет новые вики -инструкции на основе SSE SHA1 и SHA-256 : расширение Intel SHA:

  • инструкции sha1: SHA1RNDS4, SHA1NEXTE, SHA1MSG1, SHA1MSG2;
  • инструкции sha-256: SHA256RNDS2, SHA256MSG1, SHA256MSG2

Мне любопытно, существуют ли какие-либо API / библиотеки, которые могут использовать эту инструкцию для сверхбыстрого хеширования, которое будет использоваться в PHP или других серверных языках, когда вы используете AMD RyZen CPU? Если нет, когда мы должны ожидать, что это будет доступно?

Поскольку Intel предоставила спецификации для аппаратного SHA примерно в 2013 году, кажется, что по крайней мере несколько компиляторов должны были обеспечить его поддержку.

1 ответ

Решение

Поддержка аппаратного ускорения SHA256 была добавлена ​​в openssl 1.0.2 [22 января 2015]: 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 любая библиотека php / python, которая использует openssl для вычисления SHA256, может использовать аппаратно ускоренное вычисление SHA256 для дайджеста (если оно включено в openssl и если эта реализация будет выбрана библиотекой). И командной строки тоже: openssl dgst -sha256 -binary file_to_be_hashed,

Есть некоторые необработанные привязки библиотеки openssl в php: http://php.net/manual/en/function.openssl-digest.php и OPENSSL_ALGO_SHA256 существует с PHP 5.5: какая поддержка openssl для sha256 в 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/ другие скриптовые библиотеки будут использовать cryptoapi ядра.

Другие вопросы по тегам