Низкая производительность OpenSsl 1.1.1 + libgost-astra

ike3

New member
Сообщения
1
#1
Добрый день

Разрабатываем приложение, использующее отечественные криптографические алгоритмы, в частности вычисление HMAC хэша средствами OpenSSL. Digest считаем алгоритмом ГОСТ Р 34.11-2012 (256 бит). Столкнулись со странной проблемой, что если использовать либу, входящую в состав Астра Линукса (/usr/lib/x86_64-linux-gnu/engines-1.1/gost-astra.so), то производительность вычисления хэша оказывается примерно в 4-5 раз хуже, чем если собрать эту же либу из исходников https://github.com/gost-engine/engine, ветка openssl_1_1_1.

Почему может быть такая разница? Либа в составе астра линукса получается это что-то другое, она считает ГОСТовые алгоритмы как-то иначе? Ее исходные коды где-нибудь доступны для самостоятельной сборки?

Код вычисления HMAC у нас примерно такой, вызываем функцию:
Код:
unsigned char *HMAC(const EVP_MD *evp_md, const void *key,
               int key_len, const unsigned char *d, int n,
               unsigned char *md, unsigned int *md_len);
передавая ей первым параметром функцию
Код:
EVP_MD *digest_gost2012_256(void);
Либа подключается динамически, меняя один файл .SO на другой, получаем разницу в производительности в 4-5 раз.
 

Карл

New member
Сообщения
418
#3
минимальный пример хотелось бы увидеть
и чем дело кончилось ?