This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

comparing cryptographic library backend

Hi!


We're considering implementing some security measurements into our devices, and so naturally we've started to investigate CryptoCell and other Backends supported by Nordic for the nrf52840 and others.

I've ran across this blog post, comparing the performance and power consumption of the hardware accelerated CryptoCell (CC310_LIB) and the software based Micro_ECC library for a nrf52840. In short, it finds that the hardware accelerated backend is both slower, and consumes more power than the software based uECC counterpart.

I was wondering if you could confirm these findings, or refute them if you've run the experiment yourselves and found different results.

Thanks!

  • Hi,

    I believe that this highly depends on which cryptographic algorithms you are using, and if the task is a hard or simple one. The blog-post only tests the LE-Secure Connection operations ECDH and ECDSA, which micro-ecc are highly optimized for executing (in fact, these are the only algorithms supported by micro-ecc). For other cryptographic algorithms, we provide the options of mbedTLS (open source) or Oberon (proprietary - highly optimized for the nRF chips) backends for our nRF_Crypto library.

    I have tested current consumption and timing for two operations (FW hash and signature verification) used in our Bootloader, with CC310_BL and nRF_Oberon backends (3V supply voltage and DCDC regulator enabled):

    CC310_BL Hash:

    nRF_Oberon Hash:

    CC310_BL Verify:

    nRF_Oberon Verify:

    As you can see, the average current is very similar for both backends, but the time consumed by the nRF_Oberon software backend is approximately 4-5 times the CC310 crypto backend.

    Another example can be seen when CC310 is used for cryptographic operations in the OpenThread stack (compared to mbedTLS without HW acceleration).

    From my experience, the CC310 HW crypto accelerator will improve performance in most situations without increasing the current significantly (and with reduced time active, the average current will be reduced). In the end, you will have to test this in your system yourself. If using nRF_crypto, it is only a simple config modification needed to switch the backends used for different algorithms.

    Best regards,
    Jørgen

Related