【问题标题】:Performance of mbedTLS sha256 realistic?mbedTLS sha256 的性能现实吗?
【发布时间】:2019-07-15 11:36:08
【问题描述】:

目前我在 stm32f7 核板上测试 mbedTLS 的 sha256 性能。我用cycle counter register 测量了 stm32 板的经过周期。测量公式如下所示:

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;

我在执行硬件散列的微芯片 atecc508a 上测试了 sha 命令,大约需要 18ms 散列 32 字节数据。

使用 mbedTLS 仅需要大约 0.05ms 在软件中散列 32 字节的数据。

我知道我必须记住,通过 i2c 进行的通信需要额外的操作时间,但这些结果是否合法?这两个操作之间会不会有这样的差异?

两个操作都将相应的哈希返回到某个 32 字节的输入。

如果有人能回答我的问题,将非常感激。

【问题讨论】:

  • 作为嵌入式开发人员,以doubles 的身份进行计算绝对没有意义,即使是在你按喇叭的大 F7 上。
  • 另外,也就是 10,800 个时钟周期,这并非完全不合理,但我对算法还不够熟悉,无法肯定地说。
  • @unwind 你完全正确!下次我将提供正确的值时,我已经对结果进行了四舍五入以获得更好的可读性。我的错。

标签: c stm32 mbedtls


【解决方案1】:

在标准 I2C 速度 (100kbit/s) 下,您可以传输

0.018*100000 = 1800 位 = 225 字节

在 18 毫秒内(包括开销)。这不是很多,所以是的,大部分时间都被 i2c 通信占用似乎是合理的。

【讨论】:

  • 感谢您的回答,非常感谢!
猜你喜欢
  • 2023-04-07
  • 1970-01-01
  • 2014-07-28
  • 2016-04-02
  • 1970-01-01
  • 2014-08-01
  • 2011-05-29
  • 2020-02-25
  • 2012-08-01
相关资源
最近更新 更多