Тест эталонного уровня скорости Openssl

#performance #testing #openssl

#Производительность #тестирование #openssl

Вопрос:

Недавно мне нужно было протестировать производительность openssl suite на моей машине. Я запустил скорость, чтобы получить некоторые показатели производительности. Тем не менее, я хотел получить конкретную производительность, такую как время шифрования и время расшифровки, но данные, которые я получил, представлены в виде

 Doing aes-128 cbc for 3s on 16 size blocks: 24115540 aes-128 cbc's in 3.00s
 

Я проверил файл speed.c, и он был

 if (doit[D_CBC_128_AES])
        {
        for (j=0; j<SIZE_NUM; j  )
            {
                        print_message(names[D_CBC_128_AES],c[D_CBC_128_AES][j],lengths[j]);
            Time_F(START);
            for (count=0,run=1; COND(c[D_CBC_128_AES][j]); count  )
                AES_cbc_encrypt(buf,buf,
                    (unsigned long)lengths[j],amp;aes_ks1,
                    iv,AES_ENCRYPT);// :O only encryption
            d=Time_F(STOP);
                        print_result(D_CBC_128_AES,j,count,d);//xxxxx

            }
        }
 

Таким образом, он выполняет только шифрование, а не дешифрование.

Почему это так? Как я могу получить время шифрования и время дешифрования алгоритмов и их режимов? Должен ли я сам писать код для всех алгоритмов? Как я могу получить циклы процессора, используемые в определенном алгоритме?

Ответ №1:

Время шифрования и дешифрования AES примерно одинаковое.

Да, вам нужно будет написать свои собственные тесты, потому что время зависит от типа процессора, скорости процессора и реализации. Я видел различия в скорости в 1000 раз на одном и том же устройстве с разными реализациями.