Производительность mbedTLS sha256 реалистична? - PullRequest
0 голосов
/ 21 февраля 2019

В данный момент я тестирую производительность m25TLS на ядре stm32f7 для sha256.Я измеряю прошедшие циклы платы stm32 с помощью cycle counter register.Формула измерения выглядит примерно так:

DWT->CYCCNT = 0;
uint32_t dwtStart = DWT->CYCCNT;
//uncomment for mbed calculation mbedtls_sha256();
//uncomment for atecc508a calculation atecc508a_sha256();
uint32_t dwtStop = DWT->CYCCNT;
double dStart = (double) dwtStart;
double dStop = (double) dwtStop;
// SystemCoreClock is a constant = 216000000
double result_in_milliseconds = (dStop-Start)/SystemCoreClock * 1000;

Я тестировал команду sha на микрочипе atecc508a, которая выполняет аппаратное хеширование, и для хэширования 32 байт данных требуется около 18ms..

При использовании mbedTLS требуется всего 0.05ms для хеширования 32 байт данных в программном обеспечении.

Я знаю, что должен помнить, что обмен данными через i2c требует дополнительного временидля операции, но законны ли эти результаты?Может ли быть такое расхождение между этими двумя операциями?

Обе операции возвращают соответствующий хэш для определенного ввода в 32 байта.

Был бы очень благодарен, если бы кто-то мог ответить на мой вопрос.

1 Ответ

0 голосов
/ 21 февраля 2019

При стандартной скорости I2C (100 кбит / с) вы можете передавать

0,018 * 100000 = 1800 бит = 225 байт

в 18 мс (, включая накладных расходов).Это не так уж много, так что да, кажется разумным, что большую часть времени использует связь i2c.

...