2013-10-10 3 views
8

Я написал базовую функцию для проверки скорости AES-256-CBC режима встроенных криптографических функций Node.js. Эти функции используют OpenSSL, поэтому они должны поддерживать AES-NI, но когда я правильно включаю AES-NI и выполняю тест командной строки OpenSSL, скорость шифрования составляет ~ 350 МБ/с на OpenSSL и только ~ 100 Мбайт/с на Node.js Crypto.Как включить AES-NI (аппаратное ускорение) для Node.js crypto в Linux?

Я использовал this answer, чтобы включить OpenSSL AES-NI в командной строке и побежал его следующим образом:

openssl speed -evp aes-256-cbc

Мой вопрос, как я могу сделать скорость функций криптографических Node.js для AES соответствует командной строке OpenSSL в командной строке? Я подозреваю, что причина не в использовании AES-NI

+1

ли вы компилировать узел или с помощью двоичного – user568109

+0

Составитель его v 0.10.20 – Philberg

+4

Если вы используете последнюю версию OpenSSL, вам не нужно ничего делать. Эта оптимизация выполняется при компиляции openssl с флагом -mtune/-maes. См. Http://security.stackexchange.com/questions/11815/where-can-i-find-information-about-how-to-implement-intel-embedded-aes256-encryp. Прямо сейчас я не знаю, используются ли эти параметры или нет. Все, что я знаю, это то, что он скомпилирован с node-gyp для этого, см. Https://github.com/joyent/node/blob/master/deps/openssl/openssl.gyp. – user568109

ответ

2

Нет, вы делаете это правильно. Производительность OpenSSL в узле немного разочаровывает. В большинстве случаев развертывания Node.js завершают SSL-соединения в чем-то, отличном от Node.js, а затем перенаправляют незашифрованные соединения в Node.js.

+0

Полезно знать, спасибо за информацию – Philberg

 Смежные вопросы

  • Нет связанных вопросов^_^